Revision: 201005 default
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 02 Feb 2010 01:39:43 +0200
changeset 0 83f4b4db085c
child 1 d4b442d23379
Revision: 201005 Kit: 201005
bldsystemtools/commonbldutils/AntiVirus.pl
bldsystemtools/commonbldutils/AntiVirus.pm
bldsystemtools/commonbldutils/BCValues.xml
bldsystemtools/commonbldutils/BCupdateXML.pl
bldsystemtools/commonbldutils/BuildExpiry.pl
bldsystemtools/commonbldutils/BuildLaunch.xml
bldsystemtools/commonbldutils/BuildLaunchChecks.pm
bldsystemtools/commonbldutils/BuildStamp.pl
bldsystemtools/commonbldutils/BxCopy.pl
bldsystemtools/commonbldutils/BxCopy.pm
bldsystemtools/commonbldutils/DefectTrack.pl
bldsystemtools/commonbldutils/EventLogReader.pl
bldsystemtools/commonbldutils/ExportCBR.pl
bldsystemtools/commonbldutils/FileOps.pl
bldsystemtools/commonbldutils/FileOps.pm
bldsystemtools/commonbldutils/GenResult/AutoSmoketests.cfg
bldsystemtools/commonbldutils/GenResult/BragStatus.pm
bldsystemtools/commonbldutils/GenResult/Changelists.pm
bldsystemtools/commonbldutils/GenResult/FaultsData.pm
bldsystemtools/commonbldutils/GenResult/FileRead.pm
bldsystemtools/commonbldutils/GenResult/GenAutoSmokeTestResult.pm
bldsystemtools/commonbldutils/GenResult/GenDiamondsXml.pl
bldsystemtools/commonbldutils/GenResult/GenDiamondsXml.pm
bldsystemtools/commonbldutils/GenResult/GenPostBuildResult.pm
bldsystemtools/commonbldutils/GenResult/GenResult.pl
bldsystemtools/commonbldutils/GenResult/GenResult.pm
bldsystemtools/commonbldutils/GenResult/Product_AutoSmoketest.cfg
bldsystemtools/commonbldutils/GenResult/ZipDiamondsXml.pm
bldsystemtools/commonbldutils/GenResult/build.tmpl
bldsystemtools/commonbldutils/GenResult/content.tmpl
bldsystemtools/commonbldutils/GenResult/diamonds_finish.tmpl
bldsystemtools/commonbldutils/GenResult/faults.tmpl
bldsystemtools/commonbldutils/GenResult/files.tmpl
bldsystemtools/commonbldutils/GenResult/lib/Text/Template.pm
bldsystemtools/commonbldutils/GenResult/lib/Text/Template/Preprocess.pm
bldsystemtools/commonbldutils/GenResult/locations.tmpl
bldsystemtools/commonbldutils/GenResult/myutils.pm
bldsystemtools/commonbldutils/GenResult/publishDiamonds.pm
bldsystemtools/commonbldutils/GenResult/schema.tmpl
bldsystemtools/commonbldutils/GenResult/send_xml_to_diamonds.pl
bldsystemtools/commonbldutils/GenResult/send_xml_to_diamonds.py
bldsystemtools/commonbldutils/GenResult/stage.tmpl
bldsystemtools/commonbldutils/GenResult/status.tmpl
bldsystemtools/commonbldutils/GenResult/tools.tmpl
bldsystemtools/commonbldutils/GenerateChangesReport.pl
bldsystemtools/commonbldutils/GetDPComp/GetDPComp.pl
bldsystemtools/commonbldutils/GetDPComp/GetDPComp.pm
bldsystemtools/commonbldutils/GetDPComp/unzip_cbr_tools.pl
bldsystemtools/commonbldutils/InstallDevKit.pl
bldsystemtools/commonbldutils/PC_P4Table.pl
bldsystemtools/commonbldutils/PC_P4Table.pm
bldsystemtools/commonbldutils/PreBldChecks.pl
bldsystemtools/commonbldutils/PreBldChecks.pm
bldsystemtools/commonbldutils/ReleaseNotes.pl
bldsystemtools/commonbldutils/RemoveMASfromCBR.cmd
bldsystemtools/commonbldutils/RmInstalledEnv.pl
bldsystemtools/commonbldutils/SFPostProcessResults.pl
bldsystemtools/commonbldutils/SFUpdateLicenceHeader.cfg
bldsystemtools/commonbldutils/SFUpdateLicenceHeader.pl
bldsystemtools/commonbldutils/SetP4Client.pl
bldsystemtools/commonbldutils/SetP4Client.pm
bldsystemtools/commonbldutils/SweepStart.bat
bldsystemtools/commonbldutils/SweepStop.bat
bldsystemtools/commonbldutils/abldcache.pl
bldsystemtools/commonbldutils/bfcClient.pl
bldsystemtools/commonbldutils/buildenv.pl
bldsystemtools/commonbldutils/buildenv.pm
bldsystemtools/commonbldutils/cdb_sysbuild.bat
bldsystemtools/commonbldutils/check_tables.pl
bldsystemtools/commonbldutils/clean.pl
bldsystemtools/commonbldutils/defects_list.log
bldsystemtools/commonbldutils/delta_zip.pl
bldsystemtools/commonbldutils/getlatestrel.pl
bldsystemtools/commonbldutils/iprtool.pl
bldsystemtools/commonbldutils/make_directory_tree.pl
bldsystemtools/commonbldutils/mcl_dirs.lst
bldsystemtools/commonbldutils/missingstages.pl
bldsystemtools/commonbldutils/package.bat
bldsystemtools/commonbldutils/plat.ini
bldsystemtools/commonbldutils/postbuild.xml
bldsystemtools/commonbldutils/pushComp.pl
bldsystemtools/commonbldutils/record_delivery.pl
bldsystemtools/commonbldutils/record_delivery.pm
bldsystemtools/commonbldutils/relnotes.pl
bldsystemtools/commonbldutils/remove_old_builds.pl
bldsystemtools/commonbldutils/renumber.pl
bldsystemtools/commonbldutils/rom_metrics_list.pl
bldsystemtools/commonbldutils/runcbr.pl
bldsystemtools/commonbldutils/runcdb.xml
bldsystemtools/commonbldutils/rvct.ini
bldsystemtools/commonbldutils/start-perl.pl
bldsystemtools/commonbldutils/startbuild.pl
bldsystemtools/commonbldutils/startbuild.xml
bldsystemtools/commonbldutils/subst.pl
bldsystemtools/commonbldutils/tools_utils_common.history.xml
bldsystemtools/commonbldutils/tools_utils_common.mrp
bldsystemtools/sysdeftools/filter-module.xsl
bldsystemtools/sysdeftools/filtering.xsl
bldsystemtools/sysdeftools/group/sysdeftools.mrp
bldsystemtools/sysdeftools/joinsysdef-module.xsl
bldsystemtools/sysdeftools/joinsysdef.xsl
bldsystemtools/sysdeftools/mergesysdef-module.xsl
bldsystemtools/sysdeftools/mergesysdef.xsl
bldsystemtools/sysdeftools/sysdefdowngrade.xsl
bldsystemtools/sysdeftools/validate/checklinks.pl
bldsystemtools/sysdeftools/validate/modelcheck.xsl
bldsystemtools/sysdeftools/validate/test-model.xsl
bldsystemtools/sysdeftools/validate/validate-sysdef.xsl
buildtools_info/buildtools_metadata/buildtools_metadata.mrp
imgtools_os/romkiteka2/Utils/metarombuild.pl
imgtools_os/romkiteka2/config/featreg_default.cfg
imgtools_os/romkiteka2/group/BLD.INF
imgtools_os/romkiteka2/group/release.txt
imgtools_os/romkiteka2/group/tools_romkit.history.xml
imgtools_os/romkiteka2/group/tools_romkit.mrp
imgtools_os/romkiteka2/include/DEBUG.IBY
imgtools_os/romkiteka2/include/EPOCBASE.IBY
imgtools_os/romkiteka2/include/ESHELL.IBY
imgtools_os/romkiteka2/include/HEADER.IBY
imgtools_os/romkiteka2/include/MESON.IBY
imgtools_os/romkiteka2/include/OBEYFILE.IBY
imgtools_os/romkiteka2/include/PlatSec.oby
imgtools_os/romkiteka2/include/PlatSecDisabledCapsX.oby
imgtools_os/romkiteka2/include/RemovableFeatures.iby
imgtools_os/romkiteka2/include/bldinfo.hby
imgtools_os/romkiteka2/include/feature.iby
imgtools_os/romkiteka2/include/featureUIDs.h
imgtools_os/romkiteka2/include/featureUIDs.xml
imgtools_os/romkiteka2/include/featuredatabase.xml
imgtools_os/romkiteka2/include/kerneltrace.oby
imgtools_os/romkiteka2/include/pagedrom.oby
imgtools_os/romkiteka2/include/pagedrom_functional.oby
imgtools_os/romkiteka2/include/pagedrom_stressed.oby
imgtools_os/romkiteka2/include/textshell.oby
imgtools_os/romkiteka2/test/abs.var
imgtools_os/romkiteka2/test/incA/phone.hrh
imgtools_os/romkiteka2/test/incA/testA.iby
imgtools_os/romkiteka2/test/incB/testB.iby
imgtools_os/romkiteka2/test/incB/varB.oby
imgtools_os/romkiteka2/test/minimal.oby
imgtools_os/romkiteka2/test/minimal.oby.out
imgtools_os/romkiteka2/test/phone.var
imgtools_os/romkiteka2/test/release/armv5/faye.a1a2a3a4a5a6a7a8a9a0b1b2b3b4b5b6.dll
imgtools_os/romkiteka2/test/release/armv5/faye.dll.vmap
imgtools_os/romkiteka2/test/release/armv5/fred.dll
imgtools_os/romkiteka2/test/release/armv5_abiv1/dave.dll
imgtools_os/romkiteka2/test/release/armv5_abiv1/dora.c1c2c3c4c5c6c7c8c9c0d1d2d3d4d5d6.dll
imgtools_os/romkiteka2/test/release/armv5_abiv1/dora.dll.vmap
imgtools_os/romkiteka2/test/test.buildrom.pl
imgtools_os/romkiteka2/test/var1.oby
imgtools_os/romkiteka2/test/var1.oby.out
imgtools_os/romkiteka2/test/var2.oby
imgtools_os/romkiteka2/test/var2.oby.out
imgtools_os/romkiteka2/test/var3.oby
imgtools_os/romkiteka2/test/var3.oby.out
imgtools_os/romkiteka2/test/varB.out
imgtools_os/romkiteka2/tools/buildrom.txt
imgtools_os/romkiteka2/tools/cdf.dtd
imgtools_os/romkiteka2/tools/configpaging/configpaging.cfg
imgtools_os/romkiteka2/tools/configpaging/configpaging_recommended.cfg
imgtools_os/romkiteka2/tools/configpaging/configpaging_stressed.cfg
imgtools_os/romkiteka2/tools/featuredatabase.dtd
imgtools_os/romkiteka2/tools/featureuids.dtd
imgtools_os/romkiteka2/tools/imageContent.dtd
misccomponents/emulatorlauncher/group/bld.inf
misccomponents/emulatorlauncher/group/location.txt
misccomponents/emulatorlauncher/group/release.txt
misccomponents/emulatorlauncher/group/todo.txt
misccomponents/emulatorlauncher/group/tools_sdk_eng_emulator_launcher.history.xml
misccomponents/emulatorlauncher/group/tools_sdk_eng_emulator_launcher.mrp
misccomponents/emulatorlauncher/perl/console.bmp
misccomponents/emulatorlauncher/perl/console.ini
misccomponents/emulatorlauncher/perl/epoc.bat
misccomponents/emulatorlauncher/perl/epoc.pl
misccomponents/emulatorlauncher/perl/eshell.bat
misccomponents/emulatorlauncher/perl/eshell.pl
misccomponents/emulatorlauncher/src/RunPerl.cpp
misccomponents/emulatorlauncher/test/BuildInfo.txt
misccomponents/emulatorlauncher/test/BuildInfo1.txt
misccomponents/emulatorlauncher/test/BuildInfo2.txt
misccomponents/emulatorlauncher/test/BuildInfo3.txt
package_definition.xml
sbsv1_os/e32toolp/bldmake/abld.pl
sbsv1_os/e32toolp/bldmake/bldmake.bat
sbsv1_os/e32toolp/bldmake/bldmake.pl
sbsv1_os/e32toolp/bldmake/egmak.fil
sbsv1_os/e32toolp/bldmake/linkdeps.pl
sbsv1_os/e32toolp/bldmake/metabld.bat
sbsv1_os/e32toolp/bldmake/metabld.pl
sbsv1_os/e32toolp/bldmake/wrappermakefile.pm
sbsv1_os/e32toolp/design/makmake.mdl
sbsv1_os/e32toolp/design/makmake.ppt
sbsv1_os/e32toolp/e32util/_secure_E32Env.pm
sbsv1_os/e32toolp/e32util/armasm2as.pl
sbsv1_os/e32toolp/e32util/checkgcc.pm
sbsv1_os/e32toolp/e32util/checksource.pl
sbsv1_os/e32toolp/e32util/checksource.pm
sbsv1_os/e32toolp/e32util/copyfeaturevariants.pl
sbsv1_os/e32toolp/e32util/createrfifile.pl
sbsv1_os/e32toolp/e32util/defutl.pm
sbsv1_os/e32toolp/e32util/deletefeaturevariants.pl
sbsv1_os/e32toolp/e32util/e32tpver.pm
sbsv1_os/e32toolp/e32util/efreeze.bat
sbsv1_os/e32toolp/e32util/efreeze.pl
sbsv1_os/e32toolp/e32util/epocaif.pl
sbsv1_os/e32toolp/e32util/epocmbm.pl
sbsv1_os/e32toolp/e32util/epocrc.bat
sbsv1_os/e32toolp/e32util/epocrc.pl
sbsv1_os/e32toolp/e32util/featurevariantmap.pm
sbsv1_os/e32toolp/e32util/featurevariantparser.pm
sbsv1_os/e32toolp/e32util/fixsource.bat
sbsv1_os/e32toolp/e32util/gendef.pl
sbsv1_os/e32toolp/e32util/genshimsrc.bat
sbsv1_os/e32toolp/e32util/h2inc.pl
sbsv1_os/e32toolp/e32util/listfeaturevariants.pl
sbsv1_os/e32toolp/e32util/makedef.pl
sbsv1_os/e32toolp/e32util/omapsig.pl
sbsv1_os/e32toolp/e32util/prepdef.pl
sbsv1_os/e32toolp/e32util/preprocessor.pm
sbsv1_os/e32toolp/e32util/selectbootmak.pl
sbsv1_os/e32toolp/e32util/set-rvct.bat
sbsv1_os/e32toolp/genutil/conv_khronos_hdr_to_cpp.pl
sbsv1_os/e32toolp/genutil/conv_khronos_openvg_hdr_to_cpp.pl
sbsv1_os/e32toolp/genutil/ecopyfile.pl
sbsv1_os/e32toolp/genutil/emkdir.pl
sbsv1_os/e32toolp/genutil/ermdir.pl
sbsv1_os/e32toolp/genutil/err_formatter.pl
sbsv1_os/e32toolp/genutil/genutl.pm
sbsv1_os/e32toolp/genutil/listzip.pl
sbsv1_os/e32toolp/genutil/modload.pm
sbsv1_os/e32toolp/genutil/output.pm
sbsv1_os/e32toolp/genutil/pathutl.pm
sbsv1_os/e32toolp/genutil/prepfile.pm
sbsv1_os/e32toolp/group/bld.inf
sbsv1_os/e32toolp/group/build.txt
sbsv1_os/e32toolp/group/info.txt
sbsv1_os/e32toolp/group/perlprep.bat
sbsv1_os/e32toolp/group/release.txt
sbsv1_os/e32toolp/group/setupprj.bat
sbsv1_os/e32toolp/group/setver.bat
sbsv1_os/e32toolp/group/tools_e32toolp.mrp
sbsv1_os/e32toolp/kif/group/bld.inf
sbsv1_os/e32toolp/kif/group/kif1.xsd
sbsv1_os/e32toolp/kif/perl/genkif.pl
sbsv1_os/e32toolp/makmake/_secure_trgtype.pm
sbsv1_os/e32toolp/makmake/makdeps.pm
sbsv1_os/e32toolp/makmake/makhelp.pm
sbsv1_os/e32toolp/makmake/makmake.bat
sbsv1_os/e32toolp/makmake/makmake.pl
sbsv1_os/e32toolp/makmake/mmp.pm
sbsv1_os/e32toolp/memtrace/memtrace.bat
sbsv1_os/e32toolp/memtrace/memtrace.pl
sbsv1_os/e32toolp/platform/ARMV5.mk
sbsv1_os/e32toolp/platform/ARMV5SMP.bsf
sbsv1_os/e32toolp/platform/ARMV6.BSF
sbsv1_os/e32toolp/platform/ARMV6SMP.bsf
sbsv1_os/e32toolp/platform/ARMV6T2.bsf
sbsv1_os/e32toolp/platform/ARMV6_abiv1.BSF
sbsv1_os/e32toolp/platform/ARMV7.bsf
sbsv1_os/e32toolp/platform/GCCE.mk
sbsv1_os/e32toolp/platform/GCCEV6.bsf
sbsv1_os/e32toolp/platform/GCCEV6T2.bsf
sbsv1_os/e32toolp/platform/GCCEV7.bsf
sbsv1_os/e32toolp/platform/armutl.pm
sbsv1_os/e32toolp/platform/bpabiutl.pm
sbsv1_os/e32toolp/platform/cl_arm.pm
sbsv1_os/e32toolp/platform/cl_bpabi.pm
sbsv1_os/e32toolp/platform/cl_codewarrior.pm
sbsv1_os/e32toolp/platform/cl_edg.pm
sbsv1_os/e32toolp/platform/cl_gcc.pm
sbsv1_os/e32toolp/platform/cl_gccxml.pm
sbsv1_os/e32toolp/platform/cl_generic.pm
sbsv1_os/e32toolp/platform/cl_mingw.pm
sbsv1_os/e32toolp/platform/cl_tools.pm
sbsv1_os/e32toolp/platform/cl_vscw.pm
sbsv1_os/e32toolp/platform/cl_win.pm
sbsv1_os/e32toolp/platform/cl_x86.pm
sbsv1_os/e32toolp/platform/cl_x86gcc.pm
sbsv1_os/e32toolp/platform/cw_link_descriptor_template.cwlink
sbsv1_os/e32toolp/platform/cw_link_descriptor_template_v2.cwlink
sbsv1_os/e32toolp/platform/cw_project_template_v3.xml
sbsv1_os/e32toolp/platform/cw_project_template_v4.xml
sbsv1_os/e32toolp/platform/default_plats.txt
sbsv1_os/e32toolp/platform/default_plats_v2.txt
sbsv1_os/e32toolp/platform/e32plat.pm
sbsv1_os/e32toolp/platform/e32variant.pm
sbsv1_os/e32toolp/platform/extractvars.make
sbsv1_os/e32toolp/platform/fcloggerutl.pm
sbsv1_os/e32toolp/platform/filenamepolicyexclusions.txt
sbsv1_os/e32toolp/platform/findimp.pl
sbsv1_os/e32toolp/platform/ide_cw.pm
sbsv1_os/e32toolp/platform/ide_vc6.pm
sbsv1_os/e32toolp/platform/lockit_info.pm
sbsv1_os/e32toolp/platform/sym_lkup_util.pl
sbsv1_os/e32toolp/platform/winutl.pm
sbsv1_os/e32toolp/test/cw_ide_test.pl
sbsv1_os/e32toolp/test/featurevariantmap/a.cpp
sbsv1_os/e32toolp/test/featurevariantmap/b.cpp
sbsv1_os/e32toolp/test/featurevariantmap/featnames.txt
sbsv1_os/e32toolp/test/featurevariantmap/fred.dll
sbsv1_os/e32toolp/test/featurevariantmap/inc_jack/a.h
sbsv1_os/e32toolp/test/featurevariantmap/inc_jack/b.h
sbsv1_os/e32toolp/test/featurevariantmap/inc_noel/a.h
sbsv1_os/e32toolp/test/featurevariantmap/inc_noel/b.h
sbsv1_os/e32toolp/test/featurevariantmap/jack.hrh
sbsv1_os/e32toolp/test/featurevariantmap/jack2.hrh
sbsv1_os/e32toolp/test/featurevariantmap/john.12345678901234567890123456789012.dll
sbsv1_os/e32toolp/test/featurevariantmap/john.dll.vmap
sbsv1_os/e32toolp/test/featurevariantmap/noel.hrh
sbsv1_os/e32toolp/test/featurevariantmap/test.pl
sbsv1_os/e32toolp/test/featurevariantparser/a1.var
sbsv1_os/e32toolp/test/featurevariantparser/a2.var
sbsv1_os/e32toolp/test/featurevariantparser/b1a.var
sbsv1_os/e32toolp/test/featurevariantparser/b1b.var
sbsv1_os/e32toolp/test/featurevariantparser/b2.var
sbsv1_os/e32toolp/test/featurevariantparser/default.var
sbsv1_os/e32toolp/test/featurevariantparser/groupa.var
sbsv1_os/e32toolp/test/featurevariantparser/test.pl
sbsv1_os/e32toolp/test/fixeabidefs.bat
sbsv1_os/e32toolp/test/mmp_testlist.txt
sbsv1_os/e32toolp/test/mmpscan.pl
sbsv1_os/e32toolp/test/unittest.pl
sbsv1_os/e32toolp/toolinfo/gcce_plat2set.pm
sbsv1_os/e32toolp/toolinfo/rvct_plat2set.pm
sbsv1_os/e32toolp/toolinfo/rvct_ver2set.pm
srcanamdw_os/leavescan/group/Leavescan.mmp
srcanamdw_os/leavescan/group/bld.inf
srcanamdw_os/leavescan/group/testtools_leavescan.history.xml
srcanamdw_os/leavescan/group/testtools_leavescan.mrp
srcanamdw_os/leavescan/source/leavescan.cpp
srcanamdw_os/leavescan/test/LET/case2tef.py
srcanamdw_os/leavescan/test/LET/fl.py
srcanamdw_os/leavescan/test/LET/initcase.py
srcanamdw_os/leavescan/test/LET/let.py
srcanamdw_os/leavescan/test/LET/logdiff.py
srcanamdw_os/leavescan/test/LET/readme.txt
srcanamdw_os/leavescan/test/testcases/DEF-testcases/PCT-LeaveScan-DEF129216-001.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/PCT-LeaveScan-DEF129216-002.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/PCT-LeaveScan-DEF129771-01.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/PCT-LeaveScan-DEF129771-02.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/PCT-LeaveScan-DEF129771-03.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/PCT-LeaveScan-DEF129771-04.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/PCT-LeaveScan-DEF129771-05.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/PCT-LeaveScan-DEF129771-06.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/PCT-LeaveScan-DEF129771-07.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/PCT-LeaveScan-DEF129771-08.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/PCT-LeaveScan-DEF129771-09.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/PCT-LeaveScan-DEF129771-10.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/PCT-LeaveScan-DEF129771-11.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/PCT-LeaveScan-DEF129771-12.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-129216-001.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-129216-002.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-129216-003.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-129216-004.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-129216-005.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-129216-006.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-129216-007.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-129216-008.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-129216-009.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-129216-010.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-129216-011.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-129216-012.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-129216-013.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-129216-014.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-129216-015.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-129216-016.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-129216-017.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-129216-018.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-129216-019.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-129216-020.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-129216-021.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-129216-022.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-129216-023.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-129216-024.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132384-001.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132384-002.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132384-003.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132384-004.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132384-005.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132384-006.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132384-007.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132384-008.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132384-009.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132384-010.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132384-011.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132384-012.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132384-013.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132384-014.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132384-015.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132384-016.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132388-001.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132388-002.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132388-003.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132388-004.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132388-005.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132388-006.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132388-007.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132388-008.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132388-009.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132388-010.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132388-011.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132388-012.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132388-013.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132388-014.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132388-015.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132388-016.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132389-001.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132389-002.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132389-003.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132389-004.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132389-005.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132389-006.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132389-007.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132389-008.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132389-009.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132389-010.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132389-011.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132389-012.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132389-013.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132389-014.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132389-015.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132389-016.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132389-017.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132389-018.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132389-019.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132389-020.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132389-021.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132390-001.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132390-002.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132390-003.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132390-004.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132390-005.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132390-006.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132390-007.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132390-008.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132393-001.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132393-002.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132393-003.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132393-004.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132393-005.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132393-006.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132397-001.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132397-002.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132397-003.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132397-004.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132397-005.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132397-006.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132397-007.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132397-008.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132397-009.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-001.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-002.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-003.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-004.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-005.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-006.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-007.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-008.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-009.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-010.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-011.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-012.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-013.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-014.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-015.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-016.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-017.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-018.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-019.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-020.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-021.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-022.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-023.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-024.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-025.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-026.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-027.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-028.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-029.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-030.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-031.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-032.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-033.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-034.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-035.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-036.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-037.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-038.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-039.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-040.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-041.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-042.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-043.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-044.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-045.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-046.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-047.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-048.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-049.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-050.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-051.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-052.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-053.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-054.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-055.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-056.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-057.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-058.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-059.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-060.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-061.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-062.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-063.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-064.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-065.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-066.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-067.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-068.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-069.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-070.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-071.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-072.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-073.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-074.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-075.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-076.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-077.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-078.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-079.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-080.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-081.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-082.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-083.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-084.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-085.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-086.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-087.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-088.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-089.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-090.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-091.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-092.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-093.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-094.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-095.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-096.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-097.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-098.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-099.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-100.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-101.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-102.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-103.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-104.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-105.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-106.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-107.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-108.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-109.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-110.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-111.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-112.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-113.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-114.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-115.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-116.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-117.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-118.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-119.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-120.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-121.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-122.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-123.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-124.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-125.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-126.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-127.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-128.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-129.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-130.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-131.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-132.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-133.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-134.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-135.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-136.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-137.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-138.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-139.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-140.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-141.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-142.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-143.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-144.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-145.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-146.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-147.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-148.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-149.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-150.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-151.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-152.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-153.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-154.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-155.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-156.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-157.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-158.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-159.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-160.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-161.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-162.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-163.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-164.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-165.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-166.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-167.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-168.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-169.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-170.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-171.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-172.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-173.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-174.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-175.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-176.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-177.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-178.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-179.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-180.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-181.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-182.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-183.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-184.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-185.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-186.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-187.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-188.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-189.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-190.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-191.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-192.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-193.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-194.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-195.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-196.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-197.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-198.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-199.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-200.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-201.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-202.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-203.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-204.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-205.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-206.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-207.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-208.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-209.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-210.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-211.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-212.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-213.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-214.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-215.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-216.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-217.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-218.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-219.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-220.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-221.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-222.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-223.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-224.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-225.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-226.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-227.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-228.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-229.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-230.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-231.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-232.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-233.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-234.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-235.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-236.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-237.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-238.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-239.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-240.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-241.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-242.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-243.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-244.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-245.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-246.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-247.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-248.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-249.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-250.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-251.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-252.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-253.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-254.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-255.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-256.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-257.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-258.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-259.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-260.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-261.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-262.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-263.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-264.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-265.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-266.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-267.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-268.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-269.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-270.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-271.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-272.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-273.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-274.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-275.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-276.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-277.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-278.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-279.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-280.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-281.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-282.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-283.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-284.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-285.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-286.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-287.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-288.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-289.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-290.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-291.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-292.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-293.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-294.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-295.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-296.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-297.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-298.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-299.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-300.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-301.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-302.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-303.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-304.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-305.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-306.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-307.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-308.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-309.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-310.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-311.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-312.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-313.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-314.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-315.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-316.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-317.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-318.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-319.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-320.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-321.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-322.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-323.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-324.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-325.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-326.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-327.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-328.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-329.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-330.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-331.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-332.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-333.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-334.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-335.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-336.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-337.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-338.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-339.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-340.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-341.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-342.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-343.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-344.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-345.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-346.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-347.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-348.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-349.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-350.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-351.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-352.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-353.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-354.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-355.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-356.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-357.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-358.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-359.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-360.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-361.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-362.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-363.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-364.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-365.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-366.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-367.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-368.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-369.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-370.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-371.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-372.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-373.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-374.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-375.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-376.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-377.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-378.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-379.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-380.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-381.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-382.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-383.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-384.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-385.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-386.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-387.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-388.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-389.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-390.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-391.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-392.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-393.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-394.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-395.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-396.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-397.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-398.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-399.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-400.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-401.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-402.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-403.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-404.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-405.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-406.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-407.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-408.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-409.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-410.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-411.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-412.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-413.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-414.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-415.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-416.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-417.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-418.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-419.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-420.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-421.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-422.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-423.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-424.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-425.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-426.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-427.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-428.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-429.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-430.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-431.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-432.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-433.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-434.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-435.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-436.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-437.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-438.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-439.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-440.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-441.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-442.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-443.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-444.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-445.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-446.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-447.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-448.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-449.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-450.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-451.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-452.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-453.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-454.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-455.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-456.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-457.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-458.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-459.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-460.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-461.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-462.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-463.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-464.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-465.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-466.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-467.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-468.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-469.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-470.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-471.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-472.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-473.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-474.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-475.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-476.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-477.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-478.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-479.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-480.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-481.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-001.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-002.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-003.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-004.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-005.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-006.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-007.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-008.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-009.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-010.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-011.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-012.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-013.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-014.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-015.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-016.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-017.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-018.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-019.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-020.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-021.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-022.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-023.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-024.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-025.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-026.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-027.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-028.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-029.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-030.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-031.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-032.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-033.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-034.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-035.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-036.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-037.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-038.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-039.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-040.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-041.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-042.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-043.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-044.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-045.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-046.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-047.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-048.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-049.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-050.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-051.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-052.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-053.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-054.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-055.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-056.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-057.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-058.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-059.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-060.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-061.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-062.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-063.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-064.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-065.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-066.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-067.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-068.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-069.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-070.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-071.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-072.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-073.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-074.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-075.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-076.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-077.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-078.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-079.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-080.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-081.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-082.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-083.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-084.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-085.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-086.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-087.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-088.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-089.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-090.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-091.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-092.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-093.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-094.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-095.cpp
srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-096.cpp
srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-001.cpp
srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-002.cpp
srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-003.cpp
srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-004.cpp
srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-005.cpp
srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-006.cpp
srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-007.cpp
srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-008.cpp
srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-009.cpp
srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-010.cpp
srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-011.cpp
srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-012.cpp
srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-013.cpp
srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-014.cpp
srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-015.cpp
srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-016.cpp
srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-017.cpp
srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-018.cpp
srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-019.cpp
srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-020.cpp
srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-021.cpp
srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-022.cpp
srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-023.cpp
srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-024.cpp
srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-025.cpp
srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-026.cpp
srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-027.cpp
srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-028.cpp
srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-029.cpp
srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-030.cpp
srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-031.cpp
srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-032.cpp
srcanamdw_os/leavescan/test/testcases/LS11-testcases/PCT-LeaveScan-LS11-001.cpp
srcanamdw_os/leavescan/test/testcases/LS11-testcases/PCT-LeaveScan-LS11-002.cpp
srcanamdw_os/leavescan/test/testcases/LS11-testcases/PCT-LeaveScan-LS11-003.cpp
srcanamdw_os/leavescan/test/testcases/LS11-testcases/PCT-LeaveScan-LS11-004.cpp
srcanamdw_os/leavescan/test/testcases/LS11-testcases/PCT-LeaveScan-LS11-005.cpp
srcanamdw_os/leavescan/test/testcases/LS11-testcases/PCT-LeaveScan-LS11-006.cpp
srcanamdw_os/leavescan/test/testcases/LS11-testcases/PCT-LeaveScan-LS11-007.cpp
srcanamdw_os/leavescan/test/testcases/LS11-testcases/PCT-LeaveScan-LS11-008.cpp
srcanamdw_os/leavescan/test/testcases/LS11-testcases/PCT-LeaveScan-LS11-009.cpp
srcanamdw_os/leavescan/test/testcases/LS11-testcases/PCT-LeaveScan-LS11-010.cpp
srcanamdw_os/leavescan/test/testcases/LS11-testcases/PCT-LeaveScan-LS11-011.cpp
srcanamdw_os/leavescan/test/testcases/LS11-testcases/PCT-LeaveScan-LS11-012.cpp
srcanamdw_os/leavescan/test/testcases/LS11-testcases/PCT-LeaveScan-LS11-013.cpp
srcanamdw_os/leavescan/test/testcases/LS11-testcases/PCT-LeaveScan-LS11-014.cpp
srcanamdw_os/leavescan/test/testcases/LS11-testcases/PCT-LeaveScan-LS11-015.cpp
srcanamdw_os/leavescan/test/testcases/LS11-testcases/PCT-LeaveScan-LS11-016.cpp
srcanamdw_os/leavescan/test/testcases/LS11-testcases/PCT-LeaveScan-LS11-017.cpp
srcanamdw_os/leavescan/test/testcases/LS11-testcases/PCT-LeaveScan-LS11-018.cpp
srcanamdw_os/leavescan/test/testcases/LS11-testcases/PCT-LeaveScan-LS11-019.cpp
srcanamdw_os/leavescan/test/testcases/LS11-testcases/PCT-LeaveScan-LS11-020.cpp
srcanamdw_os/leavescan/test/testcases/LS11-testcases/PCT-LeaveScan-LS11-021.cpp
srcanamdw_os/leavescan/test/testcases/LS11-testcases/PCT-LeaveScan-LS11-022.cpp
srcanamdw_os/leavescan/test/testcases/LS11-testcases/PCT-LeaveScan-LS11-023.cpp
srcanamdw_os/leavescan/test/testcases/LS11-testcases/PCT-LeaveScan-LS11-024.cpp
srcanamdw_os/leavescan/test/testcases/LS11-testcases/PCT-LeaveScan-LS11-025.cpp
srcanamdw_os/leavescan/test/testcases/LS11-testcases/PCT-LeaveScan-LS11-026.cpp
srcanamdw_os/leavescan/test/testcases/LS11-testcases/PCT-LeaveScan-LS11-027.cpp
srcanamdw_os/leavescan/test/testcases/LS11-testcases/PCT-LeaveScan-LS11-028.cpp
srcanamdw_os/leavescan/test/testcases/LS11-testcases/PCT-LeaveScan-LS11-029.cpp
srcanamdw_os/leavescan/test/testcases/LS11-testcases/PCT-LeaveScan-LS11-030.cpp
srcanamdw_os/leavescan/test/testcases/LS11-testcases/PCT-LeaveScan-LS11-031.cpp
srcanamdw_os/leavescan/test/testcases/LS12-testcases/PCT-LeaveScan-LS12-001.cpp
srcanamdw_os/leavescan/test/testcases/LS12-testcases/PCT-LeaveScan-LS12-002.cpp
srcanamdw_os/leavescan/test/testcases/LS12-testcases/PCT-LeaveScan-LS12-003.cpp
srcanamdw_os/leavescan/test/testcases/LS12-testcases/PCT-LeaveScan-LS12-004.cpp
srcanamdw_os/leavescan/test/testcases/LS12-testcases/PCT-LeaveScan-LS12-005.cpp
srcanamdw_os/leavescan/test/testcases/LS12-testcases/PCT-LeaveScan-LS12-006.cpp
srcanamdw_os/leavescan/test/testcases/LS12-testcases/PCT-LeaveScan-LS12-007.cpp
srcanamdw_os/leavescan/test/testcases/LS12-testcases/PCT-LeaveScan-LS12-008.cpp
srcanamdw_os/leavescan/test/testcases/LS12-testcases/PCT-LeaveScan-LS12-009.cpp
srcanamdw_os/leavescan/test/testcases/LS12-testcases/PCT-LeaveScan-LS12-010.cpp
srcanamdw_os/leavescan/test/testcases/LS12-testcases/PCT-LeaveScan-LS12-011.cpp
srcanamdw_os/leavescan/test/testcases/LS12-testcases/PCT-LeaveScan-LS12-012.cpp
srcanamdw_os/leavescan/test/testcases/LS12-testcases/PCT-LeaveScan-LS12-013.cpp
srcanamdw_os/leavescan/test/testcases/LS12-testcases/PCT-LeaveScan-LS12-014.cpp
srcanamdw_os/leavescan/test/testcases/LS12-testcases/PCT-LeaveScan-LS12-015.cpp
srcanamdw_os/leavescan/test/testcases/LS12-testcases/PCT-LeaveScan-LS12-016.cpp
srcanamdw_os/leavescan/test/testcases/LS12-testcases/PCT-LeaveScan-LS12-017.cpp
srcanamdw_os/leavescan/test/testcases/LS12-testcases/PCT-LeaveScan-LS12-018.cpp
srcanamdw_os/leavescan/test/testcases/LS12-testcases/PCT-LeaveScan-LS12-019.cpp
srcanamdw_os/leavescan/test/testcases/LS12-testcases/PCT-LeaveScan-LS12-020.cpp
srcanamdw_os/leavescan/test/testcases/LS12-testcases/PCT-LeaveScan-LS12-021.cpp
srcanamdw_os/leavescan/test/testcases/LS12-testcases/PCT-LeaveScan-LS12-022.cpp
srcanamdw_os/leavescan/test/testcases/LS12-testcases/PCT-LeaveScan-LS12-023.cpp
srcanamdw_os/leavescan/test/testcases/LS12-testcases/PCT-LeaveScan-LS12-024.cpp
srcanamdw_os/leavescan/test/testcases/LS12-testcases/PCT-LeaveScan-LS12-025.cpp
srcanamdw_os/leavescan/test/testcases/LS12-testcases/PCT-LeaveScan-LS12-026.cpp
srcanamdw_os/leavescan/test/testcases/LS12-testcases/PCT-LeaveScan-LS12-027.cpp
srcanamdw_os/leavescan/test/testcases/LS12-testcases/PCT-LeaveScan-LS12-028.cpp
srcanamdw_os/leavescan/test/testcases/LS12-testcases/PCT-LeaveScan-LS12-029.cpp
srcanamdw_os/leavescan/test/testcases/LS12-testcases/PCT-LeaveScan-LS12-030.cpp
srcanamdw_os/leavescan/test/testcases/LS13-testcases/PCT-LeaveScan-LS13-001.cpp
srcanamdw_os/leavescan/test/testcases/LS13-testcases/PCT-LeaveScan-LS13-002.cpp
srcanamdw_os/leavescan/test/testcases/LS13-testcases/PCT-LeaveScan-LS13-003.cpp
srcanamdw_os/leavescan/test/testcases/LS13-testcases/PCT-LeaveScan-LS13-004.cpp
srcanamdw_os/leavescan/test/testcases/LS13-testcases/PCT-LeaveScan-LS13-005.cpp
srcanamdw_os/leavescan/test/testcases/LS13-testcases/PCT-LeaveScan-LS13-006.cpp
srcanamdw_os/leavescan/test/testcases/LS13-testcases/PCT-LeaveScan-LS13-007.cpp
srcanamdw_os/leavescan/test/testcases/LS13-testcases/PCT-LeaveScan-LS13-008.cpp
srcanamdw_os/leavescan/test/testcases/LS13-testcases/PCT-LeaveScan-LS13-009.cpp
srcanamdw_os/leavescan/test/testcases/LS13-testcases/PCT-LeaveScan-LS13-010.cpp
srcanamdw_os/leavescan/test/testcases/LS13-testcases/PCT-LeaveScan-LS13-011.cpp
srcanamdw_os/leavescan/test/testcases/LS13-testcases/PCT-LeaveScan-LS13-012.cpp
srcanamdw_os/leavescan/test/testcases/LS13-testcases/PCT-LeaveScan-LS13-013.cpp
srcanamdw_os/leavescan/test/testcases/LS13-testcases/PCT-LeaveScan-LS13-014.cpp
srcanamdw_os/leavescan/test/testcases/LS13-testcases/PCT-LeaveScan-LS13-015.cpp
srcanamdw_os/leavescan/test/testcases/LS13-testcases/PCT-LeaveScan-LS13-016.cpp
srcanamdw_os/leavescan/test/testcases/LS13-testcases/PCT-LeaveScan-LS13-017.cpp
srcanamdw_os/leavescan/test/testcases/LS14-testcases/PCT-LeaveScan-LS14-001.cpp
srcanamdw_os/leavescan/test/testcases/LS14-testcases/PCT-LeaveScan-LS14-002.cpp
srcanamdw_os/leavescan/test/testcases/LS14-testcases/PCT-LeaveScan-LS14-003.cpp
srcanamdw_os/leavescan/test/testcases/LS14-testcases/PCT-LeaveScan-LS14-004.cpp
srcanamdw_os/leavescan/test/testcases/LS14-testcases/PCT-LeaveScan-LS14-005.cpp
srcanamdw_os/leavescan/test/testcases/LS14-testcases/PCT-LeaveScan-LS14-006.cpp
srcanamdw_os/leavescan/test/testcases/LS14-testcases/PCT-LeaveScan-LS14-007.cpp
srcanamdw_os/leavescan/test/testcases/LS14-testcases/PCT-LeaveScan-LS14-008.cpp
srcanamdw_os/leavescan/test/testcases/LS14-testcases/PCT-LeaveScan-LS14-009.cpp
srcanamdw_os/leavescan/test/testcases/LS14-testcases/PCT-LeaveScan-LS14-010.cpp
srcanamdw_os/leavescan/test/testcases/LS14-testcases/PCT-LeaveScan-LS14-011.cpp
srcanamdw_os/leavescan/test/testcases/LS14-testcases/PCT-LeaveScan-LS14-012.cpp
srcanamdw_os/leavescan/test/testcases/LS14-testcases/PCT-LeaveScan-LS14-013.cpp
srcanamdw_os/leavescan/test/testcases/LS14-testcases/PCT-LeaveScan-LS14-014.cpp
srcanamdw_os/leavescan/test/testcases/LS14-testcases/PCT-LeaveScan-LS14-015.cpp
srcanamdw_os/leavescan/test/testcases/LS14-testcases/PCT-LeaveScan-LS14-016.cpp
srcanamdw_os/leavescan/test/testcases/LS14-testcases/PCT-LeaveScan-LS14-017.cpp
srcanamdw_os/leavescan/test/testcases/LS14-testcases/PCT-LeaveScan-LS14-018.cpp
srcanamdw_os/leavescan/test/testcases/LS15-testcases/PCT-LeaveScan-LS15-001.cpp
srcanamdw_os/leavescan/test/testcases/LS15-testcases/PCT-LeaveScan-LS15-002.cpp
srcanamdw_os/leavescan/test/testcases/LS15-testcases/PCT-LeaveScan-LS15-003.cpp
srcanamdw_os/leavescan/test/testcases/LS15-testcases/PCT-LeaveScan-LS15-004.cpp
srcanamdw_os/leavescan/test/testcases/LS15-testcases/PCT-LeaveScan-LS15-005.cpp
srcanamdw_os/leavescan/test/testcases/LS15-testcases/PCT-LeaveScan-LS15-006.cpp
srcanamdw_os/leavescan/test/testcases/LS15-testcases/PCT-LeaveScan-LS15-007.cpp
srcanamdw_os/leavescan/test/testcases/LS15-testcases/PCT-LeaveScan-LS15-008.cpp
srcanamdw_os/leavescan/test/testcases/LS15-testcases/PCT-LeaveScan-LS15-009.cpp
srcanamdw_os/leavescan/test/testcases/LS15-testcases/PCT-LeaveScan-LS15-010.cpp
srcanamdw_os/leavescan/test/testcases/LS15-testcases/PCT-LeaveScan-LS15-011.cpp
srcanamdw_os/leavescan/test/testcases/LS15-testcases/PCT-LeaveScan-LS15-012.cpp
srcanamdw_os/leavescan/test/testcases/LS15-testcases/PCT-LeaveScan-LS15-013.cpp
srcanamdw_os/leavescan/test/testcases/LS15-testcases/PCT-LeaveScan-LS15-014.cpp
srcanamdw_os/leavescan/test/testcases/LS15-testcases/PCT-LeaveScan-LS15-015.cpp
srcanamdw_os/leavescan/test/testcases/LS15-testcases/PCT-LeaveScan-LS15-016.cpp
srcanamdw_os/leavescan/test/testcases/LS15-testcases/PCT-LeaveScan-LS15-017.cpp
srcanamdw_os/leavescan/test/testcases/LS15-testcases/PCT-LeaveScan-LS15-018.cpp
srcanamdw_os/leavescan/test/testcases/LS16-testcases/PCT-LeaveScan-LS16-001.cpp
srcanamdw_os/leavescan/test/testcases/LS16-testcases/PCT-LeaveScan-LS16-002.cpp
srcanamdw_os/leavescan/test/testcases/LS16-testcases/PCT-LeaveScan-LS16-003.cpp
srcanamdw_os/leavescan/test/testcases/LS16-testcases/PCT-LeaveScan-LS16-004.cpp
srcanamdw_os/leavescan/test/testcases/LS16-testcases/PCT-LeaveScan-LS16-005.cpp
srcanamdw_os/leavescan/test/testcases/LS16-testcases/PCT-LeaveScan-LS16-006.cpp
srcanamdw_os/leavescan/test/testcases/LS16-testcases/PCT-LeaveScan-LS16-007.cpp
srcanamdw_os/leavescan/test/testcases/LS16-testcases/PCT-LeaveScan-LS16-008.cpp
srcanamdw_os/leavescan/test/testcases/LS16-testcases/PCT-LeaveScan-LS16-009.cpp
srcanamdw_os/leavescan/test/testcases/LS16-testcases/PCT-LeaveScan-LS16-010.cpp
srcanamdw_os/leavescan/test/testcases/LS16-testcases/PCT-LeaveScan-LS16-011.cpp
srcanamdw_os/leavescan/test/testcases/LS16-testcases/PCT-LeaveScan-LS16-012.cpp
srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-001.cpp
srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-002.cpp
srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-003.cpp
srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-004.cpp
srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-005.cpp
srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-006.cpp
srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-007.cpp
srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-008.cpp
srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-009.cpp
srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-010.cpp
srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-011.cpp
srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-012.cpp
srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-013.cpp
srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-014.cpp
srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-015.cpp
srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-016.cpp
srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-017.cpp
srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-018.cpp
srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-019.cpp
srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-020.cpp
srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-021.cpp
srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-022.cpp
srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-023.cpp
srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-024.cpp
srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-025.cpp
srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-026.cpp
srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-027.cpp
srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-028.cpp
srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-029.cpp
srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-030.cpp
srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-031.cpp
srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-032.cpp
srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-033.cpp
srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-034.cpp
srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-035.cpp
srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-036.cpp
srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-037.cpp
srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-038.cpp
srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-039.cpp
srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-040.cpp
srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-041.cpp
srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-042.cpp
srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-043.cpp
srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-044.cpp
srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-045.cpp
srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-046.cpp
srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-047.cpp
srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-048.cpp
srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-049.cpp
srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-050.cpp
srcanamdw_os/leavescan/test/testcases/LS3-testcases/PCT-LeaveScan-LS3-001.cpp
srcanamdw_os/leavescan/test/testcases/LS3-testcases/PCT-LeaveScan-LS3-002.cpp
srcanamdw_os/leavescan/test/testcases/LS3-testcases/PCT-LeaveScan-LS3-003.cpp
srcanamdw_os/leavescan/test/testcases/LS3-testcases/PCT-LeaveScan-LS3-004.cpp
srcanamdw_os/leavescan/test/testcases/LS3-testcases/PCT-LeaveScan-LS3-005.cpp
srcanamdw_os/leavescan/test/testcases/LS3-testcases/PCT-LeaveScan-LS3-006.cpp
srcanamdw_os/leavescan/test/testcases/LS3-testcases/PCT-LeaveScan-LS3-007.cpp
srcanamdw_os/leavescan/test/testcases/LS3-testcases/PCT-LeaveScan-LS3-008.cpp
srcanamdw_os/leavescan/test/testcases/LS3-testcases/PCT-LeaveScan-LS3-009.cpp
srcanamdw_os/leavescan/test/testcases/LS3-testcases/PCT-LeaveScan-LS3-010.cpp
srcanamdw_os/leavescan/test/testcases/LS3-testcases/PCT-LeaveScan-LS3-011.cpp
srcanamdw_os/leavescan/test/testcases/LS3-testcases/PCT-LeaveScan-LS3-012.cpp
srcanamdw_os/leavescan/test/testcases/LS3-testcases/PCT-LeaveScan-LS3-013.cpp
srcanamdw_os/leavescan/test/testcases/LS3-testcases/PCT-LeaveScan-LS3-014.cpp
srcanamdw_os/leavescan/test/testcases/LS3-testcases/PCT-LeaveScan-LS3-015.cpp
srcanamdw_os/leavescan/test/testcases/LS3-testcases/PCT-LeaveScan-LS3-016.cpp
srcanamdw_os/leavescan/test/testcases/LS3-testcases/PCT-LeaveScan-LS3-017.cpp
srcanamdw_os/leavescan/test/testcases/LS3-testcases/PCT-LeaveScan-LS3-018.cpp
srcanamdw_os/leavescan/test/testcases/LS3-testcases/PCT-LeaveScan-LS3-019.cpp
srcanamdw_os/leavescan/test/testcases/LS3-testcases/PCT-LeaveScan-LS3-020.cpp
srcanamdw_os/leavescan/test/testcases/LS3-testcases/PCT-LeaveScan-LS3-021.cpp
srcanamdw_os/leavescan/test/testcases/LS3-testcases/PCT-LeaveScan-LS3-022.cpp
srcanamdw_os/leavescan/test/testcases/LS3-testcases/PCT-LeaveScan-LS3-023.cpp
srcanamdw_os/leavescan/test/testcases/LS3-testcases/PCT-LeaveScan-LS3-024.cpp
srcanamdw_os/leavescan/test/testcases/LS3-testcases/PCT-LeaveScan-LS3-025.cpp
toolsandutils/autotest/Test/th1.cpp
toolsandutils/autotest/Test/th1.mmp
toolsandutils/autotest/Test/th2.cpp
toolsandutils/autotest/Test/th2.mmp
toolsandutils/autotest/bmarm/autotestu.def
toolsandutils/autotest/bwins/autotestu.def
toolsandutils/autotest/eabi/autotestU.def
toolsandutils/autotest/group/autotest.iby
toolsandutils/autotest/group/autotest.mmp
toolsandutils/autotest/group/bld.inf
toolsandutils/autotest/group/tools_autotest.history.xml
toolsandutils/autotest/group/tools_autotest.mrp
toolsandutils/autotest/inc/autotest.h
toolsandutils/autotest/src/autotest.cpp
toolsandutils/buildsystem/bin/java/symbianant.jar
toolsandutils/buildsystem/extension/app-services/buildstubsis.meta
toolsandutils/buildsystem/extension/app-services/buildstubsis.mk
toolsandutils/buildsystem/extension/app-services/buildupgradesis.meta
toolsandutils/buildsystem/extension/app-services/buildupgradesis.mk
toolsandutils/buildsystem/extension/app-services/tzlocaltestserver.meta
toolsandutils/buildsystem/extension/app-services/tzlocaltestserver.mk
toolsandutils/buildsystem/extension/app-services/wlddatabasekit_sec.meta
toolsandutils/buildsystem/extension/app-services/wlddatabasekit_sec.mk
toolsandutils/buildsystem/extension/application-protocols/buildstubsis.meta
toolsandutils/buildsystem/extension/application-protocols/buildstubsis.mk
toolsandutils/buildsystem/extension/base/base_rvct_common.mk
toolsandutils/buildsystem/extension/base/bootstrap.meta
toolsandutils/buildsystem/extension/base/bootstrap.mk
toolsandutils/buildsystem/extension/base/config.meta
toolsandutils/buildsystem/extension/base/config.mk
toolsandutils/buildsystem/extension/base/copy_default.meta
toolsandutils/buildsystem/extension/base/copy_default.mk
toolsandutils/buildsystem/extension/base/genexec.meta
toolsandutils/buildsystem/extension/base/genexec.mk
toolsandutils/buildsystem/extension/base/h2_genbootinc.meta
toolsandutils/buildsystem/extension/base/h2_genbootinc.mk
toolsandutils/buildsystem/extension/base/h2_restricted_coreldr.meta
toolsandutils/buildsystem/extension/base/h2_restricted_coreldr.mk
toolsandutils/buildsystem/extension/base/h4_genbootinc.meta
toolsandutils/buildsystem/extension/base/h4_genbootinc.mk
toolsandutils/buildsystem/extension/base/h4_restricted_coreldr.meta
toolsandutils/buildsystem/extension/base/h4_restricted_coreldr.mk
toolsandutils/buildsystem/extension/base/h4_restricted_on_coreldr.meta
toolsandutils/buildsystem/extension/base/h4_restricted_on_coreldr.mk
toolsandutils/buildsystem/extension/base/h4_restricted_on_miniboot.meta
toolsandutils/buildsystem/extension/base/h4_restricted_on_miniboot.mk
toolsandutils/buildsystem/extension/base/integrator_lmnand2_coreldr.meta
toolsandutils/buildsystem/extension/base/integrator_lmnand2_coreldr.mk
toolsandutils/buildsystem/extension/base/integrator_lmnand2_miniboot.meta
toolsandutils/buildsystem/extension/base/integrator_lmnand2_miniboot.mk
toolsandutils/buildsystem/extension/base/lab_restricted_miniboot.flm
toolsandutils/buildsystem/extension/base/lab_restricted_miniboot.meta
toolsandutils/buildsystem/extension/base/lab_restricted_miniboot.mk
toolsandutils/buildsystem/extension/base/lab_restricted_miniboot.xml
toolsandutils/buildsystem/extension/base/lubbock_coreldr.meta
toolsandutils/buildsystem/extension/base/lubbock_coreldr.mk
toolsandutils/buildsystem/extension/base/lubbock_miniboot.meta
toolsandutils/buildsystem/extension/base/lubbock_miniboot.mk
toolsandutils/buildsystem/extension/base/nand_fbr_offset.meta
toolsandutils/buildsystem/extension/base/nand_fbr_offset.mk
toolsandutils/buildsystem/extension/base/ne1_tb_genbootinc.meta
toolsandutils/buildsystem/extension/base/ne1_tb_genbootinc.mk
toolsandutils/buildsystem/extension/base/ne1_tb_restricted_coreldr.flm
toolsandutils/buildsystem/extension/base/ne1_tb_restricted_coreldr.meta
toolsandutils/buildsystem/extension/base/ne1_tb_restricted_coreldr.mk
toolsandutils/buildsystem/extension/base/ne1_tb_restricted_coreldr.xml
toolsandutils/buildsystem/extension/base/omap3_genbootinc.meta
toolsandutils/buildsystem/extension/base/omap3_genbootinc.mk
toolsandutils/buildsystem/extension/base/omap3_restricted_coreldr.flm
toolsandutils/buildsystem/extension/base/omap3_restricted_coreldr.meta
toolsandutils/buildsystem/extension/base/omap3_restricted_coreldr.mk
toolsandutils/buildsystem/extension/base/omap3_restricted_coreldr.xml
toolsandutils/buildsystem/extension/converged-comms/createcommdbs.meta
toolsandutils/buildsystem/extension/converged-comms/createcommdbs.mk
toolsandutils/buildsystem/extension/converged-comms/installdefaultcommdb.meta
toolsandutils/buildsystem/extension/converged-comms/installdefaultcommdb.mk
toolsandutils/buildsystem/extension/graphics/gen_khronos_cpp_from_hdr.meta
toolsandutils/buildsystem/extension/graphics/gen_khronos_cpp_from_hdr.mk
toolsandutils/buildsystem/extension/graphics/gen_khronos_openvg_cpp_from_hdr.meta
toolsandutils/buildsystem/extension/graphics/gen_khronos_openvg_cpp_from_hdr.mk
toolsandutils/buildsystem/extension/graphics/genpdrs.meta
toolsandutils/buildsystem/extension/graphics/genpdrs.mk
toolsandutils/buildsystem/extension/security/upsserver.meta
toolsandutils/buildsystem/extension/security/upsserver.mk
toolsandutils/buildsystem/extension/syslibs/conversiontable.meta
toolsandutils/buildsystem/extension/syslibs/conversiontable.mk
toolsandutils/buildsystem/extension/syslibs/fm_copyfile_to_winscw_zdrive.meta
toolsandutils/buildsystem/extension/syslibs/fm_copyfile_to_winscw_zdrive.mk
toolsandutils/buildsystem/extension/syslibs/generate_cpp.meta
toolsandutils/buildsystem/extension/syslibs/generate_cpp.mk
toolsandutils/buildsystem/extension/syslibs/generate_snm.meta
toolsandutils/buildsystem/extension/syslibs/generate_snm.mk
toolsandutils/buildsystem/extension/syslibs/test/bafl_copytestfiles.meta
toolsandutils/buildsystem/extension/syslibs/test/bafl_copytestfiles.mk
toolsandutils/buildsystem/extension/syslibs/test/bafl_resource_files.meta
toolsandutils/buildsystem/extension/syslibs/test/bafl_resource_files.mk
toolsandutils/buildsystem/extension/syslibs/test/centrep_copydatfile.meta
toolsandutils/buildsystem/extension/syslibs/test/centrep_copydatfile.mk
toolsandutils/buildsystem/extension/syslibs/test/centrep_copyincentrepsrv.meta
toolsandutils/buildsystem/extension/syslibs/test/centrep_copyincentrepsrv.mk
toolsandutils/buildsystem/extension/syslibs/test/centrep_copypctestfile.meta
toolsandutils/buildsystem/extension/syslibs/test/centrep_copypctestfile.mk
toolsandutils/buildsystem/extension/syslibs/test/centrep_copypctestfilev2.meta
toolsandutils/buildsystem/extension/syslibs/test/centrep_copypctestfilev2.mk
toolsandutils/buildsystem/extension/syslibs/test/charconv_testpostbuild.meta
toolsandutils/buildsystem/extension/syslibs/test/charconv_testpostbuild.mk
toolsandutils/buildsystem/extension/syslibs/test/charconv_tiso8859x_generate_cpp.meta
toolsandutils/buildsystem/extension/syslibs/test/charconv_tiso8859x_generate_cpp.mk
toolsandutils/buildsystem/extension/syslibs/test/charconv_tsnmdata.meta
toolsandutils/buildsystem/extension/syslibs/test/charconv_tsnmdata.mk
toolsandutils/buildsystem/extension/syslibs/test/dbms_copytestdbscfiles.meta
toolsandutils/buildsystem/extension/syslibs/test/dbms_copytestdbscfiles.mk
toolsandutils/buildsystem/extension/syslibs/test/ecom3_buildsis.meta
toolsandutils/buildsystem/extension/syslibs/test/ecom3_buildsis.mk
toolsandutils/buildsystem/extension/syslibs/test/ecom3_postbuild.meta
toolsandutils/buildsystem/extension/syslibs/test/ecom3_postbuild.mk
toolsandutils/buildsystem/extension/syslibs/test/ecom3_relocatetarget.meta
toolsandutils/buildsystem/extension/syslibs/test/ecom3_relocatetarget.mk
toolsandutils/buildsystem/extension/syslibs/test/featmgr_moveplugin.meta
toolsandutils/buildsystem/extension/syslibs/test/featmgr_moveplugin.mk
toolsandutils/buildsystem/extension/syslibs/test/logeng_copytestfiles.meta
toolsandutils/buildsystem/extension/syslibs/test/logeng_copytestfiles.mk
toolsandutils/buildsystem/extension/syslibs/test/sql_copyperfsqltestfiles.meta
toolsandutils/buildsystem/extension/syslibs/test/sql_copyperfsqltestfiles.mk
toolsandutils/buildsystem/extension/syslibs/test/sql_copysqltestfiles.meta
toolsandutils/buildsystem/extension/syslibs/test/sql_copysqltestfiles.mk
toolsandutils/buildsystem/extension/syslibs/test/sqlite3_copysqlite3testfiles.meta
toolsandutils/buildsystem/extension/syslibs/test/sqlite3_copysqlite3testfiles.mk
toolsandutils/buildsystem/extension/syslibs/test/sqlite3_securecopytestfiles.meta
toolsandutils/buildsystem/extension/syslibs/test/sqlite3_securecopytestfiles.mk
toolsandutils/buildsystem/extension/syslibs/test/xml_sitestfiledist.meta
toolsandutils/buildsystem/extension/syslibs/test/xml_sitestfiledist.mk
toolsandutils/buildsystem/extension/syslibs/test/xml_stringdictionary00tagtable.meta
toolsandutils/buildsystem/extension/syslibs/test/xml_stringdictionary00tagtable.mk
toolsandutils/buildsystem/extension/syslibs/test/xml_syncmltestfiledist.meta
toolsandutils/buildsystem/extension/syslibs/test/xml_syncmltestfiledist.mk
toolsandutils/buildsystem/extension/syslibs/test/xml_wmltestfiledist.meta
toolsandutils/buildsystem/extension/syslibs/test/xml_wmltestfiledist.mk
toolsandutils/buildsystem/extension/syslibs/test/xml_xmlcmatchdatapostbuild.meta
toolsandutils/buildsystem/extension/syslibs/test/xml_xmlcmatchdatapostbuild.mk
toolsandutils/buildsystem/extension/syslibs/word_template.meta
toolsandutils/buildsystem/extension/syslibs/word_template.mk
toolsandutils/buildsystem/extension/techview/uiklaf_resource.meta
toolsandutils/buildsystem/extension/techview/uiklaf_resource.mk
toolsandutils/buildsystem/extension/tools/ant_launch.flm
toolsandutils/buildsystem/extension/tools/ant_launch.meta
toolsandutils/buildsystem/extension/tools/ant_launch.mk
toolsandutils/buildsystem/extension/tools/ant_launch.xml
toolsandutils/buildsystem/extension/tools/bldex.meta
toolsandutils/buildsystem/extension/tools/bldex.mk
toolsandutils/buildsystem/extension/tools/compsupp.meta
toolsandutils/buildsystem/extension/tools/compsupp.mk
toolsandutils/buildsystem/extension/tools/features.meta
toolsandutils/buildsystem/extension/tools/features.mk
toolsandutils/buildsystem/extension/tools/jni_ant_launch.meta
toolsandutils/buildsystem/extension/tools/jni_ant_launch.mk
toolsandutils/buildsystem/extension/tools/kif.meta
toolsandutils/buildsystem/extension/tools/kif.mk
toolsandutils/buildsystem/extension/tools/py2exe.meta
toolsandutils/buildsystem/extension/tools/py2exe.mk
toolsandutils/buildsystem/extension/tools/raptor_linux_dist.meta
toolsandutils/buildsystem/extension/tools/raptor_linux_dist.mk
toolsandutils/buildsystem/extension/tools/stlport.meta
toolsandutils/buildsystem/extension/tools/stlport.mk
toolsandutils/buildsystem/extension/tools/x86tool.meta
toolsandutils/buildsystem/extension/tools/x86tool.mk
toolsandutils/buildsystem/shell/cmd.mk
toolsandutils/buildsystem/shell/generic.mk
toolsandutils/buildsystem/shell/sh.mk
toolsandutils/buildsystem/test/binaryvariation/Bld.inf
toolsandutils/buildsystem/test/binaryvariation/CommonFramework.h
toolsandutils/buildsystem/test/binaryvariation/InvariantStaticDLL.cpp
toolsandutils/buildsystem/test/binaryvariation/InvariantStaticDLL.h
toolsandutils/buildsystem/test/binaryvariation/InvariantStaticDLL.mmp
toolsandutils/buildsystem/test/binaryvariation/InvariantStaticDLLarm.def
toolsandutils/buildsystem/test/binaryvariation/InvariantStaticDLLwin.def
toolsandutils/buildsystem/test/binaryvariation/UseStaticDLL.cpp
toolsandutils/buildsystem/test/binaryvariation/UseStaticDLL.mmp
toolsandutils/buildsystem/test/binaryvariation/VariantStaticDLL.cpp
toolsandutils/buildsystem/test/binaryvariation/VariantStaticDLL.h
toolsandutils/buildsystem/test/binaryvariation/VariantStaticDLL.mmp
toolsandutils/buildsystem/test/binaryvariation/VariantStaticDLLarm.def
toolsandutils/buildsystem/test/binaryvariation/VariantStaticDLLwin.def
toolsandutils/buildsystem/test/binaryvariation/bvtest.txt
toolsandutils/buildsystem/test/binaryvariation/default.var
toolsandutils/buildsystem/test/binaryvariation/test.pl
toolsandutils/buildsystem/test/binaryvariation/variant_a.hrh
toolsandutils/buildsystem/test/binaryvariation/variant_a.var
toolsandutils/buildsystem/test/binaryvariation/variant_a_extra.hrh
toolsandutils/buildsystem/test/binaryvariation/variant_b.hrh
toolsandutils/buildsystem/test/binaryvariation/variant_b.var
toolsandutils/buildsystem/test/binaryvariation/variant_b_extra.hrh
toolsandutils/buildsystem/test/binaryvariation/variant_c.var
toolsandutils/buildsystem/test/extensions/my_testing.01
toolsandutils/buildsystem/test/extensions/test.pl
toolsandutils/buildsystem/test/helloworld/Bld.inf
toolsandutils/buildsystem/test/helloworld/CommonFramework.h
toolsandutils/buildsystem/test/helloworld/HelloWorld.cpp
toolsandutils/buildsystem/test/helloworld/HelloWorld.mmp
toolsandutils/buildsystem/test/helloworld/test.pl
toolsandutils/buildsystem/test/smoketest.pl
toolsandutils/buildsystem/tools/buildloggers/group/build.mk
toolsandutils/buildsystem/tools/buildloggers/src/com/symbian/ant/AbldWhatLogger.java
toolsandutils/buildsystem/tools/buildloggers/src/com/symbian/ant/ScanLogger.java
toolsandutils/e32tools/bin2coff/bin2coff.cpp
toolsandutils/e32tools/checklib/library/library.cpp
toolsandutils/e32tools/checklib/library/library.h
toolsandutils/e32tools/checklib/main.cpp
toolsandutils/e32tools/checklib/misc/endian.cpp
toolsandutils/e32tools/checklib/misc/endian.h
toolsandutils/e32tools/checklib/object/coff/coff.h
toolsandutils/e32tools/checklib/object/coff/coff_file_header.cpp
toolsandutils/e32tools/checklib/object/coff/coff_file_header.h
toolsandutils/e32tools/checklib/object/coff/coff_string_table.cpp
toolsandutils/e32tools/checklib/object/coff/coff_string_table.h
toolsandutils/e32tools/checklib/object/coff/coff_symbol.cpp
toolsandutils/e32tools/checklib/object/coff/coff_symbol.h
toolsandutils/e32tools/checklib/object/coff_object.cpp
toolsandutils/e32tools/checklib/object/elf/elf_file_header.cpp
toolsandutils/e32tools/checklib/object/elf/elf_file_header.h
toolsandutils/e32tools/checklib/object/elf/elf_section_header.cpp
toolsandutils/e32tools/checklib/object/elf/elf_section_header.h
toolsandutils/e32tools/checklib/object/elf/elf_string_table.cpp
toolsandutils/e32tools/checklib/object/elf/elf_string_table.h
toolsandutils/e32tools/checklib/object/elf/elf_symbol.cpp
toolsandutils/e32tools/checklib/object/elf/elf_symbol.h
toolsandutils/e32tools/checklib/object/elf_object.cpp
toolsandutils/e32tools/checklib/object/object.cpp
toolsandutils/e32tools/checklib/object/object.h
toolsandutils/e32tools/checklib/tag/tag_coff
toolsandutils/e32tools/checklib/tag/tag_elf
toolsandutils/e32tools/compress/byte_pair.cpp
toolsandutils/e32tools/compress/byte_pair.h
toolsandutils/e32tools/compress/pagedcompress.cpp
toolsandutils/e32tools/ddesign/e32rom.mdl
toolsandutils/e32tools/dspec/romimage.rtf
toolsandutils/e32tools/e32image/Makefile.elftran
toolsandutils/e32tools/e32image/deflate/compress.cpp
toolsandutils/e32tools/e32image/deflate/decode.cpp
toolsandutils/e32tools/e32image/deflate/deflate.cpp
toolsandutils/e32tools/e32image/deflate/deflate.h
toolsandutils/e32tools/e32image/deflate/encode.cpp
toolsandutils/e32tools/e32image/deflate/farray.h
toolsandutils/e32tools/e32image/deflate/huffman.h
toolsandutils/e32tools/e32image/deflate/inflate.cpp
toolsandutils/e32tools/e32image/deflate/panic.cpp
toolsandutils/e32tools/e32image/deflate/panic.h
toolsandutils/e32tools/e32image/e32image.cpp
toolsandutils/e32tools/e32image/imgdump.cpp
toolsandutils/e32tools/e32image/tr_main.cpp
toolsandutils/e32tools/e32uid/e32uid.cpp
toolsandutils/e32tools/e32uid/uidcrc.cpp
toolsandutils/e32tools/elf2e32/group/elf2e32.mmp
toolsandutils/e32tools/elf2e32/include/h_ver.h
toolsandutils/e32tools/elf2e32/source/byte_pair.cpp
toolsandutils/e32tools/elf2e32/source/byte_pair.h
toolsandutils/e32tools/elf2e32/source/checksum.cpp
toolsandutils/e32tools/elf2e32/source/checksum.h
toolsandutils/e32tools/elf2e32/source/deffile.cpp
toolsandutils/e32tools/elf2e32/source/deffile.h
toolsandutils/e32tools/elf2e32/source/deflatecompress.cpp
toolsandutils/e32tools/elf2e32/source/dll_fb_target.cpp
toolsandutils/e32tools/elf2e32/source/dll_fb_target.h
toolsandutils/e32tools/elf2e32/source/dll_rebuild_target.cpp
toolsandutils/e32tools/elf2e32/source/dll_rebuild_target.h
toolsandutils/e32tools/elf2e32/source/e32defwrap.h
toolsandutils/e32tools/elf2e32/source/e32exporttable.cpp
toolsandutils/e32tools/elf2e32/source/e32exporttable.h
toolsandutils/e32tools/elf2e32/source/e32imagedefs.h
toolsandutils/e32tools/elf2e32/source/e32imagefile.cpp
toolsandutils/e32tools/elf2e32/source/e32imagefile.h
toolsandutils/e32tools/elf2e32/source/elf2e32.cpp
toolsandutils/e32tools/elf2e32/source/elf2e32.h
toolsandutils/e32tools/elf2e32/source/elffilesupplied.cpp
toolsandutils/e32tools/elf2e32/source/elffilesupplied.h
toolsandutils/e32tools/elf2e32/source/errorhandler.cpp
toolsandutils/e32tools/elf2e32/source/errorhandler.h
toolsandutils/e32tools/elf2e32/source/exetarget.cpp
toolsandutils/e32tools/elf2e32/source/exetarget.h
toolsandutils/e32tools/elf2e32/source/exexp_fb_target.cpp
toolsandutils/e32tools/elf2e32/source/exexp_fb_target.h
toolsandutils/e32tools/elf2e32/source/exexp_rebuild_target.cpp
toolsandutils/e32tools/elf2e32/source/exexp_rebuild_target.h
toolsandutils/e32tools/elf2e32/source/export_type_fb_target.cpp
toolsandutils/e32tools/elf2e32/source/export_type_fb_target.h
toolsandutils/e32tools/elf2e32/source/export_type_rebuild_target.cpp
toolsandutils/e32tools/elf2e32/source/export_type_rebuild_target.h
toolsandutils/e32tools/elf2e32/source/export_type_target.cpp
toolsandutils/e32tools/elf2e32/source/export_type_target.h
toolsandutils/e32tools/elf2e32/source/farray.h
toolsandutils/e32tools/elf2e32/source/filedump.cpp
toolsandutils/e32tools/elf2e32/source/filedump.h
toolsandutils/e32tools/elf2e32/source/h_utl.cpp
toolsandutils/e32tools/elf2e32/source/h_utl.h
toolsandutils/e32tools/elf2e32/source/huffman.cpp
toolsandutils/e32tools/elf2e32/source/huffman.h
toolsandutils/e32tools/elf2e32/source/imgdump.cpp
toolsandutils/e32tools/elf2e32/source/inflate.cpp
toolsandutils/e32tools/elf2e32/source/inflate.h
toolsandutils/e32tools/elf2e32/source/librarytarget.cpp
toolsandutils/e32tools/elf2e32/source/librarytarget.h
toolsandutils/e32tools/elf2e32/source/main.cpp
toolsandutils/e32tools/elf2e32/source/messagehandler.cpp
toolsandutils/e32tools/elf2e32/source/messagehandler.h
toolsandutils/e32tools/elf2e32/source/messageimplementation.cpp
toolsandutils/e32tools/elf2e32/source/messageimplementation.h
toolsandutils/e32tools/elf2e32/source/pagedcompress.cpp
toolsandutils/e32tools/elf2e32/source/parameterlistinterface.cpp
toolsandutils/e32tools/elf2e32/source/parameterlistinterface.h
toolsandutils/e32tools/elf2e32/source/parametermanager.cpp
toolsandutils/e32tools/elf2e32/source/parametermanager.h
toolsandutils/e32tools/elf2e32/source/pl_common.cpp
toolsandutils/e32tools/elf2e32/source/pl_common.h
toolsandutils/e32tools/elf2e32/source/pl_dllsymbol.cpp
toolsandutils/e32tools/elf2e32/source/pl_dllsymbol.h
toolsandutils/e32tools/elf2e32/source/pl_dso_handler.cpp
toolsandutils/e32tools/elf2e32/source/pl_dso_handler.h
toolsandutils/e32tools/elf2e32/source/pl_elfconsumer.cpp
toolsandutils/e32tools/elf2e32/source/pl_elfconsumer.h
toolsandutils/e32tools/elf2e32/source/pl_elfexecutable.cpp
toolsandutils/e32tools/elf2e32/source/pl_elfexecutable.h
toolsandutils/e32tools/elf2e32/source/pl_elfexports.cpp
toolsandutils/e32tools/elf2e32/source/pl_elfexports.h
toolsandutils/e32tools/elf2e32/source/pl_elfimportrelocation.cpp
toolsandutils/e32tools/elf2e32/source/pl_elfimportrelocation.h
toolsandutils/e32tools/elf2e32/source/pl_elfimports.cpp
toolsandutils/e32tools/elf2e32/source/pl_elfimports.h
toolsandutils/e32tools/elf2e32/source/pl_elflocalrelocation.cpp
toolsandutils/e32tools/elf2e32/source/pl_elflocalrelocation.h
toolsandutils/e32tools/elf2e32/source/pl_elfproducer.cpp
toolsandutils/e32tools/elf2e32/source/pl_elfproducer.h
toolsandutils/e32tools/elf2e32/source/pl_elfrelocation.cpp
toolsandutils/e32tools/elf2e32/source/pl_elfrelocation.h
toolsandutils/e32tools/elf2e32/source/pl_elfrelocations.cpp
toolsandutils/e32tools/elf2e32/source/pl_elfrelocations.h
toolsandutils/e32tools/elf2e32/source/pl_sym_type.h
toolsandutils/e32tools/elf2e32/source/pl_symbol.cpp
toolsandutils/e32tools/elf2e32/source/pl_symbol.h
toolsandutils/e32tools/elf2e32/source/polydll_fb_target.cpp
toolsandutils/e32tools/elf2e32/source/polydll_fb_target.h
toolsandutils/e32tools/elf2e32/source/polydll_rebuild_target.cpp
toolsandutils/e32tools/elf2e32/source/polydll_rebuild_target.h
toolsandutils/e32tools/elf2e32/source/staticlibsymbols.h
toolsandutils/e32tools/elf2e32/source/stdexe_target.cpp
toolsandutils/e32tools/elf2e32/source/stdexe_target.h
toolsandutils/e32tools/elf2e32/source/usecasebase.cpp
toolsandutils/e32tools/elf2e32/source/usecasebase.h
toolsandutils/e32tools/elfdump/elfdump.cpp
toolsandutils/e32tools/elftools/Makefile.genstubs
toolsandutils/e32tools/elftools/Makefile.getdirective
toolsandutils/e32tools/elftools/Makefile.uidcrc
toolsandutils/e32tools/elftools/def2dll.bat
toolsandutils/e32tools/elftools/def2dll.pl
toolsandutils/e32tools/elftools/deputil.pl
toolsandutils/e32tools/elftools/deputil.pm
toolsandutils/e32tools/elftools/elf2inf.pl
toolsandutils/e32tools/elftools/elftran/elf_dlld.cpp
toolsandutils/e32tools/elftools/elftran/elf_file.cpp
toolsandutils/e32tools/elftools/elftran/elf_imp.cpp
toolsandutils/e32tools/elftools/elftran/elf_reloc.cpp
toolsandutils/e32tools/elftools/elftran/elf_tran.cpp
toolsandutils/e32tools/elftools/genstubs/genstubs.cpp
toolsandutils/e32tools/elftools/getexports/geninf.cpp
toolsandutils/e32tools/elftools/getexports/getdirective.cpp
toolsandutils/e32tools/elftools/inc/e32ldfmt.h
toolsandutils/e32tools/elftools/inc/elfdefs.h
toolsandutils/e32tools/elftools/inc/elfdll.h
toolsandutils/e32tools/elftools/inc/elffile.h
toolsandutils/e32tools/elftools/inc/elftran.h
toolsandutils/e32tools/elftools/test/Elftran-test.kpf
toolsandutils/e32tools/elftools/test/Elftran-test.pl
toolsandutils/e32tools/elftools/test/camera1_test.exe
toolsandutils/e32tools/eruntest/eruntest.cpp
toolsandutils/e32tools/etouch/etouch.cpp
toolsandutils/e32tools/fix_eabi_thunk_offsets/fix_eabi_thunk_offsets.bat
toolsandutils/e32tools/group/bin2coff.mmp
toolsandutils/e32tools/group/bld.inf
toolsandutils/e32tools/group/checklib.mmp
toolsandutils/e32tools/group/elfdump.mmp
toolsandutils/e32tools/group/elftran.mmp
toolsandutils/e32tools/group/eruntest.mmp
toolsandutils/e32tools/group/etouch.mmp
toolsandutils/e32tools/group/filesystem.mmp
toolsandutils/e32tools/group/genstubs.mmp
toolsandutils/e32tools/group/getdirective.mmp
toolsandutils/e32tools/group/getexports.mmp
toolsandutils/e32tools/group/memmap.mmp
toolsandutils/e32tools/group/parameterfileprocessor.mmp
toolsandutils/e32tools/group/patchdataprocessor.mmp
toolsandutils/e32tools/group/pediff.mmp
toolsandutils/e32tools/group/petran.mmp
toolsandutils/e32tools/group/readimage.mmp
toolsandutils/e32tools/group/readtype.mmp
toolsandutils/e32tools/group/release.txt
toolsandutils/e32tools/group/rommask.mmp
toolsandutils/e32tools/group/secdump.mmp
toolsandutils/e32tools/group/seclib.mmp
toolsandutils/e32tools/group/sisutils.mmp
toolsandutils/e32tools/group/tools_e32tools.mrp
toolsandutils/e32tools/group/uidcrc.mmp
toolsandutils/e32tools/group/w32repro.mmp
toolsandutils/e32tools/group/wveconv.mmp
toolsandutils/e32tools/host/h_file.cpp
toolsandutils/e32tools/host/h_mem.cpp
toolsandutils/e32tools/host/h_utl.cpp
toolsandutils/e32tools/inc/e32image.h
toolsandutils/e32tools/inc/h_utl.h
toolsandutils/e32tools/inc/h_ver.h
toolsandutils/e32tools/inc/pe_defs.h
toolsandutils/e32tools/inc/pe_file.h
toolsandutils/e32tools/inc/seclib.h
toolsandutils/e32tools/pe_dump/pe_dump.cpp
toolsandutils/e32tools/pe_dump/pe_dump.mmp
toolsandutils/e32tools/pediff/pediff.cpp
toolsandutils/e32tools/pefile/pe_file.cpp
toolsandutils/e32tools/pefile/pe_imp.cpp
toolsandutils/e32tools/pefile/pe_reloc.cpp
toolsandutils/e32tools/pefile/pe_tran.cpp
toolsandutils/e32tools/pefile/pe_utl.cpp
toolsandutils/e32tools/readtype/UnicodeData-5.0.txt
toolsandutils/e32tools/readtype/readtype.cpp
toolsandutils/e32tools/readtype/unicodedata-3.0.0.txt
toolsandutils/e32tools/readtype/unicodedata-3.0.0_IndicCharsFrom_5.0.txt
toolsandutils/e32tools/readtype/unicodedata.html
toolsandutils/e32tools/rombuild/r_build.cpp
toolsandutils/e32tools/rombuild/r_mromimage.h
toolsandutils/e32tools/rombuild/r_rom.h
toolsandutils/e32tools/rommask/rommask.cpp
toolsandutils/e32tools/seclib/secdump.cpp
toolsandutils/e32tools/seclib/seclib.cpp
toolsandutils/e32tools/setcap/setcap.cpp
toolsandutils/e32tools/setcap/setcap.h
toolsandutils/e32tools/tranasm/tranasm.bat
toolsandutils/e32tools/tranasm/tranasm.pl
toolsandutils/e32tools/tranasm/tranasm_x86.pl
toolsandutils/e32tools/w32repro/w32repro.cpp
toolsandutils/e32tools/wveconv/wveconv.cpp
toolsandutils/productionbldtools/AllKitsRebaseline.pm
toolsandutils/productionbldtools/BAK/BuildBAK.pl
toolsandutils/productionbldtools/BAK/DevKit.srcdef.template
toolsandutils/productionbldtools/BAK/ReadMe.html
toolsandutils/productionbldtools/BAK/aboutdevkit.gif
toolsandutils/productionbldtools/BAK/aboutdevkit_b.gif
toolsandutils/productionbldtools/BAK/com.symbian.api.StrongCrypto.template
toolsandutils/productionbldtools/BAK/com.symbian.bak.bin.template
toolsandutils/productionbldtools/BAK/com.symbian.bak.doc-old.layout.template
toolsandutils/productionbldtools/BAK/com.symbian.bak.doc.template
toolsandutils/productionbldtools/BAK/com.symbian.bak.src.template
toolsandutils/productionbldtools/BAK/com.symbian.bak.tool.template
toolsandutils/productionbldtools/BAK/com.symbian.doc.intro-pages.template
toolsandutils/productionbldtools/BAK/distribution.policy
toolsandutils/productionbldtools/BAK/licence.txt
toolsandutils/productionbldtools/BAK/start.html
toolsandutils/productionbldtools/BFrC/diffold.pl
toolsandutils/productionbldtools/BFrC/distribution.policy
toolsandutils/productionbldtools/BFrC/listdir.pl
toolsandutils/productionbldtools/BFrC/setold.pl
toolsandutils/productionbldtools/BFrC/testold.pl
toolsandutils/productionbldtools/BuildKit.pm
toolsandutils/productionbldtools/CProgressLog.pm
toolsandutils/productionbldtools/CheckDistributionFiles.pl
toolsandutils/productionbldtools/Documentation/distribution.policy
toolsandutils/productionbldtools/GenerateLicenseeBuild.exe
toolsandutils/productionbldtools/InstallSupplementaryKit.pl
toolsandutils/productionbldtools/KitStandardLocations.pm
toolsandutils/productionbldtools/MakeISOs.pl
toolsandutils/productionbldtools/SupplementalKits.pm
toolsandutils/productionbldtools/ZipLog2Pkg.pm
toolsandutils/productionbldtools/compare_kit_content.pl
toolsandutils/productionbldtools/differ.pl
toolsandutils/productionbldtools/distillsrc/distillsrc.pl
toolsandutils/productionbldtools/distillsrc/distillsrc.pm
toolsandutils/productionbldtools/distillsrc/distribution.policy
toolsandutils/productionbldtools/distillsrc/readmrp.pm
toolsandutils/productionbldtools/distillsrc/test/base.txt
toolsandutils/productionbldtools/distillsrc/test/bincase.mrp
toolsandutils/productionbldtools/distillsrc/test/distribution.policy
toolsandutils/productionbldtools/distillsrc/test/duffer.mrp
toolsandutils/productionbldtools/distillsrc/test/naughty.mrp
toolsandutils/productionbldtools/distillsrc/test/options.txt
toolsandutils/productionbldtools/distillsrc/test/source/complete/complete.mrp
toolsandutils/productionbldtools/distillsrc/test/source/complete/distribution.policy
toolsandutils/productionbldtools/distillsrc/test/source/complete/file
toolsandutils/productionbldtools/distillsrc/test/source/distribution.policy
toolsandutils/productionbldtools/distillsrc/test/source/fixer.mrp
toolsandutils/productionbldtools/distillsrc/test/source/missing/distribution.policy
toolsandutils/productionbldtools/distillsrc/test/source/missing/file
toolsandutils/productionbldtools/distillsrc/test/source/missing/missing.mrp
toolsandutils/productionbldtools/distillsrc/test/source/missing/unowned
toolsandutils/productionbldtools/distillsrc/test/source/shared/complete
toolsandutils/productionbldtools/distillsrc/test/source/shared/distribution.policy
toolsandutils/productionbldtools/distillsrc/test/source/shared/missing
toolsandutils/productionbldtools/distillsrc/test/source/spacey/distribution.policy
toolsandutils/productionbldtools/distillsrc/test/source/spacey/spa cey.txt
toolsandutils/productionbldtools/distillsrc/test/source/spacey/spacey.mrp
toolsandutils/productionbldtools/distillsrc/test/source/whole/distribution.policy
toolsandutils/productionbldtools/distillsrc/test/source/whole/file
toolsandutils/productionbldtools/distillsrc/test/source/whole/whole.mrp
toolsandutils/productionbldtools/distillsrc/test/test.pl
toolsandutils/productionbldtools/distribution.policy
toolsandutils/productionbldtools/exportipr.pl
toolsandutils/productionbldtools/exports.bat
toolsandutils/productionbldtools/package.pl
toolsandutils/productionbldtools/product_tools.mrp
toolsandutils/wintunnel/exports/dcomm.ini
toolsandutils/wintunnel/group/bld.inf
toolsandutils/wintunnel/group/ecdrv.mmp
toolsandutils/wintunnel/group/serialldd.mmp
toolsandutils/wintunnel/group/serialpdd.mmp
toolsandutils/wintunnel/group/testtools_WinTunnel.mrp
toolsandutils/wintunnel/group/testtools_WinTunnel_srconly.mrp
toolsandutils/wintunnel/group/testtools_wintunnel_srconly.history.xml
toolsandutils/wintunnel/src_beech/d_cbuf.cpp
toolsandutils/wintunnel/src_beech/d_cdrv.cpp
toolsandutils/wintunnel/src_beech/d_comm.cpp
toolsandutils/wintunnel/src_beech/d_comm.h
toolsandutils/wintunnel/src_beech/d_comm.inl
toolsandutils/wintunnel/src_cedar/README.txt
toolsandutils/wintunnel/src_cedar/serialldd.cpp
toolsandutils/wintunnel/src_cedar/serialpdd.cpp
toolsandutils/wintunnel/src_cedar/winscomm.h
toolsandutils/wintunnel/src_cedar/winscomm.inl
toolsandutils/wintunnel/testcode/bin/tcp_server.exe
toolsandutils/wintunnel/testcode/client/CommonFiles.h
toolsandutils/wintunnel/testcode/client/wintunnel_test_client.cpp
toolsandutils/wintunnel/testcode/client/wintunnel_test_client.mmp
toolsandutils/wintunnel/testcode/server/CTcpServer.cpp
toolsandutils/wintunnel/testcode/server/CTcpServer.h
toolsandutils/wintunnel/testcode/server/tcp_server.cpp
toolsandutils/wintunnel/testcode/server/tcp_server.dep
toolsandutils/wintunnel/testcode/server/tcp_server.dsp
toolsandutils/wintunnel/testcode/server/tcp_server.dsw
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/AntiVirus.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,144 @@
+#!/usr/bin/perl -w
+use strict;
+use FindBin;		    # for FindBin::Bin
+use lib $FindBin::Bin;  # for BldMachineDir (if in same dir. as this .PL file)
+use Getopt::Long; # Get long options
+use AntiVirus qw{Start Stop Scan WaitTillAntiVirusStarts};
+
+####my $gTimeNow = time();
+ 
+# Get the command line args
+my ($gCommand,$gOutFilesDir ,$gDirsToScan,$gWaitingTime, $gRetries) = &ProcessCommandLine();
+	
+# If the command is to stop the services/processes, then do so.
+
+if($gCommand eq 'STOP')
+{    	
+	Stop($gWaitingTime, $gRetries);	
+}
+elsif($gCommand eq 'START')
+{
+    Start();
+}
+else    # ($gCommand eq 'SCAN') NB Any unknown command has been caught by ProcessCommandLine()
+{
+    Scan($gOutFilesDir, $gDirsToScan);
+}
+
+####printf ("DEBUG MSG: Elapsed time = %d seconds", time() - $gTimeNow);   ####???? For debugging!
+
+################################################################################
+# ProcessCommandLine                                                           #
+# Inputs: None (Gets data from @ARGV)                                          #
+# Outputs: ($iCommand, $iOutFilesDir, \@iDirsToScan)                             #
+# Remarks: None                                                                #
+################################################################################
+sub ProcessCommandLine
+{
+    my ($iHelp, $iCommand,$iOutFilesDir,@iDirsToScan,$iWaitingTime, $iRetries );
+    unless (GetOptions('h' => \$iHelp, 'o=s' => \$iOutFilesDir, 'c=s' => \$iCommand,'w=s' => \$iWaitingTime,'r=s' => \$iRetries, 'd=s' => \@iDirsToScan))
+    {
+        Usage('Command Line error(s), as above.');
+    }
+    if (scalar @ARGV)
+    {
+        Usage("Redundant data on Command Line: @ARGV");
+    }
+    if ($iHelp)
+    {
+        Usage();
+    }
+    unless(defined($iCommand))
+    {
+        Usage('No command given');
+    }
+    # Uppercase $iCommand once and for all. Then we can check using 'eq'.
+    # NB: uppercasing undef results in a defined, but empty, string!
+    $iCommand = uc $iCommand;
+
+	
+
+    if($iCommand eq 'SCAN')
+    {
+        unless((scalar @iDirsToScan) and ($iOutFilesDir))
+        {   # Make sure there are some directories to scan!
+            # It is an error to ask for a scan and to not
+            # supply directories, so print usage information
+            Usage('With SCAN command, must specify directory(ies) and output file');
+        }
+        return ($iCommand, $iOutFilesDir, \@iDirsToScan);
+    }
+
+    if(($iCommand eq 'START')or ($iCommand eq 'STOP'))
+        {
+            if((scalar @iDirsToScan) or ($iOutFilesDir))
+            {       # Can't specify directories when starting and stopping
+            # the AV processes and services.
+            Usage('With START/STOP command, cannot specify directories &/or output file');
+        }
+        # Only valid to start/stop if no directories have been given 
+	   return ($iCommand, $iOutFilesDir, \@iDirsToScan,$iWaitingTime, $iRetries);
+        }
+    # Something else has gone wrong. So print usage.
+    Usage("Unknown command $iCommand");
+}
+
+################################################################################
+# Usage                                                                        #
+# Inputs: Optional error message                                               #
+# Outputs: Usage information for the user.                                     #
+# Remarks: None                                                                #
+################################################################################
+sub Usage
+{
+    my $iErrorMsg = shift;
+
+    if ($iErrorMsg)
+    {
+        print STDERR "\nERROR: $iErrorMsg.\n";
+    }
+
+    print <<USAGE_EOF;
+
+Usage: AntiVirus.pl -c STOP [-w waitTime -r retries]
+	   AntiVirus.pl -c START
+       AntiVirus.pl -c SCAN -d scandir1 [-d scandir2 [-d scandir3]] -o outdir
+
+Parameters:
+ -c  command to perform, limited to "START", "STOP", "SCAN"
+ -d  used ONLY in combination with "-c SCAN" to specify the directories to 
+     scan. Multiple allowed.
+ -o  used ONLY in combination with "-c SCAN" to specify the full name 
+     of the directory in which the output file is to be written.
+ -w  used ONLY in combination with "-c STOP" .If Antivirus is inactive at
+     the time of STOP attempt,this argument specifies the waiting time in
+     seconds before next attempt is made to check AV service status
+ -r  used ONLY in combination with "-c STOP" .If Antivirus is inactive at
+     the time of STOP attempt,this argument specifies the maximum number 
+     of attempts to check  AntiVirus service status.
+	 
+	 
+     
+Optional Parameters:
+ -h  help - print this information and exit
+
+Examples:
+ 1) AntiVirus.pl -c STOP
+ 2) AntiVirus.pl -c START
+ 3) AntiVirus.pl -c SCAN -d M:\\epoc32\\ -o M:\\logs\\cedar\\
+ 4) AntiVirus.pl -c STOP -w 30 -r 5
+ 
+Description and Remarks:
+ This script controls operation of the installed anti-virus software. The 
+ script stops and starts anti-virus services &/or programs. Reports of 
+ missing anti-virus programs or failures to start/stop a service are 
+ reported with keyword "WARNING:" or "REMARK:" prepended.
+
+ Scanning is carried out on all the directories listed on the command line,
+ each one being specified with the -d option.
+
+ Currently only McAfee anti-virus software is supported.
+
+USAGE_EOF
+    exit 1;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/AntiVirus.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,494 @@
+package AntiVirus;
+use strict;
+
+use File::Copy;
+use Win32::Process;
+
+require Exporter;
+our @ISA = qw(Exporter);
+our @EXPORT_OK = qw{Start Stop Scan WaitTillAntiVirusStarts};
+
+# Start:
+# Description: attempts to start all supported anti-virus services/processes
+# Revised April 2007 to support McAfee only, Sophos and WebRoot having passed into history!
+# Arguments: none
+# Returns: none
+sub Start()
+{
+    my @iMcAfeeCommands = (
+    {AppName => 'net.exe', Params => 'start McAfeeFramework'},
+    {AppName => 'net.exe', Params => 'start McShield'},
+    {AppName => 'net.exe', Params => 'start McTaskManager'},
+    # Must supply full pathname, as these applications are not in "PATH"
+    {AppName => 'C:\\Program Files\\Network Associates\\Common Framework\\UpdaterUI.exe', Params => '/StartedFromRunKey'},
+    {AppName => 'C:\\Program Files\\Network Associates\\Common Framework\\UdaterUI.exe', Params => '/StartedFromRunKey'},
+    {AppName => 'C:\\Program Files\\McAfee\\Common Framework\\UpdaterUI.exe', Params => '/StartedFromRunKey'},
+    {AppName => 'C:\\Program Files\\McAfee\\Common Framework\\UdaterUI.exe', Params => '/StartedFromRunKey'},
+    {AppName => 'C:\\Program Files\\Common Files\\Network Associates\\TalkBack\\tbmon.exe', Params => ''},
+    {AppName => 'C:\\Program Files\\Network Associates\\VirusScan\\SHSTAT.EXE', Params => '/STANDALONE'},
+    {AppName => 'C:\\Program Files\\McAfee\\VirusScan\\SHSTAT.EXE', Params => '/STANDALONE'});
+
+    # Execute all "START" commands
+    for my $iCmd(@iMcAfeeCommands)
+    {
+        ExecuteProcess(20,$iCmd);
+    }
+
+}
+
+# WaitTillAntiVirusStarts
+# Description:  
+# Sometimes the  Antivirus::Stop() is invoked before the Antivirus services are started in the machine.
+# because of which the Antivirus starts when the build is ongoing, and the active Antivirus disrupts/slows down the build
+# 
+# If the Antivirus services fail to start beyond the specified timeout period,reports error and aborts the build.
+#
+# Arguments : Waiting time in seconds before next attempt is made to check AV service status, max number of attempts
+# Returns   :  returns nothing if AV running, aborts build if AV not running even after the waiting period
+sub WaitTillAntiVirusStarts{
+    my $waitingTime  = shift;
+    my $retries      = shift;
+	
+	my @waitList      = shift;
+     
+    my $defaultWaitingTime  = 30;  # Waiting time in seconds, before next attempt is made to check AV service status
+    my $defaultRetries      = 5;   # Try upto 5 times
+    
+    # assign default values to waitingtime,retries if values not specified
+    unless($waitingTime)
+	{
+        $waitingTime = $defaultWaitingTime;
+    }
+    unless($retries)
+	{
+        $retries = $defaultRetries;
+    } 
+	
+    my $attempt = 0; 
+    ## If AV not active, wait and retry
+    while(1)
+	{ 
+        if(IsAntiVirusActive(@waitList))
+		{
+            return; ## AV is active, all fine, proceed
+        }
+        $attempt++;
+        if($attempt > $retries) 
+		{
+            last;
+        } 
+        print  "REMARK: One or more Antivirus services not active yet (At ".scalar localtime().") \n";
+        print  "Waiting $waitingTime secs before rechecking status (Attempt $attempt of $retries) ...\n\n";
+        sleep($waitingTime);        
+    } 
+    
+    ## Antivirus is not active even after waiting $waitingTime secs $retries times, report error and abort the build
+    
+    print "ERROR: RealTimeBuild : Antivirus is not active even after waiting for $waitingTime secs x $retries attempts\n";
+    print "Antivirus cannot be reliably stopped,abandon build.";
+}
+
+
+# IsAntiVirusActive
+# Description:  
+# Runs 'net start' command to get a list of active services,checks if the Antivirus services are in the list
+# 
+# Arguments : None
+# Returns   : 
+# 			returns 0  even if one Antivirus Service is inactive
+# 			returns 1 if All AntiVirus Services active
+sub IsAntiVirusActive{
+
+	my @waitList = shift;
+	
+    my @AntiVirusServices = @waitList;
+
+    print "Checking Antivirus services status ...\n"; 
+    my $iCmd={AppName => 'net.exe', Params => 'start'};
+    
+    # Check if net.exe is accessible
+    unless(-e $iCmd->{'AppName'})
+    {
+       my $iExecutable = FindFileFromPath($iCmd->{'AppName'});
+        unless ($iExecutable)
+        {
+            print "REMARK: File not found $iCmd->{'AppName'}\n";
+            print "REMARK: Unable to check Antivirus status\n";
+            return 0; 
+        }
+        $iCmd->{'AppName'} = $iExecutable;
+    }
+ 
+    my $iCommand = "\"$iCmd->{'AppName'}\" $iCmd->{'Params'}" ;
+    print "Running: $iCommand\n";
+    my @iOutput = `$iCommand`;
+	 
+    return &ParseServiceStatus(\@iOutput,\@AntiVirusServices);
+}
+
+
+# ParseServiceStatus
+# Description:  
+# Runs  Compares output of 'net start' command to get a list of active services,checks if the Antivirus services are in the list
+# 
+# Arguments : Output of 'net start', Antivirus service list
+# Returns   : 
+# 			returns 0  even if one Antivirus Service is not in the list
+# 			returns 1 if All AntiVirus Services are in the list
+sub ParseServiceStatus($$)
+{
+    my $iOutputRef = shift;
+    my $iAntiVirusServiceList = shift;
+    foreach(@$iOutputRef) 
+    {
+        chomp ;
+        s/^[\t\s]+//g;  # strip whitespace at the beginning of the line
+    } 
+	
+    for my $serviceName(@$iAntiVirusServiceList) 
+    { 
+        my @match = grep (/^$serviceName$/i, @$iOutputRef); 
+        unless(@match)
+		{
+            print "Antivirus Service \'$serviceName\' inactive\n";
+            return 0;
+        }
+    }
+    print "All Antivirus services active.\n";  
+    return 1;  
+}
+
+
+# Stop:
+# Description: attempts to stop all supported anti-virus services/processes
+# Revised April 2007 to support McAfee only, Sophos and WebRoot having passed into history!
+# Arguments: none
+# Returns: none
+sub Stop($$)
+{
+	# Need to check if the Antivirus services is installed or enabled.
+	my @iMcAfeeServices = (
+    {AppName => 'net.exe', Params => 'stop McAfeeFramework', Services =>'McAfee Framework Service'},
+    {AppName => 'net.exe', Params => 'stop McShield', Services =>'Network Associates McShield'},
+    {AppName => 'net.exe', Params => 'stop McTaskManager', Services =>'Network Associates Task Manager'});
+
+	my @iPskillCommands = (    
+    {AppName => 'pskill.exe', Params => 'UpdaterUI.exe'},
+    {AppName => 'pskill.exe', Params => 'tbmon.exe'},
+    {AppName => 'pskill.exe', Params => 'shstat.exe'});
+
+	my @waitList = ();
+	my @iMcAfeeCommands = ();
+
+	for my $iTestCmd(@iMcAfeeServices)
+	{  	
+		my $iExecutable = $iTestCmd->{'AppName'};
+		my $iParams = $iTestCmd->{'Params'};
+		my $iServices = $iTestCmd->{'Services'};
+
+		my @testCommand = `$iExecutable $iParams 2>&1`;   
+		my $iResponse = 0;     
+
+		foreach my $iLine (@testCommand) 
+		{
+			if ($iLine =~ m/does not exist/i)
+			{ 
+				print "REMARK: $iServices not installed, just proceed.\n";
+				$iResponse = 1;	 
+			} 
+
+			if ($iLine =~ m/it is disabled/i)
+			{ 
+				print "REMARK: $iServices not enabled, just proceed.\n";
+				$iResponse = 1;            
+			} 
+
+			if (($iLine =~ m/service is not started/i ) or ($iLine =~ m/not valid for this service/i ))
+			{  
+				print "REMARK: $iServices not started, just wait.\n";
+				push @waitList, $iServices;
+				push @iMcAfeeCommands, {AppName =>$iExecutable, Params =>$iParams};
+				$iResponse = 1;
+			}
+
+			if ($iLine =~ m/service was stopped successfully/i)
+			{ 
+				print "REMARK: Stop Success! $iServices was stopped successfully directly by the test command, just proceed.\n";
+				$iResponse = 1;			
+			}	
+			
+			if ($iLine =~ m/service could not be stopped/i)
+			{ 
+				print "REMARK: Stop Success! $iServices could not be stopped at the moment but will be stopped successfully directly by the test command very soon later, just proceed.\n";
+				$iResponse = 1;			
+			}
+            
+            if ($iLine =~ m/System error 5 has occurred/i)
+			{ 
+				print "WARNING: Access to $iServices is denied, but this won't affect the build, just proceed.\n";
+				$iResponse = 1;			
+			}
+			
+		}    
+		unless ($iResponse)
+		{
+			print "ERROR: Unable to parse the output of $iExecutable for $iParams!\n";
+			foreach my $iLine (@testCommand) 
+		    {
+				print $iLine;
+			}
+			#push @waitList, $iServices;
+		    #push @iMcAfeeCommands, {AppName =>$iExecutable, Params =>$iParams};
+		}
+	}
+
+    # Wait for the waiting Antivirus services to load before attempting to stop the services
+	# If Antivirus fails to load after the grace period, the build should be aborted.
+	my $gWaitingTime = shift;
+	my $gRetries = shift;
+	if (@waitList)
+	{
+		WaitTillAntiVirusStarts($gWaitingTime, $gRetries, @waitList); 
+	}
+	
+	# Execute all "STOP" commands
+	push @iMcAfeeCommands, @iPskillCommands;
+	for my $iCmd(@iMcAfeeCommands)
+	{
+		ExecuteProcess(20,$iCmd);
+	}
+}
+
+# Scan:
+# Description: performs the virus scan on the specified directores
+# Revised April 2007 to support McAfee only, Sophos having passed into history!
+# Revised February 2008 to support further McAfee filename changes.
+# Arguments: directory in which to place scan output file (logfile);
+# array ref to array containing a list of the directories to scan
+# Returns: none
+sub Scan($$)
+{
+    my $iOutFilesDir = shift;
+    my $iDirsToScan = shift;
+
+    # Name(s) of output files. User only supplies directories
+    my $iOutFileName = 'Anti-virus';
+
+    # Define McAfee commands, newest version first. McAfee keep changing the names of their files. Thus if an
+    # executable is not found, we do not treat this as an error, we simply go on to thwe next command definition.
+    # Note: Must supply full pathname, as these applications are not in "PATH"
+    my @iMcAfeeCommands =(
+    # CSScan.exe send most of its output to STDOUT. So define file a second time for us to write this data
+    {AppName => 'C:\\Program Files\\McAfee\\VirusScan Enterprise\\csscan.exe',
+     Params => join(" ", @$iDirsToScan) . " /SUB /CLEAN /ALLAPPS /LOG $iOutFilesDir\\$iOutFileName.log",
+     LogFile => "$iOutFilesDir\\$iOutFileName"},  # Filename without .LOG extension
+    {AppName => 'C:\\Program Files\\Common Files\\Network Associates\\Engine\\scan.exe',
+     Params => join(" ", @$iDirsToScan) . " /SUB /NOBREAK /CLEAN /NORENAME /RPTCOR /RPTERR /REPORT=$iOutFilesDir\\$iOutFileName.log",
+     LogFile => ''} # The older "SCAN.EXE" writes everything to its report file. So no further logging required.
+    );
+   
+    print "Scanning: @$iDirsToScan\n"; 
+
+    # Execute "SCAN" commands in order until one is successful.
+    for my $iCmd(@iMcAfeeCommands)
+    {
+            # First remove/rename any existing output file. This is an unlikely situation in a normal build;
+            # but it could cause confusion if, for example, a scan was re-run manually.
+            unless (RemoveExistingFile($iCmd->{'LogFile'})) { next; }
+            if (RunCommand($iCmd)) { return; }     # Success
+    }
+    # Arriving at the end of this loop means that no command succeeded! Report failure!
+    print "WARNING: No Virus Scan accomplished. Possibly no suitable executable found.\n";
+}
+
+# RunCommand:
+# Description: Runs specified command using Perl "backticks"
+# passing its output for parsing to the sub ParseOutput().
+# Arguments: the command to execute as a hashref (filename of executable and parameters/args to pass to it)
+# Returns: TRUE on success
+sub RunCommand($)
+{
+    my $iCmd = shift;   # Hashref - Command spec.
+  
+    unless(-e $iCmd->{'AppName'})
+    {
+        print "REMARK: File not found $iCmd->{'AppName'}\n";
+        return 0;    # FALSE = Failure
+    }
+    my $iCommand = "\"$iCmd->{'AppName'}\" $iCmd->{'Params'}" ;
+    print "Running: $iCommand\n";
+    my @iOutput = `$iCommand`;
+    
+	# Parse the output flagging any errors
+    return &ParseOutput(\@iOutput,$iCmd->{'LogFile'});  # Return TRUE or FALSE
+}
+
+# ParseOutput:
+# Description: Parse output for warnings and errors.
+# The ScanLog-compatible "WARNING: " is prepended to any line containing
+# any of these messages or errors, and all lines are printed to STDOUT.
+# Arguments: reference to the array of output lines from executed command; Name of logfile (if any)
+# Returns: TRUE on Success
+# Remarks: note that errors in starting/stopping processes or services do not
+# constitute errors in terms of the build process. Failure to start or stop
+# the services will not affect the compilation except, at worst, to slow it
+# down if stopping the antivirus fails.
+sub ParseOutput($)
+{
+    my $iOutputRef = shift;
+    my $iLogFile = shift;
+
+    my $fh = \*LOGFILE;
+
+    if($iLogFile)
+    {
+        unless (open $fh, ">>$iLogFile.log")
+        {
+            print ("WARNING: Failed to open log file: $iLogFile");
+            return 0;   # FALSE = Failure
+        }
+    }
+    else
+    {
+        $fh = \*STDOUT;
+    }
+
+    for my $line(@$iOutputRef) # For each line of output...
+    {
+        $line =~ s/\s+$//;     # Remove trailing spaces (McAfee CSSCAN pads each line to 1024 chars!!)
+        # Does it match an error as returned by PSKill or net stop/start
+        if($line =~ /The specified service does not exist as an installed service\./i or
+           $line =~ /The .*? service is not started\./i or
+           $line =~ /The requested service has already been started./i or
+           $line =~ /The service name is invalid\./i or
+           $line =~ /Process does not exist\./i or
+           $line =~ /Unable to kill process/i or
+           $line =~ /error/i or
+           $line =~ /is not recognized as an internal or external command/i)
+        {
+            print "WARNING: $line\n";
+        }
+        else # No errors/warnings so just print the line on its own
+        {
+            print $fh "$line\n";
+        }
+    }
+    return 1;   # TRUE = Success
+}
+
+# ExecuteProcess:
+# Description: Executes specified command using Perl module Win32::Process
+# Arguments: the command to execute as a hashref (filename of executable and parameters/args to pass to it)
+# Returns: none
+sub ExecuteProcess
+{
+    my $iWaitSecs = shift;
+    my $iCmd = shift;           # Hashref - Command spec.
+  
+    my $iExecutable = $iCmd->{'AppName'};
+    unless(-e $iExecutable)
+    {
+        $iExecutable = FindFileFromPath($iCmd->{'AppName'});
+        unless ($iExecutable)
+        {
+            print "REMARK: File not found $iCmd->{'AppName'}\n";
+            return; 
+        }
+    }
+    my $iParams = $iCmd->{'Params'};
+
+    #  my $iFlags = $iDebug? CREATE_NEW_CONSOLE: DETACHED_PROCESS;
+    #  my $iFlags = $iDebug? 0: DETACHED_PROCESS;
+    my $iFlags = 0;
+
+    # Create a new Perl process (because fork does not work on some versions of Perl on Win32)
+    # $^X is the path to the Perl binary used to process this script
+    my $iProcess;
+    unless (Win32::Process::Create($iProcess, "$iExecutable", "\"$iExecutable\" $iParams", 0, $iFlags, "."))
+    {
+        print "WARNING: Failed to create process for $iExecutable $iParams.\n";
+        my $iExitCode = Win32::GetLastError();
+        ReportProcessError($iExitCode);
+        return;
+    }
+
+    my $iPID = $iProcess->GetProcessID(); 
+    print "\nExecuting: $iExecutable $iParams .....\n";
+    my $iRetVal = $iProcess->Wait($iWaitSecs * 1000);      # milliseconds. Return value is zero on timeout, else 1.
+    if ($iRetVal == 0)    # Wait timed out
+    {   # No error from child process (so far)
+        print "Spawned: $iExecutable $iParams - PID=$iPID.\n";
+        return 1;       # Success
+    }
+    else          # Child process terminated. Wait usually returns 1.
+    {             # Error in child process?? If so, get exit code
+        my $iExitCode;
+        $iProcess->GetExitCode($iExitCode);
+        unless($iExitCode)
+        {
+            print "Executed: $iExecutable $iParams - PID=$iPID.\n";
+            return 1;           # Success
+        }
+        print "REMARK: Failed in execution of $iExecutable $iParams.\n";
+        ReportProcessError($iExitCode);
+        return 0;
+    }
+}
+
+# ReportProcessError:
+# Description: prints error code to STDOUT followed by explanatory text, if avalable
+# Arguments: Windows error code
+# Returns: none
+sub ReportProcessError
+{
+    my $iExitCode = shift;
+
+    my $iMsg = Win32::FormatMessage($iExitCode);
+    if (defined $iMsg)
+    {
+        printf "ExitCode: 0x%04x = %s\n", $iExitCode, $iMsg;
+    }
+    else
+    {
+        printf "ExitCode: 0x%04x\n", $iExitCode;
+    }
+}
+
+# FindFileFromPath:
+# Description: Tries to find a file using PATH Environment Variable
+# Argument: Filename (Must include extension .EXE, .CMD etc)
+# Return: Full pathname of file, if found, otherwise undef
+sub FindFileFromPath
+{
+    my $iFilename = shift;
+    my $iPathname;
+    my @iPathDirs = split /;/, $ENV{'PATH'};
+    foreach my $iDir (@iPathDirs)
+    {
+        while ($iDir =~ s/\\$//){;}     # Remove any trailing backslash(es)
+        $iPathname = "$iDir\\$iFilename";
+        if (-e $iPathname)
+        {
+            return $iPathname;
+        }
+    }
+    return undef;
+}
+
+# RemoveExistingFile:
+# Description: If specified .LOG file exists, rename to .BAK
+# Arguments: File to check
+# Returns: TRUE on Success
+sub RemoveExistingFile
+{
+    my $iFilename = shift;       # Full pathname LESS extension
+
+    unless (-e "$iFilename.log") { return 1; }  # Success!
+
+    if (File::Copy::move("$iFilename.log","$iFilename.bak")) { return 1; }  # Success!
+
+    print "WARNING: Failed to rename $iFilename.log\nto $iFilename.bak because of:\n$!\n";
+    return 0;   # FALSE = Failure
+}
+
+1;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/BCValues.xml	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+<!DOCTYPE BCValues [
+  <!ATTLIST Product name CDATA #REQUIRED>
+]>
+
+<BCValues Name="MCL">
+
+  <Product name="Future">
+    <Value Name="BCToolsBaseBuildNo" Value="M04380"/>
+  </Product>
+  <Product name="9.4">
+    <Value Name="BCToolsBaseBuildNo" Value="M04380"/>
+  </Product>
+  <Product name="9.5">
+    <Value Name="BCToolsBaseBuildNo" Value="M04380"/>
+  </Product>
+  <Product name="9.6">
+    <Value Name="BCToolsBaseBuildNo" Value="M04380"/>
+  </Product>
+    
+</BCValues>
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/BCupdateXML.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,77 @@
+#!perl -w
+# Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Script to perform Build Launch Checks
+# 
+#
+
+use strict;
+use Getopt::Long;
+use FindBin;
+use lib "$FindBin::Bin";
+use BuildLaunchChecks;
+
+my %BCData;
+
+# Process the commandline
+my ($iBuildLaunch) = ProcessCommandLine();
+
+($BCData{'BCToolsBaseBuildNo'}) = BuildLaunchChecks::GetBCValue(\%ENV);
+
+BuildLaunchChecks::UpdateXML($iBuildLaunch, \%BCData);
+
+
+# ProcessCommandLine
+#
+# Inputs
+#
+# Outputs
+# $iBuildLaunch (BuildLaunch xml file)
+#
+# Description
+# This function processes the commandline
+#
+
+sub ProcessCommandLine {
+  my ($iBuildLaunch, $iHelp);
+ 
+  GetOptions('x=s'   => \$iBuildLaunch, 'h' => \$iHelp )|| die Usage();
+
+  if ((!defined $iBuildLaunch) || ($iHelp))
+  {
+    Usage();
+  } else {
+    return $iBuildLaunch;
+  }
+
+}
+
+# Usage
+#
+# Description
+# Output Usage Information and exit whole script.
+#
+
+sub Usage {
+  print <<USAGE_EOF;
+
+  Usage: BCupdateXML.pl [options]
+
+  options:
+
+  -x  XML file to add BCToolsBaseBuildNo to
+  -h  Usage
+USAGE_EOF
+  exit 1;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/BuildExpiry.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,151 @@
+# Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Script to navigate through the builds and check for the expiry time
+# 
+#
+
+use strict;
+use FindBin;		# for FindBin::Bin
+use Getopt::Long;
+use File::Path;
+
+# For Date calculations
+use lib "$FindBin::Bin/../tools/build/lib"; # For running in source
+use Date::Manip;
+
+# Set TimeZone because Date:Manip needs it set and then tell it to IGNORE the TimeZone
+&Date_Init("TZ=GMT","ConvTZ=IGNORE");
+
+# Process the commandline
+my ( $iPath, $iPreview, $iLogPath ) = ProcessCommandLine();
+
+# Open the output logfile if needed
+if ( $iLogPath && !$iPreview )
+{
+  # Redirect both STDOUT and STDERR to the logfile
+  open (STDOUT, ">>$iLogPath") or die ("ERROR: Unable to open file \"$iLogPath\" for writing: $!");
+  open (STDERR, ">&STDOUT") or die ("ERROR: Unable to redirect STDERR to STDOUT: $!");
+  
+  # Turn off buffering for each file handle to preserve ordering
+  select((select(STDOUT), $|=1)[0]);
+  select((select(STDERR), $|=1)[0]);
+}
+
+# Get today's date
+my $timestamp = &UnixDate("today","%Y-%m-%d");
+
+# Open the published path and get an array of build directories there
+opendir (DIRS, $iPath);
+my @dirs = readdir(DIRS);
+closedir(DIRS);
+chomp @dirs;
+
+my @build_dirs;
+foreach my $dir (@dirs)
+{
+   if (( -d "$iPath\\$dir" ) && ( $dir =~ /^\d{5}/ ))
+   {
+      # We have found a build directory
+      push @build_dirs, "$iPath\\$dir";
+   }
+}
+
+# Go through each build directory looking for expiry files
+foreach my $dir (@build_dirs)
+{
+  &ProcessDir($dir);
+}
+
+sub ProcessDir
+{
+  my ($dir) = @_;
+
+  opendir(DIR, $dir);
+  my @expirys = readdir(DIR);
+  closedir(DIR);
+  chomp @expirys;
+
+  foreach my $entry (@expirys)
+  {
+    next if (($entry eq ".") or ($entry eq ".."));
+    &ProcessDir("$dir\\$entry") if (-d "$dir\\$entry");
+    next if ((!-f "$dir\\$entry") or ($entry !~ /^(\d+)_(\d+)_(\d+).expiry$/i));
+    
+    # We have found an expiry file so extract the expiry date
+    my ($year, $month, $day) = ($1, $2, $3);
+
+    my $delta = &DateCalc("$year-$month-$day","today");
+    if ( &Delta_Format($delta,'0',"%dt") > 0)
+    {
+      # This build directory has expired
+      print "$timestamp: Removing directory \"$dir\" (Expired $year-$month-$day)\n";
+      &RemoveDirectory($dir) if (!$iPreview);
+      
+      # Removal of this build directory is complete, so move onto the next one
+      last;
+    }
+  }
+}
+
+sub RemoveDirectory()
+{
+  my $dir = shift;
+
+  my $temp = rmtree($dir);
+  print "$temp file(s) removed.\n";
+
+  return if ( !-d $dir );
+
+  # Directory removal has failed
+  warn "WARNING: Directory \"$dir\" could not be removed.\n";
+}
+
+
+# End of script
+
+sub ProcessCommandLine {
+  my ($iHelp, $iPath, $iPreview,$iLogPath);
+  GetOptions('h' => \$iHelp, 'p=s' => \$iPath, 'n' => \$iPreview,, 'l=s' => \$iLogPath);
+
+  if ( ($iHelp) || (!defined $iPath) )
+  {
+    Usage();
+  } 
+  else 
+  {
+    return( $iPath, $iPreview, $iLogPath );
+  };
+}
+
+# Usage
+#
+# Output Usage Information.
+#
+
+sub Usage {
+  print <<USAGE_EOF;
+
+  Usage: BuildExpiry.pl [options]
+
+  options:
+
+  -h  Help
+  -p  %s Path to publish directory
+  -n  Preview only
+  -l  %s Path to log file
+
+USAGE_EOF
+  exit 1;
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/BuildLaunch.xml	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,117 @@
+<?xml version="1.0"?>
+<!DOCTYPE Build  [
+  <!ELEMENT Product (Commands)>
+  <!ATTLIST Product name CDATA #REQUIRED>
+  <!ELEMENT Commands (Execute+ | SetEnv*)>
+  <!ELEMENT Execute EMPTY>
+  <!ATTLIST Execute ID CDATA #REQUIRED>
+  <!ATTLIST Execute Stage CDATA #REQUIRED>
+  <!ATTLIST Execute Component CDATA #REQUIRED>
+  <!ATTLIST Execute Cwd CDATA #REQUIRED>
+  <!ATTLIST Execute CommandLine CDATA #REQUIRED>
+  <!ELEMENT SetEnv EMPTY>
+  <!ATTLIST SetEnv Order ID #IMPLIED>
+  <!ATTLIST SetEnv Name CDATA #REQUIRED>
+  <!ATTLIST SetEnv Value CDATA #REQUIRED>
+]>
+<Product Name="Build Launch">
+  <Commands>
+    <!--Set Env-->
+    <!--SnapshotNumber, PreviousSnapshotNumber and ChangelistNumber need to be Completed-->
+    <SetEnv Name="SnapshotNumber" Value="<TMPL_VAR NAME=tmpl_snapshot>"/>	<!--Changeme is MCL Snapshot Number-->
+    <SetEnv Name="PreviousSnapshotNumber" Value="<TMPL_VAR NAME=tmpl_snapshot_previous>"/>	<!--Changeme is Previous MCL Snapshot Number-->
+    <SetEnv Name="CDBCompareSnapshotNumber" Value="%PreviousSnapshotNumber%"/>	<!--Snapshot Number for CDB Comparison-->
+    <SetEnv Name="ChangelistNumber" Value="<TMPL_VAR NAME=tmpl_changelist>"/>	<!--Changeme is Perforce CL Number-->
+    <SetEnv Name="CurrentCodeline" Value="<TMPL_VAR NAME=tmpl_codeline>"/> <!--Changeme if build from delivery branch-->
+    <SetEnv Name="Platform" Value="<TMPL_VAR NAME=tmpl_platform>"/> <!--Changeme is platform name beech/cedar-->
+    <SetEnv Name="Product" Value="<TMPL_VAR NAME=tmpl_build_short_name>"/> <!--Changeme is product name 8.1a, 8.1b, 9.0, 9.1-->
+
+    <SetEnv Name="BuildSubType" Value="<TMPL_VAR NAME=tmpl_build_sub_type>"/>
+
+    <!-- Build Publishing and Disk Space-->
+    <SetEnv Name="PublishLocation" Value="<TMPL_VAR NAME=tmpl_publish_location>"/> <!--Changeme if Test Build-->
+    <SetEnv Name="PublishDiskSpaceMin" Value="20"/> <!--Disk space required - Gigabytes-->
+    <SetEnv Name="BuildExpiryDays" Value="14"/>     <!--Applies to files at %PublishLocation%-->
+    <SetEnv Name="LocalDiskSpaceMin" Value="90"/>   <!--Disk space required - Gigabytes-->
+
+    <!-- BC Comparitor Variable-->
+    <SetEnv Name="BCToolsBaseBuildNo" Value="<TMPL_VAR NAME=tmpl_snapshot_external>"/>	<!--Changeme for regular and Test Builds, is Recent external build Number-->
+    
+    <SetEnv Name="BCCurrentCodeline" Value="%CurrentCodeline%"/>
+    <SetEnv Name="BuildShortName" Value="%Product%"/>
+    <SetEnv Name="BuildBaseName" Value="Symbian_OS_v%BuildShortName%"/>
+    <SetEnv Name="BuildNumber" Value="%SnapshotNumber%_%BuildBaseName%"/>
+    <SetEnv Name="PreviousBuildNumber" Value="%PreviousSnapshotNumber%_%BuildBaseName%"/>
+    <SetEnv Name="CDBPreviousBuildNumber" Value="%CDBCompareSnapshotNumber%_%BuildBaseName%"/>
+    <SetEnv Name="BaseBuildNumber" Value="%BCToolsBaseBuildNo%_%BuildBaseName%"/>
+    <SetEnv Name="Type" Value="<TMPL_VAR NAME=tmpl_type>"/>
+
+    <SetEnv Name="BuildsDirect" Value="<TMPL_VAR NAME=tmpl_dir>"/>
+
+    <SetEnv Name="BuildDir" Value="M:"/>
+    <SetEnv Name="TypeDir" Value="%BuildsDirect%\%Type%"/>
+    <SetEnv Name="SubstDir" Value="%BuildsDirect%\%BuildNumber%"/>
+    <SetEnv Name="CleanSourceDir" Value="%BuildDir%\clean-src"/>
+    <SetEnv Name="SourceDir" Value="%BuildDir%\sf"/>
+    <SetEnv Name="OutputDir" Value="%BuildDir%\bin\%Platform%"/>
+    <SetEnv Name="ToolsDir" Value="%BuildsDirect%\maintools"/>
+    <SetEnv Name="LogsDir" Value="%BuildDir%\logs\%Platform%"/>
+    <SetEnv Name="BootstrapDir" Value="%BuildDir%\tools"/>
+
+    <SetEnv Name="EPOCROOT" Value="\"/>
+    <SetEnv Name="ZipDir" Value="%BuildDir%\zips"/>
+    <SetEnv Name="PATH" Value="%EPOCROOT%epoc32\gcc\bin;%EPOCROOT%epoc32\tools;C:\Apps\GnuPG;%PATH%"/>
+    <SetEnv Name="ProductPath" Value="%BuildDir%\Product\%Platform%"/>
+    <SetEnv Name="DeltaCache" Value="%BuildsDirect%\%Type%\src-%Platform%"/>
+    <SetEnv Name="BootstrapDeltaCache" Value="%BuildsDirect%\%Type%\src-bootstrap"/>
+    <SetEnv Name="PreviousBuildPublishLocation" Value="\\Builds01\devbuilds"/>  <!--for test build CDB comparisons-->
+    <SetEnv Name="SmokeTestServerPool" Value="LON-SYSBUILD04#LON-SYSBUILD05#LON-ENGBLDDVD01#LON-PDTEST01"/>
+    <SetEnv Name="CdbZipLocation" Value="%CleanSourceDir%\os\buildtools\toolsandutils\cdb\distribution"/>
+    <SetEnv Name="ABLDCACHE" Value="%BuildDir%\abldcache"/>
+    <SetEnv Name="AutoBFCServerPool" Value="LON-ENGBUILD20#LON-ENGBUILD21#LON-ENGBUILD22"/>
+
+    <!-- START PHASE PREBUILD  -->
+    <Execute Component="Start Phase PREBUILD" Cwd="%ToolsDir%\bin" CommandLine="perl %ToolsDir%\os\buildtools\bldsystemtools\commonbldutils\start-perl.pl -- notifyBuildPhase.pl -s %SnapshotNumber% -p %BuildShortName% -n PREBUILD -t START"/>
+
+
+    <!--Start Performance Monitoring -->
+    <Execute Component="Starting PerfMon" Cwd="%ToolsDir%\os\buildtools\bldsystemtools\commonbldutils\PerfMon" CommandLine="perl PerfMonControl.pl -p 1973 -f %LogsDir%\PerfMon_%BuildNumber%.csv -c PerfMon.cfg"/>
+
+
+    <!--Stop Anti-Virus Services-->
+    <Execute Component="Stop Anti-Virus Services" Cwd="%ToolsDir%\os\buildtools\bldsystemtools\commonbldutils" CommandLine="Perl AntiVirus.pl -c STOP" ExitOnScanlogError="y"/>
+
+    <!--LogsDir already created by startbuild/TBAS-->
+    <Execute Component="Subst Build Dir" Cwd="%ToolsDir%\os\buildtools\bldsystemtools\commonbldutils" CommandLine="subst.pl -v %BuildDir% -p %SubstDir% -f"/>
+    <Execute Component="Make Bin Dir" Cwd="%BuildDir%" CommandLine="mkdir %OutputDir%"/>
+    <Execute Component="Make Publish Logs Dir" Cwd="%BuildDir%" CommandLine="mkdir %PublishLocation%\%Type%\%BuildNumber%\logs"/>
+   
+    <!--Time Stamp the build-->
+    <Execute Component="Time Stamp Build" Cwd="%ToolsDir%\os\buildtools\bldsystemtools\commonbldutils" CommandLine="perl BuildStamp.pl -b %BuildNumber% -d %BuildExpiryDays% -p %PublishLocation%\%Type%"/>
+ 
+    <!-- Generate and Copy PC and Perforce Table over into the Publish Logs Location --> 
+    <Execute Component="Generate PC and P4 Table" Cwd="%ToolsDir%\os\buildtools\bldsystemtools\commonbldutils" CommandLine="perl PC_P4Table.pl" ExitOnScanlogError="y"/>
+    <Execute Component="Copy PC and P4 Table to Local Logs Dir" Cwd="%ToolsDir%\os\buildtools\bldsystemtools\commonbldutils" CommandLine="copy %SnapshotNumber%_%Product%PC_Perforce_report.html %LogsDir%\%SnapshotNumber%_%Product%PC_Perforce_report.html" /> 
+    <Execute Component="Publish PC and P4 Table to builds01 Logs Dir" Cwd="%LogsDir%" CommandLine="copy %SnapshotNumber%_%Product%PC_Perforce_report.html %PublishLocation%\%Type%\%BuildNumber%\logs\%SnapshotNumber%_%Product%PC_Perforce_report.html" /> 
+
+    <!--Check space and remove old local builds if necessary-->
+    <Execute Component="Remove Old Local Builds" Cwd="%BuildDir%" CommandLine="perl %ToolsDir%\os\buildtools\bldsystemtools\commonbldutils\remove_old_builds.pl %BuildNumber% %BuildsDirect% %LocalDiskSpaceMin%000000000"/>
+    
+    <!--PrebuildChecks-->
+    <Execute Component="PreBuildChecks" Cwd="%BuildDir%" CommandLine="perl %ToolsDir%\os\buildtools\bldsystemtools\commonbldutils\PreBldChecks.pl -l %LogsDir%\prebuild.log -e I_EXT_SysBuildSupport@nokia.com" ExitOnScanlogError="y"/>
+
+    <!-- START PHASE SYNC  -->
+    <Execute Component="Start Phase SYNC" Cwd="%ToolsDir%\bin" CommandLine="perl %ToolsDir%\os\buildtools\bldsystemtools\commonbldutils\start-perl.pl -- notifyBuildPhase.pl -s %SnapshotNumber% -p %BuildShortName% -n SYNC -t START"/>
+ 
+    <!--Get Source-->
+    <Execute Component="Perforce Sync" Cwd="%ToolsDir%\os\buildtools\bldsystemtools\commonbldutils\perforce" CommandLine="perl syncsource.pl -t %BuildSubType%" ExitOnScanlogError="y"/>
+
+    <!-- STOP PHASE SYNC  -->
+    <Execute Component="Stop Phase SYNC" Cwd="%ToolsDir%\bin" CommandLine="perl %ToolsDir%\os\buildtools\bldsystemtools\commonbldutils\start-perl.pl -- notifyBuildPhase.pl -s %SnapshotNumber% -p %BuildShortName% -n SYNC -t STOP"/>
+    
+    <!--Record Delivery to the delivery database for this build -->
+    <Execute Component="Record Delivery" Cwd="%CleanSourceDir%\os\buildtools\bldsystemtools\commonbldutils" CommandLine="perl record_delivery.pl -t \\builds01\devbuilds\BuildTeam\record_delivery\SymbianKK.tmpl -t \\builds01\devbuilds\BuildTeam\record_delivery\SymbianIndia.tmpl -t \\builds01\devbuilds\BuildTeam\record_delivery\SymbianChina.tmpl -t \\builds01\devbuilds\BuildTeam\record_delivery\NokiaFinland.tmpl -c \\builds01\devbuilds\BuildTeam\record_delivery\email.cfg -e BuildNumber=%BuildNumber% -e PublishLocation=%PublishLocation% -e COMPUTERNAME=%COMPUTERNAME%"/>
+
+ </Commands>
+</Product>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/BuildLaunchChecks.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,272 @@
+#This module is used by startbuild.pl
+#It asks for some BuildLaunch data from the user and performs some checks on this data
+#This is then input to the BuildLaunch.xml file and then opens the file for the user to verify before launching the build.
+
+package BuildLaunchChecks;
+use strict;
+
+sub GetUserInput
+{
+  # Ask for Snapshot, Previous Snapshot and ChangeList numbers
+  
+  my $Product;
+  print "Enter Product number (e.g 9.1/9.5/tb91sf/tb92sf/tb101sf) >";
+  chomp($Product = <STDIN>);
+  $Product =~ s/\s+//g;
+  
+  my $Snapshot;
+  print "Enter Snapshot number >";
+  chomp($Snapshot = <STDIN>);
+  $Snapshot =~ s/\s+//g;
+  
+  my $PrevSnapshot;
+  print "Enter Previous Snapshot number >";
+  chomp($PrevSnapshot = <STDIN>);
+  $PrevSnapshot =~ s/\s+//g;
+  
+  my $Changelist;
+  print "Enter ChangeList number >";
+  chomp($Changelist = <STDIN>);
+  $Changelist =~ s/\s+//g;
+  print "\n";
+  
+  my $CurrentCodeline;
+  print "Enter Codeline (e.g. //epoc/master //EPOC/Release/sf/symtb91 //EPOC/master/sf) >";
+  chomp($CurrentCodeline = <STDIN>);
+  $CurrentCodeline =~ s/\s+//g;
+  print "\n";
+  
+  my $Platform;
+  print "Enter Platform (e.g. beech/cedar/SF) >";
+  chomp($Platform = <STDIN>);
+  $Platform =~ s/\s+//g;
+  print "\n";
+  
+  my $Type;
+  print "Enter Type (e.g Master/MasterSF/Symbian_OS_v9.1/Symbian_OS_vTB91SF) >";
+  chomp($Type = <STDIN>);
+  $Type =~ s/\s+//g;
+  print "\n";
+  
+  
+  
+  return $Product,
+         $Snapshot,
+         $PrevSnapshot,
+         $Changelist,
+         $CurrentCodeline,
+         $Platform,
+         $Type;
+}
+
+sub GetBCValue
+{
+  my($BuildData) = @_;
+  $BuildData->{CurrentCodeline} =~ s/\/$//;  #drop any trailing /
+  my $cmd = "p4 print -q $BuildData->{CurrentCodeline}/os/buildtools/bldsystemtools/commonbldutils/BCValues.xml\@$BuildData->{ChangelistNumber}";
+  my $BCValues = `$cmd`;
+  warn "WARNING: Could not open BCValues file" if $?;
+  
+  my @BCValues = split /\n/m, $BCValues;
+  
+  my $BCToolsBaseBuildNo;
+  
+  my $Product_Found = 0;
+  foreach my $line (@BCValues)
+  {
+    $Product_Found = 1 if ($line =~ m/Product name=\"$BuildData->{Product}\"/i);
+    
+    if (($line =~ m/\"BCToolsBaseBuildNo\" Value=\"(.*)\"/i)&&($Product_Found == 1))
+    {
+      $BCToolsBaseBuildNo = $1;
+      $BCToolsBaseBuildNo =~ s/\s+//g;
+      last;
+    }
+  }
+  
+  return $BCToolsBaseBuildNo;
+}
+
+sub CheckData
+{
+  my($BuildData) = @_;
+  
+  my @change;
+  my $Error;
+  my $BCBaseBuild = "$BuildData->{PreviousBuildPublishLocation}\\$BuildData->{Type}\\$BuildData->{BCToolsBaseBuildNo}"."_Symbian_OS_v$BuildData->{Product}"
+         if ((defined $BuildData->{BCToolsBaseBuildNo})&&(defined $BuildData->{Type})&&(defined $BuildData->{Product}));
+  my $warnings = 0;
+ 
+  #Check that the Changelist number entered at prebuild is the same as the Changelist entered at startbuild
+  if (($ENV{CHANGELIST} != $BuildData->{ChangelistNumber})&&(defined $ENV{CHANGELIST})&&(defined $BuildData->{ChangelistNumber}))
+  {
+     warn "Warning: Changelist numbers entered at prebuild and startbuild are different\n";
+     $warnings++;
+  }
+  
+  #Check that the Changelist number entered is on the CodeLine
+  if(defined $BuildData->{ChangelistNumber})
+  {
+    my $describe = "p4 -s describe $BuildData->{ChangelistNumber} 2>&1";
+    push @change, `$describe`;
+    warn "ERROR: Could not execute: $describe\n" if $?;
+    
+    foreach my $line(@change)
+    {
+     if ($line =~ m/$BuildData->{CurrentCodeline}/i)
+     {
+       $Error = 0;
+       last;
+     }
+    }
+    if (!defined $Error)
+    {
+     warn "Warning: Change $BuildData->{ChangelistNumber} does not exist on $BuildData->{CurrentCodeline}\n";
+     $warnings++;
+    }
+  }
+  
+  #Check that the Previous Snapshot is less than the Current Snapshot
+  if (($BuildData->{SnapshotNumber} lt $BuildData->{PreviousSnapshotNumber})&&(defined $BuildData->{SnapshotNumber})&&(defined $BuildData->{PreviousSnapshotNumber}))
+  {
+     warn "Warning: Current snapshot is less than the Previous snapshot\n";
+     $warnings++;
+  }
+  
+  #Check that the Previous Snapshot Number exists
+  if ((!-e "$BuildData->{PreviousBuildPublishLocation}\\$BuildData->{Type}\\$BuildData->{PreviousSnapshotNumber}"."_Symbian_OS_v$BuildData->{Product}")&&(defined $BuildData->{PreviousSnapshotNumber})&&(defined $BuildData->{Product})&&(defined $BuildData->{Type}))
+  {
+     warn "Warning: Previous snapshot number does not exist on $BuildData->{PreviousBuildPublishLocation}\\$BuildData->{Type}\n";
+     $warnings++;
+  }
+  
+  #Check that CBR exists for the Previous Snapshot
+  if ((!-e "$BuildData->{PreviousBuildPublishLocation}\\ComponentisedReleases\\DailyBuildArchive\\Symbian_OS_v$BuildData->{Product}\\gt_techview_baseline\\$BuildData->{PreviousSnapshotNumber}"."_Symbian_OS_v$BuildData->{Product}")&&(defined $BuildData->{PreviousSnapshotNumber})&&(defined $BuildData->{Product}))
+  {
+     warn "Warning: CBR does not exist for build $BuildData->{PreviousSnapshotNumber}\n";
+     $warnings++;
+  }
+  
+  #Check that the BCToolsBaseBuildNo exists on devbuilds
+  if ((!-e $BCBaseBuild)&&(defined $BCBaseBuild)&&(defined $BuildData->{BCToolsBaseBuildNo}))
+  {
+    warn "Warning: $BuildData->{BCToolsBaseBuildNo}"."_"."Symbian_OS_v$BuildData->{Product} does not exist on \\\\Builds01\\devbuilds\\$BuildData->{Type}\n";
+    $warnings++;
+  }
+ return $warnings;
+}
+
+sub UpdateXML
+{
+  my($xmlfile, $BuildData, $Sync) = @_;
+  open(XMLFILE, '+<', $xmlfile) || warn "Warning: can't open $xmlfile for append: $!";
+  my @initarray = <XMLFILE>;
+  
+  my $Left;
+  my $Right;
+  
+  foreach my $line (@initarray)
+  {
+    if (($line =~ m/\"SnapshotNumber\" Value=\"([^\"]+)\"/)&&(defined $BuildData->{SnapshotNumber}))
+    {
+      $Left  = $`;
+      $Right = $';
+      $line= $Left . "\"SnapshotNumber\" Value=\"" . $BuildData->{SnapshotNumber} ."\"" . $Right;
+      next;
+    }
+    
+    if (($line =~ m/\"PreviousSnapshotNumber\" Value=\"([^\"]+)\"/)&&(defined $BuildData->{PreviousSnapshotNumber}))
+    {
+      $Left  = $`;
+      $Right = $';
+      $line= $Left . "\"PreviousSnapshotNumber\" Value=\"" . $BuildData->{PreviousSnapshotNumber} ."\"" . $Right;
+      next;
+    }
+    
+    if (($line =~ m/\"ChangelistNumber\" Value=\"([^\"]+)\"/)&&(defined $BuildData->{ChangelistNumber}))
+    {
+      $Left  = $`;
+      $Right = $';
+      $line= $Left . "\"ChangelistNumber\" Value=\"" . $BuildData->{ChangelistNumber} ."\"" . $Right;
+      next;
+    }
+    
+    if (($line =~ m/\"Platform\" Value=\"([^\"]+)\"/)&&(defined $BuildData->{Platform}))
+    {
+      $Left  = $`;
+      $Right = $';
+      $line= $Left . "\"Platform\" Value=\"" . $BuildData->{Platform} ."\"" . $Right;
+      next;
+    }
+    
+    if (($line =~ m/\"Product\" Value=\"([^\"]+)\"/)&&(defined $BuildData->{Product}))
+    {
+      $Left  = $`;
+      $Right = $';
+      $line= $Left . "\"Product\" Value=\"" . $BuildData->{Product} ."\"" . $Right;
+      next;
+    }
+    
+    if (($line =~ m/\"PublishLocation\" Value=\"([^\"]+)\"/)&& (defined $BuildData->{PublishLocation}))
+    {
+      $Left  = $`;
+      $Right = $';
+      $line= $Left . "\"PublishLocation\" Value=\"$BuildData->{PublishLocation}\"" . $Right;
+      next;
+    }
+    
+    if (($line =~ m/\"CurrentCodeline\" Value=\"([^\"]+)\"/)&&(defined $BuildData->{CurrentCodeline}))
+    {
+      $Left  = $`;
+      $Right = $';
+      $line= $Left . "\"CurrentCodeline\" Value=\"$BuildData->{CurrentCodeline}\"" . $Right;
+      next;
+    }
+
+    if (($line =~ m/\"Type\" Value=\"([^\"]+)\"/)&&(defined $BuildData->{Type}))
+    {
+      $Left  = $`;
+      $Right = $';
+      $line= $Left . "\"Type\" Value=\"$BuildData->{Type}\"" . $Right;
+      
+      next;
+    }
+    
+    if (($line =~ m/\"BuildSubType\" Value=\"([^\"]+)\"/)&&(defined $BuildData->{BuildSubType}))
+    {
+      $Left  = $`;
+      $Right = $';
+      $line= $Left . "\"BuildSubType\" Value=\"$BuildData->{BuildSubType}\"" . $Right;
+      
+      next;
+    }
+    
+    if (($line =~ m/\"BCToolsBaseBuildNo\" Value=\"([^\"]+)\"/)&&(defined $BuildData->{BCToolsBaseBuildNo}))
+    {
+      $Left  = $`;
+      $Right = $';
+      $line= $Left . "\"BCToolsBaseBuildNo\" Value=\"" . $BuildData->{BCToolsBaseBuildNo} ."\"" . $Right;
+      next;
+    }
+    
+    if (($line =~ m/\"BuildsDirect\" Value=\"([^\"]+)\"/)&&(defined $BuildData->{BuildsDirect}))
+    {
+      $Left  = $`;
+      $Right = $';
+      $line= $Left . "\"BuildsDirect\" Value=\"$BuildData->{BuildsDirect}\"" . $Right;
+      
+      last;
+    }
+  }
+  
+  # output the changes to the original file
+  seek(XMLFILE,0,0);
+  print XMLFILE @initarray;
+  truncate(XMLFILE,tell(XMLFILE));
+  
+  close(XMLFILE);
+}
+
+1;
+
+__END__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/BuildStamp.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,97 @@
+# Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Script to create a timestamp for builds
+# 
+#
+
+use strict;
+use Getopt::Long;
+
+# For Date calculations
+use FindBin;		# for FindBin::Bin
+use lib "$FindBin::Bin/../tools/build/lib"; # For running in source
+use lib "$FindBin::Bin/../buildsystemtools/lib"; # For running in source (Foundation Structure)
+use Date::Manip;
+
+# Set TimeZone because Date:Manip needs it set and then tell it to IGNORE the TimeZone
+&Date_Init("TZ=GMT","ConvTZ=IGNORE");
+
+# Process the commandline
+my ($iBuildNum, $iDaysNum, $iPath) = ProcessCommandLine();
+
+# Gets today date then build the date stamp file by adding on the number of days given by the -d flag
+# The file name is of the format year_month_day.expiry
+my $date = &DateCalc("today","+ $iDaysNum days");
+my $Logfilename = &UnixDate($date,$iPath."\\".$iBuildNum."\\"."%Y_%m_%d"."\."."expiry");
+
+
+# Create the date stamp file
+open(FILE,">> $Logfilename");
+print FILE "Build to be deleted on this date\n";
+close FILE;
+
+if ($ENV{'BuildSubType'} eq "Test")
+{
+  # Gets today date then build the date stamp file for devkit deletion and setting it to 3 days
+  # The file name is of the format year_month_day.devkitExpiry
+  my $date = &DateCalc("today","+ 3 days");
+  my $Logfilename = &UnixDate($date,$iPath."\\".$iBuildNum."\\Product\\"."%Y_%m_%d"."\."."expiry");
+
+  mkdir ($iPath."\\".$iBuildNum."\\Product");
+
+  # Create the date stamp file
+  open(FILE,">> $Logfilename");
+  print FILE "Build to be deleted on this date\n";
+  close FILE;
+}
+# End of script
+
+sub ProcessCommandLine {
+  my ($iHelp, $iBuildNum, $iDaysNum, $iPath);
+  GetOptions('h' => \$iHelp, 'b:s' =>\$iBuildNum, 'd:i' => \$iDaysNum, 'p:s' => \$iPath);
+
+  if (($iHelp) || (!defined $iBuildNum) || (!defined $iPath) )
+  {
+    Usage();
+  } 
+  else 
+  {
+    if (!defined $iDaysNum)
+    {
+      $iDaysNum = 14;
+    }
+    return($iBuildNum, $iDaysNum, $iPath);
+  };
+}
+
+# Usage
+#
+# Output Usage Information.
+#
+
+sub Usage {
+  print <<USAGE_EOF;
+
+	Usage: BuildStamp.pl [options]
+
+	options:
+
+	-h Help
+	-b	%s Build number
+	-d	%n Number of days from today
+	-p	%s Path to publish directory
+
+USAGE_EOF
+	exit 1;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/BxCopy.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,93 @@
+# Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Script to get Source from Perforce
+# 
+#
+
+use strict;
+use Getopt::Long;
+
+use FindBin;
+use lib "$FindBin::Bin";
+use BxCopy;
+
+
+# Process the commandline
+my ($iSource, $iTarget, $iExclude, $iInclude, $iVerbose, $iNoAction) = ProcessCommandLine();
+
+# Get list of files
+my $iCopyFiles = &BxCopy::FilterDir($iSource,$iExclude,$iInclude);
+
+# Copy Function
+&BxCopy::CopyFiles($iSource, $iTarget, $iCopyFiles, $iVerbose, $iNoAction);
+
+
+# ProcessCommandLine
+#
+# Inputs
+#
+# Outputs
+#
+# Description
+# This function processes the commandline
+
+sub ProcessCommandLine {
+  my ($iHelp, $iSource, $iTarget, @iExclude, @iInclude, $iVerbose, $iNoAction);
+  GetOptions('h' => \$iHelp, 's=s' => \$iSource, 't=s' => \$iTarget, 'x=s' => \@iExclude, 'i=s' => \@iInclude, 'v' => \$iVerbose, 'n' => \$iNoAction);
+
+  if (($iHelp) || (!defined $iSource) || (!defined $iTarget))
+  {
+    Usage();
+  } elsif (! -d $iSource) {
+    print "$iSource is not a directory\n";
+    Usage();
+  } elsif ( -d $iTarget) {
+    print "$iTarget already exist\n";
+    Usage();
+  } else {
+    # Remove any trailing \ or from dirs
+    $iSource =~ s#[\\\/]$##;
+    $iTarget =~ s#[\\\/]$##;
+    # Make sure all the \ are /
+    $iSource =~ s/\\/\//g;
+    $iTarget =~ s/\\/\//g;
+    return($iSource, $iTarget, \@iExclude, \@iInclude, $iVerbose, $iNoAction);
+  }
+}
+
+# Usage
+#
+# Output Usage Information.
+#
+
+sub Usage {
+  print <<USAGE_EOF;
+
+  Usage: BxCopy.pl [options]
+
+  options:
+
+  -h         -- help
+  -s  source -- source directory
+  -t  target -- target directory
+  -x  regexp -- exclude a reqular expression from the list of files
+  -i  regexp -- include a regular expression in to the list of files
+  -v         -- Verbose mode
+  -n         -- No Copy
+
+  Note:  The inclusion takes precedence over the exclusion.
+  Note:  This will not overwrite files as target cannot exist.
+USAGE_EOF
+  exit 1;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/BxCopy.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,148 @@
+# Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# This module implements the MD5 version of the Evalid's comapre
+# 
+#
+
+package BxCopy;
+
+use strict;
+use File::Copy;
+use File::Find;
+use File::Path;
+
+# FilterDir
+#
+# Inputs
+# $iDir - Directory to process
+# $iExclude - Reference to array of regular expression patterns to exclude
+# $iInclude - Reference to array of regular expression patterns to include
+#
+# Outputs
+# @iFinalFileList - Filtered list relative filenames
+#
+# Description
+# This function produces a filtered list of filenames in the specified directory
+
+sub FilterDir
+{
+  my ($iDir,$iExclude,$iInclude) = @_;
+
+  my (@iFileList, @iFinalFileList);
+  my ($iExcludeCount, $iIncludeCount);
+
+  # Produce full filelist listing without directory names
+  # Remove the specified directory path from the front of the filename
+  find sub {
+    if (!-d)
+    {
+      my $filepath = $File::Find::name;
+      $filepath=~ s#^$iDir/##i;
+      push @iFileList, $filepath;
+    }
+    }, $iDir;
+  
+  #Calculate the number of regex includes and excludes to optimise the filtering
+  if (defined $iExclude){
+    $iExcludeCount = scalar(@$iExclude);
+  } else {
+    $iExcludeCount = 0;
+  }
+
+  if (defined $iInclude){
+    $iIncludeCount = scalar(@$iInclude);
+  } else {
+    $iIncludeCount = 0;
+  }
+
+  # return unmodified list of files if there are no regexs to fitler it by
+  return \@iFileList if (($iExcludeCount == 0) && ($iIncludeCount == 0));
+
+  foreach my $iFile ( @iFileList)
+  {
+    my $iExcludeFile = 0;
+
+    # Process all Exclude RegEx to see if this file matches
+    foreach my $iExcludeRegEx (@$iExclude)
+    {
+      if ($iFile =~ /$iExcludeRegEx/i)
+      {
+        # Mark this file to be excluded from the final list
+        $iExcludeFile = 1;
+      }
+    }
+
+    # Process all Include RegEx to see if this file matches
+    foreach my $iIncludeRegEx (@$iInclude)
+    {
+      if ($iFile =~ /$iIncludeRegEx/i)
+      {
+        # Mark this file to be Included in the final list
+        $iExcludeFile = 0;
+      }
+    }
+
+    # Added the file to the final list based on the flag
+    push @iFinalFileList, $iFile unless $iExcludeFile;
+  }
+
+  return \@iFinalFileList;
+
+}
+
+# CopyFiles
+#
+# Inputs
+# $iSource - Directory to copy from
+# $iTarget - Directory to copy to
+# $iCopyFiles - Reference to an array of relative filenames to copy
+#
+# Outputs
+#
+# Description
+# This function copies files from one dir to another
+
+sub CopyFiles
+{
+  my ($iSource, $iTarget, $iCopyFiles, $iVerbose, $iNoAction) = @_;
+
+  print "No Copy specified, would have performed:-\n" if (defined $iNoAction);
+
+  #Loop through the list of files
+  my ($j);
+  for($j = 0; $j < scalar(@$iCopyFiles); $j++)
+  {
+    my ($iFile) = $$iCopyFiles[$j];
+    #Check if the to final directory exists, if not create it
+    my ($iDir) = $iFile =~ m#(.*)/.*#;
+
+    if (defined $iVerbose)
+    {
+      print $iSource."/".$iFile." => ".$iTarget."/".$iFile."\n";
+    }
+
+    if (!defined $iNoAction)
+    {
+      if (!-d $iTarget."/".$iDir)
+      {
+        mkpath ($iTarget."/".$iDir) || die "ERROR: Cannot create ".$iTarget."/".$iDir;
+      }
+      copy($iSource."/".$iFile,$iTarget."/".$iFile) || die "ERROR: Failed to copy ".$iSource."/".$iFile." to ".$iTarget."/".$iFile." $!";
+    }
+  }
+
+  print "$j files processed\n";
+}
+
+1;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/DefectTrack.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,56 @@
+# This script scans through the changes submitted on the specified codeline, within the range specified, and detects all changes involving a Defect Fix 
+
+# Renaming Parameters  
+$Codeline=$ARGV[0];
+$OldNumber=$ARGV[1];
+$NewNumber=$ARGV[2];
+$query="$Codeline\@$OldNumber,$NewNumber";
+
+system("p4 changes $query >changes.tmp");
+@changes;
+open(TMP,"changes.tmp");
+while(<TMP>)
+{
+    $_=split /\s+/,$_;
+    push @changes, $_[1];
+}
+close(TMP);
+
+#print @changes;
+    
+
+foreach $i(@changes){
+        system("p4 describe -ds -s $i >>description.tmp");
+	open(DES,">>description.tmp");
+	print DES "\n\n";
+	close(DES);
+    }
+
+
+open(DES,"description.tmp");
+$FileFlag=0;
+while(<DES>)
+{
+    if ($_ =~/^Change\s(\d+)\s/){
+	@ChangeInfo=split /\s+/,$_;
+	$CurrentChange=$ChangeInfo[1];
+	}
+    
+    if ($_=~/([A-Z][A-Z][A-Z]-)/){		#V4 defects
+	print "$CurrentChange\n";
+	print $_;
+    }
+	
+    if ($_=~/([a-zA-Z]{3}\d{4,6})/){		#TeamTrack defects
+ 	print "$CurrentChange\n";
+ 	print $_;
+    }
+ 
+
+}
+
+
+close(DES);
+close(TMP);
+system("del description.tmp");
+system("del changes.tmp");
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/EventLogReader.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,415 @@
+#!perl -w
+# This script reads data from specified Windows Event Logs and writes the information to a file
+# Output is ScanLog-compatible. First this script establishes a time range by reading the specified Build Log.
+# For info. on Win32::EventLog, see "Win32 Perl Programming" Page 171 et seq.
+use FindBin;
+use Sys::Hostname;
+use Win32;
+use Win32::EventLog;
+use Getopt::Long;
+use strict;
+# For Date calculations
+{
+no warnings;
+use lib "$FindBin::Bin/../buildsystemtools/lib"; # For running in source
+}
+use Date::Manip;
+
+# Set TimeZone because Date:Manip needs it set and then tell it to IGNORE the TimeZone
+&Date_Init("TZ=GMT","ConvTZ=IGNORE");
+
+# Check if HiRes Timer is available
+my $gHiResTimer = 0; #Flag - TRUE if HiRes Timer module available
+if (eval "require Time::HiRes;") {
+  $gHiResTimer = 1;
+} else {
+  print "Cannot load HiResTimer Module\n";
+}
+
+# Capture the name of this script for Help display etc.
+$0 =~ m/([^\\]+?)$/;
+my $gThisFile = $1;
+# Process command line
+
+my ($gComputer, $gBuildLogstart, $gBuildLogend, $gOutLogFile, @gEventSourcesUser) = ProcessCommandLine();
+$gComputer = (defined $gComputer)? uc $gComputer: hostname();
+
+# Open logfile, if specified
+my $gOutLogHandle = \*OUTLOGFILE;
+if (defined $gOutLogFile)
+{
+    open ($gOutLogHandle, ">$gOutLogFile") or die "Failed to open $gOutLogFile";
+    my $iTime = gmtime(time);
+    PrintStageStart(0,"Windows Event Log Extracts",$gThisFile);
+    print "Logfile: $gOutLogFile  Opened: $iTime\n";
+    print $gOutLogHandle "Output file: $gOutLogFile  Opened: $iTime\n";
+}
+else
+{
+    $gOutLogHandle = \*STDOUT;
+    PrintStageStart(0,"Windows Event Log Extracts",$gThisFile);     # Start logging Generic Info. as pseudo Build Stage
+    print "Logging to STDOUT\n";
+}
+print $gOutLogHandle "Data extracted from Windows Event Logs for Computer: $gComputer\n";
+
+# Establish time range. Get build start  time from specified Build Log file.
+unless (defined $gBuildLogstart)
+{
+    my $iMsg = "No Build Log specified";
+    print $gOutLogHandle "ERROR: $iMsg\n";
+    PrintStageEnd(0);     # Stop logging Generic Info.
+    Usage("$iMsg");
+}
+
+unless (defined $gBuildLogend)
+{
+    my $iMsg = "No Build Log specified";
+    print $gOutLogHandle "ERROR: $iMsg\n";
+    PrintStageEnd(0);     # Stop logging Generic Info.
+    Usage("$iMsg");
+}
+
+
+my ($gStartSecs, $gStopSecs) = GetTimeRange($gBuildLogstart, $gBuildLogend);
+
+unless (defined $gStartSecs)
+{
+    my $iMsg = "Invalid Build Log: $gBuildLogstart";
+    print $gOutLogHandle "ERROR: $iMsg\n";
+    PrintStageEnd(0);          # Stop logging Generic Info.
+    Usage("$iMsg");
+}
+
+# Establish time range. Get build  end time from specified Build Log file.
+# Determine which Event Logs are to be read. Default is "All three". Specifying one only is really a debug convenience.
+my @gEventSourcesDefault = ('Application','Security','System');
+my @gEventSources;
+if (@gEventSourcesUser)  # Event Log(s) specified by user.
+{
+    foreach my $iSrcU (@gEventSourcesUser)
+    {
+        my $iOKFlag = 0;
+        foreach my $iSrcD (@gEventSourcesDefault)
+        {
+            if (lc $iSrcU eq lc $iSrcD)
+            {
+                push (@gEventSources, $iSrcD);
+                $iOKFlag = 1;
+                last;
+            }
+        }
+        unless ($iOKFlag)
+        {
+            my $iMsg = "Invalid Event Log Filename: $iSrcU";
+            print $gOutLogHandle "ERROR: $iMsg\n";
+            PrintStageEnd(0);     # Stop logging Generic Info.
+            Usage("$iMsg");
+        }
+    }   # End foreach my $iSrcU (@gEventSourcesUser)
+
+}
+else    # Default to "All logs"
+{
+    @gEventSources = @gEventSourcesDefault;
+}
+
+PrintStageEnd(0);     # Stop logging Generic Info.
+
+# Finally read the required Event Log(s)
+$Win32::EventLog::GetMessageText = 1;   # Ensure that we get the message content from each Event Log entry.
+for (my $iIndx = 0; $iIndx < @gEventSources; )
+{
+    my $iEventSource=$gEventSources[$iIndx];
+    ++$iIndx;
+    print "Reading Event Log: $iEventSource\n";
+    ReadEventLog ($iIndx,$iEventSource);
+}
+
+close OUTLOGFILE;
+exit (0);
+
+# ReadEventLog
+#
+# Read from one Event Log and output to supplied logfile handle.
+#
+# Input: Stage Number, Event Log Name
+#
+# Output: ScanLog-compatible data to log file
+#
+sub ReadEventLog
+{
+    my $iStage = shift;         # Stage number.
+    my $iEventSource = shift;   # Name of Event Log file.
+    # First argument to "new Win32::EventLog()" may be "Application", "Security" or "System";
+    my $iTotalEvents;
+    my $iSeparator = "------------------------------------------------------------\n";
+    PrintStageStart($iStage,"Windows $iEventSource Event Log Extracts",$gThisFile);
+
+    my $iEventObject = new Win32::EventLog($iEventSource, $gComputer);
+
+    unless ($iEventObject)
+    {
+        print $gOutLogHandle  "ERROR: Failed to open Event Log: $iEventSource\n";
+        PrintStageEnd($iStage);
+        return;
+    }
+
+    unless ($iEventObject->GetNumber($iTotalEvents))
+    {
+        print $gOutLogHandle  "ERROR: Cannot read Event Log: $iEventSource\n";
+        PrintStageEnd($iStage);
+        return;
+    }
+
+    unless ($iTotalEvents)    # Check number of events in log.
+    {
+        print $gOutLogHandle "No event recorded in $iEventSource Log.\n";
+    }
+    else
+    {
+        # Reading Flags: EVENTLOG_FORWARDS_READ, EVENTLOG_BACKWARDS_READ, EVENTLOG_SEQUENTIAL_READ, EVENTLOG_SEEK_READ
+        my $iFlag = EVENTLOG_BACKWARDS_READ | EVENTLOG_SEQUENTIAL_READ;
+        my $iRecNum = 0;     # Ignored unless $iFlag == EVENTLOG_SEEK_READ
+        my $iStopFlag = 0;
+        my $count = 0;
+        while (!$iStopFlag)
+        {
+            my %iHash;
+            unless ($iEventObject->Read($iFlag, $iRecNum, \%iHash))
+            {
+                $iStopFlag = 1;
+            }
+            else    # Successful "read"
+            {
+            my $iEventTime = $iHash{TimeGenerated};
+            if ($iEventTime > $gStopSecs)
+                { next; }
+            if ($iEventTime < $gStartSecs)
+                { last; }
+            ++$count;
+            print $gOutLogHandle $iSeparator;
+            # Supported Event Types: EVENTLOG_ERROR_TYPE, EVENTLOG_WARNING_TYPE, EVENTLOG_INFORMATION_TYPE, EVENTLOG_AUDIT_SUCCESS, EVENTLOG_AUDIT_FAILURE
+            my $iTxt;
+            if ($iHash{EventType} == EVENTLOG_ERROR_TYPE)
+                {$iTxt = 'Error'; }
+            elsif ($iHash{EventType} == EVENTLOG_WARNING_TYPE)
+                {$iTxt = 'Warning'; }
+            elsif ($iHash{EventType} == EVENTLOG_INFORMATION_TYPE)
+                {$iTxt = 'Information'; }
+            elsif ($iHash{EventType} == EVENTLOG_AUDIT_SUCCESS)
+                {$iTxt = 'Audit Success'; }
+            elsif ($iHash{EventType} == EVENTLOG_AUDIT_FAILURE)
+                {$iTxt = 'Audit Failure'; }
+            else
+                {$iTxt = "*unknown* [$iHash{EventType}]"; }
+            print $gOutLogHandle "EventType: $iTxt  Source: $iHash{Source}  RecNum: $iHash{RecordNumber}\n";
+            my $iTimeStr = gmtime($iHash{TimeGenerated});
+            print $gOutLogHandle "TimeGen:   $iHash{TimeGenerated} ($iTimeStr)\n";
+            print $gOutLogHandle "Computer:  $iHash{Computer}\n";
+            print $gOutLogHandle "User:      $iHash{User}\n";
+            print $gOutLogHandle "EventID:   $iHash{EventID}\n";
+            print $gOutLogHandle "Category:  $iHash{Category}\n";
+            $iTxt = (defined $iHash{Message})? $iHash{Message}: '*none*';
+            print $gOutLogHandle "Message:   $iTxt\n";
+            $iTxt = ($iHash{Strings})? $iHash{Strings}: '*none*';
+            print $gOutLogHandle "Strings:   $iTxt\n";
+            }
+        }   # End while (!$iStopFlag)
+        print $gOutLogHandle $iSeparator;
+        print $gOutLogHandle "Events in specified time range = $count    Events in file = $iTotalEvents\n";
+    }   # End unless ($iTotalEvents)
+    PrintStageEnd($iStage);
+}
+
+# PrintStageStart
+#
+# Print to log file the ScanLog-Compatible lines to start a stage
+#
+# Input: Stage, Component Name [,Command Name]
+#
+# Output: Start time etc.
+#
+sub PrintStageStart
+{
+    my $iStage = shift;         # Stage number.
+    my $iComponent = shift;     # e.g. Name of Event Log file.
+    my $iCommand = shift;
+    my $iTime = gmtime(time);
+    print $gOutLogHandle "===-------------------------------------------------\n";
+    print $gOutLogHandle "=== Stage=$iStage\n";
+    print $gOutLogHandle "===-------------------------------------------------\n";
+    print $gOutLogHandle "=== Stage=$iStage started $iTime\n";
+    print $gOutLogHandle "=== Stage=$iStage == $iComponent\n";
+    if (defined $iCommand)
+    {
+        print $gOutLogHandle "-- $iCommand\n";
+    }
+    print $gOutLogHandle "++ Started at $iTime\n";
+
+    if ($gHiResTimer)
+    {
+        print $gOutLogHandle "+++ HiRes Start ".Time::HiRes::time()."\n";
+    }
+}
+
+# PrintStageEnd
+#
+# Print to log file the ScanLog-Compatible lines to end a stage
+#
+# Input: Stage
+#
+# Output: End time etc.
+#
+sub PrintStageEnd
+{
+    my $iStage = shift;         # Stage number.
+    if ($gHiResTimer)
+    {
+        print $gOutLogHandle "+++ HiRes End ".Time::HiRes::time()."\n";
+    }
+    my $iTime = gmtime(time);
+    print $gOutLogHandle "++ Finished at $iTime\n";
+    print $gOutLogHandle "=== Stage=$iStage finished $iTime\n";
+}
+
+#sub GetTimeRange
+#
+# Establish start and end times for overall build
+# Typical start line: === Stage=1 started Mon Oct  4 15:55:31 2004
+# Typical end line:   === Stage=115 finished Tue Oct  5 01:47:37 2004
+#
+# Input: Name of Build Log File to read
+#
+# Output: Summary timing info to log file
+#
+# Return: Start/End times in seconds
+#
+sub GetTimeRange
+{
+
+    my ($iBuildLogstart,$iBuildLogend) = @_;
+
+    my ($iStartTime, $iStopTime);
+    
+# $iStartTime Time read from $iBuildLogstart
+    unless (open (INLOGFILE, "<$iBuildLogstart"))
+    {
+        print $gOutLogHandle "Failed to open input file: $iBuildLogstart\n";
+        return undef, undef;
+    }
+    while(my $iLine = <INLOGFILE>)
+    {
+        chomp $iLine;
+        unless (defined $iStartTime)
+        {
+            if ($iLine =~ m/^===\s+Stage=\S*\s+started\s+(.+)/)
+                { $iStartTime = $1; last; }
+        }
+    }
+    close INLOGFILE;
+
+# $iStopTime Time read from $iBuildLogend
+
+    unless (open (OUTFILE, "<$iBuildLogend"))
+    {
+        print $gOutLogHandle "Failed to open input file: $iBuildLogend\n";
+        return undef, undef;
+    }
+    while(my $iLine = <OUTFILE>)
+    {
+        chomp $iLine;
+        if (($iLine =~ m/^===\s(.*\s)?finished\s+(.+)/))
+            { $iStopTime = $2; }
+    }
+    close OUTFILE;
+
+    my $iDate = ParseDateString($iStartTime);
+    my $iStartSecs = UnixDate($iDate,"%s");
+
+    print $gOutLogHandle "Time range taken for Build start time from Build Log: $iBuildLogstart\n";
+    print $gOutLogHandle "Earliest Event: $iStartTime\n\n";
+
+    $iDate = ParseDateString($iStopTime);
+    my $iStopSecs = UnixDate($iDate,"%s");
+
+    print $gOutLogHandle "Time range taken for Build end time from Build Log: $iBuildLogend\n";
+    print $gOutLogHandle "Latest Event: $iStopTime\n\n";
+
+    my $iSecs = $iStopSecs - $iStartSecs;
+    my $iMins = int ($iSecs/60);
+    $iSecs %= 60;
+    my $iHours = int($iMins/60);
+    $iMins %= 60;
+    printf $gOutLogHandle "--Time Range between the build START and FINISH:<< %d:%02d:%02d>>\n\n",$iHours,$iMins,$iSecs;
+
+    return $iStartSecs, $iStopSecs;
+}
+
+
+# ProcessCommandLine
+#
+# Process Commandline. On error, call Usage()
+#
+# Input: None
+#
+# Return: Parameters as strings.
+#
+sub ProcessCommandLine
+{
+
+  my ($iHelp, $iComputer, $iBuildLogstart, $iBuildLogend , $iOutFile, @iEventSources);
+  GetOptions('h' => \$iHelp, 'c=s' => \$iComputer, 'l=s' => \$iBuildLogstart,'k=s'=> \$iBuildLogend, 'o=s' => \$iOutFile, 's=s' => \@iEventSources);
+
+  if ($iHelp)
+  {
+    Usage();
+  }
+  else
+  {
+    return ($iComputer, $iBuildLogstart, $iBuildLogend,$iOutFile, @iEventSources);
+  }
+}
+
+
+# Usage: Display Help and exits script.
+#
+# Input: Error message, if any
+#
+# Output: Usage information.
+#
+# Return: Never returns. Exits with non-zero errorlevel
+#
+sub Usage
+{
+    if (@_)
+    {
+        print "\nERROR: @_\n";
+    }
+
+    print <<USAGE_EOF;
+
+    $gThisFile:
+      Reads the Windows Event Logs for the specified computer.
+      The time range is established by reading the specified Build Log.
+      ScanLog-compatible output is written to specified logfile.
+
+    Usage: $gThisFile parameters [options]
+
+    Parameters:
+      -l  Build start Log file
+      -k  Build End Log file
+
+    Options:
+      -h  Help
+      -c  Computer name (defaults to local PC)
+      -o  Logfile for output (defaults to STDOUT)
+      -s  Event Log Source (defaults to "All")
+          (Supported logs: "Application", "Security" or "System")
+
+
+USAGE_EOF
+
+    exit 1;
+}
+
+__END__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/ExportCBR.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,188 @@
+# Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Script to export CBRs to the ODC
+# 
+#
+
+use strict;
+use Getopt::Long;
+use File::Copy;
+use File::Path;
+
+use FindBin;
+use lib $FindBin::Bin; # Pickup local modules
+
+use record_delivery;
+
+# location of text file on devbuilds
+my $aODCBuilds = "\\\\builds01\\odcbuilds\\CBR_Export";
+
+# location of templates and email cfg
+my $aSupportLoc = "\\\\builds01\\devbuilds\\BuildTeam\\record_delivery";
+
+# Process the commandline
+my (%args) = ProcessCommandLine();
+# run the export
+&Main(%args);
+
+# ProcessCommandLine
+#
+# Description
+# This function processes the commandline
+
+sub ProcessCommandLine
+{
+	my ($iHelp);
+	
+	my ($iSnapshot, $iDir, $iProduct, $iNotify, @iComponents, @iTemplates);
+	
+	GetOptions('h' => \$iHelp, 'c=s' => \@iComponents, 's=s' => \$iSnapshot, 'd=s' => \$iDir, 'p=s' => \$iProduct, 'n' => \$iNotify, 't=s' => \@iTemplates);
+	
+	if (($iHelp) || (scalar(@iComponents) < 1) || (!defined $iSnapshot) || (!defined $iDir) || (!defined $iProduct))
+	{
+		Usage();
+	}
+	
+	my %args = ('Snapshot' => $iSnapshot, 'Dir' => $iDir, 'Product' => $iProduct, 'Notify' => $iNotify,
+				'Components' => [@iComponents], 'Templates' => [@iTemplates]);
+	
+	return %args;
+}
+
+# Usage
+#
+# Output Usage Information.
+#
+
+sub Usage
+{
+	print <<USAGE_EOF;
+	
+	Usage: ExportCBR.pl [switches]
+	
+	[Switches]
+	-c component (e.g gt_techview_baseline) [multiple allowed]
+	-s snapshot number (e.g. 03445_Symbian_OS_v9.1)
+	-d Directory of epoc32 (e.g. M: or CBRGT)
+	-p Product (e.g.9.1)
+	
+	[Optional]
+	-h help
+	-n Notify ODC by logging that the export has been completed
+	-t Templates for recording deliveries [multiple allowed]
+
+USAGE_EOF
+	exit 1;
+}
+
+# Main
+#
+# Runs the export of CBRs
+#
+sub Main
+{
+	my (%args) = @_;
+	
+	my $aExportCount;
+	
+	# Check to see if this is a TestBuild by looking at the Publish Location Environment variable
+	# Do no export if a Test Build
+	if ($ENV{'PublishLocation'} =~ /Test_Builds$/i)
+	{
+		print "Not exporting the Test Build\n";
+		exit 0;
+	}
+
+	# Open Log file for writing
+	my $logname = $ENV{'LogsDir'}."\\Export_CBR.log";
+	open (LOGFILE, ">> $logname");
+	
+	foreach my $aComponent(@{$args{'Components'}})
+  {
+		my $line;
+		
+		print "\nAbout to export $aComponent ".$args{'Snapshot'}." from ".$args{'Dir'}."\n";
+
+		my $iCmd = "exportenv -vv ".$aComponent." ".$args{'Snapshot'}." 2>&1";
+		print LOGFILE "\nCommand: $iCmd\n";
+		open (CMD, "$iCmd |");
+		while ($line = <CMD>)
+		{
+			print LOGFILE $line;
+			# Count the number of components exported
+			if ( $line =~ /successfully exported/)
+			{
+				$aExportCount++;
+			}
+		}
+		# Write time stamp to logfile
+		print LOGFILE $aComponent." exportenv finsihed at ".localtime()."\n"; 
+		print "\nExport Complete\n";
+	}
+	
+	# Record export of components
+	if (($aExportCount >0) && (scalar(@{$args{'Templates'}}) > 0))
+	{
+		my $delivery = record_delivery->new(config_file => $aSupportLoc."\\email.cfg");
+		foreach my $iTemplate (@{$args{'Templates'}})
+		{
+                         eval {			
+				$delivery->send(Template => $aSupportLoc."\\".$iTemplate, BuildNumber => $args{'Snapshot'}, BuildShortName => $args{'Product'});
+                        };
+                        if($@)
+                        {
+				print LOGFILE "ERROR: Failed to record delivery using template ".$aSupportLoc."\\".$iTemplate."\n";
+                        } else
+			{			
+				print LOGFILE "Sending email to record delivery using template ".$aSupportLoc."\\".$iTemplate."\n";
+			}
+		}
+	}
+	
+	close LOGFILE;
+
+	if ((defined$args{'Notify'}) && ($aExportCount >0))
+	{
+		&copyFile($logname, $args{'Snapshot'}, $args{'Product'});
+	}
+	
+	
+	
+	exit 0;
+}
+
+# copyFile
+#
+# Copies a file with the snapshot to devbuilds
+sub copyFile
+{
+	my ($logname, $aSnapShot, $aProduct) = @_;
+
+	# check there is an "Export_CBR.log" present to be copied across before deleting the previous one(s).
+	unless ( -e $logname )
+	{
+		print "WARNING: $logname not found when trying to copy to $aODCBuilds\\$aSnapShot.txt $!\n";
+		return;
+	}
+
+	# now delete the older text files
+	print "\nCMD: del /F /Q $aODCBuilds\\*$aProduct.txt\n";
+	system("del /F /Q $aODCBuilds\\*$aProduct.txt");
+	print "REMARK: deleting old notify files failed with return of ".($?>>8)."($?)\n" if ($? > 0);
+	
+	# and copy the new file
+	print "\ncopying $logname to $aODCBuilds\\$aSnapShot.txt\n";
+	mkpath($aODCBuilds) if (! -d $aODCBuilds);
+	copy($logname, "$aODCBuilds\\$aSnapShot.txt") || print "WARNING: Copy of $logname to $aODCBuilds\\$aSnapShot.txt failed $!\n";
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/FileOps.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,95 @@
+# Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Script to do file operations within a directory with the option to exclude sub directories or files
+# 
+#
+
+use strict;
+use FindBin;		# for FindBin::Bin
+use Getopt::Long;
+
+use lib $FindBin::Bin;
+
+use FileOps;
+
+# Process the commandline
+my ($iSourceDir, $iTargetDir, $iAction, @iExcludes) = &ProcessCommandLine();
+
+&FileOps::ProcessDir($iSourceDir, $iTargetDir, $iAction, @iExcludes);
+
+# ProcessCommandLine
+#
+# Inputs
+#
+# Outputs
+#
+# Description
+# This function processes the commandline
+
+sub ProcessCommandLine {
+  my ($iHelp, $iSourceDir, $iTargetDir, $iAction, @iExclude, @iExcludes);
+  GetOptions('h' => \$iHelp, 's=s' =>\$iSourceDir,  't:s' =>\$iTargetDir, 'a=s' => \$iAction, 'x:s@' => \@iExclude);
+
+  if (($iHelp) || (!defined $iSourceDir) || (!defined $iAction))
+  {
+    Usage();
+  } elsif (! -d $iSourceDir) {
+    die "$iSourceDir is not a Directory";
+  } elsif ((lc($iAction) ne 'copy') && (lc($iAction) ne 'move') && (lc($iAction) ne 'delete') && (lc($iAction) ne 'zip')) {
+    die "$iAction is not a supported Action";
+  } elsif ((lc($iAction) eq 'copy') || (lc($iAction) eq 'move') && (lc($iAction) ne 'delete')) {
+    if (!defined $iTargetDir)
+    {
+      die "$iAction Requires a Target Directory";
+    }
+    if (! -d $iTargetDir)
+    {
+      die "$iTargetDir is not a Directory";
+    }
+  } 
+  
+  # Check all the exclude sub directories or files
+  foreach my $iSubItem (@iExclude)
+  {
+    if ((! -d "$iSourceDir\\$iSubItem") && (! -f "$iSourceDir\\$iSubItem"))
+    {
+      print "$iSubItem is not a Directory or File in $iSourceDir - not Excluding\n";
+    } else {
+      push  @iExcludes,$iSubItem;
+    }
+  }
+  
+  return($iSourceDir, $iTargetDir, $iAction, @iExcludes);
+}
+
+# Usage
+#
+# Output Usage Information.
+#
+
+sub Usage {
+  print <<USAGE_EOF;
+
+	Usage: FileOps.pl [options]
+
+	options:
+
+	-h  help
+	-a  Action (Move or Copy or Delete or Zip the directories)
+	-s  Source Directory
+	-t  Target Directory (Not required for Delete Action)
+	-x  Exclude a File or Directory from the Action
+USAGE_EOF
+	exit 1;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/FileOps.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,72 @@
+# Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+package FileOps;
+use strict;
+use Carp;
+use File::Copy;
+use File::Path;
+use Cwd;
+
+sub ProcessDir
+{
+  my ($iSourceDir, $iTargetDir, $iAction, @iExcludes) = @_;
+  my ($iFile);
+   
+  opendir(DIR, $iSourceDir) or croak "can't opendir $iSourceDir: $!";
+  DIR: while (defined($iFile = readdir(DIR)))
+  {
+    next DIR if $iFile =~ /^\.\.?$/;     # skip . and ..
+    foreach my $iExclude (@iExcludes)
+    {
+      if ($iExclude =~ /^$iFile$/)
+      {
+        print "Excluding $iExclude\n";
+        next DIR;
+      }
+    }
+    if ( lc($iAction) eq 'copy')
+    {
+      print "Copying $iSourceDir\\$iFile to $iTargetDir\\$iFile\n";
+      if (-d "$iSourceDir\\$iFile")
+      {
+        system ("xcopy $iSourceDir\\$iFile", "$iTargetDir\\$iFile", "/E", "/Z", "/I");
+      } else {
+        system ("xcopy $iSourceDir\\$iFile", "$iTargetDir", "/Z");
+      }
+    } elsif ( lc($iAction) eq 'move') {
+      print "Moving $iSourceDir\\$iFile to $iTargetDir\\$iFile\n";
+      &move("$iSourceDir\\$iFile", "$iTargetDir\\$iFile");      
+    } elsif ( lc($iAction) eq 'delete') {
+      print "Deleting $iSourceDir\\$iFile\n";
+      if (-d "$iSourceDir\\$iFile")
+      {
+        rmtree("$iSourceDir\\$iFile");
+      } else {
+        unlink("$iSourceDir\\$iFile");
+      }
+    } elsif ( lc($iAction) eq 'zip') {
+      if (-d "$iSourceDir\\$iFile")
+      {
+        print "Ziping $iSourceDir\\$iFile\n";
+        chdir("$iSourceDir");
+        system("zip -r $iTargetDir\\$iFile.zip $iFile");
+      }
+    }
+  }
+  closedir(DIR);  
+}
+
+1;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/GenResult/AutoSmoketests.cfg	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,4 @@
+Agenda     = smoketest_agenda
+Contacts   = smoketest_contacts
+Messaging  = smoketest_mess
+Time World = smoketest_timew
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/GenResult/BragStatus.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,320 @@
+# Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Script summarise and hotlink logfiles by reading
+# HTMLscanlog generated files
+# This initial version is phase 1 of 3.
+# 1. HTML scanlog input --> HTML report output
+# 2. HTML scanlog input --> XML report output + XSLT to HTML
+# 3. XML scanlog input  --> XML report output + XSLT to HTML
+# 
+#
+
+#!/usr/bin/perl -w
+package BragStatus;
+use FindBin;
+use FileRead;
+require GenResult;
+use strict;
+
+use constant SINGLE_SMOKETEST_FAILURE   => 1;
+use constant PLATFORM_SMOKETEST_FAILURE => 2;
+use constant PLATFORM_SMOKETEST_SUCCESS => 0;
+
+my $gBragStatus = "Green";
+my $iHTMLFileName = "testlog.html";
+my $iTraceFileName = "trace.txt";
+my $iDevkitFileName = "Devkit\.log";
+
+my $iCfgFileLocation = $FindBin::Bin;
+#Read in the products from a cfg file
+my $text = FileRead::file_read("$iCfgFileLocation\\Product_AutoSmokeTest.cfg");
+my %iProducts = $text =~ /^\s*(\w+\.?\w+)\s*=\s*(.+)$/mg ;
+#Read in the smoketest list from a cfg file
+my $Smoketext = FileRead::file_read ("$iCfgFileLocation\\AutoSmoketests.cfg");
+my %iTests = $Smoketext =~ /^\s*(\w+\s*\w*\s*)=\s*(.+)$/mg ;
+
+my $iNumberOfTests = scalar(my @iTempArray = values %iTests);
+my $iLogsPublishLocation = "";
+
+# Entry point into the BragStatus module
+sub main
+{
+    my ($iDir, $iSnapshot, $iProduct, $iLinkPath) = @_;
+    # set file names, so that they can be accessed globally
+    ${GenResult::iGTFileName}    = "GT.summary.html";
+    ${GenResult::iTVFileName}    = "TV.summary.html";
+    ${GenResult::iBUILDFileName} = "$iSnapshot"."_Symbian_OS_v"."$iProduct".".summary.html";
+    ${GenResult::iCBRFileName}   = "$iSnapshot"."_Symbian_OS_v"."$iProduct"."_cbr.summary.html";
+    ${GenResult::iROMFileName}   = "techviewroms"."$iSnapshot"."_Symbian_OS_v"."$iProduct". ".log";
+   
+    my $iLinkPathLocation = "";
+    $iDir =~  s/[^\\]$/$&\\/; #add trailing backslash, if missing
+    $iLogsPublishLocation  = $iDir;
+    if (-e $iLinkPath) {
+        $iLinkPathLocation = $iLinkPath;
+    } else {
+        # if no link path is specified, then use current directory location
+        #print "WARNING:" .$iLinkPath. " does not exist, linking with relative paths\n";
+        $iLinkPathLocation = $iLogsPublishLocation;
+    }
+
+    if (-e $iLogsPublishLocation) 
+     {
+     #Set the Files for the Smoketest package 
+     ${GenResult::iGTLogFileLocation}    = $iLogsPublishLocation.${GenResult::iGTFileName};
+     ${GenResult::iTVLogFileLocation}    = $iLogsPublishLocation.${GenResult::iTVFileName};
+     ${GenResult::iBUILDLogFileLocation} = $iLogsPublishLocation.${GenResult::iBUILDFileName};
+     ${GenResult::iCBRLogFileLocation}   = $iLogsPublishLocation.${GenResult::iCBRFileName};
+     ${GenResult::iROMLogFileLocation}   = $iLogsPublishLocation.${GenResult::iROMFileName};
+
+     #################################### 
+     #BUILD RESULTS 
+     ####################################
+     CheckBuildResults();
+     }
+    else
+     {
+     #Something is seriously wrong if there is no logs
+     setBragStatus("Black");
+     }
+
+    ###############################
+    #SMOKETEST
+    ###############################
+    CheckSmokeTest($iProduct, $iSnapshot."_Symbian_OS_v".$iProduct);
+    ###############################
+    CheckDevkit($iProduct);
+    #CBR EXIST
+    ###############################
+    CheckCBRs($iProduct, $iSnapshot);	
+    return $gBragStatus;
+}
+
+#########################################################
+# Name:CheckSmokeTest
+# Input: Product
+# Outout: None
+# Description: Checks the smoketest tables for any errors
+#########################################################
+sub CheckSmokeTest
+{
+    my $iProduct  = shift;
+    my $iFileName = shift;
+    my $iResult = 0;
+    my @iProductList = ($iProducts{$iProduct} =~ m/\S+/ig);
+    my $iplatform_counter = 0;
+
+     
+    # Parse results from dabs/autorom smoketest solution
+    # Passing 1 as the second argument ensures that the function acts for brag status only.
+    $iResult = &GenAutoSmokeTestResult::printSTResultRow(1,($iLogsPublishLocation."AutoSmokeTest\\"),@iProductList);
+
+    if($iResult == 1)
+    {
+        #Some tests failed for $iPlatform
+        setBragStatus("Amber");
+    }
+    if($iResult == 2)
+    {
+        #Platform Failure
+        setBragStatus("Red");
+    }
+    
+    if($iResult == -1)
+    {
+        # BRAG status set to TBA as smoke tests do not appear to have been run 
+        setBragStatus("TBA");
+    }
+}
+
+###########################################
+#Name: CheckBuildResults
+#inputs :None
+#Outputs:None
+#Description:Checks the same files as the Build Results table.
+###########################################
+sub CheckBuildResults
+{
+	my @ListofChecks = qw(GT TV BUILD CBR ROM CDB);
+   	my $iCount = "0";
+   	while(@ListofChecks)
+            {
+            my $iFile = shift @ListofChecks;
+            # zero errors, means 'None' is displayed
+            if (!&GenResult::getHandleErrors($iFile)) 
+	     {
+	     setBragStatus("TBA");
+	     #Should jump up to While loop again
+	     next;
+             }
+
+	    my $iResultRow;
+	    my @iResult = &GenResult::getResults($iFile); 
+ 	    foreach (&GenResult::getResults($iFile)) {
+            undef $iResultRow;
+            if (($_->[1] != "0") || ($_->[3] != "0")) 
+	       {
+		#A Build Results Error
+		setBragStatus("Amber");
+               }
+               if ($_->[5] != "0")
+               {
+                   $GenResult::iBraggflag=1;
+               }
+               
+           }#foreach
+	    $iCount++;
+	  }#end while
+}
+##############################################
+# Name: CheckCBRs
+# Inputs : product and snapshot number
+# Outputs: None
+# Description: Checks that the CBRs are created and sets the brag
+# 	       status to Red if they havent been
+###############################################
+sub CheckCBRs
+{
+    my $iProduct = shift;
+    my $iSnapshot = shift;
+
+    my $iCBR_GT_only_Location = "\\\\builds01\\devbuilds\\ComponentisedReleases\\DailyBuildArchive\\Symbian_OS_v$iProduct\\";
+    my $iCBR_GT_techview_Location = "\\\\builds01\\devbuilds\\ComponentisedReleases\\DailyBuildArchive\\Symbian_OS_v$iProduct\\";
+    #Check to see if its a test build
+    if(&GenResult::isTestBuild() eq "1")
+       {
+	$iCBR_GT_only_Location = "\\\\builds01\\devbuilds\\Test_Builds\\ComponentisedReleases\\TestArchive\\Symbian_OS_v$iProduct\\";
+	$iCBR_GT_techview_Location = "\\\\builds01\\devbuilds\\Test_Builds\\ComponentisedReleases\\TestArchive\\Symbian_OS_v$iProduct\\";
+       }
+       
+    if( -e $iCBR_GT_only_Location)
+      {
+      #Check the GT_ONLY
+      if( -e $iCBR_GT_only_Location."\\GT_only_baseline\\$iSnapshot\_Symbian_OS_v$iProduct\\reldata")
+      {
+      setBragStatus("Green");
+      }
+      else
+      {
+      setBragStatus("Red");
+      }
+      #Check the GT_techview_baseline
+      if( -e $iCBR_GT_techview_Location."\\GT_techview_baseline\\$iSnapshot\_Symbian_OS_v$iProduct\\reldata")
+      {
+      setBragStatus("Green");
+      }
+      else
+      {
+      setBragStatus("Red");
+      }
+      }
+      else #No CBRs built so BragStatus is Red
+      {
+      setBragStatus("Red");
+      }
+}
+
+#########################################################
+# Name:CheckDevkit
+# Input: Product
+# Outout: None
+# Description: Checks the Devkit log file for any errors
+#########################################################
+sub CheckDevkit
+{
+    my $iProduct = shift;
+    my $iResult = 0;
+    my @iProductList = ($iProducts{$iProduct} =~ m/\S+/ig);
+    my $iplatform_counter = 0;
+    foreach my $iPlatform (@iProductList)
+    {
+	$iResult = getDEVKITRow($iPlatform);
+	if($iResult == 1)
+	{
+	  #Error in $iPlatform
+	  setBragStatus("Amber");
+	}
+	
+    }
+}
+
+sub getDEVKITRow
+{
+###############################################
+# Name: getDEVKITRow
+# Input: Platform
+# Output: 0 - No problems
+# 	  1 - error in log file
+#
+##############################################
+
+    my $iPlatform = $_[0];
+    my $iDKdir = "\\SmokeTest\\";	
+	
+    open (DevkitLOGFILE, $iLogsPublishLocation.$iDKdir.$iDevkitFileName);
+    my @iDevkitLog = <DevkitLOGFILE>;   
+    my $iErrorCount = 0;
+    my $iLineOK = 0;
+    
+    foreach (@iDevkitLog) {
+       if (m/ERROR:/) 
+             {
+		$iErrorCount++;		 
+        }
+	     else
+	      {
+		$iLineOK++;
+	}
+    }
+	      if($iErrorCount > 0) { return 1;}else{return 0;}
+	     
+}
+
+###############################################
+# Name  : setBragStatus
+# Inputs: Suggested Brag Status "Green","Amber","Red","Black"
+# Outputs: None
+# Description: This function sets the brag status
+# 	       Brag status can only deteriorate, not improve
+###############################################
+sub setBragStatus
+{
+	my $iBstatus = shift;
+	if($gBragStatus eq "Green")
+	  {
+	   $gBragStatus = $iBstatus;
+	   return 0;
+          }
+        if(($gBragStatus eq "Amber") && (($iBstatus eq "Black") || ($iBstatus eq "Red")))
+	  {
+	  $gBragStatus = $iBstatus;
+	  return 0;
+  	  }
+
+        if(($gBragStatus eq "Red") && ($iBstatus eq "Black"))
+	  {
+	  $gBragStatus = $iBstatus;
+	  return 0;
+  	  }
+          
+        if($iBstatus eq "TBA") # Set BRAG to "TBA" if the SmokeTests do not appear to have run.
+        {
+            $gBragStatus = $iBstatus;
+            return 0;
+        }
+
+#For Everything Else leave gBragStatus as is
+        return 0;
+}
+1;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/GenResult/Changelists.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,97 @@
+# Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Script that return a list of Perforce Change lists that are associated to a build snapshot.
+# 
+#
+package Changelists;
+use DBI;
+my $dbh; #connection handle
+sub connectDB()
+{
+  my $dBase = "autobuild2";
+  my $serverPort = "intweb:3306";
+  my $user = "autobuild2";
+  my $password = "autobuild2";
+  $dbh->disconnect if ($dbh); #disconnect if already connected
+  $dbh = DBI->connect("DBI:mysql:$dBase:$serverPort", $user, $password, {PrintError => 0, RaiseError => 0}); # should use a username which has read-only credentials only.
+  if (!$dbh)
+  {
+    print "Cannot connect to the AutoBuild2 server:$DBI::errstr\n";
+    exit;
+  }
+  else
+  {
+    print "Connected to AutoBuild\n";
+  }
+}
+
+
+sub queryHandler #handle querying the database.
+{
+  my $query = shift;
+  my $handle;
+  $handle = $dbh->prepare($query);
+  $handle->execute;
+  if($handle->err())
+  {
+    Logit(2,"could not execute Query:".$handle->errstr());
+    if ($handle->errstr() =~ m/(Lost connection|MySQL server has gone away)/i) #sometimes the connection to server is lost, 
+    {
+      Logit(0,"Lost connection, ".$handle->errstr());
+      exit;
+    }
+  }
+  return $handle;
+}
+
+my $snapshot = $ENV{SnapshotNumber};
+my $buildShortName = $ENV{BuildShortName};
+sub main {
+	
+	print "$snapshot \t $buildShortName\n";
+	my $query = "select distinct(sub3.changelist), snap.name as Name, sub3.description as Description
+	from codeline, Submission as sub, Submission as sub3
+		left join Snapshot    as snap  on (snap.Submission_id  = sub.id )
+		left join Build       as bld   on (bld.Snapshot_id     = snap.id)
+		left join Spec        as spec  on (bld.Spec_id         = spec.id)
+		left join Product     as prod  on (spec.Product_id     = prod.id)
+		left join Build       as bld2  on (bld2.id             = bld.BCPrevious_id)
+		left join Snapshot    as snap2 on (bld2.Snapshot_id    = snap2.id)
+		left join Submission  as sub2  on (snap2.Submission_id = sub2.id)
+	where snap.name = \"$snapshot\" and prod.build_short_name=\"$buildShortName\" and sub3.Codeline_id = (SELECT codeline_id FROM `spec` , codeline cl where Product_id=(select id from product where build_short_name = \"$buildShortName\") and pool_id = \"1\" and cl.name = \"MCLsfRO\" and spec.codeline_id= cl.id and end_date > CURDATE() ORDER by spec.id LIMIT 1) and sub3.changelist between sub2.changelist and sub.changelist order by sub3.changelist;";
+
+	&connectDB();
+	my $ClInfo = &queryHandler($query);
+	my @AllCls = ();
+	my %CLhash = ();
+	while (my $Data = $ClInfo->fetchrow_hashref)
+	{
+		my @Cl = ();
+		my $changelist = ${$Data}{'changelist'};
+		my ($submitter) = ${$Data}{'Description'} =~ /<detail submitter=\s*\"(.*?)\"/;
+		my ($team) = ${$Data}{'Description'} =~ /<detail team=\s*\"(.*?)\"/;
+		my ($sub_time) = ${$Data}{'Description'} =~ /<detail submissionTime=\s*\"(.*?)\"/;
+		${$Data}{'Description'} =~ s/\n/##/g;
+		my ($desc) = ${$Data}{'Description'} =~ /<EXTERNAL>####(.*?)####<\/EXTERNAL>/i;
+		$desc =~ s/##/\n/g;
+		$CLhash{$changelist}{'submitter'} = $submitter;
+		$CLhash{$changelist}{'team'} = $team;
+		$CLhash{$changelist}{'sub_time'} = $sub_time;
+		$CLhash{$changelist}{'desc'} = $desc;
+		#~ print "#################${$Data}{'changelist'}#####################\n";
+		#~ print "$submitter\t$team\t$sub_time\n$desc\n";
+	}
+	return (\%CLhash);
+}
+1;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/GenResult/FaultsData.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,856 @@
+# Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Script that returns the no.of errors, Warnings and Advisory notes for a stage.
+# 
+#
+
+#!/usr/bin/perl -w
+package FaultsData;
+#~ use BragStatus;
+use strict;
+use Date::Calc;
+
+# global log file locations
+# - to be set by main() function
+# on module entry
+our $iGTLogFileLocation;
+our $iTVLogFileLocation;
+our $iTVEBSLogFileLocation;
+our $iBUILDLogFileLocation;
+our $iCBRLogFileLocation;
+our $iROMLogFileLocation;
+our $iCDBLogFileLocation;
+our $iLinkPathLocation;
+our $iLogsPublishLocation;
+our $iGTFileName;
+our $iTVFileName;
+our $iTVEBSFileName;
+our $iBUILDFileName;
+our $iCBRFileName;
+our $iROMFileName;
+our $iCDBFileName;
+our $iBraggflag = 0;
+
+our %iProducts;
+our %iTests;
+
+my $iGTFileFound    = "1";
+my $iTVFileFound    = "1";
+my $iTVEBSFileFound = "1";
+my $iBUILDFileFound = "1";
+my $iCBRFileFound   = "1";
+my $iROMFileFound   = "1";
+my $iCDBFileFound   = "1";
+
+
+# stores the list of stages
+my $iBuildStages = 'GT|TV|ROM|CBR|CDB|BUILD';
+
+sub stageSummary {
+    my ($iDir, $iSnapshot, $iProduct, $iLinkPath, $iStage) = @_;
+    my $temp = "";
+    if($iStage ne "PREBUILD")
+    {
+      ##############extract Errors Now################
+      # set file names, so that they can be accessed globally
+      $iGTFileName    = "GT.summary.html";
+      $iTVFileName    = "TV.summary.html";
+      $iTVEBSFileName = "TV.EBS.summary.html";
+      $iBUILDFileName = "$iSnapshot"."_Symbian_OS_v"."$iProduct".".summary.html";
+      $iCBRFileName   = "$iSnapshot"."_Symbian_OS_v"."$iProduct"."_cbr.summary.html";
+      $iCDBFileName   = "$iSnapshot"."_Symbian_OS_v"."$iProduct"."_cdb.summary.html";
+      $iROMFileName   = "techviewroms"."$iSnapshot"."_Symbian_OS_v"."$iProduct". ".log";
+    
+      $iDir =~  s/[^\\]$/$&\\/; #add trailing backslash, if missing
+      $iLogsPublishLocation  = $iDir;
+      
+
+      if (-e $iLinkPath) {
+          $iLinkPathLocation = $iLinkPath;
+      } else {
+          # if no link path is specified, then use current directory location
+          #print "WARNING:" .$iLinkPath. " does not exist, linking with relative paths\n";
+          $iLinkPathLocation = $iLogsPublishLocation;
+      }
+      
+      if (-e $iLogsPublishLocation) 
+      {
+          $iGTLogFileLocation      = $iLogsPublishLocation.$iGTFileName;
+          $iTVLogFileLocation      = $iLogsPublishLocation.$iTVFileName;
+          $iTVEBSLogFileLocation   = $iLogsPublishLocation.$iTVEBSFileName;
+          $iBUILDLogFileLocation   = $iLogsPublishLocation.$iBUILDFileName;
+          $iCBRLogFileLocation     = $iLogsPublishLocation.$iCBRFileName;
+          $iROMLogFileLocation     = $iLogsPublishLocation.$iROMFileName;
+          $iCDBLogFileLocation     = $iLogsPublishLocation.$iCDBFileName;
+          
+          my @Components = extractErrors($iStage);
+          if(@Components)
+          {
+            #~ foreach my $t (@Components)
+            #~ {
+              #~ print "FAULTS::@$t[0]\t@$t[1]\t@$t[2]\t@$t[3]\t@$t[4]\t@$t[5]\t@$t[6]\n";
+            #~ }
+            return @Components;
+          }
+          #############Update Log Files Locations######################
+          getLogFileLocation($iStage)
+      }
+      else
+      {
+          print "ERROR: Report not created: $! \n";
+      }
+    }
+}
+
+sub getTime
+{
+    my ($sec,$min,$hours,$mday,$mon,$year)= localtime();
+    $year += 1900;
+    $mon +=1;
+    my @date = ($year,$mon,$mday,$hours,$min,$sec);
+    my $date = sprintf("%d-%02d-%02dT%02d:%02d:%02d", @date);
+    return ($date);
+}
+
+#------------------------------------------------------------------Functions form GenResult.pm--------------------------------------------------------------
+##########################################################################
+#
+# Name    :  getGTResults()
+# Synopsis:  To parse a logfile, and output results
+#            into a common data format for processing
+#
+# Inputs  :  None
+# Outputs : Array of refs to arrays containing 5 scalars. The structure
+#           is then used by the  printResultRow() to display
+#
+#  1    <array 'container'>
+#         |
+#  0-n    <array ref>
+#            |
+#            -- <scalar[0]>  component name
+#            -- <scalar[1]>  number of errors
+#            -- <scalar[2]>  link to errors
+#            -- <scalar[3]>  number of warnings
+#            -- <scalar[4]>  link to warnings
+#            -- <scalar[5]>  number of advisorynotes
+#            -- <scalar[6]>  link to advisorynotes
+#
+# Note: Links are currently not used, but instead constructed from the
+#       component name and logfile location. Can be used in future for
+#       logs located elsewhere etc.
+##########################################################################
+sub getGTResults {
+   
+
+    my $iComponent;
+    my $iErrors;
+    my $iErrorLink;
+    my $iWarnings;
+    my $iWarningLink;
+	my $iAdvisoryNotes;
+	my $iAdvisoryNotesLink;
+    my $iRemarks;
+    my @components;
+  
+    open (GTLOGFILE, $iGTLogFileLocation) || setHandleErrors($_[0]);
+    
+    my @iGTLog = <GTLOGFILE>;
+    foreach (@iGTLog) {
+        
+        if (m/(Component_)(.*)(\s[0-9]{0,2}:[0-9]{0,2}:[0-9]{0,2}\.?[0-9]{0,3})\s([0-9]*)\s([0-9]*)\s([0-9]*)\s([0-9]*)\s([0-9]*)/) 	    {
+                 if (($4 != 0) || ($5 !=0) || ($6 != 0)) {
+                $iComponent = $2;
+                $iErrors    = $4;
+                $iWarnings  = $5;
+                $iAdvisoryNotes = $6;
+                $iRemarks   = $7;   # currently we ignore remarks from components.
+                
+                # now extract the URL for each warning. At the moment, this is a relative link
+                # MUST make it absolute, to avoid problems
+                
+                my @componentdetails = ($iComponent, $iErrors, $iErrorLink, $iWarnings, $iWarningLink, $iAdvisoryNotes, $iAdvisoryNotesLink);
+                push @components, \@componentdetails;
+            }
+			
+			
+        }
+				
+        }
+    # return array of refs to arrays
+    return @components;
+}
+
+##########################################################################
+#
+# Name    :  getTVResults()
+# Synopsis:  To parse a logfile, and output results
+#            into a common data format for processing
+#
+# Inputs  :  None
+# Outputs : Array of refs to arrays containing 5 scalars. The structure
+#           is then used by the  printResultRow() to display
+#
+#  1    <array 'container'>
+#         |
+#  0-n    <array ref>
+#            |
+#            -- <scalar[0]>  component name
+#            -- <scalar[1]>  number of errors
+#            -- <scalar[2]>  link to errors
+#            -- <scalar[3]>  number of warnings
+#            -- <scalar[4]>  link to warnings
+#            -- <scalar[5]>  number of advisorynotes
+#            -- <scalar[6]>  link to advisorynotes
+#
+# Note: Links are currently not used, but instead constructed from the
+#       component name and logfile location. Can be used in future for
+#       logs located elsewhere etc.
+##########################################################################
+sub getTVResults {
+    
+    my $iComponent;
+    my $iErrors;
+    my $iErrorLink;
+    my $iWarnings;
+    my $iWarningLink;
+	my $iAdvisoryNotes;
+	my $iAdvisoryNotesLink;
+    my $iRemarks;
+    
+    my @components;
+    open (TVLOGFILE, $iTVLogFileLocation) || setHandleErrors($_[0]);
+
+    my @iTVLog = <TVLOGFILE>;
+    
+    foreach (@iTVLog) {
+        
+        if (m/(Component_)(.*)(\s[0-9]{0,2}:[0-9]{0,2}:[0-9]{0,2}\.?[0-9]{0,3})\s([0-9]*)\s([0-9]*)\s([0-9]*)\s([0-9]*)\s([0-9]*)/) {
+             
+            if (($4 != 0) || ($5 !=0) || ($6 != 0)) {
+                
+                $iComponent = $2;
+                $iErrors    = $4;
+                $iWarnings  = $5;
+                $iAdvisoryNotes = $6;
+                $iRemarks   = $7;   # currently we ignore remarks from components.
+                
+                # now extract the URL for each warning. At the moment, this is a relative link
+                # MUST make it absolute, to avoid problems
+                
+                my @componentdetails = ($iComponent, $iErrors, $iErrorLink, $iWarnings, $iWarningLink, $iAdvisoryNotes, $iAdvisoryNotesLink);
+                push @components, \@componentdetails;
+            }
+        }
+    }
+    
+    open (TVEBSLOGFILE, $iTVEBSLogFileLocation) || setHandleErrors($_[0]);
+    my @iTVEBSLog = <TVEBSLOGFILE>;
+     foreach (@iTVEBSLog) {
+        
+        if (m/(Component_)(.*)(\s[0-9]{0,2}:[0-9]{0,2}:[0-9]{0,2}\.?[0-9]{0,3})\s([0-9]*)\s([0-9]*)\s([0-9]*)\s([0-9]*)\s([0-9]*)/) {
+             
+            if (($4 != 0) || ($5 !=0) || ($6 != 0)) {
+                
+                $iComponent = $2;
+                $iErrors    = $4;
+                $iWarnings  = $5;
+                $iAdvisoryNotes = $6;
+                $iRemarks   = $7;   # currently we ignore remarks from components.
+                
+                # now extract the URL for each warning. At the moment, this is a relative link
+                # MUST make it absolute, to avoid problems
+                
+                my @componentdetails = ($iComponent, $iErrors, $iErrorLink, $iWarnings, $iWarningLink, $iAdvisoryNotes, $iAdvisoryNotesLink);
+                push @components, \@componentdetails;
+            }
+        }
+    }
+    
+    # return array of refs to arrays
+    return @components;
+}
+
+
+##########################################################################
+#
+# Name    :  getBUILDResults()
+# Synopsis:  To parse a logfile, and output results
+#            into a common data format for processing
+#
+# Inputs  :  None
+# Outputs : Array of refs to arrays containing 5 scalars. The structure
+#           is then used by the  printResultRow() to display
+#
+#  1    <array 'container'>
+#         |
+#  0-n    <array ref>
+#            |
+#            -- <scalar[0]>  component name
+#            -- <scalar[1]>  number of errors
+#            -- <scalar[2]>  link to errors
+#            -- <scalar[3]>  number of warnings
+#            -- <scalar[4]>  link to warnings
+#            -- <scalar[5]>  number of advisorynotes
+#            -- <scalar[6]>  link to advisorynotes
+#
+# Note: Links are currently not used, but instead constructed from the
+#       component name and logfile location. Can be used in future for
+#       logs located elsewhere etc.
+##########################################################################
+sub getBUILDResults {
+    
+    my $iComponent;
+    my $iErrors;
+    my $iErrorLink;
+    my $iWarnings;
+    my $iWarningLink;
+	my $iAdvisoryNotes;
+	my $iAdvisoryNotesLink;
+    my $iRemarks;
+    
+    my @components;
+    open (BUILDLOGFILE, $iBUILDLogFileLocation) ||setHandleErrors($_[0]);
+    my @iBUILDLog = <BUILDLOGFILE>;
+    
+    foreach (@iBUILDLog) {
+        
+        if (m/(Component_)(.*)(\s[0-9]{0,2}:[0-9]{0,2}:[0-9]{0,2}\.?[0-9]{0,3}?)\s([0-9]*)\s([0-9]*)\s([0-9]*)\s([0-9]*)\s([0-9]*)/) {
+             
+            if (($4 != 0) || ($5 !=0) || ($6 != 0)) {
+                
+                $iComponent = $2;
+                $iErrors    = $4;
+                $iWarnings  = $5;
+                $iAdvisoryNotes = $6;
+                $iRemarks   = $7;   # currently we ignore remarks from components.
+                               # now extract the URL for each warning. At the moment, this is a relative link
+                # MUST make it absolute, to avoid problems
+                
+                my @componentdetails = ($iComponent, $iErrors, $iErrorLink, $iWarnings, $iWarningLink, $iAdvisoryNotes, $iAdvisoryNotesLink);
+                push @components, \@componentdetails;
+            }
+        }
+    }
+    
+    # return array of refs to arrays
+    return @components;
+}
+
+##########################################################################
+#
+# Name    :  getCBRResults()
+# Synopsis:  To parse a logfile, and output results
+#            into a common data format for processing
+#
+# Inputs  :  None
+# Outputs : Array of refs to arrays containing 5 scalars. The structure
+#           is then used by the  printResultRow() to display
+#
+#  1    <array 'container'>
+#         |
+#  0-n    <array ref>
+#            |
+#            -- <scalar[0]>  component name
+#            -- <scalar[1]>  number of errors
+#            -- <scalar[2]>  link to errors
+#            -- <scalar[3]>  number of warnings
+#            -- <scalar[4]>  link to warnings
+#            -- <scalar[5]>  number of advisorynotes
+#            -- <scalar[6]>  link to advisorynotes
+#
+# Note: Links are currently not used, but instead constructed from the
+#       component name and logfile location. Can be used in future for
+#       logs located elsewhere etc.
+##########################################################################
+sub getCBRResults {
+    
+    my $iComponent;
+    my $iErrors;
+    my $iErrorLink;
+    my $iWarnings;
+    my $iWarningLink;
+	my $iAdvisoryNotes;
+	my $iAdvisoryNotesLink;
+    my $iRemarks;
+    
+    my @components;
+    open (CBRLOGFILE, $iCBRLogFileLocation) || setHandleErrors($_[0]);
+
+    my @iCBRLog = <CBRLOGFILE>;
+    
+    foreach (@iCBRLog) {
+        
+        if (m/(Overall_Total\s)([0-9]{0,2}:[0-9]{0,2}:[0-9]{0,2})\s([0-9]*)\s([0-9]*)\s([0-9]*)\s([0-9]*)\s([0-9]*)/) {
+            if (($3 != 0) || ($4 !=0) || ($5 != 0)) {
+                                
+                $iComponent = "Total";
+                $iErrors    = $3;
+                $iWarnings  = $4;
+                $iAdvisoryNotes = $5;
+                $iRemarks   = $6;   # currently we ignore remarks from components.
+                
+                # now extract the URL for each warning. At the moment, this is a relative link
+                # MUST make it absolute, to avoid problems
+                
+                my @componentdetails = ($iComponent, $iErrors, $iErrorLink, $iWarnings, $iWarningLink, $iAdvisoryNotes, $iAdvisoryNotesLink);
+                push @components, \@componentdetails;
+            }
+        }
+    }
+    
+    # return array of refs to arrays
+    return @components;
+}
+
+##########################################################################
+#
+# Name    :  getROMResults()
+# Synopsis:  To parse a text logfile, and output results
+#            into a common data format for processing
+#
+# Inputs  :  None
+# Outputs : Array of refs to arrays containing 5 scalars. The structure
+#           is then used by the  printResultRow() to display
+#
+#  1    <array 'container'>
+#         |
+#  0-n    <array ref>
+#            |
+#            -- <scalar[0]>  component name
+#            -- <scalar[1]>  number of errors
+#            -- <scalar[2]>  link to errors
+#            -- <scalar[3]>  number of warnings
+#            -- <scalar[4]>  link to warnings
+#            -- <scalar[5]>  number of advisorynotes
+#            -- <scalar[6]>  link to advisorynotes
+#
+##########################################################################
+sub getROMResults {
+    
+    my $iComponent;
+    my $iErrors;
+    my $iErrorLink;
+    my $iWarnings;
+    my $iWarningLink;
+	my $iAdvisoryNotes;
+	my $iAdvisoryNotesLink;
+    my $iRemarks;
+    my @components;
+    open (ROMLOGFILE, $iROMLogFileLocation) || setHandleErrors($_[0]);
+
+    my @iROMLog = <ROMLOGFILE>;
+    
+    # special kludge to deal with multi-line errors from ROMBUILD!
+    #
+    my $i = 0;
+    my @iSingleLineErrors;
+    
+    foreach (@iROMLog) {
+        ++$i;
+        if ((m/ERROR: Can't build dependence graph for/) ||
+            (m/ERROR: Can't resolve dll ref table for/)) {
+        
+            # read 4 lines for the single error
+            my $iErr = $_ . $iROMLog[$i].$iROMLog[$i+1].$iROMLog[$i+2].$iROMLog[$i+3];
+            $iErr =~ s/\t|\n/ /g; # replace tabs and newlines with a space
+
+            # remove multi-line error, so that we dont process it twice
+            $iROMLog[$i-1] = "";
+            $iROMLog[$i]   = "";
+            $iROMLog[$i+1] = "";
+            $iROMLog[$i+2] = "";
+            $iROMLog[$i+3] = "";
+            
+            push @iSingleLineErrors, $iErr;
+        }
+    }
+    
+    # now merge two arrays before processing
+    push (@iROMLog, @iSingleLineErrors);
+    
+    
+    # identify unique lines in log, as errors
+    # are repeated for each ROM built
+    my %iSeenLines = ();
+    foreach my $iUniqueItem (@iROMLog) {
+        $iSeenLines{$iUniqueItem}++;
+    }
+    my @iUniqueLogList = keys %iSeenLines;
+    
+    foreach (@iUniqueLogList) {
+	if((m/WARNING: Sorting Rom Exception Table/) ||
+           (m/WARNING: DEMAND PAGING ROMS ARE A PROTOTYPE FEATURE ONLY/)) {
+           my @componentdetails = ($_, "", $iErrorLink, "", $iWarningLink);
+           push @components, \@componentdetails;
+        } elsif ((m/Missing/) || (m/Invalid Resource name/) || (m/warning:/) || (m/WARNING:/)) {
+           my @componentdetails = ($_, "", $iErrorLink, "1", $iWarningLink);
+                        
+            push @components, \@componentdetails;   
+        }
+        
+        if ((m/ERROR: Can't build dependence graph for/) ||
+            (m/ERROR: Can't resolve dll ref table for/) ||
+            (m/cpp failed/i) ||
+            (m/cannot find oby file/i) ||
+            (m/no such file or directory/i)) {
+            
+            my @componentdetails = ($_, "1", $iErrorLink, "", $iWarningLink);
+            push @components, \@componentdetails;   
+        } elsif (m/ERROR/) {
+            my @componentdetails = ($_, "1", $iErrorLink, "", $iWarningLink);
+            push @components, \@componentdetails;   
+        }
+    }   
+    
+    return @components;
+}
+
+##########################################################################
+#
+# Name    :  getCDBResults()
+# Synopsis:  To parse a logfile, and output results
+#            into a common data format for processing
+#
+# Inputs  :  None
+# Outputs : Array of refs to arrays containing 5 scalars. The structure
+#           is then used by the  printResultRow() to display
+#
+#  1    <array 'container'>
+#         |
+#  0-n    <array ref>
+#            |
+#            -- <scalar[0]>  component name
+#            -- <scalar[1]>  number of errors
+#            -- <scalar[2]>  link to errors
+#            -- <scalar[3]>  number of warnings
+#            -- <scalar[4]>  link to warnings
+#            -- <scalar[5]>  number of advisorynotes
+#            -- <scalar[6]>  link to advisorynotes
+#
+# Note: Links are currently not used, but instead constructed from the
+#       component name and logfile location. Can be used in future for
+#       logs located elsewhere etc.
+##########################################################################
+sub getCDBResults {
+   
+
+    my $iComponent;
+    my $iErrors;
+    my $iErrorLink;
+    my $iWarnings;
+    my $iWarningLink;
+	my $iAdvisoryNotes;
+	my $iAdvisoryNotesLink;
+    my $iRemarks;
+    my @components;
+    open (CDBLOGFILE, $iCDBLogFileLocation) || warn "RIZ::$!:$iCDBLogFileLocation\n";
+    
+    my @iCDBLog = <CDBLOGFILE>;
+    
+    foreach (@iCDBLog) {
+        
+        if (m/(Component_)(.*)(\s[0-9]{0,2}:[0-9]{0,2}:[0-9]{0,2}\.?[0-9]{0,3})\s([0-9]*)\s([0-9]*)\s([0-9]*)\s([0-9]*)\s([0-9]*)/) 	    {
+            
+            if (($4 != 0) || ($5 !=0) || ($6 != 0)) {
+                
+                $iComponent = $2;
+                $iErrors    = $4;
+                $iWarnings  = $5;
+				$iAdvisoryNotes = $6;
+                $iRemarks   = $7;   # currently we ignore remarks from components.
+                
+                # now extract the URL for each warning. At the moment, this is a relative link
+                # MUST make it absolute, to avoid problems
+                my @componentdetails = ($iComponent, $iErrors, $iErrorLink, $iWarnings, $iAdvisoryNotes, $iAdvisoryNotesLink);
+                push @components, \@componentdetails;
+				
+            }
+			}			
+        
+		if (m/(Component_)(.*)(\s[0-9]{0,2}:[0-9]{0,2}:[0-9]{0,2}\s([0-9]*)\s([0-9]*)\s([0-9]*)\s([0-9]*))/) 	    {
+			if (($4 != 0) || ($5 !=0) || ($6 != 0)) {
+                
+                $iComponent = $2;
+                $iErrors    = $4;
+                $iWarnings  = $5;
+				$iAdvisoryNotes = $6;
+                $iRemarks   = $7;   
+                # This  has been added to check the errors which have time in '0:00:00' format.
+                # now extract the URL for each warning. At the moment, this is a relative link
+                # MUST make it absolute, to avoid problems
+                my @componentdetails = ($iComponent, $iErrors, $iErrorLink, $iWarnings, $iAdvisoryNotes, $iAdvisoryNotesLink);
+                push @components, \@componentdetails;
+				
+            }
+			}
+		}
+	
+	# return array of refs to arrays
+    return @components;
+}
+
+##########################################################################
+#
+# Name    :  getResults()
+# Synopsis:  Factory like function to return an associated data structure
+#            depending on the type requested. i.e. GT, TV etc.
+#  
+# Inputs  :  Scalar containing the log/type required
+# Outputs :  The output of getXXXResults() functions.
+#
+#  1    <array 'container'>
+#         |
+#  0-n    <array ref>
+#            |
+#            -- <scalar[0]>  component name
+#            -- <scalar[1]>  number of errors
+#            -- <scalar[2]>  link to errors
+#            -- <scalar[3]>  number of warnings
+#            -- <scalar[4]>  link to warnings
+#            -- <scalar[5]>  number of advisorynotes
+#            -- <scalar[6]>  link to advisorynotes
+#
+##########################################################################
+#~ sub getResults {
+sub extractErrors {
+    
+    if ($_[0] eq "GT") {
+        return getGTResults($_[0]); }
+    
+    if ($_[0] eq "TV") {
+        return getTVResults($_[0]); }
+    
+    if ($_[0] eq "BUILD") {
+        return getBUILDResults($_[0]); }
+    
+    if ($_[0] eq "CBR") {
+        return getCBRResults($_[0]); }
+   
+    if ($_[0] eq "ROM") {
+        return getROMResults($_[0]); }
+    
+    if ($_[0] eq "CDB") {
+        return getCDBResults($_[0]); }
+
+}
+
+##########################################################################
+#
+# Name    :  getLogFileLocation()
+# Synopsis:  Accessor like function, to return the expected log file
+#            location that is initialised in GenResult::main()
+#
+# Inputs  :  Scalar containing the log/type required
+# Outputs : Scalar containing the log location
+#
+##########################################################################
+sub getLogFileLocation {
+    
+    if ($_[0] eq "GT") {
+        return setBrowserFriendlyLinks($iLinkPathLocation.$iGTFileName); }
+    
+    if ($_[0] eq "TV") {
+        if($_->[0]=~ /systemtest/i) {
+              return setBrowserFriendlyLinks($iLinkPathLocation.$iTVEBSFileName);}
+        else {   
+        return setBrowserFriendlyLinks($iLinkPathLocation.$iTVFileName); }
+        }
+    
+    if ($_[0] eq "BUILD") {
+        return setBrowserFriendlyLinks($iLinkPathLocation.$iBUILDFileName); }
+    
+    if ($_[0] eq "CBR") {
+        return setBrowserFriendlyLinks($iLinkPathLocation.$iCBRFileName); }
+        
+    if ($_[0] eq "ROM") {
+        return $iLinkPathLocation.$iROMFileName; }
+
+    if ($_[0] eq "CDB") {
+        return setBrowserFriendlyLinks($iLinkPathLocation.$iCDBFileName); }
+		
+}
+
+##########################################################################
+#
+# Name    :  getAnchorType()
+# Synopsis:  Helper function, to return the HTML scanlog anchor for
+#            a desired log type.
+#
+# Inputs  :  Scalar containing the log/type required
+# Outputs :  Scalar containing the HTML anchor 
+#
+##########################################################################
+sub getAnchorType {
+    
+    if ($_[0] eq "GT") {
+        return "Component"; }
+    
+    if ($_[0] eq "TV") {
+        return "Component"; }
+    
+    if ($_[0] eq "BUILD") {
+        return "Component"; }
+    
+    if ($_[0] eq "CBR") {
+        return "Overall"; }
+        
+    if ($_[0] eq "CDB") {
+        return "Overall"; }
+
+}
+
+##########################################################################
+#
+# Name    :  isHTMLFile()
+# Synopsis:  Identifies which log files should be processed as HTML
+#
+# Inputs  :  Scalar containing the log/type required
+# Outputs :  "1" if the requested log is HTML
+#
+##########################################################################
+sub isHTMLFile {
+    
+    if ($_[0] eq "GT" || $_[0] eq "TV" || $_[0] eq "BUILD" || $_[0] eq "CBR"  || $_[0] eq "CDB") {
+        return "1"; }
+}
+
+##########################################################################
+#
+# Name    :  isTestBuild()
+# Synopsis:  Identifies if this report is being generated for a test build
+#
+# Inputs  :  Global scalar for linkto location
+# Outputs :  "1" if the build is being published as a testbuild. This will
+#            obviously fail if testbuilds are not correctly published to
+#            \\builds01\devbuilds\test_builds
+#
+##########################################################################
+sub isTestBuild {
+    
+    # somehow, determine if this is a TBuild
+    if (uc($iLinkPathLocation) =~ m/TEST_BUILD/) {
+        return "1";
+    }
+    
+    return "0";
+}
+
+
+##########################################################################
+#
+# Name    :  setBrowserFriendlyLinks()
+# Synopsis:  Re-formats UNC path to file, with a Opera/Fire-Fox friendly
+#            version. Lotus Notes may cause problems though.
+# Inputs  :  UNC Path scalar
+# Outputs :  Scalar
+#
+##########################################################################
+sub setBrowserFriendlyLinks {
+    my ($iOldLink) = @_;
+    
+    $iOldLink =~ s/\\/\//g;  # swap backslashes to fwd slashes
+    return "file:///".$iOldLink;
+}
+
+##########################################################################
+#
+# Name    :  setBrowserFriendlyLinksForIN()
+# Purpose:  Generate Links for Bangalore Site
+# Inputs  :  UNC Path scalar
+# Outputs :  Scalar
+#
+##########################################################################
+
+sub setBrowserFriendlyLinksForIN($ ) {
+    my ($iOldLinkIN) = shift;
+    
+    $iOldLinkIN =~ s/\\/\//g;  # swap backslashes to fwd slashes
+    $iOldLinkIN = "file:///".$iOldLinkIN ;
+    $iOldLinkIN =~ s/builds01/builds04/ ;  # Generate Bangalore Log Location
+    return $iOldLinkIN;
+}
+
+##########################################################################
+#
+# Name    :  setBrowserFriendlyLinksForCN()
+# Purpose:  Generate Links for Beijing Site
+# Inputs  :  UNC Path scalar
+# Outputs :  Scalar
+#
+##########################################################################
+
+sub setBrowserFriendlyLinksForCN($ ) {
+    my ($iOldLinkCN) = shift;
+    
+    $iOldLinkCN =~ s/\\/\//g;  # swap backslashes to fwd slashes
+    $iOldLinkCN = "file:///".$iOldLinkCN ;
+    $iOldLinkCN =~ s/builds01/builds05/ ;  # Generate Beijing Log Location
+    return $iOldLinkCN;
+}
+
+
+# helper function to notify of any missing logs
+sub setHandleErrors {
+    
+    # set global filenotfound to "0"
+    
+    if ($_[0] eq "GT") {
+        $iGTFileFound    = "0"; }
+    
+    if ($_[0] eq "TV") {
+        $iTVFileFound    = "0"; }
+    
+    if ($_[0] eq "TV") {
+        $iTVEBSFileFound = "0"; }
+    
+    if ($_[0] eq "BUILD") {
+        $iBUILDFileFound = "0"; }
+    
+    if ($_[0] eq "CBR") {
+        $iCBRFileFound   = "0"; }
+        
+    if ($_[0] eq "ROM") {
+        $iROMFileFound   = "0"; }
+    
+    if ($_[0] eq "CDB") {
+        $iCDBFileFound   = "0"; }
+
+}
+
+# accessor function to return the flag for this type
+sub getHandleErrors {
+    
+    if ($_[0] eq "GT") {
+        return $iGTFileFound; }
+    
+    if ($_[0] eq "TV") {
+        return $iTVFileFound; }
+    
+    if ($_[0] eq "TV") {
+        return $iTVEBSFileFound; }
+        
+    if ($_[0] eq "BUILD") {
+        return $iBUILDFileFound; }
+    
+    if ($_[0] eq "CBR") {
+        return $iCBRFileFound; }
+    
+    if ($_[0] eq "ROM") {
+        return $iROMFileFound; }
+
+    if ($_[0] eq "CDB") {
+        return $iCDBFileFound; }
+}
+
+1;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/GenResult/FileRead.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,41 @@
+# Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+#!/usr/bin/perl -w
+package FileRead;
+use strict;
+##########################################################################
+#
+# Name    :  file_read()
+# Synopsis:  Reads in the contents of a file into an array
+# Inputs  :  Filename
+# Outputs :  array
+#
+##########################################################################
+sub file_read
+{
+    my ($filename) = @_;
+
+    local($/) = undef;
+    local(*FILE);
+ 
+    open(FILE, "<$filename") || die "open $filename: $!";
+    my @slurparr = <FILE>;
+    close(FILE) || die "close $filename: $!";
+
+    return $slurparr[0];
+}
+
+1;
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/GenResult/GenAutoSmokeTestResult.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,393 @@
+# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Script summarise and hotlink autosmoketest logs by reading
+# testdriver generated files
+# 
+#
+
+#!/usr/bin/perl -w
+package GenAutoSmokeTestResult;
+use FindBin;
+use FileRead;
+require GenResult;
+use strict;
+#use XML::Parser;
+
+# global vars
+my $iSTPublishDir;
+my $iSTLinkPath;
+my $iHTMLFileName = "testlog.html";
+my $iTraceFileName = "trace.txt";
+my $iDevkitFileName = "Devkit\.log";
+
+my ($iCfgFileLocation) = $FindBin::Bin;
+#Read in the products from a cfg file
+my $text = &FileRead::file_read ("$iCfgFileLocation\\Product_AutoSmokeTest.cfg");
+#Search for an entry matching (At the beginning of line there should be 1 or more alphanumberic chars
+#Followed by a "." followed by more alphanumberic chars followed by 0 or more spaces then an = then 0
+#or more spaces then any amount of chars till the end of the line.
+#8.1b = EMULATOR_WINSCW ARM4_LUBBOCK ARMV5_LUBBOCK
+my %iProducts = $text =~ /^\s*(\w+\.?\w+)\s*=\s*(.+)$/mg ;
+
+#Read in the auto smoketest list from a cfg file
+my $Smoketext = &FileRead::file_read ("$iCfgFileLocation\\AutoSmoketests.cfg");
+my %iTests = $Smoketext =~ /^\s*(\w+\s*\w*\s*)=\s*(.+)$/mg ;
+
+my $iNumberOfTests = scalar(my @iTempArray = values %iTests);
+my $iCountCols = 3 + $iNumberOfTests;
+ 
+# container for smoketest result
+my $gSmokeTestResultsRef;
+
+##########################################################################
+#
+# Name    : generateSTHTMLSummary()
+# Synopsis: Creates a Smoketest HTML report for the specified build.
+# Inputs  : Array containing Logs directory location, Product built and 
+#			path to link results
+# Outputs : HTML code that will be part of the HTML report generated 
+#			by GenResult.pm
+#
+# Note: Test Column Results can be interpreted as follows:
+#
+#	  OK: 			All test steps passed
+#	  Unexecuted:		Test unexecuted or log file not found.
+#	  Passed=x, Failed=y:	Results of test steps in the case of at least one failure 	
+#
+#       General Column Results can be interpreted as follows
+#       
+#	  OK: 			All smoke tests passing
+#	  Unexecuted: 		At least one smoke test was unexecuted 
+#	  FAILURES:             At least one failure in the smoke tests
+#	  CRITICAL FAILURES:	TestApps smoketest (which tests basic epoc functionality) has failed.      
+#
+##########################################################################
+sub generateSTHTMLSummary
+{
+	my ($iDir, $iSnapshot, $iProduct, $iLinkPath) = @_;
+
+	$iLinkPath =~  s/[^\\]$/$&\\/; #add trailing backslash, if missing
+	$iSTLinkPath = $iLinkPath;
+	
+	my $html_out = "<table border=\"1\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\" align=\"top\">";
+	$html_out .= "<tr bgcolor=\"#006699\" align=\"top\"><th colspan=" 
+	. $iCountCols .
+	" rowspan=2><font color=\"#ffffff\">AUTO Smoke Test Results</font></th></tr>"
+	."<tr></tr><tr bgcolor=\"#006699\" align=\"top\">";
+	
+	$iDir =~  s/[^\\]$/$&\\/; #add trailing backslash, if missing
+	$iSTPublishDir = $iDir;
+	
+
+	if (-e $iSTPublishDir)
+	{
+
+		print "\nGenerating Auto Smoke Test Report.";
+
+		my @iProductList = ($iProducts{$iProduct} =~ m/\S+/ig);
+		if (@iProductList < 1)
+		{
+			# this product is not supported?
+			$html_out .= "<td><center><b><font color=#ffffff>Smoke Test not supported for $iProduct</font></b></center></td></tr></table>";
+			return $html_out;
+		}
+		else
+		{
+			# Header of the table
+			$html_out .= "<th><font color=\"#ffffff\">Platform</font></th>
+						  <th><font color=\"#ffffff\">SUMMARY</font></th>";
+			foreach my $iTestName (sort { $iTests{$a} <=> $iTests{$b} } keys %iTests)
+			{
+				$html_out .= "<th><font color=\"#ffffff\">$iTestName</font></th>"
+			}
+			$html_out .= "<th><font color=\"#ffffff\">Defects</font></th></tr>";
+			
+			#iFlag = 0 for html mode, 1 for brag status mode
+			my $iFlag = 0; #The second value is a dummy value. It is only used when deriving Brag status.
+		 
+			$html_out .= printSTResultRow($iFlag,$iFlag, @iProductList);
+			# $html_out .= printDEVKITRow(@iProductList) 
+			$html_out .= "</table>";
+			return $html_out;
+		}
+	}
+	else
+	{
+		print "REMARK: Auto Smoke Test Report not created: $! \n";
+		return;
+	}
+}
+############################################################
+# Name: printSTResultRow
+# Description: This function prints out the table rows for the auto smoketest build report
+#	       file that is published in the ESR database. It is also used in determining
+#	       the brag status and is called from Bragstatus.pm. If the iFlag value is set to
+#	       0 then it will process the html results. Otherwise it returns a brag status of 0-green,1-Amber(Some tests failed)
+#	       2-Red(All platforms failed); -1-TBA (smoke test results are not present for some reason).
+#
+############################################################
+sub printSTResultRow
+{	 
+	my ($iFlag, $iLogPublishLocation,  @iProductList) = @_;
+	my $iFileName = "Test Summary Report\.htm";  
+ 
+	#Counts the number of platforms that have failed to be smoketested.
+	my $iplatform_counter = 0;
+
+ 	#Test and DEBUG COUNTER
+	my $iBragStatus = 0;	#0=Green,1=Amber,2=Red, -1=TBA
+	my $iFullRowSet;
+	my $iHTMLfileName = $iFileName;  
+	
+	# Process the results for each platform eg winscw, armv5 h4
+	foreach my $iPlatform (@iProductList)
+      {
+		my @iPlatformSubDirs = split /_/, $iPlatform;
+		my $iTempPath;
+		 
+		# Get the full path name to the results file for this platform.
+		foreach my $iTempDir (@iPlatformSubDirs)
+		{
+			$iTempPath .= "$iTempDir\\";
+		}  
+
+		if($iFlag == 1)
+		{
+		$iSTPublishDir = $iLogPublishLocation;
+		}  
+ 
+		# Process the results if the results log exists
+		if (-e $iSTPublishDir.$iTempPath.$iFileName)  {
+
+		 
+		# Read in the results log
+		my $resultsFile = "$iSTPublishDir"."$iTempPath"."$iFileName";
+		open(RESULTSFILE, "<$resultsFile");
+		local $/ = undef; # undefine the input record separator to read in as one line.
+		my $results = <RESULTSFILE>;
+		close(RESULTSFILE);
+			
+		# Parse to make reading the file simpler
+		$results =~ s/\<TD\>//ig;
+		$results =~ s/\<\/TD\>//ig;
+		$results =~ s/\<td BGCOLOR \= .*?\>//ig;
+		
+		my $iTestResults = "";
+		my $unexecutedStatus 		= 0;
+		my $failureStatus 		= 0;
+		my $criticalFailureStatus 	= 0;
+
+			
+		# Add one table cell within the row for each smoke test 
+		foreach my $iTestName (sort { $iTests{$a} <=> $iTests{$b} } keys %iTests)
+			{
+			my $testScript = "$iTests{$iTestName}";
+			my $passed = 0;
+			my $failed = 0; 
+			my $testInLogFile = 0;
+ 
+			# Extract the script execution line for this test from the results.
+			if (	$results =~ /($testScript)\.script(?:\d)?(?:\.htm)?\s*(?:UDEB|UREL)\s*(\d*)\s*passed,\s*(\d*)\s*failed/i)
+			{		 
+				$testInLogFile = $1; 
+ 				$passed = $2;
+				$failed = $3; 
+ 			}
+
+  			# Find result of test execution
+			if (!($testInLogFile))
+				{
+				$unexecutedStatus = 1;
+				$iTestResults .= "<td><font color=orange>";
+				$iTestResults .= "Unexecuted"."</font></td>";
+				$iBragStatus = -1;# At least one test is unexecuted
+				}
+			else
+				{
+ 				if (($failed==0) && ($passed > 0))
+ 					{
+					$iTestResults .= "<td><font color=green>";
+					$iTestResults .= "OK"."</font></td>";
+  					}
+  				else 
+   					{
+   					if ($failed > 0)
+  						{ 
+ 						# Differentiate between the basic TestApps test (which just fires up
+						# the emulator and runs exes) and application tests (e.g. messaging). 
+    						if ($testScript eq "smoketest_testapps")
+    							{
+							$criticalFailureStatus = 1;
+							$iTestResults .= "<td><font color=red>";
+							$iBragStatus = 2;# Critical failures  
+    							}
+    						else
+    							{
+							$failureStatus = 1;
+							$iTestResults .= "<td><font color=orange>";
+							$iBragStatus = 1; # At least one test has failed
+    							}
+						$iTestResults .= "Passed="."$passed"." Failed="."$failed"."</font></td>";
+  						}
+
+ 						}
+					 }
+			} # foreach my $iTestName
+ 
+			# Leave blank cell for defects 
+			$iTestResults .= "<td>&nbsp</td>";
+
+			 	
+			# Print out platform e.g. winscw (emulator) to start a new row in the results table
+			my $iRow = "<tr><td><a class =\"hoverlink\" href=\"" .&GenResult::setBrowserFriendlyLinks($iSTLinkPath.$iTempPath.$iHTMLfileName) ."\">"
+				.@iPlatformSubDirs[1]." ( ".@iPlatformSubDirs[0];
+			if (defined @iPlatformSubDirs[2])
+				{
+					$iRow .= " @iPlatformSubDirs[2] ";
+				}
+			$iRow .= " ) </a></td><td>";
+				
+ 
+ 			# Print the overall summary cell 
+			if ("$criticalFailureStatus")
+				{
+				$iRow .= "<font color=red>";
+				$iRow .= "CRITICAL FAILURES";  
+				}
+				else 
+  					{
+     					if ("$failureStatus")
+     						{
+      					$iRow .= "<font color=orange>";
+						$iRow .= "FAILURES";  
+      					}
+     					else 
+     						{
+        					if ("$unexecutedStatus")
+        						{
+          						$iRow .= "<font color=orange>";
+							$iRow .= "Unexecuted";  
+        						}
+        					else
+        						{
+							$iRow .= "<font color=green>";
+							$iRow .= "OK";  
+        						}
+      					}
+    					}
+
+
+			# Put the whole row together
+			$iRow .= "$iTestResults";
+			$iRow .= "</td>"; # end the last cell TD??
+			$iFullRowSet .= $iRow;
+
+		} # if (-e $iSTPublishDir.$iTempPath.$iFileName)
+		 
+
+		 
+	else # results file doesn't exist.
+		{
+ 
+		# smoke test directory for that platform has not been produced 
+		# - this is usually a sign that ROMs have not been made,
+		# or that the smoke tests haven't been run.
+			
+		my $iRow = "<tr><td>"
+		.@iPlatformSubDirs[1]." ( ".@iPlatformSubDirs[0];
+		if (defined @iPlatformSubDirs[2])
+			{
+			$iRow .= " @iPlatformSubDirs[2] ";
+			}
+		$iRow .= " ) </td><td>Smoke Test Not Run</td>";
+		foreach my $iTestName (sort { $iTests{$a} <=> $iTests{$b} } keys %iTests)
+			{
+			$iRow .= "<td><s>OK</s></td>";
+			}
+		$iRow .= "<td>&nbsp;</td></tr>";
+		$iFullRowSet .= $iRow;
+			
+		if($iFlag == 1) # BRAG status mode
+			{
+			$iplatform_counter++; #Platform Failed to be smoketested
+			$iBragStatus = 1; # Amber
+			}
+	} # if ( -e $iSTPublishDir.$iTempPath)
+	}# end foreach my $iPlatform (@iProductList) 
+	
+	# Return result depending on what the calling mode was
+	if($iFlag == 1)#bragstatus mode
+		{
+		if($iplatform_counter > 0) 
+			{
+			$iBragStatus = -1; # not all platforms have been smoketested.
+			}
+		return $iBragStatus;
+		}
+	else #Smoketest HTML mode
+		{
+		return $iFullRowSet;
+		}
+} # end sub
+sub printDEVKITRow
+{
+#access log file - Devkit.log on Devbuilds/Buildnumber/logs
+#open Devkit log file
+#if there are no ERROR: lines then print OK in General Column
+#else print Failed in General column
+#for all tests print N/A'
+
+#my $iDevkitLogFileLocation   = $iSTPublishDir.$iDevkitFileName;
+
+    open (DevkitLOGFILE, $iSTPublishDir.$iDevkitFileName);
+    my @iDevkitLog = <DevkitLOGFILE>;
+    my $iRow = "<tr><td>";
+
+    $iRow .= "DEVKIT</td>";
+    my $iErrorCount = 0;
+    my $iLineOK = 0;
+    foreach (@iDevkitLog) {
+       if (m/ERROR:/) 
+             {
+		$iErrorCount++;		 
+        }
+	     else
+	      {
+		$iLineOK++;
+	}
+    }
+	      if ($iErrorCount > 0)
+	      {
+		$iRow .= "<td>Failed</td>";
+	  }
+	     else
+	      {
+	      $iRow .= "<td>OK</td>";
+	      }
+	      
+    
+    
+
+foreach my $iTestName (sort { $iTests{$a} <=> $iTests{$b} } keys %iTests)
+		{
+			$iRow .= "<td>N/A</td>";
+		}
+		
+	$iRow .= "<td>&nbsp;</td></tr>";
+
+return $iRow	
+}
+
+
+1;
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/GenResult/GenDiamondsXml.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,64 @@
+# Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Script to Generate the XML file that is suitable for Diamonds
+# 
+#
+use strict;
+use FindBin;
+use lib "$FindBin::Bin";
+use lib "$FindBin::Bin/lib";
+use Getopt::Long;
+use GenDiamondsXml;
+
+my ($iStage, $iState, $iServer) = ProcessCommandLine();
+
+&GenDiamondsXml::main($iStage, $iState, $iServer);
+
+# ProcessCommandLine
+# Description
+# This function processes the commandline
+
+sub ProcessCommandLine {
+  my ($iHelp);
+  
+  GetOptions('h' => \$iHelp, 't=s' => \$iStage, 'i=s' => \$iState, 's=s' => \$iServer);
+
+  if (($iHelp) || (!defined $iStage) || (!defined $iState) || (!defined $iServer)) {
+    Usage();
+  }
+  return ($iStage, $iState, $iServer);
+}
+
+# Usage
+#
+# Output Usage Information.
+
+sub Usage {
+  print <<USAGE_EOF;
+
+  Usage: GenDiamondsXml.pl [switches]
+
+  [Switches]
+  -t Stage (e.g. STARTBUILD|GT|TV|ROM|CBR|CDB|BUILD|ENDBUILD|ALL)
+  -i (START|END)
+  -s server (e.g. diamonds.nmp.nokia.com:9003)
+    
+  [Optional]
+  -h help
+      
+USAGE_EOF
+	exit 1;
+}
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/GenResult/GenDiamondsXml.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,114 @@
+# Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Script to Generate the XML file that is suitable for Diamonds
+# 
+#
+package GenDiamondsXml;
+use FindBin;
+use lib "$FindBin::Bin/lib";
+use strict;
+use Text::Template;
+use Text::Template 'fill_in_file';
+use publishDiamonds;
+use ZipDiamondsXml;
+
+my $Debug = 0;
+my $MainXML = "Main.xml";
+my @start;
+if($ENV{BuildSubType} eq "Daily")
+{
+    @start = ('build.tmpl','schema.tmpl','locations.tmpl','tools.tmpl','content.tmpl','files.tmpl');
+}
+elsif($ENV{BuildSubType} eq "Test")
+{
+    @start = ('build.tmpl','schema.tmpl','locations.tmpl','tools.tmpl','files.tmpl');
+}
+
+my %states = (
+'STARTBUILD' => {
+            'START' => \@start
+            #~ 'START' => ['files.tmpl']
+        },
+'GT' => {
+            'START' => ['stage.tmpl'],
+            'STOP' => ['stage.tmpl', 'faults.tmpl']
+        },
+'TV' => {
+            'START' => ['stage.tmpl'],
+            'STOP' => ['stage.tmpl','faults.tmpl']
+        },
+'ROM' => {
+            'START' => ['stage.tmpl'],
+            'STOP' => ['stage.tmpl','faults.tmpl']
+        },
+'CBR' => {
+            'START' => ['stage.tmpl'],
+            'STOP' => ['stage.tmpl','faults.tmpl']
+        },
+'CDB' => {
+            'START' => ['stage.tmpl'],
+            'STOP' => ['stage.tmpl','faults.tmpl']
+        },
+'BUILD' => {
+            'START' => ['stage.tmpl'],
+            'STOP' => ['stage.tmpl','faults.tmpl']
+        },
+'ENDBUILD' => {
+            'START' => ['diamonds_finish.tmpl', 'status.tmpl']
+        }
+);
+
+sub main
+{
+  my ($iStage, $iState, $iServer) = @_;
+  print "STAGE: $iStage\t STATE: $iState\n";
+  my %vars = ();
+  $vars{'iStage'} = $iStage;
+  $vars{$iState} = 1;
+  my $LogsLocation = $ENV{LogsDir}."\\";
+  my @toMerge = ();
+  my $BatFile = "SendXmls.bat";
+  open (BAT,">>$BatFile") or warn "$BatFile: $!\n";
+
+  foreach my $tmpl (@{$states{$iStage}{$iState}})
+  {
+    my $suffix = "_".$iStage."_".$iState;
+    my $XmlName = $tmpl;
+    $XmlName =~ s/\.tmpl/$suffix\.xml/;
+    my $outfile = $LogsLocation.$XmlName;
+    $tmpl = "$FindBin::Bin/".$tmpl;
+    open(OUT,">$outfile");
+    print "Processing $tmpl...\n" if $Debug;
+    my $template = Text::Template->new(TYPE => 'FILE',  SOURCE => $tmpl)or die "Couldn't construct template: $Text::Template::ERROR";
+    my $success = $template->fill_in(OUTPUT => \*OUT, DELIMITERS => [ '[@--', '--@]' ], HASH => \%vars) or warn "$Text::Template::ERROR\n";
+    close(OUT);
+    if ($success)
+    {
+      print "Successfully processed $tmpl\n" if $Debug;
+      &publishDiamonds::publishToDiamonds($outfile,$iServer) if($ENV{BuildSubType} eq "Daily");
+      &ZipDiamondsXml::main($outfile);
+      print BAT "perl -e \"use publishDiamonds; &publishDiamonds::publishToDiamonds(\'$XmlName\',\'$iServer\');\"\n";
+      unlink ($outfile) or warn "Error in deleting: $!\n";
+    }
+  }
+  close(BAT);
+  if ($iStage eq "ENDBUILD")
+  {
+      &ZipDiamondsXml::main($BatFile);
+      unlink ($BatFile) or warn "Error in deleting: $!\n";
+      &ZipDiamondsXml::main($FindBin::Bin."/"."publishDiamonds.pm");
+      &ZipDiamondsXml::main($FindBin::Bin."/"."send_xml_to_diamonds.pl");
+  }
+}
+1;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/GenResult/GenPostBuildResult.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,578 @@
+# Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Script summarise and hotlink autosmoketest logs by reading
+# testdriver generated files
+# 
+#
+
+#!/usr/bin/perl -w
+package GenPostBuildResult;
+use GenResult;
+use strict;
+use Net::SMTP;
+
+##########################################################################
+# 
+# Name      :  getAVResults()
+# Synopsis  :  To parse a logfile, and ouput results into a common
+#              data format for processing.
+#
+# Inputs    :  $iLogsPublication
+# Output    :  A single variable that is passed to the final results HTML 
+#              table.
+#
+##########################################################################
+sub getAVResults {
+
+my ($iLogsPublishLocation) = @_;
+
+my $iAVFileName = "anti-virus.log";
+my $iAVError = "";
+my $iAVLogFileLocation = $iLogsPublishLocation.$iAVFileName;
+my $iAVResult = "<font color = \"Red\">WARNING: Potential virus found, check anti-virus.log</font>";
+my $iAVWarning = "";
+my $oldIdeFile = 0;
+my $errorFound = 0;
+
+# mcafee specifics
+my $iTotal      = 0;
+my $iClean      = 0;
+
+     if(-e $iAVLogFileLocation) {
+    
+	# id header from antivirus.log
+	my $iAVName = getAVProductName($iAVLogFileLocation);
+	
+        open (AVLOGFILE, $iAVLogFileLocation) or die "ERROR: Can't open file: $!";
+        
+        my @iAVLog = <AVLOGFILE>;
+        
+         if ($iAVName eq "SOPHOS") {
+            
+            foreach (@iAVLog){
+               if(m/No viruses were discovered/i){
+                 $iAVResult = "<font color = \"green\">No viruses were discovered</font>";
+                 $iAVError = "";
+               }
+               elsif(m/(is older than \d+ days)+/i){
+                 $oldIdeFile = 1;
+               }
+               elsif(m/errors? (was|were) encountered/i) {
+                 $errorFound = 1;
+               }
+            }
+            
+	  } elsif ($iAVName eq "MCAFEE") {
+	    
+            foreach (@iAVLog){
+               if (m/Total files:\s{1}\.*\s*([0-9]+)/i) {
+                  $iTotal += $1;                  
+               }
+               elsif (m/Clean:\s{1}\.*\s*([0-9]+)/i) {                  
+                 $iClean  += $1;
+               }
+	    }
+            
+            if ($iTotal eq $iClean) {
+                  $iAVResult = "<font color = \"green\">No viruses were discovered</font>";
+                  $iAVError = "";
+            }
+	  } elsif ($iAVName eq "UNKNOWN") {
+            $iAVResult = "<font color = \"Red\"> WARNING: Cannot Identify Anti-Virus product</font>";
+            $iAVError = "";
+         }
+	  
+	# generate-html-output
+	if( $oldIdeFile) {
+	  $iAVWarning = "<font color = \"Red\"> Virus Definition file needs to be updated</font>";
+	}
+	if($oldIdeFile && $errorFound) {
+	  $iAVWarning .= "<br>";
+	}
+	if( $errorFound) {
+	  $iAVWarning .= "<font color = \"Red\"> Error(s) encountered. See anti-virus.log</font>";
+	}	
+     }
+     else{
+      $iAVResult = "<font color = \"Red\">WARNING: Anti-virus.log file not found </font>";
+      $iAVError = "";
+     }
+
+  close AVLOGFILE;
+  
+return ($iAVResult,$iAVWarning,$iAVError);
+}
+
+#
+# Identify AV Product
+# - Sophos
+# - McAfee
+# - UnKnown
+sub getAVProductName($) {
+  
+  my $iAVLogFileLocation = shift;
+ 
+  my $iMcAfee = 0;
+  my $iSophos = 0;
+  
+  open (AVLOGFILE, $iAVLogFileLocation) or die "ERROR: Can't open file: $!";
+  
+  my @iAVLog  = <AVLOGFILE>;
+  
+  foreach (@iAVLog){
+    
+    if(m/McAfee VirusScan for Win32/i) {
+      $iMcAfee = 1;
+      last;
+    }
+    
+    if(m/Sophos Anti-Virus/i) {
+      $iSophos = 1;
+      last;
+    }
+  }
+  
+  # does not recognise "both"
+  return ($iMcAfee ? "MCAFEE" :
+         ($iSophos ? "SOPHOS" : "UNKNOWN"));
+  
+}
+
+##########################################################################
+#   --- REQ9019 ---
+# Name      :  getSidVidResults()
+# Synopsis  :  To check if the SID-VID report for ROM images has been created 
+#              using tools_imgcheck module during the build.
+# Inputs    :  $iLogsPublishLocation
+# Output    :  A single variable that is passed to the final results HTML 
+#              table.
+#
+##########################################################################
+sub getSidVidResults {
+ 
+my ($iLogsPublishLocation) = @_;
+
+my $iSidVidReportFileName     = "sidvid.xml";
+my $iSidVidReportFileLocation = $iLogsPublishLocation.$iSidVidReportFileName;
+my $iSidVidReportResult;
+     if(-e $iSidVidReportFileLocation) {
+
+         $iSidVidReportFileLocation =~ s/\\/\//g;     # swap backslashes to fwd slashes
+         
+         # create browser link
+         $iSidVidReportFileLocation = "file:///".$iSidVidReportFileLocation;    
+         $iSidVidReportResult   ="<a class =\"hoverlink\" href = \"" . $iSidVidReportFileLocation."\">$iSidVidReportFileName</a>";  
+     }
+     else{
+         $iSidVidReportResult = "<font color = \"Red\">WARNING: SID/VID report $iSidVidReportFileName not found</font>";
+     }
+ 
+return ($iSidVidReportResult);
+}
+
+##########################################################################
+# 
+# Name      :  CDBfiletest()
+# Synopsis  :  To test if the CDB report was created successfully. Submit
+#              result to the postbuild results table.
+#
+# Inputs    :  $iBCPrevious
+# Output    :  A single variable that is passed to the final results HTML 
+#              table.
+#
+##########################################################################
+sub CDBFileTest{
+
+my  ($iLinkPathLocation, $iProduct, $iSnapshot, $imail)  = @_;
+
+my $iBCPreviousXML = $iLinkPathLocation;
+$iBCPreviousXML = $iBCPreviousXML."cdb-info\\bc-prev.xml";
+my $iBCBaseXML = $iLinkPathLocation;
+$iBCBaseXML = $iBCBaseXML."cdb-info\\bc-base.xml";
+
+my $iPrevTotal = "XML file not found";
+my $iPrevPublish = "XML file not found";  
+my $iBaseTotal = "XML file not found";
+my $iBasePublish = "XML file not found";  
+
+my $size = 0;
+my $errorMessageBase = "";
+my $errorMessagePrev = "";
+
+my $iBCPreviousHTML = $iLinkPathLocation;
+$iBCPreviousHTML = $iBCPreviousHTML."cdb-info\\BC-prev.html";
+my $iBCBaseHTML = $iLinkPathLocation;
+$iBCBaseHTML = $iBCBaseHTML."cdb-info\\BC-base.html";
+
+if (-e $iBCPreviousXML){ 
+   
+   $iPrevTotal = "Keyword 'TotalBreaks' not found";
+   $iPrevPublish = "Keyword 'PublishedPartner' not found";
+
+   open (BCPREV, $iBCPreviousXML) or die "ERROR: Can't open file: $!";
+
+       my @iBCPrev = <BCPREV>;
+
+          foreach (@iBCPrev){
+       
+                   if(m/(totalBreaks count=")(\d+)/i){
+                          $iPrevTotal = $2;
+                   }
+                  
+                   if(m/(publishedPartner" count=")(\d+)/i){
+                          $iPrevPublish = $2;
+                   }
+          }
+    close BCPREV;
+    
+    if((uc($iLinkPathLocation) !~ m/TEST_BUILD/) && defined($imail) && $iPrevTotal>50){
+      &SendEmail($iProduct,$iSnapshot,"The BC_Prev breaks are $iPrevTotal for Symbian v$iProduct $iSnapshot" );}
+    
+    #--DEF067716--
+        
+    $size = (stat($iBCPreviousHTML))[7]; 
+    
+    if ( -e $iBCPreviousHTML){
+    	if ($size == 0) {
+	    $errorMessagePrev = " [ BC-prev html link invalid ]";
+        } else {
+            my $bool = 0;
+            open (BCPREVHTML, $iBCPreviousHTML) or die "ERROR: Can't open file: $!";
+            while(<BCPREVHTML>){
+                if(m/<HTML>/){
+                    $bool = 1;
+                }
+            }
+            close BCPREVHTML;
+            if ($bool == 1){
+                $errorMessagePrev = "";
+            }else{
+                $errorMessagePrev = " [ BC-prev: Not a HTML file ]";
+            }            
+        }
+    } else {
+        $errorMessagePrev = " [ BC-prev.html does not exist ]";
+    }
+    
+    #--------------
+    
+    }
+
+if (-e $iBCBaseXML){
+   
+   $iBaseTotal = "Keyword 'TotalBreaks' not found";
+   $iBasePublish = "Keyword 'PublishedPartner' not found";
+           
+   open (BCBASE, $iBCBaseXML) or die "ERROR: Can't open file: $!";
+
+       my @iBCBase = <BCBASE>;
+
+          foreach (@iBCBase){
+      
+                   if(m/(totalBreaks count=")(\d+)/i){
+                          $iBaseTotal = $2;                  
+                   }
+                  
+                   if(m/(publishedPartner" count=")(\d+)/i){
+                          $iBasePublish = $2;
+                   }
+           }
+    close BCBASE;
+    
+    if((uc($iLinkPathLocation) !~ m/TEST_BUILD/) && defined($imail) && $iBaseTotal>400){
+      &SendEmail($iProduct,$iSnapshot,"The BC_Base breaks are $iBaseTotal for Symbian v$iProduct $iSnapshot" );}
+    #--DEF067716--
+    
+    $size = (stat($iBCBaseHTML))[7]; 
+    
+    if ( -e $iBCBaseHTML){
+    	if ($size == 0) {
+	    $errorMessageBase = " [ BC-base html link invalid ]"; 
+        }else {
+            my $bool = 0;
+            open (BCBASEHTML, $iBCBaseHTML) or die "ERROR: Can't open file: $!";
+            while(<BCBASEHTML>){
+                if(m/<HTML>/){
+                    $bool = 1;
+                }
+            }
+            close BCBASEHTML;  
+            if ($bool == 1){
+                $errorMessageBase = "";
+            }else{
+                $errorMessageBase = " [ BC-base: Not a HTML file ]";
+            }
+        }
+    } else {
+        $errorMessageBase = " [ BC-base.html does not exist ]";
+    }
+    
+    #--------------
+    
+    }
+
+return ($iPrevTotal, $iPrevPublish, $iBaseTotal, $iBasePublish, $errorMessagePrev, $errorMessageBase);
+}
+
+sub SendEmail
+{
+  my (@body, @message, $sender_address, $notification_address,$iProduct,$iSnap);                        
+  ($iProduct,$iSnap,@body) = @_;
+  $sender_address  =  'I_EXT_SysBuildSupport@nokia.com';
+  $notification_address  =  'I_EXT_SysBuildSupport@nokia.com';
+     
+  push @message,"From: $sender_address\n";
+  push @message,"To: $notification_address\n";
+  push @message,"Subject: Break Threshold CDB Notification $iSnap Symbian v$iProduct\n";
+  push @message,"\n";
+  push @message,@body;
+  
+  my $smtp = Net::SMTP->new('smtp.nokia.com', Hello => $ENV{COMPUTERNAME}, Debug   => 0);
+  $smtp->mail();
+  $smtp->to($notification_address);
+  
+  $smtp->data(@message) or die "ERROR: Sending message";
+  $smtp->quit;
+}
+##########################################################################
+# 
+# Name      :  CBRTime()
+# Synopsis  :  To obtain the time of export for both the gt_techview and
+#              gt_only files and to report the status of the exported
+#              CBR's.
+#
+# Inputs    :  Export_gt_only_baseline.log,
+#              Export_gt_techview_baseline.log
+# Output    :  To display the times in the post built results table.
+#              
+#
+##########################################################################
+sub CBRTime{
+
+  my ($iLogsPublishLocation, $iProduct, $iSnapshot) = @_;
+  
+  
+  my $iOnlyResult = "<font color = \"black\"> Export Unsuccessful</font>";              
+  my $iTechViewResult = "<font color = \"black\">Export Unsuccessful</font>";  
+  my $iOnlyTimes = "";
+  my $iTechViewTime = "";
+  # Error
+  my $iOnlyResultError = "";
+  my $iTechViewResultError = ""; 
+  my $iExportError = "";
+  
+  if (-e $iLogsPublishLocation."Export_CBR.log")
+  {  
+  open (ILOG, $iLogsPublishLocation."Export_CBR.log") or die "ERROR: Can't open file: $!";
+  my $iOnlyExportFound = 0;
+  my $iTechviewExportFound = 0;
+  
+  while (my $line = <ILOG>)
+  {
+    if( $line =~ m/Environment gt_only_baseline.*?successfully exported/i)
+    {
+      $iOnlyResult = "<font color = \"black\">Export Successful</font>";
+      $iOnlyExportFound = 1;
+    }
+
+    if( $line =~ m/gt_only_baseline.*?exportenv finsihed at\s+(.*)/i)
+    {
+      $iOnlyTimes = "<font color = \"black\">".$1."</font>";
+    }
+  
+    if($line =~ m/Environment gt_techview_baseline.*?successfully exported/i)
+    {
+      $iTechViewResult = "<font color = \"black\">Export Successful</font>";
+      $iTechviewExportFound = 1;
+    }
+    
+    if( $line =~ m/gt_techview_baseline.*?exportenv finsihed at\s+(.*)/i)
+    {
+      $iTechViewTime  = "<font color = \"black\">".$1."</font>";
+    }
+    
+    if( $line =~ m/ERROR: Failed to record delivery using template/i)
+    {
+      $iExportError = "<font color = \"red\"> Record Delivery Failed </font>";
+    }
+    
+      
+  } 
+  
+  if($iOnlyExportFound == 0)
+  {
+    $iOnlyResultError = "<font color = \"red\"> [ Export Unsuccessful ]</font>";
+    $iOnlyTimes = "--";
+  }
+  if($iTechviewExportFound == 0)
+  {
+    $iTechViewResultError = "<font color = \"red\"> [ Export Unsuccessful ]</font>";
+    $iTechViewTime = "--";
+  }  
+  close ILOG;
+  
+  } else {
+  $iOnlyResult = "<font color = \"black\">Cannot find file</font>";
+  $iOnlyTimes = "<font color = \"black\">Cannot find file</font>";
+  $iOnlyResultError = "<font color = \"red\"> [ File not found ]</font>";
+  $iTechViewResult = "<font color = \"black\">Cannot find file</font>";
+  $iTechViewTime = "<font color = \"black\">Cannot find file</font>";
+  $iTechViewResultError = "<font color = \"red\"> [ File not found ]</font>";
+  }
+  
+  return ($iOnlyResult, $iOnlyTimes, $iTechViewResult, $iTechViewTime, $iOnlyResultError, $iTechViewResultError, $iExportError);
+}
+
+##########################################################################
+#
+# Name    : generatesPostBuildSummary()
+# Synopsis: Creates Post Build Table in Build Results.
+# Inputs  : Function parameters returned from genResult.pm that are to be
+#           implemented in the Post Build Results table.
+#	
+# Outputs : HTML code that will be part of the HTML report generated 
+#           for the final build results table.
+##########################################################################
+sub generatesPostBuildSummary{
+
+my ($iLogsPublishLocation, $iLinkPathLocation, $iProduct, $iSnapshot, $imail) = @_;
+my @CDBResArr = &CDBFileTest($iLinkPathLocation, $iProduct, $iSnapshot, $imail);
+my @CBRResTime = &CBRTime($iLogsPublishLocation, $iProduct, $iSnapshot);
+my @AVResults = &getAVResults($iLogsPublishLocation);
+my $SidVidReportURL =  &getSidVidResults($iLogsPublishLocation);
+
+my $SidVidReportResult = "SID/VID report generated.";
+
+if( $SidVidReportURL =~ /WARNING/){
+    $SidVidReportResult = $SidVidReportURL;
+    $SidVidReportURL    = "&nbsp"; 
+}
+
+my $postbuild_html = "\n
+                     <br><table border=\"1\" width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">
+
+        <tr>
+
+                <td align=\"center\" colspan=\"4\" bgcolor=\"#006699\"><font color=\"#FFFFFF\" size=\"2\"><b>Post Build Results</font></td>
+
+        </tr>
+        
+        <tr>
+        
+                <td bgcolor=\"#006699\">&nbsp</td>
+
+                <td bgcolor=\"#006699\">&nbsp</td>
+                
+                <td bgcolor=\"#006699\">&nbsp</td>
+                
+                <td align=\"center\" bgcolor=\"#006699\"><font color=\"#FFFFFF\" size=\"2\"><b>Defects</font></td>        
+        
+        </tr>
+
+        <tr>
+
+                <td bgcolor=\"#006699\"><font color=\"#FFFFFF\" size=\"2\"><b>AntiVirus</font></td>
+
+                <td > " . $AVResults[0] . " </td>
+                
+                <td>&nbsp<b>" . $AVResults[1] . " </td>
+                
+                <td>&nbsp<b>" . $AVResults[2] . " </td>
+
+        </tr>
+        
+        <tr>
+        
+                <td bgcolor=\"#006699\"><font color=\"#FFFFFF\" size=\"2\"><b>SID VID Reports</font></td>
+         
+                <td>".$SidVidReportResult."</td>
+                <td>".$SidVidReportURL."</td>
+                <td>&nbsp</td>
+
+         </tr>       
+
+        <tr>
+
+                <td bgcolor=\"#006699\"><font color=\"#FFFFFF\" size=\"2\"><a class =\"hoverlink\" href = \"" . &GenResult::setBrowserFriendlyLinks($iLinkPathLocation."cdb-info\\BC-prev.html")."\"><b>[CDB PREVIOUS]</a></td>
+
+                <td>Total Number of Breaks: <b> " . $CDBResArr[0] . " </td>
+
+                <td>Breaks at Published Partner and Above: <b> " . $CDBResArr[1] . " </td>
+                
+                <td>&nbsp<b>" . "<font color=\"Red\" size=\"2\">" . $CDBResArr[4] . "  </td>
+
+        </tr>
+
+        <tr>
+
+                <td bgcolor=\"#006699\"><font color=\"#FFFFFF\" size=\"2\"><a class =\"hoverlink\" href = \"" . &GenResult::setBrowserFriendlyLinks($iLinkPathLocation."cdb-info\\BC-base.html")."\"><b>[CDB BASE]</a></td>
+
+                <td>Total Number of Breaks: <b> " . $CDBResArr[2] . " </td>
+
+                <td>Breaks at Published Partner and Above: <b> " .$CDBResArr[3] . " </td>
+
+		<td>&nbsp<b>" . "<font color=\"Red\" size=\"2\">" . $CDBResArr[5] . " </td>
+
+          </tr>";
+        
+        # If it is a test build then do not evaluate the CBR Export time component, else implement the export table.
+          
+         if(GenResult::isTestBuild() eq "0"){
+          
+          $postbuild_html=$postbuild_html."
+                  
+          <tr>
+                <td bgcolor=\"#006699\"><font color=\"#FFFFFF\" size=\"2\"><b>[CBR Export] GT_Only</td>
+
+                <td>Status: <b> " . $CBRResTime[0] . " </td>
+
+                <td>Time of Export: <b> " . $CBRResTime[1]  . " </td>
+
+		<td>&nbsp<b> " . $CBRResTime[4] . "</td>
+
+        </tr>
+        <tr>
+
+                <td bgcolor=\"#006699\"><font color=\"#FFFFFF\" size=\"2\"><b>[CBR Export] TechView</td>
+
+                <td>Status: <b> " . $CBRResTime[2] . " </td>
+
+                <td>Time of Export: <b> " . $CBRResTime[3]  . " </td>
+                
+                <td>&nbsp<b> " . $CBRResTime[5] . "</td>
+
+        </tr>
+        <tr>
+        
+                <td bgcolor=\"#006699\"><font color=\"#FFFFFF\" size=\"2\"><b>Record Delivery Errors</td>
+         
+                <td>&nbsp <b> " . $CBRResTime[6] . " </td>
+	       	<td>&nbsp</td>
+		<td>&nbsp</td>
+		
+         </tr>       
+        
+        </table>
+        <br>
+                     ";
+         }
+         else{
+          $postbuild_html=$postbuild_html."
+          </table>
+        <br>";
+         }
+return $postbuild_html;
+}
+
+1;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/GenResult/GenResult.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,71 @@
+# Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Script to get version of various tools
+# 
+#
+
+use strict;
+use FindBin;
+use lib "$FindBin::Bin";
+use GenResult;
+use Getopt::Long;
+
+# Process the commandline
+my ($iDir, $iSnapshot, $iProduct, $iLinkPath, $iStage, $iBrag, $imail) = ProcessCommandLine();
+
+&GenResult::main($iDir, $iSnapshot, $iProduct, $iLinkPath, $iStage, $iBrag, $imail);
+
+# ProcessCommandLine
+# Description
+# This function processes the commandline
+
+sub ProcessCommandLine {
+  my ($iHelp);
+  
+  GetOptions('h' => \$iHelp, 'd=s' => \$iDir, 's=s' => \$iSnapshot, 'p=s' => \$iProduct, 'l=s' => \$iLinkPath, 't=s' => \$iStage, 'b=s' => \$iBrag, 'm' => \$imail);
+
+  if (($iHelp) || (!defined $iDir) || (!defined $iSnapshot) || (!defined $iProduct) || (!defined $iStage)) {
+    Usage();
+  }
+  return ($iDir, $iSnapshot, $iProduct, $iLinkPath, $iStage, $iBrag, $imail);
+}
+
+# Usage
+#
+# Output Usage Information.
+
+sub Usage {
+  print <<USAGE_EOF;
+
+  Usage: GenResult.pl [switches]
+
+  [Switches]
+  -d directory (e.g. \\builds01\\devbuilds\\master\\03445_Symbian_OS_v9.1\\logs)
+  -s snapshot number (e.g. 03445)
+  -p product (e.g. 9.1)
+  -t Stage (e.g. GT|TV|ROM|CBR|CDB|BUILD|ALL)
+    
+  [Optional]
+  -h help
+  -l link path (\\builds01\\devbuilds\\master\\logs\\03445_Symbian_OS_v9.1)
+  -b Brag status (FINAL|TBA[default])
+  -m Sends CDB break notification mail to cdb support
+    
+ It is possible to generate the logs based upon a local copy, but also link them to
+ a different (remote) location. This will be useful when copying the report into another
+ application such as Lotus Notes.
+
+USAGE_EOF
+	exit 1;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/GenResult/GenResult.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,1197 @@
+# Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Script summarise and hotlink logfiles by reading
+# HTMLscanlog generated files
+# This initial version is phase 1 of 3.
+# 1. HTML scanlog input --> HTML report output
+# 2. HTML scanlog input --> XML report output + XSLT to HTML
+# 3. XML scanlog input  --> XML report output + XSLT to HTML
+# 
+#
+
+#!/usr/bin/perl -w
+package GenResult;
+use BragStatus;
+use GenAutoSmokeTestResult;
+use GenPostBuildResult;
+use strict;
+
+# global log file locations
+# - to be set by main() function
+# on module entry
+our $iGTLogFileLocation;
+our $iTVLogFileLocation;
+our $iTVEBSLogFileLocation;
+our $iBUILDLogFileLocation;
+our $iCBRLogFileLocation;
+our $iROMLogFileLocation;
+our $iCDBLogFileLocation;
+our $iLinkPathLocation;
+our $iLogsPublishLocation;
+our $iGTFileName;
+our $iTVFileName;
+our $iTVEBSFileName;
+our $iBUILDFileName;
+our $iCBRFileName;
+our $iROMFileName;
+our $iCDBFileName;
+our $iBraggflag = 0;
+
+our %iProducts;
+our %iTests;
+no strict qw($iGTLogFileLocation,
+	     $iTVLogFileLocation,
+             $iTVEBSLogFileLocation;
+	     $iBUILDLogFileLocation,
+	     $iCBRLogFileLocation,
+	     $iROMLogFileLocation,
+           $iCDBLogFileLocation,
+	     $iLinkPathLocation,
+	     $iLogsPublishLocation,
+	     $iGTFileName,
+	     $iTVFileName,
+             $iTVEBSFileName;
+	     $iBUILDFileName,
+	     $iCBRFileName,
+	     $iROMFileName,
+             $iCDBFileName);
+
+my $iGTFileFound    = "1";
+my $iTVFileFound    = "1";
+my $iTVEBSFileFound = "1";
+my $iBUILDFileFound = "1";
+my $iCBRFileFound   = "1";
+my $iROMFileFound   = "1";
+my $iCDBFileFound   = "1";
+	
+
+
+# stores the list of stages
+my $iBuildStages = 'GT|TV|ROM|CBR|CDB|BUILD';
+
+# outline style sheet internally  
+my $gStyleSheet = " \n
+
+                <style type=\"text/css\">                    
+                    h1,h2,h3
+                    {
+                        font-family: \"arial\", lucida calligraphy, 'sans serif'; 
+                    }
+
+                    p,table,li,
+                    {
+                        font-family: \"arial\", lucida calligraphy, 'sans serif'; 
+                        margin-left: 8pt;
+                    }
+
+                    body
+                    {
+                        background-color:#fffaf0;
+                    }
+
+                    p,li,th,td
+                    {
+                        font-size: 10pt;
+                        vertical-align:top;
+                    }
+
+                    h1,h2,h3,hr {color:#483d8b;}
+
+                    table {border-style:outset}
+                    li {list-style: square;}
+
+                    a.hoverlink:link {color: #0000ff; text-decoration: none}
+                    a.hoverlink:visited {color: #0000ff; text-decoration: none}
+                    a.hoverlink:hover {text-decoration: underline}
+                </style>";
+
+
+##########################################################################
+#
+# Name    :  getGTResults()
+# Synopsis:  To parse a logfile, and output results
+#            into a common data format for processing
+#
+# Inputs  :  None
+# Outputs : Array of refs to arrays containing 5 scalars. The structure
+#           is then used by the  printResultRow() to display
+#
+#  1    <array 'container'>
+#         |
+#  0-n    <array ref>
+#            |
+#            -- <scalar[0]>  component name
+#            -- <scalar[1]>  number of errors
+#            -- <scalar[2]>  link to errors
+#            -- <scalar[3]>  number of warnings
+#            -- <scalar[4]>  link to warnings
+#            -- <scalar[5]>  number of advisorynotes
+#            -- <scalar[6]>  link to advisorynotes
+#
+# Note: Links are currently not used, but instead constructed from the
+#       component name and logfile location. Can be used in future for
+#       logs located elsewhere etc.
+##########################################################################
+sub getGTResults {
+   
+
+    my $iComponent;
+    my $iErrors;
+    my $iErrorLink;
+    my $iWarnings;
+    my $iWarningLink;
+	my $iAdvisoryNotes;
+	my $iAdvisoryNotesLink;
+    my $iRemarks;
+    my @components;
+ 
+    open (GTLOGFILE, $iGTLogFileLocation) || setHandleErrors($_[0]);
+    
+    my @iGTLog = <GTLOGFILE>;
+    
+    foreach (@iGTLog) {
+        
+        if (m/(Component_)(.*)(\s[0-9]{0,2}:[0-9]{0,2}:[0-9]{0,2}\.?[0-9]{0,3})\s([0-9]*)\s([0-9]*)\s([0-9]*)\s([0-9]*)\s([0-9]*)/) 	    {
+            if (($4 != 0) || ($5 !=0) || ($6 != 0)) {
+                
+                $iComponent = $2;
+                $iErrors    = $4;
+                $iWarnings  = $5;
+                $iAdvisoryNotes = $6;
+                $iRemarks   = $7;   # currently we ignore remarks from components.
+                
+                # now extract the URL for each warning. At the moment, this is a relative link
+                # MUST make it absolute, to avoid problems
+                
+                my @componentdetails = ($iComponent, $iErrors, $iErrorLink, $iWarnings, $iWarningLink, $iAdvisoryNotes, $iAdvisoryNotesLink);
+                push @components, \@componentdetails;
+            }
+			
+			
+        }
+				
+        }
+    # return array of refs to arrays
+    return @components;
+}
+
+##########################################################################
+#
+# Name    :  getTVResults()
+# Synopsis:  To parse a logfile, and output results
+#            into a common data format for processing
+#
+# Inputs  :  None
+# Outputs : Array of refs to arrays containing 5 scalars. The structure
+#           is then used by the  printResultRow() to display
+#
+#  1    <array 'container'>
+#         |
+#  0-n    <array ref>
+#            |
+#            -- <scalar[0]>  component name
+#            -- <scalar[1]>  number of errors
+#            -- <scalar[2]>  link to errors
+#            -- <scalar[3]>  number of warnings
+#            -- <scalar[4]>  link to warnings
+#            -- <scalar[5]>  number of advisorynotes
+#            -- <scalar[6]>  link to advisorynotes
+#
+# Note: Links are currently not used, but instead constructed from the
+#       component name and logfile location. Can be used in future for
+#       logs located elsewhere etc.
+##########################################################################
+sub getTVResults {
+    
+    my $iComponent;
+    my $iErrors;
+    my $iErrorLink;
+    my $iWarnings;
+    my $iWarningLink;
+	my $iAdvisoryNotes;
+	my $iAdvisoryNotesLink;
+    my $iRemarks;
+    
+    my @components;
+    open (TVLOGFILE, $iTVLogFileLocation) || setHandleErrors($_[0]);
+
+    my @iTVLog = <TVLOGFILE>;
+    
+    foreach (@iTVLog) {
+        
+        if (m/(Component_)(.*)(\s[0-9]{0,2}:[0-9]{0,2}:[0-9]{0,2}\.?[0-9]{0,3})\s([0-9]*)\s([0-9]*)\s([0-9]*)\s([0-9]*)\s([0-9]*)/) {
+             
+            if (($4 != 0) || ($5 !=0) || ($6 != 0)) {
+                
+                $iComponent = $2;
+                $iErrors    = $4;
+                $iWarnings  = $5;
+                $iAdvisoryNotes = $6;
+                $iRemarks   = $7;   # currently we ignore remarks from components.
+                
+                # now extract the URL for each warning. At the moment, this is a relative link
+                # MUST make it absolute, to avoid problems
+                
+                my @componentdetails = ($iComponent, $iErrors, $iErrorLink, $iWarnings, $iWarningLink, $iAdvisoryNotes, $iAdvisoryNotesLink);
+                push @components, \@componentdetails;
+            }
+        }
+    }
+    
+    open (TVEBSLOGFILE, $iTVEBSLogFileLocation) || setHandleErrors($_[0]);
+    my @iTVEBSLog = <TVEBSLOGFILE>;
+     foreach (@iTVEBSLog) {
+        
+        if (m/(Component_)(.*)(\s[0-9]{0,2}:[0-9]{0,2}:[0-9]{0,2}\.?[0-9]{0,3})\s([0-9]*)\s([0-9]*)\s([0-9]*)\s([0-9]*)\s([0-9]*)/) {
+             
+            if (($4 != 0) || ($5 !=0) || ($6 != 0)) {
+                
+                $iComponent = $2;
+                $iErrors    = $4;
+                $iWarnings  = $5;
+                $iAdvisoryNotes = $6;
+                $iRemarks   = $7;   # currently we ignore remarks from components.
+                
+                # now extract the URL for each warning. At the moment, this is a relative link
+                # MUST make it absolute, to avoid problems
+                
+                my @componentdetails = ($iComponent, $iErrors, $iErrorLink, $iWarnings, $iWarningLink, $iAdvisoryNotes, $iAdvisoryNotesLink);
+                push @components, \@componentdetails;
+            }
+        }
+    }
+    
+    # return array of refs to arrays
+    return @components;
+}
+
+
+##########################################################################
+#
+# Name    :  getBUILDResults()
+# Synopsis:  To parse a logfile, and output results
+#            into a common data format for processing
+#
+# Inputs  :  None
+# Outputs : Array of refs to arrays containing 5 scalars. The structure
+#           is then used by the  printResultRow() to display
+#
+#  1    <array 'container'>
+#         |
+#  0-n    <array ref>
+#            |
+#            -- <scalar[0]>  component name
+#            -- <scalar[1]>  number of errors
+#            -- <scalar[2]>  link to errors
+#            -- <scalar[3]>  number of warnings
+#            -- <scalar[4]>  link to warnings
+#            -- <scalar[5]>  number of advisorynotes
+#            -- <scalar[6]>  link to advisorynotes
+#
+# Note: Links are currently not used, but instead constructed from the
+#       component name and logfile location. Can be used in future for
+#       logs located elsewhere etc.
+##########################################################################
+sub getBUILDResults {
+    
+    my $iComponent;
+    my $iErrors;
+    my $iErrorLink;
+    my $iWarnings;
+    my $iWarningLink;
+	my $iAdvisoryNotes;
+	my $iAdvisoryNotesLink;
+    my $iRemarks;
+    
+    my @components;
+    open (BUILDLOGFILE, $iBUILDLogFileLocation) ||setHandleErrors($_[0]);
+    my @iBUILDLog = <BUILDLOGFILE>;
+    
+    foreach (@iBUILDLog) {
+        
+        if (m/(Component_)(.*)(\s[0-9]{0,2}:[0-9]{0,2}:[0-9]{0,2}\.?[0-9]{0,3}?)\s([0-9]*)\s([0-9]*)\s([0-9]*)\s([0-9]*)\s([0-9]*)/) {
+             
+            if (($4 != 0) || ($5 !=0) || ($6 != 0)) {
+                
+                $iComponent = $2;
+                $iErrors    = $4;
+                $iWarnings  = $5;
+                $iAdvisoryNotes = $6;
+                $iRemarks   = $7;   # currently we ignore remarks from components.
+                               # now extract the URL for each warning. At the moment, this is a relative link
+                # MUST make it absolute, to avoid problems
+                
+                my @componentdetails = ($iComponent, $iErrors, $iErrorLink, $iWarnings, $iWarningLink, $iAdvisoryNotes, $iAdvisoryNotesLink);
+                push @components, \@componentdetails;
+            }
+        }
+    }
+    
+    # return array of refs to arrays
+    return @components;
+}
+
+##########################################################################
+#
+# Name    :  getCBRResults()
+# Synopsis:  To parse a logfile, and output results
+#            into a common data format for processing
+#
+# Inputs  :  None
+# Outputs : Array of refs to arrays containing 5 scalars. The structure
+#           is then used by the  printResultRow() to display
+#
+#  1    <array 'container'>
+#         |
+#  0-n    <array ref>
+#            |
+#            -- <scalar[0]>  component name
+#            -- <scalar[1]>  number of errors
+#            -- <scalar[2]>  link to errors
+#            -- <scalar[3]>  number of warnings
+#            -- <scalar[4]>  link to warnings
+#            -- <scalar[5]>  number of advisorynotes
+#            -- <scalar[6]>  link to advisorynotes
+#
+# Note: Links are currently not used, but instead constructed from the
+#       component name and logfile location. Can be used in future for
+#       logs located elsewhere etc.
+##########################################################################
+sub getCBRResults {
+    
+    my $iComponent;
+    my $iErrors;
+    my $iErrorLink;
+    my $iWarnings;
+    my $iWarningLink;
+	my $iAdvisoryNotes;
+	my $iAdvisoryNotesLink;
+    my $iRemarks;
+    
+    my @components;
+    open (CBRLOGFILE, $iCBRLogFileLocation) || setHandleErrors($_[0]);
+
+    my @iCBRLog = <CBRLOGFILE>;
+    
+    foreach (@iCBRLog) {
+        
+        if (m/(Overall_Total\s)([0-9]{0,2}:[0-9]{0,2}:[0-9]{0,2})\s([0-9]*)\s([0-9]*)\s([0-9]*)\s([0-9]*)\s([0-9]*)/) {
+            if (($3 != 0) || ($4 !=0) || ($5 != 0)) {
+                                
+                $iComponent = "Total";
+                $iErrors    = $3;
+                $iWarnings  = $4;
+                $iAdvisoryNotes = $5;
+                $iRemarks   = $6;   # currently we ignore remarks from components.
+                
+                # now extract the URL for each warning. At the moment, this is a relative link
+                # MUST make it absolute, to avoid problems
+                
+                my @componentdetails = ($iComponent, $iErrors, $iErrorLink, $iWarnings, $iWarningLink, $iAdvisoryNotes, $iAdvisoryNotesLink);
+                push @components, \@componentdetails;
+            }
+        }
+    }
+    
+    # return array of refs to arrays
+    return @components;
+}
+
+##########################################################################
+#
+# Name    :  getROMResults()
+# Synopsis:  To parse a text logfile, and output results
+#            into a common data format for processing
+#
+# Inputs  :  None
+# Outputs : Array of refs to arrays containing 5 scalars. The structure
+#           is then used by the  printResultRow() to display
+#
+#  1    <array 'container'>
+#         |
+#  0-n    <array ref>
+#            |
+#            -- <scalar[0]>  component name
+#            -- <scalar[1]>  number of errors
+#            -- <scalar[2]>  link to errors
+#            -- <scalar[3]>  number of warnings
+#            -- <scalar[4]>  link to warnings
+#            -- <scalar[5]>  number of advisorynotes
+#            -- <scalar[6]>  link to advisorynotes
+#
+##########################################################################
+sub getROMResults {
+    
+    my $iComponent;
+    my $iErrors;
+    my $iErrorLink;
+    my $iWarnings;
+    my $iWarningLink;
+	my $iAdvisoryNotes;
+	my $iAdvisoryNotesLink;
+    my $iRemarks;
+    my @components;
+    open (ROMLOGFILE, $iROMLogFileLocation) || setHandleErrors($_[0]);
+
+    my @iROMLog = <ROMLOGFILE>;
+    
+    # special kludge to deal with multi-line errors from ROMBUILD!
+    #
+    my $i = 0;
+    my @iSingleLineErrors;
+    
+    foreach (@iROMLog) {
+        ++$i;
+        if ((m/ERROR: Can't build dependence graph for/) ||
+            (m/ERROR: Can't resolve dll ref table for/)) {
+        
+            # read 4 lines for the single error
+            my $iErr = $_ . $iROMLog[$i].$iROMLog[$i+1].$iROMLog[$i+2].$iROMLog[$i+3];
+            $iErr =~ s/\t|\n/ /g; # replace tabs and newlines with a space
+
+            # remove multi-line error, so that we dont process it twice
+            $iROMLog[$i-1] = "";
+            $iROMLog[$i]   = "";
+            $iROMLog[$i+1] = "";
+            $iROMLog[$i+2] = "";
+            $iROMLog[$i+3] = "";
+            
+            push @iSingleLineErrors, $iErr;
+        }
+    }
+    
+    # now merge two arrays before processing
+    push (@iROMLog, @iSingleLineErrors);
+    
+    
+    # identify unique lines in log, as errors
+    # are repeated for each ROM built
+    my %iSeenLines = ();
+    foreach my $iUniqueItem (@iROMLog) {
+        $iSeenLines{$iUniqueItem}++;
+    }
+    my @iUniqueLogList = keys %iSeenLines;
+    
+    foreach (@iUniqueLogList) {
+	if((m/WARNING: Sorting Rom Exception Table/) ||
+           (m/WARNING: DEMAND PAGING ROMS ARE A PROTOTYPE FEATURE ONLY/)) {
+           my @componentdetails = ($_, "", $iErrorLink, "", $iWarningLink);
+           push @components, \@componentdetails;
+        } elsif ((m/Missing/) || (m/Invalid Resource name/) || (m/warning:/) || (m/WARNING:/)) {
+           my @componentdetails = ($_, "", $iErrorLink, "1", $iWarningLink);
+                        
+            push @components, \@componentdetails;   
+        }
+        
+        if ((m/ERROR: Can't build dependence graph for/) ||
+            (m/ERROR: Can't resolve dll ref table for/) ||
+            (m/cpp failed/i) ||
+            (m/cannot find oby file/i) ||
+            (m/no such file or directory/i)) {
+            
+            my @componentdetails = ($_, "1", $iErrorLink, "", $iWarningLink);
+            push @components, \@componentdetails;   
+        } elsif (m/ERROR/) {
+            my @componentdetails = ($_, "1", $iErrorLink, "", $iWarningLink);
+            push @components, \@componentdetails;   
+        }
+    }   
+    
+    return @components;
+}
+
+##########################################################################
+#
+# Name    :  getCDBResults()
+# Synopsis:  To parse a logfile, and output results
+#            into a common data format for processing
+#
+# Inputs  :  None
+# Outputs : Array of refs to arrays containing 5 scalars. The structure
+#           is then used by the  printResultRow() to display
+#
+#  1    <array 'container'>
+#         |
+#  0-n    <array ref>
+#            |
+#            -- <scalar[0]>  component name
+#            -- <scalar[1]>  number of errors
+#            -- <scalar[2]>  link to errors
+#            -- <scalar[3]>  number of warnings
+#            -- <scalar[4]>  link to warnings
+#            -- <scalar[5]>  number of advisorynotes
+#            -- <scalar[6]>  link to advisorynotes
+#
+# Note: Links are currently not used, but instead constructed from the
+#       component name and logfile location. Can be used in future for
+#       logs located elsewhere etc.
+##########################################################################
+sub getCDBResults {
+   
+
+    my $iComponent;
+    my $iErrors;
+    my $iErrorLink;
+    my $iWarnings;
+    my $iWarningLink;
+	my $iAdvisoryNotes;
+	my $iAdvisoryNotesLink;
+    my $iRemarks;
+    my @components;
+ 
+    open (CDBLOGFILE, $iCDBLogFileLocation) || setHandleErrors($_[0]);
+    
+    my @iCDBLog = <CDBLOGFILE>;
+    
+    foreach (@iCDBLog) {
+        
+        if (m/(Component_)(.*)(\s[0-9]{0,2}:[0-9]{0,2}:[0-9]{0,2}\.?[0-9]{0,3})\s([0-9]*)\s([0-9]*)\s([0-9]*)\s([0-9]*)\s([0-9]*)/) 	    {
+            if (($4 != 0) || ($5 !=0) || ($6 != 0)) {
+                
+                $iComponent = $2;
+                $iErrors    = $4;
+                $iWarnings  = $5;
+				$iAdvisoryNotes = $6;
+                $iRemarks   = $7;   # currently we ignore remarks from components.
+                
+                # now extract the URL for each warning. At the moment, this is a relative link
+                # MUST make it absolute, to avoid problems
+                my @componentdetails = ($iComponent, $iErrors, $iErrorLink, $iWarnings, $iWarningLink, $iAdvisoryNotes, $iAdvisoryNotesLink);
+                push @components, \@componentdetails;
+				
+            }
+			}			
+		}
+	
+	# return array of refs to arrays
+    return @components;
+}
+
+##########################################################################
+#
+# Name    :  getResults()
+# Synopsis:  Factory like function to return an associated data structure
+#            depending on the type requested. i.e. GT, TV etc.
+#  
+# Inputs  :  Scalar containing the log/type required
+# Outputs :  The output of getXXXResults() functions.
+#
+#  1    <array 'container'>
+#         |
+#  0-n    <array ref>
+#            |
+#            -- <scalar[0]>  component name
+#            -- <scalar[1]>  number of errors
+#            -- <scalar[2]>  link to errors
+#            -- <scalar[3]>  number of warnings
+#            -- <scalar[4]>  link to warnings
+#            -- <scalar[5]>  number of advisorynotes
+#            -- <scalar[6]>  link to advisorynotes
+#
+##########################################################################
+sub getResults {
+    
+    if ($_[0] eq "GT") {
+        return getGTResults($_[0]); }
+    
+    if ($_[0] eq "TV") {
+        return getTVResults($_[0]); }
+    
+    if ($_[0] eq "BUILD") {
+        return getBUILDResults($_[0]); }
+    
+    if ($_[0] eq "CBR") {
+        return getCBRResults($_[0]); }
+   
+    if ($_[0] eq "ROM") {
+        return getROMResults($_[0]); }
+    
+    if ($_[0] eq "CDB") {
+        return getCDBResults($_[0]); }
+
+}
+
+##########################################################################
+#
+# Name    :  getLogFileLocation()
+# Synopsis:  Accessor like function, to return the expected log file
+#            location that is initialised in GenResult::main()
+#
+# Inputs  :  Scalar containing the log/type required
+# Outputs : Scalar containing the log location
+#
+##########################################################################
+sub getLogFileLocation {
+    
+    if ($_[0] eq "GT") {
+        return setBrowserFriendlyLinks($iLinkPathLocation.$iGTFileName); }
+    
+    if ($_[0] eq "TV") {
+        if($_->[0]=~ /systemtest/i) {
+              return setBrowserFriendlyLinks($iLinkPathLocation.$iTVEBSFileName);}
+        else {   
+        return setBrowserFriendlyLinks($iLinkPathLocation.$iTVFileName); }
+        }
+    
+    if ($_[0] eq "BUILD") {
+        return setBrowserFriendlyLinks($iLinkPathLocation.$iBUILDFileName); }
+    
+    if ($_[0] eq "CBR") {
+        return setBrowserFriendlyLinks($iLinkPathLocation.$iCBRFileName); }
+        
+    if ($_[0] eq "ROM") {
+        return $iLinkPathLocation.$iROMFileName; }
+
+    if ($_[0] eq "CDB") {
+        return setBrowserFriendlyLinks($iLinkPathLocation.$iCDBFileName); }
+		
+}
+
+##########################################################################
+#
+# Name    :  getAnchorType()
+# Synopsis:  Helper function, to return the HTML scanlog anchor for
+#            a desired log type.
+#
+# Inputs  :  Scalar containing the log/type required
+# Outputs :  Scalar containing the HTML anchor 
+#
+##########################################################################
+sub getAnchorType {
+    
+    if ($_[0] eq "GT") {
+        return "Component"; }
+    
+    if ($_[0] eq "TV") {
+        return "Component"; }
+    
+    if ($_[0] eq "BUILD") {
+        return "Component"; }
+    
+    if ($_[0] eq "CBR") {
+        return "Overall"; }
+        
+    if ($_[0] eq "CDB") {
+        return "Overall"; }
+
+}
+
+##########################################################################
+#
+# Name    :  isHTMLFile()
+# Synopsis:  Identifies which log files should be processed as HTML
+#
+# Inputs  :  Scalar containing the log/type required
+# Outputs :  "1" if the requested log is HTML
+#
+##########################################################################
+sub isHTMLFile {
+    
+    if ($_[0] eq "GT" || $_[0] eq "TV" || $_[0] eq "BUILD" || $_[0] eq "CBR"  || $_[0] eq "CDB") {
+        return "1"; }
+}
+
+##########################################################################
+#
+# Name    :  isTestBuild()
+# Synopsis:  Identifies if this report is being generated for a test build
+#
+# Inputs  :  Global scalar for linkto location
+# Outputs :  "1" if the build is being published as a testbuild. This will
+#            obviously fail if testbuilds are not correctly published to
+#            \\builds01\devbuilds\test_builds
+#
+##########################################################################
+sub isTestBuild {
+    
+    # somehow, determine if this is a TBuild
+    if (uc($iLinkPathLocation) =~ m/TEST_BUILD/) {
+        return "1";
+    }
+    
+    return "0";
+}
+
+
+##########################################################################
+#
+# Name    :  setBrowserFriendlyLinks()
+# Synopsis:  Re-formats UNC path to file, with a Opera/Fire-Fox friendly
+#            version. Lotus Notes may cause problems though.
+# Inputs  :  UNC Path scalar
+# Outputs :  Scalar
+#
+##########################################################################
+sub setBrowserFriendlyLinks {
+    my ($iOldLink) = @_;
+    
+    $iOldLink =~ s/\\/\//g;  # swap backslashes to fwd slashes
+    return "file:///".$iOldLink;
+}
+
+##########################################################################
+#
+# Name    :  setBrowserFriendlyLinksForIN()
+# Purpose:  Generate Links for Bangalore Site
+# Inputs  :  UNC Path scalar
+# Outputs :  Scalar
+#
+##########################################################################
+
+sub setBrowserFriendlyLinksForIN($ ) {
+    my ($iOldLinkIN) = shift;
+    
+    $iOldLinkIN =~ s/\\/\//g;  # swap backslashes to fwd slashes
+    $iOldLinkIN = "file:///".$iOldLinkIN ;
+    $iOldLinkIN =~ s/builds01/builds04/ ;  # Generate Bangalore Log Location
+    return $iOldLinkIN;
+}
+
+##########################################################################
+#
+# Name    :  setBrowserFriendlyLinksForCN()
+# Purpose:  Generate Links for Beijing Site
+# Inputs  :  UNC Path scalar
+# Outputs :  Scalar
+#
+##########################################################################
+
+sub setBrowserFriendlyLinksForCN($ ) {
+    my ($iOldLinkCN) = shift;
+    
+    $iOldLinkCN =~ s/\\/\//g;  # swap backslashes to fwd slashes
+    $iOldLinkCN = "file:///".$iOldLinkCN ;
+    $iOldLinkCN =~ s/builds01/builds05/ ;  # Generate Beijing Log Location
+    return $iOldLinkCN;
+}
+
+# helper function for formatting
+sub printSubmissionsLink {
+    
+    my ($iSnapshot) = @_;
+    
+    if (isTestBuild() eq "0") {
+        return "[ <a class =\"hoverlink\" href = \"http://lon-engbuild08/bis-cgi/BIS_buildchanges.pl?first=$iSnapshot\"> Submissions</a>  ]";
+    }
+}
+
+# helper function for formatting
+sub printDefectsColumn {
+        
+    if (isTestBuild() eq "0") {    
+        return "<th width=\"15%\"><font color=\"#ffffff\">Defects</font></th>";
+    }
+}
+
+# helper function to notify of any missing logs
+sub setHandleErrors {
+    
+    # set global filenotfound to "0"
+    
+    if ($_[0] eq "GT") {
+        $iGTFileFound    = "0"; }
+    
+    if ($_[0] eq "TV") {
+        $iTVFileFound    = "0"; }
+    
+    if ($_[0] eq "TV") {
+        $iTVEBSFileFound = "0"; }
+    
+    if ($_[0] eq "BUILD") {
+        $iBUILDFileFound = "0"; }
+    
+    if ($_[0] eq "CBR") {
+        $iCBRFileFound   = "0"; }
+        
+    if ($_[0] eq "ROM") {
+        $iROMFileFound   = "0"; }
+    
+    if ($_[0] eq "CDB") {
+        $iCDBFileFound   = "0"; }
+
+}
+
+# accessor function to return the flag for this type
+sub getHandleErrors {
+    
+    if ($_[0] eq "GT") {
+        return $iGTFileFound; }
+    
+    if ($_[0] eq "TV") {
+        return $iTVFileFound; }
+    
+    if ($_[0] eq "TV") {
+        return $iTVEBSFileFound; }
+        
+    if ($_[0] eq "BUILD") {
+        return $iBUILDFileFound; }
+    
+    if ($_[0] eq "CBR") {
+        return $iCBRFileFound; }
+    
+    if ($_[0] eq "ROM") {
+        return $iROMFileFound; }
+
+    if ($_[0] eq "CDB") {
+        return $iCDBFileFound; }
+}
+
+
+##########################################################################
+#
+# Name    :  printResultRow()
+# Synopsis:  Creates each HTML row for the build report. If the log file
+#            being processed is HTML, then HTML links are generated also.
+#            Plain text log files will just include output as specified
+#            in the regexp for associated getXXXResults() functions.
+#
+# Inputs  :  Scalar containing the log/type required
+# Outputs :  Scalar containing HTML row string to be inserted into
+#            the build report
+##########################################################################
+sub printResultRow {
+    
+    my ($iLogFile, $iStage, $iStagesFromFile) = @_;
+    my $iResultRowHolder;
+    my $iResultRow;
+    
+    # The hash holds values of the stages as array which are completed in the report.html file 
+    # so that older values in report.html file can be preserved.
+    my %iStagesFromFileInHash = %{$iStagesFromFile} if defined ($iStagesFromFile);
+    
+    # get result        
+    my $iCount = "0";
+        $iResultRowHolder =
+         "\n
+          <tr>
+            <th bgcolor=\"#006699\" width =\"5%\" align =\"left\"> <font color=\"#ffffff\">$iLogFile</font></th>
+            <td width=\"15%\" align = \"left\">";
+    
+    # prints the build results extracted from old report.html file.
+    # Below code looks into the hash for stages whose results(Errors) are already calculated, and proceeds 
+    # computing results for next $iStage in xml file. 
+    if (defined ($iStagesFromFile) and defined ($iStagesFromFileInHash{$iLogFile})) {
+	$iResultRowHolder = $iResultRowHolder . ${$iStagesFromFileInHash{$iLogFile}}[0];
+    }elsif (!getHandleErrors($iLogFile) or "$iLogFile" ne "$iStage") {
+        $iResultRowHolder = $iResultRowHolder . "Stage not completed";
+    }else {    
+    	foreach (getResults($iLogFile)) {
+        undef $iResultRow;
+        if ($_->[1] != "0") {
+            if (isHTMLFile($iLogFile)) {
+                $iResultRow = "<a class =\"hoverlink\" href =\"" .
+                               getLogFileLocation($iLogFile,$_->[0])     .
+                               "#errorsBy"                       .
+                               getAnchorType($iLogFile)          .
+                               "_$_->[0]\">$_->[0]\ ($_->[1]\) <br></a>";
+            }
+            else {
+                $iResultRow = "<li>". $_->[0];
+		chomp $iResultRow;
+            }
+            ++$iCount;
+        }
+         
+         $iResultRowHolder = $iResultRowHolder . $iResultRow;
+        }
+         # zero errors, means 'None' is displayed
+         if ($iCount == "0"){
+            $iResultRowHolder = $iResultRowHolder . "None";
+	}
+    } 
+         
+    $iResultRowHolder = $iResultRowHolder . "</td>\n<td width=\"15%\" align = \"left\">";
+         
+    $iCount = "0";
+    # print build results extracted from old report.html file.
+    # Below code looks into the hash for stages whose results(Warnings) are already calculated, and proceeds 
+    # computing results for next $iStage in xml file.
+    if (defined ($iStagesFromFile) and defined ($iStagesFromFileInHash{$iLogFile})) {
+	    $iResultRowHolder = $iResultRowHolder . ${$iStagesFromFileInHash{$iLogFile}}[1];
+    }elsif (!getHandleErrors($iLogFile) || "$iLogFile" ne "$iStage") { 
+            $iResultRowHolder = $iResultRowHolder . "Stage not completed";
+    }else {
+        foreach (getResults($iLogFile)) {
+        undef $iResultRow;         
+        if ($_->[3] != "0") {
+            if (isHTMLFile($iLogFile)) {
+                $iResultRow = "<a class =\"hoverlink\" href =\"" .
+                               getLogFileLocation($iLogFile)     .
+                               "#warningsBy"                     .
+                               getAnchorType($iLogFile)          .
+                               "_$_->[0]\">$_->[0]\ ($_->[3]\) <br></a>";
+            }
+            else {
+                $iResultRow = "<li>".$_->[0];
+		chomp $iResultRow;
+            }
+            ++$iCount;
+        }
+
+
+        $iResultRowHolder = $iResultRowHolder . $iResultRow;
+        }
+        
+        # zero warnings, means 'None' is displayed
+        if ($iCount == "0"){
+            $iResultRowHolder = $iResultRowHolder . "None";
+        }
+    }
+
+	$iResultRowHolder = $iResultRowHolder . "</td>\n<td width=\"15%\" align = \"left\">";
+         
+    $iCount = "0";
+    # print build results extracted from old report.html file.
+    # Below code looks into the hash for stages whose results(AdvisoryNotes) are already calculated, and proceeds 
+    # computing results for next $iStage in xml file.
+    if (defined ($iStagesFromFile) and defined ($iStagesFromFileInHash{$iLogFile})) {
+	    $iResultRowHolder = $iResultRowHolder . ${$iStagesFromFileInHash{$iLogFile}}[2];
+    }elsif (!getHandleErrors($iLogFile) || "$iLogFile" ne "$iStage") { 
+            $iResultRowHolder = $iResultRowHolder . "Stage not completed";
+    }else {
+        foreach (getResults($iLogFile)) {
+        undef $iResultRow;         
+        if ($_->[5] != "0") {
+            if (isHTMLFile($iLogFile)) {
+                $iResultRow = "<a class =\"hoverlink\" href =\"" .
+                               getLogFileLocation($iLogFile)     .
+                               "#AdvisoryNotesBy"                     .
+                               getAnchorType($iLogFile)          .
+                               "_$_->[0]\">$_->[0]\ ($_->[5]\) <br></a>";
+            }
+            else {
+                $iResultRow = "<li>".$_->[0];
+		chomp $iResultRow;
+            }
+            ++$iCount;
+			$iBraggflag = 1;
+        }
+        
+        $iResultRowHolder = $iResultRowHolder . $iResultRow;
+        }
+        
+        # zero warnings, means 'None' is displayed
+        if ($iCount == "0"){
+            $iResultRowHolder = $iResultRowHolder . "None";
+        }
+    }
+    $iResultRowHolder = $iResultRowHolder . "</td>\n<td>&nbsp;</td> \n</tr>\n";
+
+    return $iResultRowHolder;    
+}
+##########################################################################
+#
+# Name    :  extractOldResults()
+# Synopsis:  Extracts the old results of different stages which are already generated
+# Inputs  :  Filename of report.html along with complete path 
+# Outputs :  Returns a reference to hash whose keys are stages and values are values from html file.
+##########################################################################
+sub extractOldResults	{
+	my $iFileName = shift @_;
+	my $iFlag = 0;
+	my @lines;
+	my %iStages;
+	
+	open FILE, "$iFileName" or die "Can't open $iFileName: $!\n";
+	@lines = <FILE>;
+	close FILE;
+	
+	my $iStagesToFetch = $iBuildStages;
+	my $iCurrentStage = '';
+	my @iStageValues = ();
+
+	foreach (@lines )	{
+		if ($iFlag == 1 and /<\/tr>/i)	{
+			my $iCurrentStageValues = "@iStageValues";
+			$iStages{$iCurrentStage} = [@iStageValues] if ($iCurrentStageValues !~ /(Stage not completed *){2}/);
+			$iFlag = 0;
+		}
+		
+		if ($iFlag == 1)	{
+			push (@iStageValues, $1) if (/left">(.+?)<\/td>/);
+		}
+		
+		if (/>($iStagesToFetch)</)	{
+			@iStageValues = ();
+			$iFlag = 1;
+			$iCurrentStage = $1;
+		}
+	}
+	return \%iStages;
+}
+
+##########################################################################
+#
+# Name    :  generateHTMLSummary()
+# Synopsis:  Creates an HTML report for the specified build.
+# Inputs  :  Scalar containing the build snapshot and product type
+# Outputs :  HTML report, published in current working dir
+##########################################################################
+sub generateHTMLSummary {
+    
+    my ($iDir, $iSnapshot, $iProduct, $iLinkPath, $iStage, $iBrag, $imail) = @_;
+
+    #Get Brag Status of Build and generate PostBuild results
+    my $iPostBuildResult;
+    if (defined($iBrag) and "$iBrag" eq "FINAL") {
+	$iBrag = &BragStatus::main($iDir, $iSnapshot, $iProduct, $iLinkPath);
+    $iPostBuildResult=&GenPostBuildResult::generatesPostBuildSummary($iLogsPublishLocation, $iLinkPathLocation, $iProduct, $iSnapshot, $imail);
+    } else {
+	$iBrag = "TBA";
+    }
+    # change to roms\techview dir for roms link
+    my $iROMLocation = $iLogsPublishLocation;
+    $iROMLocation =~s/logs/roms\\techview/g;
+          
+    # check to see of the report.html already exists to extract previous results
+    my ($iStagesFromFile);
+    my $iReportFileNameWithPath = "$iSnapshot"."_"."$iProduct"."_report.html";
+    if (-f $iReportFileNameWithPath) {
+	    $iStagesFromFile = extractOldResults($iReportFileNameWithPath) ;
+	    print "Updating ".$iSnapshot."_".$iProduct."_report.html\n ";
+    } else {
+	print "Creating ".$iSnapshot."_".$iProduct."_report.html\n "
+    }
+    open (SUMMARY, "+> $iSnapshot"."_"."$iProduct"."_report.html") or die "ERROR:Can't open file : $!";
+
+    # Build the final result string before generating report.html file.
+    # Builds ResultString based on command line input.  
+    # All => Generates results for all the stages
+    
+    my $printResult = "";
+    my $iResultString = "";
+    foreach my $iType (split /\|/, $iBuildStages) {
+	    if ("$iStage" eq "ALL"){
+		$iResultString = printResultRow($iType, $iType, $iStagesFromFile);
+	    }
+	    else{
+		$iResultString = printResultRow($iType, $iStage, $iStagesFromFile);
+	    }# pass iStage here & iStagesFromFile.
+	    $printResult = $printResult . $iResultString;
+    }
+    #Calculate the new external status BRAGG(Black Red Amber Green Gold)
+	my $iBragg;
+	if("$iBrag" eq "Green" && $iBraggflag eq 0)
+	{
+    $iBragg = "Gold";
+	} else {
+    $iBragg = $iBrag;
+	}
+    my $html_start = "\n
+                    <HTML>
+                    <HEAD>" .
+                    $gStyleSheet .
+                    "<TITLE>" . "$iSnapshot "."$iProduct ". "Build Report</TITLE>
+                    
+                    <BODY BGCOLOR=\"FFFFFF\">
+                    </HEAD>
+                    <BODY>
+                    <TABLE width=\"100%\" border =\"1\" cellpadding=\"0\">
+                    <TR><TD bgcolor=\"#006699\"><font color=\"#FFFFFF\"><font size=\"5\">
+                    <B>" . "$iSnapshot "."$iProduct ". "Build Report "."</B>
+                    <br><i><b><font size=\"3\">Build Status  : $iBrag </font></b></i>
+                    <br><i><b><font size=\"3\">BRAGG  : $iBragg </font></b></i>
+                    <br><i><font size=\"3\">Released By : </font></i>
+                    <br><i><font size=\"3\">Reason : </font></i>
+                    </TD></TR>
+                    </TABLE>
+                    
+                    <font size=\"2\"><p>
+                        [ <a class =\"hoverlink\" href = \"http://web.intra/Softeng/SwE/prodintegbuild/integration/System_Build/BuildResults.html\"> Help</a>  ]
+                        [ Logs <a class =\"hoverlink\" href = \"" . setBrowserFriendlyLinks($iLinkPathLocation)."\"> UK </a>  <a class =\"hoverlink\" href = \"" . setBrowserFriendlyLinksForCN($iLinkPath )."\"> CN </a>   <a class =\"hoverlink\" href = \"" . setBrowserFriendlyLinksForIN($iLinkPath )."\"> IN </a> ]
+                        [ <a class =\"hoverlink\" href = \"http://web.intra/Softeng/SwE/prodintegbuild/integration/docs/guides/CBR_Archive_Guide.html\"> CBR Setup</a>  ] 
+                        ".
+                                        
+                        "</p>
+                        <br> <i>Results Generated On ".localtime()."</i>
+                    </font><br><br>".
+
+                    "<br><table border=\"1\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\" align=\"top\">
+                    <tr bgcolor=\"#006699\" align=\"top\"><th colspan=5><font color=\"#ffffff\">Build Results</font></th></tr>
+                      <tr bgcolor=\"#006699\" align=\"top\">
+                          <th width=\"10%\"></th>
+                          <th width=\"15%\"><font color=\"#ffffff\">Errors</font></th>
+                          <th width=\"15%\"><font color=\"#ffffff\">Warnings</font></th>
+						  <th width=\"15%\"><font color=\"#ffffff\">Advisorynotes</font></th>" .
+                          printDefectsColumn() .
+                      "</tr>" .
+                   
+                        $printResult.
+ 				 
+			    "</table><br>"
+  
+                   .&GenAutoSmokeTestResult::generateSTHTMLSummary($iLogsPublishLocation."AutoSmokeTest", $iSnapshot, $iProduct, $iLinkPathLocation."AutoSmokeTest").
+		      
+		       $iPostBuildResult.
+		       
+                      "</BODY>
+                      </html>
+                      ";
+                      
+                      
+    print SUMMARY $html_start;
+    
+    close SUMMARY;
+}
+
+
+
+# Entry point into the GenResult module
+sub main
+{
+    my ($iDir, $iSnapshot, $iProduct, $iLinkPath, $iStage, $iBrag, $imail) = @_;
+    
+    # set file names, so that they can be accessed globally
+    $iGTFileName    = "GT.summary.html";
+    $iTVFileName    = "TV.summary.html";
+    $iTVEBSFileName = "TV.EBS.summary.html";
+    $iBUILDFileName = "$iSnapshot"."_Symbian_OS_v"."$iProduct".".summary.html";
+    $iCBRFileName   = "$iSnapshot"."_Symbian_OS_v"."$iProduct"."_cbr.summary.html";
+    $iCDBFileName   = "$iSnapshot"."_Symbian_OS_v"."$iProduct"."_cdb.summary.html";
+    $iROMFileName   = "techviewroms"."$iSnapshot"."_Symbian_OS_v"."$iProduct". ".log";
+	
+    
+    
+    $iDir =~  s/[^\\]$/$&\\/; #add trailing backslash, if missing
+    $iLogsPublishLocation  = $iDir;
+    
+
+    if (-e $iLinkPath) {
+        $iLinkPathLocation = $iLinkPath;
+    } else {
+        # if no link path is specified, then use current directory location
+        #print "WARNING:" .$iLinkPath. " does not exist, linking with relative paths\n";
+        $iLinkPathLocation = $iLogsPublishLocation;
+    }
+    
+    if (-e $iLogsPublishLocation) {
+        
+        $iGTLogFileLocation      = $iLogsPublishLocation.$iGTFileName;
+        $iTVLogFileLocation      = $iLogsPublishLocation.$iTVFileName;
+        $iTVEBSLogFileLocation   = $iLogsPublishLocation. $iTVEBSFileName;
+        $iBUILDLogFileLocation   = $iLogsPublishLocation.$iBUILDFileName;
+        $iCBRLogFileLocation     = $iLogsPublishLocation.$iCBRFileName;
+        $iROMLogFileLocation     = $iLogsPublishLocation.$iROMFileName;
+        $iCDBLogFileLocation     = $iLogsPublishLocation.$iCDBFileName;
+		
+        
+
+        &generateHTMLSummary($iDir, $iSnapshot, $iProduct, $iLinkPath, $iStage, $iBrag, $imail);
+        
+    }
+    else {
+        die "ERROR: Report not created: $! \n";
+    }
+}
+1;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/GenResult/Product_AutoSmoketest.cfg	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,8 @@
+9.2 = EMULATOR_WINSCW ARMV5_H4HRP ARMV5_H4HRP_NAND
+9.3 = EMULATOR_WINSCW ARMV5_H4HRP ARMV5_H4HRP_NAND ARMV5_H4HRP_NAND(DP)
+9.4 = EMULATOR_WINSCW ARMV5_H4HRP_NAND(DP)
+9.5 = EMULATOR_WINSCW ARMV5_H4HRP_NAND(DP)
+tb91sf = EMULATOR_WINSCW ARMV5_H4HRP_NAND(DP) 
+tb92sf = EMULATOR_WINSCW ARMV5_H4HRP_NAND(DP) ARMV5_H6_NAND ARMV5_NE1 ARMV5_NE1S
+tb101sf = EMULATOR_WINSCW ARMV5_H4HRP_NAND(DP) ARMV5_H6_NAND ARMV5_NE1 ARMV5_NE1S
+Future = EMULATOR_WINSCW ARMV5_H4HRP_NAND(DP) ARMV5_H6_NAND ARMV5_NE1 ARMV5_NE1S
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/GenResult/ZipDiamondsXml.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,37 @@
+# Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Script that will zip the XMLs generated
+#
+package ZipDiamondsXml;
+use Archive::Zip qw( :ERROR_CODES :CONSTANTS );
+use strict;
+
+my $ZipFile = "DiamondsXmls.zip";
+my $tempZipFile = "DiamondsXmls.zip.new";
+&main("");
+sub main
+{
+  my $FileToAdd = shift;
+  $FileToAdd =~ /([^\\\/]*?)$/;
+  my $FileName = $1;
+  my $zip = Archive::Zip->new();
+  if (-e $ZipFile)
+  {
+    die 'Zip read error' if $zip->read($ZipFile) != AZ_OK;
+  }
+  my $member = $zip->addFile($FileToAdd,$FileName);
+  die 'Zip write error' if $zip->writeToFileNamed($tempZipFile) != AZ_OK;
+  unlink($ZipFile);
+  rename($tempZipFile,$ZipFile);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/GenResult/build.tmpl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,28 @@
+[@--# Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Template processed by GenDiamondsXml.pm
+# 
+#--@]
+<?xml version="1.0" encoding="utf-8"?>
+<diamonds-build>
+  <schema>[@--$ENV{DiamondsSchemaNum}--@]</schema>
+  <build>
+    <processor_count>[@--$ENV{NUMBER_OF_PROCESSORS}--@]</processor_count>
+    <category>[@--$ENV{BuildBaseName}--@]</category>
+    <creator>[@--$ENV{USERNAME}--@]</creator>
+    <started>[@--use myutils; &myutils::getTime();--@]</started>
+    <hostname>[@--$ENV{COMPUTERNAME}--@]</hostname>
+    <name>[@--$ENV{BuildNumber}--@]</name>
+  </build>
+</diamonds-build>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/GenResult/content.tmpl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,42 @@
+[@--# Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Template processed by GenDiamondsXml.pm
+# 
+#--@]
+<?xml version="1.0" encoding="utf-8"?>
+<diamonds-build>
+  <schema>[@--$ENV{DiamondsSchemaNum}--@]</schema>
+  <content>
+    <project>
+      <name>[@--$ENV{Product}--@]</name>
+      <baseline>[@--$ENV{BaseBuildNumber}--@]</baseline>
+      [@--
+      use Changelists;
+      my $CLInfoHash = &Changelists::main();
+      foreach my $key (keys %$CLInfoHash)
+      {
+        $$CLInfoHash{$key}{'sub_time'} =~ s/\//-/g;
+        $$CLInfoHash{$key}{'sub_time'} =~ s/ GMT//;
+        $$CLInfoHash{$key}{'sub_time'} =~ s/\s/T/;
+        $OUT .= "
+        <task>
+          <id>$key#$$CLInfoHash{$key}{'submitter'}#$$CLInfoHash{$key}{'team'}</id>
+          <synopsis>$$CLInfoHash{$key}{'desc'}</synopsis>
+          <completed>$$CLInfoHash{$key}{'sub_time'}</completed>
+        </task>";
+      }
+      --@]
+    </project>
+  </content>
+</diamonds-build>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/GenResult/diamonds_finish.tmpl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,23 @@
+[@--# Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Template processed by GenDiamondsXml.pm
+# 
+#--@]
+<?xml version="1.0" encoding="utf-8"?>
+<diamonds-build>
+  <schema>[@--$ENV{DiamondsSchemaNum}--@]</schema>
+  <build>
+    <finished>[@--use myutils; &myutils::getTime();--@]</finished>
+  </build>
+</diamonds-build>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/GenResult/faults.tmpl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,85 @@
+[@--# Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Template processed by GenDiamondsXml.pm
+# 
+#--@]
+<?xml version="1.0" encoding="utf-8"?>
+<diamonds-build>
+  <schema>[@--$ENV{DiamondsSchemaNum}--@]</schema>
+  [@--
+  use myutils;
+  use FaultsData;
+  my $iDir = &myutils::getiDir();
+  my $iSnapshot = &myutils::getiSnapshot();
+  my $iProduct = &myutils::getiProduct();
+  my $iLinkPath = &myutils::getiLinkPath();
+  my ($errorCount,$warningCount,$AdvNotesCount) = (0,0,0);
+  my @temp = FaultsData::stageSummary($iDir, $iSnapshot, $iProduct, $iLinkPath, $iStage);
+  my @tempArr;
+  if( -e "faultCount")
+  {
+    open(FAULTCOUNT,"<faultCount") or warn "FAULTCOUNT:$!";
+    @tempArr = <FAULTCOUNT>;
+    close(FAULTCOUNT);
+	$errorCount = trim ($tempArr[0]);
+	$warningCount = trim ($tempArr[1]);
+	$AdvNotesCount = trim ($tempArr[2]);	
+  }
+  else
+  {
+    @tempArr = (0,0,0);
+  }
+  
+  $OUT .= "<faults>";
+  if ($temp[0][0])
+  {
+    foreach my $t (@temp)
+    {
+      $OUT .=
+        "
+          <component>
+          <name>@$t[0]#$iStage</name>
+        ";
+      if (@$t[1]) {$OUT .= "  <total severity=\"error\">@$t[1]</total>\n";}
+      if (@$t[3]) {$OUT .= "  <total severity=\"warning\">@$t[3]</total>\n";}
+      if (@$t[5]) {$OUT .= "  <total severity=\"advisory_notes\">@$t[5]</total>\n";}
+      $OUT .= "          </component>\n";
+   
+      $errorCount = @$t[1] + $errorCount;
+      $warningCount = @$t[3] + $warningCount;
+      $AdvNotesCount = @$t[5] + $AdvNotesCount;
+    }  
+  }
+  $OUT .= "  <total severity=\"error\">$errorCount</total>\n";
+  $OUT .= "  <total severity=\"warning\">$warningCount</total>\n";
+  $OUT .= "  <total severity=\"advisory_notes\">$AdvNotesCount</total>\n";
+  $OUT .= "  </faults>";
+  
+	#save the error numbers until now
+    open(FAULTCOUNT,">faultCount") or warn "FAULTCOUNT:$!";
+    print FAULTCOUNT "$errorCount\n";
+    print FAULTCOUNT "$warningCount\n";
+    print FAULTCOUNT "$AdvNotesCount\n";
+	close (FAULTCOUNT);
+
+sub trim
+{
+        my $string = shift;
+        $string =~ s/^\s+//;
+        $string =~ s/\s+$//;
+        return $string;
+}
+  --@]
+</diamonds-build>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/GenResult/files.tmpl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,64 @@
+[@--# Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Template processed by GenDiamondsXml.pm
+# 
+#--@]
+<?xml version="1.0" encoding="utf-8"?>
+<diamonds-build>
+  <schema>[@--$ENV{DiamondsSchemaNum}--@]</schema>
+	[@--
+	my $Path = "";
+	if($ENV{BuildSubType} eq "Daily")
+	{
+			$Path = 'file://///builds01/devbuilds/'.$ENV{Type}.'/logs/'."$ENV{BuildNumber}";
+	}
+	elsif($ENV{BuildSubType} eq "Test")
+	{
+			$Path = 'file://///builds01/devbuilds/'.'Test_builds/'.$ENV{Type}.'/logs/'."$ENV{BuildNumber}";
+	}
+	$OUT .="
+  <files>
+		<file>
+			<name>GT stage summary</name>
+			<url>$Path/GT.summary.html</url>
+			<type>log</type>
+		</file>
+		<file>
+			<name>TV stage summary</name>
+			<url>$Path/TV.summary.html</url>
+			<type>log</type>
+		</file>
+		<file>
+			<name>ROM stage summary</name>
+			<url>$Path\\techviewroms"."$ENV{BuildNumber}.log</url>
+			<type>log</type>
+		</file>
+		<file>
+			<name>CBR stage summary</name>
+			<url>$Path/$ENV{BuildNumber}"."_cbr.summary.html</url>
+			<type>log</type>
+		</file>
+		<file>
+			<name>CDB stage summary</name>
+			<url>$Path/$ENV{BuildNumber}"."_cdb.summary.html</url>
+			<type>log</type>
+		</file>
+		<file>
+			<name>BUILD stage summary</name>
+			<url>$Path/$ENV{BuildNumber}".".summary.html</url>
+			<type>log</type>
+		</file>
+	</files>"; 
+	--@]
+</diamonds-build>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/GenResult/lib/Text/Template.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,1948 @@
+# -*- perl -*-
+# Text::Template.pm
+#
+# Fill in `templates'
+#
+# Copyright 1996, 1997, 1999, 2001, 2002, 2003 M-J. Dominus.
+# You may copy and distribute this program under the
+# same terms as Perl iteself.  
+# If in doubt, write to mjd-perl-template+@plover.com for a license.
+#
+# Version 1.44
+
+package Text::Template;
+require 5.004;
+use Exporter;
+@ISA = qw(Exporter);
+@EXPORT_OK = qw(fill_in_file fill_in_string TTerror);
+use vars '$ERROR';
+use strict;
+
+$Text::Template::VERSION = '1.44';
+my %GLOBAL_PREPEND = ('Text::Template' => '');
+
+sub Version {
+  $Text::Template::VERSION;
+}
+
+sub _param {
+  my $kk;
+  my ($k, %h) = @_;
+  for $kk ($k, "\u$k", "\U$k", "-$k", "-\u$k", "-\U$k") {
+    return $h{$kk} if exists $h{$kk};
+  }
+  return;
+}
+
+sub always_prepend
+{
+  my $pack = shift;
+  my $old = $GLOBAL_PREPEND{$pack};
+  $GLOBAL_PREPEND{$pack} = shift;
+  $old;
+}
+
+{
+  my %LEGAL_TYPE;
+  BEGIN { 
+    %LEGAL_TYPE = map {$_=>1} qw(FILE FILEHANDLE STRING ARRAY);
+  }
+  sub new {
+    my $pack = shift;
+    my %a = @_;
+    my $stype = uc(_param('type', %a)) || 'FILE';
+    my $source = _param('source', %a);
+    my $untaint = _param('untaint', %a);
+    my $prepend = _param('prepend', %a);
+    my $alt_delim = _param('delimiters', %a);
+    my $broken = _param('broken', %a);
+    unless (defined $source) {
+      require Carp;
+      Carp::croak("Usage: $ {pack}::new(TYPE => ..., SOURCE => ...)");
+    }
+    unless ($LEGAL_TYPE{$stype}) {
+      require Carp;
+      Carp::croak("Illegal value `$stype' for TYPE parameter");
+    }
+    my $self = {TYPE => $stype,
+		PREPEND => $prepend,
+                UNTAINT => $untaint,
+                BROKEN => $broken,
+		(defined $alt_delim ? (DELIM => $alt_delim) : ()),
+	       };
+    # Under 5.005_03, if any of $stype, $prepend, $untaint, or $broken
+    # are tainted, all the others become tainted too as a result of
+    # sharing the expression with them.  We install $source separately
+    # to prevent it from acquiring a spurious taint.
+    $self->{SOURCE} = $source;
+
+    bless $self => $pack;
+    return unless $self->_acquire_data;
+    
+    $self;
+  }
+}
+
+# Convert template objects of various types to type STRING,
+# in which the template data is embedded in the object itself.
+sub _acquire_data {
+  my ($self) = @_;
+  my $type = $self->{TYPE};
+  if ($type eq 'STRING') {
+    # nothing necessary    
+  } elsif ($type eq 'FILE') {
+    my $data = _load_text($self->{SOURCE});
+    unless (defined $data) {
+      # _load_text already set $ERROR
+      return undef;
+    }
+    if ($self->{UNTAINT} && _is_clean($self->{SOURCE})) {
+      _unconditionally_untaint($data);
+    }
+    $self->{TYPE} = 'STRING';
+    $self->{FILENAME} = $self->{SOURCE};
+    $self->{SOURCE} = $data;
+  } elsif ($type eq 'ARRAY') {
+    $self->{TYPE} = 'STRING';
+    $self->{SOURCE} = join '', @{$self->{SOURCE}};
+  } elsif ($type eq 'FILEHANDLE') {
+    $self->{TYPE} = 'STRING';
+    local $/;
+    my $fh = $self->{SOURCE};
+    my $data = <$fh>; # Extra assignment avoids bug in Solaris perl5.00[45].
+    if ($self->{UNTAINT}) {
+      _unconditionally_untaint($data);
+    }
+    $self->{SOURCE} = $data;
+  } else {
+    # This should have been caught long ago, so it represents a 
+    # drastic `can't-happen' sort of failure
+    my $pack = ref $self;
+    die "Can only acquire data for $pack objects of subtype STRING, but this is $type; aborting";
+  }
+  $self->{DATA_ACQUIRED} = 1;
+}
+
+sub source {
+  my ($self) = @_;
+  $self->_acquire_data unless $self->{DATA_ACQUIRED};
+  return $self->{SOURCE};
+}
+
+sub set_source_data {
+  my ($self, $newdata) = @_;
+  $self->{SOURCE} = $newdata;
+  $self->{DATA_ACQUIRED} = 1;
+  $self->{TYPE} = 'STRING';
+  1;
+}
+
+sub compile {
+  my $self = shift;
+
+  return 1 if $self->{TYPE} eq 'PREPARSED';
+
+  return undef unless $self->_acquire_data;
+  unless ($self->{TYPE} eq 'STRING') {
+    my $pack = ref $self;
+    # This should have been caught long ago, so it represents a 
+    # drastic `can't-happen' sort of failure
+    die "Can only compile $pack objects of subtype STRING, but this is $self->{TYPE}; aborting";
+  }
+
+  my @tokens;
+  my $delim_pats = shift() || $self->{DELIM};
+
+  
+
+  my ($t_open, $t_close) = ('{', '}');
+  my $DELIM;			# Regex matches a delimiter if $delim_pats
+  if (defined $delim_pats) {
+    ($t_open, $t_close) = @$delim_pats;
+    $DELIM = "(?:(?:\Q$t_open\E)|(?:\Q$t_close\E))";
+    @tokens = split /($DELIM|\n)/, $self->{SOURCE};
+  } else {
+    @tokens = split /(\\\\(?=\\*[{}])|\\[{}]|[{}\n])/, $self->{SOURCE};
+  }
+  my $state = 'TEXT';
+  my $depth = 0;
+  my $lineno = 1;
+  my @content;
+  my $cur_item = '';
+  my $prog_start;
+  while (@tokens) {
+    my $t = shift @tokens;
+    next if $t eq '';
+    if ($t eq $t_open) {	# Brace or other opening delimiter
+      if ($depth == 0) {
+	push @content, [$state, $cur_item, $lineno] if $cur_item ne '';
+	$cur_item = '';
+	$state = 'PROG';
+	$prog_start = $lineno;
+      } else {
+	$cur_item .= $t;
+      }
+      $depth++;
+    } elsif ($t eq $t_close) {	# Brace or other closing delimiter
+      $depth--;
+      if ($depth < 0) {
+	$ERROR = "Unmatched close brace at line $lineno";
+	return undef;
+      } elsif ($depth == 0) {
+	push @content, [$state, $cur_item, $prog_start] if $cur_item ne '';
+	$state = 'TEXT';
+	$cur_item = '';
+      } else {
+	$cur_item .= $t;
+      }
+    } elsif (!$delim_pats && $t eq '\\\\') { # precedes \\\..\\\{ or \\\..\\\}
+      $cur_item .= '\\';
+    } elsif (!$delim_pats && $t =~ /^\\([{}])$/) { # Escaped (literal) brace?
+	$cur_item .= $1;
+    } elsif ($t eq "\n") {	# Newline
+      $lineno++;
+      $cur_item .= $t;
+    } else {			# Anything else
+      $cur_item .= $t;
+    }
+  }
+
+  if ($state eq 'PROG') {
+    $ERROR = "End of data inside program text that began at line $prog_start";
+    return undef;
+  } elsif ($state eq 'TEXT') {
+    push @content, [$state, $cur_item, $lineno] if $cur_item ne '';
+  } else {
+    die "Can't happen error #1";
+  }
+  
+  $self->{TYPE} = 'PREPARSED';
+  $self->{SOURCE} = \@content;
+  1;
+}
+
+sub prepend_text {
+  my ($self) = @_;
+  my $t = $self->{PREPEND};
+  unless (defined $t) {
+    $t = $GLOBAL_PREPEND{ref $self};
+    unless (defined $t) {
+      $t = $GLOBAL_PREPEND{'Text::Template'};
+    }
+  }
+  $self->{PREPEND} = $_[1] if $#_ >= 1;
+  return $t;
+}
+
+sub fill_in {
+  my $fi_self = shift;
+  my %fi_a = @_;
+
+  unless ($fi_self->{TYPE} eq 'PREPARSED') {
+    my $delims = _param('delimiters', %fi_a);
+    my @delim_arg = (defined $delims ? ($delims) : ());
+    $fi_self->compile(@delim_arg)
+      or return undef;
+  }
+
+  my $fi_varhash = _param('hash', %fi_a);
+  my $fi_package = _param('package', %fi_a) ;
+  my $fi_broken  = 
+    _param('broken', %fi_a)  || $fi_self->{BROKEN} || \&_default_broken;
+  my $fi_broken_arg = _param('broken_arg', %fi_a) || [];
+  my $fi_safe = _param('safe', %fi_a);
+  my $fi_ofh = _param('output', %fi_a);
+  my $fi_eval_package;
+  my $fi_scrub_package = 0;
+  my $fi_filename = _param('filename') || $fi_self->{FILENAME} || 'template';
+
+  my $fi_prepend = _param('prepend', %fi_a);
+  unless (defined $fi_prepend) {
+    $fi_prepend = $fi_self->prepend_text;
+  }
+
+  if (defined $fi_safe) {
+    $fi_eval_package = 'main';
+  } elsif (defined $fi_package) {
+    $fi_eval_package = $fi_package;
+  } elsif (defined $fi_varhash) {
+    $fi_eval_package = _gensym();
+    $fi_scrub_package = 1;
+  } else {
+    $fi_eval_package = caller;
+  }
+
+  my $fi_install_package;
+  if (defined $fi_varhash) {
+    if (defined $fi_package) {
+      $fi_install_package = $fi_package;
+    } elsif (defined $fi_safe) {
+      $fi_install_package = $fi_safe->root;
+    } else {
+      $fi_install_package = $fi_eval_package; # The gensymmed one
+    }
+    _install_hash($fi_varhash => $fi_install_package);
+  }
+
+  if (defined $fi_package && defined $fi_safe) {
+    no strict 'refs';
+    # Big fat magic here: Fix it so that the user-specified package
+    # is the default one available in the safe compartment.
+    *{$fi_safe->root . '::'} = \%{$fi_package . '::'};   # LOD
+  }
+
+  my $fi_r = '';
+  my $fi_item;
+  foreach $fi_item (@{$fi_self->{SOURCE}}) {
+    my ($fi_type, $fi_text, $fi_lineno) = @$fi_item;
+    if ($fi_type eq 'TEXT') {
+      if ($fi_ofh) {
+	print $fi_ofh $fi_text;
+      } else {
+	$fi_r .= $fi_text;
+      }
+    } elsif ($fi_type eq 'PROG') {
+      no strict;
+      my $fi_lcomment = "#line $fi_lineno $fi_filename";
+      my $fi_progtext = 
+        "package $fi_eval_package; $fi_prepend;\n$fi_lcomment\n$fi_text;";
+      my $fi_res;
+      my $fi_eval_err = '';
+      if ($fi_safe) {
+        $fi_safe->reval(q{undef $OUT});
+	$fi_res = $fi_safe->reval($fi_progtext);
+	$fi_eval_err = $@;
+	my $OUT = $fi_safe->reval('$OUT');
+	$fi_res = $OUT if defined $OUT;
+      } else {
+	my $OUT;
+	$fi_res = eval $fi_progtext;
+	$fi_eval_err = $@;
+	$fi_res = $OUT if defined $OUT;
+      }
+
+      # If the value of the filled-in text really was undef,
+      # change it to an explicit empty string to avoid undefined
+      # value warnings later.
+      $fi_res = '' unless defined $fi_res;
+
+      if ($fi_eval_err) {
+	$fi_res = $fi_broken->(text => $fi_text,
+			       error => $fi_eval_err,
+			       lineno => $fi_lineno,
+			       arg => $fi_broken_arg,
+			       );
+	if (defined $fi_res) {
+	  if (defined $fi_ofh) {
+	    print $fi_ofh $fi_res;
+	  } else {
+	    $fi_r .= $fi_res;
+	  }
+	} else {
+	  return $fi_res;		# Undefined means abort processing
+	}
+      } else {
+	if (defined $fi_ofh) {
+	  print $fi_ofh $fi_res;
+	} else {
+	  $fi_r .= $fi_res;
+	}
+      }
+    } else {
+      die "Can't happen error #2";
+    }
+  }
+
+  _scrubpkg($fi_eval_package) if $fi_scrub_package;
+  defined $fi_ofh ? 1 : $fi_r;
+}
+
+sub fill_this_in {
+  my $pack = shift;
+  my $text = shift;
+  my $templ = $pack->new(TYPE => 'STRING', SOURCE => $text, @_)
+    or return undef;
+  $templ->compile or return undef;
+  my $result = $templ->fill_in(@_);
+  $result;
+}
+
+sub fill_in_string {
+  my $string = shift;
+  my $package = _param('package', @_);
+  push @_, 'package' => scalar(caller) unless defined $package;
+  Text::Template->fill_this_in($string, @_);
+}
+
+sub fill_in_file {
+  my $fn = shift;
+  my $templ = Text::Template->new(TYPE => 'FILE', SOURCE => $fn, @_)
+    or return undef;
+  $templ->compile or return undef;
+  my $text = $templ->fill_in(@_);
+  $text;
+}
+
+sub _default_broken {
+  my %a = @_;
+  my $prog_text = $a{text};
+  my $err = $a{error};
+  my $lineno = $a{lineno};
+  chomp $err;
+#  $err =~ s/\s+at .*//s;
+  "Program fragment delivered error ``$err''";
+}
+
+sub _load_text {
+  my $fn = shift;
+  local *F;
+  unless (open F, $fn) {
+    $ERROR = "Couldn't open file $fn: $!";
+    return undef;
+  }
+  local $/;
+  <F>;
+}
+
+sub _is_clean {
+  my $z;
+  eval { ($z = join('', @_)), eval '#' . substr($z,0,0); 1 }   # LOD
+}
+
+sub _unconditionally_untaint {
+  for (@_) {
+    ($_) = /(.*)/s;
+  }
+}
+
+{
+  my $seqno = 0;
+  sub _gensym {
+    __PACKAGE__ . '::GEN' . $seqno++;
+  }
+  sub _scrubpkg {
+    my $s = shift;
+    $s =~ s/^Text::Template:://;
+    no strict 'refs';
+    my $hash = $Text::Template::{$s."::"};
+    foreach my $key (keys %$hash) {
+      undef $hash->{$key};
+    }
+  }
+}
+  
+# Given a hashful of variables (or a list of such hashes)
+# install the variables into the specified package,
+# overwriting whatever variables were there before.
+sub _install_hash {
+  my $hashlist = shift;
+  my $dest = shift;
+  if (UNIVERSAL::isa($hashlist, 'HASH')) {
+    $hashlist = [$hashlist];
+  }
+  my $hash;
+  foreach $hash (@$hashlist) {
+    my $name;
+    foreach $name (keys %$hash) {
+      my $val = $hash->{$name};
+      no strict 'refs';
+      local *SYM = *{"$ {dest}::$name"};
+      if (! defined $val) {
+	delete ${"$ {dest}::"}{$name};
+      } elsif (ref $val) {
+	*SYM = $val;
+      } else {
+ 	*SYM = \$val;
+      }
+    }
+  }
+}
+
+sub TTerror { $ERROR }
+
+1;
+
+
+=head1 NAME
+
+Text::Template - Expand template text with embedded Perl
+
+=head1 VERSION
+
+This file documents C<Text::Template> version B<1.44>
+
+=head1 SYNOPSIS
+
+ use Text::Template;
+
+
+ $template = Text::Template->new(TYPE => 'FILE',  SOURCE => 'filename.tmpl');
+ $template = Text::Template->new(TYPE => 'ARRAY', SOURCE => [ ... ] );
+ $template = Text::Template->new(TYPE => 'FILEHANDLE', SOURCE => $fh );
+ $template = Text::Template->new(TYPE => 'STRING', SOURCE => '...' );
+ $template = Text::Template->new(PREPEND => q{use strict;}, ...);
+
+ # Use a different template file syntax:
+ $template = Text::Template->new(DELIMITERS => [$open, $close], ...);
+
+ $recipient = 'King';
+ $text = $template->fill_in();  # Replaces `{$recipient}' with `King'
+ print $text;
+
+ $T::recipient = 'Josh';
+ $text = $template->fill_in(PACKAGE => T);
+
+ # Pass many variables explicitly
+ $hash = { recipient => 'Abed-Nego',
+           friends => [ 'me', 'you' ],
+           enemies => { loathsome => 'Bill Gates',
+                        fearsome => 'Larry Ellison' },
+         };
+ $text = $template->fill_in(HASH => $hash, ...);
+ # $recipient is Abed-Nego,
+ # @friends is ( 'me', 'you' ),
+ # %enemies is ( loathsome => ..., fearsome => ... )
+
+
+ # Call &callback in case of programming errors in template
+ $text = $template->fill_in(BROKEN => \&callback, BROKEN_ARG => $ref, ...);
+
+ # Evaluate program fragments in Safe compartment with restricted permissions
+ $text = $template->fill_in(SAFE => $compartment, ...);
+
+ # Print result text instead of returning it
+ $success = $template->fill_in(OUTPUT => \*FILEHANDLE, ...);
+
+ # Parse template with different template file syntax:
+ $text = $template->fill_in(DELIMITERS => [$open, $close], ...);
+ # Note that this is *faster* than using the default delimiters
+
+ # Prepend specified perl code to each fragment before evaluating:
+ $text = $template->fill_in(PREPEND => q{use strict 'vars';}, ...);
+
+ use Text::Template 'fill_in_string';
+ $text = fill_in_string( <<EOM, PACKAGE => 'T', ...);
+ Dear {$recipient},
+ Pay me at once.
+        Love,
+         G.V.
+ EOM
+
+ use Text::Template 'fill_in_file';
+ $text = fill_in_file($filename, ...);
+
+ # All templates will always have `use strict vars' attached to all fragments
+ Text::Template->always_prepend(q{use strict 'vars';});
+
+=head1 DESCRIPTION
+
+This is a library for generating form letters, building HTML pages, or
+filling in templates generally.  A `template' is a piece of text that
+has little Perl programs embedded in it here and there.  When you
+`fill in' a template, you evaluate the little programs and replace
+them with their values.
+
+You can store a template in a file outside your program.  People can
+modify the template without modifying the program.  You can separate
+the formatting details from the main code, and put the formatting
+parts of the program into the template.  That prevents code bloat and
+encourages functional separation.
+
+=head2 Example
+
+Here's an example of a template, which we'll suppose is stored in the
+file C<formletter.tmpl>:
+
+	Dear {$title} {$lastname},
+
+	It has come to our attention that you are delinquent in your
+	{$monthname[$last_paid_month]} payment.  Please remit
+	${sprintf("%.2f", $amount)} immediately, or your patellae may
+	be needlessly endangered.
+
+			Love,
+
+			Mark "Vizopteryx" Dominus
+
+
+The result of filling in this template is a string, which might look
+something like this:
+
+	Dear Mr. Gates,
+
+	It has come to our attention that you are delinquent in your
+	February payment.  Please remit
+	$392.12 immediately, or your patellae may
+	be needlessly endangered.
+
+
+			Love,
+
+			Mark "Vizopteryx" Dominus
+
+Here is a complete program that transforms the example
+template into the example result, and prints it out:
+
+	use Text::Template;
+
+	my $template = Text::Template->new(SOURCE => 'formletter.tmpl')
+	  or die "Couldn't construct template: $Text::Template::ERROR";
+
+	my @monthname = qw(January February March April May June
+                           July August September October November December);
+	my %vars = (title => 'Mr.',
+		    firstname => 'Bill',
+		    lastname => 'Gates',
+		    last_paid_month => 1,   # February
+		    amount => 392.12,
+		    monthname => \@monthname,
+		   );
+
+	my $result = $template->fill_in(HASH => \%vars);
+
+	if (defined $result) { print $result }
+	else { die "Couldn't fill in template: $Text::Template::ERROR" }
+
+
+=head2 Philosophy
+
+When people make a template module like this one, they almost always
+start by inventing a special syntax for substitutions.  For example,
+they build it so that a string like C<%%VAR%%> is replaced with the
+value of C<$VAR>.  Then they realize the need extra formatting, so
+they put in some special syntax for formatting.  Then they need a
+loop, so they invent a loop syntax.  Pretty soon they have a new
+little template language.
+
+This approach has two problems: First, their little language is
+crippled. If you need to do something the author hasn't thought of,
+you lose.  Second: Who wants to learn another language?  You already
+know Perl, so why not use it?
+
+C<Text::Template> templates are programmed in I<Perl>.  You embed Perl
+code in your template, with C<{> at the beginning and C<}> at the end.
+If you want a variable interpolated, you write it the way you would in
+Perl.  If you need to make a loop, you can use any of the Perl loop
+constructions.  All the Perl built-in functions are available.
+
+=head1 Details
+
+=head2 Template Parsing
+
+The C<Text::Template> module scans the template source.  An open brace
+C<{> begins a program fragment, which continues until the matching
+close brace C<}>.  When the template is filled in, the program
+fragments are evaluated, and each one is replaced with the resulting
+value to yield the text that is returned.
+
+A backslash C<\> in front of a brace (or another backslash that is in
+front of a brace) escapes its special meaning.  The result of filling
+out this template:
+
+	\{ The sum of 1 and 2 is {1+2}  \}
+
+is
+
+	{ The sum of 1 and 2 is 3  }
+
+If you have an unmatched brace, C<Text::Template> will return a
+failure code and a warning about where the problem is.  Backslashes
+that do not precede a brace are passed through unchanged.  If you have
+a template like this:
+
+	{ "String that ends in a newline.\n" }
+
+The backslash inside the string is passed through to Perl unchanged,
+so the C<\n> really does turn into a newline.  See the note at the end
+for details about the way backslashes work.  Backslash processing is
+I<not> done when you specify alternative delimiters with the
+C<DELIMITERS> option.  (See L<"Alternative Delimiters">, below.)
+
+Each program fragment should be a sequence of Perl statements, which
+are evaluated the usual way.  The result of the last statement
+executed will be evaluted in scalar context; the result of this
+statement is a string, which is interpolated into the template in
+place of the program fragment itself.
+
+The fragments are evaluated in order, and side effects from earlier
+fragments will persist into later fragments:
+
+	{$x = @things; ''}The Lord High Chamberlain has gotten {$x}
+	things for me this year.
+	{ $diff = $x - 17;
+	  $more = 'more'
+	  if ($diff == 0) {
+	    $diff = 'no';
+	  } elsif ($diff < 0) {
+	    $more = 'fewer';
+	  }
+          '';
+	}
+	That is {$diff} {$more} than he gave me last year.
+
+The value of C<$x> set in the first line will persist into the next
+fragment that begins on the third line, and the values of C<$diff> and
+C<$more> set in the second fragment will persist and be interpolated
+into the last line.  The output will look something like this:
+
+	The Lord High Chamberlain has gotten 42
+	things for me this year.
+
+	That is 25 more than he gave me last year.
+
+That is all the syntax there is.
+
+=head2 The C<$OUT> variable
+
+There is one special trick you can play in a template.  Here is the
+motivation for it:  Suppose you are going to pass an array, C<@items>,
+into the template, and you want the template to generate a bulleted
+list with a header, like this:
+
+	Here is a list of the things I have got for you since 1907:
+	  * Ivory
+	  * Apes
+	  * Peacocks
+	  * ...
+
+One way to do it is with a template like this:
+
+	Here is a list of the things I have got for you since 1907:
+	{ my $blist = '';
+          foreach $i (@items) {
+            $blist .= qq{  * $i\n};
+          }
+          $blist;
+        }
+
+Here we construct the list in a variable called C<$blist>, which we
+return at the end.  This is a little cumbersome.  There is a shortcut.
+
+Inside of templates, there is a special variable called C<$OUT>.
+Anything you append to this variable will appear in the output of the
+template.  Also, if you use C<$OUT> in a program fragment, the normal
+behavior, of replacing the fragment with its return value, is
+disabled; instead the fragment is replaced with the value of C<$OUT>.
+This means that you can write the template above like this:
+
+	Here is a list of the things I have got for you since 1907:
+	{ foreach $i (@items) {
+            $OUT .= "  * $i\n";
+          }
+        }
+
+C<$OUT> is reinitialized to the empty string at the start of each
+program fragment.  It is private to C<Text::Template>, so
+you can't use a variable named C<$OUT> in your template without
+invoking the special behavior.
+
+=head2 General Remarks
+
+All C<Text::Template> functions return C<undef> on failure, and set the
+variable C<$Text::Template::ERROR> to contain an explanation of what
+went wrong.  For example, if you try to create a template from a file
+that does not exist, C<$Text::Template::ERROR> will contain something like:
+
+	Couldn't open file xyz.tmpl: No such file or directory
+
+=head2 C<new>
+
+	$template = new Text::Template ( TYPE => ..., SOURCE => ... );
+
+This creates and returns a new template object.  C<new> returns
+C<undef> and sets C<$Text::Template::ERROR> if it can't create the
+template object.  C<SOURCE> says where the template source code will
+come from.  C<TYPE> says what kind of object the source is.
+
+The most common type of source is a file:
+
+	new Text::Template ( TYPE => 'FILE', SOURCE => $filename );
+
+This reads the template from the specified file.  The filename is
+opened with the Perl C<open> command, so it can be a pipe or anything
+else that makes sense with C<open>.
+
+The C<TYPE> can also be C<STRING>, in which case the C<SOURCE> should
+be a string:
+
+	new Text::Template ( TYPE => 'STRING',
+                             SOURCE => "This is the actual template!" );
+
+The C<TYPE> can be C<ARRAY>, in which case the source should be a
+reference to an array of strings.  The concatenation of these strings
+is the template:
+
+	new Text::Template ( TYPE => 'ARRAY',
+                             SOURCE => [ "This is ", "the actual",
+                                         " template!",
+                                       ]
+                           );
+
+The C<TYPE> can be FILEHANDLE, in which case the source should be an
+open filehandle (such as you got from the C<FileHandle> or C<IO::*>
+packages, or a glob, or a reference to a glob).  In this case
+C<Text::Template> will read the text from the filehandle up to
+end-of-file, and that text is the template:
+
+	# Read template source code from STDIN:
+	new Text::Template ( TYPE => 'FILEHANDLE',
+                             SOURCE => \*STDIN  );
+
+
+If you omit the C<TYPE> attribute, it's taken to be C<FILE>.
+C<SOURCE> is required.  If you omit it, the program will abort.
+
+The words C<TYPE> and C<SOURCE> can be spelled any of the following ways:
+
+	TYPE	SOURCE
+	Type	Source
+	type	source
+	-TYPE	-SOURCE
+	-Type	-Source
+	-type	-source
+
+Pick a style you like and stick with it.
+
+=over 4
+
+=item C<DELIMITERS>
+
+You may also add a C<DELIMITERS> option.  If this option is present,
+its value should be a reference to an array of two strings.  The first
+string is the string that signals the beginning of each program
+fragment, and the second string is the string that signals the end of
+each program fragment.  See L<"Alternative Delimiters">, below.
+
+=item C<UNTAINT>
+
+If your program is running in taint mode, you may have problems if
+your templates are stored in files.  Data read from files is
+considered 'untrustworthy', and taint mode will not allow you to
+evaluate the Perl code in the file.  (It is afraid that a malicious
+person might have tampered with the file.)
+
+In some environments, however, local files are trustworthy.  You can
+tell C<Text::Template> that a certain file is trustworthy by supplying
+C<UNTAINT =E<gt> 1> in the call to C<new>.  This will tell
+C<Text::Template> to disable taint checks on template code that has
+come from a file, as long as the filename itself is considered
+trustworthy.  It will also disable taint checks on template code that
+comes from a filehandle.  When used with C<TYPE =E<gt> 'string'> or C<TYPE
+=E<gt> 'array'>, it has no effect.
+
+See L<perlsec> for more complete information about tainting.
+
+Thanks to Steve Palincsar, Gerard Vreeswijk, and Dr. Christoph Baehr
+for help with this feature.
+
+=item C<PREPEND>
+
+This option is passed along to the C<fill_in> call unless it is
+overridden in the arguments to C<fill_in>.  See L<C<PREPEND> feature
+and using C<strict> in templates> below.
+
+=item C<BROKEN>
+
+This option is passed along to the C<fill_in> call unless it is
+overridden in the arguments to C<fill_in>.  See L<C<BROKEN>> below.
+
+=back
+
+=head2 C<compile>
+
+	$template->compile()
+
+Loads all the template text from the template's source, parses and
+compiles it.  If successful, returns true; otherwise returns false and
+sets C<$Text::Template::ERROR>.  If the template is already compiled,
+it returns true and does nothing.
+
+You don't usually need to invoke this function, because C<fill_in>
+(see below) compiles the template if it isn't compiled already.
+
+If there is an argument to this function, it must be a reference to an
+array containing alternative delimiter strings.  See C<"Alternative
+Delimiters">, below.
+
+=head2 C<fill_in>
+
+	$template->fill_in(OPTIONS);
+
+Fills in a template.  Returns the resulting text if successful.
+Otherwise, returns C<undef>  and sets C<$Text::Template::ERROR>.
+
+The I<OPTIONS> are a hash, or a list of key-value pairs.  You can
+write the key names in any of the six usual styles as above; this
+means that where this manual says C<PACKAGE> (for example) you can
+actually use any of
+
+	PACKAGE Package package -PACKAGE -Package -package
+
+Pick a style you like and stick with it.  The all-lowercase versions
+may yield spurious warnings about
+
+	Ambiguous use of package => resolved to "package"
+
+so you might like to avoid them and use the capitalized versions.
+
+At present, there are eight legal options:  C<PACKAGE>, C<BROKEN>,
+C<BROKEN_ARG>, C<SAFE>, C<HASH>, C<OUTPUT>, and C<DELIMITERS>.
+
+=over 4
+
+=item C<PACKAGE>
+
+C<PACKAGE> specifies the name of a package in which the program
+fragments should be evaluated.  The default is to use the package from
+which C<fill_in> was called.  For example, consider this template:
+
+	The value of the variable x is {$x}.
+
+If you use C<$template-E<gt>fill_in(PACKAGE =E<gt> 'R')> , then the C<$x> in
+the template is actually replaced with the value of C<$R::x>.  If you
+omit the C<PACKAGE> option, C<$x> will be replaced with the value of
+the C<$x> variable in the package that actually called C<fill_in>.
+
+You should almost always use C<PACKAGE>.  If you don't, and your
+template makes changes to variables, those changes will be propagated
+back into the main program.  Evaluating the template in a private
+package helps prevent this.  The template can still modify variables
+in your program if it wants to, but it will have to do so explicitly.
+See the section at the end on `Security'.
+
+Here's an example of using C<PACKAGE>:
+
+	Your Royal Highness,
+
+	Enclosed please find a list of things I have gotten
+	for you since 1907:
+
+	{ foreach $item (@items) {
+            $item_no++;
+	    $OUT .= " $item_no. \u$item\n";
+	  }
+	}
+
+	Signed,
+	Lord High Chamberlain
+
+We want to pass in an array which will be assigned to the array
+C<@items>.  Here's how to do that:
+
+
+	@items = ('ivory', 'apes', 'peacocks', );
+	$template->fill_in();
+
+This is not very safe.  The reason this isn't as safe is that if you
+had a variable named C<$item_no> in scope in your program at the point
+you called C<fill_in>, its value would be clobbered by the act of
+filling out the template.  The problem is the same as if you had
+written a subroutine that used those variables in the same way that
+the template does.  (C<$OUT> is special in templates and is always
+safe.)
+
+One solution to this is to make the C<$item_no> variable private to the
+template by declaring it with C<my>.  If the template does this, you
+are safe.
+
+But if you use the C<PACKAGE> option, you will probably be safe even
+if the template does I<not> declare its variables with C<my>:
+
+	@Q::items = ('ivory', 'apes', 'peacocks', );
+	$template->fill_in(PACKAGE => 'Q');
+
+In this case the template will clobber the variable C<$Q::item_no>,
+which is not related to the one your program was using.
+
+Templates cannot affect variables in the main program that are
+declared with C<my>, unless you give the template references to those
+variables.
+
+=item C<HASH>
+
+You may not want to put the template variables into a package.
+Packages can be hard to manage:  You can't copy them, for example.
+C<HASH> provides an alternative.
+
+The value for C<HASH> should be a reference to a hash that maps
+variable names to values.  For example,
+
+	$template->fill_in(HASH => { recipient => "The King",
+				     items => ['gold', 'frankincense', 'myrrh'],
+	                             object => \$self,
+				   });
+
+will fill out the template and use C<"The King"> as the value of
+C<$recipient> and the list of items as the value of C<@items>.  Note
+that we pass an array reference, but inside the template it appears as
+an array.  In general, anything other than a simple string or number
+should be passed by reference.
+
+We also want to pass an object, which is in C<$self>; note that we
+pass a reference to the object, C<\$self> instead.  Since we've passed
+a reference to a scalar, inside the template the object appears as
+C<$object>.  
+
+The full details of how it works are a little involved, so you might
+want to skip to the next section.
+
+Suppose the key in the hash is I<key> and the value is I<value>.
+
+=over 4
+
+=item *
+
+If the I<value> is C<undef>, then any variables named C<$key>,
+C<@key>, C<%key>, etc., are undefined.
+
+=item *
+
+If the I<value> is a string or a number, then C<$key> is set to that
+value in the template.
+
+=item *
+
+For anything else, you must pass a reference.
+
+If the I<value> is a reference to an array, then C<@key> is set to
+that array.  If the I<value> is a reference to a hash, then C<%key> is
+set to that hash.  Similarly if I<value> is any other kind of
+reference.  This means that
+
+	var => "foo"
+
+and
+
+	var => \"foo"
+
+have almost exactly the same effect.  (The difference is that in the
+former case, the value is copied, and in the latter case it is
+aliased.)
+
+=item *
+
+In particular, if you want the template to get an object or any kind,
+you must pass a reference to it:
+
+	$template->fill_in(HASH => { database_handle => \$dbh, ... });
+
+If you do this, the template will have a variable C<$database_handle>
+which is the database handle object.  If you leave out the C<\>, the
+template will have a hash C<%database_handle>, which exposes the
+internal structure of the database handle object; you don't want that.
+
+=back
+
+Normally, the way this works is by allocating a private package,
+loading all the variables into the package, and then filling out the
+template as if you had specified that package.  A new package is
+allocated each time.  However, if you I<also> use the C<PACKAGE>
+option, C<Text::Template> loads the variables into the package you
+specified, and they stay there after the call returns.  Subsequent
+calls to C<fill_in> that use the same package will pick up the values
+you loaded in.
+
+If the argument of C<HASH> is a reference to an array instead of a
+reference to a hash, then the array should contain a list of hashes
+whose contents are loaded into the template package one after the
+other.  You can use this feature if you want to combine several sets
+of variables.  For example, one set of variables might be the defaults
+for a fill-in form, and the second set might be the user inputs, which
+override the defaults when they are present:
+
+	$template->fill_in(HASH => [\%defaults, \%user_input]);
+
+You can also use this to set two variables with the same name:
+
+	$template->fill_in(HASH => [{ v => "The King" },
+                                    { v => [1,2,3] },
+	                           ]
+                          );
+
+This sets C<$v> to C<"The King"> and C<@v> to C<(1,2,3)>.
+
+=item C<BROKEN>
+
+If any of the program fragments fails to compile or aborts for any
+reason, and you have set the C<BROKEN> option to a function reference,
+C<Text::Template> will invoke the function.  This function is called
+the I<C<BROKEN> function>.  The C<BROKEN> function will tell
+C<Text::Template> what to do next.
+
+If the C<BROKEN> function returns C<undef>, C<Text::Template> will
+immediately abort processing the template and return the text that it
+has accumulated so far.  If your function does this, it should set a
+flag that you can examine after C<fill_in> returns so that you can
+tell whether there was a premature return or not.
+
+If the C<BROKEN> function returns any other value, that value will be
+interpolated into the template as if that value had been the return
+value of the program fragment to begin with.  For example, if the
+C<BROKEN> function returns an error string, the error string will be
+interpolated into the output of the template in place of the program
+fragment that cased the error.
+
+If you don't specify a C<BROKEN> function, C<Text::Template> supplies
+a default one that returns something like
+
+	Program fragment delivered error ``Illegal division by 0 at
+	template line 37''
+
+(Note that the format of this message has changed slightly since
+version 1.31.)  The return value of the C<BROKEN> function is
+interpolated into the template at the place the error occurred, so
+that this template:
+
+	(3+4)*5 = { 3+4)*5 }
+
+yields this result:
+
+	(3+4)*5 = Program fragment delivered error ``syntax error at template line 1''
+
+If you specify a value for the C<BROKEN> attribute, it should be a
+reference to a function that C<fill_in> can call instead of the
+default function.
+
+C<fill_in> will pass a hash to the C<broken> function.
+The hash will have at least these three members:
+
+=over 4
+
+=item C<text>
+
+The source code of the program fragment that failed
+
+=item C<error>
+
+The text of the error message (C<$@>) generated by eval.
+
+The text has been modified to omit the trailing newline and to include
+the name of the template file (if there was one).  The line number
+counts from the beginning of the template, not from the beginning of
+the failed program fragment.
+
+=item C<lineno>
+
+The line number of the template at which the program fragment began.
+
+=back
+
+There may also be an C<arg> member.  See C<BROKEN_ARG>, below
+
+=item C<BROKEN_ARG>
+
+If you supply the C<BROKEN_ARG> option to C<fill_in>, the value of the
+option is passed to the C<BROKEN> function whenever it is called.  The
+default C<BROKEN> function ignores the C<BROKEN_ARG>, but you can
+write a custom C<BROKEN> function that uses the C<BROKEN_ARG> to get
+more information about what went wrong.
+
+The C<BROKEN> function could also use the C<BROKEN_ARG> as a reference
+to store an error message or some other information that it wants to
+communicate back to the caller.  For example:
+
+	$error = '';
+
+	sub my_broken {
+	   my %args = @_;
+	   my $err_ref = $args{arg};
+	   ...
+	   $$err_ref = "Some error message";
+	   return undef;
+	}
+
+	$template->fill_in(BROKEN => \&my_broken,
+			   BROKEN_ARG => \$error,
+			  );
+
+	if ($error) {
+	  die "It didn't work: $error";
+	}
+
+If one of the program fragments in the template fails, it will call
+the C<BROKEN> function, C<my_broken>, and pass it the C<BROKEN_ARG>,
+which is a reference to C<$error>.  C<my_broken> can store an error
+message into C<$error> this way.  Then the function that called
+C<fill_in> can see if C<my_broken> has left an error message for it
+to find, and proceed accordingly.
+
+=item C<SAFE>
+
+If you give C<fill_in> a C<SAFE> option, its value should be a safe
+compartment object from the C<Safe> package.  All evaluation of
+program fragments will be performed in this compartment.  See L<Safe>
+for full details about such compartments and how to restrict the
+operations that can be performed in them.
+
+If you use the C<PACKAGE> option with C<SAFE>, the package you specify
+will be placed into the safe compartment and evaluation will take
+place in that package as usual.
+
+If not, C<SAFE> operation is a little different from the default.
+Usually, if you don't specify a package, evaluation of program
+fragments occurs in the package from which the template was invoked.
+But in C<SAFE> mode the evaluation occurs inside the safe compartment
+and cannot affect the calling package.  Normally, if you use C<HASH>
+without C<PACKAGE>, the hash variables are imported into a private,
+one-use-only package.  But if you use C<HASH> and C<SAFE> together
+without C<PACKAGE>, the hash variables will just be loaded into the
+root namespace of the C<Safe> compartment.
+
+=item C<OUTPUT>
+
+If your template is going to generate a lot of text that you are just
+going to print out again anyway,  you can save memory by having
+C<Text::Template> print out the text as it is generated instead of
+making it into a big string and returning the string.  If you supply
+the C<OUTPUT> option to C<fill_in>, the value should be a filehandle.
+The generated text will be printed to this filehandle as it is
+constructed.  For example:
+
+	$template->fill_in(OUTPUT => \*STDOUT, ...);
+
+fills in the C<$template> as usual, but the results are immediately
+printed to STDOUT.  This may result in the output appearing more
+quickly than it would have otherwise.
+
+If you use C<OUTPUT>, the return value from C<fill_in> is still true on
+success and false on failure, but the complete text is not returned to
+the caller.
+
+=item C<PREPEND>
+
+You can have some Perl code prepended automatically to the beginning
+of every program fragment.  See L<C<PREPEND> feature and using
+C<strict> in templates> below.
+
+=item C<DELIMITERS>
+
+If this option is present, its value should be a reference to a list
+of two strings.  The first string is the string that signals the
+beginning of each program fragment, and the second string is the
+string that signals the end of each program fragment.  See
+L<"Alternative Delimiters">, below.
+
+If you specify C<DELIMITERS> in the call to C<fill_in>, they override
+any delimiters you set when you created the template object with
+C<new>.
+
+=back
+
+=head1 Convenience Functions
+
+=head2 C<fill_this_in>
+
+The basic way to fill in a template is to create a template object and
+then call C<fill_in> on it.   This is useful if you want to fill in
+the same template more than once.
+
+In some programs, this can be cumbersome.  C<fill_this_in> accepts a
+string, which contains the template, and a list of options, which are
+passed to C<fill_in> as above.  It constructs the template object for
+you, fills it in as specified, and returns the results.  It returns
+C<undef> and sets C<$Text::Template::ERROR> if it couldn't generate
+any results.
+
+An example:
+
+	$Q::name = 'Donald';
+	$Q::amount = 141.61;
+	$Q::part = 'hyoid bone';
+
+	$text = Text::Template->fill_this_in( <<'EOM', PACKAGE => Q);
+	Dear {$name},
+	You owe me \\${sprintf('%.2f', $amount)}.
+	Pay or I will break your {$part}.
+		Love,
+		Grand Vizopteryx of Irkutsk.
+	EOM
+
+Notice how we included the template in-line in the program by using a
+`here document' with the C<E<lt>E<lt>> notation.
+
+C<fill_this_in> is a deprecated feature.  It is only here for
+backwards compatibility, and may be removed in some far-future version
+in C<Text::Template>.  You should use C<fill_in_string> instead.  It
+is described in the next section.
+
+=head2 C<fill_in_string>
+
+It is stupid that C<fill_this_in> is a class method.  It should have
+been just an imported function, so that you could omit the
+C<Text::Template-E<gt>> in the example above.  But I made the mistake
+four years ago and it is too late to change it.
+
+C<fill_in_string> is exactly like C<fill_this_in> except that it is
+not a method and you can omit the C<Text::Template-E<gt>> and just say
+
+	print fill_in_string(<<'EOM', ...);
+	Dear {$name},
+	  ...
+	EOM
+
+To use C<fill_in_string>, you need to say
+
+	use Text::Template 'fill_in_string';
+
+at the top of your program.   You should probably use
+C<fill_in_string> instead of C<fill_this_in>.
+
+=head2 C<fill_in_file>
+
+If you import C<fill_in_file>, you can say
+
+	$text = fill_in_file(filename, ...);
+
+The C<...> are passed to C<fill_in> as above.  The filename is the
+name of the file that contains the template you want to fill in.  It
+returns the result text. or C<undef>, as usual.
+
+If you are going to fill in the same file more than once in the same
+program you should use the longer C<new> / C<fill_in> sequence instead.
+It will be a lot faster because it only has to read and parse the file
+once.
+
+=head2 Including files into templates
+
+People always ask for this.  ``Why don't you have an include
+function?'' they want to know.  The short answer is this is Perl, and
+Perl already has an include function.  If you want it, you can just put
+
+	{qx{cat filename}}
+
+into your template.  VoilE<agrave>.
+
+If you don't want to use C<cat>, you can write a little four-line
+function that opens a file and dumps out its contents, and call it
+from the template.  I wrote one for you.  In the template, you can say
+
+	{Text::Template::_load_text(filename)}
+
+If that is too verbose, here is a trick.  Suppose the template package
+that you are going to be mentioning in the C<fill_in> call is package
+C<Q>.  Then in the main program, write
+
+	*Q::include = \&Text::Template::_load_text;
+
+This imports the C<_load_text> function into package C<Q> with the
+name C<include>.  From then on, any template that you fill in with
+package C<Q> can say
+
+	{include(filename)}
+
+to insert the text from the named file at that point.  If you are
+using the C<HASH> option instead, just put C<include =E<gt>
+\&Text::Template::_load_text> into the hash instead of importing it
+explicitly.
+
+Suppose you don't want to insert a plain text file, but rather you
+want to include one template within another?  Just use C<fill_in_file>
+in the template itself:
+
+	{Text::Template::fill_in_file(filename)}
+
+You can do the same importing trick if this is too much to type.
+
+=head1 Miscellaneous
+
+=head2 C<my> variables
+
+People are frequently surprised when this doesn't work:
+
+	my $recipient = 'The King';
+	my $text = fill_in_file('formletter.tmpl');
+
+The text C<The King> doesn't get into the form letter.  Why not?
+Because C<$recipient> is a C<my> variable, and the whole point of
+C<my> variables is that they're private and inaccessible except in the
+scope in which they're declared.  The template is not part of that
+scope, so the template can't see C<$recipient>.
+
+If that's not the behavior you want, don't use C<my>.  C<my> means a
+private variable, and in this case you don't want the variable to be
+private.  Put the variables into package variables in some other
+package, and use the C<PACKAGE> option to C<fill_in>:
+
+	$Q::recipient = $recipient;
+	my $text = fill_in_file('formletter.tmpl', PACKAGE => 'Q');
+
+
+or pass the names and values in a hash with the C<HASH> option:
+
+	my $text = fill_in_file('formletter.tmpl', HASH => { recipient => $recipient });
+
+=head2 Security Matters
+
+All variables are evaluated in the package you specify with the
+C<PACKAGE> option of C<fill_in>.  if you use this option, and if your
+templates don't do anything egregiously stupid, you won't have to
+worry that evaluation of the little programs will creep out into the
+rest of your program and wreck something.
+
+Nevertheless, there's really no way (except with C<Safe>) to protect
+against a template that says
+
+	{ $Important::Secret::Security::Enable = 0;
+	  # Disable security checks in this program
+	}
+
+or
+
+	{ $/ = "ho ho ho";   # Sabotage future uses of <FH>.
+	  # $/ is always a global variable
+	}
+
+or even
+
+	{ system("rm -rf /") }
+
+so B<don't> go filling in templates unless you're sure you know what's
+in them.  If you're worried, or you can't trust the person who wrote
+the template, use the C<SAFE> option.
+
+A final warning: program fragments run a small risk of accidentally
+clobbering local variables in the C<fill_in> function itself.  These
+variables all have names that begin with C<$fi_>, so if you stay away
+from those names you'll be safe.  (Of course, if you're a real wizard
+you can tamper with them deliberately for exciting effects; this is
+actually how C<$OUT> works.)  I can fix this, but it will make the
+package slower to do it, so I would prefer not to.  If you are worried
+about this, send me mail and I will show you what to do about it.
+
+=head2 Alternative Delimiters
+
+Lorenzo Valdettaro pointed out that if you are using C<Text::Template>
+to generate TeX output, the choice of braces as the program fragment
+delimiters makes you suffer suffer suffer.  Starting in version 1.20,
+you can change the choice of delimiters to something other than curly
+braces.
+
+In either the C<new()> call or the C<fill_in()> call, you can specify
+an alternative set of delimiters with the C<DELIMITERS> option.  For
+example, if you would like code fragments to be delimited by C<[@-->
+and C<--@]> instead of C<{> and C<}>, use
+
+	... DELIMITERS => [ '[@--', '--@]' ], ...
+
+Note that these delimiters are I<literal strings>, not regexes.  (I
+tried for regexes, but it complicates the lexical analysis too much.)
+Note also that C<DELIMITERS> disables the special meaning of the
+backslash, so if you want to include the delimiters in the literal
+text of your template file, you are out of luck---it is up to you to
+choose delimiters that do not conflict with what you are doing.  The
+delimiter strings may still appear inside of program fragments as long
+as they nest properly.  This means that if for some reason you
+absolutely must have a program fragment that mentions one of the
+delimiters, like this:
+
+	[@--
+		print "Oh no, a delimiter: --@]\n"
+	--@]
+
+you may be able to make it work by doing this instead:
+
+	[@--
+		# Fake matching delimiter in a comment: [@--
+		print "Oh no, a delimiter: --@]\n"
+	--@]
+
+It may be safer to choose delimiters that begin with a newline
+character.
+
+Because the parsing of templates is simplified by the absence of
+backslash escapes, using alternative C<DELIMITERS> I<speeds up> the
+parsing process by 20-25%.  This shows that my original choice of C<{>
+and C<}> was very bad.  I therefore recommend that you use alternative
+delimiters whenever possible.
+
+=head2 C<PREPEND> feature and using C<strict> in templates
+
+Suppose you would like to use C<strict> in your templates to detect
+undeclared variables and the like.  But each code fragment is a
+separate lexical scope, so you have to turn on C<strict> at the top of
+each and every code fragment:
+
+	{ use strict;
+	  use vars '$foo';
+	  $foo = 14;
+	  ...
+	}
+
+	...
+
+	{ # we forgot to put `use strict' here
+	  my $result = $boo + 12;    # $boo is misspelled and should be $foo
+	  # No error is raised on `$boo'
+	}
+
+Because we didn't put C<use strict> at the top of the second fragment,
+it was only active in the first fragment, and we didn't get any
+C<strict> checking in the second fragment.  Then we mispelled C<$foo>
+and the error wasn't caught.
+
+C<Text::Template> version 1.22 and higher has a new feature to make
+this easier.  You can specify that any text at all be automatically
+added to the beginning of each program fragment.
+
+When you make a call to C<fill_in>, you can specify a
+
+	PREPEND => 'some perl statements here'
+
+option; the statements will be prepended to each program fragment for
+that one call only.  Suppose that the C<fill_in> call included a
+
+	PREPEND => 'use strict;'
+
+option, and that the template looked like this:
+
+	{ use vars '$foo';
+	  $foo = 14;
+	  ...
+	}
+
+	...
+
+	{ my $result = $boo + 12;    # $boo is misspelled and should be $foo
+	  ...
+	}
+
+The code in the second fragment would fail, because C<$boo> has not
+been declared.  C<use strict> was implied, even though you did not
+write it explicitly, because the C<PREPEND> option added it for you
+automatically.
+
+There are two other ways to do this.  At the time you create the
+template object with C<new>, you can also supply a C<PREPEND> option,
+in which case the statements will be prepended each time you fill in
+that template.  If the C<fill_in> call has its own C<PREPEND> option,
+this overrides the one specified at the time you created the
+template.  Finally, you can make the class method call
+
+	Text::Template->always_prepend('perl statements');
+
+If you do this, then call calls to C<fill_in> for I<any> template will
+attach the perl statements to the beginning of each program fragment,
+except where overridden by C<PREPEND> options to C<new> or C<fill_in>.
+
+=head2 Prepending in Derived Classes
+
+This section is technical, and you should skip it on the first few
+readings.
+
+Normally there are three places that prepended text could come from.
+It could come from the C<PREPEND> option in the C<fill_in> call, from
+the C<PREPEND> option in the C<new> call that created the template
+object, or from the argument of the C<always_prepend> call.
+C<Text::Template> looks for these three things in order and takes the
+first one that it finds.
+
+In a subclass of C<Text::Template>, this last possibility is
+ambiguous.  Suppose C<S> is a subclass of C<Text::Template>.  Should
+
+	Text::Template->always_prepend(...);
+
+affect objects in class C<Derived>?  The answer is that you can have it
+either way.
+
+The C<always_prepend> value for C<Text::Template> is normally stored
+in  a hash variable named C<%GLOBAL_PREPEND> under the key
+C<Text::Template>.  When C<Text::Template> looks to see what text to
+prepend, it first looks in the template object itself, and if not, it
+looks in C<$GLOBAL_PREPEND{I<class>}> where I<class> is the class to
+which the template object belongs.  If it doesn't find any value, it
+looks in C<$GLOBAL_PREPEND{'Text::Template'}>.  This means that
+objects in class C<Derived> I<will> be affected by
+
+	Text::Template->always_prepend(...);
+
+I<unless> there is also a call to
+
+	Derived->always_prepend(...);
+
+So when you're designing your derived class, you can arrange to have
+your objects ignore C<Text::Template::always_prepend> calls by simply
+putting C<Derived-E<gt>always_prepend('')> at the top of your module.
+
+Of course, there is also a final escape hatch: Templates support a
+C<prepend_text> that is used to look up the appropriate text to be
+prepended at C<fill_in> time.  Your derived class can override this
+method to get an arbitrary effect.
+
+=head2 JavaScript
+
+Jennifer D. St Clair asks:
+
+	> Most of my pages contain JavaScript and Stylesheets.
+        > How do I change the template identifier?
+
+Jennifer is worried about the braces in the JavaScript being taken as
+the delimiters of the Perl program fragments.  Of course, disaster
+will ensue when perl tries to evaluate these as if they were Perl
+programs.  The best choice is to find some unambiguous delimiter
+strings that you can use in your template instead of curly braces, and
+then use the C<DELIMITERS> option.  However, if you can't do this for
+some reason, there are  two easy workarounds:
+
+1. You can put C<\> in front of C<{>, C<}>, or C<\> to remove its
+special meaning.  So, for example, instead of
+
+	    if (br== "n3") {
+		// etc.
+	    }
+
+you can put
+
+	    if (br== "n3") \{
+		// etc.
+	    \}
+
+and it'll come out of the template engine the way you want.
+
+But here is another method that is probably better.  To see how it
+works, first consider what happens if you put this into a template:
+
+	    { 'foo' }
+
+Since it's in braces, it gets evaluated, and obviously, this is going
+to turn into
+
+	    foo
+
+So now here's the trick: In Perl, C<q{...}> is the same as C<'...'>.
+So if we wrote
+
+	    {q{foo}}
+
+it would turn into
+
+	    foo
+
+So for your JavaScript, just write
+
+	    {q{if (br== "n3") {
+	  	 // etc.
+	       }}
+	    }
+
+and it'll come out as
+
+	      if (br== "n3") {
+	  	  // etc.
+	      }
+
+which is what you want.
+
+
+=head2 Shut Up!
+
+People sometimes try to put an initialization section at the top of
+their templates, like this:
+
+	{ ...
+	  $var = 17;
+	}
+
+Then they complain because there is a C<17> at the top of the output
+that they didn't want to have there.
+
+Remember that a program fragment is replaced with its own return
+value, and that in Perl the return value of a code block is the value
+of the last expression that was evaluated, which in this case is 17.
+If it didn't do that, you wouldn't be able to write C<{$recipient}>
+and have the recipient filled in.
+
+To prevent the 17 from appearing in the output is very simple:
+
+	{ ...
+	  $var = 17;
+	  '';
+	}
+
+Now the last expression evaluated yields the empty string, which is
+invisible.  If you don't like the way this looks, use
+
+	{ ...
+	  $var = 17;
+	  ($SILENTLY);
+	}
+
+instead.  Presumably, C<$SILENTLY> has no value, so nothing will be
+interpolated.  This is what is known as a `trick'.
+
+=head2 Compatibility
+
+Every effort has been made to make this module compatible with older
+versions.  The only known exceptions follow:
+
+The output format of the default C<BROKEN> subroutine has changed
+twice, most recently between versions 1.31 and 1.40.
+
+Starting in version 1.10, the C<$OUT> variable is arrogated for a
+special meaning.  If you had templates before version 1.10 that
+happened to use a variable named C<$OUT>, you will have to change them
+to use some other variable or all sorts of strangeness will result.
+
+Between versions 0.1b and 1.00 the behavior of the \ metacharacter
+changed.  In 0.1b, \\ was special everywhere, and the template
+processor always replaced it with a single backslash before passing
+the code to Perl for evaluation.  The rule now is more complicated but
+probably more convenient.  See the section on backslash processing,
+below, for a full discussion.
+
+=head2 Backslash Processing
+
+In C<Text::Template> beta versions, the backslash was special whenever
+it appeared before a brace or another backslash.  That meant that
+while C<{"\n"}> did indeed generate a newline, C<{"\\"}> did not
+generate a backslash, because the code passed to Perl for evaluation
+was C<"\"> which is a syntax error.  If you wanted a backslash, you
+would have had to write C<{"\\\\"}>.
+
+In C<Text::Template> versions 1.00 through 1.10, there was a bug:
+Backslash was special everywhere.  In these versions, C<{"\n"}>
+generated the letter C<n>.
+
+The bug has been corrected in version 1.11, but I did not go back to
+exactly the old rule, because I did not like the idea of having to
+write C<{"\\\\"}> to get one backslash.  The rule is now more
+complicated to remember, but probably easier to use.  The rule is now:
+Backslashes are always passed to Perl unchanged I<unless> they occur
+as part of a sequence like C<\\\\\\{> or C<\\\\\\}>.  In these
+contexts, they are special; C<\\> is replaced with C<\>, and C<\{> and
+C<\}> signal a literal brace.
+
+Examples:
+
+	\{ foo \}
+
+is I<not> evaluated, because the C<\> before the braces signals that
+they should be taken literally.  The result in the output looks like this:
+
+	{ foo }
+
+
+This is a syntax error:
+
+	{ "foo}" }
+
+because C<Text::Template> thinks that the code ends at the first C<}>,
+and then gets upset when it sees the second one.  To make this work
+correctly, use
+
+	{ "foo\}" }
+
+This passes C<"foo}"> to Perl for evaluation.  Note there's no C<\> in
+the evaluated code.  If you really want a C<\> in the evaluated code,
+use
+
+	{ "foo\\\}" }
+
+This passes C<"foo\}"> to Perl for evaluation.
+
+Starting with C<Text::Template> version 1.20, backslash processing is
+disabled if you use the C<DELIMITERS> option to specify alternative
+delimiter strings.
+
+=head2 A short note about C<$Text::Template::ERROR>
+
+In the past some people have fretted about `violating the package
+boundary' by examining a variable inside the C<Text::Template>
+package.  Don't feel this way.  C<$Text::Template::ERROR> is part of
+the published, official interface to this package.  It is perfectly OK
+to inspect this variable.  The interface is not going to change.
+
+If it really, really bothers you, you can import a function called
+C<TTerror> that returns the current value of the C<$ERROR> variable.
+So you can say:
+
+	use Text::Template 'TTerror';
+
+	my $template = new Text::Template (SOURCE => $filename);
+	unless ($template) {
+	  my $err = TTerror;
+	  die "Couldn't make template: $err; aborting";
+	}
+
+I don't see what benefit this has over just doing this:
+
+	use Text::Template;
+
+	my $template = new Text::Template (SOURCE => $filename)
+	  or die "Couldn't make template: $Text::Template::ERROR; aborting";
+
+But if it makes you happy to do it that way, go ahead.
+
+=head2 Sticky Widgets in Template Files
+
+The C<CGI> module provides functions for `sticky widgets', which are
+form input controls that retain their values from one page to the
+next.   Sometimes people want to know how to include these widgets
+into their template output.
+
+It's totally straightforward.  Just call the C<CGI> functions from
+inside the template:
+
+	{ $q->checkbox_group(NAME => 'toppings',
+		  	     LINEBREAK => true,
+			     COLUMNS => 3,
+			     VALUES => \@toppings,
+			    );
+	}
+
+=head2 Automatic preprocessing of program fragments
+
+It may be useful to preprocess the program fragments before they are
+evaluated.  See C<Text::Template::Preprocess> for more details.
+
+=head2 Author
+
+Mark-Jason Dominus, Plover Systems
+
+Please send questions and other remarks about this software to
+C<mjd-perl-template+@plover.com>
+
+You can join a very low-volume (E<lt>10 messages per year) mailing
+list for announcements about this package.  Send an empty note to
+C<mjd-perl-template-request@plover.com> to join.
+
+For updates, visit C<http://www.plover.com/~mjd/perl/Template/>.
+
+=head2 Support?
+
+This software is version 1.44.  It may have bugs.  Suggestions and bug
+reports are always welcome.  Send them to
+C<mjd-perl-template+@plover.com>.  (That is my address, not the address
+of the mailing list.  The mailing list address is a secret.)
+
+=head1 LICENSE
+
+    Text::Template version 1.44
+    Copyright (C) 2003 Mark Jason Dominus
+
+    This program is free software; you can redistribute it and/or
+    modify it under the terms of the GNU General Public License as
+    published by the Free Software Foundation; either version 2 of the
+    License, or (at your option) any later version.  You may also can
+    redistribute it and/or modify it under the terms of the Perl
+    Artistic License.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received copies of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+
+=head1 THANKS
+
+Many thanks to the following people for offering support,
+encouragement, advice, bug reports, and all the other good stuff.
+
+David H. Adler /
+Joel Appelbaum /
+Klaus Arnhold /
+AntE<oacute>nio AragE<atilde>o /
+Kevin Atteson /
+Chris.Brezil /
+Mike Brodhead /
+Tom Brown /
+Dr. Frank Bucolo /
+Tim Bunce /
+Juan E. Camacho /
+Itamar Almeida de Carvalho /
+Joseph Cheek /
+Gene Damon /
+San Deng /
+Bob Dougherty /
+Marek Grac /
+Dan Franklin /
+gary at dls.net /
+Todd A. Green /
+Donald L. Greer Jr. /
+Michelangelo Grigni /
+Zac Hansen /
+Tom Henry /
+Jarko Hietaniemi /
+Matt X. Hunter /
+Robert M. Ioffe /
+Daniel LaLiberte /
+Reuven M. Lerner /
+Trip Lilley /
+Yannis Livassof /
+Val Luck /
+Kevin Madsen /
+David Marshall /
+James Mastros /
+Joel Meulenberg /
+Jason Moore /
+Sergey Myasnikov /
+Chris Nandor /
+Bek Oberin /
+Steve Palincsar /
+Ron Pero /
+Hans Persson /
+Sean Roehnelt /
+Jonathan Roy /
+Shabbir J. Safdar /
+Jennifer D. St Clair /
+Uwe Schneider /
+Randal L. Schwartz /
+Michael G Schwern /
+Yonat Sharon /
+Brian C. Shensky /
+Niklas Skoglund /
+Tom Snee /
+Fred Steinberg /
+Hans Stoop /
+Michael J. Suzio /
+Dennis Taylor /
+James H. Thompson /
+Shad Todd /
+Lieven Tomme /
+Lorenzo Valdettaro /
+Larry Virden /
+Andy Wardley /
+Archie Warnock /
+Chris Wesley /
+Matt Womer /
+Andrew G Wood /
+Daini Xie /
+Michaely Yeung
+
+Special thanks to:
+
+=over 2
+
+=item Jonathan Roy
+
+for telling me how to do the C<Safe> support (I spent two years
+worrying about it, and then Jonathan pointed out that it was trivial.)
+
+=item Ranjit Bhatnagar
+
+for demanding less verbose fragments like they have in ASP, for
+helping me figure out the Right Thing, and, especially, for talking me
+out of adding any new syntax.  These discussions resulted in the
+C<$OUT> feature.
+
+=back
+
+=head2 Bugs and Caveats
+
+C<my> variables in C<fill_in> are still susceptible to being clobbered
+by template evaluation.  They all begin with C<fi_>, so avoid those
+names in your templates.
+
+The line number information will be wrong if the template's lines are
+not terminated by C<"\n">.  You should let me know if this is a
+problem.  If you do, I will fix it.
+
+The C<$OUT> variable has a special meaning in templates, so you cannot
+use it as if it were a regular variable.
+
+There are not quite enough tests in the test suite.
+
+=cut
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/GenResult/lib/Text/Template/Preprocess.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,144 @@
+
+package Text::Template::Preprocess;
+use Text::Template;
+@ISA = qw(Text::Template);
+$Text::Template::Preprocess::VERSION = 1.44;
+
+sub fill_in {
+  my $self = shift;
+  my (%args) = @_;
+  my $pp = $args{PREPROCESSOR} || $self->{PREPROCESSOR} ;
+  if ($pp) {
+    local $_ = $self->source();
+#    print "# fill_in: before <$_>\n";
+    &$pp;
+#    print "# fill_in: after <$_>\n";
+    $self->set_source_data($_);
+  }
+  $self->SUPER::fill_in(@_);
+}
+
+sub preprocessor {
+  my ($self, $pp) = @_;
+  my $old_pp = $self->{PREPROCESSOR};
+  $self->{PREPROCESSOR} = $pp if @_ > 1;  # OK to pass $pp=undef
+  $old_pp;
+}
+
+1;
+
+
+=head1 NAME
+
+Text::Template::Preprocess - Expand template text with embedded Perl
+
+=head1 VERSION
+
+This file documents C<Text::Template::Preprocess> version B<1.44>
+
+=head1 SYNOPSIS
+
+ use Text::Template::Preprocess;
+
+ my $t = Text::Template::Preprocess->new(...);  # identical to Text::Template
+
+ # Fill in template, but preprocess each code fragment with pp().
+ my $result = $t->fill_in(..., PREPROCESSOR => \&pp);
+
+ my $old_pp = $t->preprocessor(\&new_pp);
+
+=head1 DESCRIPTION
+
+C<Text::Template::Preprocess> provides a new C<PREPROCESSOR> option to
+C<fill_in>.  If the C<PREPROCESSOR> option is supplied, it must be a
+reference to a preprocessor subroutine.  When filling out a template,
+C<Text::Template::Preprocessor> will use this subroutine to preprocess
+the program fragment prior to evaluating the code.
+
+The preprocessor subroutine will be called repeatedly, once for each
+program fragment.  The program fragment will be in C<$_>.  The
+subroutine should modify the contents of C<$_> and return.
+C<Text::Template::Preprocess> will then execute contents of C<$_> and
+insert the result into the appropriate part of the template.
+
+C<Text::Template::Preprocess> objects also support a utility method,
+C<preprocessor()>, which sets a new preprocessor for the object.  This
+preprocessor is used for all subsequent calls to C<fill_in> except
+where overridden by an explicit C<PREPROCESSOR> option.
+C<preprocessor()> returns the previous default preprocessor function,
+or undefined if there wasn't one.  When invoked with no arguments,
+C<preprocessor()> returns the object's current default preprocessor
+function without changing it.
+
+In all other respects, C<Text::Template::Preprocess> is identical to
+C<Text::Template>.
+
+=head1 WHY?
+
+One possible purpose:  If your files contain a lot of JavaScript, like
+this:
+
+
+        Plain text here...
+        { perl code }
+        <script language=JavaScript>
+     	      if (br== "n3") {
+	  	  // etc.
+	      }
+        </script>
+        { more perl code }
+        More plain text...
+
+You don't want C<Text::Template> to confuse the curly braces in the
+JavaScript program with executable Perl code.  One strategy:
+
+        sub quote_scripts {
+          s(<script(.*?)</script>)(q{$1})gsi;
+        }
+
+Then use C<PREPROCESSOR =E<gt> \&quote_scripts>.  This will transform
+
+
+
+=head1 SEE ALSO
+
+L<Text::Template>
+
+=head1 AUTHOR
+
+
+Mark-Jason Dominus, Plover Systems
+
+Please send questions and other remarks about this software to
+C<mjd-perl-template+@plover.com>
+
+You can join a very low-volume (E<lt>10 messages per year) mailing
+list for announcements about this package.  Send an empty note to
+C<mjd-perl-template-request@plover.com> to join.
+
+For updates, visit C<http://www.plover.com/~mjd/perl/Template/>.
+
+=head1 LICENSE
+
+    Text::Template::Preprocess version 1.44
+    Copyright (C) 2003 Mark Jason Dominus
+
+    This program is free software; you can redistribute it and/or
+    modify it under the terms of the GNU General Public License as
+    published by the Free Software Foundation; either version 2 of the
+    License, or (at your option) any later version.  You may also can
+    redistribute it and/or modify it under the terms of the Perl
+    Artistic License.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received copies of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+
+=cut
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/GenResult/locations.tmpl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,45 @@
+[@--# Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Template processed by GenDiamondsXml.pm
+# 
+#--@]
+<?xml version="1.0" encoding="utf-8"?>
+<diamonds-build>
+  <schema>[@--$ENV{DiamondsSchemaNum}--@]</schema>
+  [@--
+	my $PubPath = "";
+  my $LogPath = "";
+	if($ENV{BuildSubType} eq "Daily")
+	{
+		$LogPath = $ENV{PublishLocation}."\\".$ENV{Type}."\\" .$ENV{BuildNumber}."\\logs\\";
+		$PubPath = $ENV{PublishLocation}."\\"."ComponentisedReleases\\DailyBuildArchive\\".$ENV{BuildBaseName};
+	}
+	elsif($ENV{BuildSubType} eq "Test") #merge if else in to one after sucuess
+	{
+		$LogPath = $ENV{PublishLocation}."\\".$ENV{Type}."\\" .$ENV{BuildNumber}."\\logs\\";
+		$PubPath = $ENV{PublishLocation}."\\"."ComponentisedReleases\\TestArchive\\".$ENV{BuildBaseName};
+	}
+  $OUT .="
+  <locations>
+    <location>
+      <link>$PubPath</link>
+      <description>Build Location</description>
+    </location>
+    <location>
+      <link>$LogPath</link>
+      <description>Build Logs Location</description>
+    </location>
+  </locations>";
+  --@]
+</diamonds-build>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/GenResult/myutils.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,59 @@
+# Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Utility functions that are used by templates.
+# 
+#
+package myutils;
+
+my $iDir = $ENV{PublishLocation}."\\".$ENV{Type}."\\" .$ENV{BuildNumber}."\\logs\\";
+my $iSnapshot = $ENV{SnapshotNumber};
+my $iProduct = $ENV{Product};
+my $iLinkPath = $ENV{PublishLocation}."\\".$ENV{Type}."\\logs\\".$ENV{BuildNumber}."\\";
+
+sub getiDir
+{
+    return $iDir;
+}
+
+sub getiSnapshot
+{
+    return $iSnapshot;
+}
+
+sub getiProduct
+{
+    return $iProduct;
+}
+
+sub getiLinkPath
+{
+    return $iLinkPath;
+}
+
+sub getTime
+{
+    my ($sec,$min,$hours,$mday,$mon,$year)= localtime();
+    $year += 1900;
+    $mon +=1;
+    my @date = ($year,$mon,$mday,$hours,$min,$sec);
+    my $date = sprintf("%d-%02d-%02dT%02d:%02d:%02d", @date);
+    return ($date);
+}
+
+sub getDelim
+{
+  $Delimiter = [ '[@--', '--@]' ];
+  return (\$Delimiter);
+}
+1;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/GenResult/publishDiamonds.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,98 @@
+# Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Script that actually calls the send_xml_to_diamonds.pl for sending data to Diamonds server
+# It also maintains the Diamonds BuildID
+#
+package publishDiamonds;
+use strict;
+use FindBin;
+use lib "$FindBin::Bin";
+
+my $buildIdFile = "DiamondsBuildID";
+#~ my $server = 'diamonds.nmp.nokia.com:9003';
+#~ my $localServer = '2ind04992.noe.nokia.com:8888';
+sub publishToDiamonds
+{
+  my $file = shift;
+  my $server = shift;
+  chomp ($file);
+  
+  ##--remove blank lines
+  open (FILE,"<$file") or warn "$file::$!\n";
+  open (OUT, ">tmpfile.$$") or warn "tmpfile.$$::$!\n";
+  while(<FILE>)
+  {
+    next if /^\s*$/;
+    print OUT $_;
+  }
+  close FILE; close OUT;
+  unlink("$file") or warn "Error in deleting: $!\n";
+  rename("tmpfile.$$", "$file") or warn "Error in rename: $!";
+  
+  my $command = "perl $FindBin::Bin\\send_xml_to_diamonds.pl -s $server -f $file";
+  
+  my $id = 0;
+  eval
+  {
+    open(FH,"<DiamondsBuildID") or warn "DiamondsBuildID file not created: $!\n";
+  };
+  if (!$@)
+  {
+    $id = <FH>;
+    close (FH);
+  }
+  if($id ne "" && $id > 1)
+  {
+    $command .= " -u /diamonds/builds/$id/";
+    executeCommand($command);
+  }
+  else
+  {
+    $command .= " -u /diamonds/builds/";
+    $id = executeCommand($command);
+    open (FH,">DiamondsBuildID") or die "DiamondsBuildID file not created: $!\n";
+    print FH $id;
+  }
+close(FH);
+}
+
+
+sub executeCommand
+{
+  my $command = shift;
+  #~ print "$command\n";
+  my @cmdOP = `$command`;
+  my @serverResponse = grep {/^Server response:/i} @cmdOP;
+  my @responseStatus = grep {/^Response status:/i} @cmdOP;
+  my @responseReason = grep {/^Response reason:/i} @cmdOP;
+  
+  chomp(@serverResponse,@responseReason,@responseStatus);
+  if ($responseStatus[0] !~ /:200/)
+  {
+    print "Error sending XML: $responseReason[0]\n";
+  }
+  elsif($serverResponse[0] !~ /:\/diamonds\/builds\/\d+\//)
+  {
+    print "Diamond Server Response: $serverResponse[0]\n";
+  }
+  else
+  {
+    $serverResponse[0] =~ /:\/diamonds\/builds\/(\d+)\//;
+    my $id = $1;
+    print "$id\n";
+    return $id;
+  }
+}
+
+1;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/GenResult/schema.tmpl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,20 @@
+[@--# Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Template processed by GenDiamondsXml.pm
+# 
+#--@]
+<?xml version="1.0" encoding="utf-8"?>
+<diamonds-build>
+	<schema>[@--$ENV{DiamondsSchemaNum}--@]</schema>
+</diamonds-build>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/GenResult/send_xml_to_diamonds.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,92 @@
+# Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Script to send XML data to diamonds
+# 
+#
+use HTTP::Request::Common qw(POST);
+use LWP::UserAgent;
+
+use Getopt::Long;
+
+my $iServer;
+my $iUrl;
+my $iFile;
+my $iHelp;
+my $res;
+
+my $import_failed_message  = "XML was not sent successfully to Diamonds via REST interface!\n";
+my $import_succeed_message = "XML was sent successfully to Diamonds via REST interface.\n";
+
+my $ua = LWP::UserAgent->new();
+
+GetOptions('s=s' => \$iServer, 'u=s' => \$iUrl, 'f=s' => \$iFile, 'h' => \$iHelp);
+if ((!defined $iServer) || (!defined $iUrl) || (!defined $iFile) || ($iHelp))
+{
+  Usage();
+}
+
+my $absoluteUrl = "http://".$iServer.$iUrl;
+my $request = HTTP::Request->new(POST => $absoluteUrl);
+$request->header('Content-Type' => 'text/xml');
+
+open (FH,"<$iFile") or die "$iFile:$!\n";
+my @filecon = <FH>;
+my $XmlContent = join("",@filecon);
+$request->content($XmlContent);
+$res = $ua->request($request);
+
+print "Response status:".$res->code()."\n";
+print "Response reason:".$res->message()."\n";
+
+if ($res->code() != 200)
+{
+  print "ERROR in sending XML data\n";
+}
+else
+{
+  print "Server response:".$res->content()."\n";
+}
+
+sub Usage()
+{
+  print <<USE;
+  Use:
+    send_xml_to_diamonds.pl options
+    
+    Mandatory options:
+    -s    Server address
+    -u    Url
+    -f    path of XML file
+    
+    -h    help
+    
+    Examples:
+    Sending a new build to release instance of Diamonds
+        send_xml_to_diamonds.pl -s diamonds.nmp.nokia.com -u /diamonds/builds/ -f c:\\build.xml
+    
+    Updating test results to existing build
+        send_xml_to_diamonds.pl -s diamonds.nmp.nokia.com -u /diamonds/builds/123/ -f c:\\test.xml
+    
+    Sending data for Relative Change in SW Asset metrics
+        send_xml_to_diamonds.pl -s diamonds.nmp.nokia.com -u /diamonds/metrics/ -f c:\\relative.xml
+    
+    Sending data for Function Coverage
+        send_xml_to_diamonds.pl -s diamonds.nmp.nokia.com -u /diamonds/tests/coverage/ -f c:\\coverage.xml
+    
+    Note: If you want to send XML to development version of Diamonds in testing purposes, use
+    address: trdeli02.nmp.nokia.com:9001 in the server address:
+        send_xml_to_diamonds.pl -s trdeli02.nmp.nokia.com:9001 -u /diamonds/builds/ -f c:\\build.xml
+USE
+  exit;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/GenResult/send_xml_to_diamonds.py	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,178 @@
+# Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Script to send xml data to diamonds
+# 
+#
+command_help = """
+Send XML data from file to Diamonds. v.1.23
+Use:
+    send_xml_to_diamonds.py options
+    
+    Mandatory options:
+    -s    Server address
+    -u    Url
+    -f    path of XML file
+    
+    Optional options:
+    -m    Send only mail, without POST connection. Recommend only,
+          when direct POST connection is not available.
+    -o    mail server. Not needed inside Nokia intranet.
+    -h    help
+    
+    Examples:
+    Sending only by mail, without POST. (not recommended)
+        send_xml_to_diamonds.py -s diamonds.nmp.nokia.com -u /diamonds/builds/ -f c:\\build.xml -m buildtoolsautomation@nokia.com
+    
+    Sending a new build to release instance of Diamonds
+        send_xml_to_diamonds.py -s diamonds.nmp.nokia.com -u /diamonds/builds/ -f c:\\build.xml
+    
+    Updating test results to existing build
+        send_xml_to_diamonds.py -s diamonds.nmp.nokia.com -u /diamonds/builds/123/ -f c:\\test.xml
+    
+    Sending data for Relative Change in SW Asset metrics
+        send_xml_to_diamonds.py -s diamonds.nmp.nokia.com -u /diamonds/metrics/ -f c:\\relative.xml
+    
+    Sending data for Function Coverage
+        send_xml_to_diamonds.py -s diamonds.nmp.nokia.com -u /diamonds/tests/coverage/ -f c:\\coverage.xml
+    
+    Note: If you want to send XML to development version of Diamonds in testing purposes, use
+    address: trdeli02.nmp.nokia.com:9001 in the server address:
+        send_xml_to_diamonds.py -s trdeli02.nmp.nokia.com:9001 -u /diamonds/builds/ -f c:\\build.xml
+"""
+
+from httplib import *
+import os, sys, time, re
+
+
+def send_email(subject, body, sender, receivers, encoding, mail_server):
+    """
+    Create an email message as MIMEText instance.
+    """
+    from email.Header import Header
+    from email.MIMEText import MIMEText
+    from email.Utils import parseaddr, formataddr
+    import smtplib
+    
+    msg = MIMEText(body, "plain", encoding)
+    msg["To"] = Header(u", ".join(receivers), encoding)
+    msg["Subject"] = Header(subject, encoding)
+    
+    smtp = smtplib.SMTP() 
+    smtp.connect(mail_server)
+    smtp.sendmail(sender, receivers, msg.as_string())
+    smtp.close()
+
+def get_username():
+    platform = sys.platform
+    if platform == "win32":
+        return os.getenv("USERNAME")
+    else:
+        return os.getlogin()
+
+def get_mail_subject(sender, server, url):
+    return "[DIAMONDS_DATA] %s>>>%s>>>%s" % (sender, server, url)
+
+def get_response_message(response):
+    return "Response status:%s \
+    \nResponse reason:%s\n" \
+           % (response.status, response.reason)
+
+def get_process_time(total_time):
+    if total_time<=60:
+        return  "%s seconds" % round(total_time, 1)
+    else:
+        return "%s minutes and %s seconds" % (int(total_time/60), round((total_time%60), 1))
+
+def main():
+    start_time          = time.time()
+    server_valid        = False
+    url_valid           = False
+    sfile_valid         = False
+    mail_address        = None
+    mail_server_address = "smtp.nokia.com"
+    _                   = sys.argv.pop(0)
+    
+    while sys.argv:
+        parameter = sys.argv.pop(0)
+        if re.search('^-', parameter):
+            if parameter == '-s':
+                server       = sys.argv.pop(0)
+                server_valid = True
+            elif parameter == '-u':
+                url          = sys.argv.pop(0)
+                url_valid    = True
+            elif parameter == '-f':
+                source_file  = sys.argv.pop(0)
+                sfile_valid  = True
+                try:
+                    xml = open(source_file).read()
+                except:
+                    sys.exit("Can not open the file %s" % source_file)
+            elif parameter == '-m':
+                mail_address = sys.argv.pop(0)
+            elif parameter == '-o':
+                mail_server_address = sys.argv.pop(0)
+            elif parameter == '-h':
+                sys.exit("HELP:\n %s" % (command_help))
+            else:
+                sys.exit("Incorrect parameter! %s" % (parameter) + command_help )
+        else:
+            sys.exit("Incorrect parameter! %s" % (parameter) + command_help)
+    if not server_valid or not url_valid or not sfile_valid:
+        sys.exit("Too few parameters: Use -h for help")
+    
+    diamonds_mail_box      = "diamonds@diamonds.nmp.nokia.com"
+    import_failed_message  = "XML was not sent successfully to Diamonds via REST interface!\n"
+    import_succeed_message = "XML was sent successfully to Diamonds via REST interface.\n"
+    mail_sent_message      = "XML was sent to Diamonds by mail. Scheduled script will try to import it to Diamonds. If you can not see data soon in Diamonds, please contact to Diamonds developers.\n"
+    
+    if not mail_address:
+        connection = HTTPConnection(server)
+        
+        try:
+            connection.request("POST", url, xml)
+        except:
+            print "Can not connect to the server %s\n" % server
+            sender = get_username()
+            #send_email(get_mail_subject(sender, server, url), xml, sender, [diamonds_mail_box], "latin-1", mail_server_address)
+            sys.exit(mail_sent_message)
+        
+        response = connection.getresponse()
+        
+        # More info about httplib
+        # http://docs.python.org/lib/module-httplib.html
+        if response.status == 200:
+            print import_succeed_message
+            print get_response_message(response)
+            print "Server response:%s\n" % response.read()
+        else:
+            print import_failed_message
+            print get_response_message(response)
+            sender = get_username()
+            #send_email(get_mail_subject(sender, server, url), xml, sender, [diamonds_mail_box], "latin-1", mail_server_address)
+            print mail_sent_message
+        
+        connection.close()
+           
+    else:
+        print 'Sending only mail'
+        sender = get_username()
+        #send_email(get_mail_subject(sender, server, url), xml, sender, [mail_address], "latin-1", mail_server_address)
+    
+    print "------------------------"
+    print "Processed in %s" % get_process_time(time.time()-start_time)
+    print "------------------------"
+
+if __name__ == "__main__":
+    main()
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/GenResult/stage.tmpl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,30 @@
+[@--# Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Template processed by GenDiamondsXml.pm
+# 
+#--@]
+<?xml version="1.0" encoding="utf-8"?>
+<diamonds-build>
+  <schema>[@--$ENV{DiamondsSchemaNum}--@]</schema>
+  <stages>
+    <stage>
+      <name>[@--$iStage--@]</name>
+      [@--
+      use myutils; 
+      if($START){"<started>".&myutils::getTime()."</started>";}
+      elsif($STOP){"<finished>".&myutils::getTime()."</finished>";}
+      --@]
+    </stage>
+  </stages>
+</diamonds-build>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/GenResult/status.tmpl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,23 @@
+[@--# Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Template processed by GenDiamondsXml.pm
+# 
+#--@]
+<?xml version="1.0" encoding="utf-8"?>
+<diamonds-build>
+  <schema>[@--$ENV{DiamondsSchemaNum}--@]</schema>
+  <build>
+    <status>[@--use myutils; use BragStatus; &BragStatus::main(&myutils::getiDir, &myutils::getiSnapshot, &myutils::getiProduct, &myutils::getiLinkPath);--@]</status>
+  </build>
+</diamonds-build>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/GenResult/tools.tmpl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,34 @@
+[@--# Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Template processed by GenDiamondsXml.pm
+# 
+#--@]
+<?xml version="1.0" encoding="utf-8"?>
+<diamonds-build>
+  <schema>[@--$ENV{DiamondsSchemaNum}--@]</schema>
+  <tools>
+    <tool>
+      <name>ARM RVCT</name>
+      <version>[@--$ENV{MWVER}--@]</version>
+    </tool>
+    <tool>
+      <name>MetroWerks</name>
+      <version>[@--$ENV{ARMVER}--@]</version>
+    </tool>
+    <tool>
+      <name>SBS</name>
+      <version>[@--$ENV{SBS_VERSION}--@]</version>
+    </tool>
+  </tools>
+</diamonds-build>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/GenerateChangesReport.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,820 @@
+#! perl
+
+use strict;
+use Getopt::Long;
+
+# TODO:
+# Improve performance by not accessing P4 for every source line in every MRP file
+# Handle situation where clean-src dir is missing by accessing MRP file from Perforce
+# Use autobuild database to get perforce information directly?
+# What should we do about change C reverts change B which reverted change A? 
+#  => Hope C has a good description, as this implementation will discard both A and B descriptions.
+
+#note: currently relies on existence of perforce report of previous build
+
+# Parameters passed to script
+my $Product = shift;           	# e.g. 9.3
+my $Platform = shift;          	# e.g. cedar       
+my $CurentBuild = shift;       	# e.g. 03935
+my $CurrentCL = shift;         	# e.g. 775517
+shift;				# e.g. 03935_Symbian_OS_v9.3
+my $CurrCodeLine = shift;   	# e.g. //epoc/master/
+my $PreviousBuild = shift;	# the build number of the previous release (eg 03925)
+my $LogDirs = shift;           	# e.g. \\builds01\devbuilds
+my $CleanSourceDir = shift;	# e.g. M:\clean-src (synched file from perforce)
+
+my $debug = 0; 		       	# set to 1 to print debug logfile and progress information
+
+GetOptions(
+  	'v' => \$debug);
+
+# Derived parameters
+my $CurrBldName = "$CurentBuild\_Symbian_OS_v$Product";	# e.g. 03935_Symbian_OS_v9.3
+
+
+# Global variables
+
+my $PreviousLogDir;		# location of the logs associated with the previous release build 
+my $PrevFileAndPath;		# name of the previous release build's perforce report and its location
+my $PrevBldName;                # e.g. 03925_Symbian_OS_v9.3
+
+my $MainLineCL = 0;             # the CL of the build from which the current build
+                                #    was branched if it is on a delivery branch
+my $MainLineLine;               # the codeline of the build from which the current
+                                #    build was branched if on a delivery branch
+
+my %allDefects;			# hash containing all of the defect fixes
+my %allBreaks;			# hash contains all of the delivered breaks
+my %changeToComponents;	# hash containing lists of components affected by a given change
+my %reverted;			# hash of reverted changelists
+
+# Tidy up directories to ensure they are in a standard format
+$CurrCodeLine =~ s/[^\/]$/$&\//;# ensure a trailing fwdslash for codeline
+$LogDirs =~ s/\\$//;		# ensure no trailing back slash for codeline
+$CleanSourceDir =~ s/\\$//;	# ensure no trailing back slash for codeline
+
+# add information to the debug log if the debug flag is set
+if ($debug)
+{
+    # Open an error log
+    open ERRORLOG, "> Errorlog.txt";
+    print ERRORLOG <<"END";
+Inputs:
+
+Product: $Product
+Platform: $Platform
+Current build: $CurentBuild
+Current build CL: $CurrentCL
+Current Build Name: $CurrBldName
+Previous Build: $PreviousBuild
+Log Directory: $LogDirs
+Clean Source Dir: $CleanSourceDir
+
+Errors:
+
+END
+}
+
+# If the previous release was from a delivery branch, then use the build from 
+# from which the delivery branch was created by removing the letters (changes
+# on the files on the branch will also have been made on the main codeline)
+$PreviousBuild =~ s/[a-z]+(\.\d+)?//;
+
+# If the current build is on a delivery branch, then store the information about
+# the build from which it was branched as it will be necessary to get the descriptions
+# from perforce for versions on the branch and versions on the main codeline up to 
+# where the branch was created separately
+
+if ($CurentBuild =~ /[a-z]+/)
+{
+    my $MainLineBuild = $CurentBuild;
+    $MainLineBuild =~ s/[a-z]+(\.\d+)?//;
+    # There is insufficient information here anyway, e.g. if M09999 failed and we did 
+    # M09999.01 as the original candidate, then there is no way of telling the tool
+    
+    my $MainLineBldName = "$MainLineBuild\_Symbian_OS_v$Product";
+    my $MainLinePerforce = "$LogDirs\\$MainLineBldName\\logs\\$MainLineBuild\_$Product" . "PC_Perforce_report.html";
+    ($MainLineCL, $MainLineLine) = GetPrevCodelineandCL($MainLinePerforce, $Platform);
+}
+
+# Construct the previous build name
+$PrevBldName = "$PreviousBuild\_Symbian_OS_v$Product";
+
+# Construct the name of the peforce report file for the previous external release
+# to look similar to this:  03925_9.3PC_Perforce_report.html
+my $PerforceReport = $PreviousBuild."_".$Product."PC_Perforce_report.html";
+
+# Look for $PerforceReport in the build logs directory and the log archive directory
+$PreviousLogDir = "$LogDirs\\$PrevBldName\\logs\\";
+
+$PrevFileAndPath = $PreviousLogDir.$PerforceReport;
+
+if (! -d $CleanSourceDir)
+{
+    # if the report is found in neither directory then die
+    if ($debug==1)
+    {
+      print ERRORLOG "Clean-src directory does not exist! ($CleanSourceDir)\n";
+    }
+    die "ERROR: Clean-src directory does not exist";
+}
+
+if (! -e $PrevFileAndPath)
+{ 
+    $PreviousLogDir = "$LogDirs\\logs\\$PrevBldName\\";  
+    $PrevFileAndPath = $PreviousLogDir.$PerforceReport;
+}
+if (! -e $PrevFileAndPath)
+{
+    # if the report is found in neither directory then die
+    if ($debug==1)
+    {
+      print ERRORLOG "Could not find Perforce report of previous external release! ($PrevFileAndPath)\n";
+    }
+    die "ERROR: Cannot find previous Perforce report";
+}
+
+# Parse the Perforce report to extract the previous build's change list and codeline path
+my ($PreviousCL, $PrevCodeLine) = GetPrevCodelineandCL($PrevFileAndPath, $Platform);
+
+# Create the path of the current build's log directory
+my $CurrentLogDir = "$LogDirs\\$CurrBldName\\logs\\";
+
+# Obtain the component lists (arrays are passed back by reference, each element containing a component
+# name separated by one or more spaces from its associated mrp file as it appears in the component files)
+my ($GTprevCompList, $GTlatestCompList, 
+    $TVprevCompList, $TVlatestCompList) = GetGTandTVcomponentLists($CurrentLogDir, $PreviousLogDir);
+
+# Consolidate the lists of components in to two hashes: one for the current build and one for the previous
+# release build. These contain an index to distinguish between GT and TechView components and another index
+# with the names of the components. The mrp files are the elements being indexed.
+my ($PrevMRP, $CurrMRP) = CreateMRPLists($GTprevCompList, 
+                                         $GTlatestCompList, 
+                                         $TVprevCompList, 
+                                         $TVlatestCompList);
+
+# For each component, extract its source directories from its MRP file and add the information to a list 
+my (@ComponentAndSource) = ProcessLists($Product, 
+                                        $PrevCodeLine, 
+                                        $Platform , 
+                                        $PrevMRP, 
+                                        $CurrMRP, 
+                                        $PreviousCL,
+                                        $CleanSourceDir);
+
+# Put together the HTML file using the components list with their associated source files
+(my $ChangesFileHTML) = CreateReleaseNotes($Product, 
+                                           $CurrCodeLine,
+                                           $MainLineLine,
+                                           $PreviousCL, 
+                                           $CurrentCL, 
+                                           $MainLineCL,
+                                           @ComponentAndSource);
+
+if ($debug)
+{
+    close ERRORLOG;
+}
+
+print "FINISHED!! - $ChangesFileHTML\n";
+
+exit;
+
+#
+#
+# Gets component lists from the builds' log directories. Reads the contents 
+# of the files in to arrays and returns references to these arrays.
+#
+# Inputs:  Current and previous build's logfile locations
+# Outputs: Arrays containing contents of previous and current GTcomponents.txt
+#          and TVcomponents.txt files (list of components with their associated
+#          mrp files). An example array elment might contain:
+#          "ChatScripts	\sf\os\unref\orphan\comtt\chatscripts\group\testtools_chatscripts.mrp"
+#
+sub GetGTandTVcomponentLists
+{
+    my ($CurrLogPath, $PrevLogPath) = @_;
+
+    # Data to return: array of refs to arrays of contents of files
+    my @return;
+
+    # Files to read from
+    my @FileNames = (
+        $PrevLogPath."GTcomponents.txt",
+        $CurrLogPath."GTcomponents.txt",
+        $PrevLogPath."TechViewComponents.txt",
+        $CurrLogPath."TechViewComponents.txt",
+    );
+
+    foreach my $FileName (@FileNames)
+    {
+        if (!open(DAT, $FileName)) 
+        { 
+            if ($debug)
+            {
+                print ERRORLOG "Could not open $FileName!\n";
+            }
+            die "ERROR: Could not open $FileName: $!";
+        }
+        push @return, [<DAT>];
+        close DAT;
+    }
+
+    return @return;
+}
+
+#
+#
+# Creates two list of components and their associated mrp files - one for the previous 
+# build and one for the current build
+#
+# Inputs: the contents of the GT and TV components files
+# Outputs: Two lists of components and their mrp files, one from the previous build
+#          and one from the current build
+#
+#
+sub CreateMRPLists
+{
+    # references to the contents of the components files              
+    my $GTprevFile = shift; 
+    my $GTlatestFile = shift; 
+    my $TVprevFile = shift; 
+    my $TVlatestFile = shift; 
+
+    my %PreviousMrps;    #Hash of all Components and their MRP file locations for the previous build
+    my %CurrentMrps;     #Hash of all Components and their MRP file locations for the current build
+    
+    # Add mrp files to a hash indexed under GT or TV and by component names 
+    foreach my $case (
+        [\%PreviousMrps, 'GT', $GTprevFile],
+        [\%CurrentMrps,  'GT', $GTlatestFile],
+        [\%PreviousMrps, 'TV', $TVprevFile],
+        [\%CurrentMrps,  'TV', $TVlatestFile],
+        )
+    {
+        foreach my $element (@{$case->[2]})
+          {
+            if ( $element =~ /(.*)\s+(\\sf\\.*)$/ )
+            {
+                ${$case->[0]}{$case->[1]}{uc($1)} = lc($2);
+            }
+          }
+    }
+    
+    return \%PreviousMrps, \%CurrentMrps;
+}
+
+
+#
+#
+# Use the contents of the MRP files to create a single list containing the GT and TechView
+# components paired with associated source files.
+#
+# Inputs: Product, Codeline, Previous Codeline, Platform, Both lists of mrps, 
+#         Previous Changelist number, Build machine's clean source directory which
+#         contains copies of the current build's mrp files.
+# Outputs: Array containing all components and their source locations
+#
+#
+sub ProcessLists
+{
+    my $Product = shift;
+    my $PrevCodeLine = shift;
+    my $Platform = shift;
+    my $PreviousMrps = shift;   #Hash of MRPs at the Previous changelist number
+    my $CurrentMrps = shift;    #Hash of MRPs at the Current changelist number
+    my $PrevCL = shift;
+    my $CleanSourceDir = shift;
+
+    my @PrevGTMrpComponents;    #Array of GT Components at Previous changelist number
+    my @CurrGTMrpComponents;    #Array of GT Components at Current changelist number
+    my @PrevTVMrpComponents;    #Array of TV Components at Previous changelist number
+    my @CurrTVMrpComponents;    #Array of TV Components at Current changelist number
+	
+    # Isolate hashes
+    my $CurrGT = $CurrentMrps->{'GT'};
+    my $CurrTV = $CurrentMrps->{'TV'};
+    my $PrevGT = $PreviousMrps->{'GT'};
+    my $PrevTV = $PreviousMrps->{'TV'};
+
+    # Append the location of the clean source directory for the current build
+    # to all the mrp files. If a file appears only in the previous build (i.e.  
+    # a component has been removed) its location in perforce is later substituted
+    # in place of this path
+    foreach my $component (sort keys %$CurrGT)
+    {
+	$CurrGT->{$component} =~ s|\\sf|$CleanSourceDir|ig;
+        $CurrGT->{$component} =~ s|\\|\/|g;
+	push @CurrGTMrpComponents, "$component\t$CurrGT->{$component}";
+    }
+
+    foreach my $component (sort keys %$CurrTV)
+    {
+	$CurrTV->{$component} =~ s|\\sf|$CleanSourceDir|ig;
+	$CurrTV->{$component} =~ s|\\|\/|g;
+	push @CurrTVMrpComponents, "$component\t$CurrTV->{$component}";
+    }
+
+    foreach my $component (sort keys %$PrevGT)
+    {
+	$PrevGT->{$component} =~ s|\\sf|$CleanSourceDir|ig;
+	$PrevGT->{$component} =~ s|\\|\/|g; 
+	push @PrevGTMrpComponents, "$component"."\t"."$PrevGT->{$component}";
+    }
+
+    foreach my $component (sort keys %$PrevTV)
+    {
+	$PrevTV->{$component} =~ s|\\sf|$CleanSourceDir|ig;
+	$PrevTV->{$component} =~ s|\\|\/|g;
+	push @PrevTVMrpComponents, "$component"."\t"."$PrevTV->{$component}";
+    }
+    
+    # add any components that appear only in the previous build's list to the 
+    # current build's list with its location in perforce.
+    foreach my $PrevGTComp(@PrevGTMrpComponents)
+    {
+    	my $match = 0;
+    	#Compare component lists to ensure they contain the same components.
+    	foreach my $CurrGTComp(@CurrGTMrpComponents)
+    	{
+	    $match = 1 if($PrevGTComp eq $CurrGTComp);
+	}
+	
+	#If a component is found in the Previous list which isn't in the Current list, 
+        #then insert it into the Current list with the previous build's path
+	if($match == 0)
+        {
+            $PrevGTComp =~ s|\/|\\|g;
+            $PrevGTComp =~ s|\Q$CleanSourceDir\E\\|$PrevCodeLine|ig;
+            $PrevGTComp =~ s|\\|\/|g;
+            push @CurrGTMrpComponents, $PrevGTComp;    
+        }
+    }
+
+    # add any components that appear only in the previous build's list to the 
+    # current build's list with its location in perforce.
+    foreach my $PrevTVComp(@PrevTVMrpComponents)
+    {
+    	my $match = 0;
+    	#Compare component lists to ensure they contain the same components.
+    	foreach my $CurrTVComp(@CurrTVMrpComponents)
+    	{
+	    $match = 1 if($PrevTVComp eq $CurrTVComp);
+	}
+	
+	#If a component is found in the Previous list which isn't in the Current list, 
+        #then insert it into the Current list
+        if($match == 0)
+        {
+           $PrevTVComp =~ s|$CleanSourceDir|$PrevCodeLine|ig;
+	   push @CurrTVMrpComponents, $PrevTVComp;
+        }
+    }
+
+    # Combine current GT and TV components, with a boundary marker
+    my @CurrMrpComponents = (@CurrGTMrpComponents, "**TECHVIEWCOMPONENTS**", @CurrTVMrpComponents);
+
+    # Swap the back slashes for forward slashes
+    $CleanSourceDir =~ s/\\/\//g;
+    $PrevCodeLine =~ s/\\/\//g;
+ 
+    #Use the MRP file for each component to obtain the source directory locations
+    my @ComponentAndSource;
+    foreach my $ComponentLine(@CurrMrpComponents)
+    {
+        #Array to hold mrp file contents
+        my @MrpContents;
+
+        # if the file is in the Clean Source Directory then read its contents from there
+	if($ComponentLine =~ /.*(\Q$CleanSourceDir\E.*)/)
+	{ 
+	    my $MrpFile = $1;
+	    $MrpFile =~ s/\.mrp.*$/\.mrp/;  #drop any trailing spaces or tabs
+            if (-e $MrpFile)
+            {
+                open(FILE, $MrpFile);
+                @MrpContents=<FILE>;
+                close FILE;
+            }          
+	}
+        elsif($ComponentLine =~ /.*(\Q$PrevCodeLine\E.*)/)
+        {
+	    # If a component has been removed between the previous build and the current one then 
+	    # its MRP file will only exist at the PrevCL
+            @MrpContents = `p4 print -q $1...\@$PrevCL`; # access Perforce via system command 
+        }
+	elsif($ComponentLine =~ /\*\*TECHVIEWCOMPONENTS\*\*/)
+	{
+	    push @MrpContents, $ComponentLine;
+	}
+        
+	#Construct an array containing components in uppercase followed by 
+        #all their sourcelines in lowercase
+	foreach my $line(@MrpContents)
+	{
+	    if($line =~ /^component\s+(.*)/i)
+	    {
+		my $ComponentName = uc($1);
+		push @ComponentAndSource, $ComponentName;
+	    }
+	    elsif($line =~ /^source\s+(.*)/i)
+	    {
+		my $Source = lc($1);
+		$Source =~ s/\\/\//g;
+		$Source =~ s|/sf/||;
+		$Source =~ s|/product/|$Platform/product|ig;
+		push @ComponentAndSource, $Source;
+            }
+	    elsif($line =~ /TECHVIEWCOMPONENTS/)
+	    {
+		push @ComponentAndSource, $line;
+	    }
+	}
+    }
+    return @ComponentAndSource;
+}
+
+#
+# Format the changes associated with a component
+#
+# Inputs: 
+#   reference to hash of change descriptions by changelist number, 
+#	component name, 
+#   reference to (formatted) list of names of changed components
+#   reference to list of names of unchanged components
+#
+# Updates: 
+#   adds component name to changed or unchanged list, as appropriate
+#
+sub PrintComponentDescriptions(\%$\@\@)
+{
+	my ($Descriptions,$CompName,$ChangedComponents,$UnchangedComponents) = @_;
+	
+	if (scalar keys %{$Descriptions} == 0)
+	{
+		# no changes in this component
+		push @{$UnchangedComponents}, $CompName;
+		return;
+	}
+	push @{$ChangedComponents}, "<a href=\"#$CompName\">$CompName</a>";
+	
+    # Format the changes for this component
+    
+	my @CompLines = ("<h2><a name=\"$CompName\"/>$CompName</h2>");
+    foreach my $change (reverse sort keys %{$Descriptions})
+    {
+        # Heading for the change description
+        my $summary = shift @{$$Descriptions{$change}};
+        $summary =~ s/(on .*)\s+by.*//;
+        $summary = "<a href=\"#$change\">Change $change</a> $1";
+        push @CompLines, "<p><a name=\"#$CompName $change\"/><b>$summary</b>";
+        # Body of the change description
+        push @CompLines, "<pre>";
+        push @CompLines,
+            grep { $_; }	# ignore blank lines
+            @{$$Descriptions{$change}};
+        push @CompLines, "</pre>";
+
+		# record the component in the cross-reference table
+        push @{$changeToComponents{$change}}, "<a href=\"#$CompName $change\">$CompName</a>";
+    }
+
+	&PrintLines(@CompLines);
+}
+
+#
+#
+# Creates the Release Notes html file by extracting the perforce descriptions for each
+# change that has been made to the components
+#
+# Inputs: Product, Source path of the product (i.e.//EPOC/master), the source path on the
+#         main codeline if a delivery branch is being used, Previous changelist,
+#         Current changelist, changelist from which the branch was made if a branch is being 
+#         used, array of components and their source.
+# Outputs: Release Notes html file.
+#
+# Algorithm:
+#   Loop through the component&source array
+#       Determine whether a boundary, component name, a source dir
+#       If a source dir, query perforce to see what changelists have affected it in the period that we're interested in
+#       If it has been affected, add the changelist to this component's changelists, unless it's already there
+#
+#   This is rather inefficient :-(
+#
+sub CreateReleaseNotes
+{
+    my $Product = shift;
+    my $Srcpath = shift;
+    my $MainLinePath = shift;
+    my $PrevCL = shift;
+    my $CurrentCL = shift;
+    my $BranchCL = shift;
+    my @ComponentAndSource = @_;
+
+    #Reset all arrays to NULL
+    my @PrevGTMrpComponents = ();
+    my @CurrGTMrpComponents = ();
+    my @PrevTVMrpComponents = ();
+    my @CurrTVMrpComponents = ();
+    my @CurrMrpComponents = ();
+    my @Components = ();
+    my @UnchangedComponents = ();
+    my @ChangedComponents = ();
+    my %changeProcessed = ();		# hash of changelists processed for this component
+    my %changeToDescription = ();	# hash of descriptions for non-reverted changelists
+    
+    $PrevCL++;     # increment changelist number so we don't include the very first submission 
+                   #  - it would have been picked up in the last run of this script
+    
+    my $ProductName = "Symbian_OS_v$Product\_Changes_Report";
+    
+    open OUTFILE, "> $ProductName.html" or die "ERROR: Can't open $ProductName.html for output\n$!";
+    print OUTFILE <<HEADING_EOF;
+<html>\n\n<head>\n<title>$ProductName</title>\n</head>\n\n
+<body bgcolor="#ffffff" text="#000000" link="#5F9F9F" vlink="5F9F9F">\n
+<font face=verdana,arial,helvetica size=4>\n\n<hr>\n\n
+<a name="list"><h1><center>$ProductName</center></h1></a>
+<p><center>----------------------------------------</center>\n
+<h2><center><font color = "blue">GT Components</font></center></h2>\n
+HEADING_EOF
+    
+    my $CompName;
+    my $dirCount = 0;
+
+
+    # Loop through the list of elements running perforce commands to obtain the descriptions
+    # of any changes that have been made since the last release build
+    foreach my $element(@ComponentAndSource)
+    {
+        # Is it the boundary?
+        if($element =~ /\*\*TECHVIEWCOMPONENTS\*\*/)
+		{
+			# print out the accumulated GT component, if any
+		    &PrintComponentDescriptions(\%changeToDescription, $CompName, \@ChangedComponents, \@UnchangedComponents) if ($dirCount);
+		    $dirCount = 0;
+		    # no need to clear the hashes, because that will happen at the first TV component
+		    
+			print OUTFILE "<h2><center><font color = \"blue\">Techview Components</font></center></h2>\n";
+		}
+        # Is it a component name?
+        elsif($element =~ /^([A-Z].*)/)
+		{
+		    my $newName = $1;
+		    
+		    &PrintComponentDescriptions(\%changeToDescription, $CompName, \@ChangedComponents, \@UnchangedComponents) if ($dirCount);
+		    $dirCount = 0;
+		    
+		    $CompName = $newName;
+		    %changeProcessed = ();
+		    %changeToDescription = ();
+		    print "Processing $CompName...\n" if ($debug);
+		}
+        # Is it a source directory?
+		elsif($element =~ /^([a-z].*?)\s*$/)
+		{
+		    my $Topdir = $1;
+		    $dirCount++;
+	            
+	        # If it contains spaces, quote it
+		    if($Topdir =~ /.*\s+.*/)
+		    {
+			$Topdir = "\"$Topdir\"";
+		    }
+
+		    # Find the changes that have affected this dir
+		    # (Changes come back in reverse chronological order)
+            my @CompChange = `p4 changes -l $Srcpath$Topdir...\@$PrevCL,\@$CurrentCL`;
+
+            # if the current release is on a branch then the p4 command also needs to be run
+            # to capture changes on the codeline before the files were branched
+            if ($MainLinePath)
+            {
+                # So far, @CompChange contains the info from the delivery
+                # branch only
+                # The earliest changelist on the delivery branch is the creation
+                # of the branch, which is not interesting to anyone.
+                # Hence, remove it here:
+                
+                # Work backwards from the end of the output chopping off the
+                # last item till we've chopped off a changelist header
+                my $choppedText;
+                do
+                {
+                    # Remove last line
+                    $choppedText = pop @CompChange;
+                }
+                until (!defined $choppedText || $choppedText =~ m/^Change\s\d+\s/);
+
+                # Now append the earlier changes from the main line
+                my @extrainfo = `p4 changes -l $MainLinePath$Topdir...\@$PrevCL,\@$BranchCL`;
+                push @CompChange, @extrainfo;
+            }
+
+            # Normalise the output of P4
+            @CompChange = map { split "\n"; } @CompChange;
+
+            # Extract change descriptions into a hash keyed on changelist number
+            my %moreChangeDescriptions;
+            my $change;
+            foreach my $line (@CompChange)
+            {
+                if ($line =~ /^Change\s(\d+)\s/)
+                {
+                    my $newchange = $1;
+                    $change = "";
+                    # ignore if already processed for this component
+                    next if ($changeProcessed{$newchange});
+                    $changeProcessed{$newchange} = 1;
+                    $change = $newchange;
+                }
+                next if (!$change);
+                push @{$moreChangeDescriptions{$change}}, $line;
+            }
+            
+            # Process changes (newest first), extracting the <EXTERNAL> section and 
+            # processing any reversion information
+            foreach my $change (reverse sort keys %moreChangeDescriptions)
+            {
+                if ($reverted{$change})
+                {
+                	print "REMARK: $CompName - deleting description of reverted change $change\n";
+                	delete $moreChangeDescriptions{$change};
+                	next;
+                }
+
+            	my @changeLines = @{$moreChangeDescriptions{$change}};
+            	
+            	my @revisedLines = ();
+            	push @revisedLines, shift @changeLines;		# keep the "Change" line
+            	
+            	my $line;
+            	while ($line = shift @changeLines)
+            	{
+            		last if ($line =~ /<EXTERNAL>$/);
+            		
+            		$line =~ s/^\t+//;
+					$line =~ s/\&/&amp;/g; 
+					$line =~ s/\</&lt;/g; 
+					$line =~ s/\>/&gt;/g; 
+					$line =~ s/\"/&quot;/g;	# quote the " character as well
+					
+            		push @revisedLines, $line;
+            	}
+            	
+            	if (scalar @changeLines == 0)
+            	{
+            		# consumed the whole description without seeing <EXTERNAL>
+            		# must be old format
+            		@{$changeToDescription{$change}} = @revisedLines;
+            		printf ".. unformatted change %d - %d lines\n", $change, scalar @changeLines if ($debug);
+            		next;
+            	}
+            	
+            	# Must be properly formatted change description
+            	# discard everything seen so far except the "Change" line.
+            	@revisedLines = (shift @revisedLines);
+            	while ($line = shift @changeLines)
+            	{
+            		last if ($line =~ /<\/EXTERNAL>$/);
+            		
+            		$line =~ s/^\t+//;
+					$line =~ s/\&/&amp;/g; 
+					$line =~ s/\</&lt;/g; 
+					$line =~ s/\>/&gt;/g; 
+					$line =~ s/\"/&quot;/g;	# quote the " character as well
+
+            		push @revisedLines, $line;
+            		
+            		# Opportunity to pick information out of changes as they go past
+					if ($line =~ /^\s*((DEF|PDEF|INC)\d+):?\s/)
+					{
+						$allDefects{$1} = $line;
+						next;
+					}
+					if ($line =~ /^(BR[0-9.]+)\s/)
+					{
+						$allBreaks{$1} = $line;
+						next;
+					}
+
+            	}
+            	
+              	# update the description for this change
+              	@{$changeToDescription{$change}} = @revisedLines;
+            	printf ".. formatted change %d - %d external lines\n", $change, scalar @revisedLines if ($debug);
+          	
+                # check for reversion information in rest of the formatted description
+                # submission checker delivers one <detail reverts=""> line per list element
+                foreach my $line (grep /<detail reverts=/, @changeLines)
+        		{
+        			if ($line =~ /<detail reverts=\s*\"(\d+)\"/)	# changelist surrounded by "
+        			{
+        				my $oldchange = $1;
+        				print "REMARK: Change $change reverts $oldchange\n";
+        				$reverted{$oldchange} = $change;
+        			}
+        		}
+            }
+		}
+	}
+	
+	# print description of last component
+	&PrintComponentDescriptions(\%changeToDescription, $CompName, \@ChangedComponents, \@UnchangedComponents) if ($dirCount);
+
+	# Print additional tables of information
+    &PrintLines("<h2>Changed Components</h2>\n<nobr>", join(",</nobr> \n<nobr>", sort @ChangedComponents), "</nobr>") if (@ChangedComponents);
+	
+    &PrintLines("<h2>Unchanged Components</h2>\n<nobr>", join(",</nobr> \n<nobr>", sort @UnchangedComponents), "</nobr>") if (@UnchangedComponents);
+
+	if (scalar @ChangedComponents)
+	{
+	    &PrintLines("<h2>Components affected by each change</h2>");
+	    
+	    &PrintLines("<TABLE>\n");
+	    foreach my $change (reverse sort keys %changeToComponents)
+	    {
+	    	&PrintLines("<TR valign=\"top\"><TD><a name=\"#$change\"/>$change</TD><TD>", join(", ", @{$changeToComponents{$change}}), "</TD></TR>\n");
+	    }
+	    &PrintLines("</TABLE>\n");
+	}
+	
+	my @allDefectTitles = ();
+	foreach my $defect (sort keys %allDefects)
+	{
+		push @allDefectTitles,$allDefects{$defect};
+	}
+	&PrintLines("<h2>List of Defect Fixes</h2>", "<pre>", @allDefectTitles, "</pre>") if (scalar @allDefectTitles);
+	
+	my @allBreakTitles = ();
+	foreach my $break (sort keys %allBreaks)
+	{
+		push @allBreakTitles,$allBreaks{$break};
+	}
+	&PrintLines("<h2>List of Breaks</h2>", "<pre>", @allBreakTitles, "</pre>") if (scalar @allBreakTitles);
+	
+    &PrintLines("</BODY></HTML>");
+    close OUTFILE;
+    
+    return "$ProductName.html";
+}
+
+sub PrintLines
+{
+    # Output field and record separators set (locally) to produce newlines
+    # between items in list, and another newline on the end
+    local $, = "\n";
+    local $\ = "\n";
+    print OUTFILE @_;
+}
+
+#
+#
+# Extracts the sourcecode path and changelist from a Perforce report file.
+#
+# Inputs: Location of a perforce report file, Platform (e.g. cedar)
+# Outputs: Source path of the product (e.g.//EPOC/master), changelist used in build
+#
+#
+sub GetPrevCodelineandCL
+{
+    my $FileAndPath = shift;
+    my $Platform = shift;
+
+    my $LogFile;
+    my $PrevCL;
+    my $PrevCodeline;
+
+    if (!open(DAT, $FileAndPath))
+    {
+        print ERRORLOG "Could not open $FileAndPath!\n" if $debug;
+        die "ERROR: Cannot open $FileAndPath: $!\n";
+    }
+    {
+        # Grab complete file in one string
+        local $/ = undef;
+        $LogFile = <DAT>;
+    }
+    close DAT;
+    
+    if ($LogFile =~ m{ClientSpec.*?<td[^>]*>.*?(//.+?)$Platform/.*?</tr>}s)
+    {
+       $PrevCodeline = $1;
+    }
+    
+    if ($LogFile =~ m{Perforce Change[Ll]ist.*?<td[^>]*>(.*?)</tr>}s)
+    {
+        # Perforce changelist table data may either be in form of "nnnnnn" or "ssssss @ nnnnnn"
+        # ssssss is the snapshot id, which may be a string of digits
+        # nnnnnn is the changelist number
+        # 
+        # Get the later string of digits
+        ($PrevCL) = $1 =~ m{(\d+)\D*$};
+    }
+    
+    unless ($PrevCL) { die "ERROR: Unable to parse previous changelist from $FileAndPath\n"; }
+    unless ($PrevCodeline) { die "ERROR: Unable to parse previous codeline from $FileAndPath\n"; }
+    
+    return $PrevCL, $PrevCodeline;
+}
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/GetDPComp/GetDPComp.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,125 @@
+#!/usr/bin/perl
+
+=head1 NAME
+
+GetDPComp.pl
+
+=head1 SYNOPSIS
+
+GetDPComp.pl
+
+=head1 DESCRIPTION
+
+This script is designed to use latestver, envsize and getrel commands from the CBR tools to find and get the latest green version of one DP SF component(s).
+
+=head1 COPYRIGHT
+
+Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+All rights reserved.
+
+=cut
+
+use strict;
+use LWP::UserAgent;
+use Getopt::Long;
+use FindBin;
+use lib "$FindBin::Bin";
+use GetDPComp;
+
+my ($iComponentNames, $iInputFile, $iBaselineComponentName, $iBaselineComponentVersion, $iSource, $iOutputFile) = ProcessCommandLine();
+$iBaselineComponentName = GetDPComp::LRtrim($iBaselineComponentName);
+$iBaselineComponentVersion = GetDPComp::LRtrim($iBaselineComponentVersion);
+
+if (!defined $iBaselineComponentName) {
+  $iBaselineComponentName = "sf_tools_baseline";
+}
+
+my $retval = 1 ;
+($iBaselineComponentVersion, $retval) = GetDPComp::ValidateVersion( $iBaselineComponentVersion, $iBaselineComponentName);
+if ($retval == 0 ) {
+  print "\nERROR: Input version is wrong. \n";
+  exit ;
+}
+
+my %ComponentVersion = GetDPComp::GenerateComponentVersion( $iBaselineComponentVersion, $iBaselineComponentName ) ;
+
+if ( scalar(@$iComponentNames) == 0 ) {
+  open(INPUT, "<$iInputFile") or die $! ;
+  (@$iComponentNames) = <INPUT>;
+  close(INPUT);
+}
+
+if ($iSource)
+{
+  $iSource = "-s";
+} else {
+  $iSource = "";
+}
+
+foreach my $includecomponent ( @$iComponentNames ){
+  $includecomponent = GetDPComp::LRtrim( $includecomponent );
+  print "getrel -v $iSource -o $includecomponent $ComponentVersion{$includecomponent} \n";
+  `getrel -v $iSource -o $includecomponent $ComponentVersion{$includecomponent} `;
+}
+
+open(UPDATE, ">$iOutputFile") or die $! ;
+foreach my $includecomponent ( @$iComponentNames ){
+  $includecomponent = GetDPComp::LRtrim( $includecomponent );
+  print UPDATE "$includecomponent => $ComponentVersion{$includecomponent} \n";
+}
+close(UPDATE);
+
+# ProcessCommandLine
+#
+# Description
+# This function processes the commandline
+sub ProcessCommandLine {
+  my (@iComponentNames, $iInputFile, $iBaselineComponentName, $iBaselineComponentVersion, $iSource, $iOutputFile, $iHelp);
+
+  GetOptions('c=s@' => \@iComponentNames, 'cf=s' => \$iInputFile, 'bc=s' => \$iBaselineComponentName, 'bv=s' => \$iBaselineComponentVersion, 's' => \$iSource, 'o=s' => \$iOutputFile, 'h' => \$iHelp);
+  Usage() if ($iHelp);
+
+  Usage("-c and -cf can not use together") if ( (scalar(@iComponentNames) > 0 ) and (defined $iInputFile));
+  Usage("Must specify component via -c or component list via -cf") if (( scalar(@iComponentNames) == 0 ) and ( ! defined $iInputFile) );
+  Usage("Must specify baseline component version via -bv and output file name via -o") if ((! defined $iBaselineComponentVersion) or (! defined $iOutputFile) );
+
+  return(\@iComponentNames, $iInputFile, $iBaselineComponentName, $iBaselineComponentVersion, $iSource, $iOutputFile);
+}
+
+# Usage
+#
+# Output Usage Information.
+#
+
+sub Usage {
+  my ($reason) = @_;
+  
+  print "ERROR: $reason\n" if ($reason);
+  
+  print <<USAGE_EOF;
+
+  Usage: GetDPComp.pl [Args]
+
+  Args: 
+  -c <Specified component name>, [Multiple -c options allowed], this option should not use together with -cf option.
+  -cf <Specified file name which contains list of component name>, this option should not use together with -c option.
+  -bc <Specified basline component name>, e.g. developer_product_baseline, this argument is optional.
+  -bv <Version string for baseline component specified by -bc or sf_tools_baseline>, valid input: latest, green, #specifiednumber. 
+  -s                    install (and overwrite) source code, this is optional argument.
+  -o  <Specified file name which records version information for component specified by -c or components specified by -cf>
+  -h                    help
+  
+  
+  Example Commandline
+  GetDPComp.pl -s -c tools_sbs -bc developer_product_baseline -bv green -o component_version.txt
+  GetDPComp.pl -s -c tools_sbs -bc developer_product_baseline -bv latest -o component_version.txt
+  GetDPComp.pl -s -c tools_sbs -bc developer_product_baseline -bv DP00454_DeveloperProduct -o component_version.txt
+  GetDPComp.pl -cf component_list.txt -bv green -o component_version.txt
+  GetDPComp.pl -cf component_list.txt -bv latest -o component_version.txt
+  GetDPComp.pl -cf component_list.txt -bv DP00454_DeveloperProduct -o component_version.txt
+  GetDPComp.pl -c dev_build_sbsv2_raptor -c dev_build_sbsv2_cpp-raptor -c dev_hostenv_dist_cygwin-1.5.25 -c dev_hostenv_dist_mingw-5.1.4 -c dev_hostenv_pythontoolsplat_python-2.5.2 -bv green -o component_version.txt
+  GetDPComp.pl -h
+
+USAGE_EOF
+	exit 1;
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/GetDPComp/GetDPComp.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,194 @@
+#!/usr/bin/perl
+
+package GetDPComp ;
+
+use strict;
+use LWP::UserAgent;
+use Getopt::Long;
+
+# LRtrim
+#
+# Description
+# This function removes the space on the left and right
+sub LRtrim( $ ) {
+  my $result = shift ;
+  $result =~ s/^\s+// ;
+  $result =~ s/\s+$// ;
+  return $result ;
+}
+
+sub GenerateComponentVersion( $  $ ) {
+  my $inputVersion = shift ;
+  $inputVersion = LRtrim($inputVersion);
+  my $iBaselineComponentName = shift ;
+  $iBaselineComponentName = LRtrim($iBaselineComponentName);
+  my %ComponentVersion = ( );
+  print "envsize -vv $iBaselineComponentName $inputVersion \n" ;
+  my @envsizeoutput = `envsize -vv $iBaselineComponentName $inputVersion `;
+  foreach my $line ( @envsizeoutput ) {
+    if ($line =~ /^Adding up size of / ) {
+      $line =~ s/^Adding up size of //;
+      $line = LRtrim( $line ) ;
+      my ($component, $release) = split(/\s+/, $line);
+      $ComponentVersion{$component} = $release ;
+    }
+  }
+  return  %ComponentVersion ; 
+}
+
+sub ValidateVersion( $ $ ) {
+  my $inputVersion = shift ;
+  $inputVersion = LRtrim($inputVersion);
+  my $iBaselineComponentName = shift ;
+  $iBaselineComponentName = LRtrim($iBaselineComponentName);
+  my $retval = 1 ;
+
+  if( (!defined $inputVersion) || ($inputVersion eq "" ) ){
+    $retval = 0 ;
+    print "\nERROR: No valid version specified. \n";
+  }elsif ( CheckBuild( $inputVersion, $iBaselineComponentName ) == 1 ){
+    print "\nUser specified build: $inputVersion is using. \n";
+  }elsif ( lc($inputVersion) eq "latest") {  
+    $inputVersion = GetLatestBuild( $iBaselineComponentName ); 
+    $inputVersion = LRtrim( $inputVersion );
+    if ($inputVersion eq "nobuild" )  {
+      $retval = 0 ;
+      print "\nERROR: No build available. \n";
+    } else {
+      print "\nLatest build: $inputVersion is using.\n";
+    }
+  }elsif ( lc($inputVersion) eq "green" ){
+    $inputVersion = GetLatestGreenBuild( $iBaselineComponentName ) ;
+    $inputVersion = LRtrim( $inputVersion );
+    if ($inputVersion eq "amberbuild" )  {
+      $retval = 0 ;
+      print "\nERROR: No green build available. \n";
+    } else {  
+      print "\nLatest green build: $inputVersion is using.\n";
+    }
+  }else {    
+    $retval = 0 ;
+    print "\nERROR: No Such Build: $inputVersion .\n";
+  }
+  return ( $inputVersion, $retval) ;
+}
+
+sub CheckBuild( $  $ ) {
+  my $iVer = shift ;
+  $iVer = LRtrim( $iVer );
+  my $iBaselineComponentName = shift ;
+  $iBaselineComponentName = LRtrim($iBaselineComponentName);
+  my $iRet = 0 ;
+  my @AllVersions = `latestver -a $iBaselineComponentName`; 
+
+  foreach my $build ( @AllVersions ) {
+    $build = LRtrim( $build );
+    if (lc( $build ) eq lc( $iVer ) ) {
+      $iRet = 1 ;
+      last ;
+    }
+  }
+  return $iRet ;
+}
+
+sub GetLatestBuild( $ ) {
+  my $iBaselineComponentName = shift ;
+  $iBaselineComponentName = LRtrim($iBaselineComponentName);
+  my $latestbuild = "nobuild";
+  my @AllBuilds = `latestver -a $iBaselineComponentName`; 
+  
+  foreach my $build ( @AllBuilds  ) {
+    my $status = BragFromAutobuild2HttpInterface( $build , $iBaselineComponentName  );
+    if ( ( lc( $status ) eq "green" ) or ( lc( $status ) eq "amber" )  ){
+      $latestbuild = $build ;
+      last ;
+    }
+  }
+  return $latestbuild ;
+}
+
+sub GetLatestGreenBuild( $ ) {
+  my $iBaselineComponentName = shift ;
+  $iBaselineComponentName = LRtrim($iBaselineComponentName);
+  my $greenbuild = "amberbuild";
+  my @AllBuilds = `latestver -a $iBaselineComponentName`; 
+
+  foreach my $build ( @AllBuilds  ) {
+    my $status = BragFromAutobuild2HttpInterface( $build , $iBaselineComponentName );
+    if ( lc( $status ) eq "green" ) {
+      $greenbuild = $build ;
+      last ;
+    }
+  }
+  return  $greenbuild ; # buildnumber or "amberbuild"
+}
+
+# Usage
+# Just call the sub-route called BragFromAutobuild2HttpInterface like this
+# my $status = BragFromAutobuild2HttpInterface("M04735_Symbian_OS_v9.5" , "gt_techview_baseline");
+# my $status = BragFromAutobuild2HttpInterface("DP00454_DeveloperProduct" , "sf_tools_baseline");
+# $status should be green or amber etc.
+
+## @fn BragFromAutobuild2HttpInterface($sVer)
+#
+# Queries the HTTP interface to Autobuild2 DB to determine the BRAG status of a CBR.
+#
+# @param sVer string, CBR for which the BRAG status is to be determined.
+#
+# @return string, BRAG status of the queried CBR. "TBA" if BRAG was indeterminable.
+
+sub BragFromAutobuild2HttpInterface( $  $ )
+{
+	my $sVer = shift ;
+    $sVer = LRtrim( $sVer );
+	my $iBaselineComponentName = shift ;
+    $iBaselineComponentName = LRtrim($iBaselineComponentName);
+    my $sBrag = "TBA";
+	my $sSnapshot = "";
+	my $sProduct = "";
+    if (( lc( $iBaselineComponentName ) eq "sf_tools_baseline" ) or ( lc( $iBaselineComponentName ) eq "developer_product_baseline" ) ) 
+    {
+    	if ( $sVer =~ /([\w\.]+)\_DeveloperProduct/i )
+        {
+            $sSnapshot = $1;
+            $sProduct = "DP";
+        }
+        else
+        {
+            return $sBrag; # i.e. "TBA"
+        }	
+    }elsif  (( lc( $iBaselineComponentName ) eq "gt_techview_baseline" ) or ( lc( $iBaselineComponentName ) eq "gt_only_baseline" ) ) 
+    {
+    	if ( $sVer =~ /([\w\.]+)\_Symbian_OS_v([\w\.]+)/i )
+        {
+		#print $1, "\n", $2, "\n";
+            $sSnapshot = $1;
+            $sProduct = $2;
+        }
+        else
+        {
+            return $sBrag; # i.e. "TBA"
+        }
+    }    
+    
+	my $parameters = "snapshot=$sSnapshot&product=$sProduct";
+	# Alternative method of getting the BRAG status - use the HTTP interface to Autobuild
+	my $sLogsLocation = "http://intweb:8080/esr/query?$parameters";
+	
+	my $roUserAgent = LWP::UserAgent->new;
+	my $roResponse = $roUserAgent->get($sLogsLocation);
+ 
+	if ($roResponse->is_success and $roResponse->content =~ /\=\=\s*BRAG\s*\=\s*([a-z|A-Z]+)/)
+	{
+		$sBrag = $1;
+		$sBrag =~ s/\s//g;  # remove any whitespace padding
+		return $sBrag;
+	}
+	else
+	{		
+		return $sBrag; # i.e. "TBA"
+	}
+}
+
+
+1;
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/GetDPComp/unzip_cbr_tools.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,84 @@
+use FindBin;
+use lib "$FindBin::Bin";
+use LWP::UserAgent;
+use Getopt::Long;
+
+my($tcl_delta_cache, $log_dir, $product, $number);
+
+GetOptions (
+   'tcl_delta_cache=s' => \$tcl_delta_cache,
+   'log_dir=s'         => \$log_dir,
+   'product=s'         => \$product, 
+   'number=s'          => \$number,
+   'version=s'		   => \$ver_dp_tools # like DP00562
+);
+
+my $full_ver_latest_green = '';
+# if user doesn't specify the detail dp tools build number throught the parameter "-version"
+# auto connect to intweb service to get latest green build number list
+unless( defined($ver_dp_tools) )
+{
+	# Alternative method of getting the BRAG status - use the HTTP interface to Autobuild
+	my $parameters = "product=$product&number=$number";
+	my $sLogsLocation = "http://intweb:8080/esr/query?$parameters";
+	my $roUserAgent = LWP::UserAgent->new;
+	my $roResponse = $roUserAgent->get($sLogsLocation);
+	my $ver_info = $roResponse->content;
+	print "--------------------Retrieve build and brag information-------------------------\n";
+	print "$ver_info\n";
+	print "--------------------------------------------------------------------------------\n";
+	my @lst_ver = ();
+	while ($ver_info =~ m/snapshot\s+=\s+dp.*/gi)
+	{
+		$ver = $&;
+		push(@lst_ver, $ver);
+	}
+
+	my @lst_brag = ();
+	while ($ver_info =~ m/==\s+brag\s+=.*/gi)
+	{
+		$brag = $&;
+		push(@lst_brag, $brag);
+	}
+
+	my $scalar_lst_brag = @lst_brag;
+	my $index;
+	for($index = 0; $index < $scalar_lst_brag; $index++)
+	{
+		if($lst_brag[$index] =~ /green/i)
+		{
+			last;
+		}
+	}
+
+	my $ver_latest_green;
+	if($index == $scalar_lst_brag)
+	{
+		print "No green build found for DP Tools! Build will be terminated!\n";
+		exit 0;
+	}
+	else
+	{ 
+		if($lst_ver[$index] =~ /(dp.*)/i)
+		{
+			$ver_latest_green  = $1;
+			print "Found green dp build: $ver_latest_green\n";
+		}
+	}
+	$full_ver_latest_green = "$ver_latest_green"."_DeveloperProduct";
+}
+else
+{
+	# use the build number specified by users 
+	$full_ver_latest_green = "$ver_dp_tools"."_DeveloperProduct";
+	print "Use specified dp build: $ver_dp_tools\n";
+}
+
+my $unzip_exe = "$tcl_delta_cache\\DP\\master\\sf\\dev\\hostenv\\dist\\unzip-5.40\\unzip.exe";
+my $cbr_tools_zip = "\"\\\\builds01\\devbuilds\\DeveloperProduct\\$full_ver_latest_green\\SF_Package\\CBR tools_windows.zip\"";
+my $cmd_unzip_cbr_tools = "$unzip_exe -o $cbr_tools_zip > $log_dir\\cbrtools_unzip.log";
+print "unzip command: $cmd_unzip_cbr_tools\n";
+
+print "Unzip the zip package of cbr tools from the server \"builds01\"\n";
+system($cmd_unzip_cbr_tools);
+print "check the detailed of unzip process from cbrtools_unzip.log\n";
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/InstallDevKit.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,732 @@
+#!perl
+
+# InstallDevKit.pl - Source Code Integration Script
+
+# Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Versions:
+# 1.0  Initial 
+# 
+#
+
+
+use strict;
+use Win32::Registry;
+use Getopt::Long;
+use File::Path;
+use File::Glob;
+
+my $Platform = "";
+
+
+# ------------------------------------- Global variables -----------------------------------
+
+# main array.  Each element contains:	display text for this option
+#					list of DevKit packages to be installed by this option
+
+
+my @AllTheOptions=(
+	["GT source",
+				["com.symbian.src.GT-general",
+				"com.symbian.src.GT-restricted-part1",
+				"com.symbian.src.GT-restricted-part2",
+				"com.symbian.src.GT-restricted-part3",
+				"com.symbian.src.GT-restricted-part4",
+				"com.symbian.src.GT-restricted-part5",
+				"com.symbian.src.GT-restricted-part6"],
+				
+				["com.symbian.src.confidential",
+				"com.symbian.src.GT-confidential-networking"] ],	
+
+				
+	["UI source",
+				["com.symbian.src.TechView-restricted",
+				"com.symbian.src.TechView-general"],
+				 
+				["com.symbian.src.TechView-confidential-networking"] ],	
+
+
+	["GT WINS binaries",
+				["com.symbian.api.GT-restricted",
+				"com.symbian.api.GT-shared",
+				"com.symbian.api.GT-wins",
+				"com.symbian.api.StrongCrypto",
+
+				"com.symbian.bin.GT-restricted",
+				"com.symbian.bin.GT-restricted-data",
+
+				"com.symbian.bin.GT-shared",
+				"com.symbian.bin.GT-shared-data",
+				
+				"com.symbian.bin.GT-wins-shared",
+				"com.symbian.bin.GT-wins-udeb",
+				"com.symbian.bin.GT-wins-urel",
+
+				"com.symbian.bin.StrongCrypto-wins-udeb",
+				"com.symbian.bin.StrongCrypto-wins-urel",
+
+				"com.symbian.debug.GT-wins",
+				
+				"com.symbian.tools.cpp",
+				"com.symbian.tools.cpp-custom",
+				"com.symbian.tools.java",
+				"com.symbian.tools.libraries",
+				"com.symbian.tools.shared",
+				"com.symbian.tools.shared-custom",
+				"com.symbian.tools.wins"],
+				 
+				["com.symbian.bin.GT-confidential",
+				"com.symbian.bin.TechView-confidential"] ], 
+
+
+	["GT WINSCW binaries",
+				["com.symbian.api.GT-restricted",
+				"com.symbian.api.GT-winscw",
+				"com.symbian.api.GT-shared",
+				"com.symbian.api.StrongCrypto",
+				
+				"com.symbian.bin.GT-winscw-shared",
+				"com.symbian.bin.GT-winscw-udeb",
+				"com.symbian.bin.GT-winscw-urel",
+
+				"com.symbian.bin.StrongCrypto-winscw-udeb",
+				"com.symbian.bin.StrongCrypto-winscw-urel",
+				
+				"com.symbian.bin.GT-restricted",
+				"com.symbian.bin.GT-restricted-data",
+				
+				"com.symbian.bin.GT-shared",
+				"com.symbian.bin.GT-shared-data",
+				
+				"com.symbian.debug.GT-winscw",
+				
+				"com.symbian.tools.cpp",
+				"com.symbian.tools.cpp-custom",
+				"com.symbian.tools.java",
+				"com.symbian.tools.libraries",
+				"com.symbian.tools.shared",
+				"com.symbian.tools.shared-custom",
+				"com.symbian.tools.winscw"],
+				 
+				["com.symbian.bin.GT-confidential",
+				"com.symbian.bin.TechView-confidential"] ], 
+
+	["GT ARM binaries",
+				["com.symbian.api.GT-restricted",
+				"com.symbian.api.GT-arm", 
+				"com.symbian.api.GT-shared",
+				"com.symbian.api.StrongCrypto",
+				
+				"com.symbian.bin.GT-arm",
+				"com.symbian.bin.GT-arm-data",
+				
+				"com.symbian.bin.StrongCrypto-arm",
+
+				"com.symbian.bin.GT-restricted",
+				"com.symbian.bin.GT-restricted-data",
+				
+				"com.symbian.bin.GT-shared",
+				"com.symbian.bin.GT-shared-data",
+
+				"com.symbian.bin.GT-romimages",
+				
+				"com.symbian.tools.boardsupport",
+				"com.symbian.tools.cpp",
+				"com.symbian.tools.cpp-custom",
+				"com.symbian.tools.java",
+				"com.symbian.tools.libraries",
+				"com.symbian.tools.shared",
+				"com.symbian.tools.shared-custom",
+				"com.symbian.tools.arm"],
+				 
+				["com.symbian.bin.GT-confidential",
+				"com.symbian.bin.TechView-confidential"] ], 
+
+
+	["UI WINS binaries (needs GT to run)",
+				["com.symbian.api.TechView-restricted",
+				"com.symbian.api.TechView-shared",
+				"com.symbian.api.TechView-wins",
+
+				"com.symbian.debug.TechView-wins",
+
+				"com.symbian.bin.TechView-wins-shared",
+				"com.symbian.bin.TechView-wins-udeb",
+				"com.symbian.bin.TechView-wins-urel",
+
+				"com.symbian.bin.Techview-restricted",
+				"com.symbian.bin.Techview-restricted-data",
+				"com.symbian.bin.Techview-shared",
+				"com.symbian.bin.Techview-shared-data",
+				
+				"com.symbian.tools.cpp",
+				"com.symbian.tools.cpp-custom",
+				"com.symbian.tools.java",
+				"com.symbian.tools.libraries",
+				"com.symbian.tools.shared",
+				"com.symbian.tools.shared-custom",
+				"com.symbian.tools.wins"],
+				 
+				[] ],
+
+
+	["UI WINSCW binaries (needs GT to run)",
+				["com.symbian.api.TechView-restricted",
+				"com.symbian.api.TechView-shared",
+				
+				"com.symbian.debug.TechView-winscw",
+				"com.symbian.api.TechView-winscw",
+
+				"com.symbian.bin.TechView-winscw-shared",
+				"com.symbian.bin.TechView-winscw-udeb",
+				"com.symbian.bin.TechView-winscw-urel",
+
+				"com.symbian.bin.Techview-restricted",
+				"com.symbian.bin.Techview-restricted-data",
+				"com.symbian.bin.Techview-shared",
+				"com.symbian.bin.Techview-shared-data",
+				
+				"com.symbian.tools.cpp",
+				"com.symbian.tools.cpp-custom",
+				"com.symbian.tools.java",
+				"com.symbian.tools.libraries",
+				"com.symbian.tools.shared",
+				"com.symbian.tools.shared-custom",
+				"com.symbian.tools.winscw"],
+				 
+				[] ],
+
+
+	["UI ARM binaries (needs GT to run)",
+				["com.symbian.api.TechView-arm",
+				"com.symbian.api.TechView-restricted",
+				"com.symbian.api.TechView-shared",
+
+				"com.symbian.bin.Techview-arm",
+				"com.symbian.bin.Techview-arm-data",
+
+				"com.symbian.bin.Techview-restricted",
+				"com.symbian.bin.Techview-restricted-data",
+				"com.symbian.bin.Techview-shared",
+				"com.symbian.bin.Techview-shared-data",
+
+				"com.symbian.bin.Techview-romimages",
+
+				"com.symbian.tools.arm",
+				"com.symbian.tools.boardsupport",
+				"com.symbian.tools.cpp",
+				"com.symbian.tools.cpp-custom",
+
+				"com.symbian.tools.java",
+				"com.symbian.tools.libraries",
+				"com.symbian.tools.shared",
+				"com.symbian.tools.shared-custom"],
+				 
+				[] ],
+				
+				
+				
+	["Documentation (html, examples, tool and source)",
+				["com.symbian.doc.intro-pages",
+				"com.symbian.doc.sdl-connect-examples",
+				"com.symbian.doc.sdl-core",
+				"com.symbian.doc.sdl",
+				"com.symbian.doc.sdl-cpp-examples",
+				"com.symbian.doc.sdl-java-examples",
+				"com.symbian.doc.sdl-shared-examples",
+                                "com.symbian.doc.system"],
+				 
+				["com.symbian.src.sdl",
+				"com.symbian.tools.xbuild"] ]
+
+
+			
+				 );
+
+
+# Holds list of packages already installed
+my %InstalledOptions=();
+
+
+my $UserChoices = "";
+my $DevKitPackagesDirectory = "";
+my $CustKitPackagesDirectory = "";
+my $TargetDirectory = "";
+my $InstallCustKit = "";
+my $BuildFromClean = 0;
+
+# start the program
+main();
+
+
+
+
+# --------------------------------- Start of Main() ----------------------------------------
+sub main()
+{
+	if (@ARGV)
+	{
+		CommandLineInterface();
+	}
+	else
+	{
+		UserInterface();
+	}
+
+
+	# create target directory (copes with multiple-levels, not possible with unzip)
+	if ( ! (-e $TargetDirectory) )
+	{
+		mkpath ($TargetDirectory);
+	}
+
+
+	# get user's options & sort numerically
+	my @ListOfUserChoices = sort { $a <=> $b } split(/ */, $UserChoices);
+
+	# install options, ignoring duplicates
+	for (my $index = 0; $index < scalar(@ListOfUserChoices); $index++ )
+	{
+		my $UserChoice = (@ListOfUserChoices)[$index];
+		
+		if ( ($index > 0) && ($UserChoice eq (@ListOfUserChoices)[$index-1]) )
+		{
+			next;		# duplicate option and already dealt with it
+		}
+	
+		elsif ($UserChoice !~ /\d/)
+		{
+			print "\n\nIgnoring unrecognised option '$UserChoice' at index $index.\n";
+			next;		#invalid option - ignore
+		}
+		
+		
+		# install the option
+		print "\n\nInstalling option $UserChoice ($AllTheOptions[$UserChoice]->[0])\n";
+		InstallOption($UserChoice);
+	
+		
+	}
+		
+	
+
+	system("rd /q /s $TargetDirectory\\[sdkroot]") if (-e "$TargetDirectory\\[sdkroot]");
+        
+	
+	CheckBuildPrerequisites();
+    CheckKSA();
+    CheckSupplementary();
+
+        #remove target directory at end of Devkit Install
+        print "\n\Removing target directory\n";
+        system("rd /q /s $TargetDirectory");
+        
+        
+
+}
+
+# --------------------------------- Start of CheckSupplementary() ----------------------------------------
+
+
+sub CheckSupplementary() 
+{#Call InstallSupplementaryKit.pl to test supplementary packages
+    my $scriptFileSupplementaryKits = "$ENV{ProductPath}\\SupplementaryProducts\\InstallSupplementaryKit.pl";    
+    my $JarFileDir = "$ENV{ProductPath}\\SupplementaryProducts";    
+    my $SuppTargetDirectory = "$TargetDirectory\\SuppKit";
+    
+    if (-e $JarFileDir )  {
+        my @JarFiles = <$JarFileDir\\*.jar>;
+        if ( scalar(@JarFiles) > 0 ) {
+            foreach my $JarFile (@JarFiles) {
+                system("perl $scriptFileSupplementaryKits -p $Platform -t $SuppTargetDirectory -j $JarFile");
+            }
+        } else {
+            print "Warning: No Supplementary Kits Packages exists in $JarFileDir \n";
+        }
+    } else {
+        print "Warning: Supplementary Kits Path: $JarFileDir do not exist! \n";
+    }
+}
+
+
+# --------------------------------- Start of CheckKSA() ----------------------------------------
+
+
+sub CheckKSA()
+{#KSA files added in BuildKit::addKSA(); Only check the existence of Setup.exe
+    my $KSAFile="$DevKitPackagesDirectory\\Setup.exe";
+	if ( ! ( -e $KSAFile ) ) 
+	{
+		print "\n ERROR: KSA files does not exist: $KSAFile\n";
+		die "ERROR: KSA files does not exist: $KSAFile \n"; 
+	}
+}
+
+# --------------------------------- Start of CheckBuildPrerequisites() ----------------------------------------
+
+
+sub CheckBuildPrerequisites()
+# checks target system for:
+#	Perl 5
+#	Java
+#	path environment variables:
+#		gcc/bin
+#		epoc32/tools
+#      	vcvars having been executed (path to link.exe)
+
+{
+	my $DisplayString = "";
+	
+	my $RegObj = 0;
+	my $Value = '';
+	my $Type = 0;
+	
+	my $REG_ACTIVE_PERL = "SOFTWARE\\ActiveState\\ActivePerl";
+	my $REG_PERL_DIRECTORY = "SOFTWARE\\Perl";
+	
+	my $REG_JAVA_RUNTIME	= "SOFTWARE\\JavaSoft\\Java Runtime Environment\\1.3";   # look for 1.3
+	my $REG_JAVA_RUNTIME_HOME = "JavaHome";
+	my $path = $ENV{"Path"};
+
+	
+	# Check Perl key - should be able to assume it's installed as this is a Perl script!
+	
+	# look for directory entry first
+	if ( ( $HKEY_LOCAL_MACHINE->Open("$REG_PERL_DIRECTORY", $RegObj) ) && ( $RegObj->QueryValueEx("", $Type, $Value) ) )
+	{
+		if (! -e $Value)	# { print "  The Perl directory listed in the registry at $Value does not exist\n";  }
+		{
+			$DisplayString = $DisplayString . "  Perl installation required\n";
+		}
+	}
+	else
+	{
+		$DisplayString = $DisplayString . "  Perl installation required\n";
+	}
+	$RegObj->Close(); 
+
+
+	# Check Java key
+	if ( (! $HKEY_LOCAL_MACHINE->Open("$REG_JAVA_RUNTIME", $RegObj) ) || (! $RegObj->QueryValueEx($REG_JAVA_RUNTIME_HOME, $Type, $Value) ) )
+	{
+		$DisplayString = $DisplayString . "  Java 1.3 installation required\n";
+	}
+	$RegObj->Close(); 
+	
+
+	
+	# check whether vcvars has been run (can link.exe be found on path?)
+	my $success = 0; #FALSE
+	foreach my $Directory (split(/;/, $path))
+	{
+		if ( ( $Directory =~ m/bin/i ) && (-e "$Directory\\link.exe") )
+		{
+			$success = 1; #TRUE
+		}
+	}
+	if (!$success) 
+	{
+		$DisplayString = $DisplayString . "Run vcvars.bat\n"; 
+	}
+	
+	# print info if anything to show
+	if ( $DisplayString ne "" )
+	{
+		print "\n\nBuild requirements:\n$DisplayString\n";
+	}
+
+
+
+
+}
+
+# --------------------------------- Start ofCommandLineInterface() ----------------------------------------
+
+
+sub CommandLineInterface()
+{
+	my $help;
+	if ( (GetOptions( "options|o=s" => \$UserChoices,
+			  "custkit|c=s" => \$CustKitPackagesDirectory,
+			  "devkit|d=s" => \$DevKitPackagesDirectory,
+			  "target|t=s" => \$TargetDirectory,
+			  "help|h|?" => \$help,
+			  "buildfromclean|b" => \$BuildFromClean,
+			  "platform|p=s" => \$Platform ) == 0 ) || ($help == 1) )
+	{
+		Usage();
+		exit; 
+	}
+
+	# check values received
+	
+	# user options - exit if not numeric or letter A
+	if ( $UserChoices !~ m/^[Aa0-8]+$/) 
+	{
+		print "\n ERROR: Non-valid option(s) supplied: $UserChoices\n";
+		die "ERROR: Non-valid option(s) supplied: $UserChoices\n"; 
+	}
+	
+
+	# check that DevKit is in stated directory, exit if not found
+	my @Packages = <$DevKitPackagesDirectory//com.symbian.devkit.*.sdkpkg>;
+	if ( scalar(@Packages) == 0 )
+	{
+		print "\n ERROR: DevKit packages not found in directory: $DevKitPackagesDirectory\n";	
+		die "ERROR: DevKit packages not found in directory: $DevKitPackagesDirectory\n";
+	}
+	
+		
+
+	# check that target location to write extracted files to is empty or non-existant
+
+	while ( (substr($TargetDirectory, -1, 1) eq '\\') || (substr($TargetDirectory, -1, 1) eq '/') )
+	{
+		chop($TargetDirectory); 		# remove final backslashes
+	}
+		
+	my @contents = <$TargetDirectory/*.*>;
+	if ( ( (-e $TargetDirectory) && (scalar(@contents) > 0) ) || ($TargetDirectory eq "" ) )
+	{
+			print "\n ERROR: Non-empty or unspecified target location: $TargetDirectory\n";
+			die "ERROR: Non-empty or unspecified target location: $TargetDirectory\n";
+	}
+	
+
+	if ( ($Platform eq "") && ($ENV{'Platform'} eq "") )
+	{
+		Usage();
+		print "\nN.B. -platform required\n";
+		exit; 
+	}
+	elsif ( ($Platform eq "") )
+	{
+		$Platform = $ENV{'Platform'} ;
+	}
+
+
+
+	
+	# print values for clarification/logging
+	print "  Installing options:      $UserChoices \n";
+	print "  DevKit in directory:     $DevKitPackagesDirectory \n";
+	print "  Installing to directory: $TargetDirectory \n";
+
+
+	# convert A in user options to numbers(after displaying)
+	$UserChoices =~ s/[aA]/012345678/g;
+
+}
+
+
+# --------------------------------- Start of UserInterface() ----------------------------------------
+
+
+sub UserInterface()
+{
+	print "\n------------------------------------------------------\n\n";
+	my $index = 0;
+	while ($index < scalar(@AllTheOptions))
+	{
+		# display option number and text for this option
+		print $index . ".  ".$AllTheOptions[$index]->[0]."\n";
+		$index++;
+	}
+
+	print "\n------------------------------------------------------\n\n";
+	
+	# get user's choice - must be numeric or 'A' for all
+	do
+	{
+		print "Enter option numbers to install (no separator) or A for [A]ll: ";
+		chomp($UserChoices = <STDIN>);
+		if ($UserChoices =~ m/[aA]/)
+		{
+			$UserChoices = "012345678";
+		}
+	} while ($UserChoices =~ m/[^\d]/)	;
+			
+	
+	# check that Kit is in this directory
+	my @Packages = <com.symbian.devkit.*.sdkpkg>;
+	while ( scalar(@Packages) == 0 )
+	{
+		# if not, get location of the packages
+		print "Enter path to the DevKit's packages (*.sdkpkg files) : ";
+		chomp( $DevKitPackagesDirectory = <STDIN> );
+		@Packages = <$DevKitPackagesDirectory//com.symbian.devkit.*.sdkpkg>
+	}
+	
+	
+	
+
+	# get location to write extracted files to
+	print "Enter directory to extract files to (must be new or empty): ";
+
+	my $invalid = 1; #TRUE
+
+	do	# ensure directory doesn't exist or is empty
+	{
+		chomp( $TargetDirectory = <STDIN> );
+		while ( (substr($TargetDirectory, -1, 1) eq '\\') || (substr($TargetDirectory, -1, 1) eq '/') )
+		{
+			chop($TargetDirectory); 		# remove final backslashes
+		}
+		
+		my @contents = <$TargetDirectory/*.*>;
+		if ( $invalid = ( (-e $TargetDirectory) && (scalar(@contents) > 0) ) || ($TargetDirectory eq "" ) )
+		{
+			print "Invalid selection - enter the name of an empty or new directory : ";
+		}
+	} while ( $invalid ) ;
+
+
+	# get Platform name - try environment, else ask user
+	if ($ENV{'Platform'} eq "")
+	{
+		print "Enter platform name  : ";
+		chomp( $Platform = <STDIN> );
+	}
+	else
+	{
+		$Platform = $ENV{'Platform'} ;
+	}
+	
+	
+	print "\n------------------------------------------------------\n\n";
+
+}
+
+
+# --------------------------------- Start of InstallOption() ----------------------------------------
+
+sub InstallOption()
+{
+	my $Option = $_[0] ;
+	
+	# get array of DevKit packages for this option
+	my $Entry = $AllTheOptions[$Option]->[1];
+	
+	
+	# for each package, call InstallPackage() to install the files
+	foreach my $Package (@$Entry)
+	{
+		if (! $InstalledOptions{$Package})
+		{
+			$InstalledOptions{$Package} = $Option ;
+			print "  Installing  $Package\n";
+			InstallPackage ( $Option, $Package, );
+		}
+		else
+		{
+			print "  Already got $Package\n";
+		}
+	}
+}
+
+
+# --------------------------------- Start of InstallPackage() ----------------------------------------
+
+sub InstallPackage()
+{
+	my $Option = $_[0] ;
+	my $Package = $_[1] ;
+	
+	# ensure package exists & is uniquely identified
+	
+	# try in DevKit directory first
+	my $PackageName = $DevKitPackagesDirectory."\\".$Package."_*sdkpkg";
+	my @Packages = glob($PackageName);
+	
+	# ensure the package exists
+	if ( scalar(@Packages) == 0 )
+	{
+		# not found, so try the CustKit directory
+		$PackageName = $CustKitPackagesDirectory."\\".$Package."_*sdkpkg";
+		@Packages = glob($PackageName);
+		if ( scalar(@Packages) == 0 )
+		{
+			print "\n ERROR: Package $Package not found. \n";
+			die "    ERROR: Package $Package not found. \n";	
+		}
+		elsif ( scalar(@Packages) > 1 )
+		{
+			print "\n ERROR: Package $Package name matched duplicate CustKit files \n";
+			die "    ERROR: Package $Package name matched duplicate CustKit files \n";	
+		}
+	}
+	elsif ( scalar(@Packages) > 1 )
+	{
+		print "\n ERROR: Package $Package name matched duplicate files \n";
+		die "    ERROR: Package $Package name matched duplicate files \n";	
+	}
+
+	
+	# now able to start reading package & copying files
+	
+	if (-e $Packages[0]) 
+	{
+     
+		system("unzip -q -o $Packages[0] -x package.xml -d \"$TargetDirectory\"");
+                
+	}
+
+}	
+	
+	
+
+
+
+
+
+
+# -------------------------- Start of makepath() ------------------------------
+
+sub makepath($)
+	{
+	my ($path) = @_;
+
+	if (-d $path)
+		{
+		return -1;
+		}
+	else
+		{
+		return mkpath($path);
+		}
+	}
+
+
+# --------------------------------- Start of Usage() ----------------------------------------
+
+sub Usage()
+{
+	print <<ENDOFUSAGETEXT;
+	
+INSTALLCUSTKIT.PL    Version 1.3    Copyright (c) 2002, 2003 Symbian Ltd
+                                    All rights reserved
+                                  
+Usage:
+  perl InstallCustKit.pl  [options]
+ 
+where options are:
+  -b[uildfromclean]       combine unpacked files into build from clean location
+  -c[ustkit] <path>       path to directory containing CustKit packages
+  -d[evkit] <path>        path to directory containing DevKit packages
+  -o[ptions] 012345678A   functionality options (A selects all)
+  -p[latform] <platform>  build platform - used to create binaries installation directory path
+  -t[arget] <path>        path to directory to unpack Kit into
+   
+ENDOFUSAGETEXT
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/PC_P4Table.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,36 @@
+# Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Script to generate a html report giving basic info on build.
+# It needs to be run in the context of a build client, otherwise
+# it would not generate the complete report as it uses the ENV
+# variables for most of the information.
+# 
+#
+
+use strict;
+use FindBin;
+use lib "$FindBin::Bin";
+use PC_P4Table;
+
+use Getopt::Long;
+
+
+my $iClientSpec = $ENV{CurrentCodeline} . "/".$ENV{Platform}."/generic/utils/".$ENV{Platform}."_clientspec.txt";
+
+&PC_P4Table::generateHTMLSummary($ENV{SnapshotNumber},
+				 $ENV{Product},
+				 $ENV{ChangelistNumber},
+				 $iClientSpec);
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/PC_P4Table.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,202 @@
+# Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Script generates PC and Perforce table when called from
+# BuildLaunch.xml file.
+# 
+#
+
+#!/usr/bin/perl -w
+package PC_P4Table;
+use strict;
+use Time::Local;
+
+my $iBuildLaunchFileLocation;
+my $iLinkPathLocation = "http://IntWeb/bitr/review_release.php";
+my $iBuildLaunchFileFound    = "1";
+my $iClientSpecFileLocation = "";
+
+my @gProduct_Clientinfo = (
+			['7.0s','Symbian_OS_v7.0'],
+			['7.0e','Symbian_OS_v7.0_enhance'],
+			['7.0','Symbian_OS_v7.0'],
+			['8.0a','Symbian_OS_8.0'],
+			['8.1a','Symbian_OS_v8.1'],
+			['8.1b','Symbian_OS_v8.1'],
+			['9.1','master'],
+			['9.2','master'],
+			['9.3','master'],
+			['Future','master'],
+			['9.4','master'],
+			['9.5','master'],
+			['9.6','master'],
+			['tb92','master'],
+                        ['tb101sf','master']
+		   );
+
+#####################################################################
+#Sub-Routine Name:getbuildloc
+#Inputs          :Product version
+#Outputs         :Returns log directory Location for product
+#Description     :
+#####################################################################
+sub getbuildloc
+  {
+  my $iProducts = shift;
+  my $i = 0;
+   
+  while($i < $#gProduct_Clientinfo+1)
+	{
+	 if ($iProducts eq $gProduct_Clientinfo[$i][0])
+	    {
+	    return $gProduct_Clientinfo[$i][1];
+	    }	    
+	 $i++;
+	}
+	 
+  return("Logs location not Found for product");
+ } 
+		   
+		   
+# outline style sheet internally  
+my $gStyleSheet = " \n
+
+                <style type=\"text/css\">                    
+                    h1,h2,h3
+                    {
+                        font-family: \"lucida calligraphy\", arial, 'sans serif'; 
+                    }
+
+                    p,table,li,
+                    {
+                        font-family: \"lucida calligraphy\", arial, 'sans serif'; 
+                        margin-left: 8pt;
+                    }
+
+                    body
+                    {
+                        background-color:#fffaf0;
+                    }
+
+                    p,li,th,td
+                    {
+                        font-size: 10pt;
+                        vertical-align:top;
+                    }
+
+                    h1,h2,h3,hr {color:#483d8b;}
+
+                    table {border-style:outset}
+                    li {list-style: square;}
+
+                    a.hoverlink:link {color: #0000ff; text-decoration: none}
+                    a.hoverlink:visited {color: #0000ff; text-decoration: none}
+                    a.hoverlink:hover {text-decoration: underline}
+                </style>";
+
+
+##########################################################################
+#
+# Name    :  setBrowserFriendlyLinks()
+# Synopsis:  Re-formats UNC path to file, with a Opera/Fire-Fox friendly
+#            version. Lotus Notes may cause problems though.
+# Inputs  :  UNC Path scalar
+# Outputs :  Scalar
+#
+##########################################################################
+sub setBrowserFriendlyLinks {
+    my ($iOldLink) = @_;
+    
+    $iOldLink =~ s/\\/\//g;  # swap backslashes to fwd slashes
+    return "file:///".$iOldLink;
+}
+##########################################################################
+#
+# Name	   : getBuildTime
+# Synopsis : Create a string containing the build timestamp
+# Inputs   : None
+# Outputs  : GMT timestamp
+##########################################################################
+sub getBuildTime
+{
+	my $time = gmtime(time);	# Get current GMT time
+	$time .= " GMT";			# Append GMT marker
+	return $time;				# Return it
+}
+
+##########################################################################
+#
+# Name    :  generateHTMLSummary()
+# Synopsis:  Creates an HTML report for the specified build.
+# Inputs  :  Scalar containing the build snapshot and product type
+# Outputs :  HTML report, published in current working dir
+##########################################################################
+sub generateHTMLSummary {
+    
+    my ($iSnapshot, $iProduct,$iChangeList, $iClientSpec) = @_;
+    my $iLogLocation = getbuildloc( $iProduct );
+    $iClientSpec =~ s/\/\/cedar/\/cedar/g;
+    my $iBuildLaunchFileLocation = "\\Builds01\\devbuilds\\$iLogLocation\\$iSnapshot\_Symbian_OS_v$iProduct\\logs\\BuildLaunch.xml";
+
+    open (SUMMARY, "+> $iSnapshot"."_"."$iProduct"."PC_Perforce_report.html") or die "ERROR:Can't open file : $!";
+       
+    my $html_start = "\n
+                    <HTML>
+                    <HEAD>" .
+                    $gStyleSheet .
+                    "<TITLE>" . "$iSnapshot "."$iProduct ". "PC and Perforce Reference</TITLE>
+                    <BODY BGCOLOR=\"FFFFFF\">
+
+                    </HEAD>
+                    <BODY>".
+		    
+                    "<TABLE width=\"100%\" border =\"1\" cellpadding=\"0\" cellspacing=\"0\">" .
+		    " <tr bgcolor=\"#006699\" align=\"top\"><th colspan=\"2\"> <font color=\"#ffffff\">PC and Perforce Reference for $iProduct</font></th> </tr>".
+		    " <tr align=\"top\"><td colspan=\"2\">
+		    
+		    <font size=\"2\"><p>
+                        [ <a class =\"hoverlink\" href = \"" . $iLinkPathLocation."\">  External Builds Info</a>  ]
+                        "."\n </p>
+                    </font>
+		    </td> </tr>".
+			"\n
+			<tr>
+			<th bgcolor=\"#006699\" align =\"left\" width=\"300\"> <font color=\"#ffffff\">BuildMachineName</font></th>" .
+			"<td align = \"left\">".`hostname`."" ."</td>".
+		        "</tr>\n".
+			"\n
+			<tr>
+			<th bgcolor=\"#006699\" align =\"left\"> <font color=\"#ffffff\">ClientSpec</font></th>" .
+			"<td align = \"left\">$iClientSpec </td>
+                        ".
+		        "</tr>\n".
+			"\n
+			<tr>
+			<th bgcolor=\"#006699\" align =\"left\"> <font color=\"#ffffff\">Perforce Changelist</font></th>" .
+			"<td align = \"left\">$iChangeList </td>" .
+		        "</tr>\n".
+			"\n
+			<tr>
+			<th bgcolor=\"#006699\" align =\"left\"> <font color=\"#ffffff\">Build Start Time</font></th>" .
+			"<td align = \"left\">".getBuildTime()."" ."</td>".
+		        "</tr>\n".
+		    "</table>
+                      </BODY>
+                      </html>
+                      ";
+                      
+                      
+    print SUMMARY $html_start;
+    
+    close SUMMARY;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/PreBldChecks.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,322 @@
+# Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# This script was originally just a test harness for PreBldChecks.pm
+# Subsequently it has been included in the MCL build
+# 
+#
+
+use strict;
+use Getopt::Long;
+use File::Copy;
+use Net::SMTP;
+use Sys::Hostname;
+use FindBin;
+use lib "$FindBin::Bin";
+use PreBldChecks;
+
+my $gSMTPServer = 'smtp.nokia.com';
+my $gNotificationSender = Sys::Hostname::hostname();
+if (defined $ENV{'USERNAME'}) { $gNotificationSender .= ".$ENV{'USERNAME'}"; }
+my $gXML2EnvVar = 'PreBldChecksXML2';
+
+# Notes on License Files used by CodeWarrior (CW) and/or ARM
+# The official IS-supported "RVCT2.0.1 to RVCT2.1" upgrade mechanism installs C:\APPS\ARM\LICENSE.DAT.
+# but leaves ARMLMD_LICENSE_FILE pointing to License Server(s)
+# The immediate fix was to delete the ARMLMD_LICENSE_FILE environment variable and edit
+# LM_LICENSE_FILE to read C:\apps\Metrowerks\OEM2.8\license.dat;C:\apps\arm\license.dat.
+
+# Note on CodeWarrior (CW) Version 3.0 (January 2005)
+# NOKIA now own CodeWarrior. Thus we have a further Environment Variable, named NOKIA_LICENSE_FILE
+
+# Note on CodeWarrior (CW) Version 3.1 (November 2006)
+# A licence is no longer required for the command line utilities, only for the IDE
+
+# Capture the name of this script for Help display etc.
+$0 =~ m/([^\\]+?)$/;
+my $gThisFile = $1;
+
+# Process the commandline
+my ($gXMLfile1,$gLogFile,$gNotificationAddress) = ProcessCommandLine();
+# If XML file specified, get environment variables from that file into %$gXMLEnvRef1.
+# Otherwise assume that all the required variables are already in the predefined hash %ENV
+if (defined $gXMLfile1)
+{
+    my $gXMLEnvRef1;    # Reference to hash containing environment data read from the XML file
+    $gXMLEnvRef1 = PreBldChecks::XMLEnvironment($gXMLfile1);
+    PreBldChecks::MergeEnvironment($gXMLEnvRef1);
+}
+
+# Now refer to the build-specific XML file for further environment variables
+# In an MCL build, this file has probably not been sync'ed yet. So get it from Perforce into a temporary directory
+my $gP4Location = $ENV{CurrentCodeline};
+$gP4Location =~ s#/$##;      # Remove trailing slash, if any
+if ((uc $ENV{'Platform'}) eq 'SF')
+{
+  $gP4Location = "$gP4Location/os/deviceplatformrelease/symbianosbld/cedarutils/$ENV{BuildBaseName}.xml"; #For Symbian MCL SF and TB91SF
+}
+else 
+{
+  $gP4Location = "$gP4Location/$ENV{Platform}/generic/utils/$ENV{BuildBaseName}.xml";  #For Symbian OS v9.5 and earlier
+}
+
+# The following use of an environment variable to override $gP4Location is provided to make it 
+# possible to test a product-specific XML file from a development branch. This functionality
+# can be used in a manual test build or in stand-alone tests.
+# NB: Remember that you are specifying a location in Perforce, not a Windows directory!
+if (defined $ENV{$gXML2EnvVar})
+{
+    $gP4Location = $ENV{$gXML2EnvVar};
+}
+
+my $gXMLfile2 = "$ENV{'TEMP'}\\$ENV{BuildBaseName}.xml";
+
+my $gCmd = "P4 print -q -o $gXMLfile2 $gP4Location 2>&1";
+my $gResponse = `$gCmd`;    # It seems that response is empty when P4 succeeds. On error, it will contain details.
+
+if (-e $gXMLfile2)
+{
+    my $gXMLEnvRef2;
+    $gXMLEnvRef2 = PreBldChecks::XMLEnvironment($gXMLfile2);
+    chmod (0666, $gXMLfile2);   # Make file R/W
+    unlink ($gXMLfile2);
+    PreBldChecks::MergeEnvironment($gXMLEnvRef2);
+}
+else
+{
+    $gP4Location = undef;   # See reporting text below
+}
+
+# Having acquired all available environment variables, set up text for eventual message.
+my $gBuildNumTxt = (defined $ENV{'BuildNumber'})? " - Build: $ENV{'BuildNumber'}": '';
+
+# Run checks.
+my($ErrorsRef,$WarningsRef) = PreBldChecks::AllChecks(\%ENV);
+# Log checks and/or print to screen
+my $errorCount = scalar @$ErrorsRef;
+my $warningCount = scalar @$WarningsRef;
+
+open BUILDENVOUTPUT, ">$gLogFile";
+
+print "\n\n";
+PrintLine('Results from pre-build checks:');
+PrintLine('Computer: ' . Sys::Hostname::hostname() . $gBuildNumTxt);
+PrintLine('XML Files used:');
+if (defined $gXMLfile1) { PrintLine("  $gXMLfile1"); }
+if (defined $gP4Location) { PrintLine("  $gP4Location"); }  # Report Perforce location ($gXMLfile2 points to temporary file only
+
+my @gEMailMsg = ();
+my $gErrMsg = '';
+
+if ($errorCount)
+{
+    $gErrMsg = 'Errors must be fixed before restarting build!';
+    PrintLine("$errorCount Error(s):");
+    push @gEMailMsg, "$errorCount Error(s):\n";
+    for my $text (@$ErrorsRef)
+        {
+        PrintLine("  $text");
+        push @gEMailMsg, "\t$text\n";
+        }
+}
+else
+{
+    PrintLine('No error.');
+}
+
+if ($warningCount)
+{
+    PrintLine("$warningCount Warning(s):");
+    push @gEMailMsg, "$warningCount Warning(s):\n";
+    for my $text (@$WarningsRef)
+    {
+        PrintLine("  $text");
+        push @gEMailMsg, "\t$text\n";
+    }
+}
+else
+{
+    PrintLine('No warning.');
+}
+
+if($gNotificationAddress and scalar @gEMailMsg)
+{
+    my $iHostName = Sys::Hostname::hostname;     # Depends on "use Sys::Hostname;"
+    my $iEmailSubject = "ERROR: PreBldCheck Errors/Warnings!$gBuildNumTxt";
+    my $iMsgIntro = "PreBldCheck Reports:$gBuildNumTxt";     # Message introduction (becomes first line of email body)
+    $iMsgIntro .= "\nComputer $iHostName - Log file: $gLogFile";
+    unshift @gEMailMsg, "$iMsgIntro:\n\n";
+    push @gEMailMsg, "\n$gErrMsg\n---------------------------------------------\n";
+    unless (SendEmail($iEmailSubject,@gEMailMsg)) { ++$errorCount; }
+}
+
+if ($errorCount)
+{
+    print "\n";
+    # IMPORTANT: In the following text, "ERROR:" is a keyword for ScanLog to identify
+    PrintLine("ERROR: $gErrMsg\n");
+}
+
+close BUILDENVOUTPUT;
+print "\n";
+
+exit($errorCount);      # End of main script
+
+# PrintLine
+#
+# Inputs
+# Text to be written. (No CRLF required)
+#
+# Outputs
+# Text to screen and to log file.
+#
+# Description
+# This subroutine takes a line of text, adds CRLF and writes it to both screen and to the logfile.
+
+sub PrintLine
+{
+    my $iLine = shift;
+    print "$iLine\n";
+    print BUILDENVOUTPUT "$iLine\n";
+}
+
+# SendEmail
+#
+# Input: Subject, Message (array of lines)
+#
+# Returns: TRUE on success
+#
+sub SendEmail
+{
+    my ($iSubject, @iBody) = @_;
+
+    my (@iMessage);
+    my $iRetVal = 0;
+
+    push @iMessage,"From: $gNotificationSender\n";
+    push @iMessage,"To: $gNotificationAddress\n";
+    push @iMessage,"Subject: $iSubject\n";
+    push @iMessage,"\n";
+    push @iMessage,@iBody;
+
+    # Create an SMTP Client object that connects to the Symbian SMTP server
+    # Client tells the server what the mail domain is.
+    # Debug - just enables debugging information.
+    my $iSMTP = Net::SMTP->new($gSMTPServer, Hello => $ENV{'COMPUTERNAME'}, Debug   => 0);
+
+    if($iSMTP)
+    {
+        $iSMTP->mail();
+        $iSMTP->to($gNotificationAddress);
+        $iRetVal = $iSMTP->data(@iMessage);
+        $iSMTP->quit;
+    }
+    unless ($iRetVal)
+    {   # Report email failure to log and to screen (NB: "WARNING:" is a keyword for ScanLog to identify)
+        PrintLine ("WARNING: Failed to send email notification!\nSubject: $iSubject\nMessage:\n");
+        print join ('',@iBody), "\n";   # Send email body to screen only. (Will be logged by BuildServer/Client)
+    }
+    return $iRetVal;
+}
+
+# ProcessCommandLine
+#
+# Inputs
+#
+# Returns
+# $iXMLfile filename of XML file from, which environment data are to be read.
+# $iLogFile filename to write log to.
+#
+# Description
+# This function processes the commandline
+
+sub ProcessCommandLine {
+    my ($iHelp, $iXMLfile,$iLogfile,$iEMailAddress);
+    GetOptions('h' => \$iHelp, 'x=s' => \$iXMLfile, 'l=s' => \$iLogfile, 'e=s' => \$iEMailAddress);
+
+    if ($iHelp) { Usage(); }
+
+    if (!defined $iLogfile) { Usage("Logfile not specified!"); }
+
+    &backupFile($iLogfile) if (-e $iLogfile);
+  
+    return($iXMLfile, $iLogfile, $iEMailAddress);
+}
+
+# backupFile
+#
+# Inputs
+# $iFile - filename to backup
+#
+# Outputs
+#
+# Description
+# This function renames an existing file with the .bak extension
+sub backupFile
+{
+	my ($iFile) = shift;
+	my ($iBak) = $iFile;
+        $iBak =~ s/(\.\w*?$)/\.bak$1/;  # Convert, e.g., "PreBldChecks.log" to "PreBldChecks.bak.log"
+	if ((-e $iFile) and ($iFile ne 'NUL'))
+	{   # (NB: "WARNING:" is a keyword for ScanLog to identify)
+	    print "WARNING: $iFile already exists!\n\t Creating backup of original with new name of $iBak\n";
+	    move($iFile,$iBak) or die "WARNING: Could not backup $iFile to $iBak because of: $!\n";	  
+	}
+}
+
+# Usage
+#
+# Output Usage Information and exit whole script.
+#
+
+sub Usage {
+    my $iMsg = shift;
+    
+    if (defined $iMsg) { print "\nERROR: $iMsg\n"; }
+    
+    print <<USAGE_EOF;
+    
+    $gThisFile:
+        Carries out various checks on the build environment
+        including disk free space, the state of licensing
+        for CodeWarrion and for ARM RVCT.
+        Writes errors and warnings to the specified log file.
+        Emails notification of errors (but not warnings) to
+        the specified email address.
+        On exit, ERRORLEVEL is set to the Error Count.
+
+    Usage: $gThisFile parameters [options]
+
+    Parameters:
+    -l  logfile (output)
+
+    Options:
+    -x  XML file (input)
+    -e  EMail address for warnings (internet format)
+    -h  Help
+
+    If no XML file is specified, script will assume that all
+    necessary variables are already in the environment (\%ENV).
+    In any case, script will attempt to locate the relevant
+    build-specific XML file in Perforce and will read any
+    environment variables found in it.
+    
+    Strictly for test purposes, the calculated location of the
+    secondary (product-specific) XML file may over-ridden by
+    setting the Environment Variable $gXML2EnvVar
+    
+USAGE_EOF
+
+	exit 1;
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/PreBldChecks.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,509 @@
+# Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# This module is intended to be run at an early stage when starting a Master Codeline build (or analogous "steady state) build.
+# As such it is called from StartBuild.pl. It can also be called by PreBuildChecks.pl
+# It will check for disk space and other aspects of the build environment.
+# It issues errors and/or warnings by pushing texts onto global arrays and returning references to these arrays.
+# 
+#
+
+package PreBldChecks;
+use strict;
+use FindBin;
+use lib "$FindBin::Bin";
+use lib "$FindBin::Bin\\..\\tools\\build\\lib";
+use lib "$FindBin::Bin\\..\\buildsystemtools\\lib";
+use XML::Parser;
+use IO::Socket;
+use Socket;
+use Date::Manip;
+
+# Set TimeZone because Date:Manip needs it set and then tell it to IGNORE the TimeZone
+Date::Manip::Date_Init("TZ=GMT","ConvTZ=IGNORE");
+
+my @Errors = ();
+my @Warnings = ();
+
+# XMLEnvironment
+# This is a public interface to this module
+# Reads supplied XML file and resolves back references (i.e the %<varName>% syntax!).
+#
+# Inputs
+# Name of input XML file
+#
+# Returns
+# Reference to hash containing environment data read from XML file, or undef on error.
+#
+sub XMLEnvironment
+{
+    my $iXMLfile = shift;
+    my %iXML_ENV;       # Hash whose reference will be returned
+    @SubHandlers::gXMLdata = ();     # Clear global array. This allows this subroutine to be called twice.
+    my $iParser = new XML::Parser(Style=>'Subs', Pkg=>'SubHandlers', ErrorContext => 2);
+
+    unless (-e $iXMLfile)
+    {
+        push @Errors, "XML File not found at: \"$iXMLfile\"!";
+        return undef;
+    }
+    
+    # Pass XML data source filename to the XML Parser
+    $iParser->parsefile($iXMLfile);
+    for (my $iIndx = 0; $iIndx < scalar @SubHandlers::gXMLdata; $iIndx++)
+    {
+        my $iHashRef = $SubHandlers::gXMLdata[$iIndx];
+        unless (defined $iHashRef) { next; }
+        # Resolve references to preceding variables in the current XML file or in the Windows environment
+        while ($iHashRef->{Value} =~ m/%(\w+)%/)
+        {
+            my $iVarName = $1;
+            if (defined $iXML_ENV{$iVarName})
+            {   # First substitute from our own XML file data
+                $iHashRef->{Value} =~ s/%\w+%/$iXML_ENV{$iVarName}/;
+            }
+            elsif (defined $ENV{$iVarName})
+            {   # Secondly substitute from the Windows environment
+                $iHashRef->{Value} =~ s/%\w+%/$ENV{$iVarName}/;
+            }
+            else
+            {
+                $iHashRef->{Value} =~ s/%\w+%//;  # Undefined variables become 'nothing'.
+            }
+        }   # End while()
+        $iHashRef->{Value} =~ s/%%//g;      # Any remaining double % become single %
+        $iXML_ENV{$iHashRef->{Name}} = $iHashRef->{Value};
+    }   # End for()
+    return \%iXML_ENV;
+}
+
+# MergeEnvironment
+# This is a public interface to this module
+# Merge supplied environment variables into %ENV. It seems that %ENV is a form of tied hash which supports
+# Windows (case-preserving) variable names. Names are always returns (by key function) in upper case.
+#
+# Input: New variables to be added to %ENV (hash ref.)
+#
+# Output: Modifications to global %ENV
+#
+# Return: None
+#
+sub MergeEnvironment
+{
+    my $iEnvRef = shift;            # Environment variables to be added to %ENV
+
+    for my $iName (keys %$iEnvRef)
+    {
+        $ENV{$iName} = $iEnvRef->{$iName};
+    }
+}
+
+# AllChecks
+# This is a public interface to this module
+# It checks various items in the build environment and reports any anomalies.
+#
+# Inputs
+# Reference to environment hash. This may be the hash populated by a previous call to sub XMLEnvironment()
+# or may be the predefined hash %ENV
+#
+# Returns
+# Two array refs: \@Errors,\@Warnings
+#
+sub AllChecks
+{
+    my $iEnvRef = shift;
+    my $iXMLerror = 0;
+    
+    checkdiskspace($iEnvRef);  # Check Disk Space
+    checkCWlicensing();        # Check CodeWarrior licensing
+    checkARMlicensing();       # Check ARM licensing
+    return \@Errors,\@Warnings;
+}
+
+# checkdiskspace
+#
+# Inputs
+# Reference to hash containing environment variables
+#
+# Outputs
+# Pushes error/warning texts onto global arrays
+#
+sub checkdiskspace
+{
+    my $iEnvRef = shift; 
+    my $iPublishLoc = $iEnvRef->{'PublishLocation'};    # Directory (network share) to which build is to be published e.g \\Builds01\DevBuilds
+    $iPublishLoc =~ s/([^\\])$/$1\\/;                   # Ensure trailing backslash   
+    my $iCBRLocation = $iEnvRef->{'CBRLocation'};       # Directory (network share) containg CBR archive(s)
+    unless (defined $iCBRLocation) { $iCBRLocation = '\\\\Builds01\\devbuilds\\ComponentisedReleases'; };
+    $iPublishLoc .= $iEnvRef->{'Type'};                 # Append Type to gaive a real directory name for DIR to check
+    my $iPublishMin = $iEnvRef->{'PublishDiskSpaceMin'};# Space in gigabytes required on that drive
+    my $iLocalMin = $iEnvRef->{'LocalDiskSpaceMin'};    # Space in gigabytes required on local (current) drive
+
+# Check disk space on local drive (assumed to be the Windows current drive)
+    unless (defined $iLocalMin)
+    {
+        push @Errors, "Unable to check disk space on local drive!\n\tCheck environment variable \"LocalDiskSpaceMin\"";
+    }
+    else
+    {
+        my $free = freespace('');
+        unless (defined $free)
+        {
+            push @Errors, 'Unable to check disk space on local drive!';
+        }
+        elsif ($free < ($iLocalMin * 1000000000))
+        {
+            push @Errors, "Insufficient space on local drive! $iLocalMin gigabytes required.";
+        }
+    }
+    
+# Check disk space on "Publishing Location"
+    unless ((defined $iEnvRef->{'PublishLocation'}) and (defined $iEnvRef->{'Type'}) and (defined $iPublishMin))
+    {
+        push @Errors, "Unable to check disk space on \"Publishing\" drive\"!\n\tCheck env. var\'s \"PublishLocation\", \"Type\" and \"PublishDiskSpaceMin\"";
+    }
+    else
+    {
+        my $free = freespace($iPublishLoc);
+        unless (defined $free)
+        {
+            push @Errors, "Unable to check disk space on \"$iPublishLoc\"!";
+        }
+        elsif ($free < ($iPublishMin * 1000000000))
+        {
+            push @Warnings, "Insufficient space on \"$iPublishLoc\"! $iPublishMin gigabytes required.";
+        }
+    }
+
+    # Check disk space on CBR location
+    unless ((defined $iCBRLocation) and (defined $iPublishMin))
+    {
+        push @Errors, "Unable to check disk space on \"CBR\" drive\"!\n\tCheck env. var\'s \"CBRLocation\" and \"PublishDiskSpaceMin\"";
+    }
+    else
+    {
+        my $free = freespace($iCBRLocation);
+        unless (defined $free)
+        {
+            push @Errors, "Unable to check disk space on \"$iCBRLocation\"";
+        }
+        elsif ($free < ($iPublishMin * 1000000000))
+        {
+            push @Warnings, "Insufficient space on \"$iCBRLocation\"! $iPublishMin gigabytes required.";
+        }
+    }
+}
+
+# freespace
+#
+# Inputs
+# Drive letter or share name (or empty string for current drive)
+#
+# Returns
+# Free space in bytes or undef on error.
+#
+sub freespace
+{
+    my $drive = shift;  # Typically 'D:' (including the colon!) or '\\Builds01\DevBuilds'
+    my $free = undef;   # Free bytes on drive
+    if (defined $drive)
+    {
+        open FDIR, 'DIR /-c ' . $drive. '\* |';
+        while (<FDIR>)
+        {
+        	if ($_ =~ /\s+(\d+) bytes free/) { $free=$1;}
+        }
+    }
+    return $free;
+}
+
+# checkCWlicensing
+#
+# Inputs
+# None. Environment variables must come from the Windows environment (via global hash %ENV)
+#
+# Outputs
+# Pushes warning texts onto global arrays
+# (Licensing problems are always treated as warnings because new compiler versions
+# tend to create apparent errors and it takes a finite time to update this script.)
+#
+sub checkCWlicensing
+{   # Environment variables: LM_LICENSE_FILE and/or NOKIA_LICENSE_FILE
+    my @licensefiles;
+    if (defined $ENV{'MWVER'})
+    {
+         if($ENV{'MWVER'} gt '3.0')
+         {
+            ####???? print "No CodeWarrior licence required!";   For debugging
+            return;
+         }
+    }
+    if (defined $ENV{'LM_LICENSE_FILE'})
+    {
+        push @licensefiles, split /;/, $ENV{'LM_LICENSE_FILE'};
+    }
+    if (defined $ENV{'NOKIA_LICENSE_FILE'})
+    {
+        push @licensefiles, split /;/, $ENV{'NOKIA_LICENSE_FILE'};
+    }
+    unless (@licensefiles)
+    {   # Environment variable(s) not set up
+        push @Warnings, 'Neither LM_LICENSE_FILE nor NOKIA_LICENSE_FILE defined!';
+        return;
+    }
+    foreach my $licensefile (@licensefiles)
+    {
+        if (-e $licensefile)
+        {   # File exists. So open and parse
+            if (parseCWlicensefile($licensefile))
+                { return; }     # If parsing subroutine returns TRUE, do not look for any more files
+        }
+        else
+        {
+            push @Warnings, "Environment specifies file $licensefile but not found!";
+        }
+    }   # End foreach()
+    push @Warnings, "No valid CodeWarrior license found!";
+}
+
+# parseCWlicensefile
+#
+# Inputs
+# Filename
+#
+# Outputs
+# Pushes error/warning texts onto global arrays
+# Returns TRUE if relevant license information found. FALSE means "Try another file."
+#
+sub parseCWlicensefile
+{
+    my $fname = shift;
+    my $return = 0; # Default to FALSE - "Try another file."
+    unless (open (LFILE, "$fname"))
+        {
+        push @Warnings, "License file ($fname) cannot be opened!";
+        return $return;     # "Try another file."
+        }
+    my $wholeline;  # Used to assemble continuation lines into one entry
+    while(my $line = <LFILE>)
+        {
+        chomp $line;
+        $line =~ s/^\s*//;     # Remove leading spaces
+        $wholeline .= $line;
+        if ($wholeline =~ s/\\$//) { next; }    # Trailing backslash means entry continues on next line
+        if ($wholeline =~ m/^FEATURE.+symbian/i) # FEATURE is CW usage (not ARM !?)
+            {
+            if ($wholeline =~ m/permanent/i)
+                {        
+                $return = 1;    # Licence OK. "Do not try another file."
+                last;
+                }
+            if ($wholeline =~ m/(\d{1,2}-\w{3}-\d{2,4})/i)
+                {
+                my ($date2) = Date::Manip::ParseDate($1);
+                unless (defined $date2)
+                    {
+                    push @Warnings, "Failed to parse CodeWarrior license expiry date! (License file $fname)";
+                    last;   # "Try another file."
+                    }
+                my $expirytext = Date::Manip::UnixDate($date2,"%Y/%m/%d");
+                my $delta = Date::Manip::DateCalc("today",$date2);
+                my $Dd = Date::Manip::Delta_Format($delta,'0',"%dt");
+                if ($Dd < 1)
+                    {
+                    push @Warnings, "CodeWarrior license expired on $expirytext! (License file $fname)";
+                    }
+                elsif ($Dd < 7)
+                    {
+                    push @Warnings, "CodeWarrior license expires on $expirytext! (License file $fname)";
+                    }
+                $return = 1;    # Licence expiry date parsed. "Do not try another file."
+                last;
+                }
+            }
+        $wholeline = '';
+        }   # End while()
+    close LFILE;
+    return $return;
+}
+
+# checkARMlicensing
+#
+# Inputs
+# None. Environment variables must come from the Windows environment (via global hash %ENV)
+#
+# Outputs
+# Pushes warning texts onto global arrays
+# (Licensing problems are always treated as warnings because new compiler versions
+# tend to create apparent errors and it takes a finite time to update this script.)
+#
+sub checkARMlicensing
+{   # Environment variables: LM_LICENSE_FILE and/or ARMLMD_LICENSE_FILE
+    my @licensefiles;
+    if (defined $ENV{'LM_LICENSE_FILE'})
+    {
+        push @licensefiles, split /;/, $ENV{'LM_LICENSE_FILE'};
+    }
+    if (defined $ENV{'ARMLMD_LICENSE_FILE'})
+    {
+        push @licensefiles, split /;/, $ENV{'ARMLMD_LICENSE_FILE'};
+    }
+    unless (@licensefiles)
+    {   # Environment variable(s) not set up
+        push @Warnings, 'Neither LM_LICENSE_FILE nor ARMLMD_LICENSE_FILE defined!';
+        return;
+    }
+    my $iLicenceFound = 0;
+    foreach my $licensefile (@licensefiles)
+    {
+        if($licensefile =~ m/^(\d+)\@([-\w\.]+)$/)
+        {
+            if(VerifySocket($2,$1))
+                { $iLicenceFound = 1; next; }
+            push @Warnings, "Apparent licence server cannot be accessed. (Host=$2 Port=$1)!";
+        }
+        elsif (-e $licensefile)
+        {   # File exists. So open and parse
+            if (parseARMlicensefile($licensefile))
+                { $iLicenceFound = 1; next; }
+        }
+        else
+        {
+            push @Warnings, "Environment specifies file $licensefile but not found!";
+        }
+    }   # End foreach()
+    unless ($iLicenceFound)
+        { push @Warnings, "No valid ARM license found!"; }
+}
+
+# parseARMlicensefile
+#
+# Inputs
+# Filename
+#
+# Outputs
+# Pushes error/warning texts onto global arrays
+# Returns TRUE if relevant license information found. FALSE means "Try another file."
+#
+sub parseARMlicensefile
+{
+    my $fname = shift;
+    my $return = 0; # Default to FALSE - "Try another file."
+    unless (open (LFILE, "$fname"))
+        {
+        push @Warnings, "License file ($fname) cannot be opened!";
+        return $return;     # "Try another file."
+        }
+    my $wholeline;  # Used to assemble continuation lines into one entry
+    while(my $line = <LFILE>)
+        {
+        chomp $line;
+        $line =~ s/^\s*//;     # Remove leading spaces
+        $wholeline .= $line;
+        if ($wholeline =~ s/\\$//) { next; }    # Trailing backslash means entry continues on next line
+        if ($wholeline =~ m/^INCREMENT.+symbian/i) # INCREMENT is ARM usage (not CW !?)
+            {
+            if ($wholeline =~ m/permanent/i)
+                {        
+                $return = 1;    # Licence OK. "Do not try another file."
+                last;
+                }
+            if ($wholeline =~ m/(\d{1,2}-\w{3}-\d{2,4})/i)
+                {
+                my ($date2) = Date::Manip::ParseDate($1);
+                unless (defined $date2)
+                    {
+                    push @Warnings, "Failed to parse ARM license expiry date! (License file $fname)";
+                    last;   # "Try another file."
+                    }
+                my $expirytext = Date::Manip::UnixDate($date2,"%Y/%m/%d");
+                my $delta = Date::Manip::DateCalc("today",$date2);
+                my $Dd = Date::Manip::Delta_Format($delta,'0',"%dt");
+                if ($Dd < 1)
+                    {
+                    push @Warnings, "ARM license expired on $expirytext! (License file $fname)";
+                    }
+                elsif ($Dd < 7)
+                    {
+                    push @Warnings, "ARM license expires on $expirytext! (License file $fname)";
+                    }
+                $return = 1;    # Licence expiry date parsed. "Do not try another file."
+                last;
+                }
+            }
+        $wholeline = '';
+        }   # End while()
+    close LFILE;
+    return $return;
+}
+
+# VerifySocket
+#
+# Verify that the specified host+port exists and that a socket can be opened
+#
+# Input: Hostname, Port number
+#
+# Return: TRUE if socket can be opened
+#
+sub VerifySocket
+{
+    my $iHost = shift;
+    my $iPort = shift;
+    my $iSocket;
+
+    # Attempt to create a socket connection
+    $iSocket = IO::Socket::INET->new(PeerAddr => $iHost,
+                                PeerPort => $iPort,
+                                Proto    => "tcp",
+                                Type     => SOCK_STREAM);
+                               
+    unless ($iSocket) { return 0; } # FALSE = Failure
+    close($iSocket);
+    return 1;   # TRUE = Success
+}
+
+
+package SubHandlers;
+our @gXMLdata;       # Stores data as read from XML file. Is accessed by PreBldChecks::XMLEnvironment() only
+
+# SetEnv
+#
+# Description
+# This subroutine handles the callback from the XML parser for the SetEnv tag in the XML file.
+# Multiple instances allowed
+# In the Build System context, each call to this subroutine corresponds to one environment variable.
+#
+# Inputs
+# Reference to an instance of XML::Parser::Expat
+# The name of the element ('SetEnv')
+# A list of alternating attribute names and their values.
+#
+# Outputs
+# Adds data directly to global array @gXMLdata
+#
+sub SetEnv
+{
+    shift;   # Hashref (instance of XML::Parser::Expat)
+    shift;   # Always 'SetEnv'
+
+    # Read the attributes of the tag into a hash
+    my %iAttribs = @_;
+
+    # Add this hash (representing a single tag) to the array of SetEnv tags from this file
+    push @gXMLdata, \%iAttribs;
+}
+
+1;
+
+__END__
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/ReleaseNotes.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,580 @@
+#!perl
+
+# Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# GT and TV Release notes generator
+# How this script works...
+# 1.Creates a list of all GT and TV components with their MRP file locations at both the current and previous CL.
+# 2.Iterates through the previous CL list for any components that are not in the current CL list and adds these to 
+# the currentCL list.
+# 3.Runs a p4 print for each MRP file and stores each component and its source(s) to an array. Component names in uppercase
+# and source lines in lowercase.
+# 4.Iterates through this array extracting each component name and runs "p4 changes -l -s submitted" between the
+# previous and current CL for each component source.
+# 5.Outputs this data to a HTML file
+# 
+#
+
+use strict;
+
+#----------------------------GLOBAL DEFINITIONS-------------------------------------#
+my $Product = $ARGV[0];
+my $Srcpath = $ARGV[1];
+my $PrevCL = $ARGV[2];       #Previous external release changelist number
+my $CurrentCL = $ARGV[3];    #Current external release changelist number
+
+my @PrevMrpComponents;	  #Array of Components at Previous changelist number
+my @CurrMrpComponents;    #Array of Components at Current changelist number
+my @NewMrpComponents;     #Array of Merged Components
+
+my @ComponentAndSource;   #Array of all components and source
+my @Components;           #Array of component names
+
+my $GTfilename;           #Location of GTComponents.txt
+my $TVfilename;			  #Location of TVComponents.txt
+my $GTcomponents;         #List of all GTComponents and their MRP file locations
+my $TVcomponents;		  #List of all TVComponents and their MRP file locations
+
+my $CurrentMrps;          #List of all GT and TV components at the current CL number
+my $PreviousMrps;         #List of all GT and TV components at the previous CL number
+my $Platform;             #Platform of product specified, i.e. beech or cedar
+
+my @CompChange;           #Array of component change information
+my @CompLines;            #Array of just component changes
+my @CompChangelists;      #Array of component changelist numbers
+
+my $CompName;             #Component name
+my $Topdir;               #Directory of component source
+
+my @NochangeComponents;   #Array of components which have not been changed (may contain duplicate components)
+my @UnchangedComponents;  #Array of non-duplicate components which have not been changed
+my @ChangedComponents;    #Array of components which have been changed
+my @NewComponents;        #Array of new components
+my $ProductName;          #Name of product
+
+my $ChangeExists;         #Flag which indicates any duplicate changes for a component
+my $NewComponent;         #Flag which indicates if a component is new or not
+
+my %CodeLine;             #Hash for holding main Codeline for each product
+
+my $Marker = "**TECHVIEWCOMPONENTS**\n";   #Marker for splitting GT and TV Components
+
+#-----------------------------------------------------------------------------------#
+
+#Check that correct number of arguments were specified by the user
+#If not then print out Usage instructions to the command window	
+Usage() if (@ARGV!=4);
+
+#Check that the inputs are valid
+CheckInputs();
+
+#Assign codeline for product
+%CodeLine = (
+	     "8.0" => "//EPOC/release/8.0",
+	     "8.1a" => "//EPOC/release/8.1",
+	     "8.1b" => "//EPOC/release/8.1",
+	     "9.1" => "//EPOC/master",
+	     "9.2" => "//EPOC/master",
+	    );
+
+#Create a list of all components and their MRP files at both the current and previous CL's
+CreateMRPLists();
+
+#Merge and process the lists
+ProcessLists($PreviousMrps, $CurrentMrps);
+
+#Begin creation of release notes using the merged list of MRPs
+$NewComponent = 0;
+$NewComponent = 1 if ($PrevCL == 0);
+
+$PrevCL++;     # inc changelist number so we don't include the very first submission - it would have been picked up in the last run of this script
+
+$ProductName = "Symbian_OS_v$Product Delivery Release Notes" if($Srcpath =~ m/deliver/i);
+$ProductName = "Symbian_OS_v$Product Release Notes" if ($Srcpath =~ m/release/i);
+if ($Srcpath =~ m/master/i)
+{
+	$ProductName = "Symbian_OS_v$Product MCL Release Notes";
+}
+
+my ( $s, $min, $hour, $mday, $mon, $year, $w, $y, $i)= localtime(time);
+$year+= 1900;
+$mon++;
+
+open OUTFILE, "> $ProductName.html"
+	or die "ERROR: Can't open $ProductName.html for output\n$!";
+print OUTFILE <<HEADING_EOF;
+<html>\n\n<head>\n<title>$ProductName</title>\n</head>\n\n
+<body bgcolor=\"#ffffff\" text=\"#000000\" link=\"#5F9F9F\" vlink=\"5F9F9F\">\n
+<font face=verdana,arial,helvetica size=4>\n\n<hr>\n\n
+<a name=\"list\"><h1><center>$ProductName</center></h1></a>
+<p><center>Created - $mday/$mon/$year</center>\n
+<p><center>----------------------------------------</center>\n
+<h2><center>GT Components</center></h2>\n
+HEADING_EOF
+
+foreach my $element(@ComponentAndSource)
+	{
+	my $Preform = 0;
+	my $ChangeCount = 0;
+	my $Exists = 0;
+	my $IsAFile = 0;
+	
+	if($element =~ /\*\*TECHVIEWCOMPONENTS\*\*/)
+		{
+		print OUTFILE "<h2><center>Techview Components</center></h2>\n";
+		}
+	
+	if($element =~ /^([A-Z].*)/)  #Look for component names in array
+		{
+		$CompName = $1;
+		@CompChangelists = ();
+		}
+	
+	elsif($element =~ /^([a-z].*)/)  #Look for source directories in array
+		{
+		$Topdir = $1;
+		$Topdir =~ s/\s+$//;  #drop any trailing spaces
+
+		
+		if($Topdir =~ /.*\s+.*/)
+			{
+			$Topdir = "\"$Topdir\"";
+			}
+		
+		my $command = "p4 changes -l -s submitted $Srcpath/$Topdir...\@$PrevCL,$CurrentCL";
+		@CompChange = `$command`;
+		die "ERROR: Could not execute: $command\n" if $?;
+		
+		foreach my $line(@CompChange)
+			{	
+			if ($line !~ /\S/) { next; }      # ignore lines with no text 
+	      	chomp $line;
+	      	$line =~ s/\&/&amp;/g;
+      		$line =~ s/\</&lt;/g;
+     		$line =~ s/\>/&gt;/g;
+      		$line =~ s/\"/&quot;/g;
+	      		
+			if($line =~ /^Change\s(\d+)\s/)
+				{
+				my $Change = $1;
+				
+				$ChangeExists = 0;
+				
+				$line =~ s|\s+by.*||;
+				if ($Preform) 
+          			{ 
+          			push @CompLines, "</pre>"; 
+          			$Preform = 0; 
+          			}
+          		
+          		#Check if this change has already been accounted for in this component
+          		foreach my $ChangeList(@CompChangelists)
+         			{
+	          		if($ChangeList == $Change)
+	          			{
+		          		$ChangeExists = 1;
+	          			}
+         			}
+          		
+         		#If the change is not a duplicate then add it to the changes array and output the change
+         		#to Relnotes.
+          		if($ChangeExists == 0)
+          			{
+	          		$ChangeCount+=1;
+	          		push @CompChangelists, $Change;
+       				push @CompLines, "<p><b>$line</b>";
+        			push @CompLines, "<pre>";
+    				}
+    			
+    			$Preform = 1;
+        		next;
+				}
+				
+			$line =~ s/^\s//;                 # drop first leading whitespace
+   			$line =~ s/^\t/  /;               # shorten any leading tab
+      		
+   			if($ChangeExists == 0)
+   				{
+   				push @CompLines, $line;
+				}
+			}
+		
+		if ($ChangeCount == 0)
+   			{
+    		if ($NewComponent)
+    			{
+    			push @NewComponents, $CompName;
+    			}
+    		else
+    			{	
+    			push @NochangeComponents, $CompName;
+    			}
+    			next;
+    		}
+    		
+    	# Component with real change descriptions
+		if ($Preform)
+			{
+			push @CompLines, "</pre>";
+			}
+		
+		#Populate the changed components array with all changed components
+		foreach my $entry(@ChangedComponents)
+			{
+			if($entry eq $CompName)
+				{
+				$Exists = 1;
+				}
+			}
+			
+		if($Exists == 0)
+			{
+			&PrintLines("<h2>$CompName</h2>",@CompLines);
+			push @ChangedComponents, $CompName;
+			}
+		
+		else
+			{
+			&PrintLines("",@CompLines);
+			}
+		}
+		
+		@CompLines = ();
+	}
+
+#Get rid of any duplicate component entries in the Unchanged Components list.
+for(my $ii = 0; $ii < @NochangeComponents; $ii++)
+	{
+	if($NochangeComponents[$ii] ne $NochangeComponents[$ii + 1])
+		{
+		push @UnchangedComponents, $NochangeComponents[$ii];
+		}
+	}
+
+#Check for components which have been changed but still appear in the unchanged components list.
+#This can occur when a component has more than one one source. i.e.one source could be changed while the other source
+#remains unchanged.
+foreach my $changed(@ChangedComponents)
+	{
+	foreach my $unchanged(@UnchangedComponents)
+		{
+		if($changed eq $unchanged)
+			{
+			$unchanged = "";       #Empty this array element
+			}
+		}
+	}
+
+#Get rid of any empty elements in the unchanged component array
+my @FinalUnchangedList;
+foreach my $element(@UnchangedComponents)
+	{
+	if($element ne "")
+		{
+		push @FinalUnchangedList, $element;
+		}
+	}
+
+if (scalar @NewComponents)
+	{
+	&PrintLines("<h2>New Components</h2>", join(", ", sort @NewComponents));
+	}
+	
+if (scalar @FinalUnchangedList)
+	{
+	if($Srcpath =~ m/deliver/i)
+		{
+		&PrintLines("<h2>Unchanged Components (Delivery)</h2>", join(", ", sort @FinalUnchangedList));
+		}
+	elsif($Srcpath =~ m/release/i)
+		{
+		&PrintLines("<h2>Unchanged Components</h2>", join(", ", sort @FinalUnchangedList));
+		}
+	else
+		{
+		&PrintLines("<h2>Unchanged Components (MCL)</h2>", join(", ", sort @FinalUnchangedList));
+		}
+	}
+
+&PrintLines("</BODY></HTML>");
+close OUTFILE;
+
+#-------------------------------------------SUB-ROUTINES----------------------------------------------#
+
+# CheckInputs
+#
+# Outputs the required platform and an error message if CL numbers are input incorrectly by the user
+#
+#
+sub CheckInputs
+	{
+	#Assign appropriate platform
+	if($Product eq "8.1a"||$Product eq "8.0")
+		{
+		$Platform = "beech";
+		}
+
+	elsif($Product eq "8.1b"||$Product eq "9.0"||$Product eq "9.1"||$Product eq "9.2")
+		{
+		$Platform = "cedar";
+		}
+
+	else
+		{
+		print "Product not recognised or not entered as first command line argument!!\n";
+		exit 1;
+		}
+
+	#Protect against CL numbers being input incorrectly
+	if($PrevCL >= $CurrentCL)
+		{
+		print "Changelist numbers must be entered in the order <Previous> <Current>\n";
+		exit 1;
+		}
+        
+        #Remove any trailing / from $Srcpath
+        $Srcpath =~ s|/$||;
+	}
+
+# CreateMRPLists
+#
+# Outputs two lists of components and their MRP file locations at the previous and current CL's
+#
+
+sub CreateMRPLists
+	{
+	my $Prod;       #Temporary variable for product.  Needed because of 8.0a directory in Perforce
+	
+	#Change directory name to 8.0a if product is 8.0
+	if($Product eq "8.0")
+		{
+		$Prod = "8.0a";
+		}
+	else
+		{
+		$Prod = $Product;
+		}
+		
+	#Obtain GT and TV MRP File locations from Options.txt
+	my $command = "p4 print -q $CodeLine{$Product}/$Platform/product/tools/makecbr/files/$Prod/options.txt 2>&1";
+	my $OptionsFile = `$command`;
+	die "ERROR: Could not execute: $command\n" if $?;
+	
+	my @OptionsFile = split /\n/m, $OptionsFile;
+	foreach my $line(@OptionsFile)
+		{
+		if($line =~ /^Techview component list:(.*)/i)
+			{
+				$TVfilename = $1;
+				$TVfilename =~ s|\\|\/|g;
+				$TVfilename =~ s|/src/.*?/|$CodeLine{$Product}/$Platform/|;
+			}
+		elsif($line =~ /^GT component list:(.*)/i)
+			{
+				$GTfilename = $1;
+				$GTfilename =~ s|\\|\/|g;
+				$GTfilename =~ s|/src/.*?/|$CodeLine{$Product}/$Platform/|;
+			}
+		}
+
+	#Create List of Previous MRPs
+	my $PrevGT = "p4 print -q $GTfilename...\@$PrevCL 2>&1";
+	$GTcomponents = `$PrevGT`;
+	die "ERROR: Could not execute: $PrevGT\n" if $?;
+	
+	my $PrevTV = "p4 print -q $TVfilename...\@$PrevCL 2>&1";
+	$TVcomponents = `$PrevTV`;
+	die "ERROR: Could not execute: $PrevTV\n" if $?;
+	
+	$GTcomponents = $GTcomponents.$Marker;
+	$PreviousMrps = $GTcomponents.$TVcomponents;
+
+	#Create List of Current MRPs
+	my $CurrGT = "p4 print -q $GTfilename...\@$CurrentCL 2>&1";
+	$GTcomponents = `$CurrGT`;
+	die "ERROR: Could not execute: $CurrGT\n" if $?;
+	
+	my $CurrTV = "p4 print -q $TVfilename...\@$CurrentCL 2>&1";
+	$TVcomponents = `$CurrTV`;
+	die "ERROR: Could not execute: $CurrTV\n" if $?;
+	
+	$GTcomponents = $GTcomponents.$Marker;
+	$CurrentMrps = $GTcomponents.$TVcomponents;
+	}
+
+# ProcessLists
+#
+# Inputs - Two lists of Components and their MRP file locations at the previous and current CL's
+#
+# Outputs a merged list containing all Components in uppercase and their sourcelines in lowercase
+#
+# Description
+# This function creates a list of all components and their MRP files. The MRP files are then used
+# to obtain the source for each component. This information is then input to an array in the form
+# [COMPONENT1] [source] [COMPONENT2] [source] [source] [COMPONENT3] [source] ..........
+#
+
+sub ProcessLists
+	{
+	if(@_ != 2)
+	{
+		print "Could not process MRP lists as both lists were not provided.\n";
+		exit 1;
+	}
+	
+	my $PreviousMrps = shift;
+	my $CurrentMrps = shift;
+	my @MrpContents;
+	
+	#Do some slight modifications to source path for both lists
+	$PreviousMrps =~ s|\\|\/|g;
+	$PreviousMrps =~ s|/src/|$CodeLine{$Product}/|ig;
+	$PreviousMrps =~ s|/product/|$CodeLine{$Product}/$Platform/product/|ig;
+	
+	$CurrentMrps =~ s|\\|\/|g;
+	$CurrentMrps =~ s|/src/|$CodeLine{$Product}/|ig;
+	$CurrentMrps =~ s|/product/|$CodeLine{$Product}/$Platform/product/|ig;
+	
+	@PrevMrpComponents = split /\n/m, $PreviousMrps;
+	@CurrMrpComponents = split /\n/m, $CurrentMrps;
+	
+	foreach my $PrevComp(@PrevMrpComponents)
+		{
+		my $match = 0;
+		
+		#Compare component lists to ensure they contain the same components.
+		foreach my $CurrComp(@CurrMrpComponents)
+			{
+			if($PrevComp eq $CurrComp)
+				{
+				$match = 1;
+				}
+			}
+		
+		#If a component is found in the Previous list which isn't in the Current list, then insert it into the Current list
+		if($match == 0)
+			{
+			push @CurrMrpComponents, $PrevComp;
+			}
+		}
+
+	#Use the MRP locations of each component to obtain the source for each component
+	foreach my $ComponentLine(@CurrMrpComponents)
+		{
+		if($ComponentLine =~ /.*\s+(.*)/)
+			{
+			my $MrpFile = $1;
+		
+			my $Temp = `p4 print -q $MrpFile 2>&1`;
+			
+			#If a component has been removed between the PrevCL and CurrentCL then its MRP file will
+			#only exist at the PrevCL
+			unless($Temp =~ /source/i)
+				{
+				$Temp = `p4 print -q $MrpFile\@$PrevCL 2>&1`;
+				}
+				
+			@MrpContents = split /\n+/m, $Temp;
+			}
+		elsif($ComponentLine =~ /\*\*TECHVIEWCOMPONENTS\*\*/)
+			{
+			push @MrpContents, $ComponentLine;
+			}
+		
+		#Construct an array containing components in uppercase followed by all their sourcelines in lowercase
+		foreach my $line(@MrpContents)
+			{
+			if($line =~ /^component\s+(.*)/i)
+				{
+				my $ComponentName = uc($1);
+				push @ComponentAndSource, $ComponentName;
+				}
+			
+			if($line =~ /^source\s+(.*)/i)
+				{
+				my $Source = lc($1);
+				$Source =~ s/\\/\//g;
+				$Source =~ s|/src/||;
+				$Source =~ s|/product/|$Platform/product|ig;
+				push @ComponentAndSource, $Source;
+				}
+				
+			if($line =~ /TECHVIEWCOMPONENTS/)
+				{
+				push @ComponentAndSource, $line;
+				}
+			}
+		}
+	}
+
+# PrintLines
+#
+# Input - An array containing text information
+#
+# Outputs each element of the input array seperated by a newline to the OUTFILE
+#
+
+sub PrintLines 
+	{ 
+	print OUTFILE join("\n",@_),"\n"; 
+	}
+
+# Usage
+#
+# Outputs instructions on how to run this script
+#
+
+sub Usage
+	{
+	 print <<USAGE_EOF;
+
+Usage
+-----
+perl ReleaseNotes.pl <product> <codeline> <previous CL Num> <current CL Num>
+
+Generates an HTML document containing release notes for the specified product.
+
+<product> The product for which the release notes are to be generated
+eg
+  8.0, 8.1a, 8.1b, 9.0, 9.1
+
+
+<codeline> The codeline on which the perl tool is to be run
+eg
+  For MCL - //EPOC/master
+  For 8.0 - //EPOC/release/8.0
+  For Delivery (MCL) - //EPOC/deliver/master/2004/<snapshot_number>
+  For Delivery (8.0) - //EPOC/deliver/product/8.0/2004/<snapshot_number>/src
+
+<previous CL Num> The changelist number of the previous external build
+
+<current CL Num> The changelist number of the current external build candidate
+
+
+Example for MCL codeline
+------------------------
+
+perl ReleaseNotes.pl 9.0 //EPOC/Master 438931 442567
+
+This generates release notes in a file named
+Symbian_OS_v9.0 MCL Release Notes.html
+
+USAGE_EOF
+  	exit 1;
+	}
+
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/RemoveMASfromCBR.cmd	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,26 @@
+@ECHO OFF
+@REM This batch file removes MAS (ActiveSync) from the CBR archive(s) indicated by RelTools.ini
+
+@REM SETLOCAL ensures that when we exit this batchfile, Current Directory and EPOCROOT will be restored to "as found" state.
+SETLOCAL
+
+@REM %BuildDir%\bin\%Platform% is the same as %OutputDir%. But we must not have a drive letter at the start of EPOCROOT.
+
+CD /d %BuildDir%\bin\%Platform%\generic
+@ECHO CD = %BuildDir%\bin\%Platform%\generic
+
+SET EPOCROOT=\bin\%Platform%\generic\
+@ECHO Calling RemoveRel -v mas
+Call RemoveRel -v mas
+@ECHO Calling RemoveRel -v techview_mas
+Call RemoveRel -v techview_mas
+
+CD /d %BuildDir%\bin\%Platform%\techview
+@ECHO CD = %BuildDir%\bin\%Platform%\techview
+
+SET EPOCROOT=\bin\%Platform%\techview\
+@ECHO Calling RemoveRel -v mas
+Call RemoveRel -v mas
+@ECHO Calling RemoveRel -v techview_mas
+Call RemoveRel -v techview_mas
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/RmInstalledEnv.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,81 @@
+#!/usr/bin/perl
+
+=head1 NAME
+
+RmInstalledEnv.pl
+
+=head1 SYNOPSIS
+
+RmInstalledEnv.pl
+
+=head1 DESCRIPTION
+
+This script is designed to use RemoveRel command from the CBR tools to remove the installed environment.
+
+=head1 COPYRIGHT
+
+Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+All rights reserved.
+
+=cut
+
+use strict;
+use Getopt::Long;
+
+
+my ($iIncludeFile) = ProcessCommandLine();
+
+open(INPUT, "<$iIncludeFile");
+my (@includecomponentlist) = <INPUT>;
+close(INPUT);
+foreach my $includecomponent ( @includecomponentlist ){
+  chomp($includecomponent);
+  my ($component, $version ) = split(/=>/, $includecomponent);
+  $component =~  s/^\s+//;
+  $component =~  s/\s+$//;
+  print "removerel $component \n";
+  my $getrelresult = `removerel $component `;
+  print $getrelresult ;
+}
+
+# ProcessCommandLine
+#
+# Description
+# This function processes the commandline
+sub ProcessCommandLine {
+  my ($iHelp, $iIncludeFile);
+
+  GetOptions('h' => \$iHelp,  'x=s' => \$iIncludeFile);
+
+  if ($iHelp)
+  {
+    &Usage();
+  } else {
+    return($iIncludeFile);
+  }
+}
+
+# Usage
+#
+# Output Usage Information.
+#
+
+sub Usage {
+  print <<USAGE_EOF;
+
+  Usage: RmInstalledEnv.pl [Args/options]
+
+  Args: (required)
+  -x  <file> with list of components to remove  
+  
+  options:
+  
+  -h                    help
+  
+  
+  Example Commandline
+  RmInstalledEnv.pl -x includes_phase3.txt 
+
+USAGE_EOF
+	exit 1;
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/SFPostProcessResults.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,433 @@
+# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution
+#
+# Contributors
+#
+# Description: Post processes result  CSV file generated by the SFCheckSource.pl
+# Version: 0.5 $optNoIgnore added
+# Version: 0.52 filenameOf added and applied to normalized file names
+#
+
+use strict;
+use Getopt::Long;
+use File::Basename;
+use IO::Handle;
+use FileHandle;
+
+# Constants
+use constant HEADER_LINE => 'Issue,Category,Comment,Distr. ID,Url,Line,Package,PO,Stamp=$build';
+use constant LINE_WITH_LXR => '$issue,$category,$comment,"$distrid",=HYPERLINK("http://s60lxr/source/$filename?v=$lxrbuild#$linenum"),$linenum,$package,$PO';
+use constant LINE_WITH_SOURCEPATH => '$issue,$category,$comment,"$distrid",=HYPERLINK("$sourcepath$filename"),$linenum,$package,$PO';
+use constant LINE_WITHOUT_LXR => '$issue,$category,$comment,"$distrid",$filename,$linenum,$package,$PO';
+use constant NON_NOKIA_FILE => 'Non-Nokia-file';
+use constant SOURCE_ISSUE => 'source-issue';
+my $IGNORE = 'Ignore';
+my $IGNORE_MAN ='Ignore-manually';
+my $IGNORE_PATTERN ='Ignore-by-filename';  # Default comments
+
+# Global variables
+# Tool version
+use constant VERSION => "0.52";
+my $optNoIgnored = 0;
+my $optBuild = "Undefined";
+my $optPackageOwnerFile;
+my $optManuallyCheckedFile;
+my $optConfigFile;
+my $optIgnorefilepattern;  # File patterns to ignore
+my $optIgnorefilepatternComment = "";  # Comment value for file patterns to ignore
+my %packageOwnerHash;
+my %manuallyCheckedHash; # Hash of manually ignored cases
+my @sfDistributionIdArray = ();  # Distr ID array
+
+##################################################
+# Postprocess subroutine
+##################################################
+
+sub doIt($) 
+{
+    my $sourcefile = shift;
+    my $lxrbuild = shift;
+    my $outputfile = shift;
+    my $sourcepath = shift;
+
+    open(IN,$sourcefile) || die "Unable to open file: $sourcefile\"\" for reading.";
+    my $headerline = HEADER_LINE();
+    $headerline =~ s/\$build/$optBuild/;
+    if ($outputfile)
+    {
+        print OUTPUT "$headerline\n";
+    }
+    else
+    {
+        print "$headerline\n";
+    }
+
+    # Collect all files marked as ignored here
+    my %ignoreFilesHash;
+
+LINE:
+    while(<IN>)
+    {
+        chomp;
+        my $line = $_;
+        my @items = parse_csv($line);
+        my $issue    = $items[0]; 
+        my $category = $items[1];
+        my $comment  = $items[2];
+        my $distrid     = $items[3];
+        my $filename = $items[4];
+        $filename =~ s/\\/\//g;  # Standardize name 
+        $filename =~ s/[a-zA-Z]\:(\/)?//i;  # Remove possible "drive:/" strings
+        my $linenum  = $items[5];
+        # Sometimes the tool produces bad data, ignore them
+        next LINE if (!($issue =~ m/issue/));  # Not issue
+        next LINE if ($optNoIgnored && ($comment =~ m/$IGNORE/i));  # Ignore 
+        next LINE if !$category;
+        next LINE if  ($optConfigFile && !isSFDistribution($distrid));
+        my $ignoreThis = $manuallyCheckedHash{$category . filenameOf($filename)};
+        if (defined $ignoreThis) 
+        {
+            next if $optNoIgnored;
+            $comment = $IGNORE_MAN;
+        }
+        elsif ($optIgnorefilepattern && filenameOf($filename) =~ m/$optIgnorefilepattern/i)
+        {
+            # Ignore by given pattern in file name
+            $comment = $optIgnorefilepatternComment;
+        }
+
+        # Extract file parts
+        # my ($fname, $filepath, $filext)=fileparse($filename, qr/\.[^.]*/);
+
+        my $linePattern = LINE_WITH_LXR();
+        if ($lxrbuild eq "")
+        {
+            $linePattern = LINE_WITHOUT_LXR();
+        }
+        if ($sourcepath ne "")
+        {
+            $linePattern = LINE_WITH_SOURCEPATH();
+        }
+
+        # Create result line using the pattern
+        $linePattern =~ s/\$issue/$issue/;
+        $linePattern =~ s/\$category/$category/;
+        $linePattern =~ s/\$comment/$comment/;
+        $linePattern =~ s/\$distrid/$distrid/;
+        $linePattern =~ s/\$sourcepath/$sourcepath/;
+        $linePattern =~ s/\$filename/$filename/;
+        my $p = packageOf($filename);
+        my $po = packageOwnerOf($filename);
+        $linePattern =~ s/\$package/$p/;
+        $linePattern =~ s/\$PO/$po/;
+        if ($lxrbuild ne "")
+        {
+            $linenum = sprintf("%03d", $linenum); # LXR requires 3 digits
+            $linePattern =~ s/\$lxrbuild/$lxrbuild/;
+        }
+        $linePattern =~ s/\$linenum/$linenum/;
+
+        if ($outputfile)
+        {
+            print OUTPUT "$linePattern\n";
+        }
+        else
+        {
+            print ("$linePattern\n");
+        }
+    }
+
+    close (IN);
+
+}
+
+
+##################################################
+# Show usage help
+##################################################
+sub usage
+{
+    print "SFPostProcessResults.pl by matti.parnanen\@nokia.com, version " . VERSION() .  "\n";
+    print "Generates hyperlinks to filenames using LXR or plain filename links\n";
+    print "Usage:\n";
+    print "   perl SFPostProcessResults.pl -input csv-file-from-sfchecksource -lxrbuild LXR-buildname [-outputfile different-csv-file-name]\n";
+    print "   perl SFPostProcessResults.pl -input csv-file-from-sfchecksource -sourcepath source-path [-outputfile different-csv-file-name]\n";
+}
+
+
+##################################################
+# Parse command line and extract options
+##################################################
+sub parseCmdLine
+{
+
+    
+    my $opt1;
+    my $opt2;
+    my $opt3;
+    my $opt4;
+
+    if( ! GetOptions(
+			 'inputfile=s' => \$opt1,
+			 'lxrbuild:s' => \$opt2,
+			 'output:s' => \$opt3,
+			 'pofile:s' => \$optPackageOwnerFile,
+			 'configfile:s' => \$optConfigFile,
+			 'oldoutput:s' => \$optManuallyCheckedFile,
+			 'sourcepath:s' => \$opt4,
+		     'help'     => \&usage,
+             'noignored' => \$optNoIgnored,  # Do not included items marked as Ignore
+			 'build:s' => \$optBuild,
+             'ignorefile:s' => \$optIgnorefilepattern,   #Ignore file pattern
+             'ignorecomment:s' => \$optIgnorefilepatternComment,   #Comment used for these
+		     '<>'       => \&usage))
+		{
+		&usage;
+		exit(1);
+		}
+
+    if (lc($opt1) eq lc($opt3))
+    { 
+        &usage;
+        exit(1);
+    }
+
+   return ($opt1, $opt2, $opt3,$opt4);
+
+}
+
+#
+# Taken from  Mastering Regular Expressions
+#
+sub parse_csv {
+  my $text = shift; ## record containing comma-separated values
+  my @new = ();
+  push(@new, $+) while $text =~ m{
+    "([^\"\\]*(?:\\.[^\"\\]*)*)",?
+      | ([^,]+),?
+      | ,
+    }gx;
+    push(@new, undef) if substr($text, -1,1) eq ',';
+    return @new; ## list of values that were comma-spearated
+}
+
+
+##################################################
+# Read the content of old output
+##################################################
+sub readPackageOwnerFile
+{
+    my($filename) = $optPackageOwnerFile;
+    if (!$filename)
+    {
+        return;
+    }
+
+    my $fh = new FileHandle "<$filename";
+    if (!defined($fh))
+    {
+        return;
+    }
+
+    my  @lines = <$fh>;
+    my $line;
+    foreach $line (@lines)
+    {
+       # Example line
+       #ui,mw,classicui,ari.t.valtaoja@nokia.com,Nokia/S60/A&F/UFO,Beijing,1279685+166558
+
+       $line = lc($line);
+       my (@parts) = split(/\,/,$line);  # Split line with "," separator
+       # print ("DEBUG:readPackageOwnerFile::$parts[1]/$parts[2]=$parts[3]\n");
+       $packageOwnerHash{$parts[1] . "/" . $parts[2]} = $parts[3] ;
+    }
+
+    close ($fh);
+}
+
+##################################################
+# Get normalized filename starting from "sf/layer/package"
+##################################################
+sub filenameOf
+{
+    my($filename) = shift;
+    $filename =~ s/\\/\//g;  # Standardize name 
+    $filename = lc($filename);
+
+    # There might be some paths before /sf/layer/package if tool run manually in some local directory
+    # structure
+    my ($tmp1,$tmp2) = split(/sf\//,$filename);
+    # print ("DEBUG:sf/" . $tmp2 . "\n");
+    return "sf/" . $tmp2;
+}
+
+
+##################################################
+# Get package owner
+##################################################
+sub packageOwnerOf
+{
+    my($filename) = shift;
+    $filename = filenameOf($filename);
+
+    my (@parts) = split(/\//,$filename);  # "sf/layer/package"
+    my $owner = $packageOwnerHash{$parts[1] . "/" . $parts[2]};
+    if (defined $owner)
+    {
+        return $owner;
+    }
+    return "";
+}
+
+##################################################
+# Get package name
+##################################################
+sub packageOf
+{
+    my($filename) = shift;
+    $filename = filenameOf($filename);
+    my (@parts) = split(/\//,$filename);  # "sf/layer/package"
+
+    return $parts[2];
+}
+
+
+##################################################
+# Read the content of cleaned cases manually ignored
+# (these are tool reported case cleared manually=
+##################################################
+sub readManuallyCheckedFile
+{
+    my($filename) = $optManuallyCheckedFile;
+    if (!$filename)
+    {
+        return;
+    }
+
+    my $fh = new FileHandle "<$filename";
+    if (!defined($fh))
+    {
+        return;
+    }
+
+    my  @lines = <$fh>;
+    my $line;
+    foreach $line (@lines)
+    {
+       my (@parts) = split(/\,/,$line);  # Split line with "," separator
+       if ($parts[2] =~ m/$IGNORE_MAN/i)
+       {
+            my $fullfilename = lc($parts[4]);
+            my $category = $parts[1];
+            $fullfilename =~ s/\\/\//g;  # Standardize name 
+            # print("\nDEBUG:Marked:$category,$fullfilename as ignored");
+            $manuallyCheckedHash{$category . $fullfilename} = "1" ;  # Just some value
+       }
+    }
+
+    close ($fh);
+}
+
+##################################################
+# Test  ID is under SF distribution
+##################################################
+sub isSFDistribution
+{
+    my $id = shift;
+    use constant SFL_DISTRIBUTION_VALUE => "3";  
+    use constant EPL_DISTRIBUTION_VALUE => "7";
+
+    if ($id == "")
+    {
+        return 0;
+    }
+
+    if (($id == SFL_DISTRIBUTION_VALUE) || ($id == EPL_DISTRIBUTION_VALUE))
+    {
+        # Implicit case
+        return 1;
+    }
+
+    my $otherOkId = grep { $_ eq $id } @sfDistributionIdArray;  # Use exact match
+    return $otherOkId;
+}
+
+
+##################################################
+# Read configuation file of the
+# SFUpdateLicenceHeader.pl to get OK distribution IDs
+##################################################
+sub readConfigFile
+{
+    my ($filename) = $optConfigFile;
+    if (!$filename)
+    {
+        return;
+    }
+
+    open(IN,$filename) || die "Unable to open file: \"$filename\" for reading.";
+    LINE:
+    while(<IN>) 
+    {
+        chomp;
+        # tr/A-Z/a-z/;  # Do not lowercase pattern
+        my $line = $_;
+        $line =~ s/^\s+//;  # trim left
+        $line =~ s/\s+$//;  # trim right
+        
+        next LINE if length($line) == 0; # # Skip empty lines
+        next LINE if ($line =~ /^\#.*/); # Skip comments;
+
+        if ($line =~ /^sf-update-licence-header-config.*/i) 
+        {
+            my ($tmp1, $tmp2) = split(/sf-update-licence-header-config-/,$line);  # Get version
+        }
+        elsif ($line =~ /^sf-distribution-id/i) 
+        {
+            my ($tmp, @parts) = split(/[\s\t]+/,$line); # space as separator
+            my $cnt = @parts;
+            push(@sfDistributionIdArray, @parts);
+            my $cnt = @sfDistributionIdArray;
+        }
+    }
+
+    # Pre-compile here the source line pattern
+    close (IN);
+}
+
+
+##################################################
+#            MAIN
+##################################################
+
+#
+# Command line variables
+#
+my $inputfile = "";
+my $outputfile = "";
+my $lxrbuild  = "";
+my $sourcepath  = "";
+
+# Initialize
+($inputfile,$lxrbuild,$outputfile,$sourcepath) = &parseCmdLine;
+
+&readPackageOwnerFile();
+&readManuallyCheckedFile();
+&readConfigFile();
+
+if ($outputfile)
+{
+    open (OUTPUT, ">$outputfile") || die "Couldn't open $outputfile\n";
+    OUTPUT->autoflush(1);  # Force flush
+}
+
+&doIt($inputfile,$lxrbuild,$outputfile,$sourcepath);
+
+close OUTPUT;
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/SFUpdateLicenceHeader.cfg	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,91 @@
+# @file
+# Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). All rights reserved.
+# This material, including documentation and any related 
+# computer programs, is protected by copyright controlled by 
+# Nokia. All rights are reserved. Copying, including 
+# reproducing, storing, adapting or translating, any 
+# or all of this material requires the prior written consent of 
+# Nokia. This material also contains confidential 
+# information which may not be disclosed to others without the 
+# prior written consent of Nokia.
+#
+# Contributors:
+#     matti.parnanen@nokia.com
+# 
+# Description: Configuration file for the SFUpdateLicenceHeader.pl tool
+#
+# File version
+sf-update-licence-header-config-1.1
+
+# Patterns for generated headers which can be ignored
+# Syntax:
+# sf-generated-header PATTERN1
+# sf-generated-header PATTERN2
+# 
+sf-generated-header created\s*by\s*TraceCompiler
+sf-generated-header automatically\s*generated
+sf-generated-header should\s*not\s*be\s*modified\s*manually
+sf-generated-header generated\s*by
+sf-generated-header created\s*with\s*XML2H
+sf-generated-header All\s*changes\s*made\s*in\s*this\s*file\s*will\s*be\s*lost
+sf-generated-header generated\s*automatically
+
+#
+# Additional IDs delivered to SF # (3 or 7 automatically included)
+# This will eliminate ID "mismatch" and "missing value" issues reported by the script.
+# The file can be SFL or EPL licensed (i.e. no separation done)
+#
+# Syntax:
+# sf-distribution-id ID1 ID2 ID3
+# sf-distribution-id ID4
+# sf-distribution-id ID5 ID6
+
+# Isolationserver. This component takes care of isolating s60 code from open source code
+sf-distribution-id 301
+
+# d-bus. Open source IPC library
+sf-distribution-id 1300
+
+# Loudmouth Open Source Library. 
+# This is a library that is used for last-step connections for xmpp protocol. 
+# It also performs certain xmpp protocol tasks.
+sf-distribution-id 1301
+
+# Telepathygabble. Open Source Library
+# This is an XMPP protocol connection manager. This uses loudmouth. 
+sf-distribution-id 1302
+
+# Libtelepathy. Open Source Library.
+# this is a framework for XMPP protocol. 
+sf-distribution-id 1303
+
+# Gstreamer. 3rd party component, open source code.
+# sf-distribution-id 1304
+
+# Libxml2. OSS, open C xml parser
+sf-distribution-id 1305
+
+# Xmlsec. OSS, has open C encryption and decryption, signing and unsigning for different types of dat
+sf-distribution-id 1306
+
+# Xmlcrypto. OSS, has open C algorithms of wide-varieties for the above methods.
+sf-distribution-id 1307
+
+#iType rasterizer code (delivered to the Foundation under separate R&D licenses in BINARY format)
+sf-distribution-id 1309
+
+# S60 font files (delivered to the Foundation under separate R&D licenses in BINARY format)
+sf-distribution-id 1312
+
+# FreeType. The default font rasterizer
+sf-distribution-id 1313
+
+# Libmikey. Library for MIKEY (Multimedia Internet KEYing) message creation and parsing (Ref. IETF RFC-3830)
+sf-distribution-id 1315
+
+# Ustl. Symbian port of C++ STL(Standard Template Library)
+sf-distribution-id 1316
+
+# ODE. ODE is an open source, high performance library for simulating rigid body dynamics.
+sf-distribution-id 1401
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/SFUpdateLicenceHeader.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,2634 @@
+# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution
+#
+# Contributors
+#
+# Description: Replace S60 header with Symbian Foundation license header.
+#              Output file (results) is compatibe for SFMakeLxrLinks.pl as input.
+#
+use strict;
+use File::Find;
+use File::Basename;
+use Getopt::Long;
+use IO::Handle;
+use FindBin qw($Bin);
+use FileHandle;
+
+####################
+# Constants
+####################
+
+# Tool version
+use constant VERSION => '2.1';
+# Version history: 0.8 Added copyright year pick-up
+# Version history: 0.9- Bug fixesg
+# Version history: 0.95- EPL header support added
+# Version history: 0.96 Minor script adjustments
+# Version history: 0.97 Assembly files (.s, .cia, .asm) checked as well
+# Version history: 0.98 Support for -oem added. Also @file tag removed from template
+# Version history: 0.99 Testing -oem option
+# Version history: 1.0 Comment column added for PostProcess script
+# Version history: 1.01 Modify option bug fixed
+# Version history: 1.1 Description bug fixed
+# Version history: 1.2 Digia copyrights moved to SF as well. Also R/O attribute removed only for files modified
+# Version history: 1.3 Distribution policy files handled as well. With -create also created
+# Version history: 1.31 Fixes to distribution file handling (only non-empty directories acknowledged)
+# Version history: 1.32 .pm files checked as well
+# Version history: 1.4 Bug fixes and "ignorefile" agrument added
+# Version history: 1.41 Bug fix in Description pick-up
+# Version history: 1.42 Bug fix in -ignore option (also missing .s60 file creation need to be ignored). Default value set to ignore option
+# Version history: 1.43 Description statistics fixed, .hpp added, description pick-up improved
+# Version history: 1.5 -verify option implemented, ignorefile default value extended, statistics go to log
+# Version history: 1.51 Copyright year pick-up bug fixed, ignorefilepattern comparison case-insensitive
+# Version history: 1.52 current s60 dumped to result
+# Version history: 1.53 abld.bat added ti ignorefile default
+# Version history: 1.54 -verify statistics improved
+# Version history: 1.55 -eula option added
+# Version history: 1.56 .mmh files added, extra Non-Nokia check added for "No Copyright" case for weired headers
+# Version history: 1.57 Changes to -verify
+# Version history: 1.58 @echo on ... @echo off added to .cmd and .bat headers
+# Version history: 1.59 EPL warning log entry --> info
+# Version history: 1.60 and 1.61 -ignorelist option added
+# Version history: 1.62 Uppercase REM text allowed
+# Version history: 1.63 Internal directory check added to -verify
+# Version history: 1.64 Symbian --> Symbian.*Ltd in $ExternalToNokiaCopyrPattern
+# Version history: 1.65 Bug fixed in normalizeCppComment
+# Version history: 1.70 Changes to better cope with ex-Symbian sources,
+#                       Pasi's better "@rem" taken into use for .bat and .cmd files
+# Version history: 1.71 Config file support added (option -config) for non 3/7 IDs
+# Version history: 1.72 handleVerify checks improved to include also file start
+# Version history: 1.73 \b added to Copyright word to reduce if "wrong" alarms
+# Version history: 1.74 incomplete copyright check added to -verify
+# Version history: 1.75 Support for ignoring generated headers (@sfGeneratedPatternArray) added
+# Version history: 1.76 .script extension added (using Cpp comments e.g. // Text)
+# Version history: 1.77 Reporting and logging improvements for wk19 checks (need to check / patch single files)
+# Version history: 1.80 Few Qt specific file extensions added, -lgpl option added, 
+#                       C++ comment fix in handleOem
+# Version history: 1.90 checkNoMultipleLicenses function added, and call to handleVerify* added
+# Version history: 2.0 handleDistributionValue() changes IDs 0-->3/7 and 3-->7, 
+#                      isGeneratedHeader() checks for file content added.
+# Version history: 2.01 checkPortionsCopyright implemented and applied
+# Version history: 2.02 Extra license word taken out from EPL header
+# Version history: 2.1 -verify -epl support added and switchLicense() tried first for SFL --> EPL switching
+
+my $IGNORE_MAN ='Ignore-manually';
+my $IGNORE ='Ignore';
+my $INTERNAL = 'internal';
+use constant KEEP_SYMBIAN => 0;
+use constant REMOVE_SYMBIAN => 1;
+
+
+#file extention list that headers should be replace
+my @extlist = ('.cpp', '.c', '.h', '.mmp', '.mmpi', '.rss', '.hrh', '.inl', '.inf', '.iby', '.oby',
+            '.loc', '.rh', '.ra', '.java', '.mk', '.bat', '.cmd', '.pkg', '.rls', '.rssi', '.pan', '.py', '.pl', '.s', '.asm', '.cia',
+            '.s60', '.pm', '.hpp', '.mmh', '.script', 
+            '.pro', '.pri');  # Qt specific
+
+# Various header comment styles
+my @header_regexps = 
+(
+'^\s*(\#.*?\n)*',           # Perl, Python
+'^\s*(\@echo\s*off\s*\n)?\n*(@?(?i)rem.*?\n)*(\@echo\s*on\s*)?', # Windows command script
+'^\s*(\;.*?\n)*',           # SIS package file
+'\s*\/\*[\n\s\*-=].*?\*\/',  # C comment block
+'(\s*\/\/.*\n)+',           # C++ comment block  (do not use /s in regexp evaluation !!!)
+'^\s*((\/\/|\#).*?\n)*'       # Script file comment
+);
+
+# Comment regular expression (Indeces within @header_regexps)
+use constant COMMENT_PERL => 0;
+use constant COMMENT_CMD => 1;
+use constant COMMENT_SIS_ASM => 2;
+use constant COMMENT_C => 3;
+use constant COMMENT_CPP => 4;
+use constant COMMENT_SCRIPT => 5;
+
+my $descrTemplateOnly = '\?Description';
+my $linenumtext = "1";  # Use this linenumer in LXR links
+
+# Copyright patterns
+my $copyrYearPattern = 'Copyright\b.*\d{4}\s*([,-]\s*\d{4})*';
+my $copyrYearPattern2 = '\d{4}(\s*[,-]\s*\d{4})*';
+use constant DEFCOPYRIGHTYEAR => "2009";  # For error cases
+
+my $NokiaCopyrPattern = '\bCopyright\b.*Nokia.*(All Rights)?';
+my $NonNokiaCopyrPattern = '\bCopyright\b.*(?!Nokia).*(All Rights)?';
+my $CopyrPattern = '\bCopyright\b';
+my $RemoveS60TextBlockPattern = 'This material.*Nokia';
+my $CC = 'CCHAR';
+my $BeginLicenseBlockPattern = 'BEGIN LICENSE BLOCK';
+my $OldNokiaPattern = 'Nokia\s*Corporation[\.\s]*\n';
+my $NewNokiaText =  "Nokia Corporation and/or its subsidiary(-ies).\n";  # Used in substitu to text
+my $NewNokiaPattern = "Nokia Corporation and/or its subsidiary";
+my $OldNokiaPattern2 =  "This material.*including documentation and any related.*protected by copyright controlled.*Nokia";
+my $PortionsNokiaCopyrPattern = 'Portions.*Copyright\b.*Nokia.*(All Rights)?';
+my $NewPortionsNokiaCopyrPattern = 'Portions\s*Copyright\b.*' . $NewNokiaPattern;
+
+# Move these copyrights to Nokia !!!
+my $ExternalToNokiaCopyrPattern = 'Copyright\b.*(Symbian\sLtd|Symbian\s*Software\s*Ltd|Digia|SysopenDigia).*(All\s+Rights|All\s+rights)?';
+my $PortionsSymbianCopyrPattern = 'Portions\s*Copyright\b.*(Symbian\sLtd|Symbian\s*Software\s*Ltd).*(All\s+Rights|All\s+rights)?';
+
+###############
+# SFL headers
+###############
+# SFL C/C++ style
+#
+my $SFLicenseHeader = 
+'/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Symbi'.'an Foundation License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.symbi'.'anfoundation.org/legal/sf'.'l-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/'. "\n";
+
+# Test string to test header have been changed
+my $SFLHeaderTest = 'Symbian\s*Foundation\s*License.*www\.symbianfoundation\.org\/legal\/sfl';
+
+# Partial SFL  header template (# will be replaced by actual comment syntax char)
+# Prepare for cases where someone adds spaces to string. 
+my $SFLicenseHeaderPartial_template = 
+$CC . '\s*This\s*component\s*and\s*the\s*accompanying\s*materials\s*are\s*made\s*available\s*\n' .
+$CC . '\s*under\s*the\s*terms\s*of\s*the\s*License\s*\"Symbian\s*Foundation\s*License\s*v1\.0\"\s*\n' .
+$CC . '\s*which\s*accompanies\s*this\s*distribution\,\s*and\s*is\s*available\s*\n' .
+$CC . '\s*at\s*the\s*URL\s*\"http\:\/\/www\.symbianfoundation\.org\/legal\/sfl\-v10\.html\"\s*\.';
+ 
+# SFL other comment styles (replace # with actual comment starter)
+#
+my $SFLicenseHeader_other_template = 
+'#
+# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Symbi'.'an Foundation License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.symbi','anfoundation.org/legal/sf'.'l-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+';
+
+
+
+###############
+# EPL headers
+###############
+# C/C++ style
+my $EPLLicenseHeader = 
+'/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/' . "\n";
+
+# Test string to test header have been changed
+my $EPLHeaderTest = 'Eclipse\s*Public\s*License.*www\.eclipse\.org\/legal\/epl';
+
+# Partial EPL header  (replace # with actual comment starter)
+# Prepare for cases where someone adds spaces to string. 
+my $EPLLicenseHeaderPartial_template = 
+$CC . '\s*This\s*component\s*and\s*the\s*accompanying\s*materials\s*are\s*made\s*available\s*\n' .
+$CC . '\s*under\s*the\s*terms\s*of\s*\"Eclipse\s*Public\s*License\s*v1\.0\"\s*\n' .
+$CC . '\s*which\s*accompanies\s*this\s*distribution,\s*and\s*is\s*available\s*\n' .
+$CC . '\s*at\s*the\s*URL\s*\"http\:\/\/www\.eclipse\.org\/legal\/epl\-v10\.html\"\s*\.';
+
+
+# EPL other comment styles (replace # with comment starter)
+#
+my $EPLLicenseHeader_other_template = 
+'#
+# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description: 
+#
+';
+
+##############
+# LGPL headers
+##############
+my $LGPLLicenseHeader = 
+'/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+*
+* This program is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License as published by
+* the Free Software Foundation, version 2.1 of the License.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public License
+* along with this program.  If not, 
+* see "http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html/".
+*
+* Description:
+*
+*/';
+
+# Test string to test header have been changed
+my $LGPLHeaderTest = 'GNU\s*Lesser\s*General\s*Public\s*License.*www\.gnu\.org\/licenses/old-licenses\/lgpl-2\.1\.html';
+
+# Partial LGPL header  (replace $CC with actual comment starter)
+my $LGPLLicenseHeaderPartial_template = 
+$CC . '\s*This\s*program\s*is\s*free\s*software\:\s*you\s*can\s*redistribute\s*it\s*and\/or\s*modify\n' .
+$CC . '\s*it\s*under\s*the\s*terms\s*of\s*the\s*GNU\s*Lesser\s*General\s*Public\s*License\s*as\s*published\s*by\n' .
+$CC . '\s*the\s*Free\s*Software\s*Foundation\,\s*version\s*2\.1\s*of\s*the\s*License\n';
+
+
+# LGPL other comment styles (replace # with comment starter)
+#
+my $LGPLLicenseHeader_other_template = 
+'#
+# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
+# All rights reserved.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation, version 2.1 of the License.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with this program.  If not, 
+# see "http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html/".
+#
+# Description:
+#
+';
+
+
+###############
+# S60 headers
+###############
+# C/C++ style
+my $S60HeaderPartial_template = 
+$CC . " This material, including documentation and any related computer\n" .
+$CC . " programs, is protected by copyright controlled by Nokia. All\n" .
+$CC . " rights are reserved. Copying, including reproducing, storing\n" .
+$CC . " adapting or translating, any or all of this material requires the\n" .
+$CC . " prior written consent of Nokia. This material also contains\n" .
+$CC . " confidential information which may not be disclosed to others\n" .
+$CC . " without the prior written consent of Nokia.";
+
+# Test string to test header have been changed
+my $S60HeaderTest = 'is\s*protected\s*by\s*copyright\s*controlled\s*by\s*Nokia';
+
+
+my @SflHeaders = (\$SFLicenseHeader, \$SFLicenseHeader_other_template, \$SFLicenseHeaderPartial_template, \$SFLHeaderTest);   # contains refs
+my @EplHeaders = (\$EPLLicenseHeader, \$EPLLicenseHeader_other_template, \$EPLLicenseHeaderPartial_template, \$EPLHeaderTest); # contains refs
+my @S60Headers = (undef,undef,\$S60HeaderPartial_template, \$S60HeaderTest); # contains refs
+my @LgplHeaders = (\$LGPLLicenseHeader, \$LGPLLicenseHeader_other_template, \$LGPLLicenseHeaderPartial_template, \$LGPLHeaderTest); # contains refs
+
+# Header styles (indeces within @SflHeaders and @EplHeaders)
+use constant CPP_HEADER => 0; 
+use constant OTHER_HEADER => 1;
+
+# switchLicense related values
+use constant SFL_LICENSE => 3;
+use constant EPL_LICENSE => 7;
+use constant S60_LICENSE => 0;
+use constant LGPL_LICENSE => 4;
+use constant LICENSE_CHANGED => 1;
+use constant LICENSE_NONE => 0;
+use constant LICENSE_ERROR => -1;
+use constant LICENSE_NOT_SUPPORTED => -2;
+
+# Distribution policy file values
+use constant INTERNAL_DISTRIBUTION_VALUE => "1";
+use constant ZERO_DISTRIBUTION_VALUE => "0";
+use constant SFL_DISTRIBUTION_VALUE => "3";  
+use constant EPL_DISTRIBUTION_VALUE => "7"; # option -epl
+use constant TSRC_DISTRIBUTION_VALUE => "950"; #
+use constant NONSF_DISTRIBUTION_VALUE => "Other"; #
+use constant DISTRIBUTION_FILENAME => "distribution.policy.s60";
+
+my $usage = 'SFUpdateLicenHeader.pl tool, version: ' . VERSION .
+'
+Usages:
+   perl SFUpdateLicenceHeader.pl [-modify] [-epl] [-oem] [-create]  [-ignorefile pattern]
+        [-output csv-file] [-log logfile] [-verbose level] [-verify] [-append]
+        [-oldoutput old-csv-file]  DIRECTORY|FILE
+
+   Check switch to SFL header in a directory (and subdirectories under that):
+      perl SFUpdateLicenceHeader.pl -output csv-file -log logfile DIRECTORY
+   Switch to SFL header and modify .policy.s60 files in a directory (and subdirectories under that):
+      perl SFUpdateLicenceHeader.pl -modify -output csv-file -log logfile DIRECTORY
+   Switch to SFL header and modify .policy.s60 files in a single file:
+      perl SFUpdateLicenceHeader.pl -modify -output csv-file -log logfile FILE
+   Switch to EPL header and modify .policy.s60 files:
+      perl SFUpdateLicenceHeader.pl -modify -epl -output csv-file -log logfile DIRECTORY
+   Switch to SFL header and modify/create missing .policy.s60 files:
+      perl SFUpdateLicenceHeader.pl -modify -create -output csv-file -log logfile DIRECTORY
+   Switch to SFL header and ignore files matching CCM file pattern:
+      perl SFUpdateLicenceHeader.pl -modify -ignore "_ccmwaid.inf" -output csv-file -log logfile DIRECTORY
+   Switch to SFL header and ignore files matching  CCM or SVN file patterns:
+      perl SFUpdateLicenceHeader.pl -modify -ignore "(_ccm|.svn)" -output csv-file -log logfile DIRECTORY
+   Switch back to Nokia header (for OEM delivery team):
+      perl SFUpdateLicenceHeader.pl -modify -oem -output csv-file -log logfile DIRECTORY
+   Verify file header changes
+      perl SFUpdateLicenceHeader.pl -verify -output csv-file -log logfile DIRECTORY
+   Verify and append logs and results to single file
+      perl SFUpdateLicenceHeader.pl -verify -append -output AllResults.csv -log AllLogs.log DIRECTORY
+   Verify file header changes and use old result file as add-on configuation (used by -verbose only)
+      perl SFUpdateLicenceHeader.pl -verify -oldoutput old-csv-file -output csv-file -log logfile DIRECTORY
+
+For more info, see http://s60wiki.nokia.com/S60Wiki/SFDG-File-Header#SFUpdateLicenceHeader.pl
+';
+
+# Logging constants
+use constant LOG_ALWAYS => 0;
+use constant LOG_INFO => 3;
+use constant LOG_ERROR => 1;
+use constant LOG_WARNING => 2;
+use constant LOG_DEBUG => 4;
+my @LOGTEXTS = ("", "ERROR: ", "Warning: ", "Info: ", "DEBUG: ");
+my $sep = ",";
+my $logFile = "";
+
+# Issue categories in result CSV formatted file
+use constant HEADER_CONTEXT => 'header-issue';
+use constant DISTRIBUTION_CONTEXT => 'distribution-issue';
+
+
+####################
+# Global variables
+####################
+
+# Command line options
+my $help = 0;
+my $outputfile;  
+my $ignorefilepattern;  # File patterns to ignore
+# my $optSfl = 1;  # By default sfl is on
+my $optEpl = 0;  # Use EPL headers
+my $optLgpl = 0;  # Use LGPL v2.1 headers
+my $optLogLevel = LOG_INFO;
+my $optModify = 0;  # (default mode is check)
+my $optCreate = 0;  # (create missing files)
+my $optOem = 0;  # OEM delivery to S60 license
+my $optAppend = 0;  # Append results
+my $optVerify = 0;  # Verify option
+my $oldOutputFile;  # Version 1.60 old output file in CSV format
+my %manualIgnoreFileHash; # Hash of files ignored
+my $optDescription = 0;  # Output also missing description
+my $optOutputOK = 0;  # Output also OK issues for -verify 
+
+# The last distribution ID
+my $lastDistributionValue = "";
+
+# Config file specific gllobals
+my $configFile;
+my $configVersion = "";
+my @sfDistributionIdArray = ();  # Distribution ID array
+my @sfGeneratedPatternArray = ();  # Distribution ID array
+
+#
+# Statistics variables
+#
+my $fileCount = 0;
+my $modifiedFileCount = 0;
+my $willModifiedFileCount = 0;
+my $noDescrcount = 0;
+my $otherCopyrCount=0;
+my $ExternalToNokiaCopyrCount=0;
+my $NokiaCopyrCount=0;
+my $NoCopyrCount=0;
+my $UnclearCopyrCount=0;
+my $SflToS60Changes = 0;
+my $EplToS60Changes = 0;
+my $SflToEplChanges = 0;
+my $EplToSflChanges = 0;
+my $LicenseChangeErrors = 0;
+my $ignoreCount = 0;
+my $unrecogCount = 0;
+my $createCount = 0;
+my @verifyFailedCount = (0,0,0,0,0,0,0,0,0,0,0); 
+my @verifyFailedCountMsgs = ("Distribution file missing",  # Index 0
+                             "SFL or EPL distribution ID missing",  #1
+                             "SFL or EPL header missing",   #2
+                             "Proper copyright missing",    #3
+                             "Header vs. distribution ID mismatch",   #4
+                             "Internal directory going to SF",         #5
+                             "Old Nokia file header used",         #6
+                             "Unclear Non-Nokia copyright",         #7
+                             "Incomplete copyright",         #8
+                             "OK",     #9
+                             "OK (Non-Nokia)",     #10
+                             "Multiple license"     #11
+                              );
+use constant VERI_MISSING_FILE => 0;
+use constant VERI_MISSING_ID => 1;
+use constant VERI_MISSING_HEADER => 2;
+use constant VERI_PROPER_COPYRIGHT => 3;
+use constant VERI_ID_HEADER_MISMATCH => 4;
+use constant VERI_INTERNAL_TO_SF => 5;
+use constant VERI_OLD_NOKIA_HEADER => 6;
+use constant VERI_UNCLEAR_COPYR => 7;
+use constant VERI_INCOMPLETE_COPYR => 8;
+use constant VERI_OK => 9;
+use constant VERI_OK_NON_NOKIA => 10;
+use constant VERI_MULTIPLE_LICENSES => 11;
+
+
+##################################
+# Callback for the find function 
+# (wanted)
+# Note ! "no_chdir" not used
+##################################
+sub process_file
+{
+
+	my $full_filename = $File::Find::name; # Full name needed for result and logs !
+    $full_filename =~ s/\\/\//g;  # Standardize name 
+	my $filename = $_;  # This in filename in the current working directory !
+
+	#Skip all directory entries
+	return if -d;
+
+    if ($ignorefilepattern && $full_filename =~ m/$ignorefilepattern/i)
+    {
+        printLog(LOG_DEBUG, "File ignored by pattern: ".  $full_filename . "\n");
+        $ignoreCount++;
+        return;
+    }
+
+    # Set initial value from options, turn off later if needed
+    my $modify = $optModify;
+    my $willmodify = 1; # For statistics only
+
+	#skip non-source code files
+	my ($name, $path, $suffix)=fileparse($_, qr/\.[^.]*/);
+
+	my $match = grep {$_ eq lc($suffix)} @extlist;
+    if (!$match)
+    {
+        printLog(LOG_DEBUG, "File ignored: ".  $full_filename . "\n");
+        $ignoreCount++;
+        return;
+    }
+
+    # As there have been cased where e.g. .pkg file has been saved as Unicode format
+    # Check that we can really modify file (e.g. Unicode files not supported)
+    if (! (-T $filename)) # Text file only !
+    {
+        printLog(LOG_WARNING, "File not in text format: $full_filename\n");
+        return;
+    }
+
+
+    printLog(LOG_DEBUG, "Handling ".  $full_filename . "\n");
+
+	local($/, *FH);
+    
+    # Open file for reading here, re-open later if modified
+    open(FH, "<$filename") or return printLog(LOG_ERROR, "Failed to open file for reading: $full_filename\n");
+
+	my $filecontent = <FH>;  # read whole content into buffer
+    # Standardize the new-line handling in files by replacing \r with \n
+    # Some files may be using  only \r and it causes problems
+    $filecontent =~ s/\r/\n/g;  
+	
+	my $modifiedFilecontent;
+	my $description = "";
+	my $contributors = "";
+
+	#comment mark
+	my $cm = '\*';
+	my $cm2 = '*';
+	my $newheader = "";
+	my $oldheader = "";
+	my $oldheader2;
+	my $header_regexp = "";
+	my $header_regexp2;
+    my $isCcomment = 0;
+    my $isCPPcomment = 0;
+    my $oldCopyrightYear;
+    my $matchPos1;
+    my $matchPos2;
+    my $unrecog=0;
+
+
+    # For statisctics....
+	$fileCount++;
+
+    ###################
+	# Prepare regular expressions 
+    # based on file extensions
+    ###################
+
+	if (lc($suffix) eq ".s60")
+    {
+        #
+        # Alter exisring distribution policy file 
+        #
+        my $stat = LICENSE_NONE;
+        $stat = &handleDistributionValue(\$filecontent, $full_filename);
+        if ($stat eq LICENSE_CHANGED)
+        {
+            $willModifiedFileCount++;
+            if ($modify)
+            {
+               close(FH); # Close null 
+               writeFile(\$filecontent, $filename, $full_filename);
+            }
+        }
+        return; # All done
+    }
+    
+	elsif ( (lc($suffix) eq ".mk" ) or 
+          (lc($suffix) eq ".pl") or (lc($suffix) eq ".py") or (lc($suffix) eq ".pm") or # script
+          (lc($suffix) eq ".pro") or (lc($suffix) eq ".pri") )   # Qt specific
+    {
+        # Makefile, Perl or Python script  (# comment)
+		$cm = '#';
+		$cm2 = '#';
+		$newheader = &headerOf(OTHER_HEADER());
+		$header_regexp = $header_regexps[COMMENT_PERL];
+    }
+	elsif ((lc($suffix) eq ".bat" ) or (lc($suffix) eq ".cmd" )) 
+    {
+        # Windows command script (@rem comment)
+		$cm = '@rem';
+		$cm2 = '@rem';
+		$newheader = &headerOf(OTHER_HEADER());
+		$newheader =~ s/\#/\@rem/g;  # use rem as comment start, not #
+		#$newheader = "\@echo off\n" . $newheader;  # Disable std output, otherwise rem statements are shown
+		#$newheader = $newheader . "\@echo on\n"; # Enable std output
+		$header_regexp = $header_regexps[COMMENT_CMD];
+    }
+	elsif (lc($suffix) eq ".pkg" or lc($suffix) eq ".asm") 
+    {
+        # SIS package file or Assembly file (; comment)
+		$cm = ';';
+		$cm2 = ';';
+		$newheader = &headerOf(OTHER_HEADER());
+		$newheader =~ s/\#/\;/g;  # use ; as comment start
+		$header_regexp = $header_regexps[COMMENT_SIS_ASM];
+	} 
+	elsif (lc($suffix) eq ".s") 
+    {
+        # Not all .s files are assemby files !!!
+        #
+        if ($filecontent =~ m/\#include\s*\"armasmdef\.h\"/s)
+        {
+            # ARM assembly file (C comment)
+            $newheader = &headerOf(CPP_HEADER());
+            # Match both C and C++ comment syntaxes
+            $isCcomment = 1;
+            $header_regexp = $header_regexps[COMMENT_C];
+            $header_regexp2 = $header_regexps[COMMENT_CPP];  # Use without /s in regexp eval !
+        }
+        elsif ($filecontent =~ m/[\s\t]+AREA[\s\t]+/s)  # AREA statement
+        {
+            # RVCT assembly file (; comment)
+            $cm = ';';
+            $cm2 = ';';
+            $newheader = &headerOf(OTHER_HEADER());
+            $newheader =~ s/\#/\;/g;  # use ; as comment start
+            $header_regexp = $header_regexps[COMMENT_SIS_ASM];
+        }
+        else
+        {
+            # Not recognized
+            $unrecog = 1;
+            printLog(LOG_WARNING, "Assembly file content not recognized, ignored ".  $full_filename . "\n");
+        }
+	} 
+	elsif (lc($suffix) eq ".script" )
+    {
+        # Test scipt (// comment)
+		$cm = '//';
+		$cm2 = '//';
+		$newheader = &headerOf(OTHER_HEADER());
+		$newheader =~ s/\#/\/\//g;  # use // as comment start
+		$header_regexp = $header_regexps[COMMENT_SCRIPT];
+    }
+    else
+    {
+        # C/C++ syntaxed file
+		$newheader = &headerOf(CPP_HEADER());
+        # Match both C and C++ comment syntaxes
+        $isCcomment = 1;
+	    $header_regexp = $header_regexps[COMMENT_C];
+	    $header_regexp2 = $header_regexps[COMMENT_CPP];  # Use without /s in regexp eval !
+    }
+
+    if ($unrecog)
+    {
+        close(FH);
+        $unrecogCount++;
+        return;
+    }
+
+    ###################
+    # Pick up old header in the very first comment block.
+    # If the actual license text is in the later comment block, it may generate
+    # UNCLEAR COPYRIGHT CASE (See Consistency checks)
+    ###################
+    #
+    if ($header_regexp2)
+    {
+        if ($filecontent =~ m/$header_regexp2/)   # Note /s not used by purpose !
+        {
+            $oldheader = $&;
+            $oldheader2 = $&;
+            $matchPos2 = $-[0];
+            $isCPPcomment = 1;
+            printLog(LOG_DEBUG, "Orig C++ header:$matchPos2=($oldheader)\n");
+        }
+    }
+
+    if ($filecontent =~ m/$header_regexp/s)
+    {
+        $oldheader = $&;
+        $matchPos1 = $-[0];
+        $isCPPcomment = 0;
+        if ($oldheader2 && ($matchPos2 < $matchPos1)) 
+        {
+            $oldheader = $oldheader2;  # C++ header was earlier
+            $isCPPcomment = 1;  # revert back
+        }
+        else 
+        {
+            printLog(LOG_DEBUG, "Orig C or other header:$header_regexp,$matchPos1\n");
+            printLog(LOG_DEBUG, "Orig C or other header:($oldheader)\n");
+        }
+    }
+
+    #
+    ###################
+    # Process old header
+    ###################
+
+    # Handle -verify option
+    if ($optVerify)
+    {
+        if ($optLgpl)
+        {
+            &handleVerifyLgpl(\$filecontent, \$oldheader, $cm, $full_filename, $File::Find::dir);
+        }
+        elsif ($optEpl)
+        {
+            &handleVerifyEpl(\$filecontent, \$oldheader, $cm, $full_filename, $File::Find::dir);
+        }
+        else
+        {
+            &handleVerify(\$filecontent, \$oldheader, $cm, $full_filename, $File::Find::dir);
+        }
+
+        close(FH);
+        return; # All done
+    }
+
+    #
+    # Try switch license from SFL to EPL / S60-OEM release
+    #
+    my $switchStat = LICENSE_NONE;
+    $switchStat = &switchLicense(\$filecontent, \$oldheader, $cm, $full_filename, $isCPPcomment);
+    if ($switchStat eq LICENSE_CHANGED)
+    {
+        # OK the switch was sucessful
+        $willModifiedFileCount++;
+        if ($modify)
+        {
+            close(FH);
+            writeFile(\$filecontent, $filename, $full_filename);
+        }
+        close(FH);
+        return;  # All done
+    }
+    elsif ($switchStat eq LICENSE_NOT_SUPPORTED)
+    {
+        close(FH);
+        return;  # No worth continue
+    }
+    
+
+    # Otherwise (error or no license) continue to create new header
+ 
+    ###################
+    # Consistency checks
+    ###################
+    if ( (!($oldheader =~ m/$CopyrPattern/is)) && ($filecontent =~ m/$BeginLicenseBlockPattern/s))
+    {
+        # Looks like header is something weired going on. First comment block contains no copyright, 
+        # and still there is "BEGIN LICENSE" block in the file
+        $UnclearCopyrCount++;
+        printLog(LOG_INFO, "Non-Nokia copyright (#1) ".  $full_filename . "\n");
+        printResult(HEADER_CONTEXT() . "$sep"."Non-Nokia copyright $sep$sep"."BEGIN LICENSE BLOCK$sep$full_filename$sep$linenumtext\n");
+        close(FH);
+        return;
+    }
+
+    #
+    # Switch license from S60 to SFL/EPL according to options
+    #
+
+    my $otherCopyr = 0;
+    my $noCopyr = 0;
+    my $ExternalToNokiaCopyr = 0;
+    my $s60header = 0;
+
+    # First remove all "Nokia copyright" texts + weired "Copyright known-words" from header
+    # This because, the header can contain both Nokia and other company copyright statements
+    my $testheader = makeTestHeader(\$oldheader, 0, REMOVE_SYMBIAN);
+    printLog(LOG_DEBUG, "Cleaned header=($testheader)\n");
+
+    # Now test whether it contain non-Nokia (=Nokia+Symbian) copyright statements
+    # The rule is: If this hits, do not touch the header
+
+    if ($testheader =~ m/$NonNokiaCopyrPattern/is)
+    {
+        # Some other than Nokia & Symbian copyright exist in header
+        $otherCopyr = 1;
+        $modify = 0;  # !!! Do not modify file !!!
+        $willmodify = 0; 
+        $otherCopyrCount++;
+        my $failReason = "";
+        if (!checkPortionsCopyright(\$oldheader, 0, \$failReason))
+        {
+            printLog(LOG_WARNING, "Non-Nokia copyright (#2) ".  $full_filename . "\n");
+            printResult(HEADER_CONTEXT() . "$sep"."Non-Nokia copyright$sep$sep$sep$full_filename$sep$linenumtext\n");
+        }
+        else
+        {
+            printResult(HEADER_CONTEXT() . "$sep"."Non-Nokia (portions Nokia) copyright$sep$sep$sep$full_filename$sep$linenumtext\n");
+            printLog(LOG_INFO, "Non-Nokia (portions Nokia) copyright ".  $full_filename . "\n");
+        }
+
+        close(FH);
+        return;  # Quit
+    }
+
+    # Test header has Nokia or Symbian copyright statement or it could be some other comment
+    # Check the rest of file
+    my $wholefile = makeTestHeader(\$filecontent, 1, REMOVE_SYMBIAN);  # Check the rest of file
+    if ($wholefile =~ m/$NonNokiaCopyrPattern/is)
+    {
+        # The header might be empty due to weired file header style.
+        # Check the whole file content, it could be non-nokia file?
+        $modify = 0;  # !!! Do not modify file !!!
+        $willmodify = 0; 
+        my $failReason = "";
+        if (!checkPortionsCopyright(\$filecontent, 1, \$failReason))
+        {
+            $UnclearCopyrCount++;
+            printLog(LOG_INFO, "Non-Nokia copyright (#2) ".  $full_filename . "\n");
+            printResult(HEADER_CONTEXT() . "$sep"."Non-Nokia copyright$failReason$sep$sep$sep$full_filename$sep$linenumtext\n");
+        }
+        else
+        {
+            printResult(HEADER_CONTEXT() . "$sep"."Non-Nokia (portions Nokia) copyright$sep$sep$sep$full_filename$sep$linenumtext\n");
+            printLog(LOG_INFO, "Non-Nokia (portions Nokia) copyright ".  $full_filename . "\n");
+        }
+        close(FH);
+        return;  # Quit
+    }
+
+    # Check if header is already OK.  
+    # This is needed to keep Ex-Symbian C++ comment syntaxes. 
+    # Also, this avoid unncessary changes in headers.
+    # NOTE ! If header need to be converted to a new format the check must return FALSE !!!
+    my $license = licenceIdForOption();
+    if (checkHeader(\$filecontent, \$oldheader, $cm, $full_filename, $File::Find::dir, \$license))
+    {
+        if (!checkNoMultipleLicenses(\$filecontent, \$oldheader, $cm, $full_filename, $File::Find::dir))
+        {
+            printResult(HEADER_CONTEXT() . "$sep"."Multiple licenses$sep$sep$sep$full_filename$sep" ."1\n");
+            printLog(LOG_ERROR, "Multiple licenses:".  $full_filename . "\n");
+            close(FH);
+            return; # Failed
+        }
+        else
+        {
+            # Quit here, header OK
+            printLog(LOG_INFO, "Header already OK ($license): $full_filename\n");
+            close(FH);
+            return;  # Quit
+        }
+    }
+
+    # Check if Ex-Symbian file
+    my $testheader = makeTestHeader(\$oldheader, 0, KEEP_SYMBIAN);
+    if ($testheader =~ m/$ExternalToNokiaCopyrPattern/is)
+    { 
+        # External copyright moved to Nokia
+        my $txt = $1;
+        $txt =~ s/,//;
+        $ExternalToNokiaCopyr = 1;
+        $ExternalToNokiaCopyrCount++;
+        if ($isCPPcomment) 
+        {
+            # Normalize the C++ header syntax back to C comment
+            $modifiedFilecontent = &normalizeCppComment($header_regexp2,$filecontent, \$oldheader);
+            printLog(LOG_DEBUG, "Normalized External header=($oldheader)\n");
+        }
+        if ($testheader =~ /$copyrYearPattern/) 
+        {
+            if ($& =~ /$copyrYearPattern2/)
+            {
+                $oldCopyrightYear = $&;
+            }
+            printLog(LOG_DEBUG, "Old copyright=($oldCopyrightYear)\n");
+        }
+        printLog(LOG_INFO, "Copyright will be converted to Nokia: $full_filename\n");
+        printResult(HEADER_CONTEXT() . "$sep"."Converted copyright$sep$sep$sep$full_filename$sep$linenumtext\n");
+    }
+
+    elsif ($oldheader =~ m/$NokiaCopyrPattern/is)
+    {
+        # Consider it to be Nokia copyright
+        $s60header = 1;
+        $NokiaCopyrCount++;
+        printLog(LOG_DEBUG, "Nokia header=($full_filename)\n");
+        if ($isCPPcomment) 
+        {
+            # Normalize the C++ header syntax back to C comment
+            $modifiedFilecontent = &normalizeCppComment($header_regexp2, $filecontent, \$oldheader);
+            printLog(LOG_DEBUG, "Normalized Nokia header=($oldheader)\n");
+        }
+        if ($oldheader =~ /$copyrYearPattern/) 
+        {
+            if ($& =~ /$copyrYearPattern2/)
+            {
+                $oldCopyrightYear = $&;
+            }
+            printLog(LOG_DEBUG, "Old copyright2=($oldCopyrightYear)\n");
+        }
+    }
+    elsif (! ($testheader =~ m/$CopyrPattern/is) )
+    {
+       # No copyright in the header.
+       $NoCopyrCount++;
+       $noCopyr = 1;
+       # printResult(HEADER_CONTEXT() . "$sep"."No Copyright$sep$sep$sep$full_filename$sep$linenumtext\n");
+    }
+    else 
+    {
+         $UnclearCopyrCount++;
+         $modify = 0;  # !!! Do not modify file !!!
+         $willmodify = 0; 
+         printLog(LOG_ERROR, "UNCLEAR copyright ".  $full_filename . "\n");
+         printResult(HEADER_CONTEXT() . "$sep"."UNCLEAR COPYRIGHT CASE$sep$sep$sep$full_filename$sep$linenumtext\n");
+    }
+
+
+	# Get description from current header 
+    if ($oldheader =~ m/$cm\s*Description\s*\:(.*?)$cm\s*(Version)/s)
+    {
+        # Description followed by Version
+		$description = $1;
+        printLog(LOG_DEBUG, "Old description followed by version ($description)\n");
+	} else 
+    {
+        # Description without Version
+		# ORIG if ($oldheader =~ m/$cm?\s*Description\s*\:(.*?)$cm\s*(\n)/s)
+		if ($oldheader =~ m/$cm?\s*Description\s*\:(.*?)($cm|$cm\/|\n)\s*\n/s)
+        {
+            $description = $1;
+            printLog(LOG_DEBUG, "Old description not followed by version ($description)\n");
+        }
+	}
+
+    if ($isCcomment)
+    {
+        $description =~ s/\/\*.*//;  # Remove possible /*
+        $description =~ s/\*\/.*//;  # Remove possible */
+        $description =~ s/\=//g;  # Remove possible =/
+    }
+
+     # Get contributors from old header
+	if ( $oldheader =~ m/$cm\s*Contributors\s*\:(.*?)$cm\s*Description\s*\:/s)
+    {
+		$contributors = $1;
+        printLog(LOG_DEBUG, "Old contributors ($contributors)\n");
+	}
+
+	# Keep description text
+    if($description)
+    {
+        $newheader =~ s/Description:[ \t]*\n/Description: $description/s;
+    }
+
+
+	#Keep contributor list
+	if ($contributors)
+    {
+		$newheader =~ s/$cm[ \t]*Contributors:[ \t]*\n$cm[ \t]*\n/$cm2 Contributors:$contributors/s;
+	}
+
+
+    ###################
+	# Modify the header
+    ###################
+	if($oldheader)
+    {
+        {
+            # Update the old  header to new one
+            # Old header may be just a description comment, e.g. in script
+            #
+		
+            if ($otherCopyr)
+            {
+                # Other copyright statement, do not touch !
+                printLog(LOG_DEBUG, "Non-Nokia file not modified: $full_filename\n");
+            }
+            elsif ($noCopyr)
+            {
+
+                # No copyright statement
+                if (!isGeneratedHeader(\$oldheader))
+                {
+                    # Just add new header
+                    $filecontent = $newheader . $filecontent;
+                    printLog(LOG_INFO, "New header will be added: $full_filename\n");
+                }
+                else
+                {
+                    printLog(LOG_INFO, "Generated file ignored: $full_filename\n");
+                }
+            }
+            else
+            {
+                # Replace the old external / S60 header
+                my $newHeaderCopyrYear;
+                if ($newheader =~ /$copyrYearPattern2/) 
+                {
+                    # This is picked up from newheader template in this script, so should work always !
+                    $newHeaderCopyrYear = $&;  # Pick up year from new header
+                    printLog(LOG_DEBUG, "Template header copyright=($newHeaderCopyrYear)\n");
+                }
+                if (!$newHeaderCopyrYear)
+                {
+                    # Anyway, some weired error happended
+                    $newHeaderCopyrYear = DEFCOPYRIGHTYEAR;
+                }
+                
+                # Create new copyright years
+                if ($oldCopyrightYear && !($oldCopyrightYear =~ /$newHeaderCopyrYear/))
+                {
+                    # Keep the old copyright !!!
+                    # !!! If adding new copyright year to old header, uncomment the next line !!!
+                    # $oldCopyrightYear .= ",$newHeaderCopyrYear";
+                }
+                if (!$oldCopyrightYear)
+                {
+                    # Nothing found
+                    $oldCopyrightYear = $newHeaderCopyrYear;
+                }
+                printLog(LOG_DEBUG, "New header copyright:$oldCopyrightYear\n");
+                $newheader =~ s/$newHeaderCopyrYear/$oldCopyrightYear/;
+                printLog(LOG_DEBUG, "New header:$full_filename,($newheader)\n");
+                if ($modifiedFilecontent) 
+                {
+                    $filecontent = $modifiedFilecontent;  # Use the already modified content as basis
+                }
+
+                #
+                # SET THE NEW HEADER
+                #
+                if (!($filecontent =~ s/$header_regexp/$newheader/s))
+                {
+                    printLog(LOG_ERROR, "FAILED to change file header: ".  $full_filename . "\n");
+                    $LicenseChangeErrors++;
+                    $modify = 0;  # Can not modify on failure
+                    $willmodify = 0; 
+                }
+                else
+                {
+                    printLog(LOG_INFO, "File header will be changed: $full_filename\n");
+                }
+            }
+        }
+	} 
+    else
+    {
+        if (!isGeneratedHeader(\$filecontent))  # Ensure file is not generated
+        {
+            # Missing old header, add new header as such
+            printLog(LOG_INFO, "Missing header will be added: $full_filename\n");
+            $filecontent = $newheader."\n".$filecontent;
+        }
+        else
+        {   
+            printLog(LOG_INFO, "Generated file ignored: $full_filename\n");
+        }
+	}
+
+    if ($description =~ m/^\s*$/g || $description =~ m/$descrTemplateOnly/) 
+    {
+        $noDescrcount++;
+        if ($optDescription)
+        {
+            printResult(HEADER_CONTEXT() .  "$sep"."Description missing$sep$sep$sep$full_filename$sep$linenumtext\n");
+        }
+    }
+   
+    close(FH);
+
+	if ($modify)
+    {
+        # Re-open the file for modifications
+        chmod 0777, $filename if !-w;  # remove first R/O
+        open(FH, "+<$filename") or return printLog(LOG_ERROR, "Failed to open file for modifying: $full_filename\n");
+		print FH $filecontent or printLog(LOG_ERROR, "Failed to modify file: $full_filename\n");
+		truncate(FH, tell(FH));
+        $modifiedFileCount++;
+        close(FH);
+	}
+
+    if ($willmodify)
+    {
+        # Only for statistics
+        $willModifiedFileCount++;
+    }
+
+}
+
+
+
+##################################
+# Callback for the find function
+# (postprocess)
+# Note ! "no_chdir" not used
+##################################
+sub postprocess
+{
+	my $dir = $File::Find::dir; 
+    printLog(LOG_DEBUG, "postprocess $dir\n");
+
+    return if (-e DISTRIBUTION_FILENAME); # Already exists ?
+
+    my $full_filename = $dir . "/" . DISTRIBUTION_FILENAME; # Full name needed for results and log
+    my $filename = DISTRIBUTION_FILENAME;
+
+    if ($ignorefilepattern && $full_filename =~ m/$ignorefilepattern/i)
+    {
+        printLog(LOG_DEBUG, "Missing file ignored by pattern: ".  $full_filename . "\n");
+        $ignoreCount++;
+        return;
+    }
+
+    my $filecontent = "";
+    my $stat = LICENSE_NONE;
+    $stat = &handleDistributionValue(\$filecontent, $full_filename);
+    if ($stat eq LICENSE_CHANGED && $optCreate && isDirectoryNonEmpty('.'))
+    {
+        # Create new distribution file to non-empty directory
+        printResult(DISTRIBUTION_CONTEXT() . "$sep"."New file$sep$sep$sep$full_filename$sep$linenumtext\n");
+        if ($optModify)
+        {
+            # Without  -modify it is possible to see what new files will created
+            createAndWriteFile(\$filecontent, $filename, $full_filename);
+        }
+        $createCount++; # For statistics
+    }   
+
+
+}
+
+
+##################################
+# Callback for the find function
+# (preprocess). Used by option -verify
+# Note ! "no_chdir" not used
+##################################
+sub preprocess
+{
+	my $dir = $File::Find::dir; 
+    printLog(LOG_DEBUG, "preprocess $dir\n");
+    $lastDistributionValue = "";  # Empty first
+
+    if (!isDirectoryNonEmpty('.'))
+    {
+        # Ignore empty dirs
+        return @_; # Return input args
+    }
+    if (!$optVerify)
+    {
+        return @_; # Return input args
+    }
+
+    #
+    # Currently option -verify  required !!!
+    #
+
+    my $full_filename = $dir . "/" . DISTRIBUTION_FILENAME; # Full name needed for results and log
+    $full_filename =~ s/\\/\//g;  # Standardize name 
+
+    my $filename = DISTRIBUTION_FILENAME;
+    if ($ignorefilepattern && $full_filename =~ m/$ignorefilepattern/i)
+    {
+        if (! ($dir =~ m/$INTERNAL/i) )
+        {
+            return @_;
+        }
+    }
+
+    # Check existency of the file
+    if (!open(FH, "<$filename"))
+    {
+         printResult(DISTRIBUTION_CONTEXT() . "$sep"."Distribution policy file missing$sep$sep$sep$full_filename$sep$linenumtext\n");
+         $verifyFailedCount[VERI_MISSING_FILE]++;
+         return @_;   # Return input args
+    }
+
+	my $content = <FH>;  # IF CONTENT CHECKS
+    close FH;
+
+    $content =~ s/\n//g;  # Remove all new-lines
+    $content =~ s/^\s+//g;  # trim left
+    $content =~ s/\s+$//g;  # trim right
+    $lastDistributionValue = $content;  # Save to global variable for the sub handleVerify
+
+    printLog(LOG_DEBUG, "$full_filename content=$content\n");
+
+    if ($dir =~ m/$INTERNAL/i)
+    {
+        if ( ($content eq SFL_DISTRIBUTION_VALUE) || ($content eq EPL_DISTRIBUTION_VALUE) )
+        {
+            # Internal directory has SFL or EPL distribution value, something is wrong !
+            my $comment = "";  # Leave it just empty
+            printResult(DISTRIBUTION_CONTEXT() . "$sep"."Internal directory going to SF (current value $content)$sep$comment$sep$sep$full_filename$sep$linenumtext\n");
+            $verifyFailedCount[VERI_INTERNAL_TO_SF]++;
+        }
+    }
+    elsif (! (($content eq SFL_DISTRIBUTION_VALUE) || ($content eq EPL_DISTRIBUTION_VALUE)))
+    {
+         # Neither SFL nor EPL value
+         my $comment = getCommentText($content,0,"0,3,7,950", $full_filename);
+         my $isSFId = &isSFDistribution($content);
+         if (!$isSFId)
+         {
+            printResult(DISTRIBUTION_CONTEXT() . "$sep"."SFL or EPL value missing (current value $content)$sep$comment$sep$sep$full_filename$sep$linenumtext\n");
+            $verifyFailedCount[VERI_MISSING_ID]++;
+         }
+    }
+
+    return @_;   # Return input args
+
+}
+
+##################################################
+# Read distribution file from given directory
+##################################################
+sub readDistributionValue
+{
+    
+    my $dir = shift;
+
+    my $filename = DISTRIBUTION_FILENAME;
+    my $content = "";
+
+    if (open(FH, "<$filename"))
+    {
+        $content = <FH>; 
+        close FH;
+    }
+
+    $content =~ s/\n//g;  # Remove all new-lines
+    $content =~ s/^\s+//g;  # trim left
+    $content =~ s/\s+$//g;  # trim right
+
+    return $content;
+}
+
+
+##################################################
+# Make test header from given input text
+##################################################
+sub makeTestHeader
+{
+    my $ref = shift;          # Input text reference
+    my $isWholeFile = shift;  # $ref is the file content
+    my $removeExternalToNokia = shift; # Remove to Nokia transferreable copyright texts
+
+    my $tstheader = "";
+
+    if (!$isWholeFile)
+    {
+        $tstheader = $$ref;
+    }
+    else
+    {
+        # To optimize, whole file == 10k !!!
+        # The proper header should be included in that amount of data.
+        $tstheader = substr($$ref, 0, 10*1024);
+    }
+    $tstheader =~ s/$NokiaCopyrPattern//gi;
+    $tstheader =~ s/$PortionsNokiaCopyrPattern//gi;
+    $tstheader =~ s/$RemoveS60TextBlockPattern//si;
+    if ($removeExternalToNokia)
+    {
+        $tstheader =~ s/$ExternalToNokiaCopyrPattern//gi;
+        $tstheader =~ s/$PortionsSymbianCopyrPattern//gi;
+    }
+
+    # Take out special texts containing copyright word
+    $tstheader =~ s/Copyright\s*\(c\)\s*\.//gi; 
+    $tstheader =~ s/COPYRIGHT[\s\n\*\#+;]*(HOLDER|OWNER|notice)//gi;
+
+    return $tstheader;
+}
+
+
+##################################################
+# Check whether portions copyright is OK
+# Call this for non Nokia cases only !
+##################################################
+sub checkPortionsCopyright
+{
+    my $ref = shift;          # Input text reference
+    my $isWholeFile = shift;  # $ref is the file content
+    my $failReason_ref = shift;  # check failure reason (OUT)
+
+    my $tstheader = "";
+
+    if (!$isWholeFile)
+    {
+        $tstheader = $$ref;
+    }
+    else
+    {
+        # The portions info should be included within first 10 Kb of file
+        $tstheader = substr($$ref, 0, 10*1024);  
+    }
+
+    if ($tstheader =~ m/$PortionsSymbianCopyrPattern/is)
+    {
+        # Symbian portions copyright should be converted to Nokia one
+        if (!($tstheader =~ m/$PortionsNokiaCopyrPattern/is))
+        {
+            $$failReason_ref = "(portions Symbian copyright)";
+        }   
+        else
+        {
+            $$failReason_ref = "(portions Nokia+Symbian copyright)";
+        }   
+        return 0;
+    }
+
+    if (!($tstheader =~ m/$NewPortionsNokiaCopyrPattern/is))
+    {
+        # No portions copyright present
+        $$failReason_ref = "";
+        return 0;
+    }
+
+    return 1;  # Should be OK
+}
+
+
+##################################################
+# Get comment text by ID or filename
+# Returns currently empty or value of the $IGNORE
+##################################################
+sub getCommentText
+{
+    my $distributionValue = shift;
+    my $contains = shift;
+    my $pattern = shift;
+    my $fullfilename = shift;
+
+    if ($contains)
+    {
+        if ($pattern =~ m/$distributionValue/)
+        {
+            return $IGNORE;
+        }
+    }
+    else
+    {
+        # Not contains
+        if (!($pattern =~ m/$distributionValue/))
+        {
+            return $IGNORE;
+        }
+    }
+
+    my $ignoreThis = $manualIgnoreFileHash{lc($fullfilename)};
+    if (defined $ignoreThis) 
+    {
+        printLog(LOG_DEBUG, "$IGNORE_MAN 2: $fullfilename\n");
+        return $IGNORE_MAN;
+    }
+
+    return "";
+}
+
+
+##################################################
+# Write content to file
+##################################################
+sub writeFile
+{
+    my $filecontent_ref = shift;
+    my $filename = shift;
+    my $full_filename = shift;
+
+	my $fh;
+
+    chmod 0777, $filename if !-w;  # remove first R/O
+    open($fh, "+<$filename") or return printLog(LOG_ERROR, "Failed to open file for modifying: $full_filename\n");
+    print $fh $$filecontent_ref or printLog(LOG_ERROR, "Failed to modify file: $full_filename\n");
+    truncate($fh, tell($fh));
+    close($fh);
+
+    $modifiedFileCount++;
+}
+
+##################################################
+# Create file and write content to file
+##################################################
+sub createAndWriteFile
+{
+    my $filecontent_ref = shift;
+    my $filename = shift;
+    my $full_filename = shift;
+
+	my $fh;
+
+    open($fh, ">$filename") or return printLog(LOG_ERROR, "Failed to create file: $full_filename\n");
+    print $fh $$filecontent_ref or printLog(LOG_ERROR, "Failed to write  file: $full_filename\n");
+    close($fh);
+}
+
+##################################
+# Check if current directory is empty
+##################################
+sub isDirectoryNonEmpty
+{
+  my ($dir) = @_;
+  opendir (DIR,$dir) or printLog(LOG_ERROR, "Can't opendir $dir\n");
+  for(readdir DIR)
+  {
+    if (-f $_)
+    {
+      closedir DIR;
+      return 1;
+    };
+  }
+  closedir DIR;
+  return 0;
+}
+
+
+##################################################
+# Change SFL back to S60, or
+# Change SFl to EPL
+# Returns LICENSE_CHANGED if function switched the license succesfully
+##################################################
+# Switch only license text  and URL
+my $sflText = '"Symbian Foundation License v1.0"';
+my $sflTextPattern = '(the\s*License\s*)?\"Symbian\s*Foundation\s*License\s*v1\.0\"'; 
+my $sflUrlPattern = 'http\:\/\/www\.symbianfoundation\.org\/legal\/sfl\-v10\.html';
+my $sflUrl = 'http://www.symbianfoundation.org/legal/sf'.'l-v10.html';
+my $eplText = '"Eclipse Public License v1.0"';
+my $eplUrl = 'http://www.eclipse.org/legal/epl-v10.html';
+my $eplUrlPattern = 'http\:\/\/www\.eclipse\.org\/legal\/epl\-v10\.html';
+my $eplTextPattern = '"Eclipse\s*Public\s*License\s*v1\.0"';
+my $oldEplTextPattern = 'the\s*License\s*"Eclipse\s*Public\s*License\s*v1\.0'; # "the License" is unncessary
+
+sub switchLicense
+{
+    my $filecontent_ref = shift;
+    my $header_ref = shift;
+    my $commentChar = shift;
+    my $fullfilename = shift;
+    my $isCPPcomment = shift;
+
+	my $testValueSfl = "";
+	my $testValueEpl = "";
+	my $testValueS60 = "";
+
+    if ($isCPPcomment)
+    {
+        # xSymbian files use this style
+        $commentChar = '//';
+        # in xSymbian files there are comments like, /// some text
+        $$filecontent_ref =~ s/(\/){3,}/\/\//g;  # replace ///+ back to //
+    }
+
+
+    # In from value \* need to be escaped.
+    my $FromSFLText = &partialHeaderOf(SFL_LICENSE,$commentChar, \$testValueSfl);
+    my $FromEPLText = &partialHeaderOf(EPL_LICENSE,$commentChar, \$testValueEpl);
+
+    $commentChar =~ s/\\//; # Remove \ from  possible  \*
+    my $ToS60Text = &partialHeaderOf(S60_LICENSE,$commentChar, \$testValueS60);
+
+    # Note that partial headers are manually quoted in the declaration
+    # Otherwise \Q$SFLText\E and \Q$EPLText\E would be needed around those ones
+    # because plain text contains special chars, like .
+
+    printLog(LOG_DEBUG, "switchLicense: $fullfilename, $testValueEpl\n");
+
+    if ($$filecontent_ref =~ m/$testValueSfl/s)
+    {
+        # SFL license
+
+        if ($optOem)
+        {
+            # Switch from SFL to S60
+            if (!($$filecontent_ref =~ s/$FromSFLText/$ToS60Text/s))
+            {
+                printLog(LOG_ERROR, "FAILED to change SFL license to S60: ".  $fullfilename . "\n");
+                $LicenseChangeErrors++;
+                return LICENSE_ERROR;
+            }
+            printLog(LOG_WARNING, "License will be swicthed from SFL to S60: ".  $fullfilename . "\n");
+            $SflToS60Changes++;
+            return LICENSE_CHANGED;
+       }
+       elsif ($optEpl)
+       {
+            # Switch from SFL to EPL
+            if (! ( ($$filecontent_ref =~ s/$sflTextPattern/$eplText/s) && ($$filecontent_ref =~ s/$sflUrlPattern/$eplUrl/s) ) )
+            {
+                printLog(LOG_ERROR, "FAILED to change SFL to EPL: ".  $fullfilename . "\n");
+                $LicenseChangeErrors++;
+                return LICENSE_ERROR;
+            }
+            else
+            {
+                printLog(LOG_INFO, "License will be switched from SFL to EPL: ".  $fullfilename . "\n");
+            }
+            $SflToEplChanges++;
+            return LICENSE_CHANGED;
+       }
+    }
+
+    if ($$filecontent_ref =~ m/$testValueEpl/s)
+    {
+        if ($optOem)
+        {
+             printLog(LOG_ERROR, "Not supported to change EPL to S60: ".  $fullfilename . "\n");
+             return LICENSE_NOT_SUPPORTED;
+        }
+        elsif (!$optEpl)
+        {
+            # Switch from EPL  to SFL
+            if (! ( ($$filecontent_ref =~ s/$eplTextPattern/$sflText/s) && ($$filecontent_ref =~ s/$eplUrlPattern/$sflUrl/s) ) )
+            {
+                printLog(LOG_ERROR, "FAILED to change EPL to SFL: ".  $fullfilename . "\n");
+                $LicenseChangeErrors++;
+                return LICENSE_ERROR;
+            }
+            else
+            {
+                printLog(LOG_WARNING, "License will be switched from EPL to SFL: ".  $fullfilename . "\n");
+            }
+            $EplToSflChanges++;
+            return LICENSE_CHANGED;
+        }
+
+        # EPL text cleanup (remove unncessary "the License")
+         if ($$filecontent_ref =~ m/$oldEplTextPattern/s)
+         {
+             # EPL header contains extra words, get rid of them (allow script replace old header)
+             if ($$filecontent_ref =~ s/$oldEplTextPattern/$eplText/s)
+             {
+                 # Not error if fails
+                 printLog(LOG_INFO, "Unnecessary \"the License\" will be removed: $fullfilename\n");
+                 return LICENSE_CHANGED;
+             }
+         }
+
+    }
+    else
+    {
+        return LICENSE_NONE;  # Allow caller decide
+    }
+
+}
+
+##################################################
+# Verify changes
+##################################################
+sub handleVerify
+{
+    my $filecontent_ref = shift;
+    my $header_ref = shift;
+    my $commentChar = shift;
+    my $fullfilename = shift;
+    my $directory = shift;
+
+	my $testValueSfl = "";
+	my $testValueEpl = "";
+    my $FromSFLText = &partialHeaderOf(SFL_LICENSE,$commentChar, \$testValueSfl);
+    my $FromEPLText = &partialHeaderOf(EPL_LICENSE,$commentChar, \$testValueEpl);
+
+    if ($lastDistributionValue eq "")
+    {
+        # Distribution file may be empty if giving single file as input
+        # Read it
+        $lastDistributionValue = readDistributionValue($directory);
+    }
+
+    printLog(LOG_DEBUG, "handleVerify $fullfilename, $$header_ref\n");
+
+    # First check Non-Nokia copyright files
+    my $testheader = makeTestHeader($header_ref, 0, REMOVE_SYMBIAN);
+    if (($testheader =~ m/$NonNokiaCopyrPattern/is))
+    {
+        printLog(LOG_DEBUG, "DEBUG:Extra check1 $&\n");
+        if (!($testheader =~ m/$ExternalToNokiaCopyrPattern/si))
+        {
+            # Non-nokia file
+            if ($testheader =~ m/$copyrYearPattern/si)
+            {
+                # Looks like copyright statement
+                printResult(HEADER_CONTEXT() . "$sep"."Non-Nokia copyright$sep" . "$IGNORE$sep$lastDistributionValue$sep$fullfilename$sep$linenumtext\n");
+                $otherCopyrCount++;
+                $verifyFailedCount[VERI_OK_NON_NOKIA]++;
+                return 1; # OK
+            }
+            else    
+            {
+                # Incomplete copyright ?
+                printResult(HEADER_CONTEXT() . "$sep"."Non-Nokia incomplete copyright$sep" . "$IGNORE?$sep$lastDistributionValue$sep$fullfilename$sep$linenumtext\n");
+                $verifyFailedCount[VERI_OK]++;
+                return 0;  
+            }
+        }
+    }
+
+    # The header might be empty due to weired file header style.
+    # Check the whole file content, it could be non-nokia file?
+    my $filestart = makeTestHeader($filecontent_ref, 1, REMOVE_SYMBIAN);
+
+    if ($filestart =~ m/$NonNokiaCopyrPattern/is)
+    {
+        # There is Non-Nokia copyright statement in the file
+        if (($filestart =~ m/$testValueSfl/is) || ($filestart =~ m/$testValueEpl/is))
+        {
+            # Non-Nokia file, but still SFL or EPL header
+            printResult(HEADER_CONTEXT() . "$sep"."UNCLEAR Non-Nokia copyright with SFL/EPL$sep" . "$sep$lastDistributionValue$sep$fullfilename$sep$linenumtext\n");
+            $verifyFailedCount[VERI_UNCLEAR_COPYR]++;
+            return 0;
+        }
+        elsif ($$filecontent_ref =~ m/$OldNokiaPattern2/is) 
+        {
+            printResult(HEADER_CONTEXT() . "$sep"."UNCLEAR Old Nokia copyright$sep" . "$sep$lastDistributionValue$sep$fullfilename$sep$linenumtext\n");
+            $verifyFailedCount[VERI_OLD_NOKIA_HEADER]++;
+            return 0;
+        }
+        else
+        {
+            # Non-Nokia file
+            my $failReason = "";
+            if (!checkPortionsCopyright($filecontent_ref, 1, \$failReason))
+            {
+                printResult(HEADER_CONTEXT() . "$sep"."UNCLEAR Non-Nokia copyright$failReason$sep" . "$sep$lastDistributionValue$sep$fullfilename$sep$linenumtext\n");
+                $verifyFailedCount[VERI_UNCLEAR_COPYR]++;
+                return 0;
+            }
+            else
+            {
+                # Contains portions copyright
+                printResult(HEADER_CONTEXT() . "$sep"."Non-Nokia (portions Nokia) copyright$sep" . "$IGNORE$sep$lastDistributionValue$sep$fullfilename$sep$linenumtext\n");
+                return 1;
+            }
+        }
+    }
+
+    #
+    # OK, it should be Nokia copyrighted file
+    #
+
+    # Note that partial headers are manually quoted in the declaration
+    # Otherwise \Q$SFLText\E and \Q$EPLText\E would be needed around those ones
+    # because plain text contains special chars, like .
+    printLog(LOG_DEBUG, "handleVerify testheaders: $testValueSfl,$testValueEpl,$$header_ref\n");
+
+    if ( !( ($$header_ref =~ m/$testValueSfl/s) || ($$header_ref =~ m/$testValueEpl/s) ||
+            ($$filecontent_ref =~ m/$testValueSfl/s) || ($$filecontent_ref =~ m/$testValueEpl/s) 
+       )  )
+    {
+        # Header not found from header or whole file
+       if (isGeneratedHeader($header_ref) || isGeneratedHeader($filecontent_ref))
+       {
+            # OK, it is generated header
+            if ($optOutputOK)
+            {
+                printResult(HEADER_CONTEXT() . "$sep"."OK$sep" . "Generated header$sep$lastDistributionValue$sep$fullfilename$sep$linenumtext\n");
+            }
+            $verifyFailedCount[VERI_OK]++;
+            return 1;  # OK
+       }
+
+        my $comment = getCommentText($lastDistributionValue, 0, "0,3,7", $fullfilename);
+        if (($$header_ref =~ m/$OldNokiaPattern2/is) || ($$filecontent_ref =~ m/$OldNokiaPattern2/is))
+        {
+            printResult(HEADER_CONTEXT() . "$sep"."SFL or EPL header missing (old Nokia copyright)$sep$comment$sep$lastDistributionValue$sep$fullfilename$sep$linenumtext\n");
+        }
+        else
+        {
+            printResult(HEADER_CONTEXT() . "$sep"."SFL or EPL header missing$sep$comment$sep$lastDistributionValue$sep$fullfilename$sep$linenumtext\n");
+        }
+        $verifyFailedCount[VERI_MISSING_HEADER]++;
+        return 0;
+    }
+
+    # Cross header versus distribution ID
+    if ($lastDistributionValue ne "")
+    {
+        # Also other than 3 or 7 may be OK based on the config file
+        my $isSFId = &isSFDistribution($lastDistributionValue);
+        printLog(LOG_DEBUG, "DEBUG:handleVerify:Other ID OK=$isSFId\n");
+        if ( (($$header_ref =~ m/$testValueSfl/s) || ($$filecontent_ref =~ m/$testValueSfl/s)) && !$isSFId)
+        {
+            my $comment = getCommentText($lastDistributionValue, 0, "0,3,7", $fullfilename);
+            printResult(HEADER_CONTEXT() . "$sep"."SFL header vs. distribution id ($lastDistributionValue) mismatch$sep$comment$sep$lastDistributionValue$sep$fullfilename$sep$linenumtext\n");
+            $verifyFailedCount[VERI_ID_HEADER_MISMATCH]++;
+            return 0;
+        }
+        if ( (($$header_ref =~ m/$testValueEpl/s) || ($$filecontent_ref =~ m/$testValueEpl/s)) && !$isSFId )
+        {
+            my $comment = getCommentText($lastDistributionValue, 0, "0,3,7", $fullfilename);
+            printResult(HEADER_CONTEXT() . "$sep"."EPL header vs. distribution id ($lastDistributionValue) mismatch$sep$comment$sep$lastDistributionValue$sep$fullfilename$sep$linenumtext\n");
+            $verifyFailedCount[VERI_ID_HEADER_MISMATCH]++;
+            return 0;
+        }
+    }
+
+    if (!checkNoMultipleLicenses($filecontent_ref, $header_ref, $commentChar, $fullfilename, $directory))
+    {
+        printResult(HEADER_CONTEXT() . "$sep"."Multiple licenses$sep$sep$sep$fullfilename$sep" ."1\n");
+        printLog(LOG_ERROR, "Multiple licenses:".  $fullfilename . "\n");
+        $verifyFailedCount[VERI_MULTIPLE_LICENSES]++;
+        return 0; # Failed
+    }
+
+
+    # We should have proper header in place 
+
+    printLog(LOG_DEBUG, "handleVerify: $$filecontent_ref\n");
+    # Check New Nokia copyright pattern (added one sentence to the old one)
+    if (! (($$header_ref =~ m/$NewNokiaPattern/s) || ($$filecontent_ref =~ m/$NewNokiaPattern/s)) )
+    {
+        my $comment = getCommentText($lastDistributionValue, 0, "0,3,7,950", $fullfilename);
+        printResult(HEADER_CONTEXT() . "$sep"."Proper Nokia copyright statement missing$sep$comment$sep$lastDistributionValue$sep$fullfilename$sep$linenumtext\n");
+        $verifyFailedCount[VERI_PROPER_COPYRIGHT]++;
+        return 0; # Failed
+    }
+
+    if ($optOutputOK)
+    {
+        printResult(HEADER_CONTEXT() . "$sep"."OK$sep" . "OK$sep$lastDistributionValue$sep$fullfilename$sep$linenumtext\n");
+    }
+    $verifyFailedCount[VERI_OK]++;
+
+    return 1;
+
+}
+
+
+##################################################
+# Verify changes
+##################################################
+sub handleVerifyEpl
+{
+    my $filecontent_ref = shift;
+    my $header_ref = shift;
+    my $commentChar = shift;
+    my $fullfilename = shift;
+    my $directory = shift;
+
+	my $testValueSfl = "";
+	my $testValueEpl = "";
+    my $FromSFLText = &partialHeaderOf(SFL_LICENSE,$commentChar, \$testValueSfl);
+    my $FromEPLText = &partialHeaderOf(EPL_LICENSE,$commentChar, \$testValueEpl);
+
+    if ($lastDistributionValue eq "")
+    {
+        # Distribution file may be empty if giving single file as input
+        # Read it
+        $lastDistributionValue = readDistributionValue($directory);
+    }
+
+    printLog(LOG_DEBUG, "handleVerifyEpl $fullfilename, $$header_ref\n");
+
+    # First check Non-Nokia copyright files
+    my $testheader = makeTestHeader($header_ref, 0, REMOVE_SYMBIAN);
+    if (($testheader =~ m/$NonNokiaCopyrPattern/is))
+    {
+        printLog(LOG_DEBUG, "DEBUG:Extra check1 $&\n");
+        if (!($testheader =~ m/$ExternalToNokiaCopyrPattern/si))
+        {
+            # Non-nokia file
+            if ($testheader =~ m/$copyrYearPattern/si)
+            {
+                # Looks like copyright statement
+                printResult(HEADER_CONTEXT() . "$sep"."Non-Nokia copyright$sep" . "$IGNORE$sep$lastDistributionValue$sep$fullfilename$sep$linenumtext\n");
+                $otherCopyrCount++;
+                $verifyFailedCount[VERI_OK_NON_NOKIA]++;
+                return 1; # OK
+            }
+            else    
+            {
+                # Incomplete copyright ?
+                printResult(HEADER_CONTEXT() . "$sep"."Non-Nokia incomplete copyright$sep" . "$IGNORE?$sep$lastDistributionValue$sep$fullfilename$sep$linenumtext\n");
+                $verifyFailedCount[VERI_OK]++;
+                return 0;  
+            }
+        }
+    }
+
+    # The header might be empty due to weired file header style.
+    # Check the whole file content, it could be non-nokia file?
+    my $filestart = makeTestHeader($filecontent_ref, 1, REMOVE_SYMBIAN);
+
+    if ($filestart =~ m/$NonNokiaCopyrPattern/is)
+    {
+        # There is Non-Nokia copyright statement in the file
+        if ($filestart =~ m/$testValueEpl/is)
+        {
+            # Non-Nokia file, but still EPL header
+            printResult(HEADER_CONTEXT() . "$sep"."UNCLEAR Non-Nokia copyright with EPL$sep" . "$sep$lastDistributionValue$sep$fullfilename$sep$linenumtext\n");
+            $verifyFailedCount[VERI_UNCLEAR_COPYR]++;
+            return 0;
+        }
+        elsif ($$filecontent_ref =~ m/$OldNokiaPattern2/is) 
+        {
+            printResult(HEADER_CONTEXT() . "$sep"."UNCLEAR Old Nokia copyright$sep" . "$sep$lastDistributionValue$sep$fullfilename$sep$linenumtext\n");
+            $verifyFailedCount[VERI_OLD_NOKIA_HEADER]++;
+            return 0;
+        }
+        else
+        {
+            # Non-Nokia file
+            my $failReason = "";
+            if (!checkPortionsCopyright($filecontent_ref, 1, \$failReason))
+            {
+                printResult(HEADER_CONTEXT() . "$sep"."UNCLEAR Non-Nokia copyright$failReason$sep" . "$sep$lastDistributionValue$sep$fullfilename$sep$linenumtext\n");
+                $verifyFailedCount[VERI_UNCLEAR_COPYR]++;
+                return 0;
+            }
+            else
+            {
+                # Contains portions copyright
+                printResult(HEADER_CONTEXT() . "$sep"."Non-Nokia (portions Nokia) copyright$sep" . "$IGNORE$sep$lastDistributionValue$sep$fullfilename$sep$linenumtext\n");
+                return 1;
+            }
+        }
+    }
+
+    #
+    # OK, it should be Nokia copyrighted file
+    #
+
+    # Note that partial headers are manually quoted in the declaration
+    # Otherwise \Q$EPLText\E would be needed around those ones
+    # because plain text contains special chars, like .
+    printLog(LOG_DEBUG, "handleVerify testheaders: $testValueEpl,$$header_ref\n");
+
+    if ( !( ($$header_ref =~ m/$testValueEpl/s) || ($$filecontent_ref =~ m/$testValueEpl/s) ) )
+    {
+        # Header not found from header or whole file
+       if (isGeneratedHeader($header_ref) || isGeneratedHeader($filecontent_ref))
+       {
+            # OK, it is generated header
+            if ($optOutputOK)
+            {
+                printResult(HEADER_CONTEXT() . "$sep"."OK$sep" . "Generated header$sep$lastDistributionValue$sep$fullfilename$sep$linenumtext\n");
+            }
+            $verifyFailedCount[VERI_OK]++;
+            return 1;  # OK
+       }
+
+        if (($$header_ref =~ m/$testValueSfl/s) || ($$filecontent_ref =~ m/$testValueSfl/s))
+        {
+            #  Still SFL header in place
+            printResult(HEADER_CONTEXT() . "$sep"."EPL header missing (SFL header used)$sep$sep$lastDistributionValue$sep$fullfilename$sep$linenumtext\n");
+        }
+        elsif (($$header_ref =~ m/$OldNokiaPattern2/is) || ($$filecontent_ref =~ m/$OldNokiaPattern2/is))
+        {
+            printResult(HEADER_CONTEXT() . "$sep"."EPL header missing (old Nokia copyright)$sep$sep$lastDistributionValue$sep$fullfilename$sep$linenumtext\n");
+        }
+        else
+        {
+            printResult(HEADER_CONTEXT() . "$sep"."EPL header missing$sep$sep$lastDistributionValue$sep$fullfilename$sep$linenumtext\n");
+        }
+        $verifyFailedCount[VERI_MISSING_HEADER]++;
+        return 0;
+    }
+
+    # Cross header versus distribution ID
+    if ($lastDistributionValue ne "")
+    {
+        # Also other than 7 may be OK based on the config file
+        my $isSFId = &isSFDistribution($lastDistributionValue);
+        printLog(LOG_DEBUG, "DEBUG:handleVerify:Other ID OK=$isSFId\n");
+        if ( ($$filecontent_ref =~ m/$testValueEpl/s) && ($lastDistributionValue ne EPL_DISTRIBUTION_VALUE) )
+        {
+            printResult(HEADER_CONTEXT() . "$sep"."EPL header vs. distribution id ($lastDistributionValue) mismatch$sep$sep$lastDistributionValue$sep$fullfilename$sep$linenumtext\n");
+            $verifyFailedCount[VERI_ID_HEADER_MISMATCH]++;
+            return 0;
+        }
+    }
+
+    if (!checkNoMultipleLicenses($filecontent_ref, $header_ref, $commentChar, $fullfilename, $directory))
+    {
+        printResult(HEADER_CONTEXT() . "$sep"."Multiple licenses$sep$sep$sep$fullfilename$sep" ."1\n");
+        printLog(LOG_ERROR, "Multiple licenses:".  $fullfilename . "\n");
+        $verifyFailedCount[VERI_MULTIPLE_LICENSES]++;
+        return 0; # Failed
+    }
+
+
+    # We should have proper header in place 
+
+    printLog(LOG_DEBUG, "handleVerify: $$filecontent_ref\n");
+    # Check New Nokia copyright pattern (added one sentence to the old one)
+    if (! (($$header_ref =~ m/$NewNokiaPattern/s) || ($$filecontent_ref =~ m/$NewNokiaPattern/s)) )
+    {
+        printResult(HEADER_CONTEXT() . "$sep"."Proper Nokia copyright statement missing$sep$sep$lastDistributionValue$sep$fullfilename$sep$linenumtext\n");
+        $verifyFailedCount[VERI_PROPER_COPYRIGHT]++;
+        return 0; # Failed
+    }
+
+    if ($optOutputOK)
+    {
+        printResult(HEADER_CONTEXT() . "$sep"."OK$sep" . "OK$sep$lastDistributionValue$sep$fullfilename$sep$linenumtext\n");
+    }
+    $verifyFailedCount[VERI_OK]++;
+
+    return 1;
+
+}
+
+
+
+##################################################
+# Verify changes for LGPL headers
+##################################################
+sub handleVerifyLgpl
+{
+    my $filecontent_ref = shift;
+    my $header_ref = shift;
+    my $commentChar = shift;
+    my $fullfilename = shift;
+    my $directory = shift;
+
+	my $testValueLgpl = "";
+    my $FromLgplText = &partialHeaderOf(LGPL_LICENSE,$commentChar, \$testValueLgpl);
+
+    if ($lastDistributionValue eq "")
+    {
+        # Distribution file may be empty if giving single file as input
+        # Read it
+        $lastDistributionValue = readDistributionValue($directory);
+    }
+
+    printLog(LOG_DEBUG, "handleVerifyLgpl $fullfilename, $$header_ref\n");
+
+    # Note that partial headers are manually quoted in the declaration
+    # Otherwise \Q$SFLText\E and \Q$EPLText\E would be needed around those ones
+    # because plain text contains special chars, like .
+    printLog(LOG_DEBUG, "handleVerifyLgpl testheaders: $testValueLgpl,$$header_ref\n");
+
+    if ( !( ($$header_ref =~ m/$testValueLgpl/s) || ($$filecontent_ref =~ m/$testValueLgpl/s) )  )
+    {
+        # Header not found from header or whole file
+       if (isGeneratedHeader($header_ref) || isGeneratedHeader($filecontent_ref))
+       {
+            # OK, it is generated header
+            if ($optOutputOK)
+            {
+                printResult(HEADER_CONTEXT() . "$sep"."OK$sep" . "Generated header$sep$lastDistributionValue$sep$fullfilename$sep$linenumtext\n");
+            }
+            $verifyFailedCount[VERI_OK]++;
+            return 1;  # OK
+       }
+
+        my $comment = getCommentText($lastDistributionValue, 0, "0,3,7", $fullfilename);
+        if (($$header_ref =~ m/$OldNokiaPattern2/is) || ($$filecontent_ref =~ m/$OldNokiaPattern2/is))
+        {
+            printResult(HEADER_CONTEXT() . "$sep"."LGPL header missing (old Nokia copyright)$sep$comment$sep$lastDistributionValue$sep$fullfilename$sep$linenumtext\n");
+        }
+        else
+        {
+            printResult(HEADER_CONTEXT() . "$sep"."LGPL header missing$sep$comment$sep$lastDistributionValue$sep$fullfilename$sep$linenumtext\n");
+        }
+        $verifyFailedCount[VERI_MISSING_HEADER]++;
+        return 0;
+    }
+
+    if (!checkNoMultipleLicenses($filecontent_ref, $header_ref, $commentChar, $fullfilename, $directory))
+    {
+        printResult(HEADER_CONTEXT() . "$sep"."Multiple licenses$sep$sep$sep$fullfilename$sep" ."1\n");
+        printLog(LOG_ERROR, "Multiple licenses:".  $fullfilename . "\n");
+        $verifyFailedCount[VERI_MULTIPLE_LICENSES]++;
+        return 0; # Failed
+    }
+
+
+    if ($optOutputOK)
+    {
+        printResult(HEADER_CONTEXT() . "$sep"."OK$sep" . "OK$sep$lastDistributionValue$sep$fullfilename$sep$linenumtext\n");
+    }
+
+    $verifyFailedCount[VERI_OK]++;
+
+    return 1;
+
+}
+
+
+##################################################
+# Test if header is already OK
+# NOTE ! If header need to be converted to a new format, the 
+#        check must return FALSE !!!
+##################################################
+sub checkHeader
+{
+    my $filecontent_ref = shift;
+    my $header_ref = shift;
+    my $commentChar = shift;
+    my $fullfilename = shift;
+    my $directory = shift;
+    my $req_license_ref = shift;  # in/out !!!
+
+	my $testValueSfl = "";
+	my $testValueEpl = "";
+	my $testValueLgpl = "";
+
+    my $FromSFLText = &partialHeaderOf(SFL_LICENSE,$commentChar, \$testValueSfl);
+    my $FromEPLText = &partialHeaderOf(EPL_LICENSE,$commentChar, \$testValueEpl);
+    my $FromLGPLText = &partialHeaderOf(LGPL_LICENSE,$commentChar, \$testValueLgpl);
+
+    # Note that partial headers are manually quoted in the declaration
+    # Otherwise \Q$SFLText\E and \Q$EPLText\E would be needed around those ones
+    # because plain text contains special chars, like .
+
+    my $retLicense = SFL_LICENSE; # default
+    my $testValue = $testValueSfl;
+
+    if ($$req_license_ref == EPL_LICENSE)
+    {
+        $testValue = $testValueEpl;
+        $retLicense = EPL_LICENSE;
+    }
+    elsif ($$req_license_ref == LGPL_LICENSE)
+    {
+        $testValue = $testValueLgpl;
+        $retLicense = LGPL_LICENSE;
+    }
+
+    my $ret = 0;
+    $ret = ($$header_ref =~ m/$testValue/s);
+    if (!$ret)
+    {
+        # Check the rest of file
+        $ret = ($$filecontent_ref =~ m/$testValue/s);
+    }
+
+    printLog(LOG_DEBUG, "checkHeader return=$ret\n");
+
+    if ($ret)
+    {
+        $$req_license_ref = $retLicense;
+    }   
+
+    return $ret;
+}
+
+
+##################################################
+# Test if file does not contain multiple licenses
+# Returns 0 if test failed
+##################################################
+sub checkNoMultipleLicenses
+{
+    my $filecontent_ref = shift;
+    my $header_ref = shift;
+    my $commentChar = shift;
+    my $fullfilename = shift;
+    my $directory = shift;
+
+    my $usedLicense = SFL_LICENSE;
+    my $licenseCnt = 0;
+    if (checkHeader($filecontent_ref, $header_ref, $commentChar, $fullfilename, $directory, \$usedLicense))
+    {
+        printLog(LOG_DEBUG, "checkNoMultipleLicenses SFL: $fullfilename\n");
+        $licenseCnt++;
+    }
+
+    $usedLicense = EPL_LICENSE;
+    if (checkHeader($filecontent_ref, $header_ref, $commentChar, $fullfilename, $directory, \$usedLicense))
+    {
+        printLog(LOG_DEBUG, "checkNoMultipleLicenses EPL: $fullfilename\n");
+        $licenseCnt++;
+    }
+
+    $usedLicense = LGPL_LICENSE;
+    if (checkHeader($filecontent_ref, $header_ref, $commentChar, $fullfilename, $directory, \$usedLicense))
+    {
+        printLog(LOG_DEBUG, "checkNoMultipleLicenses LGPL: $fullfilename\n");
+        $licenseCnt++;
+    }
+
+    if ($licenseCnt > 1)
+    {
+        return 0; # check failed
+    }
+    return 1;
+}
+
+##################################################
+# Change distribution value
+# Can also be called with empty file content
+##################################################
+sub handleDistributionValue
+{
+    my $filecontent_ref = shift;
+    my $filename = shift;
+    my $content = $$filecontent_ref;
+
+    if ($optVerify)
+    {
+        # Ignored
+        return LICENSE_NONE;
+    }
+
+    $content =~ s/\n//g;  # Remove all new-lines
+    $content =~ s/^\s+//g;  # trim left
+    $content =~ s/\s+$//g;  # trim right
+
+    if ($content ne "" && $content ne ZERO_DISTRIBUTION_VALUE)
+    {
+        if ($optEpl && ($content eq SFL_DISTRIBUTION_VALUE ))
+        {
+            # Allow  switching SFL to EPL
+            $$filecontent_ref = EPL_DISTRIBUTION_VALUE; 
+            printLog(LOG_INFO, "Distribution value changed from $content to $$filecontent_ref: $filename\n");        
+            return LICENSE_CHANGED;
+        }
+        else
+        {
+           # Otheriwise do not touch non-zero files ! (agreed with build team)
+           $ignoreCount++;
+           return LICENSE_NONE;
+       }
+    }
+
+    if ($optOem)
+    {
+        # Leave existing (or missing) value as it was
+        return LICENSE_NONE;
+    }
+    elsif ($optEpl)
+    {
+        $$filecontent_ref = EPL_DISTRIBUTION_VALUE; 
+        printLog(LOG_INFO, "Distribution value changed from $content to $$filecontent_ref: $filename\n"); 
+        return LICENSE_CHANGED;
+    }
+    else  # SFL
+    {
+        $$filecontent_ref = SFL_DISTRIBUTION_VALUE; 
+        printLog(LOG_INFO, "Distribution value changed from $content to $$filecontent_ref: $filename\n");        
+        return LICENSE_CHANGED;
+    }
+
+    return LICENSE_NONE;
+
+}
+
+##################################################
+# Select proper 
+##################################################
+sub licenceIdForOption
+{
+    if ($optEpl)
+    {
+        return EPL_LICENSE;
+    }
+    elsif ($optLgpl)
+    {
+        return LGPL_LICENSE;
+    }
+    else  # Must be
+    {
+        return SFL_LICENSE;
+    }
+}
+
+
+##################################################
+# Select proper header
+##################################################
+sub headerOf
+{
+    my $style = shift;
+
+    if ($style < 0 || $style > 1)
+    {
+        printLog(LOG_ALWAYS, "INTERNAL ERROR: Header index out of bounds:$style. Exiting.\n");
+        exit 1;
+    }
+
+    my $ref;
+    if ($optEpl)
+    {
+        $ref = $EplHeaders[$style];
+    }
+    elsif ($optLgpl)
+    {
+        $ref = $LgplHeaders[$style];
+    }
+    else  # SFL
+    {
+        $ref = $SflHeaders[$style];
+    }
+
+    # Return the actual value
+    return $$ref;
+}
+
+##################################################
+# Select proper partial header
+##################################################
+sub partialHeaderOf
+{
+    my $license = shift;
+    my $commentChar = shift;
+    my $testValue_ref = shift;
+
+    my $ref;
+    my $ref2;
+    if ($license eq EPL_LICENSE)
+    {
+        $ref = $EplHeaders[2];
+        $ref2 = $EplHeaders[3]; 
+    }
+    elsif ($license eq S60_LICENSE)
+    {
+        $ref = $S60Headers[2];
+        $ref2 = $S60Headers[3];
+    }
+    elsif ($license eq LGPL_LICENSE)
+    {
+        $ref = $LgplHeaders[2];
+        $ref2 = $LgplHeaders[3];
+    }
+    elsif ($license eq SFL_LICENSE)
+    {
+        # SFL License
+        $ref = $SflHeaders[2];
+        $ref2 = $SflHeaders[3];  # return value 
+    }
+    else
+    {
+        printLog(LOG_ALWAYS, "INTERNAL ERROR: Invalid license parameter :$license. Exiting.\n");
+        exit 1;
+    }
+
+    # Switch to proper comment char
+    my $ret = $$ref;
+    $ret =~ s/$CC/$commentChar/g;  # Replace the proper comment starter character
+
+    # Return values
+    $$testValue_ref = $$ref2;
+    return $ret;
+}
+
+
+##################################################
+# Print result line
+##################################################
+sub normalizeCppComment
+{
+    my $header_regexp2 = shift;
+    my $filecontent = shift;
+    my $oldheader_ref = shift;  # in/out
+
+
+    # Normalize the C++ header syntax back to C++ in the file content
+    # in order to standardize stuff later on
+    $$oldheader_ref =~ s/(\/){3,}/\/\//g;  # replace ///+ back to //
+    $$oldheader_ref =~ s/\/\//*/g;  # Replace now // with *
+    $$oldheader_ref = "/*\n" . $$oldheader_ref . "*/\n";  # Add /* and */ markers
+
+    # Created saved modified file content into memory
+    # This is the best way to do this.
+    my $ret = $filecontent;
+    $ret =~ s/$header_regexp2/$$oldheader_ref/;   # Note /s not used by purpose !
+    return $ret;
+}
+
+
+
+##################################################
+# Print result line
+##################################################
+sub printResult
+{
+    my $text = shift;
+
+    if ($outputfile)
+    {
+        print OUTPUT $text;
+    }
+    else
+    {
+        print $text;
+    }
+
+    printLog(LOG_DEBUG(), $text);
+
+}
+
+##################################################
+# Print log line
+##################################################
+sub printLog
+{
+    my $loglevel = shift;
+    my $text = shift;
+
+    if ($loglevel > $optLogLevel) 
+    {
+        return;  # No logging
+    }
+    if ($logFile) 
+    {
+        print LOG $LOGTEXTS[$loglevel] . $text;
+    }
+
+    return 0;
+}
+
+
+##################################################
+# Print log line
+##################################################
+sub printLogStatisticNumber
+{
+    my $number = shift;
+    my $loglevel = shift;  
+    my $text = shift;  # Should contains %d where to put the number
+
+    if ($number == 0)
+    {
+        return;  # No logging
+    }
+
+    if ($text =~ m/\%d/)
+    {
+        $text =~ s/\%d/$number/;
+    }
+    else 
+    {
+        # Add number to the beginning of text
+        $text = $number . " " . $text;
+    }   
+   
+    if ($loglevel > $optLogLevel) 
+    {
+        return;  # No logging
+    }
+    if ($logFile) 
+    {
+        print LOG $LOGTEXTS[$loglevel] . $text;
+    }
+
+    return 0;
+}
+
+
+##################################################
+# Read the content of old output
+##################################################
+sub readOldOutput
+{
+    my($filename) = shift;
+    my $fh = new FileHandle "<$filename";
+    if (!defined($fh))
+    {
+        printLog(LOG_ERROR, "Could not open file $filename for read\n");
+        return;
+    }
+
+    my  @lines = <$fh>;
+    my $line;
+    foreach $line (@lines)
+    {
+       my (@parts) = split(/\,/,$line);  # Split line with "," separator
+       if ($parts[2] =~ m/$IGNORE_MAN/i)
+       {
+            my $fullfilename = lc($parts[4]);
+            $fullfilename =~ s/\\/\//g;  # Standardize name 
+            $manualIgnoreFileHash{$fullfilename} = "1" ;  # Just some value
+            printLog(LOG_DEBUG, "Manually ignoring file:$fullfilename\n");
+       }
+    }
+
+    close ($fh);
+}
+
+##################################################
+# Read configuation file which has  the format:
+# sf-update-licence-header-config-1.0
+##################################################
+sub readConfig
+{
+    my ($fname) = @_;
+
+    open(IN,$fname) || die "Unable to open file: \"$fname\" for reading.";
+    LINE:
+    while(<IN>) 
+    {
+        chomp;
+        # tr/A-Z/a-z/;  # Do not lowercase pattern
+        my $line = $_;
+        $line =~ s/^\s+//;  # trim left
+        $line =~ s/\s+$//;  # trim right
+        
+        next LINE if length($line) == 0; # # Skip empty lines
+        next LINE if ($line =~ /^\#.*/); # Skip comments;
+
+        if ($line =~ /^sf-update-licence-header-config.*/i) 
+        {
+            my ($tmp1, $tmp2) = split(/sf-update-licence-header-config-/,$line);  # Get version
+            $configVersion = $tmp2;
+        }
+        elsif ($line =~ /^sf-distribution-id/i) 
+        {
+            my ($tmp, @parts) = split(/[\s\t]+/,$line); # space as separator
+            my $cnt = @parts;
+            push(@sfDistributionIdArray, @parts);
+            my $cnt = @sfDistributionIdArray;
+            printLog(LOG_DEBUG, "readConfig:sfDistributionIdArray count:$cnt\n");
+        }
+        elsif ($line =~ /^sf-generated-header/i) 
+        {
+            my ($tmp, @parts) = split(/[\s\t]+/,$line); # space as separator
+            my $cnt = @parts;
+            push(@sfGeneratedPatternArray, @parts);
+            my $cnt = @sfGeneratedPatternArray;
+            printLog(LOG_DEBUG, "readConfig:sfGeneratedPatternArray count:$cnt\n");
+        }
+    }
+
+    # Pre-compile here the source line pattern
+    close (IN);
+}
+
+
+##################################################
+# Test  ID is under SF distribution
+##################################################
+sub isSFDistribution
+{
+    my $id = shift;
+
+    if (($id == SFL_DISTRIBUTION_VALUE) || ($id == EPL_DISTRIBUTION_VALUE))
+    {
+        # Implicit case
+        return 1;
+    }
+
+    my $otherOkId = grep { $_ eq $id } @sfDistributionIdArray;  # Use exact match
+    return $otherOkId;
+}
+
+##################################################
+# Test header contains generated file pattern
+##################################################
+sub isGeneratedHeader
+{
+    my $header_ref = shift;
+
+    my $count = grep { $$header_ref =~ m/$_/is } @sfGeneratedPatternArray;
+    return $count;
+}
+
+
+##################################################
+#                   MAIN
+##################################################
+
+GetOptions(
+	'h|help' => \$help,     #print help message
+	'm|modify' => \$optModify,   #Allow modifications
+	'c|create' => \$optCreate,   #Create missing file
+	'output:s' => \$outputfile,   #Output (result) file
+	'ignorefile:s' => \$ignorefilepattern,   #Ignore file pattern
+	'oldoutput:s' => \$oldOutputFile,   #Old output file
+    'log:s' => \$logFile,         # Log file
+    'verbose:i' => \$optLogLevel, # Logging level
+    'epl' => \$optEpl,  # Switch file header to EPL one
+    'lgpl' => \$optLgpl,  # Switch file header LGPL v2.1
+    'oem' => \$optOem,  # Switch back S60 header for OEM release. 
+    'eula' => \$optOem,  # Switch back S60 header for EULA (End-User License Agreement) release. Same as OEM
+    'append' => \$optAppend,  # Append result files
+    'verify' => \$optVerify,  # Verifies files has correct header
+    'configfile:s' => \$configFile,
+    'description!' => \$optDescription,  # output missing description
+    'okoutput!' => \$optOutputOK  # output also OK entries
+	);
+
+die $usage if $#ARGV<0;
+die $usage if $help;
+
+if ($logFile) 
+{
+    my $openmode = ">" . ($optAppend ? ">" : "");
+    open (LOG, "$openmode$logFile") || die "Couldn't open $openmode$logFile\n";  # Can not call printLog
+    LOG->autoflush(1);  # Force flush
+}
+
+printLog(LOG_INFO, "========================\n");
+
+if ($oldOutputFile && $optVerify)
+{
+    readOldOutput($oldOutputFile);
+}
+
+if (!$configFile) 
+{
+    $configFile = "$Bin/SFUpdateLicenceHeader.cfg";
+}
+
+if ($configFile && -e $configFile) 
+{
+    &readConfig($configFile);
+}
+
+if (!$ignorefilepattern)
+{
+    # Set decent default value
+    if ($optOem)
+    {
+        # Scan through internal stuff all source dirs just in case
+        $ignorefilepattern = "(_ccmwaid\.inf|\.svn)";
+    }
+    else
+    {
+        $ignorefilepattern = "(abld\.bat|_ccmwaid\.inf|\.svn|/docs/|/internal/|/doc/)";
+    }
+}
+
+if ($optEpl)
+{
+    printLog(LOG_INFO, "Option -epl used\n");
+}
+if ($optLgpl)
+{
+    printLog(LOG_INFO, "Option -lgpl used\n");
+}
+if ($optOem)
+{
+    printLog(LOG_INFO, "Option -oem used\n");
+    # Modify ignore to contain also internal dirs just in case
+}
+if ($optModify)
+{
+    printLog(LOG_INFO, "Option -modify used\n");
+}
+if ($optVerify)
+{
+    printLog(LOG_INFO, "Option -verify used\n");
+}
+if ($optCreate)
+{
+    printLog(LOG_INFO, "Option -create used\n");
+}
+
+if ($ignorefilepattern)
+{
+    printLog(LOG_INFO, "Option -ignorefile has value: $ignorefilepattern\n");
+}
+
+my $startTime = time;
+
+if ($outputfile) 
+{
+    my $openmode = ">" . ($optAppend ? ">" : "");
+    open (OUTPUT, "$openmode$outputfile") || die "Couldn't open $outputfile\n";
+    OUTPUT->autoflush(1);  # Force flush
+}
+
+if (! -e $ARGV[0] )
+{
+    printLog(LOG_ERROR, "$ARGV[0] not found\n");
+    if ($logFile)
+    {
+        close LOG; 
+    }
+    exit(1);
+}
+
+printLog(LOG_INFO,"SFUpdateLicenceHeader.pl version " . VERSION . " statistics:\n");
+printLog(LOG_INFO, "Directory/file=@ARGV\n");
+
+#
+# Process files in the given directory recursively
+#
+# NOTE : "no_chdir" option not used --> find changes the current working directory 
+find({ wanted => \&process_file, postprocess => \&postprocess, preprocess => \&preprocess },  @ARGV);
+
+if ($outputfile)
+{
+    close OUTPUT;
+}
+
+my $elapsedTime = time - $startTime;
+
+printLogStatisticNumber($fileCount, LOG_INFO, "%d files checked\n") ;
+if ($optModify)
+{
+    printLogStatisticNumber($modifiedFileCount, LOG_INFO, "%d files modified \n") ;
+}
+else
+{
+    printLogStatisticNumber($willModifiedFileCount, LOG_INFO, "%d will be modified \n") ;
+}
+printLogStatisticNumber($ignoreCount, LOG_INFO, "%d files ignored.\n") ;
+printLogStatisticNumber($unrecogCount, LOG_INFO, "%d files not recognized.\n") ;
+if ($optVerify)
+{
+    for (my $i=0; $i < @verifyFailedCountMsgs; $i++)
+    {
+       printLogStatisticNumber($verifyFailedCount[$i], LOG_INFO, "Verify statistics:$verifyFailedCountMsgs[$i]=%d.\n") ;
+    }
+}
+elsif (!$optOem)
+{
+    printLogStatisticNumber($noDescrcount, LOG_INFO, "%d files has no Description.\n") ;
+    printLogStatisticNumber($NokiaCopyrCount, LOG_INFO, "%d files has Nokia copyright.\n") ;
+    printLogStatisticNumber($ExternalToNokiaCopyrCount, LOG_INFO, "%d files moved also to Nokia.\n") ;
+    printLogStatisticNumber($otherCopyrCount, LOG_INFO, "%d files has non-nokia copyright.\n") ;
+    printLogStatisticNumber($NoCopyrCount, LOG_INFO, "%d files has no copyright.\n") ;
+    printLogStatisticNumber($UnclearCopyrCount, LOG_INFO, "%d files has UNCLEAR copyright.\n") ;
+    printLogStatisticNumber($createCount, LOG_INFO, "%d new files.\n") ;
+    if ($optEpl)
+    {
+        printLogStatisticNumber($SflToEplChanges, LOG_INFO, "%d files changes from SFL to EPL license.\n") ;
+    }
+    else
+    {
+        printLogStatisticNumber($EplToSflChanges, LOG_INFO, "%d files changes from SFL to EPL license.\n") ;
+    }
+}
+else
+{
+    printLogStatisticNumber($SflToS60Changes, LOG_INFO, "%d files changes from SFL to S60 license.\n") ;
+    # printLog($EplToS60Changes, LOG_INFO, "%d files changes from EPL to S60 license.\n") ;
+    printLogStatisticNumber($LicenseChangeErrors, LOG_INFO, "%d errors upon license change.\n") ;
+}
+
+printLog(LOG_INFO,"Time elapsed $elapsedTime.\n") ;
+
+if ($logFile) 
+{
+    close LOG;
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/SetP4Client.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,79 @@
+# Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Script to set a P$ Client
+# 
+#
+
+use strict;
+use FindBin;		# for FindBin::Bin
+use Getopt::Long;
+
+use lib $FindBin::Bin;
+
+use SetP4Client;
+
+# Process the commandline
+my ($iCodeline, $iDrive, $iType) = ProcessCommandLine();
+
+# Sync the source
+&SetP4Client::Start( $iCodeline, $iDrive, $iType);
+
+# ProcessCommandLine
+#
+# Inputs
+#
+# Outputs
+#
+# Description
+# This function processes the commandline
+
+sub ProcessCommandLine {
+  my ($iHelp, $iCodeline, $iDrive, $iType);
+  GetOptions('h' => \$iHelp, 'l=s' => \$iCodeline, 'd=s' => \$iDrive, 't=s' => \$iType);
+
+  if (($iHelp) || (!defined $iCodeline) || (!defined $iDrive) || (!defined $iType))
+  {
+    Usage();
+  } 
+  else 
+  {
+    return($iCodeline, $iDrive, $iType);
+  }
+}
+
+# Usage
+#
+# Output Usage Information.
+#
+
+sub Usage {
+  print <<USAGE_EOF;
+
+	Usage: SetP4Client.pl [options]
+
+	options:
+
+	-h  help
+	-l	Code line to create the client
+	-d	Perforce Root
+	-t	Type of Build
+
+	Code line must be entered without white spaces or new line 
+	characters where view is separated by +
+	The word CLIENTNAME is automatically replaced with the correct clientname
+    e.g. //EPOC/Release/Generic/7.0/...+//CLIENTNAME/...
+
+USAGE_EOF
+	exit 1;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/SetP4Client.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,150 @@
+# Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+package SetP4Client;
+
+use strict;
+use Carp;
+use Sys::Hostname;
+
+# Start
+#
+# Inputs
+# $iClientName (Name of the client to create)
+# $iCodeline (Codeline root)
+# $iUser
+# $iDrive
+# $iHost
+# $iType
+#
+# Outputs
+#
+# Description
+#
+
+sub Start
+{
+	my ( $iCodeline, $iDrive, $iType) = @_;
+	my ($iUser, $iHost, $iClientname);
+
+	$iUser = &get_user();
+	($iHost) = &hostname() =~ /(\S+?)\./;
+  if ($iHost eq "")
+  {
+    # Not a fully qualified Hostname, use use raw name
+    $iHost =  &hostname();
+  }
+  print "Hostname is $iHost\n";
+  $iClientname = $iHost."_source_".$iType;
+
+	#processing codeline
+	$iCodeline =~ s?//CLIENTNAME/?//$iClientname/?g;
+	my (@iSplit_codeline) = split /\+/, $iCodeline;
+	for (my ($n)=1; $n <= $#iSplit_codeline; $n=$n+2)
+	{
+		$iSplit_codeline[$n] .= "\n";
+	} 
+
+	#Flushes and deletes old client, then creates new client and sets it as a default
+	&set_view($iClientname);
+	#Sets up client specification
+	&set_client($iHost, $iClientname, $iUser, $iDrive, @iSplit_codeline);
+
+
+}
+
+# Start
+#
+# Inputs
+#
+# Outputs
+# $iUser
+#
+# Description
+# This Gets the user name
+sub get_user
+{
+  my ($iLine, $iUser);  
+  
+	open USER, "p4 user -o |" or die "Can't read user";
+	while ($iLine=<USER>)
+	{
+		if ($iLine =~ /^User:\s+(\S+)/)
+		{
+		  $iUser = $1; 
+		}
+	}
+	close USER;
+	return ($iUser);
+}
+
+sub set_client
+{
+  my ($iHost, $iClientname, $iUser, $iDrive, @iSplit_codeline) = @_;  
+  
+	open CLIENT, "| p4 client -i" or die "Can't create Perforce client";
+	
+	print CLIENT<<CLIENTSPEC_EOF;
+# A Perforce Client Specification.
+#
+#  Client:      The client name.
+#  Update:      The date this specification was last modified.
+#  Access:      The date this client was last used in any way.
+#  Owner:       The user who created this client.
+#  Host:        If set, restricts access to the named host.
+#  Description: A short description of the client (optional).
+#  Root:        The base directory of the client workspace.
+#  Options:     Client options:
+#                      [no]allwrite [no]clobber [no]compress
+#                      [un]locked [no]modtime [no]rmdir
+#  LineEnd:     Text file line endings on client: local/unix/mac/win/share.
+#  View:        Lines to map depot files into the client workspace.
+#
+# Use 'p4 help client' to see more about client views and options.
+
+Client:  $iClientname
+
+Owner:	$iUser 
+
+Host:	$iHost
+
+Description:
+  DO NOT USE THIS CLIENT UNLESS YOU ARE PART OF THE "BUILD" TEAM. 
+  This client is generated automatically when GetSource.pl is 
+  called as a part of the build process. If client spec
+  is changed manually it will not take any effect as the
+  client will be deleted and then regenerated during
+  build. 
+  
+Root:	$iDrive
+
+Options:	noallwrite noclobber nocompress crlf unlocked nomodtime normdir
+
+View:
+  @iSplit_codeline
+
+CLIENTSPEC_EOF
+
+	close CLIENT;  # Terminate input, and wait for command to finish..
+}
+
+
+sub set_view()
+{
+	my ($iClientname) = @_;	
+	print `p4 client -d $iClientname 2>&1`;	
+	print `p4 set p4client=$iClientname 2>&1`;
+}
+1;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/SweepStart.bat	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,2 @@
+net start sweepsrv.sys
+net start sweepupdate
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/SweepStop.bat	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,3 @@
+net stop sweepsrv.sys
+net stop sweepupdate
+net stop sweepnet
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/abldcache.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,175 @@
+#!perl
+
+# Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+use File::Path;
+use Data::Dumper;
+
+$Data::Dumper::Deepcopy = 1;
+
+#-----------------GLOBAL VARIABLES------------------------#
+
+my $command;
+my $source;
+my $target;
+my $component;
+my $flag = 0;
+my $plats = 0;
+
+my @temp;
+my %output;
+my %project_platforms;
+my @components;
+
+my $platform;
+
+#--------------------------------------------------------#
+
+#Check that correct number of arguments were specified by the user
+#If not then print out Usage instructions to the command window	
+Usage() if (@ARGV!=1);
+
+$platform = $ARGV[0];
+
+my %logfiles = (
+		"GT2.log" => "M:\\logs\\$platform\\GT2.log",
+		"TV2.log" => "M:\\logs\\$platform\\TV2.log",
+		"JAVA2.log" => "M:\\logs\\$platform\\java2.log",
+	       );
+
+foreach my $file (keys %logfiles)
+{
+	$plats = 0;
+	
+	open(LOGFILE, $logfiles{$file}) || warn "Warning: can't open $logfiles{$file} : $!";
+
+	while(my $line = <LOGFILE>)
+	{
+		my $exists = 0;
+		if($line =~ m%^=== Stage=.*\s==\s(.*)\n%i)
+		{
+			$component = "$1 ";
+		}
+	   
+		if($line =~ m%-- abld -what\s(.*)%i)
+		{
+			foreach my $entry (@components)
+			{
+				$exists = 1 if($entry eq $component);
+			}
+		
+			push @components, $component if ($exists == 0);
+		
+			$command = "$1 -what";
+			$flag = 1;
+			@temp =();
+		}
+	
+		if(($line =~ m%Chdir (M:)?(.*)%i)&&($flag == 1))
+		{
+			$source = "$2 ";
+			$target = $component.$source.$command;
+		}
+	
+		if(($line =~ m%^(\\EPOC32\\.*)\n%i)&&($flag == 1))
+		{
+			push @temp, $1;
+		}
+		# Match ..\..\..\..\..\..\..\..\..\..\epoc32
+		if(($line =~ m%^((\.\.\\){1,}EPOC32\\.*)\n%i)&&($flag == 1))
+		{
+			push @temp, $1;
+		}
+	
+		if(($line =~ m%^\+\+\+ HiRes End%i)&&($flag == 1))
+		{
+			$flag = 0;
+			my @files = @temp;
+			$output{$target} = \@files;
+		}
+	
+		if($line =~ m%^project platforms%i)
+		{
+			$plats = 1;
+			next
+		}
+	
+		if($plats == 1)
+		{
+			$plats = 0;
+			$line =~ s/^\s+//;
+			$line =~ s/\n$//;
+			my @platforms = split(/ /, $line);
+			$project_platforms{$component} = \@platforms;
+		}
+	}
+}
+
+foreach my $comp (@components)
+{
+	$comp =~ s/\s$//;
+	my %abldcache;
+	my %self;
+	my $path;
+	
+	foreach my $hashelement (keys %output)
+	{
+		$hashelement =~ /(.*)\s(\\src.*?)\s/;
+		my $temp_element = $1;
+		if ($temp_element eq $comp)
+		{
+			$path = $2;
+			$path =~ s/\\src/src/;
+			my $newkey = $hashelement;
+			$newkey =~ s/.*\s\\src/\\src/;
+			$newkey = "'".$newkey."'";
+			$abldcache{$newkey} = $output{$hashelement};
+			$abldcache{"'plats'"} = $project_platforms{$comp." "};
+		}
+	}
+	
+	$self{abldcache} = \%abldcache;
+	
+	mkpath ("M:\\abldcache\\$path", 0, 0744);
+		
+	open OUTFILE, "> M:\\abldcache\\$path\\cache"
+		or die "ERROR: Can't open M:\\abldcache\\$path\\cache for output\n$!";
+			
+	print OUTFILE Data::Dumper->Dump(per_key('$self->{abldcache}->', $self{abldcache})), "\n";
+		
+	close OUTFILE;
+}
+
+sub per_key
+{
+	my($name, $href) = @_;
+	my @hkeys = keys %$href;
+	([@$href{@hkeys}], [map {"$name\{$_}"} @hkeys])
+}
+	
+
+sub Usage
+	{
+	 print <<USAGE_EOF;
+	 
+USAGE
+----------
+perl abldcache <platform>
+
+USAGE_EOF
+
+	exit 1;
+	}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/bfcClient.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,190 @@
+# Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+#!/usr/bin/perl -w
+use strict;
+use Getopt::Long;
+use HTTP::Date;
+
+my $JOBS_PATH = "autobfc\\";
+my $JOB_QUEUE = 'jobqueue.lst';
+my $CURR_JOB = 'currentjob.bat';
+my $QUIT_BFC = 'quit.txt';
+
+my $ENV_BFCPOOL = "AutoBFCServerPool";
+
+
+SendBFC( ProcessCommandLine() );
+
+# SendBFC
+# Send a BFC test request to an active Auto BFC server
+# 
+# Return 0 if request was successfully added to the BFC queue.
+#
+# N.B: Since this script is invoked during the system build, WARNING/ERROR
+# messages must NOT be printed out in order to avoid affecting the BRAG status.
+#
+
+sub SendBFC
+{
+	my ($iProduct, $iBuild, $iCodeline, $iServerPool, $iARMVer, $iMWVer, $iWait, $iExtraArg, $iQuit, $iSubType) = @_;
+
+	# Get server list from ENV or from command line
+	$iServerPool = $ENV{$ENV_BFCPOOL} if (!defined($iServerPool));
+
+	my $server = FindAvailableServer(split /\#/, $iServerPool);
+
+	if (!$server)
+	{
+		print "Could not find BFC server \n";
+		return 1;
+	}
+
+	my $jobQueue = "\\\\$server\\".$JOBS_PATH.$JOB_QUEUE;
+
+	# Set basic release info
+	my $request = "Product=$iProduct,SnapshotNumber=$iBuild,CurrentCodeline=$iCodeline";
+
+	# Set timeout
+	if (defined($iWait) && !($iExtraArg =~ /-o/))
+	{
+		my $nowStr = HTTP::Date::time2isoz(time() + $iWait*60*60);
+		$request .= ",BFCTimeout=$nowStr";
+	}
+
+	$request .= ",ARMRVCTBLD=$iARMVer" if ($iARMVer);
+	$request .= ",MWVER=$iMWVer" if ($iMWVer);
+
+	$request .= ",QMAction=$iQuit" if ($iQuit);
+
+	# Get BuildSubType from ENV or from command line, if specified.
+	$iSubType = $ENV{'BuildSubType'} unless ($iSubType);
+	$request .= ",BuildSubType=$iSubType" if ($iSubType);
+
+	# Add extra arguments at the end
+	$request .= ",BFCCommand=$iExtraArg" if ($iExtraArg);
+
+	# Add the request to the server queue
+	open FILE, ">> $jobQueue" or die "Can't open $jobQueue\n$!\n";
+	print FILE "$request \n";
+	close FILE;
+
+	print "Added request: $request\nto $server\n";
+	return 0;
+}
+
+# FindAvailableServer
+# Scan the server list and find an available AutoBFC server.
+# 
+# Return the first bfc server with no jobs or the bfc server with
+# the least jobs on the queue.
+#
+sub FindAvailableServer
+{
+	my @servers = @_;
+
+	my %bestServer;
+	foreach my $server (@servers)
+	{
+		# Check autobfc shared dir.
+		my $jobsPath = "\\\\$server\\".$JOBS_PATH;
+		next if !(-d $jobsPath);
+
+		# This is a valid server.
+		# Check the job list.
+		my $jobQueue = $jobsPath.$JOB_QUEUE;
+		my $currentJob = $jobsPath.$CURR_JOB;
+		push my @jobs, "current"  if (-e $currentJob);
+		if (open (FH1, $jobQueue))
+		{
+			push @jobs, <FH1>;
+			close FH1;
+		}
+		%bestServer = ('Server' => $server, 'Jobs' => scalar @jobs) if (!exists($bestServer{'Server'}) || (scalar @jobs < $bestServer{'Jobs'}));
+		last if ($bestServer{'Jobs'} == 0);
+	}
+	
+	return $bestServer{'Server'}; 
+}
+
+
+# ProcessCommandLine
+#
+
+sub ProcessCommandLine
+{
+  my ($iHelp);
+  my ($iProduct, $iBuild, $iCodeline, $iServerPool, $iARMVer, $iMWVer, $iWait, $iExtraArg, $iQuit, $iSubType);
+
+  my $ret = GetOptions('h' => \$iHelp,
+                       "product=s" => \$iProduct,
+                       "build=s" => \$iBuild,
+		       "codeline=s" => \$iCodeline,
+                       "server=s" => \$iServerPool,
+                       "arm=s" => \$iARMVer,
+                       "mw=s" => \$iMWVer,
+                       "wait=i" => \$iWait,
+                       "reboot" => \$iQuit,
+		       "type=s" => \$iSubType);
+
+  $iExtraArg = join(' ',  @ARGV);
+
+  if ((!$ret) || ($iHelp) || (!defined $iProduct) || (!defined $iBuild) || (!defined $iCodeline))
+  {
+    Usage();
+  }
+
+  if (defined($iQuit))
+  {
+  	$iQuit = "reboot";
+  }
+
+  return ($iProduct, $iBuild, $iCodeline, $iServerPool, $iARMVer, $iMWVer, $iWait, $iExtraArg, $iQuit, $iSubType);
+}
+
+# Usage
+#
+# Output Usage Information.
+#
+
+sub Usage 
+{
+  print <<USAGE_EOF;
+
+  Request a BFC
+  Usage: bfcClient.pl -p <Ver> -b <BuildNo> -c <Codeline> -s <ServerPool> [options] -- [bfc extra arg]
+
+  --product   Specify OS product (e.g. 9.1).
+  --build     Specify Build Number (e.g. M04191).
+  --codeline  Specify Codeline (e.g. Master, Symbian_OS_v9.4)
+  --server    Hash separated BFC server list (e.g lon-engbuild20\#lon-engbuild21).
+              Alternatively, set $ENV_BFCPOOL.
+  
+  [Options]
+  -h           This help
+  --arm        Specify ARM version to be used (435 or 559 or 616).
+  --mw         Specify Metrowerk version to be used (3.0 or 3.1.1 or 3.1.2).
+  --wait 0..n  Force the bfc process to wait no more than n hours from now.
+  --reboot     Force the bfc process to reboot before this task.
+  --type       Specify BuildSubType (e.g. Daily, Test).
+
+  [bfc extra arg]
+   Any other switches will be passed to the bfc process tools
+
+USAGE_EOF
+	exit 0;
+}
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/buildenv.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,107 @@
+# Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Script to get version of various tools and Windows hotfixes and write to XML file
+# 
+#
+
+use strict;
+use Getopt::Long;
+use File::Copy;
+use Sys::Hostname;
+use FindBin;
+use lib $FindBin::Bin;
+use Carp;
+use buildenv;
+
+# Process the commandline
+my ($gHostName, $gXMLfilePathname) = ProcessCommandLine();
+
+&buildenv::Main($gHostName, $gXMLfilePathname);
+
+# ProcessCommandLine
+#
+# Inputs
+# Command line options via GetOptions()
+#
+# Returns
+# Hostname, XML output file name
+#
+# Description
+# This function processes the commandline and also establishes hostname and hence XML file name
+
+sub ProcessCommandLine {
+  my ($iHelp, $iXMLfileLocation);
+  GetOptions('h' => \$iHelp, 'o=s' => \$iXMLfileLocation);
+
+  if ($iHelp) { Usage(); }
+  
+  if (!defined $iXMLfileLocation)
+  {
+    $iXMLfileLocation = '.\\';
+  }
+
+  # add trailing backslash if missing, and add filename as hostname.xml
+  $iXMLfileLocation =~ s/[^\\]$/$&\\/;
+
+# Validate output directory. NB: If option not given, undef defaults to current directory!
+  confess("ERROR: $iXMLfileLocation not a directory: $!") if !-d $iXMLfileLocation;
+  my $iHostName = hostname;     # Depends on "use Sys::Hostname;"
+  $iHostName =~ s/\.intra$//i;  # Remove trailing ".intra" if any.
+  $iXMLfileLocation = $iXMLfileLocation . $iHostName ."\.xml";
+
+  &backupFile($iXMLfileLocation) if (-e $iXMLfileLocation);
+  return($iHostName, $iXMLfileLocation);    # NB: $iXMLfileLocation is now the full pathname of the output file
+}
+
+# backupFile
+#
+# Inputs
+# $iFile - filename to backup
+#
+# Outputs
+#
+# Description
+# This function renames an existing file with the .bak extension
+sub backupFile
+{
+	my ($iFile) = @_;
+	my ($iBak) = $iFile.".bak";
+	
+	if (-e $iFile)
+	{
+	    print "WARNING: $iFile already exists, creating backup of orignal with new name of $iBak\n";
+	    move($iFile,$iBak) or die "Could not backup $iFile to $iBak because of: $!\n";	  
+	}
+}
+
+# Usage
+#
+# Output Usage Information and exit
+#
+
+sub Usage {
+  print <<USAGE_EOF;
+
+  Usage: BuildEnv.pl [options]
+
+  options:
+
+  -h  Display this Help and exit
+  -o  Directory in which to write output XML file (defaults to current)
+      e.g \\\\Builds01\\Devbuilds\\BuildPCs\\BldEnvData\\2006-04-24
+      Name will be added automatically as the host computername,
+      extension as '.XML'
+USAGE_EOF
+	exit 1;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/buildenv.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,845 @@
+# Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# This module implements Build environment logging
+# It collects versions of various tools and Windows hotfixes and writes them to the specified XML file
+# 
+#
+
+package buildenv;
+
+use strict;
+use Carp;
+use lib "$FindBin::Bin/lib";
+
+# Module Win32::TieRegistry - Set delimiter to forward slash to avoid doubling all the backslashes!
+# Do not ask for ArrayValues sice we are only reading data, not changing/editing anything.
+use Win32::TieRegistry( Delimiter=>"/" );
+
+# Main
+#
+# Inputs
+# - $iHostName        - Name of host computer (to be written into the XML file)
+# - $iXMLfilePathname - Full pathname of output .XML file
+#
+#   note: XML file will have been named after the hostname that
+#         the script was run on. See BuildEnv.pl.
+#
+# Description
+#   Collects OS information and versions of know tools.
+#   Writes resulting build environment info to specified XML file
+#
+sub Main
+{
+  my ($iHostName, $iXMLfilePathname)      = @_;
+  my (%iToolList)                = &buildenv::GetToolInfo();
+  my ($iWinEnvVer, %iHotFixList) = &buildenv::GetWinInfo();
+  
+  # write the same info in xml - useful for future tools
+  &WriteXMLFormat($iHostName, $iXMLfilePathname, $iWinEnvVer, \%iHotFixList, \%iToolList);
+}
+
+# WriteXMLFormat
+#
+# Description
+#   Writes build environment info to XML file
+#
+# Inputs
+#   - $iWinVer      - scalar with info on windows version
+#   - $iHotFixRef   - ref to hash containing hotfix info
+#   - $iToolListRef - ref to hash containing tool info
+#
+# Outputs
+#   Writes XML file
+#
+sub WriteXMLFormat
+{
+  use IO;
+  use XML::Writer;
+  
+  # get one scalar and 2 refs to hashes
+  my ($iHostName, $iXMLfilePathname, $iWinVer, $iHotFixListRef, $iToolListRef) = @_;
+  
+  my $DTD = "
+    <!DOCTYPE machine_config [
+    <!ELEMENT machine_config (operating_sys,tool*)>
+    <!ATTLIST machine_config
+      name CDATA #REQUIRED
+    >
+    <!ELEMENT operating_sys (hotfix*)>
+    <!ATTLIST operating_sys
+      name         CDATA #REQUIRED
+      version      CDATA #REQUIRED
+      servicepack  CDATA #REQUIRED
+      buildnumber  CDATA #REQUIRED
+    >
+    <!ELEMENT hotfix EMPTY>
+    <!ATTLIST hotfix
+      name         CDATA #REQUIRED
+      installdate  CDATA #REQUIRED
+    >
+    <!ELEMENT tool EMPTY>
+    <!ATTLIST tool
+      name      CDATA #REQUIRED
+      version   CDATA #REQUIRED
+    >
+    ]> ";
+  
+  my $output = new IO::File("> $iXMLfilePathname");
+  my $writer = new XML::Writer( OUTPUT => $output, DATA_MODE => 'true', DATA_INDENT => 2  );
+  
+  $writer->xmlDecl( 'UTF-8' );
+  print $output $DTD;
+  $writer->comment( 'machine_config  at ' . localtime() );
+  $writer->startTag( 'machine_config', 'name' => $iHostName);
+  
+      # breakdown the winversion string to its component parts:
+      $iWinVer =~ m/Microsoft Windows(.*)ver(.*)Service Pack(.*)Build(.*)/;
+      $writer->startTag( 'operating_sys', 'name'       => 'Microsoft Windows'.$1,
+                                          'version'    => $2,
+                                          'servicepack'=> $3,
+                                          'buildnumber'=> $4);
+          
+      foreach my $fixnum (sort keys %$iHotFixListRef)
+      {
+        $writer->startTag( 'hotfix', name => $fixnum, 'installdate' => $iHotFixListRef->{$fixnum} );
+        $writer->endTag( );
+      }
+      $writer->endTag( ); # operating_sys
+      foreach my $toolname (sort {uc $a cmp uc $b} keys %$iToolListRef)
+      {
+        $writer->startTag( 'tool', name => $toolname, 'version' => $iToolListRef->{$toolname}{'version'} );
+        # Look for modules supporting the current tool (e.g Perl modules)
+        if (defined $iToolListRef->{$toolname}{'modules'})
+        {
+            foreach my $modulename (sort {uc $a cmp uc $b} keys %{$iToolListRef->{$toolname}{'modules'}})
+            {
+                $writer->startTag( 'module', name => $modulename, 'version' => $iToolListRef->{$toolname}{'modules'}{$modulename} );
+                $writer->endTag( );
+            }
+        }
+        # Look for other versions of the current tool for which files exist but are not reached via default PATH (e.g ARM RVCT)
+        if (defined $iToolListRef->{$toolname}{'multiver'})
+        {
+            foreach my $multiverdirectory (sort {uc $a cmp uc $b} keys %{$iToolListRef->{$toolname}{'multiver'}})
+            {
+                $writer->startTag( 'multiversion', name => $multiverdirectory, 'version' => $iToolListRef->{$toolname}{'multiver'}{$multiverdirectory} );
+                $writer->endTag( );
+            }
+        }
+        $writer->endTag( );
+      }
+  $writer->endTag( );     # machine_config
+  $writer->end( );
+}
+
+# GetWinInfo
+#
+# Description
+#   Gets Windows version. Collects information on Windows hotfixes (patches)
+#
+# Inputs - None
+#
+# Returns
+#   $iWinEnv - Windows version, SP# and build
+#   %iHotFixList - Installed Hotfix patch installation dates
+#
+sub GetWinInfo
+{
+  
+    my %iHotFixList;
+    my $iWinEnv = 'Windows : Unknown version';
+
+    # Extract information from the Windows Registry - First get the OS name and version
+    my %iValues;
+    my $iRegKey   = 'LMachine/SOFTWARE/Microsoft/Windows NT/CurrentVersion';
+    # Get data from hash set up by Win32::TieRegistry
+    my $iHashRef = $Registry->{$iRegKey} or  return ($iWinEnv, %iHotFixList);
+    # Check that hash element exists before referencing data. Otherwise TieRegistry will think that we want to create a new key/value
+    my $iProd = (defined $iHashRef->{'/ProductName'})? $iHashRef->{'/ProductName'}: '';
+    my $iVer = (defined $iHashRef->{'/CurrentVersion'})? $iHashRef->{'/CurrentVersion'}: '';
+    my $iSPVer = (defined $iHashRef->{'/CSDVersion'})? $iHashRef->{'/CSDVersion'}: '';
+    my $iBuild = (defined $iHashRef->{'/CurrentBuildNumber'})? $iHashRef->{'/CurrentBuildNumber'}: '';
+
+    $iWinEnv =$iProd .' ver ' . $iVer . ' ' . $iSPVer . ' Build ' . $iBuild . "\n";
+
+    # Next get the list of patches - First assume "Windows 2003" then "Windows 2000"
+    $iRegKey   = 'LMachine/SOFTWARE/Microsoft/Updates/Windows Server 2003';
+    $iHashRef = $Registry->{$iRegKey};
+    unless (defined $iHashRef)
+    {
+        $iRegKey   = 'LMachine/SOFTWARE/Microsoft/Updates/Windows 2000';
+        $iHashRef = $Registry->{$iRegKey};
+        unless (defined $iHashRef)
+        {
+            return ($iWinEnv, %iHotFixList);
+        }
+    }
+    foreach my $iKey0 (sort keys %$iHashRef)            # Key = service pack identifier; e.g. 'SP-1/', 'SP2/' ... Note trailing delimiter!
+    {
+        my $iHashRef1 = $iHashRef->{$iKey0};
+        unless (ref($iHashRef1)) { next; }               # Skip occasional data item. Reference Type (if any) is 'Win32::TieRegistry'
+        foreach my $iKey1 (sort keys %$iHashRef1)        # Key = hotfix reference; e.g. 'Q816093/' etc. Note trailing delimiter!
+        {
+            my $iHashRef2 = $iHashRef1->{$iKey1};
+            unless (ref($iHashRef2)) { next; }           # Skip occasional data item. Reference Type (if any) is 'Win32::TieRegistry'
+            foreach my $iKey2 (sort keys %$iHashRef2)    # Key = hotfix property; e.g. '/InstalledDate' etc. Note leading delimiter!
+            {
+                if ($iKey2 =~ m/^\/InstalledDate/)
+                {
+                    $iKey0 =~ s/\/$//;   # Remove trailing delimiter (slash) from service pack identifier
+                    $iKey1 =~ s/\/$//;   # Remove trailing delimiter (slash) from hotfix reference
+                    $iHotFixList{"$iKey0 $iKey1"}= $iHashRef2->{$iKey2};
+                }
+            }
+        }
+    }
+
+    return ($iWinEnv, %iHotFixList);
+}
+
+# GetToolInfo
+#
+# Description
+#   Collects OS information and versions of known tools.
+#
+# Inputs - None
+#
+# Returns
+#   %iToolList - Tool versions
+#
+sub GetToolInfo
+{
+    my %iToolList;
+    my $iToolName;
+
+    GetPerlInfo(\%iToolList);
+    
+    GetMetrowerksInfo(\%iToolList);
+
+    GetArmInfo(\%iToolList);
+
+    GetJavaInfo(\%iToolList);
+
+    # Location of reltools is assumed to be C:\Apps\RelTools\
+    $iToolName = 'RelTools';
+    my $iRelToolsVerTxt = 'C:\\Apps\\RelTools\\Version.txt';
+    $iToolList{$iToolName}{'version'} = 'Unknown';
+
+    if (-e $iRelToolsVerTxt)
+    {
+        my @iReltools = `type $iRelToolsVerTxt 2>&1`;
+        # Get RelTools version (must start with numeric value). Assumed to be in first line of file
+        if ($iReltools[0] =~ m/(^[0-9]{0,2}[0-9]{0,2}.*)(\n$)/) {
+            $iToolList{$iToolName}{'version'} = $1;
+        }
+    }
+    
+    # Perforce Client (Typical output "Rev. P4/NTX86/2003.2/56831 (2004/04/13).")
+    my $iToolNameVer = 'Perforce version';
+    my $iToolNameRel = 'Perforce release';
+    my @iP4Env = `P4 -V 2>&1`;
+    $iToolList{$iToolNameVer}{'version'} =  'Unknown';
+    $iToolList{$iToolNameRel}{'version'} =  'Unknown';
+    foreach (@iP4Env)
+    {
+        if (m/Rev\.\s+(\S+)\s+\((.+)\)/)
+        {
+            $iToolList{$iToolNameVer}{'version'} =  $1;
+            $iToolList{$iToolNameRel}{'version'} =  $2;
+        }
+    }
+
+    # NSIS Compiler
+    $iToolName = 'NSIS version';
+    my @iNSIS_ver = `MakeNSIS.exe /VERSION 2>&1`;
+    $iToolList{$iToolName}{'version'} =  'Unknown';
+    if ($iNSIS_ver[0] =~ m/v(\d+\.\d+)/i)
+    {
+        $iToolList{$iToolName}{'version'} =  $1;
+    }
+
+    # PsKill utility (SysInternals)
+    # PsKill v1.11 - Terminates processes on local or remote systems
+    $iToolName = 'PsKill';
+    my @iPSKillVer = `PsKill 2>&1`;
+    $iToolList{$iToolName}{'version'} = 'Unknown';
+    foreach (@iPSKillVer)
+    {
+        if (m/PsKill v(\d+\.\d+)/) { $iToolList{$iToolName}{'version'} =  $1; last;}
+    }
+
+    GetSophosInfo(\%iToolList);    # Sophos Anti-virus
+
+    GetMcAfeeInfo(\%iToolList);    # McAfee Anti-virus
+
+    GetGPGInfo(\%iToolList);       # GPG (Command line encryption program)
+
+    GetWinTapInfo(\%iToolList);    # Win-TAP
+    
+    return %iToolList;  
+}
+
+# GetPerlInfo
+#
+# Description
+#   Gets Perl Version (currently usually 5.6.1 or, on a few special machines, 5.8.7)
+#   If Perl is found, we go on to list Perl Modules using "PPM query" but under Perl Version
+#
+# Inputs - Reference to Tool List hash (for return of data)
+#
+# Outputs - Data returned via supplied hashref
+#
+sub GetPerlInfo
+{
+    my $iToolList = shift;
+# Typical output from "Perl -v"
+# This is perl, v5.6.1 built for MSWin32-x86-multi-thread
+# (with 1 registered patch, see perl -V for more detail)
+#
+# Copyright 1987-2001, Larry Wall
+#
+# Binary build 635 provided by ActiveState Corp. http://www.ActiveState.com
+# Built 15:34:21 Feb  4 2003
+#
+    my $iToolName = 'Perl';
+    my $iVersion;
+    my $iBuildNum;
+    my @iRetData     = `perl -v 2>&1`;
+    $iToolList->{$iToolName}{'version'} = 'Unknown';
+    foreach (@iRetData)
+    {	# Analyse output from "Perl -v"
+        if (m/ (version\s+|v)([0-9]{0,2}\.[0-9]{0,3}[_\.][0-9]{0,2})/)
+        {
+            if ($iVersion) {  print "ERROR: Perl Version redefined as $2.\n"; last; }	# Error? Can't have version defined twice!?
+            $iVersion = $2;
+            my $iMatchStr = '^([-\\w]+)\\s+\\[([.\\d]+)\\s*\\]';
+            my @iRetData     = `ppm query 2>&1`;				# Ask PPM for a list of modules
+            if ($iRetData[0] =~ m/No query result sets -- provide a query term\./i) # This is the response from Perl v5.8.7. Try new-style query!
+            {
+                $iMatchStr = '([\\-\\w]+)\\s+\\[([\\.\\d]+\w?)([\\~\\]])';
+                `ppm set fields \"name version\" 2>&1`;			# Specified required fields. CAUTION: PPM remembers settings from previous "PPM query" call
+                @iRetData     = `ppm query * 2>&1`;				# Ask PPM for a list of modules
+            }
+            foreach (@iRetData)
+            {	# Analyse list of modules 
+                if (m/$iMatchStr/)
+                {
+                    $iToolList->{$iToolName}{'modules'}{$1} = ($3 eq '~')? $2 . $3: $2;
+                }
+            }
+            # Check for Inline-Java (which somehow escapes the attention of PPM
+            my $iModuleName = 'Inline-Java';
+            $iToolList->{$iToolName}{'modules'}{$iModuleName} = GetPerlModuleInfo($iModuleName);
+            # Check for XML-DOM (earlier installations also escaped PPM)
+            $iModuleName = 'XML-DOM';
+            unless (defined $iToolList->{$iToolName}{'modules'}{$iModuleName})
+            {
+                $iToolList->{$iToolName}{'modules'}{$iModuleName} = GetPerlModuleInfo($iModuleName);
+            }
+        }
+        elsif (m/Binary\s+build\s+(\d+)/i)
+        {
+          if ($iBuildNum) { print "ERROR: Perl Build Number  redefined as $1.\n"; last; }	# Error? Can't have build defined twice!?
+          $iBuildNum = $1;
+        }
+    }       # End foreach (@iRetData)
+    # We have already set $iToolList->{$iToolName}{'version'} = 'Unknown';
+    # So if $iVersion is still undefined, leave well alone! Eventually return 'Unknown'.
+    if ($iVersion)        # Found version. Have we got a Build Number?
+    {
+        unless($iBuildNum) { $iBuildNum = 'Build unknown'; }
+        $iToolList->{$iToolName}{'version'} = "$iVersion [$iBuildNum]";
+    }
+    # Next look for "Multiple Versions"
+    # For example "\\LON-ENGBUILD54\C$\Apps\Perl.5.10.0"
+    my $iAppsRoot = 'C:\Apps';
+    my $iPerlExe  = 'bin\Perl.exe';
+    my $iAppsDirs = ReadDirectory($iAppsRoot);      # Get arrayref
+    unless (defined $iAppsDirs)
+    {
+        print "ERROR:  Failed to read Apps Directory.\n";
+        return;
+    }
+    foreach my $iAppsDir (@$iAppsDirs)
+    {
+        if ($iAppsDir =~ m/^Perl\.(\d.*)/i)
+        {
+            my $iMultiVer = $1;
+            $iAppsDir = uc $iAppsDir;       # Source is a Windows directory name, which could be in any case
+            $iToolList->{$iToolName}{'multiver'}{$iMultiVer} =  'Unknown';
+            $iVersion = '';
+            $iBuildNum = '';
+            my @iPerlExeRet = `$iAppsRoot\\$iAppsDir\\$iPerlExe -v`;
+            foreach (@iPerlExeRet)
+            {
+                if (m/ (version\s+|v)([0-9]{0,2}\.[0-9]{0,3}[_\.][0-9]{0,2})/)
+                { 
+                    if ($iVersion) { print "ERROR: Perl Version  redefined as $2.\n"; last; }	# Error? Can't have version defined twice!?
+                    $iVersion =  $2;
+                }
+                elsif (m/Binary\s+build\s+(\d+)/i)
+                {
+                    if ($iBuildNum) { print "ERROR: Perl Build Number  redefined as $1.\n"; last; }	# Error? Can't have build defined twice!?
+                    $iBuildNum = $1;
+                }
+            }
+            # We have already set $iToolList->{$iToolName}{'multiver'}{$iMultiVer} = 'Unknown';
+            # So if $iVersion is still undefined, leave well alone! Eventually return 'Unknown'.
+            if ($iVersion)        # Found version. Have we got a Build Number?
+            {
+                unless($iBuildNum) { $iBuildNum = 'Build unknown'; }
+                $iToolList->{$iToolName}{'multiver'}{$iMultiVer} = "$iVersion [$iBuildNum]";
+            }
+        }
+    }       # End foreach my $iAppsDir (@$iAppsDirs)
+}
+
+# GetPerlModuleInfo
+#
+# Description
+#   Gets Version for the specified Perl Module 
+#
+# Inputs - Name of Module 
+#
+# Retuens - Version text
+#
+sub GetPerlModuleInfo
+{
+    my $iModuleName = shift;
+    my $iVerTxt = 'Unknown';
+    $iModuleName =~ s/-/::/;
+    if (eval "require $iModuleName;")
+    {
+        no strict 'refs';
+        $iVerTxt = ${$iModuleName . "::VERSION"};
+        use strict;
+    }
+    return $iVerTxt;
+}
+
+# GetMetrowerksInfo
+#
+# Description
+#   Gets Metrowerks Compiler and Linker Versions
+#
+# Inputs - Reference to Tool List hash (for return of data)
+#
+# Outputs - Data returned via supplied hashref
+#
+sub GetMetrowerksInfo
+{
+
+
+    my $iToolList = shift;
+
+    # First get the version of the default Compiler (MWCCSym2), as located by the "permanent" PATH etc.
+    my $iToolNameCC = 'Metrowerks Compiler';
+    $iToolList->{$iToolNameCC}{'version'} = 'Unknown';
+    my @iCCRet     = `mwccsym2 -version 2>&1`;
+    foreach (@iCCRet)
+    {
+        if (m/Version(.*)(\n$)/)
+        {
+            $iToolList->{$iToolNameCC}{'version'} =  $1;
+            last;
+        }
+    }
+    
+    # Now get the version of the default Linker (MWLDSym2), as located by the "permanent" PATH etc.
+    my $iToolNameLD = 'Metrowerks Linker';
+    my @iLDEnv     = `mwldsym2 -version 2>&1`;
+    $iToolList->{$iToolNameLD}{'version'} = 'Unknown';
+    foreach (@iLDEnv) 
+    {
+        if (m/Version(.*)(\n$)/) 
+        { 
+            $iToolList->{$iToolNameLD}{'version'} =  $1;
+            last;
+        }
+    }
+
+    # Next look for "Multiple Versions"
+    # For example "\\LON-ENGBUILD54\C$\Apps\Metrowerks\OEM3.1.1\Symbian_Tools\Command_Line_Tools\mwccsym2.exe"
+    my $iMWksRoot = 'C:\Apps\Metrowerks';
+    my $iMWksCC   = 'Symbian_Tools\Command_Line_Tools\mwccsym2.exe';
+    my $iMWksLD   = 'Symbian_Tools\Command_Line_Tools\mwldsym2.exe';
+    my $iMWksDirs = ReadDirectory($iMWksRoot);      # Get arrayref
+    unless (defined $iMWksDirs)
+    {
+        print "ERROR:  Failed to read Metrowerks Root Directory.\n";
+        return;
+    }
+    foreach my $iMWksDir (@$iMWksDirs)
+    {
+        if ($iMWksDir =~ m/^OEM\d+\.\d+/i)
+        {
+            $iMWksDir = uc $iMWksDir;       # Source is a Windows directory name, which could be in any case
+            my @iMWksCCRet = `$iMWksRoot\\$iMWksDir\\$iMWksCC`;
+            $iToolList->{$iToolNameCC}{'multiver'}{$iMWksDir} =  'Unknown';
+            foreach my $iLine(@iMWksCCRet)
+            {
+                if ($iLine =~ m/Version(.*)(\n$)/i)
+                { 
+                    $iToolList->{$iToolNameCC}{'multiver'}{$iMWksDir} =  $1;
+                    last;
+                }
+            }
+            my @iMWksLDRet = `$iMWksRoot\\$iMWksDir\\$iMWksLD`;
+            $iToolList->{$iToolNameLD}{'multiver'}{$iMWksDir} =  'Unknown';
+            foreach my $iLine(@iMWksLDRet)
+            {
+                if ($iLine =~ m/Version(.*)(\n$)/i)
+                { 
+                    $iToolList->{$iToolNameLD}{'multiver'}{$iMWksDir} =  $1;
+                    last;
+                }
+            }
+        }
+    }       # End foreach my $iMWksDir (@$iMWksDirs)
+
+}
+
+# GetArmInfo
+#
+# Description
+#   Looks for directories below C:\Apps\ARM which might contain versions of RVCT compiler etc.
+#
+# Inputs - Reference to Tool List hash (for return of data)
+#
+# Outputs - Data returned via supplied hashref
+#
+sub GetArmInfo
+{
+    my $iToolList = shift;
+    my $iToolName = 'Arm CC';
+
+    # First get the version of the default ARMCC, as located by the "permanent" PATH etc.
+    $iToolList->{$iToolName}{'version'} = 'Unknown';
+    my @iArmCCRet = `armcc --vsn 2>&1`;
+    foreach (@iArmCCRet) 
+    {
+        if (m/RVCT(.*)(\n$)/)
+        { 
+            $iToolList->{$iToolName}{'version'} =  $1;
+            last;
+        }
+    }
+    # Next look for "Multiple Versions"
+    # For example "\\LON-ENGBUILD51\C$\Apps\ARM\RVCT2.2[435]\RVCT\Programs\2.2\349\win_32-pentium\armcc.exe" 
+    my $iRVCTRoot = 'C:\Apps\ARM';
+    my $iRVCTCC2  = 'RVCT\Programs\2.2\349\win_32-pentium\armcc.exe';   # Applies to RVCT Version 2.x
+    my $iRVCTCC3  = 'bin\armcc.exe';                                    # Applies to RVCT Version 3.x
+    my $iRVCTDirs = ReadDirectory($iRVCTRoot);      # Get arrayref
+    unless (defined $iRVCTDirs)
+    {
+        print "ERROR:  Failed to read ARM Root Directory.\n";
+        return;
+    }
+    foreach my $iRVCTDir (@$iRVCTDirs)     # Applies to RVCT Version 2.x
+    {
+        $iRVCTDir = uc $iRVCTDir;          # Source is a Windows directory name, which could be in any case
+        if ($iRVCTDir =~ m/^RVCT2\.\d+/i)
+        {
+            $iToolList->{$iToolName}{'multiver'}{$iRVCTDir} = GetArmVersion("$iRVCTRoot\\$iRVCTDir\\$iRVCTCC2");
+        }
+        elsif ($iRVCTDir =~ m/^RVCT\d+\.\d+/i)   # Applies to RVCT Version 3.x (and above, until we know otherwise!!)
+        {
+            $iToolList->{$iToolName}{'multiver'}{$iRVCTDir} = GetArmVersion("$iRVCTRoot\\$iRVCTDir\\$iRVCTCC3");
+        }
+    }
+
+}
+
+# GetArmVersion
+#
+# Description
+#   Gets Arm Compiler Version for a specified instance.
+#
+# Inputs - Full pathname of compiler (ARMCC.EXE)
+#
+# Outputs - Version (as text) or 'Unknown' if not determined
+#
+sub GetArmVersion
+{
+    my $iRVCTCC = shift;       # Full pathname of compiler (ARMCC.EXE)
+    my @iArmCCEnv = `$iRVCTCC --vsn 2>&1`;
+    foreach my $iLine(@iArmCCEnv)
+    {
+        if ($iLine =~ m/RVCT(.*)(\n$)/i)
+        { 
+            return $1;
+        }
+    }
+    return 'Unknown';
+}
+
+# GetJavaInfo
+#
+# Description
+#   Gets Java Runtime Compiler Version
+#
+# Inputs - Reference to Tool List hash (for return of data)
+#
+# Outputs - Data returned via supplied hashref
+#
+sub GetJavaInfo
+{
+    my $iToolList = shift;
+    my $iToolName = 'Java';
+
+    # First get the version of the default Java installation as located by the "permanent" PATH etc.
+    # This probably means running 
+    my @iJavaReturn     = `java -version 2>&1`;
+    $iToolList->{$iToolName}{'version'} =  'Unknown';
+    foreach my $iLine (@iJavaReturn) 
+    {
+        if ($iLine =~ m/version.*(\"{1})(.*)(\"{1})/i)
+        {
+            $iToolList->{$iToolName}{'version'} =  $2;
+            last;
+        }
+    }
+
+    # Next look for "Multiple Versions" - Assumed to be in directories matching 'C:\Apps\JRE*'
+    # For example "C:\Apps\JRE1.5.0_13\bin\java.exe" 
+    my $iJRERoot = 'C:\Apps';
+    my $iJREEXE  = 'bin\java.exe';
+    my $iJREDirs = ReadDirectory($iJRERoot);      # Get arrayref (list of sub-directories
+    unless (defined $iJREDirs)
+    {
+        print "ERROR:  Failed to read JRE Root Directory: $iJRERoot.\n";
+        return;
+    }
+    foreach my $iJREDir (@$iJREDirs)
+    {
+        if ($iJREDir =~ m/^JRE\d+\.\d+/i)
+        {
+            $iJREDir = uc $iJREDir;       # Source is a Windows directory name, which could be in any case
+            my @iJREReturn = `$iJRERoot\\$iJREDir\\$iJREEXE -version 2>&1`;
+            $iToolList->{$iToolName}{'multiver'}{$iJREDir} =  'Unknown';
+            foreach my $iLine(@iJREReturn)
+            {
+                if ($iLine =~ m/version.*(\"{1})(.*)(\"{1})/i)
+                { 
+                    $iToolList->{$iToolName}{'multiver'}{$iJREDir} =  $2;
+                    last;
+                }
+            }
+        }
+    }
+
+}
+
+# GetSophosInfo
+#
+# Description
+#   Gets Sophos Version
+#
+# Inputs - Reference to Tool List hash (for return of data)
+#
+# Outputs - Data returned via supplied hashref
+#
+sub GetSophosInfo
+{
+    my $iToolList = shift;
+    # Sophos Anti-virus
+    # Typical output from "sav32cli.exe -v"
+    # Sophos Anti-Virus
+    # Copyright (c) 1989-2005 Sophos Plc, www.sophos.com
+    # System time 11:58:18, System date 04 April 2005
+    # Product version           : 3.92.0
+    # Engine version            : 2.28.10
+    # Virus data version        : 3.92
+    # User interface version    : 2.03.048
+    # Platform                  : Win32/Intel
+    # Released                  : 04 April 2005
+    # Total viruses (with IDEs) : 102532
+    my $iSophosExe='C:\Program Files\Sophos SWEEP for NT\sav32cli.exe';
+    $iToolList->{'Sophos product'}{'version'} = 'Unknown';
+    $iToolList->{'Sophos data'}{'version'} = 'Unknown';
+    $iToolList->{'Sophos release'}{'version'} = 'Unknown';
+    if (-e $iSophosExe)
+    {
+        my @iSophosVer = `\"$iSophosExe\" -v`;
+
+        # Get Sophos versions
+        foreach my $iLine (@iSophosVer)
+        {
+            if ($iLine =~ m/Product\s+version\s+:\s+(\S+)/)
+            {
+                $iToolList->{'Sophos product'}{'version'} = $1;
+                next;
+            }
+            if ($iLine =~ m/Virus\s+data\s+version\s+:\s+(\S+)/)
+            {
+                $iToolList->{'Sophos data'}{'version'} = $1;
+                next;
+            }
+            if ($iLine =~ m/Released\s+:\s+(.+)/)
+            {
+                $iToolList->{'Sophos release'}{'version'} = $1;
+                next;
+            }
+        }
+    }
+
+}
+
+# GetMcAfeeInfo
+#
+# Description
+#   Gets McAfee Versions (Software and data)
+#
+# Inputs - Reference to Tool List hash (for return of data)
+#
+# Outputs - Data returned via supplied hashref
+#
+sub GetMcAfeeInfo
+{
+    my $iToolList = shift;
+    # McAfee Anti-virus
+    # Revision March 2007 - Get Versions from Registry in the following location (for Version 8.000?):
+    # HKEY_LOCAL_MACHINE\SOFTWARE\Network Associates\ePolicy Orchestrator\Application Plugins\VIRUSCAN8000
+    $iToolList->{'McAfee VirusScan'}{'version'} = 'Unknown';
+    $iToolList->{'McAfee VirusData'}{'version'} = 'Unknown';
+
+    my $iRegKey = 'LMachine/SOFTWARE/Network Associates/ePolicy Orchestrator/Application Plugins';
+    # Get data from hash set up by Win32::TieRegistry
+    my $iHashRef = $Registry->{$iRegKey};
+    unless (defined $iHashRef) { print "WARNING: Failed to read McAfee version from Registry\n";  return; }
+    my @iValidHashKeys;
+    foreach my $iHashKey (sort %$iHashRef)
+    {
+        if ($iHashKey =~ m/^VIRUSCAN\d+/i)
+        {
+            push @iValidHashKeys,$iHashKey;
+        }
+    }
+    unless (scalar @iValidHashKeys)
+    {
+        return;             # No valid sub-key
+    }
+    if ((scalar @iValidHashKeys) > 1)
+    {
+        print "WARNING: Duplicate McAfee Versions.\n"; 
+    }
+    
+    @iValidHashKeys = sort @iValidHashKeys;
+    my $iVersionKey = pop @iValidHashKeys;      # In the unlikely event of there being more than one, get the last one!
+    
+    # Check that hash element exists before referencing data. Otherwise TieRegistry will think that we want to create a new key/value
+    if (defined $iHashRef->{$iVersionKey}{'/Version'})    { $iToolList->{'McAfee VirusScan'}{'version'} = $iHashRef->{$iVersionKey}{'/Version'}; }
+    if (defined $iHashRef->{$iVersionKey}{'/DATVersion'}) { $iToolList->{'McAfee VirusData'}{'version'} = $iHashRef->{$iVersionKey}{'/DATVersion'}; }
+}
+
+# GetGPGInfo
+#
+# Description
+#   Gets GPG Version (currently usually 
+#
+# Inputs - Reference to Tool List hash (for return of data)
+#
+# Outputs - Data returned via supplied hashref
+#
+sub GetGPGInfo
+{
+    my $iToolList = shift;
+
+    # Typical output from 'GPG -h'
+    #     gpg (GnuPG) 1.4.4
+    # Copyright (C) 2006 Free Software Foundation, Inc.
+    # This program comes with ABSOLUTELY NO WARRANTY.
+    # This is free software, and you are welcome to redistribute it
+    # under certain conditions. See the file COPYING for details.
+
+    my $iToolName = 'GnuPG';
+    my @iRetData     = `GPG -h 2>&1`;
+    $iToolList->{$iToolName}{'version'} = 'Unknown';
+    foreach (@iRetData)
+    {
+        if (m/^\s*gpg\s+\(GnuPG\)\s*(\d+\.\d+\.\d+)/i)
+        {
+            $iToolList->{$iToolName}{'version'} = $1;
+            last;
+        }
+    }
+}
+
+# GetWinTapInfo
+#
+# Description
+#   Gets WinTap Version
+#
+# Inputs - Reference to Tool List hash (for return of data)
+#
+# Outputs - Data returned via supplied hashref
+#
+sub GetWinTapInfo
+{
+    my $iToolList = shift;
+
+    # Typical output from 'IPCONFIG /ALL'
+    # Ethernet adapter TAP-Win32:
+    #    Connection-specific DNS Suffix  . :
+    #    Description . . . . . . . . . . . : TAP-Win32 Adapter V8
+    my $iToolName = 'WinTAP';
+    my @iRetData     = `IPCONFIG /ALL 2>&1`;
+    $iToolList->{$iToolName}{'version'} = 'Unknown';
+    foreach (@iRetData)
+    {
+        if (m/Description.+TAP-Win32\s+Adapter\s+(V.+)/i)
+        {
+            $iToolList->{$iToolName}{'version'} = $1;
+            last;
+        }
+    }
+}
+
+# ReadDirectory
+#
+# Read specified directory. Remove '.' and '..' entries (Windows speciality!)
+#
+# Input: Directory name
+#
+# Return: Array of subdirectory names, or undef if open fails.
+#
+sub ReadDirectory
+{
+    my $iDirName = shift;
+
+	unless (opendir DIRECTORY, $iDirName)
+	{
+	    print ("ERROR:  Failed to open directory: $iDirName\nERROR:  $!\n");
+	    return undef;
+	}
+	my @iSubDirs = readdir(DIRECTORY);
+	closedir DIRECTORY;
+
+	# Remove '.' and '..' from list
+	for (my $iIndx = 0; $iIndx < (scalar @iSubDirs); )
+	{
+	    if ($iSubDirs[$iIndx] =~ m/^\.{1,2}/)
+	    {
+	        splice @iSubDirs, $iIndx, 1;
+	    }
+	    else
+	    {
+	        ++$iIndx;
+	    }
+	}
+
+    return \@iSubDirs;
+}
+
+1;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/cdb_sysbuild.bat	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,8 @@
+@echo off
+
+set JAVA_HOME=c:\Apps\jre1.5.0_13
+set PATH=c:\Apps\jre1.5.0_13\bin;%PATH%
+
+echo java -Xmx1100M -Xrs -jar %EPOCROOT%cdb\cdb\cdb.jar --epocroot %EPOCROOT% %*
+java -Xmx1100M -Xrs -jar %EPOCROOT%cdb\cdb\cdb.jar --epocroot %EPOCROOT% %*
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/check_tables.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,504 @@
+#!Perl -w
+
+use strict;
+use Pod::Usage;
+use Getopt::Long;
+use FindBin;
+use FileHandle;
+use Net::SMTP;
+
+#--------------------------- GLOBAL VARIABLES ---------------------------#
+
+my $startDir = $FindBin::Bin;
+my %componentList; 		#This has the components from the export table.
+my @redundantComponents; #This is used by 2 methods. One populates it and 
+						 #the other reads it to remove the redundant 
+						 #components from the export table. 
+
+# The location of the export tables
+my $srcDir = $ENV{'SourceDir'};
+my $platform = $ENV{'Platform'};
+my $exportTableLocation =  "$srcDir\\os\\deviceplatformrelease\\symbianosbld\\productionbldcbrconfig\\"; 
+  
+ 
+my $help = 0;
+my $man = 0;
+my $autoclean = 0;
+my $autoadd = 0;
+my $email = 0;
+
+my @report;
+my ($notification_address) = 'SysBuildSupport@symbian.com';
+my $message;
+
+# This has the components from the gt and tv components.txt
+# We need to manually put into the hash the following because these
+# are added by the release tools and are not explicitly mentioned in
+# the GTComponents.txt or TechviewComponents.txt
+my %mrpHashForProduct=(
+	"gt_techview_baseline" => 1,
+	"gt_only_baseline" => 1,
+	"gt_overwritten"=> 1,
+	"unresolved" => 1
+	);  
+
+# Just specify the export tables for each product
+my %exportTable = (
+		"8.0a" => "AutoCBR_Tornado_test_export.csv",
+		"8.1a" => "AutoCBR_8.1a_test_export.csv",
+		"8.0b" => "AutoCBR_Zephyr_test_export.csv",
+		"8.1b" => "AutoCBR_8.1b_test_export.csv",
+		"9.0"  => "AutoCBR_9.0_test_export.csv",
+		"9.1"  => "AutoCBR_9.1_test_export.csv",
+		"9.2" => "AutoCBR_9.2_test_export.csv",
+		"9.3" => "AutoCBR_9.3_test_export.csv",
+		"Intulo" => "AutoCBR_Intulo_test_export.csv",
+		"Future" => "AutoCBR_Future_test_export.csv",
+		"9.4" => "AutoCBR_9.4_test_export.csv",
+		"9.5" => "AutoCBR_9.5_test_export.csv",
+		"9.6" => "AutoCBR_9.6_test_export.csv",
+		"tb92" => "AutoCBR_tb92_test_export.csv",
+		"tb92sf" => "AutoCBR_tb92sf_test_export.csv",
+                "tb101sf" => "AutoCBR_tb101sf_test_export.csv"
+		);
+
+my %componentFiles = (
+		"8.0a" => {"gtonly" => $exportTableLocation."8.0a\\gtcomponents.txt",
+				   "tv" => $exportTableLocation."8.0a\\techviewcomponents.txt"},		
+		"8.0b" => {"gtonly" => $exportTableLocation."8.0a\\gtcomponents.txt",
+				   "tv" => $exportTableLocation."8.0a\\techviewcomponents.txt"},		
+		"8.1a" => {"gtonly" => $exportTableLocation."8.1a\\gtcomponents.txt",
+				   "tv" => $exportTableLocation."8.1a\\techviewcomponents.txt"},
+		"8.1b" => {"gtonly" => $exportTableLocation."8.1b\\gtcomponents.txt",
+				   "tv" => $exportTableLocation."8.1b\\techviewcomponents.txt"},
+		"9.0"  => {"gtonly" => $exportTableLocation."9.0\\gtcomponents.txt",
+				   "tv" => $exportTableLocation."9.0\\techviewcomponents.txt"},
+		"9.1"  => {"gtonly" => $exportTableLocation."9.1\\gtcomponents.txt",
+				   "tv" => $exportTableLocation."9.1\\techviewcomponents.txt"},
+		"9.2"  => {"gtonly" => $exportTableLocation."9.2\\gtcomponents.txt",
+				   "tv" => $exportTableLocation."9.2\\techviewcomponents.txt"},
+		"9.3"  => {"gtonly" => $exportTableLocation."9.3\\gtcomponents.txt",
+				   "tv" => $exportTableLocation."9.3\\techviewcomponents.txt"},		
+		"Intulo"  => {"gtonly" => $exportTableLocation."Intulo\\gtcomponents.txt",
+				   "tv" => $exportTableLocation."Intulo\\techviewcomponents.txt"},
+		"Future"  => {"gtonly" => $exportTableLocation."Future\\gtcomponents.txt",
+				   "tv" => $exportTableLocation."Future\\techviewcomponents.txt"},
+		"9.4"  => {"gtonly" => $exportTableLocation."9.4\\gtcomponents.txt",
+				   "tv" => $exportTableLocation."9.4\\techviewcomponents.txt"},
+		"9.5"  => {"gtonly" => $exportTableLocation."9.5\\gtcomponents.txt",
+				   "tv" => $exportTableLocation."9.5\\techviewcomponents.txt"},
+		"9.6"  => {"gtonly" => $exportTableLocation."9.6\\gtcomponents.txt",
+				   "tv" => $exportTableLocation."9.6\\techviewcomponents.txt"},
+		"tb92"  => {"gtonly" => $exportTableLocation."tb92\\gtcomponents.txt",
+				   "tv" => $exportTableLocation."tb92\\techviewcomponents.txt"},
+		"tb92sf"  => {"gtonly" => $exportTableLocation."tb92sf\\gtcomponents.txt",
+				   "tv" => $exportTableLocation."tb92sf\\techviewcomponents.txt"},
+                "tb101sf"  => {"gtonly" => $exportTableLocation."tb101sf\\gtcomponents.txt",
+				   "tv" => $exportTableLocation."tb101sf\\techviewcomponents.txt"}
+
+
+	);
+
+ 
+#------------------------ END OF GLOBAL VARIABLES -----------------------#
+
+
+# Utility function to print the keys of a hash ref (passed in).
+sub printHash
+{
+	my $hashRef = shift;
+	
+	foreach my $line(sort keys %{$hashRef})
+	{
+		push @report, $line."\n";
+		print $line."\n";
+	}
+}
+
+
+
+# Compare the components in the export table against
+# the components in the gt and tv components.txt files.
+sub compareTables
+{
+	my $product = shift;
+	
+	my $dirty = 0;
+	foreach my $key (sort keys %componentList)
+	{
+		if(exists $mrpHashForProduct{$key})
+		{
+			delete $mrpHashForProduct{$key};
+		}
+		else
+		{
+			push @redundantComponents, $key;
+		}
+	}
+	if (scalar (@redundantComponents) != 0)
+	{
+		$dirty =1;
+		$message = "\n*** The following components can be removed from $exportTable{$product}:\n\n";
+		print $message;
+		foreach my $line(@redundantComponents)
+		{
+			print $line."\n";
+		}
+	}
+	
+	if (scalar keys %mrpHashForProduct != 0)
+	{
+		$dirty = 1;
+		$message = "\n*** The following components are missing from $exportTable{$product}:\n\n";
+		push @report, $message;
+		print $message;
+		printHash(\%mrpHashForProduct);
+		
+		if ($email == 1)
+		{
+			&SendEmail("WARNING: For Symbian_OS_v$product: $exportTable{$product} is not up to date\n ",@report);
+		}
+	}
+	
+	if ($dirty == 0)
+	{
+		print "$exportTable{$product} is up to date\n";
+	}
+}
+# Get the components that are listed in the export table for the 
+# product. 
+
+sub getExportTableComponents
+{
+
+	my $product = shift;
+	my $expTable = $exportTableLocation."$product\\".$exportTable{$product};
+	
+	open(EXP_TABLE,"<$expTable") or die("Cannot open export table:\n$expTable");
+	
+	foreach my $line (<EXP_TABLE>)
+	{
+		if ($line =~ /\A([^\#,].+?),/)  #Capture the component name. Ignore '#' or ',' if at beginning of line
+		{
+			$line = lc($1);
+			$line =~ s/\s+//g;
+			$line =~ s/\t+//g;
+			
+			if (not exists $componentList{$line})
+			{
+				$componentList{$line} = 1;
+			}
+			else 
+			{
+				print "Duplicate in export table: $line\n";
+			}
+		}
+	}
+	close EXP_TABLE;
+}
+
+# Get the components from the gt and techview components.txt
+sub getComps
+{
+	my $tvfile = shift;
+	my $product = shift;
+	my $rv = shift;
+	 
+	my @mrpContents = split /\n/, $rv;
+	
+	foreach my $componentsLine (@mrpContents)
+	{
+		my $component = lc((split /[\s\t]/, $componentsLine)[0]);
+		if (not exists $mrpHashForProduct{$component})
+		{
+			$mrpHashForProduct{$component} =1;
+		}
+		else
+		{
+			print "Duplicate in gt/tv component: $component \n";
+		}
+	}
+	undef @mrpContents;
+	
+	#We make the assumption that the techviewcomponents.txt is 
+	#in the same location as the gtcomponents.txt for a given 
+	#product.
+	open(TXT1, "<$tvfile") || die("Failed to find the components file for product $product"); 
+	undef $/;
+	$rv = <TXT1>;
+	close(TXT1);
+
+	@mrpContents = split /\n/, $rv;
+	foreach my $componentsLine (@mrpContents)
+	{
+		my $component = lc((split /[\s\t]/, $componentsLine)[0]);
+		if (not exists $mrpHashForProduct{$component})
+		{
+			$mrpHashForProduct{$component} =1;
+		}
+		else
+		{
+			print "Duplicate in gt/tv component: $component \n";
+		}
+	}
+}
+
+# Get the location where the gt and techview components.txt 
+# are in. Get the contents of the gtcomponents.txt. The 
+# contents of the techviewcomponents.txt are gotten in getComps
+# function. 
+sub getGtAndTvFiles
+{
+	my $product = shift; 
+	
+	my $rv;
+	my $gtfilename = $componentFiles{$product}->{"gtonly"};
+	my $tvfilename = $componentFiles{$product}->{"tv"};
+	
+	open(TXT2, "<$gtfilename") || die("Failed to find the components file for product $product");
+	undef $/;
+	$rv = <TXT2>;
+	close(TXT2);
+	
+	getComps($tvfilename, $product, $rv);
+	
+# 	if ($rv !~ /no such file/)
+# 	{
+# 		my $tvfilename = "//EPOC/master/beech/product/tools/makecbr/files/$product/techviewcomponents.txt";
+# 		getComps($tvfilename, $product, $rv);
+# 		return;
+# 	}	
+# 	
+# 	$gtfilename = "//EPOC/master/os/deviceplatformrelease/symbianosbld/productionbldcbrconfig/$product/gtcomponents.txt";
+# 	$rv =  `p4 print -q $gtfilename 2>&1`;
+# 	
+# 	if ($rv !~ /no such file/)
+# 	{
+# 		my $tvfilename = "//EPOC/master/os/deviceplatformrelease/symbianosbld/productionbldcbrconfig/$product/techviewcomponents.txt";
+# 		getComps($tvfilename, $product, $rv);
+# 		return;
+# 	}
+#	die("Failed to find the Components file for product $product");
+}
+
+sub autoclean ($)
+{
+	my $product = shift; 
+	my $expTable = $exportTableLocation."$product\\".$exportTable{$product};
+	my %redundantComponentsHash;
+		
+	my $cleanexpTable = $exportTable{$product};
+	$cleanexpTable =~ s/\.csv//;
+	$cleanexpTable = $startDir."\\"."${cleanexpTable}.csv"; 
+    
+    if ($autoclean == 1)
+    {
+        print "********** Removing redundant components **********\n";
+    }
+	#open the export table
+	open(INPUT, "<$expTable") or die ("Could not open $expTable for read\n");
+	
+	#create the clean table
+	open(OUTPUT, ">$cleanexpTable") or die ("Could not create $cleanexpTable\n");
+	
+	foreach my $key (@redundantComponents)
+	{
+		#print $key."\n";
+		if (not exists $redundantComponentsHash{$key})
+		{
+			 $redundantComponentsHash{$key} = 1;
+		}
+	}
+	foreach my $line (<INPUT>)
+	{
+		if ($line =~ /\A([^\#,].+?),/)
+		{
+			my $component = lc($1);
+			$component =~ s/\s+//g;
+			$component =~ s/\t+//g;
+			
+			if ((not exists $redundantComponentsHash{$component}) || 
+			    ($autoclean == 0))
+			{
+				#print "Adding $line in $cleanexpTable\n";
+				print OUTPUT $line; 
+			}
+		}
+		else 
+		{
+			print OUTPUT $line; 
+		}
+	}
+	
+	#Warning: This sets the position in INPUT to the beginning of the file!
+	my $curPos = tell(INPUT);
+	seek(INPUT, 0,0);
+    my $firstLine = <INPUT>;
+    my @cells = split /,/, $firstLine;
+    my $numOfKeys = scalar(@cells) -1;
+	#restore the position in INPUT
+	seek (INPUT, $curPos,0);
+	
+	#Now add the missing components
+	if (((keys %mrpHashForProduct)> 0) && ($autoadd == 1))
+	{
+	   print OUTPUT "\n\n\#Automatically added componments - NEED CHECKING!\n";
+	   print "**********   Adding missing components   **********\n";
+	
+       foreach my $missingComponent (sort keys %mrpHashForProduct)
+       {
+    	   my $categoriesString;
+    	   my $counter = 0;
+    	   for ($counter = 0; $counter < $numOfKeys; $counter++)
+    	   {
+    	       $categoriesString = $categoriesString."D E F G,";
+    	   }
+    	   my $string = $missingComponent.",".$categoriesString;
+    	   
+    	   #remove the extra ',' from the string
+    	   chop($string);
+    	   print OUTPUT $string."\n";
+       }
+	}
+	print "Closing files\n";
+	close(INPUT);
+	close (OUTPUT);
+}
+
+# Send Email
+sub SendEmail
+{
+  my ($subject, @body) = @_;
+  my (@message);
+  
+  #return 1; # Debug to stop email sending
+  
+  push @message,"From: $ENV{COMPUTERNAME}\n";
+  push @message,"To: $notification_address\n";
+  push @message,"Subject: $subject\n";
+  push @message,"\n";
+  push @message,@body;
+  
+  my $smtp = Net::SMTP->new('lonsmtp.intra', Hello => $ENV{COMPUTERNAME}, Debug   => 0);
+  $smtp->mail();
+  $smtp->to($notification_address);
+  
+  $smtp->data(@message) or die "ERROR: Sending message because $!";
+  $smtp->quit;
+
+}
+
+sub main
+{
+
+	GetOptions('help|?' => \$help, 'man' =>\$man, 'remove' =>\$autoclean,
+	           'add' => \$autoadd, 'e' => \$email) or pod2usage(-verbose => 2);
+	pod2usage(-verbose => 1) if $help == 1;
+	pod2usage(-verbose => 2) if $man == 1;
+	
+	if ($#ARGV < 0)
+	{
+		pod2usage(-verbose => 0);
+	}
+	
+	print "******** $ARGV[0] ********\n";
+	my $prod = shift @ARGV;
+
+        my $isTestBuild = $ENV{'PublishLocation'};
+
+        if ($isTestBuild =~ m/Test/i)
+
+       {
+   
+         $email = 0 ;
+
+         print "\nThis is a test build, no need to export\n";
+
+         exit 1;
+
+       }
+
+      
+	if (not exists $exportTable{$prod})
+	{
+		print "ERROR: Product is invalid\n";
+		print "Aborting...\n";
+		exit;
+       
+	}
+
+	
+	getExportTableComponents($prod);
+	getGtAndTvFiles($prod);
+	compareTables($prod);
+	if (($autoclean == 1) || ($autoadd == 1) )
+	{
+		autoclean($prod);
+	}
+}
+
+main();
+
+=pod
+
+=head1 NAME
+
+check_tables.pl - Check the export tables for a product against the components that are in the product.
+
+=head1 SYNOPSIS
+
+check_tables.pl [options] <product>
+
+ Options:
+   -help			brief help message
+   -man 			full documentation
+   -remove			Automatically remove redundant components. See below for details.
+   -add             Automatically add missing components. See below for details. 
+   -e				Sends a notification email if a component is missing from export table.
+
+=head1 OPTIONS
+
+=over 8
+
+=item B<-help>
+
+Prints a brief help message and exits
+
+=item B<-man>
+
+Prints the manual page and exists
+
+=item B<-remove>
+
+Create a clean version of the export table by removing the redundant entries.
+The clean table will be placed in the directory where the tool was run from 
+and will have the same name as the export table in perforce. You will need to  
+copy it to where you have your Perforce changes mapped in your client. 
+
+=item B<-add>
+
+The same as -remove but will automatically add the missing components. The 
+componenets are added with categories D E F and G. 
+
+=item B<-e>
+
+Sends a notification email to SysBuildSupport@Symbian.com if any components
+are missing from the export table.
+
+=back
+
+=head1 DESCRIPTION
+
+B<This program> will take a product as an argument and will check the 
+export table for that product for consistency. It will report any 
+redundant entries in the export table and also any components that are
+missing. It will also report any duplicate entries in the export table
+itself. If no problems are found it will report that the tables are 
+up to date. 
+
+=head1 VERSION
+
+$Id: //SSS/release/sf/tb92/os/buildtools/bldsystemtools/commonbldutils/check_tables.pl#1 $
+$Change: 1751173 $  $DateTime: 2009/12/19 09:14:39 $
+
+=cut
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/clean.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,342 @@
+use strict;
+
+use Getopt::Long;
+use File::Path;
+use File::Spec::Functions;
+
+my $gRealTimeBuildErrors = 0;
+sub RealTimeBuildError($)
+{
+	$gRealTimeBuildErrors++;
+	print STDERR "ERROR: RealTimeBuild: ", @_, "\n";
+	return "RealTimeBuild error";
+}
+
+# Process the commandline
+my ($iDataSource, $iSrc, $iMRPSrc, $platform, $iDummy, $iVerbose) = ProcessCommandLine();
+
+my ($iDirList)= ProcessList($iDataSource, $iSrc, $iMRPSrc, $platform, $iVerbose);
+my @delete;
+
+search_dir($iSrc, $iDirList, \@delete, $iVerbose);
+
+foreach my $leftover (keys %$iDirList)
+{
+  print "REMARK: LEFTOVER: $leftover ($$iDirList{$leftover})\n";
+}
+
+if ($gRealTimeBuildErrors && !$iDummy)
+{
+  print STDERR "\nWARNING: Files will NOT be deleted, because of earlier real time build errors\n\n";
+  $iDummy = 1;
+}
+
+foreach my $delete (@delete)
+{
+  if ($iDummy)
+  {
+    print "REMARK: $delete is not referenced by any MRP\n";
+  } else {
+    # Delete the files or directories
+    # make sure it is not read only
+    #Convert back to \ for dos command
+    $delete =~ s#\/#\\#g;
+    system("attrib -r /s /d \"$delete\"");
+    my $deletenum = rmtree($delete);
+    if ($deletenum == 0)
+    {
+      RealTimeBuildError("failed to deleted $delete");
+    } elsif (-d "$delete") {
+      RealTimeBuildError("failed to deleted directory $delete"); #Because it still exists
+    } elsif ($deletenum > 1) {
+      print "REMARK: deleted $deletenum files in directory $delete as they are not referenced by any MRP\n";
+    } else {
+      print "REMARK: deleted $delete as it is not referenced by any MRP\n";
+    }
+  }
+}
+
+sub search_dir
+{ 
+  my ($dir, $iDirList, $delete, $iVerbose) = @_; 
+  my @flist;
+  
+  print "Processing $dir\n" if ($iVerbose);
+  if (opendir(DIRH,"$dir"))
+  {
+    @flist=readdir(DIRH); 
+    closedir DIRH; 
+    ENTRY: foreach my $entry (@flist)
+    { 
+      # ignore . and .. : 
+      next if ($entry eq "." || $entry eq "..");
+      my $partial_match;
+      # Check entry again $iDirList for matches
+      foreach my $sourceline (keys %$iDirList)
+      {
+        if ($sourceline =~ m#^$dir/$entry$#i)
+        {
+          # Exact match delete entry in %$iDirList
+          # Check to see if something has already partial matched
+          print "REMARK: $dir/$entry is probably covered more than once\n" if ($partial_match);
+          if ($iVerbose)
+          {
+            if (-d "$dir/$entry")
+            {
+              print "Keeping directory $dir/$entry ($$iDirList{$sourceline})\n";
+            } else {
+              print "Keeping file $dir/$entry ($$iDirList{$sourceline})\n";
+            }
+          }
+          delete $$iDirList{$sourceline};
+          # No more processing required
+          next ENTRY;
+        }
+        # Check to see if there is reference to inside this directory
+        if ($sourceline =~ m#^$dir/$entry/#i)
+        {
+          # something reference this as a directory need more processing
+          $partial_match = 1 if (-d "$dir/$entry");
+        }
+      }
+      if ($partial_match)
+      {
+        search_dir("$dir/$entry", $iDirList, $delete, $iVerbose) if (-d "$dir/$entry");
+        next ENTRY;
+      }
+      # No match place on deletion list
+      push @$delete, "$dir/$entry";
+      print "Marking $dir/$entry for delete\n" if ($iVerbose);
+    }
+  }else{ 
+    RealTimeBuildError("can not read directory $dir"); 
+  } 
+}
+
+# ProcessList
+#
+# Inputs
+# $iDataSource - ref to array of files to process
+# $iSrc - real location of source files
+# $iMRPSrc - where the mrp thinks they are
+#
+# Outputs
+#
+# Description
+# This function processes mrp files
+sub ProcessList
+{
+  my ($iDataSource, $iSrc, $iMRPSrc, $platform, $iVerbose) = @_;
+  
+  my %Sources;
+  my @ComponentList;
+  my %mrpHash;
+  
+  # Need the dir swap
+  $iDataSource =~ s/^$iMRPSrc/$iSrc/;
+  # Read the options.txt
+  open OPTIONS, $iDataSource or die RealTimeBuildError("Cannot open $iDataSource $!");
+  while(<OPTIONS>)
+  {
+    if (/^GT\+Techview baseline mrp location:\s*(\S+)\s*$/i)
+    {
+      $mrpHash{lc $1} = $1;
+      next;
+    }
+    if (/^GT only baseline mrp location:\s*(\S+)\s*$/i)
+    {
+      $mrpHash{lc $1} = $1;
+      next;
+    }
+    if (/^Strong crypto mrp location:\s*(\S+)\s*$/i)
+    {
+      $mrpHash{lc $1} = $1;
+      next;
+    }
+    if (/^Techview component list:\s*(\S+)\s*$/i)
+    {
+      push @ComponentList, $1;
+      next;
+    }
+    if (/^GT component list:\s*(\S+)\s*$/i)
+    {
+      push @ComponentList, $1;
+      next;
+    }
+  }
+  close OPTIONS;
+  for (my $i = 0; $i < scalar(@ComponentList); $i++)
+  {
+    # Fix path
+    $ComponentList[$i] =~ s#\\#\/#g;
+    # Need the dir swap
+    $ComponentList[$i] =~ s/^$iMRPSrc/$iSrc/;
+    open IN, $ComponentList[$i] or die RealTimeBuildError("Cannot open ".$ComponentList[$i]." $!");
+    while(<IN>)
+    {
+      my ($mrp) = /^\s*\S+\s+(\S+)\s*$/;
+      $mrpHash{lc $mrp} = $mrp;
+    }
+    close IN;
+  }
+
+  my @mrpList = sort values %mrpHash;
+  for (my $i = 0; $i < scalar(@mrpList); $i++)
+  {
+    # Fix path
+    $mrpList[$i] =~ s#\\#\/#g;
+    # Need the dir swap
+    $mrpList[$i] =~ s/^$iMRPSrc/$iSrc/i;
+    # Fix the CustKit / Devkit and techviewexamplesdk mrp locations
+    $mrpList[$i] =~ s#^/product/CustKit#$iSrc/os/unref/orphan/cedprd/CustKit#i;
+    $mrpList[$i] =~ s#^/product/DevKit#$iSrc/os/unref/orphan/cedprd/DevKit#i;
+    $mrpList[$i] =~ s#^/product/techviewexamplesdk#$iSrc/os/unref/orphan/cedprd/techviewexamplesdk#i;
+    $Sources{"$iSrc/os/unref/orphan/cedprd/SuppKit"} = "clean.pl";
+    $Sources{"$iSrc/os/unref/orphan/cedprd/tools"} = "clean.pl";
+    $Sources{"$iSrc/os/buildtools/toolsandutils/productionbldtools"} = "clean.pl";
+    
+    if (open MRP, $mrpList[$i])
+    {
+      my $mrpfile = $mrpList[$i];
+      my $mrpfile_in_source = 0;
+      
+      while(<MRP>)
+      {
+        my $dir;
+        if (/^\s*source\s+(\S.*\S)\s*$/i)		# must allow for spaces in names
+        {
+          my $origdir = $1;
+          $dir = $origdir;
+         
+          #Find any relative paths and add them to the end of the mrp location to create a full path
+          if (($dir =~ /\.\\/)||($dir =~ /\.\.\\/)||($dir !~ /\\/))
+          {
+		  $dir =~ s#\.\.#\.#g;		# .. becomes .	
+		  $dir =~ s#^\.#\\\.#g;		# add an extra \ incase one is not present at start of path, canonpath wil cleanup multiple \
+	  
+		  $dir = "\\".$dir if ($dir !~ /\\/);	#add \ to start of path if source line only specifies a file
+		  
+		  # Fix paths to /
+		  $dir =~ s#\\#\/#g;
+		  
+		  $dir =~ s/$iMRPSrc/$iSrc/i if ($dir =~ /^$iMRPSrc/);
+		  
+		  $dir = $iSrc.$dir if ($dir !~ /^$iMRPSrc/);
+		  
+		  $dir = canonpath($dir);
+          }
+	  
+	  # Fix paths to /
+	  $dir =~ s#\\#\/#g;
+	  
+          # Remove any / from the end of the sourceline just in case the directory was ended in one
+          $dir =~ s#\/$##;
+          # Need the dir swap
+          $dir =~ s/^$iMRPSrc/$iSrc/i;
+          # Fix the CustKit / Devkit and techviewexamplesdk mrp locations
+          $dir =~ s#^/product/CustKit#$iSrc/os/unref/orphan/cedprd/CustKit#i;
+          $dir =~ s#^/product/DevKit#$iSrc/os/unref/orphan/cedprd/DevKit#i;
+          $dir =~ s#^/product/techviewexamplesdk#$iSrc/os/unref/orphan/cedprd/techviewexamplesdk#i;
+          
+          if ($mrpfile =~ /^$dir$/i || $mrpfile =~ /^$dir\//i) {
+            # mrpfile covered by source statements
+            $mrpfile_in_source = 1;
+          }
+
+          # ignore location of release notes
+          next if ($dir =~ /^\/component_defs/i);
+          
+          if (!-e $dir) {
+            # CBR tools consider missing source as a fatal error
+            RealTimeBuildError("$dir does not exist (listed as source in $mrpfile)");
+          } elsif (!defined $Sources{$dir}) {
+            $Sources{$dir} = $mrpfile;
+          } else {
+            print "REMARK: $origdir in $mrpfile is already defined in $Sources{$dir}\n";
+          }
+        }
+      }
+      close MRP;
+      print "REMARK: $mrpList[$i] does not include itself as source\n" if (!$mrpfile_in_source);
+    } else {
+      RealTimeBuildError("Cannot open ".$mrpList[$i]." $!");
+    }
+  }
+  return \%Sources;
+}
+
+# ProcessCommandLine
+#
+# Inputs
+#
+# Outputs
+# @iDataSource array of multiple (txt file(s) to process)
+# $iSrc - real location of files
+# $iMRPSrc - where the mrp thinks they are
+# @iDummy - do not delete anything
+#
+# Description
+# This function processes the commandline
+
+sub ProcessCommandLine {
+  my ($iHelp, $iDataSource, $iSrc, $iMRPSrc, $platform, $iDummy, $iVerbose);
+  GetOptions('h' => \$iHelp, 'o=s' =>\$iDataSource, 's=s' =>\$iSrc, 'm=s' =>\$iMRPSrc, 'p=s' =>\$platform,'n' => \$iDummy, 'v' => \$iVerbose);
+
+  if (($iHelp) || (!defined $iSrc) || (!defined $iMRPSrc) || (!defined $platform))
+  {
+    Usage();
+  }
+
+  die RealTimeBuildError("Source directory $iSrc must be an absolute path with no drive letter") if ($iSrc !~ m#^[\\\/]#);
+  die RealTimeBuildError("Source directory $iMRPSrc must be an absolute path with no drive letter") if ($iMRPSrc !~ m#^[\\\/]#);
+  # Fix the paths
+  $iSrc =~ s#\\#\/#g;
+  $iMRPSrc =~ s#\\#\/#g;
+  $iDataSource =~ s#\\#\/#g;
+  if (! -d "$iSrc")
+  {
+    die RealTimeBuildError("$iSrc is not a directory") ;
+  }
+
+  # Need the dir swap
+  $iDataSource =~ s/^$iMRPSrc/$iSrc/i;
+  if (! -e "$iDataSource")
+  {
+    die RealTimeBuildError("Cannot open $iDataSource");
+  }
+
+  return($iDataSource, $iSrc, $iMRPSrc, $platform, $iDummy, $iVerbose);
+}
+
+# Usage
+#
+# Output Usage Information.
+#
+
+sub Usage {
+  print <<USAGE_EOF;
+
+  Usage: clean.pl [options]
+
+  options:
+
+  -h  help
+  -o  options.txt to process
+  -s  Source directory to process
+  -m  MRP source directory
+  -p  platform of product (beech or cedar)
+  -n  Not do anything (dummy run)
+  -v  Verbose
+  
+  Note:
+  Due to CustKit using the clean-src directory (%clean-src%) for source
+  The files need to be deleted from the %clean-src% directory
+  This tool substitutes directory specified by -m with the directory
+  specified by -s in all locations
+  This means that options.txt and the component lists and mrp's must be
+  referenced in the directory
+  specified by -m
+
+USAGE_EOF
+  exit 1;
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/defects_list.log	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,3205 @@
+########################################################################################### 
+Defect list run on //epoc/main/... in period Hurricane 0003 - 0017 (Mainline 00506-00567) - changelists 117787 136099
+###########################################################################################
+
+134227
+	Fix of defect APY-54VG2Z - Memory leak in SSLUtil
+133631
+	Fix defect ROS-54VLQ3 "Bluetooth code depends on order of expression evaluation..."
+133186
+	PAS-53FE77 "BTCOMM panic on IPC writing data to client, due to descriptor overrun (fixed in 6.1)"
+
+133186
+	HOS-54PELW "Host Resolver is inefficient at performing Name Requests"
+
+133186
+	BRY-53NG7J "RDebug::Print statements interfere with COMM Port 0"
+
+133186
+	HOS-54FF3L "RFCOMM will only forward non-RFCOMM Ioctls when an RFCOMM connection exist"
+
+133157
+	EDNMREK-4NCLRE
+133123
+	JON-538CKJ
+133123
+	LIG-53JD35
+133123
+	ALM-52VD3Q
+133123
+	PEN-528HVG
+133123
+	NEO-53MKER
+133123
+	NEO-52GD9E
+133123
+	SIK-4VHC3G
+133123
+	OKA-53DDHR
+133123
+	PEN-53LGN6
+133123
+	KAN-53TEN2
+133123
+	LIG-53VFS5
+132832
+	Fixed BAR-4YRCST (Unnecessary stack usage,) by changing EnsurePathL() in UF_DICT.CPP.
+132832
+	Hurricane : ROS-534E69: DBMS should use CleanupArrayDeletePushL()
+132799
+	KAN-537GCY   HWR work strange or not at all..
+132769
+	WHE-53SJYP MIDletExecutor should use wait/notify in waitForCompletion
+132769
+	WHE-54QJ7Y MIDP unit tests cannot be built
+132769
+	BRT-54EJ3N "SelectedIndex state of ChoiceGroup is lost when ChoiceGroup is appended to a form."
+132769
+	PLD-52BKPD "The same Form doesn't always have the same layout"
+132769
+	PLD-54JFPC: (KVM only) The midp.rsc file isn't installed by abld build, only abld test build
+132769
+	WHE-52XF3P itemStateChanged called after every change is made to TextField
+132769
+	WHE-53BDTB "Problems with key events"
+132769
+	PLD-54BNJ8: The VM deadlocks if the UI event thread blocks on IO
+132769
+	HOS-544PQQ "api/javax_microedition/lcdui/Font/index.html#GetFont test fails"
+132769
+	PLD-549RZ8: The MIDlet infrastructure is dangerously fragile to startup failures
+132769
+	WHE-542GL6 "rms ThreadTests doesn't run on kvmmidp"
+132769
+	PLD-52BKPD "The same Form doesn't always have the same layout"
+132769
+	WHE-53BDUY "drawRect draws 1 pixel too few pixels in width and height dimension"
+132769
+	HOS-544NPM: api/javax_microedition/lcdui/Font/index.html#CharsWidth test fails
+132769
+	PLD-542M5K: (KVM only) KVM should wait without a timeout when blocked on external events
+132769
+	LES-53LLYW: Known Problem In ARM KVM Loop
+132478
+	Fix defect DUG-54PENW "Migrate 6.1 fixes to Versit" by integrating 6.1 code.
+132478
+	DUG-53CQ4N "Descriptor overflow panic in FoldEncodeAndWriteValueToStreamL()"
+132478
+	DUG-53CQ9Q "Regression in Versit behaviour"
+132462
+	Fix for PAL-542D3V "Disconnect does not work. It does not prompt the user and does not disconnect"
+132462
+	Fix for PAL-548FJD "Code change in Email Editor's CEmailEdReadWriteInterface class"
+132462
+	Known problem; DOT-54NFGN "BIOMsg should not export a registration file to GT build"
+132462
+	 DOO-547HJX - "Messaging application crash when creating new account in TechView"
+132462
+	 DOO-547HJX - "Messaging application crash when creating new account in TechView"
+132400
+	Fix defect ROS-54MGXX "WINSCW builds enable C++ exceptions and RTTI"
+132280
+... //EPOC/Main/developerlibrary/doc_source/ToolsAndUtilities/DevTools-ref/Tool_Ref_RSS-file-format.guide.xml#1 branch
+132075
+		2)	Fixed CAN-547HD3 (Controller panics when no events to handle.)
+132075
+		3)	Further cleanup work following deconfiguration on USB client SIN-535KPU
+132075
+		4)	Propagated fix for PBN-4TKJ7J "Bluetooth panics with HCI error 23".
+132075
+		1)	Fixed FID-53YD58 (Bootstrap doesn't dump all MMU
+132075
+		1)	Fixed ALM-53LHP4 (Fixed Calibration settings are not saved).  Assabet only defect, 
+132075
+		2)	Fixed FOD-54MET2 (Display bytesPerLine calculated as bits not bytes).  Fixed the problem 								in template port + integrator.
+132075
+		1)	Fixed DOM-4XWC5P (Medlfs driver  is not reliable) This problem was concerned with 
+132075
+		2)	Fixed FID-53YDJC (Error LFFS driver SetupWrite() function) Semi implemented 
+132075
+		1)	Implemented change request JMET-544FUM - "Change RTransferWindow::MapInBuffer() to
+132075
+		1)	Fixed MOU-543FVR HAL attribute ECaseSwitch returns wrong value for Assabet.
+132075
+			Fixed FRS-534EWW T_SERIAL fails on Assabet. The following files were
+132075
+			b) Added "const TUint16 KUsbVendorId_Symbian = 0x0E22;" to usb.h (USB-IF assigned
+132075
+		1)	Fixed PEN-52ZM5A (Function doesn't do what it says.)  Changed comment
+132075
+		2)	Fixed FID-4W5BYE (Ambiguous error message in LFFS.)  Changed
+132075
+		1)	Fixed defect MAY-4ULHBH (B_OPEN crashes the file server on LFFS) by increaseing 
+132075
+		2)	Fixed defect FID-537HQA (LFFS: increase reclaim thread stack size) by doubling 
+132075
+		1)	Fixed defect DON-4WXDHK "RFs::RemoveFileSystem does not return correct
+132075
+		2)	Fixed defect THY-4WKD5P "gobble (in eshell) can delete existing files". If
+132075
+		1)	Fixed MOU-543FVR HAL attribute ECaseSwitch returns wrong value for Assabet.
+132075
+			Fixed FRS-534EWW T_SERIAL fails on Assabet. The following files were
+132075
+		1)	Fixed MET-53LG56 (Minor inconsistancies in T_TSCAN.CPP.)  Changed
+132075
+		1)	Fixed defect ROS-53FLTJ "F32TEST T_LDLL doesn't build for WINSCW". Fixed
+131970
+	GUN-523NES, Resource file structs lacks useful comments
+131970
+	OEL-52V97J, EPOC.ini should not name old hardware
+131969
+	ROS-4YBDWJ, Mishandling of QUARTZSPLASH semaphore
+131969
+	ALM-4Z8BAT, UI spec error? According to the UI spec the System information has the wrong look
+131969
+	ANN-53UFZY, QSyncML is populated in the wrong Folder...
+131969
+	MAT-528FL7, AppLauncher should use new AppArc functionality
+131964
+	ROS-4YBDWJ, Mishandling of QUARTZSPLASH semaphore
+131964
+	PAA-4Y6JMK, CAppickerView::RunPrefDialog can leave but has no trailing L
+131964
+	SIK-4ZVBVF, Icon not changed for the app when changed for the first time.
+131941
+	EXT-53RAFP ""Access denied" time to time with communications to outside world".
+131906
+	Fixed defect TRN-54JEDN.
+131865
+	BEN-525ASKA change in email account affects email preferences
+131840
+	BEN-54AHB6 Messaging crashes when tapping a mail when busy
+131840
+	XTJ-54HLZT Find in Messaging doesn't stop when a leave occurs
+131840
+	LIG-549EAD KERN-EXEC crasch when opening Messaging menu.
+131550
+	defect fix for DOT-53MLUJ
+
+131550
+	fix for defect  ANN-547HFG
+
+131550
+	defect fix for: MOR-54JAXU
+
+131491
+	ROS-548K8G "Panic JOTTER 10 switching views in RefUI Jotter"
+131454
+	APY-53NC2V - Memory leak in ECom Server
+131454
+	KRN-53SL4Q - TLS is shared when simulating two processes under WINS causing bad handle panic
+131454
+	APY-53DGQ5 - ListImplementationsL leaves incorrectly when no implementations
+131454
+	EVS-53YF6S - __PROFILE_ECOMSERVER__ makes code difficult to read.
+131454
+	APY-52NK8X - ECom includes should be <ecom/...>
+131454
+	Added a unit test for defect KRN-53SL4Q (using ECom multi-threaded)
+131437
+... //epoc/main/generic/application-protocols/http/Test/T_HttpRegression/t_CLE-4Y5LC9.cpp#3 integrate
+131416
+	ALM-4VPGZR, A beep should notify the user of the fact that the virtual keyboard could not be launched.
+131416
+	BEN-53BGCE, Text in VK caption doesn't get truncated
+131416
+	EDNABEN-4MDCBT, Do-it not functions in VK.
+131416
+	LIG-54EHGY, Incorrect caption on VK.
+131416
+	PIA-544MK7, Incorrect behaviour when Previous and Next buttons are tapped on VK.
+130666
+	ROS-54EG6Z - Corrected in-source documentation of CBitmapContext::BitBltMasked()
+130666
+	ROS-54GEPA - Removed redundant lines.
+130664
+	Fix defect THY-54BG7T "Error when invoking GNU make directly"
+130664
+	Fix defect PLD-54FQ6U "Recompiling for ARM after making source changes results in link failures"
+130659
+	TUR-543C9X      Hardware keys not available on the ARM Integrator
+130659
+	PEN-53C9UQ   Impossible to test slim Quartz on the Integrator
+130649
+	Defect fix for: PRX-54GB3G "Failure to reset member variable to 0 after deleting."
+130489
+	Fix defect THY-54HKY9 (Remnants of linda4 variant are still 
+129678
+	Fix for defect PER-53TC85: "Apparc tests TServ and TServ_2 fail due to Emime changes"
+
+129678
+	- Fixed JON-53RMTR ("When closing applications on mainline build Error message appears").
+
+129678
+	- Change UIKON.IBY to use EIKCORE.DLL from DEBUG_DIR (i.e. udeb) rather than BUILD_DIR (i.e. urel) because CONE.DLL goes into the ROM as DEBUG_DIR (i.e. udeb). The _DEBUG-only code in CCoeEnv's constructor makes a HAL call which allocates some memory on the heap which never gets freed (it is not orphaned though, so it is not a bug). The problem for applications is that the CCoeEnv-derived-class object gets created inside a heap-mark/heap-mark-end - the heap-mark-end will therefore "notice" the HAL's lingering heap-cell as a memory-leak. EIKCORE.DLL gets around this by making a _DEBUG-only HAL call to pre-allocate this heap-cell before the heap-mark/heap-mark-end, hence why we need a DEBUG_DIR EIKCORE.DLL if we have a DEBUG_DIR CONE.DLL.
+
+129678
+	PLD-53LFUN - REikAppUiSession.Connect() sometimes returns -1 during emulator startup.
+
+129678
+	Defect Fix:  ROS-54EHCX "WINSCW emulator problems with FEPCHINA"
+129665
+	Defect number:  CAH-52RLXZ Audio streaming Open(settings) : settings are ignored
+129665
+	Defect Number:  CAH-52SLAA: Audio streaming server doesn't return volume & rate settings.
+129333
+	ANN-53VAQC Selection tab stays on applauncher icon when a MIDlet is started
+129333
+	DAN-53ZBRB Tapping on a MenuBar without any items in the pane results in division by zero.
+129333
+	DAN-54BCEK Kamikaze MIDlet works poor in Quartz
+129333
+... //EPOC/main/Quartz/midp/kvmmidp/tools/emulator/META-INF/distribution.policy#1 branch
+129333
+... //EPOC/main/Quartz/midp/kvmmidp/tools/emulator/META-INF/MANIFEST.MF#1 branch
+129308
+	Defect fix (No: AHD-52ZGGL):
+129131
+	PAA-549MMV, Emulator crashes when switching color schemes and opening agenda
+129030
+	SEF-549F5F "BT Stack initialisation doesn't fail when BT.ESK is not present"
+
+128883
+	- fix defect WHE-52VKNF
+
+128775
+	Defect fix: (Defect No: AHD-52ZGGL)
+128446
+	JON-53RJCD Cannot open received BIO messages.
+128446
+	KAN-549EVW Messaging panics when you leave an email and have about 150 mails in the inbox
+128194
+	Fixed defect ROS-52QL64 "Calculator digits are drawn incorrectly in WINSCW emulator" by
+128189
+	Warning: The fix for EXT-52AGT3 includes API changes. The affected components are updated and included in this release:
+128189
+			EXT-52AGT3 "No possibility to inform remote OBEX client if e.g. file received over Bluetooth is not able to be received "
+128189
+			CAL-4Z7LY4 "KSOReadBytesPending socket option asserts if there are zero bytes pending"
+128189
+			DAS-4ZTMVK "CObexBaseObject::GuessTypeFromExtL sets incorrect MIME type for vCalendar (& should this method even exist?)"
+128189
+			PAS-522HSG "UPF 6: (Nokia) OBEX Connect packets with 0x0000 Max packet length"
+128189
+			JON-4YSJ7M "Obex does not strip nullterminator from type string"
+128189
+			DIN-4U7ND2 "OBEX should ensure Type headers are sent with ZeroTerminator"
+128189
+			DIN-4YSLSC "OBEX shouldn't send NULL terminator on zero length Unicode strings"
+128189
+		Fix for defect EXT-52F9ME
+128097
+	Fixed defect FIR-53TN43
+128089
+	ALM-53SH8G
+128089
+	ALM-4Z7AGE
+128089
+	ALM-53JF66
+128089
+	ALM-53JFOW
+128080
+	JON-549L6F Send attachment dialog is NOT supposed to appear when having only one attachment
+127825
+	<Integration to the mainline of some changes to distribution.policy files, to correct the categorisation of the WINCRYPTO binaries and header files in the mainline. Only the distribution.policy files have been changed, to fix the defect WBAG-525J7Z: "Correct categorisation for WINCRYPTO binaries".>
+127805
+	Fix for defect JUA-54zkz9 -  
+
+127805
+	Fix for defect PER-543GHW: "Spanetest is test code and should not be included in mainline builds"
+
+127805
+	Defect Fix: CHM-543LCK "Need a change in behaviour of EnableServerEventTimeOut"
+127666
+	<Corrected categorisation of WINCRYPTO code in mainline as per CR number WBAG-525J7Z>
+127654
+	QUN-53VGMP "BTCOMM panics when closing (using TBTTerm)"
+
+127654
+	MEN-4XLDZ6 "Status response with error not supported"
+
+127654
+	EXT-53BFYG "Authentication (PIN code) cancelling results an error when the link is already disconnected"
+
+127654
+	MEN-4V4MGZ "Two frame timeouts in RFCOMM can cause Panic"
+
+127654
+	QUN-53TL8J "6.1 L2Cap defect which didn't make it into 6.2"
+
+127654
+	EXT-53BHBT "Command status event with Error code "Command Disallowed" is not handled"
+
+127654
+	EXT-4XWF9Y "BT SDP server crashed when construction phase leaves in WINS"
+
+127654
+	ROS-534EJ9 "CBTLinkManagerApp::GetACLLinks() needs to use CleanupArrayDeletePushL()"
+
+127654
+	PUN-4YSK9M "SDP client crash when baseband abortively disconnected"
+
+127654
+	FRU-52SK4W "String length calculation error in sdp test validation code."
+
+127654
+	ROS-52PK6X "Bluetooth crashes mainline Quartz emulators"
+
+127654
+	MEN-4XLDZ6 "Status response with error not supported"
+
+127654
+	FRU-52GEQ7 "FCOn/FCOff with CBFC: logic reversed"
+127064
+	KAN-53RJL6
+127064
+	ALM-53BEEB
+127064
+	NEO-53BH7Q
+127064
+	NEO-52GCSC
+127064
+	ALM-53NBQR
+127064
+	ROS-53LJEL
+127064
+	GUN-4WDCNT
+127064
+	JON-53TB6U
+127064
+	ALM-53SG23
+127064
+	REK-4WUFST
+127025
+	Fix defect FOD-53SN8N "Can't pass more than 1024 characters into ar"
+126710
+	Defect Fix DAS-53VBEL:"App Threads can be renamed earlier"
+
+126710
+	Defect Fix WEP-52ZH8D:"CEikEdwin::MinimumSize() returns height which is too short!"
+
+126710
+	Defect Fix MAT-529HJA:"StatusPane window background color not updated"
+
+126710
+	Defect fix :LAG-53YEW2
+
+126693
+		MOU-53RF6J - Trying to install big files and swith to other app panics the viewserver.
+126499
+	WAN-543CA : Port Clashing issues between Bluetooth, IR and Symbian Connect
+126496
+	BOY-543KLQ : PLP uisng incorrect number of stop bits causing failure on Integrator
+126416
+	Fixed defect ROS-53NGK3 "screendriver uses depreciated UserHal::MachineInfo call" by switching to using HAL functions.
+126286
+		LEQ-4YQJ8X - jar file now deleted if download fails.
+126191
+	WHE-53FJB6: Problem with menu redraw when running Canvas repaint test
+126191
+	WHE-53BC7D: Cannot alter Gauge value by -1/+1
+126191
+	WHE-53BDA4: Cannot include "+" in PhoneNumber TextField
+126191
+	WHE-53FJW8: Panic if no descriptor
+126191
+	WHE-53LK5G: (kvm only) muFrac MIDlet fails to connect
+126191
+	WHE-53FMMW: Panic when exiting Sokoban
+126108
+	DOT-53sdxw : EStrayEvent.
+126040
+	3)	Fixed FID-4ZKEKQ (Inefficient memfill in MMC driver.)  Use Mem::Fill()
+126040
+	1)	Fixed THY-52WJTE (DLL static data support doesn't
+126040
+		Additionally it is not created for ROM-based DLLs as
+126040
+	2)	Fixed generic bootstrap defect FID-53BKSD (920T
+126040
+	3)	Fixed kernel defect THY-53FE32 (Confusion between
+126040
+	4)	Fixed generic bootstrap defect THY-53LC9Y (crash when
+126040
+	5)	Fixed generic bootstrap defect FID-53LKTG (Bootstrap
+126040
+	1)	Fixed WIR-53FANN (RArrayBase::HeapSort makes assumption about max iEntrySize value)
+126040
+	2)	Fixed MOS-53FLUF (HAL attribute ordering incorrect).  Moved EPenState from
+126040
+	3)	Fixed MOS-53RHP3v(Screen width and height returned by HAL are constant).  Added func
+126040
+	2)	Fixed BAN-52BKKC Physical device driver for serial port have a defect and
+126040
+	1) Fixed PAS-4WRMQS: "Requeing a read() after PowerOn Panics the Driver/Kernel".
+126040
+	2) Fixed SCE-534GAE: "Problems with Serial Comms LDD power handling"
+126040
+	3) Fixed SCE-52YHQE: "Serial change notifier problems".
+126040
+	1)	Fix defect ROS-53TDGG "Access Violation in CreateFirstDllRefTable" by allowing for
+126040
+		only be included into ASSP-specific builds.  See \e32\release.txt.
+126040
+	1)	Added tests to T_TIME to verify defects FER-4XGDVT and FER-4XDK9G
+126040
+	1)	Fixed MOS-53LEVN t_lfsdrv uninitialised var on WINS.
+126040
+	1) Fixed SCE-534FSY "Serial power handling tests disabled in T_SERIAL"
+126040
+	2) Fixed PAS-4WRMQS "Requeing a read() after PowerOn Panics the Driver/Kernel"
+126040
+	3) Fixed MAY-4ZGH8S: "t_serial shoots itself in the foot, and can never pass".
+126040
+	1) Fixed PAS-4WRMQS "Requeing a read() after PowerOn Panics the Driver/Kernel"
+126040
+	1)	Fixed 6.1 defect DON-52SC7L (Disk space notification does unnecessary
+126040
+		included in ASSP-specific builds.  See \e32\release.txt.
+125979
+	defect fix for BAR-53BEZ6 "Need to delete app-services\wlddatabasekit\tools\WLD_ISO.DAT"
+125706
+	ALM-53EF93Not possible to open the Find dialog from a message opened from the Found dialog.
+125650
+	Fix improvement for: SIK-52VGRE - MinimumSize() returns TSize(0,0) until StartDisplayingMenuPane() is called.
+125650
+	Defect Fix CHM-53KPSL "Uikon could use a better way of determining the foreground app"
+125601
+	Fix Defect JUA-53ULTP "abld reallyclean wins" waits for the user input in order to finish execution"
+125316
+	JON-53RFVC Messaging crashes when scroll and then switch to other folder.
+125316
+	GUN-4WDCWU Uses depricated methods
+125221
+	Fix defect ROS-53TDGG "Access Violation in CreateFirstDllRefTable"
+125176
+	ALM-4YR9YM, Wrong dialog is displayed when trying to install from a removed memory card.
+125176
+	ANN-65NM4J, Missing text in dialog.uninstall.SoftwareNoneAppVersion
+125176
+	LIN-4ZUETQ, Dialog text in App Installern is not wrapped.
+125176
+	ANN-65NH2G, The _epoc_drive_j variable in epoc.ini stops appinstaller from working correctly
+124983
+	defect fix for BAR-53BEVC "The Wldtools component still refers to "Psion" in a number of its source files"
+124938
+	KRN-53EGYF  Missing target uri error when synching multiple messages with IBM
+124938
+	KRN-53EH2E  Crash in reference toolkit when syncing multiple messages #
+124938
+	KRN-53LE8H  The engine should set the charset type in the transport adapter
+124938
+	KRN-53NH8Z  base64 Nonce values do not decode when they are in binary format
+124938
+	KRN-53RJYL  Delete from openwave causes a Warning failed to delete record in EPOC
+124938
+	KRN-53RE2W  AddItemL Function in contacts DBA needs to removed UID from versit item
+124672
+	MREK-4YQMK9 : Allow listboxes to have customizable scrollbehaviour
+
+124672
+	CHM-52VPCS : Allow status panes to report their exact size
+
+124611
+	JON-535KBL Delete button in To do detail view is not dimmed if new entry is opened from detail view.
+124574
+	is now off (since CR MMAT-52VFBC were rejected).
+124532
+		ROS-53LMAW - http is now included in ROM as required by certman.
+124488
+	TUR-53CE6C Calculator crashes when exceeding max numbers and adding
+124488
+	TUR-53BJZNpasting max. chars from jotter generates incorrect response
+124488
+	TUR-53CF2UClearing a negative number from calc display only requires 1 "<--" button press
+124488
+	DOO-53BE95Calc display turns red with underline.
+124470
+	WBAG-525HXY crypalg except random and tsrc moved from "B Export Restricted" to 
+124470
+	WBAG-525J29 random from "B Export Restricted" to "EExport Restricted" 
+124470
+	WBAG-525HEV certman from "D" to "E"
+124470
+	WBAG-525J7Z wincrypto from "B Export Restricted" to "D Export Restricted"
+124469
+	ROS-53KHNF Incremental link option now disabled in Microsoft Visual C++ v6.0 
+124441
+	 PEN-53CB6A        Quartz is turned 90 degrees on the Integrator
+124427
+	FSJN-4Y3FTPChange default behavior for viewers
+124388
+	XTJ-53RKLQ Erroneous info print in Beam received dialog
+124387
+	WEP-53DCQL Beamed Inbox not visible in Messaging base view.
+124387
+	XTJ-53RKFW Tapping cancel on entry in VCalViewer deletes entry in Beam received list
+124386
+	NIN-52CEEU default service unknown when SwitchToMessage() called
+124378
+	INEO-4Y3ETF Agenda, truncation of entries' description in Day View
+124367
+	LIG-53BES8, Installer application hangs in Installing software dialog.
+124268
+	Fix for defect BRY-53DPN9: WAP Stack can't handle more than one connection per session.
+124047
+	Defect Fix for BRY-53NG7J 
+
+124037
+	Defect fix for CHM-53ML7W - "EikSRv startup fails on Quartz".
+123758
+	Fix defect ROS-52XGQY "fixupsym.pl is broken by recent MAKMAKE changes"
+123712
+	fixes defect EDNKPLD-4KCP3R by ending pending call to receive on a closed socket.
+123462
+	Fix defect BRN-52KL2Y "\epoc32\localisation\*.rpp and *.info files are not reported by the build tools as releaseables"
+123449
+	Fixed defect BAR-53DCT6 ("The use of a segmented buffer causes a problem when compiling certain databases").
+123435
+	- Fixed PIA-4ZKLBG - T_IMCM06 panics
+123320
+	Fix for defect APY-52PBYB. New resource struct has been added to allow binary data in default_data and opaque_data.
+123320
+	Added test for defect EVS-4Z9BPG.  Check use of TLS in a plug-in.
+123311
+	JON-53BF2S Email and Fax are saved to wrong folder when selecting Send as.
+123284
+	HAN-4YALGX "Errors not propegated from versit"
+123284
+	WAG-53KJNV "Possible memory leak because C class is mistaken as T class"
+123284
+	WAG-53KK8C "Passible memory leak because a leaving function is a parameter of the allocating function"
+123213
+	MOU-53KFNR, Clicking in help title pane results in crash
+123213
+	EDNMREK-4NCLRE, Help appears behind the Menubar
+123209
+	WEP-53FBT6 Not found dialog when you try to download IMAP headers
+123120
+	Fix for defect BAD-52VE28 Zero-width on break space (OxFEFF) is not zero width.
+123028
+	WAN-53DHFN, Agenda: Hung in Set Repeat Dialog
+122989
+	Fix for defect SAE-53CMAP Form's RScreenDisplay::SetGraphicsDeviceL does not roll back on leave
+122772
+	Defect fixed:   ROS-53FKEG  Jotter problems in mainline 00528
+122754
+	defect fix: EXT-4X3EFX for Calypso 
+122752
+	CRZ-4WYGV7Scheduled fetch for dial up does not show that it fails when already connected through gprs
+122752
+	BEN-4YXFY5Failed scheduled fetch freezes the screen for several minutes
+122751
+	JON-4X8KV3: Default button missing in CertDeletedDialog
+122658
+	EXT-4U4FVE: Support for message waiting indications specified in CPHS Phase 2 spec
+122586
+	MOU-53EF2W
+122585
+	MOU-53ED7Z
+122537
+	update to defect fix  ROS-534DBB "Use of new[] needs checking in ConArc_plugins"
+122533
+	Defect Fix: ROS-534DBB "Use of new[] needs checking in ConArc_plugins"
+122522
+	Fixed defect PEN-536JJ7
+122488
+	JLID-52FF2l change request: Add support for Priority to KeyCapture
+122411
+	BEN-52HH8S Program closed when tapping cancel in Get&Send in Messaging base view
+122388
+	Hlpmodel defect fixed: MOU-537G9Y
+122271
+	Fix defect ROS-53ECQY "Can't disable WINSCW builds in PRJ_PLATFORMS"
+122166
+	ARL-4T5AK2
+122166
+	JON-4VVEYJ
+122166
+	MOR-4VQ9FZ
+122166
+	KAA-4WK8MY
+122166
+	LIG-4X7G3P
+122166
+	OAY-4X3K2K
+122166
+	KAN-4XLJK9
+122166
+	JON-4YDC8T
+122166
+	OTS-4VBFX4
+122166
+	LIG-4T9CAB
+122166
+	OEL-4VGJ9J
+122166
+	OEL-4VGJ8H
+122166
+	CAD-4UUKV7
+122166
+	SLR-4V8FNA
+122166
+	MOR-4VPAWS
+122076
+	LIG-4W4JZS
+122076
+	MAT-4X7LA2
+122076
+	SIK-4VQAPP
+122076
+	LIG-4VPK7X
+122076
+	LIG-4VWB2K
+122076
+	KAA-4WCAB8
+122076
+	CVN-4VPGSE
+122076
+	EKD-4W5G3M
+122075
+	KAN-4YXEQX
+122075
+	KAN-4ZDCR4
+122075
+	KAN-4ZDCHY
+122075
+	BEN-4ZSFV3
+122018
+	Fix for BAD-535DWS: Bidirectional ordering in TBidirectionalState does not work
+122017
+	DUG-4ZLLGG "Lock server should use global message pool"
+
+122017
+	EXT-52WGT8 "CContactViewBase async events panic"
+
+122017
+	EXT-52YGDT "CContactLocalView works incorrectly with some preferences" 
+
+122017
+	EXT-4ZZH86 "Non-leaving functions call leaving functions in RContactRemoteView class"
+
+122017
+	EXT-52JGUG "RContactRemoteView::ContactsMatchingCriteriaL() is not OOM-safe"
+122007
+	WHE-53BCSB OOM running Swirl2 MIDlet
+122007
+	WHE-4TZEP9 MIDlet doesn't have focus after foreground MIDlet closed
+122007
+	WHE-52QH2A (pjava only) Froggy splashscreen not displayed
+122007
+	DAN-4YTE8C Items don't get ItemStateChanged for pointerevents events above clientrect/2 in X-led.
+122007
+	EXT-52G68W Multiple alerts don't seem to work if they are triggered using a timer.
+122007
+	DAN-523HCW Wrong index passed on to Java from CMIDForm::HandleControlEventL() (always 0)
+122007
+	EXT-52Q8BJ midlet with no user interface does not exit properly
+122007
+	Additional fix for ALN-4YGJTU F1 (menu key) key events are incorrectly passed through to Java
+122007
+... //EPOC/main/generic/midp/kvmmidp/tools/emulator/META-INF/distribution.policy#1 branch
+122007
+... //EPOC/main/generic/midp/kvmmidp/tools/emulator/META-INF/MANIFEST.MF#1 branch
+121982
+	Fix defect BRN-52RCVD "Evalid doesn't work correctly when run from a directory more than one level deep."
+121944
+	ALM-4WMFR3
+121944
+	JON-4YYHWW
+121936
+	DUG-534M86 "Straightforward ROM size reduction for AGSVEXE.EXE"
+121912
+	BEN-52CDAP
+121864
+	JON-4Y4FNG
+121863
+	PEN-4X6C8N
+121847
+	Fix for defect KRN-52GGEY: Secure Socket Panic -14
+121785
+	Fixed KAA-4YKDCB
+121784
+	THE-4YSLPM
+121784
+	CRZ-4WTHYS
+121784
+	CRZ-4WTHXD
+121730
+	Fixed defect MAT-52CH8M
+121725
+	Defect Fix: DOO-52VKFU "You cannot copy a Directory containing files to the C drive".
+121701
+	AMS-4WZBW7
+121701
+	AMS-4WZC7Z
+121701
+	NEO-4UND6Q
+121701
+	CRZ-4XHGAL
+121701
+	JON-4WRC2Y
+121701
+	KAN-4Y4DVT
+121701
+	EKD-4YKAU9
+121701
+	KAA-4YKD97
+121701
+	JON-4YJH5H
+121701
+	KAN-4YTFCM
+121701
+	ALM-528EKV
+121694
+	Defect Fix: PER-53BGW2 "Abld test build fails for Apparc"
+121571
+	Changed IPR category of form/inc/... from Category A to E as per SCCR NSAE-4ZTLMF
+121538
+	WEP-52ZFET Not found dialog appears when you tap Yes button in incomplete messages dialog.
+121538
+	XTJ-53BC3T Returning to listview when replying to incomplete message crashes.
+121500
+		1)	Port defect fix for defect ALM-4VQB5V Ditizer freezes (was: The Brutus
+121500
+		1)	Fixed FID-4ZWDMZ (MMC program poll is too slow to be useful.)
+121500
+		1)	Fixed defect FER-4XDK9G - "Assabet timers go off at strange intervals."
+121500
+		2)	Fixed defect MET-52AF29 - "Power off/on may freeze Assabet/Brutus"
+121500
+			This helps fix defect MAY-4XWM9Q - "e32 does not build in an IPR-E OCK".
+121500
+		1)	Fixed BAN-52BKTN (CAsyncCallBack ctor TCallBack& could be const). Made
+121500
+		2)	Fixed BAN-52BKV2 (Should inline TInt RSubSessionBase::SubSessionHandle() be
+121500
+		3)	Fixed THE-52WJR6 (Equality operators for TThreadId and TProcessId should be
+121500
+		2)	Fixed FID-52HBTA: USB driver not leave safe
+121500
+		3)	Fixed ROS-534EAV: usbdma.cpp mixes new[] and delete
+121500
+		1)	Fixed  PAR-52CLSB (920T bootstrap code is Cat D it should be Cat E).  Changed
+121500
+			categorisation to E after source code recategorisation CR - CMOS-52WJ5V
+121500
+		1)	Fixed DON-4ZKDKK (Moving a directory leads to incorrect parent directory
+121500
+		1)	Fixed defect DON-4ZSLL9 "CMountCB::ControlIO cannot be called when
+121500
+		2) 	Fixed defect DON-52FJDQ "RFs::ReadFileSection() does not alway return
+121500
+		1)	Fixed ROS-4Y3CUU (T_MATH and T_FLOAT rely on the compiler generating denormal constants)
+121500
+		2)	Fixed MOS-52BH6B (t_math loop problem)
+121500
+		1)	Added t_mvdr to test fix DON-4ZKDKK (Moving a directory leads to
+121500
+		1)	Fixed defect MAY-4ZMMZY "F32Tests for LFFS require Cat-A code to build"
+121500
+			and MAY-4ZMMXC "F32test server\t_dspace cannot be built by
+121443
+	defect fixing ROS-534F3D, ROS-534F5K, ROS-534FFB, ROS-534G3C,  ROS-534FM3,  ROS-534FNZ, about arrays created with new but deleted with "delete" instead of "delete[]".
+
+121443
+	ROS-534F3D BITGDI test code mixes new[] and delete
+
+121443
+	ROS-534F5K WINSCW array of objects problems in FBSERV
+
+121443
+	ROS-534FFB GDI TRGB.CPP code mixes new[] and delete
+
+121443
+	ROS-534G3C mm-server mixes new[] and delete
+
+121443
+	ROS-534FM3 PDRSTORE mixes new[] and delete
+
+121443
+	 ROS-534FNZ screendriver mixes new[] and delete
+121440
+	fix defect Number:  ROS-534FTF
+
+121244
+	Defect Fixing TOU-535J4S
+121211
+	Fix for defect SHH-536LMR ECOM IPR Categorisation needs to change
+121211
+	Change the ECom Source code Distribution classification from category A to Category D as required, and Authorised by CR CWAK-52NLCK
+121204
+	BOX-537AER "OOM safety problems in fntstore" - TRAPed offending call to a leaving function and added an explicit delete.
+121122
+	Defect Fix WEP-52ZHKU "UIKON: Crash removing Picture Factory from CEikonEnv"
+121118
+	Defect Fix MAT-52SHZK: "UnblankScreen() crashes when closing down EikSrv".
+121043
+		MREK-525BV5 Add a dialog to the parsers
+121039
+	IHUN-4XTN8VAdd clipboard support to Quartz virtual keyboard
+120989
+	TUR-535DVQ    ARM Integrator: Hurricane build refreshes itself every 2 seconds.
+120971
+	Fixed REK-4ZDHZW
+120970
+	ADN-52HCPR defect fixing: T-notify now won't crash
+120914
+	OEL-52XDEZ Application launcher looks ugly and contains lots of empty space in thin config
+120912
+	WEP-534D9T Not found dialog when you select New in SMS menu
+120912
+	WEP-52ZFQM Not found dialog when you try to open a received SMS
+120740
+	Etel: Fix defect DOE-4Z6C6Y - Provide an API for ETel clients to know how many clients in total have an handle open on a call object
+120713
+	A defect fix has also been fixed ROS-534ESX "WINSCW problems in PLP"
+120696
+	ANN-52ZF5G, Selecting Send As from Agenda or Contacts result in a Not Found dialogue.
+120695
+	KAA-4WZENK, Incorrect duration on day view
+120682
+	PAD-52PCV9 Statusbar not working properly (No icon visible)
+120283
+	Fix defect ROS-52XF6E "ROMBUILD produces incorrect S-Record checksums"
+120283
+	Fix defect ROS-52ZED7 "ROMBUILD crashes if section 1 overflows in 2 section ROMs"
+120230
+	Fixed defect UDN-4YCJ76. Fixed thttp test harness as it got broken from the changes made to the phttp file locations
+120196
+	Fix for defect EGA-4ZMNKM.
+120192
+	       PIA-4XNHS5 - V3: EDNTHYN-4V3FW2 - IMAP4 move and copy inefficient
+120192
+	       KAI-4YKHLL - EDNMULH-4XWBQ5-Investigate not storing MIME envelope when doing an IMAP syn
+120192
+	       KAI-4YKJEC - EDNTHYN-4XUCKK-IMAP: move should not delete mail if copy fails
+120192
+	       KAI-4YKHNW - EDNMULH-4YBCCY-Enhancement: Investigate IMAP fetch block size
+120192
+	       HOL-4V8HZX - IMAP4: downloading 800 message headers
+120192
+	       RAN-4XUEP7 - Charset UID not stored in CImMimeHeader : IMAP
+120192
+	       PIA-4XLDE9 - V3: Problems downloading from OpenMail Server.
+120192
+	       PIA-4W5HV9 - V3: IMPS, POPS should stop synching on low memory
+120192
+	       ANN-4WSCF9 - IMAP doesn't work
+120192
+	       RAN-4VBJ2R - IMAP doesnt decode encoded subject line
+120192
+	       HOL-4V8KL4 - CImCacheManager does not delete child entries of email messages
+120192
+	       HOL-4V8KBA - Some messages cause IMAP synchronisation to fail        
+120192
+	       Fix for defect PIA-4YBCTG V3: EDNEWIH-4XPDDY - CSendAs::CreateMtmArrayL not leave safe        
+120192
+	       KAI-4XPGQH - "Shouldn't be allowing SetVersion in EmailBaseSettings",
+120192
+	       IQL-4YGH33  - "Some comments on msg\impcmtm and msg\impssrc need cleaning"
+120192
+	       PIA-4W5H83 - V3: Sending word document as mail ---> application panic
+120192
+	       MEA-4TWG82 - "URI resolving should exclude irrelevant message entries"
+120192
+	       KAI-4YKJUT - "V3:EDNSKAI-4Y49ZQ-Cannot edit mail account settings after mail sending"
+120192
+	       EDNNBAT-4NVDY4 -"Misleading error when trying to send to an SMTP serve on a different domain" 
+120192
+	       KAI-4XPGQH - "Shouldn't be allowing SetVersion in EmailBaseSettings   
+120192
+	       HAR-4UMFTJ - The fax mtm should leave fax resolution alone
+120192
+	       SVN-4VBK2J "Sending vcal, vcard, to entry as fax fails".
+120192
+	       BUN-4WREDW Messaging does not have #defines to allow logging code and text to be removed from builds     
+120192
+	       REK-4XVJP2 Messaging should have it's own ini-file
+120192
+	       ALR-4XHKS8 v3: CMsvOperation::Cancel is broken in the message server
+120192
+	       EXT-4VMCLR "MsvStore Error 1"
+120192
+	       GUY-4YCNER CMsvEntry::SetSortTypeL is not leave safe
+120192
+	       GUY-4Y3DSJ Message server startup ignores return code of create semaphore
+120192
+	       GUY-4Y3HNE Message server should change messages to suspended on startup.
+120192
+	       PIA-4XLGY7 V3: EDNTDAS-4WYFRU - Mailinit fails with "not enough memory" when initialising for the first time on WINS
+120177
+	Defect Fix: MAT-528LXB "Scrollbar window background color not updated"
+120066
+	Fix for defect GAL-4ZPDY5: Copyright not acknowledged in PPP/DES.
+120049
+... //EPOC/Main/developerlibrary/doc_source/Common/ToolsAndUtilities/DevTools-ref/Tool_Ref_RSS-file-format.guide.xml#3 delete
+120027
+	       EDNCWIN-52GFF2 defect fixed (for  v3.0 database)
+120027
+	       HOE-52JC3F defect fixed (for  v4.0 database)
+120004
+... //epoc/main/epocconnect/Installation/MS-Files/README-GER.txt#3 branch
+119997
+	MREK-525BV5 Add a dialog to the parsers
+119907
+	Improved tbackup test code in order to reproduce the first defect (STE-52XE4L).
+
+119907
+	STE-52XE4L - No notification will occur if the backup operation aborts.
+
+119907
+	DOT-52SJGD - CEikMenuBar should expose its title array.
+
+119907
+	SIK-52VGRE - MinimumSize() returns TSize(0,0) until StartDisplayingMenuPane() is called.
+119850
+	GsmTsy: Fix for PAS-522JCA and PAS-522JGF
+119659
+	FER-52SL57 "WSERV needs to TRAP calls to the key click plugin" - added TRAPS as recommended.
+119659
+	ROS-52QG2V "Incorrect use of delete in CMdaPixelWrite::Reset()" - added [] when deleting arrays.
+119659
+	CHM-52CKMH "Various Graphics _Ls can be replaced by _LIT" - replaced, for the most part, _Ls with _LIT.
+119659
+	KLN-52XENW "Missing semicolons at the end of lines in gdi.h" - added semicolons.
+119578
+	- Updated the IBY files accidentally omitted from changelist 119221 to complete the fix to AHD-52NCVA ("EPOC CONVERTOR(cnf) files not built during the overnight build process").
+119508
+Change 119508 by AndrewJ@LON-ENGBUILD17_local_mainline on 2001/09/25 17:21:30
+119498
+	Additional testcode to verify HAN-4XNDX5 'Can't delete an entry if its the last in the stream'
+119404
+	TVersit EGA-4ZPL4S
+119363
+	CHM-52CKGA Various uses of _L can be replaced by _LIT
+119362
+	CHM-52CKGA, various uses of _L can be replaced by _LIT
+119361
+	CHM-52CKGA _Ls replaced by _LIT
+119360
+	CHM-52CKDB _Ls replaced by _LIT
+119256
+	TIN-528CPY  syncmlclient.iby file causes a couple of warnings in mainline ROMs
+119221
+	- Fixed AHD-52NCVA ("EPOC CONVERTOR(cnf) files not built during the overnight build process").
+119170
+Change 119170 by MathiasM@RON-MATHIASM on 2001/09/24 10:11:04
+119170
+	"Make the possibility of multiple selection clearer in listboxes" (MMAT-4ZDGPR) 
+119122
+Change 119122 by GeorgeS@LON-ENGBUILD17_local_mainline on 2001/09/21 17:08:48
+119069
+	MOEL-4WRJPN, "Architectural brake of comms dependency in status bar (QSBCTL)"
+119037
+	- Fixed MAT-52QNXP ("Deleting a CCoeControl object in a CRichText parser causes access violation").
+118973
+	PIA-4W5HV9 - V3: IMPS, POPS should stop synching on low memory
+118893
+	Defect Fix: MAT-528LXB "Scrollbar window background color not updated"
+118841
+	Port defect fix for defect ALM-4VQB5V Ditizer freezes (was: The Brutus
+118758
+	Defect Fix CHM-52QG88: "ErrorResGt shouldn't build wap errors"
+118754
+	Defect Fix CHM-52CJJY "Various uses of _L can be replaced by _LIT"
+118688
+Change 118688 by UmaA@LON-UMAA_LOCKIT6.1 on 2001/09/19 12:11:46
+118688
+	This contributes to fixing defect AHD-4ZFBYF "change required to the rom building process".
+118652
+	CAD-4YKJB4  "Disable next and previous while recording a voice note"
+118607
+	Fix for Defect Number:  DUG-4WCDLH
+
+118574
+	Fix for defect Number:  HAN-4XNDX5
+
+118568
+	- Fixed CHM-52CEXC ("Unnecessary code in EMime").
+118509
+	JCAD-4WCHNB - Thin Quartz problems in dialogs
+118408
+	MAT-528HEU : Colors need to be initialized before system bitmaps
+118408
+	MMAT-4ZDGPR : Make the possibility of multiple selection clearer in listboxes
+118364
+	TTextView.cpp - expanding test harness (CHM-4Z5EJJ)
+118299
+Change 118299 by UmaA@LON-UMAA_LOCKIT6.1 on 2001/09/17 11:08:30
+118299
+	This contributes to fixing defect AHD-4ZFBYF "change required to the rom building process".
+118142
+	DUG-52BK8U - "Selecting 'New File' causes EPanicInvalidParameter panic"
+118118
+	- defect fixings : EDNFNWO-4MBM2C, EDNJALN-4GCE8S, EDNJHOS-4MRL3X, THS-4TJJEN
+
+118110
+	PEN-528FZS - Wrapping of labels doesn't work.
+
+118110
+	JUA-524MS8 - CEikSoundSelector doesn't store the dimmed state properly.
+
+118110
+	STE-52CC79 - The cursor on a choice list control is not hidden properly.
+
+118110
+	NEO-52CEMM - Wrapping labels crashes ... 
+
+118110
+	NEO-52CETP - Wrapping labels don't wrap.
+
+118100
+	This contributes to fixing defect AHD-4ZFBYF "change required to the rom building process".
+118077
+	Defect Fix BAR-529BBJ"CCoeScreenDeviceChangeDefaultHandler::Self is not currently exported".
+118045
+	CAD-4YKJB4  "Disable next and previous while recording a voice note"
+118041
+	   Creating library \EPOC32\BUILD\INFRA-RED\IRDA\GROUP\BTIROBEX\WINS\UREL\IROBEX.lib and object \EPOC32\BUILD\INFRA-RED\IRDA\GROUP\BTIROBEX\WINS\UREL\IROBEX.exp
+
+118041
+	   Creating library \EPOC32\BUILD\INFRA-RED\IRDA\GROUP\BTIROBEX\WINS\UREL\IROBEX.lib and object \EPOC32\BUILD\INFRA-RED\IRDA\GROUP\BTIROBEX\WINS\UREL\IROBEX.exp
+
+118034
+	Defect Fix MAT-4ZSJ2U "CEikDirContentsListBox icons not masked correctly."
+117971
+	Fixes for EXT-52F9ME, DIN-4WBKKT and DAS-4Z8E8A
+
+117971
+	fix for defect DAS-4Z8E8A, the change was made exactly as the defect suggests
+
+117971
+	Implemented suggested fix for defect DIN-4WBKKT
+
+117967
+	Defect fix DOO-4WBDYN "Unity app interferes with Extras Bar."
+117960
+	- Fixed defect BAR-52HG8N ("BAFL has a constant for "ellipsis" which is in Code Page 1252 rather than Unicode").
+117911
+	TIN-528CPY  syncmlclient.iby file causes a couple of warnings in mainline ROMs
+117911
+	TIN-529BRZ All references to @since 6.2 to be replaced with @since 7.0
+
+135809
+	Fix for defect DUG-54PEZE: Migrate 6.1 changes for SysAgent
+135808
+	Fix for DUG-54PERY "Migrate 6.1 fixes for Schsvr"
+135808
+	This includes the 6.1 fix WIR-4Z7J5T "Main, KERN-EXEC, 3" and integrates the useful file logging from 6.1
+135488
+	Integrate missing fixes from 6.1 to fix DUG-54PF8E "Migrate 6.1 fixes for SHENG". 
+135488
+	EDNBPAL-4WBLNN "CShgFormulaViewer::ConstructL() needs to fill in the 
+135488
+	EDNHLJT-4RH9PT "Worksheets are not correctly updated if one is deleted"
+135487
+	Fix for defect DUG-54PF6N "Migrate 6.1 fixes for DAMODEL" 
+135487
+	This release migrates the fix for EDNSCHM-4PXLE7:
+135484
+	ROS-54MFNV "RefUI calculator +/- button is incorrect"
+135484
+	LAG-54QFG3 "Calc app does not handle a colour scheme change"
+135465
+	DevKit - update of KSA to test fixes for defects HET-54VPA3, HET-54VNWS, HET-54VP77, HET-54VP3S, HET-54VNZW and HET-54VNQT135434
+	KAN-537KP9 Zoom settings are applied on the wrong view if you task away..
+135434
+	LIG-538CAE Wrong text in queryDialog.messaging.disconnect.
+135434
+	JON-53RHKK queryDialog.sendMultipleSMS should not have a default button.
+135434
+	ALM-53RHKH The space between the colon and the Email account name has disappeared.
+135434
+	JON-549L46 Highlighting missing in Send attachment dialog.
+135434
+	ALM-54BJ34 Wrong dialog is displayed when tapping an attachment (IMAP)
+135434
+	PAU-54VKVD When selecting a Zoom level and tasking away, the selected setting is not confirmed.
+135434
+	PEN-54XC2N Emulator startup report errors with mailinit
+135386
+	Fixed WHE-52VECT "Panic in CContactDatabase::AddNewContactL"
+135386
+	Revised fix for EXT-52YGDT "CContactLocalView works incorrectly with some preferences"
+135386
+	Fixed EXT-53RJ4S "A groups only local view crashes when contacts are deleted" caused
+135386
+	Fixed EXT-53JGEN "CContactDatabase::GroupCount() crashes when called to a brand 
+135385
+	ROS-54MF3M EIKON-LISTBOX 44 and 45 panics in RefUI Contacts
+135364
+	WAN-54VLHUAdd new device on Bluetooth screen causes application panic
+135316
+	WHE-53SJYP MIDletExecutor should use wait/notify in waitForCompletion
+135316
+	WHE-54QJ7Y MIDP unit tests cannot be built
+135316
+	BRT-54EJ3N "SelectedIndex state of ChoiceGroup is lost when ChoiceGroup is appended to a form."
+135316
+	PLD-52BKPD "The same Form doesn't always have the same layout"
+135316
+	PLD-54JFPC: (KVM only) The midp.rsc file isn't installed by abld build, only abld test build
+135316
+	WHE-52XF3P itemStateChanged called after every change is made to TextField
+135316
+	WHE-53BDTB "Problems with key events"
+135316
+	PLD-54BNJ8: The VM deadlocks if the UI event thread blocks on IO
+135316
+	HOS-544PQQ "api/javax_microedition/lcdui/Font/index.html#GetFont test fails"
+135316
+	PLD-549RZ8: The MIDlet infrastructure is dangerously fragile to startup failures
+135316
+	WHE-542GL6 "rms ThreadTests doesn't run on kvmmidp"
+135316
+	PLD-52BKPD "The same Form doesn't always have the same layout"
+135316
+	WHE-53BDUY "drawRect draws 1 pixel too few pixels in width and height dimension"
+135316
+	HOS-544NPM: api/javax_microedition/lcdui/Font/index.html#CharsWidth test fails
+135316
+	PLD-542M5K: (KVM only) KVM should wait without a timeout when blocked on external events
+135316
+	LES-53LLYW: Known Problem In ARM KVM Loop
+135316
+	DAN-53UHHJ Interactive Gauge doesn't dynamically change
+135316
+	WIM-54GEAJ Title component does not conform to UI specification
+135316
+	WIM-54VPDK Menubar title should be MIDlet name, not "Commands"
+135316
+	WIM-54VPLH Text in Lists do not conform to UI specification
+135316
+	DAN-54XJB5 Displayables don't follow ColorSchemeChanges 
+135059
+	MSIK-52F9FF - Add grammar to URL and Mail parsers.
+135039
+	BAR-52VJ6L Problems importing Html into Refui (Word)
+135039
+	BAD-54QFFJ Charconv not using "Lang sc" in resource files
+135039
+	LID-543M28 Generated files should go to Epoc32\Build
+135039
+	Fix for BAD-53MMH4 : Word can not paste image/sketch from paint
+135039
+	Form/inc/ from category A to E: CR NSAE-4ZTLMF
+
+########################################################################################### 
+Defect list run on //epoc/main/generic/... in period Hurricane 7.0D - 0020 
+Changelist scope 138840 142864 
+Mainline 00573 - 00586
+###########################################################################################
+
+142820
+	1) Fixed BEU-55ENHL 
+142820
+	BEU-55ENHL - T_HttpRegression test panics running CLE-4Y5LC9_2
+142773
+	Fix defect ROS-55BM2X "ar failure with very large components"
+142490
+	FER-557KF7 "Link warnings in Agenda Model Test code"
+142490
+	WEP-55JA37 "CDaUserDbDesc contains EXPORT_C in header file"
+142490
+	FER-557PTK "Some Agenda Model test code that does not run/pass with the automatic script"
+142490
+	SAE-55CGJT "The System Agent wastes memory by unnecessarily using global variables"
+142490
+	CUN-53VMKJ "Getting Panic during RAgendaServ::AddEntryL(...)"
+142490
+	TOU-55UJDR "Cannot find system path stated in TSMSTEST.mmp"
+142490
+	TOU-55UJ48 "Warnings from TStore of Hlpmodel"
+142490
+	DUG-54RFVR "LB411: PDA freezes when new city has been added in Clock application"
+142490
+	DUG-54WHPH "City name Tampere cannot be selected in the Home city view"
+142435
+	Fix for Defect SKN-55MG8R
+142422
+	fix for defect "AlarmServer causes emulator deadlock on multi-processor machine" ROS-563MUZ
+142206
+	Fix for defect: OVL-55HKJR 	Panic on SSL Tests 
+142205
+	Fix for APY-55AFNH 	CSslAdaptorSend and CSslAdaptorReceive do not Cancel in Dtor
+142191
+	1) Fix for HAD-55LFN2 - Session events do not permit error values to be sent.
+142191
+	2) Fixed Defect SAM-55LEQQ. Added ContentLanguage to switch statement in CanDecode() method
+142191
+	3) Fix for defect HAR-55JJX8 (HTTP Public header files are not consitent in the way they include other header 
+142191
+	4) Fix for defect CUO-55MDRR - WSP Protocol Handler does not send an event when the Server Message size is blown.
+142191
+	5) Fix for defect SAM-55HM7Z (CProtocolHandler.h is in privateinc and not exported)
+142191
+	6) Fixed defect SAM-55HHZH
+
+142179
+	* Fix the defect WAG-55EPJS "Time offset is not handled correctly"
+142179
+	* Fix the defect DUG-4VWMK9 "ResetAndDestroyArrayOf* methods should be public"
+142179
+	* Fix the defect FER-557JYW "Bad versit data causes panic in ConArc"
+142164
+... //EPOC/main/generic/midp/kvmmidp/tools/emulator/META-INF/distribution.policy#2 edit
+142155
+	DUG-542GK2 "FindInTextDef performance is degraded with new contacts model"
+142155
+	ROE-55CET4 "Performance issue: Contacts deletion is very slow on Calypso hardware"
+142155
+	MAT-555JQ2 "Missing ItemRemoved event when removing Own card"
+142155
+	COY-555GVG "CLockSrvClient::InitL() uses a bitwise comparison for database file names" 
+142820
+	1) Fixed BEU-55ENHL 
+142820
+	BEU-55ENHL - T_HttpRegression test panics running CLE-4Y5LC9_2
+142773
+	Fix defect ROS-55BM2X "ar failure with very large components"
+142490
+	FER-557KF7 "Link warnings in Agenda Model Test code"
+142490
+	WEP-55JA37 "CDaUserDbDesc contains EXPORT_C in header file"
+142490
+	FER-557PTK "Some Agenda Model test code that does not run/pass with the automatic script"
+142490
+	SAE-55CGJT "The System Agent wastes memory by unnecessarily using global variables"
+142490
+	CUN-53VMKJ "Getting Panic during RAgendaServ::AddEntryL(...)"
+142490
+	TOU-55UJDR "Cannot find system path stated in TSMSTEST.mmp"
+142490
+	TOU-55UJ48 "Warnings from TStore of Hlpmodel"
+142490
+	DUG-54RFVR "LB411: PDA freezes when new city has been added in Clock application"
+142490
+	DUG-54WHPH "City name Tampere cannot be selected in the Home city view"
+142435
+	Fix for Defect SKN-55MG8R
+142422
+	fix for defect "AlarmServer causes emulator deadlock on multi-processor machine" ROS-563MUZ
+142206
+	Fix for defect: OVL-55HKJR 	Panic on SSL Tests 
+142205
+	Fix for APY-55AFNH 	CSslAdaptorSend and CSslAdaptorReceive do not Cancel in Dtor
+142191
+	1) Fix for HAD-55LFN2 - Session events do not permit error values to be sent.
+142191
+	2) Fixed Defect SAM-55LEQQ. Added ContentLanguage to switch statement in CanDecode() method
+142191
+	3) Fix for defect HAR-55JJX8 (HTTP Public header files are not consitent in the way they include other header 
+142191
+	4) Fix for defect CUO-55MDRR - WSP Protocol Handler does not send an event when the Server Message size is blown.
+142191
+	5) Fix for defect SAM-55HM7Z (CProtocolHandler.h is in privateinc and not exported)
+142191
+	6) Fixed defect SAM-55HHZH
+142179
+	* Fix the defect WAG-55EPJS "Time offset is not handled correctly"
+142179
+	* Fix the defect DUG-4VWMK9 "ResetAndDestroyArrayOf* methods should be public"
+142179
+	* Fix the defect FER-557JYW "Bad versit data causes panic in ConArc"
+142155
+	DUG-542GK2 "FindInTextDef performance is degraded with new contacts model"
+142155
+	ROE-55CET4 "Performance issue: Contacts deletion is very slow on Calypso hardware"
+142155
+	MAT-555JQ2 "Missing ItemRemoved event when removing Own card"
+142155
+	COY-555GVG "CLockSrvClient::InitL() uses a bitwise comparison for database file names" 
+141122
+... //epoc/main/generic/APP-SERVICES/SCHSVR/TEST/SMSTEST/DISTRIBUTION.POLICY#2 edit
+141097
+	MOU-556KRF - Erronous wrapping functionality in CEikLabel.
+141097
+	REK-54YGMK - CEikLabel crashes if space is not enough.
+140856
+	1) Fixed defect CUO-55HGL9, now handles quoted strings in NextL()
+140820
+	Fixed CLE-55KPGD
+140815
+	HOL-55DM9P - The content-type value in the MIME headers is incorrectly decoded
+140815
+	MOO-55DMDF - The MMS decoder panics if a message is truncated in the middle of a string field
+140815
+	HOL-55EFBU - Codec doesn't build for Codewarrior
+140815
+	HOL-55EM8A - CWspHeaders can leak open strings, causes panic...
+140815
+	RAN-55HFAU - Doxygen comments missing from codec header files.
+140815
+	BAN-55JLVM - Array index could get out of bounds in ExtractMimeHeadersL
+140815
+	HOL-55ENFR - Some HTTP headers make their way up to the MMS code...
+140815
+	BRN-55JC7N - The test server do not respond as it should to a send
+140815
+	MOO-55ELL8 - Cancelling send operation sometimes hangs
+140815
+	RUD-55HH7V - MMS Server MTM reports warning during during Arm4 build
+140815
+	HOL-55HNNG - CMmsSession doesn't cancel any active objects...
+140815
+	BLN-55DJW7 - CMmsHeaders::ExternalizeRecipientArrayL panics
+140815
+	BLN-55DLG7 - CMmsRecipient::~CMmsRecipient() does not exist
+140814
+	1) Fixed defect SAM-55BRRH - Changed WspHeaderUtils to be C class and all required architectural changes required. Changed wsp protocol handler to use codec to resolve header names.
+140783
+	Fix for defects ERN-55DFL8 and BOY-55AJNN.
+140763
+	1. Fixed defect  SAM-54WFUN : " String pool does not return an error when a string cannot be found in a string table using StringF() method "
+140763
+	Fixed defect BEU-55CND8 "using the CStringPoolImplementation from an empty string causes an access violation "
+140763
+	Fixed defect CLE-536M4D "String pool comparison operators should ASSERT_DEBUG check for use of multiple table "
+140751
+	CHM-54QQCD - Most new Bitgdi exports are missing in-source docs
+140751
+	CHM-54QQJC - New Screendriver exports are missing in-source docs
+140751
+	CHM-54QQMK - All Hurricane WServ additions are missing in-source docs
+140751
+	ROS-54QLPM - Use of __MSVC__ define in WSERV?
+140751
+	LOZ-555G4N - GIF Encoder writes last Data Block size two bytes larger than it should be!
+140751
+	ROS-54VDXH - Opportunity for small code reuse
+140751
+	ROS-54VH8B - WSERV should allow clients to specify their buffer size
+140751
+	ROS-55DHND - Media Server can hang if it gets a truncated audio file
+140751
+	ROS-55JN8B - Possible access violation in PdrStore
+140751
+	ROS-55JN9L - Possible access violation in media server
+140535
+	* Fixed defect  SAM-54WFUN : " String pool does not return an error when a string cannot be found in a string table using StringF() method "
+140535
+	* Fixed defect BEU-55CND8 "using the CStringPoolImplementation from an empty string causes an access violation "
+140535
+	* Fixed defect CLE-536M4D "String pool comparison operators should ASSERT_DEBUG check for use of multiple table "
+140521
+	HOG-557NGU Certificate ID not correct in CCtCertInfo
+140521
+	BAG-55CGPC CCTTokenTypeInfo::ListL(...) causes problems with its default parameter
+140521
+	GUN-553JKJ Filtering not working when listing user certificates
+140521
+	GUN-554JRN Invalid behaviour when loading URL certificates
+140521
+	HOG-557LWZ Referral certificate time-to-wait field incorrectly parsed
+140521
+	HOG-557MK3 Panic when url length is 255 (or greater)
+140521
+	HOG-557MRP Double tapping in quick succession on a cert causes the recognizer code to panic
+140521
+	HOG-55HFJW CertResponse subject and issuer hash values parsed incorrectly in certuiutil addcertmanager
+140521
+	JON-557HWD Small Security API change needed
+140521
+	LEQ-557L3V Cancel fcts not implemented
+140521
+	BAG-55CG8M WAPCertStore panics if directory isn't found
+140521
+	GUN-54UPC2 Bad Error returned when calling SetTrustersL with an unknown application
+140521
+	HOG-557LAQ Subject and Issuer hash values in User certificates aren't used.
+140521
+	GUN-54UF49 Incorrect behaviour when trying to add certificates with an uninitialised UnifiedCertStore
+140521
+	JON-55CC7L Improve robustness of Unified Keystore
+140489
+	 BEU-55DJG3 "4 test harnesses panic with KWapMsgPanicDescriptor "
+140489
+	 BEU-55DKCJ "Under mem leak testing: ALL the  test harnesses commit an Access Violation"
+140489
+	 BEU-55HNAZ "T_WDPFullySpec has got 3 resources leaked under OOM testing"
+140489
+	 BEU-55HG9S "Bad Handle panic  running T_WDPFullySpec OOM  test "
+140457
+	Fix defect ROS-55KJ4U "RCOMP fails if epoc32\tools not on the path"
+140455
+	ROS-53LMD8 - HTTP.DLL links to IMUT.DLL
+140455
+	SAM-55HMBB - Text mode header codec has code to encode more headers than the codec states in CanEncode()
+140455
+	APY-55JLNE - CTextModeRxData::ReleaseData can leave
+140455
+	CUO-54WGLP - Leave's should be __ASSERT_DEBUG's
+140455
+	SAM-55HM5F - CHeaderReader now derives from CBase
+140388
+	1) Fixed defect SAM-55BRGZ by adding new API method AddShortLengthL()
+140388
+	2) Fixed defect SAM-55BRLV. Modified code in CWspHeaderEncoder::EndValueLengthL() for correct functionality
+140388
+	3) Fixed defect CUO-4YYE3M by changing class name of textutils to inetprottextutils. TextUtils.h has been replaced
+140335
+	Fix for WHE-55HHQF GNUMakefile problems
+139618
+	Fix defect JOE-52ZJP3 "Conditional #includes in resource files".
+139618
+	Fix defect ROS-55AN6D "fixupsym.pl fails immediately".
+139611
+	Defect fixes for BOY-55CFLR and BEN-55EP2N.
+
+########################################################################################### 
+Defect list run on //epoc/main/generic/... in period Hurricane 0020 - 00604 
+Changelist scope 142863 148984 
+Mainline 00586 - 00604
+###########################################################################################
+
+148663
+	Defect Fix QUN-4VPH9K (Changelist 140347)
+148627
+	Changes to PSDAGX, GENCONN and PPP test code. Includes fix for BRE-56AK9Z
+148610
+	HOL-56TEUF Well known encodings are not used when encoding MIME headers
+148610
+	BLN-56EKWP WspHdrField Code Review improvements
+148610
+	BLN-56EKYN MmsDecoder: Remove unused code
+148610
+	BLN-56EL22 MmsEncoder.cpp CodeReview issues:
+148610
+	DOT-56EJPY MMSUTILS exported to system\libs
+148312
+	TUR-4YJJRR "The alarm pop-up is always launched twice in Agenda and Todo"
+148312
+	BUR-54UFPJ "Application Panic when setting new date and switching application
+148312
+	TUR-53DBD3 "13 phone (w) fields in a contact"
+148312
+	DUG-56GJT9 "Problem with TemplateRefId"
+148312
+	FER-557KF7 "Link warnings in Agenda Model Test code"
+148312
+	To fix defect TUR-53DBD3, an extension makefile has been added to contacts 
+148312
+	ALM-56DJSM "Strange behaviour when turning an alarm off"
+148312
+	PEN-55HDL6 "Cannot add 3'rd party help files"
+148312
+	TUR-56TJYX "help model tests fail"
+148258
+	MAT-56TNWR - InfoMsg border color not updated when changing color scheme.
+148258
+	DUG-555KQZ - EIKON 6 panic on Assabet in TimeW.
+148258
+	WEP-54BDN7 - scrolling a quartz menu (CEikMenuPane) with 20 items and a separator causes a crash/panic
+148258
+	LEQ-56NNGU - Crash when installing testembed1lvl.sis
+148258
+	JAA-56AM9K - Fixed a panic that was occuring on viewing the directory of an application with an AIF file which had set the field num_items to 0.
+148258
+	FUR-56NKXN - "CONARC test tb64cnv Panics on winscw"
+148258
+	BAR-563HUZ - "[Carried over from 6.0] Possible access violation in print preview under OOM").
+148258
+	REK-563DZ6 ("Unnecessary global mutex in CONE").
+148251
+	CR: MTET-56FM2X Provide the means for click plug-ins to determine the current screen-mode
+148069
+	The update fixes the defect AHD-56VM7G.
+147985
+	Fix for defect NAM-569LCT cannot connect wia sereal cable
+147905
+	Required to fix defects AHD-56UL34 and AHD-56VFQL.
+147842
+	fixed defect GAA-56UDQY
+147754
+	Fix for defects WOS-555J6P, ROS-56VDU7, and other test code for esock.
+147745
+... //EPOC/main/generic/messaging/mms/TESTHARNESS/SCRIPTS/RECEIVE-FAKEPUSH/distribution.policy#1 branch
+147547
+	Fixed defect RES-563FH5 - WSP Encoder does not offer the functionality to add data to a header without 	formatting it.
+147513
+	This update fixes the defects AHD-56QML4 and AHD-56TEKL.
+147247
+	Submission to fix TUR-4WJGNV
+147206
+	fix defect THS-56LLU4
+147080
+	LUI-56NLFY  The IR stack does not close FIR when changing baudrate to SIR range
+147080
+	LUI-56LFM2  IR stack negotiates work IrLap parameters
+147080
+	LUI-56NLK4  IR stack defect 2
+147076
+	Fixed ROS-56MFAX by forcing component sample factors to 1 in line with the jpeg spec, as suggested in the original report.
+147076
+	Fixed ROS-56GMFB by skipping scans that encounter locked drives.
+147076
+	Fixed a problem with SMS-OTA bitmaps where black and white were being reversed.
+147073
+	Fix defect ROS-56QP3D "Problem with EPOCSTACKSIZE when generating CW IDE Projects"
+147066
+	CL136992undoing the changes for CL136399 (Defect QUN-54JDQ4), the defect status has been changed back to under investigation
+147066
+	CL136399 Incorrect fix Fix for QUN-54JDQ4, see line above
+147066
+	CL133999improves defect fix for defect HOS-54-PELW.
+147066
+	FRU-56AFQFCL143374 Integ up from SDP 6.1
+147066
+	FRU-56AFQFCL143374 Integ up from SDP 6.1
+147066
+	DIN-4QNRDTCL139155 l2cap: fix for defect DIN-4QNRDT "L2CAP connection can hang during configuration phase"
+147066
+	HOS-54XLB9CL138068/143488 host resolver: refinement of defect fix (CL133999) "Name lookups by host resolver can fail"
+147066
+	HOS-55BL42CL137797/137795 link layer: "HCI frame code can improve use of descriptors".
+147066
+	HOS-54XLT9CL134352/CL136799 area: "RFCOMM Ioctl forwarding hits ASSERT"
+147066
+	HOS-54PELWCL135717 hci: further to fix for defect HOS-54PELW, previous fix had issues with authentication
+147066
+	HOS-54XLFLCL135717 "Link manager derefs NULL if HC lies about NumberCompleted packets"
+147066
+	HOS-54NEDVCL135717/136419 "Stack cannot be advised of HCI packet type to send to transport"
+147066
+	DIN-535KUECL142969new hurricane compatible version - still only the one modem, but that's hurricane stuff
+147066
+	SEF-4WREEQCL142969
+146826
+	reorganisation of euser source for CR GBON-567RCZ
+146820
+	Fixed defect ROS-542GYS
+146815
+	HAR-557J5c
+146815
+	HED-567L6A
+146815
+	            LES-566MKN
+146815
+	           MAO-557KMQ
+146815
+	           SLO-55JKSM
+146815
+	           CHA-55AM99
+146815
+	           DIN-563GE5
+146813
+	Fix of IPv6 Name Resolving issues in messaging, defects UDN-55MK6C, PAL-56PNTQ
+146774
+	fix for defect ALM-56DJSM "Strange behaviour when turning an alarm off"
+146691
+	Fix for defect WEP-567KG3 CRichText::GetParaFormatL/CParaFormatLayer::SenseEffectiveL 
+146691
+	Fix for MEA-55QFR2: MHTML Email from "Peter Gregory" freezes editor when email is opened
+146691
+	Fix for defect  WEP-567K9C Form panics when pictures are aligned on the bottom and then selected. FIxed defect and added some test in TTextView to test the defect.
+146656
+	Fix of HED-55CJDS - Ericsson 520m doesn't work with mmtsy
+146652
+	Update of splash to fix defect CHN-567JYU.
+146516
+	Defect fixes for PPP (SLO-55JKSM)
+146516
+	and genconn (BMS-568LVL)
+146480
+	Undo part of original fix for MAO-556KMQ
+146319
+	- Integrated defect fix from 6.1 : KAI-53VJPV BioMsg is storing IAP in the wrong place146190
+	Add subsystem product documentation for SER-COMMS
+146138
+	Fix SMS defect PEN-569EAP Send SMS UDH Fax Waiting notification with 2 Faxs results in wrong result
+146118
+	revert fix for defect CDM-56DJGT "Missing choice list Day when selecting Weekly in Set alarm dialog"
+146118
+	ROS-56FE6K "Sketch is no longer available for embedding"
+146118
+	HAR-567LNR "Possible access violation in agenda model under OOM"
+146118
+	fix for defect CDM-56DJGT "Missing choice list Day when selecting Weekly in Set alarm dialog"
+146118
+	fix for defect TUR-56HLLT "alarm sounds don't re-start at end of alarm sound pause period"
+146118
+	fix for defect WAG-56FGKT "Emulator crashes when copy-paste an entry from Agenda to Todo"
+145841
+	Fix for CHA-557N7M and GAL-564GV4
+145827
+	BAA-56AF6V   "Deactivate IPSec fails"
+145827
+	CUS-56GFDG   "KERN-EXEC in IKE"
+145827
+	HED-567JJT   "shell app not starting when IPSec notifiers are in ROM"
+145770
+	Fix for defect MAO-557KMQ
+145756
+	Fixes related to BRE-56AH82
+145736
+	- Fixes to MemoryAcceptanceTest- added instructions, removed obsolete test, fixed Assabet KERN-EXEC 3 bug, set correct test identifiers.
+145692
+	Fix for defect UDN-55MK6c
+145605
+	CUO-567NMA: Adjusted default dns timeouts
+145297
+	Fix for defect CHM-54PPJ9 Form missing In-source docs for Hurricane API additions.
+145297
+	Fix for WEP-55BHBF: EikLabels index out of bounds!!!!
+145297
+	Added test to TTagmaImp to expose defect WEP-55BHBF: EikLabels index out of bounds!!!!
+145276
+	Fix for PIN-55NMNA - BaflUtils::FolderExists() says a folder exists when it doesn't
+145276
+	Fix for defect: MAT-55UMWS - Missing MEikEdwinSizeObserver event when minimum size shrinks
+145276
+	Fix for defect: REK-55TNRE - Menu pane access violation
+145276
+	Fixed defect REK-556HY5 - MS converter has IMPORT_C inline funcitons
+145204
+	Lockit fix for defect SKN-55MG8R
+145028
+	Fix for defect: HUE-56DFM2
+145000
+	Fixed SIK-56AGGY by adding sanity checks to .bmp header processing.
+145000
+	Fixed WEP-56FEG8 by adding a new exported function to CMdaImageDataReadUtility which exposes the RMdaSourceClipPort in a non-const way to enable clients to call ResourceConfigL() on it to get image format details.
+144986
+	PLD-56DQKA: CallVoidMethod only works on a limited set of signature patterns - Generalise CallVoidMethod to handle all signature shapes.
+144986
+	PLD-56EKK2: Sun's WTK rejects our finalize methods    - Registered finalizer methods must now be called registeredFinalize()
+144986
+	SWT-55KDW4: New TCK test to check for defect SWT-55KDW4 (AM-PM problem)
+144986
+	WHE-566JZ7: Additional fix for WHE-566JZ7 midp subsystem contains unused sourceRemoved pjava specific code from midrun.cpp and recjavamid.cpp. Also includes fix to glueStubs dependencies in GNUmakefile to prevent 'unresolved external symbol' link error when add native methods.
+144986
+	PLD-56DQKA: CallVoidMethod only works on a limited set of signature patterns    - Generalise CallVoidMethod to handle all signature shapes.
+144986
+	SWT-55KDW4 Fixed problem of DateField displaying 'AM' after 1300.
+144986
+	WHE-53LJ4Z Updated MIDPMan so this problem does not show up again. Defect was in MIDlet not MIDP.
+144986
+	WHE-566JZ7 midp subsystem contains unused source
+144986
+	WHE-53MBUW Defect fix for WHE-53MBUW part 1
+144986
+	BRT-55LEW3 t_kmidp -killpeers now kills MIDlets and CLDC classes.
+144986
+	WHE-55HHQF GNUMakefile problems
+144976
+	Software install now supports cookies (CR AHOH-53JHDP)
+144976
+	LEQ-569EM6 HUE-55JN2V LEQ-55AQNV LEQ-567NE4
+144937
+	1. (WAG-55KEQK) Fix the defect "Wrong  parsing result when properties TZ and DAYLIGHT come together"
+144937
+	3. (MAT-563JC3) Fixed bug which means cutting and pasting of contacts does not now add a space at the start of the data
+144937
+	4. (WAG-56AG4T) Fixed bug which bad Base64 data does not cause a crash.
+144937
+	5. (WAG-56AF6L) Fixed bug which means that empty parameters does not casue a crash.
+144937
+	7. (DUG-56AFB9) Export all test files for code warrior test too.
+144937
+	Fix the defect DUG-567DU3 "Migrate missing 6.0 fixes in AGNMODEL"
+144937
+	DUG-56AFFJ "Automated test failures for CHTMLTOCRTCONV"
+144937
+	DUG-568GUN "AlarmServer testcode warnings in ARM4" - additional fix
+144937
+	DUG-568GST "CodeWarrior warning in CHTMLTOCRTCONV testcode"
+144937
+	DUG-568GXS "TimeW testcode warnings in ARM4"
+144937
+	DUG-568GUN "AlarmServer testcode warnings in ARM4"
+144937
+	Fixing  FER-557PNF "Some Contacts Model test code that does not pass with the automatic script"
+144937
+	FER-557PNF "Some Contacts Model test code that does not pass with the automatic script"
+144937
+	DUG-568GMT "CodeWarrior warning in LogEng"
+144937
+	DUG-568GQ2 "CodeWarrior warnings in SCHSVR"
+144937
+	DUG-568GWF "Hlpmodel testcode warnings in ARM4"
+144937
+	FER-557KF7 "Link warnings in Agenda Model Test code"
+144937
+	EXT-54EKP9 "Phone number matching does not match Fax field" 
+144937
+	DUG-542GK2 "FindInTextDef performance is degraded with new contacts model"
+144937
+	COY-567J99 "Phone number matching does not match Fax field" + associated test code.
+144937
+	COY-567J99 "Phone number matching does not match Fax field" + associated test code.
+144937
+	DUG-54RFVR "LB411: PDA freezes when new city has been added in Clock application" + new test code.  Original fix incorrect.
+144937
+	COY-567J99 "Phone number matching does not match Fax field"
+144286
+	Defect fixes: GAL-567N8R, GAL-55KKZJ, OAY-562FTW, HAU-554HY8 (partial)
+144240
+		4)	Fixed FID-54YK2B (MEDMMC buffer not DMA-safe.)  Pages of physically
+144240
+			- 6.0 defect EDNMDON-537CZA "Directory creation in FAT causes unnecessary
+144240
+			- 6.0 defect EDNGLAY-53UCDG "Unnecessary flushing of the fat when writing
+144240
+			- 6.0 defect EDNGLAY-53UCLA "Unnecessary metadata writes when creating entry
+144240
+		1)	Fixed FRS-54YG25 T_SERIAL fails on Assabet.
+143912
+	fix defect: MOU-55LJDN -- Using AddKeyRect stops pointer events for the entire window.
+143209
+	Small improvement on a previous defect fix: REK-54YGMK - CEikLabel crashes if space is not enough.
+143072
+	Fixed ROS-55MF75 by moving to the new HAL display driver functions.
+
+########################################################################################### 
+Defect list run on //epoc/main/generic/... in period Hurricane 00604 - 00610 (7.0E ) 
+Changelist scope  148984 150675
+###########################################################################################
+150657
+	Fix for defect PAU-56HLCU
+150544
+	to help fix defect ROS-56PHFA "Can't build Quartz resource files with CodeWarrior IDE".
+150347
+	Fixed defect BEN-56WKTJ "vCal causing a panic in Agenda"
+150347
+	Changes to implement Change Request PSTN-566M35.
+150347
+	BEN-56WJSY "Panic following a SyncML contacts session"
+150347
+	FER-56DE89 Fix for the bug to do with internalising Shift-JIS data with Yen 
+150347
+	Fixed defect BAD-56VLDN "Exported headers #include "" non-exported headers".
+150347
+	Revised fix for defect TUR-56HLLT "alarm sounds don't re-start at end 
+150223
+	change the call code for CHMAC::Newl() for defect MUN-56PGQY
+150063
+	Fix for HOL-56TEUF Well known encodings are not used when encoding MIME headers
+149933
+	Partial fix for ROS-56PHFA - Can't build Quartz resource files with CodeWarrior IDE.
+149802
+	FUR-56NLTD - APPARC test t_cmdln fails on winscw.
+149802
+	TUR-56NHLZ - WINS cannot input max value in Twips box - TDialg0 unit test, Fixed screen.
+149802
+	TUR-56WDUP - CEikSoundSelector::SetSound(const TDesC& aSound) restriction on aSound length"
+149802
+	CHM-55ENAL - Bafl defines the wrong location for default sounds'
+149802
+	FUR-572FGM - Backup server leaks a thread handle causing processes to multiply"
+149802
+	TUR-56NFJP - WINS. Constructed by App menus crash emulator."
+149794
+	Fix for defect FER-56TGQY Character Set Name recognition could/should be optimised.
+149786
+	Fixed  OVL-56VHZV Rewritten WSPDecoder and WSPEncoder test code. There is now 1 test program t_wspcodec which
+149786
+	Fixed RES-56UMF8 by changing __ASSERT_ALWAYS to __ASSERT_DEBUG In WSP Codec code and also
+149655
+	1) CR CLCT-55JENG. Modified \e32\include\d32usbc.h & \e32\include\d32usbc.inl
+149655
+	1)	Fix for defect FID-563G8A - "TPckgBuf cannot return a const reference"
+149655
+	2)  Fix for defect PAR-56MGEB - "Generic EDISP driver lives in the wrong place."
+149655
+	4)	Fix for defect THY-4XPH4C - "T_CURRENCYFORMAT fails from time to time"
+149655
+	5)	Fix for defect MET-56UJ35 - "Unhandled Leave in Kernel Server"
+149655
+	6)	Fix for defect MET-56VJY6 - "Session creation can crash machine under OOM conditions"
+149655
+	1)	CR JPAR-54XMZD: ROM building and run time configuration of debug port
+149655
+	1)	Euser source reorg for ipr categorisation CR GBON-567RCZ
+149655
+	1)	Fixed FID-562G4V (App can kill F32 by attempting to mount filesystem on
+149655
+	3)	Fixed FID-566G8P (Bug in comparison with "ELOCAL" in AddFileSystem) by
+149655
+	1)	Fixed defect BEN-4YRGKV "Ecom not recognising plugins once unplugged and
+149655
+	1)	Extended T_FSYS to check fix FID-562G4V (App can kill F32 by attempting
+149655
+	2)	Fixed FID-556JEX (T_PROC tries to use drive D:)  T_PROC now uses the
+149655
+	1)	Modified T_NOTIFY to test fix for defect BEN-4YRGKV "Ecom not recognising
+149641
+	SAM-56UMWE - The IMPORT_C macro was moved to be in the correct place in CHttpTcpCli. 
+149641
+	RES-56WNZK - Modified the session's filter initialisation to correctly search the data type field of a filter for the appropriate protocol. 
+149641
+	KRN-56DKMT - all active object priorites and changing them to be CActive::TPriority based rather than TThreadPriority based. 
+149641
+	CUO-55JMJQ - WSP Protocol Handler - should not handle S-Resume.cnf with same function as S-Connect.cnf.  In fact this bit remains the same, but ensured that the client preferences are upto-date. 
+149641
+	RES-56QP8Y - Access violation with zero length data response body in WSP Call to notify the rx data object observer that the response is complete is now done as the last thing in the fx data function. 
+149641
+	CUO-55JMAK (WSP Transport Handler could use an enum to pass supported WSP services) 
+149641
+	CUO-55JMF7 (Change function name in MWspSessionHeadersProvider API) 
+149641
+	CUO-55MDZF (Change the signature of MWspCOSessionCallback::DisconnectInd) 
+149641
+	APY-56NKMC - Leak in CProtocolHandler 
+149641
+	KRN-56DKMT. CActive priorites are now set using enums from CActive 
+149641
+	SAM-568F24, Textmode PH should use LF as a field separator
+149544
+	This release of the security subsystem contains fixes for the following defects : LEQ-54PED7, ANN-53TG4k, ANN-53TFUV, LIG-54XBDN, ANN-53THPK, CLE-56XLFG, MUN-572MZE, HOG-557MD9, GAL-564NFB, LEQ-56FKT2, MUN-56LLAC, GUN-56LMDT, LEQ-56MHVG.
+149542
+	Buildpkg.pl and createpkgsrc.pl have been changed so that the defect HET-574DE2 is fixed.149321
+	Additional Fix for MEN-569LNA TextBox with a "\n" in it doesn't display a new line
+149321
+	Defect Fix PLD-56WPB2 "Memory leak in lcdui"
+149321
+	Additional Fix for EXT-4YWC5A "MIDP ticker implementation will drain battery when screen switched off"
+149321
+	WHE-572LF2 GetObjectArrayElement should be added to jni subset
+149321
+	Defect Fix TUR-56XFPY "winscw. cannot install jar/jad files."
+149321
+	WHE-572F9Z Cannot compile MIDP for TechView
+149321
+	CTUS-535D6G CR for allowing default MIDlet size to be changed from midp.rss.
+149321
+	HOS-56UK47 Fixed test code
+149321
+	Defect Fix EXT-4YWC5A "MIDP ticker implementation will drain battery when screen switched off"
+149321
+	Defect fix BIA-56LFS6 "ChoiceGroup panics when setSelectedIndex is called on Empty ChoiceGroup"
+149321
+	Added TextBoxMIDlet to TestMIDlets to test for MEN-569LNA "TextBox with a "\n" in it doesn't display a new line" defect.
+149321
+	Defect Fix HOS-56GLTZ "Font.STYLE_UNDERLINED doesn't work"
+149321
+	Defect Fix MEN-569LNA "TextBox with a "\n" in it doesn't display a new line"
+149321
+	Further fix for WHE-53MBUW - "rms TCK failures"
+149227
+	EVS-54RM7L - ECom should export codes for the ErrorResolver.
+149227
+	HAD-56FLJH - ECOM should only return KErrNotFound or KErrNoMemory when a plugin cannot be instantiated.
+149227
+	FOT-56ULPM - ECOM not closing plugin libraries during alloc testing.
+149227
+	Added a unit test for defect FOT-56ULPM.
+149217
+	1) GUY-56XKUK: wapmessage.h gives an error when building for codewarrior
+149217
+	2) TRK-56QNNB: Unnecessary code
+149217
+	3) AUT-567HGB: access violation when receiving
+149217
+	4) SHH-55DGA2: CWapFullySpecCLPushService_Connect_UnitTest failed a pre/post condition validation check
+149203
+	Release of cryptalg to fix defects : BAG-572KGD, BAG-572KEM, BAG-572KBS.
+149100
+	PRX-54GC4L - Missing cleanupstack protection in messaging /msg /mtursrc/mtudbas.cpp
+149100
+	KAI-56UFXA - Email "Failed" flag is not properly reseted when resending once failed message.
+149100
+	KAI-56TMRK - Replied and forwarded mail messages have wrong date
+149100
+	KAI-56VF7M - Testutils should generate log file containing text "WINSC" for code warrior
+
+########################################################################################### 
+Defect list run on //epoc/main/TechView/... in period Hurricane 00604 - 00610 (7.0E ) 
+Changelist scope  148984 150675
+###########################################################################################
+
+150232
+	Resized bluetooth and Internet account dialogs. Fixed PAL-555P3G (Emulator panics when scrolling to new IAPs using pointer) by Hassan Ali (@146697)
+150027
+	Fix defect DOT-56UNZZ (sms message print problem).
+
+########################################################################################### 
+Defect list run on //epoc/main/... in period Hurricane 7.0.1 - 7.0.2  
+Changelist scope  160981 162931
+###########################################################################################
+
+162906
+	Fixed defect WAG-58NK5B - Memory leak in Agenda form handler.
+162784
+	       o PLD-58LMK9: Native code must be able to issue callbacks while the UI event thread is blocked
+162478
+	Fix for defects BAG-58TFP6, LEQ-58LM42, LEQ-58UFUJ, ARG-57ZPQC, EXT-585HBE, LEQ-58TEAM, JON-58UHDL, SKN-58VGVX.
+162469
+	Defect fix: o PLD-58LMK9: Native code must be able to issue callbacks while the UI event thread is blocked
+162454
+	- Defect Fix : FUR-58TJYB "[Carried over from 6.1] Sending vCalendar with EPOC word application object fails."
+162428
+	BEU-58FL8U - T_Client doesn't handle RunL Leaves (there's not runErrorfunction)162428
+	CLE-58EEDC - TechView Design and User documents out-of-date in Perforce 162428
+	TUR-58ND5H "int. creating second folder invokes MCentre USER 23 panic"162428
+	DOT-58NMQY "Email errors not always displayed"162428
+	BAT-58DGPE "Send MMS causes unknown error"162428
+	Defect number: DOT-57YEZK162419
+	FER-58LPN2 "versit needs to export VObserv.H"
+162419
+	EGA-58FEN9 "Successfuly importing a file in Agenda results in a crash"
+162419
+	CDM-58CJCA "Program close: When setting back time in Control Panel"
+162401
+	KRN-58MMG9 - Engine should send a Results command when requested with a Get command from a server
+162401
+	KRN-58VDA4 - Authorisation failure counter should only be incremented on a Chal SyncML Command
+162401
+	PEN-58MCEN - smlcontroller.rsc reported as missing when building ROM.
+162264
+	fix defect PLD-58DP4x and DAN-58UBKJ
+162260
+	Fix for APY-58LM4N - Trailer test case not validated properly
+162259
+	Fixed defect SHY-58GK86 "T_TELWATCH doesn't work if pushwatcher is present"
+162205
+	BEN-588JPU -IMAP account cannot handle attachment properly on Delivery failed mail
+162205
+	KAI-587DM4 - Commit/Revert not working
+162205
+	KAI-58LLFR - Cannot forward embeded msg in IMAP
+162205
+	KAI-58MLZK - GetValidAlias returns whole string as an alias when alias is only one character
+162205
+	LIG-58GDLP -Inbox spellt with capital letters in Found dialog.
+162205
+	RAN-58FHV2 -message/delivery-status MIME parts needs to be processed 
+162205
+	WIN-56VGNR - V3: .eml attachments are not forwarded
+162205
+	OHF-57AJZE - Unnecessary disconnection when receiving and sending 
+162159
+	HET-58DKAT: Mainline integration of defect fix.
+162136
+		1)	Fix for BAD-58CDM4: Locale change has no effect on contact filtering.
+162136
+		1)	Fix for MOS-58EJ8V (Integrator calibration doesn't work properly)
+162136
+		2)	Fix for CAR-57RETM (WINSCW UDEB Emulator crashes when launched in console mode)
+162136
+		3)	Fix for TAR-58LEUV (Emulator title - variant indication) CR ref MTAR-58LDG2
+162136
+		4)	Fix for SHY-58GGR5 (Test case that leads to unhandled exception
+162136
+		1)	Fixed defect THY-588MLT (Integrator board with ARM926
+162136
+		1) 	Fixed defect JON-58DHHP where Assabet lffs media driver has an error in 
+162136
+		1)	Fixed CAN-58GG5E (MEDMMC is not leave-safe.)  Used non-leaving new in
+162136
+		1)	Fixed defect BRY-58DQ8A "RDebug::Prints in F32".
+162136
+		2)	Fixed defect BRY-58DPTJ "RDebug::Print in cl_parse.cpp".
+161903
+	Fix for APY-58LK5R - Test files missing from Perforce (and bld.inf)
+161903
+	Fix for defect RES-58LLBQ - Incorrect definition of the Trailer header in the HTTP string table.
+161453
+	Additional Fix for WHE-53MBUW rms TCK failures
+161453
+	HOS-58GQUK RMS tests can panic standalone MidletAgent
+161430
+	Fixed defect PUE-58MKMQ (BSP Builder perl script is out of date on mainline 640 build)
+161429
+	BAD-58CHVR Parser system panics in debug mode when Word is closed
+161429
+	SIK-55EB2T Problem when parser merges two recognized segments if separated by space char. 
+161429
+	NIN-586C3C Parser, finds higher precedence when not existing
+161429
+	Fix for BUR-58FGE8: Int: Application panic when selecting, Select All from the edit menu
+161423
+	fix defect BRT-58DJK8 and AUT-58KDCN.161414
+	DAN-58LBTN "CMIDForm propagates pointerevents when it shouldn't"
+161399
+	        MOR-53KG7N      CEikDialogPageSelector needs to call "SetComponentsToInheritVisibility(ETrue);"
+161399
+	        TET-58FMTY      CEikDialog::ExitSleepingDialog() should move the dialog to the background
+161399
+	        JON-58MHTC      Jotter crashes when lot of text and many parsers are added in an entry.
+161399
+	        CRZ-573H52 Resource file has to be checked against localisation checklist
+161399
+	        ALM-58LJP3 After deleting an entry in Jotter another entry is hightlighted in the list view.
+161399
+	        ALM-58LJRA Wrong behaviour when closing a New empty entry in Jotter - Nothing should be highlighted.
+161399
+	        SBG-57XFCR  Changing daily repeated event to weekly event repeats the event on wrong day
+161399
+	        BEN-58KLA3 Crash when tasking away when searching
+161399
+	        BEN-57JKH8 Password dialog appears when Send as to an unbonded device
+161399
+	        OHF-58KDP6  Wrong text in dialog.securityInformation
+161399
+	        SOD-58MKXJ BT send as dont work after tasking away from a sending operation that fails
+161399
+	        OHF-58EBM9  help icon in dialog. internetsetup
+161399
+	        BEN-58B27B Sending a mail every other time without Internet acount hangs Messagin
+161399
+	        JON-58LLQM Wrong behavior with 2 and 4-way HW buttons in Messaging Found dialog.
+161399
+	        CDM-58LAU5 Viewer.webViewer.bookmark  doesn't match its UI Spec
+161399
+	        PAD-58LJFX Extra char in dialog text.
+161399
+	        ALM-58LDJVPaste doesn't work correctly in Contacts
+161399
+	        PIA-58GEM7INT:  Contacts not updated correctly when changes are made in Javaphone Address book
+161399
+	        BEN-57PRPJSyncML: Contact can not handle a synced emailaddress
+161399
+	        OHF-58GD6T Not all corrupt voice files are removed at the same time
+161396
+	Change helps fix PUE-58MKMQ BSP Builder perl script is out of date on mainline 640 build161390
+	Fixed FID-54RHAD (mmc driver checks primecell id) by changing pa_mmc_controller.cpp as recommended in Defects database.
+161369
+	Fixed CHY-572NP4 (warnings when building a rom); added #define NO_POWER_EXTENSION to int.oby and used it in BASE.IBY.
+161311
+	Fix for defects TUR-58FEDN, LEQ-588LGB, CRZ-588LLX, CLE-588JQZ, LEQ-588N92, WEP-588FUH, RON-58GMVM.
+161309
+	MOS-586BYY : MINT has mouse and digitizer drivers loaded in ROM.
+161207
+	Implemented change request #LPEN-587GRJ
+161194
+	Fixed defect KAI-58DMS7.
+161172
+	Defect fix: BRY-58DQJU - RDebug::Prints in deblogsr.cpp.
+161172
+	Fixed defect BAR-4YXJK7 ("Application start-up and Eiksrv start-up have a number of OOM-defects").
+161172
+	fix for defect STE-58KKUB "RDebug::Print on cone should be replaced with ShowTrace()."
+161172
+	Defect Fix MAT-58EGYF: "LafListItemDrawer::BaseLineOffset() not used to fetch listbox text baseline"
+161016
+		BEN-58KLA3 Crash when tasking away when searching
+161016
+		BEN-57JKH8 Password dialog appears when Send as to an unbonded device
+161016
+		BEN-58BTN5 Dialog "In use" is displayed in App launcer on start up
+161016
+		NIN-58KF6QPhone parser recognises invalid numbers.
+161016
+		 CDM-58LAU5 Viewer.webViewer.bookmark  doesn't match its UI Spec
+161016
+		OHF-58GCLD Wrong file removed when voice note is corrupt
+161016
+		JON-58LEQJ Help crashes applications or freezes the device...
+161016
+		OHF-58DGNZ - Incorrect files are listed in dialog.redundantDataFound
+161016
+		BEN-58FNEJ Send as highlights text in desc/notes for a moment and moves scroll bar
+161016
+		BEN-58FPYG New entry remembers scrollbar from last entry
+161016
+		BEN-58GJMC Folder belonging is saved after beaming it shouldn't
+161016
+		ALM-58KDHJ Entry in To do gets highlighted when the date changes.
+161016
+		JON-58LCPV Strange behavior of 4-way buttons and highlighting in Jotter Found dialog.
+161016
+		JON-58LD8E Strange behaviour of 2-way buttons in Jotter Found dialog.
+161016
+		PIA-58GFDV INT: Javaphone Address Book application panics when opened
+161016
+		MAT-58GEC7 QMidp's toolbar looks different from CQikToolbar
+161016
+		MAT-58GHMV QMidp's form component needs to use the control context
+161016
+		MAT-58GHQL Massive flicker when switching between QMidp forms 
+161016
+		MAT-58GHTN QMidp list causes action on pen down instead of pen up
+161016
+		MAT-58GHYP Components in a QMidp form reacts to pen actions outside the control
+161016
+		BEN-58B27B Sending a mail every other time without Internet acount hangs Messaging
+161016
+		CDM-58CHCX The finding process searching forever or at least 5 minutes.
+161016
+		PAD-58LJFX Extra char in dialog text.
+
+
+########################################################################################### 
+Defect list run on //epoc/release/7.0/... in period Hurricane 7.0.3 - 7.0.5  - changelists 164554 169201
+###########################################################################################
+
+169201
+	Defect GAL-59CJB6
+169177
+	MPO-5A4HGJ
+169177
+	EXT-59BDV3
+169127
+	   LYN-59ZLX4 T_SMSPDUDB test case 6 fails
+169127
+	   FID-59CDDK  CSmsCommand data encode routine is wrong
+169127
+	   FID-59ZD5X SMS Stack automatically deleting SIM-stored SMSs
+169118
+	PRX-59H5NX: Unproper localization of mediaserver component169118
+	EXT-59QTHH: CMdaBuffer iFlags not being reset from KMdaBufferDataEnd and CMdaAudioDstDatatype iMarkConsumerBufferEnd not reset
+169075
+	DUR-59FK76          Access violation in in_net.cpp 
+169075
+	MUN-59PJAJ          strange (wrong) number of security dialogs for some secure pages
+168951
+	Fix defect ROS-59BGYN "engbuild.oby is not a GT file and should move to RefUI"
+168899
+	Defect GAL-59CJB6
+168788
+	NAM-58ZCGS  Cannot use more then 1 dialup account in commdb 
+168788
+	HOY-58CHFQ  Panic when server/gateway failure                                                                                        
+168788
+	MKY-59YBBP  TCPIP6 mmp file unneeded include path
+168767
+	Fix defect PAL-59YHRT "Build errors not being reported in summary files"
+168767
+	Fix defect ROS-595LHD "abld -what problems with very long pathnames" 
+168767
+	Address defect CHN-58WEZ3 "EPOCRC.PL fails in VC6 IDE builds with long paths"
+168764
+	BEN-59HF86  - Find doesn't search in IMAP headers
+168764
+	LID-59VHA8 - Wrong error message for 550: Relaying not allowed
+168764
+	KAI-58WHFH - Connecting to..." text displayed when undeleting messages offline
+168764
+	GUY-59SFUP - imps panic
+168764
+	GUY-59CBPK -IMAP flags fetched after NOOP
+168764
+	GUY-59CCEW -Disconnect when gprs suspend hangs mce application
+168764
+	LIG-59SHGL - Tapping on Mail-to link and nothing happens.
+168764
+	EXT-599M9V -The message engine igonres errors on attempting to load HTML convertors.
+168692
+	Fix for defect - SAM-5A4MKN - "Incorrect default data type field in ECom resource files in HTTP"
+168402
+		Fixed defects: DAO-59WGWH Loading notifiers needs performance improvement
+168402
+		ALM-59NJZU "Removing all text from an entry displayed in Unfiled folder results in program closed: DBMS-Server, no 3."
+168402
+		BAT-59QJUM ToDo not reflecting sync'ed changes without switching out and back
+168402
+		HEM-59WCS7  Pressing HW-buttons once/twice in an empty listview = crash
+168402
+		PRX-59Q4YD Wrong use of resource file in UIQ contact ui
+168402
+		LIN-59WGTM Member pointer pushed to cleanupstack
+168402
+		BEN-59MN3C Contacts list view displays wrong entries
+168402
+		DAS-59PEQ7 "filesession handle leak"
+168402
+		DOS-57KL7U IN: Switching to month view in Agenda needs performance improvements
+168402
+		OEL-588SBB Opening entry in agenda needs performance improvement
+168402
+		Fixed defects: DAO-59WGWH Loading notifiers needs performance improvement
+168402
+		LIG-598C2K No Pop up list when tapping parser in Messaging detail view.
+168402
+		REK-59RJM8"non-translateable strings shouldn't be in rls file"
+168402
+		LIG-59VG76  No Select language dialog is displayed.
+168320
+	Fix for defect APY-59PEX5 - Test bed mmp files should be relative instead of absolute
+168273
+	MKY-59KJWT  TCPIP Bug fix has introduced a performance problem
+168238
+	FER-59HMLP "Empty EXDATE property crash Agenda Model"
+168238
+	DUG-59JEH3 "New API proposal for CContactViewBase"
+168238
+	TUR-59YLCR "CContactDatabase::RecoverL() does not forward errors to caller"
+168238
+	TUR-59YD47 "CContactLocalView hangs when Contact DB is recovered"
+168238
+	EXT-59PJ5N "Panic in RWorldServer::Find"
+168064
+	Fixes for defects EXT-59BDSF and LEQ-59SH7A.
+168061
+	EXT-59BCNC:  App Engines potential access violations 168061
+	PAL-59YHL2:  Errors in MRouterClientUI when building ROMS168061
+	PAL-59YHC9:  MRouter is not getting built on HRB and Mainline releases
+167995
+		1)	Fix for MET-59CLM2 (TLex::Val() should not give error for missing exponent)
+167995
+		1)	Fixed defect JON-598DLR	Where Segment write failure are not handled
+167995
+		2)	Fixed defect FID-59HHUP Bug in filesystem mounting in ESHELL
+167995
+		3)	Fixed defect FID-59HJNL File System mounting in ESHELL issumes FAT
+167995
+		1)	Fixed defect JON-59BC75 "Subst Drives not functioning correctly".
+167995
+		2)	Fixed defect DON-59QCPS "RFs file server session crashes with null pointer
+167995
+		1)	Modified T_SESS and T_FSRV to test fix for defect JON-59BC75 "Subst Drives
+167995
+		2)	Fixed defect FID-59AKHR "T_SESS can stop for keypresses". The test now fails
+167995
+		3)	Modified T_MISC to test for fix to defect DON-59QCPS "RFs file server
+167992
+	BUS-598CX3   ISP details from RGenericAgent::ServiceChangeNotification() change unexpectedly 
+167992
+	BRN-59NN3G   There are two copies of t_tabdef.h in CommDb           
+167992
+	BRN-59NMPH   Not possible to reproduce CommDb binaries
+167981
+	Defect fix- AMS-59BEBG "Lockit "Do caption" command is thrown by Chinese captions"
+
+
+167836
+	HOS-59PDZS - Midp test source should be located in tsrc and tapps directories - Additional fix
+167647
+	        BEN-58WG67 SyncML and Agenda: Change repeat dialog when sync repeated entries
+167647
+	        OHF-59GCJ6 "Jotter closed down when folder is changed"
+167647
+	        BEN-59KBEJ Program closed after syncing To Do entries
+167647
+	        BEN-595JRR List view updates/scrolls a couple of times when no entry is saved
+167647
+	        LIG-58VB25 Wrong behaviour when using HW buttons.
+167647
+	        BEN-595HMY Entry not correct dispayed in list view if the phone number reach maximum characters
+167647
+	        JCAD-57SG2P Add option to add an email adress and phone number to Contacts (the part in Contacts only)
+167647
+	        Part of CR MPEN-57HC9Z - Change viewer delete behavior
+167647
+	        BEN-59HCAN Find in baseview does n't work after tapping
+167647
+	        OHF-58LGCV Save to Contact info print missing
+167647
+	        BEN-59GE9X Small font size displays To:line centered.. Now purfekt alignment in all zooms
+167647
+	        BEN-59GE9X Revert of "fix"
+167647
+	        BEN-59KFZT Should not store empty contact
+167647
+	        JON-57XL99 A beamed bookmark is saved to Beamed list view when select Open...
+167647
+	        Defect fix: OHF-5929TX Progress bar displays % from the last process before new download starts
+167647
+	        Defect fix: OHF-592A8J Progress bar does not always show correct % when loading site
+167647
+	        PEN-598L3E Redraw problem when using list of frames
+167647
+	        PEN-598LEZ Focus problem when using list of frames
+167647
+	        EKD-59NKEG Web crashes after a while
+167647
+	        TAR-59CT4S \QComms\Connectivity\QSyncMl\group\extmake.mk has incorrect 'releasables'
+167647
+	        ROS-59KNBU Qsyncml attempts to rebuild GT resource files
+167647
+	        BEN-599FAT SyncML: Task name is highlighted by default it shouldn't be
+167647
+	        BEN-599D3K SyncML: Username and Server address is highlighted by default in Settings
+167647
+	        BEN-59GP3Y - Dialog.messaging.address/multiple.address doesn't close when tapping new message icon
+167647
+	        PEN-59HM3B - Unable to disconnect from mms view, new mms
+167647
+	        BRN-59HAM4 - OOM defects
+167647
+	        LIG-59GEHR - Strange behaviour when deleting a email account
+167647
+	        JON-59N9H6 - Program closed on Messaging when trying to open BIO messages
+167647
+	        BEN-59GJWL Cannot scroll with HW buttons in Found dialog
+167647
+	        JON-58VCQM BIO detail view has the wrong text when the message contains a vCard.
+167647
+	        BEN-59FF2T Wrong behaviour if tasking away during receiving dialog
+167647
+	        WEP-59GBJ4 AgentDialog (QConnDlg) Test Harness panics
+167647
+	        MPEN-57HC9Z Change viewer delete behavior
+167647
+	        MOEL-57ZH4F Web should download .sis files into the mediafiles/unfiled directory
+167647
+	        MICD-59JCPB Certificate information option in the Web menubar should be removed
+167647
+	        Additional error handling for previously fixed defect PEN-56QFXJ
+167647
+	        SWT-582J8P Canvas doesn't pick up colour of parent frame.
+167647
+	        ANN-58NDMF [Do-it] problems in a multiple choice list
+167647
+	        MOEL-57ZM2G  Appinst should delete installed files
+167647
+	        Implemented changerequests:CR MPEN-57HC9Z
+167647
+	        SVG-59NEY9 MMHF: Unrecognised viewer panics when you tap [Save]
+167632
+	Defect number ROS-59GBWP: Cancelling image utility save operations can cause exceptions167632
+	Defect number ROS-59NDF5: Media Server is over-zealous in recognising files
+167472
+	This change fixes the defect: HET-59RKL6.
+167470
+	MDL-59AJ7N     Wrong panic raised by CCommsDbTableView         
+167470
+	MDL-599JD4     Possible memory leak in Commdb                                                          
+167470
+	MDL-59ADBN     CCommDbOverrideSettings::TParamList isn't really used sensibly                      
+167470
+	MKY-58VD4F     CED hard coded attribute                                                                
+167470
+	MKY-594HUS     CED creation of Special baud rate                                                       
+167470
+	MUN-592H6J     TLS panics on OOM                      
+167470
+	MKY-594N5F     NTRASTSY does not configure serial port correctly                                      
+167470
+	PEN-58FHQB     NTRASTSY is (partly) included in a ROM                                                  
+167470
+	CHY-595FYM     missing files in techview rom build    
+167470
+	EXT-59BDJW     Networking potential access violations
+167422
+	LUD-599HUU
+167422
+	PIA-586KGE
+167422
+	LYN-59HHGq
+167422
+	LYN-59PD2R
+167422
+	MIY-58ZM9S
+167422
+	ROS-595HN4
+167422
+	WEP-59JFLV
+167403
+	SVG-59NEY9 MMHF: Unrecognised viewer panics when you tap [Save]167352
+	Fix for defects WEP-59GBUD, OLD-59JFK3, JON-58UHDL, SKN-58VGVX.
+167347
+		ANN-59NHX2 Appinstaller change the name of the application if \system\apps\appname\appname.ini exists
+167347
+		HOS-59PDZS - Midp test source should be located in tsrc and tapps directories
+167097
+	Code change in XmlBuilder  for critical Defect: KLN-59KGFB167097
+... //EPOC/Release/7.0/DeveloperLibrary/doc_source/reference/cpp/InternetMail/SMTP-CMsvEntry-functions.guide.xml#3 delete
+166852
+	Fix for Hurricane Defect PEN-58GHMN Locale setting not stored if Power is lost.
+166734
+	APY-59HBP7 - Modified default unload time to 1 second.
+166734
+	APY-59JJ4V - Modified test bed behaviour for OOM testing of async functions to be more specific.
+166734
+	APY-59KKFW - Reset index where necessary if array appends failed.
+166658
+	HOS-59KEDF - MIDletAgent doesn't run the last test
+166658
+	TAR-59KJZE kvm resource.lib MIDP file has relative targetpath
+166609
+	Fixing defect BRA-58WEYW
+166465
+	Remove the fix for WEP-55CFXQ "Resource complier complies code that isn't correct."
+166465
+	and WEP-55CFV5 "Misleading resource compilation." because it caused lots of warnings.
+166431
+	Fix for CUO-59FLPM - WSP Protocol Handler will not work with unlimited Server SDU and/or message Size
+166431
+	Fix for EXT-59BCZ5 - Application Protocols potential access violations
+166431
+	Fix for HOY-58ZGSD - Buffer overrun in the WSP header decoder
+166431
+	Fix for SAM-598JAT - WSP protocol handler does not set the wsp encoding version in the header codec
+166431
+	Fix for SAM-59FJFV - Validation filter incorrectly rejects Trailer headers in requests
+166297
+	Fix for defect FUR-59CD7T "[Carried over from 6.0] Having 1b masks in AIFs would save significant amount of RAM"
+166297
+	Fix for defect FUR-58ZBV2 "Carried over from 6.1] Infinite recursive loop in OOM situation in CEikonEnv::HandleError()"
+166297
+	Fix for defect HOM-593DL7 "uikon, tmenu3, title dim option dims the wrong title"
+166297
+	Fix for defect WSERV: STE-58KNFT "(From 6.1) Device reboots when trying to enter a license number to an application."
+166201
+	Fix migrated from 6.1 Release defects ARG-58TD3C and BUG-593HU6, Hurricane defects ASM-59JECX
+166201
+	and ASM-59JEJA.
+166186
+	Change Request IRAN-58WDPP : Change method of setting/storing the SystemDefaultCharset
+166177
+	Fixed ROS-586DV6: Calling CFbsBitGc::DrawPolygon(const TPoint*,TInt aNumPoints,...) with zero points causes an exception.
+166177
+	Fix MON-59CE79: Problems with the stdlib function strtod
+166083
+	fixed defect  EVS-59FNLS "Web recogniser duplictes the mailto recognition code"
+166082
+	EXT-57YGMQ "CContactViewBase::ContactsMatchingCriteriaL is too slow for interactive find"
+166056
+	        BEN-593GYT Crash when Closing message before add/delete attachment has completed
+166056
+	        PEN-59BAHE Servicecentre number is reset if phone is turned off during system start
+166056
+	        EKD-59BAFK Initialize servicecenternumber should not startup phone
+166056
+	        OHF-592FAM Strange and confusing information in SyncML
+166056
+	        PEN-56HKDW Impovement suggestions from codereview not implemented
+166056
+	        JON-57CL68 Some Saved pages are impossible to open.
+166056
+	        PEN-56TGBT Web doesn't handle plugins added at runtime (not correctly anyway)
+166056
+	        Defect fix: KAN-598D6B The active policy has been deactivated when reentering the IPSec Manager a second time
+166056
+	        Defect fix: PEN-594B4R SECDLGSV.DLL and SECNOT.DLL uses same UID
+166056
+	        SVG-594D99 dialog.BluetoothSend does not match the UI specs
+166056
+	        SVG-594HJP QueryDialog.BT.deleteDevice does not match the UI specs.
+166056
+	        BEN-4Y6E2G Device not found dialog doesn·'t appear
+166056
+	        BEN-594MJT SMS/Fax DNL shows parenthes in messaging To field
+166056
+	        BEN-595CPF Incorrect DNL from Contacts is saved in Outbox and causes problem
+166056
+	        LIG-58ZJAY Program closed on Image viewer when trying to save the file.
+166056
+	        LCAL-58MQAC Make QBtCfg control the unloading and loading of the stack.
+166056
+	        LCAL-58MPFZ Make the Bluetooth listener aware of Bluetooth modes
+166056
+	        LCAL-58GEGV Remove 3 minute discoverability timer in Bluetooth UI
+166056
+	        implemented CR: FSJN-599JNK Add a button named disconnect to the 'Connect to PC' dialog.
+166056
+	        QTodo: LIG-58VCPM To do saves empty entries.
+166056
+	        QContactsSharedUi: JEN-594KAM After deleting an entry in Contact another entry is hightlighted in the list view.
+166056
+	           BEN-599B3S  InfoPrint.enterSearchString has a dot at the end of the text
+166056
+	        QJotter: JON-595GT3 Program closed on Jotter when press Do-it button twice in                                 empty Foun
+166056
+	        MOR-4Y49PC - Button remains pressed when it shouldn't
+166056
+	        CRZ-573LKE - Resource file has to be checked against localisation checklist
+166056
+	        LAE-58NDXG - MMFH : Big jpg pictures appear as broken....
+166056
+	        ANN-58ZF3U - No scrollbar visible when you start QFileMan...
+166056
+	        SPEE-58GKVT - QDefaultViewer screws up URL scheme handling
+166056
+	        PEN-594AJJ - Wrong UID for ClickAnim.dll
+166056
+	        PEN-594A8K - Wrong UID for QSystemSounds.EXE
+166056
+	          OHF-598AQF "Voice crashes when trying to change the volume"
+166056
+	          MAT-599DFH "Voice app created VoiceNote folder in the root of C"
+166056
+	          BEN-594MVE "Tabs on list view remember previous tap when returning"
+166056
+	          BEN-595LNV "Strange focus and highlighning behaviour when navigating between folders"
+166056
+	          BEN-593JY2 Busy infoprint is missing
+166056
+	          BEN-595KJF InfoPrint.callingContact is missing
+166056
+	         OHF-598AQF, MAT-599DFH: Susanne LindÚn
+166056
+	         BEN-594MVE, BEN-595LNV, BEN-593JY2, BEN-595KJF: Mikael Brorson
+166056
+	        Defect fix: KAN-598D6B The active policy has been deactivated when reentering the IPSec Manager a second time
+166056
+	        Defect fix: PEN-594B4R SECDLGSV.DLL and SECNOT.DLL uses same UID
+166056
+	        Javaphone: AUT-58KJBP serial tests use wrong com port
+166056
+	        Midp: ANN-58EKZW Tapping on A,B,C,D reports nothing on the Testscreen in AstroMission
+166056
+	        Ported erj\makefiles for GNU-Make.
+166056
+	        Added Infoprint1,InfoPrin2 and InfoPrint3 to sdk deliverables and ported these for GNU-Make.
+166056
+	        Fixed defects: LUD-593M69 Strings which can be localised have not been moved to rls file
+166056
+	            MYN-58WBAB  Change icon and name in QFileman
+165875
+	KAI-55KLTV          [N#101] I get 'InUse' when trying to connect second time.   
+165875
+	KAN-57JGBS          [N#117] IPSec <--> FreeSwan problems
+165813
+	TUR-59AHB6 "ICC entries not supported in contact model views"
+165813
+	ANN-58CD3U "JavaPhone javax\pim\addressbook\items.html fails on WINS"
+165813
+	JOE-4ZDDM5 "JavaPhone API cannot retrieve ContactTemplates via their ORG field"
+165631
+		USB		SER-COMMS\USB\GROUP
+165598
+	BIA-59FGFE - MIDletAgent doesn't always build
+165598
+	EXT-59BDG5 - MIDP potential access violation (Better fix)
+165598
+	EXT-59BDG5 - MIDP potential access violation
+165595
+	SVG-56HDTW  Time out for dial-up account not working correctly (tcpip6)
+165595
+	BRE-58LEYP  Genconn has NULL pointer exception during OOM testing (genconn)
+165448
+	Change Request LCAL-55ENF8
+165448
+	CL164418 update to test code for CR LCAL-55ENF8
+165448
+	CL163600 Integrating changes for LCAL-55ENF8 to development branch.
+165448
+	CL163487 Changes to test app to allow modification of underlying registry entry for LCAL-55ENF8. 
+165448
+	CL163401 added some test code to test the new interface to the Secman to allow the retrieval and modifications of CBTDevices for CR LCAL-55ENF8
+165448
+	CL163307 Changes to notification feature of LCAL-55ENF8.  
+165448
+	CL163103 Added to CR-LCAL-55ENF8, Modified Notification, and Modification funtion.  
+165448
+	CL162692 Added to CR-LCAL-55ENF8 to allow for Notification and Modification of registry entries.
+165448
+	CL162680 missing from previous submission to CR-LCAL-55ENF8 implementation
+165448
+	CL162366 few tweeks to items 23/24 on CR_LCAL-55ENF8 and test code
+165448
+	CL162212 implements task 23/24 of CR LCAL-55ENF8. also some tidy up of code
+165448
+	CL161599 some changes made to the test code to test the correct storing/retrieval of the now extended CBTDevice as requested in CR LAC-55ENF8
+165448
+	CL161528 Changes to Security Manager to support features for LCAL-55ENF8 - " Persistence of Page Scan Mode and related Page Timeouts "
+165448
+	Change Request LCAL-576PZT
+165448
+	CL161472 implementation for CR LCAL-576PZT "Minimal Power Management Support".  Includes reference implementation of power status observer for UART devices in HCI.DLL.
+165448
+	Defect HOS-57ZPVW "RFCOMM state Disconnecting should defer call of MSocketNotify::Disconnect"
+165425
+	HED-57JJ2H   Still a very high number of illegal leaves in networking
+165424
+	DevKit - NavPages update to catch files fixing SHN-59FFGP
+165275
+	BRN-595GB2 "Contacts panic when searching for contacts with alot of chinese characthers in the search-string"
+165275
+	DUG-595CSC "In-source documentation should refer to 7.0 instead of 6.2"
+165275
+	DUG-595CU3 "In-source documentation should refer to 7.0 instead of 6.2"
+165275
+	DUG-595CVC "In-source documentation should refer to 7.0 instead of 6.2"
+165062
+	Fixed defect CLE-58EEDC - AppInstUI User Doc & Shell User Doc updated
+165062
+	Fixed defect BRY-58KJEW - add mrouter config app (mrouterclientui) to techview
+164964
+	Fixed COY-58UCK3: 16bpp and 24bpp compressed RAM bitmaps not supported.
+164922
+	Fixed defect  BEU-58UD8P "String Pool documentation needs to be updated"
+164763
+	Fixed FOT-58TGE6: CFbsBitmap::GetScanLine() functionality seems to have changed
+164618
+	- Defect Fix BAR-58WDCV : "CCoeSoundPlayerManager doesn't update the uids back to the playing client"
+164618
+	- Fix for defect MAT-593PME "Possible optimization in CEikEdwin::HandleSizeChangedL()"
+164579
+	BEN-587MYG, LYN-593JT3, MIY-58ZLS5, MIY-58ZM9S, TRN-593EUT
+164554
+	Amending categories - see change requests PTRY-59AGHW & PTRY-59AGL4 
+164554
+	Also removed comments to complete PTRY-59ACLF
+
+########################################################################################### 
+Defect list run on //epoc/release/7.0/... in period Hurricane 7.0.5 - 7.0.6  - changelists 169227 172990
+###########################################################################################
+172836
+	Fix for TET-59FK9F: Picture selection is broken in Linnea
+172836
+	  DUG-55CEKK Secure mmc: Indicator shows new messages, Inbox is empty
+172834
+	HAN-5AMJ5M - Changes to agenda within a minute of last sync not picked up
+172834
+	HAN-5A7CHH - Syncing hangs when using Weblicon
+172834
+	KRN-59ABLG - Client sync anchor gets saved too early
+172834
+	LLUD-5ADJS8 - (CR) Extend SyncML Database Adaptor interface to check for existence of database
+172820
+	MUN-5B3KP5  Relying on the fact that SetOpt(KSoSSLDomainName, ...) is used by everybody has side effect
+172810
+	MAY-5A5KCWSDP listener keeps binding to port in RunL even if no failure occured
+172810
+	ASM-5B2EAEL2CAP Test Case Errata 282 for test case TP/COS/TMH/BV-02
+172810
+	EXT-59BD48Bluetooth potential access violations
+172810
+	FRU-5AYNZSContinuation in SSA responses sometimes sends DES header twice
+172810
+	HOS-55DDN5HCIMgr panics on receipt of HCI_HarwareError event
+172810
+	HOS-57ZPVWRFCOMM Disconnecting state should defer call of MSocketNotify::Disconnect
+172810
+	HOS-594KEUL2CAP Config watchdog can cause access violation
+172810
+	HOS-59HHJJL2CAP fails to indicate reception of undersized L2CAP packets
+172810
+	HOS-59RLK3Baseband policy is not initialised
+172796
+	Defect fix TUR-5B4JSR: BC break of interface between Nifman and Tcpip6 to allow passing of a parameter by IfUserIsNetworkLayerActive() in MNifIfUser interface to allow Tcpip6 to distinguish which interface is asking about an active network layer
+172573
+	Defect fix: BIA-5AUL93 - KVM can panic if it fails to allocate its initial heap
+172573
+	Defect fix: MAY-5ANGPG - JNI methods that use 0, ...
+172573
+	BIA-5AJGYP - InfoStore MIDlet causes crash on exit
+172570
+	PEN-59BD4K Wrong expiry on received MMS
+172570
+	HOL-59BKAZ The content-id field value must be quoted.
+172570
+	HOL-59BKFE MMS unicode text media objects are not handled correctly...
+172570
+	LOO-58KMVN MmsAddressParser::IsValidGlobalPhoneNumber is not flexible enough
+172570
+	PEN-593B7H Received MMSs are not stored Unread and New
+172570
+	LOO-59PLN4 MMS Decoder does not correctly save media objects when a MMS message is retrieved
+172558
+	MOO-58NG9W     Apex driver can write corrupt data when sending ACK/NAK
+172558
+	HAS-593BKB     Bad checking logic in BasicCallUnitTest
+172558
+	HAS-58VDYF     Superfluous header files
+172558
+	MOO-592L5R     Apex fragment FIFO can overrun under extreme conditions
+172554
+	Fix for defect KIN-5B2C3M "There is no usbman.dll & usbman.lib for WINS in HRB675".
+172552
+	KIN-5B2C3M "There is no usbman.dll & usbman.lib for WINS in HRB675"
+172552
+	DIN-59QKPF. (StartCancel Hanging)
+172544
+	DAS-5AVLUG CommDB documents corrupted in Hurricane release 7.0.5
+172528
+	GIS-5A4F55       Calling RWapConn::GetBearer() causes CWAPSession::DispatchMessageL() to panic 
+172528
+	GIS-5A4GBR    CWAPConn::GetRemoteAddressL does not correctly write back the address to the client
+172476
+	LUD-599CYC "Agnmodel stores last changed date to a resolution of minutes which is too long"
+172476
+	FER-5AUJA8 "AppendCategoryListL does not remove R object from cleanupclose when returning early"
+172313
+	CUS-5AMDYY          [6.0] PPP callback idletimeout is too short
+172313
+	CUS-5AMDVD          Nifman does not produce debug logs
+172313
+	CUS-5AMELP          [5.2] Problems with Flogger memory consumption when SMS sending fails
+172313
+	CUS-5AMGHE          CEventLogger in Genconn does not log call duration correctly
+172313
+	CUS-5AMH3E          Default GPRS settings do not accept zero length APN
+172313
+	CUS-5AMHXU          Problems disconnecting from a socket when GPRS is suspended
+172313
+	SAM-5ATHWZ          Memory leak in SSL when going to a site without a trusted certificate
+172313
+	MUN-5A5DF9          images transferred multiple times from some secure sites
+172313
+	SAE-5AYJ52          TCP/IP Dual stack test code reports in unorthadox way...
+172313
+	DUR-5AKD9C          TIPC.EXE test harness fails on OOM tests
+172312
+	        PAA-5AHF7H Remove the mime-type dummy/everything from Qikon
+172312
+	        PAA-5AHF2G Remove the unrecogniser
+172312
+	        PAA-5ACGCR The default viewer should have the mimetype in the aif file to "*"
+172312
+	        WEP-5AJEB2 MMFH: Possible to have several files with same name - in the same folder
+172312
+	        PAA-5AJGEW Filemanager should take care of launching the default viewer when neccessary
+172312
+	        WEP-5A6CHM CRASH BUG in QikButtonPanel::ReArrangeButtonsL(const TRect& aGroupRect)
+172312
+	        ALM-5AMGCU No space between the lines makes the text unreadable.
+172312
+	        PAD-5ALKCY QStart must start the Connectivity listeners
+172312
+	        FSJN-5ACC27 Change the buttons on the default viewer to prevent loss of data
+172312
+	         BEN-5AMFPC "Receiving BIOs displays icon.messaging.newMessage"
+172312
+	        PEN-5AUAZT Duplicate code in CEmailDialog::CheckEssentialData()
+172312
+	        fixed: CKH-5AMGEV Improper use of SMIL API causes the emulator to crash in error condition
+172312
+	        CKH-5AMLP5 "Memory leak in CQMmsEngineModel under error condition"
+172312
+	        Fixed defect WEP-5AJFD2 reccert.mdl released by multiple components
+172312
+	        PAD-5AKH3S Memoryleak in BT
+172312
+	        BEN-59AJA6 Check disappear when searching is finished
+172312
+	        BEN-5AKQT4 Possible to Send address/Load images before page is loaded
+172312
+	        PAD-5AKH3S Memoryleak in BT
+172312
+	        BEN-59AJA6 Check disappear when searching is finished
+172312
+	        SOD-5ATFYN BT send crash when sending to a bonded device
+172312
+	        PAD-5AKGHD "Available devices" dialog doesn't match the UI spec !
+172312
+	        SVG-594GJA If other device initiates bonding it is listed as unknown
+172312
+	        BEN-59XD2W In Use after deleting an email account.
+172312
+	        BAN-59FB4J Access violation, messaging (QMmsEngineModel).
+172312
+	        JON-5AR9JK MMS: To-field not updated in New slide on address tab.
+172312
+	        ALM-5ASF98 Tap Go-back button when deleting sms from detail view results in program closed.
+172312
+	        BEN-5ARLMB Progress dialogs is missing during a schedule fetch.
+172312
+	        BEN-5AFG8W "Using DNL from contacts switch phonenumber with name"
+172312
+	        ALM-5AMJBL "The space between the phone numbers is missing in the address tab."
+172312
+	        BEN-5AJCHN InfoDialog.IPSec.importFailed appears when entering password
+172312
+	        implemented CR: ABRY-59PESL "UIQ support for Connectivity over USB"
+172312
+	        SVG-58LLCP  Icon on attachment tab for jar/jad/sis-files are to large
+172312
+	        SVG-5AEJ3D  Attached sis/jar file can only be installed once
+172312
+	        JON-5ASDE5  Corrupt sis files from beaming does not get deleted
+172312
+	        PAA-5AMJZL remove #ifndef __MINI_BUILD__in QStart
+172312
+	        PAD-5ALKCY QStart must start the Connectivity listeners
+172312
+	        PAA-5AEC9D    "CApaScanningAppFinder UpdateL should be avoided as much as possible..."
+172312
+	        REK-5A8HXX    QApplauncher - "The listview of the applauncher does not allow dragging the highlight from one application
+172312
+	        SVG-598E49c:\system\data\syssnd.dat cannot be restored
+172312
+	        AUN-5ADDBU Tap on Found entry shows blank/empty/new Contact
+172312
+	        JON-5AEJN3 Some images are not saved in Contacts.
+172312
+	        JON-5AJBBH Entry not correctly saved when open Show in list with no numbers available.
+172312
+	        EXT-5ABKQS Agenda folders given incorrect UID
+172312
+	        ANN-5AJADZ Accessing "ctrl+space" menu in javaapp makes it crash
+172312
+	        From GT: ANN-58CM42 JavaPhone Https test fails
+172312
+	        REK-5ALJEP  QStart needs to be able to start app without apparc server running
+172312
+	        REK-5ALJGR  Extra list should not get started all at once
+172312
+	        Fixed defects: DAO-59WGWH Loading notifiers needs performance improvement
+172260
+	Fix for defect OHF-5AKHZR å. ä and ö and the character after deleted from a lotus notes mail.
+172230
+Change 172230 by ShehlaA@CAM-ENGBUILD03-release_7.0 on 2002/06/12 14:23:14
+172230
+	ASM-5B2EAE - L2CAP test case errata 282 for test case TP/COS/TMH/BV-02
+172056
+	-- Number  LAE-5AZAKD: opening a wbmp files crashes the emulator....
+171990
+	Fixed defect no. LIG-59SHGL: Tapping on Mail-to link and nothing happens.
+171913
+	Fix for defect PAR-5A6G8D - ECOM hangs with SyncML OOM tests.
+171838
+	Changes for the CR MPEN-5AJF8F Making HAL Settings Persistent
+171774
+	Fix for BAD-59YJU6 FreeType OOM crash
+171371
+	Fixes for defects CHN-5ATBVW and CHN-5AKD6P.
+171326
+	BEN-4Y4EJ5  Timezone has no impact on vCal
+171326
+	DUG-5A7JCZ  Copy Paste code in Symbian Versit parser method CParserPropertyValueDaylight::ConvertAllUTCDateTimesToMachineLocalL?
+171326
+	SVG-58ZECH  Name not sent correctly in beamed vCards
+171326
+	FER-5AED4L  Agenda Model needs to use versit's optimisation interface
+171326
+	FER-5AECSB  Contacts Model needs to use versit's optimisation interface
+171216
+	        JON-5AFFKF InfoPrint.creatingNewEmail and Infoprint.findingWebPage are shown too short time.
+171216
+	        JON-5AJ9ZU Wrong folder displayed when renaming a folder in detail/edit view.
+171216
+	        LUD-59FK26 Create some friends command does not store phone numbers in correct field
+171216
+	        JON-5AJJHF Found entry opened in Edit mode if Edit mode is displayed when Find is selected.
+171216
+	        DAS-5AEEWR
+171216
+	        DAS-5AEFS2 Need to be careful about CMsvOperation Construction order
+171216
+	        DAS-5AEEMF Possible myestorious Kern-Exec3 on Thumb
+171216
+	        BEN-5AEC2C Program closed when closing BIO
+171216
+	        SVG-5ajazw Phone number listed twice in contacts
+171216
+	        ALM-5AKHN9  Not possible to launch the viewer
+171216
+	        SVG-59RFLR dialog.connectivity.homePCnotFound does not match the UI specs
+171216
+	        fixed: ROS-59KNBU Qsyncml attempts to rebuild GT resource files
+171216
+	        SVG-594GJA If other device initiates bonding it is listed as unknown
+171216
+	        BEN-5ADG43 Send as Bt not working if you task away from dialog.BT.availableOBEX.devices
+171216
+	        BRN-59XJR5 Memory leak in RGenConAgentDialogServer
+171216
+	        BRN-59XMKB RGenConAgentDialogServer::Connect doesn't handle OOM correctly
+171216
+	        BEN-58DHKZ Cannot connect after cancel connect.to.ISP dialog before Connection dialog appears
+171216
+	        BAN-5A5JT3 "CQikScrollableContainer does not draw properly"
+171216
+	        AUN-5AKJDU "Program closed with fast changing HW buttons in MMS"
+171216
+	        SVG-5AJG2V Panic when receiving multiple files over IR.
+171216
+	        CR implemented: MICD-59P9JY The Web viewer should recognize XML as well
+171216
+	        NEO-5ACJ23 dependancy: agenda-agendaModel-printer
+171216
+	        NEO-5ACJ9Z dependacy to printers to save notes
+171216
+	        EKD-5BJGBW Crash when file in use in voicenote viewer
+171216
+	        SPEE-5A7BHP    "AppLauncher crash"
+171216
+	        MAT-5A7NKB    Keyword to reduce app switch flicker missing from wsini.ini files
+171216
+	        JON-5ACAQA    Calibration screen has no wrapping in the text.
+171012
+	This change fixes the defect SIN-5ANF8C.
+170969
+	Fix defect RED-5ACK5F "Resource compiler creates nothing for empty and bad counted byte arrays"
+170969
+	Fix defect CHN-58WEZ3 "EPOCRC.PL fails in VC6 IDE builds with long paths"
+170956
+Change 170956 by neilbr@LON-ENGBUILD03-AUTOMATED_BUILD_ONLY-BTR-K: on 2002/05/31 13:54:46
+170956
+	MAY-5AEMK6: JNI does not handle returning global references to Java
+170956
+	PLD-599ELS Resource loading is suboptimal
+170956
+	HOS-59XJWP Gauge is not displayed properly
+170956
+	HOS-59YPCJ - MIDletAgent .app/.sis files are not built
+170931
+	1) MAT-58TKV6 - Newly created windows do not copy the fade state of      the parent window. 
+170931
+	2) TET-4ZNK8G - "Start an app in the background, and then view    switch to it. It doesn't get put in the foreground"
+170914
+	Fix for defect TUR-59BGLX WinNT backup locks Agenda Database on Assabet.
+170904
+	fix to defect ROS-53GRQ (buildrom.pl doesn't guarantee the order of substitutions)
+170776
+	Synchronise changes to made directly to Delivery Branch 7.0.5 into Release Branch. Specific defects implemented were "Background device search jams device", SIS-5AMJ9D, and "DISC on DLCI 0...", QUN-54JDQ4
+170763
+	Fixed defect no. EXT-59BD7B: Connectivity potential access violations
+170762
+	Fix for SKN-59KK8N - EC_CustomServers component has faulty .IBY file
+170762
+	Fix for SKN-59JHFS - \connlink\conndev\plpgrp\plp.iby is faulty and causes hangs
+170744
+	LOO-59ZE72 void CCLWatcherBase::ReceivePushL() is not handling the state machine correctly if an error occurs
+170738
+	COR-59QMAB Font file locks getting chopped off
+170709
+	-- Defect Number:  ROS-5AFG4W: (Propagated) WAV file assigned to ringing tone crashes sound    driver and kills phone.
+170599
+	HED-57JJ2H Still a very high number of illegal leaves in networking                                  
+170599
+	FAN-5ACHRC Add #define ECommDbBearerGPRS ECommDbBearerWcdma to cdbcols.
+170599
+	CUS-5AEJ2G CED fails to create Internet account details correctly  
+170589
+	Extra fix for defect PAR-59RLGJ - that was missing from the last submission
+170550
+	        Fixed defects: WEP-599HYZ Qstart in error processing
+170550
+	        REK-59XAZ5  "AppInstaller does not find SIS-files on C"
+170550
+	        PEN-59CDJM  "Web doesn't get EReleaseDisk event"
+170550
+	        ALM-58VG6N  "Strange behvaviour when opening a help topic for the first time."
+170550
+	                OEL-592FXC Searching in agenda needs performance improvement
+170550
+	                HAR-58EE7H Starting Agenda Application for the first time needs perfromance improvement.
+170550
+	                DOS-57YF2C Deleting "completed" Todo's needs performance improvements
+170550
+	                LIG-5ADAFB "HW buttons does not work correctly in Found dialog."
+170550
+	                JON-5ADEHK Entry with notes that is moved from To do makes Agenda crash.
+170550
+	        OEL-588QWH Reply and forward of messages needs performance improvement
+170550
+	        OEL-588R2B Opening message entry in messaging needs performance improvement
+170550
+	        LOO-59PMHA MMS does not disconnect after send failed
+170550
+	        EVS-5a7hpy Can not build QMMSView
+170550
+	        PEN-5ACCW3
+170550
+	        BEN-59PHSC Crash when tapping Go back when deleting message
+170550
+	        ALM-5ACCYW There should be no folder option
+170550
+	        BEN-59RQA2 Unknown error when Internet account is missing
+170550
+	        BEN-59KFE7 Crash when Scheduled fetch starts and messaging running
+170550
+	        ALM-5ADATJ THe bottom of the page is cut when sending..
+170550
+	        DAS-5ACm6R Codereview of messaging
+170550
+	        DAS-5ACM6R iLsSession.Close in destructor
+170550
+	        PEN-5AECZX Zero Length Fax number which has been created by DNL crashes
+170550
+	        DIN-5A8D2Q PCLINK not included in Quartz WINSCW builds
+170550
+	        SVG-59WCKE dialog.connectivity.linkToDesktop.BT is not updated correctly
+170550
+	        SOD-5ACBMM Unable to send large file over BT
+170550
+	        SJN-59XHEC Activate the filter that filter the Available devices dialog.
+170550
+	        SVG-59KKUB Dialog.BT.bluetoothOff opens too early
+170550
+	        BEN-5A6D3N Crash when task away directly after Send immediately
+170550
+	        OHF-59VGZN - Device disconnects after get & send emails when connected to Internet
+170550
+	        SVG-5A89NK List view not updated when folder is deleted in edit view
+170550
+	                KAN-5A8CMN Crash when deleting folder
+170550
+	        BEN-59AFNJ Focus should be on first row in Note tab
+170550
+	        OEL-588RWT "Opening an entry in contacts needs performance improvement"
+170550
+	        OEL-588RZH "Creating new entry in contacts needs performance improvement"
+170550
+	        MAT-59SHCN "Ugly performance work-around impacts Contacts' functionality"
+170550
+	        BEN-59FCG7 "Edit view not updated correctly when selecting New inside an entry"
+170550
+	        Release notes for performance changes( OEL-588RWT, OEL-588RZH, MAT-59SHCN, BEN-59FCG7):
+170550
+	         * Fixed MAT-59SHCN by removing the test in CContactsManAppUi::MoveUnfolderedContactsToUnfiledL().
+170550
+	           GT (see MAT-59SHVW).
+170372
+	PAR-59RLGJ - ECOMs behaviour is undefined for duplicate plugins on different drives
+170361
+	Fix for defect SKN-5ACGEU "Not possible to reproduce FORM binaries."
+170361
+	Fix for defect BAD-59GEDC "@deprecated tag spelt wrongly."
+170276
+	DUG-589JUC "Calcon is just too slow"
+170276
+	WAG-5AEHQR "Inline documentation was wrong"
+170276
+	FER-59YLFZ "Emulator doesn't set local on Boot Up"
+170276
+	WEP-59RJNC "Changed Owner Card name not reflected in tab view"
+170276
+	THY-59KK2U "Cntmodel View architecture does not sort contacts based on 
+170276
+	DUG-5AEE9D "(Propagated) CContactLocalView notifies only the first observer 
+170276
+	WAG-5A4CYK "(Propagated) AgnModel hangs"
+170276
+	TUR-5ADHGW "(Propagated) Contact view sorting does not use default collation 
+170276
+	DUG-5AEEB7 "(Propagated) Problems appear when contact's default number is 
+170274
+	This change fixes the defects PIN-5AFESN and HET-5AFGKD.
+170138
+	Fixes to BAD-59YJU6 FreeType OOM crash, WEP-59GAMB RichText field Parser crashes internalise and MON-59CE79 Problems with the stdlib function strtod
+170115
+	Fixed defect CHY-5AJDSN - some distribution policy files are wrong
+169798
+	ALR-5ABLF6 - (Propagated) CMsvEntry Sorting behaviour is wrong if you specify reverse sorting
+169798
+	ALR-5ABL9S - (Propagated) Copying message entries can fill disk completely
+169798
+	ALR-5ABLGM - (Propagated) 1 second timer ticking for IMAP remote mailconnection
+169798
+	ALR-5ACJYX - SMS backup/restore does not work correctly
+169798
+	ALR-5ABMSZ -Fixed Strange behaviour in message server when closing sessions causes crash in mce app
+169798
+	ALR-5ABMX3 - Performance: IMAP sends NOOP strings too often and consumes battery power + creates bill to the user
+169798
+	ALR-5ABMZS (Propagated) connecting to pop3 mailbox crashes
+169798
+	ALR-5ABN2U -TImRfc822DateField::SetDate uses hardcoded strings
+169798
+	ALR-5ABN43 - Cancelling of autosend'ing of emails doesn't appear to be working
+169798
+	SMRA-5ACD73 - The message engine igonres errors on attempting to load HTML convertors.
+169798
+	LIG-59SHGL: Tapping on Mail-to link and nothing happens
+169798
+	SMRA-5ACM9W - (Propagated) MIME parts defined to be inlined should be shown as attachments also
+169798
+	GUY-58TGT6 - Shouldn't set the attachment flag on embeded messages unless they have an attachment.
+169798
+	KAI-58NEJ5 - V3:EDNTHYN-4XUAAE-IMAP4 not able to handle negative server responses
+169798
+	WIN-56VKPT - V3: Incorrect progress when sending emails containing Bcc: recipients
+169783
+	Fix for defects LEQ-59SEC6 and LEQ-59SFBD.
+169706
+	Fix for BRN-59XKV9  RGenConAgentDialogServer is destructed twice       
+169695
+	Fix defects GAL-5AEKU5, GAL-5AEKWP (problems with policy file on Win2000 and an
+169657
+	RES-59KLHY WSP tests failing when running T_Http on both WINS and Assabet
+169657
+	SAM-59WGL5 Some tests fail in t_http when doing WSP secure tests using securetestcases.ini
+169636
+	Fix for DAO-5A8AMH.  Default locale is now fixed to be British English
+169507
+	Defect Number:  ROS-5ADCR6: (Propagated) Possible audio OOM bug in Media Server
+169366
+	         Fixed defects:PEN-5ACCW3 Pressing backbutton in detail views crashes with Object still active on destruction
+169366
+	                      Fixed Defects:    HUN-5AB    "summer times" should be "summertime"
+169366
+	        DIN-5A8D2Q PCLINK not included in Quartz WINSCW builds
+169366
+	        SVG-59WCKE dialog.connectivity.linkToDesktop.BT is not updated correctly
+169366
+	        BED-57ZL2T Design flaw in MMFH ?
+169366
+	        FRN-59FCED MMFH: The size of a file in the select dialog is different depending on the folder.
+169366
+	        FRN-59VJ9C MMFH: Select dialog doesn't return right path to voice notes.
+169366
+	        SVG-59NAZN : play button activatd when no entry selected
+169366
+	        LIG-58ZH9T Scroll bar displayed in alarm and storage manager dialogs.
+169366
+	        REK-594GV9 Defects in QikTaskMenu.cpp
+169366
+	        WEP-59S9ER : Error in CQikMediaFileFolderUtils::RunL()
+169366
+	        LIG-5A49ZS : FileHandling: Dialog.saveUnrecognized does not match its UI
+169366
+	        changes in Qikdlg.rss to fix defect LIG-5A49ZS. Removed a duplicated string :  STRING_r_save_file_in_folder_dialog4 (Jus
+169366
+	         QAgenda: ALM-59XK7M, BEN-59AG8F
+169366
+	         QContacts: BEN-59SJ2R, BEN-59WNTC, ALM-59ND48
+169366
+	         QJotter: WEP-59W9QR
+169366
+	         QTime: PEN-59WCW5
+169366
+	         QVoice: DAS-59NMB4, JON-59HCA7
+169366
+	         ALM-59XK7M: Jenny Ekelund
+169366
+	         BEN-59AG8F: Jens Karlsson
+169366
+	         BEN-59SJ2R: Jenny Ekelund
+169366
+	         BEN-59WNTC: Berith Bergquist
+169366
+	         ALM-59ND48: Jenny Ekelund
+169366
+	         WEP-59W9QR: Bengt Strand
+169366
+	         PEN-59WCW5: Berith Bergquist
+169366
+	         DAS-59NMB4: Jenny Ekelund
+169366
+	         JON-59HCA7: Jenny Ekelund
+169366
+	        PEN-59VGEH SMS Detailview does not display name of sender of SMS from contacts
+169366
+	        PEN-59XFG3 QStatusBar does Signal for New Message when new message is created under local service
+169366
+	        Defect fix: OHF-59NG4Z Cursur jumps to another filed when entering text using HW keyboard.
+169366
+	        Defect fix: OHF-59NBMK Installation complete when import password is canceled
+169366
+	        Defect fix: BEN-59XPR2  Web hangs when you Disconnect before you are connected
+169366
+	        JON-59XCM3 dialog.web.form does not look correct
+169366
+	        HOS-59RJG6 Descriptor overflow guaranteed if Bluetooth UI finds device with long name.
+169366
+	        PEN-59VAYD SyncML fails to handle translated resource correctly
+169366
+	        MKY-59ZBQL qinetcfg policy files (stange readme.txt file)
+169366
+	        SOD-59FK7L QBTSelectDlg.h should not include...
+169366
+	        OHF-59PBND Task status always = "-" and some housekeeping.
+169366
+	        BEN-59NB97 - Crash when tapping screen when Busy deleting messages
+169366
+	        BEN-59MMUQ - Task away from messaging.saveContact to Contacts, highlights entry and crash
+169366
+	        JON-59P9XV - Problems sending and receiving emails when having two different accounts
+169366
+	        OHF-59VGZN - Device disconnects after get & send emails when connected to Internet
+169366
+	        BEN-59SLH7 - Incorrect DNL from Contacts is saved in Outbox and causes problem
+169366
+	        BEN-58BMXR - Low on storage space dimmes messaging and then ViewSrv crash
+169366
+	        BEN-59BE7C - ViewSrv crash when Low on storage space
+169366
+	        PEN-5A5AFM - Default ScheduledFetch settings should have ScheduledFetch Fail set to False
+169366
+	        JON-59SAVD dialog.internetSetup.AdvancedSettings does not match its UI.
+169366
+	        Defect fix: DAS-59WPRU Some resource leaks in QSbMsg
+169366
+	        Defect fix: BEN-59XBQ7 Proxy server address and Server address is highlighted
+169366
+	        Defect fix: FID-5A4LXD QInetCfg HSCSD Speed Settings Dialog
+169366
+	        Defect fix: WEP-59GD6N Current Service Id and AgentDialog
+169366
+	        JON-595BFT  Adaptations for PC install of sis files is needed
+169366
+	        Fixed defects: TUR-57KCM4 assabet. cannot open vcals and vcards in QFileMan - file is damaged
+169366
+	        REK-592HP6 Bitmap color scheme mapping unflexible
+169366
+	        BRN-59VEKR Dialogs aren't closed when switching views within an app
+169366
+	        REK-594D9T Handanim (and TextInputServerClient) uses wrong screendevice
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/delta_zip.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,199 @@
+# Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+use Getopt::Long;
+GetOptions("v", "x=s@");
+
+if (@ARGV<2)
+	{
+#........1.........2.........3.........4.........5.........6.........7.....
+	print <<USAGE_EOF;
+
+Usage:
+  delta_zip zipfile dir1 [dir2 ...] [-x excludezip ] [-x pattern]
+
+Create <zipfile> which contains the tree rooted at <dir1>,
+excluding all files listed in <excludezip>, and optionally
+all files which match the specified Perl patterns.
+
+This is done with "zip zipfile -@", with the appropriately 
+filtered list of files supplied as standard input.
+ 
+USAGE_EOF
+	exit 1;
+	}
+
+my $zipfile = shift;
+die "$zipfile already exists\n" if (-e $zipfile);
+
+#--------
+# Find the basic list of files
+#
+
+my %filelist;
+my $filecount = 0;
+my $arg = shift;
+
+while ($arg ne "")
+	{
+	if (-d $arg)
+		{
+		add_dir($arg);
+		}
+	elsif (-e $arg)
+		{
+		add_file($arg);
+		}
+	else
+		{
+		print "Cannot find $arg - ignored\n";
+		}
+	print "$filecount files after processing $arg\n";
+
+	$arg = shift;
+	next;
+	}
+
+#--------
+# Remove excluded files
+#
+
+foreach $arg (@opt_x)
+	{
+	if (-e $arg)
+		{
+		exclude_zip($arg);
+		}
+	else
+		{
+		exclude_pattern($arg);
+		}
+	print "$filecount files after excluding $arg\n";
+	$arg = shift;
+	}
+
+print "Invoking \"zip $zipfile -@\"\n";
+
+open ZIPOUT, "| zip $zipfile -@";
+foreach $arg ( sort keys %filelist)
+	{
+	if ($filelist{$arg} ne "")
+		{
+		print ZIPOUT "$filelist{$arg}\n";
+		}
+	}
+
+close ZIPOUT;
+die "Problems creating zip file\n" if ($? != 0);
+
+exit 0;
+
+
+#------------------------------------------------------------
+
+sub add_file
+	{
+	my ($file) = @_;
+	my $key = lc $file;
+
+	$key =~ s-/-\\-g;	# convert / to \ for path separators
+	$key =~ s/^\\//;	# remove leading \ since it won't appear in zip files
+	if ($filelist{$key} ne "")
+		{
+		die "Duplicate file $file\n";
+		}
+	$filelist{$key} = $file;
+	$filecount += 1;
+	}
+
+sub exclude_file
+	{
+	my ($file) = @_;
+	my $key = lc $file;
+
+	$key =~ s-/-\\-g;	# convert / to \ for path separators
+	$key =~ s/^\\//;	# remove leading \ since it won't appear in zip files
+	if ($filelist{$key} ne "")
+		{
+		delete $filelist{$key};
+		$filecount -= 1;
+		}
+	}
+
+sub exclude_pattern
+	{
+	my ($pattern) = @_;
+	my $key;
+
+	foreach $key (keys %filelist)
+		{
+		if ($key =~ /$pattern/i && $filelist{$key} ne "")
+			{
+			delete $filelist{$key};
+			$filecount -= 1;
+			}
+		}
+	}
+
+sub add_dir
+	{
+	my ($dir) = @_;
+	opendir LISTDIR, $dir or print "Cannot read directory $dir\n" and return;
+	my @list = grep !/^\.\.?$/, readdir LISTDIR;
+	closedir LISTDIR;
+
+	if ($opt_v)
+		{
+		print "Scanning $dir...\n";
+		}
+	my $name;
+	foreach $name (@list)
+		{
+		my $filename = "$dir\\$name";
+		if (-d $filename)
+			{
+			add_dir($filename);	# recurse
+			}
+		else
+			{
+			add_file($filename);
+			}
+		}
+	}
+
+sub exclude_zip
+	{
+	my ($excludezip) = @_;
+
+	die "$excludezip does not exist\n" if (!-e $excludezip);
+	print "Reading exclusions from $excludezip...\n";
+
+	my $line;
+	open ZIPEX, "unzip -l $excludezip |";
+	while ($line=<ZIPEX>)
+		{
+		#    4492  10-12-99  17:31   epoc32/BLDMAKE/AGENDA/ARM4.MAKE
+		if ($line =~ /..-..-..\s+..:..\s+(.*)$/)
+			{
+			exclude_file($1);
+			}
+		}
+	close ZIPEX;
+	die "Problem reading $excludezip\n" if ($? != 0);
+	}
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/getlatestrel.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,124 @@
+#!/usr/bin/perl
+
+=head1 NAME
+
+Getlatestrel.pl
+
+=head1 SYNOPSIS
+
+Getlatestrel.pl
+
+=head1 DESCRIPTION
+
+This script is designed to use latestver from the CBR tools to find at get the
+latest version of a component.
+
+If a baseline version is provided, then it will install the version of the component
+released as part of that specified baseline.
+
+=head1 COPYRIGHT
+
+Copyright (c) 2008 Symbian Ltd. All rights reserved
+
+=cut
+
+use strict;
+
+use Getopt::Long;
+
+my ($iComp, $iSource, $iVersion, $iBaselineComponent, $iBaselineVersion) = ProcessCommandLine();
+
+if ($iSource)
+{
+  $iSource = "-s";
+} else {
+  $iSource = "";
+}
+if (!defined $iVersion)
+{
+  if (defined $iBaselineVersion) {
+
+    if (!defined $iBaselineComponent) {
+      $iBaselineComponent = "gt_techview_baseline";
+    }
+    my $envout= `envsize -v $iBaselineComponent $iBaselineVersion 2>&1`;
+
+    # match component    
+    if ($envout =~ m/(Adding up size of )$iComp (.*)/) {
+      print "INFO: Component $iComp version $2 found for baseline $iBaselineComponent $iBaselineVersion\n";
+      $iVersion = $2;
+    }elsif ($envout =~ m/(didn't exist)/) {
+      print "WARNING: Baseline $iBaselineVersion didn't exist, unable to check $iBaselineComponent, geting latest version\n";
+      $iVersion = `latestver $iComp`;  
+    }
+  } else {
+    $iVersion = `latestver $iComp`;  
+  }
+}
+
+chomp($iVersion);
+
+my $getreloutput = `getrel -vv $iSource -o $iComp $iVersion`;
+
+if (($getreloutput =~ /^Installing $iComp $iVersion/) || 
+    ($getreloutput =~ /^Switching $iComp/)            ||
+    ($getreloutput =~ /already installed and clean/)) {
+  
+  print $getreloutput;
+} else {
+  print "ERROR: could not getrel $iComp $iVersion - $getreloutput\n";
+}
+
+
+
+# ProcessCommandLine
+#
+# Inputs
+#
+# Outputs
+# $ilog - logfile location
+#
+# Description
+# This function processes the commandline
+sub ProcessCommandLine {
+  my ($iHelp, $iComp, $iSource, $iVersion, $iBaselineComponent, $iBaselineVersion);
+
+  GetOptions('h' => \$iHelp, 'c=s' => \$iComp, 's' => \$iSource, 'v=s' => \$iVersion, 'bc=s' => \$iBaselineComponent, 'bv=s' => \$iBaselineVersion);
+
+  if (($iHelp) || (!defined $iComp))
+  {
+    &Usage();
+  } else {
+    return($iComp, $iSource, $iVersion, $iBaselineComponent, $iBaselineVersion);
+  }
+}
+
+# Usage
+#
+# Output Usage Information.
+#
+
+sub Usage {
+  print <<USAGE_EOF;
+
+  Usage: getlatestrel.pl [Args/options]
+
+  Args: (required)
+  
+  -c  [Component name]  Name of component to get 
+
+  options:
+
+  -h                    help
+  -s                    install (and overwrite) source code
+  -v  [version string]  Optional version to get instead of latest available.
+
+  -bc [component str ]  Optional baseline component [default is gt_techview_baseline]
+  -bv [version   str ]  Optional baseline version
+  
+  Example Commandline
+  getlatestrel.pl -c tools_testexecute
+
+USAGE_EOF
+	exit 1;
+} 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/iprtool.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,1598 @@
+#!perl
+# Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+use strict;
+
+use Getopt::Long;
+use Cwd;
+use XML::Simple;
+use FindBin;
+use lib "$FindBin::Bin";
+
+my $Now = &Today;
+my $IncludesRestrictedSource = 0;
+my $ZippedCatA = 0;
+my $ZippedCatX = 0;
+
+my $WorkPath = uc cwd;
+$WorkPath =~s-/-\\-go;            # replace forward slash with backslash
+$WorkPath =~s/^(.:)(\S+)$/$2/o;   # remove drive letter
+my $WorkDrv = $1;
+$WorkPath =~s-^(.*[^\\])$-$1\\-o; # ensure it ends with a backslash
+
+my %HTMLFileErrors = ();
+my %ASCIIFileErrors = ();
+my %Components = ();
+my %ComponentsUsed = ();
+my @UnrepresentedComponents = ();
+
+my %Cmdopts = ();
+unless (GetOptions( \%Cmdopts, "cats|c=s", "dir|d=s", "export|e", "full|f:i",
+        "genpkg|g=s", "help|h", "licensee|l=s", "manifest|m=s", "nosub|n", "overrideexpiry|o",
+        "project|p=s", "report|r=s", "showfiles|s", "xclude|x=s", "zip|z=s",
+        "outdir=s"))
+  {
+  print "For help, use -h option\n";
+  exit 1;
+  }
+
+if (@ARGV && ($ARGV[0]=~/help/io || $ARGV[0]=~/\?/io))
+  {
+  &Usage();
+  }
+  
+# Open Schedule12 File for Component name checking
+if ($Cmdopts{'report'})
+{
+    my $Build = $Cmdopts{'report'};
+    my $Version = $1 if ( $Build =~ /Symbian_OS_v(.*)/i );
+    
+    # Define the source root directory (assumes it's 3 levels up)
+    my $sourcedir = Cwd::abs_path("$FindBin::Bin\\..\\..\\..");
+    my $Schedule12File = "$sourcedir\\os\\deviceplatformrelease\\symbianosbld\\cedarutils\\Symbian_OS_v"."$Version"."_Schedule12.xml";
+    my $xml = new XML::Simple;
+    my $Schedule12 = $xml->XMLin($Schedule12File);
+    
+    my $CommonReplaceable = %$Schedule12->{'CR'};
+    for (keys %$CommonReplaceable)
+    {
+        $Components{$_} = "Common Replaceable";
+        $ComponentsUsed{$_} = 0;
+    }
+    
+    my $CommonSymbian = %$Schedule12->{'CS'};
+    for (keys %$CommonSymbian)
+    {
+        $Components{$_} = "Common Symbian";
+        $ComponentsUsed{$_} = 0;
+    }
+    
+    my $OptionalReplaceable = %$Schedule12->{'OR'};
+    for (keys %$OptionalReplaceable)
+    {
+        $Components{$_} = "Optional Replaceable";
+        $ComponentsUsed{$_} = 0;
+    }
+    
+    my $OptionalSymbian = %$Schedule12->{'OS'};
+    for (keys %$OptionalSymbian)
+    {
+        $Components{$_} = "Optional Symbian";
+        $ComponentsUsed{$_} = 0;
+    }
+    
+    my $ReferenceTest = %$Schedule12->{'REF'};
+    for (keys %$ReferenceTest)
+    {
+        $Components{$_} = "Reference/Test";
+        $ComponentsUsed{$_} = 0;
+    }
+    
+    my $ReferenceTest = %$Schedule12->{'TEST'};
+    for (keys %$ReferenceTest)
+    {
+        $Components{$_} = "Reference/Test";
+        $ComponentsUsed{$_} = 0;
+    }
+    
+    my $ReferenceTest = %$Schedule12->{'RT'};	# v9.1 style combined Ref/Test
+    for (keys %$ReferenceTest)
+    {
+        $Components{$_} = "Reference/Test";
+        $ComponentsUsed{$_} = 0;
+    }
+}
+
+# Handle -h flag
+# --------------
+if ($Cmdopts{'help'})
+  {
+  &Usage();
+  }
+
+# --------------
+# Handle -c flag
+# --------------
+my $Categories = 'EFGOT';
+if ($Cmdopts{'cats'})
+  {
+  if ($Cmdopts{'cats'} =~ /[^A-GIOTX]/i)
+    {
+    &NotifyError("Unrecognised category list \"$Cmdopts{'cats'}\" ignored");
+    }
+  else
+    {
+    $Categories = uc($Cmdopts{'cats'});
+    }
+  }
+
+# --------------
+# Handle -d flag
+# --------------
+my @TopDirs;
+if (!$Cmdopts{'dir'})
+  {
+  $TopDirs[0] = $WorkPath;
+  }
+else
+  {
+  if (!(-e $Cmdopts{'dir'}))
+    {
+    die "$Cmdopts{'dir'} does not exist\n";
+    }
+  if (-d $Cmdopts{'dir'})
+    {
+    $TopDirs[0] = $Cmdopts{'dir'};
+    }
+  else
+    {
+    @TopDirs = &ReadDirFile($Cmdopts{'dir'});
+    }
+  @TopDirs = &MakeAbs($WorkPath, @TopDirs);
+  foreach my $p (@TopDirs)
+    {
+    $p = &ValidateIncPath($p);
+    }
+  }
+
+# --------------
+# Handle -e flag
+# --------------
+my $ForceExport = $Cmdopts{'export'} ? 1 : 0;
+
+# --------------
+# Handle -f flag
+# --------------
+my $Full = $Cmdopts{'full'} || 0;
+
+
+# --------------
+# Handle -g flag
+# --------------
+my $PkgFile;
+my $GenPkg = $Cmdopts{'genpkg'} ? 1 : 0;
+if ($GenPkg)
+  {
+  $PkgFile = $Cmdopts{'genpkg'};
+  if (index($PkgFile, "\.") < 0)
+    {
+    $PkgFile .= "\.xml";
+    }
+  if ((-e $PkgFile) and (-f $PkgFile))
+    {
+    unlink ($PkgFile) or die "Can't overwrite $PkgFile\n";
+    }
+  open PKGLIST, ">$PkgFile" or die "Can't open $PkgFile\n";
+  }
+
+
+# --------------
+# Handle -l flag
+# --------------
+my $Recipient = 'generic';
+if ($Cmdopts{'licensee'})
+  {
+  $Recipient = lc($Cmdopts{'licensee'});
+  }
+
+# --------------
+# Handle -m flag
+# --------------
+my $Manifest = $Cmdopts{'manifest'} ? 1 : 0;
+if ($Manifest)
+  {
+  my $MfsFile = $Cmdopts{'manifest'};
+  if (index($MfsFile, "\.") < 0)
+    {
+    $MfsFile .= "\.txt";
+    }
+  if ((-e $MfsFile) and (-f $MfsFile))
+    {
+    unlink ($MfsFile) or die "Can't overwrite $MfsFile\n";
+    }
+  open MFSLIST, ">$MfsFile" or die "Can't open $MfsFile\n";
+  }
+
+
+# --------------
+# Handle -n flag
+# --------------
+my $SubDirs = $Cmdopts{'nosub'} ? 0 : 1;
+
+# --------------
+# Handle -o flag
+# --------------
+my $OverrideExpiry = $Cmdopts{'overrideexpiry'} ? 1 : 0;
+
+# --------------
+# Handle -outdir flag
+# --------------
+my $outdir = $Cmdopts{'outdir'};
+
+# --------------
+# Handle -p flag
+# --------------
+my $Project = 'generic';
+if ($Cmdopts{'project'})
+  {
+  $Project = lc($Cmdopts{'project'});
+  }
+
+# --------------
+# Handle -s flag
+# --------------
+my $ShowFiles = $Cmdopts{'showfiles'} ? 1 : 0;
+
+# --------------
+# Handle -x flag
+# --------------
+my @XDirs;
+if (!$Cmdopts{'xclude'})
+  {
+  $XDirs[0] = "";
+  }
+else
+  {
+  if (!(-e $Cmdopts{'xclude'}))
+    {
+    die "Exclusion $Cmdopts{'xclude'} does not exist\n";
+    }
+  if (-d $Cmdopts{'xclude'})
+    {
+    $XDirs[0] = $Cmdopts{'xclude'};
+    }
+  else
+    {
+    @XDirs = &ReadDirFile($Cmdopts{'xclude'});
+    }
+  @XDirs = &MakeAbs($WorkPath, @XDirs);
+  foreach my $p (@XDirs)
+    {
+    $p = &ValidateExcPath($p);
+    }
+  }
+
+# --------------
+# Handle -z flag
+# --------------
+my $ZipFile;
+my $ZipTmpFile;
+my $ZipLogFile;
+my $Zip = $Cmdopts{'zip'} ? 1 : 0;
+if ($Zip)
+  {
+   if ( &FindZip == 0 )
+   {
+      die "Cannot find zip.exe in path. $?\n";
+   }
+
+  $ZipFile = $Cmdopts{'zip'};
+  if (index($ZipFile, "\.") < 0)
+    {
+    $ZipFile .= "\.zip";
+    }
+  $ZipLogFile = $ZipFile . "log";
+  $ZipTmpFile = $ZipFile . "tmp";
+  if ((-e $ZipFile) and (-f $ZipFile))
+    {
+    unlink ($ZipFile) or die "Can't overwrite $ZipFile\n";
+    }
+  if ((-e $ZipTmpFile) and (-f $ZipTmpFile))
+    {
+    unlink ($ZipTmpFile) or die "Can't overwrite $ZipTmpFile\n";
+    }
+  open ZIPLIST, ">$ZipTmpFile" or die "Can't open $ZipTmpFile\n";
+  }
+
+
+
+# --------------
+# print Pkg header
+# --------------
+
+  if ($GenPkg)
+    {
+    &PkgPrint ("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
+    &PkgPrint ("\n");
+
+    &PkgPrint ("<packagedef version=\"1.0\">\n");
+    &PkgPrint ("   <package name=\"$PkgFile\" major-version=\"0\" minor-version=\"0\">\n");
+    &PkgPrint ("     <supplier>Symbian Ltd</supplier>\n");
+    &PkgPrint ("     <sdk-version>7.0</sdk-version>\n");
+    &PkgPrint ("   </package>\n");
+    &PkgPrint ("\n");
+    &PkgPrint ("   <manifest>\n");
+    }
+
+
+#------ Do the report header ------
+my $temp ="IPR Report, ".&DateValToStr($Now);
+&DataPrint("$temp\n");
+$temp = '-' x length($temp);
+&DataPrint("$temp\n");
+
+&DataPrint ("Report type:                  ");
+if ($Full < 0)
+  {
+  &DataPrint ("No IPR data\n") ;
+  }
+else
+  {
+  &DataPrint ($Full ? "Full IPR data\n" : "Reduced IPR data\n");
+  }
+&DataPrint ("Recipient:                    ", ucfirst($Recipient), "\n");
+&DataPrint ("Include DTI restricted files: ", $ForceExport ? 'Yes' : 'No', "\n");
+&DataPrint ("Include time-expired files:   ", $OverrideExpiry ? 'Yes' : 'No', "\n");
+&DataPrint ("List selected files:          ", $ShowFiles ? 'Yes' : 'No', "\n");
+&DataPrint ("\n");
+
+#------ Do header for standard section ------
+$temp ="Standard source for ".ucfirst($Recipient);
+&DataPrint ("$temp\n");
+$temp = '-' x length($temp);
+&DataPrint ("$temp\n");
+&DataPrint ("Categories:                   $Categories\n");
+&DataPrint ("Include subdirectories:       ", $SubDirs ? 'Yes' : 'No', "\n");
+&DataPrint ("Top level directories:\n");
+foreach my $name (@TopDirs)
+  {
+  &DataPrint ("                              $name\n");
+  }
+&DataPrint ("\n");
+
+&ProcessDir(@TopDirs, $SubDirs, 1, $Manifest);
+
+#------ Do optional header for extra section ------
+if (($Project ne 'generic') and (-e "$Project\.extra"))
+  {
+  my @ExtraDirs = ReadDirFile("$Project\.extra");
+  @ExtraDirs = &MakeAbs($WorkPath, @ExtraDirs);
+  foreach my $p (@ExtraDirs)
+    {
+    $p = &ValidateIncPath($p);
+    }
+  &DataPrint ("\n");
+  $temp ="Extra source for ".ucfirst($Project);
+  &DataPrint ("$temp\n");
+  $temp = '-' x length($temp);
+  &DataPrint ("$temp\n");
+  $Categories = 'ABCDEFGIOTX';
+  &DataPrint ("Categories:                   $Categories\n");
+  &DataPrint ("Include subdirectories:       No\n");
+  &DataPrint ("Additional directories:\n");
+  foreach my $name (@ExtraDirs)
+    {
+    if ($name)
+      {
+      &DataPrint ("                              $name\n");
+      }
+    }
+  &DataPrint ("\n");
+
+  &ProcessDir(@ExtraDirs, 0, 0, 0); # Note, no extra directories in a product manifest
+  }
+
+if ($Zip)
+  {
+   if ( &FindZip == 0 )
+   {
+      die "Cannot find zip.exe in path. $?\n";
+   }
+
+   close ZIPLIST;
+   `zip -@ $ZipFile <$ZipTmpFile >$ZipLogFile`;
+   unlink ($ZipTmpFile);
+  }
+
+if ($Manifest)
+  {
+  close MFSLIST;
+  }
+
+# --------------------------
+# print Pkg footer and close
+# --------------------------
+
+if ($GenPkg)
+  {
+  &PkgPrint ("   </manifest>\n");
+  &PkgPrint ("</packagedef>\n");
+  close PKGLIST;
+  }
+
+#------ Do optional warning for restricted export source ------
+&ExportWarning() if ($IncludesRestrictedSource);
+&NotifyWarning("zip file contains Category A source\n") if ($ZippedCatA);
+&NotifyWarning("zip file contains uncategorised source\n") if ($ZippedCatX);
+
+if ($Cmdopts{'report'})
+    {
+    #------ Produce Distribution Policy File Error Report --------
+    my ( $s, $min, $hour, $mday, $mon, $year, $w, $y, $i)= localtime(time);
+    $year+= 1900;
+    $mon++;
+    
+    my $builddir = $outdir;
+    if (!defined $builddir)
+    	{
+    	# Assume default setup for Symbian build machines...
+    	$builddir = Cwd::abs_path("$FindBin::Bin\\..\\..\\..\\..");
+    	$builddir.= "\\logs\\cedar";
+    	}
+    open HTMLOUTFILE, ">> $builddir\\$Cmdopts{'report'}_Distribution_Policy_Report.html";
+    open ASCIIOUTFILE, ">> $builddir\\$Cmdopts{'report'}_Distribution_Policy_Report.txt";
+    
+    foreach my $key (sort keys %ComponentsUsed)
+    {
+        push @UnrepresentedComponents, $key if ($ComponentsUsed{$key} == 0);
+    }
+    
+    my $UnrepCKLComponents = @UnrepresentedComponents;
+    my $NonCompliantFiles = scalar(keys %ASCIIFileErrors);
+    
+    print HTMLOUTFILE <<HEADING_EOF;
+    <html><head><title>Distribution Policy File Report for $Cmdopts{'report'}</title></head>
+    <body>
+    <h1><center>Distribution Policy File Report<br>for<br>$Cmdopts{'report'}</center></h1>
+    <h2><center>Created - $mday/$mon/$year</center></h2>
+    <hr width=60% size=1 noshade> <p><p><p><p>
+    
+    <TABLE BORDER Align=center>
+    <TH COLSPAN=2><font color=red>Report Summary</font></TH>
+    <TR><TD>Total number of Non-compliant Files</TD><TD><b>$NonCompliantFiles</b></TD></TR>
+    <TR><TD>Total number of Unrepresented CKL Components</TD><TD><b>$UnrepCKLComponents</b></TD></TR>
+    </TABLE><p><p><p><p>
+    
+    <TABLE BORDER ALIGN=center>
+    <TH COLSPAN=2>Non-Compliant Files</font></TH>
+    <TR><TH>File Location</TH><TH>Errors</TH></TR>
+HEADING_EOF
+    
+    print ASCIIOUTFILE <<HEADING_EOF;
+Distribution Policy File Report for $Cmdopts{'report'}
+Created - $mday/$mon/$year
+================================
+    
+HEADING_EOF
+
+    foreach my $key (sort keys %ASCIIFileErrors)
+    {
+        my $path = lc $key;
+        $path =~ s/^.*?\\master\\.*?\\src\\/\\src\\/i;
+        print HTMLOUTFILE "<TR><TD><font face=verdana size=4>$path</TD><TD>@{$HTMLFileErrors{$key}}</TD></TR>";
+        print ASCIIOUTFILE "@{$ASCIIFileErrors{$key}}";
+    }
+    print HTMLOUTFILE "</TABLE><p><p><p><p>";
+    
+    if (@UnrepresentedComponents != 0)
+    {
+        print HTMLOUTFILE "<TABLE BORDER ALIGN=center>";
+        print HTMLOUTFILE "<TR><TH>Unrepresented Components</TH></TR>";
+        foreach my $component (@UnrepresentedComponents)
+        {
+            print HTMLOUTFILE "<TR><TD>Component '$component' as recorded in
+                Schedule 12 of the CKL has no representation in any of the source directories that are used to build this product</TD></TR>";
+            
+            print ASCIIOUTFILE "Unrepresented Component, Component '$component' as recorded in Schedule 12 of the CKL has no representation in any of the source directories that are used to build this product.\n";
+        }
+        print HTMLOUTFILE "</TABLE>";
+    }
+    
+    close HTMLOUTFILE;
+    close ASCIIOUTFILE;
+    }
+
+
+
+sub ProcessDir
+{
+my $ForManifest = pop @_;
+my $ObeyExcludes = pop @_;
+my $Subdirs =  pop @_;
+my $Category = 'X';
+my $ExpiryDate = 0;
+my $NoExport = 0;
+my $Skip = 0;
+my $Name;
+my $FoundFile;
+my $FoundPol;
+my $PathName;
+my $Text;
+my @AllFiles;
+my @Recipients;
+my %LicExpDates;
+
+foreach $PathName (@_)
+  {
+  if (!$PathName) { next; }
+  if ($ForManifest)
+    {
+    my $path = $PathName;
+#   $path =~ s/^\\//; # remove any leading backslash
+    $path =~ s/\\$//; # remove any trailing backslash
+    &MfsPrint ("COMPONENT\t$path\n");
+    }
+  if ($ObeyExcludes)
+    {
+    foreach my $exclude (@XDirs)
+      {
+      my $ex = $exclude;
+      my $pn = $PathName;
+      if (uc $ex eq uc $pn)
+        {
+        $Skip = 1;
+        last;
+        }
+      }
+    if ($Skip)
+      {
+      next;
+      }
+    }
+  $FoundFile = 0;
+  $FoundPol = 0;
+  opendir(HERE, $PathName);
+  @AllFiles = readdir(HERE);
+  close(HERE);
+  foreach my $Name (@AllFiles)
+    {
+    if (-d "$PathName$Name") { next; }
+    if (lc($Name) eq 'distribution.policy')
+      {
+      $FoundPol = 1;
+      ($Category, $ExpiryDate, $NoExport, $Text, %LicExpDates) = &IprStatus("$PathName$Name");
+      
+      if ($Cmdopts{'report'})
+        {
+        my ($HTMLErrors, $ASCIIErrors) = &CheckFileContents("$PathName$Name");
+        @{$HTMLFileErrors{"$PathName"}} = @{$HTMLErrors} if (@{$HTMLErrors} > 0);
+        @{$ASCIIFileErrors{"$PathName"}} = @{$ASCIIErrors} if (@{$ASCIIErrors} > 0);
+        }
+      }
+    else
+      {
+      $FoundFile = 1;
+      }
+    }
+  if ($FoundFile and (!$FoundPol)) { &NotifyError("no policy file in $PathName"); }
+  if ((!$FoundFile) and $FoundPol)
+    {
+    &NotifyNote("unnecessary policy file in $PathName");
+    $FoundFile = 1;    # Force a report of a directory containing only a policy file
+    }
+
+  &ConditionalRep($FoundFile, $PathName, $Category, $ExpiryDate, $NoExport, $Text, %LicExpDates);
+
+  if ($Subdirs)
+    {
+    foreach my $Name (@AllFiles)
+      {
+      if (-d "$PathName$Name")
+        {
+        if ($Name eq '.') { next; }
+        if ($Name eq '..') { next; }
+        &ProcessDir("$PathName$Name\\", 1, $ObeyExcludes, 0);
+        }
+      }
+    }
+  }
+}
+
+sub CheckFileContents
+{
+  my $Location = shift;
+  $Location = lc $Location;
+  
+  my $path = $Location;
+  $path =~ s/\\distribution.policy//;  # Remove file name from end of path
+  
+  my @HTMLFileErrors = ();
+  my @ASCIIFileErrors = ();
+  my $Category;
+  my $OSDclass;
+  my $ComponentName;
+  
+  my $CategoryLineFound = 0;
+  my $OSClassLineFound = 0;
+  
+  open(DPFile, $Location);
+  
+  while (<DPFile>)
+  {
+    # Check Comment Lines
+    if ($_ =~ /^\s*#(.*)$/)
+    {
+        if ($1 =~ /#/)
+        {
+            push @HTMLFileErrors, "<font face=verdana size=4><b>Line = </b>$_</font><br><font face=arial size=4 color=red>Comment line contains # as part of the comment.</font><p>\n";
+            push @ASCIIFileErrors, "$path, Comment line contains # as part of the comment.\n";
+        }
+        next;
+    }
+    
+    # Check Source Category Line
+    if ($_ =~ /^\s*Category.*$/i)
+    {
+        $CategoryLineFound++;
+        if (!($_ =~ /^\s*Category\s+\w{1}\s*$/i))
+        {
+            push @HTMLFileErrors, "<font face=verdana size=4><b>Line = </b>$_</font><br><font face=arial size=4 color=red>Line Syntax is incorrrect.</font><br>\n";
+            push @ASCIIFileErrors, "$path, Category line syntax is incorrect.\n";
+            
+            if ($_ =~ /^\s*Category(.*?)\w{1}\s*(.*)$/i)
+            {
+                if (!($1 =~ /^\s+$/))
+                {
+                    push @HTMLFileErrors, "<font face=arial size=4 color=red>The word Category and the Source-Category should be seperated by a whitespace not '$1'.</font><br>\n";
+                    push @ASCIIFileErrors, "$path, The word Category and the Source-Category should be seperated by a whitespace not '$1'.\n";
+                }
+                if ($2 ne "")
+                {
+                    push @HTMLFileErrors, "<font face=arial size=4 color=red>Trailing characters '$2' after the Source-Category are not allowed.</font><br>\n";
+                    push @ASCIIFileErrors, "$path, Trailing characters '$2' after the Source-Category are not allowed.\n";
+                }
+                
+                push @HTMLFileErrors, "<p>\n";
+                next;
+            }
+        }
+        if ($_ =~ /^\s*Category\s+(\w{1})\s*$/)
+        {
+            $Category = uc $1;
+            if ($Category !~ /[A-GIOT]/)
+            {
+                push @HTMLFileErrors, "<font face=verdana size=4><b>Line = </b>$_</font><br><font face=arial size=4 color=red>Category $Category is not a defined Source-Category.</font><p>\n";
+                push @ASCIIFileErrors, "$path, Category $Category is not a defined Source-Category.\n";
+            }
+            next;
+        }
+    }
+    
+    # Check OS Class Line
+    if ($_ =~ /^\s*OSD.*$/i)
+    {
+        $OSClassLineFound++;
+        if (!($_ =~ /\s*OSD:\s+\w+.?\w+\s+.*\s*$/i))
+        {
+            push @HTMLFileErrors, "<font face=verdana size=4><b>Line = </b>$_</font><br><font face=arial size=4 color=red>OSD line syntax is incorrect</font><br>\n";
+            push @ASCIIFileErrors, "$path, OSD line syntax is incorrect.\n";
+            
+            if (!($_ =~ /OSD:\s+/i))
+            {
+                push @HTMLFileErrors, "<font face=arial size=4 color=red>OSD line does not begin with 'OSD: '</font><br>\n" ;
+                push @ASCIIFileErrors, "$path, OSD line does not begin with 'OSD: '.\n";
+            }
+            
+            if ($_ =~ /OSD:\s+(.*)\s+(.*)/i)
+            {
+                my $class = $1;
+                my $compname = lc $2;
+                $compname =~ s/\s+$//;
+                # Workaround for this particular string
+                if (($_ =~ /Optional:/)&&($_ =~ /Test/)&&($_ =~ /RTP/))
+                {
+                    $class = "Optional: Test";
+                    $compname = "rtp";
+                }
+                if ((!($class =~ /^Common Replaceable$/i))&&(!($class =~ /^Common Symbian$/i))&&(!($class =~ /^Optional Replaceable$/i))&&(!($class =~ /^Optional Symbian$/i))
+                    &&(!($class =~ /^Reference\/Test$/i))&&(!($class =~ /^Reference\\Test$/i))&&(!($class =~ /^Test\/Reference$/i))&&(!($class =~ /^Test\\Reference$/i)))
+                {
+                    push @HTMLFileErrors, "<font face=arial size=4 color=red>OSD Class '$class' is not a defined OSD Class.</font><br>\n" ;
+                    push @ASCIIFileErrors, "$path, OSD Class '$class' is not a defined OSD Class.\n";                  
+                }
+                
+                if (!($compname =~ /[a-z]+/))
+                {
+                    push @HTMLFileErrors, "<font face=arial size=4 color=red>No Component name specified on OSD line.</font><br>\n" ;
+                    push @ASCIIFileErrors, "$path, No Component name specified on OSD line.\n";
+                    
+                }
+                
+                foreach my $key (sort keys %ComponentsUsed)
+                {
+                    my $lowercasename = lc $key;
+                    $lowercasename =~ s/\s+$//;
+                    if ($compname eq $lowercasename)
+                    {
+                        $ComponentsUsed{$key} = 1;
+                        last;
+                    }
+                }
+            }
+            push @HTMLFileErrors, "<p>\n";
+            
+            next;
+        }
+        if ($_ =~ /\s*OSD:\s+(\w+.?\w+)\s+(.*)\s*$/)
+        {
+            my $OSDclass = $1;
+            my $ComponentName = $2;
+            my $OSDLineError = 0;
+            
+            if ($OSDclass eq "")
+            {
+                push @HTMLFileErrors, "<font face=verdana size=4><b>Line = </b>$_</font><br><font face=arial size=4 color=red>OSD Class is not specified.</font><br>\n";
+                push @ASCIIFileErrors, "$path, OSD Class is not specified.\n";
+                $OSDLineError = 1;
+            }
+            if ($ComponentName eq "")
+            {
+                if ($OSDLineError == 0)
+                {
+                    push @HTMLFileErrors, "<font face=verdana size=4><b>Line = </b>$_</font><br><font face=arial size=4 color=red>No Component Name specified on the OSD line.</font><br>\n";
+                    push @ASCIIFileErrors, "$path, No Component Name specified on the OSD line.\n";
+                    $OSDLineError = 1;
+                }
+                else
+                {
+                    push @HTMLFileErrors, "<font face=arial size=4 color=red>No Component Name specified on the OSD line.</font><br>\n";
+                    push @ASCIIFileErrors, "$path, No Component Name specified on the OSD line.\n";
+                }
+            }
+            if (($OSDclass ne "")&&(!($OSDclass =~ /^Common Replaceable$/i))&&(!($OSDclass =~ /^Common Symbian$/i))&&(!($OSDclass =~ /^Optional Replaceable$/i))&&(!($OSDclass =~ /^Optional Symbian$/i))
+                    &&(!($OSDclass =~ /^Reference\/Test$/i))&&(!($OSDclass =~ /^Reference\\Test$/i))&&(!($OSDclass =~ /^Test\/Reference$/i))&&(!($OSDclass =~ /^Test\\Reference$/i)))
+            {
+                if ($OSDLineError == 0)
+                {
+                    push @HTMLFileErrors, "<font face=verdana size=4><b>Line = </b>$_</font><br><font face=arial size=4 color=red>OSD Class '$OSDclass' is not a defined OSD Class.</font><br>\n";
+                    push @ASCIIFileErrors, "$path, OSD Class '$OSDclass' is not a defined OSD Class.\n";
+                    $OSDLineError = 1;
+                }
+                else
+                {
+                    push @HTMLFileErrors, "<font face=arial size=4 color=red>OSD Class '$OSDclass' is not a defined OSD Class.</font><br>\n";
+                    push @ASCIIFileErrors, "$path, OSD Class '$OSDclass' is not a defined OSD Class.\n";
+                }
+            }
+            if((defined $Category)&&($Category eq 'D')&&(!($OSDclass =~ /^Common Symbian$/i)))
+            {
+                if ($OSDLineError == 0)
+                {
+                    push @HTMLFileErrors, "<font face=verdana size=4><b>Line = </b>$_</font><br><font face=arial size=4 color=red>All Category 'D' code must be assigned to a CKL component of OSD Class 'Common Symbian'.</font><br>\n";
+                    push @ASCIIFileErrors, "$path, All Category 'D' code must be assigned to a CKL component of OSD Class 'Common Symbian'.\n";
+                    $OSDLineError = 1;
+                }
+                else
+                {
+                    push @HTMLFileErrors, "<font face=arial size=4 color=red>All Category 'D' code must be assigned to a CKL component of OSD Class 'Common Symbian'.</font><br>\n";
+                    push @ASCIIFileErrors, "$path, All Category 'D' code must be assigned to a CKL component of OSD Class 'Common Symbian'.\n";
+                }
+            }
+            if((defined $Category)&&($OSDclass =~ /^Common Symbian$/i))
+            {
+                if (($Category eq 'E'))
+                {
+                    if ($OSDLineError == 0)
+                    {
+                        push @HTMLFileErrors, "<font face=verdana size=4><b>Line = </b>$_</font><br><font face=arial size=4 color=red>A 'Common Symbian' OSD Class component must not contain Source Category '$Category' code.</font><br>\n";
+                        push @ASCIIFileErrors, "$path, A 'Common Symbian' OSD Class component must not contain Source Category '$Category' code.\n";
+                        $OSDLineError = 1;
+                    }
+                    else
+                    {
+                        push @HTMLFileErrors, "<font face=arial size=4 color=red>A 'Common Symbian' OSD Class component must not contain Source Category '$Category' code.</font><br>\n";
+                        push @ASCIIFileErrors, "$path, A 'Common Symbian' OSD Class component must not contain Source Category '$Category' code.\n";
+                    }
+                }
+            }
+            
+            push @HTMLFileErrors, "<p>\n" if ($OSDLineError != 0);
+            
+            #Check $ComponentName and OSD-Class against data in Schedule12 of the CKL
+            if ($ComponentName ne "")
+            {
+                my $componentmatch = 0;
+                my $OSDmatch = 0;
+                my $Schedule12OSDClass;
+                my $component = lc $ComponentName;
+                $component =~ s/\s+$//;
+                my $osdclass = lc $OSDclass;
+                $osdclass =~ s/\s+$//;
+ 
+                foreach my $Schedule12Component (sort keys %Components)
+                {
+                    my $schedule12component = lc $Schedule12Component;
+                    $schedule12component =~ s/\s+$//;
+                    if ($component eq $schedule12component)
+                    {
+                        $componentmatch = 1;
+                        $ComponentsUsed{$Schedule12Component} = 1;
+                    }
+                    if ($componentmatch == 1)
+                    {
+                        $Schedule12OSDClass = $Components{$Schedule12Component};
+                        my $schedule12osdclass = lc $Schedule12OSDClass;
+                        $schedule12osdclass =~ s/\s+$//;
+                        $OSDmatch = 1 if ($schedule12osdclass eq $osdclass);
+                        
+                        if (($osdclass eq "reference\\test")||($osdclass eq "test\\reference")||($osdclass eq "test\/reference"))
+                        {
+                            $OSDmatch = 1 if ($schedule12osdclass eq "reference\/test");
+                        }
+                        last;
+                    }
+                }
+                
+                if ($componentmatch == 0)
+                {
+                    push @HTMLFileErrors, "<font face=arial size=4 color=red>Component '$ComponentName' is not listed in Schedule 12 of the CKL.</font><p>\n";
+                    push @ASCIIFileErrors, "$path, Component '$ComponentName' is not listed in Schedule 12 of the CKL.\n";
+                }
+                if (($componentmatch == 1)&&($OSDmatch == 0))
+                {
+                    if (($Category == 'T') && (($osdclass eq "reference\\test")||($osdclass eq "test\\reference")||($osdclass eq "test\/reference")||($osdclass eq "reference\/test")))
+                    {
+                        
+                    }
+                    else
+                    {
+                        push @HTMLFileErrors, "<font face=arial size=4 color=red>According to Schedule 12 of the CKL, component '$ComponentName' should be assigned to OSD Class '$Schedule12OSDClass' not '$OSDclass'.</font><p>\n";
+                        push @ASCIIFileErrors, "$path, According to Schedule 12 of the CKL component '$ComponentName' should be assigned to OSD Class '$Schedule12OSDClass' not '$OSDclass'.\n";
+                    }
+                }
+            }
+        }
+    }
+  }
+  push @HTMLFileErrors, "<font face=arial size=4 color=red>Category Line is missing.</font><p>" if ($CategoryLineFound == 0);
+  push @ASCIIFileErrors, "$path, Category Line is missing.\n" if ($CategoryLineFound == 0);
+  push @HTMLFileErrors, "<font face=arial size=4 color=red>OSD Line is missing.</font><p>" if ($OSClassLineFound == 0);
+  push @ASCIIFileErrors, "$path, OSD Line is missing.\n" if ($OSClassLineFound == 0);
+  
+  push @HTMLFileErrors, "<font face=arial size=4 color=red>File contains $CategoryLineFound Category Lines.</font><p>" if ($CategoryLineFound > 1);
+  push @ASCIIFileErrors, "$path, File contains $CategoryLineFound Category Lines.\n" if ($CategoryLineFound > 1);
+  push @HTMLFileErrors, "<font face=arial size=4 color=red>File contains $OSClassLineFound OSD Lines.</font><p>" if ($OSClassLineFound > 1);
+  push @ASCIIFileErrors, "$path, File contains $OSClassLineFound OSD Lines.\n" if ($OSClassLineFound > 1);
+  
+  return \@HTMLFileErrors, \@ASCIIFileErrors;
+}
+
+sub IprStatus
+{
+my $Location = shift;
+my $ThisCategory = 'X';
+my $CatSet = 0;
+my $Expiry = 0;        # 0 represents no expiry date set
+my $Restricted = 0;
+my $ThisLine = 0;
+my $Description;
+my %ShipData;
+open(IPR, $Location);
+while (<IPR>)
+  {
+  $_ = lc $_;
+  $ThisLine += 1;
+
+  s/\s*#.*$//;                                        # ignore comments and blank lines
+  if ($_ =~ /^$/) { next; }
+
+  if ($_ =~ /category\s+(\w)/)                        # CATEGORY statements
+    {
+    my $aCat=uc($1);
+    if (($aCat =~ /[^A-GIOT]/))
+      {
+      &ErrorLoc("illegal Category statement", $ThisLine, $Location);
+      $ThisCategory = 'X';
+      $CatSet = 1;
+      next;
+      }
+    if ($CatSet)
+      {
+      &ErrorLoc("repeated Category statement", $ThisLine, $Location);
+      if ($ThisCategory le $aCat) { next; }
+      }
+    $ThisCategory = uc($1);
+    $CatSet = 1;
+    next;
+    }
+
+  if ($_ =~ /authorized\s+(\w+)\s*(.*)/)              # AUTHORIZED statements
+    {
+    my $aRec = lc($1);
+    my $Rest = $2;
+    my $found = 0;
+    my $ShipUntil = 0;
+    my $Repeat = 0;
+    my @Recipients = keys(%ShipData);
+    foreach my $name (@Recipients)
+      {
+      if ($aRec eq $name)
+        {
+        $Repeat = 1;
+        &ErrorLoc("repeated recipient \"$aRec\"", $ThisLine, $Location);
+        last;
+        }
+      }
+    if ($Rest =~ /until\s+(\d+)\W(\d+)\W(\d+)/) # UNTIL Authorized qualifier
+      {
+      my $D = $1;
+      my $M = $2;
+      my $Y = $3;
+      $ShipUntil = $Y*10000 + $M*100 + $D;
+      if (not &IsValidDate($D, $M, $Y))
+        {
+        &ErrorLoc("illegal date \"$D/$M/$Y\"", $ThisLine, $Location);
+        $ShipUntil = $Now - 1;
+        }
+      }
+    else
+      {
+      if ($Rest =~ /\w+/)
+        {
+        &ErrorLoc("unknown \"Authorized\" qualifier: \"$Rest\"", $ThisLine, $Location);
+        $ShipUntil = $Now - 1;
+        }
+      }
+    if ((!$ShipData{$aRec}) or ($ShipData{$aRec} > $ShipUntil))
+      {
+      $ShipData{$aRec} = $ShipUntil;
+      }
+    next;
+    }
+
+  if ($_ =~ /expires\s+(\d+)\W(\d+)\W(\d+)/)          # EXPIRES statements
+    {
+    my $D = $1;
+    my $M = $2;
+    my $Y = $3;
+    my $E = $Y*10000 + $M*100 + $D;
+    if (not &IsValidDate($D, $M, $Y))
+      {
+      &ErrorLoc("illegal date \"$D/$M/$Y\"", $ThisLine, $Location);
+      $E = $Now - 1;
+      next;
+      }
+    if ((!$Expiry) or ($Expiry > $E))
+      {
+      $Expiry = $E;
+      }
+    next;
+    }
+
+  if ($_ =~ /export\s+(\w*)restricted/)               # EXPORT statements
+    {
+    if ($1 ne 'un') { $Restricted = 1; }
+    next;
+    }
+
+  if ($_ =~ /description\s+(.*)/)                     # DESCRIPTION statements
+    {
+    $Description = $1;
+    next;
+    }
+
+  if ($_ =~ /^\s*osd/)                                # Ignore OSD: statements
+    {
+    next;
+    }
+
+  if ($_ =~ /\S/)                                     # Anything else
+    {
+    $_ =~ /(.*)$/;
+    &ErrorLoc("unrecognised statement \"$1\"", $ThisLine, $Location);
+    }
+  }
+close(IPR);
+
+if (!$CatSet)
+  {
+  &ErrorLoc("missing Category statement", $ThisLine, $Location);
+  }
+else
+  {
+  if ((scalar keys %ShipData != 0) and ($ThisCategory =~ /[^B-C]/i))
+    {
+    &NotifyError("category $ThisCategory source should not name recipients"); 
+    }
+  }
+return ($ThisCategory, $Expiry, $Restricted, $Description, %ShipData);
+}
+
+sub Today
+{
+my ($Sec, $Min, $Hr, $Daym, $Mnth, $Yr, $Wkday, %YrDay, $IsDST) = localtime(time);
+return (($Yr+1900)*10000+($Mnth+1)*100+$Daym);
+}
+
+sub IsValidDate
+{
+my $Dy =  shift;
+my $Mth = shift;
+my $Yr =  shift;
+if ($Yr < 1900) { return 0; }
+if (($Mth < 1) or ($Mth > 12)) { return 0; }
+if (($Dy <1) or ($Dy > &DayinMonth($Mth, &IsLeap($Yr)))) { return 0; }
+return 1;
+}
+
+sub IsLeap
+{
+my $aYear = shift;
+return (!($aYear%4) && ($aYear%100 || !($aYear%400))) ? 1 : 0;
+}
+
+sub DayinMonth
+{
+my @dim = (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31,
+           31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
+
+my $Monthnum = shift;
+my $Leap = shift;
+return $dim[$Leap*12 + $Monthnum - 1];
+}
+
+sub DateValToStr
+{
+my $Date = shift;
+my $temp = $Date%100;
+my $DatStr = "$temp\/";
+$Date -= $temp;
+$Date /= 100;
+$temp = $Date%100;
+$DatStr .="$temp\/";
+$Date -= $temp;
+$Date /= 100;
+$DatStr .= "$Date";
+}
+
+sub DataPrint
+{
+if ($Full >= -1)
+  {
+  print @_;
+  }
+}
+
+sub PkgPrint
+{
+print PKGLIST @_;
+}
+
+sub MfsPrint
+{
+my $mfsname = uc $_[0];
+print MFSLIST "$mfsname";
+}
+
+sub ErrorLoc
+{
+my $msg = shift;
+my $line = shift;
+my $loc = shift;
+&NotifyError("$msg");
+&ErrorPrint("       in line $line of $loc");
+}
+
+sub NotifyError
+{
+my $msg = shift;
+&ErrorPrint("ERROR: $msg");
+}
+
+sub NotifyWarning
+{
+my $msg = shift;
+&ErrorPrint("WARNING: $msg");
+}
+
+sub NotifyNote
+{
+my $msg = shift;
+&ErrorPrint("Note: $msg");
+}
+
+sub ErrorPrint
+{
+my $msg = shift;
+print STDERR "$msg\n";
+}
+
+sub ExportWarning
+{
+print STDERR <<ENDEXPORTSTRING;
+WARNING: The selected code contains export-restricted source.
+Any external release must contain the following notice.
+
+"The delivery of this software is subject to UK Export Control and is made
+under Open Individual Export Licence (OIEL) no OIEL I/006318/99, which covers
+Sweden, USA, Japan, Finland and Hungary.  The recipient of this software agrees
+that it will not export or re-export the software directly or indirectly to any
+country which at the time of export requires an export licence or other
+governmental approval, without first obtaining such licence or approval."
+
+ENDEXPORTSTRING
+}
+
+sub ConditionalRep
+{
+my $Found = shift;
+my $Path = shift;
+my $Cat = shift;
+my $Expire = shift;
+my $NoExp = shift;
+my $Description = shift;
+my %LDates = @_;
+
+if (index($Categories, $Cat) < 0) { return; }
+if ($NoExp and !$ForceExport) { return; }
+if ($NoExp) { $IncludesRestrictedSource = 1; }
+my $Printed = 0;
+
+if ($Full > 1)                    # write one line of tab-separated data per directory
+  {
+  if ($Found)
+    {
+    my @Recipients;
+    my $NamePrinted = 0;
+    &DataPrint ("$Path\t", "$Cat\t");          # directory and category
+    if ($NoExp) { &DataPrint ('Restricted'); } # export status
+    &DataPrint ("\t");
+    @Recipients = keys(%LDates);
+    foreach my $name (@Recipients)         # comma-separated list of recipients
+      {
+      if ($NamePrinted)
+        {
+        &DataPrint (', ');
+        }
+      &DataPrint ($name);
+      $NamePrinted = 1;
+      }
+    &DataPrint ("\t");
+    @Recipients = keys(%LDates);        # earliest of any expiry dates
+    foreach my $name (@Recipients)
+      {
+      my $Date = $LDates{$name};
+      if ($Date)
+        {
+        if (($Expire <= 0) or ($Date < $Expire))
+          {
+          $Expire = $Date;
+          }
+        }
+      }
+    if ($Expire > 0)
+      {
+      my $Str = &DateValToStr($Expire);
+      &DataPrint ("$Str");
+      }
+    &DataPrint ("\t");
+    &DataPrint ("$Description\n");             # show descriptive text, if it exists
+    }
+  }
+
+else                              # use a multi-line report format
+  {
+  if ($Found or ($Full >= 0))
+    {
+    &DataPrint ("Directory: $Path\n");
+    }
+
+  if ($Full >= 0)
+    {
+    if (!$Found)
+      {
+      &DataPrint ("No files\n\n");
+      return;
+      }
+    &DataPrint ("Category $Cat\n");
+    $Printed = 1;
+    }
+  if (($Full > 0) or ($NoExp)) # Always report inclusion of export restricted code
+    {
+    my $Str = "Export ";
+    $Str .= $NoExp ? "restricted" : "unrestricted";
+    &DataPrint ("$Str\n");
+    }
+  if ($Full > 0)
+    {
+    if ($Expire > 0)
+      {
+      my $Str = &DateValToStr($Expire);
+      &DataPrint ("Expires on $Str\n");
+      $Printed = 1;
+      }
+    my @Recipients = keys(%LDates);
+    foreach my $name (@Recipients)
+      {
+      my $Str = "Can ship to ".ucfirst($name);
+      my $Date = $LDates{$name};
+      if ($Date)
+        {
+        $Str .= " until ";
+        $Str .= &DateValToStr($Date);
+        }
+      &DataPrint ("$Str\n");
+      $Printed = 1;
+      if ($name eq $Recipient) { $Expire = $LDates{$name}; }
+      }
+    }
+  }
+if ($ShowFiles or $Zip or $GenPkg or $Manifest)
+  {
+  my @flist;
+  my $name;
+  my $shippable;
+
+  return if (&HasExpired($Expire) and !$OverrideExpiry) ;
+
+  if (!&CanShip($Recipient, keys(%LDates)))
+    {
+    if ($ShowFiles)
+      {
+      &DataPrint ("    Files not shippable to $Recipient\n\n");
+      }
+    return;
+    }
+
+  opendir(HERE, $Path);
+  @flist = readdir(HERE);
+  close(HERE);
+  foreach my $name (@flist)
+    {
+    if (-d "$Path$name") { next; }
+    if ($ShowFiles)
+      {
+      &DataPrint ("    $Path$name\n");
+      $Printed = 1;
+      }
+
+    if ($GenPkg)
+      {
+      # --------------------------
+      # print filespec to Pkg file
+      # --------------------------
+        &PkgPrint ("      <item src=\"$Path$name\"  dest=\"[sdkroot]$Path$name\"\/>\n");
+      }   
+
+    if ($Manifest)
+      {
+      # --------------------------
+      # print filespec to manifest file
+      # --------------------------
+      &MfsPrint ("  $Path$name\n");
+      }   
+
+    if ($Zip)
+      {
+      if ($Cat eq 'A')
+        {
+        $ZippedCatA = 1;
+        }
+      if ($Cat eq 'X')
+        {
+        $ZippedCatX = 1;
+        }
+      print ZIPLIST "$Path$name\n" or die "Can't write to $ZipTmpFile\n";
+      }
+    }
+  }
+if ($Printed) { &DataPrint ("\n"); }
+}
+
+sub CanShip
+{
+my $to = shift;
+my @list = @_;
+my $count;
+my $name;
+
+return (1) if ($to eq 'all');
+$count = @list;
+if ($count)
+  {
+  return (0) if ($to eq 'generic');
+  foreach my $name (@list)
+    {
+    return(1) if ($to eq $name);
+    }
+  return(0);
+  }
+return(1);
+}
+
+sub ReadDirFile
+{
+my $filename = shift;
+my @dlist;
+
+open(DIRLIST, $filename) or die "Can't open $filename\n";
+while (<DIRLIST>)
+  {
+  $_ = lc $_;
+  s/\s*#.*$//;              # remove comments
+  s/\s*$//;                 # remove trailing whitespace
+  if ($_ =~ /^$/) { next; } # ignore blank lines
+  if (-d $_)                # entry is a valid directory
+    {
+    push(@dlist, $_);
+    next;
+    }
+  else
+    {
+    &NotifyError("Unrecognised directory \"$_\" in \"$filename\" ignored");
+    }
+  }
+close DIRLIST;
+@dlist;
+}
+
+sub HasExpired
+{
+my $date = shift;
+return ($date and ($date < $Now))
+}
+
+sub Strip
+{
+# Remove excess occurrences of '..' and '.' from a path
+return undef unless $_[0]=~m-^\\-o;     # Must start with backslash
+my $P=$_[0];
+$P=~s-^\\\.{2}$-\\-o;                   # Convert plain "\.." to "\"  We are at the root anyway; can't go any higher!
+$P=~s-\\\.$-\\-o;                       # Remove backslash-dot from end of line
+$P=~s-\\(?!\.{2}\\)[^\\]*\\\.{2}$-\\-o; # Catch dotdot at end of text. Remove last directory.
+while ($P=~s-\\\.\\-\\-go) { }          # Convert backslash-dot-backslash to backslash
+while ($P=~s-\\(?!\.{2}\\)[^\\]*\\\.{2}(?=\\)--go) { }  # Convert backslash-fname-backslash-dotdot-backslash to backslash
+$P;
+}
+
+sub Split
+{
+# return the section of a file path required - Path, Base, Ext or File
+my ($Sect,$P)=@_;
+$Sect=ucfirst lc $Sect;
+if ($Sect eq 'Path')
+  {
+  if ($P=~/^(.*\\)/o)
+    {
+    return $1;
+    }
+  return '';
+  }
+if ($Sect eq 'Base')
+  {
+  if ($P=~/\\?([^\\]*?)(\.[^\\\.]*)?$/o)
+    {
+    return $1;
+    }
+  return '';
+  }
+if ($Sect eq 'Ext')
+  {
+  if ($P=~/(\.[^\\\.]*)$/o)
+    {
+    return $1;
+    }
+  return '';
+  }
+if ($Sect eq 'File')
+  {
+  if ($P=~/([^\\]*)$/o)
+    {
+    return $1;
+    }
+  return '';
+  }
+undef;
+}
+
+sub ValidateExcPath
+{
+my $p = $_[0];
+if ((!(-e $p)))
+  {
+  &NotifyWarning("Unrecognised exclusion directory \"$p\" will be ignored");
+  return undef;
+  }
+$p=~s-^(.*[^\\])$-$1\\-o; # ensure it ends with a backslash
+$p;
+}
+
+sub ValidateIncPath
+{
+my $p = $_[0];
+if ((!(-e $p)))
+  {
+  &NotifyWarning("Unrecognised inclusion directory \"$p\" will be ignored");
+  return undef;
+  }
+$p=~s-^(.*[^\\])$-$1\\-o; # ensure it ends with a backslash
+$p;
+}
+
+sub MakeAbs
+{
+return undef unless $_[0]=~m-^\\-o;	# Ensure that $Path begins with backslash, i.e. starts from root
+my ($Path,@List)=@_;
+my $BasePath=&Split("Path",$Path);
+undef $Path;
+my $p;
+foreach $p (@List)
+  {
+  if ($p=~m-^\.{1,2}-o)	# Directory == "." or ".."?
+    {
+    $p=&Strip($BasePath.$p);
+    next;
+    }
+  if ($p=~m-(^.:)-o)	# Directory starts with drive-letter:
+    {
+    if (uc $1 eq $WorkDrv) {next;};     # Allow current drive for backward compatability.
+    print "Drive specifications not supported\n";
+    exit 1;
+    }
+  if ($p=~m-^[^\.\\]-o)	# Directory does not start with dot or backslash
+    {
+    $p=$BasePath.$p;
+    next;
+    }
+  if ($p=~m-^\\-o)	    # Directory starts with a backslash
+    {
+    next;
+    }
+  if ($p=~m-^\.\\(.*)$-o)	# Directory starts with a dot, then a backslash. What's left becomes $1
+    {
+    $p=&Strip($BasePath.$1);
+    next;
+    }
+  return undef;			# None of the above
+  }
+return @List;
+}
+
+sub FindZip
+{
+   my $PathList = $ENV{ 'PATH' };
+   my (@PathSplit) = split( ";",$PathList );
+
+   if ( -e ( $WorkPath."zip.exe" ) )        # Check current directory first
+   {
+     return 1;
+   }
+   foreach my $p ( @PathSplit )
+   {
+      if ( -e ( $p."\\zip.exe" ) )
+      {
+         return 1;
+      }
+   }
+   return 0;
+}
+
+sub Usage
+{
+print <<ENDHERESTRING;
+IPRTOOL.PL   Version 1.41  Copyright (c) 2000, 2001 Symbian Ltd.
+                           All rights reserved
+Usage:
+    perl iprtool.pl [options] [help|?]
+
+where options are:
+    -c[ats] ABCDEFGIOTX      report the listed categories (default: EFGOT)
+    -d[ir] <path>[<file>]    start scan at the specified directory; if a file
+                             specification, scan all directories listed in the
+                             file (defaults to the current working directory)
+    -e[xport]                include files subject to DTI export restrictions
+    -f[ull] [2|1|0|-1|-2]    set the extent of the summary of the content of
+                             the policy file for each directory:
+                               2  one line of tab-separated data per directory
+                               1  full policy data for each directory
+                               0  directory name and category (the default)
+                              -1  no IPR information
+                              -2  suppress all summary output, except errors
+    -g[enpkg] <pkgfile>      create an XML package file for the selected files
+    -l[icensee] <IDstr>      specify a recipient by name (not code name)
+    -m[anifest] <outfile>    write a file list in manifest format to <outfile>
+    -n[osub]                 do not include subdirectories in the report
+    -o[verrideexpiry]        include source whose expiry date is in the past
+    -p[roject] <prj>         include specific source directories listed in
+                             <prj>.extra (overrides any exclusions)
+    -r[eport] <product>      produces an ASCII and a HTML report on the syntax
+                             and semantics of all the distribution policy files
+    -s[howfiles]             list the files in each reported directory
+    -x[clude] <path>[<file>] specify head(s) of whole directory tree(s) to
+                             exclude from the scan (format as for the -d flag) 
+    -z[ip] <zipfile>         create a zipfile of the selected files
+
+-----------------------------------------------------------------------------
+
+This tool provides the ability to create zips of selected source and/or to 
+construct reports, either for external distribution or for internal audit 
+purposes.
+
+The types of report available include:
+
+·	a full description of the IPR status of each directory
+·	a listing of all directories containing code of a specified category or set of categories
+
+In each case the report may refer to one or more specific directories, with or without their included subdirectories, or the whole source directory tree.
+
+Command line options are:
+Option	Action	Default	See Note
+-c[ats] <catIDs>	restrict report to the specified category or categories, where <catIDs> can be any combination  of one or more of A, B, C, D, E, F, G and X	report all categories	5
+-d[ir] <path>[<file name>]	start scan at the specified directory or, if a file specification, scan all directories listed in the file	start scan at the current directory	2, 3
+-e[xport]	include files that are subject to DTI export restrictions	don’t include export-restricted files	
+-f[ull] 2|1|0|-1|-2	set extent of the summary of the content of the policy file for each directory:
+	 2    one line of tab-separated
+	       data per directory
+	 1    full, multi-line
+	 0    reduced (the default)
+	-1    no IPR data, directory
+	       names only
+	-2   suppress all output other
+	       than error reports	reduced - report the directory name and category	
+-g[enpkg] <pkgfile>	create an XML package file for the selected files	don’t create an XML package file	
+-l[icensee] <Idstr>	specify a particular recipient	assume a ‘generic’ recipient	1
+-m[anifest] <outfile>	write a file list in manifest format to <outfile>	don’t create a manifest listing	
+-n[osub]	do not include subdirectories in the report	include subdirectories	
+-o[verrideexpiry]	include source whose expiry date is in the past	obey expiry dates	
+  -p[roject] <prjname>	  specify a particular project, to
+	  enable the inclusion of
+	  additional category D source	  no additional source	  4
+-s[howfiles]	list the files in each reported directory	don’t list files	
+  -x[clude] <path>[<file name>]	exclude the specified directory  and its subdirectories or, if a file specification, exclude all directory trees headed by the directories listed in the file	 no exclusions	 2, 3
+-z[ip] <zipfile name>	create a zipfile of the selected (reported) files	create a report without zipping	
+
+Notes
+1) The convention is that true company names are to be used, not codenames. It is recommended that the name does not include spaces. Names are not validated.
+Category B and C source code whose policy file contains Authorized statement(s) will not be included in a zip unless unless an Authorized statement name matches with the Licensee name specified by means of the -l flag.
+Filtering of licensee-specific source may be overridden by specifying '-l all'. This should only be used for construction of internal deliveries which need to include source owned by multiple licensees.
+
+2) An example of the content of a directory list file for use with the -d or -x flags is:
+
+ # Example directory listing for use with iprtool.pl
+
+ \\hal
+ \\e32toolp
+
+Directories may be listed with absolute paths, as above, or relative paths. Paths are always interpreted with respect to the current working directory, regardless of the location af the directory list file. Do NOT include drive letter.
+
+3) Absolute paths used with the -d and -x flags, and within directory list files, may include drive letters, but their use is not recommended without good reason A valid reason to include a drive letter with the -d or -x flag is if a directory list file needs to be stored outside the drive that is being scanned. It is unlikely that there will ever be a valid reason to include drive letters in the paths listed in a directory listing file.
+
+4) If a project is specified with the -p flag, and a file with the name '<prjname>.extra' is found in the directory from which the tool is run, the report is extended to include the content of all directories listed in that file (reported as though the -n flag were set, so all subdirectories need to be listed). A source file zip will not include category B an C source that is excluded as described in Note 1. Otherwise, this mechanism unconditionally includes the content of all listed directories, regardless of their category, export status or expiry date, and overriding any directories excluded by means of the -x flag. The following is a fictitious example file 'calypso.extra'
+
+ # Additional source directories for  Calypso project deliveries
+ 
+ \\rcomp
+ \\rcomp\\group
+
+5) Category X is exceptional. Uncategorised code - ie source in a directory without a distribution.policy file, or with a policy file that does not contain a valid Category statement - is reported as being in category X. No source should be actively classified as category X; any attempt to do so will be reported as an error by the tool.
+Errors and warnings
+The tool reports (to STDERR) errors and warnings that are found while scanning source directories. The most significant error notification is of missing policy files but the tool also reports on a wide variety of errors in the content of the policy files. Such errors include unrecognised keywords, unexpected duplicate keywords and illegal dates.
+
+Warnings are also issued if a source zip includes source that is in category A or is uncategorised (cat X), or is subject to export restrictions.
+
+ENDHERESTRING
+exit 1;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/make_directory_tree.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,323 @@
+#! perl
+# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+use strict;
+use Getopt::Long;
+
+sub Usage(;$)
+	{
+	my ($errmsg) = @_;
+	print "\nERROR: $errmsg\n" if (defined $errmsg);
+	print <<'EOF';
+
+perl make_directory_tree.pl [options] specfile
+perl make_directory_tree.pl [options] -check specfile 
+ 
+Create a tree of empty directories, specified in specfile.
+The specification is one or more lines of the form
+
+   path/name/separated/by/forward/slash   # optional comment
+
+Paths should not contain "." or "..". Paths ending in "*"
+imply that other subdirectories are permitted by the -check
+option, but ignored.
+
+If no specfile is given on the command line, the tool will
+read from standard input.
+
+The -check option compares an existing directory tree
+with the one which would have been created, and reports 
+differences.
+
+Options:
+
+-r rootdir           root of the directory tree 
+-o newspecfile       specfile describing the new tree, 
+                     mostly for use with the -check option
+-fix                 attempt to correct directory names which 
+                     have the wrong case - used with -check
+
+If no rootdir is specified, the tree will be assumed to start
+in the current directory. 
+
+EOF
+	exit 1;
+	}
+
+my $rootdir;
+my $check;
+my $fix;
+my $newspecfile;
+my $help;
+my $verbose;
+
+Usage() if !GetOptions(
+	'r=s' => \$rootdir,
+	'o=s' => \$newspecfile,
+	'check' => \$check,
+	'fix' => \$fix,
+	'h' => \$help,
+	'v' => \$verbose,
+	);
+
+Usage() if ($help);
+
+my $line;
+my %dirnames;		# actual capitalisation
+my %lc_dirnames;	# forced to lowercase
+my %wilddirs;
+
+while ($line=<>)
+	{
+	chomp $line;
+	$line =~ s/\s*#.*$//;	# hash is comment to end of line
+	$line =~ s/^\s*//;		# remove leading whitespace
+	$line =~ s/\s*$//;		# remove trailing whitespace
+	
+	# also accepts the output of "p4 have"
+	if ($line =~ /^\/\/epoc\/master\/(.*)\/[^\/]+$/i)
+		{
+		# output of p4 have
+		$line = $1;
+		}
+		
+	next if ($line eq "");	# ignore blanks
+
+	# tolerate some minor errors in the input format
+	$line =~ s/\\/\//g;	# convert any \ to /
+	$line =~ s/^\///;	# remove leading /, if present
+	
+	my $wilddir = 0;
+	if ($line =~ /\/\*$/)
+		{
+		$line = substr $line, 0, -2;	# cut off last two characters
+		$wilddir = 1;
+		}
+	
+	my @dirs = split /\//, $line;
+	my $path = "";
+	my $lc_path = lc $path;
+	foreach my $subdir (@dirs)
+		{
+		my $parent = $path;
+		$path .= "/$subdir";
+		$lc_path .= lc "/$subdir";
+		
+		next if (defined $dirnames{$path});	# already seen this one
+		if (defined $lc_dirnames{$lc_path})
+			{
+			my $fixed_path = $lc_dirnames{$lc_path};
+			print "WARNING: input file has ambiguous case for $path (should be $fixed_path)\n";
+			$path = $fixed_path;	# recover by using the earlier entry?
+			next;
+			}
+		# found a new directory
+		@{$dirnames{$path}} = ();	# empty list of subdirs
+		$lc_dirnames{$lc_path} = $path;
+		push @{$dirnames{$parent}}, $subdir;
+		next;
+		}
+	$wilddirs{$path} = 1 if ($wilddir);		
+	}
+
+print "* Processed input file\n";
+Usage("No directories specified") if (scalar keys %dirnames == 0);
+
+# %dirnames now contains all of the approved names as keys
+# The associated value is the list of subdirectories (if any)
+
+# Subroutine to create a completely new directory tree
+sub make_new_tree($)
+	{
+	my ($root) = @_;
+	
+	my $errors = 0;
+	foreach my $path (sort keys %dirnames)
+		{
+		next if ($path eq "");	# root directory already exists
+		print "** mkdir $root$path\n" if ($verbose);
+		if (!mkdir $root.$path)
+			{
+			print "ERROR: failed to make $root$path: $!\n";
+			$errors++;
+			}
+		}
+	
+	return ($errors == 0);
+	}
+
+# recursive routine to remove a subtree from %dirnames
+sub remove_subtree($);
+sub remove_subtree($)
+	{
+	my ($subdir) = @_;
+	my @absent = @{$dirnames{$subdir}};
+	delete $dirnames{$subdir};	# delete the parent
+	if (defined $wilddirs{$subdir})
+		{
+		# Remove from %wilddirs as well - directory should exist
+		delete $wilddirs{$subdir};
+		}
+	
+	foreach my $dir (@absent)
+		{
+		remove_subtree("$subdir/$dir");	# recursively delete the children
+		}
+	}
+
+# recursive routine to check a subtree against %dirnames
+sub check_subtree($$$);
+sub check_subtree($$$)
+	{
+	my ($root,$subdir,$expected) = @_;
+	
+	my $currentdir = $root.$subdir;
+	opendir DIR, $currentdir;
+	my @contents = grep !/^\.\.?$/, readdir DIR;
+	closedir DIR;
+
+	printf ("** checking $currentdir - %d entries\n", scalar @contents) if ($verbose);
+
+	my @confirmed = ();
+	foreach my $expected (@{$dirnames{$subdir}})
+		{
+		push @confirmed,$expected;
+		if (!-d "$currentdir/$expected")
+			{
+			# Note: this does not check the correctness of the case,
+			# that comes in the scan through @contents
+			print "REMARK: cannot find expected directory $currentdir/$expected\n";
+			if ($fix && defined $newspecfile)
+				{
+				print "** removing $currentdir/$expected/... from specification\n";
+				remove_subtree("$subdir/$expected");
+				pop @confirmed;	
+				}
+			}
+		}
+	@{$dirnames{$subdir}} = @confirmed;	# update the description of the tree
+
+	foreach my $name (@contents)
+		{
+		if (!-d "$currentdir/$name")
+			{
+			next; # ignore files
+			}
+		
+		my $newpath = "$subdir/$name";
+		if ($expected)
+			{
+			if (defined $dirnames{$newpath})
+				{
+				# we expected this one, and it has the correct case
+				check_subtree($root,$newpath,1);
+				next;
+				}
+			
+			my $lc_newpath = lc $newpath;
+			if (defined $lc_dirnames{$lc_newpath})
+				{
+				# expected directory, but wrong name
+				$newpath = $lc_dirnames{$lc_newpath};	# get the correct name
+				if ($fix && rename("$currentdir/$name","$root$newpath"))
+					{
+					print "* corrected $currentdir/$name to $root$newpath\n";
+					}
+				else
+					{
+				    print "ERROR: $currentdir/$name should be $root$newpath\n";
+				    }
+				check_subtree($root,$newpath,1);
+				next;
+				}
+			}
+
+		# unexpected subdirectory
+		
+		if ($wilddirs{$subdir})
+			{
+			# unexpected directory in a directory which allows "extras"
+			next;
+			}
+		
+		print "REMARK: New subtree found: $newpath\n" if ($expected);
+		
+		# add unexpected subtrees to the $dirnames structure
+		
+		@{$dirnames{$newpath}} = ();	# empty list of subdirs
+		push @{$dirnames{$subdir}}, $name;
+		# no %lc_dirnames entry required
+		
+		check_subtree($root,$newpath,0);
+		}
+	
+	}
+
+# subroutine to generate a new input file
+sub print_leaf_dirs($)
+	{
+	my ($filename) = @_;
+	
+	open FILE, ">$filename" or die "Cannot write to $filename: $!\n";
+	
+	foreach my $path (sort keys %dirnames)
+		{
+		my @subdirs = @{$dirnames{$path}};
+
+		if (defined $wilddirs{$path})
+			{
+			print FILE "$path/*\n";	# always print wildcard directories
+			next;
+			}
+					
+		next if (scalar @subdirs != 0);	# ignore interior directories
+		print FILE "$path\n";
+		}
+
+	close FILE;
+	}
+
+
+$rootdir =~ s/\\/\//g if (defined $rootdir);	# convert rootdir to forward slashes
+
+if ($check)
+	{
+	$rootdir = "." if (!defined $rootdir);
+	print "* checking $rootdir ...\n";
+	check_subtree($rootdir,"",1);
+
+	}
+else
+	{
+	if (defined $rootdir && !-d $rootdir)
+		{
+		Usage("Cannot create $rootdir: $!") if (!mkdir $rootdir);
+		print "* created root directory $rootdir\n";
+		}
+	else
+		{
+		$rootdir = ".";
+		}
+	
+	print "* creating directory tree in $rootdir\n";
+	make_new_tree($rootdir);
+	}
+
+if (defined $newspecfile)
+	{
+	print_leaf_dirs($newspecfile);
+	print "* created $newspecfile\n";
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/mcl_dirs.lst	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,22327 @@
+/os/boardsupport/assabet/assabetbsp/bmarm
+/os/boardsupport/assabet/assabetbsp/bootstrap
+/os/boardsupport/assabet/assabetbsp/eabi
+/os/boardsupport/assabet/assabetbsp/generic
+/os/boardsupport/assabet/assabetbsp/hal
+/os/boardsupport/assabet/assabetbsp/inc
+/os/boardsupport/assabet/assabetbsp/rom
+/os/boardsupport/assabet/assabetbsp/single
+/os/boardsupport/assabet/assabetbsp/specific
+/os/boardsupport/assabet/assabetbsp/test
+/os/boardsupport/naviengine/navienginebsp/naviengine_assp/bmarm
+/os/boardsupport/naviengine/navienginebsp/naviengine_assp/display
+/os/boardsupport/naviengine/navienginebsp/naviengine_assp/eabi
+/os/boardsupport/naviengine/navienginebsp/naviengine_assp/i2s
+/os/boardsupport/naviengine/navienginebsp/naviengine_assp/lcd
+/os/boardsupport/naviengine/navienginebsp/naviengine_assp/lcdgce
+/os/boardsupport/naviengine/navienginebsp/naviengine_assp/mmc/angelus25
+/os/boardsupport/naviengine/navienginebsp/naviengine_assp/mmc/inc
+/os/boardsupport/naviengine/navienginebsp/naviengine_assp/mmc/sdcard3c
+/os/boardsupport/naviengine/navienginebsp/naviengine_assp/uart
+/os/boardsupport/naviengine/navienginebsp/ne1_tb/bmarm
+/os/boardsupport/naviengine/navienginebsp/ne1_tb/bootstrap
+/os/boardsupport/naviengine/navienginebsp/ne1_tb/eabi
+/os/boardsupport/naviengine/navienginebsp/ne1_tb/estart
+/os/boardsupport/naviengine/navienginebsp/ne1_tb/ethernet
+/os/boardsupport/naviengine/navienginebspflexible/test
+/os/boardsupport/naviengine/navienginebsp/ne1_tb/hal
+/os/boardsupport/naviengine/navienginebsp/ne1_tb/inc
+/os/boardsupport/naviengine/navienginebsp/ne1_tb/nktest
+/os/boardsupport/naviengine/navienginebsp/ne1_tb/replacement_utils
+/os/boardsupport/naviengine/navienginebsp/ne1_tb/rom
+/os/boardsupport/naviengine/navienginebsp/ne1_tb/single
+/os/boardsupport/naviengine/navienginebsp/ne1_tb/specific
+/os/boardsupport/naviengine/navienginebsp/ne1_tb/test
+/os/boardsupport/naviengine/navienginebootldr/inc
+/os/boardsupport/naviengine/naviengineunistore2/estart
+/os/boardsupport/naviengine/naviengineunistore2/lld
+/os/boardsupport/naviengine/naviengineunistore2/pam
+/os/boardsupport/naviengine/naviengineunistore2/rom
+/os/boardsupport/naviengine/navienginebsp/tools/testreference/lauterbach
+/os/unref/orphan/cedgen/base/cotulla/bmarm
+/os/unref/orphan/cedgen/base/cotulla/eabi
+/os/kernelhwsrv/userlibandfileserver/basedocs
+/os/kernelhwsrv/userlibandfileserver/domainmgr/bmarm
+/os/kernelhwsrv/userlibandfileserver/domainmgr/bwins
+/os/kernelhwsrv/userlibandfileserver/domainmgr/bx86
+/os/kernelhwsrv/userlibandfileserver/domainmgr/eabi
+/os/kernelhwsrv/userlibandfileserver/domainmgr/group
+/os/kernelhwsrv/userlibandfileserver/domainmgr/inc
+/os/kernelhwsrv/userlibandfileserver/domainmgr/src
+/os/kernelhwsrv/kernel/eka/bmarm
+/os/kernelhwsrv/kernel/eka/bwins
+/os/kernelhwsrv/kernel/eka/bx86
+/os/kernelhwsrv/kernel/eka/bx86gcc
+/os/kernelhwsrv/kernel/eka/common/arm
+/os/kernelhwsrv/kernel/eka/common/win32
+/os/kernelhwsrv/kernel/eka/common/x86
+/os/kernelhwsrv/kernel/eka/compsupp/aehabi
+/os/kernelhwsrv/kernel/eka/compsupp/eabi
+/os/kernelhwsrv/kernel/eka/compsupp/gcce
+/os/kernelhwsrv/kernel/eka/compsupp/openenv
+/os/kernelhwsrv/kernel/eka/compsupp/rvct2_0
+/os/kernelhwsrv/kernel/eka/compsupp/rvct2_1/aehabi
+/os/kernelhwsrv/kernel/eka/compsupp/rvct2_2
+/os/kernelhwsrv/kernel/eka/compsupp/rvct3_1/call_via_rx
+/os/kernelhwsrv/kernel/eka/compsupp/symaehabi
+/os/kernelhwsrv/kernel/eka/compsupp/symcpp
+/os/kernelhwsrv/kernel/eka/debug/securityServer/group
+/os/kernelhwsrv/kernel/eka/debug/securityServer/inc
+/os/kernelhwsrv/kernel/eka/debug/securityServer/src
+/os/kernelhwsrv/kernel/eka/debug/trkdummyapp/group
+/os/kernelhwsrv/kernel/eka/debug/trkdummyapp/rom
+/os/kernelhwsrv/kernel/eka/debug/trkdummyapp/src
+/os/kernelhwsrv/kernel/eka/documentation
+/os/kernelhwsrv/kernel/eka/drivers/adc
+/os/kernelhwsrv/kernel/eka/drivers/bsp
+/os/kernelhwsrv/kernel/eka/drivers/crashflash/unistore2
+/os/kernelhwsrv/kernel/eka/drivers/debug
+/os/kernelhwsrv/kernel/eka/drivers/dma
+/os/kernelhwsrv/kernel/eka/drivers/ecomm/arm
+/os/kernelhwsrv/kernel/eka/drivers/edisp/emul/win32
+/os/kernelhwsrv/kernel/eka/drivers/edisp/epoc/generic
+/os/kernelhwsrv/kernel/eka/drivers/edisp/epoc/vga
+/os/kernelhwsrv/kernel/eka/drivers/esound
+/os/kernelhwsrv/kernel/eka/drivers/ethernet
+/os/kernelhwsrv/kernel/eka/drivers/locmedia
+/os/kernelhwsrv/kernel/eka/drivers/medata
+/os/kernelhwsrv/kernel/eka/drivers/media
+/os/kernelhwsrv/kernel/eka/drivers/medint
+/os/kernelhwsrv/kernel/eka/drivers/medlfs
+/os/kernelhwsrv/kernel/eka/drivers/medmmc
+/os/kernelhwsrv/kernel/eka/drivers/mednand/gbbm/ncld
+/os/kernelhwsrv/kernel/eka/drivers/medsd3c
+/os/kernelhwsrv/kernel/eka/drivers/medsd4c
+/os/kernelhwsrv/kernel/eka/drivers/paging/emulated
+/os/kernelhwsrv/kernel/eka/drivers/pbus/mmc/sdcard/bmarm/sdcard3c/sdio
+/os/kernelhwsrv/kernel/eka/drivers/pbus/mmc/sdcard/bmarm/sdcard4c/sdio
+/os/kernelhwsrv/kernel/eka/drivers/pbus/mmc/sdcard/bwins/sdcard3c/sdio
+/os/kernelhwsrv/kernel/eka/drivers/pbus/mmc/sdcard/bwins/sdcard4c/sdio
+/os/kernelhwsrv/kernel/eka/drivers/pbus/mmc/sdcard/bx86/sdcard3c/sdio
+/os/kernelhwsrv/kernel/eka/drivers/pbus/mmc/sdcard/bx86/sdcard4c/sdio
+/os/kernelhwsrv/kernel/eka/drivers/pbus/mmc/sdcard/eabi/sdcard3c/sdio
+/os/kernelhwsrv/kernel/eka/drivers/pbus/mmc/sdcard/eabi/sdcard4c/sdio
+/os/kernelhwsrv/kernel/eka/drivers/pbus/mmc/sdcard/sdcard3c/sdio
+/os/kernelhwsrv/kernel/eka/drivers/pbus/mmc/sdcard/sdcard4c/sdio
+/os/kernelhwsrv/kernel/eka/drivers/pbus/pccard/epoc/arm
+/os/kernelhwsrv/kernel/eka/drivers/pipe
+/os/kernelhwsrv/kernel/eka/drivers/power/binary
+/os/kernelhwsrv/kernel/eka/drivers/resmanus
+/os/kernelhwsrv/kernel/eka/drivers/resourceman
+/os/kernelhwsrv/kernel/eka/drivers/sdio/SdioUart
+/os/kernelhwsrv/kernel/eka/drivers/sdio/medcsa
+/os/kernelhwsrv/kernel/eka/drivers/soundsc
+/os/kernelhwsrv/kernel/eka/drivers/trace/arm
+/os/kernelhwsrv/kernel/eka/drivers/unistore2/src/md
+/os/kernelhwsrv/kernel/eka/drivers/unistore2/src/xsr/core/bml
+/os/kernelhwsrv/kernel/eka/drivers/unistore2/src/xsr/core/stl
+/os/kernelhwsrv/kernel/eka/drivers/unistore2/src/xsr/inc
+/os/kernelhwsrv/kernel/eka/drivers/unistore2/src/xsr/lld/DNandL
+/os/kernelhwsrv/kernel/eka/drivers/unistore2/src/xsr/lld/asm
+/os/kernelhwsrv/kernel/eka/drivers/unistore2/src/xsr/lld/dnands
+/os/kernelhwsrv/kernel/eka/drivers/unistore2/src/xsr/oam/SymOS
+/os/kernelhwsrv/kernel/eka/drivers/unistore2/srca/md
+/os/kernelhwsrv/kernel/eka/drivers/unistore2/srca/xsr/LLD/DNandO
+/os/kernelhwsrv/kernel/eka/drivers/unistore2/srca/xsr/LLD/asm
+/os/kernelhwsrv/kernel/eka/drivers/unistore2/srca/xsr/OAM/OSLess
+/os/kernelhwsrv/kernel/eka/drivers/unistore2/srca/xsr/OAM/SymOS
+/os/kernelhwsrv/kernel/eka/drivers/unistore2/srca/xsr/core/STL
+/os/kernelhwsrv/kernel/eka/drivers/unistore2/srca/xsr/core/bml
+/os/kernelhwsrv/kernel/eka/drivers/unistore2/srca/xsr/inc
+/os/kernelhwsrv/kernel/eka/drivers/unistore2/srca/xsr/util/ONBL1
+/os/kernelhwsrv/kernel/eka/drivers/unistore2/srca/xsr/util/ONBL2
+/os/kernelhwsrv/kernel/eka/drivers/usbc
+/os/kernelhwsrv/kernel/eka/drivers/usbcc
+/os/kernelhwsrv/kernel/eka/drivers/usbcsc
+/os/kernelhwsrv/kernel/eka/drivers/usbho/shared
+/os/kernelhwsrv/kernel/eka/drivers/usbho/usbd/otgdi
+/os/kernelhwsrv/kernel/eka/drivers/usbho/usbd/shared
+/os/kernelhwsrv/kernel/eka/drivers/usbho/usbd/usbdi
+/os/kernelhwsrv/kernel/eka/drivers/usbho/usbd/usbware/config
+/os/kernelhwsrv/kernel/eka/drivers/usbho/usbd/usbware/dcd
+/os/kernelhwsrv/kernel/eka/drivers/usbho/usbd/usbware/dev/usb
+/os/kernelhwsrv/kernel/eka/drivers/usbho/usbd/usbware/docs
+/os/kernelhwsrv/kernel/eka/drivers/usbho/usbd/usbware/include
+/os/kernelhwsrv/kernel/eka/drivers/usbho/usbd/usbware/jclass/jetest
+/os/kernelhwsrv/kernel/eka/drivers/usbho/usbd/usbware/jos
+/os/kernelhwsrv/kernel/eka/drivers/usbho/usbd/usbware/jotg/include
+/os/kernelhwsrv/kernel/eka/drivers/usbho/usbd/usbware/jtransceiver/include
+/os/kernelhwsrv/kernel/eka/drivers/usbho/usbd/usbware/port/common/otg
+/os/kernelhwsrv/kernel/eka/drivers/usbho/usbd/usbware/port/include/host
+/os/kernelhwsrv/kernel/eka/drivers/usbho/usbd/usbware/port/include/os
+/os/kernelhwsrv/kernel/eka/drivers/usbho/usbd/usbware/port/include/otg
+/os/kernelhwsrv/kernel/eka/drivers/usbho/usbd/usbware/port/symbian
+/os/kernelhwsrv/kernel/eka/drivers/usbho/usbdescriptors
+/os/kernelhwsrv/kernel/eka/drivers/usbho/usbdi_utils
+/os/kernelhwsrv/kernel/eka/drivers/usbho/usbhldd/hubdriver
+/os/kernelhwsrv/kernel/eka/drivers/usbho/usbhldd/usbdi
+/os/kernelhwsrv/kernel/eka/drivers/usbho/usboldd/otgdi
+/os/kernelhwsrv/kernel/eka/drivers/xyin
+/os/kernelhwsrv/kernel/eka/eabi
+/os/kernelhwsrv/kernel/eka/euser/cbase
+/os/kernelhwsrv/kernel/eka/euser/epoc/arm
+/os/kernelhwsrv/kernel/eka/euser/epoc/win32
+/os/kernelhwsrv/kernel/eka/euser/epoc/x86
+/os/kernelhwsrv/kernel/eka/euser/maths
+/os/kernelhwsrv/kernel/eka/euser/unicode/documentation
+/os/kernelhwsrv/kernel/eka/euser/unicode/perl
+/os/kernelhwsrv/kernel/eka/euser/v7_0
+/os/kernelhwsrv/kernel/eka/ewsrv
+/os/kernelhwsrv/kernel/eka/include/drivers
+/os/kernelhwsrv/kernel/eka/include/kernel/arm
+/os/kernelhwsrv/kernel/eka/include/kernel/win32
+/os/kernelhwsrv/kernel/eka/include/kernel/x86
+/os/kernelhwsrv/kernel/eka/include/memmodel/emul/win32
+/os/kernelhwsrv/kernel/eka/include/memmodel/epoc/direct/arm
+/os/kernelhwsrv/kernel/eka/include/memmodel/epoc/direct/x86
+/os/kernelhwsrv/kernel/eka/include/memmodel/epoc/flexible/arm
+/os/kernelhwsrv/kernel/eka/include/memmodel/epoc/flexible/x86
+/os/kernelhwsrv/kernel/eka/include/memmodel/epoc/mmubase
+/os/kernelhwsrv/kernel/eka/include/memmodel/epoc/moving/arm
+/os/kernelhwsrv/kernel/eka/include/memmodel/epoc/multiple/arm
+/os/kernelhwsrv/kernel/eka/include/memmodel/epoc/multiple/x86
+/os/kernelhwsrv/kernel/eka/include/nkern/arm
+/os/kernelhwsrv/kernel/eka/include/nkern/win32
+/os/kernelhwsrv/kernel/eka/include/nkern/x86
+/os/kernelhwsrv/kernel/eka/include/nkernsmp/arm
+/os/kernelhwsrv/kernel/eka/include/nkernsmp/x86
+/os/kernelhwsrv/kernel/eka/kernel/arm
+/os/kernelhwsrv/kernel/eka/kernel/win32
+/os/kernelhwsrv/kernel/eka/kernel/x86
+/os/kernelhwsrv/kernel/eka/kernel/zlib
+/os/kernelhwsrv/kernel/eka/klib/arm
+/os/kernelhwsrv/kernel/eka/klib/x86
+/os/kernelhwsrv/kernel/eka/memmodel/emul/win32
+/os/kernelhwsrv/kernel/eka/memmodel/epoc/direct/arm
+/os/kernelhwsrv/kernel/eka/memmodel/epoc/direct/x86
+/os/kernelhwsrv/kernel/eka/memmodel/epoc/flexible/arm
+/os/kernelhwsrv/kernel/eka/memmodel/epoc/flexible/mmu/arm
+/os/kernelhwsrv/kernel/eka/memmodel/epoc/flexible/mmu/x86
+/os/kernelhwsrv/kernel/eka/memmodel/epoc/flexible/x86
+/os/kernelhwsrv/kernel/eka/memmodel/epoc/mmubase
+/os/kernelhwsrv/kernel/eka/memmodel/epoc/moving/arm
+/os/kernelhwsrv/kernel/eka/memmodel/epoc/multiple/arm
+/os/kernelhwsrv/kernel/eka/memmodel/epoc/multiple/x86
+/os/kernelhwsrv/kernel/eka/nkern/arm
+/os/kernelhwsrv/kernel/eka/nkern/win32
+/os/kernelhwsrv/kernel/eka/nkern/x86
+/os/kernelhwsrv/kernel/eka/nkernsmp/arm
+/os/kernelhwsrv/kernel/eka/nkernsmp/x86
+/os/kernelhwsrv/kernel/eka/personality/example
+/os/kernelhwsrv/kernel/eka/rombuild
+/os/kernelhwsrv/kerneltest/e32test/active
+/os/kernelhwsrv/kerneltest/e32test/bench
+/os/kernelhwsrv/kerneltest/e32test/benchmark
+/os/kernelhwsrv/kerneltest/e32test/bmarm
+/os/kernelhwsrv/kerneltest/e32test/buffer
+/os/kernelhwsrv/kerneltest/e32test/bwins
+/os/kernelhwsrv/kerneltest/e32test/bx86
+/os/kernelhwsrv/kerneltest/e32test/cppexceptions
+/os/kernelhwsrv/kerneltest/e32test/datetime
+/os/kernelhwsrv/kerneltest/e32test/debug
+/os/kernelhwsrv/kerneltest/e32test/defrag/perf
+/os/kernelhwsrv/kerneltest/e32test/demandpaging
+/os/kernelhwsrv/kerneltest/e32test/device
+/os/kernelhwsrv/kerneltest/e32test/digitiser
+/os/kernelhwsrv/kerneltest/e32test/dll/oe/bwins
+/os/kernelhwsrv/kerneltest/e32test/dll/oe/eabi/udeb
+/os/kernelhwsrv/kerneltest/e32test/dll/oe/eabi/urel
+/os/kernelhwsrv/kerneltest/e32test/dll/oe/group
+/os/kernelhwsrv/kerneltest/e32test/dma
+/os/kernelhwsrv/kerneltest/e32test/eabi
+/os/kernelhwsrv/kerneltest/e32test/earlyextension
+/os/kernelhwsrv/kerneltest/e32test/emi
+/os/kernelhwsrv/kerneltest/e32test/emul
+/os/kernelhwsrv/kerneltest/e32test/ethernet/macset
+/os/kernelhwsrv/kerneltest/e32test/ethernet/pump
+/os/kernelhwsrv/kerneltest/e32test/examples/camera1
+/os/kernelhwsrv/kerneltest/e32test/examples/convert1
+/os/kernelhwsrv/kerneltest/e32test/examples/defrag
+/os/kernelhwsrv/kerneltest/e32test/examples/driver1
+/os/kernelhwsrv/kerneltest/e32test/examples/exdriver/exdriver_chnk/doc
+/os/kernelhwsrv/kerneltest/e32test/examples/exdriver/exdriver_chnk/group
+/os/kernelhwsrv/kerneltest/e32test/examples/exdriver/exdriver_chnk/inc
+/os/kernelhwsrv/kerneltest/e32test/examples/exdriver/exdriver_chnk/src
+/os/kernelhwsrv/kerneltest/e32test/examples/exdriver/exdriver_dma/doc
+/os/kernelhwsrv/kerneltest/e32test/examples/exdriver/exdriver_dma/group
+/os/kernelhwsrv/kerneltest/e32test/examples/exdriver/exdriver_dma/inc
+/os/kernelhwsrv/kerneltest/e32test/examples/exdriver/exdriver_dma/src
+/os/kernelhwsrv/kerneltest/e32test/examples/exdriver/exdriver_int/doc
+/os/kernelhwsrv/kerneltest/e32test/examples/exdriver/exdriver_int/group
+/os/kernelhwsrv/kerneltest/e32test/examples/exdriver/exdriver_int/inc
+/os/kernelhwsrv/kerneltest/e32test/examples/exdriver/exdriver_int/src
+/os/kernelhwsrv/kerneltest/e32test/examples/exdriver/exdriver_pio/doc
+/os/kernelhwsrv/kerneltest/e32test/examples/exdriver/exdriver_pio/group
+/os/kernelhwsrv/kerneltest/e32test/examples/exdriver/exdriver_pio/inc
+/os/kernelhwsrv/kerneltest/e32test/examples/exdriver/exdriver_pio/src
+/os/kernelhwsrv/kerneltest/e32test/examples/exdriver/exdriver_sync/doc
+/os/kernelhwsrv/kerneltest/e32test/examples/exdriver/exdriver_sync/group
+/os/kernelhwsrv/kerneltest/e32test/examples/exdriver/exdriver_sync/inc
+/os/kernelhwsrv/kerneltest/e32test/examples/exdriver/exdriver_sync/src
+/os/kernelhwsrv/kerneltest/e32test/group
+/os/kernelhwsrv/kerneltest/e32test/heap
+/os/kernelhwsrv/kerneltest/e32test/lffs
+/os/kernelhwsrv/kerneltest/e32test/locale
+/os/kernelhwsrv/kerneltest/e32test/locl
+/os/kernelhwsrv/kerneltest/e32test/math
+/os/kernelhwsrv/kerneltest/e32test/misc
+/os/kernelhwsrv/kerneltest/e32test/mmu
+/os/kernelhwsrv/kerneltest/e32test/mqueue
+/os/kernelhwsrv/kerneltest/e32test/multimedia
+/os/kernelhwsrv/kerneltest/e32test/nkern
+/os/kernelhwsrv/kerneltest/e32test/nkernsa/arm
+/os/kernelhwsrv/kerneltest/e32test/nkernsa/x86
+/os/kernelhwsrv/kerneltest/e32test/notifier
+/os/kernelhwsrv/kerneltest/e32test/pccd
+/os/kernelhwsrv/kerneltest/e32test/personality/example
+/os/kernelhwsrv/kerneltest/e32test/pipe
+/os/kernelhwsrv/kerneltest/e32test/power
+/os/kernelhwsrv/kerneltest/e32test/prime
+/os/kernelhwsrv/kerneltest/e32test/property
+/os/kernelhwsrv/kerneltest/e32test/realtime
+/os/kernelhwsrv/kerneltest/e32test/resmanus
+/os/kernelhwsrv/kerneltest/e32test/resourceman/acctst
+/os/kernelhwsrv/kerneltest/e32test/resourceman/resourceman_psl
+/os/kernelhwsrv/kerneltest/e32test/rm_debug
+/os/kernelhwsrv/kerneltest/e32test/secure
+/os/kernelhwsrv/kerneltest/e32test/smp_demo
+/os/kernelhwsrv/kerneltest/e32test/stack
+/os/kernelhwsrv/kerneltest/e32test/system
+/os/kernelhwsrv/kerneltest/e32test/thread
+/os/kernelhwsrv/kerneltest/e32test/usb/t_usb_device/configs
+/os/kernelhwsrv/kerneltest/e32test/usb/t_usb_device/idlecounter
+/os/kernelhwsrv/kerneltest/e32test/usb/t_usb_device/include
+/os/kernelhwsrv/kerneltest/e32test/usb/t_usb_device/src
+/os/kernelhwsrv/kerneltest/e32test/usb/t_usb_win/bin_distribution
+/os/kernelhwsrv/kerneltest/e32test/usb/t_usb_win/include
+/os/kernelhwsrv/kerneltest/e32test/usb/t_usb_win/project
+/os/kernelhwsrv/kerneltest/e32test/usb/t_usb_win/scripts/massstorage
+/os/kernelhwsrv/kerneltest/e32test/usb/t_usb_win/src/res
+/os/kernelhwsrv/kerneltest/e32test/usbho/t_otgdi/group
+/os/kernelhwsrv/kerneltest/e32test/usbho/t_otgdi/inc
+/os/kernelhwsrv/kerneltest/e32test/usbho/t_otgdi/src
+/os/kernelhwsrv/kerneltest/e32test/usbho/t_usbdi/group
+/os/kernelhwsrv/kerneltest/e32test/usbho/t_usbdi/inc
+/os/kernelhwsrv/kerneltest/e32test/usbho/t_usbdi/rom
+/os/kernelhwsrv/kerneltest/e32test/usbho/t_usbdi/scripts
+/os/kernelhwsrv/kerneltest/e32test/usbho/t_usbdi/src
+/os/kernelhwsrv/kerneltest/e32test/usbho/t_usbdi/t_usbhost_usbman_src
+/os/kernelhwsrv/kerneltest/e32test/video
+/os/kernelhwsrv/kerneltest/e32test/win32/usbrflct
+/os/kernelhwsrv/kerneltest/e32test/win32/usbrflct_distribution/win98
+/os/kernelhwsrv/kerneltest/e32test/window
+/os/kernelhwsrv/kerneltest/e32test/y2k
+/os/kernelhwsrv/kerneltest/e32utils/analyse
+/os/kernelhwsrv/kerneltest/e32utils/bmarm
+/os/kernelhwsrv/kerneltest/e32utils/bwins
+/os/kernelhwsrv/kerneltest/e32utils/bx86
+/os/kernelhwsrv/kerneltest/e32utils/crashread
+/os/kernelhwsrv/kerneltest/e32utils/d_exc
+/os/kernelhwsrv/kerneltest/e32utils/demandpaging
+/os/kernelhwsrv/kerneltest/e32utils/eabi
+/os/kernelhwsrv/kerneltest/e32utils/group
+/os/kernelhwsrv/kerneltest/e32utils/host_usbmsapp/testclient/usbtestclient
+/os/kernelhwsrv/kerneltest/e32utils/host_usbmsapp/testclient/usbtestmsclient/data
+/os/kernelhwsrv/kerneltest/e32utils/host_usbmsapp/testclient/usbtestmsclient/inc
+/os/kernelhwsrv/kerneltest/e32utils/host_usbmsapp/testclient/usbtestmsclient/protocol/include
+/os/kernelhwsrv/kerneltest/e32utils/host_usbmsapp/testclient/usbtestmsclient/transport/include
+/os/kernelhwsrv/kerneltest/e32utils/mmcloader
+/os/kernelhwsrv/kerneltest/e32utils/nandboot/coreldr/unistore2
+/os/kernelhwsrv/kerneltest/e32utils/nandboot/mednand/generic
+/os/kernelhwsrv/kerneltest/e32utils/nandboot/nandloader/inc
+/os/kernelhwsrv/kerneltest/e32utils/nandboot/nandloader/src
+/os/kernelhwsrv/unistore2/uiibootsupport
+/os/kernelhwsrv/kerneltest/e32utils/nandboot/rebootdrv
+/os/kernelhwsrv/kerneltest/e32utils/netcards
+/os/kernelhwsrv/kerneltest/e32utils/pccd/sa1100
+/os/kernelhwsrv/kerneltest/e32utils/profiler
+/os/kernelhwsrv/kerneltest/sdiotest/source
+/os/kernelhwsrv/kerneltest/e32utils/setcap
+/os/kernelhwsrv/kerneltest/e32utils/testusbcldd/group
+/os/kernelhwsrv/kerneltest/e32utils/testusbcldd/inc
+/os/kernelhwsrv/kerneltest/e32utils/testusbcldd/src
+/os/kernelhwsrv/kerneltest/e32utils/trace
+/os/kernelhwsrv/kerneltest/e32utils/usbmsapp
+/os/kernelhwsrv/kerneltest/e32utils/winsnandgen
+/os/boardsupport/emulator/emulatorbsp/bwins
+/os/boardsupport/emulator/emulatorbsp/documentation
+/os/boardsupport/emulator/emulatorbsp/estart
+/os/boardsupport/emulator/emulatorbsp/hal
+/os/boardsupport/emulator/emulatorbsp/inc
+/os/boardsupport/emulator/emulatorbsp/specific/sdcard/sdcard3c/sdio
+/os/boardsupport/emulator/emulatorbsp/specific/sdcard/sdcard4c
+/os/boardsupport/emulator/emulatorbsp/test/exdriver/exdriver_pio/group
+/os/boardsupport/emulator/emulatorbsp/test/exdriver/exdriver_pio/inc
+/os/boardsupport/emulator/emulatorbsp/test/exdriver/exdriver_pio/src
+/os/boardsupport/emulator/emulatorbsp/win_drive
+/os/boardsupport/emulator/emulatorbsp/wpdpack/drivers
+/os/boardsupport/emulator/emulatorbsp/wpdpack/include
+/os/boardsupport/emulator/emulatorbsp/wpdpack/lib
+/os/boardsupport/emulator/unistore2emulatorsupport/drivers/winsonld
+/os/boardsupport/emulator/unistore2emulatorsupport/drivers/winspnls
+/os/boardsupport/emulator/unistore2emulatorsupport/estart
+/os/kernelhwsrv/userlibandfileserver/fileserver/bmarm
+/os/kernelhwsrv/userlibandfileserver/fileserver/bwins
+/os/kernelhwsrv/userlibandfileserver/fileserver/bx86
+/os/kernelhwsrv/userlibandfileserver/fileserver/ddesign
+/os/kernelhwsrv/userlibandfileserver/fileserver/eabi
+/os/kernelhwsrv/userlibandfileserver/fileserver/estart
+/os/kernelhwsrv/userlibandfileserver/fileserver/etshell
+/os/kernelhwsrv/userlibandfileserver/fileserver/group
+/os/kernelhwsrv/userlibandfileserver/fileserver/inc
+/os/kernelhwsrv/userlibandfileserver/fileserver/iso9660
+/os/kernelhwsrv/userlibandfileserver/fileserver/ntfs
+/os/kernelhwsrv/userlibandfileserver/fileserver/rom
+/os/kernelhwsrv/userlibandfileserver/fileserver/runtests
+/os/kernelhwsrv/userlibandfileserver/fileserver/scomp
+/os/kernelhwsrv/userlibandfileserver/fileserver/sfat/inc
+/os/kernelhwsrv/userlibandfileserver/fileserver/sfat32/inc
+/os/kernelhwsrv/userlibandfileserver/fileserver/sfile
+/os/kernelhwsrv/userlibandfileserver/fileserver/sfsrv
+/os/kernelhwsrv/userlibandfileserver/fileserver/sftl/ssr
+/os/kernelhwsrv/userlibandfileserver/fileserver/shostmassstorage/client
+/os/kernelhwsrv/userlibandfileserver/fileserver/shostmassstorage/msproxy
+/os/kernelhwsrv/userlibandfileserver/fileserver/shostmassstorage/server/controller/include
+/os/kernelhwsrv/userlibandfileserver/fileserver/shostmassstorage/server/protocol/include
+/os/kernelhwsrv/userlibandfileserver/fileserver/shostmassstorage/server/shared
+/os/kernelhwsrv/userlibandfileserver/fileserver/shostmassstorage/server/src/include
+/os/kernelhwsrv/userlibandfileserver/fileserver/shostmassstorage/server/transport/include
+/os/kernelhwsrv/userlibandfileserver/fileserver/shostmassstorage/shared
+/os/kernelhwsrv/userlibandfileserver/fileserver/slffs
+/os/kernelhwsrv/userlibandfileserver/fileserver/smassstorage/inc
+/os/kernelhwsrv/userlibandfileserver/fileserver/srofs
+/os/kernelhwsrv/userlibandfileserver/fileserver/srom
+/os/kernelhwsrv/userlibandfileserver/fileserver/swins
+/os/kernelhwsrv/kerneltest/f32test/bench/documentation
+/os/kernelhwsrv/kerneltest/f32test/bench/testscripts
+/os/kernelhwsrv/kerneltest/f32test/bmarm
+/os/kernelhwsrv/kerneltest/f32test/bwins
+/os/kernelhwsrv/kerneltest/f32test/bx86
+/os/kernelhwsrv/kerneltest/f32test/cfileman/documentation
+/os/kernelhwsrv/kerneltest/f32test/cfileman/utility
+/os/kernelhwsrv/kerneltest/f32test/concur
+/os/kernelhwsrv/kerneltest/f32test/demandpaging/integtest/group
+/os/kernelhwsrv/kerneltest/f32test/demandpaging/integtest/inc
+/os/kernelhwsrv/kerneltest/f32test/demandpaging/integtest/src
+/os/kernelhwsrv/kerneltest/f32test/demandpaging/loader
+/os/kernelhwsrv/kerneltest/f32test/eabi
+/os/kernelhwsrv/kerneltest/f32test/ext
+/os/kernelhwsrv/kerneltest/f32test/fat32
+/os/kernelhwsrv/kerneltest/f32test/fileshare
+/os/kernelhwsrv/kerneltest/f32test/fsstress
+/os/kernelhwsrv/kerneltest/f32test/group
+/os/kernelhwsrv/kerneltest/f32test/lffs
+/os/kernelhwsrv/kerneltest/f32test/loader/pathological
+/os/kernelhwsrv/kerneltest/f32test/loader/security
+/os/kernelhwsrv/kerneltest/f32test/locl/localeutils
+/os/kernelhwsrv/kerneltest/f32test/manager
+/os/kernelhwsrv/kerneltest/f32test/math
+/os/kernelhwsrv/kerneltest/f32test/nandftl
+/os/kernelhwsrv/kerneltest/f32test/plugins/version_1/virus
+/os/kernelhwsrv/kerneltest/f32test/plugins/version_2/CryptoEncryption/group
+/os/kernelhwsrv/kerneltest/f32test/plugins/version_2/CryptoEncryption/inc
+/os/kernelhwsrv/kerneltest/f32test/plugins/version_2/CryptoEncryption/src
+/os/kernelhwsrv/kerneltest/f32test/plugins/version_2/group
+/os/kernelhwsrv/kerneltest/f32test/plugins/version_2/inc
+/os/kernelhwsrv/kerneltest/f32test/plugins/version_2/src
+/os/kernelhwsrv/kerneltest/f32test/plugins/version_2beta/encrypt
+/os/kernelhwsrv/kerneltest/f32test/plugins/version_2beta/hex
+/os/kernelhwsrv/kerneltest/f32test/plugins/version_2beta/trace
+/os/kernelhwsrv/kerneltest/f32test/rofs/oby
+/os/kernelhwsrv/kerneltest/f32test/rofs/src
+/os/kernelhwsrv/kerneltest/f32test/rofs/testfiles
+/os/kernelhwsrv/kerneltest/f32test/scndrv32
+/os/kernelhwsrv/kerneltest/f32test/server/corruptTest
+/os/kernelhwsrv/kerneltest/f32test/smassstorage/bwins
+/os/kernelhwsrv/kerneltest/f32test/smassstorage/group
+/os/kernelhwsrv/kerneltest/f32test/smassstorage/inc
+/os/kernelhwsrv/kerneltest/f32test/smassstorage/msdrive
+/os/kernelhwsrv/kerneltest/f32test/smassstorage/scripts
+/os/kernelhwsrv/kerneltest/f32test/smassstorage/scsiprot
+/os/kernelhwsrv/kerneltest/f32test/smassstorage/src
+/os/kernelhwsrv/kerneltest/f32test/testestart
+/os/kernelhwsrv/kerneltest/f32test/testfsys
+/os/kernelhwsrv/kerneltest/f32test/tools
+/os/kernelhwsrv/halservices/hal/bmarm
+/os/kernelhwsrv/halservices/hal/bwins
+/os/kernelhwsrv/halservices/hal/bx86
+/os/kernelhwsrv/halservices/hal/doc
+/os/kernelhwsrv/halservices/hal/eabi
+/os/kernelhwsrv/halservices/hal/inc
+/os/kernelhwsrv/halservices/hal/rom
+/os/kernelhwsrv/halservices/hal/src
+/os/kernelhwsrv/halservices/hal/tsrc
+/os/unref/orphan/cedgen/base/integrator/bootldr
+/os/boardsupport/integratorbsp/integratorarm1136coremodule/bootstrap
+/os/boardsupport/integratorbsp/integratorarm1136coremodule/nandboot/rebootdrv
+/os/boardsupport/integratorbsp/integratorarm1136coremodule/rom
+/os/boardsupport/integratorbsp/integratorarm1136coremodule/test
+/os/boardsupport/integratorbsp/integratorarm920coremodule/bmarm
+/os/boardsupport/integratorbsp/integratorarm920coremodule/bootstrap
+/os/boardsupport/integratorbsp/integratorarm920coremodule/eabi
+/os/boardsupport/integratorbsp/integratorarm920coremodule/hal
+/os/boardsupport/integratorbsp/integratorarm920coremodule/inc
+/os/boardsupport/integratorbsp/integratorarm920coremodule/nandboot/rebootdrv
+/os/boardsupport/integratorbsp/integratorarm920coremodule/rom
+/os/boardsupport/integratorbsp/integratorarm920coremodule/test
+/os/boardsupport/integratorbsp/integratormotherboard/bmarm
+/os/boardsupport/integratorbsp/integratormotherboard/bootstrap
+/os/boardsupport/integratorbsp/integratormotherboard/drivers
+/os/boardsupport/integratorbsp/integratormotherboard/eabi
+/os/boardsupport/integratorbsp/integratormotherboard/estart
+/os/boardsupport/integratorbsp/integratormotherboard/inc
+/os/boardsupport/integratorbsp/integratormotherboard/nandboot/miniboot
+/os/boardsupport/integratorbsp/integratormotherboard/primecell
+/os/boardsupport/integratorbsp/integratorpanasoniclogicmodule/bmarm
+/os/boardsupport/integratorbsp/integratorpanasoniclogicmodule/eabi
+/os/boardsupport/integratorbsp/integratorpanasoniclogicmodule/inc
+/os/boardsupport/integratorbsp/integratorpanasoniclogicmodule/rom/sdio
+/os/boardsupport/integratorbsp/integratorpanasoniclogicmodule/rom/sdiop
+/os/boardsupport/integratorbsp/integratorpanasoniclogicmodule/specific/sdcard3c
+/os/boardsupport/integratorbsp/integratorpanasoniclogicmodule/specific/sdcard4c
+/os/boardsupport/integratorbsp/integratorssrnandlogicmodule/drivers
+/os/boardsupport/integratorbsp/integratorssrnandlogicmodule/estart
+/os/boardsupport/integratorbsp/integratorssrnandlogicmodule/inc
+/os/boardsupport/integratorbsp/integratorssrnandlogicmodule/nandboot/coreldr
+/os/boardsupport/integratorbsp/integratorssrnandlogicmodule/nandboot/miniboot
+/os/boardsupport/integratorbsp/integratorssrnandlogicmodule/rom
+/os/boardsupport/integratorbsp/integratorunistore2nandlogicmodule/drivers/crashflashnand
+/os/boardsupport/integratorbsp/integratorunistore2nandlogicmodule/drivers/intappnls
+/os/boardsupport/integratorbsp/integratorunistore2nandlogicmodule/drivers/intappnss
+/os/boardsupport/integratorbsp/integratorunistore2nandlogicmodule/estart
+/os/boardsupport/integratorbsp/integratorunistore2nandlogicmodule/inc
+/os/boardsupport/integratorbsp/integratorunistore2nandlogicmodule/rom
+/os/boardsupport/integratorbsp/integratorunistore2nandlogicmodule/test
+/os/boardsupport/integratorbsp/integratorxx600logicmodule/bmarm
+/os/boardsupport/integratorbsp/integratorxx600logicmodule/drivers
+/os/boardsupport/integratorbsp/integratorxx600logicmodule/eabi
+/os/boardsupport/integratorbsp/integratorxx600logicmodule/inc
+/os/boardsupport/integratorbsp/integratorxx600logicmodule/primecell
+/os/boardsupport/integratorbsp/integratorxx600logicmodule/rom
+/os/boardsupport/omaph2/omaph2bsp/assp/1610
+/os/boardsupport/omaph2/omaph2bsp/assp/bmarm
+/os/boardsupport/omaph2/omaph2bsp/assp/eabi
+/os/boardsupport/omaph2/omaph2bsp/assp/inc
+/os/boardsupport/omaph2/omaph2bsp/assp/shared
+/os/boardsupport/omaph2/omaph2bsp/h2/bmarm
+/os/boardsupport/omaph2/omaph2bsp/h2/bootstrap
+/os/boardsupport/omaph2/omaph2bsp/h2/eabi
+/os/boardsupport/omaph2/omaph2bsp/h2/estart
+/os/boardsupport/omaph2/omaph2bsp/h2/hal
+/os/boardsupport/omaph2/omaph2bsp/h2/inc
+/os/boardsupport/omaph2/omaph2bsp/h2/nandboot/coreldr
+/os/boardsupport/omaph2/omaph2bsp/h2/rom/h2usb
+/os/boardsupport/omaph2/omaph2bsp/h2/rom/usbtest
+/os/boardsupport/omaph2/omaph2bsp/h2/single
+/os/boardsupport/omaph2/omaph2bsp/h2/specific
+/os/boardsupport/omaph2/omaph2bsp/h2/test
+/os/boardsupport/omaph2/omaph2sdio
+/os/boardsupport/omaph2/omaph2unistore2/drivers/h2pnss
+/os/boardsupport/omaph2/omaph2unistore2/estart
+/os/boardsupport/omaph2/omaph2unistore2/rom
+/os/boardsupport/omaph2/omaph2bsp/shared/bmarm
+/os/boardsupport/omaph2/omaph2bsp/shared/bootstrap
+/os/boardsupport/omaph2/omaph2bsp/shared/camera
+/os/boardsupport/omaph2/omaph2bsp/shared/cameraldd
+/os/boardsupport/omaph2/omaph2bsp/shared/digitizer
+/os/boardsupport/omaph2/omaph2bsp/shared/dmactrl
+/os/boardsupport/omaph2/omaph2bsp/shared/eabi
+/os/boardsupport/omaph2/omaph2bsp/shared/ecommdmaldd
+/os/boardsupport/omaph2/omaph2bsp/shared/edisp
+/os/boardsupport/omaph2/omaph2bsp/shared/ethernet
+/os/boardsupport/omaph2/omaph2bsp/shared/fpga
+/os/boardsupport/omaph2/omaph2bsp/shared/i2c
+/os/boardsupport/omaph2/omaph2bsp/shared/inc/usb
+/os/boardsupport/omaph2/omaph2bsp/shared/keypad
+/os/boardsupport/omaph2/omaph2bsp/shared/keytran
+/os/boardsupport/omaph2/omaph2bsp/shared/lcd
+/os/boardsupport/omaph2/omaph2bsp/shared/lffs_nor
+/os/boardsupport/omaph2/omaph2bsp/shared/mmc
+/os/boardsupport/omaph2/omaph2bsp/shared/monitor
+/os/boardsupport/omaph2/omaph2bsp/shared/nandboot
+/os/boardsupport/omaph2/omaph2bsp/shared/nandcs
+/os/boardsupport/omaph2/omaph2bsp/shared/power
+/os/boardsupport/omaph2/omaph2bsp/shared/ps2keyboard
+/os/boardsupport/omaph2/omaph2bsp/shared/sdiouart
+/os/boardsupport/omaph2/omaph2bsp/shared/serialkeyboard
+/os/boardsupport/omaph2/omaph2bsp/shared/sound
+/os/boardsupport/omaph2/omaph2bsp/shared/uarts
+/os/boardsupport/omaph2/omaph2bsp/shared/usb
+/os/boardsupport/omaph2/omaph2bsp/shared/uwire
+/os/boardsupport/omaph2/omaph2bsp/tests/camera
+/os/boardsupport/omaph2/omaph2bsp/tests/group
+/os/boardsupport/omaph2/omaph2bsp/tests/keypad
+/os/boardsupport/omaph2/omaph2bsp/tests/sound
+/os/boardsupport/omaph2/omaph2bsp/tests/uwire
+/os/boardsupport/omaph4/omaph4bsp/assp/omap24xx/assp
+/os/boardsupport/omaph4/omaph4bsp/assp/omap24xx/bmarm
+/os/boardsupport/omaph4/omaph4bsp/assp/omap24xx/bootstrap
+/os/boardsupport/omaph4/omaph4bsp/assp/omap24xx/dma
+/os/boardsupport/omaph4/omaph4bsp/assp/omap24xx/eabi
+/os/boardsupport/omaph4/omaph4bsp/assp/omap24xx/gpio
+/os/boardsupport/omaph4/omaph4bsp/assp/omap24xx/hsusb
+/os/boardsupport/omaph4/omaph4bsp/assp/omap24xx/i2c
+/os/boardsupport/omaph4/omaph4bsp/assp/omap24xx/i2c_slave
+/os/boardsupport/omaph4/omaph4bsp/assp/omap24xx/inc
+/os/boardsupport/omaph4/omaph4bsp/assp/omap24xx/interrupt
+/os/boardsupport/omaph4/omaph4bsp/assp/omap24xx/lcd
+/os/boardsupport/omaph4/omaph4bsp/assp/omap24xx/lffs_nor
+/os/boardsupport/omaph4/omaph4bsp/assp/omap24xx/mcspi
+/os/boardsupport/omaph4/omaph4bsp/assp/omap24xx/mmc
+/os/boardsupport/omaph4/omaph4bsp/assp/omap24xx/power
+/os/boardsupport/omaph4/omaph4bsp/assp/omap24xx/serialkeyboard
+/os/boardsupport/omaph4/omaph4bsp/assp/omap24xx/sound
+/os/boardsupport/omaph4/omaph4bsp/assp/omap24xx/sound_sc
+/os/boardsupport/omaph4/omaph4bsp/assp/omap24xx/uart
+/os/boardsupport/omaph4/omaph4bsp/assp/omap24xx/usb
+/os/boardsupport/omaph4/omaph4bsp/assp/omap24xx/watchdog
+/os/boardsupport/omaph4/omaph4bsp/assp/shared/assp
+/os/boardsupport/omaph4/omaph4bsp/assp/shared/dma
+/os/boardsupport/omaph4/omaph4bsp/assp/shared/interrupt
+/os/boardsupport/omaph4/omaph4bsp/assp/shared/power
+/os/boardsupport/omaph4/omaph4bsp/assp/shared/usb
+/os/boardsupport/omaph4/omaph4bsp/h4/battery
+/os/boardsupport/omaph4/omaph4bsp/h4/bmarm
+/os/boardsupport/omaph4/omaph4bsp/h4/bootstrap
+/os/boardsupport/omaph4/omaph4bsp/h4/camera
+/os/boardsupport/omaph4/omaph4bsp/h4/crashflashnorh4
+/os/boardsupport/omaph4/omaph4bsp/h4/digitizer
+/os/boardsupport/omaph4/omaph4bsp/h4/eabi
+/os/boardsupport/omaph4/omaph4bsp/h4/estart
+/os/boardsupport/omaph4/omaph4bsp/h4/ethernet
+/os/boardsupport/omaph4/omaph4bsp/h4/flexible/test
+/os/boardsupport/omaph4/omaph4bsp/h4/gce
+/os/boardsupport/omaph4/omaph4bsp/h4/hal
+/os/boardsupport/omaph4/omaph4bsp/h4/hsusb
+/os/boardsupport/omaph4/omaph4bsp/h4/i2c
+/os/boardsupport/omaph4/omaph4bsp/h4/inc
+/os/boardsupport/omaph4/omaph4bsp/h4/interrupt
+/os/boardsupport/omaph4/omaph4bsp/h4/isp1301
+/os/boardsupport/omaph4/omaph4bsp/h4/keypad
+/os/boardsupport/omaph4/omaph4bsp/h4/lffs_nor
+/os/boardsupport/omaph4/omaph4bsp/h4/mmc
+/os/boardsupport/omaph4/omaph4bsp/h4/nand
+/os/boardsupport/omaph4/omaph4bsp/h4/nandboot/coreldr_onenand
+/os/boardsupport/omaph4/omaph4bsp/h4/nandboot/coreldr_smallblk
+/os/boardsupport/omaph4/omaph4bsp/h4/power
+/os/boardsupport/omaph4/omaph4bsp/h4/ps2keyboard
+/os/boardsupport/omaph4/omaph4bsp/h4/resourceman
+/os/boardsupport/omaph4/omaph4bsp/h4/rom/h4usb
+/os/boardsupport/omaph4/omaph4bsp/h4/rom/smoketest
+/os/boardsupport/omaph4/omaph4bsp/h4/rom/usbtest
+/os/boardsupport/omaph4/omaph4bsp/h4/serialno
+/os/boardsupport/omaph4/omaph4bsp/h4/sound
+/os/boardsupport/omaph4/omaph4bsp/h4/sound_sc
+/os/boardsupport/omaph4/omaph4bsp/h4/specific
+/os/boardsupport/omaph4/omaph4bsp/h4/test/boottime
+/os/boardsupport/omaph4/omaph4bsp/h4/test/camera
+/os/boardsupport/omaph4/omaph4bsp/h4/test/e32test
+/os/boardsupport/omaph4/omaph4bsp/h4/test/exdriver/exdriver_chnk/group
+/os/boardsupport/omaph4/omaph4bsp/h4/test/exdriver/exdriver_chnk/inc
+/os/boardsupport/omaph4/omaph4bsp/h4/test/exdriver/exdriver_chnk/src
+/os/boardsupport/omaph4/omaph4bsp/h4/test/exdriver/exdriver_dma/group
+/os/boardsupport/omaph4/omaph4bsp/h4/test/exdriver/exdriver_dma/inc
+/os/boardsupport/omaph4/omaph4bsp/h4/test/exdriver/exdriver_dma/src
+/os/boardsupport/omaph4/omaph4bsp/h4/test/exdriver/exdriver_int/group
+/os/boardsupport/omaph4/omaph4bsp/h4/test/exdriver/exdriver_int/inc
+/os/boardsupport/omaph4/omaph4bsp/h4/test/exdriver/exdriver_int/src
+/os/boardsupport/omaph4/omaph4bsp/h4/test/exdriver/exdriver_pio/group
+/os/boardsupport/omaph4/omaph4bsp/h4/test/exdriver/exdriver_pio/inc
+/os/boardsupport/omaph4/omaph4bsp/h4/test/exdriver/exdriver_pio/src
+/os/boardsupport/omaph4/omaph4bsp/h4/test/exdriver/exdriver_sync/group
+/os/boardsupport/omaph4/omaph4bsp/h4/test/exdriver/exdriver_sync/inc
+/os/boardsupport/omaph4/omaph4bsp/h4/test/exdriver/exdriver_sync/src
+/os/boardsupport/omaph4/omaph4bsp/h4/test/group
+/os/boardsupport/omaph4/omaph4bsp/h4/test/lcd
+/os/boardsupport/omaph4/omaph4bsp/h4/test/serial
+/os/boardsupport/omaph4/omaph4bsp/h4/test/sound
+/os/boardsupport/omaph4/omaph4bsp/h4/tvout
+/os/boardsupport/omaph4/omaph4bsp/h4/uart
+/os/boardsupport/omaph4/omaph4bsp/h4/usb
+/os/boardsupport/omaph4/h4bootloader/inc
+/os/boardsupport/omaph4/omaph4minienvbootloader/bootstrap
+/os/boardsupport/omaph4/omaph4minienvbootloader/estart
+/os/boardsupport/omaph4/omaph4minienvbootloader/inc
+/os/boardsupport/omaph4/omaph4minienvbootloader/restartota
+/os/boardsupport/omaph4/omaph4minienvbootloader/rom
+/os/boardsupport/omaph4/omaph4minienvbootloader/ubootldr
+/os/boardsupport/omaph4/omaph4sdio
+/os/boardsupport/omaph4/omaph4unistore2/drivers/crashflashnandh4
+/os/boardsupport/omaph4/omaph4unistore2/drivers/h4ons
+/os/boardsupport/omaph4/omaph4unistore2/drivers/h4pnss
+/os/boardsupport/omaph4/omaph4unistore2/estart
+/os/boardsupport/omaph4/omaph4unistore2/nandboot/coreldr_smallblk
+/os/boardsupport/omaph4/omaph4unistore2/nandboot/miniboot_onenand
+/os/boardsupport/omaph4/omaph4unistore2/rom
+/os/boardsupport/omaph4/omapusbhotgdrivers/hcd/dev/usb
+/os/boardsupport/omaph4/omapusbhotgdrivers/include
+/os/boardsupport/omaph4/omapusbhotgdrivers/ocd
+/os/boardsupport/omaph4/omapusbhotgdrivers/shared
+/os/boardsupport/omaph4/omapusbhotgdrivers/tcd
+/os/boardsupport/omaph4/omaph4bsp/shared/bootstrap
+/os/boardsupport/omaph4/omaph4bsp/shared/cameraldd
+/os/boardsupport/omaph4/omaph4bsp/shared/cirq
+/os/boardsupport/omaph4/omaph4bsp/shared/digitizer
+/os/boardsupport/omaph4/omaph4bsp/shared/dma
+/os/boardsupport/omaph4/omaph4bsp/shared/ecommdmaldd
+/os/boardsupport/omaph4/omaph4bsp/shared/edisp
+/os/boardsupport/omaph4/omaph4bsp/shared/ethernet
+/os/boardsupport/omaph4/omaph4bsp/shared/fibula
+/os/boardsupport/omaph4/omaph4bsp/shared/fpga
+/os/boardsupport/omaph4/omaph4bsp/shared/gpio
+/os/boardsupport/omaph4/omaph4bsp/shared/gpioexpander
+/os/boardsupport/omaph4/omaph4bsp/shared/hsusb
+/os/boardsupport/omaph4/omaph4bsp/shared/i2c
+/os/boardsupport/omaph4/omaph4bsp/shared/i2c_slave
+/os/boardsupport/omaph4/omaph4bsp/shared/inc
+/os/boardsupport/omaph4/omaph4bsp/shared/isp1301
+/os/boardsupport/omaph4/omaph4bsp/shared/keypad
+/os/boardsupport/omaph4/omaph4bsp/shared/keytran
+/os/boardsupport/omaph4/omaph4bsp/shared/lcd
+/os/boardsupport/omaph4/omaph4bsp/shared/lffs_nor
+/os/boardsupport/omaph4/omaph4bsp/shared/mcspi
+/os/boardsupport/omaph4/omaph4bsp/shared/menelaus
+/os/boardsupport/omaph4/omaph4bsp/shared/mmc
+/os/boardsupport/omaph4/omaph4bsp/shared/monitor
+/os/boardsupport/omaph4/omaph4bsp/shared/nandcs
+/os/boardsupport/omaph4/omaph4bsp/shared/power
+/os/boardsupport/omaph4/omaph4bsp/shared/powerapi
+/os/boardsupport/omaph4/omaph4bsp/shared/ps2keyboard
+/os/boardsupport/omaph4/omaph4bsp/shared/rebootdrv
+/os/boardsupport/omaph4/omaph4bsp/shared/serialkeyboard
+/os/boardsupport/omaph4/omaph4bsp/shared/sound
+/os/boardsupport/omaph4/omaph4bsp/shared/sound_sc
+/os/boardsupport/omaph4/omaph4bsp/shared/splashscreen
+/os/boardsupport/omaph4/omaph4bsp/shared/timer
+/os/boardsupport/omaph4/omaph4bsp/shared/uarts
+/os/boardsupport/omaph4/omaph4bsp/shared/usb
+/os/boardsupport/omaph4/omaph4bsp/shared/watchdog
+/os/boardsupport/omaph4/omaph4bsp/tests/armaudio
+/os/boardsupport/omaph4/omaph4bsp/tests/audiocodec
+/os/boardsupport/omaph4/omaph4bsp/tests/group
+/os/boardsupport/omaph4/omaph4bsp/tools/bootloader
+/os/boardsupport/omaph4/omaph4bsp/tools/testreference/lauterbach
+/os/boardsupport/assabet/strongarm1100assp/bmarm
+/os/boardsupport/assabet/strongarm1100assp/eabi
+/os/kernelhwsrv/driversupport/socassp/generic
+/os/kernelhwsrv/driversupport/socassp/interface/SDCard/sdcard3c
+/os/kernelhwsrv/driversupport/socassp/interface/SDCard/sdcard4c
+/os/unref/orphan/cedgen/base/template/template_assp/bmarm
+/os/unref/orphan/cedgen/base/template/template_assp/eabi
+/os/shortlinksrv/usbbsptemplate/usbhostcntrldrivertemplate/hcd/dev/usb
+/os/shortlinksrv/usbbsptemplate/usbhostcntrldrivertemplate/include
+/os/shortlinksrv/usbbsptemplate/usbhostcntrldrivertemplate/ocd
+/os/shortlinksrv/usbbsptemplate/usbhostcntrldrivertemplate/shared
+/os/shortlinksrv/usbbsptemplate/usbhostcntrldrivertemplate/tcd
+/os/kernelhwsrv/bsptemplate/asspandvariant/bmarm
+/os/kernelhwsrv/bsptemplate/asspandvariant/bootstrap
+/os/kernelhwsrv/bsptemplate/asspandvariant/eabi
+/os/kernelhwsrv/bsptemplate/asspandvariant/hal
+/os/kernelhwsrv/bsptemplate/asspandvariant/inc
+/os/kernelhwsrv/bsptemplate/asspandvariant/replacement_utils
+/os/kernelhwsrv/bsptemplate/asspandvariant/rom
+/os/kernelhwsrv/bsptemplate/asspandvariant/specific
+/os/kernelhwsrv/bsptemplate/asspandvariant/test
+/os/boardsupport/omap3variants/tiomap3bsp/assp/common/assp
+/os/boardsupport/omap3variants/tiomap3bsp/assp/common/bitblt
+/os/boardsupport/omap3variants/tiomap3bsp/assp/common/bootstrap
+/os/boardsupport/omap3variants/tiomap3bsp/assp/common/camera
+/os/boardsupport/omap3variants/tiomap3bsp/assp/common/cirq
+/os/boardsupport/omap3variants/tiomap3bsp/assp/common/dma
+/os/boardsupport/omap3variants/tiomap3bsp/assp/common/eabi
+/os/boardsupport/omap3variants/tiomap3bsp/assp/common/gpio
+/os/boardsupport/omap3variants/tiomap3bsp/assp/common/hdq
+/os/boardsupport/omap3variants/tiomap3bsp/assp/common/hsmmc
+/os/boardsupport/omap3variants/tiomap3bsp/assp/common/hsusb
+/os/boardsupport/omap3variants/tiomap3bsp/assp/common/i2c
+/os/boardsupport/omap3variants/tiomap3bsp/assp/common/i2c_slave
+/os/boardsupport/omap3variants/tiomap3bsp/assp/common/inc
+/os/boardsupport/omap3variants/tiomap3bsp/assp/common/interrupt
+/os/boardsupport/omap3variants/tiomap3bsp/assp/common/isp
+/os/boardsupport/omap3variants/tiomap3bsp/assp/common/lcd
+/os/boardsupport/omap3variants/tiomap3bsp/assp/common/lffs_nor
+/os/boardsupport/omap3variants/tiomap3bsp/assp/common/mcbsp1
+/os/boardsupport/omap3variants/tiomap3bsp/assp/common/mcspi
+/os/boardsupport/omap3variants/tiomap3bsp/assp/common/nandboot
+/os/boardsupport/omap3variants/tiomap3bsp/assp/common/nandboot/coreldr_largeblk
+/os/boardsupport/omap3variants/tiomap3bsp/assp/common/policyclient
+/os/boardsupport/omap3variants/tiomap3bsp/assp/common/policymanager
+/os/boardsupport/omap3variants/tiomap3bsp/assp/common/policymanagerldd
+/os/boardsupport/omap3variants/tiomap3bsp/assp/common/policyserver
+/os/boardsupport/omap3variants/tiomap3bsp/assp/common/policyworkpredictor
+/os/boardsupport/omap3variants/tiomap3bsp/assp/common/power
+/os/boardsupport/omap3variants/tiomap3bsp/assp/common/profiler
+/os/boardsupport/omap3variants/tiomap3bsp/assp/common/rebootdrv
+/os/boardsupport/omap3variants/tiomap3bsp/assp/common/resourcemanager
+/os/boardsupport/omap3variants/tiomap3bsp/assp/common/smartreflex
+/os/boardsupport/omap3variants/tiomap3bsp/assp/common/spi
+/os/boardsupport/omap3variants/tiomap3bsp/assp/common/timer
+/os/boardsupport/omap3variants/tiomap3bsp/assp/common/uart
+/os/boardsupport/omap3variants/tiomap3bsp/assp/common/unistore2
+/os/boardsupport/omap3variants/tiomap3bsp/assp/common/unistore2/drivers
+/os/boardsupport/omap3variants/tiomap3bsp/assp/common/unistore2/drivers/h4pnl
+/os/boardsupport/omap3variants/tiomap3bsp/assp/common/watchdog
+/os/boardsupport/omap3variants/tiomap3bsp/tools/testreference/lauterbach
+/os/boardsupport/omap3variants/tiomap3bsp/variant/34xx_sdp/34xx_sdp_bootloader/inc
+/os/boardsupport/omap3variants/tiomap3bsp/variant/34xx_sdp/bootstrap
+/os/boardsupport/omap3variants/tiomap3bsp/variant/34xx_sdp/eabi
+/os/boardsupport/omap3variants/tiomap3bsp/variant/34xx_sdp/estart
+/os/boardsupport/omap3variants/tiomap3bsp/variant/34xx_sdp/inc
+/os/boardsupport/omap3variants/tiomap3bsp/variant/34xx_sdp/lffs_nor
+/os/boardsupport/omap3variants/tiomap3bsp/variant/34xx_sdp/nand
+/os/boardsupport/omap3variants/tiomap3bsp/variant/34xx_sdp/rom
+/os/boardsupport/omap3variants/tiomap3bsp/variant/34xx_sdp/serialno
+/os/boardsupport/omap3variants/tiomap3bsp/variant/34xx_sdp/specific
+/os/boardsupport/omap3variants/tiomap3bsp/variant/34xx_sdp/test/e32test
+/os/boardsupport/omap3variants/tiomap3bsp/variant/34xx_sdp/test/gce
+/os/boardsupport/omap3variants/tiomap3bsp/variant/34xx_sdp/test/group
+/os/boardsupport/omap3variants/tiomap3bsp/variant/34xx_sdp_restricted/unistore2/drivers/h4pnl
+/os/boardsupport/omap3variants/tiomap3bsp/variant/34xx_sdp_restricted/unistore2/estart
+/os/boardsupport/omap3variants/tiomap3bsp/variant/34xx_sdp_restricted/unistore2/nandboot/coreldr_largeblk
+/os/boardsupport/omap3variants/tiomap3bsp/variant/34xx_sdp_restricted/unistore2/rom
+/os/boardsupport/omap3variants/tiomap3bsp/variant/common/audiocodecldd
+/os/boardsupport/omap3variants/tiomap3bsp/variant/common/bp_trace
+/os/boardsupport/omap3variants/tiomap3bsp/variant/common/bufmgr
+/os/boardsupport/omap3variants/tiomap3bsp/variant/common/bufmgrldd
+/os/boardsupport/omap3variants/tiomap3bsp/variant/common/camera
+/os/boardsupport/omap3variants/tiomap3bsp/variant/common/camerasc
+/os/boardsupport/omap3variants/tiomap3bsp/variant/common/camsensor
+/os/boardsupport/omap3variants/tiomap3bsp/variant/common/crashflash/group
+/os/boardsupport/omap3variants/tiomap3bsp/variant/common/crashflash/inc
+/os/boardsupport/omap3variants/tiomap3bsp/variant/common/crashflash/src
+/os/boardsupport/omap3variants/tiomap3bsp/variant/common/digitizer
+/os/boardsupport/omap3variants/tiomap3bsp/variant/common/ecommdmaldd
+/os/boardsupport/omap3variants/tiomap3bsp/variant/common/edisp
+/os/boardsupport/omap3variants/tiomap3bsp/variant/common/ethernet
+/os/boardsupport/omap3variants/tiomap3bsp/variant/common/fpga
+/os/boardsupport/omap3variants/tiomap3bsp/variant/common/gce
+/os/boardsupport/omap3variants/tiomap3bsp/variant/common/hal
+/os/boardsupport/omap3variants/tiomap3bsp/variant/common/hsmmc
+/os/boardsupport/omap3variants/tiomap3bsp/variant/common/hsusb
+/os/boardsupport/omap3variants/tiomap3bsp/variant/common/inc
+/os/boardsupport/omap3variants/tiomap3bsp/variant/common/isp
+/os/boardsupport/omap3variants/tiomap3bsp/variant/common/keypad
+/os/boardsupport/omap3variants/tiomap3bsp/variant/common/keytran
+/os/boardsupport/omap3variants/tiomap3bsp/variant/common/lcd
+/os/boardsupport/omap3variants/tiomap3bsp/variant/common/lffs_nor
+/os/boardsupport/omap3variants/tiomap3bsp/variant/common/monitor
+/os/boardsupport/omap3variants/tiomap3bsp/variant/common/policymanager
+/os/boardsupport/omap3variants/tiomap3bsp/variant/common/policyserver
+/os/boardsupport/omap3variants/tiomap3bsp/variant/common/policysyscontroller
+/os/boardsupport/omap3variants/tiomap3bsp/variant/common/power
+/os/boardsupport/omap3variants/tiomap3bsp/variant/common/poweric/bci
+/os/boardsupport/omap3variants/tiomap3bsp/variant/common/poweric/bcildd
+/os/boardsupport/omap3variants/tiomap3bsp/variant/common/poweric/framework
+/os/boardsupport/omap3variants/tiomap3bsp/variant/common/poweric/gpio
+/os/boardsupport/omap3variants/tiomap3bsp/variant/common/poweric/keypad
+/os/boardsupport/omap3variants/tiomap3bsp/variant/common/poweric/led
+/os/boardsupport/omap3variants/tiomap3bsp/variant/common/poweric/madc
+/os/boardsupport/omap3variants/tiomap3bsp/variant/common/poweric/power
+/os/boardsupport/omap3variants/tiomap3bsp/variant/common/poweric/rtc
+/os/boardsupport/omap3variants/tiomap3bsp/variant/common/poweric/thermal
+/os/boardsupport/omap3variants/tiomap3bsp/variant/common/poweric/usb
+/os/boardsupport/omap3variants/tiomap3bsp/variant/common/poweric/vibrator
+/os/boardsupport/omap3variants/tiomap3bsp/variant/common/ps2keyboard
+/os/boardsupport/omap3variants/tiomap3bsp/variant/common/resourcemanager
+/os/boardsupport/omap3variants/tiomap3bsp/variant/common/serialKeyboard
+/os/boardsupport/omap3variants/tiomap3bsp/variant/common/server
+/os/boardsupport/omap3variants/tiomap3bsp/variant/common/smartreflex
+/os/boardsupport/omap3variants/tiomap3bsp/variant/common/sound
+/os/boardsupport/omap3variants/tiomap3bsp/variant/common/soundsc
+/os/boardsupport/omap3variants/tiomap3bsp/variant/common/uart
+/os/boardsupport/omap3variants/tiomap3bsp/variant/common/usbho/hcd/dev/usb
+/os/boardsupport/omap3variants/tiomap3bsp/variant/common/usbho/include
+/os/boardsupport/omap3variants/tiomap3bsp/variant/common/usbho/ocd
+/os/boardsupport/omap3variants/tiomap3bsp/variant/common/usbho/shared
+/os/boardsupport/omap3variants/tiomap3bsp/variant/common/usbho/tcd
+/os/kernelhwsrv/brdbootldr/ubootldr/inc
+/os/kernelhwsrv/brdbootldr/ubootldr/ubootldrldd
+/os/kernelhwsrv/baseintegtests/baseintegrationtest/group
+/os/kernelhwsrv/baseintegtests/baseintegrationtest/testsuites/common/basedump/group
+/os/kernelhwsrv/baseintegtests/baseintegrationtest/testsuites/common/basedump/src
+/os/kernelhwsrv/baseintegtests/baseintegrationtest/testsuites/fat32/documentation
+/os/kernelhwsrv/baseintegtests/baseintegrationtest/testsuites/fat32/group
+/os/kernelhwsrv/baseintegtests/baseintegrationtest/testsuites/fat32/inc
+/os/kernelhwsrv/baseintegtests/baseintegrationtest/testsuites/fat32/scripts
+/os/kernelhwsrv/baseintegtests/baseintegrationtest/testsuites/fat32/src
+/os/kernelhwsrv/baseintegtests/baseintegrationtest/testsuites/fat32/testdata
+/os/kernelhwsrv/baseintegtests/baseintegrationtest/testsuites/sd/documentation
+/os/kernelhwsrv/baseintegtests/baseintegrationtest/testsuites/sd/group
+/os/kernelhwsrv/baseintegtests/baseintegrationtest/testsuites/sd/inc
+/os/kernelhwsrv/baseintegtests/baseintegrationtest/testsuites/sd/scripts
+/os/kernelhwsrv/baseintegtests/baseintegrationtest/testsuites/sd/src
+/os/kernelhwsrv/baseintegtests/baseintegrationtest/testsuites/sd/testdata
+/os/unref/orphan/cedgen/documentation/CopiedReferences/Downloads
+/os/unref/orphan/cedgen/documentation/CopiedReferences/OSI-samples
+/os/unref/orphan/cedgen/documentation/CopiedReferences/Subsystems/Base
+/os/unref/orphan/cedgen/documentation/deps/Components/depinfo
+/os/unref/orphan/cedgen/documentation/deps/Components/graphs
+/os/unref/orphan/cedgen/documentation/deps/Executables/depinfo
+/os/unref/orphan/cedgen/documentation/deps/Executables/graphs
+/os/unref/orphan/cedgen/documentation/deps/Subsystems/depinfo
+/os/unref/orphan/cedgen/documentation/deps/Subsystems/graphs
+/os/unref/orphan/cedgen/documentation/deps/modarch
+/os/buildtools/toolsandutils/buildsystem/bin/java
+/os/buildtools/toolsandutils/buildsystem/extension/app-services
+/os/buildtools/toolsandutils/buildsystem/extension/application-protocols
+/os/buildtools/toolsandutils/buildsystem/extension/base
+/os/buildtools/toolsandutils/buildsystem/extension/converged-comms
+/os/buildtools/toolsandutils/buildsystem/extension/graphics
+/os/buildtools/toolsandutils/buildsystem/extension/security
+/os/buildtools/toolsandutils/buildsystem/extension/syslibs/test
+/os/buildtools/toolsandutils/buildsystem/extension/techview
+/os/buildtools/toolsandutils/buildsystem/extension/tools
+/os/buildtools/toolsandutils/buildsystem/shell
+/os/buildtools/toolsandutils/buildsystem/test/binaryvariation
+/os/buildtools/toolsandutils/buildsystem/test/extensions
+/os/buildtools/toolsandutils/buildsystem/test/helloworld
+/os/buildtools/toolsandutils/buildsystem/tools/buildloggers/group
+/os/buildtools/toolsandutils/buildsystem/tools/buildloggers/src/com/symbian/ant
+/os/buildtools/devlib/toolsdocs/design
+/os/buildtools/devlib/toolsdocs/test
+/os/buildtools/sbsv1_os/e32toolp/binutils
+/os/buildtools/sbsv1_os/e32toolp/bldmake
+/os/buildtools/sbsv1_os/e32toolp/design
+/os/buildtools/sbsv1_os/e32toolp/docs
+/os/buildtools/sbsv1_os/e32toolp/e32util
+/os/buildtools/sbsv1_os/e32toolp/genutil
+/os/buildtools/sbsv1_os/e32toolp/group
+/os/buildtools/sbsv1_os/e32toolp/kif/group
+/os/buildtools/sbsv1_os/e32toolp/kif/perl
+/os/buildtools/sbsv1_os/e32toolp/makmake
+/os/buildtools/sbsv1_os/e32toolp/maksym
+/os/buildtools/sbsv1_os/e32toolp/memtrace
+/os/buildtools/sbsv1_os/e32toolp/platform
+/os/buildtools/sbsv1_os/e32toolp/test/featurevariantmap/inc_jack
+/os/buildtools/sbsv1_os/e32toolp/test/featurevariantmap/inc_noel
+/os/buildtools/sbsv1_os/e32toolp/test/featurevariantparser
+/os/buildtools/sbsv1_os/e32toolp/toolinfo
+/os/buildtools/toolsandutils/e32tools/bin2coff
+/os/buildtools/toolsandutils/e32tools/checklib/library
+/os/buildtools/toolsandutils/e32tools/checklib/misc
+/os/buildtools/toolsandutils/e32tools/checklib/object/coff
+/os/buildtools/toolsandutils/e32tools/checklib/object/elf
+/os/buildtools/toolsandutils/e32tools/checklib/tag
+/os/buildtools/toolsandutils/e32tools/compress
+/os/buildtools/toolsandutils/e32tools/ddesign
+/os/buildtools/toolsandutils/e32tools/docs
+/os/buildtools/toolsandutils/e32tools/dspec
+/os/buildtools/toolsandutils/e32tools/e32image/deflate
+/os/buildtools/toolsandutils/e32tools/e32uid
+/os/buildtools/toolsandutils/e32tools/elf2e32/group
+/os/buildtools/toolsandutils/e32tools/elf2e32/include
+/os/buildtools/toolsandutils/e32tools/elf2e32/source
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Compression
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration1/BatchFiles
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration1/TestData/StaticLinker
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration1/TestData/Valid
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration1/TestData/invalid
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration1/TestData/mmps/1
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration1/TestData/mmps/2
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration1/TestData/mmps/3
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration1/TestData/mmps/4
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration1/TestData/mmps/5
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration1/TestData/mmps/6
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration1/TestData/mmps/eabi
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration10/TestData/input/invalid
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration10/TestData/input/valid
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration11/TestData/mmps/dfpaeabi
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration11/TestData/mmps/dfprvct2_2
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration11/TestData/mmps/drtaeabi
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration11/TestData/mmps/drtrvct2_2
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration11/TestData/mmps/scppnwdl
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration11/TestData/mmps/symaehabi
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration2/TestData/input/invalid
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration2/TestData/mmps/ExportImport/inc
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration2/TestData/mmps/ExportImport/src
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration2/TestData/mmps/Noexpimp/inc
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration2/TestData/mmps/Noexpimp/src
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration2/TestData/mmps/OE1Virtual/inc
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration2/TestData/mmps/OE1Virtual/src
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration2/TestData/mmps/OnlyExports/inc
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration2/TestData/mmps/OnlyExports/src
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration2/TestData/mmps/OnlyImports/inc
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration2/TestData/mmps/OnlyImports/src
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration2/TestData/mmps/heapsize/inc
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration2/TestData/mmps/heapsize/src
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration2/TestData/mmps/invalid/1
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration2/TestData/mmps/invalid/10
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration2/TestData/mmps/invalid/11/inc
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration2/TestData/mmps/invalid/11/src
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration2/TestData/mmps/invalid/12/inc
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration2/TestData/mmps/invalid/12/src
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration2/TestData/mmps/invalid/13/inc
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration2/TestData/mmps/invalid/13/src
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration2/TestData/mmps/invalid/2
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration2/TestData/mmps/invalid/3
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration2/TestData/mmps/invalid/4
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration2/TestData/mmps/invalid/5
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration2/TestData/mmps/invalid/6
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration2/TestData/mmps/invalid/7
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration2/TestData/mmps/invalid/9
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration2/TestData/mmps/invalid/test24.4/src
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration2/TestData/mmps/noexports/inc
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration2/TestData/mmps/noexports/src
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration2/TestData/mmps/novendorid
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration2/TestData/mmps/test/inc
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration2/TestData/mmps/test/src
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration3/TestData/input
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration3/TestData/mmps/Identical/inc
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration3/TestData/mmps/Identical/src
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration3/TestData/mmps/absent/inc
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration3/TestData/mmps/absent/src
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration3/TestData/mmps/invalid/11/inc
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration3/TestData/mmps/invalid/11/src
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration3/TestData/mmps/invalid/12/inc
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration3/TestData/mmps/invalid/12/src
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration3/TestData/mmps/missing/inc
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration3/TestData/mmps/missing/src
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration3/TestData/mmps/new/inc
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration3/TestData/mmps/new/src
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration3/TestData/mmps/noabsent/inc
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration3/TestData/mmps/noabsent/src
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration3/TestData/mmps/noexports/inc
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration3/TestData/mmps/noexports/src
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration3/TestData/mmps/testI3/inc
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration3/TestData/mmps/testI3/src
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration4/BatchFiles
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration4/TestData/input/invalid
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration4/TestData/mmps/ExeExp/inc
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration4/TestData/mmps/ExeExp/src
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration4/TestData/mmps/ExeExpImp/inc
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration4/TestData/mmps/ExeExpImp/src
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration4/TestData/mmps/ExeImp/inc
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration4/TestData/mmps/ExeImp/src
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration4/TestData/mmps/TestExe/inc
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration4/TestData/mmps/TestExe/src
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration4/TestData/mmps/invalid/13/inc
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration4/TestData/mmps/invalid/13/src
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration5/BatchFiles
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration5/TestData/input/invalid
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration5/TestData/mmps/1
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration5/TestData/mmps/4
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration5/TestData/mmps/5
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration5/TestData/mmps/6
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration5/TestData/mmps/7
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration5/TestData/mmps/TestExe/inc
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration5/TestData/mmps/TestExe/src
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration5/TestData/mmps/exeuse/eabi
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration5/TestData/mmps/exeuse/usedll
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration5/TestData/mmps/exp
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration5/TestData/mmps/expimp
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration5/TestData/mmps/imp
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration5/TestData/mmps/invalid
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration5/TestData/mmps/noexp
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration5/TestData/mmps/test
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration6/BatchFiles
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration6/TestData/mmps/ExeExp/inc
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration6/TestData/mmps/ExeExp/src
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration6/TestData/mmps/ExeExpImp/inc
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration6/TestData/mmps/ExeExpImp/src
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration6/TestData/mmps/ExeImp/inc
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration6/TestData/mmps/ExeImp/src
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration6/TestData/mmps/TestExe/inc
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration6/TestData/mmps/TestExe/src
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration6/TestData/mmps/exeuse/eabi
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration6/TestData/mmps/exeuse/useexexp
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration6/TestData/mmps/test
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration6/TestData/mmps/testinv
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration7/BatchFiles
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration7/TestData/input
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration7/TestData/mmps/RAbsentNp
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration7/TestData/mmps/RAbsentP
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration7/TestData/mmps/RExeExp/inc
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration7/TestData/mmps/RExeExp/src
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration7/TestData/mmps/RExeExpImp/inc
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration7/TestData/mmps/RExeExpImp/src
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration7/TestData/mmps/RExeImp/inc
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration7/TestData/mmps/RExeImp/src
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration7/TestData/mmps/RIdentical
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration7/TestData/mmps/RInvDef
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration7/TestData/mmps/RNoElfExp
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration7/TestData/mmps/RTestExe/inc
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration7/TestData/mmps/RTestExe/src
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration7/TestData/mmps/Rless
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration7/TestData/mmps/Rmore
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration7/TestData/mmps/Rtest
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration8/TestData/mmps/fAbsentNp
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration8/TestData/mmps/fAbsentP
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration8/TestData/mmps/fIdentical
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration8/TestData/mmps/fInvDef
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration8/TestData/mmps/fless
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration8/TestData/mmps/fmore
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration9/TestData/mmps/1
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration9/TestData/mmps/2
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration9/TestData/mmps/3
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration9/TestData/mmps/4
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration9/TestData/mmps/5
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration9/TestData/mmps/6
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration9/TestData/mmps/7
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration9/TestData/mmps/8
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration9/TestData/mmps/9
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/Iteration9/TestData/mmps/test
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/commandline/BatchFiles
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/commandline/TestData/Input
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/commandline/TestData/deffile
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/commandline/TestData/exedll
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/commandline/TestData/mmps/ExeExp/inc
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/commandline/TestData/mmps/ExeExp/src
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/commandline/TestData/mmps/TestDll
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/commandline/TestData/mmps/TestExe/inc
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/commandline/TestData/mmps/TestExe/src
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/commandline/TestData/mmps/TestPolyDll
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/common/Scripts
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/common/TestData/GenDll2/inc
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/common/TestData/GenDll2/src
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/common/base_results
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/regression/TestData/DEF063447
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/runtest/tests/baseres
+/os/buildtools/toolsandutils/e32tools/elf2e32/test/runtest/tests/subdir
+/os/buildtools/toolsandutils/e32tools/elfdump
+/os/buildtools/toolsandutils/e32tools/elftools/elftran
+/os/buildtools/toolsandutils/e32tools/elftools/genstubs
+/os/buildtools/toolsandutils/e32tools/elftools/getexports
+/os/buildtools/toolsandutils/e32tools/elftools/inc
+/os/buildtools/toolsandutils/e32tools/elftools/test
+/os/buildtools/toolsandutils/e32tools/eruntest
+/os/buildtools/toolsandutils/e32tools/etouch
+/os/buildtools/toolsandutils/e32tools/filesystem/include
+/os/buildtools/toolsandutils/e32tools/filesystem/source
+/os/buildtools/toolsandutils/e32tools/fix_eabi_thunk_offsets
+/os/buildtools/toolsandutils/e32tools/group
+/os/buildtools/toolsandutils/e32tools/host
+/os/buildtools/toolsandutils/e32tools/inc
+/os/buildtools/toolsandutils/e32tools/memmap/include
+/os/buildtools/toolsandutils/e32tools/memmap/source
+/os/buildtools/toolsandutils/e32tools/parameterfileprocessor/include
+/os/buildtools/toolsandutils/e32tools/parameterfileprocessor/source
+/os/buildtools/toolsandutils/e32tools/patchdataprocessor/include
+/os/buildtools/toolsandutils/e32tools/patchdataprocessor/source
+/os/buildtools/toolsandutils/e32tools/pe_dump
+/os/buildtools/toolsandutils/e32tools/pediff
+/os/buildtools/toolsandutils/e32tools/pefile
+/os/buildtools/toolsandutils/e32tools/readimage/inc
+/os/buildtools/toolsandutils/e32tools/readimage/src
+/os/buildtools/toolsandutils/e32tools/readtype/documentation
+/os/buildtools/toolsandutils/e32tools/rofsbuild
+/os/buildtools/toolsandutils/e32tools/rombuild
+/os/buildtools/toolsandutils/e32tools/rommask
+/os/buildtools/toolsandutils/e32tools/seclib
+/os/buildtools/toolsandutils/e32tools/setcap
+/os/buildtools/toolsandutils/e32tools/sisutils/inc
+/os/buildtools/toolsandutils/e32tools/sisutils/src
+/os/buildtools/toolsandutils/e32tools/tools2_test
+/os/buildtools/toolsandutils/e32tools/tranasm
+/os/buildtools/toolsandutils/e32tools/w32repro
+/os/buildtools/toolsandutils/e32tools/wveconv
+/os/buildtools/dist_os/redistributionwinceka2/winc
+/os/buildtools/imgtools_os/romkiteka2/Utils
+/os/buildtools/imgtools_os/romkiteka2/config
+/os/buildtools/imgtools_os/romkiteka2/group
+/os/buildtools/imgtools_os/romkiteka2/include
+/os/buildtools/imgtools_os/romkiteka2/test/incA
+/os/buildtools/imgtools_os/romkiteka2/test/incB
+/os/buildtools/imgtools_os/romkiteka2/test/release/armv5
+/os/buildtools/imgtools_os/romkiteka2/test/release/armv5_abiv1
+/os/buildtools/imgtools_os/romkiteka2/tools/configpaging
+/os/deviceplatformrelease/symbianosbld/cedarutils
+/os/unref/orphan/cedprd/DevKit/PackageDefinitions
+/os/unref/orphan/cedprd/DevKit/SourceDefinitions
+/os/unref/orphan/cedprd/SuppKit/Wi-Fiproduct/Messages
+/os/unref/orphan/cedprd/SuppKit/Wi-Fiproduct/com/symbian/sdk/productinstaller/graphics
+/os/unref/orphan/cedprd/SuppKit/Wi-Fiproduct/group
+/os/unref/orphan/cedprd/SuppKit/Wi-Fiproduct/pkgdef
+/os/unref/orphan/cedprd/SuppKit/XSRproduct/Messages
+/os/unref/orphan/cedprd/SuppKit/XSRproduct/com/symbian/sdk/productinstaller/graphics
+/os/unref/orphan/cedprd/SuppKit/XSRproduct/group
+/os/unref/orphan/cedprd/SuppKit/XSRproduct/pkgdef
+/os/unref/orphan/cedprd/SuppKit/cldchi1.1product/Messages
+/os/unref/orphan/cedprd/SuppKit/cldchi1.1product/com/symbian/sdk/productinstaller/graphics
+/os/unref/orphan/cedprd/SuppKit/cldchi1.1product/group
+/os/unref/orphan/cedprd/SuppKit/cldchi1.1product/pkgdef
+/os/unref/orphan/cedprd/SuppKit/cldchiproduct/Messages
+/os/unref/orphan/cedprd/SuppKit/cldchiproduct/com/symbian/sdk/productinstaller/graphics
+/os/unref/orphan/cedprd/SuppKit/cldchiproduct/group
+/os/unref/orphan/cedprd/SuppKit/cldchiproduct/pkgdef
+/os/unref/orphan/cedprd/SuppKit/javaproduct/Messages
+/os/unref/orphan/cedprd/SuppKit/javaproduct/com/symbian/sdk/productinstaller/graphics
+/os/unref/orphan/cedprd/SuppKit/javaproduct/group
+/os/unref/orphan/cedprd/SuppKit/javaproduct/pkgdef
+/os/unref/orphan/cedprd/SuppKit/midp2.0product/Messages
+/os/unref/orphan/cedprd/SuppKit/midp2.0product/com/symbian/sdk/productinstaller/graphics
+/os/unref/orphan/cedprd/SuppKit/midp2.0product/group
+/os/unref/orphan/cedprd/SuppKit/midp2.0product/pkgdef
+/os/unref/orphan/cedprd/SuppKit/sdcard3cproduct/Messages
+/os/unref/orphan/cedprd/SuppKit/sdcard3cproduct/com/symbian/sdk/productinstaller/graphics
+/os/unref/orphan/cedprd/SuppKit/sdcard3cproduct/group
+/os/unref/orphan/cedprd/SuppKit/sdcard3cproduct/pkgdef
+/os/unref/orphan/cedprd/SuppKit/sdcard4cproduct/Messages
+/os/unref/orphan/cedprd/SuppKit/sdcard4cproduct/com/symbian/sdk/productinstaller/graphics
+/os/unref/orphan/cedprd/SuppKit/sdcard4cproduct/group
+/os/unref/orphan/cedprd/SuppKit/sdcard4cproduct/pkgdef
+/os/unref/orphan/cedprd/TechviewExampleSDK/PackageDefinitions
+/os/unref/orphan/cedprd/TechviewExampleSDK/SourceDefinitions
+/os/unref/orphan/cedprd/custkit/PackageDefinitions
+/os/unref/orphan/cedprd/custkit/SourceDefinitions
+/os/unref/orphan/cedprd/spec
+/os/unref/orphan/cedprd/tools/baseline
+/os/deviceplatformrelease/symbianosbld/productionbldcbrconfig/9.5
+/os/deviceplatformrelease/symbianosbld/productionbldcbrconfig/9.6
+/os/deviceplatformrelease/symbianosbld/productionbldcbrconfig/Future
+/os/unref/orphan/comqi/bin
+/os/unref/orphan/comqi/build_binaries
+/os/unref/orphan/comqi/build_installers/include
+/os/unref/orphan/comqi/build_installers/mRouterInstaller/Documentation
+/os/unref/orphan/comqi/docs/css
+/os/unref/orphan/comqi/docs/howtos
+/os/unref/orphan/comqi/docs/img
+/os/unref/orphan/comqi/docs_licensee_only
+/os/unref/orphan/comqi/output_installers/udeb/mRouter2_IS5
+/os/unref/orphan/comqi/output_installers/udeb/mRouter2_IS7
+/os/unref/orphan/comqi/output_installers/udeb/mRouter3_IS7
+/os/unref/orphan/comqi/output_installers/urel/mRouter2_IS5
+/os/unref/orphan/comqi/output_installers/urel/mRouter2_IS7
+/os/unref/orphan/comqi/output_installers/urel/mRouter3_IS7
+/mw/remoteconn/connectivitypcside/connectqi
+/os/unref/orphan/comqi/source/BAL/Include
+/os/unref/orphan/comqi/source/BAL/SCBALController
+/os/unref/orphan/comqi/source/BAL/SCBALInterface
+/os/unref/orphan/comqi/source/BAL/SCBALMRouter
+/os/unref/orphan/comqi/source/BAL/SCBALNTRAS/res
+/os/unref/orphan/comqi/source/BAL/SCBALSBConnection
+/os/unref/orphan/comqi/source/BAL/Test
+/os/unref/orphan/comqi/source/PCTest/ClientTestApp
+/os/unref/orphan/comqi/source/PCTest/PcConnectTestClient
+/os/unref/orphan/comqi/source/SCOM/SoftwareInstall/Design
+/os/unref/orphan/comqi/source/SCOM/SymbianConnectRuntime
+/os/unref/orphan/comqi/source/SCOM/test/PCConnectTH/Documentation
+/os/unref/orphan/comqi/source/SCOM/test/PCConnectTH/Scripts/BackupAndRestore/common
+/os/unref/orphan/comqi/source/SCOM/test/PCConnectTH/Scripts/BackupAndRestore/secure
+/os/unref/orphan/comqi/source/SCOM/test/PCConnectTH/Scripts/CommonIncludes
+/os/unref/orphan/comqi/source/SCOM/test/PCConnectTH/Scripts/Development/common
+/os/unref/orphan/comqi/source/SCOM/test/PCConnectTH/Scripts/DeviceManagement/common
+/os/unref/orphan/comqi/source/SCOM/test/PCConnectTH/Scripts/Manual/documentation
+/os/unref/orphan/comqi/source/SCOM/test/PCConnectTH/Scripts/PreTestRun
+/os/unref/orphan/comqi/source/SCOM/test/PCConnectTH/Scripts/Rejected/Rejectedtests
+/os/unref/orphan/comqi/source/SCOM/test/PCConnectTH/Scripts/RemoteFileManagement/common
+/os/unref/orphan/comqi/source/SCOM/test/PCConnectTH/Scripts/RemoteFileManagement/secure
+/os/unref/orphan/comqi/source/SCOM/test/PCConnectTH/Scripts/Services/common
+/os/unref/orphan/comqi/source/SCOM/test/PCConnectTH/Scripts/SoftwareInstall/common
+/os/unref/orphan/comqi/source/SCOM/test/PCConnectTH/Scripts/SoftwareInstall/secure
+/os/unref/orphan/comqi/source/SCOM/test/PCConnectTH/Scripts/SoftwareInstall/unsecure
+/os/unref/orphan/comqi/source/SCOM/test/PCConnectTH/Scripts/TestConfigurations
+/os/unref/orphan/comqi/source/SCOM/test/PCConnectTH/Setup/Java Files
+/os/unref/orphan/comqi/source/SCOM/test/PCConnectTH/Setup/SIS Files/PKG Files
+/os/unref/orphan/comqi/source/SCOM/test/PCConnectTH/Setup/SIS Files/secure/armv5
+/os/unref/orphan/comqi/source/SCOM/test/PCConnectTH/Setup/SIS Files/secure/winscw
+/os/unref/orphan/comqi/source/SCOM/test/PCConnectTH/Setup/SIS Files/unsecure/armv4
+/os/unref/orphan/comqi/source/SCOM/test/PCConnectTH/Setup/SIS Files/unsecure/armv5
+/os/unref/orphan/comqi/source/SCOM/test/PCConnectTH/Setup/SIS Files/unsecure/winscw
+/os/unref/orphan/comqi/source/SCOM/test/PCConnectTH/Setup/Test Files
+/os/unref/orphan/comqi/source/SCOM/test/PCConnectTH/res
+/os/unref/orphan/comqi/source/SDK/AppManager/AppManagerShellExt
+/os/unref/orphan/comqi/source/SDK/AppManager/res
+/os/unref/orphan/comqi/source/SDK/BALAuthenticator
+/os/unref/orphan/comqi/source/SDK/BALClient/VB
+/os/unref/orphan/comqi/source/SDK/BALClient/VC/res
+/os/unref/orphan/comqi/source/SDK/BackupApp/res
+/os/unref/orphan/comqi/source/SDK/BackupApp2/res
+/os/unref/orphan/comqi/source/SDK/BackupArchiveBrowser
+/os/unref/orphan/comqi/source/SDK/CmdLineScomClients
+/os/unref/orphan/comqi/source/SDK/DeviceStorageBrowser
+/os/unref/orphan/comqi/source/SDK/RestoreApp/res
+/os/unref/orphan/comqi/source/SDK/RestoreApp2/res
+/os/unref/orphan/comqi/source/SDK/SymbianExampleFileBrowser
+/os/unref/orphan/comqi/source/SDK/SymbianExampleFileBrowserRes/res
+/os/unref/orphan/comqi/source/SDK/SyncMLTest/res
+/os/unref/orphan/comqi/source/SDK/TestUI
+/os/unref/orphan/comqi/source/SDK/TimeIsSyncTest/res
+/os/unref/orphan/comqi/source/SDK/VBScripts
+/os/unref/orphan/comqi/source/Shared/Logger/ErrorLogger/RES
+/os/unref/orphan/comqi/source/Shared/MfcUtilSrc
+/os/unref/orphan/comqi/source/Shared/Misc
+/os/unref/orphan/comqi/source/Shared/WSwitch
+/os/unref/orphan/comqi/source/Shared/md5
+/os/unref/orphan/comqi/source/Shared/zlib
+/os/unref/orphan/comqi/source/SyncMLInitiate
+/os/unref/orphan/comqi/source/docs/apidocs
+/os/unref/orphan/comqi/source/docs/build
+/os/unref/orphan/comqi/source/docs/img
+/os/unref/orphan/comqi/tools/SetVersionInfo/source
+/os/unref/orphan/comqi/tools/nsis/Bin
+/os/unref/orphan/comqi/tools/nsis/Contrib/AdvSplash
+/os/unref/orphan/comqi/tools/nsis/Contrib/Banner
+/os/unref/orphan/comqi/tools/nsis/Contrib/BgImage
+/os/unref/orphan/comqi/tools/nsis/Contrib/Dialer
+/os/unref/orphan/comqi/tools/nsis/Contrib/ExDLL
+/os/unref/orphan/comqi/tools/nsis/Contrib/Graphics/Checks
+/os/unref/orphan/comqi/tools/nsis/Contrib/Graphics/Header
+/os/unref/orphan/comqi/tools/nsis/Contrib/Graphics/Icons
+/os/unref/orphan/comqi/tools/nsis/Contrib/Graphics/Wizard
+/os/unref/orphan/comqi/tools/nsis/Contrib/InstallOptions
+/os/unref/orphan/comqi/tools/nsis/Contrib/LangDLL
+/os/unref/orphan/comqi/tools/nsis/Contrib/Language files
+/os/unref/orphan/comqi/tools/nsis/Contrib/Library/LibraryLocal
+/os/unref/orphan/comqi/tools/nsis/Contrib/Library/RegTool
+/os/unref/orphan/comqi/tools/nsis/Contrib/Library/TypeLib
+/os/unref/orphan/comqi/tools/nsis/Contrib/Makensisw
+/os/unref/orphan/comqi/tools/nsis/Contrib/Math/Source
+/os/unref/orphan/comqi/tools/nsis/Contrib/Modern UI/Language files
+/os/unref/orphan/comqi/tools/nsis/Contrib/Modern UI/images
+/os/unref/orphan/comqi/tools/nsis/Contrib/NSISdl
+/os/unref/orphan/comqi/tools/nsis/Contrib/Splash
+/os/unref/orphan/comqi/tools/nsis/Contrib/StartMenu
+/os/unref/orphan/comqi/tools/nsis/Contrib/System/Source
+/os/unref/orphan/comqi/tools/nsis/Contrib/UIs/UI Holder
+/os/unref/orphan/comqi/tools/nsis/Contrib/UserInfo
+/os/unref/orphan/comqi/tools/nsis/Contrib/VPatch/Source/GUI
+/os/unref/orphan/comqi/tools/nsis/Contrib/VPatch/Source/GenPat
+/os/unref/orphan/comqi/tools/nsis/Contrib/VPatch/Source/Plugin
+/os/unref/orphan/comqi/tools/nsis/Contrib/nsExec
+/os/unref/orphan/comqi/tools/nsis/Contrib/zip2exe/zlib
+/os/unref/orphan/comqi/tools/nsis/Examples/Modern UI
+/os/unref/orphan/comqi/tools/nsis/Include
+/os/unref/orphan/comqi/tools/nsis/Menu/images
+/os/unref/orphan/comqi/tools/nsis/Plugins
+/os/unref/orphan/comqi/tools/nsis/Source/7zip/7zip/Common
+/os/unref/orphan/comqi/tools/nsis/Source/7zip/7zip/Compress/LZ/BinTree
+/os/unref/orphan/comqi/tools/nsis/Source/7zip/7zip/Compress/LZMA
+/os/unref/orphan/comqi/tools/nsis/Source/7zip/7zip/Compress/RangeCoder
+/os/unref/orphan/comqi/tools/nsis/Source/7zip/Common
+/os/unref/orphan/comqi/tools/nsis/Source/Tests
+/os/unref/orphan/comqi/tools/nsis/Source/boost/detail
+/os/unref/orphan/comqi/tools/nsis/Source/bzip2
+/os/unref/orphan/comqi/tools/nsis/Source/exehead
+/os/unref/orphan/comqi/tools/nsis/Source/zlib
+/os/unref/orphan/comqi/tools/zip
+/os/buildtools/devlib/devlibhelp/doc_source/A_QuickStart
+/os/buildtools/devlib/devlibhelp/doc_source/AboutKits
+/os/buildtools/devlib/devlibhelp/doc_source/AboutSymbianOSLibrary9.5-SDK/WhatsNewDocSet
+/os/buildtools/devlib/devlibhelp/doc_source/AboutSymbianOSLibrary9.5/WhatsNewDocSet
+/os/buildtools/devlib/devlibhelp/doc_source/BuildDoc/UserGuide/PerformingTheBuild
+/os/buildtools/devlib/devlibhelp/doc_source/CustKit/CBRFilterInstallMaker/CBRFilterTool
+/os/buildtools/devlib/devlibhelp/doc_source/CustKit/CBRFilterInstallMaker/CBRInstallerMaker
+/os/buildtools/devlib/devlibhelp/doc_source/CustKit/DocCustomisation
+/os/buildtools/devlib/devlibhelp/doc_source/CustKit/KitBuilder/Reference
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/EssentialIdioms
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/JavaMIDP/JavaMIDP_Install
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/PartnerIdioms/DeviceStability_files
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/Performance/PerformanceBestPractices_files
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/SecurityGuide95/Partner/Configuration
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/SecurityGuide95/Partner/CryptoTokenFramework
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/SecurityGuide95/Public/Architecture
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/SecurityGuide95/Public/CertMan/UnifiedStores
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/SecurityGuide95/Public/Crypto/Hash
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/SecurityGuide95/Public/Crypto/RNG
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/SecurityGuide95/Public/SecurityOverview
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/SecurityGuide95/Public/UPS
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/SysArchDepModel/System_Architecture_Overview_files
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp-intro
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ApplicationEngines/Calendar
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ApplicationEngines/CalendarSDK
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ApplicationEngines/PIMoverview
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ApplicationEngines/agnmodel
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ApplicationEngines/cntmodel/ContactsModelGuide
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ApplicationEngines/cntmodel/MigrationGuide
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ApplicationFramework/ConverterArchitecture/UsingCA
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ApplicationFramework/ConverterArchitecture/WritingConverters
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ApplicationFramework/PrintFrameworkGuide
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ApplicationFramework/TextAndTextAttributes/TextAndTextAttributesGuide1
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ApplicationFramework/TextAndTextAttributes/TextAndTextAttributesGuide2
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ApplicationFramework/TextViewsGuide/TextViewsGuide1
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ApplicationFramework/TextViewsGuide/TextViewsGuide2
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ApplicationFramework/UIControlFrameworkGuide/UIControlFrameworkGuide2
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ApplicationFramework/UIControlFrameworkGuide/UIControlFrameworkGuide3
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ApplicationFramework/UIControlFrameworkGuide/UIControlFrameworkGuide4
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ApplicationFramework/UIControlFrameworkGuide/VisoDiagrams
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ApplicationFramework/animation
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ApplicationFramework/apparc
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ApplicationFramework/apparc-pp
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ApplicationFramework/apparc-serverapps
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ApplicationFramework/bmpanim
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ApplicationFramework/clock
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ApplicationFramework/egul
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ApplicationFramework/emime
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ApplicationFramework/fepbase/FEPHowto
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ApplicationFramework/ssma/ssm
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ApplicationFramework/sysstart
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ApplicationFramework/uikon
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ApplicationProtocols/ApplicationProtocolsIndex/OldGuides95Index
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ApplicationProtocols/ApplicationProtocolsIndex/OldGuides96Index
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ApplicationProtocols/HTTP/HTTPWholeMsgFilter
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ApplicationProtocols/InetProtUtils
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ApplicationProtocols/InetURIList
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ApplicationProtocols/UPnP
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ApplicationServices/AlarmServerGuide
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ApplicationServices/MultipleAlarmNotification
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ApplicationServices/PIMoverview
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ApplicationServices/TzConversion
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ApplicationServices/TzConversionSDK
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ApplicationServices/TzServices
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ApplicationServices/Versit
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ApplicationServices/WorldServerClientSideGuide
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ApplicationServices/calcon
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Base/e32/ArraysAndLists/ArrayKeys
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Base/e32/ArraysAndLists/DoublyLinkedListsGuide
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Base/e32/ArraysAndLists/DynamicArrays/DynamicArraysGuide1
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Base/e32/ArraysAndLists/DynamicArrays/DynamicArraysGuide2
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Base/e32/ArraysAndLists/FixedSizeArrays
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Base/e32/ArraysAndLists/SinglyLinkedListsGuide
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Base/e32/BasicTypes
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Base/e32/BuffersAndStrings/CircularBuffers
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Base/e32/BuffersAndStrings/Descriptors/DescriptorsGuide1
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Base/e32/BuffersAndStrings/Descriptors/DescriptorsGuide2
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Base/e32/BuffersAndStrings/Descriptors/DescriptorsGuide3
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Base/e32/BuffersAndStrings/DynamicBuffers
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Base/e32/BuffersAndStrings/LexicalAnalysis
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Base/e32/BuffersAndStrings/LiteralDescriptors
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Base/e32/BuffersAndStrings/PackageBuffers
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Base/e32/DateAndTimeHandling
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Base/e32/DynamicallyLoadingLinkLibraries
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Base/e32/Handles
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Base/e32/InterProcessCommunication/AsynchronousServicesGuide/AsynchronousServicesGuide1
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Base/e32/InterProcessCommunication/AsynchronousServicesGuide/AsynchronousServicesGuide2
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Base/e32/InterProcessCommunication/AsynchronousServicesGuide/AsynchronousServicesGuide3
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Base/e32/InterProcessCommunication/AsynchronousServicesGuide/AsynchronousServicesGuide4
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Base/e32/InterProcessCommunication/ClientServer/GettingStarted/bwins
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Base/e32/InterProcessCommunication/ClientServer/GettingStarted/eabi
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Base/e32/InterProcessCommunication/ClientServer/GettingStarted/src
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Base/e32/InterProcessCommunication/ClientServer/GettingStarted/test
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Base/e32/InterProcessCommunication/NotificationServices
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Base/e32/LocaleSettings
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Base/e32/Maths/MathsServices
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Base/e32/MemoryManagement/CleanupSupport/CleanupSupportGuide1
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Base/e32/MemoryManagement/CleanupSupport/CleanupSupportGuide2
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Base/e32/MemoryManagement/CleanupSupport/CleanupSupportGuide3
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Base/e32/MemoryManagement/CleanupSupport/CleanupSupportGuide4
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Base/e32/MemoryManagement/MemoryAllocation
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Base/e32/MemoryManagement/MemoryMgtConcepts
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Base/e32/MessageQueue
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Base/e32/PublishAndSubscribe
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Base/e32/ReferenceCountingObjects
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Base/e32/SystemMacros
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Base/e32/SystemWideErrorCodes
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Base/e32/ThreadAndProcessManagement/ThreadsAndProcesses
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Base/e32/TimersAndTimingServices/TimersAndTimingServicesGuide1
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Base/e32/TimersAndTimingServices/TimersAndTimingServicesGuide2
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Base/e32/TimersAndTimingServices/TimersAndTimingServicesGuide3
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Base/e32/UIDManipulation
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Base/e32/VersionHandling
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Base/f32/FileServerClientSide/FileServerClientSideGuide1
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Base/f32/FileServerClientSide/FileServerClientSideGuide2
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Base/f32/FileServerClientSide/FileServerClientSideGuide3
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Base/f32/FileServerClientSide/FileServerClientSideGuide4
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Base/f32/FileServerClientSide/FileServerClientSideGuide5
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Base/f32/FileServerExtensions
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Base/f32/FileServerPlug-ins
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Base/f32/Loader
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/CommsInfrastructure/CommDbGuide
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/CommsInfrastructure/LayeredCommsStack/aIntroductionToLayeredCommsStack
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/CommsInfrastructure/Nifman
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/CommsInfrastructure/commsdat/commsdatoverviews
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/CommsInfrastructure/commsdat/commsdatsample
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/CommsInfrastructure/esock/SocketServerProtocolsGuide
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/CommsInfrastructure/esock/SocketsClientGuide/ConnectionManagement
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/CommsInfrastructure/reference
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Connectivity
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Deviceprovisioning/Client_Provisioning/Adapters_and_APIs
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Deviceprovisioning/Device_Management/Adapters_and_APIs
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Deviceprovisioning/Firmware_Over_The_Air
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Deviceprovisioning/Generic_Alerts_and_the_Host_Server
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Graphics/CompositionAbstraction/HWAcceleratedRendering
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Graphics/FontServices
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Graphics/GeneralOverviews/IntroductiontoGraphics
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Graphics/GeneralOverviewsDelayed
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Graphics/Graphics/GraphicsOverview
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Graphics/GraphicsDeviceInterface/Bitmaps
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Graphics/GraphicsDeviceInterface/DirectGDI
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Graphics/GraphicsDeviceInterface/EmbeddingGuide
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Graphics/GraphicsDeviceInterface/FontsGuide
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Graphics/GraphicsDeviceInterface/GraphicsGuide1
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Graphics/GraphicsDeviceInterface/GraphicsGuide2
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Graphics/GraphicsDeviceInterface/GraphicsGuide3
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Graphics/GraphicsDeviceInterface/PDRSTORE
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Graphics/GraphicsDeviceInterface/PrintingGuide
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Graphics/KhronosAPIs/OGLESAPI
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Graphics/RenderingAbstraction/OpenGL
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Graphics/RenderingAbstraction/OpenGLESVariabilityChoices
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Graphics/ResourceAbstraction/EGL
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Graphics/ResourceAbstraction/ImageCompatibilityGuarantees
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Graphics/ResourceAbstraction/ResourceAbstraction
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Graphics/WindowingFramework/Animation
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Graphics/WindowingFramework/CRPs/Tutorials
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Graphics/WindowingFramework/WindowServerGuide1/WindowServerEvents
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Graphics/WindowingFramework/WindowServerGuide2
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Graphics/WindowingFramework/WindowServerGuide3
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Graphics/WindowingFramework/WindowServerGuide4
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Graphics/WindowingFramework/WindowServerGuide7
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Graphics/WindowingFramework/WindowServerPerformanceImprovements
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Graphics/graphics_ldds/surface_manager
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Graphics/screendriver
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/LBS/Partner95/AGPSModule
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/LBS/Partner95/Admin
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/LBS/Partner95/Architecture
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/LBS/Partner95/Changes
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/LBS/Partner95/Clock
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/LBS/Partner95/Config
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/LBS/Partner95/Logging
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/LBS/Partner95/Maths
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/LBS/Partner95/NetworkModule/SUPLProtocolModule/host_settings_api
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/LBS/Partner95/NetworkModule/SUPLProtocolModule/overview
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/LBS/Partner95/NetworkModule/SUPLProtocolModule/push_api
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/LBS/Partner95/NetworkModule/SUPLProtocolModule/quick_start
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/LBS/Partner95/NetworkModule/SUPLProtocolModule/sequences
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/LBS/Partner95/Partner_S60LocationFramework/bluetooth_events_api
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/LBS/Partner95/Partner_S60LocationFramework/bluetooth_settings_api
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/LBS/Partner95/Partner_S60LocationFramework/configuration
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/LBS/Partner95/Partner_S60LocationFramework/gps_hw_status_api
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/LBS/Partner95/Partner_S60LocationFramework/last_known_location_api
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/LBS/Partner95/Partner_S60LocationFramework/location_settings_api
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/LBS/Partner95/Partner_S60LocationFramework/positioning_indicator_api
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/LBS/Partner95/Partner_S60LocationFramework/positioning_plugin_api
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/LBS/Partner95/Partner_S60LocationFramework/positioning_plugin_info_api
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/LBS/Partner95/Partner_S60LocationFramework/psy_tester_user_guide
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/LBS/Partner95/Partner_S60LocationFramework/simulation_psy_settings_api
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/LBS/Partner95/Partner_S60LocationFramework/simulation_psy_user_guide
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/LBS/Partner95/Privacy/Diagrams/FullLBS/PrivacyController/PrivacyNotification
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/LBS/Partner95/Privacy/Diagrams/FullLBS/PrivacyController/PrivacyVerification
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/LBS/Partner95/Privacy/Diagrams/FullLBS/PrivacyController/PrivacyVerificationCancel
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/LBS/Partner95/Privacy/Diagrams/NetworkPrivacyAPI/PrivacyController/PrivacyNotification
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/LBS/Partner95/Privacy/Diagrams/NetworkPrivacyAPI/PrivacyController/PrivacyTimeout
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/LBS/Partner95/Privacy/Diagrams/NetworkPrivacyAPI/PrivacyController/PrivacyVerification
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/LBS/Partner95/Privacy/Diagrams/NetworkPrivacyAPI/PrivacyController/PrivacyVerificationCancel
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/LBS/Partner95/Privacy/Diagrams/NetworkPrivacyAPI/PrivacyNotifiers/PrivacyNotification
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/LBS/Partner95/Privacy/Diagrams/NetworkPrivacyAPI/PrivacyNotifiers/PrivacyTimeout
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/LBS/Partner95/Privacy/Diagrams/NetworkPrivacyAPI/PrivacyNotifiers/PrivacyVerification
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/LBS/Partner95/Privacy/Diagrams/NetworkPrivacyAPI/PrivacyNotifiers/PrivacyVerificationCancel
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/LBS/Partner95/Privacy/Diagrams/NetworkPrivacyAPI/PrivacyQNNotifiers/PrivacyNotification
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/LBS/Partner95/Privacy/Diagrams/NetworkPrivacyAPI/PrivacyQNNotifiers/PrivacyTimeout
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/LBS/Partner95/Privacy/Diagrams/NetworkPrivacyAPI/PrivacyQNNotifiers/PrivacyVerification
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/LBS/Partner95/Privacy/Diagrams/NetworkPrivacyAPI/PrivacyQNNotifiers/PrivacyVerificationCancel
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/LBS/Partner95/Privacy/Diagrams/NetworkPrivacyAPI/StartupShutdown
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/LBS/Partner95/Privacy/Diagrams/PrivacyRequestAPI/PrivacyController/PrivacyNotification
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/LBS/Partner95/Privacy/Diagrams/PrivacyRequestAPI/PrivacyController/PrivacyTimeout
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/LBS/Partner95/Privacy/Diagrams/PrivacyRequestAPI/PrivacyController/PrivacyVerification
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/LBS/Partner95/Privacy/Diagrams/PrivacyRequestAPI/PrivacyController/PrivacyVerificationCancel
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/LBS/Partner95/Privacy/Diagrams/PrivacyRequestAPI/PrivacyNotifiers/PrivacyNotification
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/LBS/Partner95/Privacy/Diagrams/PrivacyRequestAPI/PrivacyNotifiers/PrivacyTimeout
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/LBS/Partner95/Privacy/Diagrams/PrivacyRequestAPI/PrivacyNotifiers/PrivacyVerification
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/LBS/Partner95/Privacy/Diagrams/PrivacyRequestAPI/PrivacyNotifiers/PrivacyVerificationCancel
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/LBS/Partner95/Privacy/Diagrams/PrivacyRequestAPI/PrivacyQNNotifiers/PrivacyNotification
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/LBS/Partner95/Privacy/Diagrams/PrivacyRequestAPI/PrivacyQNNotifiers/PrivacyTimeout
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/LBS/Partner95/Privacy/Diagrams/PrivacyRequestAPI/PrivacyQNNotifiers/PrivacyVerification
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/LBS/Partner95/Privacy/Diagrams/PrivacyRequestAPI/PrivacyQNNotifiers/PrivacyVerificationCancel
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/LBS/Partner95/Privacy/Diagrams/PrivacyRequestAPI/StartupShutdown
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/LBS/Partner95/QualityProfile
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/LBS/Partner95/X3P
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/LBS/Public/LocationAcquisition
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/LBS/Public/Maths
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MTP9.5/configure-mtp
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MTP9.5/mtptransports/mtp-transport-tcp
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MTP9.6/Data-Sync-on-MTP
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MTP9.6/configure-mtp
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MTP9.6/mtptransports/mtp-transport-tcp
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Messaging/MessagingGuide/MessagingGuide1
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Messaging/MessagingGuide/MessagingGuide2_9.5
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Messaging/MessagingGuide/MessagingGuide2_9.6
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Messaging/MessagingGuide/MessagingGuide3
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Messaging/MessagingGuide/MessagingGuide4
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Messaging/cdmasms
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Messaging/email/BearerMobility_PA
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Messaging/email/BearerMobility_PP
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Messaging/email/PC
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Messaging/email/architecture
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Messaging/gmxml
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Messaging/sms
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMedia/Multimedia/APIsFramework/CamFramework/Camera/tutorial
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMedia/Multimedia/APIsFramework/CamFramework/advcamset/tutorial
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMedia/Multimedia/APIsFramework/CamFramework/camoverlay/tutorial
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMedia/Multimedia/APIsFramework/CamFramework/camplugin
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMedia/Multimedia/APIsFramework/CamFramework/camsnap/tutorial
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMedia/Multimedia/APIsFramework/CamFramework/histogram/tutorial
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMedia/Multimedia/APIsFramework/CamFramework/viewfind/tutorial
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMedia/Multimedia/APIsFramework/FMtransmitter
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMedia/Multimedia/APIsFramework/ImgFramework/PlugAdvImageEditingLibs/ImgProcEffect/images
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMedia/Multimedia/APIsFramework/ImgFramework/PlugAdvImageEditingLibs/JPEGImgTransExt
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMedia/Multimedia/APIsFramework/ImgFramework/PlugAdvImageEditingLibs/PanoramicStitch
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMedia/Multimedia/APIsFramework/ImgFramework/PlugAdvImageEditingLibs/Speedview
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMedia/Multimedia/APIsFramework/ImgFramework/bitmapts
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMedia/Multimedia/APIsFramework/ImgFramework/exifutil
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMedia/Multimedia/APIsFramework/ImgFramework/gifscale
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMedia/Multimedia/APIsFramework/ImgFramework/guides
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMedia/Multimedia/APIsFramework/ImgFramework/imgconv
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMedia/Multimedia/APIsFramework/ImgFramework/imgdisp
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMedia/Multimedia/APIsFramework/ImgFramework/imgprocessor
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMedia/Multimedia/APIsFramework/ImgFramework/imgtrans
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMedia/Multimedia/APIsFramework/ImgFramework/jpgexif
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMedia/Multimedia/APIsFramework/ImgFramework/jpgimg
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMedia/Multimedia/APIsFramework/ImgFramework/mediaclient
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMedia/Multimedia/APIsFramework/MetaUtilFramework/Id3ParPlug/Tutorials
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMedia/Multimedia/APIsFramework/MetaUtilFramework/MetaUtilLib/Tutorials
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMedia/Multimedia/APIsFramework/MmFramework/AudInStream
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMedia/Multimedia/APIsFramework/MmFramework/AudOutStream
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMedia/Multimedia/APIsFramework/MmFramework/audiocapi
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMedia/Multimedia/APIsFramework/MmFramework/gsm610cc
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMedia/Multimedia/APIsFramework/MmFramework/guides
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMedia/Multimedia/APIsFramework/MmFramework/mediaclient
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMedia/Multimedia/APIsFramework/MmFramework/midi
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMedia/Multimedia/APIsFramework/MmFramework/videocapi/tutorials/videoplay/enhancements
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMedia/Multimedia/APIsFramework/MmFramework/videocapi/tutorials/videorecord/enhancements
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMedia/Multimedia/APIsFramework/MmUtilLib/mmcommon
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMedia/Multimedia/APIsFramework/RadioTuner/tuner
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMedia/Multimedia/DeviceFramework/MDFramework/capires
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMedia/Multimedia/DeviceFramework/MDFramework/mdfaudhwdevadpt
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMedia/Multimedia/DeviceFramework/MDFramework/omxtrans
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMedia/Multimedia/DeviceFramework/MDFramework/puload
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMedia/Multimedia/DeviceFramework/MDFramework/pures
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMedia/Multimedia/DeviceFramework/OpenMaxIL/omilComponentInterface
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMedia/Multimedia/DeviceFramework/OpenMaxIL/omxilcore
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMedia/Multimedia/DeviceFramework/OpenMaxIL/oxmilSymbianContentPipe
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMedia/Multimedia/DeviceFramework/OpenMaxIL/oxmilSymbianloader
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMedia/Multimedia/DeviceFramework/SRC/asrcc
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMedia/Multimedia/DeviceFramework/SRC/asrclient
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMedia/Multimedia/DeviceFramework/SRC/asrdata
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMedia/Multimedia/HAIs/DvbRecHAI/DVBH/Tutorials
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMedia/Multimedia/HAIs/DvbRecHAI/dvbinfo
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMedia/Multimedia/HAIs/DvbRecHAI/guides
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMedia/Multimedia/HAIs/VideoHAI/DevVid
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMedia/Multimedia/MVS
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMedia/Multimedia/Plugins/3GPLibrary/3gplibrary/tutorials
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMedia/Multimedia/Plugins/Guide
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMedia/Multimedia/Plugins/VideoSubtitleCRP/SubtitleGraphics/tutorials
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMedia/Multimedia/Plugins/VideoSubtitleCRP/tutorial
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMedia/Multimedia/SoundDevice/A3F/acf/tutorial
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMedia/Multimedia/SoundDevice/A3F/acl
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMedia/Multimedia/SoundDevice/DevSndPluginSupport/mmfdevsnd
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMediaProtocols/AMRPayloadFormatter
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMediaProtocols/RTP
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMediaProtocols/SIP-PP/SIPClientAPI
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMediaProtocols/SIP-PP/SIPClientResolverAPI
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMediaProtocols/SIP-PP/SIPCodecAPI
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMediaProtocols/SIP-PP/SIPNATAPI
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMediaProtocols/SIP-PP/SIPProfileAPI
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMediaProtocols/SIP-PP/SIPProfileAgentAPI
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMediaProtocols/SIP-PP/SIPSDPCodecAPI
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMediaProtocols/SIP-PP/SystemStateMonitorAPI
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMediaProtocols/SIP/SIPClientAPI
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMediaProtocols/SIP/SIPClientResolverAPI
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMediaProtocols/SIP/SIPCodecAPI
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMediaProtocols/SIP/SIPProfileAPI
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/MultiMediaProtocols/SIP/SIPSDPCodecAPI
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Networking/DHCP
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Networking/IPhook
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Networking/IPsec/IPsecApplications
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Networking/MBMSBroadcastSupport
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Networking/NetworkUserPrompt
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Networking/SecureSocketsGuide
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Networking/TcpipGuide/TcpipGuide1
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Networking/TcpipGuide/TcpipGuide2
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Networking/TcpipGuide/TcpipGuide3
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Networking/WPS/wps_concepts
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Networking/netperf
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Networking/ppp
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Networking/qoslib
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/PIPS/OtherPIPSLibs/Glib
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/PIPS/OtherPIPSLibs/OpenSSL
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/PIPS/PortingUsingPIPS
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/PIPS/StdCpp/DevStdCppAppsLibs
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/PIPS/UsingPIPSForYourApps
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/PIPS/WhatIsPIPS
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/SerialComms/SerialCommsServerClientGuide/SerialCommsServerClientGuide1
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/SerialComms/SerialCommsServerClientGuide/SerialCommsServerClientGuide2
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/SerialComms/SerialCommsServerClientGuide/SerialCommsServerClientGuide3
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/SerialComms/SerialCommsServerClientGuide/SerialCommsServerClientGuide4
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/SerialComms/SerialProtocolModuleGuide
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/SerialComms/aaOverview
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/SerialComms/xC32Configuration-PP
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ShortLinkServices/BluetoothProfiles/A2DP/a2dpsupervisor/tutorials
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ShortLinkServices/BluetoothProfiles/A2DP/codecwrapper
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ShortLinkServices/BluetoothProfiles/A2DP/sbcencoder
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ShortLinkServices/BluetoothProfiles/BluetoothPAN/BTPanTutorial
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ShortLinkServices/BluetoothProfiles/GAVDP
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ShortLinkServices/BluetoothProfiles/RemConProfile/batterystatus
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ShortLinkServices/BluetoothProfiles/RemConProfile/mediainfo
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ShortLinkServices/BluetoothProfiles/RemConProfile/playerinfo
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ShortLinkServices/SLAppLayerProts/IrTranP
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ShortLinkServices/SLDeviceDrv
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ShortLinkServices/SerialCommsServerPlugins/BluetoothCSY/BTComm
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ShortLinkServices/SerialCommsServerPlugins/IrDACSY/IrDASerial
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ShortLinkServices/ShortLink/BluetoothHCIFramework
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ShortLinkServices/ShortLink/BluetoothManager/UsingBTUI
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ShortLinkServices/ShortLink/BluetoothProtocolClientAPIs/BTstack
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ShortLinkServices/ShortLink/BluetoothProtocolClientAPIs/BTuser
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ShortLinkServices/ShortLink/BluetoothProtocolClientAPIs/UsingBtSocks/FindConnect
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ShortLinkServices/ShortLink/BluetoothProtocolClientAPIs/usingSecMan
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ShortLinkServices/ShortLink/BluetoothSDP/UsingServiceDiscoveryAgent
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ShortLinkServices/ShortLink/BluetoothSDP/UsingServiceDiscoveryDatabase
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ShortLinkServices/ShortLink/btRemConFramework/remcontutorial
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ShortLinkServices/ShortLinkProtocolPlugins/BluetoothStackPRT
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ShortLinkServices/ShortLinkProtocolPlugins/IrDAPRT/IrDaSockets/IrDAGuide2
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ShortLinkServices/ShortLinkProtocolPlugins/IrDAPRT/IrDaSockets/IrDAGuide3
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ShortLinkServices/TechnologyGuides/Bluetooth
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ShortLinkServices/TechnologyGuides/IrDA/IrDAGuide1
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ShortLinkServices/USBMan/ACMServer
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ShortLinkServices/USBMan/BatteryCharging
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ShortLinkServices/USBMan/FunctionDriverFramework
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ShortLinkServices/USBMan/MassStorageFunctionDriver
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ShortLinkServices/USBMan/Personalities
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/ShortLinkServices/USBMan/USBMan/managing_vbus
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/SmsStack/CdmaSms
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/SmsStack/OtaSettingsGuide
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/SmsStack/SmsStackConfiguration
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/SyncML/Evolution
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/SyncML/Glossary
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/SyncML/GuidetoSyncMLComponents
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/SyncML/SyncMLClient/AdvFeaSuppOMADSDM
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/SyncML/SyncMLClient/Agent
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/SyncML/SyncMLClient/DataSyncGuidev3.0
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/SyncML/SyncMLClient/LatestTransportAdapterGuide
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Syslibs/CStandardLibrary
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Syslibs/CentralRepository
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Syslibs/CharacterConversion/SMSEncodingConverters
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Syslibs/DBMS/DBMSColumnsColumnSetsKeys
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Syslibs/DBMS/DBMSIncrementalOperations
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Syslibs/DBMS/DBMSRowsets/DBMSSQL
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Syslibs/DBMS/DBMSSharingDatabases
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Syslibs/DBMS/InterfaceToDBMSDatabases
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Syslibs/ECom/ClientHowTos
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Syslibs/ECom/EcomArchitecture
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Syslibs/ECom/Implementations
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Syslibs/ECom/InterfaceDefinition
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Syslibs/EComPhoneCreation
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Syslibs/EZlib
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Syslibs/FeatMgr
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Syslibs/FeatMgr_PublishedPartner
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Syslibs/FeatReg
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Syslibs/PS/SQL/SQLDB
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Syslibs/PS/SQL/exampleapp
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Syslibs/PS/SQL/guides/efficiencies
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Syslibs/PS/SQL/tutorials
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Syslibs/PS/SQLite/SQLite
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Syslibs/PS/guides
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Syslibs/Store/FileStores
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Syslibs/Store/StoreStreams/StoreStreamsGuide1
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Syslibs/Store/StoreStreams/StoreStreamsGuide2
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Syslibs/Store/StoreStreams/StoreStreamsGuide3
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Syslibs/Store/StoreStreams/StoreStreamsGuide4
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Syslibs/Store/Stores/StoresGuide2
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Syslibs/Store/Stores/StoresGuide3
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Syslibs/Store/Stores/StoresGuide4
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Syslibs/Store/Stores/StoresGuide6
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Syslibs/Store/Stores/StoresGuide7
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Syslibs/Store/Streaming
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Syslibs/SystemAgentGuide
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Syslibs/XML
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Syslibs/bafl95/ActivityManager
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Syslibs/bafl95/ApplicationUtilities
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Syslibs/bafl95/Clipboard
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Syslibs/bafl95/CommandLineParsing
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Syslibs/bafl95/DescriptorArrays
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Syslibs/bafl95/EnvironmentChangeNotifier
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Syslibs/bafl95/IncrementalMatcher
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Syslibs/bafl95/InterfaceToResourceFiles
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Syslibs/bafl95/LocalisedNamesOfPlugins
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Syslibs/bafl95/SysUtils
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Syslibs/caf/StreamingCAF
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Syslibs/logeng
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Telephony/ETelPacket
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Telephony/ETelUsatGuide
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Telephony/EtelGuide/ETelGuide1/Tsy/Concepts
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Telephony/EtelGuide/ETelGuide2
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Telephony/Etelcdma
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Telephony/Fax
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Telephony/SmsStackForGsm/Concepts
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Telephony/SmsStackForGsm/Tutorials
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Telephony/ThirdPartyTelephony
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Telephony/etelmm/ETELMultimodeSupportforR6USIM
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Telephony/etelmm/call
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Telephony/etelmm/lists
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Telephony/etelmm/messaging
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Telephony/etelmm/phone/network
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Telephony/etelmm/phone/security
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Telephony/etelmm/store
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Telephony/hwrm/Concepts/extendedlight
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Telephony/hwrm/Concepts/lightapi
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Telephony/hwrm/Concepts/powerapi
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Telephony/hwrm/Concepts/powerstateapi
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Telephony/hwrm/Concepts/vibraapi
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Telephony/hwrm/tutorials
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Telephony/phbksync
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Texti18n/locale
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Texti18n/text
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/Wapstack
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/cpp/wap-browser/wappush
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/migration/61_70s
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/migration/70s_80a
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/migration/80b_81b
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/migration/81a_91
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/migration/81b_92
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/migration/90_91/ib
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/migration/91_92
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/migration/92_93
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/migration/93_94
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/migration/MCT_Indexes
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/platsec
+/os/buildtools/devlib/devlibhelp/doc_source/DevGuides/platsecsdk
+/os/buildtools/devlib/devlibhelp/doc_source/EKA2BasePorting/BackgroundInformationForPorting/BackgroundAudioDriver
+/os/buildtools/devlib/devlibhelp/doc_source/EKA2BasePorting/BackgroundInformationForPorting/BackgroundBootstrap/GeneralBootstrapMacros
+/os/buildtools/devlib/devlibhelp/doc_source/EKA2BasePorting/BackgroundInformationForPorting/BackgroundDMA
+/os/buildtools/devlib/devlibhelp/doc_source/EKA2BasePorting/BackgroundInformationForPorting/BackgroundInterruptDispatch
+/os/buildtools/devlib/devlibhelp/doc_source/EKA2BasePorting/BackgroundInformationForPorting/BackgroundMMC
+/os/buildtools/devlib/devlibhelp/doc_source/EKA2BasePorting/BackgroundInformationForPorting/BackgroundNAND
+/os/buildtools/devlib/devlibhelp/doc_source/EKA2BasePorting/BackgroundInformationForPorting/BackgroundPowerMgt
+/os/buildtools/devlib/devlibhelp/doc_source/EKA2BasePorting/BackgroundInformationForPorting/BackgroundUSB/USB
+/os/buildtools/devlib/devlibhelp/doc_source/EKA2BasePorting/BoardGuides
+/os/buildtools/devlib/devlibhelp/doc_source/EKA2BasePorting/OtherInformation/PersonalityLayers
+/os/buildtools/devlib/devlibhelp/doc_source/EKA2BasePorting/PortingDetail/AudioDriverHowTo
+/os/buildtools/devlib/devlibhelp/doc_source/EKA2BasePorting/PortingDetail/Bootstrap/PlatformSpecificSource
+/os/buildtools/devlib/devlibhelp/doc_source/EKA2BasePorting/PortingDetail/HAL
+/os/buildtools/devlib/devlibhelp/doc_source/EKA2BasePorting/PortingDetail/PowerMgt/PowerResourceManager
+/os/buildtools/devlib/devlibhelp/doc_source/EKA2BasePorting/PortingEKA1toEKA2/ROMbuildIssues
+/os/buildtools/devlib/devlibhelp/doc_source/EKA2BasePorting/ROMtoolsReference/obeyfiles-ref
+/os/buildtools/devlib/devlibhelp/doc_source/EKA2BasePorting/TestIssues
+/os/buildtools/devlib/devlibhelp/doc_source/EKA2BasePorting/ToolsROMbuilding
+/os/buildtools/devlib/devlibhelp/doc_source/EKA2BasePorting/WhatsNewInEka2
+/os/buildtools/devlib/devlibhelp/doc_source/EKA2DeviceDriver/DebuggingInformation
+/os/buildtools/devlib/devlibhelp/doc_source/EKA2DeviceDriver/KernelSideProgramming
+/os/buildtools/devlib/devlibhelp/doc_source/EKA2DeviceDriver/KernelTraceTool
+/os/buildtools/devlib/devlibhelp/doc_source/EKA2DeviceDriver/WritingANewDeviceDriver/ExampleDriver
+/os/buildtools/devlib/devlibhelp/doc_source/Examples/AppEnginesEx
+/os/buildtools/devlib/devlibhelp/doc_source/Examples/AppFrameworkEx
+/os/buildtools/devlib/devlibhelp/doc_source/Examples/AppFrameworkExPP
+/os/buildtools/devlib/devlibhelp/doc_source/Examples/AppFrameworkServerAppEx
+/os/buildtools/devlib/devlibhelp/doc_source/Examples/AppProtsEx
+/os/buildtools/devlib/devlibhelp/doc_source/Examples/AppServicesEx
+/os/buildtools/devlib/devlibhelp/doc_source/Examples/GraphicsEx
+/os/buildtools/devlib/devlibhelp/doc_source/Examples/MMFrameworkEx
+/os/buildtools/devlib/devlibhelp/doc_source/Examples/MessagingEx/Biomsg
+/os/buildtools/devlib/devlibhelp/doc_source/Examples/MessagingEx/TextMTMEx
+/os/buildtools/devlib/devlibhelp/doc_source/Examples/MultimediaProtocolsEx
+/os/buildtools/devlib/devlibhelp/doc_source/Examples/NetworkingEx
+/os/buildtools/devlib/devlibhelp/doc_source/Examples/PIPSEx
+/os/buildtools/devlib/devlibhelp/doc_source/Examples/SerialCommsEx
+/os/buildtools/devlib/devlibhelp/doc_source/Examples/SymbianFundamentalsEx
+/os/buildtools/devlib/devlibhelp/doc_source/Examples/SysLibsEx
+/os/buildtools/devlib/devlibhelp/doc_source/Examples/TelephonyEx
+/os/buildtools/devlib/devlibhelp/doc_source/Examples/WSex
+/os/buildtools/devlib/devlibhelp/doc_source/Examples/baflEx
+/os/buildtools/devlib/devlibhelp/doc_source/Examples/coneEx
+/os/buildtools/devlib/devlibhelp/doc_source/Examples/dbmsEx
+/os/buildtools/devlib/devlibhelp/doc_source/Examples/e32Ex
+/os/buildtools/devlib/devlibhelp/doc_source/Examples/ecomEx
+/os/buildtools/devlib/devlibhelp/doc_source/Examples/f32ex
+/os/buildtools/devlib/devlibhelp/doc_source/Examples/html/e32Ex
+/os/buildtools/devlib/devlibhelp/doc_source/Examples/stdlibEx
+/os/buildtools/devlib/devlibhelp/doc_source/Examples/storeEx
+/os/buildtools/devlib/devlibhelp/doc_source/Examples/textEx
+/os/buildtools/devlib/devlibhelp/doc_source/GlobalGlossary
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/BaseStarter/Concepts
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/BaseStarter/Reference
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/BaseStarter/Tutorials
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/Bootstrap/Concepts
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/Bootstrap/Reference
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/Bootstrap/Tutorials/PlatformSpecificSource
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/DeviceDriversandDriverSupport/DMAFramework/Concepts
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/DeviceDriversandDriverSupport/DMAFramework/Reference
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/DeviceDriversandDriverSupport/DMAFramework/Tutorials/PortTutorial
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/DeviceDriversandDriverSupport/DigitizerDriver/Concepts
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/DeviceDriversandDriverSupport/DigitizerDriver/Reference
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/DeviceDriversandDriverSupport/DigitizerDriver/Tutorials/PortTutorial
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/DeviceDriversandDriverSupport/KeyboardDriver/Concepts
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/DeviceDriversandDriverSupport/KeyboardDriver/Reference
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/DeviceDriversandDriverSupport/KeyboardDriver/Tutorials
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/DeviceDriversandDriverSupport/LCDExtension/Concepts
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/DeviceDriversandDriverSupport/LCDExtension/Reference
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/DeviceDriversandDriverSupport/LCDExtension/Tutorials/PortTutorial
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/DeviceDriversandDriverSupport/LocalMediaSubsystem/Reference
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/DeviceDriversandDriverSupport/LocalMediaSubsystem/Tutorials/PortTutorial
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/DeviceDriversandDriverSupport/MediaDrivers/LFFS/Concepts
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/DeviceDriversandDriverSupport/MediaDrivers/LFFS/Reference
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/DeviceDriversandDriverSupport/MediaDrivers/LFFS/Tutorials/PortTutorial
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/DeviceDriversandDriverSupport/MediaDrivers/MMC/Concepts/MMCStack
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/DeviceDriversandDriverSupport/MediaDrivers/MMC/Reference
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/DeviceDriversandDriverSupport/MediaDrivers/MMC/Tutorials/PortTutorial
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/DeviceDriversandDriverSupport/MediaDrivers/MMC/Tutorials/UserTutorial
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/DeviceDriversandDriverSupport/SerialPortDriver/Reference
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/DeviceDriversandDriverSupport/SerialPortDriver/Tutorials/PortTutorial
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/DeviceDriversandDriverSupport/SoundDriver/Concepts/DynamicBehaviour
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/DeviceDriversandDriverSupport/SoundDriver/Reference
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/DeviceDriversandDriverSupport/SoundDriver/Tutorials/PDDPortTutorial
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/DeviceDriversandDriverSupport/USBClientDriver/Concepts
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/DeviceDriversandDriverSupport/USBClientDriver/Reference
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/DeviceDriversandDriverSupport/USBClientDriver/Tutorials/PortTutorial
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/DomainManager/Concepts
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/DomainManager/Reference
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/DomainManager/Tutorials/UserTutorial
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/FileServer/Concepts
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/FileServer/Reference
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/FileServer/Tutorials
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/FileSystems/Concepts
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/FileSystems/Reference
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/FlashTranslationLayer/Concepts
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/FlashTranslationLayer/CrashLogger/Concepts
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/FlashTranslationLayer/CrashLogger/Reference
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/FlashTranslationLayer/CrashLogger/Tutorials/UserTutorial
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/FlashTranslationLayer/Reference
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/FlashTranslationLayer/Tutorials/PortTutorial
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/FlashTranslationLayer/Tutorials/UserTutorial
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/HALServices/Concepts
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/HALServices/Reference
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/HALServices/Tutorials/PortTutorial
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/KernelArchitecture2/Concepts
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/KernelArchitecture2/Reference
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/KernelArchitecture2/Tutorials/PowerManagement
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/KernelArchitecture2/Tutorials/Variant/InterruptDespatcherTutorial
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/MigrationTutorials/DemandPaging
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/MigrationTutorials/EKA1toEKA2
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/NANDFlashTranslationLayer_SSR/Concepts
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/NANDFlashTranslationLayer_SSR/Reference
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/NANDFlashTranslationLayer_SSR/Tutorials/PortTutorial
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/QuickStart
+/os/buildtools/devlib/devlibhelp/doc_source/KernelandHardwareServices/PortingGuide/UserLibrary/PortTutorial
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/DocTypeSubType/guide/example
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/DocTypeSubType/guide/howto
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/DocTypeSubType/ref/cpp
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/DocTypeSubType/ref/resource
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/ApplicationEngines/Calendar
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/ApplicationEngines/Calinterimapi
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/ApplicationEngines/Cntmodel
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/ApplicationFramework/Animation
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/ApplicationFramework/Apparc
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/ApplicationFramework/Bmpanim
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/ApplicationFramework/Clock
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/ApplicationFramework/Conarc
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/ApplicationFramework/Cone
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/ApplicationFramework/Egul
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/ApplicationFramework/Emime
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/ApplicationFramework/Etext
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/ApplicationFramework/Fepbase
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/ApplicationFramework/Form
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/ApplicationFramework/Gfxtranseffect
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/ApplicationFramework/Grid
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/ApplicationFramework/Numberconversion
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/ApplicationFramework/Print
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/ApplicationFramework/Sysstart
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/ApplicationFramework/Uiklafgt
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/ApplicationFramework/Uikon
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/ApplicationFramework/Viewsrv
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/ApplicationProtocols/Bookmarks
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/ApplicationProtocols/Http
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/ApplicationProtocols/InetURIList
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/ApplicationProtocols/Inetprotutil
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/ApplicationServices/Alarmserver
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/ApplicationServices/Calcon
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/ApplicationServices/Hlpmodel
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/ApplicationServices/Timezonelocalization
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/ApplicationServices/Tz
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/ApplicationServices/TzConversion
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/ApplicationServices/Versit
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/ApplicationServices/Worldserver
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Base/Domain
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Base/E32
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Base/E32utils
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Base/F32
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/CommunicationsInfrastructure/Commdb
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/CommunicationsInfrastructure/Commsdat
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/CommunicationsInfrastructure/Esock
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/CommunicationsInfrastructure/Mbufmgr
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/CommunicationsInfrastructure/Nifman
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/CommunicationsInfrastructure/Rootserver
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Connectivity/MTP
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Connectivity/Mroutersecure
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Connectivity/Securebackupengine
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Connectivity/Usbms
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/DeviceProvisioning/Clientprov
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/DeviceProvisioning/Devman
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Graphics/Bitgdi
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Graphics/Directgdi
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Graphics/EGL
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Graphics/Eglheaders
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Graphics/Fbserv
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Graphics/Fntstore
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Graphics/GCE
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Graphics/Gdi
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Graphics/Gdtran
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Graphics/GraphicsLDDs
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Graphics/Graphicsresource
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Graphics/KhronosAPIs
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Graphics/Openglesdisplayproperty
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Graphics/Openglesheaders
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Graphics/Openvgheaders
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Graphics/Palette
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Graphics/Pdrstore
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Graphics/Screendriver
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Graphics/Surfaceupdate
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Graphics/Wserv
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/LocationBasedServices/Lbsadmin
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/LocationBasedServices/Lbsgpsdatasourcemodules
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/LocationBasedServices/Lbslocserver
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/LocationBasedServices/Lbsnetworkrequesthandler
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/LocationBasedServices/Lbsnetworktest
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/LocationBasedServices/Lbspospluginfw
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/LocationBasedServices/Lbsprivacyprotocolmodule
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/LocationBasedServices/Lbssuplprotocolmodule
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Messaging/Biomsg
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Messaging/Email
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Messaging/Framework
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Messaging/Gmxml
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Messaging/Mmssettings
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Messaging/Multimode
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Messaging/OBEX
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Messaging/Schedulesend
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Messaging/Sendas2
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Messaging/Sms
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Messaging/Watcher
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Mtp/MTP
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Multimedia/Ecam
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Multimedia/Icl
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Multimedia/Mdf
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Multimedia/Mmcommon
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Multimedia/Mmf
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Multimedia/Mobiletv
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Multimedia/Muf
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Multimedia/Openmax
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Multimedia/Transmitter
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Multimedia/Tuner
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/MultimediaProtocols/Rtp
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/MultimediaProtocols/SIP
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/MultimediaProtocols/Sip2
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/MultimediaProtocols/Sipprovengine
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/MultimediaProtocols/Sipproviders
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/NarrowBandProtocols/Cdmasmsstack
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/NarrowBandProtocols/Smsstackv2
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Networking/Basebandadaptation
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Networking/Csdagt
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Networking/Dhcp
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Networking/Dialog
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Networking/Dnd
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Networking/Eap
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Networking/Ether802
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Networking/Inhook6
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Networking/Insock
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Networking/Ipeventnotifier
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Networking/Ipsec
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Networking/Ppp
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Networking/Psdagt
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Networking/Qoslib
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Networking/Tcpip6
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Networking/TelnetE
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Networking/Tls
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Networking/Tunnelnif
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Networking/Umts
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Networking/Umtsif
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/P.I.P.S/Core
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/P.I.P.S/Stdcpp
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Security/Asnpkcs
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Security/Caf2
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Security/Certman
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Security/Common
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Security/Commonutils
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Security/Cryptotokens
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Security/Filetokens
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Security/Swi
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Security/Tlsprovider
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Security/Ups
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Security/Usif
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/SerialCommunications/C32
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/ShortLinkServices/Bluetooth
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/ShortLinkServices/InfraRed
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/ShortLinkServices/OBEX
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/ShortLinkServices/Usb
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/SyncML/Datasync
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/SyncML/Framework
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/SystemLibraries/Bafl
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/SystemLibraries/Caf2
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/SystemLibraries/CentralRepository
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/SystemLibraries/Charconv
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/SystemLibraries/Dbms
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/SystemLibraries/Ecom
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/SystemLibraries/Ecom3
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/SystemLibraries/Ezlib
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/SystemLibraries/Ezlib2
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/SystemLibraries/Featmgr
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/SystemLibraries/Featreg
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/SystemLibraries/Logeng
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/SystemLibraries/Pwrcli
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/SystemLibraries/Schsvr
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/SystemLibraries/Sensors
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/SystemLibraries/Sql
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/SystemLibraries/Stdlib
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/SystemLibraries/Store
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/SystemLibraries/Sysagent2
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/SystemLibraries/Sysagt
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/SystemLibraries/Xml
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Telephony/Ctsy
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Telephony/Dial
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Telephony/Eax
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Telephony/Etel
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Telephony/Etel3rdparty
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Telephony/Etelcdma
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Telephony/Etelmm
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Telephony/Etelpckt
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Telephony/Etelsat
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Telephony/Fax
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Telephony/Hwrm
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Telephony/Phbksync
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Telephony/Simtsy
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/TestTools/Systemmonitor
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/TestTools/Testdriver
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/TestTools/Testexecute
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/Tools/Debug
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/WAPBrowser/Wapbase
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/WAPBrowser/Wapplugins
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/WAPBrowser/Wappush
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PA/SubsysComp/WAPStack/Wapmessage
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/DocTypeSubType/cengdoc/component-docs
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/DocTypeSubType/cengdoc/subsystem-docs
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/DocTypeSubType/cengdoc/system-docs
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/DocTypeSubType/guide/example
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/DocTypeSubType/guide/howto
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/DocTypeSubType/ref/cpp
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/DocTypeSubType/ref/resource
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/ApplicationEngines/Calendar
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/ApplicationEngines/Calinterimapi
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/ApplicationEngines/Cntmodel
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/ApplicationFramework/Animation
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/ApplicationFramework/Apparc
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/ApplicationFramework/Bmpanim
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/ApplicationFramework/Clock
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/ApplicationFramework/Conarc
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/ApplicationFramework/Cone
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/ApplicationFramework/Egul
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/ApplicationFramework/Emime
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/ApplicationFramework/Etext
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/ApplicationFramework/Fepbase
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/ApplicationFramework/Form
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/ApplicationFramework/Gfxtranseffect
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/ApplicationFramework/Grid
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/ApplicationFramework/Numberconversion
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/ApplicationFramework/Print
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/ApplicationFramework/Sysstart
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/ApplicationFramework/Uiklafgt
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/ApplicationFramework/Uikon
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/ApplicationFramework/Viewsrv
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/ApplicationFramework/ssma
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/ApplicationProtocols/Bookmarks
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/ApplicationProtocols/Http
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/ApplicationProtocols/InetURIList
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/ApplicationProtocols/Inetprotutil
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/ApplicationProtocols/Recognisers
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/ApplicationServices/Alarmserver
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/ApplicationServices/Calcon
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/ApplicationServices/Chtmltocrtconv
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/ApplicationServices/Hlpmodel
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/ApplicationServices/TZServices
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/ApplicationServices/Timezonelocalization
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/ApplicationServices/Tz
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/ApplicationServices/TzConversion
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/ApplicationServices/Tzcompiler
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/ApplicationServices/Versit
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/ApplicationServices/Worldserver
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Base/Domain
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Base/E32
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Base/E32utils
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Base/F32
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Bluetooth
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/CommunicationsInfrastructure/Commdb
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/CommunicationsInfrastructure/CommsRef
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/CommunicationsInfrastructure/CommsStack
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/CommunicationsInfrastructure/Commsdat
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/CommunicationsInfrastructure/Commsdebugutility
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/CommunicationsInfrastructure/Elements
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/CommunicationsInfrastructure/Esock
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/CommunicationsInfrastructure/Flogger
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/CommunicationsInfrastructure/Mbufmgr
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/CommunicationsInfrastructure/Nifman
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/CommunicationsInfrastructure/Rootserver
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/CommunicationsInfrastructure/Testproduct
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Connectivity/Legacy
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Connectivity/MTP
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Connectivity/Mroutersecure
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Connectivity/Securebackupengine
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Connectivity/Usbms
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/DeviceProvisioning/Adapters
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/DeviceProvisioning/Clientprov
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/DeviceProvisioning/Config
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/DeviceProvisioning/Devman
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/DeviceProvisioning/Integtest
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Graphics/Bitgdi
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Graphics/Directgdi
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Graphics/EGL
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Graphics/Eglheaders
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Graphics/Fbserv
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Graphics/Fntstore
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Graphics/Fonts
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Graphics/Freetype
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Graphics/Gce
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Graphics/Gdi
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Graphics/Gdtran
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Graphics/GraphicsLDDs
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Graphics/Graphicsresource
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Graphics/Iculayoutengine
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Graphics/KhronosAPIs
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Graphics/Openglesdisplayproperty
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Graphics/Openglesheaders
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Graphics/Openvgheaders
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Graphics/Palette
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Graphics/Pdrstore
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Graphics/Screendriver
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Graphics/Surfaceupdate
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Graphics/Testproduct
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Graphics/Testutils
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Graphics/UiBench
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Graphics/Wserv
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/InfraRed
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/J2ME
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/LocationBasedServices/Lbsadmin
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/LocationBasedServices/Lbsgpsdatasourcemodules
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/LocationBasedServices/Lbslocserver
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/LocationBasedServices/Lbsnetworkrequesthandler
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/LocationBasedServices/Lbsnetworktest
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/LocationBasedServices/Lbspospluginfw
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/LocationBasedServices/Lbsprivacyprotocolmodule
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/LocationBasedServices/Lbssuplprotocolmodule
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/LocationBasedServices/Test
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Messaging/Biomsg
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Messaging/Email
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Messaging/Framework
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Messaging/Gmxml
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Messaging/Mmssettings
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Messaging/Multimode
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Messaging/OBEX
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Messaging/Schedulesend
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Messaging/Sendas2
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Messaging/Sms
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Messaging/Testproduct
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Messaging/Watcher
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Mtp/Dataproviders
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Mtp/MTP
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Multimedia/Ecam
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Multimedia/Icl
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Multimedia/Mdf
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Multimedia/Mmcommon
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Multimedia/Mmf
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Multimedia/Mobiletv
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Multimedia/Muf
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Multimedia/Openmax
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Multimedia/Transmitter
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Multimedia/Tuner
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/MultimediaProtocols/AMRPayloadFormatter
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/MultimediaProtocols/Rtp
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/MultimediaProtocols/SIP
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/MultimediaProtocols/SIP-PP
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/MultimediaProtocols/Sip2
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/MultimediaProtocols/Sipprovengine
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/MultimediaProtocols/Sipproviders
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/NarrowBandProtocols/Cdmasmsstack
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/NarrowBandProtocols/Ddmasmsstack
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/NarrowBandProtocols/Smsstackv2
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Networking/802.11
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Networking/Basebandadaptation
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Networking/Csdagt
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Networking/Dhcp
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Networking/Dialog
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Networking/Dnd
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Networking/Eap
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Networking/Esock
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Networking/Ether802
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Networking/Etherdrv
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Networking/FtpE
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Networking/Guqos
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Networking/Inetutil
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Networking/Inhook6
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Networking/Insock
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Networking/Integrationtest
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Networking/Ip
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Networking/Ipeventnotifier
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Networking/Iprotor
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Networking/Ipsec
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Networking/Napt
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Networking/Netcon
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Networking/Netperf
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Networking/Nullagt
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Networking/Pfqoslib
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Networking/Ppp
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Networking/Psdagt
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Networking/Qos
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Networking/Qoslib
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Networking/Qostest
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Networking/Qostesting
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Networking/Rawipnif
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Networking/Sockbench
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Networking/Spud
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Networking/Tcpip6
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Networking/TelnetE
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Networking/Test
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Networking/Tls
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Networking/Tunnelnif
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Networking/Udpecho
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Networking/Umts
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Networking/Umtsif
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Networking/Webserver
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/OBEX
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/P.I.P.S/Core
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/P.I.P.S/Stdcpp
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Security/Asnpkcs
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Security/Caf2
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Security/Certman
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Security/Common
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Security/Commonutils
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Security/Cryptotokens
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Security/Filetokens
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Security/SecurityTools
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Security/Swi
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Security/Tlsprovider
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Security/Ups
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Security/Usif
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/SerialCommunications/C32
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/ShortLinkServices/Bluetooth
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/ShortLinkServices/InfraRed
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/ShortLinkServices/OBEX
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/ShortLinkServices/Usb
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/SymbianOSLibrary/Tools
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/SyncML/Datasync
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/SyncML/Devman
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/SyncML/Framework
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/SyncML/Test
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/System
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/SystemLibraries/Bafl
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/SystemLibraries/Caf2
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/SystemLibraries/CentralRepository
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/SystemLibraries/Charconv
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/SystemLibraries/Dbms
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/SystemLibraries/Ecom
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/SystemLibraries/Ecom3
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/SystemLibraries/Euserhl
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/SystemLibraries/Ezlib
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/SystemLibraries/Ezlib2
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/SystemLibraries/Fatcharsetconv
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/SystemLibraries/Featmgr
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/SystemLibraries/Featreg
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/SystemLibraries/Logeng
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/SystemLibraries/Pwrcli
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/SystemLibraries/Schsvr
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/SystemLibraries/Sensors
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/SystemLibraries/Sql
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/SystemLibraries/Stdlib
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/SystemLibraries/Store
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/SystemLibraries/Sysagent2
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/SystemLibraries/Sysagt
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/SystemLibraries/Testproduct
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/SystemLibraries/Xml
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Systemtest/Symbian
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/TechView/Eikstd
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Telephony/Cdmatsy
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Telephony/Ctsy
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Telephony/Dial
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Telephony/ETelUsatGuide
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Telephony/Eax
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Telephony/Etel
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Telephony/Etel3rdparty
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Telephony/Etelcdma
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Telephony/Etelmm
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Telephony/Etelpckt
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Telephony/Etelsat
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Telephony/Fax
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Telephony/Hwrm
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Telephony/Mmtsy
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Telephony/Phbksync
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Telephony/Simtsy
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Telephony/Tools
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Telephony/Trp
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Telephony/nbprotocols_smsstackv2
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/TestTools/Systemmonitor
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/TestTools/Testdriver
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/TestTools/Testexecute
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/TestTools/Utilities
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Tools/Cinidata
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Tools/Debug
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Tools/Depmodel
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Tools/E32tools
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Tools/SdkEng
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/Usb
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/WAPBrowser/Wapbase
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/WAPBrowser/Wapplugins
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/WAPBrowser/Wappush
+/os/buildtools/devlib/devlibhelp/doc_source/MultiToc/9.5-PP/SubsysComp/WAPStack/Wapmessage
+/os/buildtools/devlib/devlibhelp/doc_source/NewStarter
+/os/buildtools/devlib/devlibhelp/doc_source/ToolsAndUtilities95/Build-ref/Mmp-ref
+/os/buildtools/devlib/devlibhelp/doc_source/ToolsAndUtilities95/Build-ref/abld-syntax-ref
+/os/buildtools/devlib/devlibhelp/doc_source/ToolsAndUtilities95/Build-ref/bldmake-ref
+/os/buildtools/devlib/devlibhelp/doc_source/ToolsAndUtilities95/BuildTools/build-dll
+/os/buildtools/devlib/devlibhelp/doc_source/ToolsAndUtilities95/BuildTools/build-gui-app
+/os/buildtools/devlib/devlibhelp/doc_source/ToolsAndUtilities95/BuildTools/emulator
+/os/buildtools/devlib/devlibhelp/doc_source/ToolsAndUtilities95/BuildTools/native
+/os/buildtools/devlib/devlibhelp/doc_source/ToolsAndUtilities95/CSHelp
+/os/buildtools/devlib/devlibhelp/doc_source/ToolsAndUtilities95/CSHelp-ref
+/os/buildtools/devlib/devlibhelp/doc_source/ToolsAndUtilities95/CSHelpGUIGuide/CSHelpGUI
+/os/buildtools/devlib/devlibhelp/doc_source/ToolsAndUtilities95/CSHelpGUIGuide/CSHelpGUIIntro
+/os/buildtools/devlib/devlibhelp/doc_source/ToolsAndUtilities95/Charconv
+/os/buildtools/devlib/devlibhelp/doc_source/ToolsAndUtilities95/Charconv-ref
+/os/buildtools/devlib/devlibhelp/doc_source/ToolsAndUtilities95/Debug/hardwaredebugging_files
+/os/buildtools/devlib/devlibhelp/doc_source/ToolsAndUtilities95/DevTools-ref/CompiledFormat
+/os/buildtools/devlib/devlibhelp/doc_source/ToolsAndUtilities95/DevTools-ref/HowToInitialiseResources
+/os/buildtools/devlib/devlibhelp/doc_source/ToolsAndUtilities95/DevTools-ref/ResourceFileFormat
+/os/buildtools/devlib/devlibhelp/doc_source/ToolsAndUtilities95/DevTools/RegFiles
+/os/buildtools/devlib/devlibhelp/doc_source/ToolsAndUtilities95/EShell
+/os/buildtools/devlib/devlibhelp/doc_source/ToolsAndUtilities95/Emulator/configure
+/os/buildtools/devlib/devlibhelp/doc_source/ToolsAndUtilities95/Emulator/emulator-ref
+/os/buildtools/devlib/devlibhelp/doc_source/ToolsAndUtilities95/Emulator/emulator/Ethernet
+/os/buildtools/devlib/devlibhelp/doc_source/ToolsAndUtilities95/Emulator/emulator/RAS
+/os/buildtools/devlib/devlibhelp/doc_source/ToolsAndUtilities95/Emulator/emulator/configureCommDb
+/os/buildtools/devlib/devlibhelp/doc_source/ToolsAndUtilities95/FileConversionUtilities
+/os/buildtools/devlib/devlibhelp/doc_source/ToolsAndUtilities95/FileConversionUtilities-ref
+/os/buildtools/devlib/devlibhelp/doc_source/ToolsAndUtilities95/Installing
+/os/buildtools/devlib/devlibhelp/doc_source/ToolsAndUtilities95/Installing-ref/PKG_format/PKG_body/PKG_body_install_file
+/os/buildtools/devlib/devlibhelp/doc_source/ToolsAndUtilities95/Installing-ref/PKG_format/PKG_examples
+/os/buildtools/devlib/devlibhelp/doc_source/ToolsAndUtilities95/KitManagement
+/os/buildtools/devlib/devlibhelp/doc_source/ToolsAndUtilities95/Pfsdump
+/os/buildtools/devlib/devlibhelp/doc_source/ToolsAndUtilities95/PrinterDriverGeneration/PdrFileSyntax
+/os/buildtools/devlib/devlibhelp/doc_source/ToolsAndUtilities95/SecurityTools
+/os/buildtools/devlib/devlibhelp/doc_source/ToolsAndUtilities95/TestTools/CTS/KitComparator
+/os/buildtools/devlib/devlibhelp/doc_source/ToolsAndUtilities95/TestTools/CapMan/CapCheck
+/os/buildtools/devlib/devlibhelp/doc_source/ToolsAndUtilities95/TestTools/CapMan/CapImportCheck
+/os/buildtools/devlib/devlibhelp/doc_source/ToolsAndUtilities95/TestTools/CapMan/CapSearch
+/os/buildtools/devlib/devlibhelp/doc_source/ToolsAndUtilities95/TestTools/MigTool
+/os/buildtools/devlib/devlibhelp/doc_source/ToolsAndUtilities95/TestTools/TechView/UsingTechView/App/Agenda
+/os/buildtools/devlib/devlibhelp/doc_source/ToolsAndUtilities95/TestTools/TechView/UsingTechView/App/Alarm
+/os/buildtools/devlib/devlibhelp/doc_source/ToolsAndUtilities95/TestTools/TechView/UsingTechView/App/Audio
+/os/buildtools/devlib/devlibhelp/doc_source/ToolsAndUtilities95/TestTools/TechView/UsingTechView/App/Contacts
+/os/buildtools/devlib/devlibhelp/doc_source/ToolsAndUtilities95/TestTools/TechView/UsingTechView/App/Help
+/os/buildtools/devlib/devlibhelp/doc_source/ToolsAndUtilities95/TestTools/TechView/UsingTechView/App/Message/SMS
+/os/buildtools/devlib/devlibhelp/doc_source/ToolsAndUtilities95/TestTools/TechView/UsingTechView/App/Message/e-mail
+/os/buildtools/devlib/devlibhelp/doc_source/ToolsAndUtilities95/TestTools/TechView/UsingTechView/App/SyncML
+/os/buildtools/devlib/devlibhelp/doc_source/ToolsAndUtilities95/UIDChecksum
+/os/buildtools/devlib/devlibhelp/doc_source/ToolsAndUtilities95/UTraceSolution
+/os/buildtools/devlib/devlibhelp/doc_source/ToolsAndUtilities95/Zshell/Reference/commands
+/os/buildtools/devlib/devlibhelp/doc_source/ToolsAndUtilities95/Zshell/setup/DeviceSetup
+/os/buildtools/devlib/devlibhelp/doc_source/ToolsAndUtilities95/im-report
+/os/buildtools/devlib/devlibhelp/doc_source/ToolsPartner/StaticAnalysis/ResourceAllocation
+/os/buildtools/devlib/devlibhelp/doc_source/ToolsPartner/StaticAnalysis/SymbianCoding
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/cedgen/tools/d/AddingNewCompilationSuitesToSymbianOSToolchain_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/cedgen/tools/d/EABI_Thunk_Offset_Problem_Guide_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/cedgen/tools/d/EKA2_Run_Mode_Debugger_Integration_Guide_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/cedgen/tools/d/EKA2_Stop_Mode_Debugger_Integration_Guide_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/cedgen/tools/d/Filename_Policy_Migration_Guide_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/cedgen/tools/d/Migrating_from_RVCT21_build_328_to_build_416_v1.0_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/cedgen/tools/d/On_Exporting_and_Importing_Classes_v1.0_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/cedgen/tools/d/PREQ1086_User_Documentation_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/cedgen/tools/d/RVCT2.2andABIv2MigrationGuidev1.0_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/cedgen/tools/d/RVCT_Toolchain_Architectural_Description_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/cedgen/tools/d/Raptor_Migration_Note_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/cedgen/tools/d/SGL.GT0270.017_v1.0_BuildingSymbianOSWithDevelopmentKit_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/cedgen/tools/d/SGL.TS0028.019-SymbianOS9.3-NewBuildSystemFeaturesv0.2_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/cedgen/tools/d/SymbianOSABIv1_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/cedgen/tools/d/Tools_Architectural_Description_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/cedgen/tools/d/Tools_Functional_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/cedgen/tools/d/Tools_Release_Note_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/cedgen/tools/d/Tools_Support_for_the_Filename_Policy_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/cedgen/tools/d/design/DetailsonDOMParser_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/cedgen/tools/d/design/SGL.GT0270.011_v0.3_ExternalToolsDesignSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/cedgen/tools/d/design/SGL.GT0270.020_v0.2_PREQ1086DesignSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/cedgen/tools/d/design/SGL.GT0270.302v0.1VisualStudioForISV_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/cedgen/tools/d/design/SGL.PR0085.017_V2.0_ROFSBUILD_ROM_Flexing_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/cedgen/tools/d/design/SGL.PR0085.018_v2.0_CodeWarrior_Plugin_Adapter_Support_Technical_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/cedgen/tools/d/design/SGL.PR0085.020_V2.0_ROFSBUILD_Autosizing_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/cedgen/tools/d/design/SGL.PR0099.024_v1.0_PREQ687_Optimised_Module_Build_EABI_Design_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/cedgen/tools/d/design/SGL.PR0099.028_v1.0_Backward_Compatibility_Analysis_Tool_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/cedgen/tools/d/design/SGL.SM0013.154PREQ1110EfficientROMPaging_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/cedgen/tools/d/how_to_build_with_tools2_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/cedgen/tools/d/test/SGL.GT0270.014_v0.2_PREQ1086ExternalTool_TestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/cedgen/tools/d/test/SGL.GT0270.019_v0.1_PREQ1086_CDFParser_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/cedgen/tools/d/test/SGL.GT0270.019_v0.4_PREQ1086_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/cedgen/tools/d/test/SGL.GT0270.019_v0.5_PREQ1086_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/cedgen/tools/d/test/SGL.GT0270.302Rev0.1TestReport_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/cedgen/tools/d/test/SGL.GT0270.302Rev1.0TestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/cedgen/tools/d/test/SGL.PR0085.011_Rev2.0_Tool_Chain_Test_Plan_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/cedgen/tools/d/test/SGL.PR0085.019_v1.0_CodeWarrior_Plugin_Adapter_Support_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/cedgen/tools/d/test/SGL.PR0085.026_v1.0_Triton_Beta_Test_Plan_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/buildtools/toolsandutils/e32tools/readtype/d/UnicodeCharacterDataandLineBreakdataUpdateHistory_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/buildtools/devlib/devlibhelp/tools/buildrefdoc/d/rel/PREQ1198_Doxygen_Support_for_Java_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/buildtools/devlib/devlibhelp/tools/buildrefdoc/d/rel/SGL.PR0087.455_Rev1.0_D1_FunctionalSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/buildtools/devlib/devlibhelp/tools/buildrefdoc/d/rel/SGL.PR0087.456_Rev1.0_D1_Architecture_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/buildtools/devlib/devlibhelp/tools/buildrefdoc/d/rel/SGL.PR0087.458_Rev1.0_D1_Front_End_Design_Document_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/buildtools/devlib/devlibhelp/tools/buildrefdoc/d/rel/SGL.PR0087.463_Rev1.0_D1_Test_Suite_Design_Document_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/buildtools/devlib/devlibhelp/tools/buildrefdoc/d/rel/SGL.PR0087.466_Rev0.3_D1_Interface_management_Rules_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/buildtools/devlib/devlibhelp/tools/buildrefdoc/d/rel/SGL.PR0098.605_Sys_Doc_in-house_tools_guide_v1.0_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/buildtools/devlib/devlibhelp/tools/buildrefdoc/d/rel/SGL.PR0098.xxx_v0.1.ROM_Purpose_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/buildtools/devlib/devlibhelp/tools/buildrefdoc/d/rel/SGL.PR0098.xxx_v0.2.Capability_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/buildtools/devlib/devlibhelp/tools/buildrefdoc/d/rel/SGL.PR0098.xxx_v0.2.XML_NAME_encoding_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/buildtools/devlib/devlibhelp/tools/buildrefdoc/d/rel/SGL.PR0098.xxx_v0.3.Capability_SysWide_XML_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/buildtools/devlib/devlibhelp/tools/buildrefdoc/d/rel/SGL.PR0098.xxx_v0.5.Platsec_Insource_Comment_Model_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/buildtools/devlib/devlibhelp/tools/doc_tree/d/doc_tree_Functional_specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/buildtools/devlib/devlibhelp/tools/doc_tree/d/doc_tree_design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/buildtools/devlib/devlibhelp/tools/doc_tree/d/how_to_use_doc_tree_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/d/doc_tree_TestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/buildtools/devlib/devlibhelp/tools/eclipse_map/d/eclipse_map_design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/buildtools/devlib/devlibhelp/tools/interface-reporter/d/How_To_Use_Interface_Reporter_Tools_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/buildtools/devlib/devlibhelp/tools/interface-reporter/d/SGL.GT0179.303_v1.0_IM_Report_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/buildtools/devlib/devlibhelp/tools/multitoc/d/GT308_FreemindMapsAndXbuild_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/buildtools/devlib/devlibhelp/tools/multitoc/d/GT308_MultipleTablesOfContents_HowTo_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/buildtools/devlib/devlibhelp/tools/start_page_tool/d/SGL.gt0249_DevLib_StartPage_Refactoring_v0.1_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/Multimedia_Architectural_Description_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/Multimedia_Functional_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/characterisations/A3F_Characterisation_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/characterisations/SGL.GT0275.118MMFAudioRecorderUtilityCharacterization_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/characterisations/SGL.GT0275.119MMFAudioPlayerUtilityCharacterization_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/characterisations/SGL.GT0275.120MMFVideoPlayerUtilityCharacterization_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/characterisations/SGL.GT0275.121MMFAudioControllerCharacterization_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/characterisations/SGL.GT0287.102MultimediaDevSoundBaselineCompatibility_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/characterisations/SGL.GT0396.203MetadataUtilityFrameworkCharacterization_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/characterisations/SGL.GT0396.222MMTransmitterUtilityCharacterization_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/designs/A3F_Specification_API_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/designs/ECam_Design_Onboard_Camera_API_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/designs/ICL_Design_BitmapTransforms_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/designs/ICL_Design_Codec_Extension_Detailed_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/designs/ICL_Design_EXIF_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/designs/ICL_Design_Framework_Extension_Detailed_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/designs/ICL_Design_Generic_ImgDisplPlugin_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/designs/ICL_Design_GifScaler_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/designs/ICL_Design_ImageDisplay_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/designs/ICL_Design_ImageTransform_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/designs/ICL_Design_MNG_Decoder_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/designs/ICL_ImageProcessor_Framework_Design_Overview_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/designs/MDF_Design_Codec_API_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/designs/MMF_Design_ASR_Client_API_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/designs/MMF_Design_ASR_Plugin_API_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/designs/MMF_Design_AudioServer_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/designs/MMF_Design_Audio_Clients_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/designs/MMF_Design_Audio_Resource_Notification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/designs/MMF_Design_AviVideoControllerPlugin_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/designs/MMF_Design_Bluetooth_Stereo_Headset_Support_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/designs/MMF_Design_Controller_Framework_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/designs/MMF_Design_DevASR_API_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/designs/MMF_Design_DevMIDI_API_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/designs/MMF_Design_DevSound_API_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/designs/MMF_Design_DevVideo_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/designs/MMF_Design_MIDI_Client_API_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/designs/MMF_Design_OggController_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/designs/MMF_Design_SBC_Encoder_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/designs/MMF_Design_Secure_API_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/designs/MMF_Design_Secure_DRM_Plugin_Server_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/designs/MMF_Design_Video_Clients_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/designs/MMF_Specification_DevVideo_AVC_API_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/designs/MMF_Specification_DevVideo_Common_Elements_API_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/designs/MMF_Specification_DevVideo_H.263_API_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/designs/MMF_Specification_DevVideo_MPEG4_Visual_API_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/designs/MMF_Specification_DevVideo_On2_VP6_API_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/designs/MMF_Specification_DevVideo_Playback_API_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/designs/MMF_Specification_DevVideo_Playback_HW_Device_API_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/designs/MMF_Specification_DevVideo_Recording_API_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/designs/MMF_Specification_DevVideo_Recording_HW_Device_API_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/designs/MMF_Specification_DevVideo_Sorenson_Spark_API_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/designs/MMF_Specification_DevVideo_VC1_API_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/designs/MMF_Specification_Hardware_Device_API_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/designs/SGL.GT0137.105_Rev1.0_MMF_Audio_Controller_Plugin_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/designs/SGL.GT0137.114Rev1.23MultimediaTestFrameworkSystemDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/designs/SGL.GT0137.138_Rev1.0_Multimedia_v7.0s_ICLImageFormat_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/designs/SGL.GT0162.156V1.02DevSoundworkpackageDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/designs/SGL.GT0287.108MultimediaRecogniseUnsupportedFormatsDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/designs/SGL.GT0287.130SecondaryDisplaySupportDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/designs/SGL.GT0343.133_MobileTV_Design_DVBH_HAI_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/designs/SGL.GT0353.119GraphicsSurfacesDesignv1.0_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/designs/SGL.GT0353.140WindowlessGraphicsSurfacesDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/designs/SGL.GT0396.201MetadataUtilityFrameworkDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/designs/SGL.GT0396.216PREQ2000MultimediaFMTransmitterDetailedDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/designs/SGL.GT0413.207VideoSubtitleDetailedDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/designs/SGL.GT0413.208PREQ20503GPLibraryDetailDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/functional_specs/3GPLibrary_Functional_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/functional_specs/ICL_Functional_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/functional_specs/MMF_Functional_Specification_DevASR_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/functional_specs/MMF_Functional_Specification_DevMidi_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/functional_specs/MMF_Functional_Specification_DevSound_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/functional_specs/MMF_Functional_Specification_DevVideo_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/functional_specs/MMF_Functional_Specification_MIDIClient_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/functional_specs/MMF_Functional_Specification_Speech_Recognition_Client_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/functional_specs/MMF_Functional_Specification_Tuner_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/functional_specs/MUF_Functional_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/functional_specs/OpenGLESHeaders_Functional_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/functional_specs/Transmitter_Functional_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/functional_specs/Tuner_Functional_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/how_tos/How_to_extend_the_MMF_Controller_Framework_APIs_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/how_tos/How_to_include_Multimedia_components_on_ROM_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/how_tos/How_to_use_the_ICL_Client_APIs_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/how_tos/How_to_use_the_MMF_Client_APIs_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/how_tos/How_to_use_the_Multimedia_Test_Framework_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/how_tos/How_to_write_a_CMMFHwDevice_using_the_CMMFSwCodecWrapper_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/how_tos/How_to_write_a_DevSound_CustomInterface_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/how_tos/How_to_write_a_MUF_Parser_Plugin_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/how_tos/How_to_write_an_ICL_Plugin_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/how_tos/How_to_write_an_MMF_Codec_Plugin_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/how_tos/How_to_write_an_MMF_Controller_Plugin_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/how_tos/How_to_write_an_MMF_Format_Plugin_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/how_tos/How_to_write_an_MMF_Source_Sink_Plugin_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/how_tos/Multimedia_How-To_Use_3GP_Library_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/how_tos/Multimedia_How_to_build_and_test_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/how_tos/Multimedia_How_to_use_the_MUF_Client_API_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/how_tos/Multimedia_How_to_use_the_Tuner_API_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/how_tos/SGL.GT0396.223How_to_use_the_Multimedia_Transmitter_API_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/how_tos/SGL.GT0396.225How_to_write_Multimedia_Transmitter_Plugin_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/how_tos/SGL.GT0413.222VideoSubtitleHowtodoc_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/how_tos/multimedia_how-to_use_video_graphics_surfaces_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/how_tos/multimedia_how-to_use_windowless_graphics_surfaces_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/internal_documents/SGL.GT0137.512Rev1.0Multimediav7.0sSubsystem3rdPartySupplierInformation_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/reports/Multimedia_Background_Audio_Performance_Report_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/test_design/ICL_IntTestDesign_ImageDecoder_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/test_design/ICL_IntTestDesign_YUVConversion_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/test_design/MMF_IntTestDesign_DevSound_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/test_design/MMF_IntTestDesign_DevVideo_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/test_design/MMF_IntTestDesign_VCLNT_AVI_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/test_design/MVS_IntTestDesign_Agents_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/Multimedia/d/use_cases/SGL.GT0287.110MultimediaDevSoundUseCases_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/SyncML/datasync/d/Data_Store_Capabilities_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/SyncML/datasync/d/Data_Synchronisation_Architectural_Description_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/SyncML/datasync/d/SyncML_DS_Functional_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/SyncML/datasync/d/SyncML_DS_plugin_howto_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/SyncML/datasync/d/SyncML_Data_Provider_Discovery_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/SyncML/datasync/d/SyncML_Data_Providers_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/SyncML/datasync/d/SyncML_Data_Session_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/SyncML/datasync/d/SyncML_How-To_Register_ECom_Plugins_With_Host_Servers_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/SyncML/datasync/d/SyncML_Push_Message_Parsers_Notification_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/SyncML/framework/d/MigratingSyncDataStoreSettingstoCenRepDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/SyncML/framework/d/MigrationofClientObserverClassesbetweenSyncMLClient2.0and3.0_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/SyncML/framework/d/SyncML_Client_API_Modifications_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/SyncML/framework/d/SyncML_Configuration_Localisation_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/SyncML/framework/d/SyncML_Framework_Architectural_Description_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/SyncML/framework/d/SyncML_Framework_Functional_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/SyncML/framework/d/SyncML_Framework_Support_For_Generic_Alerts_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/SyncML/framework/d/SyncML_How-To_Client_API_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/SyncML/framework/d/SyncML_How-To_Configure_SyncML_Framework_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/SyncML/framework/d/SyncML_How-To_Configure_Sync_Over_OBEX_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/SyncML/framework/d/SyncML_How-To_Edit_Sync_Data_Store_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/SyncML/framework/d/SyncML_How-To_Sync_Data_Store_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/SyncML/framework/d/SyncML_How-To_Use_Data_Sync_Filtering_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/SyncML/framework/d/SyncML_How_To_Write_Transport_Adapters_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/SyncML/framework/d/SyncML_Notifier_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/SyncML/framework/d/SyncML_Push_Message_Parser_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/SyncML/framework/d/SyncML_Sync_Agent_Client_API_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/SyncML/framework/d/SyncML_Sync_Agent_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/SyncML/framework/d/SyncML_Sync_Data_Store_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/SyncML/framework/d/SyncML_Sync_Engine_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/SyncML/framework/d/SyncML_Transport_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/SyncML/framework/d/SyncML_User_Interaction_And_Notification_How_To_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/SyncML/framework/d/SyncML_WAP_Push_Plugin_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/SyncML/framework/d/SyncML_XmlToolkit_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/SyncML/framework/test/capabilities/d/SyncMLPlatformSecurityTestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/SyncML/framework/test/t_pimconfig/d/PimConfig_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/SyncML/framework/test/t_pimconfig/d/ProfileConfigandPimConfigQuickReferece_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/SyncML/framework/test/t_pimconfig/d/UsingProfileConfigandPimConfig_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/SyncML/framework/test/t_profileconfig/d/ProfileConfig_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/SyncML/framework/test/t_profileconfig/d/ProfileConfigandPimConfigQuickReferece_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/SyncML/framework/test/t_profileconfig/d/UsingProfileConfigandPimConfig_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/SyncML/test/d/SGL.GT0234.108_PREQ312_DataSync1.2TestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/SyncML/test/d/SGL.GT0234.110_PREQ313_Data_Sync_FilteringTestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/SyncML/test/d/SGL.GT0234.111_PREQ314_Data_Sync_Hierarchical_SynchronisationTestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/SyncML/test/d/SGL.GT0234.114_PREQ811_Data_Sync_Contacts_TestSpecification_v0.1_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/SyncML/test/d/SGL.GT0234.115_PREQ542_DataSync_TestSpecification_v0.1_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/app/organizer/pimappservices/calendar/d/HowToImproveApplicationStart-upTime_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/app/organizer/pimappservices/calendar/d/HowToUseCalendarAttachments_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/app/organizer/pimappservices/calendar/d/HowToUseCalendarLogging_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/app/organizer/pimappservices/calendar/d/HowToUseInstanceIterators_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/app/organizer/pimappservices/calendar/d/HowToUseMultipleAlarms_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/app/organizer/pimappservices/calendar/d/InterimAPIMigration_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/app/organizer/pimappservices/calendar/d/iCalandvCalProperties0.3_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/app/contacts/phonebookengines/contactsmodel/d/AppEngines_CntModel_How_To_Export_PBAP_Contacts_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/app/contacts/phonebookengines/contactsmodel/d/CntVcardPronunciationFieldSupport_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/app/contacts/phonebookengines/contactsmodel/d/Cntmodel_Data_Schema_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/app/contacts/phonebookengines/contactsmodel/d/ContactModelUsageGuide1.0_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/app/contacts/phonebookengines/contactsmodel/d/Contacts_How-To_Improve_Application_Start-up_Time_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/app/contacts/phonebookengines/contactsmodel/d/HowTo_AddFilterableFields_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/app/contacts/phonebookengines/contactsmodel/d/SGL.GT0232.209_How-To_Migration_Guide_for_Contacts_Model_PREQ811_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/app/contacts/phonebookengines/contactsmodel/d/SGL.GT0323.222_How-To_Migration_Guide_for_Contacts_Model_PREQ1187_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/app/contacts/phonebookengines/contactsmodel/d/SGL.GT228.019_MigrationGuideforCntModelplug-insinSymbianOSv9.1_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/app/contacts/phonebookengines/contactsmodel/d/contacts_sort_plugin_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/app/contacts/phonebookengines/contactsmodel/d/howto_addnewfields_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/app/contacts/phonebookengines/contactsmodel/tsrc/integration/perffuncsuite/d/SGL.GT0257.619PREQ811CITTestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/app-engines/d/App-Engines_Architectural_Description_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/app-engines/d/App-Engines_Functional_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/classicui/lafagnosticuifoundation/animation/d/AnimationDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/app-framework/d/App-Framework_Architectural_Description_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/app-framework/d/AppFrameworkDeltaFunctionalSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/app-framework/d/Application_Framework_Release_Note_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/app-framework/d/FEPs_Functional_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/app-framework/d/HowToConfigureApparcAppScanDelay_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/app-framework/d/HowToExecuteAppFrameworkTestCases_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/app-framework/d/Howtoportguide-appstoexes_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/app-framework/d/Howtoportguide-controlpanelplug-ins_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/app-framework/d/Howtoportguide-datacagedapplications_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/app-framework/d/Howtoportguide-datarecognizers_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/app-framework/d/Howtoportguide-filerecognizers_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/app-framework/d/Howtoportguide-notifiers_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/app-framework/d/component_design/ConeComponentDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/app-framework/d/component_design/SGL.GT0336.051.Rev0.2_ViewSrv_Design_Document_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/app-framework/d/how_to/HowToMultipleScreens_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/app-framework/d/how_to/HowToNotifiers_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/app-framework/d/test_specifications/9.2/SGL.GT0247.162CR0714UIFTestSpecifications_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/app-framework/d/test_specifications/9.2/SGL.GT0247.163CR0583TestSpecifications_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/app-framework/d/test_specifications/9.2/SGL.GT0247.175CR0885TestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/app-framework/d/test_specifications/9.3/SGL.GT0297.101PREQ1228TestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/app-framework/d/test_specifications/9.3/SGL.GT0297.108CR0902TestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/app-framework/d/test_specifications/9.4/SGL.GT0336.156CR1035TestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/app-framework/d/test_specifications/9.5/SGL.GT0283.115PREQ1227UIFTestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/app-framework/d/test_specifications/9.5/SGL.GT0328.402PREQ1089UnitTestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/app-framework/d/test_specifications/9.5/SGL.GT0328.403PREQ871IntegrationTestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/app-framework/d/test_specifications/9.5/SGL.GT0328.404PREQ1089IntegrationTestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/app-framework/d/test_specifications/9.5/SGL.GT0328.406PREQ871UnitTestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/app-framework/d/test_specifications/9.6/SGL.GT0373.101PREQ1803TestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/textandloc/textrendering/texthandling/d/ETEXTTestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/textandloc/textrendering/textformatting/d/DocumentPositionsinTagma_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/textandloc/textrendering/textformatting/d/FormandTagmaFormattingLogic_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/textandloc/textrendering/textformatting/d/TagmaArchitecturalAnalysis_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/textandloc/textrendering/textformatting/test/d/FORMTestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/textandloc/textrendering/textformatting/test/d/FormandETextDefectanalysis_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/textandloc/textrendering/textformatting/test/tbandformat/d/BandFormattingLogicTestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/textandloc/textrendering/textformatting/test/tbandformat/d/BandFormattingTestCode_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/devicesrv/sysstatemgmt/systemstarter/d/9.4/HowTo-CreatingStaticStartupConfigurations_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/devicesrv/sysstatemgmt/systemstarter/d/9.4/SysStart_Design_Description_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/devicesrv/sysstatemgmt/systemstarter/d/9.4/SysStart_Functional_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/devicesrv/sysstatemgmt/systemstarter/d/9.5/CoreOS_System_Starter_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/devicesrv/sysstatemgmt/systemstarter/d/9.5/CoreOS_System_Starter_Functional_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/devicesrv/sysstatemgmt/systemstarter/d/9.5/Howto-AdaptingComponentstobeStartupStateAware_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/devicesrv/sysstatemgmt/systemstarter/d/9.5/Howto-CreatingStaticandDynamicStartupConfigurations_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/devicesrv/sysstatemgmt/systemstarter/d/9.5/Howto-MigratingOvernightTestScriptstoSystemStarter_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/devicesrv/sysstatemgmt/systemstarter/d/9.5/SystemStarterPanicCodes_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/devicesrv/sysstatemgmt/systemstarter/d/9.5/SystemStarterReleaseNotes_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/devicesrv/sysstatemgmt/systemstarter/d/9.5/SystemStarterSubsystemArchitecturalDescriptionSupplement_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/classicui/commonuisupport/uikon/d/SGL.GT0226.116.v0.2.UikonUnbranchingHowTo_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/appsupport/commonappservices/alarmserver/d/SGL.GT0257.207_Rev1.1_Alarm_Server_Configuration_how_to_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/appsupport/commonappservices/alarmserver/test/integration/alarmtestserver/d/SGL.GT0257.603_AlarmServerupdatesTestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/app/organizer/pimappsupport/chinesecalendarconverter/d
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/appsupport/filehandling/htmltorichtextconverter/d
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/app-services/d/App-Services_Architectural_Description_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/app-services/d/App-Services_Functional_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/app-services/d/SGL.GT0109.110_Rev1.2_AppServices_Subsystem_Release_Note_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/app-services/d/SGL.GT228.017_MigrationGuideforv9.1TimeHandlingAPIs_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/app/helps/symhelp/helpmodel/d/Howtomakehelpfilesupgradeableonthesecureplatform_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/app-services/timezonelocalization/d/SGL.GT0284.216-TimeZoneServicesCR1606How-To_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/appsupport/tzservices/tzserver/d/SGL.GT0197.233App-ServicesTz9.1How-ToUsetheAPIs_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/appsupport/tzservices/tzserver/d/SGL.GT0403.210SOSv9.5TimeZoneServicesPREQ1776How-To_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/appsupport/tzpcside/tzcompiler/d/SGL.GT0197.232App-ServicesTz9.1How-ToCreatetheTzDatabase_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/appsupport/tzpcside/tzcompiler/test/integration/tzcompilertests/d
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/app/organizer/pimappsupport/vcardandvcal/d/CR1294Howto1.0_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/app/organizer/pimappsupport/vcardandvcal/d/SOUND_Propety_Support_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/appsupport/tzservices/worldserver/d
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/netprotocols/applayerpluginsandutils/bookmarksupport/d/BookmarkDatabaseDevelopersGuide_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/netprotocols/applayerpluginsandutils/bookmarksupport/d/BookmarksArchitecturalDescription_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/netprotocols/applayerpluginsandutils/bookmarksupport/d/BookmarksFunctionalSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/netprotocols/applayerprotocols/httpexamples/pipeliningconfigfilter/d/PipeliningConfigurationFilterDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/netprotocols/applayerprotocols/httpexamples/pipeliningconfigfilter/d/PipeliningConfigurationFilterTestHarnessDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/netprotocols/applayerprotocols/httpexamples/pipeliningconfigfilter/d/PipeliningConfigurationFilterTestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/netprotocols/applayerprotocols/httptransportfw/d/HTTPTransportFrameworkArchitecturalDescription_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/netprotocols/applayerprotocols/httptransportfw/d/HTTPTransportFrameworkFunctionalSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/netprotocols/applayerprotocols/httptransportfw/d/SGL.GT0128.030REV1.00HTTPandWSPSecurityPolicyPluginAPI_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/netprotocols/applayerprotocols/httptransportfw/d/SGL.GT0128.036DesignForCookieSupportRev1.0_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/netprotocols/applayerprotocols/httptransportfw/d/SGL.GT0165.303v0.5UAProfDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/netprotocols/applayerprotocols/httptransportfw/d/SGL.GT0197.407.APIforSettingHTTPSessionID_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/netprotocols/applayerprotocols/httptransportfw/test/d/HTTPTestHarnessSuite_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/appsupport/contenthandling/webrecognisers/d/RecogniserTestSpecifications_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/bluetooth/latest/d/Bluetooth_Architectural_Description_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/bluetooth/latest/d/Bluetooth_Functional_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/bluetooth/latest/d/Bluetooth_Release_Note_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/bluetooth/latest/d/designs/Bluetooth_Design_AVCTP_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/bluetooth/latest/d/designs/Bluetooth_Design_AVRCP_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/bluetooth/latest/d/designs/Bluetooth_Design_GAVDP_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/bluetooth/latest/d/designs/Bluetooth_Design_HCI_v2_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/bluetooth/latest/d/designs/Bluetooth_Design_Minimum_Passkey_Length_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/bluetooth/latest/d/designs/Bluetooth_Design_RemoteControl_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/bluetooth/latest/d/designs/PAN_Agent_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/bluetooth/latest/d/designs/SGL.GT0189.103_V0.2_BNEP_Implementation_Description_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/bluetooth/latest/d/designs/SGL.GT0237.121_PBAP_design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/bluetooth/latest/d/designs/SGL.GT0400.100AVRCP1.3Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/bluetooth/latest/d/how_tos/BluetoothSubsystemKnownIOPIssues_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/bluetooth/latest/d/how_tos/Bluetooth_Demand_Paging_Classification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/bluetooth/latest/d/how_tos/Bluetooth_How-To_Bluetooth_v2.1_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/bluetooth/latest/d/how_tos/Bluetooth_How-To_HCI_v2_Migration_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/bluetooth/latest/d/how_tos/Bluetooth_How_To_Use_AFH_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/bluetooth/latest/d/how_tos/DefaultBTReg_Howto_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/bluetooth/latest/d/how_tos/How_To_Remove_Shortlink_Components_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/bluetooth/latest/d/how_tos/Pbap_How_To_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/bluetooth/latest/d/how_tos/SGL.GT0299.600HowToSetupBluetoothPANNAP_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/bluetooth/latest/d/how_tos/SGL.GT0400.103avrcp_1.3_How_To_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/bluetooth/latest/d/how_tos/SGL.GT0400.105remote_control_How_To_v0.1_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/bluetooth/latest/d/how_tos/SGL.TS008.100_PAN_profile_from_a_UI_perspective_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/bluetooth/latest/d/test_specs/SGL.GT259.507_v1.0_PREQ581_Shortlink_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/commsconfig/commsdatabaseshim/d/CommDb_API_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/commsconfig/commsdatabaseshim/d/CommDb_Design_Delta_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/commsconfig/commsdatabaseshim/ts_commdb/te_cdma2000settings/d/SGL.GT0161.307CDMA2000CommDBSettingsTestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/commsfwtools/preparedefaultcommsdatabase/d/CED_Migration_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/commsfwtools/preparedefaultcommsdatabase/d/CeddumpmigrationDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/commsfwtools/preparedefaultcommsdatabase/d/CommsDatAPI_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/commsfwtools/preparedefaultcommsdatabase/d/CommsDatAPIandMigrationGuide_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/commsfwtools/preparedefaultcommsdatabase/d/CommsDatRefFinalDocumentation_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/commsfwtools/preparedefaultcommsdatabase/d/CommsDataFormat_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/commsfwtools/preparedefaultcommsdatabase/d/CommsDatabaseDataSchemaDescription_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/commsfwtools/preparedefaultcommsdatabase/d/DeprecateR97_R98QoSParametersPSDagent_Migration_HowTo_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/commsfwtools/preparedefaultcommsdatabase/d/HowTo_Access_Points_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/commsfwtools/preparedefaultcommsdatabase/d/Howto_Configure_CSD_Connections_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/commsfwtools/preparedefaultcommsdatabase/d/Howto_Configure_Network_Connections_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/commsfwtools/preparedefaultcommsdatabase/d/Howto_Configure_PSD_Connections_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/commsfwtools/preparedefaultcommsdatabase/d/Howto_Configure_VPN_Connections_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/commsfwtools/preparedefaultcommsdatabase/d/MappingintheCommsDatabase_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/commsfwtools/preparedefaultcommsdatabase/d/te_commsdattestspec_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/commsfwtools/preparedefaultcommsdatabase/tools/ced/d/Commdb_Configuration_Editor_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/commsfwtools/preparedefaultcommsdatabase/tools/ced/d/hiddenreadonlyupdates/ReadOnly_Hidden_Support_Architectural_Analysis_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/commsfwtools/preparedefaultcommsdatabase/tools/ced/d/hiddenreadonlyupdates/ReadOnly_Hidden_Support_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/commsfwtools/preparedefaultcommsdatabase/tools/ced/te_ced/d/ced_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/persistentdata/traceservices/commsdebugutility/d/ComsDbgAPI_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/persistentdata/traceservices/commsdebugutility/d/ComsDbgDesignDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/persistentdata/traceservices/commsdebugutility/d/ComsDbg_Configuring_Logging_By_Comms_Subsystems_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/persistentdata/traceservices/commsdebugutility/d/ComsDbg_How_To_Document_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/comms-infras/d/Comms-Infras_Subsystem_Architectural_Description_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/comms-infras/d/Comms-Infras_Subsystem_Architecture_FAQ_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/comms-infras/d/Comms-Infras_Subsystem_Functional_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/comms-infras/d/Comms-Infras_Subsystem_How_to_implement_a_layer_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/comms-infras/d/Comms-Infras_Subsystem_Release_Note_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/comms-infras/d/CommsFrameworkMigrationGuideforNIFsandv1.5PRTs_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/comms-infras/d/HowtoruntestharnessesinComms-Infras_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/comms-infras/d/SelectionFundamentals_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/commsfwsupport/commselements/commsfw/d/CommsFrameworkAPI_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/commsfwsupport/commselements/commsfw/d/CommsFrameworkTestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/commsfwsupport/commselements/commsfw/te_commsfw_transport/d/Preq399ThreadTransportTestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/commsfwsupport/commselements/meshmachine/d/MeshMachineFundamentals_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/commsfwsupport/commselements/msgparser/d/MessageStructureParserDesignDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/commsfwsupport/commselements/netmeta/d/NetMeta_Design_Document_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/commsfwsupport/commselements/netsubscribe/d/NetSubscribeDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/commsfwsupport/commselements/nodemessages/d/SGL.GT0359.057.NodeMessages_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/commsfwsupport/commselements/rootserver/d/RootServerAPIReference_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/commsfwsupport/commselements/rootserver/d/RootServerCapabilitiesTestSpec_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/commsfwsupport/commselements/rootserver/d/RootServerComponentTestSpec_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/commsfwsupport/commselements/rootserver/d/RootServerDesignDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/commsfwsupport/commselements/startserver/d/StartServerDesignDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/commsfwsupport/commselements/statemachine/d/StateMachineDesignDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/commsfwsupport/commselements/testing/asyncenv_devcycle_demo/d/AsynchronousEnvironmentDevelopmentDemo_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/commsfwsupport/commselements/tools/messageinterceptregister/d/HowToTestFallibleMessages_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/commsfwsupport/commselements/tools/messageinterceptregister/d/MessageInterceptorDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/datacommsserver/esockserver/d/ConnectionServerAPIFunctionalSpec_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/datacommsserver/esockserver/d/ConnectionServerHowTo_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/datacommsserver/esockserver/d/ConnectionStack_How_To_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/datacommsserver/esockserver/d/ControlPlaneConnectionStackphase1_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/datacommsserver/esockserver/d/DesignforFlexibleCommsStack_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/datacommsserver/esockserver/d/ESOCKComponentTestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/datacommsserver/esockserver/d/ESock_CESockIniData_Te_Ini_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/datacommsserver/esockserver/d/ESock_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/datacommsserver/esockserver/d/ESock_HowTo_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/datacommsserver/esockserver/d/Esock_CR1039_CommsData_Plug-in_Design_Document_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/datacommsserver/esockserver/d/HOWTOinstallanesockprotocolaftermarket_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/datacommsserver/esockserver/d/NonSeamlessBearerMobility_ClientSideAPIs_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/datacommsserver/esockserver/d/NonSeamlessBearerMobility_ReferenceImplementation_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/datacommsserver/esockserver/d/NonSeamlessBearerMobility_ServerSideAPIs_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/datacommsserver/esockserver/d/RConnectionAPIforConnectionManagement_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/datacommsserver/esockserver/d/RConnection_API_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/datacommsserver/esockserver/d/RConnection_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/datacommsserver/esockserver/d/RConnectiondeprecatedmethodsHOWTO_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/datacommsserver/esockserver/d/RInternalSocket_TE_EintSock_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/datacommsserver/esockserver/d/RSubConnection_API_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/datacommsserver/esockserver/d/TS_Multihoming_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/datacommsserver/esockserver/test/te_esockteststeps/d/TE_EsockTestSteps_TestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/datacommsserver/esockserver/test/te_rconnection/d/SGL.GT0253.202Non-SeamlessBearerMobility-TestSpec_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/datacommsserver/esockserver/test/te_rconnection/d/SGL.GT0253.220DataMonitoring-TestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/datacommsserver/esockserver/test/te_rconnection/d/TE_RConnection_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/datacommsserver/esockserver/test/te_rconnectionserv/d/RConnectionServAPItestspecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/datacommsserver/esockserver/test/te_rsubconnection/d/TE_RSubConnection_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/datacommsserver/esockserver/test/te_rsubconnection/version1/d/TE_RSubConnection_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/persistentdata/loggingservices/filelogger/d/Flogger_API_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/commsfwutils/mbufmgr/d/MBufManagerComponentTestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/commsfwutils/mbufmgr/d/MBufManagerDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/datacommsserver/networkinterfacemgr/d/ConfigDaemonAPIReference_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/datacommsserver/networkinterfacemgr/d/Howto_obtain_SIP_Server_Address_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/datacommsserver/networkinterfacemgr/d/Nifman_API_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/datacommsserver/networkinterfacemgr/d/Nifman_Configuration_Design_Modifications_For_Mobile_IP_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/datacommsserver/networkinterfacemgr/d/Nifman_Configuration_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/datacommsserver/networkinterfacemgr/d/Nifman_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/datacommsserver/networkinterfacemgr/d/Nifman_Unit_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/datacommsserver/networkinterfacemgr/version1/d/ConfigDaemonAPIReference_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/datacommsserver/networkinterfacemgr/version1/d/Howto_obtain_SIP_Server_Address_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/datacommsserver/networkinterfacemgr/version1/d/Nifman_API_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/datacommsserver/networkinterfacemgr/version1/d/Nifman_Configuration_Design_Modifications_For_Mobile_IP_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/datacommsserver/networkinterfacemgr/version1/d/Nifman_Configuration_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/datacommsserver/networkinterfacemgr/version1/d/Nifman_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/datacommsserver/networkinterfacemgr/version1/d/Nifman_Unit_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/commsprocess/commsrootserverconfig/d/CommsProcessStartup-ConfigDesignDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/commsprocess/commsrootserverconfig/d/ConfiguratorCapabilitiesTestSpec_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/commsprocess/commsrootserverconfig/d/RootServerAPIReference_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/commsprocess/commsrootserverconfig/d/RootServerCapabilitiesTestSpec_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/commsprocess/commsrootserverconfig/d/RootServerComponentTestSpec_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/commsprocess/commsrootserverconfig/d/RootServerDesignDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/commsprocess/commsrootserverconfig/te_configurator/d/SGL.GT0280.202PREQ890ConfiguratorTestSpecification_v1.0_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/commsinfrastructureapitest/commsinfrastructuresvs/echoserver/d/EchoServerHowToDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/connectivity/d/PC_Connectivity_Architectural_Description_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/connectivity/d/PC_Connectivity_Functional_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/connectivity/d/PC_Connectivity_How-To_Use_The_Secure_Backup_Engine_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/connectivity/d/PC_Connectivity_How-To_Write_Active_or_Proxy_Backup_Client_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/connectivity/d/PC_Connectivity_How-To_Write_Backup_Aware_Software_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/connectivity/d/PC_Connectivity_Secure_Backup_Protocol_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/connectivity/legacy/plp/d/17.02CustomServerAPI_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/connectivity/legacy/plp/d/17.02RRemoteLinkAPI_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remoteconn/usbfunctiondrivers/massstoragemgr/d/How_To_Use_Mass_Storage_App_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remoteconn/usbfunctiondrivers/massstoragemgr/d/ReadMe_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remoteconn/usbfunctiondrivers/massstoragemgr/d/USBMS_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtservices/clientprovisioningadaptors/design/d/bookmarks/BookmarksCPADetailedDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtservices/clientprovisioningadaptors/design/d/dmaccdsacc/CombinedDMAccandDSAccCPADetailedDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtservices/clientprovisioningadaptors/design/d/dmaccdsacc/DataSyncAccountClientProvisioningAdapterMapping_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtservices/clientprovisioningadaptors/design/d/dmaccdsacc/DeviceManagementAccountClientProvisioningAdapterMapping_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtservices/clientprovisioningadaptors/design/d/email/EmailAccountsCPADetailedDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtservices/clientprovisioningadaptors/design/d/mms/MMSAccountsCPADetailedDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtservices/clientprovisioningadaptors/design/d/supl/CPSUPLAdapterDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/d/browser/BrowserSettingsDMADesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/d/browser/BrowserSettingsMOMapping_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/d/browser/SymbianOSBrowserSettingsMOSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/d/connmo/nap/NetworkAccessPointsMOMapping_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/d/connmo/nap/NetworkAccessPointsMOSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/d/datasync/DataSyncAccountDetailedDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/d/datasync/DataSyncAccountMapping_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/d/datasync/SymbianOSDataSyncAccountMOSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/d/datasync/SyncDataStoreAccountMapping_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/d/devman/DMAccDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/d/devman/DMAccMapping_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/d/devman/SymbianOSDMAccMOSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/d/devman/SymbianOSDevDetailMOSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/d/devman/SymbianOSDevInfoMOSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/d/email/EmailMOMapping_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/d/email/EmailSettingsDMADesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/d/email/SymbianOSEmailMOSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/d/fumo/FUMODMADesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/d/fumo/SymbianOSFUMOSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/d/mms/MMSSettingsDMADesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/d/mms/MMSSettingsMOMapping_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/d/mms/SymbianOSMMSMOspecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/d/networkaccesspoints/NetworkAccessPointsMOMapping_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/d/networkaccesspoints/NetworkAccessPointsMOSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/d/proxies/ProxyConnMOMapping_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/d/proxies/ProxySettingsMOMapping_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/d/proxies/SymbianOSProxyConnMOSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/d/proxies/SymbianOSProxySettingsMOSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/d/sms/SMSMOMapping_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/d/sms/SMSSettingsDMADesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/d/sms/SymbianOSSMSMOspecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/d/software/ALMAdapterComponentDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/d/software/ALMDetailedDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/d/software/ALMHighLevelDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/d/software/ALMHowTo_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/d/software/ALMInstallHandlerDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/d/software/ALMInventoryComponentDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/d/software/ALMSMADesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/d/software/ALMUninstallHandlerDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/d/software/SymbianOSALMMOSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/d/supl/DMSUPLAdapterDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/d/supl/SUPLMOMapping_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/d/supl/SymbianOSSUPLMOSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/d/ClientProvisioningAdapterHowTo_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/d/ClientProvisioningAgentInterfacesHowTo_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/d/ClientProvisioningArchitecturalDescription_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/d/ClientProvisioningConfigurationandLocalisation_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/d/ClientProvisioningFrameworkHowTo_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/d/ClientProvisioningFrameworkOverview_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/d/ClientProvisioningInputMechanismDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/d/ClientProvisioningProvDocDesignMigrationGuide_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/d/ClientProvisioningProvDocDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/d/ClientProvisioningProvisioningDocumentOverview_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/d/ClientProvisioningUserAgentDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/d/PREQ1664CPAPISpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/d/SymbianOSClientProvisioningFunctionalSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/devprov/config/d/How-ToConfigureSymbianDeviceProvisioningComponents_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/design/d/DevManAdapterHowTo_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/design/d/DevManAgentClientAPI_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/design/d/DevManArchitecturalDescription_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/design/d/DevManCommandManagerDetailedDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/design/d/DevManCommandManagerPluginAPIDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/design/d/DevManDDFStoreDetailedDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/design/d/DevManFOTAPluginSPIHowTo_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/design/d/DevManFileWatcherDetailedDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/design/d/DevManFirmwareUpdatePluginSPI_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/design/d/DevManHostServersHowTo_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/design/d/DevManServerandSessionsDetailedDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/design/d/DevManTreeServerHowTo_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/design/d/DevManTreeStoreDetailedDesignAppendices_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/design/d/DevManTreeStoreDetailedDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/design/d/DevProv_How_To_FOTA_Alternative_Download_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/design/d/FOTA_Alternative_Download_Detailed_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/design/d/FOTA_Overview_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/design/d/Fota_Using_OMA_Download_API_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/design/d/Generic_Alert_Overview_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/design/d/Host_Server_Overview_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/design/d/OMA-EICS-DM-Client-V1_2_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/design/d/PREQ234UTCSupportDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/design/d/SymbianOSv9.2SyncMLDeviceManagementClientFunctionalSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/design/d/SyncMLDeviceManagementConfigurationandLocalisation_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/design/d/SyncML_DM_Configuration_Localisation_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_dpsettings/d/design/DevManSettingsTestHarnessDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_dpsettings/d/design/HowtoImplementaSettingsProviderFort_dmsettingsFramework_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_dpsettings/d/design/NowSMSSet-upguide_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_dpsettings/d/testspecifications/CR742IntegrationTestSpecificationv1.0_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_dpsettings/d/testspecifications/PREQ170NetworkSettingsDevManTestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_dpsettings/d/testspecifications/PREQ171BrowserSettingsDevManTestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_dpsettings/d/testspecifications/PREQ172MessagingSettingsDevManTestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_dpsettings/d/testspecifications/PREQ315ALMTestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_dpsettings/d/testspecifications/PREQ315ApplicationLifecycleManagementTestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_dpsettings/d/testspecifications/PREQ763SyncDataStoreSettingsDevManTestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/graphics/graphicsdeviceinterface/bitgdi/d
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/graphics/d/GCEBackendDesignforMBX_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/graphics/d/Graphics_Architectural_Description_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/graphics/d/Graphics_Functional_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/graphics/d/Graphics_How_To_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/graphics/d/Graphics_Release_Note_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/graphics/d/PREQ915TransitionEffects-FunctionalSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/graphics/d/SGL.TS0021.007.APISpecificationfortextshaperplug-ins_v2.1_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/graphics/d/WSERVRenderingLoopDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/graphics/d/WindowServerDeltaFunctionalSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/graphics/d/test_specifications/9.1/SGL.GT0226.263PREQ915TestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/graphics/d/test_specifications/9.1/SGL.GT0226.265PREQ530TestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/graphics/d/test_specifications/9.1/SGL.GT0226.269PREQ277TestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/graphics/d/test_specifications/9.1/SGL.GT0226.275PREQ533TestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/graphics/d/test_specifications/9.1/SLG.GT0199.230PREQ642TestSpecifications_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/graphics/d/test_specifications/9.2/SGL.GT0247.104PREQ234TestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/graphics/d/test_specifications/9.2/SGL.GT0247.105PREQ563TestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/graphics/d/test_specifications/9.2/SGL.GT0247.107PREQ807TestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/graphics/d/test_specifications/9.2/SGL.GT0247.128CRPCHY-6B7D9CTestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/graphics/d/test_specifications/9.2/SGL.GT0247.137CRAPOS-6CZBRXTestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/graphics/d/test_specifications/9.2/SGL.GT0247.141CR-APOS-6CBBXZTestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/graphics/d/test_specifications/9.2/SGL.GT0247.146PREQ1246TestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/graphics/d/test_specifications/9.2/SGL.GT0247.154CR-APOS-6CBC3WTestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/graphics/d/test_specifications/9.2/SGL.GT0247.166CR0714GraphicsTestSpecifications_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/graphics/d/test_specifications/9.3/SGL.GT0296.505CR0782-TestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/graphics/d/test_specifications/9.3/SGL.GT0296.508PREQ1431FontLiinkingGraphicsTestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/graphics/d/test_specifications/vfuture/SGL.GT0264.101PREQ1007TestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/graphics/d/test_specifications/vfuture/SGL.GT0264.107PREQ1004TestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/graphics/d/test_specifications/vfuture/SGL.GT0283.104PREQ1227GRAPHICSTestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/graphics/graphicsdeviceinterface/directgdi/d/SGL.GT0386.113DirectGDIReferenceImplementationDesignDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/graphics/graphicsdeviceinterface/directgdi/test/d/SGL.GT0386.405DirectGDITestFrameworkDesign1.2_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/graphics/graphicsdeviceinterface/directgdi/test/d/SGL.GT0386.411DirectGDI_Test_User_Manual_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/graphics/graphicsdeviceinterface/directgdi/test/d/SGL.GT0386.415DirectGDITestsPresentation_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/graphics/egl/eglinterface/d/EGLPortingGuide_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/graphics/fbs/fontandbitmapserver/d/BitmapStreamFormat_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/graphics/fbs/fontandbitmapserver/d/SGL.GT0296.106HeapLockinginFBServ_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/textandloc/fontservices/fontstore/d/Graphics_Font_Store_Font_Linking_Guide_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/textandloc/fontservices/referencefonts/d/Symbian_OS_Font_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/textandloc/fontservices/freetypefontrasteriser/d
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/graphics/graphicscomposition/graphicscompositionengine/d/GCE-API-Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/graphics/graphicscomposition/graphicscompositionengine/d/GCE-Acceptance-Test-Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/graphics/graphicscomposition/graphicscompositionengine/d/GCE-Composition-Backend-API-Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/graphics/graphicscomposition/graphicscompositionengine/d/GCE-Composition-Backend-Design-Document_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/graphics/graphicscomposition/graphicscompositionengine/d/GCE-Design-Document_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/graphics/graphicscomposition/graphicscompositionengine/d/GCE-Functional-Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/graphics/graphicscomposition/graphicscompositionengine/d/GCE-Performance-Document_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/textandloc/graphicsdevif/gdi/d/GDIComponentDesignDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/textandloc/graphicsdevif/gdi/d/Improved_Font_Metrics_How_To_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/textandloc/graphicsdevif/gdi/d/UnicodeCharacterDataandLineBreakdataUpdateHistory_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/graphics/graphicsresourceservices/graphicsresource/d/SGL.GT0386.111GraphicsResourceDesignDocumentV1.0_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/textandloc/fontservices/textshaperplugin/d/HindiDemo_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/graphics/opengles/openglesdisplayproperties/d/OpenGLESEGLDisplayPropertyArchitecture_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/graphics/opengles/openglesinterface/d/OpenGLESPortingGuide_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/graphics/opengles/openglesinterface/d/openglesheaders_Functional_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/graphics/openvg/openvginterface/d/OpenVGPortingGuide_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/graphics/graphicsdeviceinterface/screendriver/d/ScreenDriverComponentDesignDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/graphics/graphicsdeviceinterface/screendriver/d/screendriver_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/graphics/graphcisapitest/graphicssvs/d/GraphicsTestTechnologyDescription_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/app/techview/testapps/memspy/d/MemSpy-UserGuide_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/graphics/graphicstest/uibench/d/UIBench-UserGuide_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/graphics/windowing/windowserver/d/ContentRenderingFrameworkDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/graphics/windowing/windowserver/d/WSERVComponentDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/graphics/windowing/windowserver/t_integ/d/WServIntegTestSuiteDescription_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/graphics/windowing/windowserver/test/t_genericplugin/d/WServGenericPluginTestSuiteDescription_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/graphics/windowing/windowserver/test/t_stress/d/WServStressTestSuiteDescription_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/graphics/windowing/windowserver/test/tscreenconstruct/d/WServtscreenconstructTestSuiteDescription_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/graphics/windowing/windowserver/tgce/d/WServMultimediaExtensionAPITestSuiteDescription_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/infra-red/d/Infra-Red_3rd_Party_Supplier_Information_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/infra-red/d/Infra-Red_Architectural_Description_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/infra-red/d/Infra-Red_Functional_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/infra-red/d/Infra-Red_Release_Note_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/infra-red/d/designs/IrDialBCA_design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/infra-red/d/how_tos/Infra-Red_Demand_Paging_Classification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/infra-red/d/how_tos/IrDA_stack_tunables_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/infra-red/d/how_tos/IrDial_HowTo_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/infra-red/d/how_tos/Using_CR812_IrDA_Nickname_Extensions_How_To_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/app/java/midpprofile/midpmidlet/j2me/d/SGL.TS0007.149CQMETestingFramework_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/lbs/d/SGL.TS0004.202LBSArchitecturalDescription_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/lbs/d/SGL.TS0004.203LBSFunctionalSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/lbs/test/testproduct/agpshaivalidate/d/HAIValidationSuite_User_Guide_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/messagingmw/messagingfw/biomsgfw/biowatcherscdma/d/CDMASMSWatchersHowTo_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/messagingmw/messagingfw/msgtests/d/CDMASMSMessagingDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/messagingmw/messagingfw/msgtests/d/CDMASMSMessagingFunctionalSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/messagingmw/messagingfw/msgtests/d/EnhancedSearchandSortAPI-How-To_Document_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/messagingmw/messagingfw/msgtests/d/Enhancesearchsortonmessagestore3rdpartyconfiguration-HowTo_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/messagingmw/messagingfw/msgtests/d/IMAP_Search_-_How-To_Document_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/messagingmw/messagingfw/msgtests/d/MessagingFunctionalSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/messagingmw/messagingfw/msgtests/d/Messaging_3GPPR6_migration_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/messagingmw/messagingfw/msgtests/d/Messaging_91_migration_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/messagingmw/messagingfw/msgtests/d/Messaging_Architectural_Description_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/messagingmw/messagingfw/msgtests/d/Messaging_How-To_Configure_Messaging_Cache_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/messagingmw/messagingfw/msgtests/d/Messaging_Platsec_migration_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/messagingmw/messagingfw/msgtests/d/Messaging_Subsystem_Release_Note_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/messagingmw/messagingfw/msgtests/d/Messaging_TMsvEntry_-_Use_of_flags_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/messagingmw/messagingfw/msgtests/d/Messaging_UTC_migration_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/messagingmw/messagingfw/msgtests/d/Serialising_Destination_Parameter_For_UPS_Plugins-_How-To_Document_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/messagingmw/messagingfw/msgtests/d/Subject_Based_Sorting_-_How-To_Document_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/messagingmw/messagingfw/msgtestproduct/email/d/EmailTestSuiteDescriptionDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/messagingmw/messagingfw/msgtestproduct/email/imap/d/IMAPTestSuiteDescriptionDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/messagingmw/messagingfw/msgtestproduct/email/pop/d/Pop3TestSuiteDescriptionDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/messagingmw/messagingfw/msgtestproduct/email/smtp/d/SMTPTestSuiteDescriptionDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/ipappprotocols/realtimenetprots/rtp/cfrtp/d/rtp-prototype_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/ipappprotocols/realtimenetprots/rtp/shimrtp/test/d/MMP-RTP-CITTestSuiteDescription_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/ipappprotocols/realtimenetprots/rtp/shimrtp/test/d/RTPIntegrationTestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/mtp/d/MTP_Architectural_Description_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/mtp/d/MTP_Component_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/mtp/d/MTP_Functional_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/mtp/d/MTP_How_To_Configure_MTP_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/mtp/d/MTP_How_To_Write_An_MTP_Data_Provider_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/mtp/d/MTP_Release_Note_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/mtp/d/test/MTP_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/mtp/d/test/SGL.GT0445.003v0.1PREQ1910TestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remoteconn/mtpdataproviders/mtpbackupandrestoredp/d/backup_and_restore_protocol_over_mtp_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remoteconn/mtpdataproviders/mtpbackupandrestoredp/d/backupnrestoredp_architecture_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remoteconn/mtpdataproviders/mtpbackupandrestoredp/d/backupnrestoredp_functional_specificaion_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remoteconn/mtpdataproviders/syncmldataprovider/d/PREQ1910_Architectural_Description_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/remoteconn/mtpdataproviders/syncmldataprovider/d/PREQ1910_Functional_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/cellularsrv/smsprotocols/cdmasmsstack/d/CDMASMSSTACKDetailDesignDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/cellularsrv/smsprotocols/cdmasmsstack/d/CDMASMSStackFunctionalSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/cellularsrv/smsprotocols/cdmasmsstack/d/CDMAUDetailedDesignDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/cellularsrv/smsprotocols/cdmasmsstack/ota-xml/d/CDMAOTACenRepOverview_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/cellularsrv/smsprotocols/cdmasmsstack/ota-xml/d/CDMAOTAStoreAccessArchitecturalAnalysis_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/cellularsrv/smsprotocols/cdmasmsstack/ota-xml/d/CDMAOTAStoreAccessFunctionalSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/nbprotocols/d/NBProtocols_How_to_test_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/nbprotocols/d/NBProtocols_Subsystem_Architectural_Description_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/nbprotocols/d/NBProtocols_Subsystem_Release_Note_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/nbprotocols/d/NBProtocols_Subsystem_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/nbprotocols/d/NbProtocols_Functional_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/cellularsrv/smsprotocols/smsstack/d/SmsStack_GSM_SMS_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/cellularsrv/smsprotocols/smsstack/d/SmsStack_GSM_SMS_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/cellularsrv/smsprotocols/smsstack/d/SmsStack_GSM_SMS_Use_Case_Analysis_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/cellularsrv/smsprotocols/smsstack/d/WDP_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/wlan/wlan_bearer/wirelesslan/d/WLANPDDDriverDevelopmentHowTo_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/wlan/wlan_bearer/wirelesslan/d/WiFi-DeveloperGuide_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/wlan/wlan_bearer/wirelesslan/d/WiFiHowToConfigEngine_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/wlan/wlan_bearer/wirelesslan/d/WiFiHowToRSSIEngine_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/wlan/wlan_bearer/wirelesslan/d/WiFiHowToSiteSurveyEngine_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/wlan/wlan_bearer/wirelesslan/d/WiFiHowToStatsEngine_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/wlan/wlan_bearer/wirelesslan/d/WiFiScanEngineDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/wlan/wlan_bearer/wirelesslan/d/WiFiSubsystemArchitecture_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/wlan/wlan_bearer/wirelesslan/test/d/GT253.215WiFi_Server_Capabilities_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/wlan/wlan_bearer/wirelesslan/test/d/WiFiScanEngineTestSuiteDescription_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/wlan/wlan_bearer/wirelesslan/test/wifiwinpdd/d/EmulatorWiFiPDDHowTo_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/wlan/wlan_bearer/wirelesslan/test/wifiwinpdd/d/Emulator_WiFi_PDD_Design_Document_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/cellularsrv/basebandabstraction/basebandchanneladaptor/d/NIF_BCA_interface_design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/cellularsrv/basebandabstraction/basebandchanneladaptor/test/te_bca/d/BCAtestspec_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/cellularsrv/basebandadaptationplugins/basebandchanneladaptorforc32/d/C32BCA_design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/cellularsrv/basebandadaptationplugins/basebandchanneladaptorforc32/te_c32bca/d/C32_BCA_Unit_test_spec_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/cellularsrv/basebandabstraction/intersystemcomm/d/Inter-SystemCommunicationAPISpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/cellularsrv/telephonyprotocols/csdagt/d/CSD_Agent_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/cellularsrv/telephonyprotocols/csdagt/d/CSD_Agent_Unit_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/networking/d/CDMA_Networking_Functional_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/networking/d/HowtoruntestharnessesinNetworking_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/networking/d/Networking_Interface_Compatibility_2.0_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/networking/d/Networking_Subsystem_Functional_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/networking/d/Networking_subsystem_architectural_description_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/networking/d/QOS_MigrationNote_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/tcpiputils/dhcp/d/DHCPDesignDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/tcpiputils/dhcp/d/DHCPIPv6DesignDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/tcpiputils/dhcp/d/DHCPTestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/tcpiputils/dhcp/d/PREQ1647-1648DHCPAPISpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/tcpiputils/dhcp/d/PREQ1647-1648Designv1.2_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/tcpiputils/dhcp/d/SGL.GT0354.104PREQ7491.0DHCPServerDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/datacommsserver/networkingdialogapi/d/Dialog_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/tcpiputils/dnd/d/DND_design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/tcpiputils/dnd/d/LLMNR_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/tcpiputils/dnd/d/dns_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/tcpiputils/dnd/test/te_llmnr/d/LLMNR_Test_Specification_1.0_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/tcpiputils/dnd/test/te_llmnr/d/TE_LLMNR_HowTo_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/accesssec/eapol/eapfw/adapters/d/Legacy_SIMAKA_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/accesssec/eapol/eapfw/d/WPS_How-To_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/accesssec/eapol/eapfw/test/te_eap/d/EAP_Integration_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/accesssec/eapol/eapfw/test/te_wps/d/WPS_Connect_TestSpecification_v0.4_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/accesssec/eapol/eapfw/test/te_wps/d/WPS_Test_Specification_v1.2_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/linklayerprotocols/ethernetnif/d/EthintAPISpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/linklayerprotocols/ethernetnif/d/EthintDesignDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/linklayerprotocols/ethernetnif/version1/d/EthintAPISpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/linklayerprotocols/ethernetnif/version1/d/EthintDesignDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/linklayerprotocols/ethernetpacketdriver/d/Ethernet_LDD_API_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/linklayerprotocols/ethernetpacketdriver/d/Ethernet_PDD_API_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/netprotocols/applayerprotocols/ftpengine/d/FTPTest_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/netprotocols/applayerprotocols/ftpengine/d/FTP_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/cellularsrv/telephonyprotocols/gprsumtsqosprt/d/GUQOS_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/networkingtestandutils/exampleinternetutilities/d/InetUtils_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/networkingtestandutils/networkingintegrationtest/d/Integration_Test_System_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/networkingtestandutils/networkingintegrationtest/d/NetworkingComponentIntegrationTestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/networkingtestandutils/networkingintegrationtest/te_dedicatedsignalling1ryctx/d/Te_DedicatedSignalling1ryCtx_TestsSpec_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/networkingtestandutils/networkingintegrationtest/te_sblp/d/SBLPTestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/networkcontrol/ipcpr/d/Comms-Infras-IPCPR-plugin_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/networkprotocols/ipeventnotifier/d/IPEventNotifierDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/networkprotocols/ipeventnotifier/d/IPEventNotifierTestSpec_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/networkprotocols/ipeventnotifier/te_ipeventnotifier/d/IPEventNotifier_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/networkingtestandutils/ipanalyzer/d
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/networksecurity/ipsec/ikepolparser/d/ike_policy_format_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/networksecurity/ipsec/ipsec6/d/IPSecPolManagerTechDescr_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/networksecurity/ipsec/ipsec6/d/IPSecSWADforSymbianOS9.3Rpt_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/networksecurity/ipsec/ipsec6/d/IPSecTestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/networksecurity/ipsec/ipsec6/d/IPsec_design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/networksecurity/ipsec/ipsec6/d/IpsecSequences_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/networksecurity/ipsec/ipsec6/d/epoc-sec-conf-v2_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/networksecurity/ipsec/ipsec6/d/implementation_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/networksecurity/ipsec/ipsec6/d/pfkey_changes_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/networksecurity/ipsec/ipsec6/d/policy_syntax_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/networksecurity/ipsec/ipsec6/d/requirements_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/networksecurity/ipsec/ipsec_itest/d/IPSec_integration_test_spec_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/networksecurity/ipsec/ipseccrypto/d/ipseccrypto-design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/networksecurity/ipsec/ipsecpol/d/IpSecPolMan_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/networksecurity/ipsec/ipsecpol/d/IpsecSequences_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/networksecurity/ipsec/ipsecpol/d/ipsec_policy_api_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/networksecurity/ipsec/vpnapi/d/vpn_api_and_policy_format_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/networksecurity/ipsec/vpnmanager/d/ipsec_architecture_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/tcpiputils/networkaddressandporttranslation/d/SGL.GT0354.103PREQ601ComponentDesignDocumentv0.8_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/tcpiputils/networkaddressandporttranslation/d/SGL.GT0354.107IndusNetworkingPREQ601HowToDocumentv0.1_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/tcpiputils/networkaddressandporttranslation/d/SGL.GT0354.203PREQ601TestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/datacommsserver/networkcontroller/d/Network_Controller_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/datacommsserver/networkcontroller/d/Network_Controller_Unit_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/datacommsserver/networkcontroller/d/SGL.GT0161.208MobileIPtoSimpleIPFallback_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/datacommsserver/networkcontroller/d/SGL.GT0161.211MobileIPtoSimpleIPFallbackMechanismDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/datacommsserver/networkcontroller/d/SGL.GT0161.305MobileIPtoSimpleIPFallbackMechanismTestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/networkingtestandutils/networkingperformancemeasurementtools/d/BearerIndependentNetworkPerformanceInstallationandUseHowto_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/linklayercontrol/nullagt/d/Null_Agent_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/linklayercontrol/nullagt/d/Null_Agent_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/networkcontrol/pfqoslib/d/pfqoslib_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/linklayerprotocols/pppnif/d/Dummy_PPP_Nif_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/linklayerprotocols/pppnif/d/Incoming_PPP_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/linklayerprotocols/pppnif/d/Networking_PPP_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/linklayerprotocols/pppnif/d/PPP_Callback_Description_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/linklayerprotocols/pppnif/d/PPP_Compressors_modules_Description_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/linklayerprotocols/pppnif/d/SGL.GT0161.219.PPP_Termination_Phase_Updates_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/linklayerprotocols/pppnif/d/TPPPSize_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/linklayerprotocols/pppnif/d/TS_PPP_Link_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/linklayerprotocols/pppnif/te_ppp/d/PPP_Unit_Test_Spec_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/linklayerprotocols/pppnif/te_ppp/d/SGL.GT0161.316.Termination_Phase_Updates_Test_Spec_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/linklayerprotocols/pppnif/te_ppp/d/design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/linklayerprotocols/pppnif/te_ppp/te_incoming_ppp/d/SGL.GT0161.303IncomingPPPTestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/linklayerprotocols/pppnif/te_ppp/te_incoming_ppp/d/SGL.GT0161.304HowToManuallyTestIncomingPPP_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/linklayerprotocols/pppnif/te_ppp/te_manual_pppauth/d/PPPAuthenticationManualTestingInstructions_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/linklayerprotocols/pppnif/te_ppp/te_vjcomp/d/VanJacobsonTestReadMe_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/linklayerprotocols/pppnif/version1/d/Dummy_PPP_Nif_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/linklayerprotocols/pppnif/version1/d/Incoming_PPP_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/linklayerprotocols/pppnif/version1/d/Networking_PPP_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/linklayerprotocols/pppnif/version1/d/PPP_Callback_Description_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/linklayerprotocols/pppnif/version1/d/PPP_Compressors_modules_Description_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/linklayerprotocols/pppnif/version1/d/SGL.GT0161.219.PPP_Termination_Phase_Updates_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/linklayerprotocols/pppnif/version1/d/TPPPSize_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/linklayerprotocols/pppnif/version1/d/TS_PPP_Link_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/linklayerprotocols/pppnif/version1/te_ppp/d/PPP_Unit_Test_Spec_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/linklayerprotocols/pppnif/version1/te_ppp/d/SGL.GT0161.316.Termination_Phase_Updates_Test_Spec_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/linklayerprotocols/pppnif/version1/te_ppp/d/design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/linklayerprotocols/pppnif/version1/te_ppp/te_incoming_ppp/d/SGL.GT0161.303IncomingPPPTestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/linklayerprotocols/pppnif/version1/te_ppp/te_incoming_ppp/d/SGL.GT0161.304HowToManuallyTestIncomingPPP_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/linklayerprotocols/pppnif/version1/te_ppp/te_manual_pppauth/d/PPPAuthenticationManualTestingInstructions_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/linklayerprotocols/pppnif/version1/te_ppp/te_vjcomp/d/VanJacobsonTestReadMe_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/cellularsrv/telephonyprotocols/psdagt/d/Design_Document_for_Mobile_IP_on_Symbian_OS_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/cellularsrv/telephonyprotocols/psdagt/d/Mobile_IP_on_Symbian_OS_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/cellularsrv/telephonyprotocols/psdagt/d/PSD_Agent_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/cellularsrv/telephonyprotocols/psdagt/d/PSD_Agent_Unit_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/networkcontrol/qosfwconfig/qos/d/QoSFrameworkPlug-InAPI_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/networkcontrol/qosfwconfig/qos/d/QoSPolicyFileFormat_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/networkcontrol/qosfwconfig/qos/d/Qos_Framework_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/networkcontrol/qosfwconfig/qos/d/qos_architecture_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/networkcontrol/qosfwconfig/qostest/te_qos/d/TE_QoS_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/networkcontrol/qosfwconfig/qostest/testnif/d/TestNif_UNIT_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/networkcontrol/qosfwconfig/qostest/testnif/d/UMTS-GPRSTESTNIFDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/networkcontrol/qosfwconfig/qostest/testnif/version1/d/TestNif_UNIT_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/networkcontrol/qosfwconfig/qostest/testnif/version1/d/UMTS-GPRSTESTNIFDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/networkcontrol/qosfwconfig/qostest/ts_qosapi/d
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/networkcontrol/qosfwconfig/qostesting/ts_qos/d/QoSTestCases_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/networkcontrol/qosfwconfig/qostesting/ts_qos/d/QoSTestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/networkcontrol/qosfwconfig/qostesting/ts_qos/d/QoSTestSuite_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/networkcontrol/qosfwconfig/qostesting/umtssim/d/UMTSSimDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/networkcontrol/qosfwconfig/qostesting/umtssim/d/UMTSSimulator_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/cellularsrv/telephonyprotocols/rawipnif/d/Raw_IP_NIF_Detailed_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/cellularsrv/telephonyprotocols/rawipnif/version1/d/Raw_IP_NIF_Detailed_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/networking/sockbench/d/SGL.GT0152.030Startup_Shutdown_Performance_Test_System_User_Guide_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/networking/sockbench/d/SGL.GT0152.031Networking_Perf_System_User_Guide_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/networking/sockbench/d/SGL.GT0152.035Internal_Perf_System_Configuration_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/networking/sockbench/d/SGL.GT0152.036DesignDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/networking/sockbench/d/Sockbench_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/networking/sockbench/d/sgl.gt116.210integrationtestsystemdesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/cellularsrv/telephonyprotocols/secondarypdpcontextumtsdriver/d/SPUD_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/cellularsrv/telephonyprotocols/secondarypdpcontextumtsdriver/d/SPUD_Integration_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/networkprotocols/tcpipv4v6prt/d/TCPIP6_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/networkprotocols/tcpipv4v6prt/d/TCPIP6_Hooks_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/networkprotocols/tcpipv4v6prt/d/TInetAddr_API_Spec_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/networkprotocols/tcpipv4v6prt/d/architecture_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/networkprotocols/tcpipv4v6prt/d/configuration_params_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/networkprotocols/tcpipv4v6prt/d/epoc_socket_api_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/networkprotocols/tcpipv4v6prt/d/features_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/networking/test/codenomicon/dhcp/d/DHCPCodenomiconTestSetup_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/networking/test/codenomicon/ipv46/d/codenomicon_ipTestWrapper_design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/networking/test/codenomicon/ipv46/d/codenomicon_ipv46_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/networking/test/codenomicon/ipv46/d/emulatorWinpcapConnection_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/networking/test/codenomicon/ipv46/d/integration_of_codenomicon_test_tool_to_tms_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/networking/test/netsteb/te_netsteb/d/te_netstebTestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/networking/test/packetloopbackcsy/d/PacketLoopbackCsy_Design_Document_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/networking/test/te_anvl/d/ImportantAnvlSummary_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/networking/test/te_tahiclient/d
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/networksecurity/tls/d/TLSProtocolAPIDefinition_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/networksecurity/tls/d/TLSProtocolDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/networksecurity/tls/d/TLSProtocolTestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/networkingtestandutils/networkingexamples/udpecho/d
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/networking/umts/d/MBMSUseCasesV5_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/networking/umts/d/SGL.GT0385.103.SupportforMBMSAPISpecificationv1.4_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/networking/umts/test/te_mbms/d/MBMSTestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/networking/umts/test/te_spud/d/SPUD_Unit_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/networking/umts/test/te_umtsgprsscpr/d/Te_UmtsGprsSCPRTestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/cellularsrv/telephonyprotocols/umtsgprsscpr/d/PREQ870-Design.v1.0_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/cellularsrv/telephonyprotocols/umtsgprsscpr/d/UmtsGprsSCPR-Design.v1.0_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/cellularsrv/telephonyprotocols/umtsgprsscpr/test/te_spud/d/SPUD_Unit_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/networkingtestandutils/networkingexamples/webserver/d
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/shortlinkconn/obex/obexprotocol/d/Obex_Architectural_Description_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/shortlinkconn/obex/obexprotocol/d/Obex_Component_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/shortlinkconn/obex/obexprotocol/d/Obex_Release_Note_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/shortlinkconn/obex/obexprotocol/d/designs/OBEX_Server_Asynchronous_Notification_Design_PREQ1125_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/shortlinkconn/obex/obexprotocol/d/designs/Obex_Design_PREQ1124_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/shortlinkconn/obex/obexprotocol/d/designs/Obex_Transport_Abstraction_Component_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/shortlinkconn/obex/obexprotocol/d/how_tos/OBEX_Packet_Size_How_To_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/shortlinkconn/obex/obexprotocol/d/how_tos/OBEX_USB_Performance_Extensions_How_To_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/shortlinkconn/obex/obexprotocol/d/how_tos/Obex_Application_How_To_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/shortlinkconn/obex/obexprotocol/d/how_tos/Obex_Demand_Paging_Classification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/shortlinkconn/obex/obexprotocol/d/how_tos/Obex_Header_Extension_How_To_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/shortlinkconn/obex/obexprotocol/d/how_tos/Obex_How_To_Create_Transport_Plugin_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/shortlinkconn/obex/obexprotocol/d/how_tos/Obex_How_To_Remove_Optional_Fields_From_Authentication_Challenge_Header_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/shortlinkconn/obex/obexprotocol/d/how_tos/Obex_How_To_Select_Transport_Plugin_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/shortlinkconn/obex/obexprotocol/d/how_tos/Obex_How_To_Specify_the_Idle_Packet_Time-out_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/shortlinkconn/obex/obexprotocol/d/how_tos/Obex_How_To_Use_LastServerResponseCode-IsAuthenticating-LastError_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/shortlinkconn/obex/obexprotocol/d/how_tos/Obex_How_To_Use_The_Final_Packet_Notification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/shortlinkconn/obex/obexprotocol/d/how_tos/Obex_How_To_Use_The_Server_Notifications_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/shortlinkconn/obex/obexprotocol/d/how_tos/Obex_How_To_Use_The_Server_Packet_Access_API_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/shortlinkconn/obex/obexprotocol/d/how_tos/Obex_Subsystem_Known_IOP_Issues_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/security/cryptoservices/certificateandkeymgmt/d
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/security/d/How-to_Configure_Java_Security_0.3_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/security/d/How-to_Configure_Software_Installation_Policies_1.1_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/security/d/How-to_Configure_the_File_Certificate_Store_1.1_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/security/d/How-to_Configure_the_SWI_Certificate_Store_1.1_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/security/d/How-to_Create_a_Root_Certificate_for_Inclusion_in_the_SWI_Certificate_Store_as_a_Trust_Anchor_1.1_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/security/d/How-to_Deploy_a_Writeable_SWI_Certificate_Store_1.1_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/security/d/How-to_Diagnose_Installation_Failures_1.1_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/security/d/Introduction_Cryptography_And_Key_Management_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/security/d/SGL.GT0176.053.Rev2.1_DRM_Functional_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/security/d/SGL.GT0235.201_Security_9.2_Functional_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/security/d/SGL.GT0235.253_Native_SWI_UI_Flow_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/security/d/SGL.GT0255.265_SecuritySubsystemArchitecturalDescription_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/security/d/SGL.GT0255.350_SWI_Troubleshooting_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/security/d/SGL.GT0255.351_Security_Release_Note_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/security/d/SGL.GT0256.350_How_to_Configure_Symbian_Security_Components_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/security/d/SGL.TS0013.604_SecureSoftwareInstallDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/security/d/SWIUICallbackSequence_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/security/d/Software_Install_SISFileFormat_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/security/cryptoservices/filebasedcertificateandkeystores/test/ttesttools/d/secttesttoolsTestSuiteDescriptionDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/security/securityanddataprivacytools/securitytools/d/SGL.GT0379.357_CR1392_UserGuide_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/networksecurity/tlsprovider/d/TLSProviderAPITestSpec_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/networkingsrv/networksecurity/tlsprovider/d/TLSProviderDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/serialserver/c32serialserver/d/C32API_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/serialserver/c32serialserver/d/C32_Design_Document_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/serialserver/c32serialserver/d/C32_Design_Document_v1_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/serialserver/c32serialserver/d/C32_Heap_Check_Migration_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/serialserver/c32serialserver/d/How_To_configure_C32_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/serialserver/c32serialserver/loopback/te_loopback/d
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/serialserver/c32serialserver/test/te_c32/d/C32_How_to_test_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/serialserver/c32serialserver/test/te_c32/d/C32_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/serialserver/c32serialserver/test/te_c32/d/C32_Unit_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/serialserver/c32serialserver/test/te_c32performance/d/C32PerformanceTestDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/ser-comms/d/SerComms_Subsystem_Architectural_Description_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/ser-comms/d/SerComms_Subsystem_Functional_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/ser-comms/d/SerComms_Subsystem_Release_Note_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/ossrv/lowlevellibsandfws/apputils/d/SGL.TS0017.201BAFLComponentDesignDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/ossrv/lowlevellibsandfws/apputils/d/SGL.TS0017.202BAFLFunctionalSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/ossrv/lowlevellibsandfws/apputils/d/SGL.TS0017.321BAFLSystemSoundsMigrationGuide_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/ossrv/lowlevellibsandfws/apputils/d/SGL.TS0017.324BAFLHowToFAQ_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/ossrv/lowlevellibsandfws/apputils/initlocale/d/LocaleEnhancementsHowTo_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/persistentdata/persistentstorage/centralrepository/d/CentRepConvUserGuide_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/persistentdata/persistentstorage/centralrepository/d/CentralRepositoryDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/persistentdata/persistentstorage/centralrepository/d/CentralRepositoryHow-To_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/persistentdata/persistentstorage/centralrepository/d/CentralRepositoryNotifyHandlerDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/persistentdata/persistentstorage/centralrepository/d/CentralRepositoryNotifyHandlerHow-To_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/persistentdata/persistentstorage/centralrepository/d/CentralRepositoryRomUpdateTestSpec_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/persistentdata/persistentstorage/centralrepository/d/CentralRepositoryTestabilityHow-To_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/persistentdata/persistentstorage/centralrepository/test/testexecute/swi/d/SGL.GT0219.228v1.0CenRepSWIInteractionTestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/textandloc/charconvfw/charconv_fw/d/charconv_plugin_migration_howto_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/textandloc/charconvfw/charconv_fw/d/j5_charconv_plugin_howto_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/textandloc/charconvfw/charconv_fw/d/shift-jis_howto_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/textandloc/charconvfw/charconvplugins/d
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/syslibs/d/SGL.TS0017.003_Base_Services_Functional_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/syslibs/d/SGL.TS0021.015_TextI18n_Functional_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/syslibs/d/SGL.TS0027.418_Persistent_Data_Services_Functional_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/persistentdata/persistentstorage/dbms/d/DBMS_Security_Howto_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/persistentdata/persistentstorage/dbms/d/SGL.GT0334.063HowtoOptimizeDBMS1.0_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/persistentdata/persistentstorage/dbms/d/SGL.SWM054.409DBMSScalabilityandLimitations1.1_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/ossrv/lowlevellibsandfws/pluginfw/d/SGL.TS0017.129EComArchitectureOverview_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/ossrv/lowlevellibsandfws/pluginfw/d/SGL.TS0017.130EComHowToFAQ_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/ossrv/lowlevellibsandfws/pluginfw/engineering/feature_documentation/SGL.GT0219.155PREQ806DesignDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/ossrv/lowlevellibsandfws/pluginfw/engineering/feature_documentation/SGL.GT0250.103PREQ967CompIntTestSpec_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/ossrv/lowlevellibsandfws/pluginfw/engineering/feature_documentation/SGL.GT0250.201PREQ967DesignDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/ossrv/lowlevellibsandfws/pluginfw/engineering/feature_documentation/SGL.GT0250.217PREQ1192ComponentDesignDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/ossrv/lowlevellibsandfws/pluginfw/engineering/feature_documentation/SGL.GT0250.227CR0526designdocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/ossrv/lowlevellibsandfws/pluginfw/engineering/feature_documentation/SGL.GT0250.228SystemLibrariesCR0629Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/ossrv/lowlevellibsandfws/pluginfw/engineering/feature_documentation/SGL.GT0292.107CR0759DesignDocumentv1-0_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/ossrv/lowlevellibsandfws/pluginfw/engineering/feature_documentation/SGL.GT0292.509CR0759ECOMComponentTestSpec_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/ossrv/lowlevellibsandfws/pluginfw/engineering/feature_documentation/SGL.GT0304.111PREQ1480DesignDocumentv1-0_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/ossrv/lowlevellibsandfws/pluginfw/engineering/feature_documentation/SGL.GT0304.112SystemLibrariesCR0902Designv1.0_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/ossrv/lowlevellibsandfws/pluginfw/engineering/feature_documentation/SGL.GT0304.114DisableScanningonSpecificDrivesDesignv1.0_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/ossrv/lowlevellibsandfws/pluginfw/engineering/feature_documentation/SGL.GT0329.105EC043ECOMInterfaceExtensionsDesignDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/ossrv/lowlevellibsandfws/pluginfw/engineering/feature_documentation/SGL.GT0329.218EC043ECOMInterfaceExtensionsTestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/ossrv/lowlevellibsandfws/pluginfw/engineering/feature_documentation/SGL.GT0334.024CR1182ReduceECOMCustomResolverLoadTimeDesignDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/ossrv/lowlevellibsandfws/pluginfw/engineering/feature_documentation/SGL.GT0334.411CR1182TestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/ossrv/lowlevellibsandfws/genericusabilitylib/d/SGL.TS0017.385EUserHlDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/ossrv/lowlevellibsandfws/genericusabilitylib/d/SGL.TS0017.386EUserHlHowToFAQ_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/ossrv/compressionlibs/ziplib/d/SGL.TS0017.354EZLib2DesignDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/ossrv/compressionlibs/ziplib/d/SGL.TS0017.356Ezlib2HowToAndFAQ_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/syslibs/fatcharsetconv/d/FATCharsetConv_HowTo_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/persistentdata/featuremgmt/featuremgr/d/SGL.TS0017.263FeatureManagerFunctionalSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/persistentdata/featuremgmt/featuremgr/d/SGL.TS0017.264FeatureManagerFileSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/persistentdata/featuremgmt/featuremgr/d/SGL.TS0017.265FeatureManagerDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/persistentdata/featuremgmt/featuremgr/d/SGL.TS0017.266FeatureManagerHowToFAQ_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/persistentdata/featuremgmt/featuremgr/d/SGL.TS0017.269FeatureManagerArchitectureOverview_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/persistentdata/featuremgmt/featureregistry/d/SGL.TS0017.257FeatureRegistryDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/persistentdata/featuremgmt/featureregistry/d/SGL.TS0017.258FeatureRegistryUidAllocations_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/persistentdata/featuremgmt/featureregistry/d/SGL.TS0017.259FeatureRegistryFunctionalSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/persistentdata/featuremgmt/featureregistry/d/SGL.TS0017.260FeatureRegistryHow-ToFAQ_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/persistentdata/featuremgmt/featureregistry/d/SGL.TS0017.262GuidetomigratingfromFeatureRegistrytoFeatureManagerinSymbianOSv9.5_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/persistentdata/loggingservices/eventlogger/d/LogEnginePrivacyFeatures_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/persistentdata/loggingservices/eventlogger/d/SGL.GT0334.218LogEngineConfigurationusingCentralRepositoryPREQ2103How-Tov1.0_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/ossrv/genericservices/taskscheduler/d/SGL.TS0017.162TaskSchedulerHowToFAQ_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/ossrv/genericservices/taskscheduler/d/feature_documentation/SGL.GT0250.205PREQ234TaskSchedulerDesignDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/ossrv/genericservices/taskscheduler/d/feature_documentation/SGL.TS0017.163StartTaskScheduleratBoot-UpDesignDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/ossrv/genericservices/taskscheduler/d/feature_documentation/SGL.TS0017.164TaskSchedulerIncrementalDesignDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/ossrv/genericservices/taskscheduler/test/testexecute/d/SGL.GT0250.102Rev.1.0PREQ234TaskSchedulerTestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/persistentdata/persistentstorage/sql/clib/test/tcl/d/PortingSQLitetoSymbianOSusingP.I.P.S._files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/persistentdata/persistentstorage/sql/clib/test/tcl/d/PortingTcltoSymbianOSusingP.I.P.S._files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/persistentdata/persistentstorage/sql/d/SGL.GT0304.105_SQLRDBMSBackupAndRestoreDesignv0.1_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/persistentdata/persistentstorage/sql/d/SGL.GT0304.108_Persistent_Storage_SQL_Database_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/persistentdata/persistentstorage/sql/d/SGL.GT0304.109_SQLHowTo_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/persistentdata/persistentstorage/sql/d/SGL.GT0334.064HowtoOptimizeSymbianSQLServer1.1_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/persistentdata/persistentstorage/sql/d/SGL.GT0334.214_Symbian_SQL_and_SQLite_C_API_Selection_Guide_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/persistentdata/persistentstorage/sql/test/testexecute/perftest/d/How_to_better_use_sql_schemas_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/persistentdata/persistentstorage/sql/test/testexecute/perftest/d/How_to_use_sql_performance_testsuite_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/persistentdata/persistentstorage/sql/test/testexecute/perftest/d/SGL.GT0294.051PREQ1164SQLPerformanceTestingTestPlan_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/persistentdata/persistentstorage/sql/test/testexecute/perftest/d/SGL.GT0294.053PREQ1164SQLPerformanceTestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/persistentdata/persistentstorage/sql/test/testexecute/perftest/d/SQLPerformanceTestingArchitecturalSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/persistentdata/persistentstorage/store/pcstore/d/HowtoUsePC-Storev1.0_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/persistentdata/persistentstorage/store/pcstore/d/PC-StoreDesign-v1.0_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/persistentdata/persistentstorage/store/pcstore/d/PC-StoreTestSpecification-v1.0_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/ossrv/genericservices/systemagent/d/HowtoMigratefromSystemAgent_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/ossrv/genericservices/systemagent/d/SGL.TS0017.289HALPersistenceDesignDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/ossrv/syslibsapitest/syslibssvs/d/SYSLIBSTestTechnologyDescription_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/xmlsrv/xml/xmlfw/d/SGL.TS0017.225XMLFrameworkUidAllocations_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/xmlsrv/xml/xmlfw/d/SGL.TS0017.226XmlHow-ToFAQ_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/xmlsrv/xml/xmlfw/d/StringDictionaryHow-To_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/xmlsrv/xml/xmlfw/d/feature_documentation/SGL.GT0250.210XMLDesignDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/xmlsrv/xml/xmlfw/d/xml_framework_design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/appengines/agenda/d/AgendaAttachmentBTIRAndEMailTestSuiteDescriptionDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/appengines/agenda/d/IREQ9_SystemTestAutomationDesignDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/appengines/agenda/d/Improved_Agenda_Interoperability_System_Test_How_To_Document_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/appengines/agenda/d/Improved_Agenda_Interoperability_System_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/appengines/agenda/d/Performance_Agenda_Design_Document_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/appengines/agenda/d/SGL.GT0238.021_v1.1_PREQ234_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/appengines/agenda/d/SGL.GT0238.023_v1.0_PREQ234_Design_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/appengines/agenda/d/SGL.GT0238.023_v1.1_PREQ234_Design_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/appengines/agenda/d/SystemTest_Agenda_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/appengines/contacts/d/Ireq10_SGL.PR0073.090_Rev1.1_System_Test_Automation_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/appengines/contacts/d/Performance_Contacts_Design_Document_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/appengines/contacts/d/PlatTest_Contacts_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/appengines/contacts/d/Preq235ContactsNicknames_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/appengines/contacts/d/Preq704ContactsPrn_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/appengines/contacts/d/Preq705ContactsSort_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/appengines/contacts/d/SGL.GT0341.035PREQ1187EnhanceContactPerfbySQLTestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/appengines/contacts/d/SGL.GT0341.090EnhanceContactPerfbySQLDesignDescription_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/appengines/contacts/d/SGL.PPS305.316SQLiteContactsSystemTestAutomationDesignDescription_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/appframework/fep/fepserver/d/feparch_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/appframework/uikon/d/PREQ186_DesignDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/appframework/uikon/d/Preq186Transparentwindows_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/appframework/uikon/d/Preq674Opaquedrawing_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/appframework/uikon/d/SGL.GT0238.026_v1.0_Perf_UIFrameworks_TestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/appframework/uikon/d/SGL.GT0238.028_v0.1_Perf_UIFrameworks_Design_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/appframework/uikon/d/SGL.GT0238.036_v1.0_Perf_TextInt_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/appframework/uikon/d/SGL.GT0238.038_v1.0_Perf_TextInt_Design_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/appframework/uikon/d/SGL.GT0238.070_Rev1.0_PREQ1192_TestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/appframework/uikon/d/SGL.GT0238.071_v1.0_PREQ1192_Design_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/appframework/uikon/d/SGL.GT0274.034Preq1228SystemTestTestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/appframework/uikon/d/SGL.GT0274.036_v1.0_PREQ1228_Design_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/appframework/uikon/d/SGL.GT0309.030_v1.1SystemQualitiesTestAutomationDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/appframework/uikon/d/SGL.GT0309.030_v1.1SystemQualitiesTestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/appframework/uikon/d/SGL.PR0106.023_Rev1.0_Preq534_535_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/appframework/uikon/d/Uikon_System_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/appprotocols/http/d/PREQ53SystemTestAutomationDesignDocumentv0.2_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/appprotocols/http/d/Preq53Cryptography_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/appprotocols/http/d/preq32design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/appservices/alarmserver/d/Application_Services_System_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/appservices/alarmserver/d/PREQ663_System_Test_Automation_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/appservices/alarmserver/d/PREQ721_System_Test_Automation_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/appservices/alarmserver/d/PT_AlarmServer_DD_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/appservices/alarmserver/d/PT_AlarmServer_FS_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/appservices/alarmserver/d/PT_AlarmServer_TestPlan_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/appservices/alarmserver/d/Preq663DST_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/appservices/alarmserver/d/Preq721AlarmSnoozeTime_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/base/filestore/d/IREQ3SystemTestAutomationDesignDocument_v0.4_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/base/filestore/d/PREQ15SystemTestAutomationDesignDocument_v1.0_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/base/filestore/d/Preq15Fat32_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/base/hal/d/HAL_SystemTestAutomationDesignDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/bluetooth/d/bluetooth_systemtest_how_to_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/d/HowToBuildPlattest_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/d/ImplementationChangestoPlattest_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/d/SGL.GT0274.015_v1.0_PREQ1086_Device_feature_management_TestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/d/SGL.GT0274.016_v1.0_PREQ1086_Device_feature_management_designsketch_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/d/SGL.PGM012.41.v1.0.Plattest_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/d/SGL.PR0088.004_Rev1.0_System_Test_ODC_integration_checklist_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/d/SGL.PR0101.101_Rev1.0_SystemTestExecutionenvironmentFunctionalSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/d/SanityCDMATestSuiteDescriptionDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/d/SanityConnectedTestSuiteDescriptionDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/d/SanityNonConnectedTestSuiteDescription_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/d/SanityNonConnectedTestSuiteTechnologyDescription_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/d/SystemTestAutomationDesignDocumentTemplate_v1.0_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/d/setup_ethernet_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/demandpaging/d/HowToDocumentforBtraceandFlushcache_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/demandpaging/d/HowToStress_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/demandpaging/d/SGL.SM0013.219_PREQ1110_System_Test_PerformanceTestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/demandpaging/d/SGL.SM0013.231.StressConditions_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/graphics/d/Graphics_SystemTestAutomationDesignDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/graphics/d/NGAPollyrenderingSystemTestExecutionGuide_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/graphics/d/NGAVideoUtilitySystemTestExecutionGuide_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/graphics/d/SGL.PPS305.302.Systest_graphics_Harness_design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/graphics/d/SGL.PPS305.303.Graphicstestsuitedescription_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/lbs/d/LBSStandalonePrivacyModeSystemTestDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/lbs/d/LBSStandalonePrivacyModeSystemTestHowToDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/lbs/d/LBSSystemTestAutomationDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/lbs/d/LBSSystemTestHowToDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/messaging/d/IREQ12-SystemTestAutomationDesignDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/messaging/d/IREQ13-SystemTestAutomationDesignDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/messaging/d/MessagingPerformancePREQSystemTestAutomationDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/messaging/d/PREQ139_SystemTestAutomationDesignDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/messaging/d/PREQ694_System_Test_Automation_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/messaging/d/PlatTest_Mess_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/messaging/d/Preq138-SystemTestAutomationDesignDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/messaging/d/Preq138CDMASMS_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/messaging/d/Preq139SMSTeleservices_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/messaging/d/Preq23Imapsync_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/messaging/d/Preq694Auto-sendofSMSonreconnection_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/messaging/d/Preq98Improvedcharactersupport_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/messaging/d/SGL.PPS305.313v1.0MessagingUserPromptingHowToDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/messaging/d/SGL.PPS305.315SQLiteMessagingSystemTestAutomationDesignDescription_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/messaging/d/SGL.PPS305.318Sqlitetestsuitedescription_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/multimedia/d/IREQ14_SystemTestAutomationDesignDocumentation_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/multimedia/d/Multimedia_System_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/multimedia/d/PREQ34-DesignDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/multimedia/d/PREQ715-AudioBitRateDesignDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/multimedia/d/Preq243DualTone_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/multimedia/d/Preq34ASR_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/multimedia/d/Preq715AudioBitrate_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/multimedia/d/SGL.GT0414.101-PREQ1823MetadataUtiltyFramework-HowTo_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/multimedia/d/SGL.GT0414.403MultiMediaA3FManualTestSuiteDescription_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/multimedia/d/SGL.GT0414.407_Rev1.1MultiMediaA3FSystemTestAutomationDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/multimedia/d/SGL.GT0417.033v1.0VideoRenderSystemTestAutomationDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/multimedia/d/SGL.PPS305.306v1.0ImageConversionLibrarySystemTestAutomationDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/multimedia/d/SGL.PPS305.308v1.0ImageConversionLibrarySystemTestHowToDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/multimediaprotocols/d/RTPSystemTestHowToDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/multimediaprotocols/d/SGL.PPS0305.322v1.1MultimediaProtocolsSystemTestAutomationDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/networking/d/Networking_System_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/networking/d/Preq245PPPv6.NIF_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/networking/d/SGL.PPS305.324v1.0VPNSystemTestHowToDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/networking/d/SGL.PPS305.327v1.0IPSecVPNSystemTestAutomationDesignDescription_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/networking/d/SGL.PPS305.328v1.0IPSecSystemTestHowToDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/networking/dhcp/d/DHCPSystemTestHowToDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/networking/streaming/d
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/obex/obextransport/d/Preq64OBEX_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/obex/obextransport/d/Preq64_SGL.PR0073.090_Rev1.1_System_Test_Automation_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/platsec/setcap/d/Capabality_Check_SystemTestAutomationDesignDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/platsec/setcap/d/PS2CapabilitiesManagement_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/platsec/setcap/d/PS6.4DataCaging_STAutomationDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/platsec/setcap/d/PS6DataCaging_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/security/caf/scaf/d/SGL.GT414.404v1.1StreamingCAFtestsuitedescription_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/security/caf/scaf/d/SGL.GT414.408v1.1StreamingCAFSystemTestAutomationDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/security/common/d/PS3SoftwareInstallSystemTestAutomationDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/security/common/d/Preq492SWInstall_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/security/common/d/Preq492SWMIDletInstall_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/security/common/d/SGL.PR0106.024_Rev1.0_Preq776_777_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/sisgen/d/SISGENToolHowtoDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/sisgen/d/SISGEN_ToolDesignDescription_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/syncml/datasync/d/SGL0106.021_v0.1_MS3.17_SyncML_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/syncml/datasync/d/SyncMLDataSync_SystemTestAutomationDesignDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/syslibs/centralrep/d/SGL.GT0238.031_v1.0_Perf_BaseServices_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/syslibs/d/BaseServicesConvenienceFunctionsSystemTestHowTo_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/syslibs/d/SysLibs_System_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/syslibs/dbms/d
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/syslibs/ecom/d/ECom_SystemTestAutomationDesignDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/syslibs/xmlframework/d/DD_PlatTest_XMLFramework_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/syslibs/xmlframework/d/FS_PlatTest_XMLFramework_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/syslibs/xmlframework/d/Preq230XML_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/systemqualities/deviceboot/d/FrameworkforAutomatedTestExecution_HowTo_v1.0_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/systemqualities/deviceboot/d/PREQ908_SystemFiles_Corruption_Recoverabiilty_How_to_Document_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/systemqualities/deviceboot/d/Plattest_Bootup_Framework_How_to_Document_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/systemqualities/deviceboot/d/Preq908-SystemTestAutomationDesignDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/systemqualities/deviceboot/d/SGL.GT0238.016_v1.0_PREQ967_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/systemqualities/deviceboot/d/SGL.GT0238.018_v1.0_PREQ967_Design_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/systemqualities/deviceboot/d/SGL.GT0274.017_v1.1_PREQ_955_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/systemqualities/deviceboot/d/SGL.GT0274_027_v1.0_PREQ955DesignSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/systemqualities/deviceboot/d/Start_up_exe_IAR_and_ProMon_Re_LaunchSystemTestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/systemqualities/performance/d/NTRAS_Configuration_for_Test_Execution_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/systemqualities/performance/d/Performance_System_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/systemqualities/performance/d/SGL.GT0258.104_Biweekly_Performance_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/systemqualities/performance/d/SGL.GT0258.105_Extended_Performance_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/systemqualities/securityvulnerability/d/SGL.GT0238.044_v1.0_Security_Design_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/telephony/etel/d/PREQ58SystemTestAutomationDesignDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/telephony/etel/d/Preq136CDMATelephony_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/telephony/etel/d/Preq136_System_Test_Automation_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/telephony/etel/d/Preq58EnhanceISVTelephony_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/telephony/etel/d/Preq593GPPR4_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/telephony/etel/d/ReadOnly-0-Rev-6-Dial_API_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/telephony/etel/d/SGL.PPS305.319v1.0TelephonySystemTestAutomationDesignDescription_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/telephony/etel/d/SGL.PPS305.323v1.0TelephonySystemTestHowToDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/telephony/etel/d/TelephonyTestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/telephony/etel/d/Telephony_Dial_Utilities_DesignDoc_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/testsuites/d/SGL.GT0414.406SoakTestSuiteDescription_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/systemtest/symbian/testsuites/d/SGL.GT0414.409.GraphicsNGATestSuiteDescription_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/cellularsrv/telephonyserverplugins/cdmatsy/d
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/cellularsrv/telephonyserverplugins/common_tsy/customapi/d/Common_TSY_Multimode_ETel_Custom_API_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/cellularsrv/telephonyserverplugins/common_tsy/d/CommonTSYDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/cellularsrv/telephonyserverplugins/common_tsy/d/CommonTSYPluginAPISpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/cellularsrv/telephonyserverplugins/common_tsy/d/Common_TSY_HowTo_Implementation_Guideline_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/cellularsrv/telephonyserverplugins/common_tsy/test/component/d/CTSYComponentTestSuiteArchitecturalDescription_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/cellularsrv/telephonyserverplugins/common_tsy/test/integration/d/Howtowriteintegrationtests_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/telephony/d/BasebandAdaptationSubsystemArchitecturalDescription_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/telephony/d/BasebandAdaptationSubsystemFunctionalSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/telephony/d/How_to_write_a_TSY_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/telephony/d/Telephony_Subsystem_Architectural_Description_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/telephony/d/Telephony_Subsystem_Functional_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/telephony/d/Telephony_Subsystem_Release_Note_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/cellularsrv/telephonyutils/dial/d/Dial_API_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/cellularsrv/telephonyutils/dial/d/Dial_API_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/cellularsrv/telephonyutils/dial/d/Dial_Functional_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/cellularsrv/telephonyserver/etelserverandcore/d/ETel_Core_API_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/cellularsrv/telephonyserver/etelserverandcore/d/ETel_Telephony_Server_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/cellularsrv/telephonyserver/etelserverandcore/d/EtelRecorderHow-To_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/cellularsrv/telephonyutils/etel3rdpartyapi/d/ETelISVDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/cellularsrv/telephonyutils/etel3rdpartyapi/d/ETel_Third_Party_APIV2_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/cellularsrv/telephonyutils/etel3rdpartyapi/d/TelephonyISVAPIUseCaseAnalysis_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/cellularsrv/telephonyserver/etelcdma/d/CDMA_Telephony_Functional_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/cellularsrv/telephonyserver/etelcdma/d/ETelCDMA_API_Design_Document_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/cellularsrv/telephonyserver/etelcdma/d/ETelCDMA_UseCase_Analysis_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/cellularsrv/telephonyserver/etelmultimode/d/ETelMM_API_Design_Document_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/cellularsrv/telephonyserver/etelmultimode/d/ETelMM_Architecture_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/cellularsrv/telephonyserver/etelmultimode/d/ETelMM_UseCase_Analysis_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/cellularsrv/telephonyserver/etelmultimode/d/EtelmmAPITestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/cellularsrv/telephonyserver/etelmultimode/d/HowToUpgradeToMultimodeETel_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/cellularsrv/telephonyserver/etelpacketdata/d/ETel_Packet_API_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/cellularsrv/telephonyserver/etelsimtoolkit/d/How_To_Write_USAT_Client_And_TSY_Guide_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/cellularsrv/telephonyserver/etelsimtoolkit/d/USAT_ETel_API_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/cellularsrv/fax/faxclientandserver/d/How_to_use_Fax_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/devicesrv/resourcemgmt/hwresourcesmgr/d/HWRMDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/devicesrv/resourcemgmt/hwresourcesmgr/d/HWRMPolicyConfiguration_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/devicesrv/resourcemgmt/hwresourcesmgr/d/How-ToWriteHWRMPowerStatePlugin_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/devicesrv/resourcemgmt/hwresourcesmgr/d/How-ToWriteHWRMTargetModifierPlugin_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/devicesrv/resourcemgmt/hwresourcesmgr/d/How-toWriteLight,Vibra,PowerandFmTxHWRMPlugin_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/cellularsrv/telephonyserverplugins/multimodetsy/d/Multimode_TSY_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/app/contacts/pimprotocols/phonebooksync/d/PhoneBook_Sync_Detailed_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/app/contacts/pimprotocols/phonebooksync/d/PhonebookSynchroniserHowToDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/app/contacts/pimprotocols/phonebooksync/d/Phonebook_Sync_Single_PhBk_Unit_Test_Spec_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/cellularsrv/telephonyserverplugins/simtsy/d/How_to_use_the_WCDMA_Simulator_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/cellularsrv/telephonyserverplugins/simtsy/d/WCDMA_Simulator_TSY_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/telephony/tools/rps/d/RPSDesignDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/serialserver/muxcsy/csy/csy27010/test/rawip27010daemon/d/SGL.GT0233.70527.010NetworkTerminationDesignDocument_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/serialserver/muxcsy/d/GettingStartedGuideforTRP_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/serialserver/muxcsy/d/TRPTSYComponentDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/commsfw/serialserver/muxcsy/d/UIPortingGuideforTRP_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/osrndtools/testexecfw1/cinidata/d/CIniDataUserguide_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/persistentdata/traceservices/tracefw/d/DevelopmentTools_How_To_UTrace_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/persistentdata/traceservices/tracefw/d/Dictionary_File_Format_Specification_v1.0_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/buildtools/toolsandutils/dependencymodeller/d
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/tools/sdk_eng/sdk_builder/d/CBRInstallerMakerUserGuide_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/tools/sdk_eng/sdk_builder/d/SGL.GT0260.302SDKContentDefinitionFileFormatSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/tools/sdk_eng/sdk_builder/d/SGL.GT0260.303SDKUserFilterRulesFormat_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/tools/sdk_eng/sdk_builder/d/SGL.GT0260.304InstallerMakerDesignSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/tools/sdk_eng/sdk_builder/d/SGL.GT0260.305SDKBuildingToolsFilterToolDesignSpec_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/tools/sdk_eng/sdk_builder/d/SGL.GT0260.306ApplicationKitDefinitionRules_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/tools/sdk_eng/sdk_builder/d/SGL.GT0260.307ValidationToolDesignSpec_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/tools/sdk_eng/sdk_builder/d/SGL.GT0260.308KitsManifestFileFormat_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/shortlinksrv/usbmgmt/usbmgr/d/FDF_Unit_Test_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/shortlinksrv/usbmgmt/usbmgr/d/FDF_Unit_Test_Spec_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/shortlinksrv/usbmgmt/usbmgr/d/How_To_Use_Mass_Storage_Example_App_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/shortlinksrv/usbmgmt/usbmgr/d/How_to_add_HNP_SRP_tests_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/shortlinksrv/usbmgmt/usbmgr/d/OTGDI-UnitTestHarnessDesign_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/shortlinksrv/usbmgmt/usbmgr/d/OTGDI-UnitTestHowTo_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/shortlinksrv/usbmgmt/usbmgr/d/OTGDITestSpec_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/shortlinksrv/usbmgmt/usbmgr/d/USBCAT-CTestSpecForBulk_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/shortlinksrv/usbmgmt/usbmgr/d/USBDI-UnitTestDesignWithBulk_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/shortlinksrv/usbmgmt/usbmgr/d/USBDI-UnitTestSpecWithBulk_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/shortlinksrv/usbmgmt/usbmgr/d/USBMAN_NSE_Compoment_Test_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/shortlinksrv/usbmgmt/usbmgr/d/USB_ACM_Component_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/shortlinksrv/usbmgmt/usbmgr/d/USB_Base_Functional_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/shortlinksrv/usbmgmt/usbmgr/d/USB_Control_App_Component_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/shortlinksrv/usbmgmt/usbmgr/d/USB_FDF_Component_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/shortlinksrv/usbmgmt/usbmgr/d/USB_Functional_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/shortlinksrv/usbmgmt/usbmgr/d/USB_Host_and_OTG_Test_Harness_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/shortlinksrv/usbmgmt/usbmgr/d/USB_Host_and_OTG_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/shortlinksrv/usbmgmt/usbmgr/d/USB_How-To_Use_USBDI_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/shortlinksrv/usbmgmt/usbmgr/d/USB_How-To_Write_a_Function_Driver_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/shortlinksrv/usbmgmt/usbmgr/d/USB_How_To_Add_Charging_Component_Test_Cases_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/shortlinksrv/usbmgmt/usbmgr/d/USB_How_To_Use_Mass_Storage_Example_App_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/shortlinksrv/usbmgmt/usbmgr/d/USB_How_To_Use_Multiple_Personalities_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/shortlinksrv/usbmgmt/usbmgr/d/USB_How_To_Write_Charging_Plugin_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/shortlinksrv/usbmgmt/usbmgr/d/USB_How_To_Write_Plugin_Class_Controller_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/shortlinksrv/usbmgmt/usbmgr/d/USB_How_To_Write_Watcher_App_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/shortlinksrv/usbmgmt/usbmgr/d/USB_OTGDI_Component_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/shortlinksrv/usbmgmt/usbmgr/d/USB_Subsystem_Architectural_Description_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/shortlinksrv/usbmgmt/usbmgr/d/USB_Subsystem_Release_Note_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/shortlinksrv/usbmgmt/usbmgr/d/USB_USBDI_Component_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/shortlinksrv/usbmgmt/usbmgr/d/USB_USBMAN_Component_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/shortlinksrv/usbmgmt/usbmgr/d/USB_USBMAN_OTG_Component_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/shortlinksrv/usbmgmt/usbmgr/d/USB_USBMAN_and_ACM_API_Overview_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/shortlinksrv/usbmgmt/usbmgr/d/USB_USBMan_Plug_in_Interface_Design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/shortlinksrv/usbmgmt/usbmgr/d/USB_USB_Manager_OTG_Functional_Description_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/wap-stack/d/HowTo_Test_WapStack_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/wap-stack/d/WAP-stack_Subsystem_Functional_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comgen/wap-stack/d/WAP-stack_architectural_analysis_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/netprotocols/wapstack/wapmessageapi/d/WAP_stack-design_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/mw/netprotocols/wapstack/wapmessageapi/d/WapMsgAPI_Test_Specification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/deviceplatformrelease/foundation_system/systemdocs/d/SGL.SM0007.043ComponentPerformanceConsiderations_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/deviceplatformrelease/foundation_system/systemdocs/d/SGL.SM0013.157DemandPagingEngineeringGuide_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/deviceplatformrelease/foundation_system/systemdocs/d/SGL.SM0014.009HowToAssignThreadPriorities_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/deviceplatformrelease/foundation_system/systemdocs/d/SGL.SM007.001PlatformSecurityEngineeringGuide_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/deviceplatformrelease/foundation_system/systemdocs/d/SGL.SM007.014SecurePlug-inPatterns_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/deviceplatformrelease/foundation_system/systemdocs/d/SGL.SM007.021HowToDefineSystemProperties_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/deviceplatformrelease/foundation_system/systemdocs/d/SGL.SM007.023SharedSettingsGuide_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/deviceplatformrelease/foundation_system/systemdocs/d/SGL.SM007.038HowToMigratetoDataCaging_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/deviceplatformrelease/foundation_system/systemdocs/d/SGL.SM007.039OptimisingCompressedROMs_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/deviceplatformrelease/foundation_system/systemdocs/d/SGL.SM007.040HowToImproveStartupPerformance_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/unref/orphan/comtt/testdriver/d/CommandLineTestSpecification_files
+/os/buildtools/devlib/devlibhelp/doc_source/engdoc/os/persistentdata/loggingservices/rfilelogger/logger/d/FilelogUserguide_files
+/os/buildtools/devlib/devlibhelp/doc_source/faqSDK
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/ANIMATION
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Active_Backup_Client
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Alarm_Server
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Application_Architecture
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Application_Utilities
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/BIO_Messaging_Framework
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/BLUETOOTH_AVRCP
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/BLUETOOTH_MANAGER
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/BLUETOOTH_SDP
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/BMP_Animation
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Backup_Engine
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Bit_GDI
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Bitmap_Font_Tools
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Bluetooth_Client_Library
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Bluetooth_HCI_Framework_2
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Bluetooth_Notifiers_Support
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Bluetooth_PAN_Profile
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Bluetooth_Stack
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Bookmark_Support
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Broadcast_Radio_Tuner
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/C32_Serial_Server
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/CAF_Streaming_Support
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/CALENDAR
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/CDMA_SMS_Stack
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/CLOCK
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/CSD_AGT
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/C_Standard_Library
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/C___Standard_Library
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Camera_Framework
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Central_Repository
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Certificate_and_Key_Management
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Character_Encoding_and_Conversion_Framework
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Character_Encoding_and_Conversion_Plugins
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Chinese_Calendar_Converter
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Colour_Palette
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Comms_Database
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Comms_Database_Shim
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Compiler_Runtime_Support
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Contacts_Model
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Content_Access_Framework_for_DRM
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Control_Environment
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Crypto_Token_Framework
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/DBMS
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/DIAL
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/DevSound_API
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Device_Management_Framework
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/EGL_API
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/ETel_3rd_Party_API
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/ETel_Multimode
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/ETel_Packet_Data
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/ETel_Server_and_Core
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Event_Logger
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Feature_Manager
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/File_Converter_Framework
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/File_Server
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Font_Store
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Font_and_Bitmap_Server
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Front_End_Processor
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/GDI
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/GRID
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Generic_SCPR_Parameters
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/HTTP_Transport_Framework
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/HTTP_Utilities_Library
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Hardware_Resources_Manager
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Help
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/IP_Event_Notifier
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/IP_Hook
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Imaging_Frameworks
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Internet_Sockets
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/IrDA_Stack
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Kernel_Architecture_2
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Location_Admin
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/MIME_Recognition_Framework
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/MMS_Settings
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Message_Server_and_Store
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Multimedia_Framework
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Multimedia_Utility_Library
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Network_Interface_Manager
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Networking_Dialog_API
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Number_Formatting
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/OBEX_MTMs
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/OBEX_Protocol
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/OMA_SyncML_Common_Framework
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/OpenGL_ES_API
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/OpenVG_API
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Open_Environment_Core
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/POP3_and_SMTP_MTM
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/PSD_AGT
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Phonebook_Sync
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Plugin_Framework
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Printer_Driver_Support
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Printing_UI_Support
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/QoS_3GPP_CPR
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/RTP
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Reference_DevSound_Plugins
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Remote_Control_Framework
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/SIP_Connection_Plugins
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/SIP_Framework
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/SIP_State_Machine
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/SMIL_Parser
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/SMS_MTM
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/SMS_Stack
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/SQL
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/STORE
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/SYSTEMMONITOR
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Scheduled_Send_MTM
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Screen_Driver
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Secure_Software_Install
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Security_Common_Utils
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Security_Utils
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Send_As
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Software_Component_Registry
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Software_Installation_Framework
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Speech_Recognition_Controller
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/System_Agent
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/TLS
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Task_Scheduler
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Telnet_Engine
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Text_Formatting
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Text_Handling
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Time_Zone_Localization
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Time_Zone_Server
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Trace_Framework
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/UIKON
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/UI_Graphics_Utilities
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/UI_Look_and_Feel
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/URI_Permission_Services
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/User_Prompt_Service
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Video_HAI
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/View_Server
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/WAP_Base
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/WAP_Message_API
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/WAP_Push_Framework
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/WAP_Push_Support
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Window_Server
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/World_Server
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/XML_Framework
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/Zip_Compression_Library
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/m-Router
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PA/vCard_and_vCal
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/ANIMATION
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/ASN_PKCS
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Active_Backup_Client
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Alarm_Server
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Application_Architecture
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Application_Utilities
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/BIO_Messaging_Framework
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/BIO_Watchers
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/BLUETOOTH_AVRCP
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/BLUETOOTH_GAVDP
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/BLUETOOTH_MANAGER
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/BLUETOOTH_SDP
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/BMP_Animation
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/BOOKMARK_SUPPORT
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Backup_Engine
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Bit_GDI
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Bitmap_Font_Tools
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Bluetooth_Client_Library
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Bluetooth_GPS_Positioning_Module
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Bluetooth_HCI_Extension_Interface
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Bluetooth_HCI_Framework_2
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Bluetooth_Notifiers_Support
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Bluetooth_PAN_Profile
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Bluetooth_PBAP
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Bluetooth_Stack
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Broadcast_Radio_Transmitter
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Broadcast_Radio_Tuner
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/C32_Serial_Server
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/CAF_Streaming_Support
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/CALENDAR
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/CDMA_SMS_Stack
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/CINIDATA
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/CLOCK
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/CSD_AGT
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/C_Standard_Library
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/C___Standard_Library
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Camera_Framework
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Central_Repository
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Certificate_and_Key_Management
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Character_Encoding_and_Conversion_Framework
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Character_Encoding_and_Conversion_Plugins
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Chinese_Calendar_Converter
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Client_Provisioning_Framework
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Colour_Palette
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Common_TSY
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Comms_Database
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Comms_Database_Shim
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Comms_Root_Server
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Compiler_Runtime_Support
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Contacts_Model
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Content_Access_Framework_for_DRM
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Control_Environment
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Crypto_Token_Framework
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/DBMS
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/DHCP
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/DIAL
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/DND
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/DevSound_API
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/DevSound_Plugin_Support
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Device_Management_Framework
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Direct_GDI
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Domain_Manager
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/E32_Utilities
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/EAP_Framework
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/EGL_API
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/ETel_3rd_Party_API
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/ETel_CDMA
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/ETel_Multimode
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/ETel_Packet_Data
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/ETel_SIM_Toolkit
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/ETel_Server_and_Core
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Ethernet_NIF
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Event_Logger
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/FM_Transmitter_Control
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Fax_Client_and_Server
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Feature_Manager
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Feature_Registry
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/File-based_Certificate_and_Key_Stores
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/File_Converter_Framework
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/File_Server
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Font_Store
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Font_and_Bitmap_Server
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Front_End_Processor
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/GDI
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/GPRS_UMTS_QoS_Interface
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/GPS_Data_Source_Adaptation
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/GRID
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Generic_SCPR_Parameters
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Graphics_Data_Resource
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Graphics_Effects
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/HTTP_Transport_Framework
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/HTTP_Utilities_Library
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Hardware_Resources_Manager
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Help
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/IP_Event_Notifier
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/IP_Hook
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/IPsec
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Imaging_Frameworks
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Inter-System_Communication
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Internet_Sockets
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/IrDA_Stack
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Kernel_Architecture_2
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Location_Admin
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Location_Server
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/MBMS_Parameters
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/MBuf_Manager
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/MIME_Recognition_Framework
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/MMS_Settings
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/MTP_Framework
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Mass_Storage_Driver
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Media_Device_Framework
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Message_Server_and_Store
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Metadata_Utility_Framework
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Mobile_TV_DVB-H_Receiver_HAI
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Multimedia_Framework
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Multimedia_Utility_Library
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Network_Interface_Manager
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Network_Protocol_Module
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Network_Request_Handler
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Networking_Dialog_API
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Number_Formatting
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/OBEX_Extension_API
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/OBEX_MTMs
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/OBEX_Protocol
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/OMA_SyncML_Common_Framework
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/OMA_SyncML_Data_Sync
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/OpenGL_ES_API
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/OpenGL_ES_Framework
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/OpenMAX_IL_Core
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/OpenVG_API
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Open_Environment_Core
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/POP3_and_SMTP_MTM
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/PSD_AGT
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Phonebook_Sync
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Plugin_Framework
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Power_and_Memory_Notification_Service
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Printer_Driver_Support
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Printing_UI_Support
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Privacy_Protocol_Module
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/QoS_3GPP_CPR
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/QoS_Library
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/RTP
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Reference_DevSound_Plugins
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Remote_Control_Framework
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/SIM_TSY
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/SIP_Connection_Plugins
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/SIP_Framework
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/SIP_State_Machine
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/SMIL_Parser
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/SMS_MTM
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/SMS_Stack
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/SQL
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/STORE
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/SUPL_Protocol_Module
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/SYSTEMMONITOR
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Scheduled_Send_MTM
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Screen_Driver
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Secure_Software_Install
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Security_Common_Utils
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Security_Utils
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Send_As
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Sensors_Framework
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Simulation_Positioning_Module
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Software_Component_Registry
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Software_Installation_Framework
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Speech_Recognition_Controller
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Surface_Update
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/System_Agent
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/System_Starter
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/TESTDRIVER
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/TESTEXECUTE
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/TLS
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/TLS_Provider
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Task_Scheduler
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Telnet_Engine
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Text_Formatting
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Text_Handling
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Time_Zone_Localization
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Time_Zone_Server
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Trace_Framework
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Tunnel_NIF
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/UIKON
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/UI_Graphics_Utilities
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/UI_Look_and_Feel
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/URI_Permission_Services
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/USB_Manager
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/USB_Mass_Storage_File_System
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/User-Side_Hardware_Abstraction
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/User_Prompt_Service
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Video_HAI
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Video_Renderer
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/View_Server
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/WAP_Base
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/WAP_Message_API
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/WAP_Push_Framework
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/WAP_Push_Support
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Watcher_Framework
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Window_Server
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/World_Server
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/XML_Framework
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/Zip_Compression_Library
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/m-Router
+/os/buildtools/devlib/devlibhelp/doc_source/reference/9.5-PP/vCard_and_vCal
+/os/buildtools/devlib/devlibhelp/doc_source/reference/PatchableConstants
+/os/buildtools/devlib/devlibhelp/doc_source/reference/Standards/CodingStandards
+/os/buildtools/devlib/devlibhelp/doc_source/reference/Standards/WritingStyle/Appearance
+/os/buildtools/devlib/devlibhelp/doc_source/reference/Standards/WritingStyle/Diagrams
+/os/buildtools/devlib/devlibhelp/doc_source/reference/Standards/WritingStyle/GenericWriting
+/os/buildtools/devlib/devlibhelp/doc_source/reference/Standards/WritingStyle/SymbianWriting
+/os/buildtools/devlib/devlibhelp/doc_source/reference/SystemPanics
+/os/buildtools/devlib/devlibhelp/doc_source/reference/TechView/TechViewBaseDialogs
+/os/buildtools/devlib/devlibhelp/doc_source/reference/TechView/TechViewControls
+/os/buildtools/devlib/devlibhelp/doc_source/reference/TechView/TechViewCoreControls
+/os/buildtools/devlib/devlibhelp/doc_source/reference/TechView/TechViewDialogs
+/os/buildtools/devlib/devlibhelp/doc_source/reference/TechView/TechViewFileDialogs
+/os/buildtools/devlib/devlibhelp/doc_source/reference/TechView/TechViewInfraRed
+/os/buildtools/devlib/devlibhelp/doc_source/reference/TechView/TechViewMisc
+/os/buildtools/devlib/devlibhelp/doc_source/reference/capability/GT_9.5/agreed
+/os/buildtools/devlib/devlibhelp/doc_source/reference/capability/GT_9.5/api
+/os/buildtools/devlib/devlibhelp/doc_source/reference/capability/GT_9.5/cap
+/os/buildtools/devlib/devlibhelp/doc_source/reference/capability/GT_9.5/cpa
+/os/buildtools/devlib/devlibhelp/doc_source/reference/capability/GT_9.5/sys_wide
+/os/buildtools/devlib/devlibhelp/doc_source/reference/resource/ConverterArchitecture
+/os/buildtools/devlib/devlibhelp/doc_source/reference/resource/ECom
+/os/buildtools/devlib/devlibhelp/doc_source/reference/resource/TechView
+/os/buildtools/devlib/devlibhelp/doc_source/reference/resource/bafl
+/os/buildtools/devlib/devlibhelp/doc_source/reference/resource/biomsg
+/os/buildtools/devlib/devlibhelp/doc_source/reference/resource/msg
+/os/buildtools/devlib/devlibhelp/doc_source/reference/resource/uikon
+/os/buildtools/devlib/devlibhelp/examples/AppEngine/CalInterimApi
+/os/buildtools/devlib/devlibhelp/examples/AppEngine/ContactsModel/contactviews
+/os/buildtools/devlib/devlibhelp/examples/AppFramework/AnimExample
+/os/buildtools/devlib/devlibhelp/examples/AppFramework/Apparc/EmbApp
+/os/buildtools/devlib/devlibhelp/examples/AppFramework/Apparc/MenuApp
+/os/buildtools/devlib/devlibhelp/examples/AppFramework/Apparc/Minimal
+/os/buildtools/devlib/devlibhelp/examples/AppFramework/Apparc/Server Application/harness
+/os/buildtools/devlib/devlibhelp/examples/AppFramework/Apparc/Server Application/server_application
+/os/buildtools/devlib/devlibhelp/examples/AppFramework/Apparc/Server Application/service_support/inc
+/os/buildtools/devlib/devlibhelp/examples/AppFramework/BmpAnim
+/os/buildtools/devlib/devlibhelp/examples/AppFramework/Clock
+/os/buildtools/devlib/devlibhelp/examples/AppFramework/Converter/EgConverter
+/os/buildtools/devlib/devlibhelp/examples/AppFramework/Converter/UsingConv
+/os/buildtools/devlib/devlibhelp/examples/AppFramework/Recogniser
+/os/buildtools/devlib/devlibhelp/examples/AppFramework/Text
+/os/buildtools/devlib/devlibhelp/examples/AppFramework/UIControls/ControlFramework/group
+/os/buildtools/devlib/devlibhelp/examples/AppFramework/UIControls/ControlFramework/image
+/os/buildtools/devlib/devlibhelp/examples/AppFramework/UIControls/ControlFramework/inc
+/os/buildtools/devlib/devlibhelp/examples/AppFramework/UIControls/ControlFramework/src
+/os/buildtools/devlib/devlibhelp/examples/AppFramework/UIControls/CustomControls
+/os/buildtools/devlib/devlibhelp/examples/AppFramework/egsysStart/resource/armv5
+/os/buildtools/devlib/devlibhelp/examples/AppFramework/egsysStart/resource/wins
+/os/buildtools/devlib/devlibhelp/examples/AppProts/InetProtUtil
+/os/buildtools/devlib/devlibhelp/examples/AppProts/exampleclient
+/os/buildtools/devlib/devlibhelp/examples/AppServices/AlarmServer
+/os/buildtools/devlib/devlibhelp/examples/AppServices/calcon
+/os/buildtools/devlib/devlibhelp/examples/AppServices/timezoneconversion
+/os/buildtools/devlib/devlibhelp/examples/AppServices/timezonelocalization
+/os/buildtools/devlib/devlibhelp/examples/AppServices/versit
+/os/buildtools/devlib/devlibhelp/examples/Base/ArraysAndLists/DynamicArrays
+/os/buildtools/devlib/devlibhelp/examples/Base/ArraysAndLists/FixedArrays
+/os/buildtools/devlib/devlibhelp/examples/Base/ArraysAndLists/linkedlist/dbllist/group
+/os/buildtools/devlib/devlibhelp/examples/Base/ArraysAndLists/linkedlist/dbllist/inc
+/os/buildtools/devlib/devlibhelp/examples/Base/ArraysAndLists/linkedlist/dbllist/src
+/os/buildtools/devlib/devlibhelp/examples/Base/ArraysAndLists/linkedlist/deltaque/group
+/os/buildtools/devlib/devlibhelp/examples/Base/ArraysAndLists/linkedlist/deltaque/inc
+/os/buildtools/devlib/devlibhelp/examples/Base/ArraysAndLists/linkedlist/deltaque/src
+/os/buildtools/devlib/devlibhelp/examples/Base/ArraysAndLists/linkedlist/sgllist/group
+/os/buildtools/devlib/devlibhelp/examples/Base/ArraysAndLists/linkedlist/sgllist/inc
+/os/buildtools/devlib/devlibhelp/examples/Base/ArraysAndLists/linkedlist/sgllist/src
+/os/buildtools/devlib/devlibhelp/examples/Base/BufsAndStrings/Desc/BinaryData
+/os/buildtools/devlib/devlibhelp/examples/Base/BufsAndStrings/Desc/Buffer
+/os/buildtools/devlib/devlibhelp/examples/Base/BufsAndStrings/Desc/HeapBuffer
+/os/buildtools/devlib/devlibhelp/examples/Base/BufsAndStrings/Desc/InFunct
+/os/buildtools/devlib/devlibhelp/examples/Base/BufsAndStrings/Desc/Modifier
+/os/buildtools/devlib/devlibhelp/examples/Base/BufsAndStrings/Desc/NonModifier
+/os/buildtools/devlib/devlibhelp/examples/Base/BufsAndStrings/Desc/Pointer
+/os/buildtools/devlib/devlibhelp/examples/Base/BufsAndStrings/DynamicBuffers
+/os/buildtools/devlib/devlibhelp/examples/Base/BufsAndStrings/Lexer
+/os/buildtools/devlib/devlibhelp/examples/Base/BufsAndStrings/WriteToFiles
+/os/buildtools/devlib/devlibhelp/examples/Base/BufsAndStrings/rbufexample
+/os/buildtools/devlib/devlibhelp/examples/Base/CommonFramework
+/os/buildtools/devlib/devlibhelp/examples/Base/DLLs/PolymorphicDLL1
+/os/buildtools/devlib/devlibhelp/examples/Base/DLLs/PolymorphicDLL2
+/os/buildtools/devlib/devlibhelp/examples/Base/DLLs/UsingDLLs
+/os/buildtools/devlib/devlibhelp/examples/Base/DateAndTime/Basics
+/os/buildtools/devlib/devlibhelp/examples/Base/FileServer/Attributes
+/os/buildtools/devlib/devlibhelp/examples/Base/FileServer/BasicSession
+/os/buildtools/devlib/devlibhelp/examples/Base/FileServer/Connecting
+/os/buildtools/devlib/devlibhelp/examples/Base/FileServer/DriveInfo
+/os/buildtools/devlib/devlibhelp/examples/Base/FileServer/Filenames
+/os/buildtools/devlib/devlibhelp/examples/Base/FileServer/Notify
+/os/buildtools/devlib/devlibhelp/examples/Base/HashTableExample
+/os/buildtools/devlib/devlibhelp/examples/Base/IPC/AdvancedClientServerExample/ProcessClient/BWINS
+/os/buildtools/devlib/devlibhelp/examples/Base/IPC/AdvancedClientServerExample/ProcessClient/EABI
+/os/buildtools/devlib/devlibhelp/examples/Base/IPC/AdvancedClientServerExample/ProcessClient/group
+/os/buildtools/devlib/devlibhelp/examples/Base/IPC/AdvancedClientServerExample/ProcessClient/inc
+/os/buildtools/devlib/devlibhelp/examples/Base/IPC/AdvancedClientServerExample/ProcessClient/src
+/os/buildtools/devlib/devlibhelp/examples/Base/IPC/AdvancedClientServerExample/ProcessServer/group
+/os/buildtools/devlib/devlibhelp/examples/Base/IPC/AdvancedClientServerExample/ProcessServer/inc
+/os/buildtools/devlib/devlibhelp/examples/Base/IPC/AdvancedClientServerExample/ProcessServer/src
+/os/buildtools/devlib/devlibhelp/examples/Base/IPC/AdvancedClientServerExample/ThreadClient/BWINS
+/os/buildtools/devlib/devlibhelp/examples/Base/IPC/AdvancedClientServerExample/ThreadClient/EABI
+/os/buildtools/devlib/devlibhelp/examples/Base/IPC/AdvancedClientServerExample/ThreadClient/group
+/os/buildtools/devlib/devlibhelp/examples/Base/IPC/AdvancedClientServerExample/ThreadClient/inc
+/os/buildtools/devlib/devlibhelp/examples/Base/IPC/AdvancedClientServerExample/ThreadClient/src
+/os/buildtools/devlib/devlibhelp/examples/Base/IPC/AdvancedClientServerExample/ThreadServer/BWINS
+/os/buildtools/devlib/devlibhelp/examples/Base/IPC/AdvancedClientServerExample/ThreadServer/EABI
+/os/buildtools/devlib/devlibhelp/examples/Base/IPC/AdvancedClientServerExample/ThreadServer/group
+/os/buildtools/devlib/devlibhelp/examples/Base/IPC/AdvancedClientServerExample/ThreadServer/inc
+/os/buildtools/devlib/devlibhelp/examples/Base/IPC/AdvancedClientServerExample/ThreadServer/src
+/os/buildtools/devlib/devlibhelp/examples/Base/IPC/AdvancedClientServerExample/common/inc
+/os/buildtools/devlib/devlibhelp/examples/Base/IPC/AdvancedClientServerExample/common/src
+/os/buildtools/devlib/devlibhelp/examples/Base/IPC/AdvancedClientServerExample/driver
+/os/buildtools/devlib/devlibhelp/examples/Base/IPC/AdvancedClientServerExample/group
+/os/buildtools/devlib/devlibhelp/examples/Base/IPC/AdvancedClientServerExample/test/te_ProcessClientServerTest/group
+/os/buildtools/devlib/devlibhelp/examples/Base/IPC/AdvancedClientServerExample/test/te_ProcessClientServerTest/scripts
+/os/buildtools/devlib/devlibhelp/examples/Base/IPC/AdvancedClientServerExample/test/te_ProcessClientServerTest/src
+/os/buildtools/devlib/devlibhelp/examples/Base/IPC/AdvancedClientServerExample/test/te_ProcessClientServerTest/testdata
+/os/buildtools/devlib/devlibhelp/examples/Base/IPC/AdvancedClientServerExample/test/te_ThreadClientServerTest/group
+/os/buildtools/devlib/devlibhelp/examples/Base/IPC/AdvancedClientServerExample/test/te_ThreadClientServerTest/scripts
+/os/buildtools/devlib/devlibhelp/examples/Base/IPC/AdvancedClientServerExample/test/te_ThreadClientServerTest/src
+/os/buildtools/devlib/devlibhelp/examples/Base/IPC/AdvancedClientServerExample/test/te_ThreadClientServerTest/testdata
+/os/buildtools/devlib/devlibhelp/examples/Base/IPC/Async/AcceptInput1
+/os/buildtools/devlib/devlibhelp/examples/Base/IPC/Async/AcceptInput2
+/os/buildtools/devlib/devlibhelp/examples/Base/IPC/Async/AcceptPrintInput
+/os/buildtools/devlib/devlibhelp/examples/Base/IPC/Async/Fibonacci1
+/os/buildtools/devlib/devlibhelp/examples/Base/IPC/Async/Fibonacci2
+/os/buildtools/devlib/devlibhelp/examples/Base/IPC/Async/Fibonacci3
+/os/buildtools/devlib/devlibhelp/examples/Base/IPC/Async/RealLifeWaitLoop
+/os/buildtools/devlib/devlibhelp/examples/Base/IPC/Async/RunComplete
+/os/buildtools/devlib/devlibhelp/examples/Base/IPC/Async/SingleRequest
+/os/buildtools/devlib/devlibhelp/examples/Base/IPC/Async/WaitLoop
+/os/buildtools/devlib/devlibhelp/examples/Base/IPC/ClientServer/Complex
+/os/buildtools/devlib/devlibhelp/examples/Base/IPC/ClientServer/Gettingstarted/transient/bwins
+/os/buildtools/devlib/devlibhelp/examples/Base/IPC/ClientServer/Gettingstarted/transient/eabi
+/os/buildtools/devlib/devlibhelp/examples/Base/IPC/ClientServer/Gettingstarted/transient/src
+/os/buildtools/devlib/devlibhelp/examples/Base/IPC/ClientServer/Gettingstarted/transient/test
+/os/buildtools/devlib/devlibhelp/examples/Base/IPC/ClientServer/Simple
+/os/buildtools/devlib/devlibhelp/examples/Base/IPC/condvar/condvarglobal/group
+/os/buildtools/devlib/devlibhelp/examples/Base/IPC/condvar/condvarglobal/inc
+/os/buildtools/devlib/devlibhelp/examples/Base/IPC/condvar/condvarglobal/src
+/os/buildtools/devlib/devlibhelp/examples/Base/IPC/condvar/condvarlocal/group
+/os/buildtools/devlib/devlibhelp/examples/Base/IPC/condvar/condvarlocal/inc
+/os/buildtools/devlib/devlibhelp/examples/Base/IPC/condvar/condvarlocal/src
+/os/buildtools/devlib/devlibhelp/examples/Base/IPC/pubsub
+/os/buildtools/devlib/devlibhelp/examples/Base/IPC/secureserver
+/os/buildtools/devlib/devlibhelp/examples/Base/Locale/Currency
+/os/buildtools/devlib/devlibhelp/examples/Base/Locale/localeupdate/group
+/os/buildtools/devlib/devlibhelp/examples/Base/Locale/localeupdate/inc
+/os/buildtools/devlib/devlibhelp/examples/Base/Locale/localeupdate/src
+/os/buildtools/devlib/devlibhelp/examples/Base/MemMan/Cleanup/ELeaveOnFail
+/os/buildtools/devlib/devlibhelp/examples/Base/MemMan/Cleanup/ErrorOnFail
+/os/buildtools/devlib/devlibhelp/examples/Base/MemMan/Cleanup/HeaderFile
+/os/buildtools/devlib/devlibhelp/examples/Base/MemMan/Cleanup/LeaveOnFail
+/os/buildtools/devlib/devlibhelp/examples/Base/MemMan/Cleanup/MemLeakOOM
+/os/buildtools/devlib/devlibhelp/examples/Base/MemMan/Cleanup/NewL
+/os/buildtools/devlib/devlibhelp/examples/Base/MemMan/Cleanup/NewLC
+/os/buildtools/devlib/devlibhelp/examples/Base/MemMan/Cleanup/PushLAndPop
+/os/buildtools/devlib/devlibhelp/examples/Base/MemMan/Cleanup/PushLPopDest
+/os/buildtools/devlib/devlibhelp/examples/Base/MemMan/Cleanup/SimpleOOM
+/os/buildtools/devlib/devlibhelp/examples/Base/MemMan/Cleanup/TAnyRObjects1
+/os/buildtools/devlib/devlibhelp/examples/Base/MemMan/Cleanup/TAnyRObjects2
+/os/buildtools/devlib/devlibhelp/examples/Base/MemMan/Cleanup/TrapD
+/os/buildtools/devlib/devlibhelp/examples/Base/MemMan/Cleanup/TwoPhaseOOM
+/os/buildtools/devlib/devlibhelp/examples/Base/MemMan/Cleanup/Utilities
+/os/buildtools/devlib/devlibhelp/examples/Base/MessageQueueExample/Inverter/group
+/os/buildtools/devlib/devlibhelp/examples/Base/MessageQueueExample/Inverter/inc
+/os/buildtools/devlib/devlibhelp/examples/Base/MessageQueueExample/Inverter/src
+/os/buildtools/devlib/devlibhelp/examples/Base/MessageQueueExample/group
+/os/buildtools/devlib/devlibhelp/examples/Base/MessageQueueExample/inc
+/os/buildtools/devlib/devlibhelp/examples/Base/MessageQueueExample/src
+/os/buildtools/devlib/devlibhelp/examples/Base/ThreadsAndProcesses/Rendezvous
+/os/buildtools/devlib/devlibhelp/examples/Base/ThreadsAndProcesses/TLS1
+/os/buildtools/devlib/devlibhelp/examples/Base/Timers/BasicTimer
+/os/buildtools/devlib/devlibhelp/examples/Base/Timers/Periodic
+/os/buildtools/devlib/devlibhelp/examples/Basics/CClasses
+/os/buildtools/devlib/devlibhelp/examples/Basics/CommonFramework
+/os/buildtools/devlib/devlibhelp/examples/Basics/ExtensionPattern/bwins
+/os/buildtools/devlib/devlibhelp/examples/Basics/ExtensionPattern/eabi
+/os/buildtools/devlib/devlibhelp/examples/Basics/ExtensionPattern/group
+/os/buildtools/devlib/devlibhelp/examples/Basics/ExtensionPattern/group_V2
+/os/buildtools/devlib/devlibhelp/examples/Basics/ExtensionPattern/include
+/os/buildtools/devlib/devlibhelp/examples/Basics/ExtensionPattern/src_extension
+/os/buildtools/devlib/devlibhelp/examples/Basics/ExtensionPattern/src_extension_v2
+/os/buildtools/devlib/devlibhelp/examples/Basics/ExtensionPattern/src_extensionclient
+/os/buildtools/devlib/devlibhelp/examples/Basics/ExtensionPattern/src_original
+/os/buildtools/devlib/devlibhelp/examples/Basics/ExtensionPattern/src_original_v2
+/os/buildtools/devlib/devlibhelp/examples/Basics/ExtensionPattern/src_originalclient
+/os/buildtools/devlib/devlibhelp/examples/Basics/HelloWorld
+/os/buildtools/devlib/devlibhelp/examples/Basics/MClasses1
+/os/buildtools/devlib/devlibhelp/examples/Basics/MClasses2
+/os/buildtools/devlib/devlibhelp/examples/Basics/MClasses3
+/os/buildtools/devlib/devlibhelp/examples/Basics/StaticDLL
+/os/buildtools/devlib/devlibhelp/examples/Basics/TAndRClasses
+/os/buildtools/devlib/devlibhelp/examples/Bluetooth/BTExample1/group
+/os/buildtools/devlib/devlibhelp/examples/Bluetooth/BTExample1/inc
+/os/buildtools/devlib/devlibhelp/examples/Bluetooth/BTExample1/src
+/os/buildtools/devlib/devlibhelp/examples/FileBrowse/s60/FileBrowse/data
+/os/buildtools/devlib/devlibhelp/examples/FileBrowse/s60/FileBrowse/gfx
+/os/buildtools/devlib/devlibhelp/examples/FileBrowse/s60/FileBrowse/group
+/os/buildtools/devlib/devlibhelp/examples/FileBrowse/s60/FileBrowse/inc
+/os/buildtools/devlib/devlibhelp/examples/FileBrowse/s60/FileBrowse/src
+/os/buildtools/devlib/devlibhelp/examples/FileBrowse/s60/FileBrowse/test
+/os/buildtools/devlib/devlibhelp/examples/FileBrowse/uiq/FileBrowse/group
+/os/buildtools/devlib/devlibhelp/examples/FileBrowse/uiq/FileBrowse/images
+/os/buildtools/devlib/devlibhelp/examples/FileBrowse/uiq/FileBrowse/inc
+/os/buildtools/devlib/devlibhelp/examples/FileBrowse/uiq/FileBrowse/src
+/os/buildtools/devlib/devlibhelp/examples/FileBrowse/uiq/FileBrowse/test
+/os/buildtools/devlib/devlibhelp/examples/Graphics/Bitmaps
+/os/buildtools/devlib/devlibhelp/examples/Graphics/CommonGraphicsExampleFiles
+/os/buildtools/devlib/devlibhelp/examples/Graphics/CoverFlow/gfx/call
+/os/buildtools/devlib/devlibhelp/examples/Graphics/CoverFlow/gfx/cover
+/os/buildtools/devlib/devlibhelp/examples/Graphics/CoverFlow/group
+/os/buildtools/devlib/devlibhelp/examples/Graphics/CoverFlow/inc
+/os/buildtools/devlib/devlibhelp/examples/Graphics/CoverFlow/src
+/os/buildtools/devlib/devlibhelp/examples/Graphics/Embedding
+/os/buildtools/devlib/devlibhelp/examples/Graphics/Fonts
+/os/buildtools/devlib/devlibhelp/examples/Graphics/PDRStore
+/os/buildtools/devlib/devlibhelp/examples/Graphics/WS/BackedUp
+/os/buildtools/devlib/devlibhelp/examples/Graphics/WS/BitmapSprite
+/os/buildtools/devlib/devlibhelp/examples/Graphics/WS/Direct
+/os/buildtools/devlib/devlibhelp/examples/Graphics/WS/Ordinal
+/os/buildtools/devlib/devlibhelp/examples/Graphics/WS/PtBuffer
+/os/buildtools/devlib/devlibhelp/examples/Graphics/WS/Scroll
+/os/buildtools/devlib/devlibhelp/examples/Graphics/WS/Simple
+/os/buildtools/devlib/devlibhelp/examples/Graphics/WS/VectorSprite
+/os/buildtools/devlib/devlibhelp/examples/Graphics/WS/transparent
+/os/buildtools/devlib/devlibhelp/examples/HelloWorld
+/os/buildtools/devlib/devlibhelp/examples/Messaging/BIOMessageMgr/Group
+/os/buildtools/devlib/devlibhelp/examples/Messaging/BIOMessageMgr/Inc
+/os/buildtools/devlib/devlibhelp/examples/Messaging/BIOMessageMgr/Src
+/os/buildtools/devlib/devlibhelp/examples/Messaging/BIOMessageMgr/bwins
+/os/buildtools/devlib/devlibhelp/examples/Messaging/BIOMessageMgr/eabi
+/os/buildtools/devlib/devlibhelp/examples/Messaging/Imap4Example
+/os/buildtools/devlib/devlibhelp/examples/Messaging/Pop3Example
+/os/buildtools/devlib/devlibhelp/examples/Messaging/SendAs2Example
+/os/buildtools/devlib/devlibhelp/examples/Messaging/TextMTM/txin
+/os/buildtools/devlib/devlibhelp/examples/Messaging/TextMTM/txtc
+/os/buildtools/devlib/devlibhelp/examples/Messaging/TextMTM/txti
+/os/buildtools/devlib/devlibhelp/examples/Messaging/TextMTM/txts
+/os/buildtools/devlib/devlibhelp/examples/Messaging/TextMTM/txtu
+/os/buildtools/devlib/devlibhelp/examples/Messaging/TextMTM/txut
+/os/buildtools/devlib/devlibhelp/examples/Messaging/cdmasms_eg
+/os/buildtools/devlib/devlibhelp/examples/Multimedia/AudioClientEx
+/os/buildtools/devlib/devlibhelp/examples/Multimedia/CameraExample
+/os/buildtools/devlib/devlibhelp/examples/Multimedia/ICL/ICLCodec
+/os/buildtools/devlib/devlibhelp/examples/Multimedia/ICL/ICLExample
+/os/buildtools/devlib/devlibhelp/examples/Multimedia/ImageConv/group
+/os/buildtools/devlib/devlibhelp/examples/Multimedia/ImageConv/samples/bmp
+/os/buildtools/devlib/devlibhelp/examples/Multimedia/ImageConv/samples/gif
+/os/buildtools/devlib/devlibhelp/examples/Multimedia/ImageConv/samples/ico
+/os/buildtools/devlib/devlibhelp/examples/Multimedia/ImageConv/samples/jpg
+/os/buildtools/devlib/devlibhelp/examples/Multimedia/ImageConv/samples/mbm
+/os/buildtools/devlib/devlibhelp/examples/Multimedia/ImageConv/samples/ota
+/os/buildtools/devlib/devlibhelp/examples/Multimedia/ImageConv/samples/png
+/os/buildtools/devlib/devlibhelp/examples/Multimedia/ImageConv/samples/tiff
+/os/buildtools/devlib/devlibhelp/examples/Multimedia/ImageConv/samples/wbmp
+/os/buildtools/devlib/devlibhelp/examples/Multimedia/ImageConv/samples/wmf
+/os/buildtools/devlib/devlibhelp/examples/Multimedia/ImageConv/src
+/os/buildtools/devlib/devlibhelp/examples/Multimedia/MmfExCodec
+/os/buildtools/devlib/devlibhelp/examples/Multimedia/MmfExFormatPlugin
+/os/buildtools/devlib/devlibhelp/examples/Multimedia/MmfExSinkSource
+/os/buildtools/devlib/devlibhelp/examples/Multimedia/MmfRecTest/group
+/os/buildtools/devlib/devlibhelp/examples/Multimedia/MmfRecTest/src
+/os/buildtools/devlib/devlibhelp/examples/MultimediaProtocols/RTPExample/group
+/os/buildtools/devlib/devlibhelp/examples/MultimediaProtocols/RTPExample/inc
+/os/buildtools/devlib/devlibhelp/examples/MultimediaProtocols/RTPExample/src
+/os/buildtools/devlib/devlibhelp/examples/Networking/SecureSockets
+/os/buildtools/devlib/devlibhelp/examples/Networking/TcpIp/EchoClientEngine
+/os/buildtools/devlib/devlibhelp/examples/Networking/TcpIp/EchoClientUI
+/os/buildtools/devlib/devlibhelp/examples/PIPS/FileAccessExample
+/os/buildtools/devlib/devlibhelp/examples/PIPS/HelloWorldExample/bwins
+/os/buildtools/devlib/devlibhelp/examples/PIPS/HelloWorldExample/eabi
+/os/buildtools/devlib/devlibhelp/examples/PIPS/HelloWorldExample/group
+/os/buildtools/devlib/devlibhelp/examples/PIPS/HelloWorldExample/inc/helloworlddllexample
+/os/buildtools/devlib/devlibhelp/examples/PIPS/HelloWorldExample/inc/helloworldexeexample
+/os/buildtools/devlib/devlibhelp/examples/PIPS/HelloWorldExample/src/helloworlddllexample
+/os/buildtools/devlib/devlibhelp/examples/PIPS/HelloWorldExample/src/helloworldexeexample
+/os/buildtools/devlib/devlibhelp/examples/PIPS/IPC/group
+/os/buildtools/devlib/devlibhelp/examples/PIPS/IPC/src/child
+/os/buildtools/devlib/devlibhelp/examples/PIPS/IPC/src/parent
+/os/buildtools/devlib/devlibhelp/examples/PIPS/LibpThreadExample/group
+/os/buildtools/devlib/devlibhelp/examples/PIPS/LibpThreadExample/inc
+/os/buildtools/devlib/devlibhelp/examples/PIPS/LibpThreadExample/src
+/os/buildtools/devlib/devlibhelp/examples/PIPS/hybridapp/group
+/os/buildtools/devlib/devlibhelp/examples/PIPS/hybridapp/src
+/os/buildtools/devlib/devlibhelp/examples/SerialComms/ServerClientSide/CommonFiles
+/os/buildtools/devlib/devlibhelp/examples/SerialComms/ServerClientSide/GlassTerm
+/os/buildtools/devlib/devlibhelp/examples/SerialComms/ServerClientSide/IRPrinting
+/os/buildtools/devlib/devlibhelp/examples/Stdlib/ConsoleApp
+/os/buildtools/devlib/devlibhelp/examples/Stdlib/GUIApp/BWINS
+/os/buildtools/devlib/devlibhelp/examples/Stdlib/GUIApp/EABI
+/os/buildtools/devlib/devlibhelp/examples/Stdlib/Hello
+/os/buildtools/devlib/devlibhelp/examples/StopModeDebugger
+/os/buildtools/devlib/devlibhelp/examples/SysLibs/CentRepExample
+/os/buildtools/devlib/devlibhelp/examples/SysLibs/Clipboard/Basics
+/os/buildtools/devlib/devlibhelp/examples/SysLibs/CommonFramework
+/os/buildtools/devlib/devlibhelp/examples/SysLibs/DBMS/Basics
+/os/buildtools/devlib/devlibhelp/examples/SysLibs/ECom/InterfaceClient
+/os/buildtools/devlib/devlibhelp/examples/SysLibs/ECom/InterfaceDefinition
+/os/buildtools/devlib/devlibhelp/examples/SysLibs/ECom/InterfaceImplementation
+/os/buildtools/devlib/devlibhelp/examples/SysLibs/EzlibExample
+/os/buildtools/devlib/devlibhelp/examples/SysLibs/FileStores/WriteDirectFS
+/os/buildtools/devlib/devlibhelp/examples/SysLibs/FileStores/WritePermFS1
+/os/buildtools/devlib/devlibhelp/examples/SysLibs/FileStores/WritePermFS2
+/os/buildtools/devlib/devlibhelp/examples/SysLibs/ResourceFiles/MultiRead1
+/os/buildtools/devlib/devlibhelp/examples/SysLibs/ResourceFiles/MultiRead2
+/os/buildtools/devlib/devlibhelp/examples/SysLibs/ResourceFiles/ReadArray
+/os/buildtools/devlib/devlibhelp/examples/SysLibs/ResourceFiles/ReadData
+/os/buildtools/devlib/devlibhelp/examples/SysLibs/ResourceFiles/ReadText
+/os/buildtools/devlib/devlibhelp/examples/SysLibs/ResourceFiles/SigCheck
+/os/buildtools/devlib/devlibhelp/examples/SysLibs/SqlExample
+/os/buildtools/devlib/devlibhelp/examples/SysLibs/Stores/StreamInStore
+/os/buildtools/devlib/devlibhelp/examples/SysLibs/Streaming/CompoundClass
+/os/buildtools/devlib/devlibhelp/examples/SysLibs/Streaming/SimpleClass
+/os/buildtools/devlib/devlibhelp/examples/SysLibs/Streams/StoreMap
+/os/buildtools/devlib/devlibhelp/examples/SysLibs/Streams/WriteToEmbedded
+/os/buildtools/devlib/devlibhelp/examples/SysLibs/Streams/WriteToMany
+/os/buildtools/devlib/devlibhelp/examples/SysLibs/TaskSchedulerExample
+/os/buildtools/devlib/devlibhelp/examples/SysLibs/XmlExample
+/os/buildtools/devlib/devlibhelp/examples/Telephony/ETel3rdPartyExample/AutoDTMFDialler
+/os/buildtools/devlib/devlibhelp/examples/Telephony/ETel3rdPartyExample/Group
+/os/buildtools/devlib/devlibhelp/examples/Telephony/ETel3rdPartyExample/IncomingCalls
+/os/buildtools/devlib/devlibhelp/examples/Telephony/ETel3rdPartyExample/NetworkInformation
+/os/buildtools/devlib/devlibhelp/examples/Telephony/ETel3rdPartyExample/OutgoingCalls
+/os/buildtools/devlib/devlibhelp/examples/Telephony/ETel3rdPartyExample/PhoneId
+/os/buildtools/devlib/devlibhelp/examples/Telephony/ETel3rdPartyExample/PhoneMonitoring
+/os/buildtools/devlib/devlibhelp/examples/Telephony/ETel3rdPartyExample/Shared
+/os/buildtools/devlib/devlibhelp/examples/Telephony/ETel3rdPartyExample/SuppleServices
+/os/buildtools/devlib/devlibhelp/examples/Telephony/ETel3rdPartyExample/configs
+/os/buildtools/devlib/devlibhelp/examples/ToolsAndUtilities/BoardTools
+/os/buildtools/devlib/devlibhelp/examples/ToolsAndUtilities/CsHelp/project/pictures
+/os/buildtools/devlib/devlibhelp/examples/ToolsAndUtilities/Localise/01
+/os/buildtools/devlib/devlibhelp/examples/ToolsAndUtilities/Localise/03
+/os/buildtools/devlib/devlibhelp/examples/ToolsAndUtilities/debugging
+/os/buildtools/devlib/devlibhelp/group/devlib95
+/os/buildtools/devlib/devlibhelp/group/sdk-demo
+/os/buildtools/devlib/devlibhelp/group/shared
+/os/buildtools/devlib/devlibhelp/securitysupplement/doc_source/CRYPTO_SPI
+/os/buildtools/devlib/devlibhelp/securitysupplement/doc_source/CryptoAPIGuide/CryptoSPI/How_tos
+/os/buildtools/devlib/devlibhelp/securitysupplement/doc_source/CryptoAPIGuide/Cryptography
+/os/buildtools/devlib/devlibhelp/securitysupplement/doc_source/CryptoAPIGuide/PBE/ExampleCode
+/os/buildtools/devlib/devlibhelp/securitysupplement/doc_source/CryptoAPIRef
+/os/buildtools/devlib/devlibhelp/tools/Generate_PDF/tt2
+/os/buildtools/devlib/devlibhelp/tools/MultiToc/dev/src/python/MultiToc
+/os/buildtools/devlib/devlibhelp/tools/MultiToc/dist/Required/Schemata
+/os/buildtools/devlib/devlibhelp/tools/MultiToc/documentation
+/os/buildtools/devlib/devlibhelp/tools/Start_Page_Tool/Start_Page_Template/Images
+/os/buildtools/devlib/devlibhelp/tools/Start_Page_Tool/documentation
+/os/buildtools/devlib/devlibhelp/tools/Start_Page_Tool/script/test
+/os/buildtools/devlib/devlibhelp/tools/buildrefdoc/dist/Required/Schemata
+/os/buildtools/devlib/devlibhelp/tools/buildrefdoc/documentation/rel
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/doc_products/devkit
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/doc_products/internal
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/doc_products/sdk
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/doc_products/shared
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/documentation
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/dtd
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/group
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/jar
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/jsrc/com/symbian/sysdoc/doc_tree
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/lib/apache
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/build
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/com/symbian/sysdoc/doc_tree/test
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/MetaListGeneratorTest1/ga
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/MetaListGeneratorTest1/gb
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/MetaListGeneratorTest1/ra
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/MetaListGeneratorTest1/rb
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/MetaListGeneratorTest1/x1
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/organiser-test-data1/SystemPanics
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/organiser-test-data1/ToolsAndUtilities/Charconv
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/organiser-test-data1/ToolsAndUtilities/Charconv-ref
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/organiser-test-data1/ea
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/organiser-test-data1/eb
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/organiser-test-data1/ga
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/organiser-test-data1/gb
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/organiser-test-data1/gc
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/organiser-test-data1/gd
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/organiser-test-data1/migration
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/organiser-test-data1/platsec
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/organiser-test-data1/ra
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/organiser-test-data1/rb
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/organiser-test-data1/resa
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/organiser-test-data1/resb
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/organiser-test-data1/standards1
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/organiser-test-data1/standards2
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/organiser-test-data1/sub/eb
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/organiser-test-data1/sub2/eb
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/organiser-test-data1/x1
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/system/001/source1/SystemPanics
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/system/001/source1/ToolsAndUtilities/Charconv
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/system/001/source1/ToolsAndUtilities/Charconv-ref
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/system/001/source1/cengdoc-system
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/system/001/source1/cengdoc1
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/system/001/source1/cengdoc2
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/system/001/source1/example/a
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/system/001/source1/example/b
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/system/001/source1/ga
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/system/001/source1/gb
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/system/001/source1/ra
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/system/001/source1/rb
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/system/001/source1/resource-ref/a
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/system/001/source1/resource-ref/b
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/system/001/source2/master/beech/developerlibrary/gb
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/system/001/source2/master/beech/developerlibrary/rb
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/system/001/source2/master/cedar/developerlibrary/gc
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/system/001/source2/master/cedar/developerlibrary/rc
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/system/001/source2/master/os/buildtools/devlib/devlibhelp/ga
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/system/001/source2/master/os/buildtools/devlib/devlibhelp/ra
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/xml-tree-control/0/doc_source/reference/reference-cpp/ra
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/xml-tree-control/1/doc_source/ToolsAndUtilities/Charconv
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/xml-tree-control/1/doc_source/ToolsAndUtilities/Charconv-ref
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/xml-tree-control/1/doc_source/examples/ea
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/xml-tree-control/1/doc_source/examples/eb
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/xml-tree-control/1/doc_source/examples/eb0
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/xml-tree-control/1/doc_source/examples/eb1
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/xml-tree-control/1/doc_source/guide/platsec
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/xml-tree-control/1/doc_source/guide/s1-subsystem-guide/ga
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/xml-tree-control/1/doc_source/guide/s1-subsystem-guide/gc
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/xml-tree-control/1/doc_source/guide/s2-subsystem-guide/gb
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/xml-tree-control/1/doc_source/guide/s2-subsystem-guide/gd
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/xml-tree-control/1/doc_source/high/x1
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/xml-tree-control/1/doc_source/migration
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/xml-tree-control/1/doc_source/reference/SystemPanics
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/xml-tree-control/1/doc_source/reference/reference-cpp/ra
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/xml-tree-control/1/doc_source/reference/reference-cpp/rb
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/xml-tree-control/1/doc_source/reference/reference-resource/resa
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/data/xml-tree-control/1/doc_source/reference/reference-resource/resb
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/documentation/javadoc/com/symbian/sysdoc/doc_tree/test
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/test/group
+/os/buildtools/devlib/devlibhelp/tools/doc_tree/xsl
+/os/buildtools/devlib/devlibhelp/tools/doxy2refdoc
+/os/buildtools/devlib/devlibhelp/tools/dtds/examples/guide
+/os/buildtools/devlib/devlibhelp/tools/dtds/examples/reference
+/os/buildtools/devlib/devlibhelp/tools/dtds/specs
+/os/buildtools/devlib/devlibhelp/tools/dtds/template/SysDoc
+/os/buildtools/devlib/devlibhelp/tools/eclipse_map/documentation/javadoc/com/symbian/sysdoc/eclipse_map
+/os/buildtools/devlib/devlibhelp/tools/eclipse_map/dtd
+/os/buildtools/devlib/devlibhelp/tools/eclipse_map/group
+/os/buildtools/devlib/devlibhelp/tools/eclipse_map/jar
+/os/buildtools/devlib/devlibhelp/tools/eclipse_map/src/com/symbian/sysdoc/eclipse_map
+/os/buildtools/devlib/devlibhelp/tools/eclipse_map/test/com/symbian/sysdoc/eclipse_map
+/os/buildtools/devlib/devlibhelp/tools/eclipse_map/test/documentation/com/symbian/sysdoc/eclipse_map
+/os/buildtools/devlib/devlibhelp/tools/eclipse_map/test/group
+/os/buildtools/devlib/devlibhelp/tools/eclipse_map/test/input/diff
+/os/buildtools/devlib/devlibhelp/tools/eclipse_map/test/input/map1
+/os/buildtools/devlib/devlibhelp/tools/eclipse_map/test/input/map2
+/os/buildtools/devlib/devlibhelp/tools/eclipse_map/test/input/map3/doc_html/_index
+/os/buildtools/devlib/devlibhelp/tools/eclipse_map/test/input/map3/doc_html/_stock
+/os/buildtools/devlib/devlibhelp/tools/eclipse_map/test/input/map3/doc_html/m3/AboutKits
+/os/buildtools/devlib/devlibhelp/tools/eclipse_map/test/input/map3/doc_html/m3/reference/CALCON
+/os/buildtools/devlib/devlibhelp/tools/eclipse_map/test/input/map3/doc_html/m3/reference/DOMAIN
+/os/buildtools/devlib/devlibhelp/tools/eclipse_map/test/input/map3/m3/AboutKits
+/os/buildtools/devlib/devlibhelp/tools/eclipse_map/test/input/map3/m3/reference/CALCON
+/os/buildtools/devlib/devlibhelp/tools/eclipse_map/test/input/map3/m3/reference/DOMAIN
+/os/buildtools/devlib/devlibhelp/tools/eclipse_map/test/input/toc1/doc_html/_index
+/os/buildtools/devlib/devlibhelp/tools/eclipse_map/test/input/toc1/doc_html/_stock
+/os/buildtools/devlib/devlibhelp/tools/eclipse_map/test/input/toc1/doc_html/r/l1_1
+/os/buildtools/devlib/devlibhelp/tools/eclipse_map/test/input/toc1/doc_html/r/l1_2
+/os/buildtools/devlib/devlibhelp/tools/eclipse_map/test/input/toc1/r/l1_1
+/os/buildtools/devlib/devlibhelp/tools/eclipse_map/test/input/toc1/r/l1_2
+/os/buildtools/devlib/devlibhelp/tools/eclipse_map/test/output
+/os/buildtools/devlib/devlibhelp/tools/eclipse_map/test/plugin/com.symbian.sysdoc.test1
+/os/buildtools/devlib/devlibhelp/tools/eclipse_map/test/reference
+/os/buildtools/devlib/devlibhelp/tools/interface-reporter/batch
+/os/buildtools/devlib/devlibhelp/tools/interface-reporter/config
+/os/buildtools/devlib/devlibhelp/tools/interface-reporter/documentation
+/os/buildtools/devlib/devlibhelp/tools/interface-reporter/group
+/os/buildtools/devlib/devlibhelp/tools/interface-reporter/perl
+/os/buildtools/devlib/devlibhelp/tools/interface-reporter/src/com/symbian/sysdoc/im
+/os/buildtools/devlib/devlibhelp/tools/interface-reporter/test/compare-test
+/os/buildtools/devlib/devlibhelp/tools/interface-reporter/test/config1
+/os/buildtools/devlib/devlibhelp/tools/interface-reporter/test/config2
+/os/buildtools/devlib/devlibhelp/tools/interface-reporter/test/metric-test
+/os/buildtools/devlib/devlibhelp/tools/interface-reporter/test/results
+/os/buildtools/devlib/devlibhelp/tools/interface-reporter/test/test1/sub1
+/os/buildtools/devlib/devlibhelp/tools/interface-reporter/test/test1/sub2/subsub2
+/os/buildtools/devlib/devlibhelp/tools/interface-reporter/test/test2
+/os/buildtools/devlib/devlibhelp/tools/interface-reporter/xsl
+/os/buildtools/devlib/devlibhelp/tools/xmlbuilder/MetaInfo
+/os/buildtools/devlib/devlibhelp/tools/xmlbuilder/Output
+/os/buildtools/devlib/devlibhelp/tools/xmlbuilder/Tangle
+/os/buildtools/devlib/devlibhelp/tools/xmlbuilder/Transform
+/os/buildtools/devlib/devlibhelp/tools/xmlbuilder/XBld/build_files
+/os/buildtools/devlib/devlibhelp/tools/xmlbuilder/doc
+/os/buildtools/devlib/devlibhelp/tools/xmlbuilder/lib/File
+/os/buildtools/devlib/devlibhelp/tools/xmlbuilder/lib/HTML/Element
+/os/buildtools/devlib/devlibhelp/tools/xmlbuilder/lib/HTML/Tree
+/os/buildtools/devlib/devlibhelp/tools/xmlbuilder/lib/JSON/PP
+/os/buildtools/devlib/devlibhelp/tools/xmlbuilder/lib/Log/Log4perl/Appender
+/os/buildtools/devlib/devlibhelp/tools/xmlbuilder/lib/Log/Log4perl/Config
+/os/buildtools/devlib/devlibhelp/tools/xmlbuilder/lib/Log/Log4perl/Filter
+/os/buildtools/devlib/devlibhelp/tools/xmlbuilder/lib/Log/Log4perl/JavaMap
+/os/buildtools/devlib/devlibhelp/tools/xmlbuilder/lib/Log/Log4perl/Layout/PatternLayout
+/os/buildtools/devlib/devlibhelp/tools/xmlbuilder/lib/Log/Log4perl/Util
+/os/buildtools/devlib/devlibhelp/tools/xmlbuilder/lib/Parse/Yapp
+/os/buildtools/devlib/devlibhelp/tools/xmlbuilder/lib/Template/Library
+/os/buildtools/devlib/devlibhelp/tools/xmlbuilder/lib/Template/Manual
+/os/buildtools/devlib/devlibhelp/tools/xmlbuilder/lib/Template/Namespace
+/os/buildtools/devlib/devlibhelp/tools/xmlbuilder/lib/Template/Plugin
+/os/buildtools/devlib/devlibhelp/tools/xmlbuilder/lib/Template/Stash
+/os/buildtools/devlib/devlibhelp/tools/xmlbuilder/lib/Template/Tools
+/os/buildtools/devlib/devlibhelp/tools/xmlbuilder/lib/Template/Tutorial
+/os/buildtools/devlib/devlibhelp/tools/xmlbuilder/lib/XML/Checker
+/os/buildtools/devlib/devlibhelp/tools/xmlbuilder/lib/XML/DOM
+/os/buildtools/devlib/devlibhelp/tools/xmlbuilder/lib/XML/Filter
+/os/buildtools/devlib/devlibhelp/tools/xmlbuilder/lib/XML/Handler
+/os/buildtools/devlib/devlibhelp/tools/xmlbuilder/lib/XML/Parser
+/os/buildtools/devlib/devlibhelp/tools/xmlbuilder/lib/XML/XQL
+/os/buildtools/devlib/devlibhelp/tools/xmlbuilder/templates/common/media/css
+/os/buildtools/devlib/devlibhelp/tools/xmlbuilder/templates/common/media/highlight/languages
+/os/buildtools/devlib/devlibhelp/tools/xmlbuilder/templates/common/media/highlight/styles
+/os/buildtools/devlib/devlibhelp/tools/xmlbuilder/templates/common/media/images
+/os/buildtools/devlib/devlibhelp/tools/xmlbuilder/templates/common/media/js
+/os/buildtools/devlib/devlibhelp/tools/xmlbuilder/templates/plain
+/os/buildtools/devlib/devlibhelp/tools/xmlbuilder/templates/sdk/media/images
+/os/buildtools/devlib/devlibhelp/tools/xmlbuilder/templates/standard/media/css
+/os/buildtools/devlib/devlibhelp/tools/xmlbuilder/templates/standard/media/images
+/os/lbs/locationmgmt/locationcore/GPSClock/GpsClockManual/BWINS
+/os/lbs/locationmgmt/locationcore/GPSClock/GpsClockManual/EABI
+/os/lbs/locationmgmt/locationcore/GPSClock/GpsClockManual/group
+/os/lbs/locationmgmt/locationcore/GPSClock/GpsClockManual/inc
+/os/lbs/locationmgmt/locationcore/GPSClock/GpsClockManual/src
+/os/lbs/locationmgmt/locationcore/GPSClock/GpsSetClock/BWINS
+/os/lbs/locationmgmt/locationcore/GPSClock/GpsSetClock/EABI
+/os/lbs/locationmgmt/locationcore/GPSClock/GpsSetClock/group
+/os/lbs/locationmgmt/locationcore/GPSClock/GpsSetClock/inc
+/os/lbs/locationmgmt/locationcore/GPSClock/GpsSetClock/src
+/os/lbs/locationmgmt/locationcore/GPSClock/group
+/os/lbs/locationmgmt/locationcore/GPSClock/test
+/os/lbs/locationmgmt/locationcore/LbsClient/LbsApi/EABI
+/os/lbs/locationmgmt/locationcore/LbsClient/LbsApi/bwins
+/os/lbs/locationmgmt/locationcore/LbsClient/LbsApi/group
+/os/lbs/locationmgmt/locationcore/LbsClient/LbsApi/inc
+/os/lbs/locationmgmt/locationcore/LbsClient/LbsApi/src
+/os/lbs/locationmgmt/locationcore/LbsClient/LbsApi/test/te_lbsapivariant2/group
+/os/lbs/locationmgmt/locationcore/LbsClient/LbsApi/test/te_lbsapivariant2/inc
+/os/lbs/locationmgmt/locationcore/LbsClient/LbsApi/test/te_lbsapivariant2/scripts
+/os/lbs/locationmgmt/locationcore/LbsClient/LbsApi/test/te_lbsapivariant2/src
+/os/lbs/locationmgmt/locationcore/LbsClient/LbsApi/test/te_lbsapivariant2/testdata
+/os/lbs/locationmgmt/locationcore/LbsClient/LbsTestSvr/group
+/os/lbs/locationmgmt/locationcore/LbsClient/LbsTestSvr/inc
+/os/lbs/locationmgmt/locationcore/LbsClient/LbsTestSvr/src
+/os/lbs/locationmgmt/locationcore/LbsClient/LbsTestSvr/test
+/os/lbs/locationmgmt/locationcore/LbsClient/UnitTestBase/inc
+/os/lbs/locationmgmt/locationcore/LbsClient/UnitTestBase/src
+/os/lbs/locationmgmt/locationcore/LbsClient/docs
+/os/lbs/locationmgmt/locationcore/LbsClient/group
+/os/lbs/locationmgmt/locationcore/LbsClient/lastknownlocapi/group
+/os/lbs/locationmgmt/locationcore/LbsClient/lastknownlocapi/inc
+/os/lbs/locationrequestmgmt/networkrequesthandler/LBSPrivacyNotification/LbsPrivacyController/bwins
+/os/lbs/locationrequestmgmt/networkrequesthandler/LBSPrivacyNotification/LbsPrivacyController/eabi
+/os/lbs/locationrequestmgmt/networkrequesthandler/LBSPrivacyNotification/LbsPrivacyController/group
+/os/lbs/locationrequestmgmt/networkrequesthandler/LBSPrivacyNotification/LbsPrivacyController/inc
+/os/lbs/locationrequestmgmt/networkrequesthandler/LBSPrivacyNotification/LbsPrivacyController/src
+/os/lbs/locationrequestmgmt/networkrequesthandler/LBSPrivacyNotification/LbsPrivacyExtNotifiers/bwins
+/os/lbs/locationrequestmgmt/networkrequesthandler/LBSPrivacyNotification/LbsPrivacyExtNotifiers/eabi
+/os/lbs/locationrequestmgmt/networkrequesthandler/LBSPrivacyNotification/LbsPrivacyExtNotifiers/group
+/os/lbs/locationrequestmgmt/networkrequesthandler/LBSPrivacyNotification/LbsPrivacyExtNotifiers/inc
+/os/lbs/locationrequestmgmt/networkrequesthandler/LBSPrivacyNotification/LbsPrivacyExtNotifiers/src
+/os/lbs/locationrequestmgmt/networkrequesthandler/LBSPrivacyNotification/LbsPrivacyExtNotifiers/test
+/os/lbs/locationrequestmgmt/networkrequesthandler/LBSPrivacyNotification/LbsQueryAndNotification/PrivacyDataTypes/BWINS
+/os/lbs/locationrequestmgmt/networkrequesthandler/LBSPrivacyNotification/LbsQueryAndNotification/PrivacyDataTypes/EABI
+/os/lbs/locationrequestmgmt/networkrequesthandler/LBSPrivacyNotification/LbsQueryAndNotification/PrivacyDataTypes/group
+/os/lbs/locationrequestmgmt/networkrequesthandler/LBSPrivacyNotification/LbsQueryAndNotification/PrivacyDataTypes/inc
+/os/lbs/locationrequestmgmt/networkrequesthandler/LBSPrivacyNotification/LbsQueryAndNotification/PrivacyDataTypes/src
+/os/lbs/locationrequestmgmt/networkrequesthandler/LBSPrivacyNotification/LbsQueryAndNotification/QueryAndNotificationAPI/BWINS
+/os/lbs/locationrequestmgmt/networkrequesthandler/LBSPrivacyNotification/LbsQueryAndNotification/QueryAndNotificationAPI/EABI
+/os/lbs/locationrequestmgmt/networkrequesthandler/LBSPrivacyNotification/LbsQueryAndNotification/QueryAndNotificationAPI/group
+/os/lbs/locationrequestmgmt/networkrequesthandler/LBSPrivacyNotification/LbsQueryAndNotification/QueryAndNotificationAPI/inc
+/os/lbs/locationrequestmgmt/networkrequesthandler/LBSPrivacyNotification/LbsQueryAndNotification/QueryAndNotificationAPI/src
+/os/lbs/locationrequestmgmt/networkrequesthandler/LBSPrivacyNotification/LbsQueryAndNotification/QueryAndNotificationAPI/test/bwins
+/os/lbs/locationrequestmgmt/networkrequesthandler/LBSPrivacyNotification/LbsQueryAndNotification/QueryAndNotificationAPI/test/eabi
+/os/lbs/locationrequestmgmt/networkrequesthandler/LBSPrivacyNotification/LbsQueryAndNotification/QueryAndNotificationAPI/test/group
+/os/lbs/locationrequestmgmt/networkrequesthandler/LBSPrivacyNotification/LbsQueryAndNotification/group
+/os/lbs/locationrequestmgmt/networkrequesthandler/LBSPrivacyNotification/group
+/os/lbs/locationmgmt/agpslocationmgr/group
+/os/lbs/locationmgmt/agpslocationmgr/inc
+/os/lbs/locationmgmt/agpslocationmgr/src
+/os/lbs/locationmgmt/agpslocationmgr/test/te_man/group
+/os/lbs/locationmgmt/agpslocationmgr/test/te_man/scripts
+/os/lbs/locationmgmt/agpslocationmgr/test/te_man/src
+/os/lbs/locationmgmt/agpslocationmgr/test/te_man/testdata
+/os/lbs/locationmgmt/agpslocationmgr/test/test_lbsagpsmanager/group
+/os/lbs/locationmgmt/agpslocationmgr/test/test_lbsgpsmodule/BWINS
+/os/lbs/locationmgmt/agpslocationmgr/test/test_lbsgpsmodule/EABI
+/os/lbs/locationmgmt/agpslocationmgr/test/test_lbsgpsmodule/group
+/os/lbs/locationmgmt/agpslocationmgr/test/test_lbsgpsmodule/inc
+/os/lbs/locationmgmt/agpslocationmgr/test/test_lbsgpsmodule/src
+/os/lbs/locationmgmt/locationcore/bwins
+/os/lbs/locationmgmt/locationcore/data
+/os/lbs/locationmgmt/locationcore/eabi
+/os/lbs/locationmgmt/locationcore/group
+/os/lbs/locationmgmt/locationcore/inc
+/os/lbs/locationmgmt/locationcore/src
+/os/lbs/locationmgmt/locationcore/test/group
+/os/lbs/locationmgmt/locationcore/test/inc
+/os/lbs/locationmgmt/locationcore/test/scripts
+/os/lbs/locationmgmt/locationcore/test/src
+/os/lbs/locationmgmt/locationcore/test/te_lbsadmin/bwins
+/os/lbs/locationmgmt/locationcore/test/te_lbsadmin/eabi
+/os/lbs/locationmgmt/locationcore/test/te_lbsadmin/group
+/os/lbs/locationmgmt/locationcore/test/te_lbsadmin/inc
+/os/lbs/locationmgmt/locationcore/test/te_lbsadmin/src
+/os/lbs/locationmgmt/locationcore/test/testdata/legacy
+/os/lbs/locationmgmt/locationcore/test/testdata/outofrange
+/os/lbs/locationmgmt/locationcore/test/xml/te_LbsAdminSuite/testexecuteservers
+/os/lbs/locationmgmt/locationcore/LbsAssistanceData/BWINS
+/os/lbs/locationmgmt/locationcore/LbsAssistanceData/EABI
+/os/lbs/locationmgmt/locationcore/LbsAssistanceData/group
+/os/lbs/locationmgmt/locationcore/LbsAssistanceData/inc
+/os/lbs/locationmgmt/locationcore/LbsAssistanceData/src
+/os/lbs/locationmgmt/locationcore/LbsAssistanceData/test/group
+/os/lbs/locationmgmt/locationcore/LbsAssistanceData/test/scripts
+/os/lbs/locationmgmt/locationcore/LbsAssistanceData/test/src
+/os/lbs/locationmgmt/locationcore/LbsAssistanceData/test/testdata
+/os/lbs/locationmgmt/locationcore/LbsAssistanceData/test/xml/te_LbsAssistanceDataSuite/testexecuteservers
+/os/lbs/networkprotocolmodules/networkprotocolmodule/LbsAssistanceDataSourceInterface/group
+/os/lbs/networkprotocolmodules/networkprotocolmodule/LbsAssistanceDataSourceInterface/inc
+/os/lbs/locationmgmt/locationcore/LbsDebug/BWINS
+/os/lbs/locationmgmt/locationcore/LbsDebug/EABI
+/os/lbs/locationmgmt/locationcore/LbsDebug/group
+/os/lbs/locationmgmt/locationcore/LbsDebug/inc
+/os/lbs/locationmgmt/locationcore/LbsDebug/src
+/os/lbs/locationmgmt/locationcore/LbsDebug/test/te_LbsDebug/group
+/os/lbs/locationmgmt/locationcore/LbsDebug/test/te_LbsDebug/scripts
+/os/lbs/locationmgmt/locationcore/LbsDebug/test/te_LbsDebug/src
+/os/lbs/locationmgmt/locationcore/LbsDebug/test/te_LbsDebug/testdata
+/os/lbs/locationmgmt/locationcore/LbsDebug/test/te_LbsDebug/xml/te_LbsDebugSuite/testexecuteservers
+/os/lbs/locationmgmt/locationcore/LbsInternalApi/BWINS
+/os/lbs/locationmgmt/locationcore/LbsInternalApi/EABI
+/os/lbs/locationmgmt/locationcore/LbsInternalApi/group
+/os/lbs/locationmgmt/locationcore/LbsInternalApi/inc
+/os/lbs/locationmgmt/locationcore/LbsInternalApi/src
+/os/lbs/locationmgmt/locationcore/LbsInternalApi/te_lbsinternalapitest/group
+/os/lbs/locationmgmt/locationcore/LbsInternalApi/te_lbsinternalapitest/scripts
+/os/lbs/locationmgmt/locationcore/LbsInternalApi/te_lbsinternalapitest/src
+/os/lbs/locationmgmt/locationcore/LbsInternalApi/te_lbsinternalapitest/testdata
+/os/lbs/locationmgmt/locationcore/LbsInternalApi/te_lbsinternalapitest/xml/te_lbsinternalapitestsuite/testexecuteservers
+/os/lbs/locationmgmt/locationcore/LbsLocCommon/BWINS
+/os/lbs/locationmgmt/locationcore/LbsLocCommon/EABI
+/os/lbs/locationmgmt/locationcore/LbsLocCommon/ServerFramework/example
+/os/lbs/locationmgmt/locationcore/LbsLocCommon/ServerFramework/group
+/os/lbs/locationmgmt/locationcore/LbsLocCommon/ServerFramework/inc
+/os/lbs/locationmgmt/locationcore/LbsLocCommon/ServerFramework/needtoeditthesefiles
+/os/lbs/locationmgmt/locationcore/LbsLocCommon/ServerFramework/src
+/os/lbs/locationmgmt/locationcore/LbsLocCommon/ServerFramework/te_ProcessLaunchTest/Documentation
+/os/lbs/locationmgmt/locationcore/LbsLocCommon/ServerFramework/te_ProcessLaunchTest/group
+/os/lbs/locationmgmt/locationcore/LbsLocCommon/ServerFramework/te_ProcessLaunchTest/scripts
+/os/lbs/locationmgmt/locationcore/LbsLocCommon/ServerFramework/te_ProcessLaunchTest/src
+/os/lbs/locationmgmt/locationcore/LbsLocCommon/ServerFramework/te_ProcessLaunchTest/testdata
+/os/lbs/locationmgmt/locationcore/LbsLocCommon/group
+/os/lbs/locationmgmt/locationcore/LbsLocCommon/inc
+/os/lbs/locationmgmt/locationcore/LbsLocCommon/src
+/os/lbs/locationmgmt/locationcore/LbsLocDataSource/BWINS
+/os/lbs/locationmgmt/locationcore/LbsLocDataSource/EABI
+/os/lbs/locationmgmt/locationcore/LbsLocDataSource/group
+/os/lbs/locationmgmt/locationcore/LbsLocDataSource/inc
+/os/lbs/locationmgmt/locationcore/LbsLocDataSource/src
+/os/lbs/locationmgmt/locationcore/LbsLocDataSource/test/group
+/os/lbs/locationmgmt/locationcore/LbsLocDataSource/test/prototype/LbsGpsConTest1
+/os/lbs/locationmgmt/locationcore/LbsLocDataSource/test/prototype/LbsGpsManager/group
+/os/lbs/locationmgmt/locationcore/LbsLocDataSource/test/prototype/LbsGpsManager/inc
+/os/lbs/locationmgmt/locationcore/LbsLocDataSource/test/prototype/LbsGpsManager/src
+/os/lbs/locationmgmt/locationcore/LbsLocDataSource/test/prototype/LbsGpsModule/BWINS
+/os/lbs/locationmgmt/locationcore/LbsLocDataSource/test/prototype/LbsGpsModule/EABI
+/os/lbs/locationmgmt/locationcore/LbsLocDataSource/test/prototype/LbsGpsModule/group
+/os/lbs/locationmgmt/locationcore/LbsLocDataSource/test/prototype/LbsGpsModule/inc
+/os/lbs/locationmgmt/locationcore/LbsLocDataSource/test/prototype/LbsGpsModule/src
+/os/lbs/locationmgmt/locationcore/LbsLocDataSource/test/prototype/group
+/os/lbs/locationmgmt/locationcore/LbsLocDataSource/test/prototype/inc
+/os/lbs/locationmgmt/locationcore/LbsLocDataSource/test/t_testmanager/group
+/os/lbs/locationmgmt/locationcore/LbsLocDataSource/test/t_testmanager/inc
+/os/lbs/locationmgmt/locationcore/LbsLocDataSource/test/t_testmanager/src
+/os/lbs/datasourcemodules/agpsintegrationmodule/group
+/os/lbs/datasourcemodules/agpsintegrationmodule/sirf/group
+/os/lbs/datasourcemodules/agpsintegrationmodule/sirf/inc
+/os/lbs/datasourcemodules/agpsintegrationmodule/sirf/src
+/os/lbs/datasourcemodules/agpsintegrationmodule/sirf/test/group
+/os/lbs/datasourcemodules/agpsintegrationmodule/sirf/test/te_protocol/group
+/os/lbs/datasourcemodules/agpsintegrationmodule/sirf/test/te_protocol/inc
+/os/lbs/datasourcemodules/agpsintegrationmodule/sirf/test/te_protocol/scripts
+/os/lbs/datasourcemodules/agpsintegrationmodule/sirf/test/te_protocol/src
+/os/lbs/datasourcemodules/agpsintegrationmodule/sirf/test/te_protocol/testdata
+/os/lbs/datasourcemodules/agpsintegrationmodule/sirf/test/te_protocol/xml/te_protocolSuite/testexecuteservers
+/os/lbs/datasourcemodules/agpsintegrationmodule/sirf/test/te_sirfgpsmainlogic/group
+/os/lbs/datasourcemodules/agpsintegrationmodule/sirf/test/te_sirfgpsmainlogic/scripts
+/os/lbs/datasourcemodules/agpsintegrationmodule/sirf/test/te_sirfgpsmainlogic/src
+/os/lbs/datasourcemodules/agpsintegrationmodule/sirf/test/te_sirfgpsmainlogic/testdata
+/os/lbs/locationrequestmgmt/locationserver/group
+/os/lbs/locationrequestmgmt/locationserver/inc
+/os/lbs/locationrequestmgmt/locationserver/resource
+/os/lbs/locationrequestmgmt/locationserver/src
+/os/lbs/locationrequestmgmt/locationserver/te_LbsLocServer/group
+/os/lbs/locationrequestmgmt/locationserver/te_LbsLocServer/scripts
+/os/lbs/locationrequestmgmt/locationserver/te_LbsLocServer/src
+/os/lbs/locationrequestmgmt/locationserver/te_LbsLocServer/testdata
+/os/lbs/locationrequestmgmt/locationserver/test/te_locsrv/group
+/os/lbs/locationrequestmgmt/locationserver/test/te_locsrv/inc
+/os/lbs/locationrequestmgmt/locationserver/test/te_locsrv/scripts
+/os/lbs/locationrequestmgmt/locationserver/test/te_locsrv/src
+/os/lbs/locationrequestmgmt/locationserver/test/te_locsrv/testdata
+/os/lbs/locationrequestmgmt/locationserver/LbsLocUtils/BWINS
+/os/lbs/locationrequestmgmt/locationserver/LbsLocUtils/eabi
+/os/lbs/locationrequestmgmt/locationserver/LbsLocUtils/group
+/os/lbs/locationrequestmgmt/locationserver/LbsLocUtils/inc
+/os/lbs/locationrequestmgmt/locationserver/LbsLocUtils/src
+/os/lbs/locationmgmt/locationcore/LbsLogging/BWINS
+/os/lbs/locationmgmt/locationcore/LbsLogging/EABI
+/os/lbs/locationmgmt/locationcore/LbsLogging/group
+/os/lbs/locationmgmt/locationcore/LbsLogging/inc
+/os/lbs/locationmgmt/locationcore/LbsLogging/src
+/os/lbs/locationmgmt/locationcore/LbsLogging/te_LbsLogging/group
+/os/lbs/locationmgmt/locationcore/LbsLogging/te_LbsLogging/scripts
+/os/lbs/locationmgmt/locationcore/LbsLogging/te_LbsLogging/src
+/os/lbs/locationmgmt/locationcore/LbsLogging/te_LbsLogging/testdata
+/os/lbs/locationmgmt/locationcore/LbsLogging/test/src
+/os/lbs/locationmgmt/locationcore/LbsMaths/BWINS
+/os/lbs/locationmgmt/locationcore/LbsMaths/Design/Test
+/os/lbs/locationmgmt/locationcore/LbsMaths/eabi
+/os/lbs/locationmgmt/locationcore/LbsMaths/group
+/os/lbs/locationmgmt/locationcore/LbsMaths/inc
+/os/lbs/locationmgmt/locationcore/LbsMaths/src
+/os/lbs/locationmgmt/locationcore/LbsMaths/te_lbsmaths/group
+/os/lbs/locationmgmt/locationcore/LbsMaths/te_lbsmaths/scripts
+/os/lbs/locationmgmt/locationcore/LbsMaths/te_lbsmaths/src
+/os/lbs/locationmgmt/locationcore/LbsMaths/te_lbsmaths/testdata
+/os/lbs/locationmgmt/networkgateway/group
+/os/lbs/locationmgmt/networkgateway/inc
+/os/lbs/locationmgmt/networkgateway/src
+/os/lbs/locationmgmt/networkgateway/test/netprotocoltest/BWINS
+/os/lbs/locationmgmt/networkgateway/test/netprotocoltest/EABI
+/os/lbs/locationmgmt/networkgateway/test/netprotocoltest/group
+/os/lbs/locationmgmt/networkgateway/test/netprotocoltest/inc
+/os/lbs/locationmgmt/networkgateway/test/netprotocoltest/src
+/os/lbs/locationmgmt/networkgateway/test/te_lbsnetgateway/group
+/os/lbs/locationmgmt/networkgateway/test/te_lbsnetgateway/scripts
+/os/lbs/locationmgmt/networkgateway/test/te_lbsnetgateway/src
+/os/lbs/locationmgmt/networkgateway/test/te_lbsnetgateway/testdata
+/os/lbs/locationmgmt/locationcore/LbsNetInternalApi/BWINS
+/os/lbs/locationmgmt/locationcore/LbsNetInternalApi/EABI
+/os/lbs/locationmgmt/locationcore/LbsNetInternalApi/group
+/os/lbs/locationmgmt/locationcore/LbsNetInternalApi/inc
+/os/lbs/locationmgmt/locationcore/LbsNetInternalApi/src
+/os/lbs/locationmgmt/locationcore/LbsNetInternalApi/test/group
+/os/lbs/locationmgmt/locationcore/LbsNetInternalApi/test/te_lbsnetinternaltest/group
+/os/lbs/locationmgmt/locationcore/LbsNetInternalApi/test/te_lbsnetinternaltest/scripts
+/os/lbs/locationmgmt/locationcore/LbsNetInternalApi/test/te_lbsnetinternaltest/src
+/os/lbs/locationmgmt/locationcore/LbsNetInternalApi/test/te_lbsnetinternaltest/testdata
+/os/lbs/locationmgmt/locationcore/LbsNetProtocol/BWINS
+/os/lbs/locationmgmt/locationcore/LbsNetProtocol/EABI
+/os/lbs/locationmgmt/locationcore/LbsNetProtocol/group
+/os/lbs/locationmgmt/locationcore/LbsNetProtocol/inc
+/os/lbs/locationmgmt/locationcore/LbsNetProtocol/src
+/os/lbs/networkprotocolmodules/networkprotocolmodule/LbsNetSim/BWINS
+/os/lbs/networkprotocolmodules/networkprotocolmodule/LbsNetSim/EABI
+/os/lbs/networkprotocolmodules/networkprotocolmodule/LbsNetSim/group
+/os/lbs/networkprotocolmodules/networkprotocolmodule/LbsNetSim/inc
+/os/lbs/networkprotocolmodules/networkprotocolmodule/LbsNetSim/src
+/os/lbs/networkprotocolmodules/networkprotocolmodule/LbsNetSim/test/group
+/os/lbs/networkprotocolmodules/networkprotocolmodule/LbsNetSim/test/src
+/os/lbs/networkprotocolmodules/networkprotocolmodule/LbsNetSim/test/testdata/configs
+/os/lbs/networkprotocolmodules/networkprotocolmodule/LbsNetSim/test/testdata/scripts
+/os/lbs/locationmgmt/networklocationmgr/group
+/os/lbs/locationmgmt/networklocationmgr/inc
+/os/lbs/locationmgmt/networklocationmgr/src
+/os/lbs/locationmgmt/networklocationmgr/t_lbsDummygateway/group
+/os/lbs/locationmgmt/networklocationmgr/t_lbsDummygateway/inc
+/os/lbs/locationmgmt/networklocationmgr/t_lbsDummygateway/src
+/os/lbs/locationmgmt/networklocationmgr/te_LbsNetworkLocationManager/Documentation
+/os/lbs/locationmgmt/networklocationmgr/te_LbsNetworkLocationManager/group
+/os/lbs/locationmgmt/networklocationmgr/te_LbsNetworkLocationManager/scripts
+/os/lbs/locationmgmt/networklocationmgr/te_LbsNetworkLocationManager/src
+/os/lbs/locationmgmt/networklocationmgr/te_LbsNetworkLocationManager/testdata
+/os/lbs/locationrequestmgmt/networkrequesthandler/group
+/os/lbs/locationrequestmgmt/networkrequesthandler/inc
+/os/lbs/locationrequestmgmt/networkrequesthandler/src
+/os/lbs/locationrequestmgmt/networkrequesthandler/test/group
+/os/lbs/locationrequestmgmt/networkrequesthandler/test/inc
+/os/lbs/locationrequestmgmt/networkrequesthandler/test/scripts
+/os/lbs/locationrequestmgmt/networkrequesthandler/test/src
+/os/lbs/locationrequestmgmt/networkrequesthandler/test/te_lbsnrhsuite2/group
+/os/lbs/locationrequestmgmt/networkrequesthandler/test/te_lbsnrhsuite2/inc
+/os/lbs/locationrequestmgmt/networkrequesthandler/test/te_lbsnrhsuite2/scripts
+/os/lbs/locationrequestmgmt/networkrequesthandler/test/te_lbsnrhsuite2/src
+/os/lbs/locationrequestmgmt/networkrequesthandler/test/te_lbsnrhsuite2/testdata
+/os/lbs/locationrequestmgmt/networkrequesthandler/test/testdata
+/os/lbs/locationrequestmgmt/networkrequesthandler/test/testqandnnotifierstub/group
+/os/lbs/locationrequestmgmt/networkrequesthandler/test/testqandnnotifierstub/inc
+/os/lbs/locationrequestmgmt/networkrequesthandler/test/testqandnnotifierstub/src
+/os/lbs/locationrequestmgmt/networkrequesthandler/test/tlbsdummynotifier/data
+/os/lbs/locationrequestmgmt/networkrequesthandler/test/tlbsdummynotifier/group
+/os/lbs/locationrequestmgmt/networkrequesthandler/test/tlbsdummynotifier/inc
+/os/lbs/locationrequestmgmt/networkrequesthandler/test/tlbsdummynotifier/src
+/os/lbs/lbstest/locationprotocoltest/group
+/os/lbs/locationmgmt/locationcore/LbsPartnerCommon/BWINS
+/os/lbs/locationmgmt/locationcore/LbsPartnerCommon/eabi
+/os/lbs/locationmgmt/locationcore/LbsPartnerCommon/group
+/os/lbs/locationmgmt/locationcore/LbsPartnerCommon/inc
+/os/lbs/locationmgmt/locationcore/LbsPartnerCommon/src
+/os/lbs/locationmgmt/locationcore/LbsPartnerCommon/test/t_devcopy/group
+/os/lbs/locationmgmt/locationcore/LbsPartnerCommon/test/t_devcopy/inc
+/os/lbs/locationmgmt/locationcore/LbsPartnerCommon/test/t_devcopy/src
+/os/lbs/networkprotocolmodules/privacyprotocolmodule/ClientAPI/Common/group
+/os/lbs/networkprotocolmodules/privacyprotocolmodule/ClientAPI/Common/inc
+/os/lbs/networkprotocolmodules/privacyprotocolmodule/ClientAPI/Common/src
+/os/lbs/networkprotocolmodules/privacyprotocolmodule/ClientAPI/NetworkPrivacyAPI/BWINS
+/os/lbs/networkprotocolmodules/privacyprotocolmodule/ClientAPI/NetworkPrivacyAPI/EABI
+/os/lbs/networkprotocolmodules/privacyprotocolmodule/ClientAPI/NetworkPrivacyAPI/group
+/os/lbs/networkprotocolmodules/privacyprotocolmodule/ClientAPI/NetworkPrivacyAPI/inc
+/os/lbs/networkprotocolmodules/privacyprotocolmodule/ClientAPI/NetworkPrivacyAPI/src
+/os/lbs/networkprotocolmodules/privacyprotocolmodule/ClientAPI/PrivacyRequestAPI/BWINS
+/os/lbs/networkprotocolmodules/privacyprotocolmodule/ClientAPI/PrivacyRequestAPI/EABI
+/os/lbs/networkprotocolmodules/privacyprotocolmodule/ClientAPI/PrivacyRequestAPI/group
+/os/lbs/networkprotocolmodules/privacyprotocolmodule/ClientAPI/PrivacyRequestAPI/inc
+/os/lbs/networkprotocolmodules/privacyprotocolmodule/ClientAPI/PrivacyRequestAPI/src
+/os/lbs/networkprotocolmodules/privacyprotocolmodule/PrivacyProtocolModule/group
+/os/lbs/networkprotocolmodules/privacyprotocolmodule/PrivacyProtocolModule/inc
+/os/lbs/networkprotocolmodules/privacyprotocolmodule/PrivacyProtocolModule/src
+/os/lbs/networkprotocolmodules/privacyprotocolmodule/group
+/os/lbs/networkprotocolmodules/privacyprotocolmodule/test/group
+/os/lbs/networkprotocolmodules/privacyprotocolmodule/test/te_dummynetgateway/group
+/os/lbs/networkprotocolmodules/privacyprotocolmodule/test/te_dummynetgateway/inc
+/os/lbs/networkprotocolmodules/privacyprotocolmodule/test/te_dummynetgateway/src
+/os/lbs/networkprotocolmodules/privacyprotocolmodule/test/te_lbsnetworkprivacy/group
+/os/lbs/networkprotocolmodules/privacyprotocolmodule/test/te_lbsnetworkprivacy/scripts
+/os/lbs/networkprotocolmodules/privacyprotocolmodule/test/te_lbsnetworkprivacy/src
+/os/lbs/networkprotocolmodules/privacyprotocolmodule/test/te_lbsnetworkprivacy/testdata
+/os/lbs/networkprotocolmodules/privacyprotocolmodule/test/te_lbsprivfwcap/group
+/os/lbs/networkprotocolmodules/privacyprotocolmodule/test/te_lbsprivfwcap/inc
+/os/lbs/networkprotocolmodules/privacyprotocolmodule/test/te_lbsprivfwcap/scripts
+/os/lbs/networkprotocolmodules/privacyprotocolmodule/test/te_lbsprivfwcap/src
+/os/lbs/networkprotocolmodules/networkprotocolmodule/LbsProtocolModule/group
+/os/lbs/networkprotocolmodules/networkprotocolmodule/LbsProtocolModule/inc
+/os/lbs/networkprotocolmodules/networkprotocolmodule/LbsProtocolModule/src
+/os/lbs/networkprotocolmodules/networkprotocolmodule/LbsProtocolModule/test/group
+/os/lbs/networkprotocolmodules/networkprotocolmodule/LbsProtocolModule/test/scripts
+/os/lbs/networkprotocolmodules/networkprotocolmodule/LbsProtocolModule/test/src
+/os/lbs/networkprotocolmodules/networkprotocolmodule/LbsProtocolModule/test/testdata
+/os/lbs/locationrequestmgmt/locationserver/LbsQualityProfileApi/bwins
+/os/lbs/locationrequestmgmt/locationserver/LbsQualityProfileApi/eabi
+/os/lbs/locationrequestmgmt/locationserver/LbsQualityProfileApi/group
+/os/lbs/locationrequestmgmt/locationserver/LbsQualityProfileApi/inc
+/os/lbs/locationrequestmgmt/locationserver/LbsQualityProfileApi/src
+/os/lbs/locationrequestmgmt/locationserver/LbsQualityProfileApi/test/te_QualityProfileApiSuite/group
+/os/lbs/locationrequestmgmt/locationserver/LbsQualityProfileApi/test/te_QualityProfileApiSuite/scripts
+/os/lbs/locationrequestmgmt/locationserver/LbsQualityProfileApi/test/te_QualityProfileApiSuite/src
+/os/lbs/locationrequestmgmt/locationserver/LbsQualityProfileApi/test/te_QualityProfileApiSuite/testdata
+/os/lbs/networkprotocolmodules/suplprotocolmodule/HostSettingsApi/bwins
+/os/lbs/networkprotocolmodules/suplprotocolmodule/HostSettingsApi/eabi
+/os/lbs/networkprotocolmodules/suplprotocolmodule/HostSettingsApi/group
+/os/lbs/networkprotocolmodules/suplprotocolmodule/HostSettingsApi/inc
+/os/lbs/networkprotocolmodules/suplprotocolmodule/HostSettingsApi/src
+/os/lbs/networkprotocolmodules/suplprotocolmodule/HostSettingsApi/test/config
+/os/lbs/networkprotocolmodules/suplprotocolmodule/HostSettingsApi/test/group
+/os/lbs/networkprotocolmodules/suplprotocolmodule/HostSettingsApi/test/inc
+/os/lbs/networkprotocolmodules/suplprotocolmodule/HostSettingsApi/test/script
+/os/lbs/networkprotocolmodules/suplprotocolmodule/HostSettingsApi/test/src
+/os/lbs/networkprotocolmodules/suplprotocolmodule/LbsPskAPI/inc
+/os/lbs/networkprotocolmodules/suplprotocolmodule/SuplConnectionManager/bwins
+/os/lbs/networkprotocolmodules/suplprotocolmodule/SuplConnectionManager/eabi
+/os/lbs/networkprotocolmodules/suplprotocolmodule/SuplConnectionManager/group
+/os/lbs/networkprotocolmodules/suplprotocolmodule/SuplConnectionManager/inc
+/os/lbs/networkprotocolmodules/suplprotocolmodule/SuplConnectionManager/src
+/os/lbs/networkprotocolmodules/suplprotocolmodule/SuplConnectionManager/test/te_suplconnectionmanager/group
+/os/lbs/networkprotocolmodules/suplprotocolmodule/SuplConnectionManager/test/te_suplconnectionmanager/scripts
+/os/lbs/networkprotocolmodules/suplprotocolmodule/SuplConnectionManager/test/te_suplconnectionmanager/src
+/os/lbs/networkprotocolmodules/suplprotocolmodule/SuplConnectionManager/test/te_suplconnectionmanager/testdata
+/os/lbs/networkprotocolmodules/suplprotocolmodule/SuplDevLogger/BWINS
+/os/lbs/networkprotocolmodules/suplprotocolmodule/SuplDevLogger/eabi
+/os/lbs/networkprotocolmodules/suplprotocolmodule/SuplDevLogger/group
+/os/lbs/networkprotocolmodules/suplprotocolmodule/SuplDevLogger/inc
+/os/lbs/networkprotocolmodules/suplprotocolmodule/SuplDevLogger/src
+/os/lbs/networkprotocolmodules/suplprotocolmodule/SuplPositioningProtBase/inc
+/os/lbs/networkprotocolmodules/suplprotocolmodule/SuplProtocol/group
+/os/lbs/networkprotocolmodules/suplprotocolmodule/SuplProtocol/inc
+/os/lbs/networkprotocolmodules/suplprotocolmodule/SuplProtocol/src
+/os/lbs/networkprotocolmodules/suplprotocolmodule/SuplProtocol/test/TestSuplConnectionManager/bwins
+/os/lbs/networkprotocolmodules/suplprotocolmodule/SuplProtocol/test/TestSuplConnectionManager/eabi
+/os/lbs/networkprotocolmodules/suplprotocolmodule/SuplProtocol/test/TestSuplConnectionManager/group
+/os/lbs/networkprotocolmodules/suplprotocolmodule/SuplProtocol/test/TestSuplConnectionManager/inc
+/os/lbs/networkprotocolmodules/suplprotocolmodule/SuplProtocol/test/TestSuplConnectionManager/src
+/os/lbs/networkprotocolmodules/suplprotocolmodule/SuplProtocol/test/group
+/os/lbs/networkprotocolmodules/suplprotocolmodule/SuplProtocol/test/scripts
+/os/lbs/networkprotocolmodules/suplprotocolmodule/SuplProtocol/test/src
+/os/lbs/networkprotocolmodules/suplprotocolmodule/SuplProtocol/test/testdata
+/os/lbs/networkprotocolmodules/suplprotocolmodule/SuplProtocol/test/xml/te_suplprotocolSuite/testexecuteservers
+/os/lbs/networkprotocolmodules/suplprotocolmodule/SuplPushAPI/BWINS
+/os/lbs/networkprotocolmodules/suplprotocolmodule/SuplPushAPI/EABI
+/os/lbs/networkprotocolmodules/suplprotocolmodule/SuplPushAPI/group
+/os/lbs/networkprotocolmodules/suplprotocolmodule/SuplPushAPI/inc
+/os/lbs/networkprotocolmodules/suplprotocolmodule/SuplPushAPI/src
+/os/lbs/networkprotocolmodules/suplprotocolmodule/SuplPushAPI/test/group
+/os/lbs/networkprotocolmodules/suplprotocolmodule/SuplPushAPI/test/scripts
+/os/lbs/networkprotocolmodules/suplprotocolmodule/SuplPushAPI/test/src
+/os/lbs/networkprotocolmodules/suplprotocolmodule/SuplRrlpAsn1/BWINS
+/os/lbs/networkprotocolmodules/suplprotocolmodule/SuplRrlpAsn1/EABI
+/os/lbs/networkprotocolmodules/suplprotocolmodule/SuplRrlpAsn1/group
+/os/lbs/networkprotocolmodules/suplprotocolmodule/SuplRrlpAsn1/inc
+/os/lbs/networkprotocolmodules/suplprotocolmodule/SuplRrlpAsn1/rrlp/inc
+/os/lbs/networkprotocolmodules/suplprotocolmodule/SuplRrlpAsn1/rrlp/src
+/os/lbs/networkprotocolmodules/suplprotocolmodule/SuplRrlpAsn1/src
+/os/lbs/networkprotocolmodules/suplprotocolmodule/SuplRrlpAsn1/supl/inc
+/os/lbs/networkprotocolmodules/suplprotocolmodule/SuplRrlpAsn1/supl/src
+/os/lbs/networkprotocolmodules/suplprotocolmodule/SuplRrlpAsn1/test/group
+/os/lbs/networkprotocolmodules/suplprotocolmodule/SuplRrlpAsn1/test/te_suplrrlpasn/group
+/os/lbs/networkprotocolmodules/suplprotocolmodule/SuplRrlpAsn1/test/te_suplrrlpasn/scripts
+/os/lbs/networkprotocolmodules/suplprotocolmodule/SuplRrlpAsn1/test/te_suplrrlpasn/src
+/os/lbs/networkprotocolmodules/suplprotocolmodule/SuplRrlpAsn1/test/te_suplrrlpasn/testdata
+/os/lbs/networkprotocolmodules/suplprotocolmodule/SuplRrlpProtocol/bwins
+/os/lbs/networkprotocolmodules/suplprotocolmodule/SuplRrlpProtocol/eabi
+/os/lbs/networkprotocolmodules/suplprotocolmodule/SuplRrlpProtocol/group
+/os/lbs/networkprotocolmodules/suplprotocolmodule/SuplRrlpProtocol/inc
+/os/lbs/networkprotocolmodules/suplprotocolmodule/SuplRrlpProtocol/src
+/os/lbs/networkprotocolmodules/suplprotocolmodule/SuplRrlpProtocol/test/group
+/os/lbs/networkprotocolmodules/suplprotocolmodule/SuplRrlpProtocol/test/lbssuplrrlp_test/bwins
+/os/lbs/networkprotocolmodules/suplprotocolmodule/SuplRrlpProtocol/test/lbssuplrrlp_test/eabi
+/os/lbs/networkprotocolmodules/suplprotocolmodule/SuplRrlpProtocol/test/lbssuplrrlp_test/group
+/os/lbs/networkprotocolmodules/suplprotocolmodule/SuplRrlpProtocol/test/te_suplrrlp/group
+/os/lbs/networkprotocolmodules/suplprotocolmodule/SuplRrlpProtocol/test/te_suplrrlp/scripts
+/os/lbs/networkprotocolmodules/suplprotocolmodule/SuplRrlpProtocol/test/te_suplrrlp/src
+/os/lbs/networkprotocolmodules/suplprotocolmodule/SuplRrlpProtocol/test/te_suplrrlp/testdata
+/os/lbs/networkprotocolmodules/suplprotocolmodule/asn1export/bin/armv5/udeb
+/os/lbs/networkprotocolmodules/suplprotocolmodule/asn1export/bin/armv5/urel
+/os/lbs/networkprotocolmodules/suplprotocolmodule/asn1export/bin/winscw/udeb
+/os/lbs/networkprotocolmodules/suplprotocolmodule/asn1export/bin/winscw/urel
+/os/lbs/networkprotocolmodules/suplprotocolmodule/asn1export/group
+/os/lbs/networkprotocolmodules/suplprotocolmodule/asn1export/inc
+/os/lbs/networkprotocolmodules/suplprotocolmodule/asn1export/lib/armv5
+/os/lbs/networkprotocolmodules/suplprotocolmodule/group
+/os/lbs/networkprotocolmodules/suplprotocolmodule/test/export
+/os/lbs/networkprotocolmodules/suplprotocolmodule/test/suplrrlptestmessages/EABI
+/os/lbs/networkprotocolmodules/suplprotocolmodule/test/suplrrlptestmessages/bwins
+/os/lbs/networkprotocolmodules/suplprotocolmodule/test/suplrrlptestmessages/group
+/os/lbs/networkprotocolmodules/suplprotocolmodule/test/suplrrlptestmessages/rrlp/inc
+/os/lbs/networkprotocolmodules/suplprotocolmodule/test/suplrrlptestmessages/rrlp/src
+/os/lbs/networkprotocolmodules/suplprotocolmodule/test/suplspoofserver/bwins
+/os/lbs/networkprotocolmodules/suplprotocolmodule/test/suplspoofserver/eabi
+/os/lbs/networkprotocolmodules/suplprotocolmodule/test/suplspoofserver/group
+/os/lbs/networkprotocolmodules/suplprotocolmodule/test/suplspoofserver/inc
+/os/lbs/networkprotocolmodules/suplprotocolmodule/test/suplspoofserver/rrlp/inc
+/os/lbs/networkprotocolmodules/suplprotocolmodule/test/suplspoofserver/rrlp/src
+/os/lbs/networkprotocolmodules/suplprotocolmodule/test/suplspoofserver/src
+/os/lbs/networkprotocolmodules/suplprotocolmodule/test/suplspoofserver/supl/inc
+/os/lbs/networkprotocolmodules/suplprotocolmodule/test/suplspoofserver/supl/src
+/os/lbs/networkprotocolmodules/networkprotocolmodule/LbsSuplTestProtocol/data
+/os/lbs/networkprotocolmodules/networkprotocolmodule/LbsSuplTestProtocol/group
+/os/lbs/networkprotocolmodules/networkprotocolmodule/LbsSuplTestProtocol/inc
+/os/lbs/networkprotocolmodules/networkprotocolmodule/LbsSuplTestProtocol/src
+/os/lbs/networkprotocolmodules/networkprotocolmodule/LbsSuplTestProtocol/test/group
+/os/lbs/networkprotocolmodules/networkprotocolmodule/LbsSuplTestProtocol/test/scripts
+/os/lbs/networkprotocolmodules/networkprotocolmodule/LbsSuplTestProtocol/test/src
+/os/lbs/networkprotocolmodules/networkprotocolmodule/LbsSuplTestProtocol/test/testdata
+/os/lbs/locationrequestmgmt/networkrequesthandler/LbsX3P/LbsX3PApi/EABI
+/os/lbs/locationrequestmgmt/networkrequesthandler/LbsX3P/LbsX3PApi/bwins
+/os/lbs/locationrequestmgmt/networkrequesthandler/LbsX3P/LbsX3PApi/group
+/os/lbs/locationrequestmgmt/networkrequesthandler/LbsX3P/LbsX3PApi/inc
+/os/lbs/locationrequestmgmt/networkrequesthandler/LbsX3P/LbsX3PApi/src
+/os/lbs/locationrequestmgmt/networkrequesthandler/LbsX3P/LbsX3PApi/test
+/os/lbs/locationrequestmgmt/networkrequesthandler/LbsX3P/group
+/os/unref/orphan/comgen/LBS/cenrep
+/os/lbs/locationmgmt/locationcore/documentation
+/os/unref/orphan/comgen/LBS/group
+/os/lbs/locationmgmt/locationcore/inc
+/mw/messagingmw/messagingfw/suplsmshandler/group
+/mw/messagingmw/messagingfw/suplsmshandler/inc
+/mw/messagingmw/messagingfw/suplsmshandler/src
+/mw/messagingmw/messagingfw/suplsmshandler/test/connstarter/group
+/mw/messagingmw/messagingfw/suplsmshandler/test/connstarter/inc
+/mw/messagingmw/messagingfw/suplsmshandler/test/connstarter/src
+/mw/messagingmw/messagingfw/suplsmshandler/test/testserver/group
+/mw/messagingmw/messagingfw/suplsmshandler/test/testserver/scripts
+/mw/messagingmw/messagingfw/suplsmshandler/test/testserver/src
+/mw/messagingmw/messagingfw/suplsmshandler/test/testserver/testdata
+/mw/messagingmw/messagingfw/suplwappushhandler/group
+/mw/messagingmw/messagingfw/suplwappushhandler/inc
+/mw/messagingmw/messagingfw/suplwappushhandler/src
+/mw/messagingmw/messagingfw/suplwappushhandler/test/group
+/mw/messagingmw/messagingfw/suplwappushhandler/test/scripts
+/mw/messagingmw/messagingfw/suplwappushhandler/test/src
+/os/unref/orphan/comgen/LBS/lbsgpsdatasourcemodules/group
+/os/lbs/datasourcemodules/defaultpositioningmodule/data
+/os/lbs/datasourcemodules/defaultpositioningmodule/group
+/os/lbs/datasourcemodules/defaultpositioningmodule/inc
+/os/lbs/datasourcemodules/defaultpositioningmodule/resource
+/os/lbs/datasourcemodules/defaultpositioningmodule/src
+/os/lbs/datasourcemodules/defaultpositioningmodule/test/te_defproxy/group
+/os/lbs/datasourcemodules/defaultpositioningmodule/test/te_defproxy/inc
+/os/lbs/datasourcemodules/defaultpositioningmodule/test/te_defproxy/scripts
+/os/lbs/datasourcemodules/defaultpositioningmodule/test/te_defproxy/src
+/os/lbs/datasourcemodules/defaultpositioningmodule/test/te_defproxy/testdata
+/os/lbs/datasourcemodules/bluetoothgpspositioningmodule/btgpspsy/cenrep
+/os/lbs/datasourcemodules/bluetoothgpspositioningmodule/btgpspsy/data
+/os/lbs/datasourcemodules/bluetoothgpspositioningmodule/btgpspsy/group
+/os/lbs/datasourcemodules/bluetoothgpspositioningmodule/btgpspsy/inc/Connecting
+/os/lbs/datasourcemodules/bluetoothgpspositioningmodule/btgpspsy/inc/Init
+/os/lbs/datasourcemodules/bluetoothgpspositioningmodule/btgpspsy/inc/Nmea
+/os/lbs/datasourcemodules/bluetoothgpspositioningmodule/btgpspsy/inc/RequestHandler
+/os/lbs/datasourcemodules/bluetoothgpspositioningmodule/btgpspsy/inc/Settings
+/os/lbs/datasourcemodules/bluetoothgpspositioningmodule/btgpspsy/inc/Utils
+/os/lbs/datasourcemodules/bluetoothgpspositioningmodule/btgpspsy/src/Connecting
+/os/lbs/datasourcemodules/bluetoothgpspositioningmodule/btgpspsy/src/Init
+/os/lbs/datasourcemodules/bluetoothgpspositioningmodule/btgpspsy/src/Nmea
+/os/lbs/datasourcemodules/bluetoothgpspositioningmodule/btgpspsy/src/RequestHandler
+/os/lbs/datasourcemodules/bluetoothgpspositioningmodule/btgpspsy/src/Settings
+/os/lbs/datasourcemodules/bluetoothgpspositioningmodule/btgpspsy/src/Utils
+/os/lbs/datasourcemodules/bluetoothgpspositioningmodule/btgpspsy/test/te_lbsbtgpspsy/btdevnotif/bwins
+/os/lbs/datasourcemodules/bluetoothgpspositioningmodule/btgpspsy/test/te_lbsbtgpspsy/btdevnotif/eabi
+/os/lbs/datasourcemodules/bluetoothgpspositioningmodule/btgpspsy/test/te_lbsbtgpspsy/btdevnotif/group
+/os/lbs/datasourcemodules/bluetoothgpspositioningmodule/btgpspsy/test/te_lbsbtgpspsy/btdevnotif/inc
+/os/lbs/datasourcemodules/bluetoothgpspositioningmodule/btgpspsy/test/te_lbsbtgpspsy/btdevnotif/src
+/os/lbs/datasourcemodules/bluetoothgpspositioningmodule/btgpspsy/test/te_lbsbtgpspsy/group
+/os/lbs/datasourcemodules/bluetoothgpspositioningmodule/btgpspsy/test/te_lbsbtgpspsy/inc
+/os/lbs/datasourcemodules/bluetoothgpspositioningmodule/btgpspsy/test/te_lbsbtgpspsy/scripts
+/os/lbs/datasourcemodules/bluetoothgpspositioningmodule/btgpspsy/test/te_lbsbtgpspsy/src
+/os/lbs/datasourcemodules/bluetoothgpspositioningmodule/btgpspsy/test/te_lbsbtgpspsy/testdata
+/os/lbs/datasourcemodules/bluetoothgpspositioningmodule/btgpspsy/test/te_settingsmanager/group
+/os/lbs/datasourcemodules/bluetoothgpspositioningmodule/btgpspsy/test/te_settingsmanager/inc
+/os/lbs/datasourcemodules/bluetoothgpspositioningmodule/btgpspsy/test/te_settingsmanager/scripts
+/os/lbs/datasourcemodules/bluetoothgpspositioningmodule/btgpspsy/test/te_settingsmanager/src
+/os/lbs/datasourcemodules/bluetoothgpspositioningmodule/btgpspsy/test/te_settingsmanager/testdata
+/os/lbs/datasourcemodules/bluetoothgpspositioningmodule/group
+/os/lbs/datasourcemodules/simulationpositioningmodule/Data
+/os/lbs/datasourcemodules/simulationpositioningmodule/cenrep
+/os/lbs/datasourcemodules/simulationpositioningmodule/group
+/os/lbs/datasourcemodules/simulationpositioningmodule/inc
+/os/lbs/datasourcemodules/simulationpositioningmodule/src
+/os/lbs/datasourcemodules/simulationpositioningmodule/test/te_lbssimulationpsy/common/inc
+/os/lbs/datasourcemodules/simulationpositioningmodule/test/te_lbssimulationpsy/common/src
+/os/lbs/datasourcemodules/simulationpositioningmodule/test/te_lbssimulationpsy/group
+/os/lbs/datasourcemodules/simulationpositioningmodule/test/te_lbssimulationpsy/inc
+/os/lbs/datasourcemodules/simulationpositioningmodule/test/te_lbssimulationpsy/scripts
+/os/lbs/datasourcemodules/simulationpositioningmodule/test/te_lbssimulationpsy/src
+/os/lbs/datasourcemodules/simulationpositioningmodule/test/te_lbssimulationpsy/testdata
+/os/lbs/locationmgmt/locationcore/lbslocindicatorlib/bwins
+/os/lbs/locationmgmt/locationcore/lbslocindicatorlib/eabi
+/os/lbs/locationmgmt/locationcore/lbslocindicatorlib/group
+/os/lbs/locationmgmt/locationcore/lbslocindicatorlib/inc
+/os/lbs/locationmgmt/locationcore/lbslocindicatorlib/integratedgpshwstatusapi/group
+/os/lbs/locationmgmt/locationcore/lbslocindicatorlib/integratedgpshwstatusapi/inc
+/os/lbs/locationmgmt/locationcore/lbslocindicatorlib/posindicatorapi/group
+/os/lbs/locationmgmt/locationcore/lbslocindicatorlib/posindicatorapi/inc
+/os/lbs/locationmgmt/locationcore/lbslocindicatorlib/src
+/os/lbs/locationmgmt/locationcore/lbslocindicatorlib/test/te_locindicatorlib/group
+/os/lbs/locationmgmt/locationcore/lbslocindicatorlib/test/te_locindicatorlib/inc
+/os/lbs/locationmgmt/locationcore/lbslocindicatorlib/test/te_locindicatorlib/scripts
+/os/lbs/locationmgmt/locationcore/lbslocindicatorlib/test/te_locindicatorlib/src
+/os/lbs/locationmgmt/locationcore/lbslocindicatorlib/test/te_locindicatorlib/testdata
+/os/lbs/locationmgmt/locationcore/lbslocsettings/BWINS
+/os/lbs/locationmgmt/locationcore/lbslocsettings/EABI
+/os/lbs/locationmgmt/locationcore/lbslocsettings/data
+/os/lbs/locationmgmt/locationcore/lbslocsettings/group
+/os/lbs/locationmgmt/locationcore/lbslocsettings/inc
+/os/lbs/locationmgmt/locationcore/lbslocsettings/locsettingsapi/group
+/os/lbs/locationmgmt/locationcore/lbslocsettings/locsettingsapi/inc
+/os/lbs/locationmgmt/locationcore/lbslocsettings/src
+/os/lbs/locationmgmt/locationcore/lbsmlfwutilities/BWINS
+/os/lbs/locationmgmt/locationcore/lbsmlfwutilities/EABI
+/os/lbs/locationmgmt/locationcore/lbsmlfwutilities/group
+/os/lbs/locationmgmt/locationcore/lbsmlfwutilities/inc
+/os/lbs/locationmgmt/locationcore/lbsmlfwutilities/locfwtraceapi/group
+/os/lbs/locationmgmt/locationcore/lbsmlfwutilities/locfwtraceapi/inc
+/os/lbs/locationmgmt/locationcore/lbsmlfwutilities/src
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/BWINS
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/EABI
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/group
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/inc
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/pospluginapi/group
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/pospluginapi/inc
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/posplugininformationapi/group
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/posplugininformationapi/inc
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/group
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/psytester/group
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/psytester/inc
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/psytester/resource
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/psytester/src
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/psytestercrtester/group
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/psytestercrtester/inc
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/psytestercrtester/src
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/cancel/group
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/cancel/testpsy3cancel/cenrep
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/cancel/testpsy3cancel/group
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/cancel/testpsy3cancel/inc
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/cancel/testpsy3cancel/resource
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/cancel/testpsy3cancel/src
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/cancel/testpsy4cancel/cenrep
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/cancel/testpsy4cancel/group
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/cancel/testpsy4cancel/inc
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/cancel/testpsy4cancel/resource
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/cancel/testpsy4cancel/src
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/capability/group
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/capability/testpsy2cap/cenrep
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/capability/testpsy2cap/group
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/capability/testpsy2cap/inc
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/capability/testpsy2cap/resource
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/capability/testpsy2cap/src
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/capability/testpsy3cap/cenrep
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/capability/testpsy3cap/group
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/capability/testpsy3cap/inc
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/capability/testpsy3cap/resource
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/capability/testpsy3cap/src
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/capability/testpsy4cap/cenrep
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/capability/testpsy4cap/group
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/capability/testpsy4cap/inc
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/capability/testpsy4cap/resource
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/capability/testpsy4cap/src
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/crcap/group
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/crcap/testpsy21crcap/cenrep
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/crcap/testpsy21crcap/group
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/crcap/testpsy21crcap/inc
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/crcap/testpsy21crcap/resource
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/crcap/testpsy21crcap/src
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/group
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/leaving/group
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/leaving/testpsy1leaving/cenrep
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/leaving/testpsy1leaving/group
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/leaving/testpsy1leaving/inc
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/leaving/testpsy1leaving/resource
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/leaving/testpsy1leaving/src
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/leaving/testpsy2leaving/cenrep
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/leaving/testpsy2leaving/group
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/leaving/testpsy2leaving/inc
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/leaving/testpsy2leaving/resource
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/leaving/testpsy2leaving/src
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/maxage/group
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/maxage/testpsy3maxage/cenrep
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/maxage/testpsy3maxage/group
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/maxage/testpsy3maxage/inc
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/maxage/testpsy3maxage/resource
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/maxage/testpsy3maxage/src
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/maxage/testpsy4maxage/cenrep
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/maxage/testpsy4maxage/group
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/maxage/testpsy4maxage/inc
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/maxage/testpsy4maxage/resource
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/maxage/testpsy4maxage/src
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/memory/group
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/memory/testpsy2mem/cenrep
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/memory/testpsy2mem/group
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/memory/testpsy2mem/inc
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/memory/testpsy2mem/resource
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/memory/testpsy2mem/src
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/multiple/group
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/multiple/testpsy3mult/cenrep
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/multiple/testpsy3mult/group
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/multiple/testpsy3mult/inc
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/multiple/testpsy3mult/resource
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/multiple/testpsy3mult/src
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/multiple/testpsy4mult/cenrep
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/multiple/testpsy4mult/group
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/multiple/testpsy4mult/inc
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/multiple/testpsy4mult/resource
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/multiple/testpsy4mult/src
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/multiple/testpsy5mult/cenrep
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/multiple/testpsy5mult/group
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/multiple/testpsy5mult/inc
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/multiple/testpsy5mult/resource
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/multiple/testpsy5mult/src
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/multiple/testpsy6mult/cenrep
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/multiple/testpsy6mult/group
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/multiple/testpsy6mult/inc
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/multiple/testpsy6mult/resource
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/multiple/testpsy6mult/src
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/plugincap/group
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/plugincap/testpsy18cap/cenrep
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/plugincap/testpsy18cap/group
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/plugincap/testpsy18cap/inc
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/plugincap/testpsy18cap/resource
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/plugincap/testpsy18cap/src
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/requestsbasic/group
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/requestsbasic/testpsy1req/cenrep
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/requestsbasic/testpsy1req/group
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/requestsbasic/testpsy1req/inc
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/requestsbasic/testpsy1req/resource
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/requestsbasic/testpsy1req/src
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/requestsbasic/testpsy2req/cenrep
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/requestsbasic/testpsy2req/group
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/requestsbasic/testpsy2req/inc
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/requestsbasic/testpsy2req/resource
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/requestsbasic/testpsy2req/src
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/requestsbasic/testpsy3req/cenrep
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/requestsbasic/testpsy3req/group
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/requestsbasic/testpsy3req/inc
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/requestsbasic/testpsy3req/resource
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/requestsbasic/testpsy3req/src
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/requestsbasic/testpsy4req/cenrep
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/requestsbasic/testpsy4req/group
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/requestsbasic/testpsy4req/inc
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/requestsbasic/testpsy4req/resource
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/requestsbasic/testpsy4req/src
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/requestsbasic/testpsy5req/cenrep
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/requestsbasic/testpsy5req/group
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/requestsbasic/testpsy5req/inc
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/requestsbasic/testpsy5req/resource
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/requestsbasic/testpsy5req/src
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/requestsbasic/testpsy6req/cenrep
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/requestsbasic/testpsy6req/group
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/requestsbasic/testpsy6req/inc
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/requestsbasic/testpsy6req/resource
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/requestsbasic/testpsy6req/src
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/resourcefile/group
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/resourcefile/testpsy1res/cenrep
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/resourcefile/testpsy1res/group
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/resourcefile/testpsy1res/inc
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/resourcefile/testpsy1res/resource
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/resourcefile/testpsy1res/src
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/resourcefile/testpsy2res/cenrep
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/resourcefile/testpsy2res/group
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/resourcefile/testpsy2res/inc
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/resourcefile/testpsy2res/resource
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/resourcefile/testpsy2res/src
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/resourcefile/testpsy3res/cenrep
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/resourcefile/testpsy3res/group
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/resourcefile/testpsy3res/inc
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/resourcefile/testpsy3res/resource
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/resourcefile/testpsy3res/src
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/resourcefile/testpsy4res/cenrep
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/resourcefile/testpsy4res/group
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/resourcefile/testpsy4res/inc
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/resourcefile/testpsy4res/resource
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/resourcefile/testpsy4res/src
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/resourcefile/testpsy5res/cenrep
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/resourcefile/testpsy5res/group
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/resourcefile/testpsy5res/inc
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/resourcefile/testpsy5res/resource
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/resourcefile/testpsy5res/src
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/resourcefile/testpsy6res/cenrep
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/resourcefile/testpsy6res/group
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/resourcefile/testpsy6res/inc
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/resourcefile/testpsy6res/resource
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/resourcefile/testpsy6res/src
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/status/group
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/status/testpsy1stat/cenrep
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/status/testpsy1stat/group
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/status/testpsy1stat/inc
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/status/testpsy1stat/resource
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/status/testpsy1stat/src
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/status/testpsy2stat/cenrep
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/status/testpsy2stat/group
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/status/testpsy2stat/inc
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/status/testpsy2stat/resource
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/status/testpsy2stat/src
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/status/testpsy3stat/cenrep
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/status/testpsy3stat/group
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/status/testpsy3stat/inc
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/status/testpsy3stat/resource
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/status/testpsy3stat/src
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/status/testpsy4stat/cenrep
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/status/testpsy4stat/group
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/status/testpsy4stat/inc
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/status/testpsy4stat/resource
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/status/testpsy4stat/src
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/status/testpsy5stat/cenrep
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/status/testpsy5stat/group
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/status/testpsy5stat/inc
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/status/testpsy5stat/resource
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/status/testpsy5stat/src
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/status/testpsy6stat/cenrep
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/status/testpsy6stat/group
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/status/testpsy6stat/inc
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/status/testpsy6stat/resource
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/status/testpsy6stat/src
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/testdata
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/testpsybase/BWINS
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/testpsybase/EABI
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/testpsybase/group
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/testpsybase/inc
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/testpsybase/src
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/threads/group
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/threads/testpsy1threads/cenrep
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/threads/testpsy1threads/group
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/threads/testpsy1threads/inc
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/threads/testpsy1threads/resource
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/threads/testpsy1threads/src
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/threads/testpsy2threads/cenrep
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/threads/testpsy2threads/group
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/threads/testpsy2threads/inc
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/threads/testpsy2threads/resource
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/threads/testpsy2threads/src
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/tracking/group
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/tracking/testpsy19track/cenrep
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/tracking/testpsy19track/group
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/tracking/testpsy19track/inc
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/tracking/testpsy19track/resource
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/tracking/testpsy19track/src
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/tracking/testpsy20track/cenrep
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/tracking/testpsy20track/group
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/tracking/testpsy20track/inc
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/tracking/testpsy20track/resource
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/psytester/test/testpsys/tracking/testpsy20track/src
+/os/lbs/datasourceadaptation/gpsdatasourceadaptation/src
+/os/lbs/locationmgmt/locationcore/lbsroot/group
+/os/lbs/locationmgmt/locationcore/lbsroot/inc
+/os/lbs/locationmgmt/locationcore/lbsroot/src
+/os/lbs/locationmgmt/locationcore/lbsrootapi/BWINS
+/os/lbs/locationmgmt/locationcore/lbsrootapi/EABI
+/os/lbs/locationmgmt/locationcore/lbsrootapi/group
+/os/lbs/locationmgmt/locationcore/lbsrootapi/inc
+/os/lbs/locationmgmt/locationcore/lbsrootapi/src
+/os/lbs/locationmgmt/locationcore/lbsrootapi/test/group
+/os/lbs/locationmgmt/locationcore/lbsrootapi/test/inc
+/os/lbs/locationmgmt/locationcore/lbsrootapi/test/scripts
+/os/lbs/locationmgmt/locationcore/lbsrootapi/test/src
+/os/lbs/locationmgmt/locationcore/lbsrootapi/test/testdata/teststep10
+/os/lbs/locationmgmt/locationcore/lbsrootapi/test/testdata/teststep11
+/os/lbs/locationmgmt/locationcore/lbsrootapi/test/testdata/teststep12
+/os/lbs/locationmgmt/locationcore/lbsrootapi/test/testdata/teststep13
+/os/lbs/locationmgmt/locationcore/lbsrootapi/test/testdata/teststep15
+/os/lbs/locationmgmt/locationcore/lbsrootapi/test/testdata/teststep16
+/os/lbs/locationmgmt/locationcore/lbsrootapi/test/testdata/teststep17
+/os/lbs/locationmgmt/locationcore/lbsrootapi/test/testdata/teststep18
+/os/lbs/locationmgmt/locationcore/lbsrootapi/test/testdata/teststep26
+/os/lbs/locationmgmt/locationcore/lbsrootapi/test/testdata/teststep28
+/os/lbs/locationmgmt/locationcore/lbsrootapi/test/testdata/teststep29
+/os/lbs/locationmgmt/locationcore/lbsrootapi/test/testdata/teststep31
+/os/lbs/locationmgmt/locationcore/lbsrootapi/test/testdata/teststep9
+/os/lbs/locationmgmt/locationcore/lbsrootapi/test/testdata/teststepall
+/os/lbs/networkprotocolmodules/networkprotocolmodule/suplasn1/EABI
+/os/lbs/networkprotocolmodules/networkprotocolmodule/suplasn1/asn1per/inc
+/os/lbs/networkprotocolmodules/networkprotocolmodule/suplasn1/asn1per/source
+/os/lbs/networkprotocolmodules/networkprotocolmodule/suplasn1/bwins
+/os/lbs/networkprotocolmodules/networkprotocolmodule/suplasn1/documentation
+/os/lbs/networkprotocolmodules/networkprotocolmodule/suplasn1/group
+/os/lbs/networkprotocolmodules/networkprotocolmodule/suplasn1/rrc/inc
+/os/lbs/networkprotocolmodules/networkprotocolmodule/suplasn1/rrc/source
+/os/lbs/networkprotocolmodules/networkprotocolmodule/suplasn1/supl/inc
+/os/lbs/networkprotocolmodules/networkprotocolmodule/suplasn1/supl/source
+/os/lbs/networkprotocolmodules/networkprotocolmodule/suplasn1/test/group
+/os/lbs/networkprotocolmodules/networkprotocolmodule/suplasn1/test/scripts
+/os/lbs/networkprotocolmodules/networkprotocolmodule/suplasn1/test/src
+/os/lbs/networkprotocolmodules/networkprotocolmodule/suplasn1/test/testdata
+/os/lbs/lbstest/lbstestproduct/test_group
+/os/lbs/lbstest/lbstestproduct/internal/group
+/os/lbs/lbstest/lbstestproduct/internal/lbsdatasrc/group
+/os/lbs/lbstest/lbstestproduct/internal/lbsdatasrc/inc
+/os/lbs/lbstest/lbstestproduct/internal/lbsdatasrc/scripts
+/os/lbs/lbstest/lbstestproduct/internal/lbsdatasrc/src
+/os/lbs/lbstest/lbstestproduct/internal/lbsdatasrc/testdata
+/os/lbs/lbstest/lbstestproduct/internal/lbstestserver/BWINS
+/os/lbs/lbstest/lbstestproduct/internal/lbstestserver/EABI
+/os/lbs/lbstest/lbstestproduct/internal/lbstestserver/group
+/os/lbs/lbstest/lbstestproduct/internal/lbstestserver/inc
+/os/lbs/lbstest/lbstestproduct/internal/lbstestserver/src
+/os/lbs/lbstest/lbstestproduct/internal/lbstestutils/BWINS
+/os/lbs/lbstest/lbstestproduct/internal/lbstestutils/EABI
+/os/lbs/lbstest/lbstestproduct/internal/lbstestutils/group
+/os/lbs/lbstest/lbstestproduct/internal/lbstestutils/inc
+/os/lbs/lbstest/lbstestproduct/internal/lbstestutils/src
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/btpsy/cenrep
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/btpsy/group
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/btpsy/inc
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/btpsy/resource
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/btpsy/src
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/extgpspsy1/cenrep
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/extgpspsy1/data
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/extgpspsy1/group
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/extgpspsy1/inc
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/extgpspsy1/src
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/extgpspsy2/cenrep
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/extgpspsy2/data
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/extgpspsy2/group
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/extgpspsy2/inc
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/extgpspsy2/src
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/group
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/instapsy/cenrep
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/instapsy/group
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/instapsy/inc
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/instapsy/resource
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/instapsy/src
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/intgpspsy1/cenrep
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/intgpspsy1/data
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/intgpspsy1/group
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/intgpspsy1/inc
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/intgpspsy1/src
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/intgpspsy2/cenrep
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/intgpspsy2/data
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/intgpspsy2/group
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/intgpspsy2/inc
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/intgpspsy2/src
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/lcfpsy6/cenrep
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/lcfpsy6/data
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/lcfpsy6/group
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/lcfpsy6/inc
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/lcfpsy6/resource
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/lcfpsy6/src
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/lcfpsydummy1/cenrep
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/lcfpsydummy1/group
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/lcfpsydummy1/inc
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/lcfpsydummy1/resource
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/lcfpsydummy1/src
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/lcfpsydummy2/cenrep
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/lcfpsydummy2/group
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/lcfpsydummy2/inc
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/lcfpsydummy2/resource
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/lcfpsydummy2/src
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/lcfpsydummy3/cenrep
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/lcfpsydummy3/group
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/lcfpsydummy3/inc
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/lcfpsydummy3/resource
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/lcfpsydummy3/src
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/leavingpsy/cenrep
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/leavingpsy/group
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/leavingpsy/inc
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/leavingpsy/resource
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/leavingpsy/src
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/networkpsy1/cenrep
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/networkpsy1/data
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/networkpsy1/group
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/networkpsy1/inc
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/networkpsy1/src
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/networkpsy2/cenrep
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/networkpsy2/data
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/networkpsy2/group
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/networkpsy2/inc
+/os/lbs/locationrequestmgmt/locationserver/lbstestpsys/networkpsy2/src
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LBS_Test_Suite
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsAGPSHAIValidationSuite/LbsAGPSHAIValidationSuite_Assisted/TestExecuteServers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsAGPSHAIValidationSuite/LbsAGPSHAIValidationSuite_Autonomous/TestExecuteServers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsIntegrationNavmanSuite/LbsClientSuite_Real/TestExecuteServers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsIntegrationNavmanSuite/LbsClockSuite_Real/TestExecuteServers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsIntegrationNavmanSuite/LbsDataSrcAgpsSuite/TestExecuteServers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsIntegrationNavmanSuite/LbsDataSrcNetworkSuite/TestExecuteServers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsIntegrationNavmanSuite/LbsHybridMolrSuite_Real/TestExecuteServers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsIntegrationNavmanSuite/LbsHybridMtlrSuite_Real/TestExecuteServers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsIntegrationNavmanSuite/LbsHybridX3PSuite_Real/TestExecuteServers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsIntegrationNavmanSuite/LbsMtlrSuite_Real/TestExecuteServers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsIntegrationNavmanSuite/LbsSuplMolrSuite_Real/TestExecuteServers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsIntegrationNavmanSuite/LbsSuplMtlrSuite_Real/TestExecuteServers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsIntegrationNavmanSuite/LbsX3PSuite_Real/TestExecuteServers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsIntegrationSuite/LbsAssDataSuite/TestExecuteServers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsIntegrationSuite/LbsClientSuite/TestExecuteServers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsIntegrationSuite/LbsClockSuite/TestExecuteServers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsIntegrationSuite/LbsConflictSuite/TestExecuteServers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsIntegrationSuite/LbsExtendedMtlrSuite/TestExecuteServers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsIntegrationSuite/LbsFeaturesSuite/TestExecuteServers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsIntegrationSuite/LbsHybridMolrSuite/TestExecuteServers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsIntegrationSuite/LbsHybridMtlrSuite/TestExecuteServers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsIntegrationSuite/LbsHybridX3PSuite/TestExecuteServers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsIntegrationSuite/LbsMathSuite/TestExecuteServers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsIntegrationSuite/LbsMtlrSuite/TestExecuteServers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsIntegrationSuite/LbsPtbMtlrSuite/TestExecuteServers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsIntegrationSuite/LbsSuplMolrSuite/TestExecuteServers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsIntegrationSuite/LbsSuplMtlrSuite/TestExecuteServers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsIntegrationSuite/LbsSuplOmaSuite/TestExecuteServers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsIntegrationSuite/LbsX3PSuite/TestExecuteServers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsPrivacySuite/LbsIntegrationSuite/LbsFeaturesSuite/TestExecuteServers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsPrivacySuite/LbsIntegrationSuite/LbsNotifierNotInstalledSuite/TestExecuteServers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsPrivacySuite/LbsIntegrationSuite/LbsPrivacyFwSuite/TestExecuteServers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsPrivacySuite/LbsIntegrationSuite/LbsRamUsageSuite/TestExecuteServers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsPrivacySuite/LbsUnitSuite/Te_LbsLoggingSuiteServer/testexecuteservers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsPrivacySuite/LbsUnitSuite/te_LbsAdminSuite/testexecuteservers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsPrivacySuite/LbsUnitSuite/te_LbsDebugSuite/testexecuteservers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsPrivacySuite/LbsUnitSuite/te_LbsPrivFWCapSuite/testexecuteservers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsPrivacySuite/LbsUnitSuite/te_lbsinternalapitestsuite/testexecuteservers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsPrivacySuite/LbsUnitSuite/te_lbsmathServer/testexecuteservers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsPrivacySuite/LbsUnitSuite/te_lbsnetgatewaySuite/testexecuteservers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsPrivacySuite/LbsUnitSuite/te_lbsnetinternaltestSuite/testexecuteservers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsPrivacySuite/LbsUnitSuite/te_lbsnetworkprivacySuite/testexecuteservers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsPrivacySuite/LbsUnitSuite/te_lbsnrhtestsuite/testexecuteservers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsPrivacySuite/LbsUnitSuite/te_lbsqualityprofileapiSuite/testexecuteservers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsPrivacySuite/LbsUnitSuite/te_lbsrootapitestsuite/testexecuteservers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsThirdPartySuite/s60PrivacyFwSuite/TestExecuteServers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsUnitSuite/Te_LbsLoggingSuiteServer/testexecuteservers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsUnitSuite/suplsuite/te_suplconnectionmanagersuite/testexecuteservers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsUnitSuite/suplsuite/te_suplhostsettingssuite/te_supllbsapiasyncsuite/testexecuteservers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsUnitSuite/suplsuite/te_suplhostsettingssuite/te_supllbsapisuite/testexecuteservers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsUnitSuite/suplsuite/te_suplprotocolsuite/testexecuteservers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsUnitSuite/suplsuite/te_suplpushapisuite/testexecuteservers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsUnitSuite/suplsuite/te_suplrrlpasn1suite/testexecuteservers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsUnitSuite/suplsuite/te_suplrrlpsuite/testexecuteservers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsUnitSuite/suplsuite/te_suplsmstriggersuite/testexecuteservers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsUnitSuite/suplsuite/te_suplwappushsuite/testexecuteservers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsUnitSuite/te_LbsAdminSuite/testexecuteservers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsUnitSuite/te_LbsAssistanceDataSuite/testexecuteservers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsUnitSuite/te_LbsDebugSuite/testexecuteservers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsUnitSuite/te_LbsLocServerSuite/testexecuteservers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsUnitSuite/te_LbsNetworkLocationManager/testexecuteservers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsUnitSuite/te_ProcessLaunchTestSuite/testexecuteservers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsUnitSuite/te_agpshybridmoduleSuite/testexecuteservers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsUnitSuite/te_lbsinternalapitestsuite/testexecuteservers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsUnitSuite/te_lbsmathServer/testexecuteservers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsUnitSuite/te_lbsnetgatewaySuite/testexecuteservers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsUnitSuite/te_lbsnetinternaltestSuite/testexecuteservers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsUnitSuite/te_lbsnetsimtestSuite/testexecuteservers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsUnitSuite/te_lbsnrhsuite2/testexecuteservers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsUnitSuite/te_lbsnrhtestsuite/testexecuteservers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsUnitSuite/te_lbsqualityprofileapiSuite/testexecuteservers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsUnitSuite/te_lbsrootapitestsuite/testexecuteservers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsUnitSuite/te_lbssupltestmoduleSuite/testexecuteservers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsUnitSuite/te_manSuite/testexecuteservers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsUnitSuite/te_protocolSuite/testexecuteservers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsUnitSuite/te_sirfgpsmainlogicSuite/testexecuteservers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsUnitSuite/te_testprotocolmodulesuite/testexecuteservers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/LbsUnitSuite/tsuplasn1/testexecuteservers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/lbsvariant2suite/lbsintegrationsuite/lbsbackuprestoresuite/testexecuteservers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/lbsvariant2suite/lbsintegrationsuite/lbscalculationtestsuite/testexecuteservers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/lbsvariant2suite/lbsintegrationsuite/lbsclientvariantsuite/TestExecuteServers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/lbsvariant2suite/lbsintegrationsuite/lbssimulationpsysuite/testexecuteservers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/lbsvariant2suite/lbsunitsuite/te_lbsapivariant2suite/testexecuteservers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/lbsvariant2suite/lbsunitsuite/te_lbsbtgpspsysuite/testexecuteservers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/lbsvariant2suite/lbsunitsuite/te_lbsdefproxysuite/testexecuteservers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/lbsvariant2suite/lbsunitsuite/te_lbslocindicatorlibsuite/testexecuteservers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/lbsvariant2suite/lbsunitsuite/te_lbslocsrvsuite/testexecuteservers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/lbsvariant2suite/lbsunitsuite/te_lbspsytestersuite
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/lbsvariant2suite/lbsunitsuite/te_lbssettingsmanagersuite/testexecuteservers
+/os/lbs/lbstest/lbstestproduct/tdxml/LbsSuite/lbsvariant2suite/lbsunitsuite/te_lbssimulationpsysuite/testexecuteservers
+/os/lbs/lbstest/lbstestproduct/agpsdataproviders/group
+/os/lbs/lbstest/lbstestproduct/agpsdataproviders/simpleprovider/group
+/os/lbs/lbstest/lbstestproduct/agpsdataproviders/simpleprovider/inc
+/os/lbs/lbstest/lbstestproduct/agpsdataproviders/simpleprovider/src
+/os/lbs/lbstest/lbstestproduct/agpsdataproviders/suplprovider/group
+/os/lbs/lbstest/lbstestproduct/agpsdataproviders/suplprovider/inc
+/os/lbs/lbstest/lbstestproduct/agpsdataproviders/suplprovider/src
+/os/lbs/lbstest/lbstestproduct/agpshaivalidate/documentation
+/os/lbs/lbstest/lbstestproduct/agpshaivalidate/group
+/os/lbs/lbstest/lbstestproduct/agpshaivalidate/lbsagpshaiassdata/group
+/os/lbs/lbstest/lbstestproduct/agpshaivalidate/lbsagpshaiassdata/inc
+/os/lbs/lbstest/lbstestproduct/agpshaivalidate/lbsagpshaiassdata/scripts
+/os/lbs/lbstest/lbstestproduct/agpshaivalidate/lbsagpshaiassdata/src
+/os/lbs/lbstest/lbstestproduct/agpshaivalidate/lbsagpshaiassdata/testdata
+/os/lbs/lbstest/lbstestproduct/agpshaivalidate/lbsagpshaivalidate/group
+/os/lbs/lbstest/lbstestproduct/agpshaivalidate/lbsagpshaivalidate/inc
+/os/lbs/lbstest/lbstestproduct/agpshaivalidate/lbsagpshaivalidate/scripts
+/os/lbs/lbstest/lbstestproduct/agpshaivalidate/lbsagpshaivalidate/src
+/os/lbs/lbstest/lbstestproduct/agpshaivalidate/lbsagpshaivalidate/testdata
+/os/lbs/lbstest/lbstestproduct/agpshaivalidate/testdriver/LbsAGPSHAIValidationSuite/LbsAGPSHAIValidationSuite_Assisted/TestExecuteServers
+/os/lbs/lbstest/lbstestproduct/agpshaivalidate/testdriver/LbsAGPSHAIValidationSuite/LbsAGPSHAIValidationSuite_Autonomous/TestExecuteServers
+/os/lbs/lbstest/lbstestproduct/agpshybridmodule/group
+/os/lbs/lbstest/lbstestproduct/agpshybridmodule/inc
+/os/lbs/lbstest/lbstestproduct/agpshybridmodule/src
+/os/lbs/lbstest/lbstestproduct/agpshybridmodule/test/group
+/os/lbs/lbstest/lbstestproduct/agpshybridmodule/test/te_agpshybridmodule/group
+/os/lbs/lbstest/lbstestproduct/agpshybridmodule/test/te_agpshybridmodule/inc
+/os/lbs/lbstest/lbstestproduct/agpshybridmodule/test/te_agpshybridmodule/scripts
+/os/lbs/lbstest/lbstestproduct/agpshybridmodule/test/te_agpshybridmodule/src
+/os/lbs/lbstest/lbstestproduct/agpshybridmodule/test/te_agpshybridmodule/testdata
+/os/lbs/lbstest/lbstestproduct/agpshybridmodule/testdata
+/os/lbs/lbstest/lbstestproduct/agpsmodule/BWINS
+/os/lbs/lbstest/lbstestproduct/agpsmodule/group
+/os/lbs/lbstest/lbstestproduct/agpsmodule/inc
+/os/lbs/lbstest/lbstestproduct/agpsmodule/src
+/os/lbs/lbstest/lbstestproduct/common/group
+/os/lbs/lbstest/lbstestproduct/common/inc
+/os/lbs/lbstest/lbstestproduct/common/scripts
+/os/lbs/lbstest/lbstestproduct/common/src
+/os/lbs/lbstest/lbstestproduct/common/testdata
+/os/lbs/lbstest/lbstestproduct/documentation
+/os/lbs/lbstest/lbstestproduct/extendedprotocolmodule/bwins
+/os/lbs/lbstest/lbstestproduct/extendedprotocolmodule/eabi
+/os/lbs/lbstest/lbstestproduct/extendedprotocolmodule/group
+/os/lbs/lbstest/lbstestproduct/extendedprotocolmodule/lbsnetextendedprotocolproxy/inc
+/os/lbs/lbstest/lbstestproduct/extendedprotocolmodule/lbsnetextendedprotocolproxy/src
+/os/lbs/lbstest/lbstestproduct/extendedprotocolmodule/lbsnetextendedprotocolproxy/test/group
+/os/lbs/lbstest/lbstestproduct/extendedprotocolmodule/lbsnetextendedprotocolproxy/test/scripts
+/os/lbs/lbstest/lbstestproduct/extendedprotocolmodule/lbsnetextendedprotocolproxy/test/src
+/os/lbs/lbstest/lbstestproduct/extendedprotocolmodule/lbsnetextendedprotocolproxy/test/testdata
+/os/lbs/lbstest/lbstestproduct/extendedprotocolmodule/lbsnetextendedprotocolstub/inc
+/os/lbs/lbstest/lbstestproduct/extendedprotocolmodule/lbsnetextendedprotocolstub/src
+/os/lbs/lbstest/lbstestproduct/extendedprotocolmodule/lbsnetextendedprotocolstub/test/group
+/os/lbs/lbstest/lbstestproduct/extendedprotocolmodule/lbsnetextendedprotocolstub/test/src
+/os/lbs/lbstest/lbstestproduct/group
+/os/lbs/lbstest/lbstestproduct/hybridprotocolmodule/bwins
+/os/lbs/lbstest/lbstestproduct/hybridprotocolmodule/eabi
+/os/lbs/lbstest/lbstestproduct/hybridprotocolmodule/getafixutils/inc
+/os/lbs/lbstest/lbstestproduct/hybridprotocolmodule/getafixutils/src
+/os/lbs/lbstest/lbstestproduct/hybridprotocolmodule/getafixutils/test
+/os/lbs/lbstest/lbstestproduct/hybridprotocolmodule/group
+/os/lbs/lbstest/lbstestproduct/hybridprotocolmodule/lbsnetprotocolproxy/inc
+/os/lbs/lbstest/lbstestproduct/hybridprotocolmodule/lbsnetprotocolproxy/src
+/os/lbs/lbstest/lbstestproduct/hybridprotocolmodule/lbsnetprotocolproxy/test/group
+/os/lbs/lbstest/lbstestproduct/hybridprotocolmodule/lbsnetprotocolproxy/test/scripts
+/os/lbs/lbstest/lbstestproduct/hybridprotocolmodule/lbsnetprotocolproxy/test/src
+/os/lbs/lbstest/lbstestproduct/hybridprotocolmodule/lbsnetprotocolproxy/test/testdata
+/os/lbs/lbstest/lbstestproduct/hybridprotocolmodule/lbsnetprotocolstub/inc
+/os/lbs/lbstest/lbstestproduct/hybridprotocolmodule/lbsnetprotocolstub/src
+/os/lbs/lbstest/lbstestproduct/hybridprotocolmodule/lbsnetprotocolstub/test/group
+/os/lbs/lbstest/lbstestproduct/hybridprotocolmodule/lbsnetprotocolstub/test/src
+/os/lbs/lbstest/lbstestproduct/lbsassdata/group
+/os/lbs/lbstest/lbstestproduct/lbsassdata/inc
+/os/lbs/lbstest/lbstestproduct/lbsassdata/scripts
+/os/lbs/lbstest/lbstestproduct/lbsassdata/src
+/os/lbs/lbstest/lbstestproduct/lbsassdata/testdata
+/os/lbs/lbstest/lbstestproduct/lbsbackuprestore/group
+/os/lbs/lbstest/lbstestproduct/lbsbackuprestore/inc
+/os/lbs/lbstest/lbstestproduct/lbsbackuprestore/scripts
+/os/lbs/lbstest/lbstestproduct/lbsbackuprestore/src
+/os/lbs/lbstest/lbstestproduct/lbsbackuprestore/testdata
+/os/lbs/lbstest/lbstestproduct/lbscalculation/group
+/os/lbs/lbstest/lbstestproduct/lbscalculation/inc
+/os/lbs/lbstest/lbstestproduct/lbscalculation/scripts
+/os/lbs/lbstest/lbstestproduct/lbscalculation/src
+/os/lbs/lbstest/lbstestproduct/lbscalculation/testdata
+/os/lbs/lbstest/lbstestproduct/lbsclient/group
+/os/lbs/lbstest/lbstestproduct/lbsclient/inc
+/os/lbs/lbstest/lbstestproduct/lbsclient/lbsexeclient/group
+/os/lbs/lbstest/lbstestproduct/lbsclient/lbsexeclient/src
+/os/lbs/lbstest/lbstestproduct/lbsclient/scripts
+/os/lbs/lbstest/lbstestproduct/lbsclient/src
+/os/lbs/lbstest/lbstestproduct/lbsclient/testdata
+/os/lbs/lbstest/lbstestproduct/lbsclock/group
+/os/lbs/lbstest/lbstestproduct/lbsclock/inc
+/os/lbs/lbstest/lbstestproduct/lbsclock/scripts
+/os/lbs/lbstest/lbstestproduct/lbsclock/src
+/os/lbs/lbstest/lbstestproduct/lbsclock/testdata
+/os/lbs/lbstest/lbstestproduct/lbsconflict/group
+/os/lbs/lbstest/lbstestproduct/lbsconflict/inc
+/os/lbs/lbstest/lbstestproduct/lbsconflict/scripts
+/os/lbs/lbstest/lbstestproduct/lbsconflict/src
+/os/lbs/lbstest/lbstestproduct/lbsconflict/testdata
+/os/lbs/lbstest/lbstestproduct/lbsextendedmtlr/group
+/os/lbs/lbstest/lbstestproduct/lbsextendedmtlr/inc
+/os/lbs/lbstest/lbstestproduct/lbsextendedmtlr/scripts
+/os/lbs/lbstest/lbstestproduct/lbsextendedmtlr/src
+/os/lbs/lbstest/lbstestproduct/lbsextendedmtlr/testdata
+/os/lbs/lbstest/lbstestproduct/lbsfeatures/group
+/os/lbs/lbstest/lbstestproduct/lbsfeatures/inc
+/os/lbs/lbstest/lbstestproduct/lbsfeatures/scripts
+/os/lbs/lbstest/lbstestproduct/lbsfeatures/src
+/os/lbs/lbstest/lbstestproduct/lbshybridconflict/group
+/os/lbs/lbstest/lbstestproduct/lbshybridconflict/inc
+/os/lbs/lbstest/lbstestproduct/lbshybridconflict/src
+/os/lbs/lbstest/lbstestproduct/lbshybridmolr/documentation/graphviz
+/os/lbs/lbstest/lbstestproduct/lbshybridmolr/group
+/os/lbs/lbstest/lbstestproduct/lbshybridmolr/inc
+/os/lbs/lbstest/lbstestproduct/lbshybridmolr/scripts
+/os/lbs/lbstest/lbstestproduct/lbshybridmolr/src
+/os/lbs/lbstest/lbstestproduct/lbshybridmolr/testdata
+/os/lbs/lbstest/lbstestproduct/lbshybridmtlr/documentation/graphviz
+/os/lbs/lbstest/lbstestproduct/lbshybridmtlr/group
+/os/lbs/lbstest/lbstestproduct/lbshybridmtlr/inc
+/os/lbs/lbstest/lbstestproduct/lbshybridmtlr/scripts
+/os/lbs/lbstest/lbstestproduct/lbshybridmtlr/src
+/os/lbs/lbstest/lbstestproduct/lbshybridmtlr/testdata
+/os/lbs/lbstest/lbstestproduct/lbshybridx3p/documentation/graphviz
+/os/lbs/lbstest/lbstestproduct/lbshybridx3p/group
+/os/lbs/lbstest/lbstestproduct/lbshybridx3p/inc
+/os/lbs/lbstest/lbstestproduct/lbshybridx3p/scripts
+/os/lbs/lbstest/lbstestproduct/lbshybridx3p/src
+/os/lbs/lbstest/lbstestproduct/lbshybridx3p/testdata
+/os/lbs/lbstest/lbstestproduct/lbsmaths/group
+/os/lbs/lbstest/lbstestproduct/lbsmaths/inc
+/os/lbs/lbstest/lbstestproduct/lbsmaths/scripts
+/os/lbs/lbstest/lbstestproduct/lbsmaths/src
+/os/lbs/lbstest/lbstestproduct/lbsmaths/testdata
+/os/lbs/lbstest/lbstestproduct/lbsmtlr/group
+/os/lbs/lbstest/lbstestproduct/lbsmtlr/inc
+/os/lbs/lbstest/lbstestproduct/lbsmtlr/scripts
+/os/lbs/lbstest/lbstestproduct/lbsmtlr/src
+/os/lbs/lbstest/lbstestproduct/lbsmtlr/testdata
+/os/lbs/lbstest/lbstestproduct/lbsprivacyfw/group
+/os/lbs/lbstest/lbstestproduct/lbsprivacyfw/lbsprivfwnotifier/group
+/os/lbs/lbstest/lbstestproduct/lbsprivacyfw/lbsprivfwnotifier/inc
+/os/lbs/lbstest/lbstestproduct/lbsprivacyfw/lbsprivfwnotifier/src
+/os/lbs/lbstest/lbstestproduct/lbsprivacyfw/lbsprivfwproxy/bwins
+/os/lbs/lbstest/lbstestproduct/lbsprivacyfw/lbsprivfwproxy/eabi
+/os/lbs/lbstest/lbstestproduct/lbsprivacyfw/lbsprivfwproxy/group
+/os/lbs/lbstest/lbstestproduct/lbsprivacyfw/lbsprivfwproxy/inc
+/os/lbs/lbstest/lbstestproduct/lbsprivacyfw/lbsprivfwproxy/src
+/os/lbs/lbstest/lbstestproduct/lbsprivacyfw/lbsprivfwtest/group
+/os/lbs/lbstest/lbstestproduct/lbsprivacyfw/lbsprivfwtest/inc
+/os/lbs/lbstest/lbstestproduct/lbsprivacyfw/lbsprivfwtest/scripts
+/os/lbs/lbstest/lbstestproduct/lbsprivacyfw/lbsprivfwtest/src
+/os/lbs/lbstest/lbstestproduct/lbsprivacyfw/lbsprivfwtest/testdata
+/os/lbs/lbstest/lbstestproduct/lbsprivacyfw/lbsprivfwtestchannel/bwins
+/os/lbs/lbstest/lbstestproduct/lbsprivacyfw/lbsprivfwtestchannel/eabi
+/os/lbs/lbstest/lbstestproduct/lbsprivacyfw/lbsprivfwtestchannel/group
+/os/lbs/lbstest/lbstestproduct/lbsprivacyfw/lbsprivfwtestchannel/inc
+/os/lbs/lbstest/lbstestproduct/lbsprivacyfw/lbsprivfwtestchannel/src
+/os/lbs/lbstest/lbstestproduct/lbsprivacyfw/lbsprivfwtestchannel/test/group
+/os/lbs/lbstest/lbstestproduct/lbsprivacyfw/lbsprivfwtestchannel/test/scripts
+/os/lbs/lbstest/lbstestproduct/lbsprivacyfw/lbsprivfwtestchannel/test/src
+/os/lbs/lbstest/lbstestproduct/lbsprivacyfw/lbsprivfwtestchannel/test/testdata
+/os/lbs/lbstest/lbstestproduct/lbsprivacyfw/lbstestprivacycontroller/group
+/os/lbs/lbstest/lbstestproduct/lbsprivacyfw/lbstestprivacycontroller/inc
+/os/lbs/lbstest/lbstestproduct/lbsprivacyfw/lbstestprivacycontroller/src
+/os/lbs/lbstest/lbstestproduct/lbsprivacyfw/lbstestprivacycontrollersimple/group
+/os/lbs/lbstest/lbstestproduct/lbsprivacyfw/lbstestprivacycontrollersimple/inc
+/os/lbs/lbstest/lbstestproduct/lbsprivacyfw/lbstestprivacycontrollersimple/src
+/os/lbs/lbstest/lbstestproduct/lbsptbmtlr/group
+/os/lbs/lbstest/lbstestproduct/lbsptbmtlr/inc
+/os/lbs/lbstest/lbstestproduct/lbsptbmtlr/scripts
+/os/lbs/lbstest/lbstestproduct/lbsptbmtlr/src
+/os/lbs/lbstest/lbstestproduct/lbsptbmtlr/testdata
+/os/lbs/lbstest/lbstestproduct/lbssimulationpsy/group
+/os/lbs/lbstest/lbstestproduct/lbssimulationpsy/inc
+/os/lbs/lbstest/lbstestproduct/lbssimulationpsy/scripts
+/os/lbs/lbstest/lbstestproduct/lbssimulationpsy/src
+/os/lbs/lbstest/lbstestproduct/lbssimulationpsy/testdata
+/os/lbs/lbstest/lbstestproduct/lbstestchannel/BWINS
+/os/lbs/lbstest/lbstestproduct/lbstestchannel/EABI
+/os/lbs/lbstest/lbstestproduct/lbstestchannel/group
+/os/lbs/lbstest/lbstestproduct/lbstestchannel/inc
+/os/lbs/lbstest/lbstestproduct/lbstestchannel/src
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/common/inc
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/common/src
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/dyndbtestpsy/cenrep
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/dyndbtestpsy/group
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/dyndbtestpsy/resource
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/dyndbtestpsy/src
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/group
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/installpsytp273/cenrep
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/installpsytp273/group
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/installpsytp273/resource
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/installpsytp273/src
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/installtestpsy/cenrep
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/installtestpsy/group
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/installtestpsy/inc
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/installtestpsy/resource
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/multipsy/cenrep
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/multipsy/group
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/multipsy/inc
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/multipsy/resource
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/multipsy/src
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/panicpsy/cenrep
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/panicpsy/group
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/panicpsy/resource
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/panicpsy/src
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/rom
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/satinfopsy/cenrep
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/satinfopsy/group
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/satinfopsy/inc
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/satinfopsy/resource
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/satinfopsy/src
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/stubpositioner/cenrep
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/stubpositioner/group
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/stubpositioner/resource
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/stubpositioner/src
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testproxypsy1/cenrep
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testproxypsy1/group
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testproxypsy1/inc
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testproxypsy1/resource
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testproxypsy1/src
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testproxypsy2/cenrep
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testproxypsy2/group
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testproxypsy2/inc
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testproxypsy2/resource
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testproxypsy2/src
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testproxypsy3/cenrep
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testproxypsy3/group
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testproxypsy3/inc
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testproxypsy3/resource
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testproxypsy3/src
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testproxypsy4/cenrep
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testproxypsy4/group
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testproxypsy4/inc
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testproxypsy4/resource
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testproxypsy4/src
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testpsy1/cenrep
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testpsy1/group
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testpsy1/inc
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testpsy1/resource
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testpsy11/cenrep
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testpsy11/group
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testpsy11/resource
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testpsy11/src
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testpsy12/cenrep
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testpsy12/group
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testpsy12/inc
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testpsy12/resource
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testpsy2/cenrep
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testpsy2/group
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testpsy2/inc
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testpsy2/resource
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testpsy256/cenrep
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testpsy256/group
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testpsy256/resource
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testpsy256/src
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testpsy3/cenrep
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testpsy3/group
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testpsy3/inc
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testpsy3/resource
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testpsy4/cenrep
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testpsy4/group
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testpsy4/inc
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testpsy4/resource
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testpsy5/cenrep
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testpsy5/group
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testpsy5/inc
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testpsy5/resource
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testpsy6/cenrep
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testpsy6/group
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testpsy6/inc
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testpsy6/resource
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testpsy9/cenrep
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testpsy9/group
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testpsy9/inc
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testpsy9/resource
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testpsymaxage/cenrep
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testpsymaxage/group
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testpsymaxage/resource
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testpsymaxage/src
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testpsypartialupdate/cenrep
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testpsypartialupdate/group
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testpsypartialupdate/resource
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testpsypartialupdate/src
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testpsypartialupdate2/cenrep
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testpsypartialupdate2/group
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testpsypartialupdate2/resource
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testpsypartialupdate2/src
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testpsysimulateisa/cenrep
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testpsysimulateisa/group
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testpsysimulateisa/resource
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testpsysimulateisa/src
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testpsytp176/cenrep
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testpsytp176/group
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testpsytp176/resource
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testpsytp176/src
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testrangepsy/cenrep
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testrangepsy/group
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testrangepsy/inc
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testrangepsy/resource
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testsingpsy/cenrep
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testsingpsy/group
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testsingpsy/inc
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testsingpsy/resource
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testsingpsy/src
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/teststatuspsy/cenrep
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/teststatuspsy/group
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/teststatuspsy/resource
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/teststatuspsy/src
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testtimerpsy/cenrep
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testtimerpsy/group
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testtimerpsy/resource
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testtimerpsy/src
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testtrackingpsy/cenrep
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testtrackingpsy/group
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testtrackingpsy/resource
+/os/lbs/lbstest/lbstestproduct/lbstestpsys/testtrackingpsy/src
+/os/lbs/lbstest/lbstestproduct/lbstestutils/BWINS
+/os/lbs/lbstest/lbstestproduct/lbstestutils/EABI
+/os/lbs/lbstest/lbstestproduct/lbstestutils/group
+/os/lbs/lbstest/lbstestproduct/lbstestutils/inc
+/os/lbs/lbstest/lbstestproduct/lbstestutils/src
+/os/lbs/lbstest/lbstestproduct/lbsx3p/group
+/os/lbs/lbstest/lbstestproduct/lbsx3p/inc
+/os/lbs/lbstest/lbstestproduct/lbsx3p/scripts
+/os/lbs/lbstest/lbstestproduct/lbsx3p/src
+/os/lbs/lbstest/lbstestproduct/lbsx3p/testdata
+/os/lbs/lbstest/lbstestproduct/s60privacyfw/LcfFIPrivacyNotifier_1_0_ECom/Controller/BWINS
+/os/lbs/lbstest/lbstestproduct/s60privacyfw/LcfFIPrivacyNotifier_1_0_ECom/Controller/EABI
+/os/lbs/lbstest/lbstestproduct/s60privacyfw/LcfFIPrivacyNotifier_1_0_ECom/Controller/group
+/os/lbs/lbstest/lbstestproduct/s60privacyfw/LcfFIPrivacyNotifier_1_0_ECom/Controller/inc
+/os/lbs/lbstest/lbstestproduct/s60privacyfw/LcfFIPrivacyNotifier_1_0_ECom/Controller/src
+/os/lbs/lbstest/lbstestproduct/s60privacyfw/LcfFIPrivacyNotifier_1_0_ECom/Notifier/group
+/os/lbs/lbstest/lbstestproduct/s60privacyfw/LcfFIPrivacyNotifier_1_0_ECom/Notifier/inc
+/os/lbs/lbstest/lbstestproduct/s60privacyfw/LcfFIPrivacyNotifier_1_0_ECom/Notifier/src
+/os/lbs/lbstest/lbstestproduct/s60privacyfw/Td_PrivFW_TEF/group
+/os/lbs/lbstest/lbstestproduct/s60privacyfw/Td_PrivFW_TEF/inc
+/os/lbs/lbstest/lbstestproduct/s60privacyfw/Td_PrivFW_TEF/scripts
+/os/lbs/lbstest/lbstestproduct/s60privacyfw/Td_PrivFW_TEF/src
+/os/lbs/lbstest/lbstestproduct/s60privacyfw/Td_PrivFW_TEF/testdata
+/os/lbs/lbstest/lbstestproduct/s60privacyfw/group
+/os/lbs/lbstest/lbstestproduct/supl/common/inc
+/os/lbs/lbstest/lbstestproduct/supl/common/src
+/os/lbs/lbstest/lbstestproduct/supl/group
+/os/lbs/lbstest/lbstestproduct/supl/molr/real/cellbased/inc
+/os/lbs/lbstest/lbstestproduct/supl/molr/real/cellbased/src
+/os/lbs/lbstest/lbstestproduct/supl/molr/real/group
+/os/lbs/lbstest/lbstestproduct/supl/molr/real/scripts
+/os/lbs/lbstest/lbstestproduct/supl/molr/real/server/inc
+/os/lbs/lbstest/lbstestproduct/supl/molr/real/server/src
+/os/lbs/lbstest/lbstestproduct/supl/molr/real/terminalassisted/inc
+/os/lbs/lbstest/lbstestproduct/supl/molr/real/terminalassisted/src
+/os/lbs/lbstest/lbstestproduct/supl/molr/real/terminalbased/inc
+/os/lbs/lbstest/lbstestproduct/supl/molr/real/terminalbased/src
+/os/lbs/lbstest/lbstestproduct/supl/molr/simulation/autonomous/inc
+/os/lbs/lbstest/lbstestproduct/supl/molr/simulation/autonomous/src
+/os/lbs/lbstest/lbstestproduct/supl/molr/simulation/cellbased/inc
+/os/lbs/lbstest/lbstestproduct/supl/molr/simulation/cellbased/src
+/os/lbs/lbstest/lbstestproduct/supl/molr/simulation/group
+/os/lbs/lbstest/lbstestproduct/supl/molr/simulation/scripts
+/os/lbs/lbstest/lbstestproduct/supl/molr/simulation/server/inc
+/os/lbs/lbstest/lbstestproduct/supl/molr/simulation/server/src
+/os/lbs/lbstest/lbstestproduct/supl/molr/simulation/terminalassisted/inc
+/os/lbs/lbstest/lbstestproduct/supl/molr/simulation/terminalassisted/src
+/os/lbs/lbstest/lbstestproduct/supl/molr/simulation/terminalbased/inc
+/os/lbs/lbstest/lbstestproduct/supl/molr/simulation/terminalbased/src
+/os/lbs/lbstest/lbstestproduct/supl/molr/simulation/testdata
+/os/lbs/lbstest/lbstestproduct/supl/mtlr/real/group
+/os/lbs/lbstest/lbstestproduct/supl/mtlr/real/scripts
+/os/lbs/lbstest/lbstestproduct/supl/mtlr/real/server/inc
+/os/lbs/lbstest/lbstestproduct/supl/mtlr/real/server/src
+/os/lbs/lbstest/lbstestproduct/supl/mtlr/real/terminalassisted/inc
+/os/lbs/lbstest/lbstestproduct/supl/mtlr/real/terminalassisted/src
+/os/lbs/lbstest/lbstestproduct/supl/mtlr/real/terminalbased/inc
+/os/lbs/lbstest/lbstestproduct/supl/mtlr/real/terminalbased/src
+/os/lbs/lbstest/lbstestproduct/supl/mtlr/real/testdata
+/os/lbs/lbstest/lbstestproduct/supl/mtlr/simulation/cellbased/inc
+/os/lbs/lbstest/lbstestproduct/supl/mtlr/simulation/cellbased/src
+/os/lbs/lbstest/lbstestproduct/supl/mtlr/simulation/group
+/os/lbs/lbstest/lbstestproduct/supl/mtlr/simulation/scripts
+/os/lbs/lbstest/lbstestproduct/supl/mtlr/simulation/server/inc
+/os/lbs/lbstest/lbstestproduct/supl/mtlr/simulation/server/src
+/os/lbs/lbstest/lbstestproduct/supl/mtlr/simulation/terminalassisted/inc
+/os/lbs/lbstest/lbstestproduct/supl/mtlr/simulation/terminalassisted/src
+/os/lbs/lbstest/lbstestproduct/supl/mtlr/simulation/terminalbased/inc
+/os/lbs/lbstest/lbstestproduct/supl/mtlr/simulation/terminalbased/src
+/os/lbs/lbstest/lbstestproduct/supl/mtlr/simulation/testdata
+/os/lbs/lbstest/lbstestproduct/supl/omaconformance/group
+/os/lbs/lbstest/lbstestproduct/supl/omaconformance/inc
+/os/lbs/lbstest/lbstestproduct/supl/omaconformance/scripts
+/os/lbs/lbstest/lbstestproduct/supl/omaconformance/src
+/os/lbs/lbstest/lbstestproduct/supl/omaconformance/testdata
+/os/lbs/lbstest/lbstestproduct/supl/tools/mlpmodule/bwins
+/os/lbs/lbstest/lbstestproduct/supl/tools/mlpmodule/eabi
+/os/lbs/lbstest/lbstestproduct/supl/tools/mlpmodule/group
+/os/lbs/lbstest/lbstestproduct/supl/tools/mlpmodule/inc
+/os/lbs/lbstest/lbstestproduct/supl/tools/mlpmodule/src
+/os/lbs/lbstest/lbstestproduct/supl/tools/suplutils/BWINS
+/os/lbs/lbstest/lbstestproduct/supl/tools/suplutils/EABI
+/os/lbs/lbstest/lbstestproduct/supl/tools/suplutils/group
+/os/lbs/lbstest/lbstestproduct/supl/tools/suplutils/inc
+/os/lbs/lbstest/lbstestproduct/supl/tools/suplutils/src
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/asn1/asn1
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/asn1/inc
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/asn1/src
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/common/inc
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/common/src
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/group
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/spmcontroller/client/bwins
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/spmcontroller/client/eabi
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/spmcontroller/client/group
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/spmcontroller/client/inc
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/spmcontroller/client/src
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/spmcontroller/group
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/spmcontroller/server/group
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/spmcontroller/server/inc
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/spmcontroller/server/src
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/spmcontroller/test/group
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/spmcontroller/test/inc
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/spmcontroller/test/scripts
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/spmcontroller/test/src
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/supltmg/bwins
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/supltmg/core/inc
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/supltmg/core/src
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/supltmg/core/test/group
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/supltmg/core/test/inc
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/supltmg/core/test/scripts
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/supltmg/core/test/src
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/supltmg/crypto/inc
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/supltmg/crypto/src
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/supltmg/crypto/test/group
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/supltmg/crypto/test/inc
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/supltmg/crypto/test/scripts
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/supltmg/crypto/test/src
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/supltmg/eabi
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/supltmg/group
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/supltmg/message/inc
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/supltmg/message/src
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/supltmg/message/test/group
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/supltmg/message/test/inc
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/supltmg/message/test/scripts
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/supltmg/message/test/src
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/supltmg/mlpinterpreter/inc
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/supltmg/mlpinterpreter/src
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/supltmg/mlpinterpreter/test/group
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/supltmg/mlpinterpreter/test/inc
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/supltmg/mlpinterpreter/test/scripts
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/supltmg/mlpinterpreter/test/src
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/supltmg/network/inc
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/supltmg/network/src
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/supltmg/network/test/group
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/supltmg/network/test/inc
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/supltmg/network/test/scripts
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/supltmg/network/test/src
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/supltmgpacket/bwins
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/supltmgpacket/eabi
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/supltmgpacket/group
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/supltmgpacket/inc
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/supltmgpacket/src
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/supltmgpacket/test/group
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/supltmgpacket/test/inc
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/supltmgpacket/test/scripts
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/supltmgpacket/test/src
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/supltpc/bwins
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/supltpc/eabi
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/supltpc/group
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/supltpc/inc
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/supltpc/src
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/supltpc/test/group
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/supltpc/test/inc
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/supltpc/test/scripts
+/os/lbs/lbstest/lbstestproduct/supl/tools/tmg/supltpc/test/src
+/os/unref/orphan/comgen/LBS/tools/asn1/bin
+/os/unref/orphan/comgen/LBS/tools/asn1/cpp_symbian/build_gcce
+/os/unref/orphan/comgen/LBS/tools/asn1/cpp_symbian/bwins
+/os/unref/orphan/comgen/LBS/tools/asn1/cpp_symbian/eabi
+/os/unref/orphan/comgen/LBS/tools/asn1/cpp_symbian/group
+/os/unref/orphan/comgen/LBS/tools/asn1/cpp_symbian/lib
+/os/unref/orphan/comgen/LBS/tools/asn1/cpp_symbian/rtpersrc
+/os/unref/orphan/comgen/LBS/tools/asn1/cpp_symbian/rtsrc
+/os/unref/orphan/comgen/LBS/tools/asn1/cpp_symbian/sample_per/employee
+/os/unref/orphan/comgen/LBS/tools/asn1/doc
+/os/unref/orphan/comgen/LBS/tools/asn1/rtpersrc
+/os/unref/orphan/comgen/LBS/tools/asn1/rtsrc
+/os/unref/orphan/comgen/LBS/tools/asn1/rtxsrc
+/os/unref/orphan/comgen/LBS/tools/asn1/scripts
+/os/unref/orphan/comgen/LBS/tools/asn1/utils
+/app/techview/sysvalidation/systemtestos/AppEngines/Contacts/TestData/VCard
+/app/techview/sysvalidation/systemtestos/AppEngines/Contacts/TestDriver
+/app/techview/sysvalidation/systemtestos/AppEngines/Contacts/documentation
+/app/techview/sysvalidation/systemtestos/AppEngines/Contacts/group
+/app/techview/sysvalidation/systemtestos/AppEngines/Contacts/inc
+/app/techview/sysvalidation/systemtestos/AppEngines/Contacts/pkg
+/app/techview/sysvalidation/systemtestos/AppEngines/Contacts/scripts
+/app/techview/sysvalidation/systemtestos/AppEngines/Contacts/src
+/app/techview/sysvalidation/systemtestos/AppEngines/agenda/Documentation
+/app/techview/sysvalidation/systemtestos/AppEngines/agenda/Group
+/app/techview/sysvalidation/systemtestos/AppEngines/agenda/Inc
+/app/techview/sysvalidation/systemtestos/AppEngines/agenda/Scripts
+/app/techview/sysvalidation/systemtestos/AppEngines/agenda/Src
+/app/techview/sysvalidation/systemtestos/AppEngines/agenda/TestData/attachtestdata
+/app/techview/sysvalidation/systemtestos/AppEngines/agenda/TestDriver
+/app/techview/sysvalidation/systemtestos/AppEngines/agenda/UCC
+/app/techview/sysvalidation/systemtestos/AppEngines/agenda/UCCAgendaService/AgendaService/inc
+/app/techview/sysvalidation/systemtestos/AppEngines/agenda/UCCAgendaService/AgendaService/src
+/app/techview/sysvalidation/systemtestos/AppEngines/agenda/UCCAgendaService/MailService/Ini
+/app/techview/sysvalidation/systemtestos/AppEngines/agenda/UCCAgendaService/MailService/Src
+/app/techview/sysvalidation/systemtestos/AppEngines/agenda/UCCAgendaService/MailService/TestData
+/app/techview/sysvalidation/systemtestos/AppEngines/agenda/UCCAgendaService/bin/Debug
+/app/techview/sysvalidation/systemtestos/AppEngines/agenda/UCCAgendaService/bin/Release
+/app/techview/sysvalidation/systemtestos/AppEngines/agenda/UCCAgendaService/inc
+/app/techview/sysvalidation/systemtestos/AppEngines/agenda/UCCAgendaService/rpc
+/app/techview/sysvalidation/systemtestos/AppFramework/FEP/AppUi/BWINS
+/app/techview/sysvalidation/systemtestos/AppFramework/FEP/AppUi/EABI
+/app/techview/sysvalidation/systemtestos/AppFramework/FEP/AppUi/TestDriver
+/app/techview/sysvalidation/systemtestos/AppFramework/FEP/AppUi/group
+/app/techview/sysvalidation/systemtestos/AppFramework/FEP/AppUi/inc
+/app/techview/sysvalidation/systemtestos/AppFramework/FEP/AppUi/src
+/app/techview/sysvalidation/systemtestos/AppFramework/FEP/FEPServer/Documentation
+/app/techview/sysvalidation/systemtestos/AppFramework/FEP/FEPServer/Group
+/app/techview/sysvalidation/systemtestos/AppFramework/FEP/FEPServer/Inc
+/app/techview/sysvalidation/systemtestos/AppFramework/FEP/FEPServer/Scripts
+/app/techview/sysvalidation/systemtestos/AppFramework/FEP/FEPServer/Src
+/app/techview/sysvalidation/systemtestos/AppFramework/FEP/FEPServer/TestData
+/app/techview/sysvalidation/systemtestos/AppFramework/FEP/FEPServer/TestDriver
+/app/techview/sysvalidation/systemtestos/AppFramework/FEP/Group
+/app/techview/sysvalidation/systemtestos/AppFramework/FEP/TestFEP/bwins
+/app/techview/sysvalidation/systemtestos/AppFramework/FEP/TestFEP/group
+/app/techview/sysvalidation/systemtestos/AppFramework/FEP/TestFEP/inc
+/app/techview/sysvalidation/systemtestos/AppFramework/FEP/TestFEP/src
+/app/techview/sysvalidation/systemtestos/AppFramework/Uikon/Documentation
+/app/techview/sysvalidation/systemtestos/AppFramework/Uikon/ImageGallary/data
+/app/techview/sysvalidation/systemtestos/AppFramework/Uikon/ImageGallary/group
+/app/techview/sysvalidation/systemtestos/AppFramework/Uikon/ImageGallary/inc
+/app/techview/sysvalidation/systemtestos/AppFramework/Uikon/ImageGallary/src
+/app/techview/sysvalidation/systemtestos/AppFramework/Uikon/Scripts
+/app/techview/sysvalidation/systemtestos/AppFramework/Uikon/TestAppLocalise
+/app/techview/sysvalidation/systemtestos/AppFramework/Uikon/TestAppSplash/data
+/app/techview/sysvalidation/systemtestos/AppFramework/Uikon/TestAppSplash/group
+/app/techview/sysvalidation/systemtestos/AppFramework/Uikon/TestAppSplash/inc
+/app/techview/sysvalidation/systemtestos/AppFramework/Uikon/TestAppSplash/src
+/app/techview/sysvalidation/systemtestos/AppFramework/Uikon/TestData/Resource
+/app/techview/sysvalidation/systemtestos/AppFramework/Uikon/TestDriver
+/app/techview/sysvalidation/systemtestos/AppFramework/Uikon/TestSwitchApp/SwitchViewApp1/data
+/app/techview/sysvalidation/systemtestos/AppFramework/Uikon/TestSwitchApp/SwitchViewApp1/group
+/app/techview/sysvalidation/systemtestos/AppFramework/Uikon/TestSwitchApp/SwitchViewApp1/inc
+/app/techview/sysvalidation/systemtestos/AppFramework/Uikon/TestSwitchApp/SwitchViewApp1/src
+/app/techview/sysvalidation/systemtestos/AppFramework/Uikon/TestSwitchApp/SwitchViewApp2/data
+/app/techview/sysvalidation/systemtestos/AppFramework/Uikon/TestSwitchApp/SwitchViewApp2/group
+/app/techview/sysvalidation/systemtestos/AppFramework/Uikon/TestSwitchApp/SwitchViewApp2/inc
+/app/techview/sysvalidation/systemtestos/AppFramework/Uikon/TestSwitchApp/SwitchViewApp2/src
+/app/techview/sysvalidation/systemtestos/AppFramework/Uikon/TestUikonAnimation/BMARM
+/app/techview/sysvalidation/systemtestos/AppFramework/Uikon/TestUikonAnimation/EABI
+/app/techview/sysvalidation/systemtestos/AppFramework/Uikon/TestUikonAnimation/TestDriver
+/app/techview/sysvalidation/systemtestos/AppFramework/Uikon/TestUikonAnimation/bwins
+/app/techview/sysvalidation/systemtestos/AppFramework/Uikon/TestUikonAnimation/group
+/app/techview/sysvalidation/systemtestos/AppFramework/Uikon/TestUikonAnimation/inc
+/app/techview/sysvalidation/systemtestos/AppFramework/Uikon/TestUikonAnimation/src
+/app/techview/sysvalidation/systemtestos/AppFramework/Uikon/group
+/app/techview/sysvalidation/systemtestos/AppFramework/Uikon/inc
+/app/techview/sysvalidation/systemtestos/AppFramework/Uikon/src
+/app/techview/sysvalidation/systemtestos/AppProtocols/bookmark/group
+/app/techview/sysvalidation/systemtestos/AppProtocols/bookmark/inc
+/app/techview/sysvalidation/systemtestos/AppProtocols/bookmark/src
+/app/techview/sysvalidation/systemtestos/AppProtocols/http/Documentation
+/app/techview/sysvalidation/systemtestos/AppProtocols/http/Inc
+/app/techview/sysvalidation/systemtestos/AppProtocols/http/Scripts
+/app/techview/sysvalidation/systemtestos/AppProtocols/http/Src
+/app/techview/sysvalidation/systemtestos/AppProtocols/http/TestData
+/app/techview/sysvalidation/systemtestos/AppProtocols/http/TestDriver
+/app/techview/sysvalidation/systemtestos/AppProtocols/http/group
+/app/techview/sysvalidation/systemtestos/AppProtocols/systemtesthtmlplugin/data
+/app/techview/sysvalidation/systemtestos/AppProtocols/systemtesthtmlplugin/group
+/app/techview/sysvalidation/systemtestos/AppProtocols/systemtesthtmlplugin/inc
+/app/techview/sysvalidation/systemtestos/AppProtocols/systemtesthtmlplugin/src
+/app/techview/sysvalidation/systemtestos/AppServices/AlarmServer/Documentation
+/app/techview/sysvalidation/systemtestos/AppServices/AlarmServer/Scripts
+/app/techview/sysvalidation/systemtestos/AppServices/AlarmServer/TestData
+/app/techview/sysvalidation/systemtestos/AppServices/AlarmServer/TestDriver
+/app/techview/sysvalidation/systemtestos/AppServices/AlarmServer/group
+/app/techview/sysvalidation/systemtestos/AppServices/AlarmServer/inc
+/app/techview/sysvalidation/systemtestos/AppServices/AlarmServer/pkg
+/app/techview/sysvalidation/systemtestos/AppServices/AlarmServer/src
+/app/techview/sysvalidation/systemtestos/AppServices/tzserver/group
+/app/techview/sysvalidation/systemtestos/AppServices/tzserver/inc
+/app/techview/sysvalidation/systemtestos/AppServices/tzserver/scripts
+/app/techview/sysvalidation/systemtestos/AppServices/tzserver/src
+/app/techview/sysvalidation/systemtestos/AppServices/tzserver/testdata
+/app/techview/sysvalidation/systemtestos/AppServices/tzserver/testdriver
+/app/techview/sysvalidation/systemtestos/Base/DefragRam/Group
+/app/techview/sysvalidation/systemtestos/Base/DefragRam/Inc
+/app/techview/sysvalidation/systemtestos/Base/DefragRam/Ldd/Inc
+/app/techview/sysvalidation/systemtestos/Base/DefragRam/Ldd/Src
+/app/techview/sysvalidation/systemtestos/Base/DefragRam/Scripts
+/app/techview/sysvalidation/systemtestos/Base/DefragRam/Src
+/app/techview/sysvalidation/systemtestos/Base/DefragRam/TestData
+/app/techview/sysvalidation/systemtestos/Base/DefragRam/TestDriver
+/app/techview/sysvalidation/systemtestos/Base/FileStore/Documentation
+/app/techview/sysvalidation/systemtestos/Base/FileStore/FileUtil/Group
+/app/techview/sysvalidation/systemtestos/Base/FileStore/FileUtil/Inc
+/app/techview/sysvalidation/systemtestos/Base/FileStore/FileUtil/Src
+/app/techview/sysvalidation/systemtestos/Base/FileStore/FileUtil/TestDriver
+/app/techview/sysvalidation/systemtestos/Base/FileStore/Group
+/app/techview/sysvalidation/systemtestos/Base/FileStore/Inc
+/app/techview/sysvalidation/systemtestos/Base/FileStore/Src
+/app/techview/sysvalidation/systemtestos/Base/FileStore/TestData/Audio
+/app/techview/sysvalidation/systemtestos/Base/FileStore/TestData/Heavy
+/app/techview/sysvalidation/systemtestos/Base/FileStore/TestData/Large
+/app/techview/sysvalidation/systemtestos/Base/FileStore/TestData/Small
+/app/techview/sysvalidation/systemtestos/Base/FileStore/TestDriver
+/app/techview/sysvalidation/systemtestos/Base/FileStore/scripts
+/app/techview/sysvalidation/systemtestos/Base/HAL/Documentation
+/app/techview/sysvalidation/systemtestos/Base/HAL/Group
+/app/techview/sysvalidation/systemtestos/Base/HAL/Inc
+/app/techview/sysvalidation/systemtestos/Base/HAL/Scripts
+/app/techview/sysvalidation/systemtestos/Base/HAL/Src
+/app/techview/sysvalidation/systemtestos/Base/HAL/TestData
+/app/techview/sysvalidation/systemtestos/Base/HAL/TestDriver
+/app/techview/sysvalidation/systemtestos/Base/HAL/pkg
+/app/techview/sysvalidation/systemtestos/Base/TestAppUsb/MassStorageService/Release
+/app/techview/sysvalidation/systemtestos/Base/TestAppUsb/MassStorageService/inc
+/app/techview/sysvalidation/systemtestos/Base/TestAppUsb/MassStorageService/src
+/app/techview/sysvalidation/systemtestos/Base/TestAppUsb/TestData
+/app/techview/sysvalidation/systemtestos/Base/TestAppUsb/group
+/app/techview/sysvalidation/systemtestos/Base/TestAppUsb/inc
+/app/techview/sysvalidation/systemtestos/Base/TestAppUsb/src
+/app/techview/sysvalidation/systemtestos/Comms-Infras/CommDb/Group
+/app/techview/sysvalidation/systemtestos/Comms-Infras/CommDb/Inc
+/app/techview/sysvalidation/systemtestos/Comms-Infras/CommDb/Src
+/app/techview/sysvalidation/systemtestos/Comms-Infras/CommDb/TestDriver
+/app/techview/sysvalidation/systemtestos/Comms-Infras/CommDbUtil/EABI
+/app/techview/sysvalidation/systemtestos/Comms-Infras/CommDbUtil/Inc
+/app/techview/sysvalidation/systemtestos/Comms-Infras/CommDbUtil/Src
+/app/techview/sysvalidation/systemtestos/Comms-Infras/CommDbUtil/TestDriver
+/app/techview/sysvalidation/systemtestos/Comms-Infras/CommDbUtil/bwins
+/app/techview/sysvalidation/systemtestos/Comms-Infras/CommDbUtil/group
+/app/techview/sysvalidation/systemtestos/DemandPaging/documentation
+/app/techview/sysvalidation/systemtestos/DemandPaging/group
+/app/techview/sysvalidation/systemtestos/DemandPaging/inc
+/app/techview/sysvalidation/systemtestos/DemandPaging/scripts
+/app/techview/sysvalidation/systemtestos/DemandPaging/src
+/app/techview/sysvalidation/systemtestos/DemandPaging/testdata
+/app/techview/sysvalidation/systemtestos/DemandPaging/testdriver
+/app/techview/sysvalidation/systemtestos/Documentation
+/app/techview/sysvalidation/systemtestos/Graphics/Group
+/app/techview/sysvalidation/systemtestos/Graphics/Inc
+/app/techview/sysvalidation/systemtestos/Graphics/Scripts
+/app/techview/sysvalidation/systemtestos/Graphics/Src
+/app/techview/sysvalidation/systemtestos/Graphics/TestData/fonts
+/app/techview/sysvalidation/systemtestos/Graphics/TestData/mbmfolder/mbmfilefolder1
+/app/techview/sysvalidation/systemtestos/Graphics/TestData/mbmfolder/mbmfilefolder2
+/app/techview/sysvalidation/systemtestos/Graphics/TestData/mbmfolder/mbmfilefolder3
+/app/techview/sysvalidation/systemtestos/Graphics/TestData/mbmfolder/mbmfilefolder4
+/app/techview/sysvalidation/systemtestos/Graphics/TestData/mbmfolder/mbmfilefolder5
+/app/techview/sysvalidation/systemtestos/Graphics/TestDriver
+/app/techview/sysvalidation/systemtestos/Graphics/documentation
+/app/techview/sysvalidation/systemtestos/Graphics/nga/graphicsvideotestapp/group
+/app/techview/sysvalidation/systemtestos/Graphics/nga/graphicsvideotestapp/inc
+/app/techview/sysvalidation/systemtestos/Graphics/nga/graphicsvideotestapp/src
+/app/techview/sysvalidation/systemtestos/Graphics/nga/group
+/app/techview/sysvalidation/systemtestos/Graphics/nga/inc
+/app/techview/sysvalidation/systemtestos/Graphics/nga/scripts
+/app/techview/sysvalidation/systemtestos/Graphics/nga/src
+/app/techview/sysvalidation/systemtestos/Graphics/nga/testdata
+/app/techview/sysvalidation/systemtestos/Graphics/nga/testdriver
+/app/techview/sysvalidation/systemtestos/Group/9.4
+/app/techview/sysvalidation/systemtestos/Group/9.5
+/app/techview/sysvalidation/systemtestos/Group/9.6
+/app/techview/sysvalidation/systemtestos/Group/Scripts
+/app/techview/sysvalidation/systemtestos/Group/TestData
+/app/techview/sysvalidation/systemtestos/MTP/Testdata
+/app/techview/sysvalidation/systemtestos/Messaging/BURTestServer/armv5/udeb
+/app/techview/sysvalidation/systemtestos/Messaging/BURTestServer/armv5/urel
+/app/techview/sysvalidation/systemtestos/Messaging/BURTestServer/winscw/udeb
+/app/techview/sysvalidation/systemtestos/Messaging/BURTestServer/winscw/urel
+/app/techview/sysvalidation/systemtestos/Messaging/Group
+/app/techview/sysvalidation/systemtestos/Messaging/Inc
+/app/techview/sysvalidation/systemtestos/Messaging/Scripts
+/app/techview/sysvalidation/systemtestos/Messaging/Src
+/app/techview/sysvalidation/systemtestos/Messaging/TestData/Bio
+/app/techview/sysvalidation/systemtestos/Messaging/TestData/EMail
+/app/techview/sysvalidation/systemtestos/Messaging/TestData/Ems
+/app/techview/sysvalidation/systemtestos/Messaging/TestData/Mms
+/app/techview/sysvalidation/systemtestos/Messaging/TestData/Sms
+/app/techview/sysvalidation/systemtestos/Messaging/TestData/Ups
+/app/techview/sysvalidation/systemtestos/Messaging/TestData/multimedia
+/app/techview/sysvalidation/systemtestos/Messaging/TestData/policyfiles
+/app/techview/sysvalidation/systemtestos/Messaging/TestDriver
+/app/techview/sysvalidation/systemtestos/Messaging/component/testmessservnocap/Group
+/app/techview/sysvalidation/systemtestos/Messaging/component/testmessservnocap/Inc
+/app/techview/sysvalidation/systemtestos/Messaging/component/testmessservnocap/Src
+/app/techview/sysvalidation/systemtestos/Messaging/component/testupsdialogcreator/group
+/app/techview/sysvalidation/systemtestos/Messaging/component/testupsdialogcreator/inc
+/app/techview/sysvalidation/systemtestos/Messaging/component/testupsdialogcreator/src
+/app/techview/sysvalidation/systemtestos/Messaging/component/testupspolicies
+/app/techview/sysvalidation/systemtestos/Messaging/component/testupssendasapp/group
+/app/techview/sysvalidation/systemtestos/Messaging/component/testupssendasapp/inc
+/app/techview/sysvalidation/systemtestos/Messaging/component/testupssendasapp/src
+/app/techview/sysvalidation/systemtestos/Messaging/documentation
+/app/techview/sysvalidation/systemtestos/Multimedia/CustomMMF/Group
+/app/techview/sysvalidation/systemtestos/Multimedia/CustomMMF/Inc
+/app/techview/sysvalidation/systemtestos/Multimedia/CustomMMF/Src
+/app/techview/sysvalidation/systemtestos/Multimedia/CustomMMF/TestDriver
+/app/techview/sysvalidation/systemtestos/Multimedia/Documentation
+/app/techview/sysvalidation/systemtestos/Multimedia/MMCommon/Group
+/app/techview/sysvalidation/systemtestos/Multimedia/MMCommon/Inc
+/app/techview/sysvalidation/systemtestos/Multimedia/MMCommon/Scripts
+/app/techview/sysvalidation/systemtestos/Multimedia/MMCommon/Src
+/app/techview/sysvalidation/systemtestos/Multimedia/MMCommon/TestData/Audio
+/app/techview/sysvalidation/systemtestos/Multimedia/MMCommon/TestData/Images/DXF
+/app/techview/sysvalidation/systemtestos/Multimedia/MMCommon/TestData/Images/Gif
+/app/techview/sysvalidation/systemtestos/Multimedia/MMCommon/TestData/Images/Jpegs
+/app/techview/sysvalidation/systemtestos/Multimedia/MMCommon/TestData/Images/MBMs/24bitcolour
+/app/techview/sysvalidation/systemtestos/Multimedia/MMCommon/TestData/Images/PCX
+/app/techview/sysvalidation/systemtestos/Multimedia/MMCommon/TestData/Images/PNG
+/app/techview/sysvalidation/systemtestos/Multimedia/MMCommon/TestData/Images/Tif
+/app/techview/sysvalidation/systemtestos/Multimedia/MMCommon/TestData/Images/bmp
+/app/techview/sysvalidation/systemtestos/Multimedia/MMCommon/TestData/Images/cmp/bmp
+/app/techview/sysvalidation/systemtestos/Multimedia/MMCommon/TestData/Images/cmp/gif
+/app/techview/sysvalidation/systemtestos/Multimedia/MMCommon/TestData/Images/cmp/jpg
+/app/techview/sysvalidation/systemtestos/Multimedia/MMCommon/TestData/Images/cmp/mbm
+/app/techview/sysvalidation/systemtestos/Multimedia/MMCommon/TestData/Images/cmp/png
+/app/techview/sysvalidation/systemtestos/Multimedia/MMCommon/TestData/Images/ico
+/app/techview/sysvalidation/systemtestos/Multimedia/MMCommon/TestData/Images/jpgwithexif
+/app/techview/sysvalidation/systemtestos/Multimedia/MMCommon/TestData/Images/mng
+/app/techview/sysvalidation/systemtestos/Multimedia/MMCommon/TestData/Images/ota
+/app/techview/sysvalidation/systemtestos/Multimedia/MMCommon/TestData/Images/ref/exif
+/app/techview/sysvalidation/systemtestos/Multimedia/MMCommon/TestData/Images/ref/mng
+/app/techview/sysvalidation/systemtestos/Multimedia/MMCommon/TestData/Images/ref/yuv
+/app/techview/sysvalidation/systemtestos/Multimedia/MMCommon/TestData/Images/tiff
+/app/techview/sysvalidation/systemtestos/Multimedia/MMCommon/TestData/Images/wbmp
+/app/techview/sysvalidation/systemtestos/Multimedia/MMCommon/TestData/Images/wmf
+/app/techview/sysvalidation/systemtestos/Multimedia/MMCommon/TestData/email
+/app/techview/sysvalidation/systemtestos/Multimedia/MMCommon/TestData/video
+/app/techview/sysvalidation/systemtestos/Multimedia/MMCommon/TestDriver
+/app/techview/sysvalidation/systemtestos/Multimedia/MMCommon/systemtest_multimedia_iclapp/group
+/app/techview/sysvalidation/systemtestos/Multimedia/MMCommon/systemtest_multimedia_iclapp/inc
+/app/techview/sysvalidation/systemtestos/Multimedia/MMCommon/systemtest_multimedia_iclapp/src
+/app/techview/sysvalidation/systemtestos/Multimedia/MMCommon/systemtest_multimedia_mngapp/group
+/app/techview/sysvalidation/systemtestos/Multimedia/MMCommon/systemtest_multimedia_mngapp/inc
+/app/techview/sysvalidation/systemtestos/Multimedia/MMCommon/systemtest_multimedia_mngapp/src
+/app/techview/sysvalidation/systemtestos/Multimedia/MMCommon/systemtest_multimedia_plyapp/group
+/app/techview/sysvalidation/systemtestos/Multimedia/MMCommon/systemtest_multimedia_plyapp/inc
+/app/techview/sysvalidation/systemtestos/Multimedia/MMCommon/systemtest_multimedia_plyapp/src
+/app/techview/sysvalidation/systemtestos/Multimedia/MMCommon/systemtest_multimedia_recapp/group
+/app/techview/sysvalidation/systemtestos/Multimedia/MMCommon/systemtest_multimedia_recapp/inc
+/app/techview/sysvalidation/systemtestos/Multimedia/MMCommon/systemtest_multimedia_recapp/src
+/app/techview/sysvalidation/systemtestos/Multimedia/SoundSetup/Scripts
+/app/techview/sysvalidation/systemtestos/Multimedia/SoundSetup/TestData
+/app/techview/sysvalidation/systemtestos/Multimedia/SoundSetup/TestDriver
+/app/techview/sysvalidation/systemtestos/Multimedia/SoundSetup/group
+/app/techview/sysvalidation/systemtestos/Multimedia/SoundSetup/inc
+/app/techview/sysvalidation/systemtestos/Multimedia/SoundSetup/src
+/app/techview/sysvalidation/systemtestos/Multimedia/imageframework/documentation
+/app/techview/sysvalidation/systemtestos/Multimedia/imageframework/group
+/app/techview/sysvalidation/systemtestos/Multimedia/imageframework/inc
+/app/techview/sysvalidation/systemtestos/Multimedia/imageframework/scripts
+/app/techview/sysvalidation/systemtestos/Multimedia/imageframework/src
+/app/techview/sysvalidation/systemtestos/Multimedia/imageframework/testdata/images/panorama
+/app/techview/sysvalidation/systemtestos/Multimedia/imageframework/testdriver
+/app/techview/sysvalidation/systemtestos/Multimedia/mmfaudiostream/bwins
+/app/techview/sysvalidation/systemtestos/Multimedia/mmfaudiostream/eabi
+/app/techview/sysvalidation/systemtestos/Multimedia/mmfaudiostream/group
+/app/techview/sysvalidation/systemtestos/Multimedia/mmfaudiostream/inc
+/app/techview/sysvalidation/systemtestos/Multimedia/mmfaudiostream/src
+/app/techview/sysvalidation/systemtestos/Multimedia/muf/group
+/app/techview/sysvalidation/systemtestos/Multimedia/muf/inc
+/app/techview/sysvalidation/systemtestos/Multimedia/muf/scripts
+/app/techview/sysvalidation/systemtestos/Multimedia/muf/src
+/app/techview/sysvalidation/systemtestos/Multimedia/muf/testdata
+/app/techview/sysvalidation/systemtestos/Multimedia/muf/testdriver
+/app/techview/sysvalidation/systemtestos/Multimedia/muf/trialparser/group
+/app/techview/sysvalidation/systemtestos/Multimedia/muf/trialparser/src/parser
+/app/techview/sysvalidation/systemtestos/Multimedia/muf/trialparser/src/parser1
+/app/techview/sysvalidation/systemtestos/Multimedia/muf/trialparser/src/parser2
+/app/techview/sysvalidation/systemtestos/Multimedia/muf/trialparser/src/parser3
+/app/techview/sysvalidation/systemtestos/Multimedia/muf/trialparser/src/parser4
+/app/techview/sysvalidation/systemtestos/Multimedia/muf/trialparser/src/parser5
+/app/techview/sysvalidation/systemtestos/Multimedia/muf/trialparser/src/parser6
+/app/techview/sysvalidation/systemtestos/Multimedia/muf/trialparser/src/parser7
+/app/techview/sysvalidation/systemtestos/Multimedia/muf/trialparser/src/parser8
+/app/techview/sysvalidation/systemtestos/Multimedia/muf/trialparser/src/parser9
+/app/techview/sysvalidation/systemtestos/Networking/Documentation
+/app/techview/sysvalidation/systemtestos/Networking/FTP/Group
+/app/techview/sysvalidation/systemtestos/Networking/FTP/Inc
+/app/techview/sysvalidation/systemtestos/Networking/FTP/Scripts
+/app/techview/sysvalidation/systemtestos/Networking/FTP/Src
+/app/techview/sysvalidation/systemtestos/Networking/FTP/TestData
+/app/techview/sysvalidation/systemtestos/Networking/FTP/TestDriver
+/app/techview/sysvalidation/systemtestos/Networking/Group
+/app/techview/sysvalidation/systemtestos/Networking/PDP/Inc
+/app/techview/sysvalidation/systemtestos/Networking/PDP/Scripts
+/app/techview/sysvalidation/systemtestos/Networking/PDP/Src
+/app/techview/sysvalidation/systemtestos/Networking/PDP/TestData
+/app/techview/sysvalidation/systemtestos/Networking/PDP/TestDriver
+/app/techview/sysvalidation/systemtestos/Networking/PDP/group
+/app/techview/sysvalidation/systemtestos/Networking/Scripts
+/app/techview/sysvalidation/systemtestos/Networking/TestData
+/app/techview/sysvalidation/systemtestos/Networking/TestDriver
+/app/techview/sysvalidation/systemtestos/Networking/VoIP/Group
+/app/techview/sysvalidation/systemtestos/Networking/VoIP/Inc
+/app/techview/sysvalidation/systemtestos/Networking/VoIP/Scripts
+/app/techview/sysvalidation/systemtestos/Networking/VoIP/Src
+/app/techview/sysvalidation/systemtestos/Networking/VoIP/TestData
+/app/techview/sysvalidation/systemtestos/Networking/dhcp/documentation
+/app/techview/sysvalidation/systemtestos/Networking/dhcp/group
+/app/techview/sysvalidation/systemtestos/Networking/dhcp/inc
+/app/techview/sysvalidation/systemtestos/Networking/dhcp/scripts
+/app/techview/sysvalidation/systemtestos/Networking/dhcp/src
+/app/techview/sysvalidation/systemtestos/Networking/dhcp/testdata
+/app/techview/sysvalidation/systemtestos/Networking/dhcp/testdriver
+/app/techview/sysvalidation/systemtestos/Networking/ipsec/group
+/app/techview/sysvalidation/systemtestos/Networking/ipsec/scripts
+/app/techview/sysvalidation/systemtestos/Networking/ipsec/testdata
+/app/techview/sysvalidation/systemtestos/Networking/ipsec/testdriver
+/app/techview/sysvalidation/systemtestos/Networking/networkingutils/networkingdatautils/bwins
+/app/techview/sysvalidation/systemtestos/Networking/networkingutils/networkingdatautils/eabi
+/app/techview/sysvalidation/systemtestos/Networking/networkingutils/networkingdatautils/group
+/app/techview/sysvalidation/systemtestos/Networking/networkingutils/networkingdatautils/inc
+/app/techview/sysvalidation/systemtestos/Networking/networkingutils/networkingdatautils/src
+/app/techview/sysvalidation/systemtestos/Networking/networkingutils/networkingutilsstep/group
+/app/techview/sysvalidation/systemtestos/Networking/networkingutils/networkingutilsstep/inc
+/app/techview/sysvalidation/systemtestos/Networking/networkingutils/networkingutilsstep/src
+/app/techview/sysvalidation/systemtestos/Networking/streaming/documentation
+/app/techview/sysvalidation/systemtestos/Networking/streaming/group
+/app/techview/sysvalidation/systemtestos/Networking/streaming/inc
+/app/techview/sysvalidation/systemtestos/Networking/streaming/scripts
+/app/techview/sysvalidation/systemtestos/Networking/streaming/src
+/app/techview/sysvalidation/systemtestos/Networking/streaming/testdata
+/app/techview/sysvalidation/systemtestos/Networking/streaming/testdriver
+/app/techview/sysvalidation/systemtestos/Networking/vpn/group
+/app/techview/sysvalidation/systemtestos/Networking/vpn/inc
+/app/techview/sysvalidation/systemtestos/Networking/vpn/scripts
+/app/techview/sysvalidation/systemtestos/Networking/vpn/src
+/app/techview/sysvalidation/systemtestos/Networking/vpn/testdata/vpn/miscpolicies
+/app/techview/sysvalidation/systemtestos/Networking/vpn/testdriver
+/app/techview/sysvalidation/systemtestos/Obex/ObexTransport/Inc
+/app/techview/sysvalidation/systemtestos/Obex/ObexTransport/Scripts
+/app/techview/sysvalidation/systemtestos/Obex/ObexTransport/Src
+/app/techview/sysvalidation/systemtestos/Obex/ObexTransport/TestData/obex
+/app/techview/sysvalidation/systemtestos/Obex/ObexTransport/TestDriver
+/app/techview/sysvalidation/systemtestos/Obex/ObexTransport/documentation
+/app/techview/sysvalidation/systemtestos/Obex/ObexTransport/group
+/app/techview/sysvalidation/systemtestos/Obex/ObexUtils/EABI
+/app/techview/sysvalidation/systemtestos/Obex/ObexUtils/Inc
+/app/techview/sysvalidation/systemtestos/Obex/ObexUtils/Src
+/app/techview/sysvalidation/systemtestos/Obex/ObexUtils/TestDriver
+/app/techview/sysvalidation/systemtestos/Obex/ObexUtils/bwins
+/app/techview/sysvalidation/systemtestos/Obex/ObexUtils/group
+/app/techview/sysvalidation/systemtestos/OpenEnvironment/ChildProcessOne/Src
+/app/techview/sysvalidation/systemtestos/OpenEnvironment/ChildProcessOne/group
+/app/techview/sysvalidation/systemtestos/OpenEnvironment/ChildProcessTwo/Src
+/app/techview/sysvalidation/systemtestos/OpenEnvironment/ChildProcessTwo/group
+/app/techview/sysvalidation/systemtestos/OpenEnvironment/DLibrary/EABI
+/app/techview/sysvalidation/systemtestos/OpenEnvironment/DLibrary/Inc
+/app/techview/sysvalidation/systemtestos/OpenEnvironment/DLibrary/Src
+/app/techview/sysvalidation/systemtestos/OpenEnvironment/DLibrary/bwins
+/app/techview/sysvalidation/systemtestos/OpenEnvironment/DLibrary/group
+/app/techview/sysvalidation/systemtestos/OpenEnvironment/FIFOChild/Src
+/app/techview/sysvalidation/systemtestos/OpenEnvironment/FIFOChild/group
+/app/techview/sysvalidation/systemtestos/OpenEnvironment/FileStore/Group
+/app/techview/sysvalidation/systemtestos/OpenEnvironment/FileStore/Inc
+/app/techview/sysvalidation/systemtestos/OpenEnvironment/FileStore/Src
+/app/techview/sysvalidation/systemtestos/OpenEnvironment/FileStore/TestData
+/app/techview/sysvalidation/systemtestos/OpenEnvironment/FileStore/TestDriver
+/app/techview/sysvalidation/systemtestos/OpenEnvironment/FileStore/scripts
+/app/techview/sysvalidation/systemtestos/OpenEnvironment/OEServer/Group
+/app/techview/sysvalidation/systemtestos/OpenEnvironment/OEServer/Inc
+/app/techview/sysvalidation/systemtestos/OpenEnvironment/OEServer/Scripts
+/app/techview/sysvalidation/systemtestos/OpenEnvironment/OEServer/Src
+/app/techview/sysvalidation/systemtestos/OpenEnvironment/OEServer/TestData
+/app/techview/sysvalidation/systemtestos/OpenEnvironment/OEServer/TestDriver
+/app/techview/sysvalidation/systemtestos/OpenEnvironment/OpenSSL/Group
+/app/techview/sysvalidation/systemtestos/OpenEnvironment/OpenSSL/Scripts
+/app/techview/sysvalidation/systemtestos/OpenEnvironment/OpenSSL/Src
+/app/techview/sysvalidation/systemtestos/OpenEnvironment/OpenSSL/TestData
+/app/techview/sysvalidation/systemtestos/OpenEnvironment/OpenSSL/TestDriver
+/app/techview/sysvalidation/systemtestos/OpenEnvironment/Pipe/Src
+/app/techview/sysvalidation/systemtestos/OpenEnvironment/Pipe/group
+/app/techview/sysvalidation/systemtestos/OpenEnvironment/TestSqlite/ARMV5/Lib
+/app/techview/sysvalidation/systemtestos/OpenEnvironment/TestSqlite/ARMV5/UDEB
+/app/techview/sysvalidation/systemtestos/OpenEnvironment/TestSqlite/ARMV5/UREL
+/app/techview/sysvalidation/systemtestos/OpenEnvironment/TestSqlite/Inc
+/app/techview/sysvalidation/systemtestos/OpenEnvironment/TestSqlite/Scripts
+/app/techview/sysvalidation/systemtestos/OpenEnvironment/TestSqlite/Src
+/app/techview/sysvalidation/systemtestos/OpenEnvironment/TestSqlite/TestData
+/app/techview/sysvalidation/systemtestos/OpenEnvironment/TestSqlite/Testdriver
+/app/techview/sysvalidation/systemtestos/OpenEnvironment/TestSqlite/WINSCW/UDEB
+/app/techview/sysvalidation/systemtestos/OpenEnvironment/TestSqlite/WINSCW/UREL
+/app/techview/sysvalidation/systemtestos/OpenEnvironment/TestSqlite/group
+/app/techview/sysvalidation/systemtestos/OpenEnvironment/TestSqlite/x86gcc/lib
+/app/techview/sysvalidation/systemtestos/OpenEnvironment/TestSqlite/x86gcc/udeb
+/app/techview/sysvalidation/systemtestos/OpenEnvironment/TestSqlite/x86gcc/urel
+/app/techview/sysvalidation/systemtestos/PlatSec/Cleanup/Group
+/app/techview/sysvalidation/systemtestos/PlatSec/Cleanup/Src
+/app/techview/sysvalidation/systemtestos/PlatSec/HelloApp/group
+/app/techview/sysvalidation/systemtestos/PlatSec/HelloApp/src
+/app/techview/sysvalidation/systemtestos/PlatSec/Rename/Group
+/app/techview/sysvalidation/systemtestos/PlatSec/Rename/Src
+/app/techview/sysvalidation/systemtestos/PlatSec/SetCap/TestDriver
+/app/techview/sysvalidation/systemtestos/PlatSec/SetCap/documentation
+/app/techview/sysvalidation/systemtestos/PlatSec/SetCap/group
+/app/techview/sysvalidation/systemtestos/PlatSec/SetCap/inc
+/app/techview/sysvalidation/systemtestos/PlatSec/SetCap/scripts
+/app/techview/sysvalidation/systemtestos/PlatSec/SetCap/src
+/app/techview/sysvalidation/systemtestos/PlatSec/SetCap/testdata
+/app/techview/sysvalidation/systemtestos/Security/caf/scaf/armv5/lib
+/app/techview/sysvalidation/systemtestos/Security/caf/scaf/armv5/udeb
+/app/techview/sysvalidation/systemtestos/Security/caf/scaf/armv5/urel
+/app/techview/sysvalidation/systemtestos/Security/caf/scaf/documentation
+/app/techview/sysvalidation/systemtestos/Security/caf/scaf/group
+/app/techview/sysvalidation/systemtestos/Security/caf/scaf/inc
+/app/techview/sysvalidation/systemtestos/Security/caf/scaf/include
+/app/techview/sysvalidation/systemtestos/Security/caf/scaf/scripts
+/app/techview/sysvalidation/systemtestos/Security/caf/scaf/src
+/app/techview/sysvalidation/systemtestos/Security/caf/scaf/testdata/sis
+/app/techview/sysvalidation/systemtestos/Security/caf/scaf/testdriver
+/app/techview/sysvalidation/systemtestos/Security/caf/scaf/winscw/udeb
+/app/techview/sysvalidation/systemtestos/Security/caf/scaf/winscw/urel
+/app/techview/sysvalidation/systemtestos/Security/common/Documentation
+/app/techview/sysvalidation/systemtestos/Security/common/Inc
+/app/techview/sysvalidation/systemtestos/Security/common/Scripts
+/app/techview/sysvalidation/systemtestos/Security/common/Src
+/app/techview/sysvalidation/systemtestos/Security/common/TestData/DRM
+/app/techview/sysvalidation/systemtestos/Security/common/TestData/IAUN
+/app/techview/sysvalidation/systemtestos/Security/common/TestData/MIDlets
+/app/techview/sysvalidation/systemtestos/Security/common/TestData/Policy
+/app/techview/sysvalidation/systemtestos/Security/common/TestData/SIS
+/app/techview/sysvalidation/systemtestos/Security/common/TestDriver
+/app/techview/sysvalidation/systemtestos/Security/common/group
+/app/techview/sysvalidation/systemtestos/SisGen/Documentation
+/app/techview/sysvalidation/systemtestos/SisGen/Src
+/app/techview/sysvalidation/systemtestos/SisGen/TestData/Armv5
+/app/techview/sysvalidation/systemtestos/SisGen/TestData/Winscw
+/app/techview/sysvalidation/systemtestos/SyncML/DataSync/Documentation
+/app/techview/sysvalidation/systemtestos/SyncML/DataSync/Scripts
+/app/techview/sysvalidation/systemtestos/SyncML/DataSync/TestData/Test1
+/app/techview/sysvalidation/systemtestos/SyncML/DataSync/TestData/Test10
+/app/techview/sysvalidation/systemtestos/SyncML/DataSync/TestData/Test2
+/app/techview/sysvalidation/systemtestos/SyncML/DataSync/TestData/Test3
+/app/techview/sysvalidation/systemtestos/SyncML/DataSync/TestData/Test4
+/app/techview/sysvalidation/systemtestos/SyncML/DataSync/TestData/Test5
+/app/techview/sysvalidation/systemtestos/SyncML/DataSync/TestData/Test6/Sync1
+/app/techview/sysvalidation/systemtestos/SyncML/DataSync/TestData/Test6/Sync2
+/app/techview/sysvalidation/systemtestos/SyncML/DataSync/TestData/Test7
+/app/techview/sysvalidation/systemtestos/SyncML/DataSync/TestData/Test8
+/app/techview/sysvalidation/systemtestos/SyncML/DataSync/TestData/Test9
+/app/techview/sysvalidation/systemtestos/SyncML/DataSync/TestDriver
+/app/techview/sysvalidation/systemtestos/SyncML/DataSync/group
+/app/techview/sysvalidation/systemtestos/SyncML/DataSync/inc
+/app/techview/sysvalidation/systemtestos/SyncML/DataSync/src
+/app/techview/sysvalidation/systemtestos/SyncML/LoopbackTCA
+/app/techview/sysvalidation/systemtestos/SyncML/UCC
+/app/techview/sysvalidation/systemtestos/SysLibs/BAFL
+/app/techview/sysvalidation/systemtestos/SysLibs/CentralRep/Documentation
+/app/techview/sysvalidation/systemtestos/SysLibs/CentralRep/Group
+/app/techview/sysvalidation/systemtestos/SysLibs/CentralRep/Inc
+/app/techview/sysvalidation/systemtestos/SysLibs/CentralRep/Scripts
+/app/techview/sysvalidation/systemtestos/SysLibs/CentralRep/Src
+/app/techview/sysvalidation/systemtestos/SysLibs/CentralRep/TestData
+/app/techview/sysvalidation/systemtestos/SysLibs/CentralRep/TestDriver
+/app/techview/sysvalidation/systemtestos/SysLibs/CentralRep/cenrepnotifierhandler/group
+/app/techview/sysvalidation/systemtestos/SysLibs/CentralRep/cenrepnotifierhandler/inc
+/app/techview/sysvalidation/systemtestos/SysLibs/CentralRep/cenrepnotifierhandler/scripts
+/app/techview/sysvalidation/systemtestos/SysLibs/CentralRep/cenrepnotifierhandler/src
+/app/techview/sysvalidation/systemtestos/SysLibs/CentralRep/cenrepnotifierhandler/testdata
+/app/techview/sysvalidation/systemtestos/SysLibs/CentralRep/cenrepnotifierhandler/testdriver
+/app/techview/sysvalidation/systemtestos/SysLibs/Dbms/Group
+/app/techview/sysvalidation/systemtestos/SysLibs/Dbms/Inc
+/app/techview/sysvalidation/systemtestos/SysLibs/Dbms/Scripts
+/app/techview/sysvalidation/systemtestos/SysLibs/Dbms/Src
+/app/techview/sysvalidation/systemtestos/SysLibs/Dbms/TestData
+/app/techview/sysvalidation/systemtestos/SysLibs/Dbms/TestDriver
+/app/techview/sysvalidation/systemtestos/SysLibs/Dbms/documentation
+/app/techview/sysvalidation/systemtestos/SysLibs/Documentation
+/app/techview/sysvalidation/systemtestos/SysLibs/ECom/Documentation
+/app/techview/sysvalidation/systemtestos/SysLibs/ECom/Group
+/app/techview/sysvalidation/systemtestos/SysLibs/ECom/Inc
+/app/techview/sysvalidation/systemtestos/SysLibs/ECom/Scripts
+/app/techview/sysvalidation/systemtestos/SysLibs/ECom/Src
+/app/techview/sysvalidation/systemtestos/SysLibs/ECom/TestData
+/app/techview/sysvalidation/systemtestos/SysLibs/ECom/TestDriver
+/app/techview/sysvalidation/systemtestos/SysLibs/ECom/TestPlugin/Group
+/app/techview/sysvalidation/systemtestos/SysLibs/ECom/TestPlugin/Inc
+/app/techview/sysvalidation/systemtestos/SysLibs/ECom/TestPlugin/Src
+/app/techview/sysvalidation/systemtestos/SysLibs/LogViewer/group
+/app/techview/sysvalidation/systemtestos/SysLibs/LogViewer/inc
+/app/techview/sysvalidation/systemtestos/SysLibs/LogViewer/src
+/app/techview/sysvalidation/systemtestos/SysLibs/SysLibsUtils/EABI
+/app/techview/sysvalidation/systemtestos/SysLibs/SysLibsUtils/Inc
+/app/techview/sysvalidation/systemtestos/SysLibs/SysLibsUtils/Src
+/app/techview/sysvalidation/systemtestos/SysLibs/SysLibsUtils/TestDriver
+/app/techview/sysvalidation/systemtestos/SysLibs/SysLibsUtils/bwins
+/app/techview/sysvalidation/systemtestos/SysLibs/SysLibsUtils/group
+/app/techview/sysvalidation/systemtestos/SysLibs/XMLFramework/Documentation
+/app/techview/sysvalidation/systemtestos/SysLibs/XMLFramework/Group
+/app/techview/sysvalidation/systemtestos/SysLibs/XMLFramework/Inc
+/app/techview/sysvalidation/systemtestos/SysLibs/XMLFramework/Scripts
+/app/techview/sysvalidation/systemtestos/SysLibs/XMLFramework/Src
+/app/techview/sysvalidation/systemtestos/SysLibs/XMLFramework/TestData
+/app/techview/sysvalidation/systemtestos/SysLibs/XMLFramework/TestDriver
+/app/techview/sysvalidation/systemtestos/SysLibs/ZipFile/group
+/app/techview/sysvalidation/systemtestos/SysLibs/ZipFile/inc
+/app/techview/sysvalidation/systemtestos/SysLibs/ZipFile/scripts
+/app/techview/sysvalidation/systemtestos/SysLibs/ZipFile/src
+/app/techview/sysvalidation/systemtestos/SysLibs/ZipFile/testdata
+/app/techview/sysvalidation/systemtestos/SysLibs/ZipFile/testdriver
+/app/techview/sysvalidation/systemtestos/SysLibs/activitymanager/group
+/app/techview/sysvalidation/systemtestos/SysLibs/activitymanager/inc
+/app/techview/sysvalidation/systemtestos/SysLibs/activitymanager/scripts
+/app/techview/sysvalidation/systemtestos/SysLibs/activitymanager/src
+/app/techview/sysvalidation/systemtestos/SysLibs/activitymanager/testdata
+/app/techview/sysvalidation/systemtestos/SysLibs/activitymanager/testdriver
+/app/techview/sysvalidation/systemtestos/SysLibs/logengine/TestData
+/app/techview/sysvalidation/systemtestos/SysLibs/logengine/TestDriver
+/app/techview/sysvalidation/systemtestos/SysLibs/logengine/group
+/app/techview/sysvalidation/systemtestos/SysLibs/logengine/inc
+/app/techview/sysvalidation/systemtestos/SysLibs/logengine/scripts
+/app/techview/sysvalidation/systemtestos/SysLibs/logengine/src
+/app/techview/sysvalidation/systemtestos/SysLibs/sysutil/group
+/app/techview/sysvalidation/systemtestos/SysLibs/sysutil/inc
+/app/techview/sysvalidation/systemtestos/SysLibs/sysutil/scripts
+/app/techview/sysvalidation/systemtestos/SysLibs/sysutil/src
+/app/techview/sysvalidation/systemtestos/SysLibs/sysutil/testdata
+/app/techview/sysvalidation/systemtestos/SystemQualities/Performance/Documentation
+/app/techview/sysvalidation/systemtestos/SystemQualities/Performance/Scripts/process-log-scripts/config
+/app/techview/sysvalidation/systemtestos/SystemQualities/Performance/Scripts/process-log-scripts/docs
+/app/techview/sysvalidation/systemtestos/SystemQualities/Performance/Scripts/process-log-scripts/scripts
+/app/techview/sysvalidation/systemtestos/SystemQualities/Performance/TestData
+/app/techview/sysvalidation/systemtestos/SystemQualities/Performance/TestDriver
+/app/techview/sysvalidation/systemtestos/SystemQualities/Performance/group
+/app/techview/sysvalidation/systemtestos/SystemQualities/SecurityVulnerability/Scripts
+/app/techview/sysvalidation/systemtestos/SystemQualities/SecurityVulnerability/TestData
+/app/techview/sysvalidation/systemtestos/SystemQualities/SecurityVulnerability/TestDriver
+/app/techview/sysvalidation/systemtestos/SystemQualities/SecurityVulnerability/documentation
+/app/techview/sysvalidation/systemtestos/SystemQualities/SecurityVulnerability/group
+/app/techview/sysvalidation/systemtestos/SystemQualities/deviceboot/CopyCorruptFiles/Group
+/app/techview/sysvalidation/systemtestos/SystemQualities/deviceboot/CopyCorruptFiles/Inc
+/app/techview/sysvalidation/systemtestos/SystemQualities/deviceboot/CopyCorruptFiles/Src
+/app/techview/sysvalidation/systemtestos/SystemQualities/deviceboot/CreatePlugins
+/app/techview/sysvalidation/systemtestos/SystemQualities/deviceboot/CreateRSSFiles
+/app/techview/sysvalidation/systemtestos/SystemQualities/deviceboot/Framework
+/app/techview/sysvalidation/systemtestos/SystemQualities/deviceboot/Group
+/app/techview/sysvalidation/systemtestos/SystemQualities/deviceboot/Master/Src
+/app/techview/sysvalidation/systemtestos/SystemQualities/deviceboot/RaiseEvent/Group
+/app/techview/sysvalidation/systemtestos/SystemQualities/deviceboot/RaiseEvent/Src
+/app/techview/sysvalidation/systemtestos/SystemQualities/deviceboot/RomGen/Src
+/app/techview/sysvalidation/systemtestos/SystemQualities/deviceboot/Scripts
+/app/techview/sysvalidation/systemtestos/SystemQualities/deviceboot/TestBatchFiles
+/app/techview/sysvalidation/systemtestos/SystemQualities/deviceboot/TestCrash/Group
+/app/techview/sysvalidation/systemtestos/SystemQualities/deviceboot/TestCrash/Inc
+/app/techview/sysvalidation/systemtestos/SystemQualities/deviceboot/TestCrash/Src
+/app/techview/sysvalidation/systemtestos/SystemQualities/deviceboot/TestDSCAMC/Group
+/app/techview/sysvalidation/systemtestos/SystemQualities/deviceboot/TestDSCAMC/Src
+/app/techview/sysvalidation/systemtestos/SystemQualities/deviceboot/TestDSCAMC/testdata
+/app/techview/sysvalidation/systemtestos/SystemQualities/deviceboot/TestData/EMail
+/app/techview/sysvalidation/systemtestos/SystemQualities/deviceboot/TestDriver
+/app/techview/sysvalidation/systemtestos/SystemQualities/deviceboot/TestReport/Group
+/app/techview/sysvalidation/systemtestos/SystemQualities/deviceboot/TestReport/Inc
+/app/techview/sysvalidation/systemtestos/SystemQualities/deviceboot/TestReport/Src
+/app/techview/sysvalidation/systemtestos/SystemQualities/deviceboot/documentation
+/app/techview/sysvalidation/systemtestos/SystemQualities/group
+/app/techview/sysvalidation/systemtestos/SystemTestUtils/ConfigUtils/EABI
+/app/techview/sysvalidation/systemtestos/SystemTestUtils/ConfigUtils/Group
+/app/techview/sysvalidation/systemtestos/SystemTestUtils/ConfigUtils/Inc
+/app/techview/sysvalidation/systemtestos/SystemTestUtils/ConfigUtils/Src
+/app/techview/sysvalidation/systemtestos/SystemTestUtils/ConfigUtils/TestData
+/app/techview/sysvalidation/systemtestos/SystemTestUtils/ConfigUtils/TestDriver
+/app/techview/sysvalidation/systemtestos/SystemTestUtils/ConfigUtils/bwins
+/app/techview/sysvalidation/systemtestos/SystemTestUtils/Utils/EABI
+/app/techview/sysvalidation/systemtestos/SystemTestUtils/Utils/Inc
+/app/techview/sysvalidation/systemtestos/SystemTestUtils/Utils/Src
+/app/techview/sysvalidation/systemtestos/SystemTestUtils/Utils/bwins
+/app/techview/sysvalidation/systemtestos/SystemTestUtils/Utils/group
+/app/techview/sysvalidation/systemtestos/SystemTestUtils/lowramutils/group
+/app/techview/sysvalidation/systemtestos/SystemTestUtils/lowramutils/inc
+/app/techview/sysvalidation/systemtestos/SystemTestUtils/lowramutils/src
+/app/techview/sysvalidation/systemtestos/Telephony/Etel/DTsy
+/app/techview/sysvalidation/systemtestos/Telephony/Etel/Documentation
+/app/techview/sysvalidation/systemtestos/Telephony/Etel/Inc
+/app/techview/sysvalidation/systemtestos/Telephony/Etel/Scripts
+/app/techview/sysvalidation/systemtestos/Telephony/Etel/Src
+/app/techview/sysvalidation/systemtestos/Telephony/Etel/TestData/ETel3rdParty
+/app/techview/sysvalidation/systemtestos/Telephony/Etel/TestDriver
+/app/techview/sysvalidation/systemtestos/Telephony/Etel/comtsysimulator/mockltsy/mockltsy/bwins
+/app/techview/sysvalidation/systemtestos/Telephony/Etel/comtsysimulator/mockltsy/mockltsy/cenrep_ini
+/app/techview/sysvalidation/systemtestos/Telephony/Etel/comtsysimulator/mockltsy/mockltsy/eabi
+/app/techview/sysvalidation/systemtestos/Telephony/Etel/comtsysimulator/mockltsy/mockltsy/group
+/app/techview/sysvalidation/systemtestos/Telephony/Etel/comtsysimulator/mockltsy/mockltsy/inc
+/app/techview/sysvalidation/systemtestos/Telephony/Etel/comtsysimulator/mockltsy/mockltsy/src
+/app/techview/sysvalidation/systemtestos/Telephony/Etel/comtsysimulator/mockltsy/mockltsydll/bwins
+/app/techview/sysvalidation/systemtestos/Telephony/Etel/comtsysimulator/mockltsy/mockltsydll/eabi
+/app/techview/sysvalidation/systemtestos/Telephony/Etel/comtsysimulator/mockltsy/mockltsydll/group
+/app/techview/sysvalidation/systemtestos/Telephony/Etel/comtsysimulator/mockltsy/mockltsydll/inc
+/app/techview/sysvalidation/systemtestos/Telephony/Etel/comtsysimulator/mockltsy/mockltsydll/src
+/app/techview/sysvalidation/systemtestos/Telephony/Etel/comtsysimulator/mocksy/bwins
+/app/techview/sysvalidation/systemtestos/Telephony/Etel/comtsysimulator/mocksy/eabi
+/app/techview/sysvalidation/systemtestos/Telephony/Etel/comtsysimulator/mocksy/group
+/app/techview/sysvalidation/systemtestos/Telephony/Etel/comtsysimulator/mocksy/inc
+/app/techview/sysvalidation/systemtestos/Telephony/Etel/comtsysimulator/mocksy/src
+/app/techview/sysvalidation/systemtestos/Telephony/Etel/group
+/app/techview/sysvalidation/systemtestos/TestSuites/Documentation
+/app/techview/sysvalidation/systemtestos/TestSuites/group
+/app/techview/sysvalidation/systemtestos/TestSuites/st_btir
+/app/techview/sysvalidation/systemtestos/TestSuites/st_cdma
+/app/techview/sysvalidation/systemtestos/TestSuites/st_connected
+/app/techview/sysvalidation/systemtestos/TestSuites/st_graphics_nga
+/app/techview/sysvalidation/systemtestos/TestSuites/st_manual
+/app/techview/sysvalidation/systemtestos/TestSuites/st_non_connected
+/app/techview/sysvalidation/systemtestos/TestSuites/st_perf_biweekly
+/app/techview/sysvalidation/systemtestos/TestSuites/st_perf_dashboard
+/app/techview/sysvalidation/systemtestos/TestSuites/st_performance
+/app/techview/sysvalidation/systemtestos/TestSuites/st_sanity
+/app/techview/sysvalidation/systemtestos/TestSuites/st_sanity_midtierrom
+/app/techview/sysvalidation/systemtestos/TestSuites/st_security
+/app/techview/sysvalidation/systemtestos/TestSuites/st_soak
+/app/techview/sysvalidation/systemtestos/bluetooth/avrcp/controller/group
+/app/techview/sysvalidation/systemtestos/bluetooth/avrcp/controller/inc
+/app/techview/sysvalidation/systemtestos/bluetooth/avrcp/controller/scripts
+/app/techview/sysvalidation/systemtestos/bluetooth/avrcp/controller/src
+/app/techview/sysvalidation/systemtestos/bluetooth/avrcp/controller/testdata
+/app/techview/sysvalidation/systemtestos/bluetooth/avrcp/controller/testdriver
+/app/techview/sysvalidation/systemtestos/bluetooth/avrcp/group
+/app/techview/sysvalidation/systemtestos/bluetooth/avrcp/target/group
+/app/techview/sysvalidation/systemtestos/bluetooth/avrcp/target/inc
+/app/techview/sysvalidation/systemtestos/bluetooth/avrcp/target/scripts
+/app/techview/sysvalidation/systemtestos/bluetooth/avrcp/target/src
+/app/techview/sysvalidation/systemtestos/bluetooth/avrcp/target/testdata
+/app/techview/sysvalidation/systemtestos/bluetooth/avrcp/target/testdriver
+/app/techview/sysvalidation/systemtestos/bluetooth/btcore/group
+/app/techview/sysvalidation/systemtestos/bluetooth/btcore/inc
+/app/techview/sysvalidation/systemtestos/bluetooth/btcore/scripts
+/app/techview/sysvalidation/systemtestos/bluetooth/btcore/src
+/app/techview/sysvalidation/systemtestos/bluetooth/btcore/testdata
+/app/techview/sysvalidation/systemtestos/bluetooth/btcore/testdriver
+/app/techview/sysvalidation/systemtestos/bluetooth/documentation
+/app/techview/sysvalidation/systemtestos/lbs/component/dataproviderreceiver/bwins
+/app/techview/sysvalidation/systemtestos/lbs/component/dataproviderreceiver/eabi
+/app/techview/sysvalidation/systemtestos/lbs/component/dataproviderreceiver/group
+/app/techview/sysvalidation/systemtestos/lbs/component/dataproviderreceiver/inc
+/app/techview/sysvalidation/systemtestos/lbs/component/dataproviderreceiver/src
+/app/techview/sysvalidation/systemtestos/lbs/component/inc
+/app/techview/sysvalidation/systemtestos/lbs/component/lbsststeps/group
+/app/techview/sysvalidation/systemtestos/lbs/component/lbsststeps/inc
+/app/techview/sysvalidation/systemtestos/lbs/component/lbsststeps/src
+/app/techview/sysvalidation/systemtestos/lbs/component/lbsstutility/bwins
+/app/techview/sysvalidation/systemtestos/lbs/component/lbsstutility/eabi
+/app/techview/sysvalidation/systemtestos/lbs/component/lbsstutility/group
+/app/techview/sysvalidation/systemtestos/lbs/component/lbsstutility/inc
+/app/techview/sysvalidation/systemtestos/lbs/component/lbsstutility/src
+/app/techview/sysvalidation/systemtestos/lbs/component/lbstestagpsintegrationmodule/group
+/app/techview/sysvalidation/systemtestos/lbs/component/lbstestagpsintegrationmodule/inc
+/app/techview/sysvalidation/systemtestos/lbs/component/lbstestagpsintegrationmodule/src
+/app/techview/sysvalidation/systemtestos/lbs/component/privacycontrollers/privcntlrmultireq/group
+/app/techview/sysvalidation/systemtestos/lbs/component/privacycontrollers/privcntlrmultireq/inc
+/app/techview/sysvalidation/systemtestos/lbs/component/privacycontrollers/privcntlrmultireq/src
+/app/techview/sysvalidation/systemtestos/lbs/component/privacycontrollers/privcntlrsimple/group
+/app/techview/sysvalidation/systemtestos/lbs/component/privacycontrollers/privcntlrsimple/inc
+/app/techview/sysvalidation/systemtestos/lbs/component/privacycontrollers/privcntlrsimple/src
+/app/techview/sysvalidation/systemtestos/lbs/component/privacycontrollers/privcntlrsinglereq/bwins
+/app/techview/sysvalidation/systemtestos/lbs/component/privacycontrollers/privcntlrsinglereq/eabi
+/app/techview/sysvalidation/systemtestos/lbs/component/privacycontrollers/privcntlrsinglereq/group
+/app/techview/sysvalidation/systemtestos/lbs/component/privacycontrollers/privcntlrsinglereq/inc
+/app/techview/sysvalidation/systemtestos/lbs/component/privacycontrollers/privcntlrsinglereq/src
+/app/techview/sysvalidation/systemtestos/lbs/component/stlbsprivnotifier/group
+/app/techview/sysvalidation/systemtestos/lbs/component/stlbsprivnotifier/inc
+/app/techview/sysvalidation/systemtestos/lbs/component/stlbsprivnotifier/src
+/app/techview/sysvalidation/systemtestos/lbs/component/stlbsprivproxy/bwins
+/app/techview/sysvalidation/systemtestos/lbs/component/stlbsprivproxy/eabi
+/app/techview/sysvalidation/systemtestos/lbs/component/stlbsprivproxy/group
+/app/techview/sysvalidation/systemtestos/lbs/component/stlbsprivproxy/inc
+/app/techview/sysvalidation/systemtestos/lbs/component/stlbsprivproxy/src
+/app/techview/sysvalidation/systemtestos/lbs/component/stlbsprivtestchannel/bwins
+/app/techview/sysvalidation/systemtestos/lbs/component/stlbsprivtestchannel/eabi
+/app/techview/sysvalidation/systemtestos/lbs/component/stlbsprivtestchannel/group
+/app/techview/sysvalidation/systemtestos/lbs/component/stlbsprivtestchannel/inc
+/app/techview/sysvalidation/systemtestos/lbs/component/stlbsprivtestchannel/src
+/app/techview/sysvalidation/systemtestos/lbs/component/suplnetworkagent/bwins
+/app/techview/sysvalidation/systemtestos/lbs/component/suplnetworkagent/eabi
+/app/techview/sysvalidation/systemtestos/lbs/component/suplnetworkagent/group
+/app/techview/sysvalidation/systemtestos/lbs/component/suplnetworkagent/inc
+/app/techview/sysvalidation/systemtestos/lbs/component/suplnetworkagent/src
+/app/techview/sysvalidation/systemtestos/lbs/component/testlbs/aif
+/app/techview/sysvalidation/systemtestos/lbs/component/testlbs/data
+/app/techview/sysvalidation/systemtestos/lbs/component/testlbs/group
+/app/techview/sysvalidation/systemtestos/lbs/component/testlbs/inc
+/app/techview/sysvalidation/systemtestos/lbs/component/testlbs/src
+/app/techview/sysvalidation/systemtestos/lbs/component/testlbsclient/bwins
+/app/techview/sysvalidation/systemtestos/lbs/component/testlbsclient/eabi
+/app/techview/sysvalidation/systemtestos/lbs/component/testlbsclient/group
+/app/techview/sysvalidation/systemtestos/lbs/component/testlbsclient/inc
+/app/techview/sysvalidation/systemtestos/lbs/component/testlbsclient/src
+/app/techview/sysvalidation/systemtestos/lbs/component/testlbsnetworkprotocolmodule/group
+/app/techview/sysvalidation/systemtestos/lbs/component/testlbsnetworkprotocolmodule/inc
+/app/techview/sysvalidation/systemtestos/lbs/component/testlbsnetworkprotocolmodule/src
+/app/techview/sysvalidation/systemtestos/lbs/documentation
+/app/techview/sysvalidation/systemtestos/lbs/group
+/app/techview/sysvalidation/systemtestos/lbs/scripts
+/app/techview/sysvalidation/systemtestos/lbs/testdata
+/app/techview/sysvalidation/systemtestos/lbs/testdriver
+/app/techview/sysvalidation/systemtestos/multimediaprotocols/documentation
+/app/techview/sysvalidation/systemtestos/multimediaprotocols/group
+/app/techview/sysvalidation/systemtestos/multimediaprotocols/inc
+/app/techview/sysvalidation/systemtestos/multimediaprotocols/scripts
+/app/techview/sysvalidation/systemtestos/multimediaprotocols/src
+/app/techview/sysvalidation/systemtestos/multimediaprotocols/testdata/config
+/app/techview/sysvalidation/systemtestos/multimediaprotocols/testdata/dat
+/app/techview/sysvalidation/systemtestos/multimediaprotocols/testdriver
+/app/techview/sysvalidation/systemtesttools/Group
+/app/techview/sysvalidation/systemtesttools/LinuxScripts
+/app/techview/sysvalidation/systemtesttools/PCMOverRTP/bin
+/app/techview/sysvalidation/systemtesttools/Sipp/ScenarioFiles
+/app/techview/sysvalidation/systemtesttools/TEF/Group
+/app/techview/sysvalidation/systemtesttools/TEF/Inc
+/app/techview/sysvalidation/systemtesttools/TEF/Scripts
+/app/techview/sysvalidation/systemtesttools/TEF/Src
+/app/techview/sysvalidation/systemtesttools/TEF/logs/Emulator-logs
+/app/techview/sysvalidation/systemtesttools/TEF/logs/H4-logs
+/app/techview/sysvalidation/systemtesttools/TEF/testdata
+/app/techview/sysvalidation/systemtesttools/TestDriver/Docs
+/app/techview/sysvalidation/systemtesttools/TestDriver/Scripts
+/app/techview/sysvalidation/systemtesttools/UCC/Docs
+/app/techview/sysvalidation/systemtesttools/UCC/UCC-Test_Logs/Emulator-PC
+/app/techview/sysvalidation/systemtesttools/UCC/UCC-Test_Logs/PC-H4
+/app/techview/sysvalidation/systemtesttools/UCC/UCC-Test_Logs/PC1- PC2
+/app/organizer/pimappservices/calendarvcalplugin/Inc
+/app/organizer/pimappservices/calendarvcalplugin/group
+/app/organizer/pimappservices/calendarvcalplugin/src
+/app/organizer/pimappservices/calendar/bwins
+/app/organizer/pimappservices/calendar/client/inc
+/app/organizer/pimappservices/calendar/client/src
+/app/organizer/pimappservices/calendar/documentation/internal
+/app/organizer/pimappservices/calendar/eabi
+/app/organizer/pimappservices/calendar/group
+/app/organizer/pimappservices/calendar/inc
+/app/organizer/pimappservices/calendar/server/inc
+/app/organizer/pimappservices/calendar/server/src
+/app/organizer/pimappservices/calendar/shared/inc
+/app/organizer/pimappservices/calendar/shared/src
+/app/organizer/pimappservices/calendar/test/group
+/app/organizer/pimappservices/calendar/tsrc/Integration/CR-6BLC8W/group
+/app/organizer/pimappservices/calendar/tsrc/Integration/CR-6BLC8W/scripts
+/app/organizer/pimappservices/calendar/tsrc/Integration/CR-6BLC8W/src
+/app/organizer/pimappservices/calendar/tsrc/Integration/CR-6BLC8W/testdata
+/app/organizer/pimappservices/calendar/tsrc/Integration/TestCalApiPolicing/generated
+/app/organizer/pimappservices/calendar/tsrc/Integration/TestCalApiPolicing/template
+/app/organizer/pimappservices/calendar/tsrc/Integration/TestCalInterimApi/documentation/Design
+/app/organizer/pimappservices/calendar/tsrc/Integration/TestCalInterimApi/documentation/TestSpecifications
+/app/organizer/pimappservices/calendar/tsrc/Integration/TestCalInterimApi/group
+/app/organizer/pimappservices/calendar/tsrc/Integration/TestCalInterimApi/inc
+/app/organizer/pimappservices/calendar/tsrc/Integration/TestCalInterimApi/scripts
+/app/organizer/pimappservices/calendar/tsrc/Integration/TestCalInterimApi/src
+/app/organizer/pimappservices/calendar/tsrc/Integration/TestCalInterimApi/testdata/vCals/ImportvCals
+/app/organizer/pimappservices/calendar/tsrc/Integration/TestInstance/group
+/app/organizer/pimappservices/calendar/tsrc/Integration/TestInstance/scripts
+/app/organizer/pimappservices/calendar/tsrc/Integration/TestInstance/src
+/app/organizer/pimappservices/calendar/tsrc/Integration/TestInstance/testdata
+/app/organizer/pimappservices/calendar/tsrc/TestCalIndexFile/group
+/app/organizer/pimappservices/calendar/tsrc/TestCalIndexFile/inc
+/app/organizer/pimappservices/calendar/tsrc/TestCalIndexFile/scripts
+/app/organizer/pimappservices/calendar/tsrc/TestCalIndexFile/src
+/app/organizer/pimappservices/calendar/tsrc/TestCalIndexFile/testdata
+/app/organizer/pimappservices/calendar/tsrc/instance_iterator
+/app/organizer/pimappservices/calendar/tsrc/interop/data
+/app/organizer/pimappservices/calendar/tsrc/interop/group
+/app/organizer/pimappservices/calendar/tsrc/interop/inc
+/app/organizer/pimappservices/calendar/tsrc/interop/src
+/app/organizer/pimappservices/calendar/tsrc/unit/group
+/app/organizer/pimappservices/calendar/tsrc/unit/scripts
+/app/organizer/pimappservices/calendar/tsrc/unit/src
+/app/organizer/pimappservices/calendar/tsrc/unit/testdata
+/app/contacts/phonebookengines/contactsmodel/bwins
+/app/contacts/phonebookengines/contactsmodel/cntdbdumper/group
+/app/contacts/phonebookengines/contactsmodel/cntdbdumper/src
+/app/contacts/phonebookengines/contactsmodel/cntmatchlog/group
+/app/contacts/phonebookengines/contactsmodel/cntmatchlog/inc
+/app/contacts/phonebookengines/contactsmodel/cntmatchlog/src
+/app/contacts/phonebookengines/contactsmodel/cntmodel/inc
+/app/contacts/phonebookengines/contactsmodel/cntmodel/src
+/app/contacts/phonebookengines/contactsmodel/cntphone
+/app/contacts/phonebookengines/contactsmodel/cntpldbms/inc
+/app/contacts/phonebookengines/contactsmodel/cntpldbms/src
+/app/contacts/phonebookengines/contactsmodel/cntplsql/inc
+/app/contacts/phonebookengines/contactsmodel/cntplsql/src
+/app/contacts/phonebookengines/contactsmodel/cntsrv/inc
+/app/contacts/phonebookengines/contactsmodel/cntsrv/src
+/app/contacts/phonebookengines/contactsmodel/cntvcard
+/app/contacts/phonebookengines/contactsmodel/cntview
+/app/contacts/phonebookengines/contactsmodel/documentation
+/app/contacts/phonebookengines/contactsmodel/eabi
+/app/contacts/phonebookengines/contactsmodel/group
+/app/contacts/phonebookengines/contactsmodel/groupsql
+/app/contacts/phonebookengines/contactsmodel/inc
+/app/contacts/phonebookengines/contactsmodel/src
+/app/contacts/phonebookengines/contactsmodel/tsrc/FuzzTest/group
+/app/contacts/phonebookengines/contactsmodel/tsrc/FuzzTest/inc
+/app/contacts/phonebookengines/contactsmodel/tsrc/FuzzTest/src
+/app/contacts/phonebookengines/contactsmodel/tsrc/Integration/CntPerfTest/Scripts
+/app/contacts/phonebookengines/contactsmodel/tsrc/Integration/CntPerfTest/Scriptssql
+/app/contacts/phonebookengines/contactsmodel/tsrc/Integration/CntPerfTest/documentation/TestDesign
+/app/contacts/phonebookengines/contactsmodel/tsrc/Integration/CntPerfTest/documentation/TestSpec
+/app/contacts/phonebookengines/contactsmodel/tsrc/Integration/CntPerfTest/group
+/app/contacts/phonebookengines/contactsmodel/tsrc/Integration/CntPerfTest/groupsql
+/app/contacts/phonebookengines/contactsmodel/tsrc/Integration/CntPerfTest/inc
+/app/contacts/phonebookengines/contactsmodel/tsrc/Integration/CntPerfTest/src
+/app/contacts/phonebookengines/contactsmodel/tsrc/Integration/CntPerfTest/testdata/vcf
+/app/contacts/phonebookengines/contactsmodel/tsrc/Integration/PerfFuncSuite/Documentation
+/app/contacts/phonebookengines/contactsmodel/tsrc/Integration/PerfFuncSuite/group
+/app/contacts/phonebookengines/contactsmodel/tsrc/Integration/PerfFuncSuite/groupsql
+/app/contacts/phonebookengines/contactsmodel/tsrc/Integration/PerfFuncSuite/inc
+/app/contacts/phonebookengines/contactsmodel/tsrc/Integration/PerfFuncSuite/scripts
+/app/contacts/phonebookengines/contactsmodel/tsrc/Integration/PerfFuncSuite/src
+/app/contacts/phonebookengines/contactsmodel/tsrc/Integration/PerfFuncSuite/testdata
+/app/contacts/phonebookengines/contactsmodel/tsrc/Integration/TCntPolice/Template
+/app/contacts/phonebookengines/contactsmodel/tsrc/Integration/TCntPolice/group
+/app/contacts/phonebookengines/contactsmodel/tsrc/Integration/TCntPolice/groupsql
+/app/contacts/phonebookengines/contactsmodel/tsrc/Integration/TCntPolice/inc
+/app/contacts/phonebookengines/contactsmodel/tsrc/Integration/TCntPolice/incsql
+/app/contacts/phonebookengines/contactsmodel/tsrc/Integration/TCntPolice/scripts
+/app/contacts/phonebookengines/contactsmodel/tsrc/Integration/TCntPolice/scriptssql
+/app/contacts/phonebookengines/contactsmodel/tsrc/Integration/TCntPolice/src
+/app/contacts/phonebookengines/contactsmodel/tsrc/Integration/TCntPolice/srcsql
+/app/contacts/phonebookengines/contactsmodel/tsrc/Integration/TestContactSuite/Documentation
+/app/contacts/phonebookengines/contactsmodel/tsrc/Integration/TestContactSuite/group
+/app/contacts/phonebookengines/contactsmodel/tsrc/Integration/TestContactSuite/scripts
+/app/contacts/phonebookengines/contactsmodel/tsrc/Integration/TestContactSuite/src
+/app/contacts/phonebookengines/contactsmodel/tsrc/Integration/TestImpExvCard/Documentation
+/app/contacts/phonebookengines/contactsmodel/tsrc/Integration/TestImpExvCard/group
+/app/contacts/phonebookengines/contactsmodel/tsrc/Integration/TestImpExvCard/groupsql
+/app/contacts/phonebookengines/contactsmodel/tsrc/Integration/TestImpExvCard/inc
+/app/contacts/phonebookengines/contactsmodel/tsrc/Integration/TestImpExvCard/scripts
+/app/contacts/phonebookengines/contactsmodel/tsrc/Integration/TestImpExvCard/src
+/app/contacts/phonebookengines/contactsmodel/tsrc/Integration/TestImpExvCard/testdata/ExportBDayLocal
+/app/contacts/phonebookengines/contactsmodel/tsrc/Integration/TestImpExvCard/testdata/ExportNoBDay
+/app/contacts/phonebookengines/contactsmodel/tsrc/Integration/TestImpExvCard/testdata/ExportRevUTC
+/app/contacts/phonebookengines/contactsmodel/tsrc/Integration/TestImpExvCard/testdata/ImportBDay
+/app/contacts/phonebookengines/contactsmodel/tsrc/Integration/TestImpExvCard/testdata/ImportNoBDay
+/app/contacts/phonebookengines/contactsmodel/tsrc/Integration/TestImpExvCard/testdata/ImportNoRev
+/app/contacts/phonebookengines/contactsmodel/tsrc/Integration/TestImpExvCard/testdata/ImportOOM
+/app/contacts/phonebookengines/contactsmodel/tsrc/Integration/TestImpExvCard/testdata/ImportREVLocal
+/app/contacts/phonebookengines/contactsmodel/tsrc/Integration/TestImpExvCard/testdata/ImportREVLocalTZ
+/app/contacts/phonebookengines/contactsmodel/tsrc/Integration/TestImpExvCard/testdata/ImportRevUTC
+/app/contacts/phonebookengines/contactsmodel/tsrc/Integration/TestImpExvCard/testdata/PBAPExport
+/app/contacts/phonebookengines/contactsmodel/tsrc/Integration/TestImpExvCard/testdata/PBAPExportsql
+/app/contacts/phonebookengines/contactsmodel/tsrc/Integration/TestImpExvCard/testdata/PREQ1286
+/app/contacts/phonebookengines/contactsmodel/tsrc/Integration/TestStartUp/data
+/app/contacts/phonebookengines/contactsmodel/tsrc/Integration/TestStartUp/documentation
+/app/contacts/phonebookengines/contactsmodel/tsrc/Integration/TestStartUp/group
+/app/contacts/phonebookengines/contactsmodel/tsrc/Integration/TestStartUp/inc
+/app/contacts/phonebookengines/contactsmodel/tsrc/Integration/TestStartUp/scripts
+/app/contacts/phonebookengines/contactsmodel/tsrc/Integration/TestStartUp/src
+/app/contacts/phonebookengines/contactsmodel/tsrc/NbCntTestLib
+/app/contacts/phonebookengines/contactsmodel/tsrc/PackagerClientServer/Client/bwins
+/app/contacts/phonebookengines/contactsmodel/tsrc/PackagerClientServer/Client/eabi
+/app/contacts/phonebookengines/contactsmodel/tsrc/PackagerClientServer/Client/group
+/app/contacts/phonebookengines/contactsmodel/tsrc/PackagerClientServer/Client/inc
+/app/contacts/phonebookengines/contactsmodel/tsrc/PackagerClientServer/Client/src
+/app/contacts/phonebookengines/contactsmodel/tsrc/PackagerClientServer/Server/group
+/app/contacts/phonebookengines/contactsmodel/tsrc/PackagerClientServer/Server/inc
+/app/contacts/phonebookengines/contactsmodel/tsrc/PackagerClientServer/Server/src
+/app/contacts/phonebookengines/contactsmodel/tsrc/PackagerClientServer/Test/group
+/app/contacts/phonebookengines/contactsmodel/tsrc/PackagerClientServer/Test/inc
+/app/contacts/phonebookengines/contactsmodel/tsrc/PackagerClientServer/Test/src
+/app/contacts/phonebookengines/contactsmodel/tsrc/TestSyncPlugIn
+/app/contacts/phonebookengines/contactsmodel/tsrc/UnitTest_CntPBAPSupport/group
+/app/contacts/phonebookengines/contactsmodel/tsrc/UnitTest_CntPBAPSupport/inc
+/app/contacts/phonebookengines/contactsmodel/tsrc/UnitTest_CntPBAPSupport/src
+/app/contacts/phonebookengines/contactsmodel/tsrc/asynaccess/group
+/app/contacts/phonebookengines/contactsmodel/tsrc/asynaccess/inc
+/app/contacts/phonebookengines/contactsmodel/tsrc/asynaccess/src
+/app/contacts/phonebookengines/contactsmodel/tsrc/cntfindplugin/group
+/app/contacts/phonebookengines/contactsmodel/tsrc/cntfindplugin/src
+/app/contacts/phonebookengines/contactsmodel/tsrc/cntmatchlog/group
+/app/contacts/phonebookengines/contactsmodel/tsrc/cntmatchlog/inc
+/app/contacts/phonebookengines/contactsmodel/tsrc/cntmatchlog/src
+/app/contacts/phonebookengines/contactsmodel/tsrc/cntmodel2
+/app/contacts/phonebookengines/contactsmodel/tsrc/cntsimplesortplugin/group
+/app/contacts/phonebookengines/contactsmodel/tsrc/cntsimplesortplugin/src
+/app/contacts/phonebookengines/contactsmodel/tsrc/cntvcard/group
+/app/contacts/phonebookengines/contactsmodel/tsrc/cntvcard/src
+/app/contacts/phonebookengines/contactsmodel/tsrc/cntviewstore
+/app/contacts/phonebookengines/contactsmodel/tsrc/databases
+/app/contacts/phonebookengines/contactsmodel/tsrc/performance
+/app/contacts/phonebookengines/contactsmodel/tsrcsql
+/app/organizer/pimappservices/appenginesdocs
+/mw/appsupport/appfw/uiftestfw/automation/testlists/emulator
+/mw/appsupport/appfw/uiftestfw/automation/testlists/hardware
+/mw/appsupport/appfw/uiftestfw/bwins
+/mw/appsupport/appfw/uiftestfw/eabi
+/mw/appsupport/appfw/uiftestfw/group
+/mw/appsupport/appfw/uiftestfw/inc
+/mw/appsupport/appfw/uiftestfw/resource/hardware
+/mw/appsupport/appfw/uiftestfw/rom
+/mw/appsupport/appfw/uiftestfw/scripts/emulator
+/mw/appsupport/appfw/uiftestfw/scripts/hardware
+/mw/appsupport/appfw/uiftestfw/src
+/mw/appsupport/applaunchservices/aftermarketappstarter/amastartsrc
+/mw/appsupport/applaunchservices/aftermarketappstarter/bwins
+/mw/appsupport/applaunchservices/aftermarketappstarter/dscstoresrc
+/mw/appsupport/applaunchservices/aftermarketappstarter/eabi
+/mw/appsupport/applaunchservices/aftermarketappstarter/group
+/mw/appsupport/applaunchservices/aftermarketappstarter/inc
+/mw/appsupport/applaunchservices/aftermarketappstarter/localinc
+/mw/appsupport/applaunchservices/aftermarketappstarter/localsrc
+/mw/appsupport/applaunchservices/aftermarketappstarter/test/tamastarter/group
+/mw/appsupport/applaunchservices/aftermarketappstarter/test/tamastarter/inc
+/mw/appsupport/applaunchservices/aftermarketappstarter/test/tamastarter/resource/emulator
+/mw/appsupport/applaunchservices/aftermarketappstarter/test/tamastarter/resource/hardware
+/mw/appsupport/applaunchservices/aftermarketappstarter/test/tamastarter/scripts/emulator
+/mw/appsupport/applaunchservices/aftermarketappstarter/test/tamastarter/scripts/hardware
+/mw/appsupport/applaunchservices/aftermarketappstarter/test/tamastarter/src
+/mw/appsupport/applaunchservices/aftermarketappstarter/test/tdscstore/group
+/mw/appsupport/applaunchservices/aftermarketappstarter/test/tdscstore/inc
+/mw/appsupport/applaunchservices/aftermarketappstarter/test/tdscstore/scripts
+/mw/appsupport/applaunchservices/aftermarketappstarter/test/tdscstore/src
+/mw/appsupport/applaunchservices/aftermarketappstarter/test/tdscstore/testdata
+/mw/appsupport/applaunchservices/aftermarketappstarter/test/testapps
+/mw/classicui/lafagnosticuifoundation/animation/Documentation
+/mw/classicui/lafagnosticuifoundation/animation/bwins
+/mw/classicui/lafagnosticuifoundation/animation/eabi
+/mw/classicui/lafagnosticuifoundation/animation/group
+/mw/classicui/lafagnosticuifoundation/animation/inc
+/mw/classicui/lafagnosticuifoundation/animation/res
+/mw/classicui/lafagnosticuifoundation/animation/src
+/mw/classicui/lafagnosticuifoundation/animation/tef/scripts
+/mw/classicui/lafagnosticuifoundation/animation/testdata
+/mw/appsupport/applaunchservices/applaunchplugins/apstartsrc
+/mw/appsupport/applaunchservices/applaunchplugins/bwins
+/mw/appsupport/applaunchservices/applaunchplugins/eabi
+/mw/appsupport/applaunchservices/applaunchplugins/group
+/mw/appsupport/applaunchservices/applaunchplugins/inc
+/mw/appsupport/applaunchservices/applaunchplugins/test/tapstart/group
+/mw/appsupport/applaunchservices/applaunchplugins/test/tapstart/scripts
+/mw/appsupport/applaunchservices/applaunchplugins/test/tapstart/src
+/mw/appsupport/applaunchservices/applaunchplugins/test/testapps
+/mw/appsupport/appfw/apparchitecture/ServiceRegistry
+/mw/appsupport/appfw/apparchitecture/apfile
+/mw/appsupport/appfw/apparchitecture/apgrfx
+/mw/appsupport/appfw/apparchitecture/apparc
+/mw/appsupport/appfw/apparchitecture/apserv
+/mw/appsupport/appfw/apparchitecture/apsexe
+/mw/appsupport/appfw/apparchitecture/apstart
+/mw/appsupport/appfw/apparchitecture/bwins
+/mw/appsupport/appfw/apparchitecture/eabi
+/mw/appsupport/appfw/apparchitecture/group
+/mw/appsupport/appfw/apparchitecture/inc
+/mw/appsupport/appfw/apparchitecture/rec
+/mw/appsupport/appfw/apparchitecture/tdata/mimecontentpolicy
+/mw/appsupport/appfw/apparchitecture/tdatasrc
+/mw/appsupport/appfw/apparchitecture/tef/TAppInstall
+/mw/appsupport/appfw/apparchitecture/tef/TBufferOnlyRec
+/mw/appsupport/appfw/apparchitecture/tef/TESTREC
+/mw/appsupport/appfw/apparchitecture/tef/TEndTaskTestApp
+/mw/appsupport/appfw/apparchitecture/tef/TMimeRec
+/mw/appsupport/appfw/apparchitecture/tef/TMimeRec1
+/mw/appsupport/appfw/apparchitecture/tef/TNonNative
+/mw/appsupport/appfw/apparchitecture/tef/TSidChecker
+/mw/appsupport/appfw/apparchitecture/tef/T_DataPrioritySystem1
+/mw/appsupport/appfw/apparchitecture/tef/T_DataPrioritySystem2
+/mw/appsupport/appfw/apparchitecture/tef/T_EnvSlots
+/mw/appsupport/appfw/apparchitecture/tef/scripts/emulator
+/mw/appsupport/appfw/apparchitecture/tef/scripts/hardware
+/mw/appsupport/appfw/apparchitecture/tef/tRuleBasedApps
+/mw/appsupport/appfw/apparchitecture/tef/tlargestack
+/mw/appsupport/appfw/apparchitecture/tef/tnotifydrivesapp
+/mw/appsupport/appfw/apparchitecture/tef/tssaac/scripts/emulator
+/mw/appsupport/appfw/apparchitecture/tef/tssaac/scripts/hardware
+/mw/appsupport/appfw/apparchitecture/tef/tupgradeiconapp
+/mw/classicui/lafagnosticuifoundation/bmpanimation/bwins
+/mw/classicui/lafagnosticuifoundation/bmpanimation/docs
+/mw/classicui/lafagnosticuifoundation/bmpanimation/eabi
+/mw/classicui/lafagnosticuifoundation/bmpanimation/group
+/mw/classicui/lafagnosticuifoundation/bmpanimation/inc
+/mw/classicui/lafagnosticuifoundation/bmpanimation/src
+/mw/classicui/lafagnosticuifoundation/bmpanimation/tdata
+/mw/classicui/lafagnosticuifoundation/bmpanimation/tef/scripts
+/mw/classicui/lafagnosticuifoundation/clockanim/bwins
+/mw/classicui/lafagnosticuifoundation/clockanim/ddesign
+/mw/classicui/lafagnosticuifoundation/clockanim/eabi
+/mw/classicui/lafagnosticuifoundation/clockanim/group
+/mw/classicui/lafagnosticuifoundation/clockanim/inc
+/mw/classicui/lafagnosticuifoundation/clockanim/src
+/mw/classicui/lafagnosticuifoundation/clockanim/tdata
+/mw/classicui/lafagnosticuifoundation/clockanim/tef/scripts
+/mw/appsupport/filehandling/fileconverterfw/CNFTOOL
+/mw/appsupport/filehandling/fileconverterfw/Design
+/mw/appsupport/filehandling/fileconverterfw/INC
+/mw/appsupport/filehandling/fileconverterfw/SRC
+/mw/appsupport/filehandling/fileconverterfw/TSRC
+/mw/appsupport/filehandling/fileconverterfw/Tef/scripts
+/mw/appsupport/filehandling/fileconverterfw/bwins
+/mw/appsupport/filehandling/fileconverterfw/documentation
+/mw/appsupport/filehandling/fileconverterfw/eabi
+/mw/appsupport/filehandling/fileconverterfw/group
+/mw/classicui/lafagnosticuifoundation/cone/bwins
+/mw/classicui/lafagnosticuifoundation/cone/eabi
+/mw/classicui/lafagnosticuifoundation/cone/group
+/mw/classicui/lafagnosticuifoundation/cone/inc
+/mw/classicui/lafagnosticuifoundation/cone/src
+/mw/classicui/lafagnosticuifoundation/cone/tef/scripts
+/mw/classicui/lafagnosticuifoundation/cone/tef/twindowposition
+/mw/classicui/commonuisupport/uifwsdocs/Component Design
+/mw/classicui/commonuisupport/uifwsdocs/How To
+/mw/classicui/commonuisupport/uifwsdocs/Specifications/9.1
+/mw/classicui/commonuisupport/uifwsdocs/Test Specifications/9.1
+/mw/classicui/commonuisupport/uifwsdocs/Test Specifications/9.2
+/mw/classicui/commonuisupport/uifwsdocs/Test Specifications/9.3
+/mw/classicui/commonuisupport/uifwsdocs/Test Specifications/9.4
+/mw/classicui/commonuisupport/uifwsdocs/Test Specifications/9.5
+/mw/classicui/commonuisupport/uifwsdocs/Test Specifications/9.6
+/mw/classicui/lafagnosticuifoundation/uigraphicsutils/bwins
+/mw/classicui/lafagnosticuifoundation/uigraphicsutils/eabi
+/mw/classicui/lafagnosticuifoundation/uigraphicsutils/group
+/mw/classicui/lafagnosticuifoundation/uigraphicsutils/gulinc
+/mw/classicui/lafagnosticuifoundation/uigraphicsutils/gulsrc
+/mw/classicui/lafagnosticuifoundation/uigraphicsutils/tef/scripts
+/mw/classicui/lafagnosticuifoundation/uigraphicsutils/tef/tdatasrc
+/mw/classicui/lafagnosticuifoundation/uigraphicsutils/tulinc
+/mw/classicui/lafagnosticuifoundation/uigraphicsutils/tulsrc
+/os/ossrv/genericservices/mimerecognitionfw/apmime
+/os/ossrv/genericservices/mimerecognitionfw/bwins
+/os/ossrv/genericservices/mimerecognitionfw/eabi
+/os/ossrv/genericservices/mimerecognitionfw/group
+/os/ossrv/genericservices/mimerecognitionfw/inc
+/os/ossrv/genericservices/mimerecognitionfw/rec
+/os/ossrv/genericservices/mimerecognitionfw/tdata
+/os/ossrv/genericservices/mimerecognitionfw/tef/scripts
+/mw/classicui/commonuisupport/errorresolverdata/group
+/os/textandloc/textrendering/texthandling/Documentation
+/os/textandloc/textrendering/texthandling/bwins
+/os/textandloc/textrendering/texthandling/eabi
+/os/textandloc/textrendering/texthandling/group
+/os/textandloc/textrendering/texthandling/inc
+/os/textandloc/textrendering/texthandling/incp
+/os/textandloc/textrendering/texthandling/sconpics
+/os/textandloc/textrendering/texthandling/sfields
+/os/textandloc/textrendering/texthandling/spml
+/os/textandloc/textrendering/texthandling/stext
+/os/textandloc/textrendering/texthandling/testdata
+/os/textandloc/textrendering/texthandling/tfields
+/os/textandloc/textrendering/texthandling/tpml
+/os/textandloc/textrendering/texthandling/ttext
+/mw/inputmethods/fep/frontendprocessor/bwins
+/mw/inputmethods/fep/frontendprocessor/eabi
+/mw/inputmethods/fep/frontendprocessor/group
+/mw/inputmethods/fep/frontendprocessor/include
+/mw/inputmethods/fep/frontendprocessor/source
+/mw/inputmethods/fep/frontendprocessor/test/feps
+/mw/inputmethods/fep/frontendprocessor/test/group
+/mw/inputmethods/fep/frontendprocessor/test/inc
+/mw/inputmethods/fep/frontendprocessor/test/scripts
+/mw/inputmethods/fep/frontendprocessor/test/src
+/os/textandloc/textrendering/textformatting/bwins
+/os/textandloc/textrendering/textformatting/documentation
+/os/textandloc/textrendering/textformatting/eabi
+/os/textandloc/textrendering/textformatting/form_and_etext_editor
+/os/textandloc/textrendering/textformatting/group
+/os/textandloc/textrendering/textformatting/inc
+/os/textandloc/textrendering/textformatting/tagma
+/os/textandloc/textrendering/textformatting/tbox
+/os/textandloc/textrendering/textformatting/tdata
+/os/textandloc/textrendering/textformatting/test/data
+/os/textandloc/textrendering/textformatting/test/documentation
+/os/textandloc/textrendering/textformatting/test/group
+/os/textandloc/textrendering/textformatting/test/src
+/os/textandloc/textrendering/textformatting/test/tbandformat/bwins
+/os/textandloc/textrendering/textformatting/test/tbandformat/documentation
+/os/textandloc/textrendering/textformatting/test/tbandformat/eabi
+/os/textandloc/textrendering/textformatting/test/tbandformat/group
+/os/textandloc/textrendering/textformatting/test/tbandformat/inc
+/os/textandloc/textrendering/textformatting/test/tbandformat/src/helper
+/os/textandloc/textrendering/textformatting/test/tbandformat/src/tests
+/os/textandloc/textrendering/textformatting/testfont
+/os/textandloc/textrendering/textformatting/undo
+/mw/classicui/lafagnosticuifoundation/graphicseffects/Adapter/bwins
+/mw/classicui/lafagnosticuifoundation/graphicseffects/Adapter/eabi
+/mw/classicui/lafagnosticuifoundation/graphicseffects/Adapter/inc
+/mw/classicui/lafagnosticuifoundation/graphicseffects/ClientInc
+/mw/classicui/lafagnosticuifoundation/graphicseffects/ClientSrc
+/mw/classicui/lafagnosticuifoundation/graphicseffects/StubAdapterInc
+/mw/classicui/lafagnosticuifoundation/graphicseffects/StubAdapterSrc
+/mw/classicui/lafagnosticuifoundation/graphicseffects/bwins
+/mw/classicui/lafagnosticuifoundation/graphicseffects/eabi
+/mw/classicui/lafagnosticuifoundation/graphicseffects/group
+/mw/classicui/lafagnosticuifoundation/graphicseffects/inc
+/mw/classicui/lafagnosticuifoundation/graphicseffects/test/group
+/mw/classicui/lafagnosticuifoundation/graphicseffects/test/inc
+/mw/classicui/lafagnosticuifoundation/graphicseffects/test/scripts
+/mw/classicui/lafagnosticuifoundation/graphicseffects/test/src
+/mw/classicui/commonuisupport/grid/bwins
+/mw/classicui/commonuisupport/grid/eabi
+/mw/classicui/commonuisupport/grid/group
+/mw/classicui/commonuisupport/grid/inc
+/mw/classicui/commonuisupport/grid/src
+/mw/classicui/commonuisupport/grid/tef/scripts
+/os/textandloc/textrendering/numberformatting/bwins
+/os/textandloc/textrendering/numberformatting/eabi
+/os/textandloc/textrendering/numberformatting/group
+/os/textandloc/textrendering/numberformatting/inc
+/os/textandloc/textrendering/numberformatting/src
+/os/textandloc/textrendering/numberformatting/tsrc
+/mw/appsupport/printingsupport/printinguisupport/bwins
+/mw/appsupport/printingsupport/printinguisupport/eabi
+/mw/appsupport/printingsupport/printinguisupport/group
+/mw/appsupport/printingsupport/printinguisupport/inc
+/mw/appsupport/printingsupport/printinguisupport/src_prev
+/mw/appsupport/printingsupport/printinguisupport/src_prn
+/mw/appsupport/printingsupport/printinguisupport/tef/scripts
+/os/devicesrv/systemhealthmanagement/systemhealthmgr/bwins
+/os/devicesrv/systemhealthmanagement/systemhealthmgr/eabi
+/os/devicesrv/systemhealthmanagement/systemhealthmgr/group
+/os/devicesrv/systemhealthmanagement/systemhealthmgr/inc
+/os/devicesrv/systemhealthmanagement/systemhealthmgr/loadsysmonsrc
+/os/devicesrv/systemhealthmanagement/systemhealthmgr/localinc
+/os/devicesrv/systemhealthmanagement/systemhealthmgr/localsrc
+/os/devicesrv/systemhealthmanagement/systemhealthmgr/restartsyssrc
+/os/devicesrv/systemhealthmanagement/systemhealthmgr/startsafesrc
+/os/devicesrv/systemhealthmanagement/systemhealthmgr/startuppropertiessrc
+/os/devicesrv/systemhealthmanagement/systemhealthmgr/sysmonsrc
+/os/devicesrv/systemhealthmanagement/systemhealthmgr/test/sysmondemo/doc
+/os/devicesrv/systemhealthmanagement/systemhealthmgr/test/sysmondemo/group
+/os/devicesrv/systemhealthmanagement/systemhealthmgr/test/sysmondemo/src
+/os/devicesrv/systemhealthmanagement/systemhealthmgr/test/testappgood
+/os/devicesrv/systemhealthmanagement/systemhealthmgr/test/testappnorv
+/os/devicesrv/systemhealthmanagement/systemhealthmgr/test/testapprvafterretry
+/os/devicesrv/systemhealthmanagement/systemhealthmgr/test/testapprverror
+/os/devicesrv/systemhealthmanagement/systemhealthmgr/test/testappslow
+/os/devicesrv/systemhealthmanagement/systemhealthmgr/test/testprocgood
+/os/devicesrv/systemhealthmanagement/systemhealthmgr/test/tinc
+/os/devicesrv/systemhealthmanagement/systemhealthmgr/test/trestartsys/group
+/os/devicesrv/systemhealthmanagement/systemhealthmgr/test/trestartsys/scripts
+/os/devicesrv/systemhealthmanagement/systemhealthmgr/test/trestartsys/src
+/os/devicesrv/systemhealthmanagement/systemhealthmgr/test/tstartsafe/group
+/os/devicesrv/systemhealthmanagement/systemhealthmgr/test/tstartsafe/scripts
+/os/devicesrv/systemhealthmanagement/systemhealthmgr/test/tstartsafe/src
+/os/devicesrv/systemhealthmanagement/systemhealthmgr/test/tstartupproperties/group
+/os/devicesrv/systemhealthmanagement/systemhealthmgr/test/tstartupproperties/scripts
+/os/devicesrv/systemhealthmanagement/systemhealthmgr/test/tstartupproperties/src
+/os/devicesrv/systemhealthmanagement/systemhealthmgr/test/tsysmon/bwins
+/os/devicesrv/systemhealthmanagement/systemhealthmgr/test/tsysmon/data
+/os/devicesrv/systemhealthmanagement/systemhealthmgr/test/tsysmon/eabi
+/os/devicesrv/systemhealthmanagement/systemhealthmgr/test/tsysmon/group
+/os/devicesrv/systemhealthmanagement/systemhealthmgr/test/tsysmon/resource/emulator
+/os/devicesrv/systemhealthmanagement/systemhealthmgr/test/tsysmon/resource/hardware
+/os/devicesrv/systemhealthmanagement/systemhealthmgr/test/tsysmon/scripts/emulator
+/os/devicesrv/systemhealthmanagement/systemhealthmgr/test/tsysmon/scripts/hardware
+/os/devicesrv/systemhealthmanagement/systemhealthmgr/test/tsysmon/src
+/os/devicesrv/sysstatemgmt/systemstatemgr/cle/group
+/os/devicesrv/sysstatemgmt/systemstatemgr/cle/inc
+/os/devicesrv/sysstatemgmt/systemstatemgr/cle/src
+/os/devicesrv/sysstatemgmt/systemstatemgr/cmd/bwins
+/os/devicesrv/sysstatemgmt/systemstatemgr/cmd/eabi
+/os/devicesrv/sysstatemgmt/systemstatemgr/cmd/group
+/os/devicesrv/sysstatemgmt/systemstatemgr/cmd/inc
+/os/devicesrv/sysstatemgmt/systemstatemgr/cmd/src
+/os/devicesrv/sysstatemgmt/systemstatemgr/cmn/bwins
+/os/devicesrv/sysstatemgmt/systemstatemgr/cmn/eabi
+/os/devicesrv/sysstatemgmt/systemstatemgr/cmn/group
+/os/devicesrv/sysstatemgmt/systemstatemgr/cmn/inc
+/os/devicesrv/sysstatemgmt/systemstatemgr/cmn/src
+/os/devicesrv/sysstatemgmt/systemstatemgr/doc
+/os/devicesrv/sysstatemgmt/systemstatemgr/dompolicy/group
+/os/devicesrv/sysstatemgmt/systemstatemgr/dompolicy/inc
+/os/devicesrv/sysstatemgmt/systemstatemgr/dompolicy/src
+/os/devicesrv/sysstatemgmt/systemstatemgr/group
+/os/devicesrv/sysstatemgmt/systemstatemgr/inc
+/os/devicesrv/sysstatemgmt/systemstatemgr/localinc
+/os/devicesrv/sysstatemgmt/systemstatemgr/localsrc
+/os/devicesrv/sysstatemgmt/systemstatemgr/ss/bwins
+/os/devicesrv/sysstatemgmt/systemstatemgr/ss/eabi
+/os/devicesrv/sysstatemgmt/systemstatemgr/ss/group
+/os/devicesrv/sysstatemgmt/systemstatemgr/ss/inc
+/os/devicesrv/sysstatemgmt/systemstatemgr/ss/src
+/os/devicesrv/sysstatemgmt/systemstatemgr/ssm/group
+/os/devicesrv/sysstatemgmt/systemstatemgr/ssm/inc
+/os/devicesrv/sysstatemgmt/systemstatemgr/ssm/src
+/os/devicesrv/sysstatemgmt/systemstatemgr/sus/bwins
+/os/devicesrv/sysstatemgmt/systemstatemgr/sus/eabi
+/os/devicesrv/sysstatemgmt/systemstatemgr/sus/group
+/os/devicesrv/sysstatemgmt/systemstatemgr/sus/inc
+/os/devicesrv/sysstatemgmt/systemstatemgr/sus/src
+/os/devicesrv/sysstatemgmt/systemstatemgr/test/tcle/group
+/os/devicesrv/sysstatemgmt/systemstatemgr/test/tcle/inc
+/os/devicesrv/sysstatemgmt/systemstatemgr/test/tcle/scripts
+/os/devicesrv/sysstatemgmt/systemstatemgr/test/tcle/src
+/os/devicesrv/sysstatemgmt/systemstatemgr/test/tcmd/bwins
+/os/devicesrv/sysstatemgmt/systemstatemgr/test/tcmd/eabi
+/os/devicesrv/sysstatemgmt/systemstatemgr/test/tcmd/group
+/os/devicesrv/sysstatemgmt/systemstatemgr/test/tcmd/inc
+/os/devicesrv/sysstatemgmt/systemstatemgr/test/tcmd/resource
+/os/devicesrv/sysstatemgmt/systemstatemgr/test/tcmd/scripts
+/os/devicesrv/sysstatemgmt/systemstatemgr/test/tcmd/src
+/os/devicesrv/sysstatemgmt/systemstatemgr/test/tcmn/group
+/os/devicesrv/sysstatemgmt/systemstatemgr/test/tcmn/inc
+/os/devicesrv/sysstatemgmt/systemstatemgr/test/tcmn/scripts
+/os/devicesrv/sysstatemgmt/systemstatemgr/test/tcmn/src
+/os/devicesrv/sysstatemgmt/systemstatemgr/test/testapps/group
+/os/devicesrv/sysstatemgmt/systemstatemgr/test/testapps/inc
+/os/devicesrv/sysstatemgmt/systemstatemgr/test/testapps/src
+/os/devicesrv/sysstatemgmt/systemstatemgr/test/testutils/inc
+/os/devicesrv/sysstatemgmt/systemstatemgr/test/testutils/src
+/os/devicesrv/sysstatemgmt/systemstatemgr/test/tipcfuzz/group
+/os/devicesrv/sysstatemgmt/systemstatemgr/test/tipcfuzz/inc
+/os/devicesrv/sysstatemgmt/systemstatemgr/test/tipcfuzz/scripts
+/os/devicesrv/sysstatemgmt/systemstatemgr/test/tipcfuzz/src
+/os/devicesrv/sysstatemgmt/systemstatemgr/test/tss/group
+/os/devicesrv/sysstatemgmt/systemstatemgr/test/tss/inc
+/os/devicesrv/sysstatemgmt/systemstatemgr/test/tss/scripts
+/os/devicesrv/sysstatemgmt/systemstatemgr/test/tss/src
+/os/devicesrv/sysstatemgmt/systemstatemgr/test/tssm/bwins
+/os/devicesrv/sysstatemgmt/systemstatemgr/test/tssm/eabi
+/os/devicesrv/sysstatemgmt/systemstatemgr/test/tssm/group
+/os/devicesrv/sysstatemgmt/systemstatemgr/test/tssm/inc
+/os/devicesrv/sysstatemgmt/systemstatemgr/test/tssm/resource
+/os/devicesrv/sysstatemgmt/systemstatemgr/test/tssm/scripts
+/os/devicesrv/sysstatemgmt/systemstatemgr/test/tssm/src
+/os/devicesrv/sysstatemgmt/systemstatemgr/test/tsus/bwins
+/os/devicesrv/sysstatemgmt/systemstatemgr/test/tsus/eabi
+/os/devicesrv/sysstatemgmt/systemstatemgr/test/tsus/group
+/os/devicesrv/sysstatemgmt/systemstatemgr/test/tsus/inc
+/os/devicesrv/sysstatemgmt/systemstatemgr/test/tsus/resource
+/os/devicesrv/sysstatemgmt/systemstatemgr/test/tsus/scripts
+/os/devicesrv/sysstatemgmt/systemstatemgr/test/tsus/src
+/os/devicesrv/sysstatemgmt/systemstateplugins/adptplugin/bwins
+/os/devicesrv/sysstatemgmt/systemstateplugins/adptplugin/eabi
+/os/devicesrv/sysstatemgmt/systemstateplugins/adptplugin/group
+/os/devicesrv/sysstatemgmt/systemstateplugins/adptplugin/inc
+/os/devicesrv/sysstatemgmt/systemstateplugins/adptplugin/src
+/os/devicesrv/sysstatemgmt/systemstateplugins/cmncustomcmd/bwins
+/os/devicesrv/sysstatemgmt/systemstateplugins/cmncustomcmd/eabi
+/os/devicesrv/sysstatemgmt/systemstateplugins/cmncustomcmd/group
+/os/devicesrv/sysstatemgmt/systemstateplugins/cmncustomcmd/inc
+/os/devicesrv/sysstatemgmt/systemstateplugins/cmncustomcmd/src
+/os/devicesrv/sysstatemgmt/systemstateplugins/conditionevaluator/bwins
+/os/devicesrv/sysstatemgmt/systemstateplugins/conditionevaluator/eabi
+/os/devicesrv/sysstatemgmt/systemstateplugins/conditionevaluator/group
+/os/devicesrv/sysstatemgmt/systemstateplugins/conditionevaluator/inc
+/os/devicesrv/sysstatemgmt/systemstateplugins/conditionevaluator/src
+/os/devicesrv/sysstatemgmt/systemstateplugins/group
+/os/devicesrv/sysstatemgmt/systemstateplugins/gsapolicy/bwins
+/os/devicesrv/sysstatemgmt/systemstateplugins/gsapolicy/eabi
+/os/devicesrv/sysstatemgmt/systemstateplugins/gsapolicy/group
+/os/devicesrv/sysstatemgmt/systemstateplugins/gsapolicy/inc
+/os/devicesrv/sysstatemgmt/systemstateplugins/gsapolicy/resource/armv5
+/os/devicesrv/sysstatemgmt/systemstateplugins/gsapolicy/resource/wins
+/os/devicesrv/sysstatemgmt/systemstateplugins/gsapolicy/src
+/os/devicesrv/sysstatemgmt/systemstateplugins/localinc
+/os/devicesrv/sysstatemgmt/systemstateplugins/localsrc
+/os/devicesrv/sysstatemgmt/systemstateplugins/test/tappgsapolicy/group
+/os/devicesrv/sysstatemgmt/systemstateplugins/test/tappgsapolicy/resource
+/os/devicesrv/sysstatemgmt/systemstateplugins/test/tappgsapolicy/src
+/os/devicesrv/sysstatemgmt/systemstateplugins/test/tcmncustomcmd/group
+/os/devicesrv/sysstatemgmt/systemstateplugins/test/tcmncustomcmd/inc
+/os/devicesrv/sysstatemgmt/systemstateplugins/test/tcmncustomcmd/scripts
+/os/devicesrv/sysstatemgmt/systemstateplugins/test/tcmncustomcmd/src
+/os/devicesrv/sysstatemgmt/systemstateplugins/test/tintadptplugin/group
+/os/devicesrv/sysstatemgmt/systemstateplugins/test/tintadptplugin/inc
+/os/devicesrv/sysstatemgmt/systemstateplugins/test/tintadptplugin/scripts
+/os/devicesrv/sysstatemgmt/systemstateplugins/test/tintadptplugin/src
+/os/devicesrv/sysstatemgmt/systemstateplugins/test/tintconditionevaluator/bwins
+/os/devicesrv/sysstatemgmt/systemstateplugins/test/tintconditionevaluator/eabi
+/os/devicesrv/sysstatemgmt/systemstateplugins/test/tintconditionevaluator/group
+/os/devicesrv/sysstatemgmt/systemstateplugins/test/tintconditionevaluator/inc
+/os/devicesrv/sysstatemgmt/systemstateplugins/test/tintconditionevaluator/resource
+/os/devicesrv/sysstatemgmt/systemstateplugins/test/tintconditionevaluator/scripts
+/os/devicesrv/sysstatemgmt/systemstateplugins/test/tintconditionevaluator/src
+/os/devicesrv/sysstatemgmt/systemstateplugins/test/tintgsapolicy/group
+/os/devicesrv/sysstatemgmt/systemstateplugins/test/tintgsapolicy/inc
+/os/devicesrv/sysstatemgmt/systemstateplugins/test/tintgsapolicy/resource
+/os/devicesrv/sysstatemgmt/systemstateplugins/test/tintgsapolicy/scripts
+/os/devicesrv/sysstatemgmt/systemstateplugins/test/tintgsapolicy/src
+/os/devicesrv/sysstatemgmt/systemstateplugins/test/tunitadptplugin/group
+/os/devicesrv/sysstatemgmt/systemstateplugins/test/tunitadptplugin/inc
+/os/devicesrv/sysstatemgmt/systemstateplugins/test/tunitadptplugin/scripts
+/os/devicesrv/sysstatemgmt/systemstateplugins/test/tunitadptplugin/src
+/os/devicesrv/sysstatemgmt/systemstateplugins/test/tunitconditionevaluator/group
+/os/devicesrv/sysstatemgmt/systemstateplugins/test/tunitconditionevaluator/inc
+/os/devicesrv/sysstatemgmt/systemstateplugins/test/tunitconditionevaluator/resource
+/os/devicesrv/sysstatemgmt/systemstateplugins/test/tunitconditionevaluator/scripts
+/os/devicesrv/sysstatemgmt/systemstateplugins/test/tunitconditionevaluator/src
+/os/devicesrv/sysstatemgmt/systemstateplugins/test/tunitgsapolicy/group
+/os/devicesrv/sysstatemgmt/systemstateplugins/test/tunitgsapolicy/inc
+/os/devicesrv/sysstatemgmt/systemstateplugins/test/tunitgsapolicy/scripts
+/os/devicesrv/sysstatemgmt/systemstateplugins/test/tunitgsapolicy/src
+/os/devicesrv/sysstatemgmt/systemstateplugins/test/tunitutilityplugin/group
+/os/devicesrv/sysstatemgmt/systemstateplugins/test/tunitutilityplugin/inc
+/os/devicesrv/sysstatemgmt/systemstateplugins/test/tunitutilityplugin/scripts
+/os/devicesrv/sysstatemgmt/systemstateplugins/test/tunitutilityplugin/src
+/os/devicesrv/sysstatemgmt/systemstateplugins/utilityplugins/bwins
+/os/devicesrv/sysstatemgmt/systemstateplugins/utilityplugins/eabi
+/os/devicesrv/sysstatemgmt/systemstateplugins/utilityplugins/group
+/os/devicesrv/sysstatemgmt/systemstateplugins/utilityplugins/inc
+/os/devicesrv/sysstatemgmt/systemstateplugins/utilityplugins/src
+/os/devicesrv/sysstatemgmt/systemstatereferenceplugins/clayer/bwins
+/os/devicesrv/sysstatemgmt/systemstatereferenceplugins/clayer/eabi
+/os/devicesrv/sysstatemgmt/systemstatereferenceplugins/clayer/group
+/os/devicesrv/sysstatemgmt/systemstatereferenceplugins/clayer/inc
+/os/devicesrv/sysstatemgmt/systemstatereferenceplugins/clayer/src
+/os/devicesrv/sysstatemgmt/systemstatereferenceplugins/clayer/wrapperinc
+/os/devicesrv/sysstatemgmt/systemstatereferenceplugins/custcmd/bwins
+/os/devicesrv/sysstatemgmt/systemstatereferenceplugins/custcmd/eabi
+/os/devicesrv/sysstatemgmt/systemstatereferenceplugins/custcmd/group
+/os/devicesrv/sysstatemgmt/systemstatereferenceplugins/custcmd/inc
+/os/devicesrv/sysstatemgmt/systemstatereferenceplugins/custcmd/src
+/os/devicesrv/sysstatemgmt/systemstatereferenceplugins/group
+/os/devicesrv/sysstatemgmt/systemstatereferenceplugins/localinc
+/os/devicesrv/sysstatemgmt/systemstatereferenceplugins/localsrc
+/os/devicesrv/sysstatemgmt/systemstatereferenceplugins/test/tclayer/group
+/os/devicesrv/sysstatemgmt/systemstatereferenceplugins/test/tclayer/inc
+/os/devicesrv/sysstatemgmt/systemstatereferenceplugins/test/tclayer/scripts
+/os/devicesrv/sysstatemgmt/systemstatereferenceplugins/test/tclayer/src
+/os/devicesrv/sysstatemgmt/systemstatereferenceplugins/test/tintcustcmd/bwins
+/os/devicesrv/sysstatemgmt/systemstatereferenceplugins/test/tintcustcmd/eabi
+/os/devicesrv/sysstatemgmt/systemstatereferenceplugins/test/tintcustcmd/group
+/os/devicesrv/sysstatemgmt/systemstatereferenceplugins/test/tintcustcmd/inc
+/os/devicesrv/sysstatemgmt/systemstatereferenceplugins/test/tintcustcmd/scripts
+/os/devicesrv/sysstatemgmt/systemstatereferenceplugins/test/tintcustcmd/src
+/os/devicesrv/sysstatemgmt/systemstatereferenceplugins/test/tunitcustcmd/group
+/os/devicesrv/sysstatemgmt/systemstatereferenceplugins/test/tunitcustcmd/inc
+/os/devicesrv/sysstatemgmt/systemstatereferenceplugins/test/tunitcustcmd/scripts
+/os/devicesrv/sysstatemgmt/systemstatereferenceplugins/test/tunitcustcmd/src
+/os/devicesrv/sysstatemgmt/systemstarter/amastartsrc
+/os/devicesrv/sysstatemgmt/systemstarter/bwins
+/os/devicesrv/sysstatemgmt/systemstarter/documentation/9.4
+/os/devicesrv/sysstatemgmt/systemstarter/documentation/9.5
+/os/devicesrv/sysstatemgmt/systemstarter/dominc
+/os/devicesrv/sysstatemgmt/systemstarter/domsrc
+/os/devicesrv/sysstatemgmt/systemstarter/dscstoresrc
+/os/devicesrv/sysstatemgmt/systemstarter/eabi
+/os/devicesrv/sysstatemgmt/systemstarter/group
+/os/devicesrv/sysstatemgmt/systemstarter/inc
+/os/devicesrv/sysstatemgmt/systemstarter/restartsyssrc
+/os/devicesrv/sysstatemgmt/systemstarter/src
+/os/devicesrv/sysstatemgmt/systemstarter/startsafesrc
+/os/devicesrv/sysstatemgmt/systemstarter/startuppropertiessrc
+/os/devicesrv/sysstatemgmt/systemstarter/sysmonsrc
+/os/devicesrv/sysstatemgmt/systemstarter/test/sysmondemo/doc
+/os/devicesrv/sysstatemgmt/systemstarter/test/sysmondemo/group
+/os/devicesrv/sysstatemgmt/systemstarter/test/sysmondemo/src
+/os/devicesrv/sysstatemgmt/systemstarter/test/tamastarter/group
+/os/devicesrv/sysstatemgmt/systemstarter/test/tamastarter/inc
+/os/devicesrv/sysstatemgmt/systemstarter/test/tamastarter/resource/emulator
+/os/devicesrv/sysstatemgmt/systemstarter/test/tamastarter/resource/hardware
+/os/devicesrv/sysstatemgmt/systemstarter/test/tamastarter/scripts/emulator
+/os/devicesrv/sysstatemgmt/systemstarter/test/tamastarter/scripts/hardware
+/os/devicesrv/sysstatemgmt/systemstarter/test/tamastarter/src
+/os/devicesrv/sysstatemgmt/systemstarter/test/tapstart/group
+/os/devicesrv/sysstatemgmt/systemstarter/test/tapstart/scripts
+/os/devicesrv/sysstatemgmt/systemstarter/test/tapstart/src
+/os/devicesrv/sysstatemgmt/systemstarter/test/tdscstore/group
+/os/devicesrv/sysstatemgmt/systemstarter/test/tdscstore/inc
+/os/devicesrv/sysstatemgmt/systemstarter/test/tdscstore/scripts
+/os/devicesrv/sysstatemgmt/systemstarter/test/tdscstore/src
+/os/devicesrv/sysstatemgmt/systemstarter/test/tdscstore/testdata
+/os/devicesrv/sysstatemgmt/systemstarter/test/testappgood
+/os/devicesrv/sysstatemgmt/systemstarter/test/testappnorv
+/os/devicesrv/sysstatemgmt/systemstarter/test/testapprvafterretry
+/os/devicesrv/sysstatemgmt/systemstarter/test/testapprverror
+/os/devicesrv/sysstatemgmt/systemstarter/test/testappslow
+/os/devicesrv/sysstatemgmt/systemstarter/test/testprocgood
+/os/devicesrv/sysstatemgmt/systemstarter/test/testprocslowlog
+/os/devicesrv/sysstatemgmt/systemstarter/test/tinc
+/os/devicesrv/sysstatemgmt/systemstarter/test/trestartsys/group
+/os/devicesrv/sysstatemgmt/systemstarter/test/trestartsys/scripts
+/os/devicesrv/sysstatemgmt/systemstarter/test/trestartsys/src
+/os/devicesrv/sysstatemgmt/systemstarter/test/tstartsafe/group
+/os/devicesrv/sysstatemgmt/systemstarter/test/tstartsafe/scripts
+/os/devicesrv/sysstatemgmt/systemstarter/test/tstartsafe/src
+/os/devicesrv/sysstatemgmt/systemstarter/test/tstartupproperties/group
+/os/devicesrv/sysstatemgmt/systemstarter/test/tstartupproperties/scripts
+/os/devicesrv/sysstatemgmt/systemstarter/test/tstartupproperties/src
+/os/devicesrv/sysstatemgmt/systemstarter/test/tsysmon/bwins
+/os/devicesrv/sysstatemgmt/systemstarter/test/tsysmon/data
+/os/devicesrv/sysstatemgmt/systemstarter/test/tsysmon/eabi
+/os/devicesrv/sysstatemgmt/systemstarter/test/tsysmon/group
+/os/devicesrv/sysstatemgmt/systemstarter/test/tsysmon/resource/emulator
+/os/devicesrv/sysstatemgmt/systemstarter/test/tsysmon/resource/hardware
+/os/devicesrv/sysstatemgmt/systemstarter/test/tsysmon/scripts/emulator
+/os/devicesrv/sysstatemgmt/systemstarter/test/tsysmon/scripts/hardware
+/os/devicesrv/sysstatemgmt/systemstarter/test/tsysmon/src
+/os/devicesrv/sysstatemgmt/systemstarter/test/tsysstart/BWINS
+/os/devicesrv/sysstatemgmt/systemstarter/test/tsysstart/EABI
+/os/devicesrv/sysstatemgmt/systemstarter/test/tsysstart/group
+/os/devicesrv/sysstatemgmt/systemstarter/test/tsysstart/inc
+/os/devicesrv/sysstatemgmt/systemstarter/test/tsysstart/resource/emulator
+/os/devicesrv/sysstatemgmt/systemstarter/test/tsysstart/resource/hardware
+/os/devicesrv/sysstatemgmt/systemstarter/test/tsysstart/rom
+/os/devicesrv/sysstatemgmt/systemstarter/test/tsysstart/scripts/emulator
+/os/devicesrv/sysstatemgmt/systemstarter/test/tsysstart/scripts/hardware
+/os/devicesrv/sysstatemgmt/systemstarter/test/tsysstart/src
+/os/devicesrv/sysstatemgmt/systemstarter/test/tsysstart2/group
+/os/devicesrv/sysstatemgmt/systemstarter/test/tsysstart2/resource/emulator
+/os/devicesrv/sysstatemgmt/systemstarter/test/tsysstart2/resource/hardware
+/os/devicesrv/sysstatemgmt/systemstarter/test/tsysstart2/scripts/emulator
+/os/devicesrv/sysstatemgmt/systemstarter/test/tsysstart2/src
+/mw/classicui/commonuisupport/uilaf/GROUP
+/mw/classicui/commonuisupport/uilaf/bwins
+/mw/classicui/commonuisupport/uilaf/eabi
+/mw/classicui/commonuisupport/uilaf/inc
+/mw/classicui/commonuisupport/uilaf/resource
+/mw/classicui/commonuisupport/uikon/bwins
+/mw/classicui/commonuisupport/uikon/coreinc
+/mw/classicui/commonuisupport/uikon/coresrc
+/mw/classicui/commonuisupport/uikon/docs
+/mw/classicui/commonuisupport/uikon/documentation
+/mw/classicui/commonuisupport/uikon/eabi
+/mw/classicui/commonuisupport/uikon/examples/notifier1/client
+/mw/classicui/commonuisupport/uikon/examples/notifier1/group
+/mw/classicui/commonuisupport/uikon/examples/notifier1/notifier
+/mw/classicui/commonuisupport/uikon/group
+/mw/classicui/commonuisupport/uikon/srvinc
+/mw/classicui/commonuisupport/uikon/srvsrc
+/mw/classicui/commonuisupport/uikon/test/BWINS
+/mw/classicui/commonuisupport/uikon/test/EABI
+/mw/classicui/commonuisupport/uikon/test/group
+/mw/classicui/commonuisupport/uikon/test/resource
+/mw/classicui/commonuisupport/uikon/test/scripts
+/mw/classicui/commonuisupport/uikon/test/tStaticSettingsInit
+/mw/classicui/commonuisupport/uikon/test/tborders/tbrdrcol
+/mw/classicui/commonuisupport/uikon/test/tcolours/tcolovr
+/mw/classicui/commonuisupport/uikon/test/tcolours/tcolscm
+/mw/classicui/commonuisupport/uikon/test/tdisableexitchecks/disableexitchecksapp
+/mw/classicui/commonuisupport/uikon/test/teikcore/tapplicationlanguage
+/mw/classicui/commonuisupport/uikon/test/teikcore/tapplicationlanguagefrench
+/mw/classicui/commonuisupport/uikon/test/teikcore/tapplicationlanguagenotset
+/mw/classicui/commonuisupport/uikon/test/teikcore/tapplicationlanguagesc
+/mw/classicui/commonuisupport/uikon/test/teikcore/tapplicationlanguagezulu
+/mw/classicui/commonuisupport/uikon/test/teikcore/tshutter
+/mw/classicui/commonuisupport/uikon/test/teikenv/tbitmap
+/mw/classicui/commonuisupport/uikon/test/teikenv/tcaptiontest
+/mw/classicui/commonuisupport/uikon/test/teiksrv/tbackup
+/mw/classicui/commonuisupport/uikon/test/teiksrv/tcapability
+/mw/classicui/commonuisupport/uikon/test/teiksrv/tnotdial
+/mw/classicui/commonuisupport/uikon/test/teiksrv/tsyscolor
+/mw/classicui/commonuisupport/uikon/test/terror/terrorapp
+/mw/classicui/commonuisupport/uikon/test/terror/terrortextwithtitleapp/data
+/mw/classicui/commonuisupport/uikon/test/tfileutils
+/mw/classicui/commonuisupport/uikon/test/tfocus
+/mw/classicui/commonuisupport/uikon/test/tlibs/contentmgr
+/mw/classicui/commonuisupport/uikon/test/tlibs/taddlib
+/mw/classicui/commonuisupport/uikon/test/tlibs/tautolib
+/mw/classicui/commonuisupport/uikon/test/tlibs/tloaddll
+/mw/classicui/commonuisupport/uikon/test/tmessageserv
+/mw/classicui/commonuisupport/uikon/test/tmsg
+/mw/classicui/commonuisupport/uikon/test/tmultiplealarm
+/mw/classicui/commonuisupport/uikon/test/tpackage
+/mw/classicui/commonuisupport/uikon/test/tparent
+/mw/classicui/commonuisupport/uikon/test/tspane
+/mw/classicui/commonuisupport/uikon/test/tsprites/thlsprite
+/mw/classicui/commonuisupport/uikon/test/tuiktestserver
+/mw/classicui/commonuisupport/uikon/test/tviews/applaunchtest/group
+/mw/classicui/commonuisupport/uikon/test/tviews/applaunchtest/inc
+/mw/classicui/commonuisupport/uikon/test/tviews/applaunchtest/src
+/mw/classicui/commonuisupport/uikon/test/tviews/tview1
+/mw/classicui/commonuisupport/uikon/test/tviews/tview2
+/mw/classicui/commonuisupport/uikon/test/tviews/tview3
+/mw/classicui/commonuisupport/uikon/test/tviews/tview4
+/mw/classicui/commonuisupport/uikon/test/tviews/tvw
+/mw/appsupport/appfw/viewserver/bwins
+/mw/appsupport/appfw/viewserver/client
+/mw/appsupport/appfw/viewserver/eabi
+/mw/appsupport/appfw/viewserver/group
+/mw/appsupport/appfw/viewserver/inc
+/mw/appsupport/appfw/viewserver/server
+/mw/appsupport/appfw/viewserver/test/group
+/mw/appsupport/appfw/viewserver/test/inc
+/mw/appsupport/appfw/viewserver/test/rom
+/mw/appsupport/appfw/viewserver/test/scripts/emulator
+/mw/appsupport/appfw/viewserver/test/scripts/hardware
+/mw/appsupport/appfw/viewserver/test/src
+/mw/appsupport/appfw/viewserver/test/tviews/applaunchtest/group
+/mw/appsupport/appfw/viewserver/test/tviews/applaunchtest/inc
+/mw/appsupport/appfw/viewserver/test/tviews/applaunchtest/src
+/mw/appsupport/appfw/viewserver/test/tviews/tview1
+/mw/appsupport/appfw/viewserver/test/tviews/tview2
+/mw/appsupport/appfw/viewserver/test/tviews/tview3
+/mw/appsupport/appfw/viewserver/test/tviews/tview4
+/mw/appsupport/appfw/viewserver/test/tviews/tvw
+/os/textandloc/textrendering/word/SRC
+/os/textandloc/textrendering/word/aif
+/os/textandloc/textrendering/word/caif
+/os/textandloc/textrendering/word/cdata
+/os/textandloc/textrendering/word/group
+/os/textandloc/textrendering/word/resource
+/os/textandloc/textrendering/word/testdata
+/os/textandloc/textrendering/word/utemplat
+/mw/appsupport/commonappservices/backuprestorenotification/bmarm
+/mw/appsupport/commonappservices/backuprestorenotification/bwins
+/mw/appsupport/commonappservices/backuprestorenotification/eabi
+/mw/appsupport/commonappservices/backuprestorenotification/group
+/mw/appsupport/commonappservices/backuprestorenotification/inc
+/mw/appsupport/commonappservices/backuprestorenotification/src
+/mw/appsupport/commonappservices/backuprestorenotification/tsrc/Integration/TestBackupRestoreNotification/group
+/mw/appsupport/commonappservices/backuprestorenotification/tsrc/Integration/TestBackupRestoreNotification/inc
+/mw/appsupport/commonappservices/backuprestorenotification/tsrc/Integration/TestBackupRestoreNotification/scripts
+/mw/appsupport/commonappservices/backuprestorenotification/tsrc/Integration/TestBackupRestoreNotification/src
+/mw/appsupport/tzservices/tzloc/bmarm
+/mw/appsupport/tzservices/tzloc/bwins
+/mw/appsupport/tzservices/tzloc/documentation
+/mw/appsupport/tzservices/tzloc/eabi
+/mw/appsupport/tzservices/tzloc/group
+/mw/appsupport/tzservices/tzloc/inc
+/mw/appsupport/tzservices/tzloc/res
+/mw/appsupport/tzservices/tzloc/src
+/mw/appsupport/tzservices/tzloc/test/integration/TzLocalTestServer/bwins
+/mw/appsupport/tzservices/tzloc/test/integration/TzLocalTestServer/group
+/mw/appsupport/tzservices/tzloc/test/integration/TzLocalTestServer/inc
+/mw/appsupport/tzservices/tzloc/test/integration/TzLocalTestServer/src
+/mw/appsupport/tzservices/tzloc/test/integration/data
+/mw/appsupport/tzservices/tzloc/test/integration/tztestscripts
+/mw/appsupport/tzservices/tzloc/test/rtest/timezonelocalization/locale
+/mw/appsupport/tzservices/tzloc/test/rtest/timezonelocalization/modified
+/mw/appsupport/tzservices/tzloc/test/tzltestres
+/mw/appsupport/tzservices/tzloc/test/unit/Scripts
+/mw/appsupport/tzservices/tzloc/test/unit/TzLocalizationTestServer/bwins
+/mw/appsupport/tzservices/tzloc/test/unit/TzLocalizationTestServer/group
+/mw/appsupport/tzservices/tzloc/test/unit/TzLocalizationTestServer/inc
+/mw/appsupport/tzservices/tzloc/test/unit/TzLocalizationTestServer/src
+/mw/appsupport/tzservices/tzloc/test/unit/data
+/mw/appsupport/tzservices/tzlocrscfactory/group
+/mw/appsupport/tzservices/tzlocrscfactory/res
+/mw/appsupport/commonappservices/alarmserver/AlarmAlert/Include
+/mw/appsupport/commonappservices/alarmserver/AlarmAlert/Shared
+/mw/appsupport/commonappservices/alarmserver/AlarmAlert/Source
+/mw/appsupport/commonappservices/alarmserver/Client/Include
+/mw/appsupport/commonappservices/alarmserver/Client/Source
+/mw/appsupport/commonappservices/alarmserver/ConsoleAlarmAlertServer/Include
+/mw/appsupport/commonappservices/alarmserver/ConsoleAlarmAlertServer/Source
+/mw/appsupport/commonappservices/alarmserver/Design
+/mw/appsupport/commonappservices/alarmserver/Documentation
+/mw/appsupport/commonappservices/alarmserver/Group
+/mw/appsupport/commonappservices/alarmserver/Server/Include
+/mw/appsupport/commonappservices/alarmserver/Server/Source
+/mw/appsupport/commonappservices/alarmserver/Shared/Include
+/mw/appsupport/commonappservices/alarmserver/Shared/Source
+/mw/appsupport/commonappservices/alarmserver/Test/Integration/AlarmTestServer/data
+/mw/appsupport/commonappservices/alarmserver/Test/Integration/AlarmTestServer/documentation
+/mw/appsupport/commonappservices/alarmserver/Test/Integration/AlarmTestServer/group
+/mw/appsupport/commonappservices/alarmserver/Test/Integration/AlarmTestServer/inc
+/mw/appsupport/commonappservices/alarmserver/Test/Integration/AlarmTestServer/scripts
+/mw/appsupport/commonappservices/alarmserver/Test/Integration/AlarmTestServer/src
+/mw/appsupport/commonappservices/alarmserver/Test/Integration/TestCITAlarmServer/Documentation
+/mw/appsupport/commonappservices/alarmserver/Test/Integration/TestCITAlarmServer/group
+/mw/appsupport/commonappservices/alarmserver/Test/Integration/TestCITAlarmServer/scripts
+/mw/appsupport/commonappservices/alarmserver/Test/Integration/TestCITAlarmServer/src
+/mw/appsupport/commonappservices/alarmserver/Test/Integration/TestCITAlarmServer/testdata
+/mw/appsupport/commonappservices/alarmserver/Test/ssm
+/mw/appsupport/commonappservices/alarmserver/Test/unit/group
+/mw/appsupport/commonappservices/alarmserver/Test/unit/inc
+/mw/appsupport/commonappservices/alarmserver/Test/unit/scripts
+/mw/appsupport/commonappservices/alarmserver/Test/unit/src
+/mw/appsupport/commonappservices/alarmserver/bmarm
+/mw/appsupport/commonappservices/alarmserver/bwins
+/mw/appsupport/commonappservices/alarmserver/eabi
+/app/organizer/pimappsupport/chinesecalendarconverter/OriginalInc
+/app/organizer/pimappsupport/chinesecalendarconverter/OriginalSrc
+/app/organizer/pimappsupport/chinesecalendarconverter/OriginalTsrc
+/app/organizer/pimappsupport/chinesecalendarconverter/bmarm
+/app/organizer/pimappsupport/chinesecalendarconverter/bwins
+/app/organizer/pimappsupport/chinesecalendarconverter/calcontablesrc
+/app/organizer/pimappsupport/chinesecalendarconverter/docs
+/app/organizer/pimappsupport/chinesecalendarconverter/documentation
+/app/organizer/pimappsupport/chinesecalendarconverter/eabi
+/app/organizer/pimappsupport/chinesecalendarconverter/group
+/app/organizer/pimappsupport/chinesecalendarconverter/inc
+/app/organizer/pimappsupport/chinesecalendarconverter/src/Table-587-2100
+/app/organizer/pimappsupport/chinesecalendarconverter/src/Table1900-2100
+/app/organizer/pimappsupport/chinesecalendarconverter/src/Table1980-2100
+/app/organizer/pimappsupport/chinesecalendarconverter/tsrc
+/mw/appsupport/filehandling/htmltorichtextconverter/bmarm
+/mw/appsupport/filehandling/htmltorichtextconverter/bwins
+/mw/appsupport/filehandling/htmltorichtextconverter/documentation
+/mw/appsupport/filehandling/htmltorichtextconverter/eabi
+/mw/appsupport/filehandling/htmltorichtextconverter/group
+/mw/appsupport/filehandling/htmltorichtextconverter/inc
+/mw/appsupport/filehandling/htmltorichtextconverter/src
+/mw/appsupport/filehandling/htmltorichtextconverter/tdata/profiling
+/mw/appsupport/filehandling/htmltorichtextconverter/tdata/testHtml
+/mw/appsupport/filehandling/htmltorichtextconverter/tsrc/Integration/TestHtmlToCrtCoverter/group
+/mw/appsupport/filehandling/htmltorichtextconverter/tsrc/Integration/TestHtmlToCrtCoverter/inc
+/mw/appsupport/filehandling/htmltorichtextconverter/tsrc/Integration/TestHtmlToCrtCoverter/scripts
+/mw/appsupport/filehandling/htmltorichtextconverter/tsrc/Integration/TestHtmlToCrtCoverter/src
+/mw/appsupport/filehandling/htmltorichtextconverter/tsrc/Integration/TestHtmlToCrtCoverter/testdata
+/mw/appsupport/commonappservices/coreappstest/Group
+/mw/appsupport/commonappservices/coreappstest/Inc
+/mw/appsupport/commonappservices/coreappstest/TestServer/Client
+/mw/appsupport/commonappservices/coreappstest/TestServer/Inc
+/mw/appsupport/commonappservices/coreappstest/TestServer/Server
+/mw/appsupport/commonappservices/coreappstest/TestServer/Test
+/mw/appsupport/commonappservices/coreappstest/bmarm
+/mw/appsupport/commonappservices/coreappstest/bwins
+/mw/appsupport/commonappservices/coreappstest/eabi
+/mw/appsupport/commonappservices/appservicesdocs
+/app/helps/symhelp/helpmodel/TestData/Source/Boss1/Pictures
+/app/helps/symhelp/helpmodel/TestData/Source/Boss2/Pictures
+/app/helps/symhelp/helpmodel/TestData/Source/ER5Help/Calc
+/app/helps/symhelp/helpmodel/TestData/Source/ER5Help/Dict
+/app/helps/symhelp/helpmodel/TestData/Source/ER5Help/General
+/app/helps/symhelp/helpmodel/TestData/Source/ER5Help/Sheet
+/app/helps/symhelp/helpmodel/TestData/Source/ER5Help/Sketch
+/app/helps/symhelp/helpmodel/TestData/Source/PlatSecSearchTest
+/app/helps/symhelp/helpmodel/TestData/TestLocale/source
+/app/helps/symhelp/helpmodel/TestData/TestZoomBitmaps
+/app/helps/symhelp/helpmodel/bmarm
+/app/helps/symhelp/helpmodel/bwins
+/app/helps/symhelp/helpmodel/dbwriter
+/app/helps/symhelp/helpmodel/documentation
+/app/helps/symhelp/helpmodel/eabi
+/app/helps/symhelp/helpmodel/group
+/app/helps/symhelp/helpmodel/inc
+/app/helps/symhelp/helpmodel/lch
+/app/helps/symhelp/helpmodel/src
+/app/helps/symhelp/helpmodel/tsrc
+/mw/appsupport/filehandling/richtexttohtmlconverter/Group
+/mw/appsupport/filehandling/richtexttohtmlconverter/Src
+/mw/appsupport/filehandling/richtexttohtmlconverter/TSrc
+/mw/appsupport/filehandling/richtexttohtmlconverter/Test
+/mw/appsupport/filehandling/richtexttohtmlconverter/inc
+/mw/appsupport/commonappservices/alarmservertest/TestAlarmSrv/AlarmCreateDelete
+/mw/appsupport/commonappservices/alarmservertest/TestAlarmSrv/startconsolealarmalertserver
+/mw/appsupport/commonappservices/alarmservertest/TestMultipleAlarmsSuite/group
+/mw/appsupport/commonappservices/alarmservertest/TestMultipleAlarmsSuite/inc
+/mw/appsupport/commonappservices/alarmservertest/TestMultipleAlarmsSuite/scripts
+/mw/appsupport/commonappservices/alarmservertest/TestMultipleAlarmsSuite/src
+/mw/appsupport/commonappservices/alarmservertest/TestMultipleAlarmsSuite/testdata
+/mw/appsupport/tzservices/worldservertest/TestWorldSrv
+/mw/appsupport/tzservices/tzserver/Client/Include
+/mw/appsupport/tzservices/tzserver/Client/Source
+/mw/appsupport/tzservices/tzserver/Include
+/mw/appsupport/tzservices/tzserver/Server/Include
+/mw/appsupport/tzservices/tzserver/Server/Source
+/mw/appsupport/tzservices/tzserver/analysis
+/mw/appsupport/tzservices/tzserver/bmarm
+/mw/appsupport/tzservices/tzserver/bwins
+/mw/appsupport/tzservices/tzserver/documentation
+/mw/appsupport/tzservices/tzserver/eabi
+/mw/appsupport/tzservices/tzserver/group
+/mw/appsupport/tzservices/tzserver/swiobserverplugin/include
+/mw/appsupport/tzservices/tzserver/swiobserverplugin/source
+/mw/appsupport/tzservices/tzserver/test/Common/inc
+/mw/appsupport/tzservices/tzserver/test/Common/src
+/mw/appsupport/tzservices/tzserver/test/Integration/bmarm
+/mw/appsupport/tzservices/tzserver/test/Integration/bwins
+/mw/appsupport/tzservices/tzserver/test/Integration/docs
+/mw/appsupport/tzservices/tzserver/test/Integration/dstscripts
+/mw/appsupport/tzservices/tzserver/test/Integration/eabi
+/mw/appsupport/tzservices/tzserver/test/Integration/group
+/mw/appsupport/tzservices/tzserver/test/Integration/inc
+/mw/appsupport/tzservices/tzserver/test/Integration/src
+/mw/appsupport/tzservices/tzserver/test/Integration/teststeps/inc
+/mw/appsupport/tzservices/tzserver/test/Integration/teststeps/src
+/mw/appsupport/tzservices/tzserver/test/Unit/bmarm
+/mw/appsupport/tzservices/tzserver/test/Unit/bwins
+/mw/appsupport/tzservices/tzserver/test/Unit/dstscripts
+/mw/appsupport/tzservices/tzserver/test/Unit/eabi
+/mw/appsupport/tzservices/tzserver/test/Unit/group
+/mw/appsupport/tzservices/tzserver/test/Unit/inc
+/mw/appsupport/tzservices/tzserver/test/Unit/resource/hardware
+/mw/appsupport/tzservices/tzserver/test/Unit/src
+/mw/appsupport/tzservices/tzserver/test/Unit/teststeps/inc
+/mw/appsupport/tzservices/tzserver/test/Unit/teststeps/src
+/mw/appsupport/tzservices/tzserver/test/component/testresourcefiles
+/mw/appsupport/tzservices/tzserver/test/switest/bwins
+/mw/appsupport/tzservices/tzserver/test/switest/data
+/mw/appsupport/tzservices/tzserver/test/switest/eabi
+/mw/appsupport/tzservices/tzserver/test/switest/group
+/mw/appsupport/tzservices/tzserver/test/switest/inc
+/mw/appsupport/tzservices/tzserver/test/switest/src
+/mw/appsupport/tzpcside/tzcompiler/Include
+/mw/appsupport/tzpcside/tzcompiler/Release/Data
+/mw/appsupport/tzpcside/tzcompiler/Source
+/mw/appsupport/tzpcside/tzcompiler/documentation
+/mw/appsupport/tzpcside/tzcompiler/group
+/mw/appsupport/tzpcside/tzcompiler/test/integration/TzCompilerTests/documentation
+/mw/appsupport/tzpcside/tzcompiler/test/integration/TzCompilerTests/group
+/mw/appsupport/tzpcside/tzcompiler/test/integration/TzCompilerTests/inc
+/mw/appsupport/tzpcside/tzcompiler/test/integration/TzCompilerTests/src
+/mw/appsupport/tzpcside/tzcompiler/test/integration/TzCompilerTests/testdata/Test1
+/mw/appsupport/tzpcside/tzcompiler/test/integration/TzCompilerTests/testdata/Test10
+/mw/appsupport/tzpcside/tzcompiler/test/integration/TzCompilerTests/testdata/Test11
+/mw/appsupport/tzpcside/tzcompiler/test/integration/TzCompilerTests/testdata/Test12
+/mw/appsupport/tzpcside/tzcompiler/test/integration/TzCompilerTests/testdata/Test13
+/mw/appsupport/tzpcside/tzcompiler/test/integration/TzCompilerTests/testdata/Test2
+/mw/appsupport/tzpcside/tzcompiler/test/integration/TzCompilerTests/testdata/Test3
+/mw/appsupport/tzpcside/tzcompiler/test/integration/TzCompilerTests/testdata/Test4
+/mw/appsupport/tzpcside/tzcompiler/test/integration/TzCompilerTests/testdata/Test5
+/mw/appsupport/tzpcside/tzcompiler/test/integration/TzCompilerTests/testdata/Test6
+/mw/appsupport/tzpcside/tzcompiler/test/integration/TzCompilerTests/testdata/Test7
+/mw/appsupport/tzpcside/tzcompiler/test/integration/TzCompilerTests/testdata/Test8
+/mw/appsupport/tzpcside/tzcompiler/test/integration/TzCompilerTests/testdata/Test9
+/mw/appsupport/tzservices/tzdatabase/data
+/mw/appsupport/tzservices/tzdatabase/group
+/app/organizer/pimappsupport/vcardandvcal/TPerformance
+/app/organizer/pimappsupport/vcardandvcal/TestFiles/K3Data
+/app/organizer/pimappsupport/vcardandvcal/TestvCals/EpocER5
+/app/organizer/pimappsupport/vcardandvcal/TestvCals/Invalid
+/app/organizer/pimappsupport/vcardandvcal/TestvCals/Nokia9110
+/app/organizer/pimappsupport/vcardandvcal/TestvCals/Outlook2000
+/app/organizer/pimappsupport/vcardandvcal/TestvCals/Outlook98
+/app/organizer/pimappsupport/vcardandvcal/TestvCals/Palm3
+/app/organizer/pimappsupport/vcardandvcal/TestvCals/Palm5
+/app/organizer/pimappsupport/vcardandvcal/TestvCals/Various
+/app/organizer/pimappsupport/vcardandvcal/TestvCards/ER5Regression
+/app/organizer/pimappsupport/vcardandvcal/TestvCards/Encoded
+/app/organizer/pimappsupport/vcardandvcal/TestvCards/Epoc
+/app/organizer/pimappsupport/vcardandvcal/TestvCards/Invalid
+/app/organizer/pimappsupport/vcardandvcal/TestvCards/Various
+/app/organizer/pimappsupport/vcardandvcal/TestvCards/VersitJapaneseVCards
+/app/organizer/pimappsupport/vcardandvcal/Ticket
+/app/organizer/pimappsupport/vcardandvcal/bmarm
+/app/organizer/pimappsupport/vcardandvcal/bwins
+/app/organizer/pimappsupport/vcardandvcal/design
+/app/organizer/pimappsupport/vcardandvcal/documentation
+/app/organizer/pimappsupport/vcardandvcal/eabi
+/app/organizer/pimappsupport/vcardandvcal/group
+/app/organizer/pimappsupport/vcardandvcal/inc
+/app/organizer/pimappsupport/vcardandvcal/rec
+/app/organizer/pimappsupport/vcardandvcal/src
+/app/organizer/pimappsupport/vcardandvcal/tsrc/UnitTest_PBAPSupport/group
+/app/organizer/pimappsupport/vcardandvcal/tsrc/UnitTest_PBAPSupport/inc
+/app/organizer/pimappsupport/vcardandvcal/tsrc/UnitTest_PBAPSupport/src
+/app/organizer/pimappsupport/vcardandvcal/tsrc/UnitTest_PBAPSupport/testdata
+/mw/appsupport/tzpcside/worlddatabasekit/Release
+/mw/appsupport/tzpcside/worlddatabasekit/database
+/mw/appsupport/tzpcside/worlddatabasekit/documentation/graphics
+/mw/appsupport/tzpcside/worlddatabasekit/group
+/mw/appsupport/tzpcside/worlddatabasekit/tools/install/wldmnt
+/mw/appsupport/tzpcside/worlddatabasekit/tools/install/wldxtrct
+/mw/appsupport/tzpcside/worlddatabasekit/tools/source/common
+/mw/appsupport/tzpcside/worlddatabasekit/tools/source/wldmaint
+/mw/appsupport/tzpcside/worlddatabasekit/tools/source/wldxtrct
+/mw/appsupport/tzpcside/worldtools/DATA
+/mw/appsupport/tzpcside/worldtools/INC
+/mw/appsupport/tzpcside/worldtools/PROCOMP
+/mw/appsupport/tzpcside/worldtools/PRODUMP
+/mw/appsupport/tzpcside/worldtools/PROENG
+/mw/appsupport/tzpcside/worldtools/SQLENG
+/mw/appsupport/tzpcside/worldtools/SQLMNT
+/mw/appsupport/tzpcside/worldtools/SQLXTRCT
+/mw/appsupport/tzpcside/worldtools/group
+/mw/appsupport/tzservices/worldserver/Client/Include
+/mw/appsupport/tzservices/worldserver/Client/Source
+/mw/appsupport/tzservices/worldserver/Include
+/mw/appsupport/tzservices/worldserver/Server/Include
+/mw/appsupport/tzservices/worldserver/Server/Source
+/mw/appsupport/tzservices/worldserver/bmarm
+/mw/appsupport/tzservices/worldserver/bwins
+/mw/appsupport/tzservices/worldserver/documentation
+/mw/appsupport/tzservices/worldserver/eabi
+/mw/appsupport/tzservices/worldserver/group
+/mw/appsupport/tzservices/worldserver/test/data
+/mw/appsupport/tzservices/worldserver/test/old_format
+/mw/appsupport/tzservices/worldserver/test/unit/group
+/mw/appsupport/tzservices/worldserver/test/unit/inc
+/mw/appsupport/tzservices/worldserver/test/unit/scripts
+/mw/appsupport/tzservices/worldserver/test/unit/src
+/mw/appsupport/tzservices/worldserver/test/unit/teststeps/inc
+/mw/appsupport/tzservices/worldserver/test/unit/teststeps/src
+/mw/netprotocols/applayerpluginsandutils/bookmarksupport/bwins
+/mw/netprotocols/applayerpluginsandutils/bookmarksupport/config
+/mw/netprotocols/applayerpluginsandutils/bookmarksupport/documentation
+/mw/netprotocols/applayerpluginsandutils/bookmarksupport/eabi
+/mw/netprotocols/applayerpluginsandutils/bookmarksupport/group
+/mw/netprotocols/applayerpluginsandutils/bookmarksupport/inc
+/mw/netprotocols/applayerpluginsandutils/bookmarksupport/src
+/mw/netprotocols/applayerpluginsandutils/bookmarksupport/test/Integration/TestBookmarksSuite
+/mw/netprotocols/applayerpluginsandutils/bookmarksupport/test/Integration/bwins
+/mw/netprotocols/applayerpluginsandutils/bookmarksupport/test/cenrepsrv
+/mw/netprotocols/applayerpluginsandutils/bookmarksupport/test/tdata
+/mw/netprotocols/applayerprotocols/httpexamples/PipeliningConfigFilter/Documentation
+/mw/netprotocols/applayerprotocols/httpexamples/PipeliningConfigFilter/FilterSrc
+/mw/netprotocols/applayerprotocols/httpexamples/PipeliningConfigFilter/Group
+/mw/netprotocols/applayerprotocols/httpexamples/PipeliningConfigFilter/Test/Data
+/mw/netprotocols/applayerprotocols/httpexamples/PipeliningConfigFilter/Test/Group
+/mw/netprotocols/applayerprotocols/httpexamples/PipeliningConfigFilter/Test/T_FilterTest
+/mw/netprotocols/applayerprotocols/httpexamples/T_TestFilters
+/mw/netprotocols/applayerprotocols/httpexamples/TestWebBrowser/data
+/mw/netprotocols/applayerprotocols/httpexamples/TestWebBrowser/group
+/mw/netprotocols/applayerprotocols/httpexamples/TestWebBrowser/htmlparserplugin/documents
+/mw/netprotocols/applayerprotocols/httpexamples/TestWebBrowser/htmlparserplugin/inc
+/mw/netprotocols/applayerprotocols/httpexamples/TestWebBrowser/htmlparserplugin/src
+/mw/netprotocols/applayerprotocols/httpexamples/TestWebBrowser/htmlparserplugin/test/t_htmlparser/inc
+/mw/netprotocols/applayerprotocols/httpexamples/TestWebBrowser/htmlparserplugin/test/t_htmlparser/src
+/mw/netprotocols/applayerprotocols/httpexamples/TestWebBrowser/htmlparserplugin/test/tdata/Html
+/mw/netprotocols/applayerprotocols/httpexamples/TestWebBrowser/inc
+/mw/netprotocols/applayerprotocols/httpexamples/TestWebBrowser/src
+/mw/netprotocols/applayerprotocols/httpexamples/bmarm
+/mw/netprotocols/applayerprotocols/httpexamples/bwins
+/mw/netprotocols/applayerprotocols/httpexamples/cookies/bmarm
+/mw/netprotocols/applayerprotocols/httpexamples/cookies/bwins
+/mw/netprotocols/applayerprotocols/httpexamples/cookies/cookiefilter
+/mw/netprotocols/applayerprotocols/httpexamples/cookies/core
+/mw/netprotocols/applayerprotocols/httpexamples/cookies/eabi
+/mw/netprotocols/applayerprotocols/httpexamples/cookies/example
+/mw/netprotocols/applayerprotocols/httpexamples/cookies/group
+/mw/netprotocols/applayerprotocols/httpexamples/cookies/inc
+/mw/netprotocols/applayerprotocols/httpexamples/eabi
+/mw/netprotocols/applayerprotocols/httpexamples/group
+/mw/netprotocols/applayerprotocols/httpexamples/httpexampleclient
+/mw/netprotocols/applayerprotocols/httpexamples/nwsswsptrhnd/group
+/mw/netprotocols/applayerprotocols/httpexamples/t_securitypolicy/example
+/mw/netprotocols/applayerprotocols/httpexamples/t_securitypolicy/test
+/mw/netprotocols/applayerprotocols/httpexamples/testcpimanager
+/mw/netprotocols/applayerprotocols/httpexamples/uaprof/bmarm
+/mw/netprotocols/applayerprotocols/httpexamples/uaprof/bwins
+/mw/netprotocols/applayerprotocols/httpexamples/uaprof/core
+/mw/netprotocols/applayerprotocols/httpexamples/uaprof/eabi
+/mw/netprotocols/applayerprotocols/httpexamples/uaprof/examplecpimanager
+/mw/netprotocols/applayerprotocols/httpexamples/uaprof/group
+/mw/netprotocols/applayerprotocols/httpexamples/uaprof/inc
+/mw/netprotocols/applayerprotocols/httpexamples/uaprof/uaproffilter
+/mw/netprotocols/applayerprotocols/httptransportfw/BWINS
+/mw/netprotocols/applayerprotocols/httptransportfw/EABI
+/mw/netprotocols/applayerprotocols/httptransportfw/Test/Acceptance/Iter1
+/mw/netprotocols/applayerprotocols/httptransportfw/Test/Acceptance/Iter2
+/mw/netprotocols/applayerprotocols/httptransportfw/Test/Acceptance/Iter3
+/mw/netprotocols/applayerprotocols/httptransportfw/Test/Acceptance/Iter5
+/mw/netprotocols/applayerprotocols/httptransportfw/Test/BMARM
+/mw/netprotocols/applayerprotocols/httptransportfw/Test/BWINS
+/mw/netprotocols/applayerprotocols/httptransportfw/Test/Data/certs
+/mw/netprotocols/applayerprotocols/httptransportfw/Test/Data/ini/Pipelining
+/mw/netprotocols/applayerprotocols/httptransportfw/Test/Data/ini/acceptance/BodyFile
+/mw/netprotocols/applayerprotocols/httptransportfw/Test/Data/ini/offline
+/mw/netprotocols/applayerprotocols/httptransportfw/Test/Data/ini/online
+/mw/netprotocols/applayerprotocols/httptransportfw/Test/Data/ini/regression
+/mw/netprotocols/applayerprotocols/httptransportfw/Test/Data/ini/settings
+/mw/netprotocols/applayerprotocols/httptransportfw/Test/Data/ini/wsp_pr_hnd_driver
+/mw/netprotocols/applayerprotocols/httptransportfw/Test/Data/t_httpinteg/auto
+/mw/netprotocols/applayerprotocols/httptransportfw/Test/Data/t_httpinteg/integration
+/mw/netprotocols/applayerprotocols/httptransportfw/Test/Data/t_wspprothnd
+/mw/netprotocols/applayerprotocols/httptransportfw/Test/Data/testcontent/cgi-bin
+/mw/netprotocols/applayerprotocols/httptransportfw/Test/Data/testcontent/http_tests/perl
+/mw/netprotocols/applayerprotocols/httptransportfw/Test/Data/testcontent/http_tests/rc/301
+/mw/netprotocols/applayerprotocols/httptransportfw/Test/Data/testcontent/http_tests/rc/401/private
+/mw/netprotocols/applayerprotocols/httptransportfw/Test/Data/testcontent/http_tests/rc/403/getonly
+/mw/netprotocols/applayerprotocols/httptransportfw/Test/Data/testcontent/http_tests/rc/403/postonly
+/mw/netprotocols/applayerprotocols/httptransportfw/Test/Data/testcontent/http_tests/rc/500
+/mw/netprotocols/applayerprotocols/httptransportfw/Test/Data/testcontent/http_tests/tcphnd
+/mw/netprotocols/applayerprotocols/httptransportfw/Test/Data/testcontent/perl/protected
+/mw/netprotocols/applayerprotocols/httptransportfw/Test/Data/testcontent/public_html
+/mw/netprotocols/applayerprotocols/httptransportfw/Test/Data/testcontent/servers
+/mw/netprotocols/applayerprotocols/httptransportfw/Test/Data/wapstkiot
+/mw/netprotocols/applayerprotocols/httptransportfw/Test/Documentation
+/mw/netprotocols/applayerprotocols/httptransportfw/Test/EABI
+/mw/netprotocols/applayerprotocols/httptransportfw/Test/Group
+/mw/netprotocols/applayerprotocols/httptransportfw/Test/Integration/group
+/mw/netprotocols/applayerprotocols/httptransportfw/Test/Integration/inc
+/mw/netprotocols/applayerprotocols/httptransportfw/Test/Integration/ini
+/mw/netprotocols/applayerprotocols/httptransportfw/Test/Integration/script
+/mw/netprotocols/applayerprotocols/httptransportfw/Test/Integration/src
+/mw/netprotocols/applayerprotocols/httptransportfw/Test/T_FilterConfigIter
+/mw/netprotocols/applayerprotocols/httptransportfw/Test/T_HttpIntegration
+/mw/netprotocols/applayerprotocols/httptransportfw/Test/T_HttpOffline
+/mw/netprotocols/applayerprotocols/httptransportfw/Test/T_HttpOnline
+/mw/netprotocols/applayerprotocols/httptransportfw/Test/T_HttpPipeliningTest
+/mw/netprotocols/applayerprotocols/httptransportfw/Test/T_HttpRegression
+/mw/netprotocols/applayerprotocols/httptransportfw/Test/T_WspDecoder
+/mw/netprotocols/applayerprotocols/httptransportfw/Test/T_WspEncoder
+/mw/netprotocols/applayerprotocols/httptransportfw/Test/T_WspEventDriver
+/mw/netprotocols/applayerprotocols/httptransportfw/Test/T_WspProtHnd
+/mw/netprotocols/applayerprotocols/httptransportfw/Test/TestScriptTest
+/mw/netprotocols/applayerprotocols/httptransportfw/Test/URLShortcuts
+/mw/netprotocols/applayerprotocols/httptransportfw/Test/t_URIShortcutParser
+/mw/netprotocols/applayerprotocols/httptransportfw/Test/t_codecplugin
+/mw/netprotocols/applayerprotocols/httptransportfw/Test/t_httpmessage
+/mw/netprotocols/applayerprotocols/httptransportfw/Test/t_httpperformance
+/mw/netprotocols/applayerprotocols/httptransportfw/Test/t_httptransporthandler
+/mw/netprotocols/applayerprotocols/httptransportfw/Test/t_utils
+/mw/netprotocols/applayerprotocols/httptransportfw/Test/testhook
+/mw/netprotocols/applayerprotocols/httptransportfw/Test/testinc/T_TestCore
+/mw/netprotocols/applayerprotocols/httptransportfw/Test/testinc/T_WspEventDriver
+/mw/netprotocols/applayerprotocols/httptransportfw/Test/testinc/T_WspProtHnd
+/mw/netprotocols/applayerprotocols/httptransportfw/core
+/mw/netprotocols/applayerprotocols/httptransportfw/documentation
+/mw/netprotocols/applayerprotocols/httptransportfw/group/build_all
+/mw/netprotocols/applayerprotocols/httptransportfw/httpmessage
+/mw/netprotocols/applayerprotocols/httptransportfw/httputils/inc
+/mw/netprotocols/applayerprotocols/httptransportfw/httputils/src
+/mw/netprotocols/applayerprotocols/httptransportfw/inc/WSP
+/mw/netprotocols/applayerprotocols/httptransportfw/inc/framework
+/mw/netprotocols/applayerprotocols/httptransportfw/inc/http
+/mw/netprotocols/applayerprotocols/httptransportfw/strings
+/mw/netprotocols/applayerprotocols/httptransportfw/utils
+/mw/netprotocols/applayerpluginsandutils/httpprotocolplugins/WspProtocolHandler
+/mw/netprotocols/applayerpluginsandutils/httpprotocolplugins/filters
+/mw/netprotocols/applayerpluginsandutils/httpprotocolplugins/group
+/mw/netprotocols/applayerpluginsandutils/httpprotocolplugins/httpclient
+/mw/netprotocols/applayerpluginsandutils/httpprotocolplugins/httpheadercodec
+/mw/netprotocols/applayerpluginsandutils/httpprotocolplugins/inc/httpheadercodec
+/mw/netprotocols/applayerpluginsandutils/httpprotocolplugins/wspheadercodec
+/mw/netprotocols/applayerpluginsandutils/httpprotocolplugins/wspinc
+/mw/netprotocols/applayerpluginsandutils/httptransportplugins/group
+/mw/netprotocols/applayerpluginsandutils/httptransportplugins/httptransporthandler
+/os/ossrv/genericservices/httputils/Authentication
+/os/ossrv/genericservices/httputils/AuthorityParser
+/os/ossrv/genericservices/httputils/DelimitedParser
+/os/ossrv/genericservices/httputils/Documents
+/os/ossrv/genericservices/httputils/EscapeUtils
+/os/ossrv/genericservices/httputils/InetProtUtil
+/os/ossrv/genericservices/httputils/Test/Documents
+/os/ossrv/genericservices/httputils/Test/Integration/TestFileUriSuite
+/os/ossrv/genericservices/httputils/Test/Integration/TestInetProtUtilsSuite/Src
+/os/ossrv/genericservices/httputils/Test/Integration/TestInetProtUtilsSuite/data
+/os/ossrv/genericservices/httputils/Test/Integration/TestInetProtUtilsSuite/group
+/os/ossrv/genericservices/httputils/Test/Integration/TestInetProtUtilsSuite/inc
+/os/ossrv/genericservices/httputils/Test/Integration/TestInetProtUtilsSuite/scripts
+/os/ossrv/genericservices/httputils/Test/Integration/bwins
+/os/ossrv/genericservices/httputils/Test/IpuTestUtils
+/os/ossrv/genericservices/httputils/Test/bmarm
+/os/ossrv/genericservices/httputils/Test/bwins
+/os/ossrv/genericservices/httputils/Test/eabi
+/os/ossrv/genericservices/httputils/Test/group
+/os/ossrv/genericservices/httputils/Test/strings
+/os/ossrv/genericservices/httputils/Test/t_fileuri
+/os/ossrv/genericservices/httputils/Test/t_tinternetdate
+/os/ossrv/genericservices/httputils/Test/t_uriparser
+/os/ossrv/genericservices/httputils/Test/t_wspcodec
+/os/ossrv/genericservices/httputils/Test/te_authentication/scripts
+/os/ossrv/genericservices/httputils/Test/te_authentication/src
+/os/ossrv/genericservices/httputils/Test/te_authentication/testdata
+/os/ossrv/genericservices/httputils/UriParser
+/os/ossrv/genericservices/httputils/UriUtils
+/os/ossrv/genericservices/httputils/bwins
+/os/ossrv/genericservices/httputils/eabi
+/os/ossrv/genericservices/httputils/group
+/os/ossrv/genericservices/httputils/inc
+/os/ossrv/genericservices/httputils/inetprottextutils
+/os/ossrv/genericservices/httputils/internetdateutils
+/os/ossrv/genericservices/httputils/wspcodec
+/mw/netprotocols/applayerpluginsandutils/uripermissionservices/StringDictionary
+/mw/netprotocols/applayerpluginsandutils/uripermissionservices/Test/integration/testwhitelistblacklisturisuite/documents
+/mw/netprotocols/applayerpluginsandutils/uripermissionservices/Test/integration/testwhitelistblacklisturisuite/group
+/mw/netprotocols/applayerpluginsandutils/uripermissionservices/Test/integration/testwhitelistblacklisturisuite/inc
+/mw/netprotocols/applayerpluginsandutils/uripermissionservices/Test/integration/testwhitelistblacklisturisuite/scripts
+/mw/netprotocols/applayerpluginsandutils/uripermissionservices/Test/integration/testwhitelistblacklisturisuite/src
+/mw/netprotocols/applayerpluginsandutils/uripermissionservices/Test/integration/testwhitelistblacklisturisuite/testdata
+/mw/netprotocols/applayerpluginsandutils/uripermissionservices/bwins
+/mw/netprotocols/applayerpluginsandutils/uripermissionservices/client/inc
+/mw/netprotocols/applayerpluginsandutils/uripermissionservices/client/src
+/mw/netprotocols/applayerpluginsandutils/uripermissionservices/documents
+/mw/netprotocols/applayerpluginsandutils/uripermissionservices/eabi
+/mw/netprotocols/applayerpluginsandutils/uripermissionservices/group
+/mw/netprotocols/applayerpluginsandutils/uripermissionservices/inc
+/mw/netprotocols/applayerpluginsandutils/uripermissionservices/server/inc
+/mw/netprotocols/applayerpluginsandutils/uripermissionservices/server/src
+/mw/netprotocols/applayerpluginsandutils/uripermissionservices/stubSis
+/mw/appsupport/contenthandling/webrecognisers/Documentation
+/mw/appsupport/contenthandling/webrecognisers/Test/Group
+/mw/appsupport/contenthandling/webrecognisers/Test/t_ebookmark/TestData
+/mw/appsupport/contenthandling/webrecognisers/Test/t_recogtest
+/mw/appsupport/contenthandling/webrecognisers/Test/t_recwap/TestData
+/mw/appsupport/contenthandling/webrecognisers/Test/t_recweb/TestData
+/mw/appsupport/contenthandling/webrecognisers/Test/t_weburlrec
+/mw/appsupport/contenthandling/webrecognisers/bwins
+/mw/appsupport/contenthandling/webrecognisers/eBookmark/examples
+/mw/appsupport/contenthandling/webrecognisers/eabi
+/mw/appsupport/contenthandling/webrecognisers/group
+/mw/appsupport/contenthandling/webrecognisers/recweb
+/mw/appsupport/contenthandling/webrecognisers/waprecogniser
+/mw/appsupport/contenthandling/webrecognisers/weburlrec
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/Client/pnp/bwins
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/Client/pnp/eabi
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/Client/pnp/group
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/Client/pnp/inc
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/Client/pnp/src
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/Client/upnpplugin/group
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/Client/upnpplugin/inc
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/Client/upnpplugin/src
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/Server/AppProtIntf/bwins
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/Server/AppProtIntf/eabi
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/Server/AppProtIntf/group
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/Server/AppProtIntf/inc
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/Server/AppProtIntf/src
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/Server/ControlPoint/inc
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/Server/ControlPoint/src
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/Server/Flow/inc
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/Server/Flow/src
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/Server/ServicePoint/inc
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/Server/ServicePoint/src
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/Server/StringDictionary
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/Server/group
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/SocketHandler/bwins
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/SocketHandler/eabi
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/SocketHandler/group
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/SocketHandler/inc
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/SocketHandler/src
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/Test/IntegTest/group
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/Test/IntegTest/oomtest/group
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/Test/IntegTest/oomtest/inc
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/Test/IntegTest/oomtest/src
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/Test/IntegTest/testdelay/Scripts
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/Test/IntegTest/testdelay/group
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/Test/IntegTest/testdelay/inc
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/Test/IntegTest/testdelay/src
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/Test/IntegTest/testsynchronization/Scripts
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/Test/IntegTest/testsynchronization/TestData/Ini_Files
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/Test/IntegTest/testsynchronization/group
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/Test/IntegTest/testsynchronization/inc
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/Test/IntegTest/testsynchronization/src
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/Test/IntegTest/testupnp/Scripts/client
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/Test/IntegTest/testupnp/Scripts/server
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/Test/IntegTest/testupnp/TestData/Data_Files/xmldatafiles/service
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/Test/IntegTest/testupnp/TestData/Ini_Files
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/Test/IntegTest/testupnp/group
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/Test/IntegTest/testupnp/inc
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/Test/IntegTest/testupnp/src
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/Test/unittests/upnpdescriptiontest/StringDictionary
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/Test/unittests/upnpdescriptiontest/group
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/Test/unittests/upnpdescriptiontest/inc
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/Test/unittests/upnpdescriptiontest/ini
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/Test/unittests/upnpdescriptiontest/script
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/Test/unittests/upnpdescriptiontest/src
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/Test/unittests/upnpdescriptiontest/xml_input_files
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/Test/unittests/upnpmessagetest/data
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/Test/unittests/upnpmessagetest/group
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/Test/unittests/upnpmessagetest/inc
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/Test/unittests/upnpmessagetest/src
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/codec/group
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/codec/inc
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/codec/src
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/documentation/test specification
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/group
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/upnpdescription/StringDictionary
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/upnpdescription/bwins
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/upnpdescription/eabi
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/upnpdescription/group
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/upnpdescription/inc
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/upnpdescription/src
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/upnpmessage/bwins
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/upnpmessage/eabi
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/upnpmessage/group
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/upnpmessage/inc
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/upnpmessage/src
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/upnputils/bwins
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/upnputils/eabi
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/upnputils/group
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/upnputils/inc
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/upnputils/src
+/mw/srvdiscovery/servicediscoveryandcontrol/upnp/upnputils/strings
+/os/kernelhwsrv/localisation/localesupport/Japanese/intermediate
+/os/kernelhwsrv/localisation/localesupport/Japanese/source
+/os/kernelhwsrv/localisation/localesupport/OtherTools
+/os/kernelhwsrv/localisation/localesupport/SimplifiedChinesePinyin/intermediate
+/os/kernelhwsrv/localisation/localesupport/SimplifiedChinesePinyin/source
+/os/kernelhwsrv/localisation/localesupport/TestNrl
+/os/kernelhwsrv/localisation/localesupport/TestResources
+/os/kernelhwsrv/localisation/localesupport/TraditionalChineseStroke/intermediate
+/os/kernelhwsrv/localisation/localesupport/TraditionalChineseStroke/source
+/os/kernelhwsrv/localisation/localesupport/TraditionalChineseZhuyin/intermediate
+/os/kernelhwsrv/localisation/localesupport/TraditionalChineseZhuyin/source
+/os/kernelhwsrv/localisation/localesupport/coltab
+/os/kernelhwsrv/localisation/localesupport/doc
+/os/kernelhwsrv/localisation/localesupport/mmpfiles
+/os/kernelhwsrv/localisation/localesupport/src
+/os/shortlinksrv/bluetooth/btcomm/bwins
+/os/shortlinksrv/bluetooth/btcomm/eabi
+/os/shortlinksrv/bluetooth/btcomm/src
+/os/shortlinksrv/bluetooth/btcomm/tsrc
+/os/shortlinksrv/bluetooth/btextnotifiers/bwins
+/os/shortlinksrv/bluetooth/btextnotifiers/eabi
+/os/shortlinksrv/bluetooth/btextnotifiers/inc
+/os/shortlinksrv/bluetooth/btextnotifiers/src
+/os/shortlinksrv/bluetoothmgmt/btconfig/esock399_single_thread
+/os/shortlinksrv/bluetooth/btexample/example/afhsetter
+/os/shortlinksrv/bluetooth/btexample/example/btproperties
+/os/shortlinksrv/bluetooth/btexample/example/btsocket/bwins
+/os/shortlinksrv/bluetooth/btexample/example/btsocket/eabi
+/os/shortlinksrv/bluetooth/btexample/example/btsocket/group
+/os/shortlinksrv/bluetooth/btexample/example/btsocket/inc
+/os/shortlinksrv/bluetooth/btexample/example/btsocket/src
+/os/shortlinksrv/bluetooth/btexample/example/btsocket/tsrc
+/os/shortlinksrv/bluetooth/btexample/example/codsetter
+/os/shortlinksrv/bluetooth/btexample/example/commdrvloader
+/os/shortlinksrv/bluetooth/btexample/example/defaultregistry
+/os/shortlinksrv/bluetooth/btexample/example/discoverability
+/os/shortlinksrv/bluetooth/btexample/example/eir
+/os/shortlinksrv/bluetooth/btexample/example/group
+/os/shortlinksrv/bluetooth/btexample/example/regui
+/os/shortlinksrv/bluetooth/btexample/example/sdap/bwins
+/os/shortlinksrv/bluetooth/btexample/example/sdap/eabi
+/os/shortlinksrv/bluetooth/btexample/example/sdap/group
+/os/shortlinksrv/bluetooth/btexample/example/sdap/inc
+/os/shortlinksrv/bluetooth/btexample/example/sdap/src
+/os/shortlinksrv/bluetooth/btexample/example/sdap/test
+/os/shortlinksrv/bthci/bthci1/bwins
+/os/shortlinksrv/bthci/bthci1/eabi
+/os/shortlinksrv/bthci/bthci1/inc
+/os/shortlinksrv/bthci/bthci1/src
+/os/shortlinksrv/bthci/bthci2/CommandsEvents/BWINS
+/os/shortlinksrv/bthci/bthci2/CommandsEvents/EABI
+/os/shortlinksrv/bthci/bthci2/CommandsEvents/generator
+/os/shortlinksrv/bthci/bthci2/CommandsEvents/group
+/os/shortlinksrv/bthci/bthci2/CommandsEvents/interface
+/os/shortlinksrv/bthci/bthci2/btpowercontrol/EABI
+/os/shortlinksrv/bthci/bthci2/btpowercontrol/bwins
+/os/shortlinksrv/bthci/bthci2/btpowercontrol/group
+/os/shortlinksrv/bthci/bthci2/btpowercontrol/interface
+/os/shortlinksrv/bthci/bthci2/btpowercontrol/src
+/os/shortlinksrv/bthci/bthci2/corehci/bwins
+/os/shortlinksrv/bthci/bthci2/corehci/eabi
+/os/shortlinksrv/bthci/bthci2/corehci/group
+/os/shortlinksrv/bthci/bthci2/corehci/inc
+/os/shortlinksrv/bthci/bthci2/corehci/interface
+/os/shortlinksrv/bthci/bthci2/corehci/src
+/os/shortlinksrv/bthci/bthci2/group
+/os/shortlinksrv/bthci/bthci2/hcicmdq/BWINS
+/os/shortlinksrv/bthci/bthci2/hcicmdq/EABI
+/os/shortlinksrv/bthci/bthci2/hcicmdq/group
+/os/shortlinksrv/bthci/bthci2/hcicmdq/inc
+/os/shortlinksrv/bthci/bthci2/hcicmdq/interface
+/os/shortlinksrv/bthci/bthci2/hcicmdq/src
+/os/shortlinksrv/bthci/bthci2/hciserverclient/EABI
+/os/shortlinksrv/bthci/bthci2/hciserverclient/bwins
+/os/shortlinksrv/bthci/bthci2/hciserverclient/group
+/os/shortlinksrv/bthci/bthci2/hciserverclient/interface
+/os/shortlinksrv/bthci/bthci2/hciserverclient/src
+/os/shortlinksrv/bthci/bthci2/hciutil/EABI
+/os/shortlinksrv/bthci/bthci2/hciutil/bwins
+/os/shortlinksrv/bthci/bthci2/hciutil/group
+/os/shortlinksrv/bthci/bthci2/hciutil/interface
+/os/shortlinksrv/bthci/bthci2/hciutil/src
+/os/shortlinksrv/bthci/bthci2/hctl/bwins
+/os/shortlinksrv/bthci/bthci2/hctl/eabi
+/os/shortlinksrv/bthci/bthci2/hctl/group
+/os/shortlinksrv/bthci/bthci2/hctl/inc
+/os/shortlinksrv/bthci/bthci2/hctl/interface
+/os/shortlinksrv/bthci/bthci2/hctl/src
+/os/shortlinksrv/bthci/bthci2/initialisor/bwins
+/os/shortlinksrv/bthci/bthci2/initialisor/eabi
+/os/shortlinksrv/bthci/bthci2/initialisor/group
+/os/shortlinksrv/bthci/bthci2/initialisor/interface
+/os/shortlinksrv/bthci/bthci2/initialisor/src
+/os/shortlinksrv/bthci/bthci2/qdp/bwins
+/os/shortlinksrv/bthci/bthci2/qdp/eabi
+/os/shortlinksrv/bthci/bthci2/qdp/group
+/os/shortlinksrv/bthci/bthci2/qdp/interface
+/os/shortlinksrv/bthci/bthci2/qdp/src
+/os/shortlinksrv/bthci/hci2implementations/CommandsEvents/symbian/group
+/os/shortlinksrv/bthci/hci2implementations/CommandsEvents/symbian/inc
+/os/shortlinksrv/bthci/hci2implementations/CommandsEvents/symbian/src
+/os/shortlinksrv/bthci/hci2implementations/corehcis/symbian/group
+/os/shortlinksrv/bthci/hci2implementations/corehcis/symbian/inc
+/os/shortlinksrv/bthci/hci2implementations/corehcis/symbian/src
+/os/shortlinksrv/bthci/hci2implementations/group
+/os/shortlinksrv/bthci/hci2implementations/hctls/bcsp/group
+/os/shortlinksrv/bthci/hci2implementations/hctls/bcsp/inc
+/os/shortlinksrv/bthci/hci2implementations/hctls/bcsp/src
+/os/shortlinksrv/bthci/hci2implementations/hctls/ti/group
+/os/shortlinksrv/bthci/hci2implementations/hctls/ti/inc
+/os/shortlinksrv/bthci/hci2implementations/hctls/ti/src
+/os/shortlinksrv/bthci/hci2implementations/hctls/uart_original/group
+/os/shortlinksrv/bthci/hci2implementations/hctls/uart_original/inc
+/os/shortlinksrv/bthci/hci2implementations/hctls/uart_original/src
+/os/shortlinksrv/bthci/hci2implementations/initialisors/symbian/group
+/os/shortlinksrv/bthci/hci2implementations/initialisors/symbian/inc
+/os/shortlinksrv/bthci/hci2implementations/initialisors/symbian/src
+/os/shortlinksrv/bthci/hci2implementations/initialisors/ti/group
+/os/shortlinksrv/bthci/hci2implementations/initialisors/ti/inc
+/os/shortlinksrv/bthci/hci2implementations/initialisors/ti/src
+/os/shortlinksrv/bthci/hci2implementations/qdps/symbian/group
+/os/shortlinksrv/bthci/hci2implementations/qdps/symbian/inc
+/os/shortlinksrv/bthci/hci2implementations/qdps/symbian/src
+/os/shortlinksrv/bthci/hciextensioninterface/bwins
+/os/shortlinksrv/bthci/hciextensioninterface/eabi
+/os/shortlinksrv/bthci/hciextensioninterface/inc
+/os/shortlinksrv/bthci/hciextensioninterface/src
+/os/shortlinksrv/bthci/hciextensioninterface/tsrc
+/os/shortlinksrv/bluetoothmgmt/btcommon/inc
+/os/shortlinksrv/bluetooth/btlogger/btsnoophcilogger/bwins
+/os/shortlinksrv/bluetooth/btlogger/btsnoophcilogger/eabi
+/os/shortlinksrv/bluetooth/btlogger/btsnoophcilogger/group
+/os/shortlinksrv/bluetooth/btlogger/btsnoophcilogger/inc
+/os/shortlinksrv/bluetooth/btlogger/btsnoophcilogger/public
+/os/shortlinksrv/bluetooth/btlogger/btsnoophcilogger/src
+/os/shortlinksrv/bluetooth/btlogger/btsnoophcilogger/test/headercheck/group
+/os/shortlinksrv/bluetooth/btlogger/btsnoophcilogger/test/headercheck/src
+/os/shortlinksrv/bluetooth/btlogger/generic/bwins
+/os/shortlinksrv/bluetooth/btlogger/generic/eabi
+/os/shortlinksrv/bluetooth/btlogger/generic/group
+/os/shortlinksrv/bluetooth/btlogger/generic/public
+/os/shortlinksrv/bluetooth/btlogger/generic/src
+/os/shortlinksrv/bluetooth/btlogger/generic/test/headercheck/group
+/os/shortlinksrv/bluetooth/btlogger/generic/test/headercheck/src
+/os/shortlinksrv/bluetooth/btlogger/group
+/os/shortlinksrv/bluetoothmgmt/btmgr/BTDevice
+/os/shortlinksrv/bluetoothmgmt/btmgr/BTManClient
+/os/shortlinksrv/bluetoothmgmt/btmgr/BTManServer
+/os/shortlinksrv/bluetoothmgmt/btmgr/Inc
+/os/shortlinksrv/bluetoothmgmt/btmgr/bwins
+/os/shortlinksrv/bluetoothmgmt/btmgr/eabi
+/os/shortlinksrv/bluetoothmgmt/btmgr/eirclient/bwins
+/os/shortlinksrv/bluetoothmgmt/btmgr/eirclient/eabi
+/os/shortlinksrv/bluetoothmgmt/btmgr/eirclient/group
+/os/shortlinksrv/bluetoothmgmt/btmgr/eirclient/inc
+/os/shortlinksrv/bluetoothmgmt/btmgr/eirclient/interface
+/os/shortlinksrv/bluetoothmgmt/btmgr/eirclient/src
+/mw/shortlinkconn/bluetoothappprofiles/avrcp/avc
+/mw/shortlinkconn/bluetoothappprofiles/avrcp/avrcpipc/bwins
+/mw/shortlinkconn/bluetoothappprofiles/avrcp/avrcpipc/eabi
+/mw/shortlinkconn/bluetoothappprofiles/avrcp/avrcpipc/group
+/mw/shortlinkconn/bluetoothappprofiles/avrcp/avrcpipc/public
+/mw/shortlinkconn/bluetoothappprofiles/avrcp/avrcpipc/src
+/mw/shortlinkconn/bluetoothappprofiles/avrcp/batterystatusapi/bwins
+/mw/shortlinkconn/bluetoothappprofiles/avrcp/batterystatusapi/eabi
+/mw/shortlinkconn/bluetoothappprofiles/avrcp/batterystatusapi/group
+/mw/shortlinkconn/bluetoothappprofiles/avrcp/batterystatusapi/public
+/mw/shortlinkconn/bluetoothappprofiles/avrcp/batterystatusapi/src
+/mw/shortlinkconn/bluetoothappprofiles/avrcp/bwins
+/mw/shortlinkconn/bluetoothappprofiles/avrcp/eabi
+/mw/shortlinkconn/bluetoothappprofiles/avrcp/groupnavigationapi/bwins
+/mw/shortlinkconn/bluetoothappprofiles/avrcp/groupnavigationapi/eabi
+/mw/shortlinkconn/bluetoothappprofiles/avrcp/groupnavigationapi/group
+/mw/shortlinkconn/bluetoothappprofiles/avrcp/groupnavigationapi/public
+/mw/shortlinkconn/bluetoothappprofiles/avrcp/groupnavigationapi/src
+/mw/shortlinkconn/bluetoothappprofiles/avrcp/mediainformationapi/bwins
+/mw/shortlinkconn/bluetoothappprofiles/avrcp/mediainformationapi/eabi
+/mw/shortlinkconn/bluetoothappprofiles/avrcp/mediainformationapi/group
+/mw/shortlinkconn/bluetoothappprofiles/avrcp/mediainformationapi/public
+/mw/shortlinkconn/bluetoothappprofiles/avrcp/mediainformationapi/src
+/mw/shortlinkconn/bluetoothappprofiles/avrcp/playerinformation/bwins
+/mw/shortlinkconn/bluetoothappprofiles/avrcp/playerinformation/eabi
+/mw/shortlinkconn/bluetoothappprofiles/avrcp/playerinformation/group
+/mw/shortlinkconn/bluetoothappprofiles/avrcp/playerinformation/inc
+/mw/shortlinkconn/bluetoothappprofiles/avrcp/playerinformation/public
+/mw/shortlinkconn/bluetoothappprofiles/avrcp/playerinformation/resource
+/mw/shortlinkconn/bluetoothappprofiles/avrcp/playerinformation/src
+/mw/shortlinkconn/bluetoothappprofiles/avrcp/remconbeareravrcp
+/mw/shortlinkconn/bluetoothappprofiles/avrcp/statusclient
+/mw/shortlinkconn/bluetoothappprofiles/avrcp/statusconverter
+/os/shortlinksrv/bluetooth/gavdp/bwins
+/os/shortlinksrv/bluetooth/gavdp/eabi
+/os/shortlinksrv/bluetooth/gavdp/group
+/os/shortlinksrv/bluetooth/gavdp/inc
+/os/shortlinksrv/bluetooth/gavdp/public
+/os/shortlinksrv/bluetooth/gavdp/source
+/os/shortlinksrv/bluetooth/gavdp/test
+/os/shortlinksrv/bluetoothcommsprofiles/btpan/bnep
+/os/shortlinksrv/bluetoothcommsprofiles/btpan/bwins
+/os/shortlinksrv/bluetoothcommsprofiles/btpan/eabi
+/os/shortlinksrv/bluetoothcommsprofiles/btpan/group
+/os/shortlinksrv/bluetoothcommsprofiles/btpan/inc
+/os/shortlinksrv/bluetoothcommsprofiles/btpan/panagt
+/os/shortlinksrv/bluetoothcommsprofiles/btpan/panhelpersvr
+/os/shortlinksrv/bluetoothcommsprofiles/btpan/panmessages/bwins
+/os/shortlinksrv/bluetoothcommsprofiles/btpan/panmessages/eabi
+/os/shortlinksrv/bluetoothcommsprofiles/btpan/panmessages/group
+/os/shortlinksrv/bluetoothcommsprofiles/btpan/panmessages/inc
+/os/shortlinksrv/bluetoothcommsprofiles/btpan/panmessages/src
+/os/shortlinksrv/bluetoothcommsprofiles/btpan/pannapiphook/BWINS
+/os/shortlinksrv/bluetoothcommsprofiles/btpan/pannapiphook/EABI
+/os/shortlinksrv/bluetoothcommsprofiles/btpan/pannapiphook/group
+/os/shortlinksrv/bluetoothcommsprofiles/btpan/pannapiphook/inc
+/os/shortlinksrv/bluetoothcommsprofiles/btpan/pannapiphook/src
+/os/shortlinksrv/bluetoothcommsprofiles/btpan/panproviders/group
+/os/shortlinksrv/bluetoothcommsprofiles/btpan/panproviders/inc
+/os/shortlinksrv/bluetoothcommsprofiles/btpan/panproviders/src
+/os/shortlinksrv/bluetoothcommsprofiles/btpan/refBnepPacketNotifier/bwins
+/os/shortlinksrv/bluetoothcommsprofiles/btpan/refBnepPacketNotifier/eabi
+/os/shortlinksrv/bluetoothcommsprofiles/btpan/refBnepPacketNotifier/group
+/os/shortlinksrv/bluetoothcommsprofiles/btpan/refBnepPacketNotifier/inc
+/os/shortlinksrv/bluetoothcommsprofiles/btpan/refBnepPacketNotifier/src
+/app/contacts/pimprotocols/pbap/BWINS
+/app/contacts/pimprotocols/pbap/EABI
+/app/contacts/pimprotocols/pbap/client
+/app/contacts/pimprotocols/pbap/group
+/app/contacts/pimprotocols/pbap/inc
+/app/contacts/pimprotocols/pbap/pbaplogeng
+/app/contacts/pimprotocols/pbap/server
+/os/devicesrv/accessoryservices/remotecontrolfw/bearerplugin/bwins
+/os/devicesrv/accessoryservices/remotecontrolfw/bearerplugin/eabi
+/os/devicesrv/accessoryservices/remotecontrolfw/bearerplugin/group
+/os/devicesrv/accessoryservices/remotecontrolfw/bearerplugin/public
+/os/devicesrv/accessoryservices/remotecontrolfw/bearerplugin/src
+/os/devicesrv/accessoryservices/remotecontrolfw/client/coreapi/bwins
+/os/devicesrv/accessoryservices/remotecontrolfw/client/coreapi/eabi
+/os/devicesrv/accessoryservices/remotecontrolfw/client/coreapi/group
+/os/devicesrv/accessoryservices/remotecontrolfw/client/coreapi/public
+/os/devicesrv/accessoryservices/remotecontrolfw/client/coreapi/src
+/os/devicesrv/accessoryservices/remotecontrolfw/client/extapi1/bwins
+/os/devicesrv/accessoryservices/remotecontrolfw/client/extapi1/eabi
+/os/devicesrv/accessoryservices/remotecontrolfw/client/extapi1/group
+/os/devicesrv/accessoryservices/remotecontrolfw/client/extapi1/inc
+/os/devicesrv/accessoryservices/remotecontrolfw/client/extapi1/public
+/os/devicesrv/accessoryservices/remotecontrolfw/client/extapi1/src
+/os/devicesrv/accessoryservices/remotecontrolfw/client/inner/bwins
+/os/devicesrv/accessoryservices/remotecontrolfw/client/inner/eabi
+/os/devicesrv/accessoryservices/remotecontrolfw/client/inner/group
+/os/devicesrv/accessoryservices/remotecontrolfw/client/inner/public
+/os/devicesrv/accessoryservices/remotecontrolfw/client/inner/src
+/os/devicesrv/accessoryservices/remotecontrolfw/client/intermediate/bwins
+/os/devicesrv/accessoryservices/remotecontrolfw/client/intermediate/eabi
+/os/devicesrv/accessoryservices/remotecontrolfw/client/intermediate/group
+/os/devicesrv/accessoryservices/remotecontrolfw/client/intermediate/inc
+/os/devicesrv/accessoryservices/remotecontrolfw/client/intermediate/public
+/os/devicesrv/accessoryservices/remotecontrolfw/client/intermediate/src
+/os/devicesrv/accessoryservices/remotecontrolfw/common
+/os/devicesrv/accessoryservices/remotecontrolfw/converterplugin/bwins
+/os/devicesrv/accessoryservices/remotecontrolfw/converterplugin/eabi
+/os/devicesrv/accessoryservices/remotecontrolfw/converterplugin/group
+/os/devicesrv/accessoryservices/remotecontrolfw/converterplugin/public
+/os/devicesrv/accessoryservices/remotecontrolfw/converterplugin/src
+/os/devicesrv/accessoryservices/remotecontrolfw/group
+/os/devicesrv/accessoryservices/remotecontrolfw/reference/converters/Core_Serial/group
+/os/devicesrv/accessoryservices/remotecontrolfw/reference/converters/Core_Serial/inc
+/os/devicesrv/accessoryservices/remotecontrolfw/reference/converters/Core_Serial/src
+/os/devicesrv/accessoryservices/reftsp/group
+/os/devicesrv/accessoryservices/reftsp/inc
+/os/devicesrv/accessoryservices/reftsp/src
+/os/devicesrv/accessoryservices/remotecontrolfw/reference/serialbearer/group
+/os/devicesrv/accessoryservices/remotecontrolfw/reference/serialbearer/inc
+/os/devicesrv/accessoryservices/remotecontrolfw/reference/serialbearer/public
+/os/devicesrv/accessoryservices/remotecontrolfw/reference/serialbearer/src
+/os/devicesrv/accessoryservices/remotecontrolfw/server/group
+/os/devicesrv/accessoryservices/remotecontrolfw/server/inc
+/os/devicesrv/accessoryservices/remotecontrolfw/server/public
+/os/devicesrv/accessoryservices/remotecontrolfw/server/src
+/os/devicesrv/accessoryservices/remotecontrolfw/targetselectorplugin/bwins
+/os/devicesrv/accessoryservices/remotecontrolfw/targetselectorplugin/eabi
+/os/devicesrv/accessoryservices/remotecontrolfw/targetselectorplugin/group
+/os/devicesrv/accessoryservices/remotecontrolfw/targetselectorplugin/public
+/os/devicesrv/accessoryservices/remotecontrolfw/targetselectorplugin/src
+/os/devicesrv/accessoryservices/remotecontrolfw/test/headercheck/group
+/os/devicesrv/accessoryservices/remotecontrolfw/test/headercheck/src
+/os/devicesrv/accessoryservices/remotecontrolfw/types/bwins
+/os/devicesrv/accessoryservices/remotecontrolfw/types/eabi
+/os/devicesrv/accessoryservices/remotecontrolfw/types/group
+/os/devicesrv/accessoryservices/remotecontrolfw/types/public
+/os/devicesrv/accessoryservices/remotecontrolfw/types/src
+/os/shortlinksrv/bluetoothmgmt/btrom
+/os/shortlinksrv/bluetooth/btsdp/agent
+/os/shortlinksrv/bluetooth/btsdp/bwins
+/os/shortlinksrv/bluetooth/btsdp/database
+/os/shortlinksrv/bluetooth/btsdp/eabi
+/os/shortlinksrv/bluetooth/btsdp/inc
+/os/shortlinksrv/bluetooth/btsdp/server/protocol
+/os/shortlinksrv/bluetooth/btsdp/test
+/os/shortlinksrv/bluetooth/btstack/HCIShared/EABI
+/os/shortlinksrv/bluetooth/btstack/HCIShared/bwins
+/os/shortlinksrv/bluetooth/btstack/HCIShared/group
+/os/shortlinksrv/bluetooth/btstack/HCIShared/interface
+/os/shortlinksrv/bluetooth/btstack/HCIShared/src
+/os/shortlinksrv/bluetooth/btstack/avctp/bwins
+/os/shortlinksrv/bluetooth/btstack/avctp/common
+/os/shortlinksrv/bluetooth/btstack/avctp/eabi
+/os/shortlinksrv/bluetooth/btstack/avctp/plugins
+/os/shortlinksrv/bluetooth/btstack/avdtp/gavdpinterface
+/os/shortlinksrv/bluetooth/btstack/btproviders/data
+/os/shortlinksrv/bluetooth/btstack/btproviders/group
+/os/shortlinksrv/bluetooth/btstack/btproviders/inc
+/os/shortlinksrv/bluetooth/btstack/btproviders/src
+/os/shortlinksrv/bluetooth/btstack/bwins
+/os/shortlinksrv/bluetooth/btstack/common
+/os/shortlinksrv/bluetooth/btstack/eabi
+/os/shortlinksrv/bluetooth/btstack/eirman/interface
+/os/shortlinksrv/bluetooth/btstack/inc
+/os/shortlinksrv/bluetooth/btstack/l2cap
+/os/shortlinksrv/bluetooth/btstack/linkmgr/hci_v1
+/os/shortlinksrv/bluetooth/btstack/linkmgr/hci_v2/interface
+/os/shortlinksrv/bluetooth/btstack/rfcomm
+/os/shortlinksrv/bluetooth/btstack/sdp
+/os/shortlinksrv/bluetooth/btstack/secman/public
+/os/shortlinksrv/bluetooth/btstack/test/group
+/os/shortlinksrv/bluetooth/btstack/test/util/hcemulator
+/os/shortlinksrv/bluetooth/btexample/test/TestConsole
+/os/shortlinksrv/bluetooth/btexample/test/cit/ROMConfig/group
+/os/shortlinksrv/bluetooth/btexample/test/cit/ROMConfig/inc
+/os/shortlinksrv/bluetooth/btexample/test/cit/ROMConfig/scripts
+/os/shortlinksrv/bluetooth/btexample/test/cit/ROMConfig/src
+/os/shortlinksrv/bluetooth/btexample/test/cit/ROMConfig/testdata
+/os/shortlinksrv/bluetooth/btexample/test/cit/ROMConfig/xml/BtRomConfigSuite/BtExcSuite
+/os/shortlinksrv/bluetooth/btexample/test/cit/ROMConfig/xml/BtRomConfigSuite/BtIncSuite
+/os/shortlinksrv/bluetooth/btexample/test/cit/ROMConfig/xml/BtRomConfigSuite/TestExecuteServers
+/os/shortlinksrv/bluetooth/btexample/test/group
+/os/shortlinksrv/bluetooth/btexample/testui/BTTextNotifiers/bwins
+/os/shortlinksrv/bluetooth/btexample/testui/BTTextNotifiers/eabi
+/os/shortlinksrv/bluetooth/btexample/testui/BTTextNotifiers/group
+/os/shortlinksrv/bluetooth/btexample/testui/BTTextNotifiers/inc
+/os/shortlinksrv/bluetooth/btexample/testui/BTTextNotifiers/src
+/os/shortlinksrv/bluetooth/btexample/testui/BTUIAutoNotifiers/Inc
+/os/shortlinksrv/bluetooth/btexample/testui/BTUIAutoNotifiers/Src
+/os/shortlinksrv/bluetooth/btexample/testui/BTUIAutoNotifiers/bwins
+/os/shortlinksrv/bluetooth/btexample/testui/BTUIAutoNotifiers/eabi
+/os/shortlinksrv/bluetooth/btexample/testui/BTUIAutoNotifiers/group
+/os/shortlinksrv/bluetooth/btexample/testui/TBTNotifiers
+/os/shortlinksrv/bluetooth/btexample/testui/TBTNotifiersText
+/os/shortlinksrv/bluetoothmgmt/bluetoothclientlib/avctpservices
+/os/shortlinksrv/bluetoothmgmt/bluetoothclientlib/avlib
+/os/shortlinksrv/bluetoothmgmt/bluetoothclientlib/btlib
+/os/shortlinksrv/bluetoothmgmt/bluetoothclientlib/bwins
+/os/shortlinksrv/bluetoothmgmt/bluetoothclientlib/eabi
+/os/shortlinksrv/bluetoothmgmt/bluetoothclientlib/inc
+/os/shortlinksrv/bluetooth/btdocs/Designs
+/os/shortlinksrv/bluetooth/btdocs/Functional_Specs
+/os/shortlinksrv/bluetooth/btdocs/How_Tos
+/os/shortlinksrv/bluetooth/btdocs/Test_Specs
+/os/shortlinksrv/bluetooth/btdocs/Use_Cases
+/os/shortlinksrv/bluetoothapitest/bluetoothsvs/T_BTSdpAPI/documentation
+/os/shortlinksrv/bluetoothapitest/bluetoothsvs/T_BTSdpAPI/group
+/os/shortlinksrv/bluetoothapitest/bluetoothsvs/T_BTSdpAPI/inc
+/os/shortlinksrv/bluetoothapitest/bluetoothsvs/T_BTSdpAPI/pkg
+/os/shortlinksrv/bluetoothapitest/bluetoothsvs/T_BTSdpAPI/scripts
+/os/shortlinksrv/bluetoothapitest/bluetoothsvs/T_BTSdpAPI/src
+/os/shortlinksrv/bluetoothapitest/bluetoothsvs/T_BTSdpAPI/testdata
+/os/shortlinksrv/bluetoothapitest/bluetoothsvs/T_BTSdpAPI/testdriver/master/connected/BT-SDP-PublicApi-Master-suite
+/os/shortlinksrv/bluetoothapitest/bluetoothsvs/T_BTSdpAPI/testdriver/master/unconnected/BT-SDP-PublicApi-Master-suite
+/os/shortlinksrv/bluetoothapitest/bluetoothsvs/T_BTSdpAPI/testdriver/slave/BT-SDP-PublicApi-Slave-suite
+/os/shortlinksrv/bluetoothapitest/bluetoothsvs/T_BTSockAPI/documentation
+/os/shortlinksrv/bluetoothapitest/bluetoothsvs/T_BTSockAPI/group
+/os/shortlinksrv/bluetoothapitest/bluetoothsvs/T_BTSockAPI/inc
+/os/shortlinksrv/bluetoothapitest/bluetoothsvs/T_BTSockAPI/pkg
+/os/shortlinksrv/bluetoothapitest/bluetoothsvs/T_BTSockAPI/scripts
+/os/shortlinksrv/bluetoothapitest/bluetoothsvs/T_BTSockAPI/src
+/os/shortlinksrv/bluetoothapitest/bluetoothsvs/T_BTSockAPI/testdata
+/os/shortlinksrv/bluetoothapitest/bluetoothsvs/T_BTSockAPI/testdriver/master/connected/BT-USER-SOCK-PublicApi-Master-suite
+/os/shortlinksrv/bluetoothapitest/bluetoothsvs/T_BTSockAPI/testdriver/master/unconnected/BT-USER-SOCK-PublicApi-suite
+/os/shortlinksrv/bluetoothapitest/bluetoothsvs/T_BTSockAPI/testdriver/slave/BT-USER-SOCK-PublicApi-Slave-suite
+/os/shortlinksrv/bluetoothapitest/bluetoothsvs/T_BTSockAddrAPI/documentation
+/os/shortlinksrv/bluetoothapitest/bluetoothsvs/T_BTSockAddrAPI/group
+/os/shortlinksrv/bluetoothapitest/bluetoothsvs/T_BTSockAddrAPI/inc
+/os/shortlinksrv/bluetoothapitest/bluetoothsvs/T_BTSockAddrAPI/pkg
+/os/shortlinksrv/bluetoothapitest/bluetoothsvs/T_BTSockAddrAPI/scripts
+/os/shortlinksrv/bluetoothapitest/bluetoothsvs/T_BTSockAddrAPI/src
+/os/shortlinksrv/bluetoothapitest/bluetoothsvs/T_BTSockAddrAPI/testdata
+/os/shortlinksrv/bluetoothapitest/bluetoothsvs/T_BTSockAddrAPI/testdriver/master/unconnected/BT-Sock-Addr-API-PublicApi-suite
+/os/shortlinksrv/bluetoothapitest/bluetoothsvs/common/inc
+/os/shortlinksrv/bluetoothapitest/bluetoothsvs/common/src
+/os/shortlinksrv/bluetoothapitest/bluetoothsvs/documentation
+/os/shortlinksrv/bluetoothapitest/bluetoothsvs/group
+/os/shortlinksrv/bluetoothapitest/bluetoothsvs/scripts
+/os/shortlinksrv/bluetoothapitest/bluetoothsvs/testsuites/bluetooth
+/os/shortlinksrv/bluetoothapitest/bluetoothsvs/testsuites/group
+/os/unref/orphan/comgen/comms-infras/TestSuites/Comms_Infras
+/os/unref/orphan/comgen/comms-infras/TestSuites/group
+/os/commsfw/commsconfig/commsdatabaseshim/Documentation
+/os/commsfw/commsconfig/commsdatabaseshim/bwins
+/os/commsfw/commsconfig/commsdatabaseshim/commdbshim/INC
+/os/commsfw/commsconfig/commsdatabaseshim/commdbshim/Notifier/bwins
+/os/commsfw/commsconfig/commsdatabaseshim/commdbshim/Notifier/eabi
+/os/commsfw/commsconfig/commsdatabaseshim/commdbshim/Notifier/group
+/os/commsfw/commsconfig/commsdatabaseshim/commdbshim/Notifier/inc
+/os/commsfw/commsconfig/commsdatabaseshim/commdbshim/Notifier/src
+/os/commsfw/commsconfig/commsdatabaseshim/commdbshim/ProtectedDB
+/os/commsfw/commsconfig/commsdatabaseshim/commdbshim/SCDB
+/os/commsfw/commsconfig/commsdatabaseshim/commdbshim/bwins
+/os/commsfw/commsconfig/commsdatabaseshim/commdbshim/eabi
+/os/commsfw/commsconfig/commsdatabaseshim/commdbshim/group
+/os/commsfw/commsconfig/commsdatabaseshim/eabi
+/os/commsfw/commsconfig/commsdatabaseshim/group
+/os/commsfw/commsconfig/commsdatabaseshim/ts_commdb/scripts
+/os/commsfw/commsconfig/commsdatabaseshim/ts_commdb/te_cdma2000Settings/Documentation
+/os/commsfw/commsconfig/commsdatabaseshim/ts_commdb/te_cdma2000Settings/bwins
+/os/commsfw/commsconfig/commsdatabaseshim/ts_commdb/te_cdma2000Settings/config
+/os/commsfw/commsconfig/commsdatabaseshim/ts_commdb/te_cdma2000Settings/group
+/os/commsfw/commsconfig/commsdatabaseshim/ts_commdb/te_cdma2000Settings/inc
+/os/commsfw/commsconfig/commsdatabaseshim/ts_commdb/te_cdma2000Settings/scripts
+/os/commsfw/commsconfig/commsdatabaseshim/ts_commdb/te_cdma2000Settings/src
+/os/commsfw/commsconfig/commsdatabaseshim/ts_commdb/ts_connpref
+/os/commsfw/commsconfig/commsdatabaseshim/ts_commdb/ts_encrpt
+/os/commsfw/commsconfig/commsdatabaseshim/ts_commdb/ts_usecases
+/os/commsfw/commsfwtools/preparedefaultcommsdatabase/Documentation
+/os/commsfw/commsfwtools/preparedefaultcommsdatabase/Tools/ced/Documentation/HiddenReadOnlyUpdates
+/os/commsfw/commsfwtools/preparedefaultcommsdatabase/Tools/ced/data
+/os/commsfw/commsfwtools/preparedefaultcommsdatabase/Tools/ced/group
+/os/commsfw/commsfwtools/preparedefaultcommsdatabase/Tools/ced/inc
+/os/commsfw/commsfwtools/preparedefaultcommsdatabase/Tools/ced/src
+/os/commsfw/commsfwtools/preparedefaultcommsdatabase/Tools/ced/te_ced/Documentation
+/os/commsfw/commsfwtools/preparedefaultcommsdatabase/Tools/ced/te_ced/configs
+/os/commsfw/commsfwtools/preparedefaultcommsdatabase/Tools/ced/te_ced/group
+/os/commsfw/commsfwtools/preparedefaultcommsdatabase/Tools/ced/te_ced/scripts
+/os/commsfw/commsfwtools/preparedefaultcommsdatabase/Tools/ced/te_ced/src
+/os/commsfw/commsfwtools/preparedefaultcommsdatabase/Tools/ced/te_ced/testdata
+/os/commsfw/commsfwtools/preparedefaultcommsdatabase/Tools/ced/te_ced/xml/te_cedSuite/testexecuteservers
+/os/commsfw/commsfwtools/preparedefaultcommsdatabase/Tools/ceddump/documents
+/os/commsfw/commsfwtools/preparedefaultcommsdatabase/Tools/ceddump/group
+/os/commsfw/commsfwtools/preparedefaultcommsdatabase/Tools/ceddump/inc
+/os/commsfw/commsfwtools/preparedefaultcommsdatabase/Tools/ceddump/src
+/os/commsfw/commsfwtools/preparedefaultcommsdatabase/Tools/cfg2xml/bin
+/os/commsfw/commsfwtools/preparedefaultcommsdatabase/Tools/cfg2xml/build_schema/bin
+/os/commsfw/commsfwtools/preparedefaultcommsdatabase/Tools/cfg2xml/build_schema/data/xsl
+/os/commsfw/commsfwtools/preparedefaultcommsdatabase/Tools/cfg2xml/com/symbian/commdb/92schema
+/os/commsfw/commsfwtools/preparedefaultcommsdatabase/Tools/cfg2xml/com/symbian/commdb/93schema
+/os/commsfw/commsfwtools/preparedefaultcommsdatabase/Tools/cfg2xml/com/symbian/commdb/94schema
+/os/commsfw/commsfwtools/preparedefaultcommsdatabase/Tools/cfg2xml/com/symbian/commdb/95schema
+/os/commsfw/commsfwtools/preparedefaultcommsdatabase/Tools/cfg2xml/com/symbian/commdb/base_schema
+/os/commsfw/commsfwtools/preparedefaultcommsdatabase/Tools/cfg2xml/com/symbian/commdb/convert
+/os/commsfw/commsfwtools/preparedefaultcommsdatabase/Tools/cfg2xml/com/symbian/commdb/data
+/os/commsfw/commsfwtools/preparedefaultcommsdatabase/Tools/cfg2xml/com/symbian/commdb/doc/com/symbian/commdb/convert/class-use
+/os/commsfw/commsfwtools/preparedefaultcommsdatabase/Tools/cfg2xml/com/symbian/commdb/doc/com/symbian/commdb/data/class-use
+/os/commsfw/commsfwtools/preparedefaultcommsdatabase/Tools/cfg2xml/com/symbian/commdb/doc/com/symbian/commdb/ui/class-use
+/os/commsfw/commsfwtools/preparedefaultcommsdatabase/Tools/cfg2xml/com/symbian/commdb/doc/com/symbian/commdb/xml/class-use
+/os/commsfw/commsfwtools/preparedefaultcommsdatabase/Tools/cfg2xml/com/symbian/commdb/doc/index-files
+/os/commsfw/commsfwtools/preparedefaultcommsdatabase/Tools/cfg2xml/com/symbian/commdb/schema
+/os/commsfw/commsfwtools/preparedefaultcommsdatabase/Tools/cfg2xml/com/symbian/commdb/ui
+/os/commsfw/commsfwtools/preparedefaultcommsdatabase/Tools/cfg2xml/com/symbian/commdb/various
+/os/commsfw/commsfwtools/preparedefaultcommsdatabase/Tools/cfg2xml/com/symbian/commdb/xml
+/os/commsfw/commsfwtools/preparedefaultcommsdatabase/Tools/cfg2xml/group
+/os/commsfw/commsfwtools/preparedefaultcommsdatabase/Tools/cfg2xml/hidden_readonly_support/group
+/os/commsfw/commsfwtools/preparedefaultcommsdatabase/bwins
+/os/commsfw/commsfwtools/preparedefaultcommsdatabase/defaultcommdb/bin
+/os/commsfw/commsfwtools/preparedefaultcommsdatabase/defaultcommdb/group
+/os/commsfw/commsfwtools/preparedefaultcommsdatabase/defaultcommdb/src
+/os/commsfw/commsfwtools/preparedefaultcommsdatabase/defaultcommdb/version1/src
+/os/commsfw/commsfwtools/preparedefaultcommsdatabase/eabi
+/os/commsfw/commsfwtools/preparedefaultcommsdatabase/group
+/os/commsfw/commsfwtools/preparedefaultcommsdatabase/inc
+/os/commsfw/commsfwtools/preparedefaultcommsdatabase/installdefaultcommdb/group
+/os/commsfw/commsfwtools/preparedefaultcommsdatabase/src
+/os/commsfw/commsfwtools/preparedefaultcommsdatabase/te_commsdat/configs
+/os/commsfw/commsfwtools/preparedefaultcommsdatabase/te_commsdat/group
+/os/commsfw/commsfwtools/preparedefaultcommsdatabase/te_commsdat/scripts
+/os/commsfw/commsfwtools/preparedefaultcommsdatabase/te_commsdat/src
+/os/persistentdata/traceservices/commsdebugutility/Documentation
+/os/persistentdata/traceservices/commsdebugutility/INC
+/os/persistentdata/traceservices/commsdebugutility/SCLI
+/os/persistentdata/traceservices/commsdebugutility/SSVR
+/os/persistentdata/traceservices/commsdebugutility/bmarm
+/os/persistentdata/traceservices/commsdebugutility/bwins
+/os/persistentdata/traceservices/commsdebugutility/eabi
+/os/persistentdata/traceservices/commsdebugutility/group
+/os/persistentdata/traceservices/commsdebugutility/tools
+/os/persistentdata/traceservices/commsdebugutility/ts_commsdebugutility
+/os/commsfw/commsfw_info/commsinfrastructuredocs/images
+/os/commsfw/commsfwsupport/commselements/Helpers/Documentation
+/os/commsfw/commsfwsupport/commselements/Helpers/group
+/os/commsfw/commsfwsupport/commselements/Helpers/inc
+/os/commsfw/commsfwsupport/commselements/MsgParser/Documentation
+/os/commsfw/commsfwsupport/commselements/MsgParser/bmarm
+/os/commsfw/commsfwsupport/commselements/MsgParser/bwins
+/os/commsfw/commsfwsupport/commselements/MsgParser/eabi
+/os/commsfw/commsfwsupport/commselements/MsgParser/group
+/os/commsfw/commsfwsupport/commselements/MsgParser/include
+/os/commsfw/commsfwsupport/commselements/MsgParser/src
+/os/commsfw/commsfwsupport/commselements/NetInterfaces/bwins
+/os/commsfw/commsfwsupport/commselements/NetInterfaces/eabi
+/os/commsfw/commsfwsupport/commselements/NetInterfaces/group
+/os/commsfw/commsfwsupport/commselements/NetInterfaces/inc
+/os/commsfw/commsfwsupport/commselements/NetInterfaces/src
+/os/commsfw/commsfwsupport/commselements/NetMessages/Documentation
+/os/commsfw/commsfwsupport/commselements/NetMessages/bmarm
+/os/commsfw/commsfwsupport/commselements/NetMessages/bwins
+/os/commsfw/commsfwsupport/commselements/NetMessages/eabi
+/os/commsfw/commsfwsupport/commselements/NetMessages/group
+/os/commsfw/commsfwsupport/commselements/NetMessages/inc
+/os/commsfw/commsfwsupport/commselements/NetMessages/src
+/os/commsfw/commsfwsupport/commselements/NetMeta/Documentation
+/os/commsfw/commsfwsupport/commselements/NetMeta/bmarm
+/os/commsfw/commsfwsupport/commselements/NetMeta/bwins
+/os/commsfw/commsfwsupport/commselements/NetMeta/eabi
+/os/commsfw/commsfwsupport/commselements/NetMeta/group
+/os/commsfw/commsfwsupport/commselements/NetMeta/inc
+/os/commsfw/commsfwsupport/commselements/NetMeta/src
+/os/commsfw/commsfwsupport/commselements/NetSubscribe/INC
+/os/commsfw/commsfwsupport/commselements/NetSubscribe/bmarm
+/os/commsfw/commsfwsupport/commselements/NetSubscribe/bwins
+/os/commsfw/commsfwsupport/commselements/NetSubscribe/documentation
+/os/commsfw/commsfwsupport/commselements/NetSubscribe/eabi
+/os/commsfw/commsfwsupport/commselements/NetSubscribe/group
+/os/commsfw/commsfwsupport/commselements/NetSubscribe/src
+/os/commsfw/commsfwsupport/commselements/ResponseMsg/Documentation
+/os/commsfw/commsfwsupport/commselements/ResponseMsg/bwins
+/os/commsfw/commsfwsupport/commselements/ResponseMsg/eabi
+/os/commsfw/commsfwsupport/commselements/ResponseMsg/group
+/os/commsfw/commsfwsupport/commselements/ResponseMsg/inc
+/os/commsfw/commsfwsupport/commselements/ResponseMsg/src
+/os/commsfw/commsfwsupport/commselements/ResponseMsg/version1/BWINS
+/os/commsfw/commsfwsupport/commselements/ResponseMsg/version1/Documentation
+/os/commsfw/commsfwsupport/commselements/ResponseMsg/version1/EABI
+/os/commsfw/commsfwsupport/commselements/ResponseMsg/version1/group
+/os/commsfw/commsfwsupport/commselements/ResponseMsg/version1/inc
+/os/commsfw/commsfwsupport/commselements/ResponseMsg/version1/src
+/os/commsfw/commsfwsupport/commselements/StartServer/Documentation
+/os/commsfw/commsfwsupport/commselements/StartServer/bmarm
+/os/commsfw/commsfwsupport/commselements/StartServer/bwins
+/os/commsfw/commsfwsupport/commselements/StartServer/eabi
+/os/commsfw/commsfwsupport/commselements/StartServer/group
+/os/commsfw/commsfwsupport/commselements/StartServer/include
+/os/commsfw/commsfwsupport/commselements/StartServer/src
+/os/commsfw/commsfwsupport/commselements/StateMachine/Documentation
+/os/commsfw/commsfwsupport/commselements/StateMachine/bmarm
+/os/commsfw/commsfwsupport/commselements/StateMachine/bwins
+/os/commsfw/commsfwsupport/commselements/StateMachine/eabi
+/os/commsfw/commsfwsupport/commselements/StateMachine/group
+/os/commsfw/commsfwsupport/commselements/StateMachine/include
+/os/commsfw/commsfwsupport/commselements/StateMachine/src
+/os/commsfw/commsfwsupport/commselements/commsfw/bmarm
+/os/commsfw/commsfwsupport/commselements/commsfw/bwins
+/os/commsfw/commsfwsupport/commselements/commsfw/documentation
+/os/commsfw/commsfwsupport/commselements/commsfw/eabi
+/os/commsfw/commsfwsupport/commselements/commsfw/group
+/os/commsfw/commsfwsupport/commselements/commsfw/inc
+/os/commsfw/commsfwsupport/commselements/commsfw/src
+/os/commsfw/commsfwsupport/commselements/commsfw/te_commsfw/bwins
+/os/commsfw/commsfwsupport/commselements/commsfw/te_commsfw/group
+/os/commsfw/commsfwsupport/commselements/commsfw/te_commsfw/inc
+/os/commsfw/commsfwsupport/commselements/commsfw/te_commsfw/src
+/os/commsfw/commsfwsupport/commselements/commsfw/te_commsfw/testdriver
+/os/commsfw/commsfwsupport/commselements/commsfw/te_commsfw_transport/config
+/os/commsfw/commsfwsupport/commselements/commsfw/te_commsfw_transport/documentation
+/os/commsfw/commsfwsupport/commselements/commsfw/te_commsfw_transport/group
+/os/commsfw/commsfwsupport/commselements/commsfw/te_commsfw_transport/inc
+/os/commsfw/commsfwsupport/commselements/commsfw/te_commsfw_transport/src
+/os/commsfw/commsfwsupport/commselements/factories/bwins
+/os/commsfw/commsfwsupport/commselements/factories/eabi
+/os/commsfw/commsfwsupport/commselements/factories/group
+/os/commsfw/commsfwsupport/commselements/factories/inc
+/os/commsfw/commsfwsupport/commselements/factories/src
+/os/commsfw/commsfwsupport/commselements/group
+/os/commsfw/commsfwsupport/commselements/meshmachine/bwins
+/os/commsfw/commsfwsupport/commselements/meshmachine/documentation
+/os/commsfw/commsfwsupport/commselements/meshmachine/eabi
+/os/commsfw/commsfwsupport/commselements/meshmachine/group
+/os/commsfw/commsfwsupport/commselements/meshmachine/inc
+/os/commsfw/commsfwsupport/commselements/meshmachine/src
+/os/commsfw/commsfwsupport/commselements/nodemessages/bwins
+/os/commsfw/commsfwsupport/commselements/nodemessages/documentation
+/os/commsfw/commsfwsupport/commselements/nodemessages/eabi
+/os/commsfw/commsfwsupport/commselements/nodemessages/group
+/os/commsfw/commsfwsupport/commselements/nodemessages/inc
+/os/commsfw/commsfwsupport/commselements/nodemessages/src
+/os/commsfw/commsfwsupport/commselements/rootserver/bindmgr
+/os/commsfw/commsfwsupport/commselements/rootserver/bmarm
+/os/commsfw/commsfwsupport/commselements/rootserver/bwins
+/os/commsfw/commsfwsupport/commselements/rootserver/documentation
+/os/commsfw/commsfwsupport/commselements/rootserver/eabi
+/os/commsfw/commsfwsupport/commselements/rootserver/group
+/os/commsfw/commsfwsupport/commselements/rootserver/inc
+/os/commsfw/commsfwsupport/commselements/rootserver/rootsrv
+/os/commsfw/commsfwsupport/commselements/serverden/bwins
+/os/commsfw/commsfwsupport/commselements/serverden/eabi
+/os/commsfw/commsfwsupport/commselements/serverden/group
+/os/commsfw/commsfwsupport/commselements/serverden/inc
+/os/commsfw/commsfwsupport/commselements/serverden/src
+/os/commsfw/commsfwsupport/commselements/testing/asyncenv_devcycle_demo/documentation
+/os/commsfw/commsfwsupport/commselements/testing/asyncenv_devcycle_demo/group
+/os/commsfw/commsfwsupport/commselements/testing/asyncenv_devcycle_demo/inc
+/os/commsfw/commsfwsupport/commselements/testing/asyncenv_devcycle_demo/src
+/os/commsfw/commsfwsupport/commselements/testing/dummynodes/group
+/os/commsfw/commsfwsupport/commselements/testing/dummynodes/inc
+/os/commsfw/commsfwsupport/commselements/testing/dummynodes/src
+/os/commsfw/commsfwsupport/commselements/testing/dummystatelibrary/bwins
+/os/commsfw/commsfwsupport/commselements/testing/dummystatelibrary/eabi
+/os/commsfw/commsfwsupport/commselements/testing/dummystatelibrary/group
+/os/commsfw/commsfwsupport/commselements/testing/dummystatelibrary/inc
+/os/commsfw/commsfwsupport/commselements/testing/dummystatelibrary/src
+/os/commsfw/commsfwsupport/commselements/testing/dummytransportimpl/bwins
+/os/commsfw/commsfwsupport/commselements/testing/dummytransportimpl/eabi
+/os/commsfw/commsfwsupport/commselements/testing/dummytransportimpl/group
+/os/commsfw/commsfwsupport/commselements/testing/dummytransportimpl/inc
+/os/commsfw/commsfwsupport/commselements/testing/dummytransportimpl/src
+/os/commsfw/commsfwsupport/commselements/testing/group
+/os/commsfw/commsfwsupport/commselements/tools/group
+/os/commsfw/commsfwsupport/commselements/tools/messageinterceptregister/bwins
+/os/commsfw/commsfwsupport/commselements/tools/messageinterceptregister/documentation
+/os/commsfw/commsfwsupport/commselements/tools/messageinterceptregister/eabi
+/os/commsfw/commsfwsupport/commselements/tools/messageinterceptregister/group
+/os/commsfw/commsfwsupport/commselements/tools/messageinterceptregister/inc
+/os/commsfw/commsfwsupport/commselements/tools/messageinterceptregister/src
+/os/commsfw/commsfwsupport/commselements/tools/svg
+/os/commsfw/commsfwsupport/commselements/tools/utracedecoder/data
+/os/commsfw/commsfwsupport/commselements/tools/utracedecoder/doc
+/os/commsfw/commsfwsupport/commselements/tools/utracedecoder/inc/logevents
+/os/commsfw/commsfwsupport/commselements/tools/utracedecoder/inc/messagedefparser
+/os/commsfw/commsfwsupport/commselements/tools/utracedecoder/src/logevents
+/os/commsfw/commsfwsupport/commselements/tools/utracedecoder/src/messagedefparser
+/os/commsfw/commsfwsupport/commselements/tools/utracedecoder/test
+/os/commsfw/commsfwsupport/commselements/tools/utracedecoder/tools
+/os/commsfw/commsfwsupport/commselements/tools/utracedecoder/vc2005/debug
+/os/commsfw/commsfwsupport/commselements/tools/utracedecoder/vc2005/release
+/os/commsfw/commsfwsupport/commselements/tools/utracedecoder/vc2008/debug
+/os/commsfw/commsfwsupport/commselements/tools/utracedecoder/vc2008/release
+/os/commsfw/commsfwsupport/commselements/tools/utracedecoder/vc6/debug
+/os/commsfw/commsfwsupport/commselements/tools/utracedecoder/vc6/release
+/os/commsfw/commsfwsupport/commselements/virtualconstructors/bwins
+/os/commsfw/commsfwsupport/commselements/virtualconstructors/eabi
+/os/commsfw/commsfwsupport/commselements/virtualconstructors/group
+/os/commsfw/commsfwsupport/commselements/virtualconstructors/inc
+/os/commsfw/commsfwsupport/commselements/virtualconstructors/src
+/os/commsfw/datacommsserver/esockserver/CoreProviders/bwins
+/os/commsfw/datacommsserver/esockserver/CoreProviders/eabi
+/os/commsfw/datacommsserver/esockserver/CoreProviders/group
+/os/commsfw/datacommsserver/esockserver/CoreProviders/inc
+/os/commsfw/datacommsserver/esockserver/CoreProviders/src
+/os/commsfw/datacommsserver/esockserver/Documentation
+/os/commsfw/datacommsserver/esockserver/MobilityCoreProviders/bwins
+/os/commsfw/datacommsserver/esockserver/MobilityCoreProviders/eabi
+/os/commsfw/datacommsserver/esockserver/MobilityCoreProviders/group
+/os/commsfw/datacommsserver/esockserver/MobilityCoreProviders/inc
+/os/commsfw/datacommsserver/esockserver/MobilityCoreProviders/src
+/os/commsfw/datacommsserver/esockserver/UpsCoreProviders/bwins
+/os/commsfw/datacommsserver/esockserver/UpsCoreProviders/eabi
+/os/commsfw/datacommsserver/esockserver/UpsCoreProviders/group
+/os/commsfw/datacommsserver/esockserver/UpsCoreProviders/inc
+/os/commsfw/datacommsserver/esockserver/UpsCoreProviders/src
+/os/commsfw/datacommsserver/esockserver/api_ext/BWINS
+/os/commsfw/datacommsserver/esockserver/api_ext/EABI
+/os/commsfw/datacommsserver/esockserver/api_ext/group
+/os/commsfw/datacommsserver/esockserver/api_ext/inc
+/os/commsfw/datacommsserver/esockserver/api_ext/src
+/os/commsfw/datacommsserver/esockserver/bwins
+/os/commsfw/datacommsserver/esockserver/commsdataobjects/bwins
+/os/commsfw/datacommsserver/esockserver/commsdataobjects/eabi
+/os/commsfw/datacommsserver/esockserver/commsdataobjects/group
+/os/commsfw/datacommsserver/esockserver/commsdataobjects/inc
+/os/commsfw/datacommsserver/esockserver/commsdataobjects/src
+/os/commsfw/datacommsserver/esockserver/commsdataobjects/test/group
+/os/commsfw/datacommsserver/esockserver/commsdataobjects/test/src
+/os/commsfw/datacommsserver/esockserver/compatibility_headers/group
+/os/commsfw/datacommsserver/esockserver/compatibility_headers/inc
+/os/commsfw/datacommsserver/esockserver/connserv_params/group
+/os/commsfw/datacommsserver/esockserver/connserv_params/inc
+/os/commsfw/datacommsserver/esockserver/connserv_params/src
+/os/commsfw/datacommsserver/esockserver/core_states
+/os/commsfw/datacommsserver/esockserver/csock
+/os/commsfw/datacommsserver/esockserver/debug/MessageInterceptRegister/BWINS
+/os/commsfw/datacommsserver/esockserver/debug/MessageInterceptRegister/EABI
+/os/commsfw/datacommsserver/esockserver/debug/MessageInterceptRegister/group
+/os/commsfw/datacommsserver/esockserver/debug/MessageInterceptRegister/inc
+/os/commsfw/datacommsserver/esockserver/debug/MessageInterceptRegister/src
+/os/commsfw/datacommsserver/esockserver/debug/documentation
+/os/commsfw/datacommsserver/esockserver/eabi
+/os/commsfw/datacommsserver/esockserver/eintsock
+/os/commsfw/datacommsserver/esockserver/eintsock_transport/group
+/os/commsfw/datacommsserver/esockserver/eintsock_transport/inc
+/os/commsfw/datacommsserver/esockserver/eintsock_transport/src
+/os/commsfw/datacommsserver/esockserver/esock_internal_messages/group
+/os/commsfw/datacommsserver/esockserver/esock_internal_messages/inc
+/os/commsfw/datacommsserver/esockserver/esock_messages/BWINS
+/os/commsfw/datacommsserver/esockserver/esock_messages/Documentation
+/os/commsfw/datacommsserver/esockserver/esock_messages/EABI
+/os/commsfw/datacommsserver/esockserver/esock_messages/group
+/os/commsfw/datacommsserver/esockserver/esock_messages/inc
+/os/commsfw/datacommsserver/esockserver/esock_messages/src
+/os/commsfw/datacommsserver/esockserver/esock_params/group
+/os/commsfw/datacommsserver/esockserver/esock_params/inc
+/os/commsfw/datacommsserver/esockserver/esock_params/src
+/os/commsfw/datacommsserver/esockserver/etc
+/os/commsfw/datacommsserver/esockserver/group
+/os/commsfw/datacommsserver/esockserver/inc
+/os/commsfw/datacommsserver/esockserver/simpleselectorbase/bwins
+/os/commsfw/datacommsserver/esockserver/simpleselectorbase/eabi
+/os/commsfw/datacommsserver/esockserver/simpleselectorbase/group
+/os/commsfw/datacommsserver/esockserver/simpleselectorbase/inc
+/os/commsfw/datacommsserver/esockserver/simpleselectorbase/src
+/os/commsfw/datacommsserver/esockserver/ssock
+/os/commsfw/datacommsserver/esockserver/subcon_params/group
+/os/commsfw/datacommsserver/esockserver/subcon_params/inc
+/os/commsfw/datacommsserver/esockserver/subcon_params/src
+/os/commsfw/datacommsserver/esockserver/test/CapTests/Connection/Common
+/os/commsfw/datacommsserver/esockserver/test/CapTests/RConnServ/Common
+/os/commsfw/datacommsserver/esockserver/test/CapTests/Resolver/Common
+/os/commsfw/datacommsserver/esockserver/test/CapTests/Socket/Common
+/os/commsfw/datacommsserver/esockserver/test/CapTests/Socket_transfer/Config
+/os/commsfw/datacommsserver/esockserver/test/CapTests/Socket_transfer/Scripts
+/os/commsfw/datacommsserver/esockserver/test/CapTests/Socket_transfer/group
+/os/commsfw/datacommsserver/esockserver/test/CapTests/Socket_transfer/src
+/os/commsfw/datacommsserver/esockserver/test/StressTest/configs
+/os/commsfw/datacommsserver/esockserver/test/StressTest/group
+/os/commsfw/datacommsserver/esockserver/test/StressTest/scripts
+/os/commsfw/datacommsserver/esockserver/test/TE_DummyProvider/group
+/os/commsfw/datacommsserver/esockserver/test/TE_DummyProvider/scripts
+/os/commsfw/datacommsserver/esockserver/test/TE_DummyProvider/version1/group
+/os/commsfw/datacommsserver/esockserver/test/TE_DummyProvider/version1/scripts
+/os/commsfw/datacommsserver/esockserver/test/TE_EIntsock/bwins
+/os/commsfw/datacommsserver/esockserver/test/TE_EIntsock/group
+/os/commsfw/datacommsserver/esockserver/test/TE_EIntsock/scriptfiles
+/os/commsfw/datacommsserver/esockserver/test/TE_ESock/bwins
+/os/commsfw/datacommsserver/esockserver/test/TE_ESock/group
+/os/commsfw/datacommsserver/esockserver/test/TE_ESock/scriptfiles/OOM_Scripts
+/os/commsfw/datacommsserver/esockserver/test/TE_ESockSSA/group
+/os/commsfw/datacommsserver/esockserver/test/TE_ESockSSA/scriptfiles
+/os/commsfw/datacommsserver/esockserver/test/TE_ESockSSA/src
+/os/commsfw/datacommsserver/esockserver/test/TE_EsockTestSteps/Documentation
+/os/commsfw/datacommsserver/esockserver/test/TE_EsockTestSteps/group
+/os/commsfw/datacommsserver/esockserver/test/TE_EsockTestSteps/inc
+/os/commsfw/datacommsserver/esockserver/test/TE_EsockTestSteps/src
+/os/commsfw/datacommsserver/esockserver/test/TE_EsockTestSteps/suite_v1/group
+/os/commsfw/datacommsserver/esockserver/test/TE_EsockTestSteps/suite_v1/inc
+/os/commsfw/datacommsserver/esockserver/test/TE_EsockTestSteps/suite_v1/src
+/os/commsfw/datacommsserver/esockserver/test/TE_Esock_Components/group
+/os/commsfw/datacommsserver/esockserver/test/TE_Esock_Components/scripts
+/os/commsfw/datacommsserver/esockserver/test/TE_IPCTest/bwins
+/os/commsfw/datacommsserver/esockserver/test/TE_IPCTest/group
+/os/commsfw/datacommsserver/esockserver/test/TE_IPCTest/scriptfiles
+/os/commsfw/datacommsserver/esockserver/test/TE_Ini/Scripts
+/os/commsfw/datacommsserver/esockserver/test/TE_Ini/bwins
+/os/commsfw/datacommsserver/esockserver/test/TE_Ini/group
+/os/commsfw/datacommsserver/esockserver/test/TE_Ini/src
+/os/commsfw/datacommsserver/esockserver/test/TE_Ini/testdata
+/os/commsfw/datacommsserver/esockserver/test/TE_Protocol/group
+/os/commsfw/datacommsserver/esockserver/test/TE_Protocol/inc
+/os/commsfw/datacommsserver/esockserver/test/TE_Protocol/scripts
+/os/commsfw/datacommsserver/esockserver/test/TE_Protocol/src
+/os/commsfw/datacommsserver/esockserver/test/TE_RConnection/configs/Attach
+/os/commsfw/datacommsserver/esockserver/test/TE_RConnection/configs/Availability
+/os/commsfw/datacommsserver/esockserver/test/TE_RConnection/configs/DataMonitoring
+/os/commsfw/datacommsserver/esockserver/test/TE_RConnection/configs/Mobility
+/os/commsfw/datacommsserver/esockserver/test/TE_RConnection/configs/Selection
+/os/commsfw/datacommsserver/esockserver/test/TE_RConnection/configs/Start
+/os/commsfw/datacommsserver/esockserver/test/TE_RConnection/documentation
+/os/commsfw/datacommsserver/esockserver/test/TE_RConnection/group
+/os/commsfw/datacommsserver/esockserver/test/TE_RConnection/scripts/Attach
+/os/commsfw/datacommsserver/esockserver/test/TE_RConnection/scripts/Availability
+/os/commsfw/datacommsserver/esockserver/test/TE_RConnection/scripts/DataMonitoring
+/os/commsfw/datacommsserver/esockserver/test/TE_RConnection/scripts/Mobility
+/os/commsfw/datacommsserver/esockserver/test/TE_RConnection/scripts/Selection
+/os/commsfw/datacommsserver/esockserver/test/TE_RConnection/scripts/Start
+/os/commsfw/datacommsserver/esockserver/test/TE_RConnection/src
+/os/commsfw/datacommsserver/esockserver/test/TE_RConnectionServ/configs
+/os/commsfw/datacommsserver/esockserver/test/TE_RConnectionServ/documentation
+/os/commsfw/datacommsserver/esockserver/test/TE_RConnectionServ/group
+/os/commsfw/datacommsserver/esockserver/test/TE_RConnectionServ/scripts
+/os/commsfw/datacommsserver/esockserver/test/TE_RConnectionServ/src
+/os/commsfw/datacommsserver/esockserver/test/TE_RConnectionSuite/config/OOM_scripts
+/os/commsfw/datacommsserver/esockserver/test/TE_RConnectionSuite/group
+/os/commsfw/datacommsserver/esockserver/test/TE_RConnectionSuite/inc
+/os/commsfw/datacommsserver/esockserver/test/TE_RConnectionSuite/src
+/os/commsfw/datacommsserver/esockserver/test/TE_RSubconnection/configs
+/os/commsfw/datacommsserver/esockserver/test/TE_RSubconnection/documentation
+/os/commsfw/datacommsserver/esockserver/test/TE_RSubconnection/group
+/os/commsfw/datacommsserver/esockserver/test/TE_RSubconnection/scripts
+/os/commsfw/datacommsserver/esockserver/test/TE_RSubconnection/version1/configs
+/os/commsfw/datacommsserver/esockserver/test/TE_RSubconnection/version1/documentation
+/os/commsfw/datacommsserver/esockserver/test/TE_RSubconnection/version1/group
+/os/commsfw/datacommsserver/esockserver/test/TE_RSubconnection/version1/scripts
+/os/commsfw/datacommsserver/esockserver/test/TE_Socket/bwins
+/os/commsfw/datacommsserver/esockserver/test/TE_Socket/group
+/os/commsfw/datacommsserver/esockserver/test/TE_Socket/scriptfiles
+/os/commsfw/datacommsserver/esockserver/test/TE_SocketServer/configs
+/os/commsfw/datacommsserver/esockserver/test/TE_SocketServer/group
+/os/commsfw/datacommsserver/esockserver/test/TE_SocketServer/scriptfiles
+/os/commsfw/datacommsserver/esockserver/test/TS_MultiHoming/ScriptFiles
+/os/commsfw/datacommsserver/esockserver/test/TS_MultiHoming/bmarm
+/os/commsfw/datacommsserver/esockserver/test/TS_MultiHoming/bwins
+/os/commsfw/datacommsserver/esockserver/test/TS_MultiHoming/eabi
+/os/commsfw/datacommsserver/esockserver/test/TS_MultiHoming/group
+/os/commsfw/datacommsserver/esockserver/test/TestConfig/EIntSock_OneThread
+/os/commsfw/datacommsserver/esockserver/test/TestConfig/EIntSock_TwoThread
+/os/commsfw/datacommsserver/esockserver/test/TestConfig/ProviderConfig1
+/os/commsfw/datacommsserver/esockserver/test/TestConfig/TestConfig1
+/os/commsfw/datacommsserver/esockserver/test/TestConfig/TestConfig2
+/os/commsfw/datacommsserver/esockserver/test/TestConfig/TestConfig3
+/os/commsfw/datacommsserver/esockserver/test/TestConfig/TestConfig4
+/os/commsfw/datacommsserver/esockserver/test/TestConfig/TestConfig5
+/os/commsfw/datacommsserver/esockserver/test/TestConfig/etc
+/os/commsfw/datacommsserver/esockserver/test/TestConfig/group
+/os/commsfw/datacommsserver/esockserver/test/cpms/blocker/bwins
+/os/commsfw/datacommsserver/esockserver/test/cpms/blocker/eabi
+/os/commsfw/datacommsserver/esockserver/test/cpms/blocker/group
+/os/commsfw/datacommsserver/esockserver/test/cpms/blocker/src
+/os/commsfw/datacommsserver/esockserver/test/parameters/dummy/group
+/os/commsfw/datacommsserver/esockserver/test/protocols/ipc/bmarm
+/os/commsfw/datacommsserver/esockserver/test/protocols/ipc/bwins
+/os/commsfw/datacommsserver/esockserver/test/protocols/ipc/eabi
+/os/commsfw/datacommsserver/esockserver/test/protocols/ipc/group
+/os/commsfw/datacommsserver/esockserver/test/protocols/pdummy/bmarm
+/os/commsfw/datacommsserver/esockserver/test/protocols/pdummy/bwins
+/os/commsfw/datacommsserver/esockserver/test/protocols/pdummy/eabi
+/os/commsfw/datacommsserver/esockserver/test/protocols/pdummy/group
+/os/commsfw/datacommsserver/esockserver/test/protocols/ptestinternalsocket/bmarm
+/os/commsfw/datacommsserver/esockserver/test/protocols/ptestinternalsocket/bwins
+/os/commsfw/datacommsserver/esockserver/test/protocols/ptestinternalsocket/eabi
+/os/commsfw/datacommsserver/esockserver/test/protocols/ptestinternalsocket/group
+/os/commsfw/datacommsserver/esockserver/test/protocols/ptestinternalsocket/src
+/os/commsfw/datacommsserver/esockserver/test/providers/dummy/group
+/os/commsfw/datacommsserver/esockserver/test/providers/dummy/inc
+/os/commsfw/datacommsserver/esockserver/test/providers/dummy/src
+/os/commsfw/datacommsserver/esockserver/test/providers/dummy/version1/connprov/dummycpr/group
+/os/commsfw/datacommsserver/esockserver/test/providers/dummy/version1/connprov/dummycpr/inc
+/os/commsfw/datacommsserver/esockserver/test/providers/dummy/version1/connprov/dummycpr/src
+/os/commsfw/datacommsserver/esockserver/test/providers/dummy/version1/subconnprov/dummyscpr/group
+/os/commsfw/datacommsserver/esockserver/test/providers/dummy/version1/subconnprov/dummyscpr/inc
+/os/commsfw/datacommsserver/esockserver/test/providers/dummy/version1/subconnprov/dummyscpr/src
+/os/commsfw/datacommsserver/esockserver/test/util/bwins
+/os/commsfw/datacommsserver/esockserver/test/util/eabi
+/os/commsfw/datacommsserver/esockserver/test/util/group
+/os/commsfw/datacommsserver/esockserver/test/util/inc
+/os/commsfw/datacommsserver/esockserver/test/util/scriptfiles
+/os/commsfw/datacommsserver/esockserver/test/util/src
+/os/commsfw/datacommsserver/esockserver/version2/BWINS
+/os/commsfw/datacommsserver/esockserver/version2/Documentation
+/os/commsfw/datacommsserver/esockserver/version2/EABI
+/os/commsfw/datacommsserver/esockserver/version2/ETC
+/os/commsfw/datacommsserver/esockserver/version2/api_ext
+/os/commsfw/datacommsserver/esockserver/version2/commsdataobjects/bwins
+/os/commsfw/datacommsserver/esockserver/version2/commsdataobjects/eabi
+/os/commsfw/datacommsserver/esockserver/version2/commsdataobjects/group
+/os/commsfw/datacommsserver/esockserver/version2/commsdataobjects/inc
+/os/commsfw/datacommsserver/esockserver/version2/commsdataobjects/src
+/os/commsfw/datacommsserver/esockserver/version2/commsdataobjects/test/group
+/os/commsfw/datacommsserver/esockserver/version2/commsdataobjects/test/src
+/os/commsfw/datacommsserver/esockserver/version2/csock
+/os/commsfw/datacommsserver/esockserver/version2/eintsock
+/os/commsfw/datacommsserver/esockserver/version2/eintsock_transport/group
+/os/commsfw/datacommsserver/esockserver/version2/eintsock_transport/inc
+/os/commsfw/datacommsserver/esockserver/version2/eintsock_transport/src
+/os/commsfw/datacommsserver/esockserver/version2/esock_messages/Documentation
+/os/commsfw/datacommsserver/esockserver/version2/esock_messages/group
+/os/commsfw/datacommsserver/esockserver/version2/esock_messages/inc
+/os/commsfw/datacommsserver/esockserver/version2/esock_messages/src
+/os/commsfw/datacommsserver/esockserver/version2/group
+/os/commsfw/datacommsserver/esockserver/version2/inc
+/os/commsfw/datacommsserver/esockserver/version2/ssock
+/os/commsfw/datacommsserver/esockserver/version2/subcon_params/group
+/os/commsfw/datacommsserver/esockserver/version2/subcon_params/inc
+/os/commsfw/datacommsserver/esockserver/version2/subcon_params/src
+/os/persistentdata/loggingservices/filelogger/Documentation
+/os/persistentdata/loggingservices/filelogger/INC
+/os/persistentdata/loggingservices/filelogger/SCLI
+/os/persistentdata/loggingservices/filelogger/SSVR
+/os/persistentdata/loggingservices/filelogger/TSRC
+/os/persistentdata/loggingservices/filelogger/bmarm
+/os/persistentdata/loggingservices/filelogger/bwins
+/os/persistentdata/loggingservices/filelogger/eabi
+/os/persistentdata/loggingservices/filelogger/group
+/os/commsfw/commsfwutils/mbufmgr/Documentation
+/os/commsfw/commsfwutils/mbufmgr/INC
+/os/commsfw/commsfwutils/mbufmgr/TS_mbufmgr/scriptfiles
+/os/commsfw/commsfwutils/mbufmgr/bmarm
+/os/commsfw/commsfwutils/mbufmgr/bwins
+/os/commsfw/commsfwutils/mbufmgr/eabi
+/os/commsfw/commsfwutils/mbufmgr/group
+/os/commsfw/commsfwutils/mbufmgr/src
+/os/commsfw/datacommsserver/networkinterfacemgr/CS_Config
+/os/commsfw/datacommsserver/networkinterfacemgr/Documentation
+/os/commsfw/datacommsserver/networkinterfacemgr/agentpr/inc
+/os/commsfw/datacommsserver/networkinterfacemgr/agentpr/src
+/os/commsfw/datacommsserver/networkinterfacemgr/agentprcore/inc
+/os/commsfw/datacommsserver/networkinterfacemgr/agentprcore/src
+/os/commsfw/datacommsserver/networkinterfacemgr/bmarm
+/os/commsfw/datacommsserver/networkinterfacemgr/bwins
+/os/commsfw/datacommsserver/networkinterfacemgr/eabi
+/os/commsfw/datacommsserver/networkinterfacemgr/group
+/os/commsfw/datacommsserver/networkinterfacemgr/inc
+/os/commsfw/datacommsserver/networkinterfacemgr/netcfgext/EABI
+/os/commsfw/datacommsserver/networkinterfacemgr/netcfgext/bwins
+/os/commsfw/datacommsserver/networkinterfacemgr/netcfgext/group
+/os/commsfw/datacommsserver/networkinterfacemgr/netcfgext/inc
+/os/commsfw/datacommsserver/networkinterfacemgr/netcfgext/src
+/os/commsfw/datacommsserver/networkinterfacemgr/src
+/os/commsfw/datacommsserver/networkinterfacemgr/te_connectioncontrol/bmarm
+/os/commsfw/datacommsserver/networkinterfacemgr/te_connectioncontrol/bwins
+/os/commsfw/datacommsserver/networkinterfacemgr/te_connectioncontrol/configdaemon/bmarm
+/os/commsfw/datacommsserver/networkinterfacemgr/te_connectioncontrol/configdaemon/bwins
+/os/commsfw/datacommsserver/networkinterfacemgr/te_connectioncontrol/configdaemon/eabi
+/os/commsfw/datacommsserver/networkinterfacemgr/te_connectioncontrol/configdaemon/group
+/os/commsfw/datacommsserver/networkinterfacemgr/te_connectioncontrol/configdaemon/include
+/os/commsfw/datacommsserver/networkinterfacemgr/te_connectioncontrol/configdaemon/src
+/os/commsfw/datacommsserver/networkinterfacemgr/te_connectioncontrol/documentation
+/os/commsfw/datacommsserver/networkinterfacemgr/te_connectioncontrol/group
+/os/commsfw/datacommsserver/networkinterfacemgr/te_connectioncontrol/script
+/os/commsfw/datacommsserver/networkinterfacemgr/te_connectioncontrol/src
+/os/commsfw/datacommsserver/networkinterfacemgr/te_nifman/bmarm
+/os/commsfw/datacommsserver/networkinterfacemgr/te_nifman/bwins
+/os/commsfw/datacommsserver/networkinterfacemgr/te_nifman/eabi
+/os/commsfw/datacommsserver/networkinterfacemgr/te_nifman/group
+/os/commsfw/datacommsserver/networkinterfacemgr/te_nifman/inc
+/os/commsfw/datacommsserver/networkinterfacemgr/te_nifman/scripts
+/os/commsfw/datacommsserver/networkinterfacemgr/te_nifman/src
+/os/commsfw/datacommsserver/networkinterfacemgr/ts_nifmanbc
+/os/commsfw/datacommsserver/networkinterfacemgr/version1/CS_Config
+/os/commsfw/datacommsserver/networkinterfacemgr/version1/Documentation
+/os/commsfw/datacommsserver/networkinterfacemgr/version1/EABI
+/os/commsfw/datacommsserver/networkinterfacemgr/version1/NetCfgExtnBase/include
+/os/commsfw/datacommsserver/networkinterfacemgr/version1/NetCfgExtnBase/src
+/os/commsfw/datacommsserver/networkinterfacemgr/version1/bmarm
+/os/commsfw/datacommsserver/networkinterfacemgr/version1/bwins
+/os/commsfw/datacommsserver/networkinterfacemgr/version1/group
+/os/commsfw/datacommsserver/networkinterfacemgr/version1/inc
+/os/networkingsrv/networkcontrol/ipcprshim/group
+/os/networkingsrv/networkcontrol/ipcprshim/inc
+/os/networkingsrv/networkcontrol/ipcprshim/src
+/os/commsfw/datacommsserver/networkinterfacemgr/version1/src
+/os/commsfw/datacommsserver/networkinterfacemgr/version1/te_connectioncontrol/bmarm
+/os/commsfw/datacommsserver/networkinterfacemgr/version1/te_connectioncontrol/bwins
+/os/commsfw/datacommsserver/networkinterfacemgr/version1/te_connectioncontrol/configdaemon/EABI
+/os/commsfw/datacommsserver/networkinterfacemgr/version1/te_connectioncontrol/configdaemon/bmarm
+/os/commsfw/datacommsserver/networkinterfacemgr/version1/te_connectioncontrol/configdaemon/bwins
+/os/commsfw/datacommsserver/networkinterfacemgr/version1/te_connectioncontrol/configdaemon/group
+/os/commsfw/datacommsserver/networkinterfacemgr/version1/te_connectioncontrol/configdaemon/include
+/os/commsfw/datacommsserver/networkinterfacemgr/version1/te_connectioncontrol/configdaemon/src
+/os/commsfw/datacommsserver/networkinterfacemgr/version1/te_connectioncontrol/documentation
+/os/commsfw/datacommsserver/networkinterfacemgr/version1/te_connectioncontrol/group
+/os/commsfw/datacommsserver/networkinterfacemgr/version1/te_connectioncontrol/script
+/os/commsfw/datacommsserver/networkinterfacemgr/version1/te_connectioncontrol/src
+/os/commsfw/datacommsserver/networkinterfacemgr/version1/te_nifman/EABI
+/os/commsfw/datacommsserver/networkinterfacemgr/version1/te_nifman/bmarm
+/os/commsfw/datacommsserver/networkinterfacemgr/version1/te_nifman/bwins
+/os/commsfw/datacommsserver/networkinterfacemgr/version1/te_nifman/group
+/os/commsfw/datacommsserver/networkinterfacemgr/version1/te_nifman/inc
+/os/commsfw/datacommsserver/networkinterfacemgr/version1/te_nifman/scripts
+/os/commsfw/datacommsserver/networkinterfacemgr/version1/te_nifman/src
+/os/commsfw/datacommsserver/networkinterfacemgr/version1/ts_nifmanbc
+/os/commsfw/commsprocess/commsrootserverconfig/CapTestFramework/common
+/os/commsfw/commsprocess/commsrootserverconfig/CapTestFw_Configurator/common
+/os/commsfw/commsprocess/commsrootserverconfig/Documentation
+/os/commsfw/commsprocess/commsrootserverconfig/Te_Configurator/Documentation
+/os/commsfw/commsprocess/commsrootserverconfig/Te_Configurator/DummyCpm/inc
+/os/commsfw/commsprocess/commsrootserverconfig/Te_Configurator/DummyCpm/src
+/os/commsfw/commsprocess/commsrootserverconfig/Te_Configurator/TestConfig/group
+/os/commsfw/commsprocess/commsrootserverconfig/Te_Configurator/scripts
+/os/commsfw/commsprocess/commsrootserverconfig/Te_Configurator/src
+/os/commsfw/commsprocess/commsrootserverconfig/Te_Configurator/util/group
+/os/commsfw/commsprocess/commsrootserverconfig/Te_Configurator/util/inc
+/os/commsfw/commsprocess/commsrootserverconfig/Te_Configurator/util/scriptfiles
+/os/commsfw/commsprocess/commsrootserverconfig/Te_Configurator/util/src
+/os/commsfw/commsprocess/commsrootserverconfig/bindmgr
+/os/commsfw/commsprocess/commsrootserverconfig/bmarm
+/os/commsfw/commsprocess/commsrootserverconfig/bwins
+/os/commsfw/commsprocess/commsrootserverconfig/configurator/group
+/os/commsfw/commsprocess/commsrootserverconfig/configurator/src
+/os/commsfw/commsprocess/commsrootserverconfig/eabi
+/os/commsfw/commsprocess/commsrootserverconfig/etc
+/os/commsfw/commsprocess/commsrootserverconfig/group
+/os/commsfw/commsprocess/commsrootserverconfig/inc
+/os/commsfw/commsprocess/commsrootserverconfig/rootsrv
+/os/commsfw/commsprocess/commsrootserverconfig/te_c32start_race/group
+/os/commsfw/commsprocess/commsrootserverconfig/te_c32start_race/scripts
+/os/commsfw/commsprocess/commsrootserverconfig/te_c32start_race/src
+/os/commsfw/commsprocess/commsrootserverconfig/te_cap_rootserver
+/os/commsfw/commsprocess/commsrootserverconfig/ts_rootserver/scriptfiles
+/os/commsfw/commsprocess/commsrootserverconfig/ts_rootserver/testcpm
+/os/commsfw/commsinfrastructureapitest/commsinfrastructuresvs/EchoServer/bin
+/os/commsfw/commsinfrastructureapitest/commsinfrastructuresvs/EchoServer/documentation
+/os/commsfw/commsinfrastructureapitest/commsinfrastructuresvs/EchoServer/group
+/os/commsfw/commsinfrastructureapitest/commsinfrastructuresvs/EchoServer/source
+/os/commsfw/commsinfrastructureapitest/commsinfrastructuresvs/T_RConnection/documentation
+/os/commsfw/commsinfrastructureapitest/commsinfrastructuresvs/T_RConnection/group
+/os/commsfw/commsinfrastructureapitest/commsinfrastructuresvs/T_RConnection/inc
+/os/commsfw/commsinfrastructureapitest/commsinfrastructuresvs/T_RConnection/pkg
+/os/commsfw/commsinfrastructureapitest/commsinfrastructuresvs/T_RConnection/scripts
+/os/commsfw/commsinfrastructureapitest/commsinfrastructuresvs/T_RConnection/src
+/os/commsfw/commsinfrastructureapitest/commsinfrastructuresvs/T_RConnection/testdata
+/os/commsfw/commsinfrastructureapitest/commsinfrastructuresvs/T_RConnection/testdriver
+/os/commsfw/commsinfrastructureapitest/commsinfrastructuresvs/T_RSocket/documentation
+/os/commsfw/commsinfrastructureapitest/commsinfrastructuresvs/T_RSocket/group
+/os/commsfw/commsinfrastructureapitest/commsinfrastructuresvs/T_RSocket/inc
+/os/commsfw/commsinfrastructureapitest/commsinfrastructuresvs/T_RSocket/pkg
+/os/commsfw/commsinfrastructureapitest/commsinfrastructuresvs/T_RSocket/scripts
+/os/commsfw/commsinfrastructureapitest/commsinfrastructuresvs/T_RSocket/src
+/os/commsfw/commsinfrastructureapitest/commsinfrastructuresvs/T_RSocket/testdata
+/os/commsfw/commsinfrastructureapitest/commsinfrastructuresvs/T_RSocket/testdriver
+/os/commsfw/commsinfrastructureapitest/commsinfrastructuresvs/T_RSocketServ/documentation
+/os/commsfw/commsinfrastructureapitest/commsinfrastructuresvs/T_RSocketServ/group
+/os/commsfw/commsinfrastructureapitest/commsinfrastructuresvs/T_RSocketServ/inc
+/os/commsfw/commsinfrastructureapitest/commsinfrastructuresvs/T_RSocketServ/pkg
+/os/commsfw/commsinfrastructureapitest/commsinfrastructuresvs/T_RSocketServ/scripts
+/os/commsfw/commsinfrastructureapitest/commsinfrastructuresvs/T_RSocketServ/src
+/os/commsfw/commsinfrastructureapitest/commsinfrastructuresvs/T_RSocketServ/testdata
+/os/commsfw/commsinfrastructureapitest/commsinfrastructuresvs/T_RSocketServ/testdriver
+/os/commsfw/commsinfrastructureapitest/commsinfrastructuresvs/T_RSubConnection/documentation
+/os/commsfw/commsinfrastructureapitest/commsinfrastructuresvs/T_RSubConnection/group
+/os/commsfw/commsinfrastructureapitest/commsinfrastructuresvs/T_RSubConnection/inc
+/os/commsfw/commsinfrastructureapitest/commsinfrastructuresvs/T_RSubConnection/pkg
+/os/commsfw/commsinfrastructureapitest/commsinfrastructuresvs/T_RSubConnection/scripts
+/os/commsfw/commsinfrastructureapitest/commsinfrastructuresvs/T_RSubConnection/src
+/os/commsfw/commsinfrastructureapitest/commsinfrastructuresvs/T_RSubConnection/testdata
+/os/commsfw/commsinfrastructureapitest/commsinfrastructuresvs/T_RSubConnection/testdriver
+/os/commsfw/commsinfrastructureapitest/commsinfrastructuresvs/common/inc
+/os/commsfw/commsinfrastructureapitest/commsinfrastructuresvs/common/src
+/os/commsfw/commsinfrastructureapitest/commsinfrastructuresvs/documentation
+/os/commsfw/commsinfrastructureapitest/commsinfrastructuresvs/group
+/os/commsfw/commsinfrastructureapitest/commsinfrastructuresvs/scripts
+/os/commsfw/commsinfrastructureapitest/commsinfrastructuresvs/testdata
+/os/commsfw/commsinfrastructureapitest/commsinfrastructuresvs/testsuites/comms-infras
+/os/commsfw/commsinfrastructureapitest/commsinfrastructuresvs/testsuites/group
+/os/commsfw/commsfwtools/commstools/group
+/os/commsfw/commsfwtools/commstools/svg
+/mw/remoteconn/backupandrestore/backupengine/SBEJavaUtils/bwins
+/mw/remoteconn/backupandrestore/backupengine/SBEJavaUtils/eabi
+/mw/remoteconn/backupandrestore/backupengine/SBEJavaUtils/group
+/mw/remoteconn/backupandrestore/backupengine/SBEJavaUtils/inc
+/mw/remoteconn/backupandrestore/backupengine/SBEJavaUtils/src
+/mw/remoteconn/backupandrestore/backupengine/ThirdPartyJavaManager/data
+/mw/remoteconn/backupandrestore/backupengine/ThirdPartyJavaManager/group
+/mw/remoteconn/backupandrestore/backupengine/ThirdPartyJavaManager/inc
+/mw/remoteconn/backupandrestore/backupengine/ThirdPartyJavaManager/src
+/os/ossrv/genericservices/activebackupclient/BMARM
+/os/ossrv/genericservices/activebackupclient/BWINS
+/os/ossrv/genericservices/activebackupclient/EABI
+/os/ossrv/genericservices/activebackupclient/group
+/os/ossrv/genericservices/activebackupclient/inc
+/os/ossrv/genericservices/activebackupclient/src
+/mw/remoteconn/backupandrestore/backupengine/bmarm
+/mw/remoteconn/backupandrestore/backupengine/bwins
+/mw/remoteconn/backupandrestore/backupengine/eabi
+/mw/remoteconn/backupandrestore/backupengine/group
+/mw/remoteconn/backupandrestore/backupengine/inc
+/mw/remoteconn/backupandrestore/backupengine/src
+/os/unref/orphan/comgen/connectivity/documentation/functional_specification
+/os/unref/orphan/comgen/connectivity/documentation/test_cases
+/app/techview/connectivityapps/connectivityfw/BAL/BMARM
+/app/techview/connectivityapps/connectivityfw/BAL/BWINS
+/app/techview/connectivityapps/connectivityfw/BAL/EABI
+/app/techview/connectivityapps/connectivityfw/BAL/Group
+/app/techview/connectivityapps/connectivityfw/BAL/Inc
+/app/techview/connectivityapps/connectivityfw/BAL/Plugins/NTRAS/BMARM
+/app/techview/connectivityapps/connectivityfw/BAL/Plugins/NTRAS/BWINS
+/app/techview/connectivityapps/connectivityfw/BAL/Plugins/NTRAS/EABI
+/app/techview/connectivityapps/connectivityfw/BAL/Plugins/NTRAS/group
+/app/techview/connectivityapps/connectivityfw/BAL/Plugins/NTRAS/inc
+/app/techview/connectivityapps/connectivityfw/BAL/Plugins/NTRAS/src
+/app/techview/connectivityapps/connectivityfw/BAL/Plugins/mRouter3/BMARM
+/app/techview/connectivityapps/connectivityfw/BAL/Plugins/mRouter3/BWINS
+/app/techview/connectivityapps/connectivityfw/BAL/Plugins/mRouter3/EABI
+/app/techview/connectivityapps/connectivityfw/BAL/Plugins/mRouter3/group
+/app/techview/connectivityapps/connectivityfw/BAL/Plugins/mRouter3/inc
+/app/techview/connectivityapps/connectivityfw/BAL/Plugins/mRouter3/src
+/app/techview/connectivityapps/connectivityfw/BAL/Src
+/app/techview/connectivityapps/connectivityfw/ServerSocket/EABI
+/app/techview/connectivityapps/connectivityfw/ServerSocket/Model
+/app/techview/connectivityapps/connectivityfw/ServerSocket/bmarm
+/app/techview/connectivityapps/connectivityfw/ServerSocket/bwins
+/app/techview/connectivityapps/connectivityfw/ServerSocket/group
+/app/techview/connectivityapps/connectivityfw/ServerSocket/inc
+/app/techview/connectivityapps/connectivityfw/ServerSocket/src
+/app/techview/connectivityapps/connectivityfw/ServiceBroker/EABI
+/app/techview/connectivityapps/connectivityfw/ServiceBroker/bmarm
+/app/techview/connectivityapps/connectivityfw/ServiceBroker/bwins
+/app/techview/connectivityapps/connectivityfw/ServiceBroker/data
+/app/techview/connectivityapps/connectivityfw/ServiceBroker/group
+/app/techview/connectivityapps/connectivityfw/ServiceBroker/inc
+/app/techview/connectivityapps/connectivityfw/ServiceBroker/src
+/app/techview/connectivityapps/connectivityfw/ServiceBroker/test/ClientProcess
+/app/techview/connectivityapps/connectivityfw/ServiceBroker/test/ErrorClientProcess
+/app/techview/connectivityapps/connectivityfw/ServiceBroker/test/UnregClientProcess
+/app/techview/connectivityapps/connectivityfw/group
+/os/unref/orphan/comgen/connectivity/group/all
+/mw/remoteconn/connectivitytransports/plpremotelink/Documentation
+/mw/remoteconn/connectivitytransports/plpremotelink/PLPInc
+/mw/remoteconn/connectivitytransports/plpremotelink/bmarm
+/mw/remoteconn/connectivitytransports/plpremotelink/bwins
+/mw/remoteconn/connectivitytransports/plpremotelink/eabi
+/mw/remoteconn/connectivitytransports/plpremotelink/plpgrp
+/mw/remoteconn/connectivitytransports/plpremotelink/plpremlink
+/mw/remoteconn/connectivitytransports/plpremotelink/plpvariant
+/mw/remoteconn/connectivitytransports/mrouter/Bearers/BT/bwins
+/mw/remoteconn/connectivitytransports/mrouter/Bearers/BT/eabi
+/mw/remoteconn/connectivitytransports/mrouter/Bearers/BT/group
+/mw/remoteconn/connectivitytransports/mrouter/Bearers/BT/src
+/mw/remoteconn/connectivitytransports/mrouter/Bearers/Emulator/bwins
+/mw/remoteconn/connectivitytransports/mrouter/Bearers/Emulator/eabi
+/mw/remoteconn/connectivitytransports/mrouter/Bearers/Emulator/group
+/mw/remoteconn/connectivitytransports/mrouter/Bearers/Emulator/src
+/mw/remoteconn/connectivitytransports/mrouter/Bearers/IR/bwins
+/mw/remoteconn/connectivitytransports/mrouter/Bearers/IR/eabi
+/mw/remoteconn/connectivitytransports/mrouter/Bearers/IR/group
+/mw/remoteconn/connectivitytransports/mrouter/Bearers/IR/src
+/mw/remoteconn/connectivitytransports/mrouter/Bearers/Serial/bwins
+/mw/remoteconn/connectivitytransports/mrouter/Bearers/Serial/eabi
+/mw/remoteconn/connectivitytransports/mrouter/Bearers/Serial/group
+/mw/remoteconn/connectivitytransports/mrouter/Bearers/Serial/src
+/mw/remoteconn/connectivitytransports/mrouter/Bearers/USB/bwins
+/mw/remoteconn/connectivitytransports/mrouter/Bearers/USB/eabi
+/mw/remoteconn/connectivitytransports/mrouter/Bearers/USB/group
+/mw/remoteconn/connectivitytransports/mrouter/Bearers/USB/src
+/mw/remoteconn/connectivitytransports/mrouter/CSY/SockComm/bwins
+/mw/remoteconn/connectivitytransports/mrouter/CSY/SockComm/eabi
+/mw/remoteconn/connectivitytransports/mrouter/CSY/SockComm/group
+/mw/remoteconn/connectivitytransports/mrouter/CSY/SockComm/src
+/mw/remoteconn/connectivitytransports/mrouter/CSY/WinsCsy/bwins
+/mw/remoteconn/connectivitytransports/mrouter/CSY/WinsCsy/group
+/mw/remoteconn/connectivitytransports/mrouter/CSY/WinsCsy/src
+/mw/remoteconn/connectivitytransports/mrouter/group
+/mw/remoteconn/connectivitytransports/mrouter/inc
+/mw/remoteconn/connectivitytransports/mrouter/mRouterAgent/bwins
+/mw/remoteconn/connectivitytransports/mrouter/mRouterAgent/data
+/mw/remoteconn/connectivitytransports/mrouter/mRouterAgent/eabi
+/mw/remoteconn/connectivitytransports/mrouter/mRouterAgent/group
+/mw/remoteconn/connectivitytransports/mrouter/mRouterAgent/inc
+/mw/remoteconn/connectivitytransports/mrouter/mRouterAgent/src
+/mw/remoteconn/connectivitytransports/mrouter/mRouterClient/bwins
+/mw/remoteconn/connectivitytransports/mrouter/mRouterClient/data
+/mw/remoteconn/connectivitytransports/mrouter/mRouterClient/eabi
+/mw/remoteconn/connectivitytransports/mrouter/mRouterClient/group
+/mw/remoteconn/connectivitytransports/mrouter/mRouterClient/inc
+/mw/remoteconn/connectivitytransports/mrouter/mRouterClient/src
+/app/techview/connectivityapps/connectivityservices/SBSocketServer/data
+/app/techview/connectivityapps/connectivityservices/SBSocketServer/group
+/app/techview/connectivityapps/connectivityservices/SBSocketServer/inc
+/app/techview/connectivityapps/connectivityservices/SBSocketServer/src
+/app/techview/connectivityapps/connectivityservices/group
+/mw/remoteconn/usbfunctiondrivers/massstoragemgr/Documentation
+/mw/remoteconn/usbfunctiondrivers/massstoragemgr/group
+/mw/remoteconn/usbfunctiondrivers/massstoragemgr/inc
+/mw/remoteconn/usbfunctiondrivers/massstoragemgr/src
+/mw/remotemgmt/syncandremotemgmtservices/clientprovisioningadaptors/AccessPoints
+/mw/remotemgmt/syncandremotemgmtservices/clientprovisioningadaptors/DmAccDsAcc
+/mw/remotemgmt/syncandremotemgmtservices/clientprovisioningadaptors/Supl
+/mw/remotemgmt/syncandremotemgmtservices/clientprovisioningadaptors/WapProxy
+/mw/remotemgmt/syncandremotemgmtservices/clientprovisioningadaptors/bookmarks
+/mw/remotemgmt/syncandremotemgmtservices/clientprovisioningadaptors/design/Documentation/DmAccDsAcc
+/mw/remotemgmt/syncandremotemgmtservices/clientprovisioningadaptors/design/Documentation/Supl
+/mw/remotemgmt/syncandremotemgmtservices/clientprovisioningadaptors/design/Documentation/bookmarks
+/mw/remotemgmt/syncandremotemgmtservices/clientprovisioningadaptors/design/Documentation/email
+/mw/remotemgmt/syncandremotemgmtservices/clientprovisioningadaptors/design/Documentation/mms
+/mw/remotemgmt/syncandremotemgmtservices/clientprovisioningadaptors/email
+/mw/remotemgmt/syncandremotemgmtservices/clientprovisioningadaptors/group
+/mw/remotemgmt/syncandremotemgmtservices/clientprovisioningadaptors/mms
+/mw/remotemgmt/syncandremotemgmtservices/clientprovisioningadaptors/test/AccessPoints/scripts
+/mw/remotemgmt/syncandremotemgmtservices/clientprovisioningadaptors/test/Bookmarks/scripts
+/mw/remotemgmt/syncandremotemgmtservices/clientprovisioningadaptors/test/DmAccDsAcc/scripts
+/mw/remotemgmt/syncandremotemgmtservices/clientprovisioningadaptors/test/Supl/scripts
+/mw/remotemgmt/syncandremotemgmtservices/clientprovisioningadaptors/test/WapProxy/scripts
+/mw/remotemgmt/syncandremotemgmtservices/clientprovisioningadaptors/test/email/scripts
+/mw/remotemgmt/syncandremotemgmtservices/clientprovisioningadaptors/test/mms/scripts
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/AccessPoints
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/AppMgt/UninstallHelperServer
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/AppMgt/group
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/AppMgt/inc
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/AppMgt/src
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/Bookmarks
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/CenRepMapper/dmtreestore/cellstore
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/CenRepMapper/dmtreestore/inc
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/CenRepMapper/dmtreestore/treestore
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/CenRepMapper/dmtreestore/treestorepi
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/DevInfoDevDetail
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/DmMultiADNW/script
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/DmMultiADTW
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/Documentation/Browser
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/Documentation/DataSync
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/Documentation/DevMan
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/Documentation/EMail
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/Documentation/Fumo
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/Documentation/MMS
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/Documentation/NetworkAccessPoints
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/Documentation/Proxies
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/Documentation/SMS
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/Documentation/Software
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/Documentation/Supl
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/Documentation/connmo/nap
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/Fumo
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/Group
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/Proxies/DmAPITest
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/Shared
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/Supl
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/SyncMLAcc/Common
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/SyncMLAcc/DMAcc
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/SyncMLAcc/DSAcc
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/bmarm
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/bwins
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/connmo/nap
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/connmo/proxies/dmapitest
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/eabi
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/email/tests
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/include
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/mms
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/sms/tests
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/test/AccessPoints/t_dmScripts
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/test/AppMgt/data
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/test/AppMgt/dependences/adapters/devman/test/utils
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/test/AppMgt/dependences/devman/test/include
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/test/AppMgt/dependences/devman/test/utils
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/test/AppMgt/dmjavainst/srccolor
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/test/AppMgt/dmsisinst/aif
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/test/AppMgt/group
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/test/AppMgt/t_dmscripts
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/test/Bookmarks/scripts
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/test/Common/t_dmScripts
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/test/DSAcc/t_dmScripts
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/test/Dmacc/t_dmScripts
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/test/Fumo/t_dmScripts
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/test/LargeObject
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/test/Proxies/t_dmscripts
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/test/Supl/t_dmscript
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/test/connmo/nap/t_dmscripts
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/test/connmo/proxies/t_dmscripts
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/test/devinfodevdetail/scripts
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/test/email
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/test/mms/scripts
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/test/t_cenrepmapper
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/test/t_dmadapters/group
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/test/t_dmadapters/scripts
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/test/t_dmadapters/src
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/test/t_dmadapters/testdata
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/test/t_dmadapters/xml/t_dmadapterssuite/testexecuteservers
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptors/devman/test/utils
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/CPAgent/Client
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/CPAgent/Server
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/CpDocRecognizer
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/CpFileHandler
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/CpFileWatcher
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/CpInputHistory
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/CpScDocReader
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/CpUiNotifier
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/CpWapPushPlugin
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/DmCpShared/DevProvCommon
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/DmCpShared/DmCpSmsMtm/DmCpSmsClientMtm
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/DmCpShared/DmCpSmsMtm/DmCpSmsMtmUi
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/DmCpShared/DmCpSmsMtm/DmCpSmsMtmUiData
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/DmCpShared/DmCpSmsMtm/DmCpSmsServerMtm
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/DmCpShared/bwins
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/DmCpShared/eabi
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/DmCpShared/group
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/DmCpShared/include/protected
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/DmCpShared/test/T_DevProvCommon
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/DmCpShared/test/T_ProvDocMsvEntry
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/Documentation/UML
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/Group
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/ProvDoc
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/Test/CpSmsMtm/CpSmsClientMtm
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/Test/CpSmsMtm/CpSmsMtmUi
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/Test/CpSmsMtm/TCpSmsMtm
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/Test/TCpAgent
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/Test/TCpMsgAuthenticator
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/Test/TCpPreProcFileProcessor
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/Test/TCpRawDocProcessor
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/Test/TPolicySettings
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/Test/TProvDoc
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/Test/TProvDocParser
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/Test/TProvDocWBXMLGen
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/Test/TSubmitCpDoc
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/Test/T_CpDocRecognizer
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/Test/T_CpFileWatcher
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/Test/T_CpInputData
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/Test/T_CpInputHistory
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/Test/T_CpScDocReader
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/Test/T_CpTestUtilsServer/Client
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/Test/T_CpTestUtilsServer/Include
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/Test/T_CpTestUtilsServer/Server
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/Test/T_CpUtils
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/Test/T_CpWapPushPlugin
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/Test/TestFiles/InputMechanisms
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/Test/TestFiles/PushData
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/Test/TestFiles/cpversion
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/Test/UiNotifier/Plugin/Files
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/Test/UiNotifier/TCpUiNotifier
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/Test/UserAgent/TCpUserAgent
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/Test/UserAgent/TCpUserAgentAdapters
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/Test/UserAgent/TCpUserAgentShared
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/Test/UserAgent/bwins
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/Test/UserAgent/eabi
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/Test/Utils
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/Test/bwins
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/Test/eabi
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/Test/include
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/UserAgent
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/Utils
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/bwins
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/eabi
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfw/include/protected
+/mw/remotemgmt/syncandremotemgmtservices/clientprovisioningadaptorsconfig/accesspoints
+/mw/remotemgmt/syncandremotemgmtservices/clientprovisioningadaptorsconfig/bookmarks
+/mw/remotemgmt/syncandremotemgmtservices/clientprovisioningadaptorsconfig/dmaccdsacc
+/mw/remotemgmt/syncandremotemgmtservices/clientprovisioningadaptorsconfig/email
+/mw/remotemgmt/syncandremotemgmtservices/clientprovisioningadaptorsconfig/group
+/mw/remotemgmt/syncandremotemgmtservices/clientprovisioningadaptorsconfig/mms
+/mw/remotemgmt/syncandremotemgmtservices/clientprovisioningadaptorsconfig/supl
+/mw/remotemgmt/syncandremotemgmtservices/clientprovisioningadaptorsconfig/wapproxy
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptorsconfig/accesspoints
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptorsconfig/bookmarks
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptorsconfig/connmo/nap
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptorsconfig/connmo/proxies
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptorsconfig/devinfodevdetail
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptorsconfig/email
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptorsconfig/fumo
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptorsconfig/group
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptorsconfig/mms
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptorsconfig/proxies
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptorsconfig/shared
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptorsconfig/sms
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptorsconfig/supl
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptorsconfig/syncmlacc/common
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptorsconfig/syncmlacc/dmacc
+/mw/remotemgmt/syncandremotemgmtservices/devicemgmtadaptorsconfig/syncmlacc/dsacc
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfwconfig/CPAgent/Client
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfwconfig/CpDocRecognizer
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfwconfig/CpFileHandler
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfwconfig/CpWapPushPlugin
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfwconfig/DmCpShared/DmCpSmsMtm
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfwconfig/Utils
+/mw/remotemgmt/syncandremotemgmtfw/clientprovisioningfwconfig/group
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfwconfig/dmagent/server
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfwconfig/dmbootstrapaccessrightsplugin
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfwconfig/dmcli
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfwconfig/dmcmdmgr
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfwconfig/dmplugins
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfwconfig/dmtree/server
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfwconfig/fota/fotaagent
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfwconfig/group
+/os/unref/orphan/comgen/devprov/config/documentation
+/os/unref/orphan/comgen/devprov/config/group
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/DmBootstrapAccessRightsPlugin
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/HostServerClient/bwins
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/HostServerClient/eabi
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/HostServerClient/group
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/HostServerClient/src
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/RefHostServer/group
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/RefHostServer/inc
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/RefHostServer/src
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/bmarm
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/bwins
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/data
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/design/Documentation
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/design/components
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/design/logical/UCRs
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/design/usecases
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/dmCmdMgr
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/dmagent/dmsession
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/dmagent/server
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/dmagent/shared
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/dmcli
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/dmplugins
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/dmtree/bmarm
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/dmtree/bwins
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/dmtree/client
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/dmtree/eabi
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/dmtree/gastoreclient
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/dmtree/group
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/dmtree/server/cellstore
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/dmtree/server/inc
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/dmtree/server/treestore
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/dmtree/server/treestorepi
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/dmtree/shared
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/eabi
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/fota/bmarm
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/fota/bwins
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/fota/data/test
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/fota/eabi
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/fota/fotaagent
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/fota/fotaclient
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/fota/fotaplugin
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/fota/fotauseragentclient/inc
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/fota/fotauseragentclient/src
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/fota/group
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/fota/include/export
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/group
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/include/export/devman
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/moproviders
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/DMTestUtilsServer/inc
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/DMTestUtilsServer/src
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/DmTreeStore/t_cellstore
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/DmTreeStore/t_diskvolume
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/DmTreeStore/t_node
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/DmTreeStore/t_nodecon
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/DmTreeStore/t_nodemetadata
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/DmTreeStore/t_storevolume
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/DmTreeStore/t_treebench
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/DmTreeStore/t_treenode
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/DmTreeStore/t_treesession
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/DmTreeStore/t_treestore
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/DmTreeStore/t_treestress
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/DmTreeStore/t_treevolume
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/T_DmDefectVerify
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/T_dm
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/T_dmlargeobject
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/bmarm
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/bwins
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/data/ColorScheme
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/data/CorrDupDdf
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/data/DmAPITest
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/data/ProtRulesTest
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/data/gastore
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/eabi
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/fota/Common
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/fota/FotaUAServer/Files
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/fota/FotaUAServer/Group
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/fota/FotaUAServer/Scripts
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/fota/FotaUAServer/inc
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/fota/FotaUAServer/src
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/fota/FotaUserAgent/files
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/fota/FotaUserAgent/group
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/fota/FotaUserAgent/inc
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/fota/FotaUserAgent/scripts
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/fota/FotaUserAgent/src
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/fota/SysStartRemove
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/fota/bmarm
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/fota/bwins
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/fota/eabi
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/fota/group
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/fota/t_fotaJobstatus
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/fota/t_fotaagent
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/fota/t_fotaclient
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/fota/t_fotagaprovider
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/fota/t_fotaintegrun
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/fota/t_fotapluginproxy
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/fota/t_fotapluginstub
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/group
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/include
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/t_ddfcreator/TestDiscoveryAdapter
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/t_dmBootstrapAccessRights
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/t_dmBootstrapPlugin
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/t_dmacl
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/t_dmaclmanagerplugin
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/t_dmadapterhostinstance
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/t_dmagent
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/t_dmcli
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/t_dmcmd
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/t_dmcmdmgr
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/t_dmcommandhandlerplugin
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/t_dmddfparser
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/t_dmddfstore
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/t_dmgastore
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/t_dmhostserver
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/t_dmpluginmgr
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/t_dmprotocolrulesplugin
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/t_dmquerycommandplugin
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/t_dmrefhostservercli
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/t_dmserverhostinstance
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/t_dmtestadapter
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/t_dmtreestore
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/t_dmvalidationplugin
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/t_dmvalidators
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/t_moproviderregistry
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/test/utils
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/tools/dmcpadapterwizard/cpadaptertemplate
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/tools/dmcpadapterwizard/cpadaptertesttemplate
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/tools/dmcpadapterwizard/ddftools
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/tools/dmcpadapterwizard/dmadaptertemplate
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/tools/dmcpadapterwizard/dmadaptertesttemplate
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/tools/dmtreedump
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/tools/group
+/mw/remotemgmt/syncandremotemgmtfw/devicemgmtfw/tools/wbxml2xml
+/os/unref/orphan/comgen/devprov/group
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/ClientProv/Documentation/TestSpecifications
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/ClientProv/group
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/ClientProv/rss
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/ClientProv/scripts
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/ClientProv/src/DmCpTefToolSvr
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/ClientProv/src/adapters
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/ClientProv/src/server
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/TestList/AutoTests/TestDriver/RTest
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/TestList/AutoTests/TestDriver/TEF/testexecuteservers
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/TestList_Nowsms/AutoTests/TestDriver/TEF/testexecuteservers
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/group
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_CPTextToWBXML/bwins
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_CPTextToWBXML/eabi
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_CPTextToWBXML/group
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_CPTextToWBXML/src
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_CpMsvEntryObserverApp/group
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_CpMsvEntryObserverApp/inc
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_CpMsvEntryObserverApp/src
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_DPSettings/Documentation/Design
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_DPSettings/Documentation/TestSpecifications
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_DPSettings/NowSmsFiles/Bookmark
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_DPSettings/NowSmsFiles/DMAcc
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_DPSettings/NowSmsFiles/DSAcc
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_DPSettings/NowSmsFiles/IMPAP4
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_DPSettings/NowSmsFiles/MMS
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_DPSettings/NowSmsFiles/NAP
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_DPSettings/NowSmsFiles/POP3
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_DPSettings/NowSmsFiles/Proxy
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_DPSettings/Scripts/DmTestGenerator
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_DPSettings/Scripts/cp_inputhistory/More
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_DPSettings/SettingProviders/ALM
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_DPSettings/SettingProviders/Bookmark
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_DPSettings/SettingProviders/CP
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_DPSettings/SettingProviders/CommsDat
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_DPSettings/SettingProviders/DSDMAcc
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_DPSettings/SettingProviders/DevMan
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_DPSettings/SettingProviders/Email
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_DPSettings/SettingProviders/Fota
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_DPSettings/SettingProviders/Generic
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_DPSettings/SettingProviders/IntegTest
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_DPSettings/SettingProviders/MMS
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_DPSettings/SettingProviders/SMS
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_DPSettings/SettingProviders/SUPL
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_DPSettings/SettingProviders/inc
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_DPSettings/data/LowerVer
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_DPSettings/group
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_DPSettings/src
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_DevProvCapSuite/group
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_DevProvCapSuite/inc
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_DevProvCapSuite/scripts
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_DevProvCapSuite/src
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_FOTAPlugin/Group
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_FOTAPlugin/inc
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_FOTAPlugin/src
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_FOTAPlugin/test/group
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_FOTAPlugin/test/src
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_FakeFotaUI/group
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_FakeFotaUI/inc
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_FakeFotaUI/src
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_FotaUI/group
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_FotaUI/inc
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_FotaUI/src
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_HostedDSAdapter
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_IntegTestDMAdapter/group
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_IntegTestDMAdapter/src
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/LoopbackTCA
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/Parser/inc
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/Parser/src
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/ACL/01_SetACLAllowGet
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/ACL/02_SetACLNotAllowGet
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/ACL/03_SetACLNotAllowDelete
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/ACL/04_ACLProperties
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/ALM/01_Inventory
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/ALM/02_Install/JAR
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/ALM/02_Install/SIS
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/ALM/03_Inventory/JAR
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/ALM/03_Inventory/SIS
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/ALM/04_UnInstall/JAR
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/ALM/04_UnInstall/SIS
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/ALM/05_Inventory/JAR
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/ALM/05_Inventory/SIS
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/ALM/06_MultipleInstall/JAR
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/ALM/06_MultipleInstall/SIS
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/ALM/07_Inventory/JAR
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/ALM/07_Inventory/SIS
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/ALM/08_CorruptFileInstall/JAR
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/ALM/08_CorruptFileInstall/SIS
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/ALM/09_HigherVersionInstall/JAR
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/ALM/09_HigherVersionInstall/SIS
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/ALM/10_Inventory/JAR
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/ALM/10_Inventory/SIS
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/ALM/11_LowerVersionInstall/JAR
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/ALM/11_LowerVersionInstall/SIS
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/ALM/12_Inventory/JAR
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/ALM/12_Inventory/SIS
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/ALM/13_ACL_Properties
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Alert/01_SctsDMAlert
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Alert/02_SctsDMAlertTextInput
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Alert/03_SctsDMAlertSingleChoice
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Alert/04_SctsDMAlertMultipleChoice
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Alert/05_SctsDMAlertUserReject
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Alert/06_SctsDMAlertUserAccept
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Alert/07_SctsDMAtomicAlertUserAccept
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Alert/08_SctsDMAtomicAlertUserReject
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Alert/09_SctsDMSequenceAlertUserAccept
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Alert/10_SctsDMSequenceAlertUserReject
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Browser/01_Add
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Browser/02_Get
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Browser/03_Replace
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Browser/04_Get
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Browser/05_Delete
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Browser/06_Get
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Browser/Atomic/01_AtomicPass
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Browser/Atomic/02_AtomicFullObj
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Browser/Atomic/03_AtomicFail
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Browser/ExploratoryTests/01_ACLProperties
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Browser/ExploratoryTests/02_ReplaceAndGet
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Browser/Generic/01_Exist_Node
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Browser/Generic/02_Incorrect_Format
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Browser/Generic/03_Multiple_Accounts
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Browser/Generic/04_Multiple_Items
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Browser/Generic/05_ACL_Properties
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Browser/Sequence/01_SequencePass
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Browser/Sequence/02_SequenceFail
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/DMAcc/01_Add
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/DMAcc/02_Get
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/DMAcc/03_Replace
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/DMAcc/04_Get
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/DMAcc/05_Delete
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/DMAcc/06_Get
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/DMAcc/07_AuthType/01_Missing_Missing_Replace
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/DMAcc/07_AuthType/02_Missing_Null
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/DMAcc/07_AuthType/03_Missing_Value
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/DMAcc/07_AuthType/04_Value_Missing
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/DMAcc/07_AuthType/05_Value_Null
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/DMAcc/07_AuthType/06_Null_Missing
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/DMAcc/07_AuthType/07_Null_Null_Replace
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/DMAcc/07_AuthType/08_Null_Value
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/DMAcc/Atomic/01_AtomicPass
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/DMAcc/Atomic/02_AtomicFullObj
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/DMAcc/Atomic/03_AtomicFail
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/DMAcc/ExploratoryTests/01_Get
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/DMAcc/Generic/01_Exist_Node
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/DMAcc/Generic/02_Incorrect_Format
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/DMAcc/Generic/03_Multiple_Accounts
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/DMAcc/Generic/04_Multiple_Items
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/DMAcc/Sequence/01_SequencePass
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/DMAcc/Sequence/02_SequenceFail
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/DSAcc/01_Add
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/DSAcc/02_Get
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/DSAcc/03_Replace
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/DSAcc/04_Get
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/DSAcc/05_Delete
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/DSAcc/06_Get
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/DSAcc/07_AuthType_01
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/DSAcc/07_AuthType_02
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/DSAcc/Atomic/01_AtomicPass
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/DSAcc/Atomic/02_AtomicFullObj
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/DSAcc/Atomic/03_AtomicFail
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/DSAcc/Generic/01_Exist_Node
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/DSAcc/Generic/02_Incorrect_Format
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/DSAcc/Generic/03_Multiple_Accounts
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/DSAcc/Generic/04_Multiple_Items
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/DSAcc/Generic/05_ACL_Properties
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/DSAcc/Generic/06_Negative
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/DSAcc/Sequence/01_SequencePass
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/DSAcc/Sequence/02_SequenceFail
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Email/IMAP4/01_Add
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Email/IMAP4/02_Get
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Email/IMAP4/03_Replace
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Email/IMAP4/04_Get
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Email/IMAP4/05_Delete
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Email/IMAP4/06_Get
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Email/IMAP4/Atomic/01_AtomicPass
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Email/IMAP4/Atomic/02_AtomicFullObj
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Email/IMAP4/Atomic/03_AtomicFail
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Email/IMAP4/Copy/01_Copy
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Email/IMAP4/Generic/01_Exist_Node
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Email/IMAP4/Generic/02_Incorrect_Format
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Email/IMAP4/Generic/03_Multiple_Accounts
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Email/IMAP4/Generic/04_Multiple_Items
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Email/IMAP4/Generic/05_ACL_Properties
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Email/IMAP4/Generic/06_Incomplete_ServerAddr
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Email/IMAP4/Sequence/01_SequencePass
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Email/IMAP4/Sequence/02_SequenceFail
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Email/POP3/01_Add
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Email/POP3/02_Get
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Email/POP3/03_Replace
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Email/POP3/04_Get
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Email/POP3/05_Delete
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Email/POP3/06_Get
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Email/POP3/Atomic/01_AtomicPass
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Email/POP3/Atomic/02_AtomicFullObj
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Email/POP3/Atomic/03_AtomicFail
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Email/POP3/Copy/01_Copy
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Email/POP3/Exploratory/01_Delete
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Email/POP3/Exploratory/02_Invalid_Account
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Email/POP3/Exploratory/03_Atomic_After_Invalid
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Email/POP3/Exploratory/04_Copy_Within_Atomic
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Email/POP3/Generic/01_Exist_Node
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Email/POP3/Generic/02_Incorrect_Format
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Email/POP3/Generic/03_Multiple_Accounts
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Email/POP3/Generic/04_Multiple_Items
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Email/POP3/Generic/05_ACL_Properties
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Email/POP3/Generic/06_Incomplete_ServerAddr
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Email/POP3/Sequence/01_SequencePass
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Email/POP3/Sequence/02_SequenceFail
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/01_RootNodeStructure
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/02_DownloadNodeStructure
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/03_UpdateNodeStructure
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/04_DownloadAndUpdateNodeStructure
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/05_StateNodeStructure
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/06_DM_LargeObject
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/07_01_DLOTA_Download
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/07_02_DLOTA_GetGenericAlert
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/07_03_DLOTA_Update
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/08_01_DLOTA_DownloadAndUpdate
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/08_02_DLOTA_GetGenericAlert
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/09_DM_LargeObjectReplacePkgURL
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/10_DLOTA_BadPkgURL
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/11_01_DLOTA_PkgNotFound
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/11_02_DLOTA_GetGenericAlert
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/12_DM_IncompleteLargeObject
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/13_01_DLOTA_IncompletePkg
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/13_02_DLOTA_GetGenericAlert
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/14_01_DLOTA_CorruptedPkg
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/14_02_DLOTA_GetGenericAlert
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/15_01_DLOTA_NoRespNtfSrv
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/15_02_DLOTA_GetGenericAlert
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/16_01_DLOTA_UserReject
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/16_02_DLOTA_GetGenericAlert
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/17_01_DLOTA_UserCancel
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/17_02_DLOTA_GetGenericAlert
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/18_01_DLOTA_UserPauseAndRes
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/18_02_DLOTA_GetGenericAlert
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/19_01_DLOTA_UserDelete
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/19_02_DLOTA_GetGenericAlert
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/20_01_DLOTA_UserManualUpdate
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/20_02_DLOTA_GetGenericAlert
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/21_01_DLOTA_InstallHigherVersion
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/21_02_DLOTA_GetGenericAlert
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/22_01_DLOTA_InstallLowerVersion
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/22_02_DLOTA_GetGenericAlert
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/23_01_DLOTA_InstallationError
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/23_02_DLOTA_GetGenericAlert
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/24_01_DLOTA_UI_Sync
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/24_02_DLOTA_GetGenericAlert
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/25_01_DLOTA_UserRejectDescDnld
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/25_02_DLOTA_GetGenericAlert
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/26_01_DLOTA_IncorrectDescriptor
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/26_02_DLOTA_GetGenericAlert
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/27_01_DLOTA_InvalidSizeInDescCnt
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/27_02_DLOTA_GetGenericAlert
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/28_01_DLOTA_InvalidSizeInDescAbrt
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/28_02_DLOTA_GetGenericAlert
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/29_01_DLOTA_NoRangeSupport
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/29_02_DLOTA_GetGenericAlert
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/30_01_DLOTA_NoRangeSusRes
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/30_02_DLOTA_GetGenericAlert
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/31_01_DLOTA_NoRangeCancel
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/31_02_DLOTA_GetGenericAlert
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/32_01_DLOTA_PackageList
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/32_02_DLOTA_GetGenericAlert
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/33_01_DLOTA_PackageList
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/33_02_DLOTA_GetGenericAlert
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/34_01_DLOTA_CancelPausedDwnld
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/34_02_DLOTA_GetGenericAlert
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/35_01_DLOTA_NonHttpsDownload
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/35_02_DLOTA_GetGenericAlert
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/36_01_DLOTA_UpdateSusRes
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/36_02_DLOTA_GetGenericAlert
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/37_01_DLOTA_NonHttpsDescriptor
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/37_02_DLOTA_GetGenericAlert
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/38_01_DLOTA_DwnldMultiTrgt
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/38_02_DLOTA_GetGenericAlert
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/38_03_DLOTA_UpdateMultiTargets
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/39_01_DLOTA_DwnldUpdtMultiTrgt
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-DLOTA/39_02_DLOTA_GetGenericAlert
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-OTAFF/01_Get_Ext
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-OTAFF/02_Add_Ext
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-OTAFF/03_Get_Ext
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-OTAFF/04_Replace_Ext
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-OTAFF/05_Get_Ext
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-OTAFF/06_Delete_Ext
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-OTAFF/07_Get_Ext
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-OTAFF/08_Negative
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA-OTAFF/09_Reset
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA/01_SmallObject
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA/02_LargeObject
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/FOTA/03_NodeStructure
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Generic/Atomic/01_AtomicPass
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Generic/Atomic/02_AtomicPass
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Generic/Atomic/03_AtomicPass
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Generic/Deferred
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Generic/GetAttribute
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Generic/GetCaseSense
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Generic/GetSubRoot
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Generic/GetSyncML
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Generic/InvalidBasicAuth
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Generic/LargeNumAllObj
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Generic/LargeNumDMAcc
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Generic/NodeNameTooLong
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Generic/StdObject
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/GenericAlert/01_SingleGA
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/GenericAlert/02_MultipleGA
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/GenericAlert/Offline/01_Server1
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/GenericAlert/Offline/02_Server2
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/GenericAlert/Offline/03_Server1
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/GenericAlert/Offline/04_Server2
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/LargeObject/LargeObjAddGet
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/LargeObject/LargeObjMissingFinal
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/LargeObject/LargeObjTooBig
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/LargeObject/LargeObjTooSmall
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/MMS/01_Add
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/MMS/02_Get
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/MMS/03_Replace
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/MMS/04_Get
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/MMS/05_Delete
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/MMS/06_Get
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/MMS/Atomic/01_AtomicPass
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/MMS/Atomic/02_AtomicFullObj
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/MMS/Atomic/03_AtomicFail
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/MMS/ExploratoryTests/01_ACLProperties
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/MMS/ExploratoryTests/02_AtomicPass
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/MMS/ExploratoryTests/03_AtomicFail
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/MMS/Generic/01_Exist_Node
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/MMS/Generic/02_Incorrect_Format
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/MMS/Generic/03_Multiple_Accounts
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/MMS/Generic/04_Multiple_Items
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/MMS/Generic/05_ACL_Properties
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/MMS/Generic/06_Negative
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/MMS/Sequence/01_SequencePass
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/MMS/Sequence/02_SequenceFail
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/NAP/01_Add
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/NAP/02_Get
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/NAP/03_Replace
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/NAP/04_Get
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/NAP/05_Delete
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/NAP/06_Get
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/NAP/Atomic/01_AtomicPass
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/NAP/Atomic/02_AtomicFail
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/NAP/Exploratory/01_Replace
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/NAP/Exploratory/02_Replace
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/NAP/Generic/01_Exist_Node
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/NAP/Generic/02_Incorrect_Format
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/NAP/Generic/03_Multiple_Accounts
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/NAP/Generic/04_Multiple_Items
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/NAP/Generic/05_ACL_Properties
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/NAP/Generic/06_Add_Long_Data
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/NAP/Generic/07_Get_Long_Data
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/NAP/Sequence/01_SequencePass
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/NAP/Sequence/02_SequenceFail
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Proxy/01_Add
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Proxy/02_Get
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Proxy/03_Replace
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Proxy/04_Get
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Proxy/05_Delete
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Proxy/06_Get
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Proxy/Atomic/01_AtomicPass
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Proxy/Atomic/02_AtomicFullObj
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Proxy/Atomic/03_AtomicFail
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Proxy/Exploratory/01_Add
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Proxy/Exploratory/02_Delete
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Proxy/Generic/01_Exist_Node
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Proxy/Generic/02_Incorrect_Format
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Proxy/Generic/03_Multiple_Accounts
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Proxy/Generic/04_Multiple_Items
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Proxy/Generic/05_ACL_Properties
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Proxy/Sequence/01_SequencePass
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Proxy/Sequence/02_SequenceFail
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/ProxyConnMO/01_Add
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/ProxyConnMO/02_Get
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/ProxyConnMO/03_Replace
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/ProxyConnMO/04_Get
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/ProxyConnMO/05_Delete
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/ProxyConnMO/06_Get
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/ProxyConnMO/07_ConnMo
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/ProxyConnMO/Atomic/01_AtomicPass
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/ProxyConnMO/Atomic/02_AtomicFullObj
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/ProxyConnMO/Atomic/03_AtomicFail
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/ProxyConnMO/Exploratory/01_Add
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/ProxyConnMO/Exploratory/02_Delete
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/ProxyConnMO/Generic/01_Exist_Node
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/ProxyConnMO/Generic/02_Incorrect_Format
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/ProxyConnMO/Generic/03_Multiple_Accounts
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/ProxyConnMO/Generic/04_Multiple_Items
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/ProxyConnMO/Generic/05_ACL_Properties
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/ProxyConnMO/Sequence/01_SequencePass
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/ProxyConnMO/Sequence/02_SequenceFail
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/SMS/01_Add
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/SMS/02_Get
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/SMS/03_Replace
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/SMS/04_Get
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/SMS/05_Delete
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/SMS/06_Get
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/SMS/Atomic/01_AtomicPass
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/SMS/Atomic/02_AtomicFullObj
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/SMS/Atomic/03_AtomicFail
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/SMS/ExploratoryTests/01_ACLProperties
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/SMS/ExploratoryTests/02_Replace
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/SMS/Generic/01_Exist_Node
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/SMS/Generic/02_Incorrect_Format
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/SMS/Generic/03_Multiple_Accounts
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/SMS/Generic/04_Multiple_Items
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/SMS/Generic/05_ACL_Properties
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/SMS/Sequence/01_SequencePass
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/SMS/Sequence/02_SequenceFail
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/StdObject/DevDetail/01_Add
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/StdObject/DevDetail/02_Get
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/StdObject/DevDetail/03_Replace
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/StdObject/DevDetail/04_Delete
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/StdObject/DevDetail/Generic/01_Multiple_Items
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/StdObject/DevDetail/Generic/02_ACL_Properties
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/StdObject/DevInfo/01_Add
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/StdObject/DevInfo/02_Get
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/StdObject/DevInfo/03_Replace
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/StdObject/DevInfo/04_Delete
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/StdObject/DevInfo/Generic/01_Multiple_Items
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/StdObject/DevInfo/Generic/02_ACL_Properties
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Supl/01_Add
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Supl/02_Get
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Supl/03_Replace
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Supl/04_Get
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Supl/05_Delete
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Supl/06_Get
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Supl/Atomic/01_AtomicPass
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Supl/Atomic/02_AtomicFullObj
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Supl/Atomic/03_AtomicFail
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Supl/Sequence/01_SequencePass
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/Supl/Sequence/02_SequenceFail
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/connmonap/01_Add
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/connmonap/02_Get
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/connmonap/03_Replace
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/connmonap/04_Get
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/connmonap/05_Delete
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/connmonap/06_Get
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/connmonap/Atomic/01_AtomicPass
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/connmonap/Atomic/02_AtomicFail
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/connmonap/Exploratory/01_Replace
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/connmonap/Exploratory/02_Replace
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/connmonap/Generic/01_Exist_Node
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/connmonap/Generic/02_Incorrect_Format
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/connmonap/Generic/03_Multiple_Accounts
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/connmonap/Generic/04_Multiple_Items
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/connmonap/Generic/05_ACL_Properties
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/connmonap/Generic/06_Add_Long_Data
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/connmonap/Generic/07_Get_Long_Data
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/connmonap/Sequence/01_SequencePass
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Extension/connmonap/Sequence/02_SequenceFail
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Mandatory/00_Discovery
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Mandatory/00_DiscoveryConnMo
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Mandatory/01_BasicAuth
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Mandatory/02_GetRoot
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Mandatory/03_MD5Auth
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Mandatory/04_HMACAuth
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Mandatory/05_Add
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Mandatory/06_Replace
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Mandatory/07_Sequence
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Mandatory/08_Alert
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Mandatory/09_Delete
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Mandatory/10_MultipleMessages
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Mandatory/11_Atomic
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Mandatory/12_StdObjects
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Mandatory/13_ACLProperties
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Mandatory/14_ACLEnforcement
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Mandatory/15_ACLSetting
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Mandatory/16_Delete
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/Mandatory/18_DeleteTestNode
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/ValidateDefectFixes/DEF108420
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/ValidateDefectFixes/DEF114827
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/ValidateDefectFixes/DEF114938
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/ValidateDefectFixes/DEF116543/atomic
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/ValidateDefectFixes/INC113531
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/ValidateDefectFixes/inc113531ConnMo
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/ValidateDefectFixes/inc120718
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/ValidateDefectFixes/inc120718ConnMo
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/ValidateDefectFixes/inc120760
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/ServerResponseFiles/SCTS/ValidateDefectFixes/inc120760ConnMo
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/bwins
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/eabi
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/group
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/scripts
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_LoopBackSync/src
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_TestManager/bwins
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_TestManager/eabi
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_TestManager/group
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_TestManager/inc
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_TestManager/scripts
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_TestManager/src
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_TestManager/test/group
+/mw/remotemgmt/remotemgmttest/omadevicemgmtintegrationtest/t_TestManager/test/src
+/os/graphics/opengles/openglesimplementation/Gerbera/libs/hg/3.1/symbian
+/os/graphics/opengles/openglesimplementation/Gerbera/products/gerbera/3.1/api_opengl/implementation/symbian
+/os/graphics/opengles/openglesimplementation/Gerbera/products/gerbera/3.1/api_opengl/interface/GLES
+/os/graphics/opengles/openglesimplementation/Gerbera/products/gerbera/3.1/build/symbian/EABI
+/os/graphics/opengles/openglesimplementation/Gerbera/products/gerbera/3.1/build/symbian/bwins
+/os/graphics/opengles/openglesimplementation/Gerbera/products/gerbera/3.1/build/symbian/group
+/os/graphics/opengles/openglesimplementation/Gerbera/products/gerbera/3.1/core/implementation/evaluator
+/os/graphics/opengles/openglesimplementation/Gerbera/products/gerbera/3.1/core/implementation/rasterizer
+/os/graphics/opengles/openglesimplementation/Gerbera/products/gerbera/3.1/core/implementation/x86
+/os/graphics/opengles/openglesimplementation/Gerbera/products/gerbera/3.1/core/interface
+/os/graphics/opengles/openglesimplementation/Gerbera/products/gerbera/3.1/doc
+/os/graphics/opengles/openglesimplementation/Gerbera/products/gerbera/3.1/hc/implementation
+/os/graphics/opengles/openglesimplementation/Gerbera/products/gerbera/3.1/hc/interface
+/os/graphics/opengles/openglesimplementation/Gerbera/products/gerbera/3.1/imath/implementation
+/os/graphics/opengles/openglesimplementation/Gerbera/products/gerbera/3.1/imath/interface
+/os/graphics/opengles/openglesimplementation/Gerbera/products/gerbera/3.1/legacy/symbian/build/EABI
+/os/graphics/opengles/openglesimplementation/Gerbera/products/gerbera/3.1/legacy/symbian/build/bwins
+/os/graphics/opengles/openglesimplementation/Gerbera/products/gerbera/3.1/legacy/symbian/build/group
+/os/graphics/opengles/openglesimplementation/Gerbera/products/gerbera/3.1/legacy/symbian/include
+/os/graphics/opengles/openglesimplementation/Gerbera/products/gerbera/3.1/legacy/symbian/src
+/os/graphics/opengles/openglesimplementation/documentation
+/os/graphics/opengles/openglesimplementation/group
+/os/graphics/opengles/openglesimplementation/test/example_app
+/os/graphics/opengles/openglesimplementation/test/resize_app/group
+/os/graphics/opengles/openglesimplementation/test/resize_app/include
+/os/graphics/opengles/openglesimplementation/test/resize_app/scripts
+/os/graphics/opengles/openglesimplementation/test/resize_app/src
+/os/graphics/opengles/openglesimplementation/test/scripts
+/os/graphics/openvg/openvgimplementation/group
+/os/graphics/openvg/openvgimplementation/implementation/libs/appkit/1.4/include
+/os/graphics/openvg/openvgimplementation/implementation/libs/appkit/1.4/src
+/os/graphics/openvg/openvgimplementation/implementation/libs/hg/3.1/symbian
+/os/graphics/openvg/openvgimplementation/implementation/libs/libhg/1.0/include
+/os/graphics/openvg/openvgimplementation/implementation/libs/libhg/1.0/src
+/os/graphics/openvg/openvgimplementation/implementation/libs/malloc/1.0/include
+/os/graphics/openvg/openvgimplementation/implementation/libs/malloc/1.0/src
+/os/graphics/openvg/openvgimplementation/implementation/libs/stitchgen/7.0/include
+/os/graphics/openvg/openvgimplementation/implementation/libs/stitchgen/7.0/src
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/openvg/build/symbian/BWINS
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/openvg/build/symbian/EABI
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/openvg/build/symbian/group
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/openvg/doc
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/openvg/include/vg
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/openvg/src/rp
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/samples/build/symbian/group
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/samples/example1
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/samples/example2
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/samples/example3
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/samples/example4
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/samples/example5
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/samples/example6
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/samples/example7
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/samples/example_fw
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/benchmark/build/symbian/group
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/benchmark/src
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/arc_stroke_fill
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/basic_blur
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/blend_additive
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/blend_darken
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/blend_dst_in
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/blend_dst_over
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/blend_lighten
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/blend_multiply
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/blend_screen
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/blend_src
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/blend_src_in
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/blend_src_over
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/child_image
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/close_path
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/color_matrix_channels
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/convolve
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/copy_image
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/copy_image_dither
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/copy_image_dither_A_8
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/copy_image_dither_BW_1
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/copy_image_dither_BW_1_target
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/copy_image_dither_lL_8
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/copy_image_dither_lRGBA_8888
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/copy_image_dither_lRGBA_8888_PRE
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/copy_image_dither_lRGBX_8888
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/copy_image_dither_sBGRA_4444
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/copy_image_dither_sL_8
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/copy_image_dither_sRGBA_4444
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/copy_image_dither_sRGBA_5551
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/copy_image_dither_sRGBA_8888
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/copy_image_dither_sRGBA_8888_PRE
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/copy_image_dither_sRGBX_8888
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/copy_image_dither_sRGB_565
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/copy_image_no_dither_A_8
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/copy_image_no_dither_BW_1
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/copy_image_no_dither_lL_8
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/copy_image_no_dither_lRGBA_8888
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/copy_image_no_dither_lRGBA_8888_PRE
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/copy_image_no_dither_lRGBX_8888
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/copy_image_no_dither_sL_8
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/copy_image_no_dither_sRGBA_4444
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/copy_image_no_dither_sRGBA_5551
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/copy_image_no_dither_sRGBA_8888
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/copy_image_no_dither_sRGBA_8888_PRE
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/copy_image_no_dither_sRGBX_8888
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/copy_image_no_dither_sRGB_565
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/copy_image_special_cases
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/copy_pixels
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/cubic_spiral
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/dash_caps
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/dash_joins
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/dash_length
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/dash_phase
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/dash_zero_lengths
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/dashed_spiral
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/deg_cubic_stroke
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/deg_cubic_stroke2
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/deg_line_stroke
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/deg_quadric_stroke
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/draw_image_sampling
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/ellipses
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/fill_intersecting_cubic
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/get_image_sub_data
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/get_pixels
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/hole_path_fill
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/image_clear
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/image_draw
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/image_storage_formats
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/interpolate_path
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/liear_gradient_out_of_bounds
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/linear_gradient
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/linear_gradient_equal_points
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/linear_gradient_large
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/linear_gradient_mipmap
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/linear_gradient_mipmap_2
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/linear_gradient_mipmap_3
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/linear_gradient_out_of_bounds
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/lookup_invert
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/lookup_single
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/masking
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/miter_limit
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/nonantialiased_sampling
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/path_bounds
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/path_pattern_fill_BW1_image
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/path_pattern_fill_sRGBA8888_image
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/path_pattern_fill_transform_path
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/path_transformed_bounds
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/pattern_image_fill
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/pattern_paint_tiling
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/point_on_arc
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/point_on_cubic
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/point_on_path
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/pprojections_checker_better
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/pprojections_checker_faster
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/pprojections_checker_non_antialiased
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/quadric_spiral
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/radial_gradient
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/rotation_precision
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/scissor
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/scissoring_whole_screen_max_rects
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/separable_convolve
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/set_get_color
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/shear
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/simple_clear
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/simple_fill
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/smooth_cubic
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/stencil_blend_additive
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/stencil_blend_darken
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/stencil_blend_dst_in
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/stencil_blend_dst_over
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/stencil_blend_lighten
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/stencil_blend_multiply
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/stencil_blend_screen
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/stencil_blend_src
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/stencil_blend_src_in
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/stencil_blend_src_over
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/transform_path
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/transform_path_with_scale
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/vgCopyPixels_with_scissoring
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/vgSetPixels_with_scissoring
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/vgu_arc
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/vgu_line_polygon
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/functional_tests/refimages/zero_length_subpaths
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/pi_asserts
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/data/scripts/ri_asserts
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/driver/build/symbian/group
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/driver/src/desktop
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/driver/src/symbian
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/lpng128/contrib/gregbook
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/lpng128/contrib/pngminus
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/lpng128/contrib/pngsuite
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/lpng128/contrib/visupng
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/lpng128/projects/beos
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/lpng128/projects/cbuilder5
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/lpng128/projects/visualc6
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/lpng128/projects/visualc71
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/lpng128/scripts
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/lpng128/unused
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/reportgen/bin
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/reportgen/src
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/src
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/zlib122/amiga
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/zlib122/as400
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/zlib122/contrib/ada
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/zlib122/contrib/asm586
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/zlib122/contrib/asm686
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/zlib122/contrib/blast
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/zlib122/contrib/delphi
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/zlib122/contrib/dotzlib/DotZLib
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/zlib122/contrib/gzappend
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/zlib122/contrib/infback9
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/zlib122/contrib/inflate86
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/zlib122/contrib/iostream
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/zlib122/contrib/iostream2
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/zlib122/contrib/iostream3
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/zlib122/contrib/masm686
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/zlib122/contrib/masmx64
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/zlib122/contrib/masmx86
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/zlib122/contrib/minizip
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/zlib122/contrib/pascal
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/zlib122/contrib/puff
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/zlib122/contrib/testzlib
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/zlib122/contrib/untgz
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/zlib122/contrib/vstudio/vc7
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/zlib122/contrib/vstudio/vc8
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/zlib122/examples
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/zlib122/msdos
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/zlib122/old/os2
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/zlib122/projects/visualc6
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/zlib122/qnx
+/os/graphics/openvg/openvgimplementation/implementation/products/openvg/1.5/test/zlib122/win32
+/os/graphics/openvg/openvgimplementation/test/coverflow/build
+/os/graphics/openvg/openvgimplementation/test/coverflow/gfx/call
+/os/graphics/openvg/openvgimplementation/test/coverflow/gfx/cover
+/os/graphics/openvg/openvgimplementation/test/coverflow/group
+/os/graphics/openvg/openvgimplementation/test/coverflow/inc
+/os/graphics/openvg/openvgimplementation/test/coverflow/src
+/os/graphics/openvg/openvgimplementation/test/group
+/os/graphics/openvg/openvgimplementation/test/inc
+/os/graphics/openvg/openvgimplementation/test/rom
+/os/graphics/openvg/openvgimplementation/test/scripts/driver
+/os/graphics/openvg/openvgimplementation/test/src
+/os/graphics/graphicsdeviceinterface/bitgdi/Documentation
+/os/graphics/graphicsdeviceinterface/bitgdi/bitgdi_switch
+/os/graphics/graphicsdeviceinterface/bitgdi/bwins
+/os/graphics/graphicsdeviceinterface/bitgdi/eabi
+/os/graphics/graphicsdeviceinterface/bitgdi/group
+/os/graphics/graphicsdeviceinterface/bitgdi/inc
+/os/graphics/graphicsdeviceinterface/bitgdi/sbit
+/os/graphics/graphicsdeviceinterface/bitgdi/tbit/mbmfiles
+/os/graphics/graphicsdeviceinterface/bitgdi/tbit/scripts
+/os/graphics/graphicsutils/commongraphicsheaders/group
+/os/graphics/graphicsutils/commongraphicsheaders/inc
+/os/graphics/graphicsutils/commongraphicsheaders/rom
+/os/graphics/graphicsdeviceinterface/directgdi/bwins
+/os/graphics/graphicsdeviceinterface/directgdi/documentation
+/os/graphics/graphicsdeviceinterface/directgdi/eabi
+/os/graphics/graphicsdeviceinterface/directgdi/group
+/os/graphics/graphicsdeviceinterface/directgdi/inc
+/os/graphics/graphicsdeviceinterface/directgdi/src
+/os/graphics/graphicsdeviceinterface/directgdi/test/documentation
+/os/graphics/graphicsdeviceinterface/directgdi/test/images/reference/replacements_from_directgdi
+/os/graphics/graphicsdeviceinterface/directgdi/test/mbmfiles
+/os/graphics/graphicsdeviceinterface/directgdi/test/scripts
+/os/graphics/graphicsdeviceinterface/directgdiadaptation/cmnsrc
+/os/graphics/graphicsdeviceinterface/directgdiadaptation/group
+/os/graphics/graphicsdeviceinterface/directgdiadaptation/hwsrc
+/os/graphics/graphicsdeviceinterface/directgdiadaptation/swsrc
+/os/graphics/graphicsdeviceinterface/directgdiinterface/bwins
+/os/graphics/graphicsdeviceinterface/directgdiinterface/eabi
+/os/graphics/graphicsdeviceinterface/directgdiinterface/group
+/os/graphics/graphicsdeviceinterface/directgdiinterface/inc
+/os/graphics/graphics_info/graphicsdocs/Internal Documents
+/os/graphics/graphics_info/graphicsdocs/Test Specifications/9.1
+/os/graphics/graphics_info/graphicsdocs/Test Specifications/9.2
+/os/graphics/graphics_info/graphicsdocs/Test Specifications/9.3
+/os/graphics/graphics_info/graphicsdocs/Test Specifications/vFuture
+/os/graphics/egl/eglimplementation/group
+/os/graphics/egl/eglimplementation/implementation/libs/appkit/1.4/include
+/os/graphics/egl/eglimplementation/implementation/libs/appkit/1.4/src
+/os/graphics/egl/eglimplementation/implementation/libs/hg/3.1/symbian
+/os/graphics/egl/eglimplementation/implementation/products/egl/3.0/build/symbian/BWINS
+/os/graphics/egl/eglimplementation/implementation/products/egl/3.0/build/symbian/EABI
+/os/graphics/egl/eglimplementation/implementation/products/egl/3.0/build/symbian/egl_switch
+/os/graphics/egl/eglimplementation/implementation/products/egl/3.0/build/symbian/group
+/os/graphics/egl/eglimplementation/implementation/products/egl/3.0/doc
+/os/graphics/egl/eglimplementation/implementation/products/egl/3.0/include/EGL
+/os/graphics/egl/eglimplementation/implementation/products/egl/3.0/include/GLES
+/os/graphics/egl/eglimplementation/implementation/products/egl/3.0/samples/interwork_sample/build/symbian/group
+/os/graphics/egl/eglimplementation/implementation/products/egl/3.0/samples/interwork_sample/sf/appkit
+/os/graphics/egl/eglimplementation/implementation/products/egl/3.0/samples/interwork_sample/src/symbian
+/os/graphics/egl/eglimplementation/implementation/products/egl/3.0/src/symbian
+/os/graphics/egl/eglimplementation/test/bwins
+/os/graphics/egl/eglimplementation/test/eabi
+/os/graphics/egl/eglimplementation/test/group
+/os/graphics/egl/eglimplementation/test/inc
+/os/graphics/egl/eglimplementation/test/rom
+/os/graphics/egl/eglimplementation/test/scripts
+/os/graphics/egl/eglimplementation/test/src
+/os/graphics/egl/eglinterface/bwins
+/os/graphics/egl/eglinterface/documentation
+/os/graphics/egl/eglinterface/eabi
+/os/graphics/egl/eglinterface/group
+/os/graphics/egl/eglinterface/include/1.2
+/os/graphics/egl/eglinterface/include/1.3
+/os/graphics/fbs/fontandbitmapserver/Documentation
+/os/graphics/fbs/fontandbitmapserver/bwins
+/os/graphics/fbs/fontandbitmapserver/eabi
+/os/graphics/fbs/fontandbitmapserver/group
+/os/graphics/fbs/fontandbitmapserver/inc
+/os/graphics/fbs/fontandbitmapserver/internaldocs
+/os/graphics/fbs/fontandbitmapserver/sfbs
+/os/graphics/fbs/fontandbitmapserver/textendedbitmapgc
+/os/graphics/fbs/fontandbitmapserver/tfbs/CorruptMBM
+/os/graphics/fbs/fontandbitmapserver/tfbs/mbmfiles
+/os/graphics/fbs/fontandbitmapserver/tfbs/scripts
+/os/graphics/fbs/fontandbitmapserver/tfbs/uniquified_fonts
+/os/graphics/fbs/fontandbitmapserver/trasterizer/src
+/os/graphics/fbs/fontandbitmapserver/trasterizer/test/scripts
+/os/textandloc/fontservices/fontstore/Documentation
+/os/textandloc/fontservices/fontstore/bwins
+/os/textandloc/fontservices/fontstore/eabi
+/os/textandloc/fontservices/fontstore/group
+/os/textandloc/fontservices/fontstore/inc
+/os/textandloc/fontservices/fontstore/internalDocumentation
+/os/textandloc/fontservices/fontstore/src
+/os/textandloc/fontservices/fontstore/tfs/corrupt_gdr_fonts
+/os/textandloc/fontservices/fontstore/tfs/corrupt_ttf_fonts
+/os/textandloc/fontservices/fontstore/tfs/dummy_fonts
+/os/textandloc/fontservices/fontstore/tfs/fntfiles
+/os/textandloc/fontservices/fontstore/tfs/fonts
+/os/textandloc/fontservices/fontstore/tfs/scripts
+/os/textandloc/fontservices/fontstore/tfs/uniquified_fonts
+/os/textandloc/fontservices/referencefonts/Documentation
+/os/textandloc/fontservices/referencefonts/bitmap/fntfiles
+/os/textandloc/fontservices/referencefonts/group
+/os/textandloc/fontservices/referencefonts/inc
+/os/textandloc/fontservices/referencefonts/truetype
+/os/textandloc/fontservices/referencefonts/utils
+/os/textandloc/fontservices/freetypefontrasteriser/Documentation
+/os/textandloc/fontservices/freetypefontrasteriser/bwins
+/os/textandloc/fontservices/freetypefontrasteriser/eabi
+/os/textandloc/fontservices/freetypefontrasteriser/freetype2/include/freetype/config
+/os/textandloc/fontservices/freetypefontrasteriser/freetype2/include/freetype/internal/services
+/os/textandloc/fontservices/freetypefontrasteriser/freetype2/src/autofit
+/os/textandloc/fontservices/freetypefontrasteriser/freetype2/src/base
+/os/textandloc/fontservices/freetypefontrasteriser/freetype2/src/bdf
+/os/textandloc/fontservices/freetypefontrasteriser/freetype2/src/cache
+/os/textandloc/fontservices/freetypefontrasteriser/freetype2/src/cff
+/os/textandloc/fontservices/freetypefontrasteriser/freetype2/src/cid
+/os/textandloc/fontservices/freetypefontrasteriser/freetype2/src/gxvalid
+/os/textandloc/fontservices/freetypefontrasteriser/freetype2/src/gzip
+/os/textandloc/fontservices/freetypefontrasteriser/freetype2/src/lzw
+/os/textandloc/fontservices/freetypefontrasteriser/freetype2/src/otvalid
+/os/textandloc/fontservices/freetypefontrasteriser/freetype2/src/pcf
+/os/textandloc/fontservices/freetypefontrasteriser/freetype2/src/psaux
+/os/textandloc/fontservices/freetypefontrasteriser/freetype2/src/pshinter
+/os/textandloc/fontservices/freetypefontrasteriser/freetype2/src/psnames
+/os/textandloc/fontservices/freetypefontrasteriser/freetype2/src/raster
+/os/textandloc/fontservices/freetypefontrasteriser/freetype2/src/sfnt
+/os/textandloc/fontservices/freetypefontrasteriser/freetype2/src/smooth
+/os/textandloc/fontservices/freetypefontrasteriser/freetype2/src/tools
+/os/textandloc/fontservices/freetypefontrasteriser/freetype2/src/truetype
+/os/textandloc/fontservices/freetypefontrasteriser/freetype2/src/type1
+/os/textandloc/fontservices/freetypefontrasteriser/freetype2/src/type42
+/os/textandloc/fontservices/freetypefontrasteriser/freetype2/src/winfonts
+/os/textandloc/fontservices/freetypefontrasteriser/group
+/os/textandloc/fontservices/freetypefontrasteriser/src
+/os/textandloc/fontservices/freetypefontrasteriser/test/scripts
+/os/textandloc/fontservices/freetypefontrasteriser/testdata
+/os/graphics/graphicscomposition/graphicscompositionengine/appkit/1.4/include
+/os/graphics/graphicscomposition/graphicscompositionengine/appkit/1.4/src
+/os/graphics/graphicscomposition/graphicscompositionengine/bwins
+/os/graphics/graphicscomposition/compositionengineadaptation/bwins
+/os/graphics/graphicscomposition/compositionengineadaptation/eabi
+/os/graphics/graphicscomposition/compositionengineadaptation/group
+/os/graphics/graphicscomposition/compositionengineadaptation/refbackend
+/os/graphics/graphicscomposition/compositionengineadaptation/stitchedbackend
+/os/graphics/graphicscomposition/compositionengineadaptation/stitchgen/7.1/include
+/os/graphics/graphicscomposition/compositionengineadaptation/stitchgen/7.1/src
+/os/graphics/graphicscomposition/graphicscompositionengine/core
+/os/graphics/graphicscomposition/graphicscompositionengine/documentation
+/os/graphics/graphicscomposition/graphicscompositionengine/eabi
+/os/graphics/graphicscomposition/graphicscompositionengine/group/resources
+/os/graphics/graphicscomposition/graphicscompositionengine/hg/2.0
+/os/graphics/graphicscomposition/graphicscompositionengine/inc
+/os/graphics/graphicscomposition/graphicscompositionengine/libhg/1.0/include
+/os/graphics/graphicscomposition/graphicscompositionengine/libhg/1.0/src
+/os/graphics/graphicscomposition/graphicscompositionengine/malloc/1.2/doc
+/os/graphics/graphicscomposition/graphicscompositionengine/malloc/1.2/include
+/os/graphics/graphicscomposition/graphicscompositionengine/malloc/1.2/src
+/os/graphics/graphicscomposition/graphicscompositionengine/mbxbackend/doc
+/os/graphics/graphicscomposition/graphicscompositionengine/mbxbackend/eabi
+/os/graphics/graphicscomposition/graphicscompositionengine/mbxbackend/group
+/os/graphics/graphicscomposition/graphicscompositionengine/reportgen/main/src
+/os/graphics/graphicscomposition/graphicscompositionengine/scripts
+/os/graphics/graphicscomposition/graphicscompositionengine/tbenchmark
+/os/graphics/graphicscomposition/graphicscompositionengine/test/group
+/os/graphics/graphicscomposition/graphicscompositionengine/test/inc
+/os/graphics/graphicscomposition/graphicscompositionengine/test/rom
+/os/graphics/graphicscomposition/graphicscompositionengine/test/scripts
+/os/graphics/graphicscomposition/graphicscompositionengine/test/src
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/API3
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/API4
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/API5
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/API6
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/API7
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Backend1
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Backend10
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Backend11
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Backend12
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Backend2
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Backend3
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Backend4
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Backend5
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Backend6
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Backend7
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Backend8
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Backend9
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Blend10
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Blend11
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Blend12
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Blend13
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Blend14
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Blend15
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Blend16
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Blend17
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Blend18
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Blend19
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Blend2
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Blend20
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Blend21
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Blend22
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Blend23
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Blend24
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Blend3
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Blend6
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Blend7
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Blend8
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Cache1
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Cache10
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Cache11
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Cache12
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Cache13
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Cache14
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Cache3
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Cache6
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Cache7
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Cache8
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Cache9
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Culling10
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Culling11
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Culling12
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Culling13
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Culling14
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Culling15
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Culling16
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Culling17
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Culling18
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Culling19
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Culling20
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Culling21
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Culling22
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Culling23
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Culling24
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Culling5
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Culling6
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Culling8
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Culling9
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Layer1
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Layer10
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Layer11
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Layer13
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Layer14
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Layer15
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Layer16
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Layer2
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Layer3
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Layer6
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Layer7
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Layer8
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Layer9
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Transform1
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Transform15
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Transform16
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Transform2
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Transform2b
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Transform2c
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Transform3
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Transform4
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Transform6a
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Transform6b
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Viewport1
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Viewport10
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Viewport11
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Viewport2
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Viewport3
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Viewport4
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Viewport5
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Viewport6
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Viewport7
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Viewport8
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/Viewport9
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/refimages/blend25
+/os/graphics/graphicscomposition/graphicscompositionengine/tfunctional/tef
+/os/graphics/graphicscomposition/graphicscompositionengine/tstartup
+/os/graphics/graphicscomposition/graphicscompositionengine/tstress/tef
+/os/graphics/graphicscomposition/graphicscompositionengine/tutils
+/os/textandloc/graphicsdevif/gdi/Documentation
+/os/textandloc/graphicsdevif/gdi/bwins
+/os/textandloc/graphicsdevif/gdi/eabi
+/os/textandloc/graphicsdevif/gdi/group
+/os/textandloc/graphicsdevif/gdi/inc
+/os/textandloc/graphicsdevif/gdi/lookuptable
+/os/textandloc/graphicsdevif/gdi/mglyph
+/os/textandloc/graphicsdevif/gdi/sgdi
+/os/textandloc/graphicsdevif/gdi/tgdi/scripts
+/os/graphics/graphicstools/gdi_tools/bmconv
+/os/graphics/graphicstools/gdi_tools/fontcomp
+/os/graphics/graphicstools/gdi_tools/group
+/os/graphics/graphicstools/gdi_tools/inc
+/os/graphics/graphicstools/bitmapfonttools/group
+/os/graphics/graphicstools/bitmapfonttools/inc
+/os/graphics/graphicstools/bitmapfonttools/rel
+/os/graphics/graphicstools/bitmapfonttools/src
+/os/graphics/graphicstools/bitmapfonttools/t_bdf
+/os/graphics/graphicsresourceservices/graphicsresource/bwins
+/os/graphics/graphicsresourceservices/graphicsresource/documentation
+/os/graphics/graphicsresourceservices/graphicsresource/eabi
+/os/graphics/graphicsresourceservices/graphicsresource/group
+/os/graphics/graphicsresourceservices/graphicsresource/inc
+/os/graphics/graphicsresourceservices/graphicsresource/src
+/os/graphics/graphicsresourceservices/graphicsresource/test/scripts
+/os/graphics/graphicsresourceservices/graphicsresourceadaptation/group
+/os/graphics/graphicsresourceservices/graphicsresourceadaptation/inc
+/os/graphics/graphicsresourceservices/graphicsresourceadaptation/src
+/os/textandloc/fontservices/textshaperplugin/Documentation
+/os/textandloc/fontservices/textshaperplugin/IcuSource/common/unicode
+/os/textandloc/fontservices/textshaperplugin/IcuSource/layout
+/os/textandloc/fontservices/textshaperplugin/bwins
+/os/textandloc/fontservices/textshaperplugin/eabi
+/os/textandloc/fontservices/textshaperplugin/group
+/os/textandloc/fontservices/textshaperplugin/include
+/os/textandloc/fontservices/textshaperplugin/source
+/os/textandloc/fontservices/textshaperplugin/test/CreateTestData
+/os/textandloc/fontservices/textshaperplugin/test/HindiDemo/group
+/os/textandloc/fontservices/textshaperplugin/test/HindiDemo/source
+/os/textandloc/fontservices/textshaperplugin/test/S60HindiDemo/aif
+/os/textandloc/fontservices/textshaperplugin/test/S60HindiDemo/group
+/os/textandloc/fontservices/textshaperplugin/test/S60HindiDemo/inc
+/os/textandloc/fontservices/textshaperplugin/test/S60HindiDemo/sis
+/os/textandloc/fontservices/textshaperplugin/test/S60HindiDemo/src
+/os/textandloc/fontservices/textshaperplugin/test/letest
+/os/textandloc/fontservices/textshaperplugin/test/testdata
+/os/textandloc/fontservices/graphicstestfonts/fonts
+/os/textandloc/fontservices/graphicstestfonts/group
+/os/graphics/fbs/itypefontrasteriser/binaries/armv5/udeb
+/os/graphics/fbs/itypefontrasteriser/binaries/armv5/urel
+/os/graphics/fbs/itypefontrasteriser/binaries/winscw/udeb
+/os/graphics/fbs/itypefontrasteriser/binaries/winscw/urel
+/os/graphics/fbs/itypefontrasteriser/group
+/os/graphics/fbs/itypefontrasteriser/source/group
+/os/graphics/fbs/itypefontrasteriser/source/itype/common
+/os/graphics/fbs/itypefontrasteriser/source/itype/port
+/os/graphics/fbs/itypefontrasteriser/source/src
+/os/graphics/opengles/openglesdisplayproperties/bwins
+/os/graphics/opengles/openglesdisplayproperties/documentation
+/os/graphics/opengles/openglesdisplayproperties/eabi
+/os/graphics/opengles/openglesdisplayproperties/group
+/os/graphics/opengles/openglesdisplayproperties/inc
+/os/graphics/opengles/openglesdisplayproperties/src
+/os/graphics/opengles/openglesinterface/bwins
+/os/graphics/opengles/openglesinterface/documentation
+/os/graphics/opengles/openglesinterface/eabi
+/os/graphics/opengles/openglesinterface/group/opengles2_stub
+/os/graphics/opengles/openglesinterface/group/opengles_stub
+/os/graphics/opengles/openglesinterface/include/GLES2
+/os/graphics/opengles/openglesinterface/include/legacy_egl_1_1
+/os/graphics/opengles/openglesinterface/test
+/os/graphics/openvg/openvginterface/bwins
+/os/graphics/openvg/openvginterface/documentation
+/os/graphics/openvg/openvginterface/eabi
+/os/graphics/openvg/openvginterface/group/openvg11
+/os/graphics/openvg/openvginterface/include/1.0
+/os/graphics/openvg/openvginterface/include/1.1
+/os/graphics/openvg/openvginterface/test
+/os/graphics/graphicsdeviceinterface/colourpalette/bwins
+/os/graphics/graphicsdeviceinterface/colourpalette/eabi
+/os/graphics/graphicsdeviceinterface/colourpalette/group
+/os/graphics/graphicsdeviceinterface/colourpalette/inc
+/os/graphics/graphicsdeviceinterface/colourpalette/src
+/os/graphics/printingservices/printerdriversupport/bwins
+/os/graphics/printingservices/printerdriversupport/eabi
+/os/graphics/printingservices/printerdriversupport/group
+/os/graphics/printingservices/printerdriversupport/inc
+/os/graphics/printingservices/printerdriversupport/src
+/os/graphics/printingservices/printerdriversupport/tps/printfiles
+/os/graphics/printingservices/printerdriversupport/tps/scripts
+/os/graphics/printingservices/printerdrivers/bwins
+/os/graphics/printingservices/printerdrivers/canon
+/os/graphics/printingservices/printerdrivers/epson
+/os/graphics/printingservices/printerdrivers/general
+/os/graphics/printingservices/printerdrivers/group
+/os/graphics/printingservices/printerdrivers/pcl5
+/os/graphics/printingservices/printerdrivers/testdocs
+/os/graphics/graphicsdeviceinterface/screendriver/Documentation
+/os/graphics/graphicsdeviceinterface/screendriver/bwins
+/os/graphics/graphicsdeviceinterface/screendriver/eabi
+/os/graphics/graphicsdeviceinterface/screendriver/group
+/os/graphics/graphicsdeviceinterface/screendriver/inc
+/os/graphics/graphicsdeviceinterface/screendriver/sbit
+/os/graphics/graphicsdeviceinterface/screendriver/scdv_switch
+/os/graphics/graphicsdeviceinterface/screendriver/sgeneric
+/os/graphics/graphicsdeviceinterface/screendriver/smcot
+/os/graphics/graphicsdeviceinterface/screendriver/smint
+/os/graphics/graphicsdeviceinterface/screendriver/smomap
+/os/graphics/graphicsdeviceinterface/screendriver/swins
+/os/graphics/graphicsdeviceinterface/screendriver/tsrc/rom
+/os/graphics/graphicsdeviceinterface/screendriver/tsrc/scripts
+/os/graphics/graphicshwdrivers/surfacemgr/bmarm
+/os/graphics/graphicshwdrivers/surfacemgr/bwins
+/os/graphics/graphicshwdrivers/surfacemgr/documentation
+/os/graphics/graphicshwdrivers/surfacemgr/eabi
+/os/graphics/graphicshwdrivers/surfacemgr/group
+/os/graphics/graphicshwdrivers/surfacemgr/inc
+/os/graphics/graphicshwdrivers/surfacemgr/src
+/os/graphics/graphicshwdrivers/surfacemgr/test/group
+/os/graphics/graphicshwdrivers/surfacemgr/test/inc
+/os/graphics/graphicshwdrivers/surfacemgr/test/rom
+/os/graphics/graphicshwdrivers/surfacemgr/test/scripts
+/os/graphics/graphicshwdrivers/surfacemgr/test/src
+/os/graphics/graphicshwdrivers/surfacemgr/test/testdriver
+/os/graphics/graphicscomposition/surfaceupdate/bwins
+/os/graphics/graphicscomposition/surfaceupdate/documentation
+/os/graphics/graphicscomposition/surfaceupdate/eabi
+/os/graphics/graphicscomposition/surfaceupdate/group
+/os/graphics/graphicscomposition/surfaceupdate/inc
+/os/graphics/graphicscomposition/surfaceupdate/src
+/os/graphics/graphicscomposition/surfaceupdate/tsrc
+/os/graphics/graphicstest/graphicstestharness/automation/testlists/emulator
+/os/graphics/graphicstest/graphicstestharness/automation/testlists/hardware
+/os/graphics/graphicstest/graphicstestharness/bwins
+/os/graphics/graphicstest/graphicstestharness/eabi
+/os/graphics/graphicstest/graphicstestharness/group
+/os/graphics/graphicstest/graphicstestharness/inc
+/os/graphics/graphicstest/graphicstestharness/resource/hardware
+/os/graphics/graphicstest/graphicstestharness/rom
+/os/graphics/graphicstest/graphicstestharness/src
+/os/graphics/graphcisapitest/graphicssvs/T_BitGDIAPI/inc
+/os/graphics/graphcisapitest/graphicssvs/T_BitGDIAPI/src
+/os/graphics/graphcisapitest/graphicssvs/T_FBServAPI/documentation
+/os/graphics/graphcisapitest/graphicssvs/T_FBServAPI/group
+/os/graphics/graphcisapitest/graphicssvs/T_FBServAPI/inc
+/os/graphics/graphcisapitest/graphicssvs/T_FBServAPI/pkg
+/os/graphics/graphcisapitest/graphicssvs/T_FBServAPI/scripts
+/os/graphics/graphcisapitest/graphicssvs/T_FBServAPI/src
+/os/graphics/graphcisapitest/graphicssvs/T_FBServAPI/testdata
+/os/graphics/graphcisapitest/graphicssvs/T_FBServAPI/testdriver
+/os/graphics/graphcisapitest/graphicssvs/T_FntStoreAPI/inc
+/os/graphics/graphcisapitest/graphicssvs/T_FntStoreAPI/src
+/os/graphics/graphcisapitest/graphicssvs/T_GDIAPI/inc
+/os/graphics/graphcisapitest/graphicssvs/T_GDIAPI/src
+/os/graphics/graphcisapitest/graphicssvs/common/inc
+/os/graphics/graphcisapitest/graphicssvs/common/src
+/os/graphics/graphcisapitest/graphicssvs/documentation
+/os/graphics/graphcisapitest/graphicssvs/group
+/os/graphics/graphcisapitest/graphicssvs/scripts
+/os/graphics/graphcisapitest/graphicssvs/testsuites/graphics
+/os/graphics/graphcisapitest/graphicssvs/testsuites/group
+/app/techview/testapps/memspy/documentation
+/app/techview/testapps/memspy/group
+/app/techview/testapps/memspy/icons
+/app/techview/testapps/memspy/resource
+/app/techview/testapps/memspy/src
+/os/graphics/graphicstest/uibench/Documentation
+/os/graphics/graphicstest/uibench/bitmaps
+/os/graphics/graphicstest/uibench/data
+/os/graphics/graphicstest/uibench/group
+/os/graphics/graphicstest/uibench/mbm
+/os/graphics/graphicstest/uibench/scripts
+/os/graphics/graphicstest/uibench/src
+/os/graphics/windowing/windowserver/Anim
+/os/graphics/windowing/windowserver/DES
+/os/graphics/windowing/windowserver/Documentation
+/os/graphics/windowing/windowserver/SERVER
+/os/graphics/windowing/windowserver/TClick
+/os/graphics/windowing/windowserver/bwins
+/os/graphics/windowing/windowserver/data
+/os/graphics/windowing/windowserver/debuglog
+/os/graphics/windowing/windowserver/eabi
+/os/graphics/windowing/windowserver/econs
+/os/graphics/windowing/windowserver/group
+/os/graphics/windowing/windowserver/inc/Graphics
+/os/graphics/windowing/windowserver/nga/CLIENT
+/os/graphics/windowing/windowserver/nga/SERVER
+/os/graphics/windowing/windowserver/nga/graphicdrawer
+/os/graphics/windowing/windowserver/nga/remotegc
+/os/graphics/windowing/windowserver/nga/samplegraphicsurfacedrawer
+/os/graphics/windowing/windowserver/nga/stdplugin
+/os/graphics/windowing/windowserver/nonnga/CLIENT
+/os/graphics/windowing/windowserver/nonnga/SERVER
+/os/graphics/windowing/windowserver/nonnga/graphicdrawer
+/os/graphics/windowing/windowserver/nonnga/remotegc
+/os/graphics/windowing/windowserver/nonnga/stdplugin
+/os/graphics/windowing/windowserver/profiler
+/os/graphics/windowing/windowserver/rom
+/os/graphics/windowing/windowserver/stdgraphic
+/os/graphics/windowing/windowserver/t_integ/bwins
+/os/graphics/windowing/windowserver/t_integ/data/batch
+/os/graphics/windowing/windowserver/t_integ/data/bmp
+/os/graphics/windowing/windowserver/t_integ/data/ini
+/os/graphics/windowing/windowserver/t_integ/data/mbm
+/os/graphics/windowing/windowserver/t_integ/documentation
+/os/graphics/windowing/windowserver/t_integ/eabi
+/os/graphics/windowing/windowserver/t_integ/group
+/os/graphics/windowing/windowserver/t_integ/inc
+/os/graphics/windowing/windowserver/t_integ/resource
+/os/graphics/windowing/windowserver/t_integ/rom
+/os/graphics/windowing/windowserver/t_integ/scripts
+/os/graphics/windowing/windowserver/t_integ/src
+/os/graphics/windowing/windowserver/t_integ/tools/yuv_converter
+/os/graphics/windowing/windowserver/tanim
+/os/graphics/windowing/windowserver/tauto
+/os/graphics/windowing/windowserver/tcapability
+/os/graphics/windowing/windowserver/tcontaindrawer
+/os/graphics/windowing/windowserver/tcrx
+/os/graphics/windowing/windowserver/test/TAutoServer
+/os/graphics/windowing/windowserver/test/group
+/os/graphics/windowing/windowserver/test/resource/armv5
+/os/graphics/windowing/windowserver/test/resource/wins
+/os/graphics/windowing/windowserver/test/scripts
+/os/graphics/windowing/windowserver/test/t_capability/group
+/os/graphics/windowing/windowserver/test/t_capability/inc
+/os/graphics/windowing/windowserver/test/t_capability/rom
+/os/graphics/windowing/windowserver/test/t_capability/scripts
+/os/graphics/windowing/windowserver/test/t_capability/src
+/os/graphics/windowing/windowserver/test/t_gdcoverage
+/os/graphics/windowing/windowserver/test/t_genericplugin/data/batch
+/os/graphics/windowing/windowserver/test/t_genericplugin/data/ini
+/os/graphics/windowing/windowserver/test/t_genericplugin/data/mbm
+/os/graphics/windowing/windowserver/test/t_genericplugin/documentation
+/os/graphics/windowing/windowserver/test/t_genericplugin/group
+/os/graphics/windowing/windowserver/test/t_genericplugin/inc
+/os/graphics/windowing/windowserver/test/t_genericplugin/resource
+/os/graphics/windowing/windowserver/test/t_genericplugin/rom
+/os/graphics/windowing/windowserver/test/t_genericplugin/scripts
+/os/graphics/windowing/windowserver/test/t_genericplugin/src
+/os/graphics/windowing/windowserver/test/t_halattprovider
+/os/graphics/windowing/windowserver/test/t_stress/data
+/os/graphics/windowing/windowserver/test/t_stress/documentation
+/os/graphics/windowing/windowserver/test/t_stress/group
+/os/graphics/windowing/windowserver/test/t_stress/inc
+/os/graphics/windowing/windowserver/test/t_stress/scripts
+/os/graphics/windowing/windowserver/test/t_stress/src
+/os/graphics/windowing/windowserver/test/t_stress/tstressanim/group
+/os/graphics/windowing/windowserver/test/t_stress/tstressanim/inc
+/os/graphics/windowing/windowserver/test/t_stress/tstressanim/src
+/os/graphics/windowing/windowserver/test/t_stress/tstresscrp/data
+/os/graphics/windowing/windowserver/test/t_stress/tstresscrp/group
+/os/graphics/windowing/windowserver/test/t_stress/tstresscrp/src
+/os/graphics/windowing/windowserver/test/tscreenconstruct/Documentation
+/os/graphics/windowing/windowserver/test/tscreenconstruct/data/batch
+/os/graphics/windowing/windowserver/test/tscreenconstruct/data/ini
+/os/graphics/windowing/windowserver/test/tscreenconstruct/group
+/os/graphics/windowing/windowserver/test/tscreenconstruct/inc
+/os/graphics/windowing/windowserver/test/tscreenconstruct/scripts
+/os/graphics/windowing/windowserver/test/tscreenconstruct/src
+/os/graphics/windowing/windowserver/tframerate
+/os/graphics/windowing/windowserver/tgce/documentation
+/os/graphics/windowing/windowserver/tgce/fastpath/animationdll
+/os/graphics/windowing/windowserver/tgce/fastpath/resources/arm
+/os/graphics/windowing/windowserver/tgce/fastpath/resources/wins
+/os/graphics/windowing/windowserver/tgce/samplegraphictestsurfacemultidrawer
+/os/graphics/windowing/windowserver/tgceperf/tgceperfanim
+/os/graphics/windowing/windowserver/tlib
+/os/graphics/windowing/windowserver/tlisten
+/os/graphics/windowing/windowserver/tman
+/os/graphics/windowing/windowserver/tredir
+/os/graphics/windowing/windowserver/ttime
+/os/graphics/windowing/windowserver/twsgraphic
+/os/graphics/windowing/windowserver/wins_switching
+/os/shortlinksrv/irda/irdaconfig/data
+/os/shortlinksrv/irda/irdadocs/Designs
+/os/shortlinksrv/irda/irdadocs/Functional_Specs
+/os/shortlinksrv/irda/irdadocs/How_Tos
+/os/shortlinksrv/irda/irdadocs/Internal_Documents
+/os/shortlinksrv/irda/irdadocs/Test_Specs
+/os/shortlinksrv/irda/irdadocs/Use_Cases
+/os/shortlinksrv/irda/irdastack/DESIGN
+/os/shortlinksrv/irda/irdastack/INC
+/os/shortlinksrv/irda/irdastack/IRCOMM
+/os/shortlinksrv/irda/irdastack/SSRC/client-side
+/os/shortlinksrv/irda/irdastack/SSRC/common
+/os/shortlinksrv/irda/irdastack/SSRC/prt
+/os/shortlinksrv/irda/irdastack/bwins
+/os/shortlinksrv/irda/irdastack/eabi
+/os/shortlinksrv/irda/irdastack/group
+/os/shortlinksrv/irda/irdastack/irdialbca/bwins
+/os/shortlinksrv/irda/irdastack/irdialbca/eabi
+/os/shortlinksrv/irda/irdastack/irdialbca/group
+/os/shortlinksrv/irda/irdastack/irdialbca/inc
+/os/shortlinksrv/irda/irdastack/irdialbca/src
+/os/shortlinksrv/irda/irdastack/irtranp
+/os/shortlinksrv/irda/irdatest/cit/ROMConfig/group
+/os/shortlinksrv/irda/irdatest/cit/ROMConfig/inc
+/os/shortlinksrv/irda/irdatest/cit/ROMConfig/scripts
+/os/shortlinksrv/irda/irdatest/cit/ROMConfig/src
+/os/shortlinksrv/irda/irdatest/cit/ROMConfig/testdata
+/os/shortlinksrv/irda/irdatest/cit/ROMConfig/xml/IrdaRomConfigSuite/IrdaExcSuite
+/os/shortlinksrv/irda/irdatest/cit/ROMConfig/xml/IrdaRomConfigSuite/IrdaIncSuite
+/os/shortlinksrv/irda/irdatest/cit/ROMConfig/xml/IrdaRomConfigSuite/TestExecuteServers
+/os/shortlinksrv/irda/irdatest/group
+/os/shortlinksrv/irda/irdatest/t_publish/group
+/os/shortlinksrv/irda/irdatest/t_publish/inc
+/os/shortlinksrv/irda/irdatest/t_publish/src
+/os/shortlinksrv/irda/irdatest/testir/group
+/os/shortlinksrv/irda/irdatest/testir/src
+/os/shortlinksrv/irda/irdatest/testprot/group
+/os/shortlinksrv/irda/irdatest/testprot/inc
+/os/shortlinksrv/irda/irdatest/testprot/src
+/os/shortlinksrv/irda/irdatest/tgenoa/group
+/os/shortlinksrv/irda/irdatest/tgenoa/inc
+/os/shortlinksrv/irda/irdatest/tgenoa/src
+/os/shortlinksrv/irda/irdatest/tircomm/group
+/os/shortlinksrv/irda/irdatest/tircomm/src
+/os/shortlinksrv/irda/irdatest/tirda/group
+/os/shortlinksrv/irda/irdatest/tirda/src
+/os/shortlinksrv/irda/irdatest/tmulti/group
+/os/shortlinksrv/irda/irdatest/tmulti/src
+/os/shortlinksrv/irda/irdatest/tranptest/group
+/os/shortlinksrv/irda/irdatest/tranptest/src
+/mw/messagingmw/messagingfw/biomsgfw/BDB/bwins
+/mw/messagingmw/messagingfw/biomsgfw/BDB/eabi
+/mw/messagingmw/messagingfw/biomsgfw/BDB/group
+/mw/messagingmw/messagingfw/biomsgfw/BDBINC
+/mw/messagingmw/messagingfw/biomsgfw/BDBSRC
+/mw/messagingmw/messagingfw/biomsgfw/BDBTSRC/testbif
+/mw/messagingmw/messagingfw/biomsgfw/BIFU/bwins
+/mw/messagingmw/messagingfw/biomsgfw/BIFU/eabi
+/mw/messagingmw/messagingfw/biomsgfw/BIFU/group
+/mw/messagingmw/messagingfw/biomsgfw/BIFUINC
+/mw/messagingmw/messagingfw/biomsgfw/BIFUSRC
+/mw/messagingmw/messagingfw/biomsgfw/BIFUTSRC
+/mw/messagingmw/messagingfw/biomsgfw/BIOC/bwins
+/mw/messagingmw/messagingfw/biomsgfw/BIOC/eabi
+/mw/messagingmw/messagingfw/biomsgfw/BIOC/group
+/mw/messagingmw/messagingfw/biomsgfw/BIOCINC
+/mw/messagingmw/messagingfw/biomsgfw/BIOCSRC
+/mw/messagingmw/messagingfw/biomsgfw/BIOCTSRC
+/mw/messagingmw/messagingfw/biomsgfw/BIOS/bwins
+/mw/messagingmw/messagingfw/biomsgfw/BIOS/eabi
+/mw/messagingmw/messagingfw/biomsgfw/BIOS/group
+/mw/messagingmw/messagingfw/biomsgfw/BIOSINC
+/mw/messagingmw/messagingfw/biomsgfw/BIOSSRC
+/mw/messagingmw/messagingfw/biomsgfw/BIOSTSRC
+/mw/messagingmw/messagingfw/biomsgfw/BITS
+/mw/messagingmw/messagingfw/biomsgfw/BITSINC
+/mw/messagingmw/messagingfw/biomsgfw/BITSSRC
+/mw/messagingmw/messagingfw/biomsgfw/BITSTSRC
+/mw/messagingmw/messagingfw/biomsgfw/BIUT/bwins
+/mw/messagingmw/messagingfw/biomsgfw/BIUT/eabi
+/mw/messagingmw/messagingfw/biomsgfw/BIUT/group
+/mw/messagingmw/messagingfw/biomsgfw/BIUTINC
+/mw/messagingmw/messagingfw/biomsgfw/BIUTSRC
+/mw/messagingmw/messagingfw/biomsgfw/BIUTTSRC
+/mw/messagingmw/messagingfw/biomsgfw/BioWatchers/EABI
+/mw/messagingmw/messagingfw/biomsgfw/BioWatchers/Inc
+/mw/messagingmw/messagingfw/biomsgfw/BioWatchers/Src
+/mw/messagingmw/messagingfw/biomsgfw/BioWatchers/Test
+/mw/messagingmw/messagingfw/biomsgfw/BioWatchers/bwins
+/mw/messagingmw/messagingfw/biomsgfw/BioWatchers/docs
+/mw/messagingmw/messagingfw/biowatchers/CdmaNbsWatcher/Group
+/mw/messagingmw/messagingfw/biowatchers/CdmaNbsWatcher/Inc
+/mw/messagingmw/messagingfw/biowatchers/CdmaNbsWatcher/Src
+/mw/messagingmw/messagingfw/biowatchers/CdmaNbsWatcher/bmarm
+/mw/messagingmw/messagingfw/biowatchers/CdmaNbsWatcher/bwins
+/mw/messagingmw/messagingfw/biowatchers/CdmaNbsWatcher/eabi
+/mw/messagingmw/messagingfw/biowatchers/CdmaSocketWatcher/Group
+/mw/messagingmw/messagingfw/biowatchers/CdmaSocketWatcher/Inc
+/mw/messagingmw/messagingfw/biowatchers/CdmaSocketWatcher/Src
+/mw/messagingmw/messagingfw/biowatchers/CdmaSocketWatcher/bmarm
+/mw/messagingmw/messagingfw/biowatchers/CdmaSocketWatcher/bwins
+/mw/messagingmw/messagingfw/biowatchers/CdmaSocketWatcher/eabi
+/mw/messagingmw/messagingfw/biowatchers/CdmaWatcherVMN/Group
+/mw/messagingmw/messagingfw/biowatchers/CdmaWatcherVMN/Inc
+/mw/messagingmw/messagingfw/biowatchers/CdmaWatcherVMN/Src
+/mw/messagingmw/messagingfw/biowatchers/CdmaWatcherVMN/bmarm
+/mw/messagingmw/messagingfw/biowatchers/CdmaWatcherVMN/bwins
+/mw/messagingmw/messagingfw/biowatchers/CdmaWatcherVMN/eabi
+/mw/messagingmw/messagingfw/biowatchers/CdmaWatcherWEMT/Group
+/mw/messagingmw/messagingfw/biowatchers/CdmaWatcherWEMT/Inc
+/mw/messagingmw/messagingfw/biowatchers/CdmaWatcherWEMT/Src
+/mw/messagingmw/messagingfw/biowatchers/CdmaWatcherWEMT/bmarm
+/mw/messagingmw/messagingfw/biowatchers/CdmaWatcherWEMT/bwins
+/mw/messagingmw/messagingfw/biowatchers/CdmaWatcherWEMT/eabi
+/mw/messagingmw/messagingfw/biowatchers/CdmaWatcherWMT/Group
+/mw/messagingmw/messagingfw/biowatchers/CdmaWatcherWMT/Inc
+/mw/messagingmw/messagingfw/biowatchers/CdmaWatcherWMT/Src
+/mw/messagingmw/messagingfw/biowatchers/CdmaWatcherWMT/bmarm
+/mw/messagingmw/messagingfw/biowatchers/CdmaWatcherWMT/bwins
+/mw/messagingmw/messagingfw/biowatchers/CdmaWatcherWMT/eabi
+/mw/messagingmw/messagingfw/biowatchers/CdmaWatcherWPT/Group
+/mw/messagingmw/messagingfw/biowatchers/CdmaWatcherWPT/Inc
+/mw/messagingmw/messagingfw/biowatchers/CdmaWatcherWPT/Src
+/mw/messagingmw/messagingfw/biowatchers/CdmaWatcherWPT/bmarm
+/mw/messagingmw/messagingfw/biowatchers/CdmaWatcherWPT/bwins
+/mw/messagingmw/messagingfw/biowatchers/CdmaWatcherWPT/eabi
+/mw/messagingmw/messagingfw/biowatchers/Documentation
+/mw/messagingmw/messagingfw/biowatchers/Group
+/mw/messagingmw/messagingfw/biowatchers/test/bwins
+/mw/messagingmw/messagingfw/biowatchers/test/group
+/mw/messagingmw/messagingfw/biowatchers/test/inc
+/mw/messagingmw/messagingfw/biowatchers/test/script
+/mw/messagingmw/messagingfw/biowatchers/test/src
+/mw/messagingmw/messagingfw/biomsgfw/CBCPINC
+/mw/messagingmw/messagingfw/biomsgfw/CBCPSRC
+/mw/messagingmw/messagingfw/biomsgfw/CBCPTSRC
+/mw/messagingmw/messagingfw/biomsgfw/ENPINC
+/mw/messagingmw/messagingfw/biomsgfw/ENPSRC
+/mw/messagingmw/messagingfw/biomsgfw/ENPTSRC
+/mw/messagingmw/messagingfw/biomsgfw/IACPINC
+/mw/messagingmw/messagingfw/biomsgfw/IACPSRC
+/mw/messagingmw/messagingfw/biomsgfw/IACPTSRC
+/mw/messagingmw/messagingfw/biomsgfw/Rom
+/mw/messagingmw/messagingfw/biomsgfw/T_BIOMSG/Data/Wapp/DEF036479_charset_tests
+/mw/messagingmw/messagingfw/biomsgfw/T_BIOMSG/Data/cbcp
+/mw/messagingmw/messagingfw/biomsgfw/T_BIOMSG/Data/enp
+/mw/messagingmw/messagingfw/biomsgfw/T_BIOMSG/Data/gfp
+/mw/messagingmw/messagingfw/biomsgfw/T_BIOMSG/Data/iacp
+/mw/messagingmw/messagingfw/biomsgfw/T_BIOMSG/Group
+/mw/messagingmw/messagingfw/biomsgfw/T_BIOMSG/INC
+/mw/messagingmw/messagingfw/biomsgfw/T_BIOMSG/SRC
+/mw/messagingmw/messagingfw/biomsgfw/T_BIOMSG/Scripts/Wapp/DEF036479_charset_tests
+/mw/messagingmw/messagingfw/biomsgfw/T_BIOMSG/Scripts/cbcp
+/mw/messagingmw/messagingfw/biomsgfw/T_BIOMSG/Scripts/enp
+/mw/messagingmw/messagingfw/biomsgfw/T_BIOMSG/Scripts/gfp
+/mw/messagingmw/messagingfw/biomsgfw/T_BIOMSG/Scripts/iacp
+/mw/messagingmw/messagingfw/biomsgfw/T_BIOMSG/doc
+/mw/messagingmw/messagingfw/biomsgfw/cbcp/bwins
+/mw/messagingmw/messagingfw/biomsgfw/cbcp/eabi
+/mw/messagingmw/messagingfw/biomsgfw/cbcp/group
+/mw/messagingmw/messagingfw/biomsgfw/cbcpbif
+/mw/messagingmw/messagingfw/biomsgfw/enp/bwins
+/mw/messagingmw/messagingfw/biomsgfw/enp/eabi
+/mw/messagingmw/messagingfw/biomsgfw/enp/group
+/mw/messagingmw/messagingfw/biomsgfw/enpbif
+/mw/messagingmw/messagingfw/biomsgfw/gfp/bwins
+/mw/messagingmw/messagingfw/biomsgfw/gfp/eabi
+/mw/messagingmw/messagingfw/biomsgfw/gfp/group
+/mw/messagingmw/messagingfw/biomsgfw/gfpinc
+/mw/messagingmw/messagingfw/biomsgfw/gfpsrc
+/mw/messagingmw/messagingfw/biomsgfw/gfptsrc
+/mw/messagingmw/messagingfw/biomsgfw/group
+/mw/messagingmw/messagingfw/biomsgfw/iacp/bwins
+/mw/messagingmw/messagingfw/biomsgfw/iacp/eabi
+/mw/messagingmw/messagingfw/biomsgfw/iacp/group
+/mw/messagingmw/messagingfw/biomsgfw/iacpbif
+/mw/messagingmw/messagingfw/biomsgfw/olpbif
+/mw/messagingmw/messagingfw/biomsgfw/rtpbif
+/mw/messagingmw/messagingfw/biomsgfw/wapp/bwins
+/mw/messagingmw/messagingfw/biomsgfw/wapp/eabi
+/mw/messagingmw/messagingfw/biomsgfw/wapp/group
+/mw/messagingmw/messagingfw/biomsgfw/wappbif
+/mw/messagingmw/messagingfw/biomsgfw/wappinc
+/mw/messagingmw/messagingfw/biomsgfw/wappsrc
+/mw/messagingmw/messagingfw/biomsgfw/wapptsrc
+/mw/messagingmw/messagingfw/biomsgfw/wappxml
+/mw/messagingmw/messagingfw/msgtests/documentation
+/app/messaging/email/pop3andsmtpmtm/autosend/bmarm
+/app/messaging/email/pop3andsmtpmtm/autosend/bwins
+/app/messaging/email/pop3andsmtpmtm/autosend/group
+/app/messaging/email/pop3andsmtpmtm/autosend/inc
+/app/messaging/email/pop3andsmtpmtm/autosend/src
+/app/messaging/email/pop3andsmtpmtm/clientmtms/bmarm
+/app/messaging/email/pop3andsmtpmtm/clientmtms/bwins
+/app/messaging/email/pop3andsmtpmtm/clientmtms/eabi
+/app/messaging/email/pop3andsmtpmtm/clientmtms/group
+/app/messaging/email/pop3andsmtpmtm/clientmtms/inc
+/app/messaging/email/pop3andsmtpmtm/clientmtms/src
+/app/messaging/email/pop3andsmtpmtm/clientmtms/test/data/RFCT_IMCM06
+/app/messaging/email/pop3andsmtpmtm/clientmtms/test/data/RFCT_IMCM07
+/app/messaging/email/pop3andsmtpmtm/clientmtms/test/data/arm
+/app/messaging/email/pop3andsmtpmtm/clientmtms/test/group
+/app/messaging/email/pop3andsmtpmtm/clientmtms/test/inc
+/app/messaging/email/pop3andsmtpmtm/clientmtms/test/scripts
+/app/messaging/email/pop3andsmtpmtm/clientmtms/test/src
+/app/messaging/email/pop3andsmtpmtm/clientmtms/test/testrom
+/app/messaging/email/pop3andsmtpmtm/clientmtms/testsuites/tests/testexecuteservers
+/app/messaging/email/pop3andsmtpmtm/group
+/app/messaging/email/imap4mtm/group
+/app/messaging/email/imap4mtm/imapmailstore/bwins
+/app/messaging/email/imap4mtm/imapmailstore/eabi
+/app/messaging/email/imap4mtm/imapmailstore/group
+/app/messaging/email/imap4mtm/imapmailstore/inc
+/app/messaging/email/imap4mtm/imapmailstore/src
+/app/messaging/email/imap4mtm/imapmailstore/test/data
+/app/messaging/email/imap4mtm/imapmailstore/test/group
+/app/messaging/email/imap4mtm/imapmailstore/test/inc
+/app/messaging/email/imap4mtm/imapmailstore/test/script
+/app/messaging/email/imap4mtm/imapmailstore/test/src
+/app/messaging/email/imap4mtm/imapofflinecontrol/bwins
+/app/messaging/email/imap4mtm/imapofflinecontrol/eabi
+/app/messaging/email/imap4mtm/imapofflinecontrol/group
+/app/messaging/email/imap4mtm/imapofflinecontrol/inc
+/app/messaging/email/imap4mtm/imapofflinecontrol/src
+/app/messaging/email/imap4mtm/imapprotocolcontroller/bwins
+/app/messaging/email/imap4mtm/imapprotocolcontroller/eabi
+/app/messaging/email/imap4mtm/imapprotocolcontroller/group
+/app/messaging/email/imap4mtm/imapprotocolcontroller/inc
+/app/messaging/email/imap4mtm/imapprotocolcontroller/src
+/app/messaging/email/imap4mtm/imapservermtm/bwins
+/app/messaging/email/imap4mtm/imapservermtm/eabi
+/app/messaging/email/imap4mtm/imapservermtm/group
+/app/messaging/email/imap4mtm/imapservermtm/inc
+/app/messaging/email/imap4mtm/imapservermtm/src
+/app/messaging/email/imap4mtm/imapservermtm/test/group
+/app/messaging/email/imap4mtm/imapservermtm/test/inc
+/app/messaging/email/imap4mtm/imapservermtm/test/script
+/app/messaging/email/imap4mtm/imapservermtm/test/src
+/app/messaging/email/imap4mtm/imapsession/bwins
+/app/messaging/email/imap4mtm/imapsession/eabi
+/app/messaging/email/imap4mtm/imapsession/group
+/app/messaging/email/imap4mtm/imapsession/inc
+/app/messaging/email/imap4mtm/imapsession/src
+/app/messaging/email/imap4mtm/imapsession/test/group
+/app/messaging/email/imap4mtm/imapsession/test/inc
+/app/messaging/email/imap4mtm/imapsession/test/script
+/app/messaging/email/imap4mtm/imapsession/test/src
+/app/messaging/email/imap4mtm/imapsettings/bwins
+/app/messaging/email/imap4mtm/imapsettings/eabi
+/app/messaging/email/imap4mtm/imapsettings/group
+/app/messaging/email/imap4mtm/imapsettings/inc
+/app/messaging/email/imap4mtm/imapsettings/src
+/app/messaging/email/imap4mtm/imapsyncmanager/bwins
+/app/messaging/email/imap4mtm/imapsyncmanager/eabi
+/app/messaging/email/imap4mtm/imapsyncmanager/group
+/app/messaging/email/imap4mtm/imapsyncmanager/inc
+/app/messaging/email/imap4mtm/imapsyncmanager/src
+/app/messaging/email/imap4mtm/imapsyncmanager/test/data
+/app/messaging/email/imap4mtm/imapsyncmanager/test/group
+/app/messaging/email/imap4mtm/imapsyncmanager/test/inc
+/app/messaging/email/imap4mtm/imapsyncmanager/test/script
+/app/messaging/email/imap4mtm/imapsyncmanager/test/src
+/app/messaging/email/imap4mtm/imaptransporthandler/bwins
+/app/messaging/email/imap4mtm/imaptransporthandler/eabi
+/app/messaging/email/imap4mtm/imaptransporthandler/group
+/app/messaging/email/imap4mtm/imaptransporthandler/inc
+/app/messaging/email/imap4mtm/imaptransporthandler/src
+/app/messaging/email/imap4mtm/imaputils/bwins
+/app/messaging/email/imap4mtm/imaputils/eabi
+/app/messaging/email/imap4mtm/imaputils/group
+/app/messaging/email/imap4mtm/imaputils/inc
+/app/messaging/email/imap4mtm/imaputils/src
+/app/messaging/email/imap4mtmservermtm/bmarm
+/app/messaging/email/imap4mtmservermtm/bwins
+/app/messaging/email/imap4mtmservermtm/eabi
+/app/messaging/email/imap4mtmservermtm/group
+/app/messaging/email/imap4mtmservermtm/inc
+/app/messaging/email/imap4mtmservermtm/src
+/app/messaging/email/imap4mtmservermtm/test/data
+/app/messaging/email/imap4mtmservermtm/test/group
+/app/messaging/email/imap4mtmservermtm/test/inc
+/app/messaging/email/imap4mtmservermtm/test/scripts
+/app/messaging/email/imap4mtmservermtm/test/src
+/app/messaging/email/imap4mtmservermtm/test/testrom
+/app/messaging/email/pop3andsmtpmtm/popservermtm/bmarm
+/app/messaging/email/pop3andsmtpmtm/popservermtm/bwins
+/app/messaging/email/pop3andsmtpmtm/popservermtm/eabi
+/app/messaging/email/pop3andsmtpmtm/popservermtm/group
+/app/messaging/email/pop3andsmtpmtm/popservermtm/inc
+/app/messaging/email/pop3andsmtpmtm/popservermtm/src
+/app/messaging/email/pop3andsmtpmtm/popservermtm/test/data/Synchronise
+/app/messaging/email/pop3andsmtpmtm/popservermtm/test/group
+/app/messaging/email/pop3andsmtpmtm/popservermtm/test/inc
+/app/messaging/email/pop3andsmtpmtm/popservermtm/test/script
+/app/messaging/email/pop3andsmtpmtm/popservermtm/test/src
+/app/messaging/email/pop3andsmtpmtm/popservermtm/test/testrom
+/app/messaging/email/pop3andsmtpmtm/servermtmutils/bmarm
+/app/messaging/email/pop3andsmtpmtm/servermtmutils/bwins
+/app/messaging/email/pop3andsmtpmtm/servermtmutils/eabi
+/app/messaging/email/pop3andsmtpmtm/servermtmutils/group
+/app/messaging/email/pop3andsmtpmtm/servermtmutils/inc
+/app/messaging/email/pop3andsmtpmtm/servermtmutils/mobilitypolicydefault/group
+/app/messaging/email/pop3andsmtpmtm/servermtmutils/mobilitypolicydefault/inc
+/app/messaging/email/pop3andsmtpmtm/servermtmutils/mobilitypolicydefault/src
+/app/messaging/email/pop3andsmtpmtm/servermtmutils/mobilitypolicynetteststub/group
+/app/messaging/email/pop3andsmtpmtm/servermtmutils/mobilitypolicynetteststub/inc
+/app/messaging/email/pop3andsmtpmtm/servermtmutils/mobilitypolicynetteststub/src
+/app/messaging/email/pop3andsmtpmtm/servermtmutils/mobilitypolicyprovider/EABI
+/app/messaging/email/pop3andsmtpmtm/servermtmutils/mobilitypolicyprovider/bwins
+/app/messaging/email/pop3andsmtpmtm/servermtmutils/mobilitypolicyprovider/group
+/app/messaging/email/pop3andsmtpmtm/servermtmutils/mobilitypolicyprovider/inc
+/app/messaging/email/pop3andsmtpmtm/servermtmutils/mobilitypolicyprovider/src
+/app/messaging/email/pop3andsmtpmtm/servermtmutils/mobilitytestframework/EABI
+/app/messaging/email/pop3andsmtpmtm/servermtmutils/mobilitytestframework/bwins
+/app/messaging/email/pop3andsmtpmtm/servermtmutils/mobilitytestframework/group
+/app/messaging/email/pop3andsmtpmtm/servermtmutils/mobilitytestframework/inc
+/app/messaging/email/pop3andsmtpmtm/servermtmutils/mobilitytestframework/src
+/app/messaging/email/pop3andsmtpmtm/servermtmutils/src
+/app/messaging/email/pop3andsmtpmtm/servermtmutils/test/data/imcv/Transform_Receive
+/app/messaging/email/pop3andsmtpmtm/servermtmutils/test/data/imcv/Transform_Send
+/app/messaging/email/pop3andsmtpmtm/servermtmutils/test/data/imcv/parse/A.Simple
+/app/messaging/email/pop3andsmtpmtm/servermtmutils/test/data/imcv/parse/B.Mime
+/app/messaging/email/pop3andsmtpmtm/servermtmutils/test/data/imcv/parse/C.Multipart
+/app/messaging/email/pop3andsmtpmtm/servermtmutils/test/data/imcv/parse/D.Encoding
+/app/messaging/email/pop3andsmtpmtm/servermtmutils/test/data/imcv/parse/E.Charsets
+/app/messaging/email/pop3andsmtpmtm/servermtmutils/test/data/imcv/parse/F.Header
+/app/messaging/email/pop3andsmtpmtm/servermtmutils/test/data/imcv/parse/G.Mhtml
+/app/messaging/email/pop3andsmtpmtm/servermtmutils/test/data/imcv/parse/H.Embedded
+/app/messaging/email/pop3andsmtpmtm/servermtmutils/test/data/rfc822/Transform_Receive
+/app/messaging/email/pop3andsmtpmtm/servermtmutils/test/data/rfc822/Transform_Send
+/app/messaging/email/pop3andsmtpmtm/servermtmutils/test/data/rfc822/parse/A.Simple
+/app/messaging/email/pop3andsmtpmtm/servermtmutils/test/data/rfc822/parse/B.Mime
+/app/messaging/email/pop3andsmtpmtm/servermtmutils/test/data/rfc822/parse/C.Multipart
+/app/messaging/email/pop3andsmtpmtm/servermtmutils/test/data/rfc822/parse/D.Encoding
+/app/messaging/email/pop3andsmtpmtm/servermtmutils/test/data/rfc822/parse/E.Charsets
+/app/messaging/email/pop3andsmtpmtm/servermtmutils/test/data/rfc822/parse/F.Header
+/app/messaging/email/pop3andsmtpmtm/servermtmutils/test/data/rfc822/parse/G.Mhtml
+/app/messaging/email/pop3andsmtpmtm/servermtmutils/test/data/rfc822/parse/H.Embedded
+/app/messaging/email/pop3andsmtpmtm/servermtmutils/test/data/rfc822/parse/UTC
+/app/messaging/email/pop3andsmtpmtm/servermtmutils/test/group
+/app/messaging/email/pop3andsmtpmtm/servermtmutils/test/inc
+/app/messaging/email/pop3andsmtpmtm/servermtmutils/test/scripts
+/app/messaging/email/pop3andsmtpmtm/servermtmutils/test/src
+/app/messaging/email/pop3andsmtpmtm/servermtmutils/test/testrom
+/app/messaging/email/pop3andsmtpmtm/smtpservermtm/bmarm
+/app/messaging/email/pop3andsmtpmtm/smtpservermtm/bwins
+/app/messaging/email/pop3andsmtpmtm/smtpservermtm/eabi
+/app/messaging/email/pop3andsmtpmtm/smtpservermtm/group
+/app/messaging/email/pop3andsmtpmtm/smtpservermtm/inc
+/app/messaging/email/pop3andsmtpmtm/smtpservermtm/src
+/app/messaging/email/pop3andsmtpmtm/smtpservermtm/test/data
+/app/messaging/email/pop3andsmtpmtm/smtpservermtm/test/group
+/app/messaging/email/pop3andsmtpmtm/smtpservermtm/test/src
+/app/messaging/email/pop3andsmtpmtm/smtpservermtm/test/testrom
+/app/messaging/email/pop3andsmtpmtm/testsuites
+/mw/messagingmw/messagingfw/msgsrvnstore/group
+/mw/messagingmw/messagingfw/msgsrvnstore/mtmbase/bmarm
+/mw/messagingmw/messagingfw/msgsrvnstore/mtmbase/bwins
+/mw/messagingmw/messagingfw/msgsrvnstore/mtmbase/eabi
+/mw/messagingmw/messagingfw/msgsrvnstore/mtmbase/group
+/mw/messagingmw/messagingfw/msgsrvnstore/mtmbase/inc
+/mw/messagingmw/messagingfw/msgsrvnstore/mtmbase/src
+/mw/messagingmw/messagingfw/msgsrvnstore/mtmbase/test/group
+/mw/messagingmw/messagingfw/msgsrvnstore/mtmbase/test/src
+/mw/messagingmw/messagingfw/msgsrvnstore/server/T_performance/group
+/mw/messagingmw/messagingfw/msgsrvnstore/server/T_performance/inc
+/mw/messagingmw/messagingfw/msgsrvnstore/server/T_performance/script
+/mw/messagingmw/messagingfw/msgsrvnstore/server/T_performance/src
+/mw/messagingmw/messagingfw/msgsrvnstore/server/bmarm
+/mw/messagingmw/messagingfw/msgsrvnstore/server/bwins
+/mw/messagingmw/messagingfw/msgsrvnstore/server/eabi
+/mw/messagingmw/messagingfw/msgsrvnstore/server/group
+/mw/messagingmw/messagingfw/msgsrvnstore/server/inc
+/mw/messagingmw/messagingfw/msgsrvnstore/server/src
+/mw/messagingmw/messagingfw/msgsrvnstore/server/test/Unittef/group
+/mw/messagingmw/messagingfw/msgsrvnstore/server/test/Unittef/inc
+/mw/messagingmw/messagingfw/msgsrvnstore/server/test/Unittef/script
+/mw/messagingmw/messagingfw/msgsrvnstore/server/test/Unittef/src
+/mw/messagingmw/messagingfw/msgsrvnstore/server/test/base/bmarm
+/mw/messagingmw/messagingfw/msgsrvnstore/server/test/base/bwins
+/mw/messagingmw/messagingfw/msgsrvnstore/server/test/base/eabi
+/mw/messagingmw/messagingfw/msgsrvnstore/server/test/base/group
+/mw/messagingmw/messagingfw/msgsrvnstore/server/test/base/inc
+/mw/messagingmw/messagingfw/msgsrvnstore/server/test/base/src
+/mw/messagingmw/messagingfw/msgsrvnstore/server/test/benchmark/group
+/mw/messagingmw/messagingfw/msgsrvnstore/server/test/benchmark/src
+/mw/messagingmw/messagingfw/msgsrvnstore/server/test/group
+/mw/messagingmw/messagingfw/msgsrvnstore/server/test/testrom
+/mw/messagingmw/messagingfw/msgsrvnstore/server/test/unit/group
+/mw/messagingmw/messagingfw/msgsrvnstore/server/test/unit/inc
+/mw/messagingmw/messagingfw/msgsrvnstore/server/test/unit/scripts
+/mw/messagingmw/messagingfw/msgsrvnstore/server/test/unit/src
+/mw/messagingmw/messagingfw/msgsrvnstore/serverexe/group
+/mw/messagingmw/messagingfw/msgsrvnstore/serverexe/src
+/app/messaging/messagingappbase/smilparser/Documents
+/app/messaging/messagingappbase/smilparser/GROUP
+/app/messaging/messagingappbase/smilparser/Rom
+/app/messaging/messagingappbase/smilparser/SMILdtd/GROUP
+/app/messaging/messagingappbase/smilparser/SMILdtd/INC
+/app/messaging/messagingappbase/smilparser/SMILdtd/ROM
+/app/messaging/messagingappbase/smilparser/SMILdtd/SMIL_Test_Files/MMS_Input/Invalid
+/app/messaging/messagingappbase/smilparser/SMILdtd/SMIL_Test_Files/MMS_Input/Valid
+/app/messaging/messagingappbase/smilparser/SMILdtd/SMIL_Test_Files/MMS_Output/Invalid
+/app/messaging/messagingappbase/smilparser/SMILdtd/SMIL_Test_Files/MMS_Output/Valid
+/app/messaging/messagingappbase/smilparser/SMILdtd/SMIL_Test_Files/SMIL_Input/Invalid
+/app/messaging/messagingappbase/smilparser/SMILdtd/SMIL_Test_Files/SMIL_Input/Valid
+/app/messaging/messagingappbase/smilparser/SMILdtd/SMIL_Test_Files/SMIL_Output/Invalid
+/app/messaging/messagingappbase/smilparser/SMILdtd/SMIL_Test_Files/SMIL_Output/Valid
+/app/messaging/messagingappbase/smilparser/SMILdtd/SRC
+/app/messaging/messagingappbase/smilparser/SMILdtd/STRINGS
+/app/messaging/messagingappbase/smilparser/SMILdtd/bmarm
+/app/messaging/messagingappbase/smilparser/SMILdtd/bwins
+/app/messaging/messagingappbase/smilparser/SMILdtd/eabi
+/app/messaging/messagingappbase/smilparser/SMILdtd/tinc
+/app/messaging/messagingappbase/smilparser/SMILdtd/tsrc
+/app/messaging/messagingappbase/smilparser/XMLDom/GROUP
+/app/messaging/messagingappbase/smilparser/XMLDom/INC
+/app/messaging/messagingappbase/smilparser/XMLDom/SRC
+/app/messaging/messagingappbase/smilparser/XMLDom/bmarm
+/app/messaging/messagingappbase/smilparser/XMLDom/bwins
+/app/messaging/messagingappbase/smilparser/XMLDom/eabi
+/app/messaging/messagingappbase/smilparser/XMLParser/GROUP
+/app/messaging/messagingappbase/smilparser/XMLParser/INC
+/app/messaging/messagingappbase/smilparser/XMLParser/SRC
+/app/messaging/messagingappbase/smilparser/XMLParser/STRINGS
+/app/messaging/messagingappbase/smilparser/XMLParser/bmarm
+/app/messaging/messagingappbase/smilparser/XMLParser/bwins
+/app/messaging/messagingappbase/smilparser/XMLParser/eabi
+/app/messaging/messagingappbase/smilparser/XMLParser/test
+/mw/messagingmw/messagingfw/msgtests/group
+/mw/messagingmw/messagingfw/msgconf/biomsg/vcdpbif
+/mw/messagingmw/messagingfw/msgconf/biomsg/vclpbif
+/mw/messagingmw/messagingfw/msgconf/clientmtms
+/mw/messagingmw/messagingfw/msgconf/group
+/app/messaging/mmsengine/mmssettings/bwins
+/app/messaging/mmsengine/mmssettings/eabi
+/app/messaging/mmsengine/mmssettings/etc
+/app/messaging/mmsengine/mmssettings/group
+/app/messaging/mmsengine/mmssettings/inc
+/app/messaging/mmsengine/mmssettings/src
+/app/messaging/mmsengine/mmssettings/test/group
+/app/messaging/mmsengine/mmssettings/test/inc
+/app/messaging/mmsengine/mmssettings/test/src
+/app/messaging/messagingappbase/obexmtms/Group
+/app/messaging/messagingappbase/obexmtms/Rom
+/app/messaging/messagingappbase/obexmtms/TObexMTM/GROUP
+/app/messaging/messagingappbase/obexmtms/TObexMTM/INC
+/app/messaging/messagingappbase/obexmtms/TObexMTM/SRC
+/app/messaging/messagingappbase/obexmtms/TObexMTM/mediaobjects/CR_PHAR_5SDJG9
+/app/messaging/messagingappbase/obexmtms/TObexMTM/obexstub/BluetoothSdpStub/inc
+/app/messaging/messagingappbase/obexmtms/TObexMTM/obexstub/BluetoothSdpStub/sdp/agent
+/app/messaging/messagingappbase/obexmtms/TObexMTM/obexstub/BluetoothSdpStub/sdp/bmarm
+/app/messaging/messagingappbase/obexmtms/TObexMTM/obexstub/BluetoothSdpStub/sdp/bwins
+/app/messaging/messagingappbase/obexmtms/TObexMTM/obexstub/BluetoothSdpStub/sdp/inc
+/app/messaging/messagingappbase/obexmtms/TObexMTM/obexstub/IrobexStub/IROBEX
+/app/messaging/messagingappbase/obexmtms/TObexMTM/obexstub/IrobexStub/group
+/app/messaging/messagingappbase/obexmtms/TObexMTM/scripts/CR_PHAR_5SDJG9/Multiple_Attachment
+/app/messaging/messagingappbase/obexmtms/TObexMTM/scripts/CR_PHAR_5SDJG9/Single_Attachment
+/app/messaging/messagingappbase/obexmtms/TObexMTM/scripts/bt
+/app/messaging/messagingappbase/obexmtms/TObexMTM/scripts/common
+/app/messaging/messagingappbase/obexmtms/TObexMTM/scripts/ir
+/app/messaging/messagingappbase/obexmtms/TObexMTM/testutils/headerutils/Inc
+/app/messaging/messagingappbase/obexmtms/TObexMTM/testutils/headerutils/Src
+/app/messaging/messagingappbase/obexmtms/TObexMTM/testutils/msgth/bmarm
+/app/messaging/messagingappbase/obexmtms/TObexMTM/testutils/msgth/bwins
+/app/messaging/messagingappbase/obexmtms/TObexMTM/testutils/msgth/eabi
+/app/messaging/messagingappbase/obexmtms/TObexMTM/testutils/msgth/group
+/app/messaging/messagingappbase/obexmtms/TObexMTM/testutils/msgth/inc
+/app/messaging/messagingappbase/obexmtms/TObexMTM/testutils/msgth/src
+/app/messaging/messagingappbase/obexmtms/btmtm/btclient/Include
+/app/messaging/messagingappbase/obexmtms/btmtm/btclient/bmarm
+/app/messaging/messagingappbase/obexmtms/btmtm/btclient/bwins
+/app/messaging/messagingappbase/obexmtms/btmtm/btclient/eabi
+/app/messaging/messagingappbase/obexmtms/btmtm/btclient/group
+/app/messaging/messagingappbase/obexmtms/btmtm/btclient/source
+/app/messaging/messagingappbase/obexmtms/btmtm/btserver/bmarm
+/app/messaging/messagingappbase/obexmtms/btmtm/btserver/bwins
+/app/messaging/messagingappbase/obexmtms/btmtm/btserver/eabi
+/app/messaging/messagingappbase/obexmtms/btmtm/btserver/group
+/app/messaging/messagingappbase/obexmtms/btmtm/btserver/include
+/app/messaging/messagingappbase/obexmtms/btmtm/btserver/source
+/app/messaging/messagingappbase/obexmtms/irmtm/irclient/bmarm
+/app/messaging/messagingappbase/obexmtms/irmtm/irclient/bwins
+/app/messaging/messagingappbase/obexmtms/irmtm/irclient/eabi
+/app/messaging/messagingappbase/obexmtms/irmtm/irclient/group
+/app/messaging/messagingappbase/obexmtms/irmtm/irclient/include
+/app/messaging/messagingappbase/obexmtms/irmtm/irclient/source
+/app/messaging/messagingappbase/obexmtms/irmtm/irserver/bmarm
+/app/messaging/messagingappbase/obexmtms/irmtm/irserver/bwins
+/app/messaging/messagingappbase/obexmtms/irmtm/irserver/eabi
+/app/messaging/messagingappbase/obexmtms/irmtm/irserver/group
+/app/messaging/messagingappbase/obexmtms/irmtm/irserver/include
+/app/messaging/messagingappbase/obexmtms/irmtm/irserver/source
+/app/messaging/messagingappbase/obexmtms/obexmtm/obexclient/bmarm
+/app/messaging/messagingappbase/obexmtms/obexmtm/obexclient/bwins
+/app/messaging/messagingappbase/obexmtms/obexmtm/obexclient/eabi
+/app/messaging/messagingappbase/obexmtms/obexmtm/obexclient/group
+/app/messaging/messagingappbase/obexmtms/obexmtm/obexclient/include
+/app/messaging/messagingappbase/obexmtms/obexmtm/obexclient/source
+/app/messaging/messagingappbase/obexmtms/obexmtm/obexserver/bmarm
+/app/messaging/messagingappbase/obexmtms/obexmtm/obexserver/bwins
+/app/messaging/messagingappbase/obexmtms/obexmtm/obexserver/eabi
+/app/messaging/messagingappbase/obexmtms/obexmtm/obexserver/group
+/app/messaging/messagingappbase/obexmtms/obexmtm/obexserver/include
+/app/messaging/messagingappbase/obexmtms/obexmtm/obexserver/source
+/app/messaging/messagingappbase/obexmtms/obexmtm/obexutil/bmarm
+/app/messaging/messagingappbase/obexmtms/obexmtm/obexutil/bwins
+/app/messaging/messagingappbase/obexmtms/obexmtm/obexutil/eabi
+/app/messaging/messagingappbase/obexmtms/obexmtm/obexutil/group
+/app/messaging/messagingappbase/obexmtms/obexmtm/obexutil/include
+/app/messaging/messagingappbase/obexmtms/obexmtm/obexutil/source
+/mw/messagingmw/messagingfw/scheduledsendmtm/group
+/mw/messagingmw/messagingfw/scheduledsendmtm/schedulesendexe/bwins
+/mw/messagingmw/messagingfw/scheduledsendmtm/schedulesendexe/group
+/mw/messagingmw/messagingfw/scheduledsendmtm/schedulesendexe/inc
+/mw/messagingmw/messagingfw/scheduledsendmtm/schedulesendexe/src
+/mw/messagingmw/messagingfw/scheduledsendmtm/schedulesendmtm/bmarm
+/mw/messagingmw/messagingfw/scheduledsendmtm/schedulesendmtm/bwins
+/mw/messagingmw/messagingfw/scheduledsendmtm/schedulesendmtm/eabi
+/mw/messagingmw/messagingfw/scheduledsendmtm/schedulesendmtm/group
+/mw/messagingmw/messagingfw/scheduledsendmtm/schedulesendmtm/inc
+/mw/messagingmw/messagingfw/scheduledsendmtm/schedulesendmtm/src
+/mw/messagingmw/messagingfw/scheduledsendmtm/test/base/bmarm
+/mw/messagingmw/messagingfw/scheduledsendmtm/test/base/bwins
+/mw/messagingmw/messagingfw/scheduledsendmtm/test/base/eabi
+/mw/messagingmw/messagingfw/scheduledsendmtm/test/base/group
+/mw/messagingmw/messagingfw/scheduledsendmtm/test/base/inc
+/mw/messagingmw/messagingfw/scheduledsendmtm/test/base/src
+/mw/messagingmw/messagingfw/scheduledsendmtm/test/group
+/mw/messagingmw/messagingfw/scheduledsendmtm/test/testrom
+/mw/messagingmw/messagingfw/scheduledsendmtm/test/unit/bmarm
+/mw/messagingmw/messagingfw/scheduledsendmtm/test/unit/bwins
+/mw/messagingmw/messagingfw/scheduledsendmtm/test/unit/eabi
+/mw/messagingmw/messagingfw/scheduledsendmtm/test/unit/group
+/mw/messagingmw/messagingfw/scheduledsendmtm/test/unit/inc
+/mw/messagingmw/messagingfw/scheduledsendmtm/test/unit/script
+/mw/messagingmw/messagingfw/scheduledsendmtm/test/unit/src
+/mw/messagingmw/messagingfw/sendas/client/bwins
+/mw/messagingmw/messagingfw/sendas/client/eabi
+/mw/messagingmw/messagingfw/sendas/client/group
+/mw/messagingmw/messagingfw/sendas/client/inc
+/mw/messagingmw/messagingfw/sendas/client/src
+/mw/messagingmw/messagingfw/sendas/editutils/group
+/mw/messagingmw/messagingfw/sendas/editutils/inc
+/mw/messagingmw/messagingfw/sendas/editutils/src
+/mw/messagingmw/messagingfw/sendas/group
+/mw/messagingmw/messagingfw/sendas/server/group
+/mw/messagingmw/messagingfw/sendas/server/inc
+/mw/messagingmw/messagingfw/sendas/server/src
+/mw/messagingmw/messagingfw/sendas/test/group
+/mw/messagingmw/messagingfw/sendas/test/sendastesteditutils/group
+/mw/messagingmw/messagingfw/sendas/test/sendastesteditutils/inc
+/mw/messagingmw/messagingfw/sendas/test/sendastesteditutils/src
+/mw/messagingmw/messagingfw/sendas/test/sendastestmtm/bwins
+/mw/messagingmw/messagingfw/sendas/test/sendastestmtm/eabi
+/mw/messagingmw/messagingfw/sendas/test/sendastestmtm/group
+/mw/messagingmw/messagingfw/sendas/test/sendastestmtm/inc
+/mw/messagingmw/messagingfw/sendas/test/sendastestmtm/src
+/mw/messagingmw/messagingfw/sendas/test/sendastextnotifier/group
+/mw/messagingmw/messagingfw/sendas/test/sendastextnotifier/inc
+/mw/messagingmw/messagingfw/sendas/test/sendastextnotifier/src
+/mw/messagingmw/messagingfw/sendas/test/unit/bwins
+/mw/messagingmw/messagingfw/sendas/test/unit/eabi
+/mw/messagingmw/messagingfw/sendas/test/unit/group
+/mw/messagingmw/messagingfw/sendas/test/unit/inc
+/mw/messagingmw/messagingfw/sendas/test/unit/src
+/app/messaging/mobilemessaging/smsmtm/clientmtm/bmarm
+/app/messaging/mobilemessaging/smsmtm/clientmtm/bwins
+/app/messaging/mobilemessaging/smsmtm/clientmtm/eabi
+/app/messaging/mobilemessaging/smsmtm/clientmtm/group
+/app/messaging/mobilemessaging/smsmtm/clientmtm/inc
+/app/messaging/mobilemessaging/smsmtm/clientmtm/src
+/app/messaging/mobilemessaging/smsmtm/clientmtm/test/bwins
+/app/messaging/mobilemessaging/smsmtm/clientmtm/test/group
+/app/messaging/mobilemessaging/smsmtm/clientmtm/test/inc
+/app/messaging/mobilemessaging/smsmtm/clientmtm/test/scripts
+/app/messaging/mobilemessaging/smsmtm/clientmtm/test/src
+/app/messaging/mobilemessaging/smsmtm/multimode/Group
+/app/messaging/mobilemessaging/smsmtm/multimode/clientmtm/Export
+/app/messaging/mobilemessaging/smsmtm/multimode/clientmtm/Inc
+/app/messaging/mobilemessaging/smsmtm/multimode/clientmtm/Src
+/app/messaging/mobilemessaging/smsmtm/multimode/clientmtm/bmarm
+/app/messaging/mobilemessaging/smsmtm/multimode/clientmtm/bwins
+/app/messaging/mobilemessaging/smsmtm/multimode/clientmtm/eabi
+/app/messaging/mobilemessaging/smsmtm/multimode/clientmtm/group
+/app/messaging/mobilemessaging/smsmtm/multimode/servermtm/EABI
+/app/messaging/mobilemessaging/smsmtm/multimode/servermtm/Inc
+/app/messaging/mobilemessaging/smsmtm/multimode/servermtm/Src
+/app/messaging/mobilemessaging/smsmtm/multimode/servermtm/bmarm
+/app/messaging/mobilemessaging/smsmtm/multimode/servermtm/bwins
+/app/messaging/mobilemessaging/smsmtm/multimode/servermtm/group
+/app/messaging/mobilemessaging/smsmtm/multimode/test/bwins
+/app/messaging/mobilemessaging/smsmtm/multimode/test/data
+/app/messaging/mobilemessaging/smsmtm/multimode/test/group
+/app/messaging/mobilemessaging/smsmtm/multimode/test/inc
+/app/messaging/mobilemessaging/smsmtm/multimode/test/integration/BCTests/group
+/app/messaging/mobilemessaging/smsmtm/multimode/test/integration/BCTests/thumb/udeb
+/app/messaging/mobilemessaging/smsmtm/multimode/test/integration/BCTests/thumb/urel
+/app/messaging/mobilemessaging/smsmtm/multimode/test/integration/BCTests/winscw/udeb
+/app/messaging/mobilemessaging/smsmtm/multimode/test/integration/BCTests/winscw/urel
+/app/messaging/mobilemessaging/smsmtm/multimode/test/integration/TE_LoadGSMMsg/bwins
+/app/messaging/mobilemessaging/smsmtm/multimode/test/integration/TE_LoadGSMMsg/config
+/app/messaging/mobilemessaging/smsmtm/multimode/test/integration/TE_LoadGSMMsg/group
+/app/messaging/mobilemessaging/smsmtm/multimode/test/integration/TE_LoadGSMMsg/inc
+/app/messaging/mobilemessaging/smsmtm/multimode/test/integration/TE_LoadGSMMsg/script
+/app/messaging/mobilemessaging/smsmtm/multimode/test/integration/TE_LoadGSMMsg/src
+/app/messaging/mobilemessaging/smsmtm/multimode/test/integration/TE_MessagingTestClient/bwins
+/app/messaging/mobilemessaging/smsmtm/multimode/test/integration/TE_MessagingTestClient/config
+/app/messaging/mobilemessaging/smsmtm/multimode/test/integration/TE_MessagingTestClient/group
+/app/messaging/mobilemessaging/smsmtm/multimode/test/integration/TE_MessagingTestClient/inc
+/app/messaging/mobilemessaging/smsmtm/multimode/test/integration/TE_MessagingTestClient/script
+/app/messaging/mobilemessaging/smsmtm/multimode/test/integration/TE_MessagingTestClient/src
+/app/messaging/mobilemessaging/smsmtm/multimode/test/script
+/app/messaging/mobilemessaging/smsmtm/multimode/test/src
+/app/messaging/mobilemessaging/smsmtm/servermtm/bmarm
+/app/messaging/mobilemessaging/smsmtm/servermtm/bwins
+/app/messaging/mobilemessaging/smsmtm/servermtm/eabi
+/app/messaging/mobilemessaging/smsmtm/servermtm/group
+/app/messaging/mobilemessaging/smsmtm/servermtm/inc
+/app/messaging/mobilemessaging/smsmtm/servermtm/src
+/app/messaging/mobilemessaging/smsmtm/smsgetdetdescdefault/group
+/app/messaging/mobilemessaging/smsmtm/smsgetdetdescdefault/inc
+/app/messaging/mobilemessaging/smsmtm/smsgetdetdescdefault/src
+/app/messaging/mobilemessaging/smsmtm/smsswitch/Documentation
+/app/messaging/mobilemessaging/smsmtm/smsswitch/common
+/app/messaging/mobilemessaging/smsmtm/smsswitch/group
+/app/messaging/mobilemessaging/smsmtm/smsswitch/smcm/Inc
+/app/messaging/mobilemessaging/smsmtm/smsswitch/smcm/Src
+/app/messaging/mobilemessaging/smsmtm/smsswitch/smcm/bwins
+/app/messaging/mobilemessaging/smsmtm/smsswitch/smcm/eabi
+/app/messaging/mobilemessaging/smsmtm/smsswitch/smcm/group
+/app/messaging/mobilemessaging/smsmtm/smsswitch/smss/Inc
+/app/messaging/mobilemessaging/smsmtm/smsswitch/smss/Src
+/app/messaging/mobilemessaging/smsmtm/smsswitch/smss/bwins
+/app/messaging/mobilemessaging/smsmtm/smsswitch/smss/group
+/app/messaging/mobilemessaging/smsmtm/test/class0smsnotifier/group
+/app/messaging/mobilemessaging/smsmtm/test/class0smsnotifier/inc
+/app/messaging/mobilemessaging/smsmtm/test/class0smsnotifier/src
+/app/messaging/mobilemessaging/smsmtm/test/data/ConfigFiles
+/app/messaging/mobilemessaging/smsmtm/test/data/bif
+/app/messaging/mobilemessaging/smsmtm/test/data/ems
+/app/messaging/mobilemessaging/smsmtm/test/data/script
+/app/messaging/mobilemessaging/smsmtm/test/group
+/app/messaging/mobilemessaging/smsmtm/test/inc
+/app/messaging/mobilemessaging/smsmtm/test/src
+/app/messaging/mobilemessaging/smsmtm/test/testrom
+/mw/messagingmw/messagingfw/msgtest/group
+/mw/messagingmw/messagingfw/msgtest/integration/biomsg/group
+/mw/messagingmw/messagingfw/msgtest/integration/biomsg/inc
+/mw/messagingmw/messagingfw/msgtest/integration/biomsg/src
+/mw/messagingmw/messagingfw/msgtest/integration/email/group/reference
+/mw/messagingmw/messagingfw/msgtest/integration/email/group/script
+/mw/messagingmw/messagingfw/msgtest/integration/email/inc
+/mw/messagingmw/messagingfw/msgtest/integration/email/pefromance/group
+/mw/messagingmw/messagingfw/msgtest/integration/email/pefromance/inc
+/mw/messagingmw/messagingfw/msgtest/integration/email/pefromance/scripts
+/mw/messagingmw/messagingfw/msgtest/integration/email/pefromance/src
+/mw/messagingmw/messagingfw/msgtest/integration/email/pefromance/testdata
+/mw/messagingmw/messagingfw/msgtest/integration/email/pefromance/testdriver/Performance/testExecuteServers
+/mw/messagingmw/messagingfw/msgtest/integration/email/src
+/mw/messagingmw/messagingfw/msgtest/integration/group
+/mw/messagingmw/messagingfw/msgtest/integration/server/group
+/mw/messagingmw/messagingfw/msgtest/integration/server/src
+/mw/messagingmw/messagingfw/msgtest/integration/sms/3GppR6Support/Configurations
+/mw/messagingmw/messagingfw/msgtest/integration/sms/3GppR6Support/Group
+/mw/messagingmw/messagingfw/msgtest/integration/sms/3GppR6Support/Scripts
+/mw/messagingmw/messagingfw/msgtest/integration/sms/3GppR6Support/Steps/inc
+/mw/messagingmw/messagingfw/msgtest/integration/sms/3GppR6Support/Steps/src
+/mw/messagingmw/messagingfw/msgtest/integration/sms/3GppR6Support/Utils/inc
+/mw/messagingmw/messagingfw/msgtest/integration/sms/3GppR6Support/Utils/src
+/mw/messagingmw/messagingfw/msgtest/integration/sms/3GppR6Support/inc
+/mw/messagingmw/messagingfw/msgtest/integration/sms/3GppR6Support/src
+/mw/messagingmw/messagingfw/msgtest/integration/sms/group
+/mw/messagingmw/messagingfw/msgtest/integration/sms/inc
+/mw/messagingmw/messagingfw/msgtest/integration/sms/src
+/mw/messagingmw/messagingfw/msgtest/targetautomation/Delay
+/mw/messagingmw/messagingfw/msgtest/targetautomation/Doc
+/mw/messagingmw/messagingfw/msgtest/targetautomation/Rom
+/mw/messagingmw/messagingfw/msgtest/targetautomation/Script
+/mw/messagingmw/messagingfw/msgtest/targetautomation/SerialLog
+/mw/messagingmw/messagingfw/msgtest/targetautomation/StayAwake
+/mw/messagingmw/messagingfw/msgtest/targetautomation/TechviewStart
+/mw/messagingmw/messagingfw/msgtest/targetautomation/Trgtest
+/mw/messagingmw/messagingfw/msgtest/testrom
+/mw/messagingmw/messagingfw/msgtest/testsuites/group
+/mw/messagingmw/messagingfw/msgtest/testutils/MsgTestUtilServer/bwins
+/mw/messagingmw/messagingfw/msgtest/testutils/MsgTestUtilServer/eabi
+/mw/messagingmw/messagingfw/msgtest/testutils/MsgTestUtilServer/group
+/mw/messagingmw/messagingfw/msgtest/testutils/MsgTestUtilServer/inc
+/mw/messagingmw/messagingfw/msgtest/testutils/MsgTestUtilServer/src
+/mw/messagingmw/messagingfw/msgtest/testutils/base/bmarm
+/mw/messagingmw/messagingfw/msgtest/testutils/base/bwins
+/mw/messagingmw/messagingfw/msgtest/testutils/base/eabi
+/mw/messagingmw/messagingfw/msgtest/testutils/base/group
+/mw/messagingmw/messagingfw/msgtest/testutils/base/inc
+/mw/messagingmw/messagingfw/msgtest/testutils/base/src
+/mw/messagingmw/messagingfw/msgtest/testutils/base/test/group
+/mw/messagingmw/messagingfw/msgtest/testutils/base/test/inc
+/mw/messagingmw/messagingfw/msgtest/testutils/base/test/src
+/mw/messagingmw/messagingfw/msgtest/testutils/caf2/group
+/mw/messagingmw/messagingfw/msgtest/testutils/caf2/test/TestAgent
+/mw/messagingmw/messagingfw/msgtest/testutils/email/bmarm
+/mw/messagingmw/messagingfw/msgtest/testutils/email/bwins
+/mw/messagingmw/messagingfw/msgtest/testutils/email/eabi
+/mw/messagingmw/messagingfw/msgtest/testutils/email/group
+/mw/messagingmw/messagingfw/msgtest/testutils/email/inc
+/mw/messagingmw/messagingfw/msgtest/testutils/email/src
+/mw/messagingmw/messagingfw/msgtest/testutils/group
+/mw/messagingmw/messagingfw/msgtest/testutils/server/bmarm
+/mw/messagingmw/messagingfw/msgtest/testutils/server/bwins
+/mw/messagingmw/messagingfw/msgtest/testutils/server/eabi
+/mw/messagingmw/messagingfw/msgtest/testutils/server/group
+/mw/messagingmw/messagingfw/msgtest/testutils/server/inc
+/mw/messagingmw/messagingfw/msgtest/testutils/server/src
+/mw/messagingmw/messagingfw/msgtest/testutils/sms/bmarm
+/mw/messagingmw/messagingfw/msgtest/testutils/sms/bwins
+/mw/messagingmw/messagingfw/msgtest/testutils/sms/eabi
+/mw/messagingmw/messagingfw/msgtest/testutils/sms/group
+/mw/messagingmw/messagingfw/msgtest/testutils/sms/inc
+/mw/messagingmw/messagingfw/msgtest/testutils/sms/src
+/mw/messagingmw/messagingfw/msgtest/testutils/sms/test/group
+/mw/messagingmw/messagingfw/msgtest/testutils/sms/test/src
+/mw/messagingmw/messagingfw/msgtest/tools/autorun/group
+/mw/messagingmw/messagingfw/msgtest/tools/autorun/src
+/mw/messagingmw/messagingfw/msgtest/tools/copylogs/group
+/mw/messagingmw/messagingfw/msgtest/tools/copylogs/src
+/mw/messagingmw/messagingfw/msgtest/tools/group
+/mw/messagingmw/messagingfw/msgtest/tools/spoofserver/Doc
+/mw/messagingmw/messagingfw/msgtest/tools/spoofserver/bwins
+/mw/messagingmw/messagingfw/msgtest/tools/spoofserver/eabi
+/mw/messagingmw/messagingfw/msgtest/tools/spoofserver/group
+/mw/messagingmw/messagingfw/msgtest/tools/spoofserver/inc
+/mw/messagingmw/messagingfw/msgtest/tools/spoofserver/src
+/mw/messagingmw/messagingfw/msgtest/tools/utils/bmarm
+/mw/messagingmw/messagingfw/msgtest/tools/utils/bwins
+/mw/messagingmw/messagingfw/msgtest/tools/utils/eabi
+/mw/messagingmw/messagingfw/msgtest/tools/utils/group
+/mw/messagingmw/messagingfw/msgtest/tools/utils/inc
+/mw/messagingmw/messagingfw/msgtest/tools/utils/src
+/mw/messagingmw/messagingfw/msgtestfw/Configurations/CommDbSettings
+/mw/messagingmw/messagingfw/msgtestfw/Configurations/EmailMessage
+/mw/messagingmw/messagingfw/msgtestfw/Configurations/EmailSettings
+/mw/messagingmw/messagingfw/msgtestfw/Configurations/MmsMessage
+/mw/messagingmw/messagingfw/msgtestfw/Configurations/MmsSettings
+/mw/messagingmw/messagingfw/msgtestfw/Configurations/PigeonSettings
+/mw/messagingmw/messagingfw/msgtestfw/Configurations/SendAs
+/mw/messagingmw/messagingfw/msgtestfw/Configurations/SmsMessage
+/mw/messagingmw/messagingfw/msgtestfw/Configurations/SmsSettings
+/mw/messagingmw/messagingfw/msgtestfw/Configurations/UTCSupport
+/mw/messagingmw/messagingfw/msgtestfw/Documentation
+/mw/messagingmw/messagingfw/msgtestfw/Framework/inc
+/mw/messagingmw/messagingfw/msgtestfw/Framework/src
+/mw/messagingmw/messagingfw/msgtestfw/TestActionUtils/inc
+/mw/messagingmw/messagingfw/msgtestfw/TestActionUtils/src
+/mw/messagingmw/messagingfw/msgtestfw/TestActions/Base/Attachments/inc
+/mw/messagingmw/messagingfw/msgtestfw/TestActions/Base/Attachments/src
+/mw/messagingmw/messagingfw/msgtestfw/TestActions/Base/corruption/inc
+/mw/messagingmw/messagingfw/msgtestfw/TestActions/Base/corruption/src
+/mw/messagingmw/messagingfw/msgtestfw/TestActions/Base/inc
+/mw/messagingmw/messagingfw/msgtestfw/TestActions/Base/src
+/mw/messagingmw/messagingfw/msgtestfw/TestActions/Capabilities/CapUtils/src
+/mw/messagingmw/messagingfw/msgtestfw/TestActions/Capabilities/inc
+/mw/messagingmw/messagingfw/msgtestfw/TestActions/Capabilities/src
+/mw/messagingmw/messagingfw/msgtestfw/TestActions/Drm/inc
+/mw/messagingmw/messagingfw/msgtestfw/TestActions/Drm/src
+/mw/messagingmw/messagingfw/msgtestfw/TestActions/Email/Common/inc
+/mw/messagingmw/messagingfw/msgtestfw/TestActions/Email/Common/src
+/mw/messagingmw/messagingfw/msgtestfw/TestActions/Email/Imap4/inc
+/mw/messagingmw/messagingfw/msgtestfw/TestActions/Email/Imap4/src
+/mw/messagingmw/messagingfw/msgtestfw/TestActions/Email/Pop3/inc
+/mw/messagingmw/messagingfw/msgtestfw/TestActions/Email/Pop3/src
+/mw/messagingmw/messagingfw/msgtestfw/TestActions/Email/Smtp/inc
+/mw/messagingmw/messagingfw/msgtestfw/TestActions/Email/Smtp/src
+/mw/messagingmw/messagingfw/msgtestfw/TestActions/Framework/inc
+/mw/messagingmw/messagingfw/msgtestfw/TestActions/Framework/src
+/mw/messagingmw/messagingfw/msgtestfw/TestActions/Mms/inc
+/mw/messagingmw/messagingfw/msgtestfw/TestActions/Mms/src
+/mw/messagingmw/messagingfw/msgtestfw/TestActions/OBEX/BT/inc
+/mw/messagingmw/messagingfw/msgtestfw/TestActions/OBEX/BT/src
+/mw/messagingmw/messagingfw/msgtestfw/TestActions/OBEX/IR/inc
+/mw/messagingmw/messagingfw/msgtestfw/TestActions/OBEX/IR/src
+/mw/messagingmw/messagingfw/msgtestfw/TestActions/Performance/Inc
+/mw/messagingmw/messagingfw/msgtestfw/TestActions/Performance/Src
+/mw/messagingmw/messagingfw/msgtestfw/TestActions/Pigeon/inc
+/mw/messagingmw/messagingfw/msgtestfw/TestActions/Pigeon/src
+/mw/messagingmw/messagingfw/msgtestfw/TestActions/Sample/inc
+/mw/messagingmw/messagingfw/msgtestfw/TestActions/Sample/src
+/mw/messagingmw/messagingfw/msgtestfw/TestActions/SendAs/inc
+/mw/messagingmw/messagingfw/msgtestfw/TestActions/SendAs/src
+/mw/messagingmw/messagingfw/msgtestfw/TestActions/Sms/inc
+/mw/messagingmw/messagingfw/msgtestfw/TestActions/Sms/src
+/mw/messagingmw/messagingfw/msgtestfw/TestCases/NonScriptedTestCases/inc
+/mw/messagingmw/messagingfw/msgtestfw/TestCases/NonScriptedTestCases/scripts
+/mw/messagingmw/messagingfw/msgtestfw/TestCases/NonScriptedTestCases/src
+/mw/messagingmw/messagingfw/msgtestfw/TestCases/ScriptedTestCases/AttachmentAPIScripts/Data
+/mw/messagingmw/messagingfw/msgtestfw/TestCases/ScriptedTestCases/AutoSend
+/mw/messagingmw/messagingfw/msgtestfw/TestCases/ScriptedTestCases/CR205-ConcatenatedSMS
+/mw/messagingmw/messagingfw/msgtestfw/TestCases/ScriptedTestCases/CR657
+/mw/messagingmw/messagingfw/msgtestfw/TestCases/ScriptedTestCases/Capabilities/cdma
+/mw/messagingmw/messagingfw/msgtestfw/TestCases/ScriptedTestCases/CenRepTests
+/mw/messagingmw/messagingfw/msgtestfw/TestCases/ScriptedTestCases/Corruption/data
+/mw/messagingmw/messagingfw/msgtestfw/TestCases/ScriptedTestCases/Corruption/rom
+/mw/messagingmw/messagingfw/msgtestfw/TestCases/ScriptedTestCases/DrmHandling
+/mw/messagingmw/messagingfw/msgtestfw/TestCases/ScriptedTestCases/EmailOverSMS
+/mw/messagingmw/messagingfw/msgtestfw/TestCases/ScriptedTestCases/Imap4SizeFiltering
+/mw/messagingmw/messagingfw/msgtestfw/TestCases/ScriptedTestCases/ImapSearchTests
+/mw/messagingmw/messagingfw/msgtestfw/TestCases/ScriptedTestCases/Performance
+/mw/messagingmw/messagingfw/msgtestfw/TestCases/ScriptedTestCases/ScheduleSendScripts/cdma
+/mw/messagingmw/messagingfw/msgtestfw/TestCases/ScriptedTestCases/SendAs/Performance
+/mw/messagingmw/messagingfw/msgtestfw/TestCases/ScriptedTestCases/SendAs/data
+/mw/messagingmw/messagingfw/msgtestfw/TestCases/ScriptedTestCases/StoreManager
+/mw/messagingmw/messagingfw/msgtestfw/TestCases/ScriptedTestCases/UTCSupport
+/mw/messagingmw/messagingfw/msgtestfw/TestCases/ScriptedTestCases/upssupport
+/mw/messagingmw/messagingfw/msgtestfw/bmarm
+/mw/messagingmw/messagingfw/msgtestfw/bwins
+/mw/messagingmw/messagingfw/msgtestfw/group
+/mw/messagingmw/messagingfw/msgtestfw/misc/LaunchAutoSend/group
+/mw/messagingmw/messagingfw/msgtestfw/misc/LaunchAutoSend/src
+/mw/messagingmw/messagingfw/msgtestfw/misc/ScheduleMessage/group
+/mw/messagingmw/messagingfw/msgtestfw/misc/ScheduleMessage/src
+/mw/messagingmw/messagingfw/msgtestfw/misc/group
+/mw/messagingmw/messagingfw/msgtestfw/rom
+/mw/messagingmw/messagingfw/msgtestproduct/PerformanceTestReport/config
+/mw/messagingmw/messagingfw/msgtestproduct/PerformanceTestReport/docs
+/mw/messagingmw/messagingfw/msgtestproduct/PerformanceTestReport/scripts
+/mw/messagingmw/messagingfw/msgtestproduct/common/group
+/mw/messagingmw/messagingfw/msgtestproduct/common/inc
+/mw/messagingmw/messagingfw/msgtestproduct/common/scripts/search
+/mw/messagingmw/messagingfw/msgtestproduct/common/scripts/unit
+/mw/messagingmw/messagingfw/msgtestproduct/common/src
+/mw/messagingmw/messagingfw/msgtestproduct/common/testdata/emailmessage
+/mw/messagingmw/messagingfw/msgtestproduct/common/testdata/emailsettings
+/mw/messagingmw/messagingfw/msgtestproduct/common/testdata/search
+/mw/messagingmw/messagingfw/msgtestproduct/common/testdata/smsmessage
+/mw/messagingmw/messagingfw/msgtestproduct/common/testdata/smssettings
+/mw/messagingmw/messagingfw/msgtestproduct/common/testdriver/search
+/mw/messagingmw/messagingfw/msgtestproduct/common/testdriver/unit
+/mw/messagingmw/messagingfw/msgtestproduct/email/documentation
+/mw/messagingmw/messagingfw/msgtestproduct/email/group
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/documentation
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/group
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/inc
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/scripts/bearermobility
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/scripts/cenrep
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/scripts/connect
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/scripts/downloadrules
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/scripts/folder
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/scripts/general
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/scripts/idle
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/scripts/media
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/scripts/message
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/scripts/migration
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/scripts/offline
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/scripts/oom
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/scripts/performance
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/scripts/plainbody
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/scripts/ram
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/scripts/search
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/scripts/sizefilter
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/scripts/snap
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/scripts/sync
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/scripts/sys
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/scripts/tls
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/scripts/transportbuffersizes
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/scripts/unit
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/src
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/testdata/EmailMessage
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/testdata/EmailSettings
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/testdata/bearermobility
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/testdata/cenrep
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/testdata/connect
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/testdata/downloadrules
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/testdata/folder
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/testdata/general
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/testdata/idle
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/testdata/media
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/testdata/message
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/testdata/migration
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/testdata/offline
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/testdata/oom
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/testdata/performance
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/testdata/plainbody
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/testdata/ram
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/testdata/search
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/testdata/sizefilter
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/testdata/snap
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/testdata/sync
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/testdata/sys
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/testdata/tls
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/testdata/transportbuffersizes
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/testdriver/ImapPlainBodyTextOps
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/testdriver/ImapRamUsage
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/testdriver/bearermobility
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/testdriver/cenrep
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/testdriver/connect
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/testdriver/downloadrules
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/testdriver/folder
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/testdriver/general
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/testdriver/idle
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/testdriver/media
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/testdriver/message
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/testdriver/migration
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/testdriver/offline
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/testdriver/performance
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/testdriver/plainbody
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/testdriver/ram
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/testdriver/search
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/testdriver/sizefilter
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/testdriver/snap
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/testdriver/sync
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/testdriver/sys
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/testdriver/tls
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/testdriver/transportbuffersizes
+/mw/messagingmw/messagingfw/msgtestproduct/email/imap/testdriver/unit
+/mw/messagingmw/messagingfw/msgtestproduct/email/pop/documentation
+/mw/messagingmw/messagingfw/msgtestproduct/email/pop/group
+/mw/messagingmw/messagingfw/msgtestproduct/email/pop/inc
+/mw/messagingmw/messagingfw/msgtestproduct/email/pop/scripts/bearermobility
+/mw/messagingmw/messagingfw/msgtestproduct/email/pop/scripts/cenrep
+/mw/messagingmw/messagingfw/msgtestproduct/email/pop/scripts/general
+/mw/messagingmw/messagingfw/msgtestproduct/email/pop/scripts/migration
+/mw/messagingmw/messagingfw/msgtestproduct/email/pop/scripts/oom
+/mw/messagingmw/messagingfw/msgtestproduct/email/pop/scripts/performance
+/mw/messagingmw/messagingfw/msgtestproduct/email/pop/scripts/plainbody
+/mw/messagingmw/messagingfw/msgtestproduct/email/pop/scripts/ram
+/mw/messagingmw/messagingfw/msgtestproduct/email/pop/scripts/snap
+/mw/messagingmw/messagingfw/msgtestproduct/email/pop/scripts/tls
+/mw/messagingmw/messagingfw/msgtestproduct/email/pop/scripts/top
+/mw/messagingmw/messagingfw/msgtestproduct/email/pop/scripts/unit
+/mw/messagingmw/messagingfw/msgtestproduct/email/pop/scripts/upssupport
+/mw/messagingmw/messagingfw/msgtestproduct/email/pop/src
+/mw/messagingmw/messagingfw/msgtestproduct/email/pop/testdata/EmailMessage
+/mw/messagingmw/messagingfw/msgtestproduct/email/pop/testdata/EmailSettings
+/mw/messagingmw/messagingfw/msgtestproduct/email/pop/testdata/bearermobility
+/mw/messagingmw/messagingfw/msgtestproduct/email/pop/testdata/cenrep
+/mw/messagingmw/messagingfw/msgtestproduct/email/pop/testdata/general
+/mw/messagingmw/messagingfw/msgtestproduct/email/pop/testdata/migration
+/mw/messagingmw/messagingfw/msgtestproduct/email/pop/testdata/oom
+/mw/messagingmw/messagingfw/msgtestproduct/email/pop/testdata/performance
+/mw/messagingmw/messagingfw/msgtestproduct/email/pop/testdata/plainbody
+/mw/messagingmw/messagingfw/msgtestproduct/email/pop/testdata/ram
+/mw/messagingmw/messagingfw/msgtestproduct/email/pop/testdata/snap
+/mw/messagingmw/messagingfw/msgtestproduct/email/pop/testdata/tls
+/mw/messagingmw/messagingfw/msgtestproduct/email/pop/testdata/top
+/mw/messagingmw/messagingfw/msgtestproduct/email/pop/testdata/upssupport
+/mw/messagingmw/messagingfw/msgtestproduct/email/pop/testdriver/bearermobility
+/mw/messagingmw/messagingfw/msgtestproduct/email/pop/testdriver/cenrep
+/mw/messagingmw/messagingfw/msgtestproduct/email/pop/testdriver/general
+/mw/messagingmw/messagingfw/msgtestproduct/email/pop/testdriver/migration
+/mw/messagingmw/messagingfw/msgtestproduct/email/pop/testdriver/performance
+/mw/messagingmw/messagingfw/msgtestproduct/email/pop/testdriver/plainbody
+/mw/messagingmw/messagingfw/msgtestproduct/email/pop/testdriver/ram
+/mw/messagingmw/messagingfw/msgtestproduct/email/pop/testdriver/snap
+/mw/messagingmw/messagingfw/msgtestproduct/email/pop/testdriver/tls
+/mw/messagingmw/messagingfw/msgtestproduct/email/pop/testdriver/top
+/mw/messagingmw/messagingfw/msgtestproduct/email/pop/testdriver/unit
+/mw/messagingmw/messagingfw/msgtestproduct/email/pop/testdriver/upssupport
+/mw/messagingmw/messagingfw/msgtestproduct/email/smtp/documentation
+/mw/messagingmw/messagingfw/msgtestproduct/email/smtp/group
+/mw/messagingmw/messagingfw/msgtestproduct/email/smtp/inc
+/mw/messagingmw/messagingfw/msgtestproduct/email/smtp/scripts/bearermobility
+/mw/messagingmw/messagingfw/msgtestproduct/email/smtp/scripts/migration
+/mw/messagingmw/messagingfw/msgtestproduct/email/smtp/scripts/mobility
+/mw/messagingmw/messagingfw/msgtestproduct/email/smtp/scripts/snap
+/mw/messagingmw/messagingfw/msgtestproduct/email/smtp/src
+/mw/messagingmw/messagingfw/msgtestproduct/email/smtp/testdata/EmailMessage
+/mw/messagingmw/messagingfw/msgtestproduct/email/smtp/testdata/EmailSettings
+/mw/messagingmw/messagingfw/msgtestproduct/email/smtp/testdata/bearermobility
+/mw/messagingmw/messagingfw/msgtestproduct/email/smtp/testdata/migration
+/mw/messagingmw/messagingfw/msgtestproduct/email/smtp/testdata/mobility
+/mw/messagingmw/messagingfw/msgtestproduct/email/smtp/testdata/snap
+/mw/messagingmw/messagingfw/msgtestproduct/email/smtp/testdriver/bearermobility
+/mw/messagingmw/messagingfw/msgtestproduct/email/smtp/testdriver/migration
+/mw/messagingmw/messagingfw/msgtestproduct/email/smtp/testdriver/mobility
+/mw/messagingmw/messagingfw/msgtestproduct/email/smtp/testdriver/snap
+/mw/messagingmw/messagingfw/msgtestproduct/framework/group
+/mw/messagingmw/messagingfw/msgtestproduct/framework/inc
+/mw/messagingmw/messagingfw/msgtestproduct/framework/src
+/mw/messagingmw/messagingfw/msgtestproduct/group
+/mw/messagingmw/messagingfw/msgtestproduct/media/group
+/mw/messagingmw/messagingfw/msgtestproduct/media/inc
+/mw/messagingmw/messagingfw/msgtestproduct/media/scripts
+/mw/messagingmw/messagingfw/msgtestproduct/media/src
+/mw/messagingmw/messagingfw/msgtestproduct/media/testdata/config
+/mw/messagingmw/messagingfw/msgtestproduct/media/testdriver/media
+/mw/messagingmw/messagingfw/msgtestproduct/testsuites/group
+/mw/messagingmw/messagingfw/msgtestproduct/testsuites/messaging/Email
+/mw/messagingmw/messagingfw/msgtestproduct/testutils/bwins
+/mw/messagingmw/messagingfw/msgtestproduct/testutils/eabi
+/mw/messagingmw/messagingfw/msgtestproduct/testutils/group
+/mw/messagingmw/messagingfw/msgtestproduct/testutils/inc
+/mw/messagingmw/messagingfw/msgtestproduct/testutils/src
+/mw/messagingmw/messagingfw/msgtestproduct/testutils/upssupport/SetUserPromptResponse/group
+/mw/messagingmw/messagingfw/msgtestproduct/testutils/upssupport/SetUserPromptResponse/source
+/mw/messagingmw/messagingfw/msgtestproduct/testutils/upssupport/group
+/mw/messagingmw/messagingfw/msgtestproduct/testutils/upssupport/inc_private
+/mw/messagingmw/messagingfw/msgtestproduct/testutils/upssupport/refdialogcreator/group
+/mw/messagingmw/messagingfw/msgtestproduct/testutils/upssupport/refdialogcreator/source
+/mw/messagingmw/messagingfw/msgtestproduct/testutils/upssupport/refpolicyevaluator/group
+/mw/messagingmw/messagingfw/msgtestproduct/testutils/upssupport/refpolicyevaluator/source
+/mw/messagingmw/messagingfw/msgurlhandler/group
+/mw/messagingmw/messagingfw/msgurlhandler/test/basic/group
+/mw/messagingmw/messagingfw/msgurlhandler/test/basic/inc
+/mw/messagingmw/messagingfw/msgurlhandler/test/basic/src
+/mw/messagingmw/messagingfw/msgurlhandler/test/group
+/mw/messagingmw/messagingfw/msgurlhandler/test/ui/group
+/mw/messagingmw/messagingfw/msgurlhandler/test/ui/inc
+/mw/messagingmw/messagingfw/msgurlhandler/test/ui/src
+/mw/messagingmw/messagingfw/msgurlhandler/urlhandler/group/aif
+/mw/messagingmw/messagingfw/msgurlhandler/urlhandler/inc
+/mw/messagingmw/messagingfw/msgurlhandler/urlhandler/src
+/mw/messagingmw/messagingfw/watcherfw/EABI
+/mw/messagingmw/messagingfw/watcherfw/bmarm
+/mw/messagingmw/messagingfw/watcherfw/bwins
+/mw/messagingmw/messagingfw/watcherfw/group
+/mw/messagingmw/messagingfw/watcherfw/inc
+/mw/messagingmw/messagingfw/watcherfw/src
+/mw/messagingmw/messagingfw/watcherfw/test/bmarm
+/mw/messagingmw/messagingfw/watcherfw/test/bwins
+/mw/messagingmw/messagingfw/watcherfw/test/group
+/mw/messagingmw/messagingfw/watcherfw/test/inc
+/mw/messagingmw/messagingfw/watcherfw/test/src
+/mw/ipappprotocols/sipconnproviderplugins/sipconnprovider/group
+/mw/ipappprotocols/sipconnproviderplugins/sipconnprovider/inc
+/mw/ipappprotocols/sipconnproviderplugins/sipconnprovider/src
+/os/unref/orphan/comgen/mm-protocols/Documentation
+/os/unref/orphan/comgen/mm-protocols/General/Group
+/mw/ipappprotocols/realtimenetprots/sipfw/ClientResolver/BWINS
+/mw/ipappprotocols/realtimenetprots/sipfw/ClientResolver/Client/api
+/mw/ipappprotocols/realtimenetprots/sipfw/ClientResolver/Client/inc
+/mw/ipappprotocols/realtimenetprots/sipfw/ClientResolver/Client/src
+/mw/ipappprotocols/realtimenetprots/sipfw/ClientResolver/Documentation
+/mw/ipappprotocols/realtimenetprots/sipfw/ClientResolver/EABI
+/mw/ipappprotocols/realtimenetprots/sipfw/ClientResolver/Group
+/mw/ipappprotocols/realtimenetprots/sipfw/ClientResolver/Resolver/api
+/mw/ipappprotocols/realtimenetprots/sipfw/ClientResolver/Resolver/inc
+/mw/ipappprotocols/realtimenetprots/sipfw/ClientResolver/Resolver/src
+/mw/ipappprotocols/realtimenetprots/sipfw/ClientResolver/Server/inc
+/mw/ipappprotocols/realtimenetprots/sipfw/ClientResolver/Server/src
+/mw/ipappprotocols/realtimenetprots/sipfw/ClientResolver/common/inc
+/mw/ipappprotocols/realtimenetprots/sipfw/Data
+/mw/ipappprotocols/realtimenetprots/sipfw/Group
+/mw/ipappprotocols/realtimenetprots/sipfw/ProfileAgent/AlrMonitor/inc
+/mw/ipappprotocols/realtimenetprots/sipfw/ProfileAgent/AlrMonitor/src
+/mw/ipappprotocols/realtimenetprots/sipfw/ProfileAgent/BWINS
+/mw/ipappprotocols/realtimenetprots/sipfw/ProfileAgent/Client/Api
+/mw/ipappprotocols/realtimenetprots/sipfw/ProfileAgent/Client/Inc
+/mw/ipappprotocols/realtimenetprots/sipfw/ProfileAgent/Client/Src
+/mw/ipappprotocols/realtimenetprots/sipfw/ProfileAgent/Documentation
+/mw/ipappprotocols/realtimenetprots/sipfw/ProfileAgent/EABI
+/mw/ipappprotocols/realtimenetprots/sipfw/ProfileAgent/Group
+/mw/ipappprotocols/realtimenetprots/sipfw/ProfileAgent/IETF_Agent/inc
+/mw/ipappprotocols/realtimenetprots/sipfw/ProfileAgent/IETF_Agent/src
+/mw/ipappprotocols/realtimenetprots/sipfw/ProfileAgent/IMS_Agent/Inc
+/mw/ipappprotocols/realtimenetprots/sipfw/ProfileAgent/IMS_Agent/Src
+/mw/ipappprotocols/realtimenetprots/sipfw/ProfileAgent/PluginMgr/Inc
+/mw/ipappprotocols/realtimenetprots/sipfw/ProfileAgent/PluginMgr/Src
+/mw/ipappprotocols/realtimenetprots/sipfw/ProfileAgent/PluginMgr/api
+/mw/ipappprotocols/realtimenetprots/sipfw/ProfileAgent/Profile/Inc
+/mw/ipappprotocols/realtimenetprots/sipfw/ProfileAgent/Profile/Src
+/mw/ipappprotocols/realtimenetprots/sipfw/ProfileAgent/Profile/api
+/mw/ipappprotocols/realtimenetprots/sipfw/ProfileAgent/ProxyResolver/inc
+/mw/ipappprotocols/realtimenetprots/sipfw/ProfileAgent/ProxyResolver/src
+/mw/ipappprotocols/realtimenetprots/sipfw/ProfileAgent/Server/Inc
+/mw/ipappprotocols/realtimenetprots/sipfw/ProfileAgent/Server/Src
+/mw/ipappprotocols/realtimenetprots/sipfw/ProfileAgent/Store/Inc
+/mw/ipappprotocols/realtimenetprots/sipfw/ProfileAgent/Store/Src
+/mw/ipappprotocols/realtimenetprots/sipfw/ProfileAgent/profile_fsm/inc
+/mw/ipappprotocols/realtimenetprots/sipfw/ProfileAgent/profile_fsm/src
+/mw/ipappprotocols/realtimenetprots/sipfw/SDP/BWINS
+/mw/ipappprotocols/realtimenetprots/sipfw/SDP/Documentation
+/mw/ipappprotocols/realtimenetprots/sipfw/SDP/EABI
+/mw/ipappprotocols/realtimenetprots/sipfw/SDP/Group
+/mw/ipappprotocols/realtimenetprots/sipfw/SDP/api
+/mw/ipappprotocols/realtimenetprots/sipfw/SDP/inc
+/mw/ipappprotocols/realtimenetprots/sipfw/SDP/src
+/mw/ipappprotocols/realtimenetprots/sipfw/SDP/strings
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/BWINS
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/Client/inc
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/Client/src
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/Codec/Documentation
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/Codec/api
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/Codec/inc
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/Codec/src
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/Codec/strings
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/Common/inc
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/Common/src
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/ConnectionMgr/inc
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/ConnectionMgr/src
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/Dialogs/inc
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/Dialogs/src
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/Documentation
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/EABI
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/Group
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/LightWeightTimer/inc
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/LightWeightTimer/src
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/Logging/inc
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/Logging/src
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/NATTraversalController/Api
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/NATTraversalController/Documentation
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/NATTraversalController/example_plugin/group
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/NATTraversalController/example_plugin/resource
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/NATTraversalController/example_plugin/src
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/NetworkMonitor/Plugins/H2Lan/Src
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/NetworkMonitor/Plugins/Packet/Src
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/NetworkMonitor/api
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/NetworkMonitor/inc
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/NetworkMonitor/src
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/Refreshes/inc
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/Refreshes/src
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/Registration/inc
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/Registration/src
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/RequestHandler/inc
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/RequestHandler/resource
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/RequestHandler/src
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/SIPSec/DigestPlugin/inc
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/SIPSec/DigestPlugin/resource
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/SIPSec/DigestPlugin/src
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/SIPSec/Framework/inc
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/SIPSec/Framework/src
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/SIPSec/IpSecPlugin/inc
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/SIPSec/IpSecPlugin/resource
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/SIPSec/IpSecPlugin/src
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/SIPSec/TlsPlugin/inc
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/SIPSec/TlsPlugin/resource
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/SIPSec/TlsPlugin/src
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/Server/inc
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/Server/src
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/ServerResolver/inc
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/ServerResolver/src
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/SigCompController/Common/inc
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/SigCompController/Common/src
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/SigCompController/DefaultPlugin/inc
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/SigCompController/DefaultPlugin/resource
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/SigCompController/DefaultPlugin/src
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/SystemStateMonitor/Api
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/SystemStateMonitor/Documentation
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/SystemStateMonitor/example_plugin/data
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/SystemStateMonitor/example_plugin/group
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/SystemStateMonitor/example_plugin/inc
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/SystemStateMonitor/example_plugin/src
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/Transaction/inc
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/Transaction/src
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/TransactionUser/inc
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/TransactionUser/src
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/sipapi/api
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/sipapi/inc
+/mw/ipappprotocols/realtimenetprots/sipfw/SIP/sipapi/src
+/mw/ipappprotocols/realtimenetprots/sipfw/SampleApp/gameUI_techview/Data
+/mw/ipappprotocols/realtimenetprots/sipfw/SampleApp/gameUI_techview/Group
+/mw/ipappprotocols/realtimenetprots/sipfw/SampleApp/gameUI_techview/Inc
+/mw/ipappprotocols/realtimenetprots/sipfw/SampleApp/gameUI_techview/Src
+/mw/ipappprotocols/realtimenetprots/sipfw/SampleApp/gameengine/BWINS
+/mw/ipappprotocols/realtimenetprots/sipfw/SampleApp/gameengine/EABI
+/mw/ipappprotocols/realtimenetprots/sipfw/SampleApp/gameengine/Group
+/mw/ipappprotocols/realtimenetprots/sipfw/SampleApp/gameengine/Inc
+/mw/ipappprotocols/realtimenetprots/sipfw/SampleApp/gameengine/Src
+/mw/ipappprotocols/realtimenetprots/sipfw/SampleApp/group
+/mw/ipappprotocols/realtimenetprots/sipfw/SampleApp/model
+/mw/ipappprotocols/realtimenetprots/sipfw/SampleApp/resolverplugin/Data
+/mw/ipappprotocols/realtimenetprots/sipfw/SampleApp/resolverplugin/Group
+/mw/ipappprotocols/realtimenetprots/sipfw/SampleApp/resolverplugin/Inc
+/mw/ipappprotocols/realtimenetprots/sipfw/SampleApp/resolverplugin/Src
+/mw/ipappprotocols/realtimenetprots/sipfw/SampleApp/sipengine/BWINS
+/mw/ipappprotocols/realtimenetprots/sipfw/SampleApp/sipengine/EABI
+/mw/ipappprotocols/realtimenetprots/sipfw/SampleApp/sipengine/group
+/mw/ipappprotocols/realtimenetprots/sipfw/SampleApp/sipengine/inc
+/mw/ipappprotocols/realtimenetprots/sipfw/SampleApp/sipengine/src
+/mw/ipappprotocols/realtimenetprots/sipfw/SampleApp/sis
+/mw/ipappprotocols/realtimenetprots/sipfw/SampleApp/socketengine/BWINS
+/mw/ipappprotocols/realtimenetprots/sipfw/SampleApp/socketengine/EABI
+/mw/ipappprotocols/realtimenetprots/sipfw/SampleApp/socketengine/Group
+/mw/ipappprotocols/realtimenetprots/sipfw/SampleApp/socketengine/Inc
+/mw/ipappprotocols/realtimenetprots/sipfw/SampleApp/socketengine/Src
+/mw/ipappprotocols/realtimenetprots/sipfw/SigComp/BWINS
+/mw/ipappprotocols/realtimenetprots/sipfw/SigComp/CompDeflate/inc
+/mw/ipappprotocols/realtimenetprots/sipfw/SigComp/CompDeflate/src
+/mw/ipappprotocols/realtimenetprots/sipfw/SigComp/Documentation
+/mw/ipappprotocols/realtimenetprots/sipfw/SigComp/EABI
+/mw/ipappprotocols/realtimenetprots/sipfw/SigComp/Group
+/mw/ipappprotocols/realtimenetprots/sipfw/SigComp/SigCompEngine/api
+/mw/ipappprotocols/realtimenetprots/sipfw/SigComp/SigCompEngine/inc
+/mw/ipappprotocols/realtimenetprots/sipfw/SigComp/SigCompEngine/src
+/mw/ipappprotocols/realtimenetprots/sipfw/SigComp/data
+/mw/ipappprotocols/realtimenetprots/sipfw/Test/CapTests/ClientResolver/Common
+/mw/ipappprotocols/realtimenetprots/sipfw/Test/CapTests/ProfileAgent/Common
+/mw/ipappprotocols/realtimenetprots/sipfw/Test/CapTests/Te_Cap_SipServerSource/Common
+/mw/ipappprotocols/realtimenetprots/sipfw/rom
+/mw/ipappprotocols/sipconnproviderplugins/sipconnectionplugins/Documentation
+/mw/ipappprotocols/sipconnproviderplugins/sipconnectionplugins/EABI
+/mw/ipappprotocols/sipconnproviderplugins/sipconnectionplugins/bwins
+/mw/ipappprotocols/sipconnproviderplugins/sipconnectionplugins/data
+/mw/ipappprotocols/sipconnproviderplugins/sipconnectionplugins/group
+/mw/ipappprotocols/sipconnproviderplugins/sipconnectionplugins/inc
+/mw/ipappprotocols/sipconnproviderplugins/sipconnectionplugins/src
+/os/unref/orphan/comgen/mm-protocols/SipProvEngine/Documentation
+/mw/ipappprotocols/sipconnproviderplugins/sipdummyprt/bwins
+/mw/ipappprotocols/sipconnproviderplugins/sipdummyprt/data
+/mw/ipappprotocols/sipconnproviderplugins/sipdummyprt/eabi
+/mw/ipappprotocols/sipconnproviderplugins/sipdummyprt/group
+/mw/ipappprotocols/sipconnproviderplugins/sipdummyprt/src
+/mw/ipappprotocols/sipconnproviderplugins/sipstatemachine/bwins
+/mw/ipappprotocols/sipconnproviderplugins/sipstatemachine/eabi
+/mw/ipappprotocols/sipconnproviderplugins/sipstatemachine/group
+/mw/ipappprotocols/sipconnproviderplugins/sipstatemachine/inc
+/mw/ipappprotocols/sipconnproviderplugins/sipstatemachine/src
+/os/unref/orphan/comgen/mm-protocols/SipProvEngine/Test/Documentation
+/os/unref/orphan/comgen/mm-protocols/SipProvEngine/Test/ResolverPlugin/Data
+/os/unref/orphan/comgen/mm-protocols/SipProvEngine/Test/ResolverPlugin/Group
+/os/unref/orphan/comgen/mm-protocols/SipProvEngine/Test/ResolverPlugin/Inc
+/os/unref/orphan/comgen/mm-protocols/SipProvEngine/Test/ResolverPlugin/Src
+/os/unref/orphan/comgen/mm-protocols/SipProvEngine/Test/ServerSideScripts
+/os/unref/orphan/comgen/mm-protocols/SipProvEngine/Test/profilegenerator
+/os/unref/orphan/comgen/mm-protocols/SipProvEngine/Test/scripts
+/os/unref/orphan/comgen/mm-protocols/SipProvEngine/Test/tsip
+/mw/ipappprotocols/sipconnproviderplugins/sipparams/group
+/mw/ipappprotocols/sipconnproviderplugins/sipparams/inc
+/mw/ipappprotocols/sipconnproviderplugins/sipparams/src
+/mw/ipappprotocols/sipconnproviderplugins/sipsubconnprovider/group
+/mw/ipappprotocols/sipconnproviderplugins/sipsubconnprovider/inc
+/mw/ipappprotocols/sipconnproviderplugins/sipsubconnprovider/src
+/mw/ipappprotocols/realtimenetprots/rtp/cfrtp/documentation
+/mw/ipappprotocols/realtimenetprots/rtp/cfrtp/group
+/mw/ipappprotocols/realtimenetprots/rtp/cfrtp/inc
+/mw/ipappprotocols/realtimenetprots/rtp/cfrtp/src
+/mw/ipappprotocols/realtimenetprots/rtp/cfrtp/test/rtpscpr_dummy/group
+/mw/ipappprotocols/realtimenetprots/rtp/cfrtp/test/rtpscpr_dummy/inc
+/mw/ipappprotocols/realtimenetprots/rtp/cfrtp/test/rtpscpr_dummy/src
+/mw/ipappprotocols/realtimenetprots/rtp/cfrtp/test/te_cfrtp/group
+/mw/ipappprotocols/realtimenetprots/rtp/cfrtp/test/te_cfrtp/inc
+/mw/ipappprotocols/realtimenetprots/rtp/cfrtp/test/te_cfrtp/scripts
+/mw/ipappprotocols/realtimenetprots/rtp/cfrtp/test/te_cfrtp/src
+/mw/ipappprotocols/realtimenetprots/rtp/cfrtp/test/te_cfrtp/testdata
+/mw/ipappprotocols/realtimenetprots/rtp/cfrtp/test/te_cfrtpcore/group
+/mw/ipappprotocols/realtimenetprots/rtp/cfrtp/test/te_cfrtpcore/scripts
+/mw/ipappprotocols/realtimenetprots/rtp/cfrtp/test/te_cfrtpcore/src
+/mw/ipappprotocols/realtimenetprots/rtp/cfrtp/test/te_cfrtpcore/testdata
+/mw/ipappprotocols/realtimenetprots/rtp/cfrtp/test/te_ut_rtpcollisionmgr/group
+/mw/ipappprotocols/realtimenetprots/rtp/cfrtp/test/te_ut_rtpcollisionmgr/scripts
+/mw/ipappprotocols/realtimenetprots/rtp/cfrtp/test/te_ut_rtpcollisionmgr/src
+/mw/ipappprotocols/realtimenetprots/rtp/cfrtp/test/te_ut_rtpcollisionmgr/testdata
+/mw/ipappprotocols/realtimenetprots/rtp/documentation
+/mw/ipappprotocols/realtimenetprots/rtp/group
+/mw/ipappprotocols/realtimenetprots/rtp/shimrtp/bmarm
+/mw/ipappprotocols/realtimenetprots/rtp/shimrtp/bwins
+/mw/ipappprotocols/realtimenetprots/rtp/shimrtp/eabi
+/mw/ipappprotocols/realtimenetprots/rtp/shimrtp/group
+/mw/ipappprotocols/realtimenetprots/rtp/shimrtp/inc
+/mw/ipappprotocols/realtimenetprots/rtp/shimrtp/src/rtp
+/mw/ipappprotocols/realtimenetprots/rtp/shimrtp/src/stubs
+/mw/ipappprotocols/realtimenetprots/rtp/shimrtp/test/documentation
+/mw/ipappprotocols/realtimenetprots/rtp/shimrtp/test/rtpfilestreamer/group
+/mw/ipappprotocols/realtimenetprots/rtp/shimrtp/test/rtpfilestreamer/inc
+/mw/ipappprotocols/realtimenetprots/rtp/shimrtp/test/rtpfilestreamer/src
+/mw/ipappprotocols/realtimenetprots/rtp/shimrtp/test/te_rtcp/group
+/mw/ipappprotocols/realtimenetprots/rtp/shimrtp/test/te_rtcp/scripts
+/mw/ipappprotocols/realtimenetprots/rtp/shimrtp/test/te_rtcp/src
+/mw/ipappprotocols/realtimenetprots/rtp/shimrtp/test/te_rtp/group
+/mw/ipappprotocols/realtimenetprots/rtp/shimrtp/test/te_rtp/scripts
+/mw/ipappprotocols/realtimenetprots/rtp/shimrtp/test/te_rtp/src
+/mw/ipappprotocols/realtimenetprots/rtp/shimrtp/test/trtp/group
+/mw/ipappprotocols/realtimenetprots/rtp/shimrtp/test/trtp/scripts
+/mw/ipappprotocols/realtimenetprots/rtp/shimrtp/test/trtp/src
+/mw/ipappprotocols/realtimenetprots/rtp/shimrtp/test/trtpcore/group
+/mw/ipappprotocols/realtimenetprots/rtp/shimrtp/test/trtpcore/scripts
+/mw/ipappprotocols/realtimenetprots/rtp/shimrtp/test/trtpcore/src
+/mw/ipappprotocols/realtimenetprots/rtp/shimrtp/test/trtpsocket/group
+/mw/ipappprotocols/realtimenetprots/rtp/shimrtp/test/trtpsocket/scripts
+/mw/ipappprotocols/realtimenetprots/rtp/shimrtp/test/trtpsocket/src
+/mw/ipappsrv/multimediacommscontroller/amrpayloadformatter/Documentation
+/mw/ipappsrv/multimediacommscontroller/amrpayloadformatter/group
+/mw/ipappsrv/multimediacommscontroller/amrpayloadformatter/inc
+/mw/ipappsrv/multimediacommscontroller/amrpayloadformatter/src
+/mw/ipappsrv/multimediacommscontroller/amrpayloadformatter/test/Documentation
+/mw/ipappsrv/multimediacommscontroller/amrpayloadformatter/test/group
+/mw/ipappsrv/multimediacommscontroller/amrpayloadformatter/test/rtpfilestreamer/group
+/mw/ipappsrv/multimediacommscontroller/amrpayloadformatter/test/rtpfilestreamer/inc
+/mw/ipappsrv/multimediacommscontroller/amrpayloadformatter/test/rtpfilestreamer/src
+/mw/ipappsrv/multimediacommscontroller/amrpayloadformatter/test/src
+/mw/ipappsrv/multimediacommscontroller/amrpayloadformatter/test/testdata/configs
+/mw/ipappsrv/multimediacommscontroller/amrpayloadformatter/test/testdata/scripts
+/mw/ipappprotocols/realtimenetprots/srtp/bwins
+/mw/ipappprotocols/realtimenetprots/srtp/eabi
+/mw/ipappprotocols/realtimenetprots/srtp/group
+/mw/ipappprotocols/realtimenetprots/srtp/inc/api
+/mw/ipappprotocols/realtimenetprots/srtp/src
+/mw/ipappprotocols/realtimenetprots/srtp/test/group
+/mw/ipappprotocols/realtimenetprots/srtp/test/scripts
+/mw/ipappprotocols/realtimenetprots/srtp/test/src
+/mw/remoteconn/mtpfws/mtpfw/common/inc
+/mw/remoteconn/mtpfws/mtpfw/daemon/client/BWINS
+/mw/remoteconn/mtpfws/mtpfw/daemon/client/EABI
+/mw/remoteconn/mtpfws/mtpfw/daemon/client/group
+/mw/remoteconn/mtpfws/mtpfw/daemon/client/interface
+/mw/remoteconn/mtpfws/mtpfw/daemon/client/src
+/mw/remoteconn/mtpfws/mtpfw/daemon/common/inc
+/mw/remoteconn/mtpfws/mtpfw/daemon/group
+/mw/remoteconn/mtpfws/mtpfw/daemon/server/group
+/mw/remoteconn/mtpfws/mtpfw/daemon/server/inc
+/mw/remoteconn/mtpfws/mtpfw/daemon/server/src
+/mw/remoteconn/mtpdataproviders/mtpbackupandrestoredp/documentation
+/mw/remoteconn/mtpdataproviders/mtpbackupandrestoredp/group
+/mw/remoteconn/mtpdataproviders/mtpbackupandrestoredp/inc
+/mw/remoteconn/mtpdataproviders/mtpbackupandrestoredp/src
+/mw/remoteconn/mtpfws/mtpfw/dataproviders/dataproviderapi/bwins
+/mw/remoteconn/mtpfws/mtpfw/dataproviders/dataproviderapi/eabi
+/mw/remoteconn/mtpfws/mtpfw/dataproviders/dataproviderapi/group
+/mw/remoteconn/mtpfws/mtpfw/dataproviders/dataproviderapi/interface
+/mw/remoteconn/mtpfws/mtpfw/dataproviders/dataproviderapi/src
+/mw/remoteconn/mtpfws/mtpfw/dataproviders/devdp/devdpextn/group
+/mw/remoteconn/mtpfws/mtpfw/dataproviders/devdp/devdpextn/inc
+/mw/remoteconn/mtpfws/mtpfw/dataproviders/devdp/devdpextn/src
+/mw/remoteconn/mtpfws/mtpfw/dataproviders/devdp/devdpextnapi/bwins
+/mw/remoteconn/mtpfws/mtpfw/dataproviders/devdp/devdpextnapi/eabi
+/mw/remoteconn/mtpfws/mtpfw/dataproviders/devdp/devdpextnapi/group
+/mw/remoteconn/mtpfws/mtpfw/dataproviders/devdp/devdpextnapi/interface
+/mw/remoteconn/mtpfws/mtpfw/dataproviders/devdp/devdpextnapi/src
+/mw/remoteconn/mtpfws/mtpfw/dataproviders/devdp/group
+/mw/remoteconn/mtpfws/mtpfw/dataproviders/devdp/inc
+/mw/remoteconn/mtpfws/mtpfw/dataproviders/devdp/src
+/mw/remoteconn/mtpfws/mtpfw/dataproviders/dputility/bwins
+/mw/remoteconn/mtpfws/mtpfw/dataproviders/dputility/eabi
+/mw/remoteconn/mtpfws/mtpfw/dataproviders/dputility/group
+/mw/remoteconn/mtpfws/mtpfw/dataproviders/dputility/inc
+/mw/remoteconn/mtpfws/mtpfw/dataproviders/dputility/src
+/mw/remoteconn/mtpdataproviders/mtpfileandfolderdp/group
+/mw/remoteconn/mtpdataproviders/mtpfileandfolderdp/inc
+/mw/remoteconn/mtpdataproviders/mtpfileandfolderdp/src
+/mw/remoteconn/mtpfws/mtpfw/dataproviders/group
+/mw/remoteconn/mtpfws/mtpfw/dataproviders/proxydp/group
+/mw/remoteconn/mtpfws/mtpfw/dataproviders/proxydp/inc
+/mw/remoteconn/mtpfws/mtpfw/dataproviders/proxydp/src
+/mw/remoteconn/mtpdataproviders/syncmldataprovider/Documentation
+/mw/remoteconn/mtpdataproviders/syncmldataprovider/group
+/mw/remoteconn/mtpdataproviders/syncmldataprovider/inc
+/mw/remoteconn/mtpdataproviders/syncmldataprovider/src
+/mw/remoteconn/mtpfws/mtpfw/datatypes/bwins
+/mw/remoteconn/mtpfws/mtpfw/datatypes/eabi
+/mw/remoteconn/mtpfws/mtpfw/datatypes/group
+/mw/remoteconn/mtpfws/mtpfw/datatypes/inc
+/mw/remoteconn/mtpfws/mtpfw/datatypes/interface
+/mw/remoteconn/mtpfws/mtpfw/datatypes/src
+/os/unref/orphan/comgen/mtp/documentation/architecture
+/os/unref/orphan/comgen/mtp/documentation/design
+/os/unref/orphan/comgen/mtp/documentation/test
+/mw/remoteconn/mtpfws/mtpfw/bwins
+/mw/remoteconn/mtpfws/mtpfw/eabi
+/mw/remoteconn/mtpfws/mtpfw/group
+/mw/remoteconn/mtpfws/mtpfw/inc
+/mw/remoteconn/mtpfws/mtpfw/src
+/os/unref/orphan/comgen/mtp/group
+/mw/remoteconn/mtpfws/mtpintegrationtest/daemon/client/data
+/mw/remoteconn/mtpfws/mtpintegrationtest/daemon/client/group
+/mw/remoteconn/mtpfws/mtpintegrationtest/daemon/client/inc
+/mw/remoteconn/mtpfws/mtpintegrationtest/daemon/client/scripts
+/mw/remoteconn/mtpfws/mtpintegrationtest/daemon/client/src
+/mw/remoteconn/mtpfws/mtpintegrationtest/daemon/group
+/mw/remoteconn/mtpfws/mtpintegrationtest/daemon/modeswitch/group
+/mw/remoteconn/mtpfws/mtpintegrationtest/daemon/modeswitch/inc
+/mw/remoteconn/mtpfws/mtpintegrationtest/daemon/modeswitch/scripts
+/mw/remoteconn/mtpfws/mtpintegrationtest/daemon/modeswitch/src
+/mw/remoteconn/mtpfws/mtpintegrationtest/dataproviders/captestdp/group
+/mw/remoteconn/mtpfws/mtpintegrationtest/dataproviders/captestdp/inc
+/mw/remoteconn/mtpfws/mtpintegrationtest/dataproviders/captestdp/src
+/mw/remoteconn/mtpfws/mtpintegrationtest/dataproviders/dataproviderapi/bwins
+/mw/remoteconn/mtpfws/mtpintegrationtest/dataproviders/dataproviderapi/eabi
+/mw/remoteconn/mtpfws/mtpintegrationtest/dataproviders/dataproviderapi/group
+/mw/remoteconn/mtpfws/mtpintegrationtest/dataproviders/dataproviderapi/inc
+/mw/remoteconn/mtpfws/mtpintegrationtest/dataproviders/dataproviderapi/scripts
+/mw/remoteconn/mtpfws/mtpintegrationtest/dataproviders/dataproviderapi/src
+/mw/remoteconn/mtpfws/mtpintegrationtest/dataproviders/group
+/mw/remoteconn/mtpfws/mtpintegrationtest/dataproviders/rctestdp/group
+/mw/remoteconn/mtpfws/mtpintegrationtest/dataproviders/rctestdp/inc
+/mw/remoteconn/mtpfws/mtpintegrationtest/dataproviders/rctestdp/src
+/mw/remoteconn/mtpfws/mtpintegrationtest/dataproviders/testdp/group
+/mw/remoteconn/mtpfws/mtpintegrationtest/dataproviders/testdp/inc
+/mw/remoteconn/mtpfws/mtpintegrationtest/dataproviders/testdp/src
+/mw/remoteconn/mtpfws/mtpintegrationtest/datatypes/data
+/mw/remoteconn/mtpfws/mtpintegrationtest/datatypes/group
+/mw/remoteconn/mtpfws/mtpintegrationtest/datatypes/inc
+/mw/remoteconn/mtpfws/mtpintegrationtest/datatypes/scripts
+/mw/remoteconn/mtpfws/mtpintegrationtest/datatypes/src
+/mw/remoteconn/mtpfws/mtpintegrationtest/framework/event/group
+/mw/remoteconn/mtpfws/mtpintegrationtest/framework/event/inc
+/mw/remoteconn/mtpfws/mtpintegrationtest/framework/event/scripts
+/mw/remoteconn/mtpfws/mtpintegrationtest/framework/event/src
+/mw/remoteconn/mtpfws/mtpintegrationtest/framework/framework/group
+/mw/remoteconn/mtpfws/mtpintegrationtest/framework/framework/inc
+/mw/remoteconn/mtpfws/mtpintegrationtest/framework/framework/scripts
+/mw/remoteconn/mtpfws/mtpintegrationtest/framework/framework/src
+/mw/remoteconn/mtpfws/mtpintegrationtest/framework/group
+/mw/remoteconn/mtpfws/mtpintegrationtest/framework/objectmanager/group
+/mw/remoteconn/mtpfws/mtpintegrationtest/framework/objectmanager/inc
+/mw/remoteconn/mtpfws/mtpintegrationtest/framework/objectmanager/scripts
+/mw/remoteconn/mtpfws/mtpintegrationtest/framework/objectmanager/src
+/mw/remoteconn/mtpfws/mtpintegrationtest/group
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/brdpstarter/group
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/brdpstarter/inc
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/brdpstarter/src
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/dsovermtptestharness/group
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/dsovermtptestharness/inc
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/dsovermtptestharness/scripts
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/dsovermtptestharness/src
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/group
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/mtpmodeselector/group
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/mtpmodeselector/inc
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/mtpmodeselector/src
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/mtpperformancetest/group
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/mtpperformancetest/inc
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/mtpperformancetest/scripts
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/mtpperformancetest/src
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/mtpstarter/group
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/mtpstarter/inc
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/mtpstarter/src
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/ptpip/agent/bwins
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/ptpip/agent/eabi
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/ptpip/agent/group
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/ptpip/agent/inc
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/ptpip/agent/src
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/ptpip/client/bwins
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/ptpip/client/eabi
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/ptpip/client/group
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/ptpip/client/src
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/ptpip/common/inc
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/ptpip/filter/group
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/ptpip/filter/inc
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/ptpip/filter/src
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/ptpip/group
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/ptpip/server/group
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/ptpip/server/inc
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/ptpip/server/src
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/ptpipstarter/group
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/ptpipstarter/src
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/ptpiptestharness/group
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/ptpiptestharness/inc
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/ptpiptestharness/scripts
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/ptpiptestharness/src
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/client/group
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/client/inc
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/client/src
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/common/inc
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/common/src
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/d_medch/group
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/d_medch/inc
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/d_medch/src
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/filesysimage
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_001/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_001a/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_001a/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_002/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_002/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_002/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_003/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_003/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_004/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_004/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_004/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_005/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_006/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_006/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_007/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_008/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_008/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_008/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_009/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_010/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_010/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_010/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_010/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_011/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_011/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_011/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_011/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_012/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_012/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_012/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_012/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_013/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_013/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_013/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_013/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_014/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_014/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_014/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_014/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_015/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_015/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_015/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_015/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_016/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_016/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_016/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_016/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_017/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_017/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_017/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_017/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_018/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_018/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_018/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_018/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_018/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_019/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_019/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_019/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_019/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_019/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_020/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_020/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_020/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_020/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_020/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_020/testcase_5
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_021/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_021/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_021/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_021/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_021/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_022/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_022/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_022/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_022/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_022/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_023/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_023/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_023/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_023/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_023/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_024/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_024/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_024/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_025/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_025/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_025/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_026/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_026/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_026/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_026/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_026/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_027/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_027/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_027/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_027/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_027/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_028/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_028/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_028/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_029/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_029/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_029/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_030/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_030/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_030/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_031/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_031/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_031/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_031/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_031/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_031a/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_031a/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_031a/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_032/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_032/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_032/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_032/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_032/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_033/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_033/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_033/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_033/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_033/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_034/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_034/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_034/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_034/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_034/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_034/testcase_5
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_034/testcase_6
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_034a/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_034a/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_034a/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_034a/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_034a/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_034a/testcase_5
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_035/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_035/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_035/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_035/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_036/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_036/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_036/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_037/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_037/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_037/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_037/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_038/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_038/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_038/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_039/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_039/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_039/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_040/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_040/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_040/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_040/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_040/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_041/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_041/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_041/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_041/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_041/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_042/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_042/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_042/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_042/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_042/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_043/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_043/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_043/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_043/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_043/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_044/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_044/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_044/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_044/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_044/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_045/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_045/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_045/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_045/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_045/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_046/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_046/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_046/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_046/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_046/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_047/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_047/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_047/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_047/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_047/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_048/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_048/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_048/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_048/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_048/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_049/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_049/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_049/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_049/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_049/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_050/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_050/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_050/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_050/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_050/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_051/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_051/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_051/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_051/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_051/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_052/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_052/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_052/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_052/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_052/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_053/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_053/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_053/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_053/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_053/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_054/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_054/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_054/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_054/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_054/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_055/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_055/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_055/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_058/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_059/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_060/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_060/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_060/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_061/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_061/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_061/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_062/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_062/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_062/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_062/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_063/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_063/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_063/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_063a/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_063a/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_063a/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_063a/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_063a/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_063a/testcase_5
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_063a/testcase_6
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_063a/testcase_7
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_063a/testcase_8
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_063a/testcase_9
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_064/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_064/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_064/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_064/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_065/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_065/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_065/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_065/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_066/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_066/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_066/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_066/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_067/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_067/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_067/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_067/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_067/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_067/testcase_5
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_067/testcase_6
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_068/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_068/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_068/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_068/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_068/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_069/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_069/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_069/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_069/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_069/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_069/testcase_5
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_070/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_070/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_070/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_070/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_070/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_070/testcase_5
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_070/testcase_6
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_070/testcase_7
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_071/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_071/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_071/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_071/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_071/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_071/testcase_5
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_071/testcase_6
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_071/testcase_7
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_072/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_072/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_072/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_072/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_072/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_072/testcase_5
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_072/testcase_6
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_072/testcase_7
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_073/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_073/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_073/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_073/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_073/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_074/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_074/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_074/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_074/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_074/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_075/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_075/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_075/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_075/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_075/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_075/testcase_5
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_076/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_076/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_076/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_076/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_076/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_076/testcase_5
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_076/testcase_6
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_076/testcase_7
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_076/testcase_8
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_076/testcase_9
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_077/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_077/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_077/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_077/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_077/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_077/testcase_5
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_078/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_078/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_078/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_078/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_078/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_079/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_079/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_079/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_080/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_080/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_080/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_081/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_081/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_081/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_082/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_082/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_082/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_082a/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_082a/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_082a/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_083/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_083/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_083/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_083/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_084/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_084/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_084/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_084/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_085/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_085/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_085/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_085/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_085/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_085/testcase_5
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_086/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_086/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_086/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_086/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_086/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_087/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_087/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_087/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_087/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_087/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_088/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_088/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_088/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_089/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_089/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_089/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_090/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_090/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_090/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_090/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_090/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_091/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_091/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_091/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_091/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_091/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_092/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_092/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_092/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_092/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_092/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_093/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_093/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_093/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_093/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_093/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_093a/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_093a/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_093a/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_093a/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_094/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_094/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_094/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_094/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_094/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_094/testcase_5
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_094/testcase_6
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_095/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_095/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_095/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_095/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_095/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_095/testcase_5
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_096/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_096/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_096/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_096/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_096/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_096/testcase_5
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_096/testcase_6
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_097/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_097/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_097/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_097/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_097/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_097/testcase_5
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_098/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_098/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_098/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_098/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_098/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_098/testcase_5
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_098/testcase_6
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_099/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_099/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_099/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_099/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_099/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_100/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_100/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_100/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_100/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_100/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_100/testcase_5
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_113/teststep_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_113/teststep_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_113/teststep_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_121/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_121/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_121/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_129/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_129/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_129/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_129/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_133/teststep_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_133/teststep_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_133/teststep_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_134/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_134/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_134/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_169/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_169/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_169/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_170/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_170/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_170/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_171/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_171/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_171/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_172/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_172/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_172/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_173/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_173/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_173/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_173/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_174/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_174/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_174/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_174/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_175/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_175/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_175/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_175/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_175/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_176/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_176/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_176/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_177/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_177/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_177/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_178/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_178/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_178/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_178/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_179/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_179/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_179/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_179/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_180/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_180/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_180/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_180/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_181/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_181/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_181/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_181/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_182/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_182/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_182/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_182/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_183/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_183/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_183/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_183/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_184/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_184/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_184/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_184/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_185/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_185/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_185/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_185/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_186/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_186/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_186/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_186/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_187/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_187/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_187/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_187/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_189/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_189/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_189/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_189/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_190/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_190/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_190/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_190/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_191/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_191/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_191/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_191/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_192/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_192/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_192/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_192/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_193/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_193/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_193/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_193/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_194/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_194/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_194/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_194/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_227/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_227/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_227/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_227/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_228/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_228/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_228/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_228/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_229/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_229/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_229/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_229/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_230/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_230/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_230/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_230/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_231/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_231/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_231/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_231/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_232/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_232/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_232/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_232/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_233/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_233/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_233/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_233/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_234/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_234/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_234/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_234/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_235/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_235/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_235/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_235/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_236/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_236/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_236/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_236/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_237/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_237/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_237/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_237/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_238/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_238/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_238/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_238/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_239/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_239/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_239/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_242a/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_242a/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_242a/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_242a/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_242a/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_242a/testcase_5
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_242b/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_242b/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_242b/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_242b/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_242b/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_243a/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_243a/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_243a/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_243a/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_243a/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_243a/testcase_5
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_243b/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_243b/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_243b/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_243b/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_244a/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_244a/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_244a/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_244a/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_244a/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_244a/testcase_5
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_244a/testcase_6
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_244b/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_244b/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_244b/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_245a/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_245a/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_245a/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_245a/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_245a/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_245b/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_245b/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_245b/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_250/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_250/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_250/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_251/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_251/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_251/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_252/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_252/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_252/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_253a/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_253a/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_253a/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_253b/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_253b/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_254a/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_254a/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_254a/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_254b/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_254b/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_255/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_255/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_255/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_264/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_264/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_264/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_265/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_265/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_265/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_266/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_266/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_266/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_267/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_267/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_267/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_285/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_285/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_285/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_285/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_285/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_285b/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_285b/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_285b/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_285b/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_285b/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_286/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_286/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_286/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_286/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_286/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_288/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_288/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_288/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_288/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_288/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_290/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_290/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_290/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_290/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_290/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_291/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_291/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_291/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_291/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_291/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_292/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_292/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_292/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_292/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_292/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_293/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_293/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_293/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_293/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_293/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_294/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_294/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_294/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_295/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_295/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_295/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_295/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_295/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_295/testcase_5
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_295/testcase_6
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_295/testcase_7
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_295/testcase_8
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_296/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_296/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_296/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_296/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_296/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_296/testcase_5
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_296/testcase_6
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_296/testcase_7
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_297/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_297/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_297/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_297/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_297/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_297/testcase_5
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_297/testcase_6
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_297/testcase_7
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_298/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_298/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_298/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_298/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_298/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_298/testcase_5
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_298/testcase_6
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_298/testcase_7
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_299/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_299/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_299/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_299/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_299/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_299/testcase_5
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_299/testcase_6
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_299/testcase_7
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_300/testcase_00
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_300/testcase_01
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_300/testcase_02
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_300/testcase_03
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_300/testcase_04
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_300/testcase_05
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_300/testcase_06
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_300/testcase_07
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_300/testcase_08
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_300/testcase_09
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_300/testcase_10
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_300/testcase_11
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_300/testcase_12
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_300/testcase_13
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_301/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_301/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_301/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_301/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_301/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_301/testcase_5
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_301/testcase_6
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_301/testcase_7
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_302/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_302/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_302/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_302/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_302/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_302/testcase_5
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_302/testcase_6
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_302/testcase_7
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_303/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_303/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_303/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_303/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_303/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_303/testcase_5
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_303/testcase_6
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_304/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_304/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_304/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_304/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_304/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_304/testcase_5
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_304/testcase_6
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_304/testcase_7
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_400/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_400/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_401/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_401/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_402/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_402/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_403/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_403/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_404/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_404/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_409/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_409/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_409/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_409/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_409/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_410/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_410/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_410/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_411/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_411/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_411/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_412/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_412/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_412/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_413/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_413/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_413/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_414/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_414/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_414/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_415/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_415/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_415/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_416/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_416/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_416/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_417/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_417/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_417/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_418/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_418/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_418/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_419/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_419/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_419/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_420/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_420/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_420/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_421/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_421/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_421/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_422/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_422/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_422/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_423/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_423/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_423/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_424/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_424/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_424/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_425/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_425/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_425/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_425/testcase_3
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_425/testcase_4
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_425/testcase_5
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_500/testcase_0
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_500/testcase_1
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_500/testcase_2
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_accept_san/testcase_00
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_accept_san/testcase_01
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_accept_san/testcase_02
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_accept_san/testcase_03
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_accept_san/testcase_04
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_accept_san/testcase_05
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_accept_san/testcase_06
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_corrupt_san/testcase_00
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_corrupt_san/testcase_01
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_corrupt_san/testcase_02
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_corrupt_san/testcase_03
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_corrupt_san/testcase_04
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_corrupt_san/testcase_05
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_first_san/testcase_00
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_first_san/testcase_01
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_first_san/testcase_02
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_first_san/testcase_03
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_first_san/testcase_04
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_first_san/testcase_05
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_first_san/testcase_06
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_invalid_filename_san/testcase_00
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_invalid_filename_san/testcase_01
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_invalid_filename_san/testcase_02
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_invalid_filename_san/testcase_03
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_invalid_serverid_san/testcase_00
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_invalid_serverid_san/testcase_01
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_invalid_serverid_san/testcase_02
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_invalid_serverid_san/testcase_03
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_invalid_serverid_san/testcase_04
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_multiple_get/testcase_00
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_multiple_get/testcase_01
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_multiple_get/testcase_02
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_multiple_get/testcase_03
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_multiple_get/testcase_04
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_multiple_get/testcase_05
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_multiple_get/testcase_06
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_multiple_get/testcase_07
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_multiple_get/testcase_08
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_next_san/testcase_00
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_next_san/testcase_01
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_next_san/testcase_02
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_next_san/testcase_03
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_next_san/testcase_04
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_next_san/testcase_05
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_next_san/testcase_06
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_noclick_san/testcase_00
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_noclick_san/testcase_01
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_noclick_san/testcase_02
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_noclick_san/testcase_03
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_noclick_san/testcase_04
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_refresh-from-client/testcase_00
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_refresh-from-client/testcase_01
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_refresh-from-client/testcase_02
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_refresh-from-client/testcase_03
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_refresh-from-client/testcase_04
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_refresh-from-client/testcase_05
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_refresh-from-client/testcase_06
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_refresh-from-client/testcase_07
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_refresh-from-client/testcase_08
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_refresh-from-client/testcase_09
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_refresh-from-client/testcase_10
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_refresh-from-client/testcase_11
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_refresh-from-client/testcase_12
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_refresh-from-client/testcase_13
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_refresh-from-client/testcase_14
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_refresh-from-client/testcase_15
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_refresh-from-client/testcase_16
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_refresh-from-client/testcase_17
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_refresh-from-client/testcase_18
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_refresh-from-server/testcase_00
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_refresh-from-server/testcase_01
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_refresh-from-server/testcase_02
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_refresh-from-server/testcase_03
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_refresh-from-server/testcase_04
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_refresh-from-server/testcase_05
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_refresh-from-server/testcase_06
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_refresh-from-server/testcase_07
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_refresh-from-server/testcase_08
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_refresh-from-server/testcase_09
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_refresh-from-server/testcase_10
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_refresh-from-server/testcase_11
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_refresh-from-server/testcase_12
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_refresh-from-server/testcase_13
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_refresh-from-server/testcase_14
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_refresh-from-server/testcase_15
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_refresh-from-server/testcase_16
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_refresh-from-server/testcase_17
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_refresh-from-server/testcase_18
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_reject_san/testcase_00
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_reject_san/testcase_01
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_reject_san/testcase_02
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_reject_san/testcase_03
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_reject_san/testcase_04
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_second_san/testcase_00
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_second_san/testcase_01
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_second_san/testcase_02
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_second_san/testcase_03
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_second_san/testcase_04
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_second_san/testcase_05
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_server-busy/testcase_00
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_server-busy/testcase_01
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_server-busy/testcase_02
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_server-busy/testcase_03
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_server-busy/testcase_04
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_server-busy/testcase_05
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_server-busy/testcase_06
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_server-busy/testcase_07
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_server-busy/testcase_08
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way-client-add/testcase_00
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way-client-add/testcase_01
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way-client-add/testcase_02
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way-client-add/testcase_03
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way-client-add/testcase_04
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way-client-add/testcase_05
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way-client-add/testcase_06
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way-client-add/testcase_07
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way-client-add/testcase_08
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way-client-add/testcase_09
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way-client-add/testcase_10
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way-client-add/testcase_11
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way-client-add/testcase_12
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way-client-add/testcase_13
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way-client-add/testcase_14
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way-client-add/testcase_15
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way-client-add/testcase_16
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way-client-add/testcase_17
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way-client-add/testcase_18
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way-server-add/testcase_00
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way-server-add/testcase_01
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way-server-add/testcase_02
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way-server-add/testcase_03
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way-server-add/testcase_04
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way-server-add/testcase_05
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way-server-add/testcase_06
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way-server-add/testcase_07
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way-server-add/testcase_08
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way-server-add/testcase_09
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way-server-add/testcase_10
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way-server-add/testcase_11
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way-server-add/testcase_12
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way-server-add/testcase_13
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way-server-add/testcase_14
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way-server-add/testcase_15
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way-server-add/testcase_16
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way-server-add/testcase_17
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way-server-add/testcase_18
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way-slow/testcase_00
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way-slow/testcase_01
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way-slow/testcase_02
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way-slow/testcase_03
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way-slow/testcase_04
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way-slow/testcase_05
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way-slow/testcase_06
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way-slow/testcase_07
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way-slow/testcase_08
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way-slow/testcase_09
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way-slow/testcase_10
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way-slow/testcase_11
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way-slow/testcase_12
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way-slow/testcase_13
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way-slow/testcase_14
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way-slow/testcase_15
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way-slow/testcase_16
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way-slow/testcase_17
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way-slow/testcase_18
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way/testcase_00
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way/testcase_01
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way/testcase_02
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way/testcase_03
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way/testcase_04
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way/testcase_05
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way/testcase_06
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way/testcase_07
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way/testcase_08
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way/testcase_09
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way/testcase_10
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way/testcase_11
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way/testcase_12
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_two-way/testcase_13
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_valid_filename_san/testcase_00
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_valid_filename_san/testcase_01
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_valid_filename_san/testcase_02
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_valid_filename_san/testcase_03
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_valid_filename_san/testcase_04
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_without_profile_san/testcase_00
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_without_profile_san/testcase_01
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_without_profile_san/testcase_02
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_without_profile_san/testcase_03
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_without_profile_san/testcase_04
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/data/testcase_without_profile_san/testcase_05
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/group
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/mtpfsy/group
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/mtpfsy/inc
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/mtpfsy/src
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/requestlogger/bwins
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/requestlogger/eabi
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/requestlogger/group
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/requestlogger/inc
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/requestlogger/src
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/scripts
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/teststep/group
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/teststep/inc
+/mw/remoteconn/mtpfws/mtpintegrationtest/integration/testharness/teststep/src
+/mw/remoteconn/mtpfws/mtpintegrationtest/interoperability/group
+/mw/remoteconn/mtpfws/mtpintegrationtest/interoperability/imagedp/imagedp/group
+/mw/remoteconn/mtpfws/mtpintegrationtest/interoperability/imagedp/imagedp/inc
+/mw/remoteconn/mtpfws/mtpintegrationtest/interoperability/imagedp/imagedp/src
+/mw/remoteconn/mtpfws/mtpintegrationtest/interoperability/imagedp/imagedpdatabase/data/media/image
+/mw/remoteconn/mtpfws/mtpintegrationtest/interoperability/imagedp/imagedpdatabase/group
+/mw/remoteconn/mtpfws/mtpintegrationtest/interoperability/imagedp/imagedpdatabase/inc
+/mw/remoteconn/mtpfws/mtpintegrationtest/interoperability/imagedp/imagedpdatabase/src
+/mw/remoteconn/mtpfws/mtpintegrationtest/interoperability/musicdp/group
+/mw/remoteconn/mtpfws/mtpintegrationtest/interoperability/musicdp/musicdp/group
+/mw/remoteconn/mtpfws/mtpintegrationtest/interoperability/musicdp/musicdp/inc
+/mw/remoteconn/mtpfws/mtpintegrationtest/interoperability/musicdp/musicdp/src
+/mw/remoteconn/mtpfws/mtpintegrationtest/interoperability/musicdp/musicdpdatabase/group
+/mw/remoteconn/mtpfws/mtpintegrationtest/interoperability/musicdp/musicdpdatabase/inc
+/mw/remoteconn/mtpfws/mtpintegrationtest/interoperability/musicdp/musicdpdatabase/src
+/mw/remoteconn/mtpfws/mtpintegrationtest/interoperability/pictbridgedp/data
+/mw/remoteconn/mtpfws/mtpintegrationtest/interoperability/pictbridgedp/group
+/mw/remoteconn/mtpfws/mtpintegrationtest/interoperability/pictbridgedp/inc
+/mw/remoteconn/mtpfws/mtpintegrationtest/interoperability/pictbridgedp/src
+/mw/remoteconn/mtpfws/mtpintegrationtest/tools
+/mw/remoteconn/mtpfws/mtpintegrationtest/transports/group
+/mw/remoteconn/mtpfws/mtpintegrationtest/transports/ptpip/ptpipdatatypes/group
+/mw/remoteconn/mtpfws/mtpintegrationtest/transports/ptpip/ptpipdatatypes/inc
+/mw/remoteconn/mtpfws/mtpintegrationtest/transports/ptpip/ptpipdatatypes/scripts
+/mw/remoteconn/mtpfws/mtpintegrationtest/transports/ptpip/ptpipdatatypes/src
+/mw/remoteconn/mtpfws/mtpintegrationtest/transports/transportapi/bwins
+/mw/remoteconn/mtpfws/mtpintegrationtest/transports/transportapi/eabi
+/mw/remoteconn/mtpfws/mtpintegrationtest/transports/transportapi/group
+/mw/remoteconn/mtpfws/mtpintegrationtest/transports/transportapi/inc
+/mw/remoteconn/mtpfws/mtpintegrationtest/transports/transportapi/scripts
+/mw/remoteconn/mtpfws/mtpintegrationtest/transports/transportapi/src
+/mw/remoteconn/mtpfws/mtpintegrationtest/transports/usbsic/usbdatatypes/group
+/mw/remoteconn/mtpfws/mtpintegrationtest/transports/usbsic/usbdatatypes/inc
+/mw/remoteconn/mtpfws/mtpintegrationtest/transports/usbsic/usbdatatypes/scripts
+/mw/remoteconn/mtpfws/mtpintegrationtest/transports/usbsic/usbdatatypes/src
+/os/unref/orphan/comgen/mtp/transports/group
+/mw/remoteconn/mtptransports/mtpptpiptransport/common/inc
+/mw/remoteconn/mtptransports/mtpptpiptransport/filterapi/bwins
+/mw/remoteconn/mtptransports/mtpptpiptransport/filterapi/eabi
+/mw/remoteconn/mtptransports/mtpptpiptransport/filterapi/group
+/mw/remoteconn/mtptransports/mtpptpiptransport/filterapi/interface
+/mw/remoteconn/mtptransports/mtpptpiptransport/filterapi/src
+/mw/remoteconn/mtptransports/mtpptpiptransport/group
+/mw/remoteconn/mtptransports/mtpptpiptransport/ptpipcontroller/bwins
+/mw/remoteconn/mtptransports/mtpptpiptransport/ptpipcontroller/eabi
+/mw/remoteconn/mtptransports/mtpptpiptransport/ptpipcontroller/group
+/mw/remoteconn/mtptransports/mtpptpiptransport/ptpipcontroller/inc
+/mw/remoteconn/mtptransports/mtpptpiptransport/ptpipcontroller/interface
+/mw/remoteconn/mtptransports/mtpptpiptransport/ptpipcontroller/src
+/mw/remoteconn/mtptransports/mtpptpiptransport/ptpipdatatypes/bwins
+/mw/remoteconn/mtptransports/mtpptpiptransport/ptpipdatatypes/eabi
+/mw/remoteconn/mtptransports/mtpptpiptransport/ptpipdatatypes/group
+/mw/remoteconn/mtptransports/mtpptpiptransport/ptpipdatatypes/inc
+/mw/remoteconn/mtptransports/mtpptpiptransport/ptpipdatatypes/src
+/mw/remoteconn/mtptransports/mtpptpiptransport/ptpipplugin/group
+/mw/remoteconn/mtptransports/mtpptpiptransport/ptpipplugin/inc
+/mw/remoteconn/mtptransports/mtpptpiptransport/ptpipplugin/src
+/mw/remoteconn/mtpfws/mtpfw/transports/transportapi/bwins
+/mw/remoteconn/mtpfws/mtpfw/transports/transportapi/eabi
+/mw/remoteconn/mtpfws/mtpfw/transports/transportapi/group
+/mw/remoteconn/mtpfws/mtpfw/transports/transportapi/inc
+/mw/remoteconn/mtpfws/mtpfw/transports/transportapi/src
+/mw/remoteconn/mtptransports/mtpusbtransport/common/inc
+/mw/remoteconn/mtptransports/mtpusbtransport/group
+/mw/remoteconn/mtptransports/mtpusbtransport/usbdatatypes/BWINS
+/mw/remoteconn/mtptransports/mtpusbtransport/usbdatatypes/EABI
+/mw/remoteconn/mtptransports/mtpusbtransport/usbdatatypes/group
+/mw/remoteconn/mtptransports/mtpusbtransport/usbdatatypes/inc
+/mw/remoteconn/mtptransports/mtpusbtransport/usbdatatypes/src
+/mw/remoteconn/mtptransports/mtpusbtransport/usbsic_cc/group
+/mw/remoteconn/mtptransports/mtpusbtransport/usbsic_cc/inc
+/mw/remoteconn/mtptransports/mtpusbtransport/usbsic_cc/src
+/mw/remoteconn/mtptransports/mtpusbtransport/usbsic_imp/group
+/mw/remoteconn/mtptransports/mtpusbtransport/usbsic_imp/inc
+/mw/remoteconn/mtptransports/mtpusbtransport/usbsic_imp/src
+/os/mm/mmplugins/3gplib/group
+/os/mm/mmplugins/3gplib/impl/bwins
+/os/mm/mmplugins/3gplib/impl/eabi
+/os/mm/mmplugins/3gplib/impl/group
+/os/mm/mmplugins/3gplib/impl/inc
+/os/mm/mmplugins/3gplib/impl/src
+/os/mm/mmplugins/3gplib/wrapper/bwins
+/os/mm/mmplugins/3gplib/wrapper/eabi
+/os/mm/mmplugins/3gplib/wrapper/group
+/os/mm/mmplugins/3gplib/wrapper/inc
+/os/mm/mmplugins/3gplib/wrapper/src
+/os/mm/devsound/a3fdevsound/bwins
+/os/mm/devsound/a3fdevsound/eabi
+/os/mm/devsound/a3fdevsound/group
+/os/mm/devsound/a3fdevsound/inc
+/os/mm/devsound/a3fdevsound/mmpfiles
+/os/mm/devsound/a3fdevsound/shared
+/os/mm/devsound/a3fdevsound/src/a3ffourccconvertorplugin
+/os/mm/devsound/a3fdevsound/src/a3ffourcclookup
+/os/mm/devsound/a3fdevsound/src/devsoundadaptor
+/os/mm/devsound/a3fdevsound/src/mmfaudioserver
+/os/mm/devsound/a3fdevsound/src/mmfaudioserverfactory
+/os/mm/devsound/a3fdevsound/src/mmfaudioserverproxy
+/os/mm/devsound/a3fdevsound/src/mmfdevsound
+/os/mm/devsound/a3fdevsound/src/mmfdevsoundproxy
+/os/mm/devsound/a3fdevsound/src/mmfdevsoundserver
+/os/mm/devsound/a3fsrvstart/group
+/os/mm/devsound/a3fsrvstart/mmpfiles
+/os/mm/devsound/a3fsrvstart/src/mmfaudioserverstart
+/os/mm/devsound/a3facf/bwins
+/os/mm/devsound/a3facf/eabi
+/os/mm/devsound/a3facf/group
+/os/mm/devsound/a3facf/inc
+/os/mm/devsound/a3facf/mmpfiles
+/os/mm/devsound/a3facf/src/tonedata
+/os/mm/mmhais/a3facl/bwins
+/os/mm/mmhais/a3facl/eabi
+/os/mm/mmhais/a3facl/group
+/os/mm/mmhais/a3facl/mmpfiles
+/os/mm/mmhais/a3facl/src/audiocodec
+/os/mm/mmhais/a3facl/src/audiocontext
+/os/mm/mmhais/a3facl/src/audiocontextfactory
+/os/mm/mmhais/a3facl/src/audiodevicesink
+/os/mm/mmhais/a3facl/src/audiodevicesource
+/os/mm/mmhais/a3facl/src/audiogaincontrol
+/os/mm/mmhais/a3facl/src/audiostream
+/os/mm/mmhais/a3facl/src/buffersink
+/os/mm/mmhais/a3facl/src/buffersource
+/os/mm/mmhais/a3facl/src/shared
+/os/mm/mmhais/a3fdevsoundcustomisation/bwins
+/os/mm/mmhais/a3fdevsoundcustomisation/eabi
+/os/mm/mmhais/a3fdevsoundcustomisation/group
+/os/mm/mmhais/a3fdevsoundcustomisation/mmpfiles
+/os/mm/mmhais/a3fdevsoundcustomisation/src/devsoundadaptationinfo
+/os/mm/mmhais/a3fdevsoundcustomisation/src/devsoundadaptationinfoconsts
+/os/mm/mmhais/a3fdevsoundcustomisation/src/shared
+/os/mm/mmhais/refacladapt/bwins
+/os/mm/mmhais/refacladapt/data
+/os/mm/mmhais/refacladapt/eabi
+/os/mm/mmhais/refacladapt/group
+/os/mm/mmhais/refacladapt/mmpfiles
+/os/mm/mmhais/refacladapt/src/audiocodec
+/os/mm/mmhais/refacladapt/src/audiogaincontrol
+/os/mm/mmhais/refacladapt/src/audiosink
+/os/mm/mmhais/refacladapt/src/audiosource
+/os/mm/mmhais/refacladapt/src/audiostream
+/os/mm/mmhais/refacladapt/src/shared
+/os/mm/mmhais/refacladapt/src/tonehwdevice
+/os/mm/mmresourcemgmt/mmresctrl/bwins
+/os/mm/mmresourcemgmt/mmresctrl/eabi
+/os/mm/mmresourcemgmt/mmresctrl/group
+/os/mm/mmresourcemgmt/mmresctrl/inc
+/os/mm/mmresourcemgmt/mmresctrl/mmpfiles
+/os/mm/mmresourcemgmt/mmresctrl/src/mmrcclient
+/os/mm/mmresourcemgmt/mmresctrl/src/mmrcserver
+/os/mm/devsound/a3ftrace/bwins
+/os/mm/devsound/a3ftrace/eabi
+/os/mm/devsound/a3ftrace/group
+/os/mm/devsound/a3ftrace/inc
+/os/mm/devsound/a3ftrace/mmpfiles
+/os/mm/devsound/a3ftrace/src
+/os/mm/devsound/a3fcharacterisationtest/bwins
+/os/mm/devsound/a3fcharacterisationtest/data
+/os/mm/devsound/a3fcharacterisationtest/eabi
+/os/mm/devsound/a3fcharacterisationtest/group
+/os/mm/devsound/a3fcharacterisationtest/mmpfiles
+/os/mm/devsound/a3fcharacterisationtest/scripts
+/os/mm/devsound/a3fcharacterisationtest/src
+/mw/mmmw/mmfwtest/mmfcharacterisationvalidation/clientutils/audio/data
+/mw/mmmw/mmfwtest/mmfcharacterisationvalidation/clientutils/audio/play/bwins
+/mw/mmmw/mmfwtest/mmfcharacterisationvalidation/clientutils/audio/play/eabi
+/mw/mmmw/mmfwtest/mmfcharacterisationvalidation/clientutils/audio/play/group
+/mw/mmmw/mmfwtest/mmfcharacterisationvalidation/clientutils/audio/play/scripts
+/mw/mmmw/mmfwtest/mmfcharacterisationvalidation/clientutils/audio/play/src
+/mw/mmmw/mmfwtest/mmfcharacterisationvalidation/clientutils/audio/record/BWINS
+/mw/mmmw/mmfwtest/mmfcharacterisationvalidation/clientutils/audio/record/EABI
+/mw/mmmw/mmfwtest/mmfcharacterisationvalidation/clientutils/audio/record/group
+/mw/mmmw/mmfwtest/mmfcharacterisationvalidation/clientutils/audio/record/scripts
+/mw/mmmw/mmfwtest/mmfcharacterisationvalidation/clientutils/audio/record/src
+/mw/mmmw/mmfwtest/mmfcharacterisationvalidation/clientutils/video/play/bwins
+/mw/mmmw/mmfwtest/mmfcharacterisationvalidation/clientutils/video/play/eabi
+/mw/mmmw/mmfwtest/mmfcharacterisationvalidation/clientutils/video/play/group
+/mw/mmmw/mmfwtest/mmfcharacterisationvalidation/clientutils/video/play/scripts
+/mw/mmmw/mmfwtest/mmfcharacterisationvalidation/clientutils/video/play/src
+/mw/mmmw/mmfwtest/mmfcharacterisationvalidation/data
+/mw/mmmw/mmfwtest/mmfcharacterisationvalidation/group
+/os/mm/omxil/omxilcoreconftest/generic/inc
+/os/mm/omxil/omxilcoreconftest/generic/src/tests
+/os/mm/omxil/omxilcoreconftest/group
+/os/mm/omxil/omxilcoreconftest/inputfiles/aacdecoder
+/os/mm/omxil/omxilcoreconftest/inputfiles/common
+/os/mm/omxil/omxilcoreconftest/inputfiles/pcmrenderer
+/os/mm/omxil/omxilcoreconftest/inputfiles/test
+/os/mm/omxil/omxilcoreconftest/mmpfiles
+/os/mm/omxil/omxilcoreconftest/src
+/os/mm/mm_info/mmdocs/Characterisations
+/os/mm/mm_info/mmdocs/Functional_Specs
+/os/mm/mm_info/mmdocs/How_Tos
+/os/mm/mm_info/mmdocs/Internal Documents
+/os/mm/mm_info/mmdocs/Reports
+/os/mm/mm_info/mmdocs/Test_Design
+/os/mm/mm_info/mmdocs/Test_Specs
+/os/mm/mm_info/mmdocs/Use_Cases
+/os/mm/mm_info/mmdocs/designs
+/os/mm/imagingandcamerafws/camerafw/Include/ECam
+/os/mm/imagingandcamerafws/camerafw/framework/bwins
+/os/mm/imagingandcamerafws/camerafw/framework/eabi
+/os/mm/imagingandcamerafws/camerafw/framework/group
+/os/mm/imagingandcamerafws/camerafw/framework/mmpfiles
+/os/mm/imagingandcamerafws/camerafw/framework/source
+/os/mm/imagingandcamerafws/camerafw/framework/testapps/testcameraapp
+/os/mm/imagingandcamerafws/camerafw/framework/testapps/testcameraapps60
+/os/mm/imagingandcamerafws/camerafw/plugins/group
+/os/mm/imagingandcamerafws/camerafw/plugins/mmpfiles
+/os/mm/imagingandcamerafws/camerafw/plugins/source/stub
+/os/mm/imagingandcamerafws/camerafw/plugins/source/testcamera
+/os/mm/imagingandcamerafws/imagingfws/BitmapTransform/MmpFiles
+/os/mm/imagingandcamerafws/imagingfws/BitmapTransform/bwins
+/os/mm/imagingandcamerafws/imagingfws/BitmapTransform/eabi
+/os/mm/imagingandcamerafws/imagingfws/BitmapTransform/group
+/os/mm/imagingandcamerafws/imagingfws/BitmapTransform/inc/BitmTrans
+/os/mm/imagingandcamerafws/imagingfws/BitmapTransform/refplugin/group
+/os/mm/imagingandcamerafws/imagingfws/BitmapTransform/src/RefPlugin
+/os/mm/imagingandcamerafws/imagingfws/Documentation
+/os/mm/imagingandcamerafws/imagingfws/ExifUtility/bwins
+/os/mm/imagingandcamerafws/imagingfws/ExifUtility/eabi
+/os/mm/imagingandcamerafws/imagingfws/ExifUtility/inc
+/os/mm/imagingandcamerafws/imagingfws/ExifUtility/mmpfiles
+/os/mm/imagingandcamerafws/imagingfws/ExifUtility/src
+/os/mm/imagingandcamerafws/imagingfws/GifScaler/MmpFiles
+/os/mm/imagingandcamerafws/imagingfws/GifScaler/bwins
+/os/mm/imagingandcamerafws/imagingfws/GifScaler/eabi
+/os/mm/imagingandcamerafws/imagingfws/GifScaler/group
+/os/mm/imagingandcamerafws/imagingfws/GifScaler/inc
+/os/mm/imagingandcamerafws/imagingfws/GifScaler/src
+/os/mm/imagingandcamerafws/imagingfws/ImageDisplay/MmpFiles/plugins
+/os/mm/imagingandcamerafws/imagingfws/ImageDisplay/bwins
+/os/mm/imagingandcamerafws/imagingfws/ImageDisplay/eabi
+/os/mm/imagingandcamerafws/imagingfws/ImageDisplay/group
+/os/mm/imagingandcamerafws/imagingfws/ImageDisplay/inc/icl
+/os/mm/imagingandcamerafws/imagingfws/ImageDisplay/mng/group
+/os/mm/imagingandcamerafws/imagingfws/ImageDisplay/plugins/Exif
+/os/mm/imagingandcamerafws/imagingfws/ImageDisplay/plugins/IclWrapper
+/os/mm/imagingandcamerafws/imagingfws/ImageDisplay/plugins/Mng
+/os/mm/imagingandcamerafws/imagingfws/ImageDisplay/src/Resolver
+/os/mm/imagingandcamerafws/imagingfws/ImageProcessor/bwins
+/os/mm/imagingandcamerafws/imagingfws/ImageProcessor/eabi
+/os/mm/imagingandcamerafws/imagingfws/ImageProcessor/group
+/os/mm/imagingandcamerafws/imagingfws/ImageProcessor/inc
+/os/mm/imagingandcamerafws/imagingfws/ImageProcessor/src
+/os/mm/imagingandcamerafws/imagingfws/ImageProcessor/test/tphotoeditor/bmp
+/os/mm/imagingandcamerafws/imagingfws/ImageProcessor/test/tphotoeditor/inc
+/os/mm/imagingandcamerafws/imagingfws/ImageProcessor/test/tphotoeditor/src
+/os/mm/imagingandcamerafws/imagingfws/ImageTransform/MmpFiles
+/os/mm/imagingandcamerafws/imagingfws/ImageTransform/bwins
+/os/mm/imagingandcamerafws/imagingfws/ImageTransform/eabi
+/os/mm/imagingandcamerafws/imagingfws/ImageTransform/group
+/os/mm/imagingandcamerafws/imagingfws/ImageTransform/inc/icl
+/os/mm/imagingandcamerafws/imagingfws/ImageTransform/src/Resolver
+/os/mm/imagingandcamerafws/imagingfws/ImageTransform/src/extensions
+/os/mm/imagingandcamerafws/imagingfws/MediaClientImage/Documentation
+/os/mm/imagingandcamerafws/imagingfws/MediaClientImage/Group
+/os/mm/imagingandcamerafws/imagingfws/MediaClientImage/Include
+/os/mm/imagingandcamerafws/imagingfws/MediaClientImage/MmpFiles/Client
+/os/mm/imagingandcamerafws/imagingfws/MediaClientImage/MmpFiles/Test
+/os/mm/imagingandcamerafws/imagingfws/MediaClientImage/MmpFiles/bwins
+/os/mm/imagingandcamerafws/imagingfws/MediaClientImage/MmpFiles/eabi
+/os/mm/imagingandcamerafws/imagingfws/MediaClientImage/Source/Client/Image
+/os/mm/imagingandcamerafws/imagingfws/MediaClientImage/Source/Test/TMdaFailVid
+/os/mm/imagingandcamerafws/imagingfws/MediaClientImage/Source/Test/TMdaStress
+/os/mm/imagingandcamerafws/imagingfws/MediaClientImage/Source/Test/TMdaVid
+/os/mm/imagingandcamerafws/imagingfws/MediaClientImage/Source/Test/TVideo
+/os/mm/imagingandcamerafws/imagingfws/bwins
+/os/mm/imagingandcamerafws/imagingfws/codecs/BMPCodec
+/os/mm/imagingandcamerafws/imagingfws/codecs/GifCodec
+/os/mm/imagingandcamerafws/imagingfws/codecs/ICOCodec
+/os/mm/imagingandcamerafws/imagingfws/codecs/JPEGCodec/Exif
+/os/mm/imagingandcamerafws/imagingfws/codecs/MBMCodec
+/os/mm/imagingandcamerafws/imagingfws/codecs/OTACodec
+/os/mm/imagingandcamerafws/imagingfws/codecs/PNGCodec
+/os/mm/imagingandcamerafws/imagingfws/codecs/TIFFCodec
+/os/mm/imagingandcamerafws/imagingfws/codecs/WBMPCodec
+/os/mm/imagingandcamerafws/imagingfws/codecs/WMFCodec
+/os/mm/imagingandcamerafws/imagingfws/eabi
+/os/mm/imagingandcamerafws/imagingfws/group
+/os/mm/imagingandcamerafws/imagingfws/inc/icl
+/os/mm/imagingandcamerafws/imagingfws/panorama/bwins
+/os/mm/imagingandcamerafws/imagingfws/panorama/eabi
+/os/mm/imagingandcamerafws/imagingfws/panorama/group
+/os/mm/imagingandcamerafws/imagingfws/panorama/inc
+/os/mm/imagingandcamerafws/imagingfws/panorama/src
+/os/mm/imagingandcamerafws/imagingfws/plugins/CAPSAdaptation/CAPS/bin/armv5/urel
+/os/mm/imagingandcamerafws/imagingfws/plugins/CAPSAdaptation/CAPS/bin/winscw/udeb
+/os/mm/imagingandcamerafws/imagingfws/plugins/CAPSAdaptation/CAPS/group
+/os/mm/imagingandcamerafws/imagingfws/plugins/CAPSAdaptation/CAPS/inc
+/os/mm/imagingandcamerafws/imagingfws/plugins/CAPSAdaptation/CapsImageProcessorExtension/bwins
+/os/mm/imagingandcamerafws/imagingfws/plugins/CAPSAdaptation/CapsImageProcessorExtension/eabi
+/os/mm/imagingandcamerafws/imagingfws/plugins/CAPSAdaptation/CapsImageProcessorExtension/group
+/os/mm/imagingandcamerafws/imagingfws/plugins/CAPSAdaptation/CapsImageProcessorExtension/inc
+/os/mm/imagingandcamerafws/imagingfws/plugins/CAPSAdaptation/CapsImageProcessorExtension/src
+/os/mm/imagingandcamerafws/imagingfws/plugins/CAPSAdaptation/CapsSpmoUtility/bwins
+/os/mm/imagingandcamerafws/imagingfws/plugins/CAPSAdaptation/CapsSpmoUtility/eabi
+/os/mm/imagingandcamerafws/imagingfws/plugins/CAPSAdaptation/CapsSpmoUtility/group
+/os/mm/imagingandcamerafws/imagingfws/plugins/CAPSAdaptation/CapsSpmoUtility/inc
+/os/mm/imagingandcamerafws/imagingfws/plugins/CAPSAdaptation/CapsSpmoUtility/src
+/os/mm/imagingandcamerafws/imagingfws/plugins/CAPSAdaptation/CapsWrapper/bwins
+/os/mm/imagingandcamerafws/imagingfws/plugins/CAPSAdaptation/CapsWrapper/eabi
+/os/mm/imagingandcamerafws/imagingfws/plugins/CAPSAdaptation/CapsWrapper/group
+/os/mm/imagingandcamerafws/imagingfws/plugins/CAPSAdaptation/CapsWrapper/inc
+/os/mm/imagingandcamerafws/imagingfws/plugins/CAPSAdaptation/CapsWrapper/src
+/os/mm/imagingandcamerafws/imagingfws/plugins/CAPSAdaptation/ImageProcessorPlugin/group
+/os/mm/imagingandcamerafws/imagingfws/plugins/CAPSAdaptation/ImageProcessorPlugin/inc
+/os/mm/imagingandcamerafws/imagingfws/plugins/CAPSAdaptation/ImageProcessorPlugin/src
+/os/mm/imagingandcamerafws/imagingfws/plugins/CAPSAdaptation/ImageTransformPlugin/group
+/os/mm/imagingandcamerafws/imagingfws/plugins/CAPSAdaptation/ImageTransformPlugin/inc
+/os/mm/imagingandcamerafws/imagingfws/plugins/CAPSAdaptation/ImageTransformPlugin/src
+/os/mm/imagingandcamerafws/imagingfws/plugins/CAPSAdaptation/group
+/os/mm/imagingandcamerafws/imagingfws/plugins/CAPSAdaptation/inc
+/os/mm/imagingandcamerafws/imagingfws/plugins/CAPSAdaptation/panoramaplugin/group
+/os/mm/imagingandcamerafws/imagingfws/plugins/CAPSAdaptation/panoramaplugin/src
+/os/mm/imagingandcamerafws/imagingfws/plugins/bwins
+/os/mm/imagingandcamerafws/imagingfws/plugins/eabi
+/os/mm/imagingandcamerafws/imagingfws/plugins/group
+/os/mm/imagingandcamerafws/imagingfws/resolver
+/os/mm/imagingandcamerafws/imagingfws/src/Recognizer
+/os/mm/imagingandcamerafws/imagingfws/src/Test/TImageDisplay
+/os/mm/imagingandcamerafws/imagingfws/src/Test/TImageTran
+/os/mm/imagingandcamerafws/imagingfws/src/Test/TImageViewer
+/os/mm/imagingandcamerafws/imagingfws/src/Test/TScaladoApp/group
+/os/mm/imagingandcamerafws/imagingfws/src/Test/TScaladoApp/inc
+/os/mm/imagingandcamerafws/imagingfws/src/Test/TScaladoApp/src
+/os/mm/devsound/a3fintegrationtest/bwins
+/os/mm/devsound/a3fintegrationtest/data/aac
+/os/mm/devsound/a3fintegrationtest/eabi
+/os/mm/devsound/a3fintegrationtest/group
+/os/mm/devsound/a3fintegrationtest/mmpfiles
+/os/mm/devsound/a3fintegrationtest/scripts
+/os/mm/devsound/a3fintegrationtest/src
+/os/mm/mmtestenv/mmtestagent/group
+/os/mm/mmtestenv/mmtestagent/inc
+/os/mm/mmtestenv/mmtestagent/src/database
+/os/mm/imagingandcamerafws/imaginginttest/Codecs/Group
+/os/mm/imagingandcamerafws/imaginginttest/Codecs/PPM1
+/os/mm/imagingandcamerafws/imaginginttest/Codecs/PPM2
+/os/mm/imagingandcamerafws/imaginginttest/Codecs/PpmSamples
+/os/mm/imagingandcamerafws/imaginginttest/Codecs/inc
+/os/mm/imagingandcamerafws/imaginginttest/ImagePanorama/group
+/os/mm/imagingandcamerafws/imaginginttest/ImagePanorama/scripts
+/os/mm/imagingandcamerafws/imaginginttest/ImagePanorama/src
+/os/mm/imagingandcamerafws/imaginginttest/ImagePanorama/testdata/images
+/os/mm/imagingandcamerafws/imaginginttest/ImagePanorama/testdata/testref
+/os/mm/imagingandcamerafws/imaginginttest/ImagePanorama/xml/te_ImagePanoramaTestSuite/testexecuteservers
+/os/mm/imagingandcamerafws/imaginginttest/ImageProcessor/TestExecute/src
+/os/mm/imagingandcamerafws/imaginginttest/ImageProcessor/group
+/os/mm/imagingandcamerafws/imaginginttest/ImageProcessor/scripts
+/os/mm/imagingandcamerafws/imaginginttest/ImageProcessor/src
+/os/mm/imagingandcamerafws/imaginginttest/ImageProcessor/testdata/images
+/os/mm/imagingandcamerafws/imaginginttest/ImageProcessor/xml/te_CAPSIntegrationTestSuite/testexecuteservers
+/os/mm/imagingandcamerafws/imaginginttest/ImageTransform/group
+/os/mm/imagingandcamerafws/imaginginttest/ImageTransform/scripts
+/os/mm/imagingandcamerafws/imaginginttest/ImageTransform/src
+/os/mm/imagingandcamerafws/imaginginttest/ImageTransform/testdata/images
+/os/mm/imagingandcamerafws/imaginginttest/ImageTransform/testdata/testref
+/os/mm/imagingandcamerafws/imaginginttest/ImageTransform/xml/te_ImageTransformTestSuite/testexecuteservers
+/os/mm/imagingandcamerafws/imaginginttest/TSI_ICL_COD/COD/Data/bmp
+/os/mm/imagingandcamerafws/imaginginttest/TSI_ICL_COD/COD/Data/jpg
+/os/mm/imagingandcamerafws/imaginginttest/TSI_ICL_COD/COD/Data/png
+/os/mm/imagingandcamerafws/imaginginttest/TSI_ICL_COD/MMPFiles
+/os/mm/imagingandcamerafws/imaginginttest/TSI_ICL_COD/bwins
+/os/mm/imagingandcamerafws/imaginginttest/TSI_ICL_COD/eabi
+/os/mm/imagingandcamerafws/imaginginttest/TSI_ICL_COD/group
+/os/mm/imagingandcamerafws/imaginginttest/TSI_ICL_COD/scriptFiles
+/os/mm/imagingandcamerafws/imaginginttest/TSI_ICL_IMGDISP/TestFiles/ref
+/os/mm/imagingandcamerafws/imaginginttest/TSI_ICL_IMGDISP/bwins
+/os/mm/imagingandcamerafws/imaginginttest/TSI_ICL_IMGDISP/eabi
+/os/mm/imagingandcamerafws/imaginginttest/TSI_ICL_IMGDISP/group
+/os/mm/imagingandcamerafws/imaginginttest/TSI_ICL_IMGDISP/inc
+/os/mm/imagingandcamerafws/imaginginttest/TSI_ICL_IMGDISP/mmpfiles
+/os/mm/imagingandcamerafws/imaginginttest/TSI_ICL_IMGDISP/scripts
+/os/mm/imagingandcamerafws/imaginginttest/TSI_ICL_IMGDISP/src
+/os/mm/imagingandcamerafws/imaginginttest/TestJPEGIAgent/group
+/os/mm/imagingandcamerafws/imaginginttest/TestJPEGIAgent/src
+/os/mm/imagingandcamerafws/imaginginttest/bwins
+/os/mm/imagingandcamerafws/imaginginttest/data/refimages/jpeg
+/os/mm/imagingandcamerafws/imaginginttest/data/refimages/mbm
+/os/mm/imagingandcamerafws/imaginginttest/data/testimages/jpeg
+/os/mm/imagingandcamerafws/imaginginttest/data/testimages/mbm
+/os/mm/imagingandcamerafws/imaginginttest/eabi
+/os/mm/imagingandcamerafws/imaginginttest/group
+/os/mm/imagingandcamerafws/imaginginttest/imagedecoder/bwins
+/os/mm/imagingandcamerafws/imaginginttest/imagedecoder/eabi
+/os/mm/imagingandcamerafws/imaginginttest/imagedecoder/group
+/os/mm/imagingandcamerafws/imaginginttest/imagedecoder/scripts
+/os/mm/imagingandcamerafws/imaginginttest/imagedecoder/src
+/os/mm/imagingandcamerafws/imaginginttest/imageencoder/bwins
+/os/mm/imagingandcamerafws/imaginginttest/imageencoder/eabi
+/os/mm/imagingandcamerafws/imaginginttest/imageencoder/group
+/os/mm/imagingandcamerafws/imaginginttest/imageencoder/scripts
+/os/mm/imagingandcamerafws/imaginginttest/imageencoder/src
+/os/mm/imagingandcamerafws/imaginginttest/inc
+/os/mm/imagingandcamerafws/imaginginttest/mmpfiles/bwins
+/os/mm/imagingandcamerafws/imaginginttest/mmpfiles/eabi
+/os/mm/imagingandcamerafws/imaginginttest/scriptfiles
+/os/mm/imagingandcamerafws/imaginginttest/src/Data
+/os/mm/imagingandcamerafws/imaginginttest/te_tsi_icl_cod_5/group
+/os/mm/imagingandcamerafws/imaginginttest/te_tsi_icl_cod_5/scripts
+/os/mm/imagingandcamerafws/imaginginttest/te_tsi_icl_cod_5/src
+/os/mm/imagingandcamerafws/imaginginttest/te_tsi_icl_cod_5/testdata/bmp/ref
+/os/mm/imagingandcamerafws/imaginginttest/te_tsi_icl_cod_5/testdata/gif/ref
+/os/mm/imagingandcamerafws/imaginginttest/te_tsi_icl_cod_5/testdata/ico/ref
+/os/mm/imagingandcamerafws/imaginginttest/te_tsi_icl_cod_5/testdata/jpeg/ref
+/os/mm/imagingandcamerafws/imaginginttest/te_tsi_icl_cod_5/testdata/mbm
+/os/mm/imagingandcamerafws/imaginginttest/te_tsi_icl_cod_5/testdata/mng/ref
+/os/mm/imagingandcamerafws/imaginginttest/te_tsi_icl_cod_5/testdata/ota/ref
+/os/mm/imagingandcamerafws/imaginginttest/te_tsi_icl_cod_5/testdata/png/ref
+/os/mm/imagingandcamerafws/imaginginttest/te_tsi_icl_cod_5/testdata/tif/ref
+/os/mm/imagingandcamerafws/imaginginttest/te_tsi_icl_cod_5/testdata/wbmp/ref
+/os/mm/imagingandcamerafws/imaginginttest/te_tsi_icl_cod_5/testdata/wmf/ref
+/os/mm/imagingandcamerafws/imaginginttest/te_tsi_icl_cod_5/xml/te_tsi_icl_cod_5Suite/testexecuteservers
+/os/mm/imagingandcamerafws/imaginginttest/tsi_icl_btrans_01/bwins
+/os/mm/imagingandcamerafws/imaginginttest/tsi_icl_btrans_01/eabi
+/os/mm/imagingandcamerafws/imaginginttest/tsi_icl_btrans_01/group
+/os/mm/imagingandcamerafws/imaginginttest/tsi_icl_btrans_01/mmpfiles
+/os/mm/imagingandcamerafws/imaginginttest/tsi_icl_btrans_01/scripts
+/os/mm/imagingandcamerafws/imaginginttest/tsi_icl_btrans_01/src
+/mw/mmmw/mmfwtest/mmfintegrationtest/A2DP
+/mw/mmmw/mmfwtest/mmfintegrationtest/ACLNT/CapTestServer/group
+/mw/mmmw/mmfwtest/mmfintegrationtest/ACLNT/CapTestServer/src
+/mw/mmmw/mmfwtest/mmfintegrationtest/ACLNT/Data
+/mw/mmmw/mmfwtest/mmfintegrationtest/ACLNT/UseOldCodecAudioController
+/mw/mmmw/mmfwtest/mmfintegrationtest/Ctlfrm/TSI_MMFController
+/mw/mmmw/mmfwtest/mmfintegrationtest/Ctlfrm/TSI_MMFController2
+/mw/mmmw/mmfwtest/mmfintegrationtest/Ctlfrm/TSI_MMFDataSink
+/mw/mmmw/mmfwtest/mmfintegrationtest/Ctlfrm/TSI_MMFDataSource
+/mw/mmmw/mmfwtest/mmfintegrationtest/Ctlfrm/TSI_MMFFormat
+/mw/mmmw/mmfwtest/mmfintegrationtest/Ctlfrm/TSI_MMFRECOG
+/mw/mmmw/mmfwtest/mmfintegrationtest/Ctlfrm/data
+/mw/mmmw/mmfwtest/mmfintegrationtest/Ctlfrm/tsi_mmfcustomcommands
+/mw/mmmw/mmfwtest/mmfintegrationtest/DSCapTestServer
+/mw/mmmw/mmfwtest/mmfintegrationtest/SDevSound/MmfDevSoundProxyCopy
+/mw/mmmw/mmfwtest/mmfintegrationtest/SDevSound/SDSCapTestServer/group
+/mw/mmmw/mmfwtest/mmfintegrationtest/SDevSound/SDSCapTestServer/src
+/mw/mmmw/mmfwtest/mmfintegrationtest/SDevSound/data
+/mw/mmmw/mmfwtest/mmfintegrationtest/SDevSound/inc
+/mw/mmmw/mmfwtest/mmfintegrationtest/SDevSound/src
+/mw/mmmw/mmfwtest/mmfintegrationtest/SecureDRM/data
+/mw/mmmw/mmfwtest/mmfintegrationtest/bwins
+/mw/mmmw/mmfwtest/mmfintegrationtest/devsound/bwins
+/mw/mmmw/mmfwtest/mmfintegrationtest/devsound/data
+/mw/mmmw/mmfwtest/mmfintegrationtest/devsound/eabi
+/mw/mmmw/mmfwtest/mmfintegrationtest/devsound/group
+/mw/mmmw/mmfwtest/mmfintegrationtest/devsound/mmpfiles
+/mw/mmmw/mmfwtest/mmfintegrationtest/devsound/scripts
+/mw/mmmw/mmfwtest/mmfintegrationtest/devsound/src
+/mw/mmmw/mmfwtest/mmfintegrationtest/devvideo/bwins
+/mw/mmmw/mmfwtest/mmfintegrationtest/devvideo/data
+/mw/mmmw/mmfwtest/mmfintegrationtest/devvideo/eabi
+/mw/mmmw/mmfwtest/mmfintegrationtest/devvideo/group
+/mw/mmmw/mmfwtest/mmfintegrationtest/devvideo/mmpfiles
+/mw/mmmw/mmfwtest/mmfintegrationtest/devvideo/scripts
+/mw/mmmw/mmfwtest/mmfintegrationtest/devvideo/src
+/mw/mmmw/mmfwtest/mmfintegrationtest/eabi
+/mw/mmmw/mmfwtest/mmfintegrationtest/group
+/mw/mmmw/mmfwtest/mmfintegrationtest/mmpfiles/bwins
+/mw/mmmw/mmfwtest/mmfintegrationtest/mmpfiles/eabi
+/mw/mmmw/mmfwtest/mmfintegrationtest/scriptFiles
+/mw/mmmw/mmfwtest/mmfintegrationtest/vclnt/data
+/mw/mmmw/mmfwtest/mmfintegrationtest/vclntavi/bctest/aviplaycontroller/group
+/mw/mmmw/mmfwtest/mmfintegrationtest/vclntavi/bctest/aviplaycontroller/inc
+/mw/mmmw/mmfwtest/mmfintegrationtest/vclntavi/bctest/aviplaycontroller/src
+/mw/mmmw/mmfwtest/mmfintegrationtest/vclntavi/bwins
+/mw/mmmw/mmfwtest/mmfintegrationtest/vclntavi/data
+/mw/mmmw/mmfwtest/mmfintegrationtest/vclntavi/eabi
+/mw/mmmw/mmfwtest/mmfintegrationtest/vclntavi/group
+/mw/mmmw/mmfwtest/mmfintegrationtest/vclntavi/mmpfiles
+/mw/mmmw/mmfwtest/mmfintegrationtest/vclntavi/scripts
+/mw/mmmw/mmfwtest/mmfintegrationtest/vclntavi/src
+/mw/mmmw/mmmiddlewarefws/mufintegrationtest/bwins
+/mw/mmmw/mmmiddlewarefws/mufintegrationtest/data
+/mw/mmmw/mmmiddlewarefws/mufintegrationtest/eabi
+/mw/mmmw/mmmiddlewarefws/mufintegrationtest/group
+/mw/mmmw/mmmiddlewarefws/mufintegrationtest/plugins
+/mw/mmmw/mmmiddlewarefws/mufintegrationtest/scripts
+/mw/mmmw/mmmiddlewarefws/mufintegrationtest/src
+/mw/mmmw/mmvalidationsuite/mvsintegrationtest/agents
+/mw/mmmw/mmvalidationsuite/mvsintegrationtest/bwins
+/mw/mmmw/mmvalidationsuite/mvsintegrationtest/data
+/mw/mmmw/mmvalidationsuite/mvsintegrationtest/eabi
+/mw/mmmw/mmvalidationsuite/mvsintegrationtest/group
+/mw/mmmw/mmvalidationsuite/mvsintegrationtest/mmpfiles
+/mw/mmmw/mmvalidationsuite/mvsintegrationtest/scripts
+/mw/mmmw/mmmiddlewarefws/broadcastradiotransmitterintegrationtest/group
+/mw/mmmw/mmmiddlewarefws/broadcastradiotransmitterintegrationtest/mmpfiles
+/mw/mmmw/mmmiddlewarefws/broadcastradiotransmitterintegrationtest/scripts
+/mw/mmmw/mmmiddlewarefws/broadcastradiotransmitterintegrationtest/src
+/os/mm/mmdevicefw/mdf/bwins
+/os/mm/mmdevicefw/mdf/eabi
+/os/mm/mmdevicefw/mdf/group
+/os/mm/mmdevicefw/mdf/inc/codecapi
+/os/mm/mmdevicefw/mdf/inc/openmax
+/os/mm/mmdevicefw/mdf/inc/video
+/os/mm/mmdevicefw/mdf/mmpfiles/audio
+/os/mm/mmdevicefw/mdf/mmpfiles/bwins
+/os/mm/mmdevicefw/mdf/mmpfiles/eabi
+/os/mm/mmdevicefw/mdf/mmpfiles/video
+/os/mm/mmdevicefw/mdf/src/audio/AudioDevice
+/os/mm/mmdevicefw/mdf/src/audio/HwDeviceAdapter
+/os/mm/mmdevicefw/mdf/src/audio/Vorbis/PU/decoder
+/os/mm/mmdevicefw/mdf/src/audio/Vorbis/PU/encoder
+/os/mm/mmdevicefw/mdf/src/audio/mdasoundadapter
+/os/mm/mmdevicefw/mdf/src/codecapi
+/os/mm/mmdevicefw/mdf/src/openmax
+/os/mm/mmdevicefw/mdf/src/video/decoderadapter
+/os/mm/mmdevicefw/mdf/src/video/encoderadapter
+/os/mm/mmdevicefw/mdf/src/video/hwdevicevideoutils
+/os/mm/omxil/mmilapi/ilif/inc
+/os/mm/omxil/mmilapi/refomxil/bwins
+/os/mm/omxil/mmilapi/refomxil/eabi
+/os/mm/omxil/mmilapi/refomxil/group
+/os/mm/omxil/mmilapi/refomxil/inc
+/os/mm/omxil/mmilapi/refomxil/mmpfiles
+/os/mm/omxil/mmilapi/refomxil/src/a3ffourccconvertorplugin
+/os/mm/omxil/mmilapi/refomxil/src/omxilaacdechwdevice
+/os/mm/omxil/mmilapi/refomxil/src/omxilaacpcmilif
+/os/mm/omxil/mmilapi/refomxil/src/omxilgenericilif
+/os/mm/mmresourcemgmt/decisionfw/bwins
+/os/mm/mmresourcemgmt/decisionfw/eabi
+/os/mm/mmresourcemgmt/decisionfw/group
+/os/mm/mmresourcemgmt/decisionfw/inc
+/os/mm/mmresourcemgmt/decisionfw/src
+/os/mm/mmresourcemgmt/decisionfw/test/adaptation/adaptationcontextmanagerentry/bwins
+/os/mm/mmresourcemgmt/decisionfw/test/adaptation/adaptationcontextmanagerentry/eabi
+/os/mm/mmresourcemgmt/decisionfw/test/adaptation/adaptationcontextmanagerentry/group
+/os/mm/mmresourcemgmt/decisionfw/test/adaptation/adaptationcontextmanagerentry/inc
+/os/mm/mmresourcemgmt/decisionfw/test/adaptation/adaptationcontextmanagerentry/src
+/os/mm/mmresourcemgmt/decisionfw/test/adaptation/adaptationmetacontext/bwins
+/os/mm/mmresourcemgmt/decisionfw/test/adaptation/adaptationmetacontext/eabi
+/os/mm/mmresourcemgmt/decisionfw/test/adaptation/adaptationmetacontext/group
+/os/mm/mmresourcemgmt/decisionfw/test/adaptation/adaptationmetacontext/inc
+/os/mm/mmresourcemgmt/decisionfw/test/adaptation/adaptationmetacontext/src
+/os/mm/mmresourcemgmt/decisionfw/test/adaptation/adaptationmmrcmessages/bwins
+/os/mm/mmresourcemgmt/decisionfw/test/adaptation/adaptationmmrcmessages/eabi
+/os/mm/mmresourcemgmt/decisionfw/test/adaptation/adaptationmmrcmessages/group
+/os/mm/mmresourcemgmt/decisionfw/test/adaptation/adaptationmmrcmessages/inc
+/os/mm/mmresourcemgmt/decisionfw/test/adaptation/adaptationmmrcmessages/src
+/os/mm/mmresourcemgmt/decisionfw/test/adaptation/group
+/os/mm/mmresourcemgmt/decisionfw/test/adaptation/plugins/adaptationcontextmanager/group
+/os/mm/mmresourcemgmt/decisionfw/test/adaptation/plugins/adaptationcontextmanager/inc
+/os/mm/mmresourcemgmt/decisionfw/test/adaptation/plugins/adaptationcontextmanager/src
+/os/mm/mmresourcemgmt/decisionfw/test/adaptation/plugins/adaptationfactory/group
+/os/mm/mmresourcemgmt/decisionfw/test/adaptation/plugins/adaptationfactory/inc
+/os/mm/mmresourcemgmt/decisionfw/test/adaptation/plugins/adaptationfactory/src
+/os/mm/mmresourcemgmt/decisionfw/test/adaptation/plugins/adaptationprioritymanager/group
+/os/mm/mmresourcemgmt/decisionfw/test/adaptation/plugins/adaptationprioritymanager/inc
+/os/mm/mmresourcemgmt/decisionfw/test/adaptation/plugins/adaptationprioritymanager/src
+/os/mm/mmresourcemgmt/decisionfw/test/adaptation/plugins/adaptationsequencebuilderfactory/group
+/os/mm/mmresourcemgmt/decisionfw/test/adaptation/plugins/adaptationsequencebuilderfactory/inc
+/os/mm/mmresourcemgmt/decisionfw/test/adaptation/plugins/adaptationsequencebuilderfactory/src
+/os/mm/mmresourcemgmt/decisionfw/test/adaptation/plugins/adaptationsystemstatemanager/group
+/os/mm/mmresourcemgmt/decisionfw/test/adaptation/plugins/adaptationsystemstatemanager/inc
+/os/mm/mmresourcemgmt/decisionfw/test/adaptation/plugins/adaptationsystemstatemanager/src
+/os/mm/mmresourcemgmt/decisionfw/test/adaptation/plugins/group
+/os/mm/mmresourcemgmt/decisionfw/test/audiobase/group
+/os/mm/mmresourcemgmt/decisionfw/test/audiobase/inc
+/os/mm/mmresourcemgmt/decisionfw/test/group
+/os/mm/mmresourcemgmt/decisionfw/test/inc
+/os/mm/mmresourcemgmt/decisionfw/test/src
+/os/unref/orphan/comgen/multimedia/mm3plane/unittest/mmrcfw/component/group
+/os/unref/orphan/comgen/multimedia/mm3plane/unittest/mmrcfw/component/inc
+/os/unref/orphan/comgen/multimedia/mm3plane/unittest/mmrcfw/component/scripts
+/os/unref/orphan/comgen/multimedia/mm3plane/unittest/mmrcfw/component/src
+/mw/mmmw/mmmiddlewarefws/mmutilitylib/bwins
+/mw/mmmw/mmmiddlewarefws/mmutilitylib/eabi
+/mw/mmmw/mmmiddlewarefws/mmutilitylib/group
+/mw/mmmw/mmmiddlewarefws/mmutilitylib/inc/mm
+/mw/mmmw/mmmiddlewarefws/mmutilitylib/mmpfiles
+/mw/mmmw/mmmiddlewarefws/mmutilitylib/src
+/mw/mmmw/mmmiddlewarefws/mmfw/ASR/bwins
+/mw/mmmw/mmmiddlewarefws/mmfw/ASR/eabi
+/mw/mmmw/mmmiddlewarefws/mmfw/ASR/group
+/mw/mmmw/mmmiddlewarefws/mmfw/ASR/inc/mmf/common
+/mw/mmmw/mmmiddlewarefws/mmfw/ASR/mmpfiles
+/mw/mmmw/mmmiddlewarefws/mmfw/ASR/src
+/mw/mmmw/mmmiddlewarefws/mmfw/Codecs/Group
+/mw/mmmw/mmmiddlewarefws/mmfw/Codecs/Inc/Gsm610CodecCommon
+/mw/mmmw/mmmiddlewarefws/mmfw/Codecs/Inc/MMFCodecCommon
+/mw/mmmw/mmmiddlewarefws/mmfw/Codecs/MmpFiles
+/mw/mmmw/mmmiddlewarefws/mmfw/Codecs/Src/Gsm610CodecCommon
+/mw/mmmw/mmmiddlewarefws/mmfw/Codecs/Src/MMFCodecCommon
+/mw/mmmw/mmmiddlewarefws/mmfw/Codecs/bwins
+/mw/mmmw/mmmiddlewarefws/mmfw/Codecs/eabi
+/mw/mmmw/mmmiddlewarefws/mmfw/DevASR/bwins
+/mw/mmmw/mmmiddlewarefws/mmfw/DevASR/group
+/mw/mmmw/mmmiddlewarefws/mmfw/DevASR/inc/mmf/DevASR
+/mw/mmmw/mmmiddlewarefws/mmfw/DevVideo/group
+/mw/mmmw/mmmiddlewarefws/mmfw/DevVideo/inc
+/mw/mmmw/mmmiddlewarefws/mmfw/DevVideo/mmpfiles/DevVideo
+/mw/mmmw/mmmiddlewarefws/mmfw/DevVideo/mmpfiles/bwins
+/mw/mmmw/mmmiddlewarefws/mmfw/DevVideo/mmpfiles/eabi
+/mw/mmmw/mmmiddlewarefws/mmfw/DevVideo/src/DevVideo
+/mw/mmmw/mmmiddlewarefws/mmfw/Effect/MMPFiles
+/mw/mmmw/mmmiddlewarefws/mmfw/Effect/bwins
+/mw/mmmw/mmmiddlewarefws/mmfw/Effect/eabi
+/mw/mmmw/mmmiddlewarefws/mmfw/Effect/group
+/mw/mmmw/mmmiddlewarefws/mmfw/Effect/inc/mmf/common
+/mw/mmmw/mmmiddlewarefws/mmfw/Effect/inc/mmf/plugin
+/mw/mmmw/mmmiddlewarefws/mmfw/Effect/src
+/mw/mmmw/mmmiddlewarefws/mmfw/MIDI/MMPFiles/Midi
+/mw/mmmw/mmmiddlewarefws/mmfw/MIDI/MMPFiles/bwins
+/mw/mmmw/mmmiddlewarefws/mmfw/MIDI/MMPFiles/eabi
+/mw/mmmw/mmmiddlewarefws/mmfw/MIDI/group
+/mw/mmmw/mmmiddlewarefws/mmfw/MIDI/inc
+/mw/mmmw/mmmiddlewarefws/mmfw/MIDI/src
+/mw/mmmw/mmmiddlewarefws/mmfw/MMPFiles/ControllerFramework
+/mw/mmmw/mmmiddlewarefws/mmfw/MMPFiles/Plugin
+/mw/mmmw/mmmiddlewarefws/mmfw/MMPFiles/Recognizer
+/mw/mmmw/mmmiddlewarefws/mmfw/MMPFiles/bwins
+/mw/mmmw/mmmiddlewarefws/mmfw/MMPFiles/client
+/mw/mmmw/mmmiddlewarefws/mmfw/MMPFiles/eabi
+/mw/mmmw/mmmiddlewarefws/mmfw/MMPFiles/plugin_common
+/mw/mmmw/mmmiddlewarefws/mmfw/MMPFiles/server
+/mw/mmmw/mmmiddlewarefws/mmfw/Recogniser/bwins
+/mw/mmmw/mmmiddlewarefws/mmfw/Recogniser/eabi
+/mw/mmmw/mmmiddlewarefws/mmfw/Recogniser/mmpfiles
+/mw/mmmw/mmmiddlewarefws/mmfw/Recogniser/src
+/mw/mmmw/mmmiddlewarefws/mmfw/SecureDRM/MMPFiles/Client
+/mw/mmmw/mmmiddlewarefws/mmfw/SecureDRM/MMPFiles/Server
+/mw/mmmw/mmmiddlewarefws/mmfw/SecureDRM/MMPFiles/bwins
+/mw/mmmw/mmmiddlewarefws/mmfw/SecureDRM/MMPFiles/eabi
+/mw/mmmw/mmmiddlewarefws/mmfw/SecureDRM/inc/Client
+/mw/mmmw/mmmiddlewarefws/mmfw/SecureDRM/src/Client
+/mw/mmmw/mmmiddlewarefws/mmfw/SecureDRM/src/Server
+/mw/mmmw/mmmiddlewarefws/mmfw/SoundDev/MMPFiles/Plugin
+/mw/mmmw/mmmiddlewarefws/mmfw/SoundDev/MMPFiles/SoundDevice
+/mw/mmmw/mmmiddlewarefws/mmfw/SoundDev/MMPFiles/api/bwins
+/mw/mmmw/mmmiddlewarefws/mmfw/SoundDev/MMPFiles/api/eabi
+/mw/mmmw/mmmiddlewarefws/mmfw/SoundDev/MMPFiles/bwins
+/mw/mmmw/mmmiddlewarefws/mmfw/SoundDev/MMPFiles/eabi
+/mw/mmmw/mmmiddlewarefws/mmfw/SoundDev/MMPFiles/server
+/mw/mmmw/mmmiddlewarefws/mmfw/SoundDev/MMPFiles/swcodecwrapper
+/mw/mmmw/mmmiddlewarefws/mmfw/SoundDev/PlatSec/MMPFiles/Client
+/mw/mmmw/mmmiddlewarefws/mmfw/SoundDev/PlatSec/MMPFiles/Server
+/mw/mmmw/mmmiddlewarefws/mmfw/SoundDev/PlatSec/MMPFiles/Sounddevice
+/mw/mmmw/mmmiddlewarefws/mmfw/SoundDev/PlatSec/MMPFiles/bwins
+/mw/mmmw/mmmiddlewarefws/mmfw/SoundDev/PlatSec/MMPFiles/eabi
+/mw/mmmw/mmmiddlewarefws/mmfw/SoundDev/PlatSec/inc
+/mw/mmmw/mmmiddlewarefws/mmfw/SoundDev/PlatSec/src/Client
+/mw/mmmw/mmmiddlewarefws/mmfw/SoundDev/PlatSec/src/Server/AudioServer
+/mw/mmmw/mmmiddlewarefws/mmfw/SoundDev/PlatSec/src/Server/Policy
+/mw/mmmw/mmmiddlewarefws/mmfw/SoundDev/PlatSec/src/SoundDevice/CustomInterfaces
+/mw/mmmw/mmmiddlewarefws/mmfw/SoundDev/group_api
+/mw/mmmw/mmmiddlewarefws/mmfw/SoundDev/group_hwdev
+/mw/mmmw/mmmiddlewarefws/mmfw/SoundDev/group_pluginsupport
+/mw/mmmw/mmmiddlewarefws/mmfw/SoundDev/group_refplugin
+/mw/mmmw/mmmiddlewarefws/mmfw/SoundDev/inc/HwDevice
+/mw/mmmw/mmmiddlewarefws/mmfw/SoundDev/inc/Mmf/Server
+/mw/mmmw/mmmiddlewarefws/mmfw/SoundDev/inc/Plugin
+/mw/mmmw/mmmiddlewarefws/mmfw/SoundDev/inc/SwCodecWrapper
+/mw/mmmw/mmmiddlewarefws/mmfw/SoundDev/src/Plugin/Codec/SBCEncoder
+/mw/mmmw/mmmiddlewarefws/mmfw/SoundDev/src/Plugin/Controller/Audio
+/mw/mmmw/mmmiddlewarefws/mmfw/SoundDev/src/Plugin/HwDevice/Audio/Gsm610
+/mw/mmmw/mmmiddlewarefws/mmfw/SoundDev/src/SoundDevice
+/mw/mmmw/mmmiddlewarefws/mmfw/SoundDev/src/server/Policy
+/mw/mmmw/mmmiddlewarefws/mmfw/SoundDev/src/swcodecwrapper
+/mw/mmmw/mmmiddlewarefws/mmfw/group
+/mw/mmmw/mmmiddlewarefws/mmfw/group_plugin
+/mw/mmmw/mmmiddlewarefws/mmfw/inc/Mda/Client
+/mw/mmmw/mmmiddlewarefws/mmfw/inc/Mda/Common
+/mw/mmmw/mmmiddlewarefws/mmfw/inc/controllers
+/mw/mmmw/mmmiddlewarefws/mmfw/inc/mmf/ControllerFramework
+/mw/mmmw/mmmiddlewarefws/mmfw/inc/mmf/PLUGIN
+/mw/mmmw/mmmiddlewarefws/mmfw/inc/mmf/common
+/mw/mmmw/mmmiddlewarefws/mmfw/inc/mmf/server
+/mw/mmmw/mmmiddlewarefws/mmfw/sounddevbt/MMPFiles/A2dpBlueTooth
+/mw/mmmw/mmmiddlewarefws/mmfw/sounddevbt/MMPFiles/Plugin
+/mw/mmmw/mmmiddlewarefws/mmfw/sounddevbt/MMPFiles/RoutingSoundDevice
+/mw/mmmw/mmmiddlewarefws/mmfw/sounddevbt/MMPFiles/bwins
+/mw/mmmw/mmmiddlewarefws/mmfw/sounddevbt/MMPFiles/eabi
+/mw/mmmw/mmmiddlewarefws/mmfw/sounddevbt/MMPFiles/server
+/mw/mmmw/mmmiddlewarefws/mmfw/sounddevbt/MMPFiles/swcodecwrapper
+/mw/mmmw/mmmiddlewarefws/mmfw/sounddevbt/PlatSec/MMPFiles/Client
+/mw/mmmw/mmmiddlewarefws/mmfw/sounddevbt/PlatSec/MMPFiles/Server
+/mw/mmmw/mmmiddlewarefws/mmfw/sounddevbt/PlatSec/MMPFiles/SoundDevice
+/mw/mmmw/mmmiddlewarefws/mmfw/sounddevbt/PlatSec/MMPFiles/bwins
+/mw/mmmw/mmmiddlewarefws/mmfw/sounddevbt/PlatSec/MMPFiles/eabi
+/mw/mmmw/mmmiddlewarefws/mmfw/sounddevbt/PlatSec/src/Client
+/mw/mmmw/mmmiddlewarefws/mmfw/sounddevbt/PlatSec/src/Server/AudioServer
+/mw/mmmw/mmmiddlewarefws/mmfw/sounddevbt/PlatSec/src/Server/Policy
+/mw/mmmw/mmmiddlewarefws/mmfw/sounddevbt/PlatSec/src/SoundDevice
+/mw/mmmw/mmmiddlewarefws/mmfw/sounddevbt/group
+/mw/mmmw/mmmiddlewarefws/mmfw/sounddevbt/inc/HwDevice
+/mw/mmmw/mmmiddlewarefws/mmfw/sounddevbt/inc/Plugin
+/mw/mmmw/mmmiddlewarefws/mmfw/sounddevbt/inc/SwCodecWrapper
+/mw/mmmw/mmmiddlewarefws/mmfw/sounddevbt/inc/common
+/mw/mmmw/mmmiddlewarefws/mmfw/sounddevbt/src/A2dpBlueTooth/Data
+/mw/mmmw/mmmiddlewarefws/mmfw/sounddevbt/src/A2dpBlueTooth/client
+/mw/mmmw/mmmiddlewarefws/mmfw/sounddevbt/src/A2dpBlueTooth/headsetaudioif
+/mw/mmmw/mmmiddlewarefws/mmfw/sounddevbt/src/A2dpBlueTooth/server
+/mw/mmmw/mmmiddlewarefws/mmfw/sounddevbt/src/Plugin/Codec/SBCEncoder
+/mw/mmmw/mmmiddlewarefws/mmfw/sounddevbt/src/Plugin/HwDevice/Audio/Gsm610
+/mw/mmmw/mmmiddlewarefws/mmfw/sounddevbt/src/RoutingSoundDevice
+/mw/mmmw/mmmiddlewarefws/mmfw/sounddevbt/src/SoundDevice
+/mw/mmmw/mmmiddlewarefws/mmfw/sounddevbt/src/server/Policy
+/mw/mmmw/mmmiddlewarefws/mmfw/sounddevbt/src/swcodecwrapper
+/mw/mmmw/mmmiddlewarefws/mmfw/src/Client/Audio
+/mw/mmmw/mmmiddlewarefws/mmfw/src/Client/Utility
+/mw/mmmw/mmmiddlewarefws/mmfw/src/Client/Video
+/mw/mmmw/mmmiddlewarefws/mmfw/src/Client/generic
+/mw/mmmw/mmmiddlewarefws/mmfw/src/ControllerFramework
+/mw/mmmw/mmmiddlewarefws/mmfw/src/Plugin/AudioInput
+/mw/mmmw/mmmiddlewarefws/mmfw/src/Plugin/AudioOutput
+/mw/mmmw/mmmiddlewarefws/mmfw/src/Plugin/Codec/audio/GSM610
+/mw/mmmw/mmmiddlewarefws/mmfw/src/Plugin/Controller/Audio/OggVorbis/OggPlayController
+/mw/mmmw/mmmiddlewarefws/mmfw/src/Plugin/Controller/Audio/OggVorbis/OggRecordController
+/mw/mmmw/mmmiddlewarefws/mmfw/src/Plugin/Controller/Audio/OggVorbis/oggutils/bwins
+/mw/mmmw/mmmiddlewarefws/mmfw/src/Plugin/Controller/Audio/OggVorbis/oggutils/eabi
+/mw/mmmw/mmmiddlewarefws/mmfw/src/Plugin/Controller/Audio/OggVorbis/oggutils/group
+/mw/mmmw/mmmiddlewarefws/mmfw/src/Plugin/Controller/Audio/OggVorbis/oggutils/inc
+/mw/mmmw/mmmiddlewarefws/mmfw/src/Plugin/Controller/Video/AviPlayController/devsubtitle
+/mw/mmmw/mmmiddlewarefws/mmfw/src/Plugin/Controller/Video/AviPlayController/srtdecoder
+/mw/mmmw/mmmiddlewarefws/mmfw/src/Plugin/Controller/Video/AviRecordController
+/mw/mmmw/mmmiddlewarefws/mmfw/src/Plugin/Format/FormatUtils
+/mw/mmmw/mmmiddlewarefws/mmfw/src/Plugin/Format/MmfAUFormat
+/mw/mmmw/mmmiddlewarefws/mmfw/src/Plugin/Format/MmfRAWFormat
+/mw/mmmw/mmmiddlewarefws/mmfw/src/Plugin/Format/MmfWAVFormat
+/mw/mmmw/mmmiddlewarefws/mmfw/src/Plugin/StdSourceAndSink
+/mw/mmmw/mmmiddlewarefws/mmfw/src/Plugin/subtitle/common
+/mw/mmmw/mmmiddlewarefws/mmfw/src/Plugin/subtitle/subtitlegraphic
+/mw/mmmw/mmmiddlewarefws/mmfw/src/Plugin/subtitle/subtitlegraphicdrawer
+/mw/mmmw/mmmiddlewarefws/mmfw/src/Recognizer
+/mw/mmmw/mmmiddlewarefws/mmfw/src/server/BaseClasses
+/mw/mmmw/mmmiddlewarefws/mmfw/videorenderer/bwins
+/mw/mmmw/mmmiddlewarefws/mmfw/videorenderer/eabi
+/mw/mmmw/mmmiddlewarefws/mmfw/videorenderer/group
+/mw/mmmw/mmmiddlewarefws/mmfw/videorenderer/inc
+/mw/mmmw/mmmiddlewarefws/mmfw/videorenderer/mmpfiles
+/mw/mmmw/mmmiddlewarefws/mmfw/videorenderer/src
+/os/mm/mmhais/dvbhreceiverhai/hai/dvbh/bwins
+/os/mm/mmhais/dvbhreceiverhai/hai/dvbh/eabi
+/os/mm/mmhais/dvbhreceiverhai/hai/dvbh/group
+/os/mm/mmhais/dvbhreceiverhai/hai/dvbh/teststubs
+/os/mm/mmhais/dvbhreceiverhai/inc/mobiletv/hai/dvbh
+/mw/mmmw/mmmiddlewarefws/metadatautilityfw/bwins
+/mw/mmmw/mmmiddlewarefws/metadatautilityfw/eabi
+/mw/mmmw/mmmiddlewarefws/metadatautilityfw/group
+/mw/mmmw/mmmiddlewarefws/metadatautilityfw/inc
+/mw/mmmw/mmmiddlewarefws/metadatautilityfw/mmpfiles
+/mw/mmmw/mmmiddlewarefws/metadatautilityfw/src
+/mw/mmmw/mmmiddlewareplugins/metadataparserplugin/group
+/mw/mmmw/mmmiddlewareplugins/metadataparserplugin/mmpfiles/3gp
+/mw/mmmw/mmmiddlewareplugins/metadataparserplugin/mmpfiles/id3v2
+/mw/mmmw/mmmiddlewareplugins/metadataparserplugin/mmpfiles/jpeg
+/mw/mmmw/mmmiddlewareplugins/metadataparserplugin/src/audio/id3v2
+/mw/mmmw/mmmiddlewareplugins/metadataparserplugin/src/image/jpeg
+/mw/mmmw/mmmiddlewareplugins/metadataparserplugin/src/video/3gp
+/mw/mmmw/mmvalidationsuite/mmvalidationsuiteagents/bwins
+/mw/mmmw/mmvalidationsuite/mmvalidationsuiteagents/eabi
+/mw/mmmw/mmvalidationsuite/mmvalidationsuiteagents/group
+/mw/mmmw/mmvalidationsuite/mmvalidationsuiteagents/inc
+/mw/mmmw/mmvalidationsuite/mmvalidationsuiteagents/src
+/mw/mmmw/mmvalidationsuite/mmvalidationsuiteapp/bmp
+/mw/mmmw/mmvalidationsuite/mmvalidationsuiteapp/group
+/mw/mmmw/mmvalidationsuite/mmvalidationsuiteapp/inc
+/mw/mmmw/mmvalidationsuite/mmvalidationsuiteapp/src
+/os/mm/omxil/openmax/il/group
+/os/mm/omxil/omxilapi/group
+/os/mm/omxil/omxilapi/v1_x
+/os/mm/omxil/omxilrefcomps/ref_components/bwins
+/os/mm/omxil/omxilrefcomps/ref_components/eabi
+/os/mm/omxil/omxilrefcomps/ref_components/group
+/os/mm/omxil/omxilrefcomps/ref_components/mmpfiles
+/os/mm/omxil/omxilrefcomps/ref_components/src/audio/pcmrenderer
+/os/mm/omxil/omxilrefcomps/ref_components/src/common
+/os/mm/omxil/omxilrefcomps/ref_components/src/extensions
+/os/mm/omxil/omxilrefcomps/test_components/group
+/os/mm/omxil/omxilrefcomps/test_components/mmpfiles
+/os/mm/omxil/omxilrefcomps/test_components/src/audio/aacdecoder
+/os/mm/omxil/omxilrefcomps/test_components/src/extensions
+/os/mm/omxil/omxilcore/bwins
+/os/mm/omxil/omxilcore/eabi
+/os/mm/omxil/omxilcore/group
+/os/mm/omxil/omxilcore/inc/core
+/os/mm/omxil/omxilcore/inc/loader
+/os/mm/omxil/omxilcore/mmpfiles
+/os/mm/omxil/omxilcore/src/core
+/os/mm/omxil/omxilcore/src/loader
+/os/mm/omxil/omxilcore/src/omxilcoreclient
+/os/mm/omxil/omxilcore/src/omxilcoreserver
+/os/mm/mmplugins/mmtestcodecs/group
+/os/mm/mmplugins/mmtestcodecs/pvdecoderaac/codecs_v2/audio/aac/dec/include
+/os/mm/mmplugins/mmtestcodecs/pvdecoderaac/codecs_v2/audio/aac/dec/util/getactualaacconfig/include
+/os/mm/mmplugins/mmtestcodecs/pvmdfdecoderaac/codecs_v2/adapters/mdf/aac/dec/include
+/os/mm/mmplugins/mmtestcodecs/pvplatform/codecs_v2/adapters/mdf/common/include
+/os/mm/mmplugins/mmtestcodecs/pvplatform/oscl/oscl/config/s60v3
+/os/mm/mmplugins/mmtestcodecs/pvplatform/oscl/oscl/config/shared
+/os/mm/mmplugins/mmtestcodecs/pvplatform/oscl/oscl/osclbase/src
+/os/mm/mmplugins/mmtestcodecs/pvplatform/oscl/oscl/osclerror/src
+/os/mm/mmplugins/mmtestcodecs/pvplatform/oscl/oscl/osclmemory/src
+/os/mm/mmtestenv/mmtestfw/MMPFiles
+/os/mm/mmtestenv/mmtestfw/Source/SimulProc
+/os/mm/mmtestenv/mmtestfw/Source/TestFramework
+/os/mm/mmtestenv/mmtestfw/Source/TestFrameworkClient
+/os/mm/mmtestenv/mmtestfw/Source/TestFrameworkServer
+/os/mm/mmtestenv/mmtestfw/bwins
+/os/mm/mmtestenv/mmtestfw/eabi
+/os/mm/mmtestenv/mmtestfw/gceavailable/bwins
+/os/mm/mmtestenv/mmtestfw/gceavailable/eabi
+/os/mm/mmtestenv/mmtestfw/gceavailable/group
+/os/mm/mmtestenv/mmtestfw/gceavailable/inc
+/os/mm/mmtestenv/mmtestfw/gceavailable/src
+/os/mm/mmtestenv/mmtestfw/group
+/os/mm/mmtestenv/mmtestfw/include
+/os/mm/mmtestenv/mmtestfw/recog/data
+/os/mm/mmapitest/mmsvs/T_Camera/documentation
+/os/mm/mmapitest/mmsvs/T_Camera/group
+/os/mm/mmapitest/mmsvs/T_Camera/inc
+/os/mm/mmapitest/mmsvs/T_Camera/pkg
+/os/mm/mmapitest/mmsvs/T_Camera/scripts
+/os/mm/mmapitest/mmsvs/T_Camera/src
+/os/mm/mmapitest/mmsvs/T_Camera/testdata
+/os/mm/mmapitest/mmsvs/T_Camera/testdriver
+/os/mm/mmapitest/mmsvs/T_ImageDecoder/documentation
+/os/mm/mmapitest/mmsvs/T_ImageDecoder/group
+/os/mm/mmapitest/mmsvs/T_ImageDecoder/inc
+/os/mm/mmapitest/mmsvs/T_ImageDecoder/pkg
+/os/mm/mmapitest/mmsvs/T_ImageDecoder/scripts
+/os/mm/mmapitest/mmsvs/T_ImageDecoder/src
+/os/mm/mmapitest/mmsvs/T_ImageDecoder/testdata
+/os/mm/mmapitest/mmsvs/T_ImageDecoder/testdriver
+/os/mm/mmapitest/mmsvs/T_ImageEncoder/documentation
+/os/mm/mmapitest/mmsvs/T_ImageEncoder/group
+/os/mm/mmapitest/mmsvs/T_ImageEncoder/inc
+/os/mm/mmapitest/mmsvs/T_ImageEncoder/pkg
+/os/mm/mmapitest/mmsvs/T_ImageEncoder/scripts
+/os/mm/mmapitest/mmsvs/T_ImageEncoder/src
+/os/mm/mmapitest/mmsvs/T_ImageEncoder/testdata
+/os/mm/mmapitest/mmsvs/T_ImageEncoder/testdriver
+/os/mm/mmapitest/mmsvs/T_MMTunerUtility/documentation
+/os/mm/mmapitest/mmsvs/T_MMTunerUtility/group
+/os/mm/mmapitest/mmsvs/T_MMTunerUtility/inc
+/os/mm/mmapitest/mmsvs/T_MMTunerUtility/pkg
+/os/mm/mmapitest/mmsvs/T_MMTunerUtility/scripts
+/os/mm/mmapitest/mmsvs/T_MMTunerUtility/src
+/os/mm/mmapitest/mmsvs/T_MMTunerUtility/testdata
+/os/mm/mmapitest/mmsvs/T_MMTunerUtility/testdriver
+/os/mm/mmapitest/mmsvs/T_MdaAudioConvertUtility/documentation
+/os/mm/mmapitest/mmsvs/T_MdaAudioConvertUtility/group
+/os/mm/mmapitest/mmsvs/T_MdaAudioConvertUtility/inc
+/os/mm/mmapitest/mmsvs/T_MdaAudioConvertUtility/pkg
+/os/mm/mmapitest/mmsvs/T_MdaAudioConvertUtility/scripts
+/os/mm/mmapitest/mmsvs/T_MdaAudioConvertUtility/src
+/os/mm/mmapitest/mmsvs/T_MdaAudioConvertUtility/testdata
+/os/mm/mmapitest/mmsvs/T_MdaAudioConvertUtility/testdriver
+/os/mm/mmapitest/mmsvs/T_MdaAudioInputStream/documentation
+/os/mm/mmapitest/mmsvs/T_MdaAudioInputStream/group
+/os/mm/mmapitest/mmsvs/T_MdaAudioInputStream/inc
+/os/mm/mmapitest/mmsvs/T_MdaAudioInputStream/pkg
+/os/mm/mmapitest/mmsvs/T_MdaAudioInputStream/scripts
+/os/mm/mmapitest/mmsvs/T_MdaAudioInputStream/src
+/os/mm/mmapitest/mmsvs/T_MdaAudioInputStream/testdata
+/os/mm/mmapitest/mmsvs/T_MdaAudioInputStream/testdriver
+/os/mm/mmapitest/mmsvs/T_MdaAudioOutputStream/documentation
+/os/mm/mmapitest/mmsvs/T_MdaAudioOutputStream/group
+/os/mm/mmapitest/mmsvs/T_MdaAudioOutputStream/inc
+/os/mm/mmapitest/mmsvs/T_MdaAudioOutputStream/pkg
+/os/mm/mmapitest/mmsvs/T_MdaAudioOutputStream/scripts
+/os/mm/mmapitest/mmsvs/T_MdaAudioOutputStream/src
+/os/mm/mmapitest/mmsvs/T_MdaAudioOutputStream/testdata
+/os/mm/mmapitest/mmsvs/T_MdaAudioOutputStream/testdriver
+/os/mm/mmapitest/mmsvs/T_MdaAudioPlayerUtility/documentation
+/os/mm/mmapitest/mmsvs/T_MdaAudioPlayerUtility/group
+/os/mm/mmapitest/mmsvs/T_MdaAudioPlayerUtility/inc
+/os/mm/mmapitest/mmsvs/T_MdaAudioPlayerUtility/pkg
+/os/mm/mmapitest/mmsvs/T_MdaAudioPlayerUtility/scripts
+/os/mm/mmapitest/mmsvs/T_MdaAudioPlayerUtility/src
+/os/mm/mmapitest/mmsvs/T_MdaAudioPlayerUtility/testdata
+/os/mm/mmapitest/mmsvs/T_MdaAudioPlayerUtility/testdriver
+/os/mm/mmapitest/mmsvs/T_MdaAudioRecorderUtility/documentation
+/os/mm/mmapitest/mmsvs/T_MdaAudioRecorderUtility/group
+/os/mm/mmapitest/mmsvs/T_MdaAudioRecorderUtility/inc
+/os/mm/mmapitest/mmsvs/T_MdaAudioRecorderUtility/pkg
+/os/mm/mmapitest/mmsvs/T_MdaAudioRecorderUtility/scripts
+/os/mm/mmapitest/mmsvs/T_MdaAudioRecorderUtility/src
+/os/mm/mmapitest/mmsvs/T_MdaAudioRecorderUtility/testdata
+/os/mm/mmapitest/mmsvs/T_MdaAudioRecorderUtility/testdriver
+/os/mm/mmapitest/mmsvs/T_MdaAudioToneUtility/documentation
+/os/mm/mmapitest/mmsvs/T_MdaAudioToneUtility/group
+/os/mm/mmapitest/mmsvs/T_MdaAudioToneUtility/inc
+/os/mm/mmapitest/mmsvs/T_MdaAudioToneUtility/pkg
+/os/mm/mmapitest/mmsvs/T_MdaAudioToneUtility/scripts
+/os/mm/mmapitest/mmsvs/T_MdaAudioToneUtility/src
+/os/mm/mmapitest/mmsvs/T_MdaAudioToneUtility/testdata
+/os/mm/mmapitest/mmsvs/T_MdaAudioToneUtility/testdriver
+/os/mm/mmapitest/mmsvs/T_MidiClientUtility/documentation
+/os/mm/mmapitest/mmsvs/T_MidiClientUtility/group
+/os/mm/mmapitest/mmsvs/T_MidiClientUtility/inc
+/os/mm/mmapitest/mmsvs/T_MidiClientUtility/pkg
+/os/mm/mmapitest/mmsvs/T_MidiClientUtility/scripts
+/os/mm/mmapitest/mmsvs/T_MidiClientUtility/src
+/os/mm/mmapitest/mmsvs/T_MidiClientUtility/testdata
+/os/mm/mmapitest/mmsvs/T_MidiClientUtility/testdriver
+/os/mm/mmapitest/mmsvs/T_VideoPlayerUtility/documentation
+/os/mm/mmapitest/mmsvs/T_VideoPlayerUtility/group
+/os/mm/mmapitest/mmsvs/T_VideoPlayerUtility/inc
+/os/mm/mmapitest/mmsvs/T_VideoPlayerUtility/pkg
+/os/mm/mmapitest/mmsvs/T_VideoPlayerUtility/scripts
+/os/mm/mmapitest/mmsvs/T_VideoPlayerUtility/src
+/os/mm/mmapitest/mmsvs/T_VideoPlayerUtility/testdata
+/os/mm/mmapitest/mmsvs/T_VideoPlayerUtility/testdriver
+/os/mm/mmapitest/mmsvs/T_VideoRecorderUtility/documentation
+/os/mm/mmapitest/mmsvs/T_VideoRecorderUtility/group
+/os/mm/mmapitest/mmsvs/T_VideoRecorderUtility/inc
+/os/mm/mmapitest/mmsvs/T_VideoRecorderUtility/pkg
+/os/mm/mmapitest/mmsvs/T_VideoRecorderUtility/scripts
+/os/mm/mmapitest/mmsvs/T_VideoRecorderUtility/src
+/os/mm/mmapitest/mmsvs/T_VideoRecorderUtility/testdata
+/os/mm/mmapitest/mmsvs/T_VideoRecorderUtility/testdriver
+/os/mm/mmapitest/mmsvs/common/inc
+/os/mm/mmapitest/mmsvs/common/src
+/os/mm/mmapitest/mmsvs/documentation
+/os/mm/mmapitest/mmsvs/group
+/os/mm/mmapitest/mmsvs/scripts
+/os/mm/mmapitest/mmsvs/testdata
+/os/mm/mmapitest/mmsvs/testsuites/group
+/os/mm/mmapitest/mmsvs/testsuites/multimedia
+/os/mm/mmtestenv/mmtesttools/Build
+/os/mm/mmtestenv/mmtesttools/Doc
+/os/mm/mmtestenv/mmtesttools/Group
+/os/mm/mmtestenv/mmtesttools/RTA
+/os/mm/mmtestenv/mmtesttools/Rom
+/os/mm/mmtestenv/mmtesttools/Scripts/DABS/CommandFiles
+/mw/mmmw/mmmiddlewarefws/broadcastradiotransmitter/bwins
+/mw/mmmw/mmmiddlewarefws/broadcastradiotransmitter/eabi
+/mw/mmmw/mmmiddlewarefws/broadcastradiotransmitter/group
+/mw/mmmw/mmmiddlewarefws/broadcastradiotransmitter/inc
+/mw/mmmw/mmmiddlewarefws/broadcastradiotransmitter/mmpfiles
+/mw/mmmw/mmmiddlewarefws/broadcastradiotransmitter/src
+/mw/mmmw/mmmiddlewareplugins/broadcastradiotransmitterplugin/group
+/mw/mmmw/mmmiddlewareplugins/broadcastradiotransmitterplugin/mmpfiles
+/mw/mmmw/mmmiddlewareplugins/broadcastradiotransmitterplugin/src
+/mw/mmmw/mmmiddlewarefws/broadcastradiotuner/Additional
+/mw/mmmw/mmmiddlewarefws/broadcastradiotuner/MMPFiles
+/mw/mmmw/mmmiddlewarefws/broadcastradiotuner/bwins
+/mw/mmmw/mmmiddlewarefws/broadcastradiotuner/eabi
+/mw/mmmw/mmmiddlewarefws/broadcastradiotuner/group
+/mw/mmmw/mmmiddlewarefws/broadcastradiotuner/inc/Tuner
+/mw/mmmw/mmmiddlewarefws/broadcastradiotuner/src/PluginStub
+/os/mm/mmplugins/3gpunittest/data
+/os/mm/mmplugins/3gpunittest/group
+/os/mm/mmplugins/3gpunittest/inc
+/os/mm/mmplugins/3gpunittest/mmpfiles
+/os/mm/mmplugins/3gpunittest/scripts
+/os/mm/mmplugins/3gpunittest/src
+/os/mm/imagingandcamerafws/cameraunittest/bwins
+/os/mm/imagingandcamerafws/cameraunittest/eabi
+/os/mm/imagingandcamerafws/cameraunittest/group
+/os/mm/imagingandcamerafws/cameraunittest/inc
+/os/mm/imagingandcamerafws/cameraunittest/scripts
+/os/mm/imagingandcamerafws/cameraunittest/src/ECamUnitTestPlugin
+/os/mm/imagingandcamerafws/cameraunittest/src/TSU_ECM_ADV
+/os/mm/imagingandcamerafws/imagingunittest/TSU_ICL_COD_03/MMPFiles
+/os/mm/imagingandcamerafws/imagingunittest/TSU_ICL_COD_03/TestFiles/WMF
+/os/mm/imagingandcamerafws/imagingunittest/TSU_ICL_COD_03/TestFiles/WMFArmRef
+/os/mm/imagingandcamerafws/imagingunittest/TSU_ICL_COD_03/TestFiles/WMFArmRefMask
+/os/mm/imagingandcamerafws/imagingunittest/TSU_ICL_COD_03/TestFiles/WMFEabiRef
+/os/mm/imagingandcamerafws/imagingunittest/TSU_ICL_COD_03/TestFiles/WMFEabiRefMask
+/os/mm/imagingandcamerafws/imagingunittest/TSU_ICL_COD_03/TestFiles/WMFRef
+/os/mm/imagingandcamerafws/imagingunittest/TSU_ICL_COD_03/TestFiles/WMFRefMask
+/os/mm/imagingandcamerafws/imagingunittest/TSU_ICL_COD_03/bwins
+/os/mm/imagingandcamerafws/imagingunittest/TSU_ICL_COD_03/eabi
+/os/mm/imagingandcamerafws/imagingunittest/TSU_ICL_COD_03/group
+/os/mm/imagingandcamerafws/imagingunittest/TSU_ICL_COD_03/scripts
+/os/mm/imagingandcamerafws/imagingunittest/TSU_ICL_COD_03/src
+/os/mm/imagingandcamerafws/imagingunittest/TSU_ICL_COD_03/test_plugins/resolver
+/os/mm/imagingandcamerafws/imagingunittest/TSU_ICL_COD_04/MMPFiles
+/os/mm/imagingandcamerafws/imagingunittest/TSU_ICL_COD_04/TImage
+/os/mm/imagingandcamerafws/imagingunittest/TSU_ICL_COD_04/TestFiles/COD_04b/images/420
+/os/mm/imagingandcamerafws/imagingunittest/TSU_ICL_COD_04/TestFiles/COD_04b/images/422
+/os/mm/imagingandcamerafws/imagingunittest/TSU_ICL_COD_04/TestFiles/COD_04b/images/mono
+/os/mm/imagingandcamerafws/imagingunittest/TSU_ICL_COD_04/bwins
+/os/mm/imagingandcamerafws/imagingunittest/TSU_ICL_COD_04/eabi
+/os/mm/imagingandcamerafws/imagingunittest/TSU_ICL_COD_04/group
+/os/mm/imagingandcamerafws/imagingunittest/TSU_ICL_COD_04/scripts
+/os/mm/imagingandcamerafws/imagingunittest/TSU_ICL_COD_04/src
+/os/mm/imagingandcamerafws/imagingunittest/TSU_ICL_TMDAVID/MMPFiles
+/os/mm/imagingandcamerafws/imagingunittest/TSU_ICL_TMDAVID/TestFiles/TMdaVid/Anon
+/os/mm/imagingandcamerafws/imagingunittest/TSU_ICL_TMDAVID/TestFiles/TMdaVid/Ref
+/os/mm/imagingandcamerafws/imagingunittest/TSU_ICL_TMDAVID/bwins
+/os/mm/imagingandcamerafws/imagingunittest/TSU_ICL_TMDAVID/eabi
+/os/mm/imagingandcamerafws/imagingunittest/TSU_ICL_TMDAVID/group
+/os/mm/imagingandcamerafws/imagingunittest/TSU_ICL_TMDAVID/scripts
+/os/mm/imagingandcamerafws/imagingunittest/TSU_ICL_TMDAVID/src
+/os/mm/imagingandcamerafws/imagingunittest/group
+/os/mm/imagingandcamerafws/imagingunittest/inc
+/os/mm/imagingandcamerafws/imagingunittest/plugins/CAPSAdaptation/CapsWrapper/group
+/os/mm/imagingandcamerafws/imagingunittest/plugins/CAPSAdaptation/CapsWrapper/scripts
+/os/mm/imagingandcamerafws/imagingunittest/plugins/CAPSAdaptation/CapsWrapper/src
+/os/mm/imagingandcamerafws/imagingunittest/plugins/CAPSAdaptation/CapsWrapper/testdata
+/os/mm/imagingandcamerafws/imagingunittest/plugins/CAPSAdaptation/CapsWrapper/xml/te_CapsWrapperTestSuite/testexecuteservers
+/os/mm/imagingandcamerafws/imagingunittest/testcodec/bwins
+/os/mm/imagingandcamerafws/imagingunittest/testcodec/eabi
+/os/mm/imagingandcamerafws/imagingunittest/testcodec/group
+/os/mm/imagingandcamerafws/imagingunittest/testcodec/inc
+/os/mm/imagingandcamerafws/imagingunittest/testcodec/mmpfiles
+/os/mm/imagingandcamerafws/imagingunittest/testcodec/src
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_GenIclImgDisp_01/TestFiles/genIcl
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_GenIclImgDisp_01/TestFiles/ref
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_GenIclImgDisp_01/bwins
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_GenIclImgDisp_01/eabi
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_GenIclImgDisp_01/group
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_GenIclImgDisp_01/inc
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_GenIclImgDisp_01/mmpfiles
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_GenIclImgDisp_01/scripts
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_GenIclImgDisp_01/src
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_MngImgDisp_01/TestFiles/ref
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_MngImgDisp_01/TestFiles/src
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_MngImgDisp_01/bwins
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_MngImgDisp_01/eabi
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_MngImgDisp_01/group
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_MngImgDisp_01/inc
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_MngImgDisp_01/mmpfiles
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_MngImgDisp_01/scripts
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_MngImgDisp_01/src
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_btrans_01/TestFiles
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_btrans_01/bwins
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_btrans_01/eabi
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_btrans_01/group
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_btrans_01/inc
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_btrans_01/mmpfiles
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_btrans_01/scripts
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_btrans_01/src
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_cod_01/TImage
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_cod_01/bwins
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_cod_01/eabi
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_cod_01/group
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_cod_01/mmpfiles
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_cod_01/scripts
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_cod_01/src
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_cod_01/timagetestfiles/anon
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_cod_01/timagetestfiles/ref
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_cod_02/TestFiles
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_cod_02/bwins
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_cod_02/eabi
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_cod_02/group
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_cod_02/mmpfiles
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_cod_02/scripts
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_cod_02/src
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_frm_01/bwins
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_frm_01/eabi
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_frm_01/group
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_frm_01/inc
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_frm_01/mmpfiles
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_frm_01/scripts
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_frm_01/src
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_frm_01/testfiles
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_gscal_01/TestFiles
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_gscal_01/bwins
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_gscal_01/eabi
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_gscal_01/group
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_gscal_01/inc
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_gscal_01/mmpfiles
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_gscal_01/scripts
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_gscal_01/src
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_imageframe/bwins
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_imageframe/eabi
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_imageframe/group
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_imageframe/inc
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_imageframe/mmpfiles
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_imageframe/scripts
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_imageframe/src
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_imgdisp/TestFiles/ref
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_imgdisp/bwins
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_imgdisp/eabi
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_imgdisp/group
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_imgdisp/inc
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_imgdisp/mmpfiles
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_imgdisp/scripts
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_imgdisp/src/TestPlugin
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_itfm_01/TestFiles/Ref
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_itfm_01/bwins
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_itfm_01/eabi
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_itfm_01/group
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_itfm_01/inc
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_itfm_01/mmpfiles
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_itfm_01/scripts
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_itfm_01/src/TestPlugin
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_mediasvr/TestFiles/stress
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_mediasvr/bwins
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_mediasvr/eabi
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_mediasvr/group
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_mediasvr/mmpfiles
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_mediasvr/scripts
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_mediasvr/src
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_pfm_01/TestFiles
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_pfm_01/bwins
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_pfm_01/eabi
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_pfm_01/group
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_pfm_01/mmpfiles
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_pfm_01/scripts
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_pfm_01/src
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_pfm_02/BWINS
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_pfm_02/EABI
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_pfm_02/TestFiles
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_pfm_02/group
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_pfm_02/mmpfiles
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_pfm_02/scripts
+/os/mm/imagingandcamerafws/imagingunittest/tsu_icl_pfm_02/src
+/os/mm/mmdevicefw/mdfunittest/codecapi/PU/pcmcodec/MMPFiles
+/os/mm/mmdevicefw/mdfunittest/codecapi/PU/pcmcodec/group
+/os/mm/mmdevicefw/mdfunittest/codecapi/PU/pcmcodec/inc
+/os/mm/mmdevicefw/mdfunittest/codecapi/PU/pcmcodec/src
+/os/mm/mmdevicefw/mdfunittest/codecapi/PU/video/group
+/os/mm/mmdevicefw/mdfunittest/codecapi/PU/video/mmpfiles
+/os/mm/mmdevicefw/mdfunittest/codecapi/PU/video/src/Plugin/VideoTestDecoderPU
+/os/mm/mmdevicefw/mdfunittest/codecapi/PU/video/src/Plugin/VideoTestEncoderPU
+/os/mm/mmdevicefw/mdfunittest/codecapi/audio/bwins
+/os/mm/mmdevicefw/mdfunittest/codecapi/audio/data
+/os/mm/mmdevicefw/mdfunittest/codecapi/audio/eabi
+/os/mm/mmdevicefw/mdfunittest/codecapi/audio/group
+/os/mm/mmdevicefw/mdfunittest/codecapi/audio/mmpfiles
+/os/mm/mmdevicefw/mdfunittest/codecapi/audio/scripts
+/os/mm/mmdevicefw/mdfunittest/codecapi/audio/src
+/os/mm/mmdevicefw/mdfunittest/codecapi/codecapi/bwins
+/os/mm/mmdevicefw/mdfunittest/codecapi/codecapi/data
+/os/mm/mmdevicefw/mdfunittest/codecapi/codecapi/eabi
+/os/mm/mmdevicefw/mdfunittest/codecapi/codecapi/group
+/os/mm/mmdevicefw/mdfunittest/codecapi/codecapi/mmpfiles
+/os/mm/mmdevicefw/mdfunittest/codecapi/codecapi/scripts
+/os/mm/mmdevicefw/mdfunittest/codecapi/codecapi/src
+/os/mm/mmdevicefw/mdfunittest/codecapi/omx/pcmcodec/group
+/os/mm/mmdevicefw/mdfunittest/codecapi/omx/pcmcodec/mmpfiles
+/os/mm/mmdevicefw/mdfunittest/codecapi/omx/pcmcodec/src
+/os/mm/mmdevicefw/mdfunittest/codecapi/omxvorbis/bwins
+/os/mm/mmdevicefw/mdfunittest/codecapi/omxvorbis/data
+/os/mm/mmdevicefw/mdfunittest/codecapi/omxvorbis/eabi
+/os/mm/mmdevicefw/mdfunittest/codecapi/omxvorbis/group
+/os/mm/mmdevicefw/mdfunittest/codecapi/omxvorbis/hwdeviceadapter
+/os/mm/mmdevicefw/mdfunittest/codecapi/omxvorbis/mmpfiles
+/os/mm/mmdevicefw/mdfunittest/codecapi/omxvorbis/scripts
+/os/mm/mmdevicefw/mdfunittest/codecapi/omxvorbis/src
+/os/mm/mmdevicefw/mdfunittest/codecapi/video/bwins
+/os/mm/mmdevicefw/mdfunittest/codecapi/video/data
+/os/mm/mmdevicefw/mdfunittest/codecapi/video/eabi
+/os/mm/mmdevicefw/mdfunittest/codecapi/video/group
+/os/mm/mmdevicefw/mdfunittest/codecapi/video/mmpfiles
+/os/mm/mmdevicefw/mdfunittest/codecapi/video/scripts
+/os/mm/mmdevicefw/mdfunittest/codecapi/video/src
+/os/mm/mmdevicefw/mdfunittest/group
+/os/mm/omxil/mmilunittest/bwins
+/os/mm/omxil/mmilunittest/eabi
+/os/mm/omxil/mmilunittest/group
+/os/mm/omxil/mmilunittest/inc
+/os/mm/omxil/mmilunittest/mmpfiles
+/os/mm/omxil/mmilunittest/scripts
+/os/mm/omxil/mmilunittest/src
+/os/mm/omxil/mmilunittest/test_plugins/audioilhwdevice_mvs_test/omxilvorbdechwdevice
+/os/mm/omxil/mmilunittest/test_plugins/dummypcmrenderer
+/os/mm/omxil/mmilunittest/test_plugins/omxildummyaudiodec
+/os/mm/omxil/mmilunittest/test_plugins/omxildummyaudiodecilif
+/os/mm/omxil/mmilunittest/test_plugins/omxildummybaseilif
+/mw/mmmw/mmfwtest/mmfunittest/A2dpBluetooth/Data
+/mw/mmmw/mmfwtest/mmfunittest/A2dpBluetooth/Server
+/mw/mmmw/mmfwtest/mmfunittest/A2dpBluetooth/headsetaudioif
+/mw/mmmw/mmfwtest/mmfunittest/ACOD/Data
+/mw/mmmw/mmfwtest/mmfunittest/ACOD/TestCodecs
+/mw/mmmw/mmfwtest/mmfunittest/AFMT/Data
+/mw/mmmw/mmfwtest/mmfunittest/AFMT/TestDataSink
+/mw/mmmw/mmfwtest/mmfunittest/AFMT/TestDataSource
+/mw/mmmw/mmfwtest/mmfunittest/ASR/MmpFiles
+/mw/mmmw/mmfwtest/mmfunittest/ASR/bwins
+/mw/mmmw/mmfwtest/mmfunittest/ASR/eabi
+/mw/mmmw/mmfwtest/mmfunittest/ASR/group
+/mw/mmmw/mmfwtest/mmfunittest/ASR/scripts
+/mw/mmmw/mmfwtest/mmfunittest/ASR/src/ASRController
+/mw/mmmw/mmfwtest/mmfunittest/ASR/src/Database
+/mw/mmmw/mmfwtest/mmfunittest/Actrl/TestPlugins/AudioController
+/mw/mmmw/mmfwtest/mmfunittest/Actrl/data/Reference
+/mw/mmmw/mmfwtest/mmfunittest/DevSoundTest/CIPlugins/BWINS
+/mw/mmmw/mmfwtest/mmfunittest/DevSoundTest/CIPlugins/EABI
+/mw/mmmw/mmfwtest/mmfunittest/DevSoundTest/CIPlugins/group
+/mw/mmmw/mmfwtest/mmfunittest/DevSoundTest/CIPlugins/mmpfiles
+/mw/mmmw/mmfwtest/mmfunittest/DevSoundTest/CIPlugins/scripts
+/mw/mmmw/mmfwtest/mmfunittest/DevSoundTest/CIPlugins/src
+/mw/mmmw/mmfwtest/mmfunittest/DevSoundTest/TestDevice
+/mw/mmmw/mmfwtest/mmfunittest/DevSoundTest/TestFiles
+/mw/mmmw/mmfwtest/mmfunittest/DevSoundTest/TestInterface
+/mw/mmmw/mmfwtest/mmfunittest/DevSoundTest/a3fcistubextn
+/mw/mmmw/mmfwtest/mmfunittest/DevSoundTest/data
+/mw/mmmw/mmfwtest/mmfunittest/DevSoundTest/inc
+/mw/mmmw/mmfwtest/mmfunittest/DevSoundTest/scripts
+/mw/mmmw/mmfwtest/mmfunittest/DevSoundTest/src
+/mw/mmmw/mmfwtest/mmfunittest/DevVideo/bwins
+/mw/mmmw/mmfwtest/mmfunittest/DevVideo/eabi
+/mw/mmmw/mmfwtest/mmfunittest/DevVideo/group
+/mw/mmmw/mmfwtest/mmfunittest/DevVideo/mmpfiles
+/mw/mmmw/mmfwtest/mmfunittest/DevVideo/scripts
+/mw/mmmw/mmfwtest/mmfunittest/DevVideo/src/TestDevVideoPlugins
+/mw/mmmw/mmfwtest/mmfunittest/DevVideo/src/ciu/testdevvideociuplugins
+/mw/mmmw/mmfwtest/mmfunittest/GEF/Plugin
+/mw/mmmw/mmfwtest/mmfunittest/GEF/bwins
+/mw/mmmw/mmfwtest/mmfunittest/GEF/eabi
+/mw/mmmw/mmfwtest/mmfunittest/GEF/group
+/mw/mmmw/mmfwtest/mmfunittest/GEF/scripts
+/mw/mmmw/mmfwtest/mmfunittest/GEF/src
+/mw/mmmw/mmfwtest/mmfunittest/MidiClnt/MidiTestCntrl/MmpFiles
+/mw/mmmw/mmfwtest/mmfunittest/MidiClnt/MidiTestCntrl/group
+/mw/mmmw/mmfwtest/mmfunittest/MidiClnt/data
+/mw/mmmw/mmfwtest/mmfunittest/MmpFiles
+/mw/mmmw/mmfwtest/mmfunittest/Profiling/TSU_MMF_PFM_01/MMPFiles
+/mw/mmmw/mmfwtest/mmfunittest/Profiling/TSU_MMF_PFM_01/TestFiles
+/mw/mmmw/mmfwtest/mmfunittest/Profiling/TSU_MMF_PFM_01/bwins
+/mw/mmmw/mmfwtest/mmfunittest/Profiling/TSU_MMF_PFM_01/eabi
+/mw/mmmw/mmfwtest/mmfunittest/Profiling/TSU_MMF_PFM_01/group
+/mw/mmmw/mmfwtest/mmfunittest/Profiling/TSU_MMF_PFM_01/scripts
+/mw/mmmw/mmfwtest/mmfunittest/Profiling/TSU_MMF_PFM_01/src
+/mw/mmmw/mmfwtest/mmfunittest/Recogniser
+/mw/mmmw/mmfwtest/mmfunittest/SbcCodec/Data
+/mw/mmmw/mmfwtest/mmfunittest/SecureDRM/data
+/mw/mmmw/mmfwtest/mmfunittest/SwCodecDevices/Data
+/mw/mmmw/mmfwtest/mmfunittest/VCLNT/TSU_MMF_VCLNT_01/Data
+/mw/mmmw/mmfwtest/mmfunittest/VCLNT/TSU_MMF_VCLNT_APP
+/mw/mmmw/mmfwtest/mmfunittest/VCLNT/TS_CMMFVideoTestController
+/mw/mmmw/mmfwtest/mmfunittest/VCLNT/TS_VideoInput
+/mw/mmmw/mmfwtest/mmfunittest/VCLNT/TS_VideoOutput
+/mw/mmmw/mmfwtest/mmfunittest/VCLNT/ts_cmmfvideotestcustomcommands
+/mw/mmmw/mmfwtest/mmfunittest/aclnt/TSU_MMF_ACLNT_01/data
+/mw/mmmw/mmfwtest/mmfunittest/avictrl/data
+/mw/mmmw/mmfwtest/mmfunittest/avictrl/testplugins/aviplaycontroller
+/mw/mmmw/mmfwtest/mmfunittest/basecl/TSU_BASECL_TestCodec
+/mw/mmmw/mmfwtest/mmfunittest/basecl/TSU_BASECL_TestFormat
+/mw/mmmw/mmfwtest/mmfunittest/basecl/TSU_BASECL_TestSrcSink
+/mw/mmmw/mmfwtest/mmfunittest/basecl/ts_transferbuffertesterclient
+/mw/mmmw/mmfwtest/mmfunittest/basecl/ts_transferbuffertesterserver
+/mw/mmmw/mmfwtest/mmfunittest/bwins
+/mw/mmmw/mmfwtest/mmfunittest/ctlfrm/TSU_DummyTestController
+/mw/mmmw/mmfwtest/mmfunittest/ctlfrm/TSU_DummyVideoTestController
+/mw/mmmw/mmfwtest/mmfunittest/ctlfrm/TS_CMMFTestController
+/mw/mmmw/mmfwtest/mmfunittest/ctlfrm/TS_MMFTestDataSink
+/mw/mmmw/mmfwtest/mmfunittest/ctlfrm/TS_MMFTestDataSinkB
+/mw/mmmw/mmfwtest/mmfunittest/ctlfrm/TS_MMFTestDataSource
+/mw/mmmw/mmfwtest/mmfunittest/ctlfrm/TS_MMFTestDataSourceB
+/mw/mmmw/mmfwtest/mmfunittest/ctlfrm/mp3/MmfMP3Format
+/mw/mmmw/mmfwtest/mmfunittest/ctlfrm/mp3/MmfMP3NullCodec
+/mw/mmmw/mmfwtest/mmfunittest/ctlfrm/mp3/inc
+/mw/mmmw/mmfwtest/mmfunittest/ctlfrm/sdrm/ts_testconstructcontroller
+/mw/mmmw/mmfwtest/mmfunittest/ctlfrm/ts_cmmftestcustomcommands
+/mw/mmmw/mmfwtest/mmfunittest/ctlfrm/ts_testterminationcontroller
+/mw/mmmw/mmfwtest/mmfunittest/devsubtitle/inc
+/mw/mmmw/mmfwtest/mmfunittest/devsubtitle/scripts
+/mw/mmmw/mmfwtest/mmfunittest/devsubtitle/src
+/mw/mmmw/mmfwtest/mmfunittest/devsubtitle/testdata
+/mw/mmmw/mmfwtest/mmfunittest/eabi
+/mw/mmmw/mmfwtest/mmfunittest/group
+/mw/mmmw/mmfwtest/mmfunittest/nullcodec
+/mw/mmmw/mmfwtest/mmfunittest/oggctrl/data
+/mw/mmmw/mmfwtest/mmfunittest/scripts
+/mw/mmmw/mmfwtest/mmfunittest/srssnk/data
+/mw/mmmw/mmfwtest/mmfunittest/srtdecoder/bwins
+/mw/mmmw/mmfwtest/mmfunittest/srtdecoder/data
+/mw/mmmw/mmfwtest/mmfunittest/srtdecoder/eabi
+/mw/mmmw/mmfwtest/mmfunittest/srtdecoder/group
+/mw/mmmw/mmfwtest/mmfunittest/srtdecoder/inc
+/mw/mmmw/mmfwtest/mmfunittest/srtdecoder/mmpfiles
+/mw/mmmw/mmfwtest/mmfunittest/srtdecoder/scripts
+/mw/mmmw/mmfwtest/mmfunittest/srtdecoder/src
+/mw/mmmw/mmfwtest/mmfunittest/subtitlegraphic/inc
+/mw/mmmw/mmfwtest/mmfunittest/subtitlegraphic/scripts
+/mw/mmmw/mmfwtest/mmfunittest/subtitlegraphic/src
+/mw/mmmw/mmfwtest/mmfunittest/subtitlegraphic/testdata
+/mw/mmmw/mmfwtest/mmfunittest/swcdwrap/Data
+/mw/mmmw/mmfwtest/mmfunittest/swcdwrap/TSU_SWCDWRAP_TestDevice
+/mw/mmmw/mmfwtest/mmfunittest/videorenderer/bwins
+/mw/mmmw/mmfwtest/mmfunittest/videorenderer/eabi
+/mw/mmmw/mmfwtest/mmfunittest/videorenderer/group
+/mw/mmmw/mmfwtest/mmfunittest/videorenderer/inc
+/mw/mmmw/mmfwtest/mmfunittest/videorenderer/mmpfiles
+/mw/mmmw/mmfwtest/mmfunittest/videorenderer/scripts
+/mw/mmmw/mmfwtest/mmfunittest/videorenderer/src
+/os/mm/mmhais/dvbhunittest/hai/dvbh/bwins
+/os/mm/mmhais/dvbhunittest/hai/dvbh/eabi
+/os/mm/mmhais/dvbhunittest/hai/dvbh/group
+/os/mm/mmhais/dvbhunittest/hai/dvbh/scripts
+/os/mm/mmhais/dvbhunittest/hai/dvbh/src
+/mw/mmmw/mmmiddlewarefws/mufunittest/bwins
+/mw/mmmw/mmmiddlewarefws/mufunittest/data
+/mw/mmmw/mmmiddlewarefws/mufunittest/eabi
+/mw/mmmw/mmmiddlewarefws/mufunittest/group
+/mw/mmmw/mmmiddlewarefws/mufunittest/mmpfiles
+/mw/mmmw/mmmiddlewarefws/mufunittest/scripts
+/mw/mmmw/mmmiddlewarefws/mufunittest/src
+/mw/mmmw/mmmiddlewarefws/mufunittest/testparserplugin/group
+/mw/mmmw/mmmiddlewarefws/mufunittest/testparserplugin/mmpfiles/wav
+/mw/mmmw/mmmiddlewarefws/mufunittest/testparserplugin/src/audio/wav
+/os/mm/omxil/omxilunittest/components/bwins
+/os/mm/omxil/omxilunittest/components/data
+/os/mm/omxil/omxilunittest/components/eabi
+/os/mm/omxil/omxilunittest/components/group
+/os/mm/omxil/omxilunittest/components/mmpfiles
+/os/mm/omxil/omxilunittest/components/scripts
+/os/mm/omxil/omxilunittest/components/src
+/os/mm/omxil/omxilunittest/contentpipe/bwins
+/os/mm/omxil/omxilunittest/contentpipe/eabi
+/os/mm/omxil/omxilunittest/contentpipe/group
+/os/mm/omxil/omxilunittest/contentpipe/mmpfiles
+/os/mm/omxil/omxilunittest/contentpipe/scripts
+/os/mm/omxil/omxilunittest/contentpipe/src
+/os/mm/omxil/omxilunittest/group
+/os/mm/omxil/omxilunittest/test_plugins/dummy_components/group
+/os/mm/omxil/omxilunittest/test_plugins/dummy_components/mmpfiles
+/os/mm/omxil/omxilunittest/test_plugins/dummy_components/src
+/os/mm/omxil/omxilunittest/test_plugins/dummy_cp/group
+/os/mm/omxil/omxilunittest/test_plugins/dummy_cp/mmpfiles
+/os/mm/omxil/omxilunittest/test_plugins/dummy_cp/src
+/os/mm/omxil/omxilunittest/test_plugins/dummy_cp_2/group
+/os/mm/omxil/omxilunittest/test_plugins/dummy_cp_2/mmpfiles
+/os/mm/omxil/omxilunittest/test_plugins/dummy_cp_2/src
+/os/mm/omxil/omxilunittest/test_plugins/dummy_loader/group
+/os/mm/omxil/omxilunittest/test_plugins/dummy_loader/mmpfiles
+/os/mm/omxil/omxilunittest/test_plugins/dummy_loader/src
+/os/mm/mmtestenv/mmtestfwunittest/MMPFiles
+/os/mm/mmtestenv/mmtestfwunittest/bwins
+/os/mm/mmtestenv/mmtestfwunittest/eabi
+/os/mm/mmtestenv/mmtestfwunittest/group
+/os/mm/mmtestenv/mmtestfwunittest/scriptFiles
+/os/mm/mmtestenv/mmtestfwunittest/src/tsu_mmtsth00
+/os/mm/mmtestenv/mmtestfwunittest/src/tsu_mmtsth01
+/os/mm/mmtestenv/mmtestfwunittest/src/tsu_mmtsth02
+/os/mm/mmtestenv/mmtestfwunittest/src/tsu_mmtsth03
+/os/mm/mmtestenv/mmtestfwunittest/src/tsu_mmtsth10
+/os/mm/mmtestenv/mmtestfwunittest/src/tsu_mmtsth11
+/os/mm/mmtestenv/mmtestfwunittest/src/tsu_mmtsth12
+/os/mm/mmtestenv/mmtestfwunittest/src/tsu_mmtsth13
+/os/mm/mmtestenv/mmtestfwunittest/src/tsu_mmtsth20
+/os/mm/mmtestenv/mmtestfwunittest/src/tsu_mmtsth21
+/os/mm/mmtestenv/mmtestfwunittest/src/tsu_mmtsth22
+/os/mm/mmtestenv/mmtestfwunittest/src/tsu_stubs
+/mw/mmmw/mmmiddlewarefws/broadcastradiotransmitterunittest/group
+/mw/mmmw/mmmiddlewarefws/broadcastradiotransmitterunittest/mmpfiles
+/mw/mmmw/mmmiddlewarefws/broadcastradiotransmitterunittest/scripts
+/mw/mmmw/mmmiddlewarefws/broadcastradiotransmitterunittest/src
+/mw/mmmw/mmmiddlewarefws/tunerunittest/bwins
+/mw/mmmw/mmmiddlewarefws/tunerunittest/eabi
+/mw/mmmw/mmmiddlewarefws/tunerunittest/group
+/mw/mmmw/mmmiddlewarefws/tunerunittest/scripts
+/mw/mmmw/mmmiddlewarefws/tunerunittest/src
+/os/cellularsrv/smsprotocols/cdmasmsstack/cdmaprot/bwins
+/os/cellularsrv/smsprotocols/cdmasmsstack/cdmaprot/eabi
+/os/cellularsrv/smsprotocols/cdmasmsstack/cdmaprot/group
+/os/cellularsrv/smsprotocols/cdmasmsstack/cdmaprot/inc
+/os/cellularsrv/smsprotocols/cdmasmsstack/cdmaprot/src
+/os/cellularsrv/smsprotocols/cdmasmsstack/cdmaprot/test/TE_cdmasmscaps
+/os/cellularsrv/smsprotocols/cdmasmsstack/cdmaprot/test/TE_cdmasmsprot
+/os/cellularsrv/smsprotocols/cdmasmsstack/cdmaprot/test/bwins
+/os/cellularsrv/smsprotocols/cdmasmsstack/cdmaprot/test/configfiles
+/os/cellularsrv/smsprotocols/cdmasmsstack/cdmau/bwins
+/os/cellularsrv/smsprotocols/cdmasmsstack/cdmau/eabi
+/os/cellularsrv/smsprotocols/cdmasmsstack/cdmau/group
+/os/cellularsrv/smsprotocols/cdmasmsstack/cdmau/inc
+/os/cellularsrv/smsprotocols/cdmasmsstack/cdmau/src
+/os/cellularsrv/smsprotocols/cdmasmsstack/cdmau/test/CdmauServer/Group
+/os/cellularsrv/smsprotocols/cdmasmsstack/cdmau/test/CdmauServer/Src
+/os/cellularsrv/smsprotocols/cdmasmsstack/cdmau/test/CdmauServer/bwins
+/os/cellularsrv/smsprotocols/cdmasmsstack/cdmau/test/Scripts
+/os/cellularsrv/smsprotocols/cdmasmsstack/cdmau/test/testdata
+/os/cellularsrv/smsprotocols/cdmasmsstack/cdmawapprot/Group
+/os/cellularsrv/smsprotocols/cdmasmsstack/cdmawapprot/Inc
+/os/cellularsrv/smsprotocols/cdmasmsstack/cdmawapprot/Src
+/os/cellularsrv/smsprotocols/cdmasmsstack/cdmawapprot/Test/CdmaWapProtUnitTest/bwins
+/os/cellularsrv/smsprotocols/cdmasmsstack/cdmawapprot/Test/CdmaWapProtUnitTest/configfiles
+/os/cellularsrv/smsprotocols/cdmasmsstack/cdmawapprot/Test/CdmaWapProtUnitTest/group
+/os/cellularsrv/smsprotocols/cdmasmsstack/cdmawapprot/Test/CdmaWapProtUnitTest/scripts
+/os/cellularsrv/smsprotocols/cdmasmsstack/cdmawapprot/Test/CdmaWapProtUnitTest/src
+/os/cellularsrv/smsprotocols/cdmasmsstack/cdmawapprot/Test/te_cdmawapprot/bwins
+/os/cellularsrv/smsprotocols/cdmasmsstack/cdmawapprot/Test/te_cdmawapprot/group
+/os/cellularsrv/smsprotocols/cdmasmsstack/cdmawapprot/Test/te_cdmawapprot/scripts
+/os/cellularsrv/smsprotocols/cdmasmsstack/cdmawapprot/Test/te_cdmawapprot/src
+/os/cellularsrv/smsprotocols/cdmasmsstack/cdmawapprot/Test/te_cdmawapprot/testdata
+/os/cellularsrv/smsprotocols/cdmasmsstack/cdmawapprot/bwins
+/os/cellularsrv/smsprotocols/cdmasmsstack/cdmawapprot/eabi
+/os/cellularsrv/smsprotocols/cdmasmsstack/documentation
+/os/cellularsrv/smsprotocols/cdmasmsstack/group
+/os/cellularsrv/smsprotocols/cdmasmsstack/ota-xml/Documentation
+/os/cellularsrv/smsprotocols/cdmasmsstack/ota-xml/bin
+/os/cellularsrv/smsprotocols/cdmasmsstack/ota-xml/group
+/os/cellularsrv/smsprotocols/cdmasmsstack/ota-xml/inc
+/os/cellularsrv/smsprotocols/cdmasmsstack/ota-xml/xerces-validator
+/os/cellularsrv/smsprotocols/cdmasmsstack/ota-xml/xml
+/os/cellularsrv/smsprotocols/cdmasmsstack/ota-xml/xschema
+/os/unref/orphan/comgen/nbprotocols/confidential
+/os/unref/orphan/comgen/nbprotocols/documentation
+/os/cellularsrv/smsprotocols/smsstack/common/inc
+/os/cellularsrv/smsprotocols/smsstack/common/src
+/os/cellularsrv/smsprotocols/smsstack/documentation
+/os/cellularsrv/smsprotocols/smsstack/ems/inc
+/os/cellularsrv/smsprotocols/smsstack/ems/src
+/os/cellularsrv/smsprotocols/smsstack/group
+/os/cellularsrv/smsprotocols/smsstack/gsmu/bwins
+/os/cellularsrv/smsprotocols/smsstack/gsmu/eabi
+/os/cellularsrv/smsprotocols/smsstack/gsmu/group
+/os/cellularsrv/smsprotocols/smsstack/gsmu/inc
+/os/cellularsrv/smsprotocols/smsstack/gsmu/src
+/os/cellularsrv/smsprotocols/smsstack/gsmu/test/bwins
+/os/cellularsrv/smsprotocols/smsstack/gsmu/test/te_gsmu
+/os/cellularsrv/smsprotocols/smsstack/gsmu/test/te_gsmu_ems
+/os/cellularsrv/smsprotocols/smsstack/gsmu/test/te_gsmustor
+/os/cellularsrv/smsprotocols/smsstack/smsprot/Group
+/os/cellularsrv/smsprotocols/smsstack/smsprot/Inc
+/os/cellularsrv/smsprotocols/smsstack/smsprot/Src
+/os/cellularsrv/smsprotocols/smsstack/smsprot/Test/TE_SMSCAPS
+/os/cellularsrv/smsprotocols/smsstack/smsprot/Test/TE_SMSEMSPRT
+/os/cellularsrv/smsprotocols/smsstack/smsprot/Test/TE_SMSINTER
+/os/cellularsrv/smsprotocols/smsstack/smsprot/Test/TE_SMSPRTSTRESS
+/os/cellularsrv/smsprotocols/smsstack/smsprot/Test/TE_SMSSTOR
+/os/cellularsrv/smsprotocols/smsstack/smsprot/Test/TE_Smsprt
+/os/cellularsrv/smsprotocols/smsstack/smsprot/Test/bwins
+/os/cellularsrv/smsprotocols/smsstack/smsprot/Test/configfiles
+/os/cellularsrv/smsprotocols/smsstack/smsprot/Test/eabi
+/os/cellularsrv/smsprotocols/smsstack/smsprot/bwins
+/os/cellularsrv/smsprotocols/smsstack/smsprot/eabi
+/os/cellularsrv/smsprotocols/smsstack/smsu/bwins
+/os/cellularsrv/smsprotocols/smsstack/smsu/eabi
+/os/cellularsrv/smsprotocols/smsstack/smsu/group
+/os/cellularsrv/smsprotocols/smsstack/smsu/inc
+/os/cellularsrv/smsprotocols/smsstack/smsu/src
+/os/cellularsrv/smsprotocols/smsstack/test/TE_R6SMS
+/os/cellularsrv/smsprotocols/smsstack/test/TE_SMSPDUDB
+/os/cellularsrv/smsprotocols/smsstack/test/bwins
+/os/cellularsrv/smsprotocols/smsstack/test/configfiles
+/os/cellularsrv/smsprotocols/smsstack/test/eabi
+/os/cellularsrv/smsprotocols/smsstack/wapprot/Group
+/os/cellularsrv/smsprotocols/smsstack/wapprot/Inc
+/os/cellularsrv/smsprotocols/smsstack/wapprot/Src
+/os/cellularsrv/smsprotocols/smsstack/wapprot/bwins
+/os/cellularsrv/smsprotocols/smsstack/wapprot/eabi
+/os/cellularsrv/smsprotocols/smsstack/wapprot/test/TE_WAPDGRM
+/os/cellularsrv/smsprotocols/smsstack/wapprot/test/TE_WAPSMS
+/os/cellularsrv/smsprotocols/smsstack/wapprot/test/TE_WAPTHDR
+/os/cellularsrv/smsprotocols/smsstack/wapprot/test/Te_wapprot
+/os/cellularsrv/smsprotocols/smsstack/wapprot/test/bwins
+/os/cellularsrv/smsprotocols/smsstack/wapprot/test/configfiles
+/os/networkingsrv/networkingtestandutils/ipv6to4tunnel/bmarm
+/os/networkingsrv/networkingtestandutils/ipv6to4tunnel/bwins
+/os/networkingsrv/networkingtestandutils/ipv6to4tunnel/data
+/os/networkingsrv/networkingtestandutils/ipv6to4tunnel/eabi
+/os/networkingsrv/networkingtestandutils/ipv6to4tunnel/group
+/os/networkingsrv/networkingtestandutils/ipv6to4tunnel/inc
+/os/networkingsrv/networkingtestandutils/ipv6to4tunnel/src
+/os/wlan/wlan_bearer/wirelesslan/DataBases
+/os/wlan/wlan_bearer/wirelesslan/Documentation
+/os/wlan/wlan_bearer/wirelesslan/WiFiAgent/bwins
+/os/wlan/wlan_bearer/wirelesslan/WiFiAgent/eabi
+/os/wlan/wlan_bearer/wirelesslan/WiFiAgent/group
+/os/wlan/wlan_bearer/wirelesslan/WiFiAgent/inc
+/os/wlan/wlan_bearer/wirelesslan/WiFiAgent/src
+/os/wlan/wlan_bearer/wirelesslan/WiFiCfgEng/bwins
+/os/wlan/wlan_bearer/wirelesslan/WiFiCfgEng/eabi
+/os/wlan/wlan_bearer/wirelesslan/WiFiCfgEng/group
+/os/wlan/wlan_bearer/wirelesslan/WiFiCfgEng/inc
+/os/wlan/wlan_bearer/wirelesslan/WiFiCfgEng/src
+/os/wlan/wlan_bearer/wirelesslan/WiFiCore/WiFiBase/INC
+/os/wlan/wlan_bearer/wirelesslan/WiFiCore/WiFiBase/SRC
+/os/wlan/wlan_bearer/wirelesslan/WiFiCore/WiFiClient/INC
+/os/wlan/wlan_bearer/wirelesslan/WiFiCore/WiFiClient/SRC
+/os/wlan/wlan_bearer/wirelesslan/WiFiCore/WiFiServer/Data
+/os/wlan/wlan_bearer/wirelesslan/WiFiCore/WiFiServer/INC
+/os/wlan/wlan_bearer/wirelesslan/WiFiCore/WiFiServer/SRC
+/os/wlan/wlan_bearer/wirelesslan/WiFiCore/WiFiSharedSC/INC
+/os/wlan/wlan_bearer/wirelesslan/WiFiCore/WiFiWSY/CmdBased/inc
+/os/wlan/wlan_bearer/wirelesslan/WiFiCore/WiFiWSY/CmdBased/src
+/os/wlan/wlan_bearer/wirelesslan/WiFiCore/WiFiWSY/Common/inc
+/os/wlan/wlan_bearer/wirelesslan/WiFiCore/WiFiWSY/Common/src
+/os/wlan/wlan_bearer/wirelesslan/WiFiCore/bwins
+/os/wlan/wlan_bearer/wirelesslan/WiFiCore/eabi
+/os/wlan/wlan_bearer/wirelesslan/WiFiCore/group
+/os/wlan/wlan_bearer/wirelesslan/WiFiDB/bwins
+/os/wlan/wlan_bearer/wirelesslan/WiFiDB/data
+/os/wlan/wlan_bearer/wirelesslan/WiFiDB/eabi
+/os/wlan/wlan_bearer/wirelesslan/WiFiDB/group
+/os/wlan/wlan_bearer/wirelesslan/WiFiDB/inc
+/os/wlan/wlan_bearer/wirelesslan/WiFiDB/src
+/os/wlan/wlan_bearer/wirelesslan/WiFiDataTypes/example
+/os/wlan/wlan_bearer/wirelesslan/WiFiDataTypes/group
+/os/wlan/wlan_bearer/wirelesslan/WiFiDataTypes/inc
+/os/wlan/wlan_bearer/wirelesslan/WiFiDataTypes/src
+/os/wlan/wlan_bearer/wirelesslan/WiFiDrvs/WiFiLdd/Src
+/os/wlan/wlan_bearer/wirelesslan/WiFiDrvs/WiFiLdd/bwins
+/os/wlan/wlan_bearer/wirelesslan/WiFiDrvs/WiFiLdd/eabi
+/os/wlan/wlan_bearer/wirelesslan/WiFiDrvs/WiFiLdd/group
+/os/wlan/wlan_bearer/wirelesslan/WiFiDrvs/WiFiLdd/inc
+/os/wlan/wlan_bearer/wirelesslan/WiFiDrvs/WiFiPdds/Common/inc
+/os/wlan/wlan_bearer/wirelesslan/WiFiDrvs/WiFiPdds/Marvell83xx/data/ARMV5/UDEB
+/os/wlan/wlan_bearer/wirelesslan/WiFiDrvs/WiFiPdds/Marvell83xx/data/ARMV5/UREL
+/os/wlan/wlan_bearer/wirelesslan/WiFiDrvs/WiFiPdds/Marvell83xx/group
+/os/wlan/wlan_bearer/wirelesslan/WiFiDrvs/WiFiPdds/Marvell8686/data/armv5/udeb
+/os/wlan/wlan_bearer/wirelesslan/WiFiDrvs/WiFiPdds/Marvell8686/data/armv5/urel
+/os/wlan/wlan_bearer/wirelesslan/WiFiDrvs/WiFiPdds/Marvell8686/group
+/os/wlan/wlan_bearer/wirelesslan/WiFiPkt/bwins
+/os/wlan/wlan_bearer/wirelesslan/WiFiPkt/eabi
+/os/wlan/wlan_bearer/wirelesslan/WiFiPkt/group
+/os/wlan/wlan_bearer/wirelesslan/WiFiPkt/inc
+/os/wlan/wlan_bearer/wirelesslan/WiFiPkt/src
+/os/wlan/wlan_bearer/wirelesslan/WiFiRSSIEng/bwins
+/os/wlan/wlan_bearer/wirelesslan/WiFiRSSIEng/eabi
+/os/wlan/wlan_bearer/wirelesslan/WiFiRSSIEng/group
+/os/wlan/wlan_bearer/wirelesslan/WiFiRSSIEng/inc
+/os/wlan/wlan_bearer/wirelesslan/WiFiRSSIEng/src
+/mw/accesssec/eapol/eappluginsforwifi/bwins
+/mw/accesssec/eapol/eappluginsforwifi/eabi
+/mw/accesssec/eapol/eappluginsforwifi/group
+/mw/accesssec/eapol/eappluginsforwifi/inc
+/mw/accesssec/eapol/eappluginsforwifi/src
+/os/wlan/wlan_bearer/wirelesslan/WiFiSecurity/GROUP
+/os/wlan/wlan_bearer/wirelesslan/WiFiSecurity/WiFiSecSME/inc
+/os/wlan/wlan_bearer/wirelesslan/WiFiSecurity/WiFiSecSME/src
+/os/wlan/wlan_bearer/wirelesslan/WiFiSecurity/WiFiSecStack/inc/802.1X/tunnel
+/os/wlan/wlan_bearer/wirelesslan/WiFiSecurity/WiFiSecStack/inc/Base
+/os/wlan/wlan_bearer/wirelesslan/WiFiSecurity/WiFiSecStack/inc/Device
+/os/wlan/wlan_bearer/wirelesslan/WiFiSecurity/WiFiSecStack/inc/Encryption/wpa
+/os/wlan/wlan_bearer/wirelesslan/WiFiSecurity/WiFiSecStack/inc/Ethernet
+/os/wlan/wlan_bearer/wirelesslan/WiFiSecurity/WiFiSecStack/inc/Shared
+/os/wlan/wlan_bearer/wirelesslan/WiFiSecurity/WiFiSecStack/inc/Timers
+/os/wlan/wlan_bearer/wirelesslan/WiFiSecurity/WiFiSecStack/src/802.1X/tunnel
+/os/wlan/wlan_bearer/wirelesslan/WiFiSecurity/WiFiSecStack/src/Base
+/os/wlan/wlan_bearer/wirelesslan/WiFiSecurity/WiFiSecStack/src/Device
+/os/wlan/wlan_bearer/wirelesslan/WiFiSecurity/WiFiSecStack/src/Encryption/wpa
+/os/wlan/wlan_bearer/wirelesslan/WiFiSecurity/WiFiSecStack/src/Ethernet
+/os/wlan/wlan_bearer/wirelesslan/WiFiSecurity/WiFiSecStack/src/Shared
+/os/wlan/wlan_bearer/wirelesslan/WiFiSecurity/WiFiSecStack/src/Timers
+/os/wlan/wlan_bearer/wirelesslan/WiFiSecurity/bwins
+/os/wlan/wlan_bearer/wirelesslan/WiFiSecurity/eabi
+/os/wlan/wlan_bearer/wirelesslan/WiFiStatsEng/bwins
+/os/wlan/wlan_bearer/wirelesslan/WiFiStatsEng/eabi
+/os/wlan/wlan_bearer/wirelesslan/WiFiStatsEng/group
+/os/wlan/wlan_bearer/wirelesslan/WiFiStatsEng/inc
+/os/wlan/wlan_bearer/wirelesslan/WiFiStatsEng/src
+/os/wlan/wlan_bearer/wirelesslan/WiFiSurveyEng/bwins
+/os/wlan/wlan_bearer/wirelesslan/WiFiSurveyEng/eabi
+/os/wlan/wlan_bearer/wirelesslan/WiFiSurveyEng/group
+/os/wlan/wlan_bearer/wirelesslan/WiFiSurveyEng/inc
+/os/wlan/wlan_bearer/wirelesslan/WiFiSurveyEng/src
+/os/wlan/wlan_bearer/wirelesslan/WifiMCpr/group
+/os/wlan/wlan_bearer/wirelesslan/WifiMCpr/inc
+/os/wlan/wlan_bearer/wirelesslan/WifiMCpr/src
+/os/wlan/wlan_bearer/wirelesslan/group
+/os/wlan/wlan_bearer/wirelesslan/test/Availability/configs
+/os/wlan/wlan_bearer/wirelesslan/test/Availability/scripts
+/os/wlan/wlan_bearer/wirelesslan/test/CapTests/Common
+/os/wlan/wlan_bearer/wirelesslan/test/Documentation
+/os/wlan/wlan_bearer/wirelesslan/test/group
+/os/wlan/wlan_bearer/wirelesslan/test/wifiwinpdd/documentation
+/os/wlan/wlan_bearer/wirelesslan/test/wifiwinpdd/group
+/os/wlan/wlan_bearer/wirelesslan/test/wifiwinpdd/inc
+/os/wlan/wlan_bearer/wirelesslan/test/wifiwinpdd/src
+/os/wlan/wlan_bearer/wirelesslan/test/wifiwinpdd/tools
+/os/wlan/wlan_bearer/wirelesslan/test/wifiwinpdd/wifiinfs/pcap
+/os/wlan/wlan_bearer/wirelesslan/test/wifiwinpdd/wifiinfs/release
+/os/wlan/wlan_bearer/wirelesslan/test/wlaninfo/group
+/os/wlan/wlan_bearer/wirelesslan/test/wlaninfo/inc
+/os/wlan/wlan_bearer/wirelesslan/test/wlaninfo/src
+/os/networkingsrv/networkcontrol/qosfwconfig/QoSTesting/TS_QoS/bmarm
+/os/networkingsrv/networkcontrol/qosfwconfig/QoSTesting/TS_QoS/bwins
+/os/networkingsrv/networkcontrol/qosfwconfig/QoSTesting/TS_QoS/data
+/os/networkingsrv/networkcontrol/qosfwconfig/QoSTesting/TS_QoS/documentation
+/os/networkingsrv/networkcontrol/qosfwconfig/QoSTesting/TS_QoS/eabi
+/os/networkingsrv/networkcontrol/qosfwconfig/QoSTesting/TS_QoS/group
+/os/networkingsrv/networkcontrol/qosfwconfig/QoSTesting/TS_QoS/inc
+/os/networkingsrv/networkcontrol/qosfwconfig/QoSTesting/TS_QoS/src
+/os/networkingsrv/networkcontrol/qosfwconfig/QoSTesting/binaries/data/system/data
+/os/networkingsrv/networkcontrol/qosfwconfig/QoSTesting/binaries/epoc32/release/armv5/udeb
+/os/networkingsrv/networkcontrol/qosfwconfig/QoSTesting/binaries/epoc32/release/armv5/urel
+/os/networkingsrv/networkcontrol/qosfwconfig/QoSTesting/binaries/epoc32/release/winscw/udeb
+/os/networkingsrv/networkcontrol/qosfwconfig/QoSTesting/binaries/epoc32/release/winscw/urel
+/os/networkingsrv/networkcontrol/qosfwconfig/QoSTesting/testmodule/bmarm
+/os/networkingsrv/networkcontrol/qosfwconfig/QoSTesting/testmodule/bwins
+/os/networkingsrv/networkcontrol/qosfwconfig/QoSTesting/testmodule/eabi
+/os/networkingsrv/networkcontrol/qosfwconfig/QoSTesting/testmodule/group
+/os/networkingsrv/networkcontrol/qosfwconfig/QoSTesting/testmodule/inc
+/os/networkingsrv/networkcontrol/qosfwconfig/QoSTesting/testmodule/src
+/os/networkingsrv/networkcontrol/qosfwconfig/QoSTesting/testnif/bmarm
+/os/networkingsrv/networkcontrol/qosfwconfig/QoSTesting/testnif/bwins
+/os/networkingsrv/networkcontrol/qosfwconfig/QoSTesting/testnif/eabi
+/os/networkingsrv/networkcontrol/qosfwconfig/QoSTesting/testnif/group
+/os/networkingsrv/networkcontrol/qosfwconfig/QoSTesting/testnif/inc
+/os/networkingsrv/networkcontrol/qosfwconfig/QoSTesting/testnif/src
+/os/networkingsrv/networkcontrol/qosfwconfig/QoSTesting/umtssim/bmarm
+/os/networkingsrv/networkcontrol/qosfwconfig/QoSTesting/umtssim/bwins
+/os/networkingsrv/networkcontrol/qosfwconfig/QoSTesting/umtssim/documentation
+/os/networkingsrv/networkcontrol/qosfwconfig/QoSTesting/umtssim/eabi
+/os/networkingsrv/networkcontrol/qosfwconfig/QoSTesting/umtssim/group
+/os/networkingsrv/networkcontrol/qosfwconfig/QoSTesting/umtssim/inc
+/os/networkingsrv/networkcontrol/qosfwconfig/QoSTesting/umtssim/src
+/os/networkingsrv/networkingtestandutils/networkingexamples/anvltest/data
+/os/networkingsrv/networkingtestandutils/networkingexamples/anvltest/group
+/os/networkingsrv/networkingtestandutils/networkingexamples/anvltest/inc
+/os/networkingsrv/networkingtestandutils/networkingexamples/anvltest/src
+/os/cellularsrv/basebandabstraction/basebandchanneladaptor/Documentation
+/os/cellularsrv/basebandabstraction/basebandchanneladaptor/Inc
+/os/cellularsrv/basebandabstraction/basebandchanneladaptor/Test/TE_BCA/bmarm
+/os/cellularsrv/basebandabstraction/basebandchanneladaptor/Test/TE_BCA/bwins
+/os/cellularsrv/basebandabstraction/basebandchanneladaptor/Test/TE_BCA/configs
+/os/cellularsrv/basebandabstraction/basebandchanneladaptor/Test/TE_BCA/documentation
+/os/cellularsrv/basebandabstraction/basebandchanneladaptor/Test/TE_BCA/group
+/os/cellularsrv/basebandabstraction/basebandchanneladaptor/Test/TE_BCA/scripts
+/os/cellularsrv/basebandabstraction/basebandchanneladaptor/Test/TE_BCA/src
+/os/cellularsrv/basebandabstraction/basebandchanneladaptor/group
+/os/cellularsrv/basebandadaptationplugins/basebandchanneladaptorforisc/bwins
+/os/cellularsrv/basebandadaptationplugins/basebandchanneladaptorforisc/eabi
+/os/cellularsrv/basebandadaptationplugins/basebandchanneladaptorforisc/group
+/os/cellularsrv/basebandadaptationplugins/basebandchanneladaptorforisc/inc
+/os/cellularsrv/basebandadaptationplugins/basebandchanneladaptorforisc/src
+/os/cellularsrv/basebandadaptationplugins/basebandchanneladaptorforisc/test/IscTestStub/group
+/os/cellularsrv/basebandadaptationplugins/basebandchanneladaptorforisc/test/IscTestStub/src
+/os/cellularsrv/basebandadaptationplugins/basebandchanneladaptorforisc/test/te_bcatoisc/configs
+/os/cellularsrv/basebandadaptationplugins/basebandchanneladaptorforisc/test/te_bcatoisc/group
+/os/cellularsrv/basebandadaptationplugins/basebandchanneladaptorforisc/test/te_bcatoisc/scripts
+/os/cellularsrv/basebandadaptationplugins/basebandchanneladaptorforisc/test/te_bcatoisc/src
+/os/cellularsrv/basebandadaptationplugins/basebandchanneladaptorforc32/bmarm
+/os/cellularsrv/basebandadaptationplugins/basebandchanneladaptorforc32/bwins
+/os/cellularsrv/basebandadaptationplugins/basebandchanneladaptorforc32/documentation
+/os/cellularsrv/basebandadaptationplugins/basebandchanneladaptorforc32/eabi
+/os/cellularsrv/basebandadaptationplugins/basebandchanneladaptorforc32/group
+/os/cellularsrv/basebandadaptationplugins/basebandchanneladaptorforc32/inc
+/os/cellularsrv/basebandadaptationplugins/basebandchanneladaptorforc32/src
+/os/cellularsrv/basebandadaptationplugins/basebandchanneladaptorforc32/te_c32bca/bmarm
+/os/cellularsrv/basebandadaptationplugins/basebandchanneladaptorforc32/te_c32bca/bwins
+/os/cellularsrv/basebandadaptationplugins/basebandchanneladaptorforc32/te_c32bca/configs
+/os/cellularsrv/basebandadaptationplugins/basebandchanneladaptorforc32/te_c32bca/documentation
+/os/cellularsrv/basebandadaptationplugins/basebandchanneladaptorforc32/te_c32bca/group
+/os/cellularsrv/basebandadaptationplugins/basebandchanneladaptorforc32/te_c32bca/scripts
+/os/cellularsrv/basebandadaptationplugins/basebandchanneladaptorforc32/te_c32bca/src
+/os/cellularsrv/basebandabstraction/intersystemcomm/bwins
+/os/cellularsrv/basebandabstraction/intersystemcomm/documentation
+/os/cellularsrv/basebandabstraction/intersystemcomm/eabi
+/os/cellularsrv/basebandabstraction/intersystemcomm/example/group
+/os/cellularsrv/basebandabstraction/intersystemcomm/example/src
+/os/cellularsrv/basebandabstraction/intersystemcomm/group
+/os/cellularsrv/basebandabstraction/intersystemcomm/inc
+/os/networkingsrv/networkingtestandutils/networkingexamples/cgi/Documentation
+/os/networkingsrv/networkingtestandutils/networkingexamples/cgi/bmarm
+/os/networkingsrv/networkingtestandutils/networkingexamples/cgi/bwins
+/os/networkingsrv/networkingtestandutils/networkingexamples/cgi/eabi
+/os/networkingsrv/networkingtestandutils/networkingexamples/cgi/group
+/os/networkingsrv/networkingtestandutils/networkingexamples/cgi/inc
+/os/networkingsrv/networkingtestandutils/networkingexamples/cgi/src
+/os/unref/orphan/comgen/networking/confidential
+/os/cellularsrv/telephonyprotocols/csdagt/Documentation
+/os/cellularsrv/telephonyprotocols/csdagt/TS_CsdAgt
+/os/cellularsrv/telephonyprotocols/csdagt/bmarm
+/os/cellularsrv/telephonyprotocols/csdagt/bwins
+/os/cellularsrv/telephonyprotocols/csdagt/eabi
+/os/cellularsrv/telephonyprotocols/csdagt/group
+/os/cellularsrv/telephonyprotocols/csdagt/inc
+/os/cellularsrv/telephonyprotocols/csdagt/script
+/os/cellularsrv/telephonyprotocols/csdagt/src
+/os/networkingsrv/tcpiputils/dhcp/NetCfgExtnDhcp/inc
+/os/networkingsrv/tcpiputils/dhcp/NetCfgExtnDhcp/src
+/os/networkingsrv/tcpiputils/dhcp/bmarm
+/os/networkingsrv/tcpiputils/dhcp/bwins
+/os/networkingsrv/tcpiputils/dhcp/documentation
+/os/networkingsrv/tcpiputils/dhcp/eabi
+/os/networkingsrv/tcpiputils/dhcp/group
+/os/networkingsrv/tcpiputils/dhcp/include
+/os/networkingsrv/tcpiputils/dhcp/src
+/os/networkingsrv/tcpiputils/dhcp/te_dhcp/DummyDNSUpdateSrc
+/os/networkingsrv/tcpiputils/dhcp/te_dhcp/bwins
+/os/networkingsrv/tcpiputils/dhcp/te_dhcp/config/TestDHCPv6Config1
+/os/networkingsrv/tcpiputils/dhcp/te_dhcp/config/TestDHCPv6Config2
+/os/networkingsrv/tcpiputils/dhcp/te_dhcp/config/TestDHCPv6Config3
+/os/networkingsrv/tcpiputils/dhcp/te_dhcp/config/scripts
+/os/networkingsrv/tcpiputils/dhcp/te_dhcp/eabi
+/os/networkingsrv/tcpiputils/dhcp/te_dhcp/include
+/os/networkingsrv/tcpiputils/dhcp/te_dhcp/ramods
+/os/networkingsrv/tcpiputils/dhcp/te_dhcp/src
+/os/commsfw/datacommsserver/networkingdialogapi/Documentation
+/os/commsfw/datacommsserver/networkingdialogapi/TE_Dialog/Scripts
+/os/commsfw/datacommsserver/networkingdialogapi/TE_Dialog/bmarm
+/os/commsfw/datacommsserver/networkingdialogapi/TE_Dialog/bwins
+/os/commsfw/datacommsserver/networkingdialogapi/TE_Dialog/group
+/os/commsfw/datacommsserver/networkingdialogapi/TE_Dialog/src
+/os/commsfw/datacommsserver/networkingdialogapi/agentnotifier/bmarm
+/os/commsfw/datacommsserver/networkingdialogapi/agentnotifier/bwins
+/os/commsfw/datacommsserver/networkingdialogapi/agentnotifier/data
+/os/commsfw/datacommsserver/networkingdialogapi/agentnotifier/group
+/os/commsfw/datacommsserver/networkingdialogapi/agentnotifier/inc
+/os/commsfw/datacommsserver/networkingdialogapi/agentnotifier/src
+/os/commsfw/datacommsserver/networkingdialogapi/bwins
+/os/commsfw/datacommsserver/networkingdialogapi/default
+/os/commsfw/datacommsserver/networkingdialogapi/eabi
+/os/commsfw/datacommsserver/networkingdialogapi/group
+/os/commsfw/datacommsserver/networkingdialogapi/inc
+/os/commsfw/datacommsserver/networkingdialogapi/src
+/os/commsfw/datacommsserver/networkingdialogapi/tdialog
+/os/networkingsrv/tcpiputils/dnd/Documentation
+/os/networkingsrv/tcpiputils/dnd/Test/Group
+/os/networkingsrv/tcpiputils/dnd/Test/TE_LLMNR/Configs/Node1
+/os/networkingsrv/tcpiputils/dnd/Test/TE_LLMNR/Configs/Node2
+/os/networkingsrv/tcpiputils/dnd/Test/TE_LLMNR/Configs/Node3
+/os/networkingsrv/tcpiputils/dnd/Test/TE_LLMNR/Documentation
+/os/networkingsrv/tcpiputils/dnd/Test/TE_LLMNR/SRC
+/os/networkingsrv/tcpiputils/dnd/Test/TE_LLMNR/Scriptfiles
+/os/networkingsrv/tcpiputils/dnd/Test/TE_LLMNR/bwins
+/os/networkingsrv/tcpiputils/dnd/Test/TE_LLMNR/group
+/os/networkingsrv/tcpiputils/dnd/bmarm
+/os/networkingsrv/tcpiputils/dnd/bwins
+/os/networkingsrv/tcpiputils/dnd/data
+/os/networkingsrv/tcpiputils/dnd/eabi
+/os/networkingsrv/tcpiputils/dnd/group
+/os/networkingsrv/tcpiputils/dnd/inc
+/os/networkingsrv/tcpiputils/dnd/include
+/os/networkingsrv/tcpiputils/dnd/src
+/os/networkingsrv/networkingsrv_info/networkingdocs
+/mw/accesssec/eapol/eapfw/adapters/documentation
+/mw/accesssec/eapol/eapfw/adapters/wifieapaka/bwins
+/mw/accesssec/eapol/eapfw/adapters/wifieapaka/eabi
+/mw/accesssec/eapol/eapfw/adapters/wifieapaka/group
+/mw/accesssec/eapol/eapfw/adapters/wifieapaka/inc
+/mw/accesssec/eapol/eapfw/adapters/wifieapaka/src
+/mw/accesssec/eapol/eapfw/adapters/wifieapsim/bwins
+/mw/accesssec/eapol/eapfw/adapters/wifieapsim/eabi
+/mw/accesssec/eapol/eapfw/adapters/wifieapsim/group
+/mw/accesssec/eapol/eapfw/adapters/wifieapsim/inc
+/mw/accesssec/eapol/eapfw/adapters/wifieapsim/src
+/mw/accesssec/eapol/eapfw/adapters/wifieapwps/bwins
+/mw/accesssec/eapol/eapfw/adapters/wifieapwps/eabi
+/mw/accesssec/eapol/eapfw/adapters/wifieapwps/group
+/mw/accesssec/eapol/eapfw/adapters/wifieapwps/inc
+/mw/accesssec/eapol/eapfw/adapters/wifieapwps/src
+/mw/accesssec/eapol/eapfw/documentation
+/mw/accesssec/eapol/eapfw/eapsimaka/common/inc
+/mw/accesssec/eapol/eapfw/eapsimaka/common/src
+/mw/accesssec/eapol/eapfw/eapsimaka/eapaka/bwins
+/mw/accesssec/eapol/eapfw/eapsimaka/eapaka/eabi
+/mw/accesssec/eapol/eapfw/eapsimaka/eapaka/group
+/mw/accesssec/eapol/eapfw/eapsimaka/eapaka/inc
+/mw/accesssec/eapol/eapfw/eapsimaka/eapaka/src
+/mw/accesssec/eapol/eapfw/eapsimaka/eapsim/bwins
+/mw/accesssec/eapol/eapfw/eapsimaka/eapsim/eabi
+/mw/accesssec/eapol/eapfw/eapsimaka/eapsim/group
+/mw/accesssec/eapol/eapfw/eapsimaka/eapsim/inc
+/mw/accesssec/eapol/eapfw/eapsimaka/eapsim/src
+/mw/accesssec/eapol/eapfw/eaputils/bwins
+/mw/accesssec/eapol/eapfw/eaputils/eabi
+/mw/accesssec/eapol/eapfw/eaputils/group
+/mw/accesssec/eapol/eapfw/eaputils/inc
+/mw/accesssec/eapol/eapfw/eaputils/src
+/mw/accesssec/eapol/eapfw/eapwps/bwins
+/mw/accesssec/eapol/eapfw/eapwps/eabi
+/mw/accesssec/eapol/eapfw/eapwps/group
+/mw/accesssec/eapol/eapfw/eapwps/inc
+/mw/accesssec/eapol/eapfw/eapwps/src
+/mw/accesssec/eapol/eapfw/group
+/mw/accesssec/eapol/eapfw/test/group
+/mw/accesssec/eapol/eapfw/test/te_eap/configs
+/mw/accesssec/eapol/eapfw/test/te_eap/documentation
+/mw/accesssec/eapol/eapfw/test/te_eap/group
+/mw/accesssec/eapol/eapfw/test/te_eap/scripts
+/mw/accesssec/eapol/eapfw/test/te_wps/configs
+/mw/accesssec/eapol/eapfw/test/te_wps/docs
+/mw/accesssec/eapol/eapfw/test/te_wps/documentation
+/mw/accesssec/eapol/eapfw/test/te_wps/group
+/mw/accesssec/eapol/eapfw/test/te_wps/scripts
+/mw/accesssec/eapol/eapfw/test/te_wps/src
+/mw/accesssec/eapol/eapfw/test/te_wps/tools
+/mw/accesssec/eapol/eapfw/tools/wpsconnect/bmp
+/mw/accesssec/eapol/eapfw/tools/wpsconnect/docs
+/mw/accesssec/eapol/eapfw/tools/wpsconnect/group
+/mw/accesssec/eapol/eapfw/tools/wpsconnect/inc
+/mw/accesssec/eapol/eapfw/tools/wpsconnect/resource
+/mw/accesssec/eapol/eapfw/tools/wpsconnect/src
+/mw/accesssec/eapol/eapfw/tools/wpsconnectengine/bwins
+/mw/accesssec/eapol/eapfw/tools/wpsconnectengine/eabi
+/mw/accesssec/eapol/eapfw/tools/wpsconnectengine/group
+/mw/accesssec/eapol/eapfw/tools/wpsconnectengine/inc
+/mw/accesssec/eapol/eapfw/tools/wpsconnectengine/src
+/os/networkingsrv/linklayerprotocols/ethernetnif/Documentation
+/os/networkingsrv/linklayerprotocols/ethernetnif/EthInt
+/os/networkingsrv/linklayerprotocols/ethernetnif/EtherPkt
+/os/networkingsrv/linklayerprotocols/ethernetnif/INC
+/os/networkingsrv/linklayerprotocols/ethernetnif/IRLAN
+/os/networkingsrv/linklayerprotocols/ethernetnif/bwins
+/os/networkingsrv/linklayerprotocols/ethernetnif/data
+/os/networkingsrv/linklayerprotocols/ethernetnif/eabi
+/os/networkingsrv/linklayerprotocols/ethernetnif/group
+/os/networkingsrv/linklayerprotocols/ethernetnif/log
+/os/networkingsrv/linklayerprotocols/ethernetnif/version1/BMARM
+/os/networkingsrv/linklayerprotocols/ethernetnif/version1/BWINS
+/os/networkingsrv/linklayerprotocols/ethernetnif/version1/Documentation
+/os/networkingsrv/linklayerprotocols/ethernetnif/version1/EABI
+/os/networkingsrv/linklayerprotocols/ethernetnif/version1/EthInt
+/os/networkingsrv/linklayerprotocols/ethernetnif/version1/EtherPkt
+/os/networkingsrv/linklayerprotocols/ethernetnif/version1/INC
+/os/networkingsrv/linklayerprotocols/ethernetnif/version1/IRLAN
+/os/networkingsrv/linklayerprotocols/ethernetnif/version1/Test
+/os/networkingsrv/linklayerprotocols/ethernetnif/version1/data
+/os/networkingsrv/linklayerprotocols/ethernetnif/version1/group
+/os/networkingsrv/linklayerprotocols/ethernetnif/version1/log
+/os/networkingsrv/linklayerprotocols/ethernetpacketdriver/Documentation
+/os/networkingsrv/linklayerprotocols/ethernetpacketdriver/MacSet
+/os/networkingsrv/linklayerprotocols/ethernetpacketdriver/NetCards
+/os/networkingsrv/linklayerprotocols/ethernetpacketdriver/Src
+/os/networkingsrv/linklayerprotocols/ethernetpacketdriver/Tsrc
+/os/networkingsrv/linklayerprotocols/ethernetpacketdriver/WPdpack/Drivers
+/os/networkingsrv/linklayerprotocols/ethernetpacketdriver/WPdpack/Include/NET
+/os/networkingsrv/linklayerprotocols/ethernetpacketdriver/WPdpack/Lib
+/os/networkingsrv/linklayerprotocols/ethernetpacketdriver/bmarm
+/os/networkingsrv/linklayerprotocols/ethernetpacketdriver/bwins
+/os/networkingsrv/linklayerprotocols/ethernetpacketdriver/demoserv
+/os/networkingsrv/linklayerprotocols/ethernetpacketdriver/group
+/os/networkingsrv/linklayerprotocols/ethernetpacketdriver/inc
+/os/networkingsrv/linklayerprotocols/ethernetpacketdriver/pump
+/os/networkingsrv/networkingtestandutils/networkingexamples/examplecode/document
+/os/networkingsrv/networkingtestandutils/networkingexamples/examplecode/group
+/os/networkingsrv/networkingtestandutils/networkingexamples/examplecode/inetd/IPECHO
+/os/networkingsrv/networkingtestandutils/networkingexamples/examplecode/inetd/group
+/os/networkingsrv/networkingtestandutils/networkingexamples/examplecode/inetd/inc
+/os/networkingsrv/networkingtestandutils/networkingexamples/examplecode/inetd/src
+/os/networkingsrv/networkingtestandutils/networkingexamples/examplecode/inetd/test
+/os/networkingsrv/networkingtestandutils/networkingexamples/examplecode/ipip/bmarm
+/os/networkingsrv/networkingtestandutils/networkingexamples/examplecode/ipip/bwins
+/os/networkingsrv/networkingtestandutils/networkingexamples/examplecode/ipip/eabi
+/os/networkingsrv/networkingtestandutils/networkingexamples/examplecode/ipip/group
+/os/networkingsrv/networkingtestandutils/networkingexamples/examplecode/ipip/inc
+/os/networkingsrv/networkingtestandutils/networkingexamples/examplecode/ipip/src
+/os/networkingsrv/networkingtestandutils/networkingexamples/examplecode/ipip/test
+/os/networkingsrv/networkingtestandutils/networkingexamples/examplecode/tcpdumping/bmarm
+/os/networkingsrv/networkingtestandutils/networkingexamples/examplecode/tcpdumping/bwins
+/os/networkingsrv/networkingtestandutils/networkingexamples/examplecode/tcpdumping/eabi
+/os/networkingsrv/networkingtestandutils/networkingexamples/examplecode/tcpdumping/group
+/os/networkingsrv/networkingtestandutils/networkingexamples/examplecode/tcpdumping/inc
+/os/networkingsrv/networkingtestandutils/networkingexamples/examplecode/tcpdumping/src
+/mw/netprotocols/applayerprotocols/ftpengine/Documentation
+/mw/netprotocols/applayerprotocols/ftpengine/bmarm
+/mw/netprotocols/applayerprotocols/ftpengine/bwins
+/mw/netprotocols/applayerprotocols/ftpengine/consui
+/mw/netprotocols/applayerprotocols/ftpengine/eabi
+/mw/netprotocols/applayerprotocols/ftpengine/ftpprot
+/mw/netprotocols/applayerprotocols/ftpengine/ftpsess
+/mw/netprotocols/applayerprotocols/ftpengine/ftptest
+/mw/netprotocols/applayerprotocols/ftpengine/group
+/mw/netprotocols/applayerprotocols/ftpengine/inc
+/os/networkingsrv/networkingsrv_info/networkingrom/DNS_include
+/os/networkingsrv/networkingsrv_info/networkingrom/group
+/os/cellularsrv/telephonyprotocols/gprsumtsqosprt/Documentation
+/os/cellularsrv/telephonyprotocols/gprsumtsqosprt/bmarm
+/os/cellularsrv/telephonyprotocols/gprsumtsqosprt/bwins
+/os/cellularsrv/telephonyprotocols/gprsumtsqosprt/data
+/os/cellularsrv/telephonyprotocols/gprsumtsqosprt/eabi
+/os/cellularsrv/telephonyprotocols/gprsumtsqosprt/group
+/os/cellularsrv/telephonyprotocols/gprsumtsqosprt/inc
+/os/cellularsrv/telephonyprotocols/gprsumtsqosprt/src
+/os/networkingsrv/networkingtestandutils/exampleinternetutilities/Documentation
+/os/networkingsrv/networkingtestandutils/exampleinternetutilities/INC
+/os/networkingsrv/networkingtestandutils/exampleinternetutilities/IPCONFIG
+/os/networkingsrv/networkingtestandutils/exampleinternetutilities/PING
+/os/networkingsrv/networkingtestandutils/exampleinternetutilities/PINGENG
+/os/networkingsrv/networkingtestandutils/exampleinternetutilities/ROUTE
+/os/networkingsrv/networkingtestandutils/exampleinternetutilities/TFTP
+/os/networkingsrv/networkingtestandutils/exampleinternetutilities/TFTPENG
+/os/networkingsrv/networkingtestandutils/exampleinternetutilities/TRACERT
+/os/networkingsrv/networkingtestandutils/exampleinternetutilities/TRENG
+/os/networkingsrv/networkingtestandutils/exampleinternetutilities/bmarm
+/os/networkingsrv/networkingtestandutils/exampleinternetutilities/bwins
+/os/networkingsrv/networkingtestandutils/exampleinternetutilities/eabi
+/os/networkingsrv/networkingtestandutils/exampleinternetutilities/group
+/os/networkingsrv/networkprotocols/iphook/inhook6/bmarm
+/os/networkingsrv/networkprotocols/iphook/inhook6/bwins
+/os/networkingsrv/networkprotocols/iphook/inhook6/data
+/os/networkingsrv/networkprotocols/iphook/inhook6/documentation/example
+/os/networkingsrv/networkprotocols/iphook/inhook6/eabi
+/os/networkingsrv/networkprotocols/iphook/inhook6/group
+/os/networkingsrv/networkprotocols/iphook/inhook6/inc
+/os/networkingsrv/networkprotocols/iphook/inhook6/include
+/os/networkingsrv/networkprotocols/iphook/inhook6/src
+/os/networkingsrv/networkprotocols/iphook/inhook6example/Documentation
+/os/networkingsrv/networkprotocols/iphook/inhook6example/bmarm
+/os/networkingsrv/networkprotocols/iphook/inhook6example/bwins
+/os/networkingsrv/networkprotocols/iphook/inhook6example/data
+/os/networkingsrv/networkprotocols/iphook/inhook6example/eabi
+/os/networkingsrv/networkprotocols/iphook/inhook6example/group
+/os/networkingsrv/networkprotocols/iphook/inhook6example/inc
+/os/networkingsrv/networkprotocols/iphook/inhook6example/src
+/os/networkingsrv/esockapiextensions/internetsockets/bmarm
+/os/networkingsrv/esockapiextensions/internetsockets/bwins
+/os/networkingsrv/esockapiextensions/internetsockets/eabi
+/os/networkingsrv/esockapiextensions/internetsockets/group
+/os/networkingsrv/esockapiextensions/internetsockets/inc
+/os/networkingsrv/esockapiextensions/internetsockets/src
+/os/networkingsrv/networkingtestandutils/networkingintegrationtest/Documentation
+/os/networkingsrv/networkingtestandutils/networkingintegrationtest/Group
+/os/networkingsrv/networkingtestandutils/networkingintegrationtest/IntegrationTestUtils
+/os/networkingsrv/networkingtestandutils/networkingintegrationtest/NTRas
+/os/networkingsrv/networkingtestandutils/networkingintegrationtest/TS_SelfTest
+/os/networkingsrv/networkingtestandutils/networkingintegrationtest/Te_Http/Scripts
+/os/networkingsrv/networkingtestandutils/networkingintegrationtest/Te_Http/bmarm
+/os/networkingsrv/networkingtestandutils/networkingintegrationtest/Te_Http/bwins
+/os/networkingsrv/networkingtestandutils/networkingintegrationtest/Te_Http/group
+/os/networkingsrv/networkingtestandutils/networkingintegrationtest/Te_Http/src
+/os/networkingsrv/networkingtestandutils/networkingintegrationtest/Te_Http/testdata
+/os/networkingsrv/networkingtestandutils/networkingintegrationtest/Te_Msg/Scripts
+/os/networkingsrv/networkingtestandutils/networkingintegrationtest/Te_Msg/bmarm
+/os/networkingsrv/networkingtestandutils/networkingintegrationtest/Te_Msg/bwins
+/os/networkingsrv/networkingtestandutils/networkingintegrationtest/Te_Msg/group
+/os/networkingsrv/networkingtestandutils/networkingintegrationtest/Te_Msg/src
+/os/networkingsrv/networkingtestandutils/networkingintegrationtest/Te_Msg/testdata
+/os/networkingsrv/networkingtestandutils/networkingintegrationtest/bmarm
+/os/networkingsrv/networkingtestandutils/networkingintegrationtest/bwins
+/os/networkingsrv/networkingtestandutils/networkingintegrationtest/eabi
+/os/networkingsrv/networkingtestandutils/networkingintegrationtest/inc
+/os/networkingsrv/networkingtestandutils/networkingintegrationtest/it_script_files/itest_s1
+/os/networkingsrv/networkingtestandutils/networkingintegrationtest/it_script_files/itest_s2
+/os/networkingsrv/networkingtestandutils/networkingintegrationtest/it_script_files/itest_s3
+/os/networkingsrv/networkingtestandutils/networkingintegrationtest/it_script_files/itest_s4
+/os/networkingsrv/networkingtestandutils/networkingintegrationtest/it_script_files/itest_s5
+/os/networkingsrv/networkingtestandutils/networkingintegrationtest/scheduleTest
+/os/networkingsrv/networkingtestandutils/networkingintegrationtest/script_files
+/os/networkingsrv/networkingtestandutils/networkingintegrationtest/te_DedicatedSignalling1ryCtx/configs
+/os/networkingsrv/networkingtestandutils/networkingintegrationtest/te_DedicatedSignalling1ryCtx/documentation
+/os/networkingsrv/networkingtestandutils/networkingintegrationtest/te_DedicatedSignalling1ryCtx/group
+/os/networkingsrv/networkingtestandutils/networkingintegrationtest/te_DedicatedSignalling1ryCtx/scripts
+/os/networkingsrv/networkingtestandutils/networkingintegrationtest/te_Sblp/Documentation
+/os/networkingsrv/networkingtestandutils/networkingintegrationtest/te_Sblp/configs
+/os/networkingsrv/networkingtestandutils/networkingintegrationtest/te_Sblp/group
+/os/networkingsrv/networkingtestandutils/networkingintegrationtest/te_Sblp/scripts
+/os/networkingsrv/networkcontrol/ipnetworklayer/addressinfohook/BWINS
+/os/networkingsrv/networkcontrol/ipnetworklayer/addressinfohook/Documentation
+/os/networkingsrv/networkcontrol/ipnetworklayer/addressinfohook/EABI
+/os/networkingsrv/networkcontrol/ipnetworklayer/addressinfohook/data
+/os/networkingsrv/networkcontrol/ipnetworklayer/addressinfohook/group
+/os/networkingsrv/networkcontrol/ipnetworklayer/addressinfohook/inc
+/os/networkingsrv/networkcontrol/ipnetworklayer/addressinfohook/src
+/os/networkingsrv/networkcontrol/ipnetworklayer/group
+/os/networkingsrv/networkcontrol/ipnetworklayer/inc
+/os/networkingsrv/networkcontrol/ipnetworklayer/src
+/os/networkingsrv/networkcontrol/iptransportlayer/bwins
+/os/networkingsrv/networkcontrol/iptransportlayer/eabi
+/os/networkingsrv/networkcontrol/iptransportlayer/group
+/os/networkingsrv/networkcontrol/iptransportlayer/inc
+/os/networkingsrv/networkcontrol/iptransportlayer/ipaddrinfoparams/group
+/os/networkingsrv/networkcontrol/iptransportlayer/ipaddrinfoparams/inc
+/os/networkingsrv/networkcontrol/iptransportlayer/ipaddrinfoparams/src
+/os/networkingsrv/networkcontrol/iptransportlayer/src
+/os/networkingsrv/networkcontrol/commsuserpromptmgr/bwins
+/os/networkingsrv/networkcontrol/commsuserpromptmgr/database/inc
+/os/networkingsrv/networkcontrol/commsuserpromptmgr/database/src
+/os/networkingsrv/networkcontrol/commsuserpromptmgr/eabi
+/os/networkingsrv/networkcontrol/commsuserpromptmgr/group
+/os/networkingsrv/networkcontrol/commsuserpromptmgr/interface/inc
+/os/networkingsrv/networkcontrol/commsuserpromptmgr/interface/src
+/os/networkingsrv/networkcontrol/commsuserpromptmgr/state/inc
+/os/networkingsrv/networkcontrol/commsuserpromptmgr/state/src
+/os/networkingsrv/networkcontrol/commsuserpromptmgr/utils/inc
+/os/networkingsrv/networkcontrol/commsuserpromptmgr/utils/src
+/os/networkingsrv/networkcontrol/ipupsplugins/dialogcreator/bwins
+/os/networkingsrv/networkcontrol/ipupsplugins/dialogcreator/eabi
+/os/networkingsrv/networkcontrol/ipupsplugins/dialogcreator/group
+/os/networkingsrv/networkcontrol/ipupsplugins/dialogcreator/inc
+/os/networkingsrv/networkcontrol/ipupsplugins/dialogcreator/resource
+/os/networkingsrv/networkcontrol/ipupsplugins/dialogcreator/source
+/os/networkingsrv/networkcontrol/ipupsplugins/group
+/os/networkingsrv/networkcontrol/ipupsplugins/ipupsnotifierutil/bwins
+/os/networkingsrv/networkcontrol/ipupsplugins/ipupsnotifierutil/eabi
+/os/networkingsrv/networkcontrol/ipupsplugins/ipupsnotifierutil/group
+/os/networkingsrv/networkcontrol/ipupsplugins/ipupsnotifierutil/inc
+/os/networkingsrv/networkcontrol/ipupsplugins/ipupsnotifierutil/src
+/os/networkingsrv/networkcontrol/ipupsplugins/policyfile
+/os/networkingsrv/networkcontrol/ipupsplugins/test/te_ipups/data
+/os/networkingsrv/networkcontrol/ipupsplugins/test/te_ipups/group
+/os/networkingsrv/networkcontrol/ipupsplugins/test/te_ipups/inc
+/os/networkingsrv/networkcontrol/ipupsplugins/test/te_ipups/policyfile
+/os/networkingsrv/networkcontrol/ipupsplugins/test/te_ipups/scripts
+/os/networkingsrv/networkcontrol/ipupsplugins/test/te_ipups/src
+/os/networkingsrv/networkcontrol/ipcpr/documentation
+/os/networkingsrv/networkcontrol/ipcpr/group
+/os/networkingsrv/networkcontrol/ipcpr/inc
+/os/networkingsrv/networkcontrol/ipcpr/src
+/os/commsfw/baseconnectionproviders/refcpr/group
+/os/commsfw/baseconnectionproviders/refcpr/inc
+/os/commsfw/baseconnectionproviders/refcpr/src
+/app/techview/networkingutils/ipadministrationtool/data
+/app/techview/networkingutils/ipadministrationtool/group
+/app/techview/networkingutils/ipadministrationtool/inc
+/app/techview/networkingutils/ipadministrationtool/src
+/os/networkingsrv/networkprotocols/ipeventnotifier/Documentation
+/os/networkingsrv/networkprotocols/ipeventnotifier/IPEventFactory/group
+/os/networkingsrv/networkprotocols/ipeventnotifier/IPEventFactory/inc
+/os/networkingsrv/networkprotocols/ipeventnotifier/IPEventFactory/src
+/os/networkingsrv/networkprotocols/ipeventnotifier/IPEventTypes/INC
+/os/networkingsrv/networkprotocols/ipeventnotifier/IPEventTypes/group
+/os/networkingsrv/networkprotocols/ipeventnotifier/IPEventTypes/src
+/os/networkingsrv/networkprotocols/ipeventnotifier/bmarm
+/os/networkingsrv/networkprotocols/ipeventnotifier/bwins
+/os/networkingsrv/networkprotocols/ipeventnotifier/eabi
+/os/networkingsrv/networkprotocols/ipeventnotifier/group
+/os/networkingsrv/networkprotocols/ipeventnotifier/inc
+/os/networkingsrv/networkprotocols/ipeventnotifier/src
+/os/networkingsrv/networkprotocols/ipeventnotifier/te_IPEventNotifier/Documentation
+/os/networkingsrv/networkprotocols/ipeventnotifier/te_IPEventNotifier/group
+/os/networkingsrv/networkprotocols/ipeventnotifier/te_IPEventNotifier/scripts
+/os/networkingsrv/networkprotocols/ipeventnotifier/te_IPEventNotifier/src
+/os/networkingsrv/networkprotocols/ipeventnotifier/te_IPEventNotifier/testdata
+/os/networkingsrv/networkingtestandutils/ipanalyzer/Documentation
+/os/networkingsrv/networkingtestandutils/ipanalyzer/data
+/os/networkingsrv/networkingtestandutils/ipanalyzer/group
+/os/networkingsrv/networkingtestandutils/ipanalyzer/inc
+/os/networkingsrv/networkingtestandutils/ipanalyzer/src
+/os/networkingsrv/networksecurity/ipsec/captestframework-ipsecpol/common
+/os/networkingsrv/networksecurity/ipsec/captestframework-kmdserver/common
+/os/networkingsrv/networksecurity/ipsec/captestframework-pkiservice/common
+/os/networkingsrv/networksecurity/ipsec/cscommon/inc
+/os/networkingsrv/networksecurity/ipsec/cscommon/src
+/os/networkingsrv/networksecurity/ipsec/eventmediator/bwins
+/os/networkingsrv/networksecurity/ipsec/eventmediator/data
+/os/networkingsrv/networksecurity/ipsec/eventmediator/group
+/os/networkingsrv/networksecurity/ipsec/eventmediator/inc
+/os/networkingsrv/networksecurity/ipsec/eventmediator/src
+/os/networkingsrv/networksecurity/ipsec/eventmediatorapi/bmarm
+/os/networkingsrv/networksecurity/ipsec/eventmediatorapi/bwins
+/os/networkingsrv/networksecurity/ipsec/eventmediatorapi/eabi
+/os/networkingsrv/networksecurity/ipsec/eventmediatorapi/group
+/os/networkingsrv/networksecurity/ipsec/eventmediatorapi/inc
+/os/networkingsrv/networksecurity/ipsec/eventmediatorapi/src
+/os/networkingsrv/networksecurity/ipsec/group
+/os/networkingsrv/networksecurity/ipsec/ikepolparser/bmarm
+/os/networkingsrv/networksecurity/ipsec/ikepolparser/bwins
+/os/networkingsrv/networksecurity/ipsec/ikepolparser/documentation
+/os/networkingsrv/networksecurity/ipsec/ikepolparser/eabi
+/os/networkingsrv/networksecurity/ipsec/ikepolparser/group
+/os/networkingsrv/networksecurity/ipsec/ikepolparser/inc
+/os/networkingsrv/networksecurity/ipsec/ikepolparser/src
+/os/networkingsrv/networksecurity/ipsec/ikesocketplugin/data
+/os/networkingsrv/networksecurity/ipsec/ikesocketplugin/group
+/os/networkingsrv/networksecurity/ipsec/ikesocketplugin/inc
+/os/networkingsrv/networksecurity/ipsec/ikesocketplugin/src
+/os/networkingsrv/networksecurity/ipsec/ipsec6/Documentation
+/os/networkingsrv/networksecurity/ipsec/ipsec6/bmarm
+/os/networkingsrv/networksecurity/ipsec/ipsec6/bwins
+/os/networkingsrv/networksecurity/ipsec/ipsec6/data
+/os/networkingsrv/networksecurity/ipsec/ipsec6/eabi
+/os/networkingsrv/networksecurity/ipsec/ipsec6/group
+/os/networkingsrv/networksecurity/ipsec/ipsec6/inc
+/os/networkingsrv/networksecurity/ipsec/ipsec6/include
+/os/networkingsrv/networksecurity/ipsec/ipsec6/src
+/os/networkingsrv/networksecurity/ipsec/ipsec_itest/Documentation
+/os/networkingsrv/networksecurity/ipsec/ipsec_itest/bmarm
+/os/networkingsrv/networksecurity/ipsec/ipsec_itest/bwins
+/os/networkingsrv/networksecurity/ipsec/ipsec_itest/data
+/os/networkingsrv/networksecurity/ipsec/ipsec_itest/eabi
+/os/networkingsrv/networksecurity/ipsec/ipsec_itest/group
+/os/networkingsrv/networksecurity/ipsec/ipsec_itest/notif
+/os/networkingsrv/networksecurity/ipsec/ipsec_itest/src
+/os/networkingsrv/networksecurity/ipsec/ipseccrypto/Documentation
+/os/networkingsrv/networksecurity/ipsec/ipseccrypto/bmarm
+/os/networkingsrv/networksecurity/ipsec/ipseccrypto/bwins
+/os/networkingsrv/networksecurity/ipsec/ipseccrypto/eabi
+/os/networkingsrv/networksecurity/ipsec/ipseccrypto/group
+/os/networkingsrv/networksecurity/ipsec/ipseccrypto/inc
+/os/networkingsrv/networksecurity/ipsec/ipseccrypto/src
+/os/networkingsrv/networksecurity/ipsec/ipsecpol/Documentation
+/os/networkingsrv/networksecurity/ipsec/ipsecpol/bwins
+/os/networkingsrv/networksecurity/ipsec/ipsecpol/data
+/os/networkingsrv/networksecurity/ipsec/ipsecpol/group
+/os/networkingsrv/networksecurity/ipsec/ipsecpol/inc
+/os/networkingsrv/networksecurity/ipsec/ipsecpol/src
+/os/networkingsrv/networksecurity/ipsec/ipsecpolapi/bmarm
+/os/networkingsrv/networksecurity/ipsec/ipsecpolapi/bwins
+/os/networkingsrv/networksecurity/ipsec/ipsecpolapi/eabi
+/os/networkingsrv/networksecurity/ipsec/ipsecpolapi/group
+/os/networkingsrv/networksecurity/ipsec/ipsecpolapi/inc
+/os/networkingsrv/networksecurity/ipsec/ipsecpolapi/src
+/os/networkingsrv/networksecurity/ipsec/ipsecpolparser/bmarm
+/os/networkingsrv/networksecurity/ipsec/ipsecpolparser/bwins
+/os/networkingsrv/networksecurity/ipsec/ipsecpolparser/eabi
+/os/networkingsrv/networksecurity/ipsec/ipsecpolparser/group
+/os/networkingsrv/networksecurity/ipsec/ipsecpolparser/inc
+/os/networkingsrv/networksecurity/ipsec/ipsecpolparser/src
+/os/networkingsrv/networksecurity/ipsec/kmdserver/bmarm
+/os/networkingsrv/networksecurity/ipsec/kmdserver/bwins
+/os/networkingsrv/networksecurity/ipsec/kmdserver/eabi
+/os/networkingsrv/networksecurity/ipsec/kmdserver/group
+/os/networkingsrv/networksecurity/ipsec/kmdserver/inc
+/os/networkingsrv/networksecurity/ipsec/kmdserver/src
+/os/networkingsrv/networksecurity/ipsec/lib_pfkey/bmarm
+/os/networkingsrv/networksecurity/ipsec/lib_pfkey/bwins
+/os/networkingsrv/networksecurity/ipsec/lib_pfkey/eabi
+/os/networkingsrv/networksecurity/ipsec/lib_pfkey/group
+/os/networkingsrv/networksecurity/ipsec/lib_pfkey/include
+/os/networkingsrv/networksecurity/ipsec/lib_pfkey/src
+/os/networkingsrv/networksecurity/ipsec/lib_pfkey/test
+/os/networkingsrv/networksecurity/ipsec/pkiservice/bwins
+/os/networkingsrv/networksecurity/ipsec/pkiservice/group
+/os/networkingsrv/networksecurity/ipsec/pkiservice/inc
+/os/networkingsrv/networksecurity/ipsec/pkiservice/src
+/os/networkingsrv/networksecurity/ipsec/pkiserviceapi/bmarm
+/os/networkingsrv/networksecurity/ipsec/pkiserviceapi/bwins
+/os/networkingsrv/networksecurity/ipsec/pkiserviceapi/eabi
+/os/networkingsrv/networksecurity/ipsec/pkiserviceapi/group
+/os/networkingsrv/networksecurity/ipsec/pkiserviceapi/inc
+/os/networkingsrv/networksecurity/ipsec/pkiserviceapi/src
+/os/networkingsrv/networksecurity/ipsec/sit/bmarm
+/os/networkingsrv/networksecurity/ipsec/sit/bwins
+/os/networkingsrv/networksecurity/ipsec/sit/eabi
+/os/networkingsrv/networksecurity/ipsec/sit/group
+/os/networkingsrv/networksecurity/ipsec/sit/inc
+/os/networkingsrv/networksecurity/ipsec/sit/src
+/os/networkingsrv/networksecurity/ipsec/te_ipsec_platsec/group
+/os/networkingsrv/networksecurity/ipsec/te_ipsec_platsec/scripts
+/os/networkingsrv/networksecurity/ipsec/te_ipsec_platsec/src
+/os/networkingsrv/networksecurity/ipsec/te_ipsec_platsec/testdata
+/os/networkingsrv/networksecurity/ipsec/utlbase64/bmarm
+/os/networkingsrv/networksecurity/ipsec/utlbase64/bwins
+/os/networkingsrv/networksecurity/ipsec/utlbase64/eabi
+/os/networkingsrv/networksecurity/ipsec/utlbase64/group
+/os/networkingsrv/networksecurity/ipsec/utlbase64/inc
+/os/networkingsrv/networksecurity/ipsec/utlbase64/src
+/os/networkingsrv/networksecurity/ipsec/utlcrypto/bmarm
+/os/networkingsrv/networksecurity/ipsec/utlcrypto/bwins
+/os/networkingsrv/networksecurity/ipsec/utlcrypto/eabi
+/os/networkingsrv/networksecurity/ipsec/utlcrypto/group
+/os/networkingsrv/networksecurity/ipsec/utlcrypto/inc
+/os/networkingsrv/networksecurity/ipsec/utlcrypto/src
+/os/networkingsrv/networksecurity/ipsec/utlpkcs1/bmarm
+/os/networkingsrv/networksecurity/ipsec/utlpkcs1/bwins
+/os/networkingsrv/networksecurity/ipsec/utlpkcs1/eabi
+/os/networkingsrv/networksecurity/ipsec/utlpkcs1/group
+/os/networkingsrv/networksecurity/ipsec/utlpkcs1/inc
+/os/networkingsrv/networksecurity/ipsec/utlpkcs1/src
+/os/networkingsrv/networksecurity/ipsec/utlpkcs10/bmarm
+/os/networkingsrv/networksecurity/ipsec/utlpkcs10/bwins
+/os/networkingsrv/networksecurity/ipsec/utlpkcs10/eabi
+/os/networkingsrv/networksecurity/ipsec/utlpkcs10/group
+/os/networkingsrv/networksecurity/ipsec/utlpkcs10/inc
+/os/networkingsrv/networksecurity/ipsec/utlpkcs10/src
+/os/networkingsrv/networksecurity/ipsec/utlpkcs5/bmarm
+/os/networkingsrv/networksecurity/ipsec/utlpkcs5/bwins
+/os/networkingsrv/networksecurity/ipsec/utlpkcs5/eabi
+/os/networkingsrv/networksecurity/ipsec/utlpkcs5/group
+/os/networkingsrv/networksecurity/ipsec/utlpkcs5/inc
+/os/networkingsrv/networksecurity/ipsec/utlpkcs5/src
+/os/networkingsrv/networksecurity/ipsec/vpnapi/bmarm
+/os/networkingsrv/networksecurity/ipsec/vpnapi/bwins
+/os/networkingsrv/networksecurity/ipsec/vpnapi/data
+/os/networkingsrv/networksecurity/ipsec/vpnapi/documentation
+/os/networkingsrv/networksecurity/ipsec/vpnapi/eabi
+/os/networkingsrv/networksecurity/ipsec/vpnapi/group
+/os/networkingsrv/networksecurity/ipsec/vpnapi/inc
+/os/networkingsrv/networksecurity/ipsec/vpnapi/src
+/os/networkingsrv/networksecurity/ipsec/vpnconnagt/group
+/os/networkingsrv/networksecurity/ipsec/vpnconnagt/inc
+/os/networkingsrv/networksecurity/ipsec/vpnconnagt/src
+/os/networkingsrv/networksecurity/ipsec/vpnmanager/bwins
+/os/networkingsrv/networksecurity/ipsec/vpnmanager/data
+/os/networkingsrv/networksecurity/ipsec/vpnmanager/documentation
+/os/networkingsrv/networksecurity/ipsec/vpnmanager/group
+/os/networkingsrv/networksecurity/ipsec/vpnmanager/inc
+/os/networkingsrv/networksecurity/ipsec/vpnmanager/src
+/os/networkingsrv/networkprotocols/mobileip/NetCfgExtnMip/src
+/os/networkingsrv/networkprotocols/mobileip/group
+/os/networkingsrv/pppcompressionplugins/mppc/INC
+/os/networkingsrv/pppcompressionplugins/mppc/SRC
+/os/networkingsrv/pppcompressionplugins/mppc/bmarm
+/os/networkingsrv/pppcompressionplugins/mppc/bwins
+/os/networkingsrv/pppcompressionplugins/mppc/eabi
+/os/networkingsrv/pppcompressionplugins/mppc/group
+/os/networkingsrv/tcpiputils/networkaddressandporttranslation/BMARM
+/os/networkingsrv/tcpiputils/networkaddressandporttranslation/BWINS
+/os/networkingsrv/tcpiputils/networkaddressandporttranslation/Documentation
+/os/networkingsrv/tcpiputils/networkaddressandporttranslation/EABI
+/os/networkingsrv/tcpiputils/networkaddressandporttranslation/TE_Napt/configs
+/os/networkingsrv/tcpiputils/networkaddressandporttranslation/TE_Napt/group
+/os/networkingsrv/tcpiputils/networkaddressandporttranslation/TE_Napt/scripts
+/os/networkingsrv/tcpiputils/networkaddressandporttranslation/Te_NaptCap/configs
+/os/networkingsrv/tcpiputils/networkaddressandporttranslation/Te_NaptCap/group
+/os/networkingsrv/tcpiputils/networkaddressandporttranslation/Te_NaptCap/scripts
+/os/networkingsrv/tcpiputils/networkaddressandporttranslation/data
+/os/networkingsrv/tcpiputils/networkaddressandporttranslation/group
+/os/networkingsrv/tcpiputils/networkaddressandporttranslation/inc
+/os/networkingsrv/tcpiputils/networkaddressandporttranslation/src
+/os/commsfw/datacommsserver/networkcontroller/Documentation
+/os/commsfw/datacommsserver/networkcontroller/bmarm
+/os/commsfw/datacommsserver/networkcontroller/bwins
+/os/commsfw/datacommsserver/networkcontroller/eabi
+/os/commsfw/datacommsserver/networkcontroller/group
+/os/commsfw/datacommsserver/networkcontroller/inc
+/os/commsfw/datacommsserver/networkcontroller/src
+/os/commsfw/datacommsserver/networkcontroller/te_mobileiptosimpleipfallback/bwins
+/os/commsfw/datacommsserver/networkcontroller/te_mobileiptosimpleipfallback/config
+/os/commsfw/datacommsserver/networkcontroller/te_mobileiptosimpleipfallback/dummymipdaemon/bwins
+/os/commsfw/datacommsserver/networkcontroller/te_mobileiptosimpleipfallback/dummymipdaemon/group
+/os/commsfw/datacommsserver/networkcontroller/te_mobileiptosimpleipfallback/dummymipdaemon/include
+/os/commsfw/datacommsserver/networkcontroller/te_mobileiptosimpleipfallback/dummymipdaemon/src
+/os/commsfw/datacommsserver/networkcontroller/te_mobileiptosimpleipfallback/group
+/os/commsfw/datacommsserver/networkcontroller/te_mobileiptosimpleipfallback/inc
+/os/commsfw/datacommsserver/networkcontroller/te_mobileiptosimpleipfallback/scripts
+/os/commsfw/datacommsserver/networkcontroller/te_mobileiptosimpleipfallback/src
+/os/commsfw/datacommsserver/networkcontroller/ts_common
+/os/commsfw/datacommsserver/networkcontroller/ts_netcon
+/os/commsfw/datacommsserver/networkcontroller/ts_netconoom
+/os/commsfw/datacommsserver/networkcontroller/ts_queue
+/os/networkingsrv/networkingtestandutils/networkingperformancemeasurementtools/delaymeterlibrary/bwins
+/os/networkingsrv/networkingtestandutils/networkingperformancemeasurementtools/delaymeterlibrary/eabi
+/os/networkingsrv/networkingtestandutils/networkingperformancemeasurementtools/delaymeterlibrary/group
+/os/networkingsrv/networkingtestandutils/networkingperformancemeasurementtools/delaymeterlibrary/inc
+/os/networkingsrv/networkingtestandutils/networkingperformancemeasurementtools/delaymeterlibrary/src
+/os/networkingsrv/networkingtestandutils/networkingperformancemeasurementtools/delaymeterproto/group
+/os/networkingsrv/networkingtestandutils/networkingperformancemeasurementtools/delaymeterproto/inc
+/os/networkingsrv/networkingtestandutils/networkingperformancemeasurementtools/delaymeterproto/src
+/os/networkingsrv/networkingtestandutils/networkingperformancemeasurementtools/documentation
+/os/networkingsrv/networkingtestandutils/networkingperformancemeasurementtools/exeservice/bin
+/os/networkingsrv/networkingtestandutils/networkingperformancemeasurementtools/exeservice/data
+/os/networkingsrv/networkingtestandutils/networkingperformancemeasurementtools/exeservice/group
+/os/networkingsrv/networkingtestandutils/networkingperformancemeasurementtools/exeservice/inc
+/os/networkingsrv/networkingtestandutils/networkingperformancemeasurementtools/exeservice/src
+/os/networkingsrv/networkingtestandutils/networkingperformancemeasurementtools/group
+/os/networkingsrv/networkingtestandutils/networkingperformancemeasurementtools/netperftefplugin/group
+/os/networkingsrv/networkingtestandutils/networkingperformancemeasurementtools/netperftefplugin/inc
+/os/networkingsrv/networkingtestandutils/networkingperformancemeasurementtools/netperftefplugin/src
+/os/networkingsrv/networkingtestandutils/networkingperformancemeasurementtools/pcapservice/bin
+/os/networkingsrv/networkingtestandutils/networkingperformancemeasurementtools/pcapservice/data
+/os/networkingsrv/networkingtestandutils/networkingperformancemeasurementtools/pcapservice/group
+/os/networkingsrv/networkingtestandutils/networkingperformancemeasurementtools/pcapservice/inc
+/os/networkingsrv/networkingtestandutils/networkingperformancemeasurementtools/pcapservice/src
+/os/networkingsrv/networkingtestandutils/networkingperformancemeasurementtools/testcontroller/bin
+/os/networkingsrv/networkingtestandutils/networkingperformancemeasurementtools/testcontroller/data
+/os/networkingsrv/networkingtestandutils/networkingperformancemeasurementtools/testcontroller/group
+/os/networkingsrv/networkingtestandutils/networkingperformancemeasurementtools/utilslib/inc
+/os/networkingsrv/networkingtestandutils/networkingperformancemeasurementtools/utilslib/src
+/app/techview/networkingutils/nameresolverutility/data
+/app/techview/networkingutils/nameresolverutility/group
+/app/techview/networkingutils/nameresolverutility/inc
+/app/techview/networkingutils/nameresolverutility/src
+/os/networkingsrv/linklayercontrol/nullagt/TS_nullagt/bmarm
+/os/networkingsrv/linklayercontrol/nullagt/TS_nullagt/bwins
+/os/networkingsrv/linklayercontrol/nullagt/TS_nullagt/eabi
+/os/networkingsrv/linklayercontrol/nullagt/TS_nullagt/group
+/os/networkingsrv/linklayercontrol/nullagt/TS_nullagt/inc
+/os/networkingsrv/linklayercontrol/nullagt/TS_nullagt/src
+/os/networkingsrv/linklayercontrol/nullagt/documentation
+/os/networkingsrv/linklayercontrol/nullagt/group
+/os/networkingsrv/linklayercontrol/nullagt/inc
+/os/networkingsrv/linklayercontrol/nullagt/src
+/os/networkingsrv/linklayerutils/packetlogger/bmarm
+/os/networkingsrv/linklayerutils/packetlogger/bwins
+/os/networkingsrv/linklayerutils/packetlogger/eabi
+/os/networkingsrv/linklayerutils/packetlogger/group
+/os/networkingsrv/linklayerutils/packetlogger/inc
+/os/networkingsrv/linklayerutils/packetlogger/src
+/os/networkingsrv/networkcontrol/pfqoslib/bmarm
+/os/networkingsrv/networkcontrol/pfqoslib/bwins
+/os/networkingsrv/networkcontrol/pfqoslib/documentation
+/os/networkingsrv/networkcontrol/pfqoslib/eabi
+/os/networkingsrv/networkcontrol/pfqoslib/group
+/os/networkingsrv/networkcontrol/pfqoslib/inc
+/os/networkingsrv/networkcontrol/pfqoslib/src
+/os/networkingsrv/networkingtestandutils/networkingexamples/ping/data
+/os/networkingsrv/networkingtestandutils/networkingexamples/ping/group
+/os/networkingsrv/networkingtestandutils/networkingexamples/ping/inc
+/os/networkingsrv/networkingtestandutils/networkingexamples/ping/src
+/os/networkingsrv/linklayerprotocols/pppnif/Documentation
+/os/networkingsrv/linklayerprotocols/pppnif/INC
+/os/networkingsrv/linklayerprotocols/pppnif/SPPP
+/os/networkingsrv/linklayerprotocols/pppnif/SVJCOMP
+/os/networkingsrv/linklayerprotocols/pppnif/bmarm
+/os/networkingsrv/linklayerprotocols/pppnif/bwins
+/os/networkingsrv/linklayerprotocols/pppnif/data
+/os/networkingsrv/linklayerprotocols/pppnif/eabi
+/os/networkingsrv/linklayerprotocols/pppnif/group
+/os/networkingsrv/linklayerprotocols/pppnif/te_ppp/ANVL/DocTAL
+/os/networkingsrv/linklayerprotocols/pppnif/te_ppp/ANVL/script
+/os/networkingsrv/linklayerprotocols/pppnif/te_ppp/ANVL/src
+/os/networkingsrv/linklayerprotocols/pppnif/te_ppp/Documentation
+/os/networkingsrv/linklayerprotocols/pppnif/te_ppp/TS_dummyppp/bmarm
+/os/networkingsrv/linklayerprotocols/pppnif/te_ppp/TS_dummyppp/bwins
+/os/networkingsrv/linklayerprotocols/pppnif/te_ppp/TS_dummyppp/config
+/os/networkingsrv/linklayerprotocols/pppnif/te_ppp/TS_dummyppp/eabi
+/os/networkingsrv/linklayerprotocols/pppnif/te_ppp/TS_dummyppp/group
+/os/networkingsrv/linklayerprotocols/pppnif/te_ppp/TS_dummyppp/inc
+/os/networkingsrv/linklayerprotocols/pppnif/te_ppp/TS_dummyppp/src
+/os/networkingsrv/linklayerprotocols/pppnif/te_ppp/bmarm
+/os/networkingsrv/linklayerprotocols/pppnif/te_ppp/bwins
+/os/networkingsrv/linklayerprotocols/pppnif/te_ppp/dummyppp/bmarm
+/os/networkingsrv/linklayerprotocols/pppnif/te_ppp/dummyppp/bwins
+/os/networkingsrv/linklayerprotocols/pppnif/te_ppp/dummyppp/eabi
+/os/networkingsrv/linklayerprotocols/pppnif/te_ppp/dummyppp/group
+/os/networkingsrv/linklayerprotocols/pppnif/te_ppp/dummyppp/src
+/os/networkingsrv/linklayerprotocols/pppnif/te_ppp/eabi
+/os/networkingsrv/linklayerprotocols/pppnif/te_ppp/group
+/os/networkingsrv/linklayerprotocols/pppnif/te_ppp/inc
+/os/networkingsrv/linklayerprotocols/pppnif/te_ppp/scripts
+/os/networkingsrv/linklayerprotocols/pppnif/te_ppp/src
+/os/networkingsrv/linklayerprotocols/pppnif/te_ppp/te_incoming_ppp/Documentation
+/os/networkingsrv/linklayerprotocols/pppnif/te_ppp/te_incoming_ppp/bwins
+/os/networkingsrv/linklayerprotocols/pppnif/te_ppp/te_incoming_ppp/config
+/os/networkingsrv/linklayerprotocols/pppnif/te_ppp/te_incoming_ppp/group
+/os/networkingsrv/linklayerprotocols/pppnif/te_ppp/te_incoming_ppp/inc
+/os/networkingsrv/linklayerprotocols/pppnif/te_ppp/te_incoming_ppp/scripts
+/os/networkingsrv/linklayerprotocols/pppnif/te_ppp/te_incoming_ppp/src
+/os/networkingsrv/linklayerprotocols/pppnif/te_ppp/te_manual_pppauth/Documentation/Diagrams
+/os/networkingsrv/linklayerprotocols/pppnif/te_ppp/te_manual_pppauth/config
+/os/networkingsrv/linklayerprotocols/pppnif/te_ppp/te_manual_pppauth/scripts
+/os/networkingsrv/linklayerprotocols/pppnif/te_ppp/te_pppcomp/bwins
+/os/networkingsrv/linklayerprotocols/pppnif/te_ppp/te_pppcomp/config
+/os/networkingsrv/linklayerprotocols/pppnif/te_ppp/te_pppcomp/group
+/os/networkingsrv/linklayerprotocols/pppnif/te_ppp/te_pppcomp/inc
+/os/networkingsrv/linklayerprotocols/pppnif/te_ppp/te_pppcomp/scripts
+/os/networkingsrv/linklayerprotocols/pppnif/te_ppp/te_pppcomp/src
+/os/networkingsrv/linklayerprotocols/pppnif/te_ppp/te_vjcomp/Documentation
+/os/networkingsrv/linklayerprotocols/pppnif/te_ppp/te_vjcomp/bwins
+/os/networkingsrv/linklayerprotocols/pppnif/te_ppp/te_vjcomp/config/TCSIM
+/os/networkingsrv/linklayerprotocols/pppnif/te_ppp/te_vjcomp/group
+/os/networkingsrv/linklayerprotocols/pppnif/te_ppp/te_vjcomp/inc
+/os/networkingsrv/linklayerprotocols/pppnif/te_ppp/te_vjcomp/scripts
+/os/networkingsrv/linklayerprotocols/pppnif/te_ppp/te_vjcomp/src
+/os/networkingsrv/linklayerprotocols/pppnif/te_pppsize/bwins
+/os/networkingsrv/linklayerprotocols/pppnif/te_pppsize/group
+/os/networkingsrv/linklayerprotocols/pppnif/te_pppsize/inc
+/os/networkingsrv/linklayerprotocols/pppnif/te_pppsize/scripts
+/os/networkingsrv/linklayerprotocols/pppnif/te_pppsize/src
+/os/networkingsrv/linklayerprotocols/pppnif/tsrc
+/os/networkingsrv/linklayerprotocols/pppnif/version1/BMARM
+/os/networkingsrv/linklayerprotocols/pppnif/version1/BWINS
+/os/networkingsrv/linklayerprotocols/pppnif/version1/Documentation
+/os/networkingsrv/linklayerprotocols/pppnif/version1/EABI
+/os/networkingsrv/linklayerprotocols/pppnif/version1/INC
+/os/networkingsrv/linklayerprotocols/pppnif/version1/SPPP
+/os/networkingsrv/linklayerprotocols/pppnif/version1/SVJCOMP
+/os/networkingsrv/linklayerprotocols/pppnif/version1/data
+/os/networkingsrv/linklayerprotocols/pppnif/version1/group
+/os/networkingsrv/linklayerprotocols/pppnif/version1/te_ppp/ANVL/DocTAL
+/os/networkingsrv/linklayerprotocols/pppnif/version1/te_ppp/ANVL/script
+/os/networkingsrv/linklayerprotocols/pppnif/version1/te_ppp/ANVL/src
+/os/networkingsrv/linklayerprotocols/pppnif/version1/te_ppp/BMARM
+/os/networkingsrv/linklayerprotocols/pppnif/version1/te_ppp/BWINS
+/os/networkingsrv/linklayerprotocols/pppnif/version1/te_ppp/Documentation
+/os/networkingsrv/linklayerprotocols/pppnif/version1/te_ppp/TS_dummyppp/EABI
+/os/networkingsrv/linklayerprotocols/pppnif/version1/te_ppp/TS_dummyppp/bmarm
+/os/networkingsrv/linklayerprotocols/pppnif/version1/te_ppp/TS_dummyppp/bwins
+/os/networkingsrv/linklayerprotocols/pppnif/version1/te_ppp/TS_dummyppp/config
+/os/networkingsrv/linklayerprotocols/pppnif/version1/te_ppp/TS_dummyppp/group
+/os/networkingsrv/linklayerprotocols/pppnif/version1/te_ppp/TS_dummyppp/inc
+/os/networkingsrv/linklayerprotocols/pppnif/version1/te_ppp/TS_dummyppp/src
+/os/networkingsrv/linklayerprotocols/pppnif/version1/te_ppp/dummyppp/EABI
+/os/networkingsrv/linklayerprotocols/pppnif/version1/te_ppp/dummyppp/bmarm
+/os/networkingsrv/linklayerprotocols/pppnif/version1/te_ppp/dummyppp/bwins
+/os/networkingsrv/linklayerprotocols/pppnif/version1/te_ppp/dummyppp/group
+/os/networkingsrv/linklayerprotocols/pppnif/version1/te_ppp/dummyppp/src
+/os/networkingsrv/linklayerprotocols/pppnif/version1/te_ppp/eabi
+/os/networkingsrv/linklayerprotocols/pppnif/version1/te_ppp/group
+/os/networkingsrv/linklayerprotocols/pppnif/version1/te_ppp/inc
+/os/networkingsrv/linklayerprotocols/pppnif/version1/te_ppp/scripts
+/os/networkingsrv/linklayerprotocols/pppnif/version1/te_ppp/src
+/os/networkingsrv/linklayerprotocols/pppnif/version1/te_ppp/te_incoming_ppp/Documentation
+/os/networkingsrv/linklayerprotocols/pppnif/version1/te_ppp/te_incoming_ppp/bwins
+/os/networkingsrv/linklayerprotocols/pppnif/version1/te_ppp/te_incoming_ppp/config
+/os/networkingsrv/linklayerprotocols/pppnif/version1/te_ppp/te_incoming_ppp/group
+/os/networkingsrv/linklayerprotocols/pppnif/version1/te_ppp/te_incoming_ppp/inc
+/os/networkingsrv/linklayerprotocols/pppnif/version1/te_ppp/te_incoming_ppp/scripts
+/os/networkingsrv/linklayerprotocols/pppnif/version1/te_ppp/te_incoming_ppp/src
+/os/networkingsrv/linklayerprotocols/pppnif/version1/te_ppp/te_manual_pppauth/Documentation/Diagrams
+/os/networkingsrv/linklayerprotocols/pppnif/version1/te_ppp/te_manual_pppauth/config
+/os/networkingsrv/linklayerprotocols/pppnif/version1/te_ppp/te_manual_pppauth/scripts
+/os/networkingsrv/linklayerprotocols/pppnif/version1/te_ppp/te_pppcomp/bwins
+/os/networkingsrv/linklayerprotocols/pppnif/version1/te_ppp/te_pppcomp/config
+/os/networkingsrv/linklayerprotocols/pppnif/version1/te_ppp/te_pppcomp/group
+/os/networkingsrv/linklayerprotocols/pppnif/version1/te_ppp/te_pppcomp/inc
+/os/networkingsrv/linklayerprotocols/pppnif/version1/te_ppp/te_pppcomp/scripts
+/os/networkingsrv/linklayerprotocols/pppnif/version1/te_ppp/te_pppcomp/src
+/os/networkingsrv/linklayerprotocols/pppnif/version1/te_ppp/te_vjcomp/Documentation
+/os/networkingsrv/linklayerprotocols/pppnif/version1/te_ppp/te_vjcomp/bwins
+/os/networkingsrv/linklayerprotocols/pppnif/version1/te_ppp/te_vjcomp/config/TCSIM
+/os/networkingsrv/linklayerprotocols/pppnif/version1/te_ppp/te_vjcomp/group
+/os/networkingsrv/linklayerprotocols/pppnif/version1/te_ppp/te_vjcomp/inc
+/os/networkingsrv/linklayerprotocols/pppnif/version1/te_ppp/te_vjcomp/scripts
+/os/networkingsrv/linklayerprotocols/pppnif/version1/te_ppp/te_vjcomp/src
+/os/networkingsrv/linklayerprotocols/pppnif/version1/te_pppsize/BWINS
+/os/networkingsrv/linklayerprotocols/pppnif/version1/te_pppsize/group
+/os/networkingsrv/linklayerprotocols/pppnif/version1/te_pppsize/inc
+/os/networkingsrv/linklayerprotocols/pppnif/version1/te_pppsize/scripts
+/os/networkingsrv/linklayerprotocols/pppnif/version1/te_pppsize/src
+/os/networkingsrv/linklayerprotocols/pppnif/version1/tsrc
+/os/networkingsrv/pppcompressionplugins/predictorcompression/INC
+/os/networkingsrv/pppcompressionplugins/predictorcompression/SRC
+/os/networkingsrv/pppcompressionplugins/predictorcompression/bmarm
+/os/networkingsrv/pppcompressionplugins/predictorcompression/bwins
+/os/networkingsrv/pppcompressionplugins/predictorcompression/eabi
+/os/networkingsrv/pppcompressionplugins/predictorcompression/group
+/os/networkingsrv/networkingtestandutils/ipprobe/Documentation
+/os/networkingsrv/networkingtestandutils/ipprobe/bmarm
+/os/networkingsrv/networkingtestandutils/ipprobe/bwins
+/os/networkingsrv/networkingtestandutils/ipprobe/data
+/os/networkingsrv/networkingtestandutils/ipprobe/eabi
+/os/networkingsrv/networkingtestandutils/ipprobe/group
+/os/networkingsrv/networkingtestandutils/ipprobe/inc
+/os/networkingsrv/networkingtestandutils/ipprobe/src
+/os/cellularsrv/telephonyprotocols/psdagt/Documentation
+/os/cellularsrv/telephonyprotocols/psdagt/TS_PsdAgt
+/os/cellularsrv/telephonyprotocols/psdagt/bmarm
+/os/cellularsrv/telephonyprotocols/psdagt/bwins
+/os/cellularsrv/telephonyprotocols/psdagt/eabi
+/os/cellularsrv/telephonyprotocols/psdagt/group
+/os/cellularsrv/telephonyprotocols/psdagt/inc
+/os/cellularsrv/telephonyprotocols/psdagt/src
+/os/networkingsrv/networkcontrol/qosfwconfig/qos/Documentation
+/os/networkingsrv/networkcontrol/qosfwconfig/qos/bmarm
+/os/networkingsrv/networkcontrol/qosfwconfig/qos/bwins
+/os/networkingsrv/networkcontrol/qosfwconfig/qos/data
+/os/networkingsrv/networkcontrol/qosfwconfig/qos/eabi
+/os/networkingsrv/networkcontrol/qosfwconfig/qos/group
+/os/networkingsrv/networkcontrol/qosfwconfig/qos/inc
+/os/networkingsrv/networkcontrol/qosfwconfig/qos/include
+/os/networkingsrv/networkcontrol/qosfwconfig/qos/src
+/os/cellularsrv/telephonyprotocols/qosextnapi/bwins
+/os/cellularsrv/telephonyprotocols/qosextnapi/eabi
+/os/cellularsrv/telephonyprotocols/qosextnapi/group
+/os/cellularsrv/telephonyprotocols/qosextnapi/inc
+/os/cellularsrv/telephonyprotocols/qosextnapi/src
+/os/networkingsrv/networkcontrol/qoslib/Documentation
+/os/networkingsrv/networkcontrol/qoslib/bmarm
+/os/networkingsrv/networkcontrol/qoslib/bwins
+/os/networkingsrv/networkcontrol/qoslib/eabi
+/os/networkingsrv/networkcontrol/qoslib/group
+/os/networkingsrv/networkcontrol/qoslib/inc
+/os/networkingsrv/networkcontrol/qoslib/include
+/os/networkingsrv/networkcontrol/qoslib/src
+/os/networkingsrv/networkcontrol/qosfwconfig/qostest/TS_QoSAPI/Documentation
+/os/networkingsrv/networkcontrol/qosfwconfig/qostest/TS_QoSAPI/bmarm
+/os/networkingsrv/networkcontrol/qosfwconfig/qostest/TS_QoSAPI/bwins
+/os/networkingsrv/networkcontrol/qosfwconfig/qostest/TS_QoSAPI/eabi
+/os/networkingsrv/networkcontrol/qosfwconfig/qostest/TS_QoSAPI/etc
+/os/networkingsrv/networkcontrol/qosfwconfig/qostest/TS_QoSAPI/group
+/os/networkingsrv/networkcontrol/qosfwconfig/qostest/TS_QoSAPI/inc
+/os/networkingsrv/networkcontrol/qosfwconfig/qostest/TS_QoSAPI/scripts/ip4/ExplicitUdp
+/os/networkingsrv/networkcontrol/qosfwconfig/qostest/TS_QoSAPI/scripts/ip4/Explicittcp
+/os/networkingsrv/networkcontrol/qosfwconfig/qostest/TS_QoSAPI/scripts/ip4/ImplicitUdp
+/os/networkingsrv/networkcontrol/qosfwconfig/qostest/TS_QoSAPI/scripts/ip4/implicittcp
+/os/networkingsrv/networkcontrol/qosfwconfig/qostest/TS_QoSAPI/src
+/os/networkingsrv/networkcontrol/qosfwconfig/qostest/group
+/os/networkingsrv/networkcontrol/qosfwconfig/qostest/te_qos/Documentation
+/os/networkingsrv/networkcontrol/qosfwconfig/qostest/te_qos/configs/version1
+/os/networkingsrv/networkcontrol/qosfwconfig/qostest/te_qos/group
+/os/networkingsrv/networkcontrol/qosfwconfig/qostest/te_qos/scripts/version1
+/os/networkingsrv/networkcontrol/qosfwconfig/qostest/testnif/Documentation
+/os/networkingsrv/networkcontrol/qosfwconfig/qostest/testnif/INC
+/os/networkingsrv/networkcontrol/qosfwconfig/qostest/testnif/SPPP
+/os/networkingsrv/networkcontrol/qosfwconfig/qostest/testnif/SVJCOMP
+/os/networkingsrv/networkcontrol/qosfwconfig/qostest/testnif/t_testnif/bmarm
+/os/networkingsrv/networkcontrol/qosfwconfig/qostest/testnif/t_testnif/bwins
+/os/networkingsrv/networkcontrol/qosfwconfig/qostest/testnif/t_testnif/eabi
+/os/networkingsrv/networkcontrol/qosfwconfig/qostest/testnif/t_testnif/group
+/os/networkingsrv/networkcontrol/qosfwconfig/qostest/testnif/t_testnif/inc
+/os/networkingsrv/networkcontrol/qosfwconfig/qostest/testnif/t_testnif/src
+/os/networkingsrv/networkcontrol/qosfwconfig/qostest/testnif/version1/Documentation
+/os/networkingsrv/networkcontrol/qosfwconfig/qostest/testnif/version1/INC
+/os/networkingsrv/networkcontrol/qosfwconfig/qostest/testnif/version1/SPPP
+/os/networkingsrv/networkcontrol/qosfwconfig/qostest/testnif/version1/SVJCOMP
+/os/networkingsrv/networkcontrol/qosfwconfig/qostest/testnif/version1/t_testnif/EABI
+/os/networkingsrv/networkcontrol/qosfwconfig/qostest/testnif/version1/t_testnif/bmarm
+/os/networkingsrv/networkcontrol/qosfwconfig/qostest/testnif/version1/t_testnif/bwins
+/os/networkingsrv/networkcontrol/qosfwconfig/qostest/testnif/version1/t_testnif/group
+/os/networkingsrv/networkcontrol/qosfwconfig/qostest/testnif/version1/t_testnif/inc
+/os/networkingsrv/networkcontrol/qosfwconfig/qostest/testnif/version1/t_testnif/src
+/os/cellularsrv/telephonyprotocols/rawipnif/Documentation
+/os/cellularsrv/telephonyprotocols/rawipnif/bwins
+/os/cellularsrv/telephonyprotocols/rawipnif/data
+/os/cellularsrv/telephonyprotocols/rawipnif/eabi
+/os/cellularsrv/telephonyprotocols/rawipnif/group
+/os/cellularsrv/telephonyprotocols/rawipnif/inc
+/os/cellularsrv/telephonyprotocols/rawipnif/src
+/os/cellularsrv/telephonyprotocols/rawipnif/version1/Documentation
+/os/cellularsrv/telephonyprotocols/rawipnif/version1/bmarm
+/os/cellularsrv/telephonyprotocols/rawipnif/version1/bwins
+/os/cellularsrv/telephonyprotocols/rawipnif/version1/data
+/os/cellularsrv/telephonyprotocols/rawipnif/version1/eabi
+/os/cellularsrv/telephonyprotocols/rawipnif/version1/group
+/os/cellularsrv/telephonyprotocols/rawipnif/version1/inc
+/os/cellularsrv/telephonyprotocols/rawipnif/version1/src
+/os/networkingsrv/linklayerprotocols/slipnif/INC
+/os/networkingsrv/linklayerprotocols/slipnif/SRC
+/os/networkingsrv/linklayerprotocols/slipnif/bmarm
+/os/networkingsrv/linklayerprotocols/slipnif/bwins
+/os/networkingsrv/linklayerprotocols/slipnif/eabi
+/os/networkingsrv/linklayerprotocols/slipnif/group
+/os/unref/orphan/comgen/networking/sockbench/Documentation
+/os/unref/orphan/comgen/networking/sockbench/Panaman
+/os/unref/orphan/comgen/networking/sockbench/Reference
+/os/unref/orphan/comgen/networking/sockbench/TS_Control
+/os/unref/orphan/comgen/networking/sockbench/TS_Profiler
+/os/unref/orphan/comgen/networking/sockbench/TS_Sockbench
+/os/unref/orphan/comgen/networking/sockbench/bmarm
+/os/unref/orphan/comgen/networking/sockbench/bwins
+/os/unref/orphan/comgen/networking/sockbench/data/TS_Esock_Replacement_Tests
+/os/unref/orphan/comgen/networking/sockbench/data/T_BcaRawIpNif
+/os/unref/orphan/comgen/networking/sockbench/data/T_SpudRawIpNif
+/os/unref/orphan/comgen/networking/sockbench/data/T_SpudRawIpNif_27010
+/os/unref/orphan/comgen/networking/sockbench/data/Tests_Typhoon
+/os/unref/orphan/comgen/networking/sockbench/eabi
+/os/unref/orphan/comgen/networking/sockbench/group
+/os/unref/orphan/comgen/networking/sockbench/inc
+/os/unref/orphan/comgen/networking/sockbench/mutility/reports
+/os/unref/orphan/comgen/networking/sockbench/mutility/tcpdump.sh
+/os/cellularsrv/telephonyprotocols/secondarypdpcontextumtsdriver/Documentation
+/os/cellularsrv/telephonyprotocols/secondarypdpcontextumtsdriver/group
+/os/cellularsrv/telephonyprotocols/secondarypdpcontextumtsdriver/inc
+/os/cellularsrv/telephonyprotocols/secondarypdpcontextumtsdriver/spudman/bmarm
+/os/cellularsrv/telephonyprotocols/secondarypdpcontextumtsdriver/spudman/bwins
+/os/cellularsrv/telephonyprotocols/secondarypdpcontextumtsdriver/spudman/eabi
+/os/cellularsrv/telephonyprotocols/secondarypdpcontextumtsdriver/spudman/group
+/os/cellularsrv/telephonyprotocols/secondarypdpcontextumtsdriver/spudman/inc
+/os/cellularsrv/telephonyprotocols/secondarypdpcontextumtsdriver/spudman/src
+/os/cellularsrv/telephonyprotocols/secondarypdpcontextumtsdriver/te_spudNetworkSide/bmarm
+/os/cellularsrv/telephonyprotocols/secondarypdpcontextumtsdriver/te_spudNetworkSide/bwins
+/os/cellularsrv/telephonyprotocols/secondarypdpcontextumtsdriver/te_spudNetworkSide/configs/version1
+/os/cellularsrv/telephonyprotocols/secondarypdpcontextumtsdriver/te_spudNetworkSide/group
+/os/cellularsrv/telephonyprotocols/secondarypdpcontextumtsdriver/te_spudNetworkSide/scripts/version1
+/os/cellularsrv/telephonyprotocols/secondarypdpcontextumtsdriver/te_spudNetworkSide/src
+/os/cellularsrv/telephonyprotocols/secondarypdpcontextumtsdriver/te_spudRSubConn/bmarm
+/os/cellularsrv/telephonyprotocols/secondarypdpcontextumtsdriver/te_spudRSubConn/bwins
+/os/cellularsrv/telephonyprotocols/secondarypdpcontextumtsdriver/te_spudRSubConn/configs/spud_staticip
+/os/cellularsrv/telephonyprotocols/secondarypdpcontextumtsdriver/te_spudRSubConn/group
+/os/cellularsrv/telephonyprotocols/secondarypdpcontextumtsdriver/te_spudRSubConn/scripts
+/os/cellularsrv/telephonyprotocols/secondarypdpcontextumtsdriver/te_spudRSubConn/src
+/os/networkingsrv/pppcompressionplugins/staclzscompression/INC
+/os/networkingsrv/pppcompressionplugins/staclzscompression/SRC
+/os/networkingsrv/pppcompressionplugins/staclzscompression/bmarm
+/os/networkingsrv/pppcompressionplugins/staclzscompression/bwins
+/os/networkingsrv/pppcompressionplugins/staclzscompression/documentation
+/os/networkingsrv/pppcompressionplugins/staclzscompression/eabi
+/os/networkingsrv/pppcompressionplugins/staclzscompression/group
+/os/networkingsrv/networkprotocols/tcpipv4v6prt/Documentation
+/os/networkingsrv/networkprotocols/tcpipv4v6prt/bmarm
+/os/networkingsrv/networkprotocols/tcpipv4v6prt/bwins
+/os/networkingsrv/networkprotocols/tcpipv4v6prt/data
+/os/networkingsrv/networkprotocols/tcpipv4v6prt/eabi
+/os/networkingsrv/networkprotocols/tcpipv4v6prt/group
+/os/networkingsrv/networkprotocols/tcpipv4v6prt/inc
+/os/networkingsrv/networkprotocols/tcpipv4v6prt/src
+/mw/netprotocols/applayerprotocols/telnetengine/Documentation
+/mw/netprotocols/applayerprotocols/telnetengine/INC
+/mw/netprotocols/applayerprotocols/telnetengine/SRC
+/mw/netprotocols/applayerprotocols/telnetengine/TTELNET
+/mw/netprotocols/applayerprotocols/telnetengine/TUIEDIT
+/mw/netprotocols/applayerprotocols/telnetengine/bmarm
+/mw/netprotocols/applayerprotocols/telnetengine/bwins
+/mw/netprotocols/applayerprotocols/telnetengine/eabi
+/mw/netprotocols/applayerprotocols/telnetengine/group
+/os/commsfw/serialserver/packetloopbackcsy/Documentation
+/os/commsfw/serialserver/packetloopbackcsy/bmarm
+/os/commsfw/serialserver/packetloopbackcsy/bwins
+/os/commsfw/serialserver/packetloopbackcsy/eabi
+/os/commsfw/serialserver/packetloopbackcsy/group
+/os/commsfw/serialserver/packetloopbackcsy/inc
+/os/commsfw/serialserver/packetloopbackcsy/scripts
+/os/commsfw/serialserver/packetloopbackcsy/src
+/os/commsfw/serialserver/packetloopbackcsy/testdata
+/os/unref/orphan/comgen/networking/test/codenomicon/dhcp/TestWrapper
+/os/unref/orphan/comgen/networking/test/codenomicon/dhcp/documentation
+/os/unref/orphan/comgen/networking/test/codenomicon/ipv46/Documentation
+/os/unref/orphan/comgen/networking/test/codenomicon/ipv46/TestWrapper/bin
+/os/unref/orphan/comgen/networking/test/codenomicon/ipv46/TestWrapper/src
+/os/unref/orphan/comgen/networking/test/codenomicon/ipv46/scripts/ipv4
+/os/unref/orphan/comgen/networking/test/codenomicon/ipv46/scripts/ipv6
+/os/unref/orphan/comgen/networking/test/netsteb/ethernet/group
+/os/unref/orphan/comgen/networking/test/netsteb/ethernet/h2
+/os/unref/orphan/comgen/networking/test/netsteb/ethernet/h4
+/os/unref/orphan/comgen/networking/test/netsteb/ethernet/kernelstamper
+/os/unref/orphan/comgen/networking/test/netsteb/ethernet/wins/wpdpack/drivers
+/os/unref/orphan/comgen/networking/test/netsteb/ethernet/wins/wpdpack/include/net
+/os/unref/orphan/comgen/networking/test/netsteb/ethernet/wins/wpdpack/lib
+/os/unref/orphan/comgen/networking/test/netsteb/group
+/os/unref/orphan/comgen/networking/test/netsteb/rtp/EABI
+/os/unref/orphan/comgen/networking/test/netsteb/rtp/bwins
+/os/unref/orphan/comgen/networking/test/netsteb/rtp/core/inc
+/os/unref/orphan/comgen/networking/test/netsteb/rtp/group
+/os/unref/orphan/comgen/networking/test/netsteb/rtp/source/rtp
+/os/unref/orphan/comgen/networking/test/netsteb/rtpsock/bwins
+/os/unref/orphan/comgen/networking/test/netsteb/rtpsock/eabi
+/os/unref/orphan/comgen/networking/test/netsteb/rtpsock/group
+/os/unref/orphan/comgen/networking/test/netsteb/rtpsock/inc
+/os/unref/orphan/comgen/networking/test/netsteb/rtpsock/src
+/os/unref/orphan/comgen/networking/test/netsteb/te_netsteb/config
+/os/unref/orphan/comgen/networking/test/netsteb/te_netsteb/documentation
+/os/unref/orphan/comgen/networking/test/netsteb/te_netsteb/group
+/os/unref/orphan/comgen/networking/test/netsteb/te_netsteb/inc
+/os/unref/orphan/comgen/networking/test/netsteb/te_netsteb/posttest
+/os/unref/orphan/comgen/networking/test/netsteb/te_netsteb/scripts
+/os/unref/orphan/comgen/networking/test/netsteb/te_netsteb/src
+/os/unref/orphan/comgen/networking/test/netsteb/timestamper/group
+/os/unref/orphan/comgen/networking/test/netsteb/timestamper/inc
+/os/unref/orphan/comgen/networking/test/netsteb/timestamper/src
+/os/unref/orphan/comgen/networking/test/te_Anvl/Documentation
+/os/unref/orphan/comgen/networking/test/te_Anvl/anvlbox/ip
+/os/unref/orphan/comgen/networking/test/te_Anvl/anvlbox/ipsecauth
+/os/unref/orphan/comgen/networking/test/te_Anvl/anvlbox/ipsecesp
+/os/unref/orphan/comgen/networking/test/te_Anvl/anvlbox/ipsecike
+/os/unref/orphan/comgen/networking/test/te_Anvl/anvlbox/ppp
+/os/unref/orphan/comgen/networking/test/te_Anvl/anvlbox/tcpadv
+/os/unref/orphan/comgen/networking/test/te_Anvl/anvlbox/tcpcore
+/os/unref/orphan/comgen/networking/test/te_Anvl/anvlbox/tcpperf
+/os/unref/orphan/comgen/networking/test/te_Anvl/configs
+/os/unref/orphan/comgen/networking/test/te_Anvl/group
+/os/unref/orphan/comgen/networking/test/te_Anvl/inc
+/os/unref/orphan/comgen/networking/test/te_Anvl/mntcpepoc/group
+/os/unref/orphan/comgen/networking/test/te_Anvl/mntcpepoc/inc
+/os/unref/orphan/comgen/networking/test/te_Anvl/mntcpepoc/src
+/os/unref/orphan/comgen/networking/test/te_Anvl/scripts
+/os/unref/orphan/comgen/networking/test/te_Anvl/src
+/os/unref/orphan/comgen/networking/test/te_TahiClient/Documentation
+/os/unref/orphan/comgen/networking/test/te_TahiClient/configs
+/os/unref/orphan/comgen/networking/test/te_TahiClient/group
+/os/unref/orphan/comgen/networking/test/te_TahiClient/inc
+/os/unref/orphan/comgen/networking/test/te_TahiClient/scripts
+/os/unref/orphan/comgen/networking/test/te_TahiClient/src
+/os/networkingsrv/networksecurity/tls/Documentation
+/os/networkingsrv/networksecurity/tls/bwins
+/os/networkingsrv/networksecurity/tls/eabi
+/os/networkingsrv/networksecurity/tls/group
+/os/networkingsrv/networksecurity/tls/inc
+/os/networkingsrv/networksecurity/tls/protocol
+/os/networkingsrv/networksecurity/tls/secsock
+/os/networkingsrv/networksecurity/tls/test/codenomicon/TLS test wrapper/scripts
+/os/networkingsrv/networksecurity/tls/test/codenomicon/TlsClientTest
+/os/networkingsrv/networksecurity/tls/ts_tls/data
+/os/networkingsrv/networksecurity/tls/ts_tls/scripts
+/os/networkingsrv/linklayerprotocols/tunnelnif/bmarm
+/os/networkingsrv/linklayerprotocols/tunnelnif/bwins
+/os/networkingsrv/linklayerprotocols/tunnelnif/eabi
+/os/networkingsrv/linklayerprotocols/tunnelnif/group
+/os/networkingsrv/linklayerprotocols/tunnelnif/inc
+/os/networkingsrv/linklayerprotocols/tunnelnif/include
+/os/networkingsrv/linklayerprotocols/tunnelnif/src
+/os/networkingsrv/linklayerprotocols/tunnelnif/version1/BMARM
+/os/networkingsrv/linklayerprotocols/tunnelnif/version1/BWINS
+/os/networkingsrv/linklayerprotocols/tunnelnif/version1/EABI
+/os/networkingsrv/linklayerprotocols/tunnelnif/version1/group
+/os/networkingsrv/linklayerprotocols/tunnelnif/version1/inc
+/os/networkingsrv/linklayerprotocols/tunnelnif/version1/include
+/os/networkingsrv/linklayerprotocols/tunnelnif/version1/src
+/os/networkingsrv/networkingtestandutils/networkingexamples/udpecho/Documentation
+/os/networkingsrv/networkingtestandutils/networkingexamples/udpecho/data
+/os/networkingsrv/networkingtestandutils/networkingexamples/udpecho/group
+/os/networkingsrv/networkingtestandutils/networkingexamples/udpecho/inc
+/os/networkingsrv/networkingtestandutils/networkingexamples/udpecho/src
+/os/networkingsrv/networkingtestandutils/networkingexamples/udpsend/data
+/os/networkingsrv/networkingtestandutils/networkingexamples/udpsend/group
+/os/networkingsrv/networkingtestandutils/networkingexamples/udpsend/inc
+/os/networkingsrv/networkingtestandutils/networkingexamples/udpsend/src
+/os/unref/orphan/comgen/networking/umts/Documentation
+/os/networkingsrv/linklayercontrol/genericscprparameters/bwins
+/os/networkingsrv/linklayercontrol/genericscprparameters/eabi
+/os/networkingsrv/linklayercontrol/genericscprparameters/group
+/os/networkingsrv/linklayercontrol/genericscprparameters/inc
+/os/networkingsrv/linklayercontrol/genericscprparameters/src
+/os/networkingsrv/linklayercontrol/mbmsparameters/group
+/os/networkingsrv/linklayercontrol/mbmsparameters/inc
+/os/networkingsrv/linklayercontrol/mbmsparameters/src
+/os/cellularsrv/telephonyprotocols/pdplayer/group
+/os/cellularsrv/telephonyprotocols/pdplayer/inc
+/os/cellularsrv/telephonyprotocols/pdplayer/src
+/os/cellularsrv/telephonyprotocols/qos3gppcpr/group
+/os/cellularsrv/telephonyprotocols/qos3gppcpr/inc
+/os/cellularsrv/telephonyprotocols/qos3gppcpr/src
+/os/networkingsrv/networkcontrol/qosipscpr/group
+/os/networkingsrv/networkcontrol/qosipscpr/inc
+/os/networkingsrv/networkcontrol/qosipscpr/src
+/os/unref/orphan/comgen/networking/umts/spudfsm/inc
+/os/unref/orphan/comgen/networking/umts/spudfsm/src
+/os/unref/orphan/comgen/networking/umts/spudtel/inc
+/os/unref/orphan/comgen/networking/umts/spudtel/src
+/os/unref/orphan/comgen/networking/umts/test/Te_UmtsGprsSCPR/Documentation
+/os/unref/orphan/comgen/networking/umts/test/Te_UmtsGprsSCPR/configs
+/os/unref/orphan/comgen/networking/umts/test/Te_UmtsGprsSCPR/group
+/os/unref/orphan/comgen/networking/umts/test/Te_UmtsGprsSCPR/scripts
+/os/unref/orphan/comgen/networking/umts/test/group
+/os/unref/orphan/comgen/networking/umts/test/te_mbms/Documentation
+/os/unref/orphan/comgen/networking/umts/test/te_mbms/configs
+/os/unref/orphan/comgen/networking/umts/test/te_mbms/group
+/os/unref/orphan/comgen/networking/umts/test/te_mbms/scripts
+/os/unref/orphan/comgen/networking/umts/test/te_spud/BWINS
+/os/unref/orphan/comgen/networking/umts/test/te_spud/documentation
+/os/unref/orphan/comgen/networking/umts/test/te_spud/group
+/os/unref/orphan/comgen/networking/umts/test/te_spud/inc
+/os/unref/orphan/comgen/networking/umts/test/te_spud/scripts
+/os/unref/orphan/comgen/networking/umts/test/te_spud/src
+/os/unref/orphan/comgen/networking/umts/test/te_spud/testdata
+/os/networkingsrv/networkcontrol/ipscpr/group
+/os/networkingsrv/networkcontrol/ipscpr/inc
+/os/networkingsrv/networkcontrol/ipscpr/src
+/os/commsfw/baseconnectionproviders/refscpr/Documentation
+/os/commsfw/baseconnectionproviders/refscpr/group
+/os/commsfw/baseconnectionproviders/refscpr/inc
+/os/commsfw/baseconnectionproviders/refscpr/src
+/os/cellularsrv/telephonyprotocols/umtsgprsscpr/Documentation
+/os/cellularsrv/telephonyprotocols/umtsgprsscpr/Test/te_spud/BWINS
+/os/cellularsrv/telephonyprotocols/umtsgprsscpr/Test/te_spud/documentation
+/os/cellularsrv/telephonyprotocols/umtsgprsscpr/Test/te_spud/group
+/os/cellularsrv/telephonyprotocols/umtsgprsscpr/Test/te_spud/inc
+/os/cellularsrv/telephonyprotocols/umtsgprsscpr/Test/te_spud/scripts
+/os/cellularsrv/telephonyprotocols/umtsgprsscpr/Test/te_spud/src
+/os/cellularsrv/telephonyprotocols/umtsgprsscpr/Test/te_spud/testdata
+/os/cellularsrv/telephonyprotocols/umtsgprsscpr/group
+/os/cellularsrv/telephonyprotocols/umtsgprsscpr/inc
+/os/cellularsrv/telephonyprotocols/umtsgprsscpr/spudfsm/inc
+/os/cellularsrv/telephonyprotocols/umtsgprsscpr/spudfsm/src
+/os/cellularsrv/telephonyprotocols/umtsgprsscpr/spudtel/inc
+/os/cellularsrv/telephonyprotocols/umtsgprsscpr/spudtel/src
+/os/cellularsrv/telephonyprotocols/umtsgprsscpr/src
+/os/cellularsrv/telephonyprotocols/gprsumtsqosinterface/bmarm
+/os/cellularsrv/telephonyprotocols/gprsumtsqosinterface/bwins
+/os/cellularsrv/telephonyprotocols/gprsumtsqosinterface/documentation
+/os/cellularsrv/telephonyprotocols/gprsumtsqosinterface/eabi
+/os/cellularsrv/telephonyprotocols/gprsumtsqosinterface/group
+/os/cellularsrv/telephonyprotocols/gprsumtsqosinterface/inc
+/os/cellularsrv/telephonyprotocols/gprsumtsqosinterface/src
+/os/networkingsrv/networkingtestandutils/networkingunittest/DummyNifProtos/inc
+/os/networkingsrv/networkingtestandutils/networkingunittest/DummyNifProtos/src
+/os/networkingsrv/networkingtestandutils/networkingunittest/bwins
+/os/networkingsrv/networkingtestandutils/networkingunittest/dummynif
+/os/networkingsrv/networkingtestandutils/networkingunittest/dummynif_params/group
+/os/networkingsrv/networkingtestandutils/networkingunittest/dummynif_params/inc
+/os/networkingsrv/networkingtestandutils/networkingunittest/dummynif_params/src
+/os/networkingsrv/networkingtestandutils/networkingunittest/eabi
+/os/networkingsrv/networkingtestandutils/networkingunittest/group
+/os/networkingsrv/networkingtestandutils/networkingunittest/t_dummynifman
+/os/networkingsrv/networkingtestandutils/networkingunittest/tdummydlgsvr
+/os/networkingsrv/networkingtestandutils/networkingunittest/tdummyetel
+/os/networkingsrv/networkingtestandutils/networkingunittest/tdummynif
+/os/networkingsrv/networkingtestandutils/networkingunittest/te_echo/echodaemon/bwins
+/os/networkingsrv/networkingtestandutils/networkingunittest/te_echo/echodaemon/eabi
+/os/networkingsrv/networkingtestandutils/networkingunittest/te_echo/echodaemon/group
+/os/networkingsrv/networkingtestandutils/networkingunittest/te_echo/echodaemon/inc
+/os/networkingsrv/networkingtestandutils/networkingunittest/te_echo/echodaemon/src
+/os/networkingsrv/networkingtestandutils/networkingunittest/te_echo/group
+/os/networkingsrv/networkingtestandutils/networkingunittest/te_echo/src
+/os/networkingsrv/networkingtestandutils/networkingunittest/upstestnotifier/group
+/os/networkingsrv/networkingtestandutils/networkingunittest/upstestnotifier/inc
+/os/networkingsrv/networkingtestandutils/networkingunittest/upstestnotifier/src
+/os/networkingsrv/networkingtestandutils/networkingunittest/version1/EABI
+/os/networkingsrv/networkingtestandutils/networkingunittest/version1/bmarm
+/os/networkingsrv/networkingtestandutils/networkingunittest/version1/bwins
+/os/networkingsrv/networkingtestandutils/networkingunittest/version1/dummynif
+/os/networkingsrv/networkingtestandutils/networkingunittest/version1/group
+/os/networkingsrv/networkingtestandutils/networkingunittest/version1/t_dummynifman
+/os/networkingsrv/networkingtestandutils/networkingunittest/version1/tdummydlgsvr
+/os/networkingsrv/networkingtestandutils/networkingunittest/version1/tdummyetel
+/os/networkingsrv/networkingtestandutils/networkingunittest/version1/tdummynif
+/os/networkingsrv/networkingtestandutils/networkingexamples/webserver/Documentation
+/os/networkingsrv/networkingtestandutils/networkingexamples/webserver/bmarm
+/os/networkingsrv/networkingtestandutils/networkingexamples/webserver/bwins
+/os/networkingsrv/networkingtestandutils/networkingexamples/webserver/data
+/os/networkingsrv/networkingtestandutils/networkingexamples/webserver/group
+/os/networkingsrv/networkingtestandutils/networkingexamples/webserver/inc
+/os/networkingsrv/networkingtestandutils/networkingexamples/webserver/src
+/mw/shortlinkconn/obex/obexprotocol/common
+/mw/shortlinkconn/obex/obexprotocol/documentation/Designs
+/mw/shortlinkconn/obex/obexprotocol/documentation/How_Tos
+/mw/shortlinkconn/obex/obexprotocol/group
+/mw/shortlinkconn/obex/obexprotocol/obex/bwins
+/mw/shortlinkconn/obex/obexprotocol/obex/eabi
+/mw/shortlinkconn/obex/obexprotocol/obex/group
+/mw/shortlinkconn/obex/obexprotocol/obex/inc
+/mw/shortlinkconn/obex/obexprotocol/obex/public
+/mw/shortlinkconn/obex/obexprotocol/obex/src
+/mw/shortlinkconn/obex/obexprotocol/obex/test/headercheck/group
+/mw/shortlinkconn/obex/obexprotocol/obex/test/headercheck/src
+/mw/shortlinkconn/obex/obexprotocol/obex/test/testobexerrorcodes
+/mw/shortlinkconn/obex/obexprotocol/obex/test/tobex
+/mw/shortlinkconn/obex/obexprotocol/obexbttransport/group
+/mw/shortlinkconn/obex/obexprotocol/obexbttransport/inc
+/mw/shortlinkconn/obex/obexprotocol/obexbttransport/src
+/mw/shortlinkconn/obex/obexextensionapi/bwins
+/mw/shortlinkconn/obex/obexextensionapi/eabi
+/mw/shortlinkconn/obex/obexextensionapi/group
+/mw/shortlinkconn/obex/obexextensionapi/inc
+/mw/shortlinkconn/obex/obexextensionapi/public
+/mw/shortlinkconn/obex/obexextensionapi/src
+/mw/shortlinkconn/obex/obexextensionapi/test/headercheck/group
+/mw/shortlinkconn/obex/obexextensionapi/test/headercheck/src
+/mw/shortlinkconn/obex/obexprotocol/obexirdatransport/group
+/mw/shortlinkconn/obex/obexprotocol/obexirdatransport/inc
+/mw/shortlinkconn/obex/obexprotocol/obexirdatransport/src
+/mw/shortlinkconn/obex/obexprotocol/obextransport/bwins
+/mw/shortlinkconn/obex/obexprotocol/obextransport/eabi
+/mw/shortlinkconn/obex/obexprotocol/obextransport/group
+/mw/shortlinkconn/obex/obexprotocol/obextransport/inc
+/mw/shortlinkconn/obex/obexprotocol/obextransport/public
+/mw/shortlinkconn/obex/obexprotocol/obextransport/src
+/mw/shortlinkconn/obex/obexprotocol/obextransport/test/headercheck/group
+/mw/shortlinkconn/obex/obexprotocol/obextransport/test/headercheck/src
+/mw/shortlinkconn/obex/obexprotocol/obexusbtransport/group
+/mw/shortlinkconn/obex/obexprotocol/obexusbtransport/inc
+/mw/shortlinkconn/obex/obexprotocol/obexusbtransport/src
+/mw/shortlinkconn/obex/obexprotocol/obexwin32usbtransport/group
+/mw/shortlinkconn/obex/obexprotocol/obexwin32usbtransport/inc
+/mw/shortlinkconn/obex/obexprotocol/obexwin32usbtransport/src
+/os/ossrv/genericopenlibs/openenvcore/backend/bwins
+/os/ossrv/genericopenlibs/openenvcore/backend/docs
+/os/ossrv/genericopenlibs/openenvcore/backend/eabi
+/os/ossrv/genericopenlibs/openenvcore/backend/group
+/os/ossrv/genericopenlibs/openenvcore/backend/inc
+/os/ossrv/genericopenlibs/openenvcore/backend/ipcserver/ipccli/inc
+/os/ossrv/genericopenlibs/openenvcore/backend/ipcserver/ipccli/src
+/os/ossrv/genericopenlibs/openenvcore/backend/ipcserver/ipcsrv/group
+/os/ossrv/genericopenlibs/openenvcore/backend/ipcserver/ipcsrv/inc
+/os/ossrv/genericopenlibs/openenvcore/backend/ipcserver/ipcsrv/src
+/os/ossrv/genericopenlibs/openenvcore/backend/src/StdioRedir/Client
+/os/ossrv/genericopenlibs/openenvcore/backend/src/StdioRedir/Server
+/os/ossrv/genericopenlibs/openenvcore/backend/src/corebackend
+/os/ossrv/genericopenlibs/openenvcore/backend/src/syscall
+/os/ossrv/genericopenlibs/openenvcore/backend/src/ucrt
+/os/ossrv/genericopenlibs/openenvcore/backend/test/group
+/os/ossrv/genericopenlibs/openenvcore/backend/test/testbackenddes/group
+/os/ossrv/genericopenlibs/openenvcore/backend/test/testbackenddes/inc
+/os/ossrv/genericopenlibs/openenvcore/backend/test/testbackenddes/scripts
+/os/ossrv/genericopenlibs/openenvcore/backend/test/testbackenddes/src
+/os/ossrv/genericopenlibs/openenvcore/backend/test/testlibcbackend/data
+/os/ossrv/genericopenlibs/openenvcore/backend/test/testlibcbackend/group
+/os/ossrv/genericopenlibs/openenvcore/backend/test/testlibcbackend/inc
+/os/ossrv/genericopenlibs/openenvcore/backend/test/testlibcbackend/scripts
+/os/ossrv/genericopenlibs/openenvcore/backend/test/testlibcbackend/src
+/os/ossrv/genericopenlibs/openenvcore/docs/test
+/os/ossrv/genericopenlibs/openenvcore/ewsd/bwins
+/os/ossrv/genericopenlibs/openenvcore/ewsd/docs
+/os/ossrv/genericopenlibs/openenvcore/ewsd/group
+/os/ossrv/genericopenlibs/openenvcore/ewsd/inc
+/os/ossrv/genericopenlibs/openenvcore/ewsd/src
+/os/ossrv/genericopenlibs/openenvcore/ewsd/test/tewsd/group
+/os/ossrv/genericopenlibs/openenvcore/ewsd/test/tewsd/include
+/os/ossrv/genericopenlibs/openenvcore/ewsd/test/tewsd/wsdApplication1/group
+/os/ossrv/genericopenlibs/openenvcore/ewsd/test/tewsd/wsdApplication1/src
+/os/ossrv/genericopenlibs/openenvcore/ewsd/test/tewsd/wsdApplication2/group
+/os/ossrv/genericopenlibs/openenvcore/ewsd/test/tewsd/wsdApplication2/src
+/os/ossrv/genericopenlibs/openenvcore/ewsd/test/tewsd/wsdDll1/bwins
+/os/ossrv/genericopenlibs/openenvcore/ewsd/test/tewsd/wsdDll1/group
+/os/ossrv/genericopenlibs/openenvcore/ewsd/test/tewsd/wsdDll1/inc
+/os/ossrv/genericopenlibs/openenvcore/ewsd/test/tewsd/wsdDll1/src
+/os/ossrv/genericopenlibs/openenvcore/ewsd/test/tewsd/wsdDll2/bwins
+/os/ossrv/genericopenlibs/openenvcore/ewsd/test/tewsd/wsdDll2/group
+/os/ossrv/genericopenlibs/openenvcore/ewsd/test/tewsd/wsdDll2/inc
+/os/ossrv/genericopenlibs/openenvcore/ewsd/test/tewsd/wsdDll2/src
+/os/ossrv/genericopenlibs/openenvcore/group
+/os/ossrv/genericopenlibs/openenvcore/include/arpa
+/os/ossrv/genericopenlibs/openenvcore/include/machine
+/os/ossrv/genericopenlibs/openenvcore/include/net
+/os/ossrv/genericopenlibs/openenvcore/include/netinet
+/os/ossrv/genericopenlibs/openenvcore/include/netinet6
+/os/ossrv/genericopenlibs/openenvcore/include/openssl
+/os/ossrv/genericopenlibs/openenvcore/include/posix4
+/os/ossrv/genericopenlibs/openenvcore/include/sys
+/os/ossrv/genericopenlibs/openenvcore/libc/bwins
+/os/ossrv/genericopenlibs/openenvcore/libc/docs
+/os/ossrv/genericopenlibs/openenvcore/libc/eabi
+/os/ossrv/genericopenlibs/openenvcore/libc/gcce/udeb
+/os/ossrv/genericopenlibs/openenvcore/libc/gcce/urel
+/os/ossrv/genericopenlibs/openenvcore/libc/group
+/os/ossrv/genericopenlibs/openenvcore/libc/inc
+/os/ossrv/genericopenlibs/openenvcore/libc/include
+/os/ossrv/genericopenlibs/openenvcore/libc/src/arm/gen
+/os/ossrv/genericopenlibs/openenvcore/libc/src/gen
+/os/ossrv/genericopenlibs/openenvcore/libc/src/ipc
+/os/ossrv/genericopenlibs/openenvcore/libc/src/libc_init
+/os/ossrv/genericopenlibs/openenvcore/libc/src/locale
+/os/ossrv/genericopenlibs/openenvcore/libc/src/net
+/os/ossrv/genericopenlibs/openenvcore/libc/src/regex/inc
+/os/ossrv/genericopenlibs/openenvcore/libc/src/regex/src
+/os/ossrv/genericopenlibs/openenvcore/libc/src/stdio
+/os/ossrv/genericopenlibs/openenvcore/libc/src/stdlib
+/os/ossrv/genericopenlibs/openenvcore/libc/src/stdtime
+/os/ossrv/genericopenlibs/openenvcore/libc/src/string
+/os/ossrv/genericopenlibs/openenvcore/libc/test/group
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testcapfcntl/group
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testcapfcntl/inc
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testcapfcntl/scripts
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testcapfcntl/src
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testcapioccom/group
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testcapioccom/inc
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testcapioccom/scripts
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testcapioccom/src
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testcapipc/group
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testcapipc/inc
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testcapipc/scripts/temp2
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testcapipc/src
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testcapsocket/data
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testcapsocket/group
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testcapsocket/inc
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testcapsocket/scripts
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testcapsocket/src
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testcapstat/group
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testcapstat/inc
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testcapstat/scripts
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testcapstat/src
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testcapstdio/group
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testcapstdio/inc
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testcapstdio/scripts
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testcapstdio/src
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testcapsystime/group
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testcapsystime/inc
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testcapsystime/scripts
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testcapsystime/src
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testcapunistd/group
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testcapunistd/inc
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testcapunistd/scripts/temp1
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testcapunistd/src
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testcaputime/group
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testcaputime/inc
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testcaputime/scripts
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testcaputime/src
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testcapwchar/group
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testcapwchar/inc
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testcapwchar/scripts/wtemp1
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testcapwchar/src
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testcomport/data
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testcomport/group
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testcomport/inc
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testcomport/scripts
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testcomport/src
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testcomport/utils
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testctype/group
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testctype/inc
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testctype/scripts
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testctype/src
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testdb_blr/data
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testdb_blr/group
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testdb_blr/inc
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testdb_blr/scripts
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testdb_blr/src
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testftw/data
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testftw/group
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testftw/inc
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testftw/scripts
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testftw/src
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testglob/group
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testglob/inc
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testglob/scripts
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testglob/src
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testifioctls/data
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testifioctls/group
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testifioctls/inc
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testifioctls/scripts
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testifioctls/src
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testinet/data
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testinet/group
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testinet/inc
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testinet/scripts
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testinet/src
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testlibcwchar/group
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testlibcwchar/inc
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testlibcwchar/scripts
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testlibcwchar/src
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testlink/data
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testlink/group
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testlink/inc
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testlink/scripts
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testlink/src
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testlocalsocket/data
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testlocalsocket/group
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testlocalsocket/inc
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testlocalsocket/sample/group
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testlocalsocket/sample/src
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testlocalsocket/scripts
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testlocalsocket/src
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testlocalsocket/utils
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testlocblr/data
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testlocblr/group
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testlocblr/inc
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testlocblr/scripts
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testlocblr/src
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testmisc/data
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testmisc/group
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testmisc/inc
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testmisc/scripts
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testmisc/spawnchild/group
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testmisc/spawnchild/src
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testmisc/src
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testmisc/utils
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testmkfifo/data
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testmkfifo/group
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testmkfifo/inc
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testmkfifo/scripts
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testmkfifo/src
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testmmap/data
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testmmap/group
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testmmap/inc
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testmmap/scripts
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testmmap/src
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testmsgqueue/data
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testmsgqueue/group
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testmsgqueue/inc
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testmsgqueue/scripts
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testmsgqueue/src
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testmulticast/group
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testmulticast/inc
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testmulticast/scripts
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testmulticast/src
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testnetdb/data
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testnetdb/group
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testnetdb/inc
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testnetdb/scripts
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testnetdb/src
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testoffsetof/group
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testoffsetof/inc
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testoffsetof/scripts
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testoffsetof/src
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testpipe/child_read_write/group
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testpipe/child_read_write/src
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testpipe/childpopen3_disp/group
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testpipe/childpopen3_disp/src
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testpipe/childpopen3_read_write/group
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testpipe/childpopen3_read_write/src
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testpipe/childpopen_read/group
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testpipe/childpopen_read/src
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testpipe/childpopen_write/group
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testpipe/childpopen_write/src
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testpipe/data
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testpipe/group
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testpipe/inc
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testpipe/scripts
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testpipe/src
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testpipe/utils
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testprogname/group
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testprogname/inc
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testprogname/scripts
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testprogname/src
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testregex/data
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testregex/group
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testregex/inc
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testregex/scripts
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testregex/src
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testselect/group
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testselect/inc
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testselect/scripts
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testselect/src
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testsemaphore/data
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testsemaphore/group
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testsemaphore/inc
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testsemaphore/scripts
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testsemaphore/src
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testshm/data
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testshm/group
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testshm/inc
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testshm/scripts
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testshm/src
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testsocket/data
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testsocket/group
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testsocket/inc
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testsocket/scripts
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testsocket/src
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testsocket/utils
+/os/ossrv/genericopenlibs/openenvcore/libc/test/teststdio/data
+/os/ossrv/genericopenlibs/openenvcore/libc/test/teststdio/group
+/os/ossrv/genericopenlibs/openenvcore/libc/test/teststdio/inc
+/os/ossrv/genericopenlibs/openenvcore/libc/test/teststdio/scripts
+/os/ossrv/genericopenlibs/openenvcore/libc/test/teststdio/src
+/os/ossrv/genericopenlibs/openenvcore/libc/test/teststdlib/abort_test/group
+/os/ossrv/genericopenlibs/openenvcore/libc/test/teststdlib/abort_test/src
+/os/ossrv/genericopenlibs/openenvcore/libc/test/teststdlib/data
+/os/ossrv/genericopenlibs/openenvcore/libc/test/teststdlib/group
+/os/ossrv/genericopenlibs/openenvcore/libc/test/teststdlib/inc
+/os/ossrv/genericopenlibs/openenvcore/libc/test/teststdlib/scripts
+/os/ossrv/genericopenlibs/openenvcore/libc/test/teststdlib/src
+/os/ossrv/genericopenlibs/openenvcore/libc/test/teststdlib/utils
+/os/ossrv/genericopenlibs/openenvcore/libc/test/teststring/data
+/os/ossrv/genericopenlibs/openenvcore/libc/test/teststring/group
+/os/ossrv/genericopenlibs/openenvcore/libc/test/teststring/inc
+/os/ossrv/genericopenlibs/openenvcore/libc/test/teststring/scripts
+/os/ossrv/genericopenlibs/openenvcore/libc/test/teststring/src
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testsyscalls/data
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testsyscalls/group
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testsyscalls/inc
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testsyscalls/scripts
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testsyscalls/src
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testsyssim/group
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testsyssim/inc
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testsyssim/scripts
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testsyssim/src
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testsysunistd/data
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testsysunistd/group
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testsysunistd/inc
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testsysunistd/scripts
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testsysunistd/src
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testtime_blr/data
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testtime_blr/group
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testtime_blr/inc
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testtime_blr/scripts
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testtime_blr/src
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testwchar/group
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testwchar/inc
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testwchar/scripts
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testwchar/src
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testwcharapi/data
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testwcharapi/group
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testwcharapi/inc
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testwcharapi/scripts
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testwcharapi/src
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testwctype/data
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testwctype/group
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testwctype/inc
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testwctype/scripts
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testwctype/src
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testwideapis/data
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testwideapis/group
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testwideapis/inc
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testwideapis/scripts
+/os/ossrv/genericopenlibs/openenvcore/libc/test/testwideapis/src
+/os/ossrv/genericopenlibs/openenvcore/libdl/bwins
+/os/ossrv/genericopenlibs/openenvcore/libdl/docs
+/os/ossrv/genericopenlibs/openenvcore/libdl/eabi
+/os/ossrv/genericopenlibs/openenvcore/libdl/group
+/os/ossrv/genericopenlibs/openenvcore/libdl/inc
+/os/ossrv/genericopenlibs/openenvcore/libdl/src
+/os/ossrv/genericopenlibs/openenvcore/libdl/test/group
+/os/ossrv/genericopenlibs/openenvcore/libdl/test/tdl/arithmeticoper1/bwins
+/os/ossrv/genericopenlibs/openenvcore/libdl/test/tdl/arithmeticoper1/eabi
+/os/ossrv/genericopenlibs/openenvcore/libdl/test/tdl/arithmeticoper1/group
+/os/ossrv/genericopenlibs/openenvcore/libdl/test/tdl/arithmeticoper1/inc
+/os/ossrv/genericopenlibs/openenvcore/libdl/test/tdl/arithmeticoper1/src
+/os/ossrv/genericopenlibs/openenvcore/libdl/test/tdl/arithmeticoper2/bwins
+/os/ossrv/genericopenlibs/openenvcore/libdl/test/tdl/arithmeticoper2/eabi
+/os/ossrv/genericopenlibs/openenvcore/libdl/test/tdl/arithmeticoper2/group
+/os/ossrv/genericopenlibs/openenvcore/libdl/test/tdl/arithmeticoper2/inc
+/os/ossrv/genericopenlibs/openenvcore/libdl/test/tdl/arithmeticoper2/src
+/os/ossrv/genericopenlibs/openenvcore/libdl/test/tdl/arithmeticoper3/bwins
+/os/ossrv/genericopenlibs/openenvcore/libdl/test/tdl/arithmeticoper3/eabi
+/os/ossrv/genericopenlibs/openenvcore/libdl/test/tdl/arithmeticoper3/group
+/os/ossrv/genericopenlibs/openenvcore/libdl/test/tdl/arithmeticoper3/inc
+/os/ossrv/genericopenlibs/openenvcore/libdl/test/tdl/arithmeticoper3/src
+/os/ossrv/genericopenlibs/openenvcore/libdl/test/tdl/arithmeticoper4/bwins
+/os/ossrv/genericopenlibs/openenvcore/libdl/test/tdl/arithmeticoper4/eabi
+/os/ossrv/genericopenlibs/openenvcore/libdl/test/tdl/arithmeticoper4/group
+/os/ossrv/genericopenlibs/openenvcore/libdl/test/tdl/arithmeticoper4/inc
+/os/ossrv/genericopenlibs/openenvcore/libdl/test/tdl/arithmeticoper4/src
+/os/ossrv/genericopenlibs/openenvcore/libdl/test/tdl/data
+/os/ossrv/genericopenlibs/openenvcore/libdl/test/tdl/dll1/bwins
+/os/ossrv/genericopenlibs/openenvcore/libdl/test/tdl/dll1/eabi
+/os/ossrv/genericopenlibs/openenvcore/libdl/test/tdl/dll1/group
+/os/ossrv/genericopenlibs/openenvcore/libdl/test/tdl/dll1/src
+/os/ossrv/genericopenlibs/openenvcore/libdl/test/tdl/group
+/os/ossrv/genericopenlibs/openenvcore/libdl/test/tdl/inc
+/os/ossrv/genericopenlibs/openenvcore/libdl/test/tdl/scripts
+/os/ossrv/genericopenlibs/openenvcore/libdl/test/tdl/src
+/os/ossrv/genericopenlibs/openenvcore/libdl/test/utils
+/os/ossrv/genericopenlibs/openenvcore/liblogger/bwins
+/os/ossrv/genericopenlibs/openenvcore/liblogger/eabi
+/os/ossrv/genericopenlibs/openenvcore/liblogger/group
+/os/ossrv/genericopenlibs/openenvcore/liblogger/inc
+/os/ossrv/genericopenlibs/openenvcore/liblogger/rom
+/os/ossrv/genericopenlibs/openenvcore/liblogger/src
+/os/ossrv/genericopenlibs/openenvcore/liblogger/test/group
+/os/ossrv/genericopenlibs/openenvcore/liblogger/test/testliblogger/group
+/os/ossrv/genericopenlibs/openenvcore/liblogger/test/testliblogger/inc
+/os/ossrv/genericopenlibs/openenvcore/liblogger/test/testliblogger/scripts
+/os/ossrv/genericopenlibs/openenvcore/liblogger/test/testliblogger/src
+/os/ossrv/genericopenlibs/openenvcore/libm/arm
+/os/ossrv/genericopenlibs/openenvcore/libm/bsdsrc
+/os/ossrv/genericopenlibs/openenvcore/libm/bwins
+/os/ossrv/genericopenlibs/openenvcore/libm/docs
+/os/ossrv/genericopenlibs/openenvcore/libm/eabi
+/os/ossrv/genericopenlibs/openenvcore/libm/group
+/os/ossrv/genericopenlibs/openenvcore/libm/include
+/os/ossrv/genericopenlibs/openenvcore/libm/src
+/os/ossrv/genericopenlibs/openenvcore/libm/sys/arm/include
+/os/ossrv/genericopenlibs/openenvcore/libm/test/group
+/os/ossrv/genericopenlibs/openenvcore/libm/test/testdouble_blr/data
+/os/ossrv/genericopenlibs/openenvcore/libm/test/testdouble_blr/group
+/os/ossrv/genericopenlibs/openenvcore/libm/test/testdouble_blr/inc
+/os/ossrv/genericopenlibs/openenvcore/libm/test/testdouble_blr/scripts
+/os/ossrv/genericopenlibs/openenvcore/libm/test/testdouble_blr/src
+/os/ossrv/genericopenlibs/openenvcore/libm/test/testfloat_blr/data
+/os/ossrv/genericopenlibs/openenvcore/libm/test/testfloat_blr/group
+/os/ossrv/genericopenlibs/openenvcore/libm/test/testfloat_blr/inc
+/os/ossrv/genericopenlibs/openenvcore/libm/test/testfloat_blr/scripts
+/os/ossrv/genericopenlibs/openenvcore/libm/test/testfloat_blr/src
+/os/ossrv/genericopenlibs/openenvcore/libm/test/testldouble_blr/data
+/os/ossrv/genericopenlibs/openenvcore/libm/test/testldouble_blr/group
+/os/ossrv/genericopenlibs/openenvcore/libm/test/testldouble_blr/inc
+/os/ossrv/genericopenlibs/openenvcore/libm/test/testldouble_blr/scripts
+/os/ossrv/genericopenlibs/openenvcore/libm/test/testldouble_blr/src
+/os/ossrv/genericopenlibs/openenvcore/libpthread/bwins
+/os/ossrv/genericopenlibs/openenvcore/libpthread/docs
+/os/ossrv/genericopenlibs/openenvcore/libpthread/eabi
+/os/ossrv/genericopenlibs/openenvcore/libpthread/group
+/os/ossrv/genericopenlibs/openenvcore/libpthread/inc
+/os/ossrv/genericopenlibs/openenvcore/libpthread/src
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/group
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testcondbroadcast/group
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testcondbroadcast/inc
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testcondbroadcast/scripts
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testcondbroadcast/src
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testconddestroy/group
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testconddestroy/inc
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testconddestroy/scripts
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testconddestroy/src
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testcondinit/group
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testcondinit/inc
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testcondinit/scripts
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testcondinit/src
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testcondsignal/group
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testcondsignal/inc
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testcondsignal/scripts
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testcondsignal/src
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testcondwait/group
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testcondwait/inc
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testcondwait/scripts
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testcondwait/src
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testharness/bmarm
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testharness/bwins
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testharness/eabi
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testharness/group
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testharness/inc
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testharness/src
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testmutex/data
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testmutex/group
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testmutex/inc
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testmutex/scripts
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testmutex/src
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testpthread/data
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testpthread/group
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testpthread/inc
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testpthread/scripts
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testpthread/src
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testpthreadonce/group
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testpthreadonce/inc
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testpthreadonce/scripts
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testpthreadonce/src
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testsemdestroy/group
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testsemdestroy/inc
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testsemdestroy/scripts
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testsemdestroy/src
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testsemgetvalue/group
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testsemgetvalue/inc
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testsemgetvalue/scripts
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testsemgetvalue/src
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testseminit/group
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testseminit/inc
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testseminit/scripts
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testseminit/src
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testsemopen/group
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testsemopen/inc
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testsemopen/scripts
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testsemopen/src
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testsempost/group
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testsempost/inc
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testsempost/scripts
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testsempost/src
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testsemtimedwait/group
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testsemtimedwait/inc
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testsemtimedwait/scripts
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testsemtimedwait/src
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testsemtrywait/group
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testsemtrywait/inc
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testsemtrywait/scripts
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testsemtrywait/src
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testsemwait/group
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testsemwait/inc
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testsemwait/scripts
+/os/ossrv/genericopenlibs/openenvcore/libpthread/test/testsemwait/src
+/os/ossrv/genericopenlibs/openenvcore/test/data
+/os/ossrv/genericopenlibs/openenvcore/test/group
+/os/ossrv/genericopenlibs/openenvcore/test/utils
+/os/security/crypto/opencryptolibs/docs/test
+/os/security/crypto/opencryptolibs/group
+/os/security/crypto/opencryptolibs/libcrypt/bwins
+/os/security/crypto/opencryptolibs/libcrypt/doc
+/os/security/crypto/opencryptolibs/libcrypt/eabi
+/os/security/crypto/opencryptolibs/libcrypt/group
+/os/security/crypto/opencryptolibs/libcrypt/inc
+/os/security/crypto/opencryptolibs/libcrypt/src/libcrypt
+/os/security/crypto/opencryptolibs/libcrypt/src/libmd
+/os/security/crypto/opencryptolibs/libcrypt/src/secure/lib/libcrypt
+/os/security/crypto/opencryptolibs/libcrypt/test/group
+/os/security/crypto/opencryptolibs/libcrypt/test/inc
+/os/security/crypto/opencryptolibs/libcrypt/test/scripts
+/os/security/crypto/opencryptolibs/libcrypt/test/src
+/os/security/crypto/opencryptolibs/libcrypto/bwins
+/os/security/crypto/opencryptolibs/libcrypto/docs
+/os/security/crypto/opencryptolibs/libcrypto/eabi
+/os/security/crypto/opencryptolibs/libcrypto/group
+/os/security/crypto/opencryptolibs/libcrypto/inc/certretriever
+/os/security/crypto/opencryptolibs/libcrypto/inc/openssl
+/os/security/crypto/opencryptolibs/libcrypto/src/crypto/aes
+/os/security/crypto/opencryptolibs/libcrypto/src/crypto/asn1
+/os/security/crypto/opencryptolibs/libcrypto/src/crypto/bio
+/os/security/crypto/opencryptolibs/libcrypto/src/crypto/bn
+/os/security/crypto/opencryptolibs/libcrypto/src/crypto/buffer
+/os/security/crypto/opencryptolibs/libcrypto/src/crypto/certretriever
+/os/security/crypto/opencryptolibs/libcrypto/src/crypto/comp
+/os/security/crypto/opencryptolibs/libcrypto/src/crypto/conf
+/os/security/crypto/opencryptolibs/libcrypto/src/crypto/des
+/os/security/crypto/opencryptolibs/libcrypto/src/crypto/dh
+/os/security/crypto/opencryptolibs/libcrypto/src/crypto/dsa
+/os/security/crypto/opencryptolibs/libcrypto/src/crypto/dso
+/os/security/crypto/opencryptolibs/libcrypto/src/crypto/engine
+/os/security/crypto/opencryptolibs/libcrypto/src/crypto/err
+/os/security/crypto/opencryptolibs/libcrypto/src/crypto/evp
+/os/security/crypto/opencryptolibs/libcrypto/src/crypto/hmac
+/os/security/crypto/opencryptolibs/libcrypto/src/crypto/lhash
+/os/security/crypto/opencryptolibs/libcrypto/src/crypto/md2
+/os/security/crypto/opencryptolibs/libcrypto/src/crypto/md5
+/os/security/crypto/opencryptolibs/libcrypto/src/crypto/objects
+/os/security/crypto/opencryptolibs/libcrypto/src/crypto/ocsp
+/os/security/crypto/opencryptolibs/libcrypto/src/crypto/pem
+/os/security/crypto/opencryptolibs/libcrypto/src/crypto/pkcs12
+/os/security/crypto/opencryptolibs/libcrypto/src/crypto/pkcs7
+/os/security/crypto/opencryptolibs/libcrypto/src/crypto/pqueue
+/os/security/crypto/opencryptolibs/libcrypto/src/crypto/rand
+/os/security/crypto/opencryptolibs/libcrypto/src/crypto/rc2
+/os/security/crypto/opencryptolibs/libcrypto/src/crypto/rc4
+/os/security/crypto/opencryptolibs/libcrypto/src/crypto/rsa
+/os/security/crypto/opencryptolibs/libcrypto/src/crypto/sha
+/os/security/crypto/opencryptolibs/libcrypto/src/crypto/stack
+/os/security/crypto/opencryptolibs/libcrypto/src/crypto/store
+/os/security/crypto/opencryptolibs/libcrypto/src/crypto/txt_db
+/os/security/crypto/opencryptolibs/libcrypto/src/crypto/ui
+/os/security/crypto/opencryptolibs/libcrypto/src/crypto/x509
+/os/security/crypto/opencryptolibs/libcrypto/src/crypto/x509v3
+/os/security/crypto/opencryptolibs/libcrypto/test/data
+/os/security/crypto/opencryptolibs/libcrypto/test/group
+/os/security/crypto/opencryptolibs/libcrypto/test/inc
+/os/security/crypto/opencryptolibs/libcrypto/test/scripts
+/os/security/crypto/opencryptolibs/libcrypto/test/src
+/os/security/crypto/opencryptolibs/libcrypto/test/topenssl/data
+/os/security/crypto/opencryptolibs/libcrypto/test/topenssl/group
+/os/security/crypto/opencryptolibs/libcrypto/test/topenssl/inc
+/os/security/crypto/opencryptolibs/libcrypto/test/topenssl/src
+/os/unref/orphan/comgen/openenv/oeaddons/group
+/os/security/cryptoservices/openssl/group
+/os/security/cryptoservices/openssl/include
+/os/security/cryptoservices/openssl/libssl/bwins
+/os/security/cryptoservices/openssl/libssl/eabi
+/os/security/cryptoservices/openssl/libssl/group
+/os/security/cryptoservices/openssl/libssl/inc
+/os/security/cryptoservices/openssl/libssl/src
+/os/security/cryptoservices/openssl/libssl/test/group
+/os/security/cryptoservices/openssl/libssl/test/testapps/ssl_test/data
+/os/security/cryptoservices/openssl/libssl/test/testapps/ssl_test/group
+/os/security/cryptoservices/openssl/libssl/test/testapps/ssl_test/inc
+/os/security/cryptoservices/openssl/libssl/test/testapps/ssl_test/src
+/os/unref/orphan/comgen/openenv/oeaddons/test/group
+/os/unref/orphan/comgen/openenv/oeaddons/test/utils
+/os/unref/orphan/comgen/openenv/oetools/docs/test
+/mw/appsupport/openenvutils/telnetserver/group
+/mw/appsupport/openenvutils/telnetserver/inc
+/mw/appsupport/openenvutils/telnetserver/src
+/mw/appsupport/openenvutils/telnetserver/test/group
+/mw/appsupport/openenvutils/telnetserver/test/utils
+/mw/appsupport/openenvutils/commandshell/copydatafile/group
+/mw/appsupport/openenvutils/commandshell/copydatafile/inc
+/mw/appsupport/openenvutils/commandshell/copydatafile/src
+/mw/appsupport/openenvutils/commandshell/group
+/mw/appsupport/openenvutils/commandshell/shell/commands/cat/src
+/mw/appsupport/openenvutils/commandshell/shell/commands/cp/inc
+/mw/appsupport/openenvutils/commandshell/shell/commands/cp/src
+/mw/appsupport/openenvutils/commandshell/shell/commands/find/docs
+/mw/appsupport/openenvutils/commandshell/shell/commands/find/group
+/mw/appsupport/openenvutils/commandshell/shell/commands/find/inc
+/mw/appsupport/openenvutils/commandshell/shell/commands/find/src
+/mw/appsupport/openenvutils/commandshell/shell/commands/grep/docs
+/mw/appsupport/openenvutils/commandshell/shell/commands/grep/group
+/mw/appsupport/openenvutils/commandshell/shell/commands/grep/inc
+/mw/appsupport/openenvutils/commandshell/shell/commands/grep/src
+/mw/appsupport/openenvutils/commandshell/shell/commands/inc
+/mw/appsupport/openenvutils/commandshell/shell/commands/ls/inc
+/mw/appsupport/openenvutils/commandshell/shell/commands/ls/src
+/mw/appsupport/openenvutils/commandshell/shell/commands/ps/docs
+/mw/appsupport/openenvutils/commandshell/shell/commands/ps/group
+/mw/appsupport/openenvutils/commandshell/shell/commands/ps/inc
+/mw/appsupport/openenvutils/commandshell/shell/commands/ps/src
+/mw/appsupport/openenvutils/commandshell/shell/commands/src
+/mw/appsupport/openenvutils/commandshell/shell/commands/touch/src
+/mw/appsupport/openenvutils/commandshell/shell/commands/unzip/group
+/mw/appsupport/openenvutils/commandshell/shell/commands/unzip/inc
+/mw/appsupport/openenvutils/commandshell/shell/commands/unzip/src
+/mw/appsupport/openenvutils/commandshell/shell/commands/zip/group
+/mw/appsupport/openenvutils/commandshell/shell/commands/zip/inc
+/mw/appsupport/openenvutils/commandshell/shell/commands/zip/src
+/mw/appsupport/openenvutils/commandshell/shell/group
+/mw/appsupport/openenvutils/commandshell/shell/inc
+/mw/appsupport/openenvutils/commandshell/shell/src/builtins
+/mw/appsupport/openenvutils/commandshell/shell/src/modules
+/mw/appsupport/openenvutils/commandshell/shell/test/group
+/mw/appsupport/openenvutils/commandshell/shell/test/scripts
+/mw/appsupport/openenvutils/commandshell/shell/test/src
+/os/ossrv/genericopenlibs/cppstdlib/bwins
+/os/ossrv/genericopenlibs/cppstdlib/doc
+/os/ossrv/genericopenlibs/cppstdlib/eabi
+/os/ossrv/genericopenlibs/cppstdlib/group
+/os/ossrv/genericopenlibs/cppstdlib/inc
+/os/ossrv/genericopenlibs/cppstdlib/src
+/os/ossrv/genericopenlibs/cppstdlib/stl/doc
+/os/ossrv/genericopenlibs/cppstdlib/stl/etc
+/os/ossrv/genericopenlibs/cppstdlib/stl/src/c_locale_dummy
+/os/ossrv/genericopenlibs/cppstdlib/stl/stlport/stl/config
+/os/ossrv/genericopenlibs/cppstdlib/stl/stlport/stl/debug
+/os/ossrv/genericopenlibs/cppstdlib/stl/stlport/stl/pointers
+/os/ossrv/genericopenlibs/cppstdlib/stl/stlport/using/h
+/os/ossrv/genericopenlibs/cppstdlib/stl/test/compiler/StTerm-order
+/os/ossrv/genericopenlibs/cppstdlib/stl/test/eh
+/os/ossrv/genericopenlibs/cppstdlib/stl/test/group
+/os/ossrv/genericopenlibs/cppstdlib/stl/test/unit/cppunit
+/os/ossrv/genericopenlibs/cppstdlib/test/base_header_tests/group
+/os/ossrv/genericopenlibs/cppstdlib/test/base_header_tests/inc
+/os/ossrv/genericopenlibs/cppstdlib/test/base_header_tests/src
+/os/ossrv/genericopenlibs/cppstdlib/test/group
+/os/ossrv/genericopenlibs/cppstdlib/test/include
+/os/ossrv/genericopenlibs/cppstdlib/test/op_new_tests/bwins
+/os/ossrv/genericopenlibs/cppstdlib/test/op_new_tests/eabi
+/os/ossrv/genericopenlibs/cppstdlib/test/op_new_tests/group
+/os/ossrv/genericopenlibs/cppstdlib/test/op_new_tests/src
+/os/ossrv/genericopenlibs/cppstdlib/test/runtime/bwins
+/os/ossrv/genericopenlibs/cppstdlib/test/runtime/eabi
+/os/ossrv/genericopenlibs/cppstdlib/test/runtime/group
+/os/ossrv/genericopenlibs/cppstdlib/test/runtime/inc
+/os/ossrv/genericopenlibs/cppstdlib/test/runtime/src
+/os/ossrv/genericopenlibs/cppstdlib/test/std_cstd_headers/group
+/os/ossrv/genericopenlibs/cppstdlib/test/std_cstd_headers/src
+/os/ossrv/genericopenlibs/cppstdlib/test/test-automate
+/os/ossrv/genericopenlibs/cppstdlib/test/tools
+/os/ossrv/genericopenlibs/cppstdlib/test/wchar_t_offsetof_tests/group
+/os/ossrv/genericopenlibs/cppstdlib/test/wchar_t_offsetof_tests/src
+/os/security/cryptoservices/asnpkcs/bwins
+/os/security/cryptoservices/asnpkcs/eabi
+/os/security/cryptoservices/asnpkcs/group
+/os/security/cryptoservices/asnpkcs/inc
+/os/security/cryptoservices/asnpkcs/source
+/os/security/cryptoservices/asnpkcs/test/scripts
+/os/security/cryptoservices/asnpkcs/test/tpkcs8enc
+/os/security/contentmgmt/contentaccessfwfordrm/BWINS
+/os/security/contentmgmt/contentaccessfwfordrm/EABI
+/os/security/contentmgmt/contentaccessfwfordrm/engineering/dox
+/os/security/contentmgmt/contentaccessfwfordrm/engineering/features
+/os/security/contentmgmt/contentaccessfwfordrm/group
+/os/security/contentmgmt/contentaccessfwfordrm/inc
+/os/security/contentmgmt/cafrecogniserconfig
+/os/security/contentmgmt/contentaccessfwfordrm/source/caf
+/os/security/contentmgmt/contentaccessfwfordrm/source/cafutils
+/os/security/contentmgmt/contentaccessfwfordrm/source/f32agent
+/os/security/contentmgmt/contentaccessfwfordrm/source/f32agentui
+/os/security/contentmgmt/contentaccessfwfordrm/source/reccaf
+/os/security/contentmgmt/cafstreamingsupport/BWINS
+/os/security/contentmgmt/cafstreamingsupport/EABI
+/os/security/contentmgmt/cafstreamingsupport/group
+/os/security/contentmgmt/cafstreamingsupport/inc
+/os/security/contentmgmt/cafstreamingsupport/source/ipsec
+/os/security/contentmgmt/cafstreamingsupport/test/streamingtestagent/inc
+/os/security/contentmgmt/cafstreamingsupport/test/streamingtestagent/source/client
+/os/security/contentmgmt/cafstreamingsupport/test/streamingtestagent/source/plugin
+/os/security/contentmgmt/cafstreamingsupport/test/streamingtestagent/source/server
+/os/security/contentmgmt/cafstreamingsupport/test/streamingtestagent/source/shared
+/os/security/contentmgmt/cafstreamingsupport/test/streamingtestagent_singleprocess/inc
+/os/security/contentmgmt/cafstreamingsupport/test/streamingtestagent_singleprocess/source/plugin
+/os/security/contentmgmt/cafstreamingsupport/test/streamingtestagent_singleprocess/source/shared
+/os/security/contentmgmt/cafstreamingsupport/test/tscaf/inc
+/os/security/contentmgmt/cafstreamingsupport/test/tscaf/scripts/data
+/os/security/contentmgmt/cafstreamingsupport/test/tscaf/source
+/mw/appsupport/contenthandling/referencedrmagent/RefTestAgent/BWINS
+/mw/appsupport/contenthandling/referencedrmagent/RefTestAgent/EABI
+/mw/appsupport/contenthandling/referencedrmagent/RefTestAgent/RTAParser
+/mw/appsupport/contenthandling/referencedrmagent/RefTestAgent/RTAServer/Client
+/mw/appsupport/contenthandling/referencedrmagent/RefTestAgent/RTAServer/Common
+/mw/appsupport/contenthandling/referencedrmagent/RefTestAgent/RTAServer/Server
+/mw/appsupport/contenthandling/referencedrmagent/RefTestAgent/RTAUtils/scripts
+/mw/appsupport/contenthandling/referencedrmagent/RefTestAgent/RTAUtils/source
+/mw/appsupport/contenthandling/referencedrmagent/RefTestAgent/RTAUtils/testdata
+/mw/appsupport/contenthandling/referencedrmagent/RefTestAgent/RTAVirtualFile
+/mw/appsupport/contenthandling/referencedrmagent/RefTestAgent/RefTestAgent
+/mw/appsupport/contenthandling/referencedrmagent/RefTestAgent/dummytestagent
+/mw/appsupport/contenthandling/referencedrmagent/RefTestAgent/group
+/mw/appsupport/contenthandling/referencedrmagent/RefTestAgent/inc
+/mw/appsupport/contenthandling/referencedrmagent/RefTestAgent/rtaarchive
+/mw/appsupport/contenthandling/referencedrmagent/RefTestAgent/streamingrefagent/inc
+/mw/appsupport/contenthandling/referencedrmagent/RefTestAgent/streamingrefagent/source/client
+/mw/appsupport/contenthandling/referencedrmagent/RefTestAgent/streamingrefagent/source/plugin
+/mw/appsupport/contenthandling/referencedrmagent/RefTestAgent/streamingrefagent/source/server
+/mw/appsupport/contenthandling/referencedrmagent/RefTestAgent/streamingrefagent/source/utils
+/mw/appsupport/contenthandling/referencedrmagent/TestAgent
+/mw/appsupport/contenthandling/referencedrmagent/contentiterator
+/mw/appsupport/contenthandling/referencedrmagent/tcaf/scripts
+/mw/appsupport/contenthandling/referencedrmagent/tcaf/source
+/mw/appsupport/contenthandling/referencedrmagent/tcaf/testdata/TestAgentPrivateDir
+/mw/appsupport/contenthandling/referencedrmagent/tsmoke
+/os/security/cryptoservices/certificateandkeymgmt/asn1
+/os/security/cryptoservices/certificateandkeymgmt/bwins
+/os/security/cryptoservices/certificateandkeymgmt/certstore
+/os/security/cryptoservices/certificateandkeymgmt/crypto
+/os/security/cryptoservices/certificateandkeymgmt/docs/doxygen_docs
+/os/security/cryptoservices/certificateandkeymgmt/documentation
+/os/security/cryptoservices/certificateandkeymgmt/eabi
+/os/security/cryptoservices/certificateandkeymgmt/group
+/os/security/cryptoservices/certificateandkeymgmt/inc
+/os/security/cryptoservices/certificateandkeymgmt/ocsp/doxygen_docs
+/os/security/cryptoservices/certificateandkeymgmt/ocsptransport
+/os/security/cryptoservices/certificateandkeymgmt/pkcs10
+/os/security/cryptoservices/certificateandkeymgmt/pkcs12
+/os/security/cryptoservices/certificateandkeymgmt/pkcs12recog
+/os/security/cryptoservices/certificateandkeymgmt/pkcs7
+/os/security/cryptoservices/certificateandkeymgmt/pkcs8recog
+/os/security/cryptoservices/certificateandkeymgmt/pkixCert/doxygen_docs
+/os/security/cryptoservices/certificateandkeymgmt/pkixcertbase
+/os/security/cryptoservices/certificateandkeymgmt/recog
+/os/security/cryptoservices/certificateandkeymgmt/swicertstore
+/os/security/cryptoservices/certificateandkeymgmt/swicertstoreplugin
+/os/security/cryptoservices/certificateandkeymgmt/tadditionalstores
+/os/security/cryptoservices/certificateandkeymgmt/tasn1/scripts/batchfiles
+/os/security/cryptoservices/certificateandkeymgmt/tcertcommon
+/os/security/cryptoservices/certificateandkeymgmt/tcertdump
+/os/security/cryptoservices/certificateandkeymgmt/tcertstore/certstores
+/os/security/cryptoservices/certificateandkeymgmt/tcertstore/multiple_certstore/scripts/batchfiles
+/os/security/cryptoservices/certificateandkeymgmt/tcertstore/multiple_certstore/tdata
+/os/security/cryptoservices/certificateandkeymgmt/tcertstore/runtest
+/os/security/cryptoservices/certificateandkeymgmt/tcertstore/scripts/batchfiles
+/os/security/cryptoservices/certificateandkeymgmt/tcertstore/tdata
+/os/security/cryptoservices/certificateandkeymgmt/tder/example/root5ca
+/os/security/cryptoservices/certificateandkeymgmt/testcertificates/oldCA/OCSPSigningRoot
+/os/security/cryptoservices/certificateandkeymgmt/testcertificates/oldCA/Root1/private
+/os/security/cryptoservices/certificateandkeymgmt/testcertificates/openssl/Chains
+/os/security/cryptoservices/certificateandkeymgmt/testcertificates/openssl/OCSPSigningRoot
+/os/security/cryptoservices/certificateandkeymgmt/testcertificates/openssl/Root1
+/os/security/cryptoservices/certificateandkeymgmt/testcertificates/openssl/Root2
+/os/security/cryptoservices/certificateandkeymgmt/testcertificates/openssl/Root5
+/os/security/cryptoservices/certificateandkeymgmt/testdata
+/os/security/cryptoservices/certificateandkeymgmt/testhwerrstore
+/os/security/cryptoservices/certificateandkeymgmt/tocsp/requests/openssl
+/os/security/cryptoservices/certificateandkeymgmt/tocsp/resign
+/os/security/cryptoservices/certificateandkeymgmt/tocsp/responses/openssl
+/os/security/cryptoservices/certificateandkeymgmt/tocsp/scripts
+/os/security/cryptoservices/certificateandkeymgmt/tocsp/server/OpenSSL
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs10/batchfiles
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs10/scripts
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/data/ini
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/group
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/inc
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/src
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/alg_sha1_wrongdigest
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/attributeval_changed
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/authsafe_unsupportedoid
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/cb001
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/cb002
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/cb003
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/cb004
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/cb005
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/cb006
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/changedtags
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/ci001
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/ci002
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/corrupted_salt_encrypted_data
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/corrupted_salt_macdata
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/corruptedversion
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/ct001
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/digestalg_unsupported
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/empty_contentinfo
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/empty_digest
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/empty_encryptedcontent
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/empty_encrypteddata
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/encrypted_usingdiffalg
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/encrypteddata_negiterationcount
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/encrypteddata_unsupportedversion
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/encrypteddata_zeroiterationcount
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/im001
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/im002
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/macdata_negiteration
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/macdata_zeroiteration
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/md5_digestalg
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/oomencrypteddata
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/pkcs12_authsafe_contentnotoctetstring
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/pkcs12_authsafe_contentnotsequence
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/pkcs12_authsafe_notasequence
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/pkcs12_authsafe_oidnotoctetstring
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/pkcs12_bagattributenotaseq
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/pkcs12_bagattributeoid_notoctet
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/pkcs12_bagattributeval_notset
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/pkcs12_certbag_explicittagchanged
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/pkcs12_certbag_notasequence
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/pkcs12_certbag_notoctetstring
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/pkcs12_certbag_oidnotoctetstring
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/pkcs12_digestalgnotsha1
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/pkcs12_digestalgorithmnotasequence
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/pkcs12_digestinfonotasequence
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/pkcs12_keybag_notasequence
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/pkcs12_macdata_iterationnotinteger
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/pkcs12_macdata_nosalt_noiteration
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/pkcs12_macdatanotasequence
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/pkcs12_macsaltnotoctetstring
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/pkcs12_pfx_missingcontents1
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/pkcs12_pfx_notasequence
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/pkcs12_unsupported_contenttype
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/pkcs12_version_notinteger
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/pm001
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/pm002
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/pm003
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/pm004
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/pm005
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/pm006
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/pm007
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/pm008
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/pm009
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/pm010
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/sb001
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/sb002
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/sb003
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/shroudedbag_negiteration
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/shroudedbag_zeroiteration
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/unsupported_attrid
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/unsupported_contentinfo
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs12intgrtn/testdatainput/unsupportedbag_oid
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs7/data/cms
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs7/scripts
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs7/testdatainput/128bit_rc2
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs7/testdatainput/128bit_rc4
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs7/testdatainput/2key_tripledes
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs7/testdatainput/3key_tripledes
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs7/testdatainput/40bit_rc2
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs7/testdatainput/40bit_rc4
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs7/testdatainput/contenttype_notdata
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs7/testdatainput/digest_negalgtag
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs7/testdatainput/digest_negdigesttag
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs7/testdatainput/digestinfo_withoutdigest
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs7/testdatainput/md5_digestalg
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs7/testdatainput/noencryptedcontent
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs7/testdatainput/notencrypteddata
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs7/testdatainput/sha1_digestalg
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs7/testdatainput/unsupported_digestalg
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs7/testdatainput/version_notzero
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs7/testdatainput/versiontag_changed
+/os/security/cryptoservices/certificateandkeymgmt/tpkcs7/testdatainput/withoutencryptparams
+/os/security/cryptoservices/certificateandkeymgmt/tpkixcert/scripts
+/os/security/cryptoservices/certificateandkeymgmt/tpkixcert_tef/bwins
+/os/security/cryptoservices/certificateandkeymgmt/tpkixcert_tef/group
+/os/security/cryptoservices/certificateandkeymgmt/tpkixcert_tef/scripts
+/os/security/cryptoservices/certificateandkeymgmt/tpkixcert_tef/src
+/os/security/cryptoservices/certificateandkeymgmt/twtlscert/scripts/batchfiles
+/os/security/cryptoservices/certificateandkeymgmt/twtlscert/wtlstestdata
+/os/security/cryptoservices/certificateandkeymgmt/tx509/Data/dnames
+/os/security/cryptoservices/certificateandkeymgmt/tx509/Data/extensions/ext
+/os/security/cryptoservices/certificateandkeymgmt/tx509/Scripts/batchfiles
+/os/security/cryptoservices/certificateandkeymgmt/wtlscert/doxygen_docs
+/os/security/cryptoservices/certificateandkeymgmt/x500/doxygen_docs
+/os/security/cryptoservices/certificateandkeymgmt/x509/doxygen_docs
+/os/security/cryptomgmtlibs/securityutils/bwins
+/os/security/cryptomgmtlibs/securityutils/eabi
+/os/security/cryptomgmtlibs/securityutils/group
+/os/security/cryptomgmtlibs/securityutils/inc
+/os/security/cryptomgmtlibs/securityutils/privateinc
+/os/security/cryptomgmtlibs/securityutils/source/sectcbutil
+/os/security/cryptomgmtlibs/securityutils/source/secutil
+/os/security/cryptomgmtlibs/securityutils/test/tjmicenrep
+/os/security/cryptomgmtlibs/securityutils/test/tocsphttpfilter
+/os/security/cryptomgmtlibs/securityutils/test/trecog/data
+/os/security/cryptomgmtlibs/securityutils/test/trecog/scripts
+/os/security/cryptomgmtlibs/securitycommonutils/bwins
+/os/security/cryptomgmtlibs/securitycommonutils/eabi
+/os/security/cryptomgmtlibs/securitycommonutils/group
+/os/security/cryptomgmtlibs/securitycommonutils/inc
+/os/security/cryptomgmtlibs/securitycommonutils/source/ipcstream
+/os/security/cryptomgmtlibs/securitycommonutils/source/scsclient
+/os/security/cryptomgmtlibs/securitycommonutils/source/scsserver
+/os/security/cryptomgmtlibs/securitycommonutils/source/securityutils
+/os/security/cryptomgmtlibs/securitycommonutils/test/bwins
+/os/security/cryptomgmtlibs/securitycommonutils/test/eabi
+/os/security/cryptomgmtlibs/securitycommonutils/test/group
+/os/security/cryptomgmtlibs/securitycommonutils/test/inc
+/os/security/cryptomgmtlibs/securitycommonutils/test/inc_private
+/os/security/cryptomgmtlibs/securitycommonutils/test/scripts
+/os/security/cryptomgmtlibs/securitycommonutils/test/source/captestframework
+/os/security/cryptomgmtlibs/securitycommonutils/test/source/oomtestbase
+/os/security/cryptomgmtlibs/securitycommonutils/test/source/rtestwrapper
+/os/security/cryptomgmtlibs/securitycommonutils/test/source/scstest
+/os/security/cryptomgmtlibs/securitycommonutils/test/source/scstestclient
+/os/security/cryptomgmtlibs/securitycommonutils/test/source/scstestserver
+/os/security/cryptomgmtlibs/securitycommonutils/test/source/tsecurityutils
+/os/security/crypto/weakcrypto/bwins
+/os/security/crypto/weakcrypto/docs/DevLib_Security_Supplement
+/os/security/crypto/weakcrypto/eabi
+/os/security/crypto/weakcrypto/group
+/os/security/crypto/weakcrypto/inc
+/os/security/crypto/weakcrypto/source/asymmetric
+/os/security/crypto/weakcrypto/source/bigint
+/os/security/crypto/weakcrypto/source/common
+/os/security/crypto/weakcrypto/source/cryptoswitch
+/os/security/crypto/weakcrypto/source/hash
+/os/security/crypto/weakcrypto/source/padding
+/os/security/crypto/weakcrypto/source/pbe
+/os/security/crypto/weakcrypto/source/pkcs12kdf
+/os/security/crypto/weakcrypto/source/pkcs5kdf
+/os/security/crypto/weakcrypto/source/random
+/os/security/crypto/weakcrypto/source/symmetric
+/os/security/crypto/weakcrypto/strong
+/os/security/crypto/weakcrypto/test/tasymmetric/cryptopp
+/os/security/crypto/weakcrypto/test/tasymmetric/script_gen
+/os/security/crypto/weakcrypto/test/tasymmetric/scripts
+/os/security/crypto/weakcrypto/test/tbigint/scripts
+/os/security/crypto/weakcrypto/test/thash/testdata
+/os/security/crypto/weakcrypto/test/tpadding/scripts
+/os/security/crypto/weakcrypto/test/tpbe/Data
+/os/security/crypto/weakcrypto/test/tpbe/scripts
+/os/security/crypto/weakcrypto/test/tpkcs5kdf/scripts
+/os/security/crypto/weakcrypto/test/trandom/testdata
+/os/security/crypto/weakcrypto/test/tsymmetric/scripts/Rijndael test data
+/os/security/crypto/weakcryptopublic/inc
+/os/security/crypto/weakcryptopublic/lib/armv5
+/os/security/crypto/weakcryptopublic/lib/winscw
+/os/security/crypto/weakcryptospi/BWINS
+/os/security/crypto/weakcryptospi/EABI
+/os/security/crypto/weakcryptospi/docs/DevLib_Security_Supplement
+/os/security/crypto/weakcryptospi/group
+/os/security/crypto/weakcryptospi/inc/spi
+/os/security/cryptoplugins/cryptospiplugins/bwins
+/os/security/cryptoplugins/cryptospiplugins/eabi
+/os/security/cryptoplugins/cryptospiplugins/group
+/os/security/cryptoplugins/cryptospiplugins/inc
+/os/security/cryptoplugins/cryptospiplugins/source/softwarecrypto
+/os/security/cryptoplugins/cryptospiplugins/test/h4drv/bwins
+/os/security/cryptoplugins/cryptospiplugins/test/h4drv/crypto_h4
+/os/security/cryptoplugins/cryptospiplugins/test/h4drv/crypto_h4_plugin
+/os/security/cryptoplugins/cryptospiplugins/test/h4drv/eabi
+/os/security/crypto/weakcryptospi/source/asymmetric
+/os/security/crypto/weakcryptospi/source/bigint
+/os/security/crypto/weakcryptospi/source/common
+/os/security/crypto/weakcryptospi/source/cryptoswitch
+/os/security/crypto/weakcryptospi/source/hash
+/os/security/crypto/weakcryptospi/source/padding
+/os/security/crypto/weakcryptospi/source/pbe
+/os/security/crypto/weakcryptospi/source/pkcs12kdf
+/os/security/crypto/weakcryptospi/source/pkcs5kdf
+/os/security/crypto/weakcryptospi/source/random
+/os/security/crypto/weakcryptospi/source/spi/cryptospisetup
+/os/security/crypto/weakcryptospi/source/symmetric
+/os/security/crypto/weakcryptospi/strong
+/os/security/crypto/weakcryptospi/test/dumpcryptoplugin
+/os/security/crypto/weakcryptospi/test/kms/bwins
+/os/security/crypto/weakcryptospi/test/kms/doc
+/os/security/crypto/weakcryptospi/test/kms/driver/product/kmskext
+/os/security/crypto/weakcryptospi/test/kms/driver/product/kmsldd
+/os/security/crypto/weakcryptospi/test/kms/driver/product/kmslddk
+/os/security/crypto/weakcryptospi/test/kms/driver/test/kmsextrldd
+/os/security/crypto/weakcryptospi/test/kms/driver/test/kmsextrlddk
+/os/security/crypto/weakcryptospi/test/kms/driver/test/kmslddclient
+/os/security/crypto/weakcryptospi/test/kms/driver/test/kmslddtest
+/os/security/crypto/weakcryptospi/test/kms/eabi
+/os/security/crypto/weakcryptospi/test/kms/exported_include
+/os/security/crypto/weakcryptospi/test/kms/private_include/product
+/os/security/crypto/weakcryptospi/test/kms/private_include/test
+/os/security/crypto/weakcryptospi/test/kms/server/product/kmsclient
+/os/security/crypto/weakcryptospi/test/kms/server/product/kmsserver
+/os/security/crypto/weakcryptospi/test/kms/server/test/kmstest
+/os/security/crypto/weakcryptospi/test/tasymmetric/cryptopp
+/os/security/crypto/weakcryptospi/test/tasymmetric/script_gen
+/os/security/crypto/weakcryptospi/test/tasymmetric/scripts
+/os/security/crypto/weakcryptospi/test/tbigint/scripts
+/os/security/crypto/weakcryptospi/test/tcryptospi/group
+/os/security/crypto/weakcryptospi/test/tcryptospi/scripts
+/os/security/crypto/weakcryptospi/test/tcryptospi/src
+/os/security/crypto/weakcryptospi/test/tcryptospi/testdata/asymsym
+/os/security/crypto/weakcryptospi/test/tcryptospi/testdata/hashhmac
+/os/security/crypto/weakcryptospi/test/tcryptospi/testdata/nistsp800-38atestvectors
+/os/security/crypto/weakcryptospi/test/tcryptospi/testdata/symmetricdatacheck0001
+/os/security/crypto/weakcryptospi/test/thash/testdata
+/os/security/crypto/weakcryptospi/test/tpadding/scripts
+/os/security/crypto/weakcryptospi/test/tpbe/Data
+/os/security/crypto/weakcryptospi/test/tpbe/scripts
+/os/security/crypto/weakcryptospi/test/tpkcs5kdf/scripts
+/os/security/crypto/weakcryptospi/test/tplugins/BWINS
+/os/security/crypto/weakcryptospi/test/tplugins/EABI
+/os/security/crypto/weakcryptospi/test/tplugins/group
+/os/security/crypto/weakcryptospi/test/tplugins/inc/tplugin01
+/os/security/crypto/weakcryptospi/test/tplugins/inc/tplugin02
+/os/security/crypto/weakcryptospi/test/tplugins/src/bigint
+/os/security/crypto/weakcryptospi/test/tplugins/src/common
+/os/security/crypto/weakcryptospi/test/tplugins/src/tplugin01
+/os/security/crypto/weakcryptospi/test/tplugins/src/tplugin02
+/os/security/crypto/weakcryptospi/test/trandom/testdata
+/os/security/crypto/weakcryptospi/test/tsymmetric/scripts/Rijndael test data
+/os/security/cryptomgmtlibs/cryptotokenfw/bwins
+/os/security/cryptomgmtlibs/cryptotokenfw/docs/doxygen_docs
+/os/security/cryptomgmtlibs/cryptotokenfw/docsrc
+/os/security/cryptomgmtlibs/cryptotokenfw/eabi
+/os/security/cryptomgmtlibs/cryptotokenfw/group
+/os/security/cryptomgmtlibs/cryptotokenfw/inc/ct
+/os/security/cryptomgmtlibs/cryptotokenfw/inc_interfaces/doxygen_docs
+/os/security/cryptomgmtlibs/cryptotokenfw/source/ctfinder
+/os/security/cryptomgmtlibs/cryptotokenfw/source/ctframework/doxygen_docs
+/os/security/cryptomgmtlibs/cryptotokenfw/tframework
+/os/security/cryptomgmtlibs/cryptotokenfw/tsecdlg
+/os/security/cryptomgmtlibs/securitydocs/doxygen_docs
+/os/security/cryptoservices/filebasedcertificateandkeystores/Docs/Peer review
+/os/security/cryptoservices/filebasedcertificateandkeystores/Docs/certificate store/Rose
+/os/security/cryptoservices/filebasedcertificateandkeystores/Docs/key store/archive
+/os/security/cryptoservices/filebasedcertificateandkeystores/Docs/key store/visio
+/os/security/cryptoservices/filebasedcertificateandkeystores/Inc
+/os/security/cryptoservices/filebasedcertificateandkeystores/bwins
+/os/security/cryptoservices/filebasedcertificateandkeystores/eabi
+/os/security/cryptoservices/filebasedcertificateandkeystores/group
+/os/security/cryptoservices/filebasedcertificateandkeystores/source/certapps/client
+/os/security/cryptoservices/filebasedcertificateandkeystores/source/certapps/server
+/os/security/cryptoservices/filebasedcertificateandkeystores/source/certstore/ECOMPlugin
+/os/security/cryptoservices/filebasedcertificateandkeystores/source/certstore/client
+/os/security/cryptoservices/filebasedcertificateandkeystores/source/certstore/server
+/os/security/cryptoservices/filebasedcertificateandkeystores/source/generic/client
+/os/security/cryptoservices/filebasedcertificateandkeystores/source/generic/common
+/os/security/cryptoservices/filebasedcertificateandkeystores/source/generic/server
+/os/security/cryptoservices/filebasedcertificateandkeystores/source/keystore/Client
+/os/security/cryptoservices/filebasedcertificateandkeystores/source/keystore/EComPlugin
+/os/security/cryptoservices/filebasedcertificateandkeystores/source/keystore/Server
+/os/security/cryptoservices/filebasedcertificateandkeystores/source/shared
+/os/security/cryptoservices/filebasedcertificateandkeystores/test/bwins
+/os/security/cryptoservices/filebasedcertificateandkeystores/test/certtool
+/os/security/cryptoservices/filebasedcertificateandkeystores/test/eabi
+/os/security/cryptoservices/filebasedcertificateandkeystores/test/keytool
+/os/security/cryptoservices/filebasedcertificateandkeystores/test/tcertapps/scripts/batchfiles
+/os/security/cryptoservices/filebasedcertificateandkeystores/test/tfiletokens
+/os/security/cryptoservices/filebasedcertificateandkeystores/test/tkeystore/data/certs/EncipherSign
+/os/security/cryptoservices/filebasedcertificateandkeystores/test/tkeystore/data/certs/NRCert
+/os/security/cryptoservices/filebasedcertificateandkeystores/test/tkeystore/data/certs/SignCert2
+/os/security/cryptoservices/filebasedcertificateandkeystores/test/tkeystore/data/certs/cert1
+/os/security/cryptoservices/filebasedcertificateandkeystores/test/tkeystore/data/certs/cert2
+/os/security/cryptoservices/filebasedcertificateandkeystores/test/tkeystore/data/certs/cert3
+/os/security/cryptoservices/filebasedcertificateandkeystores/test/tkeystore/data/keys
+/os/security/cryptoservices/filebasedcertificateandkeystores/test/tkeystore/scripts/batchfiles
+/os/security/cryptoservices/filebasedcertificateandkeystores/test/ttestplugin
+/os/security/cryptoservices/filebasedcertificateandkeystores/test/ttesttools/data
+/os/security/cryptoservices/filebasedcertificateandkeystores/test/ttesttools/documentation
+/os/security/cryptoservices/filebasedcertificateandkeystores/test/ttesttools/scripts
+/mw/appinstall/secureswitools/makekeys/group
+/mw/appinstall/secureswitools/makekeys/src
+/mw/appinstall/secureswitools/makekeys/tdata
+/mw/appinstall/secureswitools/openssllib/import/bin/deb
+/mw/appinstall/secureswitools/openssllib/import/bin/linux-x86/deb
+/mw/appinstall/secureswitools/openssllib/import/bin/linux-x86/rel
+/mw/appinstall/secureswitools/openssllib/import/bin/rel
+/mw/appinstall/secureswitools/openssllib/import/inc/openssl
+/os/security/cryptoservices/rootcertificates
+/os/security/securityanddataprivacytools/securitytools/certapp/api
+/os/security/securityanddataprivacytools/securitytools/certapp/encdec
+/os/security/securityanddataprivacytools/securitytools/certapp/group
+/os/security/securityanddataprivacytools/securitytools/certapp/store--
+/os/security/securityanddataprivacytools/securitytools/certapp/test/tcertapp
+/os/security/securityanddataprivacytools/securitytools/certapp/utils
+/os/security/securityanddataprivacytools/securitytools/documentation
+/os/security/securityanddataprivacytools/securitytools/group
+/os/security/securityanddataprivacytools/securityconfig/JavaMIDletInstaller
+/os/security/securityanddataprivacytools/securityconfig/filetokens
+/os/security/securityanddataprivacytools/securityconfig/group
+/os/security/securityanddataprivacytools/securityconfig/ocsp
+/os/security/securityanddataprivacytools/securityconfig/swi
+/os/security/securityanddataprivacytools/securityconfig/tlsprovider
+/os/security/securityanddataprivacytools/securityconfig/ups/backup
+/os/security/securityanddataprivacytools/securityconfig/ups/romstub
+/os/security/securityanddataprivacytools/securityconfig/usif/scr
+/os/security/securityanddataprivacytools/securityconfig/usif/siflauncher
+/mw/appinstall/installationservices/swi/bwins
+/mw/appinstall/installationservices/swidevicetools/group
+/mw/appinstall/installationservices/swidevicetools/source/swicertstoretool
+/mw/appinstall/installationservices/swidevicetools/source/swiconsole/data
+/mw/appinstall/installationservices/swidevicetools/source/swiconsole/inc
+/mw/appinstall/installationservices/swidevicetools/source/swiconsole/src
+/mw/appinstall/installationservices/swidevicetools/test/tswiconsole/data
+/mw/appinstall/installationservices/swidevicetools/test/tswiconsole/scripts
+/mw/appinstall/installationservices/swi/docs
+/mw/appinstall/installationservices/swi/eabi
+/mw/appinstall/installationservices/swi/group
+/mw/appinstall/installationservices/swi/inc/swi
+/mw/appinstall/secureswitools/swianalysistoolkit/group
+/mw/appinstall/secureswitools/swianalysistoolkit/source/chainvalidityandinstallfilestatustools/common
+/mw/appinstall/secureswitools/swianalysistoolkit/source/chainvalidityandinstallfilestatustools/dumpchainvaliditytool
+/mw/appinstall/secureswitools/swianalysistoolkit/source/chainvalidityandinstallfilestatustools/dumpinstallfilestatustool
+/mw/appinstall/secureswitools/swianalysistoolkit/source/common
+/mw/appinstall/secureswitools/swianalysistoolkit/source/dumpswicertstoretool
+/mw/appinstall/secureswitools/swianalysistoolkit/source/dumpswiregistrytool
+/mw/appinstall/secureswitools/swianalysistoolkit/test/tchainvalidity/chainvalidity-output
+/mw/appinstall/secureswitools/swianalysistoolkit/test/tchainvalidity/data
+/mw/appinstall/secureswitools/swianalysistoolkit/test/tdumpcertstore/data
+/mw/appinstall/secureswitools/swianalysistoolkit/test/tdumpcertstore/dumpcertstore-output
+/mw/appinstall/secureswitools/swianalysistoolkit/test/tdumpregistry/data/1000000d
+/mw/appinstall/secureswitools/swianalysistoolkit/test/tdumpregistry/data/1020383e
+/mw/appinstall/secureswitools/swianalysistoolkit/test/tdumpregistry/data/80000003
+/mw/appinstall/secureswitools/swianalysistoolkit/test/tdumpregistry/data/80000010
+/mw/appinstall/secureswitools/swianalysistoolkit/test/tdumpregistry/data/80000134
+/mw/appinstall/secureswitools/swianalysistoolkit/test/tdumpregistry/data/80212345
+/mw/appinstall/secureswitools/swianalysistoolkit/test/tdumpregistry/data/81000008
+/mw/appinstall/secureswitools/swianalysistoolkit/test/tdumpregistry/data/8100000b
+/mw/appinstall/secureswitools/swianalysistoolkit/test/tdumpregistry/data/81111107
+/mw/appinstall/secureswitools/swianalysistoolkit/test/tdumpregistry/data/811111f8
+/mw/appinstall/secureswitools/swianalysistoolkit/test/tdumpregistry/data/811111f9
+/mw/appinstall/secureswitools/swianalysistoolkit/test/tdumpregistry/data/811111fb
+/mw/appinstall/secureswitools/swianalysistoolkit/test/tdumpregistry/data/811111fc
+/mw/appinstall/secureswitools/swianalysistoolkit/test/tdumpregistry/data/81115000
+/mw/appinstall/secureswitools/swianalysistoolkit/test/tdumpregistry/data/81115011
+/mw/appinstall/secureswitools/swianalysistoolkit/test/tdumpregistry/data/81115012
+/mw/appinstall/secureswitools/swianalysistoolkit/test/tdumpregistry/data/81115013
+/mw/appinstall/secureswitools/swianalysistoolkit/test/tdumpregistry/data/81231235
+/mw/appinstall/secureswitools/swianalysistoolkit/test/tdumpregistry/data/a0000206
+/mw/appinstall/secureswitools/swianalysistoolkit/test/tdumpregistry/dumpregistry-output
+/mw/appinstall/secureswitools/swianalysistoolkit/test/tinstallfilestatus/data
+/mw/appinstall/secureswitools/swianalysistoolkit/test/tinstallfilestatus/installstatus-output
+/mw/appinstall/secureswitools/swisistools/examples/interpretsis
+/mw/appinstall/secureswitools/swisistools/group
+/mw/appinstall/secureswitools/swisistools/source/common
+/mw/appinstall/secureswitools/swisistools/source/createsis
+/mw/appinstall/secureswitools/swisistools/source/dbmanager/sqlite
+/mw/appinstall/secureswitools/swisistools/source/dbtool/data
+/mw/appinstall/secureswitools/swisistools/source/dumpsis
+/mw/appinstall/secureswitools/swisistools/source/dumpsislib
+/mw/appinstall/secureswitools/swisistools/source/interpretsis
+/mw/appinstall/secureswitools/swisistools/source/interpretsislib
+/mw/appinstall/secureswitools/swisistools/source/makesis
+/mw/appinstall/secureswitools/swisistools/source/makesislib
+/mw/appinstall/secureswitools/swisistools/source/signsis
+/mw/appinstall/secureswitools/swisistools/source/signsislib
+/mw/appinstall/secureswitools/swisistools/source/sisxlibrary
+/mw/appinstall/secureswitools/swisistools/source/xmlparser/xerces/bin
+/mw/appinstall/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/dom/deprecated
+/mw/appinstall/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/framework/psvi
+/mw/appinstall/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal
+/mw/appinstall/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/parsers
+/mw/appinstall/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/sax
+/mw/appinstall/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/sax2
+/mw/appinstall/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/util/Compilers
+/mw/appinstall/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/util/MsgLoaders/ICU
+/mw/appinstall/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/util/MsgLoaders/InMemory
+/mw/appinstall/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/util/MsgLoaders/MsgCatalog
+/mw/appinstall/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/util/MsgLoaders/MsgFile
+/mw/appinstall/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/util/MsgLoaders/Win32
+/mw/appinstall/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/util/NetAccessors/MacOSURLAccess
+/mw/appinstall/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/util/NetAccessors/MacOSURLAccessCF
+/mw/appinstall/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/util/NetAccessors/Socket
+/mw/appinstall/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/util/NetAccessors/WinSock
+/mw/appinstall/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/util/NetAccessors/libWWW
+/mw/appinstall/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/util/Platforms/AIX
+/mw/appinstall/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/util/Platforms/BeOS
+/mw/appinstall/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/util/Platforms/Cygwin
+/mw/appinstall/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/util/Platforms/FreeBSD
+/mw/appinstall/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/util/Platforms/HPUX
+/mw/appinstall/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/util/Platforms/IRIX
+/mw/appinstall/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/util/Platforms/Interix
+/mw/appinstall/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/util/Platforms/Linux
+/mw/appinstall/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/util/Platforms/MacOS
+/mw/appinstall/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/util/Platforms/NetBSD
+/mw/appinstall/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/util/Platforms/OS2
+/mw/appinstall/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/util/Platforms/OS390
+/mw/appinstall/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/util/Platforms/OS400
+/mw/appinstall/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/util/Platforms/OpenServer
+/mw/appinstall/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/util/Platforms/PTX
+/mw/appinstall/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/util/Platforms/QNX
+/mw/appinstall/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/util/Platforms/Solaris
+/mw/appinstall/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/util/Platforms/Tandem
+/mw/appinstall/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/util/Platforms/Tru64
+/mw/appinstall/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/util/Platforms/UnixWare
+/mw/appinstall/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/util/Platforms/Win32
+/mw/appinstall/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/util/Transcoders/Cygwin
+/mw/appinstall/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/util/Transcoders/ICU
+/mw/appinstall/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/util/Transcoders/Iconv
+/mw/appinstall/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/util/Transcoders/Iconv390
+/mw/appinstall/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/util/Transcoders/Iconv400
+/mw/appinstall/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/util/Transcoders/IconvFBSD
+/mw/appinstall/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/util/Transcoders/IconvGNU
+/mw/appinstall/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/util/Transcoders/MacOSUnicodeConverter
+/mw/appinstall/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/util/Transcoders/Uniconv390
+/mw/appinstall/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/util/Transcoders/Win32
+/mw/appinstall/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/util/regx
+/mw/appinstall/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/validators/DTD
+/mw/appinstall/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/validators/common
+/mw/appinstall/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/validators/datatype
+/mw/appinstall/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/validators/schema/identity
+/mw/appinstall/secureswitools/swisistools/source/xmlparser/xerces/lib
+/mw/appinstall/secureswitools/swisistools/test/tdbtool/data
+/mw/appinstall/secureswitools/swisistools/test/tdumpsis/data/condtest
+/mw/appinstall/secureswitools/swisistools/test/tdumpsis/data/condtestelseif
+/mw/appinstall/secureswitools/swisistools/test/tdumpsis/data/deptest
+/mw/appinstall/secureswitools/swisistools/test/tdumpsis/data/embtest
+/mw/appinstall/secureswitools/swisistools/test/tdumpsis/data/logotest
+/mw/appinstall/secureswitools/swisistools/test/tdumpsis/data/multilangtest
+/mw/appinstall/secureswitools/swisistools/test/tdumpsis/data/oprtest
+/mw/appinstall/secureswitools/swisistools/test/tdumpsis/data/simple
+/mw/appinstall/secureswitools/swisistools/test/tdumpsis/data/testfilenulld
+/mw/appinstall/secureswitools/swisistools/test/tdumpsis/data/unicodetest
+/mw/appinstall/secureswitools/swisistools/test/tdumpsis/package
+/mw/appinstall/secureswitools/swisistools/test/testmakesis
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsis/certs
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsis/pkg
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/data/80000001_40
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/data/80000001_51
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/data/80000001_53
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/data/diffuid
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/data/updatedfolder
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/logs
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/parameters_file
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/scripts
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/sisfiles/indir1
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/sisfiles/indir2
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdataa001
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdataa002
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdataa003/indir1
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdataa003/indir2
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatab001
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatab002
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatab003
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatab004
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatab005
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatab006
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatab007
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatac001
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatac002
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatac003
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatac004
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatad001
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatad002
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatad003
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatad004
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatad005
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatadef115968
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatae001
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatae002
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatae003
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatae004
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatae005
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdataf001
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdataf002
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdataf003
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdataf004
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdataf005
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdataf006
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdataf007
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdataf008
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdataf009
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdataf010
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdataf011
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatag001
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatag002
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatag003
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatah001
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatah002
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatah003
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatah004
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatai001
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatai002
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatai003
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatainc124436
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdataj001
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdataj002
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdataj003
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdataj004
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdataj005
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdataj006
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdataj007
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdataj008
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatak002
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatal001
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatam001
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatam0010
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatam0011
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatam0016
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatam002
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatam003
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatam004
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatam008
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatan001
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatan002
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatap001
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatap003
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatap004
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatap005
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatap006
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatap007
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdataq001
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdataq002
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatar001
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatas001
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatas0010
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatas002
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatas003
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatas004
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatas005
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatas006
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatas007
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatas008
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatas009
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatat001
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdatav001
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/testdataw001
+/mw/appinstall/secureswitools/swisistools/test/tinterpretsisinteg/tintsistef
+/mw/appinstall/secureswitools/swisistools/test/tsignsis/data
+/mw/appinstall/secureswitools/swisistools/test/tsignsis/packagedata/badhash
+/mw/appinstall/secureswitools/swisistools/test/tsignsis/packagedata/simple
+/mw/appinstall/secureswitools/swisistools/test/txmlparser/scripts/data
+/mw/appinstall/installationservices/swi/source/backuprestore
+/mw/appinstall/installationservices/swi/source/certstoretobin
+/mw/appinstall/installationservices/swi/source/daemon
+/mw/appinstall/installationservices/swi/source/dataprovider
+/mw/appinstall/installationservices/swi/source/devinfosupport/client
+/mw/appinstall/installationservices/swi/source/devinfosupport/common
+/mw/appinstall/installationservices/swi/source/devinfosupport/server
+/mw/appinstall/installationservices/swi/source/integrityservices
+/mw/appinstall/installationservices/swi/source/ocspsupport/client
+/mw/appinstall/installationservices/swi/source/ocspsupport/common
+/mw/appinstall/installationservices/swi/source/ocspsupport/server
+/mw/appinstall/installationservices/swi/source/pkgremover
+/mw/appinstall/installationservices/swi/source/plan
+/mw/appinstall/installationservices/swi/source/securitymanager/certstore
+/mw/appinstall/installationservices/swi/source/securitymanager/policies
+/mw/appinstall/installationservices/swi/source/sisfile
+/mw/appinstall/installationservices/swi/source/sishelper/commands
+/mw/appinstall/installationservices/swi/source/sislauncher/client
+/mw/appinstall/installationservices/swi/source/sislauncher/common
+/mw/appinstall/installationservices/swi/source/sislauncher/server
+/mw/appinstall/installationservices/swi/source/sisregistry/client
+/mw/appinstall/installationservices/swi/source/sisregistry/common
+/mw/appinstall/installationservices/swi/source/sisregistry/server
+/mw/appinstall/installationservices/swi/source/sisregistry/server_legacy
+/mw/appinstall/installationservices/swi/source/sisresult
+/mw/appinstall/installationservices/swi/source/sisxrecognizer
+/mw/appinstall/installationservices/swi/source/swiobserver/client
+/mw/appinstall/installationservices/swi/source/swiobserver/group
+/mw/appinstall/installationservices/swi/source/swiobserver/inc_private
+/mw/appinstall/installationservices/swi/source/swiobserver/info
+/mw/appinstall/installationservices/swi/source/swiobserver/plugin
+/mw/appinstall/installationservices/swi/source/swiobserver/server
+/mw/appinstall/installationservices/swi/source/swis/server
+/mw/appinstall/installationservices/swi/source/swisidchecker
+/mw/appinstall/installationservices/swi/source/uiss/client/commands
+/mw/appinstall/installationservices/swi/source/uiss/common
+/mw/appinstall/installationservices/swi/source/uiss/server
+/mw/appinstall/installationservices/swi/source/upsswiobsplugin/group
+/mw/appinstall/installationservices/swi/source/upsswiobsplugin/inc
+/mw/appinstall/installationservices/swi/source/upsswiobsplugin/source
+/mw/appinstall/installationservices/swi/test/bwins
+/mw/appinstall/installationservices/swi/test/captestframework
+/mw/appinstall/installationservices/swi/test/eabi
+/mw/appinstall/installationservices/swi/test/genbackupmeta/inc
+/mw/appinstall/installationservices/swi/test/genbackupmeta/source
+/mw/appinstall/installationservices/swi/test/hw_hidden
+/mw/appinstall/installationservices/swi/test/swicaptests/data
+/mw/appinstall/installationservices/swi/test/swicaptests/scripts
+/mw/appinstall/installationservices/swi/test/tasynccancel/scripts
+/mw/appinstall/installationservices/swi/test/tasynccancel/toinstall/data
+/mw/appinstall/installationservices/swi/test/tautosigning/createsis
+/mw/appinstall/installationservices/swi/test/tautosigning/data
+/mw/appinstall/installationservices/swi/test/tautosigning/entropy
+/mw/appinstall/installationservices/swi/test/tautosigning/selfsigned
+/mw/appinstall/installationservices/swi/test/tautosigning/signed
+/mw/appinstall/installationservices/swi/test/tautosigning/unsigned
+/mw/appinstall/installationservices/swi/test/tbackuprestore/data/armv5
+/mw/appinstall/installationservices/swi/test/tbackuprestore/data/winscw
+/mw/appinstall/installationservices/swi/test/tbackuprestore/scripts/batchfiles
+/mw/appinstall/installationservices/swi/test/tdaemon/scripts
+/mw/appinstall/installationservices/swi/test/tdaemon/steps
+/mw/appinstall/installationservices/swi/test/tdataprovider/data
+/mw/appinstall/installationservices/swi/test/tdataprovider/scripts
+/mw/appinstall/installationservices/swi/test/tdevcerts/SymbianTestRootCARSA_OCSP/SymbianTestRootCARSA
+/mw/appinstall/installationservices/swi/test/tdevcerts/SymbianTestRootCARSA_OCSP/ext
+/mw/appinstall/installationservices/swi/test/tdevcerts/additional_tests
+/mw/appinstall/installationservices/swi/test/tdevcerts/backuprestore
+/mw/appinstall/installationservices/swi/test/tdevcerts/certs
+/mw/appinstall/installationservices/swi/test/tdevcerts/demoCA
+/mw/appinstall/installationservices/swi/test/tdevcerts/ext
+/mw/appinstall/installationservices/swi/test/tdevcerts/ini
+/mw/appinstall/installationservices/swi/test/tdevcerts/ocsp
+/mw/appinstall/installationservices/swi/test/tdevcerts/scripts/batchfiles
+/mw/appinstall/installationservices/swi/test/tdevcerts/templates
+/mw/appinstall/installationservices/swi/test/tdevcerts/tests
+/mw/appinstall/installationservices/swi/test/tdevinfosupport
+/mw/appinstall/installationservices/swi/test/teclipsing/bwins
+/mw/appinstall/installationservices/swi/test/teclipsing/data
+/mw/appinstall/installationservices/swi/test/teclipsing/eabi
+/mw/appinstall/installationservices/swi/test/teclipsing/group
+/mw/appinstall/installationservices/swi/test/teclipsing/include
+/mw/appinstall/installationservices/swi/test/teclipsing/source
+/mw/appinstall/installationservices/swi/test/testapps
+/mw/appinstall/installationservices/swi/test/testexes/adornedfilenametestingdll
+/mw/appinstall/installationservices/swi/test/testexes/certs
+/mw/appinstall/installationservices/swi/test/testexes/custom/sis/armv5
+/mw/appinstall/installationservices/swi/test/testexes/custom/sis/winscw
+/mw/appinstall/installationservices/swi/test/testexes/embed
+/mw/appinstall/installationservices/swi/test/testexes/non_iby_packages
+/mw/appinstall/installationservices/swi/test/testexes/packages
+/mw/appinstall/installationservices/swi/test/testexes/tdemand_paging/BWINS
+/mw/appinstall/installationservices/swi/test/testexes/tdemand_paging/EABI
+/mw/appinstall/installationservices/swi/test/testexes/tdemand_paging/commonframework
+/mw/appinstall/installationservices/swi/test/testexes/tdemand_paging/isolated
+/mw/appinstall/installationservices/swi/test/testexes/tdemand_paging/isolated_unpaged
+/mw/appinstall/installationservices/swi/test/testexes/tdemand_paging/staticdll
+/mw/appinstall/installationservices/swi/test/testexes/testappinuse
+/mw/appinstall/installationservices/swi/test/testexes/tpropagation
+/mw/appinstall/installationservices/swi/test/testutilswi/BWINS
+/mw/appinstall/installationservices/swi/test/testutilswi/EABI
+/mw/appinstall/installationservices/swi/test/testutilswi/client
+/mw/appinstall/installationservices/swi/test/testutilswi/common
+/mw/appinstall/installationservices/swi/test/testutilswi/group
+/mw/appinstall/installationservices/swi/test/testutilswi/server
+/mw/appinstall/installationservices/swi/test/tgenbackupmeta/scripts
+/mw/appinstall/installationservices/swi/test/tintegrityservices/Scripts/batchfiles
+/mw/appinstall/installationservices/swi/test/tintegrityservices/Scripts/install_v1
+/mw/appinstall/installationservices/swi/test/tintegrityservices/Scripts/install_v2
+/mw/appinstall/installationservices/swi/test/tintegrityservices/Scripts/rollback_install_v1
+/mw/appinstall/installationservices/swi/test/tintegrityservices/Scripts/rollback_install_v2
+/mw/appinstall/installationservices/swi/test/tintegrityservices/Scripts/rollback_uninstall_v1
+/mw/appinstall/installationservices/swi/test/tintegrityservices/Scripts/rollback_uninstall_v2
+/mw/appinstall/installationservices/swi/test/tintegrityservices/Scripts/rollback_upgrade_v1-v2
+/mw/appinstall/installationservices/swi/test/tintegrityservices/Scripts/uninstall_v1
+/mw/appinstall/installationservices/swi/test/tintegrityservices/Scripts/uninstall_v2
+/mw/appinstall/installationservices/swi/test/tintegrityservices/Scripts/upgrade_v1-v2
+/mw/appinstall/installationservices/swi/test/tintegrityservices/data/startup/1000000f
+/mw/appinstall/installationservices/swi/test/tintegrityservices/data/startup/3
+/mw/appinstall/installationservices/swi/test/tintegrityservices/data/startup/80000001
+/mw/appinstall/installationservices/swi/test/tintegrityservices/data/startup/80000002
+/mw/appinstall/installationservices/swi/test/tintegrityservices/data/startup/removable_media
+/mw/appinstall/installationservices/swi/test/tmimehandler/aif
+/mw/appinstall/installationservices/swi/test/tmimerecog
+/mw/appinstall/installationservices/swi/test/tpathsubst/build
+/mw/appinstall/installationservices/swi/test/tpathsubst/prebuilt
+/mw/appinstall/installationservices/swi/test/tpathsubst/scripts
+/mw/appinstall/installationservices/swi/test/tpathsubst/testpkg
+/mw/appinstall/installationservices/swi/test/trevocation/SymbianTestRootCARSA_OCSP_TRev1/SymbianTestRootCARSATRev
+/mw/appinstall/installationservices/swi/test/trevocation/SymbianTestRootCARSA_OCSP_TRev2/SymbianTestRootCARSATRev
+/mw/appinstall/installationservices/swi/test/trevocation/SymbianTestRootCARSA_OCSP_TRev3/SymbianTestRootCARSATRev
+/mw/appinstall/installationservices/swi/test/trevocation/data/armv5
+/mw/appinstall/installationservices/swi/test/trevocation/data/winscw
+/mw/appinstall/installationservices/swi/test/trevocation/ext
+/mw/appinstall/installationservices/swi/test/trevocation/pkgInteg/armv5/text
+/mw/appinstall/installationservices/swi/test/trevocation/pkgInteg/winscw/text
+/mw/appinstall/installationservices/swi/test/trevocation/scripts
+/mw/appinstall/installationservices/swi/test/trevocation/sisInteg/armv5
+/mw/appinstall/installationservices/swi/test/trevocation/sisInteg/winscw
+/mw/appinstall/installationservices/swi/test/trevocation/templates
+/mw/appinstall/installationservices/swi/test/trevocation/tests
+/mw/appinstall/installationservices/swi/test/tsisfile/batchfiles
+/mw/appinstall/installationservices/swi/test/tsisfile/data/data_no_tests
+/mw/appinstall/installationservices/swi/test/tsisfile/data/files
+/mw/appinstall/installationservices/swi/test/tsisfile/data/signedsis/Root5CA/cert_chain_dsa_len1
+/mw/appinstall/installationservices/swi/test/tsisfile/data/signedsis/Root5CA/cert_chain_dsa_len2
+/mw/appinstall/installationservices/swi/test/tsisfile/data/signedsis/Root5CA/cert_chain_dsa_len3
+/mw/appinstall/installationservices/swi/test/tsisfile/data/signedsis/Root5CA/cert_chain_rsa_len1
+/mw/appinstall/installationservices/swi/test/tsisfile/data/signedsis/Root5CA/cert_chain_rsa_len2
+/mw/appinstall/installationservices/swi/test/tsisfile/data/signedsis/Root5CA/cert_chain_rsa_len3
+/mw/appinstall/installationservices/swi/test/tsisfile/data/signedsis/SymbianTestRootCADSA/cert_chain_dsa_len1
+/mw/appinstall/installationservices/swi/test/tsisfile/data/signedsis/SymbianTestRootCADSA/cert_chain_dsa_len2
+/mw/appinstall/installationservices/swi/test/tsisfile/data/signedsis/SymbianTestRootCADSA/cert_chain_dsa_len3
+/mw/appinstall/installationservices/swi/test/tsisfile/data/signedsis/SymbianTestRootCADSA/cert_chain_rsa_len1
+/mw/appinstall/installationservices/swi/test/tsisfile/data/signedsis/SymbianTestRootCADSA/cert_chain_rsa_len2
+/mw/appinstall/installationservices/swi/test/tsisfile/data/signedsis/SymbianTestRootCADSA/cert_chain_rsa_len3
+/mw/appinstall/installationservices/swi/test/tsisfile/data/signedsis/SymbianTestRootCADiffSerial/cert_chain_rsa_len1
+/mw/appinstall/installationservices/swi/test/tsisfile/data/signedsis/SymbianTestRootCADiffSerial/cert_chain_rsa_len2
+/mw/appinstall/installationservices/swi/test/tsisfile/data/signedsis/SymbianTestRootCARSA/cert_chain_dsa_len1
+/mw/appinstall/installationservices/swi/test/tsisfile/data/signedsis/SymbianTestRootCARSA/cert_chain_dsa_len2
+/mw/appinstall/installationservices/swi/test/tsisfile/data/signedsis/SymbianTestRootCARSA/cert_chain_dsa_len3
+/mw/appinstall/installationservices/swi/test/tsisfile/data/signedsis/SymbianTestRootCARSA/cert_chain_rsa_len1
+/mw/appinstall/installationservices/swi/test/tsisfile/data/signedsis/SymbianTestRootCARSA/cert_chain_rsa_len2
+/mw/appinstall/installationservices/swi/test/tsisfile/data/signedsis/SymbianTestRootCARSA/cert_chain_rsa_len3
+/mw/appinstall/installationservices/swi/test/tsisfile/data/signedsis/SymbianTestRootExpiredCARSA
+/mw/appinstall/installationservices/swi/test/tsisfile/data/signedsis/SymbianTestRootTCBCARSA
+/mw/appinstall/installationservices/swi/test/tsisfile/data/signedsis/extendedkeyusage
+/mw/appinstall/installationservices/swi/test/tsisfile/data/signedsis/sucert
+/mw/appinstall/installationservices/swi/test/tsisfile/data/signedsis/symbiantestallcapabilitiesca
+/mw/appinstall/installationservices/swi/test/tsisfile/data/signedsis/symbiantestrootcanotinstore/cert_chain_rsa_len1
+/mw/appinstall/installationservices/swi/test/tsisfile/data/text
+/mw/appinstall/installationservices/swi/test/tsisfile/data/tobesigned
+/mw/appinstall/installationservices/swi/test/tsisfile/scripts
+/mw/appinstall/installationservices/swi/test/tsisfile/steps
+/mw/appinstall/installationservices/swi/test/tsishelper/data
+/mw/appinstall/installationservices/swi/test/tsishelper/scripts
+/mw/appinstall/installationservices/swi/test/tsisregistrytest/Scripts/batchfiles
+/mw/appinstall/installationservices/swi/test/tsisregistrytest_legacy/Scripts/batchfiles
+/mw/appinstall/installationservices/swi/test/tsisregistrytest_legacy/data/1000000f
+/mw/appinstall/installationservices/swi/test/tsisregistrytest_legacy/data/10009f46
+/mw/appinstall/installationservices/swi/test/tsisregistrytest_legacy/data/1000a46d
+/mw/appinstall/installationservices/swi/test/tsisregistrytest_legacy/data/101f7989
+/mw/appinstall/installationservices/swi/test/tsisregistrytest_legacy/data/10285777
+/mw/appinstall/installationservices/swi/test/tsisregistrytest_legacy/data/11111107
+/mw/appinstall/installationservices/swi/test/tsisregistrytest_legacy/data/200020b0
+/mw/appinstall/installationservices/swi/test/tsisregistrytest_legacy/data/2000a471
+/mw/appinstall/installationservices/swi/test/tsisregistrytest_legacy/data/80000001
+/mw/appinstall/installationservices/swi/test/tsisregistrytest_legacy/data/80000002
+/mw/appinstall/installationservices/swi/test/tsisregistrytest_legacy/data/8000001b
+/mw/appinstall/installationservices/swi/test/tsisregistrytest_legacy/data/8000001c
+/mw/appinstall/installationservices/swi/test/tsisregistrytest_legacy/data/80123456
+/mw/appinstall/installationservices/swi/test/tsisregistrytest_legacy/data/802730a0
+/mw/appinstall/installationservices/swi/test/tsisregistrytest_legacy/data/802730a1
+/mw/appinstall/installationservices/swi/test/tsisregistrytest_legacy/data/802730a2
+/mw/appinstall/installationservices/swi/test/tsisregistrytest_legacy/data/802730b1
+/mw/appinstall/installationservices/swi/test/tsisregistrytest_legacy/data/811111fd
+/mw/appinstall/installationservices/swi/test/tsisregistrytest_legacy/data/811111fe
+/mw/appinstall/installationservices/swi/test/tsisregistrytest_legacy/data/811111ff
+/mw/appinstall/installationservices/swi/test/tsisregistrytest_legacy/data/81111201
+/mw/appinstall/installationservices/swi/test/tsisregistrytest_legacy/data/81111207
+/mw/appinstall/installationservices/swi/test/tsisregistrytest_legacy/data/81111209
+/mw/appinstall/installationservices/swi/test/tsisregistrytest_legacy/data/81113014
+/mw/appinstall/installationservices/swi/test/tsisregistrytest_legacy/data/a0001022
+/mw/appinstall/installationservices/swi/test/tswiobserver/group
+/mw/appinstall/installationservices/swi/test/tswiobserver/propertychanger/group
+/mw/appinstall/installationservices/swi/test/tswiobserver/propertychanger/source
+/mw/appinstall/installationservices/swi/test/tswiobserver/refswiobsplugin/group
+/mw/appinstall/installationservices/swi/test/tswiobserver/refswiobsplugin/inc
+/mw/appinstall/installationservices/swi/test/tswiobserver/refswiobsplugin/source
+/mw/appinstall/installationservices/swi/test/tswiobserver/scripts/data
+/mw/appinstall/installationservices/swi/test/tswiobserver/unittests/group
+/mw/appinstall/installationservices/swi/test/tswiobserver/unittests/source
+/mw/appinstall/installationservices/swi/test/tuiadaptors
+/mw/appinstall/installationservices/swi/test/tuiscriptadaptors/scripts/DRM/Content
+/mw/appinstall/installationservices/swi/test/tuiscriptadaptors/scripts/DRM/Rights
+/mw/appinstall/installationservices/swi/test/tuiscriptadaptors/scripts/batchfiles
+/mw/appinstall/installationservices/swi/test/tuiscriptadaptors/scripts/testnonremovable
+/mw/appinstall/installationservices/swi/test/tvdialogs/group
+/mw/appinstall/installationservices/swi/test/writableswicertstore/certs/capabilities
+/mw/appinstall/installationservices/swi/test/writableswicertstore/certs/chain/intermediate
+/mw/appinstall/installationservices/swi/test/writableswicertstore/certs/expired
+/mw/appinstall/installationservices/swi/test/writableswicertstore/certs/mandatory
+/mw/appinstall/installationservices/swi/test/writableswicertstore/certs/renewed
+/mw/appinstall/installationservices/swi/test/writableswicertstore/data
+/mw/appinstall/installationservices/swi/test/writableswicertstore/packages
+/mw/appinstall/installationservices/swi/test/writableswicertstore/src/testexes
+/mw/appinstall/installationservices/swi/test/writableswicertstore/src/testutil
+/os/security/cryptomgmtlibs/securitytestfw/bwins
+/os/security/cryptomgmtlibs/securitytestfw/eabi
+/os/security/cryptomgmtlibs/securitytestfw/group
+/os/security/cryptomgmtlibs/securitytestfw/inc
+/os/security/cryptomgmtlibs/securitytestfw/test/autotesting
+/os/security/cryptomgmtlibs/securitytestfw/test/loggertemplate
+/os/security/cryptomgmtlibs/securitytestfw/test/securityframeworktestserver/bwins
+/os/security/cryptomgmtlibs/securitytestfw/test/securityframeworktestserver/group
+/os/security/cryptomgmtlibs/securitytestfw/test/securityframeworktestserver/src
+/os/security/cryptomgmtlibs/securitytestfw/test/sntpclient
+/os/security/cryptomgmtlibs/securitytestfw/test/testhandler2
+/os/security/cryptomgmtlibs/securitytestfw/test/testhandler2extra
+/os/security/cryptomgmtlibs/securitytestfw/test/testhandler_on_testexecute
+/os/security/cryptomgmtlibs/securitytestfw/test/testutil/BWINS
+/os/security/cryptomgmtlibs/securitytestfw/test/testutil/EABI
+/os/security/cryptomgmtlibs/securitytestfw/test/testutil/client
+/os/security/cryptomgmtlibs/securitytestfw/test/testutil/common
+/os/security/cryptomgmtlibs/securitytestfw/test/testutil/group
+/os/security/cryptomgmtlibs/securitytestfw/test/testutil/server
+/os/security/cryptomgmtlibs/securitytestfw/test/testutil/testutilcommon
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/JavaMIDletInstaller/source/winsignmidlet
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/JavaMIDletInstaller/test/tJarDownloader/data
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/JavaMIDletInstaller/test/tJavaHelper/trust
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/JavaMIDletInstaller/test/tWinSignMIDlet/signingdata
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tcertstore/tdata
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tcertstore/unifiedcertstore2
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tder/example/root5ca
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/testcertificates/oldCA/OCSPSigningRoot/certs
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/testcertificates/oldCA/OCSPSigningRoot/private
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/testcertificates/oldCA/Root1/certs
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/testcertificates/oldCA/Root1/private
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/testcertificates/openssl/Certs
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/testcertificates/openssl/Chains
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/testcertificates/openssl/OCSPSigningRoot/certs
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/testcertificates/openssl/OCSPSigningRoot/private
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/testcertificates/openssl/Root1/certs
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/testcertificates/openssl/Root1/private
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/testcertificates/openssl/Root2/certs
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/testcertificates/openssl/Root2/private
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/testcertificates/openssl/Root5/certs
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/testcertificates/openssl/Root5/private
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tocsp/Certificates/CertCo/der
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tocsp/Certificates/CertCo/pem
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tocsp/Certificates/OpenSSL/DER
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tocsp/Certificates/SmartTrust/der
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tocsp/Certificates/Valicert/DER
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tocsp/Certificates/XCert/DER
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tocsp/Certificates/symbsign/DER
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tocsp/responses
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkcs10/testdata
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkcs12intgrtn/data
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkcs12intgrtn/testdatainput
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkcs7/data/cms/cert_dsa_len1
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkcs7/data/cms/cert_rsa_len1
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkcs7/data/cms/results
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkcs7/testdatainput/128bit_rc2
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkcs7/testdatainput/128bit_rc4
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkcs7/testdatainput/2key_tripledes
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkcs7/testdatainput/3key_tripledes
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkcs7/testdatainput/40bit_rc2
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkcs7/testdatainput/40bit_rc4
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkcs7/testdatainput/contenttype_notdata
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkcs7/testdatainput/digest_negalgtag
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkcs7/testdatainput/digest_negdigesttag
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkcs7/testdatainput/digestinfo_withoutdigest
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkcs7/testdatainput/md5_digestalg
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkcs7/testdatainput/noencryptedcontent
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkcs7/testdatainput/notencrypteddata
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkcs7/testdatainput/sha1_digestalg
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkcs7/testdatainput/unsupported_digestalg
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkcs7/testdatainput/versiontag_changed
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkcs7/testdatainput/withoutencryptparams
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/build
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/bmpstring
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/cp_01_01
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/cp_01_02
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/cp_01_03
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/cp_02_01
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/cp_02_02
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/cp_02_03
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/cp_02_04
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/cp_02_05
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/cp_03_01
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/cp_03_02
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/cp_03_03
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/cp_03_04
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/cp_04_01
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/cp_04_02
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/cp_04_03
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/cp_04_04
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/cp_04_05
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/cp_04_06
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/critical_extns
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/forged
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/ic_01_01
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/ic_02_01
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/ic_02_02
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/ic_02_03
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/ic_02_04
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/ic_04_01
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/ic_05_01
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/ic_05_02
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/ic_05_03
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/ic_06_01
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/ic_06_02
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/ic_06_03
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/invalidaltname
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/pl_01_01
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/pl_01_02
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/pl_01_03
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/pl_01_04
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/pl_01_05
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/pl_01_06
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/pl_01_07
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/pl_01_08
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/pl_01_09
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/pl_01_10
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/pp_01_01
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/pp_01_02
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/pp_01_03
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/pp_01_04
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/pp_01_05
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/pp_01_06
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/pp_01_07
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/pp_01_08
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/pp_01_09
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/pp_06_01
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/pp_06_02
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/pp_06_03
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/pp_06_04
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/pp_06_05
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/pp_08_01
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/pp_08_02
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/pp_08_03
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/pp_08_04
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/pp_08_05
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert/pkixtestdata/validation/pp_08_06
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tpkixcert_tef
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/twtlscert/wtlstestdata
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tx509/Data/dnames
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/certman/tx509/Data/extensions/certs
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/common/test/trecog/data
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/filetokens/test/tkeystore/data/certs/DSAcert1
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/filetokens/test/tkeystore/data/certs/DSAcert2
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/filetokens/test/tkeystore/data/certs/EncipherSign
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/filetokens/test/tkeystore/data/certs/NRCert
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/filetokens/test/tkeystore/data/certs/SignCert2
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/filetokens/test/tkeystore/data/certs/cert1
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/filetokens/test/tkeystore/data/certs/cert2
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/filetokens/test/tkeystore/data/certs/cert3
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/filetokens/test/ttesttools/data
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/group
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/security_tools/tcertapp
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/swi/pctools/test/tdumpcertstore/certificates
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/swi/sistools/test/tinterpretsis/certs
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/swi/sistools/test/tinterpretsisinteg/testdatah004
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/swi/sistools/test/tinterpretsisinteg/testdatai001
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/swi/sistools/test/tinterpretsisinteg/testdatai002
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/swi/sistools/test/tinterpretsisinteg/testdatai003
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/swi/sistools/test/tinterpretsisinteg/testdataj001
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/swi/sistools/test/tinterpretsisinteg/testdataj002
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/swi/sistools/test/tinterpretsisinteg/testdataj003
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/swi/sistools/test/tinterpretsisinteg/testdataj004
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/swi/sistools/test/tinterpretsisinteg/testdataj005
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/swi/sistools/test/tinterpretsisinteg/testdataj006
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/swi/sistools/test/tinterpretsisinteg/testdataj007
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/swi/sistools/test/tinterpretsisinteg/testdataj008
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/swi/sistools/test/tsignsis/signingdata
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/swi/test/tautosigning/createsis
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/swi/test/tautosigning/data
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/swi/test/tdevcerts/SymbianTestRootCARSA_OCSP/SymbianTestRootCARSA/certs
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/swi/test/tdevcerts/SymbianTestRootCARSA_OCSP/SymbianTestRootCARSA/private
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/swi/test/tdevcerts/certs
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/swi/test/tdevcerts/keys
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/swi/test/tdevcerts/ocsp
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/swi/test/testexes/certs
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/swi/test/trevocation/SymbianTestRootCARSA_OCSP_TRev1/SymbianTestRootCARSATRev/certs
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/swi/test/trevocation/SymbianTestRootCARSA_OCSP_TRev1/SymbianTestRootCARSATRev/private
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/swi/test/trevocation/SymbianTestRootCARSA_OCSP_TRev2/SymbianTestRootCARSATRev/certs
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/swi/test/trevocation/SymbianTestRootCARSA_OCSP_TRev2/SymbianTestRootCARSATRev/private
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/swi/test/trevocation/SymbianTestRootCARSA_OCSP_TRev3/SymbianTestRootCARSATRev/private
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/swi/test/trevocation/ocsp/responder1
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/swi/test/trevocation/ocsp/responder2
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/swi/test/tsisfile/data/files
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/swi/test/tsisfile/data/signedsis/CertificatesNotInStore
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/swi/test/tsisfile/data/signedsis/Root5CA/cert_chain_dsa_len1
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/swi/test/tsisfile/data/signedsis/Root5CA/cert_chain_dsa_len2
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/swi/test/tsisfile/data/signedsis/Root5CA/cert_chain_dsa_len3
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/swi/test/tsisfile/data/signedsis/Root5CA/cert_chain_rsa_len1
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/swi/test/tsisfile/data/signedsis/Root5CA/cert_chain_rsa_len2
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/swi/test/tsisfile/data/signedsis/Root5CA/cert_chain_rsa_len3
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCADSA/cert_chain_dsa_len1
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCADSA/cert_chain_dsa_len2
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCADSA/cert_chain_dsa_len3
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCADSA/cert_chain_rsa_len1
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCADSA/cert_chain_rsa_len2
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCADSA/cert_chain_rsa_len3
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCADiffSerial/cert_chain_rsa_len1
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCADiffSerial/cert_chain_rsa_len2
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCARSA/cert_chain_dsa_len1
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCARSA/cert_chain_dsa_len2
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCARSA/cert_chain_dsa_len3
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCARSA/cert_chain_rsa_len1
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCARSA/cert_chain_rsa_len2
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootCARSA/cert_chain_rsa_len3
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootExpiredCARSA
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/swi/test/tsisfile/data/signedsis/SymbianTestRootTCBCARSA
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/swi/test/tsisfile/data/signedsis/extendedkeyusage
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/swi/test/tsisfile/data/signedsis/sucert
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/swi/test/tsisfile/data/signedsis/symbiantestallcapabilitiesca
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/swi/test/tsisfile/data/signedsis/symbiantestrootcanotinstore/cert_chain_rsa_len1
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/swi/test/writableswicertstore/certs/capabilities
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/swi/test/writableswicertstore/certs/chain/intermediate
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/swi/test/writableswicertstore/certs/expired
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/swi/test/writableswicertstore/certs/mandatory
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/swi/test/writableswicertstore/certs/renewed
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/tlsprovider/Test/data/ClientAuthentication/KeyPair
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/tlsprovider/Test/data/ClientAuthentication/KeyStoreGeneration
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/tlsprovider/Test/data/certificates/altsubjectmanynames
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/tlsprovider/Test/data/certificates/altsubjectonename
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/tlsprovider/Test/data/certificates/altsubjectwildcard
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/tlsprovider/Test/data/certificates/commonname
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/tlsprovider/Test/data/testtokens
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/tlsprovider/Test/tlstest2/data/altsubjectmanynames
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/tlsprovider/Test/tlstest2/data/altsubjectonename
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/tlsprovider/Test/tlstest2/data/altsubjectwildcard
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/tlsprovider/Test/tlstest2/data/commonname
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/tlsprovider/Test/tlstest2/data/commonnamedsa
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/tlsprovider/Test/tlstest2/data/commonnamewildcard
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/tlsprovider/Test/tlstest2/data/corrupted_certs
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/tlsprovider/Test/tlstest2/data/dhe-3des-sha-1
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/tlsprovider/Test/tlstest2/data/dhe-des-sha-1
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/tlsprovider/Test/tlstest2/data/rdhe-3des-sha-1
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/tlsprovider/Test/tlstest2/data/rsa-3des-sha-1
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/tlsprovider/Test/tlstest2/data/rsa-aes128-sha-1
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/tlsprovider/Test/tlstest2/data/rsa-aes256-sha-1
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/tlsprovider/Test/tlstest2/data/rsa-des-sha-1
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/tlsprovider/Test/tlstest2/data/rsa-rc4-md5-1
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/tlsprovider/Test/tlstest2/data/rsa-rc4-sha-1
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/tlsprovider/Test/tlstest2/data/tlsclientauthrsachain/Import
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/tlsprovider/Test/tlstest2/data/tlsextendedkeyusage
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/tlsprovider/Test/tlstest2/data/tlssigningroot
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/tlsprovider/Test/tlstest2/openssl_server_setting
+/os/security/cryptomgmtlibs/securitytestfw/testcertificates/tlsprovider/Test/ttlscertcache/data
+/os/networkingsrv/networksecurity/tlsprovider/Documentation
+/os/networkingsrv/networksecurity/tlsprovider/Test/bwins
+/os/networkingsrv/networksecurity/tlsprovider/Test/data/ClientAuthentication/KeyStoreGeneration
+/os/networkingsrv/networksecurity/tlsprovider/Test/data/EncryptionDataDES_SSL
+/os/networkingsrv/networksecurity/tlsprovider/Test/data/EncryptionDataDES_TLS
+/os/networkingsrv/networksecurity/tlsprovider/Test/data/EncryptionDataSSL_Export
+/os/networkingsrv/networksecurity/tlsprovider/Test/data/EncryptionDataTLS_Export
+/os/networkingsrv/networksecurity/tlsprovider/Test/data/KeyAndCertStore
+/os/networkingsrv/networksecurity/tlsprovider/Test/data/certificates/altsubjectmanynames
+/os/networkingsrv/networksecurity/tlsprovider/Test/data/certificates/altsubjectonename
+/os/networkingsrv/networksecurity/tlsprovider/Test/data/certificates/altsubjectwildcard
+/os/networkingsrv/networksecurity/tlsprovider/Test/data/certificates/commonname
+/os/networkingsrv/networksecurity/tlsprovider/Test/data/ciphersuite03_SSL
+/os/networkingsrv/networksecurity/tlsprovider/Test/data/ciphersuite03_TLS
+/os/networkingsrv/networksecurity/tlsprovider/Test/data/ciphersuite05_TLS
+/os/networkingsrv/networksecurity/tlsprovider/Test/data/ciphersuite0x13_TLS
+/os/networkingsrv/networksecurity/tlsprovider/Test/data/ciphersuite0x16_TLS
+/os/networkingsrv/networksecurity/tlsprovider/Test/data/testtokens
+/os/networkingsrv/networksecurity/tlsprovider/Test/data/tsectlsdlg
+/os/networkingsrv/networksecurity/tlsprovider/Test/group
+/os/networkingsrv/networksecurity/tlsprovider/Test/hwtlstokentypeplugin
+/os/networkingsrv/networksecurity/tlsprovider/Test/scripts/batchfiles
+/os/networkingsrv/networksecurity/tlsprovider/Test/src
+/os/networkingsrv/networksecurity/tlsprovider/Test/tlstest2/data/altsubjectmanynames
+/os/networkingsrv/networksecurity/tlsprovider/Test/tlstest2/data/altsubjectonename
+/os/networkingsrv/networksecurity/tlsprovider/Test/tlstest2/data/altsubjectwildcard
+/os/networkingsrv/networksecurity/tlsprovider/Test/tlstest2/data/commonname
+/os/networkingsrv/networksecurity/tlsprovider/Test/tlstest2/data/commonnamedsa
+/os/networkingsrv/networksecurity/tlsprovider/Test/tlstest2/data/commonnamewildcard
+/os/networkingsrv/networksecurity/tlsprovider/Test/tlstest2/data/dhe-3des-sha-1
+/os/networkingsrv/networksecurity/tlsprovider/Test/tlstest2/data/dhe-des-sha-1
+/os/networkingsrv/networksecurity/tlsprovider/Test/tlstest2/data/rdhe-3des-sha-1
+/os/networkingsrv/networksecurity/tlsprovider/Test/tlstest2/data/rsa-3des-sha-1
+/os/networkingsrv/networksecurity/tlsprovider/Test/tlstest2/data/rsa-aes128-sha-1
+/os/networkingsrv/networksecurity/tlsprovider/Test/tlstest2/data/rsa-aes256-sha-1
+/os/networkingsrv/networksecurity/tlsprovider/Test/tlstest2/data/rsa-des-sha-1
+/os/networkingsrv/networksecurity/tlsprovider/Test/tlstest2/data/rsa-rc4-md5-1
+/os/networkingsrv/networksecurity/tlsprovider/Test/tlstest2/data/rsa-rc4-sha-1
+/os/networkingsrv/networksecurity/tlsprovider/Test/tlstest2/data/tlsclientauthrsachain/Import
+/os/networkingsrv/networksecurity/tlsprovider/Test/tlstest2/data/tlsextendedkeyusage
+/os/networkingsrv/networksecurity/tlsprovider/Test/tlstest2/data/tlssigningroot
+/os/networkingsrv/networksecurity/tlsprovider/Test/tlstest2/openssl_server_setting
+/os/networkingsrv/networksecurity/tlsprovider/Test/tlstest2/scripts
+/os/networkingsrv/networksecurity/tlsprovider/Test/ttlscertcache/scripts
+/os/networkingsrv/networksecurity/tlsprovider/Test/ttlsoom
+/os/networkingsrv/networksecurity/tlsprovider/bwins
+/os/networkingsrv/networksecurity/tlsprovider/eabi
+/os/networkingsrv/networksecurity/tlsprovider/group
+/os/networkingsrv/networksecurity/tlsprovider/inc
+/os/networkingsrv/networksecurity/tlsprovider/source/swtlstokentypeplugin
+/os/networkingsrv/networksecurity/tlsprovider/source/tlscertcache/client
+/os/networkingsrv/networksecurity/tlsprovider/source/tlscertcache/server
+/os/networkingsrv/networksecurity/tlsprovider/source/tlsprovider
+/os/security/authorisation/userpromptservice/bwins
+/os/security/authorisation/userpromptservice/database/group
+/os/security/authorisation/userpromptservice/database/inc
+/os/security/authorisation/userpromptservice/database/source
+/os/security/authorisation/userpromptservice/database/test/dumpupsdb/group
+/os/security/authorisation/userpromptservice/database/test/dumpupsdb/source
+/os/security/authorisation/userpromptservice/database/test/group
+/os/security/authorisation/userpromptservice/database/test/tupsdb/group
+/os/security/authorisation/userpromptservice/database/test/tupsdb/scripts
+/os/security/authorisation/userpromptservice/database/test/tupsdb/source
+/os/security/authorisation/userpromptservice/eabi
+/os/security/authorisation/userpromptservice/examples/integration/bwins
+/os/security/authorisation/userpromptservice/examples/integration/eabi
+/os/security/authorisation/userpromptservice/examples/integration/inc
+/os/security/authorisation/userpromptservice/examples/integration/tmsgapp
+/os/security/authorisation/userpromptservice/examples/integration/tmsgclient
+/os/security/authorisation/userpromptservice/examples/integration/tmsgserver
+/os/security/authorisation/userpromptservice/group
+/os/security/authorisation/userpromptservice/inc
+/os/security/authorisation/userpromptservice/inc_private
+/os/security/authorisation/userpromptservice/policies/group
+/os/security/authorisation/userpromptservice/policies/inc
+/os/security/authorisation/userpromptservice/policies/source
+/os/security/authorisation/userpromptservice/policies/test/bwins
+/os/security/authorisation/userpromptservice/policies/test/dumppolicy/group
+/os/security/authorisation/userpromptservice/policies/test/dumppolicy/resource
+/os/security/authorisation/userpromptservice/policies/test/dumppolicy/source
+/os/security/authorisation/userpromptservice/policies/test/group
+/os/security/authorisation/userpromptservice/policies/test/inc_private
+/os/security/authorisation/userpromptservice/policies/test/packages/data
+/os/security/authorisation/userpromptservice/policies/test/testpolicyevaluator/group
+/os/security/authorisation/userpromptservice/policies/test/testpolicyevaluator/source
+/os/security/authorisation/userpromptservice/policies/test/tupspolicies/data
+/os/security/authorisation/userpromptservice/policies/test/tupspolicies/group
+/os/security/authorisation/userpromptservice/policies/test/tupspolicies/resource/eclipse
+/os/security/authorisation/userpromptservice/policies/test/tupspolicies/scripts
+/os/security/authorisation/userpromptservice/policies/test/tupspolicies/source
+/os/security/authorisation/userpromptservice/server/group
+/os/security/authorisation/userpromptservice/server/inc
+/os/security/authorisation/userpromptservice/server/inc_private/product
+/os/security/authorisation/userpromptservice/server/source/upsclient
+/os/security/authorisation/userpromptservice/server/source/upsserver
+/os/security/authorisation/userpromptservice/server/test/upstest/resource
+/app/techview/securityapps/securityupstechview/group
+/app/techview/securityapps/securityupstechview/inc
+/app/techview/securityapps/securityupstechview/refdialogcreator/group
+/app/techview/securityapps/securityupstechview/refdialogcreator/source
+/app/techview/securityapps/securityupstechview/refpolicyevaluator/group
+/app/techview/securityapps/securityupstechview/refpolicyevaluator/source
+/app/techview/securityapps/securityupstechview/upsrefnotifier/group
+/app/techview/securityapps/securityupstechview/upsrefnotifier/source
+/os/security/authorisation/userpromptservice/test/bwins
+/os/security/authorisation/userpromptservice/test/eabi
+/os/security/authorisation/userpromptservice/test/group
+/os/security/authorisation/userpromptservice/test/inc_private
+/os/security/authorisation/userpromptservice/test/include
+/os/security/authorisation/userpromptservice/test/tups/corrupted_db_integ
+/os/security/authorisation/userpromptservice/test/tups/packages
+/os/security/authorisation/userpromptservice/test/tups/policy_files_integ
+/os/security/authorisation/userpromptservice/test/tups/scripts
+/os/security/authorisation/userpromptservice/test/tups/src
+/os/security/authorisation/userpromptservice/test/tups/tampered_backup
+/os/security/authorisation/userpromptservice/test/tups_clientapi_sysserver/source
+/os/security/authorisation/userpromptservice/test/tups_dialogcreator/include
+/os/security/authorisation/userpromptservice/test/tups_dialogcreator/source
+/os/security/authorisation/userpromptservice/test/tups_notifier/source
+/os/security/authorisation/userpromptservice/test/tups_policyevaluator/include
+/os/security/authorisation/userpromptservice/test/tups_policyevaluator/source
+/os/security/authorisation/userpromptservice/test/tups_system_server/source
+/os/security/authorisation/userpromptutils/bwins
+/os/security/authorisation/userpromptutils/eabi
+/os/security/authorisation/userpromptutils/group
+/os/security/authorisation/userpromptutils/inc
+/os/security/authorisation/userpromptutils/upsnotifierutil/source
+/os/unref/orphan/comgen/security/usif/common/inc
+/mw/appinstall/installationservices/refsoftwareappmgr/group
+/mw/appinstall/installationservices/refsoftwareappmgr/source
+/mw/appinstall/installationservices/refswiplugin/group
+/mw/appinstall/installationservices/refswiplugin/inc
+/mw/appinstall/installationservices/refswiplugin/sample
+/mw/appinstall/installationservices/refswiplugin/source
+/mw/appinstall/installationservices/refswiplugin/test/scripts
+/mw/appinstall/installationservices/swcomponentregistry/bwins
+/mw/appinstall/installationservices/swcomponentregistry/eabi
+/mw/appinstall/installationservices/swcomponentregistry/group
+/mw/appinstall/installationservices/swcomponentregistry/inc
+/mw/appinstall/installationservices/swcomponentregistry/inc_private
+/mw/appinstall/installationservices/swcomponentregistry/source/client
+/mw/appinstall/installationservices/swcomponentregistry/source/database
+/mw/appinstall/installationservices/swcomponentregistry/source/server
+/mw/appinstall/installationservices/swcomponentregistry/test/group
+/mw/appinstall/installationservices/swcomponentregistry/test/testdb
+/mw/appinstall/installationservices/swcomponentregistry/test/tscr/inc
+/mw/appinstall/installationservices/swcomponentregistry/test/tscr/scripts/data
+/mw/appinstall/installationservices/swcomponentregistry/test/tscr/source
+/mw/appinstall/installationservices/swcomponentregistry/test/tscrdatalayer/inc
+/mw/appinstall/installationservices/swcomponentregistry/test/tscrdatalayer/scripts/data
+/mw/appinstall/installationservices/swcomponentregistry/test/tscrdatalayer/source
+/mw/appinstall/installationservices/swifw/bwins
+/mw/appinstall/installationservices/swifw/eabi
+/mw/appinstall/installationservices/swifw/group
+/mw/appinstall/installationservices/swifw/inc
+/mw/appinstall/installationservices/swifw/source
+/mw/appinstall/installationservices/swifw/test/scripts/data
+/mw/appinstall/installationservices/swtransactionservices/bwins
+/mw/appinstall/installationservices/swtransactionservices/eabi
+/mw/appinstall/installationservices/swtransactionservices/group
+/mw/appinstall/installationservices/swtransactionservices/inc
+/mw/appinstall/installationservices/swtransactionservices/inc_private
+/mw/appinstall/installationservices/swtransactionservices/source/client
+/mw/appinstall/installationservices/swtransactionservices/source/server
+/mw/appinstall/installationservices/swtransactionservices/test/group
+/mw/appinstall/installationservices/swtransactionservices/test/inc
+/mw/appinstall/installationservices/swtransactionservices/test/scripts/batchfiles
+/mw/appinstall/installationservices/swtransactionservices/test/scripts/data/rollbackall/testcase1/c_drive/61f7bbf8
+/mw/appinstall/installationservices/swtransactionservices/test/scripts/data/rollbackall/testcase1/e_drive/61f7bbf8
+/mw/appinstall/installationservices/swtransactionservices/test/scripts/data/rollbackall/testcase2/c_drive/b06c42f3
+/mw/appinstall/installationservices/swtransactionservices/test/scripts/data/rollbackall/testcase2/e_drive/b06c42f3
+/mw/appinstall/installationservices/swtransactionservices/test/scripts/data/rollbackall/testcase3/c_drive
+/mw/appinstall/installationservices/swtransactionservices/test/scripts/data/rollbackall/testcase3/e_drive
+/mw/appinstall/installationservices/swtransactionservices/test/scripts/data/rollbackall/testcase4/c_drive
+/mw/appinstall/installationservices/swtransactionservices/test/scripts/data/rollbackall/testcase4/e_drive
+/mw/appinstall/installationservices/swtransactionservices/test/scripts/data/rollbackall/testcase5/c_drive
+/mw/appinstall/installationservices/swtransactionservices/test/scripts/data/rollbackall/testcase5/e_drive
+/mw/appinstall/installationservices/swtransactionservices/test/scripts/data/rollbackall/testcase6/c_drive
+/mw/appinstall/installationservices/swtransactionservices/test/scripts/data/rollbackall/testcase6/e_drive
+/mw/appinstall/installationservices/swtransactionservices/test/source
+/mw/appinstall/installationservices/swtransactionservices/test/tintegrityservices/bwins
+/mw/appinstall/installationservices/swtransactionservices/test/tintegrityservices/eabi
+/mw/appinstall/installationservices/swtransactionservices/test/tintegrityservices/group
+/mw/appinstall/installationservices/swtransactionservices/test/tintegrityservices/inc
+/mw/appinstall/installationservices/swtransactionservices/test/tintegrityservices/scripts/data/unittests
+/mw/appinstall/installationservices/swtransactionservices/test/tintegrityservices/scripts/install_v1
+/mw/appinstall/installationservices/swtransactionservices/test/tintegrityservices/scripts/install_v2
+/mw/appinstall/installationservices/swtransactionservices/test/tintegrityservices/scripts/rollback_install_v1
+/mw/appinstall/installationservices/swtransactionservices/test/tintegrityservices/scripts/rollback_install_v2
+/mw/appinstall/installationservices/swtransactionservices/test/tintegrityservices/scripts/rollback_uninstall_v1
+/mw/appinstall/installationservices/swtransactionservices/test/tintegrityservices/scripts/rollback_uninstall_v2
+/mw/appinstall/installationservices/swtransactionservices/test/tintegrityservices/scripts/rollback_upgrade_v1-v2
+/mw/appinstall/installationservices/swtransactionservices/test/tintegrityservices/scripts/uninstall_v1
+/mw/appinstall/installationservices/swtransactionservices/test/tintegrityservices/scripts/uninstall_v2
+/mw/appinstall/installationservices/swtransactionservices/test/tintegrityservices/scripts/upgrade_v1-v2
+/mw/appinstall/installationservices/swtransactionservices/test/tintegrityservices/source
+/os/unref/orphan/comgen/security/usif/test/plugins/nonnativeplugin/group
+/os/unref/orphan/comgen/security/usif/test/plugins/nonnativeplugin/source
+/os/unref/orphan/comgen/security/usif/test/plugins/swiplugin/group
+/os/unref/orphan/comgen/security/usif/test/plugins/swiplugin/source
+/os/unref/orphan/comgen/security/usif/test/securitytests/bwins
+/os/unref/orphan/comgen/security/usif/test/securitytests/eabi
+/os/unref/orphan/comgen/security/usif/test/securitytests/group
+/os/unref/orphan/comgen/security/usif/test/securitytests/inc
+/os/unref/orphan/comgen/security/usif/test/securitytests/scripts
+/os/unref/orphan/comgen/security/usif/test/securitytests/source
+/os/unref/orphan/comgen/security/usif/test/tusif/group
+/os/unref/orphan/comgen/security/usif/test/tusif/scripts
+/os/unref/orphan/comgen/security/usif/test/tusif/source
+/os/unref/orphan/comgen/security/wincrypto/import/bin/deb
+/os/unref/orphan/comgen/security/wincrypto/import/bin/rel
+/os/unref/orphan/comgen/security/wincrypto/import/inc
+/os/commsfw/serialserver/c32serialserver/CCOMM
+/os/commsfw/serialserver/c32serialserver/INC
+/os/commsfw/serialserver/c32serialserver/LOOPBACK/te_loopback/Documentation
+/os/commsfw/serialserver/c32serialserver/LOOPBACK/te_loopback/group
+/os/commsfw/serialserver/c32serialserver/LOOPBACK/te_loopback/scripts
+/os/commsfw/serialserver/c32serialserver/LOOPBACK/te_loopback/src
+/os/commsfw/serialserver/c32serialserver/LOOPBACK/te_loopback/testdata
+/os/commsfw/serialserver/c32serialserver/LOOPBACK/te_loopback/xml/te_loopbackSuite/testexecuteservers
+/os/commsfw/serialserver/serialportcsy
+/os/commsfw/serialserver/c32serialserver/SCOMM
+/os/commsfw/serialserver/c32serialserver/Test/BWINS
+/os/commsfw/serialserver/c32serialserver/Test/CapTestFramework
+/os/commsfw/serialserver/c32serialserver/Test/EABI
+/os/commsfw/serialserver/c32serialserver/Test/TE_C32/TE_C32_Configs/group
+/os/commsfw/serialserver/c32serialserver/Test/TE_C32/TE_C32_Configs/scripts
+/os/commsfw/serialserver/c32serialserver/Test/TE_C32/TestConfig/TestC32MTConfig1
+/os/commsfw/serialserver/c32serialserver/Test/TE_C32/TestConfig/TestC32MTConfig10
+/os/commsfw/serialserver/c32serialserver/Test/TE_C32/TestConfig/TestC32MTConfig11
+/os/commsfw/serialserver/c32serialserver/Test/TE_C32/TestConfig/TestC32MTConfig12
+/os/commsfw/serialserver/c32serialserver/Test/TE_C32/TestConfig/TestC32MTConfig13
+/os/commsfw/serialserver/c32serialserver/Test/TE_C32/TestConfig/TestC32MTConfig14
+/os/commsfw/serialserver/c32serialserver/Test/TE_C32/TestConfig/TestC32MTConfig15
+/os/commsfw/serialserver/c32serialserver/Test/TE_C32/TestConfig/TestC32MTConfig16
+/os/commsfw/serialserver/c32serialserver/Test/TE_C32/TestConfig/TestC32MTConfig17
+/os/commsfw/serialserver/c32serialserver/Test/TE_C32/TestConfig/TestC32MTConfig18
+/os/commsfw/serialserver/c32serialserver/Test/TE_C32/TestConfig/TestC32MTConfig19
+/os/commsfw/serialserver/c32serialserver/Test/TE_C32/TestConfig/TestC32MTConfig2
+/os/commsfw/serialserver/c32serialserver/Test/TE_C32/TestConfig/TestC32MTConfig20
+/os/commsfw/serialserver/c32serialserver/Test/TE_C32/TestConfig/TestC32MTConfig3
+/os/commsfw/serialserver/c32serialserver/Test/TE_C32/TestConfig/TestC32MTConfig4
+/os/commsfw/serialserver/c32serialserver/Test/TE_C32/TestConfig/TestC32MTConfig5
+/os/commsfw/serialserver/c32serialserver/Test/TE_C32/TestConfig/TestC32MTConfig6
+/os/commsfw/serialserver/c32serialserver/Test/TE_C32/TestConfig/TestC32MTConfig7
+/os/commsfw/serialserver/c32serialserver/Test/TE_C32/TestConfig/TestC32MTConfig8
+/os/commsfw/serialserver/c32serialserver/Test/TE_C32/TestConfig/TestC32MTConfig9
+/os/commsfw/serialserver/c32serialserver/Test/TE_C32/TestConfig/group
+/os/commsfw/serialserver/c32serialserver/Test/TE_C32/TestScripts
+/os/commsfw/serialserver/c32serialserver/Test/TE_C32/documentation
+/os/commsfw/serialserver/c32serialserver/Test/TE_C32/inc
+/os/commsfw/serialserver/c32serialserver/Test/TE_C32/src
+/os/commsfw/serialserver/c32serialserver/Test/TE_C32/util/group
+/os/commsfw/serialserver/c32serialserver/Test/TE_C32/util/inc
+/os/commsfw/serialserver/c32serialserver/Test/TE_C32/util/scriptfiles
+/os/commsfw/serialserver/c32serialserver/Test/TE_C32/util/src
+/os/commsfw/serialserver/c32serialserver/Test/te_C32Performance/Documentation
+/os/commsfw/serialserver/c32serialserver/Test/te_C32Performance/TestConfig/TestC32PerformanceConfig1
+/os/commsfw/serialserver/c32serialserver/Test/te_C32Performance/TestConfig/TestC32PerformanceConfig10
+/os/commsfw/serialserver/c32serialserver/Test/te_C32Performance/TestConfig/TestC32PerformanceConfig11
+/os/commsfw/serialserver/c32serialserver/Test/te_C32Performance/TestConfig/TestC32PerformanceConfig12
+/os/commsfw/serialserver/c32serialserver/Test/te_C32Performance/TestConfig/TestC32PerformanceConfig13
+/os/commsfw/serialserver/c32serialserver/Test/te_C32Performance/TestConfig/TestC32PerformanceConfig14
+/os/commsfw/serialserver/c32serialserver/Test/te_C32Performance/TestConfig/TestC32PerformanceConfig15
+/os/commsfw/serialserver/c32serialserver/Test/te_C32Performance/TestConfig/TestC32PerformanceConfig16
+/os/commsfw/serialserver/c32serialserver/Test/te_C32Performance/TestConfig/TestC32PerformanceConfig17
+/os/commsfw/serialserver/c32serialserver/Test/te_C32Performance/TestConfig/TestC32PerformanceConfig18
+/os/commsfw/serialserver/c32serialserver/Test/te_C32Performance/TestConfig/TestC32PerformanceConfig19
+/os/commsfw/serialserver/c32serialserver/Test/te_C32Performance/TestConfig/TestC32PerformanceConfig2
+/os/commsfw/serialserver/c32serialserver/Test/te_C32Performance/TestConfig/TestC32PerformanceConfig20
+/os/commsfw/serialserver/c32serialserver/Test/te_C32Performance/TestConfig/TestC32PerformanceConfig21
+/os/commsfw/serialserver/c32serialserver/Test/te_C32Performance/TestConfig/TestC32PerformanceConfig22
+/os/commsfw/serialserver/c32serialserver/Test/te_C32Performance/TestConfig/TestC32PerformanceConfig23
+/os/commsfw/serialserver/c32serialserver/Test/te_C32Performance/TestConfig/TestC32PerformanceConfig24
+/os/commsfw/serialserver/c32serialserver/Test/te_C32Performance/TestConfig/TestC32PerformanceConfig3
+/os/commsfw/serialserver/c32serialserver/Test/te_C32Performance/TestConfig/TestC32PerformanceConfig4
+/os/commsfw/serialserver/c32serialserver/Test/te_C32Performance/TestConfig/TestC32PerformanceConfig5
+/os/commsfw/serialserver/c32serialserver/Test/te_C32Performance/TestConfig/TestC32PerformanceConfig6
+/os/commsfw/serialserver/c32serialserver/Test/te_C32Performance/TestConfig/TestC32PerformanceConfig7
+/os/commsfw/serialserver/c32serialserver/Test/te_C32Performance/TestConfig/TestC32PerformanceConfig8
+/os/commsfw/serialserver/c32serialserver/Test/te_C32Performance/TestConfig/TestC32PerformanceConfig9
+/os/commsfw/serialserver/c32serialserver/Test/te_C32Performance/USB PC Side Code/res
+/os/commsfw/serialserver/c32serialserver/Test/te_C32Performance/group
+/os/commsfw/serialserver/c32serialserver/Test/te_C32Performance/scripts
+/os/commsfw/serialserver/c32serialserver/Test/te_C32Performance/src
+/os/commsfw/serialserver/c32serialserver/Test/te_C32Performance/testdata
+/os/commsfw/serialserver/c32serialserver/bwins
+/os/commsfw/serialserver/c32serialserverconfig
+/os/commsfw/serialserver/c32serialserver/documentation
+/os/commsfw/serialserver/c32serialserver/eabi
+/os/commsfw/serialserver/c32serialserver/group
+/os/commsfw/serialserver/c32serialserver/version1/INC
+/os/commsfw/serialserver/c32serialserver/version1/SCOMM
+/os/unref/orphan/comgen/ser-comms/confidential
+/os/commsfw/serialserver/c32serialserverdocs
+/mw/remotemgmt/syncandremotemgmtservices/datasyncadaptors/Agenda
+/mw/remotemgmt/syncandremotemgmtservices/datasyncadaptors/Contacts
+/mw/remotemgmt/syncandremotemgmtservices/datasyncadaptors/Test/T_DBA/T_Agenda/group
+/mw/remotemgmt/syncandremotemgmtservices/datasyncadaptors/Test/T_DBA/T_Agenda/inc
+/mw/remotemgmt/syncandremotemgmtservices/datasyncadaptors/Test/T_DBA/T_Agenda/scripts
+/mw/remotemgmt/syncandremotemgmtservices/datasyncadaptors/Test/T_DBA/T_Agenda/src
+/mw/remotemgmt/syncandremotemgmtservices/datasyncadaptors/Test/T_DBA/T_Agenda/testdata
+/mw/remotemgmt/syncandremotemgmtservices/datasyncadaptors/Test/T_DBA/T_Contacts/group
+/mw/remotemgmt/syncandremotemgmtservices/datasyncadaptors/Test/T_DBA/T_Contacts/inc
+/mw/remotemgmt/syncandremotemgmtservices/datasyncadaptors/Test/T_DBA/T_Contacts/scripts
+/mw/remotemgmt/syncandremotemgmtservices/datasyncadaptors/Test/T_DBA/T_Contacts/src
+/mw/remotemgmt/syncandremotemgmtservices/datasyncadaptors/Test/T_DBA/T_Contacts/testdata
+/mw/remotemgmt/syncandremotemgmtservices/datasyncadaptors/group
+/os/unref/orphan/comgen/syncml/Test/Data/Atomic
+/os/unref/orphan/comgen/syncml/Test/Data/AuthBasicFail
+/os/unref/orphan/comgen/syncml/Test/Data/AuthBasicFailFirst
+/os/unref/orphan/comgen/syncml/Test/Data/AuthMD5Fail
+/os/unref/orphan/comgen/syncml/Test/Data/AuthMD5FailFirst
+/os/unref/orphan/comgen/syncml/Test/Data/AuthNone
+/os/unref/orphan/comgen/syncml/Test/Data/HierarchicalAddSourceAndTargetParent
+/os/unref/orphan/comgen/syncml/Test/Data/HierarchicalAddSourceParent
+/os/unref/orphan/comgen/syncml/Test/Data/HierarchicalAddSourceParentNotExist
+/os/unref/orphan/comgen/syncml/Test/Data/HierarchicalAddTargetParent
+/os/unref/orphan/comgen/syncml/Test/Data/HierarchicalMoveSourceParent
+/os/unref/orphan/comgen/syncml/Test/Data/HierarchicalMoveSourceParentNotExist
+/os/unref/orphan/comgen/syncml/Test/Data/HierarchicalMoveSourceParentPart1
+/os/unref/orphan/comgen/syncml/Test/Data/HierarchicalMoveSourceParentPart2
+/os/unref/orphan/comgen/syncml/Test/Data/HierarchicalMoveSourceParentnotExistPart1
+/os/unref/orphan/comgen/syncml/Test/Data/HierarchicalMoveSourceParentnotExistPart2
+/os/unref/orphan/comgen/syncml/Test/Data/HierarchicalMoveTargetParent
+/os/unref/orphan/comgen/syncml/Test/Data/HierarchicalReplaceSourceParent
+/os/unref/orphan/comgen/syncml/Test/Data/HierarchicalReplaceSourceParentNotExist
+/os/unref/orphan/comgen/syncml/Test/Data/HierarchicalReplaceSourceParentPart1
+/os/unref/orphan/comgen/syncml/Test/Data/HierarchicalReplaceSourceParentPart2
+/os/unref/orphan/comgen/syncml/Test/Data/HierarchicalReplaceSourceParentnotExistPart1
+/os/unref/orphan/comgen/syncml/Test/Data/HierarchicalReplaceSourceParentnotExistPart2
+/os/unref/orphan/comgen/syncml/Test/Data/HierarchicalReplaceTargetParent
+/os/unref/orphan/comgen/syncml/Test/Data/Large-object-Larger-size
+/os/unref/orphan/comgen/syncml/Test/Data/Large-object-interrupted
+/os/unref/orphan/comgen/syncml/Test/Data/Multiple-Db-Sync
+/os/unref/orphan/comgen/syncml/Test/Data/One-way-client-refresh-sync
+/os/unref/orphan/comgen/syncml/Test/Data/One-way-client-sync
+/os/unref/orphan/comgen/syncml/Test/Data/One-way-server-refresh-sync
+/os/unref/orphan/comgen/syncml/Test/Data/One-way-server-sync
+/os/unref/orphan/comgen/syncml/Test/Data/Pref-Tx-Rx
+/os/unref/orphan/comgen/syncml/Test/Data/ServerChallengeMD5
+/os/unref/orphan/comgen/syncml/Test/Data/ServerChallengeNextNonce
+/os/unref/orphan/comgen/syncml/Test/Data/SimpleHierarchyAdd
+/os/unref/orphan/comgen/syncml/Test/Data/SimpleHierarchyAddNoParent
+/os/unref/orphan/comgen/syncml/Test/Data/SimpleHierarchyMove
+/os/unref/orphan/comgen/syncml/Test/Data/add-to-client
+/os/unref/orphan/comgen/syncml/Test/Data/add-to-server
+/os/unref/orphan/comgen/syncml/Test/Data/datasync-multitask/one-way-contacts-20-items
+/os/unref/orphan/comgen/syncml/Test/Data/datasync-multitask/refresh-multiple-dbs
+/os/unref/orphan/comgen/syncml/Test/Data/datasync-multitask/two-way-contacts
+/os/unref/orphan/comgen/syncml/Test/Data/datasync-multitask/two-way-contacts-robustness
+/os/unref/orphan/comgen/syncml/Test/Data/pandscerts
+/os/unref/orphan/comgen/syncml/Test/Data/performance/agenda-one-way-initial-sync-from-server
+/os/unref/orphan/comgen/syncml/Test/Data/performance/contacts-one-way-initial-sync-from-server
+/os/unref/orphan/comgen/syncml/Test/Data/server-bad
+/os/unref/orphan/comgen/syncml/Test/Data/slow-sync
+/os/unref/orphan/comgen/syncml/Test/Data/targetparenthierarchycaladd
+/os/unref/orphan/comgen/syncml/Test/Data/two-way-add-get
+/os/unref/orphan/comgen/syncml/Test/Data/two-way-add-slow-sync-DEF076368
+/os/unref/orphan/comgen/syncml/Test/DataProviderExamples/Bookmarks/DBA
+/os/unref/orphan/comgen/syncml/Test/DataProviderExamples/Bookmarks/Engine
+/os/unref/orphan/comgen/syncml/Test/DataProviderExamples/Bookmarks/bwins
+/os/unref/orphan/comgen/syncml/Test/DataProviderExamples/Bookmarks/eabi
+/os/unref/orphan/comgen/syncml/Test/DataProviderExamples/Bookmarks/shared
+/os/unref/orphan/comgen/syncml/Test/Data_v1.1/Atomic
+/os/unref/orphan/comgen/syncml/Test/Data_v1.1/AuthBasicFail
+/os/unref/orphan/comgen/syncml/Test/Data_v1.1/AuthBasicFailFirst
+/os/unref/orphan/comgen/syncml/Test/Data_v1.1/AuthMD5Fail
+/os/unref/orphan/comgen/syncml/Test/Data_v1.1/AuthMD5FailFirst
+/os/unref/orphan/comgen/syncml/Test/Data_v1.1/AuthNone
+/os/unref/orphan/comgen/syncml/Test/Data_v1.1/Large-object-from-client
+/os/unref/orphan/comgen/syncml/Test/Data_v1.1/Large-object-from-server
+/os/unref/orphan/comgen/syncml/Test/Data_v1.1/Large-object-from-server2
+/os/unref/orphan/comgen/syncml/Test/Data_v1.1/Large-object-incorrect-size
+/os/unref/orphan/comgen/syncml/Test/Data_v1.1/Large-object-interrupted
+/os/unref/orphan/comgen/syncml/Test/Data_v1.1/Multiple-Db-Sync
+/os/unref/orphan/comgen/syncml/Test/Data_v1.1/One-way-client-refresh-sync
+/os/unref/orphan/comgen/syncml/Test/Data_v1.1/One-way-client-sync
+/os/unref/orphan/comgen/syncml/Test/Data_v1.1/One-way-server-refresh-sync
+/os/unref/orphan/comgen/syncml/Test/Data_v1.1/One-way-server-sync
+/os/unref/orphan/comgen/syncml/Test/Data_v1.1/Pref-Tx-Rx
+/os/unref/orphan/comgen/syncml/Test/Data_v1.1/ServerChallengeMD5
+/os/unref/orphan/comgen/syncml/Test/Data_v1.1/ServerChallengeNextNonce
+/os/unref/orphan/comgen/syncml/Test/Data_v1.1/add-to-client
+/os/unref/orphan/comgen/syncml/Test/Data_v1.1/add-to-server
+/os/unref/orphan/comgen/syncml/Test/Data_v1.1/client-large
+/os/unref/orphan/comgen/syncml/Test/Data_v1.1/client-large-multiple
+/os/unref/orphan/comgen/syncml/Test/Data_v1.1/incomplete/add
+/os/unref/orphan/comgen/syncml/Test/Data_v1.1/incomplete/fail
+/os/unref/orphan/comgen/syncml/Test/Data_v1.1/incomplete/sync
+/os/unref/orphan/comgen/syncml/Test/Data_v1.1/server-bad
+/os/unref/orphan/comgen/syncml/Test/Data_v1.1/server-busy
+/os/unref/orphan/comgen/syncml/Test/Data_v1.1/server-large
+/os/unref/orphan/comgen/syncml/Test/Data_v1.1/server-large-multiple
+/os/unref/orphan/comgen/syncml/Test/Data_v1.1/slow-sync
+/os/unref/orphan/comgen/syncml/Test/Data_v1.1/two-way-add
+/os/unref/orphan/comgen/syncml/Test/Data_v1.1/two-way-delete
+/os/unref/orphan/comgen/syncml/Test/Data_v1.1/two-way-replace
+/os/unref/orphan/comgen/syncml/Test/Data_v1.1/two-way-sync
+/os/unref/orphan/comgen/syncml/Test/Documentation
+/os/unref/orphan/comgen/syncml/Test/ToolkitInterface
+/os/unref/orphan/comgen/syncml/Test/XMLToolkit/ReferenceToolkit/doc
+/os/unref/orphan/comgen/syncml/Test/XMLToolkit/ReferenceToolkit/src/sml/inc/epoc_r6
+/os/unref/orphan/comgen/syncml/Test/XMLToolkit/ReferenceToolkit/src/sml/lib/all
+/os/unref/orphan/comgen/syncml/Test/XMLToolkit/ReferenceToolkit/src/sml/lib/inc
+/os/unref/orphan/comgen/syncml/Test/XMLToolkit/ReferenceToolkit/src/sml/mgr/all
+/os/unref/orphan/comgen/syncml/Test/XMLToolkit/ReferenceToolkit/src/sml/mgr/epoc_r6
+/os/unref/orphan/comgen/syncml/Test/XMLToolkit/ReferenceToolkit/src/sml/mgr/inc
+/os/unref/orphan/comgen/syncml/Test/XMLToolkit/ReferenceToolkit/src/sml/wsm/all
+/os/unref/orphan/comgen/syncml/Test/XMLToolkit/ReferenceToolkit/src/sml/wsm/epoc_r6
+/os/unref/orphan/comgen/syncml/Test/XMLToolkit/ReferenceToolkit/src/sml/wsm/inc
+/os/unref/orphan/comgen/syncml/Test/XMLToolkit/ReferenceToolkit/src/sml/xlt/all
+/os/unref/orphan/comgen/syncml/Test/XMLToolkit/ReferenceToolkit/src/sml/xlt/inc
+/os/unref/orphan/comgen/syncml/Test/XMLToolkit/ToolkitInterface
+/os/unref/orphan/comgen/syncml/Test/XMLToolkit/XmlUtil
+/os/unref/orphan/comgen/syncml/Test/XmlUtil
+/os/unref/orphan/comgen/syncml/Test/bwins
+/os/unref/orphan/comgen/syncml/Test/eabi
+/os/unref/orphan/comgen/syncml/Test/group
+/os/unref/orphan/comgen/syncml/Test/integration/DSCommonSync/group
+/os/unref/orphan/comgen/syncml/Test/integration/DSCommonSync/inc
+/os/unref/orphan/comgen/syncml/Test/integration/DSCommonSync/scripts
+/os/unref/orphan/comgen/syncml/Test/integration/DSCommonSync/src
+/os/unref/orphan/comgen/syncml/Test/integration/DSCommonSync/testdata
+/os/unref/orphan/comgen/syncml/Test/integration/DSCommonSync/testsetup
+/os/unref/orphan/comgen/syncml/Test/integration/DSCommonSync/xml/DSCommonSyncSuite/TestExecuteServers
+/os/unref/orphan/comgen/syncml/Test/integration/DSHTTPSnap/group
+/os/unref/orphan/comgen/syncml/Test/integration/DSHTTPSnap/inc
+/os/unref/orphan/comgen/syncml/Test/integration/DSHTTPSnap/scripts
+/os/unref/orphan/comgen/syncml/Test/integration/DSHTTPSnap/src
+/os/unref/orphan/comgen/syncml/Test/integration/DSHTTPSnap/testdata
+/os/unref/orphan/comgen/syncml/Test/integration/DSHostServers/HostServerPlatSec/group
+/os/unref/orphan/comgen/syncml/Test/integration/DSHostServers/HostServerPlatSec/inc
+/os/unref/orphan/comgen/syncml/Test/integration/DSHostServers/HostServerPlatSec/scripts
+/os/unref/orphan/comgen/syncml/Test/integration/DSHostServers/HostServerPlatSec/src
+/os/unref/orphan/comgen/syncml/Test/integration/DSMultiTaskSync/group
+/os/unref/orphan/comgen/syncml/Test/integration/DSMultiTaskSync/inc
+/os/unref/orphan/comgen/syncml/Test/integration/DSMultiTaskSync/scripts
+/os/unref/orphan/comgen/syncml/Test/integration/DSMultiTaskSync/src
+/os/unref/orphan/comgen/syncml/Test/integration/DSMultiTaskSync/xml/DSMultiTaskSyncSuite/TestExecuteServers
+/os/unref/orphan/comgen/syncml/Test/integration/WbxmlComparator/bwins
+/os/unref/orphan/comgen/syncml/Test/integration/WbxmlComparator/eabi
+/os/unref/orphan/comgen/syncml/Test/integration/WbxmlComparator/group
+/os/unref/orphan/comgen/syncml/Test/integration/WbxmlComparator/inc
+/os/unref/orphan/comgen/syncml/Test/integration/WbxmlComparator/src
+/os/unref/orphan/comgen/syncml/Test/integration/loopbacksync/datasync
+/os/unref/orphan/comgen/syncml/Test/integration/loopbacksync/framework
+/os/unref/orphan/comgen/syncml/Test/integration/t_commsdat/group
+/os/unref/orphan/comgen/syncml/Test/integration/t_commsdat/src
+/os/unref/orphan/comgen/syncml/Test/loopbacktca
+/os/unref/orphan/comgen/syncml/Test/performance/loopbacksync/T_Datasync/group
+/os/unref/orphan/comgen/syncml/Test/performance/loopbacksync/T_Datasync/inc
+/os/unref/orphan/comgen/syncml/Test/performance/loopbacksync/T_Datasync/scripts
+/os/unref/orphan/comgen/syncml/Test/performance/loopbacksync/T_Datasync/src
+/os/unref/orphan/comgen/syncml/Test/performance/loopbacksync/T_Datasync/testdata
+/os/unref/orphan/comgen/syncml/Test/te_clean/group
+/os/unref/orphan/comgen/syncml/Test/te_clean/scripts
+/os/unref/orphan/comgen/syncml/Test/te_clean/src
+/os/unref/orphan/comgen/syncml/Test/te_clean/testdata
+/os/unref/orphan/comgen/syncml/Test/te_clean/xml/te_cleanSuite/testexecuteservers
+/os/unref/orphan/comgen/syncml/Test/testdriver_xml/dsSuite/ds_httpstestsuite/testexecuteservers
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldatasync/DataProvider
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldatasync/DataSession
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldatasync/Documentation/Test
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldatasync/Documentation/UML
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldatasync/Group
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldatasync/HostServers/group
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldatasync/HostServers/inc
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldatasync/HostServers/src
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldatasync/Include/protected
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldatasync/PushMsgParsing/Notification
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldatasync/ServerDataProvider/bwins
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldatasync/ServerDataProvider/eabi
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldatasync/ServerDataProvider/group
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldatasync/ServerDataProvider/inc
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldatasync/ServerDataProvider/src
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldatasync/SyncAgent/ProtocolAdaptor
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldatasync/SyncEngine/ProtocolAdaptor
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldatasync/Test/PushMsgParsing/T_Notification/group
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldatasync/Test/PushMsgParsing/T_Notification/inc
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldatasync/Test/PushMsgParsing/T_Notification/scripts
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldatasync/Test/PushMsgParsing/T_Notification/src
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldatasync/Test/PushMsgParsing/T_Notification/testdata
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldatasync/Test/T_SmlDataStoreCaps/data
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldatasync/Test/T_SmlDataStoreCaps/group
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldatasync/Test/T_SmlDataStoreCaps/inc
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldatasync/Test/T_SmlDataStoreCaps/scripts
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldatasync/Test/T_SmlDataStoreCaps/src
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldatasync/Test/T_SyncEngine/group
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldatasync/Test/T_SyncEngine/inc
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldatasync/Test/T_SyncEngine/scripts
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldatasync/Test/T_SyncEngine/src
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldatasync/Test/group
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldatasync/Test/t_dataproviderdiscovery/group
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldatasync/Test/t_dataproviderdiscovery/inc
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldatasync/Test/t_dataproviderdiscovery/scripts
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldatasync/Test/t_dataproviderdiscovery/src
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldatasync/Test/t_dataproviderdiscovery/testdata
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldatasync/bwins
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldatasync/eabi
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/PushMsgParsing/Notification
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/PushMsgParsing/PushMsgProxy
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/SyncAgent/ProtocolAdaptor
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/SyncEngine/ProtocolAdaptor
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/bwins
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/design/documents
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/dmerr
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/dmprovider
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/eabi
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/group
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/include
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/PushMsgParsing/Notification
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/PushMsgParsing/PushMsgProxy
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/PushMsgParsing/T_Notification/group
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/PushMsgParsing/T_Notification/inc
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/PushMsgParsing/T_Notification/scripts
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/PushMsgParsing/T_Notification/src
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/PushMsgParsing/T_Notification/testdata
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/SyncAgent/ProtocolAdapter
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/SyncEngine
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/group
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/data/Add
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/data/AlertDisplay
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/data/AlertMultiChoice
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/data/AlertOptions
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/data/AlertSingleChoice
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/data/AlertTextInput
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/data/AlertUserAccept
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/data/AlertUserReject
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/data/Atomic
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/data/AtomicAlertUserAccept
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/data/AtomicAlertUserReject
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/data/AtomicFail
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/data/Copy
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/data/Delete
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/data/Exec
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/data/GenericAlertLargePayload
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/data/GenericAlertMultiple01
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/data/GenericAlertMultiple02
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/data/GenericAlertOptional
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/data/GenericAlertServer
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/data/GenericAlertSimple
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/data/Get
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/data/LargeObjectAdd
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/data/LargeObjectAddInterrupted
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/data/LargeObjectGet
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/data/Replace
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/data/Sequence
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/data/SequenceAlertUserAccept
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/data/SequenceAlertUserReject
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/data/SequenceFail
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/data/ServerChallenge
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/data/Simple
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/group
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/inc
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/scripts
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/src
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/testdata/Add
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/testdata/AlertDisplay
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/testdata/AlertMultiChoice
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/testdata/AlertOptions
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/testdata/AlertSingleChoice
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/testdata/AlertTextInput
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/testdata/AlertUserAccept
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/testdata/AlertUserReject
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/testdata/Atomic
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/testdata/AtomicAlertUserAccept
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/testdata/AtomicAlertUserReject
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/testdata/AtomicFail
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/testdata/Copy
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/testdata/Delete
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/testdata/Exec
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/testdata/GenericAlertLargePayload
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/testdata/GenericAlertMultiple01
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/testdata/GenericAlertMultiple02
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/testdata/GenericAlertOptional
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/testdata/GenericAlertServer
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/testdata/GenericAlertSimple
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/testdata/Get
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/testdata/LargeObjectAdd
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/testdata/LargeObjectAddInterrupted
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/testdata/LargeObjectGet
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/testdata/Replace
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/testdata/Sequence
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/testdata/SequenceAlertUserAccept
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/testdata/SequenceAlertUserReject
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/testdata/SequenceFail
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/testdata/ServerChallenge
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmldminterface/test/t_enginedevman/testdata/Simple
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/ClientAPI
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Documentation/UML
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Group
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Include/protected
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Include/public
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Logger
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Shared
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/SyncAgent/SharedInc
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/SyncDataStore
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/SyncEngine
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/Capabilities/Documentation
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/Capabilities/inc
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/Capabilities/scripts
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/Capabilities/src
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/SANInjector/group
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/SANInjector/inc
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/SANInjector/src
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/SyncAgent/DigestDisablingSIS
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/SyncAgent/TAgentSyncTest
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/SyncAgent/T_AgentClient/group
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/SyncAgent/T_AgentClient/inc
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/SyncAgent/T_AgentClient/scripts
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/SyncAgent/T_AgentClient/src
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/SyncAgent/T_AgentClient/testdata
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/SyncAgent/T_AgentHistory/group
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/SyncAgent/T_AgentHistory/inc
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/SyncAgent/T_AgentHistory/scripts
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/SyncAgent/T_AgentHistory/src
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/SyncAgent/T_AgentHistory/testdata
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/SyncAgent/T_AgentPushMsg/group
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/SyncAgent/T_AgentPushMsg/inc
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/SyncAgent/T_AgentPushMsg/scripts
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/SyncAgent/T_AgentPushMsg/src
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/SyncAgent/T_AgentPushMsg/testdata
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/SyncAgent/T_AgentUnit/group
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/SyncAgent/T_AgentUnit/inc
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/SyncAgent/T_AgentUnit/scripts
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/SyncAgent/T_AgentUnit/src
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/SyncAgent/T_AgentUnit/testdata
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/SyncEngine
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/T_Client/group
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/T_Client/inc
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/T_Client/scripts
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/T_Client/src
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/T_Client/testdata
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/T_Filter/group
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/T_Filter/inc
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/T_Filter/scripts
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/T_Filter/src
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/T_Filter/testdata
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/T_Logger/BWINS
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/T_Logger/EABI
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/T_Logger/group
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/T_Logger/inc
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/T_Logger/scripts
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/T_Logger/src
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/T_Logger/testdata
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/T_Shared/group
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/T_Shared/inc
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/T_Shared/scripts
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/T_Shared/src
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/T_TestUtilsServer/group
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/T_TestUtilsServer/inc
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/T_TestUtilsServer/scripts
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/T_TestUtilsServer/src
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/T_TestUtilsServer/testdata
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/T_Utilities/group
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/T_Utilities/inc
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/T_Utilities/scripts
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/T_Utilities/src
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/T_Utilities/testdata
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/T_WbxmlGenerator/group
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/T_WbxmlGenerator/inc
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/T_WbxmlGenerator/scripts
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/T_WbxmlGenerator/src
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/T_WbxmlGenerator/testdata/expected
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/T_WbxmlParser/group
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/T_WbxmlParser/inc
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/T_WbxmlParser/scripts
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/T_WbxmlParser/src
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/T_WbxmlParser/testdata
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/TestUtilsServer/inc
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/TestUtilsServer/src
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/TextNotifier
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/TransportProvision/DummyTCA
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/TransportProvision/DummyTLA
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/TransportProvision/HttpWsp
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/TransportProvision/Obex/ManualTest
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/TransportProvision/StubbedHttp
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/TransportProvision/StubbedObex
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/TransportProvision/TCATests/TestFiles
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/TransportProvision/T_BtObexTCA/group
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/TransportProvision/T_BtObexTCA/inc
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/TransportProvision/T_BtObexTCA/scripts
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/TransportProvision/T_BtObexTCA/src
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/TransportProvision/T_BtObexTCA/testdata
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/TransportProvision/T_BtObexTLA/group
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/TransportProvision/T_BtObexTLA/inc
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/TransportProvision/T_BtObexTLA/scripts
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/TransportProvision/T_BtObexTLA/src
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/TransportProvision/T_BtObexTLA/testdata
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/TransportProvision/T_HTTPTCA/group
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/TransportProvision/T_HTTPTCA/inc
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/TransportProvision/T_HTTPTCA/scripts
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/TransportProvision/T_HTTPTCA/src
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/TransportProvision/T_HTTPTCA/testdata
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/TransportProvision/T_IrObexTCA/group
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/TransportProvision/T_IrObexTCA/inc
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/TransportProvision/T_IrObexTCA/scripts
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/TransportProvision/T_IrObexTCA/src
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/TransportProvision/T_IrObexTCA/testdata
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/TransportProvision/T_IrObexTLA/group
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/TransportProvision/T_IrObexTLA/inc
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/TransportProvision/T_IrObexTLA/scripts
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/TransportProvision/T_IrObexTLA/src
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/TransportProvision/T_IrObexTLA/testdata
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/TransportProvision/T_MTPTCA/group
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/TransportProvision/T_MTPTCA/inc
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/TransportProvision/T_MTPTCA/scripts
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/TransportProvision/T_MTPTCA/src
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/TransportProvision/T_MTPTCA/testdata
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/TransportProvision/T_UsbObexTCA/group
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/TransportProvision/T_UsbObexTCA/inc
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/TransportProvision/T_UsbObexTCA/scripts
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/TransportProvision/T_UsbObexTCA/src
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/TransportProvision/T_UsbObexTCA/testdata
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/TransportProvision/T_UsbObexTLA/group
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/TransportProvision/T_UsbObexTLA/inc
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/TransportProvision/T_UsbObexTLA/scripts
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/TransportProvision/T_UsbObexTLA/src
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/TransportProvision/T_UsbObexTLA/testdata
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/TransportProvision/T_WapPushPlugin/group
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/TransportProvision/T_WapPushPlugin/inc
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/TransportProvision/T_WapPushPlugin/scripts
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/TransportProvision/T_WapPushPlugin/src
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/TransportProvision/T_WapPushPlugin/testdata/WapPushTests
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/TransportProvision/TestHTTPTCA
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/TransportProvision/TestObex
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/TransportProvision/bwins
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/TransportProvision/eabi
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/bwins
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/eabi
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/group
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/include
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/smlTest
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/t_notify/group
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/t_notify/inc
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/t_notify/scripts
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/t_notify/src
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/t_notify/testdata
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/t_pimconfig/documentation
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/t_pimconfig/group
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/t_pimconfig/scripts/agenda
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/t_pimconfig/scripts/contacts
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/t_pimconfig/src
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/t_pimconfig/testdata
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/t_pimconfig/xml/t_pimconfigsuite/testexecuteservers
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/t_profileconfig/documentation
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/t_profileconfig/group
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/t_profileconfig/scripts
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/t_profileconfig/src
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/t_profileconfig/testdata
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/t_profileconfig/xml/t_profileconfigsuite/testexecuteservers
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/t_syncdatastore/group
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/t_syncdatastore/inc
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/t_syncdatastore/scripts
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/t_syncdatastore/src
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/t_syncdatastore/testdata
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/t_transportcontroller/group
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/t_transportcontroller/inc
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/t_transportcontroller/scripts
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/t_transportcontroller/src
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/Test/t_transportcontroller/testdata
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/TransportProvision/HttpWsp
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/TransportProvision/Mtp
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/TransportProvision/Obex
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/TransportProvision/WapPushPlugin
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/TransportProvision/bwins
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/TransportProvision/eabi
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/bwins
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/dataproviderregistry/BWINS
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/dataproviderregistry/EABI
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/dataproviderregistry/group
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/dataproviderregistry/inc
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/dataproviderregistry/src
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/eDoc/bin
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/eabi
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/filter/bwins
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/filter/eabi
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/filter/group
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/filter/inc
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/filter/src
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/statemachineframework/BWINS
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/statemachineframework/EABI
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/statemachineframework/doc
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/statemachineframework/group
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/statemachineframework/inc
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlcommonfw/statemachineframework/src
+/os/unref/orphan/comgen/syncml/group
+/mw/remotemgmt/remotemgmttest/omasyncmlintegrationtest/data
+/mw/remotemgmt/remotemgmttest/omasyncmlintegrationtest/group
+/mw/remotemgmt/remotemgmttest/omasyncmlintegrationtest/t_integplugins
+/mw/remotemgmt/remotemgmttest/omasyncmlintegrationtest/t_integtest
+/mw/remotemgmt/remotemgmttest/omasyncmlintegrationtest/tsmlintegration
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlconfig/framework
+/mw/remotemgmt/syncandremotemgmtfw/omasyncmlconfig/group
+/os/kernelhwsrv/userlibandfileserver/fatfilenameconversionplugins/bwins
+/os/kernelhwsrv/userlibandfileserver/fatfilenameconversionplugins/documentation
+/os/kernelhwsrv/userlibandfileserver/fatfilenameconversionplugins/eabi
+/os/kernelhwsrv/userlibandfileserver/fatfilenameconversionplugins/group
+/os/kernelhwsrv/userlibandfileserver/fatfilenameconversionplugins/inc
+/os/kernelhwsrv/userlibandfileserver/fatfilenameconversionplugins/mmpfiles
+/os/kernelhwsrv/userlibandfileserver/fatfilenameconversionplugins/src
+/os/kernelhwsrv/userlibandfileserver/fatfilenameconversionplugins/test
+/os/kernelhwsrv/userlibandfileserver/fatfilenameconversionplugins/unicodeTables
+/os/ossrv/lowlevellibsandfws/apputils/Documentation
+/os/ossrv/lowlevellibsandfws/apputils/activitymanager/bwins
+/os/ossrv/lowlevellibsandfws/apputils/activitymanager/eabi
+/os/ossrv/lowlevellibsandfws/apputils/activitymanager/group
+/os/ossrv/lowlevellibsandfws/apputils/activitymanager/inc
+/os/ossrv/lowlevellibsandfws/apputils/activitymanager/src
+/os/ossrv/lowlevellibsandfws/apputils/activitymanager/test/tef/group
+/os/ossrv/lowlevellibsandfws/apputils/activitymanager/test/tef/te_activitymanagertestsuite/scripts
+/os/ossrv/lowlevellibsandfws/apputils/activitymanager/test/tef/te_activitymanagertestsuite/src
+/os/ossrv/lowlevellibsandfws/apputils/activitymanager/test/tef/te_activitymanagertestsuite/testdata
+/os/ossrv/lowlevellibsandfws/apputils/bsul/bwins
+/os/ossrv/lowlevellibsandfws/apputils/bsul/eabi
+/os/ossrv/lowlevellibsandfws/apputils/bsul/group
+/os/ossrv/lowlevellibsandfws/apputils/bsul/inc
+/os/ossrv/lowlevellibsandfws/apputils/bsul/src
+/os/ossrv/lowlevellibsandfws/apputils/bsul/test/t_cacheddriveinfo
+/os/ossrv/lowlevellibsandfws/apputils/bsul/test/t_clientmessage
+/os/ossrv/lowlevellibsandfws/apputils/bsul/test/t_iniparser
+/os/ossrv/lowlevellibsandfws/apputils/bwins
+/os/ossrv/lowlevellibsandfws/apputils/eabi
+/os/ossrv/lowlevellibsandfws/apputils/engineering/features
+/os/ossrv/lowlevellibsandfws/apputils/engineering/misc
+/os/ossrv/lowlevellibsandfws/apputils/engineering/stringpool/example
+/os/ossrv/lowlevellibsandfws/apputils/group
+/os/ossrv/lowlevellibsandfws/apputils/inc
+/os/ossrv/lowlevellibsandfws/apputils/initLocale/Documentation
+/os/ossrv/lowlevellibsandfws/apputils/initLocale/data
+/os/ossrv/lowlevellibsandfws/apputils/initLocale/group
+/os/ossrv/lowlevellibsandfws/apputils/initLocale/src
+/os/ossrv/lowlevellibsandfws/apputils/initLocale/test
+/os/ossrv/lowlevellibsandfws/apputils/multipartparser/bwins
+/os/ossrv/lowlevellibsandfws/apputils/multipartparser/eabi
+/os/ossrv/lowlevellibsandfws/apputils/multipartparser/group
+/os/ossrv/lowlevellibsandfws/apputils/multipartparser/inc
+/os/ossrv/lowlevellibsandfws/apputils/multipartparser/src
+/os/ossrv/lowlevellibsandfws/apputils/src/inc
+/os/ossrv/lowlevellibsandfws/apputils/stringtools
+/os/ossrv/lowlevellibsandfws/apputils/sysutil/bwins
+/os/ossrv/lowlevellibsandfws/apputils/sysutil/eabi
+/os/ossrv/lowlevellibsandfws/apputils/sysutil/group
+/os/ossrv/lowlevellibsandfws/apputils/sysutil/inc
+/os/ossrv/lowlevellibsandfws/apputils/sysutil/src
+/os/ossrv/lowlevellibsandfws/apputils/sysutil/test/data
+/os/ossrv/lowlevellibsandfws/apputils/sysutil/test/helper/group
+/os/ossrv/lowlevellibsandfws/apputils/sysutil/test/helper/timelegacyapis/src
+/os/ossrv/lowlevellibsandfws/apputils/sysutil/test/rtest/compositeromtest/src
+/os/ossrv/lowlevellibsandfws/apputils/sysutil/test/rtest/compositeromtest/testfiles
+/os/ossrv/lowlevellibsandfws/apputils/sysutil/test/rtest/group
+/os/ossrv/lowlevellibsandfws/apputils/sysutil/test/shared
+/os/ossrv/lowlevellibsandfws/apputils/sysutil/test/tef/bwins
+/os/ossrv/lowlevellibsandfws/apputils/sysutil/test/tef/eabi
+/os/ossrv/lowlevellibsandfws/apputils/sysutil/test/tef/group
+/os/ossrv/lowlevellibsandfws/apputils/sysutil/test/tef/te_sysutilburtestsuite/scripts
+/os/ossrv/lowlevellibsandfws/apputils/sysutil/test/tef/te_sysutilburtestsuite/src
+/os/ossrv/lowlevellibsandfws/apputils/sysutil/test/tef/te_sysutilcapabilitysuite/scripts
+/os/ossrv/lowlevellibsandfws/apputils/sysutil/test/tef/te_sysutilcapabilitysuite/src
+/os/ossrv/lowlevellibsandfws/apputils/sysutil/test/tef/te_sysutilmanualsuite/scripts
+/os/ossrv/lowlevellibsandfws/apputils/sysutil/test/tef/te_sysutilmanualsuite/src
+/os/ossrv/lowlevellibsandfws/apputils/sysutil/test/tef/te_sysutiltestsuite/scripts
+/os/ossrv/lowlevellibsandfws/apputils/sysutil/test/tef/te_sysutiltestsuite/src
+/os/ossrv/lowlevellibsandfws/apputils/sysutil/test/tef/te_sysutilunitsuite/scripts
+/os/ossrv/lowlevellibsandfws/apputils/sysutil/test/tef/te_sysutilunitsuite/src
+/os/ossrv/lowlevellibsandfws/apputils/test/tef/group
+/os/ossrv/lowlevellibsandfws/apputils/test/tef/ssnd/scripts
+/os/ossrv/lowlevellibsandfws/apputils/test/tef/ssnd/src
+/os/ossrv/lowlevellibsandfws/apputils/tsrc/t_strings
+/os/persistentdata/persistentstorage/centralrepository/bwins
+/os/persistentdata/persistentstorage/centralrepository/cenrepcli
+/os/persistentdata/persistentstorage/centralrepository/cenrepnotifierhandler/BWINS
+/os/persistentdata/persistentstorage/centralrepository/cenrepnotifierhandler/EABI
+/os/persistentdata/persistentstorage/centralrepository/cenrepnotifierhandler/group
+/os/persistentdata/persistentstorage/centralrepository/cenrepnotifierhandler/inc
+/os/persistentdata/persistentstorage/centralrepository/cenrepnotifierhandler/rom
+/os/persistentdata/persistentstorage/centralrepository/cenrepnotifierhandler/src
+/os/persistentdata/persistentstorage/centralrepository/cenrepnotifierhandler/test/RTest/data
+/os/persistentdata/persistentstorage/centralrepository/cenrepnotifierhandler/test/RTest/group
+/os/persistentdata/persistentstorage/centralrepository/cenrepnotifierhandler/test/RTest/inc
+/os/persistentdata/persistentstorage/centralrepository/cenrepnotifierhandler/test/RTest/src
+/os/persistentdata/persistentstorage/centralrepository/cenrepsrv
+/os/persistentdata/persistentstorage/centralrepository/common/inc
+/os/persistentdata/persistentstorage/centralrepository/common/src
+/os/persistentdata/persistentstorage/centralrepository/convtool/group
+/os/persistentdata/persistentstorage/centralrepository/convtool/src
+/os/persistentdata/persistentstorage/centralrepository/documentation
+/os/persistentdata/persistentstorage/centralrepository/eabi
+/os/persistentdata/persistentstorage/centralrepository/group
+/os/persistentdata/persistentstorage/centralrepository/include
+/os/persistentdata/persistentstorage/centralrepository/pccenrep/group
+/os/persistentdata/persistentstorage/centralrepository/pccenrep/include
+/os/persistentdata/persistentstorage/centralrepository/pccenrep/src
+/os/persistentdata/persistentstorage/centralrepository/pccenrep/test
+/os/persistentdata/persistentstorage/centralrepository/test/testexecute/BUR/BWINS
+/os/persistentdata/persistentstorage/centralrepository/test/testexecute/BUR/config
+/os/persistentdata/persistentstorage/centralrepository/test/testexecute/BUR/group
+/os/persistentdata/persistentstorage/centralrepository/test/testexecute/BUR/scripts
+/os/persistentdata/persistentstorage/centralrepository/test/testexecute/BUR/src
+/os/persistentdata/persistentstorage/centralrepository/test/testexecute/SWI/config
+/os/persistentdata/persistentstorage/centralrepository/test/testexecute/SWI/data/certstore
+/os/persistentdata/persistentstorage/centralrepository/test/testexecute/SWI/data/keyspaces
+/os/persistentdata/persistentstorage/centralrepository/test/testexecute/SWI/data/testapp
+/os/persistentdata/persistentstorage/centralrepository/test/testexecute/SWI/documentation
+/os/persistentdata/persistentstorage/centralrepository/test/testexecute/SWI/group
+/os/persistentdata/persistentstorage/centralrepository/test/testexecute/SWI/scripts
+/os/persistentdata/persistentstorage/centralrepository/test/testexecute/SWI/src
+/os/persistentdata/persistentstorage/centralrepository/test/testexecute/convtool/group
+/os/persistentdata/persistentstorage/centralrepository/test/testexecute/convtool/scripts
+/os/persistentdata/persistentstorage/centralrepository/test/testexecute/convtool/src
+/os/persistentdata/persistentstorage/centralrepository/test/testexecute/group
+/os/persistentdata/persistentstorage/centralrepository/test/testexecute/performance/bwins
+/os/persistentdata/persistentstorage/centralrepository/test/testexecute/performance/config
+/os/persistentdata/persistentstorage/centralrepository/test/testexecute/performance/group
+/os/persistentdata/persistentstorage/centralrepository/test/testexecute/performance/inc
+/os/persistentdata/persistentstorage/centralrepository/test/testexecute/performance/scripts
+/os/persistentdata/persistentstorage/centralrepository/test/testexecute/performance/src
+/os/textandloc/charconvfw/charconv_fw/bwins
+/os/textandloc/charconvfw/charconv_fw/documentation
+/os/textandloc/charconvfw/charconv_fw/eabi
+/os/textandloc/charconvfw/charconv_fw/group
+/os/textandloc/charconvfw/charconv_fw/inc
+/os/textandloc/charconvfw/charconv_fw/src/charconv
+/os/textandloc/charconvfw/charconv_fw/src/convnames
+/os/textandloc/charconvfw/charconv_fw/src/convutils
+/os/textandloc/charconvfw/charconv_fw/test/data
+/os/textandloc/charconvfw/charconv_fw/test/rtest/bwins
+/os/textandloc/charconvfw/charconv_fw/test/rtest/eabi
+/os/textandloc/charconvfw/charconv_fw/test/rtest/group
+/os/textandloc/charconvfw/charconv_fw/test/rtest/tsrc/main
+/os/textandloc/charconvfw/charconv_fw/test/rtest/tsrc/otherutf
+/os/textandloc/charconvfw/charconv_fw/test/rtest/tsrc/utf
+/os/textandloc/charconvfw/charconv_fw/tools/convtool
+/os/unref/orphan/comgen/syslibs/charconv/group
+/os/textandloc/charconvfw/charconvplugins/bwins
+/os/textandloc/charconvfw/charconvplugins/data
+/os/textandloc/charconvfw/charconvplugins/documentation
+/os/textandloc/charconvfw/charconvplugins/eabi
+/os/textandloc/charconvfw/charconvplugins/group
+/os/textandloc/charconvfw/charconvplugins/inc
+/os/textandloc/charconvfw/charconvplugins/resource
+/os/textandloc/charconvfw/charconvplugins/src/inc
+/os/textandloc/charconvfw/charconvplugins/src/plugins
+/os/textandloc/charconvfw/charconvplugins/src/shared
+/os/textandloc/charconvfw/charconvplugins/test/data/main
+/os/textandloc/charconvfw/charconvplugins/test/data/tool
+/os/textandloc/charconvfw/charconvplugins/test/rtest/group
+/os/textandloc/charconvfw/charconvplugins/test/rtest/tsrc/main
+/os/textandloc/charconvfw/charconvplugins/test/rtest/tsrc/plugins
+/os/textandloc/charconvfw/charconvplugins/test/tool
+/os/textandloc/charconvfw/charconvplugins/tools
+/os/persistentdata/persistentstorage/dbms/Documentation
+/os/persistentdata/persistentstorage/dbms/Inc2
+/os/persistentdata/persistentstorage/dbms/SPConv
+/os/persistentdata/persistentstorage/dbms/bmake
+/os/persistentdata/persistentstorage/dbms/bwins
+/os/persistentdata/persistentstorage/dbms/eabi
+/os/persistentdata/databaseabstraction/dbmsemulationlib/EABI
+/os/persistentdata/databaseabstraction/dbmsemulationlib/TEFPerformanceTests/DB_TESTFILES
+/os/persistentdata/databaseabstraction/dbmsemulationlib/TEFPerformanceTests/Documentation
+/os/persistentdata/databaseabstraction/dbmsemulationlib/TEFPerformanceTests/GROUP
+/os/persistentdata/databaseabstraction/dbmsemulationlib/TEFPerformanceTests/INC
+/os/persistentdata/databaseabstraction/dbmsemulationlib/TEFPerformanceTests/INI
+/os/persistentdata/databaseabstraction/dbmsemulationlib/TEFPerformanceTests/SCRIPT
+/os/persistentdata/databaseabstraction/dbmsemulationlib/TEFPerformanceTests/SRC
+/os/persistentdata/databaseabstraction/dbmsemulationlib/TEFPerformanceTests/ToolToBuildDatabaseFileFromSQLStatements
+/os/persistentdata/databaseabstraction/dbmsemulationlib/bwins
+/os/persistentdata/databaseabstraction/dbmsemulationlib/group
+/os/persistentdata/databaseabstraction/dbmsemulationlib/src
+/os/persistentdata/databaseabstraction/dbmsemulationlib/test
+/os/persistentdata/persistentstorage/dbms/group
+/os/persistentdata/persistentstorage/dbms/inc
+/os/persistentdata/persistentstorage/dbms/sdbms
+/os/persistentdata/persistentstorage/dbms/security
+/os/persistentdata/persistentstorage/dbms/sexe
+/os/persistentdata/persistentstorage/dbms/tdbms
+/os/persistentdata/persistentstorage/dbms/udbms
+/os/persistentdata/persistentstorage/dbms/usql
+/os/persistentdata/persistentstorage/dbms/ustor
+/os/persistentdata/persistentstorage/dbms/utable
+/os/ossrv/genericservices/syslibsdocs
+/os/ossrv/lowlevellibsandfws/pluginfw/Framework/BackupNotifierTest
+/os/ossrv/lowlevellibsandfws/pluginfw/Framework/DefaultResolverTest
+/os/ossrv/lowlevellibsandfws/pluginfw/Framework/DisableDrivesTest
+/os/ossrv/lowlevellibsandfws/pluginfw/Framework/DiscovererTest
+/os/ossrv/lowlevellibsandfws/pluginfw/Framework/DriveInfoTest
+/os/ossrv/lowlevellibsandfws/pluginfw/Framework/DriveMountTest
+/os/ossrv/lowlevellibsandfws/pluginfw/Framework/EABI
+/os/ossrv/lowlevellibsandfws/pluginfw/Framework/EcomSsaDisabledTest
+/os/ossrv/lowlevellibsandfws/pluginfw/Framework/EcomSsaEnabledTest
+/os/ossrv/lowlevellibsandfws/pluginfw/Framework/EcomTestUtils
+/os/ossrv/lowlevellibsandfws/pluginfw/Framework/EikErrorResolverTest
+/os/ossrv/lowlevellibsandfws/pluginfw/Framework/Example
+/os/ossrv/lowlevellibsandfws/pluginfw/Framework/ExtendedInterfacesTest
+/os/ossrv/lowlevellibsandfws/pluginfw/Framework/FrameTests
+/os/ossrv/lowlevellibsandfws/pluginfw/Framework/HeapTest
+/os/ossrv/lowlevellibsandfws/pluginfw/Framework/HeapTestImpl
+/os/ossrv/lowlevellibsandfws/pluginfw/Framework/ListImplementationTest
+/os/ossrv/lowlevellibsandfws/pluginfw/Framework/LoadManagerTest
+/os/ossrv/lowlevellibsandfws/pluginfw/Framework/MMPFiles
+/os/ossrv/lowlevellibsandfws/pluginfw/Framework/MagicServerTest
+/os/ossrv/lowlevellibsandfws/pluginfw/Framework/MultipleImageTest/DefaultImage
+/os/ossrv/lowlevellibsandfws/pluginfw/Framework/MultipleImageTest/Image2
+/os/ossrv/lowlevellibsandfws/pluginfw/Framework/MultipleImageTest/tools/scripts
+/os/ossrv/lowlevellibsandfws/pluginfw/Framework/NotificationTest
+/os/ossrv/lowlevellibsandfws/pluginfw/Framework/PluginDiscoveryTests
+/os/ossrv/lowlevellibsandfws/pluginfw/Framework/PluginUpgradeTest
+/os/ossrv/lowlevellibsandfws/pluginfw/Framework/RegistrarTest
+/os/ossrv/lowlevellibsandfws/pluginfw/Framework/RegistryDataTest
+/os/ossrv/lowlevellibsandfws/pluginfw/Framework/ResolverTest
+/os/ossrv/lowlevellibsandfws/pluginfw/Framework/RomOnlyTest
+/os/ossrv/lowlevellibsandfws/pluginfw/Framework/RomResolverTest
+/os/ossrv/lowlevellibsandfws/pluginfw/Framework/ServerStartupMgrTest
+/os/ossrv/lowlevellibsandfws/pluginfw/Framework/SimpleTests
+/os/ossrv/lowlevellibsandfws/pluginfw/Framework/Suicidal
+/os/ossrv/lowlevellibsandfws/pluginfw/Framework/SuicideTests
+/os/ossrv/lowlevellibsandfws/pluginfw/Framework/T_PlatSecECom
+/os/ossrv/lowlevellibsandfws/pluginfw/Framework/T_PlatSecECom1
+/os/ossrv/lowlevellibsandfws/pluginfw/Framework/T_PlatSecECom2
+/os/ossrv/lowlevellibsandfws/pluginfw/Framework/T_PlatSecECom3
+/os/ossrv/lowlevellibsandfws/pluginfw/Framework/T_PlatSecECom4
+/os/ossrv/lowlevellibsandfws/pluginfw/Framework/T_PlatSecResolver
+/os/ossrv/lowlevellibsandfws/pluginfw/Framework/T_PlatSecTest
+/os/ossrv/lowlevellibsandfws/pluginfw/Framework/TestData
+/os/ossrv/lowlevellibsandfws/pluginfw/Framework/ValidateRegistryTest
+/os/ossrv/lowlevellibsandfws/pluginfw/Framework/bwins
+/os/ossrv/lowlevellibsandfws/pluginfw/Framework/frame
+/os/ossrv/lowlevellibsandfws/pluginfw/Framework/inc
+/os/ossrv/lowlevellibsandfws/pluginfw/Framework/nullExample
+/os/ossrv/lowlevellibsandfws/pluginfw/Group
+/os/ossrv/lowlevellibsandfws/pluginfw/TestExecute/EComPerfTest/group
+/os/ossrv/lowlevellibsandfws/pluginfw/TestExecute/EComPerfTest/scripts
+/os/ossrv/lowlevellibsandfws/pluginfw/TestExecute/EComPerfTest/src
+/os/ossrv/lowlevellibsandfws/pluginfw/TestExecute/EComSWITests/data/certstore
+/os/ossrv/lowlevellibsandfws/pluginfw/TestExecute/EComSWITests/data/src/EComSWITestPluginOne
+/os/ossrv/lowlevellibsandfws/pluginfw/TestExecute/EComSWITests/data/src/EComSWITestPluginOneUpg
+/os/ossrv/lowlevellibsandfws/pluginfw/TestExecute/EComSWITests/data/src/EComSWITestPluginThree
+/os/ossrv/lowlevellibsandfws/pluginfw/TestExecute/EComSWITests/data/src/EComSWITestPluginThreeUpg
+/os/ossrv/lowlevellibsandfws/pluginfw/TestExecute/EComSWITests/data/src/EComSWITestPluginTwo
+/os/ossrv/lowlevellibsandfws/pluginfw/TestExecute/EComSWITests/group
+/os/ossrv/lowlevellibsandfws/pluginfw/TestExecute/EComSWITests/scripts
+/os/ossrv/lowlevellibsandfws/pluginfw/TestExecute/EComSWITests/src
+/os/ossrv/lowlevellibsandfws/pluginfw/TestExecute/common
+/os/ossrv/lowlevellibsandfws/pluginfw/Test_Bed/ComponentInfoTest
+/os/ossrv/lowlevellibsandfws/pluginfw/Test_Bed/ComponentTesterTest
+/os/ossrv/lowlevellibsandfws/pluginfw/Test_Bed/DataLoggerTest
+/os/ossrv/lowlevellibsandfws/pluginfw/Test_Bed/DefaultLogOutputTest
+/os/ossrv/lowlevellibsandfws/pluginfw/Test_Bed/EABI
+/os/ossrv/lowlevellibsandfws/pluginfw/Test_Bed/MMPFiles
+/os/ossrv/lowlevellibsandfws/pluginfw/Test_Bed/TestControllerTest
+/os/ossrv/lowlevellibsandfws/pluginfw/Test_Bed/TestManagerTest
+/os/ossrv/lowlevellibsandfws/pluginfw/Test_Bed/TransitionTest
+/os/ossrv/lowlevellibsandfws/pluginfw/Test_Bed/UnitTestTest
+/os/ossrv/lowlevellibsandfws/pluginfw/Test_Bed/bwins
+/os/ossrv/lowlevellibsandfws/pluginfw/Test_Bed/console_app
+/os/ossrv/lowlevellibsandfws/pluginfw/Test_Bed/inc
+/os/ossrv/lowlevellibsandfws/pluginfw/Test_Bed/test_bed
+/os/ossrv/lowlevellibsandfws/pluginfw/Tools/EcomSvrIniWriter
+/os/ossrv/lowlevellibsandfws/pluginfw/documentation
+/os/ossrv/lowlevellibsandfws/pluginfw/engineering/Feature_Documentation
+/os/ossrv/lowlevellibsandfws/pluginfw/engineering/Object_Model
+/os/ossrv/lowlevellibsandfws/genericusabilitylib/EABI
+/os/ossrv/lowlevellibsandfws/genericusabilitylib/bwins
+/os/ossrv/lowlevellibsandfws/genericusabilitylib/documentation/dox
+/os/ossrv/lowlevellibsandfws/genericusabilitylib/engineering
+/os/ossrv/lowlevellibsandfws/genericusabilitylib/example/group
+/os/ossrv/lowlevellibsandfws/genericusabilitylib/example/src
+/os/ossrv/lowlevellibsandfws/genericusabilitylib/group
+/os/ossrv/lowlevellibsandfws/genericusabilitylib/inc
+/os/ossrv/lowlevellibsandfws/genericusabilitylib/src
+/os/ossrv/lowlevellibsandfws/genericusabilitylib/test/group
+/os/ossrv/lowlevellibsandfws/genericusabilitylib/test/src
+/os/ossrv/compressionlibs/ziplib/bwins
+/os/ossrv/compressionlibs/ziplib/documentation
+/os/ossrv/compressionlibs/ziplib/eabi
+/os/ossrv/compressionlibs/ziplib/engineering
+/os/ossrv/compressionlibs/ziplib/group/libz
+/os/ossrv/compressionlibs/ziplib/group/tools
+/os/ossrv/compressionlibs/ziplib/inc
+/os/ossrv/compressionlibs/ziplib/src/ezip
+/os/ossrv/compressionlibs/ziplib/src/ezlib
+/os/ossrv/compressionlibs/ziplib/src/zlib
+/os/ossrv/compressionlibs/ziplib/test/data/decompresstest
+/os/ossrv/compressionlibs/ziplib/test/data/gzip
+/os/ossrv/compressionlibs/ziplib/test/data/inflateprimetest
+/os/ossrv/compressionlibs/ziplib/test/data/jar
+/os/ossrv/compressionlibs/ziplib/test/data/pctools
+/os/ossrv/compressionlibs/ziplib/test/data/png
+/os/ossrv/compressionlibs/ziplib/test/data/tef
+/os/ossrv/compressionlibs/ziplib/test/data/zip
+/os/ossrv/compressionlibs/ziplib/test/oldezlib/EABI
+/os/ossrv/compressionlibs/ziplib/test/oldezlib/EZLib
+/os/ossrv/compressionlibs/ziplib/test/oldezlib/Zlib
+/os/ossrv/compressionlibs/ziplib/test/oldezlib/bwins
+/os/ossrv/compressionlibs/ziplib/test/oldezlib/group
+/os/ossrv/compressionlibs/ziplib/test/oldezlib/inc
+/os/ossrv/compressionlibs/ziplib/test/oldezlib/zip
+/os/ossrv/compressionlibs/ziplib/test/pctools/basicfunctest/src
+/os/ossrv/compressionlibs/ziplib/test/pctools/group
+/os/ossrv/compressionlibs/ziplib/test/pctools/linktest/src
+/os/ossrv/compressionlibs/ziplib/test/rtest/decompresstest
+/os/ossrv/compressionlibs/ziplib/test/rtest/example
+/os/ossrv/compressionlibs/ziplib/test/rtest/ezdefect
+/os/ossrv/compressionlibs/ziplib/test/rtest/ezexample
+/os/ossrv/compressionlibs/ziplib/test/rtest/ezfile
+/os/ossrv/compressionlibs/ziplib/test/rtest/ezlibtest
+/os/ossrv/compressionlibs/ziplib/test/rtest/group
+/os/ossrv/compressionlibs/ziplib/test/rtest/gzip
+/os/ossrv/compressionlibs/ziplib/test/rtest/gziptest
+/os/ossrv/compressionlibs/ziplib/test/rtest/inflateprimetest
+/os/ossrv/compressionlibs/ziplib/test/rtest/ziptest
+/os/ossrv/compressionlibs/ziplib/test/shared
+/os/ossrv/compressionlibs/ziplib/test/tef/group
+/os/ossrv/compressionlibs/ziplib/test/tef/te_ezlibeziptests/scripts
+/os/ossrv/compressionlibs/ziplib/test/tef/te_ezlibeziptests/src
+/os/ossrv/compressionlibs/ziplib/test/tef/tlibz/scripts
+/os/ossrv/compressionlibs/ziplib/test/tef/tlibz/src
+/os/ossrv/compressionlibs/ziplib/test/tef/ulibz/scripts
+/os/ossrv/compressionlibs/ziplib/test/tef/ulibz/src
+/os/persistentdata/featuremgmt/featuremgr/bwins
+/os/persistentdata/featuremgmt/featuremgr/documentation
+/os/persistentdata/featuremgmt/featuremgr/eabi
+/os/persistentdata/featuremgmt/featuremgr/engineering/File Specification
+/os/persistentdata/featuremgmt/featuremgr/engineering/Test
+/os/persistentdata/featuremgmt/featuremgr/engineering/reference_plugins/data
+/os/persistentdata/featuremgmt/featuremgr/engineering/reference_plugins/group
+/os/persistentdata/featuremgmt/featuremgr/engineering/reference_plugins/inc
+/os/persistentdata/featuremgmt/featuremgr/engineering/reference_plugins/src
+/os/persistentdata/featuremgmt/featuremgr/group
+/os/persistentdata/featuremgmt/featuremgr/inc
+/os/persistentdata/featuremgmt/featuremgr/src/clientdll
+/os/persistentdata/featuremgmt/featuremgr/src/featdiscovery
+/os/persistentdata/featuremgmt/featuremgr/src/inc
+/os/persistentdata/featuremgmt/featuremgr/src/serverexe
+/os/persistentdata/featuremgmt/featuremgr/src/shared
+/os/persistentdata/featuremgmt/featuremgr/test/group
+/os/persistentdata/featuremgmt/featuremgr/test/helper/configured_efm/group
+/os/persistentdata/featuremgmt/featuremgr/test/helper/dummyswi/group
+/os/persistentdata/featuremgmt/featuremgr/test/helper/dummyswi/inc
+/os/persistentdata/featuremgmt/featuremgr/test/helper/dummyswi/src
+/os/persistentdata/featuremgmt/featuremgr/test/helper/helping_exe/group
+/os/persistentdata/featuremgmt/featuremgr/test/helper/helping_exe/inc
+/os/persistentdata/featuremgmt/featuremgr/test/helper/helping_exe/src
+/os/persistentdata/featuremgmt/featuremgr/test/helper/pluginhelper/group
+/os/persistentdata/featuremgmt/featuremgr/test/helper/pluginhelper/src
+/os/persistentdata/featuremgmt/featuremgr/test/helper/test_plugins/data
+/os/persistentdata/featuremgmt/featuremgr/test/helper/test_plugins/group
+/os/persistentdata/featuremgmt/featuremgr/test/helper/test_plugins/inc
+/os/persistentdata/featuremgmt/featuremgr/test/helper/test_plugins/src
+/os/persistentdata/featuremgmt/featuremgr/test/shared/inc
+/os/persistentdata/featuremgmt/featuremgr/test/shared/src
+/os/persistentdata/featuremgmt/featuremgr/test/tef/group
+/os/persistentdata/featuremgmt/featuremgr/test/tef/tef_efm_bursuite/group
+/os/persistentdata/featuremgmt/featuremgr/test/tef/tef_efm_bursuite/scripts
+/os/persistentdata/featuremgmt/featuremgr/test/tef/tef_efm_bursuite/src
+/os/persistentdata/featuremgmt/featuremgr/test/tef/tef_efm_configured/data
+/os/persistentdata/featuremgmt/featuremgr/test/tef/tef_efm_configured/group
+/os/persistentdata/featuremgmt/featuremgr/test/tef/tef_efm_configured/inc
+/os/persistentdata/featuremgmt/featuremgr/test/tef/tef_efm_configured/scripts
+/os/persistentdata/featuremgmt/featuremgr/test/tef/tef_efm_configured/src
+/os/persistentdata/featuremgmt/featuremgr/test/tef/tef_efm_integration/group
+/os/persistentdata/featuremgmt/featuremgr/test/tef/tef_efm_integration/inc
+/os/persistentdata/featuremgmt/featuremgr/test/tef/tef_efm_integration/scripts/helpfiles
+/os/persistentdata/featuremgmt/featuremgr/test/tef/tef_efm_integration/src
+/os/persistentdata/featuremgmt/featuremgr/test/tef/tef_efm_normal/group
+/os/persistentdata/featuremgmt/featuremgr/test/tef/tef_efm_normal/inc
+/os/persistentdata/featuremgmt/featuremgr/test/tef/tef_efm_normal/scripts
+/os/persistentdata/featuremgmt/featuremgr/test/tef/tef_efm_normal/src
+/os/persistentdata/featuremgmt/featuremgr/test/tef/tef_efm_unit/group
+/os/persistentdata/featuremgmt/featuremgr/test/tef/tef_efm_unit/inc
+/os/persistentdata/featuremgmt/featuremgr/test/tef/tef_efm_unit/scripts
+/os/persistentdata/featuremgmt/featuremgr/test/tef/tef_efm_unit/src
+/os/persistentdata/featuremgmt/featuremgr/test/tef/tef_feature_generator/config
+/os/persistentdata/featuremgmt/featuremgr/test/tef/tef_feature_generator/group
+/os/persistentdata/featuremgmt/featuremgr/test/tef/tef_feature_generator/src
+/os/persistentdata/featuremgmt/featuremgr/tools/datfilehelpers
+/os/persistentdata/featuremgmt/featuremgr/tools/featureinstaller
+/os/persistentdata/featuremgmt/featuremgr/tools/featureuninstaller
+/os/persistentdata/featuremgmt/featuremgr/tools/group
+/os/persistentdata/featuremgmt/featureregistry/bwins
+/os/persistentdata/featuremgmt/featureregistry/documentation
+/os/persistentdata/featuremgmt/featureregistry/eabi
+/os/persistentdata/featuremgmt/featureregistry/group
+/os/persistentdata/featuremgmt/featureregistry/inc
+/os/persistentdata/featuremgmt/featureregistry/src/api
+/os/persistentdata/featuremgmt/featureregistry/src/inc
+/os/persistentdata/featuremgmt/featureregistry/src/setup
+/os/persistentdata/featuremgmt/featureregistry/src/shared
+/os/persistentdata/featuremgmt/featureregistry/test/compositeromtesting/group
+/os/persistentdata/featuremgmt/featureregistry/test/compositeromtesting/src
+/os/persistentdata/featuremgmt/featureregistry/test/compositeromtesting/testfiles
+/os/persistentdata/featuremgmt/featureregistry/test/helper/EABI
+/os/persistentdata/featuremgmt/featureregistry/test/helper/bwins
+/os/persistentdata/featuremgmt/featureregistry/test/helper/group
+/os/persistentdata/featuremgmt/featureregistry/test/helper/maketestconfig
+/os/persistentdata/featuremgmt/featureregistry/test/helper/maxcapability
+/os/persistentdata/featuremgmt/featureregistry/test/helper/testpublish
+/os/persistentdata/featuremgmt/featureregistry/test/tef/group
+/os/persistentdata/featuremgmt/featureregistry/test/tef/te_featreg/scripts
+/os/persistentdata/featuremgmt/featureregistry/test/tef/te_featreg/src
+/os/persistentdata/featuremgmt/featureregistry/tools/featregconfig/scripts
+/os/persistentdata/featuremgmt/featureregistry/tools/featregconfig/testconfigfiles
+/os/persistentdata/loggingservices/eventlogger/LogCli/inc
+/os/persistentdata/loggingservices/eventlogger/LogCli/src
+/os/persistentdata/loggingservices/eventlogger/LogServ/inc
+/os/persistentdata/loggingservices/eventlogger/LogServ/src
+/os/persistentdata/loggingservices/eventlogger/LogWrap/inc
+/os/persistentdata/loggingservices/eventlogger/LogWrap/src
+/os/persistentdata/loggingservices/eventlogger/Rom
+/os/persistentdata/loggingservices/eventlogger/Shared
+/os/persistentdata/loggingservices/eventlogger/bwins
+/os/persistentdata/loggingservices/eventlogger/documentation
+/os/persistentdata/loggingservices/eventlogger/eabi
+/os/persistentdata/loggingservices/eventlogger/group
+/os/persistentdata/loggingservices/eventlogger/logcntmodel/inc
+/os/persistentdata/loggingservices/eventlogger/logcntmodel/src
+/os/persistentdata/loggingservices/eventlogger/test/inc
+/os/persistentdata/loggingservices/eventlogger/test/src
+/os/persistentdata/loggingservices/eventlogger/test/tef/group
+/os/persistentdata/loggingservices/eventlogger/test/tef/teflogengbur/data
+/os/persistentdata/loggingservices/eventlogger/test/tef/teflogengbur/scripts
+/os/persistentdata/loggingservices/eventlogger/test/tef/teflogengbur/src
+/os/devicesrv/resourcemgmt/powerandmemorynotificationservice/bwins
+/os/devicesrv/resourcemgmt/powerandmemorynotificationservice/eabi
+/os/devicesrv/resourcemgmt/powerandmemorynotificationservice/engineering/features
+/os/devicesrv/resourcemgmt/powerandmemorynotificationservice/group
+/os/devicesrv/resourcemgmt/powerandmemorynotificationservice/inc
+/os/devicesrv/resourcemgmt/powerandmemorynotificationservice/src
+/os/devicesrv/resourcemgmt/powerandmemorynotificationservice/tsrc
+/os/ossrv/genericservices/taskscheduler/DESIGN
+/os/ossrv/genericservices/taskscheduler/Documentation/Feature Documentation
+/os/ossrv/genericservices/taskscheduler/INC
+/os/ossrv/genericservices/taskscheduler/SCHCLI
+/os/ossrv/genericservices/taskscheduler/SCHEX
+/os/ossrv/genericservices/taskscheduler/SCHSVR
+/os/ossrv/genericservices/taskscheduler/Test/Conditions
+/os/ossrv/genericservices/taskscheduler/Test/LongRunning
+/os/ossrv/genericservices/taskscheduler/Test/MinimalTaskHandler
+/os/ossrv/genericservices/taskscheduler/Test/OOM
+/os/ossrv/genericservices/taskscheduler/Test/PlatSec
+/os/ossrv/genericservices/taskscheduler/Test/Robustness
+/os/ossrv/genericservices/taskscheduler/Test/ScheduledTaskTest
+/os/ossrv/genericservices/taskscheduler/Test/Scheduling
+/os/ossrv/genericservices/taskscheduler/Test/TSCheduleEntryInfo2
+/os/ossrv/genericservices/taskscheduler/Test/TSCheduleState2
+/os/ossrv/genericservices/taskscheduler/Test/TSUtils
+/os/ossrv/genericservices/taskscheduler/Test/TTsTimeUnitTests
+/os/ossrv/genericservices/taskscheduler/Test/Testexecute/Documentation
+/os/ossrv/genericservices/taskscheduler/Test/Testexecute/TEF_SSA_ScheduleSuite/group
+/os/ossrv/genericservices/taskscheduler/Test/Testexecute/TEF_SSA_ScheduleSuite/scripts
+/os/ossrv/genericservices/taskscheduler/Test/Testexecute/TEF_SSA_ScheduleSuite/src
+/os/ossrv/genericservices/taskscheduler/Test/Testexecute/group
+/os/ossrv/genericservices/taskscheduler/Test/Testexecute/scripts
+/os/ossrv/genericservices/taskscheduler/Test/Testexecute/src
+/os/ossrv/genericservices/taskscheduler/Test/Testexecute/tef_schsvr_bursuite/group
+/os/ossrv/genericservices/taskscheduler/Test/Testexecute/tef_schsvr_bursuite/scripts
+/os/ossrv/genericservices/taskscheduler/Test/Testexecute/tef_schsvr_bursuite/src
+/os/ossrv/genericservices/taskscheduler/Test/Year2k
+/os/ossrv/genericservices/taskscheduler/Test/bmarm
+/os/ossrv/genericservices/taskscheduler/Test/bootupperformance
+/os/ossrv/genericservices/taskscheduler/Test/bwins
+/os/ossrv/genericservices/taskscheduler/Test/eabi
+/os/ossrv/genericservices/taskscheduler/bwins
+/os/ossrv/genericservices/taskscheduler/eabi
+/os/ossrv/genericservices/taskscheduler/group
+/os/devicesrv/sensorservices/sensorsfw/bwins
+/os/devicesrv/sensorservices/sensorsfw/eabi
+/os/devicesrv/sensorservices/sensorsfw/group
+/os/devicesrv/sensorservices/sensorsfw/inc/channelapi
+/os/devicesrv/sensorservices/sensorsfw/inc/sensorspi
+/os/devicesrv/sensorservices/sensorsfw/src/inc
+/os/devicesrv/sensorservices/sensorsfw/src/sensorserver
+/os/devicesrv/sensorservices/sensorsfw/src/sensrvclient
+/os/devicesrv/sensorservices/sensorsfw/src/sensrvutil
+/os/unref/orphan/comgen/syslibs/sensors/group
+/mw/appsupport/sensorsupport/testsensor/data
+/mw/appsupport/sensorsupport/testsensor/group
+/mw/appsupport/sensorsupport/testsensor/inc
+/mw/appsupport/sensorsupport/testsensor/src
+/os/persistentdata/persistentstorage/sqlite3api/BWINS
+/os/persistentdata/persistentstorage/sqlite3api/EABI
+/os/persistentdata/persistentstorage/sqlite3api/GROUP
+/os/persistentdata/persistentstorage/sqlite3api/SQLite
+/os/persistentdata/persistentstorage/sqlite3api/TEST/TCL/bwins
+/os/persistentdata/persistentstorage/sqlite3api/TEST/TCL/documentation
+/os/persistentdata/persistentstorage/sqlite3api/TEST/TCL/eabi
+/os/persistentdata/persistentstorage/sqlite3api/TEST/TCL/group
+/os/persistentdata/persistentstorage/sqlite3api/TEST/TCL/src
+/os/persistentdata/persistentstorage/sqlite3api/TEST/TCL/tcldistribution/compat
+/os/persistentdata/persistentstorage/sqlite3api/TEST/TCL/tcldistribution/doc
+/os/persistentdata/persistentstorage/sqlite3api/TEST/TCL/tcldistribution/generic
+/os/persistentdata/persistentstorage/sqlite3api/TEST/TCL/tcldistribution/library/dde
+/os/persistentdata/persistentstorage/sqlite3api/TEST/TCL/tcldistribution/library/encoding
+/os/persistentdata/persistentstorage/sqlite3api/TEST/TCL/tcldistribution/library/http
+/os/persistentdata/persistentstorage/sqlite3api/TEST/TCL/tcldistribution/library/http1.0
+/os/persistentdata/persistentstorage/sqlite3api/TEST/TCL/tcldistribution/library/msgcat
+/os/persistentdata/persistentstorage/sqlite3api/TEST/TCL/tcldistribution/library/opt
+/os/persistentdata/persistentstorage/sqlite3api/TEST/TCL/tcldistribution/library/reg
+/os/persistentdata/persistentstorage/sqlite3api/TEST/TCL/tcldistribution/library/tcltest
+/os/persistentdata/persistentstorage/sqlite3api/TEST/TCL/tcldistribution/mac
+/os/persistentdata/persistentstorage/sqlite3api/TEST/TCL/tcldistribution/macosx/Tcl.pbproj
+/os/persistentdata/persistentstorage/sqlite3api/TEST/TCL/tcldistribution/tests
+/os/persistentdata/persistentstorage/sqlite3api/TEST/TCL/tcldistribution/tools
+/os/persistentdata/persistentstorage/sqlite3api/TEST/TCL/tcldistribution/unix/dltest
+/os/persistentdata/persistentstorage/sqlite3api/TEST/TCL/tcldistribution/win
+/os/persistentdata/persistentstorage/sqlite3api/TEST/TclScript
+/os/persistentdata/persistentstorage/sql/GROUP
+/os/persistentdata/persistentstorage/sql/INC
+/os/persistentdata/persistentstorage/sql/SQLite
+/os/persistentdata/persistentstorage/sql/SRC/Client/IPC
+/os/persistentdata/persistentstorage/sql/SRC/Common/IPC
+/os/persistentdata/persistentstorage/sql/SRC/Security
+/os/persistentdata/persistentstorage/sql/SRC/Server/Compact
+/os/persistentdata/persistentstorage/sql/SRC/Server/IPC
+/os/persistentdata/persistentstorage/sql/TEST/testexecute/PerfTest/Documentation
+/os/persistentdata/persistentstorage/sql/TEST/testexecute/PerfTest/GROUP
+/os/persistentdata/persistentstorage/sql/TEST/testexecute/PerfTest/INC
+/os/persistentdata/persistentstorage/sql/TEST/testexecute/PerfTest/SCRIPT
+/os/persistentdata/persistentstorage/sql/TEST/testexecute/PerfTest/SRC
+/os/persistentdata/persistentstorage/sql/TEST/testexecute/PerfTest/TESTDATA
+/os/persistentdata/persistentstorage/sql/TEST/testexecute/SQLite/config
+/os/persistentdata/persistentstorage/sql/TEST/testexecute/SQLite/data
+/os/persistentdata/persistentstorage/sql/TEST/testexecute/SQLite/group
+/os/persistentdata/persistentstorage/sql/TEST/testexecute/SQLite/scripts
+/os/persistentdata/persistentstorage/sql/TEST/testexecute/SQLite/src
+/os/persistentdata/persistentstorage/sql/TEST/testexecute/group
+/os/persistentdata/persistentstorage/sql/TEST/testexecute/scripts
+/os/persistentdata/persistentstorage/sql/bwins
+/os/persistentdata/persistentstorage/sql/documentation
+/os/persistentdata/persistentstorage/sql/eabi
+/os/ossrv/genericopenlibs/cstdlib/BMMP
+/os/ossrv/genericopenlibs/cstdlib/DDOC
+/os/ossrv/genericopenlibs/cstdlib/INC
+/os/ossrv/genericopenlibs/cstdlib/LCHAR
+/os/ossrv/genericopenlibs/cstdlib/LINC
+/os/ossrv/genericopenlibs/cstdlib/LINCARPA
+/os/ossrv/genericopenlibs/cstdlib/LINCINET
+/os/ossrv/genericopenlibs/cstdlib/LINCMACH
+/os/ossrv/genericopenlibs/cstdlib/LINCSYS
+/os/ossrv/genericopenlibs/cstdlib/LLOCALE
+/os/ossrv/genericopenlibs/cstdlib/LMATH
+/os/ossrv/genericopenlibs/cstdlib/LPOSIX
+/os/ossrv/genericopenlibs/cstdlib/LSIGNAL
+/os/ossrv/genericopenlibs/cstdlib/LSTDIO
+/os/ossrv/genericopenlibs/cstdlib/LSTDLIB
+/os/ossrv/genericopenlibs/cstdlib/LTIME
+/os/ossrv/genericopenlibs/cstdlib/RedirCli
+/os/ossrv/genericopenlibs/cstdlib/TSTLIB/TNETDB
+/os/ossrv/genericopenlibs/cstdlib/UCRT
+/os/ossrv/genericopenlibs/cstdlib/USTLIB
+/os/ossrv/genericopenlibs/cstdlib/USTW32
+/os/ossrv/genericopenlibs/cstdlib/bwins
+/os/ossrv/genericopenlibs/cstdlib/eabi
+/os/ossrv/genericopenlibs/cstdlib/group
+/os/persistentdata/persistentstorage/store/BMAKE
+/os/persistentdata/persistentstorage/store/Doc
+/os/persistentdata/persistentstorage/store/HTOOLS
+/os/persistentdata/persistentstorage/store/INC
+/os/persistentdata/persistentstorage/store/ROM
+/os/persistentdata/persistentstorage/store/TCONT
+/os/persistentdata/persistentstorage/store/TCRYPT
+/os/persistentdata/persistentstorage/store/TFILE
+/os/persistentdata/persistentstorage/store/TMEM
+/os/persistentdata/persistentstorage/store/TPAGE
+/os/persistentdata/persistentstorage/store/TSTOR
+/os/persistentdata/persistentstorage/store/TSTRM
+/os/persistentdata/persistentstorage/store/UBTREE
+/os/persistentdata/persistentstorage/store/UCONT
+/os/persistentdata/persistentstorage/store/UCRYPT
+/os/persistentdata/persistentstorage/store/UFILE
+/os/persistentdata/persistentstorage/store/UHUF
+/os/persistentdata/persistentstorage/store/ULIB
+/os/persistentdata/persistentstorage/store/UMEM
+/os/persistentdata/persistentstorage/store/UPAGE
+/os/persistentdata/persistentstorage/store/USTOR
+/os/persistentdata/persistentstorage/store/USTRM
+/os/persistentdata/persistentstorage/store/bwins
+/os/persistentdata/persistentstorage/store/eabi
+/os/persistentdata/persistentstorage/store/group
+/os/persistentdata/persistentstorage/store/pcstore/documentation
+/os/persistentdata/persistentstorage/store/pcstore/examples
+/os/persistentdata/persistentstorage/store/pcstore/group
+/os/persistentdata/persistentstorage/store/pcstore/inc
+/os/persistentdata/persistentstorage/store/pcstore/src
+/os/persistentdata/persistentstorage/store/pcstore/test/group
+/os/persistentdata/persistentstorage/store/pcstore/test/inc
+/os/persistentdata/persistentstorage/store/pcstore/test/tpcstorepc
+/os/persistentdata/persistentstorage/store/pcstore/test/tpcstoresym
+/os/ossrv/genericservices/systemagent/Inc
+/os/ossrv/genericservices/systemagent/bwins
+/os/ossrv/genericservices/systemagent/documentation
+/os/ossrv/genericservices/systemagent/eabi
+/os/ossrv/genericservices/systemagent/group
+/os/ossrv/genericservices/systemagent/src/client
+/os/ossrv/genericservices/systemagent/src/halsettings
+/os/ossrv/genericservices/systemagent/src/inc
+/os/ossrv/genericservices/systemagent/src/server
+/os/ossrv/genericservices/systemagent/test/rtest/group
+/os/ossrv/genericservices/systemagent/test/rtest/t_haloomtests
+/os/ossrv/genericservices/systemagent/test/rtest/t_initialisehal
+/os/ossrv/genericservices/systemagent/test/rtest/t_persisthal
+/os/ossrv/genericservices/systemagent/test/rtest/t_sysagt2
+/os/ossrv/syslibsapitest/syslibssvs/common/inc
+/os/ossrv/syslibsapitest/syslibssvs/common/src
+/os/ossrv/syslibsapitest/syslibssvs/documentation
+/os/ossrv/syslibsapitest/syslibssvs/ecom/T_ECOM/documentation
+/os/ossrv/syslibsapitest/syslibssvs/ecom/T_ECOM/group
+/os/ossrv/syslibsapitest/syslibssvs/ecom/T_ECOM/inc
+/os/ossrv/syslibsapitest/syslibssvs/ecom/T_ECOM/pkg
+/os/ossrv/syslibsapitest/syslibssvs/ecom/T_ECOM/scripts
+/os/ossrv/syslibsapitest/syslibssvs/ecom/T_ECOM/src
+/os/ossrv/syslibsapitest/syslibssvs/ecom/T_ECOM/testdata
+/os/ossrv/syslibsapitest/syslibssvs/ecom/T_ECOM/testdriver
+/os/ossrv/syslibsapitest/syslibssvs/ecom/TestPlugin/Group
+/os/ossrv/syslibsapitest/syslibssvs/ecom/TestPlugin/Inc
+/os/ossrv/syslibsapitest/syslibssvs/ecom/TestPlugin/Src
+/os/ossrv/syslibsapitest/syslibssvs/ecom/common/inc
+/os/ossrv/syslibsapitest/syslibssvs/ecom/group
+/os/ossrv/syslibsapitest/syslibssvs/ecom/scripts
+/os/ossrv/syslibsapitest/syslibssvs/group
+/os/ossrv/syslibsapitest/syslibssvs/testsuites/group
+/os/ossrv/syslibsapitest/syslibssvs/testsuites/syslibs/ecom
+/os/unref/orphan/comgen/syslibs/xml/group
+/os/xmlsrv/xml/libxml2libs/bwins
+/os/xmlsrv/xml/libxml2libs/eabi
+/os/xmlsrv/xml/libxml2libs/group
+/os/xmlsrv/xml/libxml2libs/inc/libxml2
+/os/xmlsrv/xml/libxml2libs/inc/libxml2_nonexport
+/os/xmlsrv/xml/libxml2libs/inc/xmlengineutils
+/os/xmlsrv/xml/libxml2libs/src/libxml2/libxml
+/os/xmlsrv/xml/libxml2libs/src/xmlengineutils
+/os/xmlsrv/xml/wbxmlparser/group
+/os/xmlsrv/xml/wbxmlparser/inc
+/os/xmlsrv/xml/wbxmlparser/src/sd_serviceindication
+/os/xmlsrv/xml/wbxmlparser/src/sd_syncml
+/os/xmlsrv/xml/wbxmlparser/src/sd_wml
+/os/xmlsrv/xml/wbxmlparser/src/wbxmlparser
+/os/xmlsrv/xml/wbxmlparser/test/rtest/data/defects
+/os/xmlsrv/xml/wbxmlparser/test/rtest/data/serviceindication/1.0
+/os/xmlsrv/xml/wbxmlparser/test/rtest/data/serviceindication/corrupt
+/os/xmlsrv/xml/wbxmlparser/test/rtest/data/syncml/1.1/add-to-client
+/os/xmlsrv/xml/wbxmlparser/test/rtest/data/syncml/1.1/add-to-server
+/os/xmlsrv/xml/wbxmlparser/test/rtest/data/syncml/1.1/atomic
+/os/xmlsrv/xml/wbxmlparser/test/rtest/data/syncml/1.1/authbasicfail
+/os/xmlsrv/xml/wbxmlparser/test/rtest/data/syncml/1.1/authbasicfailfirst
+/os/xmlsrv/xml/wbxmlparser/test/rtest/data/syncml/1.1/authmd5fail
+/os/xmlsrv/xml/wbxmlparser/test/rtest/data/syncml/1.1/authmd5failfirst
+/os/xmlsrv/xml/wbxmlparser/test/rtest/data/syncml/1.1/client-large
+/os/xmlsrv/xml/wbxmlparser/test/rtest/data/syncml/1.1/client-large-multiple
+/os/xmlsrv/xml/wbxmlparser/test/rtest/data/syncml/1.1/devmanadd
+/os/xmlsrv/xml/wbxmlparser/test/rtest/data/syncml/1.1/devmanalertdisplay
+/os/xmlsrv/xml/wbxmlparser/test/rtest/data/syncml/1.1/devmanalertmultichoice
+/os/xmlsrv/xml/wbxmlparser/test/rtest/data/syncml/1.1/devmanalertsinglechoice
+/os/xmlsrv/xml/wbxmlparser/test/rtest/data/syncml/1.1/devmanalerttextinput
+/os/xmlsrv/xml/wbxmlparser/test/rtest/data/syncml/1.1/devmanalertuseraccept
+/os/xmlsrv/xml/wbxmlparser/test/rtest/data/syncml/1.1/devmanalertuserreject
+/os/xmlsrv/xml/wbxmlparser/test/rtest/data/syncml/1.1/devmanatomic
+/os/xmlsrv/xml/wbxmlparser/test/rtest/data/syncml/1.1/devmanatomicalertuseraccept
+/os/xmlsrv/xml/wbxmlparser/test/rtest/data/syncml/1.1/devmanatomicalertuserreject
+/os/xmlsrv/xml/wbxmlparser/test/rtest/data/syncml/1.1/devmanatomicfail
+/os/xmlsrv/xml/wbxmlparser/test/rtest/data/syncml/1.1/devmandelete
+/os/xmlsrv/xml/wbxmlparser/test/rtest/data/syncml/1.1/devmanget
+/os/xmlsrv/xml/wbxmlparser/test/rtest/data/syncml/1.1/devmanlargeobjectadd
+/os/xmlsrv/xml/wbxmlparser/test/rtest/data/syncml/1.1/devmanlargeobjectget
+/os/xmlsrv/xml/wbxmlparser/test/rtest/data/syncml/1.1/devmanreplace
+/os/xmlsrv/xml/wbxmlparser/test/rtest/data/syncml/1.1/devmansequence
+/os/xmlsrv/xml/wbxmlparser/test/rtest/data/syncml/1.1/devmansequencealertuseraccept
+/os/xmlsrv/xml/wbxmlparser/test/rtest/data/syncml/1.1/devmansequencealertuserreject
+/os/xmlsrv/xml/wbxmlparser/test/rtest/data/syncml/1.1/devmansequencefail
+/os/xmlsrv/xml/wbxmlparser/test/rtest/data/syncml/1.1/devmansimple
+/os/xmlsrv/xml/wbxmlparser/test/rtest/data/syncml/1.1/large-object-from-client
+/os/xmlsrv/xml/wbxmlparser/test/rtest/data/syncml/1.1/large-object-from-server
+/os/xmlsrv/xml/wbxmlparser/test/rtest/data/syncml/1.1/large-object-from-server2
+/os/xmlsrv/xml/wbxmlparser/test/rtest/data/syncml/1.1/multiple-db-sync
+/os/xmlsrv/xml/wbxmlparser/test/rtest/data/syncml/1.1/one-way-client-refresh-sync
+/os/xmlsrv/xml/wbxmlparser/test/rtest/data/syncml/1.1/one-way-client-sync
+/os/xmlsrv/xml/wbxmlparser/test/rtest/data/syncml/1.1/one-way-server-refresh-sync
+/os/xmlsrv/xml/wbxmlparser/test/rtest/data/syncml/1.1/one-way-server-sync
+/os/xmlsrv/xml/wbxmlparser/test/rtest/data/syncml/1.1/pref-tx-rx
+/os/xmlsrv/xml/wbxmlparser/test/rtest/data/syncml/1.1/server-busy
+/os/xmlsrv/xml/wbxmlparser/test/rtest/data/syncml/1.1/server-large
+/os/xmlsrv/xml/wbxmlparser/test/rtest/data/syncml/1.1/server-large-multiple
+/os/xmlsrv/xml/wbxmlparser/test/rtest/data/syncml/1.1/slow-sync
+/os/xmlsrv/xml/wbxmlparser/test/rtest/data/syncml/1.1/two-way-add
+/os/xmlsrv/xml/wbxmlparser/test/rtest/data/syncml/1.1/two-way-delete
+/os/xmlsrv/xml/wbxmlparser/test/rtest/data/syncml/1.1/two-way-replace
+/os/xmlsrv/xml/wbxmlparser/test/rtest/data/syncml/1.1/two-way-sync
+/os/xmlsrv/xml/wbxmlparser/test/rtest/data/syncml/1.2/defects
+/os/xmlsrv/xml/wbxmlparser/test/rtest/data/syncml/unknown
+/os/xmlsrv/xml/wbxmlparser/test/rtest/data/wml/1.1
+/os/xmlsrv/xml/wbxmlparser/test/rtest/data/wml/codepage
+/os/xmlsrv/xml/wbxmlparser/test/rtest/data/wml/corrupt
+/os/xmlsrv/xml/wbxmlparser/test/rtest/data/wml/unknown
+/os/xmlsrv/xml/wbxmlparser/test/rtest/group
+/os/xmlsrv/xml/wbxmlparser/test/rtest/tsrc
+/os/xmlsrv/xml/xmldomandxpath/bwins
+/os/xmlsrv/xml/xmldomandxpath/eabi
+/os/xmlsrv/xml/xmldomandxpath/group
+/os/xmlsrv/xml/xmldomandxpath/inc/xmlenginedom
+/os/xmlsrv/xml/xmldomandxpath/inc/xmlengineserializer
+/os/xmlsrv/xml/xmldomandxpath/inc/xpath
+/os/xmlsrv/xml/xmldomandxpath/src/xmlenginedom
+/os/xmlsrv/xml/xmldomandxpath/src/xmlengineserializer
+/os/xmlsrv/xml/xmlfw/bwins
+/os/xmlsrv/xml/xmlfw/documentation/Feature_Documentation
+/os/xmlsrv/xml/xmlfw/eabi
+/os/xmlsrv/xml/xmlfw/group
+/os/xmlsrv/xml/xmlfw/inc/plugins
+/os/xmlsrv/xml/xmlfw/src/customresolver
+/os/xmlsrv/xml/xmlfw/src/xmlframework
+/os/xmlsrv/xml/xmlfw/src/xmlframeworkerrors
+/os/xmlsrv/xml/xmlfw/test/rtest/data
+/os/xmlsrv/xml/xmlfw/test/rtest/group
+/os/xmlsrv/xml/xmlfw/test/rtest/tsrc
+/os/xmlsrv/xml/xmlexpatparser/group
+/os/xmlsrv/xml/xmlexpatparser/inc
+/os/xmlsrv/xml/xmlexpatparser/src/expat-1.95.5/bcb5
+/os/xmlsrv/xml/xmlexpatparser/src/expat-1.95.5/conftools
+/os/xmlsrv/xml/xmlexpatparser/src/expat-1.95.5/doc
+/os/xmlsrv/xml/xmlexpatparser/src/expat-1.95.5/examples
+/os/xmlsrv/xml/xmlexpatparser/src/expat-1.95.5/lib
+/os/xmlsrv/xml/xmlexpatparser/src/expat-1.95.5/tests
+/os/xmlsrv/xml/xmlexpatparser/src/expat-1.95.5/vms
+/os/xmlsrv/xml/xmlexpatparser/src/expat-1.95.5/win32
+/os/xmlsrv/xml/xmlexpatparser/src/expat-1.95.5/xmlwf
+/os/xmlsrv/xml/xmlexpatparser/test/rtest/data
+/os/xmlsrv/xml/xmlexpatparser/test/rtest/group
+/os/xmlsrv/xml/xmlexpatparser/test/rtest/tsrc
+/os/xmlsrv/xml/xmllibxml2parser/group
+/os/xmlsrv/xml/xmllibxml2parser/src
+/os/cellularsrv/telephonyserverplugins/cdmatsy/INC
+/os/cellularsrv/telephonyserverplugins/cdmatsy/Multimode/cdma
+/os/cellularsrv/telephonyserverplugins/cdmatsy/Multimode/packet
+/os/cellularsrv/telephonyserverplugins/cdmatsy/bwins
+/os/cellularsrv/telephonyserverplugins/cdmatsy/documentation
+/os/cellularsrv/telephonyserverplugins/cdmatsy/eabi
+/os/cellularsrv/telephonyserverplugins/cdmatsy/group
+/os/cellularsrv/telephonyserverplugins/cdmatsy/hayes
+/os/cellularsrv/telephonyserverplugins/cdmatsy/test/TS_CdmaLoopback
+/os/cellularsrv/telephonyserverplugins/cdmatsy/test/bwins
+/os/cellularsrv/telephonyserverplugins/cdmatsy/test/eabi
+/os/cellularsrv/cellularsrv_info/telephonyconfidentialdocs
+/os/cellularsrv/telephonyserverplugins/common_tsy/commontsy/bwins
+/os/cellularsrv/telephonyserverplugins/common_tsy/commontsy/eabi
+/os/cellularsrv/telephonyserverplugins/common_tsy/commontsy/exportinc/pluginapi
+/os/cellularsrv/telephonyserverplugins/common_tsy/commontsy/exportinc/serviceapi
+/os/cellularsrv/telephonyserverplugins/common_tsy/commontsy/exportinc/tsynamesapi
+/os/cellularsrv/telephonyserverplugins/common_tsy/commontsy/group
+/os/cellularsrv/telephonyserverplugins/common_tsy/commontsy/inc/mmcustomtsy
+/os/cellularsrv/telephonyserverplugins/common_tsy/commontsy/inc/mmfax
+/os/cellularsrv/telephonyserverplugins/common_tsy/commontsy/inc/mmgsmwcdma
+/os/cellularsrv/telephonyserverplugins/common_tsy/commontsy/inc/mmpacket
+/os/cellularsrv/telephonyserverplugins/common_tsy/commontsy/inc/mmsms
+/os/cellularsrv/telephonyserverplugins/common_tsy/commontsy/inc/mmstorage
+/os/cellularsrv/telephonyserverplugins/common_tsy/commontsy/inc/mmstoragegsm
+/os/cellularsrv/telephonyserverplugins/common_tsy/commontsy/inc/mmstorageiface
+/os/cellularsrv/telephonyserverplugins/common_tsy/commontsy/inc/mmtsy
+/os/cellularsrv/telephonyserverplugins/common_tsy/commontsy/inc/mmutility
+/os/cellularsrv/telephonyserverplugins/common_tsy/commontsy/src/mmcustomtsy
+/os/cellularsrv/telephonyserverplugins/common_tsy/commontsy/src/mmfax
+/os/cellularsrv/telephonyserverplugins/common_tsy/commontsy/src/mmgsmwcdma
+/os/cellularsrv/telephonyserverplugins/common_tsy/commontsy/src/mmpacket
+/os/cellularsrv/telephonyserverplugins/common_tsy/commontsy/src/mmsms
+/os/cellularsrv/telephonyserverplugins/common_tsy/commontsy/src/mmstorage
+/os/cellularsrv/telephonyserverplugins/common_tsy/commontsy/src/mmstoragegsm
+/os/cellularsrv/telephonyserverplugins/common_tsy/commontsy/src/mmstorageiface
+/os/cellularsrv/telephonyserverplugins/common_tsy/commontsy/src/mmtsy
+/os/cellularsrv/telephonyserverplugins/common_tsy/commontsy/src/mmutility
+/os/cellularsrv/telephonyserverplugins/common_tsy/customapi/bwins
+/os/cellularsrv/telephonyserverplugins/common_tsy/customapi/documentation
+/os/cellularsrv/telephonyserverplugins/common_tsy/customapi/eabi
+/os/cellularsrv/telephonyserverplugins/common_tsy/customapi/group
+/os/cellularsrv/telephonyserverplugins/common_tsy/customapi/inc
+/os/cellularsrv/telephonyserverplugins/common_tsy/customapi/src
+/os/cellularsrv/telephonyserverplugins/common_tsy/documentation
+/os/cellularsrv/telephonyserverplugins/common_tsy/featmgrstub/bwins
+/os/cellularsrv/telephonyserverplugins/common_tsy/featmgrstub/eabi
+/os/cellularsrv/telephonyserverplugins/common_tsy/featmgrstub/group
+/os/cellularsrv/telephonyserverplugins/common_tsy/featmgrstub/inc
+/os/cellularsrv/telephonyserverplugins/common_tsy/featmgrstub/src
+/os/cellularsrv/telephonyserverplugins/common_tsy/group
+/os/cellularsrv/telephonyserverplugins/common_tsy/licenseetsy_lib/def/bwins
+/os/cellularsrv/telephonyserverplugins/common_tsy/licenseetsy_lib/def/eabi
+/os/cellularsrv/telephonyserverplugins/common_tsy/licenseetsy_lib/group
+/os/cellularsrv/telephonyserverplugins/common_tsy/licenseetsy_lib/inc
+/os/cellularsrv/telephonyserverplugins/common_tsy/phonetsy/bwins
+/os/cellularsrv/telephonyserverplugins/common_tsy/phonetsy/eabi
+/os/cellularsrv/telephonyserverplugins/common_tsy/phonetsy/group
+/os/cellularsrv/telephonyserverplugins/common_tsy/phonetsy/src
+/os/cellularsrv/telephonyserverplugins/common_tsy/systemstateplugin/bwins
+/os/cellularsrv/telephonyserverplugins/common_tsy/systemstateplugin/eabi
+/os/cellularsrv/telephonyserverplugins/common_tsy/systemstateplugin/group
+/os/cellularsrv/telephonyserverplugins/common_tsy/systemstateplugin/inc
+/os/cellularsrv/telephonyserverplugins/common_tsy/systemstateplugin/src
+/os/cellularsrv/telephonyserverplugins/common_tsy/systemstateplugin/ssmadaptationstub
+/os/cellularsrv/telephonyserverplugins/common_tsy/test/component/cenrep_ini
+/os/cellularsrv/telephonyserverplugins/common_tsy/test/component/data
+/os/cellularsrv/telephonyserverplugins/common_tsy/test/component/documentation/generate_new_component_tests
+/os/cellularsrv/telephonyserverplugins/common_tsy/test/component/group
+/os/cellularsrv/telephonyserverplugins/common_tsy/test/component/inc
+/os/cellularsrv/telephonyserverplugins/common_tsy/test/component/mockltsy/mockltsy/bwins
+/os/cellularsrv/telephonyserverplugins/common_tsy/test/component/mockltsy/mockltsy/eabi
+/os/cellularsrv/telephonyserverplugins/common_tsy/test/component/mockltsy/mockltsy/group
+/os/cellularsrv/telephonyserverplugins/common_tsy/test/component/mockltsy/mockltsy/inc
+/os/cellularsrv/telephonyserverplugins/common_tsy/test/component/mockltsy/mockltsy/src
+/os/cellularsrv/telephonyserverplugins/common_tsy/test/component/mockltsy/mockltsydll/bwins
+/os/cellularsrv/telephonyserverplugins/common_tsy/test/component/mockltsy/mockltsydll/eabi
+/os/cellularsrv/telephonyserverplugins/common_tsy/test/component/mockltsy/mockltsydll/group
+/os/cellularsrv/telephonyserverplugins/common_tsy/test/component/mockltsy/mockltsydll/inc
+/os/cellularsrv/telephonyserverplugins/common_tsy/test/component/mockltsy/mockltsydll/src
+/os/cellularsrv/telephonyserverplugins/common_tsy/test/component/scripts
+/os/cellularsrv/telephonyserverplugins/common_tsy/test/component/src
+/os/cellularsrv/telephonyserverplugins/common_tsy/test/component/testdata
+/os/cellularsrv/telephonyserverplugins/common_tsy/test/devlon_93/bwins
+/os/cellularsrv/telephonyserverplugins/common_tsy/test/devlon_93/compat_include
+/os/cellularsrv/telephonyserverplugins/common_tsy/test/devlon_93/eabi
+/os/cellularsrv/telephonyserverplugins/common_tsy/test/integration/documentation
+/os/cellularsrv/telephonyserverplugins/common_tsy/test/integration/group
+/os/cellularsrv/telephonyserverplugins/common_tsy/test/integration/inc
+/os/cellularsrv/telephonyserverplugins/common_tsy/test/integration/scripts
+/os/cellularsrv/telephonyserverplugins/common_tsy/test/integration/scripts_implemented
+/os/cellularsrv/telephonyserverplugins/common_tsy/test/integration/src
+/os/cellularsrv/telephonyserverplugins/common_tsy/test/integration/testdata
+/os/cellularsrv/telephonyutils/dial/Test/TE_Dial
+/os/cellularsrv/telephonyutils/dial/Test/bwins
+/os/cellularsrv/telephonyutils/dial/bwins
+/os/cellularsrv/telephonyutils/dial/documentation
+/os/cellularsrv/telephonyutils/dial/eabi
+/os/cellularsrv/telephonyutils/dial/group
+/os/cellularsrv/telephonyutils/dial/inc
+/os/cellularsrv/telephonyutils/dial/src
+/os/cellularsrv/cellularsrv_info/telephonydocs
+/os/cellularsrv/telephonyserver/etelserverandcore/CETEL
+/os/cellularsrv/telephonyserver/etelserverandcore/DSTD
+/os/cellularsrv/telephonyserver/etelserverandcore/DSTDNC
+/os/cellularsrv/telephonyserver/etelserverandcore/Documentation/platsec
+/os/cellularsrv/telephonyserver/etelserverandcore/EtelRecorder/playback/group
+/os/cellularsrv/telephonyserver/etelserverandcore/EtelRecorder/playback/inc
+/os/cellularsrv/telephonyserver/etelserverandcore/EtelRecorder/playback/src
+/os/cellularsrv/telephonyserver/etelserverandcore/EtelRecorder/recorder/inc
+/os/cellularsrv/telephonyserver/etelserverandcore/EtelRecorder/recorder/src
+/os/cellularsrv/telephonyserver/etelserverandcore/INC/secure
+/os/cellularsrv/telephonyserver/etelserverandcore/SETEL
+/os/cellularsrv/telephonyserver/etelserverandcore/TETEL/CapTestFramework
+/os/cellularsrv/telephonyserver/etelserverandcore/TETEL/TE_ETEL
+/os/cellularsrv/telephonyserver/etelserverandcore/bwins
+/os/cellularsrv/telephonyserver/etelserverandcore/data
+/os/cellularsrv/telephonyserver/etelserverandcore/eabi
+/os/cellularsrv/telephonyserver/etelserverandcore/group
+/os/cellularsrv/telephonyutils/etel3rdpartyapi/ExampleApps/AutoDTMFDialler
+/os/cellularsrv/telephonyutils/etel3rdpartyapi/ExampleApps/Documentation
+/os/cellularsrv/telephonyutils/etel3rdpartyapi/ExampleApps/Group
+/os/cellularsrv/telephonyutils/etel3rdpartyapi/ExampleApps/IncomingCalls
+/os/cellularsrv/telephonyutils/etel3rdpartyapi/ExampleApps/NetworkInformation
+/os/cellularsrv/telephonyutils/etel3rdpartyapi/ExampleApps/OutgoingCalls
+/os/cellularsrv/telephonyutils/etel3rdpartyapi/ExampleApps/PhoneId
+/os/cellularsrv/telephonyutils/etel3rdpartyapi/ExampleApps/PhoneMonitoring
+/os/cellularsrv/telephonyutils/etel3rdpartyapi/ExampleApps/Shared
+/os/cellularsrv/telephonyutils/etel3rdpartyapi/ExampleApps/SuppleServices
+/os/cellularsrv/telephonyutils/etel3rdpartyapi/ExampleApps/configs
+/os/cellularsrv/telephonyutils/etel3rdpartyapi/Group
+/os/cellularsrv/telephonyutils/etel3rdpartyapi/Test/bwins
+/os/cellularsrv/telephonyutils/etel3rdpartyapi/Test/te_etelIsv
+/os/cellularsrv/telephonyutils/etel3rdpartyapi/Test/te_etelisvcaps/group
+/os/cellularsrv/telephonyutils/etel3rdpartyapi/Test/te_etelisvcaps/scripts
+/os/cellularsrv/telephonyutils/etel3rdpartyapi/Test/te_etelisvcaps/src/callrunner
+/os/cellularsrv/telephonyutils/etel3rdpartyapi/Test/te_etelisvcaps/testdata
+/os/cellularsrv/telephonyutils/etel3rdpartyapi/bwins
+/os/cellularsrv/telephonyutils/etel3rdpartyapi/documentation
+/os/cellularsrv/telephonyutils/etel3rdpartyapi/eabi
+/os/cellularsrv/telephonyutils/etel3rdpartyapi/inc
+/os/cellularsrv/telephonyutils/etel3rdpartyapi/src
+/os/cellularsrv/telephonyserver/etelcdma/CETEL
+/os/cellularsrv/telephonyserver/etelcdma/Documentation
+/os/cellularsrv/telephonyserver/etelcdma/INC/secure
+/os/cellularsrv/telephonyserver/etelcdma/bwins
+/os/cellularsrv/telephonyserver/etelcdma/eabi
+/os/cellularsrv/telephonyserver/etelcdma/group
+/os/cellularsrv/telephonyserver/etelcdma/test/TE_EtelCDMA/bwins
+/os/cellularsrv/telephonyserver/etelcdma/test/TE_EtelCDMA/group
+/os/cellularsrv/telephonyserver/etelcdma/test/TE_EtelCDMA/scripts
+/os/cellularsrv/telephonyserver/etelcdma/test/TE_EtelCDMA/src
+/os/cellularsrv/telephonyserver/etelcdma/test/TE_EtelCDMA/testdata
+/os/cellularsrv/telephonyserver/etelmultimode/CETEL
+/os/cellularsrv/telephonyserver/etelmultimode/DTsy
+/os/cellularsrv/telephonyserver/etelmultimode/Documentation
+/os/cellularsrv/telephonyserver/etelmultimode/INC/secure
+/os/cellularsrv/telephonyserver/etelmultimode/TETEL/bwins
+/os/cellularsrv/telephonyserver/etelmultimode/TETEL/eabi
+/os/cellularsrv/telephonyserver/etelmultimode/TETEL/te_EtelMM
+/os/cellularsrv/telephonyserver/etelmultimode/bwins
+/os/cellularsrv/telephonyserver/etelmultimode/eabi
+/os/cellularsrv/telephonyserver/etelmultimode/group
+/os/cellularsrv/telephonyserver/etelpacketdata/Te_EtelPacket
+/os/cellularsrv/telephonyserver/etelpacketdata/bwins
+/os/cellularsrv/telephonyserver/etelpacketdata/cetel
+/os/cellularsrv/telephonyserver/etelpacketdata/documentation
+/os/cellularsrv/telephonyserver/etelpacketdata/dtsy
+/os/cellularsrv/telephonyserver/etelpacketdata/eabi
+/os/cellularsrv/telephonyserver/etelpacketdata/group
+/os/cellularsrv/telephonyserver/etelpacketdata/inc/secure
+/os/cellularsrv/telephonyserver/etelsimtoolkit/bwins
+/os/cellularsrv/telephonyserver/etelsimtoolkit/cetel
+/os/cellularsrv/telephonyserver/etelsimtoolkit/documentation
+/os/cellularsrv/telephonyserver/etelsimtoolkit/dtsy
+/os/cellularsrv/telephonyserver/etelsimtoolkit/eabi
+/os/cellularsrv/telephonyserver/etelsimtoolkit/group
+/os/cellularsrv/telephonyserver/etelsimtoolkit/inc/secure
+/os/cellularsrv/telephonyserver/etelsimtoolkit/tetel/Te_EtelSat
+/os/cellularsrv/telephonyserver/etelsimtoolkit/tetel/bwins
+/os/cellularsrv/telephonyserver/etelsimtoolkit/tetel/eabi
+/os/cellularsrv/fax/faxclientandserver/Documentation
+/os/cellularsrv/fax/faxclientandserver/FAXCLI
+/os/cellularsrv/fax/faxclientandserver/FAXSVR
+/os/cellularsrv/fax/faxclientandserver/Group
+/os/cellularsrv/fax/faxclientandserver/Inc
+/os/cellularsrv/fax/faxclientandserver/Test/TE_FAX
+/os/cellularsrv/fax/faxclientandserver/Test/bwins
+/os/cellularsrv/fax/faxclientandserver/bwins
+/os/cellularsrv/fax/faxclientandserver/eabi
+/os/cellularsrv/fax/faxclientandserver/faxio
+/os/cellularsrv/fax/faxclientandserver/faxstrm
+/os/devicesrv/resourcemgmt/hwresourcesmgr/client/bwins
+/os/devicesrv/resourcemgmt/hwresourcesmgr/client/eabi
+/os/devicesrv/resourcemgmt/hwresourcesmgr/client/group
+/os/devicesrv/resourcemgmt/hwresourcesmgr/client/inc
+/os/devicesrv/resourcemgmt/hwresourcesmgr/client/src
+/os/devicesrv/resourcemgmt/hwresourcesmgr/common/bwins
+/os/devicesrv/resourcemgmt/hwresourcesmgr/common/eabi
+/os/devicesrv/resourcemgmt/hwresourcesmgr/common/group
+/os/devicesrv/resourcemgmt/hwresourcesmgr/common/inc
+/os/devicesrv/resourcemgmt/hwresourcesmgr/common/src
+/os/devicesrv/resourcemgmt/hwresourcesmgrconfig/data/cenrep
+/os/devicesrv/resourcemgmt/hwresourcesmgr/data
+/os/devicesrv/resourcemgmt/hwresourcesmgr/documentation
+/os/devicesrv/resourcemgmt/hwresourcesmgr/extendedlight/bwins
+/os/devicesrv/resourcemgmt/hwresourcesmgr/extendedlight/eabi
+/os/devicesrv/resourcemgmt/hwresourcesmgr/extendedlight/group
+/os/devicesrv/resourcemgmt/hwresourcesmgr/extendedlight/inc
+/os/devicesrv/resourcemgmt/hwresourcesmgr/extendedlight/src
+/os/devicesrv/resourceinterfaces/fmtransmittercontrol/bwins
+/os/devicesrv/resourceinterfaces/fmtransmittercontrol/eabi
+/os/devicesrv/resourceinterfaces/fmtransmittercontrol/group
+/os/devicesrv/resourceinterfaces/fmtransmittercontrol/inc
+/os/devicesrv/resourceinterfaces/fmtransmittercontrol/src
+/os/devicesrv/resourcemgmt/hwresourcesmgr/group
+/os/devicesrv/resourcemgmt/hwresourcesmgr/include
+/os/devicesrv/resourcemgmt/hwresourcesmgr/light/bwins
+/os/devicesrv/resourcemgmt/hwresourcesmgr/light/eabi
+/os/devicesrv/resourcemgmt/hwresourcesmgr/light/group
+/os/devicesrv/resourcemgmt/hwresourcesmgr/light/inc
+/os/devicesrv/resourcemgmt/hwresourcesmgr/light/src
+/os/devicesrv/resourcemgmt/hwresourcesmgr/power/bwins
+/os/devicesrv/resourcemgmt/hwresourcesmgr/power/eabi
+/os/devicesrv/resourcemgmt/hwresourcesmgr/power/group
+/os/devicesrv/resourcemgmt/hwresourcesmgr/power/inc
+/os/devicesrv/resourcemgmt/hwresourcesmgr/power/src
+/os/devicesrv/resourcemgmt/hwresourcesmgr/server/group
+/os/devicesrv/resourcemgmt/hwresourcesmgr/server/inc
+/os/devicesrv/resourcemgmt/hwresourcesmgr/server/plugininc
+/os/devicesrv/resourcemgmt/hwresourcesmgr/server/src
+/os/devicesrv/resourcemgmt/hwresourcesmgr/test/TestCapsHWRMPolicing/group
+/os/devicesrv/resourcemgmt/hwresourcesmgr/test/TestCapsHWRMPolicing/inc
+/os/devicesrv/resourcemgmt/hwresourcesmgr/test/TestCapsHWRMPolicing/scripts
+/os/devicesrv/resourcemgmt/hwresourcesmgr/test/TestCapsHWRMPolicing/src
+/os/devicesrv/resourcemgmt/hwresourcesmgr/test/data/cenrep
+/os/devicesrv/resourcemgmt/hwresourcesmgr/test/data/featreg
+/os/devicesrv/resourcemgmt/hwresourcesmgr/test/data/policy
+/os/devicesrv/resourcemgmt/hwresourcesmgr/test/group
+/os/devicesrv/resourcemgmt/hwresourcesmgr/test/multiclient/HWRMLightTestB/group
+/os/devicesrv/resourcemgmt/hwresourcesmgr/test/multiclient/HWRMLightTestB/inc
+/os/devicesrv/resourcemgmt/hwresourcesmgr/test/multiclient/HWRMLightTestB/src
+/os/devicesrv/resourcemgmt/hwresourcesmgr/test/multiclient/HWRMLightTestF/data
+/os/devicesrv/resourcemgmt/hwresourcesmgr/test/multiclient/HWRMLightTestF/group
+/os/devicesrv/resourcemgmt/hwresourcesmgr/test/multiclient/HWRMLightTestF/inc
+/os/devicesrv/resourcemgmt/hwresourcesmgr/test/multiclient/HWRMLightTestF/src
+/os/devicesrv/resourcemgmt/hwresourcesmgr/test/multiclient/McFramework
+/os/devicesrv/resourcemgmt/hwresourcesmgr/test/multiclient/common
+/os/devicesrv/resourcemgmt/hwresourcesmgr/test/multiclient/hwrmtests
+/os/devicesrv/resourcemgmt/hwresourcesmgr/test/multiclient/mctest_b
+/os/devicesrv/resourcemgmt/hwresourcesmgr/test/multiclient/mctest_f
+/os/devicesrv/resourcemgmt/hwresourcesmgr/test/plugins/MockHwrmSY/MockHwrmDll/bwins
+/os/devicesrv/resourcemgmt/hwresourcesmgr/test/plugins/MockHwrmSY/MockHwrmDll/eabi
+/os/devicesrv/resourcemgmt/hwresourcesmgr/test/plugins/MockHwrmSY/MockHwrmDll/group
+/os/devicesrv/resourcemgmt/hwresourcesmgr/test/plugins/MockHwrmSY/MockHwrmDll/inc
+/os/devicesrv/resourcemgmt/hwresourcesmgr/test/plugins/MockHwrmSY/MockHwrmDll/src
+/os/devicesrv/resourcemgmt/hwresourcesmgr/test/plugins/MockHwrmSY/MockHwrmSY/group
+/os/devicesrv/resourcemgmt/hwresourcesmgr/test/plugins/MockHwrmSY/MockHwrmSY/inc
+/os/devicesrv/resourcemgmt/hwresourcesmgr/test/plugins/MockHwrmSY/MockHwrmSY/src
+/os/devicesrv/resourcemgmt/hwresourcesmgr/test/plugins/MockHwrmSY/group
+/os/devicesrv/resourcemgmt/hwresourcesmgr/test/plugins/fmtxwatcherplugin/data
+/os/devicesrv/resourcemgmt/hwresourcesmgr/test/plugins/fmtxwatcherplugin/group
+/os/devicesrv/resourcemgmt/hwresourcesmgr/test/plugins/fmtxwatcherplugin/inc
+/os/devicesrv/resourcemgmt/hwresourcesmgr/test/plugins/fmtxwatcherplugin/src
+/os/devicesrv/resourcemgmt/hwresourcesmgr/test/plugins/targetmodifierplugin/data
+/os/devicesrv/resourcemgmt/hwresourcesmgr/test/plugins/targetmodifierplugin/group
+/os/devicesrv/resourcemgmt/hwresourcesmgr/test/plugins/targetmodifierplugin/inc
+/os/devicesrv/resourcemgmt/hwresourcesmgr/test/plugins/targetmodifierplugin/src
+/os/devicesrv/resourcemgmt/hwresourcesmgr/test/plugins/testuiplugin_b/group
+/os/devicesrv/resourcemgmt/hwresourcesmgr/test/plugins/testuiplugin_b/inc
+/os/devicesrv/resourcemgmt/hwresourcesmgr/test/plugins/testuiplugin_b/src
+/os/devicesrv/resourcemgmt/hwresourcesmgr/test/plugins/testuiplugin_f/group
+/os/devicesrv/resourcemgmt/hwresourcesmgr/test/plugins/testuiplugin_f/inc
+/os/devicesrv/resourcemgmt/hwresourcesmgr/test/plugins/testuiplugin_f/src
+/os/devicesrv/resourcemgmt/hwresourcesmgr/test/te_hwrm
+/os/devicesrv/resourcemgmt/hwresourcesmgr/test/utils
+/mw/appsupport/hwresourceadaptation/hwresourcemgruiplugin/group
+/mw/appsupport/hwresourceadaptation/hwresourcemgruiplugin/inc
+/mw/appsupport/hwresourceadaptation/hwresourcemgruiplugin/src
+/os/devicesrv/resourcemgmt/hwresourcesmgr/vibra/bwins
+/os/devicesrv/resourcemgmt/hwresourcesmgr/vibra/eabi
+/os/devicesrv/resourcemgmt/hwresourcesmgr/vibra/group
+/os/devicesrv/resourcemgmt/hwresourcesmgr/vibra/inc
+/os/devicesrv/resourcemgmt/hwresourcesmgr/vibra/src
+/os/cellularsrv/telephonyserverplugins/multimodetsy/Documentation
+/os/cellularsrv/telephonyserverplugins/multimodetsy/INC
+/os/cellularsrv/telephonyserverplugins/multimodetsy/Multimode/gprs
+/os/cellularsrv/telephonyserverplugins/multimodetsy/Multimode/sms
+/os/cellularsrv/telephonyserverplugins/multimodetsy/bwins
+/os/cellularsrv/telephonyserverplugins/multimodetsy/eabi
+/os/cellularsrv/telephonyserverplugins/multimodetsy/group
+/os/cellularsrv/telephonyserverplugins/multimodetsy/hayes
+/os/cellularsrv/telephonyserverplugins/multimodetsy/test/TE_Voice
+/os/cellularsrv/telephonyserverplugins/multimodetsy/test/Te_Data
+/os/cellularsrv/telephonyserverplugins/multimodetsy/test/Te_Echo
+/os/cellularsrv/telephonyserverplugins/multimodetsy/test/Te_Gprs
+/os/cellularsrv/telephonyserverplugins/multimodetsy/test/Te_LoopBack
+/os/cellularsrv/telephonyserverplugins/multimodetsy/test/Te_Misc
+/os/cellularsrv/telephonyserverplugins/multimodetsy/test/Te_Network
+/os/cellularsrv/telephonyserverplugins/multimodetsy/test/Te_PhBk
+/os/cellularsrv/telephonyserverplugins/multimodetsy/test/Te_Sms
+/os/cellularsrv/telephonyserverplugins/multimodetsy/test/bwins
+/os/cellularsrv/telephonyserverplugins/multimodetsy/test/eabi
+/os/cellularsrv/telephonyserverplugins/multimodetsy/test/gprs
+/app/contacts/pimprotocols/phonebooksync/Client
+/app/contacts/pimprotocols/phonebooksync/Server
+/app/contacts/pimprotocols/phonebooksync/Test/CapTestFramework
+/app/contacts/pimprotocols/phonebooksync/Test/TE_PhBkSync
+/app/contacts/pimprotocols/phonebooksync/Test/TE_Sync
+/app/contacts/pimprotocols/phonebooksync/Test/TE_cntsync
+/app/contacts/pimprotocols/phonebooksync/Test/bwins
+/app/contacts/pimprotocols/phonebooksync/Test/eabi
+/app/contacts/pimprotocols/phonebooksync/bwins
+/app/contacts/pimprotocols/phonebooksync/documentation
+/app/contacts/pimprotocols/phonebooksync/eabi
+/app/contacts/pimprotocols/phonebooksync/group
+/app/contacts/pimprotocols/phonebooksync/inc
+/app/contacts/pimprotocols/phonebooksync/plugin
+/os/cellularsrv/telephonyserverplugins/simtsy/Documentation
+/os/cellularsrv/telephonyserverplugins/simtsy/SimTsyCPM
+/os/cellularsrv/telephonyserverplugins/simtsy/bwins
+/os/cellularsrv/telephonyserverplugins/simtsy/eabi
+/os/cellularsrv/telephonyserverplugins/simtsy/group
+/os/cellularsrv/telephonyserverplugins/simtsy/inc
+/os/cellularsrv/telephonyserverplugins/simtsy/src
+/os/cellularsrv/telephonyserverplugins/simtsy/test/Te_Sim
+/os/cellularsrv/telephonyserverplugins/simtsy/test/Te_SimData
+/os/cellularsrv/telephonyserverplugins/simtsy/test/Te_SimMisc
+/os/cellularsrv/telephonyserverplugins/simtsy/test/Te_SimNetwork
+/os/cellularsrv/telephonyserverplugins/simtsy/test/Te_SimPacket
+/os/cellularsrv/telephonyserverplugins/simtsy/test/Te_SimPhBk
+/os/cellularsrv/telephonyserverplugins/simtsy/test/Te_SimSS
+/os/cellularsrv/telephonyserverplugins/simtsy/test/Te_SimSms
+/os/cellularsrv/telephonyserverplugins/simtsy/test/Te_SimVoice
+/os/cellularsrv/telephonyserverplugins/simtsy/test/te_simeap
+/os/unref/orphan/comgen/telephony/telephonytest/Anite/AniteConnect/bwins
+/os/unref/orphan/comgen/telephony/telephonytest/Anite/AniteConnect/eabi
+/os/unref/orphan/comgen/telephony/telephonytest/Anite/AniteConnect/group
+/os/unref/orphan/comgen/telephony/telephonytest/Anite/AniteConnect/inc
+/os/unref/orphan/comgen/telephony/telephonytest/Anite/AniteConnect/src
+/os/unref/orphan/comgen/telephony/telephonytest/Databases
+/os/unref/orphan/comgen/telephony/telephonytest/Rom
+/os/unref/orphan/comgen/telephony/telephonytest/Scripts
+/os/unref/orphan/comgen/telephony/telephonytest/TestDriver/TelephonyTestSuites/NBProtocolsTestSuite/CdmaSmsStackTestSuite/CdmaSmsCapsTestSuite/TestExecuteServers
+/os/unref/orphan/comgen/telephony/telephonytest/TestDriver/TelephonyTestSuites/NBProtocolsTestSuite/CdmaSmsStackTestSuite/CdmaSmsProtTestSuite/TestExecuteServers
+/os/unref/orphan/comgen/telephony/telephonytest/TestDriver/TelephonyTestSuites/NBProtocolsTestSuite/CdmaSmsStackTestSuite/CdmaUTestSuite/TestExecuteServers
+/os/unref/orphan/comgen/telephony/telephonytest/TestDriver/TelephonyTestSuites/NBProtocolsTestSuite/CdmaSmsStackTestSuite/CdmaUUnitTestSuite/TestExecuteServers
+/os/unref/orphan/comgen/telephony/telephonytest/TestDriver/TelephonyTestSuites/NBProtocolsTestSuite/CdmaSmsStackTestSuite/CdmaWapProtTestSuite/TestExecuteServers
+/os/unref/orphan/comgen/telephony/telephonytest/TestDriver/TelephonyTestSuites/NBProtocolsTestSuite/CdmaSmsStackTestSuite/CdmaWapProtUnitTestSuite/TestExecuteServers
+/os/unref/orphan/comgen/telephony/telephonytest/TestDriver/TelephonyTestSuites/NBProtocolsTestSuite/SmsStackTestSuite/GsmuTestSuite/GsmuEmsTestSuite/TestExecuteServers
+/os/unref/orphan/comgen/telephony/telephonytest/TestDriver/TelephonyTestSuites/NBProtocolsTestSuite/SmsStackTestSuite/GsmuTestSuite/GsmuStorTestSuite/TestExecuteServers
+/os/unref/orphan/comgen/telephony/telephonytest/TestDriver/TelephonyTestSuites/NBProtocolsTestSuite/SmsStackTestSuite/GsmuTestSuite/GsmuTestSuite/TestExecuteServers
+/os/unref/orphan/comgen/telephony/telephonytest/TestDriver/TelephonyTestSuites/NBProtocolsTestSuite/SmsStackTestSuite/R6SmsTestSuite/TestExecuteServers
+/os/unref/orphan/comgen/telephony/telephonytest/TestDriver/TelephonyTestSuites/NBProtocolsTestSuite/SmsStackTestSuite/SmsPduDbTestSuite/TestExecuteServers
+/os/unref/orphan/comgen/telephony/telephonytest/TestDriver/TelephonyTestSuites/NBProtocolsTestSuite/SmsStackTestSuite/SmsProtTestSuite/SmsCapsTestSuite/TestExecuteServers
+/os/unref/orphan/comgen/telephony/telephonytest/TestDriver/TelephonyTestSuites/NBProtocolsTestSuite/SmsStackTestSuite/SmsProtTestSuite/SmsEmsPrtTestSuite/TestExecuteServers
+/os/unref/orphan/comgen/telephony/telephonytest/TestDriver/TelephonyTestSuites/NBProtocolsTestSuite/SmsStackTestSuite/SmsProtTestSuite/SmsPrtStressTestSuite/TestExecuteServers
+/os/unref/orphan/comgen/telephony/telephonytest/TestDriver/TelephonyTestSuites/NBProtocolsTestSuite/SmsStackTestSuite/SmsProtTestSuite/SmsPrtTestSuite/TestExecuteServers
+/os/unref/orphan/comgen/telephony/telephonytest/TestDriver/TelephonyTestSuites/NBProtocolsTestSuite/SmsStackTestSuite/SmsProtTestSuite/SmsStorTestSuite/TestExecuteServers
+/os/unref/orphan/comgen/telephony/telephonytest/TestDriver/TelephonyTestSuites/NBProtocolsTestSuite/SmsStackTestSuite/WapProtTestSuite/WapDGRMTestSuite/TestExecuteServers
+/os/unref/orphan/comgen/telephony/telephonytest/TestDriver/TelephonyTestSuites/NBProtocolsTestSuite/SmsStackTestSuite/WapProtTestSuite/WapPrtTestSuite/TestExecuteServers
+/os/unref/orphan/comgen/telephony/telephonytest/TestDriver/TelephonyTestSuites/NBProtocolsTestSuite/SmsStackTestSuite/WapProtTestSuite/WapTHDRTestSuite/TestExecuteServers
+/os/unref/orphan/comgen/telephony/telephonytest/TestDriver/TelephonyTestSuites/TelephonyTestSuite/DialTestSuite/TestExecuteServers
+/os/unref/orphan/comgen/telephony/telephonytest/TestDriver/TelephonyTestSuites/TelephonyTestSuite/EtelCDMATestSuite/TestExecuteServers
+/os/unref/orphan/comgen/telephony/telephonytest/TestDriver/TelephonyTestSuites/TelephonyTestSuite/EtelISVTestSuite/TestExecuteServers
+/os/unref/orphan/comgen/telephony/telephonytest/TestDriver/TelephonyTestSuites/TelephonyTestSuite/EtelMMTestSuite/TestExecuteServers
+/os/unref/orphan/comgen/telephony/telephonytest/TestDriver/TelephonyTestSuites/TelephonyTestSuite/EtelPacketTestSuite/TestExecuteServers
+/os/unref/orphan/comgen/telephony/telephonytest/TestDriver/TelephonyTestSuites/TelephonyTestSuite/EtelSatTestSuite/TestExecuteServers
+/os/unref/orphan/comgen/telephony/telephonytest/TestDriver/TelephonyTestSuites/TelephonyTestSuite/EtelTestSuite/TestExecuteServers
+/os/unref/orphan/comgen/telephony/telephonytest/TestDriver/TelephonyTestSuites/TelephonyTestSuite/FaxTestSuite/TestExecuteServers
+/os/unref/orphan/comgen/telephony/telephonytest/TestDriver/TelephonyTestSuites/TelephonyTestSuite/MMTSYTestSuite/LoopbackTestSuite/TestExecuteServers
+/os/unref/orphan/comgen/telephony/telephonytest/TestDriver/TelephonyTestSuites/TelephonyTestSuite/SimTSYTestSuite/SimDataTestSuite/TestExecuteServers
+/os/unref/orphan/comgen/telephony/telephonytest/TestDriver/TelephonyTestSuites/TelephonyTestSuite/SimTSYTestSuite/SimMiscTestSuite/TestExecuteServers
+/os/unref/orphan/comgen/telephony/telephonytest/TestDriver/TelephonyTestSuites/TelephonyTestSuite/SimTSYTestSuite/SimNetworkTestSuite/TestExecuteServers
+/os/unref/orphan/comgen/telephony/telephonytest/TestDriver/TelephonyTestSuites/TelephonyTestSuite/SimTSYTestSuite/SimPacketTestSuite/TestExecuteServers
+/os/unref/orphan/comgen/telephony/telephonytest/TestDriver/TelephonyTestSuites/TelephonyTestSuite/SimTSYTestSuite/SimPhBkTestSuite/TestExecuteServers
+/os/unref/orphan/comgen/telephony/telephonytest/TestDriver/TelephonyTestSuites/TelephonyTestSuite/SimTSYTestSuite/SimSSTestSuite/TestExecuteServers
+/os/unref/orphan/comgen/telephony/telephonytest/TestDriver/TelephonyTestSuites/TelephonyTestSuite/SimTSYTestSuite/SimSmsTestSuite/TestExecuteServers
+/os/unref/orphan/comgen/telephony/telephonytest/TestDriver/TelephonyTestSuites/TelephonyTestSuite/SimTSYTestSuite/SimTestSuite/TestExecuteServers
+/os/unref/orphan/comgen/telephony/telephonytest/TestDriver/TelephonyTestSuites/TelephonyTestSuite/SimTSYTestSuite/SimVoiceTestSuite/TestExecuteServers
+/os/unref/orphan/comgen/telephony/telephonytest/group
+/os/cellularsrv/hwpluginsimulation/mocksy/bwins
+/os/cellularsrv/hwpluginsimulation/mocksy/eabi
+/os/cellularsrv/hwpluginsimulation/mocksy/group
+/os/cellularsrv/hwpluginsimulation/mocksy/inc
+/os/cellularsrv/hwpluginsimulation/mocksy/src
+/os/unref/orphan/comgen/telephony/tools/RPS/Documentation
+/os/unref/orphan/comgen/telephony/tools/RPS/RPSCommon/Inc
+/os/unref/orphan/comgen/telephony/tools/RPS/RPSCommon/Src
+/os/unref/orphan/comgen/telephony/tools/RPS/RPSCommon/bwins
+/os/unref/orphan/comgen/telephony/tools/RPS/RPSCommon/eabi
+/os/unref/orphan/comgen/telephony/tools/RPS/RPSMaster/Inc
+/os/unref/orphan/comgen/telephony/tools/RPS/RPSMaster/Src
+/os/unref/orphan/comgen/telephony/tools/RPS/RPSMaster/bwins
+/os/unref/orphan/comgen/telephony/tools/RPS/RPSMaster/eabi
+/os/unref/orphan/comgen/telephony/tools/RPS/RPSSlave/Inc
+/os/unref/orphan/comgen/telephony/tools/RPS/RPSSlave/Src
+/os/unref/orphan/comgen/telephony/tools/RPS/UsageExample
+/os/unref/orphan/comgen/telephony/tools/RPS/group
+/os/commsfw/serialserver/muxcsy/agt/trpagt/bwins
+/os/commsfw/serialserver/muxcsy/agt/trpagt/group
+/os/commsfw/serialserver/muxcsy/agt/trpagt/inc
+/os/commsfw/serialserver/muxcsy/agt/trpagt/src
+/os/commsfw/serialserver/muxcsy/csy/csy27010/bwins
+/os/commsfw/serialserver/muxcsy/csy/csy27010/eabi
+/os/commsfw/serialserver/muxcsy/csy/csy27010/group
+/os/commsfw/serialserver/muxcsy/csy/csy27010/inc
+/os/commsfw/serialserver/muxcsy/csy/csy27010/src
+/os/commsfw/serialserver/muxcsy/csy/csy27010/test/rawIp27010Daemon/Documentation
+/os/commsfw/serialserver/muxcsy/csy/csy27010/test/rawIp27010Daemon/config
+/os/commsfw/serialserver/muxcsy/csy/csy27010/test/rawIp27010Daemon/src/baseband
+/os/commsfw/serialserver/muxcsy/csy/csy27010/test/rawIp27010Daemon/src/ip
+/os/commsfw/serialserver/muxcsy/csy/csy27010/test/rawIp27010Daemon/src/mux
+/os/commsfw/serialserver/muxcsy/documentation
+/os/commsfw/serialserver/muxcsy/exampleCommDBs
+/os/commsfw/serialserver/muxcsy/group/at
+/os/commsfw/serialserver/muxcsy/group/stubbed
+/os/commsfw/serialserver/muxcsy/nif/rawipnif/bwins
+/os/commsfw/serialserver/muxcsy/nif/rawipnif/eabi
+/os/commsfw/serialserver/muxcsy/nif/rawipnif/group
+/os/commsfw/serialserver/muxcsy/nif/rawipnif/inc
+/os/commsfw/serialserver/muxcsy/nif/rawipnif/src
+/os/commsfw/serialserver/muxcsy/test/quick_smoke/group
+/os/commsfw/serialserver/muxcsy/test/quick_smoke/inc
+/os/commsfw/serialserver/muxcsy/test/quick_smoke/src
+/os/commsfw/serialserver/muxcsy/test/simultaneous/group/at
+/os/commsfw/serialserver/muxcsy/test/simultaneous/group/stubbed
+/os/commsfw/serialserver/muxcsy/test/simultaneous/ini_files
+/os/commsfw/serialserver/muxcsy/test/smoke_test/group/stubbed
+/os/commsfw/serialserver/muxcsy/test/smoke_test/inc
+/os/commsfw/serialserver/muxcsy/test/smoke_test/src
+/os/commsfw/serialserver/muxcsy/test/tools/CSDModemScript
+/os/commsfw/serialserver/muxcsy/test/tools/DummyRemoteParty
+/os/commsfw/serialserver/muxcsy/test/tools/LogParsers
+/os/commsfw/serialserver/muxcsy/test/tools/PortRouter/cfg
+/os/commsfw/serialserver/muxcsy/test/tools/PortRouter/inc
+/os/commsfw/serialserver/muxcsy/test/tools/PortRouter/rom
+/os/commsfw/serialserver/muxcsy/test/tools/PortRouter/src
+/os/commsfw/serialserver/muxcsy/test/tools/group
+/os/commsfw/serialserver/muxcsy/test/unit_test_base
+/os/commsfw/serialserver/muxcsy/tsy/at/bwins
+/os/commsfw/serialserver/muxcsy/tsy/at/commands/calls/inc
+/os/commsfw/serialserver/muxcsy/tsy/at/commands/calls/src
+/os/commsfw/serialserver/muxcsy/tsy/at/commands/gprs/inc
+/os/commsfw/serialserver/muxcsy/tsy/at/commands/gprs/src
+/os/commsfw/serialserver/muxcsy/tsy/at/commands/msg/inc
+/os/commsfw/serialserver/muxcsy/tsy/at/commands/msg/src
+/os/commsfw/serialserver/muxcsy/tsy/at/commands/phone/inc
+/os/commsfw/serialserver/muxcsy/tsy/at/commands/phone/src
+/os/commsfw/serialserver/muxcsy/tsy/at/commands/phonebook/inc
+/os/commsfw/serialserver/muxcsy/tsy/at/commands/phonebook/src
+/os/commsfw/serialserver/muxcsy/tsy/at/commands/sat/inc
+/os/commsfw/serialserver/muxcsy/tsy/at/commands/sat/src
+/os/commsfw/serialserver/muxcsy/tsy/at/commands/sim/inc
+/os/commsfw/serialserver/muxcsy/tsy/at/commands/sim/src
+/os/commsfw/serialserver/muxcsy/tsy/at/dispatch/inc
+/os/commsfw/serialserver/muxcsy/tsy/at/dispatch/src
+/os/commsfw/serialserver/muxcsy/tsy/at/eabi
+/os/commsfw/serialserver/muxcsy/tsy/at/helpers/inc
+/os/commsfw/serialserver/muxcsy/tsy/at/helpers/src
+/os/commsfw/serialserver/muxcsy/tsy/at/subsessions/inc
+/os/commsfw/serialserver/muxcsy/tsy/at/subsessions/src
+/os/commsfw/serialserver/muxcsy/tsy/generic/dispatch/inc
+/os/commsfw/serialserver/muxcsy/tsy/generic/dispatch/src
+/os/commsfw/serialserver/muxcsy/tsy/generic/helpers/inc
+/os/commsfw/serialserver/muxcsy/tsy/generic/helpers/src
+/os/commsfw/serialserver/muxcsy/tsy/generic/subsessions/inc
+/os/commsfw/serialserver/muxcsy/tsy/generic/subsessions/src
+/os/commsfw/serialserver/muxcsy/tsy/group/at
+/os/commsfw/serialserver/muxcsy/tsy/group/icera
+/os/commsfw/serialserver/muxcsy/tsy/group/stubbed
+/os/commsfw/serialserver/muxcsy/tsy/stubbed/bwins
+/os/commsfw/serialserver/muxcsy/tsy/stubbed/dispatch/inc
+/os/commsfw/serialserver/muxcsy/tsy/stubbed/dispatch/src
+/os/commsfw/serialserver/muxcsy/tsy/stubbed/eabi
+/os/commsfw/serialserver/muxcsy/tsy/stubbed/helpers/inc
+/os/commsfw/serialserver/muxcsy/tsy/stubbed/helpers/src
+/os/commsfw/serialserver/muxcsy/tsy/stubbed/subsessions/inc
+/os/commsfw/serialserver/muxcsy/tsy/stubbed/subsessions/src
+/os/commsfw/serialserver/muxcsy/tsy/test/TE_Trp100PcCoverage
+/os/commsfw/serialserver/muxcsy/tsy/test/TE_TrpAdvCall
+/os/commsfw/serialserver/muxcsy/tsy/test/TE_TrpBasicCall
+/os/commsfw/serialserver/muxcsy/tsy/test/TE_TrpCellBroadcast
+/os/commsfw/serialserver/muxcsy/tsy/test/TE_TrpConference
+/os/commsfw/serialserver/muxcsy/tsy/test/TE_TrpCphs
+/os/commsfw/serialserver/muxcsy/tsy/test/TE_TrpCsdData
+/os/commsfw/serialserver/muxcsy/tsy/test/TE_TrpCsdMultimedia
+/os/commsfw/serialserver/muxcsy/tsy/test/TE_TrpEtelISV
+/os/commsfw/serialserver/muxcsy/tsy/test/TE_TrpMultiCall
+/os/commsfw/serialserver/muxcsy/tsy/test/TE_TrpNetworkHandling
+/os/commsfw/serialserver/muxcsy/tsy/test/TE_TrpPacketData
+/os/commsfw/serialserver/muxcsy/tsy/test/TE_TrpPhone
+/os/commsfw/serialserver/muxcsy/tsy/test/TE_TrpPhonebook
+/os/commsfw/serialserver/muxcsy/tsy/test/TE_TrpSat
+/os/commsfw/serialserver/muxcsy/tsy/test/TE_TrpSecurity
+/os/commsfw/serialserver/muxcsy/tsy/test/TE_TrpSmartCard
+/os/commsfw/serialserver/muxcsy/tsy/test/TE_TrpSms
+/os/commsfw/serialserver/muxcsy/tsy/test/TE_TrpSs
+/os/commsfw/serialserver/muxcsy/tsy/test/TE_TrpUSSD
+/os/commsfw/serialserver/muxcsy/tsy/test/common
+/os/commsfw/serialserver/muxcsy/tsy/test/data
+/os/commsfw/serialserver/muxcsy/tsy/test/group
+/os/commsfw/serialserver/muxcsy/tsy/test/scripts/autotestscripts
+/os/commsfw/serialserver/muxcsy/tsy/test/scripts/mantestscripts
+/os/commsfw/serialserver/muxcsy/tsy/test/scripts/runnablescripts
+/os/commsfw/serialserver/muxcsy/tsy/test/scripts/setupscripts
+/os/commsfw/serialserver/muxcsy/tsy/unit_test/generic/Conference
+/os/commsfw/serialserver/muxcsy/tsy/unit_test/generic/ExtMessaging/CellBroadcast
+/os/commsfw/serialserver/muxcsy/tsy/unit_test/generic/ExtMessaging/USSD
+/os/commsfw/serialserver/muxcsy/tsy/unit_test/generic/Security
+/os/commsfw/serialserver/muxcsy/tsy/unit_test/generic/calls/advcall
+/os/commsfw/serialserver/muxcsy/tsy/unit_test/generic/calls/basiccall
+/os/commsfw/serialserver/muxcsy/tsy/unit_test/generic/calls/multicall
+/os/commsfw/serialserver/muxcsy/tsy/unit_test/generic/cphs
+/os/commsfw/serialserver/muxcsy/tsy/unit_test/generic/data/circuit_switched
+/os/commsfw/serialserver/muxcsy/tsy/unit_test/generic/data/multimedia_csd
+/os/commsfw/serialserver/muxcsy/tsy/unit_test/generic/data/packet_switched
+/os/commsfw/serialserver/muxcsy/tsy/unit_test/generic/func100pc
+/os/commsfw/serialserver/muxcsy/tsy/unit_test/generic/network_handling
+/os/commsfw/serialserver/muxcsy/tsy/unit_test/generic/phone
+/os/commsfw/serialserver/muxcsy/tsy/unit_test/generic/phonebook
+/os/commsfw/serialserver/muxcsy/tsy/unit_test/generic/sim/Sat
+/os/commsfw/serialserver/muxcsy/tsy/unit_test/generic/sms
+/os/commsfw/serialserver/muxcsy/tsy/unit_test/generic/ss
+/os/commsfw/serialserver/muxcsy/tsy/unit_test/generic/template
+/os/commsfw/serialserver/muxcsy/tsy/unit_test/group/at
+/os/commsfw/serialserver/muxcsy/tsy/unit_test/group/stubbed
+/os/commsfw/serialserver/muxcsy/utils/inc
+/os/commsfw/serialserver/muxcsy/utils/src
+/os/cellularsrv/telephonyutils/telephonywatchers/Documentation
+/os/cellularsrv/telephonyutils/telephonywatchers/Test/TE_TelWatchers
+/os/cellularsrv/telephonyutils/telephonywatchers/Test/bwins
+/os/cellularsrv/telephonyutils/telephonywatchers/bwins
+/os/cellularsrv/telephonyutils/telephonywatchers/eabi
+/os/cellularsrv/telephonyutils/telephonywatchers/group
+/os/cellularsrv/telephonyutils/telephonywatchers/inc
+/os/cellularsrv/telephonyutils/telephonywatchers/src
+/os/buildtools/toolsandutils/autotest/Docs
+/os/buildtools/toolsandutils/autotest/Test
+/os/buildtools/toolsandutils/autotest/bmarm
+/os/buildtools/toolsandutils/autotest/bwins
+/os/buildtools/toolsandutils/autotest/eabi
+/os/buildtools/toolsandutils/autotest/group
+/os/buildtools/toolsandutils/autotest/inc
+/os/buildtools/toolsandutils/autotest/src
+/os/buildtools/misccomponents/bspbuilder/group
+/os/buildtools/bldsystemtools/buildsystemtools/SysDefToText
+/os/buildtools/bldsystemtools/buildsystemtools/docs
+/os/buildtools/bldsystemtools/buildsystemtools/genbuild
+/os/buildtools/bldsystemtools/buildsystemtools/group
+/os/buildtools/bldsystemtools/buildsystemtools/lib/Date
+/os/buildtools/bldsystemtools/buildsystemtools/lib/Parse/Yapp
+/os/buildtools/bldsystemtools/buildsystemtools/lib/XML/Checker
+/os/buildtools/bldsystemtools/buildsystemtools/lib/XML/DOM
+/os/buildtools/bldsystemtools/buildsystemtools/lib/XML/Filter
+/os/buildtools/bldsystemtools/buildsystemtools/lib/XML/Handler
+/os/buildtools/bldsystemtools/buildsystemtools/lib/XML/Parser
+/os/buildtools/bldsystemtools/buildsystemtools/lib/XML/XQL
+/os/buildtools/bldsystemtools/buildsystemtools/lib/freezethaw
+/os/buildtools/bldsystemtools/buildsystemtools/lib/src
+/os/buildtools/bldsystemtools/buildsystemtools/old
+/os/buildtools/bldsystemtools/buildsystemtools/scanlog
+/os/buildtools/bldsystemtools/buildsystemtools/variability/framework/lib
+/os/buildtools/bldsystemtools/buildsystemtools/variability/framework/schemas
+/os/buildtools/bldsystemtools/buildsystemtools/variability/framework/xsl
+/os/buildtools/bldsystemtools/buildsystemtools/variability/guide/VariabilityTools_files
+/os/buildtools/bldsystemtools/buildsystemtools/variability/vp_data/bindings/rom_bindings/9.5
+/os/buildtools/bldsystemtools/buildsystemtools/variability/vp_data/bindings/rom_bindings/9.6
+/os/buildtools/bldsystemtools/buildsystemtools/variability/vp_data/bindings/rom_bindings/future
+/os/buildtools/bldsystemtools/buildsystemtools/variability/vp_data/templates
+/os/buildtools/bldsystemtools/buildsystemtools/variability/vp_data/variation_points/Product
+/os/buildtools/bldsystemtools/buildsystemtools/variability/vp_data/variation_points/ProductTest
+/os/buildtools/bldsystemtools/buildsystemtools/variability/vp_data/variation_points/Symbian
+/os/buildtools/bldsystemtools/buildsystemtools/variability/vp_data/variation_points/SymbianTest
+/os/buildtools/packaging/dummy
+/os/buildtools/packaging/additionalutils
+/os/buildtools/toolsandutils/prf/group
+/os/buildtools/toolsandutils/prf/perl/bin
+/os/buildtools/toolsandutils/prf/perl/lib/Symbian/CBR/Archive
+/os/buildtools/toolsandutils/prf/perl/lib/Symbian/PRF/CBR
+/os/buildtools/toolsandutils/prf/perl/lib/Symbian/PRF/List
+/os/buildtools/toolsandutils/prf/test/Symbian
+/os/buildtools/toolsandutils/cbrtools/NSIS
+/os/buildtools/toolsandutils/cbrtools/docs/Example/HelloWorld/group
+/os/buildtools/toolsandutils/cbrtools/docs/Example/HelloWorld/inc
+/os/buildtools/toolsandutils/cbrtools/docs/Example/HelloWorld/src
+/os/buildtools/toolsandutils/cbrtools/docs/source/InstallationGuide
+/os/buildtools/toolsandutils/cbrtools/docs/source/UserGuide
+/os/buildtools/toolsandutils/cbrtools/group
+/os/buildtools/toolsandutils/cbrtools/perl/Archive/Zip
+/os/buildtools/toolsandutils/cbrtools/perl/Class
+/os/buildtools/toolsandutils/cbrtools/perl/Crypt
+/os/buildtools/toolsandutils/cbrtools/perl/Digest/Perl
+/os/buildtools/toolsandutils/cbrtools/perl/MLDBM/Serializer/Data
+/os/buildtools/toolsandutils/cbrtools/perl/Net/FTP
+/os/buildtools/toolsandutils/cbrtools/perl/PathData
+/os/buildtools/toolsandutils/cbrtools/perl/RelTransfer
+/os/buildtools/toolsandutils/cbrtools/perl/RemoteSite/FTP/Proxy
+/os/buildtools/toolsandutils/cbrtools/perl/RemoteSite/NetDrive
+/os/buildtools/toolsandutils/cbrtools/perl/Symbian/CBR/Component
+/os/buildtools/toolsandutils/cbrtools/perl/Symbian/CBR/DeltaRelease
+/os/buildtools/toolsandutils/cbrtools/perl/Symbian/CBR/IPR
+/os/buildtools/toolsandutils/cbrtools/perl/Symbian/CBR/MRP
+/os/buildtools/toolsandutils/cbrtools/perl/Symbian/CBR/Release
+/os/buildtools/toolsandutils/cbrtools/perl/Symbian/DistributionPolicy
+/os/buildtools/toolsandutils/cbrtools/perl/TableFormatter
+/os/buildtools/toolsandutils/cbrtools/perl/Text
+/os/buildtools/toolsandutils/cbrtools/zdelta
+/os/osrndtools/testexecfw1/cinidata/Documentation
+/os/osrndtools/testexecfw1/cinidata/defs/arm4
+/os/osrndtools/testexecfw1/cinidata/defs/eabi
+/os/osrndtools/testexecfw1/cinidata/defs/wins
+/os/osrndtools/testexecfw1/cinidata/inc
+/os/osrndtools/testexecfw1/cinidata/src
+/os/osrndtools/testexecfw1/cinidata/te_CInidata/Documentation
+/os/osrndtools/testexecfw1/cinidata/te_CInidata/group
+/os/osrndtools/testexecfw1/cinidata/te_CInidata/scripts
+/os/osrndtools/testexecfw1/cinidata/te_CInidata/src
+/os/osrndtools/testexecfw1/cinidata/te_CInidata/testdata
+/os/osrndtools/testexecfw1/cinidata/tsrc
+/os/unref/orphan/comgen/tools/custkits/NavigationPages/Documents
+/os/unref/orphan/comgen/tools/custkits/NavigationPages/Graphics
+/os/buildtools/toolsandutils/productinstaller/Messages
+/os/buildtools/toolsandutils/productinstaller/com/symbian/sdk/productinstaller/graphics
+/os/buildtools/toolsandutils/productinstaller/group
+/os/buildtools/toolsandutils/productinstaller/pkgdef
+/os/buildtools/toolsandutils/productinstaller/src/com/symbian/sdk/productinstaller
+/os/persistentdata/traceservices/tracefw/api/group
+/os/persistentdata/traceservices/tracefw/api/inc
+/os/persistentdata/traceservices/tracefw/api/test/te-utrace/group
+/os/persistentdata/traceservices/tracefw/api/test/te-utrace/scripts
+/os/persistentdata/traceservices/tracefw/api/test/te-utrace/src/bwins
+/os/persistentdata/traceservices/tracefw/api/test/te-utrace/src/devicedriver
+/os/persistentdata/traceservices/tracefw/api/test/te-utrace/src/eabi
+/os/persistentdata/traceservices/tracefw/api/test/te-utrace/testdata
+/os/persistentdata/traceservices/tracefw/dictionary
+/os/persistentdata/traceservices/tracefw/documentation
+/os/persistentdata/traceservices/tracefw/test/TEF/device-driver
+/os/persistentdata/traceservices/tracefw/test/TEF/group
+/os/persistentdata/traceservices/tracefw/test/TEF/scripts
+/os/persistentdata/traceservices/tracefw/test/TEF/testplugin
+/os/persistentdata/traceservices/tracefw/test/TEF/ulogger/performance
+/os/persistentdata/traceservices/tracefw/ulogger/BWINS
+/os/persistentdata/traceservices/tracefw/ulogger/EABI
+/os/persistentdata/traceservices/tracefw/ulogger/group
+/os/persistentdata/traceservices/tracefw/ulogger/inc
+/os/persistentdata/traceservices/tracefw/ulogger/src/client
+/os/persistentdata/traceservices/tracefw/ulogger/src/command
+/os/persistentdata/traceservices/tracefw/ulogger/src/outfrwkchans/file
+/os/persistentdata/traceservices/tracefw/ulogger/src/outfrwkchans/serial
+/os/persistentdata/traceservices/tracefw/ulogger/src/pluginframework
+/os/persistentdata/traceservices/tracefw/ulogger/src/sysconfig
+/os/persistentdata/traceservices/tracefw/ulogger/src/sysstarter
+/os/persistentdata/traceservices/tracefw/ulogger/src/uloggerserver
+/os/persistentdata/traceservices/tracefw/ulogger/test/group
+/os/persistentdata/traceservices/tracefw/ulogger/test/scripts
+/os/persistentdata/traceservices/tracefw/ulogger/test/te-client
+/os/persistentdata/traceservices/tracefw/ulogger/test/te-createconfig
+/os/persistentdata/traceservices/tracefw/ulogger/test/te-outfrwk
+/os/persistentdata/traceservices/tracefw/ulogger/test/te-outfrwkchans/te-file
+/os/persistentdata/traceservices/tracefw/ulogger/test/te-outfrwkchans/te-serial
+/os/persistentdata/traceservices/tracefw/ulogger/test/te-server
+/os/persistentdata/traceservices/tracefw/ulogger/test/te-sysconfig
+/os/persistentdata/traceservices/tracefw/ulogger/test/te-sysstart/resource/armv5
+/os/persistentdata/traceservices/tracefw/ulogger/test/te-sysstart/resource/wins
+/os/persistentdata/traceservices/tracefw/ulogger/test/utils/lightlogger
+/os/buildtools/binanamdw_os/depcheck
+/os/buildtools/toolsandutils/dependencymodeller/Symbian
+/os/buildtools/toolsandutils/dependencymodeller/documentation
+/os/buildtools/toolsandutils/dependencymodeller/group
+/os/buildtools/toolsandutils/dependencymodeller/htmlSrcFiles
+/os/buildtools/toolsandutils/dependencymodeller/input
+/os/buildtools/toolsandutils/dependencymodeller/installed/Dot
+/os/buildtools/toolsandutils/dependencymodeller/installed/GCCBinUtils
+/os/buildtools/toolsandutils/dependencymodeller/installed/Perl/Array
+/os/buildtools/toolsandutils/dependencymodeller/installed/Perl/Data/DumpXML
+/os/buildtools/toolsandutils/dependencymodeller/installed/Perl/Graph
+/os/buildtools/toolsandutils/dependencymodeller/installed/Perl/GraphViz/Data
+/os/buildtools/toolsandutils/dependencymodeller/installed/Perl/GraphViz/Parse
+/os/buildtools/toolsandutils/dependencymodeller/installed/Perl/Heap/Elem
+/os/buildtools/toolsandutils/dependencymodeller/installed/Perl/IPC/run
+/os/buildtools/toolsandutils/dependencymodeller/installed/Perl/Math
+/os/buildtools/toolsandutils/dependencymodeller/installed/Perl/Text
+/os/buildtools/toolsandutils/dependencymodeller/installed/Perl/auto/Array/RefElem
+/os/buildtools/toolsandutils/dependencymodeller/installed/Perl/auto/Data/Dumper
+/os/buildtools/toolsandutils/dependencymodeller/installed/Perl/auto/Text/CSV_XS
+/os/buildtools/toolsandutils/kitsetupapp/Component Definitions
+/os/buildtools/toolsandutils/kitsetupapp/File Groups
+/os/buildtools/toolsandutils/kitsetupapp/Media/Default
+/os/buildtools/toolsandutils/kitsetupapp/Registry Entries
+/os/buildtools/toolsandutils/kitsetupapp/Script Files
+/os/buildtools/toolsandutils/kitsetupapp/Setup Files/Compressed Files/0009-English/Intel 32
+/os/buildtools/toolsandutils/kitsetupapp/Setup Files/Compressed Files/Language Independent/Intel 32
+/os/buildtools/toolsandutils/kitsetupapp/Setup Files/Compressed Files/Language Independent/OS Independent
+/os/buildtools/toolsandutils/kitsetupapp/Setup Files/Uncompressed Files/Disk1
+/os/buildtools/toolsandutils/kitsetupapp/Shell Objects
+/os/buildtools/toolsandutils/kitsetupapp/String Tables/0009-English
+/os/buildtools/toolsandutils/kitsetupapp/Text Substitutions
+/os/buildtools/toolsandutils/kitsetupapp/group
+/os/buildtools/bintools_os/evalid
+/os/buildtools/bintools_os/rcomp/group
+/os/buildtools/bintools_os/rcomp/inc/loc
+/os/buildtools/bintools_os/rcomp/src
+/os/buildtools/bintools_os/rcomp/tsrc/localisation/rsc-files
+/os/buildtools/perltoolsplat_os/redistribution/gcc
+/os/buildtools/perltoolsplat_os/redistribution/gcc_mingw
+/os/buildtools/perltoolsplat_os/redistribution/gcce
+/os/buildtools/perltoolsplat_os/redistribution/gccxml
+/os/buildtools/perltoolsplat_os/redistribution/java
+/os/buildtools/perltoolsplat_os/redistribution/perl
+/os/buildtools/perltoolsplat_os/redistribution/zip
+/os/ossrv/genericservices/s60compatibilityheaders/activitymanager
+/os/ossrv/genericservices/s60compatibilityheaders/commonengine/EABI
+/os/ossrv/genericservices/s60compatibilityheaders/commonengine/bwins
+/os/ossrv/genericservices/s60compatibilityheaders/commonengine/group
+/os/ossrv/genericservices/s60compatibilityheaders/commonengine/inc
+/os/ossrv/genericservices/s60compatibilityheaders/commonengine/rom
+/os/ossrv/genericservices/s60compatibilityheaders/commonengine/src
+/os/ossrv/genericservices/s60compatibilityheaders/commonengineresources/data
+/os/ossrv/genericservices/s60compatibilityheaders/commonengineresources/group
+/os/ossrv/genericservices/s60compatibilityheaders/commonengineresources/inc
+/os/ossrv/genericservices/s60compatibilityheaders/commonengineresources/rom
+/os/ossrv/genericservices/s60compatibilityheaders/commonengineresources/src
+/os/ossrv/genericservices/s60compatibilityheaders/commontsy/conf
+/os/ossrv/genericservices/s60compatibilityheaders/featmgr
+/os/ossrv/genericservices/s60compatibilityheaders/group
+/os/ossrv/genericservices/s60compatibilityheaders/group94
+/os/ossrv/genericservices/s60compatibilityheaders/group95
+/os/ossrv/genericservices/s60compatibilityheaders/group96
+/os/ossrv/genericservices/s60compatibilityheaders/groupfuture
+/os/ossrv/genericservices/s60compatibilityheaders/hwrm/conf
+/os/ossrv/genericservices/s60compatibilityheaders/isc
+/os/ossrv/genericservices/s60compatibilityheaders/lbs/conf
+/os/ossrv/genericservices/s60compatibilityheaders/multipartparser
+/os/ossrv/genericservices/s60compatibilityheaders/sensors/sensorframework/conf
+/os/ossrv/genericservices/s60compatibilityheaders/sysutil/conf
+/os/ossrv/genericservices/s60compatibilityheaders/xmlengine
+/os/buildtools/toolsandutils/navigationpages/Documents
+/os/buildtools/toolsandutils/navigationpages/Graphics
+/os/buildtools/misccomponents/sdkbuilder/Nsis
+/os/buildtools/misccomponents/sdkbuilder/documentation
+/os/buildtools/misccomponents/sdkbuilder/group
+/os/buildtools/misccomponents/sdkbuilder/perl/bin
+/os/buildtools/misccomponents/sdkbuilder/perl/lib/Symbian/Config
+/os/buildtools/misccomponents/sdkbuilder/perl/lib/Symbian/DistributionPolicy
+/os/buildtools/misccomponents/sdkbuilder/perl/lib/Symbian/File
+/os/buildtools/misccomponents/sdkbuilder/perl/lib/Symbian/Logger
+/os/buildtools/misccomponents/sdkbuilder/perl/lib/Symbian/PrepInstallerMaker/ContentManager
+/os/buildtools/misccomponents/sdkbuilder/perl/lib/Symbian/SDK/ContentDefinitionFile
+/os/buildtools/misccomponents/sdkbuilder/perl/lib/Symbian/SDK/FilterTool
+/os/buildtools/misccomponents/sdkbuilder/perl/lib/Symbian/SDK/Validate/Logger
+/os/buildtools/misccomponents/sdkbuilder/perl/lib/Symbian/SDK/Validate/Parser
+/os/buildtools/misccomponents/sdkbuilder/perl/lib/Symbian/SDK/Validate/Runner
+/os/buildtools/misccomponents/sdkbuilder/perl/lib/Symbian/SDK/Validate/Utility
+/os/buildtools/misccomponents/sdkbuilder/perl/lib/Symbian/SystemDefinition
+/os/buildtools/misccomponents/sdkbuilder/perl/lib/Symbian/XML/Simple
+/os/buildtools/misccomponents/sdkbuilder/test/SDKValidation/BuildExamples
+/os/buildtools/misccomponents/sdkbuilder/test/SDKValidation/FileChecks
+/os/buildtools/misccomponents/sdkbuilder/test/SDKValidation/SimpleChecks_M
+/os/buildtools/misccomponents/sdkbuilder/test/component/SdkValComponentTests/ComponentTest_01
+/os/buildtools/misccomponents/sdkbuilder/test/component/SdkValComponentTests/ComponentTest_02
+/os/buildtools/misccomponents/sdkbuilder/test/component/SdkValComponentTests/ComponentTest_03
+/os/buildtools/misccomponents/sdkbuilder/test/component/SdkValComponentTests/ComponentTest_04
+/os/buildtools/misccomponents/sdkbuilder/test/component/SdkValComponentTests/ComponentTest_05
+/os/buildtools/misccomponents/sdkbuilder/test/component/SdkValComponentTests/ComponentTest_M01
+/os/buildtools/misccomponents/sdkbuilder/test/unit
+/os/buildtools/fileconv/alp2csh/docs
+/os/buildtools/fileconv/alp2csh/dspec
+/os/buildtools/fileconv/alp2csh/group
+/os/buildtools/fileconv/alp2csh/perl
+/os/buildtools/fileconv/alp2csh/test/baseline/stdout
+/os/buildtools/fileconv/alp2csh/test/baseline/testresults
+/os/buildtools/misccomponents/assertion/bin
+/os/buildtools/misccomponents/assertion/group
+/os/buildtools/misccomponents/assertion/src/com/symbian/sdk/util/assertion
+/os/buildtools/sbsv1_os/bldtools/group
+/os/buildtools/sbsv1_os/bldtools/src
+/os/buildtools/fileconv/cjpeg/INC
+/os/buildtools/fileconv/cjpeg/doc
+/os/buildtools/fileconv/cjpeg/dspec
+/os/buildtools/fileconv/cjpeg/group
+/os/buildtools/fileconv/cjpeg/src
+/os/buildtools/fileconv/cjpeg/test/orig
+/app/helps/symhelp/cshlpcmpbackend/bwins
+/app/helps/symhelp/cshlpcmpbackend/csbmsto
+/app/helps/symhelp/cshlpcmpbackend/csdbcust
+/app/helps/symhelp/cshlpcmpbackend/csdbi
+/app/helps/symhelp/cshlpcmpbackend/csdbw
+/app/helps/symhelp/cshlpcmpbackend/cshlpwtr
+/app/helps/symhelp/cshlpcmpbackend/cssup
+/app/helps/symhelp/cshlpcmpbackend/cstest
+/app/helps/symhelp/cshlpcmpbackend/dspec
+/app/helps/symhelp/cshlpcmpbackend/group
+/app/helps/symhelp/cshlpcmpbackend/inc
+/app/helps/symhelp/cshlpcmpbackend/tsrc
+/app/helps/symhelp/cshlpcmpbackend/xmllx
+/app/helps/symhelp/cshlpcmpfrontend/doc
+/app/helps/symhelp/cshlpcmpfrontend/dspec/xml
+/app/helps/symhelp/cshlpcmpfrontend/dtd
+/app/helps/symhelp/cshlpcmpfrontend/group
+/app/helps/symhelp/cshlpcmpfrontend/perl
+/app/helps/symhelp/cshlpcmpfrontend/template
+/app/helps/symhelp/cshlpcmpfrontend/test/baseline
+/app/helps/symhelp/cshlpcmpfrontend/test/pictures
+/app/helps/symhelp/cshlpcmpfrontend/xsl
+/app/helps/symhelp/cshlpcmpgui/com/symbian/sdk/cshlpcmp/graphics
+/app/helps/symhelp/cshlpcmpgui/com/symbian/sdk/cshlpcmp/help/Dialog_Help
+/app/helps/symhelp/cshlpcmpgui/com/symbian/sdk/cshlpcmp/help/Menu_Help
+/app/helps/symhelp/cshlpcmpgui/group
+/app/helps/symhelp/cshlpcmpgui/src/com/symbian/sdk/cshlpcmp
+/os/buildtools/misccomponents/emulatorlauncher/group
+/os/buildtools/misccomponents/emulatorlauncher/perl
+/os/buildtools/misccomponents/emulatorlauncher/src
+/os/buildtools/misccomponents/emulatorlauncher/test
+/os/buildtools/misccomponents/enum/codeTemplate
+/os/buildtools/misccomponents/enum/group
+/os/buildtools/misccomponents/enum/src/com/symbian/sdk/util/enum
+/os/buildtools/misccomponents/enum/tsrc/com/symbian/sdk/util/test/tenum
+/os/buildtools/misccomponents/envvar/bin
+/os/buildtools/misccomponents/envvar/group
+/os/buildtools/misccomponents/envvar/src/com/symbian/sdk/util/envvar
+/os/buildtools/misccomponents/envvar/win32-native
+/os/buildtools/misccomponents/filesys/group
+/os/buildtools/misccomponents/filesys/src/com/symbian/sdk/util/filesys
+/os/buildtools/misccomponents/filesys/win32-native
+/os/buildtools/misccomponents/installutils/bin
+/os/buildtools/misccomponents/installutils/group
+/os/buildtools/misccomponents/installutils/src/com/symbian/sdk/util/InstallUtils
+/os/buildtools/misccomponents/installutils/win32-native
+/os/buildtools/misccomponents/jade/group
+/os/buildtools/misccomponents/jade/jade-1_3_2-modif/res
+/os/buildtools/misccomponents/jade/jade-1_3_2-modif/src/com/dautelle/html
+/os/buildtools/misccomponents/jade/jade-1_3_2-modif/src/com/dautelle/math
+/os/buildtools/misccomponents/jade/jade-1_3_2-modif/src/com/dautelle/quantity
+/os/buildtools/misccomponents/jade/jade-1_3_2-modif/src/com/dautelle/util
+/os/buildtools/misccomponents/jade/jade-1_3_2-modif/src/com/dautelle/xml
+/os/buildtools/misccomponents/jade/jade-1_3_2-modif/web
+/os/buildtools/misccomponents/javahelp/group
+/os/buildtools/misccomponents/javahelp/src/com/symbian/sdk/util/javahelp
+/os/buildtools/javatoolsplat/javalib/disclaimer
+/os/buildtools/javatoolsplat/javalib/doc
+/os/buildtools/javatoolsplat/javalib/group
+/os/buildtools/javatoolsplat/javalib/jars
+/os/buildtools/misccomponents/langconfig/bin
+/os/buildtools/misccomponents/langconfig/group
+/os/buildtools/misccomponents/langconfig/src/com/symbian/sdk/util/langconfig
+/os/buildtools/misccomponents/langconfig/test
+/os/buildtools/misccomponents/launch/bin
+/os/buildtools/misccomponents/launch/group
+/os/buildtools/misccomponents/logger/group
+/os/buildtools/misccomponents/logger/src/com/symbian/sdk/util/logger
+/os/buildtools/misccomponents/logger/tsrc/com/symbian/sdk/util/test/tlogger
+/app/helps/symhelp/mbmcodec/graphics
+/app/helps/symhelp/mbmcodec/group
+/app/helps/symhelp/mbmcodec/src/com/symbian/sdk/util/MbmCodec
+/app/helps/symhelp/mbmcodec/test
+/app/helps/symhelp/mbmcodec/tsrc/graphics
+/os/buildtools/misccomponents/mnemonicfix/bin
+/os/buildtools/misccomponents/mnemonicfix/group
+/os/buildtools/misccomponents/mnemonicfix/src/com/symbian/sdk/component/mnemonicfix
+/os/buildtools/misccomponents/pathbrowser/com/symbian/sdk/component/pathbrowser/graphics
+/os/buildtools/misccomponents/pathbrowser/group
+/os/buildtools/misccomponents/pathbrowser/src/com/symbian/sdk/component/pathbrowser
+/os/buildtools/perltoolsplat_os/commonperl/group
+/os/buildtools/perltoolsplat_os/commonperl/perl/lib/Class
+/os/buildtools/perltoolsplat_os/commonperl/perl/lib/Symbian/GenericFilter/DataCollector
+/os/buildtools/perltoolsplat_os/commonperl/perl/lib/Symbian/GenericFilter/Rule/Param
+/os/buildtools/perltoolsplat_os/commonperl/perl/lib/Symbian/PRF
+/os/buildtools/perltoolsplat_os/commonperl/perl/lib/Symbian/XML
+/os/buildtools/perltoolsplat_os/commonperl/perl/lib/XML/Checker
+/os/buildtools/perltoolsplat_os/commonperl/test/Symbian/GenericFilter/DataCollector/Test
+/os/buildtools/perltoolsplat_os/legacycommonperl/docs/LIBRARY
+/os/buildtools/perltoolsplat_os/legacycommonperl/docs/XML/XML/Checker
+/os/buildtools/perltoolsplat_os/legacycommonperl/docs/XML/XML/DOM
+/os/buildtools/perltoolsplat_os/legacycommonperl/docs/XML/XML/Filter
+/os/buildtools/perltoolsplat_os/legacycommonperl/docs/XML/XML/Parser
+/os/buildtools/perltoolsplat_os/legacycommonperl/docs/XML/XML/XQL
+/os/buildtools/perltoolsplat_os/legacycommonperl/dspec
+/os/buildtools/perltoolsplat_os/legacycommonperl/group
+/os/buildtools/perltoolsplat_os/legacycommonperl/perl/XML/Checker
+/os/buildtools/perltoolsplat_os/legacycommonperl/perl/XML/DOM
+/os/buildtools/perltoolsplat_os/legacycommonperl/perl/XML/Filter
+/os/buildtools/perltoolsplat_os/legacycommonperl/perl/XML/XQL
+/os/buildtools/perltoolsplat_os/legacycommonperl/tperl
+/os/buildtools/misccomponents/pkgmgrgui/classes/com/symbian/sdk/pkgmgr/gui/graphics
+/os/buildtools/misccomponents/pkgmgrgui/group
+/os/buildtools/misccomponents/pkgmgrgui/src/com/symbian/sdk/pkgmgr/gui
+/os/buildtools/fileconv/rtf2ptml/doc
+/os/buildtools/fileconv/rtf2ptml/dspec
+/os/buildtools/fileconv/rtf2ptml/dtd
+/os/buildtools/fileconv/rtf2ptml/group
+/os/buildtools/fileconv/rtf2ptml/inc
+/os/buildtools/fileconv/rtf2ptml/src
+/os/buildtools/fileconv/rtf2ptml/test/baseline
+/os/buildtools/misccomponents/runperl/group
+/os/buildtools/misccomponents/runperl/win32-native
+/os/buildtools/misccomponents/sdkinfo/group
+/os/buildtools/misccomponents/sdkinfo/src/com/symbian/sdk/util/sdkinfo
+/os/buildtools/misccomponents/sdkinfo/test
+/os/buildtools/misccomponents/sdkpackagemgr/bin
+/os/buildtools/misccomponents/sdkpackagemgr/doc
+/os/buildtools/misccomponents/sdkpackagemgr/etc
+/os/buildtools/misccomponents/sdkpackagemgr/group
+/os/buildtools/misccomponents/sdkpackagemgr/pkgmgrlauncher
+/os/buildtools/misccomponents/sdkpackagemgr/sdkpkg-managerUML
+/os/buildtools/misccomponents/sdkpackagemgr/src/com/jclark/xml/output
+/os/buildtools/misccomponents/sdkpackagemgr/src/com/symbian/sdk/pkgmgr/cli
+/os/buildtools/misccomponents/sdkpackagemgr/src/com/symbian/sdk/pkgmgr/custom
+/os/buildtools/misccomponents/sdkpackagemgr/src/com/symbian/sdk/pkgmgr/engine/cache
+/os/buildtools/misccomponents/sdkpackagemgr/src/com/symbian/sdk/pkgmgr/engine/config
+/os/buildtools/misccomponents/sdkpackagemgr/src/com/symbian/sdk/pkgmgr/engine/devices
+/os/buildtools/misccomponents/sdkpackagemgr/src/com/symbian/sdk/pkgmgr/engine/filelist
+/os/buildtools/misccomponents/sdkpackagemgr/src/com/symbian/sdk/pkgmgr/engine/installer
+/os/buildtools/misccomponents/sdkpackagemgr/src/com/symbian/sdk/pkgmgr/engine/observer
+/os/buildtools/misccomponents/sdkpackagemgr/src/com/symbian/sdk/pkgmgr/engine/packer
+/os/buildtools/misccomponents/sdkpackagemgr/src/com/symbian/sdk/pkgmgr/engine/pkgid
+/os/buildtools/misccomponents/sdkpackagemgr/src/com/symbian/sdk/pkgmgr/engine/pkgmeta
+/os/buildtools/misccomponents/sdkpackagemgr/src/com/symbian/sdk/pkgmgr/engine/pkgsrc
+/os/buildtools/misccomponents/sdkpackagemgr/src/com/symbian/sdk/pkgmgr/engine/resolver
+/os/buildtools/misccomponents/sdkpackagemgr/src/com/symbian/sdk/pkgmgr/engine/resource
+/os/buildtools/misccomponents/sdkpackagemgr/src/com/symbian/sdk/pkgmgr/engine/retriever
+/os/buildtools/misccomponents/sdkpackagemgr/src/com/symbian/sdk/pkgmgr/engine/tags
+/os/buildtools/misccomponents/sdkpackagemgr/src/com/symbian/sdk/pkgmgr/engine/util
+/os/buildtools/misccomponents/sdkpackagemgr/src/com/symbian/sdk/pkgmgr/engine/validator
+/os/buildtools/misccomponents/sdkpackagemgr/src/com/symbian/sdk/pkgmgr/testtools
+/os/buildtools/misccomponents/sdkpkgtools/docs
+/os/buildtools/misccomponents/sdkpkgtools/etc
+/os/buildtools/misccomponents/sdkpkgtools/group
+/os/buildtools/misccomponents/sdkpkgtools/perl
+/os/buildtools/misccomponents/sdkpkgtools/src/com/symbian/sdk/pkgmgr/tools/buildpkg
+/os/buildtools/misccomponents/sdkpkgtools/src/com/symbian/sdk/pkgmgr/tools/createpkgsrc
+/os/buildtools/misccomponents/sdkpkgtools/src/com/symbian/sdk/pkgmgr/tools/pkgcreator
+/os/buildtools/misccomponents/sdkpkgtools/testpkgdefs
+/os/buildtools/misccomponents/sdkpkgtools/testsrcdefs
+/os/buildtools/misccomponents/sdkpkgtools/testsrcfiles
+/os/buildtools/misccomponents/sdkpkgtools/tsrc/com/symbian/sdk/pkgmgr/test/tbuildpkg
+/os/buildtools/misccomponents/sdkpkgtools/tsrc/com/symbian/sdk/pkgmgr/test/tcreatepkgsrc
+/os/buildtools/misccomponents/sdkpkgtools/tsrc/com/symbian/sdk/pkgmgr/test/tpkgcreator
+/os/buildtools/misccomponents/shellexec/bin
+/os/buildtools/misccomponents/shellexec/group
+/os/buildtools/misccomponents/shellexec/src/com/symbian/sdk/util/shellexec
+/os/buildtools/misccomponents/shellexec/win32-native/Release
+/os/buildtools/misccomponents/splash/group
+/os/buildtools/misccomponents/splash/src
+/os/buildtools/misccomponents/swingworker/group
+/os/buildtools/misccomponents/swingworker/src/com/symbian/sdk/util/swingworker
+/os/buildtools/misccomponents/testcaserunner/bin
+/os/buildtools/misccomponents/testcaserunner/group
+/os/buildtools/misccomponents/testcaserunner/src/com/symbian/sdk/util/testcaserunner
+/os/buildtools/misccomponents/toolbarpanel/bin
+/os/buildtools/misccomponents/toolbarpanel/group
+/os/buildtools/misccomponents/toolbarpanel/src/com/symbian/sdk/component/toolbarpanel
+/os/buildtools/misccomponents/toolsstubs/group
+/os/buildtools/misccomponents/toolsstubs/perl
+/os/buildtools/misccomponents/toolsstubs/stubs
+/os/buildtools/misccomponents/toolsstubs/tools
+/os/buildtools/toolsandutils/stlport/group
+/os/buildtools/toolsandutils/stlport/source
+/os/buildtools/toolsandutils/testconfigfileparser/bmarm
+/os/buildtools/toolsandutils/testconfigfileparser/bwins
+/os/buildtools/toolsandutils/testconfigfileparser/eabi
+/os/buildtools/toolsandutils/testconfigfileparser/group
+/os/buildtools/toolsandutils/testconfigfileparser/inc
+/os/buildtools/toolsandutils/testconfigfileparser/src
+/os/buildtools/toolsandutils/testconfigfileparser/test
+/os/shortlinksrv/usbmgmt/usbmgr/device/classcontroller/BWINS
+/os/shortlinksrv/usbmgmt/usbmgr/device/classcontroller/EABI
+/os/shortlinksrv/usbmgmt/usbmgr/device/classcontroller/SRC
+/os/shortlinksrv/usbmgmt/usbmgr/device/classcontroller/group
+/os/shortlinksrv/usbmgmt/usbmgr/device/classcontroller/public
+/os/shortlinksrv/usbmgmt/usbmgr/device/classdrivers/acm/classcontroller/INC
+/os/shortlinksrv/usbmgmt/usbmgr/device/classdrivers/acm/classcontroller/SRC
+/os/shortlinksrv/usbmgmt/usbmgr/device/classdrivers/acm/classcontroller/group
+/os/shortlinksrv/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/acmserver/EABI
+/os/shortlinksrv/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/acmserver/bwins
+/os/shortlinksrv/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/acmserver/group
+/os/shortlinksrv/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/acmserver/inc
+/os/shortlinksrv/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/acmserver/public
+/os/shortlinksrv/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/acmserver/src
+/os/shortlinksrv/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/BWINS
+/os/shortlinksrv/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/EABI
+/os/shortlinksrv/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/group
+/os/shortlinksrv/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/inc
+/os/shortlinksrv/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/public
+/os/shortlinksrv/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src
+/os/shortlinksrv/usbmgmt/usbmgr/device/classdrivers/ms/classcontroller/group
+/os/shortlinksrv/usbmgmt/usbmgr/device/classdrivers/ms/classcontroller/inc
+/os/shortlinksrv/usbmgmt/usbmgr/device/classdrivers/ms/classcontroller/src
+/os/shortlinksrv/usbmgmt/usbmgr/device/classdrivers/obex/classcontroller/group
+/os/shortlinksrv/usbmgmt/usbmgr/device/classdrivers/obex/classcontroller/inc
+/os/shortlinksrv/usbmgmt/usbmgr/device/classdrivers/obex/classcontroller/src
+/os/shortlinksrv/usbmgmt/usbmgr/device/classdrivers/whcm/classcontroller/INC
+/os/shortlinksrv/usbmgmt/usbmgr/device/classdrivers/whcm/classcontroller/SRC
+/os/shortlinksrv/usbmgmt/usbmgr/device/classdrivers/whcm/classcontroller/group
+/os/shortlinksrv/usbmgmt/usbmgr/device/inf-files
+/os/shortlinksrv/usbmgmt/usbclassandmgrdocs
+/os/shortlinksrv/usbmgmt/usbmgr/group
+/os/shortlinksrv/usbmgmt/usbmgr/host/fdf/production/client/BWINS
+/os/shortlinksrv/usbmgmt/usbmgr/host/fdf/production/client/EABI
+/os/shortlinksrv/usbmgmt/usbmgr/host/fdf/production/client/group
+/os/shortlinksrv/usbmgmt/usbmgr/host/fdf/production/client/public
+/os/shortlinksrv/usbmgmt/usbmgr/host/fdf/production/client/src
+/os/shortlinksrv/usbmgmt/usbmgr/host/fdf/production/fdcbase/BWINS
+/os/shortlinksrv/usbmgmt/usbmgr/host/fdf/production/fdcbase/EABI
+/os/shortlinksrv/usbmgmt/usbmgr/host/fdf/production/fdcbase/group
+/os/shortlinksrv/usbmgmt/usbmgr/host/fdf/production/fdcbase/public
+/os/shortlinksrv/usbmgmt/usbmgr/host/fdf/production/fdcbase/src
+/os/shortlinksrv/usbmgmt/usbmgr/host/fdf/production/server/group
+/os/shortlinksrv/usbmgmt/usbmgr/host/fdf/production/server/inc
+/os/shortlinksrv/usbmgmt/usbmgr/host/fdf/production/server/public
+/os/shortlinksrv/usbmgmt/usbmgr/host/fdf/production/server/src
+/os/shortlinksrv/usbmgmt/usbmgr/host/fdf/reference/reffdc/group
+/os/shortlinksrv/usbmgmt/usbmgr/host/fdf/reference/reffdc/inc
+/os/shortlinksrv/usbmgmt/usbmgr/host/fdf/reference/reffdc/src
+/os/shortlinksrv/usbmgmt/usbmgr/host/fdf/test/fdf_over_dummyusbdi
+/os/shortlinksrv/usbmgmt/usbmgr/host/fdf/test/t_fdf
+/os/shortlinksrv/usbmgmt/usbmgr/host/functiondrivers/ms/msfdc/group
+/os/shortlinksrv/usbmgmt/usbmgr/host/functiondrivers/ms/msfdc/inc
+/os/shortlinksrv/usbmgmt/usbmgr/host/functiondrivers/ms/msfdc/src
+/os/shortlinksrv/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/client/bwins
+/os/shortlinksrv/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/client/eabi
+/os/shortlinksrv/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/client/group
+/os/shortlinksrv/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/client/public
+/os/shortlinksrv/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/client/src
+/os/shortlinksrv/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/group
+/os/shortlinksrv/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/inc
+/os/shortlinksrv/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/referencepolicyplugin/data
+/os/shortlinksrv/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/referencepolicyplugin/group
+/os/shortlinksrv/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/referencepolicyplugin/inc
+/os/shortlinksrv/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/referencepolicyplugin/src
+/os/shortlinksrv/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/group
+/os/shortlinksrv/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/inc
+/os/shortlinksrv/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/src
+/os/shortlinksrv/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/group
+/os/shortlinksrv/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/inc
+/os/shortlinksrv/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/public
+/os/shortlinksrv/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/src
+/os/shortlinksrv/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/test/msmm_over_dummycomponent
+/os/shortlinksrv/usbmgmt/usbmgr/inifile/inc
+/os/shortlinksrv/usbmgmt/usbmgr/inifile/src
+/os/shortlinksrv/usbmgmt/usbmgr/logger/BWINS
+/os/shortlinksrv/usbmgmt/usbmgr/logger/EABI
+/os/shortlinksrv/usbmgmt/usbmgr/logger/group
+/os/shortlinksrv/usbmgmt/usbmgr/logger/public
+/os/shortlinksrv/usbmgmt/usbmgr/logger/src
+/os/shortlinksrv/usbmgmt/usbmgr/test/cit/ROMConfig/group
+/os/shortlinksrv/usbmgmt/usbmgr/test/cit/ROMConfig/inc
+/os/shortlinksrv/usbmgmt/usbmgr/test/cit/ROMConfig/scripts
+/os/shortlinksrv/usbmgmt/usbmgr/test/cit/ROMConfig/src
+/os/shortlinksrv/usbmgmt/usbmgr/test/cit/ROMConfig/testdata
+/os/shortlinksrv/usbmgmt/usbmgr/test/cit/ROMConfig/xml/UsbRomConfigSuite/TestExecuteServers
+/os/shortlinksrv/usbmgmt/usbmgr/test/cit/ROMConfig/xml/UsbRomConfigSuite/UsbExcSuite
+/os/shortlinksrv/usbmgmt/usbmgr/test/cit/ROMConfig/xml/UsbRomConfigSuite/UsbIncSuite
+/os/shortlinksrv/usbmgmt/usbmgrtest/ObexClassController/ObexUsbClassController/ClassControllerClientSession/BWINS
+/os/shortlinksrv/usbmgmt/usbmgrtest/ObexClassController/ObexUsbClassController/ClassControllerClientSession/EABI
+/os/shortlinksrv/usbmgmt/usbmgrtest/ObexClassController/ObexUsbClassController/ClassControllerClientSession/group
+/os/shortlinksrv/usbmgmt/usbmgrtest/ObexClassController/ObexUsbClassController/ClassControllerClientSession/inc
+/os/shortlinksrv/usbmgmt/usbmgrtest/ObexClassController/ObexUsbClassController/ClassControllerClientSession/src
+/os/shortlinksrv/usbmgmt/usbmgrtest/ObexClassController/ObexUsbClassController/ClassControllerServerSession/group
+/os/shortlinksrv/usbmgmt/usbmgrtest/ObexClassController/ObexUsbClassController/ClassControllerServerSession/inc
+/os/shortlinksrv/usbmgmt/usbmgrtest/ObexClassController/ObexUsbClassController/ClassControllerServerSession/src
+/os/shortlinksrv/usbmgmt/usbmgrtest/ObexClassController/ObexUsbClassController/ObexClassController/group
+/os/shortlinksrv/usbmgmt/usbmgrtest/ObexClassController/ObexUsbClassController/ObexClassController/inc
+/os/shortlinksrv/usbmgmt/usbmgrtest/ObexClassController/ObexUsbClassController/ObexClassController/src
+/os/shortlinksrv/usbmgmt/usbmgrtest/ObexClassController/ObexUsbClassController/public
+/os/shortlinksrv/usbmgmt/usbmgrtest/ObexClassController/test/group
+/os/shortlinksrv/usbmgmt/usbmgrtest/ObexClassController/test/inc
+/os/shortlinksrv/usbmgmt/usbmgrtest/ObexClassController/test/src
+/os/shortlinksrv/usbmgmt/usbmgrtest/T_usb/BWINS
+/os/shortlinksrv/usbmgmt/usbmgrtest/T_usb/EABI
+/os/shortlinksrv/usbmgmt/usbmgrtest/T_usb/group
+/os/shortlinksrv/usbmgmt/usbmgrtest/T_usb/inc
+/os/shortlinksrv/usbmgmt/usbmgrtest/T_usb/scripts
+/os/shortlinksrv/usbmgmt/usbmgrtest/T_usb/src
+/os/shortlinksrv/usbmgmt/usbmgrtest/automation/tests/UsbManagerTest/IndividualRom
+/os/shortlinksrv/usbmgmt/usbmgrtest/automation/tests/UsbManagerTest/SingleRom/Component
+/os/shortlinksrv/usbmgmt/usbmgrtest/automation/tests/UsbManagerTest/SingleRom/Integration
+/os/shortlinksrv/usbmgmt/usbmgrtest/automation/tests/UsbManagerTest/SingleRom/Integration_Connected
+/os/shortlinksrv/usbmgmt/usbmgrtest/csy/t_ecacm/group
+/os/shortlinksrv/usbmgmt/usbmgrtest/csy/t_ecacm/src
+/os/shortlinksrv/usbmgmt/usbmgrtest/group
+/os/shortlinksrv/usbmgmt/usbmgrtest/showcaps/group
+/os/shortlinksrv/usbmgmt/usbmgrtest/showcaps/src
+/os/shortlinksrv/usbmgmt/usbmgrtest/startusb/group
+/os/shortlinksrv/usbmgmt/usbmgrtest/startusb/src
+/os/shortlinksrv/usbmgmt/usbmgrtest/startusb2/group
+/os/shortlinksrv/usbmgmt/usbmgrtest/startusb2/src
+/os/shortlinksrv/usbmgmt/usbmgrtest/stopusb/group
+/os/shortlinksrv/usbmgmt/usbmgrtest/stopusb/src
+/os/shortlinksrv/usbmgmt/usbmgrtest/t_acm/group
+/os/shortlinksrv/usbmgmt/usbmgrtest/t_acm/src
+/os/shortlinksrv/usbmgmt/usbmgrtest/t_acm_cc/group
+/os/shortlinksrv/usbmgmt/usbmgrtest/t_acm_cc/src
+/os/shortlinksrv/usbmgmt/usbmgrtest/t_acm_pub_sub/data
+/os/shortlinksrv/usbmgmt/usbmgrtest/t_acm_pub_sub/group
+/os/shortlinksrv/usbmgmt/usbmgrtest/t_acm_pub_sub/inc
+/os/shortlinksrv/usbmgmt/usbmgrtest/t_acm_pub_sub/src
+/os/shortlinksrv/usbmgmt/usbmgrtest/t_acm_spec/group
+/os/shortlinksrv/usbmgmt/usbmgrtest/t_acm_spec/src
+/os/shortlinksrv/usbmgmt/usbmgrtest/t_acm_wins/group
+/os/shortlinksrv/usbmgmt/usbmgrtest/t_acm_wins/src
+/os/shortlinksrv/usbmgmt/usbmgrtest/t_catc/group
+/os/shortlinksrv/usbmgmt/usbmgrtest/t_catc/src
+/os/shortlinksrv/usbmgmt/usbmgrtest/t_charging_arm/group
+/os/shortlinksrv/usbmgmt/usbmgrtest/t_charging_arm/inc
+/os/shortlinksrv/usbmgmt/usbmgrtest/t_charging_arm/src
+/os/shortlinksrv/usbmgmt/usbmgrtest/t_charging_emu/group
+/os/shortlinksrv/usbmgmt/usbmgrtest/t_charging_emu/inc
+/os/shortlinksrv/usbmgmt/usbmgrtest/t_charging_emu/src
+/os/shortlinksrv/usbmgmt/usbmgrtest/t_headlessecacm/group
+/os/shortlinksrv/usbmgmt/usbmgrtest/t_multi_acm/group
+/os/shortlinksrv/usbmgmt/usbmgrtest/t_multi_acm/src
+/os/shortlinksrv/usbmgmt/usbmgrtest/t_termusb/group
+/os/shortlinksrv/usbmgmt/usbmgrtest/t_termusb/src
+/os/shortlinksrv/usbmgmt/usbmgrtest/t_termusb2/group
+/os/shortlinksrv/usbmgmt/usbmgrtest/t_termusb2/src
+/os/shortlinksrv/usbmgmt/usbmgrtest/t_usb_cable_detect/group
+/os/shortlinksrv/usbmgmt/usbmgrtest/t_usb_cable_detect/src
+/os/shortlinksrv/usbmgmt/usbmgrtest/t_usbman/group
+/os/shortlinksrv/usbmgmt/usbmgrtest/t_usbman/src
+/os/shortlinksrv/usbmgmt/usbmgrtest/t_usbmanager_suite/Stub1CC/EABI
+/os/shortlinksrv/usbmgmt/usbmgrtest/t_usbmanager_suite/Stub1CC/group
+/os/shortlinksrv/usbmgmt/usbmgrtest/t_usbmanager_suite/Stub1CC/inc
+/os/shortlinksrv/usbmgmt/usbmgrtest/t_usbmanager_suite/Stub1CC/src
+/os/shortlinksrv/usbmgmt/usbmgrtest/t_usbmanager_suite/Stub2CC/EABI
+/os/shortlinksrv/usbmgmt/usbmgrtest/t_usbmanager_suite/Stub2CC/group
+/os/shortlinksrv/usbmgmt/usbmgrtest/t_usbmanager_suite/Stub2CC/inc
+/os/shortlinksrv/usbmgmt/usbmgrtest/t_usbmanager_suite/Stub2CC/src
+/os/shortlinksrv/usbmgmt/usbmgrtest/t_usbmanager_suite/Stub3CC/EABI
+/os/shortlinksrv/usbmgmt/usbmgrtest/t_usbmanager_suite/Stub3CC/group
+/os/shortlinksrv/usbmgmt/usbmgrtest/t_usbmanager_suite/Stub3CC/inc
+/os/shortlinksrv/usbmgmt/usbmgrtest/t_usbmanager_suite/Stub3CC/src
+/os/shortlinksrv/usbmgmt/usbmgrtest/t_usbmanager_suite/T_UsbManager/group
+/os/shortlinksrv/usbmgmt/usbmgrtest/t_usbmanager_suite/T_UsbManager/inc
+/os/shortlinksrv/usbmgmt/usbmgrtest/t_usbmanager_suite/T_UsbManager/scripts
+/os/shortlinksrv/usbmgmt/usbmgrtest/t_usbmanager_suite/T_UsbManager/src
+/os/shortlinksrv/usbmgmt/usbmgrtest/t_usbmanager_suite/T_UsbManager/testdata
+/os/shortlinksrv/usbmgmt/usbmgrtest/t_usbmanager_suite/group
+/os/shortlinksrv/usbmgmt/usbmgrtest/t_usbmanager_suite/mscc/group
+/os/shortlinksrv/usbmgmt/usbmgrtest/t_usbmanager_suite/mscc/inc
+/os/shortlinksrv/usbmgmt/usbmgrtest/t_usbmanager_suite/mscc/scripts
+/os/shortlinksrv/usbmgmt/usbmgrtest/t_usbmanager_suite/mscc/src
+/os/shortlinksrv/usbmgmt/usbmgrtest/t_usbmodem/group
+/os/shortlinksrv/usbmgmt/usbmgrtest/t_usbmodem/inc
+/os/shortlinksrv/usbmgmt/usbmgrtest/t_usbmodem/src
+/os/shortlinksrv/usbmgmt/usbmgrtest/t_whcm_cc/group
+/os/shortlinksrv/usbmgmt/usbmgrtest/t_whcm_cc/src
+/os/shortlinksrv/usbmgmt/usbmgrtest/usbcontrolapp/controlappbinder
+/os/shortlinksrv/usbmgmt/usbmgrtest/usbcontrolapp/exampleusbcontrolapp
+/os/shortlinksrv/usbmgmt/usbmgrtest/usbcontrolapp/group
+/os/shortlinksrv/usbmgmt/usbmgrtest/usbcontrolapp/shared
+/os/shortlinksrv/usbmgmt/usbmgrtest/usbcontrolapp/testfdc
+/os/shortlinksrv/usbmgmt/usbmgrtest/usbcontrolapp/testusbawareapp
+/os/shortlinksrv/usbmgmt/usbmgrtest/usbcontrolapp/usbviewer
+/os/shortlinksrv/usbmgmt/usbmgrtest/usbmsapp/usbms_stub/BWINS
+/os/shortlinksrv/usbmgmt/usbmgrtest/usbmsapp/usbms_stub/group
+/os/shortlinksrv/usbmgmt/usbmgrtest/usbmsapp/usbms_stub/inc
+/os/shortlinksrv/usbmgmt/usbmgrtest/usbmsapp/usbms_stub/src
+/os/shortlinksrv/usbmgmt/usbmgrtest/usbtestconsole
+/os/shortlinksrv/usbmgmt/usbmgrtest/win32_tests/CATC_Scripts
+/os/shortlinksrv/usbmgmt/usbmgrtest/win32_tests/win32_serbulk/Release
+/os/shortlinksrv/usbmgmt/usbmgrtest/win32_tests/win32_serial/Release
+/os/shortlinksrv/usbmgmt/usbmgrtest/win32_tests/win32_usb_host/src/altif
+/os/shortlinksrv/usbmgmt/usbmgrtest/win32_tests/win32_usb_host/src/noaltif
+/os/shortlinksrv/usbmgmt/usbmgrtest/winapp
+/os/shortlinksrv/usbmgmt/usbmgr/usbman/chargingplugin/group
+/os/shortlinksrv/usbmgmt/usbmgr/usbman/chargingplugin/inc/default
+/os/shortlinksrv/usbmgmt/usbmgr/usbman/chargingplugin/public
+/os/shortlinksrv/usbmgmt/usbmgr/usbman/chargingplugin/src
+/os/shortlinksrv/usbmgmt/usbmgr/usbman/client/BWINS
+/os/shortlinksrv/usbmgmt/usbmgr/usbman/client/EABI
+/os/shortlinksrv/usbmgmt/usbmgr/usbman/client/SRC
+/os/shortlinksrv/usbmgmt/usbmgr/usbman/client/group
+/os/shortlinksrv/usbmgmt/usbmgr/usbman/client/public
+/os/shortlinksrv/usbmgmt/usbmgr/usbman/extensionplugin/BWINS
+/os/shortlinksrv/usbmgmt/usbmgr/usbman/extensionplugin/EABI
+/os/shortlinksrv/usbmgmt/usbmgr/usbman/extensionplugin/group
+/os/shortlinksrv/usbmgmt/usbmgr/usbman/extensionplugin/public
+/os/shortlinksrv/usbmgmt/usbmgr/usbman/extensionplugin/src
+/os/shortlinksrv/usbmgmt/usbmgr/usbman/server/INC
+/os/shortlinksrv/usbmgmt/usbmgr/usbman/server/SRC
+/os/shortlinksrv/usbmgmt/usbmgr/usbman/server/data
+/os/shortlinksrv/usbmgmt/usbmgr/usbman/server/group
+/os/shortlinksrv/usbmgmt/usbmgr/usbman/server/public
+/os/buildtools/bldsystemtools/commonbldutils/GenResult
+/os/buildtools/bldsystemtools/commonbldutils/TCL_Support
+/os/buildtools/bldsystemtools/commonbldutils/lib/XML
+/os/buildtools/bldsystemtools/commonbldutils/perfmon
+/os/buildtools/bldsystemtools/commonbldutils/perforce
+/os/buildtools/bldsystemtools/commonbldutils/tbuild/tests/spaces
+/os/unref/orphan/comgen/wap-browser/Documents/Test Specifications
+/mw/netprotocols/applayerprotocols/wapbase/Group
+/mw/netprotocols/applayerprotocols/wapbase/Tdtd/DTDs
+/mw/netprotocols/applayerprotocols/wapbase/bnf
+/mw/netprotocols/applayerprotocols/wapbase/bwins
+/mw/netprotocols/applayerprotocols/wapbase/dtdmdl
+/mw/netprotocols/applayerprotocols/wapbase/eabi
+/mw/netprotocols/applayerprotocols/wapbase/inc
+/mw/netprotocols/applayerprotocols/wapbase/mmpfiles
+/mw/netprotocols/applayerprotocols/wapbase/wnode
+/mw/netprotocols/applayerprotocols/wapbase/wutil
+/mw/netprotocols/applayerprotocols/wappushsupport/Group
+/mw/netprotocols/applayerprotocols/wappushsupport/HTTPResponse
+/mw/netprotocols/applayerprotocols/wappushsupport/PHTTP
+/mw/netprotocols/applayerprotocols/wappushsupport/TokenFiles
+/mw/netprotocols/applayerprotocols/wappushsupport/WbxmlLib
+/mw/netprotocols/applayerprotocols/wappushsupport/XmlElement
+/mw/netprotocols/applayerprotocols/wappushsupport/XmlLib
+/mw/netprotocols/applayerprotocols/wappushsupport/bwins
+/mw/netprotocols/applayerprotocols/wappushsupport/eabi
+/mw/netprotocols/applayerprotocols/wappushsupport/inc
+/mw/netprotocols/applayerprotocols/wappushsupport/mmpfiles
+/mw/messagingmw/messagingfw/wappushfw/MiscPushMsgUtils/group
+/mw/messagingmw/messagingfw/wappushfw/MiscPushMsgUtils/inc
+/mw/messagingmw/messagingfw/wappushfw/MiscPushMsgUtils/src
+/mw/messagingmw/messagingfw/wappushfw/PushMsgEntry/group
+/mw/messagingmw/messagingfw/wappushfw/PushMsgEntry/inc
+/mw/messagingmw/messagingfw/wappushfw/PushMsgEntry/src
+/mw/messagingmw/messagingfw/wappushfw/PushMsgEntry/test
+/mw/messagingmw/messagingfw/wappushfw/ROAPTContentHandler/EABI
+/mw/messagingmw/messagingfw/wappushfw/ROAPTContentHandler/bwins
+/mw/messagingmw/messagingfw/wappushfw/ROAPTContentHandler/group
+/mw/messagingmw/messagingfw/wappushfw/ROAPTContentHandler/inc
+/mw/messagingmw/messagingfw/wappushfw/ROAPTContentHandler/src
+/mw/messagingmw/messagingfw/wappushfw/ROContentHandler/EABI
+/mw/messagingmw/messagingfw/wappushfw/ROContentHandler/bwins
+/mw/messagingmw/messagingfw/wappushfw/ROContentHandler/group
+/mw/messagingmw/messagingfw/wappushfw/ROContentHandler/inc
+/mw/messagingmw/messagingfw/wappushfw/ROContentHandler/src
+/mw/messagingmw/messagingfw/wappushfw/SISLContentHandlers/group
+/mw/messagingmw/messagingfw/wappushfw/SISLContentHandlers/inc
+/mw/messagingmw/messagingfw/wappushfw/SISLContentHandlers/src
+/mw/messagingmw/messagingfw/wappushfw/SISLContentHandlers/strings
+/mw/messagingmw/messagingfw/wappushfw/SISLPushMsgUtils/group
+/mw/messagingmw/messagingfw/wappushfw/SISLPushMsgUtils/inc
+/mw/messagingmw/messagingfw/wappushfw/SISLPushMsgUtils/src
+/mw/messagingmw/messagingfw/wappushfw/bwins
+/mw/messagingmw/messagingfw/wappushfw/docs
+/mw/messagingmw/messagingfw/wappushfw/eabi
+/mw/messagingmw/messagingfw/wappushfw/examples/PushAppHandlerEx/test/T_UTILS
+/mw/messagingmw/messagingfw/wappushfw/group
+/mw/messagingmw/messagingfw/wappushfw/plugins/PushAppHandler
+/mw/messagingmw/messagingfw/wappushfw/plugins/PushContentHandler
+/mw/messagingmw/messagingfw/wappushfw/plugins/PushSecurity
+/mw/messagingmw/messagingfw/wappushfw/plugins/ROAppHandler/group
+/mw/messagingmw/messagingfw/wappushfw/plugins/ROAppHandler/src
+/mw/messagingmw/messagingfw/wappushfw/plugins/StringDictionaries/DRM
+/mw/messagingmw/messagingfw/wappushfw/plugins/StringDictionaries/ServiceLoading
+/mw/messagingmw/messagingfw/wappushfw/plugins/WapUriLookup/group
+/mw/messagingmw/messagingfw/wappushfw/plugins/WapUriLookup/inc
+/mw/messagingmw/messagingfw/wappushfw/plugins/WapUriLookup/src
+/mw/messagingmw/messagingfw/wappushfw/plugins/group
+/mw/messagingmw/messagingfw/wappushfw/plugins/inc
+/mw/messagingmw/messagingfw/wappushfw/pushmtm/group
+/mw/messagingmw/messagingfw/wappushfw/pushmtm/inc
+/mw/messagingmw/messagingfw/wappushfw/pushmtm/src
+/mw/messagingmw/messagingfw/wappushfw/pushmtm/test
+/mw/messagingmw/messagingfw/wappushfw/pushutils/group
+/mw/messagingmw/messagingfw/wappushfw/pushutils/inc
+/mw/messagingmw/messagingfw/wappushfw/pushutils/src
+/mw/messagingmw/messagingfw/wappushfw/pushutils/test
+/mw/messagingmw/messagingfw/wappushfw/pushwatcher/group
+/mw/messagingmw/messagingfw/wappushfw/pushwatcher/inc
+/mw/messagingmw/messagingfw/wappushfw/pushwatcher/src
+/mw/messagingmw/messagingfw/wappushfw/pushwatcher/test
+/mw/messagingmw/messagingfw/wappushfw/rom
+/mw/messagingmw/messagingfw/wappushfw/tpush/DummyStack
+/mw/messagingmw/messagingfw/wappushfw/tpush/RefTestAgent/BWINS
+/mw/messagingmw/messagingfw/wappushfw/tpush/RefTestAgent/EABI
+/mw/messagingmw/messagingfw/wappushfw/tpush/RefTestAgent/RTAParser
+/mw/messagingmw/messagingfw/wappushfw/tpush/RefTestAgent/RTAServer/Client
+/mw/messagingmw/messagingfw/wappushfw/tpush/RefTestAgent/RTAServer/Common
+/mw/messagingmw/messagingfw/wappushfw/tpush/RefTestAgent/RTAServer/Server
+/mw/messagingmw/messagingfw/wappushfw/tpush/RefTestAgent/RTAVirtualFile
+/mw/messagingmw/messagingfw/wappushfw/tpush/RefTestAgent/RefTestAgent
+/mw/messagingmw/messagingfw/wappushfw/tpush/RefTestAgent/group
+/mw/messagingmw/messagingfw/wappushfw/tpush/RefTestAgent/inc
+/mw/messagingmw/messagingfw/wappushfw/tpush/RefTestAgent/rtaarchive
+/mw/messagingmw/messagingfw/wappushfw/tpush/plugins/tpushapphandler
+/mw/messagingmw/messagingfw/wappushfw/tpushscriptbased/t_utils
+/mw/messagingmw/messagingfw/wappushfw/tpushscriptbased/testdata
+/mw/messagingmw/messagingfw/wappushfw/tpushscriptbased/wapini
+/mw/netprotocols/wapstack/wapshortstack/confidential
+/mw/netprotocols/wapstack/wapshortstack/documentation
+/mw/netprotocols/wapstack/wapmessageapi/bmarm
+/mw/netprotocols/wapstack/wapmessageapi/bwins
+/mw/netprotocols/wapstack/wapmessageapi/client
+/mw/netprotocols/wapstack/wapmessageapi/documentation
+/mw/netprotocols/wapstack/wapmessageapi/eabi
+/mw/netprotocols/wapstack/wapmessageapi/group
+/mw/netprotocols/wapstack/wapmessageapi/inc
+/mw/netprotocols/wapstack/wapmessageapi/nwss
+/mw/netprotocols/wapstack/wapmessageapi/sws
+/mw/netprotocols/wapstack/wapmessageapi/te_wapstack/bmarm
+/mw/netprotocols/wapstack/wapmessageapi/te_wapstack/bwins
+/mw/netprotocols/wapstack/wapmessageapi/te_wapstack/group
+/mw/netprotocols/wapstack/wapmessageapi/te_wapstack/scripts
+/mw/netprotocols/wapstack/wapmessageapi/te_wapstack/src
+/mw/netprotocols/wapstack/wapmessageapi/te_wapstack/testdata
+/mw/netprotocols/wapstack/wapmessageapi/test/bmarm
+/mw/netprotocols/wapstack/wapmessageapi/test/bwins
+/mw/netprotocols/wapstack/wapmessageapi/test/t_boundclpush
+/mw/netprotocols/wapstack/wapmessageapi/test/t_boundclpushstub
+/mw/netprotocols/wapstack/wapmessageapi/test/t_fullyspecclpush
+/mw/netprotocols/wapstack/wapmessageapi/test/t_fullyspecclpushstub
+/mw/netprotocols/wapstack/wapmessageapi/test/t_pushstackstub
+/mw/netprotocols/wapstack/wapmessageapi/test/t_wdpbound
+/mw/netprotocols/wapstack/wapmessageapi/test/t_wdpfullyspec
+/mw/netprotocols/wapstack/wapshortstack/wapstack/bmarm
+/mw/netprotocols/wapstack/wapshortstack/wapstack/bwins
+/mw/netprotocols/wapstack/wapshortstack/wapstack/documentation
+/mw/netprotocols/wapstack/wapshortstack/wapstack/eabi
+/mw/netprotocols/wapstack/wapshortstack/wapstack/group
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/CapCodec/bmarm
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/CapCodec/bwins
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/CapCodec/eabi
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/CapCodec/group
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/CapCodec/inc
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/CapCodec/src
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/doc/bearer
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/eapi
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/group/bmarm
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/group/bwins
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/include
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/possock/bmarm
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/possock/bwins
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/possock/group
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/possock/inc/sys
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/possock/src
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/possock/tsrc
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/src
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/symbian_include
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/wapstdlib/Doc
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/wapstdlib/bmarm
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/wapstdlib/bwins
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/wapstdlib/eabi
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/wapstdlib/group
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/wapstdlib/inc/sys
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/wapstdlib/src
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/wapstdlib/tsrc
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/wps/src/abstract/common
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/wps/src/abstract/include
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/wps/src/broker/common
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/wps/src/broker/include
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/wps/src/cap_codec/ce
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/wps/src/cap_codec/common
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/wps/src/cap_codec/nt
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/wps/src/crypto/ce
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/wps/src/crypto/common
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/wps/src/crypto/epoc
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/wps/src/crypto/nt
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/wps/src/hc_codec/ce
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/wps/src/hc_codec/common
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/wps/src/hc_codec/nt
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/wps/src/sdt/common
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/wps/src/sdt/include
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/wps/src/wdp/common
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/wps/src/wdp/include
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/wps/src/wdp_sms/common
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/wps/src/wdp_sms/epoc
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/wps/src/wdp_udp/common
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/wps/src/wdp_udp/epoc
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/wps/src/wps/ce
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/wps/src/wps/common
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/wps/src/wps/nt
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/wps/src/wps/unix
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/wps/src/wsl/ce
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/wps/src/wsl/common
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/wps/src/wsl/epoc
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/wps/src/wsl/include
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/wps/src/wsl/nt
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/wps/src/wsp/common
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/wps/src/wsp/include
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/wps/src/wsp/sdl
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/wps/src/wtls/common
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/wps/src/wtls/include
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/wps/src/wtp/common
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/wps/src/wtp/include
+/mw/netprotocols/wapstack/wapshortstack/wapstack/rb-wps/wps/src/wtp/sdl
+/os/buildtools/toolsandutils/productionbldtools/BAK
+/os/buildtools/toolsandutils/productionbldtools/BFrC
+/os/buildtools/toolsandutils/productionbldtools/Documentation
+/os/buildtools/toolsandutils/productionbldtools/distillsrc/test/source/complete
+/os/buildtools/toolsandutils/productionbldtools/distillsrc/test/source/missing
+/os/buildtools/toolsandutils/productionbldtools/distillsrc/test/source/shared
+/os/buildtools/toolsandutils/productionbldtools/distillsrc/test/source/spacey
+/os/buildtools/toolsandutils/productionbldtools/distillsrc/test/source/whole
+/os/buildtools/toolsandutils/productionbldtools/makecbr/files
+/os/buildtools/toolsandutils/productionbldtools/makecbr/stages/CBRRepair
+/os/buildtools/toolsandutils/productionbldtools/makecbr/test
+/os/deviceplatformrelease/foundation_system/systemdocs/PlatSec
+/os/deviceplatformrelease/foundation_system/systemdocs/documentation/saod93/deps/Blocks/depinfo
+/os/deviceplatformrelease/foundation_system/systemdocs/documentation/saod93/deps/Blocks/graphs
+/os/deviceplatformrelease/foundation_system/systemdocs/documentation/saod93/deps/Blocks/trees
+/os/deviceplatformrelease/foundation_system/systemdocs/documentation/saod93/deps/Collections/depinfo
+/os/deviceplatformrelease/foundation_system/systemdocs/documentation/saod93/deps/Collections/graphs
+/os/deviceplatformrelease/foundation_system/systemdocs/documentation/saod93/deps/Collections/trees
+/os/deviceplatformrelease/foundation_system/systemdocs/documentation/saod93/deps/Components/depinfo
+/os/deviceplatformrelease/foundation_system/systemdocs/documentation/saod93/deps/Components/graphs
+/os/deviceplatformrelease/foundation_system/systemdocs/documentation/saod93/deps/Components/trees
+/os/deviceplatformrelease/foundation_system/systemdocs/documentation/saod93/deps/Executables/depinfo
+/os/deviceplatformrelease/foundation_system/systemdocs/documentation/saod93/deps/Executables/graphs
+/os/deviceplatformrelease/foundation_system/systemdocs/documentation/saod93/deps/Executables/trees
+/os/deviceplatformrelease/foundation_system/systemdocs/documentation/saod93/deps/Layers/depinfo
+/os/deviceplatformrelease/foundation_system/systemdocs/documentation/saod93/deps/Layers/graphs
+/os/deviceplatformrelease/foundation_system/systemdocs/documentation/saod93/deps/Layers/trees
+/os/deviceplatformrelease/foundation_system/systemdocs/documentation/saod93/deps/SubBlocks/depinfo
+/os/deviceplatformrelease/foundation_system/systemdocs/documentation/saod93/deps/SubBlocks/graphs
+/os/deviceplatformrelease/foundation_system/systemdocs/documentation/saod93/deps/SubBlocks/trees
+/os/deviceplatformrelease/foundation_system/systemdocs/documentation/saod93/deps/css
+/os/deviceplatformrelease/foundation_system/systemdocs/documentation/saod93/deps/icons
+/os/deviceplatformrelease/foundation_system/systemdocs/documentation/saod93/deps/images
+/os/deviceplatformrelease/foundation_system/systemdocs/documentation/saod93/deps/scripts
+/os/deviceplatformrelease/foundation_system/systemdocs/group
+/app/techview/toolkit/cdborphans/docs
+/app/techview/toolkit/cdborphans/group
+/app/techview/toolkit/cdborphans/sf/app-engines
+/app/techview/toolkit/cdborphans/sf/app-framework
+/app/techview/toolkit/cdborphans/sf/app-services
+/app/techview/toolkit/cdborphans/src/base
+/app/techview/toolkit/cdborphans/src/chatscripts
+/app/techview/toolkit/cdborphans/src/comms-infras
+/app/techview/toolkit/cdborphans/src/devprov
+/app/techview/toolkit/cdborphans/src/graphics
+/app/techview/toolkit/cdborphans/src/lbs
+/app/techview/toolkit/cdborphans/src/messaging
+/app/techview/toolkit/cdborphans/src/mm-protocols
+/app/techview/toolkit/cdborphans/src/mtp
+/app/techview/toolkit/cdborphans/src/multimedia
+/app/techview/toolkit/cdborphans/src/networking
+/app/techview/toolkit/cdborphans/src/security
+/app/techview/toolkit/cdborphans/src/syslibs
+/app/techview/toolkit/cdborphans/src/telephony
+/app/techview/toolkit/cdborphans/src/tools
+/app/techview/toolkit/cdborphans/src/wap-browser
+/app/techview/installationapps/installapp/data
+/app/techview/installationapps/installapp/docs
+/app/techview/installationapps/installapp/group
+/app/techview/installationapps/installapp/inc
+/app/techview/installationapps/installapp/src
+/app/techview/pimapps/agenda/Docs
+/app/techview/pimapps/agenda/agnappif
+/app/techview/pimapps/agenda/agvanniv
+/app/techview/pimapps/agenda/agvapp
+/app/techview/pimapps/agenda/agvattach
+/app/techview/pimapps/agenda/agvbusy
+/app/techview/pimapps/agenda/agvcat
+/app/techview/pimapps/agenda/agvcontr
+/app/techview/pimapps/agenda/agvday
+/app/techview/pimapps/agenda/agvdialg
+/app/techview/pimapps/agenda/agvfind
+/app/techview/pimapps/agenda/agvform
+/app/techview/pimapps/agenda/agvmisc
+/app/techview/pimapps/agenda/agvprint
+/app/techview/pimapps/agenda/agvtemp
+/app/techview/pimapps/agenda/agvtext
+/app/techview/pimapps/agenda/agvtodo
+/app/techview/pimapps/agenda/agvweek
+/app/techview/pimapps/agenda/agvyear
+/app/techview/pimapps/agenda/aif
+/app/techview/pimapps/agenda/group
+/app/techview/pimapps/agenda/inc
+/app/techview/avapps/techviewaudio/Docs
+/app/techview/avapps/techviewaudio/Group
+/app/techview/avapps/techviewaudio/Src
+/app/techview/avapps/techviewaudio/bmp
+/app/techview/avapps/techviewaudio/inc
+/app/techview/pimapps/contactstechview/AIFSRCC
+/app/techview/pimapps/contactstechview/Docs
+/app/techview/pimapps/contactstechview/INC
+/app/techview/pimapps/contactstechview/ImageLibraryLoader
+/app/techview/pimapps/contactstechview/InterfaceDefinition
+/app/techview/pimapps/contactstechview/SRC
+/app/techview/pimapps/contactstechview/SRCDATAC
+/app/techview/pimapps/contactstechview/bwins
+/app/techview/pimapps/contactstechview/eabi
+/app/techview/pimapps/contactstechview/group
+/app/techview/pimapps/contacui/Docs
+/app/techview/pimapps/contacui/bwins
+/app/techview/pimapps/contacui/eabi
+/app/techview/pimapps/contacui/group
+/app/techview/pimapps/contacui/inc
+/app/techview/pimapps/contacui/src
+/app/techview/pimapps/contacui/tsrc
+/app/techview/utilityapps/helptechview/Rom
+/app/techview/utilityapps/helptechview/datac
+/app/techview/utilityapps/helptechview/docs
+/app/techview/utilityapps/helptechview/group
+/app/techview/utilityapps/helptechview/inc
+/app/techview/utilityapps/helptechview/src
+/app/techview/utilityapps/helptechview/testdbs
+/app/techview/securityapps/secui/Docs
+/app/techview/securityapps/secui/Keymanager
+/app/techview/securityapps/secui/addcert
+/app/techview/securityapps/secui/bwins
+/app/techview/securityapps/secui/certuiutil
+/app/techview/securityapps/secui/ctrlpanl
+/app/techview/securityapps/secui/data
+/app/techview/securityapps/secui/eabi
+/app/techview/securityapps/secui/group
+/app/techview/securityapps/secui/inc
+/app/techview/securityapps/secui/secdlg
+/app/techview/securityapps/secui/tsecdlg
+/app/techview/testapps/simpleapp/Docs
+/app/techview/testapps/simpleapp/group
+/app/techview/testapps/simpleapp/inc
+/app/techview/testapps/simpleapp/src
+/app/techview/datasyncapps/syncmlapp/Docs
+/app/techview/datasyncapps/syncmlapp/SyncMLDummy/group
+/app/techview/datasyncapps/syncmlapp/SyncMLDummy/include
+/app/techview/datasyncapps/syncmlapp/SyncMLDummy/resource/Aif
+/app/techview/datasyncapps/syncmlapp/SyncMLDummy/source
+/app/techview/datasyncapps/syncmlapp/SyncMLUiNotifiers/Docs
+/app/techview/datasyncapps/syncmlapp/SyncMLUiNotifiers/Inc
+/app/techview/datasyncapps/syncmlapp/SyncMLUiNotifiers/Src
+/app/techview/datasyncapps/syncmlapp/SyncMLUiNotifiers/TSrc
+/app/techview/datasyncapps/syncmlapp/SyncMLUiNotifiers/bwins
+/app/techview/datasyncapps/syncmlapp/SyncMLUiNotifiers/eabi
+/app/techview/datasyncapps/syncmlapp/group
+/app/techview/datasyncapps/syncmlapp/smlApplication/aif
+/app/techview/datasyncapps/syncmlapp/smlprogress/Docs
+/app/techview/datasyncapps/syncmlapp/smlprogress/aif
+/app/techview/datasyncapps/syncmlapp/smlprogress/group
+/app/techview/datasyncapps/syncmlapp/smlprogress/inc
+/app/techview/datasyncapps/syncmlapp/smlprogress/src
+/app/techview/utilityapps/timew/Docs
+/app/techview/utilityapps/timew/aif
+/app/techview/utilityapps/timew/caif
+/app/techview/utilityapps/timew/cdata
+/app/techview/utilityapps/timew/data
+/app/techview/utilityapps/timew/group
+/app/techview/utilityapps/timew/inc
+/app/techview/utilityapps/timew/smodel
+/app/techview/utilityapps/timew/stimew
+/app/techview/utilityapps/timew/ttimew
+/app/techview/shortlinkapps/techviewusbui/USBUiDummy/group
+/app/techview/shortlinkapps/techviewusbui/USBUiDummy/include
+/app/techview/shortlinkapps/techviewusbui/USBUiDummy/resource/Aif
+/app/techview/shortlinkapps/techviewusbui/USBUiDummy/source
+/app/techview/shortlinkapps/techviewusbui/docs
+/app/techview/shortlinkapps/techviewusbui/export
+/app/techview/shortlinkapps/techviewusbui/group
+/app/techview/shortlinkapps/techviewusbui/include
+/app/techview/shortlinkapps/techviewusbui/resource/Aif
+/app/techview/shortlinkapps/techviewusbui/source
+/app/techview/shortlinkapps/bluetoothui/BTConnector/inc
+/app/techview/shortlinkapps/bluetoothui/BTConnector/src
+/app/techview/shortlinkapps/bluetoothui/BTDeviceRemover/inc
+/app/techview/shortlinkapps/bluetoothui/BTDeviceRemover/src
+/app/techview/shortlinkapps/bluetoothui/BTDeviceScanner/inc
+/app/techview/shortlinkapps/bluetoothui/BTDeviceScanner/src
+/app/techview/shortlinkapps/bluetoothui/BTOnOff/inc
+/app/techview/shortlinkapps/bluetoothui/BTOnOff/src
+/app/techview/shortlinkapps/bluetoothui/BTRegistryHelper/inc
+/app/techview/shortlinkapps/bluetoothui/BTRegistryHelper/src
+/app/techview/shortlinkapps/bluetoothui/BTSharedUI/Inc
+/app/techview/shortlinkapps/bluetoothui/BTSharedUI/Src
+/app/techview/shortlinkapps/bluetoothui/BTSharedUI/srcdata
+/app/techview/shortlinkapps/bluetoothui/BTUICtrlPanel/aifsrc
+/app/techview/shortlinkapps/bluetoothui/BTUICtrlPanel/inc
+/app/techview/shortlinkapps/bluetoothui/BTUICtrlPanel/src
+/app/techview/shortlinkapps/bluetoothui/BTUICtrlPanel/srcdata
+/app/techview/shortlinkapps/bluetoothui/BTUIDummy/group
+/app/techview/shortlinkapps/bluetoothui/BTUIDummy/include
+/app/techview/shortlinkapps/bluetoothui/BTUIDummy/resource/Aif
+/app/techview/shortlinkapps/bluetoothui/BTUIDummy/source
+/app/techview/shortlinkapps/bluetoothui/BTUINotifiers/Inc
+/app/techview/shortlinkapps/bluetoothui/BTUINotifiers/Src
+/app/techview/shortlinkapps/bluetoothui/BTUINotifiers/TSrc
+/app/techview/shortlinkapps/bluetoothui/BTUINotifiers/srcdata
+/app/techview/shortlinkapps/bluetoothui/BTUIUtility/inc
+/app/techview/shortlinkapps/bluetoothui/BTUIUtility/src
+/app/techview/shortlinkapps/bluetoothui/Docs
+/app/techview/shortlinkapps/bluetoothui/bwins
+/app/techview/shortlinkapps/bluetoothui/eabi
+/app/techview/shortlinkapps/bluetoothui/group
+/app/techview/shortlinkapps/connectui/group
+/app/techview/shortlinkapps/connectui/inc
+/app/techview/shortlinkapps/connectui/src
+/app/techview/networkingapps/iapstatusapp/Docs
+/app/techview/networkingapps/iapstatusapp/group
+/app/techview/networkingapps/iapstatusapp/src/aif
+/app/techview/telephonyapps/techviewphoneui/AIF
+/app/techview/telephonyapps/techviewphoneui/Doc
+/app/techview/telephonyapps/techviewphoneui/Export
+/app/techview/telephonyapps/techviewphoneui/Src
+/app/techview/telephonyapps/techviewphoneui/group
+/app/techview/networkingapps/wpsconnect/bmp
+/app/techview/networkingapps/wpsconnect/docs
+/app/techview/networkingapps/wpsconnect/group
+/app/techview/networkingapps/wpsconnect/inc
+/app/techview/networkingapps/wpsconnect/resource
+/app/techview/networkingapps/wpsconnect/src
+/app/techview/messagingapps/messagingui/BIOViewer/Docs
+/app/techview/messagingapps/messagingui/BIOViewer/Group
+/app/techview/messagingapps/messagingui/BIOViewer/Src
+/app/techview/messagingapps/messagingui/Biomtm/Docs
+/app/techview/messagingapps/messagingui/Biomtm/Export
+/app/techview/messagingapps/messagingui/Biomtm/Group
+/app/techview/messagingapps/messagingui/Biomtm/Mtmui
+/app/techview/messagingapps/messagingui/Biomtm/MtmuiData
+/app/techview/messagingapps/messagingui/Biomtm/Resource/Bitmaps
+/app/techview/messagingapps/messagingui/Biomtm/bwins
+/app/techview/messagingapps/messagingui/Biomtm/eabi
+/app/techview/messagingapps/messagingui/EmailEditor/Doc
+/app/techview/messagingapps/messagingui/EmailEditor/Group
+/app/techview/messagingapps/messagingui/EmailEditor/Src
+/app/techview/messagingapps/messagingui/EmailMtm/Export
+/app/techview/messagingapps/messagingui/EmailMtm/Group
+/app/techview/messagingapps/messagingui/EmailMtm/Help
+/app/techview/messagingapps/messagingui/EmailMtm/MtmUi
+/app/techview/messagingapps/messagingui/EmailMtm/MtmUiData
+/app/techview/messagingapps/messagingui/EmailMtm/Resource/bitmaps
+/app/techview/messagingapps/messagingui/EmailMtm/bwins
+/app/techview/messagingapps/messagingui/EmailMtm/doc
+/app/techview/messagingapps/messagingui/EmailMtm/eabi
+/app/techview/messagingapps/messagingui/Group
+/app/techview/messagingapps/messagingui/MsgBrowser/BWINS
+/app/techview/messagingapps/messagingui/MsgBrowser/Doc
+/app/techview/messagingapps/messagingui/MsgBrowser/EABI
+/app/techview/messagingapps/messagingui/MsgBrowser/Export
+/app/techview/messagingapps/messagingui/MsgBrowser/Group
+/app/techview/messagingapps/messagingui/MsgBrowser/Help
+/app/techview/messagingapps/messagingui/MsgBrowser/Src/MsgCache
+/app/techview/messagingapps/messagingui/MsgBrowser/Src/icons
+/app/techview/messagingapps/messagingui/MsgCentre/Doc
+/app/techview/messagingapps/messagingui/MsgCentre/Group
+/app/techview/messagingapps/messagingui/MsgCentre/Help
+/app/techview/messagingapps/messagingui/MsgCentre/Src/Aif
+/app/techview/messagingapps/messagingui/MsgCentre/Test/LaunchMtm/Include
+/app/techview/messagingapps/messagingui/MsgCentre/Test/LaunchMtm/Resources
+/app/techview/messagingapps/messagingui/MsgCentre/Test/LaunchMtm/Source
+/app/techview/messagingapps/messagingui/MsgCentre/Test/PushMtm/Include
+/app/techview/messagingapps/messagingui/MsgCentre/Test/PushMtm/Resources
+/app/techview/messagingapps/messagingui/MsgCentre/Test/PushMtm/Source
+/app/techview/messagingapps/messagingui/MsgCentre/Test/TextMTM/txin
+/app/techview/messagingapps/messagingui/MsgCentre/Test/TextMTM/txtc
+/app/techview/messagingapps/messagingui/MsgCentre/Test/TextMTM/txti
+/app/techview/messagingapps/messagingui/MsgCentre/Test/TextMTM/txts
+/app/techview/messagingapps/messagingui/MsgCentre/Test/TextMTM/txtu
+/app/techview/messagingapps/messagingui/MsgCentre/Test/TextMTM/txut
+/app/techview/messagingapps/messagingui/MsgCentre/Test/bwins
+/app/techview/messagingapps/messagingui/MsgCentre/Test/eabi
+/app/techview/messagingapps/messagingui/MsgDebugger/Aif
+/app/techview/messagingapps/messagingui/MsgDebugger/Doc
+/app/techview/messagingapps/messagingui/MsgDebugger/Icons
+/app/techview/messagingapps/messagingui/MsgDebugger/Include
+/app/techview/messagingapps/messagingui/MsgDebugger/Resources
+/app/techview/messagingapps/messagingui/MsgDebugger/Source
+/app/techview/messagingapps/messagingui/MsgEditor/Doc
+/app/techview/messagingapps/messagingui/MsgEditor/Export
+/app/techview/messagingapps/messagingui/MsgEditor/Group
+/app/techview/messagingapps/messagingui/MsgEditor/Med
+/app/techview/messagingapps/messagingui/MsgEditor/MedApp
+/app/techview/messagingapps/messagingui/MsgEditor/MedVw
+/app/techview/messagingapps/messagingui/MsgEditor/Test/MedTest
+/app/techview/messagingapps/messagingui/MsgEditor/Test/TextMTMEdit
+/app/techview/messagingapps/messagingui/MsgEditor/bwins
+/app/techview/messagingapps/messagingui/MsgEditor/eabi
+/app/techview/messagingapps/messagingui/MsgUIUtils/BWINS
+/app/techview/messagingapps/messagingui/MsgUIUtils/Doc
+/app/techview/messagingapps/messagingui/MsgUIUtils/EABI
+/app/techview/messagingapps/messagingui/MsgUIUtils/Export
+/app/techview/messagingapps/messagingui/MsgUIUtils/Group
+/app/techview/messagingapps/messagingui/MsgUIUtils/Src
+/app/techview/messagingapps/messagingui/MsgUIUtils/Test
+/app/techview/messagingapps/messagingui/SMSMtm/Doc
+/app/techview/messagingapps/messagingui/SMSMtm/Export
+/app/techview/messagingapps/messagingui/SMSMtm/Group
+/app/techview/messagingapps/messagingui/SMSMtm/MtmUi
+/app/techview/messagingapps/messagingui/SMSMtm/MtmUiData
+/app/techview/messagingapps/messagingui/SMSMtm/Resource/Bitmaps
+/app/techview/messagingapps/messagingui/SMSMtm/bwins
+/app/techview/messagingapps/messagingui/SMSMtm/eabi
+/app/techview/messagingapps/messagingui/SmsEditor/Docs
+/app/techview/messagingapps/messagingui/SmsEditor/Group
+/app/techview/messagingapps/messagingui/SmsEditor/Resource/bitmaps
+/app/techview/messagingapps/messagingui/SmsEditor/Src
+/app/techview/messagingapps/messagingui/msginit/Doc
+/app/techview/messagingapps/messagingui/msginit/Group
+/app/techview/messagingapps/messagingui/msginit/Src
+/app/techview/messagingapps/messagingui/msginit/bwins
+/app/techview/controlpanel/keyclickref/Group
+/app/techview/controlpanel/keyclickref/Inc
+/app/techview/controlpanel/keyclickref/Src
+/app/techview/toolkit/configfiles
+/app/techview/controlpanel/cctlcolscheme/Doc
+/app/techview/controlpanel/cctlcolscheme/Export
+/app/techview/controlpanel/cctlcolscheme/Resource/Aif
+/app/techview/controlpanel/cctlcolscheme/group
+/app/techview/controlpanel/cctlcolscheme/include
+/app/techview/controlpanel/cctlcolscheme/source
+/app/techview/techviewplat/feps/docs
+/app/techview/techviewplat/feps/group
+/app/techview/techviewplat/feps/include
+/app/techview/techviewplat/feps/source
+/app/techview/techviewplat/feps/test/group
+/app/techview/techviewplat/feps/test/include
+/app/techview/techviewplat/feps/test/source
+/app/techview/controlpanel/fepsetup/group
+/app/techview/controlpanel/fepsetup/include
+/app/techview/controlpanel/fepsetup/source
+/app/techview/controlpanel/soundsetup/Docs
+/app/techview/controlpanel/soundsetup/SystemSounds
+/app/techview/controlpanel/soundsetup/aifc
+/app/techview/controlpanel/soundsetup/bwins
+/app/techview/controlpanel/soundsetup/eabi
+/app/techview/controlpanel/soundsetup/group
+/app/techview/controlpanel/soundsetup/inc
+/app/techview/controlpanel/soundsetup/src
+/app/techview/networkingapps/networkingagentnotifier/data
+/app/techview/networkingapps/networkingagentnotifier/group
+/app/techview/networkingapps/networkingagentnotifier/inc
+/app/techview/networkingapps/networkingagentnotifier/src
+/app/techview/networkingapps/techviewvpnui/group
+/app/techview/networkingapps/techviewvpnui/kmdnotifier/data
+/app/techview/networkingapps/techviewvpnui/kmdnotifier/group
+/app/techview/networkingapps/techviewvpnui/kmdnotifier/inc
+/app/techview/networkingapps/techviewvpnui/kmdnotifier/src
+/app/techview/networkingapps/techviewvpnui/pkinotifier/aif
+/app/techview/networkingapps/techviewvpnui/pkinotifier/bmarm
+/app/techview/networkingapps/techviewvpnui/pkinotifier/bwins
+/app/techview/networkingapps/techviewvpnui/pkinotifier/data
+/app/techview/networkingapps/techviewvpnui/pkinotifier/doc
+/app/techview/networkingapps/techviewvpnui/pkinotifier/group
+/app/techview/networkingapps/techviewvpnui/pkinotifier/inc
+/app/techview/networkingapps/techviewvpnui/pkinotifier/src
+/app/techview/networkingapps/techviewvpnui/vpnnotifier/data/T3_calimero
+/app/techview/networkingapps/techviewvpnui/vpnnotifier/inc
+/app/techview/networkingapps/techviewvpnui/vpnnotifier/src
+/app/techview/networkingapps/techviewvpnui/vpnpolins/aif
+/app/techview/networkingapps/techviewvpnui/vpnpolins/bmarm
+/app/techview/networkingapps/techviewvpnui/vpnpolins/bwins
+/app/techview/networkingapps/techviewvpnui/vpnpolins/data
+/app/techview/networkingapps/techviewvpnui/vpnpolins/doc
+/app/techview/networkingapps/techviewvpnui/vpnpolins/group
+/app/techview/networkingapps/techviewvpnui/vpnpolins/inc
+/app/techview/networkingapps/techviewvpnui/vpnpolins/src
+/app/techview/networkingapps/techviewvpnui/vpnui/aif
+/app/techview/networkingapps/techviewvpnui/vpnui/data
+/app/techview/networkingapps/techviewvpnui/vpnui/group
+/app/techview/networkingapps/techviewvpnui/vpnui/inc
+/app/techview/networkingapps/techviewvpnui/vpnui/src
+/app/techview/techviewplat/eikstd/Docs
+/app/techview/techviewplat/eikstd/bwins
+/app/techview/techviewplat/eikstd/cdlginc
+/app/techview/techviewplat/eikstd/cdlgsrc
+/app/techview/techviewplat/eikstd/coctlinc
+/app/techview/techviewplat/eikstd/coctlsrc
+/app/techview/techviewplat/eikstd/console
+/app/techview/techviewplat/eikstd/ctlinc
+/app/techview/techviewplat/eikstd/ctlsrc
+/app/techview/techviewplat/eikstd/dlginc
+/app/techview/techviewplat/eikstd/dlgsrc
+/app/techview/techviewplat/eikstd/eabi
+/app/techview/techviewplat/eikstd/fileinc
+/app/techview/techviewplat/eikstd/filesrc
+/app/techview/techviewplat/eikstd/group
+/app/techview/techviewplat/eikstd/inc
+/app/techview/techviewplat/eikstd/initinc
+/app/techview/techviewplat/eikstd/initsrc
+/app/techview/techviewplat/eikstd/irinc
+/app/techview/techviewplat/eikstd/irsrc
+/app/techview/techviewplat/eikstd/miscinc
+/app/techview/techviewplat/eikstd/miscsrc
+/app/techview/techviewplat/eikstd/printinc
+/app/techview/techviewplat/eikstd/printsrc
+/app/techview/techviewplat/eikstd/srvuiinc
+/app/techview/techviewplat/eikstd/srvuisrc
+/app/techview/techviewplat/eikstd/techviewctlinc
+/app/techview/techviewplat/eikstd/techviewctlsrc
+/app/techview/techviewplat/eikstd/unbranched_srvuiinc
+/app/techview/techviewplat/eikstd/unbranched_srvuisrc
+/app/techview/techviewui/techviewextras/Docs
+/app/techview/techviewui/techviewextras/bwins
+/app/techview/techviewui/techviewextras/eabi
+/app/techview/techviewui/techviewextras/group
+/app/techview/techviewui/techviewextras/inc
+/app/techview/techviewui/techviewextras/src
+/app/techview/toolkit/romkit/group
+/app/techview/toolkit/romkit/include
+/app/techview/techviewui/shell/Docs
+/app/techview/techviewui/shell/design
+/app/techview/techviewui/shell/group
+/app/techview/techviewui/shell/inc
+/app/techview/techviewui/shell/src
+/app/techview/techviewui/shell/srccolor
+/app/techview/techviewui/shell/srcdata
+/app/techview/techviewui/startup/BWINS
+/app/techview/techviewui/startup/Splash
+/app/techview/techviewui/startup/SrcDataC
+/app/techview/techviewui/startup/StartInc
+/app/techview/techviewui/startup/StartSrc
+/app/techview/techviewui/startup/SysStartConfig/group
+/app/techview/techviewui/startup/SysStartConfig/resource/armv5
+/app/techview/techviewui/startup/SysStartConfig/resource/wins
+/app/techview/techviewui/startup/defaultFileInit
+/app/techview/techviewui/startup/docs
+/app/techview/techviewui/startup/group
+/app/techview/techviewui/startup/ssmaconfig/group
+/app/techview/techviewui/startup/ssmaconfig/resource/armv5
+/app/techview/techviewui/startup/ssmaconfig/resource/wins
+/app/techview/techviewui/statuspane/Docs
+/app/techview/techviewui/statuspane/bwins
+/app/techview/techviewui/statuspane/eabi
+/app/techview/techviewui/statuspane/group
+/app/techview/techviewui/statuspane/panesinc
+/app/techview/techviewui/statuspane/panessrc
+/app/techview/techviewui/statuspane/spaneinitinc
+/app/techview/techviewui/statuspane/spaneinitsrc
+/app/techview/techviewplat/techviewuiklaf/Docs
+/app/techview/techviewplat/techviewuiklaf/GROUP
+/app/techview/techviewplat/techviewuiklaf/aifsrc
+/app/techview/techviewplat/techviewuiklaf/aifsrccl
+/app/techview/techviewplat/techviewuiklaf/bwins
+/app/techview/techviewplat/techviewuiklaf/cursdat
+/app/techview/techviewplat/techviewuiklaf/eabi
+/app/techview/techviewplat/techviewuiklaf/inc
+/app/techview/techviewplat/techviewuiklaf/parser
+/app/techview/techviewplat/techviewuiklaf/resource
+/app/techview/techviewplat/techviewuiklaf/src
+/app/techview/techviewplat/techviewuiklaf/srcdata
+/app/techview/techviewplat/techviewuiklaf/srcdatac
+/app/techview/techviewplat/techviewuiklaf/uk
+/mw/remoteconn/connectivitypcside/chatscripts/Docs
+/mw/remoteconn/connectivitypcside/chatscripts/bmarm
+/mw/remoteconn/connectivitypcside/chatscripts/bwins
+/mw/remoteconn/connectivitypcside/chatscripts/chat
+/mw/remoteconn/connectivitypcside/chatscripts/eabi
+/mw/remoteconn/connectivitypcside/chatscripts/group
+/mw/remoteconn/connectivitypcside/chatscripts/include
+/mw/remoteconn/connectivitypcside/chatscripts/test/T_ChatScripts
+/mw/remoteconn/connectivitypcside/chatscripts/test/data
+/mw/remoteconn/connectivitypcside/chatscripts/test/group
+/app/techview/testapps/rschandler/Common/inc
+/app/techview/testapps/rschandler/Common/rsc
+/app/techview/testapps/rschandler/Common/src
+/app/techview/testapps/rschandler/TVResourceHandler/group
+/app/techview/testapps/rschandler/TVResourceHandler/inc
+/app/techview/testapps/rschandler/docs
+/os/buildtools/toolsandutils/testdriver/Device/Console/bmarm
+/os/buildtools/toolsandutils/testdriver/Device/Console/bwins
+/os/buildtools/toolsandutils/testdriver/Device/Console/group
+/os/buildtools/toolsandutils/testdriver/Device/Console/inc
+/os/buildtools/toolsandutils/testdriver/Device/Console/src
+/os/buildtools/toolsandutils/testdriver/Device/Group
+/os/buildtools/toolsandutils/testdriver/Device/GuiLessConsole/bmarm
+/os/buildtools/toolsandutils/testdriver/Device/GuiLessConsole/bwins
+/os/buildtools/toolsandutils/testdriver/Device/GuiLessConsole/eabi
+/os/buildtools/toolsandutils/testdriver/Device/GuiLessConsole/group
+/os/buildtools/toolsandutils/testdriver/Device/GuiLessConsole/inc
+/os/buildtools/toolsandutils/testdriver/Device/GuiLessConsole/src
+/os/buildtools/toolsandutils/testdriver/Device/LogControl/Group
+/os/buildtools/toolsandutils/testdriver/Device/LogControl/Include
+/os/buildtools/toolsandutils/testdriver/Device/LogControl/Source
+/os/buildtools/toolsandutils/testdriver/Device/LogControl/Test/group
+/os/buildtools/toolsandutils/testdriver/Device/LogControl/Test/inc
+/os/buildtools/toolsandutils/testdriver/Device/LogControl/Test/src
+/os/buildtools/toolsandutils/testdriver/Device/LogControl/bwins
+/os/buildtools/toolsandutils/testdriver/Device/LoggerExt/Group
+/os/buildtools/toolsandutils/testdriver/Device/LoggerExt/Inc
+/os/buildtools/toolsandutils/testdriver/Device/LoggerExt/Src
+/os/buildtools/toolsandutils/testdriver/Device/LoggerExt/Test/group
+/os/buildtools/toolsandutils/testdriver/Device/LoggerExt/Test/src
+/os/buildtools/toolsandutils/testdriver/Device/LoggerExt/bmarm
+/os/buildtools/toolsandutils/testdriver/Device/LoggerExt/bwins
+/os/buildtools/toolsandutils/testdriver/Device/LoggerExt/eabi
+/os/buildtools/toolsandutils/testdriver/Device/TestControl/Group
+/os/buildtools/toolsandutils/testdriver/Device/TestControl/Inc
+/os/buildtools/toolsandutils/testdriver/Device/TestControl/Src
+/os/buildtools/toolsandutils/testdriver/Device/TestControl/Test/group
+/os/buildtools/toolsandutils/testdriver/Device/TestControl/Test/inc
+/os/buildtools/toolsandutils/testdriver/Device/TestControl/Test/src
+/os/buildtools/toolsandutils/testdriver/Documentation
+/os/buildtools/toolsandutils/testdriver/Group
+/os/buildtools/toolsandutils/testdriver/Host/Automation
+/os/buildtools/toolsandutils/testdriver/Host/Build
+/os/buildtools/toolsandutils/testdriver/Host/PortMonitor/group
+/os/buildtools/toolsandutils/testdriver/Host/Release
+/os/buildtools/toolsandutils/testdriver/Host/Rose
+/os/buildtools/toolsandutils/testdriver/Host/Scripts/com/symbian/utils
+/os/buildtools/toolsandutils/testdriver/Host/certs
+/os/buildtools/toolsandutils/testdriver/Host/src/com/symbian/et/testdriver/build
+/os/buildtools/toolsandutils/testdriver/Host/src/com/symbian/et/testdriver/installer
+/os/buildtools/toolsandutils/testdriver/Host/src/com/symbian/et/testdriver/utils
+/os/buildtools/toolsandutils/testdriver/Remote/Docs
+/os/buildtools/toolsandutils/testdriver/Remote/config
+/os/buildtools/toolsandutils/testdriver/Remote/lib
+/os/buildtools/toolsandutils/testdriver/Remote/release
+/os/buildtools/toolsandutils/testdriver/Remote/src/com/symbian/et/testmanager/utils
+/os/buildtools/toolsandutils/testdriver/Remote/src/com/symbian/testdriver/client
+/os/buildtools/toolsandutils/testdriver/Remote/src/com/symbian/testdriver/master
+/os/buildtools/toolsandutils/testdriver/Remote/src/com/symbian/testdriver/test
+/os/buildtools/toolsandutils/testdriver/Remote/src/com/symbian/testdriver/utils
+/os/buildtools/toolsandutils/testdriver/Remote/test/client
+/os/buildtools/toolsandutils/testdriver/Remote/test/data/input/arm4
+/os/buildtools/toolsandutils/testdriver/Remote/test/data/input/winscw
+/os/buildtools/toolsandutils/testdriver/Remote/test/master
+/os/buildtools/toolsandutils/testdriver/Remote/test/td
+/os/buildtools/toolsandutils/testdriver/Test/Data/Results
+/os/buildtools/toolsandutils/testdriver/Test/Data/Source/ASSP/group
+/os/buildtools/toolsandutils/testdriver/Test/Data/Source/CommandLineTest
+/os/buildtools/toolsandutils/testdriver/Test/Data/Source/Inc
+/os/buildtools/toolsandutils/testdriver/Test/Data/Source/LegacyRomTestPass
+/os/buildtools/toolsandutils/testdriver/Test/Data/Source/LegacyTestBuildAndDataDep
+/os/buildtools/toolsandutils/testdriver/Test/Data/Source/LegacyTestFail
+/os/buildtools/toolsandutils/testdriver/Test/Data/Source/LegacyTestNoBuildDep
+/os/buildtools/toolsandutils/testdriver/Test/Data/Source/LegacyTestNoDataDep
+/os/buildtools/toolsandutils/testdriver/Test/Data/Source/LegacyTestPass
+/os/buildtools/toolsandutils/testdriver/Test/Data/Source/LegacyTestPassConsole
+/os/buildtools/toolsandutils/testdriver/Test/Data/Source/LegacyTestTimeOut
+/os/buildtools/toolsandutils/testdriver/Test/Data/Source/LegacyTestUserPanic
+/os/buildtools/toolsandutils/testdriver/Test/Data/Source/SampleLegacySuiteBuildDep
+/os/buildtools/toolsandutils/testdriver/Test/Data/Source/SampleLegacyTest1
+/os/buildtools/toolsandutils/testdriver/Test/Data/Source/SampleLegacyTest2
+/os/buildtools/toolsandutils/testdriver/Test/Data/Source/SampleLegacyTest3/SampleLegacyTest3BuildDep
+/os/buildtools/toolsandutils/testdriver/Test/Data/Source/SampleLegacyTest4/SampleLegacyTest4BuildDep
+/os/buildtools/toolsandutils/testdriver/Test/Data/Source/SampleLegacyTest5/SampleLegacyTest5BuildDep
+/os/buildtools/toolsandutils/testdriver/Test/Data/Source/SampleLegacyTest6/SampleLegacyTest6BuildDep
+/os/buildtools/toolsandutils/testdriver/Test/Data/Source/SampleLegacyTest7/SampleLegacyTest7BuildDep
+/os/buildtools/toolsandutils/testdriver/Test/Data/Source/SampleLegacyTest8
+/os/buildtools/toolsandutils/testdriver/Test/Data/Source/SampleLegacyTest9
+/os/buildtools/toolsandutils/testdriver/Test/Data/Source/SampleServer/Scripts
+/os/buildtools/toolsandutils/testdriver/Test/Data/Source/SampleServer/deps
+/os/buildtools/toolsandutils/testdriver/Test/Data/Source/SampleServer/testdata
+/os/buildtools/toolsandutils/testdriver/Test/Data/Source/SimpleTestExecuteTest/Scripts
+/os/buildtools/toolsandutils/testdriver/Test/Data/Source/SimpleTestExecuteTest/testdata
+/os/buildtools/toolsandutils/testdriver/Test/Data/Source/bmarm
+/os/buildtools/toolsandutils/testdriver/Test/Data/Source/bwins
+/os/buildtools/toolsandutils/testdriver/Test/Data/Source/eabi
+/os/buildtools/toolsandutils/testdriver/Test/Data/Source/group
+/os/buildtools/toolsandutils/testdriver/Test/Data/XML/ParserDataSet
+/os/buildtools/toolsandutils/testdriver/Test/Data/XML/StandAloneTests
+/os/buildtools/toolsandutils/testdriver/Test/Data/XML/root/TestDataSet/BuilderDataSet/CommandLineTestSuite
+/os/buildtools/toolsandutils/testdriver/Test/Data/XML/root/TestDataSet/BuilderDataSet/SampleLegacySuite
+/os/buildtools/toolsandutils/testdriver/Test/Data/XML/root/TestDataSet/BuilderDataSet/SampleTestExecuteSuite/testExecuteServers
+/os/buildtools/toolsandutils/testdriver/Test/Data/XML/root/TestDataSet/RunnerDataSet/CommandLineTestSuite
+/os/buildtools/toolsandutils/testdriver/Test/Data/XML/root/TestDataSet/RunnerDataSet/SampleLegacySuite
+/os/buildtools/toolsandutils/testdriver/Test/Data/XML/root/TestDataSet/RunnerDataSet/SampleTestExecuteSuite/testExecuteServers
+/os/buildtools/toolsandutils/testdriver/Test/Data/XML/root/TestDriverTests/DeviceSideTests
+/os/buildtools/toolsandutils/testdriver/Test/Data/XML/testdriver/demo/testExecuteServers
+/os/buildtools/toolsandutils/testdriver/Test/Data/XML/testdriver/smoke/testExecuteServers
+/os/buildtools/toolsandutils/testdriver/Test/Source
+/os/buildtools/toolsandutils/testdriver/XML
+/os/persistentdata/traceservices/utrace/group
+/os/persistentdata/traceservices/utrace/inc
+/os/persistentdata/traceservices/utrace/test/te_UTrace/Documentation
+/os/persistentdata/traceservices/utrace/test/te_UTrace/group
+/os/persistentdata/traceservices/utrace/test/te_UTrace/scripts
+/os/persistentdata/traceservices/utrace/test/te_UTrace/src
+/os/persistentdata/traceservices/utrace/test/te_UTrace/testdata
+/os/persistentdata/traceservices/utrace/test/te_UTrace/xml/te_UTraceSuite/testexecuteservers
+/os/buildtools/toolsandutils/burtestserver/Docs/Design
+/os/buildtools/toolsandutils/burtestserver/Docs/Guide
+/os/buildtools/toolsandutils/burtestserver/Group
+/os/buildtools/toolsandutils/burtestserver/SampleTestScripts
+/os/buildtools/toolsandutils/burtestserver/TestServer/inc
+/os/buildtools/toolsandutils/burtestserver/TestServer/src
+/os/buildtools/toolsandutils/burtestserver/TestSteps/inc
+/os/buildtools/toolsandutils/burtestserver/TestSteps/src
+/os/buildtools/binanamdw_os/captools/data
+/os/buildtools/binanamdw_os/captools/docs/Design
+/os/buildtools/binanamdw_os/captools/group
+/os/buildtools/binanamdw_os/captools/sample/CapCheck/Sample_XML_ECL
+/os/buildtools/binanamdw_os/captools/sample/CapImportCheck
+/os/buildtools/binanamdw_os/captools/sample/CapSearch
+/os/buildtools/binanamdw_os/captools/sample/ImportsAnalyser
+/os/buildtools/binanamdw_os/captools/src
+/os/buildtools/binanamdw_os/captools/tests/T_CapCheck/TestData
+/os/buildtools/binanamdw_os/captools/tests/T_CapImportCheck/TestData
+/os/buildtools/binanamdw_os/captools/tests/T_CapSearch/TestData
+/os/buildtools/binanamdw_os/captools/tests/T_ImportsAnalyser/TestData
+/os/buildtools/toolsandutils/cdb/distribution
+/os/buildtools/toolsandutils/cdb/documentation
+/os/buildtools/toolsandutils/cdb/group
+/os/buildtools/toolsandutils/cdb/jet
+/os/buildtools/toolsandutils/cdb/lib
+/os/buildtools/toolsandutils/cdb/misc
+/os/buildtools/toolsandutils/cdb/plugins
+/os/buildtools/toolsandutils/cdb/src/com/symbian/cdb/command/database
+/os/buildtools/toolsandutils/cdb/src/com/symbian/cdb/command/user
+/os/buildtools/toolsandutils/cdb/src/com/symbian/cdb/comparison
+/os/buildtools/toolsandutils/cdb/src/com/symbian/cdb/database
+/os/buildtools/toolsandutils/cdb/src/com/symbian/cdb/entity
+/os/buildtools/toolsandutils/cdb/src/com/symbian/cdb/extraction
+/os/buildtools/toolsandutils/cdb/src/com/symbian/cdb/gxp
+/os/buildtools/toolsandutils/cdb/src/com/symbian/cdb/model
+/os/buildtools/toolsandutils/cdb/src/com/symbian/cdb/options
+/os/buildtools/toolsandutils/cdb/src/com/symbian/cdb/plugin/impl/nullclassifier/test
+/os/buildtools/toolsandutils/cdb/src/com/symbian/cdb/plugin/impl/simpleclassifier/test
+/os/buildtools/toolsandutils/cdb/src/com/symbian/cdb/plugin/impl/symbianclassifier/test
+/os/buildtools/toolsandutils/cdb/src/com/symbian/cdb/plugin/impl/util
+/os/buildtools/toolsandutils/cdb/src/com/symbian/cdb/plugin/test/util
+/os/buildtools/toolsandutils/cdb/src/com/symbian/cdb/report
+/os/buildtools/toolsandutils/cdb/src/com/symbian/cdb/settings
+/os/buildtools/toolsandutils/cdb/src/com/symbian/cdb/test/extraction
+/os/buildtools/toolsandutils/cdb/src/com/symbian/cdb/types
+/os/buildtools/toolsandutils/cdb/src/com/symbian/cdb/utils
+/os/buildtools/toolsandutils/cdb/testcase/com/symbian/cdblibs
+/os/buildtools/toolsandutils/cdb/testcase/com/symbian/cdbtest
+/os/buildtools/toolsandutils/cdb/testcontrol/Batch
+/os/buildtools/toolsandutils/cdb/testcontrol/commandLine
+/os/buildtools/toolsandutils/cdb/testcontrol/controller
+/os/buildtools/toolsandutils/cdb/testcontrol/libs
+/os/buildtools/toolsandutils/cdb/testcontrol/testPreparation
+/os/buildtools/toolsandutils/cdb/testdata/apiClassificationDocs
+/os/buildtools/toolsandutils/cdb/testdata/plugindescriptors
+/os/buildtools/toolsandutils/ctsfunctionalitycheckers/Group
+/os/buildtools/toolsandutils/ctsfunctionalitycheckers/Root/BaseTests
+/os/buildtools/toolsandutils/kitcomparator/TestData/IntegrationTests/T17_KC_Integration1/KitData
+/os/buildtools/toolsandutils/kitcomparator/TestData/IntegrationTests/T17_KC_Integration1/SDKData
+/os/buildtools/toolsandutils/kitcomparator/TestData/IntegrationTests/T17_KC_Integration1/kitinput
+/os/buildtools/toolsandutils/kitcomparator/TestData/IntegrationTests/T18_KC_Integration2/KitData
+/os/buildtools/toolsandutils/kitcomparator/TestData/IntegrationTests/T18_KC_Integration2/SDKData
+/os/buildtools/toolsandutils/kitcomparator/TestData/IntegrationTests/T18_KC_Integration2/kitinput
+/os/buildtools/toolsandutils/kitcomparator/TestData/RealKits/T19_KC_Series60
+/os/buildtools/toolsandutils/kitcomparator/TestData/RealKits/T20_KC_UIQ
+/os/buildtools/toolsandutils/kitcomparator/TestData/RealKits/T21_KC_MCL
+/os/buildtools/toolsandutils/kitcomparator/TestData/TestCustKit/os/unref/orphan/comgen/KitComp/T_Base
+/os/buildtools/toolsandutils/kitcomparator/TestData/TestCustKit/os/unref/orphan/comgen/KitComp/T_CommRep/group
+/os/buildtools/toolsandutils/kitcomparator/TestData/TestCustKit/os/unref/orphan/comgen/KitComp/T_CommRep/src
+/os/buildtools/toolsandutils/kitcomparator/TestData/TestCustKit/os/unref/orphan/comgen/KitComp/T_CommSym1/group
+/os/buildtools/toolsandutils/kitcomparator/TestData/TestCustKit/os/unref/orphan/comgen/KitComp/T_CommSym1/src
+/os/buildtools/toolsandutils/kitcomparator/TestData/TestCustKit/os/unref/orphan/comgen/KitComp/T_CommSym2/group
+/os/buildtools/toolsandutils/kitcomparator/TestData/TestCustKit/os/unref/orphan/comgen/KitComp/T_CommSym2/src
+/os/buildtools/toolsandutils/kitcomparator/TestData/TestCustKit/os/unref/orphan/comgen/KitComp/T_OptRep/group
+/os/buildtools/toolsandutils/kitcomparator/TestData/TestCustKit/os/unref/orphan/comgen/KitComp/T_OptRep/src
+/os/buildtools/toolsandutils/kitcomparator/TestData/TestCustKit/os/unref/orphan/comgen/KitComp/T_OptSym1/group
+/os/buildtools/toolsandutils/kitcomparator/TestData/TestCustKit/os/unref/orphan/comgen/KitComp/T_OptSym1/src
+/os/buildtools/toolsandutils/kitcomparator/TestData/TestCustKit/os/unref/orphan/comgen/KitComp/T_OptSym2/group
+/os/buildtools/toolsandutils/kitcomparator/TestData/TestCustKit/os/unref/orphan/comgen/KitComp/T_OptSym2/src
+/os/buildtools/toolsandutils/kitcomparator/TestData/TestCustKit/os/buildtools/bldsystemtools/commonbldutils
+/os/buildtools/toolsandutils/kitcomparator/TestData/UnitTests/T01_KDB_NoComponents/KitData
+/os/buildtools/toolsandutils/kitcomparator/TestData/UnitTests/T01_KDB_NoComponents/kitinput
+/os/buildtools/toolsandutils/kitcomparator/TestData/UnitTests/T02_KDB_AllComponents/KitData
+/os/buildtools/toolsandutils/kitcomparator/TestData/UnitTests/T02_KDB_AllComponents/kitinput
+/os/buildtools/toolsandutils/kitcomparator/TestData/UnitTests/T03_KDB_CommSym/KitData
+/os/buildtools/toolsandutils/kitcomparator/TestData/UnitTests/T03_KDB_CommSym/kitinput
+/os/buildtools/toolsandutils/kitcomparator/TestData/UnitTests/T04_KDB_OptSym/KitData
+/os/buildtools/toolsandutils/kitcomparator/TestData/UnitTests/T04_KDB_OptSym/kitinput
+/os/buildtools/toolsandutils/kitcomparator/TestData/UnitTests/T05_KDB_CommRep/KitData
+/os/buildtools/toolsandutils/kitcomparator/TestData/UnitTests/T05_KDB_CommRep/kitinput
+/os/buildtools/toolsandutils/kitcomparator/TestData/UnitTests/T06_KDB_OptRep/KitData
+/os/buildtools/toolsandutils/kitcomparator/TestData/UnitTests/T06_KDB_OptRep/kitinput
+/os/buildtools/toolsandutils/kitcomparator/TestData/UnitTests/T07_KC_NoComponents/KitData
+/os/buildtools/toolsandutils/kitcomparator/TestData/UnitTests/T07_KC_NoComponents/SDKData
+/os/buildtools/toolsandutils/kitcomparator/TestData/UnitTests/T08_KC_NoDependencies/KitData
+/os/buildtools/toolsandutils/kitcomparator/TestData/UnitTests/T08_KC_NoDependencies/SDKData
+/os/buildtools/toolsandutils/kitcomparator/TestData/UnitTests/T09_KC_AllComponents/KitData
+/os/buildtools/toolsandutils/kitcomparator/TestData/UnitTests/T09_KC_AllComponents/SDKData
+/os/buildtools/toolsandutils/kitcomparator/TestData/UnitTests/T10_KC_CommSymSingleComp/KitData
+/os/buildtools/toolsandutils/kitcomparator/TestData/UnitTests/T10_KC_CommSymSingleComp/SDKData
+/os/buildtools/toolsandutils/kitcomparator/TestData/UnitTests/T11_KC_CommSymMultipleComps/KitData
+/os/buildtools/toolsandutils/kitcomparator/TestData/UnitTests/T11_KC_CommSymMultipleComps/SDKData
+/os/buildtools/toolsandutils/kitcomparator/TestData/UnitTests/T12_KC_OptSymSingleComp/KitData
+/os/buildtools/toolsandutils/kitcomparator/TestData/UnitTests/T12_KC_OptSymSingleComp/SDKData
+/os/buildtools/toolsandutils/kitcomparator/TestData/UnitTests/T13_KC_OptSymMultipleComps/KitData
+/os/buildtools/toolsandutils/kitcomparator/TestData/UnitTests/T13_KC_OptSymMultipleComps/SDKData
+/os/buildtools/toolsandutils/kitcomparator/TestData/UnitTests/T14_KC_MissingHeaders/KitData
+/os/buildtools/toolsandutils/kitcomparator/TestData/UnitTests/T14_KC_MissingHeaders/SDKData
+/os/buildtools/toolsandutils/kitcomparator/TestData/UnitTests/T15_KC_MissingLibs/KitData
+/os/buildtools/toolsandutils/kitcomparator/TestData/UnitTests/T15_KC_MissingLibs/SDKData
+/os/buildtools/toolsandutils/kitcomparator/TestData/UnitTests/T16_KC_CorruptedLibs/KitData
+/os/buildtools/toolsandutils/kitcomparator/TestData/UnitTests/T16_KC_CorruptedLibs/SDKData
+/os/buildtools/toolsandutils/kitcomparator/bin
+/os/buildtools/toolsandutils/kitcomparator/docs
+/os/buildtools/toolsandutils/kitcomparator/group
+/os/buildtools/toolsandutils/kitcomparator/src/DepModel
+/os/buildtools/toolsandutils/kitcomparator/src/ICToolsBase
+/os/buildtools/toolsandutils/testtoolsdesktop/EmulatorConfiguration
+/os/buildtools/toolsandutils/testtoolsdesktop/TestDriverDTDs
+/os/buildtools/toolsandutils/testtoolsdesktop/bin
+/os/buildtools/toolsandutils/testtoolsdesktop/coverity/bin/2.1.2
+/os/buildtools/toolsandutils/testtoolsdesktop/coverity/configmanagement
+/os/buildtools/toolsandutils/testtoolsdesktop/coverity/doc
+/os/buildtools/toolsandutils/testtoolsdesktop/coverity/group
+/os/buildtools/toolsandutils/testtoolsdesktop/coverity/installer/CoverityConfig/armcc-config-0
+/os/buildtools/toolsandutils/testtoolsdesktop/coverity/installer/CoverityConfig/armcpp-config-0
+/os/buildtools/toolsandutils/testtoolsdesktop/coverity/installer/CoverityConfig/armcpp-config-1
+/os/buildtools/toolsandutils/testtoolsdesktop/coverity/installer/CoverityConfig/templates/arm
+/os/buildtools/toolsandutils/testtoolsdesktop/coverity/installer/CoverityConfig/templates/diab
+/os/buildtools/toolsandutils/testtoolsdesktop/coverity/installer/CoverityConfig/templates/green_hills
+/os/buildtools/toolsandutils/testtoolsdesktop/coverity/installer/CoverityConfig/templates/intel
+/os/buildtools/toolsandutils/testtoolsdesktop/coverity/installer/CoverityConfig/templates/msvc
+/os/buildtools/toolsandutils/testtoolsdesktop/coverity/installer/CoverityConfig/templates/mwc
+/os/buildtools/toolsandutils/testtoolsdesktop/coverity/installer/CoverityConfig/templates/suncc
+/os/buildtools/toolsandutils/testtoolsdesktop/coverity/installer/CoverityConfig/templates/ti
+/os/buildtools/toolsandutils/testtoolsdesktop/coverity/src/2.1.2
+/os/buildtools/toolsandutils/testtoolsdesktop/coverity/test/group
+/os/buildtools/toolsandutils/testtoolsdesktop/coverity/test/scripts
+/os/buildtools/toolsandutils/testtoolsdesktop/coverity/test/src
+/os/buildtools/toolsandutils/testtoolsdesktop/coverity/test/testdata
+/os/buildtools/toolsandutils/testtoolsdesktop/docs/coverity/checkers
+/os/buildtools/toolsandutils/testtoolsdesktop/docs/inidata
+/os/buildtools/toolsandutils/testtoolsdesktop/docs/logger
+/os/buildtools/toolsandutils/testtoolsdesktop/docs/statftp
+/os/buildtools/toolsandutils/testtoolsdesktop/docs/testdriver/xml-wizard/modelization
+/os/buildtools/toolsandutils/testtoolsdesktop/docs/testdriver2
+/os/buildtools/toolsandutils/testtoolsdesktop/docs/viewer
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/automation
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.comms/META-INF
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.comms/nativeSrc/Debug
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.comms/nativeSrc/Release
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.comms/resource
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.comms/src/com/symbian/comms
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.core/.settings
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.core/META-INF
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.core/doc/com/symbian/et/test/cmdline/argscheckers/class-use
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.core/doc/com/symbian/et/test/cmdline/argscheckers/test/class-use
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.core/doc/com/symbian/et/test/cmdline/class-use
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.core/doc/com/symbian/et/test/cmdline/genericcmds/class-use
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.core/doc/com/symbian/et/test/cmdline/test/class-use
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.core/doc/com/symbian/et/test/cmdline/testharness/class-use
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.core/doc/com/symbian/et/test/controller/class-use
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.core/doc/com/symbian/et/test/controller/visitor/class-use
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.core/doc/com/symbian/et/test/driver/commands/class-use
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.core/doc/com/symbian/et/test/driver/commands/filesetbased/class-use
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.core/doc/com/symbian/et/test/driver/commands/filesetbased/test/class-use
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.core/doc/com/symbian/et/test/driver/core/class-use
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.core/doc/com/symbian/et/test/environment/class-use
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.core/doc/com/symbian/et/test/report/class-use
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.core/doc/com/symbian/et/test/xmlimport/class-use
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.core/doc/index-files
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.core/doc/resources
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.core/resource/td1dtd
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.core/resource/wintap
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.core/resource/xslt
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.core/src/com/symbian/driver/core/cmdline
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.core/src/com/symbian/driver/core/controller/event
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.core/src/com/symbian/driver/core/controller/tasks
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.core/src/com/symbian/driver/core/controller/utils
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.core/src/com/symbian/driver/core/environment
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.core/src/com/symbian/driver/core/processors
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.core/src/com/symbian/driver/core/report
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.core/src/com/symbian/driver/core/xmlimport
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.core/src/com/symbian/driver/remoting/client
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.core/src/com/symbian/driver/remoting/cmdline
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.core/src/com/symbian/driver/remoting/master
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.core/src/com/symbian/driver/remoting/packaging/build
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.core/src/com/symbian/driver/remoting/packaging/installer
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.engine/META-INF
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.engine/doc/com/symbian/et/test/engine/class-use
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.engine/doc/com/symbian/et/test/engine/test/class-use
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.engine/doc/com/symbian/et/test/environment/class-use
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.engine/doc/com/symbian/et/test/environment/test/class-use
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.engine/doc/index-files
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.engine/doc/resources
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.engine/src/com/symbian/driver/engine
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.feature/automation
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.feature/doc
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.releng/buildconfiguration
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.releng/map
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.report/META-INF
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.report/model
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.report/src/com/symbian/driver/report/impl
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.report/src/com/symbian/driver/report/util
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.tests/META-INF
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.tests/src/com/symbian/driver/core/controller
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.tests/src/com/symbian/driver/core/environment
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.tests/src/com/symbian/driver/core/report
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.tests/src/com/symbian/driver/core/xmlimport
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.tests/src/com/symbian/driver/driver/tests
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.tests/src/com/symbian/driver/engine
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.tests/src/com/symbian/driver/tests
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.ui/META-INF
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.ui/icons/full/ctool16
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.ui/icons/full/obj16
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.ui/icons/full/wizban
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.ui/src/com/symbian/driver/actions
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.ui/src/com/symbian/driver/preferences
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.ui/src/com/symbian/driver/presentation
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver.ui/src/com/symbian/driver/provider
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver/.settings
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver/META-INF
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver/model
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver/src/com/symbian/driver/impl
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.driver/src/com/symbian/driver/util
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.ini.core/META-INF
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.ini.core/src/com/symbian/ini/core/model
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.jstat/META-INF
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.jstat/doc/com/symbian/et/jstat/class-use
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.jstat/doc/com/symbian/et/jstat/test/class-use
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.jstat/doc/index-files
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.jstat/doc/resources
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.jstat/nativeSrc/Debug
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.jstat/nativeSrc/Release
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.jstat/resource
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.jstat/src/com/symbian/jstat/test
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.nativeprocesshandler/META-INF
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.nativeprocesshandler/nativeSrc/Debug
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.nativeprocesshandler/nativeSrc/Release
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.nativeprocesshandler/resource
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.nativeprocesshandler/src/com/symbian/nativeprocesshandler
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.script.core/META-INF
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.script.core/icons
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.script.core/src/com/symbian/script/core/model
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.tef.hierarchy.additemaction/META-INF
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.tef.hierarchy.additemaction/icons
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.tef.hierarchy.additemaction/src/com/symbian/tef/hierarchy/additemaction
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.tef.hierarchy/META-INF
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.tef.hierarchy/icons
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.tef.hierarchy/schema
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.tef.hierarchy/src/com/symbian/tef/hierarchy/core
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.tef.hierarchy/src/com/symbian/tef/hierarchy/ui
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.tef.templates/META-INF
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.tef.templates/src
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.tef.templates/templates/com/symbian/tef/templates/projecttemplates/EmptyTefUnit/behavior
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.tef.templates/templates/com/symbian/tef/templates/projecttemplates/EmptyTefUnit/data
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.tef.templates/templates/com/symbian/tef/templates/projecttemplates/EmptyTefUnit/inc
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.tef.templates/templates/com/symbian/tef/templates/projecttemplates/EmptyTefUnit/src
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.tefunit.editors.ini/META-INF
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.tefunit.editors.ini/icons
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.tefunit.editors.ini/src/com/symbian/tefunit/editors/ini/core
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.tefunit.editors.ini/src/com/symbian/tefunit/editors/utils
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.tefunit.editors.ini/src/com/symbian/tefunit/editors/wizards
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.tefunit.editors.script/META-INF
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.tefunit.editors.script/icons
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.tefunit.editors.script/src/com/symbian/tefunit/editors/script/core
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.tefunit.editors.script/src/com/symbian/tefunit/editors/script/wizards
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.utils/META-INF
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.utils/src/com/symbian/utils/cmdline/argscheckers/test
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.utils/src/com/symbian/utils/cmdline/genericcmds
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.utils/src/com/symbian/utils/cmdline/test/testharness
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.utils/src/com/symbian/utils/config
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.utils/src/com/symbian/utils/log/test
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/com.symbian.utils/src/com/symbian/utils/test
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/docs
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/org.apache.commons_cli/META-INF
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/org.java.javax.mail/META-INF
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/org.jdom/META-INF
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/test/com.symbian.tef.hierarchy.tests/META-INF
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/test/com.symbian.tef.hierarchy.tests/src/com/symbian/tef/hierarchy/tests
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/test/com.symbian.tef.ini.tests/META-INF
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/test/com.symbian.tef.ini.tests/data
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/test/com.symbian.tef.ini.tests/src/com/symbian/tef/ini/tests
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/test/com.symbian.tef.script.tests/META-INF
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/test/com.symbian.tef.script.tests/src/com/symbian/tef/script/tests
+/os/buildtools/toolsandutils/testtoolsdesktop/eclipse/test/scripts
+/os/buildtools/toolsandutils/testtoolsdesktop/edg/group
+/os/buildtools/toolsandutils/testtoolsdesktop/group
+/os/buildtools/toolsandutils/testtoolsdesktop/inc/external/group
+/os/buildtools/toolsandutils/testtoolsdesktop/inc/internal
+/os/buildtools/toolsandutils/testtoolsdesktop/src/EDGd/bin
+/os/buildtools/toolsandutils/testtoolsdesktop/src/JStat
+/os/buildtools/toolsandutils/testtoolsdesktop/src/TEFWizard/group
+/os/buildtools/toolsandutils/testtoolsdesktop/src/TEFWizard/source/DirTree/res
+/os/buildtools/toolsandutils/testtoolsdesktop/src/TEFWizard/source/TEFUniteTool/SKELETONTESTDIR/files
+/os/buildtools/toolsandutils/testtoolsdesktop/src/TEFWizard/source/TEFUniteTool/SKELETONTESTDIR/group
+/os/buildtools/toolsandutils/testtoolsdesktop/src/TEFWizard/source/TEFUniteTool/SKELETONTESTDIR/inc
+/os/buildtools/toolsandutils/testtoolsdesktop/src/TEFWizard/source/TEFUniteTool/SKELETONTESTDIR/scripts
+/os/buildtools/toolsandutils/testtoolsdesktop/src/TEFWizard/source/TEFUniteTool/SKELETONTESTDIR/src
+/os/buildtools/toolsandutils/testtoolsdesktop/src/TEFWizard/source/testharnesswiz/res
+/os/buildtools/toolsandutils/testtoolsdesktop/src/TEFWizard/source/testharnesswiz/template
+/os/buildtools/toolsandutils/testtoolsdesktop/src/TestDriver/Host/Automation
+/os/buildtools/toolsandutils/testtoolsdesktop/src/TestDriver/Host/Release
+/os/buildtools/toolsandutils/testtoolsdesktop/src/TestDriver/Host/certs
+/os/buildtools/toolsandutils/testtoolsdesktop/src/WinTAP/bin
+/os/buildtools/toolsandutils/testtoolsdesktop/src/WinTAP/driver
+/os/buildtools/toolsandutils/testtoolsdesktop/src/WinTAP/group
+/os/buildtools/toolsandutils/testtoolsdesktop/src/WinTAP/inc
+/os/buildtools/toolsandutils/testtoolsdesktop/src/WinTAP/lib
+/os/buildtools/toolsandutils/testtoolsdesktop/src/WinTAP/src
+/os/buildtools/toolsandutils/testtoolsdesktop/src/WinTAP/utils
+/os/buildtools/toolsandutils/testtoolsdesktop/src/com/symbian/et/Tefwizard
+/os/buildtools/toolsandutils/testtoolsdesktop/src/com/symbian/et/aura/app
+/os/buildtools/toolsandutils/testtoolsdesktop/src/com/symbian/et/aura/command/user
+/os/buildtools/toolsandutils/testtoolsdesktop/src/com/symbian/et/aura/config
+/os/buildtools/toolsandutils/testtoolsdesktop/src/com/symbian/et/aura/database
+/os/buildtools/toolsandutils/testtoolsdesktop/src/com/symbian/et/aura/misc
+/os/buildtools/toolsandutils/testtoolsdesktop/src/com/symbian/et/aura/model
+/os/buildtools/toolsandutils/testtoolsdesktop/src/com/symbian/et/aura/options
+/os/buildtools/toolsandutils/testtoolsdesktop/src/com/symbian/et/aura/report
+/os/buildtools/toolsandutils/testtoolsdesktop/src/com/symbian/et/aura/settings
+/os/buildtools/toolsandutils/testtoolsdesktop/src/com/symbian/et/aura/test/app
+/os/buildtools/toolsandutils/testtoolsdesktop/src/com/symbian/et/aura/test/command/user
+/os/buildtools/toolsandutils/testtoolsdesktop/src/com/symbian/et/aura/test/model
+/os/buildtools/toolsandutils/testtoolsdesktop/src/com/symbian/et/aura/test/report
+/os/buildtools/toolsandutils/testtoolsdesktop/src/com/symbian/et/aura/test/settings
+/os/buildtools/toolsandutils/testtoolsdesktop/src/com/symbian/et/aura/utils
+/os/buildtools/toolsandutils/testtoolsdesktop/src/com/symbian/et/ftp
+/os/buildtools/toolsandutils/testtoolsdesktop/src/com/symbian/et/inidata
+/os/buildtools/toolsandutils/testtoolsdesktop/src/com/symbian/et/jstat
+/os/buildtools/toolsandutils/testtoolsdesktop/src/com/symbian/et/logger
+/os/buildtools/toolsandutils/testtoolsdesktop/src/com/symbian/et/tdtestframework/test
+/os/buildtools/toolsandutils/testtoolsdesktop/src/com/symbian/et/tdxmlengine/test
+/os/buildtools/toolsandutils/testtoolsdesktop/src/com/symbian/et/tdxmlengine/xmlexport
+/os/buildtools/toolsandutils/testtoolsdesktop/src/com/symbian/et/tdxmlengine/xmlimport/systemtest
+/os/buildtools/toolsandutils/testtoolsdesktop/src/com/symbian/et/tdxmlengine/xmlimport/test
+/os/buildtools/toolsandutils/testtoolsdesktop/src/com/symbian/et/tdxmlwiz/gui/test
+/os/buildtools/toolsandutils/testtoolsdesktop/src/com/symbian/et/tdxmlwiz/systemtest
+/os/buildtools/toolsandutils/testtoolsdesktop/src/com/symbian/et/test/data
+/os/buildtools/toolsandutils/testtoolsdesktop/src/com/symbian/et/test/inidata
+/os/buildtools/toolsandutils/testtoolsdesktop/src/com/symbian/et/test/logger
+/os/buildtools/toolsandutils/testtoolsdesktop/src/com/symbian/et/testmanager/execution
+/os/buildtools/toolsandutils/testtoolsdesktop/src/com/symbian/et/testmanager/gui
+/os/buildtools/toolsandutils/testtoolsdesktop/src/com/symbian/et/testmanager/icons
+/os/buildtools/toolsandutils/testtoolsdesktop/src/com/symbian/et/testmanager/testdata
+/os/buildtools/toolsandutils/testtoolsdesktop/src/com/symbian/et/testmanager/utils
+/os/buildtools/toolsandutils/testtoolsdesktop/src/com/symbian/et/testmanager/xml
+/os/buildtools/toolsandutils/testtoolsdesktop/src/com/symbian/et/viewer/appui
+/os/buildtools/toolsandutils/testtoolsdesktop/src/com/symbian/et/viewer/configuration
+/os/buildtools/toolsandutils/testtoolsdesktop/src/com/symbian/et/viewer/display/controls
+/os/buildtools/toolsandutils/testtoolsdesktop/src/com/symbian/et/viewer/display/exceptions
+/os/buildtools/toolsandutils/testtoolsdesktop/src/com/symbian/et/viewer/display/images
+/os/buildtools/toolsandutils/testtoolsdesktop/src/com/symbian/et/viewer/display/widgets/colorgrid
+/os/buildtools/toolsandutils/testtoolsdesktop/src/com/symbian/et/viewer/display/widgets/differencer
+/os/buildtools/toolsandutils/testtoolsdesktop/src/com/symbian/et/viewer/display/widgets/listeners
+/os/buildtools/toolsandutils/testtoolsdesktop/src/com/symbian/et/viewer/documents
+/os/buildtools/toolsandutils/testtoolsdesktop/src/com/symbian/et/viewer/export
+/os/buildtools/toolsandutils/testtoolsdesktop/src/com/symbian/et/viewer/icons
+/os/buildtools/toolsandutils/testtoolsdesktop/src/com/symbian/et/viewer/loader
+/os/buildtools/toolsandutils/testtoolsdesktop/src/com/symbian/et/viewer/logging
+/os/buildtools/toolsandutils/testtoolsdesktop/src/com/symbian/et/viewer/model
+/os/buildtools/toolsandutils/testtoolsdesktop/src/com/symbian/et/viewer/plugin
+/os/buildtools/toolsandutils/testtoolsdesktop/src/com/symbian/et/viewer/test/appui
+/os/buildtools/toolsandutils/testtoolsdesktop/src/com/symbian/et/viewer/test/display/controls
+/os/buildtools/toolsandutils/testtoolsdesktop/src/com/symbian/et/viewer/test/display/images
+/os/buildtools/toolsandutils/testtoolsdesktop/src/com/symbian/et/viewer/test/display/widgets/colorgrid
+/os/buildtools/toolsandutils/testtoolsdesktop/src/com/symbian/et/viewer/test/documents
+/os/buildtools/toolsandutils/testtoolsdesktop/src/com/symbian/et/viewer/test/export
+/os/buildtools/toolsandutils/testtoolsdesktop/src/com/symbian/et/viewer/test/loader
+/os/buildtools/toolsandutils/testtoolsdesktop/src/com/symbian/et/viewer/test/logging
+/os/buildtools/toolsandutils/testtoolsdesktop/src/com/symbian/et/viewer/test/model
+/os/buildtools/toolsandutils/testtoolsdesktop/src/com/symbian/et/widgets/systemtest
+/os/buildtools/toolsandutils/testtoolsdesktop/src/installer/group
+/os/buildtools/toolsandutils/testtoolsdesktop/test/testdata/viewer
+/os/unref/orphan/comtt/edg/group
+/os/buildtools/srcanamdw_os/leavescan/doc
+/os/buildtools/srcanamdw_os/leavescan/group
+/os/buildtools/srcanamdw_os/leavescan/source
+/os/buildtools/srcanamdw_os/leavescan/test/LET
+/os/buildtools/srcanamdw_os/leavescan/test/testcases/LS1-testcases
+/os/buildtools/srcanamdw_os/leavescan/test/testcases/LS11-testcases
+/os/buildtools/srcanamdw_os/leavescan/test/testcases/LS12-testcases
+/os/buildtools/srcanamdw_os/leavescan/test/testcases/LS13-testcases
+/os/buildtools/srcanamdw_os/leavescan/test/testcases/LS14-testcases
+/os/buildtools/srcanamdw_os/leavescan/test/testcases/LS15-testcases
+/os/buildtools/srcanamdw_os/leavescan/test/testcases/LS16-testcases
+/os/buildtools/srcanamdw_os/leavescan/test/testcases/LS2-testcases
+/os/buildtools/srcanamdw_os/leavescan/test/testcases/LS3-testcases
+/os/buildtools/srcanamdw_os/migrationtool/docs
+/os/buildtools/srcanamdw_os/migrationtool/group
+/os/buildtools/srcanamdw_os/migrationtool/sample
+/os/buildtools/srcanamdw_os/migrationtool/src/GCCBinUtils
+/os/buildtools/srcanamdw_os/migrationtool/src/XML
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT01.TC2.3/data
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT01.TC2.3/group
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT01.TC2.3/src
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT01.TC3.1/data
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT01.TC3.1/group
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT01.TC3.1/src
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT01.TC3.2/data
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT01.TC3.2/group
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT01.TC3.2/src
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT01.TC5.1/data
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT01.TC5.1/group
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT01.TC5.1/src
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT01.TC5.2/data
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT01.TC5.2/group
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT01.TC5.2/src
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT01.TC5.3/data
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT01.TC5.3/group
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT01.TC5.3/src
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT02.TC1.2/data
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT02.TC1.3/data
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT02.TC2/data
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT02.TC2/group
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT02.TC2/src
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT02.TC3/data
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT02.TC3/group
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT02.TC3/src
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT03.TC1/data
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT03.TC2/data
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT03.TC2/group
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT03.TC2/src
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT03.TC3/data
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT03.TC3/group
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT03.TC3/src
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT04.TC1/data
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT04.TC2/data
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT04.TC2/group
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT04.TC2/src
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT04.TC3.1/data
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT04.TC3.2/data
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT04.TC3.2/group
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT04.TC3.2/src
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT04.TC4.1/data
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT04.TC4.2/data
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT04.TC4.2/group
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT04.TC4.2/src
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT04.TC5.1/group
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT04.TC5.1/src
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT04.TC5.2/group
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT04.TC5.2/src
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT04.TC5/data
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT05.TC1/data
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT05.TC1/group
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT05.TC1/src
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT05.TC2/data
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT05.TC2/group
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT05.TC2/src
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT05.TC3/data
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT05.TC3/group
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT05.TC3/src
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT05.TC4/data
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT05.TC4/group
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT05.TC4/src
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT06.TC2/group
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT06.TC2/src
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT08.TC2.1/data
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT08.TC2.2/data
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT08.TC2.2/group
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT08.TC2.2/src
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT08.TC3/data
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT08.TC3/group
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT08.TC3/src
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT08.TC4.1/data
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT08.TC4.1/group
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT08.TC4.1/src
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT08.TC4.2/data
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT08.TC4.2/group
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT08.TC4.2/src
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT08.TC4.3/data
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT08.TC4.3/group
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT08.TC4.3/src
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT_TestLib/group
+/os/buildtools/srcanamdw_os/migrationtool/tests/TestData/RMT_TestLib/src
+/os/buildtools/srcanamdw_os/programchecker/TestData/Components/T01_Unclassified/group
+/os/buildtools/srcanamdw_os/programchecker/TestData/Components/T01_Unclassified/src
+/os/buildtools/srcanamdw_os/programchecker/TestData/Components/T02_IntTech_All/group
+/os/buildtools/srcanamdw_os/programchecker/TestData/Components/T02_IntTech_All/src
+/os/buildtools/srcanamdw_os/programchecker/TestData/Components/T03_IntTech_Rel/group
+/os/buildtools/srcanamdw_os/programchecker/TestData/Components/T03_IntTech_Rel/src
+/os/buildtools/srcanamdw_os/programchecker/TestData/Components/T04_IntTech_Dep/group
+/os/buildtools/srcanamdw_os/programchecker/TestData/Components/T04_IntTech_Dep/src
+/os/buildtools/srcanamdw_os/programchecker/TestData/Components/T05_IntTech_Proto/group
+/os/buildtools/srcanamdw_os/programchecker/TestData/Components/T05_IntTech_Proto/src
+/os/buildtools/srcanamdw_os/programchecker/TestData/Components/T06_IntTech_Test/group
+/os/buildtools/srcanamdw_os/programchecker/TestData/Components/T06_IntTech_Test/src
+/os/buildtools/srcanamdw_os/programchecker/TestData/Components/T07_IntComp_All/group
+/os/buildtools/srcanamdw_os/programchecker/TestData/Components/T07_IntComp_All/src
+/os/buildtools/srcanamdw_os/programchecker/TestData/Components/T08_IntComp_Rel/group
+/os/buildtools/srcanamdw_os/programchecker/TestData/Components/T08_IntComp_Rel/src
+/os/buildtools/srcanamdw_os/programchecker/TestData/Components/T09_IntComp_Dep/group
+/os/buildtools/srcanamdw_os/programchecker/TestData/Components/T09_IntComp_Dep/src
+/os/buildtools/srcanamdw_os/programchecker/TestData/Components/T10_IntComp_Proto/group
+/os/buildtools/srcanamdw_os/programchecker/TestData/Components/T10_IntComp_Proto/src
+/os/buildtools/srcanamdw_os/programchecker/TestData/Components/T11_IntComp_Test/group
+/os/buildtools/srcanamdw_os/programchecker/TestData/Components/T11_IntComp_Test/src
+/os/buildtools/srcanamdw_os/programchecker/TestData/Components/T12_PubPartner_All/group
+/os/buildtools/srcanamdw_os/programchecker/TestData/Components/T12_PubPartner_All/src
+/os/buildtools/srcanamdw_os/programchecker/TestData/Components/T13_PubPartner_Rel/group
+/os/buildtools/srcanamdw_os/programchecker/TestData/Components/T13_PubPartner_Rel/src
+/os/buildtools/srcanamdw_os/programchecker/TestData/Components/T14_PubPartner_Dep/group
+/os/buildtools/srcanamdw_os/programchecker/TestData/Components/T14_PubPartner_Dep/src
+/os/buildtools/srcanamdw_os/programchecker/TestData/Components/T15_PubPartner_Proto/group
+/os/buildtools/srcanamdw_os/programchecker/TestData/Components/T15_PubPartner_Proto/src
+/os/buildtools/srcanamdw_os/programchecker/TestData/Components/T16_PubPartner_Test/group
+/os/buildtools/srcanamdw_os/programchecker/TestData/Components/T16_PubPartner_Test/src
+/os/buildtools/srcanamdw_os/programchecker/TestData/Components/T17_PubAll_All/group
+/os/buildtools/srcanamdw_os/programchecker/TestData/Components/T17_PubAll_All/src
+/os/buildtools/srcanamdw_os/programchecker/TestData/Components/T18_PubAll_Rel/group
+/os/buildtools/srcanamdw_os/programchecker/TestData/Components/T18_PubAll_Rel/src
+/os/buildtools/srcanamdw_os/programchecker/TestData/Components/T19_PubAll_Dep/group
+/os/buildtools/srcanamdw_os/programchecker/TestData/Components/T19_PubAll_Dep/src
+/os/buildtools/srcanamdw_os/programchecker/TestData/Components/T20_PubAll_Proto/group
+/os/buildtools/srcanamdw_os/programchecker/TestData/Components/T20_PubAll_Proto/src
+/os/buildtools/srcanamdw_os/programchecker/TestData/Components/T21_PubAll_Test/group
+/os/buildtools/srcanamdw_os/programchecker/TestData/Components/T21_PubAll_Test/src
+/os/buildtools/srcanamdw_os/programchecker/TestData/Components/T22_All_Released/group
+/os/buildtools/srcanamdw_os/programchecker/TestData/Components/T22_All_Released/src
+/os/buildtools/srcanamdw_os/programchecker/TestData/Components/T23_All_Deprecated/group
+/os/buildtools/srcanamdw_os/programchecker/TestData/Components/T23_All_Deprecated/src
+/os/buildtools/srcanamdw_os/programchecker/TestData/Components/T24_All_Prototype/group
+/os/buildtools/srcanamdw_os/programchecker/TestData/Components/T24_All_Prototype/src
+/os/buildtools/srcanamdw_os/programchecker/TestData/Components/T25_All_Test/group
+/os/buildtools/srcanamdw_os/programchecker/TestData/Components/T25_All_Test/src
+/os/buildtools/srcanamdw_os/programchecker/TestData/IntegrationTests/PCT10_Integration/group
+/os/buildtools/srcanamdw_os/programchecker/TestData/IntegrationTests/PCT10_Integration/results
+/os/buildtools/srcanamdw_os/programchecker/TestData/IntegrationTests/PCT10_Integration/src
+/os/buildtools/srcanamdw_os/programchecker/TestData/UnitTests/PCT01_NoAPIs/group
+/os/buildtools/srcanamdw_os/programchecker/TestData/UnitTests/PCT01_NoAPIs/results
+/os/buildtools/srcanamdw_os/programchecker/TestData/UnitTests/PCT01_NoAPIs/src
+/os/buildtools/srcanamdw_os/programchecker/TestData/UnitTests/PCT02_IntTech/group
+/os/buildtools/srcanamdw_os/programchecker/TestData/UnitTests/PCT02_IntTech/results
+/os/buildtools/srcanamdw_os/programchecker/TestData/UnitTests/PCT02_IntTech/src
+/os/buildtools/srcanamdw_os/programchecker/TestData/UnitTests/PCT03_IntComp/group
+/os/buildtools/srcanamdw_os/programchecker/TestData/UnitTests/PCT03_IntComp/results
+/os/buildtools/srcanamdw_os/programchecker/TestData/UnitTests/PCT03_IntComp/src
+/os/buildtools/srcanamdw_os/programchecker/TestData/UnitTests/PCT04_PubPartner/group
+/os/buildtools/srcanamdw_os/programchecker/TestData/UnitTests/PCT04_PubPartner/results
+/os/buildtools/srcanamdw_os/programchecker/TestData/UnitTests/PCT04_PubPartner/src
+/os/buildtools/srcanamdw_os/programchecker/TestData/UnitTests/PCT05_PubAll/group
+/os/buildtools/srcanamdw_os/programchecker/TestData/UnitTests/PCT05_PubAll/results
+/os/buildtools/srcanamdw_os/programchecker/TestData/UnitTests/PCT05_PubAll/src
+/os/buildtools/srcanamdw_os/programchecker/TestData/UnitTests/PCT06_Released/group
+/os/buildtools/srcanamdw_os/programchecker/TestData/UnitTests/PCT06_Released/results
+/os/buildtools/srcanamdw_os/programchecker/TestData/UnitTests/PCT06_Released/src
+/os/buildtools/srcanamdw_os/programchecker/TestData/UnitTests/PCT07_Deprecated/group
+/os/buildtools/srcanamdw_os/programchecker/TestData/UnitTests/PCT07_Deprecated/results
+/os/buildtools/srcanamdw_os/programchecker/TestData/UnitTests/PCT07_Deprecated/src
+/os/buildtools/srcanamdw_os/programchecker/TestData/UnitTests/PCT08_Prototype/group
+/os/buildtools/srcanamdw_os/programchecker/TestData/UnitTests/PCT08_Prototype/results
+/os/buildtools/srcanamdw_os/programchecker/TestData/UnitTests/PCT08_Prototype/src
+/os/buildtools/srcanamdw_os/programchecker/TestData/UnitTests/PCT09_Test/group
+/os/buildtools/srcanamdw_os/programchecker/TestData/UnitTests/PCT09_Test/results
+/os/buildtools/srcanamdw_os/programchecker/TestData/UnitTests/PCT09_Test/src
+/os/buildtools/srcanamdw_os/programchecker/bin
+/os/buildtools/srcanamdw_os/programchecker/docs
+/os/buildtools/srcanamdw_os/programchecker/group
+/os/buildtools/srcanamdw_os/programchecker/src/ProgramCheckerBase
+/app/techview/buildverification/smoketest/Group/8.0a
+/app/techview/buildverification/smoketest/Group/8.0b
+/app/techview/buildverification/smoketest/Group/8.1a
+/app/techview/buildverification/smoketest/Group/8.1b
+/app/techview/buildverification/smoketest/Group/9.0
+/app/techview/buildverification/smoketest/Group/9.1
+/app/techview/buildverification/smoketest/Phone/group
+/app/techview/buildverification/smoketest/Phone/scripts
+/app/techview/buildverification/smoketest/SyncMLApp/group
+/app/techview/buildverification/smoketest/SyncMLApp/scripts
+/app/techview/buildverification/smoketest/System/Group
+/app/techview/buildverification/smoketest/System/Inc
+/app/techview/buildverification/smoketest/System/Src
+/app/techview/buildverification/smoketest/System/scripts
+/app/techview/buildverification/smoketest/Timew/ConsoleAlarmAlertServer/Include
+/app/techview/buildverification/smoketest/Timew/ConsoleAlarmAlertServer/Source
+/app/techview/buildverification/smoketest/Timew/Group
+/app/techview/buildverification/smoketest/Timew/Inc
+/app/techview/buildverification/smoketest/Timew/Scripts
+/app/techview/buildverification/smoketest/Timew/Src
+/app/techview/buildverification/smoketest/Timew/TestData
+/app/techview/buildverification/smoketest/Timew/bmarm
+/app/techview/buildverification/smoketest/Timew/bwins
+/app/techview/buildverification/smoketest/Timew/eabi
+/app/techview/buildverification/smoketest/Utils/Inc
+/app/techview/buildverification/smoketest/Utils/Src
+/app/techview/buildverification/smoketest/Utils/bwins
+/app/techview/buildverification/smoketest/Utils/eabi
+/app/techview/buildverification/smoketest/Utils/group
+/app/techview/buildverification/smoketest/agenda/Group
+/app/techview/buildverification/smoketest/agenda/Inc
+/app/techview/buildverification/smoketest/agenda/Scripts
+/app/techview/buildverification/smoketest/agenda/Src
+/app/techview/buildverification/smoketest/agenda/TestData
+/app/techview/buildverification/smoketest/agenda/bwins
+/app/techview/buildverification/smoketest/contacts/TestData
+/app/techview/buildverification/smoketest/contacts/bwins
+/app/techview/buildverification/smoketest/contacts/group
+/app/techview/buildverification/smoketest/contacts/inc
+/app/techview/buildverification/smoketest/contacts/scripts
+/app/techview/buildverification/smoketest/contacts/src
+/app/techview/buildverification/smoketest/messaging/Group
+/app/techview/buildverification/smoketest/messaging/Inc
+/app/techview/buildverification/smoketest/messaging/Scripts
+/app/techview/buildverification/smoketest/messaging/Src
+/app/techview/buildverification/smoketest/messaging/TestData/Sms
+/app/techview/buildverification/smoketest/messaging/bwins
+/app/techview/buildverification/smoketest/xml/smoketest/testexecuteservers
+/os/buildtools/toolsandutils/statsource/common/inc
+/os/buildtools/toolsandutils/statdesktop/bin
+/os/buildtools/toolsandutils/statdesktop/group
+/os/buildtools/toolsandutils/statdesktop/lib
+/os/buildtools/toolsandutils/statdesktop/source/SymbianUsb/bin
+/os/buildtools/toolsandutils/statdesktop/source/SymbianUsb/group
+/os/buildtools/toolsandutils/statdesktop/source/SymbianUsb/inc
+/os/buildtools/toolsandutils/statdesktop/source/SymbianUsb/lib
+/os/buildtools/toolsandutils/statdesktop/source/SymbianUsb/src
+/os/buildtools/toolsandutils/statdesktop/source/common/inc
+/os/buildtools/toolsandutils/statdesktop/source/common/src
+/os/buildtools/toolsandutils/statdesktop/source/common/transport/inc
+/os/buildtools/toolsandutils/statdesktop/source/common/transport/src
+/os/buildtools/toolsandutils/statdesktop/source/desktop/group
+/os/buildtools/toolsandutils/statdesktop/source/desktop/inc
+/os/buildtools/toolsandutils/statdesktop/source/desktop/res
+/os/buildtools/toolsandutils/statdesktop/source/desktop/src
+/os/buildtools/toolsandutils/statdesktop/source/dll/group
+/os/buildtools/toolsandutils/statdesktop/source/dll/inc
+/os/buildtools/toolsandutils/statdesktop/source/dll/res
+/os/buildtools/toolsandutils/statdesktop/source/dll/src
+/os/buildtools/toolsandutils/statdesktop/source/lib/group
+/os/buildtools/toolsandutils/statdesktop/source/lib/inc
+/os/buildtools/toolsandutils/statdesktop/source/lib/src
+/os/buildtools/toolsandutils/statdesktop/source/perl
+/os/buildtools/toolsandutils/statdesktop/source/stat2perl/group
+/os/buildtools/toolsandutils/statdesktop/source/stat2perl/inc
+/os/buildtools/toolsandutils/statdesktop/source/stat2perl/src
+/os/buildtools/toolsandutils/statdesktop/source/trgtest/group
+/os/buildtools/toolsandutils/statdesktop/source/trgtest/src
+/os/buildtools/toolsandutils/statdesktop/testsource/dllcommstesters/TestSTATComms
+/os/buildtools/toolsandutils/statdesktop/testsource/dllcommstesters/TestSTATSocketsAsync
+/os/buildtools/toolsandutils/statdesktop/testsource/dllcommstesters/TestSTATSocketsBlock
+/os/buildtools/toolsandutils/statdesktop/testsource/dlltester/group
+/os/buildtools/toolsandutils/statdesktop/testsource/dlltester/inc
+/os/buildtools/toolsandutils/statdesktop/testsource/dlltester/res
+/os/buildtools/toolsandutils/statdesktop/testsource/dlltester/src
+/os/buildtools/toolsandutils/statdesktop/testsource/dlltestermt/group
+/os/buildtools/toolsandutils/statdesktop/testsource/dlltestermt/inc
+/os/buildtools/toolsandutils/statdesktop/testsource/dlltestermt/src
+/os/buildtools/toolsandutils/statapi/group
+/os/buildtools/toolsandutils/statapi/source/statapi/Series60
+/os/buildtools/toolsandutils/statapi/source/statapi/Techview/Export
+/os/buildtools/toolsandutils/statapi/source/statapi/UIQ
+/os/buildtools/toolsandutils/statapi/source/statapi/common
+/os/buildtools/toolsandutils/statapi/source/statapi/console/Export
+/os/buildtools/toolsandutils/statapi/source/statapi/group
+/os/buildtools/toolsandutils/statapi/source/statapi/inc
+/os/buildtools/toolsandutils/statapi/source/statapi/lib
+/os/buildtools/toolsandutils/statapi/source/statapi/light/StatLightSerial/bwins
+/os/buildtools/toolsandutils/statapi/source/statapi/light/StatLightSerial/eabi
+/os/buildtools/toolsandutils/statapi/source/statapi/light/StatLightSerial/group
+/os/buildtools/toolsandutils/statapi/source/statapi/light/StatLightSerial/src
+/os/buildtools/toolsandutils/statapi/source/statapi/rsc
+/os/buildtools/toolsandutils/statapi/source/statapi/src
+/os/buildtools/toolsandutils/statsource/docs/external
+/os/buildtools/toolsandutils/statsource/docs/internal
+/os/buildtools/toolsandutils/statsource/group
+/os/buildtools/toolsandutils/statsource/scripts/perl
+/os/buildtools/toolsandutils/statsource/scripts/standard
+/os/buildtools/toolsandutils/systemmonitor/EventLogControllerTE/Java_Plugin/bin
+/os/buildtools/toolsandutils/systemmonitor/EventLogControllerTE/Java_Plugin/group
+/os/buildtools/toolsandutils/systemmonitor/EventLogControllerTE/Java_Plugin/src
+/os/buildtools/toolsandutils/systemmonitor/EventLogControllerTE/StyleSheet
+/os/buildtools/toolsandutils/systemmonitor/EventLogControllerTE/bwins
+/os/buildtools/toolsandutils/systemmonitor/EventLogControllerTE/group
+/os/buildtools/toolsandutils/systemmonitor/EventLogControllerTE/inc
+/os/buildtools/toolsandutils/systemmonitor/EventLogControllerTE/src
+/os/buildtools/toolsandutils/systemmonitor/InstrumentationHandler/Group
+/os/buildtools/toolsandutils/systemmonitor/InstrumentationHandler/Inc
+/os/buildtools/toolsandutils/systemmonitor/InstrumentationHandler/Src
+/os/buildtools/toolsandutils/systemmonitor/InstrumentationHandler/bmarm
+/os/buildtools/toolsandutils/systemmonitor/InstrumentationHandler/bwins
+/os/buildtools/toolsandutils/systemmonitor/InstrumentationHandler/eabi
+/os/buildtools/toolsandutils/systemmonitor/StyleSheet
+/os/buildtools/toolsandutils/systemmonitor/SystemMonitor/Group
+/os/buildtools/toolsandutils/systemmonitor/SystemMonitor/Inc
+/os/buildtools/toolsandutils/systemmonitor/SystemMonitor/Src
+/os/buildtools/toolsandutils/systemmonitor/SystemMonitor/bmarm
+/os/buildtools/toolsandutils/systemmonitor/SystemMonitor/bwins
+/os/buildtools/toolsandutils/systemmonitor/SystemMonitor/eabi
+/os/buildtools/toolsandutils/systemmonitor/Test/Group
+/os/buildtools/toolsandutils/systemmonitor/Test/T_APIGathererServer/bwins
+/os/buildtools/toolsandutils/systemmonitor/Test/T_APIGathererServer/group
+/os/buildtools/toolsandutils/systemmonitor/Test/T_APIGathererServer/inc
+/os/buildtools/toolsandutils/systemmonitor/Test/T_APIGathererServer/src
+/os/buildtools/toolsandutils/systemmonitor/Test/T_APIGathererTestProcess/bwins
+/os/buildtools/toolsandutils/systemmonitor/Test/T_APIGathererTestProcess/group
+/os/buildtools/toolsandutils/systemmonitor/Test/T_APIGathererTestProcess/inc
+/os/buildtools/toolsandutils/systemmonitor/Test/T_APIGathererTestProcess/src
+/os/buildtools/toolsandutils/systemmonitor/Test/T_EventLogProducerServer/Scripts
+/os/buildtools/toolsandutils/systemmonitor/Test/T_EventLogProducerServer/TestData
+/os/buildtools/toolsandutils/systemmonitor/Test/T_EventLogProducerServer/bwins
+/os/buildtools/toolsandutils/systemmonitor/Test/T_EventLogProducerServer/group
+/os/buildtools/toolsandutils/systemmonitor/Test/T_EventLogProducerServer/inc
+/os/buildtools/toolsandutils/systemmonitor/Test/T_EventLogProducerServer/src
+/os/buildtools/toolsandutils/systemmonitor/Test/T_EventProducers/Group
+/os/buildtools/toolsandutils/systemmonitor/Test/T_EventProducers/Inc
+/os/buildtools/toolsandutils/systemmonitor/Test/T_EventProducers/Src
+/os/buildtools/toolsandutils/systemmonitor/Test/T_EventProducers/bwins
+/os/buildtools/toolsandutils/systemmonitor/Test/T_Scripts
+/os/buildtools/toolsandutils/systemmonitor/Test/T_SystemMonitorApp/group
+/os/buildtools/toolsandutils/systemmonitor/Test/T_SystemMonitorApp/inc
+/os/buildtools/toolsandutils/systemmonitor/Test/T_SystemMonitorApp/rsc
+/os/buildtools/toolsandutils/systemmonitor/Test/T_SystemMonitorApp/src
+/os/buildtools/toolsandutils/systemmonitor/Test/T_SystemMonitorServer/bwins
+/os/buildtools/toolsandutils/systemmonitor/Test/T_SystemMonitorServer/group
+/os/buildtools/toolsandutils/systemmonitor/Test/T_SystemMonitorServer/inc
+/os/buildtools/toolsandutils/systemmonitor/Test/T_SystemMonitorServer/src
+/os/buildtools/toolsandutils/systemmonitor/Test/T_TestData
+/os/buildtools/toolsandutils/systemmonitor/group
+/os/osrndtools/testexecfw1/testexecute/Documentation
+/os/osrndtools/testexecfw1/testexecute/Group
+/os/osrndtools/testexecfw1/testexecute/JavaPlugin/StyleSheet
+/os/osrndtools/testexecfw1/testexecute/JavaPlugin/bin
+/os/osrndtools/testexecfw1/testexecute/JavaPlugin/group
+/os/osrndtools/testexecfw1/testexecute/JavaPlugin/src
+/os/osrndtools/testexecfw1/testexecute/Logger/Group
+/os/osrndtools/testexecfw1/testexecute/Logger/Src
+/os/osrndtools/testexecfw1/testexecute/Logger/Test/group
+/os/osrndtools/testexecfw1/testexecute/Logger/Test/src
+/os/osrndtools/testexecfw1/testexecute/Logger/bmarm
+/os/osrndtools/testexecfw1/testexecute/Logger/bwins
+/os/osrndtools/testexecfw1/testexecute/Logger/eabi
+/os/osrndtools/testexecfw1/testexecute/Logger/inc
+/os/osrndtools/testexecfw1/testexecute/ScriptEngine/Group
+/os/osrndtools/testexecfw1/testexecute/ScriptEngine/Src
+/os/osrndtools/testexecfw1/testexecute/ScriptEngine/inc
+/os/osrndtools/testexecfw1/testexecute/TEFUnit/Documentation
+/os/osrndtools/testexecfw1/testexecute/TEFUnit/Test/Scripts
+/os/osrndtools/testexecfw1/testexecute/TEFUnit/Test/TestDriver
+/os/osrndtools/testexecfw1/testexecute/TEFUnit/Test/inc
+/os/osrndtools/testexecfw1/testexecute/TEFUnit/Test/src
+/os/osrndtools/testexecfw1/testexecute/TEFUnit/bwins
+/os/osrndtools/testexecfw1/testexecute/TEFUnit/group
+/os/osrndtools/testexecfw1/testexecute/TEFUnit/inc
+/os/osrndtools/testexecfw1/testexecute/TEFUnit/src
+/os/osrndtools/testexecfw1/testexecute/TEFUtilities/Documentation
+/os/osrndtools/testexecfw1/testexecute/TEFUtilities/SystemMonitor/TestDriver
+/os/osrndtools/testexecfw1/testexecute/TEFUtilities/SystemMonitor/data
+/os/osrndtools/testexecfw1/testexecute/TEFUtilities/SystemMonitor/group
+/os/osrndtools/testexecfw1/testexecute/TEFUtilities/SystemMonitor/scripts
+/os/osrndtools/testexecfw1/testexecute/TEFUtilities/TEFUtilityServer/Scripts
+/os/osrndtools/testexecfw1/testexecute/TEFUtilities/TEFUtilityServer/TestDriver
+/os/osrndtools/testexecfw1/testexecute/TEFUtilities/TEFUtilityServer/data
+/os/osrndtools/testexecfw1/testexecute/TEFUtilities/TEFUtilityServer/group
+/os/osrndtools/testexecfw1/testexecute/TEFUtilities/TEFUtilityServer/inc
+/os/osrndtools/testexecfw1/testexecute/TEFUtilities/TEFUtilityServer/src
+/os/osrndtools/testexecfw1/testexecute/TEFUtilities/group
+/os/osrndtools/testexecfw1/testexecute/TEFUtilities/platsec/Cleanup/Group
+/os/osrndtools/testexecfw1/testexecute/TEFUtilities/platsec/Cleanup/Src
+/os/osrndtools/testexecfw1/testexecute/TEFUtilities/platsec/TestDriver
+/os/osrndtools/testexecfw1/testexecute/TEFUtilities/platsec/bwins
+/os/osrndtools/testexecfw1/testexecute/TEFUtilities/platsec/data
+/os/osrndtools/testexecfw1/testexecute/TEFUtilities/platsec/documentation
+/os/osrndtools/testexecfw1/testexecute/TEFUtilities/platsec/group
+/os/osrndtools/testexecfw1/testexecute/TEFUtilities/platsec/inc
+/os/osrndtools/testexecfw1/testexecute/TEFUtilities/platsec/scripts
+/os/osrndtools/testexecfw1/testexecute/TEFUtilities/platsec/src
+/os/osrndtools/testexecfw1/testexecute/Test/AccessServer/bwins
+/os/osrndtools/testexecfw1/testexecute/Test/AccessServer/group
+/os/osrndtools/testexecfw1/testexecute/Test/AccessServer/src
+/os/osrndtools/testexecfw1/testexecute/Test/GlobalShareServer/bwins
+/os/osrndtools/testexecfw1/testexecute/Test/GlobalShareServer/group
+/os/osrndtools/testexecfw1/testexecute/Test/GlobalShareServer/src
+/os/osrndtools/testexecfw1/testexecute/Test/SampleClient/Group
+/os/osrndtools/testexecfw1/testexecute/Test/SampleClient/Src
+/os/osrndtools/testexecfw1/testexecute/Test/SampleServer/bwins
+/os/osrndtools/testexecfw1/testexecute/Test/SampleServer/group
+/os/osrndtools/testexecfw1/testexecute/Test/SampleServer/src
+/os/osrndtools/testexecfw1/testexecute/Test/Scripts
+/os/osrndtools/testexecfw1/testexecute/Test/TEFIntegrationTest/baseline
+/os/osrndtools/testexecfw1/testexecute/Test/TEFIntegrationTest/group
+/os/osrndtools/testexecfw1/testexecute/Test/TEFIntegrationTest/inc
+/os/osrndtools/testexecfw1/testexecute/Test/TEFIntegrationTest/pkg
+/os/osrndtools/testexecfw1/testexecute/Test/TEFIntegrationTest/scripts
+/os/osrndtools/testexecfw1/testexecute/Test/TEFIntegrationTest/src
+/os/osrndtools/testexecfw1/testexecute/Test/TEFIntegrationTest/testdata
+/os/osrndtools/testexecfw1/testexecute/Test/TEFIntegrationTest/testdriver
+/os/osrndtools/testexecfw1/testexecute/Test/TEFIntegrationTest/testsuites/TEFIntegrationTest/negative
+/os/osrndtools/testexecfw1/testexecute/Test/TEFIntegrationTest/testsuites/TEFIntegrationTest/positive
+/os/osrndtools/testexecfw1/testexecute/Test/TEFIntegrationTest/testsuites/group
+/os/osrndtools/testexecfw1/testexecute/Test/te_Regression/Documentation
+/os/osrndtools/testexecfw1/testexecute/Test/te_Regression/group
+/os/osrndtools/testexecfw1/testexecute/Test/te_Regression/src
+/os/osrndtools/testexecfw1/testexecute/Test/te_Regression/testdata/configs
+/os/osrndtools/testexecfw1/testexecute/Test/te_Regression/testdata/scripts
+/os/osrndtools/testexecfw1/testexecute/Test/testdata
+/os/osrndtools/testexecfw1/testexecute/Utils/Group
+/os/osrndtools/testexecfw1/testexecute/Utils/Src
+/os/osrndtools/testexecfw1/testexecute/Utils/bmarm
+/os/osrndtools/testexecfw1/testexecute/Utils/bwins
+/os/osrndtools/testexecfw1/testexecute/Utils/eabi
+/os/osrndtools/testexecfw1/testexecute/Utils/inc
+/os/osrndtools/testexecfw1/testexecute/workshop/demoipsuite/Documentation
+/os/osrndtools/testexecfw1/testexecute/workshop/demoipsuite/bwins
+/os/osrndtools/testexecfw1/testexecute/workshop/demoipsuite/group
+/os/osrndtools/testexecfw1/testexecute/workshop/demoipsuite/scripts
+/os/osrndtools/testexecfw1/testexecute/workshop/demoipsuite/src
+/os/osrndtools/testexecfw1/testexecute/workshop/demoipsuite/testdata
+/os/buildtools/toolsandutils/usecasecontroller/BinInternal/rpcgen
+/os/buildtools/toolsandutils/usecasecontroller/BuildScripts/bwins
+/os/buildtools/toolsandutils/usecasecontroller/BuildScripts/eabi
+/os/buildtools/toolsandutils/usecasecontroller/BuildScripts/group
+/os/buildtools/toolsandutils/usecasecontroller/BuildTools/cleantree
+/os/buildtools/toolsandutils/usecasecontroller/Docs/External
+/os/buildtools/toolsandutils/usecasecontroller/External/binaries_for_build/librpc
+/os/buildtools/toolsandutils/usecasecontroller/External/binaries_for_install_distributable
+/os/buildtools/toolsandutils/usecasecontroller/External/patches_to_source_for_install
+/os/buildtools/toolsandutils/usecasecontroller/External/source_for_build/oncrpc/rpc
+/os/buildtools/toolsandutils/usecasecontroller/GenericService/Common/inc
+/os/buildtools/toolsandutils/usecasecontroller/GenericService/Common/src
+/os/buildtools/toolsandutils/usecasecontroller/GenericService/SyncService/Configuration
+/os/buildtools/toolsandutils/usecasecontroller/GenericService/SyncService/Interface/Device
+/os/buildtools/toolsandutils/usecasecontroller/GenericService/SyncService/Interface/Host
+/os/buildtools/toolsandutils/usecasecontroller/GenericService/SyncService/bin/Debug
+/os/buildtools/toolsandutils/usecasecontroller/GenericService/SyncService/bin/Release
+/os/buildtools/toolsandutils/usecasecontroller/GenericService/SyncService/inc
+/os/buildtools/toolsandutils/usecasecontroller/GenericService/SyncService/src
+/os/buildtools/toolsandutils/usecasecontroller/GenericService/TestDriverService/Configuration
+/os/buildtools/toolsandutils/usecasecontroller/GenericService/TestDriverService/Interface/Device
+/os/buildtools/toolsandutils/usecasecontroller/GenericService/TestDriverService/Interface/Host
+/os/buildtools/toolsandutils/usecasecontroller/GenericService/TestDriverService/bin/Debug
+/os/buildtools/toolsandutils/usecasecontroller/GenericService/TestDriverService/bin/Release
+/os/buildtools/toolsandutils/usecasecontroller/GenericService/TestDriverService/inc
+/os/buildtools/toolsandutils/usecasecontroller/GenericService/TestDriverService/src
+/os/buildtools/toolsandutils/usecasecontroller/GenericService/TestScripts/Synchronisation/Master
+/os/buildtools/toolsandutils/usecasecontroller/GenericService/TestScripts/Synchronisation/Slave
+/os/buildtools/toolsandutils/usecasecontroller/GenericService/TestService/Interface
+/os/buildtools/toolsandutils/usecasecontroller/GenericService/TestService/bin/Debug
+/os/buildtools/toolsandutils/usecasecontroller/GenericService/TestService/bin/Release
+/os/buildtools/toolsandutils/usecasecontroller/GenericService/TestService/inc
+/os/buildtools/toolsandutils/usecasecontroller/GenericService/TestService/src
+/os/buildtools/toolsandutils/usecasecontroller/GenericService/bin/Debug
+/os/buildtools/toolsandutils/usecasecontroller/GenericService/bin/Release
+/os/buildtools/toolsandutils/usecasecontroller/GenericService/inc
+/os/buildtools/toolsandutils/usecasecontroller/GenericService/src
+/os/buildtools/toolsandutils/usecasecontroller/RemoteInterface/Test/src
+/os/buildtools/toolsandutils/usecasecontroller/RemoteInterface/bin/Debug
+/os/buildtools/toolsandutils/usecasecontroller/RemoteInterface/bin/Release
+/os/buildtools/toolsandutils/usecasecontroller/RemoteInterface/inc
+/os/buildtools/toolsandutils/usecasecontroller/RemoteInterface/src
+/os/buildtools/toolsandutils/usecasecontroller/SampleScripts
+/os/buildtools/toolsandutils/usecasecontroller/SetupScripts
+/os/buildtools/toolsandutils/usecasecontroller/Source/AliasLibrary
+/os/buildtools/toolsandutils/usecasecontroller/Source/CSProtocolLibrary/cprotocol
+/os/buildtools/toolsandutils/usecasecontroller/Source/CSProtocolLibrary/sprotocol
+/os/buildtools/toolsandutils/usecasecontroller/Source/DynamicsCommandWrapper
+/os/buildtools/toolsandutils/usecasecontroller/Source/DynamicsConfigurationLibrary
+/os/buildtools/toolsandutils/usecasecontroller/Source/HostExecuteAsync
+/os/buildtools/toolsandutils/usecasecontroller/Source/HostExecuteSimple
+/os/buildtools/toolsandutils/usecasecontroller/Source/IntegerAllocatorLibrary
+/os/buildtools/toolsandutils/usecasecontroller/Source/MobileTermination
+/os/buildtools/toolsandutils/usecasecontroller/Source/MobsterRPCService
+/os/buildtools/toolsandutils/usecasecontroller/Source/PppdGateway
+/os/buildtools/toolsandutils/usecasecontroller/Source/ProcessLibrary
+/os/buildtools/toolsandutils/usecasecontroller/Source/SerialTcpRelay
+/os/buildtools/toolsandutils/usecasecontroller/Source/SocketLibrary
+/os/buildtools/toolsandutils/usecasecontroller/Source/TestExecuteUCCPlugin
+/os/buildtools/toolsandutils/usecasecontroller/Source/ThreadLibrary
+/os/buildtools/toolsandutils/usecasecontroller/Source/UCCSDeviceControl
+/os/buildtools/toolsandutils/usecasecontroller/Source/UUInterface
+/os/buildtools/toolsandutils/usecasecontroller/Source/Uccs.v2/Core
+/os/buildtools/toolsandutils/usecasecontroller/Source/Uccs.v2/DeviceControlChannel
+/os/buildtools/toolsandutils/usecasecontroller/Source/Uccs.v2/ServiceStubs/CommonServiceStub
+/os/buildtools/toolsandutils/usecasecontroller/Source/Uccs.v2/ServiceStubs/ForeignAgent
+/os/buildtools/toolsandutils/usecasecontroller/Source/Uccs.v2/ServiceStubs/GPSSimulator
+/os/buildtools/toolsandutils/usecasecontroller/Source/Uccs.v2/ServiceStubs/GenericStub
+/os/buildtools/toolsandutils/usecasecontroller/Source/Uccs.v2/ServiceStubs/HomeAgent
+/os/buildtools/toolsandutils/usecasecontroller/Source/Uccs.v2/ServiceStubs/HostExecute
+/os/buildtools/toolsandutils/usecasecontroller/Source/Uccs.v2/ServiceStubs/HostExecuteAsync
+/os/buildtools/toolsandutils/usecasecontroller/Source/Uccs.v2/ServiceStubs/Internal
+/os/buildtools/toolsandutils/usecasecontroller/Source/Uccs.v2/ServiceStubs/MobileAgent
+/os/buildtools/toolsandutils/usecasecontroller/Source/Uccs.v2/ServiceStubs/Mobster.v2
+/os/buildtools/toolsandutils/usecasecontroller/Source/Uccs.v2/ServiceStubs/Ppp
+/os/buildtools/toolsandutils/usecasecontroller/Source/Uccs.v2/ServiceStubs/Test
+/os/buildtools/toolsandutils/usecasecontroller/Source/Uccs.v2/ServiceStubs/TestService
+/os/buildtools/toolsandutils/usecasecontroller/Source/Uccs.v2/ServiceStubs/UuInterface
+/os/buildtools/toolsandutils/usecasecontroller/Source/Uccs.v2/TestScripts/PrivateScripts
+/os/buildtools/toolsandutils/usecasecontroller/Source/Uccs.v2/TestScripts/ScheduleTestScripts
+/os/buildtools/toolsandutils/usecasecontroller/Source/facontroller
+/os/buildtools/toolsandutils/usecasecontroller/Source/hacontroller
+/os/buildtools/toolsandutils/usecasecontroller/Source/include
+/os/buildtools/toolsandutils/usecasecontroller/Source/mncontroller
+/os/buildtools/toolsandutils/usecasecontroller/Source/pppcontroller
+/os/buildtools/toolsandutils/usecasecontroller/Test/Results/9.1/BasicSync/Serial-Serial
+/os/buildtools/toolsandutils/usecasecontroller/Test/Results/9.1/BasicSync/Serial-TCP
+/os/buildtools/toolsandutils/usecasecontroller/Test/Results/9.1/BasicSync/TCP-Serial
+/os/buildtools/toolsandutils/usecasecontroller/Test/Results/9.1/SetSharedData/Serial-Serial
+/os/buildtools/toolsandutils/usecasecontroller/Test/Results/9.1/SetSharedData/Serial-TCP
+/os/buildtools/toolsandutils/usecasecontroller/Test/Results/9.1/SetSharedData/TCP-Serial
+/os/buildtools/toolsandutils/usecasecontroller/Test/Results/9.2/BasicSync/Serial-Serial
+/os/buildtools/toolsandutils/usecasecontroller/Test/Results/9.2/BasicSync/Serial-TCP
+/os/buildtools/toolsandutils/usecasecontroller/Test/Results/9.2/BasicSync/TCP-Serial
+/os/buildtools/toolsandutils/usecasecontroller/Test/Results/9.2/SetSharedData/Serial-Serial
+/os/buildtools/toolsandutils/usecasecontroller/Test/Results/9.2/SetSharedData/Serial-TCP
+/os/buildtools/toolsandutils/usecasecontroller/Test/Results/9.2/SetSharedData/TCP-Serial
+/os/buildtools/toolsandutils/usecasecontroller/Test/Results/BlueTooth_Beta_PREQ_750/Master
+/os/buildtools/toolsandutils/usecasecontroller/Test/Results/BlueTooth_Beta_PREQ_750/Slave
+/os/buildtools/toolsandutils/usecasecontroller/Test/Results/Legacy
+/os/buildtools/toolsandutils/usecasecontroller/Test/Scripts/BasicSync/Master/Serial-Serial
+/os/buildtools/toolsandutils/usecasecontroller/Test/Scripts/BasicSync/Master/Serial-TCP
+/os/buildtools/toolsandutils/usecasecontroller/Test/Scripts/BasicSync/Master/TCP-Serial
+/os/buildtools/toolsandutils/usecasecontroller/Test/Scripts/BasicSync/Slave
+/os/buildtools/toolsandutils/usecasecontroller/Test/Scripts/SetSharedData/Master/Serial
+/os/buildtools/toolsandutils/usecasecontroller/Test/Scripts/SetSharedData/Master/TCP
+/os/buildtools/toolsandutils/usecasecontroller/Test/Scripts/SetSharedData/Master/WinTunnel
+/os/buildtools/toolsandutils/usecasecontroller/Test/Scripts/SetSharedData/Slave
+/os/buildtools/toolsandutils/usecasecontroller/Test/xml/SampleTestServer/testExecuteServers
+/os/buildtools/toolsandutils/usecasecontroller/bin
+/os/persistentdata/loggingservices/rfilelogger/Logger/Group
+/os/persistentdata/loggingservices/rfilelogger/Logger/Src
+/os/persistentdata/loggingservices/rfilelogger/Logger/Test/src
+/os/persistentdata/loggingservices/rfilelogger/Logger/bwins
+/os/persistentdata/loggingservices/rfilelogger/Logger/documentation
+/os/persistentdata/loggingservices/rfilelogger/Logger/eabi
+/os/persistentdata/loggingservices/rfilelogger/Logger/inc
+/os/persistentdata/loggingservices/rfilelogger/Logger/te_RFileLogger/Documentation
+/os/persistentdata/loggingservices/rfilelogger/Logger/te_RFileLogger/group
+/os/persistentdata/loggingservices/rfilelogger/Logger/te_RFileLogger/scripts
+/os/persistentdata/loggingservices/rfilelogger/Logger/te_RFileLogger/src
+/os/persistentdata/loggingservices/rfilelogger/Logger/te_RFileLogger/testdata
+/os/persistentdata/loggingservices/rfilelogger/group
+/os/buildtools/toolsandutils/wintunnel/exports
+/os/buildtools/toolsandutils/wintunnel/group
+/os/buildtools/toolsandutils/wintunnel/src_beech
+/os/buildtools/toolsandutils/wintunnel/src_cedar
+/os/buildtools/toolsandutils/wintunnel/testcode/bin
+/os/buildtools/toolsandutils/wintunnel/testcode/client
+/os/buildtools/toolsandutils/wintunnel/testcode/server
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/missingstages.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,147 @@
+# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Script to check for Missing Stages in MainBuild/PostBuild Logs
+# Purpose: This script checks dropped stages in PostBuild/MainBuild Logs
+# by reading the stages in Log file and comparing each of the stage against the stages in the corresponding XML file,
+# if the stages are missing sends out an e-mail to the system build support team.
+# 
+#
+
+use strict; 
+use Net::SMTP;
+use File::Basename;
+
+my %hashlist = ("$ENV{LogsDir}\\"."$ENV{BuildNumber}.xml" => "$ENV{LogsDir}\\"."$ENV{BuildBaseName}.log", "$ENV{SourceDir}\\os\\buildtools\\bldsystemtools\\commonbldutils\\".'postbuild.xml' => "$ENV{LogsDir}\\".'postbuild.log');
+
+foreach my $xmlFile (keys %hashlist)
+{
+       ReportMissingStages ($xmlFile, $hashlist{$xmlFile});
+}
+
+sub ReportMissingStages
+{
+       my ($XML, $log) = @_;
+       my $logFile = basename $log;
+       my $XMLFile = basename $XML;
+       if ( ! -e $XML)
+       {
+              &SendEmail("ERROR: $XML File not found");
+       }
+       elsif ( ! -e $log)
+       {
+              &SendEmail("ERROR: $log File not found");
+       }       
+       else
+       {
+              my %hashXML;
+              my %hashLOG;
+              open(FH, "<$XML") or die "ERROR: Cannot open $XMLFile: $!\n";
+              my @iXML = <FH>;
+              close(FH);
+              foreach (@iXML)
+              {
+                     next if(/^\<\!\-\-/);
+                     while(/(%(\w+)%)|(%%(\w+)%%)/g)
+                     {
+                            my $iVarName = $4?$4:$2;
+                            if (defined $ENV{$iVarName})
+                            {
+                                   s/(%\w+%)|(%%\w+%%)/$ENV{$iVarName}/;
+                            }
+                            else
+                            {
+                                   s/(%\w+%)|(%%\w+%%)//; #undefined variables become 'nothing'
+                            }
+                     }
+                     s/2>&amp;1/2>&1/g;
+                     s/&quot;/"/g;
+                     s/&gt;/>/g;
+                     s/&lt;/</g;
+                                            
+                     if(my $line = m/CommandLine="(.*)"/i)
+                     {
+                            if(! exists $hashXML{$1})
+                            {
+                                my $XMLEntry = $1;
+                                $XMLEntry =~ s/\s+/ /g;
+                                $hashXML{$XMLEntry} =1;
+                            }
+                            else
+                            {
+                                   $hashXML{$1}+= 1;
+                            }
+                     }   
+              }        
+              
+              open(IN, "<$log") or die "error: cant open $logFile: $!\n";
+              my @iLog = <IN>;
+              close IN;
+              foreach(@iLog)
+              {
+                     if(m/^--\s(.*)/)
+                     {
+                            if(! exists $hashLOG{$1})
+                            {
+                                   my $logEntry = $1;
+                                   $logEntry =~ s/\s+/ /g;
+                                   $hashLOG{$logEntry} =1;
+                            }
+                            else
+                            {
+                                   $hashLOG{$1}+= 1;
+                            }
+                     }       
+              }
+              my @missing = grep ! exists $hashLOG{$_}, keys %hashXML;
+              #To remove missingstages.pl stage being reported itself as missing in log file
+              @missing = grep !/missingstages.pl/, @missing;
+              if(@missing)
+              {
+                     #To Print each MissingStage in a seperate line
+                     my @MissingStages;
+                     foreach my $Stage(@missing)
+                     {
+                            push @MissingStages, "$Stage\n\n";
+                     }
+                     &SendEmail("Missing Stages found in $logFile: \n\n@MissingStages");
+              }
+              
+       }
+}
+
+sub SendEmail
+{
+ my (@body, @message, $sender_address, $notification_address);                        
+  @body = @_;
+  $sender_address  =  'I_EXT_sysbuildsupport@nokia.com';
+  $notification_address  =  'I_EXT_sysbuildsupport@nokia.com';
+     
+  push @message,"From: $sender_address\n";
+  push @message,"To: $notification_address\n";
+  push @message,"Subject: MissingStages found in build $ENV{BuildNumber}\n";
+  push @message,"\n";
+  push @message,@body;
+  
+  my $smtp = Net::SMTP->new('smtp.nokia.com', Hello => $ENV{COMPUTERNAME}, Debug   => 0);
+  $smtp->mail();
+  $smtp->to($notification_address);
+  
+  $smtp->data(@message) or die "ERROR: Sending message";
+  $smtp->quit;
+}
+  
+
+ 
+ 
+ 
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/package.bat	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,3 @@
+set PATH=%PATH%;\generic\epoc32\tools
+attrib -r \product\tools\*.* /s
+perl \product\tools\package.pl %BuildNumber% \Product\BuildProduct.log
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/plat.ini	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,3 @@
+ARMV5 = RVCT 2.2.616
+ARMV6 = RVCT 2.2.616
+ARMV7 = RVCT 3.1.700
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/postbuild.xml	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,103 @@
+<?xml version="1.0"?>
+<!DOCTYPE Build  [
+  <!ELEMENT Product (Commands)>
+  <!ATTLIST Product name CDATA #REQUIRED>
+  <!ELEMENT Commands (Execute+ | SetEnv*)>
+  <!ELEMENT Execute EMPTY>
+  <!ATTLIST Execute ID CDATA #REQUIRED>
+  <!ATTLIST Execute Stage CDATA #REQUIRED>
+  <!ATTLIST Execute Component CDATA #REQUIRED>
+  <!ATTLIST Execute Cwd CDATA #REQUIRED>
+  <!ATTLIST Execute CommandLine CDATA #REQUIRED>
+  <!ELEMENT SetEnv EMPTY>
+  <!ATTLIST SetEnv Order ID #REQUIRED>
+  <!ATTLIST SetEnv Name CDATA #REQUIRED>
+  <!ATTLIST SetEnv Value CDATA #REQUIRED>
+]>
+<Product Name="MCL Build">
+  <Commands>    
+
+    <!-- START PHASE POSTBUILD -->
+    <Execute ID="1" Stage="1" Component="Start Phase POSTBUILD" Cwd="%ToolsDir%\bin" CommandLine="perl %CleanSourceDir%\os\buildtools\bldsystemtools\commonbldutils\start-perl.pl -- notifyBuildPhase.pl -s %SnapshotNumber% -p %BuildShortName% -n POSTBUILD -t START"/>
+    <Execute Component="Publish Postbuild Start to Diamonds" Cwd="%LogsDir%" CommandLine="perl %SourceDir%\os\buildtools\bldsystemtools\commonbldutils\GenResult\GenDiamondsXml.pl -t BUILD -i START -s %DiamondsServer%"/>
+    
+    <!-- To be used in conjunction with a MCL build environment -->
+    <!-- Extract information from Windows Event Logs for the duration of the current build. Publish -->
+    <Execute ID="2" Stage="2" Component="EventLogReader WinEvents" Cwd="%LogsDir%" CommandLine="perl %SourceDir%\os\buildtools\bldsystemtools\commonbldutils\EventLogReader.pl -l %BuildNumber%.log -k %BuildBaseName%.log -o %BuildNumber%_WinEvents.log"/>
+    <Execute ID="3" Stage="3" Component="HTMLScanlog Results" Cwd="%LogsDir%" CommandLine="perl %SourceDir%\os\buildtools\bldsystemtools\buildsystemtools\scanlog\htmlscanlog.pl -t %BuildNumber%.log -v -v -l %BuildNumber%.log -l %BuildBaseName%.log -l %BuildNumber%_WinEvents.log -o %BuildNumber%.summary.html -c %PublishLocation%\%Type%\logs\%Type%.csv -m %PublishLocation%\%Type%\logs\machineclass.csv"/>
+
+    <!--Publish components files -->
+    <Execute ID="4" Stage="4" Component="Publish GTcomponents.txt" Cwd="%BuildDir%" CommandLine="copy \sf\os\deviceplatformrelease\symbianosbld\productionbldcbrconfig\%Product%\GTcomponents.txt %PublishLocation%\%Type%\%BuildNumber%\logs\GTcomponents.txt"/>
+    <Execute ID="5" Stage="5" Component="Publish GTcomponents.txt" Cwd="%BuildDir%" CommandLine="copy \sf\os\deviceplatformrelease\symbianosbld\productionbldcbrconfig\%Product%\GTcomponents.txt %PublishLocation%\%Type%\logs\%BuildNumber%\GTcomponents.txt"/>
+    <Execute ID="6" Stage="6" Component="Publish TVcomponents.txt" Cwd="%BuildDir%" CommandLine="copy \sf\os\deviceplatformrelease\symbianosbld\productionbldcbrconfig\%Product%\TechViewComponents.txt %PublishLocation%\%Type%\%BuildNumber%\logs\TechViewComponents.txt"/>
+    <Execute ID="7" Stage="7" Component="Publish TVcomponents.txt" Cwd="%BuildDir%" CommandLine="copy \sf\os\deviceplatformrelease\symbianosbld\productionbldcbrconfig\%Product%\TechViewComponents.txt %PublishLocation%\%Type%\logs\%BuildNumber%\TechViewComponents.txt"/>
+
+    <!-- Publish all the results -->
+    <Execute ID="8" Stage="8" Component="Publish Log" Cwd="%LogsDir%" CommandLine="copy %BuildNumber%.summary.html %PublishLocation%\%Type%\%BuildNumber%\logs\"/>
+    <Execute ID="9" Stage="9" Component="Publish Log" Cwd="%LogsDir%" CommandLine="copy %BuildNumber%.summary.html %PublishLocation%\%Type%\logs\%BuildNumber%\"/>
+    <Execute ID="10" Stage="10" Component="Publish Log" Cwd="%LogsDir%" CommandLine="copy %BuildNumber%.log %PublishLocation%\%Type%\%BuildNumber%\logs\"/>
+    <Execute ID="11" Stage="11" Component="Publish Log" Cwd="%LogsDir%" CommandLine="copy %BuildNumber%.log %PublishLocation%\%Type%\logs\%BuildNumber%\"/>
+    <Execute ID="12" Stage="12" Component="Publish Log" Cwd="%LogsDir%" CommandLine="copy prebuild.log %PublishLocation%\%Type%\%BuildNumber%\logs\"/>
+    <Execute ID="13" Stage="13" Component="Publish Log" Cwd="%LogsDir%" CommandLine="copy prebuild.log %PublishLocation%\%Type%\logs\%BuildNumber%\"/>
+    <Execute ID="14" Stage="14" Component="Publish WinEvent Log" Cwd="%LogsDir%" CommandLine="copy %BuildNumber%_WinEvents.log %PublishLocation%\%Type%\%BuildNumber%\logs\"/>
+    <Execute ID="15" Stage="15" Component="Publish WinEvent Log" Cwd="%LogsDir%" CommandLine="copy %BuildNumber%_WinEvents.log %PublishLocation%\%Type%\logs\%BuildNumber%\"/>
+    <Execute ID="16" Stage="16" Component="Publish Log" Cwd="%LogsDir%" CommandLine="copy BuildLaunch.xml %PublishLocation%\%Type%\%BuildNumber%\logs\"/>
+    <Execute ID="17" Stage="17" Component="Publish Log" Cwd="%LogsDir%" CommandLine="copy %BuildBaseName%.log %PublishLocation%\%Type%\%BuildNumber%\logs\"/>
+    <Execute ID="18" Stage="18" Component="Publish Build Env XML" Cwd="%LogsDir%" CommandLine="copy lon-eng*.xml %PublishLocation%\%Type%\%BuildNumber%\logs\"/>
+    
+    <Execute ID="19" Stage="19" Component="Publish imreport log" Cwd="%BuildDir%" CommandLine="xcopy %LogsDir%\imreport.log %PublishLocation%\%Type%\%BuildNumber%\logs /z/e/i/q"/>
+    <Execute ID="20" Stage="20" Component="Publish imreport log" Cwd="%BuildDir%" CommandLine="xcopy %LogsDir%\imreport.log %PublishLocation%\%Type%\logs\%BuildNumber% /z/e/i/q"/>
+    <Execute ID="21" Stage="21" Component="Publish imreport xml to logs directory" Cwd="%LogsDir%" CommandLine="xcopy %LogsDir%\imrep_%BuildNumber%.xml %PublishLocation%\%Type%\logs\%BuildNumber% /z/e/i/q"/>
+
+    <Execute ID="22" Stage="22" Component="Publish CDB" Cwd="%BuildDir%" CommandLine="xcopy %BuildDir%\cdb-info\cdb.db.* %PublishLocation%\%Type%\%BuildNumber%\cdb-info /z/e/i/q"/>
+  
+    <Execute ID="23" Stage="23" Component="Publish BC Previous Results" Cwd="%BuildDir%" CommandLine="xcopy %BuildDir%\cdb-info\*-prev.* %PublishLocation%\%Type%\%BuildNumber%\cdb-info /z/e/i/q"/>
+    <Execute ID="24" Stage="24" Component="Publish BC Previous Results to archive" Cwd="%BuildDir%" CommandLine="xcopy %BuildDir%\cdb-info\*-prev.* %PublishLocation%\%Type%\logs\%BuildNumber%\cdb-info /z/e/i/q"/>
+
+    <Execute ID="25" Stage="25" Component="Publish BC Baseline Results" Cwd="%BuildDir%" CommandLine="xcopy %BuildDir%\cdb-info\*-base.* %PublishLocation%\%Type%\%BuildNumber%\cdb-info /z/e/i/q"/>
+    <Execute ID="26" Stage="26" Component="Publish BC Baseline Results" Cwd="%BuildDir%" CommandLine="xcopy %BuildDir%\cdb-info\*-base.* %PublishLocation%\%Type%\logs\%BuildNumber%\cdb-info /z/e/i/q"/>
+    
+    <!-- Create and Publish Changes Report -->
+    <Execute ID="27" Stage="27" Component="Generate Changes Report" Cwd="%LogsDir%" CommandLine="perl %CleanSourceDir%\os\buildtools\bldsystemtools\commonbldutils\GenerateChangesReport.pl %Product% %Platform% %SnapshotNumber% %ChangelistNumber% %BuildNumber% %CurrentCodeline% %BCToolsBaseBuildNo% %PublishLocation%\%Type% %CleanSourceDir%"/>
+    <Execute ID="28" Stage="28" Component="Publish Changes Report" Cwd="%LogsDir%" CommandLine="copy Symbian_OS_v%Product%_Changes_Report.html %PublishLocation%\%Type%\logs\%BuildNumber%\Symbian_OS_v%Product%_Changes_Report.html"/>
+    <Execute ID="29" Stage="29" Component="Publish Changes Report" Cwd="%LogsDir%" CommandLine="copy Symbian_OS_v%Product%_Changes_Report.html %PublishLocation%\%Type%\%BuildNumber%\logs\Symbian_OS_v%Product%_Changes_Report.html"/>
+
+    <!-- Create and Publish Antivirus Log(s) -->
+    <Execute ID="30" Stage="30" Component="Run Anti Virus Scan" Cwd="%SourceDir%\os\buildtools\bldsystemtools\commonbldutils" CommandLine="Perl AntiVirus.pl -c SCAN -o %LogsDir% -d %BuildDir%\CBRGT -d %BuildDir%\CBRTV"/>
+    <Execute ID="31" Stage="31" Component="Publish Anti Virus Log" Cwd="%LogsDir%" CommandLine="copy %LogsDir%\anti-virus.log %PublishLocation%\%Type%\%BuildNumber%\logs\anti-virus.log"/>
+    <Execute ID="32" Stage="32" Component="Publish Anti Virus Log" Cwd="%LogsDir%" CommandLine="copy %LogsDir%\anti-virus.log %PublishLocation%\%Type%\logs\%BuildNumber%\anti-virus.log"/>
+
+    <!-- Generate build results table -->
+    <Execute ID="33" Stage="33" Component="Create ESR Build Report" Cwd="%LogsDir%" CommandLine="perl %SourceDir%\os\buildtools\bldsystemtools\commonbldutils\GenResult\GenResult.pl -t BUILD -b FINAL -d %PublishLocation%\%Type%\%BuildNumber%\logs\ -s %SnapshotNumber% -p %Product% -l %PublishLocation%\%Type%\logs\%BuildNumber%\ -m"/>
+    <Execute ID="34" Stage="34" Component="Publish ESR Build Report" Cwd="%LogsDir%" CommandLine="copy /Y %SnapshotNumber%_%Product%_report.html %PublishLocation%\%Type%\%BuildNumber%\logs\"/>    
+    <Execute ID="35" Stage="35" Component="Publish ESR Build Report" Cwd="%LogsDir%" CommandLine="copy /Y %SnapshotNumber%_%Product%_report.html %PublishLocation%\%Type%\logs\%BuildNumber%\"/>  
+    
+    <!-- Post-build removal of old local builds to speed up build launch process -->
+    <Execute ID="36" Stage="36" Component="Post-build Removal Of Old Local Builds" Cwd="%BuildDir%" CommandLine="perl %SourceDir%\os\buildtools\bldsystemtools\commonbldutils\remove_old_builds.pl %BuildNumber% %BuildsDirect% %LocalDiskSpaceMin%000000000" />     
+
+    <!-- STOP PHASE POSTBUILD -->
+    <Execute ID="37" Stage="37" Component="Stop Phase POSTBUILD" Cwd="%ToolsDir%\bin" CommandLine="perl %CleanSourceDir%\os\buildtools\bldsystemtools\commonbldutils\start-perl.pl -- notifyBuildPhase.pl -s %SnapshotNumber% -p %BuildShortName% -n POSTBUILD -t STOP"/>
+    <Execute ID="38" Stage="38" Component="Publish Postbuild End to Diamonds" Cwd="%LogsDir%" CommandLine="perl %SourceDir%\os\buildtools\bldsystemtools\commonbldutils\GenResult\GenDiamondsXml.pl -t BUILD -i STOP -s %DiamondsServer%"/> 
+    <Execute ID="39" Stage="39" Component="Publish Build End to Diamonds" Cwd="%LogsDir%" CommandLine="perl %SourceDir%\os\buildtools\bldsystemtools\commonbldutils\GenResult\GenDiamondsXml.pl -t ENDBUILD -i START -s %DiamondsServer%"/> 
+    
+    <Execute ID="40" Stage="40" Component="Publish Diaomnds XML zip" Cwd="%LogsDir%" CommandLine="copy DiamondsXmls.zip %PublishLocation%\%Type%\%BuildNumber%\logs\"/>
+    <Execute ID="41" Stage="41" Component="Publish Diaomnds XML zip" Cwd="%LogsDir%" CommandLine="copy DiamondsXmls.zip %PublishLocation%\%Type%\logs\%BuildNumber%\"/>
+    
+    <Execute ID="42" Stage="42" Component="Publish postbuild Log" Cwd="%LogsDir%" CommandLine="copy postbuild.log %PublishLocation%\%Type%\%BuildNumber%\logs\"/>
+    <Execute ID="43" Stage="43" Component="Publish postbuild Log" Cwd="%LogsDir%" CommandLine="copy postbuild.log %PublishLocation%\%Type%\logs\%BuildNumber%\"/>
+    
+    <!-- Restart Anti-Virus and Anti-Spyware Services  -->
+    <Execute ID="44" Stage="44" Component="Re-start Anti-Virus Services" Cwd="%SourceDir%\os\buildtools\bldsystemtools\commonbldutils" CommandLine="Perl AntiVirus.pl -c START"/>
+
+    <!-- Restart Anti-Virus and Anti-Spyware must be the 2nd-to-last step! -->
+    
+    <Execute ID="45" Stage="45" Component="Publish imreport xml" Cwd="%LogsDir%" CommandLine="xcopy %LogsDir%\imrep_%BuildNumber%.xml %PublishLocation%\%Type%\%BuildNumber%\logs /z/e/i/q"/> 
+    
+	<!-- Report missing stages in Main/Post Build logs -->
+    <Execute ID="46" Stage="46" Component="Missing Stages" Cwd="%LogsDir%" CommandLine="perl %SourceDir%\os\buildtools\bldsystemtools\commonbldutils\missingstages.pl"/>
+
+    <!-- Report missing stages must be the last step! -->
+	
+	
+  </Commands>
+</Product>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/pushComp.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,200 @@
+#!/usr/bin/perl
+use strict;
+use LWP::UserAgent;
+use Getopt::Long;
+
+
+my ($iComp, $iLoc, $iType) = ProcessCommandLine();
+my $iVersion;
+if ($iType eq "green")
+{
+	$iVersion = GetLatestGreenBuild($iComp)
+}
+elsif($iType eq "latest")
+{
+	$iVersion = GetLatestBuild($iComp);  
+}
+elsif ($iType =~ /DP/i)
+{
+	if ($iType =~ /_DeveloperProduct/i)
+	{
+		$iVersion = $iType;
+	}
+	else
+	{
+		$iVersion = $iType."_DeveloperProduct";
+	}
+}
+else{
+	$iVersion = $iType;
+}
+chomp($iVersion);
+
+my $pushreloutput = `pushrel -vv $iComp $iVersion $iLoc`;
+if (($pushreloutput =~ /^Copying $iComp $iVersion to/) || ($pushreloutput =~ /already present/)){
+  print $pushreloutput;
+}else{
+  print "ERROR: could not pushrel $iComp $iVersion - $pushreloutput\n";
+}
+
+
+
+# LRtrim
+#
+# Description
+# This function removes the space on the left and right
+sub LRtrim( $ ) {
+  my $result = shift ;
+  $result =~ s/^\s+// ;
+  $result =~ s/\s+$// ;
+  return $result ;
+}
+
+
+sub GetLatestBuild( $ ) {
+  my $iBaselineComponentName = shift ;
+  $iBaselineComponentName = LRtrim($iBaselineComponentName);
+  my $latestbuild = "nobuild";
+  my @AllBuilds = `latestver -a $iBaselineComponentName`; 
+  
+  foreach my $build ( @AllBuilds  ) {
+    my $status = BragFromAutobuild2HttpInterface( $build , $iBaselineComponentName  );
+    if ( ( lc( $status ) eq "green" ) or ( lc( $status ) eq "amber" )  ){
+      $latestbuild = $build ;
+      last ;
+    }
+  }
+  return $latestbuild ;
+}
+
+
+sub GetLatestGreenBuild( $ ) {
+  my $iBaselineComponentName = shift ;
+  $iBaselineComponentName = LRtrim($iBaselineComponentName);
+  my $greenbuild = "amberbuild";
+  my @AllBuilds = `latestver -a $iBaselineComponentName`; 
+  foreach my $build ( @AllBuilds  ) {
+	$build = LRtrim($build);
+    my $status = BragFromAutobuild2HttpInterface( $build , $iBaselineComponentName );
+    if ( lc( $status ) eq "green" ) {
+      $greenbuild = $build ;
+      last ;
+    }
+  }
+  return  $greenbuild ; # buildnumber or "amberbuild"
+}
+
+
+
+# Usage
+# Just call the sub-route called BragFromAutobuild2HttpInterface like this
+# my $status = BragFromAutobuild2HttpInterface("M04735_Symbian_OS_v9.5" , "gt_techview_baseline");
+# my $status = BragFromAutobuild2HttpInterface("DP00454_DeveloperProduct" , "sf_tools_baseline");
+# $status should be green or amber etc.
+
+## @fn BragFromAutobuild2HttpInterface($sVer)
+#
+# Queries the HTTP interface to Autobuild2 DB to determine the BRAG status of a CBR.
+#
+# @param sVer string, CBR for which the BRAG status is to be determined.
+#
+# @return string, BRAG status of the queried CBR. "TBA" if BRAG was indeterminable.
+
+sub BragFromAutobuild2HttpInterface( $  $ )
+{
+	my $sVer = shift ;
+    $sVer = LRtrim($sVer);
+	my $iBaselineComponentName = shift ;
+    $iBaselineComponentName = LRtrim($iBaselineComponentName);
+    my $sBrag = "TBA";
+	my $sSnapshot = "";
+	my $sProduct = "";
+    if ($sVer =~ /\_DeveloperProduct/i) 
+    {
+		#DP00420_DeveloperProduct
+    	if ($sVer =~ /([\w\.]+)\_DeveloperProduct/i)
+        {
+            $sSnapshot = $1;
+            $sProduct = "DP";
+        }
+        else
+        {
+            return $sBrag; # i.e. "TBA"
+        }	
+    }    
+    
+	my $parameters = "snapshot=$sSnapshot&product=$sProduct";
+	# Alternative method of getting the BRAG status - use the HTTP interface to Autobuild
+	my $sLogsLocation = "http://intweb:8080/esr/query?$parameters";
+	
+	my $roUserAgent = LWP::UserAgent->new;
+	my $roResponse = $roUserAgent->get($sLogsLocation);
+ 
+	if ($roResponse->is_success and $roResponse->content =~ /BRAG\s*\=\s*([a-z|A-Z]+)/)
+	{
+		$sBrag = $1;
+		$sBrag =~ s/\s//g;  # remove any whitespace padding
+		return $sBrag;
+	}
+	else
+	{		
+		return $sBrag; # i.e. "TBA"
+	}
+}
+
+
+
+# ProcessCommandLine
+#
+# Inputs
+#
+# Outputs
+# $iComp - Name of the component to push
+# $iLoc -  Remote site reltools.ini location
+#
+# Description
+# This function processes the commandline
+sub ProcessCommandLine {
+
+  my ($iHelp, $iComp, $iLoc, $iLatest, $iGreen, $iVer);
+  GetOptions('h' => \$iHelp, 'c=s' => \$iComp, 'r=s' => \$iLoc, 'g' => \$iGreen, 'l' => \$iLatest, 'version=s'=>\$iVer);
+
+  if (($iHelp) || (!defined $iComp) || (!defined $iLoc) || ($iVer && $iLatest)|| ($iVer && $iGreen)| ($iGreen && $iLatest))
+  {
+    &Usage();
+  } 
+  
+  my $iType = ($iGreen)? "green" : "latest";
+  $iType = ($iVer)? $iVer:$iType;
+
+  return($iComp,$iLoc,$iType);
+}
+
+# Usage
+#
+# Output Usage Information.
+#
+sub Usage {
+  print <<USAGE_EOF;
+
+  Usage: pushComp.pl [Args/options]
+
+  Args: (required)
+  
+  -c  [Component name]  Name of component to push 
+  -r [Remote reltools.ini location] Remote site reltools.ini location (Target location reltools.ini file)
+  -l Latest Build  or -g Latest Green Build or -v specify a build
+  
+  options:
+
+  -h                    help
+  
+  Example Commandline
+  pushComp.pl -c tools_testexecute -r C:\\epoc32\\relinfo\\reltools.ini -g
+  pushComp.pl -c tools_testexecute -r C:\\epoc32\\relinfo\\reltools.ini -l
+  pushComp.pl -c tools_testexecute -r C:\\epoc32\\relinfo\\reltools.ini -version DP00500
+  
+
+USAGE_EOF
+	exit 1;
+} 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/record_delivery.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,110 @@
+#!/usr/bin/perl
+
+=head1 NAME
+
+Record delivery
+
+=head1 SYNOPSIS
+
+record_delivery.pl
+
+=head1 DESCRIPTION
+
+This script is designed to send an email for the purpose of recording deliveries.
+
+=head1 COPYRIGHT
+
+Copyright (c) 2005-2006 Symbian Ltd. All rights reserved
+
+=cut
+
+use strict;
+
+use Getopt::Long;
+
+use FindBin;  # for FindBin::Bin
+use lib $FindBin::Bin; # For Local modules
+
+use record_delivery;
+
+my %gEntries;
+
+my ($iConfig, $iTemplates, $iEntries) = ProcessCommandLine();
+
+#Convert the entries to a hash
+foreach my $iEntry (@$iEntries)
+{
+  my ($key, $value) = $iEntry =~ /(.*?)=(.*)/;
+  $gEntries{$key} = $value;
+}
+my $delivery = record_delivery->new(config_file => $iConfig);
+foreach my $iTemplate (@$iTemplates)
+{
+  eval {
+  $delivery->send(Template => $iTemplate, %gEntries);
+  };
+  if ($@)
+  {
+    print "ERROR: Failed to record delivery using Template $iTemplate - $@\n";
+  } else {
+    print "Delivery Email Sent using Template $iTemplate\n";
+  }
+}
+
+
+
+# ProcessCommandLine
+#
+# Inputs
+#
+# Outputs
+# $ilog - logfile location
+#
+# Description
+# This function processes the commandline
+
+sub ProcessCommandLine {
+  my ($iHelp, @iTemplates, $iConfig, @iEntries);
+
+  GetOptions('h' => \$iHelp, 't=s' => \@iTemplates, 'c=s' => \$iConfig, 'e=s' => \@iEntries);
+
+  if (($iHelp) || (scalar(@iTemplates) == 0) || (!defined $iConfig) || (scalar(@iEntries) == 0))
+  {
+    &Usage();
+  } else {
+    return($iConfig, \@iTemplates, \@iEntries);
+  }
+}
+
+# Usage
+#
+# Output Usage Information.
+#
+
+sub Usage {
+  print <<USAGE_EOF;
+
+  Usage: record_delivery.pl [options]
+
+  options:
+
+  -h              help
+  -t  [filename]  HTML::Template file to use [Multiple Allowed]
+  -c  [filename]  configuration file to use
+  -e  [Key=Value] Template Key and associated Value [Multiple Allowed]
+
+  The parameters to the -e option must be provided in the form Key=Value
+  e.g BuildNumber=20
+  This will replace the "<TMPL_VAR NAME=BuildNumber>" text in the
+  HTML::template file with the text "20".
+  Keys listed on the commandline that do not exist in the template
+  will generate an ERROR.
+  Keys listed in the template but not provided on the command line will not
+  generate an error.
+  
+  Example Commandline
+  record_delivery.pl -t SymbianKK.tmpl -c testemail.cfg -e BuildNumber=03803_Symbian_OS_v9.2 -e PublishLocation=\\\\builds01\\devbuilds
+
+USAGE_EOF
+	exit 1;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/record_delivery.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,159 @@
+package record_delivery;
+
+=head1 NAME
+
+Record delivery
+
+=head1 SYNOPSIS
+
+record_delivery.pl
+
+=head1 DESCRIPTION
+
+This module is designed to send an email for the purpose of recording deliveries.
+
+=head1 COPYRIGHT
+
+Copyright (c) 2005 Symbian Ltd. All rights reserved
+
+=cut
+
+=over 4
+
+=item * Template Notes
+
+The basic rules of the template for creating a delivery record are:-
+The replacement sections as per HTML::Template module rules.
+%% is a seperator
+Spelling and case of words is critical
+General line format is:- Field name in Delivery record document%%Field value%%
+No line returns will be transferred to the delivery record document
+"Responsible Person" can only be a single person.
+"Symbian Contact" and "Additional Email List" can be multiple people seperated by a semicolon (;)
+"Consignee Name" and "Contract Identifier" are values chosen from the deliveries database
+No empty fields are allowed, to simulate an empty field use a single space
+All the fields shown in the example must be present.
+
+e.g
+Title%%<TMPL_VAR NAME=BuildNumber> CBR Delivery to Kshema%%
+Export Controlled%%Yes%%
+Reason Why Not Exported%% %%
+Consignee Name%%Kshema Technologies%%
+Contract Identifier%%N/A system Test 07/08/2003%%
+Recipient Email%%Andrew.Beck@Symbian.com%%
+Recipient Project%% %%
+Additional Email List%% %%
+Symbian Contact%%Monika Lewandowski; Denis Lyons%%
+Responsible Person%%Monika Lewandowski%%
+Source/Archive Location%%\\builds01\ODCBuilds\CBR_Archive_<TMPL_VAR NAME=BuildShortName>%%
+Notification Email text%%This is a test 2 of auto delivery recording%%
+Delivery Notes%%GT_Techview_Baseline Version <TMPL_VAR NAME=BuildNumber and GT_Only_Baseline Version <TMPL_VAR NAME=BuildNumber>%%
+
+=back
+
+=over 4
+
+=item * Other Notes
+
+An email will be sent back to the from_address value if the creation of the
+record delivery document fails.
+
+=cut
+
+use 5.6.1;
+use strict;
+use warnings;
+
+use Exporter;
+use vars qw ($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS @EXPORT_FAIL);
+@ISA = ('Exporter');
+@EXPORT = qw(new send);
+@EXPORT_FAIL = qw ();
+%EXPORT_TAGS = ( ':all' =>[qw/new send/] );
+$VERSION = '0.1';
+
+use Carp;
+use Net::SMTP;
+use Sys::Hostname;
+use HTML::Template;
+
+sub new
+{
+	my ($class) = shift;
+  our %args = @_;
+	my $self = {};
+	bless $self, $class;
+	
+	# Use config file if defined
+	if (defined $args{'config_file'})
+	{
+		# populate %args from file
+		do $args{'config_file'};
+	}
+	
+	# if from address is not set then the from is the machine name
+	if(!defined($args{'from_address'}))
+	{
+		$self->{'from_address'} = hostname;
+	} else {
+		$self->{'from_address'} = $args{'from_address'};
+	}
+
+	# if to address is not set then confess
+	if(!defined($args{'to_address'}))
+	{
+		confess "ERROR: Sending email, no To: address defined";
+	} else {
+		$self->{'to_address'} = $args{'to_address'};
+	}
+
+	# if to smtp_server is not set then set it to the local machine
+	if(!defined($args{'smtp_server'}))
+	{
+		$self->{'smtp_server'} = hostname;
+	} else {
+		$self->{'smtp_server'} = $args{'smtp_server'};
+	}
+
+
+  return $self;
+}
+
+sub send
+{
+  
+  my $self = shift;
+
+  my %args = @_;
+	
+	# Create the Template and allow supplied params not to exist in the template
+  my $email = new HTML::Template(filename => $args{'Template'}, die_on_bad_params => 0);
+	# Delete the template filename from the %args hash so a generic loop can be
+	# used for other Template Variables where the key is the same as TMPL_VAR NAME
+	delete $args{'Template'};
+	
+	#Complete Template
+	foreach my $key (keys %args)
+	{
+		$email->param($key => $args{$key});
+	}
+
+  
+  my (@message);
+
+  push @message,"From: $self->{'from_address'}\n";
+  push @message,"To: $self->{'to_address'}\n";
+  push @message,"Subject: Auto Import\n";
+  push @message,"\n";
+  push @message,$email->output();
+
+  my $smtp = Net::SMTP->new($self->{'smtp_server'}, Hello => hostname, Debug   => 0);
+  $smtp->mail();
+  $smtp->to($self->{'to_address'});
+
+  $smtp->data(@message) or confess "ERROR: Sending email";
+  $smtp->quit;
+  
+}
+
+1;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/relnotes.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,210 @@
+#!perl
+
+# Release notes generator
+# 07/10/1999 - 18/11/99 RH
+
+use strict;
+
+sub PrintLines { print OUTFILE join("\n",@_),"\n"; }	
+
+if (@ARGV!=2 || ! -e $ARGV[0])
+  {
+#........1.........2.........3.........4.........5.........6.........7.....
+  print <<USAGE_EOF;
+
+--------------------------------------------------------------------------
+Usage
+-----
+  perl relnotes.pl <listfile> <path>
+
+Generates an HTML document containing release notes for each
+component.
+
+<listfile> is a file containing a list of components and locations
+  in the format:
+    COMPNAME DIRECTORY [CH#1 CH#2]
+  eg
+    AGNMODEL AGNMODEL
+  Release documentation is collexted for all relevant changelists
+  in the range specified by <CH#1> and <CH#2>.
+
+  The first line of the file must contain the default values for
+  <CH#1> and <CH#2> separated by spaces.
+
+<path> is a path specifier (which may include wildcards)that,
+  combined with the current view and the directory information in
+  <listfile>, gives unambiguous access to component source on the
+  appropriate branch(es) in the repository.
+
+The file name of the component list is assumed to be the same as the
+name of the target product.
+
+It is also assumed that revision specifier <CH#1> is earlier than
+revision specifier <CH#2>.
+
+Note
+----
+Before using this utility, you must switch to a client that gives
+visibility to those branches of the repository that contain the
+submissions for which you want to extract release note documentation. 
+
+Example for Crystal
+-------------------
+  Switch to a client that gives visibility to only //EPOC/Main/generic
+  and //EPOC/Main/Crystal. Then type:
+
+  perl relnotes.pl crystal.dat //EPOC/Main
+
+  This generates release notes in a file named Crystal.html
+--------------------------------------------------------------------------
+
+USAGE_EOF
+  exit 1;
+  }
+
+my $listfile = $ARGV[0];
+my $srcpath = $ARGV[1];
+my $productname = $listfile;
+
+$productname =~ s#.*[\\\/]##;    # lose any leading path
+$productname =~ s#\.[^\.]+$##;   # lose any trailing extension
+
+$productname = ucfirst lc $productname;  # capitalise only first letter
+$productname =~ s/_os_/_OS_/i;   # Just making sure that OS is in caps
+$productname =~ s/_gt$/_GT/i;    # Just making sure that GT is in caps
+$productname =~ s/_tv$/_TV/i;    # Just making sure that TV is in caps
+
+$srcpath =~ s/\/\.\.\.$//;		# remove trailing /..., which slows things down
+
+open INFILE, "< $listfile" or die "ERROR: Can't read $listfile\n";
+
+
+my @listfile = <INFILE>;
+my $firstline = shift @listfile;
+
+$firstline =~ m/^\s*(\d+)\s+(\d+)/;
+my $default_firstchange = $1;
+my $default_lastchange = $2;
+
+if (!($default_firstchange > 0) || !($default_lastchange > 0))
+  {
+  die "ERROR: First line of $listfile must contain non-zero changelist numbers only\n";
+  }
+
+my ( $s, $min, $hour, $mday, $mon, $year, $w, $y, $i)= localtime(time);
+$year+= 1900;
+$mon++;
+
+open OUTFILE, "> $productname.html" or die "ERROR: Can't open $productname.html for output";
+print OUTFILE <<HEADING_EOF;
+<html>\n\n<head>\n<title>$productname Release Notes</title>\n</head>\n\n
+<body bgcolor=\"#ffffff\" text=\"#000000\" link=\"#5F9F9F\" vlink=\"5F9F9F\">\n
+<font face=verdana,arial,helvetica size=4>\n\n<hr>\n\n
+<a name=\"list\"><h1>$productname Release Notes</h1></a>
+<p>Created - $mday/$mon/$year\n
+HEADING_EOF
+
+my @newcomponents = ();
+my @nochangecomponents = ();
+
+foreach (@listfile)
+  {
+  my $firstchange = $default_firstchange;
+  my $lastchange = $default_lastchange;
+  
+  my $newComponent = 0;
+  
+  s/\s*#.*$//;                 # remove comments
+  if (/^\s*$/) { next; }       # ignore blank lines
+  
+  if (/^\s*\S+\s+\S+\s+(\d+)\s+(\d+)/) # get any non-default changelist numbers
+    {
+    $firstchange = $1;
+    $lastchange = $2;
+    
+    $newComponent = 1 if ($firstchange == 0);
+    }
+    
+  if (/^\s*(\S+)\s+(\S+)/)     # parse component data
+    {
+    my $compname = uc $1;
+    my $topdir = $2;
+
+    my $preform = 0;
+    my $changeCount = 0;
+
+    $firstchange++;         # inc changelist number so we don't include the very first submission - it would have been picked up in the last run of this script
+
+    print "Processing $compname\n";
+    my @complines = ();
+
+    my $command = "p4 changes -l -s submitted $srcpath/$topdir/...\@$firstchange,$lastchange";
+    my @compchange = `$command`;
+    die "ERROR: Could not execute: $command\n" if $?;
+
+    foreach my $line (@compchange)
+      {
+      if ($line !~ /\S/) { next; }      # ignore lines with no text 
+      chomp $line;
+      $line =~ s/\&/&amp;/g;
+      $line =~ s/\</&lt;/g;
+      $line =~ s/\>/&gt;/g;
+      $line =~ s/\"/&quot;/g;
+
+      if ($line =~ /^Change\s+\d+/i)
+        {
+        $changeCount+=1;
+        $line =~ s/\s+by .*$//;
+        if ($preform) 
+          { 
+          push @complines, "</pre>"; 
+          $preform = 0; 
+          }
+        push @complines, "<p><b>$line</b>";
+        push @complines, "<pre>";
+        $preform = 1;
+        next;
+        }
+
+      $line =~ s/^\s//;                 # drop first leading whitespace
+      $line =~ s/^\t/  /;               # shorten any leading tab
+      if ($changeCount == 0)
+        {
+        warn "WARNING: Description contains text preceding \"Change\". Printing line to output file:\n$line\n";
+        }
+      push @complines, $line;
+      }
+    if ($changeCount == 0)
+    	{
+    	if ($newComponent)
+    		{
+    		push @newcomponents, $compname;
+    		}
+    	else
+    		{
+    		push @nochangecomponents, $compname;
+    		}
+    	next;
+    	}
+	# Component with real change descriptions
+	if ($preform)
+		{
+		push @complines, "</pre>";
+		}
+	&PrintLines("<h2>$compname</h2>",@complines);
+    }
+  }
+close INFILE;
+
+if (scalar @newcomponents)
+	{
+	&PrintLines("<h2>New Components</h2>", join(", ", sort @newcomponents));
+	}
+	
+if (scalar @nochangecomponents)
+	{
+	&PrintLines("<h2>Unchanged Components</h2>", join(", ", sort @nochangecomponents));
+	}
+	
+&PrintLines("</BODY></HTML>");
+close OUTFILE;
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/remove_old_builds.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,71 @@
+#!perl -w
+#
+# remove_old_builds.pl
+#
+# usage:
+# perl remove_old_builds.pl current_build_number build-directory required-free-space
+#
+use strict;
+
+sub usage
+    {
+  print <<USAGE_EOF;
+
+Usage: perl remove_old_builds.pl current_build build-directory required-bytes
+
+where: current_build   = the number of the current build (e.g 00924_Symbian_OS_v9.1)
+       build-directory = the top level directory containing the various builds
+       required-bytes  = the free disk space required.
+
+USAGE_EOF
+    exit 1;
+    }
+
+sub freespace
+    {
+    my $dir = shift;
+    open FDIR, "dir /-c $dir |" or die "Cannot open FDIR $dir";    # /-c = suppress thousand separators (commas)
+    my $s= -1;      # Signifying "ERROR"
+    while (<FDIR>)
+        {
+        if (/\s+(\d+) bytes free/) { $s=$1;}
+        }
+    return $s;
+    }
+
+my $current_build=$ARGV[0];
+my $bld_dir=$ARGV[1];
+my $space=$ARGV[2];
+
+unless ($space) { usage() };    # Must have all three args. So check for last one only.
+
+open DIRS, "dir /b /ad /od $bld_dir |" or die "Cannot open DIRS $bld_dir";     # /b = "bare output"  /ad = directories only   /od = sort by date
+while (my $name = <DIRS>)
+    {
+       if (freespace($bld_dir) >= $space)
+       { last; }
+       chomp $name;
+       chomp $current_build;
+           
+       if(($name =~ /^((D|T|M|MSF|TB|E|(\d{2,3}_))?(\d+))(([a-z]\.\d+)|([a-z])|(\.\d+))?/) && ($name ne $current_build))
+       {
+                print "Removing $bld_dir\\$name\n";
+                if (system("rmdir /s /q $bld_dir\\$name"))
+                {
+                    print "ERROR: Failed to remove: $bld_dir\\$name\n";
+                }
+       }
+    }
+close DIRS;
+
+if (freespace($bld_dir) < $space)
+    {
+    print "ERROR: Cannot create $space free bytes in $bld_dir\n";
+    exit 1;
+    }
+
+exit 0;
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/renumber.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,110 @@
+# Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Script to renumber the XML command file
+# 
+#
+
+use strict;
+use Getopt::Long;
+use File::Copy;
+
+# Process the commandline
+my ($iDataSource) = ProcessCommandLine();
+
+&Renumber($iDataSource);
+
+
+# ProcessCommandLine
+#
+# Inputs
+#
+# Outputs
+# $iDataSource (XML file to process)
+#
+# Description
+# This function processes the commandline
+
+sub ProcessCommandLine {
+  my ($iHelp, $iPort, $iDataSource, $iLogFile);
+  GetOptions('h' => \$iHelp, 'd=s' =>\$iDataSource );
+
+  if (($iHelp) || (!defined $iDataSource))
+  {
+    Usage();
+  } elsif (! -e $iDataSource) {
+    die "Cannot open $iDataSource";
+  } else {
+    return($iDataSource);
+  }
+}
+
+# Usage
+#
+# Description
+# Output Usage Information.
+#
+
+sub Usage {
+  print <<USAGE_EOF;
+
+	Usage: Renumber.pl [options]
+
+	options:
+
+	-h  help
+	-d  Data Source (xml file)
+USAGE_EOF
+	exit 1;
+}
+
+# Renumber
+#
+# Inputs
+# $iDataSource (XML file to process)
+#
+# Outputs
+# A renumber XML File
+#
+# Description
+# Renumber the XML file.
+sub Renumber
+{
+  my ($iDataSource) = @_;
+  
+  my ($iLine, $iNum, $iOrder);
+  $iNum = 1;
+  $iOrder = 1;
+  move($iDataSource,$iDataSource.".bak");  
+  
+  open XML, "<$iDataSource.bak" or die "Can't read $iDataSource.bak";
+  open XMLOUT, ">$iDataSource" or die "Can't read $iDataSource";
+
+	while ($iLine=<XML>)
+	{
+	  if ($iLine =~ /ID=\"\d+\"/)
+	  {
+	    $iLine =~ s/ID="\d+"\s+Stage="\d+"/ID="$iNum" Stage="$iNum"/;
+	    $iNum++;
+	  }
+	  elsif ($iLine =~ /Order="\d+"/)
+	  {
+		 $iLine =~  s/Order="\d+"/Order="$iOrder"/;
+		 $iOrder++;
+	  }
+	  print XMLOUT $iLine; 
+
+	}
+
+  close XML;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/rom_metrics_list.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,240 @@
+#!perl
+# Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Perl script to output the current build rom_metric to a csv file.
+# The file is of the format <build_no>,<rom_size>
+# use warnings;
+# 
+#
+
+use strict;
+use Getopt::Long;
+use File::Copy;
+
+#
+# Main
+#
+
+# Check arguments
+my $build = '';
+my $do_all = 0;
+my $device = '';
+my $rom_loc = '';
+my $publish_loc = '';
+my $preview = 0;
+my $help = 0;
+my $dir_name;
+my $roms_loc;
+
+GetOptions ( 'n' => \$preview, 'b=s' => \$build, 'a' => \$do_all, 'd=s' => \$device, 'p=s' => \$publish_loc, 'h|?' => \$help );
+&Usage() if $help;
+&Usage() if ( !$do_all && $build eq '' );
+&Usage() if ( ( $publish_loc eq '' )  || ( $device eq '' ) );
+
+# 
+# Check if all builds are to be processed
+
+my $pathspec = $publish_loc.'\\logs\\<build>\\rom_logs';
+my $rom_logfilespec = "$pathspec\\${device}.log";
+my $csv_logfilespec = $publish_loc."\\Rom_metrics"."\\${device}.csv";
+my $csv_logfilespec_old = $publish_loc."\\Rom_metrics"."\\${device}.old";
+$roms_loc = $publish_loc.'\\logs';
+my $do_read = 1;
+
+if ( $do_all )
+{
+	# Get all the log directories and process a new csv file.
+
+
+	# Check if old log file exist then remove it then move the current file to old name.
+	if ( -e $csv_logfilespec )
+	{
+		print ( "Moving old file\n" );
+		if ( -e $csv_logfilespec_old )
+		{
+			if ( $preview )
+			{
+				print( "\ndel $csv_logfilespec_old\n" );
+			}
+			else
+			{
+				unlink( "$csv_logfilespec_old" );
+			}
+		}
+		if ( $preview )
+		{
+			print( "\nmove $csv_logfilespec $csv_logfilespec_old\n" );
+		}
+		else
+		{
+			move( "$csv_logfilespec", "$csv_logfilespec_old" );
+		}
+	}
+
+	# Get list of directories
+	opendir ( DIRS, $roms_loc );
+	while ( defined ( $dir_name = readdir( DIRS ) ) )
+	{
+		# $dir_name = $_;
+		chomp ( $dir_name );
+
+		# Look for name starting with 5 numbers, should be a build directory
+		print "Checking dir $dir_name \n";
+		if ( -d $roms_loc."\\".$dir_name )
+		{
+			if  ( $dir_name =~ /^(\d{5})/ )
+			{
+				$rom_logfilespec = "$roms_loc\\$dir_name\\rom_logs\\${device}.log";
+				print "Looking in $roms_loc\\$dir_name for $rom_logfilespec\n";
+				$do_read = 1;
+
+				# Open the file for reading
+				if ( -e $rom_logfilespec )
+				{
+					open( INPUT, $rom_logfilespec ) or next "Can't open $rom_logfilespec\n";
+				}
+				else
+				{
+					print "Can't find log file $rom_logfilespec\n";
+					open(CSVFILE, ">> $csv_logfilespec" ) or die "Can't open log file for appending.\n";
+					if ( $preview )
+					{
+						print ( "$dir_name,-1,\n" );
+					}
+					else
+					{
+						print CSVFILE ( "$dir_name,-1,\n" );
+					}
+					close(CSVFILE);
+					$do_read = 0;
+				
+				}
+
+				# Extract details from the log file
+				print "Checking do_read $do_read \n";
+				if ( $do_read )
+				{
+					my $line;
+					while($line = <INPUT>)
+					{
+						# Find size information
+						if($line =~ /^Total used	(\d+)$/)
+						{
+							# Open the csv file for appending
+							open(CSVFILE, ">> $csv_logfilespec" ) or die "Can't open log file for appending.\n";
+							if ( $preview )
+							{
+								print ( "$dir_name,$1,\n" );
+							}
+							else
+							{
+								print CSVFILE ( "$dir_name,$1,\n" );
+							}
+							close(CSVFILE);
+						}
+					}
+
+					close(INPUT);
+				}
+			}
+		}
+	}
+}	
+else
+{
+	# Do not process all directories. Just get the log file from the given one and append to the csv file.
+	
+	# Check if old log file exist then remove it then move the current file to old name.
+	if ( -e $csv_logfilespec )
+	{
+		print ( "Copy to old file\n" );
+		if ( -e $csv_logfilespec_old )
+		{
+			if ( $preview )
+			{
+				print( "del $csv_logfilespec_old\n" );
+			}
+			else
+			{
+				unlink( "$csv_logfilespec_old" );
+			}
+		}
+		if ( $preview )
+		{
+			print( "copy $csv_logfilespec $csv_logfilespec_old\n" );
+		}
+		else
+		{
+			copy( "$csv_logfilespec", "$csv_logfilespec_old" );
+		}
+	}
+
+	$rom_logfilespec = "$roms_loc\\${build}\\rom_logs\\${device}.log";
+	print "Looking in $roms_loc\\$build for $rom_logfilespec\n";
+
+	# Open the file for reading
+	if ( -e $rom_logfilespec )
+	{
+		open( INPUT, $rom_logfilespec ) or die "Can't open $rom_logfilespec\n";
+	}
+	else
+	{
+		open(CSVFILE, ">> $csv_logfilespec" ) or die "Can't open log file for appending.\n";
+		if ( $preview )
+		{
+			print ( "$build,-1,\n" );
+		}
+		else
+		{
+			print CSVFILE ( "$build,-1,\n" );
+		}
+		close(CSVFILE);
+		die "Can't find log file $rom_logfilespec\n";
+	}
+
+	# Extract details from the log file
+	my $line;
+	while($line = <INPUT>)
+		{
+		# Find size information
+		if($line =~ /^Total used	(\d+)$/)
+			{
+				# Open the csv file for appending
+				open(CSVFILE, ">> $csv_logfilespec" ) or die "Can't open log file for appending.\n";
+				if ( $preview )
+				{				
+					print ( "$build,$1,\n" );
+				}
+				else
+				{
+					print CSVFILE ( "$build,$1,\n" );
+				}
+			}
+		}
+
+	close(INPUT);
+
+}
+
+sub Usage
+{
+	print "\nperl rom_metrics_list.pl [-a | -b %1] -d %2 -p %3 [-n]\n\n";
+	print "-a Process all builds.\n";
+	print "-b Build number.\n";
+	print "-d Device type.e.g. ab_001.techview\n";
+	print "-p Publish location.\n";
+	print "-n Preview only.\n";
+	print "-h Help.\n\n";
+	exit (0);	
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/runcbr.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,76 @@
+# Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Script to launch MakeCBR.pl and test return code and zip up the CBR Environment on failure
+# 
+#
+
+use strict;
+use Getopt::Long;
+
+my($build_id, $config_file, $log_file, $parallel, $release_ver, $debug_file, $help_flag, $prev_ver, $repair, $int_ver);
+
+GetOptions (
+   'b=s'    => \$build_id,
+   'c=s'    => \$config_file,
+   'l=s'    => \$log_file,
+   'v=s'    => \$release_ver,
+   'p=s'    => \$prev_ver,
+   'd=s'    => \$debug_file,
+   '+h'     => \$help_flag,
+   'repair' => \$repair,
+   'i=s'    => \$int_ver,
+   'j=i'    => \$parallel
+);
+
+if(defined $ENV{PERL510_HOME})
+{
+	$ENV{PATH} = "$ENV{PERL510_HOME}\\bin;".$ENV{PATH};
+	system("path");
+	my $cmd_perl_version = `perl -v`;
+	$cmd_perl_version =~ /(v\d+.\d+.\d+)/i;
+	my $perl_version = $1;
+	print "Add perl $perl_version executable path into env path\n";
+}
+else
+{
+	$parallel = 0;
+}
+
+
+# Build Command line
+# Must on correct drive
+my $commandline = "perl \\sf\\os\\buildtools\\toolsandutils\\productionbldtools\\makecbr\\makecbr.pl -b $build_id -v $release_ver -c $config_file";
+
+if (defined $log_file)
+{
+  $commandline .= " -l $log_file";
+}
+
+if (defined $debug_file)
+{
+  $commandline .= " -d $debug_file";
+}
+
+if (defined $prev_ver)
+{
+  $commandline .= " -p $prev_ver";
+}
+
+if (defined $parallel)
+{
+  $commandline .= " -j $parallel";
+}
+print "makcbr command: $commandline\n";
+system("$commandline");
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/runcdb.xml	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,43 @@
+<?xml version="1.0"?>
+<!DOCTYPE Build  [
+  <!ELEMENT Product (Commands)>
+  <!ATTLIST Product name CDATA #REQUIRED>
+  <!ELEMENT Commands (Execute+ | SetEnv*)>
+  <!ELEMENT Execute EMPTY>
+  <!ATTLIST Execute ID CDATA #REQUIRED>
+  <!ATTLIST Execute Stage CDATA #REQUIRED>
+  <!ATTLIST Execute Component CDATA #REQUIRED>
+  <!ATTLIST Execute Cwd CDATA #REQUIRED>
+  <!ATTLIST Execute CommandLine CDATA #REQUIRED>
+  <!ELEMENT SetEnv EMPTY>
+  <!ATTLIST SetEnv Order ID #REQUIRED>
+  <!ATTLIST SetEnv Name CDATA #REQUIRED>
+  <!ATTLIST SetEnv Value CDATA #REQUIRED>
+]>
+<Product Name="Run imreport script">
+  <Commands>
+    <!-- Set Env -->
+    <!-- Most variables will have been set in the BuildLaunch xml -->
+    <SetEnv Order="1" Name="PATH" Value="%Sourcedir%\os\buildtools\devlib\devlibhelp\tools\buildrefdoc\dist;%PATH%"/>
+    <Execute ID="1" Stage="2" Component="Copy System_Definition.xml" Cwd="%SourceDir%" CommandLine="xcopy %EPOCROOT%epoc32\data\System_Definition.xml %SourceDir%\os\buildtools\bldsystemtools\buildsystemtools\ /Z /I /Q"/>
+    <!-- Run doxygen and the imreport 4 times -->
+    <Execute ID="2" Stage="2" Component="Run buildrefdoc 1" Cwd="%SourceDir%" CommandLine="buildrefdoc -F -E -C -b --share=1/4 --config=&quot;GT_%BuildShortName%&quot; --codeline=%Sourcedir% \doxyref"/>
+    <Execute ID="3" Stage="2" Component="Run buildrefdoc 2" Cwd="%SourceDir%" CommandLine="buildrefdoc -F -E -C -b --share=2/4 --config=&quot;GT_%BuildShortName%&quot; --codeline=%Sourcedir% \doxyref"/>
+    <Execute ID="4" Stage="2" Component="Run buildrefdoc 3" Cwd="%SourceDir%" CommandLine="buildrefdoc -F -E -C -b --share=3/4 --config=&quot;GT_%BuildShortName%&quot; --codeline=%Sourcedir% \doxyref"/>
+    <Execute ID="5" Stage="2" Component="Run buildrefdoc 4" Cwd="%SourceDir%" CommandLine="buildrefdoc -F -E -C -b --share=4/4 --config=&quot;GT_%BuildShortName%&quot; --codeline=%Sourcedir% \doxyref"/>
+    <Execute ID="6" Stage="3" Component="Run reporter" Cwd="%BuildDir%" CommandLine="imrepgen.exe --build=%BuildNumber% \doxyref\stats %LogsDir%\imrep_%BuildNumber%.xml >%LogsDir%\imreport.log 2>&amp;1"/>
+    <!-- Run 'cdb extract...' on the GXP files to populate this build's CDB -->
+    <Execute ID="7" Stage="4" Component="Extract GT+TV+Java Info" Cwd="%BuildDir%" CommandLine="%SourceDir%\os\buildtools\bldsystemtools\commonbldutils\cdb_sysbuild -d %BuildDir%\cdb-info\cdb.db  -t %BuildDir%\epoc32\ extractrelease %BuildNumber% -a %LogsDir%\imrep_%BuildNumber%.xml 2>&amp;1"/>
+    <Execute ID="8" Stage="5" Component="Publish CDB" Cwd="%BuildDir%" CommandLine="xcopy %BuildDir%\cdb-info\cdb.db.* %PublishLocation%\%Type%\%BuildNumber%\cdb-info /z/e/i/q"/>
+
+    <!-- Run 'cdb compare...'  -->
+
+    <Execute ID="9" Stage="6" Component="Make local copy of Previous CDB files" Cwd="%BuildDir%" CommandLine="perl %SourceDir%\os\buildtools\bldsystemtools\commonbldutils\bxcopy.pl -s %PreviousBuildPublishLocation%\%Type%\%CDBPreviousBuildNumber%\cdb-info\ -t %BuildDir%\cdb-prev-info -i \cdb.db.* -x \.xml  -x \.html"/>
+    <Execute ID="10" Stage="7" Component="BC Compare with Previous" Cwd="%BuildDir%" CommandLine="%SourceDir%\os\buildtools\bldsystemtools\commonbldutils\cdb_sysbuild -d %BuildDir%\cdb-prev-info\cdb.db comparerelease %CDBPreviousBuildNumber% %BuildNumber% -r %BuildDir%\cdb-info\BC-prev.xml -a %BuildDir%\cdb-info\cdb.db -f publishedPartner 2>&amp;1"/>
+
+    <!-- Run 'cdb compare...'  -->
+    <Execute ID="11" Stage="8" Component="Make local copy of Base CDB files" Cwd="%BuildDir%" CommandLine="perl %SourceDir%\os\buildtools\bldsystemtools\commonbldutils\bxcopy.pl -s %PreviousBuildPublishLocation%\%Type%\%BaseBuildNumber%\cdb-info\ -t %BuildDir%\cdb-base-info -i \cdb.db.* -x \.xml  -x \.html"/>
+    <Execute ID="12" Stage="9" Component="BC Compare with Baseline" Cwd="%BuildDir%" CommandLine="%SourceDir%\os\buildtools\bldsystemtools\commonbldutils\cdb_sysbuild -d %BuildDir%\cdb-base-info\cdb.db comparerelease %BaseBuildNumber% %BuildNumber% -r %BuildDir%\cdb-info\BC-base.xml -a %BuildDir%\cdb-info\cdb.db -f publishedPartner 2>&amp;1"/>
+
+  </Commands>
+</Product>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/rvct.ini	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+[2.2.616]
+bin = C:\Apps\ARM\RVCT2.2[616]\RVCT\Programs\2.2\349\win_32-pentium
+inc = C:\Apps\ARM\RVCT2.2[616]\RVCT\Data\2.2\349\include\windows
+lib = C:\Apps\ARM\RVCT2.2[616]\RVCT\Data\2.2\349\lib
+
+[3.1.700]
+bin = C:\Apps\ARM\RVCT3.1[700]\bin
+inc = C:\Apps\ARM\RVCT3.1[700]\inc
+lib = C:\Apps\ARM\RVCT3.1[700]\lib
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/start-perl.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,160 @@
+# Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Program to start a perl script that may run for more than 5 second in a new console
+# and return to the caller.
+# 
+#
+
+use strict;
+use Carp;
+use Getopt::Long qw{:config pass_through};
+use Win32::Process;
+my %cpus_to_clients = (2 => 4,
+                       4 => 4,
+                       8 => 8,
+                      16 => 16);
+
+my $n = ProcessCommandLine();
+
+if($n == 0)
+{
+  exit LaunchCommand(@ARGV);
+}
+else # $n should be 2, 4 or 8 in this case
+{
+  my $max = $cpus_to_clients{$n};
+  my @exit_codes;
+  
+  # Now create $max processes. 
+  for my $i(1..$max)
+  {
+    # Make a copy of the initial arg so we can use the # as a placeholder
+    # for the client number.
+    my @updated_args = @ARGV;
+    
+    # Update each argument, replacing # with $i; should only be one "#"
+    for my $arg(@updated_args)
+    {
+      $arg =~ s/#/$i/;
+    }
+    
+    push @exit_codes, LaunchCommand(@updated_args); # Push the exit code onto the array.
+  }
+  
+  # Now process the exit codes. If one is non-zero exit with that code.
+  # If all are zero exit with 0.
+  for my $ec(@exit_codes)
+  {
+    if($ec != 0)
+    {
+      exit $ec; 
+    }
+  }
+  
+  exit 0;
+}
+
+################################################################################
+# LaunchCommand                                                                #
+# Inputs: List of arguments to pass to perl exe                                #
+# Outputs: Exit code of perl process, if it exits within 5 seconds; 0 if not   #
+################################################################################
+sub LaunchCommand
+{
+  my @argv = @_;
+  print "Starting @argv\n";
+  # Create the process
+  Win32::Process::Create(my $proc, "$^X", "$^X @argv", 0, CREATE_NEW_CONSOLE, ".") || croak "ERROR: start @argv :$!";
+
+  my $ret = $proc->Wait(5000);      # milliseconds. Return value is zero on timeout, else 1.
+  if ($ret == 0)    # Wait timed out
+  {                 # No error from child process (so far)
+    print "@argv Started\n";
+    return 0;
+  }
+  else              # Child process terminated. Wait usually returns 1.
+  {                 # Error in child process?? Get exit code
+    my $exitcode;
+    $proc->GetExitCode($exitcode);
+    if ($exitcode != 0)
+    {
+      printf "ERROR: @argv failed to start. Exit Code: 0x%04x.\n",$exitcode;
+    }
+    return $exitcode;
+  }
+}
+
+################################################################################
+# ProcessCommandLine                                                           #
+# Inputs: None                                                                 #
+# Returns: if specified on the command line, the number of processors;         #
+#          otherwise 0 - this indicates that traditional usage of start-perl.  #
+# Remarks: If the number of processors is not defined in hash %cpus_to_clients #
+#          return an "intelligent guess"                                       #
+################################################################################
+sub ProcessCommandLine
+{
+    my ($help, $num_of_cpus);
+    GetOptions('h' => \$help, 'n=s' => \$num_of_cpus);
+    if (($help)) # Help 
+    {
+        Usage();
+    }
+    elsif(defined($num_of_cpus)) # Check that the number of clients is valid
+    {
+	  unless(defined $cpus_to_clients{$num_of_cpus})
+	  {
+		  # Report if the number is not valid.
+		  my @iValidList = sort {$a <=> $b} keys %cpus_to_clients;
+		  printf "ERROR: Argument -n $num_of_cpus not valid. Must be one of: %s.\n", join (', ', @iValidList);
+		  
+		  # Then try to guess appropriate number:
+		  my $cpus = 0;
+		  $cpus = 2 if ($num_of_cpus < 4);
+		  $cpus = 4 if ($num_of_cpus > 4 && $num_of_cpus < 8);
+		  $cpus = 8 if ($num_of_cpus > 8);
+		  print "...choosing valid number: $cpus\n";
+		  return $cpus;
+	  }
+      return $num_of_cpus; # Return number if valid
+    }
+    else ## i.e if(!defined($num_of_cpus))
+    {
+      return 0;
+    }
+}
+
+################################################################################
+# Usage                                                                        #
+# Inputs: None                                                                 #
+# Outputs: Usage information for the user.                                     #
+# Remarks: None                                                                #
+################################################################################
+sub Usage
+{
+    print <<USAGE_EOF;
+
+Usage: start-perl.pl [Parameters]
+  start-perl.pl -n %NUMBER_OF_PROCESSORS% %CleanSourceDir%\\os\\buildtools\\bldsystemtools\\buildsystemtools\\BuildClient.pl -d localhost:15011 -d localhost:15012 -d localhost:15013 -w 5 -c Core#
+  start-perl.pl %CleanSourceDir%\\os\\buildtools\\bldsystemtools\\buildsystemtools\\BuildClient.pl -d localhost:15011 -d localhost:15012 -d localhost:15013 -w 5 -c Core1
+  
+  Either start the command with -n <number of processors> followed by a perl script
+  usually BuildClient.pl. In this case the -c argument to BuildClient will be used
+  as a place holder and the # will be replaced by either 4 or 8.
+  
+  The script is backwards compatable with its previous usage.
+
+USAGE_EOF
+    exit 1;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/startbuild.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,280 @@
+#!perl -w 
+#
+# StartBuild.pl
+#
+# Script to bootstrap the starting of Daily and Test builds
+# Uses a config file containing details of which test source is needed.
+# Performs a delta sync to the baseline changelist number, copies only the
+# necessary files to clean-src, then syncs down any other files specified
+# in the config file into clean-src.
+
+use strict;
+use File::Copy;
+use Getopt::Long;
+use FindBin;
+use Sys::Hostname;
+use lib "$FindBin::Bin/..";
+use BxCopy;
+use PreBldChecks;
+use BuildLaunchChecks;
+
+use PC_P4Table;
+my $gXMLEnvRef; # Reference to hash containing environment data read from the XML file
+my %gBuildSpec;
+
+# default opts are daily manual
+my $CFG_BUILD_SUBTYPE = "Daily";
+
+# Process the commandline
+my ($iBuildSubTypeOpt) = ProcessCommandLine();
+
+my $hostname = &GetHostName();
+
+my $PUBLISH_LOCATION_DAILY = "\\\\builds01\\devbuilds";
+my $PUBLISH_LOCATION_TEST  = "\\\\builds01\\devbuilds\\test_builds";
+my $BUILDS_LOCAL_DIR       = "d:\\builds";
+
+# Define the source root directory (assumes it's 3 levels up)
+my $sourcedir = Cwd::abs_path("$FindBin::Bin\\..\\..\\..\\..");
+
+# Define the pathnames for the XML files
+my $BuildLaunchXML = "$sourcedir\\os\\buildtools\\bldsystemtools\\commonbldutils\\BuildLaunch.xml";
+my $PostBuildXML   = "$sourcedir\\os\\buildtools\\bldsystemtools\\commonbldutils\\PostBuild.xml";
+
+sub main() {
+    
+    print "Starting\n ";
+    
+    prepBuildLaunch();
+    doLoadEnv();      # populate gBuildEnv with ENV
+    doSubstDrive();
+    doLogsDirCreate();
+    doManualBuild();  # spawn build clients and do build
+}
+
+# load the env from BuildLaunch.xml
+sub doLoadEnv() {
+
+    # User may have edited environment variables above (see call to Notepad)
+    # So re-read the XML file and store current values in %$gXMLEnvRef
+    $gXMLEnvRef = PreBldChecks::XMLEnvironment($BuildLaunchXML);
+    
+    $gBuildSpec{'Product'}          = $gXMLEnvRef->{'Product'};
+    $gBuildSpec{'SnapshotNumber'}   = $gXMLEnvRef->{'SnapshotNumber'};
+    $gBuildSpec{'ChangelistNumber'} = $gXMLEnvRef->{'ChangelistNumber'};
+    $gBuildSpec{'BuildsDirect'}     = $gXMLEnvRef->{'BuildsDirect'};
+    $gBuildSpec{'Platform'}         = $gXMLEnvRef->{'Platform'};
+    $gBuildSpec{'BuildBaseName'}    = 'Symbian_OS_v'.$gBuildSpec{'Product'};
+    $gBuildSpec{'ThisBuild'}        = $gBuildSpec{'SnapshotNumber'}."_".$gBuildSpec{'BuildBaseName'};
+    $gBuildSpec{'LogsDir'}          = $gXMLEnvRef->{'LogsDir'};
+    $gBuildSpec{'BuildDir'}         = $gXMLEnvRef->{'BuildDir'};       # substed drive letter
+    $gBuildSpec{'BuildsDirect'}     = $gXMLEnvRef->{'BuildsDirect'}; # build dir
+    $gBuildSpec{'ThisBuildDir'}     = $gBuildSpec{'BuildsDirect'} . $gBuildSpec{'ThisBuild'};
+    $gBuildSpec{'Type'}             = $gXMLEnvRef->{'Type'};
+    $gBuildSpec{'CurrentCodeline'}  = $gXMLEnvRef->{'CurrentCodeline'};
+    $gBuildSpec{'BuildSubType'}     = $gXMLEnvRef->{'BuildSubType'};
+    $gBuildSpec{'SubstDir'}         = $gXMLEnvRef->{'SubstDir'};
+    $gBuildSpec{'CleanSourceDir'}   = $gXMLEnvRef->{'CleanSourceDir'};
+    
+    doValidate();
+}
+
+#
+# Output warnings for any missing attributes. If any
+# are missing, the output a RealTimeBuild ERROR to halt the build
+#
+sub doValidate() {
+    
+    # 1. validate all env vars are set    
+    # Note: Validate of TestBuild.cfg, not done here
+    my $iWarnCount = 0;
+    my $key;
+    my $value;
+    
+    while(($key, $value) = each(%gBuildSpec)) {
+        
+        # do something with $key and $value
+        if ($value eq "") {
+            print "\nWARNING: Attribute $key is missing from Specification ";
+            $iWarnCount++;
+        }
+    }
+    
+    die "\nERROR: RealTimeBuild: Attributes missing from BuildLaunch.xml" if $iWarnCount > 0;    
+}
+
+# Create Logs dir
+sub doLogsDirCreate() {
+    
+    if (!(-e $gBuildSpec{'LogsDir'})) {
+        
+        print "=== CREATING LOGS DIRECTORY ===\n";
+        
+        my $cmd = "mkdir $gBuildSpec{'LogsDir'}";        
+        system($cmd);
+
+    } else {
+        print "REMARK: Logs dir " .$gBuildSpec{'LogsDir'}."already exists!\n";
+    }
+}
+
+#
+sub doSubstDrive() {
+    
+    # Ensure trailing backslashes are removed
+    my $iSubstDrv = $gBuildSpec{'BuildDir'};
+     
+    $iSubstDrv =~ s/\\{1}$//;
+      
+    print "=== CREATING BUILD DIRECTORY ===\n";
+    
+    mkdir($gBuildSpec{'SubstDir'}, 0666) or die "ERROR: Could not create \"$gBuildSpec{'SubstDir'}\": $!";
+    
+    print "=== SUBST'ING BUILD DIRECTORY ===\n";
+    `subst $iSubstDrv /d 2>&1`;
+    system "subst $iSubstDrv $gBuildSpec{'SubstDir'} 2>&1" and die "ERROR: Could not subst \"$gBuildSpec{'SubstDir'}\" to \"substdrive\" : $!";
+    
+    
+}
+
+# Perform the manual build by running
+# 1. BuildLaunch.xml
+# 2. Core/Glue xml
+# 3. PostBuild.xml
+#
+sub doManualBuild() {
+    
+        # Start the BuildClients
+        print "Starting the BuildClients\n";
+        my $profile = 1;#($gProfile ? "-p" : "");
+        system "start \"Launch BuildClient\" cmd /k perl $sourcedir\\os\\buildtools\\bldsystemtools\\buildsystemtools\\BuildClient.pl -d localhost:15000 -d localhost:15001 -d localhost:15002 -w 5 -c Launch $profile";
+        
+        #
+        # BUILDING
+        #
+        print "=== Build started ===\n";
+        
+        # Start the BuildServer for the main build
+        print "Starting the Launch BuildServer\n";
+        my $command = "perl $sourcedir\\os\\buildtools\\bldsystemtools\\buildsystemtools\\buildserver.pl -p 15000 -p 15001 -p 15002 -t 5 -c 5 -d $BuildLaunchXML -l $gBuildSpec{'LogsDir'}\\".$gBuildSpec{'ThisBuild'}.".log";
+        system ($command) and die "Error: $!";
+        
+        print "Starting the Glue BuildServer\n";
+        my $gGlueXMLFile = $gBuildSpec{'BuildDir'} . '\\clean-src' . '\\os\\deviceplatformrelease\\symbianosbld\\cedarutils\\Symbian_OS_v' . $gBuildSpec{'Product'} . '.xml';
+        $command = "perl $sourcedir\\os\\buildtools\\bldsystemtools\\buildsystemtools\\buildserver.pl -p 15000 -p 15001 -p 15002 -t 5 -c 5 -d $gGlueXMLFile -e $BuildLaunchXML -l $gBuildSpec{'LogsDir'}\\".$gBuildSpec{'BuildBaseName'}.".log";
+        system ($command) and die "Error: $!";
+        
+        print "Starting the Postbuild BuildServer\n";
+        $PostBuildXML = $gBuildSpec{'CleanSourceDir'} . '\\os\\buildtools\\bldsystemtools\\commonbldutils\\PostBuild.xml';
+        $command = "perl $sourcedir\\os\\buildtools\\bldsystemtools\\buildsystemtools\\buildserver.pl -p 15000 -p 15001 -p 15002 -t 5 -c 5 -d $PostBuildXML -e $BuildLaunchXML -l $gBuildSpec{'LogsDir'}\\postbuild.log";
+        system ($command) and die "Error: $!";
+          
+        print "=== Build finished ===\n";
+        
+        exit 0;
+}
+
+#
+sub prepBuildLaunch() {
+    
+    my %BuildLaunchCheckData;
+
+    #
+    # PREPARATION
+    #
+    
+    # Make XML file writable
+    print "Making BuildLaunch XML file writable\n";
+    chmod(0666, $BuildLaunchXML) || warn "Warning: Couldn't make \"$BuildLaunchXML\" writable: $!";
+    
+    ($BuildLaunchCheckData{'Product'},
+     $BuildLaunchCheckData{'SnapshotNumber'},
+     $BuildLaunchCheckData{'PreviousSnapshotNumber'},
+     $BuildLaunchCheckData{'ChangelistNumber'},
+     $BuildLaunchCheckData{'CurrentCodeline'},
+     $BuildLaunchCheckData{'Platform'},
+     $BuildLaunchCheckData{'Type'}) = BuildLaunchChecks::GetUserInput();
+    
+     $BuildLaunchCheckData{'BCToolsBaseBuildNo'} = BuildLaunchChecks::GetBCValue(\%BuildLaunchCheckData);
+     
+     $BuildLaunchCheckData{'BuildsDirect'}       = $BUILDS_LOCAL_DIR;
+     $BuildLaunchCheckData{'BuildSubType'}       = $CFG_BUILD_SUBTYPE;
+     $BuildLaunchCheckData{'PreviousBuildPublishLocation'} = $PUBLISH_LOCATION_DAILY;
+
+     # set publish location according to Build SubType
+     if ($CFG_BUILD_SUBTYPE eq "Test") {
+        $BuildLaunchCheckData{'PublishLocation'}    = $PUBLISH_LOCATION_TEST;
+     } else {
+        $BuildLaunchCheckData{'PublishLocation'}    = $PUBLISH_LOCATION_DAILY;
+     }
+
+    # validate and write any updates    
+    my($Warnings) = BuildLaunchChecks::CheckData(\%BuildLaunchCheckData);
+    BuildLaunchChecks::UpdateXML($BuildLaunchXML, \%BuildLaunchCheckData, "");
+    
+    # Open XML file for verification
+    print "Opening XML file(s) for verification\n";
+    my $command = "start /wait notepad.exe ".$BuildLaunchXML;
+    system($command) and die "Error: $!";    
+}
+ 
+# Return hostname of this machine
+sub GetHostName
+{
+  my ($iHost) = &hostname() =~ /(\S+?)\./;
+  if (!defined($iHost))
+  {
+    # Not a fully qualified Hostname, use use raw name
+    $iHost = &hostname();
+  }
+  return ($iHost);
+}
+
+
+# new process command line
+sub ProcessCommandLine {
+  my ($iHelp);
+  
+  GetOptions('h' => \$iHelp,
+	     't:s' => \$iBuildSubTypeOpt);
+
+  if (($iHelp)) {
+    Usage();
+  } else {
+    
+    if ((defined $iBuildSubTypeOpt)) {
+        $CFG_BUILD_SUBTYPE= "Test";
+    }
+  }
+  
+  return ($iBuildSubTypeOpt);
+}
+
+
+sub Usage {
+  print <<USAGE_EOF;
+
+  Usage: startbuild.pl [option]
+
+  options:
+
+  -h  -- help
+  -t  [optional] Perform a TestBuild.
+  
+      - Additional source based upon testbuild.cfg will be
+        obtained from Perforce. If testbuild.cfg is not correctly filled out
+        it will fail during the syncsource stage.
+      - TestBuild will be published to TestBuild area on devbuilds and to Test CBR Archive
+        
+  
+
+USAGE_EOF
+  exit 1;
+}
+
+
+#########################################
+#              s t a r t
+#########################################
+main();
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/startbuild.xml	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,39 @@
+<?xml version="1.0"?>
+<!DOCTYPE Build  [
+  <!ELEMENT Product (Commands)>
+  <!ATTLIST Product name CDATA #REQUIRED>
+  <!ELEMENT Commands (Execute+ | SetEnv*)>
+  <!ELEMENT Execute EMPTY>
+  <!ATTLIST Execute ID CDATA #REQUIRED>
+  <!ATTLIST Execute Stage CDATA #REQUIRED>
+  <!ATTLIST Execute Component CDATA #REQUIRED>
+  <!ATTLIST Execute Cwd CDATA #REQUIRED>
+  <!ATTLIST Execute CommandLine CDATA #REQUIRED>
+  <!ELEMENT SetEnv EMPTY>
+  <!ATTLIST SetEnv Order ID #REQUIRED>
+  <!ATTLIST SetEnv Name CDATA #REQUIRED>
+  <!ATTLIST SetEnv Value CDATA #REQUIRED>
+]>
+<Product Name="Start Build Bootstrap">
+  <Commands>
+    
+    <!---Environment vars should be set by BuildManager.pm -->
+    <!---which is loaded from the database                 -->
+    <Execute ID="1" Stage="1" Component="Make Build Dir" Cwd="%ToolsDir%\os\buildtools\bldsystemtools\commonbldutils" CommandLine="mkdir %SubstDir% " ExitOnScanlogError="y"/>
+    <Execute ID="2" Stage="2" Component="Subst Build Dir" Cwd="%ToolsDir%\os\buildtools\bldsystemtools\commonbldutils" CommandLine="subst.pl -v %BuildDir% -p %SubstDir% -f" ExitOnScanlogError="y"/>
+    <Execute ID="3" Stage="3" Component="Make Logs Dir" Cwd="%ToolsDir%" CommandLine="mkdir %SubstDir%\logs\%Platform%"/>
+    <Execute ID="4" Stage="4" Component="Copy BuildLaunch" Cwd="%ToolsDir%\os\buildtools\bldsystemtools\commonbldutils\" CommandLine="copy BuildLaunch.xml %SubstDir%\logs\%Platform%"/>
+    
+    <!---Start Build Launch Client -->
+    <Execute ID="5" Stage="5" Component="Build Launch Client" Cwd="%ToolsDir%" CommandLine="perl %ToolsDir%\os\buildtools\bldsystemtools\commonbldutils\start-perl.pl %ToolsDir%\os\buildtools\bldsystemtools\buildsystemtools\BuildClient.pl -d localhost:15000 -d localhost:15001 -d localhost:15002 -w 5 -c BuildLaunch" ExitOnScanlogError="y"/>;
+
+    <!---Start Build Launch Server with Build Launch xml -->
+    <Execute ID="6" Stage="6" Component="Build Launch Server" Cwd="%ToolsDir%" CommandLine="perl %ToolsDir%\os\buildtools\bldsystemtools\buildsystemtools\buildserver.pl -p 15000 -p 15001 -p 15002 -t 5 -c 5 -d %SubstDir%\logs\%Platform%\BuildLaunch.xml -p 2003 -l %SubstDir%\logs\%Platform%\%BuildNumber%.log" ExitOnScanlogError="y"/>
+
+    <!---Start Build Glue Server with Main xml -->
+    <Execute ID="7" Stage="7" Component="Build Glue Server" Cwd="%BuildDir%" CommandLine="perl %ToolsDir%\os\buildtools\bldsystemtools\buildsystemtools\buildserver.pl -p 15000 -p 15001 -p 15002 -t 5 -c 5 -d %CleanSourceDir%\os\deviceplatformrelease\symbianosbld\cedarutils\%BuildBaseName%.xml -e %LogsDir%\BuildLaunch.xml -p 2003 -l %LogsDir%\%BuildBaseName%.log" ExitOnScanlogError="y"/>
+
+    <!---Start Build Glue Server with Postbuild xml -->
+    <Execute ID="8" Stage="8" Component="Build Glue Server for PostBuild" Cwd="%BuildDir%" CommandLine="perl %ToolsDir%\os\buildtools\bldsystemtools\buildsystemtools\buildserver.pl -p 15000 -p 15001 -p 15002 -t 5 -c 5 -d %CleanSourceDir%\os\buildtools\bldsystemtools\commonbldutils\PostBuild.xml -e %LogsDir%\BuildLaunch.xml -p 2003 -l %LogsDir%\postbuild.log" ExitOnScanlogError="y"/>
+  </Commands>
+</Product>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/subst.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,85 @@
+# Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Script to subst and un-subst drives
+# 
+#
+
+use strict;
+use Getopt::Long;
+
+my ($drive, $path, $delete, $force) = &ProcessCommandLine;
+
+die "ERROR: Bad virtual drive \"$drive\"" if $drive !~ /^\w:$/;
+
+if ($delete)
+{
+  system "subst /d $drive";
+  die("ERROR: Could not un-subst \"$drive\"") if $?;
+}
+else
+{
+  die "ERROR: \"$path\" does not exist" if !-d $path;
+  `subst /d $drive` if $force;
+  system "subst $drive $path";
+  die("ERROR: Could not subst \"$path\" to \"$drive\"") if $?;
+}
+
+# Subst has been successful
+print "Resultant subst mappings:\n";
+my $output = `subst`;
+$output ? print $output : print "None";
+
+# End of script
+
+sub ProcessCommandLine {
+  my ($iHelp, $iDrive, $iPath, $iDelete, $iForce);
+  GetOptions('h'   => \$iHelp,
+             'v=s' => \$iDrive,
+             'p=s' => \$iPath,
+             'd'   => \$iDelete,
+             'f'   => \$iForce);
+
+  if (($iHelp) || (!defined $iDrive) || ((!defined $iPath)&&(!defined $iDelete)))
+  {
+    Usage();
+  } 
+  else 
+  {
+    return($iDrive, $iPath, $iDelete, $iForce);
+  }
+}
+
+# Usage
+#
+# Output Usage Information.
+#
+
+sub Usage {
+  print <<USAGE_EOF;
+
+Usage: subst.pl [options]
+
+options:
+
+  -d  delete the SUBSTed virtual drive
+  -h  help
+  -f  force an un-subst first in case drive is already SUBSTed
+  -p  <physical path>
+  -v  <virtual drive>
+
+For example "subst.pl -v z: -p d:\\master\\03237" will subst the directory
+"d:\\master\\03237" to the virtual drive "z:"
+USAGE_EOF
+  exit 1;
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/tools_utils_common.history.xml	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<relnotes name="BUILDSYSTEMTOOLS">
+  <purpose>
+  </purpose>
+</relnotes>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/tools_utils_common.mrp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,12 @@
+#build tools
+component	tools_utils_common
+
+source	\sf\os\buildtools\bldsystemtools\commonbldutils
+
+notes_source	\component_defs\release.src
+
+
+ipr T 
+ipr G \sf\os\buildtools\bldsystemtools\commonbldutils\lib
+ipr O  \sf\os\buildtools\bldsystemtools\commonbldutils\lib\xml
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/sysdeftools/filter-module.xsl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,123 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:exslt="http://exslt.org/common"  exclude-result-prefixes="exslt">
+<!--Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+	All rights reserved.
+	This component and the accompanying materials are made available
+	under the terms of the License "Eclipse Public License v1.0"
+	which accompanies this distribution, and is available
+	at the URL "http://www.eclipse.org/legal/epl-v10.html".
+
+	Initial Contributors:
+	Nokia Corporation - initial contribution.
+	Contributors:
+	Description:
+	XSLT module which contains the logic to process the filter attribute in the system definition
+-->
+	<xsl:output method="xml" indent="yes"/>
+
+
+<!-- filters can only return hide or show -->
+
+<!-- filter-only =  item's @filter can only have items from the list
+	anything with no filters passes
+-->
+<xsl:template match="filter-only" mode="filter"><xsl:param name="item"/>
+	<xsl:if test="$item[@filter]">
+		<xsl:variable name="this" select="."/>
+		<xsl:variable name="my-filters">
+			<xsl:call-template name="filter-list">
+				<xsl:with-param name="f" select="$item/parent::component/@filter"/>
+			</xsl:call-template>
+			<xsl:call-template name="filter-list">
+				<xsl:with-param name="f" select="$item/@filter"/>
+			</xsl:call-template>
+		</xsl:variable>
+		<xsl:variable name="match">
+			<xsl:for-each select="exslt:node-set($my-filters)/*">
+				<xsl:if test="not($this/*[name()=name(current())  and @v=current()/@v])">x</xsl:if>
+			</xsl:for-each>
+		</xsl:variable>
+		<xsl:if test="$match!=''">hide</xsl:if>
+	</xsl:if>
+</xsl:template>
+
+
+
+<!-- filter-has =  item's @filter must have all filters in the list. ie it can have any other filters, but these must all be present	
+-->
+<xsl:template match="filter-has" mode="filter"><xsl:param name="item"/>
+	<xsl:if test="$item[(self::component or self::unit)  and not(unit/@filter or self::unit[not(../unit[@filter])])]">
+		<xsl:variable name="my-filters">
+			<xsl:call-template name="filter-list">
+				<xsl:with-param name="f" select="$item/parent::component/@filter"/>
+			</xsl:call-template>
+			<xsl:call-template name="filter-list">
+				<xsl:with-param name="f" select="$item/@filter"/>
+			</xsl:call-template>
+		</xsl:variable>
+		<xsl:variable name="match">
+			<xsl:for-each select="*">
+				<!-- 	if(f in this) {return true}  else if(!f in this) {return false} else {return !(f is positive)} -->
+				<xsl:choose>
+					<xsl:when test="exslt:node-set($my-filters)/*[name()=name(current()) and @v=current()/@v]"/> <!-- filter in item -->
+					<xsl:when test="exslt:node-set($my-filters)/*[name()!=name(current()) and @v=current()/@v]">x</xsl:when> <!-- !filter in item -->
+					<xsl:when test="self::filter">x</xsl:when> <!-- !(filter is positive) -->
+				</xsl:choose>
+			</xsl:for-each>
+		</xsl:variable>
+		<xsl:if test="$match!=''">hide</xsl:if>
+	</xsl:if>
+</xsl:template>
+
+<xsl:template match="filter-with" mode="filter"><xsl:param name="item"/>
+	<xsl:if test="$item[(self::component or self::unit)  and not(unit/@filter or self::unit[not(../unit[@filter])])]">
+		<xsl:variable name="my-filters">
+			<xsl:call-template name="filter-list">
+				<xsl:with-param name="f" select="$item/parent::component/@filter"/>
+			</xsl:call-template>
+			<xsl:call-template name="filter-list">
+				<xsl:with-param name="f" select="$item/@filter"/>
+			</xsl:call-template>
+		</xsl:variable>
+		<xsl:variable name="match">
+			<xsl:for-each select="*">
+				<xsl:if test="exslt:node-set($my-filters)/*[name()!=name(current()) and @v=current()/@v]">x</xsl:if> <!-- !filter in item -->
+			</xsl:for-each>
+		</xsl:variable>
+		<xsl:if test="$match!=''">hide</xsl:if>
+	</xsl:if>
+</xsl:template>
+
+
+
+<xsl:template name="filter-item"> <xsl:param name="f"/>
+	<!-- create an element for a given filter. If the filter's empty make nothing -->
+	<xsl:choose>
+		<xsl:when test="$f=''"/>
+		<xsl:when test="starts-with($f,'!')">
+				<not v="{substring($f,2)}"/>
+		</xsl:when>
+		<xsl:otherwise>
+				<filter v="{$f}"/>
+		</xsl:otherwise>
+	</xsl:choose>
+</xsl:template>
+
+<xsl:template name="filter-list"><xsl:param name="f"/>
+	<!-- turn a filter list into a set of elements (<filter> or <not>) with the attribute "v" containing the "absolute value" of the filter
+		filter="A,B,!C" becomes  <filter v="A"/><filter v="B"/><not v="C"/> 
+	  -->
+	<xsl:choose>
+		<xsl:when test="contains($f,',')">
+			<xsl:call-template name="filter-item"><xsl:with-param name="f" select="normalize-space(substring-before($f,','))"/></xsl:call-template>
+			<xsl:call-template name="filter-list">
+				<xsl:with-param name="f" select="substring-after($f,',')"/>
+			</xsl:call-template>
+		</xsl:when>
+		<xsl:otherwise>
+			<xsl:call-template name="filter-item"><xsl:with-param name="f" select="normalize-space($f)"/></xsl:call-template>
+		</xsl:otherwise>
+	</xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet> 
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/sysdeftools/filtering.xsl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,276 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:exslt="http://exslt.org/common"  exclude-result-prefixes="exslt">
+<!--Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+	All rights reserved.
+	This component and the accompanying materials are made available
+	under the terms of the License "Eclipse Public License v1.0"
+	which accompanies this distribution, and is available
+	at the URL "http://www.eclipse.org/legal/epl-v10.html".
+
+	Initial Contributors:
+	Nokia Corporation - initial contribution.
+	Contributors:
+	Description:
+	Filter a sysdef in the 2.0 or 3.0 syntax
+-->
+<xsl:output method="xml" indent="yes"/>
+
+<xsl:param name="filter-type">only</xsl:param> <!-- only, has or with -->
+
+<xsl:param name="filter"/> <!-- comma-separated list -->
+
+<xsl:param name="addbuild" select="0"/> <!-- add a system build section that accepts everything -->
+
+
+<xsl:template match="node()|@*"><xsl:copy-of select="."/></xsl:template>
+<xsl:template match="*"><xsl:param name="data"/>
+	<xsl:copy>
+		<xsl:copy-of select="@*"/>
+		<xsl:apply-templates select="node()">
+			<xsl:with-param name="data" select="$data"/>
+		</xsl:apply-templates>
+	</xsl:copy>
+</xsl:template>
+
+<xsl:template match="component|unit"><xsl:param name="data"/> <!-- filterable items -->
+	 <xsl:variable name="display">
+	 	<xsl:apply-templates select="$data" mode="filter">
+			<xsl:with-param name="item" select="current()"/>
+		</xsl:apply-templates>
+	 </xsl:variable>
+	 
+	 <xsl:if test="$display != 'hide' "> <!-- if hide, remove completely from the output-->
+		<xsl:copy>
+			<xsl:copy-of select="@*"/>
+			<xsl:apply-templates select="node()">
+				<xsl:with-param name="data" select="$data"/>
+			</xsl:apply-templates>
+		</xsl:copy>
+	</xsl:if>
+</xsl:template>
+
+<xsl:template match="/SystemDefinition">
+	<xsl:variable name="f">
+		<xsl:element name="filter-{$filter-type}">
+			<xsl:call-template name="filter-list">
+				<xsl:with-param name="f" select="$filter"/>
+			</xsl:call-template>
+		</xsl:element>
+	</xsl:variable>
+	<xsl:choose>
+		<xsl:when test="starts-with(@schema,'3.0')"/> <!-- no DTD needed for 3.0 sysdef -->
+		<xsl:when test="$addbuild">
+			<xsl:call-template name="DTD-bld"/> <!-- insert 2.0.1 DTD w/sysbuild parts-->
+		</xsl:when>
+		<xsl:otherwise>
+			<xsl:call-template name="DTD"/> <!-- insert 2.0.1 DTD -->
+		</xsl:otherwise>
+	</xsl:choose>
+	<xsl:copy>
+		<xsl:copy-of select="@*"/>
+		<xsl:variable name="content"> <!-- save content for potential further processing -->
+			<xsl:apply-templates select="node()">
+				<xsl:with-param name="data" select="exslt:node-set($f)/*"/>
+			</xsl:apply-templates>
+		</xsl:variable>
+		<!-- just output content as is. We could create a template to remove any filtered out items, but so far there's no compelling need -->
+		<xsl:copy-of select="$content"/>  
+
+		<xsl:if test="$addbuild">
+			<SystemBuild schema="1.0.0">
+				<configuration name="any" description="text">
+					<xsl:attribute name="filter">
+						<xsl:for-each select="//@filter[not(.=following::*/@filter)]">
+							<xsl:value-of select="."/><xsl:if test="position()!=last()">,</xsl:if>
+						</xsl:for-each>
+					</xsl:attribute>
+					<xsl:for-each select="exslt:node-set($content)/systemModel/layer[descendant::unit]">
+						<!-- only include layers we know have units -->
+						<ref item="{@name}"/>
+					</xsl:for-each>
+				</configuration>
+			</SystemBuild>
+		</xsl:if>
+	</xsl:copy>
+</xsl:template>
+
+
+<xsl:include href="filter-module.xsl"/>
+
+<xsl:template name="DTD-bld">
+<xsl:text disable-output-escaping="yes"><![CDATA[<!DOCTYPE SystemDefinition [
+ <!ELEMENT SystemDefinition ( systemModel?, SystemBuild? )>
+ <!ATTLIST SystemDefinition
+  name CDATA #REQUIRED
+  schema CDATA #REQUIRED>
+ <!ELEMENT systemModel (layer+)>
+ <!ELEMENT layer (block* | collection*)*>
+ <!ATTLIST layer
+  name CDATA #REQUIRED
+  long-name CDATA #IMPLIED
+  levels NMTOKENS #IMPLIED
+  span CDATA #IMPLIED>
+ <!ELEMENT block (subblock* | collection*)*>
+ <!ATTLIST block
+  levels NMTOKENS #IMPLIED
+  span CDATA #IMPLIED
+  level NMTOKEN #IMPLIED
+  name CDATA #REQUIRED
+  long-name CDATA #IMPLIED>
+ <!ELEMENT subblock (collection)*>
+ <!ATTLIST subblock
+  name CDATA #REQUIRED
+  long-name CDATA #IMPLIED>
+ <!ELEMENT collection (component)*>
+ <!ATTLIST collection
+  name CDATA #REQUIRED
+  long-name CDATA #IMPLIED
+  level NMTOKEN #IMPLIED>
+ <!ELEMENT component (unit)*>
+ <!ATTLIST component
+  name CDATA #REQUIRED
+  long-name CDATA #IMPLIED
+  deprecated CDATA #IMPLIED
+  introduced CDATA #IMPLIED
+  contract CDATA #IMPLIED
+  plugin (Y|N) "N"
+  filter CDATA #IMPLIED
+  class NMTOKENS #IMPLIED
+  supports CDATA #IMPLIED
+  purpose ( optional | mandatory | development ) "optional">
+ <!ELEMENT unit EMPTY>
+ <!ATTLIST unit
+  mrp CDATA #IMPLIED
+  filter CDATA #IMPLIED
+  bldFile CDATA #IMPLIED
+  root CDATA #IMPLIED
+  version NMTOKEN #IMPLIED
+  prebuilt NMTOKEN #IMPLIED
+  late (Y|N) #IMPLIED
+  priority CDATA #IMPLIED>
+ <!ELEMENT SystemBuild (option* | target+ | targetList+ | list+ | configuration+)*>
+ <!ATTLIST SystemBuild schema CDATA #REQUIRED>
+ <!ELEMENT list (ref+)>
+ <!ATTLIST list
+  name ID #REQUIRED
+  description CDATA #REQUIRED>
+ <!ELEMENT ref EMPTY>
+ <!ATTLIST ref item CDATA #REQUIRED>
+ <!ELEMENT targetList EMPTY>
+ <!ATTLIST targetList
+  name ID #REQUIRED
+  description CDATA #REQUIRED
+  target IDREFS #REQUIRED>
+ <!ELEMENT target EMPTY>
+ <!ATTLIST target
+  name ID #REQUIRED
+  abldTarget CDATA #REQUIRED
+  description CDATA #REQUIRED>
+ <!ELEMENT option EMPTY>
+ <!ATTLIST option
+  name ID #REQUIRED
+  abldOption CDATA #REQUIRED
+  description CDATA #REQUIRED
+  enable (Y | N ) #REQUIRED>
+ <!ELEMENT configuration (listRef+ | ref+ | task+)*>
+ <!ATTLIST configuration
+  name ID #REQUIRED
+  description CDATA #REQUIRED
+  filter CDATA #REQUIRED>
+ <!ELEMENT task (listRef* , (buildLayer | specialInstructions))>
+ <!ELEMENT listRef EMPTY>
+ <!ATTLIST listRef list CDATA #REQUIRED>
+ <!ELEMENT buildLayer EMPTY>
+ <!ATTLIST buildLayer
+  command CDATA #REQUIRED
+  targetList IDREFS #IMPLIED
+  unitParallel (Y | N ) #REQUIRED
+  targetParallel (Y | N ) "N">
+ <!ELEMENT specialInstructions EMPTY>
+ <!ATTLIST specialInstructions
+  name CDATA #REQUIRED
+  cwd CDATA #REQUIRED
+  root CDATA #IMPLIED
+  command CDATA #REQUIRED>
+]>
+]]></xsl:text>
+</xsl:template>
+
+<xsl:template name="DTD">
+<xsl:text disable-output-escaping="yes"><![CDATA[<!DOCTYPE SystemDefinition [
+<!ELEMENT SystemDefinition ( systemModel )>
+<!ATTLIST SystemDefinition
+  name CDATA #REQUIRED
+  schema CDATA #REQUIRED
+>
+<!-- all paths are relative to the environment variable specified by the root attribute, or SOURCEROOT if not.  -->
+
+<!-- System Model Section of DTD -->
+<!ELEMENT systemModel (layer+)>
+
+<!ELEMENT layer (block* | collection*)*>
+<!-- Kernel Services, Base Services, OS Services, Etc -->
+<!ATTLIST layer
+  name CDATA #REQUIRED
+  long-name CDATA #IMPLIED
+  levels NMTOKENS #IMPLIED
+  span CDATA #IMPLIED
+>
+
+<!ELEMENT block (subblock* | collection*)*>
+ <!-- Generic OS services, Comms Services, etc -->
+<!ATTLIST block
+  levels NMTOKENS #IMPLIED
+  span CDATA #IMPLIED
+  level NMTOKEN #IMPLIED
+  name CDATA #REQUIRED
+  long-name CDATA #IMPLIED
+>
+
+<!ELEMENT subblock (collection)*>
+<!-- Cellular Baseband Services, Networking Services, etc -->
+<!ATTLIST subblock
+  name CDATA #REQUIRED
+  long-name CDATA #IMPLIED
+>
+
+<!ELEMENT collection (component)*>
+<!-- Screen Driver, Content Handling, etc -->
+<!ATTLIST collection
+  name CDATA #REQUIRED
+  long-name CDATA #IMPLIED
+  level NMTOKEN #IMPLIED
+>
+
+<!ELEMENT component (unit)*>
+<!-- contains units or is a  package or prebuilt -->
+<!ATTLIST component
+  name CDATA #REQUIRED
+  long-name CDATA #IMPLIED
+  deprecated CDATA #IMPLIED
+  introduced CDATA #IMPLIED
+  contract CDATA #IMPLIED
+  plugin (Y|N) "N"
+  filter CDATA #IMPLIED
+  class NMTOKENS #IMPLIED
+  supports CDATA #IMPLIED
+  purpose ( optional | mandatory | development ) "optional"
+>
+
+<!ELEMENT unit EMPTY >
+<!-- must be buildable (bld.inf) -->
+<!-- bldFile  may someday be removed in favour of mrp -->
+<!ATTLIST unit
+  mrp CDATA #IMPLIED
+  filter CDATA #IMPLIED
+  bldFile CDATA #IMPLIED
+  root CDATA #IMPLIED
+  version NMTOKEN #IMPLIED
+  prebuilt NMTOKEN #IMPLIED
+  late (Y|N) #IMPLIED
+  priority CDATA #IMPLIED
+>
+]>
+]]></xsl:text>
+</xsl:template>
+</xsl:stylesheet>	
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/sysdeftools/group/sysdeftools.mrp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,7 @@
+component	sysdeftools
+
+source	\sf\os\buildtools\bldsystemtools\sysdeftools\
+notes_source	\component_defs\release.src
+
+
+ipr T 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/sysdeftools/joinsysdef-module.xsl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,511 @@
+<?xml version="1.0"?>
+ <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
+ 	xmlns:exslt="http://exslt.org/common" exclude-result-prefixes="exslt">
+<!--Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+	All rights reserved.
+	This component and the accompanying materials are made available
+	under the terms of the License "Eclipse Public License v1.0"
+	which accompanies this distribution, and is available
+	at the URL "http://www.eclipse.org/legal/epl-v10.html".
+
+	Initial Contributors:
+	Nokia Corporation - initial contribution.
+	Contributors:
+	Description:
+	XSLT module which contains the logic to join a system definition file
+-->
+	<!-- save SF namespace as a constant to avoid the risk of typos-->
+ <xsl:variable name="defaultns">http://www.symbian.org/system-definition</xsl:variable>
+ 
+<!-- create a stand-alone sysdef from a linked set of fragments -->
+
+<xsl:template match="/*" mode="join">
+	<xsl:message terminate="yes">ERROR: Cannot process this document</xsl:message>
+</xsl:template>
+
+
+<xsl:template match="/SystemDefinition[@schema='3.0.0' and count(*)=1]" mode="join">
+	<xsl:param name="origin" select="/.."/>
+	<xsl:param name="root"/>
+	<xsl:param name="filename"/>
+	<xsl:param name="namespaces"/>
+	<xsl:param name="data" select="/.."/>
+	<xsl:choose>
+		<xsl:when test="$origin">	<!-- this sysdef fragment was linked from a parent sysdef -->
+			<xsl:for-each select="*"> <!-- can be only one -->
+				<xsl:variable name="upid"><xsl:apply-templates select="$origin/@id" mode="my-id"/></xsl:variable>		<!-- namespaceless ID of this in parent doc -->
+				<xsl:variable name="id"><xsl:apply-templates select="@id" mode="my-id"/></xsl:variable>						<!-- namespaceless ID of this here -->
+				<xsl:variable name="upns"><xsl:apply-templates select="$origin/@id" mode="my-namespace"/></xsl:variable>	<!-- ID's namespace in parent doc -->
+				<xsl:variable name="ns"><xsl:apply-templates select="@id" mode="my-namespace"/></xsl:variable>	<!-- ID's namespace -->
+				<xsl:if test="$id!=$upid or $ns!=$upns">
+					<xsl:message terminate="yes">ERROR: Linked ID "<xsl:value-of select="$id"/>" (<xsl:value-of select="$ns"/>) must match linking document "<xsl:value-of select="$upid"/>" (<xsl:value-of select="$upns"/>)</xsl:message>
+				</xsl:if>
+				<!-- copy any attributes not already defined (parent doc overrides child doc)-->
+				<xsl:for-each select="@*">
+					<xsl:variable name="n" select="name()"/>
+					<xsl:choose>
+						<xsl:when test="$n='id'"/> <!-- never copy this, always set -->
+						<xsl:when test="$origin/@*[name()=$n]"> <!-- don't copy if already set -->
+							<xsl:message>Cannot set "<xsl:value-of select="$n"/>", already set</xsl:message>
+						</xsl:when>
+						<xsl:when test="$n='before'">
+							<!-- ensure ns is correct (if any future attribtues will ever use an ID, process it here too)-->
+							<xsl:apply-templates select="." mode="join">
+								<xsl:with-param name="namespaces" select="$namespaces"/>
+							</xsl:apply-templates>
+						</xsl:when> 
+						<xsl:otherwise><xsl:copy-of select="."/></xsl:otherwise> <!-- just copy anything else -->
+					</xsl:choose>
+				</xsl:for-each>
+				<xsl:copy-of select="../namespace::*[not(.=$namespaces)]"/> <!-- set any namespaces not already set (they should all alreayd be, but some XSLT processors are quirky) -->
+			 	<xsl:apply-templates select="$data" mode="overlay-attributes">
+					<xsl:with-param name="item" select="current()"/>
+				</xsl:apply-templates>
+				<xsl:variable name="content">									
+					<xsl:apply-templates select="*|comment()" mode="join">
+						<xsl:with-param name="root" select="$root"/>
+						<xsl:with-param name="filename" select="$filename"/>
+						<xsl:with-param name="data" select="$data"/>
+						<xsl:with-param name="namespaces" select="$namespaces | ../namespace::*[not(.=$namespaces)]"/>
+					</xsl:apply-templates>
+				</xsl:variable>
+				<xsl:apply-templates select="." mode="is-content-filtered"> <!-- optionally add filtered="yes" if some content has been removed -->
+					<xsl:with-param name="content" select="$content"/>
+				</xsl:apply-templates>
+			 	<xsl:apply-templates select="$data" mode="overlay-meta">
+					<xsl:with-param name="item" select="current()"/>
+				</xsl:apply-templates>
+				<xsl:copy-of select="$content"/>
+			</xsl:for-each>
+		</xsl:when>
+		<xsl:when test="function-available('exslt:node-set')"> <!-- this is the root element of a root sysdef -->
+			<!--try to put all namespaces in root element -->
+			<xsl:variable name="nss">
+				<!-- contains node set of namespaces to add to root element.
+					May panic if there are too many single-letter namespaces and this can't create a new one -->
+				<xsl:call-template name="needed-namespaces">
+					<xsl:with-param name="foundns">
+						<xsl:apply-templates select="//*[(self::component or self::collection or self::package or self::layer) and @href]" mode="scan-for-namespaces"/>
+					</xsl:with-param>
+				</xsl:call-template>
+			</xsl:variable>
+			<xsl:variable name="ns" select="@id-namespace | namespace::* | exslt:node-set($nss)/*"/>
+			<xsl:copy><xsl:copy-of select="@*"/>
+				<xsl:apply-templates select="self::*[not(@id-namespace)]" mode="add-id-ns"/>
+				<xsl:for-each select="exslt:node-set($nss)/*"> <!-- add namespace definitions -->
+					<xsl:attribute name="xmlns:{name()}">
+						<xsl:value-of select="."/>
+					</xsl:attribute>
+				</xsl:for-each>
+				<!-- no need to call is-content-filtered, it never will be from this element --> 
+				<xsl:apply-templates select="*|comment()" mode="join">
+					<xsl:with-param name="namespaces" select="$ns"/>
+					<xsl:with-param name="root" select="$root"/>
+					<xsl:with-param name="data" select="$data"/>
+					<xsl:with-param name="filename" select="$filename"/>
+				</xsl:apply-templates>
+			</xsl:copy>
+		</xsl:when>
+		<xsl:otherwise> <!-- can't handle node-set() so put the namespaces in the document instead of the root element-->
+			<xsl:variable name="ns" select="@id-namespace | namespace::*"/>
+			<xsl:copy><xsl:copy-of select="@*"/>
+				<!-- no need to call is-content-filtered, it never will be from this element -->
+				<xsl:apply-templates select="*|comment()" mode="join">
+					<xsl:with-param name="namespaces" select="$ns"/>
+					<xsl:with-param name="root" select="$root"/>
+					<xsl:with-param name="data" select="$data"/>
+					<xsl:with-param name="filename" select="$filename"/>
+				</xsl:apply-templates>
+			</xsl:copy>
+		</xsl:otherwise>
+	</xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="scan-for-namespaces"/> <!-- just in case of errors, consider replacing by terminate -->
+<xsl:template match="*[@href and not(self::meta)]" mode="scan-for-namespaces">
+	<!-- produce a list of namespace-prefix namespace pairs separated by newlines, in reverse order found in documents 
+		reverse order so we can try to use the first namespace prefix defined if it's available-->
+	<xsl:for-each select="document(@href,.)/*">
+		<xsl:apply-templates select="//*[(self::component or self::collection or self::package or self::layer) and @href]" mode="scan-for-namespaces"/>
+		<xsl:for-each select="//namespace::* | @id-namespace">
+			<xsl:value-of select="concat(name(),' ',.,'&#xa;')"/>
+		</xsl:for-each>
+	</xsl:for-each>			
+</xsl:template>
+
+<xsl:template name="needed-namespaces">
+	<xsl:param name="foundns"/>
+	<xsl:param name="usedpre"/>
+	
+	<xsl:if test="foundns!=''">
+		<xsl:variable name="line" select="substring-before($foundns,'&#xa;')"/> <!-- always has trailing newline -->
+		<xsl:variable name="name" select="substring-after($line,' ')"/> <!-- namespace prefix -->
+		<xsl:variable name="remainder" select="substring-after($foundns,'&#xa;')"/>
+		<xsl:variable name="newprefix">
+			<xsl:if test="not(contains(concat('&#xa;',$remainder),concat('&#xa;',$line,'&#xa;'))) and
+				not(//namespace::*[.=$name] or @id-namespace[.=$name] or (not(@id-namespace) and $defaultns=$name))">
+						<xsl:apply-templates select="." mode="ns-prefix">
+							<xsl:with-param name="ns" select="$name"/>
+							<xsl:with-param name="pre" select="substring-before($line,' ')"/>
+							<xsl:with-param name="dontuse" select="$usedpre"/>
+						</xsl:apply-templates>
+			</xsl:if>
+		</xsl:variable>
+		<xsl:if test="$newprefix!=''">
+			<!-- can treat this as if it were a namespace node -->
+			<xsl:element name="{$newprefix}">
+				<xsl:value-of select="$name"/>
+			</xsl:element>
+		</xsl:if>
+		<xsl:if test="$remainder!=''">
+			<xsl:call-template name="needed-namespaces">
+				<xsl:with-param name="foundns" select="$remainder"/>
+				<xsl:with-param name="usedpre" select="concat($usedpre,' ',$newprefix,' ')"/>
+			</xsl:call-template>
+		</xsl:if>
+	</xsl:if>
+</xsl:template>
+
+<xsl:template match="/SystemDefinition" mode="ns-prefix">
+	<!-- should be able to replace this with mechanism that uses the XSLT processor's own ability to generate namespaces -->
+	<xsl:param name="ns"/>
+	<xsl:param name="pre"/>
+	<xsl:param name="dontuse"/>
+	<xsl:param name="chars">ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz</xsl:param>
+	<xsl:variable name="name" select="substring(substring-after($ns,'http://www.'),1,1)"/>
+	<xsl:choose>
+		<xsl:when test="$pre!='' and $pre!='id-namespace' and not(//namespace::*[name()=$pre]) and not(contains($dontuse,concat(' ',$pre,' ')))">
+			<xsl:value-of select="$pre"/>
+		</xsl:when>
+		<xsl:when test="$ns='' and $chars=''">
+			<xsl:message terminate="yes">ERROR: Cannot create namespace prefix for downstream default namespace in <xsl:value-of select="*/@id"/></xsl:message>
+		</xsl:when>
+		<xsl:when test="$name!='' and not(contains($dontuse,concat(' ',$name,' ')))"><xsl:value-of select="$name"/></xsl:when>
+		<xsl:when test="namespace::*[name()=substring($chars,1,1)] or contains($dontuse,concat(' ',substring($chars,1,1),' '))">
+			<xsl:apply-templates mode="ns-prefix">
+				<xsl:with-param name="chars" select="substring($chars,2)"/>
+			</xsl:apply-templates>
+		</xsl:when>
+		<xsl:otherwise>
+			<xsl:value-of select="substring($chars,1,1)"/>
+		</xsl:otherwise>
+	</xsl:choose>
+</xsl:template>
+
+
+<xsl:template match="unit" mode="join">	<xsl:param name="root"/><xsl:param name="filename"/><xsl:param name="data"/>
+	 <xsl:variable name="display">
+	 	<xsl:apply-templates select="$data" mode="filter">
+			<xsl:with-param name="item" select="current()"/>
+		</xsl:apply-templates>
+	 </xsl:variable>
+	 
+	 <xsl:if test="$display != 'hide' "> <!-- if hide, remove completely from the output-->	 
+		<xsl:element name="{name()}">
+			<xsl:apply-templates select="@*" mode="join">
+				<xsl:with-param name="root" select="$root"/>
+				<xsl:with-param name="filename" select="$filename"/>
+			</xsl:apply-templates>
+		</xsl:element>
+	</xsl:if>
+</xsl:template>
+
+<!-- override mode="meta" to translate metadata sections. By default, include -->
+<xsl:template match="meta" priority="2"><xsl:param name="data"/>
+	 <xsl:variable name="display">
+	 	<xsl:apply-templates select="$data" mode="filter">
+			<xsl:with-param name="item" select="current()"/>
+		</xsl:apply-templates>
+	 </xsl:variable>
+	 
+	<xsl:if test="$display != 'hide' "> <!-- if hide, remove completely from the output-->	
+		<xsl:apply-templates select="." mode="meta"> 
+			<xsl:with-param name="display" select="$display"/>
+			<xsl:with-param name="data" select="$data"/>
+		</xsl:apply-templates>
+	</xsl:if>
+</xsl:template>
+
+
+<xsl:template match="*" mode="join">
+	<xsl:param name="root"/><xsl:param name="filename"/><xsl:param name="namespaces"/><xsl:param name="data"/>
+	<!-- get attribtues from overlay -->
+	<!-- test for presence, if filtered out, just return -->
+	<!-- test for children, if it has some, but they're filtered out, either return or leave as empty, dependening on filter rule
+		if had items and now has none, options:
+			still has meta: keep / delete
+			still has comments: keep / delete 
+	 -->
+	 
+	 <xsl:variable name="display">
+	 	<xsl:apply-templates select="$data" mode="filter">
+			<xsl:with-param name="item" select="current()"/>
+		</xsl:apply-templates>
+	 </xsl:variable>
+	 
+	 <xsl:if test="$display != 'hide' "> <!-- if hide, remove completely from the output-->
+	 
+		 <xsl:variable name="href">
+		 	<xsl:apply-templates select="." mode="link">
+				<xsl:with-param name="data" select="$data"/>
+			</xsl:apply-templates>
+		 </xsl:variable>
+		 	 
+		 
+		<xsl:element name="{name()}"> <!-- use this instead of <copy> so xalan doesn't add extra wrong namespaces -->
+			<xsl:apply-templates select="@*" mode="join">
+				<xsl:with-param name="namespaces" select="$namespaces"/>
+			</xsl:apply-templates>
+			<xsl:if test="$display != '' ">
+				<!-- custom attribute to indicate how this is to be represented. Blank indicates normal, hide removes from the output (see above), anything else is put in the attribute --> 
+				<xsl:attribute name="display"><xsl:value-of select="$display"/></xsl:attribute>
+			</xsl:if>
+		 	<xsl:apply-templates select="$data" mode="overlay-attributes">
+				<xsl:with-param name="item" select="current()"/>
+			</xsl:apply-templates>			
+			<xsl:choose>
+				<xsl:when test="$href !='' ">
+					<xsl:variable name="origin" select="."/>
+					<xsl:apply-templates select="document($href,.)/*" mode="join">
+						<xsl:with-param name="origin" select="$origin"/>
+						<xsl:with-param name="data" select="$data"/>
+						<xsl:with-param name="namespaces" select="$namespaces"/>
+						<xsl:with-param name="filename">
+							<xsl:call-template name="joinpath">
+								<xsl:with-param name="file" select="$filename"/>
+								<xsl:with-param name="rel" select="$href"/>
+							</xsl:call-template>					
+						</xsl:with-param>
+						<xsl:with-param name="root">
+								<xsl:value-of select="$root"/>/<xsl:call-template name="lastbefore">
+								<xsl:with-param name="string" select="$href"/>
+							</xsl:call-template>
+						</xsl:with-param>
+					</xsl:apply-templates> 
+				</xsl:when>
+				<xsl:otherwise>
+					<xsl:variable name="content">
+						<xsl:apply-templates select="*|comment()" mode="join">
+							<xsl:with-param name="root" select="$root"/>
+							<xsl:with-param name="filename" select="$filename"/>
+							<xsl:with-param name="namespaces" select="$namespaces"/>
+							<xsl:with-param name="data" select="$data"/>
+						</xsl:apply-templates>
+					</xsl:variable>
+					<xsl:apply-templates select="." mode="is-content-filtered"> <!-- add filtered="yes" if some content has been removed -->
+						<xsl:with-param name="content" select="$content"/>
+					</xsl:apply-templates>
+				 	<xsl:apply-templates select="$data" mode="overlay-meta">
+						<xsl:with-param name="item" select="current()"/>
+					</xsl:apply-templates>
+					<xsl:copy-of select="$content"/>
+				</xsl:otherwise>
+			</xsl:choose>
+		</xsl:element>
+	</xsl:if>
+</xsl:template>
+
+<!-- By default, do nothing. Can override template to add filtered="yes" if need to track what's a placeholder and what's been filtered 
+	implement with param name="content"
+-->
+<xsl:template mode="is-content-filtered" match="*" priority="-2"/>
+
+
+<xsl:template match="@mrp[starts-with(.,'/')] | @bldFile[starts-with(.,'/')] | @base[starts-with(.,'/')]" mode="join">
+	<xsl:copy-of select="."/>
+</xsl:template>
+
+<xsl:template match="@mrp|@bldFile|@base" mode="join">	<xsl:param name="root"/><xsl:param name="filename"/>
+	<xsl:attribute name="{name()}">
+		<xsl:call-template name="joinpath">
+			<xsl:with-param name="file" select="$filename"/>
+			<xsl:with-param name="rel" select="."/>
+		</xsl:call-template>	
+	</xsl:attribute>	
+</xsl:template>
+
+
+<xsl:template match="@href" mode="join"/> <!--never copy this into the generated doc, that's the whole point of this module -->
+
+<xsl:template match="@*" mode="my-namespace"> <!-- the namespace of an ID -->
+	<xsl:choose>
+		<xsl:when test="contains(.,':')">
+			<xsl:value-of select="ancestor::*/namespace::*[name()=substring-before(current(),':')]"/>
+		</xsl:when>
+		<xsl:when test="/SystemDefinition/@id-namespace">
+			<xsl:value-of select="/SystemDefinition/@id-namespace"/>
+		</xsl:when>
+		<xsl:otherwise>
+			<xsl:value-of select="$defaultns"/>
+		</xsl:otherwise>
+	</xsl:choose>
+</xsl:template>
+
+
+<xsl:template match="@*" mode="my-id"> <!-- the ID with namespace prefix removed -->
+	<xsl:choose>
+		<xsl:when test="contains(.,':')">
+			<xsl:value-of select="substring-after(.,':')"/>
+		</xsl:when>
+		<xsl:otherwise>
+			<xsl:value-of select="."/>
+		</xsl:otherwise>
+	</xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="err-path">
+<xsl:if test="../@id">
+	<xsl:apply-templates select=".." mode="err-path"/>/</xsl:if>
+<xsl:value-of select="@id"/>
+</xsl:template>
+
+
+<xsl:template match="@id|@before" mode="join">
+	<xsl:param name="namespaces"/>
+	<!-- this will change the namespace prefixes for all IDs to match the root document -->
+	<xsl:variable name="ns">
+		<xsl:apply-templates select="." mode="my-namespace"/>
+	</xsl:variable>
+	<xsl:if test="$ns=''">
+		<xsl:message terminate="yes">ERROR: Could not find namespace for <xsl:value-of select="name()"/> "<xsl:value-of select="."/>" in <xsl:apply-templates select="../.." mode="err-path"/>
+		<xsl:text>&#xa;</xsl:text>
+		</xsl:message>
+	</xsl:if>
+	<xsl:variable name="prefix" select="name($namespaces[.=$ns])"/>
+	<xsl:attribute name="{name()}">
+	<xsl:choose>
+		<xsl:when test="$prefix = 'id-namespace' or  (not($namespaces[name()='id-prefix']) and $ns=$defaultns)"/> <!-- it's the default namespace, no prefix -->
+		<xsl:when test="$prefix='' and contains(.,':')">
+			<!-- complex: copy id and copy namespace (namespace should be copied already)-->
+			<xsl:value-of select="."/>
+		</xsl:when>
+		<xsl:when test="$prefix='' and $ns=$defaultns"/> <!-- no prefix and it's the default --> 
+		<xsl:when test="$prefix!=''">			<!-- just change the prefix -->
+			<xsl:value-of select="concat($prefix,':')"/>
+		</xsl:when>
+		<xsl:otherwise>
+		<xsl:message terminate="yes">ERROR: Joining error in resolving namespace for <xsl:value-of select="name()"/> "<xsl:value-of select="."/>" in <xsl:apply-templates select="../.." mode="err-path"/>
+		<xsl:text>&#xa;</xsl:text></xsl:message>
+		</xsl:otherwise>
+	</xsl:choose>
+		<xsl:apply-templates select="." mode="my-id"/>
+	</xsl:attribute>
+</xsl:template>
+
+
+
+<xsl:template match="@*|comment()" mode="join"><xsl:copy-of select="."/></xsl:template>
+
+
+<!-- path handling follows -->
+
+ <xsl:template name="lastbefore"><xsl:param name="string"/><xsl:param name="substr" select="'/'"/>
+        <xsl:if test="contains($string,$substr)">
+                <xsl:value-of select="substring-before($string,$substr)"/>
+                <xsl:if test="contains(substring-after($string,$substr),$substr)">
+	                <xsl:value-of select="$substr"/>
+	              </xsl:if>
+        <xsl:call-template name="lastbefore">
+                <xsl:with-param name="string" select="substring-after($string,$substr)"/>
+                <xsl:with-param name="substr" select="$substr"/>
+        </xsl:call-template>
+        </xsl:if>
+</xsl:template>
+
+ <xsl:template name="joinpath"><xsl:param name="file"/><xsl:param name="rel"/>
+        <xsl:call-template name="reducepath">
+        <xsl:with-param name="file">
+	        <xsl:call-template name="lastbefore">
+	                <xsl:with-param name="string" select="$file"/>
+	        </xsl:call-template>
+	        <xsl:text>/</xsl:text>
+	        <xsl:value-of select="$rel"/>
+	       </xsl:with-param>
+	      </xsl:call-template>
+ </xsl:template>
+
+<xsl:template name="reducepath"><xsl:param name="file"/>
+	<xsl:call-template name="reducedotdotpath">
+    	<xsl:with-param name="file">
+			<xsl:call-template name="reducedotpath">
+		    	<xsl:with-param name="file" select="$file"/>
+		    </xsl:call-template>
+		</xsl:with-param>
+	</xsl:call-template>
+</xsl:template>
+
+<xsl:template name="reducedotdotpath"><xsl:param name="file"/>
+	<xsl:choose>
+		<xsl:when test="starts-with($file,'../')">
+			<xsl:text>../</xsl:text>
+			<xsl:call-template name="reducedotdotpath">
+        		<xsl:with-param name="file" select="substring($file,4)"/>
+			</xsl:call-template>
+		</xsl:when>
+		<xsl:when test="contains($file,'/../')">							
+			<xsl:call-template name="reducepath">
+        		<xsl:with-param name="file">
+			        <xsl:call-template name="lastbefore">
+			                <xsl:with-param name="string" select="substring-before($file,'/../')"/>
+			        </xsl:call-template>
+			        <xsl:text>/</xsl:text>
+					<xsl:value-of select="substring-after($file,'/../')"/>
+				</xsl:with-param>
+			</xsl:call-template>
+		</xsl:when>
+		<xsl:otherwise><xsl:value-of select="$file"/></xsl:otherwise>
+	</xsl:choose>
+ </xsl:template>
+
+<xsl:template name="reducedotpath"><xsl:param name="file"/>
+	<xsl:choose>	
+		<xsl:when test="starts-with($file,'./')">
+			<xsl:call-template name="reducedotpath">
+        		<xsl:with-param name="file" select="substring($file,3)"/>
+			</xsl:call-template>
+		</xsl:when>
+		<xsl:when test="contains($file,'/./')">
+			<xsl:call-template name="reducepath">
+        		<xsl:with-param name="file">
+	                <xsl:value-of select="substring-before($file,'/./')"/>
+			        <xsl:text>/</xsl:text>
+					<xsl:value-of select="substring-after($file,'/./')"/>
+				</xsl:with-param>
+			</xsl:call-template>
+		</xsl:when>
+		<xsl:otherwise><xsl:value-of select="$file"/></xsl:otherwise>
+	</xsl:choose>
+ </xsl:template>
+
+<!-- overridable templates follow -->
+
+
+<xsl:template match="*" mode="filter" priority="-9"/> <!-- by default show --> 
+<xsl:template match="*" mode="overlay-attributes" priority="-9"/> <!-- by default do nothing --> 
+<xsl:template match="*" mode="overlay-meta" priority="-9"/> <!-- by default do nothing --> 
+<xsl:template match="/SystemDefinition" mode="add-id-ns" priority="-9"/> <!-- some tools may have an easier job if this were always present, but, by default, assume it can just stay implied -->
+
+<xsl:template match="*" mode="link" priority="-1"> <!-- can be overriden to allow custom changes to href values --> 
+<xsl:value-of select="@href"/>
+</xsl:template>
+
+
+<xsl:template match="*" mode="meta" priority="-9"><xsl:param name="data"/><xsl:param name="display"/>
+	<xsl:element name="{name()}">
+		<xsl:copy-of select="@*[name()!='href']"/> <!-- copy all attributes as is, always drop href -->
+		<xsl:choose>
+			<xsl:when test="$display='local' and @href and contains(@href,':') and not(starts-with(@href,'file:'))">
+				<!-- non-local URL: only want local URLs, so keep href as is-->
+				<xsl:copy-of select="@href"/> 
+			</xsl:when>
+			<xsl:when test="@href">
+				<xsl:copy-of select="document(@href,.)/*"/> 
+			</xsl:when>
+			<xsl:otherwise>
+				<xsl:copy-of select="*|comment()"/>
+			</xsl:otherwise>
+		</xsl:choose>
+	</xsl:element>
+</xsl:template>
+
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/sysdeftools/joinsysdef.xsl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,36 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<!--Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+	All rights reserved.
+	This component and the accompanying materials are made available
+	under the terms of the License "Eclipse Public License v1.0"
+	which accompanies this distribution, and is available
+	at the URL "http://www.eclipse.org/legal/epl-v10.html".
+
+	Initial Contributors:
+	Nokia Corporation - initial contribution.
+	Contributors:
+	Description:
+	Create a stand-alone sysdef from a linked set of fragments
+-->
+ 	<xsl:output method="xml" indent="yes"/>
+
+<xsl:param name="path">/os/deviceplatformrelease/foundation_system/system_model/system_definition.xml</xsl:param>
+
+<xsl:template match="/*">
+	<xsl:apply-templates select="." mode="join"/>
+</xsl:template>
+
+
+<xsl:template match="/SystemDefinition[systemModel]">
+<xsl:apply-templates select="." mode="join">
+	<xsl:with-param name="filename" select="$path"/>
+</xsl:apply-templates>
+</xsl:template>
+
+
+
+
+<xsl:include href="joinsysdef-module.xsl"/>
+
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/sysdeftools/mergesysdef-module.xsl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,504 @@
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:exslt="http://exslt.org/common"  exclude-result-prefixes="exslt">
+<!--Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+	All rights reserved.
+	This component and the accompanying materials are made available
+	under the terms of the License "Eclipse Public License v1.0"
+	which accompanies this distribution, and is available
+	at the URL "http://www.eclipse.org/legal/epl-v10.html".
+
+	Initial Contributors:
+	Nokia Corporation - initial contribution.
+	Contributors:
+	Description:
+	XSLT module for merging only two sysdef files according to the 3.0.0 rules. Old syntax not supported and must be converetd before calling.
+-->
+	
+<xsl:variable name="defaultnamespace">http://www.symbian.org/system-definition</xsl:variable>
+
+<xsl:template match="/SystemDefinition[starts-with(@schema,'2.') or starts-with(@schema,'1.')]" priority="2" mode="merge-models">
+	<xsl:message terminate="yes">ERROR: Syntax <xsl:value-of select="@schema"/> not supported</xsl:message>
+</xsl:template>
+<xsl:template match="/SystemDefinition[not(systemModel)]" priority="2" mode="merge-models">
+	<xsl:message terminate="yes">ERROR: Can only merge stand-alone system models</xsl:message>
+</xsl:template>
+
+<!-- stuff for dealing with namespaces -->
+
+
+<xsl:template match="node()|@*" mode="translate-namespaces"><xsl:copy-of select="."/></xsl:template>
+<!-- don't translate meta or unit tags, just copy verbatim -->
+<xsl:template match="meta|unit" mode="translate-namespaces" priority="2">
+<xsl:element name="{name()}">
+<xsl:copy-of select="@*|*|comment()"/>
+</xsl:element>
+</xsl:template>
+
+<xsl:template match="*" mode="translate-namespaces"><xsl:param name="nsdoc"/>
+<xsl:element name="{name()}">
+<xsl:apply-templates select="@*|node()" mode="translate-namespaces">
+	<xsl:with-param name="nsdoc" select="$nsdoc"/>
+</xsl:apply-templates>
+</xsl:element>
+</xsl:template>
+
+
+<xsl:template match="@id|@before" mode="translate-namespaces"><xsl:param name="nsdoc"/>
+	<xsl:attribute name="{name()}">
+		<xsl:variable name="id">
+			<xsl:choose>
+				<xsl:when test="contains(.,':')">
+					<xsl:value-of select="substring-after(.,':')"/>
+				</xsl:when>
+				<xsl:otherwise>
+					<xsl:value-of select="."/>
+				</xsl:otherwise>
+			</xsl:choose>
+		</xsl:variable>
+		<xsl:variable name="ns">
+			<xsl:choose>
+				<xsl:when test="contains(.,':')">
+					<xsl:value-of select="ancestor-or-self::*/namespace::*[name()=substring-before(current()/.,':')]"/>
+				</xsl:when>
+				<xsl:when test="/SystemDefinition/@id-namespace">
+					<xsl:value-of select="/SystemDefinition/@id-namespace"/>
+				</xsl:when>
+				<xsl:otherwise>
+					<xsl:value-of select="$defaultnamespace"/>
+				</xsl:otherwise>
+			</xsl:choose>
+		</xsl:variable>
+		<xsl:choose>
+			<xsl:when test="not($nsdoc/@id-namespace) and $defaultnamespace=$ns">
+				<xsl:value-of select="$id"/>
+			</xsl:when>
+			<xsl:when test="$nsdoc/@id-namespace=$ns">
+				<xsl:value-of select="$id"/>
+			</xsl:when>
+			<xsl:when test="$nsdoc/namespace::*[.=$ns]">
+				<xsl:value-of select="concat(name($nsdoc/namespace::*[.=$ns]),':',$id)"/>
+			</xsl:when>
+			<xsl:when test="/SystemDefinition/@id-namespace=$ns">
+				<xsl:variable name="myns">
+					<xsl:apply-templates mode="ns-prefix" select="$nsdoc">
+						<xsl:with-param name="ns" select="$ns"/>
+					</xsl:apply-templates>
+				</xsl:variable>			
+				<xsl:value-of select="concat($myns,':',$id)"/>
+			</xsl:when>
+			<xsl:otherwise> <!-- some namespace that needed to be defined --> 
+			<xsl:message>Warning: need definition for namespace "<xsl:value-of select="$ns"/>" for <xsl:value-of select="$id"/></xsl:message>
+				<xsl:value-of select="."/>					
+			</xsl:otherwise>
+		</xsl:choose>		
+	</xsl:attribute>
+</xsl:template>
+
+<xsl:template match="/SystemDefinition" mode="ns-prefix">
+	<xsl:param name="ns"/> <!-- the namespace URI -->
+	<xsl:param name="pre"/> <!-- the preferred prefix to use if possbile -->
+	<xsl:param name="dontuse"/> <!-- space prefixed, separated and terminated list of namespace prefixes to not use -->
+	<xsl:param name="chars">ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz</xsl:param> <!-- single letter namespace prefixes to try -->
+	<xsl:variable name="name" select="substring(substring-after($ns,'http://www.'),1,1)"/>
+	<xsl:choose>
+		<xsl:when test="$pre!='' and $pre!='id-namespace' and not(//namespace::*[name()=$pre]) and not(contains($dontuse,concat(' ',$pre,' ')))">
+			<xsl:value-of select="$pre"/>
+		</xsl:when>
+		<xsl:when test="$ns='' and $chars=''">
+			<xsl:message terminate="yes">ERROR: Cannot create namespace prefix for downstream default namespace in <xsl:value-of select="*/@id"/></xsl:message>
+		</xsl:when>
+		<xsl:when test="$name!='' and not(contains($dontuse,concat(' ',$name,' ')))"><xsl:value-of select="$name"/></xsl:when>
+		<xsl:when test="namespace::*[name()=substring($chars,1,1)] or contains($dontuse,concat(' ',substring($chars,1,1),' '))">
+			<xsl:apply-templates mode="ns-prefix">
+				<xsl:with-param name="chars" select="substring($chars,2)"/>
+			</xsl:apply-templates>
+		</xsl:when>
+		<xsl:otherwise>
+			<xsl:value-of select="substring($chars,1,1)"/>
+		</xsl:otherwise>
+	</xsl:choose>
+</xsl:template>
+
+
+<!--  need to make sure this handles <meta> correctly -->
+
+<xsl:template match="/SystemDefinition" mode="merge-models">
+	<xsl:param name="other"/>	<!-- the downstream SystemDefinition this is merged with -->
+	<xsl:param name="up" select="systemModel"/>	<!-- the element containing the origin @name used for any component from "this" model. -->
+	<xsl:param name="down" select="$other/systemModel"/> <!-- the element containing origin @name used for any component from $other model. -->
+	
+	<!-- do some testing -->
+ 	<xsl:if test="$other[starts-with(@schema,'2.') or starts-with(@schema,'1.')]">
+		<xsl:message terminate="yes">ERROR: Syntax <xsl:value-of select="$other/@schema"/> not supported</xsl:message>
+	</xsl:if>
+	<xsl:if test="not($other/systemModel)">
+		<xsl:message terminate="yes">ERROR: Can only merge stand-alone system models</xsl:message>
+	</xsl:if>
+	 
+	<xsl:copy>
+		<xsl:copy-of  select="@*"/> <!--  use attributes from origin model -->
+		<xsl:variable name="namespaces">
+			<xsl:copy> <!-- needs <copy> so the processor doesn't lose the namespaces -->
+				<!--copy namespaces as needed -->
+				
+				<xsl:copy-of select="namespace::*[name()!='xml']"/> <!-- all upstream namespaces -->
+
+				<xsl:variable name="cur" select="."/>
+				<xsl:for-each select="$other/namespace::*"> <!-- all namespaces in downstream not already in upstream -->
+					<xsl:if test="not((. = $cur/@id-namespace) or (not($cur/@id-namespace) and .= $defaultnamespace) or  $cur/namespace::*[.=current()])">
+							<!-- namespace in downstream not in upstream doc -->
+							<xsl:variable name="newprefix">
+								 <!-- test to see if the ns prefix already exists -->
+								<xsl:apply-templates select="$cur" mode="ns-prefix">
+									<xsl:with-param name="ns" select="."/>
+									<xsl:with-param name="pre" select="name()"/>
+								</xsl:apply-templates>
+							</xsl:variable>
+							<xsl:copy/>
+					</xsl:if>   
+				</xsl:for-each>
+				
+					<xsl:if test="not(($other/@id-namespace = @id-namespace) or (not($other/@id-namespace) and not(@id-namespace)) or (not(@id-namespace) and $other/@id-namespace = $defaultnamespace) or namespace::*[.=$other/@id-namespace])">  
+						<!-- default namespace in downstream not in upstream doc -->
+						<!-- need to make created ns a bit more intelligent -->
+						<xsl:attribute name="bar" namespace="{$other/@id-namespace}">
+							<xsl:value-of select="$other/@id-namespace"/>
+						</xsl:attribute>
+				</xsl:if>
+			</xsl:copy>
+		</xsl:variable>
+
+		
+		<!-- copy the namespaces to currently open element (the root one) -->
+		<xsl:copy-of select="namespace::*"/>
+		<xsl:for-each select="$other/namespace::*[.!=current()/namespace::*]"><xsl:copy/></xsl:for-each>
+		<xsl:for-each select="exslt:node-set($namespaces)/*/namespace::*"><xsl:copy/></xsl:for-each>
+	<!-- translate all IDs in downstream doc to use namespaces from upstream doc  
+		This is so much easier than having to propigate this info around while creating the doc-->
+	<xsl:variable name="otherdoc">
+		<xsl:apply-templates mode="translate-namespaces" select="$other">
+			<xsl:with-param name="nsdoc" select="exslt:node-set($namespaces)/* | ."/>
+		</xsl:apply-templates>
+	</xsl:variable>
+		<xsl:apply-templates mode="merge-models">
+			<xsl:with-param name="other" select="exslt:node-set($otherdoc)/*"/>
+			<xsl:with-param name="up" select="$up"/>
+			<xsl:with-param name="down" select="$down"/>
+		</xsl:apply-templates>
+	
+	</xsl:copy>
+</xsl:template>
+
+<xsl:template match="systemModel" mode="merge-models">
+	<xsl:param name="other"/>	<!-- the parent of the downstream systemModel this is merged with -->
+	<xsl:param name="up"/>
+	<xsl:param name="down"/>
+	<xsl:copy><xsl:copy-of  select="@*"/>
+		<!--  copy metas and comments in between meta. Do not try to merge metadata between models -->
+			<xsl:copy-of select="meta | $other/systemModel/meta | comment()[following-sibling::meta]"/>	
+		<xsl:apply-templates mode="merge-models">
+			<xsl:with-param name="other" select="$other/systemModel"/>
+			<xsl:with-param name="up" select="$up"/>
+			<xsl:with-param name="down" select="$down"/>
+		</xsl:apply-templates>
+	</xsl:copy>
+</xsl:template>
+
+<xsl:template match="@*|*|comment()" mode="merge-models"><xsl:copy-of select="."/></xsl:template>
+
+
+<xsl:template match="meta|comment()[following-sibling::meta]" mode="merge-models"/>
+	<!-- copy elesewhere, not here so that metas always appear first-->
+
+
+
+<!-- merge levels attribute via std rules -->
+<xsl:template match="layer/@levels|package/@levels" mode="merge-models">
+	<xsl:param name="other"/><!-- the element contains the other @levels -->
+	<xsl:choose>
+		<!--  if they are the same, or not specified in the other,  just copy -->
+		<xsl:when test=".=$other/@levels or not($other/@levels)"><xsl:copy-of select="."/></xsl:when>
+		<xsl:when test="contains(concat(' ',normalize-space(.),' '),concat(' ',normalize-space($other/@levels),' '))">
+			<!--upstream completely contains downstream, just copy --> 
+			<xsl:copy-of select="."/>
+		</xsl:when>
+		<xsl:when test="contains(concat(' ',normalize-space($other/@levels),' '),concat(' ',normalize-space(.),' '))">
+			<!--  If this is contained is other, then use other-->
+			<xsl:copy-of select="$other/@levels"/>
+		</xsl:when>
+		<xsl:when test="contains(concat(' ',normalize-space($other/@levels),' '),' - ')">
+			<!-- if other uses + syntax, then pre/append -->
+			<xsl:variable name="lev">
+				<xsl:value-of select="substring-before(concat(' ',normalize-space($other/@levels),' '),' - ')"/>
+				<xsl:value-of select="concat(' ',.,' ')"/>
+				<xsl:value-of select="substring-after(concat(' ',normalize-space($other/@levels),' '),' - ')"/>
+			</xsl:variable>
+			<xsl:attribute name="levels"><xsl:value-of select="normalize-space($lev)"/></xsl:attribute>
+		</xsl:when>
+		<xsl:otherwise> <!--  if they differ, use the origin's levels -->
+			<xsl:message>Note: levels differ "<xsl:value-of select="."/>" vs "<xsl:value-of select="$other/@levels"/>"</xsl:message>
+			<xsl:copy-of select="."/>
+		</xsl:otherwise>
+	</xsl:choose>
+</xsl:template>
+
+<xsl:template name="copy-sorted-content">
+	<xsl:param name="base"/>
+	<xsl:param name="to-sort"/>
+	<xsl:param name="start"/>
+	<xsl:param name="end"/>
+	<xsl:param name="down"/>
+	<xsl:param name="remainder" select="/.."/>
+
+	<xsl:choose>
+		<xsl:when test="not($to-sort)"/>  <!-- nothing left to copy. stop -->
+		<xsl:when test="not($base)"/>  <!-- reached end. stop -->
+		<xsl:when test="$base[1]/@id=$end/following-sibling::*[1]/@id"/> <!-- passed $end. Stop -->
+		<xsl:when test="$base[1]/@id = $to-sort[1]/@id">  <!-- both lists start with same item -->
+			<xsl:if test="$base[1]/@id!=$end/@id"> <!-- not at end, so keep going -->
+				<xsl:call-template name="copy-sorted-content">
+					<xsl:with-param name="base" select="$base[position() != 1]"/>
+					<xsl:with-param name="to-sort" select="$to-sort[position() != 1]"/>
+					<xsl:with-param name="remainder" select="$remainder"/>
+					<xsl:with-param name="start" select="$start"/>
+					<xsl:with-param name="end" select="$end"/>
+					<xsl:with-param name="down" select="$down"/>
+				</xsl:call-template>		
+			</xsl:if>
+		</xsl:when>	
+		<xsl:when test="$remainder[@id = $base[1]/@id]"> <!-- left over item is in $base -->
+			<xsl:call-template name="copy-sorted-content">
+				<xsl:with-param name="base" select="$base[position() != 1]"/>
+				<xsl:with-param name="to-sort" select="$to-sort"/>
+				<xsl:with-param name="remainder" select="$remainder[@id != $base[1]/@id]"/>
+				<xsl:with-param name="start" select="$start"/>
+				<xsl:with-param name="end" select="$end"/>
+				<xsl:with-param name="down" select="$down"/>
+			</xsl:call-template>		
+		</xsl:when>
+		<xsl:when test="not($base[@id = $to-sort[1]/@id])"> <!-- in to-sort, but not base -->		
+			<xsl:if test="$base[1]/@id=$end/@id  and not($base[@id=$to-sort[1]/@before])">
+			 	<!-- if at end, then this needs to be copied
+					don't copy if the before ID is found in $base	-->
+				<xsl:apply-templates mode="merge-copy-of" select="$to-sort[1]">
+					<xsl:with-param name="origin" select="$down"/>
+					<xsl:with-param name="root" select="$end/ancestor::systemModel"/>
+				</xsl:apply-templates>
+			</xsl:if>			
+		<xsl:call-template name="copy-sorted-content">
+			<xsl:with-param name="base" select="$base"/>
+			<xsl:with-param name="to-sort" select="$to-sort[position() != 1]"/>
+			<xsl:with-param name="remainder" select="$remainder"/>
+			<xsl:with-param name="start" select="$start"/>
+			<xsl:with-param name="end" select="$end"/>
+			<xsl:with-param name="down" select="$down"/>
+		</xsl:call-template>		
+		</xsl:when>	
+		<xsl:when test="not($to-sort[@id = $base[1]/@id])"> <!-- in base, but not to-sort -->		
+		<xsl:call-template name="copy-sorted-content">
+			<xsl:with-param name="base" select="$base[position() != 1]"/>
+			<xsl:with-param name="to-sort" select="$to-sort"/>
+			<xsl:with-param name="remainder" select="$remainder"/>
+			<xsl:with-param name="start" select="$start"/>
+			<xsl:with-param name="end" select="$end"/>
+			<xsl:with-param name="down" select="$down"/>
+		</xsl:call-template>		
+		</xsl:when>	
+		<xsl:when test="$base[@id = $to-sort[1]/@id]"> <!-- is in base, but not 1st one-->
+			<xsl:call-template name="copy-sorted-content">
+				<xsl:with-param name="base" select="$base"/>
+				<xsl:with-param name="to-sort" select="$to-sort[position() != 1] "/>
+				<xsl:with-param name="remainder" select="$remainder | $to-sort[1]"/>
+				<xsl:with-param name="start" select="$start"/>
+				<xsl:with-param name="end" select="$end"/>
+				<xsl:with-param name="down" select="$down"/>
+			</xsl:call-template>
+		</xsl:when>	
+	</xsl:choose>
+</xsl:template>
+
+<xsl:template match="layer | package | collection | component" mode="merge-models">
+	<xsl:param name="other"/>	<!-- the downstream item of the parent's rank that contains a potential items this is merged with -->
+	<xsl:param name="up"/>
+	<xsl:param name="down"/>
+	<xsl:variable name="this" select="."/>	<!-- current item -->
+	
+	<!-- match = this item in the downstream model -->	
+	<xsl:variable name="match" select="$other/*[@id=current()/@id]"/>
+	
+	<!-- prev = the previous item before the current one (no metas, only named items)-->
+	<xsl:variable name="prev" select="preceding-sibling::*[@id][1]"/> 
+
+	<!-- copy all items between this and prev  that are solely in the downstream model -->	 		
+
+	<xsl:choose>
+		<xsl:when test="$match and (not($prev) or $other/*[@id= $prev/@id] )">
+			<xsl:call-template name="copy-sorted-content">
+				<xsl:with-param name="base" select="../*[@id]"/>
+				<xsl:with-param name="to-sort" select="$other/*[@id]"/>
+				<xsl:with-param name="start" select="$prev"/>
+				<xsl:with-param name="end" select="."/>
+				<xsl:with-param name="down" select="$down"/>
+			</xsl:call-template>
+		</xsl:when>
+	<xsl:when test="not($match/preceding-sibling::*[@id=$this/../*/@id]) and $other/*[@id= current()/@id]/preceding-sibling::*[@id and not(@before)]">
+		<!-- if this is the first item in other that's also in this, then put all new items from other here -->
+		<xsl:apply-templates mode="merge-copy-of" select="$match/preceding-sibling::*[@id and not(@before)]">
+			<xsl:with-param name="origin" select="$down"/>
+			<xsl:with-param name="root" select="$this/ancestor::systemModel"/>	
+		</xsl:apply-templates>
+	</xsl:when>
+	</xsl:choose>
+
+ 	<!-- just copy anything identified as being before this, assume they're all ok -->
+	<xsl:apply-templates mode="merge-copy-of" select="$other/*[@before=current()/@id]">
+		<xsl:with-param name="remove-before" select="1"/>
+		<xsl:with-param name="origin" select="$down"/>
+		<xsl:with-param name="root" select="$this/ancestor::systemModel"/>	
+	</xsl:apply-templates>
+
+	
+	<xsl:copy>
+		<xsl:apply-templates select="@*" mode="merge-models"> <!-- copy upstream attributes -->
+			<xsl:with-param name="other" select="$match"/>
+		</xsl:apply-templates>
+		
+		<xsl:if test="self::component and not(@origin-model) and $up/@name">
+			<!-- insert origin-model and optional root for components only -->
+			<xsl:attribute name="origin-model">
+				<xsl:value-of select="$up/@name"/>
+			</xsl:attribute>
+			<xsl:if test="not(@root)">
+				<xsl:copy-of select="$up/@root"/>
+			</xsl:if>
+		</xsl:if>
+		
+		<xsl:for-each select="$match/@*">  <!-- copy downstream attributes, only if not set on upstream -->
+			<xsl:if test="not($this/@*[name()=name(current())])"><xsl:copy-of select="."/></xsl:if>
+		</xsl:for-each>
+		
+		<xsl:choose>
+			<xsl:when test="self::component">
+				<!-- copy all units, metas and comments from this
+					copy all metas in the merged component
+					copy any new comments in the merged component (not duplicates)
+					if there are no units in the this, copy all units in the merged component
+					if there are units in this, copy only the versioned units in the merged component (only those versions not already specified) -->
+				<xsl:copy-of select="*|comment() | $match/meta |$match/unit[not($this/unit)] | $match/unit[$this/unit and @version[.!=$this/unit/@version]] | $match/comment()[.!=$this/comment()]"/>				
+			</xsl:when>
+			<xsl:otherwise>
+
+				<!--  copy metas and comments in between meta. Do not try to merge metadata between models -->
+				<xsl:copy-of select="meta | $match/meta | comment()[following-sibling::meta]"/>
+				
+				<xsl:apply-templates mode="merge-models">
+					<xsl:with-param name="other" select="$match"/>
+					<xsl:with-param name="up" select="$up"/>
+					<xsl:with-param name="down" select="$down"/>
+				</xsl:apply-templates>
+				<!--  don't copy if explicitly or implicitly placed already-->
+				<xsl:for-each select="$match/*[not(@before) and not(following-sibling::*[@id=$this/*/@id])]">
+					<xsl:if test="not($this/*[@id=current()/@id])">
+						<xsl:apply-templates mode="merge-copy-of" select=".">
+							<xsl:with-param name="origin" select="$down"/>
+							<xsl:with-param name="root" select="$this/ancestor::systemModel"/>			
+						</xsl:apply-templates>
+					</xsl:if>
+				</xsl:for-each>
+			</xsl:otherwise>
+		</xsl:choose>
+	</xsl:copy>
+	
+	<xsl:if test="self::layer and not(following-sibling::layer)">
+		<!-- for the last layer, tack on any remaining layers -->
+		<xsl:apply-templates mode="merge-copy-of" select="$other/layer[not(@before) and not(following-sibling::*[@id=$this/../layer/@id]) and not(@id=$this/../layer/@id)]">
+			<xsl:with-param name="origin" select="$down"/>
+			<xsl:with-param name="root" select="$this/ancestor::systemModel"/>			
+		</xsl:apply-templates>		
+	</xsl:if>
+</xsl:template>
+
+
+
+<xsl:template match="*" mode="merge-copy-of">
+	<xsl:param name="remove-before" select="0"/> <!-- set to true if any before attribute is to be removed -->
+	<xsl:param name="origin"/>	<!--the element containing the @name to use the origin-model attribute  -->
+	<xsl:param name="root"/> 	<!--the systemModel element in the upstream doc  -->
+
+	<xsl:choose>
+		<!-- this might slow things down, consider making optional -->
+		<xsl:when test="not(self::layer) and count($root/descendant::*[name()=name(current()/..) and @id!=current()/../@id]/*[@id=current()/@id])">
+			<xsl:message>Warning: <xsl:value-of select="name()"/> "<xsl:value-of select="@id"/>" moved in downstream model. Ignoring moved <xsl:value-of select="name()"/>
+				<xsl:text>&#xa;</xsl:text>
+			</xsl:message>
+		</xsl:when>
+		<xsl:otherwise>
+			<!-- save all content in a variable to test to see if it's got any problems (ie been removed due to errors)-->
+			<xsl:variable name="content">
+				<xsl:apply-templates select="*|comment()" mode="merge-copy-of">
+					<xsl:with-param name="origin" select="$origin"/>
+					<xsl:with-param name="root" select="$root"/>
+				</xsl:apply-templates>
+			</xsl:variable>
+			<xsl:choose>
+				<!-- if all elements in this have been deleted, throw out this element -->
+				<xsl:when test="not(exslt:node-set($content)/*) and *">
+					<xsl:message>Warning: All content in downstream <xsl:value-of select="name()"/> "<xsl:value-of select="@id"/>" is invalid. Ignoring <xsl:value-of select="name()"/>
+						<xsl:text>&#xa;</xsl:text>
+					</xsl:message>
+				</xsl:when>
+				<xsl:otherwise>
+					<xsl:copy>
+						<xsl:choose>
+							<xsl:when test="$remove-before">
+								<xsl:copy-of select="@*[name()!='before']"/>
+							</xsl:when>
+							<xsl:otherwise><xsl:copy-of select="@*"/></xsl:otherwise>
+						</xsl:choose>
+						<xsl:copy-of select="exslt:node-set($content)"/>
+					</xsl:copy>
+				</xsl:otherwise>
+			</xsl:choose>					
+		</xsl:otherwise>
+	</xsl:choose>
+</xsl:template>
+
+
+<xsl:template match="comment()|@*" mode="merge-copy-of">
+	<xsl:copy-of select="."/>
+</xsl:template>
+
+<xsl:template match="component" mode="merge-copy-of">
+	<xsl:param name="remove-before" select="0"/> <!-- set to true if any before attribute is to be removed -->
+	<xsl:param name="origin"/>	<!--the element containing the @name to use the origin-model attribute  -->
+	<xsl:param name="root"/> 	<!--the systemModel element in the upstream doc  -->
+	
+	<xsl:choose>
+		<!-- this might slow things down, consider making optional -->
+		<xsl:when test="$root/descendant::collection[@id!=current()/../@id]/component[@id=current()/@id]">
+			<xsl:message>Warning: <xsl:value-of select="name()"/> "<xsl:value-of select="@id"/>" moved in downstream model. Ignoring moved <xsl:value-of select="name()"/>
+				<xsl:text>&#xa;</xsl:text>
+			</xsl:message>
+		</xsl:when>
+		<xsl:otherwise>
+			<xsl:copy>
+				<xsl:choose>
+					<xsl:when test="$remove-before">
+						<xsl:copy-of select="@*[name()!='before']"/>
+					</xsl:when>
+					<xsl:otherwise><xsl:copy-of select="@*"/></xsl:otherwise>
+				</xsl:choose>
+				<xsl:if test="not(@origin-model) and $origin/@name">
+					<xsl:attribute name="origin-model">
+						<xsl:value-of select="$origin/@name"/>
+					</xsl:attribute>
+					<xsl:if test="not(@root)">
+						<xsl:copy-of select="$origin/@root"/>
+					</xsl:if>
+				</xsl:if>
+				<xsl:copy-of select="*|comment()"/>
+			</xsl:copy>
+		</xsl:otherwise>
+	</xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/sysdeftools/mergesysdef.xsl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,100 @@
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:exslt="http://exslt.org/common">
+<!--Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+	All rights reserved.
+	This component and the accompanying materials are made available
+	under the terms of the License "Eclipse Public License v1.0"
+	which accompanies this distribution, and is available
+	at the URL "http://www.eclipse.org/legal/epl-v10.html".
+
+	Initial Contributors:
+	Nokia Corporation - initial contribution.
+	Contributors:
+	Description:
+	Merge two 3.x syntax system definitions
+-->
+
+	<xsl:output method="xml" indent="yes"/>
+	<xsl:param name="Downstream">mcl/System_Definition_Template.xml</xsl:param>
+	<xsl:key name="origin" match="component" use="@origin-model"/>
+
+<!-- only supports 3.x syntax and only operates on stand-alone models -->
+
+<xsl:variable name="downstream" select="document($Downstream,.)/SystemDefinition"/>
+<xsl:param name="upname">
+	<xsl:choose>
+		<xsl:when test="$downstream[starts-with(@schema,'2.') or starts-with(@schema,'1.')  or not(systemModel)]">
+			<xsl:message terminate="yes">Syntax <xsl:value-of select="@schema"/> not supported</xsl:message>
+		</xsl:when>
+		<xsl:when test="/SystemDefinition/systemModel/@name=$downstream/systemModel/@name">
+			<xsl:apply-templates mode="origin-term" select="/*">
+				<xsl:with-param name="root">Upstream</xsl:with-param>
+			</xsl:apply-templates>
+			</xsl:when>
+		<xsl:otherwise><xsl:value-of select="/SystemDefinition/systemModel/@name"/></xsl:otherwise>
+	</xsl:choose>
+</xsl:param>
+
+<xsl:param name="downname">
+	<xsl:choose>
+		<xsl:when test="/SystemDefinition/systemModel/@name=$downstream/systemModel/@name">
+			<xsl:apply-templates mode="origin-term" select="$downstream">	
+				<xsl:with-param name="root">Downstream</xsl:with-param>
+			</xsl:apply-templates>
+			</xsl:when>
+		<xsl:otherwise><xsl:value-of select="$downstream/systemModel/@name"/></xsl:otherwise>
+	</xsl:choose>
+</xsl:param>
+
+<xsl:template mode="origin-term" match="*">
+	<xsl:param name="root"/>
+	<xsl:param name="index"/>
+	<xsl:choose>
+		<xsl:when test="not(key('origin',concat($root,$index)))">
+			<xsl:value-of select="concat($root,$index)"/>
+		</xsl:when>
+		<xsl:when test="$index=''">
+			<xsl:apply-templates mode="origin-term" select=".">	
+				<xsl:with-param name="root" select="$root"/>
+				<xsl:with-param name="index" select="1"/>
+			</xsl:apply-templates>
+		</xsl:when>
+		<xsl:otherwise>
+			<xsl:apply-templates mode="origin-term" select=".">	
+				<xsl:with-param name="root" select="$root"/>
+				<xsl:with-param name="index" select="$index + 1"/>
+			</xsl:apply-templates>		
+		</xsl:otherwise>
+	</xsl:choose>
+</xsl:template>
+
+
+<!--  this merge only two files according to the 3.0.0 rules. Old syntax not supported. Must be converetd before calling -->
+
+
+
+<xsl:template match="/*">
+	<xsl:variable name="upmodel">
+		<sysdef name="{$upname}"/>
+	</xsl:variable>
+	<xsl:variable name="downmodel">
+		<sysdef name="{$downname}"/>
+	</xsl:variable>
+	
+	<xsl:choose>
+		<xsl:when test="function-available('exslt:node-set')">
+			<xsl:apply-templates mode="merge-models" select=".">
+				<xsl:with-param name="other" select="$downstream"/>
+				<xsl:with-param name="up" select="exslt:node-set($upmodel)/sysdef"/>
+				<xsl:with-param name="down" select="exslt:node-set($downmodel)/sysdef"/>
+			</xsl:apply-templates>
+		</xsl:when>
+		<xsl:otherwise> <!-- no node set funcion, so don't bother setting the names -->
+			<xsl:apply-templates mode="merge-models" select=".">
+				<xsl:with-param name="other" select="$downstream"/>
+			</xsl:apply-templates> 		
+		</xsl:otherwise>
+	</xsl:choose>
+</xsl:template>
+
+<xsl:include href="mergesysdef-module.xsl"/>
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/sysdeftools/sysdefdowngrade.xsl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,389 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<!--Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+	All rights reserved.
+	This component and the accompanying materials are made available
+	under the terms of the License "Eclipse Public License v1.0"
+	which accompanies this distribution, and is available
+	at the URL "http://www.eclipse.org/legal/epl-v10.html".
+
+	Initial Contributors:
+	Nokia Corporation - initial contribution.
+	Contributors:
+	Description:
+	Downgrade a 3.x system definition into the 2.0.1 syntax
+-->
+	<xsl:output method="xml" indent="yes"/>
+	
+	<xsl:param name="Path">os/deviceplatformrelease/foundation_system/system_model</xsl:param>
+	<!-- $Path is the location of the root system definition XML file. Must not end in /
+		This is used to compute the absolute paths the 2.0 syntax needs-->
+	<xsl:param name="Root"/> <!-- space separated list of root variables in the form "VAR1=value1 VAR=value2" --> 
+	<xsl:variable name="root" select="concat(' ',$Root,' ')"/> <!-- sort of hack to allow absolute paths in downgraded output -->
+	<xsl:variable name="srcroot" select="substring-before(substring-after($root,' SRCROOT='),' ')"/> <!-- the default path prefix -->
+
+<xsl:template match="/*">
+	<xsl:message terminate="yes">ERROR: Cannot process this document</xsl:message>
+</xsl:template>
+
+<!-- can only handle 3.0.0 to 2.0.1 transforms
+	Assumes only packages are using href
+ -->
+<xsl:template match="/SystemDefinition[@schema='3.0.0']"> 
+	<!-- process root system definition or package definition-->
+	<xsl:call-template name="DTD"/> <!-- insert 2.0.01 DTD -->
+  <SystemDefinition name="{*/@name}" schema="2.0.1">
+  	<xsl:apply-templates select="*|comment()"/>
+  </SystemDefinition>
+</xsl:template>
+
+<xsl:template match="/SystemDefinition[@schema='3.0.0' and systemModel]"> 
+	<xsl:call-template name="DTD"/> <!-- insert 2.0.01 DTD -->
+  <SystemDefinition name="{systemModel/@name}" schema="2.0.1">
+  	<xsl:apply-templates select="*|comment()"/>
+  </SystemDefinition>
+</xsl:template>
+
+<xsl:template match="/SystemDefinition/package[@href]" priority="2">
+	<xsl:message terminate="yes">ERROR: Package definition (<xsl:value-of select="@id"/>) cannot link another package</xsl:message>
+</xsl:template>
+
+<xsl:template match="/SystemDefinition/package" priority="1">
+	<!-- process package definition file--> 
+  <systemModel>
+  	<layer name="anonymous"> <!-- fake layer -->
+		<block>
+			<xsl:apply-templates mode="copy" select="@id|@name|@span|@level|@levels"/><!--  valid attribuites for 2.0 -->
+		  	<xsl:apply-templates select="*|comment()">
+		  		<xsl:with-param name="path" select="concat($Path,'/')"/> <!-- need to keep tack of where the current document is -->
+		  	</xsl:apply-templates>			
+		</block>  
+   	</layer>
+  </systemModel>
+</xsl:template>
+
+
+
+<xsl:template match="/"><xsl:apply-templates select="*"/></xsl:template>
+<xsl:template match="@*|comment()"><xsl:copy-of select="."/></xsl:template> 
+	<!-- comments are copied verbatim. Attribtues are copied by default -->
+
+<xsl:template match="systemModel">
+	<systemModel>
+  	<xsl:apply-templates select="*|comment()"> <!-- no attributes -->
+  		<xsl:with-param name="path" select="$Path"/> <!-- need to keep tack of where the current document is -->
+  	</xsl:apply-templates>
+	</systemModel>
+</xsl:template>
+
+<xsl:template mode="copy" match="@*">
+	<xsl:copy-of select="."/>
+</xsl:template>
+
+<xsl:template mode="copy" match="@id"> <!-- id in 3.0 is name in 2.0 -->
+	<xsl:attribute name="name"><xsl:value-of select="."/></xsl:attribute>
+</xsl:template>
+
+<xsl:template mode="copy" match="@name">  <!-- name in 3.0 is long-name in 2.0.1 -->
+	<xsl:if test=".!=../@id"> <!-- don't bother if it will be the same as name -->
+		<xsl:attribute name="long-name"><xsl:value-of select="."/></xsl:attribute>
+	</xsl:if>
+</xsl:template>
+	
+<xsl:template match="layer"><xsl:param name="path"/>
+	<layer>
+		<xsl:apply-templates mode="copy" select="@id|@name|@span|@levels"/> <!--  valid attribuites for 2.0 -->
+		<xsl:apply-templates select="*|comment()"> 
+			<xsl:with-param name="path" select="$path"/> 
+		</xsl:apply-templates>
+	</layer>
+</xsl:template>
+
+<xsl:template match="layer/package"><!-- translates to block -->
+	<xsl:param name="path"/>
+	<block>
+		<xsl:apply-templates mode="copy" select="@id|@name|@span|@level|@levels"/><!--  valid attribuites for 2.0 -->
+		<xsl:choose>
+			<xsl:when test="@href">
+				<xsl:variable name="this" select="."/>
+				<xsl:for-each select="document(@href,.)/SystemDefinition/*">
+					<xsl:variable name="my-id"><xsl:apply-templates mode="normalize-id" select="@id"/></xsl:variable>
+					<xsl:variable name="other-id"><xsl:apply-templates mode="normalize-id" select="$this/@id"/></xsl:variable>
+					<xsl:if test="$my-id != $other-id">
+						<xsl:message terminate="yes">ERROR: Package IDs do not match: <xsl:value-of select="$my-id"/> vs <xsl:value-of select="$other-id"/></xsl:message>
+					</xsl:if>
+					<xsl:if test="@name and @name!=@id and not($this/@name and $this/@name=$this/@id)">
+						<!-- set long-name only if name is different from the id and not set in child doc -->
+						<xsl:attribute name="long-name"><xsl:value-of select="@name"/></xsl:attribute>
+					</xsl:if>						
+					<xsl:for-each select="@span|@levels|@level">
+						<!-- copy only if not set in child doc -->
+						<xsl:if test="not(this/@*[name()=name(current())])">
+							<xsl:copy-of select="."/>
+						</xsl:if>
+					</xsl:for-each>
+					<xsl:apply-templates select="*|comment()">
+	  					<xsl:with-param name="path">
+	  						<xsl:call-template name="normpath">
+	  							<xsl:with-param name="path" select="concat($path,'/',$this/@href)"/>
+	  						</xsl:call-template>
+	  					</xsl:with-param> 
+	  				</xsl:apply-templates>
+				</xsl:for-each>
+			</xsl:when>
+			<xsl:otherwise>
+				<xsl:apply-templates select="*|comment()">
+  					<xsl:with-param name="path" select="$path"/> 
+  				</xsl:apply-templates>
+			</xsl:otherwise>
+		</xsl:choose>
+	</block>
+</xsl:template>
+
+<xsl:template match="package/package">	<!-- translates to subblock --><xsl:param name="path"/>
+	<subblock>
+		<xsl:apply-templates mode="copy" select="@id|@name"/>
+		<xsl:apply-templates select="*|comment()">
+			<xsl:with-param name="path" select="$path"/> 
+		</xsl:apply-templates>
+	</subblock>
+</xsl:template>
+
+<xsl:template match="package/package/pacakge"> <!-- cannot nest this deep --><xsl:param name="path"/>
+	<xsl:message>WARNING: Excessive nesting of packages: Ignoring <xsl:value-of select="@id"/></xsl:message>
+	<xsl:apply-templates select="*|comment()">
+		<xsl:with-param name="path" select="$path"/> 
+	</xsl:apply-templates>
+</xsl:template>
+
+
+<xsl:template match="collection"><xsl:param name="path"/>
+	<collection>
+		<xsl:apply-templates mode="copy" select="@id|@name|@level"/>
+		<xsl:apply-templates select="*|comment()">
+			<xsl:with-param name="path" select="$path"/> 
+		</xsl:apply-templates>
+	</collection>
+</xsl:template>
+
+
+<xsl:template match="component"><xsl:param name="path"/>
+	<component>
+		<xsl:apply-templates mode="copy" select="@id|@name|@deprecated|@introduced|@filter|@purpose"/>
+		<xsl:if test="contains(concat(' ',@class,' '),' plugin ')">
+			<xsl:attribute name="plugin">Y</xsl:attribute>
+		</xsl:if>
+		<xsl:call-template name="class">
+			<xsl:with-param name="remove">plugin</xsl:with-param>
+			<xsl:with-param name="add">
+				<xsl:if test="not(*) and comment()">placeholder</xsl:if>
+				<xsl:if test="@target='desktop'"> PC</xsl:if>
+			</xsl:with-param>
+		</xsl:call-template>
+	  	<xsl:apply-templates select="*|comment()">
+			<xsl:with-param name="path" select="$path"/> 
+		</xsl:apply-templates>
+	</component>
+</xsl:template>
+
+<xsl:template match="unit[@base and not(@mrp or @bldFile)]"/>
+
+<xsl:template match="unit"><xsl:param name="path"/>
+	<unit>
+		<xsl:apply-templates select="@mrp|@bldFile|@late">
+			<xsl:with-param name="path" select="$path"/> 
+		</xsl:apply-templates>
+		<xsl:copy-of select="@filter|@root[not(contains($root,concat(' ',.,'=')))]|@version|@prebuilt|@priority"/>
+	</unit>
+</xsl:template>
+
+<xsl:template match="unit/@late"> <!-- 2.0 uses Y/N, 3.0 uses yes/no -->
+	<xsl:attribute name="{name()}">
+		<xsl:choose>
+			<xsl:when test=".='yes'">Y</xsl:when>
+			<xsl:when test=".='no'">N</xsl:when>
+		</xsl:choose>
+	</xsl:attribute>
+</xsl:template>
+
+<xsl:template match="@mrp|@bldFile"><xsl:param name="path"/>
+	<xsl:attribute name="{name()}">
+		<xsl:choose>
+			<xsl:when test="../@root">
+				<xsl:variable name="pre" select="substring-before(substring-after($root,concat(' ',../@root,'=')),' ')"/>
+				<xsl:if test="$pre!=''"><xsl:value-of select="concat($pre,'/')"/></xsl:if>
+			</xsl:when>
+			<xsl:when test="$srcroot!=''">
+				<xsl:value-of select="concat($srcroot,'/')"/>
+			</xsl:when>
+		</xsl:choose>
+		<xsl:choose>
+		<xsl:when test="starts-with(.,'/')"> <!-- keep absolute paths verbatim (barring the leading / ) -->
+			<xsl:value-of select="substring-after(.,'/')"/>
+		</xsl:when>
+		<xsl:otherwise>	
+			<xsl:call-template name="normpath">
+  				<xsl:with-param name="path">
+  					<xsl:call-template name="before">
+						<xsl:with-param name="text" select="$path"/>
+					</xsl:call-template>
+					<xsl:value-of select="."/>
+  				</xsl:with-param>
+  			</xsl:call-template>
+		</xsl:otherwise>
+	</xsl:choose>
+	</xsl:attribute>
+</xsl:template>
+
+<xsl:template match="meta"/> <!-- strip all meta tags -->
+
+<xsl:template match="meta[info/@contract]"> <!-- except contract -->
+	<xsl:copy-of select="info/@contract"/>
+</xsl:template>
+
+<xsl:template match="@id" mode="normalize-id">
+	<xsl:choose>
+		<xsl:when test="contains(@id,':')"><xsl:value-of select="substring-after(@id,':')"/></xsl:when>
+		<xsl:otherwise><xsl:value-of select="@id"/></xsl:otherwise>
+	</xsl:choose>
+</xsl:template>
+
+<xsl:template name="class"><xsl:param name="remove"/><xsl:param name="add"/>
+<!--  returns the value of the class attribute with the space-separated list of names in $remove taken out and those in $add added on (does not check for duplicates) -->
+	<xsl:param name="class" select="normalize-space(@class)"/>
+	<xsl:variable name="r">
+		<xsl:text> </xsl:text>
+		<xsl:choose>
+			<xsl:when test="contains($remove,' ')"><xsl:value-of select="substring-before($remove,' ')"/></xsl:when>
+			<xsl:otherwise><xsl:value-of select="$remove"/></xsl:otherwise>
+		</xsl:choose>
+		<xsl:text> </xsl:text>
+	</xsl:variable>
+	<xsl:variable name="c">
+		<xsl:choose>
+			<xsl:when test="contains(concat(' ',$class,' '),$r)">
+				<xsl:value-of select="substring-before(concat(' ',$class,' '),$r)"/>
+				<xsl:text> </xsl:text>
+				<xsl:value-of select="substring-after(concat(' ',$class,' '),$r)"/>
+			</xsl:when>
+			<xsl:otherwise><xsl:value-of select="$class"/></xsl:otherwise>
+		</xsl:choose>
+		<xsl:if test="normalize-space($add)!=''"><xsl:value-of select="concat(' ',normalize-space($add))"/></xsl:if>
+	</xsl:variable>
+	<xsl:choose>
+		<xsl:when test="contains($remove,' ')">
+			<xsl:call-template name="class">
+				<xsl:with-param name="remove" select="substring-after($remove,' ')"/>
+				<xsl:with-param name="class" select="$c"/>
+			</xsl:call-template>
+		</xsl:when>
+		<xsl:when test="normalize-space($c)!=''">
+			<xsl:attribute name="class">
+				<xsl:value-of select="normalize-space($c)"/>
+			</xsl:attribute>
+		</xsl:when>
+	</xsl:choose>
+</xsl:template>
+
+<xsl:template name="normpath"><xsl:param name="path"/>
+<!-- normalize out any ".." in the path in $path  -->
+<xsl:choose>
+	<xsl:when test="contains($path,'/../')">
+	<xsl:call-template name="normpath">
+		<xsl:with-param name="path">
+		<xsl:call-template name="before">
+			<xsl:with-param name="text" select="substring-before($path,'/../')"/>
+		</xsl:call-template>
+		<xsl:value-of select="substring-after($path,'/../')"/>
+		</xsl:with-param>
+		</xsl:call-template>
+	</xsl:when>
+	<xsl:otherwise><xsl:value-of select="$path"/></xsl:otherwise>
+</xsl:choose>
+</xsl:template>
+
+<!-- return all text before the last / -->
+<xsl:template name="before"><xsl:param name="text"/>
+<xsl:if test="contains($text,'/')">
+	<xsl:value-of select="substring-before($text,'/')"/>/<xsl:call-template name="before"><xsl:with-param name="text" select="substring-after($text,'/')"/></xsl:call-template>
+	</xsl:if>
+</xsl:template>
+
+<xsl:template name="DTD">
+<xsl:text disable-output-escaping="yes"><![CDATA[<!DOCTYPE SystemDefinition [
+<!ELEMENT SystemDefinition ( systemModel )>
+<!ATTLIST SystemDefinition
+  name CDATA #REQUIRED
+  schema CDATA #REQUIRED
+>
+<!-- all paths are relative to the environment variable specified by the root attribute, or SOURCEROOT if not.  -->
+
+<!-- System Model Section of DTD -->
+<!ELEMENT systemModel (layer+)>
+
+<!ELEMENT layer (block* | collection*)*>
+<!-- Kernel Services, Base Services, OS Services, Etc -->
+<!ATTLIST layer
+  name CDATA #REQUIRED
+  long-name CDATA #IMPLIED
+  levels NMTOKENS #IMPLIED
+  span CDATA #IMPLIED
+>
+
+<!ELEMENT block (subblock* | collection*)*>
+ <!-- Generic OS services, Comms Services, etc -->
+<!ATTLIST block
+  levels NMTOKENS #IMPLIED
+  span CDATA #IMPLIED
+  level NMTOKEN #IMPLIED
+  name CDATA #REQUIRED
+  long-name CDATA #IMPLIED
+>
+
+<!ELEMENT subblock (collection)*>
+<!-- Cellular Baseband Services, Networking Services, etc -->
+<!ATTLIST subblock
+  name CDATA #REQUIRED
+  long-name CDATA #IMPLIED
+>
+
+<!ELEMENT collection (component)*>
+<!-- Screen Driver, Content Handling, etc -->
+<!ATTLIST collection
+  name CDATA #REQUIRED
+  long-name CDATA #IMPLIED
+  level NMTOKEN #IMPLIED
+>
+
+<!ELEMENT component (unit)*>
+<!-- contains units or is a  package or prebuilt -->
+<!ATTLIST component
+  name CDATA #REQUIRED
+  long-name CDATA #IMPLIED
+  deprecated CDATA #IMPLIED
+  introduced CDATA #IMPLIED
+  contract CDATA #IMPLIED
+  plugin (Y|N) "N"
+  filter CDATA #IMPLIED
+  class NMTOKENS #IMPLIED
+  supports CDATA #IMPLIED
+  purpose ( optional | mandatory | development ) "optional"
+>
+
+<!ELEMENT unit EMPTY >
+<!-- must be buildable (bld.inf) -->
+<!-- bldFile  may someday be removed in favour of mrp -->
+<!ATTLIST unit
+  mrp CDATA #IMPLIED
+  filter CDATA #IMPLIED
+  bldFile CDATA #IMPLIED
+  root CDATA #IMPLIED
+  version NMTOKEN #IMPLIED
+  prebuilt NMTOKEN #IMPLIED
+  late (Y|N) #IMPLIED
+  priority CDATA #IMPLIED
+>
+]>
+]]></xsl:text>
+</xsl:template>
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/sysdeftools/validate/checklinks.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,108 @@
+# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Script to validate the unit links in a system definition or package definition XML file
+
+use strict;
+
+if (! scalar @ARGV) {&help()}
+
+
+my $debug = 0;
+my $skipfilter;	# skip anything with a named filter
+my $xslt = "../../../buildtools/bldsystemtools/buildsystemtools/joinsysdef.xsl";
+my $xalan = "../../../buildtools/devlib/devlibhelp/tools/doc_tree/lib/apache/xalan.jar";
+my $sysdef = shift;
+while($sysdef=~/^-/) { #arguments
+	 if($sysdef eq '-nofilter') {$skipfilter = shift}
+	 elsif($sysdef eq '-v') {$debug = 1}
+	 else { &help("Invalid command line option $sysdef")} 
+	 $sysdef = shift; 
+}
+my $dir = $sysdef;
+$dir =~ s,[^\\/]+$,,;
+my $root="../../../..";
+ my $full;
+ 
+if($sysdef=~/system_definition\.xml/) {	# if running on a sysdef, ensure it's joined before continuing
+	($full = `java -jar $dir$xalan -in $sysdef -xsl $dir$xslt`) || die "bad XML syntax";
+}else {	# assume any other file has no hrefs to include (valid by convention)
+	$root='';
+	open S, $sysdef;
+	$full=join('',<S>);
+	close S;
+}
+$full=~s/<!--.*?-->//sg; # remove all comments;
+my $count=1;
+
+my $filter = '';
+foreach (split(/</,$full)) {	# loop through all elements
+	my $found = 0;
+	if(/^component/) {		# save the current filter so we know if we need to skip the named filter
+		$filter='';
+		if(/filter="([^"]+)"/) {$filter=$1}
+	}
+	elsif(s/^unit//) {
+		my $f=",$filter,";		# commas are the separators - safe to have extra ones for testing
+		if(/filter="([^"]+)"/) {$f.=",$1,"}
+		if($skipfilter ne '' && $f=~/,$filter,/) {next}	# don't test anything with s60 filter
+		if(/\smrp="(.*?)"/) {
+			my $file = &fileLocation($1);
+			if($debug) {print "MRP ",-s $file," $file\n"}		# debug code		
+			if(!(-s $file)){
+				print  STDERR "$count: Cannot find MRP file $file\n";	
+				$found=1;
+			}
+		}
+		if(/\sbldFile="(.*?)"/) {
+			my $file = &fileLocation("$1/bld.inf");
+			if($debug) {print "Bld ",-s $file ," $file\n"}		# debug code		
+			if(!(-s $file) ){
+				print  STDERR "$count: Cannot find bld.inf file $file\n";
+				$found=1;
+			}
+		}
+		if(/\sbase="(.*?)"/) {
+			my $file = &fileLocation($1);
+			if($debug) {print "Base $file\n"}		# debug code		
+			if(!(-d $file) ){
+				print  STDERR "$count: Cannot find base dir $file\n";
+				$found=1;
+			}
+		}
+	}	
+	$count+=$found;	
+}
+
+exit $count;
+
+sub fileLocation {
+	my $file = "$dir$root$_[0]";
+	$file=~tr/\//\\/;
+	while($file=~s/\\[^\\.]+\\\.\.\\/\\/){}
+	return $file;
+}
+sub help {
+	print "$0: ",($_[0] eq '' ? "syntax"  : $_[0]); 
+	print "\nSyntax: [-v] [-nofilter filter] system_definition.xml 
+Validate the unit links in a system definition or package definition XML
+file. This only prints errors in the files. If it exits silently, the links
+are all valid.
+	Call with -nos60 filter to skip checking presence of fitler=\"s60\" units
+	Requires system definition files to be in the standard location
+	in deviceplatformrelease,
+	and the presence of joinsysdef.xsl and xalan.jar in their expected
+	locations.
+	Package definition files can be anywhere.";
+exit 1;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/sysdeftools/validate/modelcheck.xsl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,71 @@
+<xsl:stylesheet  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+<!--Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+	All rights reserved.
+	This component and the accompanying materials are made available
+	under the terms of the License "Eclipse Public License v1.0"
+	which accompanies this distribution, and is available
+	at the URL "http://www.eclipse.org/legal/epl-v10.html".
+
+	Initial Contributors:
+	Nokia Corporation - initial contribution.
+	Contributors:
+	Description:
+	Validate a system definition file or files and output results in HTML
+-->
+	<xsl:output method="html"/>
+	<xsl:include href="test-model.xsl"/>
+<xsl:template match="/model">
+	<html><head>
+		<title>Cross-Checking System Model</title>
+		<style>p {margin: 0px; padding: 0px} 
+			p.warn span {color: blue}
+			p.note span {color: green}
+			p.err span {font-weight: bold}
+			p.err {color: red; background: yellow}
+			p.note {font-size: 90%}
+			<xsl:if test="contains(concat(' ',normalize-space(/model/@supress-errors),' '),' note ')">
+				p.note {display: none}
+			</xsl:if>
+			<xsl:if test="contains(concat(' ',normalize-space(/model/@supress-errors),' '),' err ')">
+				p.err {display: none}
+			</xsl:if>
+			<xsl:if test="contains(concat(' ',normalize-space(/model/@supress-errors),' '),' warn ')">
+				p.warn {display: none}
+			</xsl:if>
+		</style>
+	</head><body>
+	<xsl:apply-templates select="." mode="check"/>
+	</body></html>
+</xsl:template>
+
+
+<xsl:template name="Section"><xsl:param name="text"/><xsl:param name="sub"/>
+<h2><xsl:value-of select="$text"/>
+<xsl:if test="$sub!=''"><xsl:text> </xsl:text> <small>(<xsl:value-of select="$sub"/>)</small></xsl:if></h2>
+</xsl:template>
+
+<xsl:template name="Note"><xsl:param name="text"/><xsl:param name="sub"/>
+<p class="note">
+	<span>Note:</span>
+	<xsl:text> </xsl:text>
+	<xsl:copy-of select="$text"/>
+<xsl:if test="$sub!=''"><xsl:text> </xsl:text> <small>(<xsl:value-of select="$sub"/>)</small></xsl:if></p>
+</xsl:template>
+
+<xsl:template name="Warning"><xsl:param name="text"/><xsl:param name="sub"/>
+<p class="warn">
+	<span>Warning:</span>
+	<xsl:text> </xsl:text>
+	<xsl:value-of select="$text"/>
+<xsl:if test="$sub!=''"><xsl:text> </xsl:text> <small>(<xsl:value-of select="$sub"/>)</small></xsl:if></p>
+</xsl:template>
+
+<xsl:template name="Error"><xsl:param name="text"/><xsl:param name="sub"/>
+<p class="err">
+	<span>Error:</span>
+	<xsl:text> </xsl:text>
+	<xsl:value-of select="$text"/>
+<xsl:if test="$sub!=''"><xsl:text> </xsl:text> <small>(<xsl:value-of select="$sub"/>)</small></xsl:if></p>
+</xsl:template>
+
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/sysdeftools/validate/test-model.xsl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,490 @@
+<xsl:stylesheet  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+<!--Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+	All rights reserved.
+	This component and the accompanying materials are made available
+	under the terms of the License "Eclipse Public License v1.0"
+	which accompanies this distribution, and is available
+	at the URL "http://www.eclipse.org/legal/epl-v10.html".
+
+	Initial Contributors:
+	Nokia Corporation - initial contribution.
+	Contributors:
+	Description:
+	Module containing the validation logic for system definition 3.0.0 syntax
+-->
+	<xsl:key name="named" match="*[ancestor::systemModel]" use="@name"/>
+	<xsl:param name="Filename"/>
+	<xsl:variable name="info" select="document(/model//info[@type='extra']/@href,/model)//c"/>
+
+	<xsl:variable name="all-ids">
+		<xsl:apply-templates select="document(/model/sysdef/@href)| SystemDefinition" mode="ids"/>
+	</xsl:variable>
+
+ 
+<xsl:template match="/model" priority="-1">
+	<xsl:apply-templates select="." mode="check"/>
+</xsl:template>
+
+<xsl:template match="/model" mode="check">
+	<xsl:for-each select="sysdef">
+		<xsl:apply-templates select="document (@href,. )/*">
+			<xsl:with-param name="filename">
+				<xsl:choose>
+					<xsl:when test="starts-with(current()/@href,current()/@rootpath)">
+						<xsl:value-of select="substring-after(current()/@href,current()/@rootpath)"/>
+					</xsl:when>
+					<xsl:otherwise>
+						<xsl:value-of select="@href"/>
+					</xsl:otherwise>
+				</xsl:choose>
+			 </xsl:with-param>
+		</xsl:apply-templates>
+	</xsl:for-each>
+
+
+
+<xsl:apply-templates mode="x-check" select="document (//info[@type='vp']/@href)/*">
+	<xsl:with-param name="sysdef" select="document (sysdef/@href)/*"/>
+</xsl:apply-templates>
+
+<xsl:apply-templates mode="x-check" select="document (//info[@type='build']/@href)/*">
+	<xsl:with-param name="sysdef" select="document (sysdef/@href)/*"/>
+</xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="/SystemDefinition[@schema='3.0.0']" mode="ids">
+	<xsl:for-each select="//*[@id and not(@href)]"><xsl:value-of select="concat(' ',@id,' ')"/></xsl:for-each>
+	<xsl:apply-templates select="document(//layer/@href | //package/@href | //collection/@href | //component/@href,.)/*" mode="ids"/>
+</xsl:template>
+
+<xsl:template match="/SystemDefinition[@schema='3.0.0' and systemModel]" priority="2">
+	<xsl:param name="filename" select="$Filename"/>
+<xsl:call-template name="Section">
+	<xsl:with-param name="text">System Definition: <xsl:value-of select="*/@name"/></xsl:with-param>
+	<xsl:with-param name="sub"><xsl:value-of select="(string-length($all-ids) - string-length(translate($all-ids,' ',''))) div 2 "/> items</xsl:with-param>
+</xsl:call-template>
+	<xsl:apply-templates select="*">
+		<xsl:with-param name="filename" select="$filename"/>
+	</xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="/SystemDefinition[@schema='3.0.0'] | systemModel">
+	<xsl:param name="filename"  select="$Filename"/>
+		
+<xsl:if test="//unit">
+<xsl:call-template name="Section">
+	<xsl:with-param name="text"><xsl:value-of select="translate(substring(name(*),1,1),'clp','CLP')"/><xsl:value-of select="substring(name(*),2)"/> Definition: <xsl:value-of select="*/@name"/></xsl:with-param>
+	<xsl:with-param name="sub"><xsl:value-of select="count(//unit)"/> unit<xsl:if test="count(//unit)!=1">s</xsl:if></xsl:with-param>
+</xsl:call-template>
+</xsl:if>
+<xsl:if test="self::systemModel and not(@name)">
+	<xsl:call-template name="Error"><xsl:with-param name="text">systemModel element should have a name</xsl:with-param></xsl:call-template>
+</xsl:if>
+	<xsl:apply-templates select="*">
+		<xsl:with-param name="filename" select="$filename"/>
+	</xsl:apply-templates>
+</xsl:template>
+
+
+<xsl:template match="@*" mode="valid">
+	<xsl:call-template name="Error"><xsl:with-param name="text">Attribute <xsl:value-of select="name()"/>="<xsl:value-of select="."/>" is not valid for <xsl:value-of select="name(..)"/></xsl:with-param></xsl:call-template>
+</xsl:template>
+
+<xsl:template match="@before|@id|package/@span|collection/@level|package/@level|package/@levels|layer/@levels" mode="valid"/> <!-- really should check syntax -->
+
+<xsl:template match="@name|@href|@filter" mode="valid"/> 
+
+<xsl:template match="component/@introduced|component/@deprecated" mode="valid"/> 
+
+
+<xsl:template name="validate-class">
+	<ok>plugin</ok>
+	<ok>doc</ok>
+	<ok>tool</ok>
+	<ok>config</ok>
+	<ok>api</ok>
+	<w d="deprecated">test</w>
+</xsl:template>
+
+<xsl:template name="validate-purpose">
+	<ok>mandatory</ok>
+	<ok>optional</ok>
+	<ok>development</ok>
+</xsl:template>
+<xsl:template name="validate-target">
+	<ok>other</ok>
+	<ok>desktop</ok>
+	<ok>device</ok>
+</xsl:template>
+
+
+<xsl:template name="validate-tech-domain">
+	<ok>lo</ok>
+	<ok>hb</ok>
+	<ok>mm</ok>
+	<ok>ma</ok>
+	<ok>pr</ok>
+	<ok>vc</ok>
+	<ok>se</ok>
+	<ok>ui</ok>
+	<ok>dc</ok>
+	<ok>de</ok>
+	<ok>dm</ok>
+	<ok>rt</ok>
+	<ok>to</ok>
+	<w d="Non-standard">ocp</w>
+</xsl:template>
+
+<xsl:template match="component/@class" mode="valid">
+	<xsl:call-template name="checklist">
+		<xsl:with-param name="list" select="normalize-space(.)"/>
+		<xsl:with-param name="values" select="document('')/*/xsl:template[@name=concat('validate-',name(current()))]/*"/>
+	</xsl:call-template>
+</xsl:template> 
+
+<xsl:template name="checklist">
+	<xsl:param name="list" select="."/><xsl:param name="values"/><xsl:param name="sep" select="' '"/>
+	<xsl:variable name="item">
+		<xsl:choose>
+			<xsl:when test="contains($list,$sep)"><xsl:value-of select="substring-before($list,$sep)"/></xsl:when>
+			<xsl:otherwise><xsl:value-of select="$list"/></xsl:otherwise>
+		</xsl:choose>
+	</xsl:variable>
+	<xsl:variable name="v" select="$values[.=$item]"/>
+	<xsl:choose>
+		<xsl:when test="not($v)">
+			<xsl:call-template name="Error"><xsl:with-param name="text">Illegal <xsl:value-of select="name()"/> value <xsl:value-of select="name()"/>="<xsl:value-of select="."/>"</xsl:with-param></xsl:call-template>
+		</xsl:when> 
+		<xsl:when test="name($v)='ok'"/> 
+		<xsl:when test="name($v)='w'">
+			<xsl:call-template name="Warning"><xsl:with-param name="text"><xsl:value-of select="$v/@d"/> value in <xsl:value-of select="name()"/>="<xsl:value-of select="."/>"</xsl:with-param></xsl:call-template>
+		</xsl:when> 
+	</xsl:choose>	
+	<xsl:if test="contains($list,$sep)">
+		<xsl:call-template name="checklist">
+			<xsl:with-param name="list" select="substring-after($list,$sep)"/>
+			<xsl:with-param name="values" select="$values"/>
+			<xsl:with-param name="sep" select="$sep"/>			
+		</xsl:call-template>
+	</xsl:if>
+</xsl:template> 
+
+
+<xsl:template match="package/@tech-domain|component/@purpose|component/@target" mode="valid">
+	<xsl:variable name="v" select="document('')/*/xsl:template[@name=concat('validate-',name(current()))]/*[.=current()]"/>
+	<xsl:choose>
+		<xsl:when test="not($v)">
+			<xsl:call-template name="Error"><xsl:with-param name="text">Illegal <xsl:value-of select="name()"/> value <xsl:value-of select="name()"/>="<xsl:value-of select="."/>"</xsl:with-param></xsl:call-template>
+		</xsl:when> 
+		<xsl:when test="name($v)='ok'"/> 
+		<xsl:when test="name($v)='w'">
+			<xsl:call-template name="Warning"><xsl:with-param name="text"><xsl:value-of select="$v/@d"/> value in <xsl:value-of select="name()"/>="<xsl:value-of select="."/>"</xsl:with-param></xsl:call-template>
+		</xsl:when> 
+	</xsl:choose>
+</xsl:template> 
+
+
+
+
+
+<xsl:template match="*" priority="-2">
+	<xsl:call-template name="Error"><xsl:with-param name="text">Element "<xsl:value-of select="name()"/>" is not valid in the context of "<xsl:value-of select="name(..)"/>"</xsl:with-param></xsl:call-template>
+</xsl:template>
+
+<xsl:template match="component[not(parent::collection)] | collection[not(parent::package)] | package[not(parent::package or parent::layer or (parent::SystemDefinition and count(../*)=1))] | layer[not(parent::systemModel)] " priority="3">
+	<xsl:call-template name="Error"><xsl:with-param name="text"><xsl:value-of select="name()"/> "<xsl:value-of select="@id"/>" has invalid parent <xsl:value-of select="name(..)"/> "<xsl:value-of select="../@id"/>"</xsl:with-param></xsl:call-template>
+</xsl:template>
+
+<xsl:template match="layer | package | collection | component">
+	<xsl:param name="filename"/>
+
+<xsl:apply-templates select="@*" mode="valid"/>
+<xsl:apply-templates select="@id"/>
+<xsl:if test="self::component">
+	<xsl:choose>
+		<xsl:when test="count(*[not(@version)]) &gt; 1 and @filter='s60'">
+			<xsl:call-template name="Warning"><xsl:with-param name="text">S60 Component "<xsl:value-of select="@id"/>" has <xsl:value-of select="count(*)"/> children.</xsl:with-param></xsl:call-template>
+		</xsl:when>
+		<xsl:when test="count(*[not(@version)]) &gt; 1">
+			<xsl:call-template name="Error"><xsl:with-param name="text">Component "<xsl:value-of select="@id"/>" has <xsl:value-of select="count(*)"/> children.</xsl:with-param></xsl:call-template>
+		</xsl:when>
+	</xsl:choose>
+	<xsl:choose>
+		<xsl:when test="unit"/>
+		<xsl:when test="contains(comment(),'PLACEHOLDER=')"/>
+		<xsl:when test="comment()">
+			<xsl:call-template name="Note"><xsl:with-param name="text">Component "<xsl:value-of select="@name"/>" is empty.</xsl:with-param></xsl:call-template>
+		</xsl:when>
+		<xsl:when test="not(comment())">
+			<xsl:call-template name="Warning"><xsl:with-param name="text">Component "<xsl:value-of select="@name"/>" is empty and has no comment</xsl:with-param></xsl:call-template>
+		</xsl:when>
+	</xsl:choose>
+</xsl:if>
+<xsl:if test="@href">
+	<xsl:variable name="child" select="document(@href,.)/SystemDefinition"/>
+	<xsl:if test="@id!=$child/@id">
+		<xsl:call-template name="Error"><xsl:with-param name="text"><xsl:value-of select="name()"/> "<xsl:value-of select="@id"/>" must match ID in linked file "<xsl:value-of select="@href"/>"</xsl:with-param></xsl:call-template>
+	</xsl:if>
+	<xsl:if test="$child/@href">
+		<xsl:call-template name="Error"><xsl:with-param name="text">linked <xsl:value-of select="name()"/> "<xsl:value-of select="@id"/>" cannot be a link</xsl:with-param></xsl:call-template>
+	</xsl:if>
+	<xsl:for-each select="@*[name()!='id']">
+		<xsl:if test="$child/@*[name()=name(current())]">
+			<xsl:call-template name="Warning"><xsl:with-param name="text">linked <xsl:value-of select="name()"/> "<xsl:value-of select="@id"/>" has duplicate attribute to linking document. Duplicate ignored.</xsl:with-param></xsl:call-template>
+		</xsl:if>
+	</xsl:for-each>
+	<xsl:if test="*">
+		<xsl:call-template name="Error"><xsl:with-param name="text"><xsl:value-of select="name()"/> "<xsl:value-of select="@id"/>" cannot have both link and content. Content ignored.</xsl:with-param></xsl:call-template>
+	</xsl:if>
+</xsl:if>
+<xsl:if test="@href and name()!=name(document(@href,.)/SystemDefinition/*)">
+		<xsl:call-template name="Error"><xsl:with-param name="text"><xsl:value-of select="name()"/> "<xsl:value-of select="@id"/>" must match item in linked file "<xsl:value-of select="@href"/>"</xsl:with-param></xsl:call-template>
+</xsl:if>
+<xsl:if test="not(@href)">
+	<xsl:apply-templates select="*">
+		<xsl:with-param name="filename" select="$filename"/>
+	</xsl:apply-templates>
+</xsl:if>
+<xsl:if test="@href">
+	<xsl:apply-templates select="document(@href,.)/*">
+		<xsl:with-param name="filename">
+			<xsl:call-template name="normpath">
+				<xsl:with-param name="path">
+					<xsl:if test="not(starts-with(current()/@href,'/'))">
+						<xsl:call-template name="before">
+							<xsl:with-param name="text" select="$filename"/>
+						</xsl:call-template>
+					</xsl:if>
+					<xsl:value-of select="current()/@href"/>
+				 </xsl:with-param>
+			</xsl:call-template>
+		 </xsl:with-param>
+	</xsl:apply-templates>
+</xsl:if>
+</xsl:template>
+
+
+<xsl:template match="unit">	<xsl:param name="filename"/>
+	<xsl:apply-templates select="@mrp|@bldFile">
+		<xsl:with-param name="filename" select="$filename"/>
+	</xsl:apply-templates>
+</xsl:template>
+
+
+<xsl:template match="@id" mode="path">
+	<xsl:choose>
+		<xsl:when test="contains(.,':')"><xsl:value-of  select="substring-after(.,':')"/></xsl:when>
+		<xsl:otherwise><xsl:value-of  select="."/></xsl:otherwise>
+	</xsl:choose>
+</xsl:template>
+
+
+<xsl:template match="@id">
+<xsl:if test="contains(concat(' ',substring-after($all-ids,concat(' ',.,' '))),concat(' ',.,' '))">
+	<xsl:call-template name="Warning"><xsl:with-param name="text">Duplicate ID: <xsl:value-of select="name(..)"/> "<xsl:value-of select="."/>"</xsl:with-param></xsl:call-template>
+</xsl:if>
+
+<xsl:if test="contains(.,':') and not(ancestor::*/namespace::*[name()=substring-before(current(),':')])">
+	<xsl:call-template name="Error"><xsl:with-param name="text">Undefined namespace for ID "<xsl:value-of select="."/>"</xsl:with-param></xsl:call-template>
+</xsl:if>
+
+</xsl:template>
+
+
+<xsl:template match="@bldFile|@mrp"><xsl:param name="filename"/>
+
+	<xsl:variable name="fullpath"><xsl:call-template name="normpath">
+				<xsl:with-param name="path">
+					<xsl:if test="not(starts-with(.,'/'))">
+						<xsl:call-template name="before">
+							<xsl:with-param name="text" select="$filename"/>
+						</xsl:call-template>
+					</xsl:if>
+					<xsl:value-of select="."/>
+				 </xsl:with-param>
+			</xsl:call-template>
+		</xsl:variable>
+		<xsl:variable name="path">
+			<xsl:choose>
+				<xsl:when test="not(contains($filename,':'))">/<xsl:for-each select="ancestor::*/@id"><xsl:apply-templates mode="path" select="."/>/</xsl:for-each></xsl:when>
+				<xsl:otherwise><xsl:for-each select="../../../@id|../../@id"><xsl:apply-templates mode="path" select="."/>/</xsl:for-each></xsl:otherwise>
+			</xsl:choose>
+		</xsl:variable>
+		<xsl:variable name="segment">
+			<xsl:choose>
+				<xsl:when test="ancestor::layer">
+					<xsl:value-of select="concat($fullpath,'/')"/>
+				</xsl:when>
+				<xsl:when test="ancestor::package">
+					<xsl:value-of select="concat('/',substring-after(substring-after($fullpath,'/'),'/'),'/')"/>
+				</xsl:when>
+				<xsl:when test="ancestor::collection">
+					<xsl:value-of select="concat('/',substring-after(substring-after(substring-after($fullpath,'/'),'/'),'/'),'/')"/>
+				</xsl:when>
+				<xsl:otherwise>
+					<xsl:value-of select="concat('/',substring-after(substring-after(substring-after(substring-after($fullpath,'/'),'/'),'/'),'/'),'/')"/>
+				</xsl:otherwise>
+			</xsl:choose>
+		</xsl:variable>
+<xsl:choose>
+	<xsl:when test="contains($filename,':')">
+		<xsl:choose>
+			<xsl:when test="not(starts-with(.,$path) or concat(.,'/')=$path)">
+				<xsl:call-template name="Note"><xsl:with-param name="text">Unexpected <code><xsl:value-of select="name()"/></code> path for <xsl:apply-templates mode="path" select="../../../@id"/> -&gt; <strong><xsl:apply-templates mode="path" select="../../@id"/></strong> "<xsl:value-of select="."/>"</xsl:with-param></xsl:call-template>
+			</xsl:when>
+		</xsl:choose>
+	</xsl:when>
+	<xsl:otherwise>
+		<xsl:choose>
+			<xsl:when test="substring-before(substring($segment,2),'/') != substring-before(substring($path,2),'/') and (ancestor::SystemDefinition/@id-namespace!='http://www.symbian.org/system-definition' and not(contains(../../@id,':')))">
+				<xsl:call-template name="Warning"><xsl:with-param name="text">Unexpected <code><xsl:value-of select="name()"/></code> path for <xsl:apply-templates mode="path" select="../../../@id"/> -&gt; <strong><xsl:apply-templates mode="path" select="../../@id"/></strong> "<xsl:value-of select="$fullpath"/>"</xsl:with-param></xsl:call-template>
+			</xsl:when>
+			<xsl:when test="substring-before(substring($segment,2),'/') != substring-before(substring($path,2),'/')">
+				<xsl:call-template name="Error"><xsl:with-param name="text">Unexpected <code><xsl:value-of select="name()"/></code> path for <xsl:apply-templates mode="path" select="../../../@id"/> -&gt; <strong><xsl:apply-templates mode="path" select="../../@id"/></strong> "<xsl:value-of select="$fullpath"/>"</xsl:with-param></xsl:call-template>
+			</xsl:when>
+			<xsl:when test="not(starts-with($segment,$path))">
+				<xsl:call-template name="Note"><xsl:with-param name="text">Unexpected <code><xsl:value-of select="name()"/></code> path for <xsl:apply-templates mode="path" select="../../../@id"/> -&gt; <strong><xsl:apply-templates mode="path" select="../../@id"/></strong> "<xsl:value-of select="$fullpath"/>"</xsl:with-param></xsl:call-template>
+			</xsl:when>
+		</xsl:choose>
+	</xsl:otherwise>
+</xsl:choose>
+<xsl:if test="substring(.,string-length(.))='/'">
+		<xsl:call-template name="Warning"><xsl:with-param name="text"><code><xsl:value-of select="name()"/></code> path "<xsl:value-of select="."/>" should not end in /</xsl:with-param></xsl:call-template>
+</xsl:if>
+<xsl:if test="contains(.,'\')">
+		<xsl:call-template name="Error"><xsl:with-param name="text"><code><xsl:value-of select="name()"/></code> path "<xsl:value-of select="."/>" must use only forward slashes</xsl:with-param></xsl:call-template>
+</xsl:if>
+</xsl:template>
+
+
+<xsl:template match="SystemDefinition" mode="check-matches">
+	<xsl:param name="which"/>
+	<xsl:param name="other"/>
+	<xsl:for-each select="//*[@mrp]">
+		<xsl:variable name="mrp" select="@mrp"/>
+		<xsl:if test="not($other//*[@mrp=$mrp])">
+			<xsl:call-template name="Error"><xsl:with-param name="text"><xsl:value-of select="$mrp"/> has no match in <xsl:value-of select="$which"/>.</xsl:with-param></xsl:call-template>
+		</xsl:if>
+	</xsl:for-each>
+</xsl:template>
+
+<xsl:template match="*" mode="value">
+	<xsl:call-template name="Error"><xsl:with-param name="text">
+		<xsl:value-of select="name()"/>:<xsl:for-each select="@*"><xsl:value-of select="concat(name(),'=',.)"/></xsl:for-each>
+	</xsl:with-param></xsl:call-template>
+</xsl:template>
+
+<xsl:template match="*" mode="compare"><xsl:param name="base"/>
+<xsl:variable name="n" select="@id"/>
+<xsl:variable name="tag" select="name()"/>
+<xsl:variable name="v"><xsl:apply-templates select="." mode="value"/></xsl:variable>
+<xsl:variable name="v2"><xsl:apply-templates mode="value" select="$base//*[name()=$tag and @id=$n]"/></xsl:variable>
+<xsl:if  test="$v != $v2">
+	<xsl:call-template name="Error"><xsl:with-param name="text">
+		<xsl:value-of select="concat(name(),' ',@name)"/> not identical. [<xsl:value-of select="$v"/>|<xsl:value-of select="$v2"/>]</xsl:with-param></xsl:call-template>
+</xsl:if>	
+</xsl:template>
+
+
+
+<xsl:template match="unit" mode="compare" priority="1"><xsl:param name="base"/>
+<xsl:variable name="n" select="concat(@version,':',@mrp,'.',@prebuilt)"/>
+<xsl:variable name="v"><xsl:apply-templates select="." mode="value"/></xsl:variable>
+<xsl:variable name="v2"><xsl:apply-templates mode="value" select="$base//unit[concat(@version,':',@mrp,'.',@prebuilt)=$n]"/></xsl:variable>
+<xsl:if  test="$v != $v2">
+	<xsl:call-template name="Error"><xsl:with-param name="text">
+		<xsl:value-of select="concat('&#xa;',name(),' ',../@name,' v',@version)"/> not identical. [<xsl:value-of select="$v"/>|<xsl:value-of select="$v2"/>]</xsl:with-param></xsl:call-template>
+</xsl:if>
+</xsl:template>
+
+<xsl:template match="/variations/@module"> (<xsl:value-of select="."/>)</xsl:template>
+
+<xsl:template match="/variations" mode="x-check"><xsl:param name="sysdef"/>
+<xsl:call-template name="Section"><xsl:with-param name="text">vp cross-check <xsl:apply-templates select="@module"/></xsl:with-param></xsl:call-template>
+<xsl:for-each select="//component">
+	<xsl:variable name="found">
+		<xsl:apply-templates select="$sysdef" mode="lookfor">
+			<xsl:with-param name="id" select="@name"/>
+			<xsl:with-param name="version" select="@version"/>
+		</xsl:apply-templates>
+	</xsl:variable>
+	<xsl:if test="$found=''">
+		<xsl:call-template name="Error"><xsl:with-param name="text">VP component "<xsl:value-of select="@name"/>"<xsl:if test="@version"> v<xsl:value-of select="@version"/></xsl:if> not in SysDef</xsl:with-param></xsl:call-template>
+	</xsl:if>
+</xsl:for-each>
+</xsl:template>
+
+<xsl:template match="*" mode="lookfor"><xsl:param name="id"/><xsl:param name="version"/>
+	<xsl:choose>
+		<xsl:when test="string-length($version) and //component[@id=$id and unit[@version=$version]]">Found</xsl:when>
+		<xsl:when test="string-length($version)=0 and //*[@id=$id]">Found</xsl:when>
+		<xsl:otherwise>
+			<xsl:apply-templates select="document(//layer/@href | //package/@href | //collection/@href | //component/@href,.)/*/*" mode="lookfor">
+				<xsl:with-param name="version" select="$version"/>
+				<xsl:with-param name="id" select="$id"/>
+			</xsl:apply-templates>
+		</xsl:otherwise>
+	</xsl:choose>
+</xsl:template>
+
+
+
+<xsl:template match="SystemBuild" mode="x-check"><xsl:param name="sysdef"/>
+
+<xsl:call-template name="Section"><xsl:with-param name="text">System Build cross-check</xsl:with-param></xsl:call-template>
+<xsl:for-each select="//ref">
+	<xsl:variable name="found">
+		<xsl:apply-templates select="$sysdef" mode="lookfor">
+		<xsl:with-param name="id" select="current()/@item"/>
+	</xsl:apply-templates>
+</xsl:variable>
+	<xsl:if test="$found=''">
+		<xsl:call-template name="Error"><xsl:with-param name="text">Build item "<xsl:value-of select="@item"/>" not in SysDef</xsl:with-param></xsl:call-template>
+</xsl:if>
+</xsl:for-each>
+
+<xsl:for-each select="//listRef">
+	<xsl:if test="not(//list[@name=current()/@list])">
+		<xsl:call-template name="Error"><xsl:with-param name="text">Build list "<xsl:value-of select="@name"/>" not defined</xsl:with-param></xsl:call-template>
+</xsl:if>	
+</xsl:for-each>
+</xsl:template>
+
+
+<xsl:template name="my-release">
+	<xsl:variable name="n" select="@name"/>
+	<xsl:variable name="new" select="@introduced"/>
+	<xsl:variable name="end" select="@deprecated"/>
+	<xsl:choose>
+		<xsl:when test="$new!='' and $end!=''">(<xsl:value-of select="concat($new,' - ',$end)"/>)</xsl:when>
+		<xsl:when test="$new!='' ">(<xsl:value-of select="$new"/>)</xsl:when>
+		<xsl:when test="$end!=''">(? - <xsl:value-of select="$end"/>)</xsl:when>
+	</xsl:choose>
+</xsl:template>
+
+<xsl:template name="normpath"><xsl:param name="path"/>
+<!-- normalize out any ".." in the path in $path  -->
+<xsl:choose>
+	<xsl:when test="contains($path,'/../')">
+	<xsl:call-template name="normpath">
+		<xsl:with-param name="path">
+		<xsl:call-template name="before">
+			<xsl:with-param name="text" select="substring-before($path,'/../')"/>
+		</xsl:call-template>
+		<xsl:value-of select="substring-after($path,'/../')"/>
+		</xsl:with-param>
+		</xsl:call-template>
+	</xsl:when>
+	<xsl:otherwise><xsl:value-of select="$path"/></xsl:otherwise>
+</xsl:choose>
+</xsl:template>
+
+<!-- return all text before the last / -->
+<xsl:template name="before"><xsl:param name="text"/>
+<xsl:if test="contains($text,'/')">
+	<xsl:value-of select="substring-before($text,'/')"/>/<xsl:call-template name="before"><xsl:with-param name="text" select="substring-after($text,'/')"/></xsl:call-template>
+	</xsl:if>
+</xsl:template>
+
+
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/sysdeftools/validate/validate-sysdef.xsl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,48 @@
+<xsl:stylesheet  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+<!--Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+	All rights reserved.
+	This component and the accompanying materials are made available
+	under the terms of the License "Eclipse Public License v1.0"
+	which accompanies this distribution, and is available
+	at the URL "http://www.eclipse.org/legal/epl-v10.html".
+
+	Initial Contributors:
+	Nokia Corporation - initial contribution.
+	Contributors:
+	Description:
+	Validate a system definition file/files and output results as plain text
+-->
+	<xsl:output method="text"/>
+	<xsl:include href="test-model.xsl"/>
+	<xsl:param name="level" select="3"/>
+
+<xsl:template name="Section"><xsl:param name="text"/><xsl:param name="sub"/>
+<xsl:text>&#xa;&#xa;</xsl:text>
+<xsl:value-of select="$text"/>
+<xsl:if test="$sub!=''"> (<xsl:value-of select="$sub"/>)</xsl:if>
+</xsl:template>
+
+
+<xsl:template name="Note"><xsl:param name="text"/><xsl:param name="sub"/>
+<xsl:if test="$level &gt;= 3">
+<xsl:text>&#xa;Note: </xsl:text>
+<xsl:value-of select="$text"/>
+<xsl:if test="$sub!=''"> (<xsl:value-of select="$sub"/>)</xsl:if>
+</xsl:if>
+</xsl:template>
+
+<xsl:template name="Warning"><xsl:param name="text"/><xsl:param name="sub"/>
+<xsl:if test="$level &gt;= 2">
+<xsl:text>&#xa;Warning: </xsl:text>
+<xsl:value-of select="$text"/>
+<xsl:if test="$sub!=''"> (<xsl:value-of select="$sub"/>)</xsl:if>
+</xsl:if>
+</xsl:template>
+
+<xsl:template name="Error"><xsl:param name="text"/><xsl:param name="sub"/>
+<xsl:text>&#xa;Error: </xsl:text>
+<xsl:value-of select="$text"/>
+<xsl:if test="$sub!=''"> (<xsl:value-of select="$sub"/>)</xsl:if>
+</xsl:template>
+
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/buildtools_info/buildtools_metadata/buildtools_metadata.mrp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,6 @@
+component           buildtools_metadata
+source   \sf\os\buildtools\buildtools_info\buildtools_metadata 
+source   \sf\os\buildtools\package_definition.xml
+source   \sf\os\buildtools\distribution.policy.s60
+notes_source      \component_defs\release.src
+ipr T 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imgtools_os/romkiteka2/Utils/metarombuild.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,298 @@
+#
+# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+#! perl
+
+# This script builds ROMs which are specified in a supplied XML file
+# To use this script \epoc32\tools\buildrom must be installed on the drive
+# with \epoc32\tools in the path
+
+# Note: The TargetBoard attribute is no longer used but is still needed because of the structure of this script!
+
+use strict;
+use XML::Simple;
+use Getopt::Long;
+use Cwd;
+use Cwd 'abs_path';
+use File::Copy;
+use File::Path;
+
+# Get command line arguments
+my ($romspec, $boards, $roms, $logdir, $buildnum, $publish, $help, $version) = ProcessCommandLine();
+
+Usage() if ($help);
+Version() if ($version);
+
+die "Romspec xml file must be specified using the -romspec option\n" if (!$romspec);
+
+# Construct arrays of boards and roms if they were specified
+my @boards = split /,/, $boards if ($boards);
+my @roms = split /,/, $roms if ($roms);
+
+# Use the XML::Simple module to parse the romspec and pass the result
+# into the $Roms hash reference
+my $xml = new XML::Simple;
+my $Roms = $xml->XMLin($romspec);
+
+my $RomList = %$Roms->{'Rom'};
+
+my $RomBuildStage = 1;
+
+foreach my $rom (sort keys %$RomList)
+{
+    my $board = $RomList->{$rom}->{'TargetBoard'};
+    if( (@boards == 0 and @roms == 0) or grep $rom, @roms or grep $board, @boards)
+    {
+        BuildRom($RomBuildStage, $RomList, $rom, $logdir, $buildnum ,$publish);
+        $RomBuildStage++;
+    }
+}
+
+#####################################################
+#### Run buildrom on the specified ROM using ########
+#### info from the romspec.xml               ########
+#####################################################
+sub BuildRom
+{
+    my $Stage = shift;  # BuildRom stage
+    my $RomList = shift;  # Hash of the romspec.xml
+    my $rom = shift;   # Rom to be built
+    my $logdir = shift;  # logs directory
+    my $buildnum = shift;  # build number
+    my $publish = shift;   # Publish Location
+    my $type = $ENV{Type}; # type of Build Master or Release
+    my $builddir = $ENV{BuildDir}; # Build Directory
+    my $Epocroot = $ENV{EPOCROOT}; # EpocRoot;
+    my $InFileList="";  # i.e. Platsec, Techview, obyfiles
+    my $XmlFileList="";
+    my $MacroList="";   # for the buildrom -D option
+    my $TargetBoard = $RomList->{$rom}->{'TargetBoard'};
+    my $ImageFile = " -o".$RomList->{$rom}->{'ImageFile'}->{'name'}; # for the buildrom -o option
+ 
+    # Construct the list of InFiles to pass to buildrom
+    my $InFiles = %$RomList->{$rom}->{'InFile'};
+    foreach my $infile (sort keys %$InFiles)
+    {
+        if ($infile eq "name")
+        {
+            $InFileList = " ".$InFiles->{'name'} unless (lc($InFiles->{'name'}) eq lc($TargetBoard));
+        }
+        else
+        {
+            $InFileList .= " ".$infile unless(lc($infile) eq lc($TargetBoard));
+        }
+    }
+    my $RomXmlFlag='-f';
+    my $XmlFiles = %$RomList->{$rom}->{'XMLFile'};
+    foreach my $XmlFlags (keys %$XmlFiles)
+    {
+        if ($XmlFlags eq "flag")
+        {
+          $RomXmlFlag= $XmlFiles->{'flag'};
+        }
+    }
+    foreach my $XmlFile (keys %$XmlFiles)
+    {
+        if ($XmlFile eq "name")
+        {
+            $XmlFileList = "$RomXmlFlag"."$Epocroot"."epoc32\\rom\\include\\".$XmlFiles->{'name'};
+        }
+        else
+        {
+            $XmlFileList .= "$RomXmlFlag"."$Epocroot"."epoc32\\rom\\include\\".$XmlFile unless(lc($XmlFile) eq lc($TargetBoard));
+        }
+    }
+    
+    # Get the ROM macro if one is defined
+    if ( defined $RomList->{$rom}->{'Macro'} )
+    {
+        if (defined $RomList->{$rom}->{'Macro'}->{'name'} )
+        {
+            if ( $RomList->{$rom}->{'Macro'}->{'value'} ne "" )
+            {
+                $MacroList = " -D".$RomList->{$rom}->{'Macro'}->{'name'}."=".$RomList->{$rom}->{'Macro'}->{'value'};
+            }
+            else
+            {
+                $MacroList = " -D".$RomList->{$rom}->{'Macro'}->{'name'};
+            }
+        }
+        else
+        {
+            my $Macros = %$RomList->{$rom}->{'Macro'};
+            foreach my $macro (keys %$Macros)
+            {
+                if ( $Macros->{$macro}->{'value'} ne "" )
+                {
+                    $MacroList .= " -D".$macro."=".$Macros->{$macro}->{'value'};
+                }
+                else
+                {
+                    $MacroList .= " -D".$macro;
+                }
+            }
+        }
+    }
+    
+    # Call buildrom
+        my $buildrom_command = "buildrom $InFileList $MacroList $XmlFileList $ImageFile 2>&1";
+        my $gHiResTimer = 0;
+        if (eval "require Time::HiRes;")
+        {
+            $gHiResTimer = 1;
+        }
+        else
+        {
+            print "Cannot load HiResTimer Module\n";
+        }
+        open TVROMLOG, ">> $logdir\\techviewroms$buildnum.log";
+        print TVROMLOG "===------------------------------------------------\n";
+        print TVROMLOG "-- Stage=$Stage\n";
+        print TVROMLOG "===----------------------------------------------\n";
+        print TVROMLOG "-- Stage=$Stage started ".localtime()."\n";
+        print TVROMLOG "=== Stage=$Stage == Build $rom\n";
+        print TVROMLOG "-- Stage=$Stage == $TargetBoard $InFileList\n";
+        print TVROMLOG "-- $buildrom_command\n";
+        print TVROMLOG "-- MetaromBuild Executed ID $Stage $buildrom_command \n";
+        print TVROMLOG "++ Started at ".localtime()."\n";
+        if ($gHiResTimer == 1)
+        {
+            print TVROMLOG "+++ HiRes Start ".Time::HiRes::time()."\n";
+        }
+        else
+        {
+            # Add the HiRes timer unavailable statement
+            print TVROMLOG "+++ HiRes Time Unavailable\n";
+        }
+        my $command_output = `$buildrom_command`;
+        print TVROMLOG $command_output;
+        if ($?)
+        {
+            print TVROMLOG "ERROR: $buildrom_command returned an error code $?\n";
+        }
+        if (($command_output =~m/\d\sFile/g) and ($command_output!~/Failed/ig) and ($command_output!~/Unsucessful/ig))
+        {
+            print TVROMLOG "Rom Built Sucessfully\n";
+        }
+        else
+        {
+            print TVROMLOG "ERROR: $buildrom_command failed .Please check log techviewroms$buildnum.log for details\n";
+        }
+        if ($gHiResTimer == 1)
+        {
+            print TVROMLOG "+++ HiRes End ".Time::HiRes::time()."\n";
+        }
+        else
+        {
+            # Add the HiRes timer unavailable statement
+            print TVROMLOG "+++ HiRes Time Unavailable\n";
+        }
+        print TVROMLOG "++ Finished at ".localtime()."\n";
+        print TVROMLOG "=== Stage=$Stage finished ".localtime()."\n";
+        close TVROMLOG;
+        
+        # Publishing of Logs and Roms#####################
+        my $ImageFileXML = $ImageFile ;
+        $ImageFileXML =~s/^\s-o//i;
+        $ImageFileXML =~/(.*\d.techview)/;
+        my $ImageFileXMLresult = $1;
+        my $cwdir = abs_path ( $ENV { 'PWD' } );
+        $cwdir =~s/\//\\/g;
+        $rom =~ /(\w+).*/;
+        my $data = $1;
+        if(($publish ne ""))
+        {
+            if($rom =~ /(\w+).*/)
+            {   
+                my $data = $1;
+                if(not -d "$publish\\$1")
+                    {
+                        mkpath "$publish\\$1" || die "ERROR: Cannot create $publish\\$1"; # If folder doesnt exist create it 
+                    }
+                    opendir(DIR, $cwdir) || die "can't opendir $cwdir: $!";
+                    my @file_array =readdir(DIR);
+                foreach ($ImageFileXMLresult)
+                {
+                    foreach my $ImageFileConcat (@file_array)
+                    {
+                        $ImageFileConcat =~/(.*\d.techview)/;
+                        my  $Image = $1;
+                        
+                        if ($ImageFileXMLresult eq $Image)
+                        {
+                            copy ("$cwdir\\$ImageFileConcat" , "$publish\\$data\\");# or die "Cannot copy file:$!";
+                        }                   
+                    }
+                    closedir DIR;
+                }   
+            }
+        }
+        else
+        {
+            print"Publish Option not used \n";
+        }
+}
+
+########################################
+##### Process the command line #########
+########################################
+sub ProcessCommandLine
+{
+    my ($romspec, $boards, $roms, $publish, $help, $version);
+
+    GetOptions('romspec=s' => \$romspec,
+               'roms=s' => \$roms,
+               'boards=s' => \$boards,
+               'logdir=s' => \$logdir,
+               'buildnum=s' => \$buildnum,
+               'publish=s' => \$publish,
+               'help' => \$help,
+               'version' => \$version)|| die Usage();
+    
+    return ($romspec, $boards, $roms, $logdir, $buildnum, $publish, $help, $version);
+}
+
+
+sub Usage
+{
+    print <<USAGE_EOF;
+
+Usage
+-----
+perl metarombuild.pl -romspec <romspec xml file> [options]
+
+ When no options are specified, all ROMs specified in the romspec wil be built.
+ 
+ Options:
+    -logdir <path to logs directory>
+    -buildnum <build number>
+    -publish <location of path where rom logs will be published >
+    -help
+    -version
+
+USAGE_EOF
+exit 0;
+}
+
+sub Version
+{
+    print <<VERSION_EOF;
+
+metarombuild.pl v1.0
+Copyright (c) 2005-2009 Nokia Corporation. All rights reserved.
+    
+VERSION_EOF
+exit 0;
+}
Binary file imgtools_os/romkiteka2/config/featreg_default.cfg has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imgtools_os/romkiteka2/group/BLD.INF	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,93 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+/**
+@file
+
+@SYMPurpose Tool for building ROMs
+*/
+
+PRJ_EXPORTS
+
+../tools/buildrom.txt	/epoc32/engdoc/romkit/buildrom.txt
+
+../include/DEBUG.IBY 		/epoc32/rom/include/ //
+../include/EPOCBASE.IBY 	/epoc32/rom/include/ //
+../include/HEADER.IBY 		/epoc32/rom/include/ //
+../include/MESON.IBY 		/epoc32/rom/include/ //
+../include/OBEYFILE.IBY 	/epoc32/rom/include/ //
+../include/ESHELL.IBY 	/epoc32/rom/include/ //
+
+../include/bldinfo.hby		/epoc32/rom/include/ //
+
+../tools/configpaging/configpaging.cfg	/epoc32/rom/configpaging/configpaging.cfg
+../tools/configpaging/configpaging_stressed.cfg	/epoc32/rom/configpaging/configpaging_stressed.cfg
+../tools/configpaging/configpaging_recommended.cfg	/epoc32/rom/configpaging/configpaging_recommended.cfg
+
+#if defined(SYMBIAN_FEATURE_MANAGER)
+../include/featuredatabase.xml 	/epoc32/rom/include/featuredatabase.xml
+../tools/featuredatabase.dtd	/epoc32/tools/featuredatabase.dtd
+#else
+../include/feature.iby		/epoc32/rom/include/
+../include/featureUIDs.h 	/epoc32/include/
+
+// file for setting default feature registry configuration
+../config/featreg_default.cfg /epoc32/data/config/ //
+
+// feature definitions for ROM building tools
+../include/featureUIDs.xml /epoc32/rom/include/ //
+#endif
+
+// OBY file that allows you to build a rom with useful kernel tracing enabled
+../include/kerneltrace.oby	/epoc32/rom/include/ //
+
+// OBY(s) for configuring platsec
+../include/PlatSecDisabledCapsX.oby 	/epoc32/rom/include/ //
+../include/PlatSec.oby 		/epoc32/rom/include/ //
+
+// OBY(s) for configuring demand paging
+../include/pagedrom.oby /epoc32/rom/include/ //
+../include/pagedrom_stressed.oby /epoc32/rom/include/ //
+../include/pagedrom_functional.oby /epoc32/rom/include/ //
+
+// IBY file for setting all removable features
+../include/RemovableFeatures.iby /epoc32/rom/include/ //
+
+// DTD files
+../tools/imageContent.dtd	/epoc32/tools/imagecontent.dtd
+../tools/cdf.dtd		/epoc32/tools/cdf.dtd
+../tools/featureuids.dtd	/epoc32/tools/featureuids.dtd
+
+// OBY file that builds a substantial Text Shell rom with no UI dependency
+../include/textshell.oby	/epoc32/rom/include/textshell.oby
+
+#if defined(SYMBIAN_FEATURE_MANAGER)
+PRJ_PLATFORMS
+TOOLS2
+
+// extension makefile for invoking features tool
+PRJ_EXTENSIONS
+
+start	extension	tools/features
+
+option	FEAT_DATABASE		$(EPOCROOT)epoc32/rom/include/featuredatabase.xml
+option	FEAT_HEADER_PATH	$(EPOCROOT)epoc32/include
+option	FEAT_IBY_PATH		$(EPOCROOT)epoc32/rom/include
+option	FEAT_DAT_PATH		$(EPOCROOT)epoc32/data/config
+
+end
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imgtools_os/romkiteka2/group/release.txt	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,27 @@
+Version is unchanged
+================
+(Made by Zheng Shen, 24/08/2009)
+  1. REQ12628 Tools codeline refactoring for SymTB9.2
+     Platform indenpendent tools are removed from MCL.
+
+Version 3.15.0
+================
+(Made by Zhi Dou, 31/07/2009)
+  1. REQ12562 Byte-pair compression update
+
+Version 3.14.0
+================
+(Made by Zhi Dou, 23/07/2009)
+  1. REQ12561 BUILDROM performance improvement
+
+Version 3.13.0
+================
+(Made by Zhi Dou, 20/07/2009)
+  1. REQ13110 HCR file in ROM (ROMBUILD)
+  2. REQ13111 HCR file in a separate NAND partition (ROFSBUILD)
+	
+Version 3.12.38
+================
+(Made by Zhi Dou, 10/07/2009)
+  1. PDEF139677 breaks textshell builds (RAM-ROM)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imgtools_os/romkiteka2/group/tools_romkit.history.xml	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,170 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<relnotes name="ROMKIT_EKA2">
+  <purpose>
+  </purpose>
+
+  <minorchange revision="022">
+    Product Usability: Add information needed by interpretsis to rofs logs (CR1296, MS3.6)
+  </minorchange>
+
+  <defect number="DEF116405" title="Buildrom has a new compulsory argument which breaks backwards compatibility" revision="021">
+    Buildrom has a new compulsory argument which breaks backwards compatibility
+  </defect>
+
+  <minorchange revision="039">
+    Rom Tools Usability enhancements (PREQ1858, MS3.2)
+  </minorchange>
+  
+  <defect number="DEF117647" title="buildrom usage does not list '-I' option." revision="038">
+       buildrom usage does not list "-I" option.
+  </defect>
+    
+   <defect number="DEF117023" title="features.pl generates featureuids.h header file in the wrong case." revision="037">
+    features.pl generates featureuids.h header file in the wrong case.
+  </defect> 
+
+  <defect number="DEF116837" title="Component RomKit is not case-consistent on Linux filesystem." revision="036">
+    Component RomKit is not case-consistent on Linux filesystem.
+  </defect>  
+
+  <defect number="DEF115977" title="Option -p doesnt work for buildrom" revision="035">
+    Option -p doesnt work for buildrom
+  </defect>  
+
+  <defect number="DEF115640" title="Buildrom doesn't work when run in the root directory" revision="034">
+    Buildrom doesn't work when run in the root directory
+  </defect>  
+  
+  <defect number="PDEF115346" title="DP: Alias errors in efficient_rom_paging" revision="033">
+    DP: Alias errors in efficient_rom_paging
+  </defect>
+  
+  <defect number="DEF113086" title="Obsolete XML attribute &quot;support&quot;, in &quot;defaultfeaturerange&quot;element of FM XML" revision="032">
+    Obsolete XML attribute 'support', in 'defaultfeaturerange'element of FM XML
+  </defect>
+    
+  <defect number="PDEF115145" title="Patchdata requires map file" revision="031">
+    Patchdata requires map file
+  </defect>
+  
+  <defect number="PDEF114978" title="Symbian rompatching patches incorrect values if patchable data is not defined" revision="030">
+    Symbian rompatching patches incorrect values if patchable data is not defined
+  </defect>
+  
+  <defect number="DEF115172" title="Buildrom should complain on not supplying &quot;-fm&quot; option" revision="029">
+    Buildrom should complain on not supplying "-fm" option
+  </defect>
+  
+  <defect number="DEF113536" title="features.pl does not allow a feature to be excluded from a feature set's IBY" revision="028">
+    features.pl does not allow a feature to be excluded from a feature set's IBY
+  </defect>
+
+  <defect number="DEF114807" title="Features tool help information is displayed twice with error message" revision="027">
+    Features tool help information is displayed twice with error message
+  </defect>
+
+  <defect number="DEF113508" title="ROMBUILD getting invoked twice" revision="026">
+    ROMBUILD getting invoked twice
+  </defect>
+
+  <defect number="DEF113140" title="Buildrom fails with error 'Use the keyword 'romsize' ' for extension ROFS image" revision="025">
+    Buildrom fails with error 'Use the keyword 'romsize' ' for extension ROFS image
+  </defect>
+
+  <defect number="DEF111921" title="Invocation of the spi tool fails with -d option" revision="024">
+    Invocation of the spi tool fails with -d option
+  </defect>
+
+  <defect number="DEF113506" title="RomKit FeatReg generation incorrectly optimises feature entries out of CFG files" revision="023">
+    RomKit FeatReg generation incorrectly optimises feature entries out of CFG files
+  </defect>
+  
+  <defect number="INC112458" title="buildrom.pm defect when compression type is not specified." revision="022">
+    buildrom.pm defect when compression type is not specified.
+  </defect>
+
+  <defect number="DEF112560" title="Two defects in buildrom UDA image creation." revision="021">
+    Two defects in buildrom UDA image creation.
+  </defect>
+
+  <defect number="DEF095016" title="Renaming default language files is in a conflict with the NearestLanguageFile()" revision="020">
+    Renaming default language files is in a conflict with the NearestLanguageFile()
+  </defect>
+
+  <defect number="PDEF109724" title="Rombuild/Rofsbuild should warn if dll or exe is located outside standard paths" revision="019">
+    Rombuild/Rofsbuild should warn if dll or exe is located outside standard paths 
+  </defect>
+
+  <minorchange revision="018">
+    Feature Manager run-time enhancements (PREQ1645)
+  </minorchange>
+
+  <defect number="PDEF111221" title="ROM patching fails if ARMV5 is not specified in caps in ABI_DIR macro" revision="017">
+    ROM patching fails if ARMV5 is not specified in caps in ABI_DIR macro 
+  </defect>
+  
+  <defect number="DEF111787" title="Buildrom is failing if hide statement is specified in the iby/oby file" revision="016">
+    Buildrom is failing if hide statement is specified in the iby/oby file 
+  </defect>
+
+  <defect number="DEF110497" title="buildrom doesn't work for ARMV6" revision="015">
+    buildrom doesn't work for ARMV6 
+  </defect>
+  
+  <minorchange revision="014">
+    Feature Manager supporting tool enhancements (PREQ1801, MS3.1)
+  </minorchange>
+  
+  <defect number="PDEF110043" title="patchdata option handles incorrectly negative values" revision="013">
+    patchdata option handles incorrectly negative values
+  </defect>
+
+  <defect number="DEF111340" title="DP: Code paging is not used for ROFS code" revision="012">
+    Enabled the USE_CODE_PAGING and CODE_PAGING_FROM_ROFS flags and disabled the EFFICIENT_ROM_PAGING flag (which is not needed for mainly code paged ROMs).
+  </defect>
+
+  <defect number="DEF110618" title="Build rom command is failing to create the image with -f option " revision="011">
+    Build rom command is failing to create the image with -f option .
+  </defect>
+
+  <defect number="DEF106861" title="Specifying a compression method in buildrom doesn't work" revision="010">
+    Specifying a compression method in buildrom doesn't work.
+  </defect>
+
+  <defect number="DEF109247" title="Rombuild can ignore the compress option for the core image" revision="009">
+    Rombuild can ignore the compress option for the core image.
+  </defect>
+
+  <defect number="DEF108413" title="Not possible to have hierarchies of BSF files" revision="008">
+    Not possible to have hierarchies of BSF files.
+  </defect>
+
+  <minorchange revision="007">
+    Generation of data drive image (PREQ1230, MS3.1)
+  </minorchange>
+
+  <defect number="DEF100399" title="ABIV2: BSF files do not work properly for BPABI platforms" revision="006">
+    ABIV2: BSF files do not work properly for BPABI platforms.
+  </defect>
+
+  <minorchange revision="005">
+    EC021 changes to longeng have removed the static dependency on cntmodel, so textshell.oby
+    no longer needs workarounds to avoid pulling in cntmodel.
+  </minorchange>
+
+  <minorchange revision="004">
+    Add textshell.oby, which creates a text shell ROM that has no dependency on the UI layer, and is intended for testing hardware adaptation APIs.
+  </minorchange>
+
+  <defect number="PDEF098786" title="Symbol file is always generated" revision="003">
+    Adding a new option to buildrom so that Symbol file will not be generated if the new option is specified
+  </defect>
+
+  <defect number="DEF099432" title="&quot;abld -checksource&quot; should differentiate between USERINCLUDE and SYSTEMINCLUDE" revision="002">
+    "-I-" added between the USERINCLUDE and SYSTEMINCLUDE paths that are picked up from the MAKMAKE front-end and listed to CPP
+  </defect>
+
+  <defect number="DEF099989" title="DP: [TBAS] Duplication ERROR while building the Default DP ROM image on TBAS2589" revision="001">
+    Change efficient_rom_paing.pm so that ’hide’ and ’rename’ keywords are supported.
+  </defect>
+</relnotes>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imgtools_os/romkiteka2/group/tools_romkit.mrp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+component	tools_romkit
+source	\sf\os\buildtools\imgtools_os\romkiteka2
+binary	\sf\os\buildtools\imgtools_os\romkiteka2\group all
+exports	\sf\os\buildtools\imgtools_os\romkiteka2\group
+
+-export_file	\sf\os\buildtools\imgtools_os\romkiteka2\tools\buildrom.txt	\epoc32\engdoc\romkit\buildrom.txt
+notes_source	\component_defs\release.src
+
+
+ipr T 
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imgtools_os/romkiteka2/include/DEBUG.IBY	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,28 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+#ifndef __DEBUG_IBY__
+#define __DEBUG_IBY__
+
+REM Additional things in System\Samples
+REM Use "Re-install sample files" in the RefUI shell Tools menu
+
+
+#ifdef _DEBUG
+#include <obeyfile.iby>		// top-level OBY file in \System\Samples
+#endif
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imgtools_os/romkiteka2/include/EPOCBASE.IBY	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,116 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+#ifndef __EPOCBASE_IBY__
+#define __EPOCBASE_IBY__
+
+REM EPOCBASE.IBY Basic OS Support
+
+#include <header.iby>		/* ROM header definitions */
+#include <base.iby>		/* The lowest-level of the operating system */
+
+#include <c32.iby>		/* standard Sockets components */
+#include <ecuart.iby> /* standard Sockets components */
+#include <esock.iby>		/* standard Sockets components */
+#include <irda.iby>     	/* standard Sockets components */
+#include <bluetooth.iby>     	/* standard Sockets components */
+
+#include <gdi.iby>     		/* standard Graphics components */
+#include <fntstore.iby> 	/* standard Graphics components */
+#include <fbserv.iby>   	/* standard Graphics components */
+#include <bitgdi.iby>   	/* standard Graphics components */
+#include <wserv.iby>    	/* standard Graphics components */
+
+#include <apparc.iby>   	/* Application architecture DLLs */
+#include <emime.iby>		/* Mime recognition */
+#include <meson.iby>    	/* standard Meson components */
+
+#include <fepbase.iby>		/* Front end processor base classes */
+#include <printers.iby> 	/* Printer drivers */
+
+/* Generic Multimedia Components */
+#include <mmf.iby>			/* Multimedia Framework */
+#include <mmcommon.iby>		/* Shared multimedia components  */
+#include <imageconversion.iby>	/* Image conversion library */
+#include <mdf.iby>			/* Media Device Framework */
+#include <devvideo.iby>		/* devvideo generic */
+#include <asr.iby>			/* speech recognition */
+#include <ecam.iby>			/* Camera API */
+
+#include <sysagent.iby>		/* System Agent client and server */
+
+#include <network.iby>
+
+#include <rtp.iby>              /* Multimedia Protocols(RTP) component */
+
+#include <stdlib.iby>        /* Standard C Library */
+
+#include <securitycommonutils.iby>
+#include <caf.iby>
+#include <ups.iby>
+
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+#include <scr.iby>
+#endif
+
+#ifdef SYMBIAN_SYSTEM_STATE_MANAGEMENT
+#include <ssma.iby>			/*System State Management Architecture*/
+#include <ssplugins.iby>		/*System State Management Plugins*/
+
+#else
+// System starter is included by default. To build a rom
+// which will use start.exe instead of sysstart.exe use the
+// -D_NOSYSSTART option with buildrom.
+
+#ifndef _NOSYSSTART 
+#include <sysstart.iby>		/* System Starter */
+#endif
+
+#endif // SYMBIAN_SYSTEM_STATE_MANAGEMENT
+
+#ifndef SYMBIAN_EXCLUDE_SIP  //sip components can be removed from build by defining this macro
+
+
+#include <sipsw.iby>		/* Multimedia Protocols(SIP) component */
+#include <siph2lanbearermonitor.iby>	/* Multimedia Protocols(SIP) component */
+#include <SipStateMachine.iby>	/* Multimedia Protocols(SIP) component */
+#include <SIPDummyPRT.iby>      /* Multimedia Protocols(SIP) component */
+
+#ifndef SYMBIAN_NON_SEAMLESS_NETWORK_BEARER_MOBILITY
+
+#include <SIPCPR.iby>           /* Multimedia Protocols(SIP) component */
+#include <SIPParams.iby>        /* Multimedia Protocols(SIP) component */
+#include <SIPSCPR.iby>          /* Multimedia Protocols(SIP) component */
+
+#else
+
+#include <sipproviders.iby>     /* Multimedia Protocols(SIP) component */
+
+#endif  // SYMBIAN_NON_SEAMLESS_NETWORK_BEARER_MOBILITY
+
+#endif  // SYMBIAN_EXCLUDE_SIP   
+
+#include <openenv.iby>
+#include <ezlib.iby>
+
+#include <sql.iby>			/* SQL database*/
+#include <dbms.iby>			/* Legacy Non-SQL database support */
+
+#ifdef SYMBIAN_EUSERHL
+#include <euserhl.iby> /*Generic usability library*/
+#endif
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imgtools_os/romkiteka2/include/ESHELL.IBY	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,26 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+#ifndef __ESHELL_IBY__
+#define __ESHELL_IBY__
+
+file=ABI_DIR\DEBUG_DIR\eshell.exe	\sys\bin\EShell.exe		HEAPMAX(0x20000)
+
+REM For the benefit of base\f32\etshell
+data=ZPRIVATE\10003a3f\APPS\eshell_reg.rsc     Private\10003a3f\Apps\eshell_reg.rsc 
+
+#endif
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imgtools_os/romkiteka2/include/HEADER.IBY	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,181 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+#ifndef __HEADER_IBY__
+#define __HEADER_IBY__
+
+unicode
+
+romsize=0x##ROMMEGS##00000
+time=ROMDATE 12:00:00
+
+#ifdef CDMA
+define CDMA_SUFFIX _cdma
+#else
+define CDMA_SUFFIX ## 		// nothing
+#endif
+
+#ifdef _NAND
+define NAND_SUFFIX .nand
+#else
+define NAND_SUFFIX ##		// nothing
+#endif
+
+#if (defined _NAND2 || defined _ONENAND)
+define NAND_SUFFIX .nand
+#endif
+
+#ifdef SYMBIAN_FEATURE_MANAGER
+defaultfeaturedb = epoc32\rom\include\featuredatabase.xml 
+#endif
+
+romname=##VARIANT##_##BUILDNO##LANGID##.##OBEYFILE##CDMA_SUFFIX##NAND_SUFFIX.IMG
+
+#ifdef _NAND
+ECHO Preparing NAND core image with associated ROFS image
+
+#ifndef _ROFS_SIZE
+#define _ROFS_SIZE	32000000	// 32 Meg default
+#endif
+define ROFS_SIZE	_ROFS_SIZE
+
+compress
+rom_image 1 rofs size=ROFS_SIZE non-xip compress
+
+#endif
+
+
+#if (defined _NAND2 || defined _ONENAND)
+ECHO Preparing NAND core image with associated ROFS image
+
+#ifndef _ROFS_SIZE
+#define _ROFS_SIZE	32000000	// 32 Meg default
+#endif
+define ROFS_SIZE	_ROFS_SIZE
+
+compress
+rom_image 1 rofs size=ROFS_SIZE non-xip compress
+
+#endif
+
+REM ROM version number
+
+version=##VERSION##(##BUILDNO##)
+
+#ifdef _FULL_DEBUG
+#ifndef _DEBUG
+#define _DEBUG // _FULL_DEBUG implies _DEBUG
+#endif
+define BUILD_DIR udeb
+#else
+define BUILD_DIR urel
+#endif
+
+#ifdef _DEBUG
+define DEBUG_DIR udeb
+#else
+define DEBUG_DIR urel
+#endif
+
+#ifndef _EABI
+#  ifdef _ARM4
+#    define _EABI ARM4
+	 ECHO Defaulting to ARM4
+#  elif defined(_ARMV5)
+#    define _EABI ARMV5
+	 ECHO Defaulting to ARMV5
+#  elif defined _X86GCC
+#    define _EABI x86gcc
+#  endif
+#endif
+
+#  ifdef _PLAT
+#    undef _EABI
+#    define _EABI _PLAT
+	 ECHO Defaulting to _EABI
+#  endif
+
+#  ifdef _GCCE
+#    undef _EABI
+#    define _EABI GCCE
+#  elif defined(ABIV2) || defined(ABIv2)
+#    undef _EABI
+#    define _EABI ARMV5_ABIV2
+#  endif
+
+// This is to include ABIV2 specific runtime libraries. This inclusion
+// in other obey files depends on the definition of RVCT
+#ifdef _GCCE
+# define RVCT
+#endif
+
+define ABI_DIR    EPOCROOT##epoc32\release\##_EABI
+
+#ifndef _KABI
+#define _KABI _EABI
+#endif
+
+define KERNEL_DIR   EPOCROOT##epoc32\release\##_KABI
+
+define DATAZ_     EPOCROOT##epoc32\data\Z     
+define ZSYSTEM    DATAZ_\System
+define ZPRIVATE   DATAZ_\Private
+define ZRESOURCE  DATAZ_\Resource
+
+define DATAC_     EPOCROOT##epoc32\data\C    
+define CSYSTEM    DATAC_\System    
+
+// default location of executables
+define SYSTEM_BINDIR  System\Libs		// will be Sys\Bin for Secure platform
+
+
+// Support for ECOM_PLUGIN
+// Format is ECOM_PLUGIN(<DLL Name>,<Resource File Name>)
+// e.g. ECOM_PLUGIN(foo.dll,12345abc.rsc)
+
+define ECOM_RSC_DIR Resource\Plugins
+define ECOM_BIN_DIR Sys\Bin
+
+
+// __ECOM_PLUGIN(emulator directory, file rom dir, dataz_, resource rom dir, filename, resource filename)
+#define ECOM_PLUGIN(file,resource) __ECOM_PLUGIN(ABI_DIR\BUILD_DIR,ECOM_BIN_DIR,DATAZ_,ECOM_RSC_DIR,file,file)
+#define ECOM_PLUGIN_UDEB(file,resource) __ECOM_PLUGIN(ABI_DIR\UDEB,ECOM_BIN_DIR,DATAZ_,ECOM_RSC_DIR,file,file)
+
+// Support for HIDE_ECOM_PLUGIN
+// Format is HIDE_ECOM_PLUGIN(<DLL Name>,<Resource File Name>)
+// e.g. HIDE_ECOM_PLUGIN(foo.dll,12345abc.rsc)
+
+// _HIDE__ECOM_PLUGIN(emulator directory, file rom dir, dataz_, resource rom dir, filename, resource filename)
+#define HIDE_ECOM_PLUGIN(file,resource) _HIDE__ECOM_PLUGIN(ABI_DIR\BUILD_DIR,ECOM_BIN_DIR,DATAZ_,ECOM_RSC_DIR,file,file)
+#define HIDE_ECOM_PLUGIN_UDEB(file,resource) _HIDE__ECOM_PLUGIN(ABI_DIR\UDEB,ECOM_BIN_DIR,DATAZ_,ECOM_RSC_DIR,file,file)
+
+#ifdef SYMBIAN_ROM_STATIC_PLUGIN_INFORMATION
+	enable_spi
+#else
+	disable_spi
+#endif
+
+// Secure platform setting - use PlatSec.oby to turn diagnostics on
+PlatSecDiagnostics OFF
+PlatSecEnforcement ON
+PlatSecEnforceSysBin ON
+PlatSecProcessIsolation ON 
+
+#include <symbian_os_romdefs.hby>
+
+#include "feature.iby"
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imgtools_os/romkiteka2/include/MESON.IBY	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,91 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+#ifndef __MESON_IBY__
+#define __MESON_IBY__
+
+REM Store, Etext, Form, Grid, Clock, Print, AlarmServer, WorldServer, Bafl, Egul, Cone, Dial, BmpAnim 
+
+/* Store */
+#include "Store.iby"
+
+/* Etext */
+#include "EText.iby"
+
+/* Form */
+#include "Form.iby"
+
+/* Grid */
+file=ABI_DIR\BUILD_DIR\grid.dll 		System\Libs\Grid.dll
+
+/* Clock */
+file=ABI_DIR\BUILD_DIR\clock.dll 		System\Libs\Clock.dll
+file=ABI_DIR\BUILD_DIR\clocka.dll 		System\Libs\ClockA.dll
+
+/* Print */
+#include "print.iby"
+
+/* Alarmserver */
+#include "alarmserver.iby"
+
+/* Pwrcli */
+#include "PwrCli.iby"
+
+/* Bafl */
+#include "Bafl.iby"
+
+/* Cone */
+#include "cone.iby"
+
+/* NumberConversion */
+#include "NumberConversion.iby"
+
+/* EGUL */
+#include <egul.iby>
+
+/* Dial */
+#include <dial.iby>
+
+/* BmpAnim */
+#include <bmpanim.iby>
+
+/* Feature Management run-time */
+#ifdef SYMBIAN_FEATURE_MANAGER
+
+// Include both old and new components when Feature Manager enabled
+#include "featmgr.iby"
+#include "featreg.iby"
+
+#else 
+
+// Include only the original Feature Registry otherwise
+#include "featreg.iby"
+#ifndef ROM_FEATURE_MANAGEMENT
+/* Provide a default configuration file for the feature registry */ 
+data=EPOCROOT##epoc32\data\config\featreg_default.cfg    private\102744CA\featreg.cfg
+#endif
+
+#endif
+
+/* Central Repository*/
+/* The inclusion of central repository in all Cedar ROMs is currently being
+   investigated by the Tech Lead for Symbian OS 9.0.
+
+   When the issue has been fully clarified it is likely that the inclusion
+   will be removed from 8.1b using an appropriate configuration macro */
+#include "centralrepository.iby"
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imgtools_os/romkiteka2/include/OBEYFILE.IBY	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+#ifndef __OBEYFILE_IBY__
+#define __OBEYFILE_IBY__
+
+REM Include the top-level OBY file in the ROM, as an audit trail...
+REM You do not want this in production ROMs!
+
+section2 data=EPOCROOT##epoc32\rom\include\##OBEYFILE##.oby		System\Samples\DESIRED_ABI##_##OBEYFILE##
+
+REM Provides build number information to the emulator/ROM. 
+data=EPOCROOT##epoc32\data\buildinfo.txt   System\Data\buildinfo.txt
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imgtools_os/romkiteka2/include/PlatSec.oby	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,20 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+ROM_IMAGE[0] {
+PlatSecDiagnostics ON
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imgtools_os/romkiteka2/include/PlatSecDisabledCapsX.oby	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,21 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+#ifndef __PLATSEC_DISABLED_CAPS__
+#error "__PLATSEC_DISABLED_CAPS__ must be defined"
+#endif
+PlatSecDisabledCaps __PLATSEC_DISABLED_CAPS__
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imgtools_os/romkiteka2/include/RemovableFeatures.iby	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,46 @@
+// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#ifndef __REMOVABLEFEATURES_IBY__
+#define __REMOVABLEFEATURES_IBY__
+
+#define SYMBIAN_EXCLUDE_FAX
+#define SYMBIAN_EXCLUDE_PRINT
+#define SYMBIAN_EXCLUDE_MMC
+#define SYMBIAN_EXCLUDE_RTP_RTCP
+#define SYMBIAN_EXCLUDE_PC_CONNECTIVITY_EXCEPT_SECURE_BACKUP
+#define SYMBIAN_EXCLUDE_INFRARED
+#define SYMBIAN_EXCLUDE_BLUETOOTH
+#define SYMBIAN_EXCLUDE_OBEX
+#define SYMBIAN_EXCLUDE_USB
+#define SYMBIAN_EXCLUDE_DRM_AGENT_PLUGINS
+#define SYMBIAN_EXCLUDE_IPSEC
+#define SYMBIAN_EXCLUDE_QOS_PROTPLUGINS
+#define SYMBIAN_EXCLUDE_DHCP
+#define SYMBIAN_EXCLUDE_MOBILEIP
+#define SYMBIAN_EXCLUDE_LOCATION
+#define SYMBIAN_EXCLUDE_SIP
+#define SYMBIAN_EXCLUDE_OFFLINE_MODE
+#define SYMBIAN_EXCLUDE_MTP
+#define SYMBIAN_EXCLUDE_VIBRA
+#define SYMBIAN_EXCLUDE_AMBIENT_LIGHT_SENSOR
+#define SYMBIAN_EXCLUDE_COVER_DISPLAY
+#define SYMBIAN_EXCLUDE_KEYPAD_NO_SLIDER
+#define SYMBIAN_EXCLUDE_LOCATION_MANAGEMENT
+#define SYMBIAN_EXCLUDE_CS_VIDEO_TELEPHONY
+#define SYMBIAN_EXCLUDE_EMERGENCY_CALLS_ENABLED_IN_OFFLINE_MODE
+#define SYMBIAN_EXCLUDE_DRIVE_MODE_CAN_RESTRICT_MT_CALLS
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imgtools_os/romkiteka2/include/bldinfo.hby	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,7 @@
+REM bldinfo.hby
+REM
+REM Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).  All rights reserved.
+
+REM Build information data file
+
+data=EPOCROOT##epoc32\data\BuildInfo.txt		System\Data\BuildInfo.txt
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imgtools_os/romkiteka2/include/feature.iby	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,164 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+#ifndef		__FEATURE_IBY__
+#define		__FEATURE_IBY__
+
+
+#ifdef	SYMBIAN_EXCLUDE_FAX
+EXCLUDE_FEATURE Fax
+#else
+FEATURE Fax
+#endif
+
+#ifdef	SYMBIAN_EXCLUDE_PRINT
+EXCLUDE_FEATURE Print
+#else
+FEATURE Print
+#endif
+
+
+#ifdef	SYMBIAN_EXCLUDE_BLUETOOTH
+EXCLUDE_FEATURE Bluetooth
+#else
+FEATURE Bluetooth
+#endif
+
+
+#ifdef	SYMBIAN_EXCLUDE_INFRARED
+EXCLUDE_FEATURE Infrared
+#else
+FEATURE Infrared
+#endif
+
+
+#ifdef	SYMBIAN_EXCLUDE_MMC
+EXCLUDE_FEATURE Mmc
+#else
+FEATURE Mmc
+#endif
+
+
+#ifdef	SYMBIAN_EXCLUDE_USB
+EXCLUDE_FEATURE Usb
+#else
+FEATURE Usb
+#endif
+
+
+#ifdef	SYMBIAN_EXCLUDE_OBEX
+EXCLUDE_FEATURE Obex
+#else
+FEATURE Obex
+#endif
+
+
+#ifdef	SYMBIAN_EXCLUDE_RTP_RTCP
+EXCLUDE_FEATURE RtpRtcp
+#else
+FEATURE RtpRtcp
+#endif
+
+
+#ifdef	SYMBIAN_EXCLUDE_SIP
+EXCLUDE_FEATURE Sip
+#else
+FEATURE Sip
+#endif
+
+
+#ifdef	SYMBIAN_EXCLUDE_QOS_PROTPLUGINS
+EXCLUDE_FEATURE IPQos
+EXCLUDE_FEATURE NetworkQos
+#else
+FEATURE IPQos
+FEATURE NetworkQos
+#endif
+
+
+#ifdef	SYMBIAN_EXCLUDE_IPSEC
+EXCLUDE_FEATURE IPSec
+#else
+FEATURE IPSec
+#endif
+
+
+
+#ifdef	SYMBIAN_EXCLUDE_DHCP
+EXCLUDE_FEATURE Dhcp
+#else
+FEATURE Dhcp
+#endif
+
+
+
+#ifdef	SYMBIAN_EXCLUDE_PC_CONNECTIVITY_EXCEPT_SECURE_BACKUP
+EXCLUDE_FEATURE Connectivity
+#else
+FEATURE Connectivity
+#endif
+
+
+#ifdef	SYMBIAN_EXCLUDE_MTP
+EXCLUDE_FEATURE MTP
+#else
+FEATURE MTP
+#endif
+
+
+#ifdef	SYMBIAN_EXCLUDE_VIBRA
+EXCLUDE_FEATURE Vibra
+#else
+FEATURE Vibra
+#endif
+
+#ifdef	SYMBIAN_EXCLUDE_AMBIENT_LIGHT_SENSOR
+EXCLUDE_FEATURE AmbientLightSensor
+#else
+FEATURE AmbientLightSensor
+#endif
+
+#ifdef	SYMBIAN_EXCLUDE_COVER_DISPLAY
+EXCLUDE_FEATURE CoverDisplay
+#else
+FEATURE CoverDisplay
+#endif
+
+#ifdef	SYMBIAN_EXCLUDE_KEYPAD_NO_SLIDER
+EXCLUDE_FEATURE KeypadNoSlider
+#else
+FEATURE KeypadNoSlider
+#endif
+
+#ifdef	SYMBIAN_EXCLUDE_CS_VIDEO_TELEPHONY
+EXCLUDE_FEATURE CsVideoTelephony
+#else
+FEATURE CsVideoTelephony
+#endif
+
+#ifdef	SYMBIAN_EXCLUDE_EMERGENCY_CALLS_ENABLED_IN_OFFLINE_MODE
+EXCLUDE_FEATURE EmergencyCallsEnabledInOfflineMode
+#else
+FEATURE EmergencyCallsEnabledInOfflineMode
+#endif
+
+#ifdef	SYMBIAN_EXCLUDE_DRIVE_MODE_CAN_RESTRICT_MT_CALLS
+EXCLUDE_FEATURE DriveModeCanRestrictMtCalls
+#else
+FEATURE DriveModeCanRestrictMtCalls
+#endif
+
+#endif //	__FEATURE_IBY__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imgtools_os/romkiteka2/include/featureUIDs.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,62 @@
+// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Feature UID allocations for all Symbian OS platforms
+// This file is managed by the System Design Authority (sda@symbian.com)
+// To allocate a new feature UID, please email the SDA
+// The following UID ranges are allocated for features 
+// that default to reporting "feature present"
+// 0x10279806 - 0x10281805
+// All other UIDs default to reporting "feature not present"
+// 
+//
+
+/**
+ @publishedAll
+ @released
+*/
+namespace NFeature
+	{
+	// default present
+	const TUid KFax = {0x10279806};
+	const TUid KPrint = {0x10279807};
+	const TUid KBluetooth = {0x10279808};
+	const TUid KInfrared = {0x10279809};
+	const TUid KMmc = {0x1027980a};
+	const TUid KUsb = {0x1027980b};
+	const TUid KObex = {0x1027980c};
+	const TUid KRtpRtcp = {0x1027980d};
+	const TUid KSip = {0x1027980f};
+	const TUid KOmaDataSync	= {0x10279810};
+	const TUid KOmaDeviceManagement = {0x10279811};
+	const TUid KIPQoS = {0x10279812};
+	const TUid KNetworkQoS = {0x10279813};
+	const TUid KIPSec = {0x10279814};
+	const TUid KDhcp = {0x10279815};
+	const TUid KConnectivity = {0x10279816};	// PC Connectivity
+	const TUid KMTP = {0x10279817};
+
+	// default not-present
+	const TUid KLocation = {0x10281818};
+	const TUid KMobileIP = {0x10281819};
+	const TUid KOfflineMode = {0x1028181A};
+	const TUid KDRM = {0x1028181B};
+	const TUid KOmaDsHostServers = {0x10282663};	
+	const TUid KVibra = {0x102835AE};
+	const TUid KAmbientLightSensor = {0x102835AF};
+	const TUid KCoverDisplay = {0x102835B0};
+	const TUid KKeypadNoSlider = {0x102835B1};
+	const TUid KCsVideoTelephony = {0x10285A22};
+	const TUid KEmergencyCallsEnabledInOfflineMode = {0x10285A23};
+	const TUid KDriveModeCanRestrictMtCalls = {0x10285A24}; 
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imgtools_os/romkiteka2/include/featureUIDs.xml	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,61 @@
+<?xml version="1.0"?>
+<!DOCTYPE featureuids SYSTEM "featureuids.dtd">
+
+<!--
+ Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+ All rights reserved.
+ This component and the accompanying materials are made available
+ under the terms of the License "Eclipse Public License v1.0"
+ which accompanies this distribution, and is available
+ at the URL "http://www.eclipse.org/legal/epl-v10.html".
+
+ Initial Contributors:
+ Nokia Corporation - initial contribution.
+
+ Contributors:
+
+ Description:
+ This file is managed by the System Design Authority (sda@symbian.com)
+ To allocate a new feature UID, please email the SDA
+
+-->
+
+
+
+<featureuids>
+	<features>
+		<!-- default present -->
+		<feature name="Fax" uid="0x10279806"/>
+		<feature name="Print" uid="0x10279807"/>
+		<feature name="Bluetooth" uid="0x10279808"/>
+		<feature name="Infrared" uid="0x10279809"/>
+		<feature name="Mmc" uid="0x1027980A"/>
+		<feature name="Usb" uid="0x1027980B"/>
+		<feature name="Obex" uid="0x1027980C"/>
+		<feature name="RtpRtcp" uid="0x1027980D"/>
+		<feature name="Sip" uid="0x1027980F"/>
+		<feature name="IPQoS" uid="0x10279812"/>
+		<feature name="NetworkQoS" uid="0x10279813"/>
+		<feature name="IPSec" uid="0x10279814"/>
+		<feature name="Dhcp" uid="0x10279815"/>
+		<feature name="Connectivity" uid="0x10279816"/>
+		<feature name="MTP" uid="0x10279817"/>
+		<!-- default not present -->
+		<feature name="Location" uid="0x10281818"/>
+		<feature name="MobileIP" uid="0x10281819"/>
+		<feature name="OfflineMode" uid="0x1028181a"/>
+		<feature name="DRM" uid="0x1028181b"/>
+		<feature name="Vibra" uid="0x102835AE"/>
+		<feature name="AmbientLightSensor" uid="0x102835AF"/>
+		<feature name="CoverDisplay" uid="0x102835B0"/>
+		<feature name="KeypadNoSlider" uid="0x102835B1"/>
+		<feature name="CsVideoTelephony" uid="0x10285A22"/>
+		<feature name="EmergencyCallsEnabledInOfflineMode" uid="0x10285A23"/>
+		<feature name="DriveModeCanRestrictMtCalls" uid="0x10285A24"/>
+	</features>
+
+	<default>
+		<!-- The following UID range is reserved for default present features -->
+		<range min="0x10279806" max="0x10281805" support="include"/> 
+	</default>
+</featureuids>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imgtools_os/romkiteka2/include/featuredatabase.xml	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,153 @@
+<?xml version="1.0"?>
+<!DOCTYPE featuredatabase SYSTEM "featuredatabase.dtd">
+
+<!--
+ Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+ All rights reserved.
+ This component and the accompanying materials are made available
+ under the terms of the License "Eclipse Public License v1.0"
+ which accompanies this distribution, and is available
+ at the URL "http://www.eclipse.org/legal/epl-v10.html".
+
+ Initial Contributors:
+ Nokia Corporation - initial contribution.
+
+ Contributors:
+
+ Description:
+ This file is managed by the System Design Authority (sda@symbian.com)
+ To allocate a new feature UID, please email the SDA
+
+-->
+
+
+
+<featuredatabase>
+	<featureset ibyname="feature.iby" hfilename="featureuids.h" namespace="NFeature">
+		<hfileheader interfacestatus="@released" interfacevisibility="@publishedAll">
+			// featureUIDs.h
+			//
+			// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).  All rights reserved.
+			//
+			// Feature UID allocations for all Symbian OS platforms
+			//
+			// This file is managed by the System Design Authority (sda@symbian.com)
+			// To allocate a new feature UID, please email the SDA
+			// 
+			// The following UID ranges are allocated for features 
+			// that default to reporting "feature present"
+			//		0x10279806 - 0x10281805
+			//
+			// All other UIDs default to reporting "feature not present"
+			//
+		</hfileheader>
+		
+		<feature name="Fax" statusflags="0x00000001" uid="0x10279806">
+			<hrhmacro exclude="SYMBIAN_EXCLUDE_FAX"/>
+		</feature>		
+		<feature name="Print" statusflags="0x00000001" uid="0x000005FF">
+			<hrhmacro exclude="SYMBIAN_EXCLUDE_PRINT"/>
+		</feature>
+		<feature name="Bluetooth" statusflags="0x00000001" uid="0x0000000C">
+			<hrhmacro exclude="SYMBIAN_EXCLUDE_BLUETOOTH"/>
+		</feature>
+		<feature name="Infrared" statusflags="0x00000001" uid="0x0000000B">
+			<hrhmacro exclude="SYMBIAN_EXCLUDE_INFRARED"/>
+		</feature>
+		<feature name="Mmc" statusflags="0x00000001" uid="0x00000001">
+			<hrhmacro exclude="SYMBIAN_EXCLUDE_MMC"/>
+		</feature>
+		<feature name="Usb" statusflags="0x00000001" uid="0x0000000D">
+			<hrhmacro exclude="SYMBIAN_EXCLUDE_USB"/>
+		</feature>
+		<feature name="Obex" statusflags="0x00000001" uid="0x1027980C">
+			<hrhmacro exclude="SYMBIAN_EXCLUDE_OBEX"/>
+		</feature>
+		<feature name="RtpRtcp" statusflags="0x00000001" uid="0x1027980D">
+			<hrhmacro exclude="SYMBIAN_EXCLUDE_RTP_RTCP"/>
+		</feature>
+		<feature name="Sip" statusflags="0x00000001" uid="0x1027980F">
+			<hrhmacro exclude="SYMBIAN_EXCLUDE_SIP"/>
+		</feature>
+		<feature name="IPQoS" statusflags="0x00000001" uid="0x10279812">
+			<hrhmacro exclude="SYMBIAN_EXCLUDE_QOS_PROTPLUGINS"/>
+		</feature>
+		<feature name="NetworkQoS" statusflags="0x00000001" uid="0x10279813">
+			<hrhmacro exclude="SYMBIAN_EXCLUDE_QOS_PROTPLUGINS"/>
+		</feature>
+		<feature name="IPSec" statusflags="0x00000001" uid="0x00000066">
+			<hrhmacro exclude="SYMBIAN_EXCLUDE_IPSEC"/>
+		</feature>
+		<feature name="Dhcp" statusflags="0x00000001" uid="0x0000006B">
+			<hrhmacro exclude="SYMBIAN_EXCLUDE_DHCP"/>
+		</feature>
+		<feature name="Connectivity" statusflags="0x00000001" uid="0x10279816">
+			<hrhmacro exclude="SYMBIAN_EXCLUDE_PC_CONNECTIVITY_EXCEPT_SECURE_BACKUP"/>
+		</feature>
+		<feature name="MTP" statusflags="0x00000001" uid="0x000001F8">
+			<hrhmacro exclude="SYMBIAN_EXCLUDE_MTP"/>
+		</feature>
+		<feature name="Location" statusflags="0x00000001" uid="0x00000072"></feature>
+		<feature name="MobileIP" statusflags="0x00000001" uid="0x10281819"></feature>
+		<feature name="OfflineMode" statusflags="0x00000001" uid="0x00000007"></feature>
+		<feature name="DRM" statusflags="0x00000001" uid="0x0000005B"></feature>
+		<feature name="Vibra" statusflags="0x00000001" uid="0x0000019B">
+			<hrhmacro exclude="SYMBIAN_EXCLUDE_VIBRA"/>
+		</feature>
+		<feature name="AmbientLightSensor" statusflags="0x00000001" uid="0x000005F9">
+			<hrhmacro exclude="SYMBIAN_EXCLUDE_AMBIENT_LIGHT_SENSOR"/>
+		</feature>
+		<feature name="CoverDisplay" statusflags="0x00000001" uid="0x00000003">
+			<hrhmacro exclude="SYMBIAN_EXCLUDE_COVER_DISPLAY"/>
+		</feature>
+		<feature name="KeypadNoSlider" statusflags="0x00000001" uid="0x000003F5">
+			<hrhmacro exclude="SYMBIAN_EXCLUDE_KEYPAD_NO_SLIDER"/>
+		</feature>
+		<feature name="LocationManagement" statusflags="0x00000001" uid="0x10279818">
+			<hrhmacro exclude="SYMBIAN_EXCLUDE_LOCATION_MANAGEMENT"/>
+		</feature>
+		<feature name="LocationAPIVariant2" statusflags="0x00000000" uid="0x10285D69">
+			<hrhmacro include="SYMBIAN_INCLUDE_LOCATION_API_VARIANT2"/>
+		</feature>
+		<feature name="BluetoothGPSPositioningPlugin" statusflags="0x00000000" uid="0x0000007A">
+			<hrhmacro include="SYMBIAN_INCLUDE_BLUETOOTH_GPS_PM"/>
+		</feature>
+		<feature name="DefaultPositioningPlugin" statusflags="0x00000000" uid="0x10285D6B">
+			<hrhmacro include="SYMBIAN_INCLUDE_DEFAULT_PM"/>
+		</feature>
+		<feature name="SimulationPositioningPlugin" statusflags="0x00000000" uid="0x10285D6C">
+			<hrhmacro include="SYMBIAN_INCLUDE_SIMULATION_PM"/>
+		</feature>
+		<feature name="LocationPrivacyRequestAPIs" statusflags="0x00000000" uid="0x102859F2">
+			<hrhmacro include="SYMBIAN_INCLUDE_LOCATION_PRIVACY_REQUEST_APIS"/>
+		</feature>
+		<feature name="LocationAdvancedDialog" statusflags="0x00000000" uid="0x102859F3">
+			<hrhmacro include="SYMBIAN_INCLUDE_LOCATION_ADVANCED_DIALOG"/>
+		</feature>
+		<feature name="CsVideoTelephony" statusflags="0x00000001" uid="0x00000059">
+			<hrhmacro exclude="SYMBIAN_EXCLUDE_CS_VIDEO_TELEPHONY"/>
+		</feature>
+		<feature name="EmergencyCallsEnabledInOfflineMode" statusflags="0x00000001" uid="0x00000126">
+			<hrhmacro exclude="SYMBIAN_EXCLUDE_EMERGENCY_CALLS_ENABLED_IN_OFFLINE_MODE"/>
+		</feature>
+		<feature name="DriveModeCanRestrictMtCalls" statusflags="0x00000001" uid="0x00000584">
+			<hrhmacro exclude="SYMBIAN_EXCLUDE_DRIVE_MODE_CAN_RESTRICT_MT_CALLS"/>
+		</feature>
+		<feature name="FmTx" statusflags="0x00000001" uid="0x000006A9">
+ 			<hrhmacro exclude="SYMBIAN_EXCLUDE_FMTX"/>
+ 		</feature>
+		<!-- PREQ 2051 - Variation Support - Start -->
+		<feature name="Libxml2" statusflags="0x00000001" uid="0x10286747">
+			<hrhmacro infeaturesetiby="no" exclude="SYMBIAN_EXCLUDE_LIBXML2"/>
+		</feature>
+		<feature name="Libxml2SAXParser" statusflags="0x00000001" uid="0x10286707">
+			<hrhmacro infeaturesetiby="no" exclude="SYMBIAN_EXCLUDE_LIBXML2_SAX_CPARSER_PLUGIN"/>
+		</feature>
+		<feature name="Libxml2DOMXPathAPI" statusflags="0x00000001" uid="0x10286727">
+			<hrhmacro infeaturesetiby="no" exclude="SYMBIAN_EXCLUDE_LIBXML2_DOM_XPATH_API"/>
+		</feature>
+		<!-- PREQ 2051 - Variation Support - End -->
+	</featureset>
+	
+	<defaultfeaturerange higheruid="0x10281805" loweruid="0x10279806"></defaultfeaturerange>
+</featuredatabase>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imgtools_os/romkiteka2/include/kerneltrace.oby	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,20 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+#define _DEBUG
+kerneltrace=0x00080000
+romname=##VARIANT##_##BUILDNO##LANGID##.kerneltrace.IMG
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imgtools_os/romkiteka2/include/pagedrom.oby	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,71 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+#if !defined PAGED_ROM
+#define PAGED_ROM
+#endif
+
+#if !defined EFFICIENT_ROM_PAGING
+// Uncomment next line if efficient rom paging is wanted.
+//#define EFFICIENT_ROM_PAGING
+#endif
+
+#if !defined USE_CODE_PAGING
+// Uncomment next line if code paging is wanted
+#define USE_CODE_PAGING
+#endif
+
+#if !defined USE_DATA_PAGING
+// Uncomment next line if Writable Data Paging is wanted.
+//#define USE_DATA_PAGING
+#endif
+
+#if !defined CODE_PAGING_FROM_ROFS
+// Uncomment next line if code paging from primary rofs is wanted
+#define CODE_PAGING_FROM_ROFS
+#endif
+
+
+// uncomment next line if device DP configuration wanted
+externaltool=configpaging
+
+#if defined EFFICIENT_ROM_PAGING
+externaltool=efficient_rom_paging
+#endif
+
+ROM_IMAGE[0] {
+//                 Min       Max        Young/Old    NAND page read   NAND page read
+//                 live      live       page ratio   delay            CPU overhead 
+//                 pages     pages                   (microseconds)   (microseconds)
+//
+demandpagingconfig 256       512        3            0                0
+
+pagingoverride defaultpaged
+
+#if defined USE_CODE_PAGING
+codepagingpolicy defaultpaged
+#endif
+
+#if defined USE_DATA_PAGING
+datapagingpolicy defaultpaged
+#endif
+}
+
+#if defined CODE_PAGING_FROM_ROFS
+ROM_IMAGE[1] {
+pagingoverride defaultpaged
+}
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imgtools_os/romkiteka2/include/pagedrom_functional.oby	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,71 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+#if !defined PAGED_ROM
+#define PAGED_ROM
+#endif
+
+#if !defined EFFICIENT_ROM_PAGING
+// Uncomment next line if efficient rom paging is wanted.
+//#define EFFICIENT_ROM_PAGING
+#endif
+
+#if !defined USE_CODE_PAGING
+// Uncomment next line if code paging is wanted
+#define USE_CODE_PAGING
+#endif
+
+#if !defined USE_DATA_PAGING
+// Uncomment next line if Writable Data Paging is wanted.
+//#define USE_DATA_PAGING
+#endif
+
+#if !defined CODE_PAGING_FROM_ROFS
+// Uncomment next line if code paging from primary rofs is wanted
+#define CODE_PAGING_FROM_ROFS
+#endif
+
+
+// uncomment next line if device DP configuration wanted
+//externaltool=configpaging
+
+#if defined EFFICIENT_ROM_PAGING
+externaltool=efficient_rom_paging
+#endif
+
+ROM_IMAGE[0] {
+//                 Min       Max        Young/Old    NAND page read   NAND page read
+//                 live      live       page ratio   delay            CPU overhead 
+//                 pages     pages                   (microseconds)   (microseconds)
+//
+demandpagingconfig 64        128        3            0                0
+
+pagingoverride defaultpaged
+
+#if defined USE_CODE_PAGING
+codepagingpolicy defaultpaged
+#endif
+
+#if defined USE_DATA_PAGING
+datapagingpolicy defaultpaged
+#endif
+}
+
+#if defined CODE_PAGING_FROM_ROFS
+ROM_IMAGE[1] {
+pagingoverride defaultpaged
+}
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imgtools_os/romkiteka2/include/pagedrom_stressed.oby	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,71 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+#if !defined PAGED_ROM
+#define PAGED_ROM
+#endif
+
+#if !defined EFFICIENT_ROM_PAGING
+// Uncomment next line if efficient rom paging is wanted.
+//#define EFFICIENT_ROM_PAGING
+#endif
+
+#if !defined USE_CODE_PAGING
+// Uncomment next line if code paging is wanted
+#define USE_CODE_PAGING
+#endif
+
+#if !defined USE_DATA_PAGING
+// Uncomment next line if Writable Data Paging is wanted.
+//#define USE_DATA_PAGING
+#endif
+
+#if !defined CODE_PAGING_FROM_ROFS
+// Uncomment next line if code paging from primary rofs is wanted
+#define CODE_PAGING_FROM_ROFS
+#endif
+
+
+// uncomment next line if device DP configuration wanted
+externaltool=configpaging:configpaging_stressed.cfg
+
+#if defined EFFICIENT_ROM_PAGING
+externaltool=efficient_rom_paging
+#endif
+
+ROM_IMAGE[0] {
+//                 Min       Max        Young/Old    NAND page read   NAND page read
+//                 live      live       page ratio   delay            CPU overhead 
+//                 pages     pages                   (microseconds)   (microseconds)
+//
+demandpagingconfig 128       128        3            0                0
+
+pagingoverride defaultpaged
+
+#if defined USE_CODE_PAGING
+codepagingpolicy defaultpaged
+#endif
+
+#if defined USE_DATA_PAGING
+datapagingpolicy defaultpaged
+#endif
+}
+
+#if defined CODE_PAGING_FROM_ROFS
+ROM_IMAGE[1] {
+pagingoverride defaultpaged
+}
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imgtools_os/romkiteka2/include/textshell.oby	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,196 @@
+#ifndef __TEXTSHELL_OBY__
+#define __TEXTSHELL_OBY__
+
+// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// This OBY File is used to build Text Shell ROM Images.
+// 
+//
+
+define OBEYFILE TextShell
+define ROMDATE	##TODAY##
+
+#define NO_METROTRK_APP // don't want metrotrk application
+#define HAS_ETHERNET	// include etherDrv, ether802, DHCP
+#define SYMBIAN_EXCLUDE_FAX
+#define SYMBIAN_EXCLUDE_IPSEC
+#define SYMBIAN_EXCLUDE_OBEX
+#ifdef SYMBIAN_SYSTEM_STATE_MANAGEMENT
+#define _SSMSTARTUPMODE 1	//for ssma boot up.
+#else
+#define _STARTUPMODE1		// for sysstart.iby
+#endif
+
+// The following 3 macros need to be removed once LibXML2 is depended 
+// by any of the component in textshell image.
+#define SYMBIAN_EXCLUDE_LIBXML2
+#define SYMBIAN_EXCLUDE_LIBXML2_SAX_CPARSER_PLUGIN
+#define SYMBIAN_EXCLUDE_LIBXML2_DOM_XPATH_API
+
+// Various workarounds to avoid dependencies on UIKON
+
+#define __TLS_IBY__			// exclude TLS
+#define __TLSPROVIDER_IBY__		// exclude TLSPROVIDER 
+#define __OBEXPROTOCOL_IBY__	// exclude obex.dll etc
+#define __WLANEAPMETHODS_IBY__	// exclude eap_tls.msy & friends
+// 
+
+#include <header.iby>				/* ROM header definitions */
+#include <base.iby>					/* The lowest-level of the operating system */
+
+#ifdef SYMBIAN_SYSTEM_STATE_MANAGEMENT
+
+#include <ssma.iby>			/*System State Management Architecture*/
+#include <ssplugins.iby>		/*System State Management Plugins*/
+
+//Include SSM optional components to enable teams to build a plain textshell rom (on the lines of DEF128306), 
+//following removal of h4_textshell_rom.oby.
+#include <amastart.iby>
+#include <aplp.iby>
+#include <shma.iby>
+#include <ssrefplugins.iby>
+#else
+#include <sysstart.iby>
+#include <sysstartconfig.iby>
+#endif // SYMBIAN_SYSTEM_STATE_MANAGEMENT
+
+#include <debug.iby>
+file=ABI_DIR\DEBUG_DIR\RUNTESTS.EXE					sys\bin\RUNTESTS.EXE
+
+
+file=ABI_DIR\DEBUG_DIR\EDISP.DLL				sys\bin\EDISP.DLL
+
+
+#ifdef FULL_WINDOWSERVER
+   ERROR TextShell ROMs currently require the Text window server //#include <wserv.iby>
+#else
+   file=ABI_DIR\DEBUG_DIR\ewsrv.EXE					sys\bin\EWSRV.EXE	fixed
+   file=ABI_DIR\DEBUG_DIR\ECONS.DLL					sys\bin\ECONS.DLL	
+#endif
+
+#include <eshell.iby>
+
+#if !defined(FULL_WINDOWSERVER)
+#include <graphics_textshell.iby>
+#endif
+
+#include <centralrepository.iby>
+	file=ABI_DIR\BUILD_DIR\abclient.dll			sys\bin\abclient.dll
+
+#include <crypto.iby>
+
+#include <c32.iby>
+#include <ecuart.iby>
+#include <irda.iby>
+#include <bluetooth.iby>
+#include <stdlib.iby>
+#include <gdi.iby>
+#include <fntstore.iby>
+#include <fbserv.iby>
+#include <bitgdi.iby>
+#include <iculayoutengine.iby>
+#include <freetype.iby>
+#include <opengles.iby>
+
+#include <printers.iby>
+
+// include enough multimedia components to keep cone happy. includes symbian optional, reference and replacable components
+#include <mmf.iby>
+#include <mmcommon.iby>
+#include <mdf.iby>
+#include <devvideo.iby>
+#include <devsound_pluginsupport.iby>
+#include <devsound_refplugin.iby>
+#ifdef SYMBIAN_MULTIMEDIA_A3FDEVSOUND
+#include <acf.iby>
+#include <a3fdevsound.iby>
+#include <acl.iby>
+#include <devsoundadaptationinfo.iby>
+#include <refacladaptation.iby>
+#include <refmmrc.iby>
+#include <a3fserverstart.iby>
+#endif // SYMBIAN_MULTIMEDIA_A3FDEVSOUND
+
+#include <traces.iby>
+#include <mmf_plugin.iby>
+#include <omxilcompref.iby>
+#ifdef SYMBIAN_MULTIMEDIA_OPENMAX_IL_V2
+#include <omxilcomp.iby>
+#endif
+#include <omxilcore.iby>
+	
+	#include <inetprotutil.iby>		/* needed for mmfcontrollerframework.dll */
+	#include <caf.iby>				/* needed for mediaclientutils.dll */
+
+
+#include <sysagent.iby>
+
+#include <network.iby>	
+	#include <dial.iby>		// needed by commsdat
+
+#include <etel.iby>
+#include <smsstack.iby>
+
+#include <etelmm.iby>
+#include <etelpckt.iby>
+#include <mmtsy.iby>
+#include <etelsat.iby>
+#include <sysawatcher.iby>
+
+#include <bafl.iby>
+#include <ecom.iby>
+#include <store.iby>
+#include <dbms.iby>
+#include <pwrcli.iby>
+#include <xml.iby>
+#include <ups.iby>
+#include <securitycommonutils.iby>
+
+/* Feature Management run-time */
+#ifdef SYMBIAN_FEATURE_MANAGER
+
+// Include both old and new components when Feature Manager enabled
+#include <featmgr.iby>
+#include <featreg.iby>
+
+#else 
+
+// Include only the original Feature Registry otherwise
+#include <featreg.iby>
+#ifndef ROM_FEATURE_MANAGEMENT
+/* Provide a default configuration file for the feature registry */ 
+data=EPOCROOT##epoc32\data\config\featreg_default.cfg    private\102744CA\featreg.cfg
+#endif
+#endif
+
+#include <testexecute.iby>		// Test Execute framework
+
+// Major unwanted extras needed to make the image link correctly
+
+#ifndef __APPARC_IBY__
+REM Satisfy unwanted references to appgrfx.dll
+#include <apparc.iby>		/* Application architecture DLLs */
+	#include <emime.iby>		/* Mime recognition */
+#endif
+
+#ifndef __CONE_IBY__
+REM Satisfy unwanted reference to cone.dll, usually for CCoeEnv::Static()
+#include <cone.iby>
+	file=ABI_DIR\BUILD_DIR\viewcli.dll		sys\bin\viewcli.dll
+		file=ABI_DIR\BUILD_DIR\viewsrv.dll		sys\bin\viewsrv.dll
+	#include <egul.iby>
+		#include <numberconversion.iby>
+#endif
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imgtools_os/romkiteka2/test/abs.var	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,9 @@
+VARIANT			abs
+
+VARIANT_HRH		/epoc32/include/test/abs.hrh
+
+BUILD_INCLUDE	set		fakeA
+BUILD_INCLUDE	append	fakeB
+
+ROM_INCLUDE 	set		/epoc32/include/test/incA
+ROM_INCLUDE 	append	/epoc32/include/test/incB
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imgtools_os/romkiteka2/test/incA/phone.hrh	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,23 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+/* phone pre-include file */
+
+#define MY_PHONE_MACRO
+
+/* end */
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imgtools_os/romkiteka2/test/incA/testA.iby	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,23 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+rem this
+rem is
+rem a
+rem dummy
+rem IBY
+rem file
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imgtools_os/romkiteka2/test/incB/testB.iby	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,23 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+rem this
+rem is
+rem a
+rem dummy
+rem IBY
+rem file
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imgtools_os/romkiteka2/test/incB/varB.oby	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,25 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+#include "testA.iby"
+#include "testB.iby"
+
+romname=result.rom
+
+file=release\armv5_abiv1\dave.dll sys\bin\dave.dll
+file=release\armv5\fred.dll sys\bin\fred.dll
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imgtools_os/romkiteka2/test/minimal.oby	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,19 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+romname=result.rom
+file=release\armv5\fred.dll sys\bin\fred.dll
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imgtools_os/romkiteka2/test/minimal.oby.out	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,4 @@
+
+romname=result.rom
+ 
+file=release\armv5\fred.dll 	"sys\bin\fred.dll"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imgtools_os/romkiteka2/test/phone.var	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,9 @@
+VARIANT			phone
+
+VARIANT_HRH		incA/phone.hrh
+
+BUILD_INCLUDE	set		fakeA
+BUILD_INCLUDE	append	fakeB
+
+ROM_INCLUDE 	set		incA
+ROM_INCLUDE 	append	incB
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imgtools_os/romkiteka2/test/release/armv5/faye.a1a2a3a4a5a6a7a8a9a0b1b2b3b4b5b6.dll	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,3 @@
+This is not actually a DLL.
+
+It is a test file... with non-zero size.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imgtools_os/romkiteka2/test/release/armv5/faye.dll.vmap	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,6 @@
+FEATUREVARIANT
+12345678901234567890123456789012	default
+a1a2a3a4a5a6a7a8a9a0b1b2b3b4b5b6	phone
+a1a2a3a4a5a6a7a8a9a0b1b2b3b4b5b6	abs
+abcdefabcdefabcdefabcdefabcdefab	vpod
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imgtools_os/romkiteka2/test/release/armv5/fred.dll	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,3 @@
+This is not actually a DLL.
+
+It is a test file... with non-zero size.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imgtools_os/romkiteka2/test/release/armv5_abiv1/dave.dll	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,3 @@
+This is not actually a DLL.
+
+It is a test file... with non-zero size.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imgtools_os/romkiteka2/test/release/armv5_abiv1/dora.c1c2c3c4c5c6c7c8c9c0d1d2d3d4d5d6.dll	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,3 @@
+This is not actually a DLL.
+
+It is a test file... with non-zero size.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imgtools_os/romkiteka2/test/release/armv5_abiv1/dora.dll.vmap	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,2 @@
+c1c2c3c4c5c6c7c8c9c0d1d2d3d4d5d6 phone
+c1c2c3c4c5c6c7c8c9c0d1d2d3d4d5d6 abs
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imgtools_os/romkiteka2/test/test.buildrom.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,179 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+my $fails = 0;
+my $total = 0;
+
+# Each test has an input OBY file and an output OBY file.
+# runTest assumes there is also a <input>.oby.out file which
+# contains the expected OBY output.
+
+# Adding a "." to the feature variant name (for example using
+# the option "-DFEATUREVARIANT=.phone") means that buildrom will
+# look for the variant file in ./phone.var rather than in the 
+# default location of EPOCROOT/epoc32/tools/variant/phone.var
+
+# test the minimal OBY file
+
+$fails += runTest("-s", "minimal.oby", "result.oby");
+$total++;
+
+# test the include path from a feature-variant OBY file
+
+$fails += runTest("-s -DFEATUREVARIANT=.phone", "var1.oby", "result.oby");
+$total++;
+
+# test the file substitutions in a feature-variant OBY file
+
+$fails += runTest("-s -DFEATUREVARIANT=.phone", "var2.oby", "result.oby");
+$total++;
+
+# test an OBY file that is on the include path from a feature-variant
+
+$fails += runTest("-s -DFEATUREVARIANT=.phone", "varB", "result.oby");
+$total++;
+
+# test that absolute paths work everywhere
+
+createDummyInclude($ENV{'EPOCROOT'} . "epoc32/include/test/abs.hrh");
+createDummyInclude($ENV{'EPOCROOT'} . "epoc32/include/test/incA/absA.iby");
+createDummyInclude($ENV{'EPOCROOT'} . "epoc32/include/test/incB/absB.iby");
+
+$fails += runTest("-s -DFEATUREVARIANT=.abs", "var3.oby", "result.oby");
+$total++;
+
+###########################################################################
+# report the results and finish
+
+print "\n\n$fails test";
+print "s" unless ($fails == 1);
+print " failed (out of $total run).\n";
+exit 0;
+
+###########################################################################
+
+sub runTest
+{
+	my $options = shift;
+	my $inFile  = shift;
+	my $outFile = shift;
+	my $expFile = "$inFile.out";
+
+	my $command = "buildrom -fm=..\\include\\featureUIDs.xml $options $inFile";
+
+	# remove the output if it already exists
+	unlink($outFile);
+
+	# run the command (it will error because we do not have everything
+	# required by rombuild, but we will get an output oby file which
+	# shows whether buildrom did the right thing or not).
+	system($command . " >nul 2>&1");
+
+	if (!open(OUTPUT, $outFile))
+	{
+		print STDERR "FAILED: $command\n\t$outFile was not created\n";
+		return 1;
+	}
+
+	if (!open(EXPECT, $expFile))
+	{
+		print STDERR "FAILED: $command\n\t$expFile was not found\n";
+		close(OUTPUT);
+		return 1;
+	}
+
+	my $outLine;
+	my $expLine;
+	my $lineNumber = 1;
+	my $outMissing = 0;
+	my $expMissing = 0;
+	my $nonMatches = 0;
+
+	while ($expLine = <EXPECT>)
+	{
+		$expLine =~ s/^\s+//;
+		$expLine =~ s/\s+$//;
+
+		if ($outLine = <OUTPUT>)
+		{
+			$outLine =~ s/^\s+//;
+			$outLine =~ s/\s+$//;
+
+			if (!($expLine eq $outLine))
+			{
+				print STDERR "FAILED: $command\n";
+				print STDERR "\texpected output line $lineNumber was:\n";
+				print STDERR "\t$expLine\n";
+				print STDERR "\tactual output line $lineNumber was:\n";
+				print STDERR "\t$outLine\n";
+				$nonMatches++;
+			}
+		}
+		else
+		{
+			$outMissing++;
+		}
+		$lineNumber++;
+	}
+	while ($outLine = <OUTPUT>)
+	{
+		$expMissing++;
+	}
+
+	close(EXPECT);
+	close(OUTPUT);
+
+	if ($nonMatches)
+	{
+		print STDERR "FAILED: $command\n";
+		print STDERR "\t$nonMatches lines did not match\n";
+		return 1;
+	}
+	if ($outMissing)
+	{
+		print STDERR "FAILED: $command\n";
+		print STDERR "\toutput file $outFile is $outMissing lines too short\n";
+		return 1;
+	}
+	if ($expMissing)
+	{
+		print STDERR "FAILED: $command\n";
+		print STDERR "\toutput file $outFile is $expMissing lines too long\n";
+		return 1;
+	}
+
+	print STDERR "OK: $command\n";
+	return 0;	# OK
+}
+
+use File::Basename;
+
+sub createDummyInclude
+{
+	my $file = shift;
+	my $dir = dirname($file);
+
+	mkdir($dir) if (!-d $dir);
+
+	if (open(FILE, ">$file"))
+	{
+		print FILE "/* test file */\n";
+		close(FILE);
+	}
+	else
+	{
+		print STDERR "could not write file $file\n";
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imgtools_os/romkiteka2/test/var1.oby	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,23 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+#include "testA.iby"
+#include "testB.iby"
+
+romname=result.rom
+file=release\armv5\fred.dll sys\bin\fred.dll
+file=release\armv5_abiv1\dave.dll sys\bin\dave.dll
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imgtools_os/romkiteka2/test/var1.oby.out	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,19 @@
+
+romname=result.rom
+
+rem this
+rem is
+rem a
+rem dummy
+rem IBY
+rem file
+
+rem this
+rem is
+rem a
+rem dummy
+rem IBY
+rem file
+
+file=release\armv5\fred.dll 	"sys\bin\fred.dll"
+file=release\armv5_abiv1\dave.dll 	"sys\bin\dave.dll"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imgtools_os/romkiteka2/test/var2.oby	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,27 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+#include "testA.iby"
+#include "testB.iby"
+
+romname=result.rom
+
+file=release\armv5\fred.dll sys\bin\fred.dll
+file=release\armv5\faye.dll sys\bin\faye.dll
+
+file=release\armv5_abiv1\dora.dll sys\bin\dora.dll
+file=release\armv5_abiv1\dave.dll sys\bin\dave.dll
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imgtools_os/romkiteka2/test/var2.oby.out	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,23 @@
+
+romname=result.rom
+
+rem this
+rem is
+rem a
+rem dummy
+rem IBY
+rem file
+
+rem this
+rem is
+rem a
+rem dummy
+rem IBY
+rem file
+
+
+file=release\armv5\fred.dll 	"sys\bin\fred.dll"
+file=release\armv5\faye.a1a2a3a4a5a6a7a8a9a0b1b2b3b4b5b6.dll 	"sys\bin\faye.dll"
+
+file=release\armv5_abiv1\dora.c1c2c3c4c5c6c7c8c9c0d1d2d3d4d5d6.dll 	"sys\bin\dora.dll"
+file=release\armv5_abiv1\dave.dll 	"sys\bin\dave.dll"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imgtools_os/romkiteka2/test/var3.oby	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,27 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+#include "absA.iby"
+#include "absB.iby"
+
+romname=result.rom
+
+file=release\armv5\fred.dll sys\bin\fred.dll
+file=release\armv5\faye.dll sys\bin\faye.dll
+
+file=release\armv5_abiv1\dora.dll sys\bin\dora.dll
+file=release\armv5_abiv1\dave.dll sys\bin\dave.dll
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imgtools_os/romkiteka2/test/var3.oby.out	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,9 @@
+
+romname=result.rom
+ 
+
+file=release\armv5\fred.dll 	"sys\bin\fred.dll"
+file=release\armv5\faye.a1a2a3a4a5a6a7a8a9a0b1b2b3b4b5b6.dll 	"sys\bin\faye.dll"
+
+file=release\armv5_abiv1\dora.c1c2c3c4c5c6c7c8c9c0d1d2d3d4d5d6.dll 	"sys\bin\dora.dll"
+file=release\armv5_abiv1\dave.dll 	"sys\bin\dave.dll"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imgtools_os/romkiteka2/test/varB.out	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,21 @@
+
+romname=result.rom
+
+rem this
+rem is
+rem a
+rem dummy
+rem IBY
+rem file
+
+rem this
+rem is
+rem a
+rem dummy
+rem IBY
+rem file
+
+
+file=release\armv5_abiv1\dave.dll 	"sys\bin\dave.dll"
+file=release\armv5\fred.dll 	"sys\bin\fred.dll"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imgtools_os/romkiteka2/tools/buildrom.txt	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,296 @@
+BUILDROM.PL extensions to the OBY language
+Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).  All rights reserved.
+
+
+0. General Comments
+
+BUILDROM processes OBY files written in a superset of the language supported by ROMBUILD.EXE,
+producing an OBY file which is directly acceptable to ROMBUILD. BUILDROM then invokes
+ROMBUILD.EXE on the final OBY file and performs a number of post-processing steps to produce a
+ROM symbol file and directory listing.
+
+BUILDROM keywords are not case-sensitive.
+
+The C++ preprocessor is applied to the file(s) before processing, and the C++ #define, #ifdef 
+and #include facilities should be used to control the inclusion and exclusion of source lines.
+The modifications to the content of those lines should be done using the BUILDROM textual 
+substitution facility.
+
+
+
+
+1. Textual Substitution
+
+BUILDROM.PL implements a simple textual substitution scheme: the C++ preprocessor can't be used
+conveniently because it inserts whitespace around the substituted text.
+
+    DEFINE name replacement
+
+All subsequent instances of "name" will be replaced by "replacement". 
+BUILDROM will also replace "##" with an empty string.
+
+There are three pre-defined substitutions
+
+    EPOCROOT    = the value of the EPOCROOT environment variable
+    TODAY       = today's date as dd/mm/yyyy
+    RIGHT_NOW   = the exact time as dd/mm/yyyy hh:mm:ss
+
+There is no "UNDEFINE" facility, and the substitutions are applied in an unspecified order.
+
+
+2. Additional Simple Keywords
+
+BUILDROM implements the following simple keywords
+
+    ECHO anything at all
+    WARNING anything at all
+    ERROR anything at all
+    ROMBUILD_OPTION command-line-option
+
+The ECHO keyword simply prints the rest of the line to standard output. The WARNING and ERROR 
+keywords report the source file and line number as well as printing the message, and any ERRORs
+will cause BUILDROM to abort without attempting to create the ROM.
+
+The ROMBUILD_OPTION keyword can be used multiple times if desired, and adds additional commandline
+parameters to the eventual invocation of ROMBUILD.EXE. It is primarily used to specify the 
+"-no-header" option for platforms which don't want the 256-byte REPRO header.
+
+
+3. Localisation Support
+
+BUILDROM implements the MULTILINGUIFY() macro that can expand a single source line into multiple
+lines referring to distinct language codes.
+
+    LANGUAGE_CODE nn
+    DEFAULT_LANGUAGE nn
+    data=MULTILINGUIFY( EXT sourcename destname )
+
+The LANGUAGE_CODE keyword can be used multiple times to specify the Symbian 2-digit codes for
+languages to be supported in this ROM. The DEFAULT_LANGUAGE keyword should be used only once.
+
+During the localisation pass, the MULTILINGUIFY lines are expanded into a line per language code,
+as follows
+
+    data=MULTILINGUIFY( EXT sourcename destname )
+
+becomes
+
+    data=sourcename.Enn destname.EXT	    for the default language code nn
+    data=sourcename.Enn destname.Enn	    for all other language codes nn
+
+This provides support for the BafUtils::NearestLanguageFile() function, which is performing a
+similar mapping from language codes to filenames.
+
+
+4. XIP ROM format bitmaps
+
+MAKMAKE normally generates EPOC MBM files in a compressed format, but there is an alternative 
+uncompressed format which allows an MBM to be used directly from the ROM filesystem. BUILDROM
+supports on-the-fly generation of ROM format MBM files from compressed MBM files using the
+BITMAP keyword as follows
+
+    BITMAP=source dest
+
+becomes
+
+    DATA=source_rom dest
+
+and source_rom is generated from source using BMCONV /q /r source_rom /msource
+
+
+If the files are already compressed then the COMPRESSED-BITMAP keyword has to be used in the same way
+
+   COMPRESSED-BITMAP=source dest
+
+becomes
+
+
+    DATA=source_rom dest
+
+in this case source_rom is generated from source using BMCONV /q /s source_rom /msource
+
+BUILDROM will use an existing source_rom file if if is newer than the corresponding source file.
+
+
+4.1 XIP and Non-XIP ROM format bitmaps
+
+BUILDROM provides a keyword to automatically select between XIP and non-XIP versions of bitmaps.
+This is used when it is not known by the application author if the bitmap is to be included in
+an XIP or non-XIP ROM.
+
+	AUTO-BITMAP=source dest
+
+This keyword will use "compressed-bitmap=" for XIP ROMs and "data=" for non-XIP ROMs.
+
+
+4.2 XIP and non-XIP ROM format AIF files
+
+A keyword is provided to automatically select between XIP and non-XIP versions of AIF files.
+
+	AIF=source dest
+
+This keyword will use the _xip version of the specified AIF for XIP ROMs or the originaly supplied file
+otherwise.
+
+
+5. Source reorganisation for two-section ROMs
+(see also section 8 "ROM Configuration support").
+
+ROMBUILD.EXE has the ability to create ROMs divided into two sections, such that the upper section 
+can be replaced without needing to change the lower section. This facility is most often used to
+put localised resource files into the upper section, so BUILDROM provides support for gathering
+marked OBY source lines and placing them in the upper section of the ROM.
+
+    SECTION2 anything
+
+All lines beginning with the SECTION2 keyword are removed from the OBY file, and placed into 
+a separate list with the SECTION2 keyword removed. When BUILDROM encounters the SECTION keyword, 
+the accumulated section2 list is inserted after the SECTION line, and subsequent SECTION2 keywords
+are removed as they occur. If no SECTION line is encountered, the accumulated section2 list is
+emitted after the end of the input file(s).
+
+
+6. Elaborate Example
+
+For example:
+
+    LANGUAGE_CODE 01
+    LANGUAGE_CODE 10
+    DEFAULT_LANGUAGE 10
+
+    file=sourcedir\myapp.dll destdir\myapp.dll
+    SECTION2 REM bitmaps for myapp
+    SECTION2 bitmap=MULTILINGUIFY( MBM sourcedir\myapp destdir\myapp )
+    file=sourcedir\myengine.dll destdir\myengine.dll
+
+    section 0x800000
+
+    file=sourcedir\example destdir\example
+    SECTION2 data=sourcedir\example2 destdir\example2
+
+would become
+    
+    file=sourcedir\myapp.dll destdir\myapp.dll
+    file=sourcedir\myengine.dll destdir\myengine.dll
+
+    section 0x800000
+    REM bitmaps for myapp
+    data=sourcedir\myapp.M01_rom destdir\myapp.M01
+    data=sourcedir\myapp.M10_rom destdir\myapp.MBM
+
+    file=sourcedir\example destdir\example
+    data=sourcedir\example2 destdir\example2
+
+
+
+7. Problem suppression
+
+BUILDROM does a number of things which probably aren't appropriate for producing production devices, 
+but which increase the chance of Symbian internal development builds producing a ROM in the
+presence of build problems.
+
+    ABI_DOWNGRADE   from->to
+
+The ABI_DOWNGRADE keyword allows BUILDROM to substitute a compatible executable if the specified
+source file is not available. It is usually used as
+
+    ABI_DOWNGRADE   THUMB->ARMI
+
+and will substitute \ARMI\ for \THUMB\ if a specified source file can't be found.
+
+In the localisation support, problem suppression allows BUILDROM to handle a missing source.Enn 
+file by specifying source.EXT instead.
+
+In a final pass, if any file is still not available after applying these downgrades then BUILDROM
+will simply comment out the line in the OBY file, in the hope that the missing file is not vital
+to the ROM. If this behaviour is not required the command line option -s can be used to enforce
+stricter behaviour and cause BUILDROM to terminate after the final pass. 
+
+
+8.  Rom configuration support
+
+BUILDROM has ROM configuration features to support building of multiple xip and non-xip
+ROMs for the same device.
+
+8.1 First you must specify the ROM devices
+The ROM_IMAGE keyword specifies a ROM image.  There can be up to 8 images.
+
+Syntax:
+ROM_IMAGE <id> <name> [size=<rom max size>] [xip | non-xip] [compress | no-compress] [extension]
+where:
+id = 0 .. 7
+name = a name suitable as a suffix for the ROM image, oby and logs
+xip = specifies an XIP ROM.  This is the default.
+size = max size of the ROM.  Not required for XIP roms.
+compress = Compress an XIP ROM.
+extension = Indicates this image as an extension to the previous image.
+
+8.2 Including files
+8.2.1 To mark a file for inclusion in a ROM it is prefixed with the keyword
+ROM_IMAGE[<id>]
+eg.
+ROM_IMAGE[2] data=ZSYSTEM\Apps\Calc\calc.INSTCOL_MBM 	    System\Apps\Calc\Calc.mbm
+
+8.2.2 A Block of files can be included using '{' '}' braces.
+eg.
+ROM_IMAGE[2] {
+#include "calc.iby"
+#include "word.iby"
+}
+
+8.2.3 File blocks can be nested eg.
+ROM_IMAGE[2] {
+	#include "calc.iby"
+	ROM_IMAGE[0] {
+		#include "word.iby"
+	}
+	#include "video.iby"
+}
+
+
+8.3 Automatic generation of extension header for XIP ROM
+
+If the ROM_IMAGE specifices an XIP image with an extension, than the following header
+will automatically be added to the obey file. 
+
+extensionrom=<name>
+romsize=<rom max size>
+
+The <name> and <rom max size> are as specified in the ROM_IMAGE keyword. 
+
+The addition of the header will result in rombuild tool producing multiple images
+from the obey file.
+
+9. Strict checking of missing files.
+
+BUILDROM will normally ignore any missing files specified in the obey files. To
+prevent the generation of the ROM when files are missing the -s option is used. This
+ensures that BUILDROM terminates after all the files have been checked and some are
+found missing. The error message indicates how many files are missing.
+
+10. Tests for strict checking and automatic generation of extension header for XIP ROM.
+
+The following tests are executed to check that functionality for
+strict checking of missing files (section 9) and automatic generation
+of extension header for XIP ROM (section 8.3) functions correctly.
+
+Test 1 : Buildrom normal behaviour with missing files.
+
+This test shows that if files are missing then the rom image is still
+generated if the -strict option is not used. The test involves
+renaming some files so that the standard obey file cannot find them.
+Run buildrom and then check that the appropriate files are reported as
+missing and that rom image is generated.
+
+Test 2 : Buildrom missing files behaviour with strict option
+
+This test shows that if the files are missing and the strict option is
+selected then buildrom terminates the generation of the rom image and
+reports the missing files.
+
+Test 3 : Produce a kernel rom image with extension rom
+
+This test shows that if an extension rom is specified in the obey file
+then the obey file generated by buildrom contains the correct header
+information to generate an extension rom.
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imgtools_os/romkiteka2/tools/cdf.dtd	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,46 @@
+<!ELEMENT component     (localisation?,file+)>
+<!ATTLIST component id  CDATA #REQUIRED >
+
+<!ELEMENT file          (source,        destination,
+                         localisation?, options? ,
+                         features?,     dynamicDependencies?)>
+<!ATTLIST file
+        id              CDATA #REQUIRED
+        customisable    (true|false) #IMPLIED
+        addressable     (xip|nonxip|dontcare) #IMPLIED
+        compress        (unchanged|compress|uncompress) #IMPLIED
+        type            (normal|bitmap|compressedbitmap|autobitmap|aif|plugin) #IMPLIED
+	plugin_name	CDATA #IMPLIED>
+
+<!ELEMENT source        (#PCDATA)>
+<!ELEMENT destination   (#PCDATA)>
+<!ELEMENT features      (supports?,prevents?)>
+<!ELEMENT supports      (feature+)>
+<!ELEMENT prevents      (feature+)>
+
+<!ELEMENT feature       EMPTY>
+<!ATTLIST feature uid   CDATA #IMPLIED
+                  name  CDATA #IMPLIED>
+
+<!ELEMENT dynamicDependencies (depend+)>
+<!ELEMENT depend        (#PCDATA)>
+<!ELEMENT localisation  (default, language*)>
+<!ELEMENT default       (#PCDATA)>
+<!ELEMENT language      (#PCDATA)>
+<!ELEMENT options       ((multilinguify | stack         | heapmin  |
+                          heapmax       | fixed         | priority |
+                          uid1          | uid2          | uid3     | 
+                          dll           | dlldatatop )+)>
+
+<!ELEMENT multilinguify (#PCDATA)>
+
+<!ELEMENT stack         (#PCDATA)>
+<!ELEMENT heapmin       (#PCDATA)>
+<!ELEMENT heapmax       (#PCDATA)>
+<!ELEMENT fixed         (#PCDATA)>
+<!ELEMENT priority      (#PCDATA)>
+<!ELEMENT uid1          (#PCDATA)>
+<!ELEMENT uid2          (#PCDATA)>
+<!ELEMENT uid3          (#PCDATA)>
+<!ELEMENT dll           (#PCDATA)>
+<!ELEMENT dlldatatop    (#PCDATA)>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imgtools_os/romkiteka2/tools/configpaging/configpaging.cfg	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,27 @@
+#
+# System config v1.0
+#
+
+#
+# To set the default setting use:
+#	defaultpaged
+# Or
+#	defaultunpaged
+#
+# This will override the paged/unpaged flags in executables and any paged/unpaged attributes in iby files.
+# Do not use a default setting if the existing paged/unpaged flags/attributes are to be respected.
+#
+# To mark executables as not pageable use:
+#	<executable regex> unpaged
+# Or
+#	unpaged:
+#	<executable regex>
+#	<executable regex> 
+#
+# To include other configuration files within this configuration file use:
+#	include "<includefile>"
+#
+# Included files will be processed before the remaining lines of the parent file are processed. Included files
+# can themselves include other other files.
+
+include "configpaging_recommended.cfg"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imgtools_os/romkiteka2/tools/configpaging/configpaging_recommended.cfg	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,144 @@
+#
+# This file contains those files that are recommended to be unpaged to maintain performance 
+# in demand paging ROMs.
+#
+# unpaged - recommended
+#
+unpaged:
+animation.dll
+animationserver.dll
+animationshared.dll
+animators.dll
+bmpanim.dll
+bmpansrv.dll
+clocka.dll
+cone.dll
+gfxtrans.dll
+gfxtransadapter.dll
+domainpolicy2.dll
+sysstart.exe
+viewcli.dll
+viewsrv.dll
+domaincli.dll
+domainpolicy.dll
+domainsrv.exe
+exstart.dll
+e32strt.exe
+elocl.01
+elocl.02
+elocl.03
+elocl.04
+elocl.05
+elocl.10
+elocl.18
+elocl.19
+elocl.29
+elocl.31
+elocl.32
+elocl.sc
+elocl.loc
+_h4hrp_e32strt.exe
+_h4hrp_e32strt_me.exe
+remconavrcpstatusconverter.dll
+remconstatusapi.dll
+btcomm.csy
+btextnotifiers.dll
+hciproxy.dll
+btmanserver.exe
+bnep.drv
+panagt.agt
+panhelper.dll
+remconextapi1.dll
+sdpagent.dll
+sdpdatabase.dll
+sdpserver.exe
+mrouteragent.agt
+linebreak.dll
+iculayoutengine.dll
+libgles_cm.dll
+egldisplayproperty.dll
+remotegc.dll
+infra-red.prt
+ircomm.csy
+irda.dll
+irdialbca.dll
+irtranp.dll
+msgs.dll
+watcher.exe
+deflatecomp.dll
+sdpcodec.dll
+sigcomp.dll
+sipclient.dll
+sipcodec.dll
+sipdigest.dll
+sipgprsmon.dll
+siph2lanbearermonitor.dll
+sipietfagnt.dll
+sipimsagnt.dll
+sipipsec.dll
+sipprofile.dll
+sipprofilecli.dll
+sipprofilefsm.dll
+sipprofilesrv.exe
+sipproxyrsv.dll
+sipreqhand.dll
+sipresolver.dll
+siprsvclient.dll
+siprsvsrv.exe
+sipserver.exe
+sipsigcomp.dll
+siptls.dll
+sipcpr.dll
+sipdummyprt.prt
+sipparams.dll
+sipscpr.dll
+sipstatemachine.dll
+bitmaptransforms.dll
+bitmaptransformsrefplugin.dll
+imageconversion.dll
+jpegcodec.dll
+jpegexifplugin.dll
+jpegimageframeplugin.dll
+recicl.dll
+iclwrapperimagedisplay.dll
+imagedisplay.dll
+imagedisplayresolver.dll
+imagetransform.dll
+recmmf.dll
+mmruf.dll
+gsmu.dll
+smsprot.prt
+smsu.dll
+wapprot.prt
+cdmasms.prt
+cdmau.dll
+cdmawapprot.prt
+dhcpserv.exe
+netcfgextndhcp.dll
+obex.dll
+obexbtrfcommtransportcontroller.dll
+obexcommontransport.dll
+obexirdattptransportcontroller.dll
+obexusbtransportcontroller.dll
+obexextensionapis.dll
+randsvr.exe
+swtlstokentypeplugin.dll
+tlscacheclient.dll
+tlscacheserver.exe
+tlsprovider.dll
+acmclasscontroller.dll
+msclasscontroller.dll
+obexclasscontroller.dll
+usbclasscontroller.dll
+whcmclasscontroller.dll
+bafl.dll
+centralrepository.dll
+centralrepositorysrv.exe
+charconv.dll
+ecom.dll
+ecomserver.exe
+ecompatchdata.dll
+estlib.dll
+indicatorwatcher.dll
+signalstrengthwatcher.dll
+telwatcherbase.dll
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imgtools_os/romkiteka2/tools/configpaging/configpaging_stressed.cfg	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,33 @@
+#
+# Stressed paging configuration
+#
+
+#
+# To set the default setting use:
+#	defaultpaged
+# Or
+#	defaultunpaged
+#
+# This will override the paged/unpaged flags in executables and any paged/unpaged attributes in iby files.
+# Do not use a default setting if the existing paged/unpaged flags/attributes are to be respected.
+#
+# To mark executables as not pageable use:
+#	<executable regex> unpaged
+# Or
+#	unpaged:
+#	<executable regex>
+#	<executable regex> 
+#
+# To include other configuration files within this configuration file use:
+#	include "<includefile>"
+#
+# Included files will be processed before the remaining lines of the parent file are processed. Included files
+# can themselves include other other files.
+
+defaultpaged
+
+#
+# mandatory locked-down list. This should only contain executables that use realtime APIs and their
+# dependencies, which would otherwise panic if they took a page fault
+#
+#unpaged:
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imgtools_os/romkiteka2/tools/featuredatabase.dtd	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,38 @@
+<!ELEMENT hrhmacro EMPTY>
+<!ATTLIST hrhmacro
+	exclude CDATA #IMPLIED
+	include CDATA #IMPLIED
+	infeaturesetiby CDATA #IMPLIED>
+	
+<!ELEMENT hfileheader (#PCDATA)>
+<!ATTLIST hfileheader
+	interfacestatus CDATA #REQUIRED
+	interfacevisibility CDATA #REQUIRED>
+	
+<!ELEMENT featureset ((hfileheader?, (featureoverride|feature)+))>
+<!ATTLIST featureset
+	hfilename CDATA #IMPLIED
+	ibyname CDATA #IMPLIED
+	namespace CDATA #IMPLIED>
+	
+<!ELEMENT featuredatabase ((featureset+, defaultfeaturerange*))>
+<!ELEMENT feature ((hrhmacro?, comment?))>
+<!ATTLIST feature
+	name CDATA #REQUIRED
+	statusflags CDATA #REQUIRED
+	uid CDATA #REQUIRED
+	userdata CDATA #IMPLIED>
+
+<!ELEMENT featureoverride ((hrhmacro?, comment?))>
+<!ATTLIST featureoverride
+	name CDATA #REQUIRED
+	statusflags CDATA #IMPLIED
+	uid CDATA #REQUIRED
+	userdata CDATA #IMPLIED>	
+	
+<!ELEMENT defaultfeaturerange ((comment?))>
+<!ATTLIST defaultfeaturerange
+	higheruid CDATA #REQUIRED
+	loweruid CDATA #REQUIRED>
+	
+<!ELEMENT comment (#PCDATA)>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imgtools_os/romkiteka2/tools/featureuids.dtd	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,16 @@
+<!ELEMENT featureuids   (features,default)>
+<!ELEMENT features      (feature+)>
+<!ELEMENT feature       EMPTY>
+
+<!ATTLIST feature
+        name            CDATA #REQUIRED
+        uid             CDATA #REQUIRED
+        installable     (true|false) #IMPLIED>
+
+<!ELEMENT default       (range+)>
+<!ELEMENT range         EMPTY>
+<!ATTLIST range
+        min             CDATA #REQUIRED
+        max             CDATA #REQUIRED
+        support         (include|exclude) #REQUIRED>
+        
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imgtools_os/romkiteka2/tools/imageContent.dtd	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,73 @@
+<!ELEMENT imageContent  (version?, romchecksum?, time?, 
+                         options?, romgeometry, romtarget, romscope?)+>
+
+<!ELEMENT version       (#PCDATA)>
+<!ELEMENT romchecksum   (#PCDATA)>
+<!ELEMENT time          (#PCDATA)>
+<!ELEMENT romgeometry   (image+)>
+<!ELEMENT romtarget     (target+)>
+<!ELEMENT romscope      ((obyFile|cdf)+)>
+
+<!ELEMENT options       ((binaryselectionorder | trace       | bootbinary    |
+                          dataaddress          | debugport   | 
+                          defaultstackreserve  | device      | 
+                          wrapper              | kernel      | primary+      | 
+                          secondary+           | romalign    | romlinearbase | 
+                          variant              | autosize    | extension     | coreimage)+)>
+
+<!ELEMENT binaryselectionorder (#PCDATA)>
+<!ELEMENT trace         (#PCDATA)>
+<!ELEMENT bootbinary    (#PCDATA)>
+<!ELEMENT wrapper       (#PCDATA)>
+<!ATTLIST wrapper type  (none|epoc|coff) #REQUIRED>
+
+<!ELEMENT kernel        (dataaddress, heapmax, heapmin, name, trace?)>
+<!ATTLIST kernel number (single|multi) #IMPLIED>
+
+<!ELEMENT heapmax   (#PCDATA)>
+<!ELEMENT heapmin   (#PCDATA)>
+<!ELEMENT name   (#PCDATA)>
+
+<!ELEMENT dataaddress   (#PCDATA)>
+<!ELEMENT debugport     (#PCDATA)>
+<!ELEMENT defaultstackreserve   (#PCDATA)>
+<!ELEMENT device        (file+)>
+<!ELEMENT primary       (file+)>
+<!ELEMENT secondary     (file+)>
+<!ELEMENT variant       (file+)>
+<!ELEMENT extension     (file+)>
+<!ELEMENT romalign      (#PCDATA)>
+<!ELEMENT romlinearbase (#PCDATA)>
+<!ELEMENT autosize      (#PCDATA)>
+<!ELEMENT coreimage     (#PCDATA)>
+
+<!ELEMENT file       (source,destination,fixed?)>
+<!ATTLIST file
+	   id CDATA #REQUIRED>
+<!ELEMENT source       (#PCDATA)>
+<!ELEMENT destination  (#PCDATA)>
+<!ELEMENT fixed	       (#PCDATA)>
+
+
+<!ELEMENT image         (partition?)>
+<!ATTLIST image
+        id              CDATA #REQUIRED
+        name            CDATA #REQUIRED
+        type            (xip|nonxip) #REQUIRED
+        compression     (compress|nocompress) #IMPLIED
+        extension       (yes|no) "no"
+        size            CDATA #REQUIRED>
+
+<!ELEMENT target        (include,exclude?)>
+<!ATTLIST target imageid CDATA #REQUIRED>
+<!--- target imageid of any allowed where it there is no constraints on 
+      which image the files should be placed. -->
+<!ELEMENT include       ((feature|obyFile|cdf)+)>
+<!ELEMENT exclude       (feature+)>
+<!ELEMENT partition     (#PCDATA)>
+<!ELEMENT feature       EMPTY>
+<!ATTLIST feature name  CDATA #IMPLIED
+                  uid   CDATA #IMPLIED>
+<!ELEMENT obyFile       (#PCDATA)>
+<!ELEMENT cdf           (#PCDATA)>
+<!ATTLIST cdf type      (file|dir) "file">
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/misccomponents/emulatorlauncher/group/bld.inf	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,26 @@
+// Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+PRJ_PLATFORMS
+TOOLS
+
+PRJ_EXPORTS
+..\perl\epoc.bat		\epoc32\tools\epoc.bat
+..\perl\epoc.pl			\epoc32\tools\epoc.pl
+..\perl\eshell.bat		\epoc32\tools\eshell.bat
+..\perl\eshell.pl		\epoc32\tools\eshell.pl
+..\perl\console.ini		\epoc32\data\console.ini
+..\perl\console.bmp		\epoc32\data\console.bmp
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/misccomponents/emulatorlauncher/group/location.txt	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,6 @@
+The content of emulator_launcher is:
+
+perl	Perl scripts and batch files for all tools.
+group	Information and build files.
+test    Sample build.info files.
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/misccomponents/emulatorlauncher/group/release.txt	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,6 @@
+Made by JonC 14/05/01
+
+Introduction of emulator_launcher component for the 6.1 SDKs i.e. these are the stub launchers
+that were present on the 6.0 SDKs, together with a new launcher for pepoc.
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/misccomponents/emulatorlauncher/group/todo.txt	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,7 @@
+Todo for :
+
+
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/misccomponents/emulatorlauncher/group/tools_sdk_eng_emulator_launcher.history.xml	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<relnotes name="EMULATOR_LAUNCHER">
+  <purpose>
+  </purpose>
+</relnotes>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/misccomponents/emulatorlauncher/group/tools_sdk_eng_emulator_launcher.mrp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,16 @@
+component	tools_sdk_eng_emulator_launcher
+source	\sf\os\buildtools\misccomponents\emulatorlauncher
+binary	\sf\os\buildtools\misccomponents\emulatorlauncher\group	all
+exports	\sf\os\buildtools\misccomponents\emulatorlauncher\group
+notes_source	\component_defs\release.src
+
+#Intermediate files for tools target
+#binary	\epoc32\release\tools\rel\pjava.exe
+#binary	\epoc32\release\tools\rel\pjava_g.exe
+#binary	\epoc32\release\tools\rel\pappletviewer.exe
+#binary	\epoc32\release\tools\rel\pappletviewer_g.exe
+
+
+
+ipr T 
+
Binary file misccomponents/emulatorlauncher/perl/console.bmp has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/misccomponents/emulatorlauncher/perl/console.ini	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,31 @@
+# Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+ScreenWidth 640
+ScreenHeight 240
+
+PhysicalScreenWidth 0
+PhysicalScreenHeight 0
+
+fasciabitmap  console.bmp
+
+ScreenOffsetX 0
+ScreenOffsetY 0
+
+
+# could be decreased to reflect the amount of memory available on Brutus
+MegabytesOfFreeMemory	16
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/misccomponents/emulatorlauncher/perl/epoc.bat	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,20 @@
+@echo off
+
+rem Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies).
+rem All rights reserved.
+rem This component and the accompanying materials are made available
+rem under the terms of "Eclipse Public License v1.0"
+rem which accompanies this distribution, and is available
+rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+rem
+rem Initial Contributors:
+rem Nokia Corporation - initial contribution.
+rem
+rem Contributors:
+rem
+rem Description:
+rem Emulator Launcher
+rem 
+rem
+
+perl -S epoc.pl %1 %2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/misccomponents/emulatorlauncher/perl/epoc.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,256 @@
+# Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Launcher for the Symbian Emulator, including
+# functionality to read the $ENV{EPOCROOT}epoc32\data\BuildInfo.txt
+# file to find out information regarding the current Emulator.
+# Depends on the current working directory providing
+# the drive of the currently used SDK.
+# 
+#
+
+use Cwd;
+
+#
+# Check the argument(s), if any.
+#
+$numArgs = $#ARGV + 1;
+
+if($numArgs == 0) 
+	{
+    	&launchEmulator("udeb","winscw");
+    	exit(0);
+	}
+
+if($numArgs > 2) 
+	{
+    	&printHelp;
+    	die "ERROR: Too many arguments.\n";
+	}
+
+if($numArgs == 1)
+	{ 
+	if(lc($ARGV[0]) eq "-rel") 
+		{
+    		&launchEmulator("urel","winscw");
+    		exit(0);
+		}
+
+	if (lc($ARGV[0]) eq "-version") 
+		{
+    		&printVersion;
+    		exit(0);
+		}
+
+	if(lc($ARGV[0]) eq "-wins") 
+		{
+    		&launchEmulator("udeb", "wins");
+    		exit(0);
+		}
+
+	if(lc($ARGV[0]) eq "-winscw") 
+		{
+    		&launchEmulator("udeb", "winscw");
+    		exit(0);
+		}
+
+	if(lc($ARGV[0]) eq "-help") 
+		{
+    		&printHelp;
+    		exit(0);
+		}
+	}
+
+if ($numArgs == 2)
+	{
+	if(lc($ARGV[0]) eq "-rel") 
+		{
+		if (lc($ARGV[1]) eq "-wins")
+			{
+    			&launchEmulator("urel","wins");
+    			exit(0);
+			}
+
+		if (lc($ARGV[1]) eq "-winscw")
+			{
+    			&launchEmulator("urel","winscw");
+    			exit(0);
+			}
+		}	
+	
+	if (lc($ARGV[0]) eq "-winscw")
+		{
+		if (lc($ARGV[1] eq "-rel"))
+			{
+			&launchEmulator("urel","winscw");
+			exit(0);	
+			}
+		}
+	
+	if (lc($ARGV[0]) eq "-wins")
+		{
+		if (lc($ARGV[1] eq "-rel"))
+			{
+			&launchEmulator("urel","wins");
+			exit(0);	
+			}
+		}	
+	}
+
+# Error, unknown argument.
+&printHelp;
+die "ERROR: Unknown argument " . "\"" . $ARGV[0] . "\".\n";
+
+sub launchEmulator
+{
+    my ($type,$win) = @_;
+
+    my $epocroot = &getEpocroot;
+    my $drive = &getDrive;
+    my $emu = $drive . $epocroot . "epoc32" . "\\" 
+	      . "release\\" . $win . "\\" . $type . "\\" . "epoc.exe";
+    -e $emu ||
+	die "ERROR: File \"$emu\" not found.\n\n" .
+	    "The EPOCROOT environment variable does not identify\n" .
+	    "a valid Symbian emulator installation on this drive.\n" . 
+		"EPOCROOT must be an absolute path to an existing\n" .
+		    "directory - it should have no drive qualifier and\n" .
+			"must end with a backslash.\n";
+    # If the execute is successful, this never returns.
+    exec("\"" . $emu . "\"") || die "Failed to execute the emulator \"$emu\": $!";
+}
+
+sub printHelp
+{
+    print "Symbian Platform Emulator Launcher\n";
+    print "Syntax :\tepoc [-rel] [-wins|-winscw] [-version] [-help]\n";
+    print "(no options)\tLaunch active winscw debug emulator\n";
+    print "-rel\t\tLaunch active release emulator\n";
+    print "-wins\t\tLaunch active wins emulator\n";
+    print "-winscw\t\tLaunch active winscw emulator\n";
+    print "-version\tDisplay active emulator details\n";
+    print "-help\tOutput this help message\n";
+}
+
+sub printVersion
+{
+    my $epocroot = &getEpocroot;
+    my $drive = &getDrive;
+
+    my $binfo = $drive . $epocroot . "epoc32" . "\\" 
+	        . "data" . "\\" . "BuildInfo.txt";
+
+    -e $binfo || die "ERROR: File \"" . $binfo . "\" does not exist.\n";
+    open(IFILE, $binfo) ||
+	die "ERROR: Failed to open file \"" . $binfo . "\": $!";
+
+    my $DeviceFamily = "";
+    my $DeviceFamilyRev = "";
+    my $ManufacturerSoftwareRev = "";
+    my $ManufacturerSoftwareBuild = "";
+
+    while(<IFILE>) {
+	if(/DeviceFamily\s+(.*\S)\s*$/i) {
+	    $DeviceFamily = $1;
+	}
+	if(/DeviceFamilyRev\s+(.*\S)\s*$/i) {
+	    $DeviceFamilyRev = $1;
+	}
+	if(/ManufacturerSoftwareRev\s+(.*\S)\s*$/i) {
+	    $ManufacturerSoftwareRev = $1;
+	}
+	if(/ManufacturerSoftwareBuild\s+(.*\S)\s*$/i) {
+	    $ManufacturerSoftwareBuild = $1;
+	}
+    }
+
+    close(IFILE);
+
+    #
+    # Verify that we got everything we should have.
+    #
+    $DeviceFamily ne "" ||
+	die "ERROR: Device family not specified in file \"" . $binfo .
+	    "\".\n";
+    $DeviceFamilyRev ne "" ||
+	die "ERROR: Device family revision not specified in file \"" . $binfo .
+	    "\".\n";
+    $ManufacturerSoftwareBuild ne "" ||
+	die "ERROR: Manufacturer software build not specified in file \"" .
+	    $binfo . "\".\n";
+
+    $Revision = (($ManufacturerSoftwareRev eq "")?($DeviceFamilyRev):
+		 ($ManufacturerSoftwareRev));
+
+    $DeviceFamily = getDFRDName($DeviceFamily);
+
+    #
+    # Make the standard revision representation prettier,
+    # but leave other representations untouched.
+    #
+    if($Revision =~ /^0x([0-9])([0-9][0-9])$/) {
+	$Revision = $1 . "." . $2;
+    }
+   
+    print $DeviceFamily . " " .
+	"version " . $Revision . " " .
+	    "build " . $ManufacturerSoftwareBuild . "\n";
+}
+
+#
+# Determines, validates, and returns EPOCROOT.
+#
+sub getEpocroot
+{
+    my $epocroot = $ENV{EPOCROOT};
+    die "ERROR: Must set the EPOCROOT environment variable.\n"
+	if (!defined($epocroot));
+    $epocroot =~ s-/-\\-go;	# for those working with UNIX shells
+    die "ERROR: EPOCROOT must be an absolute path, " .
+	"not containing a drive letter.\n" if ($epocroot !~ /^\\/);
+    die "ERROR: EPOCROOT must not be a UNC path.\n" if ($epocroot =~ /^\\\\/);
+    die "ERROR: EPOCROOT must end with a backslash.\n" if ($epocroot !~ /\\$/);
+    die "ERROR: EPOCROOT must specify an existing directory.\n" 
+	if (!-d $epocroot);
+    return $epocroot;
+}
+
+#
+# Determines and returns the current drive, if any.
+#
+sub getDrive
+{
+    my $wd = cwd;
+    my $drive;
+    if($wd =~ /^([a-zA-Z]:)/) {
+	$drive = $1;
+    } else {
+	# Perhaps we're on a machine that has no drives.
+	$drive = "";
+    }
+    return $drive;
+}
+
+#
+# The DFRD may be represented by a numeric value, as defined by HAL.
+# Changes known numeric values to the name of the DFRD,
+# and leaves all other values untouched.
+#
+sub getDFRDName
+{
+    my $dfrd = shift;
+    return "Crystal" if $dfrd eq "0";
+    return "Pearl" if $dfrd eq "1";
+    return "Quartz" if $dfrd eq "2";
+    return $dfrd; # as fallback
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/misccomponents/emulatorlauncher/perl/eshell.bat	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,20 @@
+@echo off
+
+rem Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies).
+rem All rights reserved.
+rem This component and the accompanying materials are made available
+rem under the terms of "Eclipse Public License v1.0"
+rem which accompanies this distribution, and is available
+rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+rem
+rem Initial Contributors:
+rem Nokia Corporation - initial contribution.
+rem
+rem Contributors:
+rem
+rem Description:
+rem Eshell Launcher
+rem 
+rem
+
+perl -S eshell.pl %1 %2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/misccomponents/emulatorlauncher/perl/eshell.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,170 @@
+# Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Eshell Launcher
+# Depends on the current working directory providing
+# the drive of the currently used SDK.
+# 
+#
+
+use Cwd;
+
+#
+# Check the argument(s), if any.
+#
+$numArgs = $#ARGV + 1;
+
+if($numArgs == 0) 
+	{
+    	&launchEshell("udeb","winscw");
+    	exit(0);
+	}
+
+if($numArgs > 2) 
+	{
+    	&printHelp;
+    	die "ERROR: Too many arguments.\n";
+	}
+
+if($numArgs == 1)
+	{ 
+	if(lc($ARGV[0]) eq "-rel") 
+		{
+    		&launchEshell("urel","winscw");
+    		exit(0);
+		}
+
+	if(lc($ARGV[0]) eq "-wins") 
+		{
+    		&launchEshell("udeb", "wins");
+    		exit(0);
+		}
+
+	if(lc($ARGV[0]) eq "-winscw") 
+		{
+    		&launchEshell("udeb", "winscw");
+    		exit(0);
+		}
+
+	if(lc($ARGV[0]) eq "-help") 
+		{
+    		&printHelp;
+    		exit(0);
+		}
+	}
+
+if ($numArgs == 2)
+	{
+	if(lc($ARGV[0]) eq "-rel") 
+		{
+		if (lc($ARGV[1]) eq "-wins")
+			{
+    			&launchEshell("urel","wins");
+    			exit(0);
+			}
+
+		if (lc($ARGV[1]) eq "-winscw")
+			{
+    			&launchEshell("urel","winscw");
+    			exit(0);
+			}
+		}	
+	
+	if (lc($ARGV[0]) eq "-winscw")
+		{
+		if (lc($ARGV[1] eq "-rel"))
+			{
+			&launchEshell("urel","winscw");
+			exit(0);	
+			}
+		}
+	
+	if (lc($ARGV[0]) eq "-wins")
+		{
+		if (lc($ARGV[1] eq "-rel"))
+			{
+			&launchEshell("urel","wins");
+			exit(0);	
+			}
+		}	
+	}
+
+# Error, unknown argument.
+&printHelp;
+die "ERROR: Unknown argument " . "\"" . $ARGV[0] . "\".\n";
+
+sub launchEshell
+{
+    my ($type,$win) = @_;
+    $epocroot = &getEpocroot;
+    $drive = &getDrive;
+    $emu = $drive . $epocroot . "epoc32" . "\\" 
+	. "release\\" . $win . "\\" . $type . "\\" . "eshell.exe";
+    -e $emu ||
+	die "ERROR: File \"$emu\" not found.\n\n" .
+	    "The EPOCROOT environment variable does not identify\n" .
+	    "a valid eshell installation on this drive.\n" . 
+		"EPOCROOT must be an absolute path to an existing\n" .
+		    "directory - it should have no drive qualifier and\n" .
+			"must end with a backslash.\n";
+
+	#add the stuff to use the console
+	$emu.=" -MConsole --";
+			
+    # If the execute is successful, this never returns.
+    exec($emu) || die "Failed to execute eshell \"$emu\": $!";
+}
+
+sub printHelp
+{
+    print "Eshell Launcher\n";
+    print "Syntax :\teshell [-rel] [-wins|-winscw] [-help]\n";
+    print "(no options)\tLaunch active winscw debug eshell\n";
+    print "-rel\t\tLaunch active release eshell\n";
+    print "-wins\t\tLaunch active wins eshell\n";
+    print "-winscw\t\tLaunch active winscw eshell\n";
+    print "-help\t\tOutput this help message\n";
+}
+
+#
+# Determines, validates, and returns EPOCROOT.
+#
+sub getEpocroot
+{
+    my $epocroot = $ENV{EPOCROOT};
+    die "ERROR: Must set the EPOCROOT environment variable.\n"
+	if (!defined($epocroot));
+    $epocroot =~ s-/-\\-go;	# for those working with UNIX shells
+    die "ERROR: EPOCROOT must be an absolute path, " .
+	"not containing a drive letter.\n" if ($epocroot !~ /^\\/);
+    die "ERROR: EPOCROOT must not be a UNC path.\n" if ($epocroot =~ /^\\\\/);
+    die "ERROR: EPOCROOT must end with a backslash.\n" if ($epocroot !~ /\\$/);
+    die "ERROR: EPOCROOT must specify an existing directory.\n" 
+	if (!-d $epocroot);
+    return $epocroot;
+}
+
+#
+# Determines and returns the current drive, if any.
+#
+sub getDrive
+{
+    my $wd = cwd;
+    if($wd =~ /^([a-zA-Z]:)/) {
+	$drive = $1;
+    } else {
+	# Perhaps we're on a machine that has no drives.
+	$drive = "";
+    }
+    return $drive;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/misccomponents/emulatorlauncher/src/RunPerl.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,80 @@
+// Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// RunPerl.cpp : Defines the entry point for the console application.
+// 
+//
+
+
+#include <stdlib.h>
+#include <string.h>
+
+void main(int argc, char* argv[])
+	{
+
+	char** args = new char*[argc+3];
+	int index = 0;
+
+	char* p = argv[0];
+	int pl = strlen(p);
+	if((pl >= 4) &&
+		(*(p+pl-4)=='.') && 
+		(*(p+pl-3)=='e' || *(p+pl-3)=='E') &&
+		(*(p+pl-2)=='x' || *(p+pl-2)=='X') &&
+		(*(p+pl-1)=='e' || *(p+pl-1)=='E'))
+		*(p+pl-4)='\0';
+	char* cmd = new char[strlen(p)+4];
+	strcpy(cmd,p);
+	strcat(cmd,".pl");
+
+	args[index++] = "perl";
+	args[index++] = "-S";
+	args[index++] = cmd;
+
+	for(int i=1; i<argc; i++)
+		{
+		args[index++] = argv[i];
+		}
+
+	args[index] = NULL;
+
+	int sz = 0;
+
+	for(i=0; args[i]; i++)
+		{
+		sz += strlen(args[i]) + 3;
+		}
+		
+	char *s = new char[sz];
+	strcpy(s,args[0]);
+	strcat(s," ");
+	strcat(s,args[1]);
+	strcat(s," ");
+	strcat(s,args[2]);
+
+	for(i=3; args[i]; i++)
+		{
+		strcat(s," \"");
+		strcat(s,args[i]);
+		strcat(s,"\"");
+		}
+
+	int r = system(s);
+
+	delete[] s;
+	delete[] args;
+	delete[] cmd;
+
+	exit (r);
+	}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/misccomponents/emulatorlauncher/test/BuildInfo.txt	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,5 @@
+DeviceFamily			Crystal
+DeviceFamilyRev			0x610
+ManufacturerSoftwareRev		0x620
+ManufacturerSoftwareBuild	123
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/misccomponents/emulatorlauncher/test/BuildInfo1.txt	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,3 @@
+DeviceFamily               2 
+DeviceFamilyRev            0x600 
+ManufacturerSoftwareBuild  Quartz London_Candidate3 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/misccomponents/emulatorlauncher/test/BuildInfo2.txt	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,3 @@
+DeviceFamily               0 
+DeviceFamilyRev            0x600 
+ManufacturerSoftwareBuild  Crystal COAK 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/misccomponents/emulatorlauncher/test/BuildInfo3.txt	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,3 @@
+DeviceFamily               0 
+DeviceFamilyRev            0x600 
+ManufacturerSoftwareBuild  Crystal COAKGEN002 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/package_definition.xml	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<SystemDefinition schema="3.0.0">
+  <package id="buildtools" name="Build Tools" levels="bld mw fw ui">
+    <collection id="bldsystemtools" name="Build System Tools" level="bld">
+      <component id="sysdeftools" name="System Definition Tools" purpose="development" introduced="^2">
+        <unit mrp="bldsystemtools/sysdeftools/group/sysdeftools.mrp"/>
+      </component>
+      <component id="gttechviewbaseline" name="GT Techview Baseline" purpose="development">
+        <unit mrp="packaging/additionalutils/gt_techview_baseline.mrp"/>
+      </component>
+      <component id="commonbldutils" name="Common Utils" purpose="development">
+        <unit mrp="bldsystemtools/commonbldutils/tools_utils_common.mrp"/>
+      </component>
+    </collection>
+    <collection id="packaging" name="Packaging" level="ui">
+      <component id="additionalutils" name="Additional Utils" purpose="development">
+        <unit mrp="packaging/additionalutils/additional_unknown_cedar.mrp"/>
+      </component>
+      <component id="dummy" name="Dummy" purpose="development">
+        <unit bldFile="packaging/dummy" mrp="packaging/dummy/additional_dummy.mrp"/>
+      </component>
+    </collection>
+    <collection id="toolsandutils" name="Tools and Utils" level="mw">
+      <component id="productionbldtools" name="Production Build Tools" filter="gt" purpose="development">
+        <unit mrp="toolsandutils/productionbldtools/product_tools.mrp"/>
+      </component>
+      <component id="e32tools" name="E32 Tools" deprecated="^2" purpose="development" target="desktop">
+        <unit bldFile="toolsandutils/e32tools/group" mrp="toolsandutils/e32tools/group/tools_e32tools.mrp"/>
+      </component>
+      <component id="wincredistribution" name="WinC Redistribution" purpose="development" filter="test">
+        <unit mrp="dist_os/redistributionwinceka2/tools_redistribution_winc.mrp" bldFile="dist_os/redistributionwinceka2"/>
+      </component>
+      <component id="additionalredistribution" name="Additional Redistribution" purpose="development" filter="test">
+        <unit mrp="perltoolsplat_os/redistribution/additional_tools.mrp" bldFile="perltoolsplat_os/redistribution"/>
+      </component>
+      <component id="statapi" name="STAT API" filter="gt" purpose="development">
+        <unit bldFile="toolsandutils/statapi/source/statapi/console" mrp="toolsandutils/statapi/group/testtools_stat_device_gt.mrp"/>
+      </component>
+      <component id="wintunnel" name="Wintunnel" purpose="development" filter="test">
+        <unit mrp="toolsandutils/wintunnel/group/testtools_WinTunnel_srconly.mrp" bldFile="toolsandutils/wintunnel/group"/>
+      </component>
+      <component id="autotest" name="Autotest" purpose="development">
+        <unit bldFile="toolsandutils/autotest/group" mrp="toolsandutils/autotest/group/tools_autotest.mrp"/>
+      </component>
+    </collection>
+    <collection id="sbsv1_os" name="Symbian Build System v1" level="fw">
+      <component id="e32toolp" name="E32 Perl Tools" purpose="development" target="desktop" filter="test">
+        <unit mrp="sbsv1_os/e32toolp/group/tools_e32toolp.mrp" bldFile="sbsv1_os/e32toolp/group"/>
+      </component>
+	  </collection>
+	  <collection id="imgtools_os" name="Image Tools" level="fw">
+      <component id="romkiteka2" name="ROMKIT EKA2" deprecated="^2" purpose="development">
+        <unit bldFile="imgtools_os/romkiteka2/group" mrp="imgtools_os/romkiteka2/group/tools_romkit.mrp"/>
+      </component>
+    </collection>
+    <collection id="misccomponents" name="Misc Components" level="mw">
+      <component id="emulatorlauncher" name="Emulator Launcher" filter="gt" purpose="development">
+        <unit bldFile="misccomponents/emulatorlauncher/group" mrp="misccomponents/emulatorlauncher/group/tools_sdk_eng_emulator_launcher.mrp"/>
+      </component>
+    </collection>
+    <collection id="buildtools_info" name="Build Tools Info" level="ui">
+      <component id="buildtools_metadata" name="Build Tools Metadata" class="config" introduced="^2" purpose="development" target="desktop">
+        <unit mrp="buildtools_info/buildtools_metadata/buildtools_metadata.mrp"/>
+      </component>
+    </collection>
+  </package>
+</SystemDefinition>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/bldmake/abld.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,1108 @@
+# Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+use strict;
+
+use FindBin;		# for FindBin::Bin
+use Getopt::Long;
+
+my $PerlLibPath;    # fully qualified pathname of the directory containing our Perl modules
+
+BEGIN {
+# check user has a version of perl that will cope
+	require 5.005_03;
+# establish the path to the Perl libraries: currently the same directory as this script
+	$PerlLibPath = $FindBin::Bin;	# X:/epoc32/tools
+	$PerlLibPath =~ s/\//\\/g;	# X:\epoc32\tools
+	$PerlLibPath .= "\\";
+}
+
+use lib $PerlLibPath;
+use E32env;
+use CheckSource;
+use FCLoggerUTL;
+use featurevariantparser;
+
+if (defined $ENV{ABLD_TOOLSMOD_COMPATIBILITY_MODE} &&  ($ENV{ABLD_TOOLSMOD_COMPATIBILITY_MODE} eq 'alpha')) {
+		
+			$ENV{MAKE} = 'make' unless defined $ENV{MAKE};
+}
+
+# command data structure
+my %Commands=(
+	BUILD=>{
+		build=>1,
+		program=>1,
+		what=>1,
+		function=>'Combines commands EXPORT,MAKEFILE,LIBRARY,RESOURCE,TARGET,FINAL',
+		subcommands=>['EXPORT','MAKEFILE', 'LIBRARY', 'RESOURCE', 'TARGET', 'FINAL'],
+		savespace=>1,
+        instructionset=>1,
+		debug=>1,
+		no_debug=>1,
+		logfc=>1,
+		checksource=>1,
+		wrap=>1, #To support Compiler wrapper option along with BUILD command
+	},
+	CLEAN=>{
+		build=>1,
+		program=>1,
+		function=>'Removes everything built with ABLD TARGET',
+		what=>1,
+	},
+	CLEANALL=>{
+		program=>1,
+		function=>'Removes everything built with ABLD TARGET',
+		what=>1,
+	},
+	CLEANEXPORT=>{
+		function=>'Removes files created by ABLD EXPORT',
+		what=>1,
+		noplatform=>1,
+	},
+	CLEANMAKEFILE=>{
+		program=>1,
+		function=>'Removes files generated by ABLD MAKEFILE',
+		what=>1,
+		hidden=>1,
+	},
+	EXPORT=>{
+		noplatform=>1,
+		what=>1,
+		function=>'Copies the exported files to their destinations',
+	},
+	FINAL=>{
+		build=>1,
+		program=>1,
+		function=>'Allows extension makefiles to execute final commands',
+	},
+	FREEZE=>{
+		program=>1,
+		remove=>1,
+		function=>'Freezes exported functions in a .DEF file',
+	},
+	HELP=>{
+		noplatform=>1,
+		function=>'Displays commands, options or help about a particular command',
+		notest=>1,
+	},
+	LIBRARY=>{
+		program=>1,
+		function=>'Creates import libraries from the frozen .DEF files',
+	},
+	LISTING=>{
+		build=>1,
+		program=>1,
+		function=>'Creates assembler listing file for corresponding source file',
+		source=>1,	
+	},
+	MAKEFILE=>{
+		program=>1,
+		function=>'Creates makefiles or IDE workspaces',
+		what=>1,
+		savespace=>1,
+		instructionset=>1,
+		debug=>1,
+		no_debug=>1,
+		logfc=>1,
+		wrap=>1, #To support Compiler wrapper option along with MAKEFILE command
+        },
+	REALLYCLEAN=>{
+		build=>1,
+		program=>1,
+		function=>'As CLEAN, but also removes exported files and makefiles',
+		what=>1,
+		subcommands=>['CLEANEXPORT', 'CLEAN', 'CLEANALL'],
+	},
+	RESOURCE=>{
+		build=>1,
+		program=>1,
+		function=>'Creates resource files, bitmaps and AIFs',
+	},
+#	ROMFILE=>{
+#		function=>'Under development - syntax not finalised',
+#		noverbose=>1,
+#		nokeepgoing=>1,
+#		hidden=>1,
+#	},
+	ROMFILE=>{
+		noverbose=>1,
+		build=>1,
+		program=>1,
+		function=>'generates an IBY file to include in a ROM'
+	},
+	SAVESPACE=>{
+		build=>1,
+		program=>1,
+		what=>1,
+		function=>'As TARGET, but deletes intermediate files on success',
+		hidden=>1, # hidden because only used internally from savespace flag
+	},
+	TARGET=>{
+		build=>1,
+		program=>1,
+		what=>1,
+		function=>'Creates the main executable and also the resources',
+		savespace=>1,
+		checksource=>1,
+		wrap=>1, #To support Compiler wrapper option along with TARGET command
+	},
+	TIDY=>{
+		build=>1,
+		program=>1,
+		function=>'Removes executables which need not be released',
+	}
+);
+
+# get the path to the bldmake-generated files
+# we can perhaps work this out from the current working directory in later versions
+my $BldInfDir;
+my $PrjBldDir;
+BEGIN {
+	$BldInfDir=shift @ARGV;
+	$PrjBldDir=$E32env::Data{BldPath};
+	$PrjBldDir=~s-^(.*)\\-$1-o;
+	$PrjBldDir.=$BldInfDir;
+	$PrjBldDir=~m-(.*)\\-o; # remove backslash because some old versions of perl can't cope
+	unless (-d $1) {
+		die "ABLD ERROR: Project Bldmake directory \"$PrjBldDir\" does not exist\n";
+	}
+}
+
+# check the platform module exists and then load it
+BEGIN {
+	unless (-e "${PrjBldDir}Platform.pm") {
+		die "ABLD ERROR: \"${PrjBldDir}Platform.pm\" not yet created\n";
+	}
+}
+use lib $PrjBldDir;
+use Platform;
+
+# change directory to the BLD.INF directory - we might begin to do
+# things with relative paths in the future.
+chdir($BldInfDir) or die "ABLD ERROR: Can't CD to \"$BldInfDir\"\n";
+
+# MAIN PROGRAM SECTION
+{
+
+#	PROCESS THE COMMAND LINE
+	my %Options=();
+	unless (@ARGV) {
+		&Usage();
+	}
+
+#	Process options and check that all are recognised
+# modified start: added functionality checkwhat
+	unless (GetOptions(\%Options, 'checkwhat|cw','check|c', 'keepgoing|k', 'savespace|s', 'verbose|v',
+						'what|w', 'remove|r', 'instructionset|i=s',
+						'checksource|cs', 'debug','no_debug', 'logfc|fc','wrap:s')) { 
+		exit 1;
+	}
+# modified end: added functionality checkwhat
+
+#	check the option combinations
+# modified start: added functionality checkwhat
+	if ($Options{checkwhat} ) { 
+		$Options{check}=1;
+	}
+# modified end: added functionality checkwhat
+	if (($Options{check} and $Options{what})) {
+		&Options;
+	}
+	if (($Options{check} or $Options{what}) and ($Options{keepgoing} or $Options{savespace} or $Options{verbose})) {
+		&Options();
+	}
+	if ($Options{checksource} and $Options{what}) {
+		&Options();
+	}
+
+
+#	take the test parameter out of the command-line if it's there
+	my $Test='';
+	if (@ARGV && $ARGV[0]=~/^test$/io) {
+		$Test='test';
+		shift @ARGV;
+	}
+
+#	if there's only the test parameter there, display usage
+	unless (@ARGV) {
+		&Usage();
+	}
+
+#	get the command parameter out of the command line
+	my $Command=uc shift @ARGV;
+	unless (defined $Commands{$Command}) {
+		&Commands();
+	}
+	my %CommandHash=%{$Commands{$Command}};
+
+#	check the test parameter is not specified where it shouldn't be
+	if ($Test and $CommandHash{notest}) {
+		&Help($Command);
+	}
+
+#	check the options are suitable for the commands
+#	-verbose and -keepgoing have no effect in certain cases
+	if ($Options{what} or $Options{check}) {
+		unless ($CommandHash{what}) {
+			&Help($Command);
+		}
+	}
+	#Function Call Logger
+	if ($Options{logfc}) {
+		unless ($CommandHash{logfc}) {
+			&Help($Command);
+		}
+	}
+	if ($Options{savespace}) {
+		unless ($CommandHash{savespace}) {
+			&Help($Command);
+		}
+	}
+	if ($Options{instructionset}) {
+		unless ($CommandHash{instructionset}) {
+			&Help($Command);
+		}
+	}
+	if ($Options{debug}) {
+		unless ($CommandHash{debug}) {
+			&Help($Command);
+		}
+	}
+	if ($Options{no_debug}) {
+		unless ($CommandHash{no_debug}) {
+			&Help($Command);
+		}
+	}
+
+	if ($Options{keepgoing}) {
+		if ($CommandHash{nokeepgoing}) {
+			&Help($Command);
+		}
+	}
+	if ($Options{verbose}) {
+		if ($CommandHash{noverbose}) {
+			&Help($Command);
+		}
+	}
+	if ($Options{remove}) {
+		unless ($CommandHash{remove}) {
+			&Help($Command);
+		}
+	}
+	if ($Options{checksource}) {
+		unless ($CommandHash{checksource}) {
+			&Help($Command);
+		}
+	}
+	#Compiler Wrapper support 
+	if (exists $Options{wrap}) {
+		unless ($CommandHash{wrap}) {
+			&Help($Command);
+		}
+	}
+
+#	process help command if necessary
+	if ($Command eq 'HELP') {
+		if (@ARGV) {
+			my $Tmp=uc shift @ARGV;
+			if (defined $Commands{$Tmp}) {
+				&Help($Tmp);
+			}
+			elsif ($Tmp eq 'OPTIONS') {
+				&Options();
+			}
+			elsif ($Tmp eq 'COMMANDS') {
+				&Commands();
+			}
+		}
+		&Usage();
+	}
+
+#	process parameters
+	my ($Plat, $Bld, $Program, $Source)=('','','','');
+	my %MakefileVariations;
+	my $FeatureVariantArg;
+        
+#	platform parameter first
+	unless ($CommandHash{noplatform}) {
+		unless ($Plat=uc shift @ARGV) {
+			$Plat='ALL'; # default
+		}
+		else {
+			# Explicit feature variant platforms take the form <base platform>.<variant name>
+			# e.g. armv5.variant1.
+			# If valid, we actually create and invoke a distinct variation of the "base" makefile
+			if ($Plat =~ /^(\S+)\.(\S+)$/)
+				{
+				$Plat = $1;
+				$FeatureVariantArg = uc($2);
+
+				if (!$Platform::FeatureVariantSupportingPlats{$Plat})
+					{
+					die "This project does not support platform \"$Plat\.$FeatureVariantArg\"\n";
+					}
+				else
+					{						
+					$MakefileVariations{$Plat} = &GetMakefileVariations($Plat, $FeatureVariantArg);
+					}
+				}
+
+			COMPARAM1 : {
+				if (grep(/^$Plat$/, ('ALL', @Platform::Plats))) {
+					last COMPARAM1;
+				}
+				if ($Plat =~ /(.*)EDG$/) {
+				    my $SubPlat = $1;
+				    if (grep(/^$SubPlat$/, ('ALL', @Platform::Plats))) {
+					last COMPARAM1;
+				    }
+				}
+#				check whether the platform might in fact be a build, and
+#				set the platform and build accordingly if it is
+				if ($CommandHash{build}) {
+					if ($Plat=~/^(UDEB|UREL|DEB|REL)$/o) {
+						$Bld=$Plat;
+						$Plat='ALL';
+						last COMPARAM1;
+					}
+				}
+#				check whether the platform might in fact be a program, and
+#				set the platform, build and program accordingly if it is
+				if ($CommandHash{program}) {
+					if  (((not $Test) and grep /^$Plat$/, @{$Platform::Programs{ALL}})
+							or ($Test and grep /^$Plat$/, @{$Platform::TestPrograms{ALL}})) {
+						$Program=$Plat;
+						$Plat='ALL';
+						$Bld='ALL';
+						last COMPARAM1;
+					}
+				}
+#				report the error
+				if ($CommandHash{build} and $CommandHash{program}) {
+					die "This project does not support platform, build or $Test program \"$Plat\"\n";
+				}
+				if ($CommandHash{build} and not $CommandHash{program}) {
+					die "This project does not support platform or build \"$Plat\"\n";
+				}
+				if ($CommandHash{program} and not $CommandHash{build}) {
+					die "This project does not support platform or $Test program \"$Plat\"\n";
+				}
+				if (not ($CommandHash{build} or $CommandHash{program})) {
+					die "This project does not support platform \"$Plat\"\n";
+				}
+			}
+		}
+	}
+
+	#Compiler Wrapper support 
+	my $CompilerWrapperFlagMacro = "";
+	if(exists $Options{wrap})
+	{
+		my $error = "Environment variable 'ABLD_COMPWRAP' is not set\n";
+		# If tool name for wrapping compiler is set in environment variable
+		if($ENV{ABLD_COMPWRAP})
+		{
+			$CompilerWrapperFlagMacro =" ABLD_COMPWRAP_FLAG=-wrap" .  ($Options{wrap} ? "=$Options{wrap}":"");
+		}
+		elsif($Options{keepgoing})  
+		{
+		    # If Tool name is not set and keepgoing option is specified then ignore -wrap option and continue processing
+		    print $error;
+		    delete $Options{wrap};
+		}
+		else
+		{
+		    # Issue error and exit if neither keepgoing option nor tool name is specified		
+		    die $error;
+		}
+	}
+
+#	process the build parameter for those commands which require it
+	if ($CommandHash{build}) {
+		unless ($Bld) {
+			unless ($Bld=uc shift @ARGV) {
+				$Bld='ALL'; # default
+			}
+			else {
+				COMPARAM2 : {
+					if ($Bld=~/^(ALL|UDEB|UREL|DEB|REL)$/o) {
+#						Change for TOOLS, TOOLS2 and VC6TOOLS platforms
+						if ($Plat ne 'ALL') {
+							if (($Plat!~/TOOLS2?$/o and $Bld=~/^(DEB|REL)$/o) or ($Plat=~/TOOLS2?$/o and $Bld=~/^(UDEB|UREL)$/o)) {
+								die  "Platform \"$Plat\" does not support build \"$Bld\"\n";
+							}
+						}
+						last COMPARAM2;
+					}
+#					check whether the build might in fact be a program, and
+#					set the build and program if it is
+					if ($CommandHash{program}) {
+						if  (((not $Test) and grep /^$Bld$/, @{$Platform::Programs{$Plat}})
+								or ($Test and grep /^$Bld$/, @{$Platform::TestPrograms{$Plat}})) {
+							$Program=$Bld;
+							$Bld='ALL';
+							last COMPARAM2;
+						}
+						my $Error="This project does not support build or $Test program \"$Bld\"";
+						if ($Plat eq 'ALL') {
+							$Error.=" for any platform\n";
+						}
+						else {
+							$Error.=" for platform \"$Plat\"\n";
+						}
+						die $Error;
+					}
+					my $Error="This project does not support build \"$Bld\"";
+					if ($Plat eq 'ALL') {
+						$Error.=" for any platform\n";
+					}
+					else {
+						$Error.=" for platform \"$Plat\"\n";
+					}
+					die $Error;
+				}
+			}
+		}
+	}
+
+#	get the program parameter for those commands which require it
+	if ($CommandHash{program}) {
+		unless ($Program) {
+			unless ($Program=uc shift @ARGV) {
+				$Program=''; #default - means ALL
+			}
+			else {
+#				check that the program is supported
+				unless (((not $Test) and grep /^$Program$/, @{$Platform::Programs{$Plat}})
+						or ($Test and grep /^$Program$/, @{$Platform::TestPrograms{$Plat}})) {
+					my $Error="This project does not support $Test program \"$Program\"";
+					if ($Plat eq 'ALL') {
+						$Error.=" for any platform\n";
+					}
+					else {
+						$Error.=" for platform \"$Plat\"\n";
+					}
+					die $Error;
+				}
+			}
+		}
+	}
+
+#	get the source file parameter for those commands which require it
+	if ($CommandHash{source}) {
+		unless ($Source=uc shift @ARGV) {
+			$Source=''; #default - means ALL
+		}
+		else {
+			$Source=" SOURCE=$Source";
+		}
+	}
+
+#	check for too many arguments
+	if (@ARGV) {
+		&Help($Command);
+	}
+
+	if ( $Options{instructionset} )
+	{	# we have a -i option.
+		if ($Plat eq 'ARMV5')
+		{
+			if  ( !( ( uc( $Options{instructionset} ) eq "ARM") || ( uc( $Options{instructionset} ) eq "THUMB" ) ) ) {		
+				# Only ARM and THUMB options are valid. 
+				&Options();
+			}
+		}
+		else
+		{ # Can only use -i for armv5 builds. 
+			&Options();
+		}
+	}
+
+#	process CHECKSOURCE_OVERRIDE
+	if ($ENV{CHECKSOURCE_OVERRIDE} && (($Plat =~ /^ARMV5/) || ($Plat eq 'WINSCW')) && ($Command eq 'TARGET')  && !$Options{what})
+		{
+		$Options{checksource} = 1;
+		}
+	
+	my $checksourceMakeVariables = " ";	
+	if ($Options{checksource}) {
+		$checksourceMakeVariables .= "CHECKSOURCE_VERBOSE=1 " if ($Options{verbose});
+	}
+
+#	expand the platform list
+	my @Plats;
+	unless ($CommandHash{noplatform}) {
+		if ($Plat eq 'ALL') {
+			@Plats=@Platform::RealPlats;
+#			Adjust the "ALL" list according to the availability of compilers
+			@Plats=grep !/WINSCW$/o, @Plats unless (defined $ENV{MWSym2Libraries});
+			@Plats=grep !/WINS$/o, @Plats unless (defined $ENV{MSDevDir});
+			@Plats=grep !/X86$/o, @Plats unless (defined $ENV{MSDevDir});
+			@Plats=grep !/X86SMP$/o, @Plats unless (defined $ENV{MSDevDir});
+			@Plats=grep !/X86GCC$/o, @Plats unless (defined $ENV{MSDevDir});
+			@Plats=grep !/X86GMP$/o, @Plats unless (defined $ENV{MSDevDir});
+			if ($CommandHash{build}) {
+#				remove unnecessary platforms if just building for tools, or building everything but tools
+#				so that the makefiles for other platforms aren't created with abld build
+				if ($Bld=~/^(UDEB|UREL)$/o) {
+					@Plats=grep !/TOOLS2?$/o, @Plats;
+				}
+				elsif ($Bld=~/^(DEB|REL)$/o) {
+					@Plats=grep /TOOLS2?$/o, @Plats;
+				}
+			}
+		}
+        else
+        {
+			@Plats=($Plat);
+		}
+
+		foreach $Plat (@Plats)
+			{
+			# Skip platforms resolved above
+			next if $MakefileVariations{$Plat};
+				
+			# Implicit feature variant platforms apply when a default feature variant exists and the platform supports it
+			# If valid, we actually create and invoke a distinct variation of the "base" makefile
+			if ($Platform::FeatureVariantSupportingPlats{$Plat} && featurevariantparser->DefaultExists())
+				{
+				if($Command eq "REALLYCLEAN")
+					{
+					my @myfeature = featurevariantparser->GetBuildableFeatureVariants();
+					push @{$MakefileVariations{$Plat}}, ".".$_ foreach(@myfeature);
+					}
+					else
+					{
+					$MakefileVariations{$Plat} = &GetMakefileVariations($Plat, "DEFAULT");
+					}
+				}
+			else
+				{
+				# For non-feature variant platforms we always store a single makefile variation of nothing i.e.
+				# we use the "normal" makefile generated for the platform
+				$MakefileVariations{$Plat} = &GetMakefileVariations($Plat, "");
+				}
+				
+			}
+
+		foreach $Plat (@Plats) {
+			foreach my $makefileVariation (@{$MakefileVariations{$Plat}}) {
+				unless (-e "$PrjBldDir$Plat$makefileVariation$Test.make") {
+					die "ABLD ERROR: \"$PrjBldDir$Plat$makefileVariation$Test.make\" not yet created\n";
+				}
+			}
+		}
+		undef $Plat;
+	}
+
+#	set up a list of commands where there are sub-commands
+	my @Commands=($Command);
+	if ($CommandHash{subcommands}) {
+		@Commands=@{$CommandHash{subcommands}};
+		if ($Command eq 'BUILD') { # avoid makefile listings here
+			if ($Options{what} or $Options{check}) {
+				@Commands=grep !/^MAKEFILE$/o, @{$CommandHash{subcommands}};
+			}
+		}
+	}
+#	implement savespace if necessary
+	if ($Options{savespace}) {
+		foreach $Command (@Commands) {
+			if ($Command eq 'TARGET') {
+				$Command='SAVESPACE';
+			}
+		}
+	}
+
+#	set up makefile call flags and macros from the options
+	my $KeepgoingFlag='';
+	my $KeepgoingMacro='';
+        my $NoDependencyMacro='';
+	my $VerboseMacro=' VERBOSE=-s';
+	if ($Options{keepgoing}) {
+		$KeepgoingFlag=' -k';
+		$KeepgoingMacro=' KEEPGOING=-k';
+	}
+	if ($Options{verbose}) {
+		$VerboseMacro='';
+	}
+	my $RemoveMacro='';
+	if ($Options{remove}) {
+		$RemoveMacro=' EFREEZE_ALLOW_REMOVE=1';
+	}
+	if ( ($Options{savespace}) and ($Options{keepgoing}) ){
+		$NoDependencyMacro=' NO_DEPENDENCIES=-nd';
+	}
+
+    my $AbldFlagsMacro="";
+	$AbldFlagsMacro = "-iarm " if (uc $Options{instructionset} eq "ARM");
+	$AbldFlagsMacro = "-ithumb " if (uc $Options{instructionset} eq "THUMB");
+
+	if ($Options{debug}) {
+		$AbldFlagsMacro .= "-debug ";
+	}
+	elsif($Options{no_debug}) {
+		$AbldFlagsMacro .= "-no_debug ";
+	}
+    
+	#Function call logging flag for makmake
+	if ($Options{logfc}) {
+		#Check the availability and version of logger
+		if (&FCLoggerUTL::PMCheckFCLoggerVersion()) {
+			$AbldFlagsMacro .= "-logfc ";
+		}
+	}
+
+	if(!($AbldFlagsMacro eq "") ){
+		$AbldFlagsMacro =" ABLD_FLAGS=\"$AbldFlagsMacro\"";
+	}
+
+#	set up a list of make calls
+	my @Calls;
+
+#	handle the exports related calls first
+	if (($Command)=grep /^(.*EXPORT)$/o, @Commands) { # EXPORT, CLEANEXPORT
+		unless (-e "${PrjBldDir}EXPORT$Test.make") {
+			die "ABLD ERROR: \"${PrjBldDir}EXPORT$Test.make\" not yet created\n";
+		}
+		unless ($Options {checksource}) {
+			if (defined $ENV{ABLD_TOOLSMOD_COMPATIBILITY_MODE} &&  ($ENV{ABLD_TOOLSMOD_COMPATIBILITY_MODE} eq 'alpha')) {
+				unless ($Options{what} or $Options{check}) {
+					push @Calls, "$ENV{MAKE} -r $KeepgoingFlag -f \"${PrjBldDir}EXPORT$Test.make\" $Command$VerboseMacro$KeepgoingMacro";
+				}
+				else {
+					push @Calls, "$ENV{MAKE} -r -f \"${PrjBldDir}EXPORT$Test.make\" WHAT";
+				}
+			}
+			else {
+			
+				unless ($Options{what} or $Options{check}) {
+					push @Calls, "make -r $KeepgoingFlag -f \"${PrjBldDir}EXPORT$Test.make\" $Command$VerboseMacro$KeepgoingMacro";
+				}
+				else {
+					push @Calls, "make -r -f \"${PrjBldDir}EXPORT$Test.make\" WHAT";
+				}
+			}
+		}
+		@Commands=grep !/EXPORT$/o, @Commands;
+	}
+
+#	then do the rest of the calls
+
+	COMMAND: foreach $Command (@Commands) {
+
+		if ($Options {checksource} && ($Command eq "TARGET" || $Command eq "SAVESPACE")) {
+			if (defined $ENV{ABLD_TOOLSMOD_COMPATIBILITY_MODE} &&  ($ENV{ABLD_TOOLSMOD_COMPATIBILITY_MODE} eq 'alpha')) {
+				push @Calls, "$ENV{MAKE} -r -f \"".$PrjBldDir."EXPORT.make\"".$checksourceMakeVariables."CHECKSOURCE";
+			}
+			else {
+				push @Calls, "make -r -f \"".$PrjBldDir."EXPORT.make\"".$checksourceMakeVariables."CHECKSOURCE";
+			}
+		}
+
+		my $Plat;
+		PLATFORM: foreach $Plat (@Plats) {
+
+#			set up a list of builds to carry out commands for if appropriate
+			my @Blds=($Bld);
+			if (${$Commands{$Command}}{build}) {
+				if ($Bld eq 'ALL') {
+					unless ($Plat=~/TOOLS2?$/o) { # change for platforms TOOLS, TOOLS2 and VC6TOOLS
+						@Blds=('UDEB', 'UREL');
+					}
+					else {
+						@Blds=('DEB', 'REL');
+					}
+				}
+				else {
+#					check the build is suitable for the platform - TOOLS, TOOLS2 and VC6TOOLS are annoyingly atypical
+					unless (($Plat!~/TOOLS2?$/o and $Bld=~/^(UDEB|UREL)$/o) or ($Plat=~/TOOLS2?$/o and $Bld=~/^(DEB|REL)$/o)) {
+						next;
+					}
+				}
+			}
+			else {
+				@Blds=('IRRELEVANT');
+			}
+
+			# You get CHECKSOURCE_GENERIC "for free" if no component is specified in the call
+			if ($Options {checksource} && ($Command eq "TARGET" || $Command eq "SAVESPACE") && $Program) {
+				foreach my $makefileVariation (@{$MakefileVariations{$Plat}}) {
+					if (defined $ENV{ABLD_TOOLSMOD_COMPATIBILITY_MODE} &&  ($ENV{ABLD_TOOLSMOD_COMPATIBILITY_MODE} eq 'alpha')) {
+						push @Calls, "$ENV{MAKE} -r -f \"$PrjBldDir$Plat$makefileVariation$Test.make\"".$checksourceMakeVariables."CHECKSOURCE_GENERIC";
+					}
+					else {
+						push @Calls, "make -r -f \"$PrjBldDir$Plat$makefileVariation$Test.make\"".$checksourceMakeVariables."CHECKSOURCE_GENERIC";
+					}
+				}
+			}
+
+			my $LoopBld;
+			foreach $LoopBld (@Blds) {
+				my $CFG='';
+				if ($LoopBld ne 'IRRELEVANT') {
+					$CFG=" CFG=$LoopBld";
+				}
+				if ($Options {checksource}) {
+					if ($Command eq "TARGET" || $Command eq "SAVESPACE") {
+						foreach my $makefileVariation (@{$MakefileVariations{$Plat}}) {
+							if (defined $ENV{ABLD_TOOLSMOD_COMPATIBILITY_MODE} &&  ($ENV{ABLD_TOOLSMOD_COMPATIBILITY_MODE} eq 'alpha')) {
+								push @Calls, "$ENV{MAKE} -r -f \"$PrjBldDir$Plat$makefileVariation$Test.make\"".$checksourceMakeVariables."CHECKSOURCE$Program$CFG";	  
+							}
+							else {	
+								push @Calls, "make -r -f \"$PrjBldDir$Plat$makefileVariation$Test.make\"".$checksourceMakeVariables."CHECKSOURCE$Program$CFG";
+							}
+						}
+					}
+					next;
+				}
+				
+				unless ($Options{what} or $Options{check}) {
+					if ($Program) { # skip programs if they're not supported for a platform
+						unless ($Test) {
+							unless (grep /^$Program$/, @{$Platform::Programs{$Plat}}) {
+								next PLATFORM;
+							}
+						}
+						else {
+							unless (grep /^$Program$/, @{$Platform::TestPrograms{$Plat}}) {
+								next PLATFORM;
+							}
+						}
+					}
+   					my $AbldFlagsMacroTmp="";
+					my $CompilerWrapperFlagMacroTemp="";
+					if ($Command eq "MAKEFILE")
+					{	# Only want ABLD_FLAGS for Makefile
+                        $AbldFlagsMacroTmp=$AbldFlagsMacro;
+						if(exists ($Options{wrap}))
+						{
+							# Require ABLD_COMPWRAP_FLAG when --wrap option is specified
+							$CompilerWrapperFlagMacroTemp = $CompilerWrapperFlagMacro;
+						}
+					}
+					foreach my $makefileVariation (@{$MakefileVariations{$Plat}}) {
+							if (defined $ENV{ABLD_TOOLSMOD_COMPATIBILITY_MODE} &&  ($ENV{ABLD_TOOLSMOD_COMPATIBILITY_MODE} eq 'alpha')) {
+
+								if ( ($Command eq "TARGET") && (-e $PerlLibPath . "tracecompiler.pl") )
+								{
+									not scalar grep(/tracecompiler\.pl $Plat/,@Calls) and push @Calls, "perl " . $PerlLibPath . "tracecompiler.pl $Plat $Program";
+								}
+								push @Calls, "$ENV{MAKE} -r $KeepgoingFlag -f \"$PrjBldDir$Plat$makefileVariation$Test.make\""
+								." $Command$Program$CFG$Source$VerboseMacro" .
+								"$KeepgoingMacro$RemoveMacro$NoDependencyMacro" .
+								"$AbldFlagsMacroTmp$CompilerWrapperFlagMacroTemp";
+
+								#Compiler Wrapper support
+								if ( exists($Options{wrap}) && ($Options{wrap} eq "") && ($Command eq "TARGET") )
+								{
+									my $CFGCOMPWRAP='';
+									if ($LoopBld ne 'IRRELEVANT')
+									{
+										$CFGCOMPWRAP =" CFG=COMPWRAP".$LoopBld;	
+									}
+									push @Calls, "$ENV{MAKE} -r $KeepgoingFlag -f \"$PrjBldDir$Plat$makefileVariation$Test.make\""." TARGET$Program$CFGCOMPWRAP";
+								}
+							}
+							else {	
+								push @Calls, "make -r $KeepgoingFlag -f \"$PrjBldDir$Plat$makefileVariation$Test.make\""
+								." $Command$Program$CFG$Source$VerboseMacro" .
+								"$KeepgoingMacro$RemoveMacro$NoDependencyMacro" .
+								"$AbldFlagsMacroTmp$CompilerWrapperFlagMacroTemp";
+              
+								#Compiler Wrapper support
+								if ( exists($Options{wrap}) && ($Options{wrap} eq "") && ($Command eq "TARGET") )
+								{
+									my $CFGCOMPWRAP='';
+									if ($LoopBld ne 'IRRELEVANT')
+									{
+										$CFGCOMPWRAP =" CFG=COMPWRAP".$LoopBld;	
+									}
+									push @Calls, "make -r $KeepgoingFlag -f \"$PrjBldDir$Plat$makefileVariation$Test.make\""." TARGET$Program$CFGCOMPWRAP";
+								}
+							}
+						}
+						next;
+				}
+
+				unless (${$Commands{$Command}}{what}) {
+					next COMMAND;
+				}
+				if ($Program) { # skip programs if they're not supported for a platform
+					unless ($Test) {
+						unless (grep /^$Program$/, @{$Platform::Programs{$Plat}}) {
+							next PLATFORM;
+						}
+					}
+					else {
+						unless (grep /^$Program$/, @{$Platform::TestPrograms{$Plat}}) {
+							next PLATFORM;
+						}
+					}
+				}
+				my $Makefile='';
+				if ($Command=~/MAKEFILE$/o) {
+					$Makefile='MAKEFILE';
+				}
+
+				foreach my $makefileVariation (@{$MakefileVariations{$Plat}}) {
+					if (defined $ENV{ABLD_TOOLSMOD_COMPATIBILITY_MODE} &&  ($ENV{ABLD_TOOLSMOD_COMPATIBILITY_MODE} eq 'alpha')) {
+					push @Calls, "$ENV{MAKE} -r -f \"$PrjBldDir$Plat$makefileVariation$Test.make\" WHAT$Makefile$Program $CFG";
+					}
+					else {
+					push @Calls, "make -r -f \"$PrjBldDir$Plat$makefileVariation$Test.make\" WHAT$Makefile$Program $CFG";
+				    }
+				}
+			}
+		}
+	}
+
+
+#	make the required calls
+
+	my $Call;
+	my %checkSourceUniqueOutput;
+	unless ($Options{what} or $Options{check}) {
+		foreach $Call (@Calls) {
+			print "  $Call\n" unless ($Options{checksource} && !$Options {verbose});
+			open PIPE, "$Call |";
+			$|=1; # bufferring is disabled
+			while (<PIPE>) {
+				if ($Options {checksource})
+					{
+					if ($Options{verbose})
+						{
+						print $_;
+						}
+					else
+						{
+						$checkSourceUniqueOutput{$_} = 1;
+						}
+					}
+				else
+					{
+					print;
+					}
+			}
+			close PIPE;
+		}
+
+		print $_ foreach (sort keys %checkSourceUniqueOutput);
+	}
+	else {
+		my %WhatCheck; # check for duplicates
+		foreach $Call (@Calls) {
+			open PIPE, "$Call |";
+			while (<PIPE>) {
+				next if (/(Nothing to be done for|Entering directory|Leaving directory) \S+\.?$/o);
+#				releasables split on whitespace - quotes possible -stripped out
+				while (/("([^"\t\n\r\f]+)"|([^ "\t\n\r\f]+))/go) {
+					my $Releasable=($2 ? $2 : $3);
+					$Releasable =~ s/\//\\/g;	# convert forward slash into backslash
+					unless ($WhatCheck{$Releasable}) {
+						$WhatCheck{$Releasable}=1;
+						if ($Options{what}) {
+							print "$Releasable\n";
+						}
+						else {
+							if (!-e $Releasable) {
+								print STDERR "MISSING: $Releasable\n";
+							} 
+							# modified start: added functionality checkwhat
+							elsif ($Options{checkwhat}) {						 
+								print "$Releasable\n";
+							}
+							# modified end: added functionality checkwhat
+						}
+					}
+				}
+			}
+			close PIPE;
+		}
+	}
+}
+
+sub Usage () {
+	print <<ENDHERESTRING;
+Common usage : abld [test] command [options] [platform[.Feature Variant]] [build] [program]
+  where command is build, target, etc.
+    (type \"abld help commands\" for a list of commands)
+  where options are -c, -k, etc.
+    (type \"abld help options\" for a list of options)
+  where parameters depend upon the command
+    (type \"abld help <command>\" for command-specific help)
+  where parameters default to 'ALL' if unspecified
+ENDHERESTRING
+
+	print
+		"project platforms:\n",
+		"   @Platform::Plats\n"
+	;
+
+	if (%Platform::FeatureVariantSupportingPlats)
+		{
+		my @featureVariants;
+			
+		foreach my $featureVariantSupportingPlat (keys %Platform::FeatureVariantSupportingPlats)
+			{
+			push @featureVariants, $featureVariantSupportingPlat.".".$_ foreach (featurevariantparser->GetValidVariants());
+			}
+
+		if (@featureVariants)
+			{
+			@featureVariants = map{uc($_)} @featureVariants;
+			print
+				"feature variant platforms:\n",
+				"   @featureVariants\n";		
+			}
+		}
+	exit 1;
+}
+
+# modified start: added functionality checkwhat
+sub Options () {
+	print <<ENDHERESTRING;
+Options (case-insensitive) :
+  -c or -check          check the releasables are present
+  -cw or -checkwhat     combined check and what
+  -k or -keepgoing      build unrelated targets on error
+  -s or -savespace      delete intermediate files on success
+  -v or -verbose        display tools calls as they happen
+  -w or -what           list the releasables
+  -r or -remove         allow FREEZE to remove exports
+  -i thumb or -i arm    override for build ARMV5 platform options
+  -cs or -checksource   checks source conformance to Symbian's filename policy
+  -debug or -no_debug   enable/disable generation of symbolic debug information for ARM ABI compliant platforms
+  -fc or -logfc	        enable function call logging
+  -wrap[=proxy]         enable invocation of external wrapper tool
+
+ possible combinations :
+	(([-check]|[-what]|[-checkwhat])|([-k][-s][-v][-i [thumb|arm]][-cs][-debug|-no_debug][-fc][-wrap[=proxy]]))
+ENDHERESTRING
+
+	exit;
+	
+}
+# modified end: added functionality checkwhat
+
+sub Help ($) {
+	my ($Command)=@_;
+
+	my %CommandHash=%{$Commands{$Command}};
+
+	print 'ABLD';
+	unless ($CommandHash{notest}) {
+		print ' [test]';
+	}
+	print " $Command ";
+	if ($Command eq 'HELP') {
+		print '([OPTIONS|COMMANDS]|[<command>])';
+	}
+	else {
+		if ($CommandHash{what}) {
+			print '(([-c]|[-w])|';
+		}
+		if ($CommandHash{savespace}) {
+			print '[-s]';
+		}
+		if ($CommandHash{instructionset}) {
+			print '[-i thumb|arm]';
+		}
+        if ($CommandHash{remove}) {
+			print '[-r]';
+		}
+        if ($CommandHash{checksource}) {
+			print '[-cs]';
+		}
+		unless ($CommandHash{nokeepgoing}) {
+			print '[-k]';
+		}
+		unless ($CommandHash{noverbose}) {
+			print '[-v]';
+		}
+		if ($CommandHash{debug}) {
+			print '[-debug|-no_debug]';
+		}
+		if ($CommandHash{logfc}) {
+			print '[-logfc]|[-fc]';
+		}
+		if ($CommandHash{what}) {
+			print '))';
+		}
+		unless ($CommandHash{noplatform}) {
+			print ' [<platform>]';
+		}
+		if ($CommandHash{build}) {
+			print ' [<build>]';
+		}
+		if ($CommandHash{program}) {
+			print ' [<program>]';
+		}
+		if ($CommandHash{source}) {
+			print ' [<source>]';
+		}
+		if ($CommandHash{wrap}) {
+			print '[-wrap[=proxy]]';
+		}
+	}
+
+	print
+		"\n",
+		"\n",
+		"$CommandHash{function}\n"
+	;
+	exit;
+}
+
+sub Commands () {
+
+	print "Commands (case-insensitive):\n";
+	foreach (sort keys %Commands) {
+		next if ${$Commands{$_}}{hidden};
+		my $Tmp=$_;
+		while (length($Tmp) < 12) {
+			$Tmp.=' ';
+		}
+		print "  $Tmp ${$Commands{$_}}{function}\n";
+	}
+
+	exit;
+}
+
+sub GetMakefileVariations ($$)
+	{
+	my ($plat, $featureVariantArg) = @_;
+	my @variations = ();
+
+	if (!$featureVariantArg)
+		{
+		push @variations, "";
+		}
+	else
+		{
+		my @resolvedVariants = featurevariantparser->ResolveFeatureVariant($featureVariantArg);
+# modified start: makefile improvement
+		my %temp_hash =("default" => "");
+		foreach (@resolvedVariants){
+			$temp_hash{$_}="";
+		}
+			push @variations, ".".$_ foreach (keys %temp_hash);
+		}
+# modified end: makefile improvement
+	return \@variations;
+	}
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/bldmake/bldmake.bat	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,28 @@
+@rem
+@rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+@rem All rights reserved.
+@rem This component and the accompanying materials are made available
+@rem under the terms of "Eclipse Public License v1.0"
+@rem which accompanies this distribution, and is available
+@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem
+@rem Initial Contributors:
+@rem Nokia Corporation - initial contribution.
+@rem
+@rem Contributors:
+@rem
+@rem Description:
+@rem
+@echo off
+
+
+perl -w -S bldmake.pl %1 %2 %3 %4 %5 %6 %7 %8 %9
+if errorlevel==1 goto CheckPerl
+goto End
+
+:CheckPerl
+perl -v >NUL
+if errorlevel==1 echo Is Perl, version 5.003_07 or later, installed?
+goto End
+
+:End
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/bldmake/bldmake.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,2326 @@
+# Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# all variables called *Path* are set up to end with a backslash
+# all variables called *Path or *File are stored as absolute (file)paths within makmake
+# all variables called UpPath* are stored as relative paths within makmake
+# 
+#
+
+use strict;
+
+use FindBin;		# for FindBin::Bin
+use Getopt::Long;
+
+my $PerlLibPath;    # fully qualified pathname of the directory containing our Perl modules
+
+BEGIN {
+# check user has a version of perl that will cope
+	require 5.005_03;
+# establish the path to the Perl libraries: currently the same directory as this script
+	$PerlLibPath = $FindBin::Bin;	# X:/epoc32/tools
+	$PerlLibPath =~ s/\//\\/g;	# X:\epoc32\tools
+	$PerlLibPath .= "\\";
+}
+sub ExportDirs ($);
+
+use lib $PerlLibPath;
+use E32env;
+use E32Plat;
+use Modload;
+use Output;
+use Pathutl;
+use E32Variant;
+use RVCT_plat2set;
+use BPABIutl;
+use wrappermakefile;
+use CheckSource;
+use File::Path; # for rmtree
+use featurevariantparser;
+
+my $BldInfName = 'BLD.INF';
+my %Options;
+my %KeepGoing;
+my @DefaultPlats=('WINSCW', 'GCCXML', 'EDG', 'X86GCC');
+my @BaseUserDefaultPlats=('ARM4', 'ARM4T', 'WINSCW', 'GCCXML', 'EDG', 'X86GCC');
+my @OptionalPlats=('VS6', 'VS2003');
+my @PlatsReq;
+
+my %CheckSourceEXPORTSMetaData;
+my %CheckSourceEXPORTSIncludes;
+my %CheckSourceMMPFILESMetaData;
+my %CheckSourceEXTENSIONSMetaData;
+my %CheckSourceBldInfIncludes;
+
+for ('ARMV4', 'ARMV5')
+{
+	push @BaseUserDefaultPlats, $_ if RVCT_plat2set::compiler_exists($_);
+}
+
+# Add ARMV5_ABIV1 platform if ENABLE_ABIV2_MODE is set in variant.cfg
+my $variantABIV2Keyword = &Variant_GetMacro();
+# Add ARMV5_ABIV1 platform only after determining the presence of RVCT compiler.
+if ($variantABIV2Keyword && RVCT_plat2set::compiler_exists('ARMV5_ABIV1') ) {
+	push @OptionalPlats, 'ARMV5_ABIV1';
+}
+
+# bldmake -k shouldn't die if Extension Makefile is missing
+our $IgnoreMissingExtensionMakefile = 0;
+
+# Add the BPABI Platforms to be added 
+my @BPABIPlats = &BPABIutl_Plat_List;
+foreach my $BPABIPlat (@BPABIPlats) 
+{
+	# BPABI platform related with ARMV5(eg.ARMV5_ABIV2) is added to the platform list after 
+	# determining the presence of RVCT compiler	
+	if(($BPABIPlat =~/^ARMV5/i))
+		{
+			if(!($BPABIPlat =~/^ARMV5$/i) && RVCT_plat2set::compiler_exists('ARMV5'))
+			{
+			push @OptionalPlats, $BPABIPlat;
+			}
+		}
+	# All other BPABI platforms(eg. gcce) are added to the platform list.
+	else
+		{
+			push @OptionalPlats, $BPABIPlat;
+		}
+}
+
+if ( RVCT_plat2set::compiler_exists('ARMV5') ) {
+	#determine the presence of ARVCT compiler
+	push @DefaultPlats, 'ARMV5';
+}
+	
+# Need to add WINS and X86 if MSDEV compiler is present
+# Use MSDevDir to determine the presence of the compiler
+push @BaseUserDefaultPlats, 'WINS', 'X86' if (exists($ENV{'MSDevDir'}));
+
+my @BaseDefaultPlats = @BaseUserDefaultPlats;
+push @BaseDefaultPlats, 'X86SMP' if (grep /^X86$/, @BaseUserDefaultPlats);
+push @BaseDefaultPlats, 'ARM4SMP' if (grep /^ARM4$/, @BaseUserDefaultPlats);
+push @BaseDefaultPlats, 'ARMV4SMP' if (grep /^ARMV4$/, @BaseUserDefaultPlats);
+push @BaseDefaultPlats, 'ARMV5SMP' if (grep /^ARMV5$/, @BaseUserDefaultPlats);
+push @BaseDefaultPlats, 'X86GMP' if (grep /^X86GCC$/, @BaseUserDefaultPlats);
+
+my $variantMacroHRHFile = Variant_GetMacroHRHFile();
+sub ExportDirs ($);
+
+# THE MAIN PROGRAM SECTION
+##########################
+
+# Load default feature variant info - for the hrh file
+my %DefaultFeatureVariant = featurevariantparser->GetVariant('DEFAULT') if (featurevariantparser->DefaultExists());
+my @FeatureVariants = featurevariantparser->GetBuildableFeatureVariants();
+	
+{
+	Load_SetModulePath($PerlLibPath);
+	Plat_Init($PerlLibPath);
+
+	{
+		my @PlatList = &Plat_List();
+		
+		if (RVCT_plat2set::compiler_exists('ARMV6')){
+			foreach my $ARMV6Target ("ARMV6", "ARMV6_ABIV1", "ARMV6_ABIV2"){
+				if (grep /^$ARMV6Target$/, @PlatList) {
+					push @BaseUserDefaultPlats, "$ARMV6Target" if (!grep /^$ARMV6Target$/, @BaseUserDefaultPlats);
+					push @BaseDefaultPlats, "$ARMV6Target" if (!grep /^$ARMV6Target$/, @BaseDefaultPlats);
+				}
+			}
+		}
+	
+		if (RVCT_plat2set::compiler_exists('ARMV7')){
+ 			my $rvct_ver = RVCT_plat2set::get_version_string('ARMV7');
+ 			if ((defined $rvct_ver) and ($rvct_ver ge "3.1.674")) {
+ 				if (grep /^ARMV7$/, @PlatList ) {
+					push @DefaultPlats, 'ARMV7' if (!grep /^ARMV7$/, @DefaultPlats);
+					push @BaseUserDefaultPlats, "ARMV7" if (!grep /^ARMV7$/, @BaseUserDefaultPlats);
+					push @BaseDefaultPlats, "ARMV7" if (!grep /^ARMV7$/, @BaseDefaultPlats);
+ 				}
+ 			}
+ 		}
+	}
+	
+#	process the commmand-line
+	unless (GetOptions(\%Options, 'v', "k|keepgoing", "notest", "file|f=s")) {
+		exit 1;
+	}
+	unless (@ARGV>=1) {
+		&Usage();
+	}
+	my $Command=uc shift @ARGV;
+	unless ($Command=~/^(BLDFILES|CLEAN|INF|PLAT)$/o) {
+		&Usage();
+	}
+	my $CLPlat=uc shift @ARGV;
+
+	unless ($CLPlat) {
+		$CLPlat='ALL';
+	}
+
+	if ($Command eq 'INF') {
+		&ShowBldInfSyntax();
+		exit;
+	}
+
+	if ($Command eq 'PLAT') {
+		my @PlatList = ($CLPlat);
+		my $PlatName;
+		# Variable introduced to check if the bldmake plat command is called, To be
+		# passed as an argument in Plat_GetL function call.
+		my $platcommand=1;
+		if ($CLPlat eq "ALL") {
+			@PlatList = &Plat_List();
+			print(
+				"Supported Platforms:\n",
+				"  @PlatList\n\n"
+			);
+		}
+		print(
+			"Macros defined for BLD.INF preprocessing of MMPFILE sections:\n"
+		);
+		foreach $PlatName (@PlatList) {
+			my %Plat;
+			eval { &Plat_GetL($PlatName, \%Plat,{},$platcommand); };
+			die $@ if $@;
+			print(
+				"\nPlatform $PlatName:\n",
+				"  @{$Plat{MmpMacros}}\n"
+			);
+		}
+		exit;
+	}
+	if ($Options{file}) {
+		$BldInfName = $Options{file};
+	}
+
+#	check that the BLD.INF file exists
+#	maybe BLDMAKE should allow a path to be specified leading to the BLD.INF file
+	my $BldInfPath=&Path_WorkPath;
+	unless (-e "${BldInfPath}$BldInfName") {
+		&FatalError("Can't find \"${BldInfPath}$BldInfName\"");
+	}
+
+	if (!-d $E32env::Data{EPOCPath}){
+		&FatalError("Directory \"$E32env::Data{EPOCPath}\" does not exist");
+	}
+
+#	decide the output directory
+	my $OutDir=&Path_Chop($E32env::Data{BldPath}).$BldInfPath;
+
+#	Work out the path for the IBY files
+	my $RomDir=&Path_Chop($E32env::Data{RomPath}).$BldInfPath;
+
+#	Work out the name for the BLD.INF module
+	my @Dirs=&Path_Dirs($BldInfPath);
+	my $Module = pop @Dirs;
+	if (lc($Module) eq 'group') {
+		$Module = pop @Dirs;
+	}
+
+	if ($Command eq 'CLEAN') {
+		unlink "${BldInfPath}ABLD.BAT";
+		$OutDir=~m-(.*)\\-o;
+		if (-d $1) { # remove backslash for test because some old versions of perl can't cope
+			opendir DIR, $1;
+			my @Files=grep s/^([^\.].*)$/$OutDir$1/, readdir DIR;
+			closedir DIR;
+			unlink @Files;
+		}
+		rmtree <$OutDir\\wrappermakefiles>;
+# modified start: makefile improvement 
+		rmtree <$OutDir\\FeatureVariantInfo>;
+# modified end: makefile improvement 
+		exit;
+	}
+
+#	parse BLD.INF - to get the platforms and the export files
+	eval { &Load_ModuleL('PREPFILE'); };
+	&FatalError($@) if $@;
+
+	my @RealPlats=();
+	my @Exports=();
+	my @TestExports=();
+	if ($Options{v}) {
+		print "Reading \"${BldInfPath}$BldInfName\" for platforms and exports\n";
+	}
+	&ParseBldInf(\@RealPlats, \@Exports, \@TestExports, $BldInfPath, 
+		$E32env::Data{EPOCIncPath}, $E32env::Data{EPOCPath}, $E32env::Data{EPOCDataPath});
+
+#       Add Customizations
+	my @additions;
+	foreach my $plat (@RealPlats) {
+	        my @customizations = Plat_Customizations($plat);
+	        foreach my $custom (@customizations) {
+	                push @additions, $custom 
+			        unless grep /$custom/, @additions;
+		}
+        }
+	unless ($CLPlat eq 'ALL') {
+		push @RealPlats, @additions;
+	}
+
+ #	Force GCCXML support for anything that compiles as ARMV5
+	if ( (grep /^ARMV5$/, @RealPlats) and not (grep /^GCCXML$/,@RealPlats) ) 
+			{
+			push @RealPlats, 'GCCXML';
+			}
+
+ #	Force EDG support for anything that compiles as ARMV5
+	if ( (grep /^ARMV5$/, @RealPlats) and not (grep /^EDG$/,@RealPlats) ) 
+			{
+			push @RealPlats, 'EDG';
+			}
+
+if (0) {
+#	Add ARMV5 to the platforms if ARM4 is defined
+	if (grep /^ARM4$/, @RealPlats) {
+		unless ( (grep /^ARMV4$/, @RealPlats) or (grep /^ARMV5$/, @RealPlats) ){
+		push @RealPlats, 'ARMV5';
+		push @RealPlats, 'ARMV4';
+		}
+	}
+}
+	
+#	get any IDE platforms required into a new platforms list, and
+#	Create a hash to contain the 'real' names of the platforms, i.e. WINS rather than VC6
+	my @Plats=@RealPlats;
+	my %Real;
+	foreach (@RealPlats) { # change to get VC6 batch files
+		$Real{$_}=$_;
+		my $AssocIDE;
+		my @AssocIDEs;
+
+#		Get the IDEs associated with a real platform. A real plat like,
+#		WINSCW may have multiple associated IDEs like VC6 .NET2003 or CW IDE.
+		&Plat_AssocIDE($_, \@AssocIDEs);
+		next unless @AssocIDEs;
+		
+		push @Plats, @AssocIDEs;
+		foreach $AssocIDE (@AssocIDEs)
+		{
+			$Real{$AssocIDE}=$Real{$_};
+		}
+		
+	}
+	if ($Options{v}) {
+		print "Platforms: \"@Plats\"\n";
+	}
+
+#	check that the platform specified on the command-line is acceptable
+#	and sort out a list of platforms to process
+	my @DoRealPlats=@RealPlats;
+	my @DoPlats=@Plats;
+
+	unless (@Plats) { 
+#	include the optional platform list if no platform is specified
+		my $OptionalPlat;
+		foreach $OptionalPlat (@OptionalPlats) {
+			unless (grep /^$OptionalPlat$/i, @DoPlats) {
+				push @DoPlats, $OptionalPlat;
+			}
+		}
+	}
+
+	unless ($CLPlat eq 'ALL') {
+		unless (grep /^$CLPlat$/, @Plats) {
+			&FatalError("Platform $CLPlat not supported by \"${BldInfPath}$BldInfName\"\n");
+		}
+		@DoPlats=($CLPlat);
+		@DoRealPlats=$Real{$CLPlat};
+	}
+			
+#	sort out the export directories we might need to make
+	my @ExportDirs=ExportDirs(\@Exports);
+	my @TestExportDirs=ExportDirs(\@TestExports);
+
+#	parse the BLD.INF file again for each platform supported by the project
+#	storing the information in a big data structure
+	my %AllPlatData;
+	my %AllPlatTestData;
+	my $Plat;
+	
+	if ($Options{v} and $CLPlat ne 'ALL'){
+		print "Reading \"${BldInfPath}$BldInfName\" for $CLPlat \n";
+	}
+
+	foreach $Plat (@RealPlats) {
+		if ($Options{v}) {
+			if ($CLPlat eq 'ALL') {
+				print "Reading \"${BldInfPath}$BldInfName\" for $Plat\n";
+			}
+		}
+		my (@PlatData, @PlatTestData);
+		if ($CLPlat eq 'ALL') {
+			&ParseBldInfPlat(\@PlatData, \@PlatTestData, $Plat, $BldInfPath, ($DefaultFeatureVariant{VALID} && &Plat_SupportsFeatureVariants($Plat) ? \%DefaultFeatureVariant : undef));
+		}
+		else {
+			&ParseBldInfPlat(\@PlatData, \@PlatTestData, $CLPlat, $BldInfPath, ($DefaultFeatureVariant{VALID} && &Plat_SupportsFeatureVariants($CLPlat) ? \%DefaultFeatureVariant : undef));
+		}
+		$AllPlatData{$Plat}=\@PlatData;
+		$AllPlatTestData{$Plat}=\@PlatTestData;
+	}
+	undef $Plat;
+
+	undef $CLPlat;
+	if ($Command eq 'BLDFILES') {
+
+#		create the perl file, PLATFORM.PM, listing the platforms
+		if ($Options{v}) {
+			print "Creating \"${OutDir}PLATFORM.PM\"\n";
+		}
+		&CreatePlatformPm($OutDir, \@Plats, \@RealPlats, \%Real, \%AllPlatData, \%AllPlatTestData);
+
+#		create the .BAT files required to call ABLD.PL
+		if ($Options{v}) {
+			print "Creating \"${BldInfPath}ABLD.BAT\"\n";
+		}
+		&CreatePerlBat($BldInfPath);
+
+#		create the makefile for exporting files
+		if ($Options{v}) {
+			print "Creating \"${OutDir}EXPORT.MAKE\"\n";
+		}
+		&CreateExportMak("${OutDir}EXPORT.MAKE", \@Exports, \@ExportDirs);
+
+#		create the makefile for exporting test files
+		if ($Options{v}) {
+			print "Creating \"${OutDir}EXPORTTEST.MAKE\"\n";
+		}
+		&CreateExportMak("${OutDir}EXPORTTEST.MAKE", \@TestExports, \@TestExportDirs);
+
+# modified start: makefile improvement 
+		#create the feature variant infor file
+		foreach my $copyofPlat (@DoPlats)
+		{
+			my $realplat = $Real{$copyofPlat};
+			if(&Plat_SupportsFeatureVariants($copyofPlat))
+			{
+				my $variant_info = &Path_Chop($E32env::Data{BldPath}).$BldInfPath."\\FeatureVariantInfo\\".$realplat."\\";	
+				eval { &Path_MakePathL($variant_info); };
+				die $@ if $@;
+				if ($Options{v}) {
+					print "Creating: \"$variant_info\"\n";
+				}
+				foreach my $featureVariant (@FeatureVariants)
+				{
+					my $variant_file = $variant_info."$realplat.$featureVariant.info";
+# modified by SV start: makefile improvement 
+					my $refdata = $AllPlatData{$realplat};
+					my $testrefdata = $AllPlatTestData{$realplat};
+					if ( @$refdata ) {
+						foreach my $RefPro (@$refdata)
+						{
+							$variant_file = $variant_info."$realplat.$featureVariant.$$RefPro{Base}.info";
+							my $ref_basedir = $variant_file;
+							$ref_basedir=~s/(.*[\\\/]).*/$1/;
+							if ( ! -d $ref_basedir ){
+								eval { &Path_MakePathL($ref_basedir); };
+								die $@ if $@;
+							}
+							open VARIANTINFOR,">$variant_file" or die "ERROR: Can't open or create file \"$variant_file\"\n";
+							print VARIANTINFOR "VARIANT_PLAT_NAME_$$RefPro{Base}:=default \n";
+							close VARIANTINFOR or die "ERROR: Can't close file \"$variant_file\"\n";
+						}
+					}
+					else {
+						open VARIANTINFOR,">$variant_file" or die "ERROR: Can't open or create file \"$variant_file\"\n";
+						print VARIANTINFOR "VARIANT_PLAT_NAME:=$featureVariant \n";
+						close VARIANTINFOR or die "ERROR: Can't close file \"$variant_file\"\n";
+						print "file \"$variant_file\"\n"
+					}
+					if ($testrefdata){
+						foreach my $RefPro (@$testrefdata)
+						{
+							$variant_file = $variant_info."$realplat.$featureVariant.$$RefPro{Base}.info";
+							my $ref_basedir = $variant_file;
+							$ref_basedir=~s/(.*[\\\/]).*/$1/;
+							if ( ! -d $ref_basedir ){
+								eval { &Path_MakePathL($ref_basedir); };
+								die $@ if $@;
+							}
+							open VARIANTINFOR,">$variant_file" or die "ERROR: Can't open or create file \"$variant_file\"\n";
+							print VARIANTINFOR "VARIANT_PLAT_NAME_$$RefPro{Base}:=default \n";
+							close VARIANTINFOR or die "ERROR: Can't close file \"$variant_file\"\n";
+						}
+						
+					}
+# modified by SV end: makefile improvement 
+					# Close and cleanup
+					if ($Options{v}) {
+						print "Variant info file has been successfully created\n";
+					}
+				}				
+			}
+		}
+# modified end: makefile improvement 
+#		create the platform meta-makefiles
+		foreach my $copyofPlat (@DoPlats) {  # Do not use $_ here !!
+			if ($Options{v}) {
+				print "Creating \"$OutDir$copyofPlat.MAKE\"\n";
+			}
+			my $realplat = $Real{$copyofPlat};
+			&CreatePlatMak($OutDir, $E32env::Data{BldPath}, $AllPlatData{$realplat}, $copyofPlat, $realplat, $RomDir, $Module, $BldInfPath, \@Exports, '');
+
+			if (&Plat_SupportsFeatureVariants($copyofPlat))
+				{
+				foreach my $featureVariant (@FeatureVariants)
+					{
+					print "Creating \"$OutDir$copyofPlat.$featureVariant.MAKE\"\n" if ($Options{v});
+					&CreatePlatMak($OutDir, $E32env::Data{BldPath}, $AllPlatData{$realplat}, $copyofPlat, $realplat, $RomDir, $Module, $BldInfPath, \@Exports, '', ".$featureVariant");
+					}
+				}
+		}
+		foreach (@DoPlats) {
+			if ($Options{v}) {
+				print "Creating \"$OutDir${_}TEST.MAKE\"\n";
+			}
+			&CreatePlatMak($OutDir, $E32env::Data{BldPath}, $AllPlatTestData{$Real{$_}}, $_, $Real{$_}, $RomDir, $Module, $BldInfPath, \@TestExports, 'TEST');
+
+			if (&Plat_SupportsFeatureVariants($_))
+				{
+				foreach my $featureVariant (@FeatureVariants)
+					{
+					print "Creating \"$OutDir${_}.".$featureVariant."TEST.MAKE\"\n" if ($Options{v});
+					&CreatePlatMak($OutDir, $E32env::Data{BldPath}, $AllPlatTestData{$Real{$_}}, $_, $Real{$_}, $RomDir, $Module, $BldInfPath, \@TestExports, 'TEST', ".$featureVariant");
+					}
+				}
+		}
+
+#		create the platform test batch files
+		foreach (@DoRealPlats) {
+			if ($Options{v}) {
+				print "Creating test batch files in \"$OutDir\" for $_\n";
+			}
+			&CreatePlatBatches($OutDir, $AllPlatTestData{$_}, $_);
+		}
+
+# modified by SV start: makefile improvement 
+# create all sub directories
+	foreach my $refplat (@DoRealPlats) {
+		my $tmp = $AllPlatData{$refplat};
+		foreach my $dref (@$tmp){
+			my $builddir = $OutDir . $$dref{Base} ."\\" . $refplat . "\\";
+				if (!-d $builddir){
+					if ($Options{v}) {
+						print "Creating directory \"$builddir\" \n";
+					}
+					eval { &Path_MakePathL($builddir); };
+					&FatalError($@) if $@;
+				}
+			}
+	}
+# modified by SV end: makefile improvement 
+
+#		report any near-fatal errors
+		if (scalar keys %KeepGoing) {
+		    print STDERR
+			    "\n${BldInfPath}$BldInfName WARNING(S):\n",
+			    sort keys %KeepGoing
+			    ;
+		}
+
+		exit;
+	}
+}
+
+
+################ END OF MAIN PROGRAM SECTION #################
+#------------------------------------------------------------#
+##############################################################
+
+
+# SUBROUTINE SECTION
+####################
+
+sub Usage () {
+
+	eval { &Load_ModuleL('E32TPVER'); };
+	&FatalError($@) if $@;
+
+	print
+		"\n",
+		"BLDMAKE - Project building Utility (Build ",&E32tpver,")\n",
+		"\n",
+		"BLDMAKE {options} [<command>] [<platform>]\n",
+		"\n",
+		"<command>: (case insensitive)\n",
+		" BLDFILES - create build batch files\n",
+		" CLEAN    - remove all files bldmake creates\n",
+		" INF      - display basic BLD.INF syntax\n",
+		" PLAT     - display platform macros\n",
+		"\n",
+		"<platform>: (case insensitive)\n",
+		"  if not specified, defaults to \"ALL\"\n",
+		"\n",
+		"Options: (case insensitive)\n",
+		" -v   ->  verbose mode\n",
+		" -k   ->  keep going even if files are missing\n"
+	;
+	exit 1;
+}
+
+sub ShowBldInfSyntax () {
+
+	print <<ENDHERE1;
+
+BLD.INF - Syntax
+
+/* Use C++ comments if required */
+// (Curly braces denote optional arguments)
+
+PRJ_PLATFORMS
+{DEFAULT} {-<platform> ...} {<list of platforms>}
+// list platforms your project supports here if not default
+ENDHERE1
+
+	print "// default = ".join(" ",@DefaultPlats)."\n";
+
+	print <<ENDHERE;
+	
+PRJ_EXPORTS
+[<source path>\<source file>]	{<destination>}
+// list each file exported from source on a separate line
+// {<destination>} defaults to \\EPOC32\\Include\\<source file>
+
+PRJ_TESTEXPORTS
+[<source path>\<source file>]	{<destination>}
+// list each file exported from source on a separate line
+// {<destination>} defaults to BLD.INF dir
+
+PRJ_MMPFILES
+[<mmp path>\<mmp file>] {<qualifiers>}
+{MAKEFILE|NMAKEFILE} [<path>\<makefile>] {build_as_arm}
+// <qualifiers> are tidy, ignore, build_as_arm
+
+#if defined(<platform>)
+// .MMP statements restricted to <platform>
+#endif
+
+PRJ_TESTMMPFILES
+[<mmp path>\<mmp file>] {<qualifiers>}
+{MAKEFILE|NMAKEFILE} [<path>\<makefile>] {<qualifiers>}
+// <qualifiers> are {tidy} {ignore} {manual} {support} {build_as_arm}
+
+#if defined(<platform>)
+// .MMP statements restricted to <platform>
+#endif
+
+ENDHERE
+
+}
+
+sub WarnOrDie ($$) {
+	my ($dieref, $message) = @_;
+	if ($Options{k}) {
+		$KeepGoing{$message} = 1;
+	} else {
+		push @{$dieref}, $message;
+	}
+}
+
+sub ExtensionMakefileMissing($)
+{
+	$IgnoreMissingExtensionMakefile = @_;
+}
+
+sub ParseBldInf ($$$$$) {
+	my ($PlatsRef, $ExportsRef, $TestExportsRef, $BldInfPath, $EPOCIncPath, $EPOCPath, $EPOCDataPath)=@_;
+
+	my @Prj2D;
+	eval { &Prepfile_ProcessL(\@Prj2D, "${BldInfPath}$BldInfName",$variantMacroHRHFile); };
+	&FatalError($@) if $@;
+	
+	my @SupportedPlats=&Plat_List();
+
+	my @Plats;
+	my %RemovePlats;
+
+	my $DefaultPlatsUsed=0;
+	my %PlatformCheck;
+
+	my %ExportCheck;
+	my $Section=0;
+	our @PrjFileDie;
+	my $Line;
+	my $CurFile="${BldInfPath}$BldInfName";
+	LINE: foreach $Line (@Prj2D) {
+		my $LineNum=shift @$Line;
+		$_=shift @$Line;
+		if ($LineNum eq '#') {
+			$CurFile=$_;
+			next LINE;
+		}
+
+		$CurFile = &Path_Norm ($CurFile); 
+		
+		if (/^PRJ_(\w*)$/io) {
+			$Section=uc $1;
+			if ($Section=~/^(PLATFORMS|EXPORTS|TESTEXPORTS|MMPFILES|TESTMMPFILES|EXTENSIONS|TESTEXTENSIONS)$/o) {
+				if (@$Line) {
+					push @PrjFileDie, "$CurFile($LineNum) : Can't specify anything on the same line as a section header\n";
+				}
+				next LINE;
+			}
+			push @PrjFileDie, "$CurFile($LineNum) : Unknown section header - $_\n";
+			$Section=0;
+			next LINE;
+		}
+		if ($Section eq 'PLATFORMS') {
+#			platforms are gathered up into a big list that contains no duplicates.  "DEFAULT" is
+#			expanded to the list of default platforms.  Platforms specified with a "-" prefix
+#			are scheduled for removal from the list.  After processing platforms specified
+#			with the "-" prefix are removed from the list.
+
+			unshift @$Line, $_;
+			my $Candidate;
+			CANDLOOP: foreach $Candidate (@$Line) {
+				$Candidate=uc $Candidate;
+#				ignore old WINC target
+				if ($Candidate eq 'WINC') {
+					next CANDLOOP;
+				}
+#				expand DEFAULT
+				if ($Candidate eq 'DEFAULT') {
+					$DefaultPlatsUsed=1;
+					my $Default;
+					foreach $Default (@DefaultPlats) {
+						unless ($PlatformCheck{$Default}) {
+							push @Plats, $Default;
+							$PlatformCheck{$Default}="$CurFile: $LineNum";
+						}
+					}
+					next CANDLOOP;
+				}
+#				expand BASEDEFAULT
+				if ($Candidate eq 'BASEDEFAULT') {
+					$DefaultPlatsUsed=1;
+					my $Default;
+					foreach $Default (@BaseDefaultPlats) {
+						unless ($PlatformCheck{$Default}) {
+							push @Plats, $Default;
+							$PlatformCheck{$Default}="$CurFile: $LineNum";
+						}
+					}
+					next CANDLOOP;
+				}
+#				expand BASEUSERDEFAULT
+				if ($Candidate eq 'BASEUSERDEFAULT') {
+					$DefaultPlatsUsed=1;
+					my $Default;
+					foreach $Default (@BaseUserDefaultPlats) {
+						unless ($PlatformCheck{$Default}) {
+							push @Plats, $Default;
+							$PlatformCheck{$Default}="$CurFile: $LineNum";
+						}
+					}
+					next CANDLOOP;
+				}
+#				check for removals
+				if ($Candidate=~/^-(.*)$/o) {
+					$Candidate=$1;
+#					check default is specified
+					unless ($DefaultPlatsUsed) {
+						push @PrjFileDie, "$CurFile($LineNum) : \"DEFAULT\" must be specified before platform to be removed\n";
+						next CANDLOOP;
+					}
+					$RemovePlats{$Candidate}=1;
+					next CANDLOOP;
+				}
+# 				If tools platform is specified in bld.inf file then component is built for cwtools as well 
+				if ($Candidate =~ /^tools/i)
+						{
+						push @Plats, 'CWTOOLS';
+						}
+#				check platform is supported
+				unless (grep /^$Candidate$/, @SupportedPlats) {
+					WarnOrDie(\@PrjFileDie, "$CurFile($LineNum) : Unsupported platform $Candidate specified\n");
+					next CANDLOOP;
+				}
+#				check platform is not an IDE
+				if ($Candidate=~/^VC/o) {
+					push @PrjFileDie, "$CurFile($LineNum) : No need to specify platform $Candidate here\n";
+					next CANDLOOP;
+				}
+#				add the platform
+				unless ($PlatformCheck{$Candidate}) {
+					push @Plats, $Candidate;
+					my $SubPlat = sprintf("%sEDG", $Candidate);
+					push @Plats, $SubPlat 
+					    if (grep /^$SubPlat$/, @SupportedPlats);
+					$PlatformCheck{$Candidate}="$CurFile: $LineNum";
+				}
+			}
+			next LINE;
+		}
+
+		# Skip PRJ_TESTEXPORT section if -notest flag		
+		next LINE if ($Options{notest} && ($Section=~/^(TESTEXPORTS)$/o)); 
+		
+		if ($Section=~/^(EXPORTS|TESTEXPORTS)$/o) {
+
+#			make path absolute - assume relative to group directory
+			my $Type = 'file';
+			if (/^\:(\w+)/) {
+				# Export an archive
+				$Type = lc $1;
+				unless ($Type eq 'zip') {
+					push @PrjFileDie, "$CurFile($LineNum) : Unknown archive type - $Type\n";
+					next LINE;
+				}
+				$_ = shift @$Line;
+			}
+
+			my $loggedSourceExport = $_;
+			$_ = &Path_Norm ($_);
+			
+			my $Source=&Path_MakeAbs($CurFile, $_);
+			my $Releasable='';
+			my $emReleasable='';
+			my $unzip_option ='';
+			if (@$Line) {
+#				get the destination file if it's specified
+				$Releasable=shift @$Line;
+				CheckSource_MetaData(%CheckSourceEXPORTSMetaData, $CurFile, "PRJ_".$Section, $Releasable, $LineNum);
+				$Releasable = &Path_Norm ($Releasable);
+				$emReleasable=ucfirst $Releasable;
+				if ($emReleasable=~/^([A-Z]):(\\.*)$/)  {
+				  	$emReleasable=~s/://;
+					$Releasable=$EPOCDataPath.$emReleasable;
+				}
+			}
+
+			my $sourceExportTypeSuffix = "";
+			$sourceExportTypeSuffix .= " (NO DESTINATION)" if (!$Releasable && $Section =~ /^EXPORTS$/);		
+			CheckSource_MetaData(%CheckSourceEXPORTSMetaData, $CurFile, "PRJ_".$Section.$sourceExportTypeSuffix, $loggedSourceExport, $LineNum, $CheckSource_PhysicalCheck);
+			
+			if (@$Line) {
+				$unzip_option = shift @$Line;
+				unless ($unzip_option=~ /overwrite/i) {
+					push @PrjFileDie, "$CurFile($LineNum) : Too many arguments in exports section line\n";
+					next LINE;
+				}
+			}
+			unless ($Type eq 'zip' or &Path_Split('File', $Releasable)) {
+#				use the source filename if no filename is specified in the destination
+#				no filename for archives
+				$Releasable.=&Path_Split('File', $Source);
+			}
+			my $defpath;
+			if ($Type eq 'zip') {
+#				archives relative to EPOCROOT
+				$defpath = $ENV{EPOCROOT};
+			}
+			elsif (($Section =~ /EXPORTS$/) && ($Releasable =~ s/^\|[\/|\\]?//)) {
+#			'|' prefix forces "relative to bld.inf file" in PRJ_[TEST]EXPORTS destinations
+				$defpath = $CurFile;
+			}
+			elsif ($Section eq 'EXPORTS') {
+#				assume the destination is relative to $EPOCIncPath
+				$defpath = $EPOCIncPath;
+			}
+			else {
+				$defpath = $CurFile;
+			}
+			$Releasable=&Path_MakeEAbs($EPOCPath, $defpath, $Releasable);
+
+#			sanity checks!
+			if ($Type eq 'file' && $ExportCheck{uc $Releasable}) {
+				push @PrjFileDie, "$CurFile($LineNum) : Duplicate export $Releasable (from line $ExportCheck{uc $Releasable})\n";
+				next LINE;
+			}
+			$ExportCheck{uc $Releasable}="$CurFile: $LineNum";
+			if (! -e $Source) {
+				WarnOrDie(\@PrjFileDie, "$CurFile($LineNum) : Exported source file $Source not found\n");
+			}
+			elsif ($Type ne 'zip' && -d $Releasable) {
+				push @PrjFileDie, "$CurFile($LineNum) : Export target $Releasable must be a file.\n";
+			}
+			else {
+				if ($Section eq 'EXPORTS') {
+					push @$ExportsRef, {
+						'Source'=>$Source,
+						'Releasable'=>$Releasable,
+						'emReleasable'=>$emReleasable,
+						'Type'=>$Type,
+						'UnzipOption'=>$unzip_option
+					};
+				}
+				else {
+					push @$TestExportsRef, {
+						'Source'=>$Source,
+						'Releasable'=>$Releasable,
+						'emReleasable'=>$emReleasable,
+						'Type'=>$Type,
+						'UnzipOption'=>$unzip_option
+					};
+				}
+			}
+			next LINE;
+		}
+	}
+	if (@PrjFileDie) {
+		print STDERR
+			"\n${BldInfPath}$BldInfName FATAL ERROR(S):\n",
+			@PrjFileDie
+		;
+		exit 1;
+	}
+
+#	set the list of platforms to the default if there aren't any platforms specified,
+#	else add platforms to the global list unless they're scheduled for removal,
+	unless (@Plats) {
+		@$PlatsRef=@DefaultPlats;
+		# Include the list of BPABI Platforms in a default build.
+		my $OptionalPlat;
+		foreach $OptionalPlat (@OptionalPlats) {
+			#	VS6 and VS2003 are not real platforms and hence are not included in a default build
+			unless ( $OptionalPlat eq 'VS6' || $OptionalPlat eq 'VS2003') {
+				if (not grep /^$OptionalPlat$/i, @$PlatsRef) {
+					push @$PlatsRef, $OptionalPlat;
+				}
+			}
+		}		
+	}
+	else {
+		my $Plat;
+		foreach $Plat (@Plats) {
+			unless ($RemovePlats{$Plat}) {
+				push @$PlatsRef, $Plat;
+			}
+		}
+		push @PlatsReq , @$PlatsRef;
+	}
+}
+
+sub ExportDirs ($) {
+	my ($ExportsRef)=@_;
+
+	my %ExportDirHash;
+	foreach (@$ExportsRef) {
+		my $dir = ($$_{Type} eq 'zip') ? $$_{Releasable} : &Path_Split('Path',$$_{Releasable});
+		if ($dir) {
+			$dir=&Path_Chop($dir);
+			$ExportDirHash{uc $dir}=$dir;
+		}
+	}
+	my @ExportDirs;
+	foreach (keys %ExportDirHash) {
+		push @ExportDirs, $ExportDirHash{$_};
+	}
+	@ExportDirs;
+}
+
+
+sub ParseBldInfPlat ($$$$) {
+	my ($DataRef, $TestDataRef, $Plat, $BldInfPath, $FeatureVar)=@_;
+		
+#	get the platform .MMP macros
+	my %Plat;
+	eval { &Plat_GetL($Plat,\%Plat); };
+	&FatalError($@) if $@;
+
+#	get the raw data from the BLD.INF file
+	my @Prj2D;
+	eval { &Prepfile_ProcessL(\@Prj2D, "${BldInfPath}$BldInfName", ($FeatureVar ? $FeatureVar->{VARIANT_HRH} : $variantMacroHRHFile), @{$Plat{MmpMacros}}); };
+	&FatalError($@) if $@;
+
+	my %dummy;
+	my @userIncludes = ('.');
+	my @systemIncludes = ();
+	$CheckSourceBldInfIncludes{$Plat} = CheckSource_Includes("${BldInfPath}$BldInfName", %dummy, $variantMacroHRHFile, @{$Plat{MmpMacros}}, @userIncludes, @systemIncludes, $CheckSource_NoUserSystemDistinction);
+	
+#	process the raw data
+	my $IsExtensionBlock =0;
+	my (@ExtensionBlockData, $ErrorString);
+	my %Check;
+	my $Section=0;
+	my @PrjFileDie;
+	my $Line;
+	my $CurFile="${BldInfPath}$BldInfName";
+	LINE: foreach $Line (@Prj2D) {
+
+		my %Data;
+		my %Temp;
+
+		my $LineNum=shift @$Line;
+		if ($LineNum eq '#') {
+			$CurFile=shift @$Line;
+			next LINE;
+		}
+
+		$CurFile = &Path_Norm ($CurFile);
+		
+#		upper-case all the data here, but record original source case
+#		in a hash so that it can be recalled for CheckSource purposes
+
+		my %originalSourceCase;
+   		foreach (@$Line) {
+ 			$originalSourceCase{uc $_} = $_;  # needed for extension template makefile MACROs 
+   			$_=uc $_;
+   		}
+
+		$_=shift @$Line;
+
+#		check for section headers - don't test for the right ones here
+#		because we do that in the first parse function
+
+		if (/^PRJ_(\w*)$/o) {
+			$Section=$1;
+			next LINE;
+		}
+
+#		Skip section if PRJ_TESTMMPFILES and -notest option
+		next LINE if ($Options{notest} && ($Section=~/^(TESTMMPFILES)$/o)); 
+
+#		check for EXTENSION sections
+		if ($Section=~/^(EXTENSIONS|TESTEXTENSIONS)$/o) {
+
+#			We have an extension block
+			if (/^start(\w*)$/io) {
+				if ($IsExtensionBlock) {
+					&FatalError("$CurFile($LineNum) : Cannot embed Extension Template 'start' sections\n");
+				}
+				$IsExtensionBlock =1;
+				$ErrorString = "$CurFile($LineNum)";
+				foreach (@$Line)
+				{
+				if (/^EXTENSION$/)
+					{
+					my $extensionTemplate = @$Line[scalar(@$Line)-1];
+					CheckSource_MetaData(%CheckSourceEXTENSIONSMetaData, $CurFile, "PRJ_".$Section, $originalSourceCase{$extensionTemplate}.".mk", $LineNum, $CheckSource_PhysicalCheck) if ($extensionTemplate);
+					}
+				}
+
+				push @ExtensionBlockData, $Line; 			
+				next LINE;
+			}		
+			
+			if (($IsExtensionBlock) & (! (/^end(\w*)$/io))) {
+				if (($_ ne "TOOL") & ($_ ne "OPTION") & ($_ ne "TARGET") & ($_ ne "SOURCES") & ($_ ne "DEPENDENCIES")) {
+							&FatalError("$CurFile($LineNum) : Unrecognised keyword: $_.  Is there an 'end' corresponding to the 'start' for the Extension Template?\n"); 
+				}
+				if ($_ ne "OPTION") {
+					unshift(@$Line, $_);					
+				}
+#				Need to revert MACROs back to their original case
+				foreach (@$Line) {
+					$_=$originalSourceCase{$_};
+				}
+				push @ExtensionBlockData, $Line; 
+				next LINE;
+			}
+			
+			if (/^end(\w*)$/io) {
+				if (! $IsExtensionBlock) {
+					&FatalError("$CurFile($LineNum) : No 'start' corresponding to this 'end' in Extension Template section\n"); 
+				}
+				$IsExtensionBlock =0;
+				my $OutDir=Path_Chop($E32env::Data{BldPath}).$BldInfPath;
+#				Generate wrapper makefile for this platform.
+				eval { &Load_ModuleL('WrapperMakefile'); };
+					&FatalError($@) if $@;
+				$OutDir=~ s/\\/\//g;  # convert to unix slashes for wrappermakefile.pm
+				%Data = GenerateWrapper($Plat, $OutDir, $ErrorString, \@PrjFileDie, @ExtensionBlockData);
+				if (!$IgnoreMissingExtensionMakefile)
+				{
+					$Data{ExtensionRoot}=&Path_Split('Path', $CurFile);
+					$Data{Path}=~ s/\//\\/g;  # convert unix slashes back to win32 
+					$Data{Base}=~ s/\//\\/g;
+				}
+				@ExtensionBlockData = ();  # clear array
+			}
+		}
+
+#		check for MMP sections and get the .MMP file details
+		if ($Section=~/^(MMPFILES|TESTMMPFILES)$/o) {
+			$Data{Ext}='.MMP';
+#			check for MAKEFILE statements for custom building
+			my $SubSection = "MMP";
+			if (/^MAKEFILE$/o) {
+				$SubSection = $_;
+				$Data{Makefile}=2;  # treat MAKEFILE=>NMAKEFILE   =1;
+				$_=shift @$Line;
+				$Data{Ext}=&Path_Split('Ext', $_);
+			}
+			if (/^NMAKEFILE$/o) {
+				$SubSection = $_;
+				$Data{Makefile}=2;
+				$_=shift @$Line;
+				$Data{Ext}=&Path_Split('Ext', $_);
+			}
+			if (/^GNUMAKEFILE$/o) {
+				$SubSection = $_;
+				$Data{Makefile}=1;
+				$_=shift @$Line;
+				$Data{Ext}=&Path_Split('Ext', $_);
+			}
+			CheckSource_MetaData(%CheckSourceMMPFILESMetaData, $CurFile, "PRJ_$Section $SubSection", $originalSourceCase{$_}, $LineNum, $CheckSource_PhysicalCheck);
+			$_ = &Path_Norm ($_);
+			
+#			path considered relative to the current file
+			$Data{Path}=&Path_Split('Path', &Path_MakeAbs($CurFile, $_));
+
+#			this function doesn't care whether the .MMPs are listed with their extensions or not
+			$Data{Base}=&Path_Split('Base', $_);
+			my $MmpFile= $Data{Path}.$Data{Base};
+   
+#			check the file isn't already specified
+  			if ($Check{$MmpFile}) {
+  				push @PrjFileDie, "$CurFile($LineNum) : duplicate $Data{Base} (from line $Check{$MmpFile})\n";
+   				next;
+   			}
+  			$Check{$MmpFile}="$CurFile: $LineNum";
+
+#			check the file exists
+			unless (-e "$Data{Path}$Data{Base}$Data{Ext}") {
+				WarnOrDie(\@PrjFileDie, "$CurFile($LineNum) : $Data{Path}$Data{Base}$Data{Ext} does not exist\n");
+				next LINE;
+			}
+			
+
+#			process the file's attributes
+			if ($Section eq 'MMPFILES') {
+				foreach (@$Line) {
+					if (/^TIDY$/o) {
+						$Data{Tidy}=1;
+						next;
+					}
+					if (/^IGNORE$/o) {
+						next LINE;
+					}
+					if (/^BUILD_AS_ARM$/o) {
+					  $Data{BuildAsARM}="-arm";
+					  next;
+					}
+
+					push @PrjFileDie, "$CurFile($LineNum) : Don't understand .MMP file argument \"$_\"\n";
+				}
+			}
+
+#			process the test .MMP file's attributes
+			elsif ($Section eq 'TESTMMPFILES') {
+				foreach (@$Line) {
+					if (/^TIDY$/o) {
+						$Data{Tidy}=1;
+						next;
+					}
+					if (/^IGNORE$/o) {
+						next LINE;
+					}
+					if (/^BUILD_AS_ARM$/o) {
+					  $Data{BuildAsARM}="-arm";
+					  next;
+					}
+					if (/^MANUAL$/o) {
+						$Data{Manual}=1;
+						next;
+					}
+					if (/^SUPPORT$/o) {
+						$Data{Support}=1;
+						next;
+					}
+					push @PrjFileDie, "$CurFile($LineNum) : Don't understand test .MMP file argument \"$_\"\n";
+				}
+			}
+		}		
+
+#		store the data
+		if (($Section eq 'MMPFILES') or ($Section eq 'EXTENSIONS')) {
+			if ($IgnoreMissingExtensionMakefile and $Section eq 'EXTENSIONS')
+			{
+				# More than more ext makefile can be missing so reset indicator
+				$IgnoreMissingExtensionMakefile = 0;
+			}
+			else
+			{
+				push @$DataRef, \%Data;
+			}
+			next LINE;
+		}
+		if (($Section eq 'TESTMMPFILES') or ($Section eq 'TESTEXTENSIONS')) {
+			if ($IgnoreMissingExtensionMakefile and $Section eq 'TESTEXTENSIONS')
+			{
+				# More than more ext makefile can be missing so reset indicator
+				$IgnoreMissingExtensionMakefile = 0;
+			}
+			else
+			{
+				push @$TestDataRef, \%Data;
+			}
+			next LINE;
+		}
+		
+	}
+#	line loop end
+
+#	exit if there are errors
+	if (@PrjFileDie) {
+		print STDERR
+			"\n\"${BldInfPath}$BldInfName\" FATAL ERROR(S):\n",
+			@PrjFileDie
+		;
+		exit 1;
+	}
+}
+
+
+sub FatalError (@) {
+
+	print STDERR "BLDMAKE ERROR: @_\n";
+	exit 1;
+}
+
+sub CreatePlatformPm ($$$$$$) {
+	my ($BatchPath, $PlatsRef, $RealPlatsRef, $RealHRef, $AllPlatDataHRef, $AllPlatTestDataHRef)=@_;
+
+
+# 	exclude GCCXML, EDG and CWTOOLS  from list of RealPlats
+	my @RealPlats;
+	foreach my $Plat (@$RealPlatsRef){
+	unless (($Plat =~ /^gccxml/i)  or  ($Plat =~ /^edg/i) or  ($Plat =~ /^cwtools/i) or ($Plat =~ /^x86gcc/i) or ($Plat =~ /^x86gmp/i)) {
+# 	exclude BPABI targets from list of RealPlats provided they are not specified in the platform list
+				if (grep /^$Plat$/i, @OptionalPlats) {
+					if (grep /^$Plat$/, @PlatsReq) {
+						push @RealPlats, $Plat;
+					}
+					next;
+				}
+				push @RealPlats, $Plat;
+			}
+	}
+
+
+	&Output(
+		"# Bldmake-generated perl file - PLATFORM.PM\n",
+		"\n",
+		"# use a perl integrity checker\n",
+		"use strict;\n",
+		"\n",
+		"package Platform;\n",
+		"\n",
+		"use vars qw(\@Plats \@RealPlats %Programs %TestPrograms %FeatureVariantSupportingPlats);\n",
+		"\n",
+		"\@Plats=(\'",join('\',\'',@$PlatsRef),"\');\n",
+		"\n",
+		"\@RealPlats=(\'", join('\',\'',@RealPlats),"\');\n",
+		"\n",
+		"%Programs=(\n"
+	);
+	my %All; # all programs for all platforms
+	my $TmpStr;
+	my $Plat;
+	foreach $Plat (@$PlatsRef) {
+		$TmpStr="	\'$Plat\'=>[";
+		if (@{${$AllPlatDataHRef}{$$RealHRef{$Plat}}}) {
+			my $ProgRef;
+			foreach $ProgRef (@{${$AllPlatDataHRef}{$$RealHRef{$Plat}}}) {
+				$TmpStr.="'$$ProgRef{Base}',";
+				$All{$$ProgRef{Base}}=1;
+			}
+			chop $TmpStr;
+			}
+		&Output(
+			"$TmpStr],\n"
+		);
+		}
+	$TmpStr="	ALL=>[";
+	if (keys %All) {
+		my $Prog;
+		foreach $Prog (keys %All) {
+			$TmpStr.="'$Prog',";
+		}
+		chop $TmpStr;
+	}
+	&Output(
+		"$TmpStr]\n",
+		");\n",
+		"\n",
+		"%TestPrograms=(\n"
+	);
+	%All=();
+	foreach $Plat (@$PlatsRef) {
+		$TmpStr="	\'$Plat\'=>[";
+		if (@{${$AllPlatTestDataHRef}{$$RealHRef{$Plat}}}) {
+			my $ProgRef;
+			foreach $ProgRef (@{${$AllPlatTestDataHRef}{$$RealHRef{$Plat}}}) {
+				$TmpStr.="'$$ProgRef{Base}',";
+				$All{$$ProgRef{Base}}=1;
+			}
+			chop $TmpStr;
+		}
+		&Output("$TmpStr],\n");
+	}
+	$TmpStr="	ALL=>[";
+	if (keys %All) {
+		my $Prog;
+		foreach $Prog (keys %All) {
+			$TmpStr.="'$Prog',";
+		}
+		chop $TmpStr;
+	}
+	&Output(
+		"$TmpStr]\n",
+		");\n",
+		"\n"
+	);
+
+	&Output(
+		"\n",
+		"%FeatureVariantSupportingPlats=("
+	);
+
+	$TmpStr = "";
+	foreach $Plat (@$PlatsRef)
+		{
+		$TmpStr .= "\n\t$Plat=>1," if (&Plat_SupportsFeatureVariants($Plat));
+		}
+
+	chop $TmpStr;
+
+	&Output(
+		"$TmpStr\n",
+		");\n",
+		"\n",
+		"1;\n"
+	);
+
+#	write the PLATFORM.PM file
+	&WriteOutFileL($BatchPath."PLATFORM.PM");
+}
+
+sub CreatePerlBat ($) {
+	my ($BldInfPath)=@_;
+
+#	create ABLD.BAT, which will call ABLD.PL
+#   NB. must quote $BldInfPath because it may contain spaces, but we know it definitely
+#       ends with \ so we need to generate "\foo\bar\\" to avoid quoting the close double quote
+	&Output(
+		"\@ECHO OFF\n",
+		"\n", 
+		"REM Bldmake-generated batch file - ABLD.BAT\n",
+		"REM ** DO NOT EDIT **", 
+		"\n",
+		"\n",
+		"perl -w -S ABLD.PL \"${BldInfPath}\\\" %1 %2 %3 %4 %5 %6 %7 %8 %9\n",
+		"if errorlevel==1 goto CheckPerl\n",
+		"goto End\n",
+		"\n",
+		":CheckPerl\n",
+		"perl -v >NUL\n",
+		"if errorlevel==1 echo Is Perl, version 5.003_07 or later, installed?\n",
+		"goto End\n",
+		"\n",
+		":End\n"
+	);
+
+#	check that the .BAT file does not already exist and is read-only
+	if ((-e "${BldInfPath}ABLD.BAT")  && !(-w "${BldInfPath}ABLD.BAT")) {
+		warn "BLDMAKE WARNING: read-only ABLD.BAT will be overwritten\n";
+		chmod 0222, "${BldInfPath}ABLD.BAT";
+	}
+
+#	create the .BAT file in the group directory
+	&WriteOutFileL($BldInfPath."ABLD.BAT",1);
+
+}
+
+sub GetArchiveExportList($) {
+	my ($ExportRef) = @_;
+	my $Type = $ExportRef->{Type};
+	my $Src = $ExportRef->{Source};
+	my $Dest = $ExportRef->{Releasable};
+	$Dest = '' if (!defined($Dest));
+	my @list = ();
+	if ($Type eq 'zip') {
+		unless (open PIPE, "unzip -l $Src | ") {
+			warn "Can't unzip $Src\n";
+		}
+		while (<PIPE>) {
+			if (/^\s*\d+\s+\S+\s+\S+\s+(.*?)\s*$/) {
+#				ignore empty lines and anything that finishes with / 
+				unless(($1=~/\/\s*$/) || ($1=~/^$/)) {
+
+					my $member = $1;
+					$member =~ s/\$/\$\$/g;
+					if (!$Dest){
+						push @list, "$ENV{EPOCROOT}$member";
+					}
+					else{
+						push @list, "$Dest\\$member";
+					}
+				}
+			}
+		}
+		close PIPE;
+	}
+	return @list;
+}
+
+sub CreateExportMak ($$$) {
+	my ($Makefile, $ExportsRef, $ExpDirsRef)=@_;
+
+#	create EXPORT.MAKE
+
+	my $erasedefn = "\@erase";
+	$erasedefn = "\@erase 2>>nul" if ($ENV{OS} eq "Windows_NT");
+	&Output(
+		"ERASE = $erasedefn\n",
+		"\n",
+		"\n",
+		"EXPORT : EXPORTDIRS"
+	);
+	my $ref;
+	if (@$ExportsRef) {
+		foreach $ref (@$ExportsRef) {
+			if ($$ref{Type} eq 'zip') {
+				my @list = &GetArchiveExportList($ref);
+				foreach (@list) {
+					my $dst=$_;
+					&Output(
+						" \\\n",
+						"\t$dst"
+					);
+				}
+			} else {
+				my $name=&Path_Quote($$ref{Releasable});
+				&Output(
+					" \\\n",
+					"\t$name"
+				);
+			}
+		}
+	}
+	else {
+		&Output(
+			" \n",
+			"\t\@echo Nothing to do\n"
+		);
+	}
+	&Output(
+		"\n",
+		"\n",
+		"\n",
+		"EXPORTDIRS :"
+	);
+	my $dir;
+	foreach $dir (@$ExpDirsRef) {
+		$dir=&Path_Quote($dir);
+		&Output(
+			" $dir"
+		);
+	}
+	&Output(
+		"\n",
+		"\n"
+	);
+	foreach $dir (@$ExpDirsRef) {
+		&Output(
+			"$dir :\n",
+			    "\t\@perl -w -S emkdir.pl \"\$\@\"\n",
+			"\n"
+		);
+	}
+	&Output(
+		"\n",
+		"\n"
+	);
+	foreach $ref (@$ExportsRef) {
+		my $unzipoption = $$ref{UnzipOption};
+		CheckSource_ExportedIncludes($$ref{Source}, $$ref{Releasable}, %CheckSourceEXPORTSIncludes);
+		
+		if ($$ref{Type} eq 'zip') {
+			my $src = &Path_Quote($$ref{Source});
+			my $destdir = &Path_Quote($$ref{Releasable});
+			$destdir=$ENV{EPOCROOT} if (!defined($destdir) or ($destdir eq ''));
+			my @list = &GetArchiveExportList($ref);
+  			foreach (@list) {  				
+  				my $dst=$_;
+  				&Output(
+ 					"$dst : $src\n",
+  				);
+  			}
+			if ($unzipoption =~ /overwrite/i){
+				&Output(
+				"\t- unzip -o $src -d \"$destdir\"\n",
+				);
+			}
+			else{	
+				&Output(
+				"\t- unzip -u  -o $src -d \"$destdir\"\n",
+				);
+			}
+		} else {
+			my $dst=&Path_Quote($$ref{Releasable});
+			my $src=&Path_Quote($$ref{Source});
+			&Output(
+				"$dst : $src\n",
+					"\tcopy \"\$?\" \"\$\@\"\n",
+				"\n"
+			);
+		}
+	}
+	&Output(
+		"\n",
+		"\n"
+	);
+	if (@$ExportsRef) {
+		&Output(
+			"CLEANEXPORT :\n"
+		);
+		foreach $ref (@$ExportsRef) {
+			if ($$ref{Type} eq 'zip') {
+				my @list = &GetArchiveExportList($ref);
+				foreach (@list) {
+					my $dst=$_;
+					$dst =~ s/\//\\/go;
+					&Output(
+						"\t-\$(ERASE) \"$dst\"\n"
+					);
+				}
+			} else {
+				my $dst = $$ref{Releasable};
+				$dst =~ s/\//\\/go;
+				&Output(
+					"\t-\$(ERASE) \"$dst\"\n"
+				);
+			}
+		}
+		&Output(
+			"\n",
+			"WHAT :\n"
+		);
+		foreach $ref (@$ExportsRef) {
+			if ($$ref{Type} eq 'zip') {
+				my @list = &GetArchiveExportList($ref);
+				foreach (@list) {
+					my $dst=$_;
+					$dst =~ s/\//\\/go;
+					&Output(
+						"\t\@echo \"$dst\"\n"
+					);
+				}
+			} else {
+				my $dst = $$ref{Releasable};
+				$dst =~ s/\//\\/go;
+				&Output(
+					"\t\@echo \"$dst\"\n"
+				);
+			}
+		}
+	}
+	else {
+		&Output(
+			"CLEANEXPORT :\n",
+			"\t\@echo Nothing to do\n",
+			"WHAT :\n",
+			"\t\@rem do nothing\n"
+		);
+	}
+
+	&Output(
+		"\nCHECKSOURCE :\n"
+	);
+	
+	&Output (CheckSource_MakefileOutput(%CheckSourceEXPORTSMetaData));
+	&Output (CheckSource_MakefileOutput(%CheckSourceEXPORTSIncludes));
+
+	&Output("\n");
+	
+#	write EXPORT.MAKE
+	&WriteOutFileL($Makefile);
+}
+
+sub CreatePlatExports ($$) {
+	my ($RealPlat,$Exports)=@_;
+	my $Ref;
+	&Output(
+ 	"\n# Rules which handle the case when \$(CFG) is not defined\n\n" ,
+ 	"EXPORT:		\tEXPORTUREL EXPORTUDEB\n", 
+ 	"EXPORTCLEAN:	\tEXPORTCLEANUREL EXPORTCLEANUDEB\n",
+ 	"EXPORTWHAT:	\tEXPORTWHATUREL EXPORTWHATUDEB\n",
+  
+ 	"\n# definitions \n",
+ 	"DATAx = $ENV{EPOCROOT}epoc32\\data\n",
+ 	"EMULx = $ENV{EPOCROOT}epoc32\\$RealPlat\n",
+ 	"URELx = $ENV{EPOCROOT}epoc32\\release\\$RealPlat\\urel\n",
+ 	"UDEBx = $ENV{EPOCROOT}epoc32\\release\\$RealPlat\\udeb\n",
+ 	"\n"
+	);
+	
+	&Output( 
+	"# Exports to emulated drive A: to Y \n\n",
+	"EXPORTGENERIC : EXPORTDIRSGENERIC",
+	);
+	 
+	my @dirs;
+	my @expgen;
+	my %dirsg;
+	foreach $Ref (@$Exports) {
+	 	if ($$Ref{emReleasable}=~/^([A-Y])(\\.*)$/){
+		   my $exp="\\$$Ref{emReleasable}";
+	 	   if ($$Ref{Type} eq 'zip') {	
+			 my @list = &GetArchiveExportList($Ref);	
+			  foreach (@list) {
+				my $dst=&Path_Quote($_);
+				if ($dst=~/([^\\]*)$/o){
+					$dst=$1;
+				}
+				my $zipdest=$dst;
+				$zipdest =~ s/\//\\/g;
+			    push  @expgen, "$exp\\$zipdest";
+			    my $zippath= &Path_Chop(&Path_Split('Path', $zipdest));
+				if(!$zippath){
+					$dirsg{$exp}=$exp;
+				}
+				else{
+					 $dirsg{"$exp\\$zippath"}="$exp\\$zippath";
+				}
+				&Output(" \\\n","\t\$(EMULx)$exp\\$zipdest");
+			 }      
+		 }
+		 else { 
+		     my $dir =  &Path_Chop(&Path_Split('Path', $exp));  
+			 push @expgen,  $exp;	
+			 $dirsg{$dir}=$dir;
+			 &Output(" \\\n", "\t\$(EMULx)$exp "); 
+		 }
+	   }
+	}
+	&Output("\n\nEXPORTDIRSGENERIC : ");
+	foreach (keys %dirsg){
+			 push @dirs, "\$(EMULx)$dirsg{$_}";
+			 &Output(" \\\n", "\t\$(EMULx)$_"); 
+	} 
+	&Output("\n\n");
+	foreach (@expgen){	 
+			&Output( 
+			"\$(EMULx)$_ : \t\$(DATAx)$_ \n",
+			"\tcopy \"\$?\" \"\$@\" \n"
+			);
+	}	
+	&Output("\nEXPORTCLEANGENERIC :\n");		
+	foreach (@expgen){	 
+			&Output("\t-@\$(ERASE) \$(EMULx)$_ \n");
+	} 			
+	&Output("\nEXPORTWHATGENERIC :\n");			
+	foreach (@expgen){	   
+			&Output("\t\@echo \$(EMULx)$_ \n");
+	}
+		
+	&Output( 
+	 		"\n\n# Exports to emulated drive Z: - UREL version \n\n",
+	 		"EXPORTUREL : EXPORTDIRSUREL",
+	 	   );
+	
+	my @expurel; 
+	my %dirsurel;
+	foreach $Ref (@$Exports) {
+		if ($$Ref{emReleasable}=~/^(Z)(\\.*)$/){
+			my $exp="\\$$Ref{emReleasable}";
+	 	    if ($$Ref{Type} eq 'zip') {
+			  my @list = &GetArchiveExportList($Ref);
+			  foreach (@list) {
+				my $dst=&Path_Quote($_);
+				if ($dst=~/([^\\]*)$/o){
+					$dst=$1;
+				}
+				my $zipdest=$dst;
+				$zipdest=~ s/\//\\/g;
+				push  @expurel, "$exp\\$zipdest"; 
+				my $zippath= &Path_Chop(&Path_Split('Path', $zipdest)); 
+				if(!$zippath){
+				   $dirsurel{$exp}=$exp;
+				}
+				else{
+					$dirsurel{"$exp\\$zippath"}="$exp\\$zippath";
+				}
+				&Output(" \\\n","\t\$(URELx)$exp\\$zipdest");
+			}  
+		}
+		else {
+			  my $dir =  &Path_Chop(&Path_Split('Path', $exp));  
+			  push @expurel,  $exp; 
+			  $dirsurel{$dir}=$dir;
+			  &Output(" \\\n", "\t\$(URELx)$exp "); 
+		}
+	  }
+	} 
+	&Output("\n\nEXPORTDIRSUREL : ");
+	foreach (keys %dirsurel){
+			push @dirs, "\$(URELx)$dirsurel{$_}";
+   			&Output(" \\\n", "\t\$(URELx)$_ "); 
+	}
+	&Output("\n\n");	
+	foreach (@expurel){
+			 &Output( 
+					"\$(URELx)$_ : \t\$(DATAx)$_ \n",
+					"\tcopy \"\$?\" \"\$@\" \n"
+			 );
+	}		
+	&Output("\nEXPORTCLEANUREL :\n"); 		
+	foreach (@expurel){	
+			 &Output("\t-@\$(ERASE) \$(URELx)$_ \n"); 
+	}  
+	&Output("\nEXPORTWHATUREL :\n");	
+	foreach (@expurel){	
+			 &Output( "\t\@echo \$(URELx)$_ \n"); 	
+	}
+	   
+	&Output( 
+	 		"\n\n# Exports to emulated drive Z: - UDEB version \n\n",
+	 		"EXPORTUDEB : EXPORTDIRSUDEB",
+	);  
+	 	   
+	my %dirsudeb=%dirsurel;          
+	my @expudeb=@expurel;
+	foreach (@expudeb){
+	         &Output(" \\\n", "\t\$(UDEBx)$_ ");		  
+	}
+	&Output("\n\nEXPORTDIRSUDEB : ");
+	foreach(keys %dirsudeb){
+	  		push @dirs, "\$(UDEBx)$dirsudeb{$_}";
+	  		&Output(" \\\n", "\t\$(UDEBx)$_ "); 
+	  	
+	}
+	&Output("\n\n");
+	foreach (@expudeb){
+	 		 &Output( 
+					"\$(UDEBx)$_ : \t\$(DATAx)$_ \n",
+					"\tcopy \"\$?\" \"\$@\" \n"
+			 );
+	}			
+	&Output("\nEXPORTCLEANUDEB :\n");
+	foreach (@expudeb){	
+			 &Output("\t-@\$(ERASE) \$(UDEBx)$_ \n"); 
+	}  
+	&Output("\nEXPORTWHATUDEB :\n");	
+	foreach (@expudeb){	
+			 &Output("\t\@echo \$(UDEBx)$_ \n"); 	
+	}
+	
+    &Output("\n# Directories \n\n");  
+	&Output(join (" \\\n", @dirs)." :")       
+	&Output("\n\t\@perl -w -S emkdir.pl \$@\n\n");			
+		   		
+}
+
+sub CreatePlatMak ($$$$$$$$$;$) {
+	my ($BatchPath, $E32MakePath, $DataRef, $Plat, $RealPlat, $RomDir, $Module, $BldInfPath, $Exports, $Test, $FeatureVariant)=@_;
+	$FeatureVariant = "" if (!$FeatureVariant);
+
+	unless ($Test) {
+		$Test='';
+	}
+	else {
+		$Test='TEST';
+	}
+
+	my $Ref;
+	my $eDrive=0;
+	if ($RealPlat =~ /^WINS/) {
+	    foreach $Ref (@$Exports) {
+			if ($$Ref{emReleasable}=~/^([A-Z])(\\.*)$/) {
+				$eDrive=1;
+				last;
+			}
+		}
+	} 
+
+
+	my $OutRomFile="$RomDir$RealPlat$Test.IBY";
+	my $GCCDir="gcc\$(PBUILDPID)\\bin";
+	
+	my $erasedefn = "\@erase";
+	$erasedefn = "\@erase 2>>nul" if ($ENV{OS} eq "Windows_NT");
+
+# Get the root platform name to support hierarchy of customizations	
+	my $root = Plat_Root($Plat);
+
+	my $config_file = "";
+
+	if (grep /^$root$/i, @BPABIPlats) {
+		$config_file = BPABIutl_Config_Path($root);
+	}
+
+	my $rvct_path = "";
+
+	if ( $config_file ) {
+
+		if ($root =~ /^ARMV\d/) {
+
+			unless ( RVCT_plat2set::compiler_exists($Plat) )
+			{
+				FatalError("Can't find any RVCT installation.");
+			}
+
+			my $rvct_ver = RVCT_plat2set::get_version_string($Plat);
+
+			if ($Plat =~ "^ARMV5" && $rvct_ver lt "2.2.559")
+			{
+				warn "BLDMAKE WARNING: ARMV5 requires at least RVCT 2.2.559.";
+				OutText();
+				return;
+			}
+
+			if ($Plat =~ "^ARMV6" && $rvct_ver lt "2.2.559")
+			{
+				warn "BLDMAKE WARNING: ARMV6 requires at least RVCT 2.2.559.";
+				OutText();
+				return;
+			}
+
+			if ($Plat =~ "^ARMV7" && $rvct_ver lt "3.1.674")
+			{
+				warn "BLDMAKE WARNING: ARMV7 requires at least RVCT 3.1.674.";
+				OutText();
+				return;
+			}
+
+			my $rvct_bin_name = RVCT_plat2set::get_bin_name($Plat);
+			my $rvct_bin_path = RVCT_plat2set::get_bin_path($Plat);
+			my $rvct_inc_name = RVCT_plat2set::get_inc_name($Plat);
+			my $rvct_inc_path = RVCT_plat2set::get_inc_path($Plat);
+			my $rvct_lib_name = RVCT_plat2set::get_lib_name($Plat);
+			my $rvct_lib_path = RVCT_plat2set::get_lib_path($Plat);
+
+			main::Output("export $rvct_bin_name:=$rvct_bin_path\n");
+			main::Output("export $rvct_inc_name:=$rvct_inc_path\n");
+			main::Output("export $rvct_lib_name:=$rvct_lib_path\n");
+
+			my ($rvct_M, $rvct_m, $rvct_b) = RVCT_plat2set::get_version_list($Plat);
+
+			Output( "\n" );
+			Output( "export RVCT_VER_MAJOR:=$rvct_M\n" );
+			Output( "export RVCT_VER_MINOR:=$rvct_m\n" );
+			Output( "export RVCT_VER_BUILD:=$rvct_b\n" );
+
+			$rvct_path = "\$($rvct_bin_name);"; # Example: '$(RVCT22BIN);'.
+		}
+
+		&Output(
+			"\n",
+			"export PLAT:=${Plat}\n\n",
+			"include $config_file\n\n"
+		);
+	}
+# modified start: makefile improvement 
+	unless($FeatureVariant eq "")
+	{
+# modified by SV start: makefile improvement 
+		foreach $Ref (@$DataRef) {
+			&Output(
+			"include $BatchPath"."FeatureVariantInfo\\".uc($Plat)."\\"."$Plat$FeatureVariant.$$Ref{Base}.info\n\n",
+			);
+		}
+# modified by SV end: makefile improvement 
+	}
+# modified end: makefile improvement 
+	# Don't hardcode the rvct path if rvct auto switch feature is not enabled.
+	if ($ENV{ABLD_PLAT_INI}) 
+	{
+		&Output(
+		'export Path:=',&main::Path_Drive,$E32env::Data{EPOCPath},$GCCDir,";", $rvct_path,"\$(Path)\n",
+		"export PATH:=\$(Path)\n"
+		);
+	}
+	else
+	{
+		&Output(
+		'export Path:=',&main::Path_Drive,$E32env::Data{EPOCPath},$GCCDir,";", "\$(Path)\n",
+		"export PATH:=\$(Path)\n"
+		);
+	}
+
+	&Output(		
+		"\n",
+		"# prevent MAKEFLAGS variable from upsetting calls to NMAKE\n",
+		"unexport MAKEFLAGS\n",
+		"\n",
+		"ERASE = $erasedefn\n",
+		"\n",
+		"\n",
+		"ifdef EFREEZE_ALLOW_REMOVE\n",
+		"REMOVEMACRO := EFREEZE_ALLOW_REMOVE=-remove\n",
+		"endif\n",
+		"\n",
+		"\n"
+	);
+
+	if ($eDrive) {
+		# Generate exports into emulated drives
+		&CreatePlatExports($RealPlat,$Exports);
+	}
+	my $Command;
+	foreach $Command (qw(CLEAN CLEANMAKEFILE CLEANALL FINAL FREEZE LIBRARY MAKEFILE RESOURCE SAVESPACE TARGET LISTING WHATMAKEFILE)) {
+		&Output(
+			"$Command :"
+		);
+
+			 if ($eDrive and $Command eq 'CLEAN'){
+				 &Output(" EXPORTCLEANGENERIC EXPORTCLEAN\$(CFG) ");
+				 foreach $Ref (@$DataRef) {
+					 &Output(" $Command$$Ref{Base}");
+				 }
+			 }	    	 
+			 elsif ($eDrive and $Command eq 'RESOURCE'){
+				 &Output(" EXPORTGENERIC EXPORT\$(CFG) ");
+			   	 foreach $Ref (@$DataRef) {
+					 &Output(" $Command$$Ref{Base}");
+				 }
+				 
+				 foreach $Ref (@$DataRef) {
+					 &Output("\n\nRESOURCE$$Ref{Base} : EXPORTGENERIC EXPORT\$(CFG)");
+				 }
+			  }
+			  else {
+			        if(@$DataRef){
+			        	foreach $Ref (@$DataRef) {
+			        		&Output(" $Command$$Ref{Base}");
+			           }
+			          } 		
+			         else {
+			         	&Output("\n","\t\@echo Nothing to do\n");
+			         }
+			  }  
+		&Output("\n","\n");
+	}
+	
+	&Output(
+		"WHAT :"
+	);
+	if($eDrive){
+	  &Output(" EXPORTWHATGENERIC EXPORTWHAT\$(CFG) ");
+	}
+	my $whatcount=0;
+	foreach $Ref (@$DataRef) {
+		unless ($$Ref{Tidy}) {
+			$whatcount++;
+			&Output(
+				" WHAT$$Ref{Base}"
+			);
+		}
+	}
+	if ($whatcount==0 and !$eDrive) {
+		&Output(
+			"\n",
+			"\t\@rem do nothing\n" 
+		);
+	}
+
+	&Output(
+		"\n",
+		"\n",
+		"CHECKSOURCE :"
+	);
+	my $CheckSource=' CHECKSOURCE_GENERIC';
+	foreach $Ref (@$DataRef) {
+		$CheckSource.=" CHECKSOURCE$$Ref{Base}" if ($$Ref{Ext} eq ".MMP");
+	}
+	&Output(
+		"$CheckSource\n"
+	);
+
+	&Output(
+		"\n",
+		"CHECKSOURCE_GENERIC :\n"
+	);
+
+	if ($CheckSourceBldInfIncludes{$Plat})
+		{
+		my %dummy;
+		$dummy{$CheckSourceBldInfIncludes{$Plat}} = 1;
+		&Output (CheckSource_MakefileOutput(%dummy));		
+		}
+
+	&Output (CheckSource_MakefileOutput(%CheckSourceMMPFILESMetaData));
+	&Output (CheckSource_MakefileOutput(%CheckSourceEXTENSIONSMetaData));
+	
+	&Output(
+		"\n",
+		"\n",
+		"TIDY :"
+	);
+	my $Tidy='';
+	foreach $Ref (@$DataRef) {
+		if ($$Ref{Tidy}) {
+			$Tidy.=" TIDY$$Ref{Base}";
+		}
+	}
+	if ($Tidy) {
+		&Output(
+			"$Tidy\n"
+		);
+	}
+	else {
+		&Output(
+			"\n",
+			"\t\@echo Nothing to do\n"
+		);
+	}
+	&Output(
+		"\n",
+		"\n"
+	);
+#	change for non-EPOC platforms
+	if ($RealPlat=~/^(WINS|WINSCW|WINC|TOOLS|TOOLS2)$/o) {
+		&Output(
+			"ROMFILE :\n"
+		);
+	}
+	else {
+		&Output(
+			'ROMFILE : STARTROMFILE'
+		);
+		foreach $Ref (@$DataRef) {
+			&Output(
+				" ROMFILE$$Ref{Base}"
+			);
+		}
+		&Output(
+			"\n",
+			"\n",
+			"STARTROMFILE :\n",
+			    "\t\@perl -w -S emkdir.pl \"", &Path_Chop($RomDir), "\"\n",
+			    "\t\@echo // $OutRomFile > $OutRomFile\n",
+			    "\t\@echo // >> $OutRomFile\n"
+		);
+		if ($Test) {
+			my ($Auto, $Manual);
+			foreach $Ref (@$DataRef) {
+				++$Auto unless ($$Ref{Manual} or $$Ref{Support});
+				++$Manual if ($$Ref{Manual});
+			}
+			if ($Auto) {
+				my $IbyTextFrom="data=$BatchPath$Plat.AUTO.BAT";
+				my $IbyTextTo="Test\\$Module.AUTO.BAT";
+				my $Spaces= 60>length($IbyTextFrom) ? 60-length($IbyTextFrom) : 1; 
+				&Output("\t\@echo ", $IbyTextFrom, ' 'x$Spaces, $IbyTextTo, ">> $OutRomFile\n");
+			}
+			if ($Manual) {
+				my $IbyTextFrom="data=$BatchPath$Plat.MANUAL.BAT";
+				my $IbyTextTo="Test\\$Module.MANUAL.BAT";
+				my $Spaces= 60>length($IbyTextFrom) ? 60-length($IbyTextFrom) : 1; 
+				&Output("\t\@echo ", $IbyTextFrom, ' 'x$Spaces, $IbyTextTo, ">> $OutRomFile\n");
+			}
+		}
+	}
+	&Output(
+		"\n",
+		"\n"
+	);
+	my $CallNmake='nmake -nologo -x - $(VERBOSE) $(KEEPGOING)';
+	my $CallGNUmake='$(MAKE) $(VERBOSE) $(KEEPGOING)';
+
+	my %PlatHash;
+	&Plat_GetL($RealPlat, \%PlatHash);
+	my $CallMake=$CallNmake;
+	if ($PlatHash{MakeCmd} eq "make") {
+		$CallMake="$CallGNUmake -r";
+	}
+	&Plat_GetL($Plat, \%PlatHash);
+	
+	foreach $Ref (@$DataRef) {
+
+#		standard commands
+		unless ($$Ref{Makefile}) {
+			my $MakefilePath=join('', &Path_Chop($E32MakePath), $BldInfPath, $$Ref{Base}, "\\", $RealPlat, "\\");
+# modified start: makefile improvement 
+			my $RealMakefile;
+			if($FeatureVariant eq "")
+			{
+				$RealMakefile="-f \"$MakefilePath$$Ref{Base}.$RealPlat$FeatureVariant\"";
+			}
+			else{
+				$RealMakefile="-f \"$MakefilePath$$Ref{Base}.$RealPlat.\$(VARIANT_PLAT_NAME_$$Ref{Base})\"";
+			}
+# modified end: makefile improvement 
+			my $MakefileBase="$MakefilePath$$Ref{Base}";		
+
+			if($Plat eq 'VS6' || $Plat eq 'VS2003')
+			{
+				$CallMake .= "-f ";
+				$RealMakefile = "$MakefileBase$PlatHash{Ext}";
+			}
+			&Output(
+				"MAKEFILE$$Ref{Base}_FILES= \\\n",
+					"\t\"$MakefileBase$PlatHash{Ext}$FeatureVariant\"",
+			);
+#			changes for WINS/WINSCW/WINC and VC6
+			if ($Plat =~ /^VC6/) {
+				&Output(
+					" \\\n\t\"$MakefileBase.DSW\"",
+					" \\\n\t\"$MakefileBase.SUP.MAKE\""
+				);
+			}
+			if ($Plat eq 'CW_IDE') {
+				&Output(
+					" \\\n\t\"$MakefileBase.pref\""		# Defect: actually uses $BaseTrg, not mmp file name
+				);
+			}
+			if ($RealPlat=~/^(WINS|WINSCW|WINC)$/o) {
+				&Output(
+					" \\\n\t\"$MakefileBase.UID.CPP\""	# Defect: actually uses $BaseTrg, not mmp file name
+				);
+			}
+			
+  			my $bld_flags="";
+			$bld_flags="\$(ABLD_FLAGS)" if (($Plat =~ /^ARMV5(_ABIV1)?$/ || grep /$Plat/i, @BPABIPlats) || (Plat_Root($Plat) =~ /^ARMV5(_ABIV1)?$/ || grep /$Plat/i, @BPABIPlats));
+			
+			
+			my $build_as_arm_arg="";
+			$build_as_arm_arg = $$Ref{BuildAsARM} if ($$Ref{BuildAsARM});
+
+			# Compiler Wrapper option Support  
+			# Generate the flag to keep the Compiler Wrapper option information
+			my $cmp_wrap_flag="";
+			if (($Plat =~ /^ARMV5(_ABIV1)?$/ || grep /$Plat/i, @BPABIPlats) || ($Plat=~/^WINSCW$/) || (Plat_Root($Plat) =~ /^ARMV5(_ABIV1)?$/ || grep /$Plat/i, @BPABIPlats))
+			{
+				# for armv5 , armv5_abiv1, winscw and all bpabi plaforms
+				$cmp_wrap_flag="\$(ABLD_COMPWRAP_FLAG)" ;
+			}
+
+			&Output(
+				"\n",
+				"\n",
+				"MAKEFILE$$Ref{Base} :\n",
+				    "\tperl -w -S makmake.pl \$(NO_DEPENDENCIES) -D $$Ref{Path}$$Ref{Base} $Plat$FeatureVariant $build_as_arm_arg $bld_flags $cmp_wrap_flag\n",
+
+				"\n",
+				"CLEANMAKEFILE$$Ref{Base} :\n",
+				    "\t-\$(ERASE) \$(MAKEFILE$$Ref{Base}_FILES)\n",
+				"\n",
+				"WHATMAKEFILE$$Ref{Base} :\n",
+				    "\t\@echo \$(MAKEFILE$$Ref{Base}_FILES)\n",
+				"\n",
+				"TARGET$$Ref{Base} :\n",
+				    "\t$CallMake $RealMakefile \$(CFG)\n",
+				"\n",
+				"SAVESPACE$$Ref{Base} :\n",
+				    "\t$CallMake $RealMakefile \$(CFG) CLEANBUILD\$(CFG)\n",
+				"\n",
+				"LISTING$$Ref{Base} :\n",
+				    "\t$CallMake $RealMakefile MAKEWORK\$(CFG) LISTING\$(CFG)\$(SOURCE)\n",
+				"\n",
+				"FINAL$$Ref{Base} :\n",
+				    "\t\@rem do nothing\n",
+				"\n",
+			);
+			foreach $Command (qw(CLEANALL)) {
+				&Output(
+					"CLEANALL$$Ref{Base} :\n",
+					"\tperl -w -S ermdir.pl $MakefilePath\n",
+					"\n",
+				);
+			}
+			foreach $Command (qw(CLEAN RESOURCE)) {
+				&Output(
+					"$Command$$Ref{Base} :\n",
+					    "\t$CallMake $RealMakefile $Command\$(CFG)\n",
+					"\n"
+				);
+			}
+			foreach $Command (qw(LIBRARY)) {
+				&Output(
+					"$Command$$Ref{Base} :\n",
+					    "\t$CallMake $RealMakefile $Command\n",
+					"\n"
+				);
+			}
+			foreach $Command (qw(FREEZE)) {
+				&Output(
+					"$Command$$Ref{Base} :\n",
+					    "\t$CallMake $RealMakefile $Command \$(REMOVEMACRO)\n",
+					"\n"
+				);
+			}
+			unless ($$Ref{Tidy}) {
+				&Output(
+					"WHAT$$Ref{Base} :\n",
+					    "\t\@$CallMake -s $RealMakefile WHAT\$(CFG)\n",
+					"\n"
+				);
+			}
+			else {
+				&Output(
+					"TIDY$$Ref{Base} :\n",
+					    "\t$CallMake $RealMakefile CLEANRELEASE CLEANLIBRARY\n",
+					"\n"
+				);
+			}
+			
+			&Output(
+				"CHECKSOURCE$$Ref{Base} :\n",
+					"\t\@$CallMake -s $RealMakefile CHECKSOURCE\n",
+					"\t\@$CallMake -s $RealMakefile CHECKSOURCE\$(CFG)\n",
+				"\n"
+				);
+			&Output(
+				"ROMFILE$$Ref{Base} :\n",
+				    "\t\@$CallMake $RealMakefile ROMFILE >> $OutRomFile\n",
+				"\n",
+				"\n"
+			);
+		}
+
+#		calls to custom makefiles
+		else {
+			my $ChopRefPath=&Path_Chop($$Ref{Path});
+			my $ChopBldInfPath=&Path_Chop($BldInfPath);
+			my $MakefileCall;
+			if ($$Ref{Makefile}==2) {
+				$MakefileCall="cd $ChopRefPath;$CallNmake";
+			} else {
+				$MakefileCall="$CallGNUmake -C $ChopRefPath";
+			}
+			$MakefileCall.=" -f \"$$Ref{Base}$$Ref{Ext}\" TO_ROOT=";
+			$MakefileCall.=&Path_Chop(&Path_UpToRoot($$Ref{Path}));
+			$MakefileCall.=" EPOCBLD=";
+			$MakefileCall.=join('', &Path_Chop(&Path_UpToRoot($$Ref{Path})), &Path_Chop($E32MakePath), $BldInfPath, $$Ref{Base}, "\\", $RealPlat);
+			$MakefileCall.=" TO_BLDINF=";
+			$MakefileCall.=join('', &Path_Chop(&Path_UpToRoot($$Ref{Path})), $ChopBldInfPath);
+			if ($$Ref{ExtensionRoot}) {
+				$MakefileCall.=" EXTENSION_ROOT=".&Path_Chop($$Ref{ExtensionRoot});
+			}
+			if ($$Ref{BuildAsARM}) {
+			  $MakefileCall.=" BUILD_AS_ARM=1";
+			}			  
+			&Output(
+# should change to MAKEFILE
+				"MAKEFILE$$Ref{Base} :\n",
+				    "\t$MakefileCall PLATFORM=$Plat MAKMAKE\n",
+				"\n",
+# should call in custom makefiles maybe
+				"CLEANMAKEFILE$$Ref{Base} :\n",
+				"#	$MakefileCall PLATFORM=$Plat CLEANMAKEFILE\n",
+				"\n",
+				"WHATMAKEFILE$$Ref{Base} :\n",
+				"#	\@$MakefileCall -s PLATFORM=$Plat WHATMAKEFILE\n",
+				"\n",
+# should change to TARGET
+				"TARGET$$Ref{Base} :\n",
+				    "\t$MakefileCall PLATFORM=$RealPlat CFG=\$(CFG) BLD\n",
+				"\n",
+# should ignore this target and just call the TARGET target instead?
+				"SAVESPACE$$Ref{Base} :\n",
+				    "\t$MakefileCall PLATFORM=$RealPlat CFG=\$(CFG) SAVESPACE\n",
+				"\n",
+				"LISTING$$Ref{Base} :\n",
+				"\n",
+				"\n",
+# should change to LIBRARY
+				"LIBRARY$$Ref{Base} :\n",
+				    "\t$MakefileCall PLATFORM=$RealPlat LIB\n",
+				"\n",
+				"FREEZE$$Ref{Base} :\n",
+					"\t$MakefileCall PLATFORM=$RealPlat FREEZE \$(REMOVEMACRO)\n",
+				"\n",
+			);
+
+			foreach $Command (qw(CLEANALL)) {
+				&Output(
+					"$Command$$Ref{Base} :\n",
+					"\t$MakefileCall PLATFORM=$RealPlat CFG=\$(CFG) CLEAN\n",
+					"\n"
+				);
+			}
+
+			foreach $Command (qw(CLEAN RESOURCE FINAL)) {
+				&Output(
+					"$Command$$Ref{Base} :\n",
+					    "\t$MakefileCall PLATFORM=$RealPlat CFG=\$(CFG) $Command\n",
+					"\n"
+				);
+			}
+			unless ($$Ref{Tidy}) {
+# should change to WHAT
+				&Output(
+					"WHAT$$Ref{Base} :\n",
+					    "\t\@$MakefileCall -s PLATFORM=$RealPlat CFG=\$(CFG) RELEASABLES\n",
+					"\n"
+				);
+			}
+			else {
+				&Output(
+					"TIDY$$Ref{Base} :\n",
+					    "\t$MakefileCall PLATFORM=$RealPlat TIDY\n",
+# should change to CLEANLIBRARY
+					    "\t$MakefileCall CLEANLIB\n",
+					"\n"
+				);
+			}
+			&Output(
+				"ROMFILE$$Ref{Base} :\n",
+				    "\t\@$MakefileCall PLATFORM=$RealPlat ROMFILE >> $OutRomFile\n",
+				"\n",
+				"\n"
+			);
+		}
+
+	}
+	
+	&WriteOutFileL("$BatchPath$Plat$FeatureVariant$Test.MAKE");
+}
+
+sub CreatePlatBatches ($$$) {
+	my ($OutDir, $DataRef, $Plat)=@_;
+
+#	create the test batch files
+#	this function won't work properly if the target basename is different from the .MMP basename
+#	so perhaps it should call makmake on the .mmp file to check
+
+	my $AutoText;
+	my $ManualText;
+
+	my $Ref;
+	foreach $Ref (@$DataRef) {
+		if ($$Ref{Manual}) {
+			$ManualText.="$$Ref{Base}\n";
+			next;
+		}
+		if ($$Ref{Ext} eq ".MK") {
+			next;
+		}
+		if ($$Ref{Support}) {
+			next;
+		}
+		else {
+			$AutoText.="$$Ref{Base}\n";
+		}
+	}
+
+	if ($AutoText) {
+		&Output($AutoText);
+		&WriteOutFileL("$OutDir$Plat.AUTO.BAT");
+	}
+
+	if ($ManualText) {
+		&Output($ManualText);
+		&WriteOutFileL("$OutDir$Plat.MANUAL.BAT");
+	}
+}
+
+sub WriteOutFileL ($$) { # takes batch file and boolean read-only flag
+	my ($BATFILE, $ReadOnly)=@_;
+
+	$BATFILE=~ s/\//\\/g;  # convert unix slashes from wrappermakefile.pm
+
+	eval { &Path_MakePathL($BATFILE); };
+	&FatalError($@) if $@;
+
+	open BATFILE,">$BATFILE" or &FatalError("Can't open or create Batch File \"$BATFILE\"");
+	print BATFILE &OutText or &FatalError("Can't write output to Batch File \"$BATFILE\"");
+	close BATFILE or &FatalError("Can't close Batch File \"$BATFILE\"");
+}
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/bldmake/egmak.fil	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,79 @@
+# Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# A template custom-build extension makefile - for carrying out build activities
+# not handled by MAKMAKE-generated makefiles.
+# List this file in the PRJ_MMPFILES or PRJ_TESTMMPFILES of your BLD.INF file with the
+# keyword MAKEFILE, e.g. MAKEFILE EGMAK.FIL.
+# All the targets below should be provided, even if they do nothing, or else errors may
+# be generated.
+# Extension makefiles and makefiles generated from .MMP files are called in the order
+# in which they are specified in the BLD.INF file.
+# You can use defines
+# !IF "$(PLATFORM)" == "[<platform>]"
+# !ENDIF
+# or
+# !IF "$(CFG)" == "[UDEB|UREL]"
+# !ENDIF
+# to carry out different activities for different platforms and build configurations.
+#
+
+
+# This target is called by ABLD CLEAN ...
+CLEAN :
+#	add commands here to clean your component.
+
+
+# This target is called by ABLD FINAL ...
+FINAL :
+#	add commands here to execute any required final activities to complete the building
+#	of your component.
+
+
+# This target is called by ABLD FREEZE ...
+FREEZE :
+#	add commands here to be carried out when exports are frozen.
+
+
+# This target is called by ABLD LIBRARY ...
+LIB :
+#	add commands here to be carried out when import libraries are created.
+
+
+# This target is called by ABLD MAKEFILE ...
+MAKMAKE :
+#	add commands here to be carried out when makefiles are created.
+
+
+# This target is called by ABLD RESOURCE ...
+RESOURCE :
+#	add commands here to be carried out when resources, bitmaps and aifs are created.
+
+
+# This target is called by ABLD TARGET ...
+BLD : 
+#	add commands here to be carried out when main executables are created.
+
+
+# This target is called by ABLD -savepace TARGET ...
+SAVESPACE :
+#	add commands here to be carried out when main executables are created and
+#	intermediate files are removed.
+
+
+# This target is called by ABLD -what TARGET ...  and ABLD -check TARGET ...
+RELEASABLES :
+#	add commands here to list the releasables this makefile will create.
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/bldmake/linkdeps.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,210 @@
+# Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Generate a link-dependency graph
+# Given a baseline list of components, look through the BLDMAKE
+# generated files to find the individual DLL and EXE makefiles.
+# Scan those makefile to find out which .LIB files are generated,
+# and which .LIB files are required, thereby deducing the 
+# component dependency graph.
+# 
+#
+
+my @components;
+my %component_releases;
+my %components_by_lib;
+my %libs_needed;
+my %component_deps;
+my $errors = 0;
+my @platforms = ("WINS", "ARMI", "MAWD");
+my $makefile_count=0;
+
+while (<>)
+	{
+	s/\s*#.*$//;
+	if ($_ =~ /^$/)
+		{
+		next;
+		}
+
+	if ($_ =~ /<option (\w+)(.*)>/)
+		{
+		# placeholder
+		next;	
+		}
+
+	push @components, lc $_;
+	}
+
+scan_bldmakes();
+
+if ($makefile_count==0)
+	{
+	error("No makefiles scanned!??");
+	}
+
+if (%libs_needed==0)
+	{
+	error("No libraries needed!??");
+	}
+
+foreach $lib (sort keys %libs_needed)
+	{
+	if ($components_by_lib{$lib} eq "")
+		{
+		error("library $lib is not produced by any component!");
+		$components_by_lib{$lib} = "($lib)";
+		}
+	}
+
+if ($errors > 0)
+	{
+	print "\n";
+	}
+
+foreach $component (sort keys %component_deps)
+	{
+	my %dependencies;
+
+	foreach $lib (split /\s+/, $component_deps{$component})
+		{
+		next if ($lib eq "");
+		my $dependent = $components_by_lib{$lib};
+		$dependencies{$dependent} = 1;
+		}
+
+	print "$component $component_releases{$component}:";
+	foreach $dependent (sort keys %dependencies)
+		{
+		next if ($dependent eq $component);
+		print " $dependent";
+		}
+	print "\n";
+	}
+
+sub scan_bldmakes
+	{
+	foreach $line (@components)
+		{
+		next if ($line =~ /<special (\w+)(.*)>/);
+		my ($name, $groupdir, $subdir, $release) = split /\s+/,$line;
+		$component_releases{$name} = $release;
+		my $bldmake = "\\epoc32\\build\\$groupdir";
+		if (! -d $bldmake)
+			{
+			error("bldmake failed for $name $release");
+			next;
+			}
+		foreach $platform (@platforms)
+			{
+			scan_bldmake_makefile($name,"$bldmake\\$platform.make");
+			}
+		}
+	}
+
+exit ($errors > 0);
+
+sub error
+	{
+	my ($text) = @_;
+	print "# ERROR: $text\n";
+	$errors+=1;
+	}
+
+# In \epoc32\build\<place>\wins.make
+#
+# SAVESPACEAPPARC :
+#	nmake -nologo $(VERBOSE) -f "\EPOC32\BUILD\APPARC\GROUP\WINS\APPARC.WINS" $(CFG) CLEANBUILD$(CFG)
+#
+# repeated N times
+
+sub scan_bldmake_makefile
+	{
+	my ($component, $makefile) = @_;
+	if (! -e $makefile) 
+		{
+		return;
+		}
+	open FILE, "<$makefile" or error("Can't open $makefile") and return;
+	while ($line = <FILE>)
+		{
+		if ($line =~ /^SAVESPACE/)
+			{
+			$line = <FILE>;
+			if ($line =~ /-f "(\S+)"\s/i)
+				{
+				scan_mmp_makefile($component,$1);
+				}
+			}
+		}
+	close FILE;
+	}
+
+# In \EPOC32\MAKE\LEXICON\WINS\INSO.WINS
+#
+# # MMPFile \LEXICON\GROUP\INSO.MMP
+# # Target INSO.LIB
+# # TargetType LIB
+# # GeneralTargetType LIB
+#
+
+# In \EPOC32\BUILD\APPARC\GROUP\WINS\APPARC.WINS
+#
+# LIBRARY : "$(EPOCLIB)UDEB\APPARC.LIB"
+#
+# LIBS= \
+#	"$(EPOCLINKDEB)\EUSER.LIB" \
+#	"$(EPOCLINKDEB)\EFSRV.LIB" \
+#	"$(EPOCLINKDEB)\GDI.LIB" \
+#	"$(EPOCLINKDEB)\ESTOR.LIB"
+#
+sub scan_mmp_makefile
+	{
+	my ($component, $makefile) = @_;
+	open SUBFILE, "<$makefile" or error("Can't open mmp $makefile for $component") and return;
+	$makefile_count++;
+	while ($line = <SUBFILE>)
+		{
+		if ($line =~ /^LIBRARY : .*\\(\S+)"/ || 
+			$line =~ /^# Target (\S+\.LIB)/)
+			{
+			my $built_lib = $1;
+			my $previous = $components_by_lib{$built_lib};
+			if ($previous && $previous ne $component)
+				{
+				error("$built_lib is generated by $component and $previous");
+				next;
+				}
+			$components_by_lib{$built_lib} = $component;
+			next
+			}
+		if ($line =~ /^LIBS= \\/)
+			{
+			while ($line = <SUBFILE>)
+				{
+				if ($line =~ /\\(\S+)"/)
+					{
+					$component_deps{$component} .= " $1";
+					$libs_needed{$1} = 1;
+					}
+				if ($line !~ /\\$/)
+					{
+					last;
+					}
+				}
+			}
+		}
+	close SUBFILE;
+	}
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/bldmake/metabld.bat	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,28 @@
+@REM Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+@REM All rights reserved.
+@REM This component and the accompanying materials are made available
+@REM under the terms of the License "Eclipse Public License v1.0"
+@REM which accompanies this distribution, and is available
+@REM at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@REM
+@REM Initial Contributors:
+@REM Nokia Corporation - initial contribution.
+@REM
+@REM Contributors:
+@REM
+@REM Description:
+@REM
+
+@echo off
+
+
+perl -w -S metabld.pl %1 %2 %3 %4 %5 %6 %7 %8 %9
+if errorlevel==1 goto CheckPerl
+goto End
+
+:CheckPerl
+perl -v >NUL
+if errorlevel==1 echo Is Perl, version 5.003_07 or later, installed?
+goto End
+
+:End
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/bldmake/metabld.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,368 @@
+# Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# all variables called *Path* are set up to end with a backslash
+# all variables called *Path or *File are stored as absolute (file)paths within makmake
+# all variables called UpPath* are stored as relative paths within makmake
+# 
+#
+
+use strict;
+
+use FindBin;		# for FindBin::Bin
+use File::Find;
+use Cwd;
+
+my $PerlLibPath;    # fully qualified pathname of the directory containing our Perl modules
+
+BEGIN {
+# check user has a version of perl that will cope
+	require 5.005_03;
+# establish the path to the Perl libraries: currently the same directory as this script
+	$PerlLibPath = $FindBin::Bin;	# X:/epoc32/tools
+	$PerlLibPath =~ s/\//\\/g;	# X:\epoc32\tools
+	$PerlLibPath .= "\\";
+}
+
+use lib $PerlLibPath;
+use E32env;
+use Prepfile;
+use Pathutl;
+
+# autoflush prevents our ouptut from getting jumbled up
+use FileHandle;
+autoflush STDOUT 1;
+autoflush STDERR 1;
+
+my (@Commands, @BldInfDirs);
+# should end in .mbc where .mbc means for "MetaBld Configuration file"
+# must end in .mbc if passed on command-line
+my $ConfigFile;
+
+my $StartDir=&cwd();
+my $relative;
+	{
+	# Process command-line
+	
+  	unless (@ARGV)
+		{
+		&Usage();
+		}
+	else
+		{
+		# check to see if we are using a relative path 
+	  	if ($ARGV[0] eq "-r")
+			{
+			$relative = 1;
+			shift @ARGV;
+			}
+
+		# check for a root from a config file in EPOCROOT dir as first argument
+	  	if (-e "$ENV{EPOCROOT}$ARGV[0].mbc")
+			{
+		  	$ConfigFile="$ENV{EPOCROOT}$ARGV[0].mbc";
+		  	shift @ARGV;
+			}
+		# check for a config file as the first argument
+	  	elsif ($ARGV[0]=~/.mbc$/io)
+			{
+			$ConfigFile=shift @ARGV;
+			if ($ConfigFile=~/^.:/o)
+				{
+				&Error("Config file can't be specified with a drive letter, as \"$ConfigFile\" is");
+				}
+			unless (-e $ConfigFile)
+				{
+				&Error("Can't find file $ConfigFile");
+				}
+			}
+		if (@ARGV)
+			{
+			# pass any other arguments as commands
+			@Commands=("@ARGV");
+			}
+		}
+	}
+
+	{
+	# scan config file if necessary
+	
+	if ($ConfigFile)
+		{
+		# make config file path absolute
+		$ConfigFile=&Path_AbsToWork($ConfigFile);
+		
+		my @Config2D;
+		eval { &Prepfile_ProcessL(\@Config2D, $ConfigFile); };
+		&Error($@) if $@;
+		
+		my %CheckDir;
+		
+		my @ConfigCommands;
+		my $Section='';
+		my @Death;
+		my $Line;
+		my $CurFile=$ConfigFile;
+	  LINE: foreach $Line (@Config2D)
+			{
+			my $LineNum=shift @$Line;
+			$_=shift @$Line;
+			if ($LineNum eq '#')
+				{
+				$CurFile=$_;
+				next;
+				}
+			if (/^SECTION_(\w*)$/io)
+				{
+				$Section=uc $1;
+				if ($Section=~/^(COMMANDS|DIRS|OPTIONALDIRS)$/o)
+					{
+					if (@$Line)
+						{
+						push @Death, "$CurFile($LineNum) : Can't specify anything on the same line as a section header\n";
+						}
+					next LINE;
+					}
+				push @Death, "$CurFile($LineNum) : Unknown section header - $_\n";
+				$Section=0;
+				next LINE;
+				}
+			unshift @$Line, $_;
+			if ($Section eq 'COMMANDS')
+				{
+				if ($$Line[0]=~/^ONEOFF$/io)
+					{
+					# check syntax for oneoff commands
+					unless (@$Line>=3)
+						{
+						push @Death, "$CurFile($LineNum) : Too few arguments for oneoff command\n";
+						}
+					# resolve oneoff dir relative to .mb file location
+					$$Line[1]=~s-^.*[^\\]$-$&\\-o; # add trailing backslash if necessary
+					$$Line[1]=&Path_MakeAbs($CurFile, $$Line[1]);
+					unless (-d $$Line[1])
+						{
+						warn "$CurFile($LineNum) : Can't find dir $$Line[1]\n";
+						}
+					}
+				push @ConfigCommands, "@$Line";
+				next LINE;
+				}
+			if ($Section eq 'DIRS' || $Section eq 'OPTIONALDIRS')
+				{
+				my $Dir;
+				foreach $Dir (@$Line)
+					{
+					if ($Dir=~/^.:/o)
+						{
+						push @Death, "$CurFile($LineNum) : directory $Dir is specified with a drive letter\n";
+						next;
+						}
+					$Dir=~s-^.*[^\\]$-$&\\-o;
+					$Dir=&Path_MakeAbs($CurFile, $Dir); # dirs must be the same for check
+					if ($CheckDir{uc $Dir})
+						{
+						# Silently ignore duplicate directories - #including of several .mbc files
+						# will often cause directory duplication.
+						# We can't do the same for duplicate commands because the order in which
+						# the commands are executed might be significant.
+						# push @Death, "$CurFile($LineNum) : Directory $Dir already specified\n";
+						next;
+						}
+					print "$Dir\n";
+					
+					unless (-d $Dir)
+						{
+						if ($Section ne 'OPTIONALDIRS')
+							{
+							push @Death, "$CurFile($LineNum) : Can't find directory $Dir\n";
+							}
+						next;
+						}
+					push @BldInfDirs, $Dir;
+					$CheckDir{uc $Dir}=$LineNum;
+					}
+				next LINE;
+				}
+			else
+				{
+				push @Death, "$CurFile($LineNum) : No section specified\n";
+				}
+			}
+		
+		if (@Death)
+			{
+			chomp $Death[$#Death];
+			&Error(@Death);
+			}
+		
+		# apply the commands unless already collected
+		unless (@Commands)
+			{
+			&Error("$ConfigFile : No Commands specified") unless @ConfigCommands;
+			@Commands=@ConfigCommands;
+			}
+		}
+	
+	# Should have commands now
+	&Usage() unless @Commands;
+	}
+
+	{
+	# Search for the BLD.INF files if necessary
+
+	my $mystartdir;
+	if ($relative)
+	{
+		$mystartdir = substr($StartDir, 2);
+	}
+
+	$mystartdir=~s:\/:\\:g;
+
+	if ($mystartdir ne "\\")
+		{
+		$mystartdir=$mystartdir."\\";
+		}
+
+	unless (@BldInfDirs)
+		{
+		# find the files in the source directories - skip the EPOCROOT directory
+		
+		my $EPOCROOTDir=$E32env::Data{EPOCPath};
+		$EPOCROOTDir=~s/^\\([^\\]*).*$/$1/o;
+		
+		opendir DIR, $mystartdir or &Error("Can't open dir: $!");
+		# remove ., .. and EPOCROOT dir
+		my @SrcDirs=grep !/^(\.\.?|$EPOCROOTDir|RECYCLER|System Volume Information)$/i, readdir DIR; 
+		foreach (@SrcDirs)
+			{
+			# prepend with current path
+			$_=$mystartdir.$_;
+			}
+		@SrcDirs=grep -d, @SrcDirs;
+		find(\&BldInfDirs, @SrcDirs);
+		@BldInfDirs=sort @BldInfDirs;
+
+		# if we are doing it relative to current location, need to include current dir
+		# if it contains a bld.inf
+		if (-f "BLD.INF" && $relative)
+			{
+			push @BldInfDirs, $mystartdir;
+			}
+
+		}
+	}
+
+	{
+	# Execute the commands
+	
+	my $Time=localtime;
+	print "=== metabld started $Time.\n";
+	my $Command;
+	foreach $Command (@Commands)
+		{
+		
+		$Time=localtime;
+		# Check if we should execute this command just the once
+		if ($Command=~s/^\s*ONEOFF\s+(\S+)\s+(.*)$/$2/io)
+			{
+			my $OneOffDir=$1;
+			# execute the command once rather than for each BLD.INF directory
+			chdir $OneOffDir or &Error("Can't change dir to $OneOffDir: $!");
+			print
+			(
+			 "===-------------------------------------------------\n",
+			 "=== $Command\n",
+			 "===-------------------------------------------------\n",
+			 "=== $Command started $Time.\n",
+			 "=== $Command == $OneOffDir\n"
+			);
+			system( "$Command");
+			}
+		else
+			{
+			# execute the command for each BLD.INF directory
+			print
+			(
+			 "===-------------------------------------------------\n",
+			 "=== $Command\n",
+			 "===-------------------------------------------------\n",
+			 "=== $Command started $Time.\n",
+			);
+			my $Dir;
+			foreach $Dir (@BldInfDirs)
+				{
+				chdir $Dir or &Error("Can't change dir to $Dir: $!");
+				print "=== $Command == $Dir\n";
+				system( "$Command");
+				}
+			}
+		chdir $StartDir or &Error("Can't change dir to $StartDir: $!");
+		$Time=localtime;
+		print "=== $Command finished $Time.\n";
+		}
+	}
+
+
+#################################################
+#	SUBROUTINES
+#################################################
+
+sub Usage
+	{
+	print <<ENDHERESTRING;
+usage: metabld [EPOCROOT .mbc file basename|.mbc config file] [command]
+MetaBld is a tool for carrying out build commands across several components.
+A .mbc config file contains directories and commands, eg:
+
+SECTION_COMMANDS
+bldmake bldfiles
+abld target wins udeb
+// "oneoff" means carry out command just once, not for each directory.
+// First arg after "oneoff" must be a start dir, and can be "."
+oneoff \\e32\\rombuild rom xxx
+oneoff . \\e32test\\group\\abld test build wins urel
+SECTION_DIRS
+\\e32
+\\f32\\group
+
+It's possible to #include lists of dirs from other files if necessary,
+and may be useful for carrying out different sets of commands on the same set
+of directories via different .mbc files.
+If a command is specified on the command-line, it will be executed instead
+of any commands specified in a .mbc file.
+If no directories are specified in a .mbc file, then all the directories
+containing a bld.inf file on the current drive will be searched for instead.
+ENDHERESTRING
+exit 1;
+}
+
+sub Error (@)
+	{
+	
+	die
+	@_, "\n",
+	"Error executing metabld.bat\n"
+	;
+	}
+
+sub BldInfDirs
+	{
+	s-\/-\\-go;
+	if (/^BLD.INF$/io)
+		{
+		$File::Find::dir=~s-\/-\\-go;
+		push @BldInfDirs, $File::Find::dir;
+		}
+	}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/bldmake/wrappermakefile.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,159 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+use strict;
+
+package		wrappermakefile;
+require Exporter;
+@wrappermakefile::ISA=qw(Exporter);
+@wrappermakefile::EXPORT=qw(
+	GenerateWrapper
+);
+
+use Output;
+
+my (@ExtensionUsedBefore);
+my $ExtTemplatesPath="$ENV{EPOCROOT}epoc32/tools/makefile_templates/";
+$ExtTemplatesPath=~ s/\\/\//g;  # convert win32 slashes to unix slashes
+my $DieRef;
+our $ExtMakefileMissing = 0;
+
+# Add prototyes to avoid -w warnings
+sub GenerateWrapper($$$$@);  
+sub ReadMetaFile($$$$);
+
+
+sub GenerateWrapper($$$$@) {	
+	my ($Plat,$OutDir, $ErrorString, $dieRef, @ExtensionBlockData) = @_;
+	$DieRef = $dieRef;
+	
+#	Generates a makefile which contains the settings for each invocation of an extension and calls
+#	through to the extension template makefile in /epoc32/tools/makefile_templates.
+#	@ExtensionBlockData holds the settings (makefile MACROs) defined within the start..end block in the bld.inf.
+
+	my $ExtHeader = shift(@ExtensionBlockData);
+
+	if (uc $ExtHeader->[0] ne "EXTENSION") {
+		&main::FatalError("$ErrorString : Extension Template blocks must contain the 'extension' keyword.\n");
+	}
+	if ($ExtHeader->[1] eq "") {
+		&main::FatalError("$ErrorString : The 'extension' does not have a name, the correct format is: 'start extension <name>'.\n");
+	}
+	my $ExtName = $ExtHeader->[1];
+
+#	Ensure that each extension invocation is uniquely identified by means of the global array 
+#	ExtensionUsedBefore.
+	my $Count=0;
+	push @ExtensionUsedBefore, $ExtName.$Plat;
+	foreach my $item(@ExtensionUsedBefore) {
+		if ($item eq $ExtName.$Plat) {
+			$Count = $Count + 1;
+		}
+	}
+
+#	Process the meta information for this extension template.
+	my %Data;
+	my %WrapperMakefileData = ReadMetaFile($ExtName, $ErrorString, \$Data{Makefile},$dieRef);
+	if ($ExtMakefileMissing)
+	{
+		main::ExtensionMakefileMissing($ExtMakefileMissing);
+		return;
+	}
+	$Data{Ext}='.MK';
+	$Data{Base}=$ExtName."_".$Plat."_".$Count;
+	$Data{Path}=$OutDir."wrappermakefiles/";
+
+#	Process ExtensionBlockData
+	foreach my $ExtBlockStatement (@ExtensionBlockData) {
+		my $Key = shift(@$ExtBlockStatement);
+		$WrapperMakefileData{$Key}=$ExtBlockStatement;
+	}
+
+#	CreateWrapperMakefile
+	&Output("# Bldmake generated wrapper makefile\n\n");
+	foreach my $Key (keys (%WrapperMakefileData))
+	{
+			&Output("$Key = "); 
+			foreach my $item(@{$WrapperMakefileData{$Key}}) {
+				&Output(" $item");
+			}
+			&Output("\n");
+	}
+	my $Filename = lc("$ExtName$Data{Ext}");
+	&Output("\ninclude $ExtTemplatesPath$Filename"); 
+	my $Path = lc("$Data{Path}");
+	&main::WriteOutFileL(lc ($Path.$ExtName."_".$Plat."_".$Count.$Data{Ext}));
+	%WrapperMakefileData = ();
+	return %Data;  
+}
+
+#  Read extension meta file data
+sub ReadMetaFile($$$$) {
+	my ($ExtName, $ErrorString, $Makefile,$dieRef) = @_;
+
+#	Parse the .meta file (found via $ExtName) for this extension template and return a hash 
+#	containing the default values (makefile MACROs) for this template.
+#	$Makefile is updated to indicate whether this a gnumake or nmake makefile.
+
+	my %MetaData;
+	my $Filename = lc("$ExtName");
+	$ExtMakefileMissing=0;
+	if (!open(METAFILE,"$ExtTemplatesPath$Filename.meta"))
+	{
+		&main::WarnOrDie($dieRef, "$ErrorString : Extension: $ExtName - cannot open META file: $ExtTemplatesPath$Filename.meta\n");
+		$ExtMakefileMissing = 1;
+		return;
+	}
+	LINE: while (<METAFILE>) {
+		chomp;		
+		my @Elements = split(/\s*\s\s*/);		
+		my $Keyword = uc shift(@Elements);
+
+		if ((! $Keyword) or ($Keyword =~ m/^#/)) {
+			next LINE;
+		}
+
+		if ($Keyword eq "MAKEFILE") {	
+			my $Makefiletype = uc shift(@Elements);		
+			if ($Makefiletype eq "GNUMAKE") {
+				$$Makefile=1;
+			}
+			if ($Makefiletype eq "NMAKE") {
+				$$Makefile=2;
+			}
+		}
+		elsif ($Keyword eq "OPTION") {
+			my $Key = shift(@Elements);
+			if ((! $Key) or (! $Elements[0])) {
+					&main::FatalError("$ErrorString : There is a syntax error in the META file ($ExtTemplatesPath$Filename.meta) for this extension ($ExtName) - the correct format for default options is: 'option <key> <value>'");
+				}
+			my @Values = @Elements;
+			$MetaData{$Key}=\@Values;
+		} 
+		elsif (($Keyword eq "TECHSTREAM") or ($Keyword eq "PLATFORM")) {
+			# not used
+		}
+		else {
+			&main::FatalError("$ErrorString : There is a syntax error in the META file ($ExtTemplatesPath$Filename.meta) for this extension ($ExtName) - unrecognised keyword:$Keyword");	
+		}
+	}
+	if (! $$Makefile) {
+		&main::FatalError("$ErrorString : There is a syntax error in the META file ($ExtTemplatesPath$Filename.meta) for this extension ($ExtName) - makefile type not specified [gnumake|nmake]");
+	}
+	close(METAFILE) or &main::FatalError("$ErrorString : Extension: $ExtName - cannot close Meta File:$ExtTemplatesPath$ExtName.meta\n");
+	return %MetaData;
+}
+
+1;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/design/makmake.mdl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,2075 @@
+
+(object Petal
+    version    	37)
+
+(object Design "<Top Level>"
+    is_unit    	TRUE
+    is_loaded  	TRUE
+    defaults   	(object defaults
+	rightMargin 	0.250000
+	leftMargin 	0.250000
+	topMargin  	0.250000
+	bottomMargin 	0.500000
+	pageOverlap 	0.250000
+	clipIconLabels 	TRUE
+	autoResize 	FALSE
+	snapToGrid 	TRUE
+	gridX      	0
+	gridY      	0
+	defaultFont 	(object Font
+	    size       	12
+	    face       	"Arial"
+	    bold       	FALSE
+	    italics    	FALSE
+	    underline  	FALSE
+	    strike     	FALSE
+	    color      	0
+	    default_color 	TRUE)
+	showMessageNum 	3
+	showClassOfObject 	TRUE
+	notation   	"Booch")
+    root_category 	(object Class_Category "<Top Level>"
+	exportControl 	"Public"
+	global     	TRUE
+	subsystem  	"<Top Level>"
+	logical_models 	(list unit_reference_list
+	    (object Class "MAKMAKE"
+		statemachine 	(object State_Machine
+		    states     	(list States
+			(object State "$UNNAMED$0"
+			    type       	"EndState")
+			(object State "$UNNAMED$1"
+			    transitions 	(list transition_list
+				(object State_Transition
+				    supplier   	"Load PERL Platform Module"
+				    Event      	(object Event "Buil")
+				    sendEvent  	(object sendEvent)))
+			    type       	"StartState")
+			(object State "Call PMGetBldList"
+			    documentation 	"Returns array of build types"
+			    transitions 	(list transition_list
+				(object State_Transition
+				    supplier   	"Call PMStartMakefile"
+				    sendEvent  	(object sendEvent))
+				(object State_Transition
+				    supplier   	"Call PMStartMakefile"
+				    sendEvent  	(object sendEvent)))
+			    type       	"Normal")
+			(object State "Call PMBld"
+			    transitions 	(list transition_list
+				(object State_Transition
+				    supplier   	"Call PMStartBldSPrjDoc"
+				    sendEvent  	(object sendEvent))
+				(object State_Transition
+				    supplier   	"if not defined PMStartBldSPrjSrc"
+				    sendEvent  	(object sendEvent))
+				(object State_Transition
+				    supplier   	"if not defined PMStartBldSPrjSrc"
+				    sendEvent  	(object sendEvent))
+				(object State_Transition
+				    supplier   	"if defined PMStartBldSPrjSrc"
+				    sendEvent  	(object sendEvent)))
+			    type       	"Normal")
+			(object State "Call PMStartBld"
+			    transitions 	(list transition_list
+				(object State_Transition
+				    supplier   	"Call PMBld"
+				    sendEvent  	(object sendEvent))
+				(object State_Transition
+				    supplier   	"Setup the next build"
+				    sendEvent  	(object sendEvent)))
+			    type       	"Normal")
+			(object State "Call PMStartBldSPrjDoc"
+			    transitions 	(list transition_list
+				(object State_Transition
+				    supplier   	"Call PMBld"
+				    sendEvent  	(object sendEvent))
+				(object State_Transition
+				    supplier   	"Call PMBldSPrjDoc"
+				    sendEvent  	(object sendEvent)))
+			    type       	"Normal")
+			(object State "Read MMP file"
+			    transitions 	(list transition_list
+				(object State_Transition
+				    supplier   	"Open Makefile"
+				    sendEvent  	(object sendEvent))
+				(object State_Transition
+				    supplier   	"Setup Globals"
+				    sendEvent  	(object sendEvent)))
+			    type       	"Normal")
+			(object State "Setup Globals"
+			    transitions 	(list transition_list
+				(object State_Transition
+				    supplier   	"Call PMStartMakefile"
+				    sendEvent  	(object sendEvent))
+				(object State_Transition
+				    supplier   	"Call PMGetBldList"
+				    sendEvent  	(object sendEvent)))
+			    type       	"Normal")
+			(object State "Call PMStartBldSPrjSrcList"
+			    transitions 	(list transition_list
+				(object State_Transition
+				    supplier   	"Call PMStartBldSPrjSrc"
+				    sendEvent  	(object sendEvent)))
+			    type       	"Normal")
+			(object State "Call PMSource"
+			    type       	"Normal")
+			(object State "Call PMBldSPrjDoc"
+			    transitions 	(list transition_list
+				(object State_Transition
+				    supplier   	"Call PMEndBldSPrjDoc"
+				    sendEvent  	(object sendEvent)))
+			    type       	"Normal")
+			(object State "Call PMStartMakefile"
+			    transitions 	(list transition_list
+				(object State_Transition
+				    supplier   	"CallPMStartBldList"
+				    sendEvent  	(object sendEvent))
+				(object State_Transition
+				    supplier   	"Call PMGetBldList"
+				    sendEvent  	(object sendEvent)))
+			    type       	"Normal")
+			(object State "Call PMStartBldSPrjList"
+			    transitions 	(list transition_list
+				(object State_Transition
+				    supplier   	"Call PMStartBldSPrj"
+				    sendEvent  	(object sendEvent)))
+			    type       	"Normal")
+			(object State "Call PMBldSPrj"
+			    transitions 	(list transition_list
+				(object State_Transition
+				    supplier   	"Call PMStartBldSPrjSrcList"
+				    sendEvent  	(object sendEvent)))
+			    type       	"Normal")
+			(object State "Call PMEndBldSPrjSrc"
+			    transitions 	(list transition_list
+				(object State_Transition
+				    supplier   	"Call PMStartBldSPrjSrc"
+				    sendEvent  	(object sendEvent))
+				(object State_Transition
+				    supplier   	"Call PMEndBldSPrjSrcList"
+				    sendEvent  	(object sendEvent)))
+			    type       	"Normal")
+			(object State "Call PMEndBldSPrjDoc"
+			    transitions 	(list transition_list
+				(object State_Transition
+				    supplier   	"Call PMStartBldSPrjDoc"
+				    sendEvent  	(object sendEvent))
+				(object State_Transition
+				    supplier   	"Call PMEndBldSPrjDocList"
+				    sendEvent  	(object sendEvent)))
+			    type       	"Normal")
+			(object State "Call PMEndBldSPrj"
+			    transitions 	(list transition_list
+				(object State_Transition
+				    supplier   	"Call PMStartBldSPrj"
+				    sendEvent  	(object sendEvent))
+				(object State_Transition
+				    supplier   	"Call PMEndBldSPrjList"
+				    sendEvent  	(object sendEvent)))
+			    type       	"Normal")
+			(object State "Call PMEndBld"
+			    transitions 	(list transition_list
+				(object State_Transition
+				    supplier   	"Call PMStartBld"
+				    sendEvent  	(object sendEvent))
+				(object State_Transition
+				    supplier   	"Call PMEndBldList"
+				    sendEvent  	(object sendEvent)))
+			    type       	"Normal")
+			(object State "Load PERL Platform Module"
+			    transitions 	(list transition_list
+				(object State_Transition
+				    supplier   	"Call PMStartPlatform"
+				    sendEvent  	(object sendEvent)))
+			    type       	"Normal")
+			(object State "Call PMStartPlatform"
+			    transitions 	(list transition_list
+				(object State_Transition
+				    supplier   	"Read MMP file"
+				    sendEvent  	(object sendEvent)))
+			    type       	"Normal")
+			(object State "Open Makefile"
+			    transitions 	(list transition_list
+				(object State_Transition
+				    supplier   	"Setup Globals"
+				    sendEvent  	(object sendEvent))
+				(object State_Transition
+				    supplier   	"Write text to makefile"
+				    sendEvent  	(object sendEvent)))
+			    type       	"Normal")
+			(object State "CallPMStartBldList"
+			    transitions 	(list transition_list
+				(object State_Transition
+				    supplier   	"Call PMStartBld"
+				    sendEvent  	(object sendEvent)))
+			    type       	"Normal")
+			(object State "if not defined PMStartBldSPrjSrc"
+			    transitions 	(list transition_list
+				(object State_Transition
+				    supplier   	"Call PMStartBldSPrjList"
+				    sendEvent  	(object sendEvent))
+				(object State_Transition
+				    supplier   	"Call PMEndBld"
+				    sendEvent  	(object sendEvent)))
+			    type       	"Normal")
+			(object State "if defined PMStartBldSPrjSrc"
+			    transitions 	(list transition_list
+				(object State_Transition
+				    supplier   	"Call PMStartBldSPrjList"
+				    sendEvent  	(object sendEvent)))
+			    type       	"Normal")
+			(object State "Call PMStartBldSPrj"
+			    transitions 	(list transition_list
+				(object State_Transition
+				    supplier   	"Call PMBldSPrj"
+				    sendEvent  	(object sendEvent)))
+			    type       	"Normal")
+			(object State "Call PMStartBldSPrjSrc"
+			    transitions 	(list transition_list
+				(object State_Transition
+				    supplier   	"Call PMBldSPrjSrc"
+				    sendEvent  	(object sendEvent)))
+			    type       	"Normal")
+			(object State "Call PMBldSPrjSrc"
+			    transitions 	(list transition_list
+				(object State_Transition
+				    supplier   	"Call PMEndBldSPrjSrc"
+				    sendEvent  	(object sendEvent)))
+			    type       	"Normal")
+			(object State "Call PMEndBldSPrjSrcList"
+			    transitions 	(list transition_list
+				(object State_Transition
+				    supplier   	"Call PMStartBldSPrjDocList"
+				    sendEvent  	(object sendEvent)))
+			    type       	"Normal")
+			(object State "Call PMEndBldSPrjDocList"
+			    transitions 	(list transition_list
+				(object State_Transition
+				    supplier   	"Call PMEndBldSPrj"
+				    sendEvent  	(object sendEvent)))
+			    type       	"Normal")
+			(object State "Call PMStartBldSPrjDocList"
+			    transitions 	(list transition_list
+				(object State_Transition
+				    supplier   	"Call PMStartBldSPrjDoc"
+				    sendEvent  	(object sendEvent)))
+			    type       	"Normal")
+			(object State "Call PMEndBldSPrjList"
+			    transitions 	(list transition_list
+				(object State_Transition
+				    supplier   	"Call PMEndBld"
+				    sendEvent  	(object sendEvent)))
+			    type       	"Normal")
+			(object State "Call PMEndBldList"
+			    transitions 	(list transition_list
+				(object State_Transition
+				    supplier   	"if not defined PMSPrjSrc"
+				    sendEvent  	(object sendEvent))
+				(object State_Transition
+				    supplier   	"if not defined PMSPrjSrc"
+				    sendEvent  	(object sendEvent))
+				(object State_Transition
+				    supplier   	"if defined PMSPrjSrc"
+				    sendEvent  	(object sendEvent)))
+			    type       	"Normal")
+			(object State "if not defined PMSPrjSrc"
+			    transitions 	(list transition_list
+				(object State_Transition
+				    supplier   	"Call PMEndMakefile"
+				    sendEvent  	(object sendEvent)))
+			    type       	"Normal")
+			(object State "if defined PMSPrjSrc"
+			    transitions 	(list transition_list
+				(object State_Transition
+				    supplier   	"Call PMStartSPrjList"
+				    sendEvent  	(object sendEvent)))
+			    type       	"Normal")
+			(object State "Call PMStartSPrjList"
+			    transitions 	(list transition_list
+				(object State_Transition
+				    supplier   	"Call PMStartSPrj"
+				    sendEvent  	(object sendEvent)))
+			    type       	"Normal")
+			(object State "Call PMStartSPrjSrcList"
+			    transitions 	(list transition_list
+				(object State_Transition
+				    supplier   	"Call PMSPrjSrcList"
+				    sendEvent  	(object sendEvent))
+				(object State_Transition
+				    supplier   	"Call PMStartSPrjSrc"
+				    sendEvent  	(object sendEvent)))
+			    type       	"Normal")
+			(object State "Call PMStartSPrjDoc"
+			    transitions 	(list transition_list
+				(object State_Transition
+				    supplier   	"Call PMStartSPrjSrcList"
+				    sendEvent  	(object sendEvent))
+				(object State_Transition
+				    supplier   	"Call PMSPrjDoc"
+				    sendEvent  	(object sendEvent)))
+			    type       	"Normal")
+			(object State "Call PMSPrjSrcList"
+			    type       	"Normal")
+			(object State "Call PMStartSPrjSrcBldList"
+			    transitions 	(list transition_list
+				(object State_Transition
+				    supplier   	"Call PMStartSPrjSrcBld"
+				    sendEvent  	(object sendEvent)))
+			    type       	"Normal")
+			(object State "Call PMSPrjSrc"
+			    transitions 	(list transition_list
+				(object State_Transition
+				    supplier   	"Call PMStartSPrjSrcBldList"
+				    sendEvent  	(object sendEvent)))
+			    type       	"Normal")
+			(object State "Call PMStartSPrjSrc"
+			    transitions 	(list transition_list
+				(object State_Transition
+				    supplier   	"Call PMSPrjSrc"
+				    sendEvent  	(object sendEvent)))
+			    type       	"Normal")
+			(object State "Call PMSPrjSrcBldList"
+			    transitions 	(list transition_list
+				(object State_Transition
+				    supplier   	"Call PMStartSPrjSrcBld"
+				    sendEvent  	(object sendEvent)))
+			    type       	"Normal")
+			(object State "Call PMStartSPrjSrcBld"
+			    transitions 	(list transition_list
+				(object State_Transition
+				    supplier   	"Call PMSPrjSrcBld"
+				    sendEvent  	(object sendEvent)))
+			    type       	"Normal")
+			(object State "Call PMSPrjSrcBld"
+			    transitions 	(list transition_list
+				(object State_Transition
+				    supplier   	"Call PMEndSPrjSrcBld"
+				    sendEvent  	(object sendEvent)))
+			    type       	"Normal")
+			(object State "Call PMEndSPrjSrcBld"
+			    transitions 	(list transition_list
+				(object State_Transition
+				    supplier   	"Call PMEndSPrjSrcBldList"
+				    sendEvent  	(object sendEvent))
+				(object State_Transition
+				    supplier   	"Call PMStartSPrjSrcBld"
+				    sendEvent  	(object sendEvent)))
+			    type       	"Normal")
+			(object State "Call PMEndSPrjSrcBldList"
+			    transitions 	(list transition_list
+				(object State_Transition
+				    supplier   	"CallPMEndSPrjSrc"
+				    sendEvent  	(object sendEvent)))
+			    type       	"Normal")
+			(object State "CallPMEndSPrjSrc"
+			    transitions 	(list transition_list
+				(object State_Transition
+				    supplier   	"CallPMEndSPrjSrcList"
+				    sendEvent  	(object sendEvent))
+				(object State_Transition
+				    supplier   	"Call PMStartSPrjSrc"
+				    sendEvent  	(object sendEvent)))
+			    type       	"Normal")
+			(object State "CallPMEndSPrjSrcList"
+			    transitions 	(list transition_list
+				(object State_Transition
+				    supplier   	"Call PMStartSPrjDocList"
+				    sendEvent  	(object sendEvent)))
+			    type       	"Normal")
+			(object State "Call PMStartSPrjDocList"
+			    transitions 	(list transition_list
+				(object State_Transition
+				    supplier   	"Call PMStartSPrjDoc"
+				    sendEvent  	(object sendEvent)))
+			    type       	"Normal")
+			(object State "Call PMStartSPrjDocBldList"
+			    transitions 	(list transition_list
+				(object State_Transition
+				    supplier   	"Call PMStartSPrjDocBld"
+				    sendEvent  	(object sendEvent)))
+			    type       	"Normal")
+			(object State "Call PMStartSPrjDocBld"
+			    transitions 	(list transition_list
+				(object State_Transition
+				    supplier   	"Call PMSPrjDocBld"
+				    sendEvent  	(object sendEvent)))
+			    type       	"Normal")
+			(object State "Call PMSPrjDocBld"
+			    transitions 	(list transition_list
+				(object State_Transition
+				    supplier   	"Call PMEndSPrjDocBld"
+				    sendEvent  	(object sendEvent)))
+			    type       	"Normal")
+			(object State "Call PMEndSPrjDocBldList"
+			    transitions 	(list transition_list
+				(object State_Transition
+				    supplier   	"Call PMEndSPrjDoc"
+				    sendEvent  	(object sendEvent)))
+			    type       	"Normal")
+			(object State "Call PMEndSPrjDoc"
+			    transitions 	(list transition_list
+				(object State_Transition
+				    supplier   	"Call PMEndSPrjDocList"
+				    sendEvent  	(object sendEvent))
+				(object State_Transition
+				    supplier   	"Call PMStartSPrjDoc"
+				    sendEvent  	(object sendEvent)))
+			    type       	"Normal")
+			(object State "Call PMEndSPrjDocList"
+			    transitions 	(list transition_list
+				(object State_Transition
+				    supplier   	"Call PMEndSPrj"
+				    sendEvent  	(object sendEvent)))
+			    type       	"Normal")
+			(object State "Call PMEndSPrj"
+			    transitions 	(list transition_list
+				(object State_Transition
+				    supplier   	"Call PMEndSPrjList"
+				    sendEvent  	(object sendEvent))
+				(object State_Transition
+				    supplier   	"Call PMStartSPrj"
+				    sendEvent  	(object sendEvent)))
+			    type       	"Normal")
+			(object State "Call PMEndSPrjList"
+			    transitions 	(list transition_list
+				(object State_Transition
+				    supplier   	"Call PMEndMakefile"
+				    sendEvent  	(object sendEvent)))
+			    type       	"Normal")
+			(object State "Call PMEndMakefile"
+			    transitions 	(list transition_list
+				(object State_Transition
+				    supplier   	"Call PMEndPlatform"
+				    sendEvent  	(object sendEvent)))
+			    type       	"Normal")
+			(object State "Call PMEndPlatform"
+			    transitions 	(list transition_list
+				(object State_Transition
+				    supplier   	"Open Makefile"
+				    sendEvent  	(object sendEvent)))
+			    type       	"Normal")
+			(object State "Call PMStartSPrj"
+			    transitions 	(list transition_list
+				(object State_Transition
+				    supplier   	"Call PMStartSPrjDoc"
+				    sendEvent  	(object sendEvent))
+				(object State_Transition
+				    supplier   	"Call PMSPrj"
+				    sendEvent  	(object sendEvent)))
+			    type       	"Normal")
+			(object State "Call PMSPrjDoc"
+			    transitions 	(list transition_list
+				(object State_Transition
+				    supplier   	"Call PMStartSPrjDocBldList"
+				    sendEvent  	(object sendEvent)))
+			    type       	"Normal")
+			(object State "Call PMSPrj"
+			    transitions 	(list transition_list
+				(object State_Transition
+				    supplier   	"Call PMStartSPrjSrcList"
+				    sendEvent  	(object sendEvent)))
+			    type       	"Normal")
+			(object State "Call PMEndSPrjDocBld"
+			    transitions 	(list transition_list
+				(object State_Transition
+				    supplier   	"Call PMEndSPrjDocBldList"
+				    sendEvent  	(object sendEvent))
+				(object State_Transition
+				    supplier   	"Call PMStartSPrjDocBld"
+				    sendEvent  	(object sendEvent)))
+			    type       	"Normal")
+			(object State "Write text to makefile"
+			    transitions 	(list transition_list
+				(object State_Transition
+				    supplier   	"Close Makefile"
+				    sendEvent  	(object sendEvent)))
+			    type       	"Normal")
+			(object State "Close Makefile"
+			    transitions 	(list transition_list
+				(object State_Transition
+				    supplier   	"$UNNAMED$0"
+				    sendEvent  	(object sendEvent)))
+			    type       	"Normal")))
+		statediagram 	(object State_Diagram ""
+		    title      	""
+		    zoom       	60
+		    max_height 	28350
+		    max_width  	21600
+		    origin_x   	0
+		    origin_y   	0
+		    items      	(list diagram_item_list
+			(object StateView "EndState" "$UNNAMED$0" @1
+			    location   	(322, 11086))
+			(object StateView "StartState" "$UNNAMED$1" @2
+			    location   	(112, 78))
+			(object StateView "Normal" "Call PMGetBldList" @3
+			    location   	(330, 1319)
+			    label      	(object ItemLabel
+				Parent_View 	@3
+				location   	(330, 1293)
+				anchor_loc 	1
+				nlines     	1
+				max_width  	534
+				justify    	0
+				label      	"Call PMGetBldList")
+			    width      	546
+			    height     	142)
+			(object StateView "Normal" "Call PMBld" @4
+			    location   	(827, 2557)
+			    label      	(object ItemLabel
+				Parent_View 	@4
+				location   	(827, 2536)
+				anchor_loc 	1
+				nlines     	1
+				max_width  	380
+				justify    	0
+				label      	"Call PMBld")
+			    width      	392
+			    height     	133)
+			(object StateView "Normal" "Call PMStartBld" @5
+			    location   	(328, 2281)
+			    label      	(object ItemLabel
+				Parent_View 	@5
+				location   	(328, 2239)
+				anchor_loc 	1
+				nlines     	1
+				max_width  	496
+				justify    	0
+				label      	"Call PMStartBld")
+			    width      	508
+			    height     	175)
+			(object TransView "" @6
+			    client     	@5
+			    supplier   	@4
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object StateView "Normal" "Call PMStartBldSPrjDoc" @7
+			    location   	(3957, 4721)
+			    label      	(object ItemLabel
+				Parent_View 	@7
+				location   	(3957, 4699)
+				anchor_loc 	1
+				nlines     	1
+				max_width  	710
+				justify    	0
+				label      	"Call PMStartBldSPrjDoc")
+			    width      	722
+			    height     	134)
+			(object NoteView @8
+			    location   	(1187, 1929)
+			    label      	(object ItemLabel
+				Parent_View 	@8
+				location   	(759, 1818)
+				nlines     	3
+				max_width  	881
+				label      	
+|main::TargetDir $(path)\<build>
+|main::BuildDir $(path)\<build>
+|main::Build build
+				)
+			    width      	941
+			    height     	234)
+			(object StateView "Normal" "Read MMP file" @9
+			    location   	(346, 780)
+			    label      	(object ItemLabel
+				Parent_View 	@9
+				location   	(346, 757)
+				anchor_loc 	1
+				nlines     	1
+				max_width  	507
+				justify    	0
+				label      	"Read MMP file")
+			    width      	519
+			    height     	137)
+			(object StateView "Normal" "Setup Globals" @10
+			    location   	(330, 1023)
+			    label      	(object ItemLabel
+				Parent_View 	@10
+				location   	(330, 1003)
+				anchor_loc 	1
+				nlines     	1
+				max_width  	600
+				justify    	0
+				label      	"Setup Globals")
+			    width      	612
+			    height     	131)
+			(object NoteView @11
+			    location   	(2463, 908)
+			    label      	(object ItemLabel
+				Parent_View 	@11
+				location   	(1793, 56)
+				nlines     	27
+				max_width  	1365
+				label      	
+|main::Path_MakeToRoot	path from makefile to top directory
+|main::Project	project
+|main::PlainTarget	plaintarget . def-> mmp file - no ext.
+|main::TargetType	targettype. def-> "EXE"
+|main::Target	target. def-> plaintarget.targettype
+|main::UserIncludeList	user include list
+|main::SystemIncludeList	system include list
+|main::LibraryList	list of libraries
+|main::PlatformText  platform text block from mmp file
+|main::SubProject	null
+|main::Source	null
+|main::PlainSource	null
+|main::SourceDir	null
+|main::SourceList	list of all source files
+|main::PlainSourceList    list of all source files - no exts.
+|main::DependencyList    null
+|main::DocumentList	     list of all document files
+|main::Document	null
+|main::BuildList	null
+|main::Build	null
+|main::TargetDir	\epoc32\release\<platform>
+|main::BuildDir	\epoc32\build\project(?D)\<platform>
+|main::MacroList	current macrolist
+|main::AddMacro	list of added macros
+|main::RemoveMacro list of removed macros if successful
+|main::Output	1 if successful else die
+				)
+			    width      	1425
+			    height     	1716)
+			(object StateView "Normal" "Call PMStartBldSPrjSrcList" @12
+			    location   	(3004, 3681)
+			    label      	(object ItemLabel
+				Parent_View 	@12
+				location   	(3004, 3658)
+				anchor_loc 	1
+				nlines     	1
+				max_width  	796
+				justify    	0
+				label      	"Call PMStartBldSPrjSrcList")
+			    width      	808
+			    height     	136)
+			(object StateView "Normal" "Call PMBldSPrjDoc" @13
+			    location   	(4572, 4914)
+			    label      	(object ItemLabel
+				Parent_View 	@13
+				location   	(4572, 4897)
+				anchor_loc 	1
+				nlines     	1
+				max_width  	566
+				justify    	0
+				label      	"Call PMBldSPrjDoc")
+			    width      	578
+			    height     	124)
+			(object NoteView @14
+			    location   	(3268, 821)
+			    label      	(object ItemLabel
+				Parent_View 	@14
+				location   	(2906, 690)
+				nlines     	4
+				max_width  	748
+				label      	"All Main:: functions return default text or the null string If called prematurely.")
+			    width      	808
+			    height     	275)
+			(object AttachView "" @15
+			    client     	@11
+			    supplier   	@10
+			    line_style 	0)
+			(object AttachView "" @16
+			    client     	@8
+			    supplier   	@5
+			    line_style 	0)
+			(object NoteView @17
+			    location   	(1057, 1426)
+			    label      	(object ItemLabel
+				Parent_View 	@17
+				location   	(792, 1370)
+				nlines     	2
+				max_width  	555
+				label      	"main::BuildList buildlist")
+			    width      	615
+			    height     	125)
+			(object NoteView @18
+			    location   	(3749, 3450)
+			    label      	(object ItemLabel
+				Parent_View 	@18
+				location   	(3397, 3374)
+				nlines     	2
+				max_width  	729
+				label      	
+|main::Source	source
+|main::PlainSource	plainsource
+				)
+			    width      	789
+			    height     	164)
+			(object NoteView @19
+			    location   	(3787, 4544)
+			    label      	(object ItemLabel
+				Parent_View 	@19
+				location   	(3459, 4488)
+				nlines     	1
+				max_width  	680
+				label      	
+|main::Document	Document
+				)
+			    width      	740
+			    height     	124)
+			(object StateView "Normal" "Call PMStartBldSPrjList" @20
+			    location   	(1806, 3112)
+			    label      	(object ItemLabel
+				Parent_View 	@20
+				location   	(1806, 3091)
+				anchor_loc 	1
+				nlines     	1
+				max_width  	696
+				justify    	0
+				label      	"Call PMStartBldSPrjList")
+			    width      	708
+			    height     	132)
+			(object StateView "Normal" "Call PMBldSPrj" @21
+			    location   	(3007, 3345)
+			    label      	(object ItemLabel
+				Parent_View 	@21
+				location   	(3007, 3315)
+				anchor_loc 	1
+				nlines     	1
+				max_width  	463
+				justify    	0
+				label      	"Call PMBldSPrj")
+			    width      	475
+			    height     	150)
+			(object NoteView @22
+			    location   	(1669, 3467)
+			    label      	(object ItemLabel
+				Parent_View 	@22
+				location   	(1118, 3312)
+				nlines     	5
+				max_width  	1127
+				label      	
+|main::SubProject	 subproject
+|main::SourceDir	source directory
+|main::SourceList	subproj relative src list
+|main::PlainSourceList  subproj relative plain src list
+|main::DocumentList  subproj relative document list
+				)
+			    width      	1187
+			    height     	323)
+			(object TransView "" @23
+			    client     	@21
+			    supplier   	@12
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object StateView "Normal" "Call PMEndBldSPrjSrc" @24
+			    location   	(3928, 4034)
+			    label      	(object ItemLabel
+				Parent_View 	@24
+				location   	(3928, 4011)
+				anchor_loc 	1
+				nlines     	1
+				max_width  	668
+				justify    	0
+				label      	"Call PMEndBldSPrjSrc")
+			    width      	680
+			    height     	136)
+			(object StateView "Normal" "Call PMEndBldSPrjDoc" @25
+			    location   	(3957, 5117)
+			    label      	(object ItemLabel
+				Parent_View 	@25
+				location   	(3957, 5087)
+				anchor_loc 	1
+				nlines     	1
+				max_width  	686
+				justify    	0
+				label      	"Call PMEndBldSPrjDoc")
+			    width      	698
+			    height     	150)
+			(object TransView "" @26
+			    client     	@13
+			    supplier   	@25
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object StateView "Normal" "Call PMEndBldSPrj" @27
+			    location   	(2554, 5371)
+			    label      	(object ItemLabel
+				Parent_View 	@27
+				location   	(2554, 5349)
+				anchor_loc 	1
+				nlines     	1
+				max_width  	566
+				justify    	0
+				label      	"Call PMEndBldSPrj")
+			    width      	578
+			    height     	134)
+			(object StateView "Normal" "Call PMEndBld" @28
+			    location   	(328, 5369)
+			    label      	(object ItemLabel
+				Parent_View 	@28
+				location   	(328, 5339)
+				anchor_loc 	1
+				nlines     	1
+				max_width  	480
+				justify    	0
+				label      	"Call PMEndBld")
+			    width      	492
+			    height     	150)
+			(object StateView "Normal" "Load PERL Platform Module" @29
+			    location   	(338, 307)
+			    label      	(object ItemLabel
+				Parent_View 	@29
+				location   	(338, 264)
+				anchor_loc 	1
+				nlines     	1
+				max_width  	665
+				justify    	0
+				label      	"Load PERL Platform Module")
+			    width      	677
+			    height     	177)
+			(object TransView "" @30
+			    client     	@2
+			    supplier   	@29
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object NoteView @31
+			    location   	(1192, 343)
+			    label      	(object ItemLabel
+				Parent_View 	@31
+				location   	(807, 271)
+				nlines     	2
+				max_width  	794
+				label      	
+|main::Platform	platform
+|main::ResetPlatform   newplatform
+				)
+			    width      	854
+			    height     	156)
+			(object StateView "Normal" "Call PMStartPlatform" @32
+			    location   	(341, 549)
+			    label      	(object ItemLabel
+				Parent_View 	@32
+				location   	(341, 527)
+				anchor_loc 	1
+				nlines     	1
+				max_width  	618
+				justify    	0
+				label      	"Call PMStartPlatform")
+			    width      	630
+			    height     	134)
+			(object TransView "" @33
+			    client     	@29
+			    supplier   	@32
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object TransView "" @34
+			    client     	@32
+			    supplier   	@9
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object StateView "Normal" "Call PMStartMakefile" @35
+			    location   	(328, 1631)
+			    label      	(object ItemLabel
+				Parent_View 	@35
+				location   	(328, 1597)
+				anchor_loc 	1
+				nlines     	1
+				max_width  	616
+				justify    	0
+				label      	"Call PMStartMakefile")
+			    width      	628
+			    height     	158)
+			(object TransView "" @36
+			    client     	@3
+			    supplier   	@35
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object TransView "" @37
+			    client     	@10
+			    supplier   	@3
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object StateView "Normal" "CallPMStartBldList" @38
+			    location   	(330, 2007)
+			    label      	(object ItemLabel
+				Parent_View 	@38
+				location   	(330, 1985)
+				anchor_loc 	1
+				nlines     	1
+				max_width  	550
+				justify    	0
+				label      	"CallPMStartBldList")
+			    width      	562
+			    height     	134)
+			(object TransView "" @39
+			    client     	@35
+			    supplier   	@38
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object TransView "" @40
+			    client     	@38
+			    supplier   	@5
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object StateView "Normal" "if not defined PMStartBldSPrjSrc" @41
+			    location   	(781, 2839)
+			    label      	(object ItemLabel
+				Parent_View 	@41
+				location   	(781, 2817)
+				anchor_loc 	1
+				nlines     	1
+				max_width  	758
+				justify    	0
+				label      	"if not defined PMStartBldSPrjSrc")
+			    width      	770)
+			(object StateView "Normal" "if defined PMStartBldSPrjSrc" @42
+			    location   	(1815, 2845)
+			    label      	(object ItemLabel
+				Parent_View 	@42
+				location   	(1815, 2823)
+				anchor_loc 	1
+				nlines     	1
+				max_width  	850
+				justify    	0
+				label      	"if defined PMStartBldSPrjSrc")
+			    width      	862
+			    height     	134)
+			(object TransView "" @43
+			    client     	@42
+			    supplier   	@20
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object StateView "Normal" "Call PMStartBldSPrj" @44
+			    location   	(2557, 3110)
+			    label      	(object ItemLabel
+				Parent_View 	@44
+				location   	(2557, 3088)
+				anchor_loc 	1
+				nlines     	1
+				max_width  	590
+				justify    	0
+				label      	"Call PMStartBldSPrj")
+			    width      	602
+			    height     	134)
+			(object TransView "" @45
+			    client     	@20
+			    supplier   	@44
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object TransView "" @46
+			    client     	@44
+			    supplier   	@21
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object StateView "Normal" "Call PMStartBldSPrjSrc" @47
+			    location   	(3928, 3680)
+			    label      	(object ItemLabel
+				Parent_View 	@47
+				location   	(3928, 3652)
+				anchor_loc 	1
+				nlines     	1
+				max_width  	692
+				justify    	0
+				label      	"Call PMStartBldSPrjSrc")
+			    width      	704
+			    height     	146)
+			(object TransView "" @48
+			    client     	@12
+			    supplier   	@47
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object AttachView "" @49
+			    client     	@18
+			    supplier   	@47
+			    line_style 	0)
+			(object NoteView @50
+			    location   	(5064, 3611)
+			    label      	(object ItemLabel
+				Parent_View 	@50
+				location   	(4622, 3544)
+				nlines     	2
+				max_width  	909
+				label      	"main::DependencyList dependency list")
+			    width      	969
+			    height     	146)
+			(object AttachView "" @51
+			    client     	@31
+			    supplier   	@32
+			    line_style 	0)
+			(object AttachView "" @52
+			    client     	@22
+			    supplier   	@44
+			    line_style 	0)
+			(object StateView "Normal" "Call PMBldSPrjSrc" @53
+			    location   	(4654, 3843)
+			    label      	(object ItemLabel
+				Parent_View 	@53
+				location   	(4654, 3821)
+				anchor_loc 	1
+				nlines     	1
+				max_width  	722
+				justify    	0
+				label      	"Call PMBldSPrjSrc")
+			    width      	734
+			    height     	134)
+			(object TransView "" @54
+			    client     	@47
+			    supplier   	@53
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object TransView "" @55
+			    client     	@53
+			    supplier   	@24
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object AttachView "" @56
+			    client     	@50
+			    supplier   	@53
+			    line_style 	0)
+			(object StateView "Normal" "Call PMEndBldSPrjSrcList" @57
+			    location   	(3020, 4027)
+			    label      	(object ItemLabel
+				Parent_View 	@57
+				location   	(3020, 4005)
+				anchor_loc 	1
+				nlines     	1
+				max_width  	772
+				justify    	0
+				label      	"Call PMEndBldSPrjSrcList")
+			    width      	784
+			    height     	134)
+			(object StateView "Normal" "Call PMEndBldSPrjDocList" @58
+			    location   	(3043, 5113)
+			    label      	(object ItemLabel
+				Parent_View 	@58
+				location   	(3043, 5092)
+				anchor_loc 	1
+				nlines     	1
+				max_width  	790
+				justify    	0
+				label      	"Call PMEndBldSPrjDocList")
+			    width      	802
+			    height     	132)
+			(object StateView "Normal" "Call PMStartBldSPrjDocList" @59
+			    location   	(3019, 4719)
+			    label      	(object ItemLabel
+				Parent_View 	@59
+				location   	(3019, 4698)
+				anchor_loc 	1
+				nlines     	1
+				max_width  	814
+				justify    	0
+				label      	"Call PMStartBldSPrjDocList")
+			    width      	826
+			    height     	132)
+			(object TransView "" @60
+			    client     	@57
+			    supplier   	@59
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object TransView "" @61
+			    client     	@59
+			    supplier   	@7
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object TransView "" @62
+			    client     	@7
+			    supplier   	@13
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object StateView "Normal" "Call PMEndBldSPrjList" @63
+			    location   	(1733, 5368)
+			    label      	(object ItemLabel
+				Parent_View 	@63
+				location   	(1733, 5346)
+				anchor_loc 	1
+				nlines     	1
+				max_width  	672
+				justify    	0
+				label      	"Call PMEndBldSPrjList")
+			    width      	684
+			    height     	134)
+			(object TransView "" @64
+			    client     	@63
+			    supplier   	@28
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object TransView "" @65
+			    client     	@41
+			    supplier   	@28
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object AttachView "" @66
+			    client     	@19
+			    supplier   	@7
+			    line_style 	0)
+			(object TransView "" @67
+			    client     	@4
+			    supplier   	@41
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object TransView "" @68
+			    client     	@4
+			    supplier   	@42
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object AttachView "" @69
+			    client     	@17
+			    supplier   	@35
+			    line_style 	0)
+			(object NoteView @70
+			    location   	(3775, 4284)
+			    label      	(object ItemLabel
+				Parent_View 	@70
+				location   	(3494, 4217)
+				nlines     	2
+				max_width  	586
+				label      	
+|main::Source	null
+|main::PlainSource	null
+				)
+			    width      	646
+			    height     	146)
+			(object AttachView "" @71
+			    client     	@57
+			    supplier   	@70
+			    line_style 	0)
+			(object NoteView @72
+			    location   	(3790, 5334)
+			    label      	(object ItemLabel
+				Parent_View 	@72
+				location   	(3556, 5278)
+				nlines     	1
+				max_width  	492
+				label      	"main::Document null")
+			    width      	552
+			    height     	125)
+			(object NoteView @73
+			    location   	(1651, 4969)
+			    label      	(object ItemLabel
+				Parent_View 	@73
+				location   	(1220, 4819)
+				nlines     	4
+				max_width  	887
+				label      	
+|main::SubProject	null
+|main::SourceDir	null
+|main::SourceList	all sources
+|main::PlainSourceList  all plain sources
+|main::DocumentList all documents
+				)
+			    width      	947
+			    height     	312)
+			(object AttachView "" @74
+			    client     	@73
+			    supplier   	@63
+			    line_style 	0)
+			(object StateView "Normal" "Call PMEndBldList" @75
+			    location   	(328, 5679)
+			    label      	(object ItemLabel
+				Parent_View 	@75
+				location   	(328, 5657)
+				anchor_loc 	1
+				nlines     	1
+				max_width  	540
+				justify    	0
+				label      	"Call PMEndBldList")
+			    width      	552)
+			(object NoteView @76
+			    location   	(4883, 4113)
+			    label      	(object ItemLabel
+				Parent_View 	@76
+				location   	(4582, 4057)
+				nlines     	1
+				max_width  	627
+				label      	"main::DependencyList  null")
+			    width      	687
+			    height     	125)
+			(object AttachView "" @77
+			    client     	@24
+			    supplier   	@76
+			    line_style 	0)
+			(object NoteView @78
+			    location   	(1390, 5594)
+			    label      	(object ItemLabel
+				Parent_View 	@78
+				location   	(740, 5491)
+				nlines     	3
+				max_width  	1325
+				label      	
+|main::TargetDir	\EPOC32\RELEASE\<platform>
+|main::BuildDir	\EPOC32\BUILD\PROJECT\<platform>
+|main::Build	null
+				)
+			    width      	1385
+			    height     	219)
+			(object AttachView "" @79
+			    client     	@75
+			    supplier   	@78
+			    line_style 	0)
+			(object StateView "Normal" "if not defined PMSPrjSrc" @80
+			    location   	(328, 6002)
+			    label      	(object ItemLabel
+				Parent_View 	@80
+				location   	(328, 5974)
+				anchor_loc 	1
+				nlines     	1
+				max_width  	571
+				justify    	0
+				label      	"if not defined PMSPrjSrc")
+			    width      	583
+			    height     	146)
+			(object TransView "" @81
+			    client     	@75
+			    supplier   	@80
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object StateView "Normal" "if defined PMSPrjSrc" @82
+			    location   	(1107, 6001)
+			    label      	(object ItemLabel
+				Parent_View 	@82
+				location   	(1107, 5978)
+				anchor_loc 	1
+				nlines     	1
+				max_width  	610
+				justify    	0
+				label      	"if defined PMSPrjSrc")
+			    width      	622
+			    height     	136)
+			(object TransView "" @83
+			    client     	@75
+			    supplier   	@82
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object StateView "Normal" "Call PMStartSPrjList" @84
+			    location   	(1091, 6235)
+			    label      	(object ItemLabel
+				Parent_View 	@84
+				location   	(1091, 6212)
+				anchor_loc 	1
+				nlines     	1
+				max_width  	598
+				justify    	0
+				label      	"Call PMStartSPrjList")
+			    width      	610
+			    height     	136)
+			(object TransView "" @85
+			    client     	@82
+			    supplier   	@84
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object StateView "Normal" "Call PMStartSPrjSrcList" @86
+			    location   	(2416, 6646)
+			    label      	(object ItemLabel
+				Parent_View 	@86
+				location   	(2416, 6624)
+				anchor_loc 	1
+				nlines     	1
+				max_width  	700
+				justify    	0
+				label      	"Call PMStartSPrjSrcList")
+			    width      	712
+			    height     	134)
+			(object StateView "Normal" "Call PMStartSPrjSrcBldList" @87
+			    location   	(3700, 7174)
+			    label      	(object ItemLabel
+				Parent_View 	@87
+				location   	(3700, 7151)
+				anchor_loc 	1
+				nlines     	1
+				max_width  	796
+				justify    	0
+				label      	"Call PMStartSPrjSrcBldList")
+			    width      	808
+			    height     	136)
+			(object StateView "Normal" "Call PMSPrjSrc" @88
+			    location   	(3703, 6898)
+			    label      	(object ItemLabel
+				Parent_View 	@88
+				location   	(3703, 6875)
+				anchor_loc 	1
+				nlines     	1
+				max_width  	478
+				justify    	0
+				label      	"Call PMSPrjSrc")
+			    width      	490
+			    height     	136)
+			(object StateView "Normal" "Call PMStartSPrjSrc" @89
+			    location   	(3248, 6642)
+			    label      	(object ItemLabel
+				Parent_View 	@89
+				location   	(3248, 6614)
+				anchor_loc 	1
+				nlines     	1
+				max_width  	596
+				justify    	0
+				label      	"Call PMStartSPrjSrc")
+			    width      	608
+			    height     	146)
+			(object TransView "" @90
+			    client     	@89
+			    supplier   	@88
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object TransView "" @91
+			    client     	@88
+			    supplier   	@87
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object StateView "Normal" "Call PMStartSPrjSrcBld" @92
+			    location   	(4636, 7193)
+			    label      	(object ItemLabel
+				Parent_View 	@92
+				location   	(4636, 7171)
+				anchor_loc 	1
+				nlines     	1
+				max_width  	692
+				justify    	0
+				label      	"Call PMStartSPrjSrcBld")
+			    width      	704
+			    height     	134)
+			(object StateView "Normal" "Call PMSPrjSrcBld" @93
+			    location   	(5183, 7399)
+			    label      	(object ItemLabel
+				Parent_View 	@93
+				location   	(5183, 7376)
+				anchor_loc 	1
+				nlines     	1
+				max_width  	550
+				justify    	0
+				label      	"Call PMSPrjSrcBld")
+			    width      	562
+			    height     	136)
+			(object StateView "Normal" "Call PMEndSPrjSrcBld" @94
+			    location   	(4636, 7605)
+			    label      	(object ItemLabel
+				Parent_View 	@94
+				location   	(4636, 7583)
+				anchor_loc 	1
+				nlines     	1
+				max_width  	668
+				justify    	0
+				label      	"Call PMEndSPrjSrcBld")
+			    width      	680
+			    height     	134)
+			(object StateView "Normal" "Call PMEndSPrjSrcBldList" @95
+			    location   	(3775, 7598)
+			    label      	(object ItemLabel
+				Parent_View 	@95
+				location   	(3775, 7575)
+				anchor_loc 	1
+				nlines     	1
+				max_width  	772
+				justify    	0
+				label      	"Call PMEndSPrjSrcBldList")
+			    width      	784
+			    height     	136)
+			(object StateView "Normal" "CallPMEndSPrjSrc" @96
+			    location   	(3248, 7855)
+			    label      	(object ItemLabel
+				Parent_View 	@96
+				location   	(3248, 7827)
+				anchor_loc 	1
+				nlines     	1
+				max_width  	552
+				justify    	0
+				label      	"CallPMEndSPrjSrc")
+			    width      	564
+			    height     	146)
+			(object StateView "Normal" "CallPMEndSPrjSrcList" @97
+			    location   	(2445, 7848)
+			    label      	(object ItemLabel
+				Parent_View 	@97
+				location   	(2445, 7826)
+				anchor_loc 	1
+				nlines     	1
+				max_width  	656
+				justify    	0
+				label      	"CallPMEndSPrjSrcList")
+			    width      	668
+			    height     	134)
+			(object TransView "" @98
+			    client     	@92
+			    supplier   	@93
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object TransView "" @99
+			    client     	@93
+			    supplier   	@94
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object TransView "" @100
+			    client     	@94
+			    supplier   	@95
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object TransView "" @101
+			    client     	@95
+			    supplier   	@96
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object TransView "" @102
+			    client     	@96
+			    supplier   	@97
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object StateView "Normal" "Call PMStartSPrjDocList" @103
+			    location   	(2445, 8167)
+			    label      	(object ItemLabel
+				Parent_View 	@103
+				location   	(2445, 8144)
+				anchor_loc 	1
+				nlines     	1
+				max_width  	718
+				justify    	0
+				label      	"Call PMStartSPrjDocList")
+			    width      	730
+			    height     	136)
+			(object TransView "" @104
+			    client     	@97
+			    supplier   	@103
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object StateView "Normal" "Call PMStartSPrjDoc" @105
+			    location   	(3269, 8136)
+			    label      	(object ItemLabel
+				Parent_View 	@105
+				location   	(3269, 8114)
+				anchor_loc 	1
+				nlines     	1
+				max_width  	614
+				justify    	0
+				label      	"Call PMStartSPrjDoc")
+			    width      	626
+			    height     	134)
+			(object TransView "" @106
+			    client     	@86
+			    supplier   	@89
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object TransView "" @107
+			    client     	@87
+			    supplier   	@92
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object TransView "" @108
+			    client     	@103
+			    supplier   	@105
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object StateView "Normal" "Call PMStartSPrjDocBldList" @109
+			    location   	(3785, 8653)
+			    label      	(object ItemLabel
+				Parent_View 	@109
+				location   	(3785, 8631)
+				anchor_loc 	1
+				nlines     	1
+				max_width  	814
+				justify    	0
+				label      	"Call PMStartSPrjDocBldList")
+			    width      	826
+			    height     	134)
+			(object StateView "Normal" "Call PMStartSPrjDocBld" @110
+			    location   	(4708, 8682)
+			    label      	(object ItemLabel
+				Parent_View 	@110
+				location   	(4708, 8659)
+				anchor_loc 	1
+				nlines     	1
+				max_width  	710
+				justify    	0
+				label      	"Call PMStartSPrjDocBld")
+			    width      	722
+			    height     	136)
+			(object TransView "" @111
+			    client     	@109
+			    supplier   	@110
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object StateView "Normal" "Call PMSPrjDocBld" @112
+			    location   	(5234, 8906)
+			    label      	(object ItemLabel
+				Parent_View 	@112
+				location   	(5234, 8884)
+				anchor_loc 	1
+				nlines     	1
+				max_width  	566
+				justify    	0
+				label      	"Call PMSPrjDocBld")
+			    width      	578
+			    height     	134)
+			(object TransView "" @113
+			    client     	@110
+			    supplier   	@112
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object StateView "Normal" "Call PMEndSPrjDocBldList" @114
+			    location   	(3816, 9060)
+			    label      	(object ItemLabel
+				Parent_View 	@114
+				location   	(3816, 9038)
+				anchor_loc 	1
+				nlines     	1
+				max_width  	790
+				justify    	0
+				label      	"Call PMEndSPrjDocBldList")
+			    width      	802
+			    height     	134)
+			(object StateView "Normal" "Call PMEndSPrjDoc" @115
+			    location   	(3269, 9318)
+			    label      	(object ItemLabel
+				Parent_View 	@115
+				location   	(3269, 9295)
+				anchor_loc 	1
+				nlines     	1
+				max_width  	590
+				justify    	0
+				label      	"Call PMEndSPrjDoc")
+			    width      	602
+			    height     	136)
+			(object TransView "" @116
+			    client     	@114
+			    supplier   	@115
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object StateView "Normal" "Call PMEndSPrjDocList" @117
+			    location   	(2474, 9317)
+			    label      	(object ItemLabel
+				Parent_View 	@117
+				location   	(2474, 9294)
+				anchor_loc 	1
+				nlines     	1
+				max_width  	694
+				justify    	0
+				label      	"Call PMEndSPrjDocList")
+			    width      	706
+			    height     	136)
+			(object TransView "" @118
+			    client     	@115
+			    supplier   	@117
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object StateView "Normal" "Call PMEndSPrj" @119
+			    location   	(1778, 9305)
+			    label      	(object ItemLabel
+				Parent_View 	@119
+				location   	(1778, 9283)
+				anchor_loc 	1
+				nlines     	1
+				max_width  	470
+				justify    	0
+				label      	"Call PMEndSPrj")
+			    width      	482
+			    height     	134)
+			(object TransView "" @120
+			    client     	@117
+			    supplier   	@119
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object StateView "Normal" "Call PMEndSPrjList" @121
+			    location   	(1002, 9303)
+			    label      	(object ItemLabel
+				Parent_View 	@121
+				location   	(1002, 9286)
+				anchor_loc 	1
+				nlines     	1
+				max_width  	574
+				justify    	0
+				label      	"Call PMEndSPrjList")
+			    width      	586
+			    height     	124)
+			(object TransView "" @122
+			    client     	@119
+			    supplier   	@121
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object StateView "Normal" "Call PMEndMakefile" @123
+			    location   	(328, 9657)
+			    label      	(object ItemLabel
+				Parent_View 	@123
+				location   	(328, 9635)
+				anchor_loc 	1
+				nlines     	1
+				max_width  	592
+				justify    	0
+				label      	"Call PMEndMakefile")
+			    width      	604
+			    height     	134)
+			(object StateView "Normal" "Call PMEndPlatform" @124
+			    location   	(328, 9933)
+			    label      	(object ItemLabel
+				Parent_View 	@124
+				location   	(328, 9911)
+				anchor_loc 	1
+				nlines     	1
+				max_width  	594
+				justify    	0
+				label      	"Call PMEndPlatform")
+			    width      	606
+			    height     	134)
+			(object TransView "" @125
+			    client     	@121
+			    supplier   	@123
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object TransView "" @126
+			    client     	@123
+			    supplier   	@124
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object TransView "" @127
+			    client     	@58
+			    supplier   	@27
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object TransView "" @128
+			    client     	@25
+			    supplier   	@7
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object TransView "" @129
+			    client     	@25
+			    supplier   	@58
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object TransView "" @130
+			    client     	@24
+			    supplier   	@47
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object TransView "" @131
+			    client     	@24
+			    supplier   	@57
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object StateView "Normal" "Call PMStartSPrj" @132
+			    location   	(1778, 6229)
+			    label      	(object ItemLabel
+				Parent_View 	@132
+				location   	(1778, 6207)
+				anchor_loc 	1
+				nlines     	1
+				max_width  	494
+				justify    	0
+				label      	"Call PMStartSPrj")
+			    width      	506
+			    height     	134)
+			(object TransView "" @133
+			    client     	@84
+			    supplier   	@132
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object StateView "Normal" "Call PMSPrjDoc" @134
+			    location   	(3786, 8418)
+			    label      	(object ItemLabel
+				Parent_View 	@134
+				location   	(3786, 8395)
+				anchor_loc 	1
+				nlines     	1
+				max_width  	470
+				justify    	0
+				label      	"Call PMSPrjDoc")
+			    width      	482
+			    height     	136)
+			(object TransView "" @135
+			    client     	@105
+			    supplier   	@134
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object TransView "" @136
+			    client     	@134
+			    supplier   	@109
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object TransView "" @137
+			    client     	@119
+			    supplier   	@132
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object StateView "Normal" "Call PMSPrj" @138
+			    location   	(2411, 6234)
+			    label      	(object ItemLabel
+				Parent_View 	@138
+				location   	(2411, 6212)
+				anchor_loc 	1
+				nlines     	1
+				max_width  	352
+				justify    	0
+				label      	"Call PMSPrj")
+			    width      	364
+			    height     	134)
+			(object TransView "" @139
+			    client     	@132
+			    supplier   	@138
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object TransView "" @140
+			    client     	@138
+			    supplier   	@86
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object TransView "" @141
+			    client     	@94
+			    supplier   	@92
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object TransView "" @142
+			    client     	@96
+			    supplier   	@89
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object StateView "Normal" "Call PMEndSPrjDocBld" @143
+			    location   	(4708, 9093)
+			    label      	(object ItemLabel
+				Parent_View 	@143
+				location   	(4708, 9071)
+				anchor_loc 	1
+				nlines     	1
+				max_width  	686
+				justify    	0
+				label      	"Call PMEndSPrjDocBld")
+			    width      	698
+			    height     	134)
+			(object TransView "" @144
+			    client     	@112
+			    supplier   	@143
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object TransView "" @145
+			    client     	@143
+			    supplier   	@114
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object TransView "" @146
+			    client     	@143
+			    supplier   	@110
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object TransView "" @147
+			    client     	@115
+			    supplier   	@105
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object TransView "" @148
+			    client     	@80
+			    supplier   	@123
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object TransView "" @149
+			    client     	@28
+			    supplier   	@5
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object TransView "" @150
+			    client     	@28
+			    supplier   	@75
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object NoteView @151
+			    location   	(2214, 5928)
+			    label      	(object ItemLabel
+				Parent_View 	@151
+				location   	(1663, 5773)
+				nlines     	5
+				max_width  	1127
+				label      	
+|main::SubProject	 subproject
+|main::SourceDir	source directory
+|main::SourceList	subproj relative src list
+|main::PlainSourceList  subproj relative plain src list
+|main::DocumentList  subproj relative document list
+				)
+			    width      	1187
+			    height     	323)
+			(object AttachView "" @152
+			    client     	@151
+			    supplier   	@132
+			    line_style 	0)
+			(object NoteView @153
+			    location   	(2790, 6885)
+			    label      	(object ItemLabel
+				Parent_View 	@153
+				location   	(2438, 6809)
+				nlines     	2
+				max_width  	729
+				label      	
+|main::Source	source
+|main::PlainSource	plainsource
+				)
+			    width      	789
+			    height     	164)
+			(object AttachView "" @154
+			    client     	@153
+			    supplier   	@89
+			    line_style 	0)
+			(object NoteView @155
+			    location   	(4281, 6696)
+			    label      	(object ItemLabel
+				Parent_View 	@155
+				location   	(3839, 6629)
+				nlines     	2
+				max_width  	909
+				label      	"main::DependencyList dependency list")
+			    width      	969
+			    height     	146)
+			(object AttachView "" @156
+			    client     	@155
+			    supplier   	@88
+			    line_style 	0)
+			(object NoteView @157
+			    location   	(5162, 6966)
+			    label      	(object ItemLabel
+				Parent_View 	@157
+				location   	(4734, 6855)
+				nlines     	3
+				max_width  	881
+				label      	
+|main::TargetDir $(path)\<build>
+|main::BuildDir $(path)\<build>
+|main::Build build
+				)
+			    width      	941
+			    height     	234)
+			(object AttachView "" @158
+			    client     	@157
+			    supplier   	@92
+			    line_style 	0)
+			(object NoteView @159
+			    location   	(5188, 8376)
+			    label      	(object ItemLabel
+				Parent_View 	@159
+				location   	(4760, 8265)
+				nlines     	3
+				max_width  	881
+				label      	
+|main::TargetDir $(path)\<build>
+|main::BuildDir $(path)\<build>
+|main::Build build
+				)
+			    width      	941
+			    height     	234)
+			(object AttachView "" @160
+			    client     	@159
+			    supplier   	@110
+			    line_style 	0)
+			(object NoteView @161
+			    location   	(4198, 8110)
+			    label      	(object ItemLabel
+				Parent_View 	@161
+				location   	(3897, 8054)
+				nlines     	1
+				max_width  	627
+				label      	"main::DependencyList  null")
+			    width      	687
+			    height     	125)
+			(object AttachView "" @162
+			    client     	@96
+			    supplier   	@161
+			    line_style 	0)
+			(object NoteView @163
+			    location   	(2826, 7562)
+			    label      	(object ItemLabel
+				Parent_View 	@163
+				location   	(2545, 7495)
+				nlines     	2
+				max_width  	586
+				label      	
+|main::Source	null
+|main::PlainSource	null
+				)
+			    width      	646
+			    height     	146)
+			(object AttachView "" @164
+			    client     	@163
+			    supplier   	@97
+			    line_style 	0)
+			(object NoteView @165
+			    location   	(2832, 9009)
+			    label      	(object ItemLabel
+				Parent_View 	@165
+				location   	(2598, 8953)
+				nlines     	1
+				max_width  	492
+				label      	"main::Document null")
+			    width      	552
+			    height     	125)
+			(object NoteView @166
+			    location   	(5157, 7883)
+			    label      	(object ItemLabel
+				Parent_View 	@166
+				location   	(4506, 7785)
+				nlines     	3
+				max_width  	1326
+				label      	
+|main::TargetDir	\EPOC32\RELEASE\<platform>
+|main::BuildDir	\EPOC32\BUILD\PROJECT\<platform>
+|main::Build	null
+				)
+			    width      	1386
+			    height     	208)
+			(object AttachView "" @167
+			    client     	@95
+			    supplier   	@166
+			    line_style 	0)
+			(object NoteView @168
+			    location   	(5125, 9414)
+			    label      	(object ItemLabel
+				Parent_View 	@168
+				location   	(4474, 9316)
+				nlines     	3
+				max_width  	1326
+				label      	
+|main::TargetDir	\EPOC32\RELEASE\<platform>
+|main::BuildDir	\EPOC32\BUILD\PROJECT\<platform>
+|main::Build	null
+				)
+			    width      	1386
+			    height     	208)
+			(object AttachView "" @169
+			    client     	@114
+			    supplier   	@168
+			    line_style 	0)
+			(object AttachView "" @170
+			    client     	@117
+			    supplier   	@165
+			    line_style 	0)
+			(object NoteView @171
+			    location   	(1907, 9751)
+			    label      	(object ItemLabel
+				Parent_View 	@171
+				location   	(1476, 9601)
+				nlines     	4
+				max_width  	887
+				label      	
+|main::SubProject	null
+|main::SourceDir	null
+|main::SourceList	all sources
+|main::PlainSourceList  all plain sources
+|main::DocumentList all documents
+				)
+			    width      	947
+			    height     	312)
+			(object AttachView "" @172
+			    client     	@121
+			    supplier   	@171
+			    line_style 	0)
+			(object NoteView @173
+			    location   	(2800, 8421)
+			    label      	(object ItemLabel
+				Parent_View 	@173
+				location   	(2472, 8365)
+				nlines     	1
+				max_width  	680
+				label      	
+|main::Document	Document
+				)
+			    width      	740
+			    height     	124)
+			(object AttachView "" @174
+			    client     	@105
+			    supplier   	@173
+			    line_style 	0)
+			(object AttachView "" @175
+			    client     	@58
+			    supplier   	@72
+			    line_style 	0)
+			(object TransView "" @176
+			    client     	@27
+			    supplier   	@44
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object TransView "" @177
+			    client     	@27
+			    supplier   	@63
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object TransView "" @178
+			    client     	@9
+			    supplier   	@10
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object StateView "Normal" "Open Makefile" @179
+			    location   	(333, 10240)
+			    label      	(object ItemLabel
+				Parent_View 	@179
+				location   	(333, 10218)
+				anchor_loc 	1
+				nlines     	1
+				max_width  	519
+				justify    	0
+				label      	"Open Makefile")
+			    width      	531)
+			(object TransView "" @180
+			    client     	@124
+			    supplier   	@179
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object StateView "Normal" "Write text to makefile" @181
+			    location   	(333, 10545)
+			    label      	(object ItemLabel
+				Parent_View 	@181
+				location   	(333, 10518)
+				anchor_loc 	1
+				nlines     	1
+				max_width  	519
+				justify    	0
+				label      	"Write text to makefile")
+			    width      	531
+			    height     	145)
+			(object StateView "Normal" "Close Makefile" @182
+			    location   	(323, 10816)
+			    label      	(object ItemLabel
+				Parent_View 	@182
+				location   	(323, 10794)
+				anchor_loc 	1
+				nlines     	1
+				max_width  	405
+				justify    	0
+				label      	"Close Makefile")
+			    width      	417)
+			(object TransView "" @183
+			    client     	@179
+			    supplier   	@181
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object TransView "" @184
+			    client     	@181
+			    supplier   	@182
+			    line_style 	0
+			    x_offset   	FALSE)
+			(object TransView "" @185
+			    client     	@182
+			    supplier   	@1
+			    line_style 	0
+			    x_offset   	FALSE)))))
+	logical_presentations 	(list unit_reference_list
+	    (object ClassDiagram "Main"
+		title      	"Main"
+		zoom       	100
+		max_height 	28350
+		max_width  	21600
+		origin_x   	0
+		origin_y   	0
+		items      	(list diagram_item_list
+		    (object ClassView "Class" "MAKMAKE" @186
+			location   	(1569, 909)
+			label      	(object ItemLabel
+			    Parent_View 	@186
+			    location   	(1465, 825)
+			    nlines     	2
+			    max_width  	240
+			    justify    	0
+			    label      	"MAKMAKE"))))))
+    root_subsystem 	(object SubSystem "<Top Level>"
+	physical_models 	(list unit_reference_list)
+	physical_presentations 	(list unit_reference_list
+	    (object Module_Diagram "Main"
+		title      	"Main"
+		zoom       	100
+		max_height 	28350
+		max_width  	21600
+		origin_x   	0
+		origin_y   	0
+		items      	(list diagram_item_list))))
+    process_structure 	(object Processes
+	ProcsNDevs 	(list
+	    (object Process_Diagram ""
+		title      	""
+		zoom       	100
+		max_height 	28350
+		max_width  	21600
+		origin_x   	0
+		origin_y   	0
+		items      	(list diagram_item_list))))
+    properties 	(object Properties))
Binary file sbsv1_os/e32toolp/design/makmake.ppt has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/e32util/_secure_E32Env.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,66 @@
+# Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# E32ENV.PM
+# Contains information for makmake and associated e32tools perl programs
+# within the Epoc32 Environment
+# 
+#
+
+package E32env;
+
+use strict;
+
+use vars qw(%Data);
+
+BEGIN {
+	my $epocroot = $ENV{EPOCROOT};
+	die "ERROR: Must set the EPOCROOT environment variable\n" if (!defined($epocroot));
+	$epocroot =~ s-/-\\-go;	# for those working with UNIX shells
+	$epocroot =~ s/^ +//;
+	$epocroot =~ s/ +$//;
+	$ENV{EPOCROOT} = $epocroot;
+	die "ERROR: EPOCROOT must not include a drive letter\n" if ($epocroot =~ /^.:/);
+	die "ERROR: EPOCROOT must be an absolute path without a drive letter\n" if ($epocroot !~ /^\\/);
+	die "ERROR: EPOCROOT must not be a UNC path\n" if ($epocroot =~ /^\\\\/);
+	die "ERROR: EPOCROOT must end with a backslash\n" if ($epocroot !~ /\\$/);
+ 	open PIPE, "set EPOCROOT |";
+ 	my $found=0;
+	while (<PIPE>) {
+		if (/^EPOCROOT=.*/) {
+			$found=1;
+			last;
+		}
+	}
+	close PIPE;
+	die "EPOCROOT environment variable must be capitalised\n" if (!$found);
+	print "WARNING: EPOCROOT does not specify an existing directory\n" if (!-d $epocroot);
+
+	$epocroot=~ s-\\$--;		# chop trailing \\
+
+	$Data{EPOCPath} = $epocroot."\\epoc32\\";
+
+	$Data{EPOCDataPath} = $epocroot."\\epoc32\\data\\";
+	$Data{EPOCIncPath} = $epocroot."\\epoc32\\include\\";
+	$Data{BldPath} = $epocroot."\\EPOC32\\BUILD\\";
+	$Data{LinkPath} = $epocroot."\\epoc32\\release\\";
+	$Data{RelPath} = $epocroot."\\epoc32\\release\\";
+	$Data{EPOCToolsPath} = $epocroot."\\epoc32\\tools\\";
+	$Data{RomPath} = $epocroot."\\epoc32\\rom\\";
+
+	$Data{DataPath} = "z\\system\\data\\";
+	
+	$Data{SecurePlatform} = 1;
+}
+
+1;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/e32util/armasm2as.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,453 @@
+# Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# e32toolp\e32util\armasm2as.pl
+# Convert an ARMASM assembler source or include file to AS format
+# Syntax:
+# perl armasm2as.pl <input> <output>
+# 
+#
+
+if (scalar(@ARGV)!=2) {
+	die "perl armasm2as.pl <input> <output>\n";
+}
+my ($infile, $outfile) = @ARGV;
+open IN, $infile or die "Can't open $infile for input\n";
+my $gccfile;
+my @input;
+while (<IN>) {
+	push @input, $_;
+	next if defined($gccfile);
+	next if (/^\s*$/);
+	if (/^\s*\@/) {
+		$gccfile = 1;	# If first non-blank line starts with @, assume already in GCC format
+	} else {
+		$gccfile = 0;
+	}
+}
+close IN;
+my @output;
+my $outref = \@output;
+if ($gccfile) {
+	$outref = \@input;
+} else {
+	process(\@input, \@output);
+}
+open OUT, ">$outfile" or die "Can't open $outfile for write\n";
+print OUT @$outref;
+close OUT;
+
+
+
+sub process($$) {
+	my $level=0;
+	my @block;
+	my ($inref, $outref) = @_;
+	foreach $line (@$inref) {
+		$line=~s/\s*$//;
+		my $comment;
+		if ($line =~ /\;(.*)$/o) {
+			$comment = $1;
+			$line =~ s/\;(.*)$//o;
+			if ($line =~ /^\s*$/o and $level==0) {
+				push @$outref, "$line\@$comment\n";
+				next;
+			}
+			$comment = "\t\@$comment";
+		}
+		if ($line =~ /^\s+PRESERVE8/) {
+			next;
+		}
+		if ($level == 1) {
+			if ($line =~ /^\s+MEND/i) {
+				process_macro(\@block, $outref);
+				$level = 0;
+			} else {
+				push @block, $line;
+			}
+			next;
+		} elsif ($level == 0) {
+			if ($line =~ /^\s+MACRO\s*$/i) {
+				@block = ();
+				$level = 1;
+				next;
+			}
+		}
+		if ($line =~ /^\s+GBLL\s+(\S+)/i) {
+			push @$outref, "\t.set\t$1, 0$comment\n";
+			next;
+		}
+		if ($line =~ /^\s+GBLA\s+(\S+)/i) {
+			push @$outref, "\t.set\t$1, 0$comment\n";
+			next;
+		}
+		if ($line =~ /^\s+INCLUDE\s+(\S+)/i) {
+			my $arg = $1;
+			if ($arg =~ /(\w+)\.inc/io) {
+				$arg = $1.'.ginc';
+			}
+			push @$outref, "\t.include\t\"$arg\"$comment\n";
+			next;
+		}
+		if ($line =~ /^\s+IMPORT\s+(\S+)/i) {
+			push @$outref, "\t.extern\t$1$comment\n";
+			next;
+		}
+		if ($line =~ /^\s+EXPORT\s+(\S+)/i) {
+			push @$outref, "\t.global\t$1$comment\n";
+			next;
+		}
+		if ($line =~ /^\s+ELSE/i or $line =~ /^\s+\|/i ) {
+			push @$outref, "\t.else$comment\n";
+			next;
+		}
+		if ($line =~ /^\s+ENDIF/i or $line =~ /^\s+\]/i) {
+			push @$outref, "\t.endif$comment\n";
+			next;
+		}
+		if ($line =~ /^\s+LTORG/i) {
+			push @$outref, "\t.ltorg$comment\n";
+			next;
+		}
+		if ($line =~ /^\s+END$/i) {
+			next;
+		}
+		if ($line =~ /^\s+\!\s*(\d+)\,\s*(.*?)$/) {
+			my $msg = $2;
+			push @$outref, "\t.print $msg\n\t.err$comment\n";
+			next;
+		}
+		if ($line =~ /^\s+INIT_LOGICAL_SYMBOL\s+(\w+)(.*?)$/) {
+			process_init_logical_symbol($1, $2, $outref, $comment);
+			next;
+		}
+		if ($line =~ /^\s+INIT_NUMERIC_SYMBOL\s+(\w+)\s*\,\s*(.*?)$/) {
+			process_init_numeric_symbol($1, $2, $outref, $comment);
+			next;
+		}
+		if ($line =~ /^\s+AREA\s+(.*?)$/) {
+			process_area($1, $outref, $comment);
+			next;
+		}
+		if ($line =~ /^\s+\%\s+(.*?)$/) {
+			my $expr = process_numeric_expr($1, $outref);
+			push @$outref, "\t.space $expr$comment\n";
+			next;
+		}
+		if ($line =~ /^\s+ALIGN\s*(.*?)$/) {
+			process_align($1, $outref, $comment);
+			next;
+		}
+
+		# Strip label if there is one
+		my $label;
+		if ($line =~ /^(\S+)\s*(.*?)$/) {
+			$label = $1;
+			$line = $2;
+		} else {
+			$line =~ s/^\s*//;
+		}
+		if ($line =~ /^SETL\s+(\S+)/i) {
+			my $val = $1;
+			my $expr = process_logical_expr($val, $outref);
+			push @$outref, "\t.set\t$label,$expr$comment\n";
+			next;
+		}
+		if ($line =~ /^SETA\s+(.*?)$/i) {
+			my $val = $1;
+			my $expr = process_numeric_expr($val, $outref);
+			push @$outref, "\t.set\t$label,$expr$comment\n";
+			next;
+		}
+		if ($line =~ /^(EQU|\*)\s+(.*?)$/i) {
+			my $val = $2;
+			my $expr = process_numeric_expr($val, $outref);
+			push @$outref, "\t.equ\t$label,$expr$comment\n";
+			next;
+		}
+		if ($line =~ /^(if|\[)\s+(.*?)$/i) {
+			my $cond = $2;
+			if ($cond =~ /^\s*(\:LNOT\:)?\s*\:DEF\:\s*(.*?)$/i) {
+				my $n = $1;
+				my $sym = $2;
+				if ($sym =~ /^(\w|\\|\:)+$/) {
+					if (uc($n) eq ':LNOT:') {
+						push @$outref, "\t.ifndef\t$sym$comment\n";
+					} else {
+						push @$outref, "\t.ifdef\t$sym$comment\n";
+					}
+					next;
+				}
+			}
+			my $expr = process_logical_expr($cond, $outref);
+			push @$outref, "\t.if $expr$comment\n";
+			next;
+		}
+		if ($line =~ /^(\=|DCB)\s*(.*?)$/) {
+			process_dcb($label, $2, $outref, $comment);
+			next;
+		}
+		if ($line =~ /^DCW\s*(.*?)$/) {
+			process_dcw($label, $1, $outref, $comment);
+			next;
+		}
+		if ($line =~ /^DCD\s*(.*?)$/) {
+			process_dcd($label, $1, $outref, $comment);
+			next;
+		}
+		if ($line =~ /^ROUT\s*$/) {
+			$line = '';
+		}
+		if ($line =~ /^(\w+)\s+\%(\w+)\s*$/o) {
+			# ARMASM local label reference
+			my $inst = $1;
+			my $llab = $2;
+			if ($llab =~ /F\w?(\d+)/o) {
+				$line = "$inst $1f";
+			} elsif ($llab =~ /B\w?(\d+)/o) {
+				$line = "$inst $1b";
+			} else {
+				die "Can't determine local label direction\n";
+			}
+		}
+		if ($line =~ /^(\w+)\s+(\w+)\s*\,\s*\%(\w+)\s*$/o) {
+			# ARMASM local label reference
+			my $inst = $1;
+			my $op1 = $2;
+			my $llab = $3;
+			if ($llab =~ /F\w?(\d+)/o) {
+				$line = "$inst $op1\, $1f";
+			} elsif ($llab =~ /B\w?(\d+)/o) {
+				$line = "$inst $op1\, $1b";
+			} else {
+				die "Can't determine local label direction\n";
+			}
+		}
+
+		$line = process_numeric_expr($line, $outref);
+		if (defined($label)) {
+			push @$outref, "$label\:\t$line$comment\n";
+		} else {
+			push @$outref, "\t$line$comment\n";
+		}
+	}
+}
+
+
+sub process_macro($$) {
+	my ($inref, $outref) = @_;
+	my $line;
+	while(1) {
+		$line = shift @$inref;
+		last if ($line !~ /^\s*$/);
+	}
+	unless ($line =~ /^\s+(\w+)\s*(.*?)$/) {
+		die "Bad macro - no name\n";
+	}
+	my $macro_name = $1;
+	if ($macro_name eq 'INIT_LOGICAL_SYMBOL' or $macro_name eq 'INIT_NUMERIC_SYMBOL') {
+		return;
+	}
+	$line = $2;
+	my @args = split ( '\s*,\s*', $line );
+	foreach (@args) {
+		die "Bad macro argument name\n" unless (/^\$\w+$/);
+		s/^\$//;
+	}
+	my $ev = '';
+	foreach $arg (@args) {
+		$ev.="s/\\\$$arg(\\W\|\$)/\\\\$arg\$1/go;";
+	}
+	foreach (@$inref) {
+		eval $ev;
+	}
+	push @$outref, "\t.macro $macro_name ".join(',',@args)."\n";
+	process($inref, $outref);
+	push @$outref, "\t.endm\n";
+}
+
+
+sub process_logical_expr($$) {
+	my ($val, $outref) = @_;
+	$val = process_numeric_expr($val, $outref);
+	$val =~ s/\<\=/________LE________/g;	# protect <= and >= during expansion of =
+	$val =~ s/\>\=/________GE________/g;
+	$val =~ s/\=/\=\=/g;					# equality operator is = on ARMASM, == on AS
+	$val =~ s/________LE________/\<\=/g;
+	$val =~ s/________GE________/\>\=/g;
+	$val =~ s/\{TRUE\}/(1)/g;
+	$val =~ s/\{FALSE\}/(0)/g;
+
+	my @lops = split( /(\s*\:LAND\:\s*|\s*\:LOR\:\s*|\s*\:LNOT\:\s*|\s*\:DEF\:\s*)/, $val );
+	foreach (@lops) {
+		s/\s*\:LAND\:\s*/\:LAND\:/go;
+		s/\s*\:LOR\:\s*/\:LOR\:/go;
+		s/\s*\:LNOT\:\s*/\:LNOT\:/go;
+		s/\s*\:DEF\:\s*/\:DEF\:/go;
+	}
+	my @lops2;
+	while (scalar (@lops)) {
+		my $x = shift @lops;
+		if ($x eq ':DEF:') {
+			my $sym = shift @lops;
+			$sym =~ s/^\s*//;
+			$sym =~ s/\s*$//;
+			if ($sym =~ /^(\w|\$|\\)+$/) {
+				push @$outref, "\t.ifdef $sym\n\t.set __defined__$sym, 1\n\t.else\n\t.set __defined__$sym, 0\n\t.endif\n";
+				push @lops2, " __defined__$sym ";
+			} else {
+				die "Bad :DEF: operand\n";
+			}
+		} elsif ($x eq ':LAND:') {
+			push @lops2, ' && ';
+		} elsif ($x eq ':LOR:') {
+			push @lops2, ' || ';
+		} else {
+			push @lops2, $x;
+		}
+	}
+	my @lops3;
+	while (scalar (@lops2)) {
+		my $x = shift @lops2;
+		if ($x eq ':LNOT:') {
+			my $operand;
+			while (1) {
+				$operand = shift @lops2;
+				last if ($operand !~ /^\s*$/);
+			}
+			push @lops3, "(0==($operand))";
+		} else {
+			push @lops3, $x;
+		}
+	}
+	return join('',@lops3);
+}
+
+sub process_numeric_expr($$) {
+	my ($val, $outref) = @_;
+	$val =~ s/\&/0x/g;			# ARMASM accepts hex numbers starting with & or 0x, AS only accepts 0x
+	$val =~ s/(\W|^)2_([0|1]+)(\W|$)/$1 0b$2$3/g;	# Binary numbers start with 2_ on ARMASM, 0b on AS
+	$val =~ s/\:AND\:/\&/g;
+	$val =~ s/\:OR\:/\|/g;
+	$val =~ s/\:SHL\:/\<\</g;
+	$val =~ s/\:SHR\:/\>\>/g;
+	return $val;
+}
+
+sub process_init_logical_symbol($$$$) {
+	my ($name, $rest, $outref, $comment) = @_;
+	my $counter;
+	if ($rest =~ /^\s*\,\s*(\w+)\s*$/) {
+		$counter = $1;
+	} elsif ($rest !~ /^\s*$/) {
+		die "Bad INIT_LOGICAL_SYMBOL\n";
+	}
+	push @$outref, "\t.ifndef $name$comment\n\t.set $name, 0\n\t.else\n\t.set $name, 1\n";
+	if ($counter) {
+		push @$outref, "\t.set $counter, $counter \+ 1\n";
+	}
+	push @$outref, "\t.endif\n";
+}
+
+sub process_init_numeric_symbol($$$$) {
+	my ($name, $value, $outref, $comment) = @_;
+	my $expr = process_numeric_expr($value, $outref);
+	push @$outref, "\t.ifndef $name$comment\n\t.set $name, $expr\n\t.endif\n";
+}
+
+sub process_area($$$) {
+	my ($line, $outref, $comment) = @_;
+	my @args = split(',',$line);
+	my $align = 0;
+	foreach (@args) {
+		if (/^\s*ALIGN\s*\=\s*(\d+)\s*$/) {
+			$align = $1;
+		}
+	}
+	push @$outref, "\t.text$comment\n\t.p2align $align\n";
+}
+
+sub process_align($$$) {
+	my ($line, $outref, $comment) = @_;
+	if ($line =~ /^\s*$/o) {
+		push @$outref, "\t.align$comment\n";
+	} else {
+		push @$outref, "\t.balign $line$comment\n";
+	}
+}
+
+sub process_dcb($$$$) {
+	my ($label, $args, $outref, $comment) = @_;
+	if (defined($label)) {
+		push @$outref, "$label\:";
+	}
+	while ($args !~ /^\s*$/) {
+		my $arg;
+		$args =~ s/^\s*//;
+		if ($args =~ /^\"/) {
+			$args =~ s/\\\"/________ESCAPED_QUOTE________/go;
+			$args =~ /\"(.*?)\"\s*(.*?)$/o or die "Unterminated string literal\n";
+			$arg = $1;
+			$args = $2;
+			$arg =~ s/________ESCAPED_QUOTE________/\\\"/go;
+			push @$outref, "\t.ascii \"$arg\"$comment\n";
+			undef $comment;
+			last if ($args !~ /\s*\,(.*?)$/o);
+			$args = $1;
+		} else {
+			$args =~ /(.*?)\s*(\,|$)(.*?)$/o;
+			$arg = $1;
+			$args = $3;
+			my $expr = process_numeric_expr($arg, $outref);
+			push @$outref, "\t.byte $expr$comment\n";
+			undef $comment;
+		}
+	}
+}
+
+sub process_dcw($$$$) {
+	my ($label, $args, $outref, $comment) = @_;
+	if (defined($label)) {
+		push @$outref, "$label\:";
+	}
+	while ($args !~ /^\s*$/) {
+		my $arg;
+		$args =~ s/^\s*//;
+		$args =~ /(.*?)\s*(\,|$)(.*?)$/o;
+		$arg = $1;
+		$args = $3;
+		my $expr = process_numeric_expr($arg, $outref);
+		push @$outref, "\t.hword $expr$comment\n";
+		undef $comment;
+	}
+}
+
+sub process_dcd($$$$) {
+	my ($label, $args, $outref, $comment) = @_;
+	if (defined($label)) {
+		push @$outref, "$label\:";
+	}
+	while ($args !~ /^\s*$/) {
+		my $arg;
+		$args =~ s/^\s*//;
+		$args =~ /(.*?)\s*(\,|$)(.*?)$/o;
+		$arg = $1;
+		$args = $3;
+		my $expr = process_numeric_expr($arg, $outref);
+		push @$outref, "\t.word $expr$comment\n";
+		undef $comment;
+	}
+}
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/e32util/checkgcc.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,100 @@
+# Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# module for checking gcc is set up correctly
+# 
+#
+
+package CheckGcc;
+
+use strict;
+use Preprocessor;
+
+
+sub CheckGcc_Default()
+{
+ 	# die if CPP.EXE (or whatever) in a dodgy place in the path
+	my $pbp = $ENV{PBUILDPID};
+	my @Paths=split ';', $ENV{Path};
+	unshift @Paths,'.';	# add the current directory
+	foreach (@Paths) {
+		s-/-\\-go;	# for those working with UNIX shells
+		s-^(.*[^\\])$-$1\\-o;   # ensure path ends with a backslash
+		if ((-e $_.'CPP.EXE') or (-e $_.'CPP.BAT') or (-e $_.'CPP.CMD')) {
+			unless (/\\GCC(\w\w)?\\BIN\\$/i) {
+				unless (lc($1) eq lc($pbp)) {
+					die
+						"ERROR: First CPP executable found in path is in $_,\n",
+						"but the required CPP.EXE was expected to be found in a directory\n",
+						"with a name ending in \\GCC$pbp\\BIN\\, where the Cygnus tools\n",
+						"this program depends upon are stored.\n",
+						"Is your path set up correctly?\n"
+					;
+				}
+			}
+			return;
+		}
+	}
+	die "ERROR: CPP executable not found in path\n";
+}
+
+sub CheckGcc_Generic()
+{
+	# die if CPP.EXE (or whatever pre processor) in a dodgy place in the path
+
+	my @Paths=split ';', $ENV{Path};
+	unshift @Paths,'.';	# add the current directory
+
+	my $exe = &PreprocessorToUseExe();
+	my $path = &PreprocessorToUsePath();
+	
+	foreach (@Paths) {
+		s-/-\\-go;	# for those working with UNIX shells
+		s-^(.*[^\\])$-$1\\-o;   # ensure path ends with a backslash
+		s-$-$path-;	# add in the path relative to gcc\bin.
+		if ((-e $_.$exe.'.EXE') or (-e $_.$exe.'.BAT') or (-e $_.$exe.'.CMD')) {
+			unless (/\\EPOC32\\TOOLS\\\Q$path\E$/i) {
+				die
+					"ERROR: First $exe executable found in path is in $_,\n",
+					"but the required $exe.EXE was expected to be found in a directory\n",
+					"with a name ending in \\EPOC32\\TOOLS\\$path, where the tools\n",
+					"this program depends upon are stored.\n",
+					"Is your path set up correctly?\n"
+				;
+			}
+			return;
+		}
+	}
+	die "ERROR: $exe executable not found in path\n";
+
+}
+BEGIN {
+	my $preprocessor_to_use = &PreprocessorToUseId();
+	
+	if ( $preprocessor_to_use eq "DEFAULT" )
+	{
+		&CheckGcc_Default();	# pre processor & cpp same. 
+	}
+	elsif ( $preprocessor_to_use eq "MINGW_NO_CYGWIN" )
+	{
+		&CheckGcc_Generic();	# check for preprocessor.
+	}
+	else
+	{
+		die("CHECKGCC.PM :  error should never happen\n");
+	}
+}
+
+
+1;
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/e32util/checksource.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,171 @@
+# Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Front-end to routines checking that source matches filename policy constraints
+# 
+#
+
+use strict;
+use FindBin;
+use Cwd;
+use Getopt::Long qw(:config posix_default);		#permits "+" in arguments, rather than as an option identifier
+use lib $FindBin::Bin;
+use CheckSource;
+use Pathutl;
+
+my $preprocessCall = "cpp.exe -w -undef -nostdinc -+ -dI";
+
+my $verbose = 0;
+
+my $preprocess = 0;
+my $parsefile = 0;
+my $metadata = 0;
+
+GetOptions ('preprocess|pp' => \$preprocess, 'parsefile|pf' => \$parsefile, 'metadata|md' => \$metadata);
+
+my %warnings;
+
+$verbose = 1 if $ENV{CHECKSOURCE_VERBOSE};
+
+
+if (!@ARGV)
+	{
+	print ("\nchecksource.pl --preprocess|--parsefile|--metadata args\n\n");
+	}
+elsif ($preprocess)
+	{
+	my $PREPROCESSPIPE;
+	open PREPROCESSPIPE,"$preprocessCall @ARGV |" or die "ERROR: Can't invoke preprocessor for checksource processing.\n";
+
+	my %processedIncludes;
+	
+	my %homelessInclude;
+	$homelessInclude{REFERENCE} = "";
+
+	my $lineNumber = 0;
+	my $currentFile = "";
+
+	print "Preprocessing file    : ".$ARGV[scalar(@ARGV)-1]."\n" if ($verbose);
+
+	while (<PREPROCESSPIPE>)
+		{
+		if (/^\s*$/o)
+			{
+			$lineNumber++;
+			next;
+			}	
+		elsif (/^# (\d+) "(.*)"( \d+)?/o)
+			{
+			$lineNumber = scalar $1;
+			$currentFile=$2;
+			$currentFile=~s-\\\\-\\-go;
+			$currentFile=~s-\\\/-\\-go;
+			$currentFile=~s-\/\\-\\-go;
+			$currentFile=~s-\/\/-\\-go;
+			$currentFile=~s/\//\\/g;
+			$currentFile=~s/^\w://;
+			}
+
+		if ($homelessInclude{REFERENCE})
+			{
+			# Resolve #include references using "locating" comments in CPP output.  These may either follow the reference directly,
+			# or may have appeared earlier in prior CPP processing
+			if ($currentFile =~ /$homelessInclude{SEARCH}$/i)
+				{
+				CheckSource_Physical (%warnings, $homelessInclude{SOURCEFILE}, "#include", $homelessInclude{REFERENCE}, $homelessInclude{LINENUMBER}, $currentFile, $verbose);
+				$processedIncludes{lc($currentFile)} = 1;
+				}
+			else
+				{
+				my @foundProcessedIncludes;
+				foreach my $processedInclude (keys %processedIncludes)
+					{
+					push @foundProcessedIncludes, $processedInclude if ($processedInclude =~ /$homelessInclude{SEARCH}$/i);
+					}
+		
+				if (@foundProcessedIncludes == 1)
+					{
+					CheckSource_Physical  (%warnings, $homelessInclude{SOURCEFILE}, "#include", $homelessInclude{REFERENCE}, $homelessInclude{LINENUMBER}, $foundProcessedIncludes[0], $verbose);
+					}
+				elsif ((@foundProcessedIncludes > 1) && $verbose)
+					{
+					print ("WARNING: Multiple matches for #include reference $homelessInclude{REFERENCE} : $homelessInclude{SOURCEFILE}($homelessInclude{LINENUMBER})\n");
+					print "\t$_\n" foreach (@foundProcessedIncludes);
+					}
+				elsif ($verbose)
+					{
+					print ("WARNING: Couldn't find #include reference $homelessInclude{REFERENCE} : $homelessInclude{SOURCEFILE}($homelessInclude{LINENUMBER})\n");
+					}
+				}
+			$homelessInclude{REFERENCE} = "";
+			}
+
+		if (/^\s*#include\s*[\"|\<]{1}(.*)[\"|\>]{1}/)
+			{
+			CheckSource_UnixSlash (%warnings, $currentFile, "#include", $1, $lineNumber, $verbose);
+
+			$homelessInclude{SOURCEFILE} = $currentFile;
+			$homelessInclude{REFERENCE} = $1;
+			$homelessInclude{LINENUMBER} = $lineNumber;
+			$homelessInclude{SEARCH} = "\\".$homelessInclude{REFERENCE};
+			$homelessInclude{SEARCH} =~ s/\//\\/g;
+			$homelessInclude{SEARCH} = quotemeta($homelessInclude{SEARCH});
+			}
+
+		$lineNumber++ if (!/^# (\d+) "(.*)"( \d+)?/o);
+		}
+
+	close PREPROCESSPIPE;
+	}
+elsif ($parsefile)
+	{
+	my $SOURCE_FILE = $ARGV[0];		
+	open SOURCE_FILE, "< $SOURCE_FILE" or die "ERROR: Can't open $SOURCE_FILE for \"-checksource\".\n";
+
+	print "Parsing include file  : $SOURCE_FILE\n" if ($verbose);
+
+	my $lineNumber = 0;
+	
+	while (<SOURCE_FILE>)
+		{
+		$lineNumber++;
+
+		if (/^\s*#include\s*[\"|\<]{1}(.*)[\"|\>]{1}/)
+			{
+			CheckSource_UnixSlash (%warnings, $SOURCE_FILE, "#include", $1, $lineNumber, $verbose);
+			CheckSource_Lowercase (%warnings, $SOURCE_FILE, "#include", $1, $lineNumber, $verbose);
+			}		
+		}
+
+	close SOURCE_FILE;
+	}
+elsif ($metadata)
+	{
+	my ($sourcefile, $item, $reference, $linenumber, $physical, $offset) = @ARGV;
+
+	$physical = 0 if (!$physical);
+	$offset = undef if (!$offset);
+
+	CheckSource_UnixSlash (%warnings, $sourcefile, $item, $reference, $linenumber, $verbose);
+
+	if ($physical)
+		{
+		CheckSource_Physical (%warnings, $sourcefile, $item, $reference, $linenumber, $offset, $verbose);
+		}
+	else
+		{
+		CheckSource_Lowercase (%warnings, $sourcefile, $item, $reference, $linenumber, $verbose);
+		}
+	}
+
+print "$_\n" foreach (keys %warnings);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/e32util/checksource.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,472 @@
+# Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Routines involved in checking that source matches various filename policy constraints
+# 
+#
+
+
+package CheckSource;
+
+require Exporter;
+@ISA=qw(Exporter);
+
+# Exported for clarity in calling scripts and modules
+our $CheckSource_PhysicalCheck = 1;
+our $CheckSource_NoUserSystemDistinction = 1;
+
+@EXPORT=qw(
+	CheckSource_MetaData
+	CheckSource_Includes
+	CheckSource_ExportedIncludes
+	CheckSource_MakefileOutput
+	CheckSource_UnixSlash
+	CheckSource_Lowercase
+	CheckSource_Physical
+	$CheckSource_PhysicalCheck
+	$CheckSource_NoUserSystemDistinction
+);
+
+use strict;
+use Cwd;
+use Pathutl;
+use Win32;
+
+my $exclusionsFile = $ENV{EPOCROOT}."epoc32\\tools\\filenamepolicyexclusions.txt";
+
+my $makefileWarningPrefix = "\@echo ";
+my $checksourcePrefix = "\@perl -w -S checksource.pl";
+my $releaseLocationRoot = quotemeta ($ENV{EPOCROOT}."epoc32");
+
+
+sub CheckSource_MetaData (\%$$$$;$;$)
+	{
+	my ($actionHash, $sourceFile, $item, $reference, $lineNumber, $physical, $offset) = @_;
+
+	return if ($reference =~ /^(\.|\.\.)$/);
+
+	my $checksourceCall = "$checksourcePrefix --metadata \"$sourceFile\" \"$item\" \"$reference\" $lineNumber";
+	$checksourceCall .= " $physical" if ($physical);
+	$checksourceCall .= " \"$offset\"" if ($offset);
+	$$actionHash{$checksourceCall} = 1;
+	}
+
+
+sub CheckSource_UnixSlash (\%$$$$;$)
+	{
+	my ($actionHash, $sourceFile, $item, $reference, $lineNumber, $verbose) = @_;
+
+	$sourceFile =~ s/^[a-zA-Z]{1}://;
+	$item =~ s/PRJ_EXPORTS \(NO DESTINATION\)/PRJ_EXPORTS/;
+
+	print "Checking - Unix slash : $sourceFile ($lineNumber) - $item:$reference\n" if ($verbose);
+
+	if ($reference =~/\\/)
+		{	
+		$$actionHash{constructWarning ($sourceFile, $lineNumber, $item, "Incorrect slash in", $reference)} = 1;
+		}
+	}
+
+
+sub CheckSource_Lowercase (\%$$$;$;$)
+	{
+	my ($actionHash, $sourceFile, $item, $reference, $lineNumber, $verbose) = @_;
+
+	return if ($reference =~ /^[\/|\\]epoc32[\/|\\]tools[\/|\\].*$/);
+
+	$sourceFile =~ s/^[a-zA-Z]{1}://;
+
+	print "Checking - lowercase  : $sourceFile ($lineNumber) - $item:$reference\n" if ($verbose);
+
+	my $exclusion = lowercaseExclusionCheck ($reference);
+
+	if ($exclusion eq "UNLISTED")
+		{
+		if ($reference =~ /[A-Z]/)
+			{			
+			$$actionHash{constructWarning ($sourceFile, $lineNumber, $item, "Incorrect case for epoc32 tree in", $reference)} = 1;
+			}
+		}
+	elsif ($exclusion !~ /(OK|ERROR)/)
+		{
+		$$actionHash{constructWarning($sourceFile, $lineNumber, $item, "Incorrect case versus exclusion list in", $reference, " vs. $exclusion")} = 1;		
+		}
+	}
+
+
+sub CheckSource_Physical (\%$$$$;$;$)
+	{
+	my ($actionHash, $sourceFile, $item, $reference, $lineNumber, $path, $verbose) = @_;
+	
+	print "Checking - physical   : $sourceFile ($lineNumber) - $item:$reference:$path\n" if ($verbose);
+
+	my $physicalCheck;
+	my $searchText;
+
+	my $examineDefaultExportDestination = ($item =~ s/PRJ_EXPORTS \(NO DESTINATION\)/PRJ_EXPORTS/) ? 1 : 0;
+
+	if ($item eq "#include")
+		{
+		# In the case of #includes, the path passed in is already the fully pathed physical file
+		# that needs to be checked (as obtained from the parsed output of CPP)
+		$searchText = $reference;
+		$physicalCheck = $path;
+		}
+	else
+		{
+		my $physicalReference;
+		if (($item =~ /^PRJ_(TEST)?MMPFILES MMP/) && ($reference !~ /\.\w+$/i))
+			{
+			$physicalReference = $reference."\.mmp";
+			$searchText = $reference."\.*";
+			}
+		elsif ($item =~ /^DEFFILE/)
+			{
+			# The full path for DEFFILE entries is always passed in, so we just
+			# need to concentrate on sorting out the oddities for the search
+			# text and then just take the final file bit as the physical
+			# reference
+
+			$searchText = $reference;			
+			$searchText .= "?\.*" if ($reference !~ /(\.def|[\\|\/])$/i);
+			$searchText =~ s/(\.def)/\?$1/i if ($item !~ /NOSTRICTDEF/);
+			$searchText =~ s/\~/\*/;			
+			$physicalReference = $searchText;
+			$physicalReference =~ s/\//\\/g;
+			$physicalReference =~ s/\?/u/;
+			$physicalReference =~ s/\.\w+$/\.def/;
+			$physicalReference = &Path_Split ('File', $physicalReference);			
+			}
+		else
+			{
+			$searchText = $reference;
+			$physicalReference = $searchText;
+			}
+
+		my $physicalLocation;
+		if ($path)
+			{
+			$physicalLocation = $path;
+			}
+		elsif ($reference =~ /^(\\|\/)/)
+			{
+			$physicalLocation = $ENV{EPOCROOT};
+			}
+		elsif ($reference =~ /^\+/)
+			{
+			$physicalLocation = $ENV{EPOCROOT}."epoc32\\";
+			}
+		elsif ($item =~ /EXTENSIONS/)
+			{
+			$physicalLocation = $ENV{EPOCROOT}."epoc32\\tools\\makefile_templates\\";
+			}
+		else
+			{
+			$physicalLocation = &Path_Split ('Path', $sourceFile);
+			}
+		$physicalReference =~ s/^[\\|\/]//;
+		$physicalCheck = $physicalLocation.$physicalReference;
+		}
+
+	$physicalCheck =~ s/\//\\/g;
+	$physicalCheck = &Path_Strip ($physicalCheck);
+
+	# If a file reference is actually under \epoc32, we just need to confirm that it's lowercase
+	if ($physicalCheck =~ /^$releaseLocationRoot/i)
+		{
+		CheckSource_Lowercase (%$actionHash, $sourceFile, $item, $reference, $lineNumber, $verbose);
+		return;
+		}
+
+	# Massage search text to provide something we can compare with a physical check on the filesystem
+	$searchText =~ s/\//\\/g;
+	$searchText =~ s/\.\.\\//g;
+	$searchText =~ s/\.\\//g;
+	$searchText =~ s/\\\\/\\/g;
+
+	my $warningSearchText = $searchText;	# Record a more intelligible version of the search text for warning purposes
+	
+	$searchText = quotemeta ($searchText);
+	$searchText =~ s/\\\*/\\w\+/g;			# * -> \w+
+	$searchText =~ s/\\\?/\\w\{1\}/g;		# ? -> \w{1}
+
+	my $physicalReality = getPhysical ($physicalCheck);
+
+	my $warningSuffix = "";
+
+	if (!$physicalReality)
+		{
+		$$actionHash{constructWarning($sourceFile, $lineNumber, $item, "Can\'t find physical file match for", $reference, " on filesystem")} = 1;
+		}
+	elsif ($physicalReality !~ /^.*$searchText$/)
+		{
+		if ($physicalReality !~ /^.*$searchText$/i)
+			{
+			# Doesn't just differ in case...something's gone wrong
+			$$actionHash{constructWarning($sourceFile, $lineNumber, $item, "Can\'t find physical file match for", $reference, " - match was attempted against $physicalReality")} = 1;		
+			}
+		else
+			{
+			if (($item =~ /^DEFFILE/ || $item =~ /^PRJ_(TEST)?MMPFILES MMP/) && ($reference !~ /$searchText$/))
+				{
+				$warningSuffix .= " (actual test \'$warningSearchText\')"
+				}
+
+			$warningSuffix .= " vs. $physicalReality";
+			$$actionHash{constructWarning($sourceFile, $lineNumber, $item, "Incorrect case versus filesystem in", $reference, $warningSuffix)} = 1;
+			}
+		}
+
+	# Special case - PRJ_EXPORTS source lines with no destination must be normalised via a new destination compliant
+	# with the filename policy.  FIXSOURCE will do this, but it needs a warning to work on
+
+	if ($examineDefaultExportDestination)
+		{
+		$physicalReality =~ /^.*($searchText)$/i;
+		my $defaultExportReference = $1;
+		
+		my $exclusion = lowercaseExclusionCheck ($defaultExportReference);
+
+		if ($defaultExportReference =~ /[A-Z]/)
+			{
+			$$actionHash{constructWarning ($sourceFile, $lineNumber, $item, "Incorrect case for epoc32 tree from default export in", $reference, $warningSuffix)} = 1;
+			}
+		}
+
+	}
+	
+
+sub CheckSource_Includes ($\%$\@;\@;\@;$)
+	{
+	# References are used for array arguments only so that they can be distinguished within the subroutine
+	my ($sourceFile, $actionHash, $preInclude, $macros, $userIncludesRef, $systemIncludesRef, $noUserSystemDistinction) = @_;
+	my (@userIncludes, @systemIncludes);
+
+	@userIncludes = @$userIncludesRef if ($userIncludesRef);
+	@systemIncludes = @$systemIncludesRef if ($systemIncludesRef);
+
+	my $call = "$checksourcePrefix --preprocess -- ";
+
+	if (($sourceFile !~ /\.inf$/i) && ($sourceFile !~ /\.mmp/i))
+		{
+		push @$macros, "__SUPPORT_CPP_EXCEPTIONS__";
+		}
+
+	my $platformPreInclude = "";
+
+	foreach my $macro (@$macros)
+		{
+		$call .= "-D$macro ";
+
+		if ($macro =~ /__ARMCC_2_2__/)
+			{
+			$platformPreInclude = $ENV{EPOCROOT}."epoc32\\include\\rvct2_2\\rvct2_2.h";
+
+			if (($sourceFile =~ /BASE\\E32\\compsupp\\/i) && $ENV{RVCT22INC})
+				{					
+				# Need some way to deal with ARMINC from the front-end...
+				my $rvctIncDir = $ENV{RVCT22INC};
+				push @systemIncludes, $rvctIncDir;
+				}
+			}
+		elsif ($macro =~ /__GCCE__/)
+			{
+			$platformPreInclude = $ENV{EPOCROOT}."epoc32\\include\\GCCE\\GCCE.h";
+
+			my $GCCEinstall = Cl_bpabi::getConfigVariable('COMPILER_INSTALL_PATH');
+			
+			push @systemIncludes, "\"\\\"$GCCEinstall\\..\\lib\\gcc\\arm-none-symbianelf\\3.4.3\\include\\\"\"";
+			}
+		}
+
+	if ($preInclude ne "")
+		{
+		$call .= "-include ".getDrive().$preInclude." ";
+		push @systemIncludes, &Path_Split ('Path', getDrive().$preInclude);
+		}		
+
+	if ($platformPreInclude ne "")
+		{
+		$call .= "-include ".getDrive().$platformPreInclude." ";
+		push @systemIncludes, &Path_Split ('Path', getDrive().$platformPreInclude);
+		}	
+
+	# Enforce user and system includes in checksource processing.
+
+	foreach my $include (@userIncludes)
+		{
+		$include =~ s/\\$//;
+		$include = getDrive().$include if (($include !~ /^[a-zA-Z]:/) && ($include !~ /^[\"|\.]/));
+		$call .= "-I $include ";
+		}
+
+	$call .= "-I- " unless $noUserSystemDistinction;
+
+	foreach my $include (@systemIncludes)
+		{
+		$include =~ s/\\$//;
+		$include = getDrive().$include if (($include !~ /^[a-zA-Z]:/) && ($include !~ /^[\"|\.]/));
+		$call .= "-I $include ";
+		}
+
+	$sourceFile =~ s/\//\\/g;
+	$sourceFile = &Path_Strip ($sourceFile);
+	$sourceFile = getDrive().$sourceFile;
+
+	$call .= $sourceFile;
+
+	$$actionHash{$call} = 1;
+
+	return $call;
+	}
+
+
+sub CheckSource_ExportedIncludes ($$\%)
+	{
+	my ($sourceFile, $destinationFile, $actionHash) = @_;
+
+	# Exclude exported files as appropriate
+	if ($destinationFile)
+		{
+		my $epoc32Include = quotemeta ($ENV{EPOCROOT})."epoc32\\\\include";
+		return if ($destinationFile !~ /^$epoc32Include/i);
+		return if ($destinationFile =~ /\.def$/i);
+		}
+
+	$$actionHash{"$checksourcePrefix --parsefile -- $sourceFile"} = 1;
+	}
+
+
+sub CheckSource_MakefileOutput(%)
+	{
+	my (%actionHash) = @_;
+
+	return "\t\@rem\n" if !(keys (%actionHash));
+
+	my $output = "";
+
+	foreach (keys (%actionHash))
+		{
+		$output .= "\t$_\n";
+		}
+
+	return $output;
+	}
+	
+
+sub getDrive
+	{
+    if(cwd =~ /^([a-zA-Z]:)/)
+    	{
+		return $1;
+    	}
+
+	return "";
+	}
+
+
+sub getPhysical ($)
+	{
+	my ($physicalReference) = @_;
+	
+	my $physicalReality = Win32::GetLongPathName($physicalReference);
+
+	if ($physicalReality)
+		{			
+		$physicalReality =~ s/^.*://;
+		$physicalReality = &Path_Strip ($physicalReality);		
+		}
+
+	return $physicalReality;
+	}
+
+
+sub constructWarning ($$$$$;$)
+	{
+	my ($sourceFile, $lineNumber, $item, $warningText, $reference, $suffix) = @_;
+
+	$sourceFile =~ s/\//\\/g;
+	$sourceFile = Win32::GetLongPathName($sourceFile);
+	$sourceFile =~ s/^[a-zA-Z]{1}://;
+	$sourceFile = &Path_Strip ($sourceFile);
+
+	my $warning = "";
+	$warning .= $sourceFile.":".$lineNumber.": ".$warningText." $item - \'".$reference."\'";
+	$warning .= $suffix if ($suffix);
+	$warning .= ".";		
+
+	return $warning;
+	}
+
+
+sub lowercaseExclusionCheck ($)
+	{
+	my ($reference) = @_;
+
+	# An exclusions file isn't mandatory
+	return "UNLISTED" if (! -e $exclusionsFile);
+
+	my $EXCLUSIONS;
+
+	if (!(open EXCLUSIONS, "< $exclusionsFile"))
+			{
+			print ("ERROR: Can't open $exclusionsFile in checksource processing.\n");
+			return "ERROR";
+			}
+
+	my $referenceDOSSlash = $reference;
+	$referenceDOSSlash =~ s/\//\\/g;
+
+	my $exclusionCheck = "UNLISTED";
+
+	while (my $exclusion = <EXCLUSIONS>)
+		{
+		next if ($exclusion =~ /^\s*$/);
+
+		$exclusion =~ s/^\s+//;
+		$exclusion =~ s/\s+$//;
+		$exclusion =~ s/\//\\/g;
+		my $quotemetaExclusion = quotemeta ($exclusion);
+
+		if ($referenceDOSSlash =~ /^$quotemetaExclusion$/i)
+			{				
+			if ($referenceDOSSlash !~ /^$quotemetaExclusion$/)
+				{
+				$exclusionCheck = $exclusion;
+				}
+			else
+				{
+				$exclusionCheck = "OK";
+				}
+			last;
+			}
+			elsif($referenceDOSSlash =~ /\\$quotemetaExclusion$/i)
+			{				
+			if ($referenceDOSSlash !~ /\\$quotemetaExclusion$/)
+				{
+				$exclusionCheck = $exclusion;
+				}
+			else
+				{
+				$exclusionCheck = "OK";
+				}
+			last;
+			}
+		}
+
+	close EXCLUSIONS;
+
+	return $exclusionCheck;
+	}
+
+1;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/e32util/copyfeaturevariants.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,86 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# copy A.X.aaa to B.X.bbb for all X (32 chars) when given A.aaa B.bbb
+# 
+#
+
+use strict;
+
+my $source = shift;
+my $target = shift;
+
+my $errs = 0;
+
+# copy invariant
+use File::Copy;
+if (-f $source)
+{
+	if (copy($source, $target))
+	{
+		print "copy $source $target\n";
+	}
+	else
+	{
+		print "ERROR: failed copy $source $target\n";
+		$errs++;
+	}
+}
+
+# now think about variants
+
+use File::Basename;
+my $srcDir = dirname($source);
+my $srcRoot = basename($source);
+my $srcExt = "";
+
+if ($srcRoot =~ /^(.+)\.([^\.]+)$/)
+{
+	$srcRoot = $1;
+	$srcExt = $2;
+}
+
+my $tgtRoot = $target;
+my $tgtExt = "";
+
+if ($tgtRoot =~ /^(.+)\.([^\.]+)$/)
+{
+	$tgtRoot = $1;
+	$tgtExt = $2;
+}
+
+opendir(DIR, $srcDir) or die("ERROR: cannot read directory $srcDir\n");
+
+# copy all variants
+while (my $file = readdir(DIR))
+{
+	if ($file =~ /^$srcRoot\.(\w{32})\.$srcExt$/i)
+	{
+		my $from = "$srcDir/$file";
+		my $into = "$tgtRoot.$1.$tgtExt";
+
+		if (copy($from, $into))
+		{
+			print "copy $from $into\n";
+		}
+		else
+		{
+			print "ERROR: failed copy $from $into\n";
+			$errs++;
+		}
+	}
+}
+
+exit 1 if (!closedir(DIR) || $errs > 0);
+exit 0;
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/e32util/createrfifile.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,88 @@
+#!/usr/bin/perl
+# Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+use strict;
+use File::Basename;
+
+if (@ARGV <2)
+	{
+	print (STDERR "\ncreaterfifile.pl\n");
+	print STDERR << 'END_OF_HELP';
+
+Usage: createrfifile.pl rss_cpp_deps_file.d output_file.rfi [exclude path]
+
+Takes a file containing CPP dependency output from the preprocessing of a .rss file and
+generates a "combined resource" .rfi that can  be consumed by CDB.
+Optionally takes an exclusion path under which "found" dependencies are then ignored.
+
+END_OF_HELP
+	exit(0);
+	}
+
+my ($deps, $rfi, $exclude) = @ARGV;
+
+if ($exclude)
+	{
+	$exclude =~ s/\\/\//g;			# Ensure consistent slashes
+	$exclude =~ s/\/\//\//g;		# Remove double slashes
+	$exclude = quotemeta($exclude);	# Convert for regex match
+	}
+
+print ("RFI : exclude under - \"$exclude\"\n");
+
+my @resources;
+open DEPS, "< $deps" or die "\nCannot read \"$deps\"!\n\n";
+while (<DEPS>)
+	{
+	# .d file format - whitespace at front is key, path format varies depending on platform
+	# the aim is to get a list of the "real" files. Missing files can appear "unpathed", although
+	# this isn't currently dealt with.
+	#
+	#HelloWorld_reg.o:  \
+	# F:/source/personal/misc/filenamepolicy/ported/examples/helloworld/HelloWorld_reg.rss \
+	#  F:/builds/sbs/9.5/epoc32/include/variant/Symbian_OS.hrh \
+	#  F:/builds/sbs/9.5/epoc32/include/appinfo.rh \
+	#  F:/builds/sbs/9.5/epoc32/include/helloworld.rsg
+	#
+	
+	s/^.*\.o\://;
+	s/^\s+//;
+	s/\s*\\$//;
+	s/\/\//\//g;
+	chomp ($_);
+	next if !/\S/;
+
+	print ("WARNING: Could not find dependency \"$_\" in \"$deps\"\n") if !(-e $_);
+	
+	print ("RFI : processing - \"$_\"\n");
+	next if ($exclude && /^$exclude/i);
+	push @resources,$_;	
+	}
+close DEPS;
+
+open RFI, "> $rfi" or die "\nCannot write \"$deps\"!\n\n";
+foreach my $resource (@resources)
+	{
+	print RFI "\n\n/* GXP ***********************\n";
+	print RFI " * ".basename($resource)."\n";
+	print RFI " ****************************/\n\n";
+	
+	open RESOURCE, "< $resource" or die "\nCannot read \"$resource\"!\n\n";
+	print RFI $_ while (<RESOURCE>);
+	close RESOURCE;
+	}
+close RFI;
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/e32util/defutl.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,183 @@
+# Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# this module requires Pathutl module to have been 'used' by the main program
+# General Def file utilities
+# 
+#
+
+package Defutl;
+
+require Exporter;
+@ISA=qw(Exporter);
+
+@EXPORT=qw(
+	Def_ReadFileL Def_WriteFileL
+);
+
+use strict;
+use File::Path;
+use File::Basename;
+
+sub Def_ReadFileL ($$$$) {
+#	this function reads a .DEF file, putting the export information into a data
+#	structure
+
+	my ($DataStructRef, $FILE, $ExportsOn, $IgnoreSequence)=@_;
+
+#	initialisation
+	@$DataStructRef=();
+
+#	this function expects all statements to appear on separate lines - though MSVC doesn't
+
+	open (FILE, "<$FILE") or die "could not open $FILE: $!";
+
+	my $PreviousOrdinal=0;
+	my $MultiLineStatement='';
+	my $NAMEorLIBRARYallowed=1;
+	my $LineNum=0;
+	while (<FILE>) {
+		$LineNum++;
+
+		my %Data;
+		$Data{Line}=$_;
+		$Data{LineNum}=$LineNum;
+
+#		blank lines and comment lines
+		if (/^\s*(;.*)?$/o) {
+			push @$DataStructRef, \%Data;
+			next;
+		}
+
+		if (/^\s*(EXPORTS|SECTIONS|IMPORTS)\s*(\s+\S+.*)?$/io) {
+#			check for multi-line sections starting
+			$MultiLineStatement=uc $1;
+			$NAMEorLIBRARYallowed=0;
+			unless ($2) {
+				push @$DataStructRef, \%Data;
+				next;
+			}
+			$_=$2;
+		}
+		elsif (/^\s*(NAME|LIBRARY|DESCRIPTION|STACKSIZE|VERSION)\s*(\s+\S+.*)?$/io) {
+#			set MULTI-LINE statement to OFF
+			$MultiLineStatement='';
+#			check single-line statements are specified correctly
+			$_=uc $1;
+#			check NAME or LIBRARY statements aren't supplied incorrectly
+			if (/^(NAME|LIBRARY)$/o) {
+				unless ($NAMEorLIBRARYallowed) {
+					die "$FILE($LineNum) : DEFFILE ERROR: NAME or LIBRARY statements must precede all other statements\n";
+				}
+				push @$DataStructRef, \%Data;
+				next;
+			}
+			$NAMEorLIBRARYallowed=0;
+			push @$DataStructRef, \%Data;
+			next;
+		}
+		else {
+			unless ($MultiLineStatement) {
+				chomp $_;
+				die "$FILE($LineNum) : DEFFILE ERROR: Unrecognised Syntax \"$_\"\n";
+			}
+		}
+
+		if ($MultiLineStatement eq 'EXPORTS') {
+#			get export data
+			if (/^\s*(\S+)\s+\@\s*(\d+)\s*(NONAME)?\s*((DATA)\s*(\d+))?\s*(R3UNUSED)?\s*(ABSENT)?\s*(;\s*(.*))?$/io) {
+				$Data{Name}=$1;
+				$Data{Ordinal}=$2;
+				if ($4) {
+#					Mark the data symbols and retain the size.
+					$Data{Data} = 1;
+					if($6){
+					$Data{Size} = $6;
+					}
+				}
+				if ($7) {
+					$Data{R3Unused} = 1;
+				}
+				if ($8) {
+					$Data{Absent} = 1;
+				}
+				if ($10) {
+					$Data{Comment}=$10;
+				}
+
+				if ($Data{Name} =~ /^(\S+?)=(\S+)$/) {
+# 					rename this export
+					$Data{ExportName}=$1;
+					$Data{Name}=$2;
+					if ($Data{Name} =~ /=/) {
+						die "$FILE($LineNum) : DEFFILE ERROR: $Data{Name} Invalid rename syntax\n";
+					}
+				}
+				else {
+					$Data{ExportName}=$Data{Name};
+				}
+#				test the export - this is probably too slow to bother with
+				my $ExportRef;
+				unless ($IgnoreSequence) {
+#					check ordinal specified in sequence - this check is a style matter
+#					rather the a .DEF file syntax matter, so maybe it shouldn't be applied
+					unless ($Data{Ordinal}==($PreviousOrdinal+1)) {
+						die "$FILE($LineNum) : DEFFILE ERROR: Ordinal not specified in sequence\n";
+					}
+				}
+				$PreviousOrdinal=$Data{Ordinal};
+				push @$DataStructRef, \%Data;
+				next;
+			}
+			if (/^\s*_E32Startup(\s*\=\s*__E32Startup)?\s+(;\s*(.*))?$/io) {
+#				Emulator's special entrypoint ordinal
+				next;
+			}
+			if (/^\s*_E32Dll(\s*\=\s*__E32Dll)?\s+(;\s*(.*))?$/io) {
+#				Emulator's special entrypoint ordinal
+				next;
+			}
+			die "$FILE($LineNum) : DEFFILE ERROR: Incorrect EXPORTS statement syntax\n";
+		}
+
+	}
+
+#	decide whether we've ended up with an EXPORTS section specified
+	if ($MultiLineStatement eq 'EXPORTS') {
+		$_[2]=1; # $ExportsOn
+	}
+	else {
+		$_[2]=0; # $ExportsOn
+	}
+
+	close FILE or die "DEFFILE ERROR: Can't close file $FILE: $!\n";
+}
+
+sub Def_WriteFileL ($$) {
+#	Writes an array of text to a file
+
+	my ($TextArrayRef, $FILE)=@_;
+	
+	# make sure path exists
+	my($filename, $directories, $suffix) = fileparse($FILE);
+	unless (-d $directories) {
+		eval { mkpath[$directories] };
+		die $@ if $@;
+	} 
+
+	open (FILE, ">$FILE") or die "DEFFILE ERROR: Could not open $FILE: $!\n";
+	print FILE @$TextArrayRef or die "DEFFILE ERROR: Can't write output to $FILE: $!\n";
+	close FILE or die "DEFFILE ERROR: Can't close file $FILE: $!\n";
+}
+
+1;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/e32util/deletefeaturevariants.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,48 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# delete A.X.aaa for all X (32 chars) when given A.aaa
+# 
+#
+
+use strict;
+
+my $source = shift;
+
+# delete invariant
+unlink($source) if (-f $source);
+
+# now think about variants
+
+use File::Basename;
+my $srcDir = dirname($source);
+my $srcRoot = basename($source);
+my $srcExt = "";
+
+if ($srcRoot =~ /^(.+)\.([^\.]+)$/)
+{
+	$srcRoot = $1;
+	$srcExt = $2;
+}
+
+opendir(DIR, $srcDir) or die("ERROR: cannot read directory $srcDir\n");
+
+# delete all variants
+while (my $file = readdir(DIR))
+{
+	unlink("$srcDir/$file") if ($file =~ /^$srcRoot\.(\w{32})\.$srcExt$/i);
+}
+
+exit 1 if (!closedir(DIR));
+exit 0;
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/e32util/e32tpver.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,31 @@
+# Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Returns the version number for E32TOOLP - update for each release
+# 
+#
+
+package E32tpver;
+require Exporter;
+@ISA=qw(Exporter);
+@EXPORT=qw(
+	E32tpver
+);
+
+use strict;
+
+sub E32tpver () {
+	my $Version=674; 
+}
+
+1;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/e32util/efreeze.bat	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,28 @@
+@rem
+@rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+@rem All rights reserved.
+@rem This component and the accompanying materials are made available
+@rem under the terms of "Eclipse Public License v1.0"
+@rem which accompanies this distribution, and is available
+@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem
+@rem Initial Contributors:
+@rem Nokia Corporation - initial contribution.
+@rem
+@rem Contributors:
+@rem
+@rem Description:
+@rem
+@echo off
+
+
+perl -w -S efreeze.pl %1 %2 %3 %4 %5 %6 %7 %8 %9
+if errorlevel==1 goto CheckPerl
+goto End
+
+:CheckPerl
+perl -v >NUL
+if errorlevel==1 echo Is Perl, version 5.003_07 or later, installed?
+goto End
+
+:End
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/e32util/efreeze.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,341 @@
+# Copyright (c) 1998-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# all variables called *Path* are set up to end with a backslash
+# all variables called *Path or *File are stored as absolute (file)paths
+# all variables called UpPath* are stored as relative paths
+# 
+#
+
+use strict;
+
+use FindBin;		# for FindBin::Bin
+use Getopt::Long;
+
+my $PerlLibPath;    # fully qualified pathname of the directory containing our Perl modules
+
+BEGIN {
+# check user has a version of perl that will cope
+	require 5.005_03;
+# establish the path to the Perl libraries: currently the same directory as this script
+	$PerlLibPath = $FindBin::Bin;	# X:/epoc32/tools
+# do not convert slashes for linux
+	if ($^O eq "MSWin32") {
+		$PerlLibPath =~ s/\//\\/g;	# X:\epoc32\tools
+		$PerlLibPath .= "\\";
+	}
+}
+
+use lib $PerlLibPath;
+use Defutl;
+use E32tpver;
+use Pathutl;
+
+
+# THE MAIN PROGRAM SECTION
+##########################
+
+{
+	my %Options;
+
+	# process the command-line
+	unless (GetOptions(\%Options, 'compare', 'remove')) {
+		exit 1;
+	}
+	unless (@ARGV==2) {
+		&Usage;
+	}
+
+	my $FRZFILE;
+	my $GENFILE;
+
+	($FRZFILE,$GENFILE)=(@ARGV);
+	# if paths are not absolute, then convert them to absolute
+	if( !(File::Spec->file_name_is_absolute($FRZFILE)) || !(File::Spec->file_name_is_absolute($GENFILE)) )
+	{
+		($FRZFILE,$GENFILE)=&Path_AbsToWork(@ARGV);
+	}
+
+	
+#	check the file exists
+	unless (-e $FRZFILE) {
+		warn "WARNING: $FRZFILE: File not found - OK if freezing for first time\n";
+	}
+	unless (-e $GENFILE) {
+		die "EFREEZE ERROR: $GENFILE: File not found\n";
+	}
+
+#	Read the Frozen .DEF file if it exists
+	my @FrzDataStruct;
+	my $FrzExportsOn=0;
+	if (-e $FRZFILE) {
+		eval { &Def_ReadFileL(\@FrzDataStruct, $FRZFILE, $FrzExportsOn); };
+		die $@ if $@;
+	}
+
+#	Read the New .DEF file
+	my @GenDataStruct;
+	my $Dummy;
+	if ($GENFILE) {
+		eval { &Def_ReadFileL(\@GenDataStruct, $GENFILE, $Dummy, ($Options{compare} or $Options{remove})); };
+	}
+	die $@ if $@;
+
+#	Compare the frozen .DEF data with the new .DEF file
+	my (@NewDataStruct, @MissingDataStruct, @BadDataStruct);
+	eval { &CompareFrzGenL (\@NewDataStruct, \@MissingDataStruct, \@BadDataStruct, \@FrzDataStruct, \@GenDataStruct, $Options{remove}); };
+	die $@ if $@;
+
+#	check for errors
+	my $NumRemoved;
+	my $Ref;
+	my @Errors;
+	my $Title='EFREEZE ERROR:';
+	if ($Options{compare}) {
+		$Title='EFREEZE:';
+	}
+	if (@MissingDataStruct and $Options{remove}) {
+#		Mark missing exports as ABSENT in DEF file
+		$NumRemoved=@MissingDataStruct;
+		if ($Options{compare}) {
+			print "EFREEZE: Marking $NumRemoved Export(s) as ABSENT :\n";
+		} else {
+			print "EFREEZE: Marking $NumRemoved Export(s) as ABSENT in $FRZFILE :\n";
+		}
+		foreach (@MissingDataStruct) {
+			$$_{Absent} = 1;
+			my $Comment='';
+			if ($$_{Comment}) {
+				$Comment=" ; $$_{Comment}";
+			}
+			my $r3unused = $$_{R3Unused} ? " R3UNUSED" : "";
+			print "  $$_{Name} \@ $$_{Ordinal} NONAME$r3unused$Comment\n";
+		}
+	}
+	elsif (@MissingDataStruct) {
+		my $Num=@MissingDataStruct;
+		push @Errors, "$Title $FRZFILE: $Num Frozen Export(s) missing from $GENFILE (POSSIBLE COMPATIBILITY BREAK):\n"; 
+		foreach $Ref (@MissingDataStruct) {
+			my $r3unused = $$Ref{R3Unused} ? " R3UNUSED" : "";
+			push @Errors, "  $$Ref{LineNum}: $$Ref{Name} \@ $$Ref{Ordinal} NONAME$r3unused\n";
+		}
+		push @Errors, "\n";
+	}
+	if (@BadDataStruct) {
+		my $Num=@BadDataStruct;
+		push @Errors, "$Title $GENFILE: $Num function(s) exported at wrong ordinal:\n";
+		foreach $Ref (@BadDataStruct) {
+			my $r3unused = $$Ref{R3Unused} ? " R3UNUSED" : "";
+			push @Errors, "  $$Ref{LineNum}: $$Ref{Name} \@ $$Ref{Ordinal} NONAME$r3unused\n";
+		}
+	}
+	if (@Errors) {
+		unless ($Options{compare}) {
+			die @Errors;
+		}
+		else {
+			print @Errors;
+		}
+	}
+
+#	Update the frozen .DEF file
+	eval { &UpdateFrzFileL(\@NewDataStruct, \@FrzDataStruct, $FRZFILE, $FrzExportsOn, $Options{compare}, $NumRemoved); };
+	die $@ if $@;
+	
+
+	exit;
+}
+
+#######################################################################
+# SUBROUTINES
+#######################################################################
+
+sub Usage () {
+
+	print(
+		"\n",
+		"EFREEZE - .DEF file maintenance utility (Build ",&E32tpver,")\n",
+		"\n",
+		"EFREEZE {options} [frozen .DEF file] [new .DEF file]\n",
+		"\n",
+		"options:   (case-insensitive)\n",
+		"  -Compare\n",
+		"  -Remove\n",
+		"\n"
+	);
+	exit 1;
+}
+
+sub CompareFrzGenL ($$$$$$) {
+	my ($NewStructRef, $MissingStructRef, $BadStructRef, $FrzStructRef, $GenStructRef, $remove)=@_;
+
+#	compare the input export data with the frozen data
+
+#	take a copy of the frozen .DEF file structure that we can trash
+	my @TmpStruct=@$FrzStructRef;
+
+#	remove any entries not containing export data and get the highest ordinal value used
+	my $LastOrdinal=0;
+	foreach (@TmpStruct) {
+		if ($$_{Name}) {
+			if ($LastOrdinal<$$_{Ordinal}) {
+				$LastOrdinal=$$_{Ordinal};
+			}
+			next;
+		}
+		undef $_;
+	}
+
+	my $GenRef;
+	my $TmpRef;
+	GENLOOP: foreach $GenRef (@$GenStructRef) {
+		next unless $$GenRef{Name};		# ignore lines in the .DEF file not containing an export
+		foreach $TmpRef (@TmpStruct) {
+			next unless defined $TmpRef; # ignore nullified entries in the temporary array
+#			does the function name match?
+			if ($$GenRef{Name} eq $$TmpRef{Name}) {
+#				check the names have the same ordinals
+				if ($remove or $$GenRef{Ordinal}==$$TmpRef{Ordinal}) {
+					undef $TmpRef;
+					next GENLOOP;
+				}
+#				store exports with the wrong ordinals
+				push @$BadStructRef, $GenRef;
+				undef $TmpRef;
+				next GENLOOP;
+			}
+#			Absent export?
+			if ($$TmpRef{Absent} and $$TmpRef{Ordinal}==$$GenRef{Ordinal}) {
+				next GENLOOP;
+			}
+		}
+#		store new exports not found in the frozen .DEF file with the right ordinal value
+		$LastOrdinal++;
+		$$GenRef{Ordinal}=$LastOrdinal;
+		push @$NewStructRef, $GenRef;
+	}
+
+#	all the exports left in the frozen .DEF file weren't found
+	foreach $TmpRef (@TmpStruct) {
+		next unless defined $TmpRef; # ignore nullified entries in the temporary array
+		next if $$TmpRef{Absent};	# skip entries marked as ABSENT in the DEF file
+		push @$MissingStructRef, $TmpRef;
+	}
+}
+
+sub UpdateFrzFileL ($$$$$$) {
+	my ($NewStructRef, $FrzStructRef, $FILE, $ExportsOn, $Compare, $NumRemoved)=@_;
+
+#	add the exports to the frozen .DEF file text
+	unless (@$NewStructRef or $NumRemoved) {
+		print "EFREEZE: DEF file up to date\n";
+		return;
+	}
+
+	my $NumNewExports=@$NewStructRef;
+	unless ($Compare) {
+# 		abort the operation unless the frozen .DEF file is writeable
+		if (-e $FILE and not -w $FILE) {
+			die
+				"EFREEZE ERROR: Can't append $NumNewExports New Export(s) to $FILE\n",
+				"  as file is not writeable.  Check source code control system.\n"
+			;
+		}
+		print "EFREEZE: Appending $NumNewExports New Export(s) to $FILE:\n" if ($NumNewExports);
+	}
+	else {
+		print "EFREEZE: $NumNewExports New Export(s):\n" if ($NumNewExports);
+	}
+
+	my @Text;
+	my $ExportsDeclared;
+
+#	Process the frozen .DEF file
+	if (@$FrzStructRef) { # there is already a frozen .DEF file
+		my $FrzRef;
+
+#		get the lines of text from the frozen .DEF file
+		foreach $FrzRef (@$FrzStructRef) {
+			next if (!$FrzRef);
+			if (!defined($$FrzRef{Ordinal})) {
+				push @Text, $$FrzRef{Line};
+				$ExportsDeclared = 1 if ($$FrzRef{Line} =~ /^\s*EXPORTS\s*(\s+\S+.*)?$/io);
+				next;
+			}
+			my $Comment='';
+			if ($$FrzRef{Comment}) {
+				$Comment=" ; $$FrzRef{Comment}";
+			}
+			my $r3unused = $$FrzRef{R3Unused} ? " R3UNUSED" : "";
+			my $absent = $$FrzRef{Absent} ? " ABSENT" : "";
+
+			my $data = "";
+			if( !($$FrzRef{Name} =~ /^(_ZTI|_ZTV|_ZTT)/))
+			{
+#				A symbol name with the above pattern indicates that it is a Data symbol.
+#				Mark symbols as DATA only when it cannot be found from the name alone (i.e.,
+#				explicitly exported data symbols).
+
+				if(($$FrzRef{Data}) and ($$FrzRef{Size}) ){
+				$data = " DATA $$FrzRef{Size}";
+				}
+			}
+			push @Text, "\t$$FrzRef{Name} \@ $$FrzRef{Ordinal} NONAME$data$r3unused$absent$Comment\n";
+		}
+
+#		strip any blank lines at the end of the frozen .DEF file text
+		foreach (reverse @Text) {
+			if (/^\s*$/o) {
+				$_='';
+				next;
+			}
+			last;
+		}
+
+	}
+
+#	Add an EXPORTS section header if there aren't already exports
+	unshift @Text, "EXPORTS\n" unless ($ExportsDeclared);
+
+	my $NewRef;
+	foreach $NewRef (@$NewStructRef) {
+		my $Comment='';
+		if ($$NewRef{Comment}) {
+			$Comment=" ; $$NewRef{Comment}";
+		}
+		my $r3unused = $$NewRef{R3Unused} ? " R3UNUSED" : "";
+		my $absent = $$NewRef{Absent} ? " ABSENT" : "";
+
+		my $data = "";
+		if( !($$NewRef{Name} =~ /^(_ZTV|_ZTI|_ZTT)/)) {
+#				A symbol name with the above pattern indicates that it is a Data symbol.
+#				Mark symbols as DATA only when it cannot be found from the name alone (i.e.,
+#				explicitly exported data symbols).
+			if(($$NewRef{Data}) and ($$NewRef{Size}) ){
+			$data = " DATA $$NewRef{Size}";
+			}
+		}
+		print "  $$NewRef{Name} \@ $$NewRef{Ordinal} NONAME$r3unused$Comment\n";
+		push @Text, "\t$$NewRef{Name} \@ $$NewRef{Ordinal} NONAME$data$r3unused$absent$Comment\n";
+	}
+
+#	add a terminating newline
+	push @Text, "\n";
+
+	unless ($Compare) {
+#		write the new frozen .DEF file
+		eval { &Def_WriteFileL(\@Text, $FILE); };
+		die $@ if $@;
+	}
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/e32util/epocaif.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,513 @@
+# Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Wrapper to support the EPOC AIF Compiler
+# 
+#
+
+use strict;
+
+use FindBin;		# for FindBin::Bin
+use File::Copy;		# for copy()
+use Cwd;		# for cwd
+use File::Basename;	# for basename()
+
+my $PerlBinPath;	# fully qualified pathname of the directory containing this script
+my $curdrive="x";	    	# will be initialised when first needed
+
+# establish the path to the Perl binaries
+BEGIN {
+	require 5.005_03;		# check user has a version of perl that will cope
+	$PerlBinPath = $FindBin::Bin;	# X:/epoc32/tools
+	$PerlBinPath =~ s/\//\\/g;	# X:\epoc32\tools
+}
+use lib $PerlBinPath;
+use E32Variant;         # for variant specific macros
+use Pathutl;
+use Preprocessor;
+
+sub print_usage
+	{
+#........1.........2.........3.........4.........5.........6.........7.....
+	print <<USAGE_EOF;
+
+Usage:
+  epocaif [options] srcfile [-o outputfile] [-t tmpdir] [-b "bmps" | -m mbm] [-l "TargetPath:CWD"]
+
+
+The available options are
+
+   -Ixxx  -- C++ preprocessor arguments
+   -o	  -- output AIF file name including path
+   -t	  -- tempory directory for intermediate files
+   -b	  -- list of bitmaps Eg., "-b/c8\\location\\bmp1 /c8\\location\\bmp2.."
+   -m	  -- compiled MBM file (alternative to -b)
+   -l	  -- if specified, captures all source to \\epoc32\\localisation\\...
+
+The aif resource file is then passed through the C++ preprocessor, using any 
+specified preprocessor arguments, and then compiled with RCOMP.EXE to 
+generate a compiled resource.
+The -m or -b option is used to generate a suitable MBM file, if required.
+The MBM and the compiled resource are then combined to produce an AIF file.
+
+
+USAGE_EOF
+	}
+
+#-------------------------------------------------------
+# Process commandline arguments
+#
+# Can't use the Getopt package because it doesn't like the -D and -I style options
+#
+my $sourcefile="";
+my $opt_o="";
+my $opt_h="";	
+my $tmpdir="";
+my $opt_v=1;
+my $opt_b="";
+my $opt_l="";
+my $opt_m="";
+my $TrgPath;
+my $xipaif=1;
+
+my $exe = &PreprocessorToUseExe();
+my $cpp_spec= "$exe -undef -C ";	    # preserve comments
+
+my $errors = 0;
+while (@ARGV)
+	{
+	my $arg = shift @ARGV;
+
+	if ($arg =~ /^-I-$/)
+		{
+		$cpp_spec .= "-I- ";
+		next;
+		}
+	if ($arg =~ /^-I(.*)$/)
+		{
+		$cpp_spec .= "-I ";
+		if ($1 eq "")
+		    {
+		    $arg = shift @ARGV;
+		    }
+		else
+		    {
+		    $arg = $1;
+		    }
+		$cpp_spec .= quoted_path($arg)." ";
+		next;
+		}
+	if ($arg =~ /^-v$/)
+		{
+		$opt_v =1;
+		next;
+		}
+	if ($arg =~ /^-o(.*)$/)
+		{
+		$opt_o =$1;
+		$TrgPath = $opt_o;
+		next;
+		}
+
+	if ($arg =~ /^-t(.*)\\?$/)
+		{
+		$tmpdir =$1;
+		next;
+		}
+	if ($arg =~ /^-b(.*)$/)
+		{
+		$opt_b =$1;
+		next;
+		}	
+	if ($arg =~ /^-m(.*)$/)
+		{
+		$opt_m =$1;
+		next;
+		}	
+	if ($arg =~ /^-l(.*)$/)
+		{
+		$opt_l =$1;
+		next;
+		}	
+
+	if ($arg =~ /^-/)
+		{
+		print "Unknown arg: $arg\n";
+		$errors++;
+		next;
+		}
+	$sourcefile=$arg;
+	}
+
+if ($opt_m ne "" && $opt_b ne "")
+	{
+	print "Can't specify both -m and -b\n";
+	$errors++;
+	}
+if ($errors || $sourcefile eq "")
+	{
+	print_usage();
+	exit 1;
+	}
+
+my $rss_base = basename($sourcefile);
+my ($rssfile) = split(/\./, $rss_base);	    # remove extension
+my $rpp_name = "$tmpdir\\$rssfile.rpp";
+my $outputfile="$tmpdir\\AIF.RSC";	
+my $headerfile=$opt_h;
+
+if ($opt_v)
+	{
+	print "* Source file:   $sourcefile\n";
+	print "* Resource file: $outputfile\n" if ($outputfile ne "");
+	}
+
+$opt_o = "-o\"$outputfile\"" if ($outputfile ne "");
+$opt_h = "-h\"$headerfile\"" if ($headerfile ne "");
+
+
+#-------------------------------------------------------
+# Run the preprocessor
+#
+
+my $variantMacroHRHFile = Variant_GetMacroHRHFile();
+if($variantMacroHRHFile){
+    my $variantFilePath = Path_Split('Path',$variantMacroHRHFile);
+    chop ( $variantFilePath );
+    $cpp_spec .= " -I \"" . &Path_RltToWork($variantFilePath) . "\" -include " . &Path_RltToWork($variantMacroHRHFile) . " "; 
+}
+
+$cpp_spec .= "-I $PerlBinPath\\..\\include ";	# extra path to support shared tools
+$cpp_spec .= "-D_UNICODE ";
+
+$cpp_spec .= quoted_path($sourcefile) ." -o ". quoted_path($rpp_name);
+
+print "* $cpp_spec\n" if ($opt_v);
+system($cpp_spec);
+
+my $cpp_status = $?;
+die "* cpp failed\n" if ($cpp_status != 0);
+
+
+#-------------------------------------------------------
+# Copy source to epoc32\localisation
+#
+
+if ($opt_l ne "")
+{
+use lockit_info;
+	my ($rssfile, $FileType) = split(/\./, basename($TrgPath));
+	&Lockit_SrcFile($rssfile, $rpp_name, $opt_l, $FileType, $opt_b);
+}
+
+#-------------------------------------------------------
+# Merge rls strings to rpp
+#
+&Merge_rls_string($rpp_name);
+
+#-------------------------------------------------------
+# Run the resource compiler
+#
+
+my $rcomp_spec = "rcomp -u ";
+$rcomp_spec .= "-:$tmpdir\\_dump_of_resource_ "; # causes Rcomp to dump each resource (uncompressed and unpadded) in $tmpdir\\_dump_of_resource_1, $tmpdir\\_dump_of_resource_2, etc
+$rcomp_spec .= "$opt_o $opt_h -s\"$rpp_name\" -i\"$sourcefile\"";
+
+print "* $rcomp_spec\n" if ($opt_v);
+system($rcomp_spec);
+if ($? != 0)
+	{
+	print "* RCOMP failed - deleting output files\n";
+	unlink $outputfile if ($outputfile ne "");
+	unlink $headerfile if ($headerfile ne "");
+	exit 1;
+	}
+print "* deleting $rpp_name\n" if ($opt_v);
+unlink $rpp_name;
+
+#-------------------------------------------------------
+# Run bmconv, if needed
+#
+
+if ($opt_b ne "")
+	{
+	print "* bmconv /q $tmpdir\\AIF.MBM $opt_b\n" if ($opt_v);
+	system("bmconv /q $tmpdir\\AIF.MBM $opt_b");
+	if ($? != 0)
+		{
+		print "* BMCONV failed\n";
+		exit 1;
+		}
+	print "* bmconv /q /s $tmpdir\\AIF_XIP.MBM $opt_b\n" if ($opt_v);
+	system("bmconv /q /s $tmpdir\\AIF_xip.MBM $opt_b");
+	
+	if ($? != 0)
+		{
+		print "* BMCONV failed\n";
+		exit 1;
+		}
+	}
+elsif ($opt_m ne "")
+	{
+	print "* copy $opt_m $tmpdir\\AIF.MBM\n" if ($opt_v); 
+	copy($opt_m, "$tmpdir\\AIF.MBM");
+	# no xip file genarated 
+	$xipaif=0;
+	}
+else
+	{
+	# no bitmap specified - this is legitimate
+	unlink("$tmpdir\\AIF.MBM");
+	unlink("$tmpdir\\AIF_xip.MBM");
+	}
+
+#-------------------------------------------------------
+# Get the from UID from the first four bytes of "$tmpdir\\_dump_of_resource_1"
+#
+
+open(DUMP_OF_RESOURCE_1, "< $tmpdir\\_dump_of_resource_1") or die("* Can't open dump file\n");
+binmode(DUMP_OF_RESOURCE_1);
+my $data;
+my $numberOfBytesRead=read(DUMP_OF_RESOURCE_1, $data, 4);
+defined($numberOfBytesRead) or die("* Can't read from dump file\n");
+($numberOfBytesRead>=4) or die("* Dump file too short\n");
+my $uid=(unpack('V', $data))[0];
+undef($data);
+undef($numberOfBytesRead);
+close(DUMP_OF_RESOURCE_1) or die("* Can't close dump file\n");
+
+#-------------------------------------------------------
+# Produce the AIF file from the RSC and MBM files
+#
+
+my $uidcrc = "uidcrc.exe 0x101fb032 0 ".sprintf('0x%08x', $uid)." $tmpdir\\out.aif";
+my $uidcrc_xip = "uidcrc.exe 0x101fb032 0 ".sprintf('0x%08x', $uid)." $tmpdir\\out_xip.aif";
+
+print "* $uidcrc\n" if ($opt_v);
+system($uidcrc);
+if ($? != 0)
+	{
+	print "* UIDCRC failed\n";
+	exit 1;
+	}
+if ($xipaif ne 0)
+	{	
+	print "* $uidcrc\n" if ($opt_v);
+	system($uidcrc_xip);
+	if ($? != 0)
+		{
+		print "* UIDCRC failed\n";
+		exit 1;
+		}
+	}
+
+
+open(OUT_AIF, ">> $tmpdir\\out.aif") or die("* Can't open temporary file\n");
+binmode(OUT_AIF);
+
+if ($xipaif ne 0)
+	{
+	open(OUTXIP_AIF, ">> $tmpdir\\out_xip.aif") or die("* Can't open temporary file\n");
+	binmode(OUTXIP_AIF);
+	}
+
+print "* Writing length of the RSC-block\n" if ($opt_v);
+my $lengthOfRscBlock=-s("$tmpdir\\aif.rsc");
+my $numberOfPaddingBytes=(4-($lengthOfRscBlock%4))%4;
+print(OUT_AIF pack('V', $lengthOfRscBlock));
+if ($xipaif ne 0)
+	{
+	print(OUTXIP_AIF pack('V', $lengthOfRscBlock));
+	}
+print "* Appending the RSC-block\n" if ($opt_v);
+&appendFile(\*OUT_AIF, "$tmpdir\\aif.rsc");
+if ($xipaif ne 0)
+	{
+	&appendFile(\*OUTXIP_AIF, "$tmpdir\\aif.rsc");
+	}
+# append any necessary padding bytes so that the file-offset of the start of the MBM-block is a multiple of 4-bytes
+print(OUT_AIF ('_' x $numberOfPaddingBytes));
+if ($xipaif ne 0)
+	{
+	print(OUTXIP_AIF ('_' x $numberOfPaddingBytes));
+	}
+if (-e("$tmpdir\\aif.mbm"))
+	{
+	print "* Appending the MBM-block\n" if ($opt_v);
+	&appendFile(\*OUT_AIF, "$tmpdir\\aif.mbm");
+	}
+if (-e("$tmpdir\\aif_xip.mbm"))
+	{
+	print "* Appending the XIPMBM-block\n" if ($opt_v);
+	&appendFile(\*OUTXIP_AIF, "$tmpdir\\aif_xip.mbm");
+	}
+
+close(OUT_AIF) or die("* Can't close temporary file\n");
+if ($xipaif ne 0)
+	{
+	close(OUTXIP_AIF) or die("* Can't close temporary file\n");
+	}
+print "* copy $tmpdir\\out.aif $TrgPath\n" if ($opt_v);
+copy("$tmpdir\\out.aif", "$TrgPath");
+if ($xipaif ne 0)
+	{
+	my $basepath = &Path_Split('Path', $TrgPath);
+	my $ext=&Path_Split('Ext',  $TrgPath);
+	my $basename = basename($TrgPath, $ext);
+	my $xip="_xip";
+	print "* copy $tmpdir\\out_xip.aif $basepath$basename$xip$ext\n" if ($opt_v);
+	copy("$tmpdir\\out_xip.aif", "$basepath$basename$xip$ext");
+	}
+unlink("$tmpdir\\_dump_of_resource_*");
+unlink("$tmpdir\\aif.rsc");
+unlink("$tmpdir\\aif.mbm");
+unlink("$tmpdir\\out.aif");
+unlink("$tmpdir\\aif_xip.mbm");
+unlink("$tmpdir\\out_xip.aif");
+exit 0;
+
+#-------------------------------------------------------
+# Subroutine: convert path into something acceptable to CPP.EXE
+#
+
+sub quoted_path
+    {
+    my ($arg) = @_;
+    return "\"$arg\"" if ($arg !~ /^\\[^\\]/);	# not an absolute path
+    if ($curdrive eq "x")
+		{
+		$curdrive="";
+		$curdrive=$1 if (cwd =~ /^(.:)/);	
+		}
+    return "\"$curdrive$arg\"";
+    }
+
+#-------------------------------------------------------
+# Subroutine: Merge the rls strings in the rpp file specified
+#
+sub Merge_rls_string
+	{
+	my ($rppfile) = @_;
+
+	my $line;
+	my $StringId;
+	my $key;
+	my $value;
+	my $StringToSubstitute;
+	my %ResourceString;
+	
+	print "* merging text strings to $rppfile\n" if ($opt_v);
+	
+	open NEWRPP, ">$rppfile.new" or die "* Can't write to $rppfile.new";
+	open RPP, "$rppfile" or die "* Can't open $rppfile";
+	
+	while ($line = <RPP>) 	{
+		while (($StringId, $StringToSubstitute)=each %ResourceString)
+		{
+			$line=~s/\b$StringId\b/$StringToSubstitute/g if ($line !~ /^rls_string/);
+		}
+	
+		# find quoted "" strings
+		if($line =~ /^rls_string\s+(\S+)\s+(.*$)/)
+		{
+			my $text = $2;
+			$key = $1;
+			$line=~s/(.*)/\/\/$1/;
+			my $substr_count = 0;
+			if(!exists $ResourceString{$key})
+			{
+			SUBSTR:	while (1)
+			{
+				# find quoted "" strings e.g. "hello"
+				if($text =~ /^(\s*\"(.*?\\.)*.*?\")/)		
+				{
+					$value = $1;
+					$text = $';
+					++$substr_count;
+				}
+	
+				# find quoted '' strings. e.g. 'world'
+				elsif($text =~ /^(\s*\'(.*?\\.)*.*?\')/)			
+				{
+					$value = $1;
+					$text = $';
+					++$substr_count;
+				}
+	
+				# find hex strings e.g. <0x34><0x45><0x65>
+				elsif($text =~ /^(\s*(<.*?>)+)/)		
+				{
+					$value = $1;
+					$text = $';
+					++$substr_count;
+				}
+	
+				# find c comment e.g. /*hello world*/ (may exist between strings)
+				elsif($text =~ /^(\s*\/\*.*?\*\/)/)		
+				{
+					$text = $';
+					next SUBSTR; # ignore embedded comment
+				}
+	
+				# find c++ comment e.g. //hello world (may exist after strings)
+				elsif($text =~ /^(\s*\/\/.*$)/)		
+				{
+					$text = $';
+					next SUBSTR; # ignore trailing comment
+				}
+	
+				# exit search
+				else
+				{
+					if ($substr_count == 0)
+					{
+						warn("WARNING: rls_string $key either has incorrect syntax or no value\n");
+					}
+					last SUBSTR;
+				}
+			$ResourceString{$key} .= $value;
+			}
+		  	}
+		}
+		print NEWRPP $line;
+	}
+
+	close RPP;
+	close NEWRPP;
+	copy ("$rppfile.new", "$rppfile");
+	unlink ("$rppfile.new");
+	}
+
+#-------------------------------------------------------
+# Subroutine: Append a file into the open (binary) file already opened
+#
+sub appendFile
+	{
+	my $fileHandleOfTarget=shift;
+	my $fileNameOfSource=shift;
+	open(SOURCE, "< $fileNameOfSource") or die("* Can't open $fileNameOfSource\n");
+	binmode(SOURCE);
+	for (;;)
+		{
+		my $data;
+		my $numberOfBytesRead=read(SOURCE, $data, 1024);
+		defined($numberOfBytesRead) or die("* Can't read from $fileNameOfSource\n");
+		if ($numberOfBytesRead==0)
+			{
+			last;
+			}
+		print($fileHandleOfTarget $data);
+		}
+	close(SOURCE) or die("* Can't close $fileNameOfSource\n");
+	}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/e32util/epocmbm.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,130 @@
+# Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+use strict;
+use Cwd;		# for cwd
+use File::Basename;	# for basename()
+use FindBin;		# for FindBin::Bin
+my $PerlBinPath;	# fully qualified pathname of the directory containing this script
+
+my $epocroot;
+
+# establish the path to the Perl binaries
+BEGIN {
+	require 5.005_03;		# check user has a version of perl that will cope
+	$PerlBinPath = $FindBin::Bin;	# X:/epoc32/tools
+	$PerlBinPath =~ s/\//\\/g;	# X:\epoc32\tools
+}
+
+use lib $PerlBinPath;
+use lockit_info;
+
+sub print_usage
+	{
+	print <<USAGE_EOF;
+
+Usage:
+  epocmbm [-h headerfile] [-o outputfile] [-b "bitmaps"] [-l "TargetPath:CWDir"]  
+
+Compile the bitmaps to an EPOC MBM image file.
+   -b	  -- list of bitmaps Eg., "-b/c8\\full path\\bmp1... /c8\\full path\\bmp2.."
+   -l     -- if specified, captures all source to \\epoc32\\localisation\\...
+
+USAGE_EOF
+	}
+
+
+#-----------------------------------------------
+# Process commandline arguments
+#
+
+my $opt_o="";
+my $opt_h="";	
+my $opt_l="";
+my $opt_b="";
+my $opt_v=0;
+
+my $errors = 0;
+while (@ARGV)
+	{
+	my $arg = shift @ARGV;
+	if ($arg =~ /^-o(.*)$/)
+		{
+		$opt_o =$1;
+		next;
+		}
+	if ($arg =~ /^-h(.*)$/)
+		{
+		$opt_h =$1;
+		next;
+		}
+	if ($arg =~ /^-b(.*)$/)
+		{
+		$opt_b =$1;
+		next;
+		}	
+	if ($arg =~ /^-l(.*)$/)
+		{
+		$opt_l =$1;
+		next;
+		}
+
+	if($arg =~ /^-/)
+		{
+		print "Unknown arg: $arg\n";
+		$errors++;
+		next;
+		}
+	}
+
+if ($errors || $opt_b eq "")
+	{
+	print_usage();
+	exit 1;
+	}
+
+my $headerfile=$opt_h;
+
+if ($opt_b ne "")
+	{
+	$opt_h = "\/h\"$headerfile\"" if ($headerfile ne "");
+	print "* bmconv /q $opt_h $opt_o $opt_b\n" if ($opt_v);
+	system("bmconv /q $opt_h $opt_o $opt_b");
+	if ($? != 0)
+		{
+		print "* BMCONV failed\n";
+		exit 1;
+		}
+	}
+
+if ($opt_l ne "")
+	{
+	my ($Resrc, $FileType) = split(/\./, basename($opt_o));
+	&Lockit_SrcFile($Resrc, "", $opt_l, $FileType, $opt_b, $Resrc.".$FileType"); # ""
+		}
+exit 0;
+
+sub Epocroot_Check
+	{
+	$epocroot = $ENV{EPOCROOT};
+	die "ERROR: Must set the EPOCROOT environment variable\n" if (!defined($epocroot));
+	$epocroot =~ s-/-\\-go;	# for those working with UNIX shells
+	die "ERROR: EPOCROOT must not include a drive letter\n" if ($epocroot =~ /^.:/);
+	die "ERROR: EPOCROOT must be an absolute path without a drive letter\n" if ($epocroot !~ /^\\/);
+	die "ERROR: EPOCROOT must not be a UNC path\n" if ($epocroot =~ /^\\\\/);
+	die "ERROR: EPOCROOT must end with a backslash\n" if ($epocroot !~ /\\$/);
+	die "ERROR: EPOCROOT must specify an existing directory\n" if (!-d $epocroot);
+	$epocroot=~ s-\\$--;		# chop trailing \\
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/e32util/epocrc.bat	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,28 @@
+@rem
+@rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+@rem All rights reserved.
+@rem This component and the accompanying materials are made available
+@rem under the terms of "Eclipse Public License v1.0"
+@rem which accompanies this distribution, and is available
+@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem
+@rem Initial Contributors:
+@rem Nokia Corporation - initial contribution.
+@rem
+@rem Contributors:
+@rem
+@rem Description:
+@rem
+@echo off
+
+
+perl -w -S epocrc.pl  %*
+if errorlevel==1 goto CheckPerl
+goto End
+
+:CheckPerl
+perl -v >NUL
+if errorlevel==1 echo Is Perl, version 5.003_07 or later, installed?
+goto End
+
+:End
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/e32util/epocrc.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,646 @@
+# Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Wrapper to support the EPOC Resource Compiler
+# 
+#
+
+use warnings;
+use strict;
+use Cwd;		# for cwd
+use FindBin;		# for FindBin::Bin
+use File::Copy;		# for copy()
+
+my $curdrive="x";	    	# will be initialised when first needed
+my $PerlBinPath;	# fully qualified pathname of the directory containing this script
+
+# establish the path to the Perl binaries
+BEGIN {
+	require 5.005_03;		# check user has a version of perl that will cope
+	$PerlBinPath = $FindBin::Bin;	# X:/epoc32/tools
+	$PerlBinPath =~ s/\//\\/g;	# X:\epoc32\tools
+}
+use lib $PerlBinPath;
+use lockit_info;
+use E32Variant;         # for variant specific macros
+use Pathutl;
+use Preprocessor;
+
+sub print_usage
+	{
+#........1.........2.........3.........4.........5.........6.........7.....
+	print <<USAGE_EOF;
+
+Usage:
+  epocrc [options] srcfile [-ooutputfile] [-hheaderfile] [-l "TargetPath:CWDir"]  
+
+Compile an EPOC resource file, optionally generating a compiled resource 
+file and an associated header file.
+
+The available options are
+
+   -Dxxx, -Ixxx      -- C++ preprocessor arguments
+   -preincludeFILE   -- optional FILE to be used as a preinclude file in all preprocessing
+   -u                -- compile for use with Unicode EPOC
+   -ttmpdir          -- specify a directory for temporary files
+   -nocpp            -- do not call C++ preprocessor
+   -l                -- if specified, capture all source to \\epoc32\\localisation\\... 
+   -uid2 N           -- specifies 2nd UID for output file
+   -uid3 N           -- specifies 3rd UID for output file 
+   -m[nnn](,[nnn])*  -- suppress warning nnn in rcomp, can supply multiple 
+                        comma-separated three digit values
+   -v                -- verbose output
+   -vv               -- more verbose, -v passed to rcomp			
+
+See the file epocrc.config for futher usage options.
+   
+The resource file is first passed through the C++ preprocessor, using any 
+specified preprocessor arguments, and then compiled with RCOMP.EXE to 
+generate a compiled resource and the associated header file. 
+
+All intermediate files are generated into a temporary directory.
+
+Specifying either -uid2 or -uid3 overrides all uids specified in the source file.
+
+If -preinclude FILE is not specified, the preinclude file listed in
+%EPOCROOT%epoc32\\tools\\variant\\variant.cfg is used in all preprocessing.
+
+USAGE_EOF
+	}
+
+#-------------------------------------------------------
+# Process commandline arguments
+#
+# Can't use the Getopt package because it doesn't like the -D and -I style options
+#
+my $opt_uid2='';
+my $opt_uid3='';
+my $sourcefile="";
+my $opt_o="";
+my $opt_m="";
+my $opt_h="";	
+my $opt_l="";
+my $tmpdir="";
+my $unicode=0;
+my $opt_v=0;
+my $opt_vmore=0;
+my $opt_cpp = 1;
+my $check_rls_items = 0;
+my $strict_checking = 0;
+my $test_mode = 0;
+my $warnings_to_enable = 0;
+
+my $variantMacroHRHFile = "";
+my $exe = &PreprocessorToUseExe();
+my $cpp_spec= "$exe -nostdinc -undef -C ";	    # preserve comments
+
+my $errors = 0;
+while (@ARGV)
+	{
+	my $arg = shift @ARGV;
+	if ($arg =~ /^-D(.*)$/)
+		{
+		if ($1 eq "")
+		    {
+		    $arg = shift @ARGV;
+		    $cpp_spec .= "-D \"$arg\" ";
+		    }
+		else
+		    {
+		    $cpp_spec .= "$arg ";
+		    }
+		next;
+		}
+	if ($arg =~ /^-I-$/)
+		{
+		$cpp_spec .= "-I- ";
+		next;
+		}
+	if ($arg =~ /^-I(.*)$/)
+		{
+		$cpp_spec .= "-I ";
+		if ($1 eq "")
+		    {
+		    $arg = shift @ARGV;
+		    }
+		else
+		    {
+		    $arg = $1;
+		    }
+		$cpp_spec .= quoted_path($arg)." ";
+		next;
+		}
+	if ($arg =~ /^-preinclude(.*)$/)
+		{
+		$variantMacroHRHFile = $1;
+		next;
+		}
+	if ($arg =~ /^-v$/)
+		{
+		$opt_v =1;
+		next;
+		}
+	if ($arg =~ /^-vv$/)
+		{
+		$opt_vmore =1;
+		$opt_v =1;
+		next;
+		}
+	if ($arg =~ /^-nocpp$/)
+		{
+		$opt_cpp =0;
+		next;
+		}
+
+	if ($arg =~ /^-uid2$/)
+		{
+		$opt_uid2 = shift @ARGV;
+		next;
+		}
+	
+	if ($arg =~ /^-uid3$/)
+		{
+		$opt_uid3 = shift @ARGV;
+		next;
+		}
+	
+	if ($arg =~ /^-u$/)
+		{
+		$unicode =1;
+		next;
+		}
+	if ($arg =~ /^-o(.*)$/)
+		{
+		$opt_o =$1;
+		next;
+		}
+	if ($arg =~ /^-h(.*)$/)
+		{
+		$opt_h =$1;
+		next;
+		}
+	if ($arg =~ /^-t(.*)\\?$/)
+		{
+		$tmpdir ="$1\\";
+		next;
+		}
+	if ($arg =~ /^-l(.*)$/)
+		{
+		$opt_l =$1;
+		next;
+		}
+	if($arg =~ /^(-m.*)$/)
+		{
+		$opt_m =$1;
+		next;
+		}
+	if ($arg =~ /^-epocrc-test$/)
+		{
+		$test_mode = 1;
+		next;
+		}
+	if ($arg =~ /^-/)
+		{
+		print "Unknown arg: $arg\n";
+		$errors++;
+		next;
+		}
+
+	if (($opt_uid3 ne "*") && ($opt_uid2 eq "0"))
+		{
+    print "\n Error: uid3 specified without uid2 \n";
+	  $errors++;
+	  exit;
+	  }
+	     
+	$sourcefile=$arg;
+	}
+
+if ($errors || $sourcefile eq "")
+	{
+	print_usage();
+	exit 1;
+	}
+
+my @enabled_warnings = ();
+my $file_line;
+my @includes_from_config;
+my $epocrc_config = $ENV{EPOCROOT}. "epoc32\\tools\\epocrc.config";
+
+if(-e $epocrc_config)
+	{
+	print "Opening configuration file " . $ENV{EPOCROOT} . "epoc32\\tools\\epocrc.config.\n" if ($opt_v);
+	open EPOCRC_CONFIG, $ENV{EPOCROOT}. "epoc32\\tools\\epocrc.config" or die $ENV{EPOCROOT} . "epoc32\\tools\\epocrc.config";
+	
+	while ($file_line = <EPOCRC_CONFIG>)
+		{
+		if($file_line=~/^\s*check_rls_items\s*=\s*(\d+)\s*;?\s*(\#.*)?$/)
+			{ # matches check_rls_items = <digits> followed by optional semi-colon followed by optional perl comment
+			$check_rls_items = $1;
+			}
+		elsif($file_line=~/^\s*strict_checking\s*=\s*(\d+)\s*;?\s*(\#.*)?$/)
+			{ # matches strict_checking = <digits> followed by optional semi-colon followed by optional perl comment
+			$strict_checking = $1;
+			}
+		elsif($file_line=~/^\s*\#.*$/)
+			{ # matches perl comment on a line by itself
+			}
+		elsif($file_line=~/^\s*$/)
+			{ # matches empty lines and lines with only whitespace
+			}
+		elsif($file_line=~/^\s*Include\:\s*(.*)\s*$/i)
+			{ # matches Include: followed by a file location
+			push @includes_from_config, $1;
+			}
+		elsif($file_line=~/^\s*warnings_to_enable\s*=\s*(\S+)\s*;?\s*(\#.*)?$/)
+			{ # matches warnings_to_enable = <warnings> where <warnings> is a comma separated list of the warning numbers
+			$warnings_to_enable = $1;
+			# Append 0's to the warning numbers to make them 3 digit
+			@enabled_warnings = map (sprintf("%03d",$_), split(/,/, $warnings_to_enable));
+			}
+		else
+			{
+			print "Error: cannot parse line -- $file_line\n";
+			exit(1);
+			}
+		}
+	}
+else
+	{
+	print "No configuration file found at " . $ENV{EPOCROOT} . "epoc32\\tools\\epocrc.config, using default values.\n" if ($opt_v);
+	}
+
+unless ($check_rls_items==0 || $check_rls_items==1)
+	{
+	print "* Error: \$check_rls_items must take the value 0 or 1\n";
+	exit(1);
+	}
+unless ($strict_checking==0 || $strict_checking==1)
+	{
+	print "* Error: \$strict_checking must take the value 0 or 1\n";
+	exit(1);
+	}
+
+if($check_rls_items==0 && $strict_checking==1)
+	{
+	print "* Error: \$check_rls_items must be set to 1 to allow strict checking of rls comments\n";
+	exit(1);
+	}
+
+print "Values: \$check_rls_items=$check_rls_items ,\$strict_checking=$strict_checking and \$warnings_to_enable=$warnings_to_enable\n" if ($opt_v);
+ 
+# Remove the warnings to be enabled from the warnings to be supressed list
+if(@enabled_warnings) 
+	{
+ 	foreach my $warnings(@enabled_warnings)
+ 		{
+ 		$opt_m =~ s/$warnings,*//g;
+ 		}
+ 	}
+ 
+# Remove the last , character from $opt_m, which could have been left by previous processing
+$opt_m =~ s/,{1}$//;
+	
+# If all warnings are removed, then $opt_m needs to be blanked
+if ($opt_m =~/^-m$/) 
+	{
+	$opt_m = "";
+	}
+use File::Basename;
+my $outputfile=$opt_o;
+my $rss_base = basename($sourcefile);
+my ($rssfile) = split(/\./, $rss_base);	    # remove extension
+my $output_base;
+my $not_used;
+my $lang;
+my $rpp_name;
+
+if (defined $ENV{ABLD_TOOLSMOD_COMPATIBILITY_MODE} &&  ($ENV{ABLD_TOOLSMOD_COMPATIBILITY_MODE} eq 'alpha')) {
+
+
+$output_base = basename($outputfile);
+($not_used,$lang) = split(/\.r/, $output_base);	    # get current lang from the filename
+
+$rpp_name = $tmpdir . $rssfile . $lang . ".rpp";
+
+}
+else {
+
+$rpp_name = $tmpdir. $rssfile . ".rpp";
+	
+}
+my $headerfile=$opt_h;
+
+if ($opt_v)
+	{
+	print "* Source file:   $sourcefile\n";
+	print "* Resource file: $outputfile\n" if ($outputfile ne "");
+	print "* Header file:   $headerfile\n" if ($headerfile ne "");
+	}
+
+$opt_o = "-o\"$outputfile\"" if ($outputfile ne "");
+$opt_h = "-h\"$headerfile\"" if ($headerfile ne "");
+
+
+#-------------------------------------------------------
+# Run the preprocessor
+#
+
+if($opt_cpp) 
+	{
+	$cpp_spec .= "-D_UNICODE " if ($unicode);
+	
+	$cpp_spec .= quoted_path($sourcefile) ." -o ". quoted_path($rpp_name);
+
+  # get the HRH file containing all the Variant specific Macros, if not specified on the command line
+	$variantMacroHRHFile = Variant_GetMacroHRHFile() if (!$variantMacroHRHFile);
+	if($variantMacroHRHFile)
+		{
+		my $variantFilePath = Path_Split('Path',$variantMacroHRHFile);
+		chop( $variantFilePath );
+		$cpp_spec .= " -I ".quoted_path($variantFilePath)." -include ".quoted_path($variantMacroHRHFile); 
+		}
+	
+	if($check_rls_items)
+		{
+		my $includePath;
+		foreach my $include (@includes_from_config)
+			{
+			my $relInclude = $ENV{EPOCROOT} . $include;
+			$relInclude=~s/^(.*)\\$/$1/;
+			if(-d $relInclude)
+				{				
+				$cpp_spec .= " -I ".quoted_path($relInclude);
+				}
+			elsif(-e $relInclude)
+				{
+				$includePath = Path_Split('Path',$include);
+				$includePath=~s/^(.*)\\$/$1/;
+				$cpp_spec .= " -I ".quoted_path($ENV{EPOCROOT}.$includePath)." -include ".quoted_path($relInclude);			
+				}
+			else
+				{
+				print "Warning; cannot recognise $include as a valid file or directory.\n";
+				}
+			}
+		}
+		
+	print "* $cpp_spec\n" if ($opt_v);
+	system($cpp_spec);
+
+	my $cpp_status = $?;
+	die "* cpp failed\n" if ($cpp_status != 0);
+	}
+
+
+#-------------------------------------------------------
+# Copy rpp files to epoc32\localisation if not checking
+# rls items for localisation tags
+
+if ($opt_l ne "" && $check_rls_items == 0)
+	{
+if (defined $ENV{ABLD_TOOLSMOD_COMPATIBILITY_MODE} &&  ($ENV{ABLD_TOOLSMOD_COMPATIBILITY_MODE} eq 'alpha')) {
+	&Lockit_SrcFile($rssfile, $rpp_name, $opt_l, "RSC", "", $outputfile, $lang);
+}
+else {
+	&Lockit_SrcFile($rssfile, $rpp_name, $opt_l, "RSC", "", $outputfile);
+}
+	}
+
+#-------------------------------------------------------
+# Merge rls strings to rpp if not checking rls items
+# for localisation tags
+
+if($check_rls_items == 0)
+	{
+	&Merge_rls_string($rpp_name);	
+	}
+
+#-------------------------------------------------------
+# Test stage if -test_mode has been used
+#
+
+my $rcomp_spec = "";
+my $test_number = "";
+my $test_dir = "";
+my $output_redir = "";
+if($test_mode)
+	{
+	my $file_line;	
+	open EPOCRC_TEST, "epocrc.test";
+	while ($file_line = <EPOCRC_TEST>)
+		{
+		if($file_line =~ /^\s*RCOMP:\s*(\S+)\s*$/)
+			{
+			$rcomp_spec = $1;
+			}
+		elsif($file_line =~ /^\s*TEST-NUMBER:\s*(\d+)\s*$/)
+			{
+			$test_number = "$1";
+			}
+		elsif($file_line =~ /^\s*TEST-DIR:\s*(\S+)\s*$/)
+			{
+			$test_dir = $1;
+			}
+		}
+	if($rcomp_spec eq "" || $test_number eq "" || $test_dir eq "")
+		{
+		print "$rcomp_spec\n";
+		print "$test_number\n";
+		print "$test_dir\n";
+		print "Error: could not extract required information from epocrc.test file\n";
+		exit(1);
+		}
+	$output_redir = " 1>" . $test_dir . $rcomp_spec . "\.stdout 2>" . $test_dir . $rcomp_spec . "\.stderr";
+	$rcomp_spec .= " ";
+	}
+		
+#-------------------------------------------------------
+# Run the resource compiler
+#
+if($rcomp_spec eq "")
+	{
+	$rcomp_spec = "rcomp ";
+	}
+$rcomp_spec .= "-u " if ($unicode);
+$rcomp_spec .= "-v " if ($opt_vmore);
+$rcomp_spec .= "$opt_m " if ($opt_m ne "");
+$rcomp_spec .= "-l " if ($check_rls_items);
+$rcomp_spec .= "-force " if($strict_checking); 
+if ($opt_uid2 ne '' || $opt_uid3 ne '')
+	{
+	$opt_uid2 = "0" if ($opt_uid2 eq '');	# defaults to zero
+	$opt_uid3 = "*" if ($opt_uid3 eq '');	# defaults to * = derived from NAME
+	$rcomp_spec .= "-{$opt_uid2,$opt_uid3} ";
+	}
+$rcomp_spec .= "$opt_o $opt_h -s\"$rpp_name\" -i\"$sourcefile\"";
+$rcomp_spec .= "$output_redir";
+print "* $rcomp_spec\n" if ($opt_v);
+system($rcomp_spec);
+if ($? != 0)
+	{
+	print "* RCOMP failed - deleting output files\n";
+	unlink $outputfile if ($outputfile ne "");
+	unlink $headerfile if ($headerfile ne "");
+	exit 1;
+	}
+
+	if (-e $outputfile)
+	{
+		use File::stat; 
+		if (stat($outputfile)->size > 65535)
+		{
+			# Resource file bigger than 64kB are not supported.
+			print "* Compiled resource file bigger than 64kB\n";
+			print "* RCOMP failed - deleting output files\n";
+			unlink $outputfile if ($outputfile ne "");
+			unlink $headerfile if ($headerfile ne "");
+			exit 1;
+		}
+	}
+
+#-------------------------------------------------------
+# Copy rpp files to epoc32\localisation if checked
+# file for localisation tags
+
+if ($opt_l ne "" && $check_rls_items == 1)
+	{
+if (defined $ENV{ABLD_TOOLSMOD_COMPATIBILITY_MODE} &&  ($ENV{ABLD_TOOLSMOD_COMPATIBILITY_MODE} eq 'alpha')) {
+	&Lockit_SrcFile($rssfile, $rpp_name, $opt_l, "RSC", "", $outputfile, $lang);
+}
+else {
+	&Lockit_SrcFile($rssfile, $rpp_name, $opt_l, "RSC", "", $outputfile);
+}
+}
+
+# exit cleanly
+
+if(!$test_mode)
+	{
+	print "* deleting $rpp_name\n" if ($opt_v);
+	unlink $rpp_name;
+	}
+exit 0;
+
+
+#-------------------------------------------------------
+# Subroutine: convert path into something acceptable to CPP.EXE
+#
+
+sub quoted_path
+    {
+    my ($arg) = @_;
+    return "\"$arg\"" if ($arg !~ /^\\[^\\]/);	# not an absolute path
+    if ($curdrive eq "x")
+		{
+		$curdrive="";
+		$curdrive=$1 if (cwd =~ /^(.:)/);	
+		}
+    return "\"$curdrive$arg\"";
+    }
+
+#-------------------------------------------------------
+# Subroutine: Merge the rls strings in the rpp file specified
+#
+sub Merge_rls_string
+	{
+	my ($rppfile) = @_;
+
+	my $line;
+	my $StringId;
+	my $key;
+	my $value;
+	my $StringToSubstitute;
+	my %ResourceString;
+	
+	print "* merging text strings to $rppfile\n" if ($opt_v);
+	
+	open NEWRPP, ">$rppfile.new" or die "* Can't write to $rppfile.new";
+	open RPP, "$rppfile" or die "* Can't open $rppfile";
+	
+	while ($line = <RPP>) 	{
+		while (($StringId, $StringToSubstitute)=each %ResourceString)
+		{
+			$line=~s/\b$StringId\b/$StringToSubstitute/g if ($line !~ /^rls_string/);
+		}
+	
+		# find quoted "" strings
+		if($line =~ /^rls_string\s+(\S+)\s+(.*$)/)
+		{
+			my $text = $2;
+			$key = $1;
+			$line=~s/(.*)/\/\/$1/;
+			my $substr_count = 0;
+			if(!exists $ResourceString{$key})
+			{
+			SUBSTR:	while (1)
+			{
+				# find quoted "" strings e.g. "hello"
+				if($text =~ /^(\s*\"(.*?\\.)*.*?\")/)		
+				{
+					$value = $1;
+					$text = $';
+					++$substr_count;
+				}
+	
+				# find quoted '' strings. e.g. 'world'
+				elsif($text =~ /^(\s*\'(.*?\\.)*.*?\')/)			
+				{
+					$value = $1;
+					$text = $';
+					++$substr_count;
+				}
+	
+				# find hex strings e.g. <0x34><0x45><0x65>
+				elsif($text =~ /^(\s*(<.*?>)+)/)		
+				{
+					$value = $1;
+					$text = $';
+					++$substr_count;
+				}
+	
+				# find c comment e.g. /*hello world*/ (may exist between strings)
+				elsif($text =~ /^(\s*\/\*.*?\*\/)/)		
+				{
+					$text = $';
+					next SUBSTR; # ignore embedded comment
+				}
+	
+				# find c++ comment e.g. //hello world (may exist after strings)
+				elsif($text =~ /^(\s*\/\/.*$)/)		
+				{
+					$text = $';
+					next SUBSTR; # ignore trailing comment
+				}
+	
+				# exit search
+				else
+				{
+					if ($substr_count == 0)
+					{
+						warn("WARNING: rls_string $key either has incorrect syntax or no value\n");
+					}
+					last SUBSTR;
+				}
+			$ResourceString{$key} .= $value;
+			}
+		  	}
+		}
+		print NEWRPP $line;
+	}
+
+	close RPP;
+	close NEWRPP;
+	copy ("$rppfile.new", "$rppfile");
+	unlink ("$rppfile.new");
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/e32util/featurevariantmap.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,505 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+# modified start: makefile improvement 
+use Cwd;
+# modified end: makefile improvement 
+use Digest::MD5;
+use File::Basename;
+
+package featurevariantmap;
+our $verbose = 0;
+
+my $featureListDir = "$ENV{EPOCROOT}epoc32\\include\\variant\\featurelists";
+
+sub LoadFeatureList
+	{
+	my %featurehash;
+	
+	# Try and find the feature master list folder
+	if (!opendir DIR, $featureListDir)
+		{
+		print "\nERROR: Failed to open feature list directory $featureListDir: $!";
+		return \%featurehash;
+		}
+		
+	# Load the list of features from each file
+	foreach my $file ( grep(/\.txt$/i, readdir DIR) )
+		{
+		$file = "$featureListDir\\$file";
+		print "Reading feature list from $file\n" if ($verbose);
+
+		if (!open IN, $file)
+			{
+			print "\nERROR: Failed to read feature list $file: $!";
+			}
+		else
+			{
+			while(my $line = <IN>)
+				{
+				$line =~ s/\/\/.+$//; # Get rid of c++ style comments
+				if ($line =~ /(\S+)/)
+					{
+					$featurehash{$1} = $file;
+					}
+				}
+			close IN;
+			}
+			
+		}
+	closedir DIR;
+	return \%featurehash;
+	}
+	
+sub ValidFeature
+{
+	our $featurelist;
+	my $name = shift;
+	
+	$featurelist = LoadFeatureList() if !$featurelist;
+	return exists $featurelist->{$name};
+# modified start: makefile improvement 
+}
+sub GetVariantListFromVmap
+{
+	my $obj = shift;
+	my $vmapfile = shift;
+	if(open(VMAP, "<$vmapfile"))
+	{
+		my @varlist;
+		while(<VMAP>)
+		{
+			if(/^\w{32}\s+(\w+)/)
+			{
+				push @varlist, $1;
+			}
+
+		}
+		close(VMAP);
+		return @varlist;
+	}
+	close(VMAP);
+	return;
+	
+}
+sub CheckOldVmapFile
+{
+	my $thisObj = shift;
+	my $vmapfile = shift;
+	my $varRef = shift;
+	my $buildincludes = $$varRef{BUILD_INCLUDES};
+	my $parents = $$varRef{PARENTS};
+	my $children = $$varRef{CHILDREN};
+	my $varianthrh = $$varRef{VARIANT_HRH};
+	my %variantMacrolist;
+	my $Options = "-dM -undef -nostdinc -+";
+	my $Drive = $1 if (Cwd->cwd =~ /^(.:)/);
+	if($buildincludes)
+	{
+		foreach (@$buildincludes)
+		{
+			$Options .= " -I \"".$Drive.$_."\"";
+		}
+	}
+	if($varianthrh)
+	{
+		$Options .= " \"".$Drive.$varianthrh."\"";
+	}
+	if(open(CPP, "cpp $Options 2>&1 |"))
+	{
+		while(<CPP>)
+		{
+			my ( $key, $value );
+			if (/^#define (\w+(?:\([^\)]*\))?)(?:\s(\S.*?))?\s*$/)
+			{
+				my $tmpKey = $1;
+				my $tmpValue = $2;
+				$tmpValue =~ s/,/\\,/g;
+				($key, $value ) = ( $tmpKey, $tmpValue ? "\'$tmpValue\'" : 'defined' );
+			}
+			if ($key && ValidFeature($key))
+			{
+				$variantMacrolist{$key} = $value;
+			}
+		}
+		if(!close(CPP))
+		{
+			print "Incomplete pre-precess of $varianthrh \n";
+		}
+	}
+	my $findReusedKey = 1;
+	my %vmapfeatureinfo;
+	my $keyhash;
+	my $macroList;
+	if(open(VMAP, "<$vmapfile"))
+	{
+		while(<VMAP>)
+		{
+			if(/^\w{32}\s+(\w+)/)
+			{
+				$findReusedKey = 1;
+				s/(^\w{32})\s+\w+\s+//;
+				$keyhash = $1;
+				my @feature = split(/(?<=[^\\]),/, $_);
+				foreach my $value (@feature)
+				{
+					if($value =~ /([^\s]*)\s*=\s*(.*)/)
+					{
+						$vmapfeatureinfo{$1} = $2;
+					}
+				}
+				foreach my $key (sort keys %vmapfeatureinfo)
+				{
+					
+					if(($vmapfeatureinfo{$key} eq "undefined") && (not(exists($variantMacrolist{$key}))))
+					{
+						$findReusedKey = 1;
+					}
+					elsif($vmapfeatureinfo{$key} eq $variantMacrolist{$key})
+					{
+						$findReusedKey = 1;
+					}else
+					{
+						$findReusedKey = 0;
+						last;
+					}
+				}
+				if( $findReusedKey == 1)
+				{
+					$macroList = $_;
+					last;
+				}
+				undef(%vmapfeatureinfor);
+				undef($keyhash);
+			}
+		}
+	}
+	if($findReusedKey == 1)
+	{
+    	return ($keyhash, $macroList);
+	}
+	else
+	{
+		return;
+	}
+}
+# modified end: makefile improvement 
+	
+# Usage:	featurevariantmap->Hash(\@sources, \%var)
+#
+# Generate a hash value from the source files for a target using the
+# given feature variant data.
+#
+# \@sources	- list of source files (full path)
+# \%var		- variant data (from featurevariantparser->GetVariant)
+#
+# returns the hash value, or "" if an error occurs.
+	
+sub Hash
+{
+	my $thisObj = shift;
+	my @result = $thisObj->HashAndFeatures(@_);
+	return $result[0];
+}
+
+# Usage:	featurevariantmap->HashAndFeatures(\@sources, \%var)
+#
+# Generate a hash value from the source files for a target using the
+# given feature variant data.
+#
+# \@sources	- list of source files (full path)
+# \%var		- variant data (from featurevariantparser->GetVariant)
+#
+# returns a list of two entries [0] the hash value, or "" if an error occurs [1] A string of macros tested or affecting the code
+
+sub HashAndFeatures
+{
+	my $thisObj = shift;
+	my $srcRef = shift;
+	my $varRef = shift;
+
+	return "" if (!$srcRef || !$varRef);
+	return "" if (!$$varRef{'VALID'});
+
+	# get the pre-processing options
+	my $pre = $$varRef{'PREINCLUDE'};
+	my $inc = $$varRef{'BUILD_INCLUDES'};
+	my $mac = $$varRef{'MACROS'};
+
+	# Pass -dU option to get list of macros affecting the code
+	my $options = "-dU -undef -nostdinc -+";
+
+	if ($pre)	# pre-include file
+	{
+		$options .= " -include \"$pre\"";
+	}
+
+	if ($inc)	# include directories
+	{
+		foreach (@$inc)
+		{
+			$options .= " -I \"$_\"";
+		}
+	}
+
+	if ($mac)	# macro definitions
+	{
+		foreach (@$mac)
+		{
+			$options .= " -D$_";
+		}
+	}
+
+	my %testedMacrosHash;
+	
+	# Macros that affect the mmp file also affect the variant - so add them to the list
+	foreach my $key ( keys %{ $$varRef{MMPTESTED} } )
+		{
+		$testedMacrosHash{$key} = $$varRef{MMPTESTED}->{$key} if (ValidFeature($key));
+		}
+		
+	foreach my $src (@$srcRef)
+	{
+		my $options = "-I " . File::Basename::dirname($src) . " $options";
+
+		print "cpp $options $src\n" if ($verbose);
+
+		if (open(CPP, "cpp $options $src 2>&1 |"))
+		{
+			while (<CPP>)
+			{
+				print $_ if ($verbose && /No such file/);
+
+				# Scan for #define or #undef generated for -dU
+				my ( $key, $value );
+				if (/^#define (\w+(?:\([^\)]*\))?)(?:\s(\S.*?))?\s*$/)
+				{
+# modified start: makefile improvement 
+					my $tmpKey = $1;
+					my $tmpValue = $2;
+					$tmpValue =~ s/,/\\,/g;
+					( $key, $value ) = ( $tmpKey, $tmpValue ? "\'$tmpValue\'" : 'defined' );
+# modified end: makefile improvement 
+				}
+				elsif (/^#undef (.+)$/)
+				{
+					( $key, $value ) = ( $1, 'undefined' );
+				}
+				
+				if ($key && ValidFeature($key))
+				{
+					# Warn the user if a macro appears to have changed value - shouldn't really happen
+					# Feature macros should only be set in platform HRH files and not in the code
+					if (exists $testedMacrosHash{$key} && $testedMacrosHash{$key} ne $value)
+					{
+						print "WARNING: Feature macro $key redefined from $testedMacrosHash{$key} to $value\n";
+					}
+					
+					# Store the macro details
+					$testedMacrosHash{$key} = $value;
+				}
+			}
+			if (!close(CPP))
+			{
+				# this probably means that a rsg file was included
+				# that hasn't been generated yet.
+				print "Incomplete pre-process of $src\n" if ($verbose);
+			}
+		}
+		else
+		{
+			print "ERROR: Could not pre-process $src\n";
+			return "";
+		}
+	}
+
+	# Now generate the tested macros string
+	my $testedMacros = '';
+	foreach my $key ( sort keys %testedMacrosHash )
+	{
+		$testedMacros .= ',' if $testedMacros;
+		$testedMacros .= "$key=$testedMacrosHash{$key}";
+	}
+	
+	print "Tested feature list: $testedMacros\n" if $verbose;
+	return ( Digest::MD5::md5_hex($testedMacros), $testedMacros );
+}
+
+# Usage:	featurevariantmap->Save("my.dll", "1234", "myvar", \@hints)
+#
+# Write a hash value for a target into the target.vmap file along
+# with some optional hints data.
+#
+# "my.dll"	- the target (full path)
+# "1234"	- the hash value (32 character hex number)
+# "myvar"	- the feature variant name
+# \@hints	- optional list of extra strings (eg. "FEATUREVARIANT")
+#
+# returns 0 if OK and non-zero if an error occurs.
+
+sub Save
+{
+	my $thisObj = shift;
+	my $binName = shift;
+	my $keyValue = shift;
+	my $varName = shift;
+	my $features = shift;
+	my $hintRef = shift;
+
+	# read the current data first if the .vmap file already exists
+# modified by SV start: makefile improvement 
+	my $vmapFile = "$binName.$varName.vmap";
+	my @lines;
+	my $tmpinfo = "$keyValue $varName";
+	$tmpinfo .= " $features" if $features;
+	if (open(VMAP, $vmapFile))
+	{
+		my @tmp=<VMAP>;
+		if (grep (/$tmpinfo/, @tmp)){
+			close(VMAP);
+			return 0;
+		}
+		else {
+			foreach  (@tmp)
+			{
+				if (/^\w{32}\s+(\w+)/)
+				{
+					push(@lines, $_) unless (uc($1) eq uc($varName));
+				}
+			}
+			close(VMAP);
+		}
+	}
+# modified by SV end: makefile improvement 
+
+	# write the new data to the .vmap file
+	if (!open(VMAP, ">$vmapFile"))
+	{
+		print "ERROR: Could not write VMAP to $vmapFile\n";
+		return 1;
+	}
+
+	# put the hints at the beginning
+	if ($hintRef)
+	{
+		foreach (@$hintRef)
+		{
+			print VMAP "$_\n";
+		}
+	}
+
+	# then the "key var" pairs
+	foreach (@lines)
+	{
+		print VMAP $_;
+	}
+	print VMAP "$keyValue $varName";
+	print VMAP " $features" if $features;
+	print VMAP "\n";
+	
+	close(VMAP);
+	return 0;
+}
+
+# Usage:    featurevariantmap->Find("my.dll", "myvar")
+#
+# Look for a binary using its "final" name. We will use the feature
+# variant map and the feature variant name to deduce the "variant"
+# binary name and test for its existence.
+#
+# "my.dll"	- the final target (full path)
+# "myvar"	- the feature variant name
+#
+# returns the file name if found, or "" otherwise.
+
+sub Find
+{
+	my $thisObj = shift;
+	my $binName = shift;
+	my $varName = shift;
+
+	# look for the vmap file
+# modified by SV start: makefile improvement 
+	my $vmapFile = "$binName.$varName.vmap";
+# modified by SV end: makefile improvement 
+
+	if (-e $vmapFile)
+	{
+		my $key = $thisObj->GetKeyFromVMAP($varName, $vmapFile);
+
+		if ($key)
+		{
+			$binName =~ /^(.*)\.([^\.]*)$/;
+			$binName = "$1.$key.$2";
+		}
+		else
+		{
+			print "ERROR: No \'$varName\' variant for $binName in $vmapFile\n";
+			return "";	# file not found
+		}
+	}
+
+	# check that the actual binary exists
+	if (-e $binName)
+	{
+		return $binName;
+	}
+	return "";	# file not found
+}
+
+# internal functions
+
+sub GetKeyFromVMAP
+	{
+	my $thisObj = shift;
+	my @res = $thisObj->GetDataFromVMAP(@_);
+	return $res[0];
+	}
+	
+# Usage:    featurevariantmap->GetDataFromVMAP("myvar", "mydll.vmap")
+#
+# Opens the vmap file indicated and returns the data for the requested variant
+#
+# "myvar"	- the feature variant name
+# "my.vmap"	- the final target vmap file (full path)
+#
+# Returns a list ( hash, features ) for the variant in the vmap or undef if not found
+
+sub GetDataFromVMAP
+{
+	my $thisObj = shift;
+	my $varName = shift;
+	my $fileName = shift;
+
+	if (!open(VMAP, $fileName))
+	{
+		print "ERROR: Could not read VMAP from $fileName\n";
+		return "";
+	}
+	while (<VMAP>)
+	{
+		chomp;
+		if (/(\w{32})\s+$varName\s+(.*)$/i or /(\w{32})\s+$varName$/i)
+		{
+			my ( $hash, $features ) = ( $1, $2 ? $2 : '' );
+			close(VMAP);
+			return ( $hash, $features );
+		}
+	}
+	close(VMAP);
+	return;
+}
+
+1;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/e32util/featurevariantparser.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,940 @@
+#
+# Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+# Module FEATUREVARIANTPARSER. Parses .VAR files and returns key variables.
+
+# The following hashes can be used with this module:
+
+# NAME 				-> Returns the name of the variant file (without the extension)
+
+# FULLPATH 			-> Returns the full path of the variant file (including the extension)
+
+# VALID 			-> Set to 1 if the variant file is valid, otherwise set to 0
+
+# VIRTUAL 			-> Set to 1 if the variant is a grouping node, otherwise set to 0
+
+# ROM_INCLUDES 		-> Returns a pointer to the list of ROM_INCLUDES (including Parent nodes).
+
+# BUILD_INCLUDES 	-> Returns a pointer to the list of BUILD_INCLUDES (including Parent nodes).
+
+# VARIANT_HRH 		-> Returns the full VARIANT_HRH file path used by the VAR file.
+
+# PARENTS			-> Returns a pointer to the list of all the parent nodes, starting with immediate parent
+
+# CHILDREN			-> Returns a pointer to the list of all the children nodes.
+
+# USAGE : The GetVariant method should only be called using featurevariantparser->GetVariant(var_name, directory(optional) );
+# If the directory for the VAR file is not supplied,the default directory will be searched for var_name.var
+
+use strict;
+
+package featurevariantparser;
+use File::Spec;
+
+my @buildinclude;
+my @rominclude;
+my @parents;
+my @childNodes;
+my $virtual;
+my $childNodeStatus;
+my $varianthrh;
+
+my $defaultDir = "$ENV{EPOCROOT}epoc32\\tools\\variant";
+
+my $dir;
+my $fullpath;
+my $fulldir;
+
+my $pathregex = '.+[^\s]'  ;   # Regex to match all characters (including \ or /), excluding whitespaces.
+
+our $verbose = 0;
+
+# Wrapper function to return all the correct variables
+# Arguments : (Variant Name, Variant Directory(optional))
+# Returns a Hash.
+#
+# Note: This has to return a copy of all the data - no references!
+#  There are package globals that are reused on a call to this function
+#  so references would go out of date after repeated calls to GetVariant
+#  This package should have been written using objects - too late now
+
+sub GetVariant
+{
+
+    @buildinclude    = ();
+    @rominclude      = ();
+    @parents         = ();
+    @childNodes      = ();
+    $dir             = "";
+    $fullpath        = "";
+    $varianthrh      = "";
+    $virtual         = 0;
+    $childNodeStatus = 0;
+    
+    my $parnodes = "";
+    my %data;
+    my $children  = "";
+    my $romincs   = "";
+    my $buildincs = "";
+
+    $data{'VALID'} = 0;
+
+    my ( $empty, $varname, $dirname ) = @_;
+
+    my $fullvarpath = ReturnFullVariantPath( $varname, $dirname );
+
+    if ( $dirname )
+    {
+        $fulldir = $dirname;
+    }
+    else
+    {
+        $fulldir = $defaultDir;
+    }
+
+    $data{'FULLPATH'} = "$fullvarpath";
+    $data{'NAME'}     = "$varname";
+
+    # If the variant file exists, check the syntax and setup variables.
+    if ( FileExists($fullvarpath) )
+    {
+
+        if ( CheckVarFileSyntax( $fullvarpath, $varname ) )
+        {
+            $data{'VALID'} = 1;
+        }
+    }
+    else
+    {
+        print "ERROR: $fullpath" . " does not exist\n";
+    }
+
+    my $count = 0;
+
+    # If VAR file is valid, setup all other variables.
+    if ( $data{'VALID'} )
+    {
+
+        $romincs   = FindRomInclude($fullvarpath);
+        $buildincs = FindBuildInclude($fullvarpath);
+        $children  = FindChildNodes($fullvarpath);
+        $parnodes  = FindParentNodes($fullvarpath);
+
+        # Remove empty elements from the BUILD_INCLUDE list     
+        @$buildincs = grep /\S/, @$buildincs;
+
+        # Fix paths for all BUILD_INCLUDES
+        for ( my $i = 0 ; $i < scalar(@$buildincs) ; $i++ )
+        {
+            @$buildincs[$i] = FixPaths( @$buildincs[$i] );
+        }
+
+        # Remove empty elements from the ROM_INCLUDE list
+		@$romincs = grep /\S/, @$romincs;
+
+        # Fix paths for all ROM_INCLUDES
+        for ( my $i = 0 ; $i < scalar(@$romincs) ; $i++ )
+        {
+            @$romincs[$i] = FixPaths( @$romincs[$i] );
+        }
+
+        # Remove empty elements from the CHILDREN list
+		@$children = grep /\S/, @$children;
+		
+        # Remove empty elements from the PARENT list
+		@$parnodes = grep /\S/, @$parnodes;
+
+        $data{'BUILD_INCLUDES'} = CloneList($buildincs);        
+        $data{'ROM_INCLUDES'}   = CloneList($romincs);
+        $data{'PARENTS'}        = CloneList($parnodes);
+        $data{'CHILDREN'}       = CloneList($children);
+        $data{'VARIANT_HRH'}    = $varianthrh;
+        $data{'VIRTUAL'}        = $virtual;
+    }
+
+    # If variant file is not valid, return reference to a blank array
+    else
+    {
+        $data{'BUILD_INCLUDES'} = [];
+        $data{'ROM_INCLUDES'}   = [];
+        $data{'VARIANT_HRH'}    = "";
+        $data{'PARENTS'}        = [];
+        $data{'CHILDREN'}       = [];
+    }
+
+    return %data;
+}
+
+# Helper method that clones a reference to a simple list
+sub CloneList
+    {
+    my $ref = shift;
+    
+    # Check the reference is a list
+    die "Not a list ref" if ref($ref) ne 'ARRAY';
+    
+    # Create a new list object
+    my @list;
+    foreach my $entry ( @$ref )
+        {
+        # Only clone lists of scalars
+        die "Not a scalar" if ref($entry);
+        
+        # Add the entry to the new list
+        push @list, $entry;
+        }
+    
+    # return a reference to the copy    
+    return \@list;
+    }
+    
+# Method to correct all the slashes, and also append EPOCROOT if the path begins with a \ or /
+# If path doesn't start with \ or /, returns an abosulte canonical path
+sub FixPaths
+{
+
+    my $arr = $_[0];
+
+    if ( $arr =~ m/^\// )
+    {
+       $arr =~ s/^\/?//;
+        return File::Spec->canonpath( "$ENV{EPOCROOT}" . "$arr" );
+    }
+
+    elsif ( $arr =~ m/^\\/ )
+    {
+        $arr =~ s/^\\?//;
+        return File::Spec->canonpath( "$ENV{EPOCROOT}" . "$arr" );
+    }
+
+    else
+    {
+        return File::Spec->rel2abs( File::Spec->canonpath("$arr") );
+    }
+
+}
+
+# Method to construct a full variant path from the variant file and directory
+sub ReturnFullVariantPath
+{
+
+    my $vardirectory = $_[1];
+    my $varname      = $_[0];
+
+    # Check if a directory is supplied
+    if ($vardirectory)
+    {
+        $dir = "$vardirectory";
+    }
+
+    else
+    {
+        $dir = $defaultDir;
+    }
+    my $filename = "$varname" . "\.var";
+    $fullpath = File::Spec->catfile( File::Spec->rel2abs($dir), $filename );
+
+    if ( !File::Spec->file_name_is_absolute($fullpath) )
+    {
+        $fullpath = File::Spec->rel2abs($fullpath);
+    }
+
+    return $fullpath;
+}
+
+# Method to find the BUILDINCLUDE values of the VAR file.
+sub FindBuildInclude
+{
+
+    my $filename = $_[0];
+
+    my $parentNodes;
+
+    # Construct a list of parent nodes if node is a child
+    if ($childNodeStatus)
+    {
+        $parentNodes = FindParentNodes("$filename");
+    }
+
+    if ($parentNodes)
+    {
+
+        # Go through and build the list of all parent BUILD_INCLUDES
+        for ( my $i = scalar(@$parentNodes) - 1 ; $i >= 0 ; $i-- )
+        {
+
+            my $tmp = ReturnFullVariantPath( @$parentNodes[$i], $fulldir );
+            open( NEWHANDLE, "<$tmp" );
+            while (<NEWHANDLE>)
+            {
+                if (/BUILD_INCLUDE/)
+                {
+                    ExtractBuildIncludeValue($_);
+                }
+            }
+            close(NEWHANDLE);
+        }
+    }
+
+    # Append the BUILD_INCLUDES of the VAR file in the end
+    open( NEWHANDLE, "<$filename" );
+
+    while (<NEWHANDLE>)
+    {
+        if (/BUILD_INCLUDE/)
+        {
+            ExtractBuildIncludeValue($_);
+        }
+    }
+    close(NEWHANDLE);
+
+    undef(@parents);    # Flush out parent array
+
+    return \@buildinclude;
+
+}
+
+# Method to extract the BUILD_INCLUDE value of a node.
+sub ExtractBuildIncludeValue
+{
+
+# If modifier append is found, push the buildinclude to the end of the array list.
+    if (/^BUILD_INCLUDE\s+append\s+($pathregex)/)
+    {
+        push( @buildinclude, ($1) );
+
+    }
+
+# If modifier prepend is found, push the buildinclude to the beginning of the array list.
+    if (/^BUILD_INCLUDE\s+prepend\s+($pathregex)/)
+    {
+        unshift( @buildinclude, ($1) );
+    }
+
+#If keyword set is found, then empty the buildinclude variable and push the new value
+    if (/^BUILD_INCLUDE\s+set\s+($pathregex)/)
+    {
+        undef(@buildinclude);
+        push( @buildinclude, ($1) );
+    }
+
+}
+
+# Method to find the ROMINCLUDE values of the VAR file.
+sub FindRomInclude
+{
+
+    my $filename = $_[0];
+
+    my $parentNodes;
+
+    # Construct a list of parent nodes if node is a child
+    if ($childNodeStatus)
+    {
+        $parentNodes = FindParentNodes("$filename");
+    }
+
+    if ($parentNodes)
+    {
+
+        # Go through and build the list of all parent ROM_INCLUDES
+        for ( my $i = scalar(@$parentNodes) - 1 ; $i >= 0 ; $i-- )
+        {
+            my $t = ReturnFullVariantPath( @$parentNodes[$i], $fulldir );
+            open( NEWHANDLE, "<$t" );
+
+            while (<NEWHANDLE>)
+            {
+                if (/ROM_INCLUDE/)
+                {
+                    ExtractRomIncludeValue($_);
+                }
+            }
+            close(NEWHANDLE);
+        }
+    }
+
+    # Append the ROM_INCLUDES of the VAR file in the end
+    open( NEWHANDLE, "<$filename" );
+
+    while (<NEWHANDLE>)
+    {
+        if (/ROM_INCLUDE/)
+        {
+            ExtractRomIncludeValue($_);
+        }
+    }
+
+    undef(@parents);    # Flush out parent array;
+    return \@rominclude;
+
+}
+
+# Method to extract the ROM_INCLUDE value of a node.
+sub ExtractRomIncludeValue
+{
+
+# If modifier append is found, push the rominclude to the end of the array list.
+    if (/^ROM_INCLUDE\s+append\s+($pathregex)/)
+    {
+        push( @rominclude, ($1) );
+    }
+
+# If modifier prepend is found, push the rominclude to the beginning of the array list.
+    if (/^ROM_INCLUDE\s+prepend\s+($pathregex)/)
+    {
+        unshift( @rominclude, ($1) );
+    }
+
+# If keyword set is found, then empty the rominclude variable and push the new value
+    if (/^ROM_INCLUDE\s+set\s+($pathregex)/)
+    {
+        undef(@rominclude);
+        push( @rominclude, ($1) );
+    }
+
+}
+
+# Method to find the immediate parent node of a child node
+sub ExtractExtendsValue
+{
+
+    $_[0] =~ m/^EXTENDS\s+(\w+)/;
+    return $1;
+}
+
+# Extract the value of the VARIANT keyword
+sub ExtractVariantValue
+{
+
+    $_[0] =~ m/^VARIANT\s+(\w+)/;
+    return $1;
+}
+
+# Extracts the value of the HRH file from the VARIANT_HRH line supplied
+sub ExtractHrhValue
+{
+
+    $_[0] =~ m/^VARIANT_HRH\s+($pathregex)/;
+    return $1;
+
+}
+
+# Finds if the variant file is a group node
+# Note: This method is only a supplementary method, not actually used during this module
+#       Provides a quick way to check is any VAR file is grouping node or not without loading the entire file.
+sub IsVirtual
+{
+
+    my $filename = $_[0];
+
+    open( READHANDLE, "<$filename" );
+    while (<READHANDLE>)
+    {
+        if (/^VIRTUAL\s*$/)
+        {
+            close(READHANDLE);
+            return 1;
+        }
+    }
+    close(READHANDLE);
+    return 0;
+}
+
+# Constructs a list of Parent nodes for a given Child node.
+sub FindParentNodes
+{
+
+    my $filename   = $_[0];
+    my $hasparents = 0;
+
+    open( READHANDLE, "<$filename" );
+    while (<READHANDLE>)
+    {
+        if (/EXTENDS/)
+        {
+            $hasparents = 1;
+            push( @parents, ExtractExtendsValue($_) );
+
+        }
+    }
+
+    close(READHANDLE);
+
+    if ( $hasparents == 1 )
+    {
+        FindParentNodes(
+            ReturnFullVariantPath( @parents[ scalar(@parents) - 1 ], $fulldir )
+        );
+    }
+    else
+    {
+        return \@parents;
+    }
+
+}
+
+# Constructs a list of Child nodes for a given Parent node (full path or .var path required)
+sub FindChildNodes
+{
+
+    my $var = ReturnNativeVarName("$_[0]");
+
+    my $tmpname    = "";
+    my @childarray = ();
+
+    opendir( DIR, $fulldir );
+
+    while ( defined( my $file = readdir(DIR) ) )
+    {
+
+        if ( $file =~ m/\.var$/ )
+        {
+            $tmpname = $file;
+            $tmpname =~ s/\.var$//;
+
+            open( FILEHANDLE, ReturnFullVariantPath( $tmpname, $fulldir ) );
+
+            while (<FILEHANDLE>)
+            {
+
+                if (/^EXTENDS/)
+                {
+                    if ( lc $var eq lc ExtractExtendsValue($_) )
+                    {
+                        push( @childarray, $tmpname );
+                    }
+                }
+
+            }
+            close(FILEHANDLE);
+        }
+    }
+
+    close(DIR);
+
+    foreach my $child (@childarray)
+    {
+        push( @childNodes, $child );
+    }
+
+    foreach my $child (@childarray)
+    {
+        FindChildNodes( ReturnFullVariantPath( $child, $fulldir ) );
+    }
+
+    return \@childNodes;
+}
+
+# Method to return all the buildable (i.e. No syntax erros and non-virtual) list of
+# variants that can be built in the specified directory. If no directory is specified,
+# the default location is searched.
+
+# Usage: GetBuildableFeatureVariants(<Directory>)
+
+sub GetBuildableFeatureVariants
+{
+
+    my $empty = shift;
+    my $dir   = shift;
+    my @list;
+    my $fulldir;
+
+    if ( $dir )
+    {
+        $fulldir = $dir;
+    }
+    else
+    {
+        $fulldir = $defaultDir;
+    }
+
+    opendir( DIR, $fulldir );
+
+    while ( defined( my $file = readdir(DIR) ) )
+    {
+
+        if ( $file =~ m/\.var$/ )
+        {
+
+            $file =~ s/\.var$//;
+
+            my $fullpath = ReturnFullVariantPath( $file, $fulldir );
+
+            if ( CheckVarFileSyntax( $fullpath, $file )
+                && !IsVirtual($fullpath) )
+            {
+                push( @list, $file );
+
+            }
+        }
+    }
+
+    return sort @list;
+
+}
+
+# Method to return a list of the valid and non-virtual children of a given VAR node, in a given location.
+# If the calling var file is non-virtual, it is returned as the only element of the list If not, then
+# the method parses though and finds all buildable children
+
+# USAGE: ResolveFeatureVariant(<varname>,<dirame>);
+
+sub ResolveFeatureVariant
+{
+
+    my $empty   = shift;
+    my $varfile = shift;
+    my $dir     = shift;
+    my $fulldir;
+    my @list;
+
+    if ( !$dir eq "" )
+    {
+        $fulldir = $dir;
+    }
+    else
+    {
+        $fulldir = $defaultDir;
+    }
+    my $fullpath = ReturnFullVariantPath( $varfile, $fulldir );
+
+    if ( CheckVarFileSyntax( $fullpath, $varfile ) && !IsVirtual($fullpath) )
+    {
+        push( @list, $varfile );
+        return @list;
+    }
+
+    my %variant = GetVariant( 0, $varfile, $fulldir );
+    my $child = $variant{'CHILDREN'};
+
+    foreach my $item (@$child)
+    {
+
+        my $fullpath = ReturnFullVariantPath( $item, $fulldir );
+
+        if ( CheckVarFileSyntax( $fullpath, $item ) && !IsVirtual($fullpath) )
+        {
+            push( @list, $item );
+        }
+    }
+
+    return @list;
+
+}
+
+# Method to return all valid (no syntax errors only) list of variants
+# in the specified directory. If no directory is specified,the default location is searched.
+
+# Usage: GetValidVariants(<Directory>)
+
+sub GetValidVariants
+{
+
+    my $empty = shift;
+    my $dir   = shift;
+    my @list;
+    my $fulldir;
+
+    if ( !$dir eq "" )
+    {
+        $fulldir = $dir;
+    }
+    else
+    {
+        $fulldir = $defaultDir;
+    }
+
+    opendir( DIR, $fulldir );
+
+    while ( defined( my $file = readdir(DIR) ) )
+    {
+
+        if ( $file =~ m/\.var$/ )
+        {
+
+            $file =~ s/\.var$//;
+
+            my $fullpath = ReturnFullVariantPath( $file, $fulldir );
+
+            if ( CheckVarFileSyntax( $fullpath, $file ) )
+            {
+
+                push( @list, $file );
+
+            }
+        }
+    }
+
+    return sort @list;
+}
+
+# Returns the Variant name from a complete path, without the .var extension
+sub ReturnNativeVarName
+{
+
+    my $tmp = "$_[0]";
+    $tmp =~ /^.*[\\|\/](.*)\.var$/i;  
+    return $1;
+
+}
+
+# Checks if a file passed to this function exists.
+sub FileExists
+{
+	return -e $_[0];
+
+}
+
+# Checks if the default variant file (default.var) exists in the directory supplied.
+# If no directory is supplied, looks under the default location.
+# Should only be called directly from the featurevariantparser module reference, not from any methods within the module.
+
+# USAGE: featurevariantparser->DefaultExists(<DirName>);
+# <DirName> : Optional -- Specifies which directory to look under to find the default.var file. Can be relative or absolute.
+
+sub DefaultExists
+{
+
+    my $dirToSearch = "";
+    if ( $_[1] )
+    {
+        $dirToSearch = $_[1];
+    }
+    else
+    {
+        $dirToSearch = $defaultDir;
+    }
+
+    $dirToSearch =
+      File::Spec->canonpath(
+        File::Spec->rel2abs( File::Spec->canonpath("$dirToSearch") ) );
+
+    return ( -e "$dirToSearch/default.var" );
+
+}
+
+# Checks the variant file for the correct syntax and reports any errors
+# Also sets up some variables(VIRTUAL ,VARIANT_HRH and VARIANT) whilst file is being parsed.
+
+# Usage: CheckVarFileSyntaxt(<fullpath>,<varfile>) . Note: <varfile> without .var
+sub CheckVarFileSyntax
+{
+
+    my $fullpath          = $_[0];
+    my $varname           = $_[1];
+    my $varianthrhpresent = 0;
+
+    open( READVAR, "<$fullpath" );
+    my $exp  = "#";
+    my $line = "";
+
+    while (<READVAR>)
+    {
+        $line = $.;
+
+	# Checks for a valid argument supplied to EXTENDS keyword. Checks for one and only one argument supplied.
+        if (/^EXTENDS/)
+        {
+            if ( !m/^EXTENDS\s+./ )
+            {
+                print "\nERROR: Invalid format supplied to argument EXTENDS on line "
+                  . "$."
+                  . " in file "
+                  . "$fullpath";
+                return 0;
+            }
+            my $str = ExtractExtendsValue($_);
+            if ( $str =~ /\s+/ )
+            {
+                print "\nERROR: Cannot extend from two nodes. Error in line "
+                  . "$."
+                  . " in file "
+                  . "$fullpath";
+                return 0;
+            }
+
+            $childNodeStatus = 1;
+
+        }
+
+        # Checks for the grammar of BUILD_INCLUDE, i.e. KEYWORD MODIFIER VALUE
+        elsif (/^BUILD_INCLUDE/)
+        {
+
+          if (!m/^BUILD_INCLUDE\s+(append|prepend|set)\s+$pathregex/)
+            {
+                print "\nERROR: Invalid syntax supplied to keyword BUILD_INCLUDE on line "
+                  . "$."
+                  . " in file "
+                  . "$fullpath";
+                return 0;
+            }
+            
+		 if (m/^BUILD_INCLUDE\s+(append|prepend|set)\s+$pathregex\s+$pathregex/)
+            {
+                print "\nERROR: Too many arguments supplied to keyword BUILD_INCLUDE on line "
+                  . "$."
+                  . " in file "
+                  . "$fullpath";
+                return 0;
+            }
+        }
+
+        # Checks for the grammar of ROM_INCLUDE, i.e. KEYWORD MODIFIER VALUE
+        elsif (/^ROM_INCLUDE/)
+        {
+
+		if (!m/^ROM_INCLUDE\s+(append|prepend|set)\s+$pathregex/)
+            {
+                print "\nERROR: Invalid syntax supplied to keyword ROM_INCLUDE on line "
+                  . "$."
+                  . " in file "
+                  . "$fullpath";
+                return 0;
+            }
+
+       if (m/^ROM_INCLUDE\s+(append|prepend|set)\s+$pathregex\s+$pathregex/)
+            {
+                print "\nERROR: Too many arguments supplied to keyword ROM_INCLUDE on line "
+                  . "$."
+                  . " in file "
+                  . "$fullpath";
+                return 0;
+            }
+        }
+
+        # Checks for a valid VARIANT name
+        elsif (/^VARIANT[^_HRH]/)
+        {
+            if ( !m/^VARIANT\s+\w+/ )
+            {
+                print "\nERROR: VARIANT name not specified on line " . "$."
+                  . " in file "
+                  . "$fullpath";
+                return 0;
+            }
+            if ( uc("$varname") ne uc( ExtractVariantValue($_) ) )
+            {
+                print "\nERROR: VARIANT filename does not match variant name specified on line "
+                  . "$line"
+                  . " in file "
+                  . "$fullpath"
+                  . "\nVariant value extracted from the VAR file is " . "$_";
+            }
+
+        }
+
+        # Checks that keyword VIRTUAL is declared correctly
+        elsif (/^VIRTUAL/)
+        {
+            if (m/^VIRTUAL\s+\w+/)
+            {
+                print "\nERROR: Invalid declaration of VIRTUAL on line " . "$."
+                  . " in file "
+                  . "$fullpath";
+                return 0;
+            }
+
+            $virtual = 1;
+        }
+
+        # Checks if VARIANT_HRH is declared correctly.
+        elsif (/^VARIANT_HRH/)
+        {
+            $varianthrhpresent = 1;
+            my $lineno = $.;
+            if ( !m/^VARIANT_HRH\s+./ )
+            {
+                print "\nERROR: Invalid format supplied to argument VARIANT_HRH on line "
+                  . "$lineno"
+                  . " in file "
+                  . "$fullpath";
+                return 0;
+            }
+
+            my $str = ExtractHrhValue($_);
+            if ( $str =~ /\s+/ )
+            {
+                print "\nERROR: Cannot have 2 or more hrh files. Error in line "
+                  . "$lineno"
+                  . " in file "
+                  . "$fullpath";
+                return 0;
+            }
+
+            if ( !FileExists( FixPaths($str) ) )
+            {
+                print "\nERROR: VARIANT HRH file : "
+                  . FixPaths($str)
+                  . " specified on line "
+                  . "$lineno"
+                  . " does not exist";
+                return 0;
+            }
+
+            $varianthrh = FixPaths( ExtractHrhValue($_) );
+
+        }
+        
+        # If none of the valid keywords are found
+        else
+        {
+
+            # Do nothing if a comment or blank line is found
+            if ( (m/$exp\s+\S/) || (m/$exp\S/) || ( !m/./ ) || (m/^\n/) )
+            {
+            }
+
+            # Unsupported keyword
+            else
+            {
+
+                print "\nERROR: Invalid keyword " . '"' . "$_" . '"'
+                  . " found on line " . "$."
+                  . " in file "
+                  . "$fullpath";
+                return 0;
+            }
+        }
+    }
+
+    close(READVAR);
+
+    # If no HRH file defined, check if the default one exists
+    if ( !$varianthrhpresent )
+    {
+        print "\nINFO: No VARIANT_HRH defined in VAR file, using $ENV{EPOCROOT}epoc32\\include\\variant\\$varname\.hrh" if ($verbose);
+        my $str =
+          ExtractHrhValue(
+            "VARIANT_HRH $ENV{EPOCROOT}epoc32\\include\\variant\\$varname\.hrh"
+          );
+
+        if ( !FileExists($str) )
+        {
+            print "\nERROR: VARIANT HRH file : " . "$str " . "does not exist\n";
+            return 0;
+        }
+        else
+        {
+            $varianthrh = $str;
+        }
+    }
+    return 1;
+}
+
+1;
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/e32util/fixsource.bat	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,853 @@
+@rem
+@rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+@rem All rights reserved.
+@rem This component and the accompanying materials are made available
+@rem under the terms of "Eclipse Public License v1.0"
+@rem which accompanies this distribution, and is available
+@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem
+@rem Initial Contributors:
+@rem Nokia Corporation - initial contribution.
+@rem
+@rem Contributors:
+@rem
+@rem Description:
+@rem
+@rem = '--*-Perl-*--
+@echo off
+if "%OS%" == "Windows_NT" goto WinNT
+perl -x -S "%0" %1 %2 %3 %4 %5 %6 %7 %8 %9
+goto endofperl
+:WinNT
+perl -x -S "%0" %*
+if NOT "%COMSPEC%" == "%SystemRoot%\system32\cmd.exe" goto endofperl
+if %errorlevel% == 9009 echo You do not have Perl in your PATH.
+goto endofperl
+@rem ';
+#!perl
+#line 14
+
+
+use strict;
+use Getopt::Long;
+use File::Spec;
+use File::Copy;
+use File::Path;
+use File::Basename;
+
+my $toolVersion = "2.1";
+
+# Example warnings:
+#
+# Incorrect slash
+#	\src\common\generic\comms-infras\commsfw\group\bld.inf:10: Incorrect slash in PRJ_EXPORTS - '..\inc\commschan.h'.
+#	\src\cedar\generic\base\f32\group\ecomp.mmp:14: Incorrect slash in SYSTEMINCLUDE - '..\inc'.
+#	\src\common\generic\syncml\framework\TransportProvision\HttpWsp\SmlHttpBase.cpp:13: Incorrect slash in #include - 'http\rhttpheaders.h'.
+#
+# Incorrect case for epoc32 tree
+#	\src\common\generic\syslibs\pwrcli\group\bld.inf:23: Incorrect case for epoc32 tree in PRJ_EXPORTS - '\epoc32\rom\include\PwrCli.IBY'.
+#	\src\common\generic\security\crypto\group\hash.mmp:8: Incorrect case for epoc32 tree in TARGET - 'hash.DLL'.
+#	\src\common\generic\syslibs\ecom\ongoing\Framework\frame\Discoverer.cpp:20: Incorrect case for epoc32 tree in #include - 'BaSPI.h'.
+#
+# Incorrect case versus filesystem
+#	\src\common\generic\comms-infras\commdb\commdbshim\group\BLD.INF:20: Incorrect case versus filesystem in PRJ_EXPORTS - '..\inc\cdblen.h' vs. \src\common\generic\comms-infras\commdb\commdbshim\INC\CDBLEN.H.
+#	\src\common\generic\syslibs\ecom\ongoing\Framework\MMPFiles\EComServer.mmp:45: Incorrect case versus filesystem in USERINCLUDE - '..\..\framework\inc' vs. \src\common\generic\syslibs\ecom\ongoing\Framework\inc.
+#	\src\common\generic\comms-infras\commdb\commdbshim\INC\CDBOVER.H:16: Incorrect case versus filesystem in #include - 'cdbpreftable.h' vs. \src\common\generic\comms-infras\commdb\commdbshim\INC\CDBPREFTABLE.H.
+#
+# Incorrect case for epoc32 tree from default export (i.e. source export case will replicated under \epoc32)
+#	\src\common\generic\application-protocols\http\group\bld.inf:22: Incorrect case for epoc32 tree from default export in PRJ_EXPORTS - '..\inc\HTTPSocketConstants.h'.
+#	\src\common\generic\messaging\email\smtpservermtm\group\bld.inf:11: Incorrect case for epoc32 tree from default export in PRJ_EXPORTS - '..\inc\smts.h' vs. \src\common\generic\messaging\email\smtpservermtm\inc\SMTS.H.
+#
+# Incorrect case versus exclusion list
+#	\src\common\generic\Multimedia\openmax\group\bld.inf:14: Incorrect case versus exclusion list in PRJ_EXPORTS - '\epoc32\include\openmax\il\OMX_Types.h' vs. OMX_TYPES.H.
+#	\src\common\generic\Multimedia\openmax\inc\openmax\il\OMX_Audio.h:41: Incorrect case versus exclusion list in #include - 'OMX_Types.h' vs. OMX_TYPES.H.
+#
+# Can't find physical file match for
+#	\src\common\generic\app-framework\conarc\group\BLD.INF:48: Can't find physical file match for PRJ_TESTMMPFILES MMP - '..\tsrc\tcon3_V2.mpp' on filesystem.
+#
+
+
+# 1. Check arguments, output help etc.
+
+my $analyse = 0;
+my $list = 0;
+my $update = 0;
+my $warnings = "";
+my $verbose = 0;
+my $debug = 0;
+my $debugUpdate = 0;
+GetOptions ('analyse|a' => \$analyse, 'list|l' => \$list, 'update|u' => \$update, 'warnings|w=s' => \$warnings,
+			'verbose|v' => \$verbose, 'debug|d' => \$debug, 'debugupdate|du' => \$debugUpdate);
+
+if (@ARGV == 0)
+	{
+	print (STDERR "\nFIXSOURCE.BAT - Version $toolVersion\n");
+
+	print STDERR << 'END_OF_HELP';
+
+Usage: fixsource.bat -analyse|-list|-update|-warnings buildlog_1.log [buildlog_n.log] 
+
+Parses the output from the specified build logs to locate warnings produced via
+"abld -checksource".  Provides the option to update source automatically to comply
+with Symbian's Filename Policy.
+
+-analyse | -a	             List and describe all warnings that cannot be addressed
+                             by this tool.
+-list    | -l	             List all source files that can be updated by this tool
+                             using "-update".
+-update  | -u	             Update source files, as output by "-list", to comply with
+                             Symbian's Filename Policy.
+-warnings| -w [all|fixable]  Output all unique "-checksource" warnings present in the
+                             specified logs:
+                                all     - every warning, regardless of whether this
+                                          tool can fix them.
+                                fixable - only warnings that this tool can fix.
+-verbose | -v                Additional verbose output for the "-update" option.
+
+NOTES:
+* The tool assumes that the original build source and layout is present on the drive
+  where it is being executed.
+* With the exception of the "-warnings all" output, any warnings for files under the
+  known release and build locations of %EPOCROOT%epoc32\include and
+  %EPOCROOT%epoc32\build are discarded by default.
+
+END_OF_HELP
+
+	}
+
+
+# 2. Parse the logs storing all GNU format warnings and errors
+
+
+my %ActionableFilenamePolicyWarnings;	# Hash Key (filename)
+										#	Hash Key (line number)
+										#		Hash Key (problematic text)
+										#			Hash Key ORIGINAL_WARNINGS
+										#				Hash Key (original warning)
+										#					1
+										#			Hash Key ITEM
+										#				item type that has generated the warning
+										#			Hash Key SEARCH_TEXT
+										#				quotemeta version of problematic text
+										#			Hash Key UNIX_SLASH
+										#				1
+										#			Hash Key LOWERCASE
+										#				1
+										#			Hash Key PHYSICAL
+										#				1
+										#			Hash Key EXCLUSION
+										#				1
+										#			Hash Key PHYSICAL_REALITY
+										#				Hash Key (physical reality)
+										#					1
+										#				fully pathed filesystem reality used in physical checking
+										#			Hash Key EXCLUSION_LISTING
+										#				required format of reference as dictated from an exclusion list
+										#			Hash Key ACTUAL_TEST
+										#				test used for check when this differed from that in actual source
+										#			Hash Key DEFAULT_EXPORT
+										#				special case - a PRJ_EXPORTS line without a destination will break
+										#				the filename policy if the source line is not lowercase
+my %NonActionableFilenamePolicyWarnings;
+my %AllFilenamePolicyWarnings;
+my %OtherWarningsAndErrors;
+
+foreach my $BUILD_LOG (@ARGV)
+	{
+	open BUILD_LOG, "< $BUILD_LOG" or die "\nCannot read \"$BUILD_LOG\"!\n\n";
+
+	while (<BUILD_LOG>)
+		{
+		chomp;
+			
+		if (/^\\\S+:.*: .+$/)
+			{
+			if (!/:\d+: (Incorrect case|Incorrect slash|Can\'t find) /)
+				{
+				$OtherWarningsAndErrors{$_} = 1 if (!/(unresolved api-item|unknown base class|unresolved xref|no image file|xm-replace_text)/);	# Ignore the noise of doc stuff...
+				next;					
+				}
+
+			$AllFilenamePolicyWarnings{$_} = 1;
+			
+			if (/: Can\'t find /)
+				{
+				$NonActionableFilenamePolicyWarnings{$_} = 1;
+				next;
+				}
+
+			my $originalWarning = $_;
+
+			/(^.*):(\d+): Incorrect (case for epoc32 tree|case versus filesystem|case versus exclusion list|slash|case for epoc32 tree from default export) in (.+) - \'(.+?)\'/;
+
+			my $filename = $1;
+			my $lineNumber = $2;
+			my $type = $3;
+			my $item = $4;
+			my $problematicText = $5;
+
+			$type =~ s/case for epoc32 tree from default export/defaultexport/;
+			$type =~ s/case for epoc32 tree/lowercase/;
+			$type =~ s/case versus filesystem/physical/;
+			$type =~ s/case versus exclusion list/exclusion/;
+
+			my $actualTest = "";
+			my $physicalReality = "";
+			my $exclusionListing = "";
+			$actualTest = $1 if (/\(actual test \'(.*)\'\)/);
+
+			if (/ vs\. (.*)\./)
+				{
+				$physicalReality = $1 if ($type eq "physical");
+				$exclusionListing = $1 if ($type eq "exclusion");
+				}
+
+			if ($debug)
+				{
+				print ("ORIGINAL WARNING   : $originalWarning\n");
+				print ("FILENAME           : $filename\n");
+				print ("LINENUMBER         : $lineNumber\n");
+				print ("TYPE               : $type\n");
+				print ("ITEM               : $item\n");
+				print ("PROBLEMATIC TEXT   : $problematicText\n");
+				print ("ACTUAL TEST        : $actualTest\n") if ($actualTest);
+				print ("PHYSICAL REALITY   : $physicalReality\n") if ($physicalReality);
+				print ("EXCLUSION LISTING  : $exclusionListing\n") if ($exclusionListing); 
+				print ("\n");
+				}
+
+			next if ($warnings =~ /all/i);
+
+	# Line Number
+
+			my $lineNumberHashRef;
+			if ($ActionableFilenamePolicyWarnings{$filename})
+				{
+				$lineNumberHashRef = $ActionableFilenamePolicyWarnings{$filename};
+				}
+			else
+				{
+				my %newHash;
+				$lineNumberHashRef = \%newHash;
+				$ActionableFilenamePolicyWarnings{$filename} = $lineNumberHashRef;
+				}
+
+	# Problematic Text
+
+			my $problematicTextHashRef;
+			if ($lineNumberHashRef->{$lineNumber})
+				{
+				$problematicTextHashRef = $lineNumberHashRef->{$lineNumber};
+				}
+			else
+				{
+				my %newHash;
+				$problematicTextHashRef = \%newHash;
+				$lineNumberHashRef->{$lineNumber} = $problematicTextHashRef;
+				}
+
+	# Attributes
+
+			my $attributesHashRef;
+			if ($problematicTextHashRef->{$problematicText})
+				{
+				$attributesHashRef = $problematicTextHashRef->{$problematicText};
+				}
+			else
+				{
+				my %newHash;
+				$attributesHashRef = \%newHash;
+				$problematicTextHashRef->{$problematicText} = $attributesHashRef;
+				}
+
+	# Attributes : Original Warnings
+
+			my $originalWarningsHashRef;
+			if ($attributesHashRef->{ORIGINAL_WARNINGS})
+				{
+				$originalWarningsHashRef = $attributesHashRef->{ORIGINAL_WARNINGS};
+				}
+			else
+				{
+				my %newHash;
+				$originalWarningsHashRef = \%newHash;			
+				$attributesHashRef->{ORIGINAL_WARNINGS} = $originalWarningsHashRef;
+				}
+			$originalWarningsHashRef->{$originalWarning} = 1;
+
+	# Attributes : Item
+
+			$attributesHashRef->{ITEM} = $item;
+
+	# Attributes : Search Text
+
+			$attributesHashRef->{SEARCH_TEXT} = quotemeta ($problematicText);
+
+	# Attributes : Unix Slash
+
+			$attributesHashRef->{UNIX_SLASH} = 1 if ($type eq "slash");
+
+	# Attributes : Lowercase
+
+			$attributesHashRef->{LOWERCASE} = 1 if ($type eq "lowercase");
+
+	# Attributes : Physical
+
+			$attributesHashRef->{PHYSICAL} = 1 if ($type eq "physical");
+
+	# Attributes : Exclusion
+
+			$attributesHashRef->{EXCLUSION} = 1 if ($type eq "exclusion");
+
+	# Attributes : Physical Reality
+
+			my $physicalRealityHashRef;
+			if ($physicalReality)
+				{
+				if ($attributesHashRef->{PHYSICAL_REALITY})
+					{
+					$physicalRealityHashRef = $attributesHashRef->{PHYSICAL_REALITY};
+					}
+				else
+					{
+					my %newHash;
+					$physicalRealityHashRef = \%newHash;			
+					$attributesHashRef->{PHYSICAL_REALITY} = $physicalRealityHashRef;
+					}
+				$physicalRealityHashRef->{$physicalReality} = 1;
+				}
+
+	# Attributes : Actual Test
+
+			$attributesHashRef->{ACTUAL_TEST} = $actualTest if ($actualTest);
+
+	# Attributes : Exclusion Listing
+
+			$attributesHashRef->{EXCLUSION_LISTING} = $exclusionListing if ($exclusionListing);
+
+	# Attributes : Default Export
+
+			$attributesHashRef->{DEFAULT_EXPORT} = 1 if ($type eq "defaultexport");
+			}
+		}
+
+	close BUILD_LOG;
+	}
+
+
+# 3. Examine source and warnings and compile lists of files and warnings that we can/can't do anything about
+
+my %WarningsNotMatchingSource;
+my %WarningsWithMissingFiles;
+my %WarningsForBothLowercaseAndPhysicalOnSameReference;
+my %WarningsForMultiplePhysicalUpdates;
+
+
+if ($analyse || $list || $update || $debugUpdate || $warnings =~ /^fixable$/i)
+	{
+		
+	foreach my $SOURCE_FILE (sort keys %ActionableFilenamePolicyWarnings)
+		{
+			
+	# Discard anything in known release locations
+
+		if ($SOURCE_FILE =~ /\\epoc32\\(include|build)\\/i)
+			{
+			delete ($ActionableFilenamePolicyWarnings{$SOURCE_FILE});
+			next;
+			}
+
+		my $lineNumbersHashRef = $ActionableFilenamePolicyWarnings{$SOURCE_FILE};
+
+	# Discard warnings where source files cannot be found
+
+		if (!(open SOURCE_FILE, "< $SOURCE_FILE"))
+			{
+			foreach my $lineNumber (sort keys (%$lineNumbersHashRef))
+				{
+				my $problematicTextHashRef = $lineNumbersHashRef->{$lineNumber};
+
+				foreach my $problematicText (sort keys (%$problematicTextHashRef))
+					{
+					my $attributesHashRef = $problematicTextHashRef->{$problematicText};
+					my $originalWarningsHashRef = $attributesHashRef->{ORIGINAL_WARNINGS};
+					
+					foreach my $originalWarning (keys (%$originalWarningsHashRef))
+						{
+						$WarningsWithMissingFiles{$originalWarning} = 1;
+						}					
+					}
+				}
+			delete ($ActionableFilenamePolicyWarnings{$SOURCE_FILE});
+			next;
+			}
+
+
+	# Identify and discard warnings where, for the same reference:
+	# (a) both lowercase and physical warnings are flagged and
+	# (b) multiple, different, filesystem matches have been found
+	# These will need to be resolved manually
+
+		foreach my $lineNumber (sort keys (%$lineNumbersHashRef))
+			{
+			my $problematicTextHashRef = $lineNumbersHashRef->{$lineNumber};
+
+			foreach my $problematicText (sort keys (%$problematicTextHashRef))
+				{
+				my $attributesHashRef = $problematicTextHashRef->{$problematicText};
+				my $originalWarningsHashRef = $attributesHashRef->{ORIGINAL_WARNINGS};
+
+				my $skipPhysicalUpdate = 0;
+				my $skipLowercaseUpdate = 0;
+				
+				if ($attributesHashRef->{LOWERCASE} && $attributesHashRef->{PHYSICAL})
+					{
+					$skipPhysicalUpdate = 1;
+					$skipLowercaseUpdate = 1;
+
+					foreach my $originalWarning (keys %{$originalWarningsHashRef})
+						{
+						next if ($originalWarning !~ /Incorrect case/);
+
+						$originalWarning =~ /\:(.*$)/;
+
+						my $lowercaseAndPhysicalWarningsHashRef;	
+						if ($WarningsForBothLowercaseAndPhysicalOnSameReference{$SOURCE_FILE})
+							{
+							$lowercaseAndPhysicalWarningsHashRef = $WarningsForBothLowercaseAndPhysicalOnSameReference{$SOURCE_FILE};
+							}
+						else
+							{
+							my %newHash;
+							$lowercaseAndPhysicalWarningsHashRef = \%newHash;			
+							$WarningsForBothLowercaseAndPhysicalOnSameReference{$SOURCE_FILE} = $lowercaseAndPhysicalWarningsHashRef;
+							}
+						$lowercaseAndPhysicalWarningsHashRef->{$1} = 1;						
+						}
+					}
+
+				my $physicalRealityHashRef = $attributesHashRef->{PHYSICAL_REALITY};
+
+				if ($physicalRealityHashRef && ((keys %{$physicalRealityHashRef}) > 1))
+					{						
+					my $physicalMatchCheck;
+					if ($attributesHashRef->{ACTUAL_TEST})
+						{
+						$physicalMatchCheck = $attributesHashRef->{ACTUAL_TEST};
+						}
+					else
+						{
+						$physicalMatchCheck = $problematicText;
+						$physicalMatchCheck =~ s/\.\.[\\|\/]//g;
+						$physicalMatchCheck =~ s/\.[\\|\/]//g;
+						}
+
+					$physicalMatchCheck =~ s/\\\\/\\/g;		
+					$physicalMatchCheck =~ s/\/\//\//g;
+					$physicalMatchCheck =~ s/\//\\/g;
+					$physicalMatchCheck = quotemeta($physicalMatchCheck);
+					$physicalMatchCheck =~ s/\\\*/\\w\+/g;			# * -> \w+
+					$physicalMatchCheck =~ s/\\\?/\\w\{1\}/g;		# ? -> \w{1}
+
+					my %normalisedPhysicalReferences;
+	
+					foreach my $physicalReality (keys %{$physicalRealityHashRef})
+						{
+						$physicalReality =~ /($physicalMatchCheck)$/i;
+						$normalisedPhysicalReferences{$1} = 1;
+						}
+
+					if ((keys (%normalisedPhysicalReferences)) > 1)
+						{
+						foreach my $originalWarning (keys %{$originalWarningsHashRef})
+							{
+							next if ($originalWarning !~ /Incorrect case versus/);
+
+							$originalWarning =~ /\:(.*$)/;
+
+							my $multiplePhysicalWarningsHashRef;	
+							if ($WarningsForMultiplePhysicalUpdates{$SOURCE_FILE})
+								{
+								$multiplePhysicalWarningsHashRef = $WarningsForMultiplePhysicalUpdates{$SOURCE_FILE};
+								}
+							else
+								{
+								my %newHash;
+								$multiplePhysicalWarningsHashRef = \%newHash;			
+								$WarningsForMultiplePhysicalUpdates{$SOURCE_FILE} = $multiplePhysicalWarningsHashRef;
+								}
+							$multiplePhysicalWarningsHashRef->{$1} = 1;
+							}
+						$skipPhysicalUpdate = 1;
+						}
+					}
+
+				$attributesHashRef->{LOWERCASE} = 0 if ($skipLowercaseUpdate);
+				$attributesHashRef->{PHYSICAL} = 0 if ($skipPhysicalUpdate);
+
+				if (!$attributesHashRef->{LOWERCASE} && !$attributesHashRef->{PHYSICAL} &&
+					!$attributesHashRef->{UNIX_SLASH} && !$attributesHashRef->{DEFAULT_EXPORT} &&
+					!$attributesHashRef->{EXCLUSION})
+					{
+					delete ($problematicTextHashRef->{$problematicText});
+					}
+				}
+
+			delete ($lineNumbersHashRef->{$lineNumber}) if (!scalar (keys %{$problematicTextHashRef}));
+			}
+
+		my $lineNumber = 0;
+
+		while (my $line = <SOURCE_FILE>)
+			{
+			$lineNumber++;
+
+			next if (!($lineNumbersHashRef->{$lineNumber}));
+
+			my $problematicTextHashRef = $lineNumbersHashRef->{$lineNumber};
+
+			foreach my $text (keys %{$problematicTextHashRef})
+				{
+				my $attributesHashRef = $problematicTextHashRef->{$text};				
+
+				chomp ($line);
+
+				if ($line !~ /(\"|\<|^|\s){1}$attributesHashRef->{SEARCH_TEXT}/)
+					{
+					# Put warning(s) onto the failed list, as we can't find the required text
+					# in the source present on the machine
+						
+					my $originalWarningsHashRef = $attributesHashRef->{ORIGINAL_WARNINGS};
+					foreach my $originalWarning (keys %{$originalWarningsHashRef})
+						{
+						$WarningsNotMatchingSource{$originalWarning} = $line;
+						}
+						
+					delete ($problematicTextHashRef->{$text});
+					}
+				}
+
+			delete ($lineNumbersHashRef->{$lineNumber}) if (!scalar (keys %{$problematicTextHashRef}));
+			}
+
+		delete ($ActionableFilenamePolicyWarnings{$SOURCE_FILE}) if (!scalar (keys %{$lineNumbersHashRef}));
+		close SOURCE_FILE;
+		}
+	}
+
+
+# 4. Provide -warnings [all|fixable] output
+
+if ($warnings =~ /^all$/i)
+	{
+	foreach my $warning (sort keys %AllFilenamePolicyWarnings)
+		{
+		print ("$warning\n");
+		}
+	}
+elsif ($warnings =~ /^fixable$/i)
+	{
+	my %fixableWarnings;
+		
+	foreach my $sourceFile (keys %ActionableFilenamePolicyWarnings)
+		{
+		my $lineNumbersHashRef = $ActionableFilenamePolicyWarnings{$sourceFile};
+		
+		foreach my $lineNumber (keys (%$lineNumbersHashRef))
+			{
+			my $problematicTextHashRef = $lineNumbersHashRef->{$lineNumber};
+
+			foreach my $text (keys %{$problematicTextHashRef})
+				{
+				my $attributesHashRef = $problematicTextHashRef->{$text};				
+				my $originalWarningsHashRef = $attributesHashRef->{ORIGINAL_WARNINGS};
+
+				foreach my $originalWarning (keys %{$originalWarningsHashRef})
+					{						
+					$fixableWarnings{$originalWarning} = 1;
+					}
+				}
+			}
+		}
+
+	foreach my $fixableWarning (sort keys %fixableWarnings)
+		{
+		print ("$fixableWarning\n");
+		}		
+	}
+
+
+# 5. Provide -list output
+
+if ($list)
+	{
+	foreach my $sourceFile (sort keys %ActionableFilenamePolicyWarnings)
+		{
+		print ("$sourceFile\n");
+		}
+	}
+
+
+# 6. Provide -analyse output
+
+if ($analyse)
+	{
+	print ("\nFilename policy warnings with missing files\n".
+		     "-------------------------------------------\n\n");
+	foreach my $warningWithMissingFile (sort keys %WarningsWithMissingFiles)
+		{
+		print ("$warningWithMissingFile\n");
+		}
+	print ("NONE\n") if (!scalar (keys %WarningsWithMissingFiles));
+
+
+	print ("\n\nFilename policy warnings that don't match source\n".
+		       "------------------------------------------------\n\n");		
+	foreach my $warningNotMatchingSource (sort keys %WarningsNotMatchingSource)
+		{
+		print ("$warningNotMatchingSource\n");
+		print ("\tACTUAL LINE : \'$WarningsNotMatchingSource{$warningNotMatchingSource}\'\n");
+		}
+	print ("NONE\n") if (!scalar (keys %WarningsNotMatchingSource));
+
+	print ("\n\nFilename policy warnings with both lowercase and physical warnings for the same reference\n".
+		       "-----------------------------------------------------------------------------------------\n\n");		
+	foreach my $sourceFile (sort keys %WarningsForBothLowercaseAndPhysicalOnSameReference)
+		{
+		print ("$sourceFile\n");
+		foreach my $warning (sort keys %{$WarningsForBothLowercaseAndPhysicalOnSameReference{$sourceFile}})
+			{
+			print ("\t$warning\n");
+			}
+		}
+	print ("NONE\n") if (!scalar (keys %WarningsForBothLowercaseAndPhysicalOnSameReference));
+
+	print ("\n\nMultiple differing physical filename policy warnings for the same reference\n".
+		       "---------------------------------------------------------------------------\n\n");		
+	foreach my $sourceFile (sort keys %WarningsForMultiplePhysicalUpdates)
+		{
+		print ("$sourceFile\n");
+		foreach my $warning (sort keys %{$WarningsForMultiplePhysicalUpdates{$sourceFile}})
+			{
+			print ("\t$warning\n");
+			}
+		}
+	print ("NONE\n") if (!scalar (keys %WarningsForMultiplePhysicalUpdates));
+
+	print ("\n\nNon-actionable filename policy warnings\n".
+		     "---------------------------------------\n\n");		
+	foreach my $nonActionableWarning (sort keys %NonActionableFilenamePolicyWarnings)
+		{
+		print ("$nonActionableWarning\n");
+		}
+	print ("NONE\n") if (!scalar (keys %NonActionableFilenamePolicyWarnings));
+
+
+	print ("\n\nOther detected warnings unrelated to filename policy\n".
+		     "----------------------------------------------------\n\n");		
+	foreach my $otherWarningOrError (sort keys %OtherWarningsAndErrors)
+		{
+		print ("$otherWarningOrError\n");
+		}
+	print ("NONE\n") if (!scalar (keys %OtherWarningsAndErrors));
+
+	print ("\n\n");
+	}
+
+
+# 7. Perform -update function
+
+if ($update || $debugUpdate)
+	{
+	foreach my $SOURCE_FILE (sort keys %ActionableFilenamePolicyWarnings)
+		{
+		if (!(open SOURCE_FILE, "< $SOURCE_FILE"))
+			{				
+			print ("ERROR: Could not open $SOURCE_FILE to read.\n");
+			next;
+			}
+
+		print ("Updating \'$SOURCE_FILE\'...\n") unless ($debugUpdate);
+
+		my $lineNumbersHashRef = $ActionableFilenamePolicyWarnings{$SOURCE_FILE};
+		my $lineNumber = 0;
+		my @newSourceFile;
+
+		while (my $line = <SOURCE_FILE>)
+			{
+			$lineNumber++;
+
+			if ($lineNumbersHashRef->{$lineNumber})
+				{				
+				print ("\tOriginal : $line") if ($verbose);
+					
+				my $problematicTextHashRef = $lineNumbersHashRef->{$lineNumber};
+
+				# We need to order the updates on a per-line basis so that, for example,
+				# a search and update for 'nkern\arm\' occurs after one for 'include\nkern\arm\nk_plat.h'
+				# We can do this by length, making sure the longest updates are performed first
+				my @problematicTextOrderedHashKeys = sort {length $b <=> length $a} (keys %{$problematicTextHashRef});
+
+				foreach my $problematicText (@problematicTextOrderedHashKeys)
+					{
+					my $attributesHashRef = $problematicTextHashRef->{$problematicText};
+					my $revisedText = $problematicText;
+
+		# Physical
+
+					if ($attributesHashRef->{PHYSICAL})
+						{
+						my $physicalRealityHashRef = $attributesHashRef->{PHYSICAL_REALITY};
+
+						my $physicalReality = (keys %{$physicalRealityHashRef})[0];
+						my $physicalRealityUnixSlash = $physicalReality;
+						$physicalRealityUnixSlash =~ s/\\/\//g;						
+							
+						if ($physicalReality =~ /($attributesHashRef->{SEARCH_TEXT})$/i ||
+							$physicalRealityUnixSlash =~ /($attributesHashRef->{SEARCH_TEXT})$/i)
+							{
+							# Simple case - direct match with just case and slash differences
+							my $replacement = $1;
+							$replacement =~ s/\\/\//g;
+							$revisedText =~ s/$attributesHashRef->{SEARCH_TEXT}/$replacement/;
+							}
+						else
+							{
+							# What we're looking at in the source file doesn't map directly
+							# to what's physically on the file system.
+
+							my $modifiedSearchText = $problematicText;
+							$modifiedSearchText =~ s/\.\.[\\|\/]//g;
+							$modifiedSearchText =~ s/\.[\\|\/]//g;
+
+							my $physicalMatchCheck;
+							if ($attributesHashRef->{ACTUAL_TEST})
+								{
+								$physicalMatchCheck = $attributesHashRef->{ACTUAL_TEST};
+								}
+							else
+								{
+								$physicalMatchCheck = $modifiedSearchText;
+								}
+
+							# The physical match check needs to remove double-slashing...
+							$physicalMatchCheck =~ s/\\\\/\\/g;		
+							$physicalMatchCheck =~ s/\/\//\//g;
+							
+							$modifiedSearchText = quotemeta($modifiedSearchText);
+							$physicalMatchCheck = quotemeta($physicalMatchCheck);
+
+							$physicalMatchCheck =~ s/\\\*/\\w\+/g;			# * -> \w+
+							$physicalMatchCheck =~ s/\\\?/\\w\{1\}/g;		# ? -> \w{1}
+
+							if ($physicalReality =~ /($physicalMatchCheck)$/i ||
+								$physicalRealityUnixSlash =~ /($physicalMatchCheck)$/i )
+								{
+								my $replacement = $1;
+								$replacement =~ s/\\/\//g;
+								
+								if ($attributesHashRef->{ACTUAL_TEST} &&
+									($attributesHashRef->{ITEM} =~ /MMP$/ || $attributesHashRef->{ITEM} =~ /DEFFILE/))
+									{
+									# Both DEFFILE and PRJ_[TEST]MMPFILE entries may be specifed without extension
+									$replacement =~ s/\.\w+$// if ($problematicText !~ /\.\w+$/);
+
+									# DEFFILE entries may have eabi\bwins in the physical match and had a "u" inserted or appended 
+									if ($attributesHashRef->{ITEM} =~ /DEFFILE/ && $replacement !~ /$modifiedSearchText$/i)
+										{
+										$replacement =~ s/(eabi|bwins)\//~\//i if ($problematicText =~ /~[\\|\/]/);
+										$replacement =~ s/u(\.\w+)?$/$1/i if ($attributesHashRef->{ITEM} !~ /NOSTRICTDEF/);
+										}
+									}
+
+								$revisedText =~ s/$modifiedSearchText/$replacement/;
+								}
+							else
+								{
+								print ("ERROR: Can\'t perform physical consistency updates for:");
+								
+								my $originalWarningsHashRef = $attributesHashRef->{ORIGINAL_WARNINGS};
+								foreach my $originalWarning (keys %{$originalWarningsHashRef})
+									{
+									print ("\t$originalWarning") if ($originalWarning =~ /case versus/);
+									}
+
+								print ("\n");
+								}
+							}
+						}
+
+		# Exclusion
+
+					if ($attributesHashRef->{EXCLUSION})
+						{
+						my $exclusionListingSearch = quotemeta($attributesHashRef->{EXCLUSION_LISTING});						
+						$revisedText =~ s/$exclusionListingSearch/$attributesHashRef->{EXCLUSION_LISTING}/i;
+						}						
+
+		# Slash
+					if ($attributesHashRef->{UNIX_SLASH})
+						{
+						$revisedText =~ s/\\/\//g;
+						$revisedText =~ s/\/\//\//g;		# Don't allow replacements that lead to "//" in paths
+						}
+
+		# Lowercase
+
+					if ($attributesHashRef->{LOWERCASE})
+						{
+						$revisedText = lc ($revisedText);
+						}
+
+		# Default Export
+
+					if ($attributesHashRef->{DEFAULT_EXPORT})
+						{
+						my $exportedFilename = lc (basename ($problematicText));							
+						$revisedText .= " \/epoc32\/include\/".$exportedFilename;
+						}
+
+					$line =~ s/(\"|\<|^|\s){1}$attributesHashRef->{SEARCH_TEXT}/$1$revisedText/;
+					}
+
+				print ("\tUpdated  : $line") if ($verbose);
+				}
+				
+			push @newSourceFile, $line;
+			}
+
+		close SOURCE_FILE;
+
+		if ($debugUpdate)
+			{
+			# Don't touch the original source, but create two trees for easy comparison
+				
+			my $baseDir = dirname ($SOURCE_FILE);				
+			mkpath ("\\compare\\orig".$baseDir);
+			mkpath ("\\compare\\updated".$baseDir);
+			print ("Copying  \'\\compare\\orig".$SOURCE_FILE."\'...\n");
+			copy ($SOURCE_FILE, "\\compare\\orig".$SOURCE_FILE);
+			$SOURCE_FILE = "\\compare\\updated".$SOURCE_FILE;
+			print ("Updating \'$SOURCE_FILE\'...\n");
+			}
+
+		if (!(open SOURCE_FILE, "> $SOURCE_FILE"))
+			{				
+			print ("ERROR: Could not open $SOURCE_FILE to write.\n");
+			next;
+			}
+
+		foreach my $line (@newSourceFile)
+			{
+			print (SOURCE_FILE $line);
+			}
+
+		close SOURCE_FILE;
+		}
+
+	print ("\n") if ($verbose);
+	}
+
+__END__
+
+:endofperl
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/e32util/gendef.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,74 @@
+# Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# e32toolp/e32util/gendef.pl
+# 
+#
+
+use FindBin;		# for FindBin::Bin
+
+my $PerlLibPath;    # fully qualified pathname of the directory containing our Perl modules
+
+BEGIN {
+# check user has a version of perl that will cope
+	require 5.005_03;
+# establish the path to the Perl libraries: currently the same directory as this script
+	$PerlLibPath = $FindBin::Bin;	# X:/epoc32/tools
+	$PerlLibPath =~ s/\//\\/g;	# X:\epoc32\tools
+	$PerlLibPath .= "\\";
+}
+
+use lib $PerlLibPath;
+use E32tpver;
+
+# THE MAIN PROGRAM SECTION
+##########################
+
+unless (@ARGV>1)
+{
+	&Usage;
+}
+my @exports = @ARGV;
+my $outfile = shift @exports;
+
+open OUTFILE, ">$outfile" or die "Gendef.pl: Unable to open $outfile for writing";
+
+print OUTFILE "EXPORTS\n";
+my $exportNum = 1;
+foreach (@exports)
+{
+	print OUTFILE "\t$_ @ $exportNum NONAME\n";
+	++$exportNum;
+}
+
+close OUTFILE;
+
+#######################################################################
+# SUBROUTINES
+#######################################################################
+
+sub Usage () {
+
+	print(
+		"\n",
+		"GENDEF - Generate a DEF file from passed exports (Build ",&E32tpver,")\n",
+		"\n",
+		"GENDEF.PL [output def file] [1st export name] ([Other export names]...)\n",
+		"\n",
+		"\n",
+		"\n"
+	);
+	exit 1;
+}
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/e32util/genshimsrc.bat	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,208 @@
+@REM Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
+@REM All rights reserved.
+@REM This component and the accompanying materials are made available
+@REM under the terms of the License "Eclipse Public License v1.0"
+@REM which accompanies this distribution, and is available
+@REM at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@REM
+@REM Initial Contributors:
+@REM Nokia Corporation - initial contribution.
+@REM 
+@REM Contributors:
+@REM
+
+@goto invoke
+
+#!perl
+
+use strict;
+use FindBin;		# for FindBin::Bin
+use Getopt::Long;
+use Cwd;
+
+$_ = cwd;
+tr/\//\\/;
+my $Pwd = $_;
+
+my $PerlLibPath;    # fully qualified pathname of the directory containing our Perl modules
+
+# establish the path to the Perl binaries
+BEGIN {
+	require 5.005_03;				# check user has a version of perl that will cope
+# establish the path to the Perl libraries: currently the same directory as this script
+	$PerlLibPath = $FindBin::Bin;	# X:/epoc32/tools
+	$PerlLibPath =~ s/\//\\/g;	# X:\epoc32\tools
+	$PerlLibPath .= "\\";
+}
+use lib $PerlLibPath;
+
+use Defutl;
+use Genutl;
+
+my %opts = ();
+
+my $result = GetOptions(\%opts,
+			"srcpath:s",
+			"defpath:s",
+			"name:s",
+			"version:s",
+			"alignstack",
+			"help",
+		       );
+
+Usage() if(!$result || $opts{'help'} || @ARGV < 1);
+
+my $srcPath = $opts{"srcpath"} || $Pwd;
+my $defPath = $opts{"defpath"} || $srcPath;
+my $outputName = $opts{"name"} || "shim";
+my %Version;
+if ($opts{version}) {
+	%Version = &Genutl_StringToVersion($opts{version}) or die "Bad version number\n";
+} else {
+	$Version{major} = 0;
+	$Version{minor} = 0;
+}
+
+my $infile = pop @ARGV;
+
+my @DefData;
+eval { &Def_ReadFileL(\@DefData, $infile); } ;
+die $@ if $@;
+
+sub WriteFunction($$$) {
+  my ($ordinal, $branchTarget, $comment) = @_;
+  my $fnName = "export_at_ordinal_$ordinal";
+  if ($branchTarget =~ /^\"(.*)\"$/) {
+	  $branchTarget = $1;
+	}
+  if ($comment =~ /(null)/) {
+    $comment = $branchTarget;
+  }
+
+  print CPP <<FUNCTION_DEFINITION;
+
+EXPORT_C __NAKED__ int $fnName()
+//
+// $comment
+//
+	{
+	asm("B $branchTarget ");
+	}
+
+FUNCTION_DEFINITION
+}
+
+sub WriteFunctionAligned($$$) {
+  my ($ordinal, $branchTarget, $comment) = @_;
+  my $fnName = "export_at_ordinal_$ordinal";
+  if ($branchTarget =~ /^\"(.*)\"$/) {
+	  $branchTarget = $1;
+	}
+  if ($comment =~ /(null)/) {
+    $comment = $branchTarget;
+  }
+
+  print CPP <<FUNCTION_DEFINITION2;
+
+EXPORT_C __NAKED__ int $fnName()
+//
+// $comment
+//
+	{
+	asm("stmfd sp!, {r4,lr} ");
+	asm("mov r4, sp ");
+	asm("bic sp, sp, #4 ");
+	asm("bl $branchTarget ");
+	asm("mov sp, r4 ");
+	asm("ldmfd sp!, {r4,pc} ");
+	}
+
+FUNCTION_DEFINITION2
+}
+
+sub WriteCppHeader($) {
+  my ($filename) = @_;
+  print CPP <<FILE_HEADER;
+//
+// $filename - generated by GENSHIMSRC.BAT
+//
+
+#include <e32def.h>
+#include <e32const.h>
+#include <cpudefs.h>
+
+FILE_HEADER
+}
+
+sub WriteExport($$$) {
+  my ($ordinal, $export, $comment) = @_;
+
+  if ($comment =~ /(null)/) {
+    $comment = $export;
+  }
+  printf DEF "\t${export}=export_at_ordinal_${ordinal}__Fv \@ $ordinal NONAME \; $comment\n";
+}
+
+my $cppFile = "$srcPath\\$outputName\.cia";
+die "ERROR: Couldn't open $cppFile\n" unless open CPP, ">$cppFile";
+my $vstring = &Genutl_VersionToFileAugment(%Version);
+my $defFile = "$defPath\\${outputName}$vstring\.def";
+die "ERROR: Couldn't open $defFile\n" unless open DEF, ">$defFile";
+
+WriteCppHeader(uc "${outputName}.cia");
+printf DEF "EXPORTS\n";
+
+foreach my $defData (@DefData){
+  my $ord = $$defData{Ordinal};
+  if ($ord) {
+	my $name = $$defData{Name};
+	my $comment = $$defData{Comment};
+	if ($opts{alignstack}) {
+		WriteFunctionAligned($ord, $name, $comment);
+	} else {
+		WriteFunction($ord, $name, $comment);
+	}
+	WriteExport($ord, $name, $comment);
+  }
+}
+
+close CPP;
+close DEF;
+
+#####################################################################
+sub Usage
+{
+	print <<EOT;
+
+genshimsrc
+
+	Generate source for a shim DLL and its associated deffile from a supplied deffile
+
+Usage:
+	genshimsrc [options] deffile
+
+Where:
+	[deffile]     The source deffile
+
+Options:
+	--srcpath         the path for the output source file (defaults to CWD)
+	--defpath         the path for the output DEF file (defaults to srcpath)
+	--name            the name to use for the output files (defaults to shim)
+	--version         the version to use for the output DEF file (defaults to 0.0)
+	--alignstack      use shims which align the stack to an 8 byte boundary
+EOT
+	exit 1;
+}
+
+1;
+
+__END__
+
+# Tell emacs that this is a perl script even 'though it has a .bat extension
+# Local Variables:
+# mode:perl
+# tab-width:4
+# End:
+
+:invoke
+@perl -x -S genshimsrc.bat %1 %2 %3 %4 %5 %6 %7 %8 %9
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/e32util/h2inc.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,950 @@
+# Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# e32toolp\e32util\h2inc.pl
+# Convert structures in C++ include files to assembler format
+# Syntax:
+# perl h2inc.pl <input.h> <output.inc> <format>
+# where <format>=arm or x86
+# 
+#
+
+%basictypes = (
+	TInt8		=>	1,
+	TUint8		=>	1,
+	TInt16		=>	2,
+	TUint16		=>	2,
+	TInt32		=>	4,
+	TUint32		=>	4,
+	TInt		=>	4,
+	TUint		=>	4,
+	TInt64		=>	8,
+	TUint64		=>	8,
+	TLinAddr	=>	4,
+	TVersion	=>	4,
+	TPde		=>	4,
+	TPte		=>	4,
+	TProcessPriority => 4
+);
+
+if (scalar(@ARGV)!=3) {
+	die "perl h2inc.pl <input.h> <output.inc> <format>\n";
+}
+my ($infile, $outfile, $format) = @ARGV;
+open IN, $infile or die "Can't open $infile for input\n";
+my $in;
+while (<IN>) {
+	$in.=$_;
+}
+close IN;
+$format = uc($format);
+$format_sub = undef();
+$comment_sub = undef();
+$end_sub = undef();
+if ($format eq "ARMASM") {
+	$format_sub = \&armasm_format;
+	$comment_sub = \&armasm_comment;
+	$end_sub = \&armasm_end;
+} elsif ($format eq "AS") {
+	$format_sub = \&as_format;
+	$comment_sub = \&as_comment;
+	$end_sub = \&as_end;
+} elsif ($format eq "TASM") {
+	$format_sub = \&tasm_format;
+	$comment_sub = \&tasm_comment;
+	$end_sub = \&tasm_end;
+} else {
+	die "Format $format unknown\nOnly ARMASM, AS or TASM supported\n";
+}
+
+# First remove any backslash-newline combinations
+$in =~ s/\\\n//gms;
+
+# Change escaped quotes to double quotes
+$in =~ s/\\\"/\"\"/gms;
+$in =~ s/\\\'/\'\'/gms;
+
+# Remove any character constants
+$in =~  s/\'(.?(${0})*?)\'//gms;
+
+# Remove any string literals
+$in =~ s/\"(.*?)\"//gms;
+
+# Strip comments
+$in =~ s/\/\*(.*?)\*\//\n/gms;
+$in =~ s/\/\/(.*?)\n/\n/gms;
+
+# Collapse whitespace into a single space or newline
+$in =~ s/\t/\ /gms;
+$in =~ s/\r/\ /gms;
+$in =~ s/(\ )+/\ /gms;
+$in =~ s/\n(\ )*/\n/gms;
+$in =~ s/(\ )*\n/\n/gms;
+
+# Tokenize on non-identifier characters
+my @tokens0 = split(/(\W)/,$in);
+my @tokens;
+foreach $t (@tokens0) {
+	next if ($t eq " " or $t eq "");
+	push @tokens, $t;
+}
+
+my %macros;
+my %filescope;
+$filescope{file}=1;
+$filescope{name}='*** FILE SCOPE ***';
+my @ftypedefs;
+$filescope{typedefs}=\@ftypedefs;
+my $line=1;
+parse_scope(\%filescope, \@tokens, \$line);
+
+
+my @output;
+push @output, &$comment_sub('*' x 80);
+push @output, &$comment_sub($outfile);
+push @output, &$comment_sub('*' x 80);
+push @output, &$comment_sub("GENERATED FILE - DO NOT EDIT");
+push @output, "";
+
+output_scope(\%filescope, \@output);
+
+push @output, &$end_sub();
+push @output, "";
+
+open OUT, ">$outfile" or die "Can't open $outfile for write\n";
+print OUT join("\n", @output);
+print OUT "\n\n";
+close OUT;
+
+sub get_token($$) {
+	my ($tokenlist,$line) = @_;
+	while (scalar(@$tokenlist)) {
+		my $t = shift @$tokenlist;
+		return $t if (!defined($t));
+		return $t if ($t !~ /^\s*$/);
+		++$$line;
+	}
+}
+
+sub skip_qualifiers($) {
+	my ($tokens) = @_;
+	my $f=0;
+	my %quals = (
+		EXPORT_C => 1,
+		IMPORT_C => 1,
+		inline => 1,
+		const => 0,
+		volatile => 0,
+		static => 0,
+		extern => 0,
+		LOCAL_C => 0,
+		LOCAL_D => 0,
+		GLDEF_C => 0,
+		GLREF_C => 0,
+		GLDEF_D => 0,
+		GLREF_D => 0
+		);
+	for (;;) {
+		my $t = $$tokens[0];
+		my $q = $quals{$t};
+		last unless (defined ($q));
+		$f |= $q;
+		shift @$tokens;
+	}
+	return $f;
+}
+
+sub parse_indirection($) {
+	my ($tokens) = @_;
+	my $level = 0;
+	for (;;) {
+		my $t = $$tokens[0];
+		if ($t eq '*') {
+			++$level;
+			shift @$tokens;
+			next;
+		}
+		last if ($t ne "const" and $t ne "volatile");
+		shift @$tokens;
+	}
+	return $level;
+}
+
+sub parse_scope($$$) {
+	my ($scope, $tokens, $line) = @_;
+	my $state = 0;
+	my %values;
+	my @classes;
+	my @enums;
+	my $curr_offset=0;
+	my $overall_align=0;
+	$scope->{values}=\%values;
+	$scope->{classes}=\@classes;
+	$scope->{enums}=\@enums;
+	while (scalar(@$tokens)) {
+		my $t = shift @$tokens;
+		if ($state>=-1 and $t eq "\n") {
+			++$$line;
+			$state=1;
+			next;
+		} elsif ($state==-1 and $t ne "\n") {
+			next;
+		} elsif ($state==-2 and $t ne ';') {
+			next;
+		}
+		if ($state>0 and $t eq '#') {
+			if ($scope->{scope}) {
+				warn "Preprocessor directive in class/struct at line $$line\n";
+			}
+			$t = shift @$tokens;
+			if ($t eq 'define') {
+				my $ident = shift @$tokens;
+				my $defn = shift @$tokens;
+				if ($defn ne '(') {	# don't do macros with parameters
+					$macros{$ident} = $defn;
+				}
+			}
+			$state=-1;	# skip to next line
+			next;
+		}
+		if ($t eq "struct" or $t eq "class") {
+			next if ($state==0);
+			$state=0;
+			my %cl;
+			$cl{specifier}=$t;
+			$cl{scope}=$scope;
+			my @members;
+			my @typedefs;
+			$cl{members}=\@members;
+			$cl{typedefs}=\@typedefs;
+			my $new_class = \%cl;
+			my $n = get_token($tokens,$line);
+			if ($n !~ /\w+/) {
+				die "Unnamed $t not supported at line $$line\n";
+			}
+			$new_class->{name}=$n;
+			my @class_match = grep {$_->{name} eq $n} @classes;
+			my $exists = scalar(@class_match);
+			my $b = get_token($tokens,$line);
+			if ($b eq ':') {
+				die "Inheritance not supported at line $$line\n";
+			} elsif ($b eq ';') {
+				# forward declaration
+				push @classes, $new_class unless ($exists);
+				next;
+			} elsif ($b ne '{') {
+				die "Syntax error at line $$line\n";
+			}
+			if ($exists) {
+				$new_class = $class_match[0];
+				if ($new_class->{complete}) {
+					die "Duplicate definition of $cl{specifier} $n\n";
+				}
+			}
+			push @classes, $new_class unless ($exists);
+			parse_scope($new_class, $tokens, $line);
+			next;
+		} elsif ($t eq "enum") {
+			$state=0;
+			my $n = get_token($tokens,$line);
+			my $name="";
+			if ($n =~ /\w+/) {
+				$name = $n;
+				$n = get_token($tokens,$line);
+			}
+			push @enums, $name;
+			if ($n ne '{') {
+				die "Syntax error at line $$line\n";
+			}
+			parse_enum($scope, $tokens, $line, $name);
+			next;
+		} elsif ($t eq '}') {
+			$state=0;
+			if ($scope->{scope}) {
+				$t = get_token($tokens,$line);
+				if ($t eq ';') {
+					$scope->{complete}=1;
+					last;
+				}
+			}
+			die "Syntax error at line $$line\n";
+		}
+		$state=0;
+		if ($scope->{scope}) {
+			if ($t eq "public" or $t eq "private" or $t eq "protected") {
+				if (shift (@$tokens) eq ':') {
+					next;	# ignore access specifiers
+				}
+			die "Syntax error at line $$line\n";
+			}
+		}
+		unshift @$tokens, $t;
+		my @currdecl = parse_decl_def($scope, $tokens, $line);
+		if ($t eq 'static') {
+			next;	# skip static members
+		}
+		my $typedef;
+		if ($t eq 'typedef') {
+			$typedef = 1;
+			$t = shift @currdecl;
+			$t = $currdecl[0];
+		} else {
+			$typedef = 0;
+		}
+		next if (scalar(@currdecl)==0);
+		if ($t eq "const") {
+			# check for constant declaration
+			my $ctype = lookup_type($scope, $currdecl[1]);
+			if ($ctype->{basic} and $currdecl[2]=~/^\w+$/ and $currdecl[3] eq '=') {
+				if ($typedef!=0) {
+					die "Syntax error at line $$line\n";
+				}
+				shift @currdecl;
+				shift @currdecl;
+				my $type = $ctype->{name};
+				my $name = shift @currdecl;
+				my $size = $ctype->{size};
+				shift @currdecl;
+				my $value = get_constant_expr($scope,\@currdecl,$line);
+				$values{$name} = {type=>$type, size=>$size, value=>$value};
+				next;
+			}
+		}
+		if (skip_qualifiers(\@currdecl)!=0 or ($scope->{file} and !$typedef)) {
+			next;	# function declaration or stuff at file scope
+		}
+		my $type1 = shift @currdecl;	# type, type pointed to or return type
+		if ($type1 !~ /^\w+$/) {
+			die "Syntax error at line $$line\n";
+		}
+		my $ind1 = parse_indirection(\@currdecl);
+		my $ident;	# identifier being declared
+		my $size = -1;
+		my $array = -1;
+		my $align = 0;
+		my $alias;
+		my $category;
+		if ($currdecl[0] eq '(' and $currdecl[1] eq '*' and $currdecl[2]=~/^\w+$/) {
+			# function pointer
+			$ident = $currdecl[2];
+			$size = 4;
+			$category = 'fptr';
+			shift @currdecl;
+			shift @currdecl;
+			shift @currdecl;
+		} elsif ($currdecl[0]=~/^\w+$/) {
+			$ident = shift @currdecl;
+			if ($currdecl[0] ne '(') {
+				# not function declaration
+				if ($ind1>0) {
+					# pointer
+					$category = 'ptr';
+					$size = 4;
+				} else {
+					my $type2 = lookup_type($scope, $type1);
+					if (!defined($type2)) {
+						die "Unrecognised type $type1 at line $$line\n";
+					}
+					if ($type2->{basic}) {
+						$alias = $type2->{name};
+						$size = $type2->{size};
+						$category = 'basic';
+					} elsif ($type2->{enum}) {
+						$alias = $type2->{name};
+						$category = 'enum';
+						$size = 4;
+					} elsif ($type2->{class}) {
+						$alias = $type2->{name};
+						$size = $type2->{class}->{size};
+						$category = 'class';
+						$align = $type2->{class}->{align};
+					} elsif ($type->{ptr}) {
+						$size = 4;
+						$category = 'ptr';
+						$align = 4;
+					} elsif ($type->{fptr}) {
+						$size = 4;
+						$category = 'ptr';
+						$align = 4;
+					}
+				}
+			}
+		}
+		if ($size>0) {
+			# data member declared
+			# check for array
+			if ($currdecl[0] eq '[') {
+				shift @currdecl;
+				$array = get_constant_expr($scope, \@currdecl, $line);
+				if ($array<=0) {
+					die "Bad array size at line $$line\n";
+				}
+				if ($currdecl[0] ne ']') {
+					die "Syntax error at line $$line\n";
+				}
+			}
+			my $members = $scope->{members};
+			my $typedefs = $scope->{typedefs};
+			if ($align==0) {
+				$align = $size;
+			}
+			my $am = $align-1;
+			unless ($typedef) {
+				my $al = $curr_offset & $am;
+				if ($align==8 and $al!=0) {
+					die "Bad alignment of 64-bit data $ident at line $$line\n";
+				}
+				$curr_offset += ($align-$al) if ($al!=0);
+			}
+			if ($array>0) {
+				$size = ($size + $am) &~ $am;
+				if ($typedef) {
+					push @$typedefs, {name=>$ident, category=>$category, alias=>$alias, size=>$size*$array, spacing=>$size, array=>$array};
+				} else {
+					push @$members, {name=>$ident, size=>$size*$array, offset=>$curr_offset, spacing=>$size};
+				}
+				$size *= $array;
+			} else {
+				if ($typedef) {
+					push @$typedefs, {name=>$ident, category=>$category, alias=>$alias, size=>$size};
+				} else {
+					push @$members, {name=>$ident, size=>$size, offset=>$curr_offset};
+				}
+			}
+			unless ($typedef) {
+				$curr_offset += $size;
+				if ($align > $overall_align) {
+					$overall_align = $align;
+				}
+			}
+		}
+	}
+	if ($scope->{scope}) {
+		if ($state==-2) {
+			die "Missing ; at end of file\n";
+		}
+		if (!$scope->{complete}) {
+			die "Unexpected end of file at line $$line\n";
+		}
+		my $total_size = ($curr_offset + $overall_align - 1) &~ ($overall_align - 1);
+		$scope->{size} = $total_size;
+		$scope->{align} = $overall_align;
+	}
+}
+
+sub get_operand($$$) {
+	my ($scope,$tokens,$line) = @_;
+	my $t = get_token($tokens,$line);
+	if ($t eq '-') {
+		my $x = get_operand($scope,$tokens,$line);
+		return -$x;
+	} elsif ($t eq '+') {
+		my $x = get_operand($scope,$tokens,$line);
+		return $x;
+	} elsif ($t eq '~') {
+		my $x = get_operand($scope,$tokens,$line);
+		return ~$x;
+	} elsif ($t eq '!') {
+		my $x = get_operand($scope,$tokens,$line);
+		return $x ? 0 : 1;
+	} elsif ($t eq '(') {
+		my $x = get_constant_expr($scope,$tokens,$line);
+		my $t = get_token($tokens,$line);
+		if ($t ne ')') {
+			die "Missing ) at line $$line\n";
+		}
+		return $x;
+	} elsif ($t eq "sizeof") {
+		my $ident = get_token($tokens,$line);
+		if ($ident eq '(') {
+			$ident = get_token($tokens,$line);
+			my $cb = get_token($tokens,$line);
+			if ($cb ne ')') {
+				die "Bad sizeof() syntax at line $$line\n";
+			}
+		}
+		$ident = look_through_macros($ident);
+		if ($ident !~ /^\w+$/) {
+			die "Bad sizeof() syntax at line $$line\n";
+		}
+		my $type = lookup_type($scope, $ident);
+		if (!defined $type) {
+			die "Unrecognised type $ident at line $$line\n";
+		}
+		if ($type->{basic}) {
+			return $type->{size};
+		} elsif ($type->{enum}) {
+			return 4;
+		} elsif ($type->{ptr}) {
+			return 4;
+		} elsif ($type->{fptr}) {
+			return 4;
+		}
+		my $al = $type->{class}->{align};
+		my $sz = $type->{class}->{size};
+		return ($sz+$al-1)&~($al-1);
+	}
+	$t = look_through_macros($t);
+	if ($t =~ /^0x[0-9a-f]+/i) {
+		return oct($t);
+	} elsif ($t =~ /^\d/) {
+		return $t;
+	} elsif ($t =~ /^\w+$/) {
+		my $x = lookup_value($scope,$t);
+		die "Unrecognised identifier '$t' at line $$line\n" unless defined($x);
+		return $x;
+	} else {
+		die "Syntax error at line $$line\n";
+	}
+}
+
+sub look_through_macros($) {
+	my ($ident) = @_;
+	while ($ident and $macros{$ident}) {
+		$ident = $macros{$ident};
+	}
+	return $ident;
+}
+
+sub lookup_value($$) {
+	my ($scope,$ident) = @_;
+	while ($scope) {
+		my $vl = $scope->{values};
+		if (defined($vl->{$ident})) {
+			return $vl->{$ident}->{value};
+		}
+		$scope = $scope->{scope};
+	}
+	return undef();
+}
+
+sub lookup_type($$) {
+	my ($scope,$ident) = @_;
+	if ($basictypes{$ident}) {
+		return {scope=>$scope, basic=>1, name=>$ident, size=>$basictypes{$ident} };
+	}
+	while ($scope) {
+		if ($basictypes{$ident}) {
+			return {scope=>$scope, basic=>1, name=>$ident, size=>$basictypes{$ident} };
+		}
+		my $el = $scope->{enums};
+		my $cl = $scope->{classes};
+		my $td = $scope->{typedefs};
+		if (grep {$_ eq $ident} @$el) {
+			return {scope=>$scope, enum=>1, name=>$ident, size=>4 };
+		}
+		my @match_class = (grep {$_->{name} eq $ident} @$cl);
+		if (scalar(@match_class)) {
+			return {scope=>$scope, class=>$match_class[0]};
+		}
+		my @match_td = (grep {$_->{name} eq $ident} @$td);
+		if (scalar(@match_td)) {
+			my $tdr = $match_td[0];
+			my $cat = $tdr->{category};
+			if ($cat eq 'basic' or $cat eq 'enum' or $cat eq 'class') {
+				$ident = $tdr->{alias};
+				next;
+			} else {
+				return { scope=>$scope, $cat=>1, $size=>$tdr->{size} };
+			}
+		}
+		$scope = $scope->{scope};
+	}
+	return undef();
+}
+
+sub get_mult_expr($$$) {
+	my ($scope,$tokens,$line) = @_;
+	my $x = get_operand($scope,$tokens,$line);
+	my $t;
+	for (;;) {
+		$t = get_token($tokens,$line);
+		if ($t eq '*') {
+			my $y = get_operand($scope,$tokens,$line);
+			$x = $x * $y;
+		} elsif ($t eq '/') {
+			my $y = get_operand($scope,$tokens,$line);
+			$x = int($x / $y);
+		} elsif ($t eq '%') {
+			my $y = get_operand($scope,$tokens,$line);
+			$x = int($x % $y);
+		} else {
+			last;
+		}
+	}
+	unshift @$tokens, $t;
+	return $x;
+}
+
+sub get_add_expr($$$) {
+	my ($scope,$tokens,$line) = @_;
+	my $x = get_mult_expr($scope,$tokens,$line);
+	my $t;
+	for (;;) {
+		$t = get_token($tokens,$line);
+		if ($t eq '+') {
+			my $y = get_mult_expr($scope,$tokens,$line);
+			$x = $x + $y;
+		} elsif ($t eq '-') {
+			my $y = get_mult_expr($scope,$tokens,$line);
+			$x = $x - $y;
+		} else {
+			last;
+		}
+	}
+	unshift @$tokens, $t;
+	return $x;
+}
+
+sub get_shift_expr($$$) {
+	my ($scope,$tokens,$line) = @_;
+	my $x = get_add_expr($scope,$tokens,$line);
+	my $t, $t2;
+	for (;;) {
+		$t = get_token($tokens,$line);
+		if ($t eq '<' or $t eq '>') {
+			$t2 = get_token($tokens,$line);
+			if ($t2 ne $t) {
+				unshift @$tokens, $t2;
+				last;
+			}
+		}
+		if ($t eq '<') {
+			my $y = get_add_expr($scope,$tokens,$line);
+			$x = $x << $y;
+		} elsif ($t eq '>') {
+			my $y = get_add_expr($scope,$tokens,$line);
+			$x = $x >> $y;
+		} else {
+			last;
+		}
+	}
+	unshift @$tokens, $t;
+	return $x;
+}
+
+sub get_and_expr($$$) {
+	my ($scope,$tokens,$line) = @_;
+	my $x = get_shift_expr($scope,$tokens,$line);
+	my $t;
+	for (;;) {
+		$t = get_token($tokens,$line);
+		if ($t eq '&') {
+			my $y = get_shift_expr($scope,$tokens,$line);
+			$x = $x & $y;
+		} else {
+			last;
+		}
+	}
+	unshift @$tokens, $t;
+	return $x;
+}
+
+sub get_xor_expr($$$) {
+	my ($scope,$tokens,$line) = @_;
+	my $x = get_and_expr($scope,$tokens,$line);
+	my $t;
+	for (;;) {
+		$t = get_token($tokens,$line);
+		if ($t eq '^') {
+			my $y = get_and_expr($scope,$tokens,$line);
+			$x = $x ^ $y;
+		} else {
+			last;
+		}
+	}
+	unshift @$tokens, $t;
+	return $x;
+}
+
+sub get_ior_expr($$$) {
+	my ($scope,$tokens,$line) = @_;
+	my $x = get_xor_expr($scope,$tokens,$line);
+	my $t;
+	for (;;) {
+		$t = get_token($tokens,$line);
+		if ($t eq '|') {
+			my $y = get_xor_expr($scope,$tokens,$line);
+			$x = $x | $y;
+		} else {
+			last;
+		}
+	}
+	unshift @$tokens, $t;
+	return $x;
+}
+
+sub get_constant_expr($$$) {
+	my ($scope,$tokens,$line) = @_;
+	my $x = get_ior_expr($scope,$tokens,$line);
+	return $x;
+}
+
+sub parse_enum($$$$) {
+	my ($scope,$tokens,$line,$enum_name) = @_;
+	my $vl = $scope->{values};
+	my $x = 0;
+	for (;;) {
+		my $t = get_token($tokens,$line);
+		last if ($t eq '}');
+		if (!defined($t)) {
+			die "Unexpected end of file at line $$line\n";
+		}
+		if ($t !~ /^\w+$/) {
+			die "Syntax error at line $$line\n";
+		}
+		if (defined($vl->{$t})) {
+			die "Duplicate identifier at line $$line\n";
+		}
+		my $t2 = get_token($tokens,$line);
+		if ($t2 eq ',') {
+			$vl->{$t} = {type=>$enum_name, size=>4, value=>$x, enum=>1};
+			++$x;
+		} elsif ($t2 eq '}') {
+			$vl->{$t} = {type=>$enum_name, size=>4, value=>$x, enum=>1};
+			++$x;
+			last;
+		} elsif ($t2 eq '=') {
+			$x = get_constant_expr($scope, $tokens, $line);
+			$vl->{$t} = {type=>$enum_name, size=>4, value=>$x, enum=>1};
+			++$x;
+			$t2 = get_token($tokens,$line);
+			last if ($t2 eq '}');
+			next if ($t2 eq ',');
+			die "Syntax error at line $$line\n";
+		} else {
+			unshift @$tokens, $t2;
+		}
+	}
+	my $t = get_token($tokens,$line);
+	if ($t ne ';') {
+		die "Missing ; at line $$line\n";
+	}
+}
+
+sub parse_decl_def($$$) {
+	my ($scope,$tokens,$line) = @_;
+	my $level=0;
+	my @decl;
+	while ( scalar(@$tokens) ) {
+		my $t = get_token($tokens, $line);
+		if ($t eq ';' and $level==0) {
+			return @decl;
+		}
+		push @decl, $t;
+		if ($t eq '{') {
+			++$level;
+		}
+		if ($t eq '}') {
+			if ($level==0) {
+				die "Syntax error at line $$line\n";
+			}
+			if (--$level==0) {
+				return ();	# end of function definition reached
+			}
+		}
+	}
+	die "Unexpected end of file at line $$line\n";
+}
+
+sub dump_scope($) {
+	my ($scope) = @_;
+	my $el = $scope->{enums};
+	my $cl = $scope->{classes};
+	my $vl = $scope->{values};
+	print "SCOPE: $scope->{name}\n";
+	if (scalar(@$el)) {
+		print "\tenums:\n";
+		foreach (@$el) {
+			print "\t\t$_\n";
+		}
+	}
+	if (scalar(keys(%$vl))) {
+		print "\tvalues:\n";
+		foreach $vname (keys(%$vl)) {
+			my $v = $vl->{$vname};
+			my $x = $v->{value};
+			my $t = $v->{type};
+			my $sz = $v->{size};
+			if ($v->{enum}) {
+				print "\t\t$vname\=$x (enum $t) size=$sz\n";
+			} else {
+				print "\t\t$vname\=$x (type $t) size=$sz\n";
+			}
+		}
+	}
+	if ($scope->{scope}) {
+		my $members = $scope->{members};
+		foreach (@$members) {
+			my $n = $_->{name};
+			my $sz = $_->{size};
+			my $off = $_->{offset};
+			my $spc = $_->{spacing};
+			if (defined $spc) {
+				print "\t$n\[\]\: spacing $spc size $sz offset $off\n";
+			} else {
+				print "\t$n\: size $sz offset $off\n";
+			}
+		}
+		print "\tOverall size : $scope->{size}\n";
+		print "\tOverall align: $scope->{align}\n";
+	}
+	foreach $s (@$cl) {
+		dump_scope($s);
+	}
+}
+
+sub output_scope($$) {
+	my ($scope, $out) = @_;
+	my $el = $scope->{enums};
+	my $cl = $scope->{classes};
+	my $vl = $scope->{values};
+	my $sn = scope_full_name($scope);
+	my $sp = ($scope->{file}) ? "" : $sn."_";
+	if ($scope->{file}) {
+		push @$out, "";
+		push @$out, &$comment_sub("FILE SCOPE");
+		push @$out, "";
+	} else {
+		push @$out, "";
+		push @$out, &$comment_sub($scope->{specifier}." ".$scope->{name});
+		push @$out, "";
+	}
+	if (scalar(keys(%$vl))) {
+		foreach $vname (keys(%$vl)) {
+			my $v = $vl->{$vname};
+			my $x = $v->{value};
+			my $t = $v->{type};
+			my $sz = $v->{size};
+			push @$out, &$format_sub($sp.$vname, $x);
+		}
+	}
+	if ($scope->{scope}) {
+		my $members = $scope->{members};
+		foreach (@$members) {
+			my $n = $_->{name};
+			my $sz = $_->{size};
+			my $off = $_->{offset};
+			my $spc = $_->{spacing};
+			push @$out, &$format_sub($sp.$n, $off);
+			if (defined $spc) {
+				push @$out, &$format_sub($sp.$n."_spc", $spc);
+			}
+		}
+		push @$out, &$format_sub($sp."sz", $scope->{size});
+	}
+	foreach $s (@$cl) {
+		if ($s->{complete})	{
+			output_scope($s, $out);
+		}
+	}
+}
+
+sub scope_full_name($) {
+	my ($scope) = @_;
+	if ($scope->{file}) {
+		return "";
+	}
+	my $parent = $scope->{scope};
+	if ($parent->{file}) {
+		return $scope->{name};
+	}
+	return scope_full_name($parent)."_".$scope->{name};
+}
+
+sub pad($$) {
+	my ($lineref, $n) = @_;
+	my $l = length ($$lineref);
+	if ($l < $n) {
+		$$lineref .= ' 'x($n-$l);
+	}
+}
+
+#
+# Subroutines for ARMASM compatible output
+#
+sub armasm_format($$;$) {
+	my ($name, $value, $comment) = @_;
+	my $r = "$name ";
+	pad(\$r, 40);
+	$r .= sprintf("EQU 0x%08x", $value & 0xFFFFFFFF);
+	if ($comment and $comment!~/^\s*$/) {
+		$r .= " ";
+		pad(\$r, 60);
+		$r .= "; $comment";
+	}
+	return $r;
+}
+
+sub armasm_comment($) {
+	my ($comment) = @_;
+	return "; $comment";
+}
+
+sub armasm_end() {
+	return "\n\tEND\n";
+}
+
+#
+# Subroutines for GNU AS compatible output
+#
+sub as_format($$;$) {
+	my ($name, $value, $comment) = @_;
+	my $r = "    .equ $name, ";
+	pad(\$r, 50);
+	$r .= sprintf("0x%08x", $value & 0xFFFFFFFF);
+	if ($comment and $comment!~/^\s*$/) {
+		$r .= " ";
+		pad(\$r, 65);
+		$r .= "/* $comment */";
+	}
+	return $r;
+}
+
+sub as_comment($) {
+	my ($comment) = @_;
+	if (length ($comment) > 0) {
+		return "/* $comment */";
+	} else {
+		return "";
+	}
+}
+
+sub as_end() {
+	return "";
+}
+
+#
+# Subroutines for Turbo Assembler compatible output
+#
+sub tasm_format($$;$) {
+	my ($name, $value, $comment) = @_;
+	my $r = "$name ";
+	pad(\$r, 40);
+	$r .= sprintf("EQU 0%08xh", $value & 0xFFFFFFFF);
+	if ($comment and $comment!~/^\s*$/) {
+		$r .= " ";
+		pad(\$r, 60);
+		$r .= "; $comment";
+	}
+	return $r;
+}
+
+sub tasm_comment($) {
+	my ($comment) = @_;
+	return "; $comment";
+}
+
+sub tasm_end() {
+	return "";
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/e32util/listfeaturevariants.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,48 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# list A.X.aaa for all X (32 chars) when given A.aaa
+# 
+#
+
+use strict;
+
+my $source = shift;
+
+# list invariant
+print "$source\n" if (-f $source);
+
+# now think about variants
+
+use File::Basename;
+my $srcDir = dirname($source);
+my $srcRoot = basename($source);
+my $srcExt = "";
+
+if ($srcRoot =~ /^(.+)\.([^\.]+)$/)
+{
+	$srcRoot = $1;
+	$srcExt = $2;
+}
+
+opendir(DIR, $srcDir) or die("ERROR: cannot read directory $srcDir\n");
+
+# list all variants
+while (my $file = readdir(DIR))
+{
+	print "$srcDir\\$file\n" if ($file =~ /^$srcRoot\.(\w{32})\.$srcExt$/i);
+}
+
+exit 1 if (!closedir(DIR));
+exit 0;
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/e32util/makedef.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,549 @@
+# Copyright (c) 1998-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# all variables called *Path* are set up to end with a backslash
+# all variables called *Path or *File are stored as absolute (file)paths
+# all variables called UpPath* are stored as relative paths
+# 
+#
+
+use strict   ;
+
+use FindBin;		# for FindBin::Bin
+use Getopt::Long;
+
+my $PerlBinPath;	# fully qualified pathname of the directory containing this script
+my $EntryPoint;         
+my $InternalEntryPoint;
+
+# establish the path to the Perl binaries
+BEGIN {
+	require 5.005_03;				# check user has a version of perl that will cope
+	$PerlBinPath = $FindBin::Bin;	# X:/epoc32/tools
+
+	if ($^O eq "MSWin32")
+		{	
+		$PerlBinPath =~ s/\//\\/g;		# X:\epoc32\tools
+		}
+}
+use lib $PerlBinPath;
+
+use Defutl;
+use E32tpver;
+use Pathutl;
+use File::Copy;
+
+my %Options;	# command line option information
+
+my $NamedSymLkup = 0;			# This flag is used to enable named lookup on emulator
+my $IgnoreUnfrozenExports = 0;	# This flag is used to ignore the 'unfrozen exports' warnings. This is 
+								# required for STDEXEs which export symbols just to enable 'named lookup'
+								# from within the STDEXE (via 'dlsym') and are never exposed outside (via def files or
+								# import libraries.
+my $ExportEntrypointE32Dll = 0;	 # Workaround: To export entry point _E32DLL for target type STDDLL
+
+# THE MAIN PROGRAM SECTION
+##########################
+
+{
+
+	my $INFILE;
+	my $FRZFILE;
+	my $OUTFILE;
+	my @ObjFiles;
+
+	# process the command-line
+	unless (GetOptions(\%Options, '1=s', '2=s', 'deffile=s', 'frzfile=s', 'inffile=s', 'overwrite', 'absent=s', 'ignore_unfrozen_noncallable', 'SystemTargetType', 'sym_name_lkup', 'ignore_unfrozen_exports','export_entrypoint_E32Dll')) {
+		exit 1;
+	}
+	unless (@ARGV==1) {
+		&Usage;
+	}
+
+#	check the flags
+
+	if (($Options{deffile} and $Options{inffile}) or (not ($Options{deffile} or $Options{inffile}))) {
+		die "MAKEDEF ERROR: Must specify either -Deffile [file] or -Inf [file]\n";
+	}
+	if ($Options{2} && !$Options{1}) {
+		die "MAKEDEF ERROR: Can't specify second export name and not first export name\n";
+	}
+
+#	process the flags
+	if ($Options{deffile}) {
+		$INFILE=$Options{deffile};
+		unless (-e $INFILE) {
+			die "MAKEDEF ERROR: $INFILE: Deffile not found\n";
+		}
+	}
+	else {
+		$INFILE=$Options{inffile};
+		unless (-e $INFILE) {
+			die "MAKEDEF ERROR: $INFILE: Inffile not found\n";
+		}
+	}
+	if ($Options{frzfile}) {
+		$FRZFILE=$Options{frzfile};
+#		check the frozen .DEF file exists
+		unless (-e $FRZFILE) {
+			die "MAKEDEF ERROR: $FRZFILE: Frzfile not found\n";
+		}
+	}
+	$OUTFILE=pop @ARGV;
+
+
+	$NamedSymLkup = $Options{sym_name_lkup};
+	$IgnoreUnfrozenExports = $Options{ignore_unfrozen_exports};
+	$ExportEntrypointE32Dll = $Options{export_entrypoint_E32Dll};	# Workaround: To export entry point _E32DLL for target type STDDLL
+
+#	Read the Frozen .DEF file if specified
+	my @FrzDataStruct;
+	if ($FRZFILE) {
+		eval { &Def_ReadFileL(\@FrzDataStruct, $FRZFILE); };
+		die $@ if $@;
+		if ($Options{1}) {
+#			Check that frozen def file matches the -1 and -2 arguments given, if any
+			my $export1="";
+			my $export2="";
+			foreach my $FrzRef (@FrzDataStruct) {
+				next unless $$FrzRef{Name};		# ignore lines not containing an export
+				if ($$FrzRef{Ordinal} == 1) {
+					$export1 = $$FrzRef{Name};
+					next;
+				}
+				if ($$FrzRef{Ordinal} == 2) {
+					$export2 = $$FrzRef{Name};
+					next;
+				}
+				if ($Options{1} && ($Options{1} ne $export1)) {
+					die "MAKEDEF ERROR: $FRZFILE: Frzfile ordinal 1 does not match command line\n";
+				}
+				if ($Options{2} && ($Options{2} ne $export2)) {
+					die "MAKEDEF ERROR: $FRZFILE: Frzfile ordinal 2 does not match command line\n";
+				}
+			}
+		}
+	}
+	elsif ($Options{1}) {
+#		create an export structure for the names passed on the command line
+		push @FrzDataStruct, {
+			Name=>$Options{1},
+			ExportName=>$Options{1},
+			Ordinal=>1
+		};
+		if ($Options{2}) {
+			push @FrzDataStruct, {
+				Name=>$Options{2},
+				ExportName=>$Options{2},
+				Ordinal=>2
+			};
+		}
+	}
+
+#	Read the Input .DEF file
+	my @InDataStruct;
+	if ($Options{deffile}) {
+		eval { &Def_ReadFileL(\@InDataStruct, $INFILE); };
+	}
+	else {
+		eval { &ReadInfFileL(\@InDataStruct, $INFILE); };
+	}
+	die $@ if $@;
+
+#	Compare the frozen .DEF data with the input .DEF or export info file data
+	my (@NewDataStruct, @MissingDataStruct, @MatchedDataStruct);
+	eval { &CompareFrzInL (\@NewDataStruct, \@MissingDataStruct, \@MatchedDataStruct, \@FrzDataStruct, \@InDataStruct); };
+	die $@ if $@;
+
+	# MAKEDEF should generate a warning if the def file has no exports (old or new)
+	# and the associated MMP 'targettype' is not a System Target type.
+	print "MAKEDEF WARNING: $OUTFILE has no EXPORTS\n" unless (@MatchedDataStruct || @NewDataStruct || $Options{SystemTargetType});
+
+#	Create the output .DEF file
+	eval { &CreateDefFileL(\@NewDataStruct, \@MatchedDataStruct, $OUTFILE, $FRZFILE); };
+	die $@ if $@;
+
+#	report missing frozen export errors
+	if (@MissingDataStruct) {
+		my @Errors;
+		my $Num=@MissingDataStruct;
+		my $Ref;
+		if ($FRZFILE) {
+			push @Errors, "MAKEDEF ERROR: $Num Frozen Export(s) missing from object files (POSSIBLE COMPATIBILITY BREAK):\n";
+			foreach $Ref (@MissingDataStruct) {
+				push @Errors, "  $FRZFILE($$Ref{LineNum}) : $$Ref{Name} \@$$Ref{Ordinal}\n";
+			}
+		}
+		else {
+			push @Errors, "MAKEDEF ERROR: command-line: $Num Frozen Export(s) missing from object files (POSSIBLE COMPATIBILITY BREAK):\n";
+			foreach $Ref (@MissingDataStruct) {
+				push @Errors, "  $$Ref{Name} \@$$Ref{Ordinal}\n";
+			}
+		}
+		die "\n", @Errors;
+	}
+	elsif ($Options{overwrite} && -w $FRZFILE) #sag
+		{
+		print "Copying $OUTFILE to $FRZFILE\n";
+		rename $FRZFILE, "$FRZFILE.bak";
+		copy($OUTFILE, $FRZFILE);
+		}
+
+	exit 0;
+}
+
+#######################################################################
+# SUBROUTINES
+#######################################################################
+
+sub Usage () {
+
+	print(
+		"\n",
+		"MAKEDEF - .DEF file generator (Build ",&E32tpver,")\n",
+		"\n",
+		"MAKEDEF {options} [Output .DEF file]\n",
+		"\n",
+		"options:   (case-insensitive)\n",
+		"  -Deffile [Input .DEF file]\n",
+		"  -Inffile [Input export information file]\n",
+		"  -Frzfile [Frozen .DEF file]\n",
+		"  -1 [first export name] {-2 [second export name]}\n",
+		"  -Overwrite\n",
+		"  -Absent [symbol to use for absent exports]\n",
+		"  -ignore_unfrozen_noncallable\n",
+		"  -SystemTargetType\n",
+		"  -sym_name_lkup [Enable symbol lookup by name]\n",
+		"  -ignore_unfrozen_exports \n",
+		"\n",
+		"Either specify -Deffile or -Inffile, and\n",
+		"either -Frzfile or -1 {-2} if required.\n"
+	);
+	exit 1;
+}
+
+sub ReadInfFileL ($$$) {
+	my ($DataStructRef, $FILE)=@_;
+
+#	open export information file for reading
+	open (FILE, "<$FILE") or die "could not open $FILE: $!";
+
+#	read the export info. file, and create dummy frozen .DEF file text
+	my $LineNum=0;
+	my $Ordinal=0;
+	my $Comment='';
+	my $Name='';
+	my $InfType=0;	# dumpbin output
+	my %exports;	# MWLD workaround - record mangled names in case we don't see the demangled ones
+	my $Line;
+	while ($Line=<FILE>) {
+	        my $Data=0;
+			my $SymbolSize=0;
+		$LineNum++;
+		if ($InfType == 0) {
+			if ($Line =~ /\*\*\* ARCHIVE SYMBOL TABLE.* \*\*\*/o) {
+				$InfType=1;	# mwld disassembly output
+				next;
+			}
+			if ($Line =~ /^\s+(\?\S+)(\s+\((.*)\))?$/o) {
+#                   ??0TAgnAlarmDefaults@@QAE@XZ (public: __thiscall TAgnAlarmDefaults::TAgnAlarmDefaults(void))
+				$Name=$1;
+				$Comment=$3;
+			} 
+			elsif ($Line =~ /^\s+_(\S+)(\s+\((.*)\))?$/o) {
+# frozen ordinals like "UserNoLongerSupported01" seem to inherit a leading underscore in the dumpbin output
+				$Name=$1;
+				$Comment=$3;
+			}
+			elsif ($Line =~ /^\s+_(\S+) DATA (\d+)(\s+\((.*)\))?$/o) {
+#				Mark the data symbols and retain their sizes
+				$Name=$1;
+				$Data=1;
+				$SymbolSize=$2;
+				$Comment=$4;
+			}
+			else {
+				next;
+			}
+		}
+		else {
+			# The Windows CW linker produces .inf files with a 'something' unmangled comment at the end, the Linux CW linker doesn't
+			if ($Line =~ /^\s*\d+\s+\(.+\)\s+__imp_((.)(\S+))(\s+'__declspec\(dllimport\)\s+(.*)')?$/o) {
+					if ($2 eq "_") {
+							$Name = $3;		# C symbol, so remove leading underscore
+							$Comment = $5 if ($4);	# name isn't mangled anyway
+					} else {
+							$Name = $1;		# C++ mangled name
+							$Comment = $5 if ($4);	# can't unmangle names...
+					}
+
+					# One side-effect of ignoring comments if they're not present is that Windows entry points need to be
+					# specifically ignored.  Previously they were ignored by virture of the fact they had no comment.
+					next if ($Name eq "_E32Dll" || $Name eq "_E32Startup");
+
+					$Comment = $4 ? $5 : $Name;
+					
+					# need to save both the line number and
+					# comment
+					my %entry;
+					$entry{'lineNum'} = $LineNum;
+					$entry{'comment'} = $Comment;
+					$exports{$Name}=\%entry;
+					next;
+			}
+			if ($Line =~ /\*\*\* Unmangled Symbols \*\*\*/o) {
+				# Currently for Linux "Unmangled Symbols" section is blank
+				<FILE>; 
+				$Line = <FILE>; 
+				$LineNum+=2;
+				if ($^O eq "MSWin32") {
+					if ($Line !~ /^\s*\d+:\s+(\S+)$/o) {
+						print STDERR "MAKEDEF WARNING: unknown inf file format\n";
+						next;
+					}
+				}
+				$Name = $1;
+# Workaround: if MWLD can't demangle the name, we will see only the __imp_ version.
+				if ($Name =~ /^__imp_(\S+)$/o) {
+					$Name = $1;
+				}
+				$Line = <FILE>; 
+				$LineNum++;
+				next if ($Line !~ /^\s+(.+)$/o);
+				$Comment = $1;
+			}
+			elsif ($Line =~ /^0x\S{8}\s+__imp__(\S+)$/o) {
+				$Name = $1;	# leading underscore already removed
+				$Comment = '';	# a C symbol, and therefore not mangled
+			}
+			else {
+				next;
+			}
+		}
+# Check for WINS entrypoint symbols
+		if ($Name eq "_E32Dll" || $Name eq "_E32Startup") {
+			$EntryPoint = $Name;
+			# when mwld resolves an exported symbol S coming from
+			# the def file, it looks both for S() and _S() in
+			# every object file but only for _S() in static
+			# libraries.
+			#
+			# As a consequence, we need to distinguish the
+			# internal entry point name from the external one.
+			$InternalEntryPoint = "_$Name" if ($InfType != 0);
+			my $entry = $exports{$Name};
+			$entry->{'lineNum'} = 0; # indicates processed name
+			next;
+		}
+		$Ordinal++;
+		$Comment='' if (!defined $Comment);
+		push @$DataStructRef, {
+			Ordinal=>$Ordinal,
+			Name=>$Name,
+			Data=>$Data,
+			Size=>$SymbolSize,
+			ExportName=>$Name,
+			Comment=>$Comment,
+			LineNum=>$LineNum
+		};
+		my $entry = $exports{$Name};
+		$entry->{'lineNum'} = 0; # indicates processed name
+	}
+	foreach $Name (keys %exports) {
+	    	my $entry = $exports{$Name};
+		$LineNum = $entry->{'lineNum'};
+		if ($LineNum > 0) {
+			$Ordinal++;
+			push @$DataStructRef, {
+				Ordinal=>$Ordinal,
+				Name=>$Name,
+				ExportName=>$Name,
+				Comment=> $entry->{'comment'},
+				LineNum=>$LineNum
+			};
+		}
+	}
+}
+
+sub CompareFrzInL ($$$$$) {
+	my ($NewStructRef, $MissingStructRef, $MatchedStructRef, $FrzStructRef, $InStructRef)=@_;
+	my $AbsentSubst = $Options{absent};
+	my $IgnoreNoncallable = $Options{ignore_unfrozen_noncallable};
+	
+#	compare the input export data with the frozen data
+
+#	this function trashes the frozen .DEF data structure and the new .DEF data structure
+
+#	nullify non-export statements in the structures
+	foreach (@$FrzStructRef,@$InStructRef) {
+		next if $$_{Name};
+		undef $_;
+	}
+
+	my $LastOrdinal=0;
+
+	my $FrzRef;
+	my $InRef;
+	FRZLOOP: foreach $FrzRef (@$FrzStructRef) {
+		next unless $$FrzRef{Name};		# ignore lines in the .DEF file not containing an export
+		if ($LastOrdinal<$$FrzRef{Ordinal}) {
+			$LastOrdinal=$$FrzRef{Ordinal};
+		}
+		foreach $InRef (@$InStructRef) {
+			next unless defined $InRef; # ignore nullified entries in the temporary array
+#			does the function name match?
+			if ($$InRef{Name} eq $$FrzRef{Name}) {
+#				give the generated export the same number as the corresponding frozen one
+				$$InRef{Ordinal}=$$FrzRef{Ordinal};
+				$$InRef{Data}=$$FrzRef{Data};
+				$$InRef{Size}=$$FrzRef{Size};
+#				if the export is marked as absent, redirect it appropriately
+				if ($$FrzRef{Absent}) {
+					if ($AbsentSubst) {
+						$$InRef{Name} = $AbsentSubst;
+						$$InRef{ExportName} = sprintf("\"_._.absent_export_%d\"", $$InRef{Ordinal});
+					}
+				}
+				push @$MatchedStructRef, $InRef;
+				undef $InRef;
+				next FRZLOOP;
+			}
+		}
+#		these frozen exports haven't been found in the object files
+#		first check for ABSENT declarations
+		if ($AbsentSubst and $$FrzRef{Absent}) {
+			$$FrzRef{Name} = $AbsentSubst;
+			$$FrzRef{ExportName} = sprintf("\"_._.absent_export_%d\"", $$FrzRef{Ordinal});
+			push @$MatchedStructRef, $FrzRef;
+			next FRZLOOP;
+		}
+
+#		No - it's really missing
+		push @$MissingStructRef, $FrzRef;
+#		put a comment in the generated .DEF file to that effect
+		$$FrzRef{Missing}=1;
+		push @$MatchedStructRef, $FrzRef;
+	}
+
+#	all the exports left in the new .DEF file aren't frozen - give them the right ordinals
+	foreach $InRef (@$InStructRef) {
+		next unless defined $InRef; # ignore nullified entries
+		if ($$InRef{Name} =~ /^_ZTV|_ZTI/) {
+			# EABI non-callable exports
+			next if ($IgnoreNoncallable);	
+		}
+		$LastOrdinal++;
+		$$InRef{Ordinal}=$LastOrdinal;
+		push @$NewStructRef, $InRef;
+	}
+}
+
+sub CreateDefFileL ($$$$) {
+#	creates a new .DEF file
+	my ($NewStructRef, $MatchedStructRef, $FILE, $FRZFILE)=@_;
+
+	my @Text=("EXPORTS\n");
+	my $LineNum=1;
+
+
+	my $InRef;
+	foreach $InRef (@$MatchedStructRef) {
+		my $Comment='';
+		if ($$InRef{Comment}) {
+			$Comment=" ; $$InRef{Comment}";
+		}
+		if ($$InRef{Missing}) {
+			push @Text, '; MISSING:';
+		}
+		my $Data = "";
+		if( defined $$InRef{Data} && $$InRef{Data} == 1) {
+		$Data = " DATA $$InRef{Size}" ;
+		}
+		my $r3unused = $$InRef{R3Unused} ? " R3UNUSED" : "";
+
+#		A def file entry with the keyword 'NONAME' indicates the MW linker that a named-lookup is not enabled. 
+#		Note that although it may seem, but named lookup is either enabled or disabled on a per-binary basis and not
+#		per-symbol.
+		my $noname = $NamedSymLkup ? "": " NONAME";
+		if ($$InRef{ExportName} and ($$InRef{ExportName} ne $$InRef{Name})) {
+			push @Text, "\t$$InRef{ExportName}=$$InRef{Name} \@ $$InRef{Ordinal} $noname$Data$r3unused$Comment\n";
+		} else {
+			push @Text, "\t$$InRef{Name} \@ $$InRef{Ordinal} $noname$Data$r3unused$Comment\n";
+		}
+		$LineNum++;
+		next;
+	}
+	if (@$NewStructRef) {
+
+#		warn about unfrozen exports and add them to the end of the generated .DEF file
+		my $Num=@$NewStructRef;
+		my @Warnings;
+
+		if(!$IgnoreUnfrozenExports) {
+			my $warning = "MAKEDEF WARNING: $Num export(s) not yet Frozen";
+
+			if ($FRZFILE)
+				{
+				$warning .= " in $FRZFILE";
+				}
+
+			$warning .= ":\n";
+
+			push @Warnings, $warning;
+		}
+
+		push @Text, "; NEW:\n";
+		$LineNum++;
+		foreach $InRef (@$NewStructRef) {
+			my $Comment='';
+			if ($$InRef{Comment}) {
+				$Comment=" ; $$InRef{Comment}";
+			}
+			my $Data = "";
+			if(defined $$InRef{Data} && $$InRef{Data} == 1){
+			$Data = " DATA $$InRef{Size}";
+			}
+			my $r3unused = $$InRef{R3Unused} ? " R3UNUSED" : "";
+			my $noname = $NamedSymLkup ? "": " NONAME";
+			if ($$InRef{ExportName} and ($$InRef{ExportName} ne $$InRef{Name})) {
+				push @Text, "\t$$InRef{ExportName}=$$InRef{Name} \@ $$InRef{Ordinal} $noname$Data$r3unused$Comment\n";
+			} else {
+				push @Text, "\t$$InRef{Name} \@ $$InRef{Ordinal} $noname$Data$r3unused$Comment\n";
+			}
+			$LineNum++;
+			if(!$IgnoreUnfrozenExports) {
+				push @Warnings, "  $FILE($LineNum) : $$InRef{Name} \@$$InRef{Ordinal}\n";
+			}
+			next;
+		}
+		print @Warnings;
+	}
+	if ($EntryPoint) {
+		push @Text, "\t$EntryPoint";
+		push @Text, "=$InternalEntryPoint" if ($InternalEntryPoint);
+		push @Text, "\t; Entry point for emulation\n";
+	}
+	elsif ($ExportEntrypointE32Dll) {		# Workaround: To export entry point _E32DLL for target type STDDLL
+		push @Text, "\t_E32Dll";
+		push @Text, "=__E32Dll" ;
+		push @Text, "\t; Entry point for STDDLL emulation\n";
+	}
+
+#	add a terminating newline
+	push @Text, "\n";
+
+#	write the new .DEF file
+	eval { &Def_WriteFileL(\@Text, $FILE); };
+	die $@ if $@;
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/e32util/omapsig.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,45 @@
+# e32toolp\e32util\omapsig.pl
+#
+# Copyright (c) 2008 Symbian Ltd. All rights reserved.
+#
+# Prepend OMAP boot signature to miniboot binaries
+#
+# Syntax:
+#	perl omapsig.pl <load address in hex> <input miniboot> <output minboot with sig>
+#
+
+use warnings;
+use strict;
+use IO::Handle;
+use File::Copy;
+
+if (scalar(@ARGV)!=3) {
+	die "perl omapsig.pl <load address in hex> <input miniboot> <output minboot with sig>\n";
+}
+
+my ($load_address, $infile, $outfile) = @ARGV;
+
+$load_address = pack('L', hex($load_address));
+
+my $filesize_in_bytes = -s $infile;
+
+print "miniboot input ", $filesize_in_bytes, " bytes\n";
+
+$filesize_in_bytes = pack('L', $filesize_in_bytes);
+
+open my $in, "< $infile" or die "Can't open $infile for input: $!";
+binmode($in);
+open my $out, "> $outfile" or die "Can't open $outfile for output: $!";
+binmode($out);
+$out->autoflush(1);
+
+print $out $filesize_in_bytes;
+print $out $load_address;
+
+copy($in, $out) or die "Couldn't copy from $infile to $outfile: $!";
+
+close $in;
+close $out;
+
+print "signed miniboot output ", -s $outfile, " bytes\n";
+exit;
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/e32util/prepdef.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,150 @@
+# Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# e32toolp/e32util/prepdef.pl
+# 
+#
+
+use strict;
+
+use FindBin;		# for FindBin::Bin
+use Getopt::Long;
+
+my $PerlLibPath;    # fully qualified pathname of the directory containing our Perl modules
+
+BEGIN {
+# check user has a version of perl that will cope
+	require 5.005_03;
+# establish the path to the Perl libraries: currently the same directory as this script
+	$PerlLibPath = $FindBin::Bin;	# X:/epoc32/tools
+	if ($^O eq "MSWin32")
+	{
+		$PerlLibPath =~ s/\//\\/g;	# X:\epoc32\tools
+		$PerlLibPath .= "\\";
+	}
+}
+
+use lib $PerlLibPath;
+use Defutl;
+use E32tpver;
+use Pathutl;	
+
+
+
+# THE MAIN PROGRAM SECTION
+##########################
+
+{
+	
+
+	# process the command-line
+	unless (@ARGV==2 ||  @ARGV==3 || @ARGV==4) {
+		&Usage;
+	}
+	my ($FRZFILE,$GENFILE,$DATASWITCH,$ABSENTSYM)=@ARGV;
+	
+	
+
+#	Read the Frozen .DEF file
+	my @FrzDataStruct;
+	my $FrzExportsOn=0;
+	eval { &Def_ReadFileL(\@FrzDataStruct, $FRZFILE, $FrzExportsOn); };
+	die $@ if $@;
+
+	eval { &WriteOutputFileL(\@FrzDataStruct, $GENFILE, $DATASWITCH, $ABSENTSYM); };
+	die $@ if $@;
+
+	exit;
+}
+
+#######################################################################
+# SUBROUTINES
+#######################################################################
+
+sub Usage () {
+
+	print(
+		"\n",
+		"PREPDEF - Prepare frozen DEF file for library generation (Build ",&E32tpver,")\n",
+		"\n",
+		"PREPDEF [frozen .DEF file] [processed .DEF file] [nodatasizes] [entrypoint_name]\n",
+		"\n",
+		"\n",
+		"\n"
+	);
+	exit 1;
+}
+
+
+
+sub WriteOutputFileL ($$$$) {
+	my ($FrzStructRef, $FILE, $DATASWITCH, $ABSENTSYM)=@_;
+
+	my @Text;
+
+	if ($ABSENTSYM) {
+		$ABSENTSYM = '='.$ABSENTSYM;
+	}
+
+#	Process the frozen .DEF file
+	my $FrzRef;
+	my $ExportsDeclared;
+
+#	get the lines of text from the frozen .DEF file
+	foreach $FrzRef (@$FrzStructRef) {
+		next if (!$FrzRef);
+		if (!defined($$FrzRef{Ordinal})) {
+			push @Text, $$FrzRef{Line};
+			$ExportsDeclared = 1 if ($$FrzRef{Line} =~ /^\s*EXPORTS\s*(\s+\S+.*)?$/io);
+			next;
+		}
+		my $Comment='';
+		if ($$FrzRef{Comment}) {
+			$Comment=" ; $$FrzRef{Comment}";
+		}
+#		Mention if it is a Data symbol along with its size.
+		my $data = "";
+		if(defined $$FrzRef{Data})
+			{			
+			if ($DATASWITCH eq "nodatasizes")
+				{
+				$data = " DATA";
+				}
+			else
+				{
+				$data = " DATA $$FrzRef{Size}";
+				}
+			}
+		my $r3unused = $$FrzRef{R3Unused} ? " R3UNUSED" : "";
+		my $ord = $$FrzRef{Ordinal};
+		if ($$FrzRef{Absent}) {
+			push @Text, "\t\"_._.absent_export_$ord\"$ABSENTSYM \@ $ord NONAME$data$r3unused$Comment\n";
+		} else {
+			my $export = $$FrzRef{ExportName};
+			if ($export ne $$FrzRef{Name})
+				{
+				$export .= "=$$FrzRef{Name}";
+				}
+			push @Text, "\t$export \@ $ord NONAME$data$r3unused$Comment\n";
+		}
+	}
+	unshift @Text, "EXPORTS\n" unless ($ExportsDeclared);
+
+#	add a terminating newline
+	push @Text, "\n";
+
+#	write the new frozen .DEF file
+	eval { &Def_WriteFileL(\@Text, $FILE); };
+	die $@ if $@;
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/e32util/preprocessor.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,101 @@
+# Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# prepocessor.pm
+# Used to allow us to access and manipulate other pre processors
+# 
+#
+
+package Preprocessor;
+
+require Exporter;
+@ISA=qw(Exporter);
+
+@EXPORT=qw(
+	PreprocessorToUseId PreprocessorToUseExe PreprocessorToUsePath 
+);
+
+
+
+#
+# Returns the preprocessor name.
+# (After checking it is valid)
+#
+sub PreprocessorToUseId()
+{
+    $env="0";
+    if (defined $ENV{ALT_PRE})
+    {
+	$env = $ENV{ALT_PRE};
+    }
+    
+    if ( $env eq "1" ) # Only a value of 1 will use alternative preprocessor
+    {
+        return "MINGW_NO_CYGWIN";
+    }
+    else
+    {
+        return "DEFAULT";
+    }
+}
+
+
+
+#
+# Returns the preprocessor exe name.
+# without the exe extension.
+#
+
+
+sub PreprocessorToUseExe()
+{
+    $env = &PreprocessorToUseId();
+    
+    if ( ($env eq "DEFAULT") )
+    {
+        return "cpp";
+    }
+    elsif ( $env eq "MINGW_NO_CYGWIN" )
+    {
+        return "scpp";
+    }
+}
+
+
+
+
+#
+# Returns the full path and exe of the preprocessor relative to the 
+# gcc\bin path.
+#
+sub PreprocessorToUsePath()
+{
+    $env = &PreprocessorToUseId();
+
+    if ( ($env eq "") || ($env eq "DEFAULT") )
+    {
+        return "";
+    }
+    elsif ( $env eq "MINGW_NO_CYGWIN" )
+    {
+        return ""; # Currently same path as default (different name though !)
+    }
+    else
+    { # Nothing really to use.
+        die
+            "Unable to find the correct pre processor\n",
+    }
+}
+
+
+1;
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/e32util/selectbootmak.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,41 @@
+# Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Used to select a makefile which matches the installed version of armasm
+# check to see which version of armasm we've got (first on PATH).
+# if its the old one then copy the file specified by $old to $dest
+# else copy $src to $dest
+# 
+#
+
+use strict;
+use File::Copy;
+
+my ($dest, $old, $src) = @ARGV;
+
+my $oldVersionId = "ARM AOF Macro Assembler vsn 2.37 (Advanced RISC Machines SDT 2.11) [Sep  9 1997]";
+
+open ARMASM, "armasm -help|";
+
+my $id = <ARMASM>;
+
+chop $id;
+
+close ARMASM;
+
+$src = $old if ($id eq $oldVersionId);
+
+unlink $dest;
+
+copy("$src", "$dest");
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/e32util/set-rvct.bat	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,150 @@
+@rem
+@rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+@rem All rights reserved.
+@rem This component and the accompanying materials are made available
+@rem under the terms of "Eclipse Public License v1.0"
+@rem which accompanies this distribution, and is available
+@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem
+@rem Initial Contributors:
+@rem Nokia Corporation - initial contribution.
+@rem
+@rem Contributors:
+@rem
+@rem Description:
+@rem
+@rem = '--*-Perl-*--
+@echo off
+if "%OS%" == "Windows_NT" goto WinNT
+perl -x -S "%0" %1 %2 %3 %4 %5 %6 %7 %8 %9
+goto endofperl
+:WinNT
+perl -x -S %0 %*
+if NOT "%COMSPEC%" == "%SystemRoot%\system32\cmd.exe" goto endofperl
+if %errorlevel% == 9009 echo You do not have Perl in your PATH.
+if errorlevel 1 goto script_failed_so_exit_with_non_zero_val 2>nul
+goto endofperl
+@rem ';
+#!perl
+#line 15
+use strict;
+use FindBin;
+
+my $SELF_NAME = "set-rvct";
+
+my $self_path;
+
+BEGIN
+{
+    $self_path = $FindBin::Bin;
+}
+
+use lib $self_path;
+
+use RVCT_ver2set;
+
+
+# Some internal helper functions.
+sub _usage_and_die(@);
+sub _err_and_die(@);
+sub _warning(@);
+sub _fixup_path($$);
+
+
+sub main(@)
+{
+    my @available = RVCT_ver2set::get_versions();
+
+    _err_and_die("no RVCT versions found; check that ABLD_RVCT_INI is set.")
+        unless(@available);
+
+    my ($vers, @junk) = @_;
+
+    _usage_and_die(@available)
+        if ( !$vers || @junk || !RVCT_ver2set::compiler_exists($vers) );
+
+    if ($ENV{ABLD_PLAT_INI})
+    {
+        _warning("ABLD_PLAT_INI is set; the build system might clobber your settings.");
+    }
+
+    my $path = _fixup_path( $ENV{PATH}, RVCT_ver2set::get_bin_path($vers) );
+
+    # Create the batch file.
+    {
+        my $fname = "..__.bat";
+
+        open (my $file,  ">",  $fname)
+            or _err_and_die("couldn't create $fname.");
+
+        print $file "set PATH=$path\n";
+
+        my ($n, $p);
+
+        $n = RVCT_ver2set::get_bin_name($vers);
+        $p = RVCT_ver2set::get_bin_path($vers);
+        print $file "set $n=$p\n";
+
+        $n = RVCT_ver2set::get_inc_name($vers);
+        $p = RVCT_ver2set::get_inc_path($vers);
+        print $file "set $n=$p\n";
+
+        $n = RVCT_ver2set::get_lib_name($vers);
+        $p = RVCT_ver2set::get_lib_path($vers);
+        print $file "set $n=$p\n";
+
+        print $file "echo.\n";
+        print $file "armcc --vsn\n";
+
+        close $file or _err_and_die("couldn't close $fname.");
+    }
+}
+
+sub _usage_and_die(@)
+{
+    for (@_)
+    {
+        print STDERR "    $SELF_NAME $_\n";
+    }
+
+    exit 1;
+}
+
+sub _err_and_die(@)
+{
+    print STDERR "error: @_\n";
+    exit 1;
+}
+
+sub _warning(@)
+{
+    print STDERR "warning: @_\n";
+}
+
+sub _fixup_path($$)
+{
+    my @path = split(/;/, shift);
+    my $bin  = shift;
+
+    my @result = ();
+
+    foreach (@path)
+    {
+        push @result, ($_) unless ($_ eq $bin);
+    }
+
+    return join(";", $bin, @result);
+}
+
+
+main(@ARGV);
+
+
+
+__END__
+:endofperl
+
+if "%errorlevel%" == "0" (if exist ..__.bat call ..__.bat & del ..__.bat)
+
+:: vim:ft=perl
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/genutil/conv_khronos_hdr_to_cpp.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,86 @@
+# Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Convert the given header file from Khronos into a stub implementation file
+# 
+#
+
+use File::Basename;
+use File::Path;
+
+my $debug = 0;
+my $prog = "conv_khronos_hdr_to_cpp.pl";
+my $source = shift;
+my $target = shift;
+my $operation_mode = shift;
+my @lines;
+
+if ($debug)
+	{
+	print "$prog: Args $source $target $operation_mode\n";
+	}
+
+if ("$operation_mode" eq "delete")
+	{
+	&cleanup();
+	exit 0;
+	}
+elsif ("$operation_mode" eq "create")
+	{
+	&setupFiles();
+	&generateStubImplementation();
+	exit 0;
+	}
+else
+	{
+	print "Usage error: $prog source target [create|delete]\n";
+	exit 1;
+	}
+
+sub cleanup()
+	{
+	unlink "$target";
+	}
+
+sub setupFiles()
+	{
+	my $dir;
+	$dir = dirname($target);
+	mkpath $dir;
+	
+	open(INFILE,  "$source") or die "Can't open input file $source; $!\n";
+	open(OUTFILE, ">$target") or die "Can't open output file $target; $!\n";
+	print OUTFILE '/* Auto-generated: ' . "$prog" . ' v1.0 */' . "\n";
+	print OUTFILE '/* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).  All rights reserved. */' . "\n";
+	}
+
+sub generateStubImplementation()
+	{
+	@lines = <INFILE>;
+	foreach (@lines)
+		{
+		# Find function prototype lines
+		if (/^GL_APICALL/)
+			{
+			# Convert the function prototype into a stub function definition
+			s/\;$/ { }/;
+			# Record the stub functions.  There will be a stub implementation
+			# file which includes these stub functions.  This ensures we never
+			# accidentally miss a new function added to the header file supplied
+			# as $source.  We expect compiler warnings (missing use of arguments,
+			# absent return value etc.).  The aim is to get something which will
+			# compile so that a DEF file can be generated.
+			print OUTFILE "$_";
+			}
+		}
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/genutil/conv_khronos_openvg_hdr_to_cpp.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,84 @@
+# Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Convert the given header file from Khronos into a stub implementation file
+# 
+#
+
+use File::Basename;
+use File::Path;
+
+my $debug = 0;
+my $prog = "conv_khronos_openvg_hdr_to_cpp.pl";
+my $source = shift;
+my $target = shift;
+my $operation_mode = shift;
+my @lines;
+
+if ($debug) {
+  print "$prog: Args $source $target $operation_mode\n";
+}
+
+if ("$operation_mode" eq "delete") {
+  &cleanup();
+  exit 0;
+} elsif ("$operation_mode" eq "create") {
+  &setupFiles();
+  &generateStubImplementation();
+  exit 0;
+} else {
+  print "Usage error: $prog source target [create|delete]\n";
+  exit 1;
+}
+
+sub cleanup()
+  {
+    unlink "$target";
+  }
+
+sub setupFiles()
+  {
+    my $dir;
+    $dir = dirname($target);
+    mkpath $dir;
+	
+    open(INFILE,  "$source") or die "Can't open input file $source; $!\n";
+    open(OUTFILE, ">$target") or die "Can't open output file $target; $!\n";
+    print OUTFILE '/* Auto-generated: ' . "$prog" . ' v1.0 */' . "\n";
+    print OUTFILE '/* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).  All rights reserved. */' . "\n";
+  }
+
+sub generateStubImplementation()
+  {
+    @lines = <INFILE>;
+    my $s = "";
+    foreach (@lines) {
+      # Find function prototype lines
+      if (/^VG[U]?_API_CALL/ || length($s) != 0) {
+	    $s = $s.$_;
+		if (/;/) {
+		  # Convert the function prototype into a stub function definition
+		  $s =~ s/\;$/ { }/;
+		  # Record the stub functions.  There will be a stub implementation
+		  # file which includes these stub functions.  This ensures we never
+		  # accidentally miss a new function added to the header file supplied
+		  # as $source.  We expect compiler warnings (missing use of arguments,
+		  # absent return value etc.).  The aim is to get something which will
+		  # compile so that a DEF file can be generated.
+		  print OUTFILE "$s";
+		  $s = "";
+		}
+      }       
+    }
+
+  }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/genutil/ecopyfile.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,135 @@
+# Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+use strict;
+use File::Copy;
+use File::Basename;
+use File::Path;
+
+
+if (@ARGV!=2)
+	{
+#........1.........2.........3.........4.........5.........6.........7.....
+	print <<USAGE_EOF;
+Usage : perl ecopyfile.pl srcfile dstfile
+
+If dstfile exists and is identical to srcfile then do nothing,
+otherwise copy srcfile to dstfile.
+
+USAGE_EOF
+	exit 1;
+	}
+
+my $srcfile = shift;
+my $dstfile = shift;
+
+# Sanity checking
+#
+
+if (!-e $srcfile)
+	{
+	print STDERR "$srcfile does not exist\n";
+	exit 1;
+	}
+
+if (!-f $srcfile)
+	{
+	print STDERR "$srcfile is not a plain file\n";
+	exit 1;
+	}
+
+my $updating = -e $dstfile;
+
+if ($updating && !-f $dstfile)
+	{
+	print STDERR "$dstfile exists, but is not a plain file\n";
+	exit 1;
+	}
+
+# Can we avoid doing the copy?
+#
+
+if ($updating && !defined($ENV{ECOPYFILE_ALWAYS_COPY}) && (-s $srcfile == -s $dstfile))
+	{
+	# file exists and is the same size - check contents
+
+	open SRC, $srcfile or print STDERR "Cannot open $srcfile\n" and exit 1;
+	open DST, $dstfile or print STDERR "Cannot open $dstfile\n" and exit 1;
+
+	binmode SRC;
+	binmode DST;
+
+	my $srcbuf;
+	my $dstbuf;
+	my $srclen;
+	my $dstlen;
+	my $same = 1;
+
+	while ($same)
+		{
+		$srclen = read SRC, $srcbuf, 4096;
+		$dstlen = read DST, $dstbuf, 4096;
+		if ($srclen == 0 && $dstlen == 0)
+			{
+			last;
+			}
+		$same= $srcbuf eq $dstbuf;
+		}
+
+	close SRC;
+	close DST;
+
+	if ($same)
+		{
+		# Files match - no need to copy
+		exit 0;
+		}
+
+	# files are different
+	}
+
+# Copy srcfile to dstfile
+#
+
+my $action = "create";
+
+if ($updating) {
+	$action = "update";
+}
+else {
+	# see if the destination directory exists to create the file into...
+	my $directory = dirname($dstfile);
+	if (!-e $directory) {
+		# ...and attempt to create it if not.
+		if (!mkpath ($directory)) {
+			print STDERR "Failed to create directory $directory\n";
+			exit 1;
+		}
+	}
+}
+
+
+if (!copy ($srcfile, $dstfile))
+        {
+	print STDERR "Failed to $action file $dstfile\n";
+	unlink $dstfile;
+	exit 1;
+	}
+
+
+printf "%sd %s\n", ucfirst $action, $dstfile;
+exit 0;
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/genutil/emkdir.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,49 @@
+# Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+use strict;
+use File::Path;
+
+
+# THE MAIN PROGRAM SECTION
+{
+	unless (@ARGV) {
+		&Usage();
+	}
+
+	my $originalPath = join (' ',@ARGV);
+	print ("Creating $originalPath\n");
+
+#	temp change for old perl
+	foreach (@ARGV) {
+		s-\\-\/-go;
+	}
+	mkpath([@ARGV]);
+	foreach my $path (@ARGV) {
+	    if (! -e $path) {
+		print ("ERROR: Couldn't create $path\n");
+	    }
+	}
+}
+
+sub Usage () {
+	print <<ENDHERESTRING;
+Usage : perl emkdir.pl list_of_directories
+
+  Creates the directories listed
+ENDHERESTRING
+
+	exit 1;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/genutil/ermdir.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,37 @@
+# Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+use strict;
+use File::Path;
+
+
+# THE MAIN PROGRAM SECTION
+{
+	unless (@ARGV) {
+		&Usage();
+	}
+
+	rmtree([@ARGV]);
+}
+
+sub Usage () {
+	print <<ENDHERESTRING;
+Usage : perl ermdir.pl list_of_directories
+
+  Removes the directories listed
+ENDHERESTRING
+
+	exit 1;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/genutil/err_formatter.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,111 @@
+# Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# err_formatter.pm
+# This tool is asked to invoke the Lada compiler and reformat the errors/warnings from CW
+# style to Visual Studio error/warning reporting style.
+# 
+#
+
+
+use FindBin;
+
+my $command = join(' ', @ARGV);
+open PIPE, "$command 2>&1 | ";
+
+
+my $nextLineOfInterest = 0;
+my $new_error_line=();
+my $comp_msg=();
+my $error_token=();
+
+# The error/warning format for CW compiler for the option 
+# -msgstyle parseable is as follows:
+#
+# ToolName|ToolType|MsgType (FileName|Linenumber|digit|digit|digit|digit)
+# = AtToken
+# > ErrorMsg
+#
+# In the above format, the symbols '|', '(', ')', '=' and '>' occur always
+# and this tool assumes there presence.
+# Also, in the above, 
+#	'ToolName' here is mwccsym2.exe
+#	'ToolType' here is Compiler
+#	'MsgType' is either Error or Warning
+#	'FileName' is the file that caused the compiler error/warning
+#	'Linenumber' is the line at which the error/warning is reported
+#	'AtToken' is the token at which the error/warning was reported.
+#	'ErrorMsg' is the error message and it amrks the end of this error/warning.
+#
+
+my @msgs;
+while(<PIPE>)
+{
+	if( $nextLineOfInterest == 1)
+	{
+		if($_ =~ /^>(.*)/)
+		{
+			$comp_msg .= $1;
+			$new_error_line .= "$comp_msg ";
+			$new_error_line .= ": $error_token" if($error_token);
+			push @msgs, $new_error_line;
+			
+			$nextLineOfInterest = 0;
+			$comp_msg = "";
+			$error_token = "";
+			next;
+		}
+		if($_ =~ /^=(.*)/)
+		{
+			$error_token = $1;
+			next;
+		}
+		if($_ =~ /\((.*)\|([0-9]+)\|([0-9]+)\|([0-9]+)\|([0-9]+)\|([0-9]+)\)/)
+		{
+######### $1 is file name
+######### $2 is line number
+
+			$new_error_line = $1."(";
+			$new_error_line .= $2;
+			$new_error_line .= ")";
+			$new_error_line .= ": ";
+
+			next;
+		}
+	}
+	if($_ =~ /Compiler\|Error/)
+	{
+		$comp_msg = "Error: ";
+		$nextLineOfInterest = 1;
+		next;
+	}
+	elsif($_ =~ /Compiler\|Warning/)
+	{
+		$comp_msg = "Warning: ";
+		$nextLineOfInterest = 1;
+		next;
+	}
+	else
+	{
+		$nextLineOfInterest = 0;
+		push @msgs, $_;
+	}
+}
+
+close PIPE;
+my $msg;
+foreach $msg (@msgs)
+{
+	print "$msg\n";
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/genutil/genutl.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,108 @@
+# Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Contains utility subroutines for MAKMAKE and associated scripts
+# 
+#
+
+package Genutl;
+
+require Exporter;
+@ISA=qw(Exporter);
+
+@EXPORT=qw(
+	Genutl_AnyToHex
+	Genutl_VersionToUserString
+	Genutl_VersionToHexString
+	Genutl_VersionToFileAugment
+	Genutl_StringToVersion
+	Genutl_ParseVersionedName
+	Genutl_NormaliseVersionedName
+);
+
+use strict;
+
+sub Genutl_AnyToHex ($) {
+# changes decimal and hexadecimal numbers to the required hexadecimal format
+	my $Num=$_[0];
+	$Num=lc $Num;	# lower casing the x specifying hexadecimal essential
+	if ($Num=~/^(\d{1,10}|0x[\dabcdef]{1,8})$/o) { # this isn't perfect
+		$Num=oct $Num if $Num=~/^0x/o;
+		return sprintf "0x%.8lx", $Num;
+	}
+	return undef;
+}
+
+sub Genutl_VersionToUserString(%) {
+	my (%ver) = @_;
+	return sprintf("%d\.%d", $ver{major}, $ver{minor});
+}
+
+sub Genutl_VersionToHexString(%) {
+	my (%ver) = @_;
+	return sprintf("%04x%04x", $ver{major}, $ver{minor});
+}
+
+sub Genutl_VersionToFileAugment(%) {
+	my (%ver) = @_;
+	return sprintf("{%04x%04x}", $ver{major}, $ver{minor});
+}
+
+sub Genutl_StringToVersion($) {
+	my ($s) = @_;
+	if ($s =~ /^(\d+)\.(\d+)$/) {
+		my %ver;
+		$ver{major} = $1;
+		$ver{minor} = $2;
+		if ($ver{major}<32768 and $ver{minor}<32768) {
+			return %ver;
+		}
+	}
+	return undef;
+}
+
+sub Genutl_ParseVersionedName($) {
+	my ($nref) = @_;
+	return 1 unless ($$nref =~ /\{|\}/);
+	my $a;
+	my $b;
+	if ($$nref =~ /(.*)\{((\d|a|b|c|d|e|f){8})\}(.*?)/i) {
+		$a = $1;
+		$b = $3;
+	} elsif ($$nref =~ /(.*)\{\s*(\d+)\s*\.\s*(\d+)\s*\}(.*?)$/i) {
+		$a = $1;
+		$b = $4;
+		my $major = $2;
+		my $minor = $3;
+		return 0 if ($major>=32768 or $minor>=32768);
+		$$nref = $a.sprintf("{%04x%04x}",$major,$minor).$b;
+	} else {
+		return 0;
+	}
+	if ($a=~/\{|\}/ or $b=~/\{|\}/) {
+		return 0;
+	}
+	return 1;
+}
+
+sub Genutl_NormaliseVersionedName($) {
+	my ($name) = @_;
+	if ($name =~ /(.*)\{\s*(\d+)\s*\.\s*(\d+)\s*\}(.*?)$/i) {
+		my $a = $1;
+		my $b = $4;
+		my $major = $2;
+		my $minor = $3;
+		return $a.sprintf("{%04x%04x}",$major,$minor).$b if ($major<32768 and $minor<32768);
+	}
+	return $name;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/genutil/listzip.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,65 @@
+# Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# e32toolp/genutil/listzip.pl
+# Utility for listing the contents of a zip file.
+# Syntax:
+# perl listzip.pl <prefix> <zipfile>
+# This command will print all files in the <zipfile>. Each file name is prefixed by
+# <prefix> and is printed on a separate line.
+# 
+#
+
+sub _print_usage_and_die();
+sub _print_err_and_die(@);
+
+sub main(@)
+{
+    my ($prefix, $zipf, @junk) = @_;
+
+    _print_usage_and_die() if (!$prefix || !$zipf || @junk);
+
+    _print_err_and_die("$prefix is not a directory.") unless -d $prefix;
+    _print_err_and_die("$zipf doesn't exist.") unless -f $zipf;
+
+    my @raw_data = qx/unzip -l $zipf/;
+
+    for (@raw_data)
+    {
+        if ($_ =~ /^\s*\d+\s+\d\d[-|\/]\d\d[-|\/]\d\d\s+\d\d:\d\d\s+(.*)/)
+        {
+            my $line = "${prefix}/$1";
+            $line =~ s/\//\\/g;
+	    # don't print directories under the <build> tags
+	    if (!($line =~ /\\$/)) {
+		    print "$line\n";
+		    }
+        }
+    }
+}
+
+sub _print_usage_and_die()
+{
+    print "usage: listzip.pl <prefix> <zipfile>\n";
+    exit 2;
+}
+
+sub _print_err_and_die(@)
+{
+    print "listzip.pl: error: @_\n";
+    exit 1;
+}
+
+main(@ARGV);
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/genutil/modload.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,65 @@
+# Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Runtime module-loading routine for loading e32tools modules into 'main' module
+# 
+#
+
+
+package Modload;
+
+require Exporter;
+@ISA=qw(Exporter);
+
+@EXPORT=qw(
+	Load_SetVerbose
+	Load_SetModulePath
+	Load_ModuleL
+);
+
+use strict;
+
+use Pathutl;
+
+my %Mode=(
+	Verbose=>0
+);
+my $ModulePath;
+
+sub Load_SetVerbose () {
+	$Mode{Verbose}=1;
+}
+
+sub Load_SetModulePath ($) {
+	$ModulePath=$_[0];
+}
+
+sub Load_ModuleL (@) {
+# Loads a module into the 'main' package, including all the functions the module defines for export
+
+	my @ModBaseList=@_;
+	my $ModBase;
+	foreach $ModBase (@ModBaseList) {
+		$ModBase=uc $ModBase;
+		die "ERROR: Can't load \"$ModulePath$ModBase.PM\"\n" unless -e "$ModulePath$ModBase.PM";
+		if ($Mode{Verbose}) {
+			print "Loading Module: \"",$ModBase,".PM\"\n";
+		}
+		package main;
+		require $ModBase.".PM" or die "ERROR: Can't load function from \"$ModulePath$ModBase.PM\"\n";
+		my $Package=ucfirst lc $ModBase;
+		$Package->import;
+	}
+}
+
+1;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/genutil/output.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,111 @@
+# Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Text formatting module
+# 
+#
+
+package Output;
+require Exporter;
+@ISA=qw(Exporter);
+@EXPORT=qw(
+	OutSetLength OutSetPostWrap OutFormat Output
+	OutText
+);
+
+use strict;
+
+
+my $Len=80;
+my $PreWrap="\\";
+my $PreWrapLen=length($PreWrap);
+my $PostWrap=' ';
+my $PostWrapLen=length($PostWrap);
+my $Buf='';
+my $Text='';
+
+sub OutSetLength ($) {
+	if ($_[0]) {
+		$Len=$_[0];
+		return $Len;
+	}
+	$Len=80;
+}
+
+sub OutSetPreWrap ($) {
+	$PreWrap=$_[0];
+	$PreWrapLen=length($PreWrap);
+}
+
+sub OutSetPostWrap ($) {
+	$PostWrap=$_[0];
+	$PostWrapLen=length($PostWrap);
+}
+
+sub OutFormat (@) {
+	my $Item;
+	foreach $Item (@_) {
+		$Buf.=$Item;
+	}
+}
+
+sub OutWrite () {
+	my @Buf=();
+	my $CurLen=0;
+	if ($Buf=~/^(\s)/o) {
+		# output any starting spaces or tabs
+		$Text.=$1;
+		$CurLen=length($1);
+	}
+	while ($Buf=~/([^ "\t\n\r\f]*"[^"\t\n\r\f]+"[^ "\t\n\r\f]*|[^ "\t\n\r\f]+)/go) {
+		# get the elements of $Buf into @Buf
+		push @Buf, $1;
+	}
+	$Buf='';
+	my $Elem;
+	foreach $Elem (@Buf) {
+		my $ElemLen=length($Elem);
+		if (($CurLen+$ElemLen+$PreWrapLen) > $Len) {
+			# $Len doesn't account for the newline character
+			# wrap the line if adding another element will take it over the prescribed length
+			$Text.="$PreWrap\n$PostWrap";
+			$CurLen=$PostWrapLen;
+		}
+		elsif ($CurLen>$PostWrapLen) {
+			# add a space to the line if they're are already elements in the line
+			$Text.=' ';
+			$CurLen++;
+		}
+		# add element to the line
+		$Text.=$Elem;
+		$CurLen+=$ElemLen;
+	}
+	# finish with a newline
+	$Text.="\n";
+}
+
+sub Output (@) {
+	OutWrite if $Buf;	# output the formatted text before doing any more output
+	my $Item;
+	foreach $Item (@_) {
+		$Text.=$Item;
+	}
+}
+
+sub OutText () {
+	my $temp=$Text;
+	$Text='';
+	$temp;
+}
+
+1;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/genutil/pathutl.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,385 @@
+# Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# General Path and File Utility Functions for use with Makmake
+# Distinguish paths from filepaths by assuming paths end with "\"
+# therefore ensure this is the case for all paths coming into programs using this module
+# 
+#
+
+package Pathutl;
+
+require Exporter;
+@ISA=qw(Exporter);
+
+@EXPORT=qw(
+	Path_SetVerbose Path_Drive Path_WorkPath Path_RltToWork Path_AbsToWork
+	Path_DelFiles Path_Split Path_Dirs Path_StepDirs Path_Strip 
+	Path_MakePathL Path_UpToRoot Path_MakeRlt Path_MakeAbs Path_Chop
+	Path_MakeEAbs Path_Quote Path_MakeRltToBase Path_Norm Path_PrefixWithDrive Path_PrefixWithDriveAndQuote
+);
+
+use strict;
+use Cwd;
+use File::Path;                # for mkpath
+
+my %Mode=(
+	Verbose=>0
+);
+my $Drive;
+my $WorkPath;
+my @WorkPathList;
+
+sub Path_SetVerbose () {
+	$Mode{Verbose}=1;
+}
+
+sub Path_Drive () {
+# return the current drive - programs shouldn't change directory if using this module
+	$Drive;
+}
+
+sub Path_WorkPath () {
+# return the current working directory - programs shouldn't change directory if using this module
+	$WorkPath;
+}
+
+sub helper_MakeRlt ($@) {
+# helper function for computing relative path(s) given a base path
+	my ($BaseRef,@List)=@_;
+	foreach my $p (@List) {
+		my $filename=&Path_Split('File',$p);
+		my @plist=&Path_Dirs($p);
+		my $upcount=scalar @{$BaseRef};
+		foreach (@{$BaseRef}) {
+			if (uc $_ ne uc $plist[0]) {
+				last;
+			}
+			$upcount -= 1;
+			shift @plist;
+		}
+		$p="";
+		while ($upcount-->0) {
+			$p .= "..\\";
+		}
+		foreach (@plist) {
+			$p .= "$_\\";
+		}
+		$p=".\\" if ($p eq "");		# ensure a well-formed result if path == work
+		$p .= $filename;
+	}
+	return wantarray ? @List : $List[0];	
+}
+
+sub Path_RltToWork (@) {
+# make a path or list of paths relative to the current working directory
+	my @List=@_;
+	@List=&helper_MakeRlt(\@WorkPathList,@List);
+	return wantarray ? @List : $List[0];
+}
+
+sub Path_MakeRltToBase ($@) {	#args: $_[0] Base $_[1]... list of (Abs FilePath/Path)
+# make a path, or list of paths, relative to a particular directory specified by the first
+# path passed into the function
+	return undef unless $_[0]=~m-(|\\$)-o;	# allow for null value passed in
+	my ($Base,@List)=@_;
+	my @BasePathList=&Path_Dirs($Base);
+	@List=&helper_MakeRlt(\@BasePathList,@List);
+	return wantarray ? @List : $List[0];	
+}
+
+sub Path_AbsToWork (@) {
+# make a path or list of paths relative to the current working directory absolute
+	my @List=@_;
+	@List=&Path_MakeAbs($WorkPath,@List);
+	return wantarray ? @List : $List[0];	
+}
+
+sub Path_DelFiles (@) {
+# delete a list of files
+	my @List=@_;
+	my $File;
+	foreach $File (@List) {
+		if (unlink $File) {
+			if ($Mode{Verbose}) {
+				print "Deleted File: \"$File\"\n";
+			}
+			next;
+		}
+		if ($Mode{Verbose}) {
+			print "Not Found: \"$File\"\n";
+		}
+	}
+}
+
+sub Path_Split ($$) {	#args: $_[0] 'Path' or 'Base' or 'Ext' $_[1] Abs/Rel FilePath/Path
+# return the section of a file path required - Path, Base, Ext or File
+	my ($Sect,$P)=@_;
+
+	return '' if !$P;
+	
+	$Sect= ucfirst lc $Sect;
+	if ($Sect eq 'Path') {
+		if ($P=~/^(.*\\)/o) {
+			return $1;
+		}
+		return '';
+	}
+	if ($Sect eq 'Base') {
+		if ($P=~/\\?([^\\]*?)(\.[^\\\.]*)?$/o) {
+			return $1;
+		}
+		return '';
+	}
+	if ($Sect eq 'Ext') {
+		if ($P=~/(\.[^\\\.]*)$/o) {
+			return $1;
+		}
+		return '';
+	}
+	if ($Sect eq 'File') {
+		if ($P=~/([^\\]*)$/o) {
+			return $1;
+		}
+		return '';
+	}
+	undef;
+}
+
+sub Path_Dirs ($) {	#args: $_[0] Abs FilePath/Path
+# return an ordered list of individual directories that make up a path
+	return undef unless $_[0]=~m-^\\-o;
+	my $P=&Path_Split('Path',$_[0]);
+	return undef unless $P=~s-^(.*)\\$-$1-o;
+	$P=~s-^\\(.*)-$1-o;
+	split /\\/,$P;
+}
+
+sub Path_StepDirs ($) { #args: $_[0] Abs FilePath/Path
+# return an ordered list of paths - starting with the directory in the root directory from the
+# path passed into the function, each subsequent path contains the next directory from the path
+# passed into the function, and the last path is the same as the path passed into the function
+	return undef unless $_[0]=~m-^\\-o;
+	my $P=$_[0];
+	my @Dirs=&Path_Dirs($P);
+	my @StepDirs;
+	my $dir;
+	my $stepDir="\\";
+	foreach $dir (@Dirs) {
+		$stepDir.="$dir\\";
+		push @StepDirs, $stepDir;
+	}
+	@StepDirs;
+}
+
+sub Path_Strip ($) {	#args: $_[0] Abs FilePath/Path
+# Remove excess occurrences of '..' and '.' from a path
+	return undef unless $_[0]=~m-^\\-o;
+	my $P=$_[0];
+	while ($P=~s-\\\.\\-\\-go) { }
+	while ($P=~s-\\(?!\.{2}\\)[^\\]*\\\.{2}(?=\\)--go) { }
+	$P;
+}
+
+sub Path_MakePathL (@) {	#args: @_ list of Abs FilePath/Path
+# make a directory or list of directories
+	my @Paths=@_;
+	my $P;
+	foreach $P (@Paths) { 
+		return undef unless $P=~m-^\\-o;
+		$P=&Path_Split('Path',$P);
+		$P=&Path_Strip($P);
+		$P=~m-(.*)\\-o;
+		if (-d $1) {
+			if ($Mode{'Verbose'}) {
+				print "Existing Path: \"$P\"\n";
+			}
+			next;
+		}
+		mkpath[$P];
+		if ($Mode{'Verbose'}) {
+			print "Created Path: \"$P\"\n";
+		}
+	}
+	return wantarray ? @Paths : $Paths[0];
+}
+
+sub Path_UpToRoot ($) {	#args: $_[0] Abs FilePath/Path
+# return the path that will lead from the directory the path passed into the function
+# specifies back up to the root directory
+	return undef unless $_[0]=~m-^\\-o;
+	my $Path=$_[0];
+	my $UpP;
+	while ($Path=~m-\\-go) {
+		$UpP.="..\\";
+	}
+	undef $Path;
+	$UpP=~s-^(.*)\.\.\\-$1-o;
+	$UpP=".\\" unless $UpP;
+}
+
+sub Path_MakeRlt ($@) {	#args: $_[0] Start UpPath $_[1]... list of (Abs FilePath/Path)
+# make a path, or list of paths, relative to a particular directory specified by the first
+# path passed into the function which leads upwards from a particular directory
+	return undef unless $_[0]=~m-(|\\$)-o;	# allow for null value passed in
+	my ($UpPath,@List)=@_;
+	my $p;
+	foreach $p (@List) {
+		return undef unless $p=~m-^\\-o;
+		$p=~s-^\\(.*)$-$1-o;
+		$p=$UpPath.$p;
+	}
+	return wantarray ? @List : $List[0];	
+}
+
+sub Path_MakeAbs ($@) {	#args: $_[0] Start Abs FilePath/Path $_[1]... list of (Abs/Rel FilePath/Path)
+# make a path, or list of paths, absolute given the directory specified by the first path
+# passed into the function which the other paths passed into the function are assumed to be
+# relative to
+	return undef unless $_[0]=~m-^\\-o;
+	my ($Path,@List)=@_;
+	my $BasePath=&Path_Split("Path",$Path);
+	undef $Path;
+	my $p;
+	foreach $p (@List) {
+		if ($p=~m-^\.{2}-o) {
+			$p=&Path_Strip($BasePath.$p);
+			next;
+		}
+		if ($p=~m-^[^\.\\]-o) {
+			$p=&Path_Strip($BasePath.$p);
+			next;
+		}
+		if ($p=~m-^\\-o) {
+			$p=&Path_Strip($p);
+			next;
+		}
+		if ($p=~m-^\.\\(.*)$-o) {
+			$p=&Path_Strip($BasePath.$1);
+			next;
+		}
+		return undef;
+	}
+	return wantarray ? @List : $List[0];
+}
+
+sub Path_MakeEAbs ($@) {	#args: $_[0] Start EPOCPath Abs FilePath/Path $_[1]... list of (Abs/Rel FilePath/Path)
+# Variant of MakAbs which also maps "+\\" to "${EPOCPath}"
+	return undef unless $_[0]=~m-^\\-o;
+	my ($EPOCPath,$Path,@List)=@_;
+	my $BasePath=&Path_Split("Path",$Path);
+	undef $Path;
+	my $p;
+	foreach $p (@List) {
+		if ($p=~m-^\\epoc32\\(.*)$-io) {	# change - special case for existing \\epoc32 references
+			$p=$EPOCPath.$1;
+			next;
+		}
+		if ($p=~m-^\s*\+\\(.*)$-o) {
+			$p=$EPOCPath.$1;
+			next;
+		}
+		if ($p=~m-^\.{2}-o) {
+			$p=&Path_Strip($BasePath.$p);
+			next;
+		}
+		if ($p=~m-^[^\.\\]-o) {
+			$p=$BasePath.$p;
+			next;
+		}
+		if ($p=~m-^\\-o) {
+			next;
+		}
+		if ($p=~m-^\.\\(.*)$-o) {
+			$p=&Path_Strip($BasePath.$1);
+			next;
+		}
+		return undef;
+	}
+	return wantarray ? @List : $List[0];
+}
+
+sub Path_Chop (@) {
+# remove the terminating backslash from a path, or list of paths, if there is one
+	my @List=@_;
+	my $Path;
+	foreach $Path (@List) {
+		$Path=~s-^(.*)\\$-$1-o;
+	}
+	return wantarray ? @List : $List[0];
+}
+
+sub Path_Quote ($) {
+# Quote name for use in GNU makefiles
+	my @List=@_;
+	my $Path;
+	foreach $Path (@List) {
+		$Path=~s- -\\ -go if (defined($Path));
+	}
+	return wantarray ? @List : $List[0];
+}
+
+sub Path_Norm ($) {
+# Normalise source specified paths for processing
+	my ($Path) = @_;
+	$Path =~ s/\//\\/g;
+	return $Path;
+}
+
+sub Path_PrefixWithDrive ($) {
+# Take a path, or list of paths, and prefix with drive based on CWD.
+# Relative paths are just returned.
+	my @List=@_;
+	my $Path;
+	my $Drive=$1 if (cwd =~ /^(.:)/); 
+
+	foreach $Path (@List) {
+		next if ($Path !~ /^\\/);
+		$Path=$Drive.$Path;
+	}
+	
+	return wantarray ? @List : $List[0];
+}
+
+sub Path_PrefixWithDriveAndQuote ($) {
+# Take a path, or list of paths, and prefix with drive based on CWD.
+# Relative paths are just quoted.
+	my @List=@_;
+	my $Path;
+	my $Drive=$1 if (cwd =~ /^(.:)/); 
+
+	foreach $Path (@List) {
+		next if ($Path !~ /^\\/);
+		$Path=$Drive.$Path;
+	}
+
+	foreach $Path (@List) {
+		$Path="\"".$Path."\"";
+	}
+	
+	return wantarray ? @List : $List[0];
+}
+
+
+
+BEGIN {
+# get the current working directory
+	$WorkPath=cwd;
+	$WorkPath=~s-/-\\-go; # separator from Perl 5.005_02+ is forward slash
+	$WorkPath=~s/^(.:)//o;    # remove drive letter
+	$Drive=$1;
+	$WorkPath=~s-^(.*[^\\])$-$1\\-o;        # ensure workpath ends with a backslash
+	@WorkPathList=&Path_Dirs($WorkPath);
+}
+
+1;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/genutil/prepfile.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,173 @@
+# Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# module for preprocessing makmake-style project files
+# 
+#
+
+
+package Prepfile;
+
+require Exporter;
+@ISA=qw(Exporter);
+
+@EXPORT=qw(
+	Prepfile_SetVerbose Prepfile_SetUpperCase Prepfile_ProcessL Prepfile_SetCmdOptions
+);
+
+use strict;
+
+use Checkgcc;
+use Pathutl;
+use Preprocessor;
+
+my %Mode=(
+	Verbose=>0,
+	UpperCase=>0,
+        CmdOptions=>''
+);
+
+sub Prepfile_SetVerbose () {
+	$Mode{Verbose}=1;
+}
+
+sub Prepfile_SetUpperCase () {
+	$Mode{UpperCase}=1;
+}
+
+sub Prepfile_SetCmdOptions ($) {
+        $Mode{CmdOptions} = shift;
+        $Mode{CmdOptions} .= ' ' if $Mode{CmdOptions};
+}
+
+sub Prepfile_ProcessL ($$;$@) {
+# use the C++ preprocessor to process a file.  The function fills the data structure specified
+# by the first argument, an array reference, according to the contents of the second argument -
+# a filehandle.  Any other arguments are assumed to be MACROS and are defined for preprocessing.
+
+	my ($ArrayRef,$FILE,$VariantHRHFile,@Macros)=@_;
+	die "\nERROR: Project File \"$FILE\" not found\n" unless -e $FILE;
+
+	my $exe = &PreprocessorToUseExe();
+ 	my $cpp = "$exe.EXE $Mode{CmdOptions}-undef -nostdinc -+ ";
+	my @CppCall;
+ 	push @CppCall, $cpp;
+
+	push @CppCall, join '',	"-I ",&Path_PrefixWithDriveAndQuote("$ENV{EPOCROOT}epoc32\\include"),
+							" -I .",
+							" -I ",&Path_PrefixWithDriveAndQuote(&Path_Split('Path',$FILE));
+
+	my $Macro;
+	# add CL macros to the CPP call for preprocessing of the file
+	foreach $Macro (@Macros) {
+		$Macro=uc $Macro;					 # add the underscores so we can tell what has been
+		push @CppCall, "-D $Macro=_____$Macro"; # expanded and remove the space CPP puts in most of the time
+	}
+	#if a variant file is used
+	if(defined($VariantHRHFile)){
+        my $variantFilePath = Path_Split('Path',$VariantHRHFile);
+	chop( $variantFilePath );
+        push @CppCall, " -I " . &Path_PrefixWithDriveAndQuote($variantFilePath) . " -include " . &Path_PrefixWithDriveAndQuote($VariantHRHFile); 
+	}
+	# all macros made upper case and suppress user-expansion of macros for nefarious purposes
+
+	push @CppCall, &Path_PrefixWithDriveAndQuote($FILE);
+	if ($Mode{'Verbose'}) {
+		print "@CppCall\n";
+	}
+	my $CPPPIPE;
+	open CPPPIPE,"@CppCall |" or die "ERROR: Can't invoke CPP.EXE\n";
+
+	# read the processed output
+	#--------------------------
+
+	my $LineNum=0;
+	my $FileName;
+	while (<CPPPIPE>) {
+
+		# skip blank lines
+		if (/^\s*$/o) {
+			$LineNum++;
+			next;
+		}
+
+		my @Tmp=();
+
+	    # Process the file information lines that cpp inserts.
+		# (note that we don't currently do anything with the
+		# number cpp sometimes puts out after the filename -
+		# it's something to do with inclusion nesting levels)
+		if (/^# (\d+) "(.*)"( \d+)?/o) {
+			$LineNum = scalar $1;
+			my $CurFile=$2;
+			$CurFile=~s-\\\\-\\-go;
+			$CurFile=~s-\\\/-\\-go;
+			$CurFile=~s-\/\\-\\-go;
+			$CurFile=~s-\/\/-\\-go;
+			$CurFile=~s-\/-\\-go;
+			$CurFile=~s-(.:)--go;
+
+			$CurFile=&Path_AbsToWork($CurFile);
+			@Tmp=('#', $CurFile);
+			push @{$ArrayRef}, [ @Tmp ];
+			next;
+		}
+
+		# Process file data
+		push @Tmp, $LineNum;
+		# get rid of the space that cpp puts in most of the time after macro expansion (CPP help doesn't say exactly when!)
+		# don't upper case everything until you've done this.
+		
+		foreach $Macro (@Macros) {
+			s/\/ _____$Macro /\/$Macro/g;
+			s/_____$Macro /$Macro/g;
+			s/_____$Macro/$Macro/g;
+		}
+		if(/^macro/i)
+		{
+			#Parse and Store the mmp file statement by retaining double quotes
+			while (/("([^\t\n\r\f]+)"|([^ \t\n\r\f]+))/go) {
+			        my $Flag = $2 ? $2 : $3;
+				if($Flag =~ m/\\\"/) { 
+					$Flag =~ s/\"\\/\\/g;
+					$Flag =~ s/\""/\"/g;
+				}
+				push @Tmp, $Flag;
+			}
+		}
+		else
+		{
+			#Parse and Store the mmp file statement by removing double quotes
+			while (/("([^"\t\n\r\f]+)"|([^ "\t\n\r\f]+))/go) {
+				push @Tmp, $2 ? $2 : $3;
+			}
+		}
+		push @{$ArrayRef}, [ @Tmp ];
+		$LineNum++;
+	}		
+
+	if ($Mode{UpperCase}) {
+#		upper-case all the data
+		my $Line;
+		my $Item;
+		foreach $Line (@{$ArrayRef}) {
+			foreach $Item (@$Line) {
+				$Item=uc $Item;
+			}
+		}
+	}
+	close CPPPIPE or die $! ? "ERROR: Error closing $exe.exe pipe ($!)\n\t@CppCall\n"
+ 				: "ERROR: $exe.exe returned non-zero exit status ($?)\n\t@CppCall\n";
+}
+
+1;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/group/bld.inf	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,188 @@
+// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+PRJ_PLATFORMS
+TOOLS2
+
+PRJ_EXPORTS
+
+../e32util/defutl.pm 			/epoc32/tools/Defutl.pm
+../e32util/e32tpver.pm 			/epoc32/tools/E32tpver.pm
+../e32util/efreeze.pl 			/epoc32/tools/efreeze.pl
+../e32util/h2inc.pl 			/epoc32/tools/h2inc.pl
+../e32util/makedef.pl 			/epoc32/tools/makedef.pl
+../e32util/prepdef.pl 			/epoc32/tools/prepdef.pl
+../genutil/pathutl.pm 			/epoc32/tools/Pathutl.pm
+../e32util/createrfifile.pl		/epoc32/tools/createrfifile.pl
+../e32util/gendef.pl 			/epoc32/tools/gendef.pl
+../e32util/set-rvct.bat 		/epoc32/tools/set-rvct.bat
+../e32util/omapsig.pl			/epoc32/tools/omapsig.pl
+../platform/sym_lkup_util.pl		/epoc32/tools/sym_lkup_util.pl
+../platform/ARMV5.mk			/epoc32/tools/compilation_config/ARMV5.mk
+../platform/extractvars.make		/epoc32/tools/compilation_config/extractvars.make
+../platform/GCCE.mk			/epoc32/tools/compilation_config/GCCE.mk
+../binutils/make.exe			/epoc32/tools/make.exe
+../binutils/scpp.exe			/epoc32/tools/scpp.exe
+../genutil/listzip.pl			/epoc32/tools/listzip.pl
+
+../../../toolsandutils/buildsystem/extension/app-services/buildstubsis.meta 		/epoc32/tools/makefile_templates/app-services/buildstubsis.meta
+../../../toolsandutils/buildsystem/extension/app-services/buildstubsis.mk 		/epoc32/tools/makefile_templates/app-services/buildstubsis.mk
+../../../toolsandutils/buildsystem/extension/app-services/buildupgradesis.meta 		/epoc32/tools/makefile_templates/app-services/buildupgradesis.meta
+../../../toolsandutils/buildsystem/extension/app-services/buildupgradesis.mk 		/epoc32/tools/makefile_templates/app-services/buildupgradesis.mk
+../../../toolsandutils/buildsystem/extension/app-services/wlddatabasekit_sec.meta	/epoc32/tools/makefile_templates/app-services/wlddatabasekit_sec.meta
+../../../toolsandutils/buildsystem/extension/app-services/wlddatabasekit_sec.mk 		/epoc32/tools/makefile_templates/app-services/wlddatabasekit_sec.mk
+../../../toolsandutils/buildsystem/extension/application-protocols/buildstubsis.meta 	/epoc32/tools/makefile_templates/application-protocols/buildstubsis.meta
+../../../toolsandutils/buildsystem/extension/application-protocols/buildstubsis.mk 	/epoc32/tools/makefile_templates/application-protocols/buildstubsis.mk
+../../../toolsandutils/buildsystem/extension/base/bootstrap.meta 	/epoc32/tools/makefile_templates/base/bootstrap.meta
+../../../toolsandutils/buildsystem/extension/base/bootstrap.mk 		/epoc32/tools/makefile_templates/base/bootstrap.mk
+../../../toolsandutils/buildsystem/extension/base/config.meta 		/epoc32/tools/makefile_templates/base/config.meta
+../../../toolsandutils/buildsystem/extension/base/config.mk 		/epoc32/tools/makefile_templates/base/config.mk
+../../../toolsandutils/buildsystem/extension/base/copy_default.meta 	/epoc32/tools/makefile_templates/base/copy_default.meta
+../../../toolsandutils/buildsystem/extension/base/copy_default.mk 	/epoc32/tools/makefile_templates/base/copy_default.mk
+../../../toolsandutils/buildsystem/extension/base/genexec.meta 		/epoc32/tools/makefile_templates/base/genexec.meta
+../../../toolsandutils/buildsystem/extension/base/genexec.mk 		/epoc32/tools/makefile_templates/base/genexec.mk
+../../../toolsandutils/buildsystem/extension/base/h2_genbootinc.meta 	/epoc32/tools/makefile_templates/base/h2_genbootinc.meta
+../../../toolsandutils/buildsystem/extension/base/h2_genbootinc.mk 	/epoc32/tools/makefile_templates/base/h2_genbootinc.mk
+../../../toolsandutils/buildsystem/extension/base/h2_restricted_coreldr.meta 	/epoc32/tools/makefile_templates/base/h2_restricted_coreldr.meta
+../../../toolsandutils/buildsystem/extension/base/h2_restricted_coreldr.mk 	/epoc32/tools/makefile_templates/base/h2_restricted_coreldr.mk
+../../../toolsandutils/buildsystem/extension/base/h4_genbootinc.meta 		/epoc32/tools/makefile_templates/base/h4_genbootinc.meta
+../../../toolsandutils/buildsystem/extension/base/h4_genbootinc.mk 		/epoc32/tools/makefile_templates/base/h4_genbootinc.mk
+../../../toolsandutils/buildsystem/extension/base/h4_restricted_coreldr.meta 	/epoc32/tools/makefile_templates/base/h4_restricted_coreldr.meta
+../../../toolsandutils/buildsystem/extension/base/h4_restricted_coreldr.mk 	/epoc32/tools/makefile_templates/base/h4_restricted_coreldr.mk
+../../../toolsandutils/buildsystem/extension/base/h4_restricted_on_coreldr.meta 	/epoc32/tools/makefile_templates/base/h4_restricted_on_coreldr.meta
+../../../toolsandutils/buildsystem/extension/base/h4_restricted_on_coreldr.mk 	/epoc32/tools/makefile_templates/base/h4_restricted_on_coreldr.mk
+../../../toolsandutils/buildsystem/extension/base/h4_restricted_on_miniboot.meta 	/epoc32/tools/makefile_templates/base/h4_restricted_on_miniboot.meta
+../../../toolsandutils/buildsystem/extension/base/h4_restricted_on_miniboot.mk	/epoc32/tools/makefile_templates/base/h4_restricted_on_miniboot.mk
+../../../toolsandutils/buildsystem/extension/base/integrator_lmnand2_coreldr.meta 	/epoc32/tools/makefile_templates/base/integrator_lmnand2_coreldr.meta
+../../../toolsandutils/buildsystem/extension/base/integrator_lmnand2_coreldr.mk 		/epoc32/tools/makefile_templates/base/integrator_lmnand2_coreldr.mk
+../../../toolsandutils/buildsystem/extension/base/integrator_lmnand2_miniboot.meta 	/epoc32/tools/makefile_templates/base/integrator_lmnand2_miniboot.meta
+../../../toolsandutils/buildsystem/extension/base/integrator_lmnand2_miniboot.mk 	/epoc32/tools/makefile_templates/base/integrator_lmnand2_miniboot.mk
+../../../toolsandutils/buildsystem/extension/base/ne1_tb_restricted_coreldr.meta 	/epoc32/tools/makefile_templates/base/ne1_tb_restricted_coreldr.meta
+../../../toolsandutils/buildsystem/extension/base/ne1_tb_restricted_coreldr.mk 		/epoc32/tools/makefile_templates/base/ne1_tb_restricted_coreldr.mk
+../../../toolsandutils/buildsystem/extension/base/ne1_tb_genbootinc.meta				/epoc32/tools/makefile_templates/base/ne1_tb_genbootinc.meta
+../../../toolsandutils/buildsystem/extension/base/ne1_tb_genbootinc.mk 				/epoc32/tools/makefile_templates/base/ne1_tb_genbootinc.mk
+../../../toolsandutils/buildsystem/extension/base/lab_restricted_miniboot.meta		/epoc32/tools/makefile_templates/base/lab_restricted_miniboot.meta
+../../../toolsandutils/buildsystem/extension/base/lab_restricted_miniboot.mk		/epoc32/tools/makefile_templates/base/lab_restricted_miniboot.mk
+../../../toolsandutils/buildsystem/extension/base/lubbock_coreldr.meta 		/epoc32/tools/makefile_templates/base/lubbock_coreldr.meta
+../../../toolsandutils/buildsystem/extension/base/lubbock_coreldr.mk 		/epoc32/tools/makefile_templates/base/lubbock_coreldr.mk
+../../../toolsandutils/buildsystem/extension/base/lubbock_miniboot.meta 		/epoc32/tools/makefile_templates/base/lubbock_miniboot.meta
+../../../toolsandutils/buildsystem/extension/base/lubbock_miniboot.mk 		/epoc32/tools/makefile_templates/base/lubbock_miniboot.mk
+../../../toolsandutils/buildsystem/extension/base/nand_fbr_offset.meta 		/epoc32/tools/makefile_templates/base/nand_fbr_offset.meta
+../../../toolsandutils/buildsystem/extension/base/nand_fbr_offset.mk 		/epoc32/tools/makefile_templates/base/nand_fbr_offset.mk
+../../../toolsandutils/buildsystem/extension/base/omap3_genbootinc.meta		/epoc32/tools/makefile_templates/base/omap3_genbootinc.meta
+../../../toolsandutils/buildsystem/extension/base/omap3_genbootinc.mk		/epoc32/tools/makefile_templates/base/omap3_genbootinc.mk
+../../../toolsandutils/buildsystem/extension/base/omap3_restricted_coreldr.meta		/epoc32/tools/makefile_templates/base/omap3_restricted_coreldr.meta
+../../../toolsandutils/buildsystem/extension/base/omap3_restricted_coreldr.mk		/epoc32/tools/makefile_templates/base/omap3_restricted_coreldr.mk
+../../../toolsandutils/buildsystem/extension/base/omap3_restricted_coreldr.flm		/epoc32/tools/makefile_templates/base/omap3_restricted_coreldr.flm
+../../../toolsandutils/buildsystem/extension/base/omap3_restricted_coreldr.xml		/epoc32/tools/makefile_templates/base/omap3_restricted_coreldr.xml
+../../../toolsandutils/buildsystem/extension/base/lab_restricted_miniboot.flm		/epoc32/tools/makefile_templates/base/lab_restricted_miniboot.flm
+../../../toolsandutils/buildsystem/extension/base/lab_restricted_miniboot.xml		/epoc32/tools/makefile_templates/base/lab_restricted_miniboot.xml
+../../../toolsandutils/buildsystem/extension/base/ne1_tb_restricted_coreldr.flm		/epoc32/tools/makefile_templates/base/ne1_tb_restricted_coreldr.flm
+../../../toolsandutils/buildsystem/extension/base/ne1_tb_restricted_coreldr.xml		/epoc32/tools/makefile_templates/base/ne1_tb_restricted_coreldr.xml
+../../../toolsandutils/buildsystem/extension/base/base_rvct_common.mk		/epoc32/tools/makefile_templates/base/base_rvct_common.mk
+../../../toolsandutils/buildsystem/extension/converged-comms/createcommdbs.meta 	/epoc32/tools/makefile_templates/converged-comms/createcommdbs.meta
+../../../toolsandutils/buildsystem/extension/converged-comms/createcommdbs.mk 	/epoc32/tools/makefile_templates/converged-comms/createcommdbs.mk
+../../../toolsandutils/buildsystem/extension/converged-comms/installdefaultcommdb.meta 	/epoc32/tools/makefile_templates/converged-comms/installdefaultcommdb.meta
+../../../toolsandutils/buildsystem/extension/converged-comms/installdefaultcommdb.mk 	/epoc32/tools/makefile_templates/converged-comms/installdefaultcommdb.mk
+../../../toolsandutils/buildsystem/extension/graphics/gen_khronos_cpp_from_hdr.meta		/epoc32/tools/makefile_templates/graphics/gen_khronos_cpp_from_hdr.meta
+../../../toolsandutils/buildsystem/extension/graphics/gen_khronos_cpp_from_hdr.mk		/epoc32/tools/makefile_templates/graphics/gen_khronos_cpp_from_hdr.mk
+../../../toolsandutils/buildsystem/extension/graphics/gen_khronos_openvg_cpp_from_hdr.meta	/epoc32/tools/makefile_templates/graphics/gen_khronos_openvg_cpp_from_hdr.meta
+../../../toolsandutils/buildsystem/extension/graphics/gen_khronos_openvg_cpp_from_hdr.mk	/epoc32/tools/makefile_templates/graphics/gen_khronos_openvg_cpp_from_hdr.mk
+../../../toolsandutils/buildsystem/extension/graphics/genpdrs.meta 		/epoc32/tools/makefile_templates/graphics/genpdrs.meta
+../../../toolsandutils/buildsystem/extension/graphics/genpdrs.mk 		/epoc32/tools/makefile_templates/graphics/genpdrs.mk
+../../../toolsandutils/buildsystem/extension/security/upsserver.meta 	/epoc32/tools/makefile_templates/security/upsserver.meta
+../../../toolsandutils/buildsystem/extension/security/upsserver.mk 		/epoc32/tools/makefile_templates/security/upsserver.mk
+../../../toolsandutils/buildsystem/extension/syslibs/conversiontable.meta 	/epoc32/tools/makefile_templates/syslibs/conversiontable.meta
+../../../toolsandutils/buildsystem/extension/syslibs/conversiontable.mk 		/epoc32/tools/makefile_templates/syslibs/conversiontable.mk
+../../../toolsandutils/buildsystem/extension/syslibs/fm_copyfile_to_winscw_zdrive.meta 	/epoc32/tools/makefile_templates/syslibs/fm_copyfile_to_winscw_zdrive.meta
+../../../toolsandutils/buildsystem/extension/syslibs/fm_copyfile_to_winscw_zdrive.mk 	/epoc32/tools/makefile_templates/syslibs/fm_copyfile_to_winscw_zdrive.mk
+../../../toolsandutils/buildsystem/extension/syslibs/generate_cpp.meta 		/epoc32/tools/makefile_templates/syslibs/generate_cpp.meta
+../../../toolsandutils/buildsystem/extension/syslibs/generate_cpp.mk 		/epoc32/tools/makefile_templates/syslibs/generate_cpp.mk
+../../../toolsandutils/buildsystem/extension/syslibs/generate_snm.meta 		/epoc32/tools/makefile_templates/syslibs/generate_snm.meta
+../../../toolsandutils/buildsystem/extension/syslibs/generate_snm.mk 		/epoc32/tools/makefile_templates/syslibs/generate_snm.mk
+../../../toolsandutils/buildsystem/extension/techview/uiklaf_resource.meta	/epoc32/tools/makefile_templates/techview/uiklaf_resource.meta
+../../../toolsandutils/buildsystem/extension/techview/uiklaf_resource.mk		/epoc32/tools/makefile_templates/techview/uiklaf_resource.mk
+../../../toolsandutils/buildsystem/extension/tools/features.meta 	/epoc32/tools/makefile_templates/tools/features.meta
+../../../toolsandutils/buildsystem/extension/tools/features.mk 		/epoc32/tools/makefile_templates/tools/features.mk
+../../../toolsandutils/buildsystem/extension/tools/kif.meta		/epoc32/tools/makefile_templates/tools/kif.meta
+../../../toolsandutils/buildsystem/extension/tools/kif.mk		/epoc32/tools/makefile_templates/tools/kif.mk
+../../../toolsandutils/buildsystem/extension/tools/stlport.meta 		/epoc32/tools/makefile_templates/tools/stlport.meta
+../../../toolsandutils/buildsystem/extension/tools/stlport.mk 		/epoc32/tools/makefile_templates/tools/stlport.mk
+../../../toolsandutils/buildsystem/extension/tools/compsupp.meta		/epoc32/tools/makefile_templates/tools/compsupp.meta
+../../../toolsandutils/buildsystem/extension/tools/compsupp.mk 		/epoc32/tools/makefile_templates/tools/compsupp.mk
+../../../toolsandutils/buildsystem/extension/tools/x86tool.meta 		/epoc32/tools/makefile_templates/tools/x86tool.meta
+../../../toolsandutils/buildsystem/extension/tools/x86tool.mk 		/epoc32/tools/makefile_templates/tools/x86tool.mk
+../../../toolsandutils/buildsystem/extension/tools/ant_launch.flm	/epoc32/tools/makefile_templates/tools/ant_launch.flm
+../../../toolsandutils/buildsystem/extension/tools/ant_launch.xml	/epoc32/tools/makefile_templates/tools/ant_launch.xml
+../../../toolsandutils/buildsystem/shell/cmd.mk 				/epoc32/tools/shell/cmd.mk
+../../../toolsandutils/buildsystem/shell/generic.mk 			/epoc32/tools/shell/generic.mk
+../../../toolsandutils/buildsystem/shell/sh.mk				/epoc32/tools/shell/sh.mk
+
+
+PRJ_TESTEXPORTS
+
+../../../toolsandutils/buildsystem/extension/app-services/tzlocaltestserver.meta	/epoc32/tools/makefile_templates/app-services/tzlocaltestserver.meta
+../../../toolsandutils/buildsystem/extension/app-services/tzlocaltestserver.mk		/epoc32/tools/makefile_templates/app-services/tzlocaltestserver.mk
+../../../toolsandutils/buildsystem/extension/syslibs/test/bafl_copytestfiles.meta	/epoc32/tools/makefile_templates/syslibs/test/bafl_copytestfiles.meta
+../../../toolsandutils/buildsystem/extension/syslibs/test/bafl_copytestfiles.mk		/epoc32/tools/makefile_templates/syslibs/test/bafl_copytestfiles.mk
+../../../toolsandutils/buildsystem/extension/syslibs/test/bafl_resource_files.meta	/epoc32/tools/makefile_templates/syslibs/test/bafl_resource_files.meta
+../../../toolsandutils/buildsystem/extension/syslibs/test/bafl_resource_files.mk	/epoc32/tools/makefile_templates/syslibs/test/bafl_resource_files.mk
+../../../toolsandutils/buildsystem/extension/syslibs/test/centrep_copydatfile.meta	/epoc32/tools/makefile_templates/syslibs/test/centrep_copydatfile.meta
+../../../toolsandutils/buildsystem/extension/syslibs/test/centrep_copydatfile.mk	/epoc32/tools/makefile_templates/syslibs/test/centrep_copydatfile.mk
+../../../toolsandutils/buildsystem/extension/syslibs/test/centrep_copyincentrepsrv.meta		/epoc32/tools/makefile_templates/syslibs/test/centrep_copyincentrepsrv.meta
+../../../toolsandutils/buildsystem/extension/syslibs/test/centrep_copyincentrepsrv.mk		/epoc32/tools/makefile_templates/syslibs/test/centrep_copyincentrepsrv.mk
+../../../toolsandutils/buildsystem/extension/syslibs/test/centrep_copypctestfile.meta		/epoc32/tools/makefile_templates/syslibs/test/centrep_copypctestfile.meta
+../../../toolsandutils/buildsystem/extension/syslibs/test/centrep_copypctestfile.mk		/epoc32/tools/makefile_templates/syslibs/test/centrep_copypctestfile.mk
+../../../toolsandutils/buildsystem/extension/syslibs/test/centrep_copypctestfilev2.meta		/epoc32/tools/makefile_templates/syslibs/test/centrep_copypctestfilev2.meta
+../../../toolsandutils/buildsystem/extension/syslibs/test/centrep_copypctestfilev2.mk		/epoc32/tools/makefile_templates/syslibs/test/centrep_copypctestfilev2.mk
+../../../toolsandutils/buildsystem/extension/syslibs/test/charconv_testpostbuild.meta		/epoc32/tools/makefile_templates/syslibs/test/charconv_testpostbuild.meta
+../../../toolsandutils/buildsystem/extension/syslibs/test/charconv_testpostbuild.mk		/epoc32/tools/makefile_templates/syslibs/test/charconv_testpostbuild.mk
+../../../toolsandutils/buildsystem/extension/syslibs/test/charconv_tiso8859x_generate_cpp.meta		/epoc32/tools/makefile_templates/syslibs/test/charconv_tiso8859x_generate_cpp.meta
+../../../toolsandutils/buildsystem/extension/syslibs/test/charconv_tiso8859x_generate_cpp.mk		/epoc32/tools/makefile_templates/syslibs/test/charconv_tiso8859x_generate_cpp.mk
+../../../toolsandutils/buildsystem/extension/syslibs/test/charconv_tsnmdata.meta		/epoc32/tools/makefile_templates/syslibs/test/charconv_tsnmdata.meta
+../../../toolsandutils/buildsystem/extension/syslibs/test/charconv_tsnmdata.mk			/epoc32/tools/makefile_templates/syslibs/test/charconv_tsnmdata.mk
+../../../toolsandutils/buildsystem/extension/syslibs/test/dbms_copytestdbscfiles.meta		/epoc32/tools/makefile_templates/syslibs/test/dbms_copytestdbscfiles.meta
+../../../toolsandutils/buildsystem/extension/syslibs/test/dbms_copytestdbscfiles.mk		/epoc32/tools/makefile_templates/syslibs/test/dbms_copytestdbscfiles.mk
+../../../toolsandutils/buildsystem/extension/syslibs/test/ecom3_buildsis.meta			/epoc32/tools/makefile_templates/syslibs/test/ecom3_buildsis.meta
+../../../toolsandutils/buildsystem/extension/syslibs/test/ecom3_buildsis.mk			/epoc32/tools/makefile_templates/syslibs/test/ecom3_buildsis.mk
+../../../toolsandutils/buildsystem/extension/syslibs/test/ecom3_postbuild.meta			/epoc32/tools/makefile_templates/syslibs/test/ecom3_postbuild.meta
+../../../toolsandutils/buildsystem/extension/syslibs/test/ecom3_postbuild.mk			/epoc32/tools/makefile_templates/syslibs/test/ecom3_postbuild.mk
+../../../toolsandutils/buildsystem/extension/syslibs/test/ecom3_relocatetarget.meta		/epoc32/tools/makefile_templates/syslibs/test/ecom3_relocatetarget.meta
+../../../toolsandutils/buildsystem/extension/syslibs/test/ecom3_relocatetarget.mk		/epoc32/tools/makefile_templates/syslibs/test/ecom3_relocatetarget.mk
+../../../toolsandutils/buildsystem/extension/syslibs/test/featmgr_moveplugin.meta		/epoc32/tools/makefile_templates/syslibs/test/featmgr_moveplugin.meta
+../../../toolsandutils/buildsystem/extension/syslibs/test/featmgr_moveplugin.mk			/epoc32/tools/makefile_templates/syslibs/test/featmgr_moveplugin.mk
+../../../toolsandutils/buildsystem/extension/syslibs/test/logeng_copytestfiles.meta		/epoc32/tools/makefile_templates/syslibs/test/logeng_copytestfiles.meta
+../../../toolsandutils/buildsystem/extension/syslibs/test/logeng_copytestfiles.mk		/epoc32/tools/makefile_templates/syslibs/test/logeng_copytestfiles.mk
+../../../toolsandutils/buildsystem/extension/syslibs/test/sql_copyperfsqltestfiles.meta		/epoc32/tools/makefile_templates/syslibs/test/sql_copyperfsqltestfiles.meta
+../../../toolsandutils/buildsystem/extension/syslibs/test/sql_copyperfsqltestfiles.mk		/epoc32/tools/makefile_templates/syslibs/test/sql_copyperfsqltestfiles.mk
+../../../toolsandutils/buildsystem/extension/syslibs/test/sql_copysqltestfiles.meta		/epoc32/tools/makefile_templates/syslibs/test/sql_copysqltestfiles.meta
+../../../toolsandutils/buildsystem/extension/syslibs/test/sql_copysqltestfiles.mk		/epoc32/tools/makefile_templates/syslibs/test/sql_copysqltestfiles.mk
+../../../toolsandutils/buildsystem/extension/syslibs/test/sqlite3_copysqlite3testfiles.meta	/epoc32/tools/makefile_templates/syslibs/test/sqlite3_copysqlite3testfiles.meta
+../../../toolsandutils/buildsystem/extension/syslibs/test/sqlite3_copysqlite3testfiles.mk	/epoc32/tools/makefile_templates/syslibs/test/sqlite3_copysqlite3testfiles.mk
+../../../toolsandutils/buildsystem/extension/syslibs/test/sqlite3_securecopytestfiles.meta	/epoc32/tools/makefile_templates/syslibs/test/sqlite3_securecopytestfiles.meta
+../../../toolsandutils/buildsystem/extension/syslibs/test/sqlite3_securecopytestfiles.mk	/epoc32/tools/makefile_templates/syslibs/test/sqlite3_securecopytestfiles.mk
+../../../toolsandutils/buildsystem/extension/syslibs/test/xml_sitestfiledist.meta		/epoc32/tools/makefile_templates/syslibs/test/xml_sitestfiledist.meta
+../../../toolsandutils/buildsystem/extension/syslibs/test/xml_sitestfiledist.mk			/epoc32/tools/makefile_templates/syslibs/test/xml_sitestfiledist.mk
+../../../toolsandutils/buildsystem/extension/syslibs/test/xml_stringdictionary00tagtable.meta	/epoc32/tools/makefile_templates/syslibs/test/xml_stringdictionary00tagtable.meta
+../../../toolsandutils/buildsystem/extension/syslibs/test/xml_stringdictionary00tagtable.mk	/epoc32/tools/makefile_templates/syslibs/test/xml_stringdictionary00tagtable.mk
+../../../toolsandutils/buildsystem/extension/syslibs/test/xml_syncmltestfiledist.meta		/epoc32/tools/makefile_templates/syslibs/test/xml_syncmltestfiledist.meta
+../../../toolsandutils/buildsystem/extension/syslibs/test/xml_syncmltestfiledist.mk		/epoc32/tools/makefile_templates/syslibs/test/xml_syncmltestfiledist.mk
+../../../toolsandutils/buildsystem/extension/syslibs/test/xml_wmltestfiledist.meta		/epoc32/tools/makefile_templates/syslibs/test/xml_wmltestfiledist.meta
+../../../toolsandutils/buildsystem/extension/syslibs/test/xml_wmltestfiledist.mk		/epoc32/tools/makefile_templates/syslibs/test/xml_wmltestfiledist.mk
+../../../toolsandutils/buildsystem/extension/syslibs/test/xml_xmlcmatchdatapostbuild.meta	/epoc32/tools/makefile_templates/syslibs/test/xml_xmlcmatchdatapostbuild.meta
+../../../toolsandutils/buildsystem/extension/syslibs/test/xml_xmlcmatchdatapostbuild.mk		/epoc32/tools/makefile_templates/syslibs/test/xml_xmlcmatchdatapostbuild.mk
+../../../toolsandutils/buildsystem/extension/syslibs/word_template.meta			/epoc32/tools/makefile_templates/syslibs/word_template.meta
+../../../toolsandutils/buildsystem/extension/syslibs/word_template.mk			/epoc32/tools/makefile_templates/syslibs/word_template.mk
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/group/build.txt	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,4 @@
+To build e32toolp, call
+
+\e32toolp\group\setupprj.bat
+\e32toolp\group\bld.bat rel
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/group/info.txt	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,184 @@
+SETUPPRJ.BAT
+============
+SETUPPRJ will create a BLD.BAT file in the GROUP directory and
+read the LI.PRJ file in other second-level directories, creating
+a BLD.BAT in each which will provide commands for building any
+.BAT, .PL and .PM files to \epoc32\tools.
+SETUPPRJ will also create \E32TOOLP\GROUP\E32TOOLP.REL
+
+PERLPREP.BAT
+============
+PERLPREP strips "use strict;" debugging lines out
+of .PL and .PM files and perl warning generation -w flag out of .BAT
+files.  It is used for REL builds of E32TOOLP.
+
+RELEASING E32TOOLP
+==================
+make changes to source
+change release.txt - update the date and "made by" details
+add any new files which contain a version number to setver.bat
+(remember perl files can use the service in E32TPVER.PM).
+cd \e32toolp\group
+run setver [version] to apply the latest version number.
+cd \e32toolp
+cvs commit to commit the version changes
+cd \e32toolp\group
+do setupprj to create the batch and .rel file
+do bld clean
+do bld rel
+Prep the tree for release to PVCS:
+cd \
+perl \tools\pvcs-release.pl -f e32toolp
+Tag the modules you're releasing:
+cd \e32toolp
+cvs tag E32TOOLPvNNN
+Move the Latest-Release tag to the new files:
+cvs rtag -d Latest-Release e32toolp
+cvs rtag -r E32TOOLPvNNN Latest-Release e32toolp
+cd \e32toolp\group
+Create a vdiff.lis file with mnt difsrc <previous release>
+do set vcsid=BASETEAM
+do mnt lock  to make sure BASETEAM has the lock for all li.prj files
+do mnt putsrc
+do mnt versrc
+do mnt putrel
+do set vcsid=<your vcsid>
+cd \e32toolp
+Tag the release as complete (on the main branch)
+	cvs tag Release-NNN-complete
+go to the root of a clean drive
+getrel e32toolp tools <version>
+check it basically works - eg bldmake, makmake /mmp
+rd /s /q epoc32
+pgetbld e32toolp group
+setupprj
+bld rel
+mnt valid
+check \e32toolp\valid.lis
+update Lotus Notes
+update tlmakmak.rtf
+
+OTHER INFO
+==========
+CASE SENSITIVITY
+	Perl pattern-matching is twice as quick if it's done case-sensitive - keep
+	all data uppercase except when it's actually being outputted - at that point
+	it  can be formatted by doing something like ucfirst lc ...
+	This is important so that pattern-matching done on data can assume
+	uppercase.
+
+CPP
+	cpp assumes with -M and -MG that missing user headers live in the same directory as the
+	source while missing system headers live in the first system include directory specified.
+	This is not in fact true.  CPP always searches the directory containing the source file
+	for headers if no user include path is specified explicitly.  Then, and only then, if the
+	-MG option is specified to -M cpp will just bang out the missing files without a path,
+	whether or not they exist in the current directory or not.  This means that if cpp is
+	invoked in a makefile, (this probably applies to gcc too), cpp will fail unless these headers
+	without a path exist in the working directory. 
+
+	cpp doesn't replace lines of text within #defines within other #defines 
+	with blank space if the lines aren't applicable for the current set of
+	macros.  This can upset makmake's reporting of correct line numbers for errors.
+
+	cpp documentation states that a space is put at the end of a macro expansion
+	"most of the time".  We need to strip this back out after cpp has done its
+	preprocessing in prepfile.pm.  By expanding macros to themselves with three
+	leading underscores we can tell where a macro has been expanded and strip
+	the space added.
+
+MAKMAKE MODULE DESIGN
+	the IDE/CL modules should provide
+	a complete list of possible build variants and be designed in such a way that a particular
+	implementation would not have to use all the builds if it didn't want to.  I think this
+	will be the case already.  So, for example, if MISA could not do RELGDB the the CL_ARM code
+	should never assume that all builds are required (except DEB or REL, which we must insist upon as a
+	default in some cases).
+
+
+QUOTES IN MAKEFILES
+
+	Must be consistent with quotes round long filenames.  If remove quotes round .in
+	file as a target to appease ar, the target will not be found and relgdb will not
+	build.  It seems that without the quotes the filename is parsed so the leading .\
+	on the front of the relgdb paths no longer makes a difference so rel and relgdb
+	targets are considered the same.  This means that rules for the rel and relgdb .in
+	file, if it is around this target that the quotes are removed, and all subsequent
+	dependencies and rules, will be done for each source file - eg gcc looks like it
+	will be called twice with different flags.  For the relgdb build nmake will complain
+	that it doesn't know how to build the .in file because it sees it as a dependency of
+	the main target with quotes and doesn't recognise it as the same thing appearing later
+	as a target without quotes because the .\ is parsed out.  The rel build doesn't complain
+	because it has no preceding .\ to parse out.  In short, filenames without quotes are parsed and
+	amount to the same thing as filenames with quotes if the only difference between the two is the
+	quotes and not the path itself.
+
+
+COMPILER FLAGS
+==============
+
+ALL BUILDS
+/nologo    - dont display the banner
+/Zp4       - Zp[n] - pack structs on n-byte boundary (whatever that means) /W4        - top level warnings
+/Fo<file>  - specifies object file (left blank so base name taken from .cpp     
+file)
+/c         - compile only, don't link because we'll be linking later
+
+SPECIAL CASES
+
+/ML     - Use run-time library -> Single-threaded       (WINS exe release) /MD     - Use run-time library -> Multi-threaded DLL    (WINS dll release)
+these two flags have "d" appended for debug builds so that the respective debug run-time library is used instead.  These flags are probably unnecessary for all projects not using Win32 libraries but MSVC puts them in by default, and it doesn't do any harm to have them I don't think
+
+/O1     - minimum size optimisation (WINS release)
+/Ob1    - disable inline function expansion (WINS release)  (reason uncertain!)
+
+/Od     - disable optimisations (WINS debug)
+
+/Zi     - generate debugging info into program database (WINS debug)
+
+/FR     - generate browse info (WINS debug)
+
+/Fd<file>     - name program database (WINS debug)
+
+/X      - suppresses searching of include directories specified by environmental
+include variable (so used for all projects not using Win32 services)
+
+
+LINKER FLAGS
+============
+
+ALL BUILDS
+/nologo                 - suppress startup banner /subsystem:windows      - MSVC always puts this in anyway /machine:IX86           - ditto
+/out:<file>             - specifies filename for target /WARN:3                 - top-level warnings
+/nodefaultlib           - don't use Win32 libraries (if any are being used then 
+they are listed before this flag and so are not        
+affected by it)
+
+SPECIAL CASES
+/baseaddress:<hex num>  - base address for DLLs, specified by user /entry:"_E32Startup"    - EPOC32 entry point for EXEs /entry:"_E32Dll"        - EPOC32 entry point for DLLs
+
+/incremental:no         - (WINS release) - presumably so a full-link is always  
+performed
+/incremental:yes        - (WINS debug)  - presumably to save time linking-fully 
+when working on a project
+
+/dll                    - (WINS dll targets)
+
+/pdb<file>              - (WINS debug) <file> names program database
+
+/deffile:<file>         - (WINS dll targets) <file> specifies a def file to     
+refer to if one is specified by the user
+
+/implib:<file>          - specifies name of import library to be created for dll
+targets if one is to be created
+
+/debug                  - (WINS debug)  generates debugging information
+
+
+SOURCES OF INFORMATION FOR MAKMAKE ETC
+======================================
+NMAKE Reference in MSVC help
+Cygnus help files in R:\gcc\help - eg cpp.hlp
+Lotus notes - Epoc Software Design - Development Environment - suggestions
+for better build procedures
+Perl newsgroups
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/group/perlprep.bat	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,58 @@
+@rem
+@rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+@rem All rights reserved.
+@rem This component and the accompanying materials are made available
+@rem under the terms of "Eclipse Public License v1.0"
+@rem which accompanies this distribution, and is available
+@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem
+@rem Initial Contributors:
+@rem Nokia Corporation - initial contribution.
+@rem
+@rem Contributors:
+@rem
+@rem Description:
+@rem
+@echo off
+
+REM a basic perl preprocessor
+
+if exist %0.bat perl -x %0.bat %1 %2 %3 %4 %5
+if exist %0 perl -x %0 %1 %2 %3 %4 %5
+GOTO End
+
+#!perl
+
+use strict;
+
+die "Usage:\nPERLPREP [infile] [outfile]\n" unless @ARGV==2;
+
+my ($INFILE, $OUTFILE)=map lc $_, @ARGV;
+die "Can't find $INFILE\n" unless -e $INFILE;
+
+if ($INFILE=~/\.(bat|cmd|pm|pl)$/io) {
+	open INFILE,$INFILE or die "Can't open $INFILE: $!\n";
+	my $FileText='';
+	while (<INFILE>) {
+		s/(perl)(\.exe)?\s+-w/$1$2/io;		# remove perl -w switch - has to be first switch
+		s/use\s+strict;\s*\n//oe;	# remove use strict; statement
+		$FileText.=$_;
+	}
+	close INFILE or die "Can't close $INFILE: $!\n";
+	open OUTFILE,">$OUTFILE" or die "Can't open $OUTFILE: $!\n";
+	print OUTFILE $FileText;
+	close OUTFILE or die "Can't close $OUTFILE: $!\n";
+}
+else {
+	system "copy $INFILE $OUTFILE";
+}
+
+
+__END__
+
+:End
+
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/group/release.txt	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,3863 @@
+Version 0.01.674
+================
+(Made by Zheng Shen 16/12/2009)
+1) Marvin Shi
+	DEF143406  symbian BV build failed for feature variant target build 
+
+Version 0.01.673
+================
+(Made by Marvin Shi 25/11/2009)
+1) Yan Jin
+	DEF143140  Toolsmod integrate to ABLD
+2) Zheng Shen
+	DEF143198  ABLD cannot build STD project when standard C++ support is not available 
+	
+Version 0.01.672
+================
+(Made by Marvin Shi 13/11/2009)
+1) Zheng Shen
+  DEF143038 ABLD is in poor performance on feature variant handling
+2) Marvin Shi
+  DEF142311  SBSv1 hangs when building for GCCE if RVCT license server not available 
+ 	
+Version 0.01.671
+================
+(Made by Vino Jose 24/09/2009)
+
+1) VincentF
+	DEF142155 h2inc.pl produces wrong output with 64-bit Perl
+
+Version 0.01.670
+================
+(Made by Ross Qin, 15/09/2009)
+1) Yan Jin
+	PDEF142025 ABLD LIBRARY ARMV6 does not get exported correct to ARMV6 folder 
+
+Version 0.01.669
+================
+(Made by Ross Qin, 11/09/2009)
+1) Zheng Shen
+	DEF142005 Remove the hardcode RVCT path when RVCT auto switch feature is disabled
+
+Version 0.01.668
+================
+(Made by Zhi Dou, 24/08/2009)
+1) Marvin Shi
+	DEF141643 boost library integration causes dependency warning
+
+Version 0.01.667
+================
+(Made by Zhi Dou, 13/07/2009)
+1) Marvin Shi
+	PDEF138235 [StrayScanner]GCCXML build macros out-of-date 
+
+Version 0.01.666
+================
+(Made by JohnS, 24/02/2009)
+1) MichaelMoate
+	DEF135478 tools_e32toolp.mrp is missing entries for naviengine extension makefiles
+
+Version 0.01.665
+================
+(Made by SivashankarN, 14/11/2008)
+1) Dan Handley
+	DEF128540 Building for the x86gcc platform by default!
+
+Version 0.01.664
+================
+(Made by Kun Xu, 17/06/2008)
+1) Kun Xu
+	PDEF122710 Problems in cl_bpabi.pm impacting Java builds.
+	PDEF123589 ARMV6 BSF handled incorrectly in tools.
+
+Version 0.01.663
+================
+(Made by ParameshwariB, 23/05/2008)
+1) TomCosgrove
+	DEF123134: X86 GCC only: Don't delete the PE-COFF files; they are needed by GDB
+
+Version 0.01.662
+================
+(Made by William Roberts, 22/04/2008)
+1) William Roberts
+	Move make.exe and scpp.exe into e32toolp\binutils directory, and
+	add zip files of the matching source code, comply with the GPL license
+	Adjust setupprj.bat and bld.inf accordingly.
+
+Version 0.01.662
+================
+(Made by Iain Williamson, 08/04/2008)
+1) Iain Williamson
+	GT0367 MS3.2.1 DS781 PREQ1902: Product Creation Tools: Kit Information File
+
+Version 0.01.661
+================
+(Made by Jon Chatten, 06/02/2008)
+1) Jon Chatten
+	DEF117441: SBSv2 - e32toolp should support .rfi generation for GCCXML builds
+
+Version 0.01.660
+================
+(Made by Jon Chatten, 17/01/2008)
+1) Jon Chatten
+	DEF116424: ABLD should ignore the DEPENDS keyword in .mmp file START RESOURCE blocks
+
+Version 0.01.659
+================
+(Made by Peter Harper, 20/12/2007)
+1) Peter Harper
+	CR1234: Product Usability: Fix Symbian's Binary Variation Solution
+	Needs new verion of GCC CPP (Symbian build 548)
+
+Version 0.01.658
+================
+(Made by Jon Coppeard, 15/11/2007)
+1) Jon Coppeard
+	DEF114126: maksym can be speeded up
+
+Version 0.01.657
+================
+(Made by Mool Chand Tyagi, 12/10/2007)
+1) Mool Chand Tyagi
+	PREQ1338: Supporting Static analysis tool in ABLD
+
+Version 0.01.656
+================
+(Made by Saravana KumarP, 27/09/2007)
+1) Saravana KumarP
+	PREQ1801: Feature Manager supporting tool enhancements
+
+Version 0.01.655
+================
+(Made by YiluZhu, 29/08/2007)
+1) YiluZhu
+	DEF110344: [TCL Build]:Warnings related to tools_sdb in DP00005 
+
+Version 0.01.654
+================
+(Made by AndrewSmi, 09/08/2007)
+1) AndrewSmi
+	DEF110094: Run mode debug: debuggable keyword not supported for armv5_abiv1 in MCL
+
+Version 0.01.653
+================
+(Made by Stephen Mansfield 22/08/2007)
+1) stephenm
+    DEF110923: Add new PLUGIN3 target type for EC43 ECOM Interface Extensions
+
+Version 0.01.652
+================
+(Made by Saurabh, 6/08/2007)
+1) Saurabh
+	PDEF107553: Symbian should treat wchar_t as default datatype for OETYPE building any project. 
+
+Version 0.01.651
+================
+(Made by Madhu, 20/07/2007)
+1) Madhu
+	PDEF109271: maksym sometimes ignores ctors & dtors in preference to "sub_objects". 
+
+Version 0.01.650
+================
+(Made by Andrew Haigh, 17/05/2007)
+1) AndrewHaigh
+	PREQ1426: Added support for DEBUGGABLE MMP keyword.
+
+
+================
+(Made by Dusko,  12/12/2006)
+1) Dusko
+	PDEF096684: RF LOCAL_BUILD_PATH is causing build problems with RVCT but works with WINSCW
+
+Version 0.01.648
+================
+(Made by Dusko,  24/11/2006)
+1) KunalM
+	DEF097985  - TOOLS2 build platform doesn't provide the advertised macros correctly
+
+Version 0.01.647
+================
+(Made by Kunal,  08/11/2006)
+1) KunalM
+   PREQ1182 - GNU Make-based build system
+   MS3.6 DS .425 	
+
+Version 0.01.646
+================
+(Made by Dusko,  06/11/2006)
+1) JonC
+   PDEF096296 - Build system generated paths/files don't all comply with the Filename Policy
+
+Version 0.01.645
+================
+(Made by Dusko,  11/10/2006)
+1) Dusko
+DEF093326: MAKSYMROFS.PL broken by changes to rofsbuild log format
+
+Version 0.01.644
+================
+(Made by Dusko,  27/09/2006)
+1) JohanG
+	DEF090303: TARGETTYPE LIB should not permit additional LIBRARY statements.
+
+Version 0.01.643
+================
+(Made by Dusko,  12/09/2006)
+1) JonC
+	Fix for DEF093939 - "abld -checksource" benign warnings are picked up by SCANLOG.
+
+Version 0.01.642
+================
+(Made by Srinivaskv,  11/09/2006)
+1)Srinivaskv
+        BR1874.1 The Instcol.exe build utility is no longer useful as there is no need to deal with black and white screens.Hence this legacy tool should be removed.
+
+Version 0.01.641
+================
+(Made by Dusko,  05/09/2006)
+1) Dusko
+	DEF093365 abld reallyclean not working for h2 
+	INC090726 Failure to replace zip files in abld export if existing files have later times  
+2)	JonC
+	DEF093291 - "abld -checksource" ignores WIN32_LIBRARY statements
+	DEF093289: FIXSOURCE doesn't deal with exclusion list entries correctly
+	
+Version 0.01.640
+================
+(Made by JonathanM,  01/09/2006)
+1) AttilaV
+	DEF091560 Warning when using PAGED keyword in MMP file
+
+Version 0.01.639
+================
+(Made by JonC,  09/08/2006)
+1) JonC
+	Oghma,GT0312,MS3.1 DS.188 - PREQ1182: System-wide: Application of Filename Policy to production build 
+
+Version 0.01.638
+================
+(Made by Dusko,  31/07/2006)
+1) Dusko
+	PDEF087907: Size of compiled resource file is limited up to 64KB
+
+Version 0.01.637
+================
+(Made by Dusko,  25/07/2006)
+1) Dusko
+	INC088496 .c files are compiled with -c90 even if -cpp is specified in the OPTIONS list
+2) JohanG 
+	PDEF090318 Targetpath cases need to match
+3)	JonC
+	DEF088256 CW >=3.1 IDE builds and multiple LANG statements - brok
+
+Version 0.01.636
+================
+(Made by Dusko, 20/07/2006)
+1) Jon Chatten 
+	DEF090302  PRJ_EXPORTS sections in bld.inf files don't support local relative destinations	
+
+
+Version 0.01.635
+================
+(Made by Dusko,  23/06/2006)
+1) Dusko
+	INC088374 Catalogs_3.1 does not compile on S60 3.1 build robot (SOS 9.2 wk24)	
+
+Version 0.01.634
+================
+(Made by Dusko,  23/06/2006)
+1) Rajeswari Rajan
+	INC087802: GCCE Linker can't handle dependencies correctly with -O2 optimization
+
+Version 0.01.633
+================
+(Made by Dusko, 19/06/2006)
+1) JohanG
+	DEF067717: printsym.pl doesn't show DLL name for DLLs without symbols
+
+Version 0.01.632
+================
+(Made by Dusko, 15/06/2006)
+1) JohanG
+	DEF066625: MMP XML files have wrong name to fixes branch.
+	DEF087354: abld makefile - dependencies don't work for user header files
+	DEF087077 S60 3.0: GCCE Compiler/Linker will not link static libraries with circular depen
+	DEF087811 GCCE build broken - elf2e32 not update
+	DEF080212 Extension makefile setupprj step doesn't work if Cygwin is in the path
+	DEF086001 cl_bpabi: reorder the list of linked static libraries to support gcce compiler
+
+2) Dusko 
+	PDEF087156 evalid doesn't ignore RCS tags in header files 
+
+3) SatyakamM
+	DEF087646 Broken MakHelp.pm in MCL 
+
+Version 0.01.631
+================
+(Made by DavidM, 26/05/2006)
+
+1.	AttilaV
+	Milestone: Argus,GT0286,MS3.2
+	Extended MAKMAKE (MAKAKE.PL, MMP.PM, CL_ARM.pm, CL_BPAPI.pm, MAKHELP.PM) to handle new compression related MMP keywords and
+	pass the compression parameter to ELFTRAN/ELF3E32 in tha makefiles.
+
+Version 0.01.630
+================
+(Made by Dusko, 31/05/2006)
+1) JohanG
+	DEF087163 cl_gccml.pm corrupts the mmp.xml generated for GXP files (and CDB)
+2) JonC 
+	DEF087148 "abld -check" sensitive to EC MAKE descriptive output 
+
+Version 0.01.629
+================
+(Made by Dusko, 30/05/2006)
+1) SatyakamM
+	DEF083913: efreeze does'nt mark the frozen DATA symbols as DATA
+
+Version 0.01.628
+================
+(Made by Dusko, 25/05/2006)
+1) Dusko
+	DEF073575 "bldmake -v bldfiles" produces incorrect output
+
+Version 0.01.627
+================
+(Made by Dusko, Mon 19/05/2006)
+1) Johan Groth
+	DEF077591 Dependency generation cannot be turned of in Java builds 
+	DEF084331 Can't find produced GCCXML files in some cases
+	DEF066625 MMP XML files have wrong name 
+	DEF078382 MMP: STRINGTABLE doesn't support forward slashed paths 
+ 
+Version 0.01.626
+================
+(Made by Dusko, Mon 08/05/2006)
+1) Dusko
+	INC084690 Bldmake fails when RVCT isn't installed
+
+Version 0.01.625
+================
+(Made by Dusko, 13/04/2006)
+1) Dusko
+	DEF075216 Tools stubs+abld+tranasm doesnt work
+
+Version 0.01.624
+================
+(Made by JonC, 03/04/2006)
+1) JonC
+	INC079605 Build tools path length limitations
+
+Version 0.01.623
+================
+(Made by Dusko, 23/03/2006)
+1) SatyakamM
+	DEF083247 DEF File oddity - MW linker failure 
+
+Version 0.01.622
+================
+(Made by Dusko, 21/03/2006)
+1) Dusko
+	DEF082351: CW IDE GCCE project creation broken...
+
+Version 0.01.621
+================
+(Made by Dusko, 16/03/2006)
+1) Dusko
+	DEF081536: TARGET keyword is still required with TARGETTYPE NONE
+
+Version 0.01.620
+================
+(Made by Dusko, 07/03/2006)
+1) Dusko
+	DEF080983 .dso files are missing 
+	DEF075343 epocrc.pl is ceateing incorrect .INFO files
+	DEF081762 Incorrectly flipping the file extension for STATICLIBS 
+
+
+Version 0.01.619
+================
+(Made by Dusko, 20/02/2006)
+1) Dusko
+	DEF080567 epocrc.bat script only allows 9 parameters 
+	EF080568 Cannot force C++ compile for ARMV5 builds
+	DEF078622 "abld build gccxml" broken.
+
+Version 0.01.618
+================
+(Made by Jonc, 15/02/2006)
+1) JonC
+	DEF080188 START STRINGTABLE doesn't permit use of the temp generated header only
+
+Version 0.01.617
+================
+(Made by Jonc, 30/01/2006 and 03/02/2006)
+1) JonC
+	 PREQ1366 - Prepare codebase for Linux-hosted system build
+	 Argus, GT0282, MS3.6, DS.138, Tight and Loose Integration Extension Makefiles Tools Support
+
+Version 0.01.616
+================
+(Made by Dusko, 05/01/2006)
+
+1)	Dusko
+	INC073941: Symbian build tools override "--cpu" ARMCC parameter
+2)	JonC
+	DEF075532 - CR ABEK-6CYHEC has broken EVALID ELF comparisons
+
+Version 0.01.615
+================
+(Made by Dusko, 09/12/2005)
+	1)	Dusko
+		DEF073923 makmake for gcce platform is failing 
+		DEF074514 PRJ_EXPORTS failure when files #included within bld.infs using "/" in paths 
+		DEF074174 VA_* macros cannot be used with GCCE 
+		DEF075224: cl_gccxml.pm does not separate user and system includes 	
+
+Version 0.01.614
+================
+(Made by JonC, 09/12/2005)
+1)	JonC
+	PREQ1366 - Tools changes as a result of filename policy
+	MS3.4 DS.145
+
+Version 0.01.613
+================
+(Made by Dusko, 16/11/2005)
+1)	JonC
+	PREQ1366 - Prepare codebase for Linux-hosted system build
+	MS3.2 DS.138 BR.1718	
+2)	Dusko
+	DEF068711: bldmake bldfiles <platform> failing.
+3)	KuldipN
+	DEF073602 - Problems integrating new compilers into toolchain
+
+Version 0.01.612
+================
+(Made by JonC, 15/11/2005)
+1) JonC
+	 PREQ1366 - Prepare codebase for Linux-hosted system build
+	 MS3.1 DS.140 BR.1683.1
+
+Version 0.01.611
+================
+(Made by MichaelMo, 08/11/2005)
+
+1) JonCo
+	 DEF071838: Fixupsym.pl can't cope with folders containing "." in their names
+
+Version 0.01.610
+================
+(Made by Dusko, 04/11/2005)
+1) Dusko
+	DEF072548 Tools stubs+abld+def2dll doesn't work
+
+Version 0.01.609
+================
+(Made by KuldipN, 12/10/2005)
+1) KuldipN
+	PREQ1028 - Plug-in compiler integration (DS 063)
+
+Version 0.01.607
+================
+(Made by Dusko, 15/09/2005)
+1) Dusko
+	DEF068226: CW IDE resource builds don't reflect MMP "START RESOURCE" ordering...   
+	DEF068229: CodeWarrior does not list .inl files in its file listing
+
+Version 0.01.606
+(Made by AndrewSmi, 07/09/2005)
+1) AndrewSmi
+	DEF062651 - RComp compiles erronously omitted structs
+	INC061459 - RCOMP is not warning about identifiers being used as strings
+
+Version 0.01.605
+================
+(Made by KuldipN, 06/09/2005)
+1) KuldipN
+	PREQ1028 - Plug-in compiler integration
+
+Version 0.01.604
+================
+(Made by JonC, 05/09/2005)
+1) JonC
+	MINOR_CHANGE - Addition of non-default EDG MAKMAKE backend.
+
+Version 0.01.603
+================
+(Made by Dusko, 19/08/2005)
+1) Dusko
+	DEF066617: OPTION in MMP files for Symbian 9 does not support GCCE.
+
+Version 0.01.602
+================
+(Made by Dusko, 12/08/2005)
+1) Dusko
+	DEF065225 ARMV5 IDE builds differ from their command line counterparts... 
+	DEF066431 Debugging button not available on some targets because bad default setting
+	DEF065954 CodeWarrior Complains about rss files not being included in the project 
+	DEF066129 Make defect has potential to causes failure in MCL 
+
+Version 0.01.601
+================
+(Made by MaximK, 05/08/2005)
+1) RichardCo
+	MINOR_CHANGE: Add optional dir section to metabld mbc file parsing, to aid Base builds.
+
+Version 0.01.600
+================
+(Made by Dusko, 28/07/2005)
+1) Dusko
+	DEF065839 [System Build] BLDMAKE fails to find ARM Version number 
+
+Version 0.01.599
+================
+(Made by JonC, 21/07/2005)
+1) JonC
+      PREQ1032 Hardware-dependent support for "VFP" floating point acceleration and accelerated maths functions
+
+Version 0.01.598
+================
+(Made by Dusko, 15/07/2005)
+1) Marcel
+	TOOLS03801: CodeWarrior Tool back Cannot build Winscw targets if ABIV2 is selected
+
+Version 0.01.597
+================
+(Made by Dusko, 13/07/2005)
+1) Dusko
+	DEF065018 bldmake calls armcc more often than needed 
+	DEF064902 SYM files are not copied into the release directory
+
+Version 0.01.596
+================
+(Made by Dusko, 01/07/2005)
+1) Dusko
+	DEF064173 secdump.exe blows up when you try and use it 
+
+Version 0.01.595
+================
+(Made by Dusko, 29/06/2005)
+1) Dusko
+	DEF064083 Cannot build ARMV5 Target in CodeWarrior starting with build 03635.01 
+	DEF063878 Recognition of C-style trigraphs is not enabled on WINSCW 
+
+Version 0.01.594
+================
+(Made by KuldipN, 22/06/2005)
+1) KuldipN
+	DEF060825  PR0104: Addition of GCCE support to CodeWarrior
+
+Version 0.01.593
+================
+(Made by KuldipN, 15/06/2005)
+1) KuldipN
+	DEF062125  PR104: Custom DLL generation is failing 
+
+Version 0.01.592
+================
+(Made by Dusko, 10/06/2005)
+1) Dusko
+	DEF060666 bldmake.pl checks armv5 compiler version for every "bldmake bldfiles"
+	DEF062217 ARMv4 build broken / --noscanlib should be re-enabled
+	DEF061950 fixupsym passed incorrect parameter to armlink?
+	DEF056540 CW IDE 9.1 builds shouldn't have ARM4 as a default build platform...
+
+Version 0.01.591
+================
+(Made by KuldipN, 27/05/2005)
+1) KuldipN
+      PREQ413   Changes to support the GCCE toolchain.
+      PREQ414   Enable Commercial Compatible Compilers
+      DEF061420 Elf2e32 Problems
+
+Version 0.01.590
+================
+(Made by Dusko, 20/05/2005)
+1) Dusko
+      DEF060878 Abld escapes space characters
+
+Version 0.01.589
+================
+(Made by ChetanaK, 20/05/2005)
+1) Chetana
+	PREQ834 - ARMV6 support in ABIV2 mode.
+
+Version 0.01.588
+================
+(Made by Dusko, 12/05/2005)
+1) Dusko
+         DEF059351 CHANGES TO CW DEFAULT PROJECT IMPORT TEMPALTES NEEDED TO PROGRESS SEMC FIX 
+
+Version 0.01.587
+================
+(Made by KuldipN, 11/05/2005)
+1) KuldipN
+         DEF060826 - PR0104 - PostLinker Memory Leaks
+
+Version 0.01.586
+================
+(Made by Dusko, 10/05/2005)
+1) BalaT
+	DEF061079 EXPORTUNFROZEN fails to create .lib files 
+
+Version 0.01.585
+================
+(Made by KuldipN, 3/05/2005)
+1) KuldipN
+	PREQ413 Changes to support the GCCE toolchain.
+
+Version 0.01.584
+================
+(Made by Dusko, 27/04/2005)
+1) Dusko
+	INC057221 (Tool chain) Log system messages
+    DEF059345 abld.pl incorrectly lists armv5 twice on 'abld help'
+    INC057946 Should be able to conditionally include code for a platform added via a BSF file 
+    INC058044 Symbian should define ECOM_PLUGIN_UDEB 
+
+
+Version 0.01.583
+================
+(Made by BalaT, 14/04/2005)
+1) BalaT
+	DEF058405 : Linker error when building components in CodeWarrior using RVCT 2.2
+
+Version 0.01.582
+================
+(Made by JonathanM, 24/03/2005)
+1) JonathanM
+	DEF058113: Problem when building within the CW IDE 3.0
+2) AndrewR
+	DEF058129: CW unnecessarily intercepts Win32 exceptions
+3) WilliamRo
+	DEF058094 : e32toolp setupprj.bat should always install the "secure" files. 
+
+Version 0.01.581
+================
+(Made by JonC, 18/03/2005)
+1) JonC
+	DEF057405 : ARMv5 build fails with a command line which is too long 
+
+Version 0.01.580
+================
+(Made by Bala, 18/03/2005)
+1) Bala
+	DEF057008 : RVCT2.2 leading edge build fails with errors in base/coreldr files.
+
+Version 0.01.579
+================
+(Made by Bala, 10/03/2005)
+1) Bala
+	DEF056929 : [System Build] ARMv5 errors in build 03514 (9.1)
+
+Version 0.01.578
+================
+(Made by Dusko 09/03/2005)
+1) Dusko
+	DEF054844 - The cwlink files has the command -noimplib attached to its parameter without a s.
+	DEF054512 - fixupsyms.pl on CEDAR does not support RVCT.
+2) Bala
+    DEF056440 - CodeWarrior ARMV5 linking fails 
+
+
+Version 0.01.577
+================
+(Made by Bala, 09/03/2005)
+1) Bala
+	PREQ1027 Submission of some enhancements for RVCT 2.2 Run-Time ABI Compliance to MCL
+
+Version 0.01.576
+================
+(Made by ..., xx/yy/2005)
+1) AndrewR
+	MINOR_CHANGE: Fix link32 command generation in ide_vc6.pm
+
+Version 0.01.575
+================
+(Made by DjordjeK, 21/02/2005)
+1) AndrewR
+	MINOR_CHANGE: Add __SUPPORT_CPP_EXCEPTIONS__ to MS-Dev workspaces
+
+Version 0.01.574
+================
+(Made by Bala, 22/02/2005)
+1) Bala
+	PREQ1027 Submission of RVCT 2.2 Run-Time ABI Compliance to MCL
+
+Version 0.01.573
+================
+(Made by Dusko, 21/02/2005)
+1) Dusko
+	DEF055405 GCCXML fails for projects with more than 150 source files
+
+Version 0.01.572
+================
+(Made by CarlosF, 15/02/2005)
+1) AndrewR
+	MINOR_CHANGE: Fix MS-Dev workspace generation
+
+Version 0.01.571
+================
+(Made by Dusko, 14/02/2005)
+1) Dusko
+	DEF054764 Cannot turn off compression on executables built on EKA2, armv5 platform.
+
+Version 0.01.570
+================
+(Made by ChetanaK, 09/02/2005)
+1) Chetana
+	PREQ834 and PREQ835 - ARMV6 support
+
+Version 0.01.569
+================
+(Made by Dusko, 24/01/2005)
+1) Dusko
+	DEF054203 ABLD LISTING is broken for ARMV5 
+
+Version 0.01.568
+================
+(Made by Dusko, 19/01/2005)
+1) Dusko
+	DEF051245 - Some Base components won't build for ARMV5 within the OEM3.0 IDE
+	DEF052081 - abld listing on ARMV5 doesn't include code addresses
+
+Version 0.01.567
+================
+(Made by Dusko, 18/01/2005)
+1) Dusko
+	DEF052948 - GCCXML Remarks caused by CM concurrency problems.
+
+Version 0.01.566
+================
+(Made by Dusko, 20/12/2004)
+1) Dusko
+	DEF052149 - ABLD output is incorrectly ordered when output is redirected to a file
+	DEF052588 - Problems building test code - case sensitive tools? 
+
+Version 0.01.565
+================
+(Made by Dusko, 20/12/2004)
+1) Dusko
+	1) INC052330 - Problems building AIF files 
+	2) DEF052182 - Local project header file inclusion in CW IDE projects doesn't always work...
+	3) DEF051361 - Remove CTPKG from trgtype.pm file
+
+Version 0.01.564
+================
+(Made by Dusko, 06/12/2004)
+1) Dusko
+	Reverting changes introduced by cln 468659.
+
+Version 0.01.563
+================
+(Made by Dusko, 03/12/2004)
+1) Dusko
+	1) DEF052428 - [System Build]: CBR (make.exe) errors in 03431 builds
+
+Version 0.01.562
+================
+(Made by Dusko, 02/12/2004)
+
+1) Dusko
+	1) DEF052149 - ABLD output is incorrectly ordered when output is redirected to a file
+	2) DEF052182 - Local project header file inclusion in CW IDE projects doesn't always work...
+	3) DEF051361 - Remove CTPKG from trgtype.pm file
+2) BalaT
+	1) DEF050507 - GNU Make Errors in Windows Application Event Log
+
+
+Version 0.01.561
+================
+(Made by JonathanM, 29/11/2004)
+
+1)	JonathanM
+	1)	Add 2 new capabilities SurroundingsDD and UserEnvironment.
+		Part of Change Request CDRS-65RK9F
+
+Version 0.01.560
+================
+(Made by Dusko, 23/11/2004)
+1) BalaT
+	1) DEF051128 - armv5 library build in parallel cause conflicts
+
+2) Dusko
+	1) DEF051237 - bldmake should not include "arm4" in the default list of platforms for 9..0
+	2) DEF051838 - BLDMAKE error if two :zip exports refer to the same directory
+	3) DEF051383 - ARMV5 command line builds can fail with a "via" file buffer over-run
+
+3) Jon 
+	1) DEF051947 - SystemPath is not set when building for CW_IDE:ARM4
+
+
+1) WilliamRo
+	1)	Removed the migration note for MMP files which don't have a VENDORID
+		This has served its purpose, but is now confusing 3rd parties who think
+		that they should apply for a vendor ID - in fact they shouldn't, because this
+		is a compromise mechanism for licensees to use instead of securing some of
+		their APIs. Only signed SIS files are allowed to include vendor IDs.
+		To check a ROM for vendor ID values, look for "Vendor ID:" in the ROMBUILD
+		log file.
+		
+Version 0.01.559
+================
+(Made by JonC, 17/11/2004)
+
+	Yankee,PR0102,MS3.6 (PREQ 417 partial) CW miscellaneous updates
+	MINOR_CHANGE Update to e32toolp CW IDE tests, version and release notes.
+
+Version 0.01.558
+================
+(Made by Dusko, 08/11/2004)
+1) BalaT
+	1) FIX for DEF051333 - [System Build] Makmake plugins don't pass SystemTargetType to makedef
+
+Version 0.01.557
+================
+(Made by Dusko, 05/11/2004)
+1) BalaT
+	1) DEF047267 - NTT - App-services\alarmserver TRepeatdefinitions udeb fails
+	2) DEF044048 - RVCT version of DEF2DLL camplains about DLLs not having exports 
+2) Dusko 	
+	1) DEF048405 - FPU flags cannot be over ridden from the MMP files, for VFP support.
+
+Version 0.01.556
+================
+(Made by Dusko, 25/10/2004)
+1) JonC
+	1) DEF050428 - __PRODUCT_INCLUDE__ set when it shouldn't be for Codewarrior ARMV5 builds
+	2) DEF050463 - CW IDE WINSCW builds can ignore "Symbian Linker | Additional Command Line:" 
+2) Dusko 	
+	1) DEF049913 - Buildtools dependency on link.exe for 8.1b/9.0 
+
+Version 0.01.555
+================
+(Made by xxx, yy/zz/2004)
+
+1) AndrewR
+	1)	DEF049659 - ARMV5 Compile of EXPORTUNFROZEN MMPs fails to create internal DEF file.
+
+
+Version 0.01.554
+================
+(Made by Dusko, 08/10/2004)
+1) JonC
+	1) DEF049860 - MAKMAKE doesn't fully support CW OEM3.0 
+
+2) BallaT
+	1) DEF049659 - ARMV5 Compile of EXPORTUNFROZEN MMPs fails to create internal DEF file.
+
+	
+Version 0.01.553
+================
+(Made by Dusko, 04/10/2004)
+1) Dusko 
+	Fixes for:
+	DEF049136 - GCCXML: Missing BMARM .def files reported during build.
+	DEF048405 - FPU flags cannot be over ridden from the MMP files, for VFP support.
+	
+2) JonC
+	DEF049354 ARMv5 falls over if linking too many objects  
+
+Version 0.01.552
+================
+(Made by JonC, 16/09/2004)
+1) Jon 
+	Contributes to implementation of PREQ417 (MS3.4 EABI Plugin)
+	e32toolp support for OEM3.0, including ARMV5 IDE builds. 
+
+
+================
+1) William
+	1)	Add support for "TARGET" in START RESOURCE ... END blocks
+		This supplies the basename for the resource file, in place
+		of the default which is the basename of the source file.
+	2)	Fix DEF048180 - engdoc should be excluded from tools_e32toolp
+	3)	Change setupprj.bat so that it verifies the tools_e32toolp.mrp file
+	4)	Change setupprj.bat so that it accepts "secure" as an optional
+		argument. If "secure" is specified, files of the form _secure_xxx
+		are exported as xxx, overriding the (insecure) xxx if it existed.
+
+Version 0.01.551
+================
+(Made by AndreBr, 27/08/2004)
+1) Andre 
+    DEF048272  GCCXML: Makefiles aren't building for 9.0 
+
+
+Version 0.01.550
+================
+(Made by MichaelP, 27/08/2004)
+
+1)	JonathanM
+	1)	MINOR CHANGE: Changed MMP.PL to not issue a warning for an incorrect second UID
+		when this UID is 0x01111111'. This allows test code to deliberately set an
+		incorrect UID.
+
+
+Version 0.01.549
+================
+(Made by KuldipN, 24/08/2004)
+
+1) Dusko & Andre
+	DEF047480  GCCXML: Reference EABI .def files in MMPXML. 
+	DEF047585  GCCXML: Include .def file in GXP Files 
+	DEF047903  GCCXML Platform Doesn't exist when pre-processing bld.inf
+	DEF047413 - Bldmake.pl produces and error that is not Scanlog compatibl
+	DEF047918  Gccxml abld -v -k target problem 
+	DEF047256  ABLD REALLYCLEAN only cleans up the epoc32\build tree 
+	DEF047939  GCCXML: Malformed MMPXML file in GXP 
+
+	MINOR_CHANGE
+	Update of the components used in the automated IDE tests.
+
+Version 0.01.548
+================
+(Made by KuldipN, 5/08/2004)
+	Rolled back to previous version of make to remove fix for
+	DEF046967  Build Errors: Java Build Problems  
+
+Version 0.01.547
+================
+(Made by KuldipN, 27/07/2004)
+
+1) Dusko 
+	1) DEF044958 - some build files are not erased by "abld clean" and "abld reallyclean"  
+	2) DEF046923 Makefile errors with GCCXML build target.
+	3) DEF046922 abld gccxml target ignores EPOCROOT. 
+2) Nahid
+	1) DEF046576 - mmp.pm doesn't produce scanlog compatabile output.
+	2) DEF045994 - Edll.lib in mmp causes CW Warning Messages
+3) Kuldip
+	1) INC046929 - Problem with emkdir.pl - directories not being made
+	2) DEF046967  Build Errors: Java Build Problems  
+
+Version 0.01.546
+================
+(Made by JonC, 12/07/2004)
+
+1) Jon 
+	1) Fix for DEF046739  BUILD ERRORS 8.1b - Build 03313.
+	   As a result, the following fixes are reverted:
+		1) Fix for DEF046732 - \epoc32\build MRP based location breaks test script assumptions.
+		2) Fix for DEF046538 - Build tools fail with very long pathnames.
+		3) Fix for DEF044958 - Some build files are not erased by "abld clean" and "abld reallyclean".
+		4) Fix for DEF046408 - Tools should warn if non-supported RVCT will be used in ARMV5 builds.
+
+Version 0.01.545
+================
+(Made by JonC, 09/07/2004)
+
+1) Jon 
+	1) Fix for DEF046732 - \epoc32\build MRP based location breaks test script assumptions.
+
+Version 0.01.544
+================
+(Made by Dusko, 06/07/2004)
+
+1) Dusko 
+	1) Fix for DEF046538 - Build tools fail with very long pathnames.
+	2) Fix for DEF044958 - Some build files are not erased by "abld clean" and "abld reallyclean".
+	3) Fix for DEF046408 - Tools should warn if non-supported RVCT will be used in ARMV5 builds.
+
+Version 0.01.543
+================
+(Made by Gus, 02/07/2004)
+
+1) Dusko 
+	1) Fix for CR...APOS-626C6K   -notest option added to bldmake.
+
+Version 0.01.542
+================
+(Made by Dusko, 23/06/2004)
+
+1) Dusko 
+	1) Fix for DEF044958 - some build files are not erased by "abld clean" and "abld reallyclean".
+2) Jon
+	1) Fix for "DEF045712 - Large projects build within Codewarrior IDE fail to link".
+	   (Comment update).
+
+
+Version 0.01.541
+================
+(Made by GusR, 22/06/2004)
+
+1) Gus 
+	1) 	PR0099 
+	Sierra MS3.4
+	PREQ687 - "Optimized module build (EABI)."
+	
+
+
+Version 0.01.540
+================
+(Made by JonC, 17/06/2004)
+
+1) Jon 
+	1) Fix for "DEF046143 - make.exe should report runtime exceptions in the Windows Event Log"
+
+
+Version 0.01.539
+================
+(Made by Dusko, 15/06/2004)
+
+1) Dusko 
+	1) Fix for DEF044666 - Bldmake unable to cope with makefiles with the same name.
+2) Gus 
+	1) Fix for DEF045445 - No Dependency in generated makefiles is not being used.
+	2) Fix for DEF045077 - Warnings generated by build tools when built using "bld deb".
+	3) Fix for DEF045255 - Using BLD DEB to build the tools creates errors when tools are used
+3) Naheed
+   1) Fix for DEF045349 - abld build fails to export data when built for one component
+	  - Ensure exports are done when building for one component.
+4) Jon 
+	1) Fix for "DEF046059 : emkdir.pl output should be more verbose"
+
+
+Version 0.01.538
+================
+(Made by Dusko, 28/05/2004)
+
+1) Dusko 
+	1) fix for DEF045551 - GCCXML: Malformed XML when targetpath specified in MMP.
+2) Jon
+	1) Fix for "DEF045035 - Codewarrior ignores #if macro statements in .mmp file.
+	2) Fix for "DEF045460 - RDL TARGETTYPEs require a .def file in EABI builds"
+
+Version 0.01.537
+================
+(Made by Dusko, 25/05/2004)
+
+1) Dusko 
+	1) Fix for DEF045503 - Warnings when building for gccxml platform
+	2) Fix for DEF045428 - GCCXML Compiler Options.
+
+
+Version 0.01.536
+================
+(Made by Dusko, 19/05/2004)
+
+1) Dusko 
+	1) Fix for DEF045168 - GCCXML: MMPXML should contain working directory from which GXP was built.
+
+
+Version 0.01.535
+================
+(Made by Dusko, 14/05/2004)
+
+1) Dusko 
+	1) DEF045015 - Build tools: gccxml should not be one of the default targets
+2) Gus
+	1) DEF045077 - Warnings generated by build tools when built using "bld deb"
+	2) INC044804 - Problem with TEMPMAKESISDECOY during localisation
+3) Jon
+	1) DEF044702 - Disable "stop on application launch" by default in Codewarrior settings panel.
+	2) DEF044703 - Linking projects within the Codewarrior IDE fails for large projects.
+	3) DEF045031 - Incorrect importing of mmp projects into Codewarrior with
+                   TARGETTYPE set as lib
+
+Version 0.01.534
+================
+(Made by GusR, 05/05/2004)
+
+1) GusR
+	Ease Of Deployment
+	  alt_pre=1 now uses scpp.exe for preprocessing
+	  local_build_path now defines where the object files are placed
+	  the gcc directory can now be on a local drive
+	  -savespace -keepgoing now sets nodependencies	
+	New File : preprocessor.pm
+	new File : scpp.exe
+
+Version 0.01.533
+================
+(Made by JonC, 29/04/2004)
+
+1) Jon
+	Fixes for:
+	1) DEF044751 Tools_e32toolp MRP file not specifying new .pm file.
+	2) DEF044147 ARMV5 builds ignore AIF generation as part of the RESOURCE step.
+	3) DEF044230 ARMv5/UDEB should build with -O0
+	4) DEF044048 RVCT version of DEF2DLL camplains about DLLs not having exports 
+
+Version 0.01.532
+================
+(Made by Dusko, 26/04/2004)
+
+1) Dusko 
+	Adding support for Backwards Compatibility Analysis Tool
+	Files changed: cl_generic.pm, e32plat.pm, bldmake.pl
+	New file: cl_gccxml.pl
+
+1) Dusko
+	1) DEF043895 - cl_codewarrior.pm not able to handle long commandlines.
+
+Version 0.01.530
+================
+(Made by Dusko, 06/04/2004)
+
+1) Jon
+	1) Fix for "DEF044083 Incorrect list of warnings suppressed in cl_arm.pm"
+
+
+Version 0.01.529
+================
+(Made by Dusko, 02/04/2004)
+
+1) Dusko
+	1) Fix for DEF043637 - CSYSTEM macro hard coded to WINS.
+	2) Fix for DEF043632 - Cedar tools should not hardwire EKA2 or DO_NOT_USE_THIS_MACRO.
+2) Jon
+	1) Fix for DEF043608 - ARMv5 build tools to "ignore" more warnings.
+	2) Fix for DEF043938 - Projects imported into CW for ARM4 builds do not link.
+	3) Fix for DEF043630 - EABI builds should define "EABI" 
+	4) Fix for DEF043607 - ARMv5 UDEB builds do NOT produce debug information 
+
+
+Version 2.00.528
+===========================
+(Made by JonathanM, 19/03/2004)
+
+1.	JonathanM
+	1.	Implemented the requirements:
+		REQ2632 - Configurability of the enforcement of capabilities
+		REQ2633 - Security violation diagnostic
+		REQ3142 - Associate Platform Security information with an executable.
+		See /cedar/generic/base/documentation/Base_How_To_Configure_Platform_Security_Settings.doc
+
+Version 0.01.527
+================
+(Made by Dusko, 18/03/2004)
+
+1) Dusko
+	1) Fix for DEF042453 - Mistakes in API Classification.
+	2) Fix for DEF042408 - EVALID can't deal with more than 3 "-x" arguments
+2) Jens
+	1) Fix for DEF042878 - verbose output in "abld -v test romfile"
+                           appears in generated oby file
+3) Jon
+	1) Fix for DEF043598 - CAPABILITY in OEM2.0 .pref files prevents IDE build...
+
+Patch for Version 2.00.526
+===========================
+1)	JonathanM
+	1)	Fix for defect DEF043311 - In the CodeWarrior IDE, UID.CPP files are incorrectly generated
+
+Version 2.00.526
+===========================
+(Made by JonathanM, 26/02/2004)
+
+1)	JonathanM
+	1)	Modifications made for implementation of
+		Change Request JDOD-5VUJ7F - Change in executable format of EKA2 binaries.
+	2)	Made MAKMAKE use the new Platform Security capability names.
+	3)	Tools now use the sytax "cap1+cap2+cap3" to specify a neamed set of capabilities
+		(Rather than specifying a single hexadecimal number.)
+
+Version 0.01.525
+================
+(Made by AndrewJ, 13/02/2004)
+
+1)ChrisM
+	1) Fix for DEF041533 - metabld should not insist on paths starting from the root of the drive
+	   added a -r option to indicate the directory tree should be from the current location and not the root.
+
+Version 0.01.524
+================
+(Made by Dusko, 12/02/2004)
+
+1) Dusko
+	1) Fix for DEF041403  Incorrect makefiles is generated for CWTOOLS  
+
+Version 0.01.523
+================
+(Made by Dusko, 30/01/2004)
+
+1) Dusko
+	1) Fix for DEF041857 - MAKMAKE should not complain about MACRO statement with no arguments
+2) Jon
+	1) Fix for DEF041769 - Minor Perl problem in IDE_VC6.PM
+	2) Fix for DEF041802 - Auto Target Libraries should be switched on by default in Code Warrior.
+	3) Fix for DEF041697 - CW command line and IDE builds generate redundant "browse" files
+3) Kuldip
+	1) Fix for DEF41756 ROFSBUILD checks adequate image size incorrectly.
+	2) Fix for DEF41699 Preserving of intermediate files to enable building of ROM from obey file generated by buildrom.pl 
+
+Version 0.01.522
+================
+(Made by Dusko, 22/01/2004)
+
+1) Dusko
+	1) Fix for DEF041591 - BLDMAKE should not complain about "-ARMI" in PRJ_PLATFORMS
+2)  Jon
+	1) Fix for DEF041319 - Remove display of compiler generated commands by default from CW 
+	2) Fix for DEF041432 - makmake.pl uses undefined variable @variant_macros 
+
+Version 0.01.521
+================
+(Made by Dusko, 05/01/2004)
+
+1)  Dusko
+	DEF040718  cedar\generic\base\wins fails to export correctly if EPOCROOT is not \ 
+2)  Kuldip
+	Fix for INC040504  "makedef.pl does not recognise exported data in codewarrior DLLs"
+
+Version 0.01.520
+================
+(Made by JonC, 18/12/2003)
+
+1)  JonC
+	Fix for DEF041019 - CodeWarrior OEM2.8 IDE project settings are incorrect.
+	Fix for DEF041136 - Error found in "tools_e32toolp.mrp"... 
+
+Version 0.01.519
+================
+(Made by Dusko, 17/12/2003)
+
+1)	Kuldip
+	REQ1648 A3.2 Improved Command Line Build Tools   Strict BUILDROM
+
+1)	Jon
+	REQ2212 A.3.4 Code Warrior Tooling, Support for Metrowerks  
+    CodeWarrior for Symbian OS 2.8., Contributes to implementation of 
+    TOOLS/MAKMAKE/cw.17,
+
+1)	Darran
+	Sirocco, CR PHAR-5QYMSN
+    Support nested inclusion of (preprocessor) HR  
+    files in varinat.cfg
+
+1)  Andy
+	low level support for REQ1730, REQ2206 and REQ2140.3.1.
+	support for 'downgrading' cpu specific components when they're missing during 
+	ROMBUILD I.E. ARMV5O1 -> ARMV5. This is similar to the kind of downgrading that
+	takes place  for ARMI, ARM4 and THUMB builds.
+
+Version 0.01.518
+================
+(Made by Dusko, 24/11/2003)
+
+1)	Dusko
+	1)	DEF037657  Cedar tools dont support  COMPRESSTARGET and NOCOMPRESSTARGET MMP keywords
+		Files changed mmp.pm,cl_gcc.pm
+
+	2)	DEF037095  E32Variant can only be used by tools in \epoc32\tools 
+		File changed e32variant.pm
+
+Version 0.01.517
+================
+(Made by Dusko, 10/10/2003)
+1) Kuldip
+	1)	DEF036127 FIXUPSYM requires an EPOCROOT
+		Fixed in \tools\e32toolp\makesym\fixupsym.pl
+
+2) Dusko 
+	1)	DEF038828  Can't build projects that have AIF c12,8 in mmp file
+		Files changed mmp.pm, makmake.pl, cl_generic.pm and ide_cw.pm 
+
+3)	Dennis
+	1)	Fix problem with cl_arm.pm - when building UDFP, UDFP.LIB was added
+		to the list of libraries which caused infinite loops.
+
+Version 0.01.516
+================
+(Made by Dusko, 02/10/2003)
+1) Kuldip
+	1)	DEF038583 - BLDMAKE Error in 03114_Symbian_OS_v8.0b
+		Fixed in \tools\e32toolp\genutil\pathutil.pm
+2) Johannes
+	2)	Fix for DEF037095 - E32variant can only be used by tools in \epoc32\tools
+
+
+Version 0.01.515
+================
+
+(Made by Dennis, 24/09/2003)
+
+1. Dennis
+	1.	Implemented CR ATHE-5PZEAU (Add Version Numbers to Symbian OS Executables).
+
+2. JonathanM
+	1.	Created new .MMP Target types, "NOTIFIER2" and "TEXTNOTIFIER2"
+		This has been added for Notifier plugins which use the new Version 2
+		Client/Server APIs.
+
+
+Version 0.01.512
+================
+(Made by DuskoJ, 22/08/2003)
+
+1) Morgan
+	1)	Added ROFSBUILD extension support to BUILDROM.PL
+		BUILDROM automatically generates the appropriate obey commands for non-XIP
+		ROFS obey files.
+	2)	Improved \tools\e32tools\rombuild\addextension.pl to understand ROFS images
+		and extensions.  addextension.pl can be used to join xip and non-xip images.
+
+2) Dusko 
+	1)	DEF036665 - MAKMAKE should put EGCC.LIB at end of LIB list
+	2) WINUTL.PM changes - support for building tools with CodeWarrior
+
+
+3) Andy 1)	REQ2178 - GENSHIMSRC Generate source for a shim DLL and its associated deffile from a supplied deffile
+
+
+Version 0.01.511
+================
+(Made by DuskoJ, 25/07/2003)
+
+1) Morgan
+	1)	Integrated "fix" for DEF032836 - Rogue Multimedia warning in typhoon build 02194a
+	MAKDEPS.PM is now more defensive when adding to the bad system dependency list.
+2) Jon
+	1)	Fix for defect DEF035996 - Cpp.exe Permission denied failure.
+
+3. Dusko
+	1. fixed DEF036388 Cedar version of maksym.pl is out of date
+
+
+Version 0.01.510
+================
+(Made by DuskoJ, 10/07/2003)
+
+ 1) DuskoJ
+	1) Adding support for building tools with CodeWarrior. 
+	   files changed: 1. bldmake.pl
+					  2. e32plat.pm
+	   new files:	  1. cl_tools.pm  
+	
+  	2) Changes to epocaif to generate .aif files in new format. Aiftool.exe is no
+           longer needed.
+
+  	3) Changes to cl_generic so that when abdl -what command is executed both,
+           XIP and NON XIP version of aif files which are generated with epocaif are 
+  	   listed.
+
+ 2) JohanesK
+	1) DEF036206 - variant.cfg information not used when generating MAKMAKE dependencies
+
+
+Version 0.01.509
+================
+(Made by DuskoJ 07/07/2003)
+
+	1) Fixed DEF035953  Build errors for "cedar\generic\tools\redistribution" 
+	
+
+Version 0.01.508
+================
+(Made by JonC, 26/06/2003)
+
+      1) DEF035949 - EKA2 define is not passed to compiler in Cedar CW IDE builds.
+      2) Update of mmpscan.pl and mmp_testlist.txt to reflect changed Cedar TARGETTYPEs and components.
+      3) Update to build variant documentation.
+
+
+Version 0.01.507
+================
+(Made by JohannesK, 24/06/2003)
+
+      1) Fixed DEF035897 - cedar roms failed to build.
+
+Version 0.01.506
+================
+(Made by JohannesK, 23/06/2003)
+      1) Enabling product variant builds (ported changes from Typhoon).
+
+      2) Fixed DEF035683 - CW project creation is broken in Cedar.
+
+      3) Fixed DEF035802 - Bad case-sensivity in E32variant.pm.
+
+      
+Version 0.01.505
+================
+(Made by JonathanM, 20/05/2003)
+
+1)	JonathanM
+	1)	Modified Cedar tools to define macros 'EKA2' and 'DO_NOT_USE_THIS_MACRO' when
+		processing BLD.INF, MMP files and compiling source.
+	2)	Fixed some missing EPOCROOT support. (Include path for CPP and exported zips.)
+	3)	Modified Cedar GENBUILD to work with master codeline directory structure.
+
+2)	Nicolas
+	CHANGES FOR MASTER CODELINE:
+	1)	Brought back to life AIF support which was removed by submission 229467 to the
+		Jet Stream mainline.  This involved changing various perl scripts and upgrading 
+		winc.zip to a recent Typhoon build (2175) which include versions of bafl.dll and
+		aiftool.exe which support the new resource format.
+	2)	Brought back to life CTL target needed by some techview apps.
+
+
+Version 0.01.504
+================
+(Made by William, 18/03/2003)
+
+1)	Dusko
+	1)	Updated EVALID to use ELF dump to compare ELF files.
+
+2)	William
+	1)	Fixed defect DEF020022 - Minutes & seconds reversed in scanlog.pl output
+	2)	Added SCANLOG.TXT to document of the log file format and patterns used by scanlog.pl
+	3)	Updated EVALID.TXT to add information about "ELF file" comparisons.
+	4)	Updated cl_codewarrior.pm & ide_cw.pm to support CodeWarrior for Symbian OS, OEM v2.0
+
+
+Version 0.01.503
+================
+(Made by William, 10/02/2003)
+
+1) Dusko
+	
+	1)	makmake.pl - Fixed a defect in makmake (added missing $CurSource{BaseTrg} to SourceStruct)
+	2)	Redefined SrcList function (functionality has not changed)
+	3)	Deleted Uids funciton 
+
+	4)	mmp.pm - Deleted inappropriate comments
+	5)	Deleted UIDs function 
+
+	6)	mmp_notes.txt - Some changes to structure description.
+	
+	7)	cl_generic.pl - Uids info extracted from existing data in ResourceStruct 
+	   	and unneeded call to Uids function deleted.
+        
+	8)	bldmake.pl Changes which enable bldmake to understand additional syntax in PRJ_EXPORTS
+	   	part of bld.inf. More complex makefiles are generated in the  epoc32\build tree.
+	   	Generation of the new rules is put into a separate subroutine - CreatePlatExports
+	   	PRJ_EXPORTS now accepts exports to paths including a drive letter: the file(s)
+	   	will be exported to the corresponding subdirectory of epoc32\data, and also exported
+	   	at the RESOURCE step in emulator builds to the corresponding emulated directory.
+	   	For example:  myfile.txt z:\system\data\myfile.txt
+	   	causes exports to epoc32\data\z\system\data\myfile.txt, and also to
+	   	epoc32\release\XXX\{udeb,urel}\z\system\data for each emulator target XXX.
+
+
+1) William
+	1)	Fix defect DEF000968 - MAKMAKE grants capabilities which don't yet exist
+	2)	Add support for "CAPABILITY ALL -ROOT", i.e. for subtracting capabilities for a set
+	3)	Change the default CAPABILITY setting to ALL+0x80000000 so that it can still be clearly
+		identified in executables.
+	4)	Update CodeWarrior IDE support to use the Symbian V8 Linker plugin, and to reject
+		attempts to build IDE projects for "CodeWarrior for Symbian OS, Pro1".
+	5)	Add e32toolp\test directory for regression tests.
+	6)	Add mmpscan.pl which scans MMP files for significant features, and mmp_testlist.txt which
+		covers all of the MAKMAKE features in less than 40 of the current 2432 MMP files.
+	7)	Updates to mmpscan.pl to work in more cases.
+	8)	Additional test functionality cw_ide_test.pl which builds MMP files using both the
+		CodeWarrior IDE and directly via MAKMAKE and commandline builds, comparing the results.
+	9)	Change epocrc.pl to avoid explicitly specifying the default uids argument -{0,*} if
+		neither -uid2 nor -uid3 is specified. This allows UID2 and UID3 keywords in the source
+		files to take effect.
+	10)	Change genbuild.pl to process all specified source files, concatenating them
+		and generating scripts named after the first file.
+	11)	Add "<option arm_build XXX>" to genbuild.pl, so that we can specify additional
+		builds such as <option arm_build armv5> for RVCT builds.
+	12)	Update scanlog to detect RVCT compiler warnings and errors, and added "use strict".
+	13)	Arrange for scanlog.pl to ignore sections which refer to armv* or *edg, so that mainline
+		builds can include early RVCT attempts without swamping the error and warning counts. This
+		skipping is disabled by specifying the "-v" flag to scanlog.pl.
+	14)	Fix Perl warning in evalid.pl
+	15)	Updates to test code (cw_ide_test.pl, mmpscan.pl, mmp_testlist.txt).
+	16)	Change cl_codewarrior.pm to use ".o" rather than ".obj" for compatibility with the IDE
+		builds, and to compile xxx.uid.cpp to uid.o for the same reason: the IDE and command line
+		builds will then produce identical .map files
+	17)	Change ide_cw.pm to avoid specifying a base address for EXEs, to match the command line build.
+	18)	Change ide_cw.pm to specify -D__XXX_ for ASSPs (i.e. when platform != real platform).
+	19)	Change MAKMAKE to reject CodeWarrior for Symbian OS v1.0 as unable to support Jet Stream builds.
+	20)	Remove obsolete target types, post UIKON and ECOM data caging releases.
+		This removes CTL, CTPKG, FEP, MDL, OPX, RDL and WLOG.
+	21)	Remove the cw_ide.pm workaround for ignoring MBW and mapping MCL->MBM. There
+		are no remaining B&W files in Jet Stream, and all of the Color files are now correctly
+		named. The instcol script is no longer needed but still exists to avoid disrupting build
+		scripts: it now just says "instcol is no longer used".
+	22)	Remove support for AIF files, which no longer exist.
+	23)	Fix defect DEF015570 "Irritating and useless X86 builds in default abld platforms list".
+		To include X86 in "ALL" platforms, define environment variable ABLD_ALL_INCLUDES_X86.
+	24)	Disallow .cia files in WINSCW builds.
+	25)	Add support for SRCDBG in ide_cw.pm
+	26)	Change the generated target names in CW projects to be just "ABI BLD" without the MMP name.
+	27)	Fix defect preventing BASEADDRESS being specified for IDE builds of EXEXP targets.
+	28)	Handle Win32Library list correctly in CW projects.
+	29)	Change cw_ide_test.pl so that it restores all of the original files after testing.
+	30)	Update mmp_testlist.txt to a workable set of MMP files, marked "not MISA" and "not WINSCW"
+		if they can't be built in both ABIs.
+	31)	Change scanlog.pl to tolerate malformed log files, which would have helped to detect the 
+		true cause of things like DEF016577 "Scanlog does not detect errors in JRCK log". If the
+		phase doesn't finish properly, no timing will be displayed.
+	32)	Added ===+ timing information to genbuild.pl, for closer analysis of build times.
+	33)	Integrate the "list of color depth" changes for CR MFRN-5HTH2G "Make it possible to have 
+		different color depth of icons and masks in the aif file". We don't have AIF files any more,
+		but this applies to bitmaps as well.
+	34)	Propagate the 7.0s ecopyfile.pl change to support "Build from Clean" process.
+	35)	Remove all record of the WINC platform
+	36)	Remove the .assp files, now that everything is built into a single directory.
+	
+	
+Version 0.01.502
+================
+(Made by William, 20/09/2002)
+
+1) Dusko
+	1)	Fix defect ROS-59ZDWH "OPTIONS keyword doesn't respect upper and lower case"
+		Both the OPTIONS and MACRO keywords now respect the case of their arguments, so it's possible
+		to specify mixed-case compiler flags or mixed case #defines.
+		
+2) William
+	1)	Implement automatic selection of CodeWarrior for Symbian OS v2.0 ("Ganymede") based on
+		examination of environment variables. If the MWSym2Libraries variable exists and refers
+		to directories which all exist, the Ganymede compiler will be used instead of the older
+		Callisto compiler.
+	2) 	Implemented various Metrowerks suggested improvements to the CodeWarrior project template
+	3)	Added more support for the "Symbian Installation" preference panel, and an association for
+		.pkg files.
+	4)	Add EXPORTUNFROZEN to the .pref file for CW IDE projects, as it's supported in Ganymede.
+	5)	Add WINSCW support for WIN32_LIBRARIES which are not in the system search path, for use
+		by the Win32 Ethernet Driver.
+	6)	Fix defect ROS-5CAH9W "EVALID can't handle directory names containing spaces"
+	7) 	Change ide_cw.pm and CW_project_template.xml to assume the new Symbian Resources compiler
+		which handles RSC, MBM and AIF files via a .resources file.
+	8)	Change MAKMAKE so that the cw_ide:plat1+plat2+plat3 commandline arg won't always do the
+		WINSCW target first: it now uses the cw_ide plat in the necessary places to get the .xml
+		file generated, but uses plat1 everywhere else.
+	9)	Change abld.pl to allow WINSCW in the "ALL" list if either v1.0 or v2.0 of CodeWarrior for
+		Symbian OS is installed.
+	10)	Change cl_codewarrior.pm so that WINSCW makefiles will use v2.0 of CodeWarrior for Symbian
+		OS if it's installed, or fallback to v1.0. Make the necessary minor adjustments to the
+		generated Makefiles to compensate for differences in v1.0 and v2.0 tools.
+	11)	Fix defect ROS-5D6FRK "Makmake code to select between CodeWarrior versions is incorrect"
+	12)	Fix defect ROS-5CMNVG "EPOCROOT check gets in the way of CodeWarrior mmp file import"
+	
+ 
+Version 0.01.501
+================
+(Made by ?, --/--/2002)
+
+1)	William
+	1)	Changed genbuild.pl to generate scripts with relative paths, instead of assuming 
+		that the paths in the .txt files were always relative to the root.
+	2)	Removed references to WINC and ARM3 from genbuild.pl
+	3)	Changed BLDMAKE.PL to remove ARMI and THUMB from the list of default platforms
+	4)	Disabled the LNK4089 warning caused by /OPT:REF in MSVC builds.
+	5)	Downgrade the use of "-XXX" which isn't in the default list to a BLDMAKE warning if 
+		-k specified: seems reasonable since the net effect is not to build for platform XXX.
+	6)	More work on defect ROS-595LHD "abld -what problems with very long pathnames" - the non-generic
+		RELEASEABLES are now handled in the same way as the GENERIC_RELEASEABLES, to avoid exceeding
+		line length limits.
+	7)	Fix defect PAL-59YHRT "Build errors not being reported in summary files" - change scanlog.pl to
+		report missing components as "Things not built".
+	8)	Changed the epocrc.pl, epocmbm.pl and epocaif.pl wrapper scripts in anticipation of the
+		new Symbian Resource compiler plugin for CodeWarrior.
+		epocrc.pl - handle "-I-" and UNC paths correctly
+		epocaif.pl - handle "-I-" and UNC paths, use "-o" when preprocessing .rss file, report bmconv failure
+		epocmbm.pl - remove EPOCROOT check to subroutine, report bmconv failure
+	9)	Improve	the Path_RltToWork function to generate more concise relative paths. This impacts
+		any binary which has __FILE__ as read-only data, e.g. via the ASSERT() macro in 
+		epoc32\include\mda\common\base.inl
+	10)	Fix defect CHN-58WEZ3 "EPOCRC.PL fails in VC6 IDE builds with long paths" by supplying
+		an absolute path to epocrc.pl, and having epocrc.pl add the current drive letter instead
+		of generating a relative path. Similar code in epocaif.pl was altered as well.
+	11)	Update EVALID to handle "Preprocessed text" ignoring the lines which indicate the #include
+		structure (and which include source filenames).
+	12)	Update EVALID to ignore the "unique _head & _iname" symbols from import libraries when they
+		appear in gcc MAP files, using the same pattern as for ARM object files.
+	13)	Introduce MAKMAKE "CAPABILITY" keyword which takes a space-separated list of capability names
+		and computes the hex value for the combined list. This is passed to PETRAN in cl_gcc or cl_x86.
+	14)	Change winutl.pm to use __EMULATOR_IMAGE_HEADER() in the xxx.uid.cpp file, adding the extra
+		extra process priority and capability information.
+	15)	Abandon the notion of CompatibleABIs, chiefly by stopping cl_gcc.pm from generating the extra
+		libraries.
+	16)	Change scanlog.pl to pick up more warnings, and to print the warning lines in a "Warning details"
+		section at the end.
+
+2)	Dennis
+	1)	Applied William's suggested changes to enable polymorphic DLLs to have additional exports.
+		Exports 1 and 2 in the DEF file are required to match the polymorphic exports.
+	2)	Made it possible to export a ZIP archive from a component. The following line
+
+		:zip archive.zip basedir
+
+		in the PRJ_EXPORTS or PRJ_TESTEXPORTS section of an MMP file will cause 'archive.zip' to be
+		unzipped into the 'basedir' directory at the export stage of the build.
+		CLEANEXPORT will delete each unzipped file and WHAT will list each unzipped file.
+
+3)	ChrisM
+	1)	Changed memtrace.pl to work with EKA2 memtrace tracing.  MT:P xxxx trace output has
+		the length of the tick in microseconds, so memtrace.pl uses this to work out its
+		time stamp if it is present, otherwise it defaults to EKA1 behaviour.
+
+4)	Andy Sizer
+	1)	Added support for .CIA assembler files.
+		First attempt at support for new RVCT compiler.
+	
+Version 0.01.500
+================
+(Made by AndrewT, 23/05/2002)
+
+EKA2 changes
+
+1)	Andrew
+	1)	Def file processing allows a by-name export "_E32Dll" or "_E32Startup" to appear
+		in the def file. This is elminated from the no-name freeze process and
+		re-introduced to the end of the build def file. This supports the v7 entrypoint
+		scheme, and does not appear in frozen def files.
+	2)	Added target type EXEXP for v7 support of EXEs with exports. This replaces 
+		EXEDLL, which is no longer supported. Removed support for EPOCEXE, these
+		targets should just become EXE.
+	3)	Changed target type KDLL to use a new EKLL.LIB and to not be ASSP specific. These
+		DLLs are all used by the kernel, but do not link to the kernel, and are only built
+		for ARM4 or WINS
+	4)	Changed WINS use of entry-points, DLLs have no Win32 entrypoint but include the
+		_E32Dll symbol to ensure that this is exported by name (see 1). EXEs have a Win32
+		entrypoint to allow auto-boot of the emulator before running the EPOC program, and
+		force the inclusion of the _E32Startup symbol to ensure that this is exported by
+		name.
+
+2)	Nicolas
+	1)	Removed spurious code in cl_x86.pm which caused x86
+		releasables to be copied into \epoc32\tools.
+	2)	Merged in EKA1 WINSCW support and adapted it to EKA2
+		(EXEXP, emulated E32 entry points, EPOCHEAPSIZE, ...).
+	3)	Added new MMP keyword WIN32_HEADERS to instruct makmake
+		to search the standard include directories.
+
+---------------------------
+
+Pre-EKA2 changes
+
+1)	William
+	1)	Revise compare_summary.pl to match scanlog.pl, which stops compare_summary.pl from hanging
+	2)	Change MAKMAKE to use "cpp -undef" when generating source file dependency information.
+	3)	Change BLDMAKE to generate an abld.bat file with the BldInfPath quoted in case it contains 
+		spaces: there's a lot more work still to do, but this is a start...
+	4) 	Remove any leading backslash on filenames in SOURCE statements, since they are by definition
+		interpreted as paths relative to the prevailing SOURCEPATH. This affects FREETYPE.MMP, which
+		was otherwise generating names like graphics\freetype\group\..\\freetype2
+	5)	Fix defect ROS-58CQTC "CW IDE can't import strangely formatted MMP file" by making ide_cw.pm
+		form its own list of source directories from the (SOURCEPATH, SOURCE) pairs.
+	6)	Fix defect BAD-57QNL7 "Charconv does not compile from CodeWarrior GUI" by making ide_cw.pm
+		order the access paths explicitly for userinclude and systeminclude.
+	7)	Change GENBUILD.PL to generate additional batch files for "abld clean" and "abld reallyclean".
+	8)	Implement MAKMAKE support for IDE targets which support multiple platforms: so far this
+		consists of supporting "makmake mmpname someide:plat1+plat2+plat3" syntax and providing the
+		list (plat1, plat2, plat3) to any backend which cares to ask for it.
+	9)	Implement various changes to the generation of CodeWarrior IDE projects: 
+		* Pick up the list of platforms from the "cw_ide:plat1+plat2+plat3" commandline arg (if any)
+		* Enable the "System Log" window for WINSCW UDEB targets
+		* Default "Display generated commands in msg window" to false for all targets
+		* Add the "SymbianImportLibraryPath" setting for use in Ganymede
+		* Allow multiple resource files if they all use the same TARGETPATH
+	10)	Use mwwinrc to compile Win32 resource files in WINSCW builds
+	11)	Fix defect ROS-58VCQY "MAKMAKE fails if + included in pathname" by using quotemeta() to do 
+		the full job on $S_SysDecoyPath
+	12)	Fix defect GAA-57WNNR "Error in bldmake.pl -what option for cw_ide" by reporting the .xml and
+		.pref files correctly. Note however that BLDMAKE can't always get the .pref or .uid.cpp filenames
+		right because they are generated (or not) using information inside the MMP file.
+	13)	Fix defect ROS-595LHD "abld -what problems with very long pathnames" by counting the actual 
+		length of the GENERIC_RELEASEABLESn lines and breaking before it goes over 1900 characters.
+	14) 	Various EVALID improvements, including support for ignoring comments in SGML files
+	15)	Added evalid.txt file for export into epoc32\engdoc\e32toolp
+
+2)	Uma
+	1)	Fix defect ANN-595CNZ "using abld build creates a epoc32 folder in the root of your drive".
+	
+Version 0.01.304
+================
+(Made by William, 22/02/2002)
+
+1)	William
+	1)	Introduce "START RESOURCE ... END" syntax to allow resources to be built into a directory
+		which is neither \System\Data nor the TARGETPATH of the main executable, and to allow
+		resources to be built without an associated header file. Both RESOURCE and SYSTEMRESOURCE
+		are expressed as shorthands for the new syntax, and the internal handling of resources
+		has been unified. As a side-effect, this provides the proper fix for defect JOE-52ZJP3 
+		"Conditional #includes in resource files".
+	2)	Include WINS and WINSCW into the "abld all" platforms according to the presence in the 
+		environment of associated environment variables. If you have the CodeWarrior compiler installed
+		you will have a CWFolder environment variable: ABLD.PL will notice this and include WINSCW
+		in the "ALL" target. WINS is included if the MSDevDir variable is present.
+	3)	Make SETUPPRJ.BAT generate a makefile which is resilient against filenames which contain spaces,
+		and which will keep going even if an individual file can't be installed.
+	4)	Fix defect ROS-573K9P "MMP keyword MACRO keyword not supported in CW IDE projects".
+	5)	Fix defect ROS-57CFVC "CW IDE projects can no longer find RSS files".
+	6)	Fix defect ROS-57CFYY "CW IDE projects fail if RSS file is in unusual place".
+	7)	Clone the targets from the XML template project rather than altering them directly, which
+		is a necessary precursor to supporting ASSP targets, where the ARM4 targets may need to be
+		used more than once.
+	8)	Remove backwards-compatibility support in CL_GCC.PM which copied resources, bitmaps and AIF files
+		from the epoc32\data\z tree into the $(PLATFORM)\$(CFG) directories.
+	9)	Fixed defect ROS-57PJYW "MSVC-based builds are using warning level /W1 by default" by reinstating
+		the /W4 warning level for MSVC-based builds, which was accidentally lost in change 109090.
+		The change also deals with the CL.EXE objection to multiple /Wn arguments on the same commandline, 
+		so that OPTION MSVC /W0 won't itself cause "Command line warning D4025".
+	10)	Annotate all of the CL.EXE command line options used in cl_win.pm and ide_vc6.pm, and move the
+		/GF option into the main definitions rather than repeating it for every source file.
+		
+
+Version 0.01.303
+================
+(Made by William, 06/02/2002)
+
+1)	Uma
+	1)	Changed epocrc.pl and lockit_info.pm to support rls_string (CR JCLE-549DVM).
+
+2)	William
+	1)	Fix defect JOE-52ZJP3 "Conditional #includes in resource files".
+		Use the same "combine the dependency list" quick fix strategy as for 6.1, since the 
+		"multiple languages in MMP files" approach to localisation is on the way out anyway.
+	2)	Make EVALID insensitive to the _head* and __*_iname symbols in the import libraries 
+		generated by DLLTOOL. 
+	3)	Fix defect ROS-55AN6D "fixupsym.pl fails immediately"
+	4)	Update MAKSYM.PL use FindBin::Bin rather than scanning the PATH variable
+	5)	Update SCANLOG.PL to detect recursive make failures (i.e. make[n]: *** rather than just make: ***)
+	6)	Remove the old support for warning waivers, and make the printing of "MISSING:" files 
+		independent of the number of fatal errors
+	7)	Fix defect ROS-55BM2X "ar failure with very large components" by splitting the list of
+		objects into 150-file groups, to avoid the 32K line length limit on Win32 process arguments.
+	8)	Add a "Build All" target to generated CodeWarrior projects, and cut out some junk from the
+		project template.
+	9)	Fix ROS-56QP3D "Problem with EPOCSTACKSIZE when generating CW IDE Projects"
+	10) Revise EPOCRC.PL for use from CodeWarrior IDE RCOMP plugin: drive CPP.EXE differently, and
+		remove the EPOCROOT check. Only the LOCKIT processing needs EPOCROOT, and lockit_info.pm does
+		it's own check when necessary.
+	11) Fix deferred defect HET-4X9G2P "commandline help for epocrc.pl is missleading"
+	12)	Fix defect ROS-55JM2S "Emulator EXEs can come with unexpected .EXP and .LIB files" 
+		for WINSCW by explicitly disabling the exports and import library when linking an EXE.
+	13)	Assume the "CodeWarrior for Symbian OS Professional Edition V1.0" version of MWLD.EXE,
+		which removes the dependence on the Developer Studio LIB.EXE tool for WINSCW builds.
+	14)	Use the CodeWarrior "MWCWinx86Includes" environment variable rather that the Developer Studio
+		"INCLUDE" environment variable when generating WINSCW makefiles.
+	15)	Catch an additional form of MWLD.EXE warning in scanlog.pl
+
+Version 0.01.302
+================
+(Made by William, 03/12/2001)
+
+1)	William
+	1)	Reinstate "use strict;" in MAKMAKE.PL, and fix errors uncovered
+	2)	Fix parsing of "OPTION" to handle the rest of the line better, and
+		to concatenate multiple OPTION statements for the same key.
+	3)	Fix use of uninitialised variable in MAKSYM.PL
+	4)	Change ABLD.PL and MAKEMAKE.PL to specify the -r option to make, so that MAKE 
+		doesn't try built-in inference rules to remake the makefiles or the targets: the
+		BLDMAKE makefiles are very simple and don't need any of that stuff, and the MAKMAKE
+		makefiles contain explicit rules for everything we want.
+	5)	Changed cl_codewarrior.pm and cl_gcc.pm to remove the use of inline files. 
+		It turned out to be simple to change the "ar -M" command into a direct "ar cr" 
+		command line, and the CodeWarrior makefile doesn't use the bscmake rule anyway.
+	6)	Rearranged dependencies so that real files do not depend on "phony" targets.
+		This involved moving the MAKEWORKLIBRARY dependency, and adding MAKEWORK$Bld
+		to the UREL and UDEB target. Changed cl_codewarrior.pm to remove the remaining
+		mentions of .sbr files.
+	7)	Removed the trailing \ from the directory definitions in cl_generic.pm (things like
+		EPOCBLD, EPOCLIB etc) so that they won't be troublesome to MAKE.
+	8)	Removed !if "OS" == "Windows_NT" conditional stuff into the Perl scripts, so
+		that the resulting Makefiles aren't conditional at all.
+	9)	Added Generic_Quote, which quotes a filename in the style required for the
+		type of makefile being generated, and Generic_CopyAction which deals with
+		copying a file (default ?$) to the target of the rule ($@).
+		These are available to users of cl_generic.pm and used within the generic functions.
+	10)	Added MakeCmd to the E32Plat.cmd information, and use it in BLDMAKE to determine
+		the way that the recursive Makefile should be called. Also pass it from MAKMAKE
+		to the cl_XXX.pm module, which checks it and passes the value on to cl_generic.pm
+		if used.
+	11)	Added -s to the recursive calls for WHAT, to avoid any directory information being
+		printed by MAKE.
+	12)	Changed epocaif.pl and epocrc.pl to use File::Copy rather than system "copy..." in
+		the lockit processing.
+	13)	Reworked cl_codewarrior.pm and cl_gcc.pm that they can support both MAKE and NMAKE,
+		generating appropriate Makefiles according to the type requested by MAKMAKE.
+	14)	Change E32PLAT.PM to specify MAKE makefiles for all ARM and WINSCW targets.
+	15)	Removed use of wildcard "$BaseTrg.*" in CLEANLIBRARY
+	16)	Added detection of ABLD fatal errors to scanlog.pl
+	17)	Removed use of DUMPBIN for extracting list of exports in cl_codewarrior.pm, and
+		modified MAKEDEF.PL to handle the mwld.exe output used instead.
+	18)	Fix defect BRN-52RCVD "Evalid doesn't work correctly when run from a 
+		directory more than one level deep."
+	19)	Fix defect ROS-53ECQY "Can't disable WINSCW builds in PRJ_PLATFORMS"
+	20) Change GENBUILD.PL to do "resource" before "library" so that static libraries can
+		make use of generated .RSG and .MBG header files. At the same time, disentangle the
+		WINS and WINC build steps so that WINC is required to stand by itself.
+	21)	In genbuild.pl, remove the extra "what" & "check" steps before the "final" step for 
+		WINS and WINSCW, and pass the "keepgoing" flag to the export step.
+	22)	Fix defect BRN-52KL2Y "\epoc32\localisation\*.rpp and *.info files are not reported 
+		by the build tools as releaseables". All of the files placed in epoc32\localisation
+		are now reported by MAKMAKE as generic releasables.
+	23)	Fix defect ROS-52XGQY "fixupsym.pl is broken by recent MAKMAKE changes" and improve
+		speed of directory scanning (still takes too long though...)
+	24)	Add "what" and "check" reporting to the tools part of genbuild.pl
+	25)	Change makedef.pl to allow filenames with drive letters, and adjust to support both 
+		2.4.5 and 2.5 versions of the CodeWarrior linker.
+	26)	Convert all Perl scripts to use FindBin rather than explicit scanning of the PATH variable.
+	27)	Fix defect FOD-53SN8N "Can't pass more than 1024 characters into ar". by changing cl_gcc.pm 
+		to build the archive files with the full pathnames of the temporary files. This avoids the 
+		need to use "cd xxx;", which caused MAKE.EXE to use a DOS batch file to execute the command.
+	28)	Changed EVALID.PL to ignore the pathnames leading to object files when comparing libraries and
+		MAP files. Also arranged to ignore the MAP file lines involving .stab and .stabstr information.
+	30)	Fix defect THY-54BG7T "Error when invoking GNU make directly" by duplicating the
+		PATH & Path handling from the BLDMAKE-generated makefiles
+	31)	Fix defect PLD-54FQ6U "Recompiling for ARM after making source changes results in link failures"
+		by reinstating the deletion of the .in file prior to calling "ar".
+	32)	Fix a few places where MAKMAKE assumed that pathnames do not contain spaces
+	33)	Add the CW_IDE platform (cf VC6) and implement it in ide_cw.pm with an associated template
+		for the generated .xml file.
+	34)	Restructure MAKMAKE.PL + MMP.PM file handling as SetVarsFromMmp, so that ide_cw.pm can call back
+		to reprocess the MMP file for other platforms.
+	35)	Adjust cl_codewarrior.pm to match the CodeWarrior Symbian Compiler Plugin, and fix a defect with
+		EXPORTUNFROZEN generating the import library from the wrong def file.
+	36)	Change winutl.pm to avoid the LINK.EXE version check for WINSCW builds.
+	37)	Change EVALID.PL to ignore more variations on pathnames when comparing .MAP files
+	38)	Add compare_summary.pl, a utility for comparing two lots of scanlog.pl output.
+
+2)	Uma
+	1)	Fix Defect JUA-53ULTP "abld reallyclean wins" waits for the user input 
+		in order to finish execution"
+
+Version 0.01.301
+================
+(Made by William, 07/08/2001)
+
+1)	William
+	1)	Require 5.005_03 in BLDMAKE and MAKMAKE, so that pre 518 versions of Perl will
+		explicitly fail early rather than fail during FindBin.
+	2)	Extend support for EPOCROOT-relative paths to "SOURCEPATH" keyword, so that
+		generated source files can be stored in the EPOC32\Build tree. Use something like
+		
+		  SOURCEPATH  \epoc32\build\generated\http
+		  SOURCEPATH  +\build\generated\http
+
+		to get files in %EPOCROOT%epoc32\build\generated\http.
+	3)	Remove unnecessary EPOCROOT check in epocaif.pl
+	4)	Turn up optimisation level in CodeWarrior UREL builds.
+	5)	Change bldmake.pl to that "bldmake plat all" works in the way you'd expect, printing
+		a list of all the supported platforms and the information for each one.
+	6)	Update the ASSP file support so that the keyword SINGLE names the associated
+		single ASSP and builds the additional platform description. Remove SISA.ASSP and
+		add "SINGLE SISA" to the MISA.ASSP file.
+	7)	Move all of the ASSP definitions out of E32PLAT.PM into .ASSP files.
+	8)	Add genutils\ecopyfile.pl which acts like "copy src dst" except that it won't
+		update dst if it's identical to src. Changed the various cl_*.pm modules in
+		Makmake to use perl -S ecopyfile.pl instead of schemes based on diff -s
+	9)	Abstract common parts of cl_gcc.pm, cl_win.pm and cl_codewarrior.pm into a shared
+		file cl_generic.pm, and adjust accordingly. This changes the interface expected by
+		MAKMAKE.PL, so the ide_vc6.pm file was also changed.
+	10)	Provide cl_generic.pm support for accumulating the various MAKEWORK targets, and
+		doing all of the directory creation.
+	11)	Provide generic build of resource, bitmap and AIF files into \epoc32\data\Z, with
+		backwards-compatibility copying from the central place into the \epoc32\release
+		directories. This copying will stay for the emulated Z drives, but could be
+		removed for the ARM targets.
+	12)	Implemented support in the Win32-based platforms for DLLs which are both statically
+		and dynamically linked (e.g. FXCM.DLL). This consists of putting the word
+
+			COPY_FOR_STATIC_LINKAGE
+
+		in the START WINS ... END section, and causes the generated makefile to build the
+		DLL into the target directory and then copy it into the release\xxx\yyy directory
+		used to resolve static linkage. This removes the need for some extension makefiles.
+	13)	Reinstated some lost "perl -w" and "use strict;" checking for the "DEB" version 
+		of e32toolp.
+	14)	Revisited the "no target directory for WINC" and "missing TAREGTPATH for resources"
+		handling. It's now consistent throughout, and avoids paths which expand to include
+		two consecutive separators. In the process, I discovered that WINC was building
+		SYSRESOURCE things into an "emulated Z drive" for WINC: clearly wrong so I applied
+		the "no target directory policy" for WINC as well.
+	15)	Added "-w nounusedexpr" to the list of globally disabled warnings in CodeWarrior
+		builds: this unhelpfully reports uses of va_start(), TPckgBuf<TInt> and other
+		entirely reasonable things.
+	16)	Moved linkdeps.pl into e32toolp\bldmake, and deleted the old BATCH component
+	17)	Added make.exe to e32toolp\group and bootstrap it via setupprj.bat. This is the
+		Win32 native build of make 3.79.1, compiled with the HAVE_CASE_INSENSITIVE_FS option.
+	18)	Changed BLD.INF syntax to accept
+
+		    makefile    extension_makefile
+		    nmakefile   extension_makefile   // invoke with nmake
+		    gnumakefile extension_makefile   // invoke with make
+
+		Currently "makefile" is a synonym for "nmakefile", but eventually I'd like to change
+		it over and get rid of "gnumakefile" which is rather ugly.
+		Currently the only "gnumakefile" extension Makefile is in RCOMP.
+	19)	Changed BLDMAKE.PL and ABLD.PL to use MAKE rather than NMAKE, and generate the 
+		appropriate GNU-style Makefiles in the \epoc32\build tree. This required a change
+		to make 3.79.1, which is now labelled with "(Symbian build 002)".
+	20)	Changed scanlog.pl to detect errors and warnings produced by MAKE as well as NMAKE.
+
+1)	GregZ
+	1)	Add first cut of MMP file support for specifying additional compiler options.
+		The syntax is
+
+		    OPTION <keyword> <rest of line>
+
+		where the keywords are interpreted by the MAKMAKE back-ends. Currently the
+		recognised keywords are CW, GCC and MSVC, and there is enough support to
+		deal with "OPTION CW -W off" for turning off warnings in CodeWarrior builds.
+
+
+Version 0.01.300
+================
+(Made by William, 02/05/2001)
+
+NB. Requires ActiveState Perl 518 or later, otherwise MAKMAKE fails due to problems with FindBin.pm
+
+1)	William
+	1)	Changed MAKMAKE to use WINC\UREL\AIFTOOL.EXE rather than WINC\UDEB
+	2)	Changed MAKMAKE to add "abld listing" support for WINS and WINSCW builds
+	3)	Changed MAKMAKE support for "abld listing" so that the assembler listings
+		are named 
+		
+		    <source_basename>.lst.<abi>
+		    
+		e.g. UP_TRP.lst.ARM4, UP_TRP.lst.WINS etc. Previously they were all called UP_TRP.lis
+		Also changed the philosophy slightly: the listing file is still generated in the
+		\epoc32\build tree, but the LISTING target now always copies the file, rather than
+		copying it as a side-effect of generating it. This makes it easier to alternate 
+		between UREL and UDEB versions.
+	4)	Changed MAKMAKE to generate a MAP file for WINSCW release builds.
+	5)	Improved support for ABIs defined via ASSP files: you can now specify ABI, ASSP, 
+		ASSPABI and Single via the ASSP file, but with very limited error checking. 
+		Changed MISA and SISA into targets defined by ASSP files to prove that it works.
+	6)	Updated instcol.pl to allow for either WINSCW or WINS or both.
+	7)	Added EPOCAIF.PL to generate AIF files, and changed MAKMAKE to use it. This involves
+		adding an include path relative to the location of MAKMAKE.PL so that the SDK can ship
+		a single shared AIFTOOL.RH which will do for all DFRDs. This contributes to fixing
+		defect HET-4VEM87 "Location of release\winc on SDKs places restrictions on developers".
+	8)	Fix defect ROS-4VNJTC "EVALID doesn't correctly compare x86 import libraries" by
+		using "dumpbin /symbols /exports" as suggested.
+	9)	Removed MNT.CMD from the moribund setver.bat script
+
+
+Version 0.01.226
+================
+(Made by Morgan, 08/03/2001)
+
+1)	Morgan
+	1)	Altered MAKMAKE GCC platform (CL_GCC.PM) to include intrinsic libraries
+			EDLLSTUB.LIB	- class Dll::
+			EGCC.LIB		- helper functions not in EUSER.LIB
+
+
+Version 0.01.225
+================
+(Made by Dennis, 05/02/2001)
+
+1)	William
+	1)	Fix defect HEY-4S7N73 "MAKMAKE doesn't force GCC to pass include directories to AS" by
+		forcing the .s extension on assembler files to be uppercase. This causes GCC to put the
+		assembler source file through the preprocessor first, which allows us to use the
+		C preprocessor to organise assembler source. This area will need revisiting when we
+		change to a non-GCC compiler for v7.
+	2)	Fix defect ROS-4TAGHW "MAKMAKE should put .EXP files into the \epoc32\build tree"
+	3)	Removed all remaining traces of MCORE - this will imply BLD.INF changes to remove
+		it as well, since it's no longer a recognised platform.
+	4)	Removed tool-related .IPR files, and the SETUPPRJ support for them
+	5)	Fix defect ROS-4TFGCK "BLDMAKE -keepgoing does not prevent attempts to export 
+		missing files" by rearranging the EXPORTS code in bldmake.pl
+
+2)	William
+	1)	Implement initial support for CodeWarrior 6.0 compiler, as WINSCW defining __CW32__
+	2)	Revert to using LIB.EXE for generate import libraries, as MWLD doesn't seem to
+		support this functionality.
+
+3)	Zill
+	1)	Fix defect ROS-4TFGAN "scanlog.pl should detect and report bld.inf warnings"
+
+
+Version 0.01.224
+================
+(Made by Pete, 19/01/2001)
+
+1)	William
+	1)	Fix defect EDNRCHN-4DAMG8 "Small problem with MAKMAKE" by requiring the LINK.EXE
+		output to contain a "version" line.
+	2)	Don't export the DISTRIBUTION.POLICY document to engdoc\e32toolp, to fix
+		defect ARG-4RJFNV "E32ToolP Exports a distribution.policy file ..."
+	3)	Fix defect EDNABRY-4MLEWA "EPOCROOT error message could be more informative" by 
+		checking separately for the unsupported use of a drive letter.
+	4)	Apply the fix for empty path elements to all the other E32TOOLP scripts which
+		use the same algorithm.
+	5)	Fix defect ROS-4SMKB6 "MAKMAKE doesn't check TARGETPATH strongly enough"
+	6)	Fix defect EDNAWIR-4NAM7R "Not possible to include a library for DEBUG only" by
+		implementing the DEBUGLIBRARY keyword: MMP.PM now builds two lists, with LIBRARY
+		statements contributing to both and DEBUGLIBRARY only contributing to the debug list.
+		Tested with FLOGGER.LIB in PPP.MMP, which removed the MSVC LNK4005 warning.
+	7)	Documented SRCDBG and DEBUGLIBRARY
+	8)	Implement "BLDMAKE -K" to support IPR-filtered builds, and make genbuild.pl pass
+		the keepgoing flag to bldmake.
+	9)	Fix defect ROS-4RWF42 "MAKMAKE clean targets should not use wildcards", by
+		converting the WHAT target into a RELEASABLES= list, then using it in both
+		WHAT and CLEANRELEASE. This preserves the identity that CLEANRELEASE should
+		remove exactly the things listed by WHAT.
+	10)	Fix defect EDNWROS-4NULY5 "MAKMAKE can generate Makefiles containing lines longer 
+		than 2048 characters" by using \ continuation in the relevant places.
+
+2)	Jonathan
+	1)	Added memtrace tool and documentation.
+
+
+Version 0.01.223
+================
+(Made by RobertJ, 13/12/2000)
+
+1)	William
+	1)	Update MAKSYM.PL to cope with multiple ROM images in a single ROMBUILD.LOG file.
+		Derive the name of the SYMBOL file from the ROM image name, except for the
+		first ROM image where the SYMBOL file name can be overridden by the optional
+		commandline argument. "maksym x y" will therefore behave the same as before, but
+		"maksym x" will use a sensible name related to the ROM image rather than MAKSYM.LOG.
+	2)	Update FIXUPSYM.PL to cope with multiple ROM images by stopping at the end of the
+		first image. It needs to do this because the same file could appear in multiple
+		extension ROMs, and live at a different address in each one.
+	3)	Rearrange FIXUPSYM.PL internals to test things in a better order, and to give more
+		meaningful explanations for some "can't fixup" conditions.
+	4)	Fix defect ROS-4S6HRP 'MAKSYM can fail with "Empty compile time value..."' in MAKSYM.PL,
+		FIXUPSYM.PL and HPSYM.PL by converting an empty path element into "."
+
+1)	William
+	1)	Update genbuild.pl to support licensee builds
+		- Removed the old PVCS support and references to M*CORE
+		- Replaced batch\build\special.bat with canned special case command
+		  sequences in genbuild.pl
+		- Validate components by checking for the presence of the BLD.INF file
+		  and issuing a "MISSING COMPONENT" warning for those which don't have
+		  BLD.INF files. Only components which pass this test are included in the
+		  generated CMD files.
+		- Generate additional script xxx_pbuild.cmd, so that genpbuild.pl functionality
+		  is supported by genbuild.pl
+
+ 
+Version 0.01.222
+================
+(Made by Alastair, 16/11/2000)
+
+1)	William
+	1)	Fix defect EDNABRY-4QDEN5 "Scanlog.pl doesn't pick up petran errors" by
+		adding a check for "ERROR: bad relocation:", which is actually a warning that
+		PETRAN has had to guess about the meaning of a relocation.
+	2)	Fix defect EDNJLID-4QCGPS "Instcol batch tool not compatible with Win2000" by
+		replacing the batch file with a Perl script.
+
+2)	Alastair
+	1)	Changed prepfile.pm so that it reports information about files
+	  	included into the file that it's processing.  Updated makmake and
+	  	bldmake error reporting to take advantage of the new information.
+	2)	Added new build tool, metabld.pl.  For more information, see the
+	  	documentation in \e32toolp\docs\metabld.rtf, which is exported to
+	  	\epoc32\engdoc\e32toolp\.
+
+
+Version 0.01.221
+================
+(Made by Nicolas, 10/10/2000)
+
+1)	William
+	1)	Fix defect EDNWROS-4N4JLF "ranlib can damage archive files" by not
+		running ranlib. The ar command already generates the symbol
+		directory, so ranlib is unnecessary.
+
+2)	Nicolas
+	2)	Introduced SRCDBG makmake keyword.  When it is specified (no
+		argument), UDEB builds do not use the -O flag any more.  This is
+		hopefully a temporary work-around that will be removed when every
+		EPOC components build and run ok without optimisations.
+	
+
+Version 0.01.220
+================
+(Made by Dennis, 13/09/2000)
+
+1) William
+	1) Sundry M*Core changes to MAKMAKE
+	2) Added "DefFile" key to E32PLAT.PM PlatHash, for selecting the style of DEF file or
+	   predefined exports: this is used to implement the decision that MCORE will use BMARM
+	   def files until such time as we find a name-mangling difference between GCC 98r2 & 99r1
+	3) Put a test into BLDMAKE.PL so that the path is extended with the mcore-tools\pe\bin
+	   directory for MCORE and MCGM builds. This allows the bootstrap to build for MCORE via
+	   extension makefiles.
+	4) Fixed various warnings from perl -w, e.g "ambiguous used of {xxx} resolved to {"xxx"}"
+	5) Corrected messages about "EXPORTFROZEN" to say "EXPORTUNFROZEN"
+	6) Added -Wno-unknown-pragmas to the GCC makefiles, to suppress MCORE warnings. It seems to
+	   be harmless on the 98r2 GCC, so I've made it standard.
+	7) Fix defect EDNCMOS-4NJJ5L "makmake error message incomplete if UID2 is wrong."
+	8) Fix defect EDNRANS-4NQKXP "Can't build Opltran WINC tool under vc6"
+	9) Change EPOCRC.PL to call RPREP, to support the generation of LOCKIT.
+
+
+Version 0.01.213
+================
+(Made by Morgan, 5/7/2000)
+
+1) Anon
+	1) Changes to
+	Change 43137
+	//EPOC/development/base/6.0/e32toolp/BLDMAKE/BLDMAKE.PL#3
+	//EPOC/development/base/6.0/e32toolp/PLATFORM/CL_WIN.PM#3
+
+
+Version 0.01.212
+================
+(Made by MarkCa, 16/05/00)
+
+1)	Alastair
+	Fixed COMABRY-4JGKQ9 "Test T_R32 fails in UREL under WINS/WINC", by specifying
+	the /Op option for all WINS/WINC UREL builds.  This flag disables optimisation of
+	floating-point comparisons and gives better consistency in this area.
+
+
+Version 0.01.211
+================
+(Made by Morgan, 7.4.2000)
+
+1)	William
+	Removed EBLD.BAT
+	Updated MAKMAKE.IPR to reflect changes to Perl modules
+	Removed LISTASM.IPR now that LISTASM.BAT has gone
+
+
+Version 0.01.210
+================
+(Made by Alastair, 15.3.2000)
+
+1)	Alastair
+	MAKMAKE
+	1)	PROJECT .mmp keyword no longer recognised by Makmake.
+	2)	SUBPROJECT .mmp keyword no longer recognised by Makmake - SOURCEPATH
+		keyword to be used instead.  SOURCEPATH works in the same way except
+		that relative paths specified with the SOURCEPATH keyword are considered
+		to be relative to the .mmp file directory rather than the top-level
+		project directory.
+	3)	UNICODEUID .mmp keyword no longer recognised by Makmake - there's now
+		only one keyword for specifying UIDs - UID - which applies only for
+		UNICODE builds of EPOC now that narrow builds are no longer supported.
+	4)	Documentation in \e32toolp\docs updated for this release.
+
+Version 0.01.209
+================
+(Made by Alastair, 10.3.2000)
+
+
+1)	Alastair
+	1)	Created new module, Trgtype.pm, which is loaded by Makmake and
+	  	contains all the data pertaining to target types as Makmake
+	  	understands them, including the mangled names for exports and second
+	  	UIDs for polymorphic DLLs.
+		Adding targettypes for new plugins should now simply be a matter of
+		adding a new entry in the data structure contained in Trgtype.pm.
+
+	2)	Reorganised Makmake.pl and Mmp.pm.
+
+	3)	Fixed regression introduced in version 207 - NOTIFIER target type and
+		FEP UID affected.  Also updated IDE_VC6.PM to counter NMAKE treating
+		'$' symbols as macros when these symbols occur in mangled function
+		names.
+
+	4)	Added warning hint that generated headers should be included with
+		angle brackets since these headers are generated into system include
+		directories.
+
+	5)	Change default .def file location from
+			\<project>\B<platform>\
+		to
+			..\B<platform>	(relative to the .mmp file directory)
+
+	6)	Changed build directory structure from 
+			\EPOC32\Build\<project>\<executable_basename>\<platform>\<build>\
+		to
+			\EPOC32\Build\<absolute_path_to_mmp_file>\<mmp_file_basename>\<platform>\<build>\
+
+	7)	Added new SOURCEPATH .mmp keyword.  This keyword works in exactly the
+		same way as the existing SUBPROJECT keyword, except that relative
+		paths (those specified without an initial backslash) will be treated
+		as relative to the directory containing the .mmp file rather than the
+		top-level directory specified by the PROJECT keyword.  The PROJECT and
+		SUBPROJECT keywords will soon be removed from Makmake altogether.
+
+	8)	The SOURCEPATH and bitmap-specific SOURCEPATH statements now default
+		to the directory containing the .MMP file.
+
+	MAKMAKE & BLDMAKE
+	1)	Changed default makefile directory structure from 
+			\EPOC32\Make\<project>\<platform>\
+		to
+			\EPOC32\Build\<absolute_path_to_mmp_file>\<mmp_file_basename>\<platform>\
+
+	2)	Changed bldmake directory structure from
+			\EPOC32\Bldmake\<project>\
+		to
+			\EPOC32\Build\<absolute_path_to_bld.inf_file>\
+
+		Note that batch files listing tests created by bldmake will therefore
+		be created in this new location, and the .IBY files used in building
+		base roms will be generated into
+		\EPOC32\ROM\<absolute_path_to_bld.inf_file>\.
+
+		The batch files for running these tests will be ROM-built to Z:\test
+		with a name which reflects the path to the relevant bld.inf file, e.g.
+		Test\F32TEST.GROUP.ARMI.AUTO.BAT.
+
+	BLDMAKE & ABLD
+	1)	Added new section to BLD.INF files for exporting files for use with
+		test code from source.  Syntax is
+
+		PRJ_TESTEXPORTS
+		[<source path>\<source file>]	{<destination>}
+		// list each file exported from source on a separate line
+		// {<destination>} defaults to BLD.INF dir
+
+		The files will be exported as part of "ABLD TEST BUILD ..." as well as
+		with "ABLD TEST EXPORT".  "ABLD TEST CLEANEXPORT" will remove the
+		copied files.
+
+	2)	Added new ABLD command, ABLD LISTING, to create an assembler listing
+		for a particular source file.  Syntax is
+		
+		ABLD [test] LISTING [-k][-v] [<platform>] [<build>] [<program>] [<source>]
+
+		Specify just the basename of the source file.  The listing file will
+		be created in the build directory and copied to the same directory as
+		the source file.
+		This command replaces the LISTASM tool, which has now been removed.
+
+	3)	ABLD.PL now changes directory to the directory containing the relevant
+		BLD.INF file when it is invoked.  This change means that extension
+		makefiles should be able to specify paths relative to the BLD.INF file
+		specifying them rather than absolute paths.
+
+	LISTASM
+	1)	Replaced by ABLD LISTING command.  Type "ABLD HELP LISTING" for
+	  	syntax.
+
+
+	GENERAL
+	1)	Updated SETUPPRJ.BAT to export E32TOOLP tools documentation from
+		\e32toolp\docs to \epoc32\engdoc\e32toolp\.
+		Updated this documentation so that it it up-to-date with this release
+		of E32TOOLP, and will hopefully be edited for every future release.
+
+	2)	Removed PARSECOM.PM. Makmake, Efreeze and Makedef now use Perl
+		standard library command-line parser module - Getopt - instead.  This
+		change means that only a hyphen ("-"), rather than a forward slash
+		("/") or a hyphen, can be used to specify switches for these programs.
+
+	GENBUILD
+	1)	Added call for tools platform to create libraries now that some
+		components create libraries for this platform.
+
+2)	Jonathan
+	FIXUPSYM
+	1)	Only relink executables if they're not already fixed up for the correct
+	  	ROM addresses.
+
+
+Version 0.01.208
+================
+(Made by Pete 24/02/00)
+
+1)	Alastair
+	MAKMAKE
+	1)	Applied hacks for building EUSER.DLL in the MSVC IDE as they
+		are applied to command-line builds of EUSER.DLL.
+
+2)	Jonathan
+	1)	Merged in fixupsym and hpsym tools from ER5u e32toolp v134.
+
+
+Version 0.01.207
+================
+(Made by Simon, 01/02/00)
+
+1)	Simon
+	MAKMAKE
+	1)	Changed hardwired directory to new source structure
+	2)	'PROJECT' keyword is now ignored in mmp files
+
+Version 0.01.206
+================
+(Made by Dennis, 19/01/00)
+
+1)	Alastair
+	GENERAL
+	1)	Removed obsolete tstparse.pl.
+
+	MAKMAKE
+	1)	Fixed Symbian defect EDNMRED-4E5NSD "VC6 always asks to build a dummy
+		RSS file before execute".
+	2)	Tools platform now refuses to build anything but EXE target types.
+	3)	Now using perl script emkdir.pl to create directories in makefiles
+		rather than mkdir because it can make paths all at one go under
+		Windows95/98.
+	4)	Added code so that Win32 resources can be specified with a path relative
+		to the .MMP file as well as absolutely.
+	5)	Changed flags for generating .PDB files in WINS builds so that .MMP
+		files with a targetpath specified produce just one .PDB file in the same
+		directory as the executable created.  This change should also enable
+		debugging executables with target paths on different PC drives.
+	6)	Created new .MMP Target type, "notifier", with a 2nd UID 0x10005522 and 
+		1st export "IMPORT_C CArrayPtr<MEikSrvNotifierBase>* NotifierArray()".
+		The targetpath for the executable will default to "system\notifiers".
+
+
+	MAKMAKE & BLDMAKE
+	1)	Added code to read a .ASSP module in \EPOC32\Tools for specifying a new
+		ASSP.  Syntax for the module is
+
+			ABI		[ARM4|ARMI]		# default is ARMI
+		
+		"ABI" specifies the Application Binary Interface for ASSP releasables, such
+		as EDISP.DLL, which do not specify .MMP keywords ASSPABI, ASSPLIBRARY,
+		or ASSPEXPORTS.
+	2)	Added .ASSP modules for MMAD and MAWD, taking them out of E32PLAT.PM.
+	3)	Removed platforms ARM3, MX86, SARM3, SROS, including ARM3 flags in
+		Cl_arm.pm.
+	4)	Changed MEIG and SEIG ASSPs to build for ARM4 rather than ARM3 hardware.
+	5)	Changes to support partially MCORE development
+		a) MCORE and MCGM have been added as platforms to E32Plat.pm.
+		b) Cl_arm.pm has been renamed Cl_gcc.pm and MCORE-specific tools options
+		incorporated.  The system path in MCORE makefiles is prefixed with the path
+		to the MCORE gcc tools rather than the ARM gcc tools.
+	6)	Changes put in as a side-effect of making the MCORE changes
+		a)	GENERIC_WINS is no longer defined for preprocessing .MMP and BLD.INF
+		files to mean WINS but not WINC or TOOLS.
+		b)	__GCC32__ and __VC32__ are now defined for .MMP and BLD.INF
+		preprocessing for compiler-specific conditions.
+		c)	Minor changes to MAKMAKE.PL and MAKDEPS.PM.
+
+
+	GENBUILD
+	1)	Removed references to ARM3.
+
+
+Version 0.01.205
+================
+(Made by Peter, 15/12/99)
+
+MAKMAKE
+1)	Peter
+	1)	Modified E32PLAT.PM so that MEIG builds use ARM4 rather than ARM3.
+
+
+
+Version 0.01.204
+================
+(Made by Morgan, 3/12/99)
+
+1)	Alastair
+	GENERAL
+	1)	Removed dependence on latest version of perl from setupprj.bat, which was
+		introduced in version 203.
+	2)	Removed MNT.BAT and associated files.
+	3)	Added emkdir.pl, a script for creating directory paths.
+
+
+Version 0.01.203
+================
+(Made by Anonymous)
+
+1)	Alastair
+	MAKMAKE
+	1)	Changed VC6 default configuration for all executables (WINS, WINC,
+		TOOLS) to Debug rather than Release.
+
+	2)	Removed -undef flag from the call to CPP to generate dependencies
+		while it's not being used in compiling the source code.
+
+	3)	Changed order of link dependencies in makefiles so that object files
+		generated from the source files of a project are listed before import
+		libraries the project links to.  This change means that the object files
+		will be built even if a required import library is missing, rather than
+		the build of the project failing immediately with nothing being built.
+
+	4)	Added new perl script, ERMDIR.PL, to \EPOC32\Tools.  Makmake command-
+		line generated makefiles now use this script to remove build directories
+		with ABLD CLEAN, rather than deleting individual files.  RMDIR /S/Q
+		unfortunately doesn't work under Windows95/98, hence the need for a
+		script.
+
+	5)	Fixed minor Windows95/98 syntax error in IDE workspaces:
+			IF NOT %ERRORLEVEL%==0 ...
+		has been changed to
+			IF ERRORLEVEL 1 ...
+
+	6)	(From Chris) added USERLDFLAGS macro for passing to calls to the GCC
+		linker for re-linking executables for use with a debugger.
+
+	7)	Added some dependency information for resource targets in the VC6
+		supplementary makefile so that rebuilding is attempted more
+		appropriately.
+
+	MAKMAKE & BLDMAKE
+	1)	Added -undef flag to the call to CPP to preprocess .MMP and BLD.INF
+		files.  This fixes Symbian defect EDNRFID-4CPJY2 'Can't have source
+		directory called "ARM"'.
+
+	2)	Changed .MMP and BLD.INF preprocessor module so that it can be switch
+		between upper-casing the contents of the processed file or leaving case
+		alone.  BLDMAKE now uses the leave-case-alone mode so that exported files
+		retain the case specified in the BLD.INF file.  MAKMAKE uses the upper-
+		case mode.
+
+	BLDMAKE
+	1)	Extended ABLD -keepgoing option so that it is applied for NMAKE calls on
+		particular project makefiles as well as to calls on the meta-makefiles for
+		each component.
+
+	2)	Improved ABLD error checking so that calls such as ABLD BUILD EWSRV ARMI
+		will report an error because the platform is specified after the program
+		rather than going on to build EWSRV for all supported platforms.
+
+	3)	Bldmake bldfiles will now overwrite read-only abld.bat files.
+
+	EFREEZE
+	1)	Changed EFREEZE.PL to check whether the frozen .DEF file is writeable if
+		there are new exports to be added to this file.  If the file is not
+		writeable the script will exit with a suitable error message.  Fixes 
+		Symbian defect EDNABAN-4CDFAK "Some abld commands die with read-only
+		files".
+
+	GENERAL
+	1)	Changed SETUPPRJ.BAT to use GNU MAKE rather than NMAKE.  This means the
+		Cygnus GNU tools need to be in the path before E32TOOLP can be built.
+
+
+Version 0.01.202
+================
+(Made by Alastair 12/10/99)
+
+1)	Alastair
+
+	BLDMAKE & MAKMAKE
+	1)	Removed support for the old GCC compiler.  Building for platforms MARM
+		and SARM is no longer supported.  If MARM is specified as a platform in
+		the BLD.INF file then it will still be expanded to mean ARM4, ARMI and
+		THUMB but really these platforms should be listed explicitly or the
+		default relied upon.
+
+	MAKMAKE
+	1)	Added list of source macros defined for preprocessing to the help
+		displayed by MAKMAKE -PLAT <platform>.  This list isn't complete, since
+		the definition of some macros will depend upon the contents of a
+		particular .MMP file.  Unlisted macros are as follows:
+			__MARM_<ABI>__ if the platform CPU is MARM
+				(where <ABI> may vary according to .MMP contents),
+			Any macros defined in the .MMP file,
+			__DLL__ or __EXE__ respectively if the general target type is DLL or EXE,
+			WIN32 and _WINDOWS if the project links to Win32 libraries,
+			_UNICODE,
+			_DEBUG or NDEBUG for Debug and Release builds respectively.
+
+	2)	Added extratarget, RECREATEWORKSPACE, to the supplementary MSVC6
+		workspace makefile.
+		This target is intended for use as a custom tool within the MSVC IDE, for regenerating
+		workspace once the .MMP file has been edited within the IDE.  To install the target as
+		a custom tool in the IDE, select Tools->Customise...->Tools, and choose a name for the
+		tool, e.g. "Recreate Workspace".  Next, type "nmake.exe" as the command and
+		"-nologo -f $(WkspDir)\$(WkspName).sup.make recreateworkspace" as the program arguments.
+		Leave the "initial directory" field blank, and tick the "Close window on exiting" checkbox.
+		Having edited the .MMP file for a project, select the new tool from the tools menu to
+		recreate the workspace.  If the commands have run correctly, you will be prompted to
+		reload the workspace.
+
+	3)	Changed makefiles to use DIFF.EXE (part of the GCC distribution from GCC
+		version 523) rather than FC4BAT.EXE to compare generated headers.
+		FC4BAT.EXE is no longer required.
+
+	4)	Changed LIBRARY targets in static library makefiles so that they depend
+		upon the UDEB and UREL targets.  This change means that the ABLD LIBRARY
+		command will create static libraries as well as import libraries.
+
+
+	BLDMAKE
+	1)	Added BLDMAKE PLAT <platform> command, which lists the macros defined
+		for the preprocessing of PRJ_MMPFILES and PRJ_TESTMMPFILES sections of
+		BLD.INF files for the <platform> specified.
+
+	2)	Now dynamically loading module PREPFILE.PM, which depends upon
+		CHECKGCC.PM, so that CPP.EXE is checked only if it is going to be used.
+		This change addresses ER5u defect EDNDFER-4BGN9L "BLDMAKE should not insist
+		on CPP being in the right place unless it's going to use it."
+
+	3)	Bldmake now generates a list of programs supported by each platform in a
+		Perl data structure, so that ABLD can tell whether a particular program
+		as specified on the ABLD command-line should be built for a particular
+		platform.  Fewer obscure errors should now be produced by ABLD,
+		especially since error reporting has been tidied up somewhat.
+
+	4)	If the [platform] or [build] parameters are missed out of the ABLD
+		command-line, they will be assumed to be "ALL".  This means that commands
+		such as ABLD BUILD ECONS will build all the UDEB and UREL versions of
+		ECONS for all the platforms specified in the BLD.INF file, as would
+		ABLD BUILD ALL ALL ECONS.  This change means, as far as Engineering
+		components are concerned, that components must avoid using the names of
+		platforms and builds used during overnight building as the basenames of
+		.MMP files or extension makefiles - MAWD, MISA, MCGA, TOOLS, UDEB, UREL,
+		etc.
+		
+		These last 2 changes address the issues raised by ER5u defect EDNDFER-4BPE3P
+		"It would be good if you didn't have to specify a platform".
+
+	5)	Removed the "hidden" status of ABLD command CLEANEXPORT, so that it
+		appears in the list of available commands.  This command will delete all
+		the files generated with ABLD EXPORT.
+
+	6)	Changed component makefiles that BLDMAKE generates so that
+		\epoc32\gcc\bin on the current drive is added to the front of the PATH.
+		This change will ensure that GCC tools on the current drive are used where
+		custom builds make use of the GCC tools.
+
+	EVALID
+	1)	(From William) Updated EVALID.PL which can use \epoc32\tools\pfsdump to
+		compare two EPOC permanent file stores.
+
+	GENBUILD
+	1)	(From William) some improvements to scanlog.pl.
+
+	2)	(From William) a new alternative overnight genbuild log scanning script -
+		complog.pl.
+
+
+
+Version 0.01.201
+================
+(Made by Alastair, 17.9.99)
+
+1)	Alastair
+
+	LISTASM
+	1)	Fixed problem with projects where the basename of the target is
+		different from the basename of the project's makefile.
+	2)	Added code to generate the build directory to contain the generated
+		listing file.
+
+	MAKMAKE
+	1)	Fixed ER5U defect EDNGTIN-4BTGJU "Fatal error in vc6 .SUP.MAKE file".
+
+
+Version 0.01.200
+================
+(Made by Alastair, 9.9.99)
+
+1)	Alastair
+
+	GENBUILD
+	1)	(From William) Changed batch file output so that a list of executables 
+		that should have been produced is added to the log file.
+	2)	(From William) Added SCANLOG.PL, which summarises the output from
+		GENBUILD.  Call "perl -S scanlog.pl < [genbuild_logfile]".
+
+	MAKMAKE
+	1)	Help now displays the EXPORTUNFROZEN keyword and the target types WLOG,
+		VAR and KEXT.
+	2)	Changed FEP targettype first export to the correct version following the
+		change made to the function in CONE version 160.  This fixes ER5u defect
+		EDNDBAR-4BHH87, "MAKMAKE's knowledge of the FEP interface is out of date".
+
+	BLDMAKE
+	1)	Changed ROM names of the batch file for running the tests for a
+		component from <component>.auto.bat and <component>.manual.bat to
+		<component>.<platform>.auto.bat and <component>.<platform>.manual.bat
+		respectively.  This change will only affect E32TEST and F32TEST, since
+		it's only the rombuild for these 2 components which makes use of the
+		experimental .IBY files generated by BLDMAKE.
+
+
+Version 0.01.127
+================
+(Made by Morgan, 26.8.99)
+
+1)	Alastair
+
+	MAKMAKE
+	1)	Implemented new .MMP keyword, EXPORTUNFROZEN, which means "generate an
+		import library containing frozen AND unfrozen exports".  If this keyword
+		is specified, an import library containing all exports will be created
+		as a side-effect of building the main target, instead of an import library
+		being created directly from the frozen .DEF file.
+		Note that, for the new ARM targets, extra import libraries for
+		compatible targets will not be created, as they are when the import
+		library is created directory from the frozen .DEF file.
+		Note also that warnings about unfrozen exports will still appear.
+
+	2)	Trapped error where duplicate bitmap targets are specified in a .MMP
+		file.
+
+	3)	Removed change to make the bitmap header lower-case in the makefile now
+		that BMCONV doesn't use the case to decide the format for the enum in
+		the generated header.
+
+	4)	Changed PLATFORM\IDE_VC6.PM to make Debug rather than Release builds the
+		default in the VC6 IDE.
+
+	5)	Added 2 new experimental IBY file creation keywords, ROMTARGET and
+		RAMTARGET.
+
+	6)	Changed the target in makefiles called by ABLD -WHAT to WHAT rather than
+		RELEASABLES - this doesn't apply to extension makefiles, where the
+		target is still RELEASABLES.
+
+	7)	Removed -LIST option which used to cause assembler listings to be
+		generated.  This is now done with the new LISTASM tool, and support for
+		this tool has been added to the generated makefiles.
+
+	BLDMAKE
+	1)	Allowed "ALL" to be specified as a platform so that it is possible to
+		build, e.g., makefiles for all supported platforms for a particular
+		project within a component using just one command.
+
+	2)	Updated BLDMAKE\EGMAK.FIL with some more information about how to write
+		extension makefiles for use with ABLD.
+
+	3)	BLD.INF processing now allows platforms to be added to and removed from the
+		default PRJ_PLATFORM list.  Keyword "DEFAULT", if specified, will be
+		expanded to the list of default platforms - WINS, ARMI, ARM4 and THUMB with
+		the new gcc compiler.  Prefix platforms to be removed from the default
+		list with a minus sign [-], and add platforms simply by specifying them
+		as usual.
+		(This feature was actually implemented some time ago).
+
+	4)	Added experimental code for creating .IBY files - this currently only
+		works for E32TEST and F32TEST using the command ABLD TEST ROMFILE.
+
+	5)	Added GENBUILD.PL (from William) and GENBUILD.BAT which produces an
+		effect not dissimilar to "ABLD BUILD" for a list of components.
+
+	6)	Added warning if the new gcc compiler is not installed that the new
+		platforms, ARMI, ARM4, THUMB, etc. will not be available.
+
+	LISTASM
+	1)	New tool to generate an assembler listing for a particular source file.
+		Syntax is
+
+		LISTASM [platform] [build] [source_file]
+
+		The tool searched for the .lis target corresponding to the source_file
+		in the platform makefiles in \EPOC32\Make, and executes the command to
+		generate the .lis directory along with the .o file in the intermediate
+		files directory, and then copy this file to the source_file directory.
+		Only GCC makefiles support this tool.
+
+
+Version 0.01.126
+================
+(Made by Alastair, 19.8.99)
+
+1)	Alastair
+
+	BLDMAKE
+	1)	Fixed problem with target FINAL not being called in extension makefiles.
+
+
+Version 0.01.125
+================
+(Made by Alastair, 18.8.99)
+
+1)	Alastair
+
+	GENERAL
+	1)	Jumped the version numbers because release 120 erroneously reports
+		itself as version 124.
+
+	2)	Added new #defines for BLD.INF and .MMP preprocessing for the new
+		compiler targets
+			ARMI defines MARM_ARMI
+			ARM4 defines MARM_ARM4
+			THUMB defines MARM_THUMB
+			ARM3 defines MARM_ARM3
+
+		These #defines aren't applied for ASSP-specific platforms such as MAWD
+		since we can't know the final ABI until we've processed the .MMP file.
+
+
+	MAKMAKE
+	1)	Added new .MMP keyword, ASSPABI, for use in deciding the ABI for
+		projects built for ASSP-specific targets.  See note MAKMAKE #1 for
+		E32TOOLP version 120 - ASSPABI is implied by ASSPEXPORTS or
+		ASSPLIBRARY.
+
+	2)	Removed support for creating VC5 makefiles.
+
+	3)	Added warning during Win32 makefile creation if MSVC6 Service pack 3
+		is not installed.
+
+	4)	Using -march=armv4t for ARM4, to allow direct use of BX in the kernel,
+		where the component is built for ARM4 but the platform can support thumb
+		instructions.
+
+	5)	Added 2 new target types, KEXT and VAR, for kernel extension DLLs and
+		variant DLLs respectively.  Variant DLLs export the function
+		VariantInitialise__Fv at ordinal one for ARM platforms, and link to
+		EVAR.LIB rather than EDLL.LIB.  Kernel extension DLLs link to EEXT.LIB
+		rather than EDLL.LIB.
+
+	6)	Added code to apply .MMP keyword ASSPABI implicitly for known kernel
+		target types - KEXT, LDD, PDD and VAR.
+
+	7)	Added new target type, WLOG, for WSERV logging DLLs.  These DLLs export
+		the function CreateDebugLog(int, TDesC16 &) at ordinal 1, and have
+		second uid 0x10003b23.
+
+
+	EFREEZE/MAKEDEF
+	1)	Minor change in E32UTIL\DEFUTL.PM so that an EXPORTS statement without
+		a subsequent EXPORT definition can have blank space following it.
+
+
+	BLDMAKE
+	1)	Renamed the batch file BLDMAKE creates from BLD.BAT to ABLD.BAT to give
+		it a name less likely to clash with batch files already in existence.
+		The "A" could be said to stand for "Automated".
+
+	2)	Changed ABLD.BAT syntax, which is now as follows
+
+		ABLD [test] BUILD ( ( [-check] | [-what] ) | ( [-k] [-s] [-v] ) )  [<platform>]  [<build> [<program>] ]
+			(this command combines the EXPORT, MAKEFILE, LIBRARY, RESOURCE, TARGET, and FINAL commands).
+		ABLD [test] CLEAN ( ( [-check] | [-what] ) | ( [-k] [-v] ) )  [<platform>]  [<build> [<program>] ]
+			(removes everything that would be created by the corresponding TARGET command)
+		ABLD EXPORT ( ( [-check] | [-what] ) | ( [-k] [-v] ) )
+			(copies the exported files to their destinations)
+		ABLD [test] FINAL  [-k] [-v]   [<platform>]  [<build> [<program>] ]
+			(allows extension makefiles to carry out any build activities necessary after other build activities have been completed)
+		ABLD [test] FREEZE  [-k] [-v]  [<platform>]  [<program>]
+			(freezes exported functions in a .DEF file)
+		ABLD HELP ( [commands] | [options] | [<command>] )
+			(displays lists of commands or options, or help about a particular command)
+		ABLD [test] LIBRARY  [-k] [-v]  [<platform>]  [<program>]
+			(builds the import libraries from the frozen .DEF files)
+		ABLD [test] MAKEFILE ( ( [-check] | [-what] ) | ( [-k] [-v] ) )  [<platform>] [<program>]
+			(creates makefiles or IDE workspaces)
+		ABLD [test] REALLYCLEAN ( ( [-check] | [-what] ) | ( [-k] [-v] ) )  [<platform>]  [<build> [<program>] ]
+			(as for the CLEAN command, but also removes exported files and makefiles)
+		ABLD [test] RESOURCE [-k] [-v]  [<platform>]  [<build> [<program>] ]
+			(creates resource files, bitmaps and AIFs)
+		ABLD [test] TARGET ( ( [-check] | [-what] ) | ( [-k] [-s] [-v] ) )  [<platform>]  [<build> [<program>] ]
+			(creates the main executable, and also the resource files, bitmaps and AIFs)
+		ABLD [test] TIDY [-k] [-v]  [<platform>]  [<build> [<program>] ]
+			(removes releasables which need not be released from a component)
+
+		Options -k, -s and -v can also be specified as -keepgoing, -savespace and
+		-verbose respectively. Specifying -k will mean unrelated build activies will be
+		carried out after errors, -s causes intermediate files to be deleted if building
+		the main executable is successful and -v displays the calls to tools taking
+		place within makefiles during building. Options -what and -check can also be
+		specified as -w and -c respectively. Specifying -what will display the files
+		which will be created or deleted by a particular command, while -check will
+		check that all the files which would be displayed by -what actually exist.
+
+
+2)	Jonathan
+
+	MAKSYM
+	1)	Relax sanity check so that only .text needs to be found in
+	  	rombuild.log.
+	2)	Include data files in the output.
+
+
+
+Version 0.01.121
+================
+(Made by Alastair, 4.8.99)
+
+1)	Alastair
+
+	GENERAL
+	1)	Added GROUP\BUILD.TXT which contains a brief explanation of how to build
+		E32TOOLP.
+
+	EFREEZE
+	1)	Fixed problem with 'EXPORTS' not being added to the top of empty frozen
+		.DEF files when freezing for the first time.
+
+	MAKMAKE
+	1)	Fixed problems with RELEASABLES targets in generated makefiles - target
+		paths for bitmaps were being missed out as was the data path for system
+		resources.
+
+	2)	Fixed problem with generating VC6 workspaces for projects incorporating
+		resource files.
+
+	3)	Added some #defines for source code preprocessing (there are no
+		corresponding #defines for .MMP preprocessing for these #defines):
+
+			Platform		#define
+			ARMI			__MARM_ARMI__
+			ARM4			__MARM_ARM4__
+			THUMB			__MARM_THUMB__
+			ARM3			__MARI_ARM3__
+			
+
+	BLDMAKE
+	1)	Removed TESTBATS target - batch files for test programs are now created
+		with "BLDMAKE BLDFILES" if required.
+
+	2)	Added temporary code to include ARMI, ARM4 and THUMB as targets for the
+		new gcc compiler if MARM is specified explicitly as a platform in a
+		BLD.INF file.
+
+	3)	Changed output from BLD -CHECK so that missing releasables are listed to
+		STDERR in the following format
+
+		MISSING: <first missing releasable>
+		MISSING: <second missing releasable>
+		  ...
+
+	4)	Changed "Nothing to do" report so that it is applied on a per-target basis
+		rather than on a per-makefile basis in the makefiles that BLDMAKE creates.
+		This means that the "Nothing to do" message is not produced by BLD -CHECK
+		or BLD -WHAT with projects that don't have any releasables or any test
+		releasables or any exports.
+
+	5)	Changed BLD.PL so that if ALL is specified as the build parameter, then
+		BLD.PL loops round the available builds for the platform making the
+		relevant calls to NMAKE rather than calling NMAKE once with the
+		corresponding ALL target specified.  This means that custom-build
+		makefiles written for use with BLDMAKE will no longer have to attempt to
+		deal with $(CFG)==ALL.
+
+
+
+
+Version 0.01.120
+================
+(Made by Alastair, 2.8.99)
+
+1)	Alastair
+
+	MAKMAKE
+	1)	Added support for the 3 new GCC compiler platforms - ARMI, ARM4 and
+		THUMB.  Also added support for ARM3, which is effectively old MARM 
+		built with the new GCC compiler.  Compatible import libraries are
+		produced as well as the import libraries for the new platform in
+		question - so, for example, if a DLL is built for ARM4 then an ARMI
+		import library will also be produced.
+		ASSP platforms built with the new compiler will build a selection of
+		interworking/plain arm executables depending upon whether ASSPEXPORT or
+		ASSPLIBRARY statements are present in the relevant .MMP files:
+
+					ASSPEXPORT/ASSPLIBRARY		otherwise
+		MAWD		ARM4						ARMI
+		MCGA		ARM4						ARMI
+		MEIG		ARM3						ARM3
+		MISA		ARM4						ARM4
+		MMAD		ARM4						ARMI
+		SCGA		ARM4						ARMI
+		SEIG		ARM3						ARM3
+		SROS		ARM4						ARMI
+
+	2)	Added code so that bitmap headers are only generated into
+		\EPOC32\Include if the contents of the header file have changed.  A
+		change is required to BMCONV so that the generated file name is
+		omittted from the header before this will work properly.
+
+	3)	Removed -REL option.  Now, targets RELEASABLES and RELEASABLES<build>
+		are added to generated makefiles so that
+		 nmake -nologo -s -f <makefile> RELEASABLES will display a list of
+		releasables that a build of the makefile will produce.
+
+	5)	Added new target type, EPOCEXE, for executables within EPOC
+		launchable from the shell.  On the target machine these executables have
+		no exports and are built as EXEs.  In the Emulator, on the other hand,
+		these executables are built as DLLs which export a single function
+			EXPORT_C TInt WinsMain()
+		at ordinal 1, to be called by the "EXE recogniser" when the executable
+		is launched.  Makmake supplies the mangled name of this function at link
+		time so there is no need to specify a .DEF file for these target types
+		under any platform.  EXEDLL is still supported as a separate targettype
+		so that an EXE under EPOC can export functionality to client DLLs, and
+		if no exports are required under EPOC then a dummy function will still
+		have to be exported at least until the new gcc compiler is available.
+
+	6)	"MAKMAKE <project> VC5" is no longer specifiable - VC6 must be specified
+		instead.  VC5 workspaces are still supported and will be created instead
+		of VC6 workspaces if the VC5 version of LINK.EXE is found first in the 
+		system path.
+
+	7)	Changed default first library from E(DLL|EXE).o under MARM and
+		E(DLL|EXE).obj under WINS to E(DLL|EXE).LIB under all platforms.  This
+		change means that building with this version of E32TOOLP requires E32
+		version 195.
+
+	8)	Removed support for NARROW builds - these changes include
+		a)	Removed support for .MMP UID keyword.
+		b)	Only one frozen .DEF file is expected to exist for each DLL|EXEDLL,
+			though the 'U' basename suffix will still be applied unless the
+			NOSTRICTDEF file keyword is specified.
+		c)	The generated .DEF file is now created in the directory above where
+			it used to be - e.g. in \epoc32\build\e32\euser\wins\ rather than
+			\epoc32\build\e32\euser\wins\udeb\.  This means that you can freeze
+			using either build, rather than having to freeze using the debug
+			build under WINS and the release build under MARM.
+		d)	The LIB(UNICODE|NARROW) FREEZE(UNICODE|NARROW) targets have been
+			removed from generated makefiles.
+
+	BLDMAKE
+	1)	Default BLD.INF platforms now depend upon which version of the GCC
+		compiler is in use.  With the old compiler, the platforms are WINS and
+		MARM, with the new, WINS, ARMI, ARM4 and THUMB.
+		If platforms are explicitly listed in the BLD.INF file and both the old
+		and new compilers are being used intermittently then list all the
+		platforms necessary for both compilers in the BLD.INF and Bldmake will
+		silently remove any that aren't appropriate to the compiler in use.
+		Bldmake detects at run-time whether the new compiler is in use, as does
+		Makmake, and changes its behaviour accordingly.
+
+	2)	Added -what option to BLD.PL.  BLD -what <platform> <build> <.MMP base>
+		will now display a list of releasables.  Releasables will not be
+		displayed where .MMP files are listed in the BLD.INF file with the TIDY
+		keyword.  This option replaces BLDMAKE's RELFILES target, which has been
+		removed.  The option requires MAKMAKE to have generated the makefiles
+		for the component since it utilises the new RELEASABLES target in the
+		generated makefiles.
+
+	3)	Added -check option to BLD.PL.
+		BLD -check <platform> <build> <.MMP base> will check that releasables
+		have been created and send a list of those that have not to STDERR.
+
+	4)	Changed BLD -LIB option now that narrow builds are no longer supported.
+		There is no longer a need to specify UNICODE or NARROW as the second
+		parameter, just use BLD -LIB <platform> {<.MMP basename>} instead.
+
+2)	Jonathan
+
+	MAKSYM - Replaces C++ version formerly in e32tools. Changes are: 
+	1)	Added support for GNU ld version 2.9-psion-98r2. Can still parse map
+	  	files produced by ld 2.6.
+	2)	0-length functions/labels are eliminated from the output file. This is 
+	  	probably a defect rather than a feature.
+	3)	The last function in the .text segment has its length calculated
+	  	correctly when using ld 2.9 map files, and fairly correctly when
+	  	using ld 2.6 map files.
+
+
+Version 0.01.113
+================
+(Made by Alastair, 21.7.99)
+
+1)	Alastair
+
+	MAKMAKE
+	1)	Refined checkgcc.pm so that it doesn't object to GCC being installed
+		on a substituted drive under Windows95/98.
+
+	2)	Changed MAKEWORK<build> target in command-line makefiles so that it is
+		depended upon by the RESOURCE<build> target rather than the <build>
+		target so that the work directories are created even if just the
+		RESOURCE<build> target is being created.
+
+	3)	Fixed SGCA platform so that it's ASSP is MCGA rather than MEIG.
+
+	4)	Changed BITMAP keyword .MMP processing so that the order of source
+		bitmaps as specified in the .MMP file is preserved.
+
+
+Version 0.01.112
+================
+(Made by Alastair, 15.7.99)
+
+1)	Alastair
+
+	MAKMAKE
+	1)	Added TARGETPATH statement syntax to START BITMAP ... END blocks.  If a
+		path is specified with this keyword, it will be added to
+		\EPOC32\Release\WINS\<build>\Z\ and act as the location for the target
+		bitmap.  If this statement is not used then the bitmap will be created
+		in the directory specified by the main .MMP TARGETPATH statement as
+		before.
+
+	2)	Changed pre-link step in MSVC makefiles for DLLs so that, rather than
+		having several pre-link step calls to equivalent commands in command-
+		line makefiles, there is one call to nmake on <project>.sup.make, which
+		contains the command-line equivalent commands.  If this nmake call
+		fails, then the export object that these commands might create is
+		deleted so that the second-stage link fails rather that misleadingly 
+		reporting no errors.
+		Also defined $(PATH) in <project>.sup.make so that the path here is the
+		same as the path was when Makmake generated the file - this should solve
+		problems relating to MSVC's strange concept of paths in custom-build
+		steps.
+
+	3)	Added post-build step in MSVC makefiles to create the import library
+		from the frozen .DEF file so that MSVC build behaviour is the same as
+		command-line build behaviour in this respect.
+
+	4)	Changed resource building in MSVC so that most of the work is done in
+		<project>.sup.make rather than in the error-prone custom-build step.
+
+	5)	Added -pipe switch to GCC calls in arm makefiles.  This flag should
+		speed up compilation by having GCC use pipes rather than temporary files
+		to communicate between the various stages of compilation.
+
+	6)	Changed testing of LINK.EXE version number so that a warning about
+		needing MSVC5 Service Pack 3 is not generated when using MSVC6.
+
+	7)	Changed CLEANBUILD targets in WINS command-line makefiles so that
+		incremental linker files in the RELEASE directory are deleted too.
+
+	8)	Re-implemented mechanism for defining macros on the NMAKE command-
+		line using the $(USERDEFS) NMAKE macro due to popular demand.
+
+
+	MAKEDEF
+	1)	Changed warning about frozen exports not being found in the object files
+		into an error so that it stops the build after a new .DEF file is
+		generated.
+
+	2)	Re-organised error and warning reporting so that clicking on the output
+		message in the MSDEV output window will bring up the relevant frozen or
+		generated .DEF file at the appropriate line number.
+
+
+	BLDMAKE
+	1)	Removed terminating backslash from directory name where tests are applied
+		to check that the directory exists, because some older versions of
+		Perl like build 307 can't cope with that.
+
+	2)	Disable check for duplicate platforms specified in BLD.INF files in
+		case bld.inf files #include bld.inf files from sub-components.
+
+	GENERAL
+	1)	Changed system for building E32TOOLP so that it's more Windows95/98
+		friendly.
+
+
+Version 0.01.111
+================
+(Made by Alastair, 12.7.99)
+
+1)	Alastair
+
+	MAKMAKE
+	1)	Added new RESOURCE<build> targets to generated makefiles.
+
+	2)	Added temporary change so that WINC static libraries are built and linked
+		against in directory \EPOC32\Release\WINC rather that
+		\EPOC32\Release\WINS.
+
+
+	BLDMAKE
+	1)	Added option to BLD.PL, -RESOURCE, which will invoke the new RESOURCE<build>
+		targets in Makmake-generated makefiles.  In other words, this option will build
+		just the bitmaps, aifs and resource files for a component and no
+		binaries or import libraries.
+		Any custom-build makefiles incorporated into the Bldmake system with the BLD.INF
+		MAKEFILE keyword will need to add RESOURCE: targets or errors will be reported.
+		
+	2)	Changed default build for BLD.PL with no options specified or the -savespace
+		option specified.  The default used to be DEB for WINS and REL for MARM.
+		It's now ALL whatever the platform.
+
+	3)	Bldmake relfiles command can now handle multiple releasables listed on
+		the same line by Makmake's -rel flag or custom-build makefiles'
+		RELEASABLES target.  The command splits on whitespace unless spaces
+		occur within quotation marks.
+
+
+
+Version 0.01.110
+================
+(Made by Alastair, 6.7.99)
+
+1)	Alastair
+
+	MAKMAKE
+	1)	Generated command-line makefiles now contain comments providing the name
+		of the .MMP file, the target, target type and general target type.
+	2)	Fixed CLEAN targets for resource files so that they now delete XXX.R* 
+		files rather than XXX.R.* files.
+	3)	Updated -REL flag to include releasables for resources, bitmaps and
+		aifs in the list of releasables produced.
+	4)	Changed AIF handling so that colour depth settings and bitmaps are
+		optional parameters rather than mandatory.
+
+
+	BLDMAKE
+	1)	Changed bldmake bldfiles so that a perl file BLD.PL is no longer
+		generated.  Instead, there is just one BLD.PL in \EPOC32\Tools which is
+		invoked by the respective \<project>\group\bld.bat files with a path to
+		the generated bldmake files.  Among these generated files is
+		PLATFORM.PM, which contains information about the platforms that a
+		particular project supports; this module is loaded by BLD.PL at run-
+		time.
+	2)	Fixed erroneous assumption that bld.inf files won't list .MMP files in
+		another top-level directory which was causing makmake and bldmake to
+		disagree about the destination of makefiles generated with the -D switch.
+	3)	Changed BLDMAKE so that it will fail if not called from the directory
+		containing the BLD.INF file.
+	4)	Changed BLDMAKE output directory so that if the BLD.INF directory is not
+		a two-level directory the second-level directory of which is called
+		"GROUP" then the output directory will be
+			\EPOC32\Bldmake\<full-path to BLD.INF file>\ rather than
+			\EPOC32\Bldmake\<first-level directory of BLD.INF path>\.  This is a
+		temporary move to support developers external to Symbian.
+
+	GENERAL
+	1)	Added fetcher definition file, E32TOOLP.FTC, to the group directory.
+
+
+Version 0.01.109
+================
+(Made by Alastair 29.6.99)
+
+WARNINGS
+1)	EBLD commands may be broken by change (11) to MAKMAKE below, if such a
+	command invokes MAKMAKE with the -D switch.
+
+1)	Alastair
+
+	MAKMAKE
+	1)	Updated Cl-arm.pm to be switchable between the current version of the
+		gcc compiler we use and the newer Gcc29.
+	2)	Removed a "t", standing for thumb, from one of the new Gcc29 plain ARM
+		flags.
+	3)	Added CLEANBUILDALL target as a synonym for CLEANBUILD in command-line
+		makefiles.
+	4)	Removed warning about NARROW .DEF files not being found.
+	5)	.MMP files are now included in generated IDE makefiles as source documents
+		by default.  You'll now get a warning if you're already
+		specifying your .MMP files with the DOCUMENT keyword.
+	6)	Added warning when creating Win32 makefiles which appears if MSVC5
+		Service Pack 3 is not installed.
+	7)	Added new .MMP keyword, MACRO, for specifying user-defined macros for
+		source code preprocessing.  Letters in MACROS will always be upper-
+		cased.  It's no longer possible to define macros on the NMAKE command-
+		line using the $(USERDEFS) NMAKE macro.
+	8)	.MMP files now support bitmaps.  .MMP syntax is
+			START BITMAP <target>
+			{HEADER}
+			SOURCEPATH	<source path>
+			SOURCE		<colour depth> <list of source .BMP files>
+			END
+		SOURCE and SOURCEPATH statements can be repeated any number of times -
+		the directory specified with the SOURCEPATH statement will apply for all
+		subsequent SOURCE statements.  There is no support for localisation of
+		bitmaps.  Colour and black-and-white bitmaps should be specified as
+		separate entities.  There is currently no support for building bitmaps
+		within the MSVC IDE.
+		A lot of source files appear to incorrectly user #include generated
+		headers rather that system #include them with angle brackets.
+	9)	.MMP files now support application information files.  .MMP syntax is
+			AIF	<target> <source path> <resource> \
+				<colour depth> <list of source .BMP files>
+		Colour and black-and-white .AIF files should be specified as separate
+		entities.  Only one colour depth may be specified for all source .BMP
+		files.  There is no support for localisation of .AIF files and currently
+		no support for building .AIF files within the MSVC IDE.
+	10)	Fixed problem with building resources in the MSVC IDE - include paths
+		for .RSS file preprocessing are now specified relative to the .DSP file
+		rather than relative to the working directory where the command to
+		create the .DSP file was invoked.
+	11)	Changed MAKMAKE -D switch so that makefiles are created in
+		 \EPOC32\Make\<project>\<platform>\ rather than
+		 \EPOC32\Make\<platform>\.  This change is to prevent clashes during
+		overnight builds where different components have .MMP files with the
+		same name.
+	12)	Added --thumb-entry LD.EXE flag for THUMB builds.
+	13)	Changed build and release directories for static libraries so that,
+		for example, static libraries will always build into
+		\EPOC32\Release\MARM... rather than \EPOC32\Release\MAWD.  This change
+		may have to be redressed should code for static libraries need to
+		differ for different ASSPs or between single and multi-process versions
+		of EPOC, though this is not currently the case.
+
+		
+	MAKMAKE & BLDMAKE
+	1)	GENERIC_WINS is now defined for preprocessing of .MMP files and BLD.INF
+		files for platforms WINS and VC5, while GENERIC_MARM is defined for
+		platform MARM - this macro effectively means "just MARM", as opposed to
+		MAWD, MEIG, MISA, etc. all of which define the MARM macro too.
+
+
+	BLDMAKE
+	1)	Updated BLDMAKE.PL with a few of William's suggestions to check for
+		missing/duplicate exported files, create .MAKE files rather than .MAK
+		files and other bits and bobs.  Also,  if the BLD.INF file for your
+		component isn't in a subdirectory called "Group" then BLDMAKE generates
+		it's work files into \EPOC32\Bldmake\<full path to BLD.INF dir>\ rather
+		than \EPOC32\Bldmake\<component>\.
+	2)	Added option -savespace to generated BLD.BAT for building as normal
+		except that if the build is successful then the intermediate files will
+		be deleted from the build directories.
+	3)	Changed "TEST" command-line argument so it needn't be specified before
+		any of the available options, it still needs to be the first of the
+		argments though.
+	4)	Bldmake bldfiles now always creates meta-makefiles for exports, programs
+		and test programs.  If these makefiles have nothing to do when they are
+		invoked they report the fact.
+	5)	Added syntax for specifying custom-build makefiles.  Specify these in
+		the PRJ_MMPFILES section of BLD.INF with keyword MAKEFILE.  All
+		subsequent arguments are the same as for .MMP files.  See
+		\e32toolp\bldmake\egmak.fil for an example custom-build makefile.
+	6)	Changed BLD.BAT help so that it's printed to STDOUT rather than STDERR
+		so that it doesn't scroll off the screen with 'bld |more'.
+	7)	Changed BLDMAKE.PL so that BLD.INF is not preprocessed for VC5 and WINS
+		platforms everytime.
+
+
+	OTHER
+	1)	Removed superseded EVALID.CMD.
+
+Version 0.01.108
+================
+(Made by Alastair, 9.6.99)
+
+This release requires VC5 Service Pack 3 to be installed.
+
+You can tell if VC5 SP3 is installed by typing link without any arguments and 
+checking the version number.  If the version is 5.10.7303 you have SP3 installed.  
+You can get SP3 from directory "\\sentinel-main\ualastrb\VS97_SP3".
+
+EXTRA INFORMATION
+	0)	Some of the changes below have been adjusted so that this version of
+		E32TOOLP will continue to work with projects which depend upon E32
+		version 186 and earlier versions.
+	1)	\EPOC32\LINK\ has been renamed \EPOC32\RELEASE\ for temporary backwards
+		compatability.  The UNICODE sub-directory has been renamed UDEB under
+		WINS and UREL under MARM, the NARROW sub-directory has been renamed DEB
+		under WINS and REL under MARM.
+	2)	Targets will attempt to link to [EDLL|EEXE].o under MARM and
+		[EDLL|EEXE].obj under WINS for the moment.
+	3)	Flag -undef will not yet be used in gcc calls because an extra #define
+		is required in the E32 source code for this to work.
+
+MAKMAKE
+	0)	Renamed zip file in S:\e32toolp\zip\ from E32TOOLP.<ver> to TOOLS.<ver>.
+		The files within this zip file now also have full pathnames so ensure
+		you unzip them into the root of your EPOC drive with any flags required
+		to recreate the directory structure.
+
+	1)	Changed makefiles so that import libraries can be generated separately
+		from dlls, direct from the frozen .DEF file.  Import libraries are now
+		generated into directory \Epoc32\Link\[platform]\[NARROW|UNICODE]\. 
+		nmake /f [makefile] [LIB|LIBUNICODE|LIBNARROW] can be used to generate
+		the import libraries, though the libraries will be generated anyway during
+		command-line builds.  This change means that new exports you add to your
+		component won't appear in the component's import libraries until the new
+		exports are frozen.
+
+	2)	Changed DEFFILE .MMP keyword so that, whether the keyword is used or not,
+		the default .DEF file name, \[project]\B[platform]\[target basename].DEF,
+		will be applied if no other filename is specified.  If a .DEF file does
+		not exist for DLL or EXEDLL targets, warnings will be issued about the 
+		project not being frozen.
+
+	3)	Added new makefile targets to command-line makefiles to make freezing
+		easier - FREEZE, FREEZEUNICODE and FREEZENARROW.  Use
+			nmake /f [makefile] [target]
+		to freeze a component.  The makefile will call perl on EFREEZE.PL to
+		compare the frozen .DEF file, if it exists, with the new one and insert
+		any new exports into the frozen .DEF file.  Once the project has been
+		frozen, regenerate the makefile so that it won't produce warnings and
+		will reference the frozen .DEF file in the right places.  The .MMP file
+		need not be altered to include a DEFFILE statement as with previous
+		versions of E32TOOLP.
+		Use xcopy /e *.def *.frz or a similar command if you wish to back up
+		your .DEF files before freezing.
+		ARM targets will take the new .DEF files from the REL and UREL build
+		directories, while Win32 targets will take the new .DEF files from the
+		DEB and UDEB build directories.
+
+	4)	Changed build directory to
+			\EPOC32\Build\[Project]\[Target basename]\[platform]\[build]\.
+
+	5)	Removed LONGBLDPATH keyword.
+
+	6)	Removed NOBROWSEINFO keyword, which was specific tocommand-line Win32
+		makefiles.
+
+	7)	Removed support for MSVC4 makefiles.
+
+	8)	Remove -CLEAN and -MAKEWORK flags.  Using NMAKE on the clean and makework
+		targets in the generated makefiles to carry out these tasks is more versatile 
+		and more efficient.
+
+	9)	Changed targettype LIB so that it builds static libraries properly.
+		DLLs and EXEs will now link to EDLL.LIB and EEXE.LIB respectively,
+		rather than EDLL.OBJ and EEXE.OBJ.  This change means that components
+		built with this version of E32TOOLP will require the latest version of
+		E32, and won't be able to build using the latest version of E32 and old
+		versions of E32TOOLP.
+
+	10)	Static libraries are now generated into
+		\Epoc32\Link\[platform]\[build]\.
+
+	11)	Added new .MMP keyword, STATICLIBRARY, for specifying that a target
+		links to static libraries.
+
+	12)	Removed OBJECT keyword, for linking a target to pre-compiled objects.
+		This keyword wasn't working under ARM builds anyway. If your project
+		links to pre-compiled objects you can list them as static libraries
+		using the new STATICLIBRARY keyword instead - and preferably get them
+		supplied as static libraries rather than object files.
+
+	13)	Changed VC5 makefiles to use a pre-link command which calls link.exe,
+		dumpbin.exe, makedef.pl, and lib.exe as command-line makefiles do.
+		This should mean that DLLs built in VC5 are generated in exactly the 
+		same way as DLLs built with command-line makefiles, though the import
+		libraries will not be generated.  This procedure also avoids the
+		warnings about exports being defined multiple times.
+
+	14)	Added custom build step for building resources within the VC5 IDE.  This
+		change addresses EDN934964
+		"MAKMAKE should integrate EIKRS as a custom build step".  All resources
+		specified for a project should be compiled automatically for all
+		languages specified.  Strangely, VC5 seems not to be able to find
+		rcomp.exe and fc4bat.exe if these tools are invoked without a path,
+		but has no problems with CPP.EXE - even if no system path to CPP.EXE is
+		set.
+		Unfortunately, if a .RSC file is custom-built within the IDE, MSVC assumes
+		it is a Windows resource file and tries to link it with the main target,
+		which causes an error.  To avoid this problem a change	 has been applied so
+		that, if building a resource file for language SC, the output file as far as
+		MSVC is concerned is a .RSC.dummy file, which is created whenever the .RSC
+		file is created.
+
+	15)	Added new targettypes for some types of polymorphic dll.  These are
+			ANI	- animation dlls
+			CTL - system controls
+			FEP - front end processors
+			MDA - media server plug-ins
+			MDL - mime recognisers
+			OPX - OPL extensions
+			PDL - printer drivers
+			RDL - recognisers
+		If any of these targettypes is specified and no deffile is specified
+		then makmake will ensure the correct functions are exported at ordinal
+		1, and, in some cases, ordinal 2.  Makmake will also put in the correct
+		second uid if no uids are specified.
+
+	16)	If a polymorphic dll of recognised type has the wrong second uid a
+		warning will now be issued.  Note that if such a dll, e.g. an APP,
+		specifies the second uid as zero ("0" or "0x00000000") the correct
+		second uid for that polymorphic dll will be applied.  This is useful
+		when you want makmake to handle the second uid but you want to specify
+		an additional third uid.
+
+	17)	Added command-line flag, /PLAT [platform] which displays platform-
+		specific .MMP file syntax.
+
+	18)	Removed __PSISOFT32__ macro now that we have __SYMBIAN32__ defined for
+		all projects.
+
+	19)	Removed __XCON__ macro which had been defined for __WINC__ builds.
+
+	20)	Default .DEF file directory for __WINC__ .DEF files is now
+		\[project]\BWINS rather than \[project]\BWINC.
+
+	21)	Added new module, E32PLAT.PM, which replaces WINS.PM, MARM.PM, etc,
+		containing data about all the platforms currently supported by Epoc.
+		Current platform defines are now as follows:
+		(all these macros begin and end with a pair of underscores).
+
+		All		__SYMBIAN32__ __PSISOFT32__
+
+		MARM	__GCC32__ __EPOC32__ __MARM__
+		MAWD	__GCC32__ __EPOC32__ __MARM__ __MAWD__
+		MCGA	__GCC32__ __EPOC32__ __MARM__ __MCGA__
+		MEIG	__GCC32__ __EPOC32__ __MARM__ __MEIG__
+		MISA	__GCC32__ __EPOC32__ __MARM__ __MISA__
+		MMAD	__GCC32__ __EPOC32__ __MARM__ __MMAD__
+		SARM	__GCC32__ __EPOC32__ __MARM__          __SINGLE__
+		SEIG	__GCC32__ __EPOC32__ __MARM__ __MEIG__ __SINGLE__
+		SROS	__GCC32__ __EPOC32__ __MARM__ __MROS__ __SINGLE__
+		SCGA	__GCC32__ __EPOC32__ __MARM__ __MCGA__ __SINGLE__
+		MX86	__VC32__  __EPOC32__ __MX86__
+		WINS	__VC32__  __WINS__
+		WINC	__VC32__  __WINS__   __WINC__
+
+		The major change here is that __MARM__ now represents the CPU-type being
+		used while __MAWD__, __MEIG__, etc denote the ASSP (Application Specific
+		Standard Product).  This change will affect few releaseables apart from
+		the base team's, since most people's MARM releaseables should run on
+		all the ARM ASSPs without modification.
+
+	22)	Added new .MMP keyword, ASSPEXPORTS.  If this keyword is specified
+		makmake by default will look for an ASSP-specific deffile rather than a
+		CPU-specific one.  In other words, if you're building EKERN.EXE for MISA
+		and specify ASSPEXPORTS and deffile EKERN.DEF without a path makmake will
+		select a deffile from \E32\BMISA rather than \E32\BMARM.
+
+	23)	Replaced FIRSTOBJECT keyword with FIRSTLIB.  This keyword takes the full
+		name, rather than the basename, of the first library in the link to replace
+		EEXE.LIB or EDLL.LIB.
+
+	24)	Changed MAKMAKE.PL and BLDMAKE.PL so additional .PM modules are searched
+		for in whichever directory in the system path the .PL module is first
+		found, rather than the first /^(\w:)?\\EPOC32\\TOOLS\\?$/io style
+		directory found in the path.
+
+	25)	Added -s flag to first call to linker 'LD' in gcc makefiles.  This option
+		strips symbolic information from the output file and specifying it will
+		speed up linking very slightly.
+
+	26)	Fixed EDN870985 "VC5 should put strings into read-only memory".  By
+		specifying the CL.EXE command-line option /GF strings are pooled and
+		placed in read-only memory, thus EPOC builds are emulated more closely.
+		This change applies for WINC too, and applies for MSVC builds as well as
+		command-line builds.
+
+	27)	Added /List option to makmake command-line.  This option will generate a
+		makefile which will produce assembler code listing files, one for each
+		source file, in the build directory during compilation.  This option is
+		only supported for ARM builds at the moment.  These files will have the
+		extension ".S".
+
+	28)	Added -undef switch to GCC calls in ARM makefiles and to CPP calls
+		during dependency generation.  This switch means 
+		"Do not predefine any nonstandard macros.  (Including architecture flags)."
+
+	29)	Added code to module Platform\Cl_arm.pm to create
+		makefiles compatible with Cygnus' latest release of GCC.
+
+	30)	Added code to replace forward slashes with backslashes in data read from
+		environment variables to assist those running makmake in unix shells.
+
+	31)	Removed CL.EXE flag /Ob1 and LINK.EXE flag /incremental:yes from
+		Win32 makefiles because the respective tools apply these by default.
+
+	32)	\EPOC32\Include\E32uid.h is now searched for LDD and PDD narrow and
+		UNICODE second uid values so there is no need for these values to be
+		updated in Makmake everytime the kernel interface changes.
+		\E32\Inc\E32uid.h is searched instead if PROJECT is specified as E32.
+
+	33)	Removed MAKSYS.PM.  Moved function to apply the, now reduced, number of
+		patches required for building E32 into MAKMAKE.PL.
+
+	34)	Added pseudotarget ALL: to command-line makefiles which will build all
+		variants of a target, DEB, REL, UDEB and UREL.
+
+	35)	Removed IMPLIB targettype for generating import libraries - this targettype
+		should no longer be required now that import libraries can be generated
+		separately.
+
+	36)	Added new flag to makmake, -REL, which will display a list of
+		releasables for a component.  This flag is intended for use by BLDMAKE
+		for generating lists of releasables.
+
+	37)	Added support for building Win32 tools.  The platform name is "TOOLS",
+		and makefiles created using "makmake <.MMP basename> tools" will not
+		link to eexe.obj and will link to the Win32 standard libraries by
+		default.  For examples look at the source for the latest E32TOOLS, which
+		has been converted to use makmake.  EXEs will be copied to
+		\Epoc32\Tools\ once built.
+
+	38)	Added new keyword, ASSPLIBRARY, with the same syntax as LIBRARY
+		statements.  This statement is for specifying a target links to import
+		libraries which differ for different ASSPs.  EKERN.LIB is such a
+		library, which differs between MEIG, MAWD and MISA.  EUSER.LIB, on the
+		other hand, presents the same interface under MEIG, MAWD and MISA though 
+		EUSER.DLL is different under each platform.  This keyword should only
+		need to be used in .MMP files for device drivers.
+
+	39)	If the ASSPEXPORTS keyword is not specified and if a DLL is built under
+		an ASSP platform such as MEIG or MAWD, rather than MARM, then the import
+		library for the DLL will be built into \Epoc32\Link\MARM rather than
+		\Epoc32\Link\MAWD.  This change shouldn't affect any projects outside of
+		the Base team though a side-effect of this change is that WINC import
+		libraries will be created in \Epoc32\Link\WINS - this shouldn't be a
+		problem since WINS and WINC should be binary compatible anyway.
+
+EVALID
+	1)	Fixed EDN704662 "EVALID should change the order of it's logging".
+	2)	Fixed EDN650568 "EVALID wins-lib is no good with VC++6.0".
+	3)	Included William's new improved Evalid - Evalid.bat will be used in
+		preference to Evalid.cmd if invoked "evalid".  I haven't removed
+		superseded Evalid.cmd so that the fixes I've already made are archived.
+
+EFREEZE
+	1)	Added new batch file, EFREEZE.BAT to create frozen
+		.DEF files for the first time or to maintain currently existing frozen
+		.DEF files.  Perl is called on EFREEZE.PL in makmake-generated makefiles
+		to read exports out of the frozen .DEF file and the new .DEF
+		file, check and compare them, and append any new exports to the end
+		of the frozen .DEF file.
+		EFREEZE.BAT syntax is 
+			EFREEZE {-Compare} [frozen .DEF file] [new .DEF file]
+		If the -compare option is specified then the frozen .DEF file will not
+		be changed, but information about differences between the files will be
+		generated as in standard EFREEZE operation.
+
+MAKEDEF
+	1)	Added new perl script, MAKEDEF.PL, which replaces DEFMAKE.EXE and
+		DEFTOOL.EXE from E32TOOLS.  Perl is called on this script in makmake-
+		generated makefiles to reorder exports during a build according to which
+		of these exports are already frozen.  Under Win32 platforms, DUMPBIN is
+		called on the import library generated after the first stage of linking
+		to create a list of exports which MAKEDEF.PL can read.  Under EPOC
+		platforms, DLLTOOL is used to generate an interim .DEF file as before.
+		Generated .DEF files follow the .DEF file layout style used in the .DEF
+		files that DLLTOOL generates for all platforms, even WINS.  This makes a
+		WINDIFF comparison of old frozen .DEF files and .DEF files generated by
+		MAKEDEF difficult, though EFREEZE.BAT can be used to do the comparison
+		instead.  If you change the name/parameters of any exported function in
+		source code then updating the freeze file is slightly tricky since
+		EFREEZE.BAT will refuse to do the comparison because of the missing
+		export in the generated .DEF file, though the new mangled name of the
+		export will still appear as a new export at the end of the generated .DEF
+		file.  Some improvements in this area will follow shortly.
+
+BLDMAKE
+	1)	Just one project file, BLD.INF, is now processed by BLDMAKE, rather
+		than several B[platform].PRJ files.  Use #defines as in .MMP files to 
+		specify that certain releasables should only be built for certain
+		platforms.
+		Type BLDMAKE without any parameters for help.
+		The BLD.INF file for your project should reside in the project's 
+		group directory.
+		Type "BLDMAKE INF" for basic BLD.INF syntax.
+		When "BLDMAKE BLDFILES" is typed, BLD.BAT is created in the project's
+		group directory which will call \EPOC32\Bldmake\<project>\BLD.PL.
+		BLD.PL will make calls to nmake to do it's building.  For each platform
+		supported by the project there will be a makefile in
+		\EPOC32\Bldmake\<project>\ controlling building for that platform.
+		There will be a separate makefile for each platform for any test programs.
+		There will also be a makefile to control the exporting of headers.
+		BLD.BAT syntax is much the same as before, except that PREPARING and
+		CLEANING are controlled by passing parameters -MAKMAKE and -CLEAN
+		respectively rather than using separate batch files.  Building of Import
+		Libraries can be controlled separately by using the -LIB and -CLEANLIB
+		flags.  If build commands are to refer to test programs then "TEST" must
+		be the first parameter specified to BLD.BAT, even if the project only
+		contains test programs - e32test is such a component.
+
+GENERAL
+	1)	Changed MNT.BAT to MNT.CMD so that use can be made of SETLOCAL and
+		ENDLOCAL.
+	2)	Removed all li.prj files - these can now be generated by our CVS system.
+
+
+
+Version 0.01.107
+================
+(Made by Alastair, 17/5/99)
+
+Alastair
+	1)	Made the new import libary-building targets dependent upon .DEF files
+		so that libraries are only built if out-of-date with respect to the .DEF
+		files rather than every time.
+
+
+Version 0.01.106
+================
+(Made by Alastair, 17/5/99)
+
+Alastair
+	1)	Added new targets for building .LIB files directly from .DEF files.
+		Targets are LIB<build> where build is DEB, REL, UDEB or UREL.
+
+
+Version 0.01.105
+================
+(Made by Alastair, 14/5/99)
+
+Alastair
+	1)	Added MCGA.PM and updated MAKSYS.PM (both provided by Simon) for the
+		COGENT port.
+
+
+Version 0.01.100
+================
+(Made by Alastair, 1.2.99)
+
+GENERAL
+	1)	Boiler-plated source.
+	2)	Replaced hard-coded R: with %s% in MNT.BAT.
+
+
+Version 0.01.099
+================
+(Made by Alastair, 21.12.98)
+
+MAKMAKE
+	1)	Changed narrow and unicode second UID defaults for LDD targettypes,
+		following corresponding changes to E32 version 159.
+
+
+Version 0.01.098
+================
+(Made by Alastair, 27.11.98)
+
+GENERAL
+	1)	Added EBLD.BAT, previously released as part of EIKTOOLS, to E32TOOLP's
+		releasables.
+
+MAKMAKE
+	1)	Makmake now creates \Epoc32\Release\Wins\App.def when creating a VC4 or
+		VC5 makefile for an app, and does similar things for LDD and PDD
+		targettypes.
+	2)	New file system target, FSY, incorporated, which automates the second uid
+		and the first ordinal export for file system builds in the same way this
+		is accomplished for other supported polymorphic dll targettypes.
+	3)	Added new .MMP keyword, EPOCFIXEDPROCESS, which will pass on the -fixed
+		switch to petran.
+	4)	Removed /LANG command-line flag which used to allow a language to be
+		specified on the command-line.
+	5)	Changed LANG .MMP keyword so that it can take a list of languages, so
+		a resource file will be compiled multiple times, once for each language
+		specified.  If no language lists are specified the language list will
+		default to just SC.  Fixes Epoc S/W problem 228,
+			"mmp fileas doesn't allow compiling 2 language variants".
+	6)	Added extra build stage for command-line wins builds which calls lib.exe
+		to generate an import library and export object from the dll's deffile
+		created by defmake.  The VC5 linker running with Service pack 3 will now
+		no longer produce warnings about multiple exports - though you'll still 
+		get them if you build within the VC5 IDE.
+	7)	RESOURCE and SYSTEMRESOURCE keywords can now take a list of resources.
+		This fixes Epoc S/W problem 300,
+			"Makmake should support multiple resource files".
+		Each resource file will be built for each language specified.
+	8)	Added warnings if duplicate sources, languages, systeminclude paths,
+		userinclude paths, resources or libraries are specified in .MMP files.
+		The duplicates are not listed in the makefile.
+		This fixes Epoc S/W problem 366
+			"MAKMAKE doesn't spot duplicate SOURCE files".
+	9)	Added SROS.PM from Malcolm, and updated MAKSYS.PM accordingly.
+	10)	Changed CL_WIN.PM so that the preprocessing stage for resource files in
+		command-line WINS makefiles always lists the directory containing the
+		source as the first user include directory.  This was an omission from 
+		change #3 in E32TOOLP version 097.
+
+BLDMAKE
+	1)	Created batch files, except those in the group directory, are now
+		created in directory \Epoc32\Bldmake\<project>\<platform>\ rather than in
+		the \<project>\B<plat>\ directories.
+	2)	Batch files created in the group directory are set to be read-only.
+
+
+Version 0.01.097
+================
+(Made by Alastair, 12.11.98)
+
+MAKMAKE
+	1)	VC5 .dsw generated files are no longer all hardwired to point to
+		Euser.dsp.
+	2)	Removed RELGDB configuration for ARM builds.
+	3)	Fixed Epoc S/W problem 277 -
+		'Cannot specify "current directory" as a USERINCLUDE path in MAKMAKE'.
+		The directory containing the source file is now always searched for
+		user-included dependencies (thats #include "<dep>").  This brings
+		dependency-generation by MAKMAKE and MARM makefiles into line with WINS
+		makefiles, where CL.EXE has always searched the directory containing the
+		source (except for the fact that CL.EXE makes no user/system
+		distinction).
+	4)	__SYMBIAN32__ is now defined for all builds.  __PSISOFT32__ is still
+		defined for backward compatibility.
+	5)	New keyword, FIRSTOBJECT, which takes the base name of an object to
+		replace EEXE or EDLL as the first object to be linked.
+	6)	Removed change to link some functions in EKERN by name rather than by
+		ordinal.
+	7)	Fixed Epoc S/W problem 216 - "MAKMAKE's "clean" targets are noisy".
+		Clean targets are now silent (under Windows_NT, at least).
+	8)	Changed the directory which MAKMAKE searches for it's .PM modules to be the
+		first /^(\w:)?\\EPOC32\\TOOLS\\?$/io style directory found in the path
+		environment variable, rather than assuming \EPOC32\TOOLS\ unless
+		<drive>:\EPOC32\TOOLS exists in the path.  
+	9)	Added \E32TOOLP\E32UTIL\Checkgcc.pm, which checks that the first executable
+		version of CPP found in the system path is CPP.EXE and is found in a
+		/^(\w:)?\\EPOC32\\GCC\\BIN\\?$/io style directory.
+	10)	Removed SARMBE.PM, and big-endian hacks from CL_ARM.PM.
+
+BLDMAKE
+	1)	Fix to make sure WINC release directories are created before WINS
+		releaseables that WINC uses are copied across.
+	2)	Change to make sure VC5 batch files are created by bldmake all.
+	3)	OS environment variable is now checked, and output redirection to log
+		files is only attempted if the OS is set to Windows_NT so that bldmake-
+		generated batch files are Windows95 friendly.
+	4)	Warning put in batch files to the effect that bldmake has generated the
+		file and it shouldn't be edited.
+
+
+Version 0.01.096
+================
+(Made by Alastair, 26.10.98)
+
+MAKMAKE
+	1)	No longer carrying out the autouid keyword behaviour for targettypes LIB
+		and IMPLIB.
+	2)	Fixed bug whereby if an EXEDLL target is specified with a lower-
+		case .exe extension the extension wouldn't be changed to .dll for WINS
+		builds.
+
+Version 0.01.095
+================
+(Made by Alastair, 22.10.98)
+
+GENERAL
+	1)	Symbianised Perl source files.
+
+MAKMAKE
+	1)	Added code to handle forward slash file separator which is used in
+		filenames returned by function "cwd" from library Cwd.pm in perl
+		versions 5.005+.  Fixes Epoc S/W problem SW1-215.
+	2)	EXEDLL targets specified without an extension will have the correct extension
+		(.DLL or .EXE) added depending whether the makefile is for a single or
+		multi-process build.
+		Fixes Epoc Software Problem SW1-11.
+	3)	VC5 module now creates .DSW file to save a couple of clicks in the MSVC5
+		workspace.
+	4)	Removed 'D' basename suffix for debug deffiles, both those makmake
+		references as 'freeze' files and those it creates, under all platforms.
+		MARM debug and release builds should already be interoperable, this
+		change is designed to "encourage" the interoperability of WINS debug and
+		release builds, starting with E32.
+	5)	Added new keyword, UNICODEUID, to be used for the specification of
+		second and third unicode uids.  A warning will be generated and no
+		unicode targets provided in the makefile if a second ascii uid is
+		specified but a second unicode uid isn't.
+	6)	Made WINS AUTOUID keyword behaviour compulsory, so every WINS project
+		gets the UIDs it specifies in the .MMP compiled into WINS automatically.
+		This means that current users of the AUTOUID keyword will need to remove
+		it from their .MMP files to avoid a warning.  Those Luddites not
+		already using this keyword will have to remove the #pragma data_seg(".E32_UID")
+ 		section used to specify WINS uids from their code if their project is to link
+		correctly.
+	7)	Added new keyword, EPOCPROCESSPRIORITY, for the specification of process
+		priority for executables.  This keyword will be ignored under Win32
+		platforms.  Specify low,background,foreground,high,windowserver,fileserver,
+		realtimeserver or supervisor.  The value specified will be passed to
+		petran via its -priority switch.
+	8)	Fixed Epoc S/W problem 274 
+			"Problems with include paths containing spaces[MAKMAKE]".
+
+EVALID
+	1)	Added William Roberts' updated EVALID.CMD.  Fixes Epoc S/W problem 151 
+		'EVALID does not support "wins-exe"'.
+
+
+Version 0.01.094
+================
+(Made by Alastair, 22.10.98)
+
+BLDMAKE
+	1)	Batch files created by BLDMAKE are now more Windows95-friendly, but will
+		still fall over due to the 2> syntax in these files.
+	2)	Prepare.bat no longer creates any directories - there was never any need
+		to do this since MAKMAKE did it anyway.
+
+
+Version 0.01.093
+================
+(Made by Petteri, 14.07.98)
+
+MAKMAKE
+
+1)  Fixed SW1-62. (Unicode flags added for resource files in unicode builds.)
+
+2)  Fixed a problem related to capitalisation of filenames when analysing
+    dependencies. 
+
+EVALID
+
+1)  Integrated Andrew Tholke's validation tool. He writes:
+
+  The basic syntax is
+
+  EVALID type file1 file2
+
+  where type specifies the object type, and is one of:
+
+  text, binary
+  wins-dll, wins-lib
+  marm-dll, marm-exe, marm-lib, marm-map
+
+  and file1 and file2 are the two files to be compared, e.g.
+ 
+  evalid marm-dll edbms.dll \epoc32\release\marm\rel\edbms.dll
+
+  EVALID defaults to appending its output to the file .\evalid.lis. 
+  Prior to validating a component set, this file should be deleted. 
+  To force the output to the console, the "-c" switch should be specified before the type, e.g.
+
+  evalid -c wins-lib edbms.lib \epoc32\release\wins\deb\edbms.lib
+
+  To direct the output to a different logfile "-l <logfile>" should be used before the type, e.g.
+
+  evalid -l valid.log marm-map edbms.map \epoc32\release\marm\rel\edbms.map
+
+
+Version 0.01.092
+================
+(Made by Petteri, 10.06.98)
+
+MAKMAKE
+
+1)  Added a new module MAKSYS.PM which handles various base related exceptions
+    to MAKMAKE rules.
+
+2)  Changed OBJECT keyword to look for the files in the target directory rather 
+    than in the build directory.
+
+3)  For Win95 compatibility 'del file1 file2' commands are no longer used.
+
+4)  EXEDLL UIDs are now correct under WINS.
+
+5)  Extension .mmp can now be included in the MMP-file name when starting MAKMAKE.
+
+6)  Two new platform modules have been added. MAWD is for Windermere architecture
+    and MMAD is for MAD Linda.
+
+7)  Filenames in makefiles are no longer automatically turned upper case. Most of
+    the time the capitalisation used in MMP-files is preserved.
+
+8)  Added a new keyword EPOCHEAPSIZE. It can be used to set the minimum and
+    maximum size of the heap in ARM builds.
+
+9)  The following keywords have been moved out of the START MARM ... END block
+    and their names have been changed:
+      ALLOWDLLDATA       is now EPOCALLOWDLLDATA
+      CALLDLLENTRYPOINTS        EPOCCALLDLLENTRYPOINTS
+      DATALINKADDRESS           EPOCDATALINKADDRESS
+      STACKSIZE                 EPOCSTACKSIZE
+
+
+Version 0.01.091
+================
+(Made by Alastair, 18th February, 1998)
+
+This new component contains perl programs that were previously
+contained in component E32TOOLS.  Currently E32TOOLP contains
+MAKMAKE and BLDMAKE which will be removed from the next release
+of E32TOOLS.
+
+Changes from programs in E32TOOLS(090)
+
+MAKMAKE
+
+1)  Added -u flag for calls to rcomp in command-line unicode builds so that
+    the resource file is built with wide strings.
+
+2)  Added new START MARM .. END block keyword, CALLDLLENTRYPOINTS, which will
+    suppress the passing of flag -nocall to PETRAN.  This keyword takes
+    no parameters.
+
+3)  Added new LINKAS keyword. This keyword is platform-independent and replaces
+    the platform-specific START MARM .. END block keyword DLLNAME.  Use LINKAS
+    to specify the full name of the dll you are building if that name is to be
+    different from the name specified by the TARGET keyword for linking
+    purposes.  This keyword currently has no effect for Win32 platforms.  For
+    MARM platforms, the name specified will have the third uid for the executable
+    inserted before its extension and will then be passed to PETRAN as a parameter
+    for the -dllname flag.
+
+4)  For EXEDLL targettypes, if the name specified with the TARGET keyword has
+    the extension .EXE, this will be changed to .DLL within single-process
+    platform makefiles such as WINS makefiles.
+
+5)  For EXEDLL targettypes, extension changes will be applied to names specified
+    with the LINKAS keyword as they are for names specified with the TARGET keyword.
+    So, for single-process platforms (eg WINS), .EXE extensions will become .DLL, and
+    for multi-process platforms (eg MARM), the extension .EXE will be applied whatever
+    extension is specified for the name in the MMPFILE.
+  
+7)  Added new module, OUTPUT.PM, to enable MAKMAKE to wrap long lines neatly
+    within makefiles where appropriate.
+
+8)  Renamed E32TVER.PM E32TPVER.PM.
+
+9)  Changed header information on all files to
+    # Copyright (c) 1998 Psion Software plc
+    # All rights reserved
+
+
+BLDMAKE
+
+1)  Changed BLDMAKE's batch file so it doesn't produce the help for the 'CALL'
+    batch file command if invoked BLDMAKE /?.
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/group/setupprj.bat	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,514 @@
+@REM Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+@REM All rights reserved.
+@REM This component and the accompanying materials are made available
+@REM under the terms of the License "Eclipse Public License v1.0"
+@REM which accompanies this distribution, and is available
+@REM at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@REM
+@REM Initial Contributors:
+@REM Nokia Corporation - initial contribution.
+@REM 
+@REM Contributors:
+@REM
+@REM Description:
+@REM builds bld.bat files for subprojects within this component
+
+@if exist %0.bat perl -w -x %0.bat %1 %2 %3 %4 %5
+@if exist %0 perl -w -x %0 %1 %2 %3 %4 %5
+@GOTO End
+
+#!perl
+
+use strict;
+use Cwd;
+
+my $EPOCRoot;
+
+BEGIN {
+	$EPOCRoot = $ENV{EPOCROOT};
+	die "ERROR: Must set the EPOCROOT environment variable\n" if (!defined($EPOCRoot));
+	$EPOCRoot =~ s-/-\\-go;	# for those working with UNIX shells
+	die "ERROR: EPOCROOT must be an absolute path\n" if ($EPOCRoot !~ /^\\/);
+	die "ERROR: EPOCROOT must not be a UNC path\n" if ($EPOCRoot =~ /^\\\\/);
+	die "ERROR: EPOCROOT must end with a backslash\n" if ($EPOCRoot !~ /\\$/);
+	die "ERROR: EPOCROOT must specify an existing directory\n" if (!-d $EPOCRoot);
+}
+
+
+my $EPOCToolsPath="${EPOCRoot}epoc32\\tools";
+
+my $EPOCToolsConfigFilePath="${EPOCRoot}epoc32\\tools\\compilation_config";
+
+my $DocsPath="${EPOCRoot}epoc32\\EngDoc\\E32toolp";
+
+my $TemplateFilePath="${EPOCRoot}epoc32\\tools\\makefile_templates";
+
+my $ShellFilePath="${EPOCRoot}epoc32\\tools\\shell";
+
+my $BinFilePath="${EPOCRoot}epoc32\\tools";
+
+if (scalar @ARGV > 1) {
+	die "Too many arguments for setupprj.bat\n";
+}
+
+# only the secure platform is now supported, but keep the argument
+# checking as insurance against future developments.
+#
+my $secure = 1;
+if (scalar @ARGV == 1) {
+	my $option = $ARGV[0];
+	if ($option !~ /^secure$/i) {
+		die "Unknown option $ARGV[0] - did you mean \"secure\"?\n";
+	}
+}
+
+my $GroupDir=$0;  # $0 is this script
+$GroupDir=~s-^\w:(.*)$-$1-o;  # remove drive letter
+$GroupDir=~s-\/-\\-go;
+unless ($GroupDir=~m-^\\-o)
+	{
+	# $GroupDir is relative
+	my $Cwd=cwd();
+	$Cwd=~s-^\w:(.*)$-$1-o;  # remove drive letter
+	$Cwd=~s-\/-\\-go;
+	$Cwd=~s-^\\$--o;  # make sure we don't end in a backslash
+	$GroupDir="$Cwd\\$GroupDir";  # append relative group dir to absolute Cwd
+	}
+$GroupDir=~s-^(.*\\)[^\\]+$-$1-o; # remove filename, leaving just path
+# strip the resulting path of excess occurrences of . and ..
+while ($GroupDir=~s-\\\.\\-\\-go) { }
+while ($GroupDir=~s-\\(?!\.{2}\\)[^\\]*\\\.{2}(?=\\)--go) { }
+
+my $GroupToRoot=&UpToRoot($GroupDir);
+chop $GroupToRoot;
+
+my $GroupToToolsPath="$GroupToRoot$EPOCToolsPath";
+
+my $GroupToToolsConfigFilePath="$GroupToRoot$EPOCToolsConfigFilePath";
+
+my $GroupToDocsPath="$GroupToRoot$DocsPath";
+	
+my $GroupToTemplatePath="$GroupToRoot$TemplateFilePath";
+
+my $GroupToShellPath="$GroupToRoot$ShellFilePath";
+
+my $GroupToBinPath="$GroupToRoot$BinFilePath";
+
+$GroupDir=~s-\\$--o;	# remove trailing backslash
+chdir "$GroupDir" or die "Can't cd to $GroupDir: $!\n";
+
+my %Files=();
+
+# read the component
+opendir E32TOOLP, ".." or die "ERROR: Can't open dir ..\n";
+my $SubDir;
+foreach $SubDir (grep /^[^\.]/o, map lc $_, readdir E32TOOLP) {
+	if ($SubDir!~/^(group|docs|test|binutils|maksym)$/o) {
+		opendir SUBDIR, "..\\$SubDir" or die "ERROR: Can't open dir \"..\\$SubDir\"\n";
+		my @FileList = map lc $_, readdir SUBDIR;
+		foreach my $file (grep /^[^_\.].+\.(pm|pl|bat|cmd|config|bsf|xml|cwlink|txt)$/o, @FileList) {
+			$Files{$file} = "$SubDir\\$file";
+		}
+		if ($secure) {
+			# Look for additional files whose names start with _secure_
+			my @securefiles = grep /^_secure_.+\.(pm|pl|bat|cmd|config|bsf|xml|cwlink|txt)$/o, @FileList;
+			foreach my $file (@securefiles) {
+				my $dstfile = $file;
+				$dstfile =~ s/^_secure_//;
+				if (defined($Files{$dstfile})) {
+					print "$dstfile: $SubDir\\$file overrides $Files{$dstfile}\n";
+				}
+				$Files{$dstfile} = "$SubDir\\$file";
+			}
+		}
+	}
+}
+
+# read the compiler configuration files
+my @ConfigFiles;
+
+opendir CONFIGDIR, "..\\platform" or die "ERROR: Can't open dir \"..\\platform\"\n";
+@ConfigFiles = grep /\.(mk|make)/i, readdir CONFIGDIR;
+
+closedir CONFIGDIR;
+
+opendir SUBDIR, "..\\Docs" or die "ERROR: Can't open dir \"..\\Docs\"\n";
+my @Docs = map lc $_, readdir SUBDIR;
+@Docs = grep /^[^\.].+\.(rtf|doc|changes|txt|html|htm)$/o, @Docs;
+	
+closedir SUBDIR;	
+
+open TEMPLATEFILESUBDIR, "\"dir \/s \/b \/a-d ..\\..\\..\\toolsandutils\\buildsystem\\extension\" |";
+my @TemplateFiles=();
+my %TemplateDirs;
+while (<TEMPLATEFILESUBDIR>)
+	{
+	next if ($_ !~ /\.(mk|meta)$/i);	
+	$_ =~ s/^.*\\buildsystem\\extension\\//i;
+	chomp $_;
+	push @TemplateFiles, $_;
+	$_ =~ /^(.*\\)/o;
+	my $path = $1;
+	$path =~ s/\\$//;
+	$TemplateDirs{$path}=1;	
+	}
+close TEMPLATEFILESUBDIR;
+
+opendir SHELLFILESUBDIR, "..\\..\\..\\toolsandutils\\buildsystem\\shell" or die "ERROR: Can't open dir \"..\\buildsystem\\shell\"\n";
+my @ShellFiles = map lc $_, readdir SHELLFILESUBDIR;
+@ShellFiles = grep /^[^\.].+\.(mk)$/o, @ShellFiles;
+closedir SHELLFILESUBDIR;
+
+open BINFILESUBDIR, "\"dir \/s \/b \/a-d ..\\..\\..\\toolsandutils\\buildsystem\\bin\" |";
+my @BinFiles=();
+my %BinDirs;
+while (<BINFILESUBDIR>)
+    	{
+    	next if ($_ !~ /\.(exe|jar)$/i);	
+    	$_ =~ s/^.*\\buildsystem\\bin\\//i;
+    	chomp $_;
+    	push @BinFiles, $_;
+    	$_ =~ /^(.*\\)/o;
+    	my $path = $1;
+    	$path =~ s/\\$//;
+    	$BinDirs{$path}=1;	
+    	}
+close BINFILESUBDIR;
+
+my $PrintGroupDir=$GroupDir;
+$PrintGroupDir=~s-\\-\\\\-go;
+
+# Create BLD.BAT
+my $OutTxt='';
+&Output(
+	"\@echo off\n",
+	"\@goto invoke\n",
+	"\n",
+	"#!perl\n",
+	"unless (\@ARGV==1 && \$ARGV[0]=~/^(deb|rel|clean)\$/io) {\n",
+	"	die\n",
+	"		\"E32TOOLP's bld.bat - usage\\n\",\n",
+	"		\"BLD [param]\\n\",\n",
+	"		\"where\\n\",\n",
+	"		\"param = DEB or REL or CLEAN\\n\"\n",
+	"	;\n",
+	"}\n",
+	"my \$Param=lc \$ARGV[0];\n",
+	"chdir \"$PrintGroupDir\";\n",
+	"print \"..\\\\binutils\\\\make -s -f e32toolp.make \$Param\\n\";\n",
+	"open PIPE, \"..\\\\binutils\\\\make -s -f e32toolp.make \$Param |\" or die \"Can't invoke make: \$!\\n\";\n",
+	"while (<PIPE>) {}\n",
+	"close PIPE;\n",
+	"\n",
+	"__END__\n",
+	"\n",
+	":invoke\n",
+	"perl -x $GroupDir\\bld.bat %1 %2\n"
+);
+	
+my $BLDFILE='bld.bat';
+print "Creating File \"$BLDFILE\"\n";
+open BLDFILE,">$BLDFILE" or die "\nERROR: Can't open or create Batch file \"$BLDFILE\"\n";
+print BLDFILE "$OutTxt" or die "\nERROR: Can't write output to Batch file \"$BLDFILE\"\n";
+close BLDFILE or die "\nERROR: Can't close Batch file \"$BLDFILE\"\n";
+
+
+# Create the make file
+$OutTxt='';
+&Output(
+	"\n",
+	"ifeq (\$(OS),Windows_NT)\n",
+	"ERASE = \@erase 2>>nul\n",
+	"else\n",
+	"ERASE = \@erase\n",
+	"endif\n",
+	"\n",
+	"\n",
+	"$GroupToToolsPath :\n",
+	"\t\@perl -w ..\\genutil\\emkdir.pl $GroupToToolsPath\n", 
+	"\n",
+	"$GroupToTemplatePath :\n",
+	"\t\@perl -w ..\\genutil\\emkdir.pl $GroupToTemplatePath\n", 
+	"\n"
+);
+
+foreach (sort keys %TemplateDirs) {
+	&Output(
+	"$GroupToTemplatePath\\$_ :\n",
+	"\t\@perl -w ..\\genutil\\emkdir.pl $GroupToTemplatePath\\$_\n", 
+	"\n"
+	);
+}
+
+foreach (sort keys %BinDirs) {
+ 	&Output(
+ 	"$GroupToBinPath\\$_ :\n",
+ 	"\t\@perl -w ..\\genutil\\emkdir.pl $GroupToBinPath\\$_\n", 
+ 	"\n"
+ 	);
+}
+
+&Output(
+	"$GroupToShellPath :\n",
+	"\t\@perl -w ..\\genutil\\emkdir.pl $GroupToShellPath\n", 
+	"\n",
+	"$GroupToToolsConfigFilePath :\n",
+	"\t\@perl -w ..\\genutil\\emkdir.pl $GroupToToolsConfigFilePath\n", 
+	"\n",
+	"$GroupToDocsPath :\n",
+	"\t\@perl -w ..\\genutil\\emkdir.pl $GroupToDocsPath\n", 
+	"\n",
+	"\n",
+	"deb : $GroupToToolsPath $GroupToToolsConfigFilePath $GroupToDocsPath $GroupToTemplatePath $GroupToShellPath "
+);
+
+foreach (sort keys %TemplateDirs) {
+	&Output(
+	"$GroupToTemplatePath\\$_ "
+	);
+}
+
+foreach (sort keys %BinDirs) {
+ 	&Output(
+ 	"$GroupToBinPath\\$_ "
+ 	);
+}
+
+&Output("\n");
+
+my $File;
+foreach $File (keys %Files) {
+	&Output(
+		"\tcopy \"..\\$Files{$File}\" \"$GroupToToolsPath\\$File\" >nul\n"
+	);
+}
+
+my $ConfigFile;
+foreach $ConfigFile (@ConfigFiles) {
+	&Output(
+		"\tcopy \"..\\platform\\$ConfigFile\" \"$GroupToToolsConfigFilePath\\$ConfigFile\" >nul\n"
+	);
+}
+
+foreach $File (@Docs) {
+	&Output(
+			"\tcopy \"..\\Docs\\$File\" \"$GroupToDocsPath\\$File\" >nul\n"
+	);
+}
+
+my $tfile;
+foreach $tfile (@TemplateFiles) {
+	&Output(
+			"\tcopy \"..\\..\\..\\toolsandutils\\buildsystem\\extension\\$tfile\" \"$GroupToTemplatePath\\$tfile\" >nul\n"
+	);
+}
+
+my $bfile;
+foreach $bfile (@BinFiles) {
+ 	&Output(
+ 			"\tcopy \"..\\..\\..\\toolsandutils\\buildsystem\\bin\\$bfile\" \"$GroupToBinPath\\$bfile\" >nul\n"
+ 	);
+}
+
+my $sfile;
+foreach $sfile (@ShellFiles) {
+	&Output(
+			"\tcopy \"..\\..\\..\\toolsandutils\\buildsystem\\shell\\$sfile\" \"$GroupToShellPath\\$sfile\" >nul\n"
+	);
+}
+
+&Output(
+	"\n",
+	"\n",
+	"rel : $GroupToToolsPath $GroupToToolsConfigFilePath $GroupToDocsPath $GroupToTemplatePath $GroupToShellPath "
+);
+
+foreach (sort keys %TemplateDirs) {
+	&Output(
+	"$GroupToTemplatePath\\$_ "
+	);
+}
+
+foreach (sort keys %BinDirs) {
+ 	&Output(
+ 	"$GroupToBinPath\\$_ "
+ 	);
+}
+
+&Output("\n");
+
+	
+foreach $File (keys %Files) {
+	&Output(
+		"\t.\\perlprep.bat \"..\\$Files{$File}\" \"$GroupToToolsPath\\$File\"\n"
+	);
+}
+
+foreach $ConfigFile (@ConfigFiles) {
+	&Output(
+		"\tcopy \"..\\platform\\$ConfigFile\" \"$GroupToToolsConfigFilePath\\$ConfigFile\" >nul\n"
+	);
+}
+
+foreach $File (@Docs) {
+	&Output(
+			"\tcopy \"..\\Docs\\$File\" \"$GroupToDocsPath\\$File\" >nul\n"
+	);
+}
+
+foreach $tfile (@TemplateFiles) {
+	&Output(
+			"\tcopy \"..\\..\\..\\toolsandutils\\buildsystem\\extension\\$tfile\" \"$GroupToTemplatePath\\$tfile\" >nul\n"
+	);
+}
+foreach $bfile (@BinFiles) {
+ 	&Output(
+ 			"\tcopy \"..\\..\\..\\toolsandutils\\buildsystem\\bin\\$bfile\" \"$GroupToBinPath\\$bfile\" >nul\n"
+ 	);
+}
+foreach $sfile (@ShellFiles) {
+	&Output(
+			"\tcopy \"..\\..\\..\\toolsandutils\\buildsystem\\shell\\$sfile\" \"$GroupToShellPath\\$sfile\" >nul\n"
+	);
+}
+&Output(
+	"\n",
+	"rel deb : $GroupToToolsPath\\make.exe\n",
+	"$GroupToToolsPath\\make.exe: ..\\binutils\\make.exe\n",
+	"\tcopy \$\? \$\@\n"
+);
+
+&Output(
+	"\n",
+	"rel deb : $GroupToToolsPath\\scpp.exe\n",
+	"$GroupToToolsPath\\scpp.exe: ..\\binutils\\scpp.exe\n",
+	"\tcopy \$\? \$\@\n"
+);
+
+
+&Output(
+	"\n",
+	"clean :\n"
+);
+foreach $File (keys %Files) {
+	&Output(
+		"\t-\$(ERASE) \"$GroupToToolsPath\\$File\"\n"
+	);
+}
+foreach $ConfigFile (@ConfigFiles) {
+	&Output(
+		"\t-\$(ERASE) \"$GroupToToolsConfigFilePath\\$ConfigFile\"\n"
+	);
+}
+foreach $File (@Docs) {
+	&Output(
+			"\t-\$(ERASE) \"$GroupToDocsPath\\$File\"\n"
+	);
+}
+foreach $tfile (@TemplateFiles) {
+	&Output(
+			"\t-\$(ERASE) \"$GroupToTemplatePath\\$tfile\"\n"
+	);
+}
+foreach $bfile (@BinFiles) {
+ 	&Output(
+ 			"\t-\$(ERASE) \"$GroupToBinPath\\$bfile\"\n"
+ 	);
+}
+foreach $sfile (@ShellFiles) {
+	&Output(
+			"\t-\$(ERASE) \"$GroupToShellPath\\$sfile\"\n"
+	);
+}
+
+my $MAKEFILE="e32toolp.make";
+print "Creating File \"$MAKEFILE\"\n";
+open MAKEFILE,">$MAKEFILE" or die "\nERROR: Can't open or create Batch file \"$MAKEFILE\"\n";
+print MAKEFILE "$OutTxt" or die "\nERROR: Can't write output to Batch file \"$MAKEFILE\"\n";
+close MAKEFILE or die "\nERROR: Can't close Batch file \"$MAKEFILE\"\n";
+
+
+
+# this code autocreates the .rel file
+
+my @ToolsDst = ("make.exe", "scpp.exe");
+my @DocsDst = @Docs;
+my @ConfigFilesDst = @ConfigFiles;
+my @TemplateFilesDst = @TemplateFiles;
+my @BinFilesDst = @BinFiles;
+my @ShellFilesDst = @ShellFiles;
+
+push @ToolsDst, keys %Files;
+
+# TOOLS.REL file 
+
+my $RELFILE="tools.rel";
+print "Creating File \"$RELFILE\"\n";
+open RELFILE,">$RELFILE" or die "\nERROR: Can't open or create Rel file \"$RELFILE\"\n";
+print RELFILE "${EPOCRoot}epoc32\\tools\\";
+print RELFILE join("\n${EPOCRoot}epoc32\\tools\\", sort @ToolsDst);
+print RELFILE join("\n${EPOCRoot}epoc32\\tools\\compilation_config\\","", sort @ConfigFilesDst);
+print RELFILE join("\n${EPOCRoot}epoc32\\EngDoc\\E32toolp\\","", sort @DocsDst);
+close RELFILE or die "\nERROR: Can't close Rel file \"$RELFILE\"\n";
+
+# Check MRP file - the modern equivalent of tools.rel
+
+my $NewMRPText = "component tools_e32toolp\n";
+$NewMRPText .= "# This file is generated by setupprj.bat\n\n";
+$NewMRPText .= "ipr T\n";
+$NewMRPText .= "ipr O  \\sf\\os\\buildtools\\sbsv1_os\\e32toolp\\binutils\n\n";
+$NewMRPText .= "source \\sf\\os\\buildtools\\sbsv1_os\\e32toolp\n";
+$NewMRPText .= "source \\sf\\os\\buildtools\\toolsandutils\\buildsystem\n";
+$NewMRPText .= join("\nbinary \\epoc32\\tools\\", "",sort @ToolsDst);
+# Don't include EngDoc files in the MRP file
+$NewMRPText .= join("\nbinary \\epoc32\\tools\\compilation_config\\","", sort @ConfigFilesDst);
+$NewMRPText .= join("\nbinary \\epoc32\\tools\\makefile_templates\\","", sort @TemplateFilesDst);
+$NewMRPText .= join("\nbinary \\epoc32\\tools\\","", sort @BinFilesDst);
+$NewMRPText .= join("\nbinary \\epoc32\\tools\\shell\\","", sort @ShellFilesDst);
+$NewMRPText .= "\n\n";
+$NewMRPText .= "notes_source \\component_defs\\release.src\n";
+
+my $MRPFILE="tools_e32toolp.mrp";
+open MRPFILE,"<$MRPFILE" or die "\nERROR: Can't read MRP file \"$MRPFILE\"\n";
+my $OldMRPText = "";
+sysread MRPFILE, $OldMRPText, 100000;	# assumes MRP file is less than 100,000 bytes
+close MRPFILE or die "\nERROR: Can't close MRP file \"$MRPFILE\"\n";
+
+if ($OldMRPText ne $NewMRPText) {
+	print "REMARK: MRP file \"$MRPFILE\" differs from setupprj.bat generated content\n";
+	print "Creating suggested new MRP file \"$MRPFILE.new\"\n";
+	open MRPFILE,">$MRPFILE.new" or die "\nERROR: Can't open or create MRP file \"$MRPFILE.new\"\n";
+	print MRPFILE $NewMRPText;
+	close MRPFILE or die "\nERROR: Can't close MRP file \"$MRPFILE.new\"\n";
+}
+
+
+# SUBROUTINE SECTION
+####################
+sub Output (@) {
+	my $Txt;
+	foreach $Txt (@_) {
+		$OutTxt.=$Txt;
+	}
+}
+
+sub UpToRoot ($) {	#args: $_[0] Abs FilePath/Path
+# return the path that will lead from the directory the path passed into the function
+# specifies back up to the root directory
+	return undef unless $_[0]=~m-^\\-o;
+	my $Path=$_[0];
+	my $UpP;
+	while ($Path=~m-\\-go)
+		{
+		$UpP.="..\\";
+		}
+	undef $Path;
+	$UpP=~s-^(.*)\.\.\\-$1-o;
+	$UpP=".\\" unless $UpP;
+}
+
+
+
+__END__
+
+:End
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/group/setver.bat	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,78 @@
+@rem
+@rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+@rem All rights reserved.
+@rem This component and the accompanying materials are made available
+@rem under the terms of "Eclipse Public License v1.0"
+@rem which accompanies this distribution, and is available
+@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem
+@rem Initial Contributors:
+@rem Nokia Corporation - initial contribution.
+@rem
+@rem Contributors:
+@rem
+@rem Description:
+@rem
+@echo off
+
+goto Invoke
+
+#!perl
+
+#
+# use to set the version in relevant e32toolp files.
+#
+# Add new files requiring this service to the @InputFiles list below.
+#
+# Each file must contain the text to be changed in the form
+# 'version=xxx', where xxx is a 3 digit number.
+#
+
+use strict;
+
+my @InputFiles=qw(
+	\E32TOOLP\E32UTIL\E32TPVER.PM
+);
+	
+die "Usage:\nSETVER [version]\n" unless $#ARGV==0;
+
+my $Version=shift @ARGV;
+
+die "Unexpected version format\n" unless $Version=~/\d{3}/o;
+
+my $FILE;
+foreach $FILE (@InputFiles) {
+	open FILE, $FILE or die "Can't open \"$FILE\": $!\n";
+	my $FileText='';
+	my $Unchanged=1;
+	while (<FILE>) {
+		if ($Unchanged) {
+			$Unchanged=0 if s/^(.*version=)\d{3}([^\d]*.*)$/$1$Version$2/io;
+		}
+		$FileText.=$_;
+	}
+	open FILE,">$FILE" or die "Can't open \"$FILE\": $!\n";
+	print FILE $FileText;
+	close FILE or die "Can't close \"$FILE\": $!\n";
+}
+
+__END__
+
+:Invoke
+@rem command.com is rubbish and does not understand "%*"
+@shift
+@perl -x \E32TOOLP\GROUP\SETVER.BAT %0 %1 %2 %3 %4 %5 %6 %7 %8 %9
+
+
+
+
+
+
+
+
+
+
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/group/tools_e32toolp.mrp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,278 @@
+component tools_e32toolp
+# This file is generated by setupprj.bat
+
+ipr T
+ipr O  \sf\os\buildtools\sbsv1_os\e32toolp\binutils
+
+source \sf\os\buildtools\sbsv1_os\e32toolp
+source \sf\os\buildtools\toolsandutils\buildsystem
+
+binary \epoc32\tools\abld.pl
+binary \epoc32\tools\armasm2as.pl
+binary \epoc32\tools\armutl.pm
+binary \epoc32\tools\armv5smp.bsf
+binary \epoc32\tools\armv6.bsf
+binary \epoc32\tools\armv6_abiv1.bsf
+binary \epoc32\tools\armv6smp.bsf
+binary \epoc32\tools\armv6t2.bsf
+binary \epoc32\tools\armv7.bsf
+binary \epoc32\tools\bldmake.bat
+binary \epoc32\tools\bldmake.pl
+binary \epoc32\tools\bpabiutl.pm
+binary \epoc32\tools\checkgcc.pm
+binary \epoc32\tools\checksource.pl
+binary \epoc32\tools\checksource.pm
+binary \epoc32\tools\cl_arm.pm
+binary \epoc32\tools\cl_bpabi.pm
+binary \epoc32\tools\cl_codewarrior.pm
+binary \epoc32\tools\cl_edg.pm
+binary \epoc32\tools\cl_gcc.pm
+binary \epoc32\tools\cl_gccxml.pm
+binary \epoc32\tools\cl_generic.pm
+binary \epoc32\tools\cl_mingw.pm
+binary \epoc32\tools\cl_tools.pm
+binary \epoc32\tools\cl_vscw.pm
+binary \epoc32\tools\cl_win.pm
+binary \epoc32\tools\cl_x86.pm
+binary \epoc32\tools\cl_x86gcc.pm
+binary \epoc32\tools\conv_khronos_hdr_to_cpp.pl
+binary \epoc32\tools\conv_khronos_openvg_hdr_to_cpp.pl
+binary \epoc32\tools\copyfeaturevariants.pl
+binary \epoc32\tools\createrfifile.pl
+binary \epoc32\tools\cw_link_descriptor_template.cwlink
+binary \epoc32\tools\cw_link_descriptor_template_v2.cwlink
+binary \epoc32\tools\cw_project_template_v3.xml
+binary \epoc32\tools\cw_project_template_v4.xml
+binary \epoc32\tools\default_plats.txt
+binary \epoc32\tools\default_plats_v2.txt
+binary \epoc32\tools\defutl.pm
+binary \epoc32\tools\deletefeaturevariants.pl
+binary \epoc32\tools\e32env.pm
+binary \epoc32\tools\e32plat.pm
+binary \epoc32\tools\e32tpver.pm
+binary \epoc32\tools\e32variant.pm
+binary \epoc32\tools\ecopyfile.pl
+binary \epoc32\tools\efreeze.bat
+binary \epoc32\tools\efreeze.pl
+binary \epoc32\tools\emkdir.pl
+binary \epoc32\tools\epocaif.pl
+binary \epoc32\tools\epocmbm.pl
+binary \epoc32\tools\epocrc.bat
+binary \epoc32\tools\epocrc.pl
+binary \epoc32\tools\ermdir.pl
+binary \epoc32\tools\err_formatter.pl
+binary \epoc32\tools\fcloggerutl.pm
+binary \epoc32\tools\featurevariantmap.pm
+binary \epoc32\tools\featurevariantparser.pm
+binary \epoc32\tools\filenamepolicyexclusions.txt
+binary \epoc32\tools\findimp.pl
+binary \epoc32\tools\fixsource.bat
+binary \epoc32\tools\gcce_plat2set.pm
+binary \epoc32\tools\gccev6.bsf
+binary \epoc32\tools\gccev6t2.bsf
+binary \epoc32\tools\gccev7.bsf
+binary \epoc32\tools\gendef.pl
+binary \epoc32\tools\genshimsrc.bat
+binary \epoc32\tools\genutl.pm
+binary \epoc32\tools\h2inc.pl
+binary \epoc32\tools\ide_cw.pm
+binary \epoc32\tools\ide_vc6.pm
+binary \epoc32\tools\linkdeps.pl
+binary \epoc32\tools\listfeaturevariants.pl
+binary \epoc32\tools\listzip.pl
+binary \epoc32\tools\lockit_info.pm
+binary \epoc32\tools\makdeps.pm
+binary \epoc32\tools\make.exe
+binary \epoc32\tools\makedef.pl
+binary \epoc32\tools\makhelp.pm
+binary \epoc32\tools\makmake.bat
+binary \epoc32\tools\makmake.pl
+binary \epoc32\tools\memtrace.bat
+binary \epoc32\tools\memtrace.pl
+binary \epoc32\tools\metabld.bat
+binary \epoc32\tools\metabld.pl
+binary \epoc32\tools\mmp.pm
+binary \epoc32\tools\modload.pm
+binary \epoc32\tools\omapsig.pl
+binary \epoc32\tools\output.pm
+binary \epoc32\tools\pathutl.pm
+binary \epoc32\tools\prepdef.pl
+binary \epoc32\tools\prepfile.pm
+binary \epoc32\tools\preprocessor.pm
+binary \epoc32\tools\rvct_plat2set.pm
+binary \epoc32\tools\rvct_ver2set.pm
+binary \epoc32\tools\scpp.exe
+binary \epoc32\tools\selectbootmak.pl
+binary \epoc32\tools\set-rvct.bat
+binary \epoc32\tools\sym_lkup_util.pl
+binary \epoc32\tools\trgtype.pm
+binary \epoc32\tools\winutl.pm
+binary \epoc32\tools\wrappermakefile.pm
+binary \epoc32\tools\compilation_config\ARMV5.mk
+binary \epoc32\tools\compilation_config\GCCE.mk
+binary \epoc32\tools\compilation_config\extractvars.make
+binary \epoc32\tools\makefile_templates\app-services\buildstubsis.meta
+binary \epoc32\tools\makefile_templates\app-services\buildstubsis.mk
+binary \epoc32\tools\makefile_templates\app-services\buildupgradesis.meta
+binary \epoc32\tools\makefile_templates\app-services\buildupgradesis.mk
+binary \epoc32\tools\makefile_templates\app-services\tzlocaltestserver.meta
+binary \epoc32\tools\makefile_templates\app-services\tzlocaltestserver.mk
+binary \epoc32\tools\makefile_templates\app-services\wlddatabasekit_sec.meta
+binary \epoc32\tools\makefile_templates\app-services\wlddatabasekit_sec.mk
+binary \epoc32\tools\makefile_templates\application-protocols\buildstubsis.meta
+binary \epoc32\tools\makefile_templates\application-protocols\buildstubsis.mk
+binary \epoc32\tools\makefile_templates\base\bootstrap.meta
+binary \epoc32\tools\makefile_templates\base\bootstrap.mk
+binary \epoc32\tools\makefile_templates\base\config.meta
+binary \epoc32\tools\makefile_templates\base\config.mk
+binary \epoc32\tools\makefile_templates\base\copy_default.meta
+binary \epoc32\tools\makefile_templates\base\copy_default.mk
+binary \epoc32\tools\makefile_templates\base\genexec.meta
+binary \epoc32\tools\makefile_templates\base\genexec.mk
+binary \epoc32\tools\makefile_templates\base\base_rvct_common.mk
+binary \epoc32\tools\makefile_templates\base\h2_genbootinc.meta
+binary \epoc32\tools\makefile_templates\base\h2_genbootinc.mk
+binary \epoc32\tools\makefile_templates\base\h2_restricted_coreldr.meta
+binary \epoc32\tools\makefile_templates\base\h2_restricted_coreldr.mk
+binary \epoc32\tools\makefile_templates\base\h4_genbootinc.meta
+binary \epoc32\tools\makefile_templates\base\h4_genbootinc.mk
+binary \epoc32\tools\makefile_templates\base\h4_restricted_coreldr.meta
+binary \epoc32\tools\makefile_templates\base\h4_restricted_coreldr.mk
+binary \epoc32\tools\makefile_templates\base\h4_restricted_on_coreldr.meta
+binary \epoc32\tools\makefile_templates\base\h4_restricted_on_coreldr.mk
+binary \epoc32\tools\makefile_templates\base\h4_restricted_on_miniboot.meta
+binary \epoc32\tools\makefile_templates\base\h4_restricted_on_miniboot.mk
+binary \epoc32\tools\makefile_templates\base\integrator_lmnand2_coreldr.meta
+binary \epoc32\tools\makefile_templates\base\integrator_lmnand2_coreldr.mk
+binary \epoc32\tools\makefile_templates\base\integrator_lmnand2_miniboot.meta
+binary \epoc32\tools\makefile_templates\base\integrator_lmnand2_miniboot.mk
+binary \epoc32\tools\makefile_templates\base\lab_restricted_miniboot.meta
+binary \epoc32\tools\makefile_templates\base\lab_restricted_miniboot.mk
+binary \epoc32\tools\makefile_templates\base\lab_restricted_miniboot.xml
+binary \epoc32\tools\makefile_templates\base\lab_restricted_miniboot.flm
+binary \epoc32\tools\makefile_templates\base\lubbock_coreldr.meta
+binary \epoc32\tools\makefile_templates\base\lubbock_coreldr.mk
+binary \epoc32\tools\makefile_templates\base\lubbock_miniboot.meta
+binary \epoc32\tools\makefile_templates\base\lubbock_miniboot.mk
+binary \epoc32\tools\makefile_templates\base\nand_fbr_offset.meta
+binary \epoc32\tools\makefile_templates\base\nand_fbr_offset.mk
+binary \epoc32\tools\makefile_templates\base\ne1_tb_genbootinc.meta
+binary \epoc32\tools\makefile_templates\base\ne1_tb_genbootinc.mk
+binary \epoc32\tools\makefile_templates\base\ne1_tb_restricted_coreldr.meta
+binary \epoc32\tools\makefile_templates\base\ne1_tb_restricted_coreldr.mk
+binary \epoc32\tools\makefile_templates\base\ne1_tb_restricted_coreldr.xml
+binary \epoc32\tools\makefile_templates\base\ne1_tb_restricted_coreldr.flm
+binary \epoc32\tools\makefile_templates\base\omap3_genbootinc.meta
+binary \epoc32\tools\makefile_templates\base\omap3_genbootinc.mk
+binary \epoc32\tools\makefile_templates\base\omap3_restricted_coreldr.meta
+binary \epoc32\tools\makefile_templates\base\omap3_restricted_coreldr.mk
+binary \epoc32\tools\makefile_templates\base\omap3_restricted_coreldr.xml
+binary \epoc32\tools\makefile_templates\base\omap3_restricted_coreldr.flm
+binary \epoc32\tools\makefile_templates\converged-comms\createcommdbs.meta
+binary \epoc32\tools\makefile_templates\converged-comms\createcommdbs.mk
+binary \epoc32\tools\makefile_templates\converged-comms\installdefaultcommdb.meta
+binary \epoc32\tools\makefile_templates\converged-comms\installdefaultcommdb.mk
+binary \epoc32\tools\makefile_templates\graphics\gen_khronos_cpp_from_hdr.meta
+binary \epoc32\tools\makefile_templates\graphics\gen_khronos_cpp_from_hdr.mk
+binary \epoc32\tools\makefile_templates\graphics\gen_khronos_openvg_cpp_from_hdr.meta
+binary \epoc32\tools\makefile_templates\graphics\gen_khronos_openvg_cpp_from_hdr.mk
+binary \epoc32\tools\makefile_templates\graphics\genpdrs.meta
+binary \epoc32\tools\makefile_templates\graphics\genpdrs.mk
+binary \epoc32\tools\makefile_templates\security\upsserver.meta
+binary \epoc32\tools\makefile_templates\security\upsserver.mk
+binary \epoc32\tools\makefile_templates\syslibs\conversiontable.meta
+binary \epoc32\tools\makefile_templates\syslibs\conversiontable.mk
+binary \epoc32\tools\makefile_templates\syslibs\fm_copyfile_to_winscw_zdrive.meta
+binary \epoc32\tools\makefile_templates\syslibs\fm_copyfile_to_winscw_zdrive.mk
+binary \epoc32\tools\makefile_templates\syslibs\generate_cpp.meta
+binary \epoc32\tools\makefile_templates\syslibs\generate_cpp.mk
+binary \epoc32\tools\makefile_templates\syslibs\generate_snm.meta
+binary \epoc32\tools\makefile_templates\syslibs\generate_snm.mk
+binary \epoc32\tools\makefile_templates\syslibs\test\bafl_copytestfiles.meta
+binary \epoc32\tools\makefile_templates\syslibs\test\bafl_copytestfiles.mk
+binary \epoc32\tools\makefile_templates\syslibs\test\bafl_resource_files.meta
+binary \epoc32\tools\makefile_templates\syslibs\test\bafl_resource_files.mk
+binary \epoc32\tools\makefile_templates\syslibs\test\centrep_copydatfile.meta
+binary \epoc32\tools\makefile_templates\syslibs\test\centrep_copydatfile.mk
+binary \epoc32\tools\makefile_templates\syslibs\test\centrep_copyincentrepsrv.meta
+binary \epoc32\tools\makefile_templates\syslibs\test\centrep_copyincentrepsrv.mk
+binary \epoc32\tools\makefile_templates\syslibs\test\centrep_copypctestfile.meta
+binary \epoc32\tools\makefile_templates\syslibs\test\centrep_copypctestfile.mk
+binary \epoc32\tools\makefile_templates\syslibs\test\centrep_copypctestfilev2.meta
+binary \epoc32\tools\makefile_templates\syslibs\test\centrep_copypctestfilev2.mk
+binary \epoc32\tools\makefile_templates\syslibs\test\charconv_testpostbuild.meta
+binary \epoc32\tools\makefile_templates\syslibs\test\charconv_testpostbuild.mk
+binary \epoc32\tools\makefile_templates\syslibs\test\charconv_tiso8859x_generate_cpp.meta
+binary \epoc32\tools\makefile_templates\syslibs\test\charconv_tiso8859x_generate_cpp.mk
+binary \epoc32\tools\makefile_templates\syslibs\test\charconv_tsnmdata.meta
+binary \epoc32\tools\makefile_templates\syslibs\test\charconv_tsnmdata.mk
+binary \epoc32\tools\makefile_templates\syslibs\test\dbms_copytestdbscfiles.meta
+binary \epoc32\tools\makefile_templates\syslibs\test\dbms_copytestdbscfiles.mk
+binary \epoc32\tools\makefile_templates\syslibs\test\ecom3_buildsis.meta
+binary \epoc32\tools\makefile_templates\syslibs\test\ecom3_buildsis.mk
+binary \epoc32\tools\makefile_templates\syslibs\test\ecom3_postbuild.meta
+binary \epoc32\tools\makefile_templates\syslibs\test\ecom3_postbuild.mk
+binary \epoc32\tools\makefile_templates\syslibs\test\ecom3_relocatetarget.meta
+binary \epoc32\tools\makefile_templates\syslibs\test\ecom3_relocatetarget.mk
+binary \epoc32\tools\makefile_templates\syslibs\test\featmgr_moveplugin.meta
+binary \epoc32\tools\makefile_templates\syslibs\test\featmgr_moveplugin.mk
+binary \epoc32\tools\makefile_templates\syslibs\test\logeng_copytestfiles.meta
+binary \epoc32\tools\makefile_templates\syslibs\test\logeng_copytestfiles.mk
+binary \epoc32\tools\makefile_templates\syslibs\test\sql_copyperfsqltestfiles.meta
+binary \epoc32\tools\makefile_templates\syslibs\test\sql_copyperfsqltestfiles.mk
+binary \epoc32\tools\makefile_templates\syslibs\test\sql_copysqltestfiles.meta
+binary \epoc32\tools\makefile_templates\syslibs\test\sql_copysqltestfiles.mk
+binary \epoc32\tools\makefile_templates\syslibs\test\sqlite3_copysqlite3testfiles.meta
+binary \epoc32\tools\makefile_templates\syslibs\test\sqlite3_copysqlite3testfiles.mk
+binary \epoc32\tools\makefile_templates\syslibs\test\sqlite3_securecopytestfiles.meta
+binary \epoc32\tools\makefile_templates\syslibs\test\sqlite3_securecopytestfiles.mk
+binary \epoc32\tools\makefile_templates\syslibs\test\xml_sitestfiledist.meta
+binary \epoc32\tools\makefile_templates\syslibs\test\xml_sitestfiledist.mk
+binary \epoc32\tools\makefile_templates\syslibs\test\xml_stringdictionary00tagtable.meta
+binary \epoc32\tools\makefile_templates\syslibs\test\xml_stringdictionary00tagtable.mk
+binary \epoc32\tools\makefile_templates\syslibs\test\xml_syncmltestfiledist.meta
+binary \epoc32\tools\makefile_templates\syslibs\test\xml_syncmltestfiledist.mk
+binary \epoc32\tools\makefile_templates\syslibs\test\xml_wmltestfiledist.meta
+binary \epoc32\tools\makefile_templates\syslibs\test\xml_wmltestfiledist.mk
+binary \epoc32\tools\makefile_templates\syslibs\test\xml_xmlcmatchdatapostbuild.meta
+binary \epoc32\tools\makefile_templates\syslibs\test\xml_xmlcmatchdatapostbuild.mk
+binary \epoc32\tools\makefile_templates\syslibs\word_template.meta
+binary \epoc32\tools\makefile_templates\syslibs\word_template.mk
+binary \epoc32\tools\makefile_templates\techview\uiklaf_resource.meta
+binary \epoc32\tools\makefile_templates\techview\uiklaf_resource.mk
+binary \epoc32\tools\makefile_templates\tools\ant_launch.meta
+binary \epoc32\tools\makefile_templates\tools\ant_launch.mk
+binary \epoc32\tools\makefile_templates\tools\bldex.meta
+binary \epoc32\tools\makefile_templates\tools\bldex.mk
+binary \epoc32\tools\makefile_templates\tools\compsupp.meta
+binary \epoc32\tools\makefile_templates\tools\compsupp.mk
+binary \epoc32\tools\makefile_templates\tools\features.meta
+binary \epoc32\tools\makefile_templates\tools\features.mk
+binary \epoc32\tools\makefile_templates\tools\jni_ant_launch.meta
+binary \epoc32\tools\makefile_templates\tools\jni_ant_launch.mk
+binary \epoc32\tools\makefile_templates\tools\kif.meta
+binary \epoc32\tools\makefile_templates\tools\kif.mk
+binary \epoc32\tools\makefile_templates\tools\py2exe.meta
+binary \epoc32\tools\makefile_templates\tools\py2exe.mk
+binary \epoc32\tools\makefile_templates\tools\raptor_linux_dist.meta
+binary \epoc32\tools\makefile_templates\tools\raptor_linux_dist.mk
+binary \epoc32\tools\makefile_templates\tools\stlport.meta
+binary \epoc32\tools\makefile_templates\tools\stlport.mk
+binary \epoc32\tools\makefile_templates\tools\x86tool.meta
+binary \epoc32\tools\makefile_templates\tools\x86tool.mk
+binary \epoc32\tools\makefile_templates\tools\ant_launch.flm
+binary \epoc32\tools\makefile_templates\tools\ant_launch.xml
+binary \epoc32\tools\java\symbianant.jar
+binary \epoc32\tools\shell\cmd.mk
+binary \epoc32\tools\shell\generic.mk
+binary \epoc32\tools\shell\sh.mk
+
+binary \epoc32\include\assp\naviengine\flexible\naviengine.inc
+binary \epoc32\include\assp\naviengine\multiple\naviengine.inc
+binary \epoc32\include\omap_hrp\assp\omap24xx\omap24xxconst.inc
+binary \epoc32\include\omap_hrp\h4\nand_fbr_offset.inc
+binary \epoc32\include\tiomap3\assp\common\customrestartreasons.inc
+binary \epoc32\include\tiomap3\variant\common\nand_fbr_offset.inc
+binary \epoc32\include\wins\nand\nand_fbr_offset.inc
+
+notes_source \component_defs\release.src
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/kif/group/bld.inf	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,30 @@
+// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+PRJ_PLATFORMS
+
+TOOLS2
+
+PRJ_EXPORTS
+../perl/genkif.pl	/epoc32/tools/genkif.pl
+kif1.xsd	/epoc32/data/kif1.xsd
+
+PRJ_MMPFILES
+
+PRJ_EXTENSIONS
+
+start   extension   tools/kif
+
+end
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/kif/group/kif1.xsd	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). All Rights Reserved. 
+-->
+<xsd:schema
+  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+  xmlns:ki="http://www.symbian.com/kif1"
+  targetNamespace="http://www.symbian.com/kif1">
+	<xsd:element name="kitinfo">
+		<xsd:complexType>
+			<!-- Note I'd like to have used xsd:all here but it's not allowed to contain xsd:any -->
+			<xsd:sequence>
+				<xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
+				<xsd:element ref="ki:release"/>
+				<xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
+			</xsd:sequence>
+			<xsd:attribute name="label" type="xsd:string" use="required"/>	
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:element name="release">
+		<xsd:complexType>
+			<xsd:attribute name="version" type="xsd:string" use="required"/>
+			<xsd:attribute name="build" type="xsd:string" use="required"/>
+		</xsd:complexType>
+	</xsd:element>
+</xsd:schema>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/kif/perl/genkif.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,84 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+use XML::Simple;
+use File::Path;
+use File::Copy;
+use Win32::File;
+use Getopt::Long;
+use strict;
+
+my $outfile;
+my $verbose;
+GetOptions("o=s", \$outfile, "v+", \$verbose);
+
+if (!defined $outfile) {
+	die "ERROR: Syntax: genkif.pl -o <kif filename>\n";
+} elsif (-f $outfile) {
+	print STDOUT "REMARK: KIF generation skipped due to it already existing (in '$outfile').\n";
+	exit 0;
+} elsif (-e $outfile) {
+	die "ERROR: KIF output file '$outfile' must not be a directory or other non-file type\n";
+} elsif ($verbose) {
+	print "Got output file of '$outfile'\n";
+}
+
+my $buildnum = $ENV{'BuildNumber'};
+if (!defined $buildnum) {
+	die "ERROR: KIF generation skipped due to the BuildNumber environment variable not being set.\n";
+} elsif ($verbose) {
+	print "Got build number of '$buildnum'\n";
+}
+
+my $namespace = "ki";
+my $nsuri = "http://www.symbian.com/kif1";
+my $schema = "kif1.xsd";
+
+my $build;
+my $version;
+if ($buildnum =~ /^(.*)_Symbian_OS_v(.*)$/) {
+	$build = $1;
+	$version = $2;
+	print "Parsed build number as $build, os version $version\n" if $verbose;
+} else {
+	die "ERROR: Build number '$buildnum' is not a valid build number\n";
+}
+
+# Generate the Kit Information File
+
+print "Constructing the KIF data\n" if $verbose;
+
+my $mapper = new XML::Simple('rootname' => $namespace.':kitinfo', 'searchpath' => '.');
+
+my $hash = {
+	'xsi:schemaLocation' => "$nsuri $schema",
+	"xmlns:".$namespace => $nsuri,
+	'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance',
+	'label' => $buildnum,
+	$namespace.':release' => {
+		'build' => $build,
+		'version' => $version
+	}
+};
+
+print "Writing the KIF data to '$outfile'\n" if $verbose;
+
+open(my $out, ">$outfile") or die "ERROR: Couldn't open $outfile for writing: $!\n";
+
+print $out $mapper->XMLout($hash, 'xmldecl' => "<?xml version='1.0'?>");
+
+close($out) or die "ERROR: Couldn't write to $outfile".": $!\n";
+
+print "Generated KIF in $outfile\n";
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/makmake/_secure_trgtype.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,424 @@
+# Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# this package controls target types known to the build system
+# To add new types to the system, simply add an entry to the %Types data structure.
+# Look at the existing types for an appropriate example
+# 
+#
+
+package Trgtype;
+
+require Exporter;
+@ISA=qw(Exporter);
+@EXPORT=qw(
+	Trg_GetL
+	Trg_List
+);
+
+use strict;
+use Genutl;
+
+my %Types=(
+	ANI=>{
+		'Exports'=>{
+			MARM=>['CreateCAnimDllL__Fv'],
+			EABI=>['_Z15CreateCAnimDllLv'],
+			WINS=>['?CreateCAnimDllL@@YAPAVCAnimDll@@XZ'],
+			X86=>['?CreateCAnimDllL@@YAPAVCAnimDll@@XZ'],
+			x86gcc=>['_Z15CreateCAnimDllLv']
+		},
+		UID2=>'0x10003b22',
+	},
+	APP=>{
+		'Exports'=>{
+			MARM=>['NewApplication__Fv'],
+			EABI=>['_Z14NewApplicationv'],
+			WINS=>['?NewApplication@@YAPAVCApaApplication@@XZ'],
+			X86=>['?NewApplication@@YAPAVCApaApplication@@XZ'],
+		},
+		NeedUID3=>1,
+		UID2=>'0x100039ce',
+		Deprecated=>"Convert to EXE",
+	},
+	CTL=>{
+		'Exports'=>{
+			MARM=>['CreateControlL__FRC7TDesC16'],
+			EABI=>['_Z14CreateControlLRK7TDesC16'], 
+			WINS=>['?CreateControlL@@YAXABVTDesC16@@@Z'],
+			X86=>['?CreateControlL@@YAXABVTDesC16@@@Z'],
+		},
+		UID2=>'0x10003a34',
+		Deprecated=>"Convert to application",
+	},
+	DLL=>{
+		NeedDeffile=>1,
+	},	
+	EPOCEXE=>{
+		Basic=>'EXEDLL',
+		'Exports'=>{
+			WINS=>['?WinsMain@@YAHXZ'],
+		},
+	},
+	EXE=>{
+		Basic=>'EXE',
+	},
+	EXEDLL=>{
+		Basic=>'EXEDLL',
+		NeedDeffile=>1,
+	},
+	EXEXP=>{
+		Basic=>'EXE',
+		NeedDeffile=>1,
+	},
+	FSY=>{
+		'Exports'=>{
+			MARM=>['CreateFileSystem'],
+			EABI=>['CreateFileSystem'],
+			WINS=>['CreateFileSystem'],
+			X86=>['CreateFileSystem'],
+			x86gcc=>['CreateFileSystem']
+		},
+		UID2=>'0x100039df',
+	},
+	IMPLIB=>{
+		NeedDeffile=>1,
+		Basic=>'IMPLIB',
+	},	
+	KDLL=>{
+		FirstLib=>'EKLL.LIB',
+#		Kernel=>1,
+		System=>1,
+	},
+	KEXT=>{
+		FirstLib=>'EEXT.LIB',
+#		Kernel=>1,
+		System=>1,
+	},
+	KLIB=>{
+		Basic=>'LIB',
+#		Kernel=>1,
+		System=>1,
+	},
+	LDD=>{
+		FirstLib=>'EDEV.LIB',
+#		Kernel=>1,
+		System=>1,
+		'Exports'=>{
+			MARM=>['CreateLogicalDevice__Fv'],
+			EABI=>['_Z19CreateLogicalDevicev'],
+			WINS=>['?CreateLogicalDevice@@YAPAVDLogicalDevice@@XZ'],
+			X86=>['?CreateLogicalDevice@@YAPAVDLogicalDevice@@XZ'],
+			x86gcc=>['_Z19CreateLogicalDevicev']
+		},
+		UID2=>'0x100000af',
+	},
+	LIB=>{
+		Basic=>'LIB',
+	},
+	ECOMIIC=>{
+		'Exports'=>{
+			MARM=>['ImplementationGroupProxy__FRi'],
+			EABI=>['_Z24ImplementationGroupProxyRi'], 
+			WINS=>['?ImplementationGroupProxy@@YAPBUTImplementationProxy@@AAH@Z'],
+			X86=>['?ImplementationGroupProxy@@YAPBUTImplementationProxy@@AAH@Z'],
+		},
+		Path=>'System\Libs\Plugins',
+		UID2=>'0x10009D8D',
+		Deprecated=>"Convert to PLUGIN (ECOM)",
+	},
+	PLUGIN=>{
+		'Exports'=>{
+			MARM=>['ImplementationGroupProxy__FRi'],
+			EABI=>['_Z24ImplementationGroupProxyRi'],
+			WINS=>['?ImplementationGroupProxy@@YAPBUTImplementationProxy@@AAH@Z'],
+			X86=>['?ImplementationGroupProxy@@YAPBUTImplementationProxy@@AAH@Z'],
+			x86gcc=>['_Z24ImplementationGroupProxyRi']
+		},
+		ResourcePath=>'Resource\Plugins',
+		UID2=>'0x10009D8D',
+	},
+	PLUGIN3=>{
+		'Exports'=>{
+			MARM=>['ImplementationGroupProxy__FRi'],
+			EABI=>['_Z24ImplementationGroupProxyRi'],
+			WINS=>['?ImplementationGroupProxy@@YAPBUTImplementationProxy3@@AAH@Z'],
+			X86=>['?ImplementationGroupProxy@@YAPBUTImplementationProxy3@@AAH@Z'],
+			x86gcc=>['_Z24ImplementationGroupProxyRi']
+		},
+		ResourcePath=>'Resource\Plugins',
+		UID2=>'0x10009D93',
+	},
+	MDA=>{
+		'Exports'=>{
+			MARM=>['NewMediaLibraryL__Fv'],
+			EABI=>['_Z16NewMediaLibraryLv'],
+			WINS=>['?NewMediaLibraryL@@YAPAVCMdaLibrary@@XZ'],
+			X86=>['?NewMediaLibraryL@@YAPAVCMdaLibrary@@XZ'],
+		},
+		UID2=>'0x1000393f',
+		Deprecated=>"Convert to ???",
+	},
+	MDL=>{
+		'Exports'=>{
+			MARM=>['CreateRecognizer__Fv'],
+			EABI=>['_Z16CreateRecognizerv'],
+			WINS=>['?CreateRecognizer@@YAPAVCApaDataRecognizerType@@XZ'],
+			X86=>['?CreateRecognizer@@YAPAVCApaDataRecognizerType@@XZ'],
+		},
+		UID2=>'0x10003a19',
+		Deprecated=>"Convert to PLUGIN (ECOM)",
+	},
+	RDL=>{
+		'Exports'=>{
+			MARM=>['CreateRecognizer__Fv'],
+			EABI=>['_Z16CreateRecognizerv'],
+			WINS=>['?CreateRecognizer@@YAPAVCApaFileRecognizerType@@XZ'],
+		},
+		UID2=>'0x10003a37',
+		Deprecated=>"Convert to PLUGIN (ECOM)",
+	},
+	NOTIFIER=>{
+		'Exports'=>{
+			MARM=>['NotifierArray__Fv'],
+			EABI=>['_Z13NotifierArrayv'],
+			WINS=>['?NotifierArray@@YAPAV?$CArrayPtr@VMEikSrvNotifierBase@@@@XZ'],
+			X86=>['?NotifierArray@@YAPAV?$CArrayPtr@VMEikSrvNotifierBase@@@@XZ'],
+		},
+		Path=>'System\Notifiers',
+		UID2=>'0x10005522',
+		Deprecated=>"Convert to PLUGIN (ECOM)",
+	},
+	NOTIFIER2=>{
+		'Exports'=>{
+			MARM=>['NotifierArray__Fv'],
+			EABI=>['_Z13NotifierArrayv'],
+			WINS=>['?NotifierArray@@YAPAV?$CArrayPtr@VMEikSrvNotifierBase2@@@@XZ'],
+			X86=>['?NotifierArray@@YAPAV?$CArrayPtr@VMEikSrvNotifierBase2@@@@XZ'],
+		},
+		Path=>'System\Notifiers',
+		UID2=>'0x101fdfae',
+		Deprecated=>"Convert to PLUGIN (ECOM)",
+	},
+	TEXTNOTIFIER2=>{
+		'Exports'=>{
+			MARM=>['NotifierArray__Fv'],
+			EABI=>['_Z13NotifierArrayv'],
+			WINS=>['?NotifierArray@@YAPAV?$CArrayPtr@VMNotifierBase2@@@@XZ'],
+			X86=>['?NotifierArray@@YAPAV?$CArrayPtr@VMNotifierBase2@@@@XZ'],
+			x86gcc=>['_Z13NotifierArrayv']
+		},
+		Path=>'System\Notifiers',
+		UID2=>'0x101fe38b',
+		# Not deprecated - the Text Window Server will have AllFiles, 
+		# so it can continue scanning for binaries
+	},
+	PDD=>{
+		FirstLib=>'EDEV.LIB',
+#		Kernel=>1,
+		System=>1,
+		'Exports'=>{
+			MARM=>['CreatePhysicalDevice__Fv'],
+			EABI=>['_Z20CreatePhysicalDevicev'],
+			WINS=>['?CreatePhysicalDevice@@YAPAVDPhysicalDevice@@XZ'],
+			X86=>['?CreatePhysicalDevice@@YAPAVDPhysicalDevice@@XZ'],
+			x86gcc=>['_Z20CreatePhysicalDevicev']
+		},
+		UID2=>'0x100039d0',
+	},
+	PDL=>{
+		'Exports'=>{
+			MARM=>['NewPrinterDeviceL__Fv'],
+			EABI=>['_Z17NewPrinterDeviceLv'],
+			WINS=>['?NewPrinterDeviceL@@YAPAVCPrinterDevice@@XZ'],
+			X86=>['?NewPrinterDeviceL@@YAPAVCPrinterDevice@@XZ'],
+			x86gcc=>['_Z17NewPrinterDeviceLv']
+		},
+		UID2=>'0x10003b1c',
+		ResourcePath=>'Resource\Printers',
+	},
+	STDDLL=>{
+		NeedDeffile=>1,
+		UID2=>'0x20004C45',
+	},
+	STDEXE=>{
+		Basic=>'EXE',
+		UID2=>'0x20004C45',
+	},
+	STDLIB=>{
+		Basic=>'LIB',
+	},
+	VAR=>{
+		'Exports'=>{
+			MARM=>['VariantInitialise__Fv'],
+			EABI=>['_Z17VariantInitialisev'],
+			X86=>['?VariantInitialise@@YAPAVAsic@@XZ'],
+			x86gcc=>['_Z17VariantInitialisev']
+		},
+		FirstLib=>'EVAR.LIB',
+#		Kernel=>1,
+		System=>1,
+	},
+	VAR2=>{
+		'Exports'=>{
+			MARM=>['VariantInitialise'],
+			EABI=>['VariantInitialise'],
+			X86=>['VariantInitialise'],
+			x86gcc=>['VariantInitialise']
+		},
+		FirstLib=>'EVAR.LIB',
+		System=>1,
+	},
+	NONE=>{
+		Basic=>'IMPLIB',
+	},
+);
+
+sub Trg_GetL ($$$) {
+#	takes target type, followed by a ref to a data structure
+#	to fill with exports, second UID and default targetpath, etc.,
+#
+#	dies upon error
+
+	my ($Candidate, $TrgHash_ref)=@_;
+	$Candidate= uc $Candidate;
+
+#	Is type in our list?
+	unless (defined $Types{$Candidate}) {
+		die "ERROR: Target type \"$Candidate\" not supported\n";
+	}
+
+#	Get the data
+	my %TrgHash=%{$Types{$Candidate}};
+
+
+#	Set the defaults
+	$TrgHash{Name}=$Candidate;
+
+	
+	unless ($TrgHash{Basic}) {
+		$TrgHash{Basic}='DLL';
+	}
+
+	unless ($TrgHash{FirstLib}) {
+		$TrgHash{FirstLib}='';
+	}
+
+	unless ($TrgHash{Kernel}) {
+		$TrgHash{Kernel}=0;
+	}
+
+	unless ($TrgHash{System}) {
+		$TrgHash{System}=0;
+	}
+
+	unless ($TrgHash{Exports}{MARM}) {
+		$TrgHash{Exports}{MARM}=[];
+	}
+	else {
+		unless (@{$TrgHash{Exports}{MARM}}<=2) {
+			die "INTERNAL ERROR: Too many MARM exports defined for type \"$TrgHash{Name}\" in Trgtype.pm\n";
+		}
+	}
+
+	unless ($TrgHash{Exports}{EABI}) {
+		$TrgHash{Exports}{EABI}=[];
+	}
+	else {
+		unless (@{$TrgHash{Exports}{EABI}}<=2) {
+			die "INTERNAL ERROR: Too many EABI exports defined for type \"$TrgHash{Name}\" in Trgtype.pm\n";
+		}
+	}
+
+	unless ($TrgHash{Exports}{WINS}) {
+		$TrgHash{Exports}{'WINS'}=[];
+	}
+	else {
+		unless (@{$TrgHash{Exports}{WINS}}<=2) {
+			die "INTERNAL ERROR: Too many WINS exports defined for type \"$TrgHash{Name}\" in Trgtype.pm\n";
+		}
+	}
+
+	unless ($TrgHash{Exports}{X86}) {
+		$TrgHash{Exports}{X86}=[];
+	}
+	else {
+		unless (@{$TrgHash{Exports}{X86}}<=2) {
+			die "INTERNAL ERROR: Too many X86 exports defined for type \"$TrgHash{Name}\" in Trgtype.pm\n";
+		}
+	}
+
+	unless ($TrgHash{Exports}{x86gcc}) {
+		$TrgHash{Exports}{x86gcc}=[];
+	}
+	else {
+		unless (@{$TrgHash{Exports}{x86gcc}}<=2) {
+			die "INTERNAL ERROR: Too many x86gcc exports defined for type \"$TrgHash{Name}\" in Trgtype.pm\n";
+		}
+	}
+
+
+	unless ($TrgHash{NeedDeffile}) {
+		$TrgHash{NeedDeffile}=0;
+	}
+
+	unless ($TrgHash{NeedUID3}) {
+		$TrgHash{NeedUID3}=0;
+	}
+
+	unless ($TrgHash{Path}) {
+		$TrgHash{Path}='';
+	}
+	else {
+		# apply terminating backslash
+		$TrgHash{Path}=~s-^(.*[^\\])$-$1\\-o;
+		# apply Z drive
+		$TrgHash{Path}="Z\\$TrgHash{Path}";
+	}
+
+	unless ($TrgHash{ResourcePath}) {
+		$TrgHash{ResourcePath}='';
+	}
+	else {
+		# apply terminating backslash & Z drive
+		$TrgHash{ResourcePath}=~s-^(.*[^\\])$-Z\\$1\\-o;
+	}
+
+	unless ($TrgHash{UID2}) {
+		$TrgHash{UID2}='';
+	}
+	else {
+		$TrgHash{UID2}=&Genutl_AnyToHex($TrgHash{UID2});
+		unless (defined $TrgHash{UID2}) {
+			die "INTERNAL ERROR: UID2 badly defined for type \"$TrgHash{Name}\" in Trgtype.pm\n";
+		}
+	}
+
+#	Deprecated target warnings
+
+	if ($TrgHash{Deprecated}) {
+		print "MIGRATION_NOTE: type \"$TrgHash{Name}\" is deprecated - $TrgHash{Deprecated}\n";
+	}
+	
+#	Pass the data
+	%{$TrgHash_ref}=%TrgHash;
+}
+
+sub Trg_List () {
+#	returns a list of known poly types
+
+	sort keys %Types;
+}
+
+
+1;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/makmake/makdeps.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,410 @@
+# Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Module which wraps the dependency information provided the preprocessor when invoked with certain switches
+# so that dependency information rather than preprocessing information is produced.
+# 
+#
+
+package Makdeps;
+require Exporter;
+@ISA=qw(Exporter);
+@EXPORT=qw(
+	Deps_InitL
+	Deps_SetVerbose
+	Deps_SetUserHdrsOnly
+	Deps_SetNoDependencies
+	Deps_SetSysIncPaths
+	Deps_SetUserIncPaths
+	Deps_SetPlatMacros
+	Deps_SetStdIncSysIncPaths
+	Deps_GenDependsL
+	Deps_SetPrefixFile
+	Deps_GetNoDependencies
+	Deps_SetNoDependenciesStatus
+	Deps_GetOSVariantFile
+	Deps_SetOSVariantFile
+);
+
+use strict;
+use Checkgcc;
+use Pathutl;
+use Preprocessor;
+
+
+my $ChopSysDecoyPath;
+my $EPOCIncPath;
+my @StdPaths;
+my %Mode;
+my @PlatMacros;
+my $SysDecoyPath;
+my @SysFlags;
+my @SysPaths;
+my @UserFlags;
+my @UserPaths;
+my $PrefixFileOption = "";
+my $VariantFile=&main::VariantFile();
+
+# special variable used in pattern-matching - special characters nullified
+my $S_SysDecoyPath;
+
+BEGIN {	# NB don't initialise essential items to be provided later by calling module, then will cause errors with undef
+	$Mode{'Verbose'}=0;
+	$Mode{'UserHdrsOnly'}=0;
+	$Mode{'NoDependencies'}=0;
+	@PlatMacros=();
+	# note -MG option assumes missing user headers live in 1st userincpath and missing sys headers in 1st sysdir
+	@SysPaths=();
+	@UserPaths=();
+	@StdPaths=();
+	@SysFlags=();
+	@UserFlags=();
+	# Use random number to ensure DecoyPath is unique (ish)
+	srand();
+	my $randnum=int(rand(100));
+	if (defined $ENV{PBUILDPID}) {
+		$SysDecoyPath=&Path_WorkPath."TEMPMAK$ENV{PBUILDPID}SYSDECOY$randnum\\";
+	} else {
+		$SysDecoyPath=&Path_WorkPath."TEMPMAKSYSDECOY$randnum\\";
+	}
+	$S_SysDecoyPath=quotemeta($SysDecoyPath);
+	$ChopSysDecoyPath=&Path_Chop($SysDecoyPath);
+}
+
+sub Deps_InitL ($@) {	# abs Generated Hdr dir, StdIncsysdir (with drive letter if required)
+# set up a decoy system include path, and set which path will contain generated headers, eg .RSG files, and which
+# paths are the standard system include paths for the compiler used - eg \MSDEV\INCLUDE
+	($EPOCIncPath,@StdPaths)=@_;
+
+# remove the decoy directory then try to make it again - if it contains files rmdir won't work, so mkdir won't
+# work and the user will have to sort it out.  If it doesn't contain files and has been left lying around
+# because someone has killed the program half-way through, then rmdir will remove it and mkdir will work OK
+	rmdir $ChopSysDecoyPath if -d $ChopSysDecoyPath;
+	mkdir $ChopSysDecoyPath,2 or die "ERROR: Can't make temp dir \"$ChopSysDecoyPath\"\nIf it already exists, please remove it\n";
+}
+sub Deps_SetVerbose {
+	$Mode{'Verbose'}=1;
+}
+
+sub Deps_SetUserHdrsOnly {
+# allow calling program to dictate that only listings of user headers, not system headers, be produced
+	$Mode{'UserHdrsOnly'}=1;
+}
+
+sub Deps_SetNoDependencies {
+# Ensure that we do not create a list of dependencies.
+	$Mode{'NoDependencies'}=1;
+}
+
+sub Deps_GetNoDependencies {
+# Get the status of NoDependencies.
+	return $Mode{'NoDependencies'};
+}
+
+sub Deps_SetNoDependenciesStatus($) {
+# Ensure that we do not create a list of dependencies.
+	$Mode{'NoDependencies'}=shift;
+}
+
+sub Deps_GetOSVariantFile() {
+# Return the variant .hrh file currently defined
+	return $VariantFile;
+}
+
+sub Deps_SetOSVariantFile($) {
+# Override the variant .hrh file currently defined
+	$VariantFile=shift;
+}
+
+sub Deps_SetSysIncPaths (@) {	# takes list abs paths
+# set the system include paths where we'll look for system included files, and
+# for user included files if these are not found in the user include directories
+	return unless @_;
+	@SysPaths=@_;
+	@SysFlags=&Path_Chop(@SysPaths); # newer gcc doesn't like trailing backslash
+	@SysFlags=&Path_PrefixWithDriveAndQuote(@SysFlags);
+	my $Flag;
+	foreach $Flag (@SysFlags) {
+		$Flag=~s/^(.*)$/-I $1/o;
+	}
+}
+sub Deps_SetUserIncPaths (@) {	# takes list of abs paths
+# set the user include paths to find user included files in
+	return unless @_;
+	@UserPaths=@_;
+	@UserFlags=&Path_Chop(@UserPaths); # newer gcc doesn't like trailing backslash
+	@UserFlags=&Path_PrefixWithDriveAndQuote(@UserFlags);
+	my $Flag;
+	foreach $Flag (@UserFlags) {
+		$Flag=~s/^(.*)$/-I $1/o;
+	}
+}
+sub Deps_SetPlatMacros (@) {
+# set the macros to be defined by the preprocessor
+	return unless @_;
+	@PlatMacros=@_;
+	my $Flag;
+	foreach $Flag (@PlatMacros) {
+		if($Flag =~ m/\\\"/) { 
+			$Flag =~ s/\\\"/\"/g ; 
+		}
+		$Flag=~s/^(.*)$/-D$1/o;
+	}
+}
+
+sub Deps_SetPrefixFile($) {
+    my ($file) = @_;
+    $PrefixFileOption = " -include $file ";
+}
+
+sub Deps_GenDependsL ($@) {	# takes abs source filepath and list of Build Macros
+
+	if ( $Mode{'NoDependencies'} ) {
+		# no need build a dependency list.
+		return;
+	}
+
+#	Set any more macros the preprocessor needs to be defined for the source file
+#	to be preprocessed.
+#	Call preprocessor and produce the dependency listing.
+
+	my ($Src,@BldMacros)=@_;
+
+	if (not -e $Src) {
+		warn "WARNING: \"",$Src,"\" not found!\n";
+		return;
+	}
+
+# 	Always put the source path at the head of the user path list
+#	and take it out at the end of this function
+	unshift @UserPaths, &Path_Split('Path', lc $Src);
+
+	my $ChopSysDecoyPath=&Path_Chop($SysDecoyPath); # newer gcc doesn't like trailing backslash
+	my $MacroFlag;
+	foreach $MacroFlag (@BldMacros) {
+		$MacroFlag=~s/^(.*)$/-D$1/o;
+	}
+	undef $MacroFlag;
+
+	my $ChopSrcPath=&Path_Chop(&Path_Split('Path',$Src)); # newer gcc doesn't like trailing backslash
+	my $ProductVariantFlag = "";
+	if($VariantFile){
+	    $ProductVariantFlag  = "-include " . &Path_PrefixWithDriveAndQuote($VariantFile);
+	}
+	my $VariantIncludePath;
+	if (defined &main::PMPrefixFile)
+	{
+	$VariantIncludePath = &main::PMPrefixFile;
+	$VariantIncludePath =~ s/"//g;
+	$VariantIncludePath = Path_Split("path", $VariantIncludePath);
+	
+	$VariantIncludePath = Path_Chop($VariantIncludePath);
+	$VariantIncludePath = Path_PrefixWithDriveAndQuote($VariantIncludePath);
+	}
+	my $CPPCommand;
+ 	my $exe = &PreprocessorToUseExe();
+	$CPPCommand = "$exe -undef -M -MG -nostdinc $PrefixFileOption";
+	$CPPCommand .= " -I $VariantIncludePath" if $VariantIncludePath;
+	$CPPCommand .= " -I ".&Path_PrefixWithDriveAndQuote($ChopSrcPath)." @UserFlags -I- -I ".&Path_PrefixWithDriveAndQuote($ChopSysDecoyPath)." @SysFlags @PlatMacros @BldMacros $ProductVariantFlag ".&Path_PrefixWithDriveAndQuote($Src);
+
+	if ($Mode{'Verbose'}) {
+		print "$CPPCommand\n"
+	}
+ 	open CPPPIPE,"$CPPCommand |" or die "ERROR: Can't invoke $exe.EXE\n";
+
+	# XYZ.CPP.o: \
+	#  ..\..\..\base\bafl\src\xyz.cpp \
+	#  ..\..\..\EPOC32\INCLUDE\E32DES16.H ..\..\..\EPOC32\INCLUDE\E32STD.INL \
+	#  ..\..\..\EPOC32\INCLUDE\E32BASE.INL \
+	#  ..\..\..\base\bafl\inc\bautil.h \
+	#  ..\..\..\awkward\ name\bafl\inc\bautil.h \
+	#  ..\..\..\lastthing.h
+
+	my @RTWDepList;
+	while (<CPPPIPE>) {
+		s/ \\$//oi;	# remove trailing continuation character
+		s/\\ /;/go;	# convert embedded spaces (\<space>) into semicolon which can't occur in filenames
+		# avoid the target of the rule by requiring whitespace in front of each element
+		while (/\s(\S+)/go) {
+			my $dep = $1;
+			$dep =~ s/;/ /go;	# spaces were turned into semicolon, so convert back again here
+			$dep =~ s-/-\\-go;	# replace forward slashes with backward slashes
+			$dep =~ s/^.\://;
+			$dep =~ s/\s+$//; 	# remove trailing spaces
+			push @RTWDepList,$dep;
+		}
+	}
+	close CPPPIPE or die "ERROR: $exe.EXE failure\n";
+
+	# drop the first dependent, which is the source file itself
+	shift @RTWDepList;
+
+# make all paths absolute
+	my @DepList=&Path_AbsToWork(@RTWDepList);
+	undef @RTWDepList;
+
+# test the dependencies
+	eval { @DepList=&TestDepends($Src,@DepList); };
+	die $@ if $@;
+	
+	my @SortedDepList;
+# get just those headers found in the user include path if user headers only specified
+	if (not $Mode{'UserHdrsOnly'}) {
+		@SortedDepList=sort @DepList;
+	}
+	else {
+		my @UserDepList=();
+		my $Dep;
+		my $UserPath;
+		DEPLOOP: foreach $Dep (@DepList) {
+			foreach $UserPath (@UserPaths) {
+				if ($UserPath eq &Path_Split('Path',$Dep)) {
+					push @UserDepList, $Dep;
+					next DEPLOOP;
+				}
+			}
+		}
+		@SortedDepList=sort @UserDepList;
+	}
+
+# take the source path out of the user path list
+	shift @UserPaths;
+
+	@SortedDepList;
+} 
+
+
+sub TestDepends (@) { # takes source list of absolute dependencies - called by GenDepends
+# check that the dependencies exist or are to be generated later, because gcc with the -MG switch
+# will assume that missing system headers live in the first system include path specified (the decoy
+# directory in our case), and the missing user headers live in the current working directory
+
+	my ($Src,@DepList)=@_;
+
+	my @BadSysList;
+	my @BadUserList;
+	my $Dep;
+	my @GoodList;
+	my $SrcPath=&Path_Split('Path', $Src);
+
+	my $Path;
+	my $File;
+	DEPLOOP: foreach $Dep (@DepList) { # system dependencies not found
+		$Path=&Path_Split('Path', lc $Dep);
+		if ($Dep=~/^$S_SysDecoyPath(.*)$/o) { # allow things like "#include <sys\stats.h>"
+# any files listed as existing in the system decoy directory will be missing system include files
+			$File=$1;
+# change any missing generated header entries so that they are thought to be in $EPOCIncPath, where they will be generated to
+			if ($File=~/\.(RSG|MBG)$/oi) {
+				push @GoodList, "$EPOCIncPath$File";
+				next DEPLOOP;
+			}
+# remove missing system include files from the list if they actually exist in standard directories - since the makefiles can't handle
+# files which may be on a different drive - we don't mind this because if we're using MSVC then we can assume
+# the MSVC include files will exist
+			my $LR;
+			foreach $LR (@StdPaths) {	# tackle MSDEV include dir on diff drive
+				if (-e "$LR$File") {	# don't put MSDEV includes in dep list - drive letter would end up in makefile
+					next DEPLOOP;
+				}
+			}
+# put any other missing system files on the bad list after checking that they really don't exist on the system paths
+# at this point in time.  This check is applied in an attempt to avoid sporadic warnings in the build where system
+# headers have been listed in the system decoy directory, and hence flagged as missing, when they do seem to have
+# been present at this time post-build...
+			foreach $Path (@SysPaths) {
+				if (-e "$Path$File") {
+					next DEPLOOP;
+				}
+			}
+			push @BadSysList, $File;
+			next DEPLOOP;
+		}
+# preprocessor lists any missing user headers as existing in the current directory,
+# and, if no userinclude paths are specified,
+# searches to path containing the source file for user headers by default
+		if ($Path eq lc &Path_WorkPath) { # possible missing user headers
+			$File=&Path_Split('File',$Dep);
+			# does the userinclude path contain the current working directory?
+			my $LoopPath;
+			my $WorkPathInUserPaths=0;
+			foreach $LoopPath (@UserPaths) {
+				if ( (lc $LoopPath) eq (lc &Path_WorkPath) ) {
+					$WorkPathInUserPaths=1;
+					next;
+				}
+			}
+			if ($WorkPathInUserPaths) { # the user include path contains the current working directory
+				if (-e $Dep) {
+					push @GoodList,$Dep;	# file found in specified userinclude path, OK
+					next DEPLOOP;
+				}
+			}
+			push @BadUserList, $File;	# file not found in specified userinclude path, bad
+			next DEPLOOP;
+		}
+		push @GoodList, $Dep;
+	}
+
+	my $Bad;
+	if (@BadSysList) {
+		warn	"\nWARNING: Can't find following headers in System Include Path\n";
+		foreach $Bad (@BadSysList) {
+			print STDERR " <$Bad>";
+		}
+		print STDERR "\n(Sys Inc Paths";
+		foreach $Path (@SysPaths,@StdPaths) {
+			print STDERR " \"$Path\"";
+		}
+		warn
+			")\nDependency list for \"$Src\" may be incomplete\n",
+			"\n"
+		;
+	}
+	if (@BadUserList) {
+		warn "\nWARNING: Can't find following headers in User or System Include Paths\n";
+		my $GenHdr=0;
+		foreach $Bad (@BadUserList) {
+			print STDERR " \"$Bad\"";
+			if ($File=~/\.(RSG|MBG)$/o) {
+				$GenHdr=1;
+			}
+		}
+		print STDERR "\n(User Inc Paths";
+		foreach $Path (@UserPaths) {
+			print STDERR " \"$Path\"";
+		}
+		warn
+			")\nDependency list for \"$Src\" may be incomplete\n",
+			"\n"
+		;
+		if ($GenHdr) {
+			warn
+				"Note that generated headers should be system-included with angle brackets <>\n",
+				"\n"
+			;
+		}
+	}
+
+	@GoodList;
+}
+
+
+END {
+	# remove the dependency decoy directories
+	if (-d "$ChopSysDecoyPath") {
+		rmdir "$ChopSysDecoyPath" or warn "Please remove temp dir \"$ChopSysDecoyPath\"\n";
+	}
+}
+
+1;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/makmake/makhelp.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,226 @@
+# Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+
+package Makhelp;
+require Exporter;
+@ISA=qw(Exporter);
+@EXPORT=qw(
+	Help_Invocation
+	Help_Mmp
+	Help_Plat
+);
+
+use strict;
+
+use E32tpver;
+use featurevariantparser;
+# also requires main module to have loaded platform module(s) and Modload.pm and Trgtype.pm
+
+sub Help_Invocation () {
+
+	print
+		"\n",
+		"MAKMAKE - Makefile Creation Utility (Build ",&E32tpver,")\n",
+		"\n",
+		"MAKMAKE {flags} [{MMPFilePath}MMPFileRoot] [Platform[.Feature Variant]]\n",
+		"\n",
+		"Flags: (case insensitive)\n",
+		" -D               -> create makefile in ", $E32env::Data{BldPath}, "[project]\\[platform]\\\n",
+		" -MMP             -> information - basic mmp syntax\n",
+		" -PLAT [platform] -> information - platform-specific mmp syntax\n",
+		" -V               -> verbose mode\n",
+		" -ND              -> generate no dependencies info\n",
+		" -[debug|no_debug]-> enable/disable generation of symbolic debug information for ARM ABI compliant platforms\n",
+		" -LOGFC           -> enable function call logging\n",
+		" -INVARIANT       -> force default feature variant processing only, unless FEATUREVARIANT is present in the .mmp file\n",
+		"\n"
+	;
+
+	my @Plats=&main::Plat_List;
+	print
+		"Available Platforms: (case insensitive)\n",
+		" @Plats\n"
+	;
+
+	my @BuildableFeatureVariants=featurevariantparser->GetBuildableFeatureVariants();
+	if (@BuildableFeatureVariants)
+		{
+		@BuildableFeatureVariants = map{uc($_)} @BuildableFeatureVariants;
+
+		print
+			"\nAvailable Feature Variants for Supporting Platforms: (case insensitive)\n",
+			" @BuildableFeatureVariants\n"
+		;
+		}
+}
+
+sub Help_Mmp () {
+
+	my @TrgTypes=&main::Trg_List;
+	my $TrgTypes='TARGETTYPE             [';
+	my $Spacing=length($TrgTypes);
+	my $LineLen=$Spacing;
+	foreach (@TrgTypes) {
+		$TrgTypes.=$_.'|';
+		$LineLen+=(length($_)+1);
+		if ($LineLen>($Spacing+50)) {
+			$TrgTypes.="\n".(' 'x$Spacing);
+			$LineLen=$Spacing;
+		}
+	}
+	chop $TrgTypes;
+	$TrgTypes.=']';
+
+	print <<ENDHERE;
+
+Makmake Project File - Basic Syntax
+
+/* Use C++ comments if required */
+START BITMAP           [target]
+TARGETPATH             [emulated_path_on_target_machine]
+HEADER
+SOURCEPATH             [.mmp-relative_source_path (default - .mmp_dir)]
+SOURCE                 [color_depth] [source_bitmaps]
+END
+
+START RESOURCE         [source]
+TARGET                 [target (default - source)]
+TARGETPATH             [emulated_path_on_target_machine]
+HEADER
+LANG                   [languages (overrides global LANG)]
+UID                    [uid(s) for resource file]
+END
+
+START STRINGTABLE      [source]
+EXPORTPATH             [location]
+HEADERONLY             [export only header file]
+END
+
+AIF                    [target] [src_path] [resource] {[color_depth] [bitmaps]}
+ALWAYS_BUILD_AS_ARM
+ARMFPU                 [SOFTVFP | VFPV2]
+ASSPABI
+ASSPEXPORTS
+ASSPLIBRARY            [ASSP_libraries]
+BYTEPAIRCOMPRESSTARGET
+CAPABILITY             [NONE | list of {-}CAPABILITY_NAME]
+COMPRESSTARGET
+DEBUGGABLE             [Executable can be debugged in a running system]
+DEBUGGABLE_UDEBONLY    [Only Debug (UDEB) executables can be debugged in a running system]
+DEBUGLIBRARY           [libraries - use in addition to LIBRARY for DEBUG builds]
+
+DEFFILE                [{path}{deffile} (default -
+                          \[project]\B[platform]\[target basename].DEF)
+                        If the path ends in \~\ the ~ is replace by B[platform] ]
+
+DOCUMENT               [sourcepath-relative_documents]
+EPOCALLOWDLLDATA
+EPOCCALLDLLENTRYPOINTS
+EPOCDATALINKADDRESS    [relocation_address]
+EPOCFIXEDPROCESS
+EPOCHEAPSIZE           [min_size][max_size]
+EPOCPROCESSPRIORITY    [PRIORITY_NAME]
+EPOCSTACKSIZE          [stack_size]
+EXPORTLIBRARY          [executables export library name if different from TARGET]
+EXPORTUNFROZEN
+FIRSTLIB               [first link object - overrides EEXE.LIB or EDLL.LIB]
+FEATUREVARIANT         [process for all variants when '-invariant' is used in MAKMAKE calls]
+INFLATECOMPRESSTARGET
+LANG                   [languages (defaults to SC)]
+LIBRARY                [libraries]
+LINKAS                 [executable's linking name if different from TARGET]
+LINKEROPTION           [COMPILER] [rest of line is linker options]
+MACRO                  [user-defined_macros]
+NEWLIB                 [override default operator new/operator delete library]
+NOCOMPRESSTARGET
+NOEXPORTLIBRARY        [don't generate an export library]
+NOSTRICTDEF
+OPTION                 [COMPILER] [rest of line is extra compiler options]
+OPTION_REPLACE         [oldComplierOption] [newOption]
+PAGED
+PAGEDCODE
+PAGEDDATA
+RAMTARGET              // syntax not yet finalized
+RESOURCE               [sourcepath-relative_resources]
+ROMTARGET              // syntax not yet finalized
+SECUREID               [secure ID]
+SMPSAFE                [mark executable as SMP safe]
+SOURCE                 [sourcepath-relative_sources]
+SOURCEPATH             [.mmp relative_source_path (default - .mmp_dir]
+SRCDBG
+STATICLIBRARY          [static_libraries]
+STDCPP
+NOSTDCPP
+STRICTDEPEND
+SYSTEMINCLUDE          [system_include_path]
+SYSTEMRESOURCE         [sourcepath-relative_system_resources]
+TARGET                 [target]
+TARGETPATH             [emulated_path_on_target_machine]
+$TrgTypes
+UID                    [uid2|0 {uid3}]
+UNPAGED
+UNPAGEDCODE
+UNPAGEDDATA
+USERINCLUDE            [user_include_path - source_dir searched first always]
+VENDORID               [vendorid]
+VERSION                [MAJOR.minor {explicit} - specify version number of
+                         the target. If EXPLICIT specified decorate target
+                         filename and DEF file name with version.]
+WCHARENTRYPOINT
+
+#if defined([PLATFORM])
+[universal keyword statements restricted to [PLATFORM] ]
+#endif
+
+START [PLATFORM]
+[platform-specific keyword statements]
+// use MAKMAKE /PLAT [PLATFORM] to display these
+END
+
+ENDHERE
+
+}
+
+sub Help_Plat ($$$$$) {
+	my ($Plat,$CPU,$DefFile,$MmpMacrosRef, $MacrosRef)=@_;
+
+#	list of source macros is incomplete in this function.  It may also contain:
+#	__MARM_<ABI>__ if the platform CPU is MARM - (ABI may vary according to .MMP contents though)
+#	Any macros defined in the .MMP file
+#	__DLL__ or __EXE__ respectively if the $BasicTrgType is DLL or EXE
+#	WIN32 and _WINDOWS if the project links to Win32 libraries
+#
+#	Furthermore, build macros _UNICODE, _DEBUG or _NDEBUG aren't listed - the _UNICODE
+#	macro should probably be defined as a permanent macro now that we're not doing Narrow
+#	builds anymore.
+
+	$DefFile= 'B'.$DefFile unless ($DefFile eq 'EABI');
+	print
+		"\n",
+		"Makmake Project File - Platform-specific Syntax\n",
+		"\n",
+		"// Platform   -> $Plat\n",
+		"// Default_Def_Dir -> \\[project]\\$DefFile\\\n",
+		"// MMP_Macros -> @$MmpMacrosRef\n",
+		"// Source_Macros -> @$MacrosRef (+ others)\n",
+		"\n",
+		"START [MMP_Macro]\n"
+	;
+	&main::PMHelp_Mmp if defined &main::PMHelp_Mmp;
+	print "END\n";
+}
+
+1;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/makmake/makmake.bat	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,28 @@
+@rem
+@rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+@rem All rights reserved.
+@rem This component and the accompanying materials are made available
+@rem under the terms of "Eclipse Public License v1.0"
+@rem which accompanies this distribution, and is available
+@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem
+@rem Initial Contributors:
+@rem Nokia Corporation - initial contribution.
+@rem
+@rem Contributors:
+@rem
+@rem Description:
+@rem
+@echo off
+
+
+perl -w -S makmake.pl %1 %2 %3 %4 %5 %6 %7 %8 %9
+if errorlevel==1 goto CheckPerl
+goto End
+
+:CheckPerl
+perl -v >NUL
+if errorlevel==1 echo Is Perl, version 5.003_07 or later, installed?
+goto End
+
+:End
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/makmake/makmake.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,1914 @@
+# Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# all variables called *Path* are set up to end with a backslash
+# all variables called *Path or *File are stored as absolute (file)paths within makmake
+# all variables called UpPath* are stored as relative paths within makmake
+# 
+#
+
+
+use FindBin;		# for FindBin::Bin
+use Getopt::Long;
+use Cwd;
+use strict;
+# modified start: makefile improvement 
+use File::stat;
+use Time::localtime;
+# modified end: makefile improvement 
+
+my $PerlLibPath;    # fully qualified pathname of the directory containing our Perl modules
+
+# Prototype to remove warning.
+sub AddStringTables();
+
+BEGIN {
+# check user has a version of perl that will cope
+	require 5.005_03;
+# establish the path to the Perl libraries: currently the same directory as this script
+	$PerlLibPath = $FindBin::Bin;	# X:/epoc32/tools
+	$PerlLibPath =~ s/\//\\/g;	# X:\epoc32\tools
+	$PerlLibPath .= "\\";
+}
+
+use lib $PerlLibPath;
+use E32env;
+use E32Plat;
+use E32Variant;
+use Genutl;
+use Modload;
+use Pathutl;
+use Trgtype;
+use CheckSource;
+use featurevariantparser;
+use featurevariantmap;
+
+# THE MAIN PROGRAM SECTION
+##########################
+
+{
+	Load_SetModulePath($PerlLibPath);
+	Plat_Init($PerlLibPath);
+}
+
+my $MAKEFILE;
+my $MMPFILE;
+my %Options;
+my %Plat;
+my %TruePlat;
+my %BldMacros;
+my $PlatArg;
+my @PlatOverrideList=();
+my $EABIDef;
+my $DebugSwitch=undef;
+
+my $IsCompilerWrapperOption = 0;
+my $IsProxyWrapperOption = 0;
+my $FeatureVariantArg;
+my %FeatureVariantInfo;
+
+{
+	# process the command line
+	unless (GetOptions(\%Options, 'd', 'mmp', 'plat=s', 'v', 'arm', 'nd' , 'ithumb' , 'iarm' , 'debug', 'no_debug', 'logfc','wrap:s')) {
+		exit 1;
+	}
+	#Update the variable to set the information of -wrap option
+	if(exists($Options{wrap})) {
+		if ($Options{wrap} eq "") {
+			# Set the Compiler wrapper option information i.e. '1'
+			$IsCompilerWrapperOption = 1;
+		} elsif ($Options{wrap} eq "proxy") {
+			$IsProxyWrapperOption = 1;
+		} else {
+			print "WARNING: Invalid value for option -wrap: $Options{wrap}\n";
+		}
+	}
+	
+	$Options{makemakefile}='1' unless ($Options{mmp} || $Options{plat});
+
+	if ($Options{mmp} or $Options{plat}) {
+		eval { &Load_ModuleL('MAKHELP'); };
+		die $@ if $@;
+	}
+
+	if ($Options{mmp}) {
+		&Help_Mmp;
+		exit;
+	}
+
+	if ($Options{plat}) {
+		eval { &Plat_GetL($Options{plat},\%Plat,\%BldMacros); };
+		die $@ if $@;
+		eval { &Load_ModuleL($Plat{MakeMod}); };
+		die $@ if $@;
+		&Help_Plat($Plat{Real},$Plat{CPU}, $Plat{DefFile}, \@{$Plat{MmpMacros}},\@{$Plat{Macros}});
+		exit;
+	}
+
+#	show help & exit if necessary
+	if (@ARGV != 2) {
+		&Usage();
+	}
+	if ($Options{v}) {
+		print "perl -S makmake.pl @ARGV\n";
+		&Load_SetVerbose;
+		&Path_SetVerbose;
+		&Plat_SetVerbose;
+	}
+
+	$PlatArg=uc pop @ARGV;
+
+	# Process build platform arguments where they differ from the "norm"
+	if ($PlatArg=~/^(\S+)\.(\S+)$/)
+		{
+		# Explicit feature variant platforms take the form <base platform>.<variant name>
+		# e.g. armv5.variant1
+		$PlatArg=$1;
+		$FeatureVariantArg=$2;
+		}
+	elsif ($PlatArg=~/^(\S+):(\S+)$/)
+		{
+		# IDE platforms can take the form cw_ide:<platform-1>+<platform-2>+<platform-n>
+		# e.g. cw_ide:plat1+plat2+plat3
+		# 			
+		$PlatArg=$1;
+		@PlatOverrideList=split(/\+/,$2);
+		}
+
+	eval { &Plat_GetL($PlatArg,\%TruePlat,\%BldMacros); };
+	die $@ if $@;
+	if (scalar @PlatOverrideList) {
+		$PlatArg=$PlatOverrideList[0];
+	}
+
+	
+	$MMPFILE=pop @ARGV;
+	die "ERROR: Can't specify MMP file on a different drive\n" if $MMPFILE=~/^\w:\\/o;
+	if ($MMPFILE!~/.MMP$/io) {
+		$MMPFILE.='.MMP';
+	}
+	$MMPFILE=&Path_AbsToWork($MMPFILE);
+
+	eval { &Load_ModuleL('Mmp'); };
+	die $@ if $@;
+	if ($Options{v}) {
+		&Mmp_SetVerbose;
+	}
+	if ($Options{d}) {
+		die "ERROR: $E32env::Data{EPOCPath} does not exist\n" if (!-d $E32env::Data{EPOCPath});
+	}
+	
+	if ($Options{debug}) {
+		$DebugSwitch = 1;
+	}
+	elsif($Options{no_debug}){
+		$DebugSwitch = 0;
+	}
+}
+
+my %LinkerOptions;
+my %WarningLevel;
+my $ABI;
+my @AifStruct;
+my $AllowDllData;
+my $CompressTarget;
+my $CompressTargetMode;   #NONE
+my $ASSPExports;
+my @ASSPLibList;
+my @BitMapStruct;
+my $BuildAsARM=$Options{arm};
+my $CallDllEntryPoints;
+my $Capability;
+my @CapabilityFlags;
+my $DataLinkAddress;
+my @DebugLibList;
+my %Def;
+my %DocHash;
+my $ExportUnfrozen;
+my $FirstLib;
+my $FixedProcess;
+my %HeapSize;
+my @LibList;
+my $LinkAs;
+my $LinkAsBase;
+my $ExportLibrary;
+my $NoExportLibrary;
+my %MmpFlag;
+my @PlatTxt2D;
+my $ProcessPriority;
+my @RamTargets;
+my @ResourceStruct;
+my @RomTargets;
+my $SmpSafe;
+my @SourceStruct;
+my $StackSize;
+my @StatLibList;    
+my $StdCpp;
+my $NoStdCpp;
+my $NewLib;
+my @SysIncPaths;
+my @ResourceSysIncPaths;
+my $ResourceVariantMacroHRHFile;
+my $Trg;
+my %TrgType;
+my @UidList;
+my @UserIncPaths;
+my $SrcDbg;
+my %Path;
+my %Version;
+my $SecureId;
+my $VendorId;
+my $variantMacroHRHFile = Variant_GetMacroHRHFile();  # HRH file containing macros specific to a variant
+my %ReplaceOptions;
+my $ARMFPU;
+my @StringTable;
+my @StringTableUserIncPaths;
+my $CodePagingTargetMode;	# 0-N/A, 1-UNPAGED, 2-PAGED
+my $DataPagingTargetMode;	# 0-N/A, 1-UNPAGED, 2-PAGED
+my %CheckSourceUDEBIncludes;
+my %CheckSourceURELIncludes;
+my %CheckSourceMMPMetaData;
+my %CheckSourceMMPIncludes;
+my $IsWideCharMain=0;
+my $IsDebuggable; # 0-NONDEBUGGABLE, 1-DEBUGGABLE, 2-DEBUGGABLE_UDEBONLY
+
+
+use constant NOTPAGED => 0;
+use constant UNPAGED => 1;
+use constant PAGED => 2;
+
+use constant INFLATECOMPRESSIONMETHOD => 1;
+use constant BYTEPAIRCOMPRESSIONMETHOD => 2;
+
+use constant NOTDEBUGGABLE => 0;
+use constant DEBUGGABLE =>  1;
+use constant DEBUGGABLE_UDEBONLY => 2;
+
+# If the platform does support feature variants but none are specified, then we assume the use of "DEFAULT" if it exists
+# If default doesn't exist feature variantion is basically disabled?
+$FeatureVariantArg = 'default' if (!$FeatureVariantArg && defined &PMSupportsFeatureVariants && featurevariantparser->DefaultExists());
+
+# Preload the details of the variant requested if any - we need the HRH file for MMP file processing
+if ($FeatureVariantArg)
+	{
+	# First check the feature variant is valid
+	my @buildableFeatureVariants = featurevariantparser->GetBuildableFeatureVariants();
+	die "ERROR: \"$PlatArg.$FeatureVariantArg\" feature variant is either invalid or virtual.\n" if !(grep /^$FeatureVariantArg$/i, @buildableFeatureVariants);
+
+	# Now load the variant
+	%FeatureVariantInfo = featurevariantparser->GetVariant($FeatureVariantArg);
+	
+	# Change the HRH file to use
+	$variantMacroHRHFile = $FeatureVariantInfo{VARIANT_HRH} if $FeatureVariantInfo{VARIANT_HRH};
+	}
+	
+&SetVarsFromMmp($PlatArg);
+die $@ if $@;
+
+{
+	# set up the makefile filepath - need to do this before loading the platform module
+	# because UID source file will be added and set up in the makefile path under WINS
+	if ($Options{d}) {
+		$MAKEFILE=join ('', $Path{Bld}, &Path_Split('Base',$MMPFILE), $TruePlat{Ext});
+	}
+	else {
+		$MAKEFILE=join "", &Path_WorkPath, &Path_Split('Base',$MMPFILE), $TruePlat{Ext};
+	}
+}
+
+{
+	# Generate an X86GCC def file from eabi def file in build dir if needed
+	if (($PlatArg eq "X86GCC" || $PlatArg eq "X86GMP") && $Def{Base} && not -e &DefFile)
+	{
+		# Find the equivalent eabi def file
+		my $eabiDefFile = File::Spec->canonpath("$Def{Path}../eabi/$Def{Base}$Def{Ext}");
+		if (-e $eabiDefFile)
+		{
+			# Need to create MAKEFILE directory early in this case
+			eval { &Path_MakePathL($MAKEFILE); };
+			die $@ if $@;
+			# Change def file path to build path 
+			$Def{Path} = $Path{Bld};
+			&generateX86GCCDefFile($eabiDefFile, &DefFile);
+		}
+		else
+		{
+			print "WARNING: Unable to find EABI def file at $eabiDefFile to generate X86GCC def file with\n";
+		}
+	}
+}
+
+{
+
+
+#	load the platform module
+	eval { &Load_ModuleL($TruePlat{MakeMod}); };
+	die $@ if $@;
+
+	unless (defined &PMHelp_Mmp) {
+#		check this function is defined - all modules must have it - if not perhaps the
+#		platform module has not loaded is compiler module successfully via "use"
+		die "ERROR: Module \"$Plat{MakeMod}\" not loaded successfully\n";
+	}
+}
+
+	# Allow the platform to bow out if feature variants have been specified but it doesn't support them
+	if ($FeatureVariantArg && !defined &PMSupportsFeatureVariants)
+		{
+		die "ERROR: The \"$PlatArg\" platform does not support feature variants.\n";
+		}
+
+{
+	# allow the platform to bow out if it can't support some .MMP file specifications
+	if (defined &PMCheckPlatformL) {
+		eval { &PMCheckPlatformL(); };
+		die $@ if $@;
+	}
+}
+
+my @StdIncPaths=();
+
+{
+	# get the platform module to do it's mmpfile processing - WINS modules may set up an extra source file
+	# for UIDs here depending upon the targettype
+	&PMPlatProcessMmp(@PlatTxt2D) if defined &PMPlatProcessMmp;
+}
+
+%CheckSourceMMPMetaData = &Mmp_CheckSourceMMPMetaData();
+%CheckSourceMMPIncludes = &Mmp_CheckSourceMMPIncludes();
+
+# merge checksource processing from platform specific .mmp sections, if applicable
+%CheckSourceMMPMetaData = (%CheckSourceMMPMetaData, &PMPlatCheckSource()) if defined &PMPlatCheckSource;
+
+@ResourceSysIncPaths = @SysIncPaths;
+$ResourceVariantMacroHRHFile = $variantMacroHRHFile;
+
+AddStringTables();
+
+# Process feature variants if applicable
+
+if ($FeatureVariantArg)
+	{
+	if ($Options{v})
+		{
+		$featurevariantmap::verbose = 1;
+		$featurevariantparser::verbose = 1;
+		}
+
+	# Get the default variant details
+	my %DefaultFeatureVariantInfo = $FeatureVariantInfo{NAME} =~ /^default$/i ? %FeatureVariantInfo : featurevariantparser->GetVariant("DEFAULT");	
+	die "ERROR: Feature variant \"$PlatArg.default\" is invalid.\n" if !$DefaultFeatureVariantInfo{VALID};
+
+	# The following IF statement decides whether to use the default variant and not use the hash in the filename 
+	# This prevents the generation of dll's/exe's for which variants are not needed (i.e they are invariant)
+	# It also avoids the time-consuming and redundant hash generation
+	# A component is considered invariant if it's not a DLL or EXE or FEATUREVARIANT isn't present in the .mmp file
+	
+# modified start: makefile improvement 
+	if ($TrgType{Basic} =~ /^(EXEDLL|EXE|DLL|LIB)$/ && &Mmp_IsFeatureVariant)
+# modified end: makefile improvement 
+		{
+		# Load the requested variant if it hasn't already been preloaded		
+		%FeatureVariantInfo = featurevariantparser->GetVariant($FeatureVariantArg) if !$FeatureVariantInfo{NAME} || $FeatureVariantInfo{NAME} ne $FeatureVariantArg;
+		}
+	else
+		{
+		# Use the default variant
+		%FeatureVariantInfo = %DefaultFeatureVariantInfo;
+		$FeatureVariantInfo{INVARIANT} = 1;
+		$FeatureVariantInfo{NAME} = uc $FeatureVariantArg;
+		}
+
+	die "ERROR: Feature variant \"$PlatArg.$FeatureVariantInfo{NAME}\" is invalid.\n" if !$FeatureVariantInfo{VALID};
+	
+	my @featureVariantSysIncPaths = (@{$FeatureVariantInfo{BUILD_INCLUDES}},@SysIncPaths);
+	
+	# Further process paths and filenames so that they include a drive letter.
+	# We store this in a hash specifically for passing on to featurevariantmap->Hash
+	
+	my @processedIncludes = &Path_PrefixWithDrive(&Path_Chop(@UserIncPaths), &Path_Chop(@featureVariantSysIncPaths));
+	push @processedIncludes, &Path_Chop(&PMToolChainIncDir) if defined &PMToolChainIncDir && &PMToolChainIncDir;
+	
+	my $processedPreInclude = "";
+	if (defined &PMPrefixFile)
+		{
+		$processedPreInclude = &PMPrefixFile;
+		$processedPreInclude =~ s/\"//g;
+		$processedPreInclude = &Path_PrefixWithDrive($processedPreInclude);		
+		}
+
+	my %processedFeatureVariantInfo;
+	$processedFeatureVariantInfo{PREINCLUDE} = $processedPreInclude if $processedPreInclude;
+	$processedFeatureVariantInfo{BUILD_INCLUDES} = \@processedIncludes if @processedIncludes;
+	$processedFeatureVariantInfo{VALID} = 1;
+	
+	# Pass in the details of the macros tested in the MMP
+	$processedFeatureVariantInfo{MMPTESTED} = &Mmp_TestedMacros();
+
+	my @pathedSrcList = ();
+	push @pathedSrcList, Path_PrefixWithDrive($$_{SrcPath}.$$_{CurFile}) foreach (@SourceStruct);
+
+	foreach my $bld (@{$Plat{Blds}})
+		{
+# modified start: makefile improvement 
+		my @reusedHash;
+# modified end: makefile improvement 
+		if ($FeatureVariantInfo{INVARIANT})															# Invariant override
+			{
+			$FeatureVariantInfo{$bld."_LABEL"} = "INVARIANT";
+			}
+		else
+			{
+# modified by SV start: makefile improvement 
+			my $vmap = "$E32env::Data{RelPath}".lc($Plat{Real})."\\".lc($bld)."\\".Trg()."." . $FeatureVariantInfo{NAME}.".vmap";
+# modified by SV end: makefile improvement 
+			$vmap = Path_PrefixWithDrive($vmap);
+			if(-e $vmap){
+				my @variantlist = featurevariantmap->GetVariantListFromVmap($vmap);
+				my @calls;
+				foreach(@variantlist)
+				{
+					my $target = "CHECKVMAP".uc($bld);
+					my $makefile = $MAKEFILE.".".$_;
+					if(-e $makefile){
+						push @calls, "make -r -f \"$makefile\"  $target";
+					}
+				}
+				foreach my $call (@calls)
+				{
+					print "call: $call" if $Options{v};
+					open PIPE, "$call |";
+					while(<PIPE>) {
+						print $_;
+					}
+					close PIPE;
+				}
+				if(-e $vmap){
+					@reusedHash = featurevariantmap->CheckOldVmapFile($vmap, \%FeatureVariantInfo);
+				}
+			}
+			if(defined(@reusedHash))
+			{
+				$FeatureVariantInfo{$bld."_LABEL"} = $reusedHash[0];
+				$FeatureVariantInfo{$bld."_FEATURES"} = $reusedHash[1];
+				next;
+			}
+# modified end: makefile improvement 
+			my @macros = (@{$Plat{Macros}}, @{$BldMacros{$bld}}, "__SUPPORT_CPP_EXCEPTIONS__");
+			push @macros, "__PRODUCT_INCLUDE__=\"".&Path_PrefixWithDrive($FeatureVariantInfo{VARIANT_HRH})."\"" if $FeatureVariantInfo{VARIANT_HRH};
+			$processedFeatureVariantInfo{MACROS} = \@macros;
+
+			print ("Feature variant hash processing: \"$FeatureVariantInfo{NAME} $bld\"\n") if $Options{v};
+			
+			my @result = featurevariantmap->HashAndFeatures(\@pathedSrcList, \%processedFeatureVariantInfo);
+			$FeatureVariantInfo{$bld."_LABEL"} = $result[0];
+			$FeatureVariantInfo{$bld."_FEATURES"} = $result[1];
+			
+			die "ERROR: Can't obtain hash for \"$PlatArg.$FeatureVariantInfo{NAME}\" feature variant.\n" if !$FeatureVariantInfo{$bld."_LABEL"};
+			}
+		}
+
+	# Customise standard content based on feature variant updates
+	@SysIncPaths = @featureVariantSysIncPaths;
+	$variantMacroHRHFile = $FeatureVariantInfo{VARIANT_HRH};
+	$MAKEFILE .= ".$FeatureVariantInfo{NAME}";
+
+	# Resources are always processed in the context of the default variant's system include and variant files when
+	# feature variants are in use
+	@ResourceSysIncPaths = (@{$DefaultFeatureVariantInfo{BUILD_INCLUDES}},@ResourceSysIncPaths);
+	$ResourceVariantMacroHRHFile = $DefaultFeatureVariantInfo{VARIANT_HRH};
+	}
+
+
+{
+	# if verbose mode set, output some info
+	#--------------------------------------
+	if ($Options{v}) {
+		print  
+			"Target: \"$Trg\"\n",
+			"TargetType: \"$TrgType{Name}\"\n",
+			"Libraries: \"@LibList\"\n",
+			"Debug Libraries: \"@DebugLibList\"\n",
+			"Static Libraries: \"@StatLibList\"\n",
+			"Uids: \"@UidList\"\n",
+			"BuildVariants: \"@{$Plat{Blds}}\"\n",
+			"TargetMakeFile: \"$MAKEFILE\"\n",
+			"UserIncludes: \"<Source Dir> @UserIncPaths\"\n",
+			"SystemIncludes: \"@SysIncPaths\"\n"
+		;
+
+	if (%FeatureVariantInfo)
+		{
+		print 
+			"Feature Variant Name: \"$FeatureVariantInfo{NAME}\"\n",
+			"Feature Variant SystemIncludes: \"@{$FeatureVariantInfo{BUILD_INCLUDES}}\"\n",
+			"Feature Variant HRH file: \"$FeatureVariantInfo{VARIANT_HRH}\"\n";
+
+		foreach my $bld (@{$Plat{Blds}})
+			{
+			print "Feature Variant $bld Label: \"".$FeatureVariantInfo{$bld."_LABEL"}."\"\n";			
+			}
+		
+		}
+	}
+}
+
+# Special handling for non-default invariant makefiles without FEATUREVARIANT in the MMP file
+# In this situation the default variant makefle is just included into the variant makefile
+# modified start: makefile improvement 
+if ($TrgType{Basic} =~ /^(EXEDLL|EXE|DLL|LIB)$/ && %FeatureVariantInfo && $FeatureVariantInfo{INVARIANT})
+	{
+	$MAKEFILE =~ s/([^.]*$)/DEFAULT/;
+# modified by SV start: makefile improvement 
+		if( $FeatureVariantInfo{NAME} !~ /^default$/i)
+			{
+				print "not creating makefile for  : $FeatureVariantInfo{NAME}\n" if ($Options{v});
+			}
+# modified by SV end: makefile improvement 
+	if(-e $MAKEFILE )
+		{
+		my $mmp_time = -M $MMPFILE;
+		my $makefile_time = -M $MAKEFILE;
+		if( $makefile_time <= $mmp_time)
+			{
+			exit;
+			}
+		}
+	undef %FeatureVariantInfo;
+	%FeatureVariantInfo = featurevariantparser->GetVariant("default");
+	$FeatureVariantInfo{INVARIANT} = 1;
+	$FeatureVariantInfo{UREL_LABEL} = 'INVARIANT';
+	$FeatureVariantInfo{UDEB_LABEL} = 'INVARIANT';
+	}
+# modified by SV start: makefile improvement 
+	elsif(%FeatureVariantInfo)
+	{
+	my $variant_info = &Path_Chop($E32env::Data{BldPath}).$Path{BldInfPath}."\\FeatureVariantInfo\\".$Plat{Real}."\\".$Plat{Real}.".".$FeatureVariantInfo{NAME}.".".&Path_Split('Base', $MMPFILE).".info";
+	#if mmp file does not exists
+	$variant_info = &Path_Chop($E32env::Data{BldPath}).$Path{BldInfPath}."\\FeatureVariantInfo\\".$Plat{Real}."\\".$Plat{Real}.".".$FeatureVariantInfo{NAME}.".info" if ! -e $MMPFILE;
+# modified by SV end: makefile improvement 
+	my $variant_key = "VARIANT_PLAT_NAME_".&Path_Split('Base', $MMPFILE);
+	$variant_info_new = $variant_info.".tmp";
+	open VARIANTINFOR_NEW, ">$variant_info_new" or die "ERROR: Can't open or create file \"$variant_info_new\"\n";
+
+	# Open the variant infor file
+	open VARIANTINFOR, "<$variant_info" or die "ERROR: Can't open file \"$variant_info\"\n";
+	while(<VARIANTINFOR>)
+		{
+		if(/^$variant_key/)
+			{
+			print VARIANTINFOR_NEW $variant_key.":=".$FeatureVariantInfo{NAME}."\n";
+			}
+			else
+			{
+			print VARIANTINFOR_NEW $_;
+			}
+		}
+	# Close and cleanup
+	close VARIANTINFOR or die "ERROR: Can't close file \"$variant_info\"\n";
+	close VARIANTINFOR_NEW or die "ERROR: Can't close file \"$variant_info\"\n";
+	unlink $variant_info;
+	rename($variant_info_new, $variant_info);
+	if ($Options{v}) {
+		print "Successful Variant Infor File Creation\n";
+
+		}
+	}
+# modified end: makefile improvement 
+
+# modified by SV start: makefile improvement 
+if(-e $MAKEFILE)
+{
+	my $mmp_time = -M $MMPFILE;
+	my $makefile_time = -M $MAKEFILE;
+	if( $makefile_time <= $mmp_time)
+	{
+		exit;
+	}
+}
+# modified by SV end: makefile improvement 
+
+my $CurAifRef;
+my $CurBaseObj;
+my $CurBld;
+my $CurBitMapRef;
+my @CurDepList;
+my $CurDoc;
+my $CurResrc;
+my $CurResourceRef;
+my $CurSrc;
+my $CurSrcPath;
+my $ResrcIsSys;
+# modified start: makefile improvement 
+my %CurSrcSet;
+# modified end: makefile improvement 
+
+# Set up library paths getting the backend module to help if it wants to
+{
+	&InitLinkPaths();
+}
+
+{
+
+	# LOOPING SECTION
+	#----------------
+	# Load the output module
+	eval { &Load_ModuleL('OUTPUT'); };
+	die $@ if $@;
+
+ 
+	# Believe include first on the system list. 
+    my $VariantFile=&main::VariantFile();
+    if($VariantFile){
+        my $VariantFilePath = Path_Split('Path',$VariantFile);
+        chop($VariantFilePath);
+
+        push(@SysIncPaths, $VariantFilePath);
+    }
+
+	my $ResourceVariantFile=&main::ResourceVariantFile();
+    if($ResourceVariantFile){
+        my $ResourceVariantFilePath = Path_Split('Path',$ResourceVariantFile);
+        chop($ResourceVariantFilePath);
+
+        push(@ResourceSysIncPaths, $ResourceVariantFilePath);
+    }
+    
+    ## Add default system include info for TOOLS2
+    if ($PlatArg eq 'TOOLS2') {    	
+    	push @SysIncPaths , "$E32env::Data{EPOCPath}include\\tools\\stlport";
+    }
+
+	# If the stdcpp keyword is used, or if the target type is STD* ...
+	if ($StdCpp or $TrgType{Name} eq 'STDEXE' or $TrgType{Name} eq 'STDDLL' or $TrgType{Name} eq 'STDLIB') {
+		push @SysIncPaths, $E32env::Data{EPOCPath}."include\\stdapis";
+	}
+
+	&PMStartBldList($Plat{MakeCmd}) if defined &PMStartBldList;
+	my $LoopBld;
+	foreach $LoopBld (@{$Plat{Blds}}) {
+		$CurBld=$LoopBld;
+		&PMBld if defined &PMBld;
+	}
+	undef $CurBld;
+	undef $LoopBld;
+	&PMEndBldList if defined &PMEndBldList;
+
+
+	# Load the Dependency Generator
+	eval { &Load_ModuleL('MAKDEPS'); };
+	die $@ if $@;
+	eval { &Deps_InitL($E32env::Data{EPOCIncPath},@StdIncPaths); };
+	die $@ if $@;
+	if ($Options{v}) {
+		&Deps_SetVerbose;
+	}
+	if ($Plat{UsrHdrsOnly}) {
+		&Deps_SetUserHdrsOnly;
+	}
+
+	if ($Options{nd} || ($ENV{SYMBIANBUILD_DEPENDENCYOFF} && ($ENV{SYMBIANBUILD_DEPENDENCYOFF}==1))) {
+		&Deps_SetNoDependencies
+	}
+	&Deps_SetNoDependencies if(grep /boostlibrary/i, &Mmp_UserIncPaths);
+
+	&Deps_SetUserIncPaths(@UserIncPaths);
+	&Deps_SetSysIncPaths(@ResourceSysIncPaths);
+	&Deps_SetPlatMacros(@{$Plat{Macros}});
+
+	my $prefixFile;
+	$prefixFile = &PMPrefixFile if defined &PMPrefixFile;
+	&Deps_SetPrefixFile($prefixFile) if $prefixFile;
+
+#	Start source list - bitmaps, resources, .AIF files, documents, sources.
+
+	# If feature variants are in use, dependency analysis may use a different overall variant file to that for "straight" source
+	my $curDepOSVariantFile = &Deps_GetOSVariantFile();
+	&Deps_SetOSVariantFile($ResourceVariantFile);
+
+	&PMStartSrcList if defined &PMStartSrcList;
+
+#	start bitmaps
+
+	if ($Options{v}) {
+		print "Starting bitmaps\n";
+	}
+	my $LoopBitMapRef;
+	foreach $LoopBitMapRef (@BitMapStruct) {
+		$CurBitMapRef=$LoopBitMapRef;
+		if ($Options{v}) {
+			print "BitMap: \"$$CurBitMapRef{Trg}\"\n";
+		}
+		&PMBitMapBld if defined &PMBitMapBld;
+	}
+	undef $CurBitMapRef;
+	undef $LoopBitMapRef;
+
+#	end bitmaps
+
+#	start resources
+
+	if ($Options{v}) {
+		print "Starting resources\n";
+	}
+	my $LoopResourceRef;
+	foreach $LoopResourceRef (@ResourceStruct) {
+		$CurResourceRef=$LoopResourceRef;
+		if ($Options{v}) {
+			print "Resource: \"$$CurResourceRef{Trg}\"\n";
+		}
+		eval { @CurDepList=&Deps_GenDependsL($$CurResourceRef{Source}, ("LANGUAGE_$$CurResourceRef{Lang}")); };
+		die $@ if $@;
+		&PMResrcBld if defined &PMResrcBld;
+		undef @CurDepList;
+	}
+	undef $CurResourceRef;
+	undef $LoopResourceRef;
+
+#	end resources
+
+#	start aifs
+
+	if ($Options{v}) {
+		print "Starting aifs\n";
+	}
+
+# Add tools-relative include path to sys includes, to allow for shared include\aiftool.rh
+	use FindBin;
+	$FindBin::Bin =~ /:(.*)\//;
+	my $extraIncPath = $1;
+	$extraIncPath =~ s/\//\\/g;
+	my @SavedResourceSysIncPaths = @ResourceSysIncPaths;
+	push @ResourceSysIncPaths, "$extraIncPath\\INCLUDE";
+	&Deps_SetSysIncPaths(@ResourceSysIncPaths);
+
+	my $LoopAifRef;
+	foreach $LoopAifRef (@AifStruct) {
+		$CurAifRef=$LoopAifRef;
+		if ($Options{v}) {
+			print "Aif: \"$$CurAifRef{Trg}\"\n";
+		}
+		eval { @CurDepList=&Deps_GenDependsL("$$CurAifRef{Source}"); };
+		die $@ if $@;
+		&PMAifBld if defined &PMAifBld;
+		undef @CurDepList;
+	}
+	undef $CurAifRef;
+	undef $LoopAifRef;
+
+	@ResourceSysIncPaths = @SavedResourceSysIncPaths;
+
+#	end aifs
+
+#	start sources
+
+	if ($Options{v}) {
+		print "Starting sources\n";
+	}
+	
+	my $SrcRef;
+	&Deps_SetOSVariantFile($curDepOSVariantFile);
+	&Deps_SetSysIncPaths(@SysIncPaths);
+
+	foreach $SrcRef (@SourceStruct){
+		 $CurSrcPath=$$SrcRef{SrcPath};
+		 $CurSrc=$$SrcRef{CurFile};
+
+		 my @userIncludes = &Mmp_UserIncPaths;
+		 @userIncludes = (@userIncludes, @StringTableUserIncPaths) if (@StringTableUserIncPaths);
+		 unshift (@userIncludes, $CurSrcPath);		 
+
+		 if ($TruePlat{Ext} !~ /\.DSP|\.xml/i)
+		 	{
+			foreach my $buildVariant (@{$Plat{Blds}})
+				{		 		
+				my @macros = &MacroList;
+				@macros = (@macros, @{$BldMacros{$buildVariant}});
+
+				my $checkSourceCommandStore;
+			
+				if ($buildVariant =~ /rel$/i)
+					{
+					$checkSourceCommandStore = \%CheckSourceURELIncludes
+					}
+				else
+					{
+					$checkSourceCommandStore = \%CheckSourceUDEBIncludes
+					}
+				CheckSource_Includes($CurSrcPath.$CurSrc, %$checkSourceCommandStore, $VariantFile, @macros, @userIncludes, @SysIncPaths);
+			}
+		 }
+		 if ($Options{v}) {
+			print "Sourcepath: \"$CurSrcPath\"\n";
+		 }
+		 &PMStartSrc if defined &PMStartSrc;
+
+#			strict depend alt 1 start - call different module function if strict depend flag specified
+			if (((not $MmpFlag{StrictDepend}) || (not defined &PMSrcBldDepend)) && defined &PMSrcDepend) {
+				eval { @CurDepList=&Deps_GenDependsL($CurSrcPath.$CurSrc);};
+				die $@ if $@;
+# modified start: makefile improvement 
+				foreach $srcFile (@CurDepList) {
+					if(not exists($CurSrcSet{$srcFile})){
+						my $srctmp = $srcFile;
+						$CurSrcSet{$srctmp} = 1;
+					}
+				}
+# modified end: makefile improvement 
+				&PMSrcDepend if defined &PMSrcDepend;
+				undef @CurDepList;
+			}
+							
+#			strict depend alt 1 end
+
+			my $LoopBld;
+			foreach $LoopBld (@{$Plat{Blds}}) {
+				$CurBld=$LoopBld;
+				&PMStartSrcBld if defined &PMStartSrcBld;
+
+#				strict depend alt 2 start - call the module function that deals with dependencies generated for each build variant
+				if ($MmpFlag{StrictDepend} && defined &PMSrcBldDepend) {
+					eval { @CurDepList=Deps_GenDependsL($CurSrcPath.$CurSrc,@{$BldMacros{$CurBld}}); };
+					die $@ if $@;
+					&PMSrcBldDepend if defined &PMSrcBldDepend;
+					undef @CurDepList;
+				}
+#				strict depend alt 2 end
+
+				&PMEndSrcBld if defined &PMEndSrcBld;
+			}
+			undef $CurBld;
+			undef $LoopBld;
+			&PMEndSrc if defined &PMEndSrc;
+# modified start: makefile improvement 
+			my $cursrcfile = $CurSrcPath.$CurSrc;
+			if(not exists($CurSrcSet{$cursrcfile})){
+				$CurSrcSet{$cursrcfile} = 1;
+			}
+# modified end: makefile improvement 
+		}
+		undef $CurSrc;
+		undef $CurSrcPath;  
+	
+	
+
+#	end sources
+
+#	start documents
+
+	if ($Options{v}) {
+		print "Starting documents\n";
+	}
+	my $LoopSrcPath;
+	foreach $LoopSrcPath (sort keys %DocHash) {
+		$CurSrcPath=$LoopSrcPath;
+		if ($Options{v}) {
+			print "Sourcepath: \"$CurSrcPath\"\n";
+		}
+		my $LoopDoc;
+		foreach $LoopDoc (sort @{$DocHash{$CurSrcPath}}) {
+			$CurDoc=$LoopDoc;
+			if ($Options{v}) {
+				print "Document: \"$CurDoc\"\n";
+			}
+			&PMDoc if defined &PMDoc;
+		}
+		undef $CurDoc;
+		undef $LoopDoc;
+	}
+	undef $CurSrcPath;
+	undef $LoopSrcPath;
+
+#	end documents
+
+#	rombuild
+
+	my %SpecialRomFileTypes=(
+		KEXT=>'extension[MAGIC]',
+		LDD=>'device[MAGIC]',
+		PDD=>'device[MAGIC]',
+		VAR=>'variant[MAGIC]'
+	);
+	my %KHash1 = (
+		kext=>1,
+		ldd=>1,
+		pdd=>1,
+		var=>1,
+		kdll=>1
+	);
+	my %KHash2 = (
+		primary=>1,
+		variant=>1,
+		extension=>1,
+		device=>1
+	);
+	unless ($TrgType{Basic} =~ /^IMPLIB$/io or $TruePlat{Ext} =~ /\.DSP|\.xml/i) { # change to avoid rombuild target for IDE makefiles
+		&Output("ROMFILE:\n");
+		unless ($Plat{OS} ne 'EPOC32' or $TrgType{Basic} eq 'LIB') {
+			my $ref;
+			foreach $ref (@RomTargets) {
+				my $ABIDir = '##MAIN##';
+				my $RomFileType='file';
+				if ($$ref{FileType}) {	# handle EKERN.EXE and EFILE.EXE with new ROMFILETYPE keyword instead
+					$RomFileType=$$ref{FileType}; # or just do this bit as a custom build makefile
+				}
+				elsif ($CallDllEntryPoints) {
+					$RomFileType='dll';
+				}
+				elsif ($SpecialRomFileTypes{$TrgType{Name}}) {
+					$RomFileType=$SpecialRomFileTypes{$TrgType{Name}};
+				}
+				my $RomPath="sys\\bin\\";
+				if ($$ref{Path}) {
+					$RomPath=$$ref{Path};
+				}
+				elsif ($TrgType{Path}) {
+					$RomPath=$TrgType{Path};
+					$RomPath=~s-z\\(.*)-$1-o;
+				}
+				my $RomFile=$LinkAsBase;
+				if ($$ref{File}) {
+					$RomFile=$$ref{File};
+				}
+				my $RomDecorations='';
+				if ($DataLinkAddress) {
+					$RomDecorations="reloc=$DataLinkAddress";
+				}
+				elsif ($FixedProcess) {
+					$RomDecorations.='fixed';
+				}
+				
+				$ABIDir = '##KMAIN##' if ($KHash1{lc $TrgType{Name}});
+				$ABIDir = '##KMAIN##' if ($KHash2{lc $RomFileType});
+				my $IbyTextFrom="$RomFileType=$E32env::Data{RelPath}$ABIDir\\##BUILD##\\$Trg";
+				my $IbyTextTo="$RomPath$RomFile";
+				my $Spaces= 60>length($IbyTextFrom) ? 60-length($IbyTextFrom) : 1; 
+				&Output("\t\@echo ", $IbyTextFrom, ' 'x$Spaces, "$IbyTextTo $RomDecorations\n");
+			}
+			foreach $ref (@RamTargets) {
+				my $ABIDir = '##MAIN##';
+				$ABIDir = '##KMAIN##' if ($KHash1{lc $TrgType{Name}});
+				my $RomFileType='data';
+				my $RomPath="sys\\bin\\";
+				if ($$ref{Path}) {
+					$RomPath=$$ref{Path};
+				}
+				my $RomFile=$Trg;
+				if ($$ref{File}) {
+					$RomFile=$$ref{File};
+				}
+				my $RomDecorations='attrib=r';
+
+				my $IbyTextFrom="$RomFileType=$E32env::Data{RelPath}$ABIDir\\##BUILD##\\$Trg";
+				my $IbyTextTo="$RomPath$RomFile";
+				my $Spaces= 60>length($IbyTextFrom) ? 60-length($IbyTextFrom) : 1; 
+				&Output("\t\@echo ", $IbyTextFrom, ' 'x$Spaces, "$IbyTextTo $RomDecorations\n");
+			}
+		}
+	}
+#	end rombuild
+
+	&PMEndSrcList if defined &PMEndSrcList;
+}
+
+{
+
+	# open the makefile and write all the text it requires to it if makmake has so far been successful
+	#-------------------------------------------------------------------------------------------------
+	eval { &Path_MakePathL($MAKEFILE); };
+	die $@ if $@;
+	if ($Options{v}) {
+		print "Creating: \"$MAKEFILE\"\n";
+	}
+	open MAKEFILE,">$MAKEFILE" or die "ERROR: Can't open or create file \"$MAKEFILE\"\n";
+	print MAKEFILE &OutText or die "ERROR: Can't write output to file \"$MAKEFILE\"\n";
+	close MAKEFILE or die "ERROR: Can't close file \"$MAKEFILE\"\n";
+	if ($Options{v}) {
+		print "Successful MakeFile Creation\n";
+	}
+}
+
+	
+################ END OF MAIN PROGRAM SECTION #################
+#------------------------------------------------------------#
+##############################################################
+
+
+
+
+
+# SUBROUTINE SECTION
+####################
+
+sub FatalError (@) {
+
+	print STDERR "MAKMAKE ERROR: @_\n";
+	exit 1;
+}
+
+sub Usage () {
+
+		eval { &Load_ModuleL('MAKHELP'); };
+		die $@ if $@; 
+		eval { &Help_Invocation; };
+		die $@ if $@;
+		exit;
+}
+
+sub getEABIDef() {
+	# Preprocess the mmp with ARMv5 platform settings so we can pick up 
+    # EABI specific def file entries etc. 
+    my ($platname)="ARMV5";
+    
+    # get platform info for armv5
+    eval { &Plat_GetL($platname,\%Plat,\%BldMacros); };
+	return $@ if $@;
+	&Mmp_Reset;
+	# process 
+    
+    # set package to ignore warnings about missing .def file. 
+    &Mmp_SetIgnoreMissingDef;
+    
+    eval { &Mmp_ProcessL($E32env::Data{EPOCPath}, $MMPFILE, \%Plat, $FeatureVariantInfo{BUILD_INCLUDES}); };
+	return $@ if $@;
+	my %EABIDef=%{&Mmp_Def};
+	
+    # handle case that def file doesn't exist -> Simply set to ""
+    my $EABIDefFile = "$EABIDef{Path}$EABIDef{Base}$EABIDef{Ext}";;
+   	unless (-e "$EABIDefFile") {
+        $EABIDefFile = "";
+	}
+    
+    return $EABIDefFile;
+	
+}
+
+sub SetVarsFromMmp ($) {
+
+	my ($platname)=@_;
+    
+	if($platname eq "GCCXML") {
+        $EABIDef = getEABIDef();
+    } 
+    else {
+        $EABIDef = "";
+    }
+
+	# MMP FILE PROCESSING - filter the mmp file content through the GCC preprecessor
+	#-------------------------------------------------------------------------------
+	eval { &Plat_GetL($platname,\%Plat,\%BldMacros); };
+	return $@ if $@;
+	&Mmp_Reset;
+
+	if($platname eq "GCCXML" || $platname eq "X86GCC" || $platname eq "X86GMP") {
+	# set package to ignore warnings about missing .def file, this is necessary,
+	# as either EABI .def or GCC .def may not exist, and this shouldn't be reported
+	# as a warning or error. Similarly for x86gcc def files - these are autogenerated.
+	&Mmp_SetIgnoreMissingDef;
+	}
+
+	eval { &Mmp_ProcessL($E32env::Data{EPOCPath}, $MMPFILE, \%Plat, $FeatureVariantInfo{BUILD_INCLUDES}); };
+	return $@ if $@;
+
+	%WarningLevel=&Mmp_WarningLevel;
+	%LinkerOptions=&Mmp_LinkerOptions;
+	$ABI=&Mmp_ABI;
+	@AifStruct=@{&Mmp_AifStruct};
+	$AllowDllData=&Mmp_AllowDllData;
+	$CompressTarget=&Mmp_CompressTarget;
+	$CompressTargetMode=&Mmp_CompressTargetMode;
+	$ASSPExports=&Mmp_ASSPExports;
+	@ASSPLibList=&Mmp_ASSPLibList;
+	@BitMapStruct=@{&Mmp_BitMapStruct};
+	$BuildAsARM=$BuildAsARM || &Mmp_BuildAsARM;
+	$CallDllEntryPoints=&Mmp_CallDllEntryPoints;
+	$Capability=&Mmp_Capability;
+	@CapabilityFlags=&Mmp_CapabilityFlags;
+	$DataLinkAddress=&Mmp_DataLinkAddress;
+	@DebugLibList=@{&Mmp_DebugLibList};
+	%Def=%{&Mmp_Def};
+	%DocHash=%{&Mmp_DocHash};
+	$ExportUnfrozen=&Mmp_ExportUnfrozen;
+	$FirstLib=&Mmp_FirstLib;
+	$FixedProcess=&Mmp_FixedProcess;
+	%HeapSize=%{&Mmp_HeapSize};
+	@LibList=@{&Mmp_LibList};
+	$LinkAs=&Mmp_LinkAs;
+	$LinkAsBase=&Mmp_LinkAsBase;
+	$ExportLibrary=&Mmp_ExportLibrary;
+	$NewLib = &Mmp_NewLib;
+    $NoExportLibrary=&Mmp_NoExportLibrary;
+	%MmpFlag=%{&Mmp_MmpFlag};
+	@PlatTxt2D=&Mmp_PlatTxt2D;
+	$ProcessPriority=&Mmp_ProcessPriority;
+	@RamTargets=&Mmp_RamTargets;
+	@ResourceStruct=@{&Mmp_ResourceStruct};
+	@RomTargets=&Mmp_RomTargets;
+	$SmpSafe=&Mmp_SmpSafe;
+	@SourceStruct=@{&Mmp_SourceStruct};
+	$StackSize=&Mmp_StackSize;
+	@StatLibList=&Mmp_StatLibList;    
+	$StdCpp = &Mmp_StdCpp;
+	$NoStdCpp = &Mmp_NoStdCpp;
+	@SysIncPaths=&Mmp_SysIncPaths;
+	$Trg=&Mmp_Trg;
+	%TrgType=%{&Mmp_TrgType};
+	@UidList=&Mmp_UidList;
+	@UserIncPaths=&Mmp_UserIncPaths;
+	$SrcDbg=&Mmp_SrcDbg;
+	%Version=&Mmp_Version;
+	$SecureId=&Mmp_SecureId;
+	$VendorId=&Mmp_VendorId;
+	%ReplaceOptions=&Mmp_Replace;
+	$ARMFPU=&Mmp_ARMFPU;
+	@StringTable=@{&Mmp_StringTable};
+	$CodePagingTargetMode=&Mmp_CodePagingTargetMode;
+	$DataPagingTargetMode=&Mmp_DataPagingTargetMode;
+	$IsWideCharMain=&Mmp_IsWideCharMain;
+	$IsDebuggable=&Mmp_IsDebuggable;
+
+#	finish defining any macros
+
+	if ($Plat{CPU} eq 'MARM') {
+#		apply the ABI source define - note that it is difficult to define a corresponding
+#		.MMP define since we can't be sure what the ABI is until we've processed the .MMP file,
+#		though we could apply it for generic MARM builds only
+		push @{$Plat{Macros}}, "__MARM_${ABI}__";
+	}
+
+	if ($TrgType{Basic}=~/^(DLL|EXE)$/o) { # this macro may soon be removed
+		push @{$Plat{Macros}},'__'.$TrgType{Basic}.'__';
+	}
+
+#	add the macros defined in the .mmp file
+	push @{$Plat{Macros}}, &Mmp_Macros;
+
+# set up a hash containing the start paths for various things
+	undef %Path;
+
+#	set up ASSP link path - this is the path where the target looks for ASSP-specific import libraries
+        $Path{ASSPLink}="$E32env::Data{LinkPath}$Plat{ASSP}\\";
+
+#	set up build path
+	my $BldInfPath=cwd;
+	$BldInfPath=~s-/-\\-go;						# separator from Perl 5.005_02+ is forward slash
+	$BldInfPath=~s/^(.:)//o;					# remove drive letter
+	$BldInfPath=~s-^(.*[^\\])$-$1\\-o;			# ensure workpath ends with a backslash
+	$Path{BldInfPath} = $BldInfPath;			# Remember the path to bldinf
+	$Path{Bld}=join('', &Path_Chop($E32env::Data{BldPath}), $BldInfPath, &Path_Split('Base',$MMPFILE), "\\$Plat{Real}\\");
+}
+
+sub generateX86GCCDefFile()
+{
+	my ($oldPath, $newPath) = @_;
+	print "Generating X86GCC deffile from $oldPath\n";
+	if (!open(OLDDEF, $oldPath))
+	{
+		print "Warning: Failed to open $oldPath for reading\n".
+		return;
+	}
+	# Force creation of new def file even if one already exists
+	if (!open(NEWDEF, ">$newPath"))
+	{
+		close OLDDEF;
+		print "Warning: Failed to open $newPath for writing\n".
+		return;
+	}
+	while (<OLDDEF>)
+	{
+		chomp;
+		if (/^\s*_ZT(I|V)/ && !/\sABSENT/i)
+	    {
+		# Typeinfo that isn't already absent. Add the ABSENT keyword.
+		    my @frags = split /;/, $_, 2; # 1 or 2 parts depending on the presence of a comment
+		    $frags[0] =~ s/\s*$/ ABSENT /;
+		    $_ = join ';', @frags;
+	    }
+	    else
+	    {
+		# Try to substitute any va_list params with char* (Pc). Ignore if no match
+		s/St9__va_list/Pc/g;
+	    }
+		print NEWDEF "$_\n";	    
+	}
+	close OLDDEF;
+	close NEWDEF;
+	print "Successfully generated $newPath\n";
+}
+
+sub InitLinkPaths() {
+#	set up lib path - this is the path where the target puts it's import library
+
+	my $ABI=&Mmp_ABI;
+
+#	let the build target determine where it puts its import libray and where its links against its imports
+	my $UnderlyingABI=$ABI;
+	$UnderlyingABI=&PMUnderlyingABI($ABI) if defined &PMUnderlyingABI;
+
+	$Path{Lib}="$E32env::Data{LinkPath}";
+	unless ($ASSPExports) {
+		$Path{Lib}.= lc($UnderlyingABI)."\\";
+	} 
+	else {
+		$Path{Lib}.= lc($Plat{ASSP})."\\";
+	}
+
+
+#	set up link path - this is the place where the target looks for ordinary libraries
+	$Path{Link}="$E32env::Data{LinkPath}"."$UnderlyingABI\\";
+
+#	set up stat link path - this is where the target looks for static libraries
+	$Path{StatLink}="$E32env::Data{LinkPath}";
+	if ($Plat{StatLink}) {
+			$Path{StatLink}.=lc($Plat{StatLink})."\\";
+	} else {
+		unless ($Plat{OS} eq 'WINS') {	# WINC and WINS versions of EEXE are different
+			$Path{StatLink}.=lc($ABI)."\\"; # ARM static libraries are currently always ASSP-independent
+		}
+		else {
+			$Path{StatLink}.=lc($Plat{ASSP})."\\"; # WINC static libraries are currently always ASSP-specific
+		}
+	}
+
+#	set up release path
+	$Path{Rel}="$E32env::Data{RelPath}".lc($Plat{Real})."\\";
+	
+}
+
+sub CreateExtraFile ($$) { # takes abs path for source and text
+# allows modules to create extrafiles
+	my ($FILE,$Text)=@_;
+	if ($Options{makemakefile}) {	# only create if making the makefile
+		if ($Options{v}) {
+			print "Creating \"$FILE\"\n";
+		}
+		eval { &Path_MakePathL($FILE); };
+		die $@ if $@;
+		open FILE, ">$FILE" or die "WARNING: Can't open or create \"$FILE\"\n";
+		print  FILE $Text or die "WARNING: Can't write text to \"$FILE\"\n";
+		close FILE or die "WARNING: Can't close \"$FILE\"\n";
+	}
+}
+
+sub ABI () {
+	$ABI;
+}
+sub AddSrc ($$) { # needs abs path for source
+# allows modules to add a source file to the project and have it created if necessary
+	my ($SRCFILE,$Text)=@_;
+	my $SrcPath=&Path_Split('Path',$SRCFILE);
+	my $CurFile=&Path_Split('File',$SRCFILE);
+	my $BaseName=&Path_Split('Base',$SRCFILE);
+	
+	if ((not -e $SRCFILE) || (-M $SRCFILE > -M $MMPFILE)) {
+		# only create the file if it's older than the .MMP file
+		CreateExtraFile($SRCFILE,$Text);
+	}
+	 my %CurSource;
+	 $CurSource{SrcPath}=$SrcPath;
+	 $CurSource{CurFile}=$CurFile;
+	 $CurSource{BaseTrg}=$BaseName;
+	 push @SourceStruct, \%CurSource;
+}
+sub AddPlatMacros (@) {
+# allows modules to add extra macros to the platform macro list
+	push @{$Plat{Macros}},@_;
+}
+sub AifRef () {
+	$CurAifRef;
+}
+sub AifStructRef () {
+	\@AifStruct;
+}
+sub AllowDllData () {
+	$AllowDllData;
+}
+sub CompressTarget () {
+	$CompressTarget;
+}
+sub CompressTargetMode () {
+	$CompressTargetMode;
+}
+sub BuildAsARM () {
+	return 0 if $Options{ithumb};
+	return 1 if $Options{iarm};
+	$BuildAsARM;
+}
+sub ASSPLibList () {
+	@ASSPLibList;
+}
+sub ASSPLinkPath () {
+#	this is the path where the target looks for ASSP-specific import libraries
+	my $Path=$Path{ASSPLink};
+	if ($CurBld) {
+		if ($Plat{OS} eq 'EPOC32') {
+			$Path.="UREL\\";
+		}
+		else {
+			$Path.="UDEB\\";
+		}
+	}
+	$Path;
+}
+sub BaseMak () {
+	&Path_Split('Base',$MAKEFILE);
+}
+sub BaseResrc () {
+	&Path_Split('Base',$CurResrc);
+}
+sub BaseResrcList () {
+	my @ResrcList=&ResrcList;
+	my $Path;
+	foreach $Path (@ResrcList) {
+		$Path=&Path_Split('Base',$Path);
+	}
+	@ResrcList;
+}
+sub BaseSrc () {
+	&Path_Split('Base',$CurSrc);
+}
+sub ExtSrc () {
+	&Path_Split('Ext',$CurSrc);
+}
+sub BaseSrcList () {
+	my @SrcList=&SrcList;
+	my $Path;
+	foreach $Path (@SrcList) {
+		$Path=&Path_Split('Base',$Path);
+	}
+	@SrcList;
+}
+sub BaseSysResrcList () {
+	my @SysResrcList=&SysResrcList;
+	my $Path;
+	foreach $Path (@SysResrcList) {
+		$Path=&Path_Split('Base',$Path);
+	}
+	@SysResrcList;
+}
+sub BaseTrg () {
+	&Path_Split('Base',$Trg);
+}
+sub BitMapRef () {
+	$CurBitMapRef;
+}
+sub BitMapStructRef () {
+	\@BitMapStruct;
+}
+sub Bld () {
+	$CurBld;
+}
+sub BldList () {
+	@{$Plat{Blds}};
+}
+sub BldPath () {
+	my $Path=$Path{"Bld"};
+	if ($CurBld) {
+		$Path.=$FeatureVariantInfo{$CurBld."_LABEL"}."\\" if (%FeatureVariantInfo && !$FeatureVariantInfo{INVARIANT} && $FeatureVariantInfo{$CurBld."_LABEL"});
+		$Path.="$CurBld\\";
+	}
+	$Path;
+}
+sub CallDllEntryPoints () {
+	$CallDllEntryPoints;
+}
+sub Capability () {
+	$Capability;
+}
+sub CapabilityFlags () {
+	@CapabilityFlags;
+}
+sub DataLinkAddress () {
+	$DataLinkAddress;
+}
+sub DataPath () {
+	$E32env::Data{DataPath};
+}
+sub DebugLibList () {
+	@DebugLibList;
+}
+sub DefFile () {
+	"$Def{Path}$Def{Base}$Def{Ext}";
+}
+sub DefFileType () {
+	$Plat{DefFile};
+}
+sub DepList () {
+	sort @CurDepList;
+}
+sub Doc () {
+	$CurDoc;
+}
+sub DocList () {
+	if ($CurSrcPath) {
+		return sort @{$DocHash{$CurSrcPath}};
+	}
+	my @DocList;
+	my $Key;
+	foreach $Key (keys %DocHash) {
+		push @DocList,@{$DocHash{$Key}};
+	}
+	sort @DocList;
+}
+sub EPOCPath () {
+	$E32env::Data{EPOCPath};
+}
+sub EPOCDataPath () {
+	$E32env::Data{EPOCDataPath};
+}
+sub EPOCIncPath () {
+	$E32env::Data{EPOCIncPath};
+}
+sub EPOCRelPath () {
+	$E32env::Data{RelPath};
+}
+sub EPOCSecurePlatform () {
+	$E32env::Data{SecurePlatform};
+}
+sub EPOCToolsPath () {
+	$E32env::Data{EPOCToolsPath};
+}
+sub Exports () {
+	@{$TrgType{Exports}{$Plat{"DefFile"}}};
+}
+sub ExportUnfrozen () {
+	$ExportUnfrozen;
+}
+sub FirstLib () {
+	$FirstLib;
+}
+sub FixedProcess () {
+	$FixedProcess;
+}
+sub BasicTrgType () {
+	$TrgType{Basic};
+}
+sub HeapSize () {
+	%HeapSize;
+}
+sub LibList () {
+	@LibList;
+}
+sub LibPath () {
+#	this is the path where the target puts it's import library
+	my $Path=$Path{Lib};
+	if ($CurBld) {
+		if (($Plat{DefFile} eq 'EABI') || ($Plat{DefFile} eq 'x86gcc') || ($Plat{OS} eq 'TOOLS2')) {
+			$Path.="lib\\";
+		}
+		elsif ($Plat{OS} eq 'EPOC32') {
+			$Path.="urel\\";
+		}
+		else {
+			$Path.="udeb\\";
+		}
+	}
+	$Path;
+}
+sub LinkAs () {
+	$LinkAs;
+}
+sub LinkAsBase () {
+	$LinkAsBase;
+}
+sub ExportLibrary () {
+	$ExportLibrary;
+}
+sub NoExportLibrary () {
+	$NoExportLibrary;
+}
+sub LinkPath () {
+#	this is the place where the target looks for CPU-specific libraries
+	my $Path=$Path{Link};
+	if ($CurBld) {
+		if ($Plat{DefFile} eq 'EABI' || $Plat{DefFile} eq 'x86gcc') {
+			$Path.="LIB\\";
+		}
+		elsif ($Plat{OS} eq 'EPOC32') {
+			$Path.="UREL\\";
+		}
+		else {
+			$Path.="UDEB\\";
+		}
+	}
+	$Path;
+}
+
+sub MacroList ($) {
+	if ($_[0]) {
+	return @{$BldMacros{$_[0]}};
+	}
+	return @{$Plat{Macros}} unless $CurBld;
+	(@{$Plat{Macros}},@{$BldMacros{$CurBld}});
+}
+
+# returns the file containing Variant specific Macros
+sub VariantFile($)
+{
+    return $variantMacroHRHFile;
+}
+# returns the file containing Variant specific Macros, which may differ from the above if feature variants are used
+sub ResourceVariantFile($)
+{
+    return $ResourceVariantMacroHRHFile;
+}
+sub MakeFilePath () {
+	&Path_Split('Path',$MAKEFILE);
+}
+sub MmpFile () {
+	$MMPFILE;
+}
+sub PerlLibPath () {
+	$PerlLibPath;
+}
+sub Plat () {
+	$Plat{Real};
+}
+sub PlatABI () {
+	$Plat{"ABI"};
+}
+sub PlatCompiler () {
+	$Plat{"Compiler"};
+}
+sub PlatName () {
+	$Plat{Name};
+}
+sub PlatOS () {
+	$Plat{OS};
+}
+sub PlatOverrideList () {
+	@PlatOverrideList;
+}
+sub ProcessPriority () {
+	$ProcessPriority;
+}
+sub RelPath () {
+	my $Path=$Path{Rel};
+	if ($CurBld) {
+		$Path .= lc($CurBld)."\\";
+	}
+	$Path;
+}
+sub ResourceRef () {
+	$CurResourceRef;
+}
+sub ResourceStructRef () {
+	\@ResourceStruct;
+}
+sub SetCurBld($) {
+	$CurBld=$_[0];		# used by ide_cw.pm when handling additional platforms
+}
+sub	SetStdIncPaths (@) {
+# allows module to set standard include paths
+	@StdIncPaths=();
+	my $Path;
+	foreach $Path (@_) {
+		$Path=~s-^(.*[^\\])$-$1\\-o if defined($Path);
+		push @StdIncPaths, $Path;	# only place drive letters may appear, up to modules to handle
+	}
+}
+sub Src () {
+	$CurSrc;
+}
+sub SourceStructRef () {
+	\@SourceStruct;		#array of references to hashes of SOURCEPATH => (filename1, filename2, ...)
+	}
+sub SrcList () {
+	my @SrcList;
+    my $KeyRef;
+    foreach $KeyRef (@SourceStruct) {
+            push @SrcList,$$KeyRef{CurFile};
+           } 
+	 @SrcList;
+}
+
+sub SmpSafe () {
+	$SmpSafe;
+}
+
+sub StackSize () {
+	$StackSize;
+}
+sub StatLibList () {
+	@StatLibList;
+}
+sub StatLinkPath () {
+	my $Path=$Path{StatLink};
+	if ($CurBld) {
+		$Path.="$CurBld\\";
+	}
+	$Path;
+}
+sub StdCpp () {
+	$StdCpp;
+}
+sub NoStdCpp () {
+	$NoStdCpp;
+}
+
+sub NewLib () {
+	$NewLib;
+}
+sub SetStatLinkPath($) {
+	($Path{StatLink}) = @_;
+}
+sub SrcPath () {
+	$CurSrcPath;
+}
+sub SysIncPaths () {
+	@SysIncPaths;
+}
+sub ResourceSysIncPaths () {
+	return @ResourceSysIncPaths;
+}
+sub Trg (;$) {
+	# The optional $bld argument permits (U)DEB and (U)REL distinction in situations where $CurBld isn't set/relevant
+	my ($bld) = @_;
+	$bld = $CurBld if (!$bld);
+
+	return "" if !$Trg;
+
+	my $localTrg = $Trg;	
+	my $vinfo = $FeatureVariantInfo{$bld."_LABEL"};
+	$localTrg =~ s/(\.[^\.]+)$/\.$vinfo$1/ if ($bld && %FeatureVariantInfo && !$FeatureVariantInfo{INVARIANT} && $vinfo);
+	return $localTrg;
+}
+sub TrgPath () {
+	$TrgType{Path};
+}
+sub TrgType () {
+	$TrgType{Name};
+}
+# this can probably go as its always 0 now
+sub KernelTrg () {
+	$TrgType{Kernel};
+}
+sub SystemTrg () {
+	$TrgType{System};
+}
+sub UidList () {
+	@UidList;
+}
+sub UserIncPaths () {
+	@UserIncPaths;
+}
+sub SrcDbg () {
+	$SrcDbg;
+}
+sub CompilerOption
+{
+	my $CompOption=$WarningLevel{$_[0]};
+	$CompOption="" if (!defined($CompOption)); 
+	$CompOption;
+}
+sub LinkerOption
+{
+    my $lnkOption = $LinkerOptions{$_[0]};
+    $lnkOption="" if (!defined($lnkOption));
+    $lnkOption;
+}
+
+sub PlatRec () {
+	%Plat;
+}
+
+sub Version() {
+	%Version;
+}
+
+sub SecureId() {
+	$SecureId;
+}
+
+sub VendorId () {
+	$VendorId;
+}
+
+sub EABIDef () {
+	$EABIDef;
+}
+
+sub ReplaceOptions () {
+	my @ReplacementOptions = ();
+	if (defined($ReplaceOptions{$_[0]}))
+	{
+		@ReplacementOptions=@{$ReplaceOptions{$_[0]}};
+	}	
+	@ReplacementOptions;
+}
+
+sub ARMFPU () {
+	$ARMFPU;
+}
+
+sub IsDebuggable () {
+	$IsDebuggable;
+}
+
+sub PlatTxt2D () {
+	@PlatTxt2D;
+}
+
+sub ToolChain () {
+	my $ToolChain = $TruePlat{Toolchain};
+	$ToolChain ="" if(!defined ($TruePlat{Toolchain}) );
+	$ToolChain;
+}
+
+sub StringTables () 
+{
+	@StringTable;
+}
+
+
+#This generates and adds the generated source of the stringtable to the source list so it's included in the binary.
+sub AddStringTables ()
+{
+	if(@StringTable)
+	{
+		foreach my $stringtable (@StringTable)
+		{
+			my %genSrcHash;
+
+			$genSrcHash{SrcPath} = $Path{Bld};
+			$genSrcHash{CurFile} = $stringtable->{BaseTrg}.".cpp";
+			$genSrcHash{BaseTrg} = $stringtable->{BaseTrg};
+
+			push(@SourceStruct, \%genSrcHash) if !$stringtable->{Hdronly};
+
+			# Execute it now.  This can probably be moved into the makefile by adding a suitable rule
+			# to ensure the resource file is generated before the source tries to #include it.
+			my $stPath = $Path{Bld};
+
+			my $stCpp = $stringtable->{BaseTrg}.".cpp";
+			my $stHeader = lc($stringtable->{BaseTrg}).".h";
+			my $stFile = $stringtable->{STFile};
+			my $stOrigin = $stringtable->{STPath};
+			system("perl -S ecopyfile.pl $stOrigin$stFile $stPath$stFile");
+			system("perl -S stringtable.pl $stPath$stFile");
+
+			#If it's an exported header we'll need to export it.
+			if(defined $stringtable->{ExportPath}) 
+			{
+				my $exportpath = $stringtable->{ExportPath};
+
+				system("perl -S ecopyfile.pl $stPath$stHeader $exportpath\\$stHeader");
+
+				push(@UserIncPaths, $exportpath);
+				push(@StringTableUserIncPaths, $exportpath);
+			}
+			#otherwise we just need the path of the generated header to be added 'userinclude'.
+			else 
+			{
+				push(@UserIncPaths, $Path{Bld});
+				push(@StringTableUserIncPaths, $Path{Bld});
+			}
+		}
+	}
+}
+
+sub CheckSourceMMPMetaData () {
+	%CheckSourceMMPMetaData;
+}
+
+sub CheckSourceMMPIncludes () {
+	%CheckSourceMMPIncludes;
+}
+
+sub CheckSourceURELIncludes () {
+	%CheckSourceURELIncludes;
+}
+
+sub CheckSourceUDEBIncludes () {
+	%CheckSourceUDEBIncludes;
+}
+
+sub CodePagingTargetMode() {
+	$CodePagingTargetMode;
+}
+
+sub DataPagingTargetMode() {
+	$DataPagingTargetMode;
+}
+
+sub DebugSwitchUsed () {
+	return 1 if (defined $DebugSwitch);
+	return 0;
+}
+
+sub SymbolicDebugEnabled () {
+	return $DebugSwitch;
+}
+
+sub IsFunctionCallLogging() {
+	$Options{logfc};
+}
+
+sub IsWideCharMain() {
+	return $IsWideCharMain;
+}
+
+sub MmpMacros(){
+	my @mmpMacros=&Mmp_Macros;
+	return @mmpMacros;
+}
+
+sub FeatureVariantInfo()
+	{
+	return %FeatureVariantInfo;
+	}
+
+sub FeatureVariantVMapFile()
+	{
+	return "" if !%FeatureVariantInfo || defined $FeatureVariantInfo{INVARIANT};
+
+	my $target = RelPath().Trg();
+	$target =~ s/\.$FeatureVariantInfo{$CurBld."_LABEL"}//;
+# modified by SV start: makefile improvement 
+	my $vmap = $target. "." . $FeatureVariantInfo{NAME}.".vmap";
+# modified by SV end: makefile improvement 
+
+	eval { &Path_MakePathL($vmap); };	
+
+	if (featurevariantmap->Save($target, $FeatureVariantInfo{$CurBld."_LABEL"}, $FeatureVariantInfo{NAME}, $FeatureVariantInfo{$CurBld."_FEATURES"}, &Mmp_IsFeatureVariant ? [ 'FEATUREVARIANT' ] : undef))
+		{
+		die "ERROR: Couldn't create feature variant map file \"$vmap\".\n";
+		}
+
+	return $vmap;
+	}
+
+sub FeatureVariantBaseTrg()
+	{
+	# In some situations, for example .sym files, we need a feature variant tagged name
+	# based on the normal BaseTrg i.e. root target name but minus extension.
+	my $localBaseTrg = BaseTrg();
+		
+	if (%FeatureVariantInfo && !defined $FeatureVariantInfo{INVARIANT})
+		{
+		$localBaseTrg .= ".".$FeatureVariantInfo{$CurBld."_LABEL"};
+		}
+
+	return $localBaseTrg;
+	}
+
+sub CommandFile()
+	{
+	my $plat = Plat();	
+	$plat .= ".$FeatureVariantInfo{NAME}" if %FeatureVariantInfo;
+	return MakeFilePath().BaseTrg().".$plat.".Bld().".objects.via";
+	}
+
+#Compiler wrapper option support
+sub CompilerWrapperOption()
+{
+  # Return 1 if compiler wrapper option option(-wrap) is specified else return 0	
+  $IsCompilerWrapperOption;
+}
+
+#Proxy wrapper option support
+sub ProxyWrapperOption()
+{
+  # Return 1 if compiler wrapper option option(-wrap) is specified else return 0	
+  $IsProxyWrapperOption;
+}
+# modified start: makefile improvement 
+sub getSrcSet()
+{
+	return \%CurSrcSet;
+}
+# modified end: makefile improvement 
+
+#1 = STDCPP support is available
+#others = STDCPP support is not available
+my $stdcppsupport;
+
+#STDCPP support check (SYMBIAN_OE_LIBSTDCPP)
+#return non-zero means STDCPP support is available,
+#otherwise it's not available
+sub StdCppSupport()
+{
+	return $stdcppsupport if (defined $stdcppsupport);
+	
+	my @hrhMacros = &Variant_GetMacroList;
+	if (grep /^\s*SYMBIAN_OE_LIBSTDCPP\s*$/, @hrhMacros)
+	{
+		$stdcppsupport = 1;
+	}
+	else
+	{
+	    $stdcppsupport = 0;
+	}
+	
+	return $stdcppsupport;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/makmake/mmp.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,2406 @@
+# Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Processes an mmp file and sets up subroutines to return the data
+# 
+#
+
+package Mmp;
+
+require Exporter;
+@ISA=qw(Exporter);
+
+@EXPORT=qw(
+	Mmp_SetVerbose
+	Mmp_ProcessL
+
+	Mmp_ABI
+	Mmp_AifStruct
+	Mmp_AllowDllData
+	Mmp_CompressTarget
+	Mmp_ASSPExports
+	Mmp_ASSPLibList
+	Mmp_BuildAsARM
+	Mmp_BitMapStruct 
+	Mmp_CallDllEntryPoints
+	Mmp_Capability
+	Mmp_CapabilityFlags
+	Mmp_DataLinkAddress
+	Mmp_DebugLibList 
+	Mmp_Def
+	Mmp_DocHash
+	Mmp_ExportUnfrozen
+	Mmp_FirstLib
+	Mmp_FixedProcess
+	Mmp_HeapSize
+	Mmp_LibList 
+	Mmp_LinkAs
+	Mmp_LinkAsBase
+	Mmp_ExportLibrary
+	Mmp_NewLib
+	Mmp_NoExportLibrary
+	Mmp_Macros
+	Mmp_MmpFlag
+	Mmp_PlatTxt2D
+	Mmp_ProcessPriority
+	Mmp_ResourceStruct 
+	Mmp_SmpSafe
+	Mmp_RamTargets
+	Mmp_RomTargets
+	Mmp_SourceStruct 
+	Mmp_StackSize
+	Mmp_StatLibList 
+	Mmp_SysIncPaths
+	Mmp_Trg
+	Mmp_TrgType
+	Mmp_UidList
+	Mmp_UserIncPaths
+	Mmp_SrcDbg
+	Mmp_StdCpp
+	Mmp_NoStdCpp
+	Mmp_WarningLevel
+	Mmp_LinkerOptions
+	Mmp_Reset
+	Mmp_Uids
+	Mmp_Version
+	Mmp_SecureId
+	Mmp_VendorId
+	Mmp_Replace
+	Mmp_ARMFPU	
+	Mmp_SetIgnoreMissingDef 
+	Mmp_StringTable
+	Mmp_CompressTargetMode
+	Mmp_CodePagingTargetMode
+	Mmp_DataPagingTargetMode
+	Mmp_CheckSourceMMPMetaData
+	Mmp_CheckSourceMMPIncludes
+	Mmp_IsWideCharMain
+	Mmp_IsDebuggable
+	Mmp_IsFeatureVariant
+	Mmp_TestedMacros
+);
+
+use strict;
+
+use Genutl;
+use Prepfile;
+use Pathutl;
+use Trgtype;
+use CheckSource;
+use Cwd;
+
+my %ProcessPriorityNames = (
+	LOW=>'Low',
+	BACKGROUND=>'Background',
+	FOREGROUND=>'Foreground',
+	HIGH=>'High',
+	WINDOWSERVER=>'WindowServer',
+	FILESERVER=>'FileServer',
+	REALTIMESERVER=>'RealTimeServer',
+	SUPERVISOR=>'SuperVisor'
+);
+
+my %CapabilityNames;
+
+my %Mode;
+
+my $ABI;
+my @AifStruct;
+my $AllowDllData=0;
+
+use constant COMPRESS => 0;
+use constant NOCOMPRESS => 1;
+my $CompressTarget=COMPRESS;	# compress the target binary (negative logic)
+use constant NOCOMPRESSIONMETHOD => 0;
+use constant INFLATECOMPRESSIONMETHOD => 1;
+use constant BYTEPAIRCOMPRESSIONMETHOD => 2;
+my $CompressTargetMethod=NOCOMPRESSIONMETHOD;   #NONE
+
+my $ASSPABISwitch=0;
+my $ASSPExports=0;
+my @ASSPLibList;
+my @BitMapStruct;
+my $BuildAsARM=0;
+my $CallDllEntryPoints=0;
+my $Capability;
+my @CapabilityFlags=(0,0);
+my %CurSource;
+my $DataLinkAddress='';
+my @DebugLibList;
+my %Def;
+$Def{Path}='';
+$Def{Base}='';
+$Def{Ext}='';
+my %DocHash;
+my $ExportUnfrozen=0;
+my $FirstLib;
+my $FixedProcess=0;
+my %HeapSize;
+my @LangList;
+my @LibList;
+my $LinkAs;
+my $LinkAsBase;
+my $ExportLibrary;
+my $NoExportLibrary;
+my @Macros;
+my %MmpFlag;
+my $NewLib;
+my @PlatTxt2D;
+my $ProcessPriority='';
+my @ResourceStruct;
+my @RamTargets;
+my @RomTargets=({}); # include default
+my $SmpSafe = 0;
+my @SourceStruct;
+my $StackSize='';
+my @StatLibList;
+my $StdCpp = 0;
+my $NoStdCpp = 0;
+my @SysIncPaths;
+my $Trg;
+my %TrgType;
+my @UidList;
+my @UserIncPaths;
+my $SrcDbg=0;
+my %Compiler;
+my %LinkerOptions;
+my %Version;
+my $SecureId;
+my $VendorId;
+my %Replace;
+my $ARMFPU;
+my $IgnoreMissingDef=0;
+my @StringTableStruct;
+my $CodePagingTargetMode;	# 0-N/A, 1-UNPAGED, 2-PAGED
+my $DataPagingTargetMode;	# 0-N/A, 1-UNPAGED, 2-PAGED
+my $WideCharMain=0;
+my $IsDebuggable;	# 0-NON_DEBUGGABLE, 1-DEBUGGABLE,2-DEBUGGABLE_UDEBONLY
+my $FeatureVariant=0;
+use constant NOTPAGED => 0;
+use constant UNPAGED => 1;
+use constant PAGED => 2;
+use constant NON_DEBUGGABLE => 0;
+use constant DEBUGGABLE => 1;
+use constant DEBUGGABLE_UDEBONLY => 2;
+my %CheckSourceMMPMetaData;
+my %CheckSourceMMPIncludes;
+my %mmptestedMacrosHash;
+
+# List of deprecated 2nd UIDs. These are checked in a Secure Platform
+my %deprecatedUIDs=
+    (
+    "0x10005e32" => "Unmigrated FEP detected from use of UID 0x10005e32 ",
+    "0x10004cc1" => "Unmigrated Application Initaliser (CEikLibrary deriver) detected from use of UID 0x10004cc1 ",
+    "0x10003a30" => "Unmigrated Conarc plugin detected from use of UID 0x10003a30",
+    "0x10003a19" => "Unmigrated Recogniser detected from use of UID 0x10003a19",
+    "0x10003a37" => "Unmigrated Recogniser detected from use of UID 0x10003a37",
+    "0x10003a34" => "Unmigrated CTL detected from use of UID 0x10003a34"
+    );
+
+
+sub Mmp_Reset() {
+	undef $ABI;
+	undef @AifStruct;
+	$AllowDllData=0;
+	$CompressTarget=COMPRESS;
+    $CompressTargetMethod=NOCOMPRESSIONMETHOD;
+	$ASSPABISwitch=0;
+	$ASSPExports=0;
+	$BuildAsARM=0;
+	undef @ASSPLibList;
+	undef @BitMapStruct;
+	$CallDllEntryPoints=0;
+	undef $Capability;
+	@CapabilityFlags=(0,0);
+	undef $VendorId;
+	$DataLinkAddress='';
+	undef @DebugLibList;
+	undef %Def;
+	$Def{Path}='';
+	$Def{Base}='';
+	$Def{Ext}='';
+	undef %DocHash;
+	$ExportUnfrozen=0;
+	undef $FirstLib;
+	$FixedProcess=0;
+	undef %HeapSize;
+	undef @LangList;
+	undef @LibList;
+	undef $LinkAs;
+	undef $LinkAsBase;
+	undef $ExportLibrary;
+	undef @Macros;
+	undef %MmpFlag;
+	undef $NewLib;
+	undef @PlatTxt2D;
+	$ProcessPriority='';
+	undef @ResourceStruct;
+	undef @RamTargets;
+	@RomTargets=({}); # include default
+	undef @SourceStruct;   
+	$StackSize='';
+	undef @StatLibList;
+	$SmpSafe = 0;
+	$StdCpp = 0;
+	$NoStdCpp = 0;
+	undef @SysIncPaths;
+	undef $Trg;
+	undef %TrgType;
+	undef @UidList;
+	undef @UserIncPaths;
+	$SrcDbg=0;
+	undef %Compiler;
+	undef %LinkerOptions;
+    undef %Version;
+    $IgnoreMissingDef=0;
+    undef $ARMFPU;
+	undef @StringTableStruct;
+	$CodePagingTargetMode=0;	# default N/A
+	$DataPagingTargetMode=0;	# default N/A
+	$IsDebuggable=0; # Default = 0 (Not debuggable)
+	undef %mmptestedMacrosHash;
+}
+
+BEGIN {
+	$Mode{'Verbose'}=0;
+
+	%CapabilityNames = (
+
+		TCB =>					(1<<0),
+		COMMDD =>				(1<<1),
+		POWERMGMT =>			(1<<2),
+		MULTIMEDIADD =>			(1<<3),
+		READDEVICEDATA =>		(1<<4),
+		WRITEDEVICEDATA =>		(1<<5),
+		DRM =>					(1<<6),
+		TRUSTEDUI =>			(1<<7),
+		PROTSERV =>				(1<<8),
+		DISKADMIN =>			(1<<9),
+		NETWORKCONTROL =>		(1<<10),
+		ALLFILES =>				(1<<11),
+		SWEVENT =>				(1<<12),
+		NETWORKSERVICES =>		(1<<13),
+		LOCALSERVICES =>		(1<<14),
+		READUSERDATA =>			(1<<15),
+		WRITEUSERDATA =>		(1<<16),
+		LOCATION =>				(1<<17),
+		SURROUNDINGSDD =>		(1<<18),
+		USERENVIRONMENT =>		(1<<19),
+#old capability names have zero value
+		ROOT =>				0,
+		MEDIADD =>			0,
+		READSYSTEMDATA =>	0,
+		WRITESYSTEMDATA =>	0,
+		SOUNDDD =>			0,
+		UIDD =>				0,
+		KILLANYPROCESS =>	0,
+		DEVMAN =>			0,
+		PHONENETWORK =>		0,
+		LOCALNETWORK =>		0
+	);
+	my $all=0;
+	foreach (keys %CapabilityNames)
+		{
+		$all = $all | $CapabilityNames{$_};
+		}
+	$CapabilityNames{"ALL"} = $all;
+}
+
+sub Mmp_SetVerbose () {
+	$Mode{'Verbose'}=1;
+}
+
+sub Mmp_SetIgnoreMissingDef() {
+    $IgnoreMissingDef = 1;
+}
+
+sub Mmp_ProcessL ($$$$) {
+	my ($EPOCPath, $MMPFILE, $Plat_ref, $BuildIncList)=@_;
+	my $emulator = $$Plat_ref{OS} ne 'EPOC32';
+
+	if ($Mode{Verbose}) {
+		&Prepfile_SetVerbose;
+	}
+
+	# Generate macro usage information and add variant build includes
+	my $options = '-dU';
+	foreach ( @$BuildIncList )
+		{
+		$options .= ' -I ' . &Path_PrefixWithDriveAndQuote($_);
+		}
+
+#	preprocess the project description file
+	my @Mmp2D;
+	Prepfile_SetCmdOptions($options);
+	eval { &Prepfile_ProcessL(\@Mmp2D, $MMPFILE, &main::VariantFile(), @{$$Plat_ref{MmpMacros}}); };
+	Prepfile_SetCmdOptions('');
+	die $@ if $@;
+
+	my @checkSourceMacros;
+	foreach (@{$$Plat_ref{MmpMacros}}) {
+		$_=uc $_;
+		push @checkSourceMacros, " $_=_____$_";
+	}
+
+	my $current = cwd;
+	$current =~ s/\//\\/g;
+	$current =~ s/^[a-zA-Z]://;
+
+	# Mimic what the current parsing routine does in terms of include paths and .mmp files
+	my @checkSourceUserIncludePaths;
+	push @checkSourceUserIncludePaths, "$ENV{EPOCROOT}epoc32\\include";
+	push @checkSourceUserIncludePaths, "\.";
+	push @checkSourceUserIncludePaths, $current;
+	my @checkSourceSystemIncludePaths = ();
+
+	CheckSource_Includes($MMPFILE, %CheckSourceMMPIncludes, &main::VariantFile(), @checkSourceMacros, @checkSourceUserIncludePaths, @checkSourceSystemIncludePaths, $CheckSource_NoUserSystemDistinction);
+
+	my $NoStrictDef=0;
+	my $TrgPath='';
+	my $TrgType;
+
+	my $MmpPath=&Path_Split('Path', $MMPFILE);
+
+	my @MmpDie=();
+	my @MmpWarn=();
+	my @MmpDiagnostic=();
+	my @MmpMigrationNote=();
+
+	my (%CheckAif, %CheckASSPLib, %CheckDoc, %CheckLang, %CheckLib, %CheckMacro, %CheckResrc, %CheckSrc, %CheckStatLib, %CheckSysInc, %CheckSysResrc, %CheckUserInc);
+
+	my ($CheckDef);
+
+	my ($CheckRamTargets, $CheckRomTargets);
+
+	my ($OtherPlatSwitch, $PlatTxtSwitch);
+
+	my (%CurBitMap, $CurBitMapSrcPath);
+	$CurBitMapSrcPath=$MmpPath;
+
+	my (%CurResource, %ResourceCheckLang);
+
+	my %CurStringTable;
+	my ($CurSrcPath, $MmpMacro, $Line);
+	$CurSrcPath=$MmpPath;
+
+#	include the .MMP file as a document
+	@{$DocHash{$MmpPath}}=(&Path_Split('File', $MMPFILE));
+	$CheckDoc{$MMPFILE}='zero - specified by default';
+
+# process the data structure
+	my $CurFile=$MMPFILE;
+	LINE: foreach $Line (@Mmp2D) {
+		my $LineNum=shift @$Line;
+		$_=shift @$Line;
+		if ($LineNum eq '#') {
+			$CurFile=$_;
+			next LINE;
+		}
+
+		# Get details of tested macros affecting the MMP file
+		# We get this from -dU preprocessor option
+		if (/^#define$/ && "@$Line" =~ /^(\w+(?:\([^\)]*\))?)(?:\s(\S.*?))?\s*$/)
+			{
+			# Record macro details for defined tested macro
+			$mmptestedMacrosHash{$1} = $2 ? "\'$2\'" : 'defined';
+			next LINE;
+			}
+		elsif (/^#undef$/)
+			{
+			# Record macro details for undefined tested macro
+			$mmptestedMacrosHash{"@$Line"} = 'undefined';
+			next LINE;
+			}
+				
+		$CurFile = &Path_Norm ($CurFile);
+		
+		$_=uc $_;
+
+		my $mainElement = $_;
+		
+		if ($PlatTxtSwitch) {
+			if (/^END$/o) {
+				$PlatTxtSwitch=0;
+				next LINE;
+			}
+			push @PlatTxt2D, [ "$CurFile($LineNum)", $_, @$Line ];
+			next LINE;
+		}
+		if ($OtherPlatSwitch) {
+			if (/^END$/o) {
+				$OtherPlatSwitch=0;
+				next LINE;
+			}
+			next LINE;
+		}
+		# ----------- handle body of START BITMAP ... END -------------
+		if (%CurBitMap) {
+			if (/^SOURCE$/o) {
+				unless (@$Line>1) {
+					push @MmpDie, "$CurFile($LineNum) : Not enough arguments for Bitmap keyword SOURCE\n";
+				}
+				my $cldepth = shift @$Line;
+				my @ClDepths = split(/,/, $cldepth);
+				foreach (@ClDepths) {
+					$_ = lc $_; # bmconv can't handle upper-case 'C's
+					unless (/^c?\d\d?a?$/o) {
+						push @MmpDie, "$CurFile($LineNum) : BITMAP color depth \"$_\" - unexpected format\n";
+					}
+				}
+				@ClDepths = (@ClDepths) x @$Line;	# make a sufficiently long list of color depths
+				foreach (@$Line) {
+					CheckSource_MetaData(%CheckSourceMMPMetaData, $CurFile, "BITMAP SOURCE", $_, $LineNum, $CheckSource_PhysicalCheck, $CurBitMapSrcPath);
+					$_ = &Path_Norm($_);
+					
+					$_=lc $_;	# bmconv generates a header with case-sensitive enums
+					my $bitmap = "$CurBitMapSrcPath$_";
+					push @{$CurBitMap{Source}}, { # sources must be kept in order
+						Src=>$bitmap,
+						ClDepth=>shift @ClDepths	# take next color depth from the list
+					};
+					unless (-e $bitmap) {
+						push @MmpWarn, "$CurFile($LineNum) : BITMAP source \"$CurBitMapSrcPath$_\" not found\n";
+					}
+				}
+				next LINE;
+			}
+			if (/^END$/o) {
+				$CurBitMapSrcPath=$MmpPath;
+				my %BitMap=%CurBitMap;
+				undef %CurBitMap;
+				push @BitMapStruct, \%BitMap;
+				next LINE;
+			}
+			if (/^SOURCEPATH$/o) {
+				unless ($CurBitMapSrcPath=shift @$Line) {
+					push @MmpDie, "$CurFile($LineNum) : No path specified with Bitmap keyword SOURCEPATH\n";
+					next LINE;
+				}
+				CheckSource_MetaData(%CheckSourceMMPMetaData, $CurFile, "BITMAP SOURCEPATH", $CurBitMapSrcPath, $LineNum, $CheckSource_PhysicalCheck);
+				$CurBitMapSrcPath = &Path_Norm($CurBitMapSrcPath);
+				
+				$CurBitMapSrcPath=~s-^(.*[^\\])$-$1\\-o;   # ensure path ends with a backslash
+				$CurBitMapSrcPath=&Path_MakeAbs($CurFile,$CurBitMapSrcPath);
+				if (@$Line) {
+					push @MmpWarn, "$CurFile($LineNum) : Too many arguments for Bitmap keyword SOURCEPATH\n";
+				}
+				next LINE;
+			}
+			if (/^HEADER$/o) {
+				if ($CurBitMap{Hdr}) {
+					push @MmpWarn, "$CurFile($LineNum) : Bitmap HEADER already specified at line $CurBitMap{Hdr}\n";
+					next LINE;
+				}
+				$CurBitMap{Hdr}="$CurFile($LineNum)";
+				if (@$Line) {
+					push @MmpWarn, "$CurFile($LineNum) : Bitmap keyword HEADER takes no arguments\n";
+				}
+				next LINE;
+			}
+
+
+			if (/^TARGETPATH$/o) {
+				if ($CurBitMap{TrgPath}) {
+					push @MmpWarn, "$CurFile($LineNum) : Bitmap TARGETPATH already specified\n";
+					next LINE;
+				}
+				unless ($CurBitMap{TrgPath}=shift @$Line) {
+					push @MmpDie, "$CurFile($LineNum) : No path specified with Bitmap keyword TARGETPATH\n";
+					next LINE;
+				}
+				CheckSource_MetaData(%CheckSourceMMPMetaData, $CurFile, "BITMAP TARGETPATH", $CurBitMap{TrgPath}, $LineNum);
+				$CurBitMap{TrgPath} = &Path_Norm($CurBitMap{TrgPath});
+
+				$CurBitMap{TrgPath}=~s-^\\(.*)$-$1-o;        # remove leading backslash, if any
+				$CurBitMap{TrgPath}=~s-^(.*[^\\])$-$1\\-o;   # ensure path ends with a backslash
+				$CurBitMap{TrgPath}="z\\$CurBitMap{TrgPath}";
+				if (@$Line) {
+					push @MmpWarn, "$CurFile($LineNum) : Too many arguments for Bitmap keyword TARGETPATH\n";
+				}
+				next LINE;
+			}
+			push @MmpWarn, "$CurFile($LineNum) : Unrecognised Bitmap Keyword \"$_\"\n";
+		}
+		
+		# ----------- handle body of START RESOURCE ... END -------------
+		if (%CurResource) {
+			if (/^END$/o) {
+				$CurResource{SrcPath}=$CurSrcPath;
+				my %Resource=%CurResource;
+				undef %CurResource;
+				push @ResourceStruct, \%Resource;
+				undef %ResourceCheckLang;
+				next LINE;
+			}
+			if (/^HEADER$/o) {
+				if ($CurResource{Hdr}) {
+					push @MmpWarn, "$CurFile($LineNum) : Resource HEADER already specified at line $CurResource{Hdr}\n";
+					next LINE;
+				}
+				elsif ($CurResource{Hdronly}) {
+					push @MmpWarn, "$CurFile($LineNum) : Resource HEADERONLY already specified at line $CurResource{Hdr}\n";
+					next LINE;
+				}
+				$CurResource{Hdr}="$CurFile($LineNum)";
+				if (@$Line) {
+					push @MmpWarn, "$CurFile($LineNum) : Resource keyword HEADER takes no arguments\n";
+				}
+				next LINE;
+			}
+			if (/^HEADERONLY$/o) {
+				if ($CurResource{Hdronly}) {
+					push @MmpWarn, "$CurFile($LineNum) : Resource HEADERONLY already specified at line $CurResource{Hdr}\n";
+					next LINE;
+				}
+				elsif ($CurResource{Hdr}) {
+					push @MmpWarn, "$CurFile($LineNum) : Resource HEADER already specified at line $CurResource{Hdr}\n";
+					next LINE;
+				}
+				$CurResource{Hdronly}="$CurFile($LineNum)";
+				if (@$Line) {
+					push @MmpWarn, "$CurFile($LineNum) : Resource keyword HEADERONLY takes no arguments\n";
+				}
+				next LINE;
+			}
+
+			if (/^LANG$/o) {
+				if (@$Line) {
+					my $Candidate;
+					foreach $Candidate (@$Line) {
+						if ($ResourceCheckLang{$Candidate}) {
+							push @MmpWarn, "$CurFile($LineNum) : Duplicate Language \"$Candidate\" at line $ResourceCheckLang{$Candidate}\n";
+							next; 
+						}
+						push @{$CurResource{Lang}}, $Candidate;
+						$ResourceCheckLang{$Candidate}="$CurFile($LineNum)";
+					}
+					next LINE;
+				}
+				push @MmpWarn, "$CurFile($LineNum) : No Languages specified for keyword LANG\n";
+				next LINE;
+			}
+			if (/^TARGET$/o) {
+				if ($CurResource{BaseTrg}) {
+					push @MmpWarn, "$CurFile($LineNum) : Resource TARGET already specified\n";
+					next LINE;
+				}
+			    my $src=shift @$Line;
+			    CheckSource_MetaData(%CheckSourceMMPMetaData, $CurFile, "RESOURCE TARGET", $src, $LineNum);
+			    
+			    $src = &Path_Norm($src);
+				$CurResource{BaseTrg}=&Path_Split('Base',$src);
+				unless ($CurResource{BaseTrg}) {
+					push @MmpDie, "$CurFile($LineNum) : No name specified with Resource keyword TARGET\n";
+					next LINE;
+				}
+				if (@$Line) {
+					push @MmpWarn, "$CurFile($LineNum) : Too many arguments for Resource keyword TARGET\n";
+				}
+				next LINE;
+			}
+			if (/^TARGETPATH$/o) {
+				if ($CurResource{TrgPath}) {
+					push @MmpWarn, "$CurFile($LineNum) : Resource TARGETPATH already specified\n";
+					next LINE;
+				}
+				unless ($CurResource{TrgPath}=shift @$Line) {
+					push @MmpDie, "$CurFile($LineNum) : No path specified with Resource keyword TARGETPATH\n";
+					next LINE;
+				}
+				CheckSource_MetaData(%CheckSourceMMPMetaData, $CurFile, "RESOURCE TARGETPATH", $CurResource{TrgPath}, $LineNum);
+				$CurResource{TrgPath} = &Path_Norm($CurResource{TrgPath});
+				
+				$CurResource{TrgPath}=~s-^\\(.*)$-$1-o;        # remove leading backslash, if any
+				$CurResource{TrgPath}=~s-^(.*[^\\])$-$1\\-o;   # ensure path ends with a backslash
+				$CurResource{TrgPath}="z\\$CurResource{TrgPath}";
+				if (@$Line) {
+					push @MmpWarn, "$CurFile($LineNum) : Too many arguments for Resource keyword TARGETPATH\n";
+				}
+				next LINE;
+			}
+			if (/^UID$/o) {
+				if (@$Line) {
+					if (scalar @$Line>2) {
+						push @MmpWarn, "$CurFile($LineNum) : Can't specify more than 2 Uids\n";
+						next LINE;
+					}
+					foreach (@$Line) {
+						$_=&Genutl_AnyToHex($_);
+						if (defined $_) {
+							push @{$CurResource{Uids}}, $_;
+							next;
+						}
+						push @MmpDie, "$CurFile($LineNum) : Uid doesn't fit expected number format\n";
+						next LINE;
+					}
+					next LINE;
+				}
+				push @MmpWarn, "$CurFile($LineNum) : No Uids specified for Resource keyword UID\n";
+				next LINE;
+			}
+			if (/^DEPENDS$/o) {
+				# Note that DEPENDS lines are tolerated, but ignored - these are only relevant to build systems
+				# other than ABLD
+				next LINE;
+			}
+			
+			push @MmpWarn, "$CurFile($LineNum) : Unrecognised Resource Keyword \"$_\"\n";
+		}
+		if (/^WCHARENTRYPOINT$/o) {
+			if (@$Line) {
+				push @MmpWarn, "$CurFile($LineNum) : Keyword $_ takes no arguments\n";
+			}
+			if ($TrgType=~/^STDEXE$/io) {
+				$WideCharMain=1;	
+			}
+			else{
+				push @MmpWarn, "$CurFile($LineNum) : WCHARENTRYPOINT is supported only for Target Type STDEXE\n";
+			}
+			next LINE;
+		}
+		# ----------- handle body of START STRINGTABLE ... END -------------
+		if(%CurStringTable)
+		{	
+			if (/^END$/o) {
+				my %stringtable = %CurStringTable;
+				push @StringTableStruct, \%stringtable;
+				undef %CurStringTable;
+				next LINE;
+			}
+			if (/^EXPORTPATH/o) {
+				if (scalar @$Line != 1) {
+					push @MmpDie, "$CurFile($LineNum) : Wrong number of arguments for EXPORTPATH\n";
+				} 
+				if(defined $CurStringTable{ExportPath})	{
+					push @MmpDie, "$CurFile($LineNum) : Redefinition of EXPORTPATH\n";
+				}
+				else {
+				    my $src=shift @$Line;
+					$CurStringTable{ExportPath} = $src;
+
+					CheckSource_MetaData(%CheckSourceMMPMetaData, $CurFile, "STRINGTABLE EXPORTPATH", $CurStringTable{ExportPath}, $LineNum);
+					
+					$CurStringTable{ExportPath} = &Path_Norm($CurStringTable{ExportPath});					
+
+					$CurStringTable{ExportPath} =~ s/\\$//o;   # ensure path doesn't end with a backslash (cl_generic.pm will add one)
+					$CurStringTable{ExportPath} = &Path_MakeEAbs($EPOCPath,$CurFile,$CurStringTable{ExportPath});
+
+				}
+				next LINE;
+			}
+			if (/^HEADERONLY$/o) {
+				if ($CurStringTable{Hdronly}) {
+					push @MmpWarn, "$CurFile($LineNum) : Stringtable HEADERONLY already specified\n";
+					next LINE;
+				}
+				$CurStringTable{Hdronly}="$CurFile($LineNum)";
+				if (@$Line) {
+					push @MmpWarn, "$CurFile($LineNum) : Stringtable keyword HEADERONLY takes no arguments\n";
+				}
+				next LINE;
+			}
+		}
+		# ----------- handle top-level MMP file -------------------	
+		if (/^START$/) {
+			unless ($_=uc shift @$Line) {
+				push @MmpWarn, "$CurFile($LineNum) : No Argument specified for START block\n";
+				next LINE;
+			}
+			foreach $MmpMacro (@{$$Plat_ref{MmpMacros}}) {
+				if ($_ eq $MmpMacro) {
+					$PlatTxtSwitch="$CurFile($LineNum)";
+					next LINE;
+				}
+			}
+			if ($_ eq 'BITMAP') {
+				unless ($CurBitMap{Trg}=shift @$Line) {
+					push @MmpWarn, "$CurFile($LineNum) : No Bitmap Target specified\n";
+					$CurBitMap{Trg}='NoTargetSpecified';
+				}
+				if (@$Line) {
+					push @MmpWarn, "$CurFile($LineNum) : Too many arguments for START BITMAP clause\n";
+				}
+
+				CheckSource_MetaData(%CheckSourceMMPMetaData, $CurFile, "START BITMAP", $CurBitMap{Trg}, $LineNum);
+				$CurBitMap{Trg} = &Path_Norm($CurBitMap{Trg});
+				next LINE;
+			}
+			if ($_ eq 'RESOURCE') {
+				if (scalar @$Line != 1) {
+					push @MmpWarn, "$CurFile($LineNum) : Wrong number of arguments for START RESOURCE clause\n";
+				} 
+				else {
+				    my $src=shift @$Line;
+					CheckSource_MetaData(%CheckSourceMMPMetaData, $CurFile, "START RESOURCE", $src, $LineNum, $CheckSource_PhysicalCheck, $CurSrcPath);
+					$src = &Path_Norm($src);
+				    
+					$CurResource{Source}="$CurSrcPath$src";
+				}
+
+				
+				next LINE;
+			}
+			if ($_ eq 'STRINGTABLE') {
+				if (scalar @$Line != 1) {
+					push @MmpWarn, "$CurFile($LineNum) : Wrong number of arguments for START STRINGTABLE clause\n";
+				} 
+				else {
+				    my $Candidate = shift @$Line;
+				    CheckSource_MetaData(%CheckSourceMMPMetaData, $CurFile, "START STRINGTABLE", $Candidate, $LineNum, $CheckSource_PhysicalCheck, $CurSrcPath);
+					$Candidate = &Path_Norm($Candidate);
+				    
+					$Candidate =~ s/^\\//;	# remove leading \, if any	
+					$CurStringTable{BaseTrg}=&Path_Split('Base',$Candidate);
+					my $path=&Path_Split('Path',$Candidate);
+					if($path){
+					  $CurStringTable{STPath}=&Path_MakeAbs($CurSrcPath,&Path_Split('Path',$Candidate));
+					}
+					else {
+					  $CurStringTable{STPath}=$CurSrcPath;
+					}
+					$CurStringTable{STFile}=&Path_Split('File',$Candidate);
+
+				}
+				next LINE;
+			}
+			$OtherPlatSwitch="$CurFile($LineNum)";
+			next LINE;
+		}
+
+		if (/^AIF$/o) {
+			my ($trg, $dir, $file, $clDepth, @bitmaps)=@$Line;
+			unless ($file) { # bitmaps aren't essential
+				push @MmpDie, "$CurFile($LineNum) : Not enough arguments for keyword AIF\n";
+				next LINE;
+			}
+			my %Data;
+			$Data{Trg} = $trg;	# Defect: may include directory
+			$dir=~s-^(.*[^\\])$-$1\\-o;   # ensure path ends with a backslash
+			$Data{Source}=&Path_MakeAbs($CurFile, "$dir$file");
+			unless (-e "$Data{Source}") {
+				push @MmpWarn, "$CurFile($LineNum) : AIF source \"$Data{Source}\" not found\n";
+			}
+			if ($CheckAif{$Data{Trg}}) {
+				push @MmpDie, "$CurFile($LineNum) : Duplicate Aif \"$Data{Trg}\" at line $CheckAif{$Data{Trg}}\n";
+				next LINE;
+			}
+			$CheckAif{$Data{Trg}}="$CurFile($LineNum)";
+			push @AifStruct, \%Data;
+			next LINE unless (@bitmaps);
+			# handle bitmaps
+			my @ClDepths = split(/,/, $clDepth);
+			foreach (@ClDepths) {
+				$_ = lc $_; # bmconv can't handle upper-case 'C's
+				unless (/^c?\d\d?$/o) {
+					push @MmpDie, "$CurFile($LineNum) : AIF color depth \"$_\" - unexpected format\n";
+				}
+			}
+			@ClDepths = (@ClDepths) x @bitmaps;	# make a sufficiently long list of color depths
+			foreach $file (@bitmaps) {
+				if ($file !~ /^\\/) {
+					$file = &Path_MakeAbs($CurFile, "$dir$file");
+				}
+				push @{$Data{BitMaps}}, { # sources must be kept in order
+					Src=>$file,
+					ClDepth=>shift @ClDepths	# take next color depth from the list
+				};
+				unless (-e $file) {
+					push @MmpWarn, "$CurFile($LineNum) : AIF source \"$file\" not found\n";
+				}
+			}
+			next LINE;
+		}
+		if (/^ASSPABI$/o) {
+			if (@$Line) {
+				push @MmpWarn, "$CurFile($LineNum) : Keyword $_ takes no arguments\n";
+			}
+			$ASSPABISwitch=1;
+			next LINE;
+		}
+		if (/^ASSPEXPORTS$/o) {
+			if (@$Line) {
+				push @MmpWarn, "$CurFile($LineNum) : Keyword $_ takes no arguments\n";
+			}
+			$ASSPExports=1;
+			next LINE;
+		}
+		if (/^ASSPLIBRARY$/o) {
+			if (@$Line) {
+				my $Candidate;
+				foreach $Candidate (@$Line) {
+					CheckSource_MetaData(%CheckSourceMMPMetaData, $CurFile, $mainElement, $Candidate, $LineNum);
+					$Candidate = &Path_Norm($Candidate);
+					
+					unless ($emulator or &Genutl_ParseVersionedName(\$Candidate)) {
+						push @MmpWarn, "$CurFile($LineNum) : Bad version in ASSPLIBRARY\n";
+					}
+					if ($CheckASSPLib{$Candidate}) {
+						push @MmpWarn, "$CurFile($LineNum) : Duplicate Library \"$Candidate\" at line $CheckASSPLib{$Candidate}\n";
+						next; 
+					}
+					
+					push @ASSPLibList, $Candidate;
+					$CheckASSPLib{$Candidate}="$CurFile($LineNum)";
+				}
+				next LINE;
+			}
+			push @MmpWarn, "$CurFile($LineNum) : No Libraries specified for keyword ASSPLIBRARY\n";
+			next LINE;
+		}
+		if (/^CAPABILITY$/o) {
+			if (defined($Capability)) {
+				push @MmpWarn, "$CurFile($LineNum) : Attempt to redefine CAPABILITY\n";
+				next LINE;
+			}
+			if (scalar @$Line == 0) {
+				push @MmpWarn, "$CurFile($LineNum) : Wrong number of arguments for CAPABILITY\n";
+				next LINE;
+			}
+			foreach my $capname (@$Line) {
+				my $invert = 0;
+				if ($capname =~ /^-(\w*)/) {
+					$invert = 0xffffffff;
+					$capname = $1;
+				}
+				my $capFlag = 0;
+				if (defined($CapabilityNames{uc $capname})) {
+					$capFlag = $CapabilityNames{uc $capname};
+					if (not $capFlag) {
+						push @MmpDiagnostic, "$CurFile($LineNum) : Use of old capability name, \"$capname\" ignored\n";
+						next;
+					}
+					if ("ALL" eq uc $capname and $invert) {
+						push @MmpWarn, "Capability '-ALL' not allowed";
+						next;
+					}
+				}
+				elsif ("NONE" eq uc $capname) {
+					if($invert) {
+						push @MmpWarn, "Capability '-NONE' not allowed";
+						next;
+					}
+				}
+				else {
+					push @MmpWarn, "$CurFile($LineNum) : Unknown capability \"$capname\" ignored\n";
+					next;
+				}
+				# append name to capability string
+				if (defined($Capability) and not $invert) { $Capability .= "+"; }
+				if($invert) { $Capability .= "-"; }
+				$Capability .= $capname;
+
+				# add capability mask to flags
+				$CapabilityFlags[0] = $CapabilityFlags[0] ^ $invert;
+				$CapabilityFlags[0] = $CapabilityFlags[0] | $capFlag;
+				$CapabilityFlags[0] = $CapabilityFlags[0] ^ $invert;
+				$CapabilityFlags[1] = 0;
+				next;
+			}
+			next LINE;
+		}
+		if (/^DEBUGLIBRARY$/o) {
+			if (@$Line) {
+				my $Candidate;
+				foreach $Candidate (@$Line) {
+					CheckSource_MetaData(%CheckSourceMMPMetaData, $CurFile, $mainElement, $Candidate, $LineNum);
+					$Candidate = &Path_Norm($Candidate);
+					
+					unless ($emulator or &Genutl_ParseVersionedName(\$Candidate)) {
+						push @MmpWarn, "$CurFile($LineNum) : Bad version in DEBUGLIBRARY\n";
+					}
+					if ($CheckLib{$Candidate}) {
+						push @MmpWarn, "$CurFile($LineNum) : Duplicate Library \"$Candidate\" at line $CheckLib{$Candidate}\n";
+						next; 
+					}
+					
+					push @DebugLibList, $Candidate;
+					$CheckLib{$Candidate}="$CurFile($LineNum)";
+				}
+				next LINE;
+			}
+			push @MmpWarn, "$CurFile($LineNum) : No Libraries specified for keyword DEBUGLIBRARY\n";
+			next LINE;
+		}
+		if (/^DEFFILE$/o)  {
+			if ($CheckDef) {
+				push @MmpWarn, "$CurFile($LineNum) : Attempt to redefine DEFFILE\n";
+				next LINE;
+			}
+			$CheckDef=1;
+			unless ($_=shift @$Line) {
+				push @MmpWarn, "$CurFile($LineNum) : No file specified for keyword DEFFILE\n";
+				next LINE;
+			}
+
+			$Def{CheckSource_MMPEntry} = $_;		
+			$Def{CheckSource_LineNumber} = $LineNum;
+			$Def{CheckSource_MMPFile} = $CurFile;
+			
+			$_ = &Path_Norm($_);
+			
+			$Def{Base}=&Path_Split('Base',$_);
+			$Def{Ext}=&Path_Split('Ext',$_);
+			$Def{Path}=&Path_Split('Path',$_);
+			
+			if ($Def{Path}) {
+				$Def{Path}=&Path_MakeEAbs($EPOCPath,$CurFile,$Def{Path});
+			}
+
+			if ($Def{Base} =~ /\{|\}/) {
+				push @MmpDie, "$CurFile($LineNum) : Bad DEFFILE name\n";
+			}
+			next LINE;
+		}
+		if (/^DOCUMENT$/o) {
+			if (@$Line) {
+				my $Candidate;
+				foreach $Candidate (@$Line) {
+					CheckSource_MetaData(%CheckSourceMMPMetaData, $CurFile, $mainElement, $Candidate, $LineNum, $CheckSource_PhysicalCheck, $CurSrcPath);
+					$Candidate = &Path_Norm($Candidate);
+					
+					if ($CheckDoc{"$CurSrcPath$Candidate"}) {
+						push @MmpWarn, "$CurFile($LineNum) : Duplicate Document \"$CurSrcPath$Candidate\" at line ", $CheckDoc{"$CurSrcPath$Candidate"}, "\n";
+						next; 
+					}
+					unless (-e "$CurSrcPath$Candidate") {
+						push @MmpWarn, "$CurFile($LineNum) : DOCUMENT \"$CurSrcPath$Candidate\" not found\n";
+					}
+					
+					push @{$DocHash{$CurSrcPath}}, $Candidate;
+					$CheckDoc{"$CurSrcPath$Candidate"}="$CurFile($LineNum)";
+				}
+				next LINE;
+			}
+			push @MmpWarn, "$CurFile($LineNum) : No Files specified for keyword DOCUMENT\n";
+			next LINE;
+		}
+		if (/^EPOCALLOWDLLDATA$/o) {
+			if (@$Line) {
+				push @MmpWarn, "$CurFile($LineNum) : Keyword $_ takes no arguments\n";
+			}
+			$AllowDllData=1;
+			next LINE;
+		}
+		if (/^ALWAYS_BUILD_AS_ARM$/o) {
+			if (@$Line) {
+				push @MmpWarn, "$CurFile($LineNum) : Keyword $_ takes no arguments\n";
+			}
+			$BuildAsARM=1;
+			next LINE;
+		}
+		if (/^EPOCCALLDLLENTRYPOINTS$/o) {
+			if (@$Line) {
+				push @MmpWarn, "$CurFile($LineNum) : Keyword $_ takes no arguments\n";
+			}
+			$CallDllEntryPoints=1;
+			next LINE;
+		}
+		if (/^EPOCDATALINKADDRESS$/o) {
+			if (@$Line) { 
+				my $temp=&main::Genutl_AnyToHex(shift @$Line);
+				if (defined $temp) {
+					$DataLinkAddress=$temp;
+					next LINE;
+				}
+				push @MmpDie, "$CurFile($LineNum) : Data link address doesn't fit expected number format\n";
+			}
+			push @MmpWarn, "$CurFile($LineNum) : No data link address specified for keyword $_\n";
+			next LINE;
+		}
+		if (/^EPOCFIXEDPROCESS$/o) {
+			if (@$Line) {
+				push @MmpWarn, "$CurFile($LineNum) : Keyword $_ takes no arguments\n";
+			}
+			$FixedProcess=1;
+			next LINE;
+		}
+		if (/^EPOCHEAPSIZE$/o) {
+			if (@$Line) {
+				my $tempMin=&main::Genutl_AnyToHex(shift @$Line);
+				if (defined $tempMin) {
+					if (@$Line) {
+						my $tempMax=&main::Genutl_AnyToHex(shift @$Line);
+						if (defined $tempMax) {
+							$HeapSize{Min}=$tempMin;
+							$HeapSize{Max}=$tempMax;
+							next LINE;
+						}
+						push @MmpDie, "$CurFile($LineNum) : maximum heap size doesn't fit expected number format\n";
+						next LINE;
+					}
+					push @MmpDie, "$CurFile($LineNum) : No maximum heap size specified for keyword $_\n";
+					next LINE;
+				}
+				push @MmpDie, "$CurFile($LineNum) : minimum heap size doesn't fit expected number format\n";
+				next LINE;
+			}
+			push @MmpWarn, "$CurFile($LineNum) : No minimum heap size specified for keyword $_\n";
+			next LINE;
+		}
+		if (/^EPOCPROCESSPRIORITY$/o) {
+			if ($ProcessPriority) {
+				push @MmpWarn, "$CurFile($LineNum) : Attempt to redefine EPOCPROCESSPRIORITY\n";
+				next LINE;
+			}
+			if ($ProcessPriority=shift @$Line) {
+				if (defined($ProcessPriorityNames{uc $ProcessPriority})) {
+					$ProcessPriority = $ProcessPriorityNames{uc $ProcessPriority}; # canonical form
+					next LINE;
+				}
+				push @MmpDie, "$CurFile($LineNum) : ProcessPriority \"$ProcessPriority\" not supported\n";
+				next LINE;
+			}
+			push @MmpWarn, "$CurFile($LineNum) : No Priority specified for keyword EPOCPROCESSPRIORITY\n";
+			next LINE;
+		}
+		if (/^EPOCSTACKSIZE$/o) {
+			if (@$Line) {
+				my $temp=&main::Genutl_AnyToHex(shift @$Line);
+				if (defined $temp) {
+					$StackSize=$temp;
+					next LINE;
+				}
+				push @MmpDie, "$CurFile($LineNum) : Stack size doesn't fit expected number format\n";
+				next LINE;
+			}
+			push @MmpWarn, "$CurFile($LineNum) : No stack size specified for keyword STACKSIZE\n";
+			next LINE;
+		}
+		if (/^COMPRESSTARGET$/o) {
+			if (@$Line) {
+				push @MmpWarn, "$CurFile($LineNum) : Keyword $_ takes no arguments\n";
+			}
+			$CompressTarget=COMPRESS;
+            $CompressTargetMethod=NOCOMPRESSIONMETHOD; # means 'use default'
+			next LINE;
+		}
+		if (/^NOCOMPRESSTARGET$/o) {
+			if (@$Line) {
+				push @MmpWarn, "$CurFile($LineNum) : Keyword $_ takes no arguments\n";
+			}
+			$CompressTarget=NOCOMPRESS;
+            $CompressTargetMethod=NOCOMPRESSIONMETHOD;
+			next LINE;
+		}
+        if (/^INFLATECOMPRESSTARGET$/o) {
+			if (@$Line) {
+				push @MmpWarn, "$CurFile($LineNum) : Keyword $_ takes no arguments\n";
+			}
+            $CompressTarget=COMPRESS;
+			$CompressTargetMethod=INFLATECOMPRESSIONMETHOD;
+			next LINE;
+		}
+		if (/^BYTEPAIRCOMPRESSTARGET$/o) {
+			if (@$Line) {
+				push @MmpWarn, "$CurFile($LineNum) : Keyword $_ takes no arguments\n";
+			}
+            $CompressTarget=COMPRESS;
+			$CompressTargetMethod=BYTEPAIRCOMPRESSIONMETHOD;
+			next LINE;
+		}
+		if (/^EXPORTUNFROZEN$/o) {
+			if (@$Line) {
+				push @MmpWarn, "$CurFile($LineNum) : Keyword $_ takes no arguments\n";
+			}
+			$ExportUnfrozen=1;
+			next LINE;
+		}
+		if (/^FIRSTLIB$/o) {
+			if ($FirstLib) {
+				push @MmpWarn, "$CurFile($LineNum) : Attempt to redefine FIRSTLIB\n";
+				next LINE;
+			}
+			if ($FirstLib=shift @$Line) {
+				CheckSource_MetaData(%CheckSourceMMPMetaData, $CurFile, $mainElement, $FirstLib, $LineNum);
+				$FirstLib = &Path_Norm($FirstLib);
+				next LINE;
+			}
+			
+			push @MmpWarn, "$CurFile($LineNum) : Nothing specified for keyword FIRSTLIB\n";
+			next LINE;
+		}
+		if (/^LANG$/o) {
+			if (@$Line) {
+				my $Candidate;
+				foreach $Candidate (@$Line) {
+					if ($CheckLang{$Candidate}) {
+						push @MmpWarn, "$CurFile($LineNum) : Duplicate Language \"$Candidate\" at line $CheckLang{$Candidate}\n";
+						next; 
+					}
+					push @LangList, $Candidate;
+					$CheckLang{$Candidate}="$CurFile($LineNum)";
+				}
+				next LINE;
+			}
+			push @MmpWarn, "$CurFile($LineNum) : No Languages specified for keyword LANG\n";
+			next LINE;
+		}
+		if (/^LIBRARY$/o) {
+			if (@$Line) {
+				my $Candidate;
+				foreach $Candidate (@$Line) {
+					CheckSource_MetaData(%CheckSourceMMPMetaData, $CurFile, $mainElement, $Candidate, $LineNum);
+					$Candidate = &Path_Norm($Candidate);
+					
+					unless ($emulator or &Genutl_ParseVersionedName(\$Candidate)) {
+						push @MmpWarn, "$CurFile($LineNum) : Bad version in LIBRARY\n";
+					}
+					if ($CheckLib{$Candidate}) {
+						push @MmpWarn, "$CurFile($LineNum) : Duplicate Library \"$Candidate\" at line $CheckLib{$Candidate}\n";
+						next; 
+					}
+					
+					push @LibList, $Candidate;
+					push @DebugLibList, $Candidate;	    # appears in both
+					$CheckLib{$Candidate}="$CurFile($LineNum)";
+				}
+				next LINE;
+			}
+			push @MmpWarn, "$CurFile($LineNum) : No Libraries specified for keyword LIBRARY\n";
+			next LINE;
+		}
+		if (/^LINKAS$/o) {
+			if ($LinkAs) {
+				push @MmpWarn, "$CurFile($LineNum) : Attempt to redefine LINKAS\n";
+				next LINE;
+			}
+			if ($LinkAs=shift @$Line) {
+				next LINE;
+			}
+			push @MmpWarn, "$CurFile($LineNum) : No name specified for keyword LINKAS\n";
+			next LINE;
+		}
+		if (/^EXPORTLIBRARY$/o) {
+			if ($NoExportLibrary) {
+				push @MmpDie, "$CurFile($LineNum) : Can't specify both EXPORTLIBRARY and NOEXPORTLIBRARY\n";
+				next LINE;
+			}
+			if ($ExportLibrary) {
+				push @MmpWarn, "$CurFile($LineNum) : Attempt to redefine EXPORTLIBRARY\n";
+				next LINE;
+			}
+			if ($ExportLibrary=shift @$Line) {
+				CheckSource_MetaData(%CheckSourceMMPMetaData, $CurFile, $mainElement, $ExportLibrary, $LineNum);
+				$ExportLibrary = &Path_Norm($ExportLibrary);
+				$ExportLibrary=&Path_Split('Base',$ExportLibrary);
+				next LINE;
+			}
+			push @MmpWarn, "$CurFile($LineNum) : No name specified for keyword EXPORTLIBRARY\n";
+			next LINE;
+		}
+		if (/^NOEXPORTLIBRARY$/o) {
+			if ($ExportLibrary) {
+				push @MmpDie, "$CurFile($LineNum) : Can't specify both EXPORTLIBRARY and NOEXPORTLIBRARY\n";
+				next LINE;
+			}
+			$NoExportLibrary = 1;
+			next LINE;
+		}
+		if (/^NEWLIB$/o) {
+			if ($NewLib) {
+				push @MmpWarn, "$CurFile($LineNum) : Attempt to redefine NEWLIB\n";
+				next LINE;
+			}
+			if ($NewLib = shift @$Line) {
+				CheckSource_MetaData(%CheckSourceMMPMetaData, $CurFile, $mainElement, $NewLib, $LineNum);
+				$NewLib = &Path_Norm($NewLib);
+				next LINE;
+			}
+			push @MmpWarn, "$CurFile($LineNum) : No library specified for keyword NEWLIB\n";
+			next LINE;
+		}
+		if (/^MACRO$/o) {
+			if (@$Line) {
+				my $Candidate;
+				foreach $Candidate (@$Line) {
+					if ($CheckMacro{$Candidate}) {
+						push @MmpWarn, "$CurFile($LineNum) : Duplicate Macro \"$Candidate\" at line $CheckMacro{$Candidate}\n";
+						next; 
+					}
+					push @Macros, $Candidate;
+					$CheckMacro{$Candidate}="$CurFile($LineNum)";
+				}
+				next LINE;
+			}
+			next LINE; 
+		}
+		if (/^NOSTRICTDEF$/o) {
+			if ($NoStrictDef) {
+				push @MmpWarn, "$CurFile($LineNum) : NOSTRICTDEF already set\n";
+				next LINE;
+			}
+			if (@$Line) {
+				push @MmpWarn, "$CurFile($LineNum) : Keyword NOSTRICTDEF takes no arguments\n";
+			}
+			$NoStrictDef=1;
+			next LINE;
+		}
+		if (/^RAMTARGET$/o) {
+			if ($CheckRamTargets) {
+				push @MmpWarn, "$CurFile($LineNum) : RAM targets already specified at line $CheckRamTargets\n";
+				next LINE;
+			}
+			$CheckRamTargets="$CurFile($LineNum)";
+			unless (@$Line) {
+				push @MmpWarn, "$CurFile($LineNum) : No targets specified for keyword RAMTARGET\n";
+				next LINE;
+			}
+			if ($$Line[0] eq '+') {
+				my %Data=();
+				push @RamTargets, \%Data;	# include default
+				shift @$Line;
+			}
+			my $Elem;
+			foreach $Elem (@$Line) {
+				my %Data=();
+				$Data{File}=&Path_Split('File',$Elem);
+				$Data{Path}=&Path_Split('Path',$Elem);
+				push @RamTargets, \%Data;
+			}
+			next LINE;
+		}
+		if (/^RESOURCE$/o) {
+			if (@$Line) {
+				my $Candidate;
+				foreach $Candidate (@$Line) {			
+					CheckSource_MetaData(%CheckSourceMMPMetaData, $CurFile, $mainElement, $Candidate, $LineNum, $CheckSource_PhysicalCheck, $CurSrcPath);
+					$Candidate = &Path_Norm($Candidate);
+					
+					if ($CheckResrc{$Candidate}) {
+						push @MmpDie, "$CurFile($LineNum) : Duplicate Resource $Candidate at line $CheckResrc{$Candidate}\n";
+						next;
+					}
+					
+					$CheckResrc{$Candidate}="$CurFile($LineNum)";
+					my $source="$CurSrcPath$Candidate";
+					unless (-e $source) {
+						push @MmpWarn, "$CurFile($LineNum) : RESOURCE source \"$source\" not found\n";
+					}
+					
+					$CurResource{BaseTrg}=&Path_Split('Base',$Candidate);
+					$CurResource{Source}=$source;
+					$CurResource{Hdr}="$CurFile($LineNum)";
+					# $CurResource{TrgPath} will be filled in at the end;
+					my %Resource=%CurResource;
+					undef %CurResource;
+					push @ResourceStruct, \%Resource;
+				}
+				next LINE;
+			}
+			push @MmpWarn, "$CurFile($LineNum) : No Resources specified for keyword RESOURCE\n";
+			next LINE; 
+		}
+		if (/^ROMTARGET$/o) {
+			if ($CheckRomTargets) {
+				push @MmpWarn, "$CurFile($LineNum) : ROM targets already specified at line $CheckRomTargets\n";
+				next LINE;
+			}
+			$CheckRomTargets="$CurFile($LineNum)";
+			unless (@$Line) {
+				@RomTargets=();
+				next LINE;
+			}
+			if ($$Line[0] eq '+') {
+				shift @$Line;
+			}
+			else {
+				@RomTargets=(); # remove default
+			}
+			my $Elem;
+			foreach $Elem (@$Line) {
+				my %Data=();
+				$Data{File}=&Path_Split('File',$Elem);
+				$Data{Path}=&Path_Split('Path',$Elem);
+				push @RomTargets, \%Data;
+			}
+			next LINE;
+		}
+		if (/^SMPSAFE$/o) {
+			if (@$Line) {
+				push @MmpWarn, "$CurFile($LineNum) : Keyword $_ takes no arguments\n";
+			}
+			$SmpSafe = 1;
+			next LINE;
+		}
+		if (/^SOURCE$/o) {
+			if (@$Line) {
+				my $Candidate;
+				foreach $Candidate (@$Line) {
+					CheckSource_MetaData(%CheckSourceMMPMetaData, $CurFile, $mainElement, $Candidate, $LineNum, $CheckSource_PhysicalCheck, $CurSrcPath);
+					$Candidate = &Path_Norm($Candidate);
+					
+					$Candidate =~ s/^\\//;	# remove leading \, if any	
+					$CurSource{BaseTrg}=&Path_Split('Base',$Candidate);
+					my $path=&Path_Split('Path',$Candidate);
+					if($path){
+					  $CurSource{SrcPath}=&Path_MakeAbs($CurSrcPath,&Path_Split('Path',$Candidate));
+					}
+					else {
+					  $CurSource{SrcPath}=$CurSrcPath;
+					}
+					$CurSource{CurFile}=&Path_Split('File',$Candidate);
+
+					my %Source=%CurSource;
+					undef %CurSource;
+					push @SourceStruct, \%Source;
+					
+				}
+				next LINE;
+			}
+			push @MmpWarn, "$CurFile($LineNum) : No Sources specified for keyword SOURCE\n";
+			next LINE; 
+		}
+		if (/^SOURCEPATH$/o) {
+			if ($CurSrcPath=shift @$Line) {
+				CheckSource_MetaData(%CheckSourceMMPMetaData, $CurFile, $mainElement, $CurSrcPath, $LineNum, $CheckSource_PhysicalCheck);				
+				$CurSrcPath = &Path_Norm($CurSrcPath);
+				
+				$CurSrcPath=~s-^(.*[^\\])$-$1\\-o;	# in case no terminating backslash
+				$CurSrcPath=&Path_MakeEAbs($EPOCPath,$CurFile,$CurSrcPath);
+				if (-d &Path_Chop($CurSrcPath)) {
+					next LINE;
+				}
+				push @MmpWarn, "$CurFile($LineNum) : SOURCEPATH \"$CurSrcPath\" not found\n";
+				next LINE;
+			}
+			push @MmpDie, "$CurFile($LineNum) : No Source Path specified for keyword SOURCEPATH\n";
+			next LINE;
+		}
+		if (/^STATICLIBRARY$/o) {
+			if (@$Line) {
+				my $Candidate;
+				foreach $Candidate (@$Line) {
+					CheckSource_MetaData(%CheckSourceMMPMetaData, $CurFile, $mainElement, $Candidate, $LineNum);
+					$Candidate = &Path_Norm($Candidate);
+					
+					if ($CheckStatLib{$Candidate}) {
+						push @MmpWarn, "$CurFile($LineNum) : Duplicate Library \"$Candidate\" at line $CheckStatLib{$Candidate}\n";
+						next;
+					}
+					
+					push @StatLibList, $Candidate;
+					$CheckStatLib{$Candidate}="$CurFile($LineNum)";
+				}
+				next LINE;
+			}
+			push @MmpWarn, "$CurFile($LineNum) : No Libraries specified for keyword STATICLIBRARY\n";
+			next LINE;
+		}
+		if (/^STDCPP$/o) {
+			if (@$Line) {
+				push @MmpWarn, "$CurFile($LineNum) : Keyword $_ takes no arguments\n";
+			}
+			$StdCpp=1;
+			next LINE;
+		}
+  		if (/^NOSTDCPP$/o) {
+  			if (@$Line) {
+  				push @MmpWarn, "$CurFile($LineNum) : Keyword $_ takes no arguments\n";
+  			}
+  			$NoStdCpp=1;
+  			next LINE;
+  		}
+		if (/^STRICTDEPEND$/o) {
+			if ($MmpFlag{StrictDepend}) {
+				push @MmpWarn, "$CurFile($LineNum) : STRICTDEPEND already set\n";
+				next LINE;
+			}
+			if (@$Line) {
+				push @MmpWarn, "$CurFile($LineNum) : Keyword STRICTDEPEND takes no arguments\n";
+			}
+			$MmpFlag{StrictDepend}=1;
+			next LINE;
+		}
+		if (/^SYSTEMINCLUDE$/o){
+			if (@$Line) {
+				my $Candidate;
+				foreach $Candidate (@$Line) {
+					CheckSource_MetaData(%CheckSourceMMPMetaData, $CurFile, $mainElement, $Candidate, $LineNum, $CheckSource_PhysicalCheck);
+					$Candidate = &Path_Norm($Candidate);
+					
+					$Candidate=~s-^(.*[^\\])$-$1\\-o;   # ensure path ends with a backslash
+					$Candidate=&Path_MakeEAbs($EPOCPath,$CurFile,$Candidate);
+					if ($CheckSysInc{$Candidate}) {
+						next; 
+					}
+					push @SysIncPaths,$Candidate;
+					$CheckSysInc{$Candidate}="$CurFile($LineNum)";
+					if (-d &Path_Chop($Candidate)) {
+						next;
+					}
+					push @MmpWarn, "$CurFile($LineNum) : SYSTEMINCLUDE path \"$Candidate\" not found\n";
+				}
+				next LINE;
+			}
+			push @MmpWarn, "$CurFile($LineNum) : No Paths specified for keyword SYSTEMINCLUDE\n";
+			next LINE;
+		}
+		if (/^SYSTEMRESOURCE$/o) {
+			if (@$Line) {
+				my $Candidate;
+				foreach $Candidate (@$Line) {
+					CheckSource_MetaData(%CheckSourceMMPMetaData, $CurFile, $mainElement, $Candidate, $LineNum, $CheckSource_PhysicalCheck, $CurSrcPath);
+					$Candidate = &Path_Norm($Candidate);
+					
+					if ($CheckSysResrc{$Candidate}) {
+						push @MmpDie, "$CurFile($LineNum) : Duplicate Resource \"$Candidate\" at line $CheckSysResrc{$Candidate}\n";
+						next; 
+					}
+					$CheckSysResrc{$Candidate}="$CurFile($LineNum)";
+					my $source="$CurSrcPath$Candidate";
+					unless (-e $source) {
+						push @MmpWarn, "$CurFile($LineNum) : SYSTEMRESOURCE source \"$source\" not found\n";
+					}
+					$CurResource{BaseTrg}=&Path_Split('Base',$Candidate);
+					$CurResource{Source}=$source;
+					$CurResource{Hdr}="$CurFile($LineNum)";
+					$CurResource{TrgPath}="z\\system\\data\\";	# needs to match e32env.pm
+					my %Resource=%CurResource;
+					undef %CurResource;
+					push @ResourceStruct, \%Resource;
+				}
+				if (&main::EPOCSecurePlatform()) {    
+					push @MmpMigrationNote, "Obsolete SYSTEMRESOURCE keyword specified in \"$MMPFILE\"";
+				}
+				next LINE;
+			}
+			push @MmpWarn, "$CurFile($LineNum) : No Resources specified for keyword SYSTEMRESOURCE\n";
+			next LINE; 
+		}
+		if (/^TARGET$/o) {
+			if ($Trg) {
+				push @MmpWarn, "$CurFile($LineNum) : Attempt to redefine TARGET\n";
+				next LINE;
+			}
+			if ($Trg=shift @$Line) {
+				CheckSource_MetaData(%CheckSourceMMPMetaData, $CurFile, $mainElement, $Trg, $LineNum);
+				$Trg = &Path_Norm($Trg);
+				next LINE;
+			}
+			push @MmpWarn, "$CurFile($LineNum) : No Target specified for keyword TARGET\n";
+			next LINE;
+		}
+		if (/^TARGETPATH$/o) {
+			if ($TrgPath) {
+				push @MmpWarn, "$CurFile($LineNum) : Attempt to redefine TARGETPATH\n";
+				next LINE;
+			}
+			unless ($TrgPath=shift @$Line) {
+				push @MmpWarn, "$CurFile($LineNum) : No Path specified for keyword TARGETPATH\n";
+				next LINE;
+			}
+
+			CheckSource_MetaData(%CheckSourceMMPMetaData, $CurFile, $mainElement, $TrgPath, $LineNum);
+			$TrgPath = &Path_Norm($TrgPath);
+			
+			$TrgPath=~s-^\\(.*)$-$1-o;
+			$TrgPath=~s-^(.*[^\\])$-$1\\-o;
+			$TrgPath="z\\$TrgPath";
+			if (@$Line) {
+				push @MmpWarn, "$CurFile($LineNum) : Too many arguments for keyword TARGETPATH\n";
+			}
+			next LINE;
+		}
+		if (/^TARGETTYPE$/o) {
+			if ($TrgType) {
+				push @MmpWarn, "$CurFile($LineNum) : Attempt to redefine TARGETTYPE\n";
+				next LINE;
+			}
+			unless ($TrgType=shift @$Line) {
+				push @MmpWarn, "$CurFile($LineNum) : No Type specified for keyword TARGETTYPE\n";
+				next LINE;
+			}
+			eval { &Trg_GetL($TrgType, \%TrgType); };
+			if ($@) {
+				push @MmpDie, "$CurFile($LineNum) : $@";
+			}
+			next LINE;
+		}
+		if (/^UID$/o) {
+			if (@$Line) {
+				foreach (@$Line) {
+					if ($#UidList>=1) {
+						push @MmpWarn, "$CurFile($LineNum) : Can't specify more than 2 Uids\n";
+						next LINE;
+					}
+					$_=&Genutl_AnyToHex($_);
+					if (defined $_) {
+						push @UidList, $_;
+						next;
+					}
+					push @MmpDie, "$CurFile($LineNum) : Uid doesn't fit expected number format\n";
+					next LINE;
+				}
+				next LINE;
+			}
+			push @MmpWarn, "$CurFile($LineNum) : No Uids specified for keyword UID\n";
+			next LINE;
+		}
+		if (/^SECUREID$/o) {
+			if ($SecureId) {
+				push @MmpWarn, "$CurFile($LineNum) : Attempt to redefine SECUREID\n";
+				next LINE;
+			}
+			if (@$Line) {
+				$SecureId = &Genutl_AnyToHex(shift @$Line);
+				if (!defined $SecureId) {
+					push @MmpDie, "$CurFile($LineNum) : SECUREID doesn't fit expected number format\n";
+					next LINE;
+				}
+				if (@$Line) {
+					push @MmpWarn, "$CurFile($LineNum) : Too many arguments for keyword SECUREID\n";
+				}
+				next LINE;
+			}
+			push @MmpWarn, "$CurFile($LineNum) : Missing argument for keyword SECUREID\n";
+			next LINE;
+		}
+		if (/^VENDORID$/o) {
+			if (defined($VendorId)) {
+				push @MmpWarn, "$CurFile($LineNum) : Attempt to redefine VENDORID\n";
+				next LINE;
+			}
+			if (@$Line) {
+				$VendorId = &Genutl_AnyToHex(shift @$Line);
+				if (!defined $VendorId) {
+					push @MmpDie, "$CurFile($LineNum) : VENDORID doesn't fit expected number format\n";
+					next LINE;
+				}
+				if (@$Line) {
+					push @MmpWarn, "$CurFile($LineNum) : Too many arguments for keyword VENDORID\n";
+				}
+				next LINE;
+			}
+			push @MmpWarn, "$CurFile($LineNum) : Missing argument for keyword VENDORID\n";
+			next LINE;
+		}
+		if (/^USERINCLUDE$/o) {
+			if (@$Line) {
+				my $Candidate;
+				foreach $Candidate (@$Line) {
+					CheckSource_MetaData(%CheckSourceMMPMetaData, $CurFile, $mainElement, $Candidate, $LineNum, $CheckSource_PhysicalCheck);
+					$Candidate = &Path_Norm($Candidate);
+					
+					$Candidate=~s-^(.*[^\\])$-$1\\-o;   # ensure path ends with a backslash
+					$Candidate=&Path_MakeEAbs($EPOCPath,$CurFile,$Candidate);
+					if ($CheckUserInc{$Candidate}) {
+						next; 
+					}
+					push @UserIncPaths,$Candidate;
+					$CheckUserInc{$Candidate}="$CurFile($LineNum)";
+					if (-d &Path_Chop($Candidate)) {
+						next;
+					}
+					push @MmpWarn, "$CurFile($LineNum) : USERINCLUDE path \"$Candidate\" not found\n";
+				}
+				next LINE;
+			}
+			push @MmpWarn, "$CurFile($LineNum) : No Paths specified for keyword USERINCLUDE\n";
+			next LINE;
+		}
+		if (/^SRCDBG$/o) {
+			if (@$Line) {
+				push @MmpWarn, "$CurFile($LineNum) : Keyword $_ takes no arguments\n";
+			}
+			$SrcDbg=1;
+			next LINE;
+		}
+		if (/^VERSION$/o) {
+			if (%Version) {
+				push @MmpDie, "$CurFile($LineNum) : Attempt to redefine VERSION\n";
+				next LINE;
+			}
+			unless (@$Line) {
+				push @MmpDie, "$CurFile($LineNum) : Missing argument to VERSION\n";
+				next LINE;
+			}
+			%Version = &Genutl_StringToVersion(shift @$Line);
+			if (!%Version) {
+				push @MmpDie, "$CurFile($LineNum) : Bad VERSION number\n";
+				next LINE;
+			}
+			if (@$Line) {
+				if ((lc $$Line[0]) eq 'explicit') {
+					$Version{explicit} = 1;
+					shift @$Line;
+				}
+				if (scalar(@$Line)) {
+					push @MmpDie, "$CurFile($LineNum) : Garbage after VERSION number\n";
+				}
+			}
+			next LINE;
+		}
+		
+		if (/^OPTION$/oi ) {
+			if (@$Line >= 2) {
+				my $compilerkey= uc shift @$Line;
+				if (!defined($Compiler{$compilerkey})) {
+					# first use of "OPTION xxx"
+					$Compiler{$compilerkey}=shift @$Line;
+				}
+				# concatenate extra stuff
+				while (@$Line) {
+					$Compiler{$compilerkey}.=" ".shift @$Line;
+				}
+				next LINE;
+			}
+			push @MmpWarn, "$CurFile($LineNum) : Keyword OPTION requires at least two arguments\n";
+			next LINE;
+			}
+		if (/^LINKEROPTION$/oi ) {
+			if (@$Line >= 2) {
+			        # first parameter is the compiler
+				my $compilerkey= uc shift @$Line;
+				if (!defined($Compiler{$compilerkey})) {
+					# first use of "LINKEROPTION xxx"
+					$LinkerOptions{$compilerkey}=shift @$Line;
+				}
+				# concatenate extra stuff
+				while (@$Line) {
+					$LinkerOptions{$compilerkey}.=" ".shift @$Line;
+				}
+				next LINE;
+			}
+			push @MmpWarn, "$CurFile($LineNum) : Keyword LINKEROPTION requires at least two arguments\n";
+			next LINE;
+			}
+		if (/^OPTION_Replace$/oi ) {
+			if (@$Line >= 2) {
+				my $compilerkey= uc shift @$Line;
+				my $repOptions= shift @$Line;
+				while (@$Line) 
+				{
+					$repOptions.= " ".shift @$Line;
+				}
+				$repOptions =~ s/=\s*/=/g;
+				push @{$Replace{$compilerkey}},$repOptions;
+				
+				next LINE;
+			}
+			push @MmpWarn, "$CurFile($LineNum) : Keyword OPTION_Replace requires at least two arguments\n";
+			next LINE;
+			}
+		if (/^ARMFPU$/oi) {
+			if ($ARMFPU) {
+				push @MmpWarn, "$CurFile($LineNum) : Attempt to redefine ARMFPU\n";
+				next LINE;
+			}
+			if ($ARMFPU=shift @$Line) {
+				if (($ARMFPU !~ /^SOFTVFP$/oi) && ($ARMFPU !~ /^VFPV2$/oi)) {
+					push @MmpWarn, "$CurFile($LineNum) : ARMFPU can only specify SOFTVFP or VFPV2 as an argument\n";
+					undef $ARMFPU;
+				}
+				next LINE;
+			}
+			push @MmpWarn, "$CurFile($LineNum) : ARMFPU must specify either SOFTVFP or VFPV2 as an argument\n";
+			next LINE;
+		}
+		if( /^PAGED$/o) {
+			if ($CodePagingTargetMode == PAGED or $DataPagingTargetMode == PAGED) {
+				push @MmpWarn, "$CurFile($LineNum) : duplicate paging setting\n";
+			}
+			if ($CodePagingTargetMode == UNPAGED or $DataPagingTargetMode == UNPAGED) {
+				push @MmpWarn, "$CurFile($LineNum) : conflict paging setting\n";
+			}
+			$CodePagingTargetMode = PAGED;
+			$DataPagingTargetMode = PAGED;
+			next LINE;
+			}
+		if( /^UNPAGED$/o) {
+			if ($CodePagingTargetMode == UNPAGED or $DataPagingTargetMode == UNPAGED) {
+				push @MmpWarn, "$CurFile($LineNum) : duplicate paging setting\n";
+			}
+			if ($CodePagingTargetMode == PAGED or $DataPagingTargetMode == PAGED) {
+				push @MmpWarn, "$CurFile($LineNum) : conflict paging setting\n";
+			}
+			$CodePagingTargetMode = UNPAGED;
+			$DataPagingTargetMode = UNPAGED;
+			next LINE;
+			}
+		if( /^PAGEDCODE$/o) {
+			if ($CodePagingTargetMode == PAGED) {
+				push @MmpWarn, "$CurFile($LineNum) : duplicate paging setting\n";
+			}
+			if ($CodePagingTargetMode == UNPAGED) {
+				push @MmpWarn, "$CurFile($LineNum) : conflict paging setting\n";
+			}
+			$CodePagingTargetMode = PAGED;
+			next LINE;
+			}
+		if( /^UNPAGEDCODE$/o) {
+			if ($CodePagingTargetMode == UNPAGED) {
+				push @MmpWarn, "$CurFile($LineNum) : duplicate paging setting\n";
+			}
+			if ($CodePagingTargetMode == PAGED) {
+				push @MmpWarn, "$CurFile($LineNum) : conflict paging setting\n";
+			}
+			$CodePagingTargetMode = UNPAGED;
+			next LINE;
+			}
+		if( /^PAGEDDATA$/o) {
+			if ($DataPagingTargetMode == PAGED) {
+				push @MmpWarn, "$CurFile($LineNum) : duplicate paging setting\n";
+			}
+			if ($DataPagingTargetMode == UNPAGED) {
+				push @MmpWarn, "$CurFile($LineNum) : conflict paging setting\n";
+			}
+			$DataPagingTargetMode = PAGED;
+			next LINE;
+			}
+		if( /^UNPAGEDDATA$/o) {
+			if ($DataPagingTargetMode == UNPAGED) {
+				push @MmpWarn, "$CurFile($LineNum) : duplicate paging setting\n";
+			}
+			if ($DataPagingTargetMode == PAGED) {
+				push @MmpWarn, "$CurFile($LineNum) : conflict paging setting\n";
+			}
+			$DataPagingTargetMode = UNPAGED;
+			next LINE;
+			}
+		if( /^DEBUGGABLE_UDEBONLY$/o) {
+			$IsDebuggable = DEBUGGABLE_UDEBONLY;
+			next LINE;
+			}
+		if( /^DEBUGGABLE$/o) {
+			if ($IsDebuggable != DEBUGGABLE_UDEBONLY)
+			{
+				$IsDebuggable = DEBUGGABLE;
+			}
+			next LINE;
+			}
+		if( /^FEATUREVARIANT$/o) {
+			push @MmpDie, "$CurFile($LineNum) : FEATUREVARIANT specified multiple times" if ($FeatureVariant);
+			$FeatureVariant = 1;
+			next LINE;
+			}
+
+		push @MmpWarn, "$CurFile($LineNum) : Unrecognised Keyword \"$_\"\n";
+	}
+
+	undef $Line;
+	undef $MmpMacro;
+
+
+	# test the mmp contents
+	#----------------------
+	if ($PlatTxtSwitch || $OtherPlatSwitch)	{
+		push @MmpDie, $PlatTxtSwitch ? $PlatTxtSwitch : $OtherPlatSwitch, ": Unterminated START ... END block\n";
+	}
+	undef $PlatTxtSwitch;
+	undef $OtherPlatSwitch;
+
+	# Check the consistency of the mmp file contents
+	unless ($Trg) {
+		unless($TrgType=~/^NONE$/io){
+			push @MmpDie, "ERROR: No Target specified\n";
+		}
+	}
+	unless ($TrgType) {
+		push @MmpDie, "ERROR: No TargetType specified\n";
+	}
+  	if( $StdCpp && $NoStdCpp ) {
+  		push @MmpWarn, "WARNING: Keyword statement STDCPP not permitted with keyword NOSTDCPP.\n";
+  		push @MmpWarn, "WARNING: Keyword statements STDCPP and NOSTDCPP ignored.\n";
+  		$StdCpp = 0;
+  		$NoStdCpp = 0;
+  	}
+
+	if (($TrgType =~ /^LIB$/io) && (scalar(@DebugLibList) || scalar(@LibList) || scalar(@StatLibList))) {
+		push @MmpWarn, "WARNING: Library statements (DEBUGLIBRARY, LIBRARY or STATICLIBRARY) not permitted with TARGETTYPE LIB.";
+		push @MmpWarn, "WARNING: Library statements (DEBUGLIBRARY, LIBRARY or STATICLIBRARY) ignored.\n";
+		undef @DebugLibList;
+		undef @LibList;
+		undef @StatLibList;
+	}
+
+	if ($TrgType =~ /^LIB$/io && $NewLib) {
+		push @MmpWarn, "WARNING: Library statement NEWLIB not permitted with TARGETTYPE LIB.";
+		push @MmpWarn, "WARNING: Library statement NEWLIB ignored.\n";
+		undef @DebugLibList;
+		undef @LibList;
+		undef @StatLibList;
+	}
+
+	if ($TrgType =~ /^STD(EXE|DLL)$/io && $NewLib) {
+		push @MmpWarn, "WARNING: Library statement NEWLIB not permitted with TARGETTYPE STD*.";
+		push @MmpWarn, "WARNING: Library statement NEWLIB ignored.\n";
+		undef @DebugLibList;
+		undef @LibList;
+		undef @StatLibList;
+	}
+
+	if (($TrgType=~/^IMPLIB$/io) || ($TrgType=~/^NONE$/io)) {
+		push @MmpDie, "ERROR: SOURCE not permitted with TARGETTYPE $TrgType\n" if (@SourceStruct);
+	} elsif (!@SourceStruct) {
+		push @MmpDie, "ERROR: No Sources specified\n";
+	}
+	if ($TrgType{NeedUID3} && $#UidList<1) {
+		push @MmpWarn, "WARNING: No Uid3 specified in \"$MMPFILE\" for TargetType \"$TrgType\"\n";
+	}
+	if ($Trg && $Trg=~/\{|\}/) {
+		push @MmpDie, "ERROR: Bad TARGET name specified\n";
+	}
+	if ($ExportLibrary and $ExportLibrary=~/\{|\}/) {
+		push @MmpDie, "ERROR: Bad EXPORTLIBRARY name specified\n";
+	}
+	if ($LinkAs and $LinkAs=~/\{|\}/) {
+		push @MmpDie, "ERROR: Bad LINKAS name specified\n";
+	}
+	# Make sure a valid compression method has been chosen if target is going to be paged
+	if ($CodePagingTargetMode == PAGED && $CompressTarget == COMPRESS) {
+		if ($CompressTargetMethod == INFLATECOMPRESSIONMETHOD) {
+			push @MmpWarn, "Incompatible keywords! The INFLATECOMPRESSTARGET is not allowed with PAGED!\n";
+			push @MmpWarn, "Changing compression method to BYTEPAIRCOMPRESSTARGET\n";
+		}
+		$CompressTargetMethod = BYTEPAIRCOMPRESSIONMETHOD;
+	}
+
+  # Ensure 2nd UID is not deprecated
+  if (&main::EPOCSecurePlatform() && $TrgType{Basic} eq "DLL")
+    {
+    $deprecatedUIDs{"0x100039ce"} = "Unmigrated dll style application detected from use of UID 0x100039ce";
+    }
+  
+  # Do not need UIDs for a resource only (i.e. TARGETTYPE is "none") mmp file
+  if  ((!$TrgType=~/^NONE$/io) && &main::EPOCSecurePlatform() && defined($deprecatedUIDs{$UidList[0]}))
+    {
+    push @MmpMigrationNote, "$deprecatedUIDs{$UidList[0]}\n";
+    }
+
+#	PUT IN SOME DEFAULTS
+
+	if ($TrgPath eq '') {
+		# set up default path from $TrgType 
+		$TrgPath = $TrgType{Path};
+	}
+	my $ResourceTrgPath = $TrgType{ResourcePath};
+	if ($ResourceTrgPath eq '') {
+		$ResourceTrgPath = $TrgPath;	# default to TrgPath, as before
+	}
+	unless (%Version) {
+	    if ($$Plat_ref{DefFile} =~ /^\s*EABI\s*/i ) {
+			$Version{major} = 10;	# Start major versions at 10 for EABI to allow coexistence with GCC98r2 ABI
+		} else {
+			$Version{major} = 1;
+		}
+		$Version{minor} = 0;
+	}
+
+	# check for languages
+	@LangList=('SC') unless @LangList;
+
+  if (&main::EPOCSecurePlatform() && !defined($Capability) &&
+    (($TrgType{Basic} eq "DLL") || (uc($TrgType) eq "EXEXP")))
+    {
+    push @MmpMigrationNote, "No Capabilities set in \"$MMPFILE\" for TargetType: $TrgType\n";
+    }
+
+	# Supply default capability mask if not set explicitly, and convert to hex string
+	$Capability = "none" unless (defined($Capability));
+	$CapabilityFlags[0] = 0 unless (defined($CapabilityFlags[0]));
+        $CapabilityFlags[1] = 0 unless (defined($CapabilityFlags[1]));
+
+        $CapabilityFlags[0] = sprintf("0x%08x", $CapabilityFlags[0]);
+        $CapabilityFlags[1] = sprintf("0x%08x", $CapabilityFlags[1]);
+
+#	ensure all bitmaps have targetpaths and check for duplicate bitmaps
+	my %BitMapCheck;
+	my $BitMapRef;
+	foreach $BitMapRef (@BitMapStruct) {
+		unless ($$BitMapRef{TrgPath}) {
+			$$BitMapRef{TrgPath}=$ResourceTrgPath;
+		}
+		if ($BitMapCheck{"$$BitMapRef{TrgPath}$$BitMapRef{Trg}"}) {
+			push @MmpDie, "ERROR: Duplicate bitmap target \"$$BitMapRef{TrgPath}$$BitMapRef{Trg}\"\n";
+			next;
+		}
+		$BitMapCheck{"$$BitMapRef{TrgPath}$$BitMapRef{Trg}"}=1;
+	}
+
+#	ensure all resources have targetpaths, expand language list and check for duplicates
+	my %ResourceCheck;
+	my $ResourceRef;
+	my @PerLanguageResourceStruct;
+	foreach $ResourceRef (@ResourceStruct) {
+					
+		unless ($$ResourceRef{BaseTrg}) {
+			$$ResourceRef{BaseTrg}=&Path_Split('Base',$$ResourceRef{Source});
+		}
+		unless ($$ResourceRef{TrgPath}) {
+			$$ResourceRef{TrgPath}=$ResourceTrgPath;
+		}
+		unless ($$ResourceRef{Lang}) {
+			@{$$ResourceRef{Lang}}=@LangList;
+		}
+		# generate one instance per language.
+		my @list = @{$$ResourceRef{Lang}};
+		my $base = "$$ResourceRef{TrgPath}$$ResourceRef{BaseTrg}";
+		foreach my $lang (@list) {
+			my %newResourceRef = %{$ResourceRef};
+			$newResourceRef{Lang} = $lang;
+			$newResourceRef{Trg} = $base.lc("\.R$lang");
+			push @PerLanguageResourceStruct, \%newResourceRef;
+		}
+	}
+	@ResourceStruct = @PerLanguageResourceStruct;
+	undef @PerLanguageResourceStruct;
+	
+	foreach $ResourceRef (@ResourceStruct) {
+		if ($ResourceCheck{"$$ResourceRef{TrgPath}$$ResourceRef{Trg}"}) {
+			push @MmpDie, "ERROR: Duplicate Resource target \"$$ResourceRef{TrgPath}$$ResourceRef{Trg}\"\n";
+			next;
+		}
+		$ResourceCheck{"$$ResourceRef{TrgPath}$$ResourceRef{Trg}"}=1;
+	}
+
+	my $Plat=&main::Plat;
+
+	if (@MmpDie || @MmpWarn || @MmpDiagnostic || @MmpMigrationNote) {
+		warn "\nMMPFILE \"$MMPFILE\"\n";
+		if (@MmpDiagnostic) {
+			warn
+				"DIAGNOSTIC MESSAGE(S)\n",
+				@MmpDiagnostic,
+				"\n"
+			;
+			}
+
+		foreach my $printedWarning (@MmpWarn)
+			{
+			print "WARNING: $printedWarning\n";
+			}
+		foreach my $printedError (@MmpDie)
+			{
+			print "FATAL ERROR: $printedError\n";
+			}
+
+		foreach my $printedMigrationNote (@MmpMigrationNote)
+			{
+			print "MIGRATION_NOTE: $printedMigrationNote\n";
+			}		
+
+		if (@MmpDie)
+			{
+			die;
+			}
+	}
+
+
+#	COMPLETE THE UID LIST
+
+	while ($#UidList<1) {
+		push @UidList, '0x00000000';
+	}
+
+	# check the second UID, or set it
+	if ($TrgType{UID2}) {
+		if ($UidList[0]=~/^0x00000000$/o) {
+			# put in second uid for known targetypes without them
+			$UidList[0]=$TrgType{UID2};
+		}
+		elsif ($UidList[0] ne $TrgType{UID2}) {
+			# text comparison is OK here because UIDs have both been through AnyToHex function
+			if ($UidList[0] ne '0x01111111') {
+				# issue warning (but not if UID == 0x01111111 (to allow test code to deliberately set incorrect UID)
+				warn(
+					"WARNING: Second Uid is $UidList[0], but\n",
+					" expected value for Target Type $TrgType is $TrgType{UID2}\n"
+				);
+			}
+		}
+	}
+
+#	Put in the first UID in the list
+	if ($TrgType{Basic}=~/^DLL$/o) {
+		unshift @UidList, '0x10000079';
+	}
+	elsif ($TrgType{Basic}=~/^(EXE)$/o) {
+		unshift @UidList, '0x1000007a';
+	}
+	elsif ($TrgType{Basic}=~/^(EXEDLL)$/o) {
+# EXE on EPOC32, DLL on Emulator
+# NOTE: On EKA1 EXEDLL used EXE UID1 on emulator
+# On EKA2 this is unacceptable
+		if (!$emulator) {
+			unshift @UidList, '0x1000007a';
+		} else {
+			unshift @UidList, '0x10000079';
+		}
+	}
+	else {
+		unshift @UidList, '0x00000000';
+	}
+
+# If no SID specified use UID3
+	$SecureId = $UidList[2] unless(defined $SecureId);
+
+#	SORT OUT TARGET TYPE DATA STRUCTURE
+
+	# set the target path
+	if ($TrgPath) {
+		$TrgType{Path}=$TrgPath;
+	}
+
+#	put in the $Linkas default
+	if (!$LinkAs and $TrgType=~/^IMPLIB$/io) {
+		$LinkAs = $Trg;
+		$LinkAs =~ s/\.lib$/\.dll/i;
+	} else {
+		$LinkAs = $Trg unless $LinkAs;
+	}
+	$LinkAsBase = $LinkAs;
+	unless ($emulator) {
+		$LinkAs = &DecorateWithVersion($LinkAs, %Version);
+	}
+
+# If explicit version add to target
+	if ($Version{explicit} && !$emulator) {
+		$Trg = &DecorateWithVersion($Trg, %Version);
+	}
+
+
+#	Reconcile any EXEDLL targettypes - must be done after first UIDs put in the list
+#	and after the $LinkAs keyword has been defined/defaulted
+	if ($TrgType{Basic} eq 'EXEDLL') {
+		$TrgType{Basic} = $emulator ? 'DLL' : 'EXE';
+		$Trg=&Path_Split('Base',$Trg).'.EXE';
+		$LinkAsBase=&Path_Split('Base',$LinkAsBase).'.EXE';
+		$LinkAs=&Path_Split('Base',$LinkAs).'.EXE';
+	}
+
+#	put in the $ExportLibrary default
+	$ExportLibrary=&Path_Split('Base',$Trg) unless $ExportLibrary;
+	unless ($emulator) {
+		$ExportLibrary = &DecorateWithVersion($ExportLibrary, %Version);
+	}
+
+#	Get the EPOC entrypoint static library
+	unless ($FirstLib) {
+		unless ($TrgType{FirstLib}) {
+			$FirstLib="E$TrgType{Basic}.LIB";
+		}
+		else {
+			$FirstLib=$TrgType{FirstLib};
+		}
+	}
+
+
+#	 WORK OUT THE ASSP IMPLICATIONS
+
+#	Nullify ASSP-specific API things for WINS/WINC since the API should always be
+#	the same for WINC as for WINS,
+	if ($emulator) {
+		$ASSPABISwitch=0;
+		$ASSPExports=0;
+		unshift @LibList, @ASSPLibList;
+		unshift @DebugLibList, @ASSPLibList;	# keep DebugLibList in sync with LibList
+		@ASSPLibList=();
+	}
+	else {
+#		Force ASSPABISwitch for known kernel components or if ASSPEXPORTS or ASSPLIBRARY specified in .MMP file
+		if ($TrgType{Kernel} or $ASSPExports or @ASSPLibList) {
+			$ASSPABISwitch=1;
+		}
+	}
+
+#	Switch the ABI if necessary
+	unless ($ASSPABISwitch) {
+#		apply the standard ABI
+		$ABI=$$Plat_ref{ABI};
+	}
+	else {
+#		kernel-specific stuff
+#		check that the platform is not generic
+		if ($$Plat_ref{Generic}) {
+			die "ERROR: Can't apply ASSPABI, ASSPEXPORTS or ASSPLIBRARY for generic platform \"$$Plat_ref{Name}\n";
+		}
+
+#		apply the ASSP-specific ABI
+		$ABI=$$Plat_ref{ASSPABI};
+	}
+
+#	COMPLETE THE .DEF FILE STRUCTURE
+
+	# apply the default .DEF filename, and
+	# check as far as possible that the project is frozen
+	if (($TrgType{NeedDeffile} or $CheckDef)) {
+		unless ($Def{Path} and $Def{Path} !~ /\\\~\\$/) {
+			my $augment;
+			if ($ASSPExports) {
+			    if ($$Plat_ref{DefFile} =~ /^\s*EABI\s*/i ) {
+					$augment = $$Plat_ref{ASSP};
+			    } else {
+					$augment = "B$$Plat_ref{ASSP}";
+			    }
+			} else {
+			    if ($$Plat_ref{DefFile} =~ /^\s*EABI\s*/i ) {
+					$augment = lc($$Plat_ref{DefFile});
+			    } else {
+					$augment = lc("B$$Plat_ref{DefFile}");
+			    }
+			}
+			if ($Def{Path} =~ /\\\~\\$/) {
+				$Def{Path} =~ s/\\\~\\$/\\$augment\\/;
+			} else {
+				$Def{Path}=&Path_Strip(&Path_Split('Path',$MMPFILE)."..\\$augment\\");
+			}
+		}
+		unless ($Def{Base}) {
+			$Def{Base} = &Path_Split('Base',$LinkAsBase);
+		}
+		unless ($Def{Ext}) {
+			$Def{Ext}='.def';
+		}
+#		now that we've dumped narrow, treat the 'u' basename suffix as part of the frozen
+#		.DEF file basename.  Once we've dumped the suffix we won't have to store the extension
+#		separately either
+		if (!$emulator && $Version{explicit}) {
+			$Def{Base} .= &Genutl_VersionToFileAugment(%Version);
+		} elsif (!$NoStrictDef) {
+			$Def{Base}.='u';
+		}
+
+		if ($Def{CheckSource_MMPEntry})
+		{
+			my $type = "DEFFILE";
+			$type .= " (NOSTRICTDEF)" if ($NoStrictDef);
+			
+			# for GCCXML and X86GCC, ignore check source errors for missing .def file
+			my $checkdef = (($IgnoreMissingDef) && ($Def{Path} =~ /[\\\/]bmarm[\\\/]/ || $$Plat_ref{Name} eq "X86GCC" || $$Plat_ref{Name} eq "X86GMP")) ? 0 : 1;
+			
+			if( $checkdef ) {
+			  CheckSource_MetaData(%CheckSourceMMPMetaData, $Def{CheckSource_MMPFile}, $type, $Def{CheckSource_MMPEntry}, $Def{CheckSource_LineNumber}, $CheckSource_PhysicalCheck, $Def{Path});
+			}
+		}
+			
+#		check deffile exists,
+        unless (-e "$Def{Path}$Def{Base}$Def{Ext}") {
+            if($IgnoreMissingDef == 0) {
+                warn "WARNING: Frozen .def file $Def{Path}$Def{Base}$Def{Ext} not found - project not frozen\n";
+            }
+     	}
+	}
+}
+
+sub Mmp_ABI () {
+	$ABI;
+}
+sub Mmp_AifStruct () {
+	\@AifStruct;
+}
+sub Mmp_AllowDllData () {
+	$AllowDllData;
+}
+sub Mmp_CompressTarget () {
+	$CompressTarget;
+}
+sub Mmp_CompressTargetMode () {
+	$CompressTargetMethod;
+}
+sub Mmp_ASSPExports () {
+	$ASSPExports;
+}
+sub Mmp_ASSPLibList () {
+	@ASSPLibList;
+}
+sub Mmp_BitMapStruct () {
+	\@BitMapStruct;
+}
+sub Mmp_BuildAsARM () {
+	$BuildAsARM;
+}
+sub Mmp_CallDllEntryPoints () {
+	$CallDllEntryPoints;
+}
+sub Mmp_Capability () {
+	$Capability;
+}
+sub Mmp_CapabilityFlags () {
+	@CapabilityFlags;
+}
+sub Mmp_DataLinkAddress () {
+	$DataLinkAddress;
+}
+sub Mmp_DebugLibList () {
+	\@DebugLibList;
+}
+sub Mmp_Def () {
+	\%Def;
+}
+sub Mmp_DocHash () {
+	\%DocHash;
+}
+sub Mmp_ExportUnfrozen () {
+	$ExportUnfrozen;
+}
+sub Mmp_FirstLib () {
+	$FirstLib;
+}
+sub Mmp_FixedProcess () {
+	$FixedProcess;
+}
+sub Mmp_HeapSize () {
+	\%HeapSize;
+}
+sub Mmp_LibList () {
+	\@LibList;
+}
+sub Mmp_LinkAs () {
+	$LinkAs;
+}
+sub Mmp_LinkAsBase () {
+	$LinkAsBase;
+}
+sub Mmp_ExportLibrary () {
+	$ExportLibrary;
+}
+sub Mmp_NoExportLibrary () {
+	$NoExportLibrary;
+}
+sub Mmp_NewLib () {
+	$NewLib;
+}
+sub Mmp_Macros () {
+	@Macros;
+}
+sub Mmp_MmpFlag () {
+	\%MmpFlag;
+}
+sub	Mmp_PlatTxt2D () {
+	@PlatTxt2D;
+}
+sub Mmp_ProcessPriority () {
+	$ProcessPriority;
+}
+sub Mmp_RamTargets () {
+	@RamTargets;
+}
+sub Mmp_ResourceStruct () {
+	\@ResourceStruct;
+}
+sub Mmp_RomTargets () {
+	@RomTargets;
+}
+sub Mmp_SourceStruct () {
+	\@SourceStruct;
+}
+sub Mmp_StackSize () {
+	$StackSize;
+}
+sub Mmp_StatLibList () {
+	@StatLibList;
+}
+sub Mmp_StdCpp () {
+	$StdCpp;
+}
+sub Mmp_NoStdCpp () {
+	$NoStdCpp;
+}
+sub Mmp_SysIncPaths () {
+	@SysIncPaths;
+}
+sub Mmp_Trg () {
+	$Trg;
+}
+sub Mmp_TrgType () {
+	\%TrgType;
+}
+sub Mmp_UidList () {
+	@UidList;
+}
+sub Mmp_UserIncPaths () {
+	@UserIncPaths;
+}
+sub Mmp_SrcDbg () {
+	$SrcDbg;
+}
+
+sub Mmp_WarningLevel() {
+     %Compiler; 
+} 
+
+sub Mmp_LinkerOptions() {
+    %LinkerOptions
+}
+
+sub Mmp_Version() {
+	%Version;
+}
+
+sub Mmp_SecureId() {
+	$SecureId;
+}
+
+sub Mmp_VendorId () {
+	$VendorId;
+}
+
+sub DecorateWithVersion($$) {
+	my ($name, %ver) = @_;
+	my $base = &Path_Split('Base', $name);
+	my $ext = &Path_Split('Ext', $name);
+	unless ($base =~ /\{(\d|a|b|c|d|e|f){8}\}$/i) {
+		$base .= &Genutl_VersionToFileAugment(%Version);
+	}
+	return "$base$ext";
+}
+
+sub Mmp_Replace() {
+	%Replace;
+}
+
+sub Mmp_SmpSafe() {
+	$SmpSafe;
+}
+
+sub Mmp_StringTable() {
+	\@StringTableStruct;
+}
+sub Mmp_ARMFPU() {
+	$ARMFPU;
+}
+
+sub Mmp_CheckSourceMMPMetaData() {
+	%CheckSourceMMPMetaData;
+}
+
+sub Mmp_CheckSourceMMPIncludes() {
+	%CheckSourceMMPIncludes;
+}
+
+sub Mmp_CodePagingTargetMode() {
+	$CodePagingTargetMode;
+}
+
+sub Mmp_DataPagingTargetMode() {
+	$DataPagingTargetMode;
+}
+
+sub Mmp_IsWideCharMain() {
+	$WideCharMain;
+}
+
+sub Mmp_IsDebuggable() {
+	$IsDebuggable;
+}
+
+sub Mmp_IsFeatureVariant() {
+	$FeatureVariant;
+}
+
+# Return the macros tested in the MMP file
+sub Mmp_TestedMacros() {
+	return \%mmptestedMacrosHash;
+}
+
+1;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/memtrace/memtrace.bat	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,27 @@
+@rem
+@rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+@rem All rights reserved.
+@rem This component and the accompanying materials are made available
+@rem under the terms of "Eclipse Public License v1.0"
+@rem which accompanies this distribution, and is available
+@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem
+@rem Initial Contributors:
+@rem Nokia Corporation - initial contribution.
+@rem
+@rem Contributors:
+@rem
+@rem Description:
+@rem
+@echo off
+
+perl -w -S memtrace.pl %1 %2 %3 %4 %5 %6 %7 %8 %9
+if errorlevel==1 goto CheckPerl
+goto End
+
+:CheckPerl
+perl -v >NUL
+if errorlevel==1 echo Is Perl, version 5.003_07 or later, installed?
+goto End
+
+:End
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/memtrace/memtrace.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,266 @@
+# Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Postprocess EPOC memory usage trace file
+# 
+#
+
+no strict 'vars';
+use English;
+# Standard Symbian boilerplate to find and load E32env library
+use strict;
+use FindBin;		# for FindBin::Bin
+use Getopt::Long;
+
+my $PerlLibPath;    # fully qualified pathname of the directory containing our Perl modules
+
+BEGIN {
+# check user has a version of perl that will cope
+	require 5.005_03;
+# establish the path to the Perl libraries: currently the same directory as this script
+	$PerlLibPath = $FindBin::Bin;	# X:/epoc32/tools
+	$PerlLibPath =~ s/\//\\/g;	# X:\epoc32\tools
+	$PerlLibPath .= "\\";
+}
+
+use lib $PerlLibPath;
+use Modload;
+Load_SetModulePath($PerlLibPath);
+
+my $tickperiod = 0;
+my $emulproc = quotemeta("epoc[00000000]0001::");
+my $apprun = quotemeta("apprun[10003a4b]");
+my $ramdrive = quotemeta("TheRamDriveChunk");
+
+my @chunknames;	# Array of chunk names, indexed by chunkid
+my @traces;		# Array of chunk traces, each trace being an array
+				# of (tick,chunkid,size) triples
+my @chunkgroup;	# Group that a chunk belongs to, indexed by chunkid
+my @groupnames;	# Array of chunk group names (normally a group==a process)
+my @groups;		# Array of chunk groups, each group being an array of chunkids
+
+my %opts;
+my $result = GetOptions (\%opts, "detailed", "help");
+if($result && ($opts{'help'} || $#ARGV<0))
+	{
+	&help;
+	exit 0;
+	}
+if(!$result || $#ARGV>0)
+	{
+	&usage;
+	exit 1;
+	}
+
+my $file = $ARGV[0];
+open TRACE,$file or die "Error: Can't open trace file \"$file\".\n";
+
+#
+# Parse trace file
+#
+my %current;	# chunkids hashed by DChunk address
+my $nextchunkid;
+while(<TRACE>)
+	{
+	if (/MT:P\s+(\d+)\s*$/)
+		{
+		$tickperiod = $1;
+		}
+	elsif (/MT:C\s+(\d+)\s+([0-9a-fA-F]+)\s+(.+)\s*$/)
+		{
+		$current{$2} = $nextchunkid++;
+		push @chunknames, $3;
+		}
+	elsif (my ($tick, $addr, $size, $name) =
+		   (/MT:A\s+(\d+)\s+([0-9a-fA-F]+)\s+([0-9a-fA-F]+)\s+(.+)\s*$/))
+		{
+		my $chunkid = $current{$addr};
+		die "Error: Parsing failure - is trace file complete ?"
+			unless (defined $chunkid);
+		push @traces, [0+$tick, $chunkid, hex($size)];
+
+		# Check whether chunk has been renamed to something more useful
+		$chunknames[$chunkid] = $name
+			if (($chunknames[$chunkid] =~ /^$emulproc/io) ||
+				($chunknames[$chunkid] =~ /^$apprun/io));
+		}
+	elsif (/MT:D\s+(\d+)\s+([0-9a-fA-F]+)\s+(.+)\s*$/)
+		{
+		die "Error: Parsing failure" unless (defined $current{$2});
+		push @traces, [0+$1, $current{$2}, 0];
+		delete $current{$2};
+		}
+	elsif (/(MT:.\s+.*)/)
+		{
+		printf "Warning: Unrecognised trace line \"$1\".\n";
+		}
+	}
+close TRACE;
+die "Error: File \"$file\" does not contain any memory traces.\n"
+  unless ($#chunknames>0);
+
+
+#
+# Group chunks together by name
+#
+for (0..$#chunknames)
+	{
+	my $chunkid = $_;
+	my $name = $chunknames[$chunkid];
+	$name = $1 if ($name =~ /($ramdrive)$/i);	# Special handling for ramdrive
+	$name = $1 if ($name =~ /^$emulproc(.*)/i);	# Use thread names on Emulator
+	($name) = ($name =~ /([^:]+)/);				# otherwise strip thread name
+
+	# yuck! linear search
+	my $found = 0;
+	for (0..$#groupnames)
+		{
+		my $groupid = $_;
+		if ($groupnames[$groupid] eq $name)
+			{
+			$found = 1;
+			push @{$groups[$groupid]}, $chunkid;
+			$chunkgroup[$chunkid] = $groupid;
+			last;
+			}
+		}
+	
+	if (!$found)
+		{
+		push @groupnames, $name;
+		push @groups, [$chunkid];
+		$chunkgroup[$chunkid] = $#groups;
+		}
+	}
+
+# Strip instance number (if any) from group name for presentation
+for (0..$#groupnames)
+	{
+	$groupnames[$_] = $1 if ($groupnames[$_] =~ /^([^]]+]?)/);
+	}
+
+#
+# Output
+#
+my @chunksizes; # Array of chunk sizes, indexed by chunkid
+for (0..$#chunknames) { $chunksizes[$_] = 0 };
+	
+if ($opts{'detailed'})
+	{
+	# Detailed output
+
+	foreach my $name (@groupnames) { print ",\"$name\"" };
+	print "\n";
+
+	# if the tick size in microseconds hasn't been reported in the log with MT:P, take a guess
+	my $tickdiv = 0;
+	if ($tickperiod == 0)
+		{
+		# Uses hacky method to determine whether on Emulator or Target
+		$tickdiv = ($chunknames[0] =~ /^$emulproc/io) ? 10 : 64;
+		}
+	else
+		{
+		# tickperiod is number of microseconds 
+		$tickdiv = 1000000 / $tickperiod;
+		}
+
+	my ($oldtick, $minitick) = (0,0);
+	my @groupsizes;
+	for my $trace (@traces)
+		{
+		my ($tick, $chunkid, $size) = @$trace;
+		if ($oldtick != $tick)
+			{
+			$oldtick = $tick;
+			$minitick=0;
+			}
+
+		$chunksizes[$chunkid] = $size;
+		my $groupid=$chunkgroup[$chunkid];
+		my $groupsize = 0;
+		foreach $chunkid (@{$groups[$groupid]})
+			{
+			$groupsize += $chunksizes[$chunkid];
+			}
+		$groupsizes[$groupid] = $groupsize;
+
+		print $tick/$tickdiv + ($minitick++)/1000000;
+		foreach $groupsize (@groupsizes)
+			{
+			if ($groupsize)
+				{
+				printf ",%d", $groupsize/1024;
+				}
+			else
+				{
+				print ',';		# make output prettier by omitting 0s
+				}
+			}
+		print "\n";
+		}
+	}
+else
+	{
+	# Summary output
+
+	my @grouphighs;
+	for my $trace (@traces)
+		{
+		my ($tick, $chunkid, $size) = @$trace;
+		$chunksizes[$chunkid] = $size;
+		my $groupid=$chunkgroup[$chunkid];
+		my $groupsize = 0;
+		foreach $chunkid (@{$groups[$groupid]})
+			{
+			$groupsize += $chunksizes[$chunkid];
+			}
+		$grouphighs[$groupid] = $groupsize
+			if (!defined($grouphighs[$groupid]) ||
+				($grouphighs[$groupid] < $groupsize));
+	}
+
+	printf "\"Process\", Size [K]\n";
+	for (0..$#groupnames)
+		{
+		printf "\"$groupnames[$_]\", %d\n", $grouphighs[$_]/1024;
+		}
+	}
+exit 0;
+
+
+sub help ()
+	{
+	my $build;
+	
+	&Load_ModuleL('E32TPVER');
+	print "\nmemtrace - " .
+	  "Postprocess EPOC memory usage trace (Build ", &E32tpver, ")\n";
+	&usage;
+	}
+	
+sub usage ()
+	{
+	print <<EOF
+
+Usage:
+  memtrace [-d] <logfile>
+
+Where:
+  <logfile>     Memory usage trace file.
+
+Options:
+  -d            Produce a detailed listing.
+EOF
+	;
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/platform/ARMV5.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,612 @@
+# Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# This file provides the definition of variables that are used by the component
+# specific makefile. This is for the BPABI (Base Platform ABI) platform using the
+# RVCT compiler.
+# Path Settings
+# 
+#
+
+# Compiler Installation Location
+CC_INSTALL_PATH=
+
+#----------------------------------
+# Programs used from the ToolChain
+#----------------------------------
+
+# C++ Compiler
+CC=armcc
+
+# Linker
+LD=armlink
+
+# Assembler
+ASM=armasm
+
+# Archiver
+AR=armar
+
+# Translator to translate the GCC inline assembler code
+TRANASM=tranasm.bat
+
+#--------------------
+# Option Prefix
+#--------------------
+
+# This value will be used by the backend to segregate one option from the other.
+# If option prefix is one among '+','*','.'or '?' (these metacharacters have specific predefined meaning
+# for pattern matching in Perl) then it should be preceded with '\'.
+OPTION_PREFIX=
+
+#------------------
+# Compiler Options
+#------------------
+
+# Flag whether the compiler requires Unix slashes for absolute paths
+UNIX_SLASH_FOR_CC_ABS_PATHS=0
+
+#-------------------
+# Debug Mode Options
+#-------------------
+
+# Optimization Level in DEBUG mode
+DEBUG_OPTIMISATION=-O0
+
+# Option to produce debug information
+DEBUG_OPTION=-g
+
+DEBUG_FORMAT_DWARF2=--dwarf2
+DEBUG_FORMAT_DWARF3=--dwarf3
+
+# DWARF 2 is default on the ARMV5 build platform.
+DEBUG_FORMAT=$(DEBUG_FORMAT_DWARF2)
+
+# Specific compiler options for a UDEB build
+SYMBIAN_UDEB_CCFLAGS=$(DEBUG_OPTION)
+
+#-------------------------
+# Target Processor Options
+#-------------------------
+
+# Option to select the appropriate target processor
+ifeq "$(RVCT_VER_MAJOR)" "2"
+TARGET_ARCH_OPTION=--cpu 5T
+else
+TARGET_ARCH_OPTION=--cpu 5TE
+endif
+
+# Option to generate the approproate ARM instruction set.
+ARM_INSTRUCTION_SET=--arm
+
+# Option to generate the approproate thumb instruction set.
+THUMB_INSTRUCTION_SET=--thumb
+
+# Compiler define for thumb instruction set
+COMPILER_THUMB_DEFINES=-D__MARM_THUMB__
+
+# Compiler define for interwork
+COMPILER_INTERWORK_DEFINES=-D__MARM_INTERWORK__
+
+# Option to specify the floating point conformance.
+FPMODE_OPTION=--fpmode ieee_no_fenv
+
+# Compiler option to select softvfp mode
+SOFTVFPMODE_OPTION=--fpu softvfp
+
+# Compiler option to select hardware floating point unit
+VFP2MODE_OPTION=--fpu vfpv2
+
+# Option to force all enumerations to be stored in as integers.
+ENUM_OPTION=--enum_is_int
+
+# Option to disable the generation of unaligned word and halfword accesses on ARMV6
+# and ARMV7 processors.
+ifeq "$(RVCT_VER_MAJOR)" "2"
+NO_UNALIGNED_ACCESS=--memaccess -UL41
+else
+NO_UNALIGNED_ACCESS=--no_unaligned_access
+endif
+
+#---------------------------------
+# Options controlling C++ Features
+#---------------------------------
+
+# Option for handling Virtual functions and Virtual Tables
+EXPORT_VTBL_OPTION=--export_all_vtbl
+
+# Disables unused virtual function elimination (VFE) in C++ mode. --vfe is the default
+VFE_OPTION=--no_vfe
+
+# Option to turn on exception handling
+EXCEPTIONS=--exceptions --exceptions_unwind
+NO_EXCEPTIONS=--no_exceptions --no_exceptions_unwind
+
+#-------------------------------------------------------------------------
+# Options controlling the ARM Architecture Procedure Call Standard (AAPCS)
+#-------------------------------------------------------------------------
+
+# This Option is for ARM Architecture Procedure Call Standard with the
+# qualifier to support calls between the ARM and Thumb instruction sets.
+AAPCS_OPTION=--apcs /inter
+
+#-----------------------------------------------------------
+# Options controlling generation of Compiler Warnings/Errors
+#-----------------------------------------------------------
+
+# Option to control the Compiler warnings
+CC_WARNINGS_CONTROL_OPTION=--diag_suppress 161,611,654,997,1152,1300,1464,1488,6318,6331,2523
+
+# Option to control the Compiler warnings for building Standard C++ application
+CC_STDCPP_WARNINGS_CONTROL_OPTION=--diag_suppress 161,611,654,997,1152,1300,1464,1488,6318,6331
+
+# Option to suppress the Compiler errors
+CC_ERRORS_CONTROL_OPTION=--diag_error 1267
+
+# Option to suppress the Compiler errors for building Standard C++
+CC_STDCPP_ERRORS_CONTROL_OPTION=--diag_error 1267
+
+# Option to modify the Compiler warnings and errors for Symbian OS
+SYMBIAN_CC_MESSAGE_OPTION=$(CC_WARNINGS_CONTROL_OPTION) $(CC_ERRORS_CONTROL_OPTION)
+
+#-----------------
+# Optional Options
+#-----------------
+
+# Compiler option to avoid the generation of the intermediate files. (Optional)
+TEMP_FILES_OPTION=
+
+# Library Option
+OWN_LIBRARY_OPTION=--library_interface=aeabi_clib
+
+# Option to generate the Object File
+COMPILE_ONLY_OPTION=-c
+
+# Option to generate the Preprocessed File
+PREPROCESSOR_OPTION=-E
+
+# Other additional Options to be passed to the compiler
+EXTRA_CC_OPTION=
+
+#---------------------
+# Preprocessor Options
+#---------------------
+
+# Prefix Header File passed to the preprocessor
+PREFIXFILE=$(EPOCROOT)epoc32\include\rvct\rvct.h
+
+# For .cpp Source files
+CPP_LANG_OPTION=--cpp
+
+# For .c Source files
+C_LANG_OPTION=--c90
+
+# For .cia Source files
+CIA_LANG_OPTION=--cpp -D__CIA__
+
+#-------------------
+# Assembler Options
+#-------------------
+
+# Option to generate the Assembler instructions
+ASSEMBLER_LISTING_OPTION=-S --interleave
+
+# Output option used to pass the output file name
+ASM_OUTPUT_OPTION=-o
+
+#------------------
+# Translator Options
+#------------------
+
+# Flags to be passed to the translator
+TRANASM_FLAGS=-n -s
+
+# Output option used to pass the output file name
+TRANASM_OUTPUT_OPTION=-o=
+
+# Input option used to pass the input file name
+TRANASM_INPUT_OPTION=
+
+#---------------------------
+# Include Options and Files
+#---------------------------
+
+# Option to specify the location of the header files
+INCLUDE_OPTION=-J
+
+# Preinclude file for that compiler that contains all the compiler specific definitions
+# required by the Symbian OS source code.
+PREINCLUDE_OPTION=--preinclude $(EPOCROOT)epoc32\include\rvct\rvct.h
+
+# Include options required by Function Call Logger
+FC_LOGGER_INCLUDE_OPTION=-I
+FC_LOGGER_DICTIONARY_FILE_NAME=--dictionary_file_name
+FC_LOGGER_GENERATED_C_FILE_NAME=--gen_c_file_name
+
+# Preinclude file to be passed to the Function Call Logger which uses EDG compiler
+#PREINCLUDE_OPTION_FCLOGGER=$(FC_LOGGER_INCLUDE_OPTION) $(EPOCROOT)EPOC32\INCLUDE\RVCT --preinclude edg_rvct2_2.h
+
+# Option to control the search for the header files. For example, if we do not want to do a search in the
+# standard include directory of C++, then can restrict it by providing the appropriate option.
+HEADER_FILES_CONTROL_OPTION=
+
+# Path to pick the header files from the Compiler installation directory
+COMPILER_INCLUDE_PATH=
+
+# Fetches the version of the tools from the installation directory
+VERSION_OPTION=
+VERSION_INFO=
+
+#---------------------
+# Release Mode Options
+#---------------------
+
+# Optimization Level in RELEASE mode
+REL_OPTIMISATION=-O2
+
+# Specific compiler options for a UREL build
+SYMBIAN_UREL_CCFLAGS=
+
+#---------------------------------
+# Symbol Attribute Setting Options
+#---------------------------------
+
+# Option to set the visibility of runtime symbols as DEFAULT (instead of HIDDEN)
+RUNTIME_SYMBOL_VISIBILITY_OPTION=--dllimport_runtime
+
+# Option to specify the output of the toolchain
+OUTPUT_OPTION=-o
+
+# Options to be passed when building System Target(kernel)
+KERNEL_OPTIONS=$(ARM_INSTRUCTION_SET) $(NO_EXCEPTIONS)
+
+# Options to be passed when building in Arm mode
+ARM_OPTIONS=$(ARM_INSTRUCTION_SET)
+
+# Options to be passed when building in Thumb mode
+THUMB_OPTIONS=$(THUMB_INSTRUCTION_SET)
+
+# Common compiler options for Arm and Thumb mode
+COMMON_OPTIONS=$(DEBUG_FORMAT) $(SYMBIAN_CC_MESSAGE_OPTION)
+
+# Invariant Options which cannot be modified by the user from MMP file
+INVARIANT_OPTIONS= $(TARGET_ARCH_OPTION) $(ENUM_OPTION) $(OWN_LIBRARY_OPTION) $(FPMODE_OPTION) $(EXPORT_VTBL_OPTION) $(VFE_OPTION) $(AAPCS_OPTION)
+
+# Common compiler options for compiling programs targeted at Symbian OS
+#CCFLAGS=$(SYMBIAN_CC_MESSAGE_OPTION) $(EXCEPTIONS) $(TARGET_ARCH_OPTION) $(ENUM_OPTION) $(OWN_LIBRARY_OPTION) $(FPMODE_OPTION) $(EXPORT_VTBL_OPTION) $(VFE_OPTION) $(AAPCS_OPTION) $(TEMP_FILES_OPTION) $(HEADER_FILES_CONTROL_OPTION) $(COMPILE_ONLY_OPTION) $(EXTRA_CC_OPTION)
+CCFLAGS=$(COMMON_OPTIONS) $(INVARIANT_OPTIONS) $(TEMP_FILES_OPTION) $(HEADER_FILES_CONTROL_OPTION) $(COMPILE_ONLY_OPTION) $(EXTRA_CC_OPTION)
+
+#------------------
+# Linker Options
+#------------------
+
+# Output option used to pass the output file name
+LINKER_OUTPUT_OPTION=-o
+
+# Option to generate debug information
+LINKER_DEBUG_OPTION=--debug
+
+# Option to *not* generate debug information.
+LINKER_NODEBUG_OPTION=
+
+#--------------------------------------------------------------
+# Options to generate executables conforming to BPABI standards
+#--------------------------------------------------------------
+
+# Option to generate an executable conforming to the Base Platform ABI for the ARM Architecture
+BPABI_OPTION=--bpabi
+
+# The `R_ARM_TARGET1' relocation is typically used for entries in the `.init_array' section. It is
+# interpreted as either `R_ARM_REL32' or `R_ARM_ABS32', depending on the target. The following option
+# override the default export relocations.
+TARGET_RELOCATION_OPTION=
+
+#-------------------------------------
+# Options to specify the output format
+#-------------------------------------
+
+# Option to create a relocatable ELF image. A relocatable image has a dynamic segment that contains
+# relocations that can be used to relocate the image post link-time.
+RELOCATABLE_IMAGE_OPTION=
+
+# Option to create an ELF shared object.
+SHARED_OBJECT_OPTION=--dll
+
+#-------------------------------------------
+# Options to set the Start of RO/RW sections
+#-------------------------------------------
+
+# Option to set the start of the code section (RO Region)
+CODE_SEGMENT_START=
+
+# Option to split object into RO and RW sections
+SPLIT_OPTION=
+
+# Option to set the start of the Data section (RW region)
+RW_BASE_OPTION=--rw-base
+
+# Option to be passed to the linker to set the start of the data section (RW region)
+DATA_SEGMENT_START=$(SPLIT_OPTION) $(RW_BASE_OPTION)
+
+#---------------------------------------------------------
+# Options controlling generation of Linker Warnings/Errors
+#---------------------------------------------------------
+
+# Option to control the Linker warnings
+LD_WARNINGS_CONTROL_OPTION=--diag_suppress 6331,6780
+
+# Option to suppress the Linker errors
+LD_ERRORS_CONTROL_OPTION=
+
+# Option to modify the Linker warnings and errors for Symbian OS
+SYMBIAN_LD_MESSAGE_OPTION=$(LD_WARNINGS_CONTROL_OPTION) $(LD_ERRORS_CONTROL_OPTION)
+
+# Option to specify whether unresolved symbol references from regular object files can be allowed or not.
+UNRESOLVED_SYMBOL_REF_OPTION=
+
+# Option to specify the undefined reference
+UNDEFINED_SYMBOL_REF_OPTION=
+
+# Other additional Options to be passed to the Linker
+EXTRA_LD_OPTION=--datacompressor=off
+
+ifeq "$(RVCT_VER_MAJOR)" "3"
+# Without this linker option, objects with ".directive" sections (i.e. objects
+# created by RVCT 2.2) will cause problems.
+EXTRA_LD_OPTION += --export_all
+endif
+
+#-------------------
+#Entry Point Options
+#-------------------
+
+# Option to pass the explicit symbol for beginning execution of the program
+LINKER_ENTRY_OPTION=--entry
+
+# Symbol used to denote the Start of the grouped archives.
+START_GROUP_SYMBOL=(
+
+# Symbol used to denote the End of the grouped archives.
+END_GROUP_SYMBOL=)
+
+#-------------------------
+# Library Specific Options
+#-------------------------
+
+# Option to control the search in the standard libraries
+STDLIB_OPTION=--no_scanlib
+
+# Additional static libraries that should automatically be supplied to the linker.
+ifeq "$(RVCT_VER_MAJOR)" "2"
+STATIC_LIBS_LIST=armlib\h_t__uf.l(switch8.o)
+else
+STATIC_LIBS_LIST=armlib\h_5.l(switch8.o)
+endif
+
+# Option to pass the path from where the runtime libraries should be picked up
+STATIC_LIBS_PATH=--libpath
+
+# Fetches the library path from the installation directory
+STATIC_LIBRARY_PATH=
+STATIC_LIBS=
+
+# Additional runtime libraries that should be supplied to the linker.
+RTVER:=$(RVCT_VER_MAJOR)_$(RVCT_VER_MINOR)
+RUNTIME_LIBS_LIST=drtaeabi.dso dfpaeabi.dso dfprvct$(RTVER).dso drtrvct$(RTVER).dso
+
+
+# The library that contains operator new and operator delete.
+SYM_NEW_LIB=scppnwdl.dso
+
+# Option to pass the path from where the runtime libraries should be picked up
+RUNTIME_LIBS_PATH=
+
+# Option to turn on implicit symbol versioning
+SYMVER_OPTION=--symver_soname
+
+# Option to specify the shared object name that is stored in the executable
+SO_NAME_OPTION=--soname
+
+# Option to generate the map file that provides information about the linking
+LINKER_SYMBOLS_OPTION=--symbols
+
+# Option to specify the Symbols file
+LINKER_SYMBOLS_FILE_OPTION=--list
+
+# Option to produce the Map file that provides information about linking
+LINKER_SYMBOLS_MAP_OPTION=$(LINKER_SYMBOLS_OPTION) $(LINKER_SYMBOLS_FILE_OPTION)
+
+# Option to specify the linker script file
+LINKER_SCRIPT_FILE_OPTION=
+
+#Via file prefixes
+VIA_FILE_PREFIX=
+VIA_FILE_SUFFIX=
+
+# option to take object file names from other(via) file, here in case of ARMV5 it is necessary to specify space after the "--via " option.
+COMMANDFILE_OPTION:=--via 
+
+# Linker options which can be customized from BSF
+LD_OPTIONS=$(SYMBIAN_LD_MESSAGE_OPTION)$(UNRESOLVED_SYMBOL_REF_OPTION) $(STDLIB_OPTION) $(EXTRA_LD_OPTION)
+
+# Linker option common to all link commands for UREL build
+SYMBIAN_UREL_LINK_FLAGS=$(BPABI_OPTION) $(RELOCATABLE_IMAGE_OPTION) $(TARGET_RELOCATION_OPTION) $(LD_OPTIONS)
+
+# Linker option common to all link commands for UDEB build
+SYMBIAN_UDEB_LINK_FLAGS=$(BPABI_OPTION) $(RELOCATABLE_IMAGE_OPTION) $(TARGET_RELOCATION_OPTION) $(LD_OPTIONS)
+
+
+#-----------------
+# Archiver Options
+#-----------------
+
+# ARCHIVER variable should be set since there is a dependency for this variable in e32test.
+ARCHIVER= $(AR)
+
+ARCHIVER_CREATE_OPTION=--create
+
+# Archiver options which can be set from BSF files
+AR_OPTIONS=
+
+#--------------------------------------
+# Compiler and Platform specific macros
+#--------------------------------------
+
+# Macro definitions required to identify the compiler. Allows for conditional compilation based on compiler
+PLATFORM_DEFINES=
+
+COMPILER_DEFINES=
+
+# Compiler target option
+COMPILER_PLAT=ARMCC
+
+#--------------------------------------
+# Function Call Logger Options
+#--------------------------------------
+FC_LOGGER_OPTION=--wchar_t_keyword --microsoft_version=1300 --diag_suppress 66,161,611,654,815,830,997,1152,1300,1390
+
+# Defines for Function Call Logger
+FC_LOGGER_DEFINES=-D__ARMCC_VERSION=220435
+
+#------------
+# OE Options
+#------------
+
+# Options to export all the globol symbols and import undefined references, required by OE
+OE_OPTIONS=--no_hide_all
+
+# OE Glue code libs
+OE_EXE_LIBS=libcrt0.lib
+OE_EXE_LIBS_WCHAR=libwcrt0.lib
+
+# OE Import Libs
+OE_IMPORT_LIBS=euser.lib
+
+# The library that contains operator new and operator delete.
+OE_NEW_LIB=stdnew.dso
+
+#-----------------------------------------------------------------------------------------------------
+#This section defines the interface with Symbian tools
+#This SHOULD NOT be changed as any changes in this section will not be picked up by the tools back end
+#-----------------------------------------------------------------------------------------------------
+
+# Programs used from the ToolChain
+export  CC
+export  LD
+export  ASM
+export  AR
+export  TRANASM
+
+# Preprocessor Options
+export  PREFIXFILE
+export  CPP_LANG_OPTION
+export  C_LANG_OPTION
+export  CIA_LANG_OPTION
+
+# Option Prefix
+export OPTION_PREFIX
+
+# Compiler Options
+export	PREPROCESSOR_OPTION
+export  ASSEMBLER_LISTING_OPTION
+export  ASM_OUTPUT_OPTION
+export  INCLUDE_OPTION
+export  PREINCLUDE_OPTION
+export  HEADER_FILES_CONTROL_OPTION
+export  COMPILER_INCLUDE_PATH
+export  SYMBIAN_UREL_CCFLAGS
+export  SYMBIAN_UDEB_CCFLAGS
+export  REL_OPTIMISATION
+export  DEBUG_OPTIMISATION
+export  ARM_OPTIONS
+export  THUMB_OPTIONS
+export  COMMON_OPTIONS
+export  INVARIANT_OPTIONS
+export  KERNEL_OPTIONS
+export  COMPILER_THUMB_DEFINES
+export  COMPILER_INTERWORK_DEFINES
+export  SOFTVFPMODE_OPTION
+export  VFP2MODE_OPTION
+export  RUNTIME_SYMBOL_VISIBILITY_OPTION
+export  OUTPUT_OPTION
+export  CCFLAGS
+export  UNIX_SLASH_FOR_CC_ABS_PATH
+export  EXCEPTIONS
+export  NO_EXCEPTIONS
+export 	VERSION_INFO
+export  NO_UNALIGNED_ACCESS
+export  DEBUG_FORMAT
+
+# Linker Options
+export  LINKER_OUTPUT_OPTION
+export  LINKER_DEBUG_OPTION
+export  LINKER_NODEBUG_OPTION
+export  CODE_SEGMENT_START
+export  DATA_SEGMENT_START
+export  UNDEFINED_SYMBOL_REF_OPTION
+export  LINKER_ENTRY_OPTION
+export  START_GROUP_SYMBOL
+export  END_GROUP_SYMBOL
+export  SHARED_OBJECT_OPTION
+export  STDLIB_OPTION
+export  STATIC_LIBS_LIST
+export  STATIC_LIBS_PATH
+export 	STATIC_LIBRARY_PATH
+export  STATIC_LIBS
+export  RUNTIME_LIBS_LIST
+export  SYM_NEW_LIB
+export  RUNTIME_LIBS_PATH
+export  SYMVER_OPTION
+export  SO_NAME_OPTION
+export  LINKER_SYMBOLS_MAP_OPTION
+export  COMMANDFILE_OPTION
+export	VIA_FILE_PREFIX
+export	VIA_FILE_SUFFIX
+export  SYMBIAN_UREL_LINK_FLAGS
+export  SYMBIAN_UDEB_LINK_FLAGS
+export  LD_OPTIONS
+
+# Archiver Options
+export  ARCHIVER
+export  ARCHIVER_CREATE_OPTION
+export  AR_OPTIONS
+
+# Compiler Specific Defines
+export  COMPILER_DEFINES
+export  COMPILER_PLAT
+
+# Platform Specific Defines
+export  PLATFORM_DEFINES
+
+# Translator Options
+export  TRANASM_FLAGS
+export  TRANASM_OUTPUT_OPTION
+export  TRANASM_INPUT_OPTION
+
+# Function Call Logger options
+export PREINCLUDE_OPTION_FCLOGGER
+export FC_LOGGER_OPTION
+export FC_LOGGER_DEFINES
+export FC_LOGGER_INCLUDE_OPTION
+export FC_LOGGER_DICTIONARY_FILE_NAME
+export FC_LOGGER_GENERATED_C_FILE_NAME
+
+#OE Options
+export OE_OPTIONS
+export OE_EXE_LIBS
+export OE_EXE_LIBS_WCHAR
+export OE_IMPORT_LIBS
+export OE_NEW_LIB
+
+#-----------------------------------------------------------------------------------------------------
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/platform/ARMV5SMP.bsf	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,19 @@
+#<bsf>#
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# This BSF file is to support building for ARMV5SMP architecture. 
+
+CUSTOMIZES ARMV5
+
+SMP
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/platform/ARMV6.BSF	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,22 @@
+#<bsf>#
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# This BSF file is to support building for ARMV6 architecture. The options specified here are same as for ARMV5 except 
+# the --cpu 6 option in INVARIANT_OPTIONS. This specifies to compiler to compile for generic ARMV6. If any other 
+# specific options are required such as --cpu ARM1136J-S, etc, then it can be done via a different BSF file
+# NOTE: The options specified here for the compiler disable the unaligned memory access.
+
+CUSTOMIZES ARMV5
+
+INVARIANT_OPTIONS --cpu 6 $(ENUM_OPTION) $(OWN_LIBRARY_OPTION) $(FPMODE_OPTION) $(EXPORT_VTBL_OPTION) $(VFE_OPTION) $(AAPCS_OPTION) $(NO_UNALIGNED_ACCESS)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/platform/ARMV6SMP.bsf	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,24 @@
+#<bsf>#
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# This BSF file is to support building for ARMV6 architecture. The options specified here are same as for ARMV5 except 
+# the --cpu 6 option in INVARIANT_OPTIONS. This specifies to compiler to compile for generic ARMV6. If any other 
+# specific options are required such as --cpu ARM1136J-S, etc, then it can be done via a different BSF file
+# NOTE: The options specified here for the compiler disable the unaligned memory access.
+
+CUSTOMIZES ARMV5
+
+INVARIANT_OPTIONS --cpu MPCore --enum_is_int -Ono_known_library --fpmode ieee_no_fenv --export_all_vtbl --no_vfe --apcs /inter --memaccess -UL41
+
+SMP
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/platform/ARMV6T2.bsf	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,20 @@
+#<bsf>#
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# This BSF file is to support building for ARM 6T2 architecture. The options specified
+# here are same as for ARMV6 except --cpu 6T2 (instead of --cpu 5T).
+
+CUSTOMIZES ARMV5
+
+INVARIANT_OPTIONS --cpu 6T2 $(ENUM_OPTION) $(OWN_LIBRARY_OPTION) $(FPMODE_OPTION) $(EXPORT_VTBL_OPTION) $(VFE_OPTION) $(AAPCS_OPTION) $(NO_UNALIGNED_ACCESS)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/platform/ARMV6_abiv1.BSF	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,22 @@
+#<bsf>#
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# This BSF file is to support building for ARMV6 architecture. The options specified here are same as for ARMV5 except 
+# the --cpu 6 option in INVARIANT_OPTIONS. This specifies to compiler to compile for generic ARMV6. If any other 
+# specific options are required such as --cpu ARM1136J-S, etc, then it can be done via a different BSF file
+# NOTE: The options specified here for the compiler disable the unaligned memory access.
+
+CUSTOMIZES ARMV5_ABIV1
+
+INVARIANT_OPTIONS --cpu 6 --enum_is_int -Ono_known_library --fpmode ieee_no_fenv --export_all_vtbl --no_vfe --apcs /inter --memaccess -UL41
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/platform/ARMV7.bsf	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,23 @@
+#<bsf>#
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# This BSF file is to support building for ARMV 7-A architecture.
+
+CUSTOMIZES ARMV5
+
+INVARIANT_OPTIONS --cpu=7-A $(ENUM_OPTION) $(OWN_LIBRARY_OPTION) $(FPMODE_OPTION) $(EXPORT_VTBL_OPTION) $(VFE_OPTION) $(AAPCS_OPTION) $(NO_UNALIGNED_ACCESS)
+
+# On ARMV7 we use DWARF 3 instead of DWARF 2.
+DEBUG_FORMAT $(DEBUG_FORMAT_DWARF3)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/platform/GCCE.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,636 @@
+# Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# This file provides the definition of variables that are used by the component specific makefile
+# This is for the BPABI (Base Platform ABI) platform using the GCCE compiler.
+# Functions added as the part of Plugin Architecture
+# 
+#
+
+#function to find the include path
+define find-inc-path
+	$(subst /bin/../,/,$(subst libgcc.a,%,$(shell $(CC) -print-libgcc-file-name)))
+endef
+
+#function to find the installation path
+define find_install_path
+	$(subst /bin/../lib/gcc/arm-none-symbianelf/3.4.3,,$(subst libgcc.a,,$(shell $(CC) -print-libgcc-file-name)))
+endef
+
+#function to include the version info
+define find-version-info
+$(strip $(shell $(CC) $(VERSION_OPTION)))
+endef
+
+#function to find the library path
+#function to determine the libgcc path
+define find-gcclib-path
+	"$(patsubst %libgcc.a,%,$(shell $(CC) -print-libgcc-file-name))"
+endef
+
+#function to determine the libsupc++ path
+define find-libsupc-path
+	"$(patsubst %/libsupc++.a,%,$(shell $(CC) -print-file-name=libsupc++.a))"
+endef
+
+#---------------
+# Path Settings
+#---------------
+
+# Compiler Installation Location
+CC_INSTALL_PATH=$(strip $(call find_install_path))
+
+#----------------------------------
+# Programs used from the ToolChain
+#----------------------------------
+
+# C++ Compiler
+CC=arm-none-symbianelf-g++
+
+# Linker
+LD=arm-none-symbianelf-ld
+
+# Assembler
+ASM=arm-none-symbianelf-as
+
+# Archiver
+AR=arm-none-symbianelf-ar
+
+# Translator to translate the GCC inline assembler code
+TRANASM=
+
+#--------------------
+# Option Prefix
+#--------------------
+
+# This value will be used by the backend to segregate one option from the other.
+# If option prefix is one among '+','*','.'or '?' (these metacharacters have specific predefined meaning 
+# for pattern matching in Perl) then it should be preceded with '\'.
+OPTION_PREFIX=
+
+#------------------
+# Compiler Options
+#------------------
+
+# Flag whether the compiler requires Unix slashes for absolute paths
+UNIX_SLASH_FOR_CC_ABS_PATHS=1
+
+#-------------------
+# Debug Mode Options
+#-------------------
+
+# Optimization Level in DEBUG mode
+DEBUG_OPTIMISATION=
+
+# Option to produce debug information:
+#   -g1: little information.
+#   -g2: more information.
+#   -g : same as -g2.
+#   -g3: maximum amount of information. For example, at this level information
+#        about macros is created.
+DEBUG_OPTION=-g3
+
+# Option to set the debug format.
+#
+# GCC doesn't support the full DWARF3 format.
+DEBUG_FORMAT:=-gdwarf-2
+
+# Specific compiler options for a UDEB build
+SYMBIAN_UDEB_CCFLAGS= $(DEBUG_OPTION) $(DEBUG_FORMAT)
+
+#-------------------------
+# Target Processor Options 
+#-------------------------
+
+# Option to select the appropriate target processor
+TARGET_ARCH_OPTION=-march=armv5t
+
+# Option to generate the approproate ARM instruction set.
+ARM_INSTRUCTION_SET=-marm
+
+# Option to generate the approproate thumb instruction set.
+THUMB_INSTRUCTION_SET=-mthumb
+
+# Compiler define for thumb instruction set
+COMPILER_THUMB_DEFINES=-D__MARM_THUMB__
+
+# Compiler define for interwork
+COMPILER_INTERWORK_DEFINES=-D__MARM_INTERWORK__
+
+# Option to specify the floating point conformance. 
+FPMODE_OPTION=
+
+# Compiler option to select softvfp mode
+SOFTVFPMODE_OPTION=-msoft-float
+
+# Compiler option to select hardware floating point unit
+VFP2MODE_OPTION=
+
+# Option to force all enumerations to be stored in as integers. 
+ENUM_OPTION=
+
+#---------------------------------
+# Options controlling C++ Features
+#---------------------------------
+
+# Option for handling Virtual functions and Virtual Tables
+EXPORT_VTBL_OPTION=
+
+# Disables unused virtual function elimination (VFE) in C++ mode. --vfe is the default
+VFE_OPTION= 
+
+# Option to turn on exception handling
+EXCEPTIONS=-fexceptions
+NO_EXCEPTIONS=-fno-exceptions
+
+#-------------------------------------------------------------------------
+# Options controlling the ARM Architecture Procedure Call Standard (AAPCS)
+#-------------------------------------------------------------------------
+
+# This Option is for ARM Architecture Procedure Call Standard with the 
+# qualifier to support calls between the ARM and Thumb instruction sets.
+AAPCS_OPTION=-mapcs -mthumb-interwork
+
+#-----------------------------------------------------------
+# Options controlling generation of Compiler Warnings/Errors 
+#-----------------------------------------------------------
+
+# Option to control the Compiler warnings
+CC_WARNINGS_CONTROL_OPTION=-Wall -Wno-unknown-pragmas
+
+# Option to control the Compiler warnings for building Standard C++ application
+CC_STDCPP_WARNINGS_CONTROL_OPTION=-Wall -Wno-unknown-pragmas
+
+# Option to suppress the Compiler errors
+CC_ERRORS_CONTROL_OPTION=
+
+# Option to suppress the Compiler errors for building Standard C++
+CC_STDCPP_ERRORS_CONTROL_OPTION=
+
+# Option to modify the Compiler warnings and errors for Symbian OS
+SYMBIAN_CC_MESSAGE_OPTION=$(CC_WARNINGS_CONTROL_OPTION) $(CC_ERRORS_CONTROL_OPTION)
+
+#-----------------
+# Optional Options
+#-----------------
+
+# Compiler option to avoid the generation of the intermediate files. (Optional)
+TEMP_FILES_OPTION=-pipe
+
+# Library Option
+OWN_LIBRARY_OPTION=
+
+# Option to generate the Object File
+COMPILE_ONLY_OPTION=-c
+
+# Option to generate the Preprocessed File
+PREPROCESSOR_OPTION=-E
+
+# Other additional Options to be passed to the compiler
+EXTRA_CC_OPTION=
+
+#---------------------
+# Preprocessor Options
+#---------------------
+
+# Prefix Header File passed to the preprocessor
+PREFIXFILE=$(EPOCROOT)EPOC32\INCLUDE\GCCE\GCCE.h
+
+# For .cpp Source files
+CPP_LANG_OPTION=-x c++ -Wno-ctor-dtor-privacy
+
+# For .c Source files
+C_LANG_OPTION=-x c
+
+# For .cia Source files
+CIA_LANG_OPTION=-x c++ -S -Wa,-adln
+
+#-------------------
+# Assembler Options
+#-------------------
+
+# Option to generate the Assembler instructions
+ASSEMBLER_LISTING_OPTION=-S
+
+# Output option used to pass the output file name
+ASM_OUTPUT_OPTION=-o
+
+#------------------
+# Translator Options
+#------------------
+
+# Flags to be passed to the translator
+TRANASM_FLAGS=-n -s 
+
+# Output option used to pass the output file name
+TRANASM_OUTPUT_OPTION=-o=
+
+# Input option used to pass the input file name
+TRANASM_INPUT_OPTION=
+
+#---------------------------
+# Include Options and Files
+#---------------------------
+
+# Option to specify the location of the header files
+INCLUDE_OPTION=-I
+
+# Preinclude file for that compiler that contains all the compiler specific definitions
+# required by the Symbian OS source code.
+PREINCLUDE_OPTION=-include $(EPOCROOT)EPOC32/INCLUDE/GCCE/GCCE.h
+
+# Include options required by Function Call Logger  
+FC_LOGGER_INCLUDE_OPTION=-I
+FC_LOGGER_DICTIONARY_FILE_NAME=--dictionary_file_name
+FC_LOGGER_GENERATED_C_FILE_NAME=--gen_c_file_name
+
+# Preinclude file to be passed to the Function Call Logger which uses EDG compiler 
+PREINCLUDE_OPTION_FCLOGGER=$(FC_LOGGER_INCLUDE_OPTION) $(EPOCROOT)EPOC32/INCLUDE/GCCE --preinclude edg_gcce.h
+
+# Option to control the search for the header files. For example, if we do not want to do a search in the
+# standard include directory of C++, then can restrict it by providing the appropriate option.
+HEADER_FILES_CONTROL_OPTION=-nostdinc
+
+# Path to pick the header files from the Compiler installation directory
+COMPILER_INCLUDE_PATH=$(call find-inc-path)include
+
+# Fetches the version of the tools from the installation directory
+VERSION_OPTION=-dumpversion
+VERSION_INFO:=$(call find-version-info)
+
+GCC_MAJOR:=$(word 1,$(subst ., , $(VERSION_INFO)))
+GCC_MINOR:=$(word 2,$(subst ., , $(VERSION_INFO)))
+
+#---------------------
+# Release Mode Options
+#---------------------
+
+# Optimization Level in RELEASE mode
+REL_OPTIMISATION=-O2 -fno-unit-at-a-time
+
+# Specific compiler options for a UREL build
+SYMBIAN_UREL_CCFLAGS=
+
+#---------------------------------
+# Symbol Attribute Setting Options
+#---------------------------------
+
+# Option to set the visibility of runtime symbols as DEFAULT (instead of HIDDEN)
+RUNTIME_SYMBOL_VISIBILITY_OPTION=
+
+# Option to specify the output of the toolchain
+OUTPUT_OPTION=-o
+
+# Options to be passed when building System Target(kernel)
+KERNEL_OPTIONS=$(ARM_INSTRUCTION_SET) $(NO_EXCEPTIONS)
+
+# Options to be passed when building in Arm mode
+ARM_OPTIONS=$(ARM_INSTRUCTION_SET)
+
+# Options to be passed when building in Thumb mode
+THUMB_OPTIONS=$(THUMB_INSTRUCTION_SET)
+
+# Common compiler options for Arm and Thumb mode
+COMMON_OPTIONS=$(SYMBIAN_CC_MESSAGE_OPTION)
+
+# Invariant Options which cannot be modified by the user from MMP file
+INVARIANT_OPTIONS= $(TARGET_ARCH_OPTION) $(ENUM_OPTION) $(OWN_LIBRARY_OPTION) $(FPMODE_OPTION) $(EXPORT_VTBL_OPTION) $(VFE_OPTION) $(AAPCS_OPTION)
+
+# Common compiler options for compiling programs targeted at Symbian OS
+CCFLAGS=$(COMMON_OPTIONS)  $(INVARIANT_OPTIONS) $(TEMP_FILES_OPTION) $(HEADER_FILES_CONTROL_OPTION) $(COMPILE_ONLY_OPTION) $(EXTRA_CC_OPTION)
+
+#------------------
+# Linker Options
+#------------------
+
+# Output option used to pass the output file name
+LINKER_OUTPUT_OPTION=-o
+
+# Option to generate debug information
+LINKER_DEBUG_OPTION=
+
+# Option to *not* generate debug information.
+LINKER_NODEBUG_OPTION=--strip-debug
+
+#--------------------------------------------------------------
+# Options to generate executables conforming to BPABI standards
+#--------------------------------------------------------------
+
+# Option to generate an executable conforming to the Base Platform ABI for the ARM Architecture
+BPABI_OPTION=
+
+# The `R_ARM_TARGET1' relocation is typically used for entries in the `.init_array' section. It is
+# interpreted as either `R_ARM_REL32' or `R_ARM_ABS32', depending on the target. The following option
+# override the default export relocations.
+ifeq "$(GCC_MAJOR)" "3"
+	TARGET_RELOCATION_OPTION:=--target1-abs
+else
+	TARGET_RELOCATION_OPTION:=--target1-rel
+endif
+
+#-------------------------------------
+# Options to specify the output format
+#-------------------------------------
+
+# Option to create a relocatable ELF image. A relocatable image has a dynamic segment that contains 
+# relocations that can be used to relocate the image post link-time.
+RELOCATABLE_IMAGE_OPTION=
+
+# Option to create an ELF shared object.
+SHARED_OBJECT_OPTION=-shared
+
+#-------------------------------------------
+# Options to set the Start of RO/RW sections
+#-------------------------------------------
+
+# Option to set the start of the code section (RO Region)
+CODE_SEGMENT_START=-Ttext
+
+# Option to split object into RO and RW sections
+SPLIT_OPTION=
+
+# Option to set the start of the Data section (RW region)
+RW_BASE_OPTION=-Tdata
+
+# Option to be passed to the linker to set the start of the data section (RW region)
+DATA_SEGMENT_START=$(SPLIT_OPTION) $(RW_BASE_OPTION)
+
+#---------------------------------------------------------
+# Options controlling generation of Linker Warnings/Errors 
+#---------------------------------------------------------
+
+# Option to control the Linker warnings
+LD_WARNINGS_CONTROL_OPTION=
+
+# Option to suppress the Linker errors
+LD_ERRORS_CONTROL_OPTION=
+
+# Option to modify the Linker warnings and errors for Symbian OS
+SYMBIAN_LD_MESSAGE_OPTION=$(LD_WARNINGS_CONTROL_OPTION) $(LD_ERRORS_CONTROL_OPTION)
+
+# Option to specify whether unresolved symbol references from regular object files can be allowed or not.
+UNRESOLVED_SYMBOL_REF_OPTION=--no-undefined
+
+# Option to specify the undefined reference
+UNDEFINED_SYMBOL_REF_OPTION=-u
+
+# Other additional Options to be passed to the Linker
+EXTRA_LD_OPTION=
+
+#-------------------
+#Entry Point Options
+#-------------------
+
+# Option to pass the explicit symbol for beginning execution of the program
+LINKER_ENTRY_OPTION=--entry
+
+# Symbol used to denote the Start of the gouped archives.
+START_GROUP_SYMBOL=
+
+# Symbol used to denote the End of the gouped archives.
+END_GROUP_SYMBOL=
+
+#-------------------------	
+# Library Specific Options
+#-------------------------
+
+# Option to control the search in the standard libraries
+STDLIB_OPTION=-nostdlib
+
+# Additional static libraries that should be supplied to the linker to be linked with
+STATIC_LIBS_LIST=-lsupc++ -lgcc
+
+# Option to pass the path from where the runtime libraries should be picked up
+STATIC_LIBS_PATH=-L
+
+# Fetches the library path from the installation directory, here the functions will return null if the 
+# proper installation path is not set in the Environment Variable
+STATIC_LIBRARY_PATH=$(STATIC_LIBS_PATH)$(call find-gcclib-path) $(STATIC_LIBS_PATH)$(call find-libsupc-path)
+STATIC_LIBS=$(STATIC_LIBRARY_PATH)
+
+# Additional runtime libraries that should be supplied to the linker to be linked with
+# Provide the libraries separated by space, scppnwdl.dso should come before drtrvct2_2.dso
+RUNTIME_LIBS_LIST=dfpaeabi.dso dfprvct2_2.dso drtaeabi.dso scppnwdl.dso drtrvct2_2.dso
+ifeq "$(GCC_MAJOR)" "3" 
+	RUNTIME_LIBS_LIST=dfpaeabi.dso dfprvct2_2.dso drtaeabi.dso drtrvct2_2.dso
+else
+	RUNTIME_LIBS_LIST=drtaeabi.dso dfpaeabi.dso drtrvct3_1.dso dfprvct3_1.dso 
+endif
+
+# The library that contains operator new and operator delete.
+SYM_NEW_LIB=scppnwdl.dso
+
+# Option to pass the path from where the runtime libraries should be picked up
+RUNTIME_LIBS_PATH=
+
+# Option to turn on implicit symbol versioning
+SYMVER_OPTION=--default-symver
+
+# Option to specify the shared object name that is stored in the executable
+SO_NAME_OPTION=-soname
+
+# Option to generate the map file that provides information about the linking
+LINKER_SYMBOLS_OPTION=-Map
+
+# Option to specify the Symbols file
+LINKER_SYMBOLS_FILE_OPTION=
+
+# Option to produce the Map file that provides information about linking
+LINKER_SYMBOLS_MAP_OPTION=$(LINKER_SYMBOLS_OPTION) $(LINKER_SYMBOLS_FILE_OPTION)
+
+# Option to specify the linker script file
+LINKER_SCRIPT_FILE_OPTION=-T
+
+#Via file prefix and suffix 
+VIA_FILE_PREFIX=-(
+VIA_FILE_SUFFIX=-)	
+
+# option to take object file names from other(via) file, here the condition check for 
+# GCCE compiler version is done as the via option differs for different versions in GCCE
+ifeq ($(shell $(CC) -dumpversion),3.4.3)
+	COMMANDFILE_OPTION=
+else 
+	COMMANDFILE_OPTION=@
+endif
+
+# Linker options which can be customized from BSF 
+LD_OPTIONS=$(SYMBIAN_LD_MESSAGE_OPTION)$(UNRESOLVED_SYMBOL_REF_OPTION) $(STDLIB_OPTION) $(EXTRA_LD_OPTION)
+
+# Linker option common to all link commands for UREL build
+SYMBIAN_UREL_LINK_FLAGS=$(BPABI_OPTION) $(RELOCATABLE_IMAGE_OPTION) $(TARGET_RELOCATION_OPTION) $(LD_OPTIONS)
+
+# Linker option common to all link commands for UDEB build
+SYMBIAN_UDEB_LINK_FLAGS=$(BPABI_OPTION) $(RELOCATABLE_IMAGE_OPTION) $(TARGET_RELOCATION_OPTION) $(LD_OPTIONS)
+
+#-----------------
+# Archiver Options
+#-----------------
+
+# ARCHIVER variable should be set since there is a dependency for this variable in e32test.
+ARCHIVER= $(AR)
+
+ARCHIVER_CREATE_OPTION=cr
+
+# Archiver options which can be set from BSF files
+AR_OPTIONS=
+
+#--------------------------------------
+# Compiler and Platform specific macros
+#--------------------------------------
+
+# Macro definitions required to identify the compiler. Allows for conditional compilation based on compiler
+PLATFORM_DEFINES=-D__MARM_ARMV5__
+
+COMPILER_DEFINES=-D__GCCE__
+
+# Compiler target option
+COMPILER_PLAT=GCCE
+
+#--------------------------------------
+# Function Call Logger Options
+#--------------------------------------
+FC_LOGGER_OPTION=--wchar_t_keyword --microsoft_version=1300 --diag_suppress 66,161,611,654,815,830,997,1152,1300,1390 
+
+# Defines for Function Call Logger 
+FC_LOGGER_DEFINES=
+
+#------------
+# OE Options
+#------------
+
+# Options to export all the globol symbols and import undefined references, required by OE
+OE_OPTIONS=-fvisibility=default
+
+# OE Glue code libs
+OE_EXE_LIBS=libcrt0.lib
+OE_EXE_LIBS_WCHAR=libwcrt0.lib
+
+# OE Import Libs
+OE_IMPORT_LIBS=euser.lib
+
+# The library that contains operator new and operator delete.
+OE_NEW_LIB=stdnew.dso
+
+#-----------------------------------------------------------------------------------------------------
+#This section defines the interface with Symbian tools 
+#This SHOULD NOT be changed as any changes in this section will not be picked up by the tools back end
+#-----------------------------------------------------------------------------------------------------
+
+# Programs used from the ToolChain
+export  CC
+export  LD
+export  ASM
+export  AR
+export  TRANASM
+
+# Preprocessor Options
+export  PREFIXFILE
+export  CPP_LANG_OPTION
+export  C_LANG_OPTION
+export  CIA_LANG_OPTION
+
+# Option Prefix
+export OPTION_PREFIX
+
+# Compiler Options
+export	PREPROCESSOR_OPTION
+export  ASSEMBLER_LISTING_OPTION
+export  ASM_OUTPUT_OPTION
+export  INCLUDE_OPTION
+export  PREINCLUDE_OPTION
+export  HEADER_FILES_CONTROL_OPTION
+export  COMPILER_INCLUDE_PATH
+export  SYMBIAN_UREL_CCFLAGS
+export  SYMBIAN_UDEB_CCFLAGS
+export  REL_OPTIMISATION
+export  DEBUG_OPTIMISATION
+export  ARM_OPTIONS
+export  THUMB_OPTIONS
+export  COMMON_OPTIONS
+export  INVARIANT_OPTIONS
+export  KERNEL_OPTIONS
+export  COMPILER_THUMB_DEFINES
+export  COMPILER_INTERWORK_DEFINES
+export  SOFTVFPMODE_OPTION
+export  VFP2MODE_OPTION
+export  RUNTIME_SYMBOL_VISIBILITY_OPTION
+export  OUTPUT_OPTION
+export  CCFLAGS
+export  UNIX_SLASH_FOR_CC_ABS_PATHS
+export  EXCEPTIONS
+export  NO_EXCEPTIONS
+export 	VERSION_INFO
+
+# Linker Options
+export  LINKER_OUTPUT_OPTION
+export  LINKER_DEBUG_OPTION
+export  LINKER_NODEBUG_OPTION
+export  CODE_SEGMENT_START
+export  DATA_SEGMENT_START
+export  UNDEFINED_SYMBOL_REF_OPTION
+export  LINKER_ENTRY_OPTION
+export  START_GROUP_SYMBOL
+export  END_GROUP_SYMBOL
+export  SHARED_OBJECT_OPTION
+export  STDLIB_OPTION
+export  STATIC_LIBS_LIST
+export  STATIC_LIBS_PATH
+export 	STATIC_LIBRARY_PATH
+export  STATIC_LIBS
+export  RUNTIME_LIBS_LIST
+export  RUNTIME_LIBS_PATH
+export  SYM_NEW_LIB
+export  SYMVER_OPTION
+export  SO_NAME_OPTION
+export  LINKER_SYMBOLS_MAP_OPTION
+export  COMMANDFILE_OPTION
+export	VIA_FILE_PREFIX
+export	VIA_FILE_SUFFIX
+export  SYMBIAN_UREL_LINK_FLAGS
+export  SYMBIAN_UDEB_LINK_FLAGS
+export  LD_OPTIONS
+
+# Archiver Options
+export  ARCHIVER
+export  ARCHIVER_CREATE_OPTION
+export  AR_OPTIONS
+
+# Compiler Specific Defines
+export  COMPILER_DEFINES
+export  COMPILER_PLAT
+
+# Platform Specific Defines
+export  PLATFORM_DEFINES
+
+# Translator Options
+export  TRANASM_FLAGS
+export  TRANASM_OUTPUT_OPTION
+export  TRANASM_INPUT_OPTION
+
+# Function Call Logger options
+export PREINCLUDE_OPTION_FCLOGGER
+export FC_LOGGER_OPTION
+export FC_LOGGER_DEFINES
+export FC_LOGGER_INCLUDE_OPTION
+export FC_LOGGER_DICTIONARY_FILE_NAME
+export FC_LOGGER_GENERATED_C_FILE_NAME
+
+#OE Options
+export OE_OPTIONS
+export OE_EXE_LIBS
+export OE_EXE_LIBS_WCHAR
+export OE_IMPORT_LIBS
+export OE_NEW_LIB
+
+#-----------------------------------------------------------------------------------------------------
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/platform/GCCEV6.bsf	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,20 @@
+#<bsf>#
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# This BSF file is to support building for the ARMV6 architecture.
+
+CUSTOMIZES GCCE
+
+INVARIANT_OPTIONS -march=armv6 -mapcs -mthumb-interwork
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/platform/GCCEV6T2.bsf	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,20 @@
+#<bsf>#
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# This BSF file is to support building for the ARMV6T2 architecture.
+
+CUSTOMIZES GCCE
+
+INVARIANT_OPTIONS -march=armv6t2 -mapcs -mthumb-interwork
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/platform/GCCEV7.bsf	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,20 @@
+#<bsf>#
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# This BSF file is to support building for the ARMV7-A architecture.
+
+CUSTOMIZES GCCE
+
+INVARIANT_OPTIONS -march=armv7-a -mapcs -mthumb-interwork
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/platform/armutl.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,181 @@
+# Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# this package does various ancillary things for armedg modules
+# 
+#
+
+package Armutl;
+
+require Exporter;
+@ISA=qw(Exporter);
+@EXPORT=qw(
+	Armutl_Help_Mmp
+
+	Armutl_DoMmp
+
+	Armutl_ArmIncDir
+	Armutl_ArmLibList
+	Armutl_ArmRT
+	Armutl_AsmFileList
+	Armutl_ArmVersion
+	Armutl_RVCTMajorVersion
+	Armutl_RVCTMinorVersion
+	Armutl_RVCTPatchLevel
+	Armutl_RVCTBuildNumber
+	Armutl_ArmLibDir
+);
+
+use strict;
+use RVCT_plat2set;
+
+my $ArmInc='';
+my @ArmLibList=();
+my $ArmRT=0;
+my @AsmFileList=();
+
+# make sure that some of the tool subroutines  still work in case of Plat() does not exists in namespace main
+my $Plat = main::Plat() if defined &main::Plat;
+
+my ($RVCTMajorVersion, $RVCTMinorVersion, $RVCTBuildNumber) = RVCT_plat2set::get_version_list($Plat);
+
+my $RVCTVersion = "$RVCTMajorVersion.$RVCTMinorVersion";
+my $RVCTPatchLevel = 0;
+
+
+sub Armutl_Help_Mmp {
+# provide the help text for START <armedg platforms> END blocks
+
+	print
+		"ARMINC  // include value of RVCT*INC environment variable to search paths\n",
+		"ARMLIBS // list the ARM supplied libraries to be linked against\n",
+		"ARMRT   // indicates this target froms part of the runtime and so\n",
+                "        // shouldn't be linked against itself or other runtime libs\n",
+	        "ARMNAKEDASM // list .cpp files subject to auto-translation from GCC inline asm to ARM embedded asm\n"
+	;
+}
+
+sub Armutl_DoMmp (@) { # takes platform text
+	my @PlatTxt=@_;
+
+	my $BaseTrg=&main::BaseTrg;
+	my $BasicTrgType=&main::BasicTrgType;
+	my $MakeFilePath=&main::MakeFilePath;
+	my $MMPFILE=&main::MmpFile;
+	my @UidList=&main::UidList;
+
+	# set up START ARMV5|THUMB2 ... END block module variables
+	my @MmpWarn=();
+	my $Line;
+
+	LINE: foreach $Line (@PlatTxt) {
+		my $LineInfo=shift @$Line;
+		$_=shift @$Line;
+		if (/^ARMINC$/o) {
+			$ArmInc = RVCT_plat2set::get_inc_path($Plat);
+			next LINE;
+		}
+		if (/^ARMRT$/o) {
+		    $ArmRT = 1;
+		    next LINE;
+		}
+		if (/^ARMLIBS$/o) {
+			my $LibVar = "RVCT${RVCTMajorVersion}${RVCTMinorVersion}LIB";
+			my $ArmLibDir = RVCT_plat2set::get_lib_path($Plat);
+
+			push @MmpWarn, "$LineInfo : No libraries specified for keyword ARMLIBS\n" unless @$Line;
+
+			while (@$Line) {
+			  my $lib = shift @$Line;
+
+              my $lib_path = RVCT_plat2set::find_lib( $Plat, $lib );
+
+              if ($lib_path)
+              {
+				  push @ArmLibList, $lib_path;
+              }
+              else
+              {
+				  push @MmpWarn, "$LineInfo : arm library file $lib not found.\n" ;
+              }
+			}
+			next LINE;
+		      }
+		if (/^ARMNAKEDASM$/o) {
+		    push @MmpWarn, "$LineInfo : No files specified for keyword ARMNAKEDASM\n" unless @$Line;
+		    push @AsmFileList, @$Line;
+		    next LINE;
+		}
+		push @MmpWarn, "$LineInfo : Unrecognised Keyword \"$_\"\n";
+	}
+
+	undef $Line;
+	if (@MmpWarn) {
+		warn
+			"\nMMPFILE \"$MMPFILE\"\n",
+			"START .. END BLOCK WARNINGS(S)\n",
+			@MmpWarn,
+			"\n"
+		;
+	}
+	undef @MmpWarn;
+    }
+
+sub Armutl_ArmIncDir() {
+    $ArmInc;
+}
+
+sub Armutl_ArmLibList() {
+    @ArmLibList;
+}
+
+sub Armutl_ArmRT() {
+    $ArmRT;
+}
+
+sub Armutl_AsmFileList() {
+    @AsmFileList;
+}
+
+sub Armutl_ArmVersion() {
+  return $RVCTVersion;
+}
+
+sub Armutl_RVCTMajorVersion() {
+  return $RVCTMajorVersion;
+}
+
+sub Armutl_RVCTMinorVersion() {
+  return $RVCTMinorVersion;
+}
+
+sub Armutl_RVCTPatchLevel() {
+  return $RVCTPatchLevel;
+}
+
+sub Armutl_RVCTBuildNumber() {
+  return $RVCTBuildNumber;
+}
+
+sub Armutl_ArmLibDir() {
+  my $LibVar = "RVCT${RVCTMajorVersion}${RVCTMinorVersion}LIB";
+  my $ArmLibDir = $ENV{$LibVar};
+  return $ArmLibDir;
+}
+
+1;
+
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/platform/bpabiutl.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,141 @@
+# Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# This package  does various ancillary things for BPABI (Base Platform ABI) platforms
+# 
+#
+
+package BPABIutl;
+
+require Exporter;
+@ISA=qw(Exporter);
+@EXPORT=qw(
+	BPABIutl_Plat_List
+	BPABIutl_Config_Path
+	BPABIutl_Get_Config_Variables
+);
+
+use E32Variant;
+require E32Plat;
+
+my %ConfigPath;
+my $variantABIV2Keyword = &Variant_GetMacro();
+
+sub BPABIutl_Plat_List {
+
+# Identify the BPABI platforms to be supported based on the compiler configuration files
+# present in the location specified by the environment variable "SYMBIAN_COMPILATION_CONFIG_DIR"
+# and in the directory $EPOCROOT\epoc32\tools\compilation_config
+
+	my @CompilerConfigPath;
+
+	if (exists($ENV{'SYMBIAN_COMPILATION_CONFIG_DIR'})) 
+	{
+		my $Path = $ENV{SYMBIAN_COMPILATION_CONFIG_DIR};
+		@CompilerConfigPath = split(/;/, $Path);
+	}
+
+	push @CompilerConfigPath, "$ENV{EPOCROOT}epoc32\\tools\\compilation_config";
+
+	my $ConfigDir;
+	my @BPABIPlats = ();
+
+	foreach $ConfigDir (@CompilerConfigPath)
+	{
+		opendir DIR, "$ConfigDir";
+		my @Plats=grep /\.mk$/i, readdir DIR;
+		my $Plat;
+		foreach $Plat (@Plats) 
+		{
+# The platform name will be same as the name of the configuration file <config.mk>
+# with the suffix '.mk' removed
+			$Plat =~ s/\.mk//;
+			if ($variantABIV2Keyword) {
+				if ($Plat =~ /^armv5_abiv2$/i) {
+					$Plat = "ARMV5";
+				}
+			}
+			else {
+				if ($Plat =~ /^armv5$/i) {
+					$Plat = "ARMV5_ABIV2";
+				}
+			}
+			unless (grep /$Plat$/i, @BPABIPlats) {
+				$Plat = uc $Plat;
+				push @BPABIPlats, $Plat;
+				if (!$variantABIV2Keyword && $Plat =~ /^ARMV5_ABIV2$/i) {
+					$ConfigPath{$Plat} = "$ConfigDir\\ARMV5.mk";
+				}
+				else {
+					$ConfigPath{$Plat} = "$ConfigDir\\$Plat.mk";
+				}
+			}
+		}
+	}
+	closedir DIR;
+	return @BPABIPlats;
+}
+
+sub BPABIutl_Config_Path($) {
+	my ($plat) = @_;
+# Returns the Path of the compiler configuration file
+	if (!keys(%ConfigPath))
+	{
+	    # Running for first time so initialise ConfigPath
+	    BPABIutl_Plat_List();
+	}
+	if (!$ConfigPath{$plat})
+	{
+		# Get the root platform name to support hierarchy of customizations
+		my $CustomizedPlat =  &E32Plat::Plat_Root($plat);
+
+# In default ABIV1 mode, the platform name for v2 mode of ARMV5 is ARMV5_ABIV2
+		if ( !$variantABIV2Keyword && $CustomizedPlat =~ /^ARMV5$/i ){
+			$ConfigPath{$plat} = $ConfigPath{ARMV5_ABIV2};
+		}
+
+# In default ABIV2 mode, the platform name for v2 mode of ARMV5 is ARMV5
+		elsif ( $variantABIV2Keyword && $CustomizedPlat =~ /^ARMV5$/i) {
+			$ConfigPath{$plat} = $ConfigPath{ARMV5};
+		}
+		else{
+			$ConfigPath{$plat}=$ConfigPath{$CustomizedPlat};
+		}
+	}
+	return "$ConfigPath{$plat}";
+}
+
+# routine to extract a set of variables from the compilation configuration
+# file. The variables extracted are determined by the extractvars.make file.
+# The variables are returned in a hash.
+sub BPABIutl_Get_Config_Variables
+{
+    my ($plat) = @_;
+    my $configfile = BPABIutl_Config_Path($plat);
+    my $extractvars = "$ENV{EPOCROOT}epoc32\\tools\\compilation_config\\extractvars.make";
+    my $command = "make CONFIG_FILE=$configfile -s -f $extractvars" ;
+    my $result = `$command`;
+    my %vars;
+    my @lines = split('\n', $result);
+    foreach my $line (@lines)
+    {
+	chomp $line;
+	if ($line =~ /(\w+)=(.*)/)
+	{
+	    $vars{$1} = $2;
+	}
+    }
+    return %vars;
+}
+
+1;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/platform/cl_arm.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,2047 @@
+# Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+
+package Cl_arm;
+
+my $ToolPrefix='';
+my %PlatOpt=(
+	'Dlltool'=>'',
+	'Entry'=>'-e',
+	'Ld'=>'',
+	'Elftran'=>'',
+);
+
+# takes an 'expression'  to evaluate with $_ bound to each of the 
+# remaining args
+sub PrintList
+{
+    my $expr = shift @_;
+    foreach (@_) {
+	my $str = eval($expr);
+	&main::Output($str);
+    }
+}
+
+# specify floating point model here
+my $floatingpointmodel = "softvfp";
+
+if (&main::ARMFPU && (&main::ARMFPU =~ /^VFPV2$/i)) {
+	$floatingpointmodel = "vfpv2";
+}
+
+my $Archive;
+my $Link;
+my $Objcopy;
+
+require Exporter;
+@ISA=qw(Exporter);
+@EXPORT=qw(
+	PMHelp_Mmp
+
+	PMPlatProcessMmp
+	
+	PMStartBldList
+		PMBld
+	PMStartSrcList
+		PMBitMapBld
+		PMResrcBld
+		PMStartSrc
+		PMAifBld
+		PMSrcDepend
+			PMSrcBldDepend
+			PMEndSrcBld
+		PMEndSrc
+	PMEndSrcList
+	PMPrefixFile
+	PMSupportsFeatureVariants
+);
+
+use Cwd;
+use Armutl;
+use RVCT_plat2set;
+use cl_generic;
+use E32env;
+use Genutl;
+use strict;
+
+use constant NOCOMPRESSIONMETHOD => 0;
+use constant INFLATECOMPRESSIONMETHOD => 1;
+use constant BYTEPAIRCOMPRESSIONMETHOD => 2;
+
+use constant NON_DEBUGGABLE => 0;
+use constant DEBUGGABLE => 1;
+use constant DEBUGGABLE_UDEBONLY => 2;
+
+use constant NOTPAGED => 0;
+use constant UNPAGED => 1;
+use constant PAGED => 2;
+
+sub PMHelp_Mmp {
+    &Armutl_Help_Mmp;
+}
+
+my $Plat=main::Plat();
+
+my ($RVCTMajorVersion, $RVCTMinorVersion, $RVCTBuildNumber) = RVCT_plat2set::get_version_list($Plat); 
+
+my $RVCTVersion = "${RVCTMajorVersion}_${RVCTMinorVersion}";
+
+my $ARMCCVersion = "${RVCTMajorVersion}${RVCTMinorVersion}0${RVCTBuildNumber}";
+
+my $oP = '--';
+$oP = '-' if ($RVCTMajorVersion == 2 && $RVCTMinorVersion < 2);
+
+#Check if Function call Logger is enabled
+my $Function_Call_Logger=&main::IsFunctionCallLogging();
+
+# Get the information regarding supporting Compiler Wrapper Option
+my $IsCompilerWrapperOption=&main::CompilerWrapperOption();
+
+#Check the existence of elf2e32.exe in the system path
+my $IsExistELF2E32EXE = 0;
+    open ELF2E32PIPE, "elf2e32 2>&1 |";
+    while (<ELF2E32PIPE>) {
+	if($_=~/^Symbian Post Linker\, Elf2E32/) {
+	    $IsExistELF2E32EXE = 1;
+	    last;
+	}
+	next;
+    }
+    close ELF2E32PIPE;
+
+my $ArmIncDir;
+my @ArmLibList;
+my $ArmRT = 0;
+my %AsmFiles = ();
+my %AsmDirs = ();
+my $oe_options = '';
+my $NamedSymLkup = 0;
+my $symNameLkupOpt = '';
+
+
+sub PMPlatProcessMmp (@) {
+        &Armutl_DoMmp(@_);
+	$ArmIncDir = RVCT_plat2set::get_inc_path($Plat);
+	&main::SetStdIncPaths($ArmIncDir);
+	@ArmLibList = &Armutl_ArmLibList;
+	$ArmRT = &Armutl_ArmRT;
+	my @AsmFileList = &Armutl_AsmFileList;
+	foreach (@AsmFileList) { $AsmFiles{ucfirst lc $_} = 1; }
+}
+
+sub SysTrg () {
+	return 1 if &main::SystemTrg;
+	my $ExportLibrary=&main::ExportLibrary;
+	return 1 if ($ExportLibrary =~ /EKERN/i);
+	my $Trg=&main::Trg;
+	return 1 if ($Trg =~ /KSRT/i);
+	return 0;
+}
+
+my $RVCT20 = 0; 
+
+# suppress these warnings & errors
+#Warning: #66-D: enumeration value is out of "int" range 
+# "EUSER\CBASE\Ub_act.cpp", line 20: Warning:  #161-D: unrecognized #pragma
+# 611: overloaded virtual function "entity" is only partially overridden in <entitykind> "entity"
+# "EUSER\CBASE\Ub_act.cpp", line 256: Warning:  #654-D: declaration modifiers are incompatible with previous declaration
+# 997: <entity-kind> "entity" is hidden by "entity" -- virtual function override intended?
+# "EPOC32\include\s32stor.h", line 354: Error:  #1152-D: polymorphic base classes need to be exported as well
+# "INCLUDE\e32base.h", line 31: Warning:  #1300-D: ~CBufBase inherits implicit virtual
+#"COMPSUPP\\RVCT2_1\\Dfpaeabi.cpp", line 87: Warning: A1488W: PROC/FUNC at line 9 without matching ENDP/ENDFUNC
+#"COMPSUPP\\RVCT2_1\\Dfpaeabi.cpp", line 85: Warning: A1464W: ENDP/ENDFUNC without corresponding PROC/FUNC
+#Warning: L6318W: _integrator_cm1136_ekern.in(.text) contains branch to a non-code symbol FindMostSignificantOne(unsigned long).
+
+my $diag_suppressions = '--diag_suppress 66,161,611,654,997,1152,1300,1464,1488,6318,6331';
+
+# downgrade from errors to warnings
+my $diag_warnings = '';
+
+# upgrade from warnings to errors
+# Warning:  #1267-D: Implicit physical register R0 should be defined as a variable
+my $diag_errors = '--diag_error 1267';
+  
+my $commonOptions = $RVCT20 ?
+  "$diag_suppressions $diag_warnings $diag_errors" :
+  "$diag_suppressions $diag_warnings $diag_errors";  
+
+my @mmpOption = &main::ReplaceOptions("ARMCC");
+my $CompilerOption = &main::CompilerOption("ARMCC");
+my $contingentOptions;
+my $thumbOptions = $RVCT20 ? '-thumb' : '--thumb ';
+my $armOptions = $RVCT20 ? '-arm' : '--arm ';
+my $kernelOptions = $RVCT20 ? '-arm' : '--arm --no_exceptions --no_exceptions_unwind';
+my $invariantOptions = $RVCT20 ? 
+  '-cpu 5T --enum_is_int -Ono_known_library --export_vtbl -apcs /inter' :
+  '--cpu 5T --enum_is_int -Ono_known_library --fpmode ieee_no_fenv --export_all_vtbl --no_vfe --apcs /inter';
+$invariantOptions .= ' --dllimport_runtime' unless ($RVCTMajorVersion == 2 && $RVCTMinorVersion < 2);  
+my $exceptions = $RVCT20 ? '' : ' --exceptions --exceptions_unwind';
+my $floatingpoint = $RVCT20 ? '' : ' --fpu '.$floatingpointmodel.'';
+my @FCLogger_Macros; # Macros required to be passed to the FCLogger
+
+my $useLinkerFeedBack = 0;
+
+sub LinkerFeedBackFile() {
+  return unless $useLinkerFeedBack;
+  my $Trg = &main::Trg;
+  return "$Trg.lfb";
+}
+
+sub LinkerFeedBackOption() {
+  return "" unless $useLinkerFeedBack;
+  my $BasicTrgType=&main::BasicTrgType;
+  return "" unless ($BasicTrgType=~/^(DLL|EXE)/o);
+  my $file = LinkerFeedBackFile();
+  return "--feedback $file ";
+}
+
+my %BSF_keywords = (
+		    COMMON_OPTIONS => 1,
+		    THUMB_OPTIONS => 1,
+		    ARM_OPTIONS => 1,
+		    KERNEL_OPTIONS => 1,
+		    INVARIANT_OPTIONS => 1
+		   );
+
+sub Read_BSF_Options() {
+        my %plat = (main::PlatRec());
+	my @Customization_Data = split(/\n/,$plat{'CUSTOMIZATION_DATA'});
+	foreach my $option (@Customization_Data) {
+			next if ($option =~ /^$/);
+	        warn "Unrecognized BSF syntax: $option.\n"
+		        unless ($option =~ /\s*(\S+)\s+(.+)$/);
+		my $key = uc $1;
+		my $val = $2;
+	        warn "Unrecognized BSF keyword: $key.\n"
+		        unless ($BSF_keywords{$key});
+		if ($key =~ /COMMON_OPTIONS/) {
+		        Set_BSF_Options(\$commonOptions,$val);
+			next;
+		}
+		if ($key =~ /THUMB_OPTIONS/) {
+		        Set_BSF_Options(\$thumbOptions,$val);
+			next;
+		}
+		if ($key =~ /ARM_OPTIONS/) {
+		        Set_BSF_Options(\$armOptions,$val);
+			next;
+		}
+		if ($key =~ /KERNEL_OPTIONS/) {
+		        Set_BSF_Options(\$kernelOptions,$val);
+			next;
+		}
+		if ($key =~ /INVARIANT_OPTIONS/) {
+		        Set_BSF_Options(\$invariantOptions,$val);
+			next;
+		}
+
+	}		
+}
+
+# Set the options passed from BSF file 
+# @param OptionName    - BSF Keyword using which the options would be overridden in the BSF file
+# @param Options       - List of options read from the BSF keyword
+sub Set_BSF_Options($$)
+{
+	my ($OptionName,$Options) = @_;
+	my @Fragments=();
+	
+	# Check if the value of BSF option is to be set or added/removed.
+	if($Options =~ /\+\[.*\]\+|\-\[.*\]\-/)
+	{
+		if (@Fragments = Split_BSF_Options($Options,'RemoveOptions'))
+		{
+			foreach my $Opt (@Fragments) 
+			{
+				# Remove trailing white spaces
+				$Opt =~ s/\s+$//;				
+				$$OptionName =~ s/$Opt//g;
+			}					
+			@Fragments=();
+		}
+		if (@Fragments = Split_BSF_Options($Options,'AddOptions')) 
+		{
+			$$OptionName .= " @Fragments";
+			@Fragments=();
+		}		
+		
+		# Warn if options are not present in the form '+[...]+' or '-[...]-'
+		$Options =~ s/\+\[.*?\]\+|\-\[.*?\]\-//g;
+		if($Options !~ /^\s*$/)
+		{
+			print "Warning: Ignoring option(s) \"$Options\" specified in BSF as option(s) should be in the form '+[...]+' or '-[...]-.\n";
+		}
+	}
+	else
+	{
+		$$OptionName = $Options;
+	}		
+	
+	&main::Output(					
+		"\n"
+	);
+}
+
+# Split BSF options to find options which are to be added/removed
+# @param String      - List of options present in form '+[...]+' or '-[....]-'
+# @param $Task       - Variable to decide whether to return options to be addded or options to be removed
+sub Split_BSF_Options($$)
+{
+	my ($String,$Task) = @_;
+    my @Result = ();
+	my @Fragments = ();
+	my $Pattern = '';
+		
+	if ($Task eq 'AddOptions')
+	{
+		# Get the options which are to be added (present in the form '+[...]+')
+		@Fragments = $String =~ /\+\[(.*?)\]\+/g;	
+	}
+	elsif ($Task eq 'RemoveOptions') 
+	{
+		# Get the options which are to be removed (present in the form '-[...]-')
+		@Fragments = $String =~ /\-\[(.*?)\]\-/g;
+	}	
+
+	# Set the value of '$Pattern' which is required to segregate one option from another based on the option prefix.
+	# Option prefix for RVCT can be '-' or '--'.
+	$Pattern = '-{1,2}\S+\s*(?!-)\S*';	
+
+	foreach my $Val (@Fragments) 
+	{
+		my @Opt = $Val =~ /$Pattern/g;
+		push @Result,@Opt;		 		
+	}
+	return @Result;	
+}
+
+sub ComputeCompilerOpts() {
+	my %plat = &main::PlatRec();
+	Read_BSF_Options() if ($plat{'CUSTOMIZES'});
+	my $ABI=&main::ABI;
+	my $TrgType=&main::TrgType;
+	if (SysTrg()) {
+	        $contingentOptions = $kernelOptions.$floatingpoint;
+        } elsif (main::BuildAsARM() or ($ABI eq 'ARMV4')) {
+	        $contingentOptions = $armOptions.$floatingpoint.$exceptions;
+	    } else {
+			$contingentOptions = $thumbOptions.$floatingpoint.$exceptions.' -D__MARM_THUMB__';	
+			push @FCLogger_Macros, '__MARM_THUMB__';
+	}
+	# support for ARMV4
+	my $invopts = "$invariantOptions";
+	if ($ABI eq 'ARMV4') {
+		$invopts =~ s/5T/4/;
+		$invopts =~ s/inter/nointer/;
+	} else {
+		$contingentOptions .= ' -D__MARM_INTERWORK__';
+		push @FCLogger_Macros, '__MARM_INTERWORK__';
+	}
+
+	#Options to export all the external symbols for OE DLL , OE Exe and OE Static Lib
+	if ($TrgType=~/^STDDLL$/o || $TrgType=~/^STDEXE$/o || $TrgType=~/^STDLIB$/o) {
+		$oe_options=' --no_hide_all';
+	}
+
+	return $commonOptions.' '.$contingentOptions.' '.$invopts.' '.$oe_options.' '.&main::CompilerOption("ARMCC");
+}
+
+my $Makecmd;
+
+sub PMStartBldList($) {
+	($Makecmd) = @_;
+	my $ABI=&main::ABI;
+	my $BaseTrg=&main::BaseTrg;
+	my $BasicTrgType=&main::BasicTrgType;
+	my @BldList=&main::BldList;
+	my @ChopSysIncPaths=&main::Path_Chop(&main::SysIncPaths);
+	my @ChopUserIncPaths=&main::Path_Chop(&main::UserIncPaths);
+	my $DefFile=&main::DefFile;
+	my $EPOCPath=&main::EPOCPath;
+	my $LinkAs=&main::LinkAs;
+	my $LibPath=&main::LibPath.'LIB\\';
+	my @MacroList=&main::MacroList();
+	push @MacroList, "__SUPPORT_CPP_EXCEPTIONS__";
+
+	my $VariantFile=&main::VariantFile();
+
+	my $Plat=&main::Plat;
+	my $Trg=&main::Trg;
+	if ($RVCTMajorVersion == 2 && $RVCTMinorVersion < 2) {
+		if ($BasicTrgType=~/^LIB$/o) {
+			# Temporary Workaround for RVCT2.1 static libs problem with RVCT2.2 builds
+			# Rename all the static libs produced with RVCT2.1 as {libname}2_1.lib
+		        if ($Trg=~/^\s*(\S+)(\.lib)$/io) {
+			        if ($1!~/$RVCTVersion/i) {
+				        $Trg=$1.$RVCTVersion.".lib";
+				}
+			}
+			if ($BaseTrg!~/$RVCTVersion/i) {
+			        $BaseTrg .= $RVCTVersion;
+			}
+		}
+	}
+
+	my $TrgType=&main::TrgType;
+	my @UidList=&main::UidList;	
+    my $SystemTrg = &main::SystemTrg;
+    my $ExportLibrary=&main::ExportLibrary;
+    my $NoExportLibrary=&main::NoExportLibrary;
+    # N.B. should get better way to detect kernel probably!!
+    $SystemTrg = 1 if ($ExportLibrary =~ /EKERN/i);
+	
+    # N.B. should get better way to detect this
+    $SystemTrg = 1 if ($Trg =~ /KSRT/i);
+
+	my %Version = &main::Version();
+	my $ExtraExportLibrary;
+	my $PrimaryExportLibrary = $ExportLibrary;
+	unless ($Version{explicit}) {
+		$ExtraExportLibrary = $ExportLibrary;
+		$ExtraExportLibrary =~ s/\{(\d|a|b|c|d|e|f){8}\}//i;
+		$PrimaryExportLibrary = $ExtraExportLibrary;
+	}
+
+#	set up LinkAs
+	$UidList[2]=~/^0x(.*)$/o;
+	if ($1 ne '00000000') { # have to make sure than series of noughts in brackets doesn't appear in name for null uids
+		$LinkAs=join '', &main::Path_Split('Base',$LinkAs),"[$1]",&main::Path_Split('Ext',$LinkAs);
+	}
+
+#	work out the flags for various platforms
+	unless ($ABI eq 'ARMV5' or $ABI eq 'ARMV4') {
+		&main::FatalError("Platform module - ABI \"$ABI\" unrecognised");
+	}
+	my $ComputeCompilerOpts=ComputeCompilerOpts();
+	if (@mmpOption) 
+	{
+		my $pattern = '-{1,2}\S+\s*(?!-)\S*';	
+		foreach my $options (@mmpOption) 
+		{
+			my @opts = $options =~ /$pattern/g;
+			my $count = 0;
+			while ($count <= $#opts) 
+			{
+				my $opt;
+				my $rep;
+				if ($opts[$count] =~ /^(\S+)\s+(\S+)$/) 
+				{
+					$opt = $1;
+					$rep = $2;
+					$ComputeCompilerOpts =~ s/$opt\s+\S+\s+/ $opt $rep /g;
+					$count++;
+				}
+				else
+				{
+					$opt = $opts[$count];
+					$rep = $opts[$count+1];
+					$ComputeCompilerOpts =~ s/$opt/$rep/g;					
+					$count+=2;
+				}
+			}		
+		}
+	}
+
+	$PlatOpt{Arm} = $ComputeCompilerOpts;
+
+	my $InterWorking = ($ABI eq 'ARMV4') ? "" : "--inter";
+
+	$Archive=$ToolPrefix.'armar';
+	$Link=$ToolPrefix."armlink ${oP}diag_suppress 6331,6780 ";
+	$Objcopy=$ToolPrefix.'objcopy';
+
+	&Generic_Header(0,$Makecmd);	# define standard things using absolute paths
+		 
+	if ($Makecmd eq "nmake") {
+		&main::Output(
+			"\n",
+  			"PATH=",&main::Path_Drive,$EPOCPath,"gcc\$(PBUILDPID)\\bin;\$(PATH)\n",
+			"\n"
+		);
+	}
+	else {
+		&main::Output(
+			"\n",
+			"# must set both PATH and Path to make it work correctly\n",
+  			"Path:=",&main::Path_Drive,$EPOCPath,"gcc\$(PBUILDPID)\\bin;\$(Path)\n",
+			"PATH:=\$(Path)\n",
+			"\n"
+		);
+	}
+
+	&main::Output(
+		"INCDIR  ="
+	);
+	PrintList("\" -J \$_\"", @ChopUserIncPaths);
+	PrintList("\" -J \$_\"", @ChopSysIncPaths);
+	if ($ArmIncDir) {
+		&main::Output(
+		    " -J \"$ArmIncDir\" ",
+		);	
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+
+	#Function Call Logger
+	if ($Function_Call_Logger)	{
+		&main::Output(
+			"INCDIR_FCLOGGER  ="
+		);
+		PrintList("\" -I \$_\"", @ChopUserIncPaths);
+		PrintList("\" -I \$_\"", @ChopSysIncPaths);
+		if ($ArmIncDir) {
+			&main::Output(
+				" -I \"$ArmIncDir\" "
+			);	
+		}
+		&main::Output(
+			"\n",
+			"\n"
+		);
+	}
+	
+	&main::Output(
+		"ARMCCFLAGS=$PlatOpt{Arm} -c\\\n",
+		"\n"
+	);
+
+	&main::Output(
+		"ARMCCDEFS = "
+	);
+	PrintList("\" -D\$_\"", @MacroList);
+	
+	if($VariantFile) {
+		if ($Function_Call_Logger) {
+			#FC Logger accepts product include file without path
+			my $file=&main::Path_Split('File', ${VariantFile});
+			
+			&main::Output(
+				" -D\"__PRODUCT_INCLUDE__=\\\"${file}\\\"\""
+			);
+		}
+		else {
+			&main::Output(
+				" -D__PRODUCT_INCLUDE__=\\\"${VariantFile}\\\""
+			);
+		}
+	}
+
+	&main::Output(
+		" \$(USERDEFS)\n",
+		"\n"
+	);
+
+
+	if ($TrgType=~/^STDDLL$/o || $TrgType=~/^STDEXE$/o){
+#	For now, named symbol lookup is enabled only for the STD binaries. Later, it may be enabled based on an mmp 
+#	keyword.
+
+		$NamedSymLkup = 1;
+		$symNameLkupOpt = '--sym_name_lkup';
+	}
+
+
+
+	foreach (@BldList) {
+		&main::Output(
+			"ARMCC$_ = armcc"
+		);
+		if(&main::DebugSwitchUsed() ) {
+#			when the debug switch is specified and enabled, set the compiler's debug flag for both udeb or urel.
+#			when the debug switch is disabled, don't set the compiler's debug flag for either udeb or urel.
+#			The optimization option is set only based on the build i.e., Udeb or Urel and is independent of
+#			whether debug is enabled or not. This might give a poorer debug view for debug-enabled Urel build.
+			if(&main::SymbolicDebugEnabled() ) {
+				&main::Output(
+						  ' -g'
+				);
+			}
+		}
+		elsif (/DEB$/o) {
+			&main::Output(
+				      ' -g'
+			);
+		}
+
+		if (/DEB$/o) {
+			&main::Output(
+				      ' -O0'
+			);
+		}
+		else {
+			&main::Output(
+				      ' -O2'
+			);
+		}		
+		&main::Output(
+			' $(ARMCCFLAGS)'
+		);
+		my @ml = &main::MacroList($_);
+		PrintList("\" -D\$_\"", @ml);
+		&main::Output(
+			" \$(ARMCCDEFS)\n"
+		);
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+
+	#Function call logger
+	if ($Function_Call_Logger)	{
+		#Send all the debug macros to logger
+		foreach (@BldList) {
+			&main::Output (
+				"FCLOGGER$_ = ",
+				$EPOCPath, 
+				"tools\\fc_logger\\edgcpfe"
+			);
+
+			my @ml = &main::MacroList($_);
+			push @ml, "__ARMCC_VERSION=$ARMCCVersion";
+			PrintList("\" -D\$_\"", @ml);
+			&main::Output(
+				" \$(ARMCCDEFS)"
+			);
+			PrintList("\" -D\$_\"", @FCLogger_Macros);
+			&main::Output(
+				"\n",
+				"\n"
+			);
+		}
+	}
+	
+	foreach (@BldList) {
+		&main::Output(
+			"$_ :"
+		);
+
+		if ($BasicTrgType !~ /IMPLIB/io) {
+			&main::Output (
+				" \\\n\t",
+				&Generic_Quote("\$(EPOCTRG$_)\\".&main::Trg($_))
+			);
+		}
+
+#		lib has to come after the main target so that a .DEF file will be generated if the project is not frozen
+		if ($DefFile and not &main::ExportUnfrozen) {
+			&main::Output(
+				" \\\n",
+				"\tLIBRARY\n"
+			);
+		}
+		&main::Output(
+			"\n",
+			"\n"
+		);
+	}
+
+	# Resource building is done entirely via cl_generic.pm
+	PrintList("\"\nRESOURCE\$_ : MAKEWORK\$_\"", @BldList);
+	&main::Output(
+		"\n",
+		"\n",
+	);
+
+	&main::Output(
+		"LIBRARY : MAKEWORKLIBRARY"
+	);
+	if ($BasicTrgType=~/^LIB$/o) {
+#		code to ensure that the static libraries for all builds are built at the library stage
+	        PrintList("\" \$_\"", @BldList);
+	}
+	elsif ($DefFile and !$NoExportLibrary) {
+		unless (&main::ExportUnfrozen) {
+			if (-e $DefFile) { # effectively "if project frozen ..."
+				&main::Output(
+					" ", &Generic_Quote("\$(EPOCLIB)\\LIB\\$PrimaryExportLibrary.lib"),
+				);
+				# if elf2e32.exe(postlinker) exists, then generate .dso along with .lib
+				if ($IsExistELF2E32EXE) {
+					&main::Output(
+						" ", &Generic_Quote("\$(EPOCLIB)\\LIB\\$PrimaryExportLibrary.dso"), "\n"
+					);
+				}
+				else {
+					&main::Output("\n");
+				}
+			}
+			else {
+				&main::Output(
+					"\n",
+					"\t\@echo WARNING: Not attempting to create any import libraries.\n",
+					"\t\@echo When exports are frozen in \"$DefFile\", regenerate Makefile.\n"
+				);
+			}
+		} else {
+			&main::Output(
+				"\n",
+				"\t\@echo Not attempting to create \"\$(EPOCLIB)\\LIB\\$PrimaryExportLibrary.lib\"\n",
+				"\t\@echo from frozen .DEF file, since EXPORTUNFROZEN specified.\n"
+			);
+		}
+
+		my $theDefFile = $DefFile;
+		$theDefFile = "\$(EPOCBLD)\\$BaseTrg.def" unless (-e $DefFile);
+		&main::Output(
+			"\n",
+			"\n",
+			"# REAL TARGET - LIBRARY\n",
+			"\n",
+			&Generic_Quote("\$(EPOCLIB)\\LIB\\$ExportLibrary.lib"), " : ",
+			&Generic_Quote($DefFile), "\n",
+				"\tperl -S prepdef.pl ", &Generic_Quote($DefFile), " \"\$(EPOCBLD)\\$ExportLibrary.prep.def\"\n",
+				"\tdef2dll.bat --path=\$(EPOCLIB)\\LIB \\\n\t\t--bldpath=\$(EPOCBLD) \\\n\t\t--import=$ExportLibrary \\\n",
+			"\t\t--deffile=\"\$(EPOCBLD)\\$ExportLibrary.prep.def\" \\\n\t\t--linkAs=$LinkAs \\\n\t\t$InterWorking\n",
+			"\n",
+		 );
+		if ($ExtraExportLibrary) {
+			&main::Output(
+				"\n",
+				&Generic_Quote("\$(EPOCLIB)\\LIB\\$ExtraExportLibrary.lib"), " : ",
+				&Generic_Quote("\$(EPOCLIB)\\LIB\\$ExportLibrary.lib"), "\n",
+				"\tcopy \"\$<\" \"\$@\"\n"
+			);
+		}
+		#if elf2e32.exe(postlinker) exists, then generate .dso(which will be used by ABIV2 platforms)
+		if ($IsExistELF2E32EXE) {
+			&main::Output(
+				"\n",
+				&Generic_Quote("\$(EPOCLIB)\\LIB\\$ExportLibrary.dso"), " : ",
+				&Generic_Quote($DefFile), "\n",
+					"\telf2e32 --definput=\"\$(EPOCBLD)\\$ExportLibrary.prep.def\" --dso=",
+					&Generic_Quote("\$(EPOCLIB)\\LIB\\$ExportLibrary.dso"),
+					" --linkas=$LinkAs\n"
+			);
+			if ($ExtraExportLibrary) {
+				&main::Output(
+					"\n",
+					&Generic_Quote("\$(EPOCLIB)\\LIB\\$ExtraExportLibrary.dso"), " : ",
+					&Generic_Quote("\$(EPOCLIB)\\LIB\\$ExportLibrary.dso"), "\n",
+					"\tcopy \"\$<\" \"\$@\"\n"
+				);
+			}		
+		}		
+	}
+
+	my $freezeDir = &main::Path_Split('Path', $DefFile);
+	chop($freezeDir);
+
+	# dummy rule for def files to cope with filename case differences
+	unless (&main::ExportUnfrozen) {
+		if (-e $DefFile) { # effectively "if project frozen ..."
+			&main::Output(
+				"\n",
+				"\n",
+				&Generic_Quote($DefFile), " : ", "\n",
+				"\t\@rem Do nothing\n",
+			);
+		}
+	}
+
+	&main::Output(
+		"\n",
+		"\n",
+		&Generic_Quote($freezeDir), " : ", "\n",
+		"\tperl -S emkdir.pl \$\@\n",
+	);
+
+	&main::Output(
+		"\n",
+		"\n",
+		"FREEZE : ",
+		&Generic_Quote($freezeDir), "\n",
+	);
+	if ($DefFile and $BasicTrgType!~/^IMPLIB$/io) {
+# 	    call perl on the script here so make will die if there are errors 
+#           - this doesn't happen if calling perl in a batch file
+	    &main::Output( "\tperl -S efreeze.pl \$(EFREEZE_ALLOW_REMOVE) \"$DefFile\" \"\$(EPOCBLD)\\$ExportLibrary.def\" \n" );
+	}
+	&main::Output(
+		"\n",
+		"CLEANLIBRARY :\n"
+	);
+	if ($DefFile and !$NoExportLibrary) {
+		&main::Output(
+			"\t-\$(ERASE) \"\$(EPOCLIB)\\LIB\\$ExportLibrary.lib\"\n"
+		);
+		if ($ExtraExportLibrary) {
+			&main::Output(
+				"\t-\$(ERASE) \"\$(EPOCLIB)\\LIB\\$ExtraExportLibrary.lib\"\n"
+			);
+		}
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+	&Generic_MakeWorkDir('MAKEWORKLIBRARY',"${LibPath}");
+
+	&Generic_Releaseables;
+}
+
+
+sub PMBld {
+
+	my $ABI=&main::ABI;
+    my @ASSPLibList=&main::ASSPLibList;
+    my @SrcList=&main::SrcList;
+    my @StringTables=&main::StringTables;
+    my $BaseTrg=&main::BaseTrg;
+	my $FeatureVariantBaseTrg=&main::FeatureVariantBaseTrg;
+    my $Bld=&main::Bld;
+    my $ChopBldPath=&main::Path_Chop(&main::BldPath);
+    my $DefFile=&main::DefFile;
+    my $EPOCIncPath=&main::EPOCIncPath;
+    my $FirstLib=&main::FirstLib;
+    if ($RVCTMajorVersion == 2 && $RVCTMinorVersion < 2) {
+	    # Temporary Workaround for RVCT2.1 static libs problem with RVCT2.2 builds
+	    # Rename all the static libs used with RVCT2.1 as {libname}2_1.lib
+	    if ($FirstLib=~/^\s*(\S+)(\.lib)$/io) {
+		    if ($1!~/$RVCTVersion/i) {
+			    $FirstLib=$1."${RVCTVersion}.lib";
+		    }
+	    }
+    }
+    my $BasicTrgType=&main::BasicTrgType;
+    my @LibList;
+    my @RTLibList = $RVCT20 ?
+      ('udfp.lib', 'udrt.lib', 'udrt.lib(VtblExports.o)'):
+      ('dfpaeabi.lib', "dfprvct${RVCTVersion}.lib", 'drtaeabi.lib', 'drtaeabi.lib(VtblExports.o)');
+    if ( $RVCTVersion lt "2_2" ) {
+		push @RTLibList, "dfprvct${RVCTVersion}-thunk.lib";
+		push @RTLibList, "drtrvct${RVCTVersion}.lib";
+    }
+    else {
+		# The scppnwdl.lib should come before drtrvct2_2.lib
+		push @RTLibList, "scppnwdl.lib";
+		push @RTLibList, "drtrvct${RVCTVersion}.lib";
+    }
+    my $SystemTrg = &main::SystemTrg;
+    my $LibPath= &main::LibPath;
+    my $LinkAs=&main::LinkAs;
+    my $ExportLibrary=&main::ExportLibrary;
+    my $NoExportLibrary=&main::NoExportLibrary;
+    # N.B. should get better way to detect kernel probably!!
+    $SystemTrg = 1 if ($ExportLibrary =~ /EKERN/i);
+    my $ChopRelPath=&main::Path_Chop(&main::RelPath);
+    my $RelPath=&main::RelPath;
+    my @StatLibList=&main::StatLibList;
+    if ($RVCTMajorVersion == 2 && $RVCTMinorVersion < 2) {
+	    # Temporary Workaround for RVCT2.1 static libs problem with RVCT2.2 builds
+	    # Rename all the static libs used with RVCT2.1 as {libname}2_1.lib
+	    for (my $i =0; $i < scalar(@StatLibList); $i++) {
+		    if ($StatLibList[$i]=~/^\s*(\S+)(\.lib)$/io) {
+			    if ($1!~/$RVCTVersion/i) {
+				    $StatLibList[$i]=$1."${RVCTVersion}.lib";
+			    }
+		    }
+	    }
+    }	     
+    my $StatLinkPath=&main::StatLinkPath;
+    my $Trg=&main::Trg;
+    if ($RVCTMajorVersion == 2 && $RVCTMinorVersion < 2) {
+	    if ($BasicTrgType=~/^LIB$/o) {
+		    # Temporary Workaround for RVCT2.1 static libs problem with RVCT2.2 builds
+		    # Rename all the static libs produced with RVCT2.1 as {libname}2_1.lib
+		    if ($Trg=~/^\s*(\S+)(\.lib)$/io) {
+			    if ($1!~/$RVCTVersion/i) {
+				    $Trg=$1.$RVCTVersion.".lib";
+			    }
+		    }
+		    if ($BaseTrg!~/$RVCTVersion/i) {
+			    $BaseTrg .= $RVCTVersion;
+		    }
+	    }
+    }
+
+	#OE Glue Code
+	my @oe_exe_libs=("libcrt0.lib");
+	my @oe_exe_libs_wchar=("libwcrt0.lib");
+
+	#OE Import Library List
+	my @oe_import_library_list=();
+
+    my $TrgType=&main::TrgType;
+    my @UidList=&main::UidList;
+	my $InterWorking = ($ABI eq 'ARMV4') ? "" : "--inter";
+	my %Version = &main::Version();
+	my $ExtraExportLibrary;
+	unless ($Version{explicit}) {
+		$ExtraExportLibrary = $ExportLibrary;
+		$ExtraExportLibrary =~ s/\{(\d|a|b|c|d|e|f){8}\}//i;
+	}	
+
+
+    my $linkerDebugOpt = "";
+    if(&main::DebugSwitchUsed() ){
+		if(&main::SymbolicDebugEnabled ()){
+#		set the linker's debug flag if the debug switch is specified and enabled.
+		$linkerDebugOpt = "${oP}debug ";
+		}
+	}
+	elsif ($Bld =~ /DEB/) {
+	$linkerDebugOpt = "${oP}debug ";
+	}
+    
+	if ($Bld =~ /DEB/) {
+	@LibList = &main::DebugLibList;
+	} else {
+	@LibList = &main::LibList;
+    }
+
+	if(not(grep /^euser.lib$/, @LibList)){
+		push @oe_import_library_list, "euser.lib";
+	}
+	if(not (grep /^libc.lib$/i, @LibList)){
+		push @oe_import_library_list, "libc.lib";
+	}
+
+#	set up $LinkAs
+    $UidList[2]=~/^0x(.*)$/o;
+    if ($1 ne '00000000') {	# have to make sure than series of noughts in brackets doesn't appear in name for null uids
+	$LinkAs=join '', &main::Path_Split('Base',$LinkAs),"[$1]",&main::Path_Split('Ext',$LinkAs);
+    }
+
+
+    # REAL TARGETS
+    #-------------
+    &main::Output(
+		  "# REAL TARGET - BUILD VARIANT $Bld\n",
+		  "\n"
+		  );
+
+#	releasables
+	my @releaseables;
+	
+	push @releaseables, "$RelPath$Trg" if ($BasicTrgType!~/^IMPLIB$/io);
+	if ($BasicTrgType=~/^(DLL|EXE)$/o) {
+		push @releaseables, "$RelPath$Trg.map";
+	}
+	if (-e $DefFile and !$NoExportLibrary) { # effectively "if project frozen ..."
+		push @releaseables, "$LibPath$ExportLibrary.lib";
+		push @releaseables, "$LibPath$ExtraExportLibrary.lib" if ($ExtraExportLibrary);
+		#if elf2e32.exe(postlinker) exists in the $PATH, then include .dsos also into releasables list
+		if ($IsExistELF2E32EXE) {
+			push @releaseables, "$LibPath$ExportLibrary.dso";
+			push @releaseables, "$LibPath$ExtraExportLibrary.dso" if ($ExtraExportLibrary);
+		}		
+	}
+
+	push @releaseables, &main::FeatureVariantVMapFile() if &main::FeatureVariantVMapFile();
+	&main::Output(
+		"WHAT$Bld : WHATGENERIC\n",
+		"\n",
+		"CLEAN$Bld : CLEANBUILD$Bld CLEANRELEASE$Bld\n",
+		"\n",
+		"CLEANBUILD$Bld : \n",
+		"\t\@perl -S ermdir.pl \"\$(EPOCBLD$Bld)\"\n",
+		"\n",
+		"CLEANRELEASE$Bld : CLEANGENERIC\n",
+		"\n"
+	);
+	&Generic_WhatCleanTargets($Bld, "WHAT$Bld", "CLEANRELEASE$Bld", @releaseables);
+
+	&Generic_MakeWorkDir("MAKEWORK$Bld",$ChopBldPath);
+	&Generic_MakeWorkDir("MAKEWORK$Bld",$ChopRelPath);
+
+	return if ($BasicTrgType=~/^IMPLIB$/io);
+
+	&main::Output(
+		"LISTING$Bld : MAKEWORK$Bld"
+	);
+	foreach (@SrcList) {
+	    	my $BaseSrc = &main::Path_Split('Base', $_);
+	    	my $Ext = &main::Path_Split('Ext', $_);
+		if ($Ext =~ /cia/i) {
+		    $BaseSrc = "$BaseSrc\_";
+		}
+		&main::Output(
+			" \\\n\tLISTING$Bld$BaseSrc"
+		);
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+
+	# Compiler wrapper support starts
+	if($IsCompilerWrapperOption)
+	{
+	 	my $Platcmpwrap=&main::Plat;
+	 	
+		&main::Output(
+			"COMPWRAP$Bld : OUTPUT_NAME = ",
+			"$Platcmpwrap\_$Bld",
+			"\n"
+		);
+	 	
+		&main::Output(
+			"COMPWRAP$Bld : MAKEWORK$Bld"
+		);
+
+		foreach (@SrcList) {
+			my $BaseSrc = &main::Path_Split('Base', $_);
+			&main::Output(
+				" \\\n\tCOMPWRAP$Bld$BaseSrc"
+			);
+		}
+
+		&main::Output(
+			"\n",
+			"\n"
+		);
+	}
+	# Compiler wrapper support
+
+	&main::Output(
+		"LIBS$Bld="
+	);
+	if ($BasicTrgType=~/^DLL$/o) { # Add the DLL stub library
+		if ($RVCTMajorVersion == 2 && $RVCTMinorVersion < 2) {
+			# Temporary Workaround for RVCT2.1 static libs problem with RVCT2.2 builds
+			&main::Output(
+				" \\\n\t",
+				&Generic_Quote("\$(EPOCSTATLINK$Bld)\\EDLLSTUB$RVCTVersion.lib")
+			);
+		}
+		else {
+			&main::Output(
+				" \\\n\t",
+				&Generic_Quote("\$(EPOCSTATLINK$Bld)\\EDLLSTUB.lib")
+			);
+		}
+	}
+	    
+        PrintList("\' \\\n\t\'\.\&Generic_Quote\(\"\\\$\(EPOCSTATLINK$Bld\)\\\\\$_\"\)", @StatLibList);
+        PrintList("\' \\\n\t\'\.\&Generic_Quote\(\"\\\$\(EPOCLIB\)\\\\LIB\\\\\$_\"\)", @LibList);
+
+		#OE Import Libraries 
+		if ( $TrgType=~/^STDEXE$/o || $TrgType=~/^STDDLL$/o ) 
+		{
+			PrintList("\' \\\n\t\'\.\&Generic_Quote\(\"\\\$\(EPOCLIB\)\\\\LIB\\\\\$_\"\)", @oe_import_library_list);
+		}
+
+		#OE Glue Code
+		if ($TrgType=~/^STDEXE$/o) {
+			if (&main::IsWideCharMain()) {
+				PrintList("\' \\\n\t\'\.\&Generic_Quote\(\"\\\$\(EPOCLIB\)\\\\$Bld\\\\\$_\"\)", @oe_exe_libs_wchar);
+			}
+			else {
+				PrintList("\' \\\n\t\'\.\&Generic_Quote\(\"\\\$\(EPOCLIB\)\\\\$Bld\\\\\$_\"\)", @oe_exe_libs);
+			}
+		}
+
+        my $StaticRTLib = $RVCT20 ? "usrt20" : "usrt${RVCTVersion}" ;
+        # use ksrt for system code and usrt for user ARM code
+        $StaticRTLib = "ksrt${RVCTVersion}" if ($SystemTrg);
+        &main::Output(
+	        " \\\n\t",
+		&Generic_Quote("\$(EPOCSTATLINK$Bld)\\$StaticRTLib\.lib")
+		) unless ($Trg =~ /(U|K)SRT/i || ($BasicTrgType=~/^LIB$/o));
+
+	unless ($ArmRT || ($BasicTrgType=~/^LIB$/o)) {
+	    my $TargLib = "$ExportLibrary.lib";
+		$TargLib =~ s/\{(\d|a|b|c|d|e|f){8}\}//i;
+	    unless ($SystemTrg) {
+			foreach (@RTLibList) {
+				&main::Output(
+					" \\\n\t",
+					&Generic_Quote("\$(EPOCLIB)\\LIB\\$_")
+				) unless ($_ =~ /$TargLib/i);
+			}
+	    }
+	}
+        PrintList("\' \\\n\t\'\.\&Generic_Quote\(\"\$_\"\)", @ArmLibList);
+	&main::Output(
+		"\n",
+		"\n"
+	);
+
+   	&main::Output(
+ 		"\n# ADDITIONAL LINKER OPTIONS",
+ 		"\nUSERLDFLAGS = ",
+ 		&main::LinkerOption("ARMCC"),
+  		"\n\n"
+  	);
+	
+	&main::Output(
+		"VTBLEXPORTS$Bld="
+	);
+        my $vtobj = quotemeta("(VtblExports.o)");
+        PrintList("\' \\\n\t\'\.\&Generic_Quote\(\"\\\$\(EPOCLIB\)\\\\LIB\\\\\$_$vtobj\"\)", @LibList);
+	&main::Output(
+		"\n",
+		"\n"
+	);
+
+	my $objectFiles = "";
+
+	my $bldPath =	&main::BldPath;
+	my $replacement;
+# If LOCAL_BUILD_PATH is set replace the \epoc32\build with local setting
+	if ( defined( $ENV{LOCAL_BUILD_PATH} ) )  {
+		$replacement = 	$ENV{"LOCAL_BUILD_PATH"};
+		my $epocroot=$ENV{"EPOCROOT"};
+		my $match = "\Q${epocroot}\EEPOC32\\\\BUILD";
+		$bldPath =~ s/${match}/${replacement}/;
+	}
+#	Must add StringTable obj files first to preserve Evalid results consistency.
+	foreach my $item (@StringTables) {
+		$objectFiles .= $bldPath.$$item{BaseTrg}.".o\n" if !($$item{Hdronly});
+	}
+
+        &main::Output(
+	        "OBJECTS$Bld="
+	);
+        foreach (@SrcList) {
+	    	my $BaseSrc = &main::Path_Split('Base', $_);
+	    	my $Ext = &main::Path_Split('Ext', $_);
+		if ($Ext =~ /cia/i) {
+		    $BaseSrc = "$BaseSrc\_";
+		}
+
+	        &main::Output(
+		        " \\\n\t",
+			&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.o")
+		      );
+
+#	Only add if not already added from @StringTables
+	my $objectFile = $bldPath.$BaseSrc.".o\n";
+	$objectFile=~ s/\\/\\\\/g;    # escape the '\'
+	if ($objectFiles !~ m/$objectFile/i){
+		$objectFiles .= &main::BldPath.$BaseSrc.".o\n";
+	}
+
+
+	}
+        &main::Output(
+	        "\n",
+		"\n"
+	);
+
+
+	# Create "via" file containing all object files in order to reduce
+	# command line lengths in pertinent calls
+	my $objectsViaFile = &main::CommandFile();	
+	&main::CreateExtraFile($objectsViaFile, $objectFiles);
+	
+
+        if ($BasicTrgType=~/^LIB$/o) {
+	        &main::Output(
+		      &Generic_Quote("\$(EPOCTRG$Bld)\\$Trg"),
+		      " : \$(OBJECTS$Bld)"
+		);
+        } else {
+	        &main::Output(
+		      &Generic_Quote("\$(EPOCTRG$Bld)\\$Trg"), " : ",
+		      &Generic_Quote("\$(EPOCBLD$Bld)\\$BaseTrg.in")
+	        );
+        }
+
+	if (-e $DefFile) { # effectively "if project frozen ..."
+		&main::Output(
+			" ", &Generic_Quote($DefFile)
+		);
+	}
+	if ($BasicTrgType=~/^(EXE|DLL)$/o) {
+		&main::Output(
+			" ", &Generic_Quote("\$(EPOCSTATLINK$Bld)\\$FirstLib")
+		);
+	}
+	&main::Output(
+		" \$(LIBS$Bld)"
+	);
+
+#	generate an export object from the ordered .DEF file
+        if ($BasicTrgType=~/^DLL$/o || $TrgType=~/^EXEXP$/o || $TrgType=~/^EXEDLL$/o) {
+#       	make the .exp file a dependency for targets that have exports		
+		&main::Output(" ", &Generic_Quote("\$(EPOCBLD$Bld)\\$ExportLibrary.exp"), "\n");
+		if (&main::ExportUnfrozen) {
+		    &main::Output(
+			"\tdef2dll.bat --path=\$(EPOCBLD$Bld) \\\n\t\t--bldpath=\$(EPOCBLD$Bld) \\\n\t\t--export=$ExportLibrary \\\n\t\t--import=$ExportLibrary\\\n",
+			"\t\t--deffile=\$(EPOCBLD$Bld)\\$ExportLibrary.def \\\n\t\t--linkAs=$LinkAs \\\n\t\t$InterWorking $symNameLkupOpt\n",
+		    );
+		    &main::Output(
+		        "\n",
+		        "\tcopy ", " \"\$(EPOCBLD$Bld)\\$ExportLibrary.lib\" ",
+		        "\"\$(EPOCLIB)\\LIB\\$ExportLibrary.lib\"",
+		        "\n"
+		    );
+		    if ($ExtraExportLibrary) {
+			&main::Output(
+			    "\n",
+			    "\tcopy \"\$(EPOCLIB)\\LIB\\$ExportLibrary.lib\" ",
+			    "\"\$(EPOCLIB)\\LIB\\$ExtraExportLibrary.lib\"",
+			    "\n"
+			);
+		    }			    
+		    #if elf2e32.exe(postlinker) exists, then generate .dso(which will be used by ABIV2 platforms)
+		    if ($IsExistELF2E32EXE) {
+			    &main::Output(
+				    "\n",
+				    "\telf2e32 --definput=\"\$(EPOCBLD$Bld)\\$ExportLibrary.def\" --dso=",
+				    "\$(EPOCLIB)\\LIB\\$ExportLibrary.dso --linkas=$LinkAs\n"
+			    );
+			    if ($ExtraExportLibrary) {
+				    &main::Output(
+					    "\n",
+					    "\tcopy \"\$(EPOCLIB)\\LIB\\$ExportLibrary.dso\" ",
+					    "\"\$(EPOCLIB)\\LIB\\$ExtraExportLibrary.dso\"",
+					    "\n"
+				    );
+			    }		
+		    }		
+	        }
+	} elsif($NamedSymLkup){
+#		For an EXE, generate the .exp to accomodate 0th ordinal
+		&main::Output(" ", &Generic_Quote("\$(EPOCBLD$Bld)\\$ExportLibrary.exp"), "\n");
+	}
+	else {
+	    &main::Output("\n");
+	}
+
+#       get rid of any -symbols produced .map file
+        if ($BasicTrgType=~/^(DLL|EXE)/o) {
+	        &main::Output(
+			"\t-\$(ERASE) \"\$(EPOCTRG$Bld)\\$Trg.map\" \n"
+		);	
+	}
+#		Generate the dependency info - This is required to put the libraries in the same order
+#		as mentioned in mmp.
+		if($NamedSymLkup) {
+			&main::Output(
+			"\tperl -S deputil.pl $InterWorking --path=\$(EPOCBLD$Bld) \\\n",
+			 "\t\t--out=$ExportLibrary \\\n",
+			 "\t\t--libpath=\$(EPOCLIB)\\LIB \\\n",
+			 "\t\t\$(LIBS$Bld)\n",
+			);
+		}
+		my $AbsentSubst = '';
+        if ($BasicTrgType=~/^(DLL|EXE)/o) {
+	        my $datalinkbase = "0x400000";
+	        $datalinkbase = &main::DataLinkAddress if (&main::DataLinkAddress);
+
+#               make sure the linker feedback file is writable if it exists.
+		my $lfbfile = LinkerFeedBackFile();
+		&main::Output(
+			"\t\@if exist $lfbfile attrib -r $lfbfile\n"
+			) if $useLinkerFeedBack;
+
+		my $lfboption = LinkerFeedBackOption();
+
+	        &main::Output(
+		        "\t$Link $linkerDebugOpt ${oP}shl ${oP}reloc ${oP}split ${oP}rw-base $datalinkbase  \\\n\t\t$lfboption${oP}noscanlib $PlatOpt{Ld}\\\n"
+			);
+			my $EntrySymbol;
+			if ($BasicTrgType=~/^DLL$/o) {
+				$EntrySymbol = '_E32Dll';
+			}
+			elsif ($BasicTrgType=~/^EXE$/o) {
+				$EntrySymbol = '_E32Startup';
+			}
+			if ($EntrySymbol) {
+				$AbsentSubst = " -absent $EntrySymbol";
+			}
+	        if ($BasicTrgType=~/^DLL$/o) {
+	            # get the right object file for the entry point
+	            my $ObjFile = "UC_DLL_.o";
+	            if ($FirstLib =~ /EDEV/i) {
+		            $ObjFile = "D_ENTRY_.o";
+	            }
+	            if ($FirstLib =~ /EKLL/i) {
+		            $ObjFile = "L_ENTRY_.o";
+	            }
+	            if ($FirstLib =~ /EEXT/i) {
+		            $ObjFile = "X_ENTRY_.o";
+	            }
+	            if ($FirstLib =~ /EVAR/i) {
+		            $ObjFile = "V_ENTRY_.o";
+	            }
+	            &main::Output(
+				    "\t\t${oP}entry _E32Dll \$(EPOCSTATLINK$Bld)\\$FirstLib($ObjFile) \$(EPOCSTATLINK$Bld)\\$FirstLib \\\n",
+				    "\t\t\$(EPOCBLD$Bld)\\$ExportLibrary.exp \\\n"
+				);
+	        } elsif ($BasicTrgType=~/^EXE$/o || $TrgType=~/^EXEXP$/o) {
+			    # get the right object file for the entry point
+			    my $ObjFile = "UC_EXE_.o" ;
+			    if ($FirstLib =~ /KC_EXE/i) {
+					$ObjFile = "K_ENTRY_.o";
+			    }
+				# If building user-side under RVCT2.0.x, use 2.0.1 static library	
+				if ($RVCT20) { 
+					if ($ObjFile =~/UC_EXE_.o/i) { 
+						$FirstLib = "EEXE20.LIB"; 
+					} 
+				} 
+			    
+			    &main::Output( "\t\t${oP}entry _E32Startup \$(EPOCSTATLINK$Bld)\\$FirstLib($ObjFile) \$(EPOCSTATLINK$Bld)\\$FirstLib \\\n" );
+			    if ($TrgType=~/^EXEXP$/o || $TrgType=~/^EXEDLL$/o || $NamedSymLkup) {
+					&main::Output( "\t\t\$(EPOCBLD$Bld)\\$ExportLibrary.exp \\\n" );
+			    }
+			}
+			if($NamedSymLkup) {
+				&main::Output(
+				"\t\t--edit \"\$(EPOCBLD$Bld)\\$ExportLibrary.dep\" \\\n"
+				);
+			}
+	        &main::Output(
+		        "\t\t-o \"\$(EPOCBLD$Bld)\\$Trg\" \\\n",
+		        "\t\t${oP}symbols ${oP}list \"\$(EPOCTRG$Bld)\\$Trg.map\" \\\n",
+				"\t\t\$(EPOCBLD$Bld)\\$BaseTrg.in \\\n"
+			);
+	        &main::Output(
+		        "\t\t\$(LIBS$Bld) \\\n",
+				"\t\t\$(VTBLEXPORTS$Bld) \$(USERLDFLAGS) \n"
+			);
+
+	        if(&main::DebugSwitchUsed() ){
+				if(&main::SymbolicDebugEnabled() ) {
+				&main::Output(
+					"\tcopy \"\$(EPOCBLD$Bld)\\$Trg\" \"\$(EPOCTRG$Bld)\\$FeatureVariantBaseTrg.sym\"\n"
+					);
+				}
+			}
+	        elsif ($Bld=~/^UDEB$/o) {
+	               &main::Output(
+			       "\tcopy \"\$(EPOCBLD$Bld)\\$Trg\" \"\$(EPOCTRG$Bld)\\$FeatureVariantBaseTrg.sym\"\n"
+		       );
+	        }
+		
+		if (&main::CompressTarget) {
+		    &main::Output(
+			    "\telftran $PlatOpt{Elftran} -version ", &Genutl_VersionToUserString(%Version), " -sid ", &main::SecureId(), " ", " -nocompress "
+				 );
+		    
+		}
+		else {
+			if(&main::CompressTargetMode==NOCOMPRESSIONMETHOD){
+				&main::Output(
+					"\telftran $PlatOpt{Elftran} -version ", &Genutl_VersionToUserString(%Version), " -sid ", &main::SecureId(), " "
+				);
+			}
+			elsif(&main::CompressTargetMode==INFLATECOMPRESSIONMETHOD){
+				&main::Output(
+				"\telftran $PlatOpt{Elftran} -version ", &Genutl_VersionToUserString(%Version), " -sid ", &main::SecureId(), " ", "  -compressionmethod deflate"
+				);
+			}
+			elsif(&main::CompressTargetMode==BYTEPAIRCOMPRESSIONMETHOD){
+				&main::Output(
+					"\telftran $PlatOpt{Elftran} -version ", &Genutl_VersionToUserString(%Version), " -sid ", &main::SecureId(), " ", "  -compressionmethod bytepair"
+				);
+			}
+		}
+
+		if (&main::IsDebuggable eq DEBUGGABLE) {
+ 			&main::Output(
+ 				' -debuggable '
+ 			);
+ 		}
+
+		if (&main::SmpSafe) {
+ 			&main::Output(
+ 				' -smpsafe'
+ 			);
+ 		}
+
+		if (&main::IsDebuggable eq DEBUGGABLE_UDEBONLY) {		
+			if ($Bld=~/^UDEB$/o) {
+				&main::Output(
+				' -debuggable '
+				);
+			}
+		}
+		
+		# change - exexps are allowed data, but they look like dlls to elftran....
+		if (&main::AllowDllData || $TrgType=~/^EXEXP$/o || $TrgType=~/^EXEDLL$/o) {
+			&main::Output(
+				' -allow'
+			);
+		}
+		if (not &main::CallDllEntryPoints ) {
+			&main::Output(
+				' -nocall'
+			);
+		}
+		if (&main::DataLinkAddress) {
+			&main::Output(
+				' -datalinkaddress ',&main::DataLinkAddress
+			);
+		}
+		if (&main::FixedProcess) {
+			&main::Output(
+				' -fixed'
+			);
+		}
+		if (&main::HeapSize) {
+			my %HeapSize=&main::HeapSize;
+			&main::Output(
+				' -heap ',$HeapSize{Min},' ',$HeapSize{Max}
+			);
+		}
+		if (&main::ProcessPriority) {
+			&main::Output(
+				' -priority ',&main::ProcessPriority
+			);
+		}
+		if (&main::StackSize) {
+			&main::Output(
+				' -stack ',&main::StackSize
+			);
+		}
+
+		if (&main::CodePagingTargetMode == UNPAGED) {
+			&main::Output(
+				' -codepaging unpaged'
+			);
+		}
+		elsif (&main::CodePagingTargetMode == PAGED) {
+			&main::Output(
+				' -codepaging paged'
+			);
+		}
+
+		if (&main::DataPagingTargetMode == UNPAGED) {
+			&main::Output(
+				' -datapaging unpaged'
+			);
+		}
+		elsif (&main::DataPagingTargetMode == PAGED) {
+			&main::Output(
+				' -datapaging paged'
+			);
+		}
+
+		&main::Output(
+			"\\\n\t\t"
+		);
+
+		my $i=1;
+		foreach (@UidList) {
+			&main::Output(
+				" -uid$i $_"
+			);
+			$i++;
+		}
+		if(&main::VendorId) {
+			&main::Output(
+				' -vid ',&main::VendorId
+			);
+		}
+		&main::Output(
+			"\\\n\t\t"
+		);
+		&main::Output(
+			' -fpu ',$floatingpointmodel
+		);
+		&main::Output(
+			' -capability ',&main::Capability
+		);
+		if($NamedSymLkup) {
+			&main::Output(
+				' -sym_name_lkup'
+			);
+		}
+		&main::Output(
+			"\\\n\t\t"
+		);
+		&main::Output(
+			" \"\$(EPOCBLD$Bld)\\$Trg\""
+		);
+		&main::Output(
+			"\\\n\t\t"
+		);
+		&main::Output(
+			" \"\$\@\" \n"
+		);
+		&main::Output(
+			"\n"
+		);
+
+         }
+         elsif ($BasicTrgType=~/^LIB$/o) {
+	        &main::Output(
+		        "\tarmar ${oP}create \$(EPOCSTATLINK$Bld)\\$Trg ${oP}via $objectsViaFile\n"
+		);
+         }
+
+         &main::Output(
+		 "\n"
+	 );
+	 
+#	add static lib into the object via file
+	my $libViaFiles=$objectFiles;
+	if (@StatLibList) {
+		foreach (@StatLibList) {
+			$libViaFiles.= &main::RelPath."$_ \n";
+		}
+		&main::CreateExtraFile($objectsViaFile, $libViaFiles);
+	}
+	
+    # TARGET *.IN
+    #------------
+	 
+    &main::Output(
+		&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseTrg.in"), ": \$(OBJECTS$Bld)\n",
+ 	    "\t$Link $linkerDebugOpt ${oP}partial \\\n",
+	    "\t\t-o \$\@ \\\n",
+	    "\t\t${oP}via $objectsViaFile\n\n",
+    );
+    
+
+#   reorder the .DEF file taking frozen exports into account if there are any
+    if ($BasicTrgType=~/^DLL$/o || $TrgType=~/^EXEXP$/o || $TrgType=~/^EXEDLL$/o || $NamedSymLkup) {
+
+	    # TARGET *.EXP
+	    #------------
+	    &main::Output(
+		    &Generic_Quote("\$(EPOCBLD$Bld)\\$ExportLibrary.exp"), ": \$(EPOCBLD$Bld)\\$BaseTrg.in"
+	    );
+
+# if project is frozen, makedef (and hence the .exp file) are dependent upon it
+		unless (&main::ExportUnfrozen) {
+			if (-e $DefFile) { # effectively "if project frozen ..."
+			    &main::Output(" $DefFile");
+			}
+		}
+
+	    &main::Output(
+		"\n\tperl -S elf2inf.pl -o \$(EPOCBLD$Bld)\\$ExportLibrary.inf \\\n", 
+		"\t\t\$\<",
+		"\n\tperl -S makedef.pl $AbsentSubst -Inf \$(EPOCBLD$Bld)\\$ExportLibrary.inf \\\n"
+	    );
+    	if (!$DefFile || $NoExportLibrary) {    			
+    		&main::Output( "\t\t-ignore_unfrozen_noncallable \\\n" );
+    	}
+	if (SysTrg()) {
+    		&main::Output( "\t\t-SystemTargetType \\\n" );
+    	}
+    		
+	    if (-e $DefFile) {	# effectively "if project frozen ..."
+	            &main::Output(
+			"\t\t-Frzfile \"$DefFile\" \\\n"
+		    );
+	    }
+
+		if($NamedSymLkup && !$DefFile){
+#		For an EXE with named lookup, suppress the 'unfrozen exports' makedef warnings.
+			&main::Output(
+			"\t\t-ignore_unfrozen_exports \\\n",
+			);
+		}
+
+	    # freeze ordinals, a maximum of 2, for polymorphic dlls
+	    my $Ordinal;
+	    my $Num=1;
+	    foreach $Ordinal (&main::Exports) {
+	            &main::Output( "\t\t-$Num $Ordinal \\\n" );
+		    $Num++;
+	    }
+	    
+	    my $theDefFile = "\$(EPOCBLD$Bld)\\$ExportLibrary.def";
+	    $theDefFile = $DefFile if (-e $DefFile && !&main::ExportUnfrozen);
+	    &main::Output(
+		"\t\t\"\$(EPOCBLD$Bld)\\$ExportLibrary.def\"\n",
+		"\tcopy \"\$(EPOCBLD$Bld)\\$ExportLibrary.def\" \"\$(EPOCBLD)\\$ExportLibrary.def\"\n",
+		"\tdef2dll.bat $AbsentSubst \\\n\t\t--path=\$(EPOCBLD$Bld) \\\n\t\t--bldpath=\$(EPOCBLD$Bld) \\\n\t\t--export=$ExportLibrary \\\n",
+		"\t\t--deffile=$theDefFile \\\n\t\t--linkAs=$LinkAs \\\n\t\t$InterWorking $symNameLkupOpt\n"
+	    );
+    }
+
+    &main::Output( "\n" );
+}
+
+# Set to 1 if multifile compilation wanted
+my $domultifile = 0;
+
+sub DoMultiFile () {
+        return $ENV{RVCTMultiFile} if (defined $ENV{RVCTMultiFile});
+	return $domultifile;
+}
+
+my %CompilationGroups = ();
+
+sub InitMultiFileCompilation() {
+#	Do preparatory work for multifile compilation
+	my $SourceStructRef=&main::SourceStructRef;
+
+#	We sort the source files by path and extension. These form natural groups to compile together.
+	my %PathToSourceMap = ();
+	foreach my $SourceRef (@$SourceStructRef) {
+		my $SrcFile = $$SourceRef{CurFile};
+		my $Ext = &main::Path_Split('Ext', $SrcFile);
+	        push @{$PathToSourceMap{$$SourceRef{SrcPath}}{$Ext}}, $SrcFile;
+	}
+
+#	Now we split each group into sets of 10. 
+	foreach my $SrcPath (keys %PathToSourceMap) {
+		foreach my $Ext (keys %{$PathToSourceMap{$SrcPath}}) {
+			my @FileList;
+			my @ObjectList;
+			my @SourceList;
+			my $NumToGo = 10;
+			foreach my $File (@{$PathToSourceMap{$SrcPath}{$Ext}}) {
+				my $base = &main::Path_Split('Base', $File);
+				my $cia = ($Ext =~ /cia/i);
+				$base .= "_" if $cia;
+				push @FileList, $File;
+				push @ObjectList, "$base.o";
+#				this gives us our source files xxx				
+				push @SourceList, $cia ? "$base.cpp" : "$SrcPath$base$Ext";
+				$NumToGo--;
+				unless ($NumToGo) {
+#				       Use the last file as the key. This means e.g that all the dependency
+#				       info will have been generated for the earlier files in the list
+				       push @{$CompilationGroups{$FileList[$#FileList]}{Sources}}, @SourceList;
+       				       push @{$CompilationGroups{$FileList[$#FileList]}{Objects}}, @ObjectList;
+				       $NumToGo = 10;
+				       undef @FileList;
+				       undef @ObjectList;
+				       undef @SourceList;
+				}
+			}
+			push @{$CompilationGroups{$FileList[$#FileList]}{Sources}}, @SourceList;
+			push @{$CompilationGroups{$FileList[$#FileList]}{Objects}}, @ObjectList;
+		}
+	}
+
+#	debug print out	
+	if (0) {
+	foreach my $keyfile (keys %CompilationGroups) {
+		print "$keyfile :\n";
+		foreach my $class (keys %{$CompilationGroups{$keyfile}}) {
+			print "\t$class:\n\t\t";
+			print join " ", @{$CompilationGroups{$keyfile}{$class}}, "\n";
+		}
+	}
+	}
+			
+}
+
+sub PMStartSrcList {
+
+	&main::Output(
+		"# SOURCES\n",
+		"\n"
+	);
+
+	InitMultiFileCompilation() if DoMultiFile();
+
+}
+
+sub PMBitMapBld {
+
+	&Generic_BitMapBld;
+
+}
+
+sub PMResrcBld {
+
+	&Generic_ResrcBld;
+
+}
+
+sub PMAifBld {
+	&Generic_AifBld;
+}
+
+
+sub PMStartSrc {
+	my $Src=&main::Src;
+
+	&main::Output(
+		"# Source $Src\n",
+		"\n"
+	);
+}
+
+sub PMSrcDepend {
+	my @DepList=&main::DepList;
+	return if (@DepList == 0);
+
+	my @BldList=&main::BldList;	
+	my $BaseSrc=&main::BaseSrc;
+	my $ExtSrc=&main::ExtSrc;
+	
+	my $BaseObj=$BaseSrc;
+	my $cia = 0;
+	if ($ExtSrc =~ /cia/i ) {
+		$cia = 1;
+		$BaseObj .= '_';
+	}
+
+	foreach (@BldList) {
+		&main::Output(
+			&Generic_Quote("\$(EPOCBLD$_)\\$BaseSrc.pre"), " ",
+			&Generic_Quote("\$(EPOCBLD$_)\\$BaseObj.cpp"), " ",
+		) if $cia;
+		&main::Output(
+			&Generic_Quote("\$(EPOCBLD$_)\\$BaseSrc.lis"), " ",
+			&Generic_Quote("\$(EPOCBLD$_)\\$BaseObj.o"), " \\\n",
+		);
+	}
+	&main::Output(
+		":"
+	);
+        PrintList("\' \\\n\t\'\.\&Generic_Quote\(\$_\)", @DepList);
+	&main::Output(
+		"\n",
+		"\n"
+	);
+}
+
+sub PMSrcBldDepend {
+	my @DepList=&main::DepList;
+	return if (@DepList == 0);
+	
+	my $Bld=&main::Bld;
+	my $BaseSrc=&main::BaseSrc;
+	my $ExtSrc=&main::ExtSrc;
+	
+	my $BaseObj=$BaseSrc;
+	my $cia = 0;
+	if ($ExtSrc =~ /cia/i ) {
+		$cia = 1;
+		$BaseObj .= '_';
+	}
+
+	&main::Output(
+		&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.pre"), " ",
+		&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseObj.cpp"), " ",
+	) if $cia;
+	&main::Output(
+		&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.lis"), " ",
+		&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseObj.o"), " :",
+	);
+        PrintList("\' \\\n\t\'\.\&Generic_Quote\(\$_\)", @DepList);
+	&main::Output(
+		"\n",
+		"\n"
+	);
+}
+
+my $curdrive = "x";
+
+sub quoted_path
+    {
+    my ($arg) = @_;
+    return "\"$arg\"" if ($arg !~ /^\\[^\\]/);	# not an absolute path
+    if ($curdrive eq "x")
+		{
+		$curdrive="";
+		$curdrive=$1 if (cwd =~ /^(.:)/);	
+		}
+    return "\"$curdrive$arg\"";
+    }
+
+sub PMPrefixFile 
+{ 
+    my $IncPath = &main::EPOCIncPath;
+    
+    return quoted_path(&Generic_Quote("$IncPath"."rvct\\rvct.h"));
+}
+
+
+my $preinclude =   "--preinclude \$(EPOCINC)\\rvct\\rvct.h";
+my $edg_preinclude = "-I \$(EPOCINC)\\RVCT${RVCTVersion} --preinclude edg_rvct${RVCTVersion}.h";
+
+sub SelectLangOptions {
+	my ($Ext) = @_;
+	if ($Ext=~/^.cpp$/) {
+		# In case of function call logger, the preinclude file is passed to the function call logger
+		# hence it is not required to pass the same file to the compiler.
+		return "--cpp "	if ($Function_Call_Logger);
+		return "--cpp $preinclude ";
+	}
+	if ($Ext=~/^.cia$/) {
+		return "--cpp ";
+	}
+	if ($Ext=~/^.c$/) {
+		if($CompilerOption =~/--cpp/) {
+			#Function Call Logger
+			return "--cpp " if ($Function_Call_Logger);
+			return "--cpp $preinclude ";
+		}
+		else {
+			#Function Call Logger
+			return "--c90 " if ($Function_Call_Logger);
+			return "--c90 $preinclude ";
+		}
+	}
+	# To support .cc, .cxx, .c++ file extensions for Open Environment
+	elsif ($Ext=~/^(.cc|.cxx|.c\+\+)$/) {
+		#Function Call Logger
+		return "--cpp " if ($Function_Call_Logger);
+		return "--cpp $preinclude ";
+	}
+	return '';
+}
+
+sub PMEndSrcBld {
+#       Generate multifile compilation stuff if needed.
+        if (DoMultiFile()) {
+	       MultiFileEndSrcBld();
+	       return;
+	}
+
+	my $ABI=&main::ABI;
+	my $Plat=&main::Plat;
+	my $BaseSrc=&main::BaseSrc;
+	my $Bld=&main::Bld;
+	my $Src=lc &main::Src;	
+	my $SrcPath=&main::Path_Chop(&main::SrcPath);
+	my $Ext = &main::Path_Split('Ext', $Src);	
+	my $BaseTrg=&main::BaseTrg;
+	my $BldPath = &main::BldPath;
+	$Src = ucfirst $Src if ($Ext !~ /\.(cpp|c)$/);		
+	my $LangOptions = &SelectLangOptions($Ext);
+	# support for auto 'translated' ASM 
+	my $AsmFilep = $AsmFiles{$Src};
+
+	# Logger Ouput filename 
+	my $Logger_Output = lc ($BaseSrc) . ".int.cpp";
+	my $LstExt ;
+	if($Plat =~ /^(ARMV[6-9])/i){
+		$LstExt = $1 ;	
+	}
+	else{
+		$LstExt = $ABI;
+	}
+	
+	my $lfboption = LinkerFeedBackOption();
+
+	#Function Call Logger
+	my $FC_Logger_Option=" --wchar_t_keyword --microsoft_version=1300 --dictionary_file_name $BldPath$BaseTrg.txt --diag_suppress 66,161,611,654,815,830,997,1152,1300,1390";
+
+	if ($AsmFilep || $Ext =~ /cia/i) {
+		&main::Output(
+# compile the translated, preprocessed source
+			&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc\_.o"), " : ",
+			&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc\_.cpp"), "\n",
+			"\t\@echo $Src\n",
+			"\t\$(ARMCC$Bld) $lfboption$LangOptions -J $SrcPath \$(INCDIR) -o \$\@ \$(EPOCBLD$Bld)\\$BaseSrc\_.cpp\n",
+			"\n",
+# rule to translate the preprocessed source
+			&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc\_.cpp"), " : ",
+			&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.pre"), "\n",
+			"\ttranasm.bat -n -s -o=\$\@ \$(EPOCBLD$Bld)\\$BaseSrc.pre\n",
+			"\n",
+# rule to preprocess the source
+			&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.pre"), " : ",
+			&Generic_Quote("$SrcPath\\$Src"), "\n",
+  			"\t\$(ARMCC$Bld) -D__CIA__ -E $preinclude $LangOptions -J $SrcPath \$(INCDIR) $SrcPath\\$Src -o \$\@ \n",
+# generate an assembly listing target too
+			"LISTING$Bld$BaseSrc\_ : ", &Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc\_.lis"), "\n",
+			"\t", &Generic_CopyAction("$SrcPath\\$BaseSrc\_.$LstExt.lst"),
+			"\n",
+			&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc\_.lis"), " : ",
+			&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc\_.cpp"), "\n",
+			"\t\$(ARMCC$Bld) $LangOptions -S -J $SrcPath \$(INCDIR) -o \$\@ \$(EPOCBLD$Bld)\\$BaseSrc\_.cpp\n",
+			"\n"
+			);
+	} else {
+		#If Function Call logging is enabled, add call to function call logger
+		if ($Function_Call_Logger) {
+			&main::Output(
+				&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.o"),
+				" : ",
+				&Generic_Quote("\$(EPOCBLD$Bld)\\$Logger_Output"),
+				"\n",
+				"\t\@echo $Logger_Output\n",
+				"\t\$(ARMCC$Bld) $lfboption$LangOptions -J $SrcPath \$(INCDIR) -o \$\@ \$(EPOCBLD$Bld)\\$Logger_Output\n",
+				"\n",
+# generate an assembly listing target too
+				"LISTING$Bld$BaseSrc : ", &Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.lis"), "\n",
+				"\t", &Generic_CopyAction("$SrcPath\\$BaseSrc.$LstExt.lst"),
+				"\n",
+				&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.lis"), " : ",
+				&Generic_Quote("$SrcPath\\$Logger_Output"), "\n",
+				"\t\$(ARMCC$Bld) $LangOptions -S -J $SrcPath \$(INCDIR) -o \$\@ \$(EPOCBLD$Bld)\\$Logger_Output \n",
+				"\n"
+			);
+
+			#Call to Function Call Logger
+			&main::Output(
+				&Generic_Quote("\$(EPOCBLD$Bld)\\$Logger_Output"), " : ",
+				&Generic_Quote("$SrcPath\\$Src"),
+				"\n",
+				"\t \@echo $Logger_Output\n",
+				"\t \$(FCLOGGER$Bld) $lfboption$edg_preinclude \\\n",
+			    "\t -I $SrcPath  \\\n",
+				"\t \$(INCDIR_FCLOGGER) $FC_Logger_Option \\\n",
+			    "\t --gen_c_file_name \$\@ $SrcPath\\$Src\n",
+				"\n\n",
+			);
+		}
+		else {			
+			&main::Output(
+				&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.o"), " : ",
+				&Generic_Quote("$SrcPath\\$Src"), "\n",
+				"\t\@echo $Src\n",
+				"\t\$(ARMCC$Bld) $lfboption$LangOptions -J $SrcPath \$(INCDIR) -o \$\@ $SrcPath\\$Src\n",
+				"\n",
+# generate an assembly listing target too
+			"LISTING$Bld$BaseSrc : ", &Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.lis"), "\n",
+			"\t", &Generic_CopyAction("$SrcPath\\$BaseSrc.$LstExt.lst"),
+			"\n",
+			&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.lis"), " : ",
+			&Generic_Quote("$SrcPath\\$Src"), "\n",
+			"\t\$(ARMCC$Bld) $LangOptions -S -J $SrcPath \$(INCDIR) -o \$\@ $SrcPath\\$Src \n",
+			"\n"
+			);
+			#Compiler wrapper support starts
+			if($IsCompilerWrapperOption)
+			{
+				my $Platcmpwrap=&main::Plat;
+				&main::Output(
+					"COMPWRAP$Bld$BaseSrc : ",
+					&Generic_Quote("$SrcPath\\$Src"), "\n",
+					"\t\@echo Analysing $Src\n",
+					"\t\$(COMPWRAP) \$(ARMCC$Bld) $LangOptions -S -J $SrcPath \$(INCDIR) -o \$\@ $SrcPath\\$Src \n",
+					"\n"
+				);
+			}
+			#Compiler wrapper support ends
+			
+		}
+	}
+}
+
+my $MFVarN = 0;
+sub MultiFileEndSrcBld {
+	my $ABI=&main::ABI;
+	my $BaseSrc=&main::BaseSrc;
+	my $Bld=&main::Bld;
+        my $KeyFile = &main::Src;
+	my $Src=ucfirst lc $KeyFile;
+	my $SrcPath=&main::Path_Chop(&main::SrcPath);
+	my $Ext = &main::Path_Split('Ext', $Src);
+	my $LangOptions = &SelectLangOptions($Ext);
+	# support for auto 'translated' ASM 
+	my $AsmFilep = $AsmFiles{$Src};
+
+	my $lfboption = LinkerFeedBackOption();
+
+	if ($AsmFilep || $Ext =~ /cia/i) {
+		if ($CompilationGroups{$KeyFile}) {
+# compile the translated, preprocessed source
+		       &main::Output( "OBJECTS$MFVarN = ");
+		       foreach my $obj (@{$CompilationGroups{$KeyFile}{Objects}}) {
+			       &main::Output( &Generic_Quote("\\\n\t\$(EPOCBLD$Bld)\\$obj"), " "); 
+		       }
+       		       &main::Output( "\n\n");
+		       &main::Output( "SOURCES$MFVarN = ");
+		       foreach my $src (@{$CompilationGroups{$KeyFile}{Sources}}) {
+			       &main::Output( &Generic_Quote("\\\n\t\$(EPOCBLD$Bld)\\$src", " "));
+		       }
+       		       &main::Output( "\n\n");
+		       &main::Output( "\$(OBJECTS$MFVarN) : \$(SOURCES$MFVarN) \n");
+
+		       &main::Output(
+				     "\t\@echo Compiling \$(SOURCES$MFVarN)\n", 
+				     "\t\$(ARMCC$Bld) -J $SrcPath \$(INCDIR) $lfboption\\\n",
+				     "\t\t$LangOptions -o \$\@ --multifile \$(SOURCES$MFVarN)"
+		      );
+       		       &main::Output( "\n\n");
+		       $MFVarN++;
+		}
+		&main::Output(
+# rule to translate the preprocessed source
+			&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc\_.cpp"), " : ",
+			&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.pre"), "\n",
+			"\ttranasm.bat -n -s -o=\$\@ \$(EPOCBLD$Bld)\\$BaseSrc.pre\n",
+			"\n",
+# rule to preprocess the source
+			&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.pre"), " : ",
+			&Generic_Quote("$SrcPath\\$Src"), "\n",
+  			"\t\$(ARMCC$Bld) -D__CIA__ -E $preinclude $LangOptions -J $SrcPath \$(INCDIR) $SrcPath\\$Src -o \$\@ \n",
+# generate an assembly listing target too
+			"LISTING$Bld$BaseSrc\_ : ", &Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc\_.lis"), "\n",
+			"\t", &Generic_CopyAction("$SrcPath\\$BaseSrc\_.$LstExt.lst"),
+			"\n",
+			&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc\_.lis"), " : ",
+			&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc\_.cpp"), "\n",
+			"\t\$(ARMCC$Bld) $LangOptions -S -J $SrcPath \$(INCDIR) -o \$\@ \$(EPOCBLD$Bld)\\$BaseSrc\_.cpp\n",
+			"\n"
+			);
+	} else {
+
+		if ($CompilationGroups{$KeyFile}) {
+#                      compile the source
+		       &main::Output( "OBJECTS$MFVarN = ");
+		       foreach my $obj (@{$CompilationGroups{$KeyFile}{Objects}}) {
+			       &main::Output( &Generic_Quote("\\\n\t\$(EPOCBLD$Bld)\\$obj"), " "); 
+		       }
+       		       &main::Output( "\n\n");
+		       &main::Output( "SOURCES$MFVarN = ");
+		       foreach my $src (@{$CompilationGroups{$KeyFile}{Sources}}) {
+			       &main::Output( &Generic_Quote("\\\n\t$src"), " ");
+		       }
+       		       &main::Output( "\n\n");
+		       &main::Output( "\$(OBJECTS$MFVarN) : \$(SOURCES$MFVarN) \n");
+
+		       &main::Output(
+				     "\t\@echo Compiling \$(SOURCES$MFVarN)\n", 
+				     "\t\$(ARMCC$Bld) -J $SrcPath \$(INCDIR) $lfboption\\\n",
+				     "\t\t$LangOptions -o \$\@ --multifile \$(SOURCES$MFVarN)"
+		      );
+       		       &main::Output( "\n\n");
+		       $MFVarN++;
+		}
+#		generate an assembly listing target too
+		&main::Output(
+			"LISTING$Bld$BaseSrc : ", &Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.lis"), "\n",
+			"\t", &Generic_CopyAction("$SrcPath\\$BaseSrc.$LstExt.lst"),
+			"\n",
+			&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.lis"), " : ",
+			&Generic_Quote("$SrcPath\\$Src"), "\n",
+			"\t\$(ARMCC$Bld) $LangOptions -S -J $SrcPath \$(INCDIR) -o \$\@ $SrcPath\\$Src \n",
+			"\n"
+			);
+	}
+}
+
+
+sub PMEndSrc {
+
+	&main::Output(
+		"\n",
+		"\n"
+	);
+}
+
+sub PMEndSrcList {
+
+	# Deal with accumulated MAKEDIRS etc.
+
+	&Generic_End;
+}
+
+sub PMSupportsFeatureVariants
+	{
+	return 1;
+	}
+
+1;
+
+
+
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/platform/cl_bpabi.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,2885 @@
+# Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+# This package contains routines to handle Base Platform ABI (BPABI) Platforms.
+package Cl_bpabi;
+
+my @commonOptions;
+my @thumbOptions;
+my @armOptions;
+my @kernelOptions;
+my @invariantOptions;
+my @linkerOptions;
+my @archiverOptions;
+my @debugFormat;
+my $ArmIncDir;
+my @ArmLibList;
+
+my %configVariables;
+
+#Check if Function call Logger is enabled
+my $Function_Call_Logger=&main::IsFunctionCallLogging();
+
+# Get the information regarding supporting Compiler Wrapper Option
+my $IsCompilerWrapperOption=&main::CompilerWrapperOption();
+my $IsProxyWrapperOption=&main::ProxyWrapperOption();
+
+# takes an 'expression'  to evaluate with $_ bound to each of the
+# remaining args
+sub PrintList
+{
+    my $expr = shift @_;
+    foreach (@_) {
+	my $str = eval($expr);
+	&main::Output($str);
+    }
+}
+
+sub DepLinkList
+{
+    my $expr = shift @_;
+    my @arr;
+    foreach (@_) {
+	my $str = eval($expr);
+	push @arr, $str;
+    }
+    return @arr;
+}
+
+require Exporter;
+@ISA=qw(Exporter);
+@EXPORT=qw(
+	PMHelp_Mmp
+	PMPlatProcessMmp
+	PMStartBldList
+		PMBld
+	PMStartSrcList
+		PMBitMapBld
+		PMResrcBld
+		PMStartSrc
+		PMAifBld
+		PMSrcDepend
+			PMSrcBldDepend
+			PMEndSrcBld
+		PMEndSrc
+	PMEndSrcList
+	PMPrefixFile
+	PMToolChainIncDir
+	PMSupportsFeatureVariants
+);
+
+use Cwd;
+
+# Armutl package does various ancillary things for armedg modules
+use Armutl;
+use BPABIutl;
+use E32Plat;
+use RVCT_plat2set;
+use gcce_plat2set;
+
+# This is the RVCT Version information required by Armutl package
+my $RVCTMajorVersion;
+my $RVCTMinorVersion;
+my $RVCTVersion;
+
+my $GCCEMajorVersion;
+my $GCCEMinorVersion;
+my $GCCEVersion;
+
+# The name of the build platform, e.g. ARMV6.
+my $PlatName = main::Plat();
+
+# The name of the root platform. This is useful if the plaform is derived using a
+# BSF file. If the current platform is not derived, $RootName will be the same as
+# $PlatName.
+my $RootName = E32Plat::Plat_Root($PlatName);
+
+
+# cl_generic package contains generic routines to handle bits of makefiles which are
+# common to all of the platforms. Currently it deals with AIF, MBM amd RSC files.
+use cl_generic;
+
+# E32env package contains information for makmake and associated e32tools perl programs
+# within the Epoc32 Environment
+use E32env;
+
+# Genutl package contains utility subroutines for MAKMAKE and associated scripts
+use Genutl;
+
+# Modload package is the runtime module-loading routine for loading e32tools modules into
+# 'main' module
+use Modload;
+
+use constant NOCOMPRESSIONMETHOD => 0;
+use constant INFLATECOMPRESSIONMETHOD => 1;
+use constant BYTEPAIRCOMPRESSIONMETHOD => 2;
+
+use constant NOTPAGED => 0;
+use constant UNPAGED => 1;
+use constant PAGED => 2;
+
+use constant NON_DEBUGGABLE => 0;
+use constant DEBUGGABLE => 1;
+use constant DEBUGGABLE_UDEBONLY => 2;
+
+my %plat = &main::PlatRec();
+my $CustomizedARMV5Plat = 0;
+
+if (($plat{'CUSTOMIZES'}) && (($plat{'ROOTPLATNAME'} eq "ARMV5") || ($plat{'ROOTPLATNAME'} eq "ARMV5_ABIV2"))) {
+# The following flag is set to handle the exceptions related to ARMV5 toolchain.
+	$CustomizedARMV5Plat = 1;		
+}
+
+#this fucntion will be used for cw_ide platform to update the PlatName and reinitialize the hashtable
+sub getVariableForNewPlat
+{
+	$PlatName = main::Plat();	
+	undef(%configVariables);
+}
+sub PMHelp_Mmp {
+
+# Help Text for ARM Platform, lists out the MMP keywords used incase of ARM Compiler
+	if($PlatName eq "ARMV5" || $PlatName eq "ARMV5_ABIV2" || $CustomizedARMV5Plat)
+	{
+		return &Armutl_Help_Mmp;
+	}
+	else
+	{
+		return "";
+	}
+}
+
+my $ToolChainIncDir;
+my @ToolChainLibList;
+my $ArmRT = 0;
+my %AsmFiles = ();
+my %AsmDirs = ();
+my $NamedSymLkup = 0;
+my $InterWorking = '';
+
+sub PMPlatProcessMmp (@) {
+	&InitToolChain(@_);
+	$ToolChainIncDir = &GetToolChainIncDir;
+	&main::SetStdIncPaths($ToolChainIncDir);
+	@ToolChainLibList = &GetLibList;
+# Variable to check if the target forms part of the run time libraries, if it is so
+# shouldn't be linked against itself or other runtime libs
+	$ArmRT = &IsTargetRT;
+	my @AsmFileList = &GetToolChainAsmFileList;
+	foreach (@AsmFileList) { $AsmFiles{ucfirst lc $_} = 1; }
+}
+
+my $preinclude;
+
+my $Makecmd;
+
+sub PMStartBldList($) {
+	($Makecmd) = @_;
+	my $ABI=&main::ABI;
+	my $BaseTrg=&main::BaseTrg;
+	my $BasicTrgType=&main::BasicTrgType;
+	my @BldList=&main::BldList;
+	my @ChopSysIncPaths=&main::Path_Chop(&main::SysIncPaths);
+	my @ChopUserIncPaths=&main::Path_Chop(&main::UserIncPaths);
+	my $DefFile=&main::DefFile;
+	my $EPOCPath=&main::EPOCPath;
+	my $LinkAs=&main::LinkAs;
+	my $LibPath=&main::LibPath.'LIB\\';
+	my @MacroList=&main::MacroList();
+	push @MacroList, "__SUPPORT_CPP_EXCEPTIONS__";
+	push @MacroList, "__SYMBIAN_STDCPP_SUPPORT__" if ( StdCppTarget() );
+
+  	my $Plat=&main::Plat;
+  	my $Trg=&main::Trg;
+  	my $TrgType=&main::TrgType;
+  
+  # This horrible change (presumably to allow GCCE to work with edll.lib etc.
+  # produced by RVCT breaks SMP (and also breaks any optimized platform
+  # builds such as ARMV6, and also Thumb2 builds).
+  # Work round for now by conditioning the horrible change on the absence of
+  # SMP in the platform definition.
+  	my %PlatHash = &main::PlatRec();
+  	unless ($PlatHash{SMP}) {
+		my $myStatLinkPath;
+		$myStatLinkPath = "$E32env::Data{LinkPath}";
+		$myStatLinkPath .= "ARMV5";
+		&main::SetStatLinkPath($myStatLinkPath);
+	}
+
+	my $VariantFile=&ChangeSlash(&main::VariantFile);
+
+	my @UidList=&main::UidList;
+    my $SystemTrg = &main::SystemTrg;
+    my $ExportLibrary=&main::ExportLibrary;
+    my $NoExportLibrary=&main::NoExportLibrary;
+    # N.B. should get better way to detect kernel probably!!
+    $SystemTrg = 1 if ($ExportLibrary =~ /EKERN/i);
+
+    # N.B. should get better way to detect this
+    $SystemTrg = 1 if ($Trg =~ /KSRT/i);
+
+	my %Version = &main::Version();
+	my $ExtraExportLibrary;
+	my $PrimaryExportLibrary = $ExportLibrary;
+	unless ($Version{explicit}) {
+		$ExtraExportLibrary = $ExportLibrary;
+		$ExtraExportLibrary =~ s/\{(\d|a|b|c|d|e|f){8}\}//i;
+		$PrimaryExportLibrary = $ExtraExportLibrary;
+	}
+
+#	set up LinkAs
+	$UidList[2]=~/^0x(.*)$/o;
+	if ($1 ne '00000000') { # have to make sure than series of noughts in brackets doesn't appear in name for null uids
+		$LinkAs=join '', &main::Path_Split('Base',$LinkAs),"[$1]",&main::Path_Split('Ext',$LinkAs);
+	}
+
+	# Required for .lib generation
+	$InterWorking = ($ABI eq 'ARMV4') ? "" : "--inter";
+
+	# need to add config file for makmake invocation
+	my $config_file = BPABIutl_Config_Path($PlatName);
+
+	&main::Output("\n", "include $config_file\n", "\n");
+	&Generic_Header(0,$Makecmd, 1);	# define standard things using absolute paths and request that a make function
+									# is provided to provide optional conversion of absolute paths to Unix slashes
+
+# modified start: makefile improvement 
+	&main::Output(
+		"CHECKVMAP : CHECKVMAPUDEB CHECKVMAPUREL",
+		"\n"
+	);
+# modified end: makefile improvement 
+	if ($Makecmd eq "nmake") {
+		&main::Output(
+			"\n",
+  			"PATH=",&main::Path_Drive,$EPOCPath,"gcc\$(PBUILDPID)\\bin;\$(PATH)\n",
+			"\n"
+		);
+	}
+	else {
+		&main::Output(
+			"\n",
+			"# must set both PATH and Path to make it work correctly\n",
+  			"Path:=",&main::Path_Drive,$EPOCPath,"gcc\$(PBUILDPID)\\bin;\$(Path)\n",
+			"PATH:=\$(Path)\n",
+			"\n"
+		);
+	}
+
+	if ($BasicTrgType=~/^(DLL|EXE)/o)
+	{
+
+		my $OtherLinkerOpts;
+		my $toolchain = getConfigVariable('COMPILER_PLAT');
+		
+		# In case of GCCE releases, '--map' option was supported only from build 3.4.3 Q1C release
+		# Hence this is a special case, where GCCE platform is checked to ensure that the --map option
+		# is accepted in the correct relase. Even if the option is provided in the config file, it will be
+		# ignored for versions before 3.4.3 Q1C 2005 release.
+
+		# Check to be included in the Makefile, so that the map filename is provided as input only
+		# when the MAP option is supplied
+
+		&main::Output("ifdef LINKER_SYMBOLS_MAP_OPTION\n");
+		foreach (@BldList)
+			{
+			&main::Output("\t$_"."_MAP_FILE=\"\$(EPOCTRG$_)\\".&main::Trg($_).".map\"\n");
+			}
+		&main::Output("else\n");
+		foreach (@BldList)
+			{
+			&main::Output("\t$_"."_MAP_FILE=\n");
+			}
+		&main::Output("endif\n");
+
+		#	In some compiler toolchains, the start address may be required to be provided using the appropriate option.
+		#	Incase if the option is provided by the toolchain, then pass we need to pass in the start address.
+		&main::Output(
+			"\nifdef CODE_SEGMENT_START\n",
+			"\tCODE_SEGMENT_START += 0x8000 \n",
+			"endif\n",
+		);
+
+
+		# In some compiler toolchain, the symboled archives may have to be listed
+		&main::Output(
+			"ifdef START_GROUP_SYMBOL\n",
+			"\tEEXE_OBJECT=\$(START_GROUP_SYMBOL)UC_EXE_.o\$(END_GROUP_SYMBOL)\n",
+			"\tEDLL_OBJECT=\$(START_GROUP_SYMBOL)UC_DLL_.o\$(END_GROUP_SYMBOL)\n",
+			"\tDENTRY_OBJECT=\$(START_GROUP_SYMBOL)D_ENTRY_.o\$(END_GROUP_SYMBOL)\n",
+			"\tLENTRY_OBJECT=\$(START_GROUP_SYMBOL)L_ENTRY_.o\$(END_GROUP_SYMBOL)\n",
+			"\tXENTRY_OBJECT=\$(START_GROUP_SYMBOL)X_ENTRY_.o\$(END_GROUP_SYMBOL)\n",
+			"\tVENTRY_OBJECT=\$(START_GROUP_SYMBOL)V_ENTRY_.o\$(END_GROUP_SYMBOL)\n",
+			"\tKENTRY_OBJECT=\$(START_GROUP_SYMBOL)K_ENTRY_.o\$(END_GROUP_SYMBOL)\n",
+			"endif\n\n"
+		);
+		
+		# put the extra linker options from MMP file into the linker flags
+		$OtherLinkerOpts=&main::LinkerOption($toolchain);
+		
+		if($OtherLinkerOpts) {
+			&main::Output(
+				"\n# ADDITIONAL LINKER OPTIONS\n",
+				"ifdef SYMBIAN_UREL_LINK_FLAGS\n",
+				"\tSYMBIAN_UREL_LINK_FLAGS += $OtherLinkerOpts \n",
+				"else\n",
+				"\tSYMBIAN_UREL_LINK_FLAGS = $OtherLinkerOpts \n",
+				"endif\n",
+				"ifdef SYMBIAN_UDEB_LINK_FLAGS\n",
+				"\tSYMBIAN_UDEB_LINK_FLAGS += $OtherLinkerOpts \n",
+				"else\n",
+				"\tSYMBIAN_UDEB_LINK_FLAGS = $OtherLinkerOpts \n",
+				"endif\n\n"
+			);
+		}
+	}
+
+	&main::Output(
+		"INCDIR ="
+	);
+
+	PrintList("\"  \\\$(INCLUDE_OPTION) \$_\"", @ChopUserIncPaths);
+	PrintList("\" \\\$(INCLUDE_OPTION) \$_\"", @ChopSysIncPaths);
+
+	$ToolchainIncDir = &GetToolChainIncDir;
+
+	if($ToolchainIncDir ne '')
+	{
+		&main::Output(
+			" \$(INCLUDE_OPTION) ","\"$ToolchainIncDir\"");
+	}
+
+	&main::Output(
+		"\n",
+		"\n"
+	);
+
+	#Function call logger takes -I as include option
+	my $FCLogger_inc_option = getConfigVariable('FC_LOGGER_INCLUDE_OPTION'); 
+	if ($Function_Call_Logger)	{
+		&main::Output(
+			"INCDIR_FCLOGGER  ="
+		);
+		PrintList("\" $FCLogger_inc_option \$_\"", @ChopUserIncPaths);
+		PrintList("\" $FCLogger_inc_option \$_\"", @ChopSysIncPaths);
+		$ToolchainIncDir = &GetToolChainIncDir;
+		if($ToolchainIncDir ne '')	{
+			&main::Output(
+				" $FCLogger_inc_option \"$ToolchainIncDir\""
+			);
+		}
+		&main::Output(
+			"\n",
+			"\n"
+		);
+	}
+
+  	# Set control warnings and errors options for building Standard C++ application
+  	if( StdCppTarget() ) {
+  		&main::Output("CC_WARNINGS_CONTROL_OPTION=\$(CC_STDCPP_WARNINGS_CONTROL_OPTION)","\n");
+  		&main::Output("CC_ERRORS_CONTROL_OPTION=\$(CC_STDCPP_ERRORS_CONTROL_OPTION)","\n");
+  		&main::Output("\n",	"\n");
+  	}
+  	
+	Read_BSF_Options() if ($plat{'CUSTOMIZES'});
+
+	my $kernelOption=0;
+	my $buildAsArmOption=0;
+	my $thumbOption=0;
+
+	if (SysTrg())
+	{
+		$kernelOption=1;
+	}
+	elsif (main::BuildAsARM() or ($ABI eq 'ARMV4'))
+	{
+		$buildAsArmOption=1;
+	}
+	else
+	{
+		$thumbOption=1;
+	}
+
+	my $OtherOpts = undef;	
+
+	my $toolchain = getConfigVariable('COMPILER_PLAT');
+
+	$OtherOpts = &main::CompilerOption($toolchain);
+
+	
+	if($kernelOption==1)
+	{
+		if(@kernelOptions) {
+# Kernel options as read from BSF file (KERNEL_OPTIONS keyword)
+			Set_BSF_Options('KERNEL_OPTIONS',\@kernelOptions);
+		}
+		$OtherOpts .= " \$(KERNEL_OPTIONS) ";
+	}
+	elsif($buildAsArmOption==1)
+	{	
+		if(@armOptions) {
+# Arm options as read from BSF file (ARM_OPTIONS keyword)
+			Set_BSF_Options('ARM_OPTIONS',\@armOptions);
+		}
+		$OtherOpts .= " \$(ARM_OPTIONS) ";
+	}
+	elsif($thumbOption==1)
+	{
+		if(@thumbOptions) {
+# Thumb options as read from BSF file (THUMB_OPTIONS keyword)
+			Set_BSF_Options('THUMB_OPTIONS',\@thumbOptions);
+		}
+		$OtherOpts .= " \$(THUMB_OPTIONS) ";
+	}
+
+	if($thumbOption==1 || $buildAsArmOption==1 || $kernelOption ==1 )
+	{
+		if (&main::ARMFPU && (&main::ARMFPU =~ /^VFPV2$/i))
+		{
+			$OtherOpts .=	" \$(VFP2MODE_OPTION) ";
+		}
+		else
+		{
+			$OtherOpts .=	" \$(SOFTVFPMODE_OPTION) ";
+		}
+	}
+
+	if ($thumbOption==1)
+	{
+		$OtherOpts .= " \$(COMPILER_THUMB_DEFINES) ";
+	}
+
+	$OtherOpts .= " \$(COMPILER_INTERWORK_DEFINES) ";
+
+	# Options to export symbols by default, for OE
+	if($TrgType=~/^STDDLL$/o || $TrgType=~/^STDEXE$/o || $TrgType=~/^STDLIB$/o) {
+		$OtherOpts .= " \$(OE_OPTIONS) ";
+	}
+
+	if($OtherOpts)
+	{
+		&main::Output(
+			"OTHEROPTIONS=$OtherOpts",
+			"\n",
+			"CCFLAGS += \$(OTHEROPTIONS)",
+			"\n"
+		);
+	}
+
+	if(@invariantOptions) {
+# Invariant options as read from BSF file (INVARIANT_OPTIONS keyword)
+		Set_BSF_Options('INVARIANT_OPTIONS',\@invariantOptions);
+	}
+
+	if(@commonOptions) {
+# Common options as read from BSF file (COMMON_OPTIONS keyword)
+		Set_BSF_Options('COMMON_OPTIONS',\@commonOptions);
+	}
+	
+	if(@linkerOptions) {
+# Linker options as read from BSF file (LD_OPTIONS keyword)
+		Set_BSF_Options('LD_OPTIONS',\@linkerOptions);
+	}	
+
+	if ($BasicTrgType=~/^LIB$/o) {
+		if(@archiverOptions) {
+# Archiver options as read from BSF file (AR_OPTIONS keyword)
+		Set_BSF_Options('AR_OPTIONS',\@archiverOptions);
+		}
+	}		
+
+	if(@debugFormat) {
+		Set_BSF_Options('DEBUG_FORMAT',\@debugFormat);
+	}	
+
+	&main::Output(
+		"CCDEFS = \$(COMPILER_DEFINES) "
+	);
+
+	PrintList("\" -D\$_\"", @MacroList);
+
+	&main::Output(
+		" \$(PLATFORM_DEFINES) "
+	);
+
+	&main::Output(
+
+	);
+
+	if($kernelOption==1)
+	{
+		&main::Output(
+			"-D__KERNEL_MODE__ "
+		);
+	}
+
+	if($VariantFile){
+		#Function Call Logger
+		if ($Function_Call_Logger) {
+			#FC Logger accepts product include file without path
+			my $file=&main::Path_Split('File', &main::VariantFile);
+			&main::Output(
+				" -D\"__PRODUCT_INCLUDE__=\\\"${file}\\\"\""
+			);
+		}
+		else {
+			&main::Output(
+				" -D__PRODUCT_INCLUDE__=\\\"${VariantFile}\\\""
+			);
+		}
+	}
+
+	&main::Output(
+		" \$(USERDEFS)\n",
+		"\n"
+	);
+
+	if ( $RootName =~ /^ARMV5$/ ) {
+		# Now we know that the platform is either ARMV5 or a platform derived from
+		# ARMV5 (BSF).
+	
+		# See if an environment variable overrides the default DWARF version for
+		# this platform.
+		
+		my $env_dwarf_key = "ABLD_${PlatName}_DWARF";
+		my $env_dwarf_val = $ENV{$env_dwarf_key};
+
+		if ($env_dwarf_val) {
+			main::FatalError("The value of $env_dwarf_key is invalid.") unless ($env_dwarf_val =~ /^[23]$/);
+			main::FatalError("We don't support DWARF-2 on ARMV7.") if ($PlatName =~ /^ARMV7/ && $env_dwarf_val == 2);
+
+			&main::Output( "DEBUG_FORMAT=\$(DEBUG_FORMAT_DWARF$env_dwarf_val)\n\n");
+		}
+	}
+
+
+	foreach (@BldList) {
+		&main::Output(
+			"CC$_ = ", $IsProxyWrapperOption ? "$ENV{ABLD_COMPWRAP} ":"", "\$(CC) "
+		);
+
+		# SYMBIAN_UDEB/UREL_CCFLAGS don't have the optimisation levels.
+		if(&main::DebugSwitchUsed() ){
+			if(&main::SymbolicDebugEnabled() ) {
+				&main::Output(
+					" \$(SYMBIAN_UDEB_CCFLAGS) "
+				);
+			}
+			else {
+				&main::Output(
+					" \$(SYMBIAN_UREL_CCFLAGS) "
+				);
+			}
+		}
+		elsif (/DEB$/o) {
+			&main::Output(
+				" \$(SYMBIAN_UDEB_CCFLAGS) "
+			);
+		}
+		else {
+			&main::Output(
+				" \$(SYMBIAN_UREL_CCFLAGS) "
+			);
+
+		}
+		#Set the optimisation levels depending on whether it is a UREL or a UDEB build
+		if (/DEB$/o) {
+			&main::Output(
+				" \$(DEBUG_OPTIMISATION) "
+			);
+		}
+		else {
+		&main::Output(
+				" \$(REL_OPTIMISATION) "
+			);
+		}
+
+		&main::Output(
+			"\$(RUNTIME_SYMBOL_VISIBILITY_OPTION) "
+		);
+
+		if($kernelOption == 0)
+		{
+			&main::Output(
+				"\$(EXCEPTIONS) "
+			);
+		}
+		&main::Output(
+			'$(CCFLAGS) '
+		);
+
+		my @ml = &main::MacroList($_);
+		PrintList("\" -D\$_\"", @ml);
+
+		&main::Output(
+			" \$(CCDEFS)\n"
+		);
+		my @mmpReplaceOptions = &main::ReplaceOptions($toolchain);
+		
+		if (@mmpReplaceOptions)
+		{
+			my $OptionPrefix = getConfigVariable('OPTION_PREFIX');
+			my $Pattern;
+
+			# Set the value of '$Pattern' which is required to segregate one option from another based on the option prefix.
+			if($OptionPrefix) 
+			{
+				$Pattern = $OptionPrefix.'\S+\s*(?!'.$OptionPrefix.')\S*';
+			}
+			else 
+			{
+				# If option prefix is not set in the configuration make file, then set default
+				# option prefix as '-' or '--'.
+				$Pattern = '-{1,2}\S+\s*(?!-)\S*';
+			}
+
+			foreach my $options (@mmpReplaceOptions) 
+			{
+				my @opts = $options =~ /$Pattern/g;
+				my $count = 0;
+
+				while ($count <= $#opts) 
+				{
+					my $opt;
+					my $rep;
+					if ($opts[$count] =~ /^(\S+)\s+(\S+)$/) 
+					{
+						$opt = $1;
+						$rep = $2;
+						&main::Output(
+							"CC$_ := \$(subst $opt ,@@,\$(CC$_))\n",
+							"CC$_ := \$(CC$_:@@%=$opt $rep)",							
+							"\n"
+						);			
+						$count++;
+					}
+					else
+					{
+						$opt = $opts[$count];
+						$rep = $opts[$count+1];
+						
+						# Substitute '=' with '%' which is a wild card character in makefile.					
+						$opt =~ s/=/%/;
+					
+						&main::Output(
+							"CC$_ := \$(CC$_:$opt=$rep)",
+							"\n"
+						);							
+						$count+=2;
+					}
+				}
+			}
+		}
+		&main::Output(
+			"\n"
+		);
+	}
+
+	&main::Output(		
+		"\n"
+	);
+
+	#Function call logger
+	if ($Function_Call_Logger)	{
+		#Send all the debug macros to logger
+		foreach (@BldList) {
+			&main::Output
+			(
+				"FCLOGGER$_ = ", 
+				$EPOCPath, 
+				"tools\\fc_logger\\edgcpfe"
+			);
+
+			my @ml = &main::MacroList($_);
+			PrintList("\" -D\$_\"", @ml);
+			if ($thumbOption==1) {
+				&main::Output(
+					" \$(COMPILER_THUMB_DEFINES)"
+				);
+			}
+			&main::Output(" \$(COMPILER_INTERWORK_DEFINES)",
+						  " \$(CCDEFS)",
+						  " \$(FC_LOGGER_DEFINES)",
+						  " \$(FC_LOGGER_OPTION)");
+			&main::Output(
+				"\n",
+				"\n"
+			);
+		}
+	}
+	
+	foreach (@BldList) {
+		&main::Output(
+			"$_ :"
+		);
+
+		if ($BasicTrgType !~ /IMPLIB/io) {
+			&main::Output (
+				" \\\n\t",
+				&Generic_Quote("\$(EPOCTRG$_)\\".&main::Trg($_))
+			);
+		}
+
+#		lib has to come after the main target so that a .DEF file will be generated if the project is not frozen
+		if ($DefFile and not &main::ExportUnfrozen) {
+			&main::Output(
+				" \\\n",
+				"\tLIBRARY\n"
+			);
+		}
+		&main::Output(
+			"\n",
+			"\n"
+		);
+	}
+
+	# Resource building is done entirely via cl_generic.pm
+	PrintList("\"\nRESOURCE\$_ : MAKEWORK\$_\"", @BldList);
+	&main::Output(
+		"\n",
+		"\n",
+	);
+
+	&main::Output(
+		"LIBRARY : MAKEWORKLIBRARY"
+	);
+	if ($BasicTrgType=~/^LIB$/o) {
+#		code to ensure that the static libraries for all builds are built at the library stage
+			PrintList("\" \$_\"", @BldList);
+	}
+	elsif ($DefFile and !$NoExportLibrary) {
+		unless (&main::ExportUnfrozen) {
+			if (-e $DefFile) { # effectively "if project frozen ..."
+				if ($PlatName =~ /^ARMV5$/) {
+					&main::Output(
+						" ", &Generic_Quote("\$(EPOCLIB)\\LIB\\$PrimaryExportLibrary.dso"),
+						" ", &Generic_Quote("\$(EPOCLIB)\\LIB\\$PrimaryExportLibrary.lib"), "\n"
+					);
+				}
+				else {
+					&main::Output(
+						" ", &Generic_Quote("\$(EPOCLIB)\\LIB\\$PrimaryExportLibrary.dso"), "\n"
+					);
+				}
+			}
+			else {
+				&main::Output(
+					"\n",
+					"\t\@echo WARNING: Not attempting to create any import libraries.\n",
+					"\t\@echo When exports are frozen in \"$DefFile\", regenerate Makefile.\n"
+				);
+			}
+		} else {
+			&main::Output(
+				"\n",
+				"\t\@echo Not attempting to create \"\$(EPOCLIB)\\LIB\\$PrimaryExportLibrary.dso\"\n",
+				"\t\@echo from frozen .DEF file, since EXPORTUNFROZEN specified.\n"
+			);
+		}
+
+		my $theDefFile = $DefFile;
+		$theDefFile = "\$(EPOCBLD)\\$BaseTrg.def" unless (-e $DefFile);
+		&main::Output(
+			"\n",
+			"\n",
+			"# REAL TARGET - LIBRARY (.dso) \n",
+			"\n",
+			&Generic_Quote("\$(EPOCLIB)\\LIB\\$ExportLibrary.dso"), " : ",
+			&Generic_Quote($DefFile), "\n",
+				"\tperl -S prepdef.pl ", &Generic_Quote($DefFile), " \"\$(EPOCBLD)\\$ExportLibrary.prep.def\"\n",
+				"\telf2e32 --definput=\"\$(EPOCBLD)\\$ExportLibrary.prep.def\" --dso=",
+				&Generic_Quote("\$(EPOCLIB)\\LIB\\$ExportLibrary.dso"),
+				" --linkas=$LinkAs\n",
+			"\n"
+		 );
+		if ($ExtraExportLibrary) {
+			&main::Output(
+				"\n",
+				&Generic_Quote("\$(EPOCLIB)\\LIB\\$ExtraExportLibrary.dso"), " : ",
+				&Generic_Quote("\$(EPOCLIB)\\LIB\\$ExportLibrary.dso"), "\n",
+				"\tcopy \"\$<\" \"\$@\"\n"
+			);
+		}
+
+		# Generate .lib files which will be used for ARMV5_ABIV1 platform (ABIV1 mode toolchain)
+		# Only for ARMV5 platform
+		if ($PlatName =~ /^ARMV5$/)
+		{
+			&main::Output(
+				"\n",
+				"\n",
+				"# REAL TARGET - LIBRARY (.lib) \n",
+				"\n",
+				&Generic_Quote("\$(EPOCLIB)\\LIB\\$ExportLibrary.lib"), " : ",
+				&Generic_Quote($DefFile), "\n",
+					"\tperl -S prepdef.pl ", &Generic_Quote($DefFile), " \"\$(EPOCBLD)\\$ExportLibrary.prep.def\"\n",
+					"\tdef2dll.bat --path=\$(EPOCLIB)\\LIB \\\n\t\t--bldpath=\$(EPOCBLD) \\\n\t\t--import=$ExportLibrary \\\n",
+					"\t\t--deffile=\"\$(EPOCBLD)\\$ExportLibrary.prep.def\" \\\n\t\t--linkAs=$LinkAs \\\n\t\t$InterWorking\n",
+					"\n",
+			);
+			if ($ExtraExportLibrary) {
+				&main::Output(
+					"\n",
+					&Generic_Quote("\$(EPOCLIB)\\LIB\\$ExtraExportLibrary.lib"), " : ",
+					&Generic_Quote("\$(EPOCLIB)\\LIB\\$ExportLibrary.lib"), "\n",
+					"\tcopy \"\$<\" \"\$@\"\n"
+				);
+			}
+		}
+	}
+
+	my $freezeDir = &main::Path_Split('Path', $DefFile);
+	chop($freezeDir);
+
+	# dummy rule for def files to cope with filename case differences
+	unless (&main::ExportUnfrozen) {
+		if (-e $DefFile) { # effectively "if project frozen ..."
+			&main::Output(
+				"\n",
+				"\n",
+				&Generic_Quote($DefFile), " : ", "\n",
+				"\t\@rem Do nothing\n",
+			);
+		}
+	}
+
+	&main::Output(
+		"\n",
+		"\n",
+		&Generic_Quote($freezeDir), " : ", "\n",
+		"\tperl -S emkdir.pl \$\@\n",
+	);
+
+	&main::Output(
+		"\n",
+		"\n",
+		"FREEZE : ",
+		&Generic_Quote($freezeDir), "\n",
+	);
+	if ($DefFile and $BasicTrgType!~/^IMPLIB$/io) {
+#		call perl on the script here so make will die if there are errors
+#           - this doesn't happen if calling perl in a batch file
+		&main::Output( "\tperl -S efreeze.pl \$(EFREEZE_ALLOW_REMOVE) \"$DefFile\" \"\$(EPOCBLD)\\$ExportLibrary.def\" \n" );
+	}
+	else {
+		&main::Output( "\tperl -e \"print \\\"warning: freeze could not be supported or \\
+		         you need to declare an explicitly specified def file using the keyword \\
+			 DEFFILE in the MMP file!\\n\\\"\""); 
+	}
+	&main::Output(
+		"\n",
+		"CLEANLIBRARY :\n"
+	);
+	if ($DefFile and !$NoExportLibrary) {
+		&main::Output(
+			"\t-\$(ERASE) \"\$(EPOCLIB)\\LIB\\$ExportLibrary.dso\"\n"
+		);
+		if ($ExtraExportLibrary) {
+			&main::Output(
+				"\t-\$(ERASE) \"\$(EPOCLIB)\\LIB\\$ExtraExportLibrary.dso\"\n"
+			);
+		}
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+	&Generic_MakeWorkDir('MAKEWORKLIBRARY',"${LibPath}");
+
+	&Generic_Releaseables;
+}
+
+
+sub PMBld {
+
+    my $ABI=&main::ABI;
+    my @ASSPLibList=&main::ASSPLibList;
+    my @SrcList=&main::SrcList;
+    my $FeatureVariantBaseTrg=&main::FeatureVariantBaseTrg;
+    my $Bld=&main::Bld;
+    my $ChopBldPath=&main::Path_Chop(&main::BldPath);
+    my $DefFile=&main::DefFile;
+    my $EPOCIncPath=&main::EPOCIncPath;
+    my $FirstLib=&main::FirstLib;
+    my $BasicTrgType=&main::BasicTrgType;
+    my @LibList;
+    my @RTLibList = &GetRTLibList();
+    my $SystemTrg = &main::SystemTrg;
+    my $LibPath= &main::LibPath;
+    my $LinkAs=&main::LinkAs;
+    my $ExportLibrary=&main::ExportLibrary;
+    my $NoExportLibrary=&main::NoExportLibrary;
+    # N.B. should get better way to detect kernel probably!!
+    $SystemTrg = 1 if ($ExportLibrary =~ /EKERN/i);
+    my $ChopRelPath=&main::Path_Chop(&main::RelPath);
+    my $RelPath=&main::RelPath;
+    my @StatLibList=&main::StatLibList;
+    my $StatLinkPath=&main::StatLinkPath;
+    my $Trg=&main::Trg;
+    my $TrgType=&main::TrgType;
+    my @UidList=&main::UidList;
+	my %Version = &main::Version();
+	my $ExtraExportLibrary;
+	unless ($Version{explicit}) {
+		$ExtraExportLibrary = $ExportLibrary;
+		$ExtraExportLibrary =~ s/\{(\d|a|b|c|d|e|f){8}\}//i;
+	}
+	my $objectFiles;
+
+    if ($Bld =~ /DEB/) {
+	@LibList = &main::DebugLibList;
+    } else {
+	@LibList = &main::LibList;
+    }
+
+#	set up $LinkAs
+    $UidList[2]=~/^0x(.*)$/o;
+    if ($1 ne '00000000') {	# have to make sure than series of noughts in brackets doesn't appear in name for null uids
+	$LinkAs=join '', &main::Path_Split('Base',$LinkAs),"[$1]",&main::Path_Split('Ext',$LinkAs);
+    }
+
+
+    # REAL TARGETS
+    #-------------
+    &main::Output(
+		  "# REAL TARGET - BUILD VARIANT $Bld\n",
+		  "\n"
+		  );
+
+#	releasables
+	my @releaseables;
+
+	push @releaseables, "$RelPath$Trg" if ($BasicTrgType!~/^IMPLIB$/io);
+	if ($BasicTrgType=~/^(DLL|EXE)$/o) {
+		push @releaseables, "$RelPath$Trg.map";
+	}
+	if (-e $DefFile and !$NoExportLibrary) { # effectively "if project frozen ..."
+		push @releaseables, "$LibPath$ExportLibrary.dso";
+		push @releaseables, "$LibPath$ExtraExportLibrary.dso" if ($ExtraExportLibrary);
+		if ($PlatName =~ /^ARMV5$/)	{
+			push @releaseables, "$LibPath$ExportLibrary.lib";
+			push @releaseables, "$LibPath$ExtraExportLibrary.lib" if ($ExtraExportLibrary);
+		}
+	}
+
+	push @releaseables, &main::FeatureVariantVMapFile() if &main::FeatureVariantVMapFile();
+
+	&main::Output(
+		"WHAT$Bld : WHATGENERIC\n",
+		"\n",
+		"CLEAN$Bld : CLEANBUILD$Bld CLEANRELEASE$Bld\n",
+		"\n",
+		"CLEANBUILD$Bld : \n",
+		"\t\@perl -S ermdir.pl \"\$(EPOCBLD$Bld)\"\n",
+		"\n",
+		"CLEANRELEASE$Bld : CLEANGENERIC\n",
+		"\n"
+	);
+	
+	&Generic_WhatTargets($Bld, "WHAT$Bld", @releaseables);
+	my @cleantargets = (@releaseables, "$RelPath$ExtraExportLibrary.sym");
+	
+	if (-e $DefFile and !$NoExportLibrary) { # effectively "if project frozen ..."
+		&Generic_CleanTargets($Bld, "CLEANRELEASE$Bld", @cleantargets);
+	}
+	else {
+		push @cleantargets, "$LibPath$ExportLibrary.dso";
+			push @cleantargets, "$LibPath$ExtraExportLibrary.dso" if ($ExtraExportLibrary);
+		if ($PlatName =~ /^ARMV5$/) {
+            push @cleantargets, "$LibPath$ExportLibrary.lib";
+            push @cleantargets, "$LibPath$ExtraExportLibrary.lib" if ($ExtraExportLibrary);
+		}
+			&Generic_CleanTargets($Bld, "CLEANRELEASE$Bld", @cleantargets);
+	}
+	
+	&Generic_MakeWorkDir("MAKEWORK$Bld",$ChopBldPath);
+	&Generic_MakeWorkDir("MAKEWORK$Bld",$ChopRelPath);
+
+	return if ($BasicTrgType=~/^IMPLIB$/io);
+
+	&main::Output(
+		"LISTING$Bld : MAKEWORK$Bld"
+	);
+	foreach (@SrcList) {
+			my $BaseSrc = &main::Path_Split('Base', $_);
+			my $Ext = &main::Path_Split('Ext', $_);
+		if ($Ext =~ /cia/i && ($PlatName ne "GCCE")) {
+			$BaseSrc = "$BaseSrc\_";
+		}
+		&main::Output(
+			" \\\n\tLISTING$Bld$BaseSrc"
+		);
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+	#Compiler wrapper support starts
+	if($IsCompilerWrapperOption)
+	{
+		my $Platcmpwrap=&main::Plat;
+		
+		&main::Output(
+			"COMPWRAP$Bld : OUTPUT_NAME = ",
+			"$Platcmpwrap\_$Bld",
+			"\n"
+		);
+		
+		&main::Output(
+			"COMPWRAP$Bld : MAKEWORK$Bld"
+		);
+
+		foreach (@SrcList) {
+			my $BaseSrc = &main::Path_Split('Base', $_);
+			&main::Output(
+				" \\\n\tCOMPWRAP$Bld$BaseSrc"
+			);
+		}
+
+		&main::Output(
+			"\n",
+			"\n"
+		);
+	}
+	#--Compiler wrapper support ends
+
+	# Flag that tells us wheter to run checklib.exe on user-added static libraries.
+	my $run_checklib = 0;
+
+  	if (@StatLibList && $BasicTrgType =~ /^(EXE|DLL)$/o && !$SystemTrg && main::StdCppSupport()) {
+		# There are user-added static libraries. They should be checked for
+		# consistent use of operator new.
+		$run_checklib = 1;
+
+		#Create a make variable for the libraries.
+		main::Output("\nUSER_ADDED_ARCHIVES_$Bld=");
+		PrintList("\' \\\n\t\'\.\&Generic_Quote\(\"\\\$\(EPOCSTATLINK$Bld\)\\\\\$_\"\)", @StatLibList);
+		main::Output("\n\n");
+	}
+
+	&main::Output(
+		"LIBS$Bld="
+	);
+        
+	my @depLibs;
+	if ($BasicTrgType=~/^DLL$/o) { # Add the DLL stub library
+		&main::Output(
+			" \\\n\t",
+			&Generic_Quote("\$(EPOCSTATLINK$Bld)\\EDLLSTUB.lib")
+		);
+		push @depLibs, &Generic_Quote("\$(EPOCSTATLINK$Bld)\\EDLLSTUB.lib");
+	}
+        
+	my $StaticRTLib = "";
+
+
+	if ($SystemTrg) {
+		$StaticRTLib = "ksrt";
+	}
+	else {
+		$StaticRTLib = "usrt";
+	}
+
+	if ($RVCTVersion) {
+		$StaticRTLib .= $RVCTVersion;
+	}
+	elsif ($GCCEVersion) {
+		if ($GCCEMajorVersion < 4) {
+			$StaticRTLib .= "2_2";
+		}
+		else {
+			$StaticRTLib .= "3_1";
+		}
+	}
+	else {
+		$StaticRTLib .= "2_2";
+	}
+
+	&main::Output(" \\\n\$(EPOCSTATLINK$Bld)\\$StaticRTLib\.lib");
+
+	&main::Output(" \\\n\t",getConfigVariable('VIA_FILE_PREFIX'));
+	PrintList("\' \\\n\t\'\.\&Generic_Quote\(\"\\\$\(EPOCBSFSTATLINK$Bld\)\\\\\$_\"\)", @StatLibList);
+	&main::Output(" \\\n\t",getConfigVariable('VIA_FILE_SUFFIX'));
+	
+	@depLibs = (@depLibs, DepLinkList("\&Generic_Quote\(\"\\\$\(EPOCBSFSTATLINK$Bld\)\\\\\$_\"\)", @StatLibList));
+	
+	
+	my @ImportLibList = ImportLibraryList(@LibList);
+	PrintList("\' \\\n\t\'\.\&Generic_Quote\(\"\\\$\(EPOCLIB\)\\\\LIB\\\\\$_\"\)", @ImportLibList);
+	@depLibs = (@depLibs, DepLinkList("\&Generic_Quote\(\"\\\$\(EPOCLIB\)\\\\LIB\\\\\$_\"\)", @ImportLibList));
+        
+	if ($TrgType=~/^STDEXE$/o || $TrgType=~/^STDDLL$/o) {
+		$NamedSymLkup = 1;
+		my @OEImportLibraryList = &GetOEImportLibList();
+		@OEImportLibraryList = ImportLibraryList(@OEImportLibraryList);
+		if(not (grep /^libc.dso$/i, @LibList)) {
+				push @OEImportLibraryList, "libc.dso";
+		}
+		PrintList("\' \\\n\t\'\.\&Generic_Quote\(\"\\\$\(EPOCLIB\)\\\\LIB\\\\\$_\"\)", @OEImportLibraryList);
+		@depLibs = (@depLibs, DepLinkList("\&Generic_Quote\(\"\\\$\(EPOCLIB\)\\\\LIB\\\\\$_\"\)", @OEImportLibraryList));
+	}
+
+	unless ($ArmRT || ($BasicTrgType=~/^LIB$/o)) {
+		my $TargLib = "$ExportLibrary.dso";
+		$TargLib =~ s/\{(\d|a|b|c|d|e|f){8}\}//i;
+		unless ($SystemTrg) {
+			foreach (@RTLibList) {
+  				# Ignore the empty file name      Modified by Kun Xu for DEF126030 on 06/08/2008
+  				if(!$_) 
+  				{
+  					next;		
+  				}
+				&main::Output(
+					" \\\n\t",
+					&Generic_Quote("\$(EPOCLIB)\\LIB\\$_")
+				) unless ($_ =~ /$TargLib/i);
+				push @depLibs, &Generic_Quote("\$(EPOCLIB)\\LIB\\$_") unless ($_ =~ /$TargLib/i);
+			}
+		}
+	}
+    #OE Glue Code 
+	if ($TrgType=~/^STDEXE$/o) {
+		my @OELibList = &GetOELibList();
+		foreach (@OELibList) {
+			&main::Output(
+				" \\\n\t",
+				&Generic_Quote("\$(EPOCSTATLINK$Bld)\\$_"),
+			);
+			push @depLibs, &Generic_Quote("\$(EPOCSTATLINK$Bld)\\$_");
+		}
+	}
+	PrintList("\' \\\n\t\'\.\&Generic_Quote\(\"\$_\"\)", @ToolChainLibList);
+                
+	&main::Output(
+		"\n",
+		"\n"
+	);
+        
+	main::Output(
+                "LIBS$Bld" . "DEPS="
+	);
+        
+	my @tmp;
+	for my $lib (@depLibs)
+	{
+            $lib =~ s/\(.*\.o\)//;
+            $lib =~ s/\\$//;
+            push @tmp, $lib unless ($lib =~ /-\(/ || $lib =~ /-\)/);
+	}
+                
+	PrintList("\' \\\n\t\'\.\&Generic_Quote\(\"\$_\"\)", @tmp);
+        
+	&main::Output(
+			"\n",
+			"\n"
+	);
+
+	&main::Output(
+		"VTBLEXPORTS$Bld="
+	);
+        my $vtobj = quotemeta("(VtblExports.o)");
+	&main::Output(
+		"\n",
+		"\n"
+	);
+
+        &main::Output(
+			"OBJECTS$Bld="
+		);
+        foreach (@SrcList) {
+			my $BaseSrc = &main::Path_Split('Base', $_);
+			my $Ext = &main::Path_Split('Ext', $_);
+		if ($Ext =~ /cia/i && ($PlatName ne "GCCE")) {
+			$BaseSrc = "$BaseSrc\_";
+		}
+
+			&main::Output(
+				" \\\n\t",
+			&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.o")
+			  );
+
+			$objectFiles .= &main::BldPath.$BaseSrc.".o ";
+	}
+        &main::Output(
+			"\n",
+		"\n"
+	);
+
+	# IsCustomDllUseCase() subroutine is called to check if the given executable 
+	# is a custom dll or not.
+	my $IsCustomDll = IsCustomDllUseCase();
+
+	if ($IsCustomDll) 
+	{
+		# Generate ".bin" file(assembly listing file) only if frozen deffile is present and EXPORTUNFROZEN is not specified
+		# in the Mmp file.
+		if((-e $DefFile) && (!&main::ExportUnfrozen))
+		{
+			&main::Output(
+				"EXPFILE$Bld = \$(EPOCBLD$Bld)\\$ExportLibrary.bin \n",			
+				"\n"
+			);
+		}
+		else 
+		{
+			&main::Output(
+				"EXPFILE$Bld = \n",
+				"\n"
+			);
+		}		
+	}
+	
+	# Create "via" file containing all object files in order to reduce
+	# command line lengths in pertinent calls
+	my $objectsViaFile = &main::CommandFile();
+	my $viaoption = getConfigVariable('COMMANDFILE_OPTION');
+	
+    if ($BasicTrgType=~/^LIB$/o && StdCppTarget() ) {
+
+        # Add the magic object that identifies the library as a STDLIB.
+        $objectFiles .= "$ENV{EPOCROOT}epoc32/tools/tag/tag_elf";
+	}
+
+	$objectFiles =~ s/\\/\//g ;
+
+	&main::CreateExtraFile($objectsViaFile, $objectFiles);
+		 
+		   &main::Output(
+			 &Generic_Quote("\$(EPOCTRG$Bld)\\$Trg"),
+			 " : \$(OBJECTS$Bld) \$(LIBS". $Bld . "DEPS)"
+            );
+
+	if (-e $DefFile) { # effectively "if project frozen ..."
+		&main::Output(
+			" ", &Generic_Quote($DefFile)
+		);
+	}
+
+	if($IsCustomDll eq 1)
+	{
+		&main::Output( " \$(EXPFILE$Bld) " );	
+	}
+
+    &main::Output("\n");
+
+
+#       get rid of any -symbols produced .map file
+        if ($BasicTrgType=~/^(DLL|EXE)/o) {
+			&main::Output(
+			"\t-\$(ERASE) \"\$(EPOCTRG$Bld)\\$Trg.map\" \n"
+		);
+		}
+
+		my $AbsentSubst = '';
+		if ($BasicTrgType=~/^(DLL|EXE)/o) {
+
+			if ($run_checklib) {
+				my $checklib = "checklib";
+
+				if ( StdCppTarget() ) {
+					$checklib .= " stdc++ --elf";
+				}
+				else {
+					$checklib .= " symc++ --elf";
+				}
+
+				&main::Output( "\t$checklib ","\$(USER_ADDED_ARCHIVES_$Bld)\n" );
+			}
+
+			my $WrapLD = $IsProxyWrapperOption ? "$ENV{ABLD_COMPWRAP} " : "";
+			if ($Bld =~ /DEB/)
+			{
+				if($PlatName ne "GCCE"){
+					# if the compiler is RVCT then append SYMBIAN_UDEB_LINK_FLAGS to option string 
+					# in order to override the default ones. 
+					&main::Output(
+						"\t", $WrapLD, "\$(LD) ","\$(STATIC_LIBS) ", "\$(SHARED_OBJECT_OPTION) ",
+						"\$(CODE_SEGMENT_START) ", "\$(DATA_SEGMENT_START) 0x400000 ", "\$(SYMVER_OPTION) ", "\$(SYMBIAN_UDEB_LINK_FLAGS) ", "\$(SO_NAME_OPTION) ","$LinkAs"
+					); 
+				} else {
+					&main::Output(
+						"\t", $WrapLD, "\$(LD) ","\$(STATIC_LIBS) ","\$(SYMBIAN_UDEB_LINK_FLAGS) ", "\$(SHARED_OBJECT_OPTION) ",
+						"\$(CODE_SEGMENT_START) ", "\$(DATA_SEGMENT_START) 0x400000 ", "\$(SYMVER_OPTION) ","\$(SO_NAME_OPTION) ","$LinkAs"
+					);
+				}
+			}
+			else
+			{
+				if($PlatName ne "GCCE"){
+					# if the compiler is RVCT then append SYMBIAN_UREL_LINK_FLAGS to option string 
+					# in order to override the default ones. 
+					&main::Output(
+						"\t", $WrapLD, "\$(LD) ","\$(STATIC_LIBS) ","\$(SHARED_OBJECT_OPTION) ",
+						"\$(CODE_SEGMENT_START) ", "\$(DATA_SEGMENT_START) 0x400000 ", "\$(SYMVER_OPTION) ", "\$(SYMBIAN_UREL_LINK_FLAGS) ", "\$(SO_NAME_OPTION) ", "$LinkAs"
+					);
+				} else {
+					&main::Output(
+						"\t", $WrapLD, "\$(LD) ","\$(STATIC_LIBS) ","\$(SYMBIAN_UREL_LINK_FLAGS) ","\$(SHARED_OBJECT_OPTION) ",
+						"\$(CODE_SEGMENT_START) ", "\$(DATA_SEGMENT_START) 0x400000 ", "\$(SYMVER_OPTION) ","\$(SO_NAME_OPTION) ","$LinkAs"
+					);
+				}
+			}
+
+			if(&main::DebugSwitchUsed()){
+				if(&main::SymbolicDebugEnabled() ) {
+					&main::Output(
+						" \$(LINKER_DEBUG_OPTION) "
+					);
+				}
+				else {
+					&main::Output(
+						" \$(LINKER_NODEBUG_OPTION) "
+					);
+				}
+			}
+			elsif($Bld =~/DEB/){
+				&main::Output(
+					" \$(LINKER_DEBUG_OPTION) "
+				);
+			}
+			else {
+				&main::Output(
+					" \$(LINKER_NODEBUG_OPTION) "
+				);
+			}
+
+			my $EntrySymbol;
+			if ($BasicTrgType=~/^DLL$/o) {
+				$EntrySymbol = '_E32Dll';
+			}
+			elsif ($BasicTrgType=~/^EXE$/o) {
+				$EntrySymbol = '_E32Startup';
+			}
+			if ($EntrySymbol) {
+				$AbsentSubst = " --absent $EntrySymbol";
+			}
+
+			if (($BasicTrgType=~/^DLL$/o) || ($BasicTrgType=~/^EXE$/o)) {
+				&main::Output(
+					" \$(LINKER_ENTRY_OPTION)",
+					" $EntrySymbol "
+					);
+				my $undefined_option = getConfigVariable('UNDEFINED_SYMBOL_REF_OPTION');
+				if ($undefined_option)
+				{
+					&main::Output(
+						" \$(UNDEFINED_SYMBOL_REF_OPTION)",
+						" $EntrySymbol "
+					);
+				}
+			}
+
+			if ($BasicTrgType=~/^DLL$/o) {
+				# get the right object file for the entry point
+				my $ObjFile="\$(EDLL_OBJECT)";
+				if ($FirstLib =~ /EDEV/i) {
+					$ObjFile="\$(DENTRY_OBJECT)";
+				}
+				if ($FirstLib =~ /EKLL/i) {
+					$ObjFile="\$(LENTRY_OBJECT)";
+				}
+				if ($FirstLib =~ /EEXT/i) {
+					$ObjFile="\$(XENTRY_OBJECT)";
+				}
+				if ($FirstLib =~ /EVAR/i) {
+					$ObjFile="\$(VENTRY_OBJECT)";
+				}
+
+				&main::Output(
+					" \$(EPOCSTATLINK$Bld)\\$FirstLib", "$ObjFile",
+					" \$(EPOCSTATLINK$Bld)\\$FirstLib", " \\", "\n"
+				);
+			} elsif ($BasicTrgType=~/^EXE$/o || $TrgType=~/^EXEXP$/o) {
+				# get the right object file for the entry point
+				my $ObjFile="\$(EEXE_OBJECT)";
+				if ($FirstLib =~ /KC_EXE/i) {
+					$ObjFile="\$(KENTRY_OBJECT)";
+				}
+
+				&main::Output(
+					" \$(EPOCSTATLINK$Bld)\\$FirstLib", "$ObjFile",
+					" \$(EPOCSTATLINK$Bld)\\$FirstLib", " \\", "\n"
+				);
+			}
+
+			&main::Output(
+				"\t\t\$(LINKER_OUTPUT_OPTION) \"\$(EPOCBLD$Bld)\\$Trg\" \\\n",
+#				"\t\t\$(OBJECTS$Bld) \\\n"
+			);
+
+		&main::Output(
+			"\t\t\$(LINKER_SYMBOLS_MAP_OPTION) ",
+			"\$(","$Bld","_MAP_FILE) \\\n"
+		);
+
+		# Pass in the command file if the command file option is passed in
+		if($viaoption) {
+                        #'@' is for GCCE whos version is not 3.4.3
+			if($viaoption eq '@'){
+				main::Output(
+					"\t\t$viaoption$objectsViaFile \\\n"
+				);
+			}
+                        #'-via' is for RVCT 
+			else{
+				main::Output(
+					"\t\t$viaoption $objectsViaFile \\\n"
+				);
+			}
+		}
+		else {
+			&main::Output(
+				"\t\t\$(OBJECTS$Bld) \\\n"
+			);
+		}
+
+		if($IsCustomDll eq 1) {
+			&main::Output( "\t\t\$(EXPFILE$Bld) \\\n" );
+		}
+
+			&main::Output(
+				"\t\t\$(LIBS$Bld) \\\n",
+				"\t\t\$(VTBLEXPORTS$Bld) \$(USERLDFLAGS) \n"
+			);
+
+			if(&main::DebugSwitchUsed() ){
+				if(&main::SymbolicDebugEnabled() ) {
+				&main::Output(
+					"\tcopy \"\$(EPOCBLD$Bld)\\$Trg\" \"\$(EPOCTRG$Bld)\\$FeatureVariantBaseTrg.sym\"\n"
+					);
+				}
+			}
+			elsif ($Bld=~/^U?DEB$/o) {
+				   &main::Output(
+				   "\tcopy \"\$(EPOCBLD$Bld)\\$Trg\" \"\$(EPOCTRG$Bld)\\$FeatureVariantBaseTrg.sym\"\n"
+			   );
+			}
+		if (-e $DefFile) {
+			&main::Output(
+				"\tcopy ", &Generic_Quote(("\"$DefFile\"")), " \"\$(EPOCBLD)\\$ExportLibrary.prep.def\"\n",
+			);
+		}
+
+		&main::Output(
+			"\telf2e32 --sid=", &main::SecureId(), " "
+		);
+
+		if (&main::IsDebuggable eq DEBUGGABLE) {
+			&main::Output(
+				' --debuggable '
+			);
+		}
+
+		if (&main::IsDebuggable eq DEBUGGABLE_UDEBONLY) {
+			if ($Bld=~/^UDEB$/o) {
+				&main::Output(
+				' --debuggable '
+				);
+			}
+		}
+		
+		# Do not export Arm Static Library Symbols
+		if (&Armutl_ArmLibList) {
+			&main::Output(
+				' --excludeunwantedexports'
+			);
+		}
+
+		if ($IsCustomDll eq 1) {
+			&main::Output(
+				' --customdlltarget'
+			);
+		}
+		if (keys(%Version)) {
+			&main::Output(
+				' --version=', &Genutl_VersionToUserString(%Version)
+			);
+		}
+		# exexps are allowed data, but they look like dlls to elftran....
+		if (&main::AllowDllData || $TrgType=~/^EXEXP$/o || $TrgType=~/^EXEDLL$/o) {
+			&main::Output(
+				' --dlldata'
+			);
+		}
+		if (&main::DataLinkAddress) {
+			&main::Output(
+				' --datalinkaddress=',&main::DataLinkAddress
+			);
+		}
+		if (&main::FixedProcess) {
+			&main::Output(
+				' --fixedaddress'
+			);
+		}
+		if (&main::HeapSize) {
+			my %HeapSize=&main::HeapSize;
+			&main::Output(
+				' --heap=',$HeapSize{Min},',',$HeapSize{Max}
+			);
+		}
+		if (&main::ProcessPriority) {
+			&main::Output(
+				' --priority=',&main::ProcessPriority
+			);
+		}
+		if (&main::StackSize) {
+			&main::Output(
+				' --stack=',&main::StackSize
+			);
+		}
+		&main::Output(
+			"\\\n\t\t"
+		);
+
+		my $i=1;
+		foreach (@UidList) {
+			&main::Output(
+				" --uid$i=$_"
+			);
+			$i++;
+		}
+		if(&main::VendorId) {
+			&main::Output(
+				' --vid=',&main::VendorId
+			);
+		}
+		&main::Output(
+			"\\\n\t\t"
+		);
+
+		&main::Output(
+			' --capability=',&main::Capability
+		);
+
+		my $vfpv2_support = getConfigVariable('VFP2MODE_OPTION');
+		if ($vfpv2_support && &main::ARMFPU && (&main::ARMFPU =~ /^VFPV2$/i))
+		{
+			&main::Output(
+				' --fpu=vfpv2'
+			);
+		}
+		else
+		{
+			&main::Output(
+				' --fpu=softvfp'
+			);
+		}
+
+		if (&main::SmpSafe)
+		{
+			&main::Output(
+				' --smpsafe'
+			);
+		}
+
+
+		if(($BasicTrgType=~/^DLL/ && $TrgType!~/^DLL/ ) || $TrgType=~/^EXEXP/ || $TrgType=~/^STDEXE/){
+			&main::Output(
+				' --targettype=',$TrgType
+				);
+		}
+		else{
+			&main::Output(
+				' --targettype=',$BasicTrgType
+				);
+		}
+
+		&main::Output(
+			' --output=',"\"\$\@\""
+			);
+		if ($BasicTrgType=~/^DLL$/o || $TrgType=~/^EXEXP$/o || $TrgType=~/^EXEDLL$/o) {
+			if (-e $DefFile) {
+				&main::Output(
+					' --definput=',"\"\$(EPOCBLD)\\$ExportLibrary.prep.def\""
+					);
+			}
+			# Non-callable exports will be ignored if the MMP file does not contain the DEFFILE keyword or contains the NOEXPORTLIBRARY keyword			 
+			if (!($DefFile) || $NoExportLibrary) {				
+				&main::Output( " --ignorenoncallable" );
+			}
+			&main::Output(
+				' --dso=',
+				&Generic_Quote("\$(EPOCBLD$Bld)\\$ExportLibrary.dso")
+				);
+			&main::Output(
+				' --defoutput=',
+				&Generic_Quote("\$(EPOCBLD$Bld)\\$ExportLibrary.def")
+				);
+				if(&main::ExportUnfrozen) {
+					&main::Output( ' --unfrozen ');
+				}
+			}
+		#the input elf file - as the last arg
+		&main::Output(
+			" --elfinput=","\"\$(EPOCBLD$Bld)\\$Trg\"",
+			" --linkas=$LinkAs"
+			);
+		if (&main::CompressTarget)
+			{
+			&main::Output(
+			" --uncompressed"
+			);
+			}
+		else
+			{
+			if(&main::CompressTargetMode == NOCOMPRESSIONMETHOD)
+			{
+				# Do nothing
+			}
+			elsif(&main::CompressTargetMode == INFLATECOMPRESSIONMETHOD)
+			{
+			&main::Output(
+				" --compressionmethod inflate"
+			);
+			}
+			elsif(&main::CompressTargetMode == BYTEPAIRCOMPRESSIONMETHOD)
+			{
+			&main::Output(
+				" --compressionmethod bytepair"
+			);
+			}
+
+			}
+		
+		if($NamedSymLkup){
+			&main::Output(" --namedlookup"
+		);
+		}
+
+		&main::Output(
+		" --libpath=", "\"\$(EPOCLIB)\\LIB\""
+		);
+
+		if($BasicTrgType=~/^DLL/ && $TrgType!~/^DLL/){
+			my $Export;
+			my $Ordinal=1;
+			foreach $Export (&main::Exports) {
+				if($Ordinal == 1) {
+				&main::Output(" --sysdef=");
+				}
+				&main::Output(
+					"$Export,$Ordinal; "
+				);
+				$Ordinal++;
+			}
+		}
+
+		if (&main::CodePagingTargetMode == UNPAGED) {
+			&main::Output(
+				' --codepaging=unpaged'
+			);
+		}
+		elsif (&main::CodePagingTargetMode == PAGED) {
+			&main::Output(
+				' --codepaging=paged'
+			);
+		}
+
+		if (&main::DataPagingTargetMode == UNPAGED) {
+			&main::Output(
+				' --datapaging=unpaged'
+			);
+		}
+		elsif (&main::DataPagingTargetMode == PAGED) {
+			&main::Output(
+				' --datapaging=paged'
+			);
+		}
+
+		&main::Output(
+			"\n"
+		);
+
+		}
+         elsif ($BasicTrgType=~/^LIB$/o) {
+			&main::Output(
+			"\t\$(AR) ",
+				" \$(ARCHIVER_CREATE_OPTION) ",
+				" \$(EPOCBSFSTATLINK$Bld)\\$Trg \\\n"
+			);
+		# Pass in the command file if the command file option is passed in
+		if($viaoption) {
+                        #'@' is for GCCE whos version is not 3.4.3
+			if($viaoption eq '@'){
+				&main::Output(
+					"\t\t$viaoption$objectsViaFile\n"
+				);
+			}
+                        #'-via' is for RVCT  
+			else{
+				&main::Output(
+					"\t\t$viaoption $objectsViaFile\n"
+				);
+			}
+		}
+		else {
+			&main::Output(
+				"\t\t\$(OBJECTS$Bld) \n"
+			);
+		}
+		# Pass the archiver options which can be customized form BSF file
+		&main::Output(
+			"\t\t\$(AR_OPTIONS) \n"
+		);
+         }
+
+         &main::Output(
+		 "\n"
+	 );
+
+	if ($BasicTrgType=~/^DLL$/o || $TrgType=~/^EXEXP$/o || $TrgType=~/^EXEDLL$/o) {
+		&main::Output(
+			"\tcopy ", " \"\$(EPOCBLD$Bld)\\$ExportLibrary.def\" ", "\"\$(EPOCBLD)\\$ExportLibrary.def\"\n"
+			);
+		if  (&main::ExportUnfrozen) {
+			if ($PlatName =~ /^ARMV5$/)
+			{
+				&main::Output(
+				"\tdef2dll.bat --path=\$(EPOCBLD$Bld) \\\n\t\t--bldpath=\$(EPOCBLD$Bld) \\\n\t\t--export=$ExportLibrary \\\n\t\t--import=$ExportLibrary \\\n",
+				"\t\t--deffile=\$(EPOCBLD)\\$ExportLibrary.def \\\n\t\t--linkAs=$LinkAs \\\n\t\t$InterWorking \\\n\t\t--absent=undef \n"
+				);
+				&main::Output(
+					"\n",
+					"\tcopy ", " \"\$(EPOCBLD$Bld)\\$ExportLibrary.lib\" ",
+					"\"\$(EPOCLIB)\\LIB\\$ExportLibrary.lib\"",
+					"\n"
+				);
+				if ($ExtraExportLibrary) {
+				&main::Output(
+					"\n",
+					"\tcopy ", " \"\$(EPOCLIB)\\LIB\\$ExportLibrary.lib\" ",
+					"\"\$(EPOCLIB)\\LIB\\$ExtraExportLibrary.lib\"",
+					"\n"
+				);
+				}
+			}
+
+			&main::Output(
+					  "\n",
+				  "\tcopy ", " \"\$(EPOCBLD$Bld)\\$ExportLibrary.dso\" ",
+				  "\"\$(EPOCLIB)\\LIB\\$ExportLibrary.dso\"",
+				  "\n"
+				 );
+
+			&main::Output(
+					  "\n",
+				  "\tcopy ", " \"\$(EPOCBLD$Bld)\\$ExportLibrary.dso\" ",
+				  "\"\$(EPOCLIB)\\LIB\\$ExtraExportLibrary.dso\"",
+				  "\n"
+				 ) if ($ExtraExportLibrary);
+
+		}
+	}
+
+	if($IsCustomDll eq 1)
+	{
+		&main::Output(
+			&Generic_Quote("\$(EPOCBLD$Bld)\\$ExportLibrary.bin"), ": $DefFile\n");
+
+	    my $theDefFile = "\$(EPOCBLD)\\$ExportLibrary.def";
+	    $theDefFile = $DefFile if (-e $DefFile && !&main::ExportUnfrozen);
+	    my $theAssembler = " \$(ASM) ";
+	    &main::Output(
+		"\telf2e32  \\\n\t\t--definput=$theDefFile \\\n\t\t--dump=a \\\n\t\t--output=\$(EPOCBLD$Bld)\\$ExportLibrary.s \n",
+  		"\t$theAssembler \$(AAPCS_OPTION) \\\n\t\t \$(ASM_OUTPUT_OPTION) \$(EPOCBLD$Bld)\\$ExportLibrary.bin  \$(EPOCBLD$Bld)\\$ExportLibrary.s\n\n"
+	    );
+		&main::Output(
+			"\t-\$(ERASE) \"\$(EPOCBLD$Bld)\\$ExportLibrary.s\"\n\n"
+		);
+	}
+
+    &main::Output( "\n" );
+}
+
+# Set to 1 if multifile compilation wanted
+my $domultifile = 0;
+
+sub DoMultiFile () {
+        return $ENV{RVCTMultiFile} if (defined $ENV{RVCTMultiFile});
+	return $domultifile;
+}
+
+my %CompilationGroups = ();
+
+sub InitMultiFileCompilation() {
+#	Do preparatory work for multifile compilation
+	my $SourceStructRef=&main::SourceStructRef;
+
+#	We sort the source files by path and extension. These form natural groups to compile together.
+	my %PathToSourceMap = ();
+	foreach my $SourceRef (@$SourceStructRef) {
+		my $SrcFile = $$SourceRef{CurFile};
+		my $Ext = &main::Path_Split('Ext', $SrcFile);
+			push @{$PathToSourceMap{$$SourceRef{SrcPath}}{$Ext}}, $SrcFile;
+	}
+
+#	Now we split each group into sets of 10.
+	foreach my $SrcPath (keys %PathToSourceMap) {
+		foreach my $Ext (keys %{$PathToSourceMap{$SrcPath}}) {
+			my @FileList;
+			my @ObjectList;
+			my @SourceList;
+			my $NumToGo = 10;
+			foreach my $File (@{$PathToSourceMap{$SrcPath}{$Ext}}) {
+				my $base = &main::Path_Split('Base', $File);
+				my $cia = ($Ext =~ /cia/i);
+				$base .= "_" if $cia && ($PlatName ne "GCCE");
+				push @FileList, $File;
+				push @ObjectList, "$base.o";
+#				this gives us our source files xxx
+				push @SourceList, ($cia && ($PlatName ne "GCCE")) ? "$base.cpp" : "$SrcPath$base$Ext";
+				$NumToGo--;
+				unless ($NumToGo) {
+#					   Use the last file as the key. This means e.g that all the dependency
+#					   info will have been generated for the earlier files in the list
+					   push @{$CompilationGroups{$FileList[$#FileList]}{Sources}}, @SourceList;
+						   push @{$CompilationGroups{$FileList[$#FileList]}{Objects}}, @ObjectList;
+					   $NumToGo = 10;
+					   undef @FileList;
+					   undef @ObjectList;
+					   undef @SourceList;
+				}
+			}
+			push @{$CompilationGroups{$FileList[$#FileList]}{Sources}}, @SourceList;
+			push @{$CompilationGroups{$FileList[$#FileList]}{Objects}}, @ObjectList;
+		}
+	}
+
+#	debug print out
+	if (0) {
+	foreach my $keyfile (keys %CompilationGroups) {
+		print "$keyfile :\n";
+		foreach my $class (keys %{$CompilationGroups{$keyfile}}) {
+			print "\t$class:\n\t\t";
+			print join " ", @{$CompilationGroups{$keyfile}{$class}}, "\n";
+		}
+	}
+	}
+
+}
+
+sub PMStartSrcList {
+
+	&main::Output(
+		"# SOURCES\n",
+		"\n"
+	);
+
+	InitMultiFileCompilation() if DoMultiFile();
+
+}
+
+sub PMBitMapBld {
+
+	&Generic_BitMapBld;
+
+}
+
+sub PMResrcBld {
+
+	&Generic_ResrcBld;
+
+}
+
+sub PMAifBld {
+	&Generic_AifBld;
+}
+
+
+sub PMStartSrc {
+	my $Src=&main::Src;
+
+	&main::Output(
+		"# Source $Src\n",
+		"\n"
+	);
+}
+
+sub PMSrcDepend {
+	my @DepList=&main::DepList;
+	return if (@DepList == 0);
+
+	my @BldList=&main::BldList;
+	my $BaseSrc=&main::BaseSrc;
+	my $ExtSrc=&main::ExtSrc;
+
+	my $BaseObj=$BaseSrc;
+	my $cia = 0;
+	if ($ExtSrc =~ /cia/i ) {
+		$cia = 1;
+		$BaseObj .= '_' if ($PlatName ne "GCCE");
+	}
+
+  	foreach my $Bld (@BldList) {
+		my $tranasm = getConfigVariable('TRANASM');
+		if ($tranasm)
+		{
+			&main::Output(
+				&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.pre"), " ",
+			) if $cia && ($PlatName ne "GCCE");
+		}
+
+		&main::Output(
+  			&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseObj.cpp"), " ",
+		) if $cia && ($PlatName ne "GCCE");
+		&main::Output(
+  			&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.lis"), " ",
+  			&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseObj.o"), " \\\n",
+		);
+	}
+	&main::Output(
+		":"
+	);
+
+	my $prefix_file=getConfigVariable('PREFIXFILE');
+
+	my @tempdeplist = &main::DepList;
+
+	my $totalcount = $#tempdeplist;
+	my $count = 0;
+	while( $totalcount >= $count )
+	{
+		my $dependencyfile = shift(@tempdeplist);
+		if($dependencyfile eq $prefix_file )
+		{
+			$DepList[$count]="\$(PREFIXFILE)";
+		}
+		$count += 1;
+	}
+
+        PrintList("\' \\\n\t\'\.\&Generic_Quote\(\$_\)", @DepList);
+	&main::Output(
+		"\n",
+		"\n"
+	);
+}
+
+sub PMSrcBldDepend {
+	my @DepList=&main::DepList;
+	return if (@DepList == 0);
+
+	my $Bld=&main::Bld;
+	my $BaseSrc=&main::BaseSrc;
+	my $ExtSrc=&main::ExtSrc;
+
+	my $BaseObj=$BaseSrc;
+	my $cia = 0;
+	if ($ExtSrc =~ /cia/i ) {
+		$cia = 1;
+		$BaseObj .= '_' if ($PlatName ne "GCCE");
+	}
+
+	my $tranasm = getConfigVariable('TRANASM');
+	if ($tranasm)
+	{
+		&main::Output(
+			&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.pre"), " ",
+		) if $cia && ($PlatName ne "GCCE");
+	}
+
+	&main::Output(
+		&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseObj.cpp"), " ",
+	) if $cia && ($PlatName ne "GCCE");
+
+	&main::Output(
+		&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.lis"), " ",
+		&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseObj.o"), " :",
+	);
+
+	my $prefix_file=getConfigVariable('PREFIXFILE');
+
+	my @tempdeplist = &main::DepList;
+
+	my $totalcount = $#tempdeplist;
+	my $count = 0;
+	while( $totalcount >= $count )
+	{
+		my $dependencyfile = shift(@tempdeplist);
+		if($dependencyfile eq $prefix_file )
+		{
+			$DepList[$count]="\$(PREFIXFILE)";
+		}
+		$count += 1;
+	}
+
+        PrintList("\' \\\n\t\'\.\&Generic_Quote\(\$_\)", @DepList);
+	&main::Output(
+		"\n",
+		"\n"
+	);
+}
+
+sub quoted_path
+{
+    my $curdrive="";
+    my ($arg) = @_;
+    return "\"$arg\"" if ($arg !~ /^\\[^\\]/);	# not an absolute path
+
+		$curdrive=$1 if (cwd =~ /^(.:)/);
+    return "\"$curdrive$arg\"";
+}
+
+sub PMPrefixFile
+{
+# Prefix Header File passed to the preprocessor
+
+	my $prefix_file=getConfigVariable('PREFIXFILE');
+	return quoted_path($prefix_file) if defined $prefix_file;
+}
+
+sub PMToolChainIncDir
+	{
+	# Extra system include directories dictated by the toolchain
+	return $ToolChainIncDir;
+	}
+
+sub PMEndSrcBld {
+#       Generate multifile compilation stuff if needed.
+        if (DoMultiFile()) {
+		   MultiFileEndSrcBld();
+		   return;
+	}
+
+	my $ABI=&main::ABI;
+	my $Plat=&main::Plat;
+	my $BaseSrc=&main::BaseSrc;
+	my $Bld=&main::Bld;
+	my $Src=lc &main::Src;
+	my $SrcPath=&main::SrcPath;
+	my $BaseTrg=&main::BaseTrg;
+	my $BldPath = &main::BldPath;
+	my $Ext = &main::Path_Split('Ext', $Src);
+	$Src = ucfirst $Src if ($Ext !~ /\.(cpp|c)$/);
+	my $LangOptions = &SelectLangOptions($Ext);
+	# support for auto 'translated' ASM
+	my $AsmFilep = $AsmFiles{$Src};
+
+	$preinclude = &GetToolChainPreInclude();
+	
+	#Function call logger takes -I as include option
+	my $FCLogger_inc_option = getConfigVariable('FC_LOGGER_INCLUDE_OPTION'); 
+	my $logger_preinclude = getConfigVariable('PREINCLUDE_OPTION_FCLOGGER'); 
+	my $Dictionary_File_Name = getConfigVariable('FC_LOGGER_DICTIONARY_FILE_NAME');
+	my $Generated_C_File_Name = getConfigVariable('FC_LOGGER_GENERATED_C_FILE_NAME');
+	
+	my $ChopSrcPath=&main::Path_Chop($SrcPath);
+	my $lfboption = LinkerFeedBackOption();
+	my $LstExt ;
+	if($Plat =~ /^(ARMV[6-9])/i){
+		$LstExt = $1 ;	
+	}
+	else{
+		$LstExt = $ABI;
+	}
+	if ($AsmFilep || ($Ext =~ /cia/i && ($PlatName ne "GCCE"))) {
+		&main::Output(
+# compile the translated, preprocessed source
+			&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc\_.o"), " : ",
+			&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc\_.cpp"), "\n",
+			"\t\@echo $Src\n",
+			"\t\$(CC$Bld) $lfboption $LangOptions ", "\$(INCLUDE_OPTION)"," \$(call absolutePaths,$ChopSrcPath \$(INCDIR) \$(OUTPUT_OPTION) \$\@ \$(EPOCBLD$Bld)\\$BaseSrc\_.cpp)\n",
+			"\n"
+			);
+# rule to translate the preprocessed source
+			my $tranasm = getConfigVariable('TRANASM');
+			if ($tranasm)
+			{
+		&main::Output(
+			&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc\_.cpp"), " : ",
+			&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.pre"), "\n",
+
+				"\t\$(TRANASM) \$(TRANASM_FLAGS) \$(TRANASM_OUTPUT_OPTION)\$\@ \$(TRANASM_INPUT_OPTION)\$(EPOCBLD$Bld)\\$BaseSrc.pre\n",
+			"\n"
+			);
+# rule to preprocess the source
+		&main::Output(
+			&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.pre"), " : ",
+			&Generic_Quote("$SrcPath$Src"), "\n",
+			"\t\$(CC$Bld) \$(PREPROCESSOR_OPTION) $preinclude $LangOptions ","\$(INCLUDE_OPTION)"," \$(call absolutePaths,$ChopSrcPath \$(INCDIR) $ChopSrcPath\\$Src \$(OUTPUT_OPTION) \$\@) \n",
+# generate an assembly listing target too
+			"LISTING$Bld$BaseSrc\_ : ", &Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc\_.lis"), "\n",
+			"\t", &Generic_CopyAction("$SrcPath$BaseSrc\_.$LstExt.lst"),
+			"\n",
+			&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc\_.lis"), " : ",
+			&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc\_.cpp"), "\n",
+			"\t\$(CC$Bld) $LangOptions ", "\$(ASSEMBLER_LISTING_OPTION) ","\$(INCLUDE_OPTION)"," \$(call absolutePaths,$ChopSrcPath \$(INCDIR) \$(OUTPUT_OPTION) \$\@ \$(EPOCBLD$Bld)\\$BaseSrc\_.cpp)\n",
+			"\n"
+			);
+			}
+			else
+			{
+			&main::Output(
+			&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc\_.cpp"), " : ",
+			&Generic_Quote("$SrcPath$Src"), "\n",
+			"\t\$(CC$Bld) \$(PREPROCESSOR_OPTION) $preinclude $LangOptions ","\$(INCLUDE_OPTION)"," \$(call absolutePaths,$ChopSrcPath \$(INCDIR) $ChopSrcPath\\$Src \$(OUTPUT_OPTION) \$\@) \n",
+# generate an assembly listing target too
+			"LISTING$Bld$BaseSrc\_ : ", &Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc\_.lis"), "\n",
+			"\t", &Generic_CopyAction("$SrcPath$BaseSrc\_.$LstExt.lst"),
+			"\n",
+			&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc\_.lis"), " : ",
+			&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc\_.cpp"), "\n",
+			"\t\$(CC$Bld) $LangOptions ", "\$(ASSEMBLER_LISTING_OPTION) ","\$(INCLUDE_OPTION)"," \$(call absolutePaths,$ChopSrcPath \$(INCDIR) \$(OUTPUT_OPTION) \$\@ \$(EPOCBLD$Bld)\\$BaseSrc\_.cpp)\n",
+			"\n"
+			);
+			}
+	} 
+	else {
+		#If Function call logging is enabled, add call to function call logger
+		if ($Function_Call_Logger)	{
+			&main::Output(
+				&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.o"), 
+				" : ",
+				&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.int.cpp"), 
+				"\n",
+				"\t\@echo $BaseSrc.int.cpp\n",
+				"\t\$(CC$Bld) $lfboption$LangOptions ", 
+				" \$(INCLUDE_OPTION) ",
+				"\$(call absolutePaths, $ChopSrcPath \$(INCDIR) \$(OUTPUT_OPTION) \$\@ \$(EPOCBLD$Bld)\\$BaseSrc.int.cpp)\n",
+				"\n",
+# generate an assembly listing target too
+				"LISTING$Bld$BaseSrc : ", 
+				&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.lis"), 
+				"\n",
+				"\t",
+				&Generic_CopyAction("$SrcPath$BaseSrc.$LstExt.lst"),
+				"\n",
+				&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.lis"), 
+				" : ",
+				&Generic_Quote("$SrcPath$Src"), 
+				"\n",
+				"\t\$(CC$Bld) $LangOptions ",
+				"\$(ASSEMBLER_LISTING_OPTION) ",
+				"\$(INCLUDE_OPTION)",
+				" \$(call absolutePaths,$ChopSrcPath \$(INCDIR) \$(OUTPUT_OPTION) \$\@ $ChopSrcPath\\$Src) \n",
+				"\n"
+			);
+			
+			#Call to Function Call Logger
+			&main::Output(
+				&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.int.cpp"),
+				" : ",
+				&Generic_Quote("$SrcPath\\$Src"),
+				"\n",
+				"\t\@echo $BaseSrc.int.cpp\n",
+				"\t\$(FCLOGGER$Bld) $lfboption \\\n" ,
+				"\t$FCLogger_inc_option $ChopSrcPath \\\n",
+				"\t$logger_preinclude \\\n ",
+				"\t\$(INCDIR_FCLOGGER) \\\n" ,
+				"\t$Dictionary_File_Name $BldPath$BaseTrg.txt \\\n" ,
+				"\t$Generated_C_File_Name \$\@ $ChopSrcPath\\$Src \n",
+				"\n\n"
+			);
+		}
+		else {
+			&main::Output(
+			&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.o"), " : ",
+			&Generic_Quote("$SrcPath$Src"), "\n",
+			"\t\@echo $Src\n",
+			"\t\$(CC$Bld) $lfboption $LangOptions ", "\$(INCLUDE_OPTION)"," \$(call absolutePaths,$ChopSrcPath \$(INCDIR) \$(OUTPUT_OPTION) \$\@ $ChopSrcPath\\$Src)\n",
+			"\n",
+# generate an assembly listing target too
+			"LISTING$Bld$BaseSrc : ", &Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.lis"), "\n",
+			"\t", &Generic_CopyAction("$SrcPath$BaseSrc.$LstExt.lst"),
+			"\n",
+			&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.lis"), " : ",
+			&Generic_Quote("$SrcPath$Src"), "\n",
+			"\t\$(CC$Bld) $LangOptions ","\$(ASSEMBLER_LISTING_OPTION) ","\$(INCLUDE_OPTION)"," \$(call absolutePaths,$ChopSrcPath \$(INCDIR) \$(OUTPUT_OPTION) \$\@ $ChopSrcPath\\$Src) \n",
+			"\n"
+			);
+			# Compiler wrapper support starts...
+			if($IsCompilerWrapperOption)
+			{
+				&main::Output(
+					"COMPWRAP$Bld$BaseSrc : ",
+					&Generic_Quote("$SrcPath$Src"), "\n",
+					"\t\@echo Analysing $Src\n",
+					"\t\$(COMPWRAP) \$(CC$Bld) $lfboption $LangOptions ", "\$(INCLUDE_OPTION)"," \$(call absolutePaths,$ChopSrcPath \$(INCDIR) \$(OUTPUT_OPTION) \$\@ $ChopSrcPath\\$Src)\n",
+					"\n"
+				);
+			}
+			# Compiler wrapper support ends...
+		}
+	}
+}
+
+my $MFVarN = 0;
+sub MultiFileEndSrcBld {
+	my $ABI=&main::ABI;
+	my $BaseSrc=&main::BaseSrc;
+	my $Bld=&main::Bld;
+        my $KeyFile = &main::Src;
+	my $Src=ucfirst lc $KeyFile;
+	my $SrcPath=&main::SrcPath;
+	my $Ext = &main::Path_Split('Ext', $Src);
+	my $LangOptions = &SelectLangOptions($Ext);
+	# support for auto 'translated' ASM
+	my $AsmFilep = $AsmFiles{$Src};
+
+	my $ChopSrcPath=&main::Path_Chop($SrcPath);
+	my $lfboption = LinkerFeedBackOption();
+
+	if ($AsmFilep || ($Ext =~ /cia/i && ($PlatName ne "GCCE"))) {
+		if ($CompilationGroups{$KeyFile}) {
+# compile the translated, preprocessed source
+			   &main::Output( "OBJECTS$MFVarN = ");
+			   foreach my $obj (@{$CompilationGroups{$KeyFile}{Objects}}) {
+				   &main::Output( &Generic_Quote("\\\n\t\$(EPOCBLD$Bld)\\$obj"), " ");
+			   }
+				   &main::Output( "\n\n");
+			   &main::Output( "SOURCES$MFVarN = ");
+			   foreach my $src (@{$CompilationGroups{$KeyFile}{Sources}}) {
+				   &main::Output( &Generic_Quote("\\\n\t\$(EPOCBLD$Bld)\\$src", " "));
+			   }
+				   &main::Output( "\n\n");
+			   &main::Output( "\$(OBJECTS$MFVarN) : \$(SOURCES$MFVarN) \n");
+
+			   &main::Output(
+					 "\t\@echo Compiling \$(SOURCES$MFVarN)\n",
+					 "\t\$(CC$Bld) ","\$(INCLUDE_OPTION)"," \$(call absolutePaths,$ChopSrcPath \$(INCDIR)) $lfboption\\\n",
+					 "\t\t$LangOptions \$(OUTPUT_OPTION) \$\@ --multifile \$(SOURCES$MFVarN)"
+			  );
+				   &main::Output( "\n\n");
+			   $MFVarN++;
+		}
+		&main::Output(
+# rule to translate the preprocessed source
+			&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc\_.cpp"), " : ",
+			&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.pre"), "\n",
+			"\ttranasm -n -s -o=\$\@ \$(EPOCBLD$Bld)\\$BaseSrc.pre\n",
+			"\n",
+# rule to preprocess the source
+			&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.pre"), " : ",
+			&Generic_Quote("$SrcPath$Src"), "\n",
+			"\t\$(CC$Bld) \$(PREPROCESSOR_OPTION) $preinclude $LangOptions ","\$(INCLUDE_OPTION)"," \$(call absolutePaths,$ChopSrcPath \$(INCDIR)) $ChopSrcPath\\$Src \$(OUTPUT_OPTION) \$\@ \n",
+# generate an assembly listing target too
+			"LISTING$Bld$BaseSrc\_ : ", &Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc\_.lis"), "\n",
+			"\t", &Generic_CopyAction("$SrcPath$BaseSrc\_.$LstExt.lst"),
+			"\n",
+			&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc\_.lis"), " : ",
+			&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc\_.cpp"), "\n",
+			"\t\$(CC$Bld) $LangOptions ", "\$(ASSEMBLER_LISTING_OPTION) ","\$(INCLUDE_OPTION)"," \$(call absolutePaths,$ChopSrcPath \$(INCDIR)) \$(OUTPUT_OPTION) \$\@ \$(EPOCBLD$Bld)\\$BaseSrc\_.cpp\n",
+			"\n"
+			);
+	} else {
+
+		if ($CompilationGroups{$KeyFile}) {
+#                      compile the source
+			   &main::Output( "OBJECTS$MFVarN = ");
+			   foreach my $obj (@{$CompilationGroups{$KeyFile}{Objects}}) {
+				   &main::Output( &Generic_Quote("\\\n\t\$(EPOCBLD$Bld)\\$obj"), " ");
+			   }
+				   &main::Output( "\n\n");
+			   &main::Output( "SOURCES$MFVarN = ");
+			   foreach my $src (@{$CompilationGroups{$KeyFile}{Sources}}) {
+				   &main::Output( &Generic_Quote("\\\n\t$src"), " ");
+			   }
+				   &main::Output( "\n\n");
+			   &main::Output( "\$(OBJECTS$MFVarN) : \$(SOURCES$MFVarN) \n");
+
+			   &main::Output(
+					 "\t\@echo Compiling \$(SOURCES$MFVarN)\n",
+					 "\t\$(CC$Bld) ", "\$(INCLUDE_OPTION)"," \$(call absolutePaths,$ChopSrcPath \$(INCDIR)) $lfboption\\\n",
+					 "\t\t$LangOptions \$(OUTPUT_OPTION) \$\@ --multifile \$(SOURCES$MFVarN)"
+			  );
+				   &main::Output( "\n\n");
+			   $MFVarN++;
+		}
+#		generate an assembly listing target too
+		&main::Output(
+			"LISTING$Bld$BaseSrc : ", &Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.lis"), "\n",
+			"\t", &Generic_CopyAction("$SrcPath$BaseSrc.$LstExt.lst"),
+			"\n",
+			&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.lis"), " : ",
+			&Generic_Quote("$SrcPath$Src"), "\n",
+			"\t\$(CC$Bld) $LangOptions ","\$(ASSEMBLER_LISTING_OPTION) ","\$(INCLUDE_OPTION)"," \$(call absolutePaths,$ChopSrcPath \$(INCDIR)) \$(OUTPUT_OPTION) \$\@ $ChopSrcPath\\$Src \n",
+			"\n"
+			);
+	}
+}
+
+
+sub PMEndSrc {
+
+	&main::Output(
+		"\n",
+		"\n"
+	);
+}
+
+sub PMEndSrcList {
+
+	# Deal with accumulated MAKEDIRS etc.
+
+	&Generic_End;
+# modified start: makefile improvement 
+	&checkVMAPFiles;
+# modified end: makefile improvement 
+}
+
+sub ImportLibraryList {
+	my $dso;
+	my $base;
+	my @ImportLibList;
+	foreach $dso (@_) {
+		$base = &main::Path_Split('Base', $dso);
+		$dso = $base.".dso";
+		push @ImportLibList, $dso;
+	}
+	return @ImportLibList;
+}
+
+sub ChangeSlash($) {
+	my $abspath = $_[0];
+	$abspath =~ s/\\/\//g ;
+	return $abspath;
+}
+
+# System libraries such as the standard C++ libraries or floating point libraries or any other
+# static libraries are made into DLLs by linking its export table against them. Such DLLs that are
+# created from a static library is known as a Custom DLL. The ARM libraries can be supplied using
+# the ARMLIBS mmp keyword  A DLL is considered to be a customdll based on the presence of ARMLIBS
+# keyword and also the presence of DEFFILE keyword.
+
+sub IsCustomDllUseCase()
+{
+	# To check if ARMLIBS keyword is passed in the MMP file.
+	# Armutl_ArmLibList() gets the list of static arm libraries, if used by an executable.
+	my $armliblist = &Armutl_ArmLibList;
+
+	# To check if DEFFILE keyword is used in the MMP file to supply the def file.
+	my $deffile = &main::DefFile;
+
+	if ($armliblist && $deffile)
+	{
+		return 1;
+	}
+	return 0;
+	
+}
+
+sub GetToolChainPreInclude {
+	my $preinclude_file = getConfigVariable('PREINCLUDE_OPTION');
+
+	$preinclude_file =~ s/\\/\//g;
+	return "$preinclude_file";
+}
+
+sub SelectLangOptions {
+	my ($Ext) = @_;
+	$preinclude = &GetToolChainPreInclude;
+	if ($Ext=~/^.cpp$/ || ($Ext=~/^.cia$/ && ($PlatName eq "GCCE"))) {
+		#Function Call Logger
+		return " \$(CPP_LANG_OPTION) " if ($Function_Call_Logger);
+		return " \$(CPP_LANG_OPTION) $preinclude ";
+	}
+	if ($Ext=~/^.cia$/) {
+		return " \$(CIA_LANG_OPTION) ";
+	}
+	if ($Ext=~/^.c$/) {
+		my $CompilerOption = &main::CompilerOption("ARMCC");
+		if($CompilerOption =~ /--cpp/){
+			#Function Call Logger
+			return " \$(CPP_LANG_OPTION) " if ($Function_Call_Logger);
+			return " \$(CPP_LANG_OPTION) $preinclude ";
+		}
+		else {
+			#Function Call Logger
+			return " \$(C_LANG_OPTION) " if ($Function_Call_Logger);
+			return " \$(C_LANG_OPTION) $preinclude ";
+		}
+	}
+	# To support .cc, .cxx, .c++ file extensions for Open Environment
+	elsif ($Ext=~/^(.cc|.cxx|.c\+\+)$/) {
+		#Function Call Logger
+		return " \$(CPP_LANG_OPTION) " if ($Function_Call_Logger);
+		return " \$(CPP_LANG_OPTION) $preinclude ";
+	}
+	return '';
+}
+
+sub IsMapOptAvail() {
+	open PIPE, "arm-none-symbianelf-g++ -v 2>&1 | ";
+	while(<PIPE>){
+
+		if($_ =~ /gcc version (.*) \(release\).*/i)
+		{
+			if($1 lt "3.4.3")
+			{
+				return 0;
+			}
+			elsif($_ =~ /gcc version (.*) \(release\) \(CodeSourcery ARM (.*) (\d*)\)/i)
+			{
+				if($1 eq "3.4.3" && uc $2 ne "Q1B" && $3 ge 2005)
+				{
+					return 1;
+				}
+				elsif($1 gt "3.4.3")
+				{
+					return 1;
+				}
+				else
+				{
+					return 0;
+				}
+			}
+
+		}
+
+	}
+	close PIPE;
+}
+
+sub StdCppTarget() {
+    
+    # STDCPP is supported
+    return 0 if (! main::StdCppSupport());
+    
+  	if ( main::NoStdCpp() ) { #MMP keyword NOSTDCPP set
+  	       return 0;
+  	}	       
+	
+	if ( main::StdCpp() ) { # MMP keyword STDCPP set.
+		return 1;
+	}
+	else {
+		return ( main::TrgType() =~ /^(STDEXE|STDDLL|STDLIB)$/io );
+	}
+}
+
+sub GetRTLibList() {
+
+	my $newlib = main::NewLib(); # Could have been set in the MMP file.
+
+	unless ($newlib) {
+		if ( StdCppTarget() ) {
+			$newlib = getConfigVariable('OE_NEW_LIB');
+		}
+		else {
+			$newlib = getConfigVariable('SYM_NEW_LIB');
+		}
+	}
+
+	my @RtLib;
+	my $list = "$newlib " . getConfigVariable('RUNTIME_LIBS_LIST') ;
+	if (length($list) >0)
+	{
+		@RtLib = split(/\s+/, $list);
+	}
+	return @RtLib;
+}
+
+sub GetOELibList() {
+	my @OELib;
+	my $list;
+	if (&main::IsWideCharMain()) {
+		$list = getConfigVariable('OE_EXE_LIBS_WCHAR');
+	}
+	else {
+		$list = getConfigVariable('OE_EXE_LIBS');
+	}
+
+	if (length($list) >0)
+	{
+		@OELib = split(/\s+/, $list);
+	}
+	return @OELib;
+}
+
+sub GetOEImportLibList() {
+	my @OEImportLib;
+	my $list;
+	$list = getConfigVariable('OE_IMPORT_LIBS');
+	
+	if (length($list) >0)
+	{
+		@OEImportLib = split(/\s+/, $list);
+	}
+	return @OEImportLib;
+}
+
+sub InitToolChain(@) {
+
+	if($PlatName eq "ARMV5" || $PlatName eq "ARMV5_ABIV2" || $CustomizedARMV5Plat)
+	{
+		my $RVCTBuildNumber;
+
+		($RVCTMajorVersion, $RVCTMinorVersion, $RVCTBuildNumber) = RVCT_plat2set::get_version_list($PlatName);
+
+		$RVCTVersion = "${RVCTMajorVersion}_${RVCTMinorVersion}";
+
+		my $aRVCTVersion = "${RVCTMajorVersion}.${RVCTMinorVersion}";
+		if (($aRVCTVersion == 2.2) && ($RVCTBuildNumber < 559))
+		{
+			warn "WARNING: When building using ABIV2 mode toolchain Compiler RVCT2.2 Build 559 or later is required.\n";
+		}
+		&Armutl_DoMmp(@_);
+	}
+	elsif ($RootName eq "GCCE")
+	{
+		($GCCEMajorVersion, $GCCEMinorVersion) = gcce_plat2set::get_version_list($Platname);
+
+		$GCCEVersion = "${GCCEMajorVersion}_${GCCEMinorVersion}";
+	}
+
+}
+
+my %BSF_keywords = (
+			COMMON_OPTIONS => 1,
+			THUMB_OPTIONS => 1,
+			ARM_OPTIONS => 1,
+			KERNEL_OPTIONS => 1,
+			INVARIANT_OPTIONS => 1,
+			LD_OPTIONS => 1,
+			AR_OPTIONS => 1,
+			DEBUG_FORMAT => 1
+		   );
+
+
+sub Read_BSF_Options() {
+        my %plat = (main::PlatRec());
+		my @Customization_Data = split(/\n/,$plat{'CUSTOMIZATION_DATA'});
+	foreach my $option (@Customization_Data) {
+			next if ($option =~ /^$/);
+			warn "Unrecognized BSF syntax: $option.\n"
+				unless ($option =~ /\s*(\S+)\s+(.+)$/);
+		my $key = uc $1;
+		my $val = $2;
+			warn "Unrecognized BSF keyword: $key.\n"
+				unless ($BSF_keywords{$key});
+		if ($key =~ /COMMON_OPTIONS/) {
+				push @commonOptions, $val;
+			next;
+		}
+		if ($key =~ /THUMB_OPTIONS/) {
+				push @thumbOptions, $val;
+			next;
+		}
+		if ($key =~ /ARM_OPTIONS/) {
+				push @armOptions, $val;
+			next;
+		}
+		if ($key =~ /KERNEL_OPTIONS/) {
+				push @kernelOptions, $val;
+			next;
+		}
+		if ($key =~ /INVARIANT_OPTIONS/) {
+				push @invariantOptions, $val;
+			next;
+		}
+		if ($key =~ /LD_OPTIONS/) {
+				push @linkerOptions, $val;
+			next;
+		}
+		if ($key =~ /AR_OPTIONS/) {
+				push @archiverOptions, $val;
+			next;
+		}
+		if ($key =~ /DEBUG_FORMAT/) {
+				push @debugFormat, $val;
+			next;
+		}
+
+	}
+}
+
+# Set the options passed from BSF file 
+# @param OptionName    - BSF Keyword using which the options would be overridden in the BSF file
+# @param Options       - List of options read from the BSF keyword
+sub Set_BSF_Options($$)
+{
+	my ($OptionName,$Options) = @_;
+	my @Fragments=();
+	foreach my $val (@{$Options})
+	{		
+		# Check if the value of BSF option is to be set or added/removed.
+		if($val =~ /\+\[.*\]\+|\-\[.*\]\-/)
+		{
+			if (@Fragments = Split_BSF_Options($val,'RemoveOptions'))
+			{
+				foreach my $Opt (@Fragments) 
+				{
+					# Remove trailing white spaces
+					$Opt =~ s/\s+$//;
+					# Substitute '=' with '%' which is a wild card character in makefile.
+					# This is required for cases where option to be removed contains '=' (e.g.'-march=armv5t').
+					# When such options are to be removed, "$(INVARIANT_OPTIONS:-march=armv5t=)" is written in the makefile.
+					# However, because of the occurence of '=', pattern match fails in the makefile and such options are not removed. 
+					# To resolve this, '=' is replaced with '%'  in the makefile so that the substitution pattern looks like 
+					# "$(INVARIANT_OPTIONS:-march%armv5t=)" in makefile (e.g."$(INVARIANT_OPTIONS:-march%armv5t=)").
+					$Opt =~ s/=/%/;
+					&main::Output(
+						"$OptionName := \$($OptionName:$Opt=)",					
+						"\n"
+					);
+				}					
+				@Fragments=();
+			}
+			if (@Fragments = Split_BSF_Options($val,'AddOptions')) 
+			{
+				&main::Output(
+					"$OptionName += @Fragments ",
+					"\n"
+				);
+				@Fragments=();
+			}
+			
+			# Warn if options are not present in the form '+[...]+' or '-[...]-'
+			$val =~ s/\+\[.*?\]\+|\-\[.*?\]\-//g;
+			if($val !~ /^\s*$/)
+			{
+				print "Warning: Ignoring option(s) \"$val\" for $OptionName as option(s) should be in the form '+[...]+' or '-[...]-.\n";
+			}
+		}
+		else
+		{
+			&main::Output(
+				"$OptionName = $val ",
+				"\n"
+			);
+		}		
+	}
+	&main::Output(					
+		"\n"
+	);
+}
+
+# Split BSF options to find options which are to be added/removed
+# @param String      - List of options present in form '+[...]+' or '-[....]-'
+# @param $Task       - Variable to decide whether to return options to be addded or options to be removed
+sub Split_BSF_Options($$)
+{
+	my ($String,$Task) = @_;
+    my @Result = ();
+	my @Fragments = ();
+	my $Pattern = '';
+	# Get the toolchain specific option prefix to segregate the options.
+	my $OptionPrefix = getConfigVariable('OPTION_PREFIX');
+	
+	if ($Task eq 'AddOptions')
+	{
+		# Get the options which are to be added (present in the form '+[...]+')
+		@Fragments = $String =~ /\+\[(.*?)\]\+/g;	
+	}
+	elsif ($Task eq 'RemoveOptions') 
+	{
+		# Get the options which are to be removed (present in the form '-[...]-')
+		@Fragments = $String =~ /\-\[(.*?)\]\-/g;
+	}	
+
+	# Set the value of '$Pattern' which is required to segregate one option from another based on the option prefix.
+	if($OptionPrefix) 
+	{
+		$Pattern = $OptionPrefix.'\S+\s*(?!'.$OptionPrefix.')\S*';
+	}
+	else 
+	{
+		# If option prefix is not set in the configuration make file, then set default
+		# option prefix as '-' or '--'.
+		$Pattern = '-{1,2}\S+\s*(?!-)\S*';
+	}
+
+	foreach my $Val (@Fragments) 
+	{
+		my @Opt = $Val =~ /$Pattern/g;
+		push @Result,@Opt;				
+	}
+	return @Result;	
+}
+
+sub SysTrg () {
+	return 1 if &main::SystemTrg;
+	my $ExportLibrary=&main::ExportLibrary;
+	return 1 if ($ExportLibrary =~ /EKERN/i);
+	my $Trg=&main::Trg;
+	return 1 if ($Trg =~ /KSRT/i);
+	return 0;
+}
+
+sub GetLibList() {
+	my @LibList;
+	my @StaticLibList;
+	my $list = getConfigVariable('STATIC_LIBS_LIST') ;
+
+	if (length($list) >0)
+	{
+		@StaticLibList = split(/\s+/, $list);
+	}
+	if($PlatName eq "ARMV5" || $PlatName eq "ARMV5_ABIV2" || $CustomizedARMV5Plat) {
+		@LibList=&Armutl_ArmLibList;
+		if(@LibList==0) {
+			my $LibDir = Armutl_ArmLibDir();
+			# convert '/' to  '\'  if there are some '/'
+			$LibDir =~ s#/#\\#g;
+			if (@StaticLibList) {
+				foreach my $lib (@StaticLibList) {
+					push @LibList, ("$LibDir\\$lib");
+				}
+			}
+		}
+	}
+	else
+	{
+		@LibList = ('$(STATIC_LIBS_LIST)');
+	}
+	return @LibList;
+}
+
+sub GetToolChainAsmFileList() {
+	my @FileList;
+	@FileList=&Armutl_AsmFileList;
+	if(@FileList)
+	{
+		return @FileList;
+	}
+	return;
+}
+
+sub IsTargetRT() {
+	my $RTtarget=&Armutl_ArmRT;
+	if($RTtarget)
+	{
+		return $RTtarget;
+	}
+	return;
+}
+
+sub GetToolChainIncDir {
+	if($PlatName eq "ARMV5" || $PlatName eq "ARMV5_ABIV2" || $CustomizedARMV5Plat)
+	{
+  		#the ToolChainIncDir's value depends on the key word ARMINC in mmp file
+  		return &Armutl_ArmIncDir;
+	}
+	else
+	{
+		my $compiler_inc_path = getConfigVariable('COMPILER_INCLUDE_PATH');
+		$compiler_inc_path =~ s/^\s+//g;
+		return ($compiler_inc_path);
+	}
+}
+
+my $useLinkerFeedBack = 0;
+
+sub LinkerFeedBackFile() {
+  return unless $useLinkerFeedBack;
+  my $Trg = &main::Trg;
+  return "$Trg.lfb";
+}
+
+sub LinkerFeedBackOption() {
+	return "" unless $useLinkerFeedBack;
+	my $BasicTrgType=&main::BasicTrgType;
+	return "" unless ($BasicTrgType=~/^(DLL|EXE)/o);
+	my $file = LinkerFeedBackFile();
+	return "/$(FEEDBACK_FILE_OPTION) $file ";
+
+}
+
+sub getConfigVariable
+{
+    my ($variable) = @_;
+    initialiseConfigVariables();
+    return $configVariables{$variable};
+}
+
+sub initialiseConfigVariables()
+{
+    if (!keys(%configVariables))
+    {
+		%configVariables = BPABIutl_Get_Config_Variables($PlatName);
+
+		if (!keys(%configVariables))
+		{
+			# no variables were extracted from configuration file.
+			&main::FatalError("Cannot extract configuration variables for $PlatName");
+		}
+    }
+}
+
+sub PMSupportsFeatureVariants
+{
+	return 1;
+}
+# modified start: makefile improvement 
+sub checkVMAPFiles
+{
+	my %srcSet = %{&main::getSrcSet};
+	my %featureVariantInfo = &main::FeatureVariantInfo();
+	my $vmapfile = &main::Trg.".".$featureVariantInfo{NAME}.".vmap";
+	my $mmpFile = &main::MmpFile;
+	if ( $vmapfile ){
+		&main::Output(
+			"\n",
+			"\n",
+			"# Rules to check out the VMAP files",
+			"\n",
+			"\n",
+		);
+		&main::Output(
+			"CHECKVMAPUREL : ",
+			"\$(EPOCTRG)\\urel\\",
+			$vmapfile,
+			" \n",
+			"\$(EPOCTRG)\\urel\\",
+			$vmapfile,
+			" : \\\n",
+			"\t",
+			$mmpFile,
+		);
+		foreach my $srcfile (sort keys(%srcSet))
+		{
+			&main::Output(
+				" \\\n \t",
+				$srcfile,
+			);
+		}
+		&main::Output(
+			"\n",
+			"\t-\$(ERASE) \$(EPOCTRG)\\urel\\",
+			$vmapfile,
+			"\n",
+			"\n",
+		);
+		&main::Output(
+			"CHECKVMAPUDEB : ",
+			"\$(EPOCTRG)\\udeb\\",
+			$vmapfile,
+			" \n",
+			"\$(EPOCTRG)\\udeb\\",
+			$vmapfile,
+			" : \\\n",
+			"\t",
+			$mmpFile,
+		);
+		foreach my $srcfile (sort keys(%srcSet))
+		{
+			&main::Output(
+				" \\\n \t",
+				$srcfile,
+			);
+		}
+		&main::Output(
+			"\n",
+			"\t-\$(ERASE) \$(EPOCTRG)\\udeb\\",
+			$vmapfile,
+			"\n",
+			"\n",
+		);
+	}
+}
+# modified by SV end: makefile improvement 
+# modified end: makefile improvement 
+
+
+1;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/platform/cl_codewarrior.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,1498 @@
+# Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+
+package Cl_codewarrior;
+
+# declare variables global for module
+my @Win32LibList=();
+my $Win32StdHeaders;
+my $BaseAddressFlag;
+my $Win32Resrc;
+
+my $MWCC;
+my $MWLD;
+my $MWIncludePath;
+my $MWIncludeVar;
+my $CWVersion;
+my $CWVersionReadable;
+my $CWBuildNum;
+my $CWRuntimeLibs="";
+
+require Exporter;
+@ISA=qw(Exporter);
+@EXPORT=qw(
+	PMHelp_Mmp
+
+	PMCheckPlatformL
+
+	PMPlatProcessMmp
+
+	PMPlatCheckSource
+	
+	PMStartBldList
+		PMBld
+	PMStartSrcList
+		PMBitMapBld
+		PMResrcBld
+		PMAifBld
+		PMStartSrc
+		PMSrcDepend
+			PMSrcBldDepend
+			PMEndSrcBld
+		PMEndSrc
+	PMEndSrcList
+);
+
+use strict;
+use Winutl;
+use cl_generic;
+use E32Variant;
+
+my $NamedSymLkup = 0;
+
+my $stdcpp_tag_file = 'tag_coff';
+my $stdcpp_tag_path = '$(EPOCROOT)epoc32\tools\tag';
+
+sub RoundUp1k($) {
+	# Accept C hexadecimal number (0xNNN).  Convert argument to Kb
+	# rounded up to the next 1kb boundary.
+	use integer;
+	return (hex($_[0]) + 1023) / 1024;
+}
+
+
+sub PMHelp_Mmp {
+	&Winutl_Help_Mmp;
+}
+
+sub SysTrg () {
+	return 1 if &main::SystemTrg;
+	my $ExportLibrary=&main::ExportLibrary;
+	return 1 if ($ExportLibrary =~ /EKERN/i);
+	my $Trg=&main::Trg;
+	return 1 if ($Trg =~ /KSRT/i);
+	return 0;
+}
+
+sub PMCheckPlatformL {
+
+	my $IsProxyWrapperOption=&main::ProxyWrapperOption();
+
+	# check version of CodeWarrior for Symbian OS
+	
+	if (defined($ENV{MWCSym2Includes})) {
+		$MWCC = "mwccsym2.exe";
+		$MWLD = "mwldsym2.exe";
+	}
+	if (!defined($MWCC) && defined($ENV{MWSym2Libraries})) {
+		$MWCC = "mwccsym2.exe";
+		$MWLD = "mwldsym2.exe";
+	}
+	if (!defined($MWCC) && defined($ENV{CWFolder})) {
+		$MWCC = "mwcc.exe";
+		$MWLD = "mwld.exe";
+	}
+	if (!defined($MWCC)) {
+		die "ERROR: Unable to identify a valid CodeWarrior for Symbian OS installation\n";
+	}
+
+	# determine default include path
+	
+	$MWIncludeVar = 'MWCIncludes';	# default, even if it doesn't exist
+	$MWIncludePath = '';			# default is empty
+	
+	foreach my $var ('MWCSym2Includes','MWCWinx86Includes','MWCIncludes') {
+		if (defined($ENV{$var})) {
+			$MWIncludePath = $ENV{$var};
+			$MWIncludeVar = $var;
+			last;
+		}
+	}
+
+	open PIPE, "$MWCC |", or &main::FatalError( "Failed to find version information for $MWCC \n");
+	while (<PIPE>) {
+		if($_ =~ /Version\s+(\d+)\.(\d+)\.(\d+)\s+build\s+(\d+)/) {
+			my $MajorVer = $1;
+			my $MinorVer = $2;
+			my $PatchNum = $3;
+			
+			$CWBuildNum = $4;
+
+            $CWVersionReadable = "$1.$2.$3 build $4";
+
+#			The CW compiler documentation says that the compiler version is a 2-byte value as
+#			0xMnpp (the corresponding CW's pre-defined macro is __MWERKS__), where,
+#				M is the major version number (which means it is accomodated in the first 4 bits, 
+#				n is the minor version number (which means it is accomodated in the next 4 bits, 
+#				pp is the patch number (which means it is accomodated in the next 8 bits.
+#			Here, an integer is formed from these 3 values to uniquely identify the compiler version.
+			$CWVersion = ($MajorVer << 12) + ($MinorVer << 8) + $PatchNum;
+			last;
+		}
+	}
+	close PIPE;
+	
+	if ($IsProxyWrapperOption){
+		$MWCC = "$ENV{ABLD_COMPWRAP} " . $MWCC;
+		$MWLD = "$ENV{ABLD_COMPWRAP} " . $MWLD;
+	}
+}
+
+sub PMPlatProcessMmp (@) {
+	&Winutl_DoMmp(\@_, $MWIncludePath);
+	$BaseAddressFlag=&Winutl_BaseAddress;
+	if ($BaseAddressFlag ne "") {
+		$BaseAddressFlag=" -imagebase \"$BaseAddressFlag\"";
+	}
+	@Win32LibList=&Winutl_Win32LibList;
+	$Win32Resrc=&Winutl_Win32Resrc;
+	$Win32StdHeaders=&Winutl_Win32StdHeaders;
+}
+
+sub PMPlatCheckSource () {
+	&Winutl_CheckSourceMMPMetaData ();
+}
+
+sub PMStartBldList($) {
+	my ($makecmd) = @_;
+	my $AifStructRef=&main::AifStructRef;
+	my $BaseTrg=&main::BaseTrg;
+	my $BitMapStructRef=&main::BitMapStructRef;
+	my @BldList=&main::BldList;
+	my @ChopSysIncPaths=&main::Path_Chop(&main::SysIncPaths);
+	my @ChopUserIncPaths=&main::Path_Chop(&main::UserIncPaths);
+	my $ExportLibrary=&main::ExportLibrary;
+	my $NoExportLibrary=&main::NoExportLibrary;
+	my $DefFile=&main::DefFile;
+	my $BasicTrgType=&main::BasicTrgType;
+	my $LibPath=&main::LibPath;
+	my @MacroList=&main::MacroList();
+	push @MacroList, "__SUPPORT_CPP_EXCEPTIONS__";
+
+	push @MacroList, "__SYMBIAN_STDCPP_SUPPORT__" if StdCppTarget();
+	
+    my $VariantFile=&main::VariantFile();
+	my $ResourceStructRef=&main::ResourceStructRef;
+	my $Plat=&main::Plat;
+	my $Trg=&main::Trg;
+	my $TrgType=&main::TrgType;
+	my $WarningLevel=&main::CompilerOption("CW");
+	my $LinkAs=&main::LinkAs;
+
+	Generic_Header(0,$makecmd);	# define standard things using absolute paths
+
+	my $TrgDir="";
+	my $AifTrgDir="";
+	if (&Generic_Definition("TRGDIR") ne "") {
+		$TrgDir="\$(TRGDIR)\\";
+		$AifTrgDir=$TrgDir;
+	}
+
+# Handle migration of binaries to secure location
+
+	&Winutl_AdjustTargetPath(\$TrgDir);
+	
+# Change - mwwinrc.exe uses MWWinx86Includes or MWCIncludes, but some installations
+# fail to install either. Set MWCIncludes from the chosen variable as part
+# of the Makefile.
+	if (!defined($ENV{MWCIncludes}) && $MWIncludeVar ne 'MWCIncludes') {
+		&main::Output(
+			"\n",
+			"MWCIncludes:=\$($MWIncludeVar)\n",
+			"export MWCIncludes\n",
+			"\n"
+		);
+	}
+	if( ($CWVersion == 0x3205 && $CWBuildNum == 465)){
+		if($TrgType =~ /^(STDDLL|STDEXE|STDLIB)$/o) {
+		&main::Output(
+				"\n",
+				"MWSym2LibraryFiles:=msl_all_mse_symbian_d.lib;gdi32.lib;user32.lib;kernel32.lib;\n",
+				"export MWSym2LibraryFiles\n",
+				"\n"
+			);
+		}
+		else {
+			&main::Output(
+				"\n",
+				"MWSym2LibraryFiles:=msl_all_static_mse_symbian_d.lib;gdi32.lib;user32.lib;kernel32.lib;\n",
+				"export MWSym2LibraryFiles\n",
+				"\n"
+			);
+		}
+	}
+		
+	if($WarningLevel =~ /\-cwd\s\s*include/){	
+		&main::Output(
+			"# EPOC DEFINITIONS\n",
+			"\n",
+			"INCDIR  = -cwd include -i-"
+		);
+	}
+	else {
+		&main::Output(
+			"# EPOC DEFINITIONS\n",
+			"\n",
+			"INCDIR  = -cwd source -i-"
+		);
+	}
+	foreach (@ChopUserIncPaths,@ChopSysIncPaths) {
+		&main::Output(
+			" \\\n -i \"$_\""
+		);
+	}
+	use Pathutl;
+	if($VariantFile){
+	    my $variantFilePath = Path_Split('Path',$VariantFile);
+	    $VariantFile  = Path_Split('FILE',$VariantFile);
+	    # workaround for codewarrior defect:
+	    # codewarrior at the moment doesn't accept an absolute path with the
+	    # the -include option unless it contains a drive letter, this is solved
+	    # by including the directory and the file separately
+	    &main::Output("\\\n -i \"$variantFilePath \" -include \"$VariantFile\"");
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+
+	&main::Output(
+		"CWFLAGS ="		
+	);
+
+	# 'wchar_t' should be treated as default datatype for OE targets because when wchar_t option is turned off, 
+	# using 'wchar_t' defaults to the unsigned short int and wrong functionality. 
+	if ( $TrgType =~ /^(STDEXE|STDDLL|STDLIB)$/io || StdCppTarget() ) 
+	{
+		&main::Output(
+			" -wchar_t on"
+		);	
+	}
+	else 
+	{
+		&main::Output(
+			" -wchar_t off"
+		);
+	}
+
+	&main::Output(		
+		" -align 4",		# long alignment
+		" -warnings on",	# selection of warnings
+		" -w nohidevirtual",	# turn off "hides inherited virtual function" warning
+		   ",nounusedexpr",	# turn off "expression has no side effect" warning
+		" -msgstyle gcc",	# use GCC-style message format
+		# " -strict on",		# strict ANSI/ISO C++ checking
+		" -enum int",		# use int for enumeration types
+		" -str pool",		# pool strings into a single data object
+		" -exc ms",			# SEH C++ exception implementation
+		" -trigraphs on",		# Enable recognition of C-style trigraphs, e.g. '??/' -> '\'
+		" $WarningLevel"		
+	
+	);
+
+	if ($Win32StdHeaders or &main::Plat eq 'TOOLS') {
+		&main::Output(
+			" -stdinc"		# insist because mwccsym2 has -nostdinc as the default(?)
+		);
+	}
+	else {
+		&main::Output(
+			" -nostdinc"	# insist because mwcc has -stdinc as the default.
+		);
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+
+	&main::Output(
+		"CWDEFS  = "
+	);
+	foreach(@MacroList) {
+		&main::Output(
+			" -d \"$_\""
+		);
+	}
+	&main::Output(
+		" \$(USERDEFS)\n",
+		"\n"
+	);
+
+	foreach (@BldList) {
+		&main::Output(
+			"CW$_ = $MWCC"
+		);
+		if (/DEB$/o) {
+			&main::Output(
+				' -g -O0'   # debug information, no optimisation
+			);
+#			euser change to apply inlining on the _NAKED functions
+
+#			stdexe/stddll change so that the inline functions dont 
+#			get exported (in debug build) causing a different export list for debug and release builds
+			if ($BaseTrg!~/^EUSER$/oi && $TrgType !~ /^(STDEXE|STDDLL)$/io) {
+				&main::Output(
+					' -inline off'
+				);
+			}	
+		}
+		elsif (/REL$/o) {
+			&main::Output(
+				' -O4,s'	# highest level of optimisation, optimise for space
+			);
+		}
+
+		if( ($CWVersion == 0x3205 && $CWBuildNum >= 465) || $CWVersion > 0x3205){
+			if ($TrgType =~ /^(STDEXE|STDDLL|STDLIB)$/io) {
+				&main::Output(
+					' -runtime dllmulti'
+				);
+			}
+			else {
+				&main::Output(
+					' -runtime staticmulti'
+				);
+			}
+		}
+
+		&main::Output(
+			' $(CWFLAGS)'
+		);
+		foreach (&main::MacroList($_)) {
+			&main::Output(
+				" -d $_"
+			);
+		}
+		&main::Output(
+			" \$(CWDEFS) \$(INCDIR)\n"
+		);
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+	
+	foreach (@BldList) {
+		&main::Output(
+			"$_ :"
+		);
+
+		if ($BasicTrgType !~ /IMPLIB/io) {
+			&main::Output (
+				" \\\n",
+				"\t", &Generic_Quote("\$(EPOCTRG$_)\\$TrgDir$Trg")
+			);
+			if (&Winutl_CopyForStaticLinkage) {
+				&main::Output(
+					" \\\n",
+					"\t", &Generic_Quote("\$(EPOCTRG$_)\\$Trg")
+				);
+			}
+		}
+
+#		lib has to come after the main target so that a .DEF file will be generated if the project is not frozen
+		if ($DefFile and not &main::ExportUnfrozen) {
+			&main::Output(
+				" \\\n",
+				"\tLIBRARY\n"
+			);
+		}
+		&main::Output(
+			"\n",
+			"\n"
+		);
+	}
+
+	foreach (@BldList) {
+		my $makework="MAKEWORK$_";
+		&main::Output(
+			"\n",
+			"RESOURCE$_ : $makework"
+		);
+
+		my $BitMapRef;
+		foreach $BitMapRef (@$BitMapStructRef) {
+			my $file="\$(EPOCTRG$_)\\$$BitMapRef{TrgPath}$$BitMapRef{Trg}";
+			&Generic_MakeWorkFile($makework,$file);
+			&main::Output(
+				" \\\n",
+				"\t", &Generic_Quote($file)
+			);
+		}
+		undef $BitMapRef;
+
+		my $ResourceRef;
+		foreach $ResourceRef (@$ResourceStructRef) {
+			if(! defined $$ResourceRef{Hdronly}) {
+				my $file="\$(EPOCTRG$_)\\$$ResourceRef{Trg}";
+				&Generic_MakeWorkFile($makework,$file);
+				&main::Output(	# must come before main target because source for target will depend on the
+				" \\\n",		# *.rsg file in $EPOCIncPath
+				"\t", &Generic_Quote("$file")
+				);
+			}
+		}
+		undef $ResourceRef;
+
+		my $AifRef;
+		foreach $AifRef (@$AifStructRef) {
+			my $file="\$(EPOCTRG$_)\\$AifTrgDir$$AifRef{Trg}";
+			&Generic_MakeWorkFile($makework,$file);
+			&main::Output(
+				" \\\n",
+				"\t", &Generic_Quote($file)
+			);
+		}
+		undef $AifRef;
+
+		&main::Output(
+			"\n"
+		);
+	}
+	&main::Output(
+		"\n",
+		"\n",
+	);
+
+	&main::Output(
+		"\n",
+		"# REAL TARGET - LIBRARY\n",
+		"\n",
+		"LIBRARY : MAKEWORKLIBRARY"
+	);
+	if ($BasicTrgType=~/^LIB$/o) {
+#		code to ensure that the static libraries for all builds are built at the library stage
+		foreach (@BldList) {
+			&main::Output(
+				" $_"
+			);
+		}
+	}
+	elsif ($DefFile and !$NoExportLibrary) {
+		unless (&main::ExportUnfrozen) {
+			if (-e $DefFile) { # effectively "if project frozen ..."
+				my $LibLinkAs = ($BasicTrgType=~/^IMPLIB$/io) ? $LinkAs : $Trg;
+				&main::Output(
+					" ", &Generic_Quote("\$(EPOCLIB)\\UDEB\\$ExportLibrary.lib"), "\n",
+					"\n",
+					&Generic_Quote("\$(EPOCLIB)\\UDEB\\$ExportLibrary.lib"), " : ",
+					&Generic_Quote($DefFile), "\n",
+					"\tperl -S prepdef.pl ",&Generic_Quote($DefFile)," \"\$(EPOCBLD)\\$ExportLibrary.prep.def\"\n",
+					"\t$MWLD \"\$(EPOCBLD)\\$ExportLibrary.prep.def\" -importlib -o \$\@",
+					" -addcommand \"out:$LibLinkAs\" -warnings off",
+					"\n"
+				);
+			} else {
+				&main::Output(
+					"\n",
+					"\t\@echo WARNING: Not attempting to create \"\$(EPOCLIB)\\UDEB\\$ExportLibrary.lib\".\n",
+					"\t\@echo When exports are frozen in \"$DefFile\", regenerate Makefile.\n"
+				);
+			}
+		} else {
+			&main::Output(
+				"\n",
+				"\t\@echo Not attempting to create \"\$(EPOCLIB)\\UDEB\\$ExportLibrary.lib\"\n",
+				"\t\@echo from frozen .DEF file, since EXPORTUNFROZEN specified.\n"
+			);
+		}
+	}
+	&main::Output(
+		"\n",
+		"\n",
+		"FREEZE :\n"
+	);
+	if ($DefFile and $BasicTrgType!~/^IMPLIB$/io) {
+		&main::Output(
+#			call perl on the script here so nmake will die if there are errors - this doesn't happen if calling perl in a batch file
+			"\tperl -w -S efreeze.pl \$(EFREEZE_ALLOW_REMOVE) \"$DefFile\" \"\$(EPOCBLD)\\$ExportLibrary.def\" \n"
+		);
+	}
+	else {
+		&main::Output( "\tperl -e \"print \\\"warning: freeze could not be supported or \\
+		         you need to declare an explicitly specified def file using the keyword \\
+			 DEFFILE in the MMP file!\\n\\\"\""); 
+	}
+	&main::Output(
+		"\n",
+		"CLEANLIBRARY :\n"
+	);
+	if ($DefFile and !$NoExportLibrary) {
+		&main::Output(
+			"\t-\$(ERASE) \"\$(EPOCLIB)\\UDEB\\$ExportLibrary.lib\"\n"
+		);
+	}
+	&main::Output(
+		"\n"
+	);
+	&Generic_MakeWorkDir('MAKEWORKLIBRARY',"${LibPath}UDEB");
+
+	&Generic_Releaseables;
+}
+
+my $uidfile;
+sub PMBld {
+
+	my $AifStructRef=&main::AifStructRef;
+	my @SrcList=&main::SrcList;
+	my $BaseTrg=&main::BaseTrg;
+	my $BitMapStructRef=&main::BitMapStructRef;
+	my $Bld=&main::Bld;
+	my $ChopBldPath=&main::Path_Chop(&main::BldPath);
+	my $ExportLibrary=&main::ExportLibrary;
+	my $NoExportLibrary=&main::NoExportLibrary;
+	my $DefFile=&main::DefFile;
+	my $EPOCIncPath=&main::EPOCIncPath;
+	my $BasicTrgType=&main::BasicTrgType;
+	my @LibList;
+	my $RelPath=&main::RelPath;
+	my $ResourceStructRef=&main::ResourceStructRef;
+	my @StatLibList=&main::StatLibList;
+	my $Trg=&main::Trg;
+	my $TrgPath=&main::TrgPath;
+	my $TrgType=&main::TrgType;
+	# Get the information regarding supporting Compiler Wrapper Option
+	my $IsCompilerWrapperOption=&main::CompilerWrapperOption();
+
+	$NamedSymLkup = 1 if($TrgType =~ /^(STDDLL|STDEXE)$/o);
+
+	$uidfile = "$BaseTrg.UID";
+
+	if ($Bld =~ /DEB/) {
+		@LibList=&main::DebugLibList;
+	} else {
+		@LibList=&main::LibList;
+	}
+
+	# OE Glue Code
+	my @oe_exe_libs=("libcrt0.lib");
+	my @oe_exe_libs_wchar=("libwcrt0.lib");
+
+	# OE Import Libraries
+	my @oe_import_libs=("euser.lib"); 
+ 	if(not (grep /^libc.lib$/i, @LibList)){
+ 			push @oe_import_libs, "libc.lib";
+ 	}	   	
+	   	
+   # Handle migration of binaries to secure location
+
+	my $BLDTRGPATH = "";
+	my $AIFBLDTRGPATH = "";
+	if ($TrgPath) {
+		$BLDTRGPATH = "\$(TRGDIR)\\";	    # handles TARGETPATH
+		$AIFBLDTRGPATH = $BLDTRGPATH;
+		&Winutl_AdjustTargetPath(\$BLDTRGPATH);
+	}
+	$BLDTRGPATH = "\$(EPOCTRG$Bld)\\".$BLDTRGPATH;
+	$AIFBLDTRGPATH = "\$(EPOCTRG$Bld)\\".$AIFBLDTRGPATH;
+
+	# REAL TARGETS
+	#-------------
+	&main::Output(
+		"# REAL TARGET - BUILD VARIANT $Bld\n",
+		"\n"
+	);
+
+#	releasables
+	my @releaseables;
+	
+	unless (&main::Plat() eq 'TOOLS') {
+		if ($TrgType !~ /^IMPLIB$/io) {
+			if ($TrgType !~ /^NONE/io) {
+				push @releaseables, "$BLDTRGPATH$Trg";
+				if ($Bld=~/REL$/o && $BasicTrgType!~/^LIB$/o) {
+					push @releaseables,"$BLDTRGPATH$Trg.map";
+				}
+				if (&Winutl_CopyForStaticLinkage) {
+					push @releaseables, "\$(EPOCTRG$Bld)\\$Trg";
+				}
+			}
+			my $BitMapRef;
+			foreach $BitMapRef (@$BitMapStructRef) {
+				push @releaseables, "\$(EPOCTRG$Bld)\\$$BitMapRef{TrgPath}$$BitMapRef{Trg}";
+			}
+			my $ResourceRef;
+			foreach $ResourceRef (@$ResourceStructRef) {
+				if(! defined $$ResourceRef{Hdronly}) {
+					push @releaseables,"\$(EPOCTRG$Bld)\\$$ResourceRef{Trg}";
+				}
+			}
+			my $AifRef;
+			foreach $AifRef (@$AifStructRef) {
+				push @releaseables, "$AIFBLDTRGPATH$$AifRef{Trg}";
+			}
+		}
+		if (-e $DefFile and !$NoExportLibrary) { # effectively "if project frozen ..."
+			push @releaseables, "\$(EPOCLIB$Bld)\\$ExportLibrary.lib";
+		}
+		if ($Bld=~/DEB$/o) {
+			# debugging support files?
+		}
+	}
+	else {
+		if ($BasicTrgType !~ /^IMPLIB$/io) {
+			my $toolspath=&main::EPOCToolsPath();
+			push @releaseables, "$toolspath$Trg";
+		}
+	}
+
+
+	my $firstlib = "";
+	my $newlib = "";
+
+	if ( $BasicTrgType =~ /^(EXE|DLL)$/o && main::Plat() ne 'TOOLS' ) {
+
+		$firstlib = main::FirstLib();
+
+		unless ( StdCppTarget() || ! main::StdCppSupport()) {
+
+			$newlib = main::NewLib(); # Check if has been set in the MMP file.
+
+			unless ($newlib) {
+				if ( main::SystemTrg() ) {
+
+					$newlib = 'scppnwdl_kern.lib';
+				}
+				else {
+					$newlib = 'scppnwdl.lib';
+				}
+			}
+		}
+	}
+
+
+	&main::Output(
+		"WHAT$Bld : WHATGENERIC\n",
+		"\n",
+		"CLEAN$Bld : CLEANBUILD$Bld CLEANRELEASE$Bld\n",
+		"\n",
+		"CLEANBUILD$Bld : \n",
+		"\t\@perl -w -S ermdir.pl \"\$(EPOCBLD$Bld)\"\n",
+		"\n",
+		"CLEANRELEASE$Bld : CLEANGENERIC\n",
+		"\n"
+	);
+	&Generic_WhatCleanTargets($Bld, "WHAT$Bld", "CLEANRELEASE$Bld", @releaseables);
+
+	my $adjustedTargetPath=$TrgPath;
+	&Winutl_AdjustTargetPath(\$adjustedTargetPath);
+	&Generic_MakeWorkDir("MAKEWORK$Bld", &main::BldPath);
+	&Generic_MakeWorkDir("MAKEWORK$Bld", "$RelPath$adjustedTargetPath");
+
+	&main::Output(
+		"\n",
+		"\n"
+	);
+
+	return if ($BasicTrgType=~/^IMPLIB$/io);
+
+	&main::Output(
+		"LISTING$Bld : MAKEWORK$Bld"
+	);
+	foreach (@SrcList) {
+		my $BaseSrc = &main::Path_Split('Base', $_);
+		my $Ext = &main::Path_Split('Ext', $_);
+		$BaseSrc.='_' if (lc($Ext) eq '.cia');
+		$BaseSrc =~ s/\.UID/_UID_/i if ($BaseSrc eq $uidfile);
+		
+   		&main::Output(
+			" \\\n\tLISTING$Bld$BaseSrc"
+   		);
+   	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+	#Compiler wrapper support starts
+	if($IsCompilerWrapperOption)
+	{
+	 	my $Platcmpwrap=&main::Plat;
+	 	
+		&main::Output(
+			"COMPWRAP$Bld : OUTPUT_NAME = ",
+			"$Platcmpwrap\_$Bld",
+			"\n"
+		);
+	 	
+		&main::Output(
+			"COMPWRAP$Bld : MAKEWORK$Bld"
+		);
+
+		foreach (@SrcList) {
+			my $BaseSrc = &main::Path_Split('Base', $_);
+			my $Ext = &main::Path_Split('Ext', $_);
+			$BaseSrc.='_' if (lc($Ext) eq '.cia');
+			$BaseSrc =~ s/\.UID/_UID_/i if ($BaseSrc eq $uidfile);
+			
+			&main::Output(
+				" \\\n\tCOMPWRAP$Bld$BaseSrc"
+			);
+		}
+
+		&main::Output(
+			"\n",
+			"\n"
+		);
+	}
+	#--Compiler wrapper support ends
+
+	# Flag that tells whether to run checklib.exe on static libraries.
+	my $run_checklib = 0;
+
+	if (@StatLibList && $BasicTrgType =~ /^(EXE|DLL)$/o && !main::SystemTrg() && main::StdCppSupport()) {
+		# There are user-added static libraries. They should be checked for
+		# consistent use of operator new.
+		$run_checklib = 1;
+
+		#Create a make variable for the libraries.
+		main::Output("\nUSER_ADDED_ARCHIVES_$Bld=");
+		for (@StatLibList) {
+			&main::Output(
+				" \\\n\t", &Generic_Quote("\$(EPOCSTATLINK$Bld)\\$_")
+			);
+		}
+
+		main::Output("\n\n");
+	}
+
+	&main::Output(
+		"LIBS$Bld="
+	);
+	foreach (@StatLibList) {
+		&main::Output(
+			" \\\n\t", &Generic_Quote("\$(EPOCSTATLINK$Bld)\\$_")
+		);
+	}
+	
+	#OE Glue Code
+	if ($TrgType=~/^STDEXE$/o) {
+		if (&main::IsWideCharMain()) {
+			foreach (@oe_exe_libs_wchar) {
+				&main::Output(
+					" \\\n\t", &Generic_Quote("\$(EPOCSTATLINK$Bld)\\$_")
+				);
+			}
+		}
+		else {
+			foreach (@oe_exe_libs) {
+				&main::Output(
+					" \\\n\t", &Generic_Quote("\$(EPOCSTATLINK$Bld)\\$_")
+				);
+			}
+		}
+	}
+
+	foreach (@LibList) {
+		&main::Output(
+			" \\\n\t", &Generic_Quote("\$(EPOCLINK$Bld)\\$_")
+		);
+	}
+
+	#OE Import Libraries
+	if ($TrgType =~ /^STDEXE$/o || $TrgType =~ /^STDDLL$/o) {
+		foreach (@oe_import_libs) {
+		&main::Output(
+			" \\\n\t", &Generic_Quote("\$(EPOCLINK$Bld)\\$_")
+		);
+		}
+	}
+
+	&main::Output(
+		"\n",
+		"\n"
+	);
+
+	&main::Output(
+		"LINK_OBJS$Bld="
+	);
+	my $have_uidfile = 0;
+	foreach (@SrcList) {
+		my $BaseSrc = &main::Path_Split('Base', $_);
+		my $Ext = &main::Path_Split('Ext', $_);
+		if ($BaseSrc eq $uidfile) {
+			$have_uidfile = 1;
+			next;
+		}
+		$BaseSrc.='_' if (lc($Ext) eq '.cia');
+   		&main::Output(
+			" \\\n",
+			"\t", &Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.o")
+   		);
+   	}
+
+	my $add_stdcpp_tag = 0;
+
+	if ($BasicTrgType=~/^LIB$/o && StdCppTarget() ) {
+		$add_stdcpp_tag = 1;
+	}
+
+	if ($add_stdcpp_tag) {
+		&main::Output(
+			" \\\n",
+			"\t", &Generic_Quote("$stdcpp_tag_path\\$stdcpp_tag_file")
+		);
+	}
+	if ($Win32Resrc) {
+		my $resbase=&main::Path_Split('Base',$Win32Resrc);
+		&main::Output(
+			" \\\n",
+			"\t", &Generic_Quote("\$(EPOCBLD$Bld)\\$resbase.res")
+		);
+	}
+	if ($have_uidfile) {
+		# ensure that the uid file is at the end of the list, as it's implicit in
+		# CodeWarrior IDE projects.
+		&main::Output(
+			" \\\n",
+			"\t", &Generic_Quote("\$(EPOCBLD$Bld)\\$BaseTrg"."_UID_.o")
+		);
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+
+	&main::OutFormat(
+		"COMMON_LINK_FLAGS$Bld=",
+		' -msgstyle gcc',
+		' -stdlib'		# use default runtime library for compiler help functions
+	);
+	if ($MWLD =~ /mwcc.exe/) {
+		&main::OutFormat(
+			' -warnings on'	# on by default in mwccsym2.exe
+		);
+	}
+
+	main::OutFormat(" \"\$(EPOCSTATLINK$Bld)\\$firstlib\" ") if $firstlib;
+	main::OutFormat(" \"\$(EPOCSTATLINK$Bld)\\$newlib\" ")   if $newlib;
+
+	foreach my $lib (@Win32LibList) {
+		 my $win32lib = $lib;    # take a copy, to avoid updating contents of Win32LibList!
+		$win32lib = "-l$win32lib" unless ($win32lib =~ /\\/);
+		&main::OutFormat(
+			" ",lc $win32lib
+		);
+	}
+	if ($BasicTrgType=~/^DLL$/o) {
+		&main::OutFormat(
+			"$BaseAddressFlag",
+			' -main __Win32DllMain@12',
+			' -shared'
+		);
+	}
+	elsif ($TrgType=~/^EXEXP$/o) {
+		&main::OutFormat(
+			"$BaseAddressFlag",
+			' -noentry',
+			' -shared'
+		);
+	}
+	elsif ($BasicTrgType=~/^EXE$/o) {
+		unless (&main::Plat eq 'TOOLS') {
+			&main::OutFormat(
+				' -m "?_E32Bootstrap@@YGXXZ"'
+			);
+		}
+	}
+	if (&main::Plat=~/^(WINC|TOOLS)$/o && $BasicTrgType=~/^EXE$/o) {
+		&main::OutFormat(
+			' -subsystem console'
+		);
+	}
+	else {
+		&main::OutFormat(
+			' -subsystem windows'
+		);
+	}
+	if (&main::HeapSize) {
+		my %HeapSize=&main::HeapSize;
+		&main::OutFormat(
+			' -heapreserve=',RoundUp1k($HeapSize{Max}),' -heapcommit=',RoundUp1k($HeapSize{Min})
+		);
+	}
+	if ($BasicTrgType=~/^(DLL|EXE)$/o) {
+		if ($Bld=~/DEB$/o) {
+			&main::OutFormat(
+				' -g'
+			);
+		}
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+
+	if($TrgType =~/^(STDEXE|STDDLL|STDLIB)$/o) {
+		if(! (( $CWVersion == 0x3205 && $CWBuildNum >= 465 ) || $CWVersion > 0x3205 ) ) {
+			&main::FatalError("TargetType $TrgType requires CodeWarrior version `3.2.5 build 465' or later but you have $CWVersionReadable.");
+		}
+	}
+
+	my $EntrySymbol='';
+	if ($BasicTrgType=~/^DLL$/o || $TrgType=~/^EXEXP$/o || $NamedSymLkup) {
+		my $Include="";
+		if ($BasicTrgType=~/^DLL$/o) {
+			$Include="-m __E32Dll";
+			$EntrySymbol='__E32Dll';
+		}
+		else {
+			$Include="-m __E32Startup";
+			$EntrySymbol='__E32Startup';
+		}
+		&main::Output(
+			"STAGE1_LINK_FLAGS$Bld= \$(COMMON_LINK_FLAGS$Bld) \$(LIBS$Bld) \\\n\t",
+			" -o \"\$(EPOCBLD$Bld)\\$Trg\"");
+		
+		if ($NamedSymLkup) {
+			&main::Output(
+			" -export all",
+			" -map \"\$(EPOCBLD$Bld)\\$Trg.map\""
+			);
+		}
+		else {
+			&main::Output(' -export dllexport');
+		}
+
+		if($CWRuntimeLibs ne "") {
+			&main::Output(
+				" -l$CWRuntimeLibs "
+			);
+		}
+		if($BasicTrgType=~/^DLL$/o || $TrgType=~/^EXEXP$/o) {
+			&main::Output(
+				" $Include",
+				' -nocompactimportlib', 
+				" -implib \"\$(EPOCBLD$Bld)\\$ExportLibrary.lib\"",
+				" -addcommand \"out:$Trg\" -warnings off",
+				"\n",
+			);
+		}
+		else{
+#		Dont generate import libs for an Exe
+			&main::Output(
+				" $Include",
+				" -addcommand \"out:$Trg\" -warnings off",
+				"\n",
+			);
+		}
+	}
+	my $AbsentSubst = '';
+	if ($EntrySymbol) {
+		$AbsentSubst = " -absent $EntrySymbol";
+	}
+
+	&main::Output(
+		"LINK_FLAGS$Bld= \$(COMMON_LINK_FLAGS$Bld) \$(LIBS$Bld) \\\n\t",
+		" -o \"$BLDTRGPATH$Trg\" ", &main::LinkerOption("CW") 
+	);
+	if($CWRuntimeLibs ne "") {
+			&main::Output(
+				" -l$CWRuntimeLibs "
+			);
+	}
+	if ($Bld=~/REL$/o && $BasicTrgType!~/^LIB$/o) {
+		# Generate map file for release build executables
+		&main::Output(
+			" -map \"$BLDTRGPATH$Trg.map\"", 
+		);
+	}
+	if ($BasicTrgType=~/^DLL$/o || $TrgType=~/^EXEXP$/o) {
+		&main::Output(
+			" -f \"\$(EPOCBLD)\\$ExportLibrary.def\"",	# use generated .DEF file
+		);
+		if (&main::ExportUnfrozen) {
+			&main::Output(
+				" -implib \"\$(EPOCLIB)\\UDEB\\$ExportLibrary.lib\"",
+				" -addcommand \"out:$Trg\" -warnings off"
+			);
+		}
+		else {
+			&main::Output(
+				' -noimplib'
+			);
+		}
+	}
+	else {
+		&main::Output(
+			' -noimplib'
+		);
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+
+	&main::Output(
+		&Generic_Quote("$BLDTRGPATH$Trg"), " : \$(LINK_OBJS$Bld) "
+	);
+	if (-e $DefFile) { # effectively "if project frozen ..."
+		&main::Output(
+			&Generic_Quote($DefFile)
+		);
+	}
+
+	main::Output(" ", Generic_Quote("\$(EPOCSTATLINK$Bld)\\$firstlib") ) if $firstlib;
+	main::Output(" ", Generic_Quote("\$(EPOCSTATLINK$Bld)\\$newlib") )   if $newlib;
+
+	&main::Output(
+		" \$(LIBS$Bld)\n"
+	);
+
+	my $checklib = "checklib";
+
+	if ( StdCppTarget() ) {
+		$checklib .= " stdc++ --coff";
+	}
+	else {
+		$checklib .= " symc++ --coff";
+	}
+
+	&main::Output( "\t$checklib ","\$(USER_ADDED_ARCHIVES_$Bld)\n" ) if ($run_checklib);
+#	Link by name first time round for dlls
+	if ($BasicTrgType=~/^DLL$/o || $TrgType=~/^EXEXP$/o) {
+		&main::Output(
+			"\t$MWLD \$(STAGE1_LINK_FLAGS$Bld) -l \$(EPOCBLD$Bld) -search \$(notdir \$(LINK_OBJS$Bld))\n",
+		);
+		if(!$NamedSymLkup){
+#		Dont delete the binary as we need to extract symbol/dependency info
+			&main::Output(
+			"\t\$(ERASE) \"\$(EPOCBLD$Bld)\\$Trg\"\n",
+			);
+		}
+
+#		Generate an export info file
+		my $show_options = "names,verbose";
+		$show_options = "names,unmangled,verbose" if ($MWLD =~ /mwldsym2.exe/);
+		&main::Output(
+			"\t$MWLD -S -show only,$show_options -o \"\$(EPOCBLD$Bld)\\$ExportLibrary.inf\" \"\$(EPOCBLD$Bld)\\$ExportLibrary.lib\"\n"
+		);
+
+#		call makedef to reorder the export information
+		&main::Output(
+#			call perl on the script here so nmake will die if there are errors - this doesn't happen if calling perl in a batch file
+			"\tperl -w -S makedef.pl $AbsentSubst -Inffile \"\$(EPOCBLD$Bld)\\$ExportLibrary.inf\""
+		);
+		if (SysTrg()) {
+    			&main::Output( "\t\t-SystemTargetType \\\n" );
+	    	}		
+		if (-e $DefFile) { # effectively "if project frozen ..."
+			&main::Output(
+				" -Frzfile \"$DefFile\""
+			);
+		}
+		my $Export;
+		my $Ordinal=1;
+		foreach $Export (&main::Exports) {
+#				replace "$" with "$$" so that NMAKE doesn't think there's a macro in the function name
+			$Export=~s-\$-\$\$-go;
+			&main::Output(
+				" -$Ordinal $Export"
+			);
+			$Ordinal++;
+		}
+		&main::Output(" -sym_name_lkup") if($NamedSymLkup);
+
+		&main::Output(" -export_entrypoint_E32Dll") if ($TrgType =~ /^STDDLL$/i);  # Workaround: To export entry point _E32DLL for target type STDDLL
+
+		&main::Output(
+			" \"\$(EPOCBLD)\\$ExportLibrary.def\" \n",
+			"\t\$(ERASE) \"\$(EPOCBLD$Bld)\\$ExportLibrary.inf\"\n",
+			"\t\$(ERASE) \"\$(EPOCBLD$Bld)\\$ExportLibrary.lib\"\n"
+		);
+	}
+	elsif($NamedSymLkup) {
+#	2-stage linking required for all those targets that enable symbol lookup
+		&main::Output( "\t$checklib ","\$(USER_ADDED_ARCHIVES_$Bld)\n" ) if ($run_checklib);
+		&main::Output(
+			"\t$MWLD \$(STAGE1_LINK_FLAGS$Bld) -l \$(EPOCBLD$Bld) -search \$(notdir \$(LINK_OBJS$Bld))\n",
+		);
+	}
+	my $gen_src_file = "";
+	if($NamedSymLkup){
+#		pick the symbols and the dependencies.
+		&main::Output(
+			"\t$MWLD -S -show only,names,verbose -o \"\$(EPOCBLD$Bld)\\$ExportLibrary.sym\" \"\$(EPOCBLD$Bld)\\$Trg\"\n",
+		);
+
+#		Generate the source file with symbol and dependency information in the named data segment.
+		$gen_src_file = "${BaseTrg}_SYM_";
+		
+		if($BasicTrgType=~/^EXE$/o){
+#		For an EXE, generate the symbols as well as the dependencies
+			&main::Output(
+				"\tperl -S sym_lkup_util.pl -o \"\$(EPOCBLD$Bld)\\$gen_src_file.cpp\" -sym \"\$(EPOCBLD$Bld)\\$ExportLibrary.sym\" -map \"\$(EPOCBLD$Bld)\\$Trg.map\"\n"
+			);
+		}
+		else {
+#		For DLLs, generate only the dependencies.
+			&main::Output(
+				"\tperl -S sym_lkup_util.pl -o \"\$(EPOCBLD$Bld)\\$gen_src_file.cpp\" -sym \"\$(EPOCBLD$Bld)\\$ExportLibrary.sym\" --ignore_export_dir\n"
+			);
+		}
+		main::Output(
+			"\t\$(CW$Bld) -c \"\$(EPOCBLD$Bld)\\$gen_src_file.cpp\" -o \"\$(EPOCBLD$Bld)\\$gen_src_file.o\"\n",
+		);
+	}
+
+#	Perform the final link step
+	&main::Output(
+		"\t$MWLD "
+	);
+	if ($BasicTrgType=~/^LIB$/o) {
+		&main::Output(
+			"-library "
+		);
+
+		&main::Output( "-l $stdcpp_tag_path ") if ($add_stdcpp_tag);
+	}
+	
+	if($NamedSymLkup){
+#	Final linking and cleanup
+		main::Output(
+		"\$(LINK_FLAGS$Bld) -l \$(EPOCBLD$Bld) -search \$(notdir \$(LINK_OBJS$Bld))",
+		" \"\$(EPOCBLD$Bld)\\$gen_src_file.o\"\n",
+		"\t\$(ERASE) \"\$(EPOCBLD$Bld)\\$gen_src_file.cpp\"\n",
+		"\t\$(ERASE) \"\$(EPOCBLD$Bld)\\$gen_src_file.o\"\n",
+		"\t\$(ERASE) \"\$(EPOCBLD$Bld)\\$ExportLibrary.sym\"\n",
+		"\t\$(ERASE) \"\$(EPOCBLD$Bld)\\$Trg.map\"\n",
+		"\t\$(ERASE) \"\$(EPOCBLD$Bld)\\$Trg\"\n",
+		);
+	}
+	else {
+		&main::Output(
+			"\$(LINK_FLAGS$Bld) -l \$(EPOCBLD$Bld) -search \$(notdir \$(LINK_OBJS$Bld))\n",
+		);
+	}
+	
+	
+	if (&main::Plat eq 'TOOLS') {
+		&main::Output(
+			"\tcopy \"BLDTRGPATH$Trg\" \"",&main::EPOCToolsPath,"$Trg\"\n"
+		);
+	}
+	if (&Winutl_CopyForStaticLinkage) {
+		&Generic_MakeWorkDir("MAKEWORK$Bld", "\$(EPOCTRG$Bld)");
+		&main::Output(
+			"\n",
+			&Generic_Quote("\$(EPOCTRG$Bld)\\$Trg"), " : ", 
+			&Generic_Quote("$BLDTRGPATH$Trg"), "\n",
+			"\t", &Generic_CopyAction(),
+		);
+	}
+
+	&main::Output(
+		"\n",
+		"\n"
+	);
+}
+
+sub PMStartSrcList {
+
+	&main::Output(
+		"# SOURCES\n",
+		"\n"
+	);
+}
+
+sub PMBitMapBld {
+
+	&Generic_BitMapBld;
+
+	# Need to copy generic resource into emulated Z drive
+
+	my $BitMapRef=&main::BitMapRef;
+
+	my $ChopTrgPath="";
+	if ($$BitMapRef{TrgPath}) {
+		$ChopTrgPath.="\\$$BitMapRef{TrgPath}";
+		chop $ChopTrgPath;
+	}
+
+	my @BldList=&main::BldList;
+	my $Bld;
+	foreach $Bld (@BldList) {
+		my $path="\$(EPOCTRG$Bld)$ChopTrgPath";
+		&main::Output(
+			&Generic_Quote("$path\\$$BitMapRef{Trg}"), " : ", 
+			&Generic_Quote("$$BitMapRef{GenericTrg}"), "\n",
+			"\t", &Generic_CopyAction(),
+			"\n"
+		);
+	}
+}
+
+sub PMResrcBld {
+
+	&Generic_ResrcBld;
+
+	# Need to copy generic resource into emulated Z drive
+
+	my $ResourceRef=&main::ResourceRef;
+	my @BldList=&main::BldList;
+
+	foreach my $Bld (@BldList) 
+	{
+		if(! defined $$ResourceRef{Hdronly})
+		{
+			&main::Output(
+				&Generic_Quote("\$(EPOCTRG$Bld)\\$$ResourceRef{Trg}"), " : ", 
+				&Generic_Quote("$$ResourceRef{GenericTrg}"), "\n",
+				"\t", &Generic_CopyAction(),
+				"\n"
+			);
+		}
+	}
+}
+
+sub PMAifBld {
+
+	&Generic_AifBld;
+
+	# Need to copy generic resource into emulated Z drive
+
+	my $AifRef=&main::AifRef;
+	my $TrgDir="";
+	if (&Generic_Definition("TRGDIR") ne "") {
+		$TrgDir="\\\$(TRGDIR)";
+	}
+
+	my @BldList=&main::BldList;
+	my $Bld;
+	foreach $Bld (@BldList) {
+		my $path="\$(EPOCTRG$Bld)$TrgDir";
+		&main::Output(
+			&Generic_Quote("$path\\$$AifRef{Trg}"), " : ",
+			&Generic_Quote("$$AifRef{GenericTrg}"), "\n",
+			"\t", &Generic_CopyAction(),
+			"\n"
+		);
+	}
+}
+
+
+sub PMStartSrc {
+	my $Src=&main::Src;
+
+	&main::Output(
+		"# Source $Src\n",
+		"\n"
+	);
+}
+
+sub PMSrcDepend {
+	my @BldList=&main::BldList;	
+	my @DepList=&main::DepList;
+	my $BaseSrc=&main::BaseSrc;
+	$BaseSrc =~ s/\.UID/_UID_/i if ($BaseSrc eq $uidfile);
+
+	return if (@DepList == 0);
+
+	foreach (@BldList) {
+		&main::Output(
+			&Generic_Quote("\$(EPOCBLD$_)\\$BaseSrc.o"), " \\\n",
+		);
+	}
+	&main::Output(
+		":"
+	);
+	foreach (@DepList) {
+		&main::Output(
+		" \\\n\t", &Generic_Quote($_)
+		);
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+}
+
+sub PMSrcBldDepend {
+	my $Bld=&main::Bld;
+	my @DepList=&main::DepList;
+	my $BaseSrc=&main::BaseSrc;
+	$BaseSrc =~ s/\.UID/_UID_/i if ($BaseSrc eq $uidfile);
+
+	return if (@DepList == 0);
+
+	&main::Output(
+		&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.o"), " :",
+	);
+	foreach (@DepList) {
+		&main::Output(
+			" \\\n\t", &Generic_Quote($_)
+		);
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+}
+
+sub PMEndSrcBld {
+	my $BaseSrc=&main::BaseSrc;
+	$BaseSrc =~ s/\.UID/_UID_/i if ($BaseSrc eq $uidfile);
+	my $Bld=&main::Bld;
+	my $Plat=&main::Plat;
+	my $Src=&main::Src;
+	my $SrcPath=&main::SrcPath;
+	my $Ext=&main::ExtSrc;
+	my $Cia = (lc($Ext) eq '.cia') ? 1 : 0;
+	my $TrgType=&main::TrgType;
+	# Get the information regarding supporting Compiler Wrapper Option
+	my $IsCompilerWrapperOption=&main::CompilerWrapperOption();
+
+	if ($Cia) {
+		&main::Output(
+			&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc\_.o"), " : ",
+			&Generic_Quote("$SrcPath$Src"), "\n",
+			"\techo $Src\n",
+			"\t\$(CW$Bld) -lang c++ -o \"\$\@\" -c \"$SrcPath$Src\"\n",
+			"\n",
+#			assembler listing target - uses implicit rule to do disassembly
+			"LISTING$Bld$BaseSrc\_ : ", &Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc\_.lis"), "\n",
+			"\t", &Generic_CopyAction("$SrcPath$BaseSrc\_.$Plat.lst"),
+			"\n"
+		);
+	} else {
+		&main::Output(
+			&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.o"), " : ",
+			&Generic_Quote("$SrcPath$Src"), "\n",
+			"\techo $Src\n",
+			"\t\$(CW$Bld) -o \"\$\@\" -c \"$SrcPath$Src\" "
+		);
+		# When building for OE target type and source file is of C++ type, 
+ 		# then pass macro "__wchar_t_defined" to indicate that datatype "wchar_t" is enabled.
+ 		if ( StdCppTarget() || $TrgType =~ /^(STDEXE|STDDLL|STDLIB)$/io ) 
+ 		{			
+ 			if (lc($Ext) =~ /^(.cpp|.cc|.cxx|.c\+\+)$/)
+ 			{
+ 				&main::Output(
+ 					" -d \"__wchar_t_defined\" "					
+ 				);			
+ 			}
+ 		}
+ 		&main::Output(
+   			"\n",
+ 			"\n"
+ 		);
+		&main::Output(
+#			assembler listing target - uses implicit rule to do disassembly
+			"LISTING$Bld$BaseSrc : ", &Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.lis"), "\n",
+			"\t", &Generic_CopyAction("$SrcPath$BaseSrc.$Plat.lst"),
+			"\n"
+		);
+
+		# Output files if Compiler Wrapper Option is specified
+		if($IsCompilerWrapperOption)
+		{
+			my $Platcmpwrap=&main::Plat;
+			&main::Output(
+				"COMPWRAP$Bld$BaseSrc : ",
+				&Generic_Quote("$SrcPath$Src"), "\n",
+				"\techo Analysing $Src\n",
+				"\t\$(COMPWRAP) \$(CW$Bld) -o \"\$\@\" -c \"$SrcPath$Src\" ",
+				"\n\n"
+			);
+
+		}
+	}
+}
+
+sub PMEndSrc {
+
+	&main::Output(
+		"\n",
+		"\n"
+	);
+}
+
+sub PMEndSrcList {
+
+	my $show_options = "source";
+	$show_options = "source,unmangled,comments" if ($MWLD =~ /mwldsym2.exe/);
+	
+	&main::Output(
+		"\n",
+		"# Implicit rule for generating .lis files\n",
+		"\n",
+		".SUFFIXES : .lis .o\n",
+		"\n",
+		".o.lis:\n",
+		"\t$MWLD -S -show $show_options \$< -o \$\@\n",
+		"\n",
+		"\n"
+	);
+
+	if ($Win32Resrc) {
+		my @BldList=&main::BldList;
+		my @DepList=&main::Deps_GenDependsL($Win32Resrc);
+
+		&main::Output(
+			"# Win32 Resource $Win32Resrc\n",
+			"\n",
+			"DEPEND="
+		);
+		foreach (@DepList) {
+			&main::Output(
+				" \\\n\t", &Generic_Quote($_)
+			);
+		}
+		&main::Output(
+			"\n",
+			"\n"
+		);
+	
+		my $Bld;
+		my $resbase=&main::Path_Split('Base',$Win32Resrc);
+		my $respath=&main::Path_Chop(&main::Path_Split('Path',$Win32Resrc));
+		foreach $Bld (@BldList) {
+			&main::Output(
+				&Generic_Quote("\$(EPOCBLD$Bld)\\$resbase.res"), " : ",
+				&Generic_Quote($Win32Resrc), " \$(DEPEND)\n",
+				"\tmwwinrc -o \$\@ \"$Win32Resrc\"\n",
+				"\n"
+			);
+		}
+		&main::Output(
+			"\n",
+			"\n"
+		);
+	}
+
+	# Deal with accumulated MAKEDIRS etc.
+
+	&Generic_End;
+}
+
+sub StdCppTarget() {
+    
+    # STDCPP is supported
+    return 0 if (! main::StdCppSupport());
+    
+	if ( main::NoStdCpp()) { # MMP keyword NOSTDCPP set
+		return 0;
+	}
+	
+	if ( main::StdCpp() ) { # MMP keyword STDCPP set.
+		return 1;
+	}
+	else {
+		return ( main::TrgType() =~ /^(STDEXE|STDDLL|STDLIB)$/io );
+	}
+}
+
+
+1;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/platform/cl_edg.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,496 @@
+# Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Cl_edg;
+# 
+#
+
+package Cl_edg;
+
+require Exporter;
+@ISA=qw(Exporter);
+@EXPORT=qw(
+	PMHelp_Mmp
+	PMStartBldList
+	PMBld
+	PMStartSrcList
+	PMStartSrc
+	PMSrcDepend
+	PMSrcBldDepend
+	PMEndSrcBld
+	PMEndSrc
+	PMEndSrcList
+);
+use cl_generic;
+use Genutl;
+use File::Path;
+use Cwd;
+
+sub PMHelp_Mmp {
+	print "// No additional keywords for this platform\n";
+}
+
+my $epocroot = $ENV{EPOCROOT};
+$epocroot=~ s-\\$--;            # chop trailing \\
+my $Makecmd;
+sub PMStartBldList($) {
+	($Makecmd) = @_;
+	my $BasicTrgType=&main::BasicTrgType;
+	my @BldList=&main::BldList;
+	my @ChopRTWSysIncPaths=&main::Path_Chop(&main::Path_RltToWork(&main::SysIncPaths)); # old style
+	my @ChopRTWUserIncPaths=&main::Path_Chop(&main::Path_RltToWork(&main::UserIncPaths)); # old style
+	my $RelPath="$epocroot\\EPOC32\\RELEASE";
+	my $RPath = &main::Path_RltToWork($RelPath);
+	my @MacroList=&main::MacroList();
+	my $VariantFile=&main::VariantFile();
+	my $Trg=&main::Trg;
+	my $DPath = &main::Path_RltToWork($epocroot);
+	my $DefFile = &main::DefFile;
+	my $EABIDefFile = &main::EABIDef;
+    
+    my $EdgSysIncludeList = "Edg_sysinc_list.txt";
+    my $EdgUserIncludeList = "Edg_userinc_list.txt";
+    my $EdgUdebReportList = "Edg_udeb_rep_list.txt";
+    my $EdgUrelReportList = "Edg_urel_rep_list.txt";
+
+	&Generic_Header(0,$Makecmd);	# define standard things using relative paths
+
+	# EDG report file generation
+	
+	&main::Output(
+		"GXPTRGUDEB = $RPath\\EDG\\UDEB\n",
+		"GXPTRGUREL = $RPath\\EDG\\UREL\n\n",
+		"DEFFILE = $DefFile\n\n",
+        "EABIDEFFILE = $EABIDefFile\n\n",
+		"EDG_SYSINC_LIST=\${EPOCBLD}\\..\\..\\", $EdgSysIncludeList,
+		"\n",
+		"EDG_USERINC_LIST=\${EPOCBLD}\\..\\..\\", $EdgUserIncludeList,
+		"\n",
+		"EDG_UREL_REP_LIST=\${EPOCBLD}\\..\\..\\",$EdgUrelReportList,
+		"\n",
+		"EDG_UDEB_REP_LIST=\${EPOCBLD}\\..\\..\\", $EdgUdebReportList,
+		"\n\n"
+	);
+
+	&main::Output(
+		"INCDIR ="
+	);
+	
+
+	foreach (@ChopRTWUserIncPaths) {
+		&main::Output(
+			" --include_directory \"$_\""
+		);
+	}
+
+	&main::Output(
+		"\n"
+	);
+
+
+	&main::Output(
+		"SYSINCDIR ="
+	);
+
+	foreach (@ChopRTWSysIncPaths) {
+	     &main::Output(
+			" --sys_include \"$_\"",
+	     );
+	}
+
+	&main::Output(
+		"\n",
+		"\n"
+	);
+	
+
+	my $preinclude =   "--preinclude \$(EPOCINC)\\edg\\edg3_7_rvct2_2.h";#this is the variant line you must change to "simulate" another compiler.
+	&main::Output( 
+		"GCCFLAGS = --wchar_t_keyword --no_code_gen --exceptions --no_warnings",
+		" ${preinclude}",
+		"\n"
+	);
+
+	&main::Output(
+		"GCCDEFS = -D __MARM_THUMB__ -D __MARM_INTERWORK__ -D __ARMCC__ -D __EPOC32__ -D __MARM__ -D __EABI__ -D __ARMCC_2__ -D __ARMCC_2_2__ -D __SUPPORT_CPP_EXCEPTIONS__  -D IMPORT_C= -D EXPORT_C= -D __softfp="
+	);
+	foreach(@MacroList) {
+		&main::Output(
+			" -D $_"
+		);
+	}
+	if($VariantFile){
+	    &main::Output(" -D __PRODUCT_INCLUDE__=\\\"${VariantFile}\\\"");
+	}
+	&main::Output(
+		" \$(USERDEFS)\n",
+		"\n"
+	);
+
+	foreach (@BldList) {
+		&main::Output(
+			"GCC$_ = cpfe"
+		);
+		
+		&main::Output(
+			' $(GCCFLAGS)'
+		);
+		foreach (&main::MacroList($_)) {
+			&main::Output(
+				" -D $_"
+			);
+		}
+                
+		&main::Output(
+			" \$(GCCDEFS)\n"
+		);
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+	
+	&main::Output(
+			"LIBRARY:\n",
+			"\t\@echo Nothing to do\n"
+	);
+
+	&main::Output(
+		"RESOURCEUREL:\n",
+		"\t\@echo Nothing to do\n"
+	);
+
+	&main::Output(
+		"RESOURCEUDEB:\n",
+		"\t\@echo Nothing to do\n\n\n"
+	);
+
+	foreach (@BldList) {
+		&main::Output(
+			"$_ :"
+		);
+
+		if ($BasicTrgType !~ /IMPLIB/io) {
+			my $TrgBase = &main::Path_Split('base',$Trg);           
+			&main::Output (
+			" \\\n\t",
+			&Generic_Quote("\$(GXPTRG$_)\\$TrgBase.gxp")
+			);
+		}
+		&main::Output(
+			"\n",
+			"\n"
+		);
+	}
+}
+	
+sub PMBld {
+	my @ASSPLibList=&main::ASSPLibList;
+	my @SrcList=&main::SrcList;
+	my $BaseTrg=&main::BaseTrg;
+	my $Bld=&main::Bld;
+	my $ChopBldPath=&main::Path_Chop(&main::BldPath);
+	my $EPOCIncPath=&main::EPOCIncPath;
+	my $BasicTrgType=&main::BasicTrgType;
+	my $ChopRelPath=&main::Path_Chop(&main::RelPath);
+	my $RelPath=&main::RelPath;
+	my $Trg=&main::Trg;
+	my $TrgType=&main::TrgType;
+	my @UidList=&main::UidList;
+	# DefFile
+	my $DefFile = &main::DefFile;
+	# EABIDefFile
+	my $EABIDefFile = &main::EABIDef;
+
+	# REAL TARGETS
+	#-------------
+	&main::Output(
+		"# REAL TARGET - BUILD VARIANT $Bld\n",
+		"\n"
+	);
+
+	&main::Output(
+		"WHAT$Bld : WHATGENERIC\n",
+		"\n",
+		"CLEAN$Bld : CLEANBUILD$Bld CLEANRELEASE$Bld\n",
+		"\n",
+		"CLEANBUILD$Bld : \n",
+		"\t\@perl -S ermdir.pl \"\$(EPOCBLD$Bld)\"\n",
+		"\n",
+		"CLEANRELEASE$Bld : CLEANGENERIC CLEANEDGTEMPFILES$Bld\n",
+		"\n"
+	);
+
+	&main::Output("CLEANEDGTEMPFILES$Bld :\n",
+			"\t\-\$(ERASE) \$(EDG_SYSINC_LIST) ",
+			"\$(EDG_USERINC_LIST) ",
+			"\$(EDG_${Bld}_REP_LIST) "
+			);
+
+	my @releaseables;
+	&Generic_WhatCleanTargets($Bld, "WHAT$Bld", "CLEANRELEASE$Bld", @releaseables);
+	&Generic_MakeWorkDir("MAKEWORK$Bld",$ChopBldPath);
+	&Generic_MakeWorkDir("MAKEWORK$Bld",$ChopRelPath);
+
+	&main::Output(
+		"\n",
+		"\n"
+	);
+
+	# XML Stuff
+	&main::Output(
+				&Generic_Quote("\$(GXPTRG$Bld)\\$BaseTrg.gxp"), " : ",
+				&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseTrg.gxp"),
+	);
+	my @ChopRTWSysIncPaths=&main::Path_Chop(&main::Path_RltToWork(&main::SysIncPaths)); # old style
+	foreach my $incPath (@ChopRTWSysIncPaths) {
+	&main::Output(
+		"\n\t\@echo $incPath >> \$(EDG_SYSINC_LIST)",
+		);
+	}
+	
+	my @ChopRTWUserIncPaths=&main::Path_Chop(&main::Path_RltToWork(&main::UserIncPaths)); # old style
+	foreach my $incPath (@ChopRTWUserIncPaths) {
+	&main::Output(
+		"\n\t\@echo $incPath >> \$(EDG_USERINC_LIST)",
+		);
+	}
+
+	&main::Output(
+		"\n",
+		"\n"
+	);
+        
+	# TARGET *.GXP
+	#------------
+	if (scalar @SrcList >150) {
+		# deal with very long lists by splitting them into 150 file pieces, which allows
+		# about 200 bytes per filename if the underlying max size is 32K
+		#
+        
+		my $counter1=150;	# i.e. trigger new variable immediately
+		my $counter2=0;
+		my @objvarlist=();
+		foreach (@SrcList) {
+			if ($counter1==150) {
+				$counter1=0;
+				$counter2++;
+				my $objvar = "OBJECTS$Bld$counter2";
+				push @objvarlist, " \$($objvar)";
+				&main::Output(
+					"\n",
+					"$objvar="
+				);
+			}
+			my $BaseSrc = &main::Path_Split('Base', $_);
+			my $Ext = &main::Path_Split('Ext', $_);
+                        next if (lc($Ext) eq '.cia');
+			&main::Output(
+				" \\\n\t", &Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc$Ext.aut")
+			);
+			$counter1++;
+		}
+		
+        &main::Output(
+			"\n\n"
+		);
+	} else {
+		# shorter lists remain unchanged
+		#
+		&main::Output(
+			"OBJECTS$Bld="
+		);
+                foreach (@SrcList) {
+			my $BaseSource = &main::Path_Split('Base', $_);
+			my $Ext = &main::Path_Split('Ext', $_);
+                        next if (lc($Ext) eq '.cia');
+			&main::Output(
+			" \\\n\t", &Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSource$Ext.aut")
+			);  
+		}       
+		
+		&main::Output(
+			"\n",
+			"\n"
+		);
+
+		&main::Output("RESOURCEINFO$Bld=");
+		&main::Output("\n\n");
+		
+		&main::Output(
+            
+			&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseTrg.gxp"), " : \$(OBJECTS$Bld) \$(EABIDEFFILE) \$(RESOURCEINFO$Bld)\n",
+			"\n\n"
+		);
+	}
+}
+
+
+sub PMStartSrcList {
+
+	&main::Output(
+		"# SOURCES\n",
+		"\n"
+	);
+}
+
+sub PMStartSrc {
+	my $Src=&main::Src;
+
+	&main::Output(
+		"# Source $Src\n",
+		"\n"
+	);
+}
+
+sub PMSrcDepend {
+	my @BldList=&main::BldList;	
+	my @DepList=&main::DepList;
+	my $BaseSrc=&main::BaseSrc;
+	my $ExtSrc=&main::ExtSrc;
+	my $cia = (lc($ExtSrc) eq '.cia') ? "_" : "";
+
+	return if (@DepList == 0);
+
+	foreach (@BldList) {
+		&main::Output(
+			&Generic_Quote("\$(EPOCBLD$_)\\$BaseSrc$cia.lis"), " ",
+			&Generic_Quote("\$(EPOCBLD$_)\\$BaseSrc$cia.aut"), " \\\n",
+		);
+	}
+	&main::Output(
+		":"
+	);
+	foreach (@DepList) {
+		&main::Output(
+		" \\\n\t", &Generic_Quote($_)
+		);
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+}
+
+sub PMSrcBldDepend {
+	my $Bld=&main::Bld;
+	my @DepList=&main::DepList;
+	my $BaseSrc=&main::BaseSrc;
+	my $ExtSrc=&main::ExtSrc;
+    my $cia = (lc($ExtSrc) eq '.cia') ? "" : "";
+
+	return if (@DepList == 0);
+
+	&main::Output(
+		&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc$cia.lis"), " ",
+		&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc$cia.aut"), " :",
+	);
+	foreach (@DepList) {
+		&main::Output(
+			" \\\n\t", &Generic_Quote($_)
+		);
+	}
+	&main::Output( 
+		"\n",
+		"\n"
+	);
+}
+
+my %sources;
+
+sub PMEndSrcBld {
+	my $ABI=&main::ABI;
+	my $BaseSrc=&main::BaseSrc;
+	my $Bld=&main::Bld;
+	my $Src=ucfirst lc &main::Src;
+	my $SrcPath=&main::SrcPath;
+	my $Ext = &main::Path_Split('Ext', $Src);
+	my $Cia = (lc($Ext) eq '.cia') ? 1 : 0;
+
+	my $RTWSrcPath=&main::Path_Chop(&main::Path_RltToWork($SrcPath));
+
+	# add source path, source file and build type to hashmap. 
+    $sources{$SrcPath}{$Src}{$Bld}=1;
+   
+	# Use GCC trick to get assembler source files preprocessed with CPP
+	$Src =~ s/\.s$/.S/i;
+
+	@browser = ();
+	my $EdgReportFile = "\$(EDG_UREL_REP_LIST)";
+	if($Bld =~ /udeb/i){
+		$EdgReportFile = "\$(EDG_UDEB_REP_LIST)";
+	}
+
+	if ($Cia) {
+		&main::Output(
+			&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc\_.aut"), " : ",
+			&Generic_Quote("$SrcPath$Src"), "\n",
+			"\t\$(GCC$Bld) -D __CIA__ --include_directory \"$RTWSrcPath\" \$(INCDIR) --xref \"\$\@\" \"$RTWSrcPath\\$Src\"\n",
+		"\t\@echo \"\$\<\" >> $EdgReportFile\n",
+		"\n");
+	} else {
+		
+                my $BldPath=&main::BldPath;
+                my $EdgReportFilePath=UpDir(UpDir(UpDir($BldPath)));
+		
+		&main::Output(
+			&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc$Ext.aut"), " : ",
+			&Generic_Quote("$SrcPath$Src"), "\n",
+			"\t\$(GCC$Bld) --include_directory \"$RTWSrcPath\" \$(INCDIR) \$(SYSINCDIR) --xref \"\$\@\" \"$RTWSrcPath\\$Src\"\n",
+			"\t\@echo \$(EPOCBLD$Bld)\\$BaseSrc$Ext.aut >> $EdgReportFile\n",
+			"\n"
+		);
+
+		foreach $browser (@browser)
+		{
+		 print "$browser\n";
+		}
+	}
+}
+
+sub PMEndSrc {
+	&main::Output(
+		"\n",
+		"\n"
+	);
+}
+
+sub PMEndSrcList {
+		&Generic_End;
+}
+
+
+
+sub UpDir($)
+	{
+	my ($aPath) = @_;
+
+	my $lastChar = substr($aPath,-1);
+	my $end = length($aPath)-1;
+
+	if ( ($lastChar eq '\\') || ($lastChar eq '/') )
+		{
+		$end -= 1;
+		}
+
+	my $last = rindex($aPath,'\\',$end);
+	if ( (rindex($aPath,'/',$end)>$last) | ($last == -1) )
+		{ $last = rindex($aPath,'/',$end); }
+
+	if ($last == -1)
+		{ return ""; }
+	else
+		{ return substr($aPath,0,$last).'/'; }
+	}
+
+1;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/platform/cl_gcc.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,1214 @@
+# Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+
+package Cl_gcc;
+
+my $GccPrefix='';
+my $ToolPrefix='';
+my $HelperLib='';
+my %PlatOpt=(
+	'Dlltool'=>'',
+	'Entry'=>'-e',
+	'Gcc'=>'',
+	'Ld'=>'',
+	'Petran'=>'',
+	'Optimize'=>'-O'
+);
+my $Dlltool;
+my $Archive;
+my $Link;
+my $Objcopy;
+
+require Exporter;
+@ISA=qw(Exporter);
+@EXPORT=qw(
+	PMHelp_Mmp
+
+	PMPlatProcessMmp
+
+	PMUnderlyingABI
+
+	PMStartBldList
+		PMBld
+	PMStartSrcList
+		PMBitMapBld
+		PMResrcBld
+		PMAifBld
+		PMStartSrc
+		PMSrcDepend
+			PMSrcBldDepend
+			PMEndSrcBld
+		PMEndSrc
+	PMEndSrcList
+);
+
+use strict;
+use cl_generic;
+use Genutl;
+
+use constant NOCOMPRESSIONMETHOD => 0;
+use constant INFLATECOMPRESSIONMETHOD => 1;
+use constant BYTEPAIRCOMPRESSIONMETHOD => 2;
+
+use constant NOTPAGED => 0;
+use constant UNPAGED => 1;
+use constant PAGED => 2;
+sub PMHelp_Mmp {
+	print "// No additional keywords for this platform\n";
+}
+
+sub PMPlatProcessMmp (@) {
+	my $MMPFILE=&main::MmpFile;
+
+	# set up START MARM ... END block module variables
+	my @MmpWarn=();
+	my $Line;
+	LINE: foreach $Line (@_) {
+		my $LineInfo=shift @$Line;
+		$_=shift @$Line;
+		push @MmpWarn, "$LineInfo : Unrecognised Keyword \"$_\"\n";
+	}
+
+	undef $Line;
+	if (@MmpWarn) {
+		warn
+			"\nMMPFILE \"$MMPFILE\"\n",
+			"START .. END BLOCK WARNINGS(S)\n",
+			@MmpWarn,
+			"\n"
+		;
+	}
+	undef @MmpWarn;
+}
+
+sub SystemTarget() {
+	return 1 if &main::SystemTrg;
+	my $ExportLibrary=&main::ExportLibrary;
+	# N.B. should get better way to detect kernel probably!!
+	return 1 if ($ExportLibrary =~ /EKERN/i);
+	
+	return 0;
+}
+
+my %CompatibleABIs=(
+	ARMI=>['ARM4', 'THUMB'],
+	ARM4=>['ARMI'],
+	THUMB=>['ARMI']
+);
+my @CompatibleABIs;
+sub PMUnderlyingABI($) {
+	my ($ABI) = @_;
+	if ($ABI eq 'ARM4T') {
+		if (&main::BuildAsARM) {
+			return 'ARMI';
+		}
+		elsif (SystemTarget()) {
+			return 'ARM4';
+		}
+		else {
+			return 'THUMB';
+		}
+	}
+	return $ABI;
+}
+
+my $Makecmd;
+my %ABILibPath=();
+sub PMStartBldList($) {
+	($Makecmd) = @_;
+	my $ABI=&main::ABI;
+	my $UnderlyingABI=PMUnderlyingABI($ABI);
+	my $BaseTrg=&main::BaseTrg;
+	my $BasicTrgType=&main::BasicTrgType;
+	my @BldList=&main::BldList;
+	my @ChopRTWSysIncPaths=&main::Path_Chop(&main::Path_RltToWork(&main::SysIncPaths));
+	my @ChopRTWUserIncPaths=&main::Path_Chop(&main::Path_RltToWork(&main::UserIncPaths));
+	my $DefFile=&main::DefFile;
+	my $EPOCPath=&main::EPOCPath;
+	my $LinkAs=&main::LinkAs;
+	my $LibPath=&main::LibPath;
+	my @MacroList=&main::MacroList();
+	my $VariantFile=&main::VariantFile();
+	my $Plat=&main::Plat;
+	my $Trg=&main::Trg;
+	my $TrgType=&main::TrgType;
+	my @UidList=&main::UidList;	
+	my $WarningLevel=&main::CompilerOption("GCC");
+	my $ExportLibrary=&main::ExportLibrary;
+	my $NoExportLibrary=&main::NoExportLibrary;
+	my $SystemTrg = SystemTarget();
+	my %Version = &main::Version();
+	my $ExtraExportLibrary;
+	my $PrimaryExportLibrary = $ExportLibrary;
+	unless ($Version{explicit}) {
+		$ExtraExportLibrary = $ExportLibrary;
+		$ExtraExportLibrary =~ s/\{(\d|a|b|c|d|e|f){8}\}//i;
+		$PrimaryExportLibrary = $ExtraExportLibrary;
+	}
+
+#	set up LinkAs
+	$UidList[2]=~/^0x(.*)$/o;
+	if ($1 ne '00000000') { # have to make sure than series of noughts in brackets doesn't appear in name for null uids
+		$LinkAs=join '', &main::Path_Split('Base',$LinkAs),"[$1]",&main::Path_Split('Ext',$LinkAs);
+	}
+
+#	set up dlltool flag hash
+	my %ABIDlltool=(
+		ARMI=>'-m arm_interwork',
+		ARM4=>'-m arm',
+		THUMB=>'-m thumb'
+	);
+
+#	work out the flags for various platforms
+	if ($ABI eq 'ARMI') {
+		$PlatOpt{Gcc}='-march=armv4t -mthumb-interwork';
+		$PlatOpt{Dlltool}=$ABIDlltool{ARMI};
+	}
+	elsif ($ABI eq 'ARM4T') {
+		if (&main::BuildAsARM) {
+			$PlatOpt{Gcc}='-march=armv4t -mthumb-interwork';
+			$PlatOpt{Dlltool}=$ABIDlltool{ARMI};
+		}
+		elsif ($SystemTrg) {
+			$PlatOpt{Gcc}='-march=armv4';
+#			allow thumb for ARM4 ABI where necessary
+			unless (&main::PlatABI eq 'ARM4') {
+				$PlatOpt{Gcc}.='t';
+			}
+			$PlatOpt{Dlltool}=$ABIDlltool{ARM4};
+		}
+		else {
+			$GccPrefix='thumb-epoc-pe-';
+			$PlatOpt{Gcc}='-mthumb-interwork -D__MARM_THUMB__';
+			$PlatOpt{Dlltool}=$ABIDlltool{THUMB};
+		}
+	}
+	elsif ($ABI eq 'ARM4') {
+		$PlatOpt{Gcc}='-march=armv4';
+#		allow thumb for ARM4 ABI where necessary
+		unless (&main::PlatABI eq 'ARM4') {
+			$PlatOpt{Gcc}.='t';
+		}
+		$PlatOpt{Dlltool}=$ABIDlltool{ARM4};
+	}
+	elsif ($ABI eq 'THUMB') {
+		$GccPrefix='thumb-epoc-pe-';
+		$PlatOpt{Gcc}='-mthumb-interwork';
+		$PlatOpt{Dlltool}=$ABIDlltool{THUMB};
+	}
+	else {
+		&main::FatalError("Platform module - ABI \"$ABI\" unrecognised");
+	}
+	
+	@CompatibleABIs=@{$CompatibleABIs{$UnderlyingABI}};
+
+#	set up CompatibleABI lib path hash
+	foreach (@CompatibleABIs) {
+		$ABILibPath{$_}=&main::Path_Strip("$LibPath..\\$_\\");
+	}
+	my %ABIRTWLibPath=();
+	foreach (@CompatibleABIs) {
+		$ABIRTWLibPath{$_}=&main::Path_RltToWork($ABILibPath{$_});
+	}
+
+	$Dlltool=$ToolPrefix.'dlltool';
+	$Archive=$ToolPrefix.'ar';
+	$Link=$ToolPrefix.'ld';
+	$Objcopy=$ToolPrefix.'objcopy';
+
+	&Generic_Header(1,$Makecmd);	# define standard things using relative paths
+
+#	GCC needs a fully-qualified path
+	if ($ENV{'PATH'} !~ m/[a-zA-z]{1}:{1}.[^;]*epoc32\\gcc\\bin/i) {
+		if ($Makecmd eq "nmake") {
+			&main::Output(
+				"\n",
+				"PATH=",&main::Path_Drive,$EPOCPath,"gcc\\bin;\$(PATH)\n",
+				"\n"
+			);
+		}
+		else {
+			&main::Output(
+				"\n",
+				"# must set both PATH and Path to make it work correctly\n",
+				"Path:=",&main::Path_Drive,$EPOCPath,"gcc\\bin;\$(Path)\n",
+				"PATH:=\$(Path)\n",
+				"\n"
+			);
+		}
+	}
+
+	&main::Output(
+		"INCDIR  ="
+	);
+
+	foreach (@ChopRTWUserIncPaths) {
+		&main::Output(
+			" -I \"$_\""
+		);
+	}
+	foreach (@ChopRTWSysIncPaths) {
+		&main::Output(
+			" -I \"$_\""
+		);
+	}
+	if($VariantFile){
+	    # gcc needs a relativ path
+	    $VariantFile = &main::Path_RltToWork($VariantFile);
+	    &main::Output("\\\n  -include \"$VariantFile\"");
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+
+	&main::Output(
+		"GCCFLAGS=$PlatOpt{Gcc} \\\n",
+		"\t\t-pipe -c -nostdinc -Wall -Wno-ctor-dtor-privacy -Wno-unknown-pragmas $WarningLevel\n",
+		"\n"
+	);
+
+	&main::Output(
+		"GCCDEFS ="
+	);
+	foreach(@MacroList) {
+		&main::Output(
+			" -D$_"
+		);
+	}
+	&main::Output(
+		" \$(USERDEFS)\n",
+		"\n"
+	);
+
+	foreach (@BldList) {
+		&main::Output(
+			"GCC$_ = ${GccPrefix}gcc"
+		);
+		if (/REL$/o) {
+			&main::Output(
+				      ' -s -fomit-frame-pointer ',
+				      $PlatOpt{Optimize}
+			);
+		}
+		elsif (/DEB$/o) {
+			&main::Output(
+				' -g'
+			);
+			unless (&main::SrcDbg) {
+			    &main::Output(
+			    	' ', $PlatOpt{Optimize}
+			    );
+			}
+		}
+		&main::Output(
+			' $(GCCFLAGS)'
+		);
+		foreach (&main::MacroList($_)) {
+			&main::Output(
+				" -D$_"
+			);
+		}
+		&main::Output(
+			" \$(GCCDEFS)\n"
+		);
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+	
+	foreach (@BldList) {
+		&main::Output(
+			"$_ :"
+		);
+
+		if ($BasicTrgType !~ /IMPLIB/io) {
+			&main::Output (
+				" \\\n\t",
+				&Generic_Quote("\$(EPOCTRG$_)\\$Trg")
+			);
+		}
+
+#		lib has to come after the main target so that a .DEF file will be generated if the project is not frozen
+		if ($DefFile and not &main::ExportUnfrozen) {
+			&main::Output(
+				" \\\n",
+				"\tLIBRARY\n"
+			);
+		}
+		&main::Output(
+			"\n",
+			"\n"
+		);
+	}
+
+	# Resource building is done entirely via cl_generic.pm
+	
+	foreach (@BldList) {
+		&main::Output(
+			"\n",
+			"RESOURCE$_ : MAKEWORK$_"
+		);
+	}
+	&main::Output(
+		"\n",
+		"\n",
+	);
+
+	&main::Output(
+		"LIBRARY : MAKEWORK"
+	);
+	if ($BasicTrgType=~/^LIB$/o) {
+#		code to ensure that the static libraries for all builds are built at the library stage
+		foreach (@BldList) {
+			&main::Output(
+				" $_"
+			);
+		}
+	}
+	elsif ($DefFile and !$NoExportLibrary) {
+		unless (&main::ExportUnfrozen) {
+			if (-e $DefFile) { # effectively "if project frozen ..."
+				&main::Output(
+					" ", &Generic_Quote("\$(EPOCLIB)\\UREL\\$PrimaryExportLibrary.lib")
+				);
+				foreach (@CompatibleABIs) {
+					&main::Output(
+						" ", &Generic_Quote("$ABILibPath{$_}UREL\\$PrimaryExportLibrary.lib")
+					);
+					&Generic_MakeWorkDir('MAKEWORKLIBRARY',"$ABILibPath{$_}UREL");
+				}
+				&main::Output(
+					"\n"
+				);
+			} else {
+				&main::Output(
+					"\n",
+					"\t\@echo WARNING: Not attempting to create any import libraries.\n",
+					"\t\@echo When exports are frozen in \"$DefFile\", regenerate Makefile.\n"
+				);
+			}
+		}
+		else {
+			&main::Output(
+				"\n",
+				"\t\@echo Not attempting to create \"\$(EPOCLIB)\\UREL\\$PrimaryExportLibrary.lib\"\n",
+				"\t\@echo from frozen .DEF file, since EXPORTUNFROZEN specified.\n"
+			);
+		}
+		&main::Output(
+			"\n",
+			"\n",
+			"# REAL TARGET - LIBRARY\n",
+			"# EPOCBLDP = ", &Generic_Definition('EPOCBLDP'), "\n",
+			"# EPOCLIB = ", &Generic_Definition('EPOCLIB'), "\n",
+		);
+		&main::Output(
+			"\n",
+			&Generic_Quote("\$(EPOCBLDP)\\$ExportLibrary.prep.def"), " : ",
+			&Generic_Quote($DefFile), "\n",
+			"\tperl -S prepdef.pl \$< \$@\n",
+			"\n",
+			&Generic_Quote("\$(EPOCLIB)\\UREL\\$ExportLibrary.lib"), " : ",
+			&Generic_Quote("\$(EPOCBLDP)\\$ExportLibrary.prep.def"), "\n",
+			"\tpushd ".&Generic_Quote("\$(EPOCBLDP)")." && \\\n",
+			"\t$Dlltool $PlatOpt{Dlltool} --output-lib \"$ExportLibrary.tmp.lib\" --def \"$ExportLibrary.prep.def\" --dllname \"$LinkAs\" && popd && move ", &Generic_Quote("\$(EPOCBLDP)\\$ExportLibrary.tmp.lib"), " \$@\n"
+		);
+		if ($ExtraExportLibrary) {
+			&main::Output(
+				"\n",
+				&Generic_Quote("\$(EPOCLIB)\\UREL\\$ExtraExportLibrary.lib"), " : ",
+				&Generic_Quote("\$(EPOCLIB)\\UREL\\$ExportLibrary.lib"), "\n",
+				"\tcopy \$< \$@\n"
+			);
+		}
+		foreach (@CompatibleABIs) {
+			&main::Output(
+				"\n",
+				&Generic_Quote("$ABILibPath{$_}UREL\\$ExportLibrary.lib"), " : ",
+				&Generic_Quote("\$(EPOCBLDP)\\$ExportLibrary.prep.def"), "\n",
+				"\tpushd ".&Generic_Quote("\$(EPOCBLDP)")." && \\\n",
+				"\t$Dlltool $ABIDlltool{$_} --output-lib \"$ExportLibrary.tmp.lib\" \\\n",
+				"\t\t--def \"$ExportLibrary.prep.def\" \\\n",
+				"\t\t--dllname \"$LinkAs\" && popd && move ", &Generic_Quote("\$(EPOCBLDP)\\$ExportLibrary.tmp.lib"), " \$@\n"
+			);
+			if ($ExtraExportLibrary) {
+				&main::Output(
+					"\n",
+					&Generic_Quote("$ABILibPath{$_}UREL\\$ExtraExportLibrary.lib"), " : ",
+					&Generic_Quote("$ABILibPath{$_}UREL\\$ExportLibrary.lib"), "\n",
+					"\tcopy \$< \$@\n"
+				);
+			}
+		}
+	}
+	&main::Output(
+		"\n",
+		"\n",
+		"FREEZE :\n"
+	);
+	if ($DefFile and $BasicTrgType!~/^IMPLIB$/io) {
+		&main::Output(
+#			call perl on the script here so nmake will die if there are errors - this doesn't happen if calling perl in a batch file
+			"\tperl -w -S efreeze.pl \$(EFREEZE_ALLOW_REMOVE) \"$DefFile\" \"\$(EPOCBLDP)\\$ExportLibrary.def\" \n"
+		);
+	}
+	&main::Output(
+		"\n",
+		"CLEANLIBRARY :\n"
+	);
+	if ($DefFile and !$NoExportLibrary) {
+		&main::Output(
+			"\t-\$(ERASE) \"\$(EPOCLIB)\\UREL\\$ExportLibrary.lib\"\n",
+			"\t-\$(ERASE) \"\$(EPOCBLDP)\\$ExportLibrary.prep.def\"\n"
+		);
+		if ($ExtraExportLibrary) {
+			&main::Output(
+				"\t-\$(ERASE) \"\$(EPOCLIB)\\UREL\\$ExtraExportLibrary.lib\"\n"
+			);
+		}
+		foreach (@CompatibleABIs) {
+			&main::Output(
+				"\t-\$(ERASE) \"$ABILibPath{$_}UREL\\$ExportLibrary.lib\"\n"
+			);
+			if ($ExtraExportLibrary) {
+				&main::Output(
+					"\t-\$(ERASE) \"$ABILibPath{$_}UREL\\$ExtraExportLibrary.lib\"\n"
+				);
+			}
+		}
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+	&Generic_MakeWorkDir('MAKEWORKLIBRARY',"${LibPath}UREL");
+
+	&Generic_Releaseables;
+}
+
+
+sub PMBld {
+
+	my @ASSPLibList=&main::ASSPLibList;
+	my @SrcList=&main::SrcList;
+	my $BaseTrg=&main::BaseTrg;
+	my $Bld=&main::Bld;
+	my $ChopBldPath=&main::Path_Chop(&main::BldPath);
+	my $DefFile=&main::DefFile;
+	my $EPOCIncPath=&main::EPOCIncPath;
+	my $FirstLib=&main::FirstLib;
+	my $BasicTrgType=&main::BasicTrgType;
+	my @LibList;
+	my $LibPath=&main::LibPath;
+	my $LinkAs=&main::LinkAs;
+	my $ChopRelPath=&main::Path_Chop(&main::RelPath);
+	my $RelPath=&main::RelPath;
+	my @StatLibList=&main::StatLibList;
+	my $StatLinkPath=&main::StatLinkPath;
+	my $Trg=&main::Trg;
+	my $TrgType=&main::TrgType;
+	my @UidList=&main::UidList;
+	my $ExportLibrary=&main::ExportLibrary;
+	my $NoExportLibrary=&main::NoExportLibrary;
+	my $SystemTrg = SystemTarget();
+	my %Version = &main::Version();
+	my $ExtraExportLibrary;
+	unless ($Version{explicit}) {
+		$ExtraExportLibrary = $ExportLibrary;
+		$ExtraExportLibrary =~ s/\{(\d|a|b|c|d|e|f){8}\}//i;
+	}
+
+	if ($Bld =~ /DEB/) {
+		@LibList = &main::DebugLibList;
+	} else {
+		@LibList = &main::LibList;
+	}
+
+#	set up $LinkAs
+	$UidList[2]=~/^0x(.*)$/o;
+	if ($1 ne '00000000') {	# have to make sure than series of noughts in brackets doesn't appear in name for null uids
+		$LinkAs=join '', &main::Path_Split('Base',$LinkAs),"[$1]",&main::Path_Split('Ext',$LinkAs);
+	}
+
+
+	# REAL TARGETS
+	#-------------
+	&main::Output(
+		"# REAL TARGET - BUILD VARIANT $Bld\n",
+		"\n"
+	);
+
+#	releasables
+	my @releaseables;
+	
+
+	push @releaseables, "$RelPath$Trg" if ($BasicTrgType!~/^IMPLIB$/io);
+	if ($BasicTrgType=~/^(DLL|EXE)$/o) {
+		push @releaseables, "$RelPath$Trg.MAP";
+	}
+	if (-e $DefFile and !$NoExportLibrary) { # effectively "if project frozen ..."
+		push @releaseables, "$LibPath$ExportLibrary.lib";
+		push @releaseables, "$LibPath$ExtraExportLibrary.lib" if ($ExtraExportLibrary);
+		foreach (@CompatibleABIs) {
+			push @releaseables, "$ABILibPath{$_}UREL\\$ExportLibrary.lib";
+			push @releaseables, "$ABILibPath{$_}UREL\\$ExtraExportLibrary.lib" if ($ExtraExportLibrary);
+		}
+	}
+
+	&main::Output(
+		"WHAT$Bld : WHATGENERIC\n",
+		"\n",
+		"CLEAN$Bld : CLEANBUILD$Bld CLEANRELEASE$Bld\n",
+		"\n",
+		"CLEANBUILD$Bld : \n",
+		"\t\@perl -w -S ermdir.pl \"\$(EPOCBLDP$Bld)\"\n",
+		"\n",
+		"CLEANRELEASE$Bld : CLEANGENERIC\n",
+		"\n"
+	);
+	&Generic_WhatCleanTargets($Bld, "WHAT$Bld", "CLEANRELEASE$Bld", @releaseables);
+
+	&Generic_MakeWorkDir("MAKEWORK$Bld",$ChopBldPath);
+	if (defined $ENV{PBUILDPID}) {
+		my $ChopBldPPath = $ChopBldPath;
+		$ChopBldPPath =~ s/(.*)\\(\w+)\\$Bld$/$1\\$2\$\(PBUILDPID\)\\$Bld/i;
+		&Generic_MakeWorkDir("MAKEWORK$Bld",$ChopBldPPath);
+	}
+	&Generic_MakeWorkDir("MAKEWORK$Bld",$ChopRelPath);
+
+	return if ($BasicTrgType=~/^IMPLIB$/io);
+
+	&main::Output(
+		"LISTING$Bld : MAKEWORK$Bld"
+	);
+	foreach (@SrcList) {
+		my $BaseSrc = &main::Path_Split('Base', $_);
+		my $Ext = &main::Path_Split('Ext', $_);
+		$BaseSrc.='_' if (lc($Ext) eq '.cia');
+   		&main::Output(
+			" \\\n\tLISTING$Bld$BaseSrc"
+   		);
+   	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+
+	&main::Output(
+		"LIBS$Bld="
+	);
+	if ($BasicTrgType=~/^DLL$/o) { # Add the DLL stub library
+		&main::Output(
+			" \\\n\t",
+			&Generic_Quote("\$(EPOCSTATLINK$Bld)\\EDLLSTUB.LIB")
+		);
+	}
+	if ($HelperLib) {
+		&main::Output(
+			" \\\n\t",
+			&Generic_Quote("\$(EPOCSTATLINK$Bld)\\$HelperLib")
+		);
+	}
+	foreach (@StatLibList) {
+		&main::Output(
+			" \\\n\t",
+			&Generic_Quote("\$(EPOCSTATLINK$Bld)\\$_")
+		);
+	}
+	if ($BasicTrgType=~/^(DLL|EXE)/o) { # Add the GCC helper fns
+		&main::Output(
+			" \\\n\t",
+			&Generic_Quote("\$(EPOCSTATLINK$Bld)\\EGCC.LIB")
+		);
+	}
+	foreach (@ASSPLibList) {
+		&main::Output(
+			" \\\n\t",
+			&Generic_Quote("\$(EPOCASSPLINK$Bld)\\$_")
+		);
+	}
+	foreach (@LibList) {
+		&main::Output(
+			" \\\n\t",
+			&Generic_Quote("\$(EPOCLINK$Bld)\\$_")
+		);
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+
+	&main::Output(
+		"# EPOCBLDP$Bld = ", &main::Path_AbsToWork(&Generic_Definition("EPOCBLDP$Bld")), "\n",
+		"# EPOCSTATLINK$Bld = ", &main::Path_AbsToWork(&Generic_Definition("EPOCSTATLINK$Bld")), "\n",
+		"# EPOCLIB = ", &main::Path_AbsToWork(&Generic_Definition("EPOCLIB")), "\n",
+	);
+
+	&main::Output(
+		&Generic_Quote("\$(EPOCTRG$Bld)\\$Trg"), " : ",
+		&Generic_Quote("\$(EPOCBLDP$Bld)\\$BaseTrg.in")
+	);
+	if (-e $DefFile) { # effectively "if project frozen ..."
+		&main::Output(
+			" ", &Generic_Quote($DefFile)
+		);
+	}
+	if ($BasicTrgType=~/^(EXE|DLL)$/o) {
+		&main::Output(
+			" ", &Generic_Quote("\$(EPOCSTATLINK$Bld)\\$FirstLib")
+		);
+	}
+	&main::Output(
+		" \$(LIBS$Bld)\n"
+	);
+
+
+#	Establish the entry point symbol
+	my $EntrySymbol;
+	if ($BasicTrgType=~/^DLL$/o) {
+		$EntrySymbol = '_E32Dll';
+	}
+	elsif ($BasicTrgType=~/^EXE$/o) {
+		$EntrySymbol = '_E32Startup';
+	}
+	my $AbsentSubst = '';
+	if ($EntrySymbol) {
+		$AbsentSubst = " -absent $EntrySymbol";
+	}
+
+	if ($BasicTrgType=~/^DLL$/o || $TrgType=~/^EXEXP$/o || $TrgType=~/^EXEDLL$/o) {
+
+#		generate a .DEF file from the objects and static libraries
+		&main::Output(
+			"\tpushd ".&Generic_Quote("\$(EPOCBLDP$Bld)")." && \\\n",
+			"\t$Dlltool $PlatOpt{Dlltool} --output-def \"$ExportLibrary.inf\" \"$BaseTrg.in\""
+		);
+		foreach (@StatLibList) {
+			&main::Output(
+				" \"", &main::Path_MakeRltToBase(&main::Path_AbsToWork(&Generic_Definition("EPOCBLDP$Bld")."\\"), &main::Path_AbsToWork(&Generic_Definition("EPOCSTATLINK$Bld")."\\"))."$_\""
+			);
+		}
+		&main::Output(
+			" && popd\n"
+		);
+
+#		reorder the .DEF file taking frozen exports into account if there are any
+		&main::Output(
+#			call perl on the script here so nmake will die if there are errors - this doesn't happen if calling perl in a batch file
+			"\tperl -w -S makedef.pl -Deffile \"\$(EPOCBLDP$Bld)\\$ExportLibrary.inf\"$AbsentSubst"
+		);
+		if (SystemTarget()) {
+    			&main::Output( "\t\t-SystemTargetType \\\n" );
+	    	}		
+		if (-e $DefFile) { # effectively "if project frozen ..."
+			&main::Output(
+				" -Frzfile \"$DefFile\""
+			);
+		}
+		# freeze ordinals, a maximum of 2, for polymorphic dlls
+		my $Ordinal;
+		my $Num=1;
+		foreach $Ordinal (&main::Exports) {
+			&main::Output(
+				" -$Num $Ordinal"
+			);
+			$Num++;
+		}
+		&main::Output(
+			"  \"\$(EPOCBLDP)\\$ExportLibrary.def\"\n"
+		);
+
+#		delete the unordered definition file
+		&main::Output(
+			"\t-\$(ERASE) \"\$(EPOCBLDP$Bld)\\$ExportLibrary.inf\"\n"
+		);
+
+#		generate an export object from the ordered .DEF file
+		&main::Output(
+			"\tpushd ".&Generic_Quote("\$(EPOCBLDP$Bld)")." && \\\n",
+			"\t$Dlltool $PlatOpt{Dlltool} --def \"..\\$ExportLibrary.def\" \\\n",
+			"\t\t--output-exp \"$ExportLibrary.exp\" \\\n",
+			"\t\t--dllname \"$LinkAs\""
+		);
+		if (&main::ExportUnfrozen) {
+			&main::Output(
+				"\\\n",
+				"\t\t--output-lib \"", &main::Path_MakeRltToBase(&main::Path_AbsToWork(&Generic_Definition("EPOCBLDP$Bld")."\\"), &main::Path_AbsToWork(&Generic_Definition("EPOCLIB")."\\"))."UREL\\$ExportLibrary.lib\"",
+				" && popd\n"
+			);
+			if ($ExtraExportLibrary) {
+				&main::Output(
+					"\n",
+					"\tcopy \$(EPOCLIB)\\UREL\\$ExportLibrary.lib ",
+				       	"\$(EPOCLIB)\\UREL\\$ExtraExportLibrary.lib",
+					"\n"
+				);
+			}
+		}
+		else {
+			&main::Output(
+				" && popd\n"
+			);
+		}				
+	}
+
+#	call ld to do base relocations (and dll exports)
+	if ($BasicTrgType=~/^(DLL|EXE)/o) {
+		&main::Output(
+			"\t$Link $PlatOpt{Ld} -s"
+			);	
+		if ($BasicTrgType=~/^DLL$/o) {
+			&main::Output(
+				" $PlatOpt{Entry} $EntrySymbol -u $EntrySymbol \"\$(EPOCBLDP$Bld)\\$ExportLibrary.exp\" --dll \\\n"
+			);
+		}
+		elsif ($BasicTrgType=~/^EXE$/o) {
+			&main::Output(
+				" $PlatOpt{Entry} $EntrySymbol -u $EntrySymbol \\\n"
+			);
+		}
+#		--whole-archive is required here apparently because of a defect  in the gcc toolchain
+#		the flag can probably be removed with a later version of gcc
+		&main::Output(
+			"\t\t--base-file \"\$(EPOCBLDP$Bld)\\$BaseTrg.bas\" -o \"\$(EPOCBLDP$Bld)\\$Trg\" \\\n",
+			"\t\t\"\$(EPOCSTATLINK$Bld)\\$FirstLib\" --whole-archive \"\$(EPOCBLDP$Bld)\\$BaseTrg.in\" \\\n",
+			"\t\t--no-whole-archive"
+		);
+		&main::Output(
+			" \$(LIBS$Bld) \$(USERLDFLAGS)\n"
+		);
+
+#		delete temporary files
+		if ($BasicTrgType=~/^DLL$/o || $TrgType=~/^EXEXP$/o || $TrgType=~/^EXEDLL$/o) {
+			&main::Output(
+				"\t-\$(ERASE) \"\$(EPOCBLDP$Bld)\\$ExportLibrary.exp\"\n"
+			);
+		}
+		&main::Output(
+			"\t-\$(ERASE) \"\$(EPOCBLDP$Bld)\\$Trg\"\n"
+		);
+
+#		call dlltool to do base relocations (and dll exports)
+		&main::Output(
+			"\tpushd ".&Generic_Quote("\$(EPOCBLDP$Bld)")." && \\\n",
+			"\t$Dlltool $PlatOpt{Dlltool} \\\n"
+		);
+		if ($BasicTrgType=~/^DLL$/o || $TrgType=~/^EXEXP$/o || $TrgType=~/^EXEDLL$/o) {
+			&main::Output(
+				"\t\t--def \"..\\$ExportLibrary.def\" \\\n",
+				"\t\t--dllname \"$LinkAs\" \\\n"
+			);
+		}
+		&main::Output(
+			"\t\t--base-file \"$BaseTrg.bas\" \\\n",
+			"\t\t--output-exp \"$ExportLibrary.exp\" && popd\n"
+		);
+
+#		delete temporary files
+		&main::Output(
+			"\t-\$(ERASE) \"\$(EPOCBLDP$Bld)\\$BaseTrg.bas\"\n"
+		);
+
+#		call ld to link the target
+		&main::Output(
+			"\t$Link $PlatOpt{Ld}"
+		);
+		if ($Bld=~/^U?REL$/o) {
+			&main::Output(
+				" -s"
+			);
+		}
+		if ($BasicTrgType=~/^DLL$/o) {
+			&main::Output(
+				" $PlatOpt{Entry} $EntrySymbol -u $EntrySymbol --dll \\\n"
+			);
+		}
+		elsif ($BasicTrgType=~/^EXE$/o) {
+			&main::Output(
+				" $PlatOpt{Entry} $EntrySymbol -u $EntrySymbol \\\n"
+			);
+		}
+#		--whole-archive is required here apparently because of a defect in the gcc toolchain
+#		the flag can probably be removed with a later version of gcc
+		&main::Output(
+			"\t\t\"\$(EPOCBLDP$Bld)\\$ExportLibrary.exp\" \\\n",
+			"\t\t-Map \"\$(EPOCTRG$Bld)\\$Trg.map\" -o \"\$(EPOCBLDP$Bld)\\$Trg\" \\\n",
+			"\t\t\"\$(EPOCSTATLINK$Bld)\\$FirstLib\" --whole-archive \"\$(EPOCBLDP$Bld)\\$BaseTrg.in\" \\\n",
+			"\t\t--no-whole-archive"
+		);
+		&main::Output(
+			" \$(LIBS$Bld) \$(USERLDFLAGS)\n"
+		);
+
+#		delete temporary files
+		&main::Output(
+			"\t-\$(ERASE) \"\$(EPOCBLDP$Bld)\\$ExportLibrary.exp\"\n"
+		);
+
+		if ($Bld=~/DEB$/o) {
+			&main::Output(
+				"\t$Objcopy -X \"\$(EPOCBLDP$Bld)\\$Trg\" \"\$(EPOCTRG$Bld)\\$BaseTrg.sym\"\n"
+			);
+		}
+
+		if (&main::CompressTarget) {
+			&main::Output(
+			"\tpetran $PlatOpt{Petran} -version ", &Genutl_VersionToUserString(%Version), " -sid ", &main::SecureId(), " -nocompress " ,  " \"\$(EPOCBLDP$Bld)\\$Trg\" \"\$\@\" \\\n",
+			"\t\t"
+			);
+		}
+		else {
+			if(&main::CompressTargetMode==NOCOMPRESSIONMETHOD){
+				&main::Output(
+					"\tpetran $PlatOpt{Petran} -version ", &Genutl_VersionToUserString(%Version), " -sid ", &main::SecureId(), " \"\$(EPOCBLDP$Bld)\\$Trg\" \"\$\@\" \\\n",
+					"\t\t"
+				);
+			}
+			elsif(&main::CompressTargetMode==INFLATECOMPRESSIONMETHOD){
+				&main::Output(
+					"\tpetran $PlatOpt{Petran} -version ", &Genutl_VersionToUserString(%Version), " -sid ", &main::SecureId(), " ", "  -compressionmethod deflate", " \"\$(EPOCBLDP$Bld)\\$Trg\" \"\$\@\" \\\n",
+					"\t\t"
+				);
+			}
+			elsif(&main::CompressTargetMode==BYTEPAIRCOMPRESSIONMETHOD){
+				&main::Output(
+					"\tpetran $PlatOpt{Petran} -version ", &Genutl_VersionToUserString(%Version), " -sid ", &main::SecureId(), " ", "  -compressionmethod bytepair", " \"\$(EPOCBLDP$Bld)\\$Trg\" \"\$\@\" \\\n",
+					"\t\t"
+				);
+			}
+		}
+
+		if (&main::AllowDllData) {
+			&main::Output(
+				' -allow'
+			);
+		}
+		if (not &main::CallDllEntryPoints) {
+			&main::Output(
+				' -nocall'
+			);
+		}
+		if (&main::DataLinkAddress) {
+			&main::Output(
+				' -datalinkaddress ',&main::DataLinkAddress
+			);
+		}
+		if (&main::FixedProcess) {
+			&main::Output(
+				' -fixed'
+			);
+		}
+		if (&main::HeapSize) {
+			my %HeapSize=&main::HeapSize;
+			&main::Output(
+				' -heap ',$HeapSize{Min},' ',$HeapSize{Max}
+			);
+		}
+		if (&main::ProcessPriority) {
+			&main::Output(
+				' -priority ',&main::ProcessPriority
+			);
+		}
+		if (&main::SmpSafe) {
+			&main::Output(
+				' -smpsafe'
+			);
+		}
+		if (&main::StackSize) {
+			&main::Output(
+				' -stack ',&main::StackSize
+			);
+		}
+
+ 		if (&main::CodePagingTargetMode == UNPAGED) {
+ 			&main::Output(
+ 				' -codepaging unpaged'
+ 			);
+ 		}
+ 		elsif (&main::CodePagingTargetMode == PAGED) {
+ 			&main::Output(
+ 				' -codepaging paged'
+ 			);
+ 		}
+ 
+ 		if (&main::DataPagingTargetMode == UNPAGED) {
+   			&main::Output(
+ 				' -datapaging unpaged'
+  			);
+   		}
+ 		elsif (&main::DataPagingTargetMode == PAGED) {
+   			&main::Output(
+ 				' -datapaging paged'
+   			);
+   		}
+		
+		my $i=1;
+		foreach (@UidList) {
+			&main::Output(
+				" -uid$i $_"
+			);
+			$i++;
+		}
+		if(&main::VendorId) {
+			&main::Output(
+				' -vid ',&main::VendorId
+			);
+		}
+		&main::Output(
+			' -capability ',&main::Capability,
+		);
+		&main::Output("\n");
+		&main::Output(
+			"\t-\$(ERASE) \"\$(EPOCBLDP$Bld)\\$Trg\"\n"
+		);
+	}
+	elsif ($BasicTrgType=~/^LIB$/o) {
+		&main::Output(
+			"\tcopy \"\$(EPOCBLDP$Bld)\\$BaseTrg.in\" \"\$(EPOCSTATLINK$Bld)\\$Trg\"\n"
+		);
+	}
+
+	&main::Output(
+		"\n"
+	);
+
+
+	# TARGET *.IN
+	#------------
+	if (scalar @SrcList >150) {
+		# deal with very long lists by splitting them into 150 file pieces, which allows
+		# about 200 bytes per filename if the underlying max size is 32K
+		#
+		my $counter1=150;	# i.e. trigger new variable immediately
+		my $counter2=0;
+		my @objvarlist=();
+		foreach (@SrcList) {
+			if ($counter1==150) {
+				$counter1=0;
+				$counter2++;
+				my $objvar = "OBJECTS$Bld$counter2";
+				push @objvarlist, " \$($objvar)";
+				&main::Output(
+					"\n",
+					"$objvar="
+				);
+			}
+			my $BaseSrc = &main::Path_Split('Base', $_);
+			my $Ext = &main::Path_Split('Ext', $_);
+			$BaseSrc.='_' if (lc($Ext) eq '.cia');
+			&main::Output(
+				" \\\n\t", &Generic_Quote("\$(EPOCBLDP$Bld)\\$BaseSrc.o")
+			);
+			$counter1++;
+		}
+		&main::Output(
+			"\n",
+			"\n",
+			&Generic_Quote("\$(EPOCBLDP$Bld)\\$BaseTrg.in"), " : ", @objvarlist,"\n",
+			"\tif exist \"\$\@\" del \"\$\@\"\n"
+		);
+		foreach (@objvarlist) {
+			# Add the files to the list in groups
+			&main::Output(
+				"\t$Archive cr \$\@$_\n"
+			);
+		}
+		&main::Output(
+			"\n\n"
+		);
+	} else {
+		# shorter lists remain unchanged
+		#
+		&main::Output(
+			"OBJECTS$Bld="
+		);
+		foreach (@SrcList) {
+			my $BaseSrc = &main::Path_Split('Base', $_);
+			my $Ext = &main::Path_Split('Ext', $_);
+			$BaseSrc.='_' if (lc($Ext) eq '.cia');
+			&main::Output(
+				" \\\n\t", &Generic_Quote("\$(EPOCBLDP$Bld)\\$BaseSrc.o")
+			);
+		}
+		&main::Output(
+			"\n",
+			"\n"
+		);
+		&main::Output(
+			&Generic_Quote("\$(EPOCBLDP$Bld)\\$BaseTrg.in"), " : \$(OBJECTS$Bld)\n",
+			"\tif exist \"\$\@\" del \"\$\@\"\n",
+			"\t$Archive cr \$\@ \$^\n",
+			"\n\n"
+		);
+	}
+}
+
+
+sub PMStartSrcList {
+
+	&main::Output(
+		"# SOURCES\n",
+		"\n"
+	);
+}
+
+sub PMBitMapBld {
+
+	&Generic_BitMapBld;
+	
+}
+
+sub PMResrcBld {
+
+	&Generic_ResrcBld;
+
+}
+
+sub PMAifBld {
+
+	&Generic_AifBld;
+
+}
+
+sub PMStartSrc {
+	my $Src=&main::Src;
+
+	&main::Output(
+		"# Source $Src\n",
+		"\n"
+	);
+}
+
+sub PMSrcDepend {
+	my @BldList=&main::BldList;	
+	my @DepList=&main::DepList;
+	my $BaseSrc=&main::BaseSrc;
+	my $ExtSrc=&main::ExtSrc;
+	my $cia = (lc($ExtSrc) eq '.cia') ? "_" : "";
+
+	return if (@DepList == 0);
+
+	foreach (@BldList) {
+		&main::Output(
+			&Generic_Quote("\$(EPOCBLDP$_)\\$BaseSrc$cia.lis"), " ",
+			&Generic_Quote("\$(EPOCBLDP$_)\\$BaseSrc$cia.o"), " \\\n",
+		);
+	}
+	&main::Output(
+		":"
+	);
+	foreach (@DepList) {
+		&main::Output(
+		" \\\n\t", &Generic_Quote($_)
+		);
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+}
+
+sub PMSrcBldDepend {
+	my $Bld=&main::Bld;
+	my @DepList=&main::DepList;
+	my $BaseSrc=&main::BaseSrc;
+	my $ExtSrc=&main::ExtSrc;
+	my $cia = (lc($ExtSrc) eq '.cia') ? "_" : "";
+
+	return if (@DepList == 0);
+
+	&main::Output(
+		&Generic_Quote("\$(EPOCBLDP$Bld)\\$BaseSrc$cia.lis"), " ",
+		&Generic_Quote("\$(EPOCBLDP$Bld)\\$BaseSrc$cia.o"), " :",
+	);
+	foreach (@DepList) {
+		&main::Output(
+			" \\\n\t", &Generic_Quote($_)
+		);
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+}
+
+sub PMEndSrcBld {
+	my $ABI=&main::ABI;
+	my $BaseSrc=&main::BaseSrc;
+	my $Bld=&main::Bld;
+	my $Src=ucfirst lc &main::Src;
+	my $SrcPath=&main::SrcPath;
+	my $Ext = &main::Path_Split('Ext', $Src);
+	my $Cia = (lc($Ext) eq '.cia') ? 1 : 0;
+
+	my $RTWSrcPath=&main::Path_Chop(&main::Path_RltToWork($SrcPath));
+
+	# Use GCC trick to get assembler source files preprocessed with CPP
+	$Src =~ s/\.s$/.S/i;
+
+	if ($Cia) {
+		&main::Output(
+			&Generic_Quote("\$(EPOCBLDP$Bld)\\$BaseSrc\_.o"), " : ",
+			&Generic_Quote("$SrcPath$Src"), "\n",
+			"\techo $Src\n",
+			"\t\$(GCC$Bld) -x c++ -D__CIA__ -I \"$RTWSrcPath\" \$(INCDIR) -o \$\@ \"$RTWSrcPath\\$Src\"\n",
+			"\n",
+	#		generate an assembly listing target too
+			"LISTING$Bld$BaseSrc\_ : ", &Generic_Quote("\$(EPOCBLDP$Bld)\\$BaseSrc\_.lis"), "\n",
+			"\t", &Generic_CopyAction("$SrcPath$BaseSrc\_.$ABI.lst"),
+			"\n",
+			&Generic_Quote("\$(EPOCBLDP$Bld)\\$BaseSrc\_.lis"), " : ",
+			&Generic_Quote("$SrcPath$Src"), "\n",
+			"\t\$(GCC$Bld) -x c++ -D__CIA__ -Wa,-adln -I \"$RTWSrcPath\" \$(INCDIR) -o nul: \"$RTWSrcPath\\$Src\" > \$\@\n",
+			"\n"
+		);
+	} else {
+		&main::Output(
+			&Generic_Quote("\$(EPOCBLDP$Bld)\\$BaseSrc.o"), " : ",
+			&Generic_Quote("$SrcPath$Src"), "\n",
+			"\techo $Src\n",
+			"\t\$(GCC$Bld) -I \"$RTWSrcPath\" \$(INCDIR) -o \$\@ \"$RTWSrcPath\\$Src\"\n",
+			"\n",
+	#		generate an assembly listing target too
+			"LISTING$Bld$BaseSrc : ", &Generic_Quote("\$(EPOCBLDP$Bld)\\$BaseSrc.lis"), "\n",
+			"\t", &Generic_CopyAction("$SrcPath$BaseSrc.$ABI.lst"),
+			"\n",
+			&Generic_Quote("\$(EPOCBLDP$Bld)\\$BaseSrc.lis"), " : ",
+			&Generic_Quote("$SrcPath$Src"), "\n",
+			"\t\$(GCC$Bld) -Wa,-adln -I \"$RTWSrcPath\" \$(INCDIR) -o nul: \"$RTWSrcPath\\$Src\" > \$\@\n",
+			"\n"
+		);
+	}
+}
+
+sub PMEndSrc {
+
+	&main::Output(
+		"\n",
+		"\n"
+	);
+}
+
+sub PMEndSrcList {
+
+	# Deal with accumulated MAKEDIRS etc.
+
+	&Generic_End;
+}
+
+1;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/platform/cl_gccxml.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,965 @@
+# Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Cl_gccxml;
+# 
+#
+
+package Cl_gccxml;
+
+require Exporter;
+@ISA=qw(Exporter);
+@EXPORT=qw(
+	PMHelp_Mmp
+	PMStartBldList
+	PMBld
+	PMStartSrcList
+	PMStartSrc
+	PMSrcDepend
+	PMSrcBldDepend
+	PMEndSrcBld
+	PMEndSrc
+	PMEndSrcList
+	PMBitMapBld
+	PMResrcBld
+
+);
+use strict;
+use cl_generic;
+use Genutl;
+use File::Path;
+use Cwd;
+use Pathutl;
+
+sub PMHelp_Mmp {
+	print "// No additional keywords for this platform\n";
+}
+
+	# takes an 'expression'  to evaluate with $_ bound to each of the
+	# remaining args
+	sub PrintList
+	{
+		my $expr = shift @_;
+		foreach (@_) {
+		my $str = eval($expr);
+		&main::Output($str);
+		}
+	}
+
+my $epocroot = $ENV{EPOCROOT};
+$epocroot=~ s-\\$--;            # chop trailing \\
+my $Makecmd;
+sub PMStartBldList($) {
+	($Makecmd) = @_;
+	my $BasicTrgType=&main::BasicTrgType;
+	my @BldList=&main::BldList;
+	my @ChopSysIncPaths=&main::Path_Chop(&main::SysIncPaths);
+	my @ChopUserIncPaths=&main::Path_Chop(&main::UserIncPaths);
+	my $RelPath="$epocroot\\EPOC32\\RELEASE";
+	my @MacroList=&main::MacroList();
+	my $VariantFile=&main::VariantFile();
+	my $Trg=&main::Trg;
+	my $DPath = &main::Path_RltToWork($epocroot);
+	my $DefFile = &main::DefFile;
+	my $EABIDefFile = &main::EABIDef;
+	my $ExtCompileOption = &main::CompilerOption("GCCXML");
+	
+	&Generic_Header(0,$Makecmd);	# define standard things using absolute paths
+
+	$DefFile="" if(!(-e $DefFile));
+	&main::Output(
+		"GXPTRGUDEB = $RelPath\\GCCXML\\UDEB\n",
+		"GXPTRGUREL = $RelPath\\GCCXML\\UREL\n\n",
+		"DEFFILE = $DefFile\n\n",
+        "EABIDEFFILE = $EABIDefFile\n\n"
+	);
+
+	&main::Output(
+		"INCDIR  ="
+	);
+
+	foreach (@ChopUserIncPaths) {
+		&main::Output(
+			" -I \"$_\""
+		);
+	}
+
+	&main::Output(
+		" -I- "
+	);
+
+	foreach (@ChopSysIncPaths) {
+		&main::Output(
+			" -I \"$_\""
+		);
+	}
+	if($VariantFile){
+	    &main::Output("\\\n  -include \"$VariantFile\"");
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+
+	&main::Output( 		
+		"GCCFLAGS= -nostdinc -Wall -Wno-ctor-dtor-privacy -Wno-unknown-pragmas -UWIN32 -fshort-wchar -quiet -w $ExtCompileOption\n",  # -fsyntax-only
+		"\n"
+	);
+
+	&main::Output(
+		"GCCDEFS = -D __EABI__ -D __SUPPORT_CPP_EXCEPTIONS__"
+	);
+	foreach(@MacroList) {
+		&main::Output(
+			" -D$_"
+		);
+	}
+	&main::Output(
+		" \$(USERDEFS)\n",
+		"\n"
+	);
+
+	foreach (@BldList) {
+		&main::Output(
+			"GCC$_ = gccxml_cc1plus -bi"
+		);
+		if (/REL$/o) {
+			&main::Output(
+				      ' -fomit-frame-pointer '
+			);
+		}
+		elsif (/DEB$/o) {
+			&main::Output(
+				' -g'
+			);
+		}
+		&main::Output(
+			' $(GCCFLAGS)'
+		);
+		foreach (&main::MacroList($_)) {
+			&main::Output(
+				" -D$_"
+			);
+		}
+                
+		&main::Output(
+			" \$(GCCDEFS)\n"
+		);
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+	
+	&main::Output(
+			"LIBRARY:\n",
+			"\t\@echo Nothing to do\n"
+	);
+
+	# Resource building is done entirely via cl_generic.pm
+	PrintList("\"\nRESOURCE\$_ : MAKEWORK\$_\"", @BldList)
+	&main::Output(
+		"\n",
+		"\n",
+	);
+
+	foreach (@BldList) {
+		&main::Output(
+			"$_ :"
+		);
+
+		if ($BasicTrgType !~ /IMPLIB/io) {
+			my $TrgBase = &main::Path_Split('base',$Trg);           
+			&main::Output (
+			" \\\n\t",
+			&Generic_Quote("\$(GXPTRG$_)\\$TrgBase$BasicTrgType.gxp")
+			);
+		}
+		&main::Output(
+			"\n",
+			"\n"
+		);
+	}
+}
+
+# DumpToFile
+sub DumpMMPToFile
+{
+	my $rfiFileList;
+	my @rfiFiles;
+	if(scalar @_) # if an argument has been passed then it is a reference to the list of .RFI files.
+	{
+		($rfiFileList) = @_;
+		@rfiFiles = @$rfiFileList;
+	}
+
+	my $BldPath=&main::BldPath;
+	my $Target = &main::Trg; 
+	my $TargetBase = &main::Path_Split('Base', $Target); 
+	my $Gxpurel="$epocroot\\epoc32\\release\\gccxml\\urel";
+	my $Gxpudeb="$epocroot\\epoc32\\release\\gccxml\\udeb";
+	unless (-d $BldPath) {
+		mkpath([$BldPath]);
+	}
+	unless (-d $Gxpurel) {
+		mkpath([$Gxpurel]);
+	}
+	unless (-d $Gxpudeb) {
+		mkpath([$Gxpudeb]);
+	}
+    $BldPath = (&main::Path_StepDirs($BldPath))[-2];
+	use File::Basename;
+    my $FileName = basename(&main::MmpFile());
+    $FileName = $BldPath.$FileName.".xml";
+    open FILE,"> $FileName" or die "Cannot open mmp info dump file $FileName: $!";
+    print FILE "<?xml version=\"1.0\"?>\n<mmpInfo>\n"; 
+   
+    my $Path = &main::RelPath();
+    my $MmpFile = &main::MmpFile();  
+    my $TrgType = &main::TrgType(); 
+    my $TrgPath = &main::TrgPath(); 
+    print FILE "\t<mmp path=\"$MmpFile\"/>\n"; 
+	print FILE "\t<target name=\"$Target\" type=\"$TrgType\" ";
+    
+	if(not $TrgPath eq '') 
+	{
+		print FILE "path=\"$TrgPath\""; 
+	}
+	print FILE "/>\n";
+	# insert current working directory
+	my $WorkPath = &main::Path_WorkPath();
+	print FILE "\t<cwd path=\"$WorkPath\"/>\n";
+    
+    my $ABI = &main::ABI; 
+    print FILE "\t<abi type=\"$ABI\"/>\n"; 
+    my $LinkAs = &main::LinkAs;
+    print FILE "\t<linkAs name=\"$LinkAs\"/>\n"; 
+    my $LinkAsBase = &main::LinkAsBase;
+    print FILE "\t<linkAsBase name=\"$LinkAsBase\"/>\n"; 
+    
+    # Uids
+    my @UidList=&main::UidList;
+    my $count = 0;
+    print FILE "\t<uids";
+    foreach my $uid(@UidList)
+    {
+		print FILE " u$count=\"$uid\"" ;
+		$count++; 
+    }
+    print FILE "/>\n";
+    
+    # Versioning 
+    my %Version = &main::Version; 
+    print FILE "\t<version";
+    foreach my $var (sort keys %Version)
+    {
+        print FILE " $var=\"$Version{$var}\"";
+    }
+    print FILE "/>\n";
+    
+    # Capabilities
+    my $Capability = &main::Capability;
+    print FILE "\t<capability id=\"$Capability\"/>\n"; 
+    
+	# DefFile
+	my $DefFile = &main::DefFile;
+	$DefFile="" if(!(-e $DefFile));
+	print FILE "\t<defFile path=\"$DefFile\" type=\"GCC\"/>\n";
+
+	# EABIDefFile
+	my $EABIDefFile = &main::EABIDef;
+	print FILE "\t<defFile path=\"$EABIDefFile\" type=\"EABI\"/>\n";
+        
+    # Handle All types of libraries
+    my $FirstLib = &main::FirstLib; 
+    my @LibList = &main::LibList;
+    my @ASSPLibList = &main::ASSPLibList;
+    my @StatLibList = &main::StatLibList;;    
+    print FILE "\t<libs>\n"; 
+    
+	#first
+    print FILE "\t\t<lib name=\"$FirstLib\" type=\"First\"/>\n"; 
+    
+    #  normal
+    foreach my $lib (@LibList)
+    {
+        print FILE "\t\t<lib name=\"$lib\"/>\n"; 
+    }
+    # ASSP Specific
+    foreach my $lib (@ASSPLibList)
+    {
+        print FILE "\t\t<lib name=\"$lib\" type=\"ASSP\"/>\n";
+    }
+    
+    # Static Libraries
+    foreach my $lib (@StatLibList)
+    {
+        print FILE "\t\t<lib name=\"$lib\" type=\"Static\"/>\n";
+    }
+    print FILE "\t</libs>\n";
+
+    # Resources
+    print FILE "\t<resources>\n";
+    my $rfiFile;
+    foreach $rfiFile (@rfiFiles)
+    {
+	    print FILE "\t\t<resource name=\"$rfiFile\"/>\n";
+    }
+    print FILE "\t</resources>\n";
+
+    close FILE;
+}
+	
+sub PMBld {
+	my @ASSPLibList=&main::ASSPLibList;
+	my @SrcList=&main::SrcList;
+	my $BaseTrg=&main::BaseTrg;
+	my $Bld=&main::Bld;
+	my $ChopBldPath=&main::Path_Chop(&main::BldPath);
+	my $EPOCIncPath=&main::EPOCIncPath;
+	my $BasicTrgType=&main::BasicTrgType;
+	my $ChopRelPath=&main::Path_Chop(&main::RelPath);
+	my $RelPath=&main::RelPath;
+	my $Trg=&main::Trg;
+	my $TrgType=&main::TrgType;
+	my @UidList=&main::UidList;
+	# DefFile
+	my $DefFile = &main::DefFile;
+	# EABIDefFile
+	my $EABIDefFile = &main::EABIDef;
+
+	my $rfiList = GatherResourceInformation();
+	my @RfiFiles = @$rfiList;
+
+
+
+	DumpMMPToFile(\@RfiFiles);
+
+	# REAL TARGETS
+	#-------------
+	&main::Output(
+		"# REAL TARGET - BUILD VARIANT $Bld\n",
+		"\n"
+	);
+
+	&main::Output(
+		"WHAT$Bld : WHATGENERIC\n",
+		"\n",
+		"CLEAN$Bld : CLEANBUILD$Bld CLEANRELEASE$Bld\n",
+		"\n",
+		"CLEANBUILD$Bld : \n",
+		"\t\@perl -S ermdir.pl \"\$(EPOCBLD$Bld)\"\n",
+		"\n",
+		"CLEANRELEASE$Bld : CLEANGENERIC\n",
+		"\n"
+	);
+	my @releaseables;
+	&Generic_WhatCleanTargets($Bld, "WHAT$Bld", "CLEANRELEASE$Bld", @releaseables);
+	&Generic_MakeWorkDir("MAKEWORK$Bld",$ChopBldPath);
+	&Generic_MakeWorkDir("MAKEWORK$Bld",$ChopRelPath);
+	&Generic_Releaseables;
+
+	&main::Output(
+		"\n",
+		"\n"
+	);
+
+	# XML Stuff
+	&main::Output(
+				&Generic_Quote("\$(GXPTRG$Bld)\\$BaseTrg$BasicTrgType.gxp"), " : ",
+				&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseTrg$BasicTrgType.gxp"),
+				"\n\tcopy \"\$(EPOCBLD$Bld)\\$BaseTrg$BasicTrgType.gxp\" \"\$@\""
+	); 
+	
+	&main::Output(
+		"\n",
+		"\n"
+	);
+        
+	# TARGET *.GXP
+	#------------
+	if (scalar @SrcList >150) {
+		# deal with very long lists by splitting them into 150 file pieces, which allows
+		# about 200 bytes per filename if the underlying max size is 32K
+		#
+
+		my $counter1=150;	# i.e. trigger new variable immediately
+		my $counter2=0;
+		my @objvarlist=();
+		foreach (@SrcList) {
+			if ($counter1==150) {
+				$counter1=0;
+				$counter2++;
+				my $objvar = "OBJECTS$Bld$counter2";
+				push @objvarlist, " \$($objvar)";
+				&main::Output(
+					"\n",
+					"$objvar="
+				);
+			}
+			my $BaseSrc = &main::Path_Split('Base', $_);
+			my $Ext = &main::Path_Split('Ext', $_);
+			$BaseSrc.='_' if (lc($Ext) eq '.cia');
+			&main::Output(
+				" \\\n\t", &Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.xml")
+			);
+			$counter1++;
+		}
+		use File::Basename;
+	    my $FileName = basename(&main::MmpFile()).".xml";
+		&main::Output(
+			" \\\n\t\$(EPOCBLD)\\$FileName",
+			"\n",
+			"\n",
+			&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseTrg$BasicTrgType.gxp"), " : ", @objvarlist,"\n",
+			"\tif exist \"\$\@\" del \"\$\@\"\n"
+		);
+		foreach (@objvarlist) {
+			&main::Output(
+				"\tzip -j \$\@$_\n"
+			);
+		}
+		&main::Output(
+			"\tif exist \$(EABIDEFFILE) zip -j \$\@ \$(EABIDEFFILE)\n",
+			"\n\n"
+		);
+	} else {
+		# shorter lists remain unchanged
+		#
+		&main::Output(
+			"OBJECTS$Bld="
+		);
+		use File::Basename;
+	    my $FileName = basename(&main::MmpFile()).".xml";
+
+		&main::Output("\$(EPOCBLD)\\$FileName");
+        foreach (@SrcList) {
+			my $BaseSource = &main::Path_Split('Base', $_);
+			my $Ext = &main::Path_Split('Ext', $_);
+			$BaseSource.='_' if (lc($Ext) eq '.cia');
+			&main::Output(
+			" \\\n\t", &Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSource.xml")
+			);
+		}       
+		
+		&main::Output(
+			"\n",
+			"\n"
+		);
+
+		&main::Output("RESOURCEINFO$Bld=");
+		foreach (@RfiFiles)
+		{
+			&main::Output(" \\\n\t\$(EPOCBLD)\\$_");
+		}
+		&main::Output("\n\n");
+
+		&main::Output(
+
+			&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseTrg$BasicTrgType.gxp"), " : \$(OBJECTS$Bld) \$(EABIDEFFILE) \$(RESOURCEINFO$Bld)\n",
+
+			"\tif exist \"\$\@\" del \"\$\@\"\n",
+			"\tzip -j \$\@ \$^ \$(EABIDEFFILE) \$(RESOURCEINFO$Bld)\n",
+			"\n\n"
+		);
+	}
+}
+
+
+sub PMStartSrcList {
+
+	&main::Output(
+		"# SOURCES\n",
+		"\n"
+	);
+}
+
+sub PMBitMapBld {
+	&Generic_BitMapBld;
+}
+
+sub PMResrcBld {
+	&Generic_ResrcBld;
+}
+
+sub PMStartSrc {
+	my $Src=&main::Src;
+
+	&main::Output(
+		"# Source $Src\n",
+		"\n"
+	);
+}
+
+sub PMSrcDepend {
+	my @BldList=&main::BldList;	
+	my @DepList=&main::DepList;
+	my $BaseSrc=&main::BaseSrc;
+	my $ExtSrc=&main::ExtSrc;
+	my $cia = (lc($ExtSrc) eq '.cia') ? "_" : "";
+
+	return if (@DepList == 0);
+
+	foreach (@BldList) {
+		&main::Output(
+			&Generic_Quote("\$(EPOCBLD$_)\\$BaseSrc$cia.lis"), " ",
+			&Generic_Quote("\$(EPOCBLD$_)\\$BaseSrc$cia.xml"), " \\\n",
+		);
+	}
+	&main::Output(
+		":"
+	);
+	foreach (@DepList) {
+		&main::Output(
+		" \\\n\t", &Generic_Quote($_)
+		);
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+}
+
+sub PMSrcBldDepend {
+	my $Bld=&main::Bld;
+	my @DepList=&main::DepList;
+	my $BaseSrc=&main::BaseSrc;
+	my $ExtSrc=&main::ExtSrc;
+	my $cia = (lc($ExtSrc) eq '.cia') ? "_" : "";
+
+	return if (@DepList == 0);
+
+	&main::Output(
+		&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc$cia.lis"), " ",
+		&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc$cia.xml"), " :",
+	);
+	foreach (@DepList) {
+		&main::Output(
+			" \\\n\t", &Generic_Quote($_)
+		);
+	}
+	&main::Output( 
+		"\n",
+		"\n"
+	);
+}
+
+my %sources;
+
+sub PMEndSrcBld {
+	my $ABI=&main::ABI;
+	my $BaseSrc=&main::BaseSrc;
+	my $Bld=&main::Bld;
+	my $Src=ucfirst lc &main::Src;
+	my $SrcPath=&main::SrcPath;
+	my $Ext = &main::Path_Split('Ext', $Src);
+	my $Cia = (lc($Ext) eq '.cia') ? 1 : 0;
+
+	my $ChopSrcPath=&main::Path_Chop($SrcPath);
+
+	# add source path, source file and build type to hashmap. 
+    $sources{$SrcPath}{$Src}{$Bld}=1;
+   
+	# Use GCC trick to get assembler source files preprocessed with CPP
+	$Src =~ s/\.s$/.S/i;
+
+	if ($Cia) {
+		&main::Output(
+			&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc\_.xml"), " : ",
+			&Generic_Quote("$SrcPath$Src"), "\n",
+			"\t\$(GCC$Bld) -D__CIA__ -I \"$ChopSrcPath\" \$(INCDIR) -fxml=\$\@ -o nul \"$ChopSrcPath\\$Src\"\n",
+			"\n",
+		);
+	} else {
+		&main::Output(
+			&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.xml"), " : ",
+			&Generic_Quote("$SrcPath$Src"), "\n",
+			"\t\$(GCC$Bld) -I \"$ChopSrcPath\" \$(INCDIR) -fxml=\$\@ -o nul \"$ChopSrcPath\\$Src\"\n",
+			"\n",
+		);
+	}
+
+	#Keep the staus of the dependency-generation-flag was enabled or disabled.
+	my $Deps_Stat = &main::Deps_GetNoDependencies();
+	if($Deps_Stat){
+		#If the no-dependency-generation-flag turned on, turn it off temporarily, so that we can get 
+		#the dependencies.
+		&main::Deps_SetNoDependenciesStatus(0);
+	}
+	# Code to print the log file includeheaders.txt
+	my $IncFileName = "$epocroot\\epoc32\\release\\gccxml\\includeheaders.txt";
+	open INC_FILE,">> $IncFileName" or die "Cannot open file $IncFileName";
+
+	#Get the dependencies for the current source file.
+	my @DepList=&main::Deps_GenDependsL("$SrcPath$Src");
+	foreach(@DepList) {
+		print INC_FILE "$_\n";
+	}
+	close INC_FILE;
+	
+	#Set the dependency-generation-flag to its original state so that, it doesn't affect the other target 
+	#builds.
+	&main::Deps_SetNoDependenciesStatus($Deps_Stat);
+
+	# Code to print the existance of the file in logs
+	my $neededfile="$epocroot\\epoc32\\release\\gccxml\\includeheaders.txt";
+	if (!-e $neededfile)
+	{ 
+		print "!!! File $epocroot\\epoc32\\release\\gccxml\\includeheaders.txt does not exist\n";
+	}
+}
+
+sub PMEndSrc {
+	&main::Output(
+		"\n",
+		"\n"
+	);
+}
+
+sub PMEndSrcList {
+        my $BldPath=&main::BldPath;
+        my $Target = &main::Trg; 
+        my $TargetBase = &main::Path_Split('Base', $Target);
+		use File::Basename;
+	    my $FileName = basename(&main::MmpFile());
+	    $FileName = $BldPath.$FileName.".xml";
+        open FILE,">> $FileName" or die "Cannot open mmp info dump file $FileName: $!";
+		my $path;
+        foreach $path (keys %sources)
+        {
+            my %thing =  %{$sources{$path}}; # {"UREL"}; 
+            my $file;
+            foreach $file (keys %thing)
+            {
+                if( defined $thing{$file}{"UREL"})
+                {
+                    if( defined  $thing{$file}{"UDEB"} )
+                    {
+                        print FILE "\t<sourceFile name=\"$file\" path=\"$path\"/>\n";
+                    }
+                    else
+                    {
+                        print FILE "\t<sourceFile name=\"$file\" path=\"$path\" type=\"UREL\"/>\n";
+                    }
+                }
+                else
+                {
+                    if(defined $thing{$file}{"UDEB"})
+                    {
+                        print FILE "\t<sourceFile name=\"$file\" path=\"$path\" type=\"UDEB\"/>\n";
+                    }
+                    else
+                    {
+                        die "Should Never Get HERE!";
+                    }
+                }
+                
+            }
+        }
+        
+
+
+        my $BldInfDir=&Path_WorkPath;
+        my $PrjBldDir=$E32env::Data{BldPath};
+        $PrjBldDir=~s-^(.*)\\-$1-o;
+        $PrjBldDir.=$BldInfDir;
+        $PrjBldDir=~m-(.*)\\-o; # remove backslash because some old versions of perl can't cope
+
+
+        ### the export call is like this
+        my $lCmd = "make -r -f \"${PrjBldDir}EXPORT.make\" WHAT";
+        my @lExportDump = split(/\n/,`$lCmd`);
+        foreach my $lLine (@lExportDump) {
+            $lLine =~ s/"//g;
+            chomp($lLine);
+            if($lLine =~ /.*\.h/i) {
+                print FILE "\t<export name=\"$lLine\"/>\n";
+            }
+        }
+
+		print FILE "</mmpInfo>\n\n";
+        close FILE;
+
+
+
+		&Generic_End;
+}
+
+
+sub GetRelDir
+{
+	my ($fileName) = @_;
+	$fileName = CleanPath($fileName); # make sure that /'s are use rather than \ or \\
+	if($fileName!~m-\/-) # no directory, just a file name, so return ./
+	{
+		return "./";
+	}
+	elsif($fileName=~m-^(.*\/)[^\/]+$-) # return directory
+	{
+		return $1;
+	}
+	else # don't know how could get here
+	{
+		return "./";
+	}
+}
+
+
+sub SearchMmpFile
+{
+	my @rfiFiles;
+	my @SystemIncludes = &main::SysIncPaths;
+	my @UserIncludes = &main::UserIncPaths;
+	my $ResourceStruct = &main::ResourceStructRef;
+	
+	foreach my $ResourceStructure (@$ResourceStruct)
+	{
+		push @rfiFiles, AnalyseResourceFile($$ResourceStructure{Source}, \@SystemIncludes, \@UserIncludes);
+	}
+	return \@rfiFiles;
+}
+
+sub AnalyseResourceFile
+{ # when get to here $rssFile should be fully qualified relative to mmp file location (i.e. base: .../name.rss)
+	my ($rssFile, $systemIncludeList, $userIncludeList) = @_;
+	my @resourceRelatedFiles = ($rssFile);
+	my $baseFile = 0; #flag to indicate whether this is the base file which the rfi file is named after
+	my $rssItem;
+	my $containerFile;
+	foreach $rssItem (@resourceRelatedFiles) #@resourceRelatedFiles is added to during this foreach loop as included files are found
+	{
+		$rssItem = CleanPath($rssItem);
+		if( ! ($baseFile) )
+		{
+			$baseFile = 1; # set to non-zero so that setting up the rfi file is only done once
+			if($rssItem =~m-\/-)
+			{
+				if($rssItem =~m-^\S*\/([^\/]+)$-) # just extracts file name
+				{
+					$containerFile = $1 . ".rfi";
+				}
+			}
+			else
+			{
+				$containerFile = $rssItem . ".rfi";
+			}
+			open CONTAINER, ">$containerFile";
+		}
+		OutputHeader($rssItem);
+		my $resourceFiles = ReadFile($rssItem, \@resourceRelatedFiles, $systemIncludeList, $userIncludeList);
+		@resourceRelatedFiles = @$resourceFiles;
+	}
+	close CONTAINER;
+	return $containerFile;
+}
+
+sub CheckForInclude
+{ # check whether the passed line from the resource type file is a #include line, if it is then store it to be added to the rfi file
+	my ($line, $dir, $resourceFiles, $systemIncludeList, $userIncludeList) = @_;
+	my @resourceFiles = @$resourceFiles;
+	if($line =~ /^\s*\#include\s+([\<\"])(\S+)([\>\"])(\s+\/\/.*)?/)
+	{
+		if( ($1 eq "\"") and ($3 eq "\"") )
+		{
+			my $possibleAddition = SearchDirectories($2, "quoted", $dir, $systemIncludeList, $userIncludeList);
+			if($possibleAddition ne "")
+			{
+				push @resourceFiles, $possibleAddition;
+			}
+		}
+		elsif( ($1 eq "\<") and ($3 eq "\>") )
+		{
+			my $possibleAddition = SearchDirectories($2, "angle", $dir, $systemIncludeList, $userIncludeList);
+			if($possibleAddition ne "")
+			{
+				push @resourceFiles, $possibleAddition;
+			}
+		}
+	}
+	return \@resourceFiles;
+}
+
+sub ReadFile
+{ # copy the passed file into the rfi file and check it for included files
+	my ($fileName, $resourceFiles, $systemIncludeList, $userIncludeList) = @_;
+	my $dir = GetRelDir($fileName);
+
+	open RESOURCE, $fileName or die "Can't open file $fileName from " . cwd() . "\n";
+	my $line;
+	foreach $line (<RESOURCE>)
+	{
+		print CONTAINER $line;
+		$resourceFiles = CheckForInclude($line, $dir, $resourceFiles, $systemIncludeList, $userIncludeList);
+	}
+	close RESOURCE;
+	return $resourceFiles;
+}
+
+sub OutputHeader
+{
+	my ($fileName) = @_;
+	print CONTAINER "\n\n/* GXP ***********************\n";
+	if($fileName =~m-\/-)
+	{ # remove path as only want to store file name
+		if($fileName =~m-^\S*\/([^\/]+)$-)
+		{
+			print CONTAINER " * $1\n";
+		}
+	}
+	else
+	{
+		print CONTAINER " * $fileName\n";
+	}
+	print CONTAINER " ****************************/\n\n";
+}
+
+
+sub RecordSystemIncludes
+{
+	my ($line) = @_;
+	my @terms = split(/ /, $line);
+	my $term;
+	my @systemIncludes = ();
+	foreach $term (@terms)
+	{
+		if($term!~m/\/\//) # if term is not the start of a c++ style comment
+		{
+			push @systemIncludes, $term;
+		}
+		else
+		{
+			last;
+		}
+	}
+	return \@systemIncludes;
+}
+
+sub RecordUserIncludes
+{
+	my ($line) = @_;
+	my @terms = split(/ /, $line);
+	my $term;
+	my @userIncludes = ();
+	foreach $term (@terms)
+	{
+		if($term!~m/\/\//) # if term is not the start of a c++ style comment
+		{
+			push @userIncludes, $term;
+		}
+		else
+		{
+			last;
+		}
+	}
+	return \@userIncludes;
+}
+
+sub CleanPath # change \ and \\ in path to /
+{
+	my ($fileName) = @_;
+	$fileName =~ s-\\\\-\/-og;
+	$fileName =~ s-\\-\/-og;
+	return $fileName;
+}
+
+sub RecordSourcePath
+{
+	my ($line) = @_;
+	my $sourcePath;
+	if($line=~/^(\S+)/) # in case of comments at end of line
+	{
+		$sourcePath = $1;
+		$sourcePath = CleanPath($sourcePath);
+		if($sourcePath !~ m/\/$/)
+		{
+			$sourcePath .= "\/";
+		}
+	}
+	return $sourcePath;
+}
+
+sub SearchDirectories
+{
+	my ($fileName, $includeType, $base, $systemIncludeList, $userIncludeList) = @_;
+	my @systemIncludes = @$systemIncludeList;
+	my @userIncludes = @$userIncludeList;
+
+	$fileName = CleanPath($fileName);
+
+	if(-e $base.$fileName)
+	{
+		return $base.$fileName;
+	}
+	if($includeType eq "quoted")
+	{
+		# search through the user includes and return dir + file name if found
+		my $directory;
+		foreach $directory (@userIncludes)
+		{
+			my $qualifiedFileName = $directory . "/" . $fileName;
+			if(-e $qualifiedFileName)
+			{
+				return $qualifiedFileName;
+			}
+		}
+	}
+
+	# search through the system includes
+	my $directory;
+	foreach $directory (@systemIncludes)
+	{
+		my $qualifiedFileName = $directory . "/" . $fileName;
+		if(-e $qualifiedFileName)
+		{
+			return $qualifiedFileName;
+		}
+	}
+	return "";
+}
+
+
+sub GatherResourceInformation
+{
+	my $BldPath=&main::BldPath;
+	unless (-d $BldPath) {
+		mkpath([$BldPath]);
+	}
+	$BldPath = (&main::Path_StepDirs($BldPath))[-2];
+	my $bldInfDirectory = cwd(); # store current directory so can return to it later
+	my $MmpFile = &main::MmpFile();
+	$MmpFile = CleanPath($MmpFile);
+	my $MmpFileDir = "./";
+	my $MmpFileName = $MmpFile;
+	if($MmpFile=~m-\/-)
+	{
+		if($MmpFile=~m-^(.*)\/([^\/]*)$-)
+		{
+			$MmpFileDir = $1;
+			$MmpFileName = $2;
+		}
+	}
+	chdir($MmpFileDir) or die "Error: Could not change to MMP file directory: $MmpFileDir\n";
+	
+	my $rfiFileList = &SearchMmpFile; # analyse the mmp file for resource files
+
+	my @RfiFiles = @$rfiFileList;
+	foreach (@RfiFiles) # copy the rfi files to the BldPath and delete them from temporary locations
+	{
+		system("copy \"$_\" \"$BldPath$_\"");
+		unlink $_;
+	}
+	chdir($bldInfDirectory); # return to the orignial directory
+
+	return \@RfiFiles; # return list of rfi files to be added to .mmp.xml file
+}
+1;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/platform/cl_generic.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,1138 @@
+# Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# this package contains generic routines to handle bits of makefiles which are
+# common to all of the platforms. Currently it deals with AIF, MBM amd RSC files.
+# 
+#
+
+package cl_generic;
+
+require Exporter;
+@ISA=qw(Exporter);
+@EXPORT=qw(
+	Generic_Define
+	Generic_Definition
+	Generic_MakeWorkDir
+	Generic_MakeWorkFile
+	Generic_Quote
+	Generic_Header
+	Generic_Releaseables
+	Generic_BitMapBld
+	Generic_ResrcBld
+	Generic_AifBld
+	Generic_End
+	Generic_CopyAction
+	Generic_WhatCleanTargets
+	Generic_WhatTargets
+	Generic_CleanTargets
+);
+
+use strict;
+use File::Basename;
+use lockit_info;
+use CheckSource;
+use E32Variant;
+
+my $SavedBldPath;
+my $MakefileType=0;	# 0=NMAKE, 1=MAKE
+my %CheckSourceResourceIncludes;
+
+sub Generic_Header ($$;$) {
+	my ($UseRltPaths, $makefileType, $supportAbsPathConversion) = @_;
+	
+	$MakefileType=($makefileType eq "nmake")? 0:1;
+
+	my $LibSubDir="UDEB";
+	if (&main::PlatOS eq 'EPOC32') {
+		$LibSubDir="UREL";
+	}
+	elsif (&main::PlatOS eq 'TOOLS2') {
+		$LibSubDir="LIB";
+	}
+
+	my $BldPath=&main::BldPath;
+
+	if ( LocalBuildPathExists() ) {
+		$BldPath = ConvertToLocalBuild($BldPath);
+	}
+
+	# Get the information regarding supporting Compiler Wrapper option
+	my $IsCompilerWrapperOption=&main::CompilerWrapperOption();
+	my $RelPath=&main::RelPath;
+	my $LibPath=&main::LibPath;
+	my $LinkPath=&main::LinkPath;
+	my $StatLinkPath=&main::StatLinkPath;
+	my $ASSPLinkPath=&main::ASSPLinkPath;
+
+	$SavedBldPath=&main::Path_Chop($BldPath);
+
+	if ($UseRltPaths) {
+
+		if ( ! LocalBuildPathExists() ) {
+			# Local build does not exists so keep relative path.
+			$BldPath     =&main::Path_RltToWork($BldPath);
+		}
+
+		$RelPath     =&main::Path_RltToWork($RelPath);
+		$LibPath     =&main::Path_RltToWork($LibPath);
+		$LinkPath    =&main::Path_RltToWork($LinkPath);
+		$StatLinkPath=&main::Path_RltToWork($StatLinkPath);
+		$ASSPLinkPath=&main::Path_RltToWork($ASSPLinkPath);
+	}
+
+	$BldPath=&main::Path_Chop($BldPath);
+	$RelPath=&main::Path_Chop($RelPath);
+	$LibPath=&main::Path_Chop($LibPath);
+	$LinkPath=&main::Path_Chop($LinkPath);
+	$StatLinkPath=&main::Path_Chop($StatLinkPath);
+	$ASSPLinkPath=&main::Path_Chop($ASSPLinkPath);
+
+	my $EPOCDataPath=&main::Path_Chop(&main::EPOCDataPath);
+	my $EPOCIncPath=&main::Path_Chop(&main::EPOCIncPath);
+	my $DataPath=&main::Path_Chop(&main::DataPath);
+	my $TrgPath=&main::Path_Chop(&main::TrgPath);
+
+	my $erasedefn = "\@erase";
+	$erasedefn = "\@erase 2>>nul" if ($ENV{OS} eq "Windows_NT");
+
+	&main::Output(
+		"\n",
+		'# CWD ',             &main::Path_WorkPath, "\n",
+		'# MMPFile ',         &main::MmpFile,       "\n",
+		'# Target ',          &main::Trg,           "\n",
+		'# TargetType ',      &main::TrgType,       "\n",
+		'# BasicTargetType ', &main::BasicTrgType,  "\n",
+		'# MakefileType ', ($MakefileType==1)? "GNU":"NMAKE", "\n"
+	);
+
+	my @BldList=&main::BldList;
+	my %featureVariantInfo = &main::FeatureVariantInfo;
+	
+	if (%featureVariantInfo)
+		{
+		&main::Output("# FeatureVariantName ", $featureVariantInfo{NAME}, "\n");
+
+		foreach (@BldList)
+			{
+			&main::Output("# FeatureVariant".$_."Label ", $featureVariantInfo{$_."_LABEL"}, "\n");
+			}
+		}
+		
+	&main::Output(
+		"\n",
+		"ERASE = $erasedefn\n",
+		"\n"
+	);
+
+	# Include function to perform optional DOS to Unix slash conversion
+	# on absolute paths if requested from backend.
+	if ($supportAbsPathConversion) {
+		&main::Output(
+			"ifeq \"\$(UNIX_SLASH_FOR_CC_ABS_PATHS)\" \"1\"\n",
+			"define absolutePaths\n",
+			"\$(subst \\,\/,\$1)\n",
+			"endef\n",
+			"else\n",
+			"define absolutePaths\n",
+			"\$1\n",
+			"endef\n",
+			"endif\n",
+			"\n"
+		);
+	}
+
+	&main::Output(
+		"# EPOC DEFINITIONS\n",
+		"\n"
+	);
+	
+	Generic_Define("EPOCBLD",  $BldPath);
+	if (defined $ENV{PBUILDPID}) {
+		my $BldPathP = $BldPath . '$(PBUILDPID)';
+		Generic_Define("EPOCBLDP", $BldPathP);
+	} else {
+		Generic_Define("EPOCBLDP", $BldPath);
+	}
+	Generic_Define("EPOCTRG",  $RelPath);
+	Generic_Define("EPOCLIB",  $LibPath);
+	Generic_Define("EPOCLINK", $LinkPath);
+	Generic_Define("EPOCSTATLINK", $StatLinkPath);
+	Generic_Define("EPOCBSFSTATLINK", $RelPath);
+	Generic_Define("EPOCASSPLINK", $ASSPLinkPath);
+
+	Generic_Define("EPOCDATA", $EPOCDataPath);
+	Generic_Define("EPOCINC",  $EPOCIncPath);
+	Generic_Define("TRGDIR",   $TrgPath);
+	Generic_Define("DATADIR",  $DataPath);
+	
+
+	foreach (@BldList) {
+		&main::Output("\n");
+
+		my $bldOffset = "";
+		$bldOffset .= $featureVariantInfo{$_."_LABEL"}."\\" if (%featureVariantInfo && !$featureVariantInfo{INVARIANT});
+			
+		Generic_Define("EPOCBLD$_", "\$(EPOCBLD)\\".$bldOffset.lc($_));
+		if (defined $ENV{PBUILDPID}) {
+			Generic_Define("EPOCBLDP$_", "\$(EPOCBLDP)\\".$bldOffset.lc($_));
+		} else {
+			Generic_Define("EPOCBLDP$_", "\$(EPOCBLD)\\".$bldOffset.lc($_));
+		}
+		Generic_Define("EPOCTRG$_", "\$(EPOCTRG)\\".lc($_));
+		Generic_Define("EPOCLIB$_", "\$(EPOCLIB)\\".lc($LibSubDir));
+		Generic_Define("EPOCLINK$_", "\$(EPOCLINK)\\".lc($LibSubDir));
+		Generic_Define("EPOCSTATLINK$_", "\$(EPOCSTATLINK)\\".lc($_));
+		Generic_Define("EPOCBSFSTATLINK$_","\$(EPOCBSFSTATLINK)\\".lc($_));
+		Generic_Define("EPOCASSPLINK$_", "\$(EPOCASSPLINK)\\".lc($LibSubDir));
+	}
+	
+	# Compiler Wrapper option support 
+	# Generate the information Compiler Wrapper options in second level make file.
+	if($IsCompilerWrapperOption)
+	{
+		&main::Output(
+			"\n\n",
+			"#COMPILER WRAPPER OPTION DEFINITIONS\n",
+			"COMPWRAP = ",
+			"$ENV{ABLD_COMPWRAP}", # Extract the tool name from environment variable
+			"\n\n"
+		);
+	}
+	# Compiler Wrapper option
+	
+	my $gccxml;
+	if (&main::Plat =~ /gccxml/i){
+		$gccxml = &main::Plat;
+	}
+	
+	my $edg;
+	if (&main::Plat =~ /edg/i){
+		$edg = &main::Plat;
+	}
+	
+	&main::Output(
+		"\n",
+		"# EPOC PSEUDOTARGETS\n",
+		"\n"
+	);
+
+	foreach (@BldList) {
+		if(!$edg){
+			&main::Output(
+				"$_ : MAKEWORK$_ RESOURCE$_\n\n"
+			);
+		}
+		else {
+			&main::Output(
+				"$_ : MAKEWORK$_ \n\n"
+			);
+		}
+	}
+
+	&main::Output(	# ALL comes after DEB: because first target in makefile is the default
+		"ALL :"
+	);
+	foreach (@BldList) {
+		&main::Output(
+			" $_"
+		);
+	}
+	# # Compiler Wrapper option support 
+	if($IsCompilerWrapperOption)
+	{
+		&main::Output(	# ALL comes after DEB: because first target in makefile is the default
+			"\n\nCOMPWRAPALL : COMPWRAPUREL COMPWRAPUDEB"
+		);
+
+	}
+
+	&main::Output(
+		"\n",
+		"\n",
+		"CLEAN CLEANALL : CLEANBUILD CLEANRELEASE CLEANLIBRARY\n",
+		"\n"
+	);
+	my $pseudoTarget;
+	foreach $pseudoTarget ("WHAT", "RESOURCE", "CLEANBUILD", "CLEANRELEASE", 
+				"MAKEWORK", "LISTING")
+		{
+		if(($gccxml && $pseudoTarget eq "RESOURCE") ||
+		!($gccxml || $edg)){
+
+			&main::Output(
+				"\n",
+				"\n",
+				"$pseudoTarget $pseudoTarget","ALL :"
+			);
+			foreach (@BldList) {
+				&main::Output(
+					" $pseudoTarget$_"
+				);
+			}
+		}	
+	}
+	if($gccxml){
+		&main::Output(
+		"\n",
+		"\n",
+		);
+	}
+
+	if(!($gccxml || $edg)){
+		&main::Output(
+			"\n",
+			"\n",
+			"MAKEWORK : MAKEWORKLIBRARY\n",
+			"\n"
+		);
+	}
+	if(!$edg){
+		foreach (@BldList) {
+			&main::Output(
+				"RESOURCE$_ "
+			);
+		}
+		&main::Output(
+			": GENERIC_RESOURCE\n",
+			"\n"
+		);
+	}
+}
+
+# Quote name if necessary, according to the type of Makefile
+
+sub Generic_Quote ($) {
+	my ($name)=@_;
+	if ($MakefileType==1) {
+		# GNU make wants backslash before each space
+		$name =~ s/ /\\ /go;
+	} else {
+		# NMAKE prefers quotes around all filenames
+		$name = "\"$name\"";
+	}
+	return $name;
+}
+
+# Generic file copying action, which uses built-in variables quoted appropriately
+#
+# GNU make variables may contain spaces, but perl.exe will be executed directly
+# and so doesn't need any quotes.
+
+sub Generic_CopyAction($) {
+	my ($target) = @_;
+	my $source = '$?';
+	$target = '$@' if (!defined $target);
+	return "perl -w -S ecopyfile.pl $source $target\n";
+}
+
+# Record necessary directories, for eventual emkdir.pl rules
+# Also need to record related defines, to eliminate duplicates
+
+my %DirDefines;
+sub expandDefines ($) {
+	my ($value)=@_;
+	while ($value =~ /^(.*?)\$\((\w+)\)(.*)$/) {
+		last if ($2 eq 'PBUILDPID');
+		$value="$1$DirDefines{$2}$3";
+	}
+	return $value;
+}
+sub Generic_Define ($$;$) {
+	my ($name, $value, $trailer)=@_;
+	$trailer="" if (! defined $trailer);
+	&main::Output(
+		"$name = $value$trailer\n"
+	);
+	$DirDefines{$name}=expandDefines($value);
+}
+sub Generic_Definition ($) {
+	return $DirDefines{$_[0]};
+}
+
+my %MkDirs;
+sub Generic_MkDir ($) {
+	my $dir=&main::Path_Chop(&expandDefines($_[0]));
+	$dir = lc $dir;
+	$dir =~ s/\$\(pbuildpid\)/\$\(PBUILDPID\)/g;
+	$MkDirs{$dir}=1;
+	return $dir;
+}
+
+# Accumulate MAKEWORK targets and lists of directories,
+# automatically filling in the rest of the details.
+#
+my %MakeWork;
+sub Generic_MakeWorkDir($$) {
+	my ($work, $dir) = @_;
+
+	if ( LocalBuildPathExists() ) {
+		$dir = ConvertToLocalBuild($dir);
+	}
+
+	my $workhash;
+	if (defined $MakeWork{$work}) {
+		$workhash=$MakeWork{$work};
+	} else {
+		my %newhash;
+		$workhash=\%newhash;
+		$MakeWork{$work}=$workhash;
+	}
+	my $normdir=lc &main::Path_Chop(&expandDefines($dir));
+	$normdir =~ s/\$\(pbuildpid\)/\$\(PBUILDPID\)/g;
+	$$workhash{$normdir} ||= &Generic_MkDir($dir);
+}
+
+sub Generic_MakeWorkFile($$) {
+	my ($work, $file) = @_;
+	my $dir=&main::Path_Split('Path',&expandDefines($file));
+	&Generic_MakeWorkDir($work,$dir);
+}
+
+
+sub Generic_WhatTargets($$@)
+{
+	my ($prefix, $whattarget, @files)=@_;
+	
+	if ((scalar @files) == 0) {
+		&main::Output(
+			"\n",
+			"\n$whattarget :\n",
+			"\t\@rem none\n"
+		);
+	} else {
+# emit list of releasables in batches to avoid overflowing the 2048 character 
+# batch file line limit doing echo or erase...
+
+		my $count=1;
+		my $length=0;
+		&main::Output(
+			"\n",
+			"${prefix}_RELEASEABLES$count="
+		);
+
+		my $File;
+
+		foreach $File (sort @files) {
+			my $name = &Generic_Quote($File);
+			my $namelen = length($name)+3;	# for space, newline and tab
+			if ($length+$namelen > 1700) {	# very conservative limit
+				$count++;
+				$length=0;
+				&main::Output(
+					"\n",
+					"${prefix}_RELEASEABLES$count="
+				);
+			}
+			&main::Output(
+				" \\\n\t", $name
+			);
+			$length += $namelen;
+		}
+		&main::Output(
+			"\n",
+			"\n",
+			"$whattarget:\n"
+		);
+		my $filecount=1;
+		while ($filecount<=$count) {
+			&main::Output(
+				"\t\@echo \$(${prefix}_RELEASEABLES$filecount)\n"
+			);
+			$filecount++;
+		}
+	}
+
+	&main::Output(
+		"\n",
+	);
+}
+	
+sub Generic_CleanTargets($$@) {
+	my ($prefix, $cleantarget, @files)=@_;
+	
+	if ((scalar @files) == 0) {
+		&main::Output(
+			"\n",
+			"\n$cleantarget :\n",
+			"\t\@rem none\n"
+		);
+	} else {
+# emit list of releasables in batches to avoid overflowing the 2048 character 
+# batch file line limit doing echo or erase...
+
+		my $count=1;
+		my $length=0;
+		&main::Output(
+			"\n",
+			"${prefix}_CLEANTARGETS$count="
+		);
+
+		my $File;
+
+		foreach $File (sort @files) {
+			my $name = &Generic_Quote($File);
+			my $namelen = length($name)+3;	# for space, newline and tab
+			if ($length+$namelen > 1700) {	# very conservative limit
+				$count++;
+				$length=0;
+				&main::Output(
+					"\n",
+					"${prefix}_CLEANTARGETS$count="
+				);
+			}
+			if (!main::NoExportLibrary || ($name !~ /.dso$/i && $name !~ /.lib$/i))
+			{
+				&main::Output(
+					" \\\n\t", $name
+				);
+				$length += $namelen;
+			}
+		}
+		&main::Output(
+			"\n",
+			"\n",
+			"$cleantarget:\n",
+		);
+		my $filecount=1;
+		while ($filecount<=$count) {
+			&main::Output(
+				"\t-\$(ERASE) \$(${prefix}_CLEANTARGETS$filecount)\n"
+			);
+			$filecount++;
+		}
+	}
+
+	&main::Output(
+		"\n",
+	);
+}
+
+sub Generic_WhatCleanTargets($$$@) {
+	my ($prefix, $whattarget, $cleantarget, @files)=@_;
+	
+	if ((scalar @files) == 0) {
+		&main::Output(
+			"\n",
+			"\n$whattarget $cleantarget :\n",
+			"\t\@rem none\n"
+		);
+	} else {
+# emit list of releasables in batches to avoid overflowing the 2048 character 
+# batch file line limit doing echo or erase...
+
+		my $count=1;
+		my $length=0;
+		&main::Output(
+			"\n",
+			"${prefix}_RELEASEABLES$count="
+		);
+
+		my $File;
+
+		foreach $File (sort @files) {
+			my $name = &Generic_Quote($File);
+			my $namelen = length($name)+3;	# for space, newline and tab
+			if ($length+$namelen > 1700) {	# very conservative limit
+				$count++;
+				$length=0;
+				&main::Output(
+					"\n",
+					"${prefix}_RELEASEABLES$count="
+				);
+			}
+			&main::Output(
+				" \\\n\t", $name
+			);
+			$length += $namelen;
+		}
+		&main::Output(
+			"\n",
+			"\n",
+			"$whattarget:\n"
+		);
+		my $filecount=1;
+		while ($filecount<=$count) {
+			&main::Output(
+				"\t\@echo \$(${prefix}_RELEASEABLES$filecount)\n"
+			);
+			$filecount++;
+		}
+		&main::Output(
+			"\n",
+			"$cleantarget:\n",
+		);
+		$filecount=1;
+		while ($filecount<=$count) {
+			&main::Output(
+				"\t-\$(ERASE) \$(${prefix}_RELEASEABLES$filecount)\n"
+			);
+			$filecount++;
+		}
+	}
+
+	&main::Output(
+		"\n",
+	);
+}
+
+# accumulated list of generic releasables
+my %Files;	
+sub Generic_End {
+	&Generic_WhatCleanTargets("GENERIC","WHATGENERIC","CLEANGENERIC", keys %Files);
+	
+	&main::Output(
+		"# Rules to create all necessary directories\n",
+	);
+
+	foreach (sort keys %MakeWork) {
+		my $workhash = $MakeWork{$_};
+		&main::Output(
+			"\n$_ :",
+		);
+		foreach (sort keys %$workhash) {
+			my $withcase=$$workhash{$_};
+			if ($withcase =~ /\$\(PBUILDPID\)\\/) {
+				&main::Output(
+					" \\\n",
+					"\t\$(if \$(PBUILDPID),", &Generic_Quote($withcase), ")"
+				);
+			} else {
+				&main::Output(
+					" \\\n",
+					"\t", &Generic_Quote($withcase)
+				);
+			}
+		}
+		&main::Output(
+			"\n"
+		);
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+
+	my $dir;
+	foreach $dir (sort keys %MkDirs) {
+		if ($dir =~ /\$\(PBUILDPID\)\\/) {
+			&main::Output(
+				"\$(if \$(PBUILDPID),", &Generic_Quote($dir),") \\\n",
+			);
+		} else {
+			&main::Output(
+				&Generic_Quote($dir)," \\\n",
+			);
+		}
+	}
+	&main::Output(
+		":\n",
+		"\tperl -w -S emkdir.pl \$\@\n",
+		"\n"
+	);
+
+	&main::Output(
+		"CHECKSOURCE :\n",
+	);
+
+	&main::Output (CheckSource_MakefileOutput(&main::CheckSourceMMPIncludes));
+	&main::Output (CheckSource_MakefileOutput(%CheckSourceResourceIncludes));
+	&main::Output (CheckSource_MakefileOutput(&main::CheckSourceMMPMetaData));
+
+	my $cs_targetprefix = "";
+	$cs_targetprefix = "U" unless (&main::Plat =~ /tools/i);
+
+	&main::Output(
+		"\nCHECKSOURCE".$cs_targetprefix."REL :\n",
+	);
+
+	&main::Output (CheckSource_MakefileOutput(&main::CheckSourceURELIncludes));
+
+	&main::Output(
+		"\nCHECKSOURCE".$cs_targetprefix."DEB :\n",
+	);
+
+	&main::Output (CheckSource_MakefileOutput(&main::CheckSourceUDEBIncludes));
+
+}
+
+sub Generic_Releaseables {
+
+	my $ResrcPath=&main::TrgPath;
+	my $dir;
+	my $EPOCIncPath=&main::EPOCIncPath;
+
+	&Generic_MakeWorkDir('GENERIC_MAKEWORK',$SavedBldPath);	    # used for temp directory in epocrc.pl
+			
+	my $AifStructRef=&main::AifStructRef;
+	my $AifRef;
+	foreach $AifRef (@$AifStructRef) {
+# regression change - workaround lack of AIF directory
+		$$AifRef{TrgFile}=&main::Path_Split('File',$$AifRef{Trg});  # record for later
+		my $path=&main::Path_Split('Path',"$ResrcPath$$AifRef{Trg}");  
+		my $file="\$(EPOCDATA)\\$ResrcPath$$AifRef{Trg}";
+		my $xip="_xip";
+		my $base=&main::Path_Split('Base',"$file");
+		my $root=&main::Path_Split('Path',"$file");
+		my $ext=&main::Path_Split('Ext',"$file");
+		my $file_xip="$root"."$base$xip$ext";	# since XIP AIF format is generated
+		if ($path eq "") {
+			# no target path for the AIF file, so not a releasable
+			$file="$SavedBldPath\\$$AifRef{Trg}";
+		} else {
+			$Files{$file}=1;
+			$Files{$file_xip}=1;
+		}
+		$$AifRef{GenericTrg}=$file;	    # record for later
+		&Generic_MakeWorkFile('GENERIC_MAKEWORK',$file);
+	}
+
+	my $BitMapStructRef=&main::BitMapStructRef;
+	my $BitMapRef;
+	foreach $BitMapRef (@$BitMapStructRef) {
+		my $path=$$BitMapRef{TrgPath};
+		my $file="\$(EPOCDATA)\\$path$$BitMapRef{Trg}";
+		$$BitMapRef{GenericTrg}=$file;	    # record for later
+		$Files{$file}=1;
+		&Generic_MakeWorkFile('GENERIC_MAKEWORK',$file);
+		if ($$BitMapRef{Hdr}) {
+			my $mbg=&main::Path_Split('Base', $$BitMapRef{Trg});
+			$mbg="\$(EPOCINC)\\$mbg.mbg";
+			&Generic_MakeWorkDir('GENERIC_MAKEWORK',$EPOCIncPath);
+			$Files{$mbg}=1;
+		}
+	}
+
+	my $ResourceStructRef=&main::ResourceStructRef;
+	my $ResourceRef;
+	foreach $ResourceRef (@$ResourceStructRef) {
+		if(defined $$ResourceRef{Hdronly})
+			{
+				my $rsg="\$(EPOCINC)\\$$ResourceRef{BaseTrg}.rsg";
+				$$ResourceRef{GenericTrg}=$rsg;	# record for later
+
+				&Generic_MakeWorkDir('GENERIC_MAKEWORK',$EPOCIncPath);
+				$Files{$rsg}=1;			
+			}
+		else
+			{
+				my $file="\$(EPOCDATA)\\$$ResourceRef{Trg}";
+				$$ResourceRef{GenericTrg}=$file;	# record for later
+				$Files{$file}=1;
+				&Generic_MakeWorkFile('GENERIC_MAKEWORK',$file);
+				if ($$ResourceRef{Hdr}) {
+					my $rsg="\$(EPOCINC)\\$$ResourceRef{BaseTrg}.rsg";
+					&Generic_MakeWorkDir('GENERIC_MAKEWORK',$EPOCIncPath);
+					$Files{$rsg}=1;
+				}
+			}
+	}
+
+# Do StringTable 'export'
+	my @stringTables = &main::StringTables();
+	foreach my $stringtable (@stringTables)
+	{
+		if(defined $stringtable->{ExportPath})
+		{
+			$Files{$stringtable->{ExportPath}."\\".$stringtable->{BaseTrg}.".h"} = 1;
+		}
+	}
+
+
+	&main::Output(
+		"GENERIC_RESOURCE : GENERIC_MAKEWORK\n",
+		"\n"
+	);
+
+}
+
+sub Generic_BitMapBld {
+
+	my $BitMapRef=&main::BitMapRef;
+	my $quotedTrg=&Generic_Quote($$BitMapRef{GenericTrg});
+	my $WorkPath = &main::Path_Chop(&main::Path_WorkPath); ## required for Lockit
+
+	&main::Output(
+		"# BitMap $$BitMapRef{Trg}\n",
+		"\n",
+		"GENERIC_RESOURCE : $quotedTrg\n",
+		"\n",
+		"$quotedTrg :"
+	);
+
+#	must lower-case header here since bmconv generates a header with case-sensitive enums accordingly
+	my $BitMapHdr=join('', &main::EPOCIncPath, &main::Path_Split('Base', $$BitMapRef{Trg}), '.mbg');
+	my $TmpBitMapHdr=join('', &main::BldPath, &main::Path_Split('Base', $$BitMapRef{Trg}), '.mbg');
+
+	my $SrcRef;
+	foreach $SrcRef (@{$$BitMapRef{Source}}) {
+	
+		if (defined $ENV{ABLD_TOOLSMOD_COMPATIBILITY_MODE} &&  ($ENV{ABLD_TOOLSMOD_COMPATIBILITY_MODE} eq 'alpha')) {
+			%Files = &Lockit_Releasables($WorkPath, $$BitMapRef{Trg}, \%Files, basename($$SrcRef{Src}),"","");		
+		}
+		else {
+			%Files = &Lockit_Releasables($WorkPath, $$BitMapRef{Trg}, \%Files, basename($$SrcRef{Src}));
+		}
+		&main::Output(
+			" \\\n  ", &Generic_Quote($$SrcRef{Src})
+		);
+	}
+	&main::Output(
+		"\n",
+		"\tperl -w -S epocmbm.pl -h\"$TmpBitMapHdr\"",
+		"\t-o\"$$BitMapRef{GenericTrg}\"",
+		"\t-l\"\\$$BitMapRef{TrgPath}:$WorkPath\"",
+		"\\\n\t\t"
+	);
+	&main::Output(
+		" -b\""
+	);
+	foreach $SrcRef (@{$$BitMapRef{Source}}) {
+		&main::Output(
+			"\\\n\t\t/$$SrcRef{ClDepth}$$SrcRef{Src}"
+		);
+	}
+
+
+	&main::Output(
+		"\" \\\n\t\t"
+	);
+
+	&main::Output(
+		" -l\"\\$$BitMapRef{TrgPath}:$WorkPath\"\n"
+	);
+
+	if ($$BitMapRef{Hdr}) {
+		&main::Output(
+			"\tperl -w -S ecopyfile.pl \"$TmpBitMapHdr\" \"$BitMapHdr\"\n",
+		);
+	}
+	&main::Output(
+		"\n"
+	);
+}
+
+sub Generic_ResrcBld {
+	my $ResourceRef=&main::ResourceRef;
+	my $WorkPath = &main::Path_Chop(&main::Path_WorkPath); # required for Lockit
+	my @RcompMacro=&main::MmpMacros;
+
+	&main::Output(
+		"# Resource $$ResourceRef{Trg}\n",
+		"\n"
+	);
+	my @DepList=&main::DepList;
+
+	&main::Output(
+		"DEPEND="
+	);
+	foreach (@DepList) {
+		&main::Output(
+			" \\\n",
+			"\t", &Generic_Quote($_)
+		);
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+
+	my $BaseResrc= $$ResourceRef{BaseTrg};
+	my $SrcPath=&main::Path_Split('Path', $$ResourceRef{Source});
+
+	my $AbsSrc;
+	my $AbsSrcPath;
+	
+	my $ResrcHdr=join '', &main::EPOCIncPath(), $BaseResrc, '.rsg';
+	my $AbsResrcHdr;
+	my $PlatName=&main::PlatName;
+
+	my @ChopAbsSysIncPaths;
+	my @ChopAbsUserIncPaths;
+
+	@ChopAbsSysIncPaths=&main::Path_Chop(&main::Path_AbsToWork(&main::ResourceSysIncPaths));
+	@ChopAbsUserIncPaths=&main::Path_Chop(&main::Path_AbsToWork(&main::UserIncPaths));
+
+	$AbsSrc=&main::Path_AbsToWork($$ResourceRef{Source});
+	$AbsSrcPath=&main::Path_AbsToWork($SrcPath);
+	$AbsResrcHdr=&main::Path_AbsToWork($ResrcHdr);
+
+	my $ChopAbsSrcPath=&main::Path_Chop($AbsSrcPath);
+
+	my $EPOCDataDir = &main::Path_Chop($$ResourceRef{TrgPath});
+	
+	my $RscOption= "";
+	my $HeaderOption = "";
+	my $HeaderCopyCmd = "";
+    if (defined $ENV{ABLD_TOOLSMOD_COMPATIBILITY_MODE} &&  ($ENV{ABLD_TOOLSMOD_COMPATIBILITY_MODE} eq 'alpha'))  {
+	if ($$ResourceRef{Hdr} || $$ResourceRef{Hdronly}) {
+		$HeaderOption = " -h\"$SavedBldPath\\$BaseResrc$$ResourceRef{Lang}.rsg\"";
+		$HeaderCopyCmd = "\tperl -w -S ecopyfile.pl \"$SavedBldPath\\$BaseResrc$$ResourceRef{Lang}.rsg\" \"$ResrcHdr\"\n";
+	}
+	
+	}
+	else {
+	if ($$ResourceRef{Hdr} || $$ResourceRef{Hdronly}) {
+		$HeaderOption = " -h\"$SavedBldPath\\$BaseResrc.rsg\"";
+		$HeaderCopyCmd = "\tperl -w -S ecopyfile.pl \"$SavedBldPath\\$BaseResrc.rsg\" \"$ResrcHdr\"\n";
+	}
+	}
+	if (! $$ResourceRef{Hdronly}) {
+		$RscOption = " -o\$\@ ";
+	}
+	
+	my $Uidsref=$$ResourceRef{Uids};
+	my @Uids=();
+	@Uids = @{$Uidsref} if (defined($Uidsref));
+	my $Uidsarg="";
+	if ($#Uids>0) {
+		$Uidsarg="-uid2 $Uids[0] -uid3 $Uids[1]";
+	}
+	elsif ($#Uids==0) {
+		$Uidsarg="-uid2 $Uids[0] ";
+	}
+	if (defined $ENV{ABLD_TOOLSMOD_COMPATIBILITY_MODE} &&  ($ENV{ABLD_TOOLSMOD_COMPATIBILITY_MODE} eq 'alpha'))  {
+		%Files = &Lockit_Releasables($WorkPath, $$ResourceRef{Source}, \%Files, "", $$ResourceRef{Lang}) unless $$ResourceRef{Hdronly};
+	}
+	else {			
+		%Files = &Lockit_Releasables($WorkPath,$$ResourceRef{Source}, \%Files, "") unless $$ResourceRef{Hdronly};
+	}
+	my $quotedTrg=&Generic_Quote($$ResourceRef{GenericTrg});
+	&main::Output(
+		"GENERIC_RESOURCE : $quotedTrg\n",
+		"\n",
+		"$quotedTrg : ", &Generic_Quote($AbsSrc), " \$(DEPEND)\n",
+		"\tperl -w -S epocrc.pl -m045,046,047 -I \"$ChopAbsSrcPath\""
+	);
+	foreach (@ChopAbsUserIncPaths) {
+		&main::Output(
+			" -I \"$_\""
+		);
+	}
+	&main::Output(
+		" -I-"
+	);
+	foreach (@ChopAbsSysIncPaths) {
+		&main::Output(
+			" -I \"$_\""
+		);
+	}
+	foreach(@RcompMacro) {
+		&main::Output(
+			" -D$_ "
+		);
+	}
+	&main::Output(
+		" -DLANGUAGE_$$ResourceRef{Lang} -u \"$AbsSrc\" ",
+		" $Uidsarg ",
+		"$RscOption $HeaderOption -t\"$SavedBldPath\""
+	);
+
+	if (!$$ResourceRef{Hdronly}) {
+		&main::Output(
+			" -l\"$EPOCDataDir:$WorkPath\""
+		);				
+	}
+
+	if (&main::ResourceVariantFile()) {
+		&main::Output(
+			" -preinclude\"".&main::ResourceVariantFile()."\""
+		);
+	}
+	if (defined $ENV{ABLD_TOOLSMOD_COMPATIBILITY_MODE} &&  ($ENV{ABLD_TOOLSMOD_COMPATIBILITY_MODE} eq 'alpha')) {
+		if ((lc $$ResourceRef{Lang}) eq "sc") {
+	
+			&main::Output(
+				"\n",
+				$HeaderCopyCmd,
+			);
+		}
+		&main::Output(		
+		"\n"
+		);
+	
+	}
+	else {
+		&main::Output(
+			"\n",
+			$HeaderCopyCmd,
+			"\n"
+		);
+	}
+
+	my @macros;
+	push @macros, "LANGUAGE_$$ResourceRef{Lang}", "_UNICODE";
+	my @userIncludes = &main::Path_Chop(&main::Path_AbsToWork(&main::UserIncPaths));
+	unshift (@userIncludes, $AbsSrcPath);	
+	my @systemIncludes = &main::Path_Chop(&main::Path_AbsToWork(&main::ResourceSysIncPaths));
+
+	CheckSource_Includes($AbsSrc, %CheckSourceResourceIncludes, &Variant_GetMacroHRHFile(), @macros, @userIncludes, @systemIncludes);
+}
+
+sub Generic_AifBld {
+
+	my $AifRef=&main::AifRef;
+	my $ResrcPath=&main::TrgPath;
+
+	&main::Output(
+		"# Aif $$AifRef{Trg}\n",
+		"\n"
+	);
+	my @DepList=&main::DepList;
+
+	&main::Output(
+		"DEPEND="
+	);
+	foreach (@DepList) {
+		&main::Output(
+			" \\\n",
+			"\t", &Generic_Quote($_)
+		);
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+
+	my @ChopRTWSysIncPaths=&main::Path_Chop(&main::Path_RltToWork(&main::ResourceSysIncPaths));
+	my @ChopRTWUserIncPaths=&main::Path_Chop(&main::Path_RltToWork(&main::UserIncPaths));
+	my $BaseResrc=&main::Path_Split('Base',$$AifRef{Source});
+
+	my $WorkPath = &main::Path_Chop(&main::Path_WorkPath); # required for Lockit
+	my $quotedTrg=&Generic_Quote($$AifRef{GenericTrg});
+	&main::Output(
+		"GENERIC_RESOURCE : $quotedTrg\n",
+		"\n",
+		"$quotedTrg : ", &Generic_Quote("$$AifRef{Source}"), " \$(DEPEND)"
+	);
+	if (defined $ENV{ABLD_TOOLSMOD_COMPATIBILITY_MODE} &&  ($ENV{ABLD_TOOLSMOD_COMPATIBILITY_MODE} eq 'alpha')) {
+	%Files = &Lockit_Releasables($WorkPath, $$AifRef{TrgFile}, \%Files, "", "");
+	}
+	else 
+	{
+	%Files = &Lockit_Releasables($WorkPath, $$AifRef{TrgFile}, \%Files, "");
+	}
+	my $bitmapArg = "";
+	if ($$AifRef{BitMaps}) { # bitmaps aren't essential
+		$bitmapArg = "\\\n\t\t-b\"";
+		foreach my $BitMapRef (@{$$AifRef{BitMaps}}) {
+			my $BitMap = &main::Path_Split('File', $$BitMapRef{Src});
+			if (defined $ENV{ABLD_TOOLSMOD_COMPATIBILITY_MODE} &&  ($ENV{ABLD_TOOLSMOD_COMPATIBILITY_MODE} eq 'alpha')) {
+			%Files = &Lockit_Releasables($WorkPath, $$AifRef{TrgFile}, \%Files, $BitMap, "");
+			}
+			else
+			{
+			%Files = &Lockit_Releasables($WorkPath, $$AifRef{TrgFile}, \%Files, $BitMap);
+			}
+			&main::Output(
+				" ", &Generic_Quote("$$BitMapRef{Src}")
+			);
+			$bitmapArg .= "\\\n\t\t/$$BitMapRef{ClDepth}$$BitMapRef{Src}";
+		}
+		$bitmapArg .= "\" ";
+	}
+	&main::Output(
+		"\n",
+		"\tperl -w -S epocaif.pl -o\$\@ ",
+		"\"$$AifRef{Source}\" ",
+		"\\\n\t\t",
+		"-t\"$SavedBldPath\" ",
+		" -l\"\$(TRGDIR):$WorkPath\"",
+		$bitmapArg,
+		"\\\n\t\t"
+	);
+	foreach (@ChopRTWUserIncPaths) {
+		&main::Output(
+			" -I \"$_\""
+		);
+	}
+	&main::Output(
+		" -I-"
+	);
+	foreach (@ChopRTWSysIncPaths) {
+		&main::Output(
+			" -I \"$_\""
+		);
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+}
+
+
+
+#
+# Check to see that LOCAL_BUILD_PATH exists.
+#
+
+sub LocalBuildPathExists() 
+{
+	if ( defined( $ENV{LOCAL_BUILD_PATH} ) ) {
+		return 1;
+	}
+	else {
+		return 0;
+	}
+}
+
+
+#
+# Take the build path and ensure that it is now local. 
+#
+
+
+sub ConvertToLocalBuild($)
+{
+	my ($BldPath)=@_;
+
+	my $sub_replacement = $ENV{"LOCAL_BUILD_PATH"};
+	if ( !ValidBuildPath($sub_replacement) ) {
+		&FatalError(" Invalid Local Build Path : LOCAL_BUILD_PATH = \"$BldPath\"  must be in format drive:dir_name1 " );
+	}
+	else
+	{
+		# Replace the \epoc32\build with local setting
+		my $epocroot=$ENV{"EPOCROOT"};
+		
+		my $sub_match = "\Q${epocroot}\EEPOC32\\\\BUILD";
+		$BldPath =~ s/${sub_match}/${sub_replacement}/;
+	}
+
+	return $BldPath
+}
+
+
+
+#
+# Checks that the path is at least of the form drive:path_name
+# If no drive: then the makefiles will be produced but not work. 
+#
+
+
+sub ValidBuildPath($)
+{
+	my ($BldPath)=@_;
+
+	if ( $BldPath =~/^[a-zA-z]{1}:{1}.*$/) {
+		# Must have at least d:
+		return 1;
+	}
+	else {
+		return 0;
+	}
+
+}
+
+1;
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/platform/cl_mingw.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,592 @@
+# Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+
+package Cl_mingw;
+
+my $MinGWInstall='$(EPOCROOT)epoc32\\gcc_mingw\\bin';
+my $MinGWPreInclude='$(EPOCINC)\\gcc_mingw\\gcc_mingw.h';
+
+my $GccPrefix='';
+my $ToolPrefix='';
+my $HelperLib='';
+my %PlatOpt=(
+	'Dlltool'=>'',
+    'Gcc'=>'',
+	'Ld'=>'',
+	# MinGW > 3.2.3 has been found to generate programs that crash (rombuild in particular) 
+	# and a workaround this appears to be to use specific optimisations rather than
+	# specifying -O options
+	'Optimize'=>'-fdefer-pop -fmerge-constants '.
+	  '-fthread-jumps -floop-optimize '.
+	  '-fif-conversion -fif-conversion2 '.
+	  '-fguess-branch-probability -fcprop-registers '.
+          '-fforce-mem -foptimize-sibling-calls -fstrength-reduce '.
+	  '-fcse-follow-jumps  -fcse-skip-blocks '.
+          '-frerun-cse-after-loop  -frerun-loop-opt '.
+          '-fgcse  -fgcse-lm  -fgcse-sm  -fgcse-las '.
+          '-fdelete-null-pointer-checks '.
+          '-fexpensive-optimizations '.
+          '-fregmove '.
+          '-fschedule-insns  -fschedule-insns2 '.
+          '-fsched-interblock  -fsched-spec '.
+          '-fcaller-saves '.
+          '-fpeephole2 '.
+          '-freorder-blocks  -freorder-functions '.
+          '-fstrict-aliasing '.
+          '-funit-at-a-time '.
+          '-falign-functions  -falign-jumps '.
+          '-falign-loops  -falign-labels '.
+          '-fcrossjumping'
+
+);
+my $Dlltool;
+my $Archive;
+my $Link;
+my $Objcopy;
+
+my @Win32LibList=();
+my $Win32StdHeaders;
+
+
+require Exporter;
+@ISA=qw(Exporter);
+
+@EXPORT=qw(
+	PMHelp_Mmp
+	PMCheckPlatformL
+	PMPlatProcessMmp
+	PMStartBldList
+	PMBld
+	PMStartSrcList
+	PMStartSrc
+	PMSrcDepend
+	PMSrcBldDepend
+	PMEndSrcBld
+	PMEndSrc
+	PMEndSrcList
+);
+
+use strict;
+use cl_generic;
+use Genutl;
+use Winutl;
+
+sub PMHelp_Mmp {
+}
+
+sub PMCheckPlatformL {
+	if ((&main::Plat eq 'TOOLS2') and (&main::BasicTrgType ne 'EXE') and (&main::BasicTrgType ne 'LIB'))
+		{
+		die "Can't specify anything but EXE or LIB TARGETTYPEs for this platform\n";
+		}
+}
+
+sub PMPlatProcessMmp (@) {
+	&Winutl_DoMmp(\@_, "$ENV{EPOCROOT}epoc32\\gcc_mingw\\include");
+	@Win32LibList=&Winutl_Win32LibList;
+	$Win32StdHeaders=&Winutl_Win32StdHeaders;
+}
+
+my $Makecmd;
+
+sub PMStartBldList($) {
+	($Makecmd) = @_;
+	my $BaseTrg=&main::BaseTrg;
+	my $BasicTrgType=&main::BasicTrgType;
+	my @BldList=&main::BldList;
+	my @SysIncPaths=&main::Path_Chop(&main::SysIncPaths);
+	my @UserIncPaths=&main::Path_Chop(&main::UserIncPaths);
+
+	my $EPOCPath=&main::EPOCPath;
+	my $LibPath=&main::LibPath;
+
+	my @MacroList=&main::MacroList();
+
+	my $VariantFile=&main::VariantFile();
+	my $Plat=&main::Plat;
+	my $Trg=&main::Trg;
+	my $TrgType=&main::TrgType;
+
+	my $ExportLibrary=&main::ExportLibrary;
+	my $NoExportLibrary=&main::NoExportLibrary;
+	my $CompilerOption=&main::CompilerOption("GCC");
+	my $LinkerOption=&main::LinkerOption("GCC");
+
+	$Dlltool=$ToolPrefix.'$(DLLTOOL)';
+	$Archive=$ToolPrefix.'$(AR)';
+	$Link=$ToolPrefix.'$(GCC)';
+	$Objcopy=$ToolPrefix.'$(OBJCOPY)';
+
+	&Generic_Header(0, $Makecmd);	# define standard things using absolute paths
+	
+	push @MacroList, "__TOOLS__";
+	push @MacroList, "__TOOLS2_WINDOWS__";
+	push @MacroList, "__SUPPORT_CPP_EXCEPTIONS__";
+	push @MacroList, "__PRODUCT_INCLUDE__=\\\"${VariantFile}\\\"" if ($VariantFile);
+
+	# Remove __GCC32__ for TOOLS2 builds from the macro list.
+	my $count = 0;
+	foreach my $item (@MacroList) {
+		if ($item =~ m/GCC32/i) {
+			splice (@MacroList,$count,1)
+		}
+		$count++;
+	}
+
+
+#	GCC needs a fully-qualified path
+	&main::Output(
+		"\n",
+		"# must set both PATH and Path to make it work correctly\n",
+		"Path:=\$(Path)\n",
+		"PATH:=\$(Path)\n",
+		"\n"
+	);
+
+	&main::Output(
+		"INCDIR= -isystem \"$ENV{EPOCROOT}epoc32\\include\\tools\\stlport\" "
+	);
+
+	foreach (@SysIncPaths) {
+		&main::Output(
+			" -isystem \"$_\""
+		);
+	}
+
+	foreach (@UserIncPaths) {
+		&main::Output(
+			" -I \"$_\""
+		);
+	}
+
+	if($VariantFile){
+	    &main::Output("\\\n  -include $MinGWPreInclude");
+	}
+
+
+
+	&main::Output(
+		"\n",
+		"\n"
+	);
+
+	&main::Output(
+		"GCCFLAGS=$PlatOpt{Gcc} \\\n",
+		"\t\t-pipe -c -Wall -W -Wno-ctor-dtor-privacy -Wno-unknown-pragmas",
+	);
+	
+	&main::Output(
+		" $CompilerOption",		# user-supplied compiler options
+		"\n",
+		"\n"
+	);
+	
+	&main::Output(
+ 		"\n# ADDITIONAL LINKER OPTIONS",
+ 		"\nUSERLDFLAGS = ",
+ 		$LinkerOption,
+  		"\n\n"
+  	);
+
+	&main::Output(
+		"GCCDEFS="
+	);
+
+	foreach(@MacroList) {
+		&main::Output(
+			" -D$_"
+		);
+	}
+
+	&main::Output(
+		" \$(USERDEFS)\n",
+		"\n"
+	);
+
+	&main::Output(
+		"MINGWPATH?=$MinGWInstall", "\n",
+		"DLLTOOL:=\$(MINGWPATH)\\dlltool", "\n",
+		"AR:=\$(MINGWPATH)\\ar", "\n",
+		"OBJCOPY:=\$(MINGWPATH)\\objcopy", "\n",
+		"GCC:=\$(MINGWPATH)\\g++", "\n" 
+	);
+	foreach (@BldList) {
+		&main::Output(
+			"GCC$_=\$(GCC)"
+		);
+		if (/^REL$/o) {
+			&main::Output(' -s ', $PlatOpt{Optimize});
+		}
+		elsif (/^DEB$/o) {
+			&main::Output(' -g');
+			unless (&main::SrcDbg) {
+				&main::Output(' ', $PlatOpt{Optimize});
+			}
+		}
+		&main::Output(' $(GCCFLAGS)');
+		foreach (&main::MacroList($_)) {
+			&main::Output(" -D$_");
+		}
+		&main::Output(" \$(GCCDEFS)\n");
+	}
+
+	&main::Output("\n","\n");
+
+	foreach (@BldList) {
+		&main::Output("$_ :");
+
+		if ($BasicTrgType !~ /IMPLIB/io) {
+			&main::Output (" \\\n\t",&Generic_Quote("\$(EPOCTRG$_)\\$Trg"));
+		}
+		&main::Output("\n","\n");
+	}
+
+	# Resource building is done entirely via cl_generic.pm
+
+	foreach (@BldList) {
+		&main::Output("\n",	"RESOURCE$_ : MAKEWORK$_");
+	}
+	&main::Output("\n", "\n",);
+
+	&main::Output("LIBRARY : MAKEWORKLIBRARY");
+	if ($BasicTrgType=~/^LIB$/o) {
+#		code to ensure that the static libraries for all builds are built at the library stage
+		foreach (@BldList) {
+			&main::Output(" $_");
+		}
+	}
+
+	&main::Output(
+		"\n",
+		"CLEANLIBRARY :\n"
+	);
+
+	&main::Output(
+		"\n",
+		"\n"
+	);
+
+	&Generic_MakeWorkDir('MAKEWORKLIBRARY',"${LibPath}LIB");
+
+	&Generic_Releaseables;
+}
+
+
+sub PMBld {
+	my @SrcList=&main::SrcList;
+	my $BaseTrg=&main::BaseTrg;
+	my $Bld=&main::Bld;
+	my $ChopBldPath=&main::Path_Chop(&main::BldPath);
+	my $EPOCIncPath=&main::EPOCIncPath;
+	my $BasicTrgType=&main::BasicTrgType;
+	my @LibList;
+	my $LibPath=&main::LibPath;
+	my $ChopRelPath=&main::Path_Chop(&main::RelPath);
+	my $RelPath=&main::RelPath;
+	my @StatLibList=&main::StatLibList;
+	my $StatLinkPath=&main::StatLinkPath;
+	my $Trg=&main::Trg;
+	my $TrgType=&main::TrgType;
+	my $ExportLibrary=&main::ExportLibrary;
+	my $NoExportLibrary=&main::NoExportLibrary;
+
+	if ($Bld =~ /DEB/) {
+		@LibList = &main::DebugLibList;
+	} else {
+		@LibList = &main::LibList;
+	}
+
+	# REAL TARGETS
+	#-------------
+	&main::Output(
+		"# REAL TARGET - BUILD VARIANT $Bld\n",
+		"\n"
+	);
+
+#	releasables
+	my @releaseables;
+	my $toolspath=&main::EPOCToolsPath();
+
+	if ($BasicTrgType!~/^LIB$/io)
+		{
+		push @releaseables, "$toolspath$Trg";
+		}
+	else
+		{
+		push @releaseables, "$RelPath$Trg";
+		}
+
+	if (!$NoExportLibrary && ($BasicTrgType!~/^(LIB|EXE)$/io)) {	
+		push @releaseables, "\$(EPOCLINK$Bld)\\lib$ExportLibrary.a";
+	}
+
+	&main::Output(
+		"WHAT$Bld : WHATGENERIC\n",
+		"\n",
+		"CLEAN$Bld : CLEANBUILD$Bld CLEANRELEASE$Bld\n",
+		"\n",
+		"CLEANBUILD$Bld : \n",
+		"\t\@perl -w -S ermdir.pl \"\$(EPOCBLD$Bld)\"\n",
+		"\n",
+		"CLEANRELEASE$Bld : CLEANGENERIC\n",
+		"\n"
+	);
+	&Generic_WhatCleanTargets($Bld, "WHAT$Bld", "CLEANRELEASE$Bld", @releaseables);
+
+	&Generic_MakeWorkDir("MAKEWORK$Bld",$ChopBldPath);
+	&Generic_MakeWorkDir("MAKEWORK$Bld",$ChopRelPath);
+
+	return if ($BasicTrgType=~/^IMPLIB$/io);
+
+	&main::Output(
+		"LISTING$Bld : MAKEWORK$Bld"
+	);
+	foreach (@SrcList) {
+		my $BaseSrc = &main::Path_Split('Base', $_);
+		my $Ext = &main::Path_Split('Ext', $_);
+   		&main::Output(
+			" \\\n\tLISTING$Bld$BaseSrc"
+   		);
+   	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+
+	
+	&main::Output(
+		"OBJECTS$Bld="
+	);
+	foreach (@SrcList) {
+		my $BaseSrc = &main::Path_Split('Base', $_);
+		my $Ext = &main::Path_Split('Ext', $_);
+		&main::Output(
+			" \\\n\t", &Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.o")
+		);
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+
+	&main::Output(
+		&Generic_Quote("\$(EPOCTRG$Bld)\\$Trg"), " : ",
+		&Generic_Quote("\$(OBJECTS$Bld)")
+	);
+	&main::Output(
+		" \$(LIBS$Bld)\n"
+	);
+#	Link target
+	if ($BasicTrgType=~/^EXE/o) {
+#		call g++ to link the target
+		&main::Output(
+			"\t$Link $PlatOpt{Ld}"
+		);
+		if ($Bld=~/^REL$/o) {
+			&main::Output(
+				" -s"
+			);
+		}
+		
+		&main::Output(
+			" -o \"\$(EPOCTRG$Bld)\\$Trg\" \\\n",
+			"\t\t\$(OBJECTS$Bld) \\\n"
+		);
+		&main::Output(
+			"\t\t-L\$(EPOCTRG$Bld) \\\n"
+		);
+			
+		# Add dynamic libraries (dlls on Windows, .so on *nix systems) to linker options
+		if (scalar @LibList)
+		{
+			&main::Output("\t\t-Wl,-Bdynamic ");
+		}
+		my $libs="";
+		foreach my $lib (@LibList)
+		{
+			$libs.="-l$lib ";
+		}
+		if ($libs ne "")
+		{
+			&main::Output(
+				"$libs \\\n"
+			);
+		}
+		
+		# Add static libraries (.a on both Windows and *nix) to linker options
+		if (scalar @StatLibList)
+		{
+			&main::Output("\t\t-Wl,-Bstatic ");
+		}
+		my $statLibs="-lstlport.5.1 ";
+		foreach my $lib (@StatLibList)
+		{
+			$statLibs.="-l$lib ";
+		}
+		if ($statLibs ne "")
+		{
+			$statLibs.="\\\n";
+		}
+		&main::Output(
+			"$statLibs"
+		);
+		
+		&main::Output(
+			"\t\t \$(USERLDFLAGS)\n"
+		);
+		&main::Output(
+			"\tcopy \"\$(EPOCTRG$Bld)\\$Trg\" \"",&main::EPOCToolsPath,"$Trg\"\n"
+		);
+	}
+	elsif ($BasicTrgType=~/^LIB$/o) {
+		&main::Output(
+			"\tif exist \"\$\@\" del \"\$\@\"\n",
+			"\t$Archive cr \$\@ \$^\n"
+		);
+	}
+	elsif ($BasicTrgType =~ /^DLL$/o)
+	{
+		&main::Output(
+			"\t$Link -shared -o \$@ -Wl,--out-implib,\$(EPOCLINK$Bld)\\" . "lib" . "$ExportLibrary.a \$(OBJECTS$Bld)",
+			"\n"
+		);
+		&main::Output(
+			"\tcopy \"\$@\" \"",&main::EPOCToolsPath,"$Trg\"\n"
+		);
+
+	}
+
+
+	&main::Output(
+		"\n"
+	);
+
+
+}
+
+
+sub PMStartSrcList {
+
+	&main::Output(
+		"# SOURCES\n",
+		"\n"
+	);
+}
+
+sub PMStartSrc {
+	my $Src=&main::Src;
+
+	&main::Output(
+		"# Source $Src\n",
+		"\n"
+	);
+}
+
+sub PMSrcDepend {
+	my @BldList=&main::BldList;
+	my @DepList=&main::DepList;
+	my $BaseSrc=&main::BaseSrc;
+	my $ExtSrc=&main::ExtSrc;
+
+	return if (@DepList == 0);
+
+	foreach (@BldList) {
+		&main::Output(
+			&Generic_Quote("\$(EPOCBLD$_)\\$BaseSrc.lis"), " ",
+			&Generic_Quote("\$(EPOCBLD$_)\\$BaseSrc.o"), " \\\n",
+		);
+	}
+	&main::Output(
+		":"
+	);
+	foreach (@DepList) {
+		&main::Output(
+		" \\\n\t", &Generic_Quote($_)
+		);
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+}
+
+sub PMSrcBldDepend {
+	my $Bld=&main::Bld;
+	my @DepList=&main::DepList;
+	my $BaseSrc=&main::BaseSrc;
+	my $ExtSrc=&main::ExtSrc;
+
+	return if (@DepList == 0);
+
+	&main::Output(
+		&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.lis"), " ",
+		&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.o"), " :",
+	);
+	foreach (@DepList) {
+		&main::Output(
+			" \\\n\t", &Generic_Quote($_)
+		);
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+}
+
+sub PMEndSrcBld {
+	my $BaseSrc=&main::BaseSrc;
+	my $Bld=&main::Bld;
+	my $Src=&main::Src;
+	my $SrcPath=&main::Path_Chop(&main::SrcPath);
+	my $Ext=&main::Path_Split('Ext', $Src);
+	my $Plat=$main::Plat;
+
+	# Use GCC trick to get assembler source files preprocessed with CPP
+	$Src =~ s/\.s$/.S/i;	
+	&main::Output(
+		&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.o"), " : ",
+		&Generic_Quote("$SrcPath\\$Src"), "\n",
+		"\techo $Src\n",
+		"\t\$(GCC$Bld) -I \"$SrcPath\" \$(INCDIR) -o \$\@ \"$SrcPath\\$Src\"\n",
+		"\n",
+#		generate an assembly listing target too
+		"LISTING$Bld$BaseSrc : ", &Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.lis"), "\n",
+		"\t", &Generic_CopyAction("$SrcPath\\$BaseSrc.tools2.lst"),
+		"\n",
+		&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.lis"), " : ",
+		&Generic_Quote("$SrcPath\\$Src"), "\n",
+		"\t\$(GCC$Bld) -Wa,-adln -I \"$SrcPath\" \$(INCDIR) -o nul: \"$SrcPath\\$Src\" > \$\@\n",
+		"\n"
+	);
+	
+}
+
+sub PMEndSrc {
+
+	&main::Output(
+		"\n",
+		"\n"
+	);
+}
+
+sub PMEndSrcList {
+
+	# Deal with accumulated MAKEDIRS etc.
+
+	&Generic_End;
+}
+
+1;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/platform/cl_tools.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,570 @@
+# Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+package Cl_tools;
+
+# declare variables global for module
+my @Win32LibList=();
+my $BaseAddressFlag;
+my $Win32Resrc;
+
+my $MWCC;
+my $MWLD;
+
+require Exporter;
+@ISA=qw(Exporter);
+@EXPORT=qw(
+	PMHelp_Mmp
+	PMCheckPlatformL
+	PMPlatProcessMmp
+	PMStartBldList
+	PMBld
+	PMStartSrcList
+	PMStartSrc
+	PMSrcDepend
+	PMSrcBldDepend
+	PMEndSrcBld
+	PMEndSrc
+	PMEndSrcList
+);
+
+use strict;
+use Winutl;
+use cl_generic;
+
+sub PMHelp_Mmp {
+	&Winutl_Help_Mmp;
+}
+
+sub PMCheckPlatformL {
+	if ((&main::Plat eq 'TOOLS') and (&main::BasicTrgType ne 'EXE') and (&main::BasicTrgType ne 'LIB')) {
+		die "Can't specify anything but EXE or LIB targettypes for this platform\n";
+	}
+}
+
+sub PMPlatProcessMmp (@) {
+	&Winutl_DoMmp(\@_, $ENV{MWCSym2Includes});
+	$BaseAddressFlag=&Winutl_BaseAddress;
+	if ($BaseAddressFlag ne "") {
+		$BaseAddressFlag=" -imagebase \"$BaseAddressFlag\"";
+	}
+	@Win32LibList=&Winutl_Win32LibList;
+	$Win32Resrc=&Winutl_Win32Resrc;
+}
+
+sub PMStartBldList($) {
+	my ($makecmd) = @_;
+	my $BaseTrg=&main::BaseTrg;
+	my @BldList=&main::BldList;
+	my @ChopSysIncPaths=&main::Path_Chop(&main::SysIncPaths);
+	my @ChopUserIncPaths=&main::Path_Chop(&main::UserIncPaths);
+	my $DefFile=&main::DefFile;
+	my $BasicTrgType=&main::BasicTrgType;
+	my $LibPath=&main::LibPath;
+	my @MacroList=&main::MacroList();
+	my $VariantFile=&main::VariantFile();
+	my $Plat=&main::Plat;
+	my $Trg=&main::Trg;
+	my $TrgType=&main::TrgType;
+	my $WarningLevel=&main::CompilerOption("CW");
+
+	# check version of CodeWarrior for Symbian OS
+	if (defined($ENV{MWSym2Libraries})) {
+		my $allthere=1;
+		foreach (split/;/,$ENV{MWSym2Libraries}) {
+			s/^\+//;	# remove leading "+", if any
+			if (!-d $_) {
+				$allthere=0;
+				last;
+			}
+		}
+		if ($allthere) {
+			$MWCC = "mwccsym2.exe";
+			$MWLD = "mwldsym2.exe";
+			print "Detected CodeWarrior for Symbian OS, version 2.0\n";
+		}
+	}
+	if (!defined($MWCC)) {
+		if (defined($ENV{CWFolder}) && -d $ENV{CWFolder}) {
+			$MWCC = "mwcc.exe";
+			$MWLD = "mwld.exe";
+			print "Detected CodeWarrior for Symbian OS, version 1.0\n";
+			die "ERROR: This version of CodeWarrior is not suitable for Symbian OS version 8\n";
+		}
+		else {
+			die "ERROR: Unable to identify a valid CodeWarrior for Symbian OS installation\n";
+		}
+	}
+	
+	Generic_Header(0,$makecmd);	# define standard things using absolute paths
+
+	my $TrgDir="";
+	if (&Generic_Definition("TRGDIR") ne "") {
+		$TrgDir="\$(TRGDIR)\\";
+	}
+
+# Change - winutl.pm checks MWCWinx86Includes, but mwccsym2.exe seems to use MWCIncludes
+	if ($MWCC eq "mwccsym2.exe" && !defined($ENV{MWCIncludes})) {
+		&main::Output(
+			"\n",
+			"MWCIncludes:=\$(MWCSym2Includes)\n",
+			"export MWCIncludes\n",
+			"\n"
+		);
+	}
+		
+	&main::Output(
+		"# EPOC DEFINITIONS\n",
+		"\n",
+		"INCDIR  = -cwd source -i-"
+	);
+	foreach (@ChopUserIncPaths,@ChopSysIncPaths) {
+		&main::Output(
+			" \\\n -i \"$_\""
+		);
+	}
+	use Pathutl;
+	if($VariantFile){
+	    my $variantFilePath = Path_Split('Path',$VariantFile);
+	    $VariantFile  = Path_Split('FILE',$VariantFile);
+	    # workaround for codewarrior defect:
+	    # codewarrior at the moment doesn't accept an absolute path with the
+	    # the -include option unless it contains a drive letter, this is solved
+	    # by including the directory and the file separately
+	    &main::Output("\\\n -i \"$variantFilePath\" -include \"$VariantFile\"");
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+
+	&main::Output(
+		"CWFLAGS =",
+		" -wchar_t off",	# do not treat wchar_t as a predefined type
+		" -align 4",		# long alignment
+		" -warnings on",	# selection of warnings
+		" -w nohidevirtual",	# turn off "hides inherited virtual function" warning
+		   ",nounusedexpr",	# turn off "expression has no side effect" warning
+		" -msgstyle gcc",	# use GCC-style message format
+		# " -strict on",		# strict ANSI/ISO C++ checking
+		" -enum int",		# use int for enumeration types
+		" -str pool",		# pool strings into a single data object
+		" $WarningLevel"		
+	
+	);
+
+	&main::Output(
+		" -stdinc"		# insist because mwccsym2 has -nostdinc as the default(?)
+	);
+
+	&main::Output(
+		"\n",
+		"\n"
+	);
+
+	&main::Output(
+		"CWDEFS  = "
+	);
+	foreach(@MacroList) {
+		&main::Output(
+			" -d \"$_\""
+		);
+	}
+	&main::Output(
+		" \$(USERDEFS)\n",
+		"\n"
+	);
+
+	foreach (@BldList) {
+		&main::Output(
+			"CW$_ = $MWCC"
+		);
+		if (/DEB$/o) {
+			&main::Output(
+				' -g -O0'   # debug information, no optimisation
+			);
+		}
+		elsif (/REL$/o) {
+			&main::Output(
+				' -O4,s'    # highest level of optimisation, optimise for space
+			);
+		}
+		&main::Output(
+			' $(CWFLAGS)'
+		);
+		foreach (&main::MacroList($_)) {
+			&main::Output(
+				" -d $_"
+			);
+		}
+		&main::Output(
+			" \$(CWDEFS) \$(INCDIR)\n"
+		);
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+	
+	foreach (@BldList) {
+		&main::Output(
+			"$_ :"
+		);
+
+		&main::Output (
+			" \\\n",
+			"\t", &Generic_Quote("\$(EPOCTRG$_)\\$TrgDir$Trg")
+		);
+		
+
+#		lib has to come after the main target so that a .DEF file will be generated if the project is not frozen
+		if ($DefFile and not &main::ExportUnfrozen) {
+			&main::Output(
+				" \\\n",
+				"\tLIBRARY\n"
+			);
+		}
+		&main::Output(
+			"\n",
+			"\n"
+		);
+	}
+
+	&main::Output(
+		"LIBRARY : MAKEWORKLIBRARY",
+		"\n"
+	);
+	&main::Output(
+		"\n",
+		"FREEZE :\n"
+	);
+	&main::Output(
+		"\n",
+		"CLEANLIBRARY :\n"
+	);
+	&Generic_MakeWorkDir('MAKEWORKLIBRARY',"${LibPath}UDEB");
+
+	&Generic_Releaseables;
+}
+
+my $uidfile;
+sub PMBld {
+
+	my @SrcList=&main::SrcList;
+	my $BaseTrg=&main::BaseTrg;
+	my $Bld=&main::Bld;
+	my $ChopBldPath=&main::Path_Chop(&main::BldPath);
+	my $DefFile=&main::DefFile;
+	my $EPOCIncPath=&main::EPOCIncPath;
+	my $FirstLib=&main::FirstLib;
+	my $BasicTrgType=&main::BasicTrgType;
+	my @LibList;
+	my $RelPath=&main::RelPath;
+	my $Trg=&main::Trg;
+	my $TrgPath=&main::TrgPath;
+	my $TrgType=&main::TrgType;
+
+	$uidfile = "$BaseTrg.UID";
+
+	if ($Bld =~ /DEB/) {
+		@LibList=&main::DebugLibList;
+	} else {
+		@LibList=&main::LibList;
+	}
+
+	my $BLDTRGPATH = "\$(EPOCTRG$Bld)\\";
+	if ($TrgPath) {
+		$BLDTRGPATH .= "\$(TRGDIR)\\";	    # handles TARGETPATH
+	}
+
+
+#	releasables
+	my @releaseables;
+	
+	my $toolspath=&main::EPOCToolsPath();
+	push @releaseables, "$toolspath$Trg";
+
+	&main::Output(
+		"WHAT$Bld : WHATGENERIC\n",
+		"\n",
+		"CLEAN$Bld : CLEANBUILD$Bld CLEANRELEASE$Bld\n",
+		"\n",
+		"CLEANBUILD$Bld : \n",
+		"\t\@perl -w -S ermdir.pl \"\$(EPOCBLD$Bld)\"\n",
+		"\n",
+		"CLEANRELEASE$Bld : CLEANGENERIC\n",
+		"\n"
+	);
+	
+	&Generic_WhatCleanTargets($Bld, "WHAT$Bld", "CLEANRELEASE$Bld", @releaseables);
+	&Generic_MakeWorkDir("MAKEWORK$Bld", &main::BldPath);
+	&Generic_MakeWorkDir("MAKEWORK$Bld", "$RelPath$TrgPath");
+
+	&main::Output(
+		"\n",
+		"\n"
+	);
+
+	&main::Output(
+		"LISTING$Bld : MAKEWORK$Bld"
+	);
+	foreach (@SrcList) {
+		my $BaseSrc = &main::Path_Split('Base', $_);
+		my $Ext = &main::Path_Split('Ext', $_);
+		$BaseSrc = "uid" if ($BaseSrc eq $uidfile);
+		
+   		&main::Output(
+			" \\\n\tLISTING$Bld$BaseSrc"
+   		);
+   	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+
+	&main::Output(
+		"LIBS$Bld="
+	);
+	
+	foreach (@LibList) {
+		&main::Output(
+			" \\\n\t", &Generic_Quote("\$(EPOCLINK$Bld)\\$_")
+		);
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+
+	&main::Output(
+		"LINK_OBJS$Bld="
+	);
+	my $have_uidfile = 0;
+	foreach (@SrcList) {
+		my $BaseSrc = &main::Path_Split('Base', $_);
+		my $Ext = &main::Path_Split('Ext', $_);
+		if ($BaseSrc eq $uidfile) {
+			$have_uidfile = 1;
+			next;
+		}
+   		&main::Output(
+			" \\\n",
+			"\t", &Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.o")
+   		);
+   	}
+	
+	if ($have_uidfile) {
+		# ensure that the uid file is at the end of the list, as it's implicit in
+		# CodeWarrior IDE projects.
+		&main::Output(
+			" \\\n",
+			"\t", &Generic_Quote("\$(EPOCBLD$Bld)\\uid.o")
+		);
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+
+	&main::OutFormat(
+		"COMMON_LINK_FLAGS$Bld=",
+		' -msgstyle gcc',
+		' -stdlib'		# use default runtime library for compiler help functions
+	);
+	if ($MWLD eq "mwcc.exe") {
+		&main::OutFormat(
+			' -warnings on'	# on by default in mwccsym2.exe
+		);
+	}
+
+	&main::OutFormat(
+		' -subsystem console'
+	);
+		
+	if ($Bld=~/DEB$/o) {
+		&main::OutFormat(
+				' -g'
+			);
+		}
+	
+	&main::Output(
+		"\n",
+		"\n"
+	);
+
+	&main::Output(
+		"LINK_FLAGS$Bld= \$(COMMON_LINK_FLAGS$Bld) \$(LIBS$Bld) \\\n\t",
+		" -o \"$BLDTRGPATH$Trg\"" 
+	);
+	
+	&main::Output(
+		' -noimplib'
+	);
+
+	&main::Output(
+		"\n",
+		"\n"
+	);
+
+	&main::Output(
+		&Generic_Quote("$BLDTRGPATH$Trg"), " : \$(LINK_OBJS$Bld) "
+	);
+	if (-e $DefFile) { # effectively "if project frozen ..."
+		&main::Output(
+			&Generic_Quote($DefFile)
+		);
+	}
+
+	&main::Output(
+		" \$(LIBS$Bld)\n"
+	);
+
+#	Perform the final link step
+	&main::Output(
+		"\t$MWLD "
+	);
+	
+	&main::Output(
+		"\$(LINK_FLAGS$Bld) \$(LINK_OBJS$Bld)\n",
+	);
+
+	&main::Output(
+		"\tcopy \"$BLDTRGPATH$Trg\" \"",&main::EPOCToolsPath,"$Trg\"\n"
+	);
+
+	&main::Output(
+		"\n",
+		"\n"
+	);
+}
+
+sub PMStartSrcList {
+
+	&main::Output(
+		"# SOURCES\n",
+		"\n"
+	);
+}
+
+
+sub PMStartSrc {
+	my $Src=&main::Src;
+
+	&main::Output(
+		"# Source $Src\n",
+		"\n"
+	);
+}
+
+sub PMSrcDepend {
+	my @BldList=&main::BldList;	
+	my @DepList=&main::DepList;
+	my $BaseSrc=&main::BaseSrc;
+	$BaseSrc = "uid" if ($BaseSrc eq $uidfile);
+
+	return if (@DepList == 0);
+
+	foreach (@BldList) {
+		&main::Output(
+			&Generic_Quote("\$(EPOCBLD$_)\\$BaseSrc.o"), " \\\n",
+		);
+	}
+	&main::Output(
+		":"
+	);
+	foreach (@DepList) {
+		&main::Output(
+		" \\\n\t", &Generic_Quote($_)
+		);
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+}
+
+sub PMSrcBldDepend {
+	my $Bld=&main::Bld;
+	my @DepList=&main::DepList;
+	my $BaseSrc=&main::BaseSrc;
+	$BaseSrc = "uid" if ($BaseSrc eq $uidfile);
+
+	return if (@DepList == 0);
+
+	&main::Output(
+		&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.o"), " :",
+	);
+	foreach (@DepList) {
+		&main::Output(
+			" \\\n\t", &Generic_Quote($_)
+		);
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+}
+
+sub PMEndSrcBld {
+	my $BaseSrc=&main::BaseSrc;
+	$BaseSrc = "uid" if ($BaseSrc eq $uidfile);
+	my $Bld=&main::Bld;
+	my $Plat=&main::Plat;
+	my $Src=&main::Src;
+	my $SrcPath=&main::SrcPath;
+
+	&main::Output(
+		&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.o"), " : ",
+		&Generic_Quote("$SrcPath$Src"), "\n",
+		"\t\$(CW$Bld) -o \"\$\@\" -c \"$SrcPath$Src\"\n",
+		"\n",
+#		assembler listing target - uses implicit rule to do disassembly
+		"LISTING$Bld$BaseSrc : ", &Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.lis"), "\n",
+		"\t", &Generic_CopyAction("$SrcPath$BaseSrc.$Plat.lst"),
+		"\n"
+	);
+}
+
+sub PMEndSrc {
+
+	&main::Output(
+		"\n",
+		"\n"
+	);
+}
+
+sub PMEndSrcList {
+
+	my $show_options = "source";
+	$show_options = "source,unmangled,comments" if ($MWLD eq "mwldsym2.exe");
+	
+	&main::Output(
+		"\n",
+		"# Implicit rule for generating .lis files\n",
+		"\n",
+		".SUFFIXES : .lis .o\n",
+		"\n",
+		".o.lis:\n",
+		"\t$MWLD -S -show $show_options \$< -o \$\@\n",
+		"\n",
+		"\n"
+	);
+
+	# Deal with accumulated MAKEDIRS etc.
+
+	&Generic_End;
+}
+
+1;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/platform/cl_vscw.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,1860 @@
+# Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+
+package Cl_vscw;
+
+# declare variables global for module
+
+my @Win32LibList=();
+my $Win32StdHeaders;
+my $BaseAddressFlag;
+my $Win32Resrc;
+
+my $MWCC;
+my $MWLD;
+my $MWIncludePath;
+my $MWIncludeVar;
+
+# declare variables global for VS6
+my %IdeBlds=();
+my %PrjHdrs=();
+my $DspText='';
+my $VcprojText='';
+my $PlatName=&main::PlatName;
+my $guid='';
+
+require Exporter;
+@ISA=qw(Exporter);
+@EXPORT=qw(
+	PMHelp_Mmp
+
+	PMCheckPlatformL
+
+	PMPlatProcessMmp
+	
+	PMStartBldList
+		PMBld
+	PMStartSrcList
+		PMBitMapBld
+		PMResrcBld
+		PMAifBld
+		PMDoc
+		PMStartSrc
+		PMSrcDepend
+			PMSrcBldDepend
+			PMEndSrcBld
+		PMEndSrc
+	PMEndSrcList
+);
+
+use Winutl;
+use cl_generic;
+use E32Variant;
+use lockit_info;
+
+sub RoundUp1k($) {
+	# Accept C hexadecimal number (0xNNN).  Convert argument to Kb
+	# rounded up to the next 1kb boundary.
+	use integer;
+	return (hex($_[0]) + 1023) / 1024;
+}
+
+
+sub PMHelp_Mmp {
+	&Winutl_Help_Mmp;
+}
+
+sub SysTrg () {
+	return 1 if &main::SystemTrg;
+	my $ExportLibrary=&main::ExportLibrary;
+	return 1 if ($ExportLibrary =~ /EKERN/i);
+	my $Trg=&main::Trg;
+	return 1 if ($Trg =~ /KSRT/i);
+	return 0;
+}
+
+sub PMCheckPlatformL {
+
+	# check version of CodeWarrior for Symbian OS
+	
+	if (defined($ENV{MWCSym2Includes})) {
+		$MWCC = "mwccsym2.exe";
+		$MWLD = "mwldsym2.exe";
+	}
+	if (!defined($MWCC) && defined($ENV{MWSym2Libraries})) {
+		$MWCC = "mwccsym2.exe";
+		$MWLD = "mwldsym2.exe";
+	}
+	if (!defined($MWCC) && defined($ENV{CWFolder})) {
+		$MWCC = "mwcc.exe";
+		$MWLD = "mwld.exe";
+	}
+	if (!defined($MWCC)) {
+		die "ERROR: Unable to identify a valid CodeWarrior for Symbian OS installation\n";
+	}
+	
+	# determine default include path
+	
+	$MWIncludeVar = 'MWCIncludes';	# default, even if it doesn't exist
+	$MWIncludePath = '';			# default is empty
+	
+	foreach my $var ('MWCSym2Includes','MWCWinx86Includes','MWCIncludes') {
+		if (defined($ENV{$var})) {
+			$MWIncludePath = $ENV{$var};
+			$MWIncludeVar = $var;
+			last;
+		}
+	}
+}
+
+sub PMPlatProcessMmp (@) {
+	&Winutl_DoMmp(\@_, $MWIncludePath);
+	$BaseAddressFlag=&Winutl_BaseAddress;
+	if ($BaseAddressFlag ne "") {
+		$BaseAddressFlag=" -imagebase \"$BaseAddressFlag\"";
+	}
+	@Win32LibList=&Winutl_Win32LibList;
+	$Win32Resrc=&Winutl_Win32Resrc;
+	$Win32StdHeaders=&Winutl_Win32StdHeaders;
+}
+
+sub PMStartBldList($) {
+	my ($makecmd) = @_;
+	my $AifStructRef=&main::AifStructRef;
+	my $BaseTrg=&main::BaseTrg;
+	my $BitMapStructRef=&main::BitMapStructRef;
+	my @BldList=&main::BldList;
+	my @ChopSysIncPaths=&main::Path_Chop(&main::SysIncPaths);
+	my @ChopUserIncPaths=&main::Path_Chop(&main::UserIncPaths);
+	my $ExportLibrary=&main::ExportLibrary;
+	my $NoExportLibrary=&main::NoExportLibrary;
+	my $DefFile=&main::DefFile;
+	my $BasicTrgType=&main::BasicTrgType;
+	my $LibPath=&main::LibPath;
+	my @MacroList=&main::MacroList();
+	push @MacroList, "__SUPPORT_CPP_EXCEPTIONS__";
+	my $VariantFile=&main::VariantFile();
+	my $ResourceStructRef=&main::ResourceStructRef;
+	my $Plat=&main::Plat;
+	my $Trg=&main::Trg;
+	my $TrgType=&main::TrgType;
+	my $WarningLevel=&main::CompilerOption("CW");
+	my $LinkAs=&main::LinkAs;
+
+	&main::Output(
+			"PATH=$ENV{EPOCROOT}epoc32\\tools\\;$ENV{PATH}",
+			"\n",
+			"Path=\$(PATH)",
+			"\n"
+			);
+
+# Get the drive letter to call the Lada compiler to call it with absolute path
+	&main::Output(
+			"COMPILER_PATH=\"$ENV{EPOCROOT}epoc32\\tools\\nokia_compiler\\Symbian_Tools\\Command_Line_Tools\\\"",
+			"\n"
+	);
+
+	Generic_Header(0,$makecmd);	# define standard things using absolute paths
+
+	my $TrgDir="";
+	my $AifTrgDir="";
+	if (&Generic_Definition("TRGDIR") ne "") {
+		$TrgDir="\$(TRGDIR)\\";
+		$AifTrgDir=$TrgDir;
+	}
+
+# Handle migration of binaries to secure location
+
+	&Winutl_AdjustTargetPath(\$TrgDir);
+	
+# Change - mwwinrc.exe uses MWWinx86Includes or MWCIncludes, but some installations
+# fail to install either. Set MWCIncludes from the chosen variable as part
+# of the Makefile.
+	if (!defined($ENV{MWCIncludes}) && $MWIncludeVar ne 'MWCIncludes') {
+		&main::Output(
+			"\n",
+			"MWCIncludes:=\$($MWIncludeVar)\n",
+			"export MWCIncludes\n",
+			"\n"
+		);
+	}
+
+	my $CompilerLibPath="$ENV{EPOCROOT}epoc32\\tools\\nokia_compiler\\Symbian_Support\\Runtime\\Runtime_x86\\Runtime_Win32\\Libs;$ENV{EPOCROOT}epoc32\\tools\\nokia_compiler\\Symbian_Support\\Win32-x86 Support\\Libraries\\Win32 SDK";
+	&main::Output(
+			"\n",
+		"MWLibraries:=\+$CompilerLibPath\n",
+		"export MWLibraries\n",
+		"\n"
+		);
+	&main::Output(
+			"\n",
+		"MWLibraryFiles:=gdi32.lib;user32.lib;kernel32.lib;\n",
+		"export MWLibraryFiles\n",
+		"\n"
+		);
+	
+	&main::Output(
+		"# EPOC DEFINITIONS\n",
+		"\n",
+		"INCDIR  = -cwd source -i-"
+	);
+	foreach (@ChopUserIncPaths,@ChopSysIncPaths) {
+		&main::Output(
+			" \\\n -i \"$_\""
+		);
+	}
+	use Pathutl;
+	if($VariantFile){
+	    my $variantFilePath = Path_Split('Path',$VariantFile);
+	    $VariantFile  = Path_Split('FILE',$VariantFile);
+	    # workaround for codewarrior defect:
+	    # codewarrior at the moment doesn't accept an absolute path with the
+	    # the -include option unless it contains a drive letter, this is solved
+	    # by including the directory and the file separately
+	    &main::Output("\\\n -i \"$variantFilePath \" -include \"$VariantFile\"");
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+
+	&main::Output(
+		"CWFLAGS =",
+		" -wchar_t off",	# do not treat wchar_t as a predefined type
+		" -align 4",		# long alignment
+		" -warnings on",	# selection of warnings
+		" -w nohidevirtual",	# turn off "hides inherited virtual function" warning
+		   ",nounusedexpr",	# turn off "expression has no side effect" warning
+		" -enum int",		# use int for enumeration types
+		" -str pool",		# pool strings into a single data object
+		" -exc ms",			# SEH C++ exception implementation
+		" $WarningLevel"		
+	
+	);
+	if ($Win32StdHeaders or &main::Plat eq 'TOOLS') {
+		&main::Output(
+			" -stdinc"		# insist because mwccsym2 has -nostdinc as the default(?)
+		);
+	}
+	else {
+		&main::Output(
+			" -nostdinc"	# insist because mwcc has -stdinc as the default.
+		);
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+
+	&main::Output(
+		"CWDEFS  = "
+	);
+	foreach(@MacroList) {
+		&main::Output(
+			" -d \"$_\""
+		);
+	}
+	&main::Output(
+		" \$(USERDEFS)\n",
+		"\n"
+	);
+
+	foreach (@BldList) {
+		&main::Output(
+			"CW$_ = perl -w -S err_formatter.pl \$(COMPILER_PATH)$MWCC -msgstyle parseable "
+		);
+		if (/DEB$/o) {
+
+			if($PlatName eq "VS6") {
+				&main::Output(
+					' -sym codeview'
+				);
+			}
+			else
+			{
+				&main::Output(
+					' -sym codeview_new'
+				);
+			}
+
+
+#			euser change to apply inlining on the _NAKED functions
+			if ($BaseTrg!~/^EUSER$/oi) {
+				&main::Output(
+					' -inline off'
+				);
+			}	
+		}
+		elsif (/REL$/o) {
+			&main::Output(
+				' -O4,s'	# highest level of optimisation, optimise for space
+			);
+		}
+		&main::Output(
+			' $(CWFLAGS)'
+		);
+		foreach (&main::MacroList($_)) {
+			&main::Output(
+				" -d $_"
+			);
+		}
+		&main::Output(
+			" \$(CWDEFS) \$(INCDIR)\n"
+		);
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+	
+	foreach (@BldList) {
+		&main::Output(
+			"$_ :"
+		);
+
+		if ($BasicTrgType !~ /IMPLIB/io) {
+			&main::Output (
+				" \\\n",
+				"\t", &Generic_Quote("\$(EPOCTRG$_)\\$TrgDir$Trg")
+			);
+			if (&Winutl_CopyForStaticLinkage) {
+				&main::Output(
+					" \\\n",
+					"\t", &Generic_Quote("\$(EPOCTRG$_)\\$Trg")
+				);
+			}
+		}
+
+#		lib has to come after the main target so that a .DEF file will be generated if the project is not frozen
+		if ($DefFile and not &main::ExportUnfrozen) {
+			&main::Output(
+				" \\\n",
+				"\tLIBRARY\n"
+			);
+		}
+		&main::Output(
+			"\n",
+			"\n"
+		);
+	}
+
+	foreach (@BldList) {
+		my $makework="MAKEWORK$_";
+		&main::Output(
+			"\n",
+			"RESOURCE$_ : $makework"
+		);
+
+		my $BitMapRef;
+		foreach $BitMapRef (@$BitMapStructRef) {
+			my $file="\$(EPOCTRG$_)\\$$BitMapRef{TrgPath}$$BitMapRef{Trg}";
+			&Generic_MakeWorkFile($makework,$file);
+			&main::Output(
+				" \\\n",
+				"\t", &Generic_Quote($file)
+			);
+		}
+		undef $BitMapRef;
+
+		my $ResourceRef;
+		foreach $ResourceRef (@$ResourceStructRef) {
+			my $file="\$(EPOCTRG$_)\\$$ResourceRef{Trg}";
+			&Generic_MakeWorkFile($makework,$file);
+			&main::Output(	# must come before main target because source for target will depend on the
+			" \\\n",		# *.rsg file in $EPOCIncPath
+			"\t", &Generic_Quote("$file")
+			);
+		}
+		undef $ResourceRef;
+
+		my $AifRef;
+		foreach $AifRef (@$AifStructRef) {
+			my $file="\$(EPOCTRG$_)\\$AifTrgDir$$AifRef{Trg}";
+			&Generic_MakeWorkFile($makework,$file);
+			&main::Output(
+				" \\\n",
+				"\t", &Generic_Quote($file)
+			);
+		}
+		undef $AifRef;
+
+		&main::Output(
+			"\n"
+		);
+	}
+	&main::Output(
+		"\n",
+		"\n",
+	);
+
+	&main::Output(
+		"\n",
+		"# REAL TARGET - LIBRARY\n",
+		"\n",
+		"LIBRARY : MAKEWORKLIBRARY"
+	);
+	if ($BasicTrgType=~/^LIB$/o) {
+#		code to ensure that the static libraries for all builds are built at the library stage
+		foreach (@BldList) {
+			&main::Output(
+				" $_"
+			);
+		}
+	}
+	elsif ($DefFile and !$NoExportLibrary) {
+		unless (&main::ExportUnfrozen) {
+			if (-e $DefFile) { # effectively "if project frozen ..."
+				my $LibLinkAs = ($BasicTrgType=~/^IMPLIB$/io) ? $LinkAs : $Trg;
+				&main::Output(
+					" ", &Generic_Quote("\$(EPOCLIB)\\UDEB\\$ExportLibrary.lib"), "\n",
+					"\n",
+					&Generic_Quote("\$(EPOCLIB)\\UDEB\\$ExportLibrary.lib"), " : ",
+					&Generic_Quote($DefFile), "\n",
+					"\tperl -w -S prepdef.pl ",&Generic_Quote($DefFile)," \"\$(EPOCBLD)\\$ExportLibrary.prep.def\"\n",
+					"\t\$(COMPILER_PATH)$MWLD -msgstyle gcc \"\$(EPOCBLD)\\$ExportLibrary.prep.def\" -importlib -o \$\@",
+					" -addcommand \"out:$LibLinkAs\" -warnings off",
+					"\n"
+				);
+			} else {
+				&main::Output(
+					"\n",
+					"\t\@echo WARNING: Not attempting to create \"\$(EPOCLIB)\\UDEB\\$ExportLibrary.lib\".\n",
+					"\t\@echo When exports are frozen in \"$DefFile\", regenerate Makefile.\n"
+				);
+			}
+		} else {
+			&main::Output(
+				"\n",
+				"\t\@echo Not attempting to create \"\$(EPOCLIB)\\UDEB\\$ExportLibrary.lib\"\n",
+				"\t\@echo from frozen .DEF file, since EXPORTUNFROZEN specified.\n"
+			);
+		}
+	}
+	&main::Output(
+		"\n",
+		"\n",
+		"FREEZE :\n"
+	);
+	if ($DefFile and $BasicTrgType!~/^IMPLIB$/io) {
+		&main::Output(
+#			call perl on the script here so nmake will die if there are errors - this doesn't happen if calling perl in a batch file
+			"\tperl -w -S efreeze.pl \$(EFREEZE_ALLOW_REMOVE) \"$DefFile\" \"\$(EPOCBLD)\\$ExportLibrary.def\" \n"
+		);
+	}
+	&main::Output(
+		"\n",
+		"CLEANLIBRARY :\n"
+	);
+	if ($DefFile and !$NoExportLibrary) {
+		&main::Output(
+			"\t-\$(ERASE) \"\$(EPOCLIB)\\UDEB\\$ExportLibrary.lib\"\n"
+		);
+	}
+	&main::Output(
+		"\n"
+	);
+	&Generic_MakeWorkDir('MAKEWORKLIBRARY',"${LibPath}UDEB");
+
+	&Generic_Releaseables;
+
+	if($PlatName eq "VS6") {
+		VS6StartBldList();
+	}
+	elsif($PlatName eq "VS2003") 
+	{
+		VS2003StartBldList();
+	}
+
+}
+
+sub VS6StartBldList(){
+	my $BaseTrg=&main::BaseTrg;
+	my @BldList=&main::BldList;
+	my $Plat=&main::Plat;
+
+	# set up global IDE builds variable
+	%IdeBlds= (
+		UREL=> "$BaseTrg - Win32 Release",
+		UDEB=> "$BaseTrg - Win32 Debug",
+	);
+	if (&main::Plat eq 'TOOLS') {
+		%IdeBlds= (
+			REL=> "$BaseTrg - Win32 Release",
+			DEB=> "$BaseTrg - Win32 Debug",
+		);
+	}
+	
+
+	$DspText=join('',
+		"# Microsoft Developer Studio Project File - Name=\"$BaseTrg\" - Package Owner=<4>\n",
+		"# Microsoft Developer Studio Generated Build File, Format Version 6.00\n",
+		"# ** DO NOT EDIT **\n",
+		"\n"
+	);
+
+	$DspText.=join('',
+		"# TARGTYPE \"Win32 (x86) External Target\" 0x0106\n",
+		"\n",
+		"CFG=",$IdeBlds{$BldList[0]},"\n",
+		"!MESSAGE This is not a valid makefile. To build this project using NMAKE,\n",
+		"!MESSAGE use the Export Makefile command and run\n",
+		"!MESSAGE \n",
+		"!MESSAGE NMAKE /f \"",$BaseTrg,".mak\".\n",
+		"!MESSAGE \n",
+		"!MESSAGE You can specify a configuration when running NMAKE\n",
+		"!MESSAGE by defining the macro CFG on the command line. For example:\n",
+		"!MESSAGE \n",
+		"!MESSAGE NMAKE /f \"",$BaseTrg,".mak\" CFG=\"".$IdeBlds{$BldList[0]}."\"\n",
+		"!MESSAGE \n",
+		"!MESSAGE Possible choices for configuration are:\n",
+		"!MESSAGE \n"
+	);
+	
+	foreach (reverse @BldList) {
+		$DspText.=join('',
+			"!MESSAGE \"",$IdeBlds{$_},"\" (based on \"Win32 (x86) External Target\")"
+		);
+		$DspText.="\n";
+	}
+
+	$DspText.=join('',
+		"!MESSAGE \n",
+		"\n"
+	);
+
+	# BEGIN THE PROJECT
+	#------------------
+	$DspText.=join('',
+		"# Begin Project\n",
+		"# PROP AllowPerConfigDependencies 0\n",
+		"# PROP Scc_ProjName \"\"\n",
+		"# PROP Scc_LocalPath \"\"\n",
+		"\n"
+	);
+
+}
+
+sub VS2003StartBldList(){
+	my $BaseTrg=&main::BaseTrg;
+	my @BldList=&main::BldList;
+	my $Plat=&main::Plat;
+
+	$guid = `uuidgen.exe`;
+	$guid =~ s/\n//g;
+	$guid = uc $guid;
+# set up global IDE builds variable
+	%IdeBlds= (
+		UREL=> "Release|Win32",
+		UDEB=> "Debug|Win32",
+	);
+	if ($Plat eq 'TOOLS') {
+		%IdeBlds= (
+			REL=> "Release|Win32",
+			DEB=> "Debug|Win32",
+		);
+	}
+	
+
+	$VcprojText=join('',
+		"<?xml version=\"1.0\" encoding=\"Windows-1252\"?>\n",
+		"<VisualStudioProject\n",
+		"\tProjectType=\"Visual C++\"\n",
+		"\tVersion=\"7.10\"\n",
+		"\tName=\"$BaseTrg\"\n",
+		"\tProjectGUID=\"{$guid}\"\n",
+		"\tSccProjectName=\"\"\n",
+		"\tSccLocalPath=\"\"\n",
+		"\tKeyword=\"MakeFileProj\">\n",
+		"\t<Platforms>\n",
+		"\t\t<Platform\n",
+		"\t\t\tName=\"Win32\"/>\n",
+		"\t</Platforms>\n",
+		"\t<Configurations>\n",
+		"\n"
+	);
+
+}
+
+my $uidfile;
+sub PMBld {
+
+	my $AifStructRef=&main::AifStructRef;
+	my @SrcList=&main::SrcList;
+	my $BaseTrg=&main::BaseTrg;
+	my $BitMapStructRef=&main::BitMapStructRef;
+	my $Bld=&main::Bld;
+	my $ChopBldPath=&main::Path_Chop(&main::BldPath);
+	my $ExportLibrary=&main::ExportLibrary;
+	my $NoExportLibrary=&main::NoExportLibrary;
+	my $DefFile=&main::DefFile;
+	my $EPOCIncPath=&main::EPOCIncPath;
+	my $FirstLib=&main::FirstLib;
+	my $BasicTrgType=&main::BasicTrgType;
+	my @LibList;
+	my $RelPath=&main::RelPath;
+	my $ResourceStructRef=&main::ResourceStructRef;
+	my @StatLibList=&main::StatLibList;
+	my $Trg=&main::Trg;
+	my $TrgPath=&main::TrgPath;
+	my $TrgType=&main::TrgType;
+
+	$uidfile = "$BaseTrg.UID";
+
+	if ($Bld =~ /DEB/) {
+		@LibList=&main::DebugLibList;
+	} else {
+		@LibList=&main::LibList;
+	}
+ 	
+# Handle migration of binaries to secure location
+
+	my $BLDTRGPATH = "";
+	my $AIFBLDTRGPATH = "";
+	if ($TrgPath) {
+		$BLDTRGPATH = "\$(TRGDIR)\\";	    # handles TARGETPATH
+		$AIFBLDTRGPATH = $BLDTRGPATH;
+		&Winutl_AdjustTargetPath(\$BLDTRGPATH);
+	}
+	$BLDTRGPATH = "\$(EPOCTRG$Bld)\\".$BLDTRGPATH;
+	$AIFBLDTRGPATH = "\$(EPOCTRG$Bld)\\".$AIFBLDTRGPATH;
+
+	# REAL TARGETS
+	#-------------
+	&main::Output(
+		"# REAL TARGET - BUILD VARIANT $Bld\n",
+		"\n"
+	);
+
+#	releasables
+	my @releaseables;
+	
+	unless (&main::Plat() eq 'TOOLS') {
+		if ($BasicTrgType !~ /^IMPLIB$/io) {
+			push @releaseables, "$BLDTRGPATH$Trg";
+			if ($Bld=~/REL$/o && $BasicTrgType!~/^LIB$/o) {
+				push @releaseables,"$BLDTRGPATH$Trg.map";
+			}
+			if (&Winutl_CopyForStaticLinkage) {
+				push @releaseables, "\$(EPOCTRG$Bld)\\$Trg";
+			}
+			my $BitMapRef;
+			foreach $BitMapRef (@$BitMapStructRef) {
+				push @releaseables, "\$(EPOCTRG$Bld)\\$$BitMapRef{TrgPath}$$BitMapRef{Trg}";
+			}
+			my $ResourceRef;
+			foreach $ResourceRef (@$ResourceStructRef) {
+				push @releaseables,"\$(EPOCTRG$Bld)\\$$ResourceRef{Trg}";
+			}
+			my $AifRef;
+			foreach $AifRef (@$AifStructRef) {
+				push @releaseables, "$AIFBLDTRGPATH$$AifRef{Trg}";
+			}
+		}
+		if (-e $DefFile and !$NoExportLibrary) { # effectively "if project frozen ..."
+			push @releaseables, "\$(EPOCLIB$Bld)\\$ExportLibrary.lib";
+		}
+		if ($Bld=~/DEB$/o) {
+			# debugging support files?
+		}
+	}
+	else {
+		if ($BasicTrgType !~ /^IMPLIB$/io) {
+			my $toolspath=&main::EPOCToolsPath();
+			push @releaseables, "$toolspath$Trg";
+		}
+	}
+
+	&main::Output(
+		"WHAT$Bld : WHATGENERIC\n",
+		"\n",
+		"CLEAN$Bld : CLEANBUILD$Bld CLEANRELEASE$Bld\n",
+		"\n",
+		"CLEANBUILD$Bld : \n",
+		"\t\@perl -w -S ermdir.pl \"\$(EPOCBLD$Bld)\"\n",
+		"\n",
+		"CLEANRELEASE$Bld : CLEANGENERIC\n",
+		"\n"
+	);
+	&Generic_WhatCleanTargets($Bld, "WHAT$Bld", "CLEANRELEASE$Bld", @releaseables);
+
+  my $adjustedTargetPath=$TrgPath;
+  &Winutl_AdjustTargetPath(\$adjustedTargetPath);
+  &Generic_MakeWorkDir("MAKEWORK$Bld", &main::BldPath);
+  &Generic_MakeWorkDir("MAKEWORK$Bld", "$RelPath$adjustedTargetPath");
+
+	&main::Output(
+		"\n",
+		"\n"
+	);
+
+	return if ($BasicTrgType=~/^IMPLIB$/io);
+
+	&main::Output(
+		"LISTING$Bld : MAKEWORK$Bld"
+	);
+	foreach (@SrcList) {
+		my $BaseSrc = &main::Path_Split('Base', $_);
+		my $Ext = &main::Path_Split('Ext', $_);
+		$BaseSrc.='_' if (lc($Ext) eq '.cia');
+		$BaseSrc =~ s/\.UID/_UID_/i if ($BaseSrc eq $uidfile);
+		
+   		&main::Output(
+			" \\\n\tLISTING$Bld$BaseSrc"
+   		);
+   	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+
+	&main::Output(
+		"LIBS$Bld="
+	);
+	foreach (@StatLibList) {
+		&main::Output(
+			" \\\n\t", &Generic_Quote("\$(EPOCSTATLINK$Bld)\\$_")
+		);
+	}
+	foreach (@LibList) {
+		&main::Output(
+			" \\\n\t", &Generic_Quote("\$(EPOCLINK$Bld)\\$_")
+		);
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+
+	&main::Output(
+		"LINK_OBJS$Bld="
+	);
+	my $have_uidfile = 0;
+	foreach (@SrcList) {
+		my $BaseSrc = &main::Path_Split('Base', $_);
+		my $Ext = &main::Path_Split('Ext', $_);
+		if ($BaseSrc eq $uidfile) {
+			$have_uidfile = 1;
+			next;
+		}
+		$BaseSrc.='_' if (lc($Ext) eq '.cia');
+   		&main::Output(
+			" \\\n",
+			"\t", &Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.o")
+   		);
+   	}
+	if ($Win32Resrc) {
+		my $resbase=&main::Path_Split('Base',$Win32Resrc);
+		&main::Output(
+			" \\\n",
+			"\t", &Generic_Quote("\$(EPOCBLD$Bld)\\$resbase.res")
+		);
+	}
+	if ($have_uidfile) {
+		# ensure that the uid file is at the end of the list, as it's implicit in
+		# CodeWarrior IDE projects.
+		&main::Output(
+			" \\\n",
+			"\t", &Generic_Quote("\$(EPOCBLD$Bld)\\$BaseTrg"."_UID_.o")
+		);
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+
+	&main::OutFormat(
+		"COMMON_LINK_FLAGS$Bld=",
+		' -stdlib'		# use default runtime library for compiler help functions
+	);
+	if ($MWLD eq "mwcc.exe") {
+		&main::OutFormat(
+			' -warnings on'	# on by default in mwccsym2.exe
+		);
+	}
+	if ($BasicTrgType=~/^(EXE|DLL)$/o) {
+		unless (&main::Plat eq 'TOOLS') {
+			&main::OutFormat(
+				" \"\$(EPOCSTATLINK$Bld)\\$FirstLib\""
+			);
+		}
+	}
+	foreach my $lib (@Win32LibList) {
+		 my $win32lib = $lib;    # take a copy, to avoid updating contents of Win32LibList!
+		$win32lib = "-l$win32lib" unless ($win32lib =~ /\\/);
+		&main::OutFormat(
+			" ",lc $win32lib
+		);
+	}
+	if ($BasicTrgType=~/^DLL$/o) {
+		&main::OutFormat(
+			"$BaseAddressFlag",
+			' -noentry',
+			' -shared'
+		);
+	}
+	elsif ($TrgType=~/^EXEXP$/o) {
+		&main::OutFormat(
+			"$BaseAddressFlag",
+			' -noentry',
+			' -shared'
+		);
+	}
+	elsif ($BasicTrgType=~/^EXE$/o) {
+		unless (&main::Plat eq 'TOOLS') {
+			&main::OutFormat(
+				' -m "?_E32Bootstrap@@YGXXZ"'
+			);
+		}
+	}
+	if (&main::Plat=~/^(WINC|TOOLS)$/o && $BasicTrgType=~/^EXE$/o) {
+		&main::OutFormat(
+			' -subsystem console'
+		);
+	}
+	else {
+		&main::OutFormat(
+			' -subsystem windows'
+		);
+	}
+	if (&main::HeapSize) {
+		my %HeapSize=&main::HeapSize;
+		&main::OutFormat(
+			' -heapreserve=',RoundUp1k($HeapSize{Max}),' -heapcommit=',RoundUp1k($HeapSize{Min})
+		);
+	}
+	if ($BasicTrgType=~/^(DLL|EXE)$/o) {
+		if ($Bld=~/DEB$/o) {
+			if($PlatName eq "VS6")
+			{
+				&main::OutFormat(
+					' -sym codeview'
+				);
+			}
+			else
+			{
+				&main::OutFormat(
+					' -sym codeview_new'
+				);
+			}
+			#mention the debug version of the runtime library
+			&main::OutFormat(
+				' -lMSL_All_MSE_Symbian_D.lib'
+				);
+		}
+		else
+		{
+			#mention the release version of the runtime library
+			&main::OutFormat(
+				' -lMSL_All_MSE_Symbian.lib'
+				);
+		}
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+
+	my $EntrySymbol='';
+	if ($BasicTrgType=~/^DLL$/o || $TrgType=~/^EXEXP$/o) {
+		my $Include="";
+		if ($BasicTrgType=~/^DLL$/o) {
+			$Include="-m __E32Dll";
+			$EntrySymbol='__E32Dll';
+		}
+		else {
+			$Include="-m __E32Startup";
+			$EntrySymbol='__E32Startup';
+		}
+		&main::Output(
+			"STAGE1_LINK_FLAGS$Bld= \$(COMMON_LINK_FLAGS$Bld) \$(LIBS$Bld) \\\n\t",
+			" -o \"\$(EPOCBLD$Bld)\\$Trg\"", 
+			' -export dllexport',
+			" $Include",
+			' -nocompactimportlib', 
+			" -implib \"\$(EPOCBLD$Bld)\\$ExportLibrary.lib\"",
+			" -addcommand \"out:$Trg\" -warnings off",
+			"\n",
+		);
+	}
+	my $AbsentSubst = '';
+	if ($EntrySymbol) {
+		$AbsentSubst = " -absent $EntrySymbol";
+	}
+
+	&main::Output(
+		"LINK_FLAGS$Bld= \$(COMMON_LINK_FLAGS$Bld) \$(LIBS$Bld) \\\n\t",
+		" -o \"$BLDTRGPATH$Trg\"" 
+	);
+	if ($Bld=~/REL$/o && $BasicTrgType!~/^LIB$/o) {
+		# Generate map file for release build executables
+		&main::Output(
+			" -map \"$BLDTRGPATH$Trg.map\"", 
+		);
+	}
+	if ($BasicTrgType=~/^DLL$/o || $TrgType=~/^EXEXP$/o) {
+		&main::Output(
+			" -f \"\$(EPOCBLD)\\$ExportLibrary.def\"",	# use generated .DEF file
+		);
+		if (&main::ExportUnfrozen) {
+			&main::Output(
+				" -implib \"\$(EPOCLIB)\\UDEB\\$ExportLibrary.lib\"",
+				" -addcommand \"out:$Trg\" -warnings off"
+			);
+		}
+		else {
+			&main::Output(
+				' -noimplib'
+			);
+		}
+	}
+	else {
+		&main::Output(
+			' -noimplib'
+		);
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+
+	&main::Output(
+		&Generic_Quote("$BLDTRGPATH$Trg"), " : \$(LINK_OBJS$Bld) "
+	);
+	if (-e $DefFile) { # effectively "if project frozen ..."
+		&main::Output(
+			&Generic_Quote($DefFile)
+		);
+	}
+	if ($BasicTrgType=~/^(DLL|EXE)$/o) {
+		unless (&main::Plat eq 'TOOLS') {
+			&main::Output(
+				" ", &Generic_Quote("\$(EPOCSTATLINK$Bld)\\$FirstLib")
+			);
+		}
+	}
+	&main::Output(
+		" \$(LIBS$Bld)\n"
+	);
+
+
+#	Link by name first time round for dlls
+	if ($BasicTrgType=~/^DLL$/o || $TrgType=~/^EXEXP$/o) {
+		&main::Output(
+			"\t\$(COMPILER_PATH)$MWLD -msgstyle gcc \$(STAGE1_LINK_FLAGS$Bld) -l \$(EPOCBLD$Bld) -search \$(notdir \$(LINK_OBJS$Bld))\n",
+			"\t\$(ERASE) \"\$(EPOCBLD$Bld)\\$Trg\"\n",
+		);
+
+#		Generate an export info file
+		my $show_options = "names,verbose";
+		$show_options = "names,unmangled,verbose" if ($MWLD eq "mwldsym2.exe");
+		&main::Output(
+			"\t\$(COMPILER_PATH)$MWLD -msgstyle gcc -S -show only,$show_options -o \"\$(EPOCBLD$Bld)\\$ExportLibrary.inf\" \"\$(EPOCBLD$Bld)\\$ExportLibrary.lib\"\n"
+		);
+
+#		call makedef to reorder the export information
+		&main::Output(
+#			call perl on the script here so nmake will die if there are errors - this doesn't happen if calling perl in a batch file
+			"\tperl -w -S makedef.pl $AbsentSubst -Inffile \"\$(EPOCBLD$Bld)\\$ExportLibrary.inf\""
+		);
+		if (SysTrg()) {
+    			&main::Output( "\t\t-SystemTargetType \\\n" );
+	    	}		
+		if (-e $DefFile) { # effectively "if project frozen ..."
+			&main::Output(
+				" -Frzfile \"$DefFile\""
+			);
+		}
+		my $Export;
+		my $Ordinal=1;
+		foreach $Export (&main::Exports) {
+#				replace "$" with "$$" so that NMAKE doesn't think there's a macro in the function name
+			$Export=~s-\$-\$\$-go;
+			&main::Output(
+				" -$Ordinal $Export"
+			);
+			$Ordinal++;
+		}
+		&main::Output(
+			" \"\$(EPOCBLD)\\$ExportLibrary.def\" \n",
+			"\t\$(ERASE) \"\$(EPOCBLD$Bld)\\$ExportLibrary.inf\"\n",
+			"\t\$(ERASE) \"\$(EPOCBLD$Bld)\\$ExportLibrary.lib\"\n"
+		);
+	}
+
+#	Perform the final link step
+	&main::Output(
+		"\t\$(COMPILER_PATH)$MWLD -msgstyle gcc "
+	);
+	if ($BasicTrgType=~/^LIB$/o) {
+		&main::Output(
+			"-library "
+		);
+	}
+	&main::Output(
+		"\$(LINK_FLAGS$Bld) -l \$(EPOCBLD$Bld) -search \$(notdir \$(LINK_OBJS$Bld))\n",
+	);
+
+	if (&main::Plat eq 'TOOLS') {
+		&main::Output(
+			"\tcopy \"BLDTRGPATH$Trg\" \"",&main::EPOCToolsPath,"$Trg\"\n"
+		);
+	}
+	if (&Winutl_CopyForStaticLinkage) {
+		&Generic_MakeWorkDir("MAKEWORK$Bld", "\$(EPOCTRG$Bld)");
+		&main::Output(
+			"\n",
+			&Generic_Quote("\$(EPOCTRG$Bld)\\$Trg"), " : ", 
+			&Generic_Quote("$BLDTRGPATH$Trg"), "\n",
+			"\t", &Generic_CopyAction(),
+		);
+	}
+
+	&main::Output(
+		"\n",
+		"\n"
+	);
+
+	if($PlatName eq "VS6") {
+		VS6Bld();
+	}
+	else
+	{
+		VS2003Bld();
+	}
+}
+
+sub VS6Bld(){
+
+	my $BaseTrg=&main::BaseTrg;
+	my $Bld=&main::Bld;
+	my @BldList=&main::BldList;
+	my $ChopBldPath=&main::Path_Chop(&main::BldPath);
+	my $ChopRelPath=&main::Path_Chop(&main::RelPath);
+	my $Trg=&main::Trg;
+
+
+	if ($Bld eq $BldList[0]) {
+		$DspText.=join('',
+			"!IF  \"\$(CFG)\" == \"$IdeBlds{$Bld}\"\n",
+			"\n"
+		);
+	}
+	else {
+		$DspText.=join('',
+			"!ELSEIF  \"\$(CFG)\" == \"$IdeBlds{$Bld}\"\n",
+			"\n"
+		);
+	}
+	$DspText.=join('',
+		"# PROP BASE Use_MFC 0\n"
+	);
+	if ($Bld=~/REL$/o) {
+		$DspText.=join('',
+			"# PROP BASE Use_Debug_Libraries 0\n",
+			"# PROP BASE Output_Dir \".\\Release\"\n",
+			"# PROP BASE Intermediate_Dir \".\\Release\"\n"
+		);
+	}
+	elsif ($Bld=~/DEB$/o) {
+		$DspText.=join('',
+			"# PROP BASE Use_Debug_Libraries 1\n",
+			"# PROP BASE Output_Dir \".\\Debug\"\n",
+			"# PROP BASE Intermediate_Dir \".\\Debug\"\n"
+		);
+	}
+
+	$DspText.=join('',
+		"# PROP BASE Cmd_Line \"NMAKE /f ",$BaseTrg,".mak \"\n",
+		"# PROP BASE Rebuild_Opt \"/a\"\n",
+		"# PROP BASE Target_File \"",$Trg,"\"\n",
+		"# PROP BASE Bsc_Name \"",$BaseTrg,".bsc\"\n",
+		"# PROP BASE Target_Dir \"\"\n"
+	);
+
+	$DspText.=join('',
+			"# PROP Use_MFC\n"
+	);
+	if ($Bld=~/REL$/o) {
+		$DspText.=join('',
+			"# PROP Use_Debug_Libraries 0\n"
+		);
+	}
+	elsif ($Bld=~/DEB$/o) {
+		$DspText.=join('',
+			"# PROP Use_Debug_Libraries 1\n"
+		);
+	}
+
+	$DspText.=join('',
+		"# PROP Output_Dir \"$ChopRelPath\"\n",
+		"# PROP Intermediate_Dir \"$ChopBldPath\"\n",
+		"# PROP Cmd_Line \"\"$ENV{EPOCROOT}epoc32\\tools\\MAKE.exe\" -r -f ",&main::BaseMak,"_$Bld.mak \"\n",
+		"# PROP Rebuild_Opt \"REBUILD\"\n",
+		"# PROP Target_File \"",$Trg,"\"\n"
+	);
+
+	if ($Bld=~/REL$/o) {
+		$DspText.=join('',
+			"# PROP Bsc_Name \"",$BaseTrg,".bsc\"\n"
+		);
+	}
+	elsif ($Bld=~/DEB$/o) {
+		$DspText.=join('',
+			"# PROP Bsc_Name \"\"\n"
+		);
+	}
+
+	$DspText.=join('',
+		"# PROP Target_Dir \"\"\n"
+	);
+
+	$DspText.=join('',
+		"\n"
+	);
+
+}
+
+sub VS2003Bld(){
+	my $BaseTrg=&main::BaseTrg;
+	my $Bld=&main::Bld;
+	my @BldList=&main::BldList;
+	my $ChopBldPath=&main::Path_Chop(&main::BldPath);
+	my $ChopRelPath=&main::Path_Chop(&main::Path_MakeRltToBase(&main::MakeFilePath, &main::RelPath));
+	my $Trg=&main::Trg;
+
+	$VcprojText.=join('',
+		"\t\t<Configuration\n",
+		"\t\t\tName=\"",$IdeBlds{$Bld},"\"\n",
+		"\t\t\tOutputDirectory=\"$ChopRelPath\"\n",
+		"\t\t\tIntermediateDirectory=\"$ChopBldPath\"\n",
+		"\t\t\tConfigurationType=\"0\"\n",
+		"\t\t\tUseOfMFC=\"0\"\n",
+		"\t\t\tATLMinimizesCRunTimeLibraryUsage=\"FALSE\">\n",
+		"\t\t\t<Tool\n",
+		"\t\t\t\tName=\"VCNMakeTool\"\n",
+		"\t\t\t\tBuildCommandLine=\"\&quot;$ENV{EPOCROOT}epoc32\\tools\\make.exe\&quot; -r -f ",&main::BaseMak,".mak $Bld\"\n",
+		"\t\t\t\tReBuildCommandLine=\"\&quot;$ENV{EPOCROOT}epoc32\\tools\\make.exe\&quot; -r -f ",&main::BaseMak,".mak CLEAN $Bld \"\n",
+		"\t\t\t\tCleanCommandLine=\"\&quot;$ENV{EPOCROOT}epoc32\\tools\\make.exe\&quot; -r -f ",&main::BaseMak,".mak CLEAN$Bld\"\n",
+		"\t\t\t\tOutput=\"$ChopRelPath\\$Trg\"/>\n",
+		"\t\t</Configuration>\n"
+		);
+
+}
+
+sub PMStartSrcList {
+
+	&main::Output(
+		"# SOURCES\n",
+		"\n"
+	);
+
+	if($PlatName eq "VS6") {
+		VS6StartSrcList();
+	}
+	else
+	{
+		VS2003StartSrcList();
+	}
+}
+
+sub VS6StartSrcList(){
+	my @BldList=&main::BldList;
+
+
+	$DspText.=join('',
+		"\n!ENDIF\n\n",
+		"# Begin Target\n",
+		"\n"
+	);
+	foreach (@BldList) {
+		$DspText.=join('',
+			"# Name \"".$IdeBlds{$_}."\"\n"
+		);
+	}
+	$DspText.=join('',
+		"# Begin Group \"Source Files\"\n",
+		"\n",
+		"# PROP Default_Filter \"cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90\"\n"
+	);
+
+}
+
+sub VS2003StartSrcList(){
+
+	$VcprojText.=join('',
+		"\t</Configurations>\n",
+		"\t<References>\n",
+		"\t</References>\n"
+	);
+
+	$VcprojText.=join('',
+		"\t<Files>\n",
+		"\t\t<Filter\n",
+		"\t\t\tName=\"Source Files\"\n",
+		"\t\t\tFilter=\"cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90\"\n",
+		"\t\t\tUniqueIdentifier=\"{4FC737F1-C7A5-4376-A066-2A32D752A2FF}\">\n"
+	);
+
+}
+
+
+sub PMBitMapBld {
+
+	&Generic_BitMapBld;
+
+	# Need to copy generic resource into emulated Z drive
+
+	my $BitMapRef=&main::BitMapRef;
+
+	my $ChopTrgPath="";
+	if ($$BitMapRef{TrgPath}) {
+		$ChopTrgPath.="\\$$BitMapRef{TrgPath}";
+		chop $ChopTrgPath;
+	}
+
+	my @BldList=&main::BldList;
+	my $Bld;
+	foreach $Bld (@BldList) {
+		my $path="\$(EPOCTRG$Bld)$ChopTrgPath";
+		&main::Output(
+			&Generic_Quote("$path\\$$BitMapRef{Trg}"), " : ", 
+			&Generic_Quote("$$BitMapRef{GenericTrg}"), "\n",
+			"\t", &Generic_CopyAction(),
+			"\n"
+		);
+	}
+}
+
+sub PMResrcBld {
+
+	&Generic_ResrcBld; 
+
+	# Need to copy generic resource into emulated Z drive
+
+	my $ResourceRef=&main::ResourceRef;
+	my @BldList=&main::BldList;
+
+	foreach my $Bld (@BldList) {
+		&main::Output(
+			&Generic_Quote("\$(EPOCTRG$Bld)\\$$ResourceRef{Trg}"), " : ", 
+			&Generic_Quote("$$ResourceRef{GenericTrg}"), "\n",
+			"\t", &Generic_CopyAction(),
+			"\n"
+		);
+	}
+
+	if($PlatName eq "VS6") {
+		VS6ResrcBld();
+	}
+	else
+	{
+		VS2003ResrcBld();
+	}
+
+}
+
+sub VS6ResrcBld() {
+
+	my $ResourceRef=&main::ResourceRef;
+	my @BldList=&main::BldList;
+
+	my $Resrc=ucfirst lc &main::Path_Split('File', $$ResourceRef{Source});
+	my $BaseResrc=&main::Path_Split('Base', $$ResourceRef{Source});
+	my $SrcPath=&main::Path_Split('Path', $$ResourceRef{Source});
+	my $TrgPath=&main::Path_Split('Path', $$ResourceRef{Trg});
+	my @LangList=($$ResourceRef{Lang});
+	
+	my $inputpath="$SrcPath$Resrc";
+	
+	$DspText.=join('',
+		"# Begin Source File\n",
+		"\n",
+		"SOURCE=$inputpath\n"
+	);
+
+	my $ChopBldPath=&main::Path_Chop(&main::BldPath);
+	my @DepList=&main::DepList;
+	my $PathBaseDsp=&main::MakeFilePath.&main::BaseMak;
+	my $RelPath=&main::RelPath;
+
+	$DspText.=join('',
+		"USERDEP__$BaseResrc="
+	);
+	my $Dep;
+	foreach $Dep (@DepList) {
+		$DspText.=join('',
+			"\"$Dep\"\t"
+		);
+	}
+	$DspText.=join('',
+		"\n"
+	);
+
+	my $Bld;
+	foreach $Bld (@BldList) {
+		my $ResrcTrgFullName="$RelPath$Bld\\$TrgPath$BaseResrc.r";
+		if ($Bld eq $BldList[0]) {
+			$DspText.=join('',
+				'!IF'
+			);
+		}
+		else {
+			$DspText.=join('',
+				'!ELSEIF'
+			);
+		}
+		$DspText.=join('',
+			"  \"\$(CFG)\" == \"$IdeBlds{$Bld}\"\n",
+			"\n"
+		);
+		$DspText.=join('',
+			"# PROP Intermediate_Dir \"$ChopBldPath\"\n",
+			"# Begin Custom Build - Building resources from $Resrc\n",
+			"InputPath=$inputpath\n",
+			"\n",
+			"BuildCmds= \\\n",
+			"\tnmake -nologo -f \"${PathBaseDsp}.SUP.MAKE\"\\\n",
+			"  \"$ResrcTrgFullName\"\n"
+		);
+		my $Lang;
+		foreach $Lang (@LangList) {
+#			change again to avoid VC5 linking the resource
+			my $TmpLang=$Lang;
+			if ($TmpLang eq 'SC') {
+				$TmpLang.='.dummy';
+			}
+			$DspText.=join('',
+				"\n",
+				"\"$ResrcTrgFullName$TmpLang\" : \$(SOURCE) \"\$(INTDIR)\"\\\n",
+				" \"\$(OUTDIR)\"\n",
+				"   \$(BuildCmds)\n",
+			);
+		}
+		$DspText.=join('',
+			"# End Custom Build\n",
+			"\n"
+		);
+	}
+	$DspText.=join('',
+		"!ENDIF \n",
+		"\n",
+		"# End Source File\n"
+	);
+
+}
+
+sub VS2003ResrcBld() {
+
+}
+
+sub PMDoc {
+
+###### from PMDoc of VC6 
+	
+	if($PlatName eq "VS6") {
+		VS6Doc();
+	}
+	else
+	{
+		VS2003Doc();
+	}
+
+}
+
+sub VS6Doc() {
+
+	my $SrcPath=&main::SrcPath;
+
+	$DspText.=join('',
+		"# Begin Source File\n",
+		"\n",
+		"SOURCE=",$SrcPath,ucfirst lc &main::Doc,"\n",
+		"# PROP Exclude_From_Build 1\n",
+		"# End Source File\n"
+	);
+
+}
+sub VS2003Doc() {
+
+
+}
+
+sub PMAifBld {
+
+	&Generic_AifBld;
+
+	# Need to copy generic resource into emulated Z drive
+
+	my $AifRef=&main::AifRef;
+	my $TrgDir="";
+	if (&Generic_Definition("TRGDIR") ne "") {
+		$TrgDir="\\\$(TRGDIR)";
+	}
+
+	my @BldList=&main::BldList;
+	my $Bld;
+	foreach $Bld (@BldList) {
+		my $path="\$(EPOCTRG$Bld)$TrgDir";
+		&main::Output(
+			&Generic_Quote("$path\\$$AifRef{Trg}"), " : ",
+			&Generic_Quote("$$AifRef{GenericTrg}"), "\n",
+			"\t", &Generic_CopyAction(),
+			"\n"
+		);
+	}
+}
+
+
+sub PMStartSrc {
+	my $Src=&main::Src;
+
+	&main::Output(
+		"# Source $Src\n",
+		"\n"
+	);
+
+	if($PlatName eq "VS6") {
+		VS6StartSrc();
+	}
+	else
+	{
+		VS2003StartSrc();
+	}
+
+}
+
+sub VS6StartSrc() {
+
+	$DspText.=join('',
+		"# Begin Source File\n",
+		"\n",
+		"SOURCE=",&main::SrcPath,ucfirst lc &main::Src,"\n",
+		"# End Source File\n"
+	);
+
+}
+
+sub VS2003StartSrc(){
+	$VcprojText.=join('',
+		"\t\t\t<File\n",
+		"\t\t\t\tRelativePath=\"",&main::Path_MakeRltToBase(&main::MakeFilePath, &main::SrcPath),ucfirst lc &main::Src,"\">\n",
+		"\t\t\t</File>\n"
+	);
+
+}
+
+sub PMSrcDepend {
+	my @BldList=&main::BldList;	
+	my @DepList=&main::DepList;
+	my $BaseSrc=&main::BaseSrc;
+	$BaseSrc =~ s/\.UID/_UID_/i if ($BaseSrc eq $uidfile);
+
+	return if (@DepList == 0);
+
+	foreach (@BldList) {
+		&main::Output(
+			&Generic_Quote("\$(EPOCBLD$_)\\$BaseSrc.o"), " \\\n",
+		);
+	}
+	&main::Output(
+		":"
+	);
+	foreach (@DepList) {
+		&main::Output(
+		" \\\n\t", &Generic_Quote($_)
+		);
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+
+	# Generate user header list for this src, merge with list for all sources
+	foreach (&main::DepList) {
+		$PrjHdrs{$_}='unusedval';
+	}
+
+}
+
+sub PMSrcBldDepend {
+	my $Bld=&main::Bld;
+	my @DepList=&main::DepList;
+	my $BaseSrc=&main::BaseSrc;
+	$BaseSrc =~ s/\.UID/_UID_/i if ($BaseSrc eq $uidfile);
+
+	return if (@DepList == 0);
+
+	&main::Output(
+		&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.o"), " :",
+	);
+	foreach (@DepList) {
+		&main::Output(
+			" \\\n\t", &Generic_Quote($_)
+		);
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+}
+
+sub PMEndSrcBld {
+	my $BaseSrc=&main::BaseSrc;
+	$BaseSrc =~ s/\.UID/_UID_/i if ($BaseSrc eq $uidfile);
+	my $Bld=&main::Bld;
+	my $Plat=&main::Plat;
+	my $Src=&main::Src;
+	my $SrcPath=&main::SrcPath;
+	my $Ext=&main::ExtSrc;
+	my $Cia = (lc($Ext) eq '.cia') ? 1 : 0;
+
+	if ($Cia) {
+		&main::Output(
+			&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc\_.o"), " : ",
+			&Generic_Quote("$SrcPath$Src"), "\n",
+			"\techo $Src\n",
+			"\t\$(CW$Bld) -lang c++ -o \"\$\@\" -c \"$SrcPath$Src\"\n",
+			"\n",
+#			assembler listing target - uses implicit rule to do disassembly
+			"LISTING$Bld$BaseSrc\_ : ", &Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc\_.lis"), "\n",
+			"\t", &Generic_CopyAction("$SrcPath$BaseSrc\_.$Plat.lst"),
+			"\n"
+		);
+	} else {
+		&main::Output(
+			&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.o"), " : ",
+			&Generic_Quote("$SrcPath$Src"), "\n",
+			"\techo $Src\n",
+			"\t\$(CW$Bld) -o \"\$\@\" -c \"$SrcPath$Src\"\n",
+			"\n",
+#			assembler listing target - uses implicit rule to do disassembly
+			"LISTING$Bld$BaseSrc : ", &Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.lis"), "\n",
+			"\t", &Generic_CopyAction("$SrcPath$BaseSrc.$Plat.lst"),
+			"\n"
+		);
+	}
+
+
+
+}
+
+sub PMEndSrc {
+
+	&main::Output(
+		"\n",
+		"\n"
+	);
+}
+
+sub PMEndSrcList {
+
+	my $show_options = "source";
+	$show_options = "source,unmangled,comments" if ($MWLD eq "mwldsym2.exe");
+	
+	&main::Output(
+		"\n",
+		"# Implicit rule for generating .lis files\n",
+		"\n",
+		".SUFFIXES : .lis .o\n",
+		"\n",
+		".o.lis:\n",
+		"\t\$(COMPILER_PATH)$MWLD -msgstyle gcc -S -show $show_options \$< -o \$\@\n",
+		"\n",
+		"\n"
+	);
+
+	if ($Win32Resrc) {
+		my @BldList=&main::BldList;
+		my @DepList=&main::Deps_GenDependsL($Win32Resrc);
+
+		&main::Output(
+			"# Win32 Resource $Win32Resrc\n",
+			"\n",
+			"DEPEND="
+		);
+		foreach (@DepList) {
+			&main::Output(
+				" \\\n\t", &Generic_Quote($_)
+			);
+		}
+		&main::Output(
+			"\n",
+			"\n"
+		);
+	
+		my $Bld;
+		my $resbase=&main::Path_Split('Base',$Win32Resrc);
+		my $respath=&main::Path_Chop(&main::Path_Split('Path',$Win32Resrc));
+		foreach $Bld (@BldList) {
+			&main::Output(
+				&Generic_Quote("\$(EPOCBLD$Bld)\\$resbase.res"), " : ",
+				&Generic_Quote($Win32Resrc), " \$(DEPEND)\n",
+				"\tmwwinrc -o \$\@ \"$Win32Resrc\"\n",
+				"\n"
+			);
+		}
+		&main::Output(
+			"\n",
+			"\n"
+		);
+	}
+
+	# Deal with accumulated MAKEDIRS etc.
+
+	&Generic_End;
+
+	my $BaseDsp=&main::BaseMak;
+	my $PathBaseDsp=&main::MakeFilePath.$BaseDsp;
+
+	&main::Path_DelFiles("$PathBaseDsp.MAK","$PathBaseDsp.MDP","$PathBaseDsp.NCB","$PathBaseDsp.OPT","$PathBaseDsp.PLG","$PathBaseDsp.SLN","$PathBaseDsp.VCPROJ","$PathBaseDsp.DSW","$PathBaseDsp.DSP","${PathBaseDsp}_UREL.MAK","${PathBaseDsp}_UDEB.MAK");
+
+	if($PlatName eq "VS6")
+	{
+		VS6EndSrcList();
+	}
+	elsif($PlatName eq "VS2003")
+	{
+		VS2003EndSrcList();
+	}
+}
+
+sub VS6EndSrcList() {
+
+	my $BaseDsp=&main::BaseMak;    
+	my $PathBaseDsp=&main::MakeFilePath.$BaseDsp;  
+	my $BaseTrg=&main::BaseTrg;
+
+	$DspText.=join('',
+		"# End Group\n",
+		"# Begin Group \"Resource Files\"\n",
+		"\n",
+		"# PROP Default_Filter \"ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe\"\n"
+	);
+	if ($Win32Resrc) {
+		$DspText.=join('',
+			"# Begin Source File\n",
+			"\n",
+			"SOURCE=",ucfirst lc $Win32Resrc,"\n",
+			"# End Source File\n"
+		);
+		# Generate user header list for this src, merge with list for all sources
+		foreach (&main::Deps_GenDependsL($Win32Resrc)) {
+			$PrjHdrs{$_}='unusedval';
+		}
+	}
+	$DspText.=join('',
+		"# End Group\n"
+	);
+
+	# Use the global %PrjHdrs Hash to produce user header listing
+	$DspText.=join('',
+		"# Begin Group \"Header Files\"\n",
+		"\n",
+		"# PROP Default_Filter \"h;hpp;hxx;hm;inl;fi;fd\"\n"
+	);
+	foreach (keys %PrjHdrs) {
+		$DspText.=join('',
+			"# Begin Source File\n",
+			"\n",
+			"SOURCE=",&main::Path_Split('Path',$_),ucfirst lc &main::Path_Split('File',$_),"\n",
+			"# End Source File\n"
+		);
+	}
+
+
+	$DspText.=join('',
+		"# End Group\n",
+		"# Begin Group \"Make Files\"\n",
+		"\n",
+		"# PROP Default_Filter \"mak;mk\"\n"
+	);
+	$DspText.=join('',
+		"# Begin Source File\n",
+		"\n",
+		"SOURCE=",ucfirst lc $PathBaseDsp,".mak\n",
+		"# End Source File\n"
+	);
+
+	$DspText.=join('',
+		"# End Group\n",
+		"# End Target\n",
+		"# End Project\n",
+	);
+
+
+	&main::CreateExtraFile("$PathBaseDsp.dsp",$DspText);
+
+	my $RelMakText=join('',
+		"\n",
+		"BLD: UREL\n",
+		"REBUILD : CLEANUREL UREL\n",
+		"\n",
+		"include ",&main::BaseMak,".mak\n",
+		"\n"
+	);
+
+	&main::CreateExtraFile("${PathBaseDsp}_UREL.mak",$RelMakText);
+
+
+	my $DebMakText=join('',
+		"\n",
+		"BLD: UDEB\n",
+		"REBUILD : CLEANUDEB UDEB\n",
+		"\n",
+		"include ",&main::BaseMak,".mak\n",
+		"\n"
+	);
+
+	&main::CreateExtraFile("${PathBaseDsp}_UDEB.mak",$DebMakText);
+
+	my $DswText=join(
+		"\n",
+		"Microsoft Developer Studio Workspace File, Format Version 6.00",
+		'# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!',
+		'',
+		'#'x79,
+		'',
+		"Project: \"$BaseDsp\"=.\\$BaseDsp.dsp - Package Owner=<4>",
+		'',
+		'Package=<5>',
+		'{{{',
+		'}}}',
+		'',
+		'Package=<4>',
+		'{{{',
+		'}}}',
+		'',
+		'#'x79,
+		'',
+		'Global:',
+		'',
+		'Package=<5>',
+		'{{{',
+		'}}}',
+		'',
+		'Package=<3>',
+		'{{{',
+		'}}}',
+		'',
+		'#'x79,
+		''
+	);
+
+	&main::CreateExtraFile("$PathBaseDsp.DSW",$DswText);
+
+
+}
+
+sub VS2003EndSrcList() {
+
+	my $BaseDsp=&main::BaseMak;    
+	my $PathBaseDsp=&main::MakeFilePath.$BaseDsp;  
+
+# Use the global %PrjHdrs Hash to produce user header listing
+	$VcprojText.=join('',
+		"\t\t</Filter>\n",
+		"\t\t<Filter\n",
+		"\t\t\tName=\"Header Files\"\n",
+		"\t\t\tFilter=\"h;hpp;hxx;hm;inl;fi;fd\"\n",
+		"\t\t\tUniqueIdentifier=\"{93995380-89BD-4b04-88EB-625FBE52EBFB}\">\n"
+	);
+
+	foreach (keys %PrjHdrs) {
+		$VcprojText.=join('',
+			"\t\t\t<File\n",
+			"\t\t\t\tRelativePath=\"",&main::Path_MakeRltToBase(&main::MakeFilePath, &main::Path_Split('Path',$_)) 
+							, &main::Path_Split('File',$_),"\">","\n",
+			"\t\t\t</File>\n"
+		);
+	}	
+	$VcprojText.=join('',
+		"\t\t</Filter>\n"
+	);
+
+	$VcprojText.=join('',
+		"\t\t<Filter\n",
+		"\t\t\tName=\"Resource Files\"\n",
+		"\t\t\tFilter=\"ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe\"\n",
+		"\t\t\tUniqueIdentifier=\"{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}\">\n"
+	);
+
+	if ($Win32Resrc) {
+		$VcprojText.=join('',
+			"\t\t\t<File\n",
+			"\t\t\t\tRelativePath=\"", &main::Path_MakeRltToBase(&main::MakeFilePath, $Win32Resrc),"\">\n",
+			"\t\t\t</File>\n"
+		);
+		# Generate user header list for this src, merge with list for all sources
+		foreach (&main::Deps_GenDependsL($Win32Resrc)) {
+			$PrjHdrs{$_}='unusedval';
+		}
+	}
+
+	$VcprojText.=join('',
+		"\t\t</Filter>\n",
+		"\t\t<Filter\n",
+		"\t\t\tName=\"Make Files\"\n",
+		"\t\t\tFilter=\"Mak;mk\">\n"
+	);
+
+	$VcprojText.=join('',
+		"\t\t\t<File\n",
+		"\t\t\t\tRelativePath=\"",&main::Path_MakeRltToBase(&main::MakeFilePath, $PathBaseDsp),".mak\">\n",
+		"\t\t\t</File>\n"
+	);
+
+	$VcprojText.=join('',
+		"\t\t</Filter>\n",
+		"\t</Files>\n",
+		"\t<Globals>\n",
+		"\t</Globals>\n",
+		"</VisualStudioProject>\n"
+	);
+
+	&main::CreateExtraFile("$PathBaseDsp.vcproj",$VcprojText);
+
+
+	my $SlnText=join(
+		"\n",
+		"Microsoft Visual Studio Solution File, Format Version 8.00",
+		"Project\(\"{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}\"\) = \"$BaseDsp\", \"$BaseDsp.vcproj\", \"{$guid}\"",
+		"\tProjectSection(ProjectDependencies) = postProject",
+		"\tEndProjectSection",
+		'EndProject',
+		'Global',
+		"\tGlobalSection(SolutionConfiguration) = preSolution",
+		"\t\tDebug = Debug",
+		"\t\tRelease = Release",
+		"\tEndGlobalSection",
+		"\tGlobalSection(ProjectConfiguration) = postSolution",
+		"\t\t{$guid}.Debug.ActiveCfg = Debug|Win32",
+		"\t\t{$guid}.Debug.Build.0 = Debug|Win32",
+		"\t\t{$guid}.Release.ActiveCfg = Release|Win32",
+		"\t\t{$guid}.Release.Build.0 = Release|Win32",
+		"\tEndGlobalSection",
+		"\tGlobalSection(ExtensibilityGlobals) = postSolution",
+		"\tEndGlobalSection",
+		"\tGlobalSection(ExtensibilityAddIns) = postSolution",
+		"\tEndGlobalSection",
+		'EndGlobal',
+		''
+	);
+
+	&main::CreateExtraFile("$PathBaseDsp.Sln",$SlnText);
+
+}
+
+1;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/platform/cl_win.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,1266 @@
+# Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+
+package Cl_win;
+
+# declare variables global for module
+my @Win32LibList=();
+my $Win32StdHeaders;
+my $BaseAddressFlag;
+my $Win32Resrc;
+
+
+require Exporter;
+@ISA=qw(Exporter);
+@EXPORT=qw(
+	PMHelp_Mmp
+
+	PMCheckPlatformL
+
+	PMPlatProcessMmp
+	
+	PMStartBldList
+		PMBld
+	PMStartSrcList
+		PMBitMapBld
+		PMResrcBld
+		PMAifBld
+		PMStartSrc
+		PMSrcDepend
+			PMSrcBldDepend
+			PMEndSrcBld
+		PMEndSrc
+	PMEndSrcList
+);
+
+use strict;
+use Winutl;
+use cl_generic;
+use Pathutl;
+
+sub PMHelp_Mmp {
+	&Winutl_Help_Mmp;
+}
+
+sub SysTrg () {
+	return 1 if &main::SystemTrg;
+	my $ExportLibrary=&main::ExportLibrary;
+	return 1 if ($ExportLibrary =~ /EKERN/i);
+	my $Trg=&main::Trg;
+	return 1 if ($Trg =~ /KSRT/i);
+	return 0;
+}
+
+sub PMCheckPlatformL {
+	if ((&main::Plat eq 'TOOLS') and (&main::BasicTrgType ne 'EXE') and (&main::BasicTrgType ne 'LIB')) {
+		die "Can't specify anything but EXE or LIB targettypes for this platform\n";
+	}
+}
+
+sub PMPlatProcessMmp (@) {
+	&Winutl_DoMmp(\@_, $ENV{INCLUDE});
+	$BaseAddressFlag=&Winutl_BaseAddress;
+	$BaseAddressFlag=~s/^(.+$)$/ \/base:\"$1\"/o;
+	@Win32LibList=&Winutl_Win32LibList;
+	my $MSVCVer = &Winutl_MSVCVer;
+	push @Win32LibList, "kernel32.lib";
+	$Win32Resrc=&Winutl_Win32Resrc;
+	$Win32StdHeaders=&Winutl_Win32StdHeaders;
+}
+
+sub PMStartBldList($) {
+	my ($makecmd) = @_;
+	die "Cannot generate $makecmd makefiles\n" if ($makecmd ne "nmake");
+	my $AifStructRef=&main::AifStructRef;
+	my $BaseTrg=&main::BaseTrg;
+	my $BitMapStructRef=&main::BitMapStructRef;
+	my @BldList=&main::BldList;
+	my @ChopSysIncPaths=&main::Path_Chop(&main::SysIncPaths);
+	my @ChopUserIncPaths=&main::Path_Chop(&main::UserIncPaths);
+	my $ExportLibrary=&main::ExportLibrary;
+	my $NoExportLibrary=&main::NoExportLibrary;
+	my $DefFile=&main::DefFile;
+	my $BasicTrgType=&main::BasicTrgType;
+	my $LibPath=&main::LibPath;
+
+	my $MSVCVer = &Winutl_MSVCVer;
+
+	my @MacroList=&main::MacroList();
+	push @MacroList, "__SUPPORT_CPP_EXCEPTIONS__";
+
+	my $VariantFile=&main::VariantFile();
+	my $Plat=&main::Plat;
+	my $ResourceStructRef=&main::ResourceStructRef;
+	my $Trg=&main::Trg;
+	my $TrgType=&main::TrgType;
+	my $defaultWarningLevel="/W4";
+	my $CompilerOption=&main::CompilerOption("MSVC");
+	my $LinkAs=&main::LinkAs;
+
+	&Generic_Header(0,$makecmd);	# define standard things using absolute paths
+
+	my $TrgDir="";
+	if (&Generic_Definition("TRGDIR") ne "") {
+		$TrgDir="\$(TRGDIR)\\";
+	}
+	if (&main::Plat eq "WINC") {	# target path ignored under WINC
+		$TrgDir="";
+	}
+	&main::Output(
+		"INCDIR  ="
+	);
+	if($VariantFile){
+        my $VariantFileFileName  = Path_Split('FILE',$VariantFile);
+        &main::Output(
+              " /FI \"$VariantFileFileName\"",
+              );
+
+	}
+
+	foreach (@ChopUserIncPaths,@ChopSysIncPaths) {
+		&main::Output(
+			" /I \"$_\""
+		);
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+
+	my $MSVCVer = &Winutl_MSVCVer;
+
+	&main::Output(
+		"CLFLAGS =",
+			" /nologo",			# suppress "sign-on" banner message
+			" /Zp4",			# packs structures on 4 byte boundaries
+			" /GF"				# Pools strings and places them in read-only memory 
+		);	
+
+	if ($MSVCVer >= 7) {
+		&main::Output(
+			" /wd4996",			# C4996: 'xxxx' was declared deprecated
+			" /wd4571"			# C4571: catch(...) blocks compiled with /EHs do not catch or re-throw Structured Exceptions
+		);	
+
+		if (&main::Plat ne 'TOOLS') {
+			&main::Output(
+				" /EHsc",			# Exceptions on
+				" /GR"				# RTTI on
+			);
+			if ($MSVCVer >= 8) {
+				&main::Output(
+					" /GS-"			# Buffer checking off
+				);
+			}
+		} else {
+			&main::Output(
+				" /EHsc",			# Exceptions on
+				" /GR",				# RTTI on
+				" /GS"				# Buffer checking on
+			);
+		}
+	} else {
+		if (&main::Plat ne 'TOOLS') {
+			&main::Output(
+				" /GX",				# Exceptions on
+				" /GR"				# RTTI on
+			);
+		}
+	}
+
+	if ($MSVCVer >= 8) {
+		&main::Output(
+			" /Zc:wchar_t-"				# Don't make wchar_t a built-in; breaks mangled names
+		);		
+	}
+
+	if (&main::Plat ne 'TOOLS') {
+		unless ($Win32StdHeaders) {
+			&main::Output(
+				" /X"			# ignore standard include directories
+			);
+		}
+	}
+	if ($CompilerOption !~ /\/W\d/) {
+		# Supply default warning level unless /Wn already specified via OPTION MSVC
+		&main::Output(
+			" $defaultWarningLevel"
+		);
+	}
+	&main::Output(
+		" $CompilerOption",		# user-supplied compiler options
+		"\n",
+		"\n"
+	);
+
+	&main::Output(
+		"CLDEFS  ="
+	);
+	foreach(@MacroList) {
+		&main::Output(
+			" /D \"$_\""
+		);
+	}
+	if (($BasicTrgType=~/^LIB$/o) and (&main::Plat eq 'TOOLS')) {
+		&main::Output(
+			" /D _MT"
+		); 
+	}
+	&main::Output(
+		" \$(USERDEFS)\n",
+		"\n"
+	);
+
+	foreach (@BldList) {
+		&main::Output(
+			"CL$_ = cl.exe"
+		);
+		if ($BasicTrgType=~/^EXE$/o) {
+			&main::Output(
+				' /MT'			# Creates a multi-threaded executable file, using libcmt.lib
+			);
+			if (/DEB$/o) {
+				&main::Output(
+					'd'				# i.e. /MTd or /MLd, debug executable using debug version of LIB
+				);
+			}
+		}
+		elsif (($BasicTrgType=~/^(DLL|LIB)$/o) and (&main::Plat ne 'TOOLS')){
+			&main::Output(
+				' /MD'			# Creates a multithreaded DLL, using MSVCRT.LIB
+			);
+			if (/DEB$/o) {
+				&main::Output(
+					'd'				# i.e. /MDd, debug executable using debug version of LIB
+				);
+			}
+		}
+		if (/DEB$/o) {
+			&main::Output(
+				' /Zi',			# Generates complete debugging information
+				' /Od'			# Disables optimization
+			);
+#			euser change to apply inlining on the _NAKED functions
+			if ($BaseTrg=~/^EUSER$/oi) {
+				&main::Output(
+					' /Ob1'		# Specific control of expension of inline functions
+				);
+			}
+		}
+		elsif (/REL$/o) {
+			&main::Output(
+				' /O1'				# Creates small code
+			);
+			if ($MSVCVer >= 8) {
+				&main::Output(
+					' /fp:strict'		# Improves floating-point consistency
+				);
+			} else {
+				&main::Output(
+					' /Op'				# Improves floating-point consistency
+				);
+			}
+		}
+		&main::Output(
+			' $(CLFLAGS)'
+		);
+		if (/DEB$/o) {
+			&main::Output(
+				" /Fd\"\$(EPOCTRG$_)\\$TrgDir$BaseTrg.pdb\""
+			);
+		}
+		foreach (&main::MacroList($_)) {
+			&main::Output(
+				" /D $_"
+			);
+		}
+		&main::Output(
+			" \$(CLDEFS) \$(INCDIR)\n"
+		);
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+	
+	foreach (@BldList) {
+		&main::Output(
+			"$_ :"
+		);
+		if ($BasicTrgType !~ /^IMPLIB$/io) {
+			&main::Output (
+				" \\\n",
+				"\t\"\$(EPOCTRG$_)\\$TrgDir$Trg\""
+			);
+			unless (/REL$/o) {
+				&main::Output(
+					" \\\n",
+					"\t\"\$(EPOCTRG$_)\\$BaseTrg.bsc\""
+				);
+			}
+			if (&Winutl_CopyForStaticLinkage) {
+				&main::Output(
+					" \\\n",
+					"\t\"\$(EPOCTRG$_)\\$Trg\""
+				);
+			}
+		}
+
+#		lib has to come after the main target so that a .DEF file will be generated if the project is not frozen
+		if ($DefFile and not &main::ExportUnfrozen) {
+			&main::Output(
+				" \\\n",
+				"\tLIBRARY\n"
+			);
+		}
+		&main::Output(
+			"\n",
+			"\n"
+		);
+	}
+
+
+	foreach (@BldList) {
+		my $makework="MAKEWORK$_";
+		&main::Output(
+			"\n",
+			"RESOURCE$_ : $makework"
+		);
+
+		my $BitMapRef;
+		foreach $BitMapRef (@$BitMapStructRef) {
+			my $file="\$(EPOCTRG$_)\\$$BitMapRef{TrgPath}$$BitMapRef{Trg}";
+			&Generic_MakeWorkFile($makework,$file);
+			&main::Output(
+				" \\\n",
+				"\t\"$file\""
+			);
+		}
+		undef $BitMapRef;
+
+		my $ResourceRef;
+		foreach $ResourceRef (@$ResourceStructRef) {
+			my $file="\$(EPOCTRG$_)\\$$ResourceRef{Trg}";
+			&Generic_MakeWorkFile($makework,$file);
+			&main::Output(	# must come before main target because source for target will depend on the
+			" \\\n",		# *.rsg file in $EPOCIncPath
+			"\t", &Generic_Quote("$file")
+			);
+		}
+		undef $ResourceRef;
+
+		my $AifRef;
+		foreach $AifRef (@$AifStructRef) {
+			my $file="\$(EPOCTRG$_)\\$TrgDir$$AifRef{Trg}";
+			&Generic_MakeWorkFile($makework,$file);
+			&main::Output(
+				" \\\n",
+				"\t\"$file\""
+			);
+		}
+		undef $AifRef;
+
+		&main::Output(
+			"\n"
+		);
+	}
+	&main::Output(
+		"\n",
+		"\n",
+	);
+
+	&main::Output(
+		"LIBRARY : MAKEWORKLIBRARY"
+	);
+	if ($BasicTrgType=~/^LIB$/o) {
+#		code to ensure that the static libraries for all builds are built at the library stage
+		foreach (@BldList) {
+			&main::Output(
+				" $_"
+			);
+		}
+	}
+	elsif ($DefFile and !$NoExportLibrary) {
+		unless (&main::ExportUnfrozen) {
+			if (-e $DefFile) { # effectively "if project frozen ..."
+				&main::Output(
+					" \"\$(EPOCLIB)\\UDEB\\$ExportLibrary.lib\"\n"
+				);
+			} else {
+				&main::Output(
+					"\n",
+					"\t\@echo WARNING: Not attempting to create \"\$(EPOCLIB)\\UDEB\\$ExportLibrary.lib\".\n",
+					"\t\@echo When exports are frozen in \"$DefFile\", regenerate Makefile.\n"
+				);
+			}
+		} else {
+			&main::Output(
+				"\n",
+				"\t\@echo Not attempting to create \"\$(EPOCLIB)\\UDEB\\$ExportLibrary.lib\"\n",
+				"\t\@echo from frozen .DEF file, since EXPORTUNFROZEN specified.\n"
+			);
+		}
+		my $LibLinkAs = ($BasicTrgType=~/^IMPLIB$/io) ? $LinkAs : $Trg;
+		&main::Output(
+			"\n",
+			"\n",
+			"# REAL TARGET - LIBRARY\n",
+			"\n",
+			"\"\$(EPOCLIB)\\UDEB\\$ExportLibrary.lib\" : \"$DefFile\"\n",
+			"\tperl -w -S prepdef.pl \"$DefFile\" \"\$(EPOCBLD)\\$ExportLibrary.prep.def\"\n",
+			"\tlib.exe /nologo /machine:i386 /nodefaultlib /name:\"$LibLinkAs\"    /def:\"\$(EPOCBLD)\\$ExportLibrary.prep.def\" /out:\"\$(EPOCLIB)\\UDEB\\$ExportLibrary.lib\"\n",
+			"\tdel \"\$(EPOCLIB)\\UDEB\\$ExportLibrary.exp\"\n"
+		);
+	}
+	&main::Output(
+		"\n",
+		"\n",
+		"FREEZE :\n"
+	);
+	if ($DefFile and $BasicTrgType !~ /^IMPLIB$/io) {
+		&main::Output(
+#			call perl on the script here so nmake will die if there are errors - this doesn't happen if calling perl in a batch file
+			"\tperl -w -S efreeze.pl \$(EFREEZE_ALLOW_REMOVE) \"$DefFile\" \"\$(EPOCBLD)\\$ExportLibrary.def\" \n"
+		);
+	}
+	&main::Output(
+		"\n",
+		"CLEANLIBRARY :\n"
+	);
+	if ($DefFile and !$NoExportLibrary) {
+		&main::Output(
+			"\t-\$(ERASE) \"\$(EPOCLIB)\\UDEB\\$ExportLibrary.lib\"\n"
+		);
+	}
+	&Generic_MakeWorkDir('MAKEWORKLIBRARY',"${LibPath}UDEB");
+
+	&Generic_Releaseables;
+}
+
+sub PMBld {
+
+	my $AifStructRef=&main::AifStructRef;
+	my @SrcList=&main::SrcList;
+	my $BaseTrg=&main::BaseTrg;
+	my $BitMapStructRef=&main::BitMapStructRef;
+	my $Bld=&main::Bld;
+	my $ExportLibrary=&main::ExportLibrary;
+	my $NoExportLibrary=&main::NoExportLibrary;
+	my $DefFile=&main::DefFile;
+	my $EPOCIncPath=&main::EPOCIncPath;
+	my $FirstLib=&main::FirstLib;
+	my $BasicTrgType=&main::BasicTrgType;
+	my @LibList;
+	my $RelPath=&main::RelPath;
+	my $ResourceStructRef=&main::ResourceStructRef;
+	my @StatLibList=&main::StatLibList;
+	my $Trg=&main::Trg;
+	my $TrgPath=&main::TrgPath;
+	my $TrgType=&main::TrgType;
+	my $MSVCVer = &Winutl_MSVCVer;
+	my $newlib = main::NewLib(); # Check if newlib has been set in the MMP file.
+
+
+    my $NewLib = 'scppnwdl.lib'; # This is where operator new and operator delete
+                                 # are defined for user side targets.
+
+    my $NewKernLib = 'scppnwdl_kern.lib'; # This is where operator new and operator delete
+                                 	  # are defined for kernel side targets.
+
+
+
+	my $WarningLevel='/WARN:3';
+	if (&main::Plat() eq 'TOOLS') {
+		$WarningLevel='/WARN:1';    # avoid LNK4005 warnings about unused libraries
+	}
+
+	if ($Bld =~ /DEB/) {
+		@LibList=&main::DebugLibList;
+	} else {
+		@LibList=&main::LibList;
+	}
+
+	my $BLDTRGPATH = "\$(EPOCTRG$Bld)\\";
+	my $BLDDATAPATH = "\$(EPOCTRG$Bld)\\";
+	if (&main::Plat ne "WINC") {	# target paths ignored under WINC
+		if (&Generic_Definition("TRGDIR") ne "") {
+			$BLDTRGPATH .= "\$(TRGDIR)\\";	    # handles TARGETPATH
+		}
+		$BLDDATAPATH .= "\$(DATADIR)\\";
+	}
+
+	my $Entry="";
+	my $EntrySymbol='';
+	my $Include="";
+	if ($BasicTrgType=~/^DLL$/o) {
+		$Entry="/noentry";
+		$Include="/include:\"__E32Dll\"";
+		$EntrySymbol='_E32Dll';
+	}
+	elsif ($TrgType=~/^EXEXP$/o) {
+		$Entry="/noentry";
+		$Include="/include:\"__E32Startup\"";
+		$EntrySymbol='_E32Startup';
+	}
+	elsif ($BasicTrgType=~/^EXE$/o) {
+		unless (&main::Plat eq 'TOOLS') {
+			$Entry="/entry:\"_E32Bootstrap\"";
+			$Include="/include:\"__E32Startup\"";
+		}
+	}
+	my $AbsentSubst = '';
+	if ($EntrySymbol) {
+		$AbsentSubst = " -absent $EntrySymbol";
+	}
+
+	# REAL TARGETS
+	#-------------
+	&main::Output(
+		"# REAL TARGET - BUILD VARIANT $Bld\n",
+		"\n"
+	);
+
+#	releasables
+	my @releaseables;
+
+	unless (&main::Plat() eq 'TOOLS') {
+		if ($BasicTrgType !~ /^IMPLIB$/io) {
+			push @releaseables, "$BLDTRGPATH$Trg";
+			if (&Winutl_CopyForStaticLinkage) {
+				push @releaseables, "\$(EPOCTRG$Bld)\\$Trg";
+			}
+			my $BitMapRef;
+			foreach $BitMapRef (@$BitMapStructRef) {
+				push @releaseables, "\$(EPOCTRG$Bld)\\$$BitMapRef{TrgPath}$$BitMapRef{Trg}";
+			}
+			my $ResourceRef;
+			foreach $ResourceRef (@$ResourceStructRef) {
+				push @releaseables, "\$(EPOCTRG$Bld)\\$$ResourceRef{Trg}";
+			}
+			my $AifRef;
+			foreach $AifRef (@$AifStructRef) {
+				push @releaseables, "$BLDTRGPATH$$AifRef{Trg}";
+			}
+			if ($Bld=~/DEB$/o) {
+				push @releaseables,"$BLDTRGPATH$BaseTrg.PDB";
+			}
+		}
+		if (-e $DefFile and !$NoExportLibrary) { # effectively "if project frozen ..."
+			push @releaseables, "\$(EPOCLIB$Bld)\\$ExportLibrary.lib";
+		}
+	}
+	else {
+		my $toolspath=&main::EPOCToolsPath();
+		push @releaseables, "$toolspath$Trg";
+	}
+
+	&main::Output(
+		"WHAT$Bld : WHATGENERIC\n",
+		"\n",
+		"CLEAN$Bld : CLEANBUILD$Bld CLEANRELEASE$Bld\n",
+		"\n",
+		"CLEANBUILD$Bld : CLEANILK$Bld\n",
+		"\t\@perl -w -S ermdir.pl \"\$(EPOCBLD$Bld)\"\n",
+		"\n",
+		"CLEANRELEASE$Bld : CLEANGENERIC CLEANILK$Bld\n",
+		"\n",
+		"CLEANILK$Bld :\n",
+		"\t-\$(ERASE) \"$BLDTRGPATH$BaseTrg.ILK\"\n",
+		"\n"
+	);
+	&Generic_WhatCleanTargets($Bld, "WHAT$Bld", "CLEANRELEASE$Bld", @releaseables);
+
+	&Generic_MakeWorkDir("MAKEWORK$Bld", &main::BldPath);
+	&Generic_MakeWorkDir("MAKEWORK$Bld", $BLDTRGPATH);
+
+	return if ($BasicTrgType =~ /^IMPLIB$/io);
+
+	&main::Output(
+		"LISTING$Bld : MAKEWORK$Bld"
+	);
+	foreach (@SrcList) {
+		my $BaseSrc = &main::Path_Split('Base', $_);
+		my $Ext = &main::Path_Split('Ext', $_);
+		$BaseSrc.='_' if (lc($Ext) eq '.cia');
+   		&main::Output(
+			" \\\n\tLISTING$Bld$BaseSrc"
+   		);
+   	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+
+	if ($Bld=~/DEB$/o) {
+		&main::Output(
+			"BSC32_SBRS="
+		);
+		foreach (@SrcList) {
+			my $BaseSrc = &main::Path_Split('Base', $_);
+			my $Ext = &main::Path_Split('Ext', $_);
+			$BaseSrc.='_' if (lc($Ext) eq '.cia');
+			&main::Output(
+				" \\\n",
+				"\t\"\$(EPOCBLD$Bld)\\$BaseSrc.sbr\""
+			);
+   		}
+		&main::Output(
+			"\n",
+			"\n",
+		"\"\$(EPOCTRG$Bld)\\$BaseTrg.bsc\" : \$(BSC32_SBRS)\n",
+		"\tbscmake.exe \@<<\n",
+		"\t/nologo /o\$\@ \$(BSC32_SBRS)\n",
+		"<<\n",
+		"\n",
+		"\n"
+		);
+	}
+
+	&main::Output(
+		"LIBS="
+	);
+	foreach (@StatLibList) {
+		&main::Output(
+			" \\\n\t\"\$(EPOCSTATLINK$Bld)\\$_\""
+		);
+	}
+	foreach (@LibList) {
+		&main::Output(
+			" \\\n\t\"\$(EPOCLINK$Bld)\\$_\""
+		);
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+
+	&main::Output(
+		"LINK_OBJS="
+	);
+	foreach (@SrcList) {
+		my $BaseSrc = &main::Path_Split('Base', $_);
+		my $Ext = &main::Path_Split('Ext', $_);
+		$BaseSrc.='_' if (lc($Ext) eq '.cia');
+   		&main::Output(
+			" \\\n",
+			"\t\"\$(EPOCBLD$Bld)\\$BaseSrc.obj\""
+   		);
+   	}
+	if ($Win32Resrc) {
+		&main::Output(
+			" \\\n",
+			"\t\"\$(EPOCBLD$Bld)\\",&main::Path_Split('Base',$Win32Resrc),".res\""
+		);
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+
+	if ($BasicTrgType=~/^DLL$/o || $TrgType=~/^EXEXP$/o) {
+		&main::OutFormat(
+			"STAGE1_LINK_FLAGS="
+		);
+		&main::OutFormat(
+			"\"\$(EPOCSTATLINK$Bld)\\$FirstLib\""
+		);
+        
+        if (main::StdCppSupport())
+        {
+            unless ($newlib) {
+		    	if ( main::SystemTrg() ) {
+		    		# System targets are PDD, LDD, VAR, KEXT and KDLL.
+		    		&main::OutFormat(
+		    			"\"\$(EPOCSTATLINK$Bld)\\$NewKernLib\""
+		    		);
+		    	}
+		    	else {
+		    		&main::OutFormat(
+		    			"\"\$(EPOCSTATLINK$Bld)\\$NewLib\""
+		    		);
+		    	}
+		    }
+	    	else {
+	    		&main::OutFormat(
+				    "\"\$(EPOCSTATLINK$Bld)\\$newlib\""
+			    );
+		    }    
+        }
+		
+		foreach (@Win32LibList) {
+			&main::OutFormat(
+				' ',lc $_
+			);
+		}
+		&main::OutFormat(
+			" \$(LIBS) /nologo$BaseAddressFlag $Entry /subsystem:windows /dll"
+		);
+		if ($Bld=~/DEB$/o) {
+			&main::OutFormat(
+				' /debug'
+			);
+		}
+		&main::OutFormat(
+			" /incremental:no /machine:IX86"
+		);
+
+		if ($BasicTrgType=~/^EXE$/o) {
+			my $debug = '';
+			if ($Bld =~ /DEB$/o) {
+				$debug .= 'd';
+			}
+			&main::OutFormat(
+				" /nodefaultlib:libcmt$debug.lib"
+			);
+		}
+		&main::OutFormat(
+			" $Include /out:\"\$(EPOCBLD$Bld)\\$Trg\""
+		);
+
+		if ($MSVCVer < 7) {
+			&main::OutFormat(
+				" $WarningLevel"
+			);
+		}
+		&main::OutFormat(
+			" /implib:\"\$(EPOCBLD$Bld)\\$ExportLibrary.lib\"",
+			' /ignore:4089',		# LNK4089: all references to "dynamic-link library" discarded by /OPT:REF
+			' /ignore:4005'			# LNK4005: no objects used from XXX
+		);
+		if ($MSVCVer >= 7) {
+			&main::OutFormat(
+				' /ignore:4210'		# LNK4210: .CRT section exists; there may be unhandled static initializers or terminators
+			);
+		}
+
+
+		&main::Output(
+			"\n",
+			"\n"
+		);
+	}
+
+	&main::OutFormat(
+		'LINK_FLAGS='
+	);
+	if ($BasicTrgType=~/^(EXE|DLL)$/o) {
+		unless (&main::Plat eq 'TOOLS') {
+			&main::OutFormat(
+				" \"\$(EPOCSTATLINK$Bld)\\$FirstLib\""
+			);
+
+            if (main::StdCppSupport())
+            {
+                unless ($newlib) {
+			    	if ( main::SystemTrg() ) {
+				    	# System targets are PDD, LDD, VAR, KEXT and KDLL.
+
+					    &main::OutFormat(
+						    "\"\$(EPOCSTATLINK$Bld)\\$NewKernLib\""
+					    );
+	    			}
+		    		else {
+			    		&main::OutFormat(
+				    		"\"\$(EPOCSTATLINK$Bld)\\$NewLib\""
+					    );
+    				}
+	    		}
+		    	else {
+			    	&main::OutFormat(
+				    	"\"\$(EPOCSTATLINK$Bld)\\$newlib\""
+    				);
+	    		}
+            }
+		}
+	}
+	foreach (@Win32LibList) {
+		&main::OutFormat(
+			' ',lc $_
+		);
+	}
+	&main::OutFormat(
+		' $(LIBS) /nologo'
+	);
+	if ($BasicTrgType=~/^(EXE|DLL)$/o) {
+		unless (&main::Plat eq 'TOOLS') {
+			&main::OutFormat(
+				" /fixed:no $BaseAddressFlag"
+			);
+		}
+	}
+	&main::OutFormat(
+		" $Entry"
+	);
+	if (&main::Plat=~/^(WINC|TOOLS)$/o && $BasicTrgType=~/^EXE$/o) {
+		&main::OutFormat(
+			' /subsystem:console'
+		);
+	}
+	else {
+		&main::OutFormat(
+			' /subsystem:windows'
+		);
+	}
+	if ($BasicTrgType=~/^DLL$/o || $TrgType=~/^EXEXP$/o) {
+		&main::OutFormat(
+			" /dll \"\$(EPOCBLD$Bld)\\$ExportLibrary.exp\""
+		);
+	}
+	if (&main::HeapSize) {
+		my %HeapSize=&main::HeapSize;
+		&main::OutFormat(
+			' /heap:',$HeapSize{Max},',',$HeapSize{Min}
+		);
+	}
+	if ($BasicTrgType=~/^(DLL|EXE)$/o) {
+		if ($Bld=~/DEB$/o) {
+			&main::OutFormat(
+				' /debug'
+			);
+		}
+		elsif ($Bld=~/REL$/o) {
+			&main::OutFormat(
+				' /incremental:no'
+			);
+		}
+	}
+	&main::OutFormat(
+		' /machine:IX86',
+		' /ignore:4089',	# LNK4089: all references to "dynamic-link library" discarded by /OPT:REF
+		' /ignore:4005'		# LNK4005: no objects used from XXX
+	);
+	if ($MSVCVer >= 7) {
+		&main::OutFormat(
+			' /ignore:4210'		# LNK4210: .CRT section exists; there may be unhandled static initializers or terminators
+		);
+	}
+	if (&main::Plat eq 'TOOLS') {
+	    if (length(&main::LinkerOption("MSVC")) > 0)
+	    {
+		&main::OutFormat( " " . &main::LinkerOption("MSVC"));
+	    } else {
+		&main::OutFormat(
+			' /ignore:4098'	# LNK4098: defaultlib 'LIBCMT' conflicts with use of other libs; use /NODEFAULTLIB:library
+		);
+	    }
+	}
+	else
+	{
+		if ($BasicTrgType=~/^EXE$/o) {
+			my $debug = '';
+			if ($Bld =~ /DEB$/o) {
+				$debug .= 'd';
+			}
+			&main::OutFormat(
+				" /nodefaultlib:libcmt$debug.lib"
+			);
+		}
+		&main::OutFormat(
+			" $Include"
+		);
+	} 
+	&main::OutFormat(
+		" /out:\"$BLDTRGPATH$Trg\""
+	);
+	if ($BasicTrgType=~/^(DLL)$/o) {
+		if ($MSVCVer < 7) {
+			&main::OutFormat(
+				" $WarningLevel"
+			);
+		}
+		&main::OutFormat(
+			" /implib:\"$BLDTRGPATH$ExportLibrary.lib\""
+		);
+	} elsif ($BasicTrgType=~/^(EXE)$/o) {
+		if ($MSVCVer < 7) {
+			&main::OutFormat(
+				" $WarningLevel"
+			);
+		}
+		&main::OutFormat(
+			" /implib:\"$BLDTRGPATH$ExportLibrary.exe.lib\""
+		);
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+
+	&main::Output(
+		"\"$BLDTRGPATH$Trg\" : \$(LINK_OBJS)"
+	);
+	if (-e $DefFile) { # effectively "if project frozen ..."
+		&main::Output(
+			" \"$DefFile\""
+		);
+	}
+	if ($BasicTrgType=~/^(DLL|EXE)$/o) {
+		unless (&main::Plat eq 'TOOLS') {
+			&main::Output(
+				" \"\$(EPOCSTATLINK$Bld)\\$FirstLib\""
+			);
+			
+			if (main::StdCppSupport())
+			{
+			    unless ($newlib) {
+    				if ( main::SystemTrg() ) {
+	    				# System targets are PDD, LDD, VAR, KEXT and KDLL.
+    
+	    				&main::Output(
+		    				"\"\$(EPOCSTATLINK$Bld)\\$NewKernLib\""
+			    		);
+				    }
+    				else {
+	    				&main::Output(
+		    				"\"\$(EPOCSTATLINK$Bld)\\$NewLib\""
+			    		);
+				    }
+    			}
+	    		else {
+		    		&main::Output(
+			    		"\"\$(EPOCSTATLINK$Bld)\\$newlib\""
+				    );
+    			}		    
+			}
+		}
+	}
+	&main::Output(
+		" \$(LIBS)\n"
+	);
+
+
+#	Link by name first time round for dlls
+	if ($BasicTrgType=~/^DLL$/o || $TrgType=~/^EXEXP$/o) {
+		&main::Output(
+			"\tlink.exe \@<<\n",
+			"\t\t\$(STAGE1_LINK_FLAGS) \$(LINK_OBJS)\n",
+			"<<\n",
+			"\tdel \"\$(EPOCBLD$Bld)\\$Trg\"\n",
+			"\tdel \"\$(EPOCBLD$Bld)\\$ExportLibrary.exp\"\n"
+		);
+
+#		Generate an export info file
+		&main::Output(
+			"\tdumpbin /exports /out:\"\$(EPOCBLD$Bld)\\$ExportLibrary.inf\" \"\$(EPOCBLD$Bld)\\$ExportLibrary.lib\"\n",
+			"\tdel \"\$(EPOCBLD$Bld)\\$ExportLibrary.lib\"\n"
+		);
+
+#		call makedef to reorder the export information
+		&main::Output(
+#			call perl on the script here so nmake will die if there are errors - this doesn't happen if calling perl in a batch file
+			"\tperl -w -S makedef.pl $AbsentSubst -Inffile \"\$(EPOCBLD$Bld)\\$ExportLibrary.inf\""
+		);
+		if (SysTrg()) {
+    			&main::Output( "\t\t-SystemTargetType \\\n" );
+    		}
+		if (-e $DefFile) { # effectively "if project frozen ..."
+			&main::Output(
+				" -Frzfile \"$DefFile\""
+			);
+		}
+		# freeze ordinals, a maximum of 2, for polymorphic dlls
+		my $Ordinal;
+		my $Num=1;
+		foreach $Ordinal (&main::Exports) {
+#			replace "$" with "$$" so that NMAKE doesn't think there's a macro in the function name
+			$Ordinal=~s-\$-\$\$-go;
+			&main::Output(
+				" -$Num $Ordinal"
+			);
+			$Num++;
+		}
+		&main::Output(
+			" \"\$(EPOCBLD)\\$ExportLibrary.def\" \n",
+			"\tdel \"\$(EPOCBLD$Bld)\\$ExportLibrary.inf\"\n"
+		);
+
+		# create the export object from the .DEF file
+		&main::Output(
+			"\tlib.exe  /nologo /machine:i386 /nodefaultlib /name:\"$Trg\" /def:\"\$(EPOCBLD)\\$ExportLibrary.def\" /out:\"\$(EPOCBLD$Bld)\\$ExportLibrary.lib\"\n"
+		);
+		if (&main::ExportUnfrozen) {
+			&main::Output(
+			"\tcopy \"\$(EPOCBLD$Bld)\\$ExportLibrary.lib\" \"\$(EPOCLIB)\\UDEB\\$ExportLibrary.lib\"\n"
+			);
+		}
+		&main::Output(
+			"\tdel \"\$(EPOCBLD$Bld)\\$ExportLibrary.lib\"\n"
+		);
+	}
+
+	if ($BasicTrgType=~/^(DLL|EXE)$/o) {
+		&main::Output(
+			"\tlink.exe \@<<\n"
+		);
+	}
+	elsif ($BasicTrgType=~/^LIB$/o) {
+		&main::Output(
+			"\tlib.exe \@<<\n"
+		);
+	}
+	&main::Output(
+		"\t\t\$(LINK_FLAGS) \$(LINK_OBJS)\n",
+		"<<\n"
+	);
+
+	if ($BasicTrgType=~/^DLL$/o || $TrgType=~/^EXEXP$/o) {
+		&main::Output(
+			"\tdel \"\$(EPOCBLD$Bld)\\$ExportLibrary.exp\"\n"
+		);
+	}
+
+	if (&main::Plat eq 'TOOLS') {
+		&main::Output(
+			"\tcopy \"$BLDTRGPATH$Trg\" \"",&main::EPOCToolsPath,"$Trg\"\n"
+		);
+	}
+	if (&Winutl_CopyForStaticLinkage) {
+		&Generic_MakeWorkDir("MAKEWORK$Bld", "\$(EPOCTRG$Bld)");
+		&main::Output(
+			"\n",
+			"\"\$(EPOCTRG$Bld)\\$Trg\" : \"$BLDTRGPATH$Trg\"\n",
+			"\tcopy \$\? \$\@\n"
+		);
+	}
+
+	&main::Output(
+		"\n",
+		"\n"
+	);
+}
+
+sub PMStartSrcList {
+
+	&main::Output(
+		"# SOURCES\n",
+		"\n"
+	);
+}
+
+sub PMBitMapBld {
+
+	&Generic_BitMapBld;
+
+	# Need to copy generic resource into emulated Z drive
+
+	my $BitMapRef=&main::BitMapRef;
+
+	my $ChopTrgPath="";
+	if ($$BitMapRef{TrgPath}) {
+		$ChopTrgPath.="\\$$BitMapRef{TrgPath}";
+		chop $ChopTrgPath;
+	}
+
+	my @BldList=&main::BldList;
+	my $Bld;
+	foreach $Bld (@BldList) {
+		my $path="\$(EPOCTRG$Bld)$ChopTrgPath";
+		&main::Output(
+			&Generic_Quote("$path\\$$BitMapRef{Trg}"), " : ", 
+			&Generic_Quote("$$BitMapRef{GenericTrg}"), "\n",
+			"\t", &Generic_CopyAction(),
+			"\n"
+		);
+	}
+}
+
+
+sub PMResrcBld {
+
+	&Generic_ResrcBld;
+
+	# Need to copy generic resource into emulated Z drive
+
+	my $ResourceRef=&main::ResourceRef;
+	my @BldList=&main::BldList;
+
+	foreach my $Bld (@BldList) {
+		&main::Output(
+			&Generic_Quote("\$(EPOCTRG$Bld)\\$$ResourceRef{Trg}"), " : ", 
+			&Generic_Quote("$$ResourceRef{GenericTrg}"), "\n",
+			"\t", &Generic_CopyAction(),
+			"\n"
+		);
+	}
+}
+
+sub PMAifBld {
+
+	&Generic_AifBld;
+
+	# Need to copy generic resource into emulated Z drive
+
+	my $AifRef=&main::AifRef;
+	my $TrgDir="";
+	if (&Generic_Definition("TRGDIR") ne "") {
+		$TrgDir="\\\$(TRGDIR)";
+	}
+	if (&main::Plat eq "WINC") {	# target path ignored under WINC
+		$TrgDir="";
+	}
+
+	my @BldList=&main::BldList;
+	my $Bld;
+	foreach $Bld (@BldList) {
+		my $file="\$(EPOCTRG$Bld)$TrgDir\\$$AifRef{Trg}";
+		&main::Output(
+			"\"$file\" : \"$$AifRef{GenericTrg}\"\n",
+			"\tperl -w -S ecopyfile.pl \$? \$\@\n",
+			"\n"
+		);
+	}
+}
+
+sub PMStartSrc {
+	my $Src=&main::Src;
+
+	&main::Output(
+		"# Source $Src\n",
+		"\n"
+	);
+}
+
+sub PMSrcDepend {
+	my @BldList=&main::BldList;	
+	my @DepList=&main::DepList;
+
+	&main::Output(
+		"DEPEND="
+	);
+	foreach (@DepList) {
+		&main::Output(
+		" \\\n\t\"$_\""
+		);
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+	foreach (@BldList) {
+		&main::Output(
+			"DEPEND$_=\$(DEPEND)\n",
+			"\n"
+		);
+	}
+	&main::Output(
+		"\n"
+	);
+}
+
+sub PMSrcBldDepend {
+	my $Bld=&main::Bld;
+	my @DepList=&main::DepList;
+
+	&main::Output(
+		"DEPEND$Bld="
+	);
+	foreach (@DepList) {
+		&main::Output(
+			" \\\n\t\"$_\""
+		);
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+}
+
+sub PMEndSrcBld {
+	my $BaseSrc=&main::BaseSrc;
+	my $Bld=&main::Bld;
+	my $Plat=&main::Plat;
+	my $Src=ucfirst lc &main::Src;
+	my $SrcPath=&main::SrcPath;
+	my $Ext=&main::ExtSrc;
+	my $Cia = (lc($Ext) eq '.cia') ? 1 : 0;
+
+	if ($Cia) {
+		&main::Output(
+			"\"\$(EPOCBLD$Bld)\\$BaseSrc\_.obj\" \"\$(EPOCBLD$Bld)\\$BaseSrc\_.sbr\" : \"$SrcPath$Src\" \$(DEPEND$Bld)\n",
+			"\t\$(CL$Bld) /TP /Fo\"\$(EPOCBLD$Bld)\\$BaseSrc\_.obj\" /FR\"\$(EPOCBLD$Bld)\\$BaseSrc\_.sbr\" /c \"$SrcPath$Src\"\n",
+			"\n",
+#		assembler listing target 
+			"LISTING$Bld$BaseSrc\_ : \"\$(EPOCBLD$Bld)\\$BaseSrc\_.lis\"\n",
+			"\tcopy \$? \"$SrcPath$BaseSrc\_.$Plat.lst\"\n",
+			"\n",
+			"\"\$(EPOCBLD$Bld)\\$BaseSrc\_.lis\": \"$SrcPath$Src\" \$(DEPEND$Bld)\n",
+			"\t\$(CL$Bld) /TP /Fa\"\$\@\" /Fo\"\$(EPOCBLD$Bld)\\$BaseSrc\_.obj\" /FR\"\$(EPOCBLD$Bld)\\$BaseSrc\_.sbr\" /c \"$SrcPath$Src\"\n",
+			"\n"
+		);
+	} else {
+		&main::Output(
+			"\"\$(EPOCBLD$Bld)\\$BaseSrc.obj\" \"\$(EPOCBLD$Bld)\\$BaseSrc.sbr\" : \"$SrcPath$Src\" \$(DEPEND$Bld)\n",
+			"\t\$(CL$Bld) /Fo\"\$(EPOCBLD$Bld)/\" /FR\"\$(EPOCBLD$Bld)\\$BaseSrc.sbr\" /c \"$SrcPath$Src\"\n",
+			"\n",
+#		assembler listing target 
+			"LISTING$Bld$BaseSrc : \"\$(EPOCBLD$Bld)\\$BaseSrc.lis\"\n",
+			"\tcopy \$? \"$SrcPath$BaseSrc.$Plat.lst\"\n",
+			"\n",
+			"\"\$(EPOCBLD$Bld)\\$BaseSrc.lis\": \"$SrcPath$Src\" \$(DEPEND$Bld)\n",
+			"\t\$(CL$Bld) /Fa\"\$\@\" /Fo\"\$(EPOCBLD$Bld)/\" /FR\"\$(EPOCBLD$Bld)\\$BaseSrc\_.sbr\" /c \"$SrcPath$Src\"\n",
+			"\n"
+		);
+	}
+}
+
+sub PMEndSrc {
+
+	&main::Output(
+		"\n",
+		"\n"
+	);
+}
+
+sub PMEndSrcList {
+	if ($Win32Resrc) {
+		my @BldList=&main::BldList;
+		my @DepList=&main::Deps_GenDependsL($Win32Resrc);
+
+		&main::Output(
+			"# Win32 Resource $Win32Resrc\n",
+			"\n",
+			"DEPEND="
+		);
+		foreach (@DepList) {
+			&main::Output(
+				" \\\n\t\"$_\""
+			);
+		}
+		&main::Output(
+			"\n",
+			"\n"
+		);
+	
+		my $Bld;
+		foreach $Bld (@BldList) {
+			&main::Output(
+				"\"\$(EPOCBLD$Bld)\\",&main::Path_Split('Base',$Win32Resrc),".res\" : \"$Win32Resrc\" \$(DEPEND)\n",
+				"\trc /l 0x809 /fo\$\@ /i \"",&main::Path_Chop(&main::Path_Split('Path',$Win32Resrc)),"\" \"$Win32Resrc\"\n",
+				"\n"
+			);
+		}
+		&main::Output(
+			"\n",
+			"\n"
+		);
+	}
+
+	# Deal with accumulated MAKEDIRS etc.
+
+	&Generic_End;
+}
+
+1;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/platform/cl_x86.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,964 @@
+# Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+
+package Cl_x86;
+
+# declare variables global for module
+
+
+require Exporter;
+@ISA=qw(Exporter);
+@EXPORT=qw(
+	PMHelp_Mmp
+
+	PMCheckPlatformL
+
+	PMPlatProcessMmp
+	
+	PMStartBldList
+		PMBld
+	PMStartSrcList
+		PMBitMapBld
+		PMResrcBld
+		PMAifBld
+		PMStartSrc
+		PMSrcDepend
+			PMSrcBldDepend
+			PMEndSrcBld
+		PMEndSrc
+	PMEndSrcList
+);
+
+use strict;
+use Winutl;
+use cl_generic;
+use Genutl;
+use Pathutl;
+
+use constant NOCOMPRESSIONMETHOD => 0;
+use constant INFLATECOMPRESSIONMETHOD => 1;
+use constant BYTEPAIRCOMPRESSIONMETHOD => 2;
+
+use constant NOTPAGED => 0;
+use constant UNPAGED => 1;
+use constant PAGED => 2;
+sub PMHelp_Mmp {
+	&Winutl_Help_Mmp;
+}
+
+sub PMCheckPlatformL {
+}
+
+sub PMPlatProcessMmp (@) {
+
+}
+
+sub PMStartBldList($) {
+	my ($makecmd) = @_;
+	die "Cannot generate $makecmd makefiles\n" if ($makecmd ne "nmake");
+	my $BaseTrg=&main::BaseTrg;
+	my @BldList=&main::BldList;
+	my @ChopSysIncPaths=&main::Path_Chop(&main::SysIncPaths);
+	my @ChopUserIncPaths=&main::Path_Chop(&main::UserIncPaths);
+	my $DefFile=&main::DefFile;
+	my $BasicTrgType=&main::BasicTrgType;
+	my $LinkAs=&main::LinkAs;
+	my $ExportLibrary=&main::ExportLibrary;
+	my $NoExportLibrary=&main::NoExportLibrary;
+	my $LibPath=&main::LibPath;
+	my @MacroList=&main::MacroList();
+	my $VariantFile=&main::VariantFile();
+	my $Plat=&main::Plat;
+	my $Trg=&main::Trg;
+	my $TrgType=&main::TrgType;
+	my @UidList=&main::UidList;	
+	my $WarningLevel=&main::CompilerOption("MSVC");
+	my %Version = &main::Version();
+	my $ExtraExportLibrary;
+	my $PrimaryExportLibrary = $ExportLibrary;
+	unless ($Version{explicit}) {
+		$ExtraExportLibrary = $ExportLibrary;
+		$ExtraExportLibrary =~ s/\{(\d|a|b|c|d|e|f){8}\}//i;
+		$PrimaryExportLibrary = $ExtraExportLibrary;
+	}
+
+	&Generic_Header(0,$makecmd);	# define standard things using absolute paths
+
+#	set up LinkAs
+	$UidList[2]=~/^0x(.*)$/o;
+	if ($1 ne '00000000') { # have to make sure than series of noughts in brackets doesn't appear in name for null uids
+		$LinkAs=join '', &main::Path_Split('Base',$LinkAs),"[$1]",&main::Path_Split('Ext',$LinkAs);
+	}
+
+	my $TrgDir="";
+
+	&main::Output(
+		"INCDIR  ="
+	);
+	if($VariantFile){
+        my $VariantFileFileName  = Path_Split('FILE',$VariantFile);
+        &main::Output(
+              " /FI \"$VariantFileFileName\"",
+              );
+
+	}
+
+	foreach (@ChopUserIncPaths,@ChopSysIncPaths) {
+		&main::Output(
+			" /I \"$_\""
+		);
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+
+	&main::Output(
+		"CLFLAGS = /nologo /Zp4 $WarningLevel /Zm256"
+		);	
+	&main::Output(
+		" /X"
+		);
+	&main::Output(
+		"\n",
+		"\n"
+	);
+
+	&main::Output(
+		"CLDEFS  ="
+	);
+	foreach(@MacroList) {
+		&main::Output(
+			" /D \"$_\""
+		);
+	}
+	&main::Output(
+		" \$(USERDEFS)\n",
+		"\n"
+	);
+
+	foreach (@BldList) {
+		&main::Output(
+			"CL$_ = cl.exe"
+		);
+		if (/DEB$/o) {
+			&main::Output(
+				' /Od /Gs0x10000 /Gy /GR- /GX-'
+			);
+#			euser change to apply inlining on the _NAKED functions
+			if ($BaseTrg=~/^EUSER$/oi) {
+				&main::Output(
+					' /Ob1'
+				);
+			}
+		}
+		elsif (/REL$/o) {
+#			euser change to prevent minimum size optimisation from disrupting the maths functions
+				&main::Output(
+					' /O1 /Op /Gs0x10000 /Gy /GF /GR- /GX-'
+				);
+		}
+		&main::Output(
+			' $(CLFLAGS)'
+		);
+		foreach (&main::MacroList($_)) {
+			&main::Output(
+				" /D $_"
+			);
+		}
+		&main::Output(
+			" \$(CLDEFS) \$(INCDIR)\n"
+		);
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+	
+	foreach (@BldList) {
+		&main::Output(
+			"$_ :"
+		);
+		if ($BasicTrgType !~ /^IMPLIB$/io) {
+			&main::Output (
+				" \\\n",
+				"\t\"\$(EPOCTRG$_)\\$TrgDir$Trg\""
+			);
+		}
+
+#		lib has to come after the main target so that a .DEF file will be generated if the project is not frozen
+		if ($DefFile and not &main::ExportUnfrozen) {
+			&main::Output(
+				" \\\n",
+				"\tLIBRARY\n"
+			);
+		}
+		&main::Output(
+			"\n",
+			"\n"
+		);
+	}
+
+
+	# Resource building is done entirely via cl_generic.pm
+	
+	foreach (@BldList) {
+		my $makework="MAKEWORK$_";
+		&main::Output(
+			"\n",
+			"RESOURCE$_ : $makework"
+		);
+	}
+	&main::Output(
+		"\n",
+		"\n",
+	);
+
+	&main::Output(
+		"LIBRARY : MAKEWORKLIBRARY"
+	);
+	if ($BasicTrgType=~/^LIB$/o) {
+#		code to ensure that the static libraries for all builds are built at the library stage
+		foreach (@BldList) {
+			&main::Output(
+				" $_"
+			);
+		}
+	}
+	elsif ($DefFile and !$NoExportLibrary) {
+		unless (&main::ExportUnfrozen) {
+			if (-e $DefFile) { # effectively "if project frozen ..."
+				&main::Output(
+					" \"\$(EPOCLIB)\\UREL\\$PrimaryExportLibrary.LIB\"\n"
+				);
+			}
+			else {
+				&main::Output(
+					"\n",
+					"\t\@echo WARNING: Not attempting to create \"\$(EPOCLIB)\\UREL\\$PrimaryExportLibrary.LIB\".\n",
+					"\t\@echo When exports are frozen in \"$DefFile\", regenerate Makefile.\n"
+				);
+			}
+		}
+		else {
+			&main::Output(
+				"\n",
+				"\t\@echo Not attempting to create \"\$(EPOCLIB)UREL\\$PrimaryExportLibrary.LIB\"\n",
+				"\t\@echo from frozen .DEF file, since EXPORTUNFROZEN specified.\n"
+			);
+		}
+		&main::Output(
+			"\n",
+			"\n",
+			"# REAL TARGET - LIBRARY\n",
+			"\n",
+			"\"\$(EPOCLIB)\\UREL\\$ExportLibrary.LIB\" : \"$DefFile\"\n",
+			"\tperl -S prepdef.pl \"$DefFile\" \"\$(EPOCBLD)\\$ExportLibrary.prep.def\"\n",
+			"\tlib.exe /nologo /machine:i386 /nodefaultlib /subsystem:native /name:\"$LinkAs\" /def:\"\$(EPOCBLD)\\$ExportLibrary.prep.def\" /out:\"\$(EPOCLIB)\\UREL\\$ExportLibrary.LIB\"\n",
+			"\tdel \"\$(EPOCLIB)\\UREL\\$ExportLibrary.exp\"\n"
+		);
+		if ($ExtraExportLibrary) {
+			&main::Output(
+				"\n",
+				&Generic_Quote("\$(EPOCLIB)\\UREL\\$ExtraExportLibrary.lib"), " : ",
+				&Generic_Quote("\$(EPOCLIB)\\UREL\\$ExportLibrary.lib"), "\n",
+				"\tcopy ", &Generic_Quote("\$(EPOCLIB)\\UREL\\$ExportLibrary.lib"), " \$@\n"
+			);
+		}
+	}
+	&main::Output(
+		"\n",
+		"\n",
+		"FREEZE :\n"
+	);
+	if ($DefFile and $BasicTrgType !~ /^IMPLIB$/io) {
+		&main::Output(
+#			call perl on the script here so nmake will die if there are errors - this doesn't happen if calling perl in a batch file
+			"\tperl -w -S efreeze.pl \$(EFREEZE_ALLOW_REMOVE) \"$DefFile\" \"\$(EPOCBLD)\\$ExportLibrary.def\" \n"
+		);
+	}
+	&main::Output(
+		"\n",
+		"CLEANLIBRARY :\n"
+	);
+	if ($DefFile and !$NoExportLibrary) {
+		&main::Output(
+			"\t-\$(ERASE) \"\$(EPOCLIB)\\UREL\\$ExportLibrary.LIB\"\n"
+		);
+		if ($ExtraExportLibrary) {
+			&main::Output(
+				"\t-\$(ERASE) \"\$(EPOCLIB)\\UREL\\$ExtraExportLibrary.LIB\"\n"
+			);
+		}
+	}
+	&Generic_MakeWorkDir('MAKEWORKLIBRARY',"${LibPath}UREL");
+
+	&Generic_Releaseables;
+}
+
+sub PMBld {
+
+	my @ASSPLibList=&main::ASSPLibList;
+	my @SrcList=&main::SrcList;
+	my $BaseTrg=&main::BaseTrg;
+	my $Bld=&main::Bld;
+	my $DefFile=&main::DefFile;
+	my $EPOCIncPath=&main::EPOCIncPath;
+	my $FirstLib=&main::FirstLib;
+	my $BasicTrgType=&main::BasicTrgType;
+	my @LibList;
+	my $LinkAs=&main::LinkAs;
+	my $ExportLibrary=&main::ExportLibrary;
+	my $NoExportLibrary=&main::NoExportLibrary;
+	my $LibPath=&main::LibPath;
+	my $RelPath=&main::RelPath;
+	my @StatLibList=&main::StatLibList;
+	my $Trg=&main::Trg;
+	my $TrgPath=&main::TrgPath;
+	my $TrgType=&main::TrgType;
+	my @UidList=&main::UidList;	
+	my $HasExports=0;
+	if (-e $DefFile or scalar(&main::Exports)!=0) {
+		$HasExports=1;
+	}
+	my %Version = &main::Version();
+	my $ExtraExportLibrary;
+	unless ($Version{explicit}) {
+		$ExtraExportLibrary = $ExportLibrary;
+		$ExtraExportLibrary =~ s/\{(\d|a|b|c|d|e|f){8}\}//i;
+	}
+
+	my $WarningLevel='/WARN:3';
+	$WarningLevel='/WARN:1';    # avoid LNK4005 warnings about unused libraries
+
+	if ($Bld =~ /DEB/) {
+		@LibList=&main::DebugLibList;
+	} else {
+		@LibList=&main::LibList;
+	}
+
+#	set up $LinkAs
+	$UidList[2]=~/^0x(.*)$/o;
+	if ($1 ne '00000000') {	# have to make sure than series of noughts in brackets doesn't appear in name for null uids
+		$LinkAs=join '', &main::Path_Split('Base',$LinkAs),"[$1]",&main::Path_Split('Ext',$LinkAs);
+	}
+
+	my $BLDTRGPATH = "\$(EPOCTRG$Bld)\\";
+	my $BLDDATAPATH = "\$(EPOCTRG$Bld)\\";
+	my $Entry="";
+	my $Include="";
+	my $EntrySymbol='';
+	if ($BasicTrgType=~/^DLL$/o) {
+		$Entry="_E32Dll";
+		$Include="/include:\"__E32Dll\"";
+		$EntrySymbol='_E32Dll';
+	}
+	elsif ($BasicTrgType=~/^EXE$/o) {
+		$Entry="_E32Startup";
+		$Include="/include:\"__E32Startup\"";
+		$EntrySymbol='_E32Startup';
+	}
+	my $AbsentSubst = '';
+	if ($EntrySymbol) {
+		$AbsentSubst = " -absent $EntrySymbol";
+	}
+
+	# REAL TARGETS
+	#-------------
+	&main::Output(
+		"# REAL TARGET - BUILD VARIANT $Bld\n",
+		"\n"
+	);
+
+#	releasables
+	my @releasables;
+ 	push @releasables, "$RelPath$Trg" if ($BasicTrgType !~ /^IMPLIB$/io);
+   	if ($BasicTrgType=~/^(DLL|EXE)$/o) {
+ 		push @releasables, "$RelPath$Trg.MAP";
+	}
+	if (-e $DefFile and !$NoExportLibrary) { # effectively "if project frozen ..."
+ 		push @releasables, "$LibPath$ExportLibrary.LIB";
+ 		push @releasables, "$LibPath$ExtraExportLibrary.LIB" if ($ExtraExportLibrary);
+	}
+
+	&main::Output(
+		"WHAT$Bld : WHATGENERIC\n",
+		"\n",
+		"CLEAN$Bld : CLEANBUILD$Bld CLEANRELEASE$Bld\n",
+		"\n",
+		"CLEANBUILD$Bld : \n",
+		"\t\@perl -w -S ermdir.pl \"\$(EPOCBLD$Bld)\"\n",
+		"\t-\$(ERASE) \"$BLDTRGPATH$BaseTrg.ILK\"\n",
+		"\n",
+		"CLEANRELEASE$Bld : CLEANGENERIC\n",
+		"\n"
+	);
+ 	&Generic_WhatCleanTargets($Bld, "WHAT$Bld", "CLEANRELEASE$Bld", @releasables);
+
+	&Generic_MakeWorkDir("MAKEWORK$Bld", &main::BldPath);
+	&Generic_MakeWorkDir("MAKEWORK$Bld", $BLDTRGPATH);
+
+ 	return if ($BasicTrgType =~ /^IMPLIB$/io);
+
+	&main::Output(
+		"LISTING$Bld : MAKEWORK$Bld"
+	);
+	foreach (@SrcList) {
+		my $BaseSrc = &main::Path_Split('Base', $_);
+		my $Ext = &main::Path_Split('Ext', $_);
+		$BaseSrc.='_' if (lc($Ext) eq '.cia');
+   		&main::Output(
+			" \\\n\tLISTING$Bld$BaseSrc"
+   		);
+   	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+
+	&main::Output(
+		"LIBS="
+	);
+	foreach (@StatLibList) {
+		&main::Output(
+			" \\\n\t\"\$(EPOCSTATLINK$Bld)\\$_\""
+		);
+	}
+	foreach (@ASSPLibList) {
+		&main::Output(
+			" \\\n\t\"\$(EPOCASSPLINK$Bld)\\$_\""
+		);
+	}
+	foreach (@LibList) {
+		&main::Output(
+			" \\\n\t\"\$(EPOCLINK$Bld)\\$_\""
+		);
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+
+	&main::Output(
+		"LINK_OBJS="
+	);
+	foreach (@SrcList) {
+		my $BaseSrc = &main::Path_Split('Base', $_);
+		my $Ext = &main::Path_Split('Ext', $_);
+		$BaseSrc.='_' if (lc($Ext) eq '.cia');
+   		&main::Output(
+			" \\\n",
+			"\t\"\$(EPOCBLD$Bld)\\$BaseSrc.obj\""
+   		);
+   	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+
+	if ($BasicTrgType=~/^DLL$/o || $TrgType=~/^EXEXP$/o || $TrgType=~/^EXEDLL$/o) {
+		&main::OutFormat(
+			"STAGE1_LINK_FLAGS="
+		);
+		&main::OutFormat(
+			"\"\$(EPOCSTATLINK$Bld)\\$FirstLib\" /PDB:NONE"
+		);
+		if ($BasicTrgType=~/^(DLL)$/o) {	# Add the DLL stub
+			&main::OutFormat(
+				" \"\$(EPOCSTATLINK$Bld)\\EDLLSTUB.LIB\""
+			);
+		}
+		&main::OutFormat(
+			" \$(LIBS) /nologo /entry:$Entry /subsystem:native"
+		);
+		if ($BasicTrgType=~/^DLL$/o) {
+			&main::OutFormat(
+				" /dll"
+			);
+		}
+		if ($Bld=~/DEB$/o) {
+			&main::OutFormat(
+				' /debug'
+			);
+		}
+		&main::OutFormat(
+			" /incremental:no /machine:IX86 /nodefaultlib $Include /out:\"\$(EPOCBLD$Bld)\\$Trg\" $WarningLevel",
+			" /implib:\"\$(EPOCBLD$Bld)\\$ExportLibrary.lib\"",
+			' /ignore:4089',		# LNK4089: all references to "dynamic-link library" discarded by /OPT:REF
+			' /ignore:4005'			# LNK4005: no objects used from XXX
+		);
+		&main::Output(
+			"\n",
+			"\n"
+		);
+	}
+
+	&main::OutFormat(
+		'LINK_FLAGS='
+	);
+	if ($BasicTrgType=~/^(EXE|DLL)$/o) {
+		&main::OutFormat(
+			" \"\$(EPOCSTATLINK$Bld)\\$FirstLib\" /PDB:NONE "
+		);
+		if ($BasicTrgType=~/^(DLL)$/o) {	# Add the DLL stub
+			&main::OutFormat(
+				" \"\$(EPOCSTATLINK$Bld)\\EDLLSTUB.LIB\""
+			);
+		}
+	}
+	&main::OutFormat(
+		' $(LIBS) /nologo'
+	);
+	if ($BasicTrgType=~/^(EXE|DLL)$/o) {
+		&main::OutFormat(
+			" /fixed:no "
+		);
+		&main::OutFormat(
+			" /entry:$Entry"
+		);
+	}
+	&main::OutFormat(
+		' /subsystem:native'
+	);
+	if ($BasicTrgType=~/^DLL$/o) {
+		if ($HasExports) {
+			&main::OutFormat(
+				" /dll \"\$(EPOCBLD$Bld)\\$ExportLibrary.exp\""
+			);
+		} else {
+			&main::OutFormat(
+				" /dll"
+			);
+		}
+	} elsif ($TrgType=~/^EXEXP$/o || $TrgType=~/^EXEDLL$/o) {
+		&main::OutFormat(
+			" \"\$(EPOCBLD$Bld)\\$ExportLibrary.exp\""
+		);
+	}
+	if (&main::HeapSize) {
+		my %HeapSize=&main::HeapSize;
+		&main::OutFormat(
+			' /heap:',$HeapSize{Max},',',$HeapSize{Min}
+		);
+	}
+	if ($BasicTrgType=~/^(DLL|EXE)$/o) {
+		if ($Bld=~/DEB$/o) {
+			&main::OutFormat(
+				' /debug'
+			);
+		}
+		elsif ($Bld=~/REL$/o) {
+			&main::OutFormat(
+				' /incremental:no'
+			);
+		}
+	}
+	&main::OutFormat(
+		' /machine:IX86',
+		' /ignore:4089',	# LNK4089: all references to "dynamic-link library" discarded by /OPT:REF
+		' /ignore:4005'		# LNK4005: no objects used from XXX
+	);
+	&main::OutFormat(
+		" /nodefaultlib $Include"
+	);
+	if ($BasicTrgType=~/^(DLL|EXE)$/o) {
+		&main::OutFormat(
+			" /out:\"\$(EPOCBLD$Bld)\\$Trg\"",
+			" /implib:\"\$(EPOCBLD$Bld)\\$ExportLibrary.lib\""
+		);
+		&main::OutFormat(
+			" $WarningLevel"
+		);
+	} else {
+		&main::OutFormat(
+			" /out:\"$BLDTRGPATH$Trg\""
+		);
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+
+	&main::Output(
+		"\"$BLDTRGPATH$Trg\" : \$(LINK_OBJS)"
+	);
+	if (-e $DefFile) { # effectively "if project frozen ..."
+		&main::Output(
+			" \"$DefFile\""
+		);
+	}
+	if ($BasicTrgType=~/^(DLL|EXE)$/o) {
+		&main::Output(
+			" \"\$(EPOCSTATLINK$Bld)\\$FirstLib\""
+		);
+	}
+	&main::Output(
+		" \$(LIBS)\n"
+	);
+
+
+#	Link by name first time round for dlls
+	if ($BasicTrgType=~/^DLL$/o || $TrgType=~/^EXEXP$/o || $TrgType=~/^EXEDLL$/o) {
+		&main::Output(
+			"\techo $Entry>\"\$(EPOCBLD$Bld)\\$ExportLibrary.ord\"\n",
+			"\tlink.exe \@<<\n",
+			"\t\t\$(STAGE1_LINK_FLAGS) /order:@\"\$(EPOCBLD$Bld)\\$ExportLibrary.ord\" \$(LINK_OBJS)\n",
+			"<<\n",
+			"\tdel \"\$(EPOCBLD$Bld)\\$ExportLibrary.ord\"\n",
+			"\tdel \"\$(EPOCBLD$Bld)\\$Trg\"\n",
+#			"\tdel \"\$(EPOCBLD$Bld)\\$ExportLibrary.exp\"\n"
+		);
+
+	if ($HasExports) {
+	#		Generate an export info file
+			&main::Output(
+				"\tdumpbin /exports /out:\"\$(EPOCBLD$Bld)\\$ExportLibrary.inf\" \"\$(EPOCBLD$Bld)\\$ExportLibrary.lib\"\n",
+				"\tdel \"\$(EPOCBLD$Bld)\\$ExportLibrary.lib\"\n"
+			);
+
+	#		call makedef to reorder the export information
+			&main::Output(
+	#			call perl on the script here so nmake will die if there are errors - this doesn't happen if calling perl in a batch file
+				"\tperl -w -S makedef.pl $AbsentSubst -Inffile \"\$(EPOCBLD$Bld)\\$ExportLibrary.inf\""
+			);
+			if (-e $DefFile) { # effectively "if project frozen ..."
+				&main::Output(
+					" -Frzfile \"$DefFile\""
+				);
+			}
+			# freeze ordinals, a maximum of 2, for polymorphic dlls
+			my $Ordinal;
+			my $Num=1;
+			foreach $Ordinal (&main::Exports) {
+#				replace "$" with "$$" so that NMAKE doesn't think there's a macro in the function name
+				$Ordinal=~s-\$-\$\$-go;
+				&main::Output(
+					" -$Num $Ordinal"
+				);
+				$Num++;
+			}
+			&main::Output(
+				" \"\$(EPOCBLD)\\$ExportLibrary.def\" \n",
+				"\tdel \"\$(EPOCBLD$Bld)\\$ExportLibrary.inf\"\n"
+			);
+
+			# create the export object from the .DEF file
+			&main::Output(
+				"\tlib.exe  /nologo /machine:i386 /nodefaultlib /subsystem:native /name:\"$LinkAs\" /def:\"\$(EPOCBLD)\\$ExportLibrary.def\" /out:\"\$(EPOCBLD$Bld)\\$ExportLibrary.lib\"\n"
+			);
+			if (&main::ExportUnfrozen) {
+				&main::Output(
+				"\tcopy \"\$(EPOCBLD$Bld)\\$ExportLibrary.lib\" \"\$(EPOCLIB)\\UREL\\$ExportLibrary.lib\"\n"
+				);
+				if ($ExtraExportLibrary) {
+					&main::Output(
+						"\n",
+						"\tcopy \"\$(EPOCLIB)\\UREL\\$ExportLibrary.lib\" ",
+						"\"\$(EPOCLIB)\\UREL\\$ExtraExportLibrary.lib\"",
+						"\n"
+					);						
+				}				
+			}
+			&main::Output(
+				"\tdel \"\$(EPOCBLD$Bld)\\$ExportLibrary.lib\"\n"
+			);
+		}
+	}
+
+	if ($BasicTrgType=~/^(DLL|EXE)$/o) {
+		&main::Output(
+			"\techo $Entry>\"\$(EPOCBLD$Bld)\\$ExportLibrary.ord\"\n",
+			"\tlink.exe /order:@\"\$(EPOCBLD$Bld)\\$ExportLibrary.ord\" /MAPINFO:EXPORTS /MAP:\"$RelPath$Trg.MAP\" \@<<\n"
+		);
+	}
+	elsif ($BasicTrgType=~/^LIB$/o) {
+		&main::Output(
+			"\tlib.exe \@<<\n"
+		);
+	}
+	&main::Output(
+		"\t\t\$(LINK_FLAGS) \$(LINK_OBJS)\n",
+		"<<\n"
+	);
+
+	if ($BasicTrgType=~/^(DLL|EXE)$/o) {
+		&main::Output(
+			"\tdel \"\$(EPOCBLD$Bld)\\$ExportLibrary.ord\"\n"
+		);
+		if ($BasicTrgType=~/^DLL$/o || $TrgType=~/^EXEXP$/o || $TrgType=~/^EXEDLL$/o) {
+			if ($HasExports) {
+				&main::Output(
+					"\tdel \"\$(EPOCBLD$Bld)\\$ExportLibrary.exp\"\n"
+				);
+			}
+		}
+		&main::Output(
+			"\tperl -S findimp.pl \"$RelPath$Trg.MAP\" \"\$(EPOCBLD$Bld)\\$ExportLibrary.imp\"\n"
+		);
+		&main::Output(
+			"\tpetran -x86imp=\"\$(EPOCBLD$Bld)\\$ExportLibrary.imp\" -version ", &Genutl_VersionToUserString(%Version), " -sid ", &main::SecureId(), " \"\$(EPOCBLD$Bld)\\$Trg\" \$\@ \\\n",
+			"\t\t"
+		);
+		if (&main::AllowDllData) {
+			&main::Output(
+				' -allow'
+			);
+		}
+		if (not &main::CallDllEntryPoints) {
+			&main::Output(
+				' -nocall'
+			);
+		}
+		if (&main::DataLinkAddress) {
+			&main::Output(
+				' -datalinkaddress ',&main::DataLinkAddress
+			);
+		}
+		if (&main::FixedProcess) {
+			&main::Output(
+				' -fixed'
+			);
+		}
+		if (&main::HeapSize) {
+			my %HeapSize=&main::HeapSize;
+			&main::Output(
+				' -heap ',$HeapSize{Min},' ',$HeapSize{Max}
+			);
+		}
+		if (&main::ProcessPriority) {
+			&main::Output(
+				' -priority ',&main::ProcessPriority
+			);
+		}
+		if (&main::SmpSafe) {
+			&main::Output(
+				' -smpsafe'
+			);
+		}
+		if (&main::StackSize) {
+			&main::Output(
+				' -stack ',&main::StackSize
+			);
+		}
+		my $i=1;
+		foreach (@UidList) {
+			&main::Output(
+				" -uid$i $_"
+			);
+			$i++;
+		}
+		if(&main::VendorId) {
+			&main::Output(
+				' -vid ',&main::VendorId
+			);
+		}
+		&main::Output(
+			' -capability ',&main::Capability,
+		);
+		if (&main::CompressTarget)
+		    {
+		    &main::Output(
+		    " -nocompress"
+		    );
+		    }
+		else
+		    {
+		    if(&main::CompressTargetMode == NOCOMPRESSIONMETHOD)
+			{
+				# Do nothing
+			}
+		    elsif(&main::CompressTargetMode == INFLATECOMPRESSIONMETHOD)
+			{
+			&main::Output(
+				" -compressionmethod deflate"
+			);
+			}
+		    elsif(&main::CompressTargetMode == BYTEPAIRCOMPRESSIONMETHOD)
+			{
+			&main::Output(
+				" -compressionmethod bytepair"
+			);
+			}
+
+		    }
+		if (&main::CodePagingTargetMode == UNPAGED) {
+			&main::Output(
+				' -codepaging unpaged'
+			);
+		}
+		elsif (&main::CodePagingTargetMode == PAGED) {
+			&main::Output(
+				' -codepaging paged'
+			);
+		}
+
+		if (&main::DataPagingTargetMode == UNPAGED) {
+			&main::Output(
+				' -datapaging unpaged'
+			);
+		}
+		elsif (&main::DataPagingTargetMode == PAGED) {
+			&main::Output(
+				' -datapaging paged'
+			);
+		}
+		&main::Output("\n");
+		&main::Output(
+			"\tdel \"\$(EPOCBLD$Bld)\\$Trg\"\n"
+		);
+	}
+
+	&main::Output(
+		"\n",
+		"\n"
+	);
+}
+
+sub PMStartSrcList {
+
+	&main::Output(
+		"# SOURCES\n",
+		"\n"
+	);
+}
+
+sub PMBitMapBld {
+
+	&Generic_BitMapBld;
+
+}
+
+sub PMResrcBld {
+
+	&Generic_ResrcBld;
+
+}
+
+sub PMAifBld {
+
+	&Generic_AifBld;
+
+}
+
+sub PMStartSrc {
+	my $Src=&main::Src;
+
+	&main::Output(
+		"# Source $Src\n",
+		"\n"
+	);
+}
+
+sub PMSrcDepend {
+	my @BldList=&main::BldList;	
+	my @DepList=&main::DepList;
+
+	&main::Output(
+		"DEPEND="
+	);
+	foreach (@DepList) {
+		&main::Output(
+		" \\\n\t\"$_\""
+		);
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+	foreach (@BldList) {
+		&main::Output(
+			"DEPEND$_=\$(DEPEND)\n",
+			"\n"
+		);
+	}
+	&main::Output(
+		"\n"
+	);
+}
+
+sub PMSrcBldDepend {
+	my $Bld=&main::Bld;
+	my @DepList=&main::DepList;
+
+	&main::Output(
+		"DEPEND$Bld="
+	);
+	foreach (@DepList) {
+		&main::Output(
+			" \\\n\t\"$_\""
+		);
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+}
+
+sub PMEndSrcBld {
+	my $BaseSrc=&main::BaseSrc;
+	my $Bld=&main::Bld;
+	my $Plat=&main::Plat;
+	my $Src=ucfirst lc &main::Src;
+	my $SrcPath=&main::SrcPath;
+	my $Ext=&main::ExtSrc;
+	my $Cia = (lc($Ext) eq '.cia') ? 1 : 0;
+
+	if ($Cia) {
+		&main::Output(
+			"\"\$(EPOCBLD$Bld)\\$BaseSrc\_.obj\" \"\$(EPOCBLD$Bld)\\$BaseSrc\_.sbr\" : \"$SrcPath$Src\" \$(DEPEND$Bld)\n",
+			"\tperl -S tranasm_x86.pl \"$SrcPath$Src\" \"\$(EPOCBLD$Bld)\\$BaseSrc\_.transd.cia\"\n",
+			"\t\$(CL$Bld) /I \"$SrcPath\.\" /TP /Fo\"\$(EPOCBLD$Bld)\\$BaseSrc\_.obj\" /GF /c \"\$(EPOCBLD$Bld)\\$BaseSrc\_.transd.cia\"\n",
+			"\n",
+#			assembler listing target
+			"LISTING$Bld$BaseSrc\_ : \"\$(EPOCBLD$Bld)\\$BaseSrc\_.lis\"\n",
+			"\tcopy \$? \"$SrcPath$BaseSrc\_.$Plat.lst\"\n",
+			"\n",
+			"\"\$(EPOCBLD$Bld)\\$BaseSrc\_.lis\": \"$SrcPath$Src\" \$(DEPEND$Bld)\n",
+			"\t\$(CL$Bld) /TP /FAsc /Fa\"\$\@\" /Fo\"\$(EPOCBLD$Bld)\\$BaseSrc\_.obj\" /GF /c \"$SrcPath$Src\"\n",
+			"\n"
+		);
+	} else {
+		&main::Output(
+			"\"\$(EPOCBLD$Bld)\\$BaseSrc.obj\" \"\$(EPOCBLD$Bld)\\$BaseSrc.sbr\" : \"$SrcPath$Src\" \$(DEPEND$Bld)\n",
+			"\t\$(CL$Bld) /Fo\"\$(EPOCBLD$Bld)/\" /GF /c \"$SrcPath$Src\"\n",
+			"\n",
+#			assembler listing target
+			"LISTING$Bld$BaseSrc : \"\$(EPOCBLD$Bld)\\$BaseSrc.lis\"\n",
+			"\tcopy \$? \"$SrcPath$BaseSrc.$Plat.lst\"\n",
+			"\n",
+			"\"\$(EPOCBLD$Bld)\\$BaseSrc.lis\": \"$SrcPath$Src\" \$(DEPEND$Bld)\n",
+			"\t\$(CL$Bld) /FAsc /Fa\"\$\@\" /Fo\"\$(EPOCBLD$Bld)/\" /GF /c \"$SrcPath$Src\"\n",
+			"\n"
+		);
+	}
+}
+
+sub PMEndSrc {
+
+	&main::Output(
+		"\n",
+		"\n"
+	);
+}
+
+sub PMEndSrcList {
+
+	# Deal with accumulated MAKEDIRS etc.
+
+	&Generic_End;
+}
+
+1;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/platform/cl_x86gcc.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,1107 @@
+# Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+
+package Cl_x86gcc;
+
+
+my $GccPrefix='';
+my $ToolPrefix='';
+
+my $HelperLib='';
+my %PlatOpt=(
+	'Dlltool'=>'',
+	'Entry'=>'--entry',
+	'Gcc'=>'',
+	'Ld'=>'',
+	'Petran'=>'',
+	'Optimize'=>'-O'
+);
+my $Dlltool;
+my $Archive;
+my $Link;
+my $Objcopy;
+
+
+require Exporter;
+@ISA=qw(Exporter);
+@EXPORT=qw(
+	PMHelp_Mmp
+
+	PMPlatProcessMmp
+
+	PMUnderlyingABI
+
+	PMStartBldList
+		PMBld
+	PMStartSrcList
+		PMBitMapBld
+		PMResrcBld
+		PMAifBld
+		PMStartSrc
+		PMSrcDepend
+			PMSrcBldDepend
+			PMEndSrcBld
+		PMEndSrc
+	PMEndSrcList
+	PMPrefixFile
+);
+
+use cl_generic;
+use Genutl;
+
+use constant NOCOMPRESSIONMETHOD => 0;
+use constant INFLATECOMPRESSIONMETHOD => 1;
+use constant BYTEPAIRCOMPRESSIONMETHOD => 2;
+
+use constant NOTPAGED => 0;
+use constant UNPAGED => 1;
+use constant PAGED => 2;
+
+
+sub PMHelp_Mmp {
+	&Winutl_Help_Mmp;
+}
+
+sub PMCheckPlatformL {
+}
+sub PMPlatProcessMmp (@) {
+	my $MMPFILE=&main::MmpFile;
+
+	# set up START MARM ... END block module variables
+	my @MmpWarn=();
+	my $Line;
+	LINE: foreach $Line (@_) {
+		my $LineInfo=shift @$Line;
+		$_=shift @$Line;
+		push @MmpWarn, "$LineInfo : Unrecognised Keyword \"$_\"\n";
+	}
+
+	undef $Line;
+	if (@MmpWarn) {
+		warn
+			"\nMMPFILE \"$MMPFILE\"\n",
+			"START .. END BLOCK WARNINGS(S)\n",
+			@MmpWarn,
+			"\n"
+		;
+	}
+	undef @MmpWarn;
+}
+
+
+sub SystemTarget() {
+	return 1 if &main::SystemTrg;
+	my $ExportLibrary=&main::ExportLibrary;
+	# N.B. should get better way to detect kernel probably!!
+	return 1 if ($ExportLibrary =~ /EKERN/i);
+	
+	return 0;
+}
+
+
+
+
+
+sub PMUnderlyingABI($) {
+	my ($ABI) = @_;
+	if ($ABI eq 'X86gcc') {
+			return 'X86gcc';
+	}
+	return $ABI;
+}
+
+my $Makecmd;
+my %ABILibPath=();
+my $genDefFile;
+sub PMStartBldList($) {
+	($Makecmd) = @_;
+	my $ABI=&main::ABI;
+	my $UnderlyingABI=PMUnderlyingABI($ABI);
+	my $BaseTrg=&main::BaseTrg;
+	my $BasicTrgType=&main::BasicTrgType;
+	my @BldList=&main::BldList;
+	my @ChopRTWSysIncPaths=&main::Path_Chop(&main::SysIncPaths);
+	my @ChopRTWUserIncPaths=&main::Path_Chop(&main::UserIncPaths);
+	my $DefFile=&main::DefFile;
+	my $EPOCPath=&main::EPOCPath;
+	my $LinkAs=&main::LinkAs;
+	my $LibPath=&main::LibPath;
+	my @MacroList=&main::MacroList();
+	my $VariantFile=&main::VariantFile();
+	my $Plat=&main::Plat;
+	my $Trg=&main::Trg;
+	my $TrgType=&main::TrgType;
+	my @UidList=&main::UidList;	
+	my $WarningLevel=&main::CompilerOption("GCC");
+	my $ExportLibrary=&main::ExportLibrary;
+	my $NoExportLibrary=&main::NoExportLibrary;
+	my $SystemTrg = SystemTarget();
+	my %Version = &main::Version();
+	my $ExtraExportLibrary;
+	my $PrimaryExportLibrary = $ExportLibrary;
+	unless ($Version{explicit}) {
+		$ExtraExportLibrary = $ExportLibrary;
+		$ExtraExportLibrary =~ s/\{(\d|a|b|c|d|e|f){8}\}//i;
+		$PrimaryExportLibrary = $ExtraExportLibrary;
+	}
+
+#	set up LinkAs
+	$UidList[2]=~/^0x(.*)$/o;
+	if ($1 ne '00000000') { # have to make sure than series of noughts in brackets doesn't appear in name for null uids
+		$LinkAs=join '', &main::Path_Split('Base',$LinkAs),"[$1]",&main::Path_Split('Ext',$LinkAs);
+	}
+
+#	set up dlltool flag hash
+	my %ABIDlltool=(
+		X86gcc=>' -m i386' 
+	);
+
+#	work out the flags for various platforms
+	if ($ABI eq 'X86gcc') {
+		$PlatOpt{Gcc}='-c  -masm=intel -B\\epoc32\\gcc_mingw\\_p';
+		$PlatOpt{Dlltool}=$ABIDlltool{X86gcc};
+	}
+
+
+	else {
+		&main::FatalError("Platform module - ABI \"$ABI\" unrecognised");
+	}
+	
+
+#	set up CompatibleABI lib path hash
+	my %ABIRTWLibPath=();
+	
+
+
+	$Dlltool=$ToolPrefix.'dlltool';
+	$Archive=$ToolPrefix.'ar';
+	$Link=$ToolPrefix.'ld';
+	$Objcopy=$ToolPrefix.'objcopy';
+
+	&Generic_Header(0,$Makecmd);	# define standard things using absolute paths
+
+	&main::Output(
+		"\n",
+		"# must set both PATH to make it work correctly\n",
+		"Path:=",&main::Path_Drive,$EPOCPath,"gcc_mingw\\bin;\$(Path)\n",
+		"PATH:=\$(Path)\n",
+		"\n"
+	);
+
+
+	&main::Output(
+		"INCDIR  ="
+	);
+
+	foreach (@ChopRTWUserIncPaths) {
+		&main::Output(
+			" -I \"$_\""
+		);
+	}
+	foreach (@ChopRTWSysIncPaths) {
+		&main::Output(
+			" -isystem \"$_\""
+		);
+	}
+
+	&main::Output(
+		"\\\n -include \"", $EPOCPath, "include\\gcc.h\"",
+		"\n",
+		"\n"
+	);
+
+	&main::Output(
+		"GCCFLAGS=$PlatOpt{Gcc} \\\n",
+		"\n"
+	);
+
+	&main::Output(
+		"GCCDEFS ="
+	);
+	foreach(@MacroList) {
+		&main::Output(
+			" -D$_"
+		);
+	}
+	&main::Output(
+		" -D PRODUCT_INCLUDE=\"\\\"$VariantFile\\\"\"",
+		" \$(USERDEFS)\n",
+		"\n"
+	);
+
+	foreach (@BldList) {
+		&main::Output(
+			"GCC$_ = ${GccPrefix}g++"
+		);
+		if (/REL$/o) {
+			&main::Output(
+				      ' ',
+				      $PlatOpt{Optimize}
+			);
+		}
+		elsif (/DEB$/o) {
+			&main::Output(
+				' -g'
+			);
+			#unless (&main::SrcDbg) {
+			#   &main::Output(
+			#   	' ', $PlatOpt{Optimize}
+			#  );
+			#}
+		}
+		&main::Output(
+			' $(GCCFLAGS)'
+		);
+		foreach (&main::MacroList($_)) {
+			&main::Output(
+				" -D$_"
+			);
+		}
+		&main::Output(
+			" \$(GCCDEFS)\n"
+		);
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+	
+	foreach (@BldList) {
+		&main::Output(
+			"$_ :"
+		);
+
+		if ($BasicTrgType !~ /IMPLIB/io) {
+			&main::Output (
+				#" \\\n\t \"",
+				" \\\n\t ",
+				&Generic_Quote("\$(EPOCTRG$_)\\$Trg")
+				#"\""
+			);
+		}
+
+#		lib has to come after the main target so that a .DEF file will be generated if the project is not frozen
+		if ($DefFile and not &main::ExportUnfrozen) {
+			&main::Output(
+				" \\\n",
+				"\tLIBRARY\n"
+			);
+		}
+		&main::Output(
+			"\n",
+			"\n"
+		);
+	}
+
+	# Resource building is done entirely via cl_generic.pm
+	
+	foreach (@BldList) {
+		&main::Output(
+			"\n",
+			"RESOURCE$_ : MAKEWORK$_"
+		);
+	}
+	&main::Output(
+		"\n",
+		"\n",
+	);
+
+	if (!-e $DefFile && scalar(&main::Exports)!=0)
+	{
+		# There are mandatory exports - generate a def file using the mandatory exports.
+		$genDefFile = "\$(EPOCBLD)\\$ExportLibrary.gen.def";
+	}
+	
+	if (-e $DefFile || defined($genDefFile)) { # effectively "if project frozen ..."
+		
+		#	Establish the entry point symbol
+		my $EntrySymbol;
+		if ($BasicTrgType=~/^DLL$/o || $TrgType=~/^EXEDLL$/o ) {
+			$EntrySymbol = '_E32Dll';
+		}
+		elsif ($BasicTrgType=~/^EXE$/o || $TrgType=~/^EXEXP$/o ) {
+			$EntrySymbol = '_E32Startup';
+		}
+				
+		&main::Output("\n", &Generic_Quote("\$(EPOCBLD)\\$ExportLibrary.prep.def"), " : ");
+		my $defFileToUse;
+		if (defined($genDefFile))
+		{
+			# The generated def file is not a dependency of the prep.def - don't add anyting after the ':' char
+			&main::Output("\n\tperl -S gendef.pl $genDefFile ", join(' ', &main::Exports), "\n");
+			$defFileToUse = $genDefFile;
+		}
+		else
+		{
+			&main::Output(&Generic_Quote($DefFile), "\n");
+			$defFileToUse = "\$<";
+		}
+		&main::Output("\tperl -S prepdef.pl $defFileToUse \$@ nodatasizes $EntrySymbol\n\n");
+		
+		&main::Output(
+			&Generic_Quote("\$(EPOCBLD)\\$ExportLibrary.lib.exp"), " : ", &Generic_Quote("\$(EPOCBLD)\\$ExportLibrary.prep.def"), "\n",
+			"\t$Dlltool $PlatOpt{Dlltool} --input-def \"\$<\"  --dllname \"$LinkAs\"  -e \"\$@\"  \n",			
+			"\t-\$(ERASE) \"\$(EPOCBLD)\\tmp.txt \"\n\n"
+		);
+	}
+	
+	&main::Output(
+		"LIBRARY : MAKEWORKLIBRARY"
+	);
+	if ($BasicTrgType=~/^LIB$/o) {
+#		code to ensure that the static libraries for all builds are built at the library stage
+		foreach (@BldList) {
+			&main::Output(
+				" $_"
+			);
+		}
+	}
+	elsif ($DefFile and !$NoExportLibrary) {
+		unless (&main::ExportUnfrozen) {
+			if (-e $DefFile) { # effectively "if project frozen ..."
+				&main::Output(
+					" ", &Generic_Quote("\$(EPOCLIB)\\LIB\\$PrimaryExportLibrary.lib")
+				);
+				&main::Output(
+					"\n"
+				);
+			} else {
+				&main::Output(
+					"\n",
+					"\t\@echo WARNING: Not attempting to create any import libraries.\n",
+					"\t\@echo When exports are frozen in \"$DefFile\", regenerate Makefile.\n"
+				);
+			}
+		}
+		else {
+			&main::Output(
+				"\n",
+				"\t\@echo Not attempting to create \"\$(EPOCLIB)\\LIB\\$PrimaryExportLibrary.lib\"\n",
+				"\t\@echo from frozen .DEF file, since EXPORTUNFROZEN specified.\n"
+			);
+		}
+
+
+
+		&main::Output(
+			"\n",
+			"\n",
+			"# REAL TARGET - LIBRARY\n",
+		);
+		
+		&main::Output(
+			"\n",
+			&Generic_Quote("\$(EPOCLIB)\\LIB\\$ExportLibrary.lib"), " : ",
+			&Generic_Quote("\$(EPOCBLD)\\$ExportLibrary.prep.def"), "\n",
+			"\t$Dlltool $PlatOpt{Dlltool} --input-def \"\$<\"  --dllname \"$LinkAs\"  --output-lib \"\$@\" \n",
+			"\t-\$(ERASE) \"\$(EPOCBLD)\\tmp.txt \"\n"
+		);
+		if ($ExtraExportLibrary) {
+			&main::Output(
+				"\n",
+				&Generic_Quote("\$(EPOCLIB)\\LIB\\$ExtraExportLibrary.lib"), " : ",
+				&Generic_Quote("\$(EPOCLIB)\\LIB\\$ExportLibrary.lib"), "\n",
+				"\tcopy \$< \$@\n"
+			);
+		}
+	}
+
+
+	&main::Output(
+		"\n",
+		"CLEANLIBRARY :\n"
+	);
+	if ($DefFile and !$NoExportLibrary) {
+		&main::Output(
+			"\t-\$(ERASE) \"\$(EPOCLIB)\\LIB\\$ExportLibrary.lib \"\n"
+		);
+		if ($ExtraExportLibrary) {
+			&main::Output(
+				"\t-\$(ERASE) \"\$(EPOCLIB)\\LIB\\$ExtraExportLibrary.lib \"\n"
+			);
+		}
+
+	}
+
+	&main::Output(
+		"\n",
+		"\n"
+	);
+	&Generic_MakeWorkDir('MAKEWORKLIBRARY',"${LibPath}LIB");
+
+	&Generic_Releaseables;
+}
+
+
+sub PMBld {
+
+	my @ASSPLibList=&main::ASSPLibList;
+	my @SrcList=&main::SrcList;
+	my $BaseTrg=&main::BaseTrg;
+	my $Bld=&main::Bld;
+	my $ChopBldPath=&main::Path_Chop(&main::BldPath);
+	my $DefFile=&main::DefFile;
+	my $EPOCIncPath=&main::EPOCIncPath;
+	my $FirstLib=&main::FirstLib;
+	my $BasicTrgType=&main::BasicTrgType;
+	my @LibList;
+	my $LibPath=&main::LibPath;
+	my $LinkAs=&main::LinkAs;
+	my $ChopRelPath=&main::Path_Chop(&main::RelPath);
+	my $RelPath=&main::RelPath;
+	my @StatLibList=&main::StatLibList;
+	my $StatLinkPath=&main::StatLinkPath;
+	my $Trg=&main::Trg;
+	my $TrgType=&main::TrgType;
+	my @UidList=&main::UidList;
+	my $ExportLibrary=&main::ExportLibrary;
+	my $NoExportLibrary=&main::NoExportLibrary;
+	my $SystemTrg = SystemTarget();
+	my %Version = &main::Version();
+	my $ExtraExportLibrary;
+	unless ($Version{explicit}) {
+		$ExtraExportLibrary = $ExportLibrary;
+		$ExtraExportLibrary =~ s/\{(\d|a|b|c|d|e|f){8}\}//i;
+	}
+
+	if ($Bld =~ /DEB/) {
+		@LibList = &main::DebugLibList;
+	} else {
+		@LibList = &main::LibList;
+	}
+
+#	set up $LinkAs
+	$UidList[2]=~/^0x(.*)$/o;
+	if ($1 ne '00000000') {	# have to make sure than series of noughts in brackets doesn't appear in name for null uids
+		$LinkAs=join '', &main::Path_Split('Base',$LinkAs),"[$1]",&main::Path_Split('Ext',$LinkAs);
+	}
+	
+
+
+
+
+	# REAL TARGETS
+	#-------------
+	&main::Output(
+		"# REAL TARGET - BUILD VARIANT $Bld\n",
+		"\n"
+	);
+
+
+#	releasables
+	my @releaseables;
+	
+
+	push @releaseables, "$RelPath$Trg" if ($BasicTrgType!~/^IMPLIB$/io);
+	if ($BasicTrgType=~/^(DLL|EXE)$/o) {
+		push @releaseables, "$RelPath$Trg.MAP";
+	}
+	if (-e $DefFile and !$NoExportLibrary) { # effectively "if project frozen ..."
+		push @releaseables, "$LibPath$ExportLibrary.lib";
+		push @releaseables, "$LibPath$ExtraExportLibrary.lib" if ($ExtraExportLibrary);
+	}
+	
+	&main::Output(
+		"WHAT$Bld : WHATGENERIC\n",
+		"\n",
+		"CLEAN$Bld : CLEANBUILD$Bld CLEANRELEASE$Bld CLEANLIBRARY\n ",
+		"\n",
+		"CLEANBUILD$Bld : \n",
+		"\t\@perl -S ermdir.pl \"\$(EPOCBLD$Bld)\"\n",
+		"\n",
+		"CLEANRELEASE$Bld : CLEANGENERIC\n",
+		"\n"
+	);
+	&Generic_WhatCleanTargets($Bld, "WHAT$Bld", "CLEANRELEASE$Bld", @releaseables);
+
+	&Generic_MakeWorkDir("MAKEWORK$Bld",$ChopBldPath);
+	&Generic_MakeWorkDir("MAKEWORK$Bld",$ChopRelPath);
+
+	return if ($BasicTrgType=~/^IMPLIB$/io);
+
+	&main::Output(
+		"LISTING$Bld : MAKEWORK$Bld"
+	);
+	foreach (@SrcList) {
+		my $BaseSrc = &main::Path_Split('Base', $_);
+		my $Ext = &main::Path_Split('Ext', $_);
+		$BaseSrc.='_' if (lc($Ext) eq '.cia');
+   		&main::Output(
+			" \\\n\tLISTING$Bld$BaseSrc"
+   		);
+   	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+
+	&main::Output(
+		"LIBS$Bld="
+	);
+
+	
+	if ($BasicTrgType=~/^DLL$/o) { # Add the DLL stub library
+		&main::Output(
+			" \\\n\t",
+			&Generic_Quote("\$(EPOCSTATLINK$Bld)\\EDLLSTUB.LIB")
+		);
+	}
+
+	
+	if ($HelperLib) {
+		&main::Output(
+			" \\\n\t",
+			&Generic_Quote("\$(EPOCSTATLINK$Bld)\\$HelperLib")
+		);
+	}
+	foreach (@StatLibList) {
+		&main::Output(
+			" \\\n\t",
+			&Generic_Quote("\$(EPOCSTATLINK$Bld)\\$_")
+		);
+	}
+
+
+	foreach (@ASSPLibList) {
+		&main::Output(
+			" \\\n\t",
+			&Generic_Quote("\$(EPOCASSPLINK$Bld)\\$_")
+		);
+	}
+	foreach (@LibList) {
+		&main::Output(
+			" \\\n\t",
+			&Generic_Quote("\$(EPOCLINK)\\LIB\\$_")
+		);
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+
+
+	&main::Output(
+		"LINKLIBS$Bld="
+	);
+	
+	
+	if ($BasicTrgType=~/^DLL$/o) { # Add the DLL stub library
+		&main::Output(
+			" \\\n\t \"",
+			&Generic_Quote("\$(EPOCSTATLINK$Bld)\\EDLLSTUB.LIB"),
+			" \""
+		);
+	}
+
+	
+	if ($HelperLib) {
+		&main::Output(
+			" \\\n\t \"",
+			&Generic_Quote("\$(EPOCSTATLINK$Bld)\\$HelperLib"),
+			" \""
+		);
+	}
+	foreach (@StatLibList) {
+		&main::Output(
+			" \\\n\t \"",
+			&Generic_Quote("\$(EPOCSTATLINK$Bld)\\$_"),
+			" \""
+		);
+	}
+
+
+	foreach (@ASSPLibList) {
+		&main::Output(
+			" \\\n\t \"",
+			&Generic_Quote("\$(EPOCASSPLINK$Bld)\\$_"),
+			" \""
+		);
+	}
+	foreach (@LibList) {
+		&main::Output(
+			" \\\n\t \"",
+			&Generic_Quote("\$(EPOCLINK)\\LIB\\$_"),
+			" \""
+		);
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+
+#	Establish the entry point symbol
+	my $EntrySymbol;
+	if ($BasicTrgType=~/^DLL$/o || $TrgType=~/^EXEDLL$/o ) {
+		$EntrySymbol = '_E32Dll';
+	}
+	elsif ($BasicTrgType=~/^EXE$/o || $TrgType=~/^EXEXP$/o ) {
+		$EntrySymbol = '_E32Startup';
+	}
+	
+	&main::Output(
+		&Generic_Quote("\$(EPOCTRG$Bld)\\$Trg"), " : ",
+		&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseTrg.in")
+	);
+	
+	if (-e $DefFile || defined($genDefFile)) { # effectively "if project frozen ..."
+		&main::Output(
+			" ", &Generic_Quote("\$(EPOCBLD)\\$ExportLibrary.lib.exp")
+		);
+	}
+	if ($BasicTrgType=~/^(EXE|DLL)$/o) {
+		&main::Output(
+			" ", &Generic_Quote("\$(EPOCSTATLINK$Bld)\\$FirstLib")
+		);
+	}
+	
+	if ($TrgType=~/^EXEXP$/o) {
+		&main::Output(
+			" ", &Generic_Quote("\$(EPOCSTATLINK$Bld)\\$FirstLib")
+		);
+	}
+	&main::Output(
+		" \$(LIBS$Bld)\n"
+	);
+
+
+
+
+	if ($BasicTrgType=~/^(DLL|EXE)/o) {
+
+
+#		call ld to link the target
+		&main::Output(
+			"\t$Link $PlatOpt{Ld}  -nostdlib   "
+		);
+
+
+
+	if ($BasicTrgType=~/^DLL$/o || $TrgType=~/^EXEXP$/o || $TrgType=~/^EXEDLL$/o) {
+			if (-e $DefFile || defined($genDefFile)) {
+				&main::Output(
+				"\"\$(EPOCBLD)\\$ExportLibrary.lib.exp \" \\\n"
+				
+				);		
+			}		
+			if ($BasicTrgType=~/^DLL$/o) {
+				&main::Output(
+					"--dll $PlatOpt{Entry} _$EntrySymbol  \\\n"
+				);
+			}
+			else{
+				&main::Output(
+					" $PlatOpt{Entry} _$EntrySymbol  \\\n"
+				);
+						
+			}
+		}
+		elsif ($BasicTrgType=~/^EXE$/o) {
+			&main::Output(
+				" $PlatOpt{Entry} _$EntrySymbol  \\\n"
+			);
+		}
+		
+#		--whole-archive is required here apparently because of a defect in the gcc toolchain
+#		the flag can probably be removed with a later version of gcc
+		&main::Output(
+			"\t\t-Map \"\$(EPOCTRG$Bld)\\$Trg.map \" -o \"\$(EPOCBLD$Bld)\\$Trg \" \\\n",
+			"\t\t\"\$(EPOCSTATLINK$Bld)\\$FirstLib \" --whole-archive \"\$(EPOCBLD$Bld)\\$BaseTrg.in \" \\\n",
+			"\t\t--no-whole-archive"
+		);
+		
+
+		&main::Output(
+			" \$(LINKLIBS$Bld) \$(USERLDFLAGS)\n"
+		);
+		
+
+		if (&main::CompressTarget) {
+			&main::Output(
+			"\tpetran $PlatOpt{Petran} -version ", &Genutl_VersionToUserString(%Version), " -sid ", &main::SecureId(), " -nocompress " ,  " \"\$(EPOCBLD$Bld)\\$Trg\" \"\$\@\" \\\n",
+			"\t\t"
+			);
+		}
+		else {
+			if(&main::CompressTargetMode==NOCOMPRESSIONMETHOD){
+				&main::Output(
+					"\tpetran $PlatOpt{Petran} -version ", &Genutl_VersionToUserString(%Version), " -sid ", &main::SecureId(), " \"\$(EPOCBLD$Bld)\\$Trg\" \"\$\@\" \\\n",
+					"\t\t"
+				);
+			}
+			elsif(&main::CompressTargetMode==INFLATECOMPRESSIONMETHOD){
+				&main::Output(
+					"\tpetran $PlatOpt{Petran} -version ", &Genutl_VersionToUserString(%Version), " -sid ", &main::SecureId(), " ", "  -compressionmethod deflate", " \"\$(EPOCBLD$Bld)\\$Trg\" \"\$\@\" \\\n",
+					"\t\t"
+				);
+			}
+			elsif(&main::CompressTargetMode==BYTEPAIRCOMPRESSIONMETHOD){
+				&main::Output(
+					"\tpetran $PlatOpt{Petran} -version ", &Genutl_VersionToUserString(%Version), " -sid ", &main::SecureId(), " ", "  -compressionmethod bytepair", " \"\$(EPOCBLD$Bld)\\$Trg\" \"\$\@\" \\\n",
+					"\t\t"
+				);
+			}
+		}
+
+# ALWAYS ALLOW WRITEABLE DATA... PART OF THE VTABLE IMPORT WORKAROUND
+#		if (&main::AllowDllData) {
+			&main::Output(
+				' -allow'
+			);
+#		}
+		if (not &main::CallDllEntryPoints) {
+			&main::Output(
+				' -nocall'
+			);
+		}
+		if (&main::DataLinkAddress) {
+			&main::Output(
+				' -datalinkaddress ',&main::DataLinkAddress
+			);
+		}
+		if (&main::FixedProcess) {
+			&main::Output(
+				' -fixed'
+			);
+		}
+		if (&main::HeapSize) {
+			my %HeapSize=&main::HeapSize;
+			&main::Output(
+				' -heap ',$HeapSize{Min},' ',$HeapSize{Max}
+			);
+		}
+		if (&main::ProcessPriority) {
+			&main::Output(
+				' -priority ',&main::ProcessPriority
+			);
+		}
+		if (&main::SmpSafe) {
+			&main::Output(
+				' -smpsafe'
+			);
+		}
+		if (&main::StackSize) {
+			&main::Output(
+				' -stack ',&main::StackSize
+			);
+		}
+
+		if (&main::CodePagingTargetMode == UNPAGED) {
+			&main::Output(
+				' -codepaging unpaged'
+			);
+		}
+		elsif (&main::CodePagingTargetMode == PAGED) {
+			&main::Output(
+				' -codepaging paged'
+			);
+		}
+
+		if (&main::DataPagingTargetMode == UNPAGED) {
+			&main::Output(
+				' -datapaging unpaged'
+			);
+		}
+		elsif (&main::DataPagingTargetMode == PAGED) {
+			&main::Output(
+				' -datapaging paged'
+			);
+		}
+
+		my $i=1;
+		foreach (@UidList) {
+			&main::Output(
+				" -uid$i $_"
+			);
+			$i++;
+		}
+		if(&main::VendorId) {
+			&main::Output(
+				' -vid ',&main::VendorId
+			);
+		}
+		&main::Output(
+			' -capability ',&main::Capability,
+		);
+	}
+	elsif ($BasicTrgType=~/^LIB$/o) {
+		&main::Output(
+			"\tcopy \"\$(EPOCBLD$Bld)\\$BaseTrg.in\" \"\$(EPOCSTATLINK$Bld)\\$Trg\"\n"
+		);
+	}
+
+	&main::Output(
+		"\n"
+	);
+
+
+	# TARGET *.IN
+	#------------
+	if (scalar @SrcList >100) {
+		# deal with very long lists by splitting them into 150 file pieces, which allows
+		# about 200 bytes per filename if the underlying max size is 32K
+		#
+		my $counter1=100;	# i.e. trigger new variable immediately
+		my $counter2=0;
+		my @objvarlist=();
+		foreach (@SrcList) {
+			if ($counter1==100) {
+				$counter1=0;
+				$counter2++;
+				my $objvar = "OBJECTS$Bld$counter2";
+				push @objvarlist, " \$($objvar)";
+				&main::Output(
+					"\n",
+					"$objvar="
+				);
+			}
+			my $BaseSrc = &main::Path_Split('Base', $_);
+			my $Ext = &main::Path_Split('Ext', $_);
+			$BaseSrc.='_' if (lc($Ext) eq '.cia');
+			&main::Output(
+				" \\\n\t", &Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.o")
+			);
+			$counter1++;
+		}
+		&main::Output(
+			"\n",
+			"\n",
+			&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseTrg.in"), " : ", @objvarlist,"\n",
+			"\tif exist \"\$\@\" del \"\$\@\"\n"
+		);
+		foreach (@objvarlist) {
+			# Add the files to the list in groups
+			&main::Output(
+				"\t$Archive cr \"\$\@ \" $_  \n"
+			);
+		}
+		&main::Output(
+			"\n\n"
+		);
+	} else {
+		# shorter lists remain unchanged
+		# 
+		&main::Output(
+			"OBJECTS$Bld="
+		);
+		foreach (@SrcList) {
+			my $BaseSrc = &main::Path_Split('Base', $_);
+			my $Ext = &main::Path_Split('Ext', $_);
+			$BaseSrc.='_' if (lc($Ext) eq '.cia');
+			&main::Output(
+				" \\\n\t", &Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.o")
+			);
+		}
+		&main::Output(
+			"\n",
+			"\n"
+		);
+		
+		##Version of object list with quotes
+		&main::Output(
+			"ARCHIVEOBJECTS$Bld="
+		);
+		foreach (@SrcList) {
+			my $BaseSrc = &main::Path_Split('Base', $_);
+			my $Ext = &main::Path_Split('Ext', $_);
+			$BaseSrc.='_' if (lc($Ext) eq '.cia');
+			&main::Output(
+				" \\\n\t \"", &Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.o"),
+				" \""
+			);
+		}
+		&main::Output(
+			"\n",
+			"\n"
+		);
+						
+		&main::Output(
+			&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseTrg.in"), " : \$(OBJECTS$Bld)\n",
+			"\tif exist \"\$\@\" del \"\$\@\"\n",
+			"\t$Archive cr \"\$\@ \" \$(ARCHIVEOBJECTS$Bld)  \n",
+			"\n\n"
+		);
+	}
+}
+
+
+sub PMStartSrcList {
+
+	&main::Output(
+		"# SOURCES\n",
+		"\n"
+	);
+}
+
+sub PMBitMapBld {
+
+	&Generic_BitMapBld;
+	
+}
+
+sub PMResrcBld {
+
+	&Generic_ResrcBld;
+
+}
+
+sub PMAifBld {
+
+	&Generic_AifBld;
+
+}
+
+sub PMStartSrc {
+	my $Src=&main::Src;
+
+	&main::Output(
+		"# Source $Src\n",
+		"\n"
+	);
+}
+
+sub PMSrcDepend {
+	my @BldList=&main::BldList;	
+	my @DepList=&main::DepList;
+	my $BaseSrc=&main::BaseSrc;
+	my $ExtSrc=&main::ExtSrc;
+	my $cia = (lc($ExtSrc) eq '.cia') ? "_" : "";
+
+	return if (@DepList == 0);
+
+	foreach (@BldList) {
+		&main::Output(
+			&Generic_Quote("\$(EPOCBLD$_)\\$BaseSrc$cia.lis"), " ",
+			&Generic_Quote("\$(EPOCBLD$_)\\$BaseSrc$cia.o"), " \\\n",
+		);
+	}
+	&main::Output(
+		":"
+	);
+	foreach (@DepList) {
+		&main::Output(
+		" \\\n\t", &Generic_Quote($_)
+		);
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+}
+
+sub PMSrcBldDepend {
+	my $Bld=&main::Bld;
+	my @DepList=&main::DepList;
+	my $BaseSrc=&main::BaseSrc;
+	my $ExtSrc=&main::ExtSrc;
+	my $cia = (lc($ExtSrc) eq '.cia') ? "_" : "";
+
+	return if (@DepList == 0);
+
+	&main::Output(
+		&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc$cia.lis"), " ",
+		&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc$cia.o"), " :",
+	);
+	foreach (@DepList) {
+		&main::Output(
+			" \\\n\t", &Generic_Quote($_)
+		);
+	}
+	&main::Output(
+		"\n",
+		"\n"
+	);
+}
+
+sub SelectLangOptions {
+	my ($Ext) = @_;
+	if ($Ext=~/^.c$/) {
+		return '-x c';
+	}
+	return '-fno-rtti -fno-exceptions -fcheck-new';
+}
+
+sub PMEndSrcBld {
+	my $ABI=&main::ABI;
+	my $BaseSrc=&main::BaseSrc;
+	my $Bld=&main::Bld;
+	my $Src=ucfirst lc &main::Src;
+	my $SrcPath=&main::SrcPath;
+	my $Ext = &main::Path_Split('Ext', $Src);
+	my $Cia = (lc($Ext) eq '.cia') ? 1 : 0;
+	my $LangOptions = &SelectLangOptions($Ext);
+
+	my $RTWSrcPath=&main::Path_Chop(&main::Path_RltToWork($SrcPath));
+
+	# Use GCC trick to get assembler source files preprocessed with CPP
+	$Src =~ s/\.s$/.S/i;
+
+	if ($Cia) {
+		&main::Output(
+			&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc\_.o"), " : ",
+			&Generic_Quote("$SrcPath$Src"), "\n",
+			"\techo $Src\n",
+			"\t\$(GCC$Bld) -fomit-frame-pointer -O1 -x c++  -D__CIA__ -I \"$RTWSrcPath\" \$(INCDIR)  -o \$\@ \"$RTWSrcPath\\$Src\"\n",
+			"\n",
+	#		generate an assembly listing target too
+			"LISTING$Bld$BaseSrc\_ : ", &Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc\_.lis"), "\n",
+			"\t", &Generic_CopyAction("$SrcPath$BaseSrc\_.$ABI.lst"),
+			"\n",
+			&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc\_.lis"), " : ",
+			&Generic_Quote("$SrcPath$Src"), "\n",
+			"\t\$(GCC$Bld) -fomit-frame-pointer -O1 -x c++  -D__CIA__ -Wa,-adln -I \"$RTWSrcPath\" \$(INCDIR)  -o nul: \"$RTWSrcPath\\$Src\" > \$\@\n",
+			"\n"
+		);
+	} else {
+		&main::Output(
+			&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.o"), " : ",
+			&Generic_Quote("$SrcPath$Src"), "\n",
+			"\techo $Src\n",
+			"\t\$(GCC$Bld) $LangOptions -I \"$RTWSrcPath\" \$(INCDIR) -o \$\@ \"$RTWSrcPath\\$Src\"\n",
+			"\n",
+	#		generate an assembly listing target too
+			"LISTING$Bld$BaseSrc : ", &Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.lis"), "\n",
+			"\t", &Generic_CopyAction("$SrcPath$BaseSrc.$ABI.lst"),
+			"\n",
+			&Generic_Quote("\$(EPOCBLD$Bld)\\$BaseSrc.lis"), " : ",
+			&Generic_Quote("$SrcPath$Src"), "\n",
+			"\t\$(GCC$Bld) $LangOptions -Wa,-adln -I \"$RTWSrcPath\" \$(INCDIR)  -o nul: \"$RTWSrcPath\\$Src\" > \$\@\n",
+			"\n"
+		);
+	}
+}
+
+sub PMEndSrc {
+
+	&main::Output(
+		"\n",
+		"\n"
+	);
+}
+
+sub PMEndSrcList {
+
+	# Deal with accumulated MAKEDIRS etc.
+
+	&Generic_End;
+}
+
+sub PMPrefixFile 
+{ 
+    return &Generic_Quote(&main::Path_Drive.&main::EPOCIncPath."gcc.h");
+}
+
+1;
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/platform/cw_link_descriptor_template.cwlink	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+ All rights reserved.
+ This component and the accompanying materials are made available
+ under the terms of the License "Eclipse Public License v1.0"
+ which accompanies this distribution, and is available
+ at the URL "http://www.eclipse.org/legal/epl-v10.html".
+
+ Initial Contributors:
+ Nokia Corporation - initial contribution.
+
+ Contributors:
+
+ Description:
+
+ -->
+<!--Sample XML file generated by XMLSPY v5 rel. 3 U (http://www.xmlspy.com)-->
+<template-file xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.metrowerks.com/schemas/2003/IDE/SymbianLinkDescriptor.xsd">
+	<template uuid="{AF9FEC09-7314-4940-9443-1644BD3648B5}">
+		<version>1</version>
+		<name>Symbian Link Descriptor</name>
+		<aliases>
+			<alias uuid="{AF9FEC10-7314-4940-9443-1644BD3648B5}">.</alias>
+		</aliases>
+		<setting uuid-alias="." entry="linkCommandSet">
+			<array inheritance="none"></array>
+		</setting>
+	</template>
+</template-file>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/platform/cw_link_descriptor_template_v2.cwlink	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+ All rights reserved.
+ This component and the accompanying materials are made available
+ under the terms of the License "Eclipse Public License v1.0"
+ which accompanies this distribution, and is available
+ at the URL "http://www.eclipse.org/legal/epl-v10.html".
+
+ Initial Contributors:
+ Nokia Corporation - initial contribution.
+
+ Contributors:
+
+ Description:
+
+ -->
+<!--Sample XML file generated by XMLSPY v5 rel. 3 U (http://www.xmlspy.com)-->
+<template-file xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.metrowerks.com/schemas/2003/IDE/SymbianLinkDescriptor.xsd">
+	<template uuid="{AF9FEC09-7314-4940-9443-1644BD3648B5}">
+		<version>1</version>
+		<name>Symbian Link Descriptor</name>
+		<aliases>
+			<alias uuid="{AF9FEC10-7314-4940-9443-1644BD3648B5}">.</alias>
+		</aliases>
+		<setting uuid-alias="." entry="linkCommandSet">
+			<array inheritance="none"></array>
+		</setting>
+		<setting uuid-alias="." entry="symbolDefinitions">
+			<array inheritance="none"></array>
+		</setting>
+		<setting uuid-alias="."  entry="textFileDumpDefinitions">
+			<array inheritance="none"></array>
+		</setting>
+	</template>
+</template-file>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/platform/cw_project_template_v3.xml	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,2653 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
+<!--
+ Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+ All rights reserved.
+ This component and the accompanying materials are made available
+ under the terms of the License "Eclipse Public License v1.0"
+ which accompanies this distribution, and is available
+ at the URL "http://www.eclipse.org/legal/epl-v10.html".
+
+ Initial Contributors:
+ Nokia Corporation - initial contribution.
+
+ Contributors:
+
+ Description:
+
+ -->
+<?codewarrior exportversion="1.0.1" ideversion="5.0" ?>
+
+<!DOCTYPE PROJECT [
+<!ELEMENT PROJECT (TARGETLIST, TARGETORDER, GROUPLIST, DESIGNLIST?)>
+<!ELEMENT TARGETLIST (TARGET+)>
+<!ELEMENT TARGET (NAME, SETTINGLIST, FILELIST?, LINKORDER?, SEGMENTLIST?, OVERLAYGROUPLIST?, SUBTARGETLIST?, SUBPROJECTLIST?, FRAMEWORKLIST?)>
+<!ELEMENT NAME (#PCDATA)>
+<!ELEMENT USERSOURCETREETYPE (#PCDATA)>
+<!ELEMENT PATH (#PCDATA)>
+<!ELEMENT FILELIST (FILE*)>
+<!ELEMENT FILE (PATHTYPE, PATHROOT?, ACCESSPATH?, PATH, PATHFORMAT?, ROOTFILEREF?, FILEKIND?, FILEFLAGS?)>
+<!ELEMENT PATHTYPE (#PCDATA)>
+<!ELEMENT PATHROOT (#PCDATA)>
+<!ELEMENT ACCESSPATH (#PCDATA)>
+<!ELEMENT PATHFORMAT (#PCDATA)>
+<!ELEMENT ROOTFILEREF (PATHTYPE, PATHROOT?, ACCESSPATH?, PATH, PATHFORMAT?)>
+<!ELEMENT FILEKIND (#PCDATA)>
+<!ELEMENT FILEFLAGS (#PCDATA)>
+<!ELEMENT FILEREF (TARGETNAME?, PATHTYPE, PATHROOT?, ACCESSPATH?, PATH, PATHFORMAT?)>
+<!ELEMENT TARGETNAME (#PCDATA)>
+<!ELEMENT SETTINGLIST ((SETTING|PANELDATA)+)>
+<!ELEMENT SETTING (NAME?, (VALUE|(SETTING+)))>
+<!ELEMENT PANELDATA (NAME, VALUE)>
+<!ELEMENT VALUE (#PCDATA)>
+<!ELEMENT LINKORDER (FILEREF*)>
+<!ELEMENT SEGMENTLIST (SEGMENT+)>
+<!ELEMENT SEGMENT (NAME, ATTRIBUTES?, FILEREF*)>
+<!ELEMENT ATTRIBUTES (#PCDATA)>
+<!ELEMENT OVERLAYGROUPLIST (OVERLAYGROUP+)>
+<!ELEMENT OVERLAYGROUP (NAME, BASEADDRESS, OVERLAY*)>
+<!ELEMENT BASEADDRESS (#PCDATA)>
+<!ELEMENT OVERLAY (NAME, FILEREF*)>
+<!ELEMENT SUBTARGETLIST (SUBTARGET+)>
+<!ELEMENT SUBTARGET (TARGETNAME, ATTRIBUTES?, FILEREF?)>
+<!ELEMENT SUBPROJECTLIST (SUBPROJECT+)>
+<!ELEMENT SUBPROJECT (FILEREF, SUBPROJECTTARGETLIST)>
+<!ELEMENT SUBPROJECTTARGETLIST (SUBPROJECTTARGET*)>
+<!ELEMENT SUBPROJECTTARGET (TARGETNAME, ATTRIBUTES?, FILEREF?)>
+<!ELEMENT FRAMEWORKLIST (FRAMEWORK+)>
+<!ELEMENT FRAMEWORK (FILEREF, LIBRARYFILE?, VERSION?)>
+<!ELEMENT LIBRARYFILE (FILEREF)>
+<!ELEMENT VERSION (#PCDATA)>
+<!ELEMENT TARGETORDER (ORDEREDTARGET|ORDEREDDESIGN)*>
+<!ELEMENT ORDEREDTARGET (NAME)>
+<!ELEMENT ORDEREDDESIGN (NAME, ORDEREDTARGET+)>
+<!ELEMENT GROUPLIST (GROUP|FILEREF)*>
+<!ELEMENT GROUP (NAME, (GROUP|FILEREF)*)>
+<!ELEMENT DESIGNLIST (DESIGN+)>
+<!ELEMENT DESIGN (NAME, DESIGNDATA)>
+<!ELEMENT DESIGNDATA (#PCDATA)>
+]>
+
+<PROJECT>
+    <TARGETLIST>
+        <TARGET>
+            <NAME>WINSCW UDEB</NAME>
+            <SETTINGLIST>
+
+                <!-- Settings for "Source Trees" panel -->
+                <SETTING><NAME>UserSourceTrees</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Access Paths" panel -->
+                <SETTING><NAME>AlwaysSearchUserPaths</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>InterpretDOSAndUnixPaths</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>RequireFrameworkStyleIncludes</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>UserSearchPaths</NAME>
+                    <SETTING>
+                        <SETTING><NAME>SearchPath</NAME>
+                            <SETTING><NAME>Path</NAME><VALUE>:</VALUE></SETTING>
+                            <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                            <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                        </SETTING>
+                        <SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
+                    </SETTING>
+                </SETTING>
+		        <SETTING><NAME>SystemSearchPaths</NAME>
+		            <SETTING>
+		                <SETTING><NAME>SearchPath</NAME>
+		                    <SETTING><NAME>Path</NAME><VALUE>:</VALUE></SETTING>
+		                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+		                    <SETTING><NAME>PathRoot</NAME><VALUE>CodeWarrior</VALUE></SETTING>
+		                </SETTING>
+		                <SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
+		            </SETTING>
+		        </SETTING>
+
+                <!-- Settings for "Debugger Runtime" panel -->
+                <SETTING><NAME>MWRuntimeSettings_WorkingDirectory</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>MWRuntimeSettings_CommandLine</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>MWRuntimeSettings_HostApplication</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>MWRuntimeSettings_EnvVars</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Target Settings" panel -->
+                <SETTING><NAME>Linker</NAME><VALUE>Symbian Linker v2</VALUE></SETTING>
+                <SETTING><NAME>PreLinker</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>PostLinker</NAME><VALUE>Symbian Installer v2</VALUE></SETTING>
+                <SETTING><NAME>Targetname</NAME><VALUE>WINSCW UDEB</VALUE></SETTING>
+                <SETTING><NAME>OutputDirectory</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SaveEntriesUsingRelativePaths</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "File Mappings" panel -->
+        <SETTING><NAME>FileMappings</NAME>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.c</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.cc</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.cfg</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.cia</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.cpp</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.cwlink</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>XML</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.cxx</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.def</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.h</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.hrh</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.i</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.iby</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.ii</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.inf</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.ini</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.loc</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.mmp</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.mmpi</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.pkg</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.policy</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.ra</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.resources</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE>Symbian Resource v2</VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>XML</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>true</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.rh</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.rls</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.rss</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.s</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.script</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.txt</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.a</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.lib</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.o</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+		            </SETTING>
+		        </SETTING>
+		        
+                <!-- Settings for "Build Extras" panel -->
+                <SETTING><NAME>CacheModDates</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>DumpBrowserInfo</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>CacheSubprojects</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>UseThirdPartyDebugger</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>BrowserGenerator</NAME><VALUE>2</VALUE></SETTING>
+                <SETTING><NAME>DebuggerAppPath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>DebuggerCmdLineArgs</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>DebuggerWorkingDir</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CodeCompletionPrefixFileName</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CodeCompletionMacroFileName</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Debugger Target" panel -->
+                <SETTING><NAME>ConsoleEncoding</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>LogSystemMessages</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>AutoTargetDLLs</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>StopAtWatchpoints</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>PauseWhileRunning</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>PauseInterval</NAME><VALUE>5</VALUE></SETTING>
+                <SETTING><NAME>PauseUIFlags</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>AltExePath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>StopAtTempBPOnLaunch</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>CacheSymbolics</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>TempBPFunctionName</NAME><VALUE>E32Main</VALUE></SETTING>
+                <SETTING><NAME>TempBPType</NAME><VALUE>1</VALUE></SETTING>
+
+                <!-- Settings for "Remote Debug" panel -->
+                <SETTING><NAME>Enabled</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>ConnectionName</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>DownloadPath</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>LaunchRemoteApp</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>RemoteAppPath</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CoreID</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>JTAGClockSpeed</NAME><VALUE>8000</VALUE></SETTING>
+                <SETTING><NAME>IsMultiCore</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>OSDownload</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>UseGlobalOSDownload</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>OSDownloadConnectionName</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>OSDownloadPath</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>AltDownload</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>AltDownloadConnectionName</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Auto-target" panel -->
+                <SETTING><NAME>OtherExecutables</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Custom Keywords" panel -->
+                <SETTING><NAME>CustomColor1</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CustomColor2</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CustomColor3</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CustomColor4</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "ARM Debugger" panel -->
+                <SETTING><NAME>Processor</NAME><VALUE>Generic</VALUE></SETTING>
+                <SETTING><NAME>BraekPoinType_II</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>UseInitFile</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>UseConfigFile</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>IDexecutable</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>IDinitialized</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>IDuninitialized</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>IDconstant</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>SDexecutable</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>SDinitialized</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>SDuninitialized</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>SDconstant</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>VerifyMemWrites</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>ShowMPC107regs</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>InitializationFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>ConfigurationFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>BreakpointType</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>WatchpointType</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>TargetOS</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>RTOSPluginName</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>ByteOrderType</NAME><VALUE>0</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Installation" panel -->
+		        <SETTING><NAME>SymbianInstallationOutputFilename</NAME><VALUE>Application.sis</VALUE></SETTING>
+		        <SETTING><NAME>SymbianInstallationOutputLocation</NAME>
+		            <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+		            <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+		            <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+		        </SETTING>
+		        <SETTING><NAME>SymbianInstallationContentSearchLocation</NAME>
+		            <SETTING><NAME>Path</NAME><VALUE>epoc32\release\winscw\udeb</VALUE></SETTING>
+		            <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+		            <SETTING><NAME>PathRoot</NAME><VALUE>ROOT</VALUE></SETTING>
+		        </SETTING>
+		        <SETTING><NAME>SymbianInstallationPassword</NAME><VALUE></VALUE></SETTING>
+		        <SETTING><NAME>SymbianInstallationCreateStubFile</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Resource Panel" panel -->
+                <SETTING><NAME>SymbianResourcesMMPFileLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianResourcesBinaryOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianResourcesHeaderFileOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Remote Download" panel -->
+                <SETTING><NAME>FileList</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Symbian Common Panel" panel -->
+                <SETTING><NAME>ShowCommandLine</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>SymbianEpocToolsPath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>EPOCROOT</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Symbian Compiler Panel" panel -->
+                <SETTING><NAME>Compiler</NAME><VALUE>WINSCW</VALUE></SETTING>
+                <SETTING><NAME>PrefixFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>Macros</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>Arguments</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CIAArgs</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Symbian Debugging" panel -->
+                <SETTING><NAME>Parse Log File</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Log File Path</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>Symbian SDK Folder</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>Log Unresolved Modules</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Log Unresolved Sym Files</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Kernel Debugging" panel -->
+                <SETTING><NAME>Start Address</NAME><VALUE>0x00000000</VALUE></SETTING>
+                <SETTING><NAME>Run From Start Address</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Download Image</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>OS Image Path</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>Download Address</NAME><VALUE>0x00000000</VALUE></SETTING>
+                <SETTING><NAME>Ask First</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Debug Bootrom</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Bootrom Sym File</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Symbian Linker Panel" panel -->
+                <SETTING><NAME>LinkOutputFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>LinkCmdLine</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>SymbianImportLibrary</NAME><VALUE></VALUE></SETTING>
+		        <SETTING><NAME>canDebug</NAME><VALUE>true</VALUE></SETTING>
+		        <SETTING><NAME>canRun</NAME><VALUE>true</VALUE></SETTING>
+            </SETTINGLIST>
+            <FILELIST>
+            </FILELIST>
+            <LINKORDER>
+            </LINKORDER>
+        </TARGET>
+        <TARGET>
+            <NAME>WINSCW UREL</NAME>
+            <SETTINGLIST>
+
+                <!-- Settings for "Source Trees" panel -->
+                <SETTING><NAME>UserSourceTrees</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Access Paths" panel -->
+                <SETTING><NAME>AlwaysSearchUserPaths</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>InterpretDOSAndUnixPaths</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>RequireFrameworkStyleIncludes</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>UserSearchPaths</NAME>
+                    <SETTING>
+                        <SETTING><NAME>SearchPath</NAME>
+                            <SETTING><NAME>Path</NAME><VALUE>:</VALUE></SETTING>
+                            <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                            <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                        </SETTING>
+                        <SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
+                    </SETTING>
+                </SETTING>
+		        <SETTING><NAME>SystemSearchPaths</NAME>
+		            <SETTING>
+		                <SETTING><NAME>SearchPath</NAME>
+		                    <SETTING><NAME>Path</NAME><VALUE>:</VALUE></SETTING>
+		                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+		                    <SETTING><NAME>PathRoot</NAME><VALUE>CodeWarrior</VALUE></SETTING>
+		                </SETTING>
+		                <SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
+		            </SETTING>
+		        </SETTING>
+
+                <!-- Settings for "Debugger Runtime" panel -->
+                <SETTING><NAME>MWRuntimeSettings_WorkingDirectory</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>MWRuntimeSettings_CommandLine</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>MWRuntimeSettings_HostApplication</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>MWRuntimeSettings_EnvVars</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Target Settings" panel -->
+                <SETTING><NAME>Linker</NAME><VALUE>Symbian Linker v2</VALUE></SETTING>
+                <SETTING><NAME>PreLinker</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>PostLinker</NAME><VALUE>Symbian Installer v2</VALUE></SETTING>
+                <SETTING><NAME>Targetname</NAME><VALUE>WINSCW UREL</VALUE></SETTING>
+                <SETTING><NAME>OutputDirectory</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SaveEntriesUsingRelativePaths</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "File Mappings" panel -->
+        <SETTING><NAME>FileMappings</NAME>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.c</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.cc</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.cfg</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.cia</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.cpp</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.cwlink</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>XML</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.cxx</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.def</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.h</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.hrh</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.i</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.iby</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.ii</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.inf</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.ini</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.loc</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.mmp</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.mmpi</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.pkg</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.policy</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.ra</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.resources</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE>Symbian Resource v2</VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>XML</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>true</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.rh</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.rls</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.rss</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.s</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.script</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.txt</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.a</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.lib</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.o</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+		            </SETTING>
+		        </SETTING>
+
+                <!-- Settings for "Build Extras" panel -->
+                <SETTING><NAME>CacheModDates</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>DumpBrowserInfo</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>CacheSubprojects</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>UseThirdPartyDebugger</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>BrowserGenerator</NAME><VALUE>2</VALUE></SETTING>
+                <SETTING><NAME>DebuggerAppPath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>DebuggerCmdLineArgs</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>DebuggerWorkingDir</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CodeCompletionPrefixFileName</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CodeCompletionMacroFileName</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Debugger Target" panel -->
+                <SETTING><NAME>ConsoleEncoding</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>LogSystemMessages</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>AutoTargetDLLs</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>StopAtWatchpoints</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>PauseWhileRunning</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>PauseInterval</NAME><VALUE>5</VALUE></SETTING>
+                <SETTING><NAME>PauseUIFlags</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>AltExePath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>StopAtTempBPOnLaunch</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>CacheSymbolics</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>TempBPFunctionName</NAME><VALUE>E32Main</VALUE></SETTING>
+                <SETTING><NAME>TempBPType</NAME><VALUE>1</VALUE></SETTING>
+
+                <!-- Settings for "Remote Debug" panel -->
+                <SETTING><NAME>Enabled</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>ConnectionName</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>DownloadPath</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>LaunchRemoteApp</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>RemoteAppPath</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CoreID</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>JTAGClockSpeed</NAME><VALUE>8000</VALUE></SETTING>
+                <SETTING><NAME>IsMultiCore</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>OSDownload</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>UseGlobalOSDownload</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>OSDownloadConnectionName</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>OSDownloadPath</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>AltDownload</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>AltDownloadConnectionName</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Auto-target" panel -->
+                <SETTING><NAME>OtherExecutables</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Custom Keywords" panel -->
+                <SETTING><NAME>CustomColor1</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CustomColor2</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CustomColor3</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CustomColor4</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "ARM Debugger" panel -->
+                <SETTING><NAME>Processor</NAME><VALUE>Generic</VALUE></SETTING>
+                <SETTING><NAME>BraekPoinType_II</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>UseInitFile</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>UseConfigFile</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>IDexecutable</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>IDinitialized</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>IDuninitialized</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>IDconstant</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>SDexecutable</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>SDinitialized</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>SDuninitialized</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>SDconstant</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>VerifyMemWrites</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>ShowMPC107regs</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>InitializationFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>ConfigurationFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>BreakpointType</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>WatchpointType</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>TargetOS</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>RTOSPluginName</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>ByteOrderType</NAME><VALUE>0</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Installation" panel -->
+		        <SETTING><NAME>SymbianInstallationOutputFilename</NAME><VALUE>Application.sis</VALUE></SETTING>
+		        <SETTING><NAME>SymbianInstallationOutputLocation</NAME>
+		            <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+		            <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+		            <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+		        </SETTING>
+		        <SETTING><NAME>SymbianInstallationContentSearchLocation</NAME>
+		            <SETTING><NAME>Path</NAME><VALUE>epoc32\release\winscw\udeb</VALUE></SETTING>
+		            <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+		            <SETTING><NAME>PathRoot</NAME><VALUE>ROOT</VALUE></SETTING>
+		        </SETTING>
+		        <SETTING><NAME>SymbianInstallationPassword</NAME><VALUE></VALUE></SETTING>
+		        <SETTING><NAME>SymbianInstallationCreateStubFile</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Resource Panel" panel -->
+                <SETTING><NAME>SymbianResourcesMMPFileLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianResourcesBinaryOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianResourcesHeaderFileOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Remote Download" panel -->
+                <SETTING><NAME>FileList</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Symbian Common Panel" panel -->
+                <SETTING><NAME>ShowCommandLine</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>SymbianEpocToolsPath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>EPOCROOT</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Symbian Compiler Panel" panel -->
+                <SETTING><NAME>Compiler</NAME><VALUE>ARM</VALUE></SETTING>
+                <SETTING><NAME>PrefixFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>Macros</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>Arguments</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CIAArgs</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Symbian Debugging" panel -->
+                <SETTING><NAME>Parse Log File</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Log File Path</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>Symbian SDK Folder</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>Log Unresolved Modules</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Log Unresolved Sym Files</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Kernel Debugging" panel -->
+                <SETTING><NAME>Start Address</NAME><VALUE>0x00000000</VALUE></SETTING>
+                <SETTING><NAME>Run From Start Address</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Download Image</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>OS Image Path</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>Download Address</NAME><VALUE>0x00000000</VALUE></SETTING>
+                <SETTING><NAME>Ask First</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Debug Bootrom</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Bootrom Sym File</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Symbian Linker Panel" panel -->
+                <SETTING><NAME>LinkOutputFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>LinkCmdLine</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>SymbianImportLibrary</NAME><VALUE></VALUE></SETTING>
+		        <SETTING><NAME>canDebug</NAME><VALUE>true</VALUE></SETTING>
+		        <SETTING><NAME>canRun</NAME><VALUE>true</VALUE></SETTING>
+            </SETTINGLIST>
+            <FILELIST>
+            </FILELIST>
+            <LINKORDER>
+            </LINKORDER>
+        </TARGET>
+
+        <TARGET>
+            <NAME>ARM4T UDEB</NAME>
+            <SETTINGLIST>
+
+                <!-- Settings for "Source Trees" panel -->
+                <SETTING><NAME>UserSourceTrees</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Access Paths" panel -->
+                <SETTING><NAME>AlwaysSearchUserPaths</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>InterpretDOSAndUnixPaths</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>RequireFrameworkStyleIncludes</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>UserSearchPaths</NAME>
+                    <SETTING>
+                        <SETTING><NAME>SearchPath</NAME>
+                            <SETTING><NAME>Path</NAME><VALUE>:</VALUE></SETTING>
+                            <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                            <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                        </SETTING>
+                        <SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
+                    </SETTING>
+                </SETTING>
+		        <SETTING><NAME>SystemSearchPaths</NAME>
+		            <SETTING>
+		                <SETTING><NAME>SearchPath</NAME>
+		                    <SETTING><NAME>Path</NAME><VALUE>:</VALUE></SETTING>
+		                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+		                    <SETTING><NAME>PathRoot</NAME><VALUE>CodeWarrior</VALUE></SETTING>
+		                </SETTING>
+		                <SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
+		            </SETTING>
+		        </SETTING>
+
+                <!-- Settings for "Debugger Runtime" panel -->
+                <SETTING><NAME>MWRuntimeSettings_WorkingDirectory</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>MWRuntimeSettings_CommandLine</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>MWRuntimeSettings_HostApplication</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>MWRuntimeSettings_EnvVars</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Target Settings" panel -->
+                <SETTING><NAME>Linker</NAME><VALUE>Symbian Linker v2</VALUE></SETTING>
+                <SETTING><NAME>PreLinker</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>PostLinker</NAME><VALUE>Symbian Installer v2</VALUE></SETTING>
+                <SETTING><NAME>Targetname</NAME><VALUE>ARM4 UDEB</VALUE></SETTING>
+                <SETTING><NAME>OutputDirectory</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SaveEntriesUsingRelativePaths</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "File Mappings" panel -->
+        <SETTING><NAME>FileMappings</NAME>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.c</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.cc</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.cfg</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.cia</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.cpp</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.cwlink</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>XML</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.cxx</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.def</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.h</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.hrh</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.i</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.iby</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.ii</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.inf</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.ini</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.loc</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.mmp</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.mmpi</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.pkg</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.policy</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.ra</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.resources</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE>Symbian Resource v2</VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>XML</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>true</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.rh</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.rls</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.rss</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.s</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.script</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.txt</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.a</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.lib</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.o</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+		            </SETTING>
+		        </SETTING>
+
+                <!-- Settings for "Build Extras" panel -->
+                <SETTING><NAME>CacheModDates</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>DumpBrowserInfo</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>CacheSubprojects</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>UseThirdPartyDebugger</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>BrowserGenerator</NAME><VALUE>2</VALUE></SETTING>
+                <SETTING><NAME>DebuggerAppPath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>DebuggerCmdLineArgs</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>DebuggerWorkingDir</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CodeCompletionPrefixFileName</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CodeCompletionMacroFileName</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Debugger Target" panel -->
+                <SETTING><NAME>ConsoleEncoding</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>LogSystemMessages</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>AutoTargetDLLs</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>StopAtWatchpoints</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>PauseWhileRunning</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>PauseInterval</NAME><VALUE>5</VALUE></SETTING>
+                <SETTING><NAME>PauseUIFlags</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>AltExePath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>StopAtTempBPOnLaunch</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>CacheSymbolics</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>TempBPFunctionName</NAME><VALUE>main</VALUE></SETTING>
+                <SETTING><NAME>TempBPType</NAME><VALUE>0</VALUE></SETTING>
+
+                <!-- Settings for "Remote Debug" panel -->
+                <SETTING><NAME>Enabled</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>ConnectionName</NAME><VALUE>Symbian MetroTrk</VALUE></SETTING>
+                <SETTING><NAME>DownloadPath</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>LaunchRemoteApp</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>RemoteAppPath</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CoreID</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>JTAGClockSpeed</NAME><VALUE>8000</VALUE></SETTING>
+                <SETTING><NAME>IsMultiCore</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>OSDownload</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>UseGlobalOSDownload</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>OSDownloadConnectionName</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>OSDownloadPath</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>AltDownload</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>AltDownloadConnectionName</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Auto-target" panel -->
+                <SETTING><NAME>OtherExecutables</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Custom Keywords" panel -->
+                <SETTING><NAME>CustomColor1</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CustomColor2</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CustomColor3</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CustomColor4</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "ARM Debugger" panel -->
+                <SETTING><NAME>Processor</NAME><VALUE>Generic</VALUE></SETTING>
+                <SETTING><NAME>BraekPoinType_II</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>UseInitFile</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>UseConfigFile</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>IDexecutable</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>IDinitialized</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>IDuninitialized</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>IDconstant</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>SDexecutable</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>SDinitialized</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>SDuninitialized</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>SDconstant</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>VerifyMemWrites</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>ShowMPC107regs</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>InitializationFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>ConfigurationFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>BreakpointType</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>WatchpointType</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>TargetOS</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>RTOSPluginName</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>ByteOrderType</NAME><VALUE>0</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Installation" panel -->
+		        <SETTING><NAME>SymbianInstallationOutputFilename</NAME><VALUE>Application.sis</VALUE></SETTING>
+		        <SETTING><NAME>SymbianInstallationOutputLocation</NAME>
+		            <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+		            <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+		            <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+		        </SETTING>
+		        <SETTING><NAME>SymbianInstallationContentSearchLocation</NAME>
+		            <SETTING><NAME>Path</NAME><VALUE>epoc32\release\winscw\udeb</VALUE></SETTING>
+		            <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+		            <SETTING><NAME>PathRoot</NAME><VALUE>ROOT</VALUE></SETTING>
+		        </SETTING>
+		        <SETTING><NAME>SymbianInstallationPassword</NAME><VALUE></VALUE></SETTING>
+		        <SETTING><NAME>SymbianInstallationCreateStubFile</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Resource Panel" panel -->
+                <SETTING><NAME>SymbianResourcesMMPFileLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianResourcesBinaryOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianResourcesHeaderFileOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Remote Download" panel -->
+                <SETTING><NAME>FileList</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Symbian Common Panel" panel -->
+                <SETTING><NAME>ShowCommandLine</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>SymbianEpocToolsPath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>EPOCROOT</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Symbian Compiler Panel" panel -->
+                <SETTING><NAME>Compiler</NAME><VALUE>WINSCW</VALUE></SETTING>
+                <SETTING><NAME>PrefixFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>Macros</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>Arguments</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CIAArgs</NAME><VALUE>-x c++ -D__CIA__</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Debugging" panel -->
+                <SETTING><NAME>Parse Log File</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Log File Path</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>Symbian SDK Folder</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>Log Unresolved Modules</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Log Unresolved Sym Files</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Kernel Debugging" panel -->
+                <SETTING><NAME>Start Address</NAME><VALUE>0x00000000</VALUE></SETTING>
+                <SETTING><NAME>Run From Start Address</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Download Image</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>OS Image Path</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>Download Address</NAME><VALUE>0x00000000</VALUE></SETTING>
+                <SETTING><NAME>Ask First</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Debug Bootrom</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Bootrom Sym File</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Symbian Linker Panel" panel -->
+                <SETTING><NAME>LinkOutputFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>LinkCmdLine</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>SymbianImportLibrary</NAME><VALUE></VALUE></SETTING>
+		        <SETTING><NAME>canDebug</NAME><VALUE>true</VALUE></SETTING>
+		        <SETTING><NAME>canRun</NAME><VALUE>true</VALUE></SETTING>
+            </SETTINGLIST>
+            <FILELIST>
+            </FILELIST>
+            <LINKORDER>
+            </LINKORDER>
+        </TARGET>
+        <TARGET>
+            <NAME>ARM4T UREL</NAME>
+            <SETTINGLIST>
+
+                <!-- Settings for "Source Trees" panel -->
+                <SETTING><NAME>UserSourceTrees</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Access Paths" panel -->
+                <SETTING><NAME>AlwaysSearchUserPaths</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>InterpretDOSAndUnixPaths</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>RequireFrameworkStyleIncludes</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>UserSearchPaths</NAME>
+                    <SETTING>
+                        <SETTING><NAME>SearchPath</NAME>
+                            <SETTING><NAME>Path</NAME><VALUE>:</VALUE></SETTING>
+                            <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                            <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                        </SETTING>
+                        <SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
+                    </SETTING>
+                </SETTING>
+		        <SETTING><NAME>SystemSearchPaths</NAME>
+		            <SETTING>
+		                <SETTING><NAME>SearchPath</NAME>
+		                    <SETTING><NAME>Path</NAME><VALUE>:</VALUE></SETTING>
+		                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+		                    <SETTING><NAME>PathRoot</NAME><VALUE>CodeWarrior</VALUE></SETTING>
+		                </SETTING>
+		                <SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
+		            </SETTING>
+		        </SETTING>
+
+                <!-- Settings for "Debugger Runtime" panel -->
+                <SETTING><NAME>MWRuntimeSettings_WorkingDirectory</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>MWRuntimeSettings_CommandLine</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>MWRuntimeSettings_HostApplication</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>MWRuntimeSettings_EnvVars</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Target Settings" panel -->
+                <SETTING><NAME>Linker</NAME><VALUE>Symbian Linker v2</VALUE></SETTING>
+                <SETTING><NAME>PreLinker</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>PostLinker</NAME><VALUE>Symbian Installer v2</VALUE></SETTING>
+                <SETTING><NAME>Targetname</NAME><VALUE>ARM4 UREL</VALUE></SETTING>
+                <SETTING><NAME>OutputDirectory</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SaveEntriesUsingRelativePaths</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "File Mappings" panel -->
+        <SETTING><NAME>FileMappings</NAME>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.c</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.cc</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.cfg</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.cia</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.cpp</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.cwlink</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>XML</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.cxx</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.def</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.h</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.hrh</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.i</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.iby</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.ii</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.inf</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.ini</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.loc</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.mmp</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.mmpi</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.pkg</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.policy</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.ra</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.resources</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE>Symbian Resource v2</VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>XML</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>true</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.rh</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.rls</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.rss</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.s</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.script</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.txt</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.a</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.lib</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+		            </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.o</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+		            </SETTING>
+		        </SETTING>
+
+                <!-- Settings for "Build Extras" panel -->
+                <SETTING><NAME>CacheModDates</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>DumpBrowserInfo</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>CacheSubprojects</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>UseThirdPartyDebugger</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>BrowserGenerator</NAME><VALUE>2</VALUE></SETTING>
+                <SETTING><NAME>DebuggerAppPath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>DebuggerCmdLineArgs</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>DebuggerWorkingDir</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CodeCompletionPrefixFileName</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CodeCompletionMacroFileName</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Debugger Target" panel -->
+                <SETTING><NAME>ConsoleEncoding</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>LogSystemMessages</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>AutoTargetDLLs</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>StopAtWatchpoints</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>PauseWhileRunning</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>PauseInterval</NAME><VALUE>5</VALUE></SETTING>
+                <SETTING><NAME>PauseUIFlags</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>AltExePath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>StopAtTempBPOnLaunch</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>CacheSymbolics</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>TempBPFunctionName</NAME><VALUE>main</VALUE></SETTING>
+                <SETTING><NAME>TempBPType</NAME><VALUE>0</VALUE></SETTING>
+
+                <!-- Settings for "Remote Debug" panel -->
+                <SETTING><NAME>Enabled</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>ConnectionName</NAME><VALUE>Symbian MetroTrk</VALUE></SETTING>
+                <SETTING><NAME>DownloadPath</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>LaunchRemoteApp</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>RemoteAppPath</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CoreID</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>JTAGClockSpeed</NAME><VALUE>8000</VALUE></SETTING>
+                <SETTING><NAME>IsMultiCore</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>OSDownload</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>UseGlobalOSDownload</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>OSDownloadConnectionName</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>OSDownloadPath</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>AltDownload</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>AltDownloadConnectionName</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Auto-target" panel -->
+                <SETTING><NAME>OtherExecutables</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Custom Keywords" panel -->
+                <SETTING><NAME>CustomColor1</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CustomColor2</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CustomColor3</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CustomColor4</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "ARM Debugger" panel -->
+                <SETTING><NAME>Processor</NAME><VALUE>Generic</VALUE></SETTING>
+                <SETTING><NAME>BraekPoinType_II</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>UseInitFile</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>UseConfigFile</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>IDexecutable</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>IDinitialized</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>IDuninitialized</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>IDconstant</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>SDexecutable</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>SDinitialized</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>SDuninitialized</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>SDconstant</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>VerifyMemWrites</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>ShowMPC107regs</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>InitializationFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>ConfigurationFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>BreakpointType</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>WatchpointType</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>TargetOS</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>RTOSPluginName</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>ByteOrderType</NAME><VALUE>0</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Installation" panel -->
+		        <SETTING><NAME>SymbianInstallationOutputFilename</NAME><VALUE>Application.sis</VALUE></SETTING>
+		        <SETTING><NAME>SymbianInstallationOutputLocation</NAME>
+		            <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+		            <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+		            <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+		        </SETTING>
+		        <SETTING><NAME>SymbianInstallationContentSearchLocation</NAME>
+		            <SETTING><NAME>Path</NAME><VALUE>epoc32\release\winscw\udeb</VALUE></SETTING>
+		            <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+		            <SETTING><NAME>PathRoot</NAME><VALUE>ROOT</VALUE></SETTING>
+		        </SETTING>
+		        <SETTING><NAME>SymbianInstallationPassword</NAME><VALUE></VALUE></SETTING>
+		        <SETTING><NAME>SymbianInstallationCreateStubFile</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Resource Panel" panel -->
+                <SETTING><NAME>SymbianResourcesMMPFileLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianResourcesBinaryOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianResourcesHeaderFileOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Remote Download" panel -->
+                <SETTING><NAME>FileList</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Symbian Common Panel" panel -->
+                <SETTING><NAME>ShowCommandLine</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>SymbianEpocToolsPath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>EPOCROOT</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Symbian Compiler Panel" panel -->
+                <SETTING><NAME>Compiler</NAME><VALUE>WINSCW</VALUE></SETTING>
+                <SETTING><NAME>PrefixFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>Macros</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>Arguments</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CIAArgs</NAME><VALUE>-x c++ -D__CIA__</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Debugging" panel -->
+                <SETTING><NAME>Parse Log File</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Log File Path</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>Symbian SDK Folder</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>Log Unresolved Modules</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Log Unresolved Sym Files</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Kernel Debugging" panel -->
+                <SETTING><NAME>Start Address</NAME><VALUE>0x00000000</VALUE></SETTING>
+                <SETTING><NAME>Run From Start Address</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Download Image</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>OS Image Path</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>Download Address</NAME><VALUE>0x00000000</VALUE></SETTING>
+                <SETTING><NAME>Ask First</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Debug Bootrom</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Bootrom Sym File</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Symbian Linker Panel" panel -->
+                <SETTING><NAME>LinkOutputFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>LinkCmdLine</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>SymbianImportLibrary</NAME><VALUE></VALUE></SETTING>
+		        <SETTING><NAME>canDebug</NAME><VALUE>true</VALUE></SETTING>
+		        <SETTING><NAME>canRun</NAME><VALUE>true</VALUE></SETTING>
+            </SETTINGLIST>
+            <FILELIST>
+            </FILELIST>
+            <LINKORDER>
+            </LINKORDER>
+        </TARGET>
+        <TARGET>
+            <NAME>Build All</NAME>
+            <SETTINGLIST>
+
+                <!-- Settings for "Source Trees" panel -->
+                <SETTING><NAME>UserSourceTrees</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Access Paths" panel -->
+                <SETTING><NAME>AlwaysSearchUserPaths</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>InterpretDOSAndUnixPaths</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>RequireFrameworkStyleIncludes</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>UserSearchPaths</NAME>
+                    <SETTING>
+                        <SETTING><NAME>SearchPath</NAME>
+                            <SETTING><NAME>Path</NAME><VALUE>:</VALUE></SETTING>
+                            <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                            <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                        </SETTING>
+                        <SETTING><NAME>Recursive</NAME><VALUE>true</VALUE></SETTING>
+                        <SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
+                    </SETTING>
+                </SETTING>
+                <SETTING><NAME>SystemSearchPaths</NAME>
+                    <SETTING>
+                        <SETTING><NAME>SearchPath</NAME>
+                            <SETTING><NAME>Path</NAME><VALUE>:</VALUE></SETTING>
+                            <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                            <SETTING><NAME>PathRoot</NAME><VALUE>CodeWarrior</VALUE></SETTING>
+                        </SETTING>
+                        <SETTING><NAME>Recursive</NAME><VALUE>true</VALUE></SETTING>
+                        <SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
+                    </SETTING>
+                </SETTING>
+
+                <!-- Settings for "Debugger Runtime" panel -->
+                <SETTING><NAME>MWRuntimeSettings_WorkingDirectory</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>MWRuntimeSettings_CommandLine</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>MWRuntimeSettings_HostApplication</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>MWRuntimeSettings_EnvVars</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Target Settings" panel -->
+                <SETTING><NAME>Linker</NAME><VALUE>None</VALUE></SETTING>
+                <SETTING><NAME>PreLinker</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>PostLinker</NAME><VALUE>Symbian Installer v2</VALUE></SETTING>
+                <SETTING><NAME>Targetname</NAME><VALUE>Build All</VALUE></SETTING>
+                <SETTING><NAME>OutputDirectory</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SaveEntriesUsingRelativePaths</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "File Mappings" panel -->
+                <SETTING><NAME>FileMappings</NAME>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>MMPr</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>true</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+		            <SETTING>
+		                <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+		                <SETTING><NAME>FileExtension</NAME><VALUE>.mmp</VALUE></SETTING>
+		                <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+		                <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+		                <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+		                <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+		            </SETTING>
+                </SETTING>
+
+                <!-- Settings for "Build Extras" panel -->
+                <SETTING><NAME>CacheModDates</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>DumpBrowserInfo</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>CacheSubprojects</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>UseThirdPartyDebugger</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>BrowserGenerator</NAME><VALUE>2</VALUE></SETTING>
+                <SETTING><NAME>DebuggerAppPath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>DebuggerCmdLineArgs</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>DebuggerWorkingDir</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CodeCompletionPrefixFileName</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CodeCompletionMacroFileName</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Debugger Target" panel -->
+                <SETTING><NAME>ConsoleEncoding</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>LogSystemMessages</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>AutoTargetDLLs</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>StopAtWatchpoints</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>PauseWhileRunning</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>PauseInterval</NAME><VALUE>5</VALUE></SETTING>
+                <SETTING><NAME>PauseUIFlags</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>AltExePath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>StopAtTempBPOnLaunch</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>CacheSymbolics</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>TempBPFunctionName</NAME><VALUE>main</VALUE></SETTING>
+                <SETTING><NAME>TempBPType</NAME><VALUE>0</VALUE></SETTING>
+
+                <!-- Settings for "Remote Debug" panel -->
+                <SETTING><NAME>Enabled</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>ConnectionName</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>DownloadPath</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>LaunchRemoteApp</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>RemoteAppPath</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CoreID</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>JTAGClockSpeed</NAME><VALUE>8000</VALUE></SETTING>
+                <SETTING><NAME>IsMultiCore</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>OSDownload</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>UseGlobalOSDownload</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>OSDownloadConnectionName</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>OSDownloadPath</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>AltDownload</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>AltDownloadConnectionName</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Auto-target" panel -->
+                <SETTING><NAME>OtherExecutables</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Custom Keywords" panel -->
+                <SETTING><NAME>CustomColor1</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CustomColor2</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CustomColor3</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CustomColor4</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "ARM Debugger" panel -->
+                <SETTING><NAME>Processor</NAME><VALUE>Generic</VALUE></SETTING>
+                <SETTING><NAME>BraekPoinType_II</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>UseInitFile</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>UseConfigFile</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>IDexecutable</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>IDinitialized</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>IDuninitialized</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>IDconstant</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>SDexecutable</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>SDinitialized</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>SDuninitialized</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>SDconstant</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>VerifyMemWrites</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>ShowMPC107regs</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>InitializationFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>ConfigurationFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>BreakpointType</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>WatchpointType</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>TargetOS</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>RTOSPluginName</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>ByteOrderType</NAME><VALUE>0</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Installation" panel -->
+		        <SETTING><NAME>SymbianInstallationOutputFilename</NAME><VALUE>Application.sis</VALUE></SETTING>
+		        <SETTING><NAME>SymbianInstallationOutputLocation</NAME>
+		            <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+		            <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+		            <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+		        </SETTING>
+		        <SETTING><NAME>SymbianInstallationContentSearchLocation</NAME>
+		            <SETTING><NAME>Path</NAME><VALUE>epoc32\release\winscw\udeb</VALUE></SETTING>
+		            <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+		            <SETTING><NAME>PathRoot</NAME><VALUE>ROOT</VALUE></SETTING>
+		        </SETTING>
+		        <SETTING><NAME>SymbianInstallationPassword</NAME><VALUE></VALUE></SETTING>
+		        <SETTING><NAME>SymbianInstallationCreateStubFile</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Resource Panel" panel -->
+                <SETTING><NAME>SymbianResourcesMMPFileLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianResourcesBinaryOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianResourcesHeaderFileOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Remote Download" panel -->
+                <SETTING><NAME>FileList</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Symbian Common Panel" panel -->
+                <SETTING><NAME>LogMessages</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>SymbianEpocToolsPath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>EPOCROOT</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Symbian Compiler Panel" panel -->
+                <SETTING><NAME>Compiler</NAME><VALUE>ARM</VALUE></SETTING>
+                <SETTING><NAME>PrefixFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>Macros</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>Arguments</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CIAArgs</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Symbian Debugging" panel -->
+                <SETTING><NAME>Parse Log File</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Log File Path</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>Symbian SDK Folder</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>Log Unresolved Modules</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Log Unresolved Sym Files</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Kernel Debugging" panel -->
+                <SETTING><NAME>Start Address</NAME><VALUE>0x00000000</VALUE></SETTING>
+                <SETTING><NAME>Run From Start Address</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Download Image</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>OS Image Path</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>Download Address</NAME><VALUE>0x00000000</VALUE></SETTING>
+                <SETTING><NAME>Ask First</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Debug Bootrom</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Bootrom Sym File</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Symbian Linker Panel" panel -->
+                <SETTING><NAME>LinkOutputFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>LinkCmdLine</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>SymbianImportLibrary</NAME><VALUE></VALUE></SETTING>
+		        <SETTING><NAME>canDebug</NAME><VALUE>false</VALUE></SETTING>
+		        <SETTING><NAME>canRun</NAME><VALUE>false</VALUE></SETTING>
+            </SETTINGLIST>
+            <FILELIST>
+            </FILELIST>
+            <LINKORDER>
+            </LINKORDER>
+            <SUBTARGETLIST>
+                <SUBTARGET>
+                    <TARGETNAME>WINSCW UDEB</TARGETNAME>
+                </SUBTARGET>
+                <SUBTARGET>
+                    <TARGETNAME>WINSCW UREL</TARGETNAME>
+                </SUBTARGET>
+                <SUBTARGET>
+                    <TARGETNAME>ARM4 UDEB</TARGETNAME>
+                </SUBTARGET>
+                <SUBTARGET>
+                    <TARGETNAME>ARM4 UREL</TARGETNAME>
+                </SUBTARGET>
+            </SUBTARGETLIST>
+        </TARGET>
+    </TARGETLIST>
+
+    <TARGETORDER>
+        <ORDEREDTARGET><NAME>WINSCW UDEB</NAME></ORDEREDTARGET>
+        <ORDEREDTARGET><NAME>WINSCW UREL</NAME></ORDEREDTARGET>
+        <ORDEREDTARGET><NAME>ARM4 UDEB</NAME></ORDEREDTARGET>
+        <ORDEREDTARGET><NAME>ARM4 UREL</NAME></ORDEREDTARGET>
+        <ORDEREDTARGET><NAME>Build All</NAME></ORDEREDTARGET>
+    </TARGETORDER>
+
+    <GROUPLIST>
+        <GROUP><NAME>Source</NAME>
+        </GROUP>
+        <GROUP><NAME>Link</NAME>
+        </GROUP>
+        <GROUP><NAME>Libraries</NAME>
+            <GROUP><NAME>WINSCW</NAME>
+            </GROUP>
+            <GROUP><NAME>ARM4</NAME>
+            </GROUP>
+        </GROUP>
+    </GROUPLIST>
+
+</PROJECT>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/platform/cw_project_template_v4.xml	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,8394 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
+<!--
+ Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+ All rights reserved.
+ This component and the accompanying materials are made available
+ under the terms of the License "Eclipse Public License v1.0"
+ which accompanies this distribution, and is available
+ at the URL "http://www.eclipse.org/legal/epl-v10.html".
+
+ Initial Contributors:
+ Nokia Corporation - initial contribution.
+
+ Contributors:
+
+ Description:
+
+ -->
+<?codewarrior exportversion="1.0.1" ideversion="5.0" ?>
+
+<!DOCTYPE PROJECT [
+<!ELEMENT PROJECT (TARGETLIST, TARGETORDER, GROUPLIST, DESIGNLIST?)>
+<!ELEMENT TARGETLIST (TARGET+)>
+<!ELEMENT TARGET (NAME, SETTINGLIST, FILELIST?, LINKORDER?, SEGMENTLIST?, OVERLAYGROUPLIST?, SUBTARGETLIST?, SUBPROJECTLIST?, FRAMEWORKLIST?, PACKAGEACTIONSLIST?)>
+<!ELEMENT NAME (#PCDATA)>
+<!ELEMENT USERSOURCETREETYPE (#PCDATA)>
+<!ELEMENT PATH (#PCDATA)>
+<!ELEMENT FILELIST (FILE*)>
+<!ELEMENT FILE (PATHTYPE, PATHROOT?, ACCESSPATH?, PATH, PATHFORMAT?, ROOTFILEREF?, FILEKIND?, FILEFLAGS?)>
+<!ELEMENT PATHTYPE (#PCDATA)>
+<!ELEMENT PATHROOT (#PCDATA)>
+<!ELEMENT ACCESSPATH (#PCDATA)>
+<!ELEMENT PATHFORMAT (#PCDATA)>
+<!ELEMENT ROOTFILEREF (PATHTYPE, PATHROOT?, ACCESSPATH?, PATH, PATHFORMAT?)>
+<!ELEMENT FILEKIND (#PCDATA)>
+<!ELEMENT FILEFLAGS (#PCDATA)>
+<!ELEMENT FILEREF (TARGETNAME?, PATHTYPE, PATHROOT?, ACCESSPATH?, PATH, PATHFORMAT?)>
+<!ELEMENT TARGETNAME (#PCDATA)>
+<!ELEMENT SETTINGLIST ((SETTING|PANELDATA)+)>
+<!ELEMENT SETTING (NAME?, (VALUE|(SETTING+)))>
+<!ELEMENT PANELDATA (NAME, VALUE)>
+<!ELEMENT VALUE (#PCDATA)>
+<!ELEMENT LINKORDER (FILEREF*)>
+<!ELEMENT SEGMENTLIST (SEGMENT+)>
+<!ELEMENT SEGMENT (NAME, ATTRIBUTES?, FILEREF*)>
+<!ELEMENT ATTRIBUTES (#PCDATA)>
+<!ELEMENT OVERLAYGROUPLIST (OVERLAYGROUP+)>
+<!ELEMENT OVERLAYGROUP (NAME, BASEADDRESS, OVERLAY*)>
+<!ELEMENT BASEADDRESS (#PCDATA)>
+<!ELEMENT OVERLAY (NAME, FILEREF*)>
+<!ELEMENT SUBTARGETLIST (SUBTARGET+)>
+<!ELEMENT SUBTARGET (TARGETNAME, ATTRIBUTES?, FILEREF?)>
+<!ELEMENT SUBPROJECTLIST (SUBPROJECT+)>
+<!ELEMENT SUBPROJECT (FILEREF, SUBPROJECTTARGETLIST)>
+<!ELEMENT SUBPROJECTTARGETLIST (SUBPROJECTTARGET*)>
+<!ELEMENT SUBPROJECTTARGET (TARGETNAME, ATTRIBUTES?, FILEREF?)>
+<!ELEMENT FRAMEWORKLIST (FRAMEWORK+)>
+<!ELEMENT FRAMEWORK (FILEREF, DYNAMICLIBRARY?, VERSION?)>
+<!ELEMENT PACKAGEACTIONSLIST (PACKAGEACTION+)>
+<!ELEMENT PACKAGEACTION (#PCDATA)>
+<!ELEMENT LIBRARYFILE (FILEREF)>
+<!ELEMENT VERSION (#PCDATA)>
+<!ELEMENT TARGETORDER (ORDEREDTARGET|ORDEREDDESIGN)*>
+<!ELEMENT ORDEREDTARGET (NAME)>
+<!ELEMENT ORDEREDDESIGN (NAME, ORDEREDTARGET+)>
+<!ELEMENT GROUPLIST (GROUP|FILEREF)*>
+<!ELEMENT GROUP (NAME, (GROUP|FILEREF)*)>
+<!ELEMENT DESIGNLIST (DESIGN+)>
+<!ELEMENT DESIGN (NAME, DESIGNDATA)>
+<!ELEMENT DESIGNDATA (#PCDATA)>
+]>
+
+<PROJECT>
+    <TARGETLIST>
+        <TARGET>
+            <NAME>WINSCW UDEB</NAME>
+            <SETTINGLIST>
+
+                <!-- Settings for "Source Trees" panel -->
+                <SETTING><NAME>UserSourceTrees</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Access Paths" panel -->
+                <SETTING><NAME>AlwaysSearchUserPaths</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>InterpretDOSAndUnixPaths</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>RequireFrameworkStyleIncludes</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>SourceRelativeIncludes</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>UserSearchPaths</NAME>
+                    <SETTING>
+                        <SETTING><NAME>SearchPath</NAME>
+                            <SETTING><NAME>Path</NAME><VALUE>:</VALUE></SETTING>
+                            <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                            <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                        </SETTING>
+                        <SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
+                    </SETTING>
+                </SETTING>
+                <SETTING><NAME>SystemSearchPaths</NAME>
+                    <SETTING>
+                        <SETTING><NAME>SearchPath</NAME>
+                            <SETTING><NAME>Path</NAME><VALUE>:</VALUE></SETTING>
+                            <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                            <SETTING><NAME>PathRoot</NAME><VALUE>CodeWarrior</VALUE></SETTING>
+                        </SETTING>
+                        <SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
+                    </SETTING>
+                </SETTING>
+
+                <!-- Settings for "Debugger Runtime" panel -->
+                <SETTING><NAME>MWRuntimeSettings_WorkingDirectory</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>MWRuntimeSettings_CommandLine</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>MWRuntimeSettings_HostApplication</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>MWRuntimeSettings_EnvVars</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Target Settings" panel -->
+                <SETTING><NAME>Linker</NAME><VALUE>Symbian Linker v2</VALUE></SETTING>
+                <SETTING><NAME>PreLinker</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>PostLinker</NAME><VALUE>Symbian Installer v2</VALUE></SETTING>
+                <SETTING><NAME>Targetname</NAME><VALUE>WINSCW UDEB</VALUE></SETTING>
+                <SETTING><NAME>OutputDirectory</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SaveEntriesUsingRelativePaths</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "File Mappings" panel -->
+                <SETTING><NAME>FileMappings</NAME>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>._i</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>._ii</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.c</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.cc</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.cfg</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.cia</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.cpp</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.cwlink</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>XML</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.cxx</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.def</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.h</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.hrh</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.i</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.iby</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.ii</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.inf</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.ini</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.inl</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.loc</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>true</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.mmpi</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.pch++</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>true</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.pkg</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.policy</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.ra</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.resources</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Resource v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>XML</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>true</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.rh</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.rls</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.rss</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.rsg</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.s</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.script</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.txt</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.a</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.lib</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.dso</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.o</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                </SETTING>
+
+                <!-- Settings for "Build Extras" panel -->
+                <SETTING><NAME>CacheModDates</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>DumpBrowserInfo</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>CacheSubprojects</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>UseThirdPartyDebugger</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>BrowserGenerator</NAME><VALUE>2</VALUE></SETTING>
+                <SETTING><NAME>DebuggerAppPath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>DebuggerCmdLineArgs</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>DebuggerWorkingDir</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CodeCompletionPrefixFileName</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CodeCompletionMacroFileName</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Debugger Target" panel -->
+                <SETTING><NAME>ConsoleEncoding</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>LogSystemMessages</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>AutoTargetDLLsPopUp</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>StopAtWatchpoints</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>PauseWhileRunning</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>PauseInterval</NAME><VALUE>5</VALUE></SETTING>
+                <SETTING><NAME>PauseUIFlags</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>AltExePath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>StopAtTempBPOnLaunch</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>CacheSymbolics</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>TempBPFunctionName</NAME><VALUE>E32Main</VALUE></SETTING>
+                <SETTING><NAME>TempBPType</NAME><VALUE>1</VALUE></SETTING>
+
+                <!-- Settings for "Remote Debug" panel -->
+                <SETTING><NAME>Enabled</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>ConnectionName</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>DownloadPath</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>LaunchRemoteApp</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>RemoteAppPath</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CoreID</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>JTAGClockSpeed</NAME><VALUE>8000</VALUE></SETTING>
+                <SETTING><NAME>IsMultiCore</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>OSDownload</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>UseGlobalOSDownload</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>OSDownloadConnectionName</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>OSDownloadPath</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>AltDownload</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>AltDownloadConnectionName</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "x86 Exceptions" panel -->
+                <SETTING><NAME>MWDebugger_X86_Exceptions</NAME>
+                    <SETTING><VALUE>0</VALUE></SETTING>
+                    <SETTING><VALUE>0</VALUE></SETTING>
+                    <SETTING><VALUE>0</VALUE></SETTING>
+                    <SETTING><VALUE>0</VALUE></SETTING>
+                    <SETTING><VALUE>0</VALUE></SETTING>
+                    <SETTING><VALUE>0</VALUE></SETTING>
+                    <SETTING><VALUE>0</VALUE></SETTING>
+                    <SETTING><VALUE>0</VALUE></SETTING>
+                    <SETTING><VALUE>0</VALUE></SETTING>
+                    <SETTING><VALUE>0</VALUE></SETTING>
+                    <SETTING><VALUE>0</VALUE></SETTING>
+                    <SETTING><VALUE>0</VALUE></SETTING>
+                    <SETTING><VALUE>0</VALUE></SETTING>
+                    <SETTING><VALUE>0</VALUE></SETTING>
+                    <SETTING><VALUE>0</VALUE></SETTING>
+                    <SETTING><VALUE>0</VALUE></SETTING>
+                    <SETTING><VALUE>0</VALUE></SETTING>
+                    <SETTING><VALUE>0</VALUE></SETTING>
+                    <SETTING><VALUE>0</VALUE></SETTING>
+                    <SETTING><VALUE>0</VALUE></SETTING>
+                    <SETTING><VALUE>0</VALUE></SETTING>
+                    <SETTING><VALUE>0</VALUE></SETTING>
+                    <SETTING><VALUE>0</VALUE></SETTING>
+                    <SETTING><VALUE>0</VALUE></SETTING>
+                </SETTING>
+                
+                <!-- Settings for "Auto-target" panel -->
+                <SETTING><NAME>OtherExecutables</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Analyzer Connections" panel -->
+                <SETTING><NAME>AnalyzerConnectionName</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Custom Keywords" panel -->
+                <SETTING><NAME>CustomColor1</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CustomColor2</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CustomColor3</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CustomColor4</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "ARM Debugger" panel -->
+                <SETTING><NAME>Processor</NAME><VALUE>Generic</VALUE></SETTING>
+                <SETTING><NAME>BraekPoinType_II</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>UseInitFile</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>UseConfigFile</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>IDexecutable</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>IDinitialized</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>IDuninitialized</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>IDconstant</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>SDexecutable</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>SDinitialized</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>SDuninitialized</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>SDconstant</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>VerifyMemWrites</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>ShowMPC107regs</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>InitializationFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>ConfigurationFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>BreakpointType</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>WatchpointType</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>TargetOS</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>RTOSPluginName</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>ByteOrderType</NAME><VALUE>0</VALUE></SETTING>
+                <PANELDATA><NAME>CodeTest SYMBIAN Instrumenter</NAME><VALUE>
+                    0200020000000100000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    000000000000000000000000433A5C0000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    000000000000000000000000637466696C657300000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    000000000000000000000000636F6465746573742E6964620000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    000000000000000000000000
+                </VALUE></PANELDATA>
+
+                <!-- Settings for "Symbian Installation" panel -->
+                <SETTING><NAME>SymbianInstallationOutputFilename</NAME><VALUE>Application.sis</VALUE></SETTING>
+                <SETTING><NAME>SymbianInstallationOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianInstallationContentSearchLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianInstallationPassword</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>SymbianInstallationCreateStubFile</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Installer Panel v2" panel -->
+                <SETTING><NAME>SymbianInstallationOutputFilename</NAME><VALUE>Application.sis</VALUE></SETTING>
+                <SETTING><NAME>SymbianInstallationOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianInstallationContentSearchLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianInstallationPassword</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>SymbianInstallationCreateStubFile</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Resource Panel" panel -->
+                <SETTING><NAME>SymbianResourcesMMPFileLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianResourcesBinaryOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianResourcesHeaderFileOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Symbian Resources Panel v2" panel -->
+                <SETTING><NAME>SymbianResourcesMMPFileLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianResourcesBinaryOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianResourcesHeaderFileOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Remote Download" panel -->
+                <SETTING><NAME>FileList</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Symbian ARM Debugger" panel -->
+                <SETTING><NAME>Processor</NAME><VALUE>Generic</VALUE></SETTING>
+                <SETTING><NAME>UseInitFile</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>UseConfigFile</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>ResetTarget</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>InitializationFile</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>ConfigurationFile</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>TargetOS</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>RTOSPluginName</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Symbian Common Panel" panel -->
+                <SETTING><NAME>ShowCommandLine</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>SymbianEpocToolsPath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Symbian Compiler Panel" panel -->
+                <SETTING><NAME>PrefixFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CompilerXMLDescriptor</NAME><VALUE>Metrowerks x86 Compiler</VALUE></SETTING>
+                <SETTING><NAME>Macros</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CodeTEST</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>EnableSWIC</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Arguments</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CIAArgs</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Symbian Debugging" panel -->
+                <SETTING><NAME>Parse Log File</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Log File Path</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>Symbian SDK Folder</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>Log Unresolved Modules</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Log Unresolved Sym Files</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Debug Non-XIP Executables</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Kernel Debugging" panel -->
+                <SETTING><NAME>Start Address</NAME><VALUE>0x00000000</VALUE></SETTING>
+                <SETTING><NAME>Run From Start Address</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Download Image</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>OS Image Path</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>Download Address</NAME><VALUE>0x00000000</VALUE></SETTING>
+                <SETTING><NAME>Ask First</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Debug Bootrom</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Bootrom Sym File</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Symbian Linker Panel" panel -->
+                <SETTING><NAME>LinkOutputFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>LinkCmdLine</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>SymbianImportLibrary</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>canDebug</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>canRun</NAME><VALUE>true</VALUE></SETTING>
+
+                <!-- Settings for "Symbian RomBuild Panel" panel -->
+                <SETTING><NAME>CommandLine</NAME><VALUE>buildrom -D_DEBUG devkit lubbock techview -olubbock_gui.img</VALUE></SETTING>
+                <SETTING><NAME>OutputPath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>DisplayMessages</NAME><VALUE>true</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Target" panel -->
+                <SETTING><NAME>TargetArchitecture</NAME><VALUE>WINSCW</VALUE></SETTING>
+                <SETTING><NAME>LogMessages</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>SuppressWarnings</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>GenerateSymbolics</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>CompilerPrefix</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CompilerCmdLine</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>SymbianImportLibraryPath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Symbian Tools" panel -->
+                <SETTING><NAME>Gnu Tools Path</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>Epoc32 Tools Path</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+            </SETTINGLIST>
+            <FILELIST>
+            </FILELIST>
+            <LINKORDER>
+            </LINKORDER>
+        </TARGET>
+        <TARGET>
+            <NAME>WINSCW UREL</NAME>
+            <SETTINGLIST>
+
+                <!-- Settings for "Source Trees" panel -->
+                <SETTING><NAME>UserSourceTrees</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Access Paths" panel -->
+                <SETTING><NAME>AlwaysSearchUserPaths</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>InterpretDOSAndUnixPaths</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>RequireFrameworkStyleIncludes</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>SourceRelativeIncludes</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>UserSearchPaths</NAME>
+                    <SETTING>
+                        <SETTING><NAME>SearchPath</NAME>
+                            <SETTING><NAME>Path</NAME><VALUE>:</VALUE></SETTING>
+                            <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                            <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                        </SETTING>
+                        <SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
+                    </SETTING>
+                </SETTING>
+                <SETTING><NAME>SystemSearchPaths</NAME>
+                    <SETTING>
+                        <SETTING><NAME>SearchPath</NAME>
+                            <SETTING><NAME>Path</NAME><VALUE>:</VALUE></SETTING>
+                            <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                            <SETTING><NAME>PathRoot</NAME><VALUE>CodeWarrior</VALUE></SETTING>
+                        </SETTING>
+                        <SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
+                    </SETTING>
+                </SETTING>
+
+                <!-- Settings for "Debugger Runtime" panel -->
+                <SETTING><NAME>MWRuntimeSettings_WorkingDirectory</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>MWRuntimeSettings_CommandLine</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>MWRuntimeSettings_HostApplication</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>MWRuntimeSettings_EnvVars</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Target Settings" panel -->
+                <SETTING><NAME>Linker</NAME><VALUE>Symbian Linker v2</VALUE></SETTING>
+                <SETTING><NAME>PreLinker</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>PostLinker</NAME><VALUE>Symbian Installer v2</VALUE></SETTING>
+                <SETTING><NAME>Targetname</NAME><VALUE>WINSCW UREL</VALUE></SETTING>
+                <SETTING><NAME>OutputDirectory</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SaveEntriesUsingRelativePaths</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "File Mappings" panel -->
+                <SETTING><NAME>FileMappings</NAME>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>._i</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>._ii</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.c</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.cc</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.cfg</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.cia</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.cpp</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.cwlink</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>XML</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.cxx</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.def</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.h</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.hrh</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.i</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.iby</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.ii</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.inf</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.ini</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.inl</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.loc</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>true</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.mmpi</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.pch++</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>true</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.pkg</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.policy</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.ra</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.resources</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Resource v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>XML</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>true</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.rh</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.rls</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.rss</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.rsg</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.s</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.script</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.txt</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.a</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.lib</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.dso</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.o</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                </SETTING>
+
+                <!-- Settings for "Build Extras" panel -->
+                <SETTING><NAME>CacheModDates</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>DumpBrowserInfo</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>CacheSubprojects</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>UseThirdPartyDebugger</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>BrowserGenerator</NAME><VALUE>2</VALUE></SETTING>
+                <SETTING><NAME>DebuggerAppPath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>DebuggerCmdLineArgs</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>DebuggerWorkingDir</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CodeCompletionPrefixFileName</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CodeCompletionMacroFileName</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Debugger Target" panel -->
+                <SETTING><NAME>ConsoleEncoding</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>LogSystemMessages</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>AutoTargetDLLsPopUp</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>StopAtWatchpoints</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>PauseWhileRunning</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>PauseInterval</NAME><VALUE>5</VALUE></SETTING>
+                <SETTING><NAME>PauseUIFlags</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>AltExePath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>StopAtTempBPOnLaunch</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>CacheSymbolics</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>TempBPFunctionName</NAME><VALUE>E32Main</VALUE></SETTING>
+                <SETTING><NAME>TempBPType</NAME><VALUE>1</VALUE></SETTING>
+
+                <!-- Settings for "Remote Debug" panel -->
+                <SETTING><NAME>Enabled</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>ConnectionName</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>DownloadPath</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>LaunchRemoteApp</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>RemoteAppPath</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CoreID</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>JTAGClockSpeed</NAME><VALUE>8000</VALUE></SETTING>
+                <SETTING><NAME>IsMultiCore</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>OSDownload</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>UseGlobalOSDownload</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>OSDownloadConnectionName</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>OSDownloadPath</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>AltDownload</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>AltDownloadConnectionName</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "x86 Exceptions" panel -->
+                <SETTING><NAME>MWDebugger_X86_Exceptions</NAME>
+                    <SETTING><VALUE>0</VALUE></SETTING>
+                    <SETTING><VALUE>0</VALUE></SETTING>
+                    <SETTING><VALUE>0</VALUE></SETTING>
+                    <SETTING><VALUE>0</VALUE></SETTING>
+                    <SETTING><VALUE>0</VALUE></SETTING>
+                    <SETTING><VALUE>0</VALUE></SETTING>
+                    <SETTING><VALUE>0</VALUE></SETTING>
+                    <SETTING><VALUE>0</VALUE></SETTING>
+                    <SETTING><VALUE>0</VALUE></SETTING>
+                    <SETTING><VALUE>0</VALUE></SETTING>
+                    <SETTING><VALUE>0</VALUE></SETTING>
+                    <SETTING><VALUE>0</VALUE></SETTING>
+                    <SETTING><VALUE>0</VALUE></SETTING>
+                    <SETTING><VALUE>0</VALUE></SETTING>
+                    <SETTING><VALUE>0</VALUE></SETTING>
+                    <SETTING><VALUE>0</VALUE></SETTING>
+                    <SETTING><VALUE>0</VALUE></SETTING>
+                    <SETTING><VALUE>0</VALUE></SETTING>
+                    <SETTING><VALUE>0</VALUE></SETTING>
+                    <SETTING><VALUE>0</VALUE></SETTING>
+                    <SETTING><VALUE>0</VALUE></SETTING>
+                    <SETTING><VALUE>0</VALUE></SETTING>
+                    <SETTING><VALUE>0</VALUE></SETTING>
+                    <SETTING><VALUE>0</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Auto-target" panel -->
+                <SETTING><NAME>OtherExecutables</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Analyzer Connections" panel -->
+                <SETTING><NAME>AnalyzerConnectionName</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Custom Keywords" panel -->
+                <SETTING><NAME>CustomColor1</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CustomColor2</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CustomColor3</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CustomColor4</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "ARM Debugger" panel -->
+                <SETTING><NAME>Processor</NAME><VALUE>Generic</VALUE></SETTING>
+                <SETTING><NAME>BraekPoinType_II</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>UseInitFile</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>UseConfigFile</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>IDexecutable</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>IDinitialized</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>IDuninitialized</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>IDconstant</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>SDexecutable</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>SDinitialized</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>SDuninitialized</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>SDconstant</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>VerifyMemWrites</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>ShowMPC107regs</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>InitializationFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>ConfigurationFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>BreakpointType</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>WatchpointType</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>TargetOS</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>RTOSPluginName</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>ByteOrderType</NAME><VALUE>0</VALUE></SETTING>
+                <PANELDATA><NAME>CodeTest SYMBIAN Instrumenter</NAME><VALUE>
+                    0200020000000100000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    000000000000000000000000433A5C0000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    000000000000000000000000637466696C657300000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    000000000000000000000000636F6465746573742E6964620000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    000000000000000000000000
+                </VALUE></PANELDATA>
+
+                <!-- Settings for "Symbian Installation" panel -->
+                <SETTING><NAME>SymbianInstallationOutputFilename</NAME><VALUE>Application.sis</VALUE></SETTING>
+                <SETTING><NAME>SymbianInstallationOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianInstallationContentSearchLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianInstallationPassword</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>SymbianInstallationCreateStubFile</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Installer Panel v2" panel -->
+                <SETTING><NAME>SymbianInstallationOutputFilename</NAME><VALUE>Application.sis</VALUE></SETTING>
+                <SETTING><NAME>SymbianInstallationOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianInstallationContentSearchLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianInstallationPassword</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>SymbianInstallationCreateStubFile</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Resource Panel" panel -->
+                <SETTING><NAME>SymbianResourcesMMPFileLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianResourcesBinaryOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianResourcesHeaderFileOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Symbian Resources Panel v2" panel -->
+                <SETTING><NAME>SymbianResourcesMMPFileLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianResourcesBinaryOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianResourcesHeaderFileOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Remote Download" panel -->
+                <SETTING><NAME>FileList</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Symbian ARM Debugger" panel -->
+                <SETTING><NAME>Processor</NAME><VALUE>Generic</VALUE></SETTING>
+                <SETTING><NAME>UseInitFile</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>UseConfigFile</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>ResetTarget</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>InitializationFile</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>ConfigurationFile</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>TargetOS</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>RTOSPluginName</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Symbian Common Panel" panel -->
+                <SETTING><NAME>ShowCommandLine</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>SymbianEpocToolsPath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Symbian Compiler Panel" panel -->
+                <SETTING><NAME>PrefixFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CompilerXMLDescriptor</NAME><VALUE>Metrowerks x86 Compiler</VALUE></SETTING>
+                <SETTING><NAME>Macros</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CodeTEST</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>EnableSWIC</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Arguments</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CIAArgs</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Symbian Debugging" panel -->
+                <SETTING><NAME>Parse Log File</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Log File Path</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>Symbian SDK Folder</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>Log Unresolved Modules</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Log Unresolved Sym Files</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Debug Non-XIP Executables</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Kernel Debugging" panel -->
+                <SETTING><NAME>Start Address</NAME><VALUE>0x00000000</VALUE></SETTING>
+                <SETTING><NAME>Run From Start Address</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Download Image</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>OS Image Path</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>Download Address</NAME><VALUE>0x00000000</VALUE></SETTING>
+                <SETTING><NAME>Ask First</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Debug Bootrom</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Bootrom Sym File</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Symbian Linker Panel" panel -->
+                <SETTING><NAME>LinkOutputFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>LinkCmdLine</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>SymbianImportLibrary</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>canDebug</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>canRun</NAME><VALUE>true</VALUE></SETTING>
+
+                <!-- Settings for "Symbian RomBuild Panel" panel -->
+                <SETTING><NAME>CommandLine</NAME><VALUE>buildrom -D_DEBUG devkit lubbock techview -olubbock_gui.img</VALUE></SETTING>
+                <SETTING><NAME>OutputPath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>DisplayMessages</NAME><VALUE>true</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Target" panel -->
+                <SETTING><NAME>TargetArchitecture</NAME><VALUE>WINSCW</VALUE></SETTING>
+                <SETTING><NAME>LogMessages</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>SuppressWarnings</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>GenerateSymbolics</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>CompilerPrefix</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CompilerCmdLine</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>SymbianImportLibraryPath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Symbian Tools" panel -->
+                <SETTING><NAME>Gnu Tools Path</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>Epoc32 Tools Path</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+            </SETTINGLIST>
+            <FILELIST>
+            </FILELIST>
+            <LINKORDER>
+            </LINKORDER>
+        </TARGET>
+        <TARGET>
+            <NAME>ARMV5_ABIV1 UDEB</NAME>
+            <SETTINGLIST>
+
+                <!-- Settings for "Source Trees" panel -->
+                <SETTING><NAME>UserSourceTrees</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Access Paths" panel -->
+                <SETTING><NAME>AlwaysSearchUserPaths</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>InterpretDOSAndUnixPaths</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>RequireFrameworkStyleIncludes</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>SourceRelativeIncludes</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>UserSearchPaths</NAME>
+                    <SETTING>
+                        <SETTING><NAME>SearchPath</NAME>
+                            <SETTING><NAME>Path</NAME><VALUE>:</VALUE></SETTING>
+                            <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                            <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                        </SETTING>
+                        <SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
+                    </SETTING>
+                </SETTING>
+                <SETTING><NAME>SystemSearchPaths</NAME>
+                    <SETTING>
+                        <SETTING><NAME>SearchPath</NAME>
+                            <SETTING><NAME>Path</NAME><VALUE>:</VALUE></SETTING>
+                            <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                            <SETTING><NAME>PathRoot</NAME><VALUE>CodeWarrior</VALUE></SETTING>
+                        </SETTING>
+                        <SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
+                    </SETTING>
+                </SETTING>
+
+                <!-- Settings for "Debugger Runtime" panel -->
+                <SETTING><NAME>MWRuntimeSettings_WorkingDirectory</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>MWRuntimeSettings_CommandLine</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>MWRuntimeSettings_HostApplication</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>MWRuntimeSettings_EnvVars</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Target Settings" panel -->
+                <SETTING><NAME>Linker</NAME><VALUE>Symbian Linker v2</VALUE></SETTING>
+                <SETTING><NAME>PreLinker</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>PostLinker</NAME><VALUE>Symbian Installer v2</VALUE></SETTING>
+                <SETTING><NAME>Targetname</NAME><VALUE>ARMV5_ABIV1 UDEB</VALUE></SETTING>
+                <SETTING><NAME>OutputDirectory</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SaveEntriesUsingRelativePaths</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "File Mappings" panel -->
+                <SETTING><NAME>FileMappings</NAME>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>._i</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>._ii</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.c</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.cc</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.cfg</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.cia</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.ciacpp</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.cpp</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.cwlink</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>XML</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.cxx</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.def</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.h</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.hrh</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.i</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.iby</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.ii</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.inf</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.ini</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.inl</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.loc</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.ciacpp</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.mmp</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.mmpi</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.pkg</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.policy</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.ra</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.resources</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Resource v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>XML</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>true</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.rh</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.rls</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.rss</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.rsg</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.s</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.script</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.txt</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.a</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.lib</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.dso</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.o</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                </SETTING>
+
+                <!-- Settings for "Build Extras" panel -->
+                <SETTING><NAME>CacheModDates</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>DumpBrowserInfo</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>CacheSubprojects</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>UseThirdPartyDebugger</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>BrowserGenerator</NAME><VALUE>2</VALUE></SETTING>
+                <SETTING><NAME>DebuggerAppPath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>DebuggerCmdLineArgs</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>DebuggerWorkingDir</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CodeCompletionPrefixFileName</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CodeCompletionMacroFileName</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Debugger Target" panel -->
+                <SETTING><NAME>ConsoleEncoding</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>LogSystemMessages</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>AutoTargetDLLsPopUp</NAME><VALUE>2</VALUE></SETTING>
+                <SETTING><NAME>StopAtWatchpoints</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>PauseWhileRunning</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>PauseInterval</NAME><VALUE>5</VALUE></SETTING>
+                <SETTING><NAME>PauseUIFlags</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>AltExePath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>StopAtTempBPOnLaunch</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>CacheSymbolics</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>TempBPFunctionName</NAME><VALUE>main</VALUE></SETTING>
+                <SETTING><NAME>TempBPType</NAME><VALUE>0</VALUE></SETTING>
+
+                <!-- Settings for "Remote Debug" panel -->
+                <SETTING><NAME>Enabled</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>ConnectionName</NAME><VALUE>Symbian MetroTrk</VALUE></SETTING>
+                <SETTING><NAME>DownloadPath</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>LaunchRemoteApp</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>RemoteAppPath</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CoreID</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>JTAGClockSpeed</NAME><VALUE>8000</VALUE></SETTING>
+                <SETTING><NAME>IsMultiCore</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>OSDownload</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>UseGlobalOSDownload</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>OSDownloadConnectionName</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>OSDownloadPath</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>AltDownload</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>AltDownloadConnectionName</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Auto-target" panel -->
+                <SETTING><NAME>OtherExecutables</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Analyzer Connections" panel -->
+                <SETTING><NAME>AnalyzerConnectionName</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Custom Keywords" panel -->
+                <SETTING><NAME>CustomColor1</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CustomColor2</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CustomColor3</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CustomColor4</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "ARM Debugger" panel -->
+                <SETTING><NAME>Processor</NAME><VALUE>Generic</VALUE></SETTING>
+                <SETTING><NAME>BraekPoinType_II</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>UseInitFile</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>UseConfigFile</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>IDexecutable</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>IDinitialized</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>IDuninitialized</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>IDconstant</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>SDexecutable</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>SDinitialized</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>SDuninitialized</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>SDconstant</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>VerifyMemWrites</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>ShowMPC107regs</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>InitializationFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>ConfigurationFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>BreakpointType</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>WatchpointType</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>TargetOS</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>RTOSPluginName</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>ByteOrderType</NAME><VALUE>0</VALUE></SETTING>
+                <PANELDATA><NAME>CodeTest SYMBIAN Instrumenter</NAME><VALUE>
+                    0200020000000100000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    000000000000000000000000433A5C0000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    000000000000000000000000637466696C657300000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    000000000000000000000000636F6465746573742E6964620000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    000000000000000000000000
+                </VALUE></PANELDATA>
+
+                <!-- Settings for "Symbian Installation" panel -->
+                <SETTING><NAME>SymbianInstallationOutputFilename</NAME><VALUE>Application.sis</VALUE></SETTING>
+                <SETTING><NAME>SymbianInstallationOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianInstallationContentSearchLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianInstallationPassword</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>SymbianInstallationCreateStubFile</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Installer Panel v2" panel -->
+                <SETTING><NAME>SymbianInstallationOutputFilename</NAME><VALUE>Application.sis</VALUE></SETTING>
+                <SETTING><NAME>SymbianInstallationOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianInstallationContentSearchLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianInstallationPassword</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>SymbianInstallationCreateStubFile</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Resource Panel" panel -->
+                <SETTING><NAME>SymbianResourcesMMPFileLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianResourcesBinaryOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianResourcesHeaderFileOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Symbian Resources Panel v2" panel -->
+                <SETTING><NAME>SymbianResourcesMMPFileLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianResourcesBinaryOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianResourcesHeaderFileOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Remote Download" panel -->
+                <SETTING><NAME>FileList</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Symbian ARM Debugger" panel -->
+                <SETTING><NAME>Processor</NAME><VALUE>Generic</VALUE></SETTING>
+                <SETTING><NAME>UseInitFile</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>UseConfigFile</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>ResetTarget</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>InitializationFile</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>ConfigurationFile</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>TargetOS</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>RTOSPluginName</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Symbian Common Panel" panel -->
+                <SETTING><NAME>ShowCommandLine</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>SymbianEpocToolsPath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Symbian Compiler Panel" panel -->
+                <SETTING><NAME>PrefixFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CompilerXMLDescriptor</NAME><VALUE>ARM RVCT</VALUE></SETTING>
+                <SETTING><NAME>Macros</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CodeTEST</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>EnableSWIC</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Arguments</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CIAArgs</NAME><VALUE>-x c++ -D__CIA__</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Debugging" panel -->
+                <SETTING><NAME>Parse Log File</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Log File Path</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>Symbian SDK Folder</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>Log Unresolved Modules</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Log Unresolved Sym Files</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Debug Non-XIP Executables</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Kernel Debugging" panel -->
+                <SETTING><NAME>Start Address</NAME><VALUE>0x00000000</VALUE></SETTING>
+                <SETTING><NAME>Run From Start Address</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Download Image</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>OS Image Path</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>Download Address</NAME><VALUE>0x00000000</VALUE></SETTING>
+                <SETTING><NAME>Ask First</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Debug Bootrom</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Bootrom Sym File</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Symbian Linker Panel" panel -->
+                <SETTING><NAME>LinkOutputFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>LinkCmdLine</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>SymbianImportLibrary</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>canDebug</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>canRun</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "Symbian RomBuild Panel" panel -->
+                <SETTING><NAME>CommandLine</NAME><VALUE>buildrom -D_DEBUG devkit lubbock techview -olubbock_gui.img</VALUE></SETTING>
+                <SETTING><NAME>OutputPath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>DisplayMessages</NAME><VALUE>true</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Target" panel -->
+                <SETTING><NAME>TargetArchitecture</NAME><VALUE>WINSCW</VALUE></SETTING>
+                <SETTING><NAME>LogMessages</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>SuppressWarnings</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>GenerateSymbolics</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>CompilerPrefix</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CompilerCmdLine</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>SymbianImportLibraryPath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Symbian Tools" panel -->
+                <SETTING><NAME>Gnu Tools Path</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>Epoc32 Tools Path</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+            </SETTINGLIST>
+            <FILELIST>
+            </FILELIST>
+            <LINKORDER>
+            </LINKORDER>
+        </TARGET>
+        <TARGET>
+            <NAME>ARMV5_ABIV1 UREL</NAME>
+            <SETTINGLIST>
+
+                <!-- Settings for "Source Trees" panel -->
+                <SETTING><NAME>UserSourceTrees</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Access Paths" panel -->
+                <SETTING><NAME>AlwaysSearchUserPaths</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>InterpretDOSAndUnixPaths</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>RequireFrameworkStyleIncludes</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>SourceRelativeIncludes</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>UserSearchPaths</NAME>
+                    <SETTING>
+                        <SETTING><NAME>SearchPath</NAME>
+                            <SETTING><NAME>Path</NAME><VALUE>:</VALUE></SETTING>
+                            <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                            <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                        </SETTING>
+                        <SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
+                    </SETTING>
+                </SETTING>
+                <SETTING><NAME>SystemSearchPaths</NAME>
+                    <SETTING>
+                        <SETTING><NAME>SearchPath</NAME>
+                            <SETTING><NAME>Path</NAME><VALUE>:</VALUE></SETTING>
+                            <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                            <SETTING><NAME>PathRoot</NAME><VALUE>CodeWarrior</VALUE></SETTING>
+                        </SETTING>
+                        <SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
+                    </SETTING>
+                </SETTING>
+
+                <!-- Settings for "Debugger Runtime" panel -->
+                <SETTING><NAME>MWRuntimeSettings_WorkingDirectory</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>MWRuntimeSettings_CommandLine</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>MWRuntimeSettings_HostApplication</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>MWRuntimeSettings_EnvVars</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Target Settings" panel -->
+                <SETTING><NAME>Linker</NAME><VALUE>Symbian Linker v2</VALUE></SETTING>
+                <SETTING><NAME>PreLinker</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>PostLinker</NAME><VALUE>Symbian Installer v2</VALUE></SETTING>
+                <SETTING><NAME>Targetname</NAME><VALUE>ARMV5_ABIV1 UREL</VALUE></SETTING>
+                <SETTING><NAME>OutputDirectory</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SaveEntriesUsingRelativePaths</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "File Mappings" panel -->
+                <SETTING><NAME>FileMappings</NAME>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>._i</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>._ii</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.c</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.cc</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.cfg</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.cia</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.ciacpp</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.cpp</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.cwlink</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>XML</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.cxx</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.def</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.h</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.hrh</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.i</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.iby</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.ii</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.inf</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.ini</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.inl</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.loc</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.ciacpp</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.mmp</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.mmpi</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.pkg</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.policy</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.ra</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.resources</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Resource v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>XML</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>true</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.rh</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.rls</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.rss</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.rsg</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.s</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.script</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.txt</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.a</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.lib</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.dso</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.o</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                </SETTING>
+
+                <!-- Settings for "Build Extras" panel -->
+                <SETTING><NAME>CacheModDates</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>DumpBrowserInfo</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>CacheSubprojects</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>UseThirdPartyDebugger</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>BrowserGenerator</NAME><VALUE>2</VALUE></SETTING>
+                <SETTING><NAME>DebuggerAppPath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>DebuggerCmdLineArgs</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>DebuggerWorkingDir</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CodeCompletionPrefixFileName</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CodeCompletionMacroFileName</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Debugger Target" panel -->
+                <SETTING><NAME>ConsoleEncoding</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>LogSystemMessages</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>AutoTargetDLLsPopUp</NAME><VALUE>2</VALUE></SETTING>
+                <SETTING><NAME>StopAtWatchpoints</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>PauseWhileRunning</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>PauseInterval</NAME><VALUE>5</VALUE></SETTING>
+                <SETTING><NAME>PauseUIFlags</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>AltExePath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>StopAtTempBPOnLaunch</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>CacheSymbolics</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>TempBPFunctionName</NAME><VALUE>main</VALUE></SETTING>
+                <SETTING><NAME>TempBPType</NAME><VALUE>0</VALUE></SETTING>
+
+                <!-- Settings for "Remote Debug" panel -->
+                <SETTING><NAME>Enabled</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>ConnectionName</NAME><VALUE>Symbian MetroTrk</VALUE></SETTING>
+                <SETTING><NAME>DownloadPath</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>LaunchRemoteApp</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>RemoteAppPath</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CoreID</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>JTAGClockSpeed</NAME><VALUE>8000</VALUE></SETTING>
+                <SETTING><NAME>IsMultiCore</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>OSDownload</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>UseGlobalOSDownload</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>OSDownloadConnectionName</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>OSDownloadPath</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>AltDownload</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>AltDownloadConnectionName</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Auto-target" panel -->
+                <SETTING><NAME>OtherExecutables</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Analyzer Connections" panel -->
+                <SETTING><NAME>AnalyzerConnectionName</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Custom Keywords" panel -->
+                <SETTING><NAME>CustomColor1</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CustomColor2</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CustomColor3</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CustomColor4</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "ARM Debugger" panel -->
+                <SETTING><NAME>Processor</NAME><VALUE>Generic</VALUE></SETTING>
+                <SETTING><NAME>BraekPoinType_II</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>UseInitFile</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>UseConfigFile</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>IDexecutable</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>IDinitialized</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>IDuninitialized</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>IDconstant</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>SDexecutable</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>SDinitialized</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>SDuninitialized</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>SDconstant</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>VerifyMemWrites</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>ShowMPC107regs</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>InitializationFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>ConfigurationFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>BreakpointType</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>WatchpointType</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>TargetOS</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>RTOSPluginName</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>ByteOrderType</NAME><VALUE>0</VALUE></SETTING>
+                <PANELDATA><NAME>CodeTest SYMBIAN Instrumenter</NAME><VALUE>
+                    0200020000000100000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    000000000000000000000000433A5C0000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    000000000000000000000000637466696C657300000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    000000000000000000000000636F6465746573742E6964620000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    000000000000000000000000
+                </VALUE></PANELDATA>
+
+                <!-- Settings for "Symbian Installation" panel -->
+                <SETTING><NAME>SymbianInstallationOutputFilename</NAME><VALUE>Application.sis</VALUE></SETTING>
+                <SETTING><NAME>SymbianInstallationOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianInstallationContentSearchLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianInstallationPassword</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>SymbianInstallationCreateStubFile</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Installer Panel v2" panel -->
+                <SETTING><NAME>SymbianInstallationOutputFilename</NAME><VALUE>Application.sis</VALUE></SETTING>
+                <SETTING><NAME>SymbianInstallationOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianInstallationContentSearchLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianInstallationPassword</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>SymbianInstallationCreateStubFile</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Resource Panel" panel -->
+                <SETTING><NAME>SymbianResourcesMMPFileLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianResourcesBinaryOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianResourcesHeaderFileOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Symbian Resources Panel v2" panel -->
+                <SETTING><NAME>SymbianResourcesMMPFileLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianResourcesBinaryOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianResourcesHeaderFileOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Remote Download" panel -->
+                <SETTING><NAME>FileList</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Symbian ARM Debugger" panel -->
+                <SETTING><NAME>Processor</NAME><VALUE>Generic</VALUE></SETTING>
+                <SETTING><NAME>UseInitFile</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>UseConfigFile</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>ResetTarget</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>InitializationFile</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>ConfigurationFile</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>TargetOS</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>RTOSPluginName</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Symbian Common Panel" panel -->
+                <SETTING><NAME>ShowCommandLine</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>SymbianEpocToolsPath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Symbian Compiler Panel" panel -->
+                <SETTING><NAME>PrefixFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CompilerXMLDescriptor</NAME><VALUE>ARM RVCT</VALUE></SETTING>
+                <SETTING><NAME>Macros</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CodeTEST</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>EnableSWIC</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Arguments</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CIAArgs</NAME><VALUE>-x c++ -D__CIA__</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Debugging" panel -->
+                <SETTING><NAME>Parse Log File</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Log File Path</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>Symbian SDK Folder</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>Log Unresolved Modules</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Log Unresolved Sym Files</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Debug Non-XIP Executables</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Kernel Debugging" panel -->
+                <SETTING><NAME>Start Address</NAME><VALUE>0x00000000</VALUE></SETTING>
+                <SETTING><NAME>Run From Start Address</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Download Image</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>OS Image Path</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>Download Address</NAME><VALUE>0x00000000</VALUE></SETTING>
+                <SETTING><NAME>Ask First</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Debug Bootrom</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Bootrom Sym File</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Symbian Linker Panel" panel -->
+                <SETTING><NAME>LinkOutputFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>LinkCmdLine</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>SymbianImportLibrary</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>canDebug</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>canRun</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "Symbian RomBuild Panel" panel -->
+                <SETTING><NAME>CommandLine</NAME><VALUE>buildrom -D_DEBUG devkit lubbock techview -olubbock_gui.img</VALUE></SETTING>
+                <SETTING><NAME>OutputPath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>DisplayMessages</NAME><VALUE>true</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Target" panel -->
+                <SETTING><NAME>TargetArchitecture</NAME><VALUE>WINSCW</VALUE></SETTING>
+                <SETTING><NAME>LogMessages</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>SuppressWarnings</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>GenerateSymbolics</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>CompilerPrefix</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CompilerCmdLine</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>SymbianImportLibraryPath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Symbian Tools" panel -->
+                <SETTING><NAME>Gnu Tools Path</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>Epoc32 Tools Path</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+            </SETTINGLIST>
+            <FILELIST>
+            </FILELIST>
+            <LINKORDER>
+            </LINKORDER>
+        </TARGET>
+          <TARGET>
+            <NAME>GCCE UDEB</NAME>
+            <SETTINGLIST>
+
+                <!-- Settings for "Source Trees" panel -->
+                <SETTING><NAME>UserSourceTrees</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Access Paths" panel -->
+                <SETTING><NAME>AlwaysSearchUserPaths</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>InterpretDOSAndUnixPaths</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>RequireFrameworkStyleIncludes</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>SourceRelativeIncludes</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>UserSearchPaths</NAME>
+                    <SETTING>
+                        <SETTING><NAME>SearchPath</NAME>
+                            <SETTING><NAME>Path</NAME><VALUE>:</VALUE></SETTING>
+                            <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                            <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                        </SETTING>
+                        <SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
+                    </SETTING>
+                </SETTING>
+                <SETTING><NAME>SystemSearchPaths</NAME>
+                    <SETTING>
+                        <SETTING><NAME>SearchPath</NAME>
+                            <SETTING><NAME>Path</NAME><VALUE>:</VALUE></SETTING>
+                            <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                            <SETTING><NAME>PathRoot</NAME><VALUE>CodeWarrior</VALUE></SETTING>
+                        </SETTING>
+                        <SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
+                    </SETTING>
+                </SETTING>
+
+                <!-- Settings for "Debugger Runtime" panel -->
+                <SETTING><NAME>MWRuntimeSettings_WorkingDirectory</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>MWRuntimeSettings_CommandLine</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>MWRuntimeSettings_HostApplication</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>MWRuntimeSettings_EnvVars</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Target Settings" panel -->
+                <SETTING><NAME>Linker</NAME><VALUE>Symbian Linker v2</VALUE></SETTING>
+                <SETTING><NAME>PreLinker</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>PostLinker</NAME><VALUE>Symbian Installer v2</VALUE></SETTING>
+                <SETTING><NAME>Targetname</NAME><VALUE>GCCE UDEB</VALUE></SETTING>
+                <SETTING><NAME>OutputDirectory</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SaveEntriesUsingRelativePaths</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "File Mappings" panel -->
+                <SETTING><NAME>FileMappings</NAME>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>._i</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>._ii</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.c</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.cc</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.cfg</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.cia</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.ciacpp</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.cpp</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.cwlink</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>XML</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.cxx</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.def</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.h</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.hrh</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.i</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.iby</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.ii</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.inf</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.ini</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.inl</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.loc</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.ciacpp</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.mmp</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.mmpi</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.pkg</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.policy</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.ra</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.resources</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Resource v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>XML</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>true</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.rh</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.rls</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.rss</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.rsg</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.s</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.script</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.txt</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.a</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.lib</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.dso</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.o</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                </SETTING>
+
+                <!-- Settings for "Build Extras" panel -->
+                <SETTING><NAME>CacheModDates</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>DumpBrowserInfo</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>CacheSubprojects</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>UseThirdPartyDebugger</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>BrowserGenerator</NAME><VALUE>2</VALUE></SETTING>
+                <SETTING><NAME>DebuggerAppPath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>DebuggerCmdLineArgs</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>DebuggerWorkingDir</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CodeCompletionPrefixFileName</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CodeCompletionMacroFileName</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Debugger Target" panel -->
+                <SETTING><NAME>ConsoleEncoding</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>LogSystemMessages</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>AutoTargetDLLsPopUp</NAME><VALUE>2</VALUE></SETTING>
+                <SETTING><NAME>StopAtWatchpoints</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>PauseWhileRunning</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>PauseInterval</NAME><VALUE>5</VALUE></SETTING>
+                <SETTING><NAME>PauseUIFlags</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>AltExePath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>StopAtTempBPOnLaunch</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>CacheSymbolics</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>TempBPFunctionName</NAME><VALUE>main</VALUE></SETTING>
+                <SETTING><NAME>TempBPType</NAME><VALUE>0</VALUE></SETTING>
+
+                <!-- Settings for "Remote Debug" panel -->
+                <SETTING><NAME>Enabled</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>ConnectionName</NAME><VALUE>Symbian MetroTrk</VALUE></SETTING>
+                <SETTING><NAME>DownloadPath</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>LaunchRemoteApp</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>RemoteAppPath</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CoreID</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>JTAGClockSpeed</NAME><VALUE>8000</VALUE></SETTING>
+                <SETTING><NAME>IsMultiCore</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>OSDownload</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>UseGlobalOSDownload</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>OSDownloadConnectionName</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>OSDownloadPath</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>AltDownload</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>AltDownloadConnectionName</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Auto-target" panel -->
+                <SETTING><NAME>OtherExecutables</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Analyzer Connections" panel -->
+                <SETTING><NAME>AnalyzerConnectionName</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Custom Keywords" panel -->
+                <SETTING><NAME>CustomColor1</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CustomColor2</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CustomColor3</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CustomColor4</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "ARM Debugger" panel -->
+                <SETTING><NAME>Processor</NAME><VALUE>Generic</VALUE></SETTING>
+                <SETTING><NAME>BraekPoinType_II</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>UseInitFile</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>UseConfigFile</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>IDexecutable</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>IDinitialized</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>IDuninitialized</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>IDconstant</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>SDexecutable</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>SDinitialized</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>SDuninitialized</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>SDconstant</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>VerifyMemWrites</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>ShowMPC107regs</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>InitializationFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>ConfigurationFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>BreakpointType</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>WatchpointType</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>TargetOS</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>RTOSPluginName</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>ByteOrderType</NAME><VALUE>0</VALUE></SETTING>
+                <PANELDATA><NAME>CodeTest SYMBIAN Instrumenter</NAME><VALUE>
+                    0200020000000100000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    000000000000000000000000433A5C0000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    000000000000000000000000637466696C657300000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    000000000000000000000000636F6465746573742E6964620000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    000000000000000000000000
+                </VALUE></PANELDATA>
+
+                <!-- Settings for "Symbian Installation" panel -->
+                <SETTING><NAME>SymbianInstallationOutputFilename</NAME><VALUE>Application.sis</VALUE></SETTING>
+                <SETTING><NAME>SymbianInstallationOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianInstallationContentSearchLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianInstallationPassword</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>SymbianInstallationCreateStubFile</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Installer Panel v2" panel -->
+                <SETTING><NAME>SymbianInstallationOutputFilename</NAME><VALUE>Application.sis</VALUE></SETTING>
+                <SETTING><NAME>SymbianInstallationOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianInstallationContentSearchLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianInstallationPassword</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>SymbianInstallationCreateStubFile</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Resource Panel" panel -->
+                <SETTING><NAME>SymbianResourcesMMPFileLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianResourcesBinaryOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianResourcesHeaderFileOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Symbian Resources Panel v2" panel -->
+                <SETTING><NAME>SymbianResourcesMMPFileLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianResourcesBinaryOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianResourcesHeaderFileOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Remote Download" panel -->
+                <SETTING><NAME>FileList</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Symbian ARM Debugger" panel -->
+                <SETTING><NAME>Processor</NAME><VALUE>Generic</VALUE></SETTING>
+                <SETTING><NAME>UseInitFile</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>UseConfigFile</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>ResetTarget</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>InitializationFile</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>ConfigurationFile</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>TargetOS</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>RTOSPluginName</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Symbian Common Panel" panel -->
+                <SETTING><NAME>ShowCommandLine</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>SymbianEpocToolsPath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Symbian Compiler Panel" panel -->
+                <SETTING><NAME>PrefixFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CompilerXMLDescriptor</NAME><VALUE>ARM RVCT</VALUE></SETTING>
+                <SETTING><NAME>Macros</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CodeTEST</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>EnableSWIC</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Arguments</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CIAArgs</NAME><VALUE>-x c++ -D__CIA__</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Debugging" panel -->
+                <SETTING><NAME>Parse Log File</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Log File Path</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>Symbian SDK Folder</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>Log Unresolved Modules</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Log Unresolved Sym Files</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Debug Non-XIP Executables</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Kernel Debugging" panel -->
+                <SETTING><NAME>Start Address</NAME><VALUE>0x00000000</VALUE></SETTING>
+                <SETTING><NAME>Run From Start Address</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Download Image</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>OS Image Path</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>Download Address</NAME><VALUE>0x00000000</VALUE></SETTING>
+                <SETTING><NAME>Ask First</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Debug Bootrom</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Bootrom Sym File</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Symbian Linker Panel" panel -->
+                <SETTING><NAME>LinkOutputFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>LinkCmdLine</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>SymbianImportLibrary</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>canDebug</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>canRun</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "Symbian RomBuild Panel" panel -->
+                <SETTING><NAME>CommandLine</NAME><VALUE>buildrom -D_DEBUG devkit lubbock techview -olubbock_gui.img</VALUE></SETTING>
+                <SETTING><NAME>OutputPath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>DisplayMessages</NAME><VALUE>true</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Target" panel -->
+                <SETTING><NAME>TargetArchitecture</NAME><VALUE>WINSCW</VALUE></SETTING>
+                <SETTING><NAME>LogMessages</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>SuppressWarnings</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>GenerateSymbolics</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>CompilerPrefix</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CompilerCmdLine</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>SymbianImportLibraryPath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Symbian Tools" panel -->
+                <SETTING><NAME>Gnu Tools Path</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>Epoc32 Tools Path</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+            </SETTINGLIST>
+            <FILELIST>
+            </FILELIST>
+            <LINKORDER>
+            </LINKORDER>
+        </TARGET>
+            <TARGET>
+            <NAME>GCCE UREL</NAME>
+            <SETTINGLIST>
+
+                <!-- Settings for "Source Trees" panel -->
+                <SETTING><NAME>UserSourceTrees</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Access Paths" panel -->
+                <SETTING><NAME>AlwaysSearchUserPaths</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>InterpretDOSAndUnixPaths</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>RequireFrameworkStyleIncludes</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>SourceRelativeIncludes</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>UserSearchPaths</NAME>
+                    <SETTING>
+                        <SETTING><NAME>SearchPath</NAME>
+                            <SETTING><NAME>Path</NAME><VALUE>:</VALUE></SETTING>
+                            <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                            <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                        </SETTING>
+                        <SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
+                    </SETTING>
+                </SETTING>
+                <SETTING><NAME>SystemSearchPaths</NAME>
+                    <SETTING>
+                        <SETTING><NAME>SearchPath</NAME>
+                            <SETTING><NAME>Path</NAME><VALUE>:</VALUE></SETTING>
+                            <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                            <SETTING><NAME>PathRoot</NAME><VALUE>CodeWarrior</VALUE></SETTING>
+                        </SETTING>
+                        <SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
+                    </SETTING>
+                </SETTING>
+
+                <!-- Settings for "Debugger Runtime" panel -->
+                <SETTING><NAME>MWRuntimeSettings_WorkingDirectory</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>MWRuntimeSettings_CommandLine</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>MWRuntimeSettings_HostApplication</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>MWRuntimeSettings_EnvVars</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Target Settings" panel -->
+                <SETTING><NAME>Linker</NAME><VALUE>Symbian Linker v2</VALUE></SETTING>
+                <SETTING><NAME>PreLinker</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>PostLinker</NAME><VALUE>Symbian Installer v2</VALUE></SETTING>
+                <SETTING><NAME>Targetname</NAME><VALUE>GCCE UREL</VALUE></SETTING>
+                <SETTING><NAME>OutputDirectory</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SaveEntriesUsingRelativePaths</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "File Mappings" panel -->
+                <SETTING><NAME>FileMappings</NAME>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>._i</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>._ii</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.c</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.cc</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.cfg</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.cia</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.ciacpp</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.cpp</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.cwlink</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>XML</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.cxx</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.def</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.h</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.hrh</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.i</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.iby</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.ii</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.inf</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.ini</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.inl</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.loc</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.ciacpp</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.mmp</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.mmpi</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.pkg</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.policy</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.ra</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.resources</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Resource v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>XML</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>true</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.rh</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.rls</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.rss</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.rsg</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.s</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.script</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.txt</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.a</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.lib</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.dso</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.o</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                </SETTING>
+
+                <!-- Settings for "Build Extras" panel -->
+                <SETTING><NAME>CacheModDates</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>DumpBrowserInfo</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>CacheSubprojects</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>UseThirdPartyDebugger</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>BrowserGenerator</NAME><VALUE>2</VALUE></SETTING>
+                <SETTING><NAME>DebuggerAppPath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>DebuggerCmdLineArgs</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>DebuggerWorkingDir</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CodeCompletionPrefixFileName</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CodeCompletionMacroFileName</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Debugger Target" panel -->
+                <SETTING><NAME>ConsoleEncoding</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>LogSystemMessages</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>AutoTargetDLLsPopUp</NAME><VALUE>2</VALUE></SETTING>
+                <SETTING><NAME>StopAtWatchpoints</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>PauseWhileRunning</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>PauseInterval</NAME><VALUE>5</VALUE></SETTING>
+                <SETTING><NAME>PauseUIFlags</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>AltExePath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>StopAtTempBPOnLaunch</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>CacheSymbolics</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>TempBPFunctionName</NAME><VALUE>main</VALUE></SETTING>
+                <SETTING><NAME>TempBPType</NAME><VALUE>0</VALUE></SETTING>
+
+                <!-- Settings for "Remote Debug" panel -->
+                <SETTING><NAME>Enabled</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>ConnectionName</NAME><VALUE>Symbian MetroTrk</VALUE></SETTING>
+                <SETTING><NAME>DownloadPath</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>LaunchRemoteApp</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>RemoteAppPath</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CoreID</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>JTAGClockSpeed</NAME><VALUE>8000</VALUE></SETTING>
+                <SETTING><NAME>IsMultiCore</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>OSDownload</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>UseGlobalOSDownload</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>OSDownloadConnectionName</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>OSDownloadPath</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>AltDownload</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>AltDownloadConnectionName</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Auto-target" panel -->
+                <SETTING><NAME>OtherExecutables</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Analyzer Connections" panel -->
+                <SETTING><NAME>AnalyzerConnectionName</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Custom Keywords" panel -->
+                <SETTING><NAME>CustomColor1</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CustomColor2</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CustomColor3</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CustomColor4</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "ARM Debugger" panel -->
+                <SETTING><NAME>Processor</NAME><VALUE>Generic</VALUE></SETTING>
+                <SETTING><NAME>BraekPoinType_II</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>UseInitFile</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>UseConfigFile</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>IDexecutable</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>IDinitialized</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>IDuninitialized</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>IDconstant</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>SDexecutable</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>SDinitialized</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>SDuninitialized</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>SDconstant</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>VerifyMemWrites</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>ShowMPC107regs</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>InitializationFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>ConfigurationFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>BreakpointType</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>WatchpointType</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>TargetOS</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>RTOSPluginName</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>ByteOrderType</NAME><VALUE>0</VALUE></SETTING>
+                <PANELDATA><NAME>CodeTest SYMBIAN Instrumenter</NAME><VALUE>
+                    0200020000000100000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    000000000000000000000000433A5C0000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    000000000000000000000000637466696C657300000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    000000000000000000000000636F6465746573742E6964620000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    000000000000000000000000
+                </VALUE></PANELDATA>
+
+                <!-- Settings for "Symbian Installation" panel -->
+                <SETTING><NAME>SymbianInstallationOutputFilename</NAME><VALUE>Application.sis</VALUE></SETTING>
+                <SETTING><NAME>SymbianInstallationOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianInstallationContentSearchLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianInstallationPassword</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>SymbianInstallationCreateStubFile</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Installer Panel v2" panel -->
+                <SETTING><NAME>SymbianInstallationOutputFilename</NAME><VALUE>Application.sis</VALUE></SETTING>
+                <SETTING><NAME>SymbianInstallationOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianInstallationContentSearchLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianInstallationPassword</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>SymbianInstallationCreateStubFile</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Resource Panel" panel -->
+                <SETTING><NAME>SymbianResourcesMMPFileLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianResourcesBinaryOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianResourcesHeaderFileOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Symbian Resources Panel v2" panel -->
+                <SETTING><NAME>SymbianResourcesMMPFileLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianResourcesBinaryOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianResourcesHeaderFileOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Remote Download" panel -->
+                <SETTING><NAME>FileList</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Symbian ARM Debugger" panel -->
+                <SETTING><NAME>Processor</NAME><VALUE>Generic</VALUE></SETTING>
+                <SETTING><NAME>UseInitFile</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>UseConfigFile</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>ResetTarget</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>InitializationFile</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>ConfigurationFile</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>TargetOS</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>RTOSPluginName</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Symbian Common Panel" panel -->
+                <SETTING><NAME>ShowCommandLine</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>SymbianEpocToolsPath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Symbian Compiler Panel" panel -->
+                <SETTING><NAME>PrefixFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CompilerXMLDescriptor</NAME><VALUE>ARM RVCT</VALUE></SETTING>
+                <SETTING><NAME>Macros</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CodeTEST</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>EnableSWIC</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Arguments</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CIAArgs</NAME><VALUE>-x c++ -D__CIA__</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Debugging" panel -->
+                <SETTING><NAME>Parse Log File</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Log File Path</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>Symbian SDK Folder</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>Log Unresolved Modules</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Log Unresolved Sym Files</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Debug Non-XIP Executables</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Kernel Debugging" panel -->
+                <SETTING><NAME>Start Address</NAME><VALUE>0x00000000</VALUE></SETTING>
+                <SETTING><NAME>Run From Start Address</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Download Image</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>OS Image Path</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>Download Address</NAME><VALUE>0x00000000</VALUE></SETTING>
+                <SETTING><NAME>Ask First</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Debug Bootrom</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Bootrom Sym File</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Symbian Linker Panel" panel -->
+                <SETTING><NAME>LinkOutputFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>LinkCmdLine</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>SymbianImportLibrary</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>canDebug</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>canRun</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "Symbian RomBuild Panel" panel -->
+                <SETTING><NAME>CommandLine</NAME><VALUE>buildrom -D_DEBUG devkit lubbock techview -olubbock_gui.img</VALUE></SETTING>
+                <SETTING><NAME>OutputPath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>DisplayMessages</NAME><VALUE>true</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Target" panel -->
+                <SETTING><NAME>TargetArchitecture</NAME><VALUE>WINSCW</VALUE></SETTING>
+                <SETTING><NAME>LogMessages</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>SuppressWarnings</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>GenerateSymbolics</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>CompilerPrefix</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CompilerCmdLine</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>SymbianImportLibraryPath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Symbian Tools" panel -->
+                <SETTING><NAME>Gnu Tools Path</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>Epoc32 Tools Path</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+            </SETTINGLIST>
+            <FILELIST>
+            </FILELIST>
+            <LINKORDER>
+            </LINKORDER>
+        </TARGET>
+              <TARGET>
+            <NAME>ARMV5 UDEB</NAME>
+            <SETTINGLIST>
+
+                <!-- Settings for "Source Trees" panel -->
+                <SETTING><NAME>UserSourceTrees</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Access Paths" panel -->
+                <SETTING><NAME>AlwaysSearchUserPaths</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>InterpretDOSAndUnixPaths</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>RequireFrameworkStyleIncludes</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>SourceRelativeIncludes</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>UserSearchPaths</NAME>
+                    <SETTING>
+                        <SETTING><NAME>SearchPath</NAME>
+                            <SETTING><NAME>Path</NAME><VALUE>:</VALUE></SETTING>
+                            <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                            <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                        </SETTING>
+                        <SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
+                    </SETTING>
+                </SETTING>
+                <SETTING><NAME>SystemSearchPaths</NAME>
+                    <SETTING>
+                        <SETTING><NAME>SearchPath</NAME>
+                            <SETTING><NAME>Path</NAME><VALUE>:</VALUE></SETTING>
+                            <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                            <SETTING><NAME>PathRoot</NAME><VALUE>CodeWarrior</VALUE></SETTING>
+                        </SETTING>
+                        <SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
+                    </SETTING>
+                </SETTING>
+
+                <!-- Settings for "Debugger Runtime" panel -->
+                <SETTING><NAME>MWRuntimeSettings_WorkingDirectory</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>MWRuntimeSettings_CommandLine</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>MWRuntimeSettings_HostApplication</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>MWRuntimeSettings_EnvVars</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Target Settings" panel -->
+                <SETTING><NAME>Linker</NAME><VALUE>Symbian Linker v2</VALUE></SETTING>
+                <SETTING><NAME>PreLinker</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>PostLinker</NAME><VALUE>Symbian Installer v2</VALUE></SETTING>
+                <SETTING><NAME>Targetname</NAME><VALUE>ARMV5 UDEB</VALUE></SETTING>
+                <SETTING><NAME>OutputDirectory</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SaveEntriesUsingRelativePaths</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "File Mappings" panel -->
+                <SETTING><NAME>FileMappings</NAME>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>._i</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>._ii</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.c</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.cc</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.cfg</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.cia</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.ciacpp</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.cpp</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.cwlink</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>XML</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.cxx</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.def</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.h</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.hrh</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.i</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.iby</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.ii</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.inf</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.ini</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.inl</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.loc</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.ciacpp</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.mmp</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.mmpi</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.pkg</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.policy</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.ra</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.resources</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Resource v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>XML</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>true</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.rh</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.rls</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.rss</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.rsg</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.s</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.script</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.txt</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.a</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.lib</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.dso</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.o</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                </SETTING>
+
+                <!-- Settings for "Build Extras" panel -->
+                <SETTING><NAME>CacheModDates</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>DumpBrowserInfo</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>CacheSubprojects</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>UseThirdPartyDebugger</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>BrowserGenerator</NAME><VALUE>2</VALUE></SETTING>
+                <SETTING><NAME>DebuggerAppPath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>DebuggerCmdLineArgs</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>DebuggerWorkingDir</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CodeCompletionPrefixFileName</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CodeCompletionMacroFileName</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Debugger Target" panel -->
+                <SETTING><NAME>ConsoleEncoding</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>LogSystemMessages</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>AutoTargetDLLsPopUp</NAME><VALUE>2</VALUE></SETTING>
+                <SETTING><NAME>StopAtWatchpoints</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>PauseWhileRunning</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>PauseInterval</NAME><VALUE>5</VALUE></SETTING>
+                <SETTING><NAME>PauseUIFlags</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>AltExePath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>StopAtTempBPOnLaunch</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>CacheSymbolics</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>TempBPFunctionName</NAME><VALUE>main</VALUE></SETTING>
+                <SETTING><NAME>TempBPType</NAME><VALUE>0</VALUE></SETTING>
+
+                <!-- Settings for "Remote Debug" panel -->
+                <SETTING><NAME>Enabled</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>ConnectionName</NAME><VALUE>Symbian MetroTrk</VALUE></SETTING>
+                <SETTING><NAME>DownloadPath</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>LaunchRemoteApp</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>RemoteAppPath</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CoreID</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>JTAGClockSpeed</NAME><VALUE>8000</VALUE></SETTING>
+                <SETTING><NAME>IsMultiCore</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>OSDownload</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>UseGlobalOSDownload</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>OSDownloadConnectionName</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>OSDownloadPath</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>AltDownload</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>AltDownloadConnectionName</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Auto-target" panel -->
+                <SETTING><NAME>OtherExecutables</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Analyzer Connections" panel -->
+                <SETTING><NAME>AnalyzerConnectionName</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Custom Keywords" panel -->
+                <SETTING><NAME>CustomColor1</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CustomColor2</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CustomColor3</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CustomColor4</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "ARM Debugger" panel -->
+                <SETTING><NAME>Processor</NAME><VALUE>Generic</VALUE></SETTING>
+                <SETTING><NAME>BraekPoinType_II</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>UseInitFile</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>UseConfigFile</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>IDexecutable</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>IDinitialized</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>IDuninitialized</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>IDconstant</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>SDexecutable</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>SDinitialized</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>SDuninitialized</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>SDconstant</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>VerifyMemWrites</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>ShowMPC107regs</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>InitializationFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>ConfigurationFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>BreakpointType</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>WatchpointType</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>TargetOS</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>RTOSPluginName</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>ByteOrderType</NAME><VALUE>0</VALUE></SETTING>
+                <PANELDATA><NAME>CodeTest SYMBIAN Instrumenter</NAME><VALUE>
+                    0200020000000100000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    000000000000000000000000433A5C0000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    000000000000000000000000637466696C657300000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    000000000000000000000000636F6465746573742E6964620000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    000000000000000000000000
+                </VALUE></PANELDATA>
+
+                <!-- Settings for "Symbian Installation" panel -->
+                <SETTING><NAME>SymbianInstallationOutputFilename</NAME><VALUE>Application.sis</VALUE></SETTING>
+                <SETTING><NAME>SymbianInstallationOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianInstallationContentSearchLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianInstallationPassword</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>SymbianInstallationCreateStubFile</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Installer Panel v2" panel -->
+                <SETTING><NAME>SymbianInstallationOutputFilename</NAME><VALUE>Application.sis</VALUE></SETTING>
+                <SETTING><NAME>SymbianInstallationOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianInstallationContentSearchLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianInstallationPassword</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>SymbianInstallationCreateStubFile</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Resource Panel" panel -->
+                <SETTING><NAME>SymbianResourcesMMPFileLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianResourcesBinaryOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianResourcesHeaderFileOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Symbian Resources Panel v2" panel -->
+                <SETTING><NAME>SymbianResourcesMMPFileLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianResourcesBinaryOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianResourcesHeaderFileOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Remote Download" panel -->
+                <SETTING><NAME>FileList</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Symbian ARM Debugger" panel -->
+                <SETTING><NAME>Processor</NAME><VALUE>Generic</VALUE></SETTING>
+                <SETTING><NAME>UseInitFile</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>UseConfigFile</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>ResetTarget</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>InitializationFile</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>ConfigurationFile</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>TargetOS</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>RTOSPluginName</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Symbian Common Panel" panel -->
+                <SETTING><NAME>ShowCommandLine</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>SymbianEpocToolsPath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Symbian Compiler Panel" panel -->
+                <SETTING><NAME>PrefixFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CompilerXMLDescriptor</NAME><VALUE>ARM RVCT</VALUE></SETTING>
+                <SETTING><NAME>Macros</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CodeTEST</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>EnableSWIC</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Arguments</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CIAArgs</NAME><VALUE>-x c++ -D__CIA__</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Debugging" panel -->
+                <SETTING><NAME>Parse Log File</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Log File Path</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>Symbian SDK Folder</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>Log Unresolved Modules</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Log Unresolved Sym Files</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Debug Non-XIP Executables</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Kernel Debugging" panel -->
+                <SETTING><NAME>Start Address</NAME><VALUE>0x00000000</VALUE></SETTING>
+                <SETTING><NAME>Run From Start Address</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Download Image</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>OS Image Path</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>Download Address</NAME><VALUE>0x00000000</VALUE></SETTING>
+                <SETTING><NAME>Ask First</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Debug Bootrom</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Bootrom Sym File</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Symbian Linker Panel" panel -->
+                <SETTING><NAME>LinkOutputFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>LinkCmdLine</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>SymbianImportLibrary</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>canDebug</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>canRun</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "Symbian RomBuild Panel" panel -->
+                <SETTING><NAME>CommandLine</NAME><VALUE>buildrom -D_DEBUG devkit lubbock techview -olubbock_gui.img</VALUE></SETTING>
+                <SETTING><NAME>OutputPath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>DisplayMessages</NAME><VALUE>true</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Target" panel -->
+                <SETTING><NAME>TargetArchitecture</NAME><VALUE>WINSCW</VALUE></SETTING>
+                <SETTING><NAME>LogMessages</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>SuppressWarnings</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>GenerateSymbolics</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>CompilerPrefix</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CompilerCmdLine</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>SymbianImportLibraryPath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Symbian Tools" panel -->
+                <SETTING><NAME>Gnu Tools Path</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>Epoc32 Tools Path</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+            </SETTINGLIST>
+            <FILELIST>
+            </FILELIST>
+            <LINKORDER>
+            </LINKORDER>
+        </TARGET>
+           <TARGET>
+            <NAME>ARMV5 UREL</NAME>
+            <SETTINGLIST>
+
+                <!-- Settings for "Source Trees" panel -->
+                <SETTING><NAME>UserSourceTrees</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Access Paths" panel -->
+                <SETTING><NAME>AlwaysSearchUserPaths</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>InterpretDOSAndUnixPaths</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>RequireFrameworkStyleIncludes</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>SourceRelativeIncludes</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>UserSearchPaths</NAME>
+                    <SETTING>
+                        <SETTING><NAME>SearchPath</NAME>
+                            <SETTING><NAME>Path</NAME><VALUE>:</VALUE></SETTING>
+                            <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                            <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                        </SETTING>
+                        <SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
+                    </SETTING>
+                </SETTING>
+                <SETTING><NAME>SystemSearchPaths</NAME>
+                    <SETTING>
+                        <SETTING><NAME>SearchPath</NAME>
+                            <SETTING><NAME>Path</NAME><VALUE>:</VALUE></SETTING>
+                            <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                            <SETTING><NAME>PathRoot</NAME><VALUE>CodeWarrior</VALUE></SETTING>
+                        </SETTING>
+                        <SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
+                    </SETTING>
+                </SETTING>
+
+                <!-- Settings for "Debugger Runtime" panel -->
+                <SETTING><NAME>MWRuntimeSettings_WorkingDirectory</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>MWRuntimeSettings_CommandLine</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>MWRuntimeSettings_HostApplication</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>MWRuntimeSettings_EnvVars</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Target Settings" panel -->
+                <SETTING><NAME>Linker</NAME><VALUE>Symbian Linker v2</VALUE></SETTING>
+                <SETTING><NAME>PreLinker</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>PostLinker</NAME><VALUE>Symbian Installer v2</VALUE></SETTING>
+                <SETTING><NAME>Targetname</NAME><VALUE>ARMV5 UDEB</VALUE></SETTING>
+                <SETTING><NAME>OutputDirectory</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SaveEntriesUsingRelativePaths</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "File Mappings" panel -->
+                <SETTING><NAME>FileMappings</NAME>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>._i</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>._ii</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.c</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.cc</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.cfg</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.cia</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.ciacpp</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.cpp</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.cwlink</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>XML</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.cxx</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.def</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.h</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.hrh</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.i</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.iby</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.ii</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.inf</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.ini</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.inl</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.loc</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.ciacpp</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.mmp</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.mmpi</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.pkg</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.policy</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.ra</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.resources</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Resource v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>XML</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>true</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.rh</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.rls</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.rss</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.rsg</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.s</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.script</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.txt</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.a</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.lib</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.dso</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.o</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                </SETTING>
+
+                <!-- Settings for "Build Extras" panel -->
+                <SETTING><NAME>CacheModDates</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>DumpBrowserInfo</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>CacheSubprojects</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>UseThirdPartyDebugger</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>BrowserGenerator</NAME><VALUE>2</VALUE></SETTING>
+                <SETTING><NAME>DebuggerAppPath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>DebuggerCmdLineArgs</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>DebuggerWorkingDir</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CodeCompletionPrefixFileName</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CodeCompletionMacroFileName</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Debugger Target" panel -->
+                <SETTING><NAME>ConsoleEncoding</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>LogSystemMessages</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>AutoTargetDLLsPopUp</NAME><VALUE>2</VALUE></SETTING>
+                <SETTING><NAME>StopAtWatchpoints</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>PauseWhileRunning</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>PauseInterval</NAME><VALUE>5</VALUE></SETTING>
+                <SETTING><NAME>PauseUIFlags</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>AltExePath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>StopAtTempBPOnLaunch</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>CacheSymbolics</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>TempBPFunctionName</NAME><VALUE>main</VALUE></SETTING>
+                <SETTING><NAME>TempBPType</NAME><VALUE>0</VALUE></SETTING>
+
+                <!-- Settings for "Remote Debug" panel -->
+                <SETTING><NAME>Enabled</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>ConnectionName</NAME><VALUE>Symbian MetroTrk</VALUE></SETTING>
+                <SETTING><NAME>DownloadPath</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>LaunchRemoteApp</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>RemoteAppPath</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CoreID</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>JTAGClockSpeed</NAME><VALUE>8000</VALUE></SETTING>
+                <SETTING><NAME>IsMultiCore</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>OSDownload</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>UseGlobalOSDownload</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>OSDownloadConnectionName</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>OSDownloadPath</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>AltDownload</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>AltDownloadConnectionName</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Auto-target" panel -->
+                <SETTING><NAME>OtherExecutables</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Analyzer Connections" panel -->
+                <SETTING><NAME>AnalyzerConnectionName</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Custom Keywords" panel -->
+                <SETTING><NAME>CustomColor1</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CustomColor2</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CustomColor3</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CustomColor4</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "ARM Debugger" panel -->
+                <SETTING><NAME>Processor</NAME><VALUE>Generic</VALUE></SETTING>
+                <SETTING><NAME>BraekPoinType_II</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>UseInitFile</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>UseConfigFile</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>IDexecutable</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>IDinitialized</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>IDuninitialized</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>IDconstant</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>SDexecutable</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>SDinitialized</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>SDuninitialized</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>SDconstant</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>VerifyMemWrites</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>ShowMPC107regs</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>InitializationFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>ConfigurationFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>BreakpointType</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>WatchpointType</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>TargetOS</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>RTOSPluginName</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>ByteOrderType</NAME><VALUE>0</VALUE></SETTING>
+                <PANELDATA><NAME>CodeTest SYMBIAN Instrumenter</NAME><VALUE>
+                    0200020000000100000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    000000000000000000000000433A5C0000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    000000000000000000000000637466696C657300000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    000000000000000000000000636F6465746573742E6964620000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    000000000000000000000000
+                </VALUE></PANELDATA>
+
+                <!-- Settings for "Symbian Installation" panel -->
+                <SETTING><NAME>SymbianInstallationOutputFilename</NAME><VALUE>Application.sis</VALUE></SETTING>
+                <SETTING><NAME>SymbianInstallationOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianInstallationContentSearchLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianInstallationPassword</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>SymbianInstallationCreateStubFile</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Installer Panel v2" panel -->
+                <SETTING><NAME>SymbianInstallationOutputFilename</NAME><VALUE>Application.sis</VALUE></SETTING>
+                <SETTING><NAME>SymbianInstallationOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianInstallationContentSearchLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianInstallationPassword</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>SymbianInstallationCreateStubFile</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Resource Panel" panel -->
+                <SETTING><NAME>SymbianResourcesMMPFileLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianResourcesBinaryOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianResourcesHeaderFileOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Symbian Resources Panel v2" panel -->
+                <SETTING><NAME>SymbianResourcesMMPFileLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianResourcesBinaryOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianResourcesHeaderFileOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Remote Download" panel -->
+                <SETTING><NAME>FileList</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Symbian ARM Debugger" panel -->
+                <SETTING><NAME>Processor</NAME><VALUE>Generic</VALUE></SETTING>
+                <SETTING><NAME>UseInitFile</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>UseConfigFile</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>ResetTarget</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>InitializationFile</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>ConfigurationFile</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>TargetOS</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>RTOSPluginName</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Symbian Common Panel" panel -->
+                <SETTING><NAME>ShowCommandLine</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>SymbianEpocToolsPath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Symbian Compiler Panel" panel -->
+                <SETTING><NAME>PrefixFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CompilerXMLDescriptor</NAME><VALUE>ARM RVCT</VALUE></SETTING>
+                <SETTING><NAME>Macros</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CodeTEST</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>EnableSWIC</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Arguments</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CIAArgs</NAME><VALUE>-x c++ -D__CIA__</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Debugging" panel -->
+                <SETTING><NAME>Parse Log File</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Log File Path</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>Symbian SDK Folder</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>Log Unresolved Modules</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Log Unresolved Sym Files</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Debug Non-XIP Executables</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Kernel Debugging" panel -->
+                <SETTING><NAME>Start Address</NAME><VALUE>0x00000000</VALUE></SETTING>
+                <SETTING><NAME>Run From Start Address</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Download Image</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>OS Image Path</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>Download Address</NAME><VALUE>0x00000000</VALUE></SETTING>
+                <SETTING><NAME>Ask First</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Debug Bootrom</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Bootrom Sym File</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Symbian Linker Panel" panel -->
+                <SETTING><NAME>LinkOutputFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>LinkCmdLine</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>SymbianImportLibrary</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>canDebug</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>canRun</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "Symbian RomBuild Panel" panel -->
+                <SETTING><NAME>CommandLine</NAME><VALUE>buildrom -D_DEBUG devkit lubbock techview -olubbock_gui.img</VALUE></SETTING>
+                <SETTING><NAME>OutputPath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>DisplayMessages</NAME><VALUE>true</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Target" panel -->
+                <SETTING><NAME>TargetArchitecture</NAME><VALUE>WINSCW</VALUE></SETTING>
+                <SETTING><NAME>LogMessages</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>SuppressWarnings</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>GenerateSymbolics</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>CompilerPrefix</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CompilerCmdLine</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>SymbianImportLibraryPath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Symbian Tools" panel -->
+                <SETTING><NAME>Gnu Tools Path</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>Epoc32 Tools Path</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+            </SETTINGLIST>
+            <FILELIST>
+            </FILELIST>
+            <LINKORDER>
+            </LINKORDER>
+        </TARGET>
+		<TARGET>
+		    <NAME>ARMV5_ABIV2 UDEB</NAME>
+            <SETTINGLIST>
+
+                <!-- Settings for "Source Trees" panel -->
+                <SETTING><NAME>UserSourceTrees</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Access Paths" panel -->
+                <SETTING><NAME>AlwaysSearchUserPaths</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>InterpretDOSAndUnixPaths</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>RequireFrameworkStyleIncludes</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>SourceRelativeIncludes</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>UserSearchPaths</NAME>
+                    <SETTING>
+                        <SETTING><NAME>SearchPath</NAME>
+                            <SETTING><NAME>Path</NAME><VALUE>:</VALUE></SETTING>
+                            <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                            <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                        </SETTING>
+                        <SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
+                    </SETTING>
+                </SETTING>
+                <SETTING><NAME>SystemSearchPaths</NAME>
+                    <SETTING>
+                        <SETTING><NAME>SearchPath</NAME>
+                            <SETTING><NAME>Path</NAME><VALUE>:</VALUE></SETTING>
+                            <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                            <SETTING><NAME>PathRoot</NAME><VALUE>CodeWarrior</VALUE></SETTING>
+                        </SETTING>
+                        <SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
+                    </SETTING>
+                </SETTING>
+
+                <!-- Settings for "Debugger Runtime" panel -->
+                <SETTING><NAME>MWRuntimeSettings_WorkingDirectory</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>MWRuntimeSettings_CommandLine</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>MWRuntimeSettings_HostApplication</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>MWRuntimeSettings_EnvVars</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Target Settings" panel -->
+                <SETTING><NAME>Linker</NAME><VALUE>Symbian Linker v2</VALUE></SETTING>
+                <SETTING><NAME>PreLinker</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>PostLinker</NAME><VALUE>Symbian Installer v2</VALUE></SETTING>
+                <SETTING><NAME>Targetname</NAME><VALUE>ARMV5_ABIV2 UDEB</VALUE></SETTING>
+                <SETTING><NAME>OutputDirectory</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SaveEntriesUsingRelativePaths</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "File Mappings" panel -->
+                <SETTING><NAME>FileMappings</NAME>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>._i</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>._ii</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.c</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.cc</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.cfg</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.cia</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.ciacpp</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.cpp</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.cwlink</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>XML</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.cxx</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.def</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.h</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.hrh</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.i</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.iby</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.ii</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.inf</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.ini</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.inl</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.loc</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.ciacpp</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.mmp</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.mmpi</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.pkg</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.policy</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.ra</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.resources</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Resource v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>XML</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>true</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.rh</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.rls</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.rss</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.rsg</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.s</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.script</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.txt</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.a</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.lib</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.dso</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.o</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                </SETTING>
+
+                <!-- Settings for "Build Extras" panel -->
+                <SETTING><NAME>CacheModDates</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>DumpBrowserInfo</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>CacheSubprojects</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>UseThirdPartyDebugger</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>BrowserGenerator</NAME><VALUE>2</VALUE></SETTING>
+                <SETTING><NAME>DebuggerAppPath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>DebuggerCmdLineArgs</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>DebuggerWorkingDir</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CodeCompletionPrefixFileName</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CodeCompletionMacroFileName</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Debugger Target" panel -->
+                <SETTING><NAME>ConsoleEncoding</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>LogSystemMessages</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>AutoTargetDLLsPopUp</NAME><VALUE>2</VALUE></SETTING>
+                <SETTING><NAME>StopAtWatchpoints</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>PauseWhileRunning</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>PauseInterval</NAME><VALUE>5</VALUE></SETTING>
+                <SETTING><NAME>PauseUIFlags</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>AltExePath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>StopAtTempBPOnLaunch</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>CacheSymbolics</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>TempBPFunctionName</NAME><VALUE>main</VALUE></SETTING>
+                <SETTING><NAME>TempBPType</NAME><VALUE>0</VALUE></SETTING>
+
+                <!-- Settings for "Remote Debug" panel -->
+                <SETTING><NAME>Enabled</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>ConnectionName</NAME><VALUE>Symbian MetroTrk</VALUE></SETTING>
+                <SETTING><NAME>DownloadPath</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>LaunchRemoteApp</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>RemoteAppPath</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CoreID</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>JTAGClockSpeed</NAME><VALUE>8000</VALUE></SETTING>
+                <SETTING><NAME>IsMultiCore</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>OSDownload</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>UseGlobalOSDownload</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>OSDownloadConnectionName</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>OSDownloadPath</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>AltDownload</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>AltDownloadConnectionName</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Auto-target" panel -->
+                <SETTING><NAME>OtherExecutables</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Analyzer Connections" panel -->
+                <SETTING><NAME>AnalyzerConnectionName</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Custom Keywords" panel -->
+                <SETTING><NAME>CustomColor1</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CustomColor2</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CustomColor3</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CustomColor4</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "ARM Debugger" panel -->
+                <SETTING><NAME>Processor</NAME><VALUE>Generic</VALUE></SETTING>
+                <SETTING><NAME>BraekPoinType_II</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>UseInitFile</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>UseConfigFile</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>IDexecutable</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>IDinitialized</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>IDuninitialized</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>IDconstant</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>SDexecutable</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>SDinitialized</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>SDuninitialized</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>SDconstant</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>VerifyMemWrites</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>ShowMPC107regs</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>InitializationFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>ConfigurationFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>BreakpointType</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>WatchpointType</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>TargetOS</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>RTOSPluginName</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>ByteOrderType</NAME><VALUE>0</VALUE></SETTING>
+                <PANELDATA><NAME>CodeTest SYMBIAN Instrumenter</NAME><VALUE>
+                    0200020000000100000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    000000000000000000000000433A5C0000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    000000000000000000000000637466696C657300000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    000000000000000000000000636F6465746573742E6964620000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    000000000000000000000000
+                </VALUE></PANELDATA>
+
+                <!-- Settings for "Symbian Installation" panel -->
+                <SETTING><NAME>SymbianInstallationOutputFilename</NAME><VALUE>Application.sis</VALUE></SETTING>
+                <SETTING><NAME>SymbianInstallationOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianInstallationContentSearchLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianInstallationPassword</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>SymbianInstallationCreateStubFile</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Installer Panel v2" panel -->
+                <SETTING><NAME>SymbianInstallationOutputFilename</NAME><VALUE>Application.sis</VALUE></SETTING>
+                <SETTING><NAME>SymbianInstallationOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianInstallationContentSearchLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianInstallationPassword</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>SymbianInstallationCreateStubFile</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Resource Panel" panel -->
+                <SETTING><NAME>SymbianResourcesMMPFileLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianResourcesBinaryOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianResourcesHeaderFileOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Symbian Resources Panel v2" panel -->
+                <SETTING><NAME>SymbianResourcesMMPFileLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianResourcesBinaryOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianResourcesHeaderFileOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Remote Download" panel -->
+                <SETTING><NAME>FileList</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Symbian ARM Debugger" panel -->
+                <SETTING><NAME>Processor</NAME><VALUE>Generic</VALUE></SETTING>
+                <SETTING><NAME>UseInitFile</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>UseConfigFile</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>ResetTarget</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>InitializationFile</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>ConfigurationFile</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>TargetOS</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>RTOSPluginName</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Symbian Common Panel" panel -->
+                <SETTING><NAME>ShowCommandLine</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>SymbianEpocToolsPath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Symbian Compiler Panel" panel -->
+                <SETTING><NAME>PrefixFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CompilerXMLDescriptor</NAME><VALUE>ARM RVCT</VALUE></SETTING>
+                <SETTING><NAME>Macros</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CodeTEST</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>EnableSWIC</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Arguments</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CIAArgs</NAME><VALUE>-x c++ -D__CIA__</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Debugging" panel -->
+                <SETTING><NAME>Parse Log File</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Log File Path</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>Symbian SDK Folder</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>Log Unresolved Modules</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Log Unresolved Sym Files</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Debug Non-XIP Executables</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Kernel Debugging" panel -->
+                <SETTING><NAME>Start Address</NAME><VALUE>0x00000000</VALUE></SETTING>
+                <SETTING><NAME>Run From Start Address</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Download Image</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>OS Image Path</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>Download Address</NAME><VALUE>0x00000000</VALUE></SETTING>
+                <SETTING><NAME>Ask First</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Debug Bootrom</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Bootrom Sym File</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Symbian Linker Panel" panel -->
+                <SETTING><NAME>LinkOutputFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>LinkCmdLine</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>SymbianImportLibrary</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>canDebug</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>canRun</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "Symbian RomBuild Panel" panel -->
+                <SETTING><NAME>CommandLine</NAME><VALUE>buildrom -D_DEBUG devkit lubbock techview -olubbock_gui.img</VALUE></SETTING>
+                <SETTING><NAME>OutputPath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>DisplayMessages</NAME><VALUE>true</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Target" panel -->
+                <SETTING><NAME>TargetArchitecture</NAME><VALUE>WINSCW</VALUE></SETTING>
+                <SETTING><NAME>LogMessages</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>SuppressWarnings</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>GenerateSymbolics</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>CompilerPrefix</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CompilerCmdLine</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>SymbianImportLibraryPath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Symbian Tools" panel -->
+                <SETTING><NAME>Gnu Tools Path</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>Epoc32 Tools Path</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+            </SETTINGLIST>
+            <FILELIST>
+            </FILELIST>
+            <LINKORDER>
+            </LINKORDER>
+        </TARGET>
+        <TARGET>
+            <NAME>ARMV5_ABIV2 UREL</NAME>
+            <SETTINGLIST>
+
+                <!-- Settings for "Source Trees" panel -->
+                <SETTING><NAME>UserSourceTrees</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Access Paths" panel -->
+                <SETTING><NAME>AlwaysSearchUserPaths</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>InterpretDOSAndUnixPaths</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>RequireFrameworkStyleIncludes</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>SourceRelativeIncludes</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>UserSearchPaths</NAME>
+                    <SETTING>
+                        <SETTING><NAME>SearchPath</NAME>
+                            <SETTING><NAME>Path</NAME><VALUE>:</VALUE></SETTING>
+                            <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                            <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                        </SETTING>
+                        <SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
+                    </SETTING>
+                </SETTING>
+                <SETTING><NAME>SystemSearchPaths</NAME>
+                    <SETTING>
+                        <SETTING><NAME>SearchPath</NAME>
+                            <SETTING><NAME>Path</NAME><VALUE>:</VALUE></SETTING>
+                            <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                            <SETTING><NAME>PathRoot</NAME><VALUE>CodeWarrior</VALUE></SETTING>
+                        </SETTING>
+                        <SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
+                    </SETTING>
+                </SETTING>
+
+                <!-- Settings for "Debugger Runtime" panel -->
+                <SETTING><NAME>MWRuntimeSettings_WorkingDirectory</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>MWRuntimeSettings_CommandLine</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>MWRuntimeSettings_HostApplication</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>MWRuntimeSettings_EnvVars</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Target Settings" panel -->
+                <SETTING><NAME>Linker</NAME><VALUE>Symbian Linker v2</VALUE></SETTING>
+                <SETTING><NAME>PreLinker</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>PostLinker</NAME><VALUE>Symbian Installer v2</VALUE></SETTING>
+                <SETTING><NAME>Targetname</NAME><VALUE>ARMV5_ABIV2 UDEB</VALUE></SETTING>
+                <SETTING><NAME>OutputDirectory</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SaveEntriesUsingRelativePaths</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "File Mappings" panel -->
+                <SETTING><NAME>FileMappings</NAME>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>._i</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>._ii</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.c</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.cc</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.cfg</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.cia</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.ciacpp</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.cpp</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.cwlink</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>XML</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.cxx</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.def</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.h</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.hrh</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.i</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.iby</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.ii</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.inf</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.ini</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.inl</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.loc</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.ciacpp</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.mmp</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.mmpi</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.pkg</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.policy</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.ra</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.resources</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Resource v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>XML</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>true</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.rh</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.rls</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.rss</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.rsg</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.s</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Compiler v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.script</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.txt</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE>C/C++</VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.a</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.lib</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.dso</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE>.o</VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE>Symbian Object Importer v2</VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                </SETTING>
+
+                <!-- Settings for "Build Extras" panel -->
+                <SETTING><NAME>CacheModDates</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>DumpBrowserInfo</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>CacheSubprojects</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>UseThirdPartyDebugger</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>BrowserGenerator</NAME><VALUE>2</VALUE></SETTING>
+                <SETTING><NAME>DebuggerAppPath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>DebuggerCmdLineArgs</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>DebuggerWorkingDir</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CodeCompletionPrefixFileName</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CodeCompletionMacroFileName</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Debugger Target" panel -->
+                <SETTING><NAME>ConsoleEncoding</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>LogSystemMessages</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>AutoTargetDLLsPopUp</NAME><VALUE>2</VALUE></SETTING>
+                <SETTING><NAME>StopAtWatchpoints</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>PauseWhileRunning</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>PauseInterval</NAME><VALUE>5</VALUE></SETTING>
+                <SETTING><NAME>PauseUIFlags</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>AltExePath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>StopAtTempBPOnLaunch</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>CacheSymbolics</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>TempBPFunctionName</NAME><VALUE>main</VALUE></SETTING>
+                <SETTING><NAME>TempBPType</NAME><VALUE>0</VALUE></SETTING>
+
+                <!-- Settings for "Remote Debug" panel -->
+                <SETTING><NAME>Enabled</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>ConnectionName</NAME><VALUE>Symbian MetroTrk</VALUE></SETTING>
+                <SETTING><NAME>DownloadPath</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>LaunchRemoteApp</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>RemoteAppPath</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CoreID</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>JTAGClockSpeed</NAME><VALUE>8000</VALUE></SETTING>
+                <SETTING><NAME>IsMultiCore</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>OSDownload</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>UseGlobalOSDownload</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>OSDownloadConnectionName</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>OSDownloadPath</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>AltDownload</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>AltDownloadConnectionName</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Auto-target" panel -->
+                <SETTING><NAME>OtherExecutables</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Analyzer Connections" panel -->
+                <SETTING><NAME>AnalyzerConnectionName</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Custom Keywords" panel -->
+                <SETTING><NAME>CustomColor1</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CustomColor2</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CustomColor3</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CustomColor4</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "ARM Debugger" panel -->
+                <SETTING><NAME>Processor</NAME><VALUE>Generic</VALUE></SETTING>
+                <SETTING><NAME>BraekPoinType_II</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>UseInitFile</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>UseConfigFile</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>IDexecutable</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>IDinitialized</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>IDuninitialized</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>IDconstant</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>SDexecutable</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>SDinitialized</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>SDuninitialized</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>SDconstant</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>VerifyMemWrites</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>ShowMPC107regs</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>InitializationFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>ConfigurationFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>BreakpointType</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>WatchpointType</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>TargetOS</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>RTOSPluginName</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>ByteOrderType</NAME><VALUE>0</VALUE></SETTING>
+                <PANELDATA><NAME>CodeTest SYMBIAN Instrumenter</NAME><VALUE>
+                    0200020000000100000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    000000000000000000000000433A5C0000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    000000000000000000000000637466696C657300000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    000000000000000000000000636F6465746573742E6964620000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    000000000000000000000000
+                </VALUE></PANELDATA>
+
+                <!-- Settings for "Symbian Installation" panel -->
+                <SETTING><NAME>SymbianInstallationOutputFilename</NAME><VALUE>Application.sis</VALUE></SETTING>
+                <SETTING><NAME>SymbianInstallationOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianInstallationContentSearchLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianInstallationPassword</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>SymbianInstallationCreateStubFile</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Installer Panel v2" panel -->
+                <SETTING><NAME>SymbianInstallationOutputFilename</NAME><VALUE>Application.sis</VALUE></SETTING>
+                <SETTING><NAME>SymbianInstallationOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianInstallationContentSearchLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianInstallationPassword</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>SymbianInstallationCreateStubFile</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Resource Panel" panel -->
+                <SETTING><NAME>SymbianResourcesMMPFileLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianResourcesBinaryOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianResourcesHeaderFileOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Symbian Resources Panel v2" panel -->
+                <SETTING><NAME>SymbianResourcesMMPFileLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianResourcesBinaryOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianResourcesHeaderFileOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Remote Download" panel -->
+                <SETTING><NAME>FileList</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Symbian ARM Debugger" panel -->
+                <SETTING><NAME>Processor</NAME><VALUE>Generic</VALUE></SETTING>
+                <SETTING><NAME>UseInitFile</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>UseConfigFile</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>ResetTarget</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>InitializationFile</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>ConfigurationFile</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>TargetOS</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>RTOSPluginName</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Symbian Common Panel" panel -->
+                <SETTING><NAME>ShowCommandLine</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>SymbianEpocToolsPath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Symbian Compiler Panel" panel -->
+                <SETTING><NAME>PrefixFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CompilerXMLDescriptor</NAME><VALUE>ARM RVCT</VALUE></SETTING>
+                <SETTING><NAME>Macros</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CodeTEST</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>EnableSWIC</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Arguments</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CIAArgs</NAME><VALUE>-x c++ -D__CIA__</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Debugging" panel -->
+                <SETTING><NAME>Parse Log File</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Log File Path</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>Symbian SDK Folder</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>Log Unresolved Modules</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Log Unresolved Sym Files</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Debug Non-XIP Executables</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Kernel Debugging" panel -->
+                <SETTING><NAME>Start Address</NAME><VALUE>0x00000000</VALUE></SETTING>
+                <SETTING><NAME>Run From Start Address</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Download Image</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>OS Image Path</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>Download Address</NAME><VALUE>0x00000000</VALUE></SETTING>
+                <SETTING><NAME>Ask First</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Debug Bootrom</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Bootrom Sym File</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Symbian Linker Panel" panel -->
+                <SETTING><NAME>LinkOutputFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>LinkCmdLine</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>SymbianImportLibrary</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>canDebug</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>canRun</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "Symbian RomBuild Panel" panel -->
+                <SETTING><NAME>CommandLine</NAME><VALUE>buildrom -D_DEBUG devkit lubbock techview -olubbock_gui.img</VALUE></SETTING>
+                <SETTING><NAME>OutputPath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>DisplayMessages</NAME><VALUE>true</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Target" panel -->
+                <SETTING><NAME>TargetArchitecture</NAME><VALUE>WINSCW</VALUE></SETTING>
+                <SETTING><NAME>LogMessages</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>SuppressWarnings</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>GenerateSymbolics</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>CompilerPrefix</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CompilerCmdLine</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>SymbianImportLibraryPath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Symbian Tools" panel -->
+                <SETTING><NAME>Gnu Tools Path</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>Epoc32 Tools Path</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+            </SETTINGLIST>
+            <FILELIST>
+            </FILELIST>
+            <LINKORDER>
+            </LINKORDER>
+        </TARGET>
+        <TARGET>
+            <NAME>Build All</NAME>
+            <SETTINGLIST>
+
+                <!-- Settings for "Source Trees" panel -->
+                <SETTING><NAME>UserSourceTrees</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Access Paths" panel -->
+                <SETTING><NAME>AlwaysSearchUserPaths</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>InterpretDOSAndUnixPaths</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>RequireFrameworkStyleIncludes</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>SourceRelativeIncludes</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>UserSearchPaths</NAME>
+                    <SETTING>
+                        <SETTING><NAME>SearchPath</NAME>
+                            <SETTING><NAME>Path</NAME><VALUE>:</VALUE></SETTING>
+                            <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                            <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                        </SETTING>
+                        <SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
+                    </SETTING>
+                </SETTING>
+                <SETTING><NAME>SystemSearchPaths</NAME>
+                    <SETTING>
+                        <SETTING><NAME>SearchPath</NAME>
+                            <SETTING><NAME>Path</NAME><VALUE>:</VALUE></SETTING>
+                            <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                            <SETTING><NAME>PathRoot</NAME><VALUE>CodeWarrior</VALUE></SETTING>
+                        </SETTING>
+                        <SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
+                    </SETTING>
+                </SETTING>
+
+                <!-- Settings for "Debugger Runtime" panel -->
+                <SETTING><NAME>MWRuntimeSettings_WorkingDirectory</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>MWRuntimeSettings_CommandLine</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>MWRuntimeSettings_HostApplication</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>MWRuntimeSettings_EnvVars</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Target Settings" panel -->
+                <SETTING><NAME>Linker</NAME><VALUE>None</VALUE></SETTING>
+                <SETTING><NAME>PreLinker</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>PostLinker</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>Targetname</NAME><VALUE>Build All</VALUE></SETTING>
+                <SETTING><NAME>OutputDirectory</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SaveEntriesUsingRelativePaths</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "File Mappings" panel -->
+                <SETTING><NAME>FileMappings</NAME>
+                    <SETTING>
+                        <SETTING><NAME>FileType</NAME><VALUE>MMPr</VALUE></SETTING>
+                        <SETTING><NAME>FileExtension</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>EditLanguage</NAME><VALUE></VALUE></SETTING>
+                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>Launchable</NAME><VALUE>true</VALUE></SETTING>
+                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
+                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
+                    </SETTING>
+                </SETTING>
+
+                <!-- Settings for "Build Extras" panel -->
+                <SETTING><NAME>CacheModDates</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>DumpBrowserInfo</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>CacheSubprojects</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>UseThirdPartyDebugger</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>BrowserGenerator</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>DebuggerAppPath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>DebuggerCmdLineArgs</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>DebuggerWorkingDir</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CodeCompletionPrefixFileName</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CodeCompletionMacroFileName</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Debugger Target" panel -->
+                <SETTING><NAME>ConsoleEncoding</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>LogSystemMessages</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>AutoTargetDLLsPopUp</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>StopAtWatchpoints</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>PauseWhileRunning</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>PauseInterval</NAME><VALUE>5</VALUE></SETTING>
+                <SETTING><NAME>PauseUIFlags</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>AltExePath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>StopAtTempBPOnLaunch</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>CacheSymbolics</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>TempBPFunctionName</NAME><VALUE>main</VALUE></SETTING>
+                <SETTING><NAME>TempBPType</NAME><VALUE>0</VALUE></SETTING>
+
+                <!-- Settings for "Remote Debug" panel -->
+                <SETTING><NAME>Enabled</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>ConnectionName</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>DownloadPath</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>LaunchRemoteApp</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>RemoteAppPath</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CoreID</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>JTAGClockSpeed</NAME><VALUE>8000</VALUE></SETTING>
+                <SETTING><NAME>IsMultiCore</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>OSDownload</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>UseGlobalOSDownload</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>OSDownloadConnectionName</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>OSDownloadPath</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>AltDownload</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>AltDownloadConnectionName</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Auto-target" panel -->
+                <SETTING><NAME>OtherExecutables</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Analyzer Connections" panel -->
+                <SETTING><NAME>AnalyzerConnectionName</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Custom Keywords" panel -->
+                <SETTING><NAME>CustomColor1</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CustomColor2</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CustomColor3</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>CustomColor4</NAME>
+                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Green</NAME><VALUE>0</VALUE></SETTING>
+                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "ARM Debugger" panel -->
+                <SETTING><NAME>Processor</NAME><VALUE>Generic</VALUE></SETTING>
+                <SETTING><NAME>BraekPoinType_II</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>UseInitFile</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>UseConfigFile</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>IDexecutable</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>IDinitialized</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>IDuninitialized</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>IDconstant</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>SDexecutable</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>SDinitialized</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>SDuninitialized</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>SDconstant</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>VerifyMemWrites</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>ShowMPC107regs</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>InitializationFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>ConfigurationFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>BreakpointType</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>WatchpointType</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>TargetOS</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>RTOSPluginName</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>ByteOrderType</NAME><VALUE>0</VALUE></SETTING>
+                <PANELDATA><NAME>CodeTest SYMBIAN Instrumenter</NAME><VALUE>
+                    0200020000000100000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    000000000000000000000000433A5C0000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    000000000000000000000000637466696C657300000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    000000000000000000000000636F6465746573742E6964620000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    0000000000000000000000000000000000000000000000000000000000000000
+                    000000000000000000000000
+                </VALUE></PANELDATA>
+
+                <!-- Settings for "Symbian Installation" panel -->
+                <SETTING><NAME>SymbianInstallationOutputFilename</NAME><VALUE>Application.sis</VALUE></SETTING>
+                <SETTING><NAME>SymbianInstallationOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianInstallationContentSearchLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianInstallationPassword</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>SymbianInstallationCreateStubFile</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Installer Panel v2" panel -->
+                <SETTING><NAME>SymbianInstallationOutputFilename</NAME><VALUE>Application.sis</VALUE></SETTING>
+                <SETTING><NAME>SymbianInstallationOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianInstallationContentSearchLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianInstallationPassword</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>SymbianInstallationCreateStubFile</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Resource Panel" panel -->
+                <SETTING><NAME>SymbianResourcesMMPFileLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianResourcesBinaryOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianResourcesHeaderFileOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Symbian Resources Panel v2" panel -->
+                <SETTING><NAME>SymbianResourcesMMPFileLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianResourcesBinaryOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>SymbianResourcesHeaderFileOutputLocation</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Remote Download" panel -->
+                <SETTING><NAME>FileList</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Symbian ARM Debugger" panel -->
+                <SETTING><NAME>Processor</NAME><VALUE>Generic</VALUE></SETTING>
+                <SETTING><NAME>UseInitFile</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>UseConfigFile</NAME><VALUE>0</VALUE></SETTING>
+                <SETTING><NAME>ResetTarget</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>InitializationFile</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>ConfigurationFile</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>TargetOS</NAME><VALUE>1</VALUE></SETTING>
+                <SETTING><NAME>RTOSPluginName</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Symbian Common Panel" panel -->
+                <SETTING><NAME>ShowCommandLine</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>SymbianEpocToolsPath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Symbian Compiler Panel" panel -->
+                <SETTING><NAME>PrefixFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CompilerXMLDescriptor</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>Macros</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CodeTEST</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>EnableSWIC</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Arguments</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CIAArgs</NAME><VALUE></VALUE></SETTING>
+
+                <!-- Settings for "Symbian Debugging" panel -->
+                <SETTING><NAME>Parse Log File</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Log File Path</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>Symbian SDK Folder</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>Log Unresolved Modules</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Log Unresolved Sym Files</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Debug Non-XIP Executables</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Kernel Debugging" panel -->
+                <SETTING><NAME>Start Address</NAME><VALUE>0x00000000</VALUE></SETTING>
+                <SETTING><NAME>Run From Start Address</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Download Image</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>OS Image Path</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>Download Address</NAME><VALUE>0x00000000</VALUE></SETTING>
+                <SETTING><NAME>Ask First</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Debug Bootrom</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>Bootrom Sym File</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Symbian Linker Panel" panel -->
+                <SETTING><NAME>LinkOutputFile</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>LinkCmdLine</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>SymbianImportLibrary</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>canDebug</NAME><VALUE>true</VALUE></SETTING>
+                <SETTING><NAME>canRun</NAME><VALUE>false</VALUE></SETTING>
+
+                <!-- Settings for "Symbian RomBuild Panel" panel -->
+                <SETTING><NAME>CommandLine</NAME><VALUE>buildrom -D_DEBUG devkit lubbock techview -olubbock_gui.img</VALUE></SETTING>
+                <SETTING><NAME>OutputPath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>DisplayMessages</NAME><VALUE>true</VALUE></SETTING>
+
+                <!-- Settings for "Symbian Target" panel -->
+                <SETTING><NAME>TargetArchitecture</NAME><VALUE>WINSCW</VALUE></SETTING>
+                <SETTING><NAME>LogMessages</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>SuppressWarnings</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>GenerateSymbolics</NAME><VALUE>false</VALUE></SETTING>
+                <SETTING><NAME>CompilerPrefix</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>CompilerCmdLine</NAME><VALUE></VALUE></SETTING>
+                <SETTING><NAME>SymbianImportLibraryPath</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+
+                <!-- Settings for "Symbian Tools" panel -->
+                <SETTING><NAME>Gnu Tools Path</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+                <SETTING><NAME>Epoc32 Tools Path</NAME>
+                    <SETTING><NAME>Path</NAME><VALUE>C:\</VALUE></SETTING>
+                    <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
+                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
+                </SETTING>
+            </SETTINGLIST>
+            <FILELIST>
+            </FILELIST>
+            <LINKORDER>
+            </LINKORDER>
+            <SUBTARGETLIST>
+                <SUBTARGET>
+                    <TARGETNAME>WINSCW UDEB</TARGETNAME>
+                </SUBTARGET>
+                <SUBTARGET>
+                    <TARGETNAME>WINSCW UREL</TARGETNAME>
+                </SUBTARGET>
+                <SUBTARGET>
+                    <TARGETNAME>ARM4 UDEB</TARGETNAME>
+                </SUBTARGET>
+                <SUBTARGET>
+                    <TARGETNAME>ARM4 UREL</TARGETNAME>
+                </SUBTARGET>
+                <SUBTARGET>
+                    <TARGETNAME>ARMV5_ABIV1 UDEB</TARGETNAME>
+                </SUBTARGET>
+                <SUBTARGET>
+                    <TARGETNAME>ARMV5_ABIV1 UREL</TARGETNAME>
+                </SUBTARGET>
+                <SUBTARGET>
+                    <TARGETNAME>GCCE UDEB</TARGETNAME>
+                </SUBTARGET>
+                <SUBTARGET>
+                    <TARGETNAME>GCCE UREL</TARGETNAME>
+                </SUBTARGET>
+                <SUBTARGET>
+                    <TARGETNAME>ARMV5 UDEB</TARGETNAME>
+                </SUBTARGET>
+                <SUBTARGET>
+                    <TARGETNAME>ARMV5 UREL</TARGETNAME>
+                </SUBTARGET>
+				<SUBTARGET>
+                    <TARGETNAME>ARMV5_ABIV2 UDEB</TARGETNAME>
+                </SUBTARGET>
+                <SUBTARGET>
+                    <TARGETNAME>ARMV5_ABIV2 UREL</TARGETNAME>
+                </SUBTARGET>
+            </SUBTARGETLIST>
+        </TARGET>
+    </TARGETLIST>
+
+    <TARGETORDER>
+        <ORDEREDTARGET><NAME>WINSCW UDEB</NAME></ORDEREDTARGET>
+        <ORDEREDTARGET><NAME>WINSCW UREL</NAME></ORDEREDTARGET>
+        <ORDEREDTARGET><NAME>ARM4 UDEB</NAME></ORDEREDTARGET>
+        <ORDEREDTARGET><NAME>ARM4 UREL</NAME></ORDEREDTARGET>
+        <ORDEREDTARGET><NAME>ARMV5 UDEB</NAME></ORDEREDTARGET>
+        <ORDEREDTARGET><NAME>ARMV5 UREL</NAME></ORDEREDTARGET>
+        <ORDEREDTARGET><NAME>GCCE UDEB</NAME></ORDEREDTARGET>
+        <ORDEREDTARGET><NAME>GCCE UREL</NAME></ORDEREDTARGET>
+        <ORDEREDTARGET><NAME>ARMV5_ABIV1 UDEB</NAME></ORDEREDTARGET>
+        <ORDEREDTARGET><NAME>ARMV5_ABIV1 UREL</NAME></ORDEREDTARGET>
+        <ORDEREDTARGET><NAME>Build All</NAME></ORDEREDTARGET>
+    </TARGETORDER>
+
+    <GROUPLIST>
+    </GROUPLIST>
+
+</PROJECT>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/platform/default_plats.txt	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,2 @@
+WINSCW
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/platform/default_plats_v2.txt	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,2 @@
+WINSCW
+ARMV5
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/platform/e32plat.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,881 @@
+# Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Module providing platform details for platforms supported
+# by Symbian OS
+# all data is uppercase
+# 
+#
+
+package E32Plat;
+
+require Exporter;
+@ISA=qw(Exporter);
+
+@EXPORT=qw(
+	Plat_SetVerbose
+	Plat_Init
+	Plat_GetL
+	Plat_List
+	Plat_AssocIDE
+	Plat_Customizations
+	Plat_Customizes
+	Plat_Root
+	Plat_SupportsFeatureVariants
+);
+
+use strict;
+use Winutl;
+use RVCT_plat2set;
+use BPABIutl;
+use E32Variant;
+
+my $variantABIV2Keyword = &Variant_GetMacro();
+
+my %Mode=(
+	Verbose=>0
+);
+my $ModulePath;
+
+sub Plat_SetVerbose () {
+	$Mode{Verbose}=1;
+}
+
+my %BldLists=(
+	EPOC32=>['UREL','UDEB'],
+	WINS=>['UDEB','UREL'],
+	TOOLS=>['DEB','REL'],
+	TOOLS2=>['DEB','REL'],
+);
+
+my %BldMacros=(
+	DEB=>['_DEBUG'],
+	REL=>['NDEBUG'],
+	UDEB=>['_DEBUG','_UNICODE'],
+	UREL=>['NDEBUG','_UNICODE']
+);
+
+
+my @EpocMacros=('__SYMBIAN32__');
+
+my @BPABIPlats = &BPABIutl_Plat_List;
+
+my %Plat=(
+	ARM4=>{
+		ABI=>'ARM4',
+		ASSP=>'MARM',
+		ASSPABI=>'',
+		Generic=>1,
+	},
+	ARM4SMP=>{
+		ABI=>'ARM4',
+		ASSP=>'MARM',
+		ASSPABI=>'',
+		Generic=>1,
+		SMP=>1,
+		StatLink=>'ARM4SMP',
+	},
+	ARM4T=>{
+		ABI=>'ARM4T',
+		ASSP=>'MARM',
+		ASSPABI=>'',
+		Generic=>1,
+	},
+	ARMI=>{
+		ASSP=>'MARM',
+		Generic=>1,
+		ASSPABI=>'',
+	},
+	SARM4=>{
+		ABI=>'ARM4',
+		ASSP=>'MARM',
+		ASSPABI=>'',
+		Generic=>1,
+		Single=>1,
+	},
+	SARMI=>{
+		ASSP=>'MARM',
+		ASSPABI=>'',
+		Generic=>1,
+		Single=>1,
+	},
+	STHUMB=>{
+		ABI=>'THUMB',
+		ASSP=>'MARM',
+		ASSPABI=>'',
+		Generic=>1,
+		Single=>1,
+	},
+	THUMB=>{
+		ABI=>'THUMB',
+		ASSP=>'MARM',
+		ASSPABI=>'',
+		Generic=>1,
+	},
+	TOOLS=>{
+		ABI=>'TOOLS',
+		ASSPABI=>'',
+		Compiler=>'VC32',
+		CPU=>'TOOLS',
+		OS=>'TOOLS',
+		MakeMod=>'Cl_win',
+		MakeCmd=>'nmake',
+	},
+	TOOLS2=>{
+		ABI=>'TOOLS2',
+		ASSPABI=>'',
+		Compiler=>'GCC32',
+		CPU=>'TOOLS2',
+		OS=>'TOOLS2',
+		MakeMod=>'Cl_mingw',
+		MakeCmd=>'make',
+	},
+	CWTOOLS=>{
+		ABI=>'TOOLS',
+		ASSPABI=>'',
+		Compiler=>'CW32',
+		CPU=>'TOOLS',
+		OS=>'TOOLS',
+		MakeMod=>'Cl_tools',
+		MakeCmd=>'make',
+	},
+	VC6TOOLS=>{
+		ABI=>'TOOLS',
+		ASSPABI=>'',
+		Compiler=>'VC32',
+		CPU=>'TOOLS',
+		Ext=>'.DSP',
+		MakeMod=>'Ide_vc6',
+		MakeCmd=>'nmake',
+		OS=>'TOOLS',
+		Real=>'TOOLS',
+		UsrHdrsOnly=>1,
+	},
+	WINS=>{
+		ABI=>'WINS',
+		ASSPABI=>'',
+		Compiler=>'VC32',
+		CPU=>'WINS',
+		MakeMod=>'Cl_win',
+		MakeCmd=>'nmake',
+		OS=>'WINS',
+	},
+	VC6=>{
+		ABI=>'WINS',
+		ASSPABI=>'',
+		Compiler=>'VC32',
+		CPU=>'WINS',
+		Ext=>'.DSP',
+		MakeMod=>'Ide_vc6',
+		MakeCmd=>'nmake',
+		OS=>'WINS',
+		Real=>'WINS',
+		UsrHdrsOnly=>1,
+	},
+	WINSCW=>{
+		ABI=>'WINSCW',
+		ASSPABI=>'',
+		Compiler=>'CW32',
+		CPU=>'WINS',
+		MakeMod=>'Cl_codewarrior',
+		OS=>'WINS',
+		DefFile=>'WINS',	# use the MSVC def files
+	},
+	CW_IDE=>{
+		ABI=>'WINSCW',
+		ASSPABI=>'',
+		Compiler=>'CW32',
+		CPU=>'WINS',
+		Ext=>'.xml',
+		MakeMod=>'Ide_cw',
+		MakeCmd=>'make',
+		OS=>'WINS',
+		Real=>'WINSCW',
+		DefFile=>'WINS',	# use the MSVC def files
+		UsrHdrsOnly=>1,
+		SupportsMultiplePlatforms=>1,	# supports more than one real platform
+	},
+	X86=>{
+		ABI=>'X86',
+		ASSPABI=>'',
+		Compiler=>'VC32',
+		CPU=>'X86',
+		MakeMod=>'Cl_x86',
+		MakeCmd=>'nmake',
+		OS=>'EPOC32',
+		DefFile=>'X86',
+		Generic=>1,
+	},
+	X86SMP=>{
+		ABI=>'X86',
+		ASSPABI=>'',
+		Compiler=>'VC32',
+		CPU=>'X86',
+		MakeMod=>'Cl_x86',
+		MakeCmd=>'nmake',
+		OS=>'EPOC32',
+		DefFile=>'X86',
+		Generic=>1,
+		SMP=>1,
+		StatLink=>'X86SMP',
+	},
+	X86GCC=>{
+		ABI=>'X86gcc',
+		ASSPABI=>'',
+		Compiler=>'X86GCC',
+		CPU=>'X86',
+		MakeMod=>'Cl_x86gcc',
+		OS=>'EPOC32',
+		DefFile=>'x86gcc',
+		Generic=>1,
+	},	
+	X86GMP=>{
+		ABI=>'X86gcc',
+		ASSPABI=>'',
+		Compiler=>'X86GCC',
+		CPU=>'X86',
+		MakeMod=>'Cl_x86gcc',
+		OS=>'EPOC32',
+		DefFile=>'x86gcc',
+		Generic=>1,
+		SMP=>1,
+		StatLink=>'X86GMP',
+	},	
+	ARMV4=>{
+		ABI=>'ARMV4',
+		ASSP=>'MARM',
+		ASSPABI=>'',
+		Generic=>1,
+		MakeMod=>'Cl_arm',
+		Compiler=>'ARMCC',
+		DefFile=>'EABI',
+		EABI=>1,
+	},
+	ARMV4SMP=>{
+		ABI=>'ARMV4',
+		ASSP=>'MARM',
+		ASSPABI=>'',
+		Generic=>1,
+		MakeMod=>'Cl_arm',
+		Compiler=>'ARMCC',
+		DefFile=>'EABI',
+		EABI=>1,
+		SMP=>1,
+		StatLink=>'ARMV4SMP',
+	},
+	ARMV5_ABIV1=>{
+		ABI=>'ARMV5',
+		ASSP=>'MARM',
+		ASSPABI=>'',
+		Generic=>1,
+		MakeMod=>'Cl_arm',
+		Compiler=>'ARMCC',
+		DefFile=>'EABI',
+		EABI=>1,
+		SupportsFeatureVariants=>1,
+	},
+	ABIV2=>{
+		ABI=>'ARMV5',
+		ASSP=>'MARM',
+		ASSPABI=>'',
+		Generic=>1,
+		MakeMod=>'Cl_bpabi',
+		DefFile=>'EABI',
+		EABI=>1,
+		SupportsFeatureVariants=>1,
+	},
+	GCCXML=>{
+		ABI=>'ARM4',
+		ASSP=>'MARM',
+		ASSPABI=>'',
+		Generic=>1,
+		MakeMod=>'cl_gccxml',
+	},
+	VS6=>{
+		ABI=>'WINSCW',
+		ASSPABI=>'',
+		Compiler=>'CW32',
+		CPU=>'WINS',
+		MakeMod=>'Cl_vscw',
+		OS=>'WINS',
+		Real=>'WINSCW',
+		DefFile=>'WINS',	# use the MSVC def files
+		Ext=>'.mak'		
+	},
+	VS2003=>{
+		ABI=>'WINSCW',
+		ASSPABI=>'',
+		Compiler=>'CW32',
+		CPU=>'WINS',
+		MakeMod=>'Cl_vscw',
+		OS=>'WINS',
+		Real=>'WINSCW',
+		DefFile=>'WINS',	# use the MSVC def files
+		Ext=>'.mak'
+	},
+	EDG=>{
+		ABI=>'ARMV5',
+		ASSP=>'MARM',
+		ASSPABI=>'',
+		Generic=>1,
+		MakeMod=>'cl_edg',
+	},
+
+	# ASSP platforms should be described using .ASSP files
+	# Do not add additional ASSP platforms to this file.
+);
+
+sub Set_Plat() 
+{
+	@BPABIPlats = &BPABIutl_Plat_List;
+	foreach my $Candidate (@BPABIPlats)
+	{
+# All BPABI platforms inherit from ABIV2 properties as listed in the platlist
+# and Platlist is updated to include the BPABI platforms.
+		my ( $key, $value);
+		while (($key, $value) = each %{$Plat{ABIV2}}) {
+			$Plat{$Candidate}{$key}=$value;
+		}
+	}
+}
+
+sub Plat_SupportsFeatureVariants($)
+	{
+	my ($plat) = @_;
+
+	# In a non-ABIV2 world, ARMV5 means ARMV5_ABIV1 within e32plat content
+	if (!$variantABIV2Keyword && $plat =~ /^ARMV5$/i)
+		{
+		$plat .= "_ABIV1";
+		}
+		
+	return ($plat && defined $Plat{$plat}{SupportsFeatureVariants}) ? $Plat{$plat}{SupportsFeatureVariants} : 0;
+	}
+
+sub Plat_Customizations($) {
+        my ($plat) = @_;
+	my @empty = ();
+	return @{$Plat{$plat}{'CUSTOMIZATIONS'}} if $Plat{$plat}{'CUSTOMIZATIONS'};
+	return @empty;
+      }
+
+sub Plat_Customizes($) {
+	my ($plat) = @_;
+	return $Plat{$plat}{'CUSTOMIZES'} ? $Plat{$plat}{'CUSTOMIZES'} : "";
+}
+
+sub Plat_Root($) {
+	my ($plat) = @_;
+
+	my $RootName = $Plat{$plat}{'ROOTPLATNAME'};
+
+	if ($RootName) {
+		return $RootName;
+	}
+	else {
+		# A non-BSF platform is its own root.
+		return $plat;
+	}
+}
+
+sub Init_BSFs($) {
+	my ($Path)=@_;  
+#	get a list of modules
+	opendir DIR, $Path;
+	my @BSFs=grep s/^([^\.].*)\.BSF$/$1/, map { uc $_ } sort readdir DIR;
+	closedir DIR;
+
+	my $BSF;
+	foreach $BSF (@BSFs) {
+		my $File=$Path.$BSF.'.bsf';
+#		check whether the assp is already defined
+		if (defined %{$Plat{$BSF}}) {
+			warn(
+				"$File : warning: Platform \"$BSF\" already defined\n",
+				" ... skipping this spec\n"
+			);
+			delete $Plat{$BSF};
+			next;
+		}
+#		open the module
+		unless (open FILE, $File) {
+			delete $Plat{$BSF};
+			warn "warning: Can't open BSF specification \"$File\"\n";
+			next;
+		}
+		my $line1 = <FILE>;
+		$line1 = uc($line1);
+		unless ($line1 =~ /^\#\<BSF\>\#/) {
+			warn "warning: \"$File\" Invalid BSF specification - missing #<bsf>#\n";
+			delete $Plat{$BSF};
+			close FILE;
+                  next;
+            }
+            my $custom;
+            while ($custom = <FILE>) {
+					#skip blank lines and comments
+			delete $Plat{$BSF};
+					last unless ($custom =~ /^$|^\#/);
+            }
+            $custom = uc $custom;
+            unless ($custom =~ /^\s*CUSTOMIZES\s+(\S+)/) {
+				warn "warning: \"$File\" Invalid BSF specification - 'customizes' missing\n";
+				delete $Plat{$BSF};
+				close FILE;
+			next;
+            }
+		my $root = $1;
+		my $platname = '';
+		my $CustomizedPlatName = '';		
+
+		# In v1 mode, ARMV5 platform implies ARMV5_ABIV1 platform listed in the platlist		
+		my $Armv5Flag = 0;
+		if (!$variantABIV2Keyword && $root =~ /^ARMV5$/i) {
+			$Armv5Flag = 1;
+		}
+
+		# Support for Hierarchy of Customizations (BSF file customization of another BSF file)
+		# 1. Check whether the BSF file customizes another BSF file.
+		# 2. If so, check whether the root BSF file has already been read.
+		# 3. If not read, then defer the current BSF file reading until the root file is read.
+		my $rootPlatFound = 0;
+		if (defined %{$Plat{$root}} || $Armv5Flag) 
+		{
+			# BSF platform customizes another valid BSF platform
+			if (defined $Plat{$root}{'CUSTOMIZES'}) 
+			{
+				$rootPlatFound = 1;
+				$platname = $root;
+				$CustomizedPlatName = $root;
+
+				# Set the root platform name which is same as of customizes platform
+				$Plat{$BSF}{'ROOTPLATNAME'} = $Plat{$root}{'ROOTPLATNAME'};
+			}
+			# BSF platform customizes to one of the existing ABI platforms
+			else
+			{
+				# All BPABI platforms inherits from ABIV2 platform listed in the platlist
+				if (grep /^$root$/i, @BPABIPlats) {
+					$platname = "ABIV2";
+				}
+				elsif ($Armv5Flag) {
+				# In v1 mode, ARMV5 platform implies ARMV5_ABIV1 platform listed in the platlist
+					$platname = "ARMV5_ABIV1";	
+				}
+				else {
+					$platname = $root;
+				}
+				
+				$CustomizedPlatName=$root;
+
+				# BSF File check Begins 
+				# The following check is included to handle the existing BSF files which has to behave in different manner
+				# in default v1 mode and v2 mode. The following code changes the BSF name and the custmoized platform name
+				# to the implied names. This is done to support switching between v1 and v2 modes by enabling the keyword in
+				# the variant configuration file.
+				# In v1 mode, the ARMV6_ABIV1 => ARMV6 platform and ARMV6 => ARMV6_ABIV2 platform.
+				if (!$variantABIV2Keyword) {
+					if ($BSF =~ /^ARMV6_ABIV1$/i) {
+						$BSF = "ARMV6";	
+						$CustomizedPlatName = "ARMV5";	
+					}
+					elsif ($BSF =~ /^ARMV6$/i) {
+						$BSF = "ARMV6_ABIV2";	
+						$CustomizedPlatName = "ARMV5_ABIV2";
+						$platname = "ABIV2";
+					}
+				}
+				# BSF File check Ends
+
+				# Set the root platform name
+				$Plat{$BSF}{'ROOTPLATNAME'} = $CustomizedPlatName;
+			}			
+		}
+		else
+		{
+			my $rootbsf = $Path.$root.".bsf";			
+			if ( -e $rootbsf ) {
+				# BSF file customizes another BSF file which has not been read yet.
+				# So defer current BSF file reading until the root BSF file is read.				
+				delete $Plat{$BSF};
+				push(@BSFs, $BSF);
+				next;		
+			}
+		}
+		# If the customizes platform is not a valid BSF platform or BPABI platorm or ARMV5 or ARMV5_ABIV1,
+		# then throw warning.
+		unless ($rootPlatFound || $root =~ /^ARMV5(_ABIV1)?$/ || (grep /^$root$/i, @BPABIPlats)) {
+			warn "warning: \"$File\" Invalid BSF specification - customization restricted to ARMV5, ABIv2 and valid BSF platforms\n";
+			close FILE;
+			delete $Plat{$BSF};
+			next;
+		}
+			
+		my ( $key, $value);
+		while (($key, $value) = each %{$Plat{$platname}}) {
+			$Plat{$BSF}{$key}=$value;
+		}
+		
+		push @{$Plat{$CustomizedPlatName}{'CUSTOMIZATIONS'}}, $BSF;
+		$Plat{$BSF}{'CUSTOMIZES'} = $CustomizedPlatName;
+		while (<FILE>) {
+			next if (/^$|^\#/);
+			if (/^\s*SMP\s*$/i) {
+				$Plat{$BSF}{'SMP'} = 1;
+				$Plat{$BSF}{'StatLink'} = lc $BSF;
+				next;
+			}
+			$Plat{$BSF}{'CUSTOMIZATION_DATA'} .= $_;
+		}
+		# BSF file statements will have newline character("\n") at the end, except for the last statement.
+		# So append "\n" for the last BSF file statement.
+		# "\n" will be used to split BSF statements to support hierarchy of customizations.
+		$Plat{$BSF}{'CUSTOMIZATION_DATA'} .= "\n";
+		close FILE;
+	}
+	1;
+}
+
+sub Plat_Init ($) { # takes path to ASSP modules
+	my ($Path)=@_;
+
+	my %PlatHashKeys=(
+		ABI=>1,
+		ASSPABI=>1,
+		SINGLE=>1,
+		Compiler=>1,
+		CPU=>1,
+		MakeMod=>1,
+		MakeCmd=>1,
+		OS=>1,
+		DefFile=>1,
+		ASSP=>1,
+	);
+
+#	Include the list of BPABI platforms
+	&Set_Plat;
+
+	Init_BSFs($Path);
+
+#	get a list of modules
+	opendir DIR, $Path;
+	my @_ASSPs=grep s/^([^\.].*)\.ASSP$/$1/, map { uc $_ } readdir DIR;
+	closedir DIR;
+
+	my @ASSPs;
+	foreach (@_ASSPs) {
+		if (!$ENV{USEARMCC} and /EDG$/i) {
+#			warn(
+#				"Note: ASSP \"$_\" disabled\n"
+#			);
+
+			next;
+		}
+		push @ASSPs, $_;
+	}
+
+#	open each module in turn, and add it to the array
+	my $ASSP;
+	foreach $ASSP (@ASSPs) {
+		my $File=$Path.$ASSP.'.assp';
+#		check whether the assp is already defined
+		if (defined %{$Plat{$ASSP}}) {
+			warn(
+				"$File : warning: ASSP \"$ASSP\" already defined\n",
+				" ... skipping this module\n"
+			);
+
+			next;
+		}
+#		open the module
+		unless (open FILE, $File) {
+			warn "warning: Can't open assp module \"$File\"\n";
+			next;
+		}
+		my %Data=();
+		my %SingleData=();
+		my $MatchingSingle="";
+		my @Errors=();
+		while (<FILE>) {
+#			strip comments
+			s/^([^#]*)#.*$/$1/o;
+#			skip blank lines
+			if (/^\s*$/o) {
+				next;
+			}
+#			get the key-value pair
+			unless (/^\s*(\w+)\s+(\w+)\s*$/o) {
+				push @Errors, "$File($.) : warning: syntax error - only key-value pairs allowed\n";
+				next;
+			}
+			my ($Key, $Val)=($1, $2);
+			if ($PlatHashKeys{$Key}!=1) {
+				push @Errors, "$File($.) : warning: unrecognized keyword - $Key\n";
+				next;
+			}
+			if ($Key eq "SINGLE") {
+				$SingleData{Single} = 1;
+				$SingleData{ASSP} = $ASSP;
+				$MatchingSingle = uc $2;
+			} else {
+				$Data{$Key}=$Val;
+				$SingleData{$Key}=$Val;
+			}
+		}
+		close FILE;
+		if (@Errors) {
+			warn(
+				@Errors,
+				" ... skipping this module\n"
+			);
+			next;
+		}
+# change -  Allow ASSPs to pick up all the options of the ABI they specify, 
+# in particular the compiler they need.
+			$Data{'ASSP'} = $ASSP unless $Data{'ASSP'};
+			if ($Plat{$Data{'ABI'}}) {
+			foreach (keys %{$Plat{$Data{'ABI'}}}) {
+			$Data{$_} = $Plat{$Data{'ABI'}}{$_} unless ($_ =~ /^GENERIC$/i) or $Data{$_};
+			}
+		}
+
+		%{$Plat{$ASSP}}=%Data;
+		if ($MatchingSingle ne "") {
+			foreach (keys %Data) {
+			$SingleData{$_} = $Data{$_} unless ($_ =~ /^GENERIC$/i) or $SingleData{$_};
+			}
+			%{$Plat{$MatchingSingle}}=%SingleData;
+		}			
+	}
+}
+
+sub Plat_GetL ($$$$) { # takes Platform name, ref to plat hash, ref to bldmacrohash, bldmake plat command notifier
+	my ($Candidate,$PlatHash_ref,$BldMacrosHash_ref,$platcommand)=@_;
+	$Candidate=uc $Candidate;
+
+# is platform in our list?
+	unless (defined $Plat{$Candidate}) {
+
+		# is platform BPABI compliant one?
+		if (!$variantABIV2Keyword && $Candidate eq 'ARMV5') {
+		}
+		elsif (not(grep /^$Candidate$/i, @BPABIPlats))
+		{
+			die "ERROR: Platform \"$Candidate\" not supported\n";
+		}
+	}
+
+	my $BPABIPlat;
+	my %PlatHash=();
+
+# check the data
+# All BPABI platforms inherit ABIV2 properties 
+	if (grep /^$Candidate$/i, @BPABIPlats) 
+	{
+		$BPABIPlat='ABIV2';
+		%PlatHash=%{$Plat{$BPABIPlat}};
+	}
+# In v1 mode, ARMV5 platform implies ARMV5_ABIV1 platform listed in the platlist
+	elsif (!$variantABIV2Keyword && $Candidate eq 'ARMV5') {
+		%PlatHash=%{$Plat{ARMV5_ABIV1}};
+	}
+	else {
+		%PlatHash=%{$Plat{$Candidate}};
+	}
+
+# set the defaults
+	$PlatHash{Name}=$Candidate;
+	$PlatHash{Real}=$PlatHash{Name} unless $PlatHash{Real};
+	$PlatHash{Ext}=".$PlatHash{Real}" unless $PlatHash{Ext};
+	$PlatHash{ASSP}=$PlatHash{Real} unless $PlatHash{ASSP};
+
+# Get the root platform name to support hierarchy of customizations
+	my $CustomizedPlat=$PlatHash{'ROOTPLATNAME'};
+
+	if ((defined($Candidate)  && ($Candidate =~ /^ARMV5/i)) || (defined($CustomizedPlat) && ($CustomizedPlat =~ /^ARMV5/i))) {
+# Compiler name should be set as ARMCC for all ARMV5 platforms
+		$PlatHash{Compiler}='ARMCC';
+		$PlatHash{Toolchain}='rvct22';
+	}
+	elsif ($BPABIPlat) {
+# Compiler name should be set as that of platform name for all BPABI platforms
+		$PlatHash{Compiler}=$Candidate;
+		$PlatHash{Toolchain}=$Candidate;
+	}
+	elsif ($CustomizedPlat) {
+# Compiler name should be set as that of the customized platform name incase of customization
+		$PlatHash{Compiler}=$CustomizedPlat;
+		$PlatHash{Toolchain}=$CustomizedPlat;
+	}
+
+	$PlatHash{Compiler}='GCC32' unless $PlatHash{Compiler};
+	$PlatHash{OS}='EPOC32' unless $PlatHash{OS};
+	$PlatHash{MakeMod}='Cl_gcc' unless $PlatHash{MakeMod};
+	$PlatHash{MakeCmd}='make' unless $PlatHash{MakeCmd};
+	$PlatHash{CPU}='MARM' unless $PlatHash{CPU};
+	$PlatHash{Single}=0 unless $PlatHash{Single};
+	$PlatHash{UsrHdrsOnly}=0 unless $PlatHash{UsrHdrsOnly};
+	$PlatHash{Generic}=0 unless $PlatHash{Generic}; # generic means "for a target device but no particular ASSP"
+	$PlatHash{SupportsMultiplePlatforms}=0 unless $PlatHash{SupportsMultiplePlatforms};
+
+	$PlatHash{ABI}='ARMI' unless $PlatHash{ABI};
+	$PlatHash{ASSPABI}='ARM4' unless defined $PlatHash{ASSPABI};
+
+	unless (defined $PlatHash{DefFile}) {
+		if ($PlatHash{Compiler} eq 'VC32') {
+			$PlatHash{DefFile}='WINS';
+		} else {
+			$PlatHash{DefFile}='MARM';
+		}
+	}
+	
+# .MMP macros - keeping the order is useful
+	@{$PlatHash{MmpMacros}}=$PlatHash{Compiler};
+	push @{$PlatHash{MmpMacros}}, $PlatHash{OS};
+	push @{$PlatHash{MmpMacros}}, $PlatHash{CPU} unless $PlatHash{CPU} eq $PlatHash{OS};
+	push @{$PlatHash{MmpMacros}}, $PlatHash{ASSP} unless $PlatHash{ASSP}=~/^($PlatHash{CPU}|$PlatHash{OS})$/;
+
+	if ($PlatHash{Single}) {
+		push @{$PlatHash{MmpMacros}}, 'SINGLE';
+	}
+	if ($PlatHash{SMP}) {
+		push @{$PlatHash{MmpMacros}}, 'SMP';
+	}
+	if ($PlatHash{EABI}) {
+		push @{$PlatHash{MmpMacros}}, 'EABI';
+	}
+	if ($PlatHash{Compiler} eq 'VC32') {
+		my $MSVCVer = &Winutl_MSVCVer($platcommand);
+		my $MSVCSubVer = &Winutl_MSVCSubVer($platcommand);
+		push @{$PlatHash{MmpMacros}}, 'MSVC'.$MSVCVer;
+		push @{$PlatHash{MmpMacros}}, 'MSVC'.$MSVCVer.$MSVCSubVer;
+		if ($MSVCVer > 6) {
+			push @{$PlatHash{MmpMacros}}, 'MSVCDOTNET';
+		}
+	}
+	if ($PlatHash{Compiler} eq 'ARMCC') {
+		my ($MajVer, $MinVer) = RVCT_plat2set::get_version_list($Candidate);
+		push @{$PlatHash{MmpMacros}}, 'ARMCC_'.$MajVer;
+		push @{$PlatHash{MmpMacros}}, 'ARMCC_'.$MajVer.'_'.$MinVer;
+	}
+	
+	if ($PlatHash{Compiler} eq 'X86GCC') {	
+			push @{$PlatHash{MmpMacros}}, 'GCC32';
+	}
+
+	## TOOLS2 Specific Macros ##
+	
+	if ($PlatHash{Compiler} eq 'GCC32') {
+		push @{$PlatHash{MmpMacros}}, 'MINGW32';
+		push @{$PlatHash{MmpMacros}}, '_STLP_LITTLE_ENDIAN';
+		
+	}
+
+    # add GCCXML to the mmp macro list, so we can filter out stuff in bld.inf files and mmps.
+    # note that this mean that __GCCXML__ is automacally routed to makefile, so we can take out explicit call. 
+    if( $PlatHash{Name} eq "GCCXML") {
+        push @{$PlatHash{MmpMacros}}, 'GCCXML';
+    }
+	
+# add specific platform macros for platforms customising others.
+	if (Plat_Customizes($PlatHash{Name})) {
+		push @{$PlatHash{MmpMacros}}, $PlatHash{Name} unless grep /$PlatHash{Name}/, @{$PlatHash{MmpMacros}};
+	}
+
+# compilation macros
+	@{$PlatHash{Macros}}=@EpocMacros;
+	foreach (@{$PlatHash{MmpMacros}}) {
+		## If STLP_LTTLE_ENDIAN is used, then dont append __ to the macro name ##
+		if ($_ =~ m/STLP_LITTLE_ENDIAN/) {
+			push @{$PlatHash{Macros}}, $_;
+		} else {
+		push @{$PlatHash{Macros}}, '__'.$_.'__';
+		}
+	}
+
+#	extra special .MMP macros which aren't applied for compilation
+	if ($PlatHash{Generic}) {
+		push @{$PlatHash{MmpMacros}}, "GENERIC_$PlatHash{CPU}";
+		if ($PlatHash{CPU} eq 'MARM') {
+#			we can't define this for ASSP platforms because we won't be sure what
+#			the ABI is until we've processed the .MMP file
+			push @{$PlatHash{MmpMacros}}, "MARM_$PlatHash{ABI}";
+		}
+	}
+
+# builds
+	@{$PlatHash{Blds}}=@{$BldLists{$PlatHash{OS}}};
+
+# output some information
+	if ($Mode{Verbose}) {
+		print
+			"Platform         $PlatHash{Name}\n",
+			"Real Name        $PlatHash{Real}\n",
+			"Compiler         $PlatHash{Compiler}\n",
+			"OS               $PlatHash{OS}\n",
+			"CPU              $PlatHash{CPU}\n",
+			"ASSP             $PlatHash{ASSP}\n",
+			"ABI              $PlatHash{ABI}\n",
+			"ASSPABI          $PlatHash{ASSPABI}\n",
+			"Makefile Module  $PlatHash{MakeMod}\n",
+			"Makefile Type    $PlatHash{MakeCmd}\n",
+			"MMP Macros       @{$PlatHash{MmpMacros}}\n",
+			"Macros           @{$PlatHash{Macros}}\n",
+			"Blds             @{$PlatHash{Blds}}\n"
+		;
+	}
+
+	%{$PlatHash_ref}=%PlatHash;
+	%{$BldMacrosHash_ref}=%BldMacros;
+}
+
+sub Plat_List () {
+
+#	Include the list of BPABI platforms
+	&Set_Plat;
+
+#	return list of supported platforms
+
+	#sort keys %Plat;
+	my @PlatList;
+	my $Key;
+	foreach $Key (keys %Plat) {
+		if (!$variantABIV2Keyword && $Key =~ /^armv5_abiv1$/i) {
+			$Key = 'ARMV5';
+		}
+		unless (grep /^$Key$/i, @PlatList) {
+			push @PlatList, $Key;
+		}
+	}
+	return @PlatList
+}
+
+sub Plat_AssocIDE ($$) {
+#	return the IDE associated with a "Real" platform if there is one
+	my ($Candidate, $AssocIDEs)=@_;
+
+	unless (defined $Plat{$Candidate}) {
+		die "ERROR: Platform \"$Candidate\" not supported\n";
+	}
+
+	my $Key;
+	foreach $Key (keys %Plat) {
+		if (${Plat{$Key}}{Real}) {
+			if (${Plat{$Key}}{Real} eq $Candidate) {
+				push @$AssocIDEs, $Key;
+			}
+		}
+	}
+}
+
+1;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/platform/e32variant.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,157 @@
+# Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+package E32Variant;
+
+require Exporter;
+
+@ISA = qw(Exporter);
+
+@EXPORT = qw(Variant_GetMacroList Variant_GetMacroHRHFile Variant_GetMacro);
+
+use strict;
+use Pathutl;
+
+# using $FindBin::Bin to figure out the location of the epoc32\tools directory as 
+# IDE doesn't understand env{EPOCROOT}
+
+my $PerlBinPath;	# fully qualified pathname of the directory containing this script
+
+BEGIN {
+	require 5.005_03;		# check user has a version of perl that will cope
+	$PerlBinPath = $FindBin::Bin;	# X:/epoc32/tools
+	$PerlBinPath =~ s/\//\\/g;	# X:\epoc32\tools
+}
+
+# get epocroot if it is set
+my $epocroot = $ENV{EPOCROOT};
+my $toolspath;
+
+#if epocroot is not set figure it out
+if(!$epocroot){
+    $epocroot = $PerlBinPath . "\\..\\..\\" ; #infer epocroot
+    $toolspath = $PerlBinPath;
+}else{
+    $toolspath = $epocroot . "epoc32\\tools\\";
+}
+
+$epocroot=~s/^(.:)//io;    # remove drive letter
+$epocroot=&Path_Strip($epocroot); # collapse
+
+my $cfgFile =  $toolspath . "variant\\variant.cfg"; # default location
+$cfgFile =~ /^(.:)/i; # match the drive
+my $MacroHRHLocation_Drive = lc($1); # save the drive 
+
+sub Variant_GetMacroHRHFile{
+    my $file;
+    if(-e $cfgFile){
+	open(FILE, $cfgFile) || die "\nCould not open: " . $cfgFile ."\n";
+	while (<FILE>) {
+	    # strip comments
+	    s/^([^#]*)#.*$/$1/o;
+	    # skip blank lines
+	    if (/^\s*$/o) {
+		next;
+	    }
+	    # get the hrh file
+	    if($_ =~ /\.hrh/xi){
+		$file = $_; 
+		last;
+	    }
+	}
+	close FILE;
+	die "\nERROR: No variant file specified in $cfgFile!\n" unless $file;
+	$file =~ s/\s+//g;
+	$file=~s/^(.:)//io;    # remove drive letter
+	my $paths_drive = lc($1);
+
+	$file = Path_MakeEAbs($epocroot."EPOC32\\", $epocroot, $file); # assume relative to EPOCROOT
+
+	if($paths_drive){
+	    die "\nERROR: Variant file specified in $cfgFile is not on the same drive as \\epoc32\\\n" 
+		unless ($paths_drive eq $MacroHRHLocation_Drive);
+	}
+	if(!(-e $file)) {
+	    die "\nERROR: $cfgFile specifies $file which doesn't exist!\n";
+	}
+
+	# make sure it is in dos syntax
+	$file=~ s/\//\\/g;
+    }
+    return $file;
+}
+
+
+# returns the variant specific macro definitions as a list
+sub Variant_GetMacroList{
+
+    my @macros = ();
+    my $vfile = Variant_GetMacroHRHFile();
+    
+    if($vfile)
+    {
+	my $VariantFilePath = Path_Split('Path',$vfile);
+	chop( $VariantFilePath );
+	$VariantFilePath = &Path_PrefixWithDriveAndQuote($VariantFilePath);
+	$vfile = &Path_PrefixWithDriveAndQuote($vfile);
+	my $e32Path = &Path_PrefixWithDriveAndQuote($epocroot."epoc32\\include");
+	
+	open CPPPIPE,"cpp -I $e32Path -I $VariantFilePath -undef -dM $vfile |" or die "ERROR: Can't invoke CPP.EXE\n";
+	while(<CPPPIPE>){
+	    if($_ =~ /(\#define)(\s+)(.+)/){
+		push @macros, $3;
+	    }
+	}
+	close CPPPIPE;
+    }
+    return @macros;
+}
+
+sub Variant_GetMacro{
+
+    my $file;
+    if(-e $cfgFile){
+	open(FILE, $cfgFile) || die "\nCould not open: " . $cfgFile ."\n";
+	while (<FILE>) {
+	    # strip comments
+	    s/^([^#]*)#.*$/$1/o;
+	    # skip blank lines
+	    if (/^\s*$/o) {
+		next;
+	    }
+	    # get the hrh file
+	    if($_ =~ /^ENABLE_ABIV2_MODE$/xi){
+		close FILE;
+		return 1;
+	    }
+	}
+	close FILE;
+    }
+    return 0;
+}
+
+1;
+
+
+
+
+
+
+
+
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/platform/extractvars.make	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,44 @@
+# Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+
+include $(CONFIG_FILE)
+
+all:
+	echo PREFIXFILE=$(PREFIXFILE)
+	echo VFP2MODE_OPTION=$(VFP2MODE_OPTION)
+	echo UNDEFINED_SYMBOL_REF_OPTION=$(UNDEFINED_SYMBOL_REF_OPTION)
+	echo PREINCLUDE_OPTION=$(PREINCLUDE_OPTION)
+	echo PREINCLUDE_OPTION_FCLOGGER=$(PREINCLUDE_OPTION_FCLOGGER)
+	echo VFP2MODE_OPTION=$(VFP2MODE_OPTION)
+	echo TRANASM=$(TRANASM)
+	echo RUNTIME_LIBS_LIST=$(RUNTIME_LIBS_LIST)
+	echo COMPILER_INCLUDE_PATH=$(COMPILER_INCLUDE_PATH)
+	echo VERSION=$(VERSION)
+	echo VERSION_INFO=$(VERSION_INFO)
+	echo COMPILER_PLAT=$(COMPILER_PLAT)
+	echo FC_LOGGER_INCLUDE_OPTION=$(FC_LOGGER_INCLUDE_OPTION)
+	echo FC_LOGGER_DICTIONARY_FILE_NAME=$(FC_LOGGER_DICTIONARY_FILE_NAME)
+	echo FC_LOGGER_GENERATED_C_FILE_NAME=$(FC_LOGGER_GENERATED_C_FILE_NAME)
+	echo COMMANDFILE_OPTION=$(COMMANDFILE_OPTION)
+	echo VIA_FILE_PREFIX=$(VIA_FILE_PREFIX)
+	echo VIA_FILE_SUFFIX=$(VIA_FILE_SUFFIX)
+	echo STATIC_LIBS_LIST=$(STATIC_LIBS_LIST)
+	echo STATIC_LIBRARY_PATH=$(STATIC_LIBRARY_PATH)
+	echo STATIC_LIBS=$(STATIC_LIBS)
+	echo OE_EXE_LIBS=$(OE_EXE_LIBS)
+	echo OE_EXE_LIBS_WCHAR=$(OE_EXE_LIBS_WCHAR)
+	echo OE_IMPORT_LIBS=$(OE_IMPORT_LIBS)
+	echo OPTION_PREFIX=$(OPTION_PREFIX)
+	echo CCFLAGS=$(CCFLAGS)
+	echo SYM_NEW_LIB=$(SYM_NEW_LIB)
+	echo OE_NEW_LIB=$(OE_NEW_LIB)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/platform/fcloggerutl.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,55 @@
+# Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# FC_LOGGER.PM
+# 
+#
+
+package FCLoggerUTL;
+
+require Exporter;
+@ISA=qw(Exporter);
+@EXPORT=qw(
+	PMCheckFCLoggerVersion
+);
+
+#Function Call Logger
+sub PMCheckFCLoggerVersion() {
+	my $exe=$ENV{EPOCROOT}."epoc32\\tools\\fc_logger\\edgcpfe.exe";
+	#Check if file exists
+	if (not -e $exe) {
+		print "WARNING: File doesn't exist $exe \n";
+		return 0;
+	}
+
+	open FCLPIPE, "$exe -v 2>&1 |";
+	# Read all output from file into array
+	my @lines=<FCLPIPE>;
+	chomp @lines;
+	# combine into single string with each line starting with a :
+	my $line=join(":", "", @lines);
+	close FCLPIPE;
+
+	if ($line =~ m/version\s([0-9\.]+)/) {
+		my $Version      = $1;
+		$Version		 =~ m/(\d+)\.(\d+)\.?([\d+])?/;
+		my $MajorVersion = $1;
+		my $MinorVersion = $2;
+		my $PatchLevel   = $3;
+		if ($MajorVersion<3 or $MinorVersion<7) {
+			print "WARNING: $exe version is less than 3.7.1. The -logfc option will be ignored.\n";
+			return 0;
+		}
+	}
+	return 1;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/platform/filenamepolicyexclusions.txt	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,59 @@
+OMX_Audio.h
+OMX_Component.h
+OMX_ContentPipe.h
+OMX_Core.h
+OMX_Image.h
+OMX_Index.h
+OMX_IVCommon.h
+OMX_Loader.h
+OMX_Other.h
+OMX_Types.h
+OMX_Video.h
+EGL
+EGL/egl.h
+EGL/egltypes.h
+EGL/egluids.hrh
+GLES
+GLES/egldisplayproperty.h
+GLES/egldisplaypropertydef.h
+GLES/egltypes.h
+GLES/legacy_egl_1_1/egl.h
+GLES/legacy_egl_1_1/egltypes.h
+GLES/gl.h
+GLES/glext.h
+GLES/glplatform.h
+GLES/glextplatform.h
+GLES/openglesuids.hrh
+GLES/egl.h
+GLES/egldisplayproperty.h
+GLES/egldisplaypropertydef.h
+GLES2
+GLES2/gl2.h
+GLES2/gl2ext.h
+GLES2/gl2platform.h
+GLES2/gl2extplatform.h
+GLES2/openglesuids.hrh
+VG
+VG/openvg.h
+VG/vgu.h
+VG/openvguids.hrh
+VG/1.0/openvg.h
+VG/1.0/vgu.h
+VG/1.1/openvg.h
+VG/1.1/vgu.h
+libEGL.dll
+libEGL.lib
+libGLESv1.dll
+libGLESv1.lib
+libGLESv2.dll
+libGLESv2.lib
+libGLES_CM.dll
+libGLES_CM.lib
+libGLES_CM10.dll
+libGLES_CM10.lib
+libGLESv1_CM.dll
+libGLESv1_CM.lib
+libOpenVG.dll
+libOpenVG.lib
+libOpenVGU.dll
+libOpenVGU.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/platform/findimp.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,77 @@
+# Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+my $argc=scalar(@ARGV);
+$argc==2 or die "findimp <map file> <output file>\n";
+my $infile=@ARGV[0];
+my $outfile=@ARGV[1];
+
+my @imp_dll_names;
+my @imp_dll_ordinal_lists;
+my $i=0;
+open INFILE, $infile or die "Can't open input file $infile\n";
+while (<INFILE>) {
+	if (/^\s*(\d+)\:(([0-9|a-f|A-F])+)\s+__imp_(\S+)\s+(([0-9|a-f|A-F])+)\s+(\S+?)\:(.*?)\s*$/) {
+		my $section_num=$1;
+		my $section_offset=hex $2;
+		my $import_name="__imp_$4";
+		my $addr=$5;
+		my $dllname=$8;
+		my $implist;
+		for ($i=0; $i<scalar(@imp_dll_names); ++$i) {
+			if ($imp_dll_names[$i] eq $dllname) {
+				$implist=$imp_dll_ordinal_lists[$i];
+				push @$implist, $section_offset;				
+				last;
+			}
+		}
+		if ($i==scalar(@imp_dll_names)) {
+			my @new_list;
+			push @new_list, $section_offset;
+			push @imp_dll_names, $dllname;
+			push @imp_dll_ordinal_lists, \@new_list;
+		}
+	}
+}
+close INFILE;
+my $noffset=4;
+my $n_imp_dlls=scalar(@imp_dll_names);
+for ($i=0; $i<$n_imp_dlls; ++$i) {
+	$noffset+=8;
+	my $implist=$imp_dll_ordinal_lists[$i];
+	foreach (@$implist) {
+		$noffset+=4;
+	}
+}
+open OUTFILE, ">$outfile" or die "Can't open output file $outfile\n";
+binmode OUTFILE;
+printf OUTFILE "%c%c%c%c",$n_imp_dlls&0xff,($n_imp_dlls>>8)&0xff,($n_imp_dlls>>16)&0xff,$n_imp_dlls>>24;
+$i=0;
+for ($i=0; $i<$n_imp_dlls; ++$i) {
+	my $nlen=length $imp_dll_names[$i];
+	printf OUTFILE "%c%c%c%c",$noffset&0xff,($noffset>>8)&0xff,($noffset>>16)&0xff,$noffset>>24;
+	$noffset+=$nlen + 1;
+	my $implist=$imp_dll_ordinal_lists[$i];
+	my $nimp=scalar(@$implist);
+	printf OUTFILE "%c%c%c%c",$nimp&0xff,($nimp>>8)&0xff,($nimp>>16)&0xff,$nimp>>24;
+	foreach (@$implist) {
+		printf OUTFILE "%c%c%c%c",$_&0xff,($_>>8)&0xff,($_>>16)&0xff,$_>>24;
+	}
+}
+for ($i=0; $i<$n_imp_dlls; ++$i) {
+	print OUTFILE $imp_dll_names[$i];
+	printf OUTFILE "%c",0;
+}
+close OUTFILE;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/platform/ide_cw.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,4518 @@
+# Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Makmake-module for creating XML files which can be imported as CodeWarrior IDE projects
+# 
+#
+
+package Ide_cw;
+
+my $CW_minimum_supported_version = 2.8;
+
+# declare variables global for module
+my $BaseAddress="";
+my %IdeBlds=();
+my %PrjHdrs=();
+my @Win32LibList=();
+my $Win32Resrc;
+my $Win32StdHeaders;
+
+my $ExtraFilesPath="";
+my @KnownRoots=();
+
+my @addedFiles=();
+my $addHeaders = 1;
+my $addDocuments = 1;
+
+my %processedPlatforms;
+
+require Exporter;
+@ISA=qw(Exporter);
+
+@EXPORT=qw(
+	PMHelp_Mmp
+
+	PMCheckPlatformL
+
+	PMPlatProcessMmp
+
+	PMStartBldList
+		PMBld
+			PMResrcBld
+
+	PMEndSrcList
+);
+
+require Cl_bpabi;
+use strict;
+use BPABIutl;
+use E32Variant;
+use E32Plat; 
+use Winutl;
+use Armutl;
+use Pathutl;
+use Win32API::Registry qw( :ALL );
+use Preprocessor;
+use RVCT_plat2set;
+
+sub PMHelp_Mmp {
+	&Winutl_Help_Mmp;
+}
+
+my $RVCTMajorVersion = Armutl_RVCTMajorVersion();
+my $RVCTMinorVersion = Armutl_RVCTMinorVersion();
+my $RVCTVersion = "${RVCTMajorVersion}_${RVCTMinorVersion}";
+
+my $oP = "--";
+$oP = "-" if ($RVCTMajorVersion == 2 && $RVCTMinorVersion < 2);
+
+my $cfgMacro = &Variant_GetMacro();
+
+use FindBin;
+use lib $FindBin::Bin."\\perllib";
+
+#use the DOM xml module
+use XML::DOM;
+
+my $projectTemplate;
+my $linkDescriptorTemplate;
+
+my $xmlParser;
+my $xmlProjectDoc;
+my $xmlLinkDescriptorDoc;
+my $xmlLinkDescriptorCommandParent;
+my $xmlLinkDescriptorSymbolParent;
+my $xmlLinkDescriptorDumpFileParent;
+
+my $xmlLinkOrder;		# for accumulating the link order
+my $xmlFileList;		# for accumulating the file list
+my $xmlSourceGroup;		# for accumulating the source
+my $xmlHeadersGroup;	# for accumulating local header files
+my $xmlRootGroup;		# for accumulating files to be added outside of project groups
+my $xmlLinkGroup;		# for accumulating the link descriptor files
+my $xmlLibGroup;		# for accumulating the libraries
+my $xmlResourcesGroup;	# for accumulating resource related files
+my $xmlDocumentsGroup;	# for accumulating supported files specified with DOCUMENT in the .mmp file
+
+my $MmpFile;
+my $VariantFile;
+my $PrefixFile;
+
+my $CW_major_version;
+my $CW_minor_version;
+my $CW_libpath;
+my @CW_librarypath;
+my @ToolChainLibList;
+
+# Hash to store configuration makefile data for furthur processing
+my %configdata;
+
+sub RoundUp1k($) {
+	# Accept C hexadecimal number (0xNNN).  Convert argument to Kb
+	# rounded up to the next 1kb boundary.
+	use integer;
+	return (hex($_[0]) + 1023) / 1024;
+}
+
+use Genutl;
+use cl_generic;
+
+my $ToolPrefix='';
+my $HelperLib='';
+my %PlatOpt=(
+	'Dlltool'=>'',
+	'Entry'=>'-e',
+	'Gcc'=>'',
+	'Ld'=>'',
+	'Petran'=>'',
+	'Optimize'=>'-O'
+);
+my $Dlltool;
+my $Archive;
+my $Link;
+my $Objcopy;
+
+my %CompatibleABIs=(
+	ARMI=>['ARM4', 'THUMB'],
+	ARM4=>['ARMI'],
+	THUMB=>['ARMI'],
+	ARMV5=>['ARMV5_ABIV1'],
+	GCCE=>['GCCE'],
+	BPABI=>['ARMV5_ABIV2']
+);
+my @CompatibleABIs;
+
+my $Makecmd;
+my %ABILibPath=();
+
+sub SystemTarget() {
+	return 1 if &main::SystemTrg;
+	my $ExportLibrary=&main::ExportLibrary;
+	# N.B. should get better way to detect kernel probably!!
+	return 1 if ($ExportLibrary =~ /EKERN/i);
+	
+	return 0;
+}
+
+sub SysTrg () {
+	return 1 if &main::SystemTrg;
+	my $ExportLibrary=&main::ExportLibrary;
+	return 1 if ($ExportLibrary =~ /EKERN/i);
+	my $Trg=&main::Trg;
+	return 1 if ($Trg =~ /KSRT/i);
+	return 0;
+}
+
+sub PMUnderlyingABI($) {
+	my ($ABI) = @_;
+	if ($ABI eq 'ARM4T') {
+		if (&main::BuildAsARM) {
+			return 'ARMI';
+		}
+		elsif (SystemTarget()) {
+			return 'ARM4';
+		}
+		else {
+			return 'ARMV4';
+		}
+	}
+	return $ABI;
+}
+
+##### ARMV5 specific options #####
+my $diag_suppressions;
+my $diag_warnings;
+my $diag_errors;
+
+#The options here are handcoded for ABIV1 mode.
+my $contingentOptions;
+my $exceptions = ' --exceptions --exceptions_unwind';
+my $thumbOptions = '--thumb ';
+my $armOptions = '--arm ';
+my $kernelOptions = '--arm --no_exceptions --no_exceptions_unwind';
+my $invariantOptions = 
+  '--cpu 5T --enum_is_int -Ono_known_library --fpmode ieee_no_fenv --export_all_vtbl --no_vfe --apcs /inter';
+$invariantOptions .= ' --dllimport_runtime' unless ($RVCTMajorVersion == 2 && $RVCTMinorVersion < 2);  
+# specify floating point model here
+my $floatingpointmodel = "softvfp";
+if (&main::ARMFPU && (&main::ARMFPU =~ /^VFPV2$/i)) {
+	$floatingpointmodel = "vfpv2";
+}
+my $floatingpoint = ' --fpu '.$floatingpointmodel.'';
+
+# Set compiler settings
+$diag_suppressions = '--diag_suppress 66,161,611,654,997,1152,1300,1464,1488,6318,6331';
+$diag_warnings = '';
+$diag_errors = '--diag_error 1267';
+my $commonOptions = "$diag_suppressions $diag_warnings $diag_errors";  
+# variables added to fetch the options from the BSF files
+my @commonOptions;
+my @thumbOptions;
+my @armOptions;
+my @kernelOptions;
+my @invariantOptions;
+my @linkerOptions;
+my @archiverOptions;
+
+my $linkCommand = "";		
+# variables to process and store the default and BSF file options
+my $invopts = $invariantOptions;
+my $linkeropts;
+my $archiveropts;
+#varible to store the BSF add options
+my $bsfaddoptions = undef;
+#variable to store the compiler flags, defs and other options
+my $CCFLAGS = undef;
+my $CCDEFS = undef;
+my $CCUREL = undef;
+my $CCUDEB = undef;
+
+
+#GCCE specific OPIONS
+
+my $GCCE_CompilerOption = '-march=armv5t -mthumb-interwork -mapcs';
+$GCCE_CompilerOption .= " -msoft-float -fexceptions -pipe -nostdinc -Wall -Wno-ctor-dtor-privacy -Wno-unknown-pragmas";
+#Flag to check for the customized GCCE platform
+my $CustGCCE=0;
+#Variable to fetch the Customized platform
+my %CustPlat=&main::PlatRec;
+#Flags to read the options
+my $kernelOption=0;
+my $buildAsArmOption=0;
+my $thumbOption=0;
+
+
+my $ArmIncDir;
+my @ArmLibList;
+my $ArmRT;
+
+my %BSF_keywords = (
+		    COMMON_OPTIONS => 1,
+		    THUMB_OPTIONS => 1,
+		    ARM_OPTIONS => 1,
+		    KERNEL_OPTIONS => 1,
+		    INVARIANT_OPTIONS => 1,
+			LD_OPTIONS => 1,
+			AR_OPTIONS => 1
+		   );
+sub PMStartBldList($) 
+{
+	($Makecmd) = @_;
+	my @BldList=&main::BldList;
+	my $BasicTrgType=&main::BasicTrgType;
+	my $ABI=&main::ABI;
+	my $kernelOption=0;
+	my $buildAsArmOption=0;
+	my $thumbOption=0;
+	my @MacroList=&main::MacroList();
+	push @MacroList, "__SUPPORT_CPP_EXCEPTIONS__ ";
+	my %plat = &main::PlatRec();
+
+	$CCFLAGS = "";
+	$CCDEFS = "";
+	$CCUREL = "";
+	$CCUDEB = "";
+	
+	$VariantFile=&main::VariantFile();	
+
+	#read the configuration make file into the hash for only the BPABI platforms
+	my $config_file = BPABIutl_Config_Path(&main::Plat);
+	if ($config_file) {
+		collect_config_data($config_file);
+	}
+		
+	Read_BSF_Options() if ($plat{'CUSTOMIZES'});
+
+	if (SysTrg()) {
+		$kernelOption=1;
+	} elsif (main::BuildAsARM() or ($ABI eq 'ARMV4')) {
+		$buildAsArmOption=1;
+	} else {
+		$thumbOption=1;
+	}
+
+	my $OtherOpts = undef;
+	my $toolchain = $configdata{COMPILER_PLAT};
+	
+	$OtherOpts = &main::CompilerOption($toolchain);
+	
+	if($kernelOption==1)
+	{
+		if(@kernelOptions) {
+# Kernel options as read from BSF file (KERNEL_OPTIONS keyword)
+			Set_BSF_Options('KERNEL_OPTIONS',\@kernelOptions);
+		}
+		$OtherOpts .= " ".fetch_config_data($configdata{KERNEL_OPTIONS});
+	}
+	elsif($buildAsArmOption==1)
+	{	
+		if(@armOptions) {
+# Arm options as read from BSF file (ARM_OPTIONS keyword)
+			Set_BSF_Options('ARM_OPTIONS',\@armOptions);
+		}
+		$OtherOpts .= " ".fetch_config_data($configdata{ARM_OPTIONS});	
+	}
+	elsif($thumbOption==1)
+	{
+		if(@thumbOptions) {
+# Thumb options as read from BSF file (THUMB_OPTIONS keyword)
+			Set_BSF_Options('THUMB_OPTIONS',\@thumbOptions);
+		}
+		$OtherOpts .= " ".fetch_config_data($configdata{THUMB_OPTIONS});
+	}
+	
+	if($thumbOption==1 || $buildAsArmOption==1)
+	{
+		if (&main::ARMFPU && (&main::ARMFPU =~ /^VFPV2$/i))
+		{
+			$OtherOpts .= "	".$configdata{VFP2MODE_OPTION};
+		}
+		else
+		{
+			$OtherOpts .= "	".$configdata{SOFTVFPMODE_OPTION};
+		}
+	}
+
+	if ($thumbOption==1)
+	{
+		$OtherOpts .= "	".$configdata{COMPILER_THUMB_DEFINES};
+	}
+	
+	$OtherOpts .= "	".$configdata{COMPILER_INTERWORK_DEFINES};
+	
+	if((&main::Plat eq "ARMV5_ABIV1") || (&main::Plat eq "ARMV5" && !$cfgMacro)
+	|| ($CustPlat{'CUSTOMIZES'} 
+	&& (($CustPlat{'ROOTPLATNAME'} eq "ARMV5_ABIV1" && $cfgMacro) 
+	|| ($CustPlat{'ROOTPLATNAME'} eq "ARMV5" && !$cfgMacro)))) {
+		ComputeCompilerOpts();
+	}
+	elsif($config_file) {
+		$CCFLAGS = &Cl_bpabi::getConfigVariable('CCFLAGS');
+	}
+	$CCFLAGS .= $OtherOpts;
+
+	if(@invariantOptions)
+	{
+	# Invariant options as read from BSF file (INVARIANT_OPTIONS keyword)
+		Set_BSF_Options('INVARIANT_OPTIONS',\@invariantOptions);
+	}
+	if(@commonOptions)
+	{
+	# Common options as read from BSF file (COMMON_OPTIONS keyword)
+		Set_BSF_Options('COMMON_OPTIONS',\@commonOptions);
+	}
+	if(@linkerOptions)
+	{
+	# Invariant options as read from BSF file (LD_OPTIONS keyword)
+		Set_BSF_Options('LD_OPTIONS',\@linkerOptions);
+	}
+	if ($BasicTrgType=~/^LIB$/o) {
+		if(@archiverOptions)
+		{
+		# Invariant options as read from BSF file (AR_OPTIONS keyword)
+			Set_BSF_Options('AR_OPTIONS',\@archiverOptions);
+		}	
+	}
+
+	if($bsfaddoptions)
+	{
+		fixbsfoptions($bsfaddoptions);
+	}
+	$CCFLAGS .= $bsfaddoptions;
+	$CCDEFS = $configdata{COMPILER_DEFINES};
+	$CCDEFS .= printlist("-D", @MacroList);
+	$CCDEFS .= $configdata{PLATFORM_DEFINES};
+
+	if($kernelOption==1)
+	{
+		$CCDEFS .= -D__KERNEL_MODE__;
+	}
+	
+	if($VariantFile) { 
+		$CCDEFS .= " -D__PRODUCT_INCLUDE__="."\\\"".&main::Path_Split('File',$VariantFile)."\\\"";
+	}
+	
+	foreach (@BldList) 
+	{
+		if($kernelOption == 0)
+		{
+			if (/DEB$/o) {
+				$CCUDEB .= " ".$configdata{EXCEPTIONS};
+			}
+			else {
+				$CCUREL .= " ".$configdata{EXCEPTIONS};
+			}
+		}
+		#collect the options and macro's depending on the whether it is a UREL or UDEB		
+		my @ml = &main::MacroList($_);
+		if (/DEB$/o) {
+			$CCUDEB .= " ".$CCFLAGS;
+			$CCUDEB .= printlist("-D", @ml);
+			$CCUDEB .= " ".$CCDEFS;
+		}
+		else {
+			$CCUREL .= " ".$CCFLAGS;
+			$CCUREL .= printlist("-D", @ml);
+			$CCUREL .= " ".$CCDEFS;
+		}
+	}
+}
+
+sub ComputeCompilerOpts() {
+	my %plat = &main::PlatRec();
+	my $ABI=&main::ABI;
+	my $TrgType=&main::TrgType;
+
+	if (SysTrg()) {
+	        $contingentOptions = $kernelOptions;
+        } elsif (main::BuildAsARM() or ($ABI eq 'ARMV4')) {
+	        $contingentOptions = $armOptions.$floatingpoint.$exceptions;
+	    } else {
+			$contingentOptions = $thumbOptions.$floatingpoint.$exceptions.' -D__MARM_THUMB__';	
+	}
+	# change support for ARMV4
+	if ($ABI eq 'ARMV4') {
+		$invopts =~ s/5T/4/;
+		$invopts =~ s/inter/nointer/;
+	} else {
+		$contingentOptions .= ' -D__MARM_INTERWORK__';
+	}
+	$CCFLAGS = $commonOptions.' '.$contingentOptions.' '.$invopts.' -c '.' '.&main::CompilerOption("ARMCC");
+}
+
+sub GetMajorVersion ($)
+	{
+	my ($versionString) = @_;
+
+	if ($versionString =~ /^\d\.\d\.\d$/)
+		{
+		$versionString =~ s/\.\d$//;
+		}
+
+	return $versionString;
+	}
+
+sub GetMinorVersion ($)
+	{
+	my ($versionString) = @_;
+
+	if ($versionString =~ /^\d\.\d\.\d$/)
+		{
+		$versionString =~ s/^\d\.\d\.//;
+		}
+	else
+		{
+		$versionString = 0;
+		}
+
+	return $versionString;
+	}
+
+sub PMCheckPlatformL {
+
+	# check version of CodeWarrior for Symbian OS
+
+	my @compatibleCWInstallations;
+
+	$CW_major_version = 0;
+	$CW_minor_version = 0;
+
+	my $minimumMajorVersion = GetMajorVersion ($CW_minimum_supported_version);
+	my $minimumMinorVersion = GetMinorVersion ($CW_minimum_supported_version);
+
+	if (defined $ENV{CW_SYMBIAN_VERSION})
+		{
+		# CW_SYMBIAN_VERSION is set - either MAKMAKE is being executed by an IDE's .mmp Importer,
+		# or the user is specifying a specific CW version to target from the command line.
+		# Either way, we've been given a single version to target, so we attempt to do just that.
+
+		$CW_major_version = GetMajorVersion ($ENV{CW_SYMBIAN_VERSION});
+		$CW_minor_version = GetMinorVersion ($ENV{CW_SYMBIAN_VERSION});
+		
+		push @compatibleCWInstallations, $ENV{CW_SYMBIAN_VERSION};
+		}
+	else
+		{
+		# CW_SYMBIAN_VERSION isn't set - either MAKMAKE is being executed by a pre-OEM3.0 IDE .mmp
+		# Importer or from the command line.  Either way, we delve into the registry and attempt to
+		# target the latest CW for Symbian OS installed, recording all CW for Symbian OS installations
+		# too.
+
+		my $regKeyHandle;
+		my $topLevelKey = HKEY_LOCAL_MACHINE;
+		my $productVersionKey = 'SOFTWARE\\Metrowerks\\CodeWarrior\\Product Versions';
+
+		if (!RegOpenKeyEx($topLevelKey, $productVersionKey, 0, KEY_READ, $regKeyHandle))
+			{		    		
+			die "Can't read \"HKEY_LOCAL_MACHINE\\$productVersionKey\" : ", regLastError(), "\n";
+		    }
+
+		my $subKeyIndex = 0;
+		my $subKeySize = 0;
+		my $subKeyName;
+
+		my @installedCWForSymbianKeys;
+
+		while (RegEnumKeyEx($regKeyHandle, $subKeyIndex, $subKeyName, $subKeySize, [], [], [], []))
+			{
+			push (@installedCWForSymbianKeys, $productVersionKey."\\".$subKeyName) unless ($subKeyName !~ /Symbian/);
+			$subKeyIndex++;
+			}
+
+		RegCloseKey($regKeyHandle) || print STDERR "WARNING: Could not close registry key.";
+
+		my $versionType;
+		my $versionValue;
+
+		foreach my $installedCWForSymbianKey (@installedCWForSymbianKeys)
+			{
+			if (!RegOpenKeyEx($topLevelKey, $installedCWForSymbianKey, 0, KEY_READ, $regKeyHandle))
+				{		    		
+				die "Can't read \"HKEY_LOCAL_MACHINE\\$installedCWForSymbianKey\" : ", regLastError(), "\n";
+			    }
+
+			if (!RegQueryValueEx($regKeyHandle, "VERSION", [], $versionType, $versionValue, []))
+				{
+				die "Can't read \"HKEY_LOCAL_MACHINE\\$installedCWForSymbianKey\\VERSION\" : ", regLastError(), "\n";
+				}
+
+			my $temp_major_version = GetMajorVersion ($versionValue);
+			my $temp_minor_version = GetMinorVersion ($versionValue);
+
+			if (($temp_major_version > $CW_major_version) ||
+				(($temp_minor_version > $CW_minor_version) &&
+				   ($temp_major_version >= $CW_major_version)))
+				{
+				$CW_major_version = $temp_major_version;
+				$CW_minor_version = $temp_minor_version;
+				}
+			
+			if (($temp_major_version > $minimumMajorVersion) ||
+				(($temp_minor_version > $minimumMinorVersion) &&
+				   ($temp_major_version >= $minimumMajorVersion)))
+				{
+				push @compatibleCWInstallations, $versionValue;
+				}
+
+			RegCloseKey($regKeyHandle);
+			}
+		}
+
+	# We've determined a CW version to target, now we validate if we actually support this
+
+	if (!$CW_major_version ||
+		($CW_major_version < $minimumMajorVersion) ||
+		(($CW_major_version >= $minimumMajorVersion) && ($CW_minor_version < $minimumMinorVersion)))
+		{
+		if (defined $ENV{CW_SYMBIAN_VERSION})
+			{
+			die "Error: CW_SYMBIAN_VERSION is set to $ENV{CW_SYMBIAN_VERSION}.\n       The minimum version supported by these tools is $CW_minimum_supported_version.\n";
+			}
+		else
+			{
+			die "ERROR: Unable to identify a compatible CodeWarrior for Symbian OS installation.\n";
+			}
+		}
+
+	if (@compatibleCWInstallations > 1)
+		{
+		my $targetVersion = $CW_major_version;
+		$targetVersion .= ".$CW_minor_version" if $CW_minor_version;
+			
+		print ("Info: More than one compatible CodeWarrior for Symbian OS installation has been detected.\n");
+		print ("      The generated project will target $targetVersion - to override this, set the CW_SYMBIAN_VERSION\n");
+		print ("      environment variable to the version number you wish to target and re-run this command.\n");
+		print ("      Supported version numbers detected : @compatibleCWInstallations.\n");
+		}
+	else
+		{
+		print ("Info: Detected CodeWarrior Version Major=$CW_major_version Minor=$CW_minor_version\n");
+		}
+
+	# CW version has been validated, tailor generated projects on this basis
+
+	$CW_libpath = 'Symbian_Support\Win32-x86 Support\Libraries\Win32 SDK';
+ 	push @CW_librarypath,$CW_libpath;
+ 	# Lib path to support the Carbide runtime libraries
+ 	$CW_libpath = 'Symbian_Support\Runtime\Runtime_x86\Runtime_Win32\Libs';
+ 	push @CW_librarypath,$CW_libpath;
+		
+	if ($CW_major_version == 2.8)
+		{
+		$projectTemplate = "CW_project_template_v3.xml";
+		$linkDescriptorTemplate = "cw_link_descriptor_template.cwlink";
+		}
+	else
+		{
+		$projectTemplate = "CW_project_template_v4.xml";
+		$linkDescriptorTemplate = "cw_link_descriptor_template_v2.cwlink";		
+		}
+		
+	$xmlParser = new XML::DOM::Parser; 
+	$xmlProjectDoc = $xmlParser->parsefile ($FindBin::Bin."\\$projectTemplate");
+}
+
+# Check if a platform is a customization
+sub IsCustomization($) {
+	my ($plat) = @_;
+	return 1 if (Plat_Customizes($plat));
+	return 0;
+}
+
+sub PMPlatProcessMmp (@) {
+	
+	my $currentPlat=&main::Plat;
+
+	return if ($processedPlatforms{$currentPlat});
+	$processedPlatforms{$currentPlat}=1;
+	@ToolChainLibList = &GetLibList;
+	my $TrgType=&main::TrgType;
+	if ($CustPlat{'CUSTOMIZES'} && ($CustPlat{'ROOTPLATNAME'} eq "GCCE"))
+	{
+		$CustGCCE=1;
+	}
+
+	if ($currentPlat =~ /^WINSCW$/)
+		{	
+		my $includes = $ENV{MWCWinx86Includes};
+		&Winutl_DoMmp_Parse(\@_, $includes);
+		@Win32LibList=&Winutl_Win32LibList;
+		$Win32Resrc=&Winutl_Win32Resrc;
+		$Win32StdHeaders=&Winutl_Win32StdHeaders;
+		$BaseAddress=&Winutl_BaseAddress unless ($TrgType eq 'EXE');
+		}
+	elsif ($currentPlat =~ /^ARMV5/ || IsCustomization($currentPlat))
+		{	
+		&Armutl_DoMmp(@_);
+		$ArmIncDir = &Armutl_ArmIncDir;
+		&main::SetStdIncPaths($ArmIncDir);
+		@ArmLibList = &Armutl_ArmLibList;
+		$ArmRT = &Armutl_ArmRT;
+		}
+
+	my $BaseTrg=&main::BaseTrg;
+	my $MakeFilePath=&main::MakeFilePath;
+	$MmpFile=&main::MmpFile;
+	$VariantFile=&main::VariantFile();		
+
+	# Set up the list of known roots
+
+	my $epocroot=&main::Path_Drive . &main::EPOCPath;
+	$epocroot =~ s/EPOC32\\$//i;
+
+	if ($currentPlat eq "GCCE" || $CustGCCE)
+	{
+		$PrefixFile=$epocroot.'epoc32\\include\\gcce\\gcce.h';
+	}
+	else
+	{
+		$PrefixFile=$epocroot.'epoc32\\include\\rvct'.$RVCTVersion.'\\rvct'.$RVCTVersion.'.h';
+	}
+	my $mmproot = &main::Path_Drive . &main::Path_Split('Path',$MmpFile);
+	my $mmprootname = "MMPDir";
+	my $mmpisglobal = 0;
+
+	if (defined $ENV{CW_ROOT_NAME})
+		{
+		# generate KnownRoots suitable for the IDE MMP importer
+		# This has a global source tree for EPOCROOT, and puts the
+		# project next to the MMP file
+
+		addKnownRoot($ENV{CW_ROOT_NAME}, 1, $epocroot, "");
+		$mmprootname = "Project";
+		$mmpisglobal = 1;
+		}
+	else
+		{
+		# generate KnownRoots suitable for command-line generated XML files
+		# We will add a user source tree for MMPDir and EPOCROOT, but can't use
+		# EPOCROOT for the OutputDirectory
+
+		addKnownRoot("EPOCROOT", 0, $epocroot, "");
+		}
+	addKnownRoot($mmprootname, $mmpisglobal, $mmproot, "");
+
+	# Allow for MMP files in component subdirectories by matching multiple levels
+	# up to get {MMPDir}..\whatever paths. Stop one level down from the root,
+	# since "everything on this drive" seems a bit extreme
+	#
+	my $tmppath = $mmproot;
+	my $dotdots = '';
+	while ($tmppath =~ /^(.:.+\\)[^\\]+\\$/i)
+		{
+		$tmppath = $1;
+		$dotdots .= "..\\";
+		addKnownRoot($mmprootname, $mmpisglobal, $tmppath, $dotdots);
+		}
+}
+
+sub findTarget($$$) {
+	my ($name,$platbld,$abibld) = @_;
+
+	my @targets = $xmlProjectDoc->getElementsByTagName("TARGET",1); 
+
+	foreach my $target (@targets)
+		{
+		
+		my $element = $target->getElementsByTagName("NAME",0)->item(0);
+		$element = $element->getFirstChild;
+		
+	#   here we want to get the plat build that is specified in the cw project tempalte
+	#   and not the abi build - there are more platbuilds than abibuilds so other targets
+	#   (e.g. GCCE) can get the wrong tempalte "NAME" (i.e. it will be ARMV5 rather than GCCE, which is not want we want)
+		if ($element->getData() =~ /$platbld$/)
+			{
+			
+			my $newtarget=$target->cloneNode(1);
+			$target->getParentNode()->appendChild($newtarget);
+			$element = $newtarget->getElementsByTagName("NAME",0)->item(0);
+			$element = $element->getFirstChild;
+			$element->setData("$platbld");
+			
+			# remember name as an attribute: this is removed before
+			# writing out the project.
+			$newtarget->setAttribute("NAME", "$platbld");
+			return $newtarget;
+			}
+			else
+			{
+				my $newtarget=$target->cloneNode(1);
+				my $newplat=&main::Plat." ".&main::Bld;
+				$target->getParentNode()->appendChild($newtarget);
+				$element = $newtarget->getElementsByTagName("NAME",0)->item(0);
+				$element = $element->getFirstChild;
+				$element->setData("$newplat");
+	 			
+				# remember name as an attribute: this is removed before
+				# writing out the project.
+				$newtarget->setAttribute("NAME", "$newplat");
+				return $newtarget;
+			}
+		}
+	return undef;
+}
+
+sub newList($$$) {
+	my ($target, $tag, $replace) = @_;
+
+	my $newlist = new XML::DOM::Element($xmlProjectDoc,$tag);
+	if ($replace==1)
+		{
+		my $elements = $target->getElementsByTagName($tag,0);
+		my $element = $elements->item(0);
+		$target->replaceChild($newlist, $element);
+		}
+	else
+		{
+		$target->appendChild($newlist);
+		}
+	return $newlist;
+}
+
+sub changeValue($$) {
+	my ($setting, $replacement) = @_;
+	my $value = $setting->getElementsByTagName("VALUE",0)->item(0);
+
+	if (defined $value)
+		{
+		if ($value->hasChildNodes)
+			{
+			$value->getFirstChild->setData($replacement);
+			}
+		else
+			{
+			$value->addText($replacement);
+			}
+		}
+}
+
+sub textSetting($$$$) {
+	my ($element,$name,$value,$insertionpoint)=@_;
+
+	my $setting = new XML::DOM::Element($xmlProjectDoc,"SETTING");
+	&textElement($setting, "NAME", $name);
+	&textElement($setting, "VALUE", $value);
+	$element->insertBefore($setting, $insertionpoint);
+	$element->addText("\n");
+}
+
+sub addKnownRoot($$$$) {
+	my ($rootname, $global, $rootpath, $pathprefix) = @_;
+	$rootpath=&main::Path_Chop($rootpath);
+	push @KnownRoots, [$rootname, $global, quotemeta($rootpath), $pathprefix];
+}
+
+sub addRootedPath($$$) {
+	my ($setting,$needglobal,$path) = @_;
+	my $root = "Absolute";
+
+	if ($path =~ /^\\/)
+		{
+		$path = &main::Path_Drive . $path;	# ensure it has a drive letter
+		}
+
+	foreach (@KnownRoots)
+		{
+		my ($rootname, $global, $rootpath, $pathprefix) = @{$_};
+
+		next if ($needglobal && !$global);
+		if ($path =~ /^$rootpath\\/i)
+			{			
+			$path =~ s/^$rootpath\\/$pathprefix/i;
+			$root = $rootname;
+			last;
+			}
+		}
+	$path=&main::Path_Chop($path);
+	if ($root eq "Absolute" && $path =~ /^(.:)$/)
+		{
+		$path .= "\\";
+		}
+
+	&textSetting($setting, "Path", $path);
+	&textSetting($setting, "PathFormat", "Windows");
+	&textSetting($setting, "PathRoot", $root);
+}
+
+sub changePathSetting($$$) {	
+	my ($setting,$global,$value) = @_;
+
+	my @oldstuff = $setting->getElementsByTagName("SETTING",0);
+	foreach my $old (@oldstuff)
+		{
+		&removeNode($old);
+		}
+
+	&addRootedPath($setting,$global,$value);
+}
+
+sub addSourceTrees($) {
+	my ($node) = @_;
+
+	my $element = $node->getElementsByTagName("VALUE",0)->item(0);
+	&removeNode($element) if (defined $element);
+
+	if (defined $ENV{CW_ROOT_NAME})
+		{
+		return;	# paths were converted to be relative to global source trees
+		}
+
+	my $sourcepath = new XML::DOM::Element($xmlProjectDoc,"SETTING");
+	$sourcepath->addText("\n");
+	&textSetting($sourcepath, "Name", "EPOCROOT");
+	&textSetting($sourcepath, "Kind", "AbsolutePath");
+
+	my $pathdata = new XML::DOM::Element($xmlProjectDoc,"SETTING");
+	&textElement($pathdata, "NAME", "Path"); 
+	$pathdata->addText("\n");
+
+	my $epocroot=&main::EPOCPath;
+	$epocroot =~ s/\\EPOC32\\$/\\/i;
+
+	&addRootedPath($pathdata, 1, $epocroot);
+
+	$sourcepath->appendChild($pathdata);
+	$node->appendChild($sourcepath);
+
+	my $mmproot = &main::Path_Split('Path',$MmpFile);
+	my $sourcepath2 = new XML::DOM::Element($xmlProjectDoc,"SETTING");
+	$sourcepath2->addText("\n");
+	&textSetting($sourcepath2, "Name", "MMPDir");
+	&textSetting($sourcepath2, "Kind", "AbsolutePath");
+
+	my $pathdata2 = new XML::DOM::Element($xmlProjectDoc,"SETTING");
+	&textElement($pathdata2, "NAME", "Path"); 
+	$pathdata2->addText("\n");
+	&addRootedPath($pathdata2, 1, $mmproot);
+
+	$sourcepath2->appendChild($pathdata2);
+	$node->appendChild($sourcepath2);
+
+}
+
+sub addUserSearchPaths($) {
+	my ($node) = @_;
+
+	my @elements = $node->getElementsByTagName("SETTING",0);
+	foreach (@elements)
+		{
+		&removeNode($_);
+		}
+
+	my %ordereddirs;
+	my @ordereddirlist=();
+	foreach my $dir (&main::UserIncPaths)
+		{
+		next if (!defined $dir);
+		$dir = &main::Path_Chop($dir)."\\";
+		my $key = uc $dir;
+		if (! defined($ordereddirs{$key}))
+			{
+			$ordereddirs{$key}=1;
+			push @ordereddirlist, $dir;
+			}
+		}
+
+	# now add the directories used to find source files
+	
+	my %dirs;
+	my $SourceStructRef=&main::SourceStructRef;
+	foreach my $SourceRef (@$SourceStructRef)
+		{
+		 $dirs{$$SourceRef{SrcPath}}=1;
+		}
+	my $DefFile = &main::DefFile;
+	if ($DefFile)
+		{			
+		$DefFile = &main::Path_Split('Path',$DefFile);
+		$dirs{$DefFile}=1;
+		}
+
+	my $MmpFilePath = &main::Path_Split('Path',$MmpFile);
+	$dirs{$MmpFilePath}=1;
+		
+	$dirs{$ExtraFilesPath}=1;
+		
+
+	foreach my $srcdir (sort keys %dirs)
+		{
+		if (!defined($ordereddirs{uc $srcdir}))
+			{
+			push @ordereddirlist, $srcdir;
+			}
+		}
+		
+	foreach my $srcdir (@ordereddirlist)
+		{
+		my $accesspath = new XML::DOM::Element($xmlProjectDoc,"SETTING");
+		$accesspath->addText("\n");
+		my $pathdata = new XML::DOM::Element($xmlProjectDoc,"SETTING");
+		&textElement($pathdata, "NAME", "SearchPath"); 
+		$pathdata->addText("\n");
+		&addRootedPath($pathdata, 0, $srcdir);
+
+		$accesspath->appendChild($pathdata);
+		&textSetting($accesspath, "Recursive", "false");
+		&textSetting($accesspath, "FrameworkPath", "false");
+		&textSetting($accesspath, "HostFlags", "All");
+		$node->appendChild($accesspath);
+		}
+}
+
+sub addSystemSearchPaths($) {
+	my ($node) = @_;
+
+	my @elements = $node->getElementsByTagName("SETTING",0);
+	foreach (@elements)
+		{
+		&removeNode($_);
+		}
+
+	my $ASSPLinkPath;
+	$ASSPLinkPath = &main::ASSPLinkPath if (&main::ASSPLibList);
+
+	my @extraIncPaths=();
+	push @extraIncPaths, $ArmIncDir if $ArmIncDir;
+
+	my %ordereddirs;
+	my @ordereddirlist=();
+	
+	foreach my $dir (&main::SysIncPaths, @extraIncPaths, &main::StatLinkPath, $ASSPLinkPath, &main::LinkPath)
+		{
+		next if (!defined $dir);
+		$dir = &main::Path_Chop($dir)."\\";
+		my $key = uc $dir;
+		if (! defined($ordereddirs{$key}))
+			{
+			$ordereddirs{$key}=1;
+			push @ordereddirlist, $dir;
+			}
+		}
+
+	my %dirs;
+
+	if ($VariantFile)
+		{
+		my $VariantFilePath = &main::Path_Split('Path',$VariantFile);
+		$dirs{$VariantFilePath}=1;
+		}
+
+	if (((&main::Plat =~ /^ARMV5/) || (&main::Plat =~ /^GCCE$/) ||(IsCustomization(&main::Plat))) && $PrefixFile) 
+		{
+		my $PrefixFilePath = &main::Path_Split('Path',$PrefixFile);
+		$dirs{$PrefixFilePath}=1;
+		}
+
+	foreach my $srcdir (sort keys %dirs)
+		{
+		if (!defined($ordereddirs{uc $srcdir}))
+			{
+			push @ordereddirlist, $srcdir;
+			}
+		}
+		
+	foreach my $srcdir (@ordereddirlist)
+		{
+		my $accesspath = new XML::DOM::Element($xmlProjectDoc,"SETTING");
+		$accesspath->addText("\n");
+		my $pathdata = new XML::DOM::Element($xmlProjectDoc,"SETTING");
+		&textElement($pathdata, "NAME", "SearchPath"); 
+		$pathdata->addText("\n");
+		&addRootedPath($pathdata, 0, $srcdir);
+
+		$accesspath->appendChild($pathdata);
+		&textSetting($accesspath, "Recursive", "false");
+		&textSetting($accesspath, "FrameworkPath", "false");
+		&textSetting($accesspath, "HostFlags", "All");
+		$node->appendChild($accesspath);
+		}
+	
+	if (&main::Plat =~ /^WINSCW$/)
+	{
+ 		my $lpath;
+ 		foreach $lpath (@CW_librarypath)
+ 		{
+ 			# only add Win32 SDK for WINSCW system access paths	
+ 			my $accesspath = new XML::DOM::Element($xmlProjectDoc,"SETTING");
+ 			$accesspath->addText("\n");
+ 			my $pathdata = new XML::DOM::Element($xmlProjectDoc,"SETTING");
+ 			&textElement($pathdata, "NAME", "SearchPath"); 
+ 			$pathdata->addText("\n");
+ 			
+ 			&textSetting($pathdata, "Path", $lpath);
+ 			&textSetting($pathdata, "PathFormat", "Windows");
+ 			&textSetting($pathdata, "PathRoot", "CodeWarrior");
+ 			$accesspath->appendChild($pathdata);
+ 			&textSetting($accesspath, "Recursive", "false");
+ 			&textSetting($accesspath, "FrameworkPath", "false");
+ 			&textSetting($accesspath, "HostFlags", "All");
+ 			$node->appendChild($accesspath);
+ 		}
+	}
+	if ($CustPlat{'CUSTOMIZES'} && ($CustPlat{'ROOTPLATNAME'} eq "GCCE"))
+	{
+		$CustGCCE=1;
+	}
+	if (&main::Plat =~ /^GCCE$/ || $CustGCCE)
+	{
+		my $accesspath = new XML::DOM::Element($xmlProjectDoc,"SETTING");
+		$accesspath->addText("\n");
+		my $pathdata = new XML::DOM::Element($xmlProjectDoc,"SETTING");
+		&textElement($pathdata, "NAME", "SearchPath"); 
+		$pathdata->addText("\n");
+		
+		my $GCCE_IncludePath = GetGCCELibPath("-print-libgcc-file-name");
+		$GCCE_IncludePath .= '\\include';
+		&textSetting($pathdata, "Path", $GCCE_IncludePath);
+		
+		&textSetting($pathdata, "PathFormat", "Windows");
+		&textSetting($pathdata, "PathRoot", "Absolute");
+		$accesspath->appendChild($pathdata);
+		&textSetting($accesspath, "Recursive", "false");
+		&textSetting($accesspath, "FrameworkPath", "false");
+		&textSetting($accesspath, "HostFlags", "All");
+		$node->appendChild($accesspath);
+	}
+	
+}
+
+sub addDownloadFileList($) {
+	my ($node, @DownloadList) = @_;
+	
+	my @elements = $node->getElementsByTagName("SETTING",0);
+	foreach (@elements)
+		{
+		&removeNode($_);
+		}
+
+	my $epocdata = &main::EPOCPath . "data\\";
+	foreach my $srcfile (@DownloadList)
+		{
+		my $targetpath = $srcfile;
+		$targetpath =~ s/^Z\\/C:\\/i;
+		
+		my $download = new XML::DOM::Element($xmlProjectDoc,"SETTING");
+		$download->addText("\n");
+		my $pathdata = new XML::DOM::Element($xmlProjectDoc,"SETTING");
+		&textElement($pathdata, "NAME", "HostFilePath"); 
+		$pathdata->addText("\n");
+		&addRootedPath($pathdata, 0, "$epocdata$srcfile");
+
+		$download->appendChild($pathdata);
+		&textSetting($download, "TargetFilePath", $targetpath);
+		$node->appendChild($download);
+		}
+	}
+
+sub kitRelativePath ($) {
+	my ($kitRootBasedPath) = @_;
+		
+	my $kitRoot = &main::EPOCPath;
+	$kitRoot =~ s/EPOC32\\$//i;
+	$kitRoot = quotemeta (&main::Path_Chop($kitRoot));
+
+	$kitRootBasedPath =~ s/^$kitRoot//i;
+
+	$kitRootBasedPath;
+}
+	
+sub PMBld() {
+
+	my %changedsettings;
+
+	my $ABI=&main::ABI;
+	my $Bld=&main::Bld;
+	my $Plat=&main::Plat;
+	my $BaseName=&main::BaseMak;
+	my @SrcList=&main::SrcList;
+	my $BaseTrg=&main::BaseTrg;
+	my @BldList=&main::BldList;
+	my $DefFile=&main::DefFile;
+	my $FirstLib=&main::FirstLib;
+	# IsCustomDllUseCase() subroutine is called to check if the given executable 
+	# is a custom dll or not.
+	my $IsCustomDll = Cl_bpabi::IsCustomDllUseCase();
+	# ABI flags set depending on the ENABLE_ABIV2_MODE macro set in the variant file.
+	my $ABIV1 = 0;
+	my $ABIV2 = 0;
+	if (($Plat eq "ARMV5_ABIV1" && $cfgMacro) || ($Plat eq "ARMV5" && !$cfgMacro)
+	|| ($CustPlat{'CUSTOMIZES'} 
+	&& (($CustPlat{'ROOTPLATNAME'} eq "ARMV5_ABIV1" && $cfgMacro) || ($CustPlat{'ROOTPLATNAME'} eq "ARMV5" && !$cfgMacro))))
+	{
+		$ABIV1=1;
+	}
+	elsif (($Plat eq "ARMV5_ABIV2" && !$cfgMacro) || ($Plat eq "ARMV5" && $cfgMacro)
+	|| ($CustPlat{'CUSTOMIZES'} 
+	&& (($CustPlat{'ROOTPLATNAME'} eq "ARMV5_ABIV2" && !$cfgMacro) || ($CustPlat{'ROOTPLATNAME'} eq "ARMV5" && $cfgMacro))))
+	{
+		$ABIV2=1;
+	}
+	
+	if ($CustPlat{'CUSTOMIZES'} && ($CustPlat{'ROOTPLATNAME'} eq "GCCE"))
+	{
+		$CustGCCE=1;
+	}
+
+ 	if ($ABIV1 && ($RVCTMajorVersion == 2 && $RVCTMinorVersion < 2)) {
+	        # Temporary Workaround for RVCT2.1 static libs problem with RVCT2.2 builds
+		# Rename FirstLib.lib static lib used with RVCT2.1 as FirstLib2_1.lib
+		if ($FirstLib=~/^\s*(\S+)(\.lib)$/io) {
+		        if ($1!~/$RVCTVersion/i) {
+				$FirstLib=$1.$RVCTVersion.".lib";
+			}
+		}
+	}	
+
+	my $BasicTrgType=&main::BasicTrgType;
+	my @LibList;
+	my @StatLibList=&main::StatLibList;
+	if ($ABIV1 && ($RVCTMajorVersion == 2 && $RVCTMinorVersion < 2)) {
+	        # Temporary Workaround for RVCT2.1 static libs problem with RVCT2.2 builds
+		# Rename all the static libs used with RVCT2.1 as libname2_1.lib
+		for (my $i =0; $i < scalar(@StatLibList); $i++) {
+		        if ($StatLibList[$i]=~/^\s*(\S+)(\.lib)$/io) {
+			        if ($1!~/$RVCTVersion/i) {
+				        $StatLibList[$i]=$1.$RVCTVersion.".lib";
+				}
+			}
+		}
+	}
+	
+
+	my @ASSPLibList = &main::ASSPLibList;
+	my $Trg=&main::Trg;
+	if ($ABIV1 && ($RVCTMajorVersion == 2 && $RVCTMinorVersion < 2)) {
+		if ($BasicTrgType=~/^LIB$/o) {
+			# Temporary Workaround for RVCT2.1 static libs problem with RVCT2.2 builds
+			# Rename all the static libs produced with RVCT2.1 as {libname}2_1.lib
+		        if ($Trg=~/^\s*(\S+)(\.lib)$/io) {
+			        if ($1!~/$RVCTVersion/i) {
+				        $Trg=$1.$RVCTVersion.".lib";
+				}
+			}
+			if ($BaseTrg!~/$RVCTVersion/i) {
+			        $BaseTrg .= $RVCTVersion;
+			}
+		}
+	}
+
+	my $TrgPath=&main::TrgPath;
+	my $TrgType=&main::TrgType;
+	my $epocroot=&main::Path_Drive . &main::EPOCPath;
+	$epocroot =~ s/EPOC32\\$//i;
+	my $UIDFile;
+
+	$ExtraFilesPath = &main::MakeFilePath;
+
+	if ($Bld =~ /DEB/) {
+		@LibList=&main::DebugLibList;
+	} else {
+		@LibList=&main::LibList;
+	}
+	my $xmlTarget;
+	if ($ABI =~ /BPABI/)
+	{
+		$ABI = "GCCE";
+	}
+	
+	if ($Plat eq "GCCE" || $CustGCCE || $ABIV2) {
+	
+		if ($CW_major_version < 3.1) {
+			die "FATAL ERROR: Target $Plat requires CodeWarrior for Symbian release 3.1 at minimum.\n";
+		}
+	}
+	
+	if ($ABIV2 && ($RVCTMajorVersion == 2 && $RVCTMinorVersion < 2))
+	{
+		die "FATAL ERROR: Target ARMV5_ABIV2 requires RVCT version 2.2 and greater. Detected RVCT $RVCTMajorVersion.$RVCTMinorVersion.\n";
+	}
+	
+	if (($RVCTMajorVersion == 2 && $RVCTMinorVersion >= 2) && $CW_major_version < 3.1 && $ABIV2)
+	{
+		die "FATAL ERROR: Detected RVCT Version $RVCTMajorVersion.$RVCTMinorVersion and CodeWarrior version $CW_major_version. RVCT 2.2 and greater requies CodeWarrior version 3.1 at minimum.\n";
+	}
+	
+    $xmlTarget = findTarget($BaseName, "$Plat $Bld", "$ABI $Bld");
+		
+	return if (!defined($xmlTarget));
+	
+	my $targetname = $xmlTarget->getAttribute("NAME");
+
+	my $UnderlyingABI=PMUnderlyingABI($ABI);
+	my @ChopRTWSysIncPaths=&main::Path_Chop(&main::Path_RltToWork(&main::SysIncPaths));
+	my @ChopRTWUserIncPaths=&main::Path_Chop(&main::Path_RltToWork(&main::UserIncPaths));
+	my $EPOCPath=&main::EPOCPath;
+	my $LinkAs=&main::LinkAs;
+	my $LibPath=&main::LibPath;
+	my @UidList=&main::UidList;	
+	my $WarningLevelGCC=&main::CompilerOption("GCC");
+	my $ExportLibrary=&main::ExportLibrary;
+	my $NoExportLibrary=&main::NoExportLibrary;
+	my $SystemTrg = SystemTarget();
+	my %Version = &main::Version();
+	my $ExtraExportLibrary;
+	my $PrimaryExportLibrary = $ExportLibrary;
+	unless ($Version{explicit}) {
+		$ExtraExportLibrary = $ExportLibrary;
+		$ExtraExportLibrary =~ s/\{(\d|a|b|c|d|e|f){8}\}//i;
+		$PrimaryExportLibrary = $ExtraExportLibrary;
+	}
+
+	my $ChopBldPath=&main::Path_Chop(&main::BldPath);
+	my $EPOCIncPath=&main::EPOCIncPath;
+	my $ChopRelPath=&main::Path_Chop(&main::RelPath);
+	my $RelPath=&main::RelPath;
+	my $StatLinkPath=&main::StatLinkPath;
+	my $ParentPlat;
+	
+# 	Check if a platform is customization, if yes find the parent platform.
+	my $IsPlatCustomization=IsCustomization($Plat);
+	if ($IsPlatCustomization) {
+		$ParentPlat = Plat_Customizes($Plat);
+	}
+	
+	my @RTLibList;
+	if ($ABIV1) {
+	    @RTLibList = ('dfpaeabi.lib', "dfprvct${RVCTVersion}.lib", 'drtaeabi.lib', 'drtaeabi.lib(VtblExports.o)');
+	    if ($RVCTMajorVersion == 2 && $RVCTMinorVersion >= 2) {
+		# The scppnwdl.lib should come before drtrvct2_2.lib
+		push @RTLibList, "scppnwdl.lib";
+		push @RTLibList, "drtrvct${RVCTVersion}.lib";
+	    }
+	    else
+	    {
+		push @RTLibList, "dfprvct${RVCTVersion}-thunk.lib";
+		push @RTLibList, "drtrvct${RVCTVersion}.lib";
+	    }    
+	}
+	elsif ($ABIV2)
+	{
+		@RTLibList = ('drtaeabi.dso', 'dfpaeabi.dso', "dfprvct${RVCTVersion}.dso");
+	    if ($RVCTMajorVersion == 2 && $RVCTMinorVersion >= 2) {
+		# The scppnwdl.lib should come before drtrvct2_2.lib
+		push @RTLibList, "scppnwdl.dso";
+		push @RTLibList, "drtrvct${RVCTVersion}.dso";
+	    }
+	}
+	
+	my @compatibleDOCUMENTExtensions = ("cfg", "h", "hrh", "iby", "inf", "ini", "loc", "mmpi", "policy", "ra", "rh", "rls", "rss", "script", "txt");
+	my @DocList = &main::DocList;
+	@addedFiles=();
+
+
+#	set up LinkAs
+	$UidList[2]=~/^0x(.*)$/o;
+	if ($1 ne '00000000') { # have to make sure than series of noughts in brackets doesn't appear in name for null uids
+		$LinkAs=join '', &main::Path_Split('Base',$LinkAs),"[$1]",&main::Path_Split('Ext',$LinkAs);
+	}
+
+#	set up dlltool flag hash
+	my %ABIDlltool=(
+		ARMI=>'-m arm_interwork',
+		ARM4=>'-m arm',
+		THUMB=>'-m thumb'
+	);
+
+#	work out the flags for various platforms
+	if ($ABI eq 'ARMI') {
+		$PlatOpt{Gcc}='-march=armv4t -mthumb-interwork';
+		$PlatOpt{Dlltool}=$ABIDlltool{ARMI};
+	}
+	elsif ($ABI eq 'ARM4T') {
+		if (&main::BuildAsARM) {
+			$PlatOpt{Gcc}='-march=armv4t -mthumb-interwork';
+			$PlatOpt{Dlltool}=$ABIDlltool{ARMI};
+		}
+		elsif ($SystemTrg) {
+			$PlatOpt{Gcc}='-march=armv4';
+#			allow thumb for ARM4 ABI where necessary
+			unless (&main::PlatABI eq 'ARM4') {
+				$PlatOpt{Gcc}.='t';
+			}
+			$PlatOpt{Dlltool}=$ABIDlltool{ARM4};
+		}
+		else {
+			$PlatOpt{Gcc}='-mthumb-interwork -D__MARM_THUMB__';
+			$PlatOpt{Dlltool}=$ABIDlltool{THUMB};
+		}
+	}
+	elsif ($ABI eq 'ARM4') {
+		$PlatOpt{Gcc}='-march=armv4';
+#		allow thumb for ARM4 ABI where necessary
+		unless (&main::PlatABI eq 'ARM4') {
+			$PlatOpt{Gcc}.='t';
+		}
+		$PlatOpt{Dlltool}=$ABIDlltool{ARM4};
+	}
+	elsif ($ABI eq 'THUMB') {
+		$PlatOpt{Gcc}='-mthumb-interwork';
+		$PlatOpt{Dlltool}=$ABIDlltool{THUMB};
+	}
+	
+	elsif ($Plat ne 'WINSCW' && $Plat ne 'ARMV5' && !$IsPlatCustomization && $Plat ne 'GCCE' && $Plat ne 'ARMV5_ABIV2' && $Plat ne 'ARMV5_ABIV1') { 
+		&main::FatalError("Platform module - ABI \"$ABI\" unrecognised");
+	}
+	
+	if ($Plat ne 'WINSCW') {
+		@CompatibleABIs=@{$CompatibleABIs{$UnderlyingABI}};
+	}
+
+#	set up CompatibleABI lib path hash
+	foreach (@CompatibleABIs) {
+		$ABILibPath{$_}=&main::Path_Strip("$LibPath..\\..\\$_\\");
+	}
+
+	$Dlltool=$ToolPrefix.'dlltool.exe';
+	$Archive=$ToolPrefix.'ar.exe';
+	$Link=$ToolPrefix.'ld.exe';
+	$Objcopy=$ToolPrefix.'objcopy.exe';
+
+	my $WarningLevelCW=&main::CompilerOption("CW");
+
+	$xmlFileList = newList($xmlTarget,"FILELIST",1);
+	$xmlFileList->addText("\n");
+
+	$xmlLinkOrder = newList($xmlTarget,"LINKORDER",1);
+	$xmlLinkOrder->addText("\n");
+
+	# Create temporary sublists, which will be
+	# removed during finaliseProject
+
+	$xmlSourceGroup = newList($xmlTarget,"SOURCEGROUP",0);
+	$xmlSourceGroup->setAttribute("TARGET", $targetname);
+	$xmlSourceGroup->addText("\n");
+
+	$xmlHeadersGroup = newList($xmlTarget,"HEADERSGROUP",0);
+	$xmlHeadersGroup->setAttribute("TARGET", $targetname);
+	$xmlHeadersGroup->addText("\n");
+
+	$xmlRootGroup = newList($xmlTarget,"ROOTGROUP",0);
+	$xmlRootGroup->setAttribute("TARGET", $targetname);
+	$xmlRootGroup->addText("\n");
+		
+	$xmlLinkGroup = newList($xmlTarget,"LINKGROUP",0);
+	$xmlLinkGroup->setAttribute("TARGET", $targetname);
+	$xmlLinkGroup->addText("\n");
+
+	$xmlLibGroup = newList($xmlTarget,"LIBGROUP",0);
+	$xmlLibGroup->setAttribute("TARGET", $targetname);
+	$xmlLibGroup->setAttribute("PLAT", $Plat);
+	$xmlLibGroup->addText("\n");
+
+	$xmlResourcesGroup = newList($xmlTarget,"RESOURCESGROUP",0);
+	$xmlResourcesGroup->setAttribute("TARGET", $targetname);
+	$xmlResourcesGroup->addText("\n");
+
+	$xmlDocumentsGroup = newList($xmlTarget,"DOCUMENTSGROUP",0);
+	$xmlDocumentsGroup->setAttribute("TARGET", $targetname);
+	$xmlDocumentsGroup->addText("\n");
+
+	my $debug="";
+	$debug="Debug" if ($Bld =~ /DEB$/);
+
+	my @RuntimeLibs = ();	# add platform-specific runtime libraries here
+	if (&main::PlatCompiler eq "GCC32")
+		{
+		if ($BasicTrgType=~/^DLL$/o) 
+			{ # Add the DLL stub library
+			push @RuntimeLibs, "EDLLSTUB.LIB";
+			}
+		if ($BasicTrgType=~/^(DLL|EXE)/o) 
+			{ # Add the GCC helper fns
+			push @RuntimeLibs, "EGCC.LIB";
+			}
+		}
+	
+	if ($Plat eq "GCCE" || $CustGCCE)
+		{
+			push @RuntimeLibs, "usrt2_2.lib";    # UDEB/UREL Specific
+			push @RuntimeLibs, "dfpaeabi.dso";
+			push @RuntimeLibs, "dfprvct2_2.dso";
+			push @RuntimeLibs, "drtaeabi.dso"; 
+			push @RuntimeLibs, "scppnwdl.dso"; 
+			push @RuntimeLibs, "drtrvct2_2.dso";
+			if ($BasicTrgType=~/^DLL$/o) { # Add the DLL stub library
+				push @RuntimeLibs, "EDLLSTUB.LIB";   # UDEB/UREL Specific
+				}
+		}
+
+	addFile(&main::Path_Split('File',$MmpFile), "Text", "", "", "Root");
+
+	# Create the uid.cpp file	
+	if ($Plat eq "WINSCW" && $BasicTrgType=~/^(EXE|DLL)$/oi)
+		{
+		my @UidList=&main::UidList;
+		
+		# create the UID source file
+		my $priority = "EPriorityForeground";
+		if (&main::ProcessPriority) {
+			$priority="EPriority".&main::ProcessPriority;
+		}
+
+		my $UidText=join(
+			"\n",
+			'// Makmake-generated uid source file',
+			'#include <e32cmn.h>',
+			'#pragma data_seg(".SYMBIAN")',
+			'__EMULATOR_IMAGE_HEADER2('
+		);
+		foreach (@UidList) {
+			$UidText.="$_,";
+		}
+		my $vstr = "0x".&Genutl_VersionToHexString(&main::Version);
+		my $vid = &main::VendorId;
+		if(!$vid) { $vid="0"; }
+		$UidText.="$priority,".(&main::CapabilityFlags)[0]."u,".(&main::CapabilityFlags)[1]."u,".&main::SecureId.",".$vid.",$vstr,";	# second capability word always 0 for now
+		if (&main::AllowDllData) {
+			$UidText.="1,";
+		} else {
+			$UidText.="0,";
+		}
+		chop $UidText;
+		$UidText.=")\n";
+		$UidText.="#pragma data_seg()\n";
+
+		$UIDFile = $BaseTrg.'_UID_.cpp';
+		&main::CreateExtraFile("${ExtraFilesPath}$UIDFile", $UidText);
+		}
+
+
+	if (-e $DefFile)
+		{
+		addFile(&main::Path_Split('File',$DefFile), "Text", "", &main::DefFileType."\\");
+		}
+
+	# Add resources: rsc files, mbm files and aif files
+
+	my $mmpdir = &main::Path_Split('Path',$MmpFile);
+	$changedsettings{"SymbianResourcesMMPFileLocation"} = "{0}$mmpdir";
+	my $ResourcesText="";
+	my @ResourceDownloadList=();
+	
+	# --- MBM files
+	
+	my $BitMapStructRef = &main::BitMapStructRef();
+	my $BitMapRef;
+	
+	foreach my $BitMapRef (@$BitMapStructRef) {
+		my $trgfile = $$BitMapRef{Trg};
+# change - only use colour resource files
+		next if ($trgfile =~ /\.MBW$/i);	# ignore greyscale MBM files
+		$trgfile =~ s/\.MCL$/.MBM/;			# convert MCL to MBM for immediate use
+		my $entry = "  <mbm targetfile = \"$trgfile\"";
+		$entry .= " targetpath = \"".&main::Path_Chop($$BitMapRef{TrgPath})."\"";
+		push @ResourceDownloadList, $$BitMapRef{TrgPath}.$trgfile;
+		if (defined $$BitMapRef{Hdr})
+			{
+			$entry .= " header = \"true\"";
+			}
+		else
+			{
+			$entry .= " header = \"false\"";
+			}
+		$entry .= ">\n";
+		foreach my $SrcRef (@{$$BitMapRef{Source}}) {
+			$entry .= "    <bmp bpp = \"$$SrcRef{ClDepth}\"";
+			my $bmpfile = &main::Path_Split('File',$$SrcRef{Src});
+			my $bmppath = &main::Path_Split('Path',$$SrcRef{Src});
+			my $sourcepath = &main::Path_Chop(&main::Path_MakeRltToBase($mmpdir,$bmppath));
+			$entry .= " sourcepath = \"$sourcepath\"";
+			$entry .= " sourcefile = \"$bmpfile\"/>\n";
+		}
+		$ResourcesText .= $entry . "  </mbm>\n";
+	}
+	
+	# --- AIF files
+
+	my $AifStructRef = &main::AifStructRef();
+	my $AifRef;
+
+	foreach $AifRef (@$AifStructRef) {
+# regression change - workaround lack of AIF directory
+		my $trgpath=&main::TrgPath;
+		my $trgfile=&main::Path_Split('File',$$AifRef{Trg});
+		my $path=&main::Path_Split('Path',"$trgpath$$AifRef{Trg}");
+		$path=&main::Path_Chop($path);  
+# change - only use colour resource files
+		next if ($trgfile =~ /\.ABW$/i);	# ignore greyscale AIF files
+		$trgfile =~ s/\.ACL$/.AIF/;			# convert ACL to AIF for immediate use
+ 		my $rssfile = &main::Path_Split('File',$$AifRef{Source});
+ 		my $rsspath = &main::Path_Split('Path',$$AifRef{Source});
+ 		my $sourcepath=&main::Path_Chop(&main::Path_MakeRltToBase($mmpdir,$rsspath));
+ 		my $entry = "  <aif sourcefile = \"$rssfile\"";
+   		$entry .= " sourcepath = \"$sourcepath\"";
+   		$entry .= " targetfile = \"$trgfile\" targetpath = \"$path\">\n";
+   		push @ResourceDownloadList, "$path\\$trgfile";
+ 		foreach my $BitmapRef (@{$$AifRef{BitMaps}}) {
+ 			$entry .= "    <bmp bpp = \"$$BitmapRef{ClDepth}\"";
+ 			my $bmpfile = &main::Path_Split('File',$$BitmapRef{Src});
+ 			my $bmppath = &main::Path_Split('Path',$$BitmapRef{Src});
+ 			$sourcepath = &main::Path_Chop(&main::Path_MakeRltToBase($mmpdir,$bmppath));
+ 			$entry .= " sourcepath = \"$sourcepath\"";
+ 			$entry .= " sourcefile = \"$bmpfile\"/>\n";
+		}
+   		$ResourcesText .= $entry . "  </aif>\n";
+
+   	}
+
+	
+	# --- RSC files, which must come after .MBM files since they may use the .MBG header files
+	
+	my $ResourceStructRef=&main::ResourceStructRef;
+	my @resourcefiles;
+	my %resourcetargets;
+
+	# NOTE: An <rsc/> block is now created for each START RESOURCE blocks LANG entries.  This
+	# shouldn't be necessary as <rsc/> blocks support multiple <language/> tags, and the generation
+	# of separate localised binaries should be dealt with by the Symbian Resources IDE plugin.
+	# However, a defect in the plugin's processing of <rsc/> "targetfile" attributes means that is
+	# doesn't correctly generate separate localised binaries with per-LANG extensions.
+
+	my %headerProcessed;
+
+	foreach my $ResourceRef (@$ResourceStructRef) {
+		my $fullsource=$$ResourceRef{Source};
+		my $rssfile=&main::Path_Split('File', $fullsource);
+		my $rsspath=&main::Path_Split('Path', $fullsource);
+		my $entry = "  <rsc sourcefile = \"$rssfile\"";
+		$entry .= " targetpath = \"".&main::Path_Chop($$ResourceRef{TrgPath})."\"";
+		
+		#############################################################
+		# if CW version is 3.1 or greater, add TARGET file if present
+		# tkelly 4-May-05
+		if ($CW_major_version >= 3.1)
+		{
+			my $trgfile=&main::Path_Split('File',$$ResourceRef{Trg}); 
+			$entry .= " targetfile = \"$trgfile\"\n"; #tk
+		}
+		##############################################################
+		if ((defined $$ResourceRef{Hdr}) && (!$headerProcessed{$fullsource}))
+			{
+			$entry .= " header = \"true\"";
+			$headerProcessed{$fullsource} = 1;
+			}
+		else
+			{
+			$entry .= " header = \"false\"";
+			}
+		my $sourcepath=&main::Path_Chop(&main::Path_MakeRltToBase($mmpdir,$rsspath));
+		$entry .= " sourcepath = \"$sourcepath\">\n";
+		# ignore the UidList for now..
+		$resourcetargets{$fullsource} = $$ResourceRef{TrgPath}.&main::Path_Split('Base', $rssfile);
+
+		$entry .= "    <language id = \"$$ResourceRef{Lang}\"/>\n";
+		push @resourcefiles, $entry;
+		push @ResourceDownloadList, $resourcetargets{$fullsource}.".R".$$ResourceRef{Lang};
+	}
+
+ 	foreach my $resourceEntry (@resourcefiles) {	
+ 			$ResourcesText .= $resourceEntry . "  </rsc>\n";
+ 			}
+
+	# --- If required, generate .resources file per platform
+	
+	if ($ResourcesText ne "")
+		{
+		my $resourcesfile = "$BaseTrg$Plat.resources";
+		&main::CreateExtraFile("${ExtraFilesPath}$resourcesfile", "<resources>\n$ResourcesText</resources>\n");
+		addFile($resourcesfile, "Text", "", "", "Resources");
+		}
+		
+	# Build the rest of the file list
+
+	if ($BasicTrgType!~/^LIB$/o)
+		{
+		addFile($FirstLib, "Library", $debug, "$Bld\\");	# static library, build-specific
+		}
+	
+	my $file;
+	foreach $file (@SrcList)
+		{
+		# ensure the case of the extension is what GCC expects
+		$file =~ s/\.CPP$/.cpp/i;
+		$file =~ s/\.C$/.c/i;
+		$file =~ s/\.s$/.S/i;
+		my $srcfile=&main::Path_Split('File',$file);
+		addFile($srcfile, "Text", $debug, "");
+		}
+
+	# If required, add the uid.cpp file so that it appears after all other source files in the link order
+	if (defined $UIDFile)
+		{
+		addFile($UIDFile, "Text", "", "");
+		}
+	
+	if ($Plat ne "GCCE" && !$CustGCCE)
+	{
+	# linking with GCCE, Runtime libs need to be at the end to match with make, otherwise evalid can fail.
+	foreach $file (@RuntimeLibs)
+		{
+		next if ( $file eq $FirstLib );		#skip if file equals FirstLib.
+		addFile($file, "Library", $debug, "$Bld\\"); # static library, build specific
+		}
+	}
+				
+	foreach $file (@StatLibList)
+		{
+		next if ( $file eq $FirstLib );		#skip if file equals FirstLib.
+		addFile($file, "Library", $debug, "$Bld\\"); # static library, build specific
+		}
+	foreach $file (@ASSPLibList, @LibList)
+		{
+		next if ( $file eq $FirstLib );		#skip if file equals FirstLib.
+		if ($Plat eq "GCCE" or $ABIV2 or $CustGCCE) {
+			$file =~ s/\.LIB$/.DSO/;
+			$file =~ s/\.lib$/.dso/;
+			}
+		addFile($file, "Library", $debug, "");
+		}
+		
+	if ($Plat eq "GCCE" || $CustGCCE)
+	{
+		foreach $file (@RuntimeLibs)
+		{
+			next if ( $file eq $FirstLib );		#skip if file equals FirstLib.
+			
+			#change to prevent multiple libs being listed when they are shared between targets.
+			if ($file eq "usrt2_2.lib" || $file eq "EDLLSTUB.LIB") {
+				addFile($file, "Library", $debug, "$Bld\\"); # static library, build specific
+			}
+			else {
+				addFile($file, "Library", $debug, ""); # static library, build non-specific
+			}
+		}
+	}
+		
+	if ($Plat eq "WINSCW")
+		{
+		my $defaults = $ENV{'MWSym2LibraryFiles'};
+		# look out for paths?
+		foreach $file (@Win32LibList)
+			{
+			# skip default libs and FirstLib
+			next if ( ($defaults =~ /;$file/) || ($file eq $FirstLib) );
+			addFile($file, "Library", $debug, "");
+			}
+		}
+
+	
+	# Update the project settings
+
+	$changedsettings{"UserSourceTrees"} = "{}";
+	$changedsettings{"UserSearchPaths"} = "{}";
+	$changedsettings{"SystemSearchPaths"} = "{}";
+	$changedsettings{"Targetname"} = $targetname;
+
+	my $outputdir = $RelPath;
+	if ($Plat eq "WINSCW")
+		{
+		my $trgpath = &main::TrgPath;
+		&Winutl_AdjustTargetPath(\$trgpath);
+		$outputdir .= $trgpath;
+		}
+	$changedsettings{"OutputDirectory"} = "{1}".&main::Path_Chop($outputdir);
+	$changedsettings{"SymbianInstallationContentSearchLocation"} = "{0}".&main::Path_Chop($RelPath);
+
+	$changedsettings{"SymbianResourcesHeaderFileOutputLocation"} = "{0}".&main::Path_Chop(&main::EPOCIncPath());
+	if ($Plat eq "WINSCW")
+		{
+		$changedsettings{"SymbianResourcesBinaryOutputLocation"} = "{0}".&main::Path_Chop($RelPath);
+		}
+	else
+		{
+		$changedsettings{"SymbianResourcesBinaryOutputLocation"} = "{0}".&main::Path_Chop(&main::EPOCDataPath());
+		}
+		
+	if ($Plat eq "WINSCW")
+		{
+		if ($TrgType eq "EXE")
+			{	
+			# IDE would do the right thing, but we might as well make sure...
+			$changedsettings{"MWRuntimeSettings_HostApplication"} = "{0}$outputdir$Trg";
+			}
+		else
+			{
+			$changedsettings{"MWRuntimeSettings_HostApplication"} = "{0}${RelPath}epoc.exe";
+			}
+		}
+
+
+	$changedsettings{"SymbianEpocToolsPath"} = "{0}${epocroot}";
+
+	if ($Plat ne "WINSCW")
+		{
+		my $downloadpath = &main::TrgPath;
+		if (&main::EPOCSecurePlatform && $downloadpath !~ /^Z\\sys\\bin\\/)
+			{
+			my @hrhMacros = &Variant_GetMacroList;
+			if (grep /^SYMBIAN_IGNORE_BIN_TARGETPATH\s*$/, @hrhMacros)
+				{
+				$downloadpath = "Z\\sys\\bin\\";
+				}
+			}
+		$downloadpath =~ s/^Z\\/C:\\/i;
+		$changedsettings{"DownloadPath"} = $downloadpath;
+		$changedsettings{"FileList"} = "{}";
+		}
+
+	my @MacroList;
+
+	@MacroList = &main::MacroList();			
+		
+	push @MacroList, "__${Plat}__" if ($Plat ne $ABI);
+	push @MacroList, "__SUPPORT_CPP_EXCEPTIONS__" if ($Plat eq "WINSCW");
+	push @MacroList, "__SUPPORT_CPP_EXCEPTIONS__" if (($Plat eq "ARMV5") || ($Plat eq "ARMV5_ABIV2") || ($Plat eq "ARMV5_ABIV1") || ($Plat eq "GCCE") || $IsPlatCustomization);
+
+	# Symbian Compiler Panel
+			
+	my $compiler="";
+	my $compilerargs="";
+	my $macros="";
+
+	if ((($Plat eq "ARMV5") || ($Plat eq "ARMV5_ABIV2") || ($Plat eq "ARMV5_ABIV1") || ($Plat eq "GCCE") || $IsPlatCustomization) && $VariantFile)
+		{
+		push @MacroList, '__PRODUCT_INCLUDE__=\\"'.&main::Path_Split('File',$VariantFile).'\\"' if $VariantFile;
+		}
+
+	foreach (@MacroList)
+		{
+		$_ =~ s/\s+$//;
+		$_ =~ s/^\s+//;
+		$macros .= "$_,";
+		}
+
+###############################
+# WINSCW compilation settings #
+###############################
+
+	if ($Plat eq "WINSCW")
+		{
+		$compiler = "WINSCW";
+		$compilerargs .= "-wchar_t off -align 4 -warnings on -w nohidevirtual, nounusedexpr -msgstyle gcc -enum int -str pool ";
+		$compilerargs .= "-exc ms ";
+		$compilerargs .= "-trigraphs on ";
+
+		if ($Bld =~ /DEB/)
+			{
+			$compilerargs .= "-O0 ";
+
+			# euser change to apply inlining on the _NAKED functions
+			if ($BaseTrg !~ /^EUSER$/oi)
+				{
+				$compilerargs .= "-inline off ";
+				}
+			}
+		else
+			{
+			$compilerargs .= "-O4,s ";
+			}
+			
+		if ($Win32StdHeaders || $Win32Resrc ) 
+			{
+			$macros .= "WIN32,_WINDOWS,";
+			# Callisto defect workaround
+			# NOTE: persisting with this for consistency
+			$compilerargs .= "-stdinc ";
+			}
+		else
+			{
+			$compilerargs .= "-nostdinc ";
+			}
+				
+		$compilerargs .= &main::CompilerOption("CW");
+		$changedsettings{"Macros"} = $macros;
+		if ($VariantFile)
+			{
+			$changedsettings{"PrefixFile"} = &main::Path_Split('File',$VariantFile);
+			}			
+		}
+
+#############################
+# RVCT compilation settings #
+#############################
+		
+	elsif ((($Plat eq "ARMV5") || ($Plat eq "ARMV5_ABIV2") || ($Plat eq "ARMV5_ABIV1") || $ABIV1 || $ABIV2) && ($CW_major_version >= 3)) #|| $IsPlatCustomization
+		{
+		
+		if ($RVCTMajorVersion == 2 && $RVCTMinorVersion < 2) {
+			$changedsettings{"CompilerXMLDescriptor"} = "ARM RVCT";
+		}
+		else {
+			if(($CW_major_version == 3))
+			{ 
+				$changedsettings{"CompilerXMLDescriptor"} = "ARM RVCT";
+			}
+			else
+			{
+				# RVCT 2.2
+				$changedsettings{"CompilerXMLDescriptor"} = "ARM RVCT2_2";
+			}
+		}	
+		if ($Bld =~ /REL$/)
+			{
+				$compilerargs .= $configdata{"REL_OPTIMISATION"}." ".$configdata{"RUNTIME_SYMBOL_VISIBILITY_OPTION"}.$CCUREL;		
+			}
+		else
+			{
+			unless (&main::SrcDbg)
+				{
+					$compilerargs .= $configdata{"DEBUG_OPTIMISATION"}." ".$configdata{"RUNTIME_SYMBOL_VISIBILITY_OPTION"}.$CCUDEB;		
+				}
+			}
+		$changedsettings{"PrefixFile"} = &main::Path_Split('File',$PrefixFile);
+		}
+
+############################
+# GCC compilation settings #
+############################
+		
+	elsif ($Plat eq "ARM4")
+		{
+		$compiler = "ARM";
+			
+		if ($Bld =~ /REL$/)
+			{
+			$compilerargs .= "-s -fomit-frame-pointer -O "
+			}
+		else
+			{
+			unless (&main::SrcDbg)
+				{
+				$compilerargs .= "-O ";
+				}
+			}
+		
+		if ($ABI eq "ARMI")
+			{
+			$compilerargs .= "-march=armv4t -mthumb-interwork";
+			}
+		elsif ($ABI eq "ARM4T")
+			{
+			if (&main::BuildAsARM)
+				{
+				$compilerargs .= "-march=armv4t -mthumb-interwork";
+				}
+			elsif ($SystemTrg)
+				{
+				$compilerargs .= "-march=armv4";
+
+				unless (&main::PlatABI eq "ARM4")
+					{
+					$compilerargs .= "t";
+					}
+				}
+			else
+				{
+				$compiler = "THUMB";
+				$compilerargs .= "-mthumb-interwork";
+				$macros .= "__MARM_THUMB__,";
+				}
+			}
+		elsif ($ABI eq "ARM4")
+			{
+			$compilerargs .= "-march=armv4";
+
+			unless (&main::PlatABI eq "ARM4")
+				{
+				$compilerargs .= "t";
+				}
+			}
+		elsif ($ABI eq "THUMB")
+			{
+			$compiler = "THUMB";
+			$compilerargs .= "-mthumb-interwork";
+			}
+	
+		if ($VariantFile)
+			{
+			$changedsettings{"PrefixFile"} = &main::Path_Split('File',$VariantFile);
+			}
+		}
+
+############################
+# GCCE BPABI compilation settings #
+############################
+
+		
+	elsif ((($Plat eq "GCCE") || $CustGCCE)) # || $IsPlatCustomization) && ($CW_major_version >= 3)) 
+		{
+		$compiler = "ARM GCCE";
+		#Change setting CompilerXMLDescriptor is only good for CW 3.0 and greater.
+		$changedsettings{"CompilerXMLDescriptor"} = "ARM GCCE";	
+		
+		if ($Bld =~ /REL$/)
+		{
+			$compilerargs .= $configdata{"REL_OPTIMISATION"}." ".$configdata{"RUNTIME_SYMBOL_VISIBILITY_OPTION"}.$CCUREL;
+		}
+		else
+		{
+			unless (&main::SrcDbg)
+			{
+				$compilerargs .= $configdata{"DEBUG_OPTIMISATION"}." ".$configdata{"RUNTIME_SYMBOL_VISIBILITY_OPTION"}.$CCUDEB
+			}
+		}
+		$changedsettings{"PrefixFile"} = &main::Path_Split('File',$PrefixFile);
+		}
+####################
+# General settings #
+####################
+
+	$macros =~ s/,$//;
+	$compilerargs =~ s/ $//;
+
+	$changedsettings{"Compiler"} = $compiler; # in CW 3.0, "Compiler" no longer exists. This line has no effect on those versions
+	$changedsettings{"Arguments"} = $compilerargs;
+
+	# Symbian Linker Panel
+	$changedsettings{"LinkOutputFile"} = $Trg;
+	
+	if ($Plat eq "GCCE" || $CustGCCE || $ABIV2) {
+		$changedsettings{"SymbianImportLibrary"} = $ExportLibrary.'.dso';
+	}
+	else {
+		$changedsettings{"SymbianImportLibrary"} = $ExportLibrary.'.lib';
+	}
+	
+	# Template defaults for canDebug/canRun are both "true"
+	if ($Bld =~ /REL/)
+		{
+		$changedsettings{"canDebug"} = "false";
+		}
+
+	if ($Plat eq "WINSCW")
+		{
+		if ($TrgType ne "APP" && $TrgType ne "EXE" && $TrgType ne "EXEDLL" && $TrgType ne "EPOCEXE")
+			{
+			$changedsettings{"canDebug"} = "false";
+			$changedsettings{"canRun"} = "false";
+			}
+		}
+	else
+		{
+		$changedsettings{"canRun"} = "false";
+
+		if ($TrgType eq "LIB" || $TrgType eq "KLIB")
+			{
+			$changedsettings{"canDebug"} = "false";
+			}
+		}
+		
+		
+	$xmlLinkDescriptorDoc = $xmlParser->parsefile ($FindBin::Bin."\\$linkDescriptorTemplate");
+	$xmlLinkDescriptorCommandParent = $xmlLinkDescriptorDoc->getElementsByTagName("array",1)->item(0);
+
+	if ($CW_major_version >= 3)
+		{
+		$xmlLinkDescriptorSymbolParent = $xmlLinkDescriptorDoc->getElementsByTagName("array",1)->item(1);
+		$xmlLinkDescriptorDumpFileParent = $xmlLinkDescriptorDoc->getElementsByTagName("array",1)->item(2);
+		}
+	
+	my $linkDescriptorFile = "$BaseTrg$Plat$Bld.cwlink";
+
+	my $copyCommand = 'perl.exe -S ecopyfile.pl ';
+	my $deleteCommand = 'cmd.exe /C del ';
+
+	my $tempFilenameRoot = '${var:IMPORT_LIBRARY_NO_EXT}';
+
+	if ($CW_major_version < 3)
+		{
+		$tempFilenameRoot = $ExportLibrary;
+		}	
+
+	my $exportUnfrozenWarningMessage = 'Created "${var:KIT_EPOCROOT}'.kitRelativePath($LibPath).'${var:IMPORT_LIBRARY}" '.
+										'from "${target.data}\\'.$tempFilenameRoot.'.def" as EXPORTUNFROZEN specified.';
+
+
+
+############################################
+# WINSCW library generation and link stage #
+############################################
+
+	if ($Plat eq "WINSCW")
+		{
+		# Generate library
+		if ($DefFile and !$NoExportLibrary)
+			{
+			unless (&main::ExportUnfrozen)
+				{
+					my $LibLinkAs = ($BasicTrgType=~/^IMPLIB$/io) ? $LinkAs : $Trg;
+
+					$linkCommand = 'perl.exe -S prepdef.pl "${var:DEF_FILE}" "${target.data}\\'.$tempFilenameRoot.'.prep.def"';
+					addLinkDescriptorCommand ($linkCommand);
+
+					$linkCommand = 'mwldsym2.exe "${target.data}\\'.$tempFilenameRoot.'.prep.def" -importlib -o "'.
+									'${var:KIT_EPOCROOT}'.kitRelativePath($LibPath).'${var:IMPORT_LIBRARY}" -addcommand "out:'.$LibLinkAs.'" -warnings off';
+					addLinkDescriptorCommand ($linkCommand);
+				}
+			}
+
+		if ((2.8 == $CW_major_version) && (0 == $CW_minor_version))
+			{
+			# For OEM2.8, create a file containing all objects required in the link.  This is used in all
+			# calls to mwldsym2 in order to avoid exceeding the Windows command line
+			# length in projects containing a large amount of source files
+			$linkCommand ='cmd.exe /C echo ${var:LINK_OBJS}>"${target.data}\${output.file.root}.lst"';
+			addLinkDescriptorCommand ($linkCommand);
+			}
+			
+		my $stage1linkflags = "";
+		my $linkflags = "";
+		my $commonLinkFlags = '-msgstyle gcc -stdlib';
+		my $libPath = "epoc32\\release\\winscw\\".lc $Bld;
+		if ($SystemTrg){
+			$commonLinkFlags .=" ${libPath}\\scppnwdl_kern.lib";
+		}
+		else{
+			$commonLinkFlags .=" ${libPath}\\scppnwdl.lib";
+		}
+		if ($BasicTrgType=~/^(EXE|DLL)$/o) {
+					$commonLinkFlags .= ' ${var:FIRST_LIB} '
+			}
+
+		foreach my $lib (@Win32LibList)
+			{
+			my $win32lib = $lib;
+			$win32lib = "-l$win32lib" unless ($win32lib =~ /\\/);
+			$commonLinkFlags .= " ". lc $win32lib;
+			}
+
+		if ($BasicTrgType =~ /^DLL$/o || $TrgType =~ /^EXEXP$/o)
+			{
+			if ($BaseAddress ne "")
+				{
+				$commonLinkFlags .= " -imagebase $BaseAddress";
+				}
+			
+			$commonLinkFlags .= ' -noentry -shared';
+			}
+		elsif ($BasicTrgType =~ /^EXE$/o)
+			{
+			$commonLinkFlags .= ' -m "?_E32Bootstrap@@YGXXZ"';
+			}
+
+		$commonLinkFlags .= ' -subsystem windows';
+
+		if (&main::HeapSize)
+			{
+			my %HeapSize = &main::HeapSize;
+			$commonLinkFlags .= ' -heapreserve='.RoundUp1k($HeapSize{Max}).' -heapcommit='.RoundUp1k($HeapSize{Min}); 
+			}
+
+		if ($BasicTrgType =~ /^(DLL|EXE)$/o)
+			{
+			if ($Bld =~ /DEB$/o)
+				{
+				$commonLinkFlags .= ' -g';
+				}
+			}
+			
+		my $EntrySymbol='';
+		if ($BasicTrgType=~/^DLL$/o || $TrgType=~/^EXEXP$/o)
+			{
+			my $Include="";
+			if ($BasicTrgType=~/^DLL$/o)
+				{
+				$Include="-m __E32Dll";
+				$EntrySymbol='__E32Dll';
+				}
+			else
+				{
+				$Include="-m __E32Startup";
+				$EntrySymbol='__E32Startup';
+				}
+				
+			$stage1linkflags = $commonLinkFlags.' ${var:LIBS}'.
+				' -o "${target.data}\\${output.file.name}"'. 
+				' -export dllexport '.
+				$Include.
+				' -nocompactimportlib'. 
+				' -implib "${target.data}\\${var:IMPORT_LIBRARY}"'.
+				' -addcommand "out:${output.file.name}"'.
+				' -warnings off';
+			}
+				
+		my $AbsentSubst = "";
+		if ($EntrySymbol)
+			{
+			$AbsentSubst = " -absent $EntrySymbol";
+			}
+
+		$linkflags = $commonLinkFlags.' ${var:LIBS}'.
+			' -o "${output}\\${output.file.name}"';
+			
+		if ($Bld=~/REL$/o && $BasicTrgType!~/^LIB$/o)
+			{
+			# Generate map file for release build executables
+			$linkflags .= ' -map "${output}\\${output.file.name}.map"';
+			}
+		
+		if ($BasicTrgType=~/^DLL$/o || $TrgType=~/^EXEXP$/o)
+			{
+			$linkflags .= ' -f "${target.data}\\'.$tempFilenameRoot.'.def"';
+			
+			if (&main::ExportUnfrozen)
+				{
+				$linkflags .= ' -implib "${var:KIT_EPOCROOT}'.kitRelativePath($LibPath).'${var:IMPORT_LIBRARY}"'.
+					' -addcommand "out:${output.file.name}" -warnings off';
+				}
+			else
+				{
+				$linkflags .= ' -noimplib ';
+				}
+			}
+			else
+			{
+			$linkflags .= ' -noimplib ';
+			}
+
+		if ($BasicTrgType=~/^DLL$/o || $TrgType=~/^EXEXP$/o)
+			{
+			if (($CW_major_version >= 3) ||
+				((2.8 == $CW_major_version) && ($CW_minor_version >= 1)))
+				{
+				# For OEM2.8.1 onwards, make use of ${var:LINK_OBJS_NO_PATH} in order to reduce link
+				# command line lengths
+				$linkCommand = 'mwldsym2.exe '.$stage1linkflags.' ${var:COMMON_LINK_FLAGS} -l "${target.data}\\ObjectCode" -search ${var:LINK_OBJS_NO_PATH}';				
+				}
+			else
+				{
+				$linkCommand = 'mwldsym2.exe '.$stage1linkflags.' ${var:COMMON_LINK_FLAGS} @"${target.data}\${output.file.root}.lst"';
+				}
+
+			addLinkDescriptorCommand ($linkCommand, undef, undef, undef, $FirstLib);
+				
+			$linkCommand = $deleteCommand.'"${target.data}\\${output.file.name}"';
+			addLinkDescriptorCommand ($linkCommand);
+
+			my $show_options = 'names,unmangled,verbose';
+			$linkCommand = 'mwldsym2.exe -S -show only,'.$show_options.' -o "${target.data}\\'.$tempFilenameRoot.'.inf" "${target.data}\\${var:IMPORT_LIBRARY}"';
+			addLinkDescriptorCommand ($linkCommand);
+
+			$linkCommand = 'perl.exe -w -S makedef.pl '.$AbsentSubst.' -Inffile "${target.data}\\'.$tempFilenameRoot.'.inf"';
+			if (-e $DefFile)
+				{
+				$linkCommand .= ' -Frzfile "'.$DefFile.'"';
+				}
+				
+			my $Export;
+			my $Ordinal=1;
+			foreach $Export (&main::Exports)
+				{
+				$linkCommand .= " -$Ordinal $Export";
+				$Ordinal++;
+				}					
+
+			$linkCommand .= ' "${target.data}\\'.$tempFilenameRoot.'.def"';					
+			addLinkDescriptorCommand ($linkCommand);
+			
+			$linkCommand = $deleteCommand.'"${target.data}\\'.$tempFilenameRoot.'.inf"';
+			addLinkDescriptorCommand ($linkCommand);
+			
+			$linkCommand = $deleteCommand.'"${target.data}\\${var:IMPORT_LIBRARY}"';
+			addLinkDescriptorCommand ($linkCommand);
+			}
+
+		$linkCommand = "mwldsym2.exe ";
+
+		if ($BasicTrgType =~/^LIB$/o)
+			{
+			$linkCommand .= '-library ';
+			}
+
+		if (($CW_major_version >= 3) ||
+			((2.8 == $CW_major_version) && ($CW_minor_version >= 1)))
+			{
+			# For OEM2.8.1 onwards, make use of ${var:LINK_OBJS_NO_PATH} in order to reduce link
+			# command line lengths
+			$linkCommand .= $linkflags.' ${var:COMMON_LINK_FLAGS} -l "${target.data}\\ObjectCode" -search ${var:LINK_OBJS_NO_PATH}';	
+			}
+		else
+			{
+			$linkCommand .= $linkflags.'${var:COMMON_LINK_FLAGS} @"${target.data}\${output.file.root}.lst"';				
+			}
+
+		my $warningMessage;
+		
+		if (&main::ExportUnfrozen)
+			{
+			$warningMessage = $exportUnfrozenWarningMessage;
+			}
+
+		if ($BasicTrgType =~/^LIB$/o)
+			{				
+			addLinkDescriptorCommand ($linkCommand, undef, undef, undef, undef, $warningMessage);
+			}
+		else
+			{
+			addLinkDescriptorCommand ($linkCommand, undef, undef, undef, $FirstLib, $warningMessage);
+			}
+
+		if (&Winutl_CopyForStaticLinkage)
+			{
+			$linkCommand = $copyCommand.
+							'"${output}\\${output.file.name}" '.
+							'"${var:KIT_EPOCROOT}'.kitRelativePath($RelPath).'${output.file.name}"';
+			addLinkDescriptorCommand ($linkCommand, "false", "false");
+			}
+		}
+
+##########################################
+# RVCT library generation and link stage #
+##########################################
+
+	elsif ($ABIV1 && ($CW_major_version >= 3)) 
+		{
+		my $InterWorking = ($ABI eq 'ARMV4') ? "" : "--inter";
+			
+		# Generate library
+
+		if ($DefFile and !$NoExportLibrary)
+			{
+			unless (&main::ExportUnfrozen)
+				{
+				$linkCommand = 'perl.exe -S prepdef.pl "${var:DEF_FILE}" "${target.data}\\'.$tempFilenameRoot.'.prep.def"';
+				addLinkDescriptorCommand ($linkCommand);
+
+				$linkCommand = 'def2dll.bat --path="${var:KIT_EPOCROOT}'.kitRelativePath($LibPath).'\\" --bldpath="${target.data}" --import='.$tempFilenameRoot.' '.
+					'--deffile="${target.data}\\'.$tempFilenameRoot.'.prep.def" --linkAs='.$LinkAs.' '.$InterWorking;
+				addLinkDescriptorCommand ($linkCommand);
+
+				if ($ExtraExportLibrary)
+					{
+					$linkCommand = $copyCommand.'"${var:KIT_EPOCROOT}'.kitRelativePath($LibPath).'${var:IMPORT_LIBRARY}" '.
+									'"${var:KIT_EPOCROOT}'.kitRelativePath($LibPath).$ExtraExportLibrary.'.lib"';
+					addLinkDescriptorCommand ($linkCommand,"false", "false");
+					}
+				}
+			}
+
+		return if ($BasicTrgType=~/^IMPLIB$/io);
+		
+
+		# Create custom symbols only required in RVCT builds
+		my $implibs_no_path_vtblexport = "";
+
+		foreach my $lib (@LibList)
+			{
+			$implibs_no_path_vtblexport.="$lib(VtblExports.o) ";
+			}
+
+		addLinkDescriptorSymbol ('${var:IMPLIBS_NO_PATH_VTBLEXPORT}', $implibs_no_path_vtblexport);
+
+		my $AbsentSubst = '';
+		my $EntrySymbol;
+		my $Link = '';
+
+		if ($BasicTrgType=~/^DLL$/o) {
+			$EntrySymbol = '_E32Dll';
+		}
+		elsif ($BasicTrgType=~/^EXE$/o) {
+			$EntrySymbol = '_E32Startup';
+		}
+		if ($EntrySymbol) {
+			$AbsentSubst = " -absent $EntrySymbol";
+		}
+
+		$Link = 'armlink '.$oP.'diag_suppress 6331,6780'.$linkeropts.' ';
+
+		if ($Bld =~ /DEB$/o)
+			{
+			$Link .= ' '.$oP.'debug';
+			}
+
+
+	    # TARGET *.IN
+	    #------------
+
+		# Create "via" file containing all link objects in order to reduce link
+		# command line length
+		addLinkDescriptorDumpFile ('${var:LINK_OBJS}', '${target.data}\\${output.file.root}_'.$Bld.'_objects.via');
+		
+		if ($BasicTrgType!~/^LIB$/o) {
+			$linkCommand = $Link .' '.$oP.'partial -o ${var:COMMON_LINK_FLAGS} "${target.data}\\${output.file.root}.in" '.$oP.'via "${target.data}\\${output.file.root}_'.$Bld.'_objects.via"';
+			addLinkDescriptorCommand ($linkCommand);
+		}
+
+		# Perform link
+
+	    if ($BasicTrgType=~/^DLL$/o || $TrgType=~/^EXEXP$/o || $TrgType=~/^EXEDLL$/o) {
+	#		reorder the .DEF file taking frozen exports into account if there are any
+
+			$linkCommand = 'perl -S elf2inf.pl -o "${target.data}\\'.$tempFilenameRoot.'.inf" "${target.data}\\${output.file.root}.in"';
+			addLinkDescriptorCommand ($linkCommand);
+
+			$linkCommand = 'perl -S makedef.pl '.$AbsentSubst.' -Inf "${target.data}\\'.$tempFilenameRoot.'.inf"';
+
+	    	if (!$DefFile || $NoExportLibrary) {    			
+	    		$linkCommand .= ' -ignore_unfrozen_noncallable ';
+	    	}
+		if (SysTrg()) {
+	    		$linkCommand .= ' -SystemTargetType ';
+	    	}		
+		
+		    if (-e $DefFile) {	# effectively "if project frozen ..."
+		        $linkCommand .= " -Frzfile \"".'${var:DEF_FILE}'."\"";
+		    }
+		    # freeze ordinals, a maximum of 2, for polymorphic dlls
+		    my $Ordinal;
+		    my $Num=1;
+		    foreach $Ordinal (&main::Exports) {
+		    	$linkCommand .= " -$Num $Ordinal";
+			    $Num++;
+		    }
+
+		    $linkCommand.= ' "${target.data}\\'.$tempFilenameRoot.'.def"';
+		    addLinkDescriptorCommand ($linkCommand);
+    
+		    my $theDefFile = '"${target.data}\\'.$tempFilenameRoot.'.def"';
+		    $theDefFile = '"${var:DEF_FILE}"' if (-e $DefFile && !&main::ExportUnfrozen);
+
+			$linkCommand = 'def2dll.bat'.$AbsentSubst.' --path="${target.data}" --bldpath="${target.data}" --export='.$tempFilenameRoot.' --deffile='.$theDefFile.' --linkAs='.$LinkAs.' '.$InterWorking;
+			addLinkDescriptorCommand ($linkCommand);
+	    }
+
+        if ($BasicTrgType=~/^DLL$/o || $TrgType=~/^EXEXP$/o || $TrgType=~/^EXEDLL$/o) {
+#		generate an export object from the ordered .DEF file
+		if (&main::ExportUnfrozen) {
+			$linkCommand = 'def2dll.bat --path="${var:KIT_EPOCROOT}'.kitRelativePath($LibPath).'\\" --bldpath="${target.data}" --import='.$tempFilenameRoot.
+				' --deffile="${target.data}\\'.$tempFilenameRoot.'.def" --linkAs='.$LinkAs.' '.$InterWorking;
+		    addLinkDescriptorCommand ($linkCommand, undef, undef, undef, undef, $exportUnfrozenWarningMessage);
+			}
+        }
+
+#       get rid of any -symbols produced .map file
+        if ($BasicTrgType=~/^(DLL|EXE)/o) {
+			$linkCommand = $deleteCommand.'"${output}\\${output.file.name}.map"';
+			addLinkDescriptorCommand ($linkCommand, "false", "false", undef, undef, undef, undef, (0,1));
+		}
+
+        if ($BasicTrgType=~/^(DLL|EXE)/o) {
+	        my $datalinkbase = "0x400000";
+	        $datalinkbase = &main::DataLinkAddress if (&main::DataLinkAddress);
+		
+	        $linkCommand = "$Link ".$oP.'shl '.$oP.'reloc '.$oP.'split '.$oP."rw-base $datalinkbase ".$oP.'noscanlib '."$PlatOpt{Ld}";
+	        
+	        if ($BasicTrgType=~/^DLL$/o) {
+	            # get the right object file for the entry point
+	            my $ObjFile = "UC_DLL_.o";
+	            if ($FirstLib =~ /EDEV/i) {
+		            $ObjFile = "D_ENTRY_.o";
+	            }
+	            if ($FirstLib =~ /EKLL/i) {
+		            $ObjFile = "L_ENTRY_.o";
+	            }
+	            if ($FirstLib =~ /EEXT/i) {
+		            $ObjFile = "X_ENTRY_.o";
+	            }
+	            if ($FirstLib =~ /EVAR/i) {
+		            $ObjFile = "V_ENTRY_.o";
+	            }
+
+#		    If platform is a customization, take libs from parent directory.		   
+			$linkCommand .= $oP.'entry _E32Dll "'.$FirstLib.'('.$ObjFile.')"';
+		    if($IsCustomDll)
+		    {
+				$linkCommand .=	' "${target.data}\\'.$tempFilenameRoot.'.exp"';
+			}
+		    
+	        } elsif ($BasicTrgType=~/^EXE$/o || $TrgType=~/^EXEXP$/o) {
+			    # get the right object file for the entry point
+			    my $ObjFile = "UC_EXE_.o" ;
+			    if ($FirstLib =~ /KC_EXE/i) {
+					$ObjFile = "K_ENTRY_.o";
+			    }
+
+			if($IsPlatCustomization) 
+			{
+				$linkCommand .= $oP.'entry _E32Startup "'.$FirstLib.'('.$ObjFile.')"';
+			} 
+			else
+			{
+			    	$linkCommand .= $oP.'entry _E32Startup "'.$FirstLib.'('.$ObjFile.')"';
+			}
+		    
+			    if ($TrgType=~/^EXEXP$/o || $TrgType=~/^EXEDLL$/o) {
+					$linkCommand .= ' "${target.data}\\'.$tempFilenameRoot.'.exp"';
+				}
+			}
+
+			$linkCommand .= ' -o "${target.data}\\${output.file.name}"';
+
+			$linkCommand .= ' '.$oP.'symbols '.$oP.'list "${output}\\${output.file.name}.map"';
+			$linkCommand .= ' "${target.data}\\${output.file.root}.in"';
+
+
+			if ($BasicTrgType=~/^DLL$/o) { # Add the DLL stub library
+				if($IsPlatCustomization) 
+				{
+				if ($RVCTMajorVersion == 2 && $RVCTMinorVersion < 2) {
+				   $linkCommand .= ' "${var:KIT_EPOCROOT}\\EPOC32\RELEASE\ARMV5\\'.$Bld.'\EDLLSTUB'.$RVCTVersion.'.LIB"';
+				}
+				else {
+				   $linkCommand .= ' "${var:KIT_EPOCROOT}\\EPOC32\RELEASE\ARMV5\\'.$Bld.'\EDLLSTUB.LIB"';
+				}
+				}
+				else
+				{
+				if ($RVCTMajorVersion == 2 && $RVCTMinorVersion < 2) {
+				   $linkCommand .= ' "${var:KIT_EPOCROOT}\\EPOC32\RELEASE\ARMV5\\'.$Bld.'\EDLLSTUB'.$RVCTVersion.'.LIB"';
+				}
+				else {
+				   $linkCommand .= ' "${var:KIT_EPOCROOT}\\EPOC32\RELEASE\ARMV5\\'.$Bld.'\EDLLSTUB.LIB"';
+				}
+				}
+			}
+
+			$linkCommand .= ' ${var:LIBS}';
+			
+			
+			my $runtimeLibs = "";
+			my $StaticRTLib = "usrt".$RVCTVersion;
+			
+			# use ksrt for system code and for user ARM code
+			$StaticRTLib = "ksrt".$RVCTVersion if ($SystemTrg);
+			$runtimeLibs .= $StaticRTLib.".lib" unless ($Trg =~ /(U|K)SRT/i || ($BasicTrgType=~/^LIB$/o));
+		
+			unless ($ArmRT || ($BasicTrgType=~/^LIB$/o)) {
+				my $TargLib = "$ExportLibrary.lib";
+				$TargLib =~ s/\{(\d|a|b|c|d|e|f){8}\}//i;
+				unless ($SystemTrg) {
+					foreach (@RTLibList) {
+						$runtimeLibs .= " ".$_ unless ($_ =~ /$TargLib/i);
+					}
+			    }
+			}
+
+			foreach (@ArmLibList)
+				{
+				$runtimeLibs.= " ".$_;
+				}
+			
+			addLinkDescriptorSymbol ('${var:RUNTIME_LIBS}', $runtimeLibs);
+				
+			if($IsPlatCustomization) 
+			{
+			     $linkCommand .= ' --userlibpath "${var:KIT_EPOCROOT}\\EPOC32\RELEASE\\'.$ParentPlat.'\\'.$Bld.'","${var:KIT_EPOCROOT}\\EPOC32\RELEASE\\'.$ParentPlat.'\LIB" ${var:RUNTIME_LIBS} ${var:IMPLIBS_NO_PATH_VTBLEXPORT}';
+			}
+			else
+				{
+				addLinkDescriptorSymbol ('${var:RUNTIME_LIBS}', 'usrt'.$RVCTVersion.'.lib dfpaeabi.lib dfprvct'.$RVCTVersion.'.lib dfprvct'.$RVCTVersion.'-thunk.lib drtaeabi.lib drtaeabi.lib(VtblExports.o) drtrvct'.$RVCTVersion.'.lib');
+				}
+				
+			$linkCommand .= ' --userlibpath "${var:KIT_EPOCROOT}\\EPOC32\RELEASE\ARMV5\\'.$Bld.'","${var:KIT_EPOCROOT}\\EPOC32\RELEASE\ARMV5\LIB" ${var:RUNTIME_LIBS} ${var:IMPLIBS_NO_PATH_VTBLEXPORT}';
+			
+			addLinkDescriptorCommand ($linkCommand, undef, undef, undef, $FirstLib);
+
+	    	if ($Bld=~/^U?DEB$/o) {
+			$linkCommand = $copyCommand. ' "${target.data}\\${output.file.name}" "${output}\\${output.file.root}.sym"'; 
+			addLinkDescriptorCommand ($linkCommand, "false", "false");
+	    	}
+	
+			$linkCommand = 'elftran -version '. &Genutl_VersionToUserString(%Version).' -sid '. &main::SecureId(); 
+			if (&main::CompressTarget) {
+				$linkCommand .= ' -nocompress ';
+			}
+			# change - exexps are allowed data, but they look like dlls to elftran....
+			if (&main::AllowDllData || $TrgType=~/^EXEXP$/o || $TrgType=~/^EXEDLL$/o) {
+				$linkCommand.=' -allow';
+			}
+			if (not &main::CallDllEntryPoints ) {
+				$linkCommand.=' -nocall';
+			}
+			if (&main::DataLinkAddress) {
+				$linkCommand.=' -datalinkaddress '.&main::DataLinkAddress;
+			}
+			if (&main::FixedProcess) {
+				$linkCommand.=' -fixed';
+			}
+			if (&main::HeapSize) {
+				my %HeapSize=&main::HeapSize;
+				$linkCommand.=' -heap '.$HeapSize{Min}.' '.$HeapSize{Max};
+			}
+			if (&main::ProcessPriority) {
+				$linkCommand.=' -priority '.&main::ProcessPriority;
+			}
+			if (&main::StackSize) {
+				$linkCommand.=' -stack '.&main::StackSize;
+			}
+
+			my $i=1;
+			foreach (@UidList) {
+				$linkCommand.=" -uid$i $_";
+				$i++;
+			}
+			if(&main::VendorId) {
+				$linkCommand.=' -vid '.&main::VendorId;
+			}
+
+			$linkCommand.=' -fpu '.$floatingpointmodel;
+
+			$linkCommand.=' -capability '.&main::Capability. ' "${target.data}\\${output.file.name}" "${output}\\${output.file.name}"';
+		
+			addLinkDescriptorCommand ($linkCommand, "false");
+        	}
+        elsif ($BasicTrgType=~/^LIB$/o) {
+			$linkCommand = 'armar '.$oP.'create "${output}\\${output.file.name}" '.$oP.'via "${target.data}\\${output.file.root}_'.$Bld.'_objects.via"'.' '.$archiveropts;
+			addLinkDescriptorCommand ($linkCommand);
+			}
+		}
+
+##############################################
+# BPABI library generation and link stage    #
+# Assumes use of RVCT 2.2					 #
+##############################################
+
+	elsif ($ABIV2 && ($CW_major_version >= 3.1)) {
+		
+		# prolly don't need this...
+		my $InterWorking = ($ABI eq 'ARMV4') ? "" : "--inter";
+			
+		return if ($BasicTrgType=~/^IMPLIB$/io);
+		
+		if ($BasicTrgType=~/^LIB$/o) {
+			$linkCommand = 'armar --create ${output}\\${output.file.name} ${var:LINK_OBJS} ${var:LIBS}'.' '.$archiveropts;
+	        addLinkDescriptorCommand ($linkCommand);
+         }
+		else
+		{
+		my $AbsentSubst = '';
+		my $EntrySymbol;
+		my $Link = '';
+
+		if ($BasicTrgType=~/^DLL$/o) {
+			$EntrySymbol = '_E32Dll';
+		}
+		elsif ($BasicTrgType=~/^EXE$/o) {
+			$EntrySymbol = '_E32Startup';
+		}
+		if ($EntrySymbol) {
+			$AbsentSubst = " -absent $EntrySymbol";
+		}
+
+		$Link = 'armlink '.$oP.'diag_suppress 6331,6780'.$linkeropts.' ';
+
+		if ($Bld =~ /DEB$/o)
+			{
+			$Link .= ' '.$oP.'debug';
+			}
+
+
+	    # TARGET *.IN
+	    #------------
+
+		# Create "via" file containing all link objects in order to reduce link
+		# command line length
+		addLinkDescriptorDumpFile ('${var:LINK_OBJS}', '${target.data}\\${output.file.root}_'.$Bld.'_objects.via');
+		
+		if ($BasicTrgType!~/^LIB$/o) {
+			$linkCommand = $Link .' '.$oP.'partial -o ${var:COMMON_LINK_FLAGS} "${target.data}\\${output.file.root}.in" '.$oP.'via "${target.data}\\${output.file.root}_'.$Bld.'_objects.via"';
+
+		}
+
+
+#       get rid of any -symbols produced .map file
+        if ($BasicTrgType=~/^(DLL|EXE)/o) {
+			$linkCommand = $deleteCommand.'"${output}\\${output.file.name}.map"';
+			addLinkDescriptorCommand ($linkCommand, "false", "false", undef, undef, undef, undef, (0,1));
+		}
+
+        if ($BasicTrgType=~/^(DLL|EXE)/o) {
+	        my $datalinkbase = "0x400000";
+			my $librarylist;
+			my $expr;
+			@ToolChainLibList = &GetLibList;
+
+			foreach $expr (@ToolChainLibList) {
+				$librarylist .= $expr.' ';
+			}
+	        
+  	        $datalinkbase = &main::DataLinkAddress if (&main::DataLinkAddress);
+	        $linkCommand = "$Link ".$oP.'bpabi '.$oP.'reloc '.$oP.'split '.$oP.'no_scanlib '.$oP.'datacompressor=off '.$oP."rw-base $datalinkbase "."$PlatOpt{Ld}";
+			$linkCommand .= ' --dll --symver_soname --soname '.$LinkAs.' ';
+			
+			
+	        if ($BasicTrgType=~/^DLL$/o) {
+	            # get the right object file for the entry point
+	            my $ObjFile = "UC_DLL_.o";
+	            if ($FirstLib =~ /EDEV/i) {
+		            $ObjFile = "D_ENTRY_.o";
+	            }
+	            if ($FirstLib =~ /EKLL/i) {
+		            $ObjFile = "L_ENTRY_.o";
+	            }
+	            if ($FirstLib =~ /EEXT/i) {
+		            $ObjFile = "X_ENTRY_.o";
+	            }
+	            if ($FirstLib =~ /EVAR/i) {
+		            $ObjFile = "V_ENTRY_.o";
+	            }
+
+#		    If platform is a customization, take libs from parent directory.		   
+		    if($IsCustomDll)
+		    {
+		    
+			$linkCommand .= $oP.'entry _E32Dll "'.$FirstLib.'('.$ObjFile.')"'.
+					' "${target.data}\\'.$tempFilenameRoot.'.exp"';
+			    
+		    }
+		    else
+		    {
+		    # ARMV5 hardcoded here...
+		    $linkCommand .= $oP.'entry _E32Dll "'.$FirstLib.'('.$ObjFile.')"';
+		    }
+
+	        } elsif ($BasicTrgType=~/^EXE$/o || $TrgType=~/^EXEXP$/o) {
+			    # get the right object file for the entry point
+			    my $ObjFile = "UC_EXE_.o" ;
+			    if ($FirstLib =~ /KC_EXE/i) {
+					$ObjFile = "K_ENTRY_.o";
+			    }
+
+		    # Should this use $ParentPlat rather than hardcoded ARMV5 dir?
+		   $linkCommand .= $oP.'entry _E32Startup "'.$FirstLib.'('.$ObjFile.')"';
+		
+			}
+
+			$linkCommand .= ' -o "${target.data}\\${output.file.name}"';
+
+			if ($BasicTrgType=~/^DLL$/o) { # Add the DLL stub library
+				if($IsPlatCustomization) 
+				{
+				if ($RVCTMajorVersion == 2 && $RVCTMinorVersion < 2) {
+				   $linkCommand .= ' "${var:KIT_EPOCROOT}\\EPOC32\RELEASE\\'.$ParentPlat.'\\'.$Bld.'\EDLLSTUB'.$RVCTVersion.'.LIB"';
+				}
+				else {
+				   $linkCommand .= ' "${var:KIT_EPOCROOT}\\EPOC32\RELEASE\\'.$ParentPlat.'\\'.$Bld.'\EDLLSTUB.LIB"';
+				}
+				}
+				else
+				{
+				if ($RVCTMajorVersion == 2 && $RVCTMinorVersion < 2) {
+				   $linkCommand .= ' "${var:KIT_EPOCROOT}\\EPOC32\RELEASE\ARMV5\\'.$Bld.'\EDLLSTUB'.$RVCTVersion.'.LIB"';
+				}
+				else {
+				   $linkCommand .= ' "${var:KIT_EPOCROOT}\\EPOC32\RELEASE\ARMV5\\'.$Bld.'\EDLLSTUB.LIB"';
+				}
+				}
+			}
+
+			$linkCommand .= ' ${var:LIBS}';
+			
+			
+			my $runtimeLibs = "";
+			my $StaticRTLib = "usrt".$RVCTVersion;
+			
+			# use ksrt for system code and for user ARM code
+			$StaticRTLib = "ksrt".$RVCTVersion if ($SystemTrg);
+			$runtimeLibs .= $StaticRTLib.".lib" unless ($Trg =~ /(U|K)SRT/i || ($BasicTrgType=~/^LIB$/o));
+		
+			unless ($ArmRT || ($BasicTrgType=~/^LIB$/o)) {
+				my $TargLib = "$ExportLibrary.lib";
+				$TargLib =~ s/\{(\d|a|b|c|d|e|f){8}\}//i;
+				unless ($SystemTrg) {
+					foreach (@RTLibList) {
+						$runtimeLibs .= " ".$_ unless ($_ =~ /$TargLib/i);
+					}
+			    }
+			}
+
+			foreach (@ArmLibList)
+				{
+				$runtimeLibs.= " ".$_;
+				}
+			
+			addLinkDescriptorSymbol ('${var:RUNTIME_LIBS}', $runtimeLibs);
+				
+			$linkCommand .= ' --userlibpath "${var:KIT_EPOCROOT}\\EPOC32\RELEASE\ARMV5\\'.$Bld.'","${var:KIT_EPOCROOT}\\EPOC32\RELEASE\ARMV5\LIB" '.$oP.'via "${target.data}\\${output.file.root}_'.$Bld.'_objects.via" ${var:RUNTIME_LIBS} '.$librarylist.' ';
+			
+			addLinkDescriptorCommand ($linkCommand, undef, undef, undef, $FirstLib);
+
+		}
+		
+		#### Create the .sym file
+		$linkCommand = 'cmd.exe /C copy "${target.data}\\${output.file.name}" "${output}\\${output.file.root}.sym"';
+		addLinkDescriptorCommand ($linkCommand);
+		
+		#### copy the project .def file for prep
+		if ($DefFile and !$NoExportLibrary)
+		{
+			unless (&main::ExportUnfrozen)
+			{
+        	$linkCommand = 'cmd.exe /C copy "${var:DEF_FILE}" "${target.data}\\${var:IMPORT_LIBRARY_NO_EXT}.prep.def"';
+			addLinkDescriptorCommand ($linkCommand);
+			}
+		}
+		
+		
+		#### ELF2E32 POST-LINK COMMAND ####
+		# Section needs to be generic for BPABI (e.g. GCCE & ARMV5_ABIV2)
+		$linkCommand  = '${var:KIT_EPOCROOT}\\epoc32\\tools\\elf2e32.exe ';		
+		
+		# Change - exexps are allowed data, but they look like dlls to elftran....
+		if (&main::AllowDllData || $TrgType=~/^EXEXP$/o || $TrgType=~/^EXEDLL$/o) {
+			$linkCommand .= ' --dlldata';
+		}
+
+		if (&main::DataLinkAddress) {
+			$linkCommand .= ' --datalinkaddress=',&main::DataLinkAddress;
+		}
+		if (&main::FixedProcess) {
+			$linkCommand .=	' --fixedaddress';
+		}
+		
+		$linkCommand .= ' --sid='.&main::SecureId();
+		$linkCommand .= ' --version='. &Genutl_VersionToUserString(%Version);
+		
+		if (&main::HeapSize) {
+			my %HeapSize=&main::HeapSize;
+			$linkCommand.=' --heap '.$HeapSize{Min} .','.$HeapSize{Max};
+		}
+		
+		if (&main::ProcessPriority) {
+			$linkCommand .=	' --priority='.&main::ProcessPriority;
+		}
+		
+		if (&main::StackSize) {
+			$linkCommand .= ' --stack='.&main::StackSize;
+		}
+		
+		my $i=1;
+		foreach (@UidList) {
+			$linkCommand .= " --uid$i=$_";
+			$i++;
+		}
+		if (&main::VendorId) {
+			$linkCommand .= ' --vid='.&main::VendorId;
+		}
+		
+		$linkCommand .= ' --capability='.&main::Capability;
+
+		# ARMFPU only currently supported for RVCT BPABI builds
+		if (&main::ARMFPU && (&main::ARMFPU =~ /^VFPV2$/i)) {
+			$linkCommand .= ' --fpu=vfpv2'
+		}
+		else {
+			$linkCommand .= ' --fpu=softvfp'
+		}
+		
+	
+		if(($BasicTrgType=~/^DLL/ && $TrgType!~/^DLL/ ) || $TrgType=~/^EXEXP/) {
+	 		$linkCommand .= ' --targettype='.$TrgType;
+ 		}
+ 		else {
+ 			$linkCommand .= ' --targettype='.$BasicTrgType;
+ 		}
+		
+		$linkCommand .= ' --output="${output}\\${output.file.name}"';
+		
+		my $warningMessage;
+		if ($BasicTrgType=~/^DLL$/o || $TrgType=~/^EXEXP$/o || $TrgType=~/^EXEDLL$/o) {
+			if ($DefFile and !$NoExportLibrary) {
+				$linkCommand .= ' --definput="${target.data}\\${var:IMPORT_LIBRARY_NO_EXT}.prep.def"';
+			}
+			$linkCommand .= ' --dso=';
+			$linkCommand .= '"${var:KIT_EPOCROOT}\\EPOC32\\RELEASE\\ARMV5\\LIB\\${var:IMPORT_LIBRARY}"';
+				
+			$linkCommand .= ' --defoutput=';
+			$linkCommand .= '"${target.data}\\${var:IMPORT_LIBRARY_NO_EXT}.def"';
+				
+			if (&main::ExportUnfrozen) {
+				$warningMessage = $exportUnfrozenWarningMessage;
+				$linkCommand .= ' --unfrozen';
+			}
+		}
+		
+		$linkCommand .= ' --elfinput="${target.data}\\${output.file.name}"';
+		$linkCommand .= ' --linkas='.$LinkAs;
+		#Change - LIB path is hardcoded here...
+		$linkCommand .= ' --libpath="${var:KIT_EPOCROOT}\\EPOC32\\RELEASE\\ARMV5\\LIB"';
+		
+        if ($BasicTrgType=~/^DLL$/o && $TrgType!~/^DLL/){
+			my $Export;
+			my $Ordinal=1;
+			foreach $Export (&main::Exports)
+				{
+				if ($Ordinal eq 1) {
+					$linkCommand .= ' --sysdef=';
+				}
+				elsif ($Ordinal ne 1) {
+					$linkCommand .= ';';
+					}
+					
+				$linkCommand .= "$Export,".$Ordinal;
+				$Ordinal++;
+				}
+		}
+		
+		addLinkDescriptorCommand ($linkCommand, undef, undef, undef, undef, $warningMessage);
+		
+		}
+		
+		# copy def file output
+		if ($BasicTrgType=~/^DLL$/o || $TrgType=~/^EXEXP$/o || $TrgType=~/^EXEDLL$/o) {
+			$linkCommand = 'cmd.exe /C copy  "${target.data}\\${var:IMPORT_LIBRARY_NO_EXT}.def" "${Project}\${var:IMPORT_LIBRARY_NO_EXT}.def"';
+			addLinkDescriptorCommand($linkCommand);
+		}
+		
+		# copy the import lib (dso) created
+		if ($BasicTrgType=~/^DLL$/o || $TrgType=~/^EXEXP$/o || $TrgType=~/^EXEDLL$/o) {
+			if ($DefFile and !$NoExportLibrary) {
+				$linkCommand = 'cmd.exe /C copy ${var:KIT_EPOCROOT}\\EPOC32\\RELEASE\\ARMV5\\LIB\\${var:IMPORT_LIBRARY} ${var:KIT_EPOCROOT}\\EPOC32\\RELEASE\\ARMV5\\LIB\\${output.file.root}.dso';
+			}
+			addLinkDescriptorCommand($linkCommand);
+		}
+	
+	}
+			
+#########################################
+# GCC library generation and link stage #
+#########################################
+
+	elsif ($Plat eq "ARM4")
+		{
+		# Generate library
+
+		if ($DefFile and !$NoExportLibrary)
+			{
+			unless (&main::ExportUnfrozen)
+				{
+				$linkCommand = 'perl.exe -S prepdef.pl "${var:DEF_FILE}" "${target.data}\\'.$tempFilenameRoot.'.prep.def"';
+				addLinkDescriptorCommand ($linkCommand);
+
+				$linkCommand = "$Dlltool $PlatOpt{Dlltool}".' --output-lib "${var:KIT_EPOCROOT}'.kitRelativePath($LibPath).'${var:IMPORT_LIBRARY}" --def "'.
+						'${target.data}\\'.$tempFilenameRoot.'.prep.def" --dllname "'.$LinkAs.'"';
+				addLinkDescriptorCommand ($linkCommand);
+
+				if ($ExtraExportLibrary)
+					{
+					$linkCommand = $copyCommand.'"${var:KIT_EPOCROOT}'.kitRelativePath($LibPath).'${var:IMPORT_LIBRARY}" '.
+									'"${var:KIT_EPOCROOT}'.kitRelativePath($LibPath).$ExtraExportLibrary.'.lib"';
+					addLinkDescriptorCommand ($linkCommand,"false", "false");
+					}
+
+				foreach (@CompatibleABIs)
+					{
+					$linkCommand = "$Dlltool $ABIDlltool{$_}".' --output-lib "${var:KIT_EPOCROOT}'.kitRelativePath($ABILibPath{$_}).'UREL\\${var:IMPORT_LIBRARY}" --def "'.
+							'${target.data}\\'.$tempFilenameRoot.'.prep.def" --dllname "'.$LinkAs.'"';
+					addLinkDescriptorCommand ($linkCommand);
+
+					if ($ExtraExportLibrary)
+						{
+						$linkCommand = $copyCommand.'"${var:KIT_EPOCROOT}'.kitRelativePath($ABILibPath{$_}).'UREL\\${var:IMPORT_LIBRARY}" '.
+										'"${var:KIT_EPOCROOT}'.kitRelativePath($ABILibPath{$_}).'UREL\\'.$ExtraExportLibrary.'.lib"';
+						addLinkDescriptorCommand ($linkCommand,"false", "false");
+						}
+					}
+				}
+			}
+
+
+		# TARGET *.IN
+		#------------
+		$linkCommand = $deleteCommand.'"${target.data}\\${output.file.root}.in"';
+		addLinkDescriptorCommand ($linkCommand, "false", "false", undef, undef, undef, undef, (0,1));
+				
+		$linkCommand = 'ar.exe cr "${target.data}\\${output.file.root}.in" ${var:LINK_OBJS}';
+		addLinkDescriptorCommand ($linkCommand);
+		
+
+		# Perform Link
+
+	#	Establish the entry point symbol
+		my $EntrySymbol;
+		if ($BasicTrgType=~/^DLL$/o) {
+			$EntrySymbol = '_E32Dll';
+		}
+		elsif ($BasicTrgType=~/^EXE$/o) {
+			$EntrySymbol = '_E32Startup';
+		}
+		my $AbsentSubst = '';
+		if ($EntrySymbol) {
+			$AbsentSubst = " -absent $EntrySymbol";
+		}
+
+		if ($BasicTrgType=~/^DLL$/o || $TrgType=~/^EXEXP$/o || $TrgType=~/^EXEDLL$/o) {
+
+	#		generate a .DEF file from the objects and static libraries
+			$linkCommand = "$Dlltool $PlatOpt{Dlltool} --output-def ".'"${target.data}\\'.$tempFilenameRoot.'.inf" "${target.data}\\${output.file.root}.in"';
+
+			foreach (@StatLibList) {
+				$linkCommand .= ' "${var:KIT_EPOCROOT}'.kitRelativePath($StatLinkPath).$_.'"';
+			}
+
+			addLinkDescriptorCommand ($linkCommand);
+
+	#		reorder the .DEF file taking frozen exports into account if there are any
+	#			call perl on the script here so nmake will die if there are errors - this doesn't happen if calling perl in a batch file
+			$linkCommand = 'perl.exe -S makedef.pl -Deffile "${target.data}\\'.$tempFilenameRoot.'.inf" '.$AbsentSubst;
+			if (-e $DefFile) { # effectively "if project frozen ..."
+				$linkCommand .= " -Frzfile \"".'${var:DEF_FILE}'."\"";
+			}
+			# freeze ordinals, a maximum of 2, for polymorphic dlls
+			my $Ordinal;
+			my $Num=1;
+			foreach $Ordinal (&main::Exports) {
+				$linkCommand .= " -$Num $Ordinal";
+				$Num++;
+			}
+			$linkCommand .= ' "${target.data}\\'.$tempFilenameRoot.'.def"';
+			addLinkDescriptorCommand ($linkCommand);
+
+	#		delete the unordered definition file
+			$linkCommand = $deleteCommand.'"${target.data}\\'.$tempFilenameRoot.'.inf"';
+			addLinkDescriptorCommand ($linkCommand, "false", "false");
+
+	#		generate an export object from the ordered .DEF file
+			$linkCommand = "$Dlltool $PlatOpt{Dlltool} --def".' "${target.data}\\'.$tempFilenameRoot.'.def"'.
+				' --output-exp "${target.data}\\'.$tempFilenameRoot.'.exp"'.
+				" --dllname \"$LinkAs\"";
+
+			my $warningMessage;
+				
+			if (&main::ExportUnfrozen) {
+				$warningMessage = $exportUnfrozenWarningMessage;
+				$linkCommand .= ' --output-lib "${var:KIT_EPOCROOT}'.kitRelativePath($LibPath).'${var:IMPORT_LIBRARY}"';
+			}
+			
+			addLinkDescriptorCommand ($linkCommand, undef, undef, undef, undef, $warningMessage);
+		}
+
+	#	call ld to do base relocations (and dll exports)
+		if ($BasicTrgType=~/^(DLL|EXE)/o) {
+			$linkCommand = "$Link $PlatOpt{Ld} -s";	
+			if ($BasicTrgType=~/^DLL$/o) {
+				$linkCommand .= " $PlatOpt{Entry} $EntrySymbol -u $EntrySymbol ".'"${target.data}\\'.$tempFilenameRoot.'.exp" --dll ';
+			}
+			elsif ($BasicTrgType=~/^EXE$/o) {
+				$linkCommand .= " $PlatOpt{Entry} $EntrySymbol -u $EntrySymbol ";
+			}
+	#		--whole-archive is required here apparently because of a defect in the gcc toolchain
+	#		the flag can probably be removed with a later version of gcc
+
+			$linkCommand .= '--base-file "${target.data}\\${output.file.root}.bas" -o "${target.data}\\${output.file.name}" '.
+				'${var:FIRST_LIB} --whole-archive "${target.data}\\${output.file.root}.in" '.
+				"--no-whole-archive";
+			$linkCommand .= ' ${var:COMMON_LINK_FLAGS} ${var:LIBS}';
+			addLinkDescriptorCommand ($linkCommand, undef, undef, undef, $FirstLib);
+
+	#		delete temporary files
+			if ($BasicTrgType=~/^DLL$/o || $TrgType=~/^EXEXP$/o || $TrgType=~/^EXEDLL$/o) {
+				$linkCommand = $deleteCommand.'"${target.data}\\'.$tempFilenameRoot.'.exp"';
+				addLinkDescriptorCommand ($linkCommand, "false", "false", undef, undef, undef, undef, (0,1));
+			}
+			$linkCommand = $deleteCommand.'"${target.data}\\${output.file.name}"';
+			addLinkDescriptorCommand ($linkCommand, "false", "false");
+
+	#		call dlltool to do base relocations (and dll exports)
+			$linkCommand = "$Dlltool $PlatOpt{Dlltool} ";
+			if ($BasicTrgType=~/^DLL$/o || $TrgType=~/^EXEXP$/o || $TrgType=~/^EXEDLL$/o) {
+				$linkCommand .= '--def "${target.data}\\'.$tempFilenameRoot.'.def" '.
+					"--dllname \"$LinkAs\" ";
+			}
+			$linkCommand .= '--base-file "${target.data}\\${output.file.root}.bas" '.
+				'--output-exp "${target.data}\\'.$tempFilenameRoot.'.exp" ';
+			addLinkDescriptorCommand ($linkCommand);
+
+	#		delete temporary files
+			$linkCommand = $deleteCommand.'"${target.data}\\${output.file.root}.bas"';
+			addLinkDescriptorCommand ($linkCommand, "false", "false");
+
+	#		call ld to link the target
+			$linkCommand = "$Link $PlatOpt{Ld}";
+			if ($Bld=~/^U?REL$/o) {
+				$linkCommand .= " -s";
+			}
+			if ($BasicTrgType=~/^DLL$/o) {
+				$linkCommand .= " $PlatOpt{Entry} $EntrySymbol -u $EntrySymbol --dll ";
+			}
+			elsif ($BasicTrgType=~/^EXE$/o) {
+				$linkCommand .= " $PlatOpt{Entry} $EntrySymbol -u $EntrySymbol ";
+			}
+	#		--whole-archive is required here apparently because of a defect in the gcc toolchain
+	#		the flag can probably be removed with a later version of gcc
+			$linkCommand .= '"${target.data}\\'.$tempFilenameRoot.'.exp" '.
+				'-Map "${output}\\${output.file.name}.map" -o "${target.data}\\${output.file.name}" '.
+				'${var:FIRST_LIB} --whole-archive "${target.data}\\${output.file.root}.in" '.
+				"--no-whole-archive";
+			$linkCommand .= ' ${var:LIBS}';
+
+			if ($BasicTrgType=~/^LIB$/o) {				
+			addLinkDescriptorCommand ($linkCommand, undef, undef, undef, undef);
+			}
+			else {
+			addLinkDescriptorCommand ($linkCommand, undef, undef, undef, $FirstLib);
+			}
+
+	#		delete temporary files
+			$linkCommand = $deleteCommand.'"${target.data}\\'.$tempFilenameRoot.'.exp"';
+			addLinkDescriptorCommand ($linkCommand, "false", "false");
+
+			if ($Bld=~/DEB$/o) {
+				$linkCommand = $Objcopy.' -X "${target.data}\\${output.file.name}" "${output}\\${output.file.root}.sym"';
+				addLinkDescriptorCommand ($linkCommand);
+			}
+
+			$linkCommand = "petran.exe $PlatOpt{Petran} -version ". &Genutl_VersionToUserString(%Version). " -sid ". &main::SecureId(). ' "${target.data}\\${output.file.name}" "${output}\\${output.file.name}" ';
+
+			if (&main::CompressTarget) {
+				$linkCommand .= ' -nocompress';
+			}
+			if (&main::AllowDllData) {
+				$linkCommand .= ' -allow';
+			}
+			if (not &main::CallDllEntryPoints) {
+				$linkCommand .= ' -nocall';
+			}
+			if (&main::DataLinkAddress) {
+				$linkCommand .= ' -datalinkaddress '.&main::DataLinkAddress;
+			}
+			if (&main::FixedProcess) {
+				$linkCommand .= ' -fixed';
+			}
+			if (&main::HeapSize) {
+				my %HeapSize=&main::HeapSize;
+				$linkCommand .= ' -heap '.$HeapSize{Min}.' '.$HeapSize{Max};
+			}
+			if (&main::ProcessPriority) {
+				$linkCommand .= ' -priority '.&main::ProcessPriority;
+			}
+			if (&main::StackSize) {
+				$linkCommand .= ' -stack '.&main::StackSize;
+			}
+			my $i=1;
+			foreach (@UidList) {
+				$linkCommand .= " -uid$i $_";
+				$i++;
+			}
+				
+			$linkCommand .= ' -capability '.&main::Capability;
+			
+			if (&main::VendorId) {
+			$linkCommand .= ' -vid '.&main::VendorId;
+			}
+		
+			addLinkDescriptorCommand ($linkCommand, "false");
+			
+			$linkCommand = $deleteCommand.'"${target.data}\\${output.file.name}"';
+			addLinkDescriptorCommand ($linkCommand, "false", "false");
+		}
+		elsif ($BasicTrgType=~/^LIB$/o) {
+			$linkCommand = $copyCommand.'"${target.data}\\${output.file.root}.in" "${var:KIT_EPOCROOT}'.kitRelativePath($StatLinkPath).'${output.file.name}"';
+			addLinkDescriptorCommand ($linkCommand,"false", "false");
+		}
+	}
+	
+###############################################
+# GCCE library generation and link stage      #
+# GCCE only supported for CW 3.1 and greater #
+###############################################
+
+	elsif ($Plat eq "GCCE" || $CustGCCE)
+	{	
+	
+        if ($BasicTrgType=~/^LIB$/o) {
+	        $linkCommand = 'ar cr ${output}\\${output.file.name} ${var:LINK_OBJS} ${var:LIBS}';
+	        addLinkDescriptorCommand ($linkCommand);
+         }
+         
+		elsif ($BasicTrgType=~/^(DLL|EXE)/o) {
+        
+        $linkCommand = 'arm-none-symbianelf-ld';
+        my $GCCE_LibGCCPath = ' -L';
+        $GCCE_LibGCCPath .= '"'.GetGCCELibPath("-print-file-name=libsupc++.a").'"';
+        $GCCE_LibGCCPath .= ' -L';
+        $GCCE_LibGCCPath .= '"'.GetGCCELibPath("-print-libgcc-file-name").'"';
+		$linkCommand .= $GCCE_LibGCCPath;
+		$linkCommand .=	' ${var:COMMON_LINK_FLAGS}';
+		$linkCommand .= ' --target1-abs --no-undefined -nostdlib -Ttext 0x8000 -Tdata 0x400000';
+		$linkCommand .= ' -shared --default-symver -soname '.$LinkAs." ";
+		
+		if ($Bld=~/REL$/o) {
+			$linkCommand .= ' -Map "${output}\\${output.file.name}.map"';
+		}
+		
+		if ($BasicTrgType=~/^DLL$/o)
+			{
+			$linkCommand .= ' --entry _E32Dll -u _E32Dll';
+			}
+		elsif ($BasicTrgType=~/^EXE$/o)
+			{
+			$linkCommand .= ' --entry _E32Startup -u _E32Startup';
+			}		
+
+		$linkCommand .= ' ${var:FIRST_LIB}';
+		$linkCommand .= ' -o "${target.data}\\${output.file.name}" ${var:LINK_OBJS} ${var:LIBS}';
+		$linkCommand .= ' -lsupc++ -lgcc'.' '.$linkeropts; 
+		addLinkDescriptorCommand ($linkCommand, undef, undef, undef, $FirstLib);
+		
+		
+		$linkCommand = 'cmd.exe /C copy "${target.data}\\${output.file.name}" "${output}\\${output.file.root}.sym"';
+		addLinkDescriptorCommand ($linkCommand);
+		
+		# copy the project .def file for prep
+		if ($DefFile and !$NoExportLibrary)
+		{
+			unless (&main::ExportUnfrozen)
+			{
+        	$linkCommand = 'cmd.exe /C copy "${var:DEF_FILE}" "${target.data}\\${var:IMPORT_LIBRARY_NO_EXT}.prep.def"';
+			addLinkDescriptorCommand ($linkCommand);
+			}
+		}
+		
+		$linkCommand  = '${var:KIT_EPOCROOT}\\epoc32\\tools\\elf2e32.exe ';		
+		
+		# Change - exexps are allowed data, but they look like dlls to elftran....
+		if (&main::AllowDllData || $TrgType=~/^EXEXP$/o || $TrgType=~/^EXEDLL$/o) {
+			$linkCommand .= ' --dlldata';
+		}
+
+		if (&main::DataLinkAddress) {
+			$linkCommand .= ' --datalinkaddress=',&main::DataLinkAddress;
+		}
+		if (&main::FixedProcess) {
+			$linkCommand .=	' --fixedaddress';
+		}
+		
+		$linkCommand .= ' --sid='.&main::SecureId();
+		
+		if (&main::HeapSize) {
+			my %HeapSize=&main::HeapSize;
+			$linkCommand.=' --heap '.$HeapSize{Min} .','.$HeapSize{Max};
+		}
+		
+		if (&main::ProcessPriority) {
+			$linkCommand .=	' --priority='.&main::ProcessPriority;
+		}
+		
+		if (&main::StackSize) {
+			$linkCommand .= ' --stack='.&main::StackSize;
+		}
+		
+		my $i=1;
+		foreach (@UidList) {
+			$linkCommand .= " --uid$i=$_";
+			$i++;
+		}
+		if (&main::VendorId) {
+			$linkCommand .= ' --vid='.&main::VendorId;
+		}
+		
+		$linkCommand .= ' --capability='.&main::Capability;
+		
+	
+		if(($BasicTrgType=~/^DLL/ && $TrgType!~/^DLL/ ) || $TrgType=~/^EXEXP/) {
+	 		$linkCommand .= ' --targettype='.$TrgType;
+ 		}
+ 		else {
+ 			$linkCommand .= ' --targettype='.$BasicTrgType;
+ 		}
+		
+		$linkCommand .= ' --output="${output}\\${output.file.name}"';
+		
+		my $warningMessage;
+		if ($BasicTrgType=~/^DLL$/o || $TrgType=~/^EXEXP$/o || $TrgType=~/^EXEDLL$/o) {
+			if ($DefFile and !$NoExportLibrary) {
+				$linkCommand .= ' --definput="${target.data}\\${var:IMPORT_LIBRARY_NO_EXT}.prep.def"';
+			}
+			$linkCommand .= ' --dso=';
+			$linkCommand .= '"${var:KIT_EPOCROOT}\\EPOC32\\RELEASE\\ARMV5\\LIB\\${var:IMPORT_LIBRARY}"';
+				
+			$linkCommand .= ' --defoutput=';
+			$linkCommand .= '"${target.data}\\${var:IMPORT_LIBRARY_NO_EXT}.def"';
+				
+			if (&main::ExportUnfrozen) {
+				$warningMessage = $exportUnfrozenWarningMessage;
+				$linkCommand .= ' --unfrozen';
+			}
+		}
+		
+		$linkCommand .= ' --elfinput="${target.data}\\${output.file.name}"';
+		$linkCommand .= ' --linkas='.$LinkAs;
+		#Change - LIB path is hardcoded here...
+		$linkCommand .= ' --libpath="${var:KIT_EPOCROOT}\\EPOC32\\RELEASE\\ARMV5\\LIB"';
+		
+        if ($BasicTrgType=~/^DLL$/o && $TrgType!~/^DLL/){
+			my $Export;
+			my $Ordinal=1;
+			foreach $Export (&main::Exports)
+				{
+				if ($Ordinal eq 1) {
+					$linkCommand .= ' --sysdef=';
+				}
+				elsif ($Ordinal ne 1) {
+					$linkCommand .= ';';
+					}
+					
+				$linkCommand .= "$Export,".$Ordinal;
+				$Ordinal++;
+				}
+		}
+		
+		addLinkDescriptorCommand ($linkCommand, undef, undef, undef, undef, $warningMessage);
+				
+		} # end...elsif if ($BasicTrgType=~/^(DLL|EXE)/o)
+		
+		# copy def file output
+		if ($BasicTrgType=~/^DLL$/o || $TrgType=~/^EXEXP$/o || $TrgType=~/^EXEDLL$/o) {
+			$linkCommand = 'cmd.exe /C copy  "${target.data}\\${var:IMPORT_LIBRARY_NO_EXT}.def" "${Project}\${var:IMPORT_LIBRARY_NO_EXT}.def"';
+			addLinkDescriptorCommand($linkCommand);
+		}
+		
+		# copy the import lib (dso) created
+		if ($BasicTrgType=~/^DLL$/o || $TrgType=~/^EXEXP$/o || $TrgType=~/^EXEDLL$/o) {
+			if ($DefFile and !$NoExportLibrary) {
+				$linkCommand = 'cmd.exe /C copy ${var:KIT_EPOCROOT}\\EPOC32\\RELEASE\\ARMV5\\LIB\\${var:IMPORT_LIBRARY} ${var:KIT_EPOCROOT}\\EPOC32\\RELEASE\\ARMV5\\LIB\\${output.file.root}.dso';
+			}
+			addLinkDescriptorCommand($linkCommand);
+		}
+		
+	
+	} # end  GCCE link stage... elsif ($Plat eq "GCCE")
+	
+	
+	if ($addHeaders)
+		{
+		# Ideally we would do this for all targets, both UREL and UDEB.  This would,
+		# however, be very slow - so we just do it for the first target we come to.
+		my $cpp = &PreprocessorToUseExe();
+		my $cppCommandLine = "$cpp.EXE -M -MG -nostdinc ";
+		my $preInclude = "";
+
+		if (($Plat eq "ARMV5" || $Plat eq "ARMV5_ABIV2" || $Plat eq "ARMV5_ABIV1" || $Plat eq "GCCE" || $IsPlatCustomization) && $PrefixFile)
+			{
+			$preInclude = $PrefixFile;
+			$preInclude =~ s/^.*://;
+			}
+		elsif($VariantFile)
+			{	    
+		    $preInclude = $VariantFile;
+			}
+
+		$cppCommandLine .= '-include '.Path_RltToWork($preInclude).' ' if $preInclude;
+
+		foreach (&main::UserIncPaths, &main::SysIncPaths)
+			{
+			$cppCommandLine .= '-I '.&Path_Chop(&Path_RltToWork($_)).' ';
+			}
+
+		foreach (@MacroList)
+			{
+			#ARMCC requires escaped '"', but CPP doesn't like them
+			s/\\\"/\"/g if /^__PRODUCT_INCLUDE__/; 
+			
+			$cppCommandLine .= '-D'.$_.' ';
+			}
+		
+		my $SourceStructRef=&main::SourceStructRef;
+		my %localIncludes;
+
+		foreach my $SourceRef (@$SourceStructRef)
+	   		{
+			$file = Path_RltToWork(($$SourceRef{SrcPath}.$$SourceRef{CurFile}));
+
+			# ensure the case of the extension is what GCC expects
+			$file =~ s/\.CPP$/.cpp/i;
+			$file =~ s/\.C$/.c/i;
+			$file =~ s/\.s$/.S/i;
+
+			open CPPPIPE,$cppCommandLine.$file." |" or die "ERROR: Can't invoke CPP.EXE\n";
+
+			while (<CPPPIPE>)
+				{
+				#convert any Unix slashes found in CPP output to DOS slashes
+				s/\//\\/g;	
+				while (/\.(\.\\|\\){1}\S+\.(hrh|h|inl){1}/gi)
+					{
+					my $file = $&;
+					my $filePath = &main::Path_Split('Path',$file);
+						
+					# Ignore files that are clearly not local to the project
+					next if ($filePath =~ /\\epoc32\\/i);
+
+					# Ignore files that are #included with intermediate directories -
+					# we can't guarantee these will be on an Access Path.
+					next if ($filePath =~ /\w+\\\.\./);
+
+					# Finally confirm that the file we have is definitely on an Access Path
+					my $presentOnAccessPath = 0;
+					foreach my $accessPath (&main::UserIncPaths, &main::SysIncPaths)
+						{
+						my $accessPathCompare = $accessPath;
+						$accessPathCompare =~ s/\\/_/g;
+
+						my $filePathCompare = $filePath;
+						$filePathCompare =~ s/(\.\\|\.\.\\)//g;
+						$filePathCompare =~ s/\\/_/g;
+
+						$presentOnAccessPath = 1 if ($accessPathCompare =~ /$filePathCompare$/i);
+						}
+					next if (!$presentOnAccessPath);
+
+					# Maintain availability of original case of filename using a lc keyed hash
+					my $localInclude = &main::Path_Split('Base',$file).&main::Path_Split('Ext',$file);					
+					$localIncludes{lc ($localInclude)} = $localInclude unless (!-e $file);
+					}
+				}
+			}
+
+		foreach my $localInclude (sort keys %localIncludes)
+			{
+			addFile($localIncludes{$localInclude}, "Text", 0, "", "Headers");
+			}
+
+		$addHeaders = 0;
+		}
+
+
+	# Add DOCUMENT specified files that we know we can add - we only add these for one target,
+	# as they should be identical through-out
+
+	if ($addDocuments)
+		{
+		foreach my $document (@DocList)
+			{
+			# Only add files as Documents if they haven't already been added to
+			# the target (it's not possible to have duplicate entries) and if they
+			# have an extension we know about.
+
+			next if (grep (/$document/i, @addedFiles));
+
+			my $extension = $document;
+			$extension =~ s/^.*\.//;
+
+			next if (!grep (/$extension/i, @compatibleDOCUMENTExtensions));
+			
+			addFile($document, "Text", "", "", "Documents");
+			}
+
+		$addDocuments = 0;
+		}
+
+
+	# Create the link descriptor file
+
+	$xmlLinkDescriptorCommandParent->addText("\n\t\t\t");
+
+	if ($CW_major_version >= 3)
+		{
+		$xmlLinkDescriptorDumpFileParent->addText("\n\t\t\t");
+		}
+
+	&main::CreateExtraFile("${ExtraFilesPath}$linkDescriptorFile", $xmlLinkDescriptorDoc->toString);
+	addFile($linkDescriptorFile, "Text", "", "", "Link");	
+	
+	# Apply the changed settings
+
+	my $settinglist = $xmlTarget->getElementsByTagName("SETTINGLIST",0)->item(0);
+	my @settingnodes = $settinglist->getElementsByTagName("SETTING",0);
+	foreach my $setting (@settingnodes)
+		{
+		my $element = $setting->getElementsByTagName("NAME",0)->item(0);
+		my $settingname = $element->getFirstChild->getData();
+		my $replacement = $changedsettings{$settingname};
+		if (defined $replacement) 
+			{
+			if ($replacement eq "{}")
+				{
+				if ($settingname eq "UserSearchPaths")
+					{
+					&addUserSearchPaths($setting);
+					}
+				elsif ($settingname eq "SystemSearchPaths")
+					{
+					&addSystemSearchPaths($setting);
+					}
+				elsif ($settingname eq "UserSourceTrees")
+					{
+					&addSourceTrees($setting);
+					}
+				elsif ($settingname eq "FileList")
+					{
+					&addDownloadFileList($setting, @ResourceDownloadList);
+					}
+				}
+			elsif ($replacement =~ /^{(.+)}(.+)$/)
+				{					
+				&changePathSetting($setting,$1,$2);
+				}
+			else
+				{
+				&changeValue($setting,$replacement);
+				}
+			}
+		}
+	}
+
+
+sub addLinkDescriptorCommand($$;$;$;$;$;$;$;) {		
+	my ($linkCommand, $parseStdOut, $parseStdErr, $outputParser, $firstLibProcessing,
+	    $linkWarning, $linkInformation, @successCodes) = @_;
+
+	my $structIndent = "\n\t\t\t\t";
+	my $settingIndent = "$structIndent\t";
+	my $simpleIndent = "$settingIndent\t";
+	my $successCodeArrayIndent = $simpleIndent;
+	my $successCodeSimpleIndent = "$successCodeArrayIndent\t";
+
+	my $structElement = new XML::DOM::Element($xmlLinkDescriptorDoc,"struct");
+	$xmlLinkDescriptorCommandParent->addText("$structIndent");
+	$xmlLinkDescriptorCommandParent->appendChild ($structElement);
+
+	my $settingElementTemplate = new XML::DOM::Element($xmlLinkDescriptorDoc,"setting");
+	$settingElementTemplate->setAttribute("uuid-alias", ".");
+	my $simpleElementTemplate = new XML::DOM::Element($xmlLinkDescriptorDoc,"simple");
+
+	my $settingElement;
+	my $simpleElement;
+
+	$settingElement = $settingElementTemplate->cloneNode(0);
+	$simpleElement = $simpleElementTemplate->cloneNode(0);
+	
+	$settingElement->setAttribute ("entry", "linkCommand");
+	$structElement->addText ($settingIndent);
+	$structElement->appendChild ($settingElement);
+
+	$simpleElement->addText ($linkCommand);
+
+	$settingElement->addText ($simpleIndent);
+	$settingElement->appendChild ($simpleElement);
+	$settingElement->addText($settingIndent);
+	
+	if (defined $parseStdOut)
+		{
+		$settingElement = $settingElementTemplate->cloneNode(0);
+		$simpleElement = $simpleElementTemplate->cloneNode(0);
+
+		$settingElement->setAttribute("entry", "parseStdOut");
+		$simpleElement->addText($parseStdOut);
+
+		$structElement->addText ($settingIndent);
+		$structElement->appendChild ($settingElement);
+
+		$settingElement->addText ($simpleIndent);
+		$settingElement->appendChild ($simpleElement);
+		$settingElement->addText($settingIndent);
+		}
+	
+	if (defined $parseStdErr)
+		{
+		$settingElement = $settingElementTemplate->cloneNode(0);
+		$simpleElement = $simpleElementTemplate->cloneNode(0);
+
+		$settingElement->setAttribute("entry", "parseStdErr");
+		$simpleElement->addText($parseStdErr);
+
+		$structElement->addText ($settingIndent);
+		$structElement->appendChild ($settingElement);
+
+		$settingElement->addText ($simpleIndent);
+		$settingElement->appendChild ($simpleElement);
+		$settingElement->addText($settingIndent);
+		}
+
+	if (defined $outputParser)
+		{
+		$settingElement = $settingElementTemplate->cloneNode(0);
+		$simpleElement = $simpleElementTemplate->cloneNode(0);
+
+		$settingElement->setAttribute("entry", "outputParser");
+		$simpleElement->addText($outputParser);
+
+		$structElement->addText ($settingIndent);
+		$structElement->appendChild ($settingElement);
+
+		$settingElement->addText ($simpleIndent);
+		$settingElement->appendChild ($simpleElement);
+		$settingElement->addText($settingIndent);
+		}
+
+	if (defined $firstLibProcessing)
+		{
+		$settingElement = $settingElementTemplate->cloneNode(0);
+		$simpleElement = $simpleElementTemplate->cloneNode(0);
+
+		$settingElement->setAttribute("entry", "firstLibProcessing");
+		$simpleElement->addText($firstLibProcessing);
+
+		$structElement->addText ($settingIndent);
+		$structElement->appendChild ($settingElement);
+
+		$settingElement->addText ($simpleIndent);
+		$settingElement->appendChild ($simpleElement);
+		$settingElement->addText($settingIndent);
+		}
+
+	if (defined $linkWarning)
+		{
+		$settingElement = $settingElementTemplate->cloneNode(0);
+		$simpleElement = $simpleElementTemplate->cloneNode(0);
+
+		$settingElement->setAttribute("entry", "linkWarning");
+		$simpleElement->addText($linkWarning);
+
+		$structElement->addText ($settingIndent);
+		$structElement->appendChild ($settingElement);
+
+		$settingElement->addText ($simpleIndent);
+		$settingElement->appendChild ($simpleElement);
+		$settingElement->addText($settingIndent);
+		}
+
+	if (defined $linkInformation)
+		{
+		$settingElement = $settingElementTemplate->cloneNode(0);
+		$simpleElement = $simpleElementTemplate->cloneNode(0);
+
+		$settingElement->setAttribute("entry", "linkInformation");
+		$simpleElement->addText($linkInformation);
+
+		$structElement->addText ($settingIndent);
+		$structElement->appendChild ($settingElement);
+
+		$settingElement->addText ($simpleIndent);
+		$settingElement->appendChild ($simpleElement);
+		$settingElement->addText($settingIndent);
+		}
+
+	if (@successCodes)
+		{
+		$settingElement = $settingElementTemplate->cloneNode(0);
+		$settingElement->setAttribute("entry", "successCodes");
+
+		my $arrayElement = new XML::DOM::Element($xmlLinkDescriptorDoc,"array");
+		$arrayElement->setAttribute("inheritance", "none");
+		
+		foreach my $successCode (@successCodes)
+			{
+			$simpleElement = $simpleElementTemplate->cloneNode(0);
+			$simpleElement->addText($successCode);
+			$arrayElement->addText ($successCodeSimpleIndent);
+			$arrayElement->appendChild ($simpleElement);
+			}
+
+		$arrayElement->addText ($successCodeArrayIndent);
+
+		$settingElement->addText ($successCodeArrayIndent);
+		$settingElement->appendChild ($arrayElement);
+		$settingElement->addText($settingIndent);
+
+		$structElement->addText ($settingIndent);
+		$structElement->appendChild ($settingElement);
+		}
+
+	$structElement->addText($structIndent);
+}
+
+
+sub addLinkDescriptorSymbol ($$) {
+	my ($symbolName, $symbolValue) = @_;
+	
+	my $structIndent = "\n\t\t\t\t";
+	my $settingIndent = "$structIndent\t";
+	my $simpleIndent = "$settingIndent\t";
+
+	my $structElement = new XML::DOM::Element($xmlLinkDescriptorDoc,"struct");
+	$xmlLinkDescriptorSymbolParent->addText("$structIndent");
+	$xmlLinkDescriptorSymbolParent->appendChild ($structElement);
+
+	my $settingElementTemplate = new XML::DOM::Element($xmlLinkDescriptorDoc,"setting");
+	$settingElementTemplate->setAttribute("uuid-alias", ".");
+	my $simpleElementTemplate = new XML::DOM::Element($xmlLinkDescriptorDoc,"simple");
+
+	my $symbolNameSettingElement;
+	my $symbolNameSimpleElement;
+	my $symbolValueSettingElement;
+	my $symbolValueSimpleElement;
+
+	$symbolNameSettingElement = $settingElementTemplate->cloneNode(0);
+	$symbolNameSimpleElement = $simpleElementTemplate->cloneNode(0);
+	$symbolValueSettingElement = $settingElementTemplate->cloneNode(0);
+	$symbolValueSimpleElement = $simpleElementTemplate->cloneNode(0);
+
+	$symbolNameSettingElement->setAttribute("entry", "symbolName");
+	$symbolNameSimpleElement->addText ($symbolName);
+	$symbolValueSettingElement->setAttribute("entry", "symbolValue");
+	$symbolValueSimpleElement->addText ($symbolValue);
+
+	$symbolNameSettingElement->addText ($simpleIndent);
+	$symbolNameSettingElement->appendChild ($symbolNameSimpleElement);
+	$symbolNameSettingElement->addText($settingIndent);
+	$symbolValueSettingElement->addText ($simpleIndent);
+	$symbolValueSettingElement->appendChild ($symbolValueSimpleElement);
+	$symbolValueSettingElement->addText ($settingIndent);
+
+	$structElement->addText ($settingIndent);
+	$structElement->appendChild ($symbolNameSettingElement);
+	$structElement->addText ($settingIndent);
+	$structElement->appendChild ($symbolValueSettingElement);
+	$structElement->addText ($structIndent);
+	}
+
+
+sub addLinkDescriptorDumpFile ($$) {
+	my ($dumpFileContent, $dumpFileName) = @_;
+	
+	my $structIndent = "\n\t\t\t\t";
+	my $settingIndent = "$structIndent\t";
+	my $simpleIndent = "$settingIndent\t";
+
+	my $structElement = new XML::DOM::Element($xmlLinkDescriptorDoc,"struct");
+	$xmlLinkDescriptorDumpFileParent->addText("$structIndent");
+	$xmlLinkDescriptorDumpFileParent->appendChild ($structElement);
+
+	my $settingElementTemplate = new XML::DOM::Element($xmlLinkDescriptorDoc,"setting");
+	$settingElementTemplate->setAttribute("uuid-alias", ".");
+	my $simpleElementTemplate = new XML::DOM::Element($xmlLinkDescriptorDoc,"simple");
+
+	my $dumpFileContentSettingElement;
+	my $dumpFileContentSimpleElement;
+	my $dumpFileNameSettingElement;
+	my $dumpFileNameSimpleElement;
+
+	$dumpFileContentSettingElement = $settingElementTemplate->cloneNode(0);
+	$dumpFileContentSimpleElement = $simpleElementTemplate->cloneNode(0);
+	$dumpFileNameSettingElement = $settingElementTemplate->cloneNode(0);
+	$dumpFileNameSimpleElement = $simpleElementTemplate->cloneNode(0);
+
+	$dumpFileContentSettingElement->setAttribute("entry", "dumpFileContent");
+	$dumpFileContentSimpleElement->addText ($dumpFileContent);
+	$dumpFileNameSettingElement->setAttribute("entry", "dumpFileName");
+	$dumpFileNameSimpleElement->addText ($dumpFileName);
+
+	$dumpFileContentSettingElement->addText ($simpleIndent);
+	$dumpFileContentSettingElement->appendChild ($dumpFileContentSimpleElement);
+	$dumpFileContentSettingElement->addText($settingIndent);
+	$dumpFileNameSettingElement->addText ($simpleIndent);
+	$dumpFileNameSettingElement->appendChild ($dumpFileNameSimpleElement);
+	$dumpFileNameSettingElement->addText ($settingIndent);
+
+	$structElement->addText ($settingIndent);
+	$structElement->appendChild ($dumpFileContentSettingElement);
+	$structElement->addText ($settingIndent);
+	$structElement->appendChild ($dumpFileNameSettingElement);
+	$structElement->addText ($structIndent);
+	}
+
+
+sub ExtraPlat($) {
+
+# Call PmBld again after reprocessing the MMP file and tweaking various main:: variables
+
+	my ($Plat) = @_;
+	
+	&main::SetVarsFromMmp($Plat);
+	&main::InitLinkPaths();
+
+	foreach (&main::BldList) {
+		&main::SetCurBld($_);
+		&PMPlatProcessMmp(&main::PlatTxt2D);
+		&PMStartBldList;
+		&PMBld;
+	}
+
+}
+
+sub disconnectNode($) {
+
+# Remove a node from its parent, also removing the following text node (if any)
+# The text node is assumed to contain whitespace for file formatting.
+ 
+	my ($node)=@_;
+
+	my $parent = $node->getParentNode;
+	my $sibling = $node->getNextSibling;
+	$parent->removeChild($node);
+	if (defined $sibling && $sibling->getNodeType == TEXT_NODE)
+		{
+		$parent->removeChild($sibling);
+		}
+	return $node;
+}
+
+sub removeNode($) {
+
+# disconnect the node and dispose of it
+
+	my ($node) = @_;
+	&disconnectNode($node);
+	$node->dispose;		# setAttribute("disposed",1);
+}
+
+sub textElement($$$$) {
+	my ($element,$name,$value,$insertionpoint)=@_;
+
+	my $subElement = new XML::DOM::Element($xmlProjectDoc,$name);
+	$subElement->appendChild($xmlProjectDoc->createTextNode($value));
+	$element->insertBefore($subElement, $insertionpoint);
+}
+
+sub addFile($$$$;$) {    
+
+	my ($src, $kind, $debug, $shared, $group) = @_;
+
+	my $linkElement = new XML::DOM::Element($xmlProjectDoc,"FILEREF");
+
+	&textElement($linkElement, "PATHTYPE",   "Name");
+	&textElement($linkElement, "PATH",       $src);
+	&textElement($linkElement, "PATHFORMAT", "Windows");
+
+	my $fileElement = $linkElement->cloneNode(1);
+	$fileElement->setTagName("FILE");
+	&textElement($fileElement, "FILEKIND",   $kind);
+	&textElement($fileElement, "FILEFLAGS",  "Debug") if ($debug);
+
+	$xmlLinkOrder->appendChild($linkElement);
+	$xmlFileList->appendChild($fileElement);
+
+	$xmlLinkOrder->addText("\n");
+	$xmlFileList->addText("\n");
+
+	# Accumulate source group information
+
+	my $groupfile = $linkElement->cloneNode(1);
+	$groupfile->setAttribute("NAME", "$shared$src");			# convenience - remove this later!
+
+	push (@addedFiles, $src) unless ($kind eq "Documents");
+
+	if ($kind eq "Library")
+		{
+		$xmlLibGroup->appendChild($groupfile);
+		$xmlLibGroup->addText("\n");
+		}
+	elsif (defined $group)
+		{
+		if ($group eq "Link")
+			{
+			$xmlLinkGroup->appendChild($groupfile);
+			$xmlLinkGroup->addText("\n");
+			}
+		elsif ($group eq "Resources")
+			{
+			$xmlResourcesGroup->appendChild($groupfile);
+			$xmlResourcesGroup->addText("\n");
+			}
+		elsif ($group eq "Root")
+			{
+			$xmlRootGroup->appendChild($groupfile);
+			$xmlRootGroup->addText("\n");
+			}
+		elsif ($group eq "Headers")
+			{
+			$xmlHeadersGroup->appendChild($groupfile);
+			$xmlHeadersGroup->addText("\n");
+			}
+		elsif ($group eq "Documents")
+			{
+			$xmlDocumentsGroup->appendChild($groupfile);
+			$xmlDocumentsGroup->addText("\n");
+			}
+		}
+	else
+		{
+		$xmlSourceGroup->appendChild($groupfile);
+		$xmlSourceGroup->addText("\n");
+		}
+}
+
+sub addGroup($$) {
+	my ($grouplist,$name)=@_;
+
+	my $group = new XML::DOM::Element($xmlProjectDoc,"GROUP");
+	$grouplist->appendChild($group);
+	$grouplist->addText("\n");
+
+	&textElement($group, "NAME", $name);
+	$group->addText("\n");
+	return $group;
+}
+
+sub addSubTarget($$) {
+	my ($subtargetlist,$name)=@_;
+
+	my $subtarget = new XML::DOM::Element($xmlProjectDoc,"SUBTARGET");
+	$subtargetlist->appendChild($subtarget);
+	$subtargetlist->addText("\n");
+
+	&textElement($subtarget, "TARGETNAME", $name);
+}
+
+sub addOrderedTarget($$) {
+	my ($targetorder,$name)=@_;
+
+	my $orderedtarget = new XML::DOM::Element($xmlProjectDoc,"ORDEREDTARGET");
+	$targetorder->appendChild($orderedtarget);
+	$targetorder->addText("\n");
+
+	&textElement($orderedtarget, "NAME", $name);
+}
+
+sub finaliseProject {
+
+	# Run through the project, removing all unused targets
+	# and build up the TARGETORDER list and the "Build All" target
+
+	my $target;
+	my $targetname;
+
+	my $xmlSubTargetList = new XML::DOM::Element($xmlProjectDoc,"SUBTARGETLIST");
+
+	my $xmlTargetOrder = new XML::DOM::Element($xmlProjectDoc,"TARGETORDER");
+	$xmlTargetOrder->addText("\n");
+
+	my @targets = $xmlProjectDoc->getElementsByTagName("TARGET",1);
+	my @emulatortargetnames;
+	my @othertargetnames;
+	
+	foreach $target (@targets)
+		{			
+		$targetname = $target->getAttribute("NAME");
+
+		if ($targetname eq "")
+			{
+			&removeNode($target);
+			}
+		else
+			{
+			$target->removeAttribute("NAME");
+
+			if ($targetname =~ /^WINSCW/)
+				{
+				push (@emulatortargetnames, $targetname);
+				}
+			else
+				{
+				push (@othertargetnames, $targetname);
+				}
+			}
+		}
+
+	foreach $targetname ((sort @emulatortargetnames), (sort @othertargetnames))
+		{
+		&addSubTarget($xmlSubTargetList, $targetname);
+		&addOrderedTarget($xmlTargetOrder, $targetname);
+		}
+
+	# Build the GROUPLIST
+	
+	my $xmlGroupList = new XML::DOM::Element($xmlProjectDoc,"GROUPLIST");
+
+	# Build the "Root" group
+
+	my %rootfiles;
+	my @rootgroups = $xmlProjectDoc->getElementsByTagName("ROOTGROUP",1);
+	foreach my $group (@rootgroups)
+		{
+		$targetname = $group->getAttribute("TARGET");
+
+		my @files = $group->getElementsByTagName("FILEREF",0);
+		foreach my $file (@files)
+			{
+			my $name = $file->getAttribute("NAME");
+			if (!defined $rootfiles{$name})
+				{
+				# first occurrence - add to list
+				$rootfiles{$name}=1;
+				&textElement($file, "TARGETNAME", $targetname, $file->getFirstChild);
+				$file->removeAttribute("NAME");
+				&disconnectNode($file);					
+				$xmlGroupList->appendChild($file);
+				$xmlGroupList->addText("\n");
+				}
+			}
+		&removeNode($group);
+		}
+
+	# Build the "Source" group
+
+	my $xmlSourceGroup = &addGroup($xmlGroupList,"Source");
+	my %sourcefiles;
+	my @sourcegroups = $xmlProjectDoc->getElementsByTagName("SOURCEGROUP",1);
+	foreach my $group (@sourcegroups)
+		{
+		$targetname = $group->getAttribute("TARGET");
+		my @files = $group->getElementsByTagName("FILEREF",0);
+		foreach my $file (@files)
+			{
+			my $name = $file->getAttribute("NAME");
+			if (!defined $sourcefiles{$name})
+				{
+				# first occurrence - add to list
+				$sourcefiles{$name}=1;
+				&textElement($file, "TARGETNAME", $targetname, $file->getFirstChild);
+				$file->removeAttribute("NAME");
+				&disconnectNode($file);
+				$xmlSourceGroup->appendChild($file);
+				$xmlSourceGroup->addText("\n");
+				}
+			}
+		&removeNode($group);
+		}
+
+
+	# Build the "Headers" group
+			
+	my $xmlHeadersGroup;
+	my %headerfiles;
+	my @headersgroups = $xmlProjectDoc->getElementsByTagName("HEADERSGROUP",1);
+	foreach my $group (@headersgroups)
+		{
+		$targetname = $group->getAttribute("TARGET");
+		my @files = $group->getElementsByTagName("FILEREF",0);
+		foreach my $file (@files)
+			{
+			# Only create the "Headers" group if there are some files to add to it
+			if (!defined $xmlHeadersGroup)
+				{
+				$xmlHeadersGroup = &addGroup($xmlGroupList,"Headers");
+				}
+				
+			my $name = $file->getAttribute("NAME");
+			if (!defined $headerfiles{$name})
+				{
+				# first occurrence - add to list
+				$headerfiles{$name}=1;
+				&textElement($file, "TARGETNAME", $targetname, $file->getFirstChild);
+				$file->removeAttribute("NAME");
+				&disconnectNode($file);
+				$xmlHeadersGroup->appendChild($file);
+				$xmlHeadersGroup->addText("\n");
+				}
+			}
+		&removeNode($group);
+		}
+
+
+	# Build the "Resources" group
+			
+	my $xmlResourcesGroup;
+	my %resourcesfiles;
+	my @resourcesgroups = $xmlProjectDoc->getElementsByTagName("RESOURCESGROUP",1);
+	foreach my $group (@resourcesgroups)
+		{
+		$targetname = $group->getAttribute("TARGET");
+		my @files = $group->getElementsByTagName("FILEREF",0);
+		foreach my $file (@files)
+			{
+			# Only create the main "Resources" groups if there are some files to add
+			# to them
+			if (!defined $xmlResourcesGroup)
+				{
+				$xmlResourcesGroup = &addGroup($xmlGroupList,"Resources");
+				}
+				
+			my $name = $file->getAttribute("NAME");
+			if (!defined $resourcesfiles{$name})
+				{
+				# first occurrence - add to list
+				$resourcesfiles{$name}=1;
+				&textElement($file, "TARGETNAME", $targetname, $file->getFirstChild);
+				$file->removeAttribute("NAME");
+				&disconnectNode($file);
+
+				$xmlResourcesGroup->appendChild($file);
+				$xmlResourcesGroup->addText("\n");
+				}
+			}
+		&removeNode($group);
+		}
+
+		
+	# Build the "Link" group
+			
+	my $xmlLinkGroup = &addGroup($xmlGroupList,"Link");
+	my %linkfiles;
+	my @linkgroups = $xmlProjectDoc->getElementsByTagName("LINKGROUP",1);
+	foreach my $group (@linkgroups)
+		{
+		$targetname = $group->getAttribute("TARGET");
+		my @files = $group->getElementsByTagName("FILEREF",0);
+		foreach my $file (@files)
+			{
+			my $name = $file->getAttribute("NAME");
+			if (!defined $linkfiles{$name})
+				{
+				# first occurrence - add to list
+				$linkfiles{$name}=1;
+				&textElement($file, "TARGETNAME", $targetname, $file->getFirstChild);
+				$file->removeAttribute("NAME");
+				&disconnectNode($file);
+				$xmlLinkGroup->appendChild($file);
+				$xmlLinkGroup->addText("\n");
+				}
+			}
+		&removeNode($group);
+		}
+
+
+	# Build the "Documents" group
+			
+	my $xmlDocumentsGroup;
+	my %documentfiles;
+	my @documentgroups = $xmlProjectDoc->getElementsByTagName("DOCUMENTSGROUP",1);
+	foreach my $group (@documentgroups)
+		{
+		$targetname = $group->getAttribute("TARGET");
+		my @files = $group->getElementsByTagName("FILEREF",0);
+		foreach my $file (@files)
+			{				
+			# Only create the "Documents" group if there are some files to add to it
+			if (!defined $xmlDocumentsGroup)
+				{
+				$xmlDocumentsGroup = &addGroup($xmlGroupList,"Documents");
+				}
+
+			my $name = $file->getAttribute("NAME");
+
+			
+			if (!defined $documentfiles{$name})
+				{
+				# first occurrence - add to list
+				$documentfiles{$name}=1;
+				&textElement($file, "TARGETNAME", $targetname, $file->getFirstChild);
+				$file->removeAttribute("NAME");
+				&disconnectNode($file);
+				$xmlDocumentsGroup->appendChild($file);
+				$xmlDocumentsGroup->addText("\n");
+				}
+			}
+		&removeNode($group);
+		}
+
+
+	# Build the "Lib" group and its subgroups
+
+	my $xmlLibGroup = &addGroup($xmlGroupList, "Libraries");
+	my %libplats;
+	my @libgroups = $xmlProjectDoc->getElementsByTagName("LIBGROUP",1);
+	foreach my $group (@libgroups)
+		{
+		$targetname = $group->getAttribute("TARGET");
+		my $plat = $group->getAttribute("PLAT");
+		if (!defined $libplats{$plat})
+			{
+			$libplats{$plat} = &addGroup($xmlLibGroup, $plat);
+			}
+		my $platgroup = $libplats{$plat};
+		my @files = $group->getElementsByTagName("FILEREF",0);
+		foreach my $file (@files)
+			{
+			my $name = $file->getAttribute("NAME");
+			if (!defined $sourcefiles{"$plat\\$name"})
+				{
+				# first occurrence - add to list
+				$sourcefiles{"$plat\\$name"}=1;
+				&textElement($file, "TARGETNAME", $targetname, $file->getFirstChild);
+				$file->removeAttribute("NAME");
+				&disconnectNode($file);
+				$platgroup->appendChild($file);
+				$platgroup->addText("\n");
+				}
+			}
+		&removeNode($group);
+		}
+
+	# Replace the GROUPLIST & TARGETORDER in the template document
+
+	my $node = $xmlProjectDoc->getElementsByTagName("GROUPLIST",1)->item(0);
+	$node->getParentNode->replaceChild($xmlGroupList, $node);
+
+	$node = $xmlProjectDoc->getElementsByTagName("TARGETORDER",1)->item(0);
+	$node->getParentNode->replaceChild($xmlTargetOrder, $node);
+
+	# Insert the "Build All" target
+
+	my $xmlBuildAll = new XML::DOM::Element($xmlProjectDoc,"TARGET");
+	$xmlBuildAll->addText("\n");
+	&textElement($xmlBuildAll, "NAME", "Build All");
+	my $settinglist = new XML::DOM::Element($xmlProjectDoc,"SETTINGLIST");
+	&textSetting($settinglist, "Linker", "None");
+	&textSetting($settinglist, "Targetname", "Build All");
+	$xmlBuildAll->appendChild($settinglist);
+	$xmlBuildAll->addText("\n");
+	&textElement($xmlBuildAll, "FILELIST", "");
+	$xmlBuildAll->addText("\n");
+	&textElement($xmlBuildAll, "LINKORDER", "");
+	$xmlBuildAll->addText("\n");
+	$xmlBuildAll->appendChild($xmlSubTargetList);
+
+	&addOrderedTarget($xmlTargetOrder, "Build All");
+
+	$node = $xmlProjectDoc->getElementsByTagName("TARGETLIST",1)->item(0);
+	$node->appendChild($xmlBuildAll);
+
+	# Output the result
+
+	&main::Output(
+		$xmlProjectDoc->toString
+	);
+
+}
+
+sub PMEndSrcList {
+
+	my @PlatList=&main::PlatOverrideList();
+	
+	if (scalar @PlatList == 0)
+		{
+		@PlatList = ("WINSCW", "ARM4", "ARMV5");
+
+		if ($CW_major_version >= 3)
+			{
+			push @PlatList, "ARMV5_ABIV1";
+			}
+		}
+
+	shift @PlatList;	# we've already done the first one in the list
+	foreach (@PlatList)
+		{
+		ExtraPlat($_);
+		}
+
+	&finaliseProject();
+
+}
+
+sub GetGCCELibPath($) {
+	my $gnulibgccPath;
+	open PIPE, "arm-none-symbianelf-g++ $_[0] 2>&1 | ";
+	while(<PIPE>){
+		$gnulibgccPath = $_;
+		$gnulibgccPath =~ s/\//\\/g;
+	}
+	close PIPE;
+	my $SearchlibgccDir = &main::Path_Chop(&main::Path_Split('Path', $gnulibgccPath));
+
+	return $SearchlibgccDir;
+}
+
+sub Read_BSF_Options() {
+        my %plat = (main::PlatRec());
+		my @Customization_Data = split(/\n/,$plat{'CUSTOMIZATION_DATA'});
+	foreach my $option (@Customization_Data) {
+			next if ($option =~ /^$/);
+	        warn "Unrecognized BSF syntax: $option.\n"
+		        unless ($option =~ /\s*(\S+)\s+(.+)$/);
+		my $key = uc $1;
+		my $val = $2;
+	        warn "Unrecognized BSF keyword: $key.\n"
+		        unless ($BSF_keywords{$key});
+		if ($key =~ /COMMON_OPTIONS/) {
+		        push @commonOptions, $val;
+			next;
+		}
+		if ($key =~ /THUMB_OPTIONS/) {
+		        push @thumbOptions, $val;
+			next;
+		}
+		if ($key =~ /ARM_OPTIONS/) {
+		        push @armOptions, $val;
+			next;
+		}
+		if ($key =~ /KERNEL_OPTIONS/) {
+		        push @kernelOptions, $val;
+			next;
+		}
+		if ($key =~ /INVARIANT_OPTIONS/) {
+		        push @invariantOptions, $val;
+			next;
+		}
+		if ($key =~ /LD_OPTIONS/) {
+		        push @linkerOptions, $val;
+			next;
+		}
+		if ($key =~ /AR_OPTIONS/) {
+		        push @archiverOptions, $val;
+			next;
+		}
+
+	}
+}
+
+# Set the options passed from BSF file 
+# @param OptionName    - BSF Keyword using which the options would be overridden in the BSF file
+# @param Options       - List of options read from the BSF keyword
+sub Set_BSF_Options($$)
+{
+	my ($OptionName,$Options) = @_;
+	my @Fragments=();
+	
+	if ($CustPlat{'CUSTOMIZES'} && ($CustPlat{'ROOTPLATNAME'} eq "GCCE"))
+	{
+		$CustGCCE=1;
+	}
+	foreach my $val (@{$Options})
+	{		
+		# Check if the value of BSF option is to be set or added/removed.
+		if($val =~ /\+\[.*\]\+|\-\[.*\]\-/)
+		{
+			if (@Fragments = Cl_bpabi::Split_BSF_Options($val,'RemoveOptions'))
+			{
+				foreach my $Opt (@Fragments) 
+				{
+					# Remove trailing white spaces
+					$Opt =~ s/\s+$//;
+					# Substitute '=' with '%' which is a wild card character in makefile.
+					# This is required for cases where option to be removed contains '=' (e.g.'-march=armv5t').
+					# When such options are to be removed, "$(INVARIANT_OPTIONS:-march=armv5t=)" is written in the makefile.
+					# However, because of the occurence of '=', pattern match fails in the makefile and such options are not removed. 
+					# To resolve this, '=' is replaced with '%'  in the makefile so that the substitution pattern looks like 
+					# "$(INVARIANT_OPTIONS:-march%armv5t=)" in makefile (e.g."$(INVARIANT_OPTIONS:-march%armv5t=)").
+					$Opt =~ s/=/%/;
+					if((($OptionName =~ /COMMON_OPTIONS/)
+					|| ($OptionName =~ /THUMB_OPTIONS/)
+					|| ($OptionName =~ /ARM_OPTIONS/)
+					|| ($OptionName =~ /KERNEL_OPTIONS/)
+					|| ($OptionName =~ /INVARIANT_OPTIONS/))
+					&& ($CustGCCE))
+					{
+						$GCCE_CompilerOption = RemoveBsfOptions($Opt,$GCCE_CompilerOption);
+					}
+					elsif($OptionName =~ /COMMON_OPTIONS/)
+					{
+						$CCFLAGS = RemoveBsfOptions($Opt,$CCFLAGS);
+					}
+					elsif(($OptionName =~ /THUMB_OPTIONS/)
+					|| ($OptionName =~ /ARM_OPTIONS/)
+					|| ($OptionName =~ /KERNEL_OPTIONS/))
+					{
+						$CCFLAGS = RemoveBsfOptions($Opt,$CCFLAGS);
+					}
+					elsif($OptionName =~ /INVARIANT_OPTIONS/)
+					{
+						$CCFLAGS = RemoveBsfOptions($Opt,$CCFLAGS);
+					}
+					elsif($OptionName =~ /LD_OPTIONS/)
+					{
+						$linkeropts = RemoveBsfOptions($Opt,$Link);
+						$linkCommand = RemoveBsfOptions($Opt,$Link);
+					}
+					elsif($OptionName =~ /AR_OPTIONS/)
+					{
+						$archiveropts = RemoveBsfOptions($Opt,$linkCommand);
+					}
+				}					
+				@Fragments=();
+			}
+			
+			if (@Fragments = Cl_bpabi::Split_BSF_Options($val,'AddOptions')) 
+			{
+				my $v;
+				foreach $v (@Fragments)
+				{
+					if((($OptionName =~ /COMMON_OPTIONS/)
+					|| ($OptionName =~ /THUMB_OPTIONS/)
+					|| ($OptionName =~ /ARM_OPTIONS/)
+					|| ($OptionName =~ /KERNEL_OPTIONS/)
+					|| ($OptionName =~ /INVARIANT_OPTIONS/))
+					&& ($CustGCCE))
+					{
+						$GCCE_CompilerOption .= ' '.$v.' ';
+					}
+					elsif($OptionName =~ /COMMON_OPTIONS/)
+					{
+						$bsfaddoptions .= ' '.$v.' '; 						
+					}
+					elsif(($OptionName =~ /THUMB_OPTIONS/)
+					|| ($OptionName =~ /ARM_OPTIONS/)
+					|| ($OptionName =~ /KERNEL_OPTIONS/))
+					{
+						$bsfaddoptions .= ' '.$v.' ';	
+					}
+					elsif($OptionName =~ /INVARIANT_OPTIONS/)
+					{
+						$bsfaddoptions .= ' '.$v.' ';
+					}
+					elsif($OptionName =~ /LD_OPTIONS/)
+					{
+						$linkeropts .= ' '.$v.' ';
+					}
+					elsif($OptionName =~ /AR_OPTIONS/)
+					{
+						$archiveropts .= ' '.$v.' ';
+					}
+				}
+				@Fragments=();
+			}
+		}
+		else
+		{
+			if((($OptionName =~ /COMMON_OPTIONS/)
+			|| ($OptionName =~ /THUMB_OPTIONS/)
+			|| ($OptionName =~ /ARM_OPTIONS/)
+			|| ($OptionName =~ /KERNEL_OPTIONS/)
+			|| ($OptionName =~ /INVARIANT_OPTIONS/))
+			&& ($CustGCCE))
+			{
+				$GCCE_CompilerOption .= ' '.$val.' ';
+			}
+			elsif($OptionName =~ /COMMON_OPTIONS/)
+			{
+				$bsfaddoptions .= ' '.$val.' ';
+			}
+			elsif(($OptionName =~ /THUMB_OPTIONS/)
+			|| ($OptionName =~ /ARM_OPTIONS/)
+			|| ($OptionName =~ /KERNEL_OPTIONS/))
+			{
+				$bsfaddoptions .= ' '.$val.' ';
+			}
+			elsif($OptionName =~ /INVARIANT_OPTIONS/)
+			{
+				$bsfaddoptions .= ' '.$val.' ';
+			}
+			elsif($OptionName =~ /LD_OPTIONS/)
+			{
+				$linkeropts .= ' '.$val.' ';
+			}
+			elsif($OptionName =~ /AR_OPTIONS/)
+			{
+				$archiveropts .= ' '.$val.' ';
+			}
+		}	
+	}
+}
+
+sub RemoveBsfOptions($$)
+{
+	my ($Opt_to_replace,$Opt_replaced_in) = @_;
+	
+	$Opt_replaced_in =~ s/$Opt_to_replace//g;
+	return $Opt_replaced_in;
+}
+
+# function to expand the macro as pass with appropriate options
+sub printlist {
+	my $option =shift @_;
+	my @list = @_,
+	my $data;
+	my $finalval=undef;
+	
+	foreach $data (@list)
+	{
+		if($option =~ "-D") {
+			$finalval .= " ".$option.$data;	
+		}
+		else {
+			$finalval .= " ".$option." ".$data;
+		}
+	}
+	return $finalval;
+}
+
+#read the configuration make file into the HASH and use them for further processing
+sub collect_config_data {
+	my($configfile) = @_;
+	open(DATA, "<$configfile");
+	while(<DATA>) 
+	{	
+		my $line = $_;
+		if($line =~ /=/)
+		{
+			if ($line =~ /(.*):=(.*)/)
+			{ 
+				$configdata{$1}=$2;
+			}
+			elsif ($line =~ /(.*)=(.*=.*)/)
+			{ 
+				$configdata{$1}=$2;
+			}
+			elsif ($line =~ /(.*)=(.*)/)
+			{ 
+				$configdata{$1}=$2;
+			}
+		}
+	}
+	close(DATA)
+}
+
+#function is ti fetch the contents of the config data which is read from the configuration make file, 
+# for ex: KERNEL_OPTIONS=$(ARM_INSTRUCTION_SET) $(NO_EXCEPTIONS), this function extracts the value for ARM_INSTRUCTION_SET & NO_EXCEPTIONS
+sub fetch_config_data {
+	my($list) = @_;
+	my $op;
+	my $op1;
+	my $finaldata = undef;
+	
+	my @ip_options = split(/\s+/, $list);	
+	foreach $op (@ip_options)
+	{
+		$op =~ s/\)//g;
+		$op =~ s/\$\(//g;
+		if($op =~ /-/) {
+			$finaldata .= " ".$op;
+		}
+		else {
+			$finaldata .= " ".$configdata{$op};
+		}
+	}
+	return $finaldata;
+}
+
+# function to fix the bsf options, if the bsf option is already present in the CCFLAGS then remove from it so that it can be added from bsf,
+# this is to avoid the duplication of the options passed to the compiler.
+sub fixbsfoptions {
+	my ($options) = @_;
+	my $ccflgs = $CCFLAGS;
+	my $d;
+	my $Pattern = '-{1,2}\S+\s*(?!-)\S*';
+	my @list = $options =~ /$Pattern/g;
+	foreach $d (@list) {
+		if($ccflgs =~ /$d/) {
+				$ccflgs =~ s/$d//g;	
+		}
+		else {
+			if($d =~ /(.*)\s+(.*)/) {
+				my $a = $1;
+				if($ccflgs =~ /$a\s+\S+/) {
+					$ccflgs =~ s/$a\s+\S+//g;
+				}
+			}
+		}
+	}
+	$CCFLAGS = $ccflgs;
+}
+
+# funtion to get the list if the libraries to be linked during linking
+sub GetLibList() {
+	my @LibList;
+	my @StaticLibList;
+	my $Plat=&main::Plat;
+	unless(defined($ENV{RVCT_VER_MAJOR})){
+		my ($rvct_M, $rvct_m, $rvct_b) = RVCT_plat2set::get_version_list($Plat);
+		$ENV{RVCT_VER_MAJOR}=$rvct_M;
+	}
+	&Cl_bpabi::getVariableForNewPlat();
+	my $list = &Cl_bpabi::getConfigVariable('STATIC_LIBS_LIST') ;
+	
+	if (length($list) >0)
+	{
+		@StaticLibList = split(/\s+/, $list);
+	}
+	if($Plat eq "ARMV5" || $Plat eq "ARMV5_ABIV2" || IsCustomization($Plat)) {
+		@LibList=&Armutl_ArmLibList;
+		if(@LibList==0) {
+			my $LibDir = Armutl_ArmLibDir();
+			if (@StaticLibList) {
+				foreach my $lib (@StaticLibList) {
+					push @LibList, ("$LibDir\\$lib");
+				}
+			}
+		}
+	}
+	else
+	{
+		@LibList = ('$(STATIC_LIBS_LIST)');
+	}
+	return @LibList;
+}
+
+1;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/platform/ide_vc6.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,1263 @@
+# Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Makmake-module for creating MAKMAKE MSVC6 IDE makefiles shared by windows platform modules
+# 
+#
+
+package Ide_vc6;
+
+# declare variables global for module
+my $BaseAddressFlag;
+my @CppCall;
+my %IdeBlds=();
+my %PrjHdrs=();
+my @Win32LibList=();
+my $Win32Resrc;
+my $Win32StdHeaders;
+my $MSVCVer;
+
+my $SupText='';
+
+
+require Exporter;
+@ISA=qw(Exporter);
+
+@EXPORT=qw(
+	PMHelp_Mmp
+
+	PMCheckPlatformL
+
+	PMPlatProcessMmp
+
+	PMStartBldList
+		PMBld
+	PMEndBldList
+	PMStartSrcList
+			PMResrcBld
+			PMDoc
+			PMStartSrc
+			PMSrcDepend
+	PMEndSrcList
+);
+
+use strict;
+use Winutl;
+use Pathutl;
+
+sub PMHelp_Mmp {
+# get the windows help from WINUTL
+	&Winutl_Help_Mmp;
+}
+
+sub PMCheckPlatformL {
+	if ((&main::Plat eq 'TOOLS') and (&main::BasicTrgType ne 'EXE') and (&main::BasicTrgType ne 'LIB')) {
+		die "Can't specify anything but EXE or LIB targettypes for this platform\n";
+	}
+}
+
+sub PMPlatProcessMmp (@) {
+
+	# get WINUTL to do the windows mmp file processing
+	&Winutl_DoMmp(\@_, $ENV{INCLUDE});
+	$BaseAddressFlag=&Winutl_BaseAddress;
+	$BaseAddressFlag=~s/^(.+$)$/ \/base:\"$1\"/o;
+	@Win32LibList=&Winutl_Win32LibList;
+	my $MSVCVer = &Winutl_MSVCVer;
+	push @Win32LibList, "kernel32.lib";
+	$Win32Resrc=&Winutl_Win32Resrc;
+	$Win32StdHeaders=&Winutl_Win32StdHeaders;
+}
+
+sub PMStartBldList($) {
+	my ($makecmd) = @_;
+	die "Cannot generate $makecmd makefiles\n" if ($makecmd ne "nmake");
+	my $BaseTrg=&main::BaseTrg;
+	my @BldList=&main::BldList;
+	my $BldPath=&main::BldPath;
+	my $ChopDataPath=&main::Path_Chop(&main::DataPath);
+	my $ChopTrgPath=&main::Path_Chop(&main::TrgPath);
+	my $DefFile=&main::DefFile;
+	my $BasicTrgType=&main::BasicTrgType;
+	my $ExportLibrary=&main::ExportLibrary;
+	my $LibPath=&main::LibPath;
+
+	my $MSVCVer = &Winutl_MSVCVer;
+
+	my $LinkPath=&main::LinkPath;
+	my $Plat=&main::Plat;
+	my $RelPath=&main::RelPath;
+	my $Trg=&main::Trg;
+	my $StatLinkPath=&main::StatLinkPath;
+	my $TrgType=&main::TrgType;
+
+
+	# set up global IDE builds variable
+	%IdeBlds= (
+		UREL=> "$BaseTrg - Win32 Uni Release",
+		UDEB=> "$BaseTrg - Win32 Uni Debug",
+	);
+	if (&main::Plat eq 'TOOLS') {
+		%IdeBlds= (
+			REL=> "$BaseTrg - Win32 Release",
+			DEB=> "$BaseTrg - Win32 Debug",
+		);
+	}
+	
+
+#	Start the supplementary makefile
+
+	$SupText.=join('',
+		"\n",
+#			need to set path here because MSDEV might be set up so that
+#			it does not take account of the PATH environment variable
+		"PATH=$ENV{PATH}\n",
+		"\n",
+		"# EPOC DEFINITIONS\n",
+		"\n",
+		"EPOCBLD = $BldPath #\n",
+		"EPOCTRG = $RelPath #\n",
+		"EPOCLIB = $LibPath #\n",
+		"EPOCLINK = $LinkPath #\n",
+		"EPOCSTATLINK = $StatLinkPath #\n",
+		"\n"
+	);
+			
+	if ($BasicTrgType eq 'DLL' || $TrgType eq 'EXEXP') {
+		foreach (@BldList) {
+			$SupText.=join('',
+				"EPOCBLD$_ = \$(EPOCBLD)$_\n",
+				"EPOCTRG$_ = \$(EPOCTRG)$_\n",
+				"EPOCLIB$_ = \$(EPOCLIB)UDEB\n",
+				"EPOCLINK$_ = \$(EPOCLINK)UDEB\n",
+				"EPOCSTATLINK$_ = \$(EPOCSTATLINK)$_\n",
+				"\n"
+			);
+		}
+		$SupText.="\nTRGDIR = ";
+		if ($Plat!~/^WINC$/o && $ChopTrgPath) {	# target path not allowed under WINC
+			$SupText.=$ChopTrgPath;
+		}
+		else {
+			$SupText.=".\\";
+		}
+		$SupText.="\n\nDATADIR = $ChopDataPath\n\n";
+
+
+#		commands for creating the import library
+		$SupText.="LIBRARY :";
+		if ($DefFile) {
+			unless (&main::ExportUnfrozen) {
+				if (-e $DefFile) { # effectively "if project frozen ..."
+					$SupText.=" \"\$(EPOCLIB)UDEB\\$ExportLibrary.lib\"\n";
+				}
+				else {
+					$SupText.=join('',
+						"\n",
+						"\t\@echo WARNING: Not attempting to create \"\$(EPOCLIB)UDEB\\$ExportLibrary.lib\".\n",
+						"\t\@echo When exports are frozen in \"$DefFile\", regenerate Makefile.\n"
+					);
+				}
+			}
+			else {
+				$SupText.=join('',
+					"\n",
+					"\t\@echo Not attempting to create \"\$(EPOCLIB)UDEB\\$ExportLibrary.lib\"\n",
+					"\t\@echo from frozen .DEF file, since EXPORTUNFROZEN specified.\n"
+				);
+			}
+			$SupText.=join('',
+				"\n",
+				"\n",
+				"# REAL TARGET - IMPORT LIBRARY\n",
+				"\n",
+				"\"\$(EPOCLIB)UDEB\\$ExportLibrary.lib\" : \"$DefFile\" MAKEWORKLIBRARY\n",
+				"\tperl -S prepdef.pl \"$DefFile\" \"\$(EPOCBLD)\\$ExportLibrary.prep.def\"\n",
+				"\tlib.exe /nologo /machine:i386 /nodefaultlib /name:\"$Trg\" /def:\"\$(EPOCBLD)\\$ExportLibrary.prep.def\" /out:\"\$(EPOCLIB)UDEB\\$ExportLibrary.lib\"\n",
+				"\tdel \"\$(EPOCLIB)UDEB\\$ExportLibrary.exp\"\n"
+			);
+		}
+		$SupText.=join('',
+			"\n",
+			"\n",
+			"MAKEWORKLIBRARY : \"${LibPath}UDEB\"\n",
+			"\n",
+			"\"${LibPath}UDEB\" :\n"
+		);
+		$SupText.="\t\@perl -w -S emkdir.pl \"${LibPath}UDEB\"\n\n\n";
+	}
+
+
+
+	&main::Output(
+		"# Microsoft Developer Studio Project File - Name=\"$BaseTrg\" - Package Owner=<4>\n",
+		"# Microsoft Developer Studio Generated Build File, Format Version 6.00\n",
+		"# ** DO NOT EDIT **\n",
+		"\n"
+	);
+
+	if ($BasicTrgType=~/^DLL$/o) {
+		&main::Output(
+			"# TARGTYPE \"Win32 (x86) Dynamic-Link Library\" 0x0102\n"
+		);
+	}
+	elsif ($BasicTrgType=~/^EXE$/o) {
+		if (not &main::Plat=~/^(WINC|TOOLS)$/o) {
+			&main::Output(
+				"# TARGTYPE \"Win32 (x86) Application\" 0x0101\n"
+			);
+		}
+		else {
+			&main::Output(
+				"# TARGTYPE \"Win32 (x86) Console Application\" 0x0103\n"
+			);
+		}
+	}
+	elsif ($BasicTrgType=~/^(LIB)$/o) {
+		&main::Output(
+			"# TARGTYPE \"Win32 (x86) Static Library\" 0x0104\n"
+		);
+	}
+	
+	&main::Output(
+		"\n",
+		"CFG=",$IdeBlds{$BldList[0]},"\n",
+		"!MESSAGE This is not a valid makefile. To build this project using NMAKE,\n",
+		"!MESSAGE use the Export Makefile command and run\n",
+		"!MESSAGE \n",
+		"!MESSAGE NMAKE /f \"",$BaseTrg,".mak\".\n",
+		"!MESSAGE \n",
+		"!MESSAGE You can specify a configuration when running NMAKE\n",
+		"!MESSAGE by defining the macro CFG on the command line. For example:\n",
+		"!MESSAGE \n",
+		"!MESSAGE NMAKE /f \"",$BaseTrg,".mak\" CFG=\"".$IdeBlds{$BldList[0]}."\"\n",
+		"!MESSAGE \n",
+		"!MESSAGE Possible choices for configuration are:\n",
+		"!MESSAGE \n"
+	);
+	&main::OutSetLength(79);
+	if ($BasicTrgType=~/^DLL$/o) {
+		foreach (reverse @BldList) { # reverse because VC6 takes last as the default
+			&main::OutFormat(
+				"!MESSAGE \"",$IdeBlds{$_},"\" (based on \"Win32 (x86) Dynamic-Link Library\")"
+			);
+			&main::Output();
+		}
+	}
+	elsif ($BasicTrgType=~/^EXE$/o) {
+		if (not &main::Plat=~/^(WINC|TOOLS)$/o) {
+			foreach (reverse @BldList) {
+				&main::OutFormat(
+					"!MESSAGE \"",$IdeBlds{$_},"\" (based on \"Win32 (x86) Application\")"
+				);
+				&main::Output();
+			}
+		}
+		else {
+			foreach (reverse @BldList) {
+				&main::OutFormat(
+					"!MESSAGE \"",$IdeBlds{$_},"\" (based on \"Win32 (x86) Console Application\")"
+				);
+				&main::Output();
+			}
+		}
+	}
+	elsif ($BasicTrgType=~/^(LIB)$/o) {
+		foreach (@BldList) {
+			&main::OutFormat(
+				"!MESSAGE \"",$IdeBlds{$_},"\" (based on \"Win32 (x86) Static Library\")"
+			);
+			&main::Output();
+		}
+	}
+	&main::OutSetLength();
+	&main::Output(
+		"!MESSAGE \n",
+		"\n"
+	);
+
+	# BEGIN THE PROJECT
+	#------------------
+	&main::Output(
+		"# Begin Project\n",
+		"# PROP Scc_ProjName \"\"\n",
+		"# PROP Scc_LocalPath \"\"\n",
+		"CPP=cl.exe\n",
+		"MTL=midl.exe\n",
+		"RSC=rc.exe\n",
+		"\n"
+	);
+}
+
+sub PMBld {
+
+	my @BaseSrcList=&main::BaseSrcList;
+	my $BaseTrg=&main::BaseTrg;
+	my $Bld=&main::Bld;
+	my @BldList=&main::BldList;
+	my $ChopBldPath=&main::Path_Chop(&main::BldPath);
+	my $ChopLinkPath=&main::Path_Chop(&main::LinkPath);
+	my $ChopRelPath=&main::Path_Chop(&main::RelPath);
+	my $ChopStatLinkPath=&main::Path_Chop(&main::StatLinkPath);
+	my @ChopSysIncPaths=&main::Path_Chop(&main::SysIncPaths);
+	my @ChopUserIncPaths=&main::Path_Chop(&main::UserIncPaths);
+	my $ExportLibrary=&main::ExportLibrary;
+	my $DefFile=&main::DefFile;
+	my $FirstLib=&main::FirstLib;
+	my $BasicTrgType=&main::BasicTrgType;
+	my @MacroList=&main::MacroList();
+	push @MacroList, "__SUPPORT_CPP_EXCEPTIONS__";
+    my $VariantFile=&main::VariantFile();
+
+
+	my @LibList;
+	my $PathBaseDsp=&main::MakeFilePath.&main::BaseMak;
+	my @StatLibList=&main::StatLibList;
+	my $Trg=&main::Trg;
+	my $TrgPath=&main::TrgPath;
+	my $TrgType=&main::TrgType;
+	
+	my $newlib = main::NewLib(); # Check if newlib has been set in the MMP file.
+	my $NewLib = 'scppnwdl.lib'; # This is where operator new and operator delete
+                                 # are defined for user side targets.
+	my $NewKernLib = 'scppnwdl_kern.lib'; # This is where operator new and operator delete
+                                 	  # are defined for kernel side targets.
+
+
+	if ($Bld =~ /DEB/) {
+		@LibList=&main::DebugLibList;
+	} else {
+		@LibList=&main::LibList;
+	}
+
+	my $NotUseWin32LibsFlag="";
+	unless ($Win32StdHeaders or &main::Plat eq 'TOOLS') {
+		$NotUseWin32LibsFlag=" /X"; # this flag suppresses searching of the standard directories for header files
+	}
+
+
+	if ($Bld eq $BldList[0]) {
+		&main::Output(
+			"!IF  \"\$(CFG)\" == \"$IdeBlds{$Bld}\"\n",
+			"\n"
+		);
+	}
+	else {
+		&main::Output(
+			"!ELSEIF  \"\$(CFG)\" == \"$IdeBlds{$Bld}\"\n",
+			"\n"
+		);
+	}
+	&main::Output(
+		"# PROP BASE Use_MFC 0\n"
+	);
+	if ($Bld=~/REL$/o) {
+		&main::Output(
+			"# PROP BASE Use_Debug_Libraries 0\n",
+			"# PROP BASE Output_Dir \".\\Win32_Un\"\n",
+			"# PROP BASE Intermediate_Dir \".\\Win32_Un\"\n"
+		);
+	}
+	elsif ($Bld=~/DEB$/o) {
+		&main::Output(
+			"# PROP BASE Use_Debug_Libraries 1\n",
+			"# PROP BASE Output_Dir \".\\Win32_U0\"\n",
+			"# PROP BASE Intermediate_Dir \".\\Win32_U0\"\n"
+		);
+	}
+	&main::Output(
+			"# PROP Use_MFC 0\n"
+	);
+	if ($Bld=~/REL$/o) {
+		&main::Output(
+			"# PROP Use_Debug_Libraries 0\n"
+		);
+	}
+	elsif ($Bld=~/DEB$/o) {
+		&main::Output(
+			"# PROP Use_Debug_Libraries 1\n"
+		);
+	}
+	&main::Output(
+		"# PROP Output_Dir \"$ChopRelPath\"\n",
+		"# PROP Intermediate_Dir \"$ChopBldPath\"\n",
+	);
+
+	&main::Output(
+		"# ADD CPP",
+		" /nologo",		# suppress "sign-on" banner message
+		" /Zp4"	,		# packs structures on 4 byte boundaries
+		" /GF"			# Pools strings and places them in read-only memory 
+	);
+
+	$MSVCVer = &Winutl_MSVCVer;
+
+	if ($MSVCVer >= 7) {
+		&main::Output(
+			" /wd4996",			# C4996: 'xxxx' was declared deprecated
+			" /wd4571"			# C4571: catch(...) blocks compiled with /EHs do not catch or re-throw Structured Exceptions
+		);	
+
+		if (&main::Plat ne 'TOOLS') {
+			&main::Output(
+				" /EHsc",			# Exceptions on
+				" /GR"				# RTTI on
+			);
+			if ($MSVCVer >= 8) {
+				&main::Output(
+					" /GS-"			# Buffer checking off
+				);
+			}
+		} else {
+			&main::Output(
+				" /EHsc",			# Exceptions on
+				" /GR",				# RTTI on
+				" /GS"				# Buffer checking on
+			);
+		}
+	} else {
+		if (&main::Plat ne 'TOOLS') {
+			&main::Output(
+					" /GX",				# Exceptions on
+					" /GR"				# RTTI on
+			);
+		}
+	}
+
+	if ($BasicTrgType=~/^EXE$/o) {
+		&main::Output(
+			' /MT'			# Creates a multi-threaded executable file, using libcmt.lib
+		);
+		if ($Bld=~/DEB$/o) {
+			&main::Output(
+				"d"			# i.e. /MTd, debug executable using debug version of libcmt
+			);
+		}
+	}
+	elsif (($BasicTrgType=~/^(DLL|LIB)$/o) and (&main::Plat ne 'TOOLS')) {
+		&main::Output(
+			" /MD"			# Creates a multithreaded DLL, using MSVCRT.LIB
+		);
+		if ($Bld=~/DEB$/o) {
+			&main::Output(
+				"d"			# i.e. /MDd, debug executable using debug version of msvcrt
+			);
+		}
+	}
+
+	if ($MSVCVer >= 8) {
+		&main::Output(
+			" /Zc:wchar_t-"				# Don't make wchar_t a built-in; breaks mangled names
+		);		
+	}
+
+	if (($MSVCVer >= 7) || (&main::Plat ne 'TOOLS')) {
+		&main::Output(
+			" /W4"
+		);
+	}
+
+	if ($Bld=~/DEB$/o) {
+		&main::Output(
+			" /Zi",		# Generates complete debugging information
+			" /Od"		# Disables optimization
+		);
+#		euser change to apply inlining on the _NAKED functions
+		if ($BaseTrg=~/^EUSER$/oi) {
+			&main::Output(
+				' /Ob1'	# Specific control of expension of inline functions
+			);
+		}
+	}
+	elsif ($Bld=~/REL$/o) {
+		&main::Output(
+			' /O1'				# Creates small code
+		);
+		if ($MSVCVer >= 8) {
+			&main::Output(
+				' /fp:strict'		# Improves floating-point consistency
+			);
+		} else {
+			&main::Output(
+				' /Op'				# Improves floating-point consistency
+			);
+		}
+
+	}
+	&main::Output(
+		"$NotUseWin32LibsFlag"
+	);
+	my @incList=();
+	my $candidate;
+	INCLOOP: foreach $candidate (@ChopUserIncPaths,@ChopSysIncPaths) {
+		my $accepted;	# remove duplicates
+		foreach $accepted (@incList) {
+			if ($candidate eq $accepted) {
+				next INCLOOP;
+			}
+		}
+		push @incList, $candidate;
+		&main::Output(
+			" /I \"$candidate\""
+		);
+	}
+	foreach (@MacroList) {
+		&main::Output(
+			" /D \"$_\""
+		);
+	}
+
+
+   if($VariantFile){
+        my $VariantFileFileName  = Path_Split('FILE',$VariantFile);
+        &main::Output(
+              " /FI\"$VariantFileFileName\""
+              );
+	}
+
+	if ($Bld=~/DEB$/o) {
+		&main::Output(
+			" /FR /Fd\"$ChopRelPath\\$TrgPath$BaseTrg.PDB\""
+		);
+	}
+	&main::Output(
+		" /c\n",
+	);
+
+	if ($BasicTrgType=~/^DLL$/o) {
+		&main::Output(
+			"# ADD MTL /nologo"
+		);
+		if ($Bld=~/REL$/o) {
+			&main::Output(
+				" /mktyplib203 /D"
+			);
+		}
+		elsif ($Bld=~/DEB$/o) {
+			&main::Output(
+				" /D \"_DEBUG\" /mktyplib203"
+			);
+		}
+		&main::Output(
+			" /win32\n"
+		);
+	}
+
+	&main::Output(
+		"# ADD BASE RSC /l 0x809\n",
+		"# ADD RSC /l 0x809 /d"
+	);
+	if ($Bld=~/REL$/o) {
+		&main::Output(
+			" \"NDEBUG\""
+		);
+	}
+	elsif ($Bld=~/DEB$/o) {
+		&main::Output(
+			" \"_DEBUG\""
+		);
+	}
+	&main::Output(
+		"\n"
+	);
+
+	&main::Output(
+		"BSC32=bscmake.exe\n",
+		"# ADD BSC32 /nologo\n",
+	);
+
+	if ($BasicTrgType=~/^(DLL|EXE)$/o) {
+		&main::Output(
+			"LINK32=link.exe\n",
+			"# ADD BASE LINK32 /machine:IX86\n",
+			"# ADD LINK32"
+		);
+		unless (&main::Plat eq 'TOOLS') {
+			&main::Output(
+				" \"$ChopStatLinkPath\\$FirstLib\""
+			);
+			
+			unless ($newlib) {
+				if ( main::SystemTrg() ) {
+					# System targets are PDD, LDD, VAR, KEXT and KDLL.
+
+					&main::Output(
+						" \"$ChopStatLinkPath\\$NewKernLib\""
+					);
+				}
+				else {
+					&main::Output(
+						" \"$ChopStatLinkPath\\$NewLib\""
+					);
+				}
+			}
+			else {
+				&main::Output(
+					" \"$ChopStatLinkPath\\$newlib\""
+				);
+			}
+		}
+	}
+	elsif ($BasicTrgType=~/^LIB$/o) {
+		&main::Output(
+			"LIB32=link.exe -lib\n",
+			"# ADD BASE LIB32 /machine:IX86\n",
+			"# ADD LIB32"
+		);
+	}
+	foreach (@Win32LibList) {
+		&main::Output(
+			" \"",lc $_,"\""
+		);
+	}
+	foreach (@StatLibList) {
+		&main::Output(
+			" \"$ChopStatLinkPath\\",lc $_,"\""
+		);
+	}
+	foreach (@LibList) {
+		&main::Output(
+			" \"$ChopLinkPath\\",lc $_,"\""
+		);
+	}
+	if ($BasicTrgType=~/^DLL$/o || $TrgType=~/^EXEXP$/o) {
+		&main::Output(
+			" \"$ChopBldPath\\$ExportLibrary.exp\""
+		);
+	}
+	&main::Output(' /nologo');
+	if ($BasicTrgType=~/^(DLL|EXE)$/o) {
+		&main::Output(
+			" /fixed:no $BaseAddressFlag"
+		);
+	}
+	if (&main::HeapSize) {
+		my %HeapSize=&main::HeapSize;
+		&main::Output(
+			' /heap:',$HeapSize{Max},',',$HeapSize{Min}
+		);
+	}
+	if ($BasicTrgType=~/^DLL$/o || $TrgType=~/^EXEXP$/o) {
+		&main::Output(
+			' /noentry /dll'
+		);
+	}
+	elsif ($BasicTrgType=~/^EXE$/o) {
+		unless (&main::Plat eq 'TOOLS') {
+			&main::Output(
+				' /entry:"?_E32Bootstrap@@YGXXZ"'
+			);
+		}
+	}
+	if (&main::Plat=~/^(WINC|TOOLS)$/o && $BasicTrgType=~/^EXE$/o) { # shouldn't really have WINC mentioned here
+		&main::Output(
+			' /subsystem:console'
+		);
+	}
+	else {
+		&main::Output(
+			' /subsystem:windows'
+		);
+	}
+	if ($BasicTrgType=~/^(DLL|EXE)$/o && $Bld=~/DEB$/o) {
+		&main::Output(
+#			pdb needs specifying here to be the same as the default applied in command-line builds
+			" /pdb:\"$ChopRelPath\\$TrgPath$BaseTrg.pdb\" /debug"
+		);
+	}
+	&main::Output(
+		' /machine:IX86',
+		' /ignore:4089',		# LNK4089: all references to "dynamic-link library" discarded by /OPT:REF
+		' /ignore:4005'			# LNK4005: no objects used from XXX
+	);
+
+	if ($MSVCVer >= 7) {
+		&main::Output(
+			' /ignore:4210'	# LNK4210: .CRT section exists; there may be unhandled static initializers or terminators
+		);
+	}
+
+	my $EntrySymbol='';
+	unless (&main::Plat eq 'TOOLS') {
+		if ($BasicTrgType=~/^EXE$/o) {
+			my $debug = '';
+			if ($Bld =~ /DEB$/o) {
+				$debug .= 'd';
+			}
+			&main::Output(
+				" /nodefaultlib:libcmt$debug.lib"
+			);
+		}
+		if ($BasicTrgType=~/^DLL$/o) {
+			&main::Output(
+				" /include:\"__E32Dll\""
+			);
+			$EntrySymbol='_E32Dll';
+		}
+		elsif ($BasicTrgType=~/^EXE$/o) {
+			&main::Output(
+				" /include:\"__E32Startup\""
+			);
+			$EntrySymbol='_E32Startup';
+		}
+	} else {
+		&main::Output(
+			' /ignore:4098'	# LNK4098: defaultlib 'LIBCMT' conflicts with use of other libs; use /NODEFAULTLIB:library
+		);
+	}
+	my $AbsentSubst = '';
+	if ($EntrySymbol) {
+		$AbsentSubst = " -absent $EntrySymbol";
+	}
+	&main::Output(
+		" /out:\"$ChopRelPath\\$TrgPath$Trg\""
+	);
+	if ($MSVCVer <= 7) {
+		if ($BasicTrgType=~/^(DLL|EXE)$/o) {
+			&main::Output(
+				' /WARN:3'
+			);
+		}
+	}
+	if ($BasicTrgType=~/^(DLL|EXE)$/o && $Bld=~/DEB$/o) {
+		&main::Output(
+			"\n",
+			"# SUBTRACT LINK32 /pdb:none"
+		);
+	}
+	&main::Output(
+		"\n"
+	);
+	if (&main::Plat eq 'TOOLS' and $BasicTrgType eq 'EXE') {
+		&main::Output(
+			"# Begin Special Build Tool\n",
+			"PostBuild_Cmds=copy \"$ChopRelPath\\$TrgPath$Trg\" \"",&main::EPOCToolsPath,"$Trg\" \n",
+			"# End Special Build Tool\n"
+		);
+	}
+	if ($BasicTrgType=~/^DLL$/o || $TrgType=~/^EXEXP$/o) {
+		&main::Output(
+			"# Begin Special Build Tool\n",
+			"SOURCE=\$(InputPath)\n",
+			"PreLink_Cmds=echo Doing first-stage link by name\\\n"
+		);
+		&main::Output(
+			"\tnmake -nologo -f \"${PathBaseDsp}.SUP.MAKE\" PRELINK$Bld\\\n",
+			"\tif errorlevel 1 nmake -nologo -f \"${PathBaseDsp}.SUP.MAKE\" STOPLINK$Bld \n",
+			"PostBuild_Cmds=nmake -nologo -f \"${PathBaseDsp}.SUP.MAKE\" POSTBUILD$Bld\n",
+			"# End Special Build Tool\n"
+		);
+
+
+#		append to the supplementary makefile for each build
+		$SupText.=join('',
+			"# BUILD - $Bld\n",
+			"\n",
+			"LIBS="
+		);
+		foreach (@StatLibList) {
+			$SupText.=" \\\n\t\"\$(EPOCSTATLINK$Bld)\\$_\"";
+		}
+		foreach (@LibList) {
+			$SupText.=" \\\n\t\"\$(EPOCLINK$Bld)\\$_\"";
+		}
+		$SupText.="\n\nLINK_OBJS=";
+		foreach (@BaseSrcList) {
+			$SupText.=" \\\n\t\"\$(EPOCBLD$Bld)\\$_.obj\"";
+		}
+		if ($Win32Resrc) {
+			$SupText.=" \\\n\t\"\$(EPOCBLD$Bld)\\".&main::Path_Split('Base',$Win32Resrc).".res\"";
+		}
+		$SupText.="\n\nSTAGE1_LINK_FLAGS=\"\$(EPOCSTATLINK$Bld)\\$FirstLib\"";
+		
+		unless ($newlib) {
+			if ( main::SystemTrg() ) {
+				# System targets are PDD, LDD, VAR, KEXT and KDLL.
+
+				$SupText.=" \"\$(EPOCSTATLINK$Bld)\\$NewKernLib\"";
+			}
+			else {
+				$SupText.=" \"\$(EPOCSTATLINK$Bld)\\$NewLib\"";
+			}
+		}
+		else {
+			$SupText.=" \"\$(EPOCSTATLINK$Bld)\\$newlib\"";
+		}
+		
+		foreach (@Win32LibList) {
+			$SupText.=' ';
+			$SupText.=lc $_;
+		}
+		$SupText.=" \\\n \$(LIBS) /nologo$BaseAddressFlag /noentry /dll /subsystem:windows";
+		if ($Bld=~/DEB$/o) {
+			$SupText.=' /debug';
+		}
+		$SupText.=" \\\n /incremental:no /machine:IX86 /ignore:4089";
+		if ($BasicTrgType=~/^EXE$/o) {
+			my $debug = '';
+			if ($Bld =~ /DEB$/o) {
+				$debug .= 'd';
+			}
+			$SupText .= " /nodefaultlib:libcmt$debug.lib";
+		}
+		if ($MSVCVer >= 7) {
+			$SupText .=  " /ignore:4210";
+		}
+		if ($BasicTrgType=~/^DLL$/o) {
+			$SupText.=" /include:\"__E32Dll\"";
+		}
+		else {
+			$SupText.=" /include:\"__E32Startup\"";
+		}
+		if ($BasicTrgType=~/^(DLL)$/o) {
+			$SupText.=" /implib:\"\$(EPOCBLD$Bld)\\$ExportLibrary.lib\"";
+		} elsif ($BasicTrgType=~/^(EXE)$/o) {
+			$SupText.=" /implib:\"\$(EPOCBLD$Bld)\\$ExportLibrary.exe.lib\"";
+		}
+		$SupText.=join('',
+			' /ignore:4089',		# LNK4089: all references to "dynamic-link library" discarded by /OPT:REF
+			' /ignore:4005'			# LNK4005: no objects used from XXX
+		);
+		if ($MSVCVer >= 7) {
+			$SupText.=" /ignore:4210";		# LNK4210: .CRT section exists; there may be unhandled static initializers or terminators
+		}
+		$SupText.=" /out:\"\$(EPOCBLD$Bld)\\$Trg\"";
+		if ($MSVCVer < 7) {
+			$SupText .= " /WARN:3";
+		}
+		$SupText.="\n\n";
+		$SupText.="PRELINK$Bld : \$(LINK_OBJS)";
+		if (-e $DefFile) { # effectively "if project frozen ..."
+			$SupText.=" \"$DefFile\"";
+		}
+		unless (&main::Plat eq 'TOOLS') {
+			$SupText.=" \"\$(EPOCSTATLINK$Bld)\\$FirstLib\"";
+			
+			unless ($newlib) {
+				if ( main::SystemTrg() ) {
+					# System targets are PDD, LDD, VAR, KEXT and KDLL.
+
+					$SupText.=" \"\$(EPOCSTATLINK$Bld)\\$NewKernLib\"";
+				}
+				else {
+					$SupText.=" \"\$(EPOCSTATLINK$Bld)\\$NewLib\"";
+				}
+			}
+			else {
+				$SupText.=" \"\$(EPOCSTATLINK$Bld)\\$newlib\"";
+			}
+		}
+		$SupText.=" \$(LIBS)\n";
+
+#		Link by name first time round for dlls
+		$SupText.=join('',
+			"\tlink.exe \@<<\n",
+			"\t\t\$(STAGE1_LINK_FLAGS) \$(LINK_OBJS)\n",
+			"<<\n",
+			"\tdel \"\$(EPOCBLD$Bld)\\$Trg\"\n"
+		);
+
+		if ($BasicTrgType=~/^(DLL)$/o) {
+			$SupText.="\tdel \"\$(EPOCBLD$Bld)\\$ExportLibrary.exp\"\n";
+		} elsif ($BasicTrgType=~/^(EXE)$/o) {
+			$SupText.="\tdel \"\$(EPOCBLD$Bld)\\$ExportLibrary.exe.exp\"\n";
+		}
+
+#		Generate an export info file
+		if ($BasicTrgType=~/^(DLL)$/o) {
+			$SupText.=join('',
+				"\tdumpbin /exports /out:\"\$(EPOCBLD$Bld)\\$ExportLibrary.inf\" \"\$(EPOCBLD$Bld)\\$ExportLibrary.lib\"\n",
+				"\tdel \"\$(EPOCBLD$Bld)\\$ExportLibrary.lib\"\n"
+			);
+		} elsif ($BasicTrgType=~/^(EXE)$/o) {
+			$SupText.=join('',
+				"\tdumpbin /exports /out:\"\$(EPOCBLD$Bld)\\$ExportLibrary.inf\" \"\$(EPOCBLD$Bld)\\$ExportLibrary.exe.lib\"\n",
+				"\tdel \"\$(EPOCBLD$Bld)\\$ExportLibrary.exe.lib\"\n"
+			);
+		}
+
+#		call makedef to reorder the export information
+#		call perl on the script here so nmake will die if there are errors - this doesn't happen if calling perl in a batch file
+		$SupText.="\tperl -w -S makedef.pl $AbsentSubst -Inffile \"\$(EPOCBLD$Bld)\\$ExportLibrary.inf\"";
+		if (-e $DefFile) { # effectively "if project frozen ..."
+			$SupText.=" -Frzfile \"$DefFile\"";
+		}
+		# freeze ordinals, a maximum of 2, for polymorphic dlls
+		my $Ordinal;
+		my $Num=1;
+		foreach $Ordinal (&main::Exports) {
+#			replace "$" with "$$" so that NMAKE doesn't think there's a macro in the function name
+			$Ordinal=~s-\$-\$\$-go;
+			$SupText.=" -$Num $Ordinal";
+			$Num++;
+		}
+		$SupText.=join('',
+			" \"\$(EPOCBLD)$ExportLibrary.def\" \n",
+			"\tdel \"\$(EPOCBLD$Bld)\\$ExportLibrary.inf\"\n"
+		);
+
+		# create the export object from the .DEF file
+		$SupText.="\tlib.exe  /nologo /machine:i386 /nodefaultlib /name:\"$Trg\" /def:\"\$(EPOCBLD)$ExportLibrary.def\" /out:\"\$(EPOCBLD$Bld)\\$ExportLibrary.lib\"\n";
+		if (&main::ExportUnfrozen) {
+			$SupText.="\tcopy \"\$(EPOCBLD$Bld)\\$ExportLibrary.lib\" \"\$(EPOCLIB)UDEB\\$ExportLibrary.lib\"\n";
+		}
+		$SupText.=join('',
+			"\tdel \"\$(EPOCBLD$Bld)\\$ExportLibrary.lib\"\n",
+			"\t\@echo First-stage link successful\n",
+			"\n",
+			"\n",
+			"STOPLINK$Bld : DELEXPOBJ$Bld\n",
+			"\t\@echo Stopped the build by removing the export object,\n",
+			"\t\@echo if present, because the pre-link stage failed\n",
+			"\n",
+			"\n",
+			"POSTBUILD$Bld : DELEXPOBJ$Bld"
+		);
+		if ($DefFile and not &main::ExportUnfrozen) {
+			$SupText.=" LIBRARY";
+		}
+		$SupText.=join('',
+			"\n",
+			"\n",
+			"\n",
+			"DELEXPOBJ$Bld :\n"
+		);
+
+		if ($BasicTrgType=~/^(DLL)$/o) {
+			$SupText.="\tif exist \"\$(EPOCBLD$Bld)\\$ExportLibrary.exp\" del \"\$(EPOCBLD$Bld)\\$ExportLibrary.exp\"\n";
+		} elsif ($BasicTrgType=~/^(EXE)$/o) {
+			$SupText.="\tif exist \"\$(EPOCBLD$Bld)\\$ExportLibrary.exe.exp\" del \"\$(EPOCBLD$Bld)\\$ExportLibrary.exe.exp\"\n";
+		}
+
+		$SupText.=join('',
+			"\n",
+			"\n",
+			"\n"
+		);
+	}
+
+	&main::Output(
+		"\n"
+	);
+}
+
+sub PMEndBldList {
+
+	# CLOSE THE !IF ... !ENDIF LOOP
+	#------------------------------
+	&main::Output(
+		"!ENDIF \n",
+		"\n"
+	);
+}
+
+sub PMStartSrcList {
+
+	my @BldList=&main::BldList;
+
+	&main::Output(
+		"# Begin Target\n",
+		"\n"
+	);
+	foreach (@BldList) {
+		&main::Output(
+			"# Name \"".$IdeBlds{$_}."\"\n"
+		);
+	}
+	&main::Output(
+		"# Begin Group \"Source Files\"\n",
+		"\n",
+		"# PROP Default_Filter \"cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90\"\n"
+	);
+}
+
+sub PMResrcBld {
+
+	my $ResourceRef=&main::ResourceRef;
+	my $Resrc=ucfirst lc &main::Path_Split('File', $$ResourceRef{Source});
+	my $BaseResrc=&main::Path_Split('Base', $$ResourceRef{Source});
+	my $SrcPath=&main::Path_Split('Path', $$ResourceRef{Source});
+	my $TrgPath=&main::Path_Split('Path', $$ResourceRef{Trg});
+	my @LangList=($$ResourceRef{Lang});
+	
+	my $inputpath="$SrcPath$Resrc";
+	
+	&main::Output(
+		"# Begin Source File\n",
+		"\n",
+		"SOURCE=$inputpath\n"
+	);
+
+	my @BldList=&main::BldList;
+	my $ChopBldPath=&main::Path_Chop(&main::BldPath);
+	my @ChopSysIncPaths=&main::Path_Chop(&main::SysIncPaths);
+	my @ChopUserIncPaths=&main::Path_Chop(&main::UserIncPaths);
+	my $DataPath=&main::DataPath;
+	my @DepList=&main::DepList;
+	my $PathBaseDsp=&main::MakeFilePath.&main::BaseMak;
+	my $PerlLibPath=&main::PerlLibPath;
+	my $RelPath=&main::RelPath;
+	my $ChopSrcPath=&main::Path_Chop($SrcPath);
+
+	my $ResrcHdr=join '', &main::EPOCIncPath(), $BaseResrc, '.RSG';
+
+	&main::OutFormat(
+		"USERDEP__$BaseResrc="
+	);
+	$SupText.="DEPEND=";
+	my $Dep;
+	foreach $Dep (@DepList) {
+		&main::OutFormat(
+			"\"$Dep\"\t"
+		);
+		$SupText.=" \\\n\t\"$Dep\"";
+	}
+	&main::Output(
+		"\n"
+	);
+	$SupText.="\n\n";
+
+	my $Bld;
+	foreach $Bld (@BldList) {
+		my $ResrcTrgFullName="$RelPath$Bld\\$TrgPath$BaseResrc.r";
+		if ($Bld eq $BldList[0]) {
+			&main::Output(
+				'!IF'
+			);
+		}
+		else {
+			&main::Output(
+				'!ELSEIF'
+			);
+		}
+		&main::Output(
+			"  \"\$(CFG)\" == \"$IdeBlds{$Bld}\"\n",
+			"\n"
+		);
+		&main::Output(
+			"# PROP Intermediate_Dir \"$ChopBldPath\"\n",
+			"# Begin Custom Build - Building resources from $Resrc\n",
+			"InputPath=$inputpath\n",
+			"\n",
+			"BuildCmds= \\\n",
+			"\tnmake -nologo -f \"${PathBaseDsp}.SUP.MAKE\"\\\n",
+			"  \"$ResrcTrgFullName\"\n"
+		);
+		$SupText.="\"$ResrcTrgFullName\" :";
+		my $Lang;
+		foreach $Lang (@LangList) {
+			if ($Lang eq 'SC') {
+#				change to put dummy file in dependency list
+				$SupText.=" \"$ResrcTrgFullName$Lang.dummy\"";
+				next;
+			}
+			$SupText.=" \"$ResrcTrgFullName$Lang\"";
+		}
+		$SupText.="\n\n";
+		foreach $Lang (@LangList) {
+#			change to put dummy file in dependency list
+			if ($Lang eq 'SC') {
+				$SupText.="\"$ResrcTrgFullName$Lang.dummy\"";
+			}
+			else {
+				$SupText.="\"$ResrcTrgFullName$Lang\"";
+			}
+			$SupText.=" : \"$SrcPath$Resrc\" \$(DEPEND)\n";
+			$SupText.="\tperl -S epocrc.pl -I \"$ChopSrcPath\"";
+			foreach (@ChopUserIncPaths) {
+				$SupText.=" -I \"$_\"";
+			}
+			$SupText.=" -I-";
+			foreach (@ChopSysIncPaths) {
+				$SupText.=" -I \"$_\"";
+			}
+			$SupText.=" -DLANGUAGE_$Lang -u \"$SrcPath$Resrc\"";
+			$SupText.=" -o\"$ResrcTrgFullName$Lang\" -h\"$SrcPath$BaseResrc.rs~\" -t\"\$(EPOCBLD$Bld)\"\n";
+# 			change because if a .RSC file is output then VC5 tries to link it to the main target as a Win32 resource file
+			if ($Lang eq 'SC') {
+				$SupText.="\techo this is a dummy output file > \"$ResrcTrgFullName$Lang.dummy\"\n";
+			}
+			$SupText.=join('',
+				"\tperl -w -S ecopyfile.pl \"$SrcPath$BaseResrc.rs~\" \"$ResrcHdr\"\n",
+				"\tdel \"$SrcPath$BaseResrc.rs~\"\n",
+				"\n"
+			);
+		}
+
+		foreach $Lang (@LangList) {
+#			change again to avoid VC5 linking the resource
+			my $TmpLang=$Lang;
+			if ($TmpLang eq 'SC') {
+				$TmpLang.='.dummy';
+			}
+			&main::Output(
+				"\n",
+				"\"$ResrcTrgFullName$TmpLang\" : \$(SOURCE) \"\$(INTDIR)\"\\\n",
+				" \"\$(OUTDIR)\"\n",
+				"   \$(BuildCmds)\n",
+			);
+		}
+		&main::Output(
+			"# End Custom Build\n",
+			"\n"
+		);
+	}
+	&main::Output(
+		"!ENDIF \n",
+		"\n",
+		"# End Source File\n"
+	);
+}
+
+sub PMDoc {    
+
+	my $SrcPath=&main::SrcPath;
+
+	&main::Output(
+		"# Begin Source File\n",
+		"\n",
+		"SOURCE=",$SrcPath,ucfirst lc &main::Doc,"\n",
+		"# PROP Exclude_From_Build 1\n",
+		"# End Source File\n"
+	);
+}
+
+sub PMStartSrc {    
+
+	&main::Output(
+		"# Begin Source File\n",
+		"\n",
+		"SOURCE=",&main::SrcPath,ucfirst lc &main::Src,"\n",
+		"# End Source File\n"
+	);
+}
+
+sub PMSrcDepend {
+
+	# Generate user header list for this src, merge with list for all sources
+	foreach (&main::DepList) {
+		$PrjHdrs{$_}='unusedval';
+	}
+}
+
+sub PMEndSrcList {
+
+	my $BaseDsp=&main::BaseMak;
+	my $PathBaseDsp=&main::MakeFilePath.$BaseDsp;
+
+	&main::Output(
+		"# End Group\n",
+		"# Begin Group \"Resource Files\"\n",
+		"\n",
+		"# PROP Default_Filter \"ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe\"\n"
+	);
+	if ($Win32Resrc) {
+		&main::Output(
+			"# Begin Source File\n",
+			"\n",
+			"SOURCE=",ucfirst lc $Win32Resrc,"\n",
+			"# End Source File\n"
+		);
+		# Generate user header list for this src, merge with list for all sources
+		foreach (&main::Deps_GenDependsL($Win32Resrc)) {
+			$PrjHdrs{$_}='unusedval';
+		}
+	}
+	&main::Output(
+		"# End Group\n"
+	);
+
+	# Use the global %PrjHdrs Hash to produce user header listing
+	&main::Output(
+		"# Begin Group \"Header Files\"\n",
+		"\n",
+		"# PROP Default_Filter \"h;hpp;hxx;hm;inl;fi;fd\"\n"
+	);
+	foreach (keys %PrjHdrs) {
+		&main::Output(
+			"# Begin Source File\n",
+			"\n",
+			"SOURCE=",&main::Path_Split('Path',$_),ucfirst lc &main::Path_Split('File',$_),"\n",
+			"# End Source File\n"
+		);
+	}	
+	&main::Output(
+		"# End Group\n",
+		"# End Target\n",
+		"# End Project\n",
+	);
+
+	&main::Path_DelFiles("$PathBaseDsp.MAK","$PathBaseDsp.MDP","$PathBaseDsp.NCB","$PathBaseDsp.OPT","$PathBaseDsp.PLG");
+
+#	Add target to supplementary makefile to recreate the workspace
+#
+#	This target is intended for use as a custom tool within the MSVC IDE, for regenerating
+#	workspace once the .MMP file has been edited within the IDE.  To install the target as
+#	a custom tool in the IDE, select Tools->Customise...->Tools, and choose a name for the
+#	tool, e.g. "Recreate Workspace".  Next, type "nmake.exe" as the command and
+#	"-nologo -f $(WkspDir)\$(WkspName).sup.make recreateworkspace" as the program arguments.
+#	Leave the "initial directory" field blank, and tick the "Close window on exiting" checkbox.
+#	Having edited the .MMP file for a project, select the new tool from the tools menu to
+#	recreate the workspace.  If the commands have run correctly, you will be prompted to
+#	reload the workspace.
+	$SupText.=join('',
+		"\n",
+		"RECREATEWORKSPACE :\n",
+		'	cd ', &main::Path_Chop(&main::Path_WorkPath), "\n",
+		'	perl -w -S makmake.pl -D ', &main::MmpFile, ' ', &main::PlatName, "\n",
+		"\n"
+	);
+
+#	Create the supplementary makefile
+	
+	&main::CreateExtraFile(&main::MakeFilePath.&main::BaseMak.'.SUP.MAKE', $SupText);
+
+
+# create the .DSW file
+	my $DswText=join(
+		"\n",
+		"Microsoft Developer Studio Workspace File, Format Version 6.00",
+		'# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!',
+		'',
+		'#'x79,
+		'',
+		"Project: \"$BaseDsp\"=.\\$BaseDsp.dsp - Package Owner=<4>",
+		'',
+		'Package=<5>',
+		'{{{',
+		'}}}',
+		'',
+		'Package=<4>',
+		'{{{',
+		'}}}',
+		'',
+		'#'x79,
+		'',
+		'Global:',
+		'',
+		'Package=<5>',
+		'{{{',
+		'}}}',
+		'',
+		'Package=<3>',
+		'{{{',
+		'}}}',
+		'',
+		'#'x79,
+		''
+	);
+
+	&main::CreateExtraFile("$PathBaseDsp.DSW",$DswText);
+}
+
+1;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/platform/lockit_info.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,347 @@
+# Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+package lockit_info;
+use File::Copy;
+use File::Path;
+use File::Basename;
+
+require Exporter;
+@ISA=qw(Exporter);
+@EXPORT=qw(
+	Check_Epocroot
+	Setup_LockitPath
+	Lockit_Releasables
+	Copy_Files
+	WriteTo_Info
+	LineExists
+	Lockit_SrcFile
+	Open_InfoFile
+	Close_InfoFile
+);
+
+use strict;
+use Pathutl;
+my $epocroot;
+my $epocPath;
+
+sub Check_Epocroot 
+	{
+	$epocroot = $ENV{EPOCROOT};
+	die "ERROR: Must set the EPOCROOT environment variable\n" if (!defined($epocroot));
+	$epocroot =~ s-/-\\-go;	# for those working with UNIX shells
+	die "ERROR: EPOCROOT must not include a drive letter\n" if ($epocroot =~ /^.:/);
+	die "ERROR: EPOCROOT must be an absolute path without a drive letter\n" if ($epocroot !~ /^\\/);
+	die "ERROR: EPOCROOT must not be a UNC path\n" if ($epocroot =~ /^\\\\/);
+	die "ERROR: EPOCROOT must end with a backslash\n" if ($epocroot !~ /\\$/);
+	die "ERROR: EPOCROOT must specify an existing directory\n" if (!-d $epocroot);
+
+	$epocroot=~ s-\\$--;		# chop trailing \\
+	$epocPath = "$epocroot\\epoc32\\localisation";
+	}
+
+
+## main function which handles all lockit-related function
+sub Lockit_SrcFile()
+{
+	my ($ResrcFile, $RppFile,$Resrc_Options, $FileType, $Bitmaps, $RscTarget, $lang);
+	
+	if (defined $ENV{ABLD_TOOLSMOD_COMPATIBILITY_MODE} &&  ($ENV{ABLD_TOOLSMOD_COMPATIBILITY_MODE} eq 'alpha')) {
+		($ResrcFile, $RppFile,$Resrc_Options, $FileType, $Bitmaps, $RscTarget, $lang)= @_;
+	}
+	else {
+
+		($ResrcFile, $RppFile,$Resrc_Options, $FileType, $Bitmaps, $RscTarget)= @_;
+	}
+	$RscTarget=Path_Split('File', $RscTarget);
+	my ($Tgtdir, $CWDir) = split(/:/, $Resrc_Options);
+	$Tgtdir =~s-^(.*)\\$-$1-o; # remove terminating backslash
+	$Tgtdir=~s-^\\--o; # remove leading backslash
+	
+	Check_Epocroot();
+	my $FilePath;
+
+	if (defined $ENV{ABLD_TOOLSMOD_COMPATIBILITY_MODE} &&  ($ENV{ABLD_TOOLSMOD_COMPATIBILITY_MODE} eq 'alpha')) {
+		$FilePath = Setup_LockitPath($CWDir, $ResrcFile, $FileType, $lang);
+
+		# update rppfile in epoc32\localisation if -l option specified and generating resource
+			
+		copy("$RppFile", "$FilePath\\");
+	}
+	else {
+		$FilePath = Setup_LockitPath($CWDir, $ResrcFile, $FileType);
+
+		# update rppfile in epoc32\localisation if -l option specified and generating resource
+		copy("$RppFile", "$FilePath\\$ResrcFile.rpp");
+	}
+
+	# update bitmaps in epoc32\localisation if -l option and bitmaps specified
+	if ($CWDir && ($Bitmaps ne ""))
+	{
+		my $BmpRef;
+		$Bitmaps =~ s/ +|\t/ /g; # replace tabs and more spaces with single space
+		$Bitmaps =~s/^ //g; # remove leading space
+		$Bitmaps =~s/ $//g; # remove trailing space
+
+		my (@AifBitmaps) = split(/ /, $Bitmaps);
+		foreach $BmpRef (@AifBitmaps) {
+			$BmpRef =~ /^([^\\]+)(\\.*)$/;
+			my $CDepth = $1;
+			my $bmp = $2;
+			Copy_Files($bmp, $FilePath);
+			my $file_base= basename($bmp);
+			chmod (0666,"$FilePath\\$file_base");
+		}
+	}
+
+	if (defined $ENV{ABLD_TOOLSMOD_COMPATIBILITY_MODE} &&  ($ENV{ABLD_TOOLSMOD_COMPATIBILITY_MODE} eq 'alpha')) {
+		if (LineExists($ResrcFile.$lang, $RscTarget) == 0)
+		{
+			Open_InfoFile($ResrcFile . $lang);
+
+			WriteTo_Info ( "\n\\$Tgtdir\\$RscTarget :" );
+
+			if($FileType =~ /RSC/i && $RppFile ne "") {
+				WriteTo_Info (
+					 " $ResrcFile$lang.rpp"
+				)
+			}
+
+			elsif ($RppFile ne "") {
+				WriteTo_Info (
+					 " $ResrcFile$lang.text $ResrcFile$lang.struct"
+				)
+			}
+
+			if($Bitmaps ne "")
+			{
+				my $BmpRef;
+				my (@AifBitmaps) = split(/ /, $Bitmaps);
+				foreach $BmpRef (@AifBitmaps) {
+					$BmpRef =~ /^([^\\]+)(\\.*)$/;
+					my $CDepth = $1;
+					my $bmp = $2;
+					my $file_base= basename($bmp);
+					WriteTo_Info (
+						 " $CDepth\\$file_base"
+					);
+				}
+			}
+
+			Close_InfoFile($ResrcFile . $lang);
+		}
+	}
+	else {
+		if (LineExists($ResrcFile, $RscTarget) == 0)
+		{
+			Open_InfoFile($ResrcFile);
+
+			WriteTo_Info ( "\n\\$Tgtdir\\$RscTarget :" );
+
+			if($FileType =~ /RSC/i && $RppFile ne "") {
+				WriteTo_Info (
+					 " $ResrcFile.rpp"
+				)
+			}
+
+			elsif ($RppFile ne "") {
+				WriteTo_Info (
+					 " $ResrcFile.text $ResrcFile.struct"
+				)
+			}
+
+			if($Bitmaps ne "")
+			{
+				my $BmpRef;
+				my (@AifBitmaps) = split(/ /, $Bitmaps);
+				foreach $BmpRef (@AifBitmaps) {
+					$BmpRef =~ /^([^\\]+)(\\.*)$/;
+					my $CDepth = $1;
+					my $bmp = $2;
+					my $file_base= basename($bmp);
+					WriteTo_Info (
+						 " $CDepth\\$file_base"
+					);
+				}
+			}
+
+			Close_InfoFile($ResrcFile);
+
+		}
+	}
+}
+
+
+## copy source files
+sub Copy_Files ()
+	{
+	my ($SourceName, $TargetName) = @_;
+
+	copy($SourceName, $TargetName);
+	}
+
+## create necessary directories
+sub Create_InfoFile ()
+	{
+	my ($CreateLockitPath, $CreateInfoFile, $Datadir) = @_;
+	if ( !-e "$CreateLockitPath") { mkpath($CreateLockitPath); }
+	if ( !-e "$epocPath\\group") { mkpath("$epocPath\\group"); }
+	if ( !-e "$epocPath\\group\\$CreateInfoFile.info") {	
+		open INFO,">$epocPath\\group\\$CreateInfoFile.info" or die "ERROR: Can not create file \"$CreateInfoFile\"\n"; 
+		print INFO "DATADIR: $Datadir\n";
+		close INFO;
+	}
+}
+
+## open INFO file to write source information
+sub Open_InfoFile ($)
+	{
+	my $FileToOpen = $_[0];
+	open INFO,">>$epocPath\\group\\$FileToOpen.INFO" or die "ERROR: Can not open  \"$epocPath\\group\\$FileToOpen\"\n";
+	}
+
+
+## write source filename to INFO file
+sub WriteTo_Info ($) 
+	{
+	my $Text = $_[0];
+	print INFO "$Text";
+	}
+
+
+## check whether source filename is written to INFO file
+sub LineExists ()
+	{
+	my $FileToOpen = $_[0];
+	my $LineCheck = $_[1];
+	my $exists = 0;
+
+	open INFO,"$epocPath\\group\\$FileToOpen.info" or die "ERROR: Can not open \"$FileToOpen\"\n";
+		while(<INFO>) {
+			if (/$LineCheck/i) { $exists = 1; return $exists; } 
+		}
+		close INFO;
+	return $exists;
+	}
+	
+
+#determine Components pathname and create INFO files
+sub Setup_LockitPath
+	{
+	my ($ComponentSrcPath, $Resrc, $FileType, $lang);
+
+	if (defined $ENV{ABLD_TOOLSMOD_COMPATIBILITY_MODE} &&  ($ENV{ABLD_TOOLSMOD_COMPATIBILITY_MODE} eq 'alpha')) {
+		($ComponentSrcPath, $Resrc, $FileType, $lang) = @_;
+	}
+	else {
+		($ComponentSrcPath, $Resrc, $FileType) = @_;
+	}
+	my ($temp, $CWDir) = split(/\\/, $ComponentSrcPath);
+	my $FilePath = $epocPath;
+
+	if($FileType =~ /RSS/i) { $FileType = "rsc"; }
+	if($FileType =~ /^acl|abw|aif|a[0-9]/i) {
+		$FilePath .= "\\aif";
+	}
+	
+## change added to support cnf file generation
+	if ($FileType =~ /CNF/i) { 
+		$FilePath .= "\\cnf"; 
+	}
+
+	my $WorkPath = ""; 
+
+	if($Resrc !~ /^$CWDir$/i) {
+		$WorkPath = "$Resrc"; 
+	}
+
+	$FilePath .= "\\$WorkPath\\$FileType";
+
+	if (defined $ENV{ABLD_TOOLSMOD_COMPATIBILITY_MODE} &&  ($ENV{ABLD_TOOLSMOD_COMPATIBILITY_MODE} eq 'alpha')) {
+		&Create_InfoFile("$FilePath", "$Resrc$lang", "\\$WorkPath");
+	}
+	else {
+		&Create_InfoFile("$FilePath", "$Resrc", "\\$WorkPath");
+	}
+
+	return $FilePath;
+	}
+
+
+## accumulate list of Lockit releasables
+sub Lockit_Releasables
+{
+	my ($ComponentSrcPath, $ResrcFile, $href, $Bitmaps, $lang);
+	my $Resrc;
+	my ($BaseResrc,$FileType);
+	my $LockitInfoPath;
+	my $LockitPath;
+	my %Files;
+
+	if (defined $ENV{ABLD_TOOLSMOD_COMPATIBILITY_MODE} &&  ($ENV{ABLD_TOOLSMOD_COMPATIBILITY_MODE} eq 'alpha')) {
+		($ComponentSrcPath, $ResrcFile, $href, $Bitmaps, $lang) = @_;
+
+		$Resrc = basename($ResrcFile);
+		($BaseResrc,$FileType) = split(/\./, $Resrc);
+		Check_Epocroot();
+	
+		$LockitInfoPath = "$epocPath\\group\\$BaseResrc$lang.info";
+
+		$LockitPath = Setup_LockitPath($ComponentSrcPath, $BaseResrc, $FileType, "");
+		%Files = %$href;
+
+		if($FileType =~ /RSS|ACL|ABW|AIF|A[0-9]/i && $Bitmaps eq ""){
+			$LockitPath .= "\\$BaseResrc$lang.rpp";
+		}
+		else {
+			$LockitPath .= "\\$Bitmaps";
+		}
+
+	}
+	else {
+		($ComponentSrcPath, $ResrcFile, $href, $Bitmaps) = @_;
+
+		$Resrc = basename($ResrcFile);
+		($BaseResrc,$FileType) = split(/\./, $Resrc);
+		Check_Epocroot();
+		$LockitInfoPath = "$epocPath\\group\\$BaseResrc.info";
+
+		$LockitPath = Setup_LockitPath($ComponentSrcPath, $BaseResrc, $FileType);
+		%Files = %$href;
+
+		if($FileType =~ /RSS|ACL|ABW|AIF|A[0-9]/i && $Bitmaps eq ""){
+			$LockitPath .= "\\$BaseResrc.rpp";
+		}
+		else {
+			$LockitPath .= "\\$Bitmaps";
+		}
+	}
+
+	my %loggedFiles;
+	$loggedFiles{lc($_)} = 1 foreach keys (%Files);
+	
+	$Files{$LockitPath} = 1 if !($loggedFiles{lc($LockitPath)});
+	$Files{$LockitInfoPath} = 1 if !($loggedFiles{lc($LockitInfoPath)});
+	
+	return %Files;
+}
+
+sub Close_InfoFile ($)
+	{
+	my $FileToClose = $_[0];
+	close INFO;
+	}
+
+1;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/platform/sym_lkup_util.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,232 @@
+# Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+use FindBin;		# for FindBin::Bin
+use Getopt::Long;
+
+BEGIN {
+# check user has a version of perl that will cope
+	require 5.005_03;
+# establish the path to the Perl libraries: currently the same directory as this script
+	$PerlLibPath = $FindBin::Bin;	# X:/epoc32/tools
+	$PerlLibPath =~ s/\//\\/g;	# X:\epoc32\tools
+	$PerlLibPath .= "\\";
+}
+
+use lib $PerlLibPath;
+
+my $IgnoreExportDir = 0;
+my $ImportSymFile;
+my $CppFile;
+my $mapFile;
+my $SegmentContentSz = 0;
+my $nSyms = 0;
+my $nImports = 0;
+my %Symbols = ();
+my @Imports = ();
+
+{
+	unless (GetOptions(\%Options, 'sym=s', 'o=s', 'map=s', 'ignore_export_dir')) {
+		exit 1;
+	}
+	$ImportSymFile = $Options{sym};
+	$CppFile = $Options{o};
+	$mapFile = $Options{map};
+	$IgnoreExportDir = $Options{ignore_export_dir};
+
+	ReadSymFile() if $ImportSymFile;
+	ReadMapFile() if $mapFile;
+	
+	GenNamedSegment();
+}
+
+sub ReadMapFile() {
+	open FILE, $mapFile or die "Error :SymLookup: Cannot open map file $mapFile\n";
+
+	my $GlbSyms = 0;
+	while(<FILE>) {
+		if($_ =~ /Public Symbols/) {
+			$GlbSyms = 1;
+		}
+		elsif( !$GlbSyms ) {
+			next;
+		}
+		if($_ =~ /([0-9a-fA-F]{8})\s+(\S+)\s+_?(\S+)\s/){
+			$addr = $1;
+			$module = $2;
+			$name = $3;
+			if( defined $Symbols{$name} ) {
+				$Symbols{$name} = $addr;
+			}
+		}
+	}
+#	Remove symbols not found in map file
+	foreach my $sym (keys %Symbols){
+		if( !$Symbols{$sym} ){
+			delete $Symbols{$sym};
+		}
+	}
+
+}
+
+sub ReadSymFile() {
+	open FILE, $ImportSymFile or die "Error :SymLookup: Cannot open file $ImportSymFile\n";
+	
+	my $ImportDirSeen = 0;
+	my $ExportDirSeen = 0;
+	my $ExportNameTblSeen = 0;
+	my $numOfExportNames = 0;
+	my $nameCount = 0;
+	while (<FILE>) {
+# Ignore export table(s) if the flag '$IgnoreExportDir' is set. This flag is set for stddlls, as symbol listing 
+# is not required for them. The windows API GetProcAddr can be used directly. While for stdexe, the symbol names
+# are filtered out and then looked up in the map file for their addresses.
+
+		if($_ =~ /\*\*\* EXPORT DIRECTORY \*\*\*/){
+			next if($IgnoreExportDir);
+			$ExportDirSeen = 1;
+		}
+		elsif($_ =~ /\*\*\* Export Name Pointer Table \*\*\*/){
+			next if($IgnoreExportDir);
+			$ExportNameTblSeen = 1;
+		}
+		elsif($_ =~ /\*\*\* IMPORT DIRECTORY \*\*\*/) {
+			$ImportDirSeen = 1;
+		}
+
+		if($ExportDirSeen){
+			if($_ =~ /numberofnames\s+=\s+0x(\S+)/){
+				$numOfExportNames = hex($1);
+# Reset the flag once done with the export table
+				$ExportDirSeen = 0;
+			}
+		}
+		elsif($ExportNameTblSeen && $numOfExportNames){
+			if($_ =~ /\d+\s+0x[0-9a-fA-F]+\s+(\S+)/){
+				$Symbols{$1}=0;
+# Keep track of the symbols seen in "Export Name Pointer Table"
+				$nameCount++;
+			}
+			if($nameCount == $numOfExportNames){
+# Reset the flag once done with the name table
+				$ExportNameTblSeen = 0;
+			}
+		}
+		elsif($ImportDirSeen) {
+			if($_ =~ /^DLL name\s+=\s+\S+\s+\((\S+)\)/) {
+				my $dllname = $1;
+				push @Imports, $dllname;
+				$ImportDirSeen = 0;
+			}
+		}
+	}
+}
+
+sub GenNamedSegment() {
+
+	my $SegContents = "";
+	
+	&Header(\$SegContents);
+
+	&SymAddrTbl(\$SegContents);
+
+	&SymNames(\$SegContents);
+
+	&Footer(\$SegContents);
+
+	open OUTFILE, ">$CppFile" or die "Error :SymLookup:Cannot open file $CppFile\n";
+	print OUTFILE $SegContents;
+}
+
+sub Header(){
+	my $SegContentsRef = shift @_;
+	
+	$$SegContentsRef .= "\/\* $CppFile\n";
+	$$SegContentsRef .= " \* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).  All rights reserved.\n";
+	$$SegContentsRef .= " \* Makmake-generated source file for named symbol lookup\n";
+	$$SegContentsRef .= " \*\/\n";
+	$$SegContentsRef .= "#pragma data_seg(\".expdata\")";
+
+	$$SegContentsRef .= "\n\n";
+}
+
+sub Footer() {
+	my $SegContentsRef = shift @_;
+	$$SegContentsRef .= "\n#pragma data_seg()\n";
+	$$SegContentsRef .= "\n";
+}
+
+sub SymAddrTbl(){
+	my $SegContentsRef = shift @_;
+	$nSyms = keys %Symbols;
+	$nImports = @Imports;
+	$$SegContentsRef .= "int NSymbols = $nSyms;\n";
+	$$SegContentsRef .= "int NImports = $nImports;\n";
+
+	if(!$nSyms) {
+		return;
+	}
+	$$SegContentsRef .= "int addresses[] = {\n";
+	
+	foreach $key (sort keys %Symbols) {
+		if($Symbols{$key}){
+			$$SegContentsRef .= "\t0x".$Symbols{$key}.",\n";
+		}
+	}
+	$$SegContentsRef .= "};\n";
+}
+
+sub SymNames() {
+	if(!$nImports && !$nSyms){
+		return;
+	}
+	my $SegContentsRef = shift @_;
+	$$SegContentsRef .= "\nchar data[] = {\n";
+
+	my $symnames ;
+	my $colCnt ;
+	foreach $symnames (sort keys %Symbols) {
+		next if( $Symbols{$symnames} == 0);
+		my @chars = split(//,$symnames);
+		$$SegContentsRef .= "\t";
+		$colCnt =0;
+		foreach $aChar (@chars) {
+			if($colCnt >= 80) {
+				$$SegContentsRef .= "\\\n\t";
+				$colCnt = 0;
+			}
+			$$SegContentsRef .= "\'$aChar\',";
+			$colCnt += 4;
+		}
+		$$SegContentsRef .= "0,\n";
+	}
+
+	foreach my $dll (@Imports) {
+		my @chars = split(//,$dll);
+		$$SegContentsRef .= "\t";
+		$colCnt =0;
+		foreach $aChar (@chars) {
+			if($colCnt >= 80) {
+				$$SegContentsRef .= "\\\n\t";
+				$colCnt = 0;
+			}
+			$$SegContentsRef .= "\'$aChar\',";
+			$colCnt += 4;
+		}
+		$$SegContentsRef .= "0,\n";
+	}
+	$$SegContentsRef .= "\n};\n";
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/platform/winutl.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,355 @@
+
+# Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# this package does various ancillary things for windows modules
+# 
+#
+
+package Winutl;
+
+my $BaseAddress='';
+my @Win32LibList=();
+my $Win32Resrc='';
+my $CopyForStaticLinkage=0;
+my $Win32StdHeaders=0;
+my $MSVCVer=0;
+my $MSVCSubVer=0;
+
+require Exporter;
+@ISA=qw(Exporter);
+@EXPORT=qw(
+	Winutl_Help_Mmp
+
+	Winutl_DoMmp_Parse
+	Winutl_DoMmp
+
+	Winutl_BaseAddress
+	Winutl_Win32LibList
+	Winutl_Win32Resrc
+	Winutl_CopyForStaticLinkage
+	Winutl_Win32StdHeaders
+
+	Winutl_AdjustTargetPath
+
+	Winutl_MSVCVer
+	Winutl_MSVCSubVer
+
+	Winutl_CheckSourceMMPMetaData
+);
+
+use strict;
+use Genutl;
+use E32Variant;
+use CheckSource;
+use Pathutl;
+use Cwd;
+
+my %CheckSourceMMPMetaData;
+
+sub Winutl_Help_Mmp {
+# provide the help text for START <windows platforms> END blocks
+
+	print
+		"BASEADDRESS    [base address for dll loading]\n",
+		"WIN32_LIBRARY  [win32 libraries]\n",
+		"WIN32_RESOURCE  [win32 resource]\n",
+		"COPY_FOR_STATIC_LINKAGE   // copy dll from emulated Z drive\n",
+		"WIN32_HEADERS // instruct compiler to look into standard header directories\n",
+		"              // (implied by WIN32_LIBRARY)\n"
+	;
+}
+
+sub Winutl_DoMmp_Parse ($$) {
+	# takes reference to platform text and semicolon-separated list
+	# of compiler-specific include directories
+	my @PlatTxt=@{$_[0]};
+	my $CompilerIncPaths=$_[1];
+
+# process the START <windows platforms> END blocks
+
+	my $BaseTrg=&main::BaseTrg;
+	my $BasicTrgType=&main::BasicTrgType;
+	my $MakeFilePath=&main::MakeFilePath;
+	my $MMPFILE=&main::MmpFile;
+
+	# set up START WINS ... END block module variables
+	my @MmpWarn=();
+	my $Line;
+	LINE: foreach $Line (@PlatTxt) {
+		my $LineInfo=shift @$Line;
+
+		$LineInfo =~ /^(.+)\((\d+)\)$/;
+		my $CurFile = $1;
+		my $LineNum = $2;
+		my $BldInfDir = cwd;
+		$BldInfDir =~ s/\//\\/g;
+		$BldInfDir =~ s/^\w+://;
+		$BldInfDir .= "\\";
+		
+		$_=shift @$Line;
+		
+		if (/^BASEADDRESS$/oi) {
+			if (@$Line) {
+				$BaseAddress=shift @$Line;
+				$BaseAddress=~s/X/x/o;
+				next LINE;
+			}
+			push @MmpWarn, "$LineInfo : No base address specified for keyword BASEADDRESS\n";
+			next LINE;
+		}
+		if (/^WIN32_LIBRARY$/oi) {
+			if (@$Line)
+				{
+				$Win32StdHeaders = 1;
+
+				foreach (@$Line)
+					{
+					if (/^\./)
+						{
+						# local - check for UNIX slash and physical consistency of file as it exists relative to the bld.inf
+						CheckSource_MetaData(%CheckSourceMMPMetaData, $CurFile, "WIN32_LIBRARY", $_, $LineNum, $CheckSource_PhysicalCheck, $BldInfDir);
+						}
+					else
+						{
+						# global - check for UNIX slash and assume that it must be lower case
+						CheckSource_MetaData(%CheckSourceMMPMetaData, $CurFile, "WIN32_LIBRARY", $_, $LineNum);
+						}
+					$_ = &Path_Norm($_);
+					push @Win32LibList, $_;
+					}
+				}
+			else
+				{
+				push @MmpWarn, "$LineInfo : No libraries specified for keyword WIN32_LIBRARY\n";
+				}
+			next LINE;
+		}
+		if (/^WIN32_RESOURCE$/oi) {
+			if (@$Line) {
+				$Win32Resrc=shift @$Line;
+
+				CheckSource_MetaData(%CheckSourceMMPMetaData, $CurFile, "WIN32_RESOURCE", $Win32Resrc, $LineNum, $CheckSource_PhysicalCheck);
+				$Win32Resrc = &Path_Norm($Win32Resrc);
+				
+				$Win32Resrc=&main::Path_MakeAbs($MMPFILE, $Win32Resrc);
+				next LINE;
+			}
+			push @MmpWarn, "$LineInfo : No resource specified for keyword WIN32_RESOURCE\n";
+			next LINE;
+		}
+		if (/^COPY_FOR_STATIC_LINKAGE$/oi) {
+			if ($BasicTrgType!~/^DLL$/oi) {
+				push @MmpWarn, "$LineInfo : COPY_FOR_STATIC_LINKAGE only applies to DLLs\n";
+				next LINE;
+			}
+			if (&main::TrgPath eq "") {
+				push @MmpWarn, "$LineInfo : COPY_FOR_STATIC_LINKAGE requires TARGETPATH\n";
+				next LINE;
+			}
+			$CopyForStaticLinkage=1;
+			next LINE;
+		}
+		if (/^WIN32_HEADERS$/oi) {
+			$Win32StdHeaders = 1;
+			next LINE;
+		}
+		
+		push @MmpWarn, "$LineInfo : Unrecognised Keyword \"$_\"\n";
+	}
+
+	undef $Line;
+	if (@MmpWarn) {
+		warn
+			"\nMMPFILE \"",$MMPFILE,"\"\n",
+			"START .. END BLOCK WARNINGS(S)\n",
+			@MmpWarn,
+			"\n"
+		;
+	}
+	undef @MmpWarn;
+
+	# if Win32 Libraries required - set the Windows standard include paths
+	if ($Win32StdHeaders || $Win32Resrc || &main::Plat eq 'TOOLS' || &main::Plat eq 'CWTOOLS'
+		|| &main::Plat eq 'TOOLS2')
+	{	# show where to find win32 libraries
+		# include env variable takes everything between ';', including spaces and '"', as part of path
+		my @StdIncPaths=split ';', $CompilerIncPaths;
+		my $path;
+		foreach $path (@StdIncPaths) {
+			$path =~ s-/-\\-go;	# for those working with UNIX shells
+			if ($path =~ /^\+/) {
+				# expand CodeWarrior "recursive" entries
+				$path =~ s-^\+--go;		# remove the + from the current entry
+				if (opendir DIR, $path) {
+					my @list = grep !/^\.\.?$/, readdir DIR;
+					closedir DIR;
+					foreach (@list) {
+						my $newpath="$path\\$_";
+						if (-d $newpath) {
+							push @StdIncPaths,"+$newpath";	# add subdirs for later expansion
+						}
+					}
+				}
+			}
+		}
+		&main::SetStdIncPaths(@StdIncPaths);
+		&main::AddPlatMacros('WIN32','_WINDOWS');
+	}
+}
+
+sub Winutl_DoMmp ($$) {
+	# takes reference to platform text and semicolon-separated list
+	# of compiler-specific include directories
+	my @PlatTxt=@{$_[0]};
+	my $CompilerIncPaths=$_[1];
+
+	my $Plat=&main::Plat;
+	if ($Plat ne "WINSCW" and $Plat ne "CWTOOLS" and $Plat ne "TOOLS2") {
+		#	check that we're using VC6 SP3
+		&Winutl_MSVCVer();
+	}
+
+	&Winutl_DoMmp_Parse(\@PlatTxt, $CompilerIncPaths);
+	
+	my $BaseTrg=&main::BaseTrg;
+	my $BasicTrgType=&main::BasicTrgType;
+	my $MakeFilePath=&main::MakeFilePath;
+	my $MMPFILE=&main::MmpFile;
+	my @UidList=&main::UidList;
+	
+	if ($BasicTrgType=~/^(EXE|DLL)$/oi) {
+		# create the UID source file
+		my $priority = "EPriorityForeground";
+		if (&main::ProcessPriority) {
+			$priority="EPriority".&main::ProcessPriority;
+		}
+
+		my $UidText=join(
+			"\n",
+			'// Makmake-generated uid source file',
+			'#include <e32cmn.h>',
+			'#pragma data_seg(".SYMBIAN")',
+			'__EMULATOR_IMAGE_HEADER2('
+		);
+		foreach (@UidList) {
+			$UidText.="$_,";
+		}
+		my $vstr = "0x".&Genutl_VersionToHexString(&main::Version);
+		my $vid = &main::VendorId;
+		if(!$vid) { $vid="0"; }
+		$UidText.="$priority,".(&main::CapabilityFlags)[0]."u,".(&main::CapabilityFlags)[1]."u,".&main::SecureId.",".$vid.",$vstr,";	# second capability word always 0 for now
+		if (&main::AllowDllData) {
+			$UidText.="1,";
+		} else {
+			$UidText.="0,";
+		}
+		chop $UidText;
+		$UidText.=")\n";
+		$UidText.="#pragma data_seg()\n";
+		unless (&main::Plat eq 'TOOLS' || &main::Plat eq 'CWTOOLS' || &main::Plat eq 'TOOLS2' ) {
+			&main::AddSrc("$MakeFilePath$BaseTrg.UID.CPP", $UidText);
+		};
+	}
+
+}
+
+sub Winutl_BaseAddress () {
+	$BaseAddress;
+}
+
+sub Winutl_Win32LibList () {
+	@Win32LibList;
+}
+
+sub Winutl_Win32Resrc () {
+	$Win32Resrc;
+}
+
+sub Winutl_CopyForStaticLinkage () {
+	$CopyForStaticLinkage;
+}
+
+sub Winutl_Win32StdHeaders () {
+	$Win32StdHeaders;
+}
+
+sub Winutl_AdjustTargetPath () {
+	my ($TrgPathRef) = @_;
+
+	if (&main::EPOCSecurePlatform) {
+
+		my $plan=1;
+		my @macros = &Variant_GetMacroList;
+		foreach my $macro (@macros) {
+			if ($macro =~ m/^SYMBIAN_IGNORE_BIN_TARGETPATH.*/) {
+				$plan = 2;
+				last;
+			}
+		}
+
+		if ($plan == 1) {
+			# Intermediate step: TARGETPATH => COPY_FOR_STATIC_LINKAGE
+			$CopyForStaticLinkage = 1 if ($$TrgPathRef ne "");
+		} else {
+			# Finally: Ignore TARGETPATH and COPY_FOR_STATIC_LINKAGE
+			# unless it's a subdir of sys\bin
+			if (&main::TrgPath !~ /^Z\\sys\\bin\\.+/i) {
+				$$TrgPathRef = "";
+				$CopyForStaticLinkage = 0;
+			}
+		}
+	}
+}
+
+sub Winutl_MSVCVer ($) {
+	my $platcommand=shift;
+	if(!defined $platcommand) {
+		$platcommand=0; }
+	open PIPE, "LINK.EXE 2>&1 |" or die "ERROR: Can't invoke LINK.EXE\n";
+	my $DoneCheck=0;
+	while (<PIPE>) {
+		unless ($DoneCheck) {
+			if (/^.+\s+Version\s+(\d)\.(\d{2})\.((\d{4})|(\d{5})(.\d{2}))\s*$/o) {
+				if (($1<6) or ($1==6 and $2<0) or ($1==6 and $2==0 and $3<8447)) {
+					warn "WARNING: Should install MSVC6 Service Pack 3\n";
+				}
+				$MSVCVer = $1;
+				$MSVCSubVer = $2;
+				$DoneCheck=1;
+			}
+		}
+	}
+	close PIPE;
+	# Do not throw any error when link.exe not present  while displaying
+	# a list of the supported platforms using bldmake plat command.
+	if (!$DoneCheck && !$platcommand) {
+		# Couldn't find version information? Might not have link.exe at all
+		die "ERROR: failed to find version information for LINK.EXE\n";
+	}
+
+	$MSVCVer;
+}
+
+sub Winutl_MSVCSubVer ($) {
+	my $platcommand=@_;
+	&Winutl_MSVCVer($platcommand);
+
+	$MSVCSubVer;
+}
+
+sub Winutl_CheckSourceMMPMetaData () {
+	%CheckSourceMMPMetaData;
+}
+
+1;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/test/cw_ide_test.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,418 @@
+#!perl
+# Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Script to build specified MMP files with both command line and IDE, then
+# use EVALID to compare the results.
+# Inspired by "buildall.pl", written by Cuong Phan
+# 
+#
+
+use strict;
+use File::Basename;		# for fileparse()
+use File::Path;			# for mkpath
+use Cwd;				# for cwd
+use OLE;
+use Getopt::Long;
+
+sub Usage ($) 
+	{
+	my ($message) = @_;
+	print <<ENDHERESTRING;
+$message
+
+Usage : perl cw_ide_test.pl [-v] -f mmplist platform1 [platform2 ...]
+
+Builds specified MMP files with both the command line and the CodeWarrior IDE,
+storing the build products in zip files and comparing them with EVALID.
+The output can be summarised using scanlog.pl.
+
+All of the specified MMP files are build for all of the specified platforms.
+If -v is specified, the detailed build commands are included in the output.
+
+ENDHERESTRING
+
+	exit 1;
+	}
+
+my %Options=();
+GetOptions(\%Options, "v", "f=s");
+
+&Usage("No platforms specified") if (@ARGV < 1);
+&Usage("Must specify list of mmp files using -f") if (!defined($Options{"f"}));
+
+my @mmplist=();
+my $specifiedCWD;
+open FILELIST, "<$Options{f}" or &Usage("Cannot open $Options{f}");
+while (<FILELIST>)
+	{
+	$specifiedCWD = "";
+		
+	if (/#.*cwd:/i)
+		{
+		$specifiedCWD = $_;
+		$specifiedCWD =~ s/^.*cwd:/cwd:/i;
+		$specifiedCWD =~ s/\).*$//;
+		$specifiedCWD =~ s/\s*//g;
+		$specifiedCWD =~ s/\//\\/g;
+		$specifiedCWD .="?";
+		}
+		
+	s/#.*$//;		# remove comments
+	s/\s*$//;		# remove trailing ws
+	s/^\s*//;		# remove leading ws
+	s/\//\\/g;		# convert / to \
+	next if ($_ eq "");
+	push @mmplist, $specifiedCWD.$_;
+	}
+close FILELIST;
+
+&Usage("No MMP files?") if (@mmplist == 0);
+
+# create an instance of CodeWarrior
+my $CW = CreateObject OLE  "CodeWarrior.CodeWarriorApp";
+if (!defined($CW))
+	{
+	print "Failed to start CodeWarrior\n";
+	exit(1);
+	}
+
+# turn on autoflush, to get stdout in the right place...
+# These runes come from perlfaq5
+
+my $old_fh = select(STDOUT);
+$| = 1;
+select($old_fh);
+
+foreach my $mmpfile (@mmplist)
+	{
+	$specifiedCWD = "";
+
+	if ($mmpfile =~ /^cwd:/)
+		{
+		$specifiedCWD = $mmpfile;
+		$specifiedCWD =~ s/^cwd://;
+		$specifiedCWD =~ s/\?.*$//;
+		$mmpfile =~ s/^cwd:.*\?//;
+		}
+
+	if (!-f $mmpfile)
+		{
+		print "MISSING: $mmpfile\n";
+		next;
+		}
+	
+	foreach my $platform (@ARGV)
+		{
+		$platform = uc $platform;
+		my ($mmpname, $mmpdir, $mmpext) = fileparse($mmpfile,'\..*');
+		my $phasename = $mmpname."_".$platform;
+		
+		my $origdir = cwd;
+
+		if ($specifiedCWD)
+			{
+			print ("chdir $specifiedCWD\n");			
+			chdir ($specifiedCWD);
+
+			# Workaround for Base components, where GENEXEC.MKE needs to be executed to export the required headers for a build
+			do_system ("bldmake bldfiles");
+			do_system ("abld makefile $platform");
+			}
+		else
+			{
+			print ("chdir $mmpdir\n");
+			chdir ($mmpdir);
+			}
+
+		my $time = localtime;
+		print "===-------------------------------------------------\n";
+		print "=== $phasename\n";
+		print "===-------------------------------------------------\n";
+		print "=== $phasename started $time\n";
+
+		if ($specifiedCWD)
+			{
+			$mmpdir = "\\".$mmpdir;
+			}
+		else
+			{
+			$mmpdir = "";
+			}
+
+		&do_one_mmp_file($phasename, $mmpname, $platform, $mmpdir);
+
+		$time = localtime;
+		print "=== $phasename finished $time\n";
+
+		chdir($origdir);
+		print ("chdir $origdir\n");
+		}
+	}
+
+$CW->Quit(0);
+exit(0);
+
+sub do_system($)
+	{
+	my ($cmd) = @_;
+	print "    $cmd\n";
+	return system($cmd);
+	}
+
+sub zip_and_check($$$)
+	{
+	my ($zipname, $releaseref, $complain) = @_;
+	
+	unlink($zipname) if (-f $zipname);
+	
+	my @ziplist;
+	foreach (sort keys %$releaseref)
+		{
+		if (-f $_)
+			{
+			push @ziplist,$_;	# add to zip archive
+			}
+		else
+			{
+			print "MISSING: $_\n" if ($complain);
+			}
+		}
+	
+	if (scalar @ziplist ==0 && $complain)
+		{
+		print "Can't create empty archive $zipname\n";
+		return;
+		}
+	
+	# Make the non-empty archive
+	
+	open ZIP, "| zip -q $zipname -@";
+	print ZIP
+	 join("\n",@ziplist,"");
+	close ZIP;
+	print "Created $zipname\n";
+	}
+	
+sub do_one_mmp_file($$$)
+	{
+	my ($phasename, $mmpname, $platform, $mmpdir) = @_;
+
+	print "=== $phasename == $mmpname.mmp\n";
+
+	# use MAKMAKE to generate the makefile
+	# make CLEAN to remove any existing build results
+	# make ALL to build everything
+	# make WHAT to get the releaseables, as per abld.pl
+	# check the releaseables and zip up the ones which do exist
+	# make CLEAN again to get ready for the IDE build...
+		
+	my $makefile = "$mmpname.$platform";
+	my %allreleaseables=();		# complete list, for putting back afterwards
+	my %releaseables=();		# just things we expect the IDE to build
+	my %uncheckedreleaseables=();
+	my $makecmd = "make -s";
+	$makecmd = "make" if ($Options{"v"});
+	
+	unlink $makefile if (-f $makefile);
+	&do_system("perl -S makmake.pl $mmpdir$mmpname $platform");
+	return if (!-f $makefile);
+	
+	open PIPE,"make -s -r -f $makefile WHAT |";
+	while (<PIPE>) 
+		{
+		next if (/Nothing to be done for \S+\.$/o);
+#		releasables split on whitespace - quotes possible -stripped out
+		while (/("([^"\t\n\r\f]+)"|([^ "\t\n\r\f]+))/go) 
+			{
+			my $file = ($2 ? $2 : $3);
+			$allreleaseables{$file}=1;
+			next if ($file =~ /epoc32\\localisation\\/i);
+			next if ($file =~ /epoc32\\data/i && $platform =~ /winscw/i);
+			$releaseables{$file}=1;
+			}
+		}
+	close PIPE;
+	&zip_and_check("$mmpname.orig.$platform.zip", \%allreleaseables, 0);
+	
+	&do_system("$makecmd -r -f $makefile CLEAN");
+	&do_system("$makecmd -r -f $makefile ALL");
+	&zip_and_check("$mmpname.cmd.$platform.zip", \%releaseables, 1);
+
+	&do_system("$makecmd -r -f $makefile CLEAN");
+	
+	print "=== $phasename == $mmpname.mcp\n";
+
+	# Remove the remnants of previous projects
+	# use MAKMAKE to generate the importable .xml
+	# import the xml to create the .mcp
+	# build the relevant targets
+	# extract the contents of the "Errors & Warnings" window
+	# check against the commandline list of releasables, zip up the ones which exist
+	
+	my $currentdir = cwd;
+	$currentdir =~ s/\//\\/g;
+	my $xmlfile = "$currentdir\\$mmpname.xml";
+	my $mcpfile = "$currentdir\\$mmpname.mcp";
+	my $mcpdata = "$currentdir\\${mmpname}_Data";
+	
+	&do_system("rmdir /s/q $mcpdata") if (-d $mcpdata);
+	unlink $mcpfile if (-f $mcpfile);
+	unlink $xmlfile if (-f $xmlfile);
+
+	&do_system("perl -S makmake.pl $mmpdir$mmpname CW_IDE:$platform");
+	if (-f $xmlfile)
+		{
+		&fixup_XML($xmlfile) if ($Options{"v"});
+		my $project = $CW->ImportProject($xmlfile, $mcpfile, 'true');
+		if (defined($project))
+			{
+			my $success = &BuildTargets($project->Targets,$platform);
+			$project->Close();
+			return if (!$success);
+			&zip_and_check("$mmpname.ide.$platform.zip", \%releaseables, 1);
+			}
+		else
+			{
+			print "ERROR: failed to import $xmlfile\n";
+			return;
+			}
+		}
+	else
+		{
+		print "ERROR: failed to create $xmlfile\n";
+		return;
+		}
+
+	print "=== $phasename == $mmpname.evalid\n";
+
+	# remove & recreate a clean temporary directory for unzipping
+	# unzip the saved results of the cmd and ide builds
+	# use EVALID to compare the releaseables
+		
+	my $evaliddir = "c:\\temp\\evalid";
+	&do_system("rmdir /s/q $evaliddir") if (-d $evaliddir);
+	mkpath([$evaliddir]);
+	
+	if (   &do_system("unzip -q $mmpname.cmd.$platform.zip -d $evaliddir\\cmd")==0
+		&& &do_system("unzip -q $mmpname.ide.$platform.zip -d $evaliddir\\ide")==0)
+		{
+		open EVALID,"perl -S evalid.pl $evaliddir\\ide $evaliddir\\cmd -c |";
+		while (<EVALID>)
+			{
+			print $_ if (/^(PROBLEM|Failed)/);
+			print $_ if (/^OK/ && $Options{"v"});
+			if (/^FAILED/)
+				{
+				if (/\.map\t/i)
+					{
+					print "WARNING(S): $_";
+					}
+				else
+					{
+					print "FATAL ERROR(S): $_";
+					}
+				}
+			}
+		close EVALID;
+		}
+	else
+		{
+		print "FATAL ERROR(S): problems unpacking zip files\n";
+		}
+	&do_system("rmdir /s/q $evaliddir") if (-d $evaliddir);
+	
+	# Restore original files, if any
+	if (-e "$mmpname.orig.$platform.zip")
+		{
+		&do_system("unzip -q -o $mmpname.orig.$platform.zip -d \\");
+		}
+	}
+
+sub fixup_XML($)
+	{
+	my ($xmlfile) = @_;
+	open XML,"<$xmlfile" or return;
+	my @lines = <XML>;
+	close XML;
+	
+	foreach (@lines)
+		{
+		# Insist that build commands are logged to the output window, irrespective of CW version
+		s-<SETTING><NAME>LogMessages</NAME><VALUE>false</VALUE></SETTING>-<SETTING><NAME>LogMessages</NAME><VALUE>true</VALUE></SETTING>-;
+		s-<SETTING><NAME>ShowCommandLine</NAME><VALUE>false</VALUE></SETTING>-<SETTING><NAME>ShowCommandLine</NAME><VALUE>true</VALUE></SETTING>-;
+
+		# Remove generation of Browse info by Language Parser (temporary workaround for crashes in automated IDE builds)
+		s-<SETTING><NAME>BrowserGenerator</NAME><VALUE>2</VALUE></SETTING>-<SETTING><NAME>BrowserGenerator</NAME><VALUE>0</VALUE></SETTING>-;		
+		}
+		
+	open XML,">$xmlfile" or return;
+	print XML @lines;
+	close XML;
+	}
+	
+sub BuildTargets($$)
+	{
+	my ($targets,$platform) = @_;
+
+	for (my $item=0; $item<$targets->Count; $item++ ) 
+		{
+		my $target = $targets->Item($item);
+	    my $targetName = $target->name;
+	    # Skip platforms we aren't interested in...
+	    next if ($targetName !~ /$platform /i);
+
+		print "Building $targetName...\n";
+		     
+	    $target->RemoveObjectCode( 'true' );
+
+		my $buildMessages = $target->BuildAndWaitToComplete();
+		if (!defined($buildMessages))
+			{
+			printf "FATAL ERROR(S): build aborted? (%s)\n", $target->LastError();
+			return 0;
+			}
+			
+		my $messageList = $buildMessages->Informations;
+		&printMessages("",$messageList) if defined($messageList);
+		
+		my $warningCount = $buildMessages->WarningCount;
+		my $errorCount = $buildMessages->ErrorCount;    
+		print "Completed $targetName with $errorCount errors and $warningCount warnings\n";
+
+		if ($errorCount > 0)
+			{
+			$messageList = $buildMessages->Errors;
+			&printMessages("FATAL ERROR(S): ", $messageList);
+			}
+		if ($warningCount > 0)
+			{
+			$messageList = $buildMessages->Warnings;
+			&printMessages("WARNING: ", $messageList);
+			}
+		} 
+	return 1;
+	}
+
+sub	printMessages ($$)
+	{
+    my ($prefix,$messageList) = @_;
+
+	# traverse through the list of messages
+	for (my $item = 0; $item < ($messageList->Count); $item++)
+		{
+        my $message = $messageList->Item($item);
+		print $prefix,$message->MessageText,"\n";
+		}
+	}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/test/featurevariantmap/a.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,25 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+#include "a.h"
+
+#ifdef ADEF
+int a = 1;
+#else
+int a = 0;
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/test/featurevariantmap/b.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,26 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+#include "b.h"
+
+#ifdef BDEF
+int b = 1;
+#else
+int b = 0;
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/test/featurevariantmap/featnames.txt	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,5 @@
+NOEL
+JACK
+
+ADEF
+BDEF
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/test/featurevariantmap/fred.dll	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,1 @@
+fred DLL
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/test/featurevariantmap/inc_jack/a.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,24 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+#ifdef JACK
+int a_jack(int);
+#else
+int a_jill(int);
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/test/featurevariantmap/inc_jack/b.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,24 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+#ifdef JACK
+int b_jack(int);
+#else
+int b_jill(int);
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/test/featurevariantmap/inc_noel/a.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,24 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+#ifdef NOEL
+int a_noel(int);
+#else
+int a_xmas(int);
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/test/featurevariantmap/inc_noel/b.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,24 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+#ifdef NOEL
+int b_noel(int);
+#else
+int b_xmas(int);
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/test/featurevariantmap/jack.hrh	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,20 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+#define JACK
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/test/featurevariantmap/jack2.hrh	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,20 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+#define JACK
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/test/featurevariantmap/john.12345678901234567890123456789012.dll	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,1 @@
+john DLL
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/test/featurevariantmap/john.dll.vmap	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,3 @@
+FEATUREVARIANT
+12345678901234567890123456789012	myvar
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/test/featurevariantmap/noel.hrh	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,20 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+#define NOEL
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/test/featurevariantmap/test.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,261 @@
+#
+# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+# unit tests for featurevariantmap.pm
+
+use strict;
+use Test;
+use File::Basename;
+use File::Spec;
+use lib "../../e32util";	# run from e32toolp/test/featuervariantmap
+use lib "../e32util";		# run from e32toolp/test
+use featurevariantmap;
+use File::Copy;
+use Digest::MD5;
+
+# how many tests do we plan to run?
+BEGIN { plan tests => 56 }
+
+# where is the test data
+my $dir = File::Spec->rel2abs(dirname($0));
+print "# running in $dir\n";
+
+# Copy the features lists needed for this test to the right place
+mkdir("$ENV{EPOCROOT}epoc32/include/variant/featurelists/");
+unlink "$ENV{EPOCROOT}epoc32/include/variant/featurelists/featnames.txt";
+copy("$dir/featnames.txt", "$ENV{EPOCROOT}epoc32/include/variant/featurelists/featnames.txt");
+
+###############################################################################
+# tests for Find                                                              #
+###############################################################################
+
+# we wont find a non-existent file
+ok(featurevariantmap->Find("non-existant-file", "myvar"), "");
+
+# we will find a real file (with no vmap)
+ok(featurevariantmap->Find("$dir/fred.dll", "myvar"), "$dir/fred.dll");
+
+# we wont find a non-existent feature variant
+print "# expect an ERROR from this test\n";
+ok(featurevariantmap->Find("$dir/john.dll", "not-a-variant"), "");
+
+# we will find a real feature variant
+ok(featurevariantmap->Find("$dir/john.dll", "myvar"),
+   "$dir/john.12345678901234567890123456789012.dll");
+
+# the feature variant name should not depend on case
+ok(featurevariantmap->Find("$dir/john.dll", "MyVar"),
+   "$dir/john.12345678901234567890123456789012.dll");
+
+###############################################################################
+# tests for Save                                                              #
+###############################################################################
+
+# create a .vmap from scratch
+unlink("$dir/tony.dll.vmap"); 
+
+ok(! featurevariantmap->Save("$dir/tony.dll", 
+     "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "a_phone", "features_for_a"));
+
+ok(check("$dir/tony.dll.vmap", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","a_phone","features_for_a"));
+
+# add to an existing .vmap file
+ok(! featurevariantmap->Save("$dir/tony.dll", 
+     "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", "b_phone", "features_for_b1"));
+
+ok(check("$dir/tony.dll.vmap", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","a_phone","features_for_a"));
+ok(check("$dir/tony.dll.vmap", "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb","b_phone","features_for_b1"));
+
+# change an entry in an existing .vmap file
+ok(! featurevariantmap->Save("$dir/tony.dll", 
+     "babababababababababababababababa", "b_phone", "features_for_b2"));
+
+ok(check("$dir/tony.dll.vmap", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","a_phone","features_for_a"));
+ok(check("$dir/tony.dll.vmap", "babababababababababababababababa","b_phone","features_for_b2"));
+
+# change with one case and check with another
+ok(! featurevariantmap->Save("$dir/tony.dll", 
+     "abbbbbbbbbbbbbbbbbbbbbbbbbbbbbba", "B_PhOnE", "features_for_b3"));
+
+ok(check("$dir/tony.dll.vmap", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","a_phone","features_for_a"));
+ok(check("$dir/tony.dll.vmap", "abbbbbbbbbbbbbbbbbbbbbbbbbbbbbba","b_phone","features_for_b3"));
+
+# add an entry and a hint to an existing .vmap file
+my @hints = ("FEATUREVARIANT");
+ok(! featurevariantmap->Save("$dir/tony.dll", 
+     "cccccccccccccccccccccccccccccccc", "c_phone", "features_for_c", \@hints));
+
+ok(check("$dir/tony.dll.vmap", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","a_phone","features_for_a"));
+ok(check("$dir/tony.dll.vmap", "abbbbbbbbbbbbbbbbbbbbbbbbbbbbbba","b_phone","features_for_b3"));
+ok(check("$dir/tony.dll.vmap", "cccccccccccccccccccccccccccccccc","c_phone","features_for_c"));
+ok(check("$dir/tony.dll.vmap", "FEATUREVARIANT"));
+
+###############################################################################
+# tests for Hash                                                              #
+###############################################################################
+
+# test the hash key for an invalid feature variant
+my @src = ("$dir/a.cpp", "$dir/b.cpp");
+my %var = ('NAME' => 'something', 'VALID' => 0);
+
+ok(featurevariantmap->Hash(\@src, \%var), "");
+ok(featurevariantmap->HashAndFeatures(\@src, \%var), "");
+
+# test the hash key for a valid feature variant with missing headers
+$var{'VALID'} = 1;
+ok(featurevariantmap->Hash(\@src, \%var), qr/^[0-9a-f]{32}$/);
+ok(CompareHashAndFeatures(featurevariantmap->HashAndFeatures(\@src, \%var)), 'ADEF=undefined,BDEF=undefined');
+
+# test the hash key for a working feature variant
+$var{'BUILD_INCLUDES'} = ["$dir/inc_jack"];
+my $h1 = featurevariantmap->Hash(\@src, \%var);
+ok($h1, qr/^[0-9a-f]{32}$/);
+ok(CompareHashAndFeatures(featurevariantmap->HashAndFeatures(\@src, \%var)), 'ADEF=undefined,BDEF=undefined,JACK=undefined');
+
+# test the hash key for a different working feature variant
+$var{'BUILD_INCLUDES'} = ["$dir/inc_noel", "$dir/inc_fake"];
+my $h2 = featurevariantmap->Hash(\@src, \%var);
+ok($h2, qr/^[0-9a-f]{32}$/);
+ok($h1 ne $h2);
+ok(CompareHashAndFeatures(featurevariantmap->HashAndFeatures(\@src, \%var)), 'ADEF=undefined,BDEF=undefined,NOEL=undefined');
+
+# test the hash key for a working feature variant with a pre-include
+$var{'PREINCLUDE'} = "$dir/jack.hrh";
+$var{'BUILD_INCLUDES'} = ["$dir/inc_jack"];
+my $h3 = featurevariantmap->Hash(\@src, \%var);
+ok($h3, qr/^[0-9a-f]{32}$/);
+ok($h3 ne $h2);
+ok($h3 ne $h1);
+ok(CompareHashAndFeatures(featurevariantmap->HashAndFeatures(\@src, \%var)), 'ADEF=undefined,BDEF=undefined,JACK=defined');
+
+# test that we get the same hash value when we should (jack2.hrh ~ jack.hrh)
+$var{'PREINCLUDE'} = "$dir/jack2.hrh";
+my $h3a = featurevariantmap->Hash(\@src, \%var);
+ok($h3a, $h3);
+ok(CompareHashAndFeatures(featurevariantmap->HashAndFeatures(\@src, \%var)), 'ADEF=undefined,BDEF=undefined,JACK=defined');
+
+# test the hash key for a different working feature variant with a pre-include
+$var{'PREINCLUDE'} = "$dir/noel.hrh";
+$var{'BUILD_INCLUDES'} = ["$dir/inc_noel"];
+my $h4 = featurevariantmap->Hash(\@src, \%var);
+ok($h4, qr/^[0-9a-f]{32}$/);
+ok($h4 ne $h3);
+ok($h4 ne $h2);
+ok($h4 ne $h1);
+ok(CompareHashAndFeatures(featurevariantmap->HashAndFeatures(\@src, \%var)), 'ADEF=undefined,BDEF=undefined,NOEL=defined');
+
+# test the hash key for a different working feature variant with extra macros
+$var{'PREINCLUDE'} = "$dir/noel.hrh";
+$var{'BUILD_INCLUDES'} = ["$dir/inc_noel"];
+$var{'MACROS'} = ["ADEF"];
+my $h5 = featurevariantmap->Hash(\@src, \%var);
+ok($h5, qr/^[0-9a-f]{32}$/);
+ok($h5 ne $h4);
+ok($h5 ne $h3);
+ok($h5 ne $h2);
+ok($h5 ne $h1);
+ok(CompareHashAndFeatures(featurevariantmap->HashAndFeatures(\@src, \%var)), 'ADEF=\'1\',BDEF=undefined,NOEL=defined');
+
+$var{'MACROS'} = ["ADEF", "BDEF"];
+my $h6 = featurevariantmap->Hash(\@src, \%var);
+ok($h6, qr/^[0-9a-f]{32}$/);
+ok($h6 ne $h5);
+ok($h6 ne $h4);
+ok($h6 ne $h3);
+ok($h6 ne $h2);
+ok($h6 ne $h1);
+ok(CompareHashAndFeatures(featurevariantmap->HashAndFeatures(\@src, \%var)), 'ADEF=\'1\',BDEF=\'1\',NOEL=defined');
+
+# test verbose mode
+$featurevariantmap::verbose = 1;
+print "# this test is verbose\n";
+my $h7 = featurevariantmap->Hash(\@src, \%var);
+ok($h7, $h6);
+print "# this test is verbose\n";
+ok(CompareHashAndFeatures(featurevariantmap->HashAndFeatures(\@src, \%var)), 'ADEF=\'1\',BDEF=\'1\',NOEL=defined');
+
+###############################################################################
+# END OF TESTS                                                                #
+###############################################################################
+
+# utility functions
+
+sub check
+{
+	my $file = shift;
+	my $arg1 = shift;
+	my $arg2 = shift;
+	my $feat = shift;
+	
+	if ($arg2)
+	{
+		return checkHash($file, $arg1, $arg2, $feat);
+	}
+	return checkHint($file, $arg1);
+}
+
+sub checkHash
+{
+	my $file = shift;
+	my $hash = shift;
+	my $name = shift;
+	my $feat = shift;
+	
+	open(FILE, $file) or return 0;
+	my $hit = 0;	# found hash with the right name
+	my $bad = 0;	# found hash with the wrong name
+	while (<FILE>)
+	{
+		if (/^$hash\s+(\w+)\s+$feat$/)
+		{
+			if (uc($1) eq uc($name))
+			{
+				$hit = 1;
+			}
+			else
+			{
+				$bad = 1;
+			}
+		}
+	}
+	close(FILE);
+	return ($hit && !$bad);
+}
+
+sub checkHint
+{
+	my $file = shift;
+	my $hint = shift;
+
+	open(FILE, $file) or return 0;
+	while (<FILE>)
+	{
+		if (/^$hint\s*$/)
+		{
+			close(FILE);
+			return 1;
+		}
+	}
+	close(FILE);
+	return 0;
+}
+
+# Check hash and feature list matches
+sub CompareHashAndFeatures
+{
+	return if !$_[0] || !$_[1];
+	return $_[1] if $_[0] eq Digest::MD5::md5_hex($_[1]);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/test/featurevariantparser/a1.var	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,12 @@
+# A1.var
+
+VARIANT A1
+EXTENDS          groupA
+
+VIRTUAL
+
+BUILD_INCLUDE     append	 /epoc32/include/A1/build
+BUILD_INCLUDE   prepend 	/prepend/include/A1
+ROM_INCLUDE prepend /epoc32/include/A1/rom
+
+VARIANT_HRH /epoc32/include/e32std.h
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/test/featurevariantparser/a2.var	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,9 @@
+VARIANT A2
+
+EXTENDS groupA
+VIRTUAL
+
+BUILD_INCLUDE set /epoc32/include/A2/build
+BUILD_INCLUDE append /epoc32/include/A2/build2
+ROM_INCLUDE set /epoc32/include/A2/rom
+VARIANT_HRH /epoc32/include/e32std.h
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/test/featurevariantparser/b1a.var	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,9 @@
+# b1a.var
+
+EXTENDS A1
+VARIANT B1A
+BUILD_INCLUDE append epoc32\include\B1\build
+BUILD_INCLUDE prepend  /prepend/include/B1
+
+ROM_INCLUDE prepend /epoc32/include/B1/rom
+VARIANT_HRH \epoc32/include/e32cmn.inl
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/test/featurevariantparser/b1b.var	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+# B1b.var
+
+EXTENDS A1
+VARIANT B1B
+VIRTUAL
+
+BUILD_INCLUDE append /epoc32/include/B1/build
+BUILD_INCLUDE prepend  /prepend/include/B1
+
+ROM_INCLUDE prepend /epoc32/include/B1/rom
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/test/featurevariantparser/b2.var	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,8 @@
+# B2.var
+
+EXTENDS A2
+VARIANT B2
+BUILD_INCLUDE append /epoc32/include/B1/build
+BUILD_INCLUDE prepend  /prepend/include/B1
+
+ROM_INCLUDE prepend /epoc32/include/B1/rom
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/test/featurevariantparser/default.var	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,8 @@
+
+VIRTUAL
+
+VARIANT default      
+
+BUILD_INCLUDE set /epoc32/include/build
+ROM_INCLUDE set /epoc32/include/rom         
+VARIANT_HRH		\epoc32\include\variant\Symbian_OS.hrh
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/test/featurevariantparser/groupa.var	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,13 @@
+VARIANT groupA
+EXTENDS default      
+
+# grouping node
+VIRTUAL
+
+# Add to parent paths
+BUILD_INCLUDE append /epoc32/include/groupA/build
+
+# Append ROM_INCLUDE to parent
+ROM_INCLUDE append /epoc32/include/groupA/rom
+
+VARIANT_HRH /epoc32/include/e32std.h
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/test/featurevariantparser/test.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,168 @@
+#
+# Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+# Unit tests for Feature Variant Parser (featurevariantparser.pm)
+# Will only work with EPOCROOT = \, due to some hard coded paths in the VAR files
+# To use a custom EPOCROOT, update the VAR files to reflect the correct paths
+# This test script can either be called on its own, or run through the test harness under ../unittest.pl
+
+use strict;
+use Test;
+use lib "../../e32util";
+use lib "../e32util";
+use featurevariantparser;
+use File::Spec;
+use File::Basename;
+
+BEGIN { plan tests => 18 }
+
+# Current Working Directory
+my $dir = dirname($0);
+
+my @buildincludes;
+my $buildincs;
+my $romincs;
+my @romincludes;
+my @parentnodes;
+my $parents;
+my @childnodes;
+my $children;
+
+# Uncommenting the next line will enable verbose mode
+#$featurevariantparser::verbose=1;
+
+# Load first variant file
+my %variant1 = featurevariantparser->GetVariant( "default", "$dir" );
+
+#1
+print "\nCheck the NAME of the variant:\n";
+ok( 'default', $variant1{'NAME'} );
+
+#2
+print "\nCheck the FULL PATH:\n";
+ok( File::Spec->rel2abs("$dir\\default.var"), $variant1{'FULLPATH'} );
+
+#3
+print "\nCheck if variant is VALID:\n";
+ok( $variant1{'VALID'} );
+
+#4
+print "\nCheck if this is a VIRTUAL node:\n";
+ok( $variant1{'VIRTUAL'} );
+
+#5
+my $tmp = "$ENV{EPOCROOT}epoc32\\include\\variant\\Symbian_OS.hrh";
+print "\nTest the VARIANT_HRH:\n";
+ok( File::Spec->canonpath($tmp), $variant1{'VARIANT_HRH'} );
+
+#6
+print "\nTesting the BUILD_INCLUDES with 'append' keyword:\n";
+@buildincludes = ("$ENV{EPOCROOT}epoc32/include/build");
+$buildincs     = $variant1{'BUILD_INCLUDES'};
+ok( File::Spec->canonpath("@buildincludes"), "@$buildincs" );
+
+#7
+print "\nTesting the ROM_INCLUDES:\n";
+@romincludes = ("$ENV{EPOCROOT}epoc32\\include\\rom");
+$romincs     = $variant1{'ROM_INCLUDES'};
+ok( File::Spec->canonpath("@romincludes"), "@$romincs" );
+
+# Load Second Variant File
+my %variant2 = featurevariantparser->GetVariant( "a1", "$dir" );
+
+#8
+print "\nTesting PARENT NODES:\n";
+@parentnodes = ("groupA default");
+$parents     = $variant2{'PARENTS'};
+ok( "@parentnodes", "@$parents" );
+
+#9
+print "\nTesting CHILD NODES:\n";
+@childnodes = ( "b1a", "b1b" );
+$children = $variant2{'CHILDREN'};
+ok( "@childnodes", "@$children" );
+
+#10
+print "\nTesting BUILD_INCLUDES of a child variant with 'prepend' keyword:\n";
+@buildincludes = (
+    "$ENV{EPOCROOT}prepend/include/A1",
+    "$ENV{EPOCROOT}epoc32/include/build",
+    "$ENV{EPOCROOT}epoc32/include/groupA/build",
+    "$ENV{EPOCROOT}epoc32/include/A1/build"
+);
+$buildincs = $variant2{'BUILD_INCLUDES'};
+ok( File::Spec->canonpath("@buildincludes"), "@$buildincs" );
+
+#11
+print "\nTesting ROM_INCLUDES of a child variant:\n";
+@romincludes = (
+    "$ENV{EPOCROOT}epoc32/include/A1/rom",
+    "$ENV{EPOCROOT}epoc32/include/rom",
+    "$ENV{EPOCROOT}epoc32/include/groupA/rom"
+);
+$romincs = $variant2{'ROM_INCLUDES'};
+ok( File::Spec->canonpath("@romincludes"), "@$romincs" );
+
+
+#12
+print "\nTesting Invalid Variant file (Missing HRH location). Expect an error from this test\n";
+# Load third Variant File
+my %variant3 = featurevariantparser->GetVariant( "b2", "$dir" );
+ok( !$variant3{'VALID'} );
+
+#13
+my %info4 = featurevariantparser->GetVariant( "a2", "$dir" );
+print "\nTesting the BUILD_INCLUDES of a child node with 'set' keyword:\n";
+@buildincludes = (
+    "$ENV{EPOCROOT}epoc32/include/A2/build",
+    "$ENV{EPOCROOT}epoc32/include/A2/build2"
+);
+$buildincs = $info4{'BUILD_INCLUDES'};
+ok( File::Spec->canonpath("@buildincludes"), "@$buildincs" );
+
+#14 
+print "\nTesting for function which searches for default variant file in a given directory\n";
+ok(featurevariantparser->DefaultExists("$dir"));
+
+
+#15 
+print "\nTesting for function which searches for default variant file in the default directory\n";
+if ( -e "$ENV{EPOCROOT}epoc32/tools/variant/default.var" ) {
+	ok(featurevariantparser->DefaultExists());
+}
+else {
+	ok(!featurevariantparser->DefaultExists());
+}
+
+
+#16
+print "\nTesting GetBuildableFeatureVariants(). Ignore the generated errors\n";
+my @list =featurevariantparser->GetBuildableFeatureVariants($dir);
+my $validlist = "b1a";
+ok($list[0],$validlist);
+
+
+#17
+print "\nTesting ResolveFeatureVariant().Ignore the generated errors\n";
+my @list2 = featurevariantparser->ResolveFeatureVariant("default",$dir);
+my @validlist2 = ("b1a");
+ok(@list2,@validlist2);
+
+#18
+print "\nTesting GetValidVariant().Ignore the generated errors\n";
+my @list3 = featurevariantparser->GetValidVariants($dir);
+my @validlist3 = ("a1","a2","b1a","default","groupa");
+ok("@list3","@validlist3");
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/test/fixeabidefs.bat	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,561 @@
+@rem
+@rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+@rem All rights reserved.
+@rem This component and the accompanying materials are made available
+@rem under the terms of "Eclipse Public License v1.0"
+@rem which accompanies this distribution, and is available
+@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@rem
+@rem Initial Contributors:
+@rem Nokia Corporation - initial contribution.
+@rem
+@rem Contributors:
+@rem
+@rem Description:
+@rem
+@rem = '--*-Perl-*--
+@echo off
+if "%OS%" == "Windows_NT" goto WinNT
+perl -x -S "%0" %1 %2 %3 %4 %5 %6 %7 %8 %9
+goto endofperl
+:WinNT
+perl -x -S "%0" %*
+if NOT "%COMSPEC%" == "%SystemRoot%\system32\cmd.exe" goto endofperl
+if %errorlevel% == 9009 echo You do not have Perl in your PATH.
+goto endofperl
+@rem ';
+#!perl
+#line 14
+
+use strict;
+use Getopt::Long;
+
+my $toolVersion = 1.0;
+my $RVCTVersion = 2.1;
+my $RVCTBuild = 416;
+my @redundantExportsRegEx = (qr/^_ZTI/, qr/^_ZTV/);
+
+
+# 1. Check arguments, output help etc.
+
+if (@ARGV == 0)
+	{
+	print (STDERR "\nFIXEABIDEFS.BAT - Version $toolVersion for RVCT$RVCTVersion b$RVCTBuild\n");
+
+	print STDERR << 'END_OF_HELP';
+
+Usage: fixeabidefs.bat [-analyse|-list|-update] build_log.log 
+
+Parses the output from build_log.log and locates all MAKEDEF errors where ARMV5 built
+object files do not include exports specified in the current, frozen, EABI .def file.
+Where this has occurred, the tool checks against an internal list to determine
+whether these are redundant exports that are no longer required.
+
+-analyse  Process MAKEDEF errors and warnings list .def files that cannot be updated by this tool.
+-list     Lists all .def files that will be updated by the tool.
+-update   Creates updated .def files with redundant exports removed.
+
+Updated .def files have redundant exports removed by "back-filling" from unfrozen exports
+flagged against the same .def file.  If no unfrozen exports are available, the "ABSENT"
+export placeholder is used to effectively remove the export, but maintain a degree of BC.
+
+NOTE: The tool assumes that the original build source layout is replicated on the drive
+where it is being executed.
+
+Redundant exports processed on the following regex:
+END_OF_HELP
+
+	foreach my $redundantExportRegEx (@redundantExportsRegEx)
+		{
+		print ("\t$redundantExportRegEx\n");
+		}
+
+	exit(1);
+	}
+
+my $list = 0;
+my $update = 0;
+my $analyse = 0;
+
+GetOptions ('list' => \$list, 'update' => \$update, 'analyse' => \$analyse);
+
+
+# 2. Parse the log and record the detail of all relevant MAKEDEF errors and warnings
+
+my $BUILD_LOG = $ARGV[0];
+open BUILD_LOG, "< $BUILD_LOG" or die "\nCan't read $BUILD_LOG!\n\n";
+
+my $line;
+my @buildLog;
+
+while ($line = <BUILD_LOG>)
+	{
+	push @buildLog, $line;
+	}
+
+close BUILD_LOG;
+
+my $defFile;
+my $export;
+my $processExport;
+my $variant;
+
+# All hashes keyed on fully pathed .def file
+my %impactedDefFiles;
+my %missingURELExports;
+my %missingUDEBExports;
+my %unfrozenURELExports;
+my %unfrozenUDEBExports;
+
+my $parseWarning = 0;
+my $parseError = 0;
+
+my @exports;
+
+
+# Scan the log and build up UREL and UDEB lists of unfrozen and missing exports
+
+foreach $line (@buildLog)
+	{
+	if (($line !~ /^  /))
+		{
+		if ($parseError)
+			{
+			$variant =~ /UREL/ ? push @{$missingURELExports{$defFile}}, [@exports] : push @{$missingUDEBExports{$defFile}}, [@exports];
+			$parseError = 0;
+			$impactedDefFiles{$defFile} = 1;
+			}
+		elsif ($parseWarning)
+			{
+			$variant =~ /UREL/ ? push @{$unfrozenURELExports{$defFile}}, [@exports] : push @{$unfrozenUDEBExports{$defFile}}, [@exports];
+			$parseWarning = 0;
+			$impactedDefFiles{$defFile} = 1;
+			}
+		
+		@exports = ();
+		}
+		
+	if ($line =~ /^  make.* CFG\=/)
+		{
+		$variant = $line;
+		$variant =~ s/^.*CFG\=//;
+		$variant =~ s/ .*$//;
+		$variant =~ s/\s//g;
+		next;
+		}
+		
+	if ($line =~ /MAKEDEF WARNING:.*not yet Frozen in/)
+		{			
+		$parseError = 0;
+		$parseWarning = 1;
+
+		$defFile = $line;
+		$defFile =~ s/^.*not yet Frozen in//;
+		$defFile =~ s/:$//;
+		$defFile =~ s/\s//g;
+		$defFile = lc $defFile;
+		next;
+		}
+	
+	if ($line =~ /MAKEDEF ERROR:/)
+		{
+		$parseError = 1;
+		$parseWarning = 0;
+		next;
+		}
+
+	if (($line =~ /^  /) && ($parseError || $parseWarning))
+		{			
+		$export = $line;
+		$export =~ s/^.* : //;
+		$export =~ s/ .*$//;
+		$export =~ s/\s//g;
+
+		if ($parseError)
+			{
+			$defFile = $line;
+			$defFile =~ s/\(.*$//;
+			$defFile =~ s/\s//g;
+			$defFile = lc $defFile;
+			}
+
+		push @exports, $export;
+		
+		next;
+		}
+	}
+
+
+my %validDefFiles = %impactedDefFiles;
+
+my %missingExportDifferences;
+my %unfrozenExportDifferences;
+
+my %sharedDifferences;
+
+my $redundantExportRegEx;
+my %invalidExports;
+my $validExport;
+
+my $URELelements;
+my $UDEBelements;
+my $index1;
+my $index2;
+
+foreach $defFile (sort keys %impactedDefFiles)
+	{
+	if ($missingURELExports{$defFile})
+		{			
+		$URELelements = @{$missingURELExports{$defFile}};
+		$UDEBelements = @{$missingUDEBExports{$defFile}};
+
+		for ($index1 = 0; $index1 < $URELelements; $index1++)
+			{
+			foreach $export (@{@{$missingURELExports{$defFile}}[$index1]})
+				{
+				for ($index2 = 0; $index2 < $UDEBelements; $index2++)
+					{
+					if (!grep (/$export/, @{@{$missingUDEBExports{$defFile}}[$index2]}))
+						{
+						if (!$index1 && !$index2)
+							{
+							$missingExportDifferences{$defFile} = 1;
+							}
+						else
+							{
+							$sharedDifferences{$defFile} = 1;
+							}
+
+						delete $validDefFiles{$defFile};
+						}
+					}
+
+				$validExport = 0;
+			
+				foreach $redundantExportRegEx (@redundantExportsRegEx)
+					{
+					if ($export =~ /$redundantExportRegEx/)
+						{
+						$validExport = 1;
+						}
+					}
+
+				if (!$validExport)
+					{
+					${$invalidExports{$defFile}}{$export} = 1;
+					delete $validDefFiles{$defFile};
+					}
+				}
+			}
+
+		for ($index1 = 0; $index1 < $URELelements; $index1++)
+			{
+			foreach $export (@{@{$missingUDEBExports{$defFile}}[$index1]})
+				{
+				for ($index2 = 0; $index2 < $URELelements; $index2++)
+					{
+					if (!grep (/$export/, @{@{$missingURELExports{$defFile}}[$index2]}))
+						{
+						if (!$index1 && !$index2)
+							{
+							$missingExportDifferences{$defFile} = 1;
+							}
+						else
+							{
+							$sharedDifferences{$defFile} = 1;
+							}
+							
+						delete $validDefFiles{$defFile};
+						}
+					}
+
+				$validExport = 0;
+			
+				foreach $redundantExportRegEx (@redundantExportsRegEx)
+					{
+					if ($export =~ /$redundantExportRegEx/)
+						{
+						$validExport = 1;
+						}
+					}
+
+				if (!$validExport)
+					{
+					${$invalidExports{$defFile}}{$export} = 1;
+					delete $validDefFiles{$defFile};
+					}
+				}
+			}
+		}
+
+	if (!$unfrozenURELExports{$defFile} && $unfrozenUDEBExports{$defFile})
+		{
+		$unfrozenExportDifferences{$defFile}  = 1;
+		}
+	elsif ($unfrozenURELExports{$defFile})
+		{
+		$URELelements = @{$unfrozenURELExports{$defFile}};
+		$UDEBelements = @{$unfrozenUDEBExports{$defFile}};
+
+		for ($index1 = 0; $index1 < $URELelements; $index1++)
+			{
+			foreach $export (@{@{$unfrozenURELExports{$defFile}}[$index1]})
+				{
+				for ($index2 = 0; $index2 < $UDEBelements; $index2++)
+					{
+					if (!grep (/$export/, @{@{$unfrozenUDEBExports{$defFile}}[$index2]}))
+						{
+						if (!$index1 && !$index2)
+							{
+							$unfrozenExportDifferences{$defFile} = 1;
+							}
+						else
+							{
+							delete $validDefFiles{$defFile};
+							$sharedDifferences{$defFile} = 1;
+							}
+						}
+					}
+				}
+			}
+
+		for ($index1 = 0; $index1 < $URELelements; $index1++)
+			{
+			foreach $export (@{@{$unfrozenUDEBExports{$defFile}}[$index1]})
+				{
+				for ($index2 = 0; $index2 < $URELelements; $index2++)
+					{
+					if (!grep (/$export/, @{@{$unfrozenURELExports{$defFile}}[$index2]}))
+						{
+						if (!$index1 && !$index2)
+							{
+							$unfrozenExportDifferences{$defFile} = 1;
+							}
+						else
+							{
+							delete $validDefFiles{$defFile};
+							$sharedDifferences{$defFile} = 1;
+							}
+						}
+					}
+				}
+			}
+		}
+	}
+
+if ($analyse)
+	{
+	if (%missingExportDifferences)
+		{
+		print ("\nThe following .def files differ in the number of missing exports between UREL and UDEB builds.\n");
+		print ("These files will not be treated by this tool.\n\n");
+		
+		foreach $defFile (sort keys %missingExportDifferences)
+			{
+			print ("\t$defFile\n");
+			}
+		}
+
+	if (%unfrozenExportDifferences)
+		{	
+		print ("\nThe following .def files differ in the number of unfrozen exports between UREL and UDEB builds.\n");
+		print ("These files will be or were back-filled with regard to any UREL unfrozen exports available.");
+		print ("If no UREL unfrozen exports are available, the classes in question have to be marked non-sharable.\n\n");
+				
+		foreach $defFile (sort keys %unfrozenExportDifferences)
+			{
+			print ("\t$defFile\n");
+			}
+		}
+
+	if (%sharedDifferences)
+		{
+		print ("\nThe following .def files are shared between multiple components, and differ in exports\n");
+		print ("between either UDEB or UREL builds, or between the build of the components from which they are used.\n");
+		print ("These files will not be treated by this tool.\n\n");
+		
+		foreach $defFile (sort keys %sharedDifferences)
+			{
+			print ("\t$defFile\n");
+			}
+		}
+
+	if (%invalidExports)
+		{
+		print ("\nThe following .def files contain missing exports that cannot be resolved by this tool.\n");
+
+		foreach $defFile (sort keys %invalidExports)
+			{
+			print ("\n\t$defFile\n");
+
+			foreach $export (sort keys %{$invalidExports{$defFile}})
+				{
+				print ("\t\t$export\n");
+				}
+			}
+		}
+
+	if (!%missingExportDifferences && !%unfrozenExportDifferences && !%sharedDifferences && !%invalidExports)
+		{
+		print ("\nAll MAKEDEF ERRORs and WARNINGs in the specified log can be treated by this tool.\n");
+		}
+	}
+
+
+if ($list)
+	{
+	foreach $defFile (sort keys %validDefFiles)
+		{
+		print ("$defFile\n");
+		}
+	}
+
+
+if ($update)
+	{
+	my %updatedDefFiles;
+	my $missingExport;
+	my $unfrozenExport;
+
+	foreach $defFile (keys %validDefFiles)
+		{
+		if (!open DEF_FILE, "< $defFile")
+			{
+			print "Can't read $defFile!\n";
+			next;
+			}
+
+		while ($line = <DEF_FILE>)
+		 	{
+		 		
+# Either Back-fill or make 'ABSENT' any missing exports
+
+			if ($missingURELExports{$defFile})
+				{
+				foreach $missingExport (@{@{$missingURELExports{$defFile}}[0]})
+					{
+					if ($line =~ /$missingExport/)
+						{
+						$unfrozenExport = "";
+
+						if ($unfrozenURELExports{$defFile})
+							{
+							$unfrozenExport = pop @{@{$unfrozenURELExports{$defFile}}[0]};
+							}
+
+						if ($unfrozenExport)
+							{
+							$line =~ s/$missingExport/$unfrozenExport/;
+
+							# If there's an existing comment section, then update it appropriately
+
+							my $commentUpdate = '';
+					
+							if ($unfrozenExport =~ /^_ZTV/)
+								{
+								$commentUpdate = '; #<VT>#';
+								}
+							elsif ($unfrozenExport =~ /^_ZTI/)
+								{
+								$commentUpdate = '; #<TI>#';
+								}
+					
+							$line =~ s/;.*$/$commentUpdate/;
+							}
+						else
+							{
+							if ($line =~ / \;/)
+								{
+								$line =~ s/ \;/ ABSENT \;/;
+								}
+							else
+								{
+								$line.= ' ABSENT';
+								}
+							}
+
+						$line .= "\n" unless ($line =~ /\n$/);
+							
+						last;
+						}
+					}
+			 	}
+
+			push (@{$updatedDefFiles{$defFile}}, $line);
+			}
+		close DEF_FILE;
+		}
+
+
+# Resolve any remaining unfrozen exports in the standard way
+
+	my $lastExportIndex;
+	my $lastExportOrdinal;
+
+	foreach $defFile (keys %updatedDefFiles)
+		{
+		if ($unfrozenURELExports{$defFile} && @{@{$unfrozenURELExports{$defFile}}[0]})
+			{
+			$lastExportIndex = @{$updatedDefFiles{$defFile}}-1;
+
+			while (@{$updatedDefFiles{$defFile}}[$lastExportIndex] =~ /^\s$/)
+				{
+				pop @{$updatedDefFiles{$defFile}};
+				$lastExportIndex--;
+				}
+
+			@{$updatedDefFiles{$defFile}}[$lastExportIndex] .= "\n" unless (@{$updatedDefFiles{$defFile}}[$lastExportIndex] =~ /\n$/);
+
+			$lastExportOrdinal = @{$updatedDefFiles{$defFile}}[$lastExportIndex];
+			$lastExportOrdinal =~ s/^.*@\s+//;
+			$lastExportOrdinal =~ s/ .*$//;
+			$lastExportOrdinal =~ s/\s//g;
+
+			foreach $unfrozenExport (@{@{$unfrozenURELExports{$defFile}}[0]})
+				{
+				$lastExportOrdinal++;
+
+				my $comment = '';
+		
+				if ($unfrozenExport =~ /^_ZTV/)
+					{
+					$comment = ' ; #<VT>#';
+					}
+				elsif ($unfrozenExport =~ /^_ZTI/)
+					{
+					$comment = ' ; #<TI>#';
+					}
+				
+				push (@{$updatedDefFiles{$defFile}}, "\t$unfrozenExport @ $lastExportOrdinal NONAME$comment\n");
+				}
+			
+			push (@{$updatedDefFiles{$defFile}}, "\n");
+			}
+		}
+
+
+# Create the new .def files
+
+	foreach $defFile (sort keys %updatedDefFiles)
+		{		
+		if (!open NEW_DEF_FILE, ">$defFile")
+			{
+			print ("ERROR : Can\'t create \"$defFile\"\n");
+			next;
+			}
+
+		foreach $line (@{$updatedDefFiles{$defFile}})
+			{
+			print (NEW_DEF_FILE $line);
+			}
+
+		close NEW_DEF_FILE;
+
+		print ("Created : \"$defFile\"\n");
+		}
+
+	}
+
+
+__END__
+:endofperl
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/test/mmp_testlist.txt	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,133 @@
+# List of MMP files which provide examples of all MMP features
+#
+# This list is for use in short regression tests. It should be
+# regularly processed with mmpscan.pl -f mmp_testlist.txt to
+# ensure that the MMP files still exist and still cover everything.
+
+# wins/winsgui.mmp gets a lot of things
+src/cedar/generic/base/wins/winsgui.mmp											# 					(WINSCW only)
+
+# TARGETTYPE  
+# Need two where emulator and target device don't overlap, e.g. VAR
+#
+##src/common/generic/base/e32/kernel/ekll.mmp									#KLIB
+##src/common/generic/base/e32/euser/edll.mmp									#LIB
+
+src/common/generic/graphics/wserv/group/ANIMDLL.MMP								#ANI
+src/common/generic/app-framework/clock/group/CLOCKA.MMP
+src/common/generic/comms-infras/nifman/group/cs_daemon.mmp						#ECOMIIC
+src/common/generic/app-services/worldserver/group/WorldServer.mmp				#EPOCEXE
+src/common/generic/app-engines/cntmodel/cntsrv/CNTSRV.MMP
+src/cedar/generic/base/f32test/group/t_dirs.mmp									#EXE
+src/common/techview/misc/cctlcolscheme/group/CCtlColScheme.mmp
+src/common/techview/toolkit/shell/group/SHELL.MMP
+src/cedar/generic/base/f32/group/efile.mmp										#EFILE
+src/cedar/generic/base/f32/group/efat.mmp										#FSY				(WINSCW only)
+src/cedar/generic/base/f32/group/elffs.mmp
+src/cedar/generic/base/e32/euser/emulator.mmp									#KDLL				(WINSCW only)
+src/cedar/generic/base/omap/h2/fpga.mmp											#					(not WINSCW)
+src/cedar/generic/base/e32/kernel/edev.mmp										#KLIB
+src/cedar/generic/base/e32/kernel/evar.mmp
+src/cedar/generic/base/e32test/group/d_ldd.mmp									#LDD
+src/common/generic/comms-infras/rootserver/group/bindmgr.mmp					#LIB
+src/common/generic/syslibs/stdlib/BMMP/ECRT0.MMP
+src/common/generic/Multimedia/MMF/MMPFiles/Recognizer/RecMmf.mmp				#MDL
+src/common/generic/app-framework/emime/rec/RECTXT.MMP
+src/common/techview/networking/agentnotifier/group/agentnotifier.mmp			#NOTIFIER2
+src/common/techview/Apps/secui/secdlg/secdlg.mmp
+src/cedar/generic/base/wins/dasnwins.mmp										#PDD 				(WINSCW only)
+src/cedar/generic/base/lubbock/dasnla.mmp										# 					(not WINSCW)
+src/common/generic/graphics/printdrv/group/GENERAL.MMP							#PDL
+src/common/generic/graphics/pdrstore/tps/PRINTDRV.MMP
+src/common/generic/app-engines/convert/WORD/WORD.MMP							#PLUGIN
+src/common/generic/app-services/chtmltocrtconv/group/CHtmlToCrtConverter.mmp
+src/common/generic/j2me/misc/recog/build/MIDP2RecognizerRdl.mmp
+src/cedar/generic/base/e32test/group/textnotifier2.mmp							#TEXTNOTIFIER2
+src/common/generic/networking/dialog/agentnotifier/group/agentshellnotifier.mmp
+src/cedar/generic/base/wins/vwins.mmp											#VAR - emulator		(WINSCW only) winmm.lib
+src/cedar/generic/base/lubbock/vcotla.mmp										#VAR - target		(not WINSCW)
+src/common/generic/syslibs/ecom/ongoing/Framework/MMPFiles/ecomexample12.mmp    #PLUGIN3
+
+# ASSPLIBRARY
+# - removed.  Cedar builds are ASSP generic.
+
+# ASSPABI
+# - none
+
+# COPY_FOR_STATIC_LINKAGE
+src/common/generic/syslibs/pwrcli/group/shutdownsrv.mmp
+src/common/generic/syslibs/bafl/group/Baksrv.mmp
+
+# DEBUG_LIBRARY
+src/common/generic/app-framework/cone/group/CONE.MMP
+src/common/techview/toolkit/eikstd/console/CONSOLE.MMP
+
+# EPOCALLDLLENTRYPOINTS
+# - none
+
+# EPOCFIXEDPROCESS
+src/cedar/generic/base/e32test/group/cpumeter.mmp								# 					(not WINSCW)
+src/cedar/generic/base/e32test/group/t_semutx2.mmp
+
+# EPOCHEAPSIZE
+src/cedar/generic/base/e32test/group/t_ipccpy.mmp
+
+# EPOCPROCESSPRIORITY
+src/cedar/generic/base/e32test/group/crash.mmp
+src/common/techview/MessagingUi/msginit/Group/MsgInit.MMP
+
+# EXPORTLIBRARY
+src/cedar/generic/base/integrator/logic/lmxx600/exvarl1.mmp						#					(not WINSCW)
+
+# EXPORTUNFROZEN
+src/common/generic/app-framework/form/test/ttextview.mmp
+src/common/generic/telephony/mmtsy/test/TS_Sms/TS_sms.mmp
+
+# FIRSTLIB
+src/cedar/generic/base/e32/euser/epoc.mmp										# 					(WINSCW only)
+src/cedar/generic/base/e32/kernel/ekern.mmp										#					(not WINSCW, cwd:src/cedar/generic/base/lubbock)
+src/cedar/generic/base/e32/kernel/ekern.mmp										#					(WINSCW only, cwd:src/cedar/generic/base/wins)
+
+# MCW/MCL
+src/common/techview/CommsUI/bluetoothui/BTSharedUI/BTSharedUI.mmp
+
+# NOEXPORTLIBRARY
+src/cedar/generic/base/lubbock/hal/hal.mmp										#					(not WINSCW, cwd:src/cedar/generic/base/lubbock)
+src/cedar/generic/base/wins/hal/hal.mmp											#					(WINSCW only, cwd:src/cedar/generic/base/wins)
+src/cedar/generic/base/cotulla/dma.mmp											# 					(not WINSCW, cwd:src/cedar/generic/base/lubbock)
+src/cedar/generic/base/integrator/integratorap/kaintap.mmp						# 					(not WINSCW, cwd:src/cedar/generic/base/integrator/core/cm1136)
+
+# OPTION
+src/cedar/generic/base/e32test/group/t_lex.mmp
+
+# SID
+src/cedar/generic/base/e32test/group/t_ver2_1_0.mmp								# 					(not WINSCW)
+src/cedar/generic/base/e32test/group/t_ver2_1_1.mmp								# 					(not WINSCW)
+
+# SRCDBG
+src/common/generic/app-services/versit/tsrc/TBugFix.MMP
+src/common/generic/application-protocols/http/group/httpclient.mmp
+
+# START BITMAP
+src/common/techview/toolkit/extras/group/extras.mmp
+
+# START RESOURCE
+src/common/generic/app-engines/sheng/group/SHENG.MMP
+
+# STATICLIBRARY
+src/common/generic/syslibs/stdlib/TSTLIB/THELLO.MMP
+src/common/generic/syslibs/stdlib/TSTLIB/FINGER.MMP
+
+# STRICTDEPEND
+src/cedar/generic/base/f32/group/estart.mmp
+
+# WIN32_HEADERS
+src/cedar/generic/base/e32/kernel/exstart.mmp
+src/cedar/generic/base/e32utils/d_exc/minkda.mmp
+
+
+# Miscellaneous
+# Assorted files which have caused problems in the past
+
+# - baseaddress for EXE
+src/common/generic/graphics/fbserv/group/FBSERV.MMP
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/test/mmpscan.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,253 @@
+# Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Perl script to scan tree looking for MMP files with particular keywords
+# 
+#
+
+use strict;
+use File::Find;			# for find()
+use File::Basename;		# for fileparse()
+use Cwd;				# for getcwd()
+
+use Getopt::Long;
+my %Options=();
+GetOptions(\%Options, "f=s");
+
+my @patterns = (
+
+'START\s+BITMAP.*\.MCL',
+'START\s+BITMAP.*\.MBW',
+'START\s+BITMAP',
+'START\s+RESOURCE',
+'ALWAYS_BUILD_AS_ARM',
+'ASSPABI',
+'ASSPEXPORTS',
+'ASSPLIBRARY',
+'CAPABILITY',
+'COMPRESSTARGET',
+'DEFFILE',
+'DOCUMENT',
+'EPOCALLOWDLLDATA',
+'EPOCCALLDLLENTRYPOINTS',
+'EPOCDATALINKADDRESS',
+'EPOCFIXEDPROCESS',
+'EPOCHEAPSIZE',
+'EPOCPROCESSPRIORITY',
+'EPOCSTACKSIZE',
+'EXPORTLIBRARY',
+'EXPORTUNFROZEN',
+'FIRSTLIB',
+'LANG',
+# 'LIBRARY',
+'DEBUGLIBRARY',
+'LINKAS',
+'MACRO\s+__SECURE_API__',
+'MACRO',
+'NOCOMPRESSTARGET',
+'NOEXPORTLIBRARY',
+'NOSTRICTDEF',
+'OPTION',
+'RAMTARGET',
+'RESOURCE',
+'ROMTARGET',
+'SECUREID',
+'SRCDBG',
+# 'SOURCE',
+# 'SOURCEPATH',
+'STATICLIBRARY',
+'STRICTDEPEND',
+'SYSTEMINCLUDE',
+'SYSTEMRESOURCE',
+# 'TARGET',
+'TARGETPATH',
+'TARGETTYPE\s+ANI',
+'TARGETTYPE\s+APP',
+'TARGETTYPE\s+CTL',
+'TARGETTYPE\s+DLL',
+'TARGETTYPE\s+ECOMIIC',
+'TARGETTYPE\s+EPOCEXE',
+'TARGETTYPE\s+EXEDLL',
+'TARGETTYPE\s+EXEXP',		# must precede TARGETTYPE EXE
+'TARGETTYPE\s+EXE',
+'TARGETTYPE\s+FSY',
+'TARGETTYPE\s+IMPLIB',
+'TARGETTYPE\s+KDLL',
+'TARGETTYPE\s+KEXT',
+'TARGETTYPE\s+KLIB',
+'TARGETTYPE\s+LDD',
+'TARGETTYPE\s+LIB',
+'TARGETTYPE\s+MDA',
+'TARGETTYPE\s+MDL',
+'TARGETTYPE\s+NOTIFIER2',
+'TARGETTYPE\s+NOTIFIER',
+'TARGETTYPE\s+PDD',
+'TARGETTYPE\s+PDL',
+'TARGETTYPE\s+PLUGIN',
+'TARGETTYPE\s+PLUGIN3',
+'TARGETTYPE\s+RDL',
+'TARGETTYPE\s+TEXTNOTIFIER2',
+'TARGETTYPE\s+VAR',
+'UID',
+'USERINCLUDE',
+'VENDORID',
+'VERSION',
+
+# from START WINS ... END
+'START\s+WINS',
+'BASEADDRESS',
+'WIN32_LIBRARY',
+'WIN32_RESOURCE',
+'COPY_FOR_STATIC_LINKAGE',
+'WIN32_HEADERS',
+
+# count some unmatched things
+'AIF',
+'SOURCE\s.*\.CIA',			# CIA files
+'TARGETTYPE\s+(other)?',	# a trick to catch unsupported targettypes
+'TARGET\s.*DUMMY',			# who doesn't really want a TARGET
+'#IF',
+'#INCLUDE_FAILURE',			# unresolved #include directives
+'#INCLUDE',
+
+);
+
+my %instances = ();
+my %patternsbyfile = ();
+my $mmpcount = 0;
+
+sub read_mmp($$$)
+	{
+	my ($top,$name,$lines) =@_;
+	open MMP, "<$name" or print "error: $name $top\n" and return 0;
+	my @mmplines=<MMP>;
+	close MMP;
+	
+	foreach my $line (@mmplines)
+		{
+		push @$lines, $line;
+		if ($line =~/^\#include\s+(\"|\<)([^"<]+)(\"|\>)/)
+			{
+			my $currentdir = getcwd();
+			my $includename = $2;
+			if (-f $2)
+				{
+				# name exists relative to current directory
+				}
+			elsif (-f "$ENV{EPOCROOT}epoc32/include/$includename")
+				{
+				$includename = "$ENV{EPOCROOT}epoc32/include/$includename";
+				}
+			else
+				{
+				print "Can't locate $2 from $currentdir/$name $top\n";
+				push @$lines, "#INCLUDE_FAILURE";
+				next;
+				}
+			my ($newname, $newdir, $newext) = fileparse($includename, '\..*');
+			chdir($newdir);
+			read_mmp("from $name $top", "$newname$newext", $lines);
+			chdir($currentdir);
+			}
+		}
+	return 1;
+	}
+	
+sub mmpgrep 
+	{
+	my $fullname = $File::Find::name;
+	return if (defined($patternsbyfile{$fullname}));
+
+	my ($name,$dir,$ext) = fileparse($fullname,'\..*');
+	return unless (lc($ext) eq '.mmp');
+	
+	my %found = ();
+	my @lines = ();
+	return if (read_mmp("", "$name$ext", \@lines)==0);
+	
+	$mmpcount++;
+	my $line;
+	LINE: foreach $line (@lines)
+		{
+		$line = uc $line;
+		foreach (@patterns)
+			{
+			if ($line =~/^\s*$_/)
+				{
+				$found{$_} = 1;
+				next LINE;
+				}
+			}
+		}
+	close MMP;
+	foreach (keys %found)
+		{
+		@{$instances{$_}} = () if (!defined $instances{$_});
+		push @{$instances{$_}}, $fullname;
+		}
+	@{$patternsbyfile{$fullname}} = sort keys %found;
+	}
+
+# Scan the tree, processing each filename with mmpgrep
+
+my @scanlist = ();
+if ($Options{f})
+	{
+	open FILELIST, "<$Options{f}" or die "Cannot open $Options{f}\n";
+	my $line;
+	while ($line = <FILELIST>)
+		{
+		$line =~ s/#.*$//;		# remove comments
+		$line =~ s/\s*$//;		# remove trailing ws
+		$line =~ s/^\s*//;		# remove leading ws
+		next if ($line eq "");
+		push @scanlist, $line;
+		}
+	close FILELIST;
+	}
+push @scanlist, @ARGV;
+find (\&mmpgrep,@scanlist);
+
+# Report the results
+
+print "$mmpcount mmp files processed\n";
+
+my $pattern;
+print "\nSummary by pattern\n";
+foreach $pattern (@patterns)
+	{
+	my $count=0;
+	my $list = $instances{$pattern};
+	$count = scalar @{$list} if (defined $list);
+	printf "%-30s %5d\n", $pattern, $count;
+	}
+	
+print "\nDetail\n";
+foreach $pattern (sort keys %instances)
+	{
+	my $list = $instances{$pattern};
+	my $title = $pattern;
+	$title =~ s/\\s\+/ /;
+	print "\n$title:\n";
+	foreach my $file (@{$list})
+		{
+		print "  $file\n";
+		}
+	}
+
+foreach (sort keys %patternsbyfile)
+	{
+	print "\n$_ :  ", join(" ",@{$patternsbyfile{$_}});
+	}
+
+print "\n";
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/test/unittest.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,30 @@
+#
+# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+# run unit tests for e32toolp
+
+use strict;
+use Test::Harness;
+$Test::Harness::Verbose = 1;
+
+my @all = ( 
+'featurevariantparser/test.pl' ,
+'featurevariantmap/test.pl'
+);
+
+runtests(@all);
+exit 0;
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/toolinfo/gcce_plat2set.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,75 @@
+# Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# This module provides a mapping from build platforms (e.g. GCCE) to the
+# corresponding GCC-E environment settings.
+# Currently this module only provides very simple functionality. The intention is
+# that if we're going to support different GCC-E versions for different build
+# platforms (as we do for RVCT) this module should be extended to provide similar
+# functionality to rvct_plat2set.
+# 
+#
+
+package gcce_plat2set;
+use strict;
+
+
+# Returns the GCCE version corresponding to the given build platform. The first
+# function returns the data as a string (e.g. "4.2.3"); the second function
+# returns the data as a list (e.g. [4,2,3]).
+sub get_version_string($);
+sub get_version_list($);
+
+# Returns true if a GCC-E version for the given platform exists.
+sub compiler_exists($);
+
+
+my $g_version;
+
+
+sub get_version_string($)
+{
+    return $g_version;
+}
+
+sub get_version_list($)
+{
+    return split(/\./, $g_version);
+}
+
+sub compiler_exists($)
+{
+    if ($g_version)
+    {
+        return 1;
+    }
+    else
+    {
+        return 0;
+    }
+}
+
+BEGIN
+{
+    my $vers = qx/arm-none-symbianelf-gcc -dumpversion 2>&1/;
+
+    if ($vers =~ /^\s*(\d+\.\d+.\d+)\s*$/)
+    {
+        $g_version = "$1";
+    }
+}
+
+
+1;
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/toolinfo/rvct_plat2set.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,396 @@
+# Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# This module provides a mapping from build platforms (e.g. ARMV5) to the
+# corresponding RVCT environment settings. The information is obtained from an INI
+# file pointed to by the environment variable ABLD_PLAT_INI. The file can have two
+# different formats. The first format (Format 1) is:
+# [Symbian_OS_v9.5]
+# ARMV5 = RVCT 2.2.616
+# ARMV6 = RVCT 2.2.616
+# ARMV7 = RVCT 3.1.700
+# [Symbian_OS_v9.6]
+# ARMV5 = RVCT 3.1.862
+# ARMV7 = RVCT 4.0.100
+# [Symbian_OS_vFuture]
+# ARMV5 = RVCT 4.1.812
+# ARMV7 = RVCT 4.0.100
+# This format matches the tuple <OS version, build platform> onto a RVCT version.
+# The build system will look up the OS version in "\epoc32\data\buildinfo.txt".
+# The second format (Format 2) is:
+# ARMV5 = RVCT 2.2.616
+# ARMV6 = RVCT 2.2.616
+# ARMV7 = RVCT 3.1.700
+# This format doesn't take the OS version into account and is mostly intended for
+# the Integration team.
+# If ABLD_PLAT_INI is not set, or if the INI file doesn't contain any data for the
+# given platform, whatever RVCT version is found in the path will be used.
+# 
+#
+
+package RVCT_plat2set;
+use strict;
+
+use RVCT_ver2set;
+
+#
+# PUBLIC FUNCTIONS
+#
+
+# Returns the RVCT version corresponding to the given build platform. The first
+# function returns the data as a string (e.g. "2.2.616"); the second function
+# returns the data as a list (e.g. [2,2,616]).
+sub get_version_string($);
+sub get_version_list($);
+
+# Returns true if an RVCT version corresponding to the given platform exists.
+sub compiler_exists($);
+
+# Given a build platform, returns what the name and value of the RVCT??BIN variable
+# would be. 
+sub get_bin_name($);
+sub get_bin_path($);
+
+# Given a build platform, returns what the name and value of the RVCT??INC variable
+# would be. 
+sub get_inc_name($);
+sub get_inc_path($);
+
+# Given a build platform, returns what the name and value of the RVCT??LIB variable
+# variable would be. 
+sub get_lib_name($);
+sub get_lib_path($);
+
+# Given a build platform and the name of an RVCT library, returns the full path to
+# that library.
+sub find_lib($$);
+
+#
+# PRIVATE HELPER FUNCTIONS
+#
+
+sub _get_something(@);
+sub _err_and_die(@);
+sub _get_os_version();
+sub _parse_section_data($@);
+
+
+#
+# GLOBAL DATA
+#
+
+my %g_data;
+
+
+sub get_version_string($)
+{
+    return _get_something(@_, 'version');
+}
+
+sub get_version_list($)
+{
+    my $tmp = _get_something(@_, 'version');
+
+    return split(/\./, $tmp);
+}
+
+sub compiler_exists($)
+{
+    my $plat = shift;
+
+    if ( $g_data{$plat}->{version} || $g_data{0}->{version} )
+    {
+        return 1;
+    }
+    else
+    {
+        return 0;
+    }
+}
+
+sub get_bin_name($)
+{
+    return _get_something(@_, 'bin_name');
+}
+
+sub get_bin_path($)
+{
+    return _get_something(@_, 'bin_path');
+}
+
+sub get_inc_name($)
+{
+    return _get_something(@_, 'inc_name');
+}
+
+sub get_inc_path($)
+{
+    return _get_something(@_, 'inc_path');
+}
+
+sub get_lib_name($)
+{
+    return _get_something(@_, 'lib_name');
+}
+
+sub get_lib_path($)
+{
+    return _get_something(@_, 'lib_path');
+}
+
+sub find_lib($$)
+{
+    my $plat = shift;
+    my $lib  = shift;
+
+    my $p = get_lib_path($plat);
+
+    my $f1 = "$p\\armlib\\$lib";
+    my $f2 = "$p\\cpplib\\$lib";
+
+    return "$p\\armlib\\$lib" if -f $f1;
+    return "$p\\cpplib\\$lib" if -f $f2;
+
+    _err_and_die("could not find $lib for platform $plat.");
+}
+
+sub _get_something(@)
+{
+    my $plat = shift;
+    my $what = shift;
+    
+    my $data = $g_data{$plat}->{$what};
+
+    if (!$data)
+    {
+        $data = $g_data{0}->{$what};
+    }
+
+    return $data;
+}
+
+sub _err_and_die(@)
+{
+    if ( defined(&main::FatalError) )
+    {
+        main::FatalError(@_);
+    }
+    else
+    {
+        print STDERR "error: @_\n";
+    }
+
+    exit 1;
+}
+
+sub _get_os_version()
+{
+    my $fname = "/epoc32/data/buildinfo.txt";
+    
+    my $os_ver = "";
+
+    open (my $in,  "<",  $fname) or _err_and_die("couldn't open $fname.");
+
+    while (<$in>)
+    {
+        chomp;
+
+        if ( $_ =~ /^\s*ManufacturerSoftwareBuild\s+M\d\d\d\d\d_(\S+)\s*$/i )
+        {
+            $os_ver = $1;
+            last
+        }
+    }
+
+    close $in or _err_and_die("couldn't close $fname.");
+
+    _err_and_die("couldn't read OS version in $fname") unless $os_ver;
+
+    return $os_ver;
+}
+
+sub _parse_section_data($@)
+{
+    my ($fname, @lines) = @_;
+
+    for (@lines)
+    {
+        if ( $_ =~ /^\s*(\w+)\s*=\s*RVCT\s+(\d+\.\d+\.\d+)\s*$/i )
+        {
+            my $plat = uc($1);
+            my $vers = $2;
+
+            _err_and_die("$fname: platform $plat already defined.") if $g_data{$plat};
+            _err_and_die("$fname: RVCT $vers doesn't exist.") unless RVCT_ver2set::compiler_exists($vers);
+
+            $g_data{$plat}->{version} = $vers;
+
+            $g_data{$plat}->{bin_name} = RVCT_ver2set::get_bin_name($vers);
+            $g_data{$plat}->{bin_path} = RVCT_ver2set::get_bin_path($vers);
+
+            $g_data{$plat}->{inc_name} = RVCT_ver2set::get_inc_name($vers);
+            $g_data{$plat}->{inc_path} = RVCT_ver2set::get_inc_path($vers);
+
+            $g_data{$plat}->{lib_name} = RVCT_ver2set::get_lib_name($vers);
+            $g_data{$plat}->{lib_path} = RVCT_ver2set::get_lib_path($vers);
+        }
+        else
+        {
+            _err_and_die("$fname: invalid field: $_.");
+        }
+    }
+}
+
+
+# initialize module
+{
+    # Initialise platform "0", wich represents the RVCT version found in the path.
+    my $vsnworked = 0; # Flag to check if --vsn command worked
+    # clear --licretry from RVCT22_CCOPT
+    my $key;
+    my %RVCT_CCOPT;
+    foreach $key (keys %ENV) {
+        if($key =~ /RVCT\d+_CCOPT/i ) {
+            $RVCT_CCOPT{$key} = $ENV{$key};
+            $ENV{$key} =~ s/--licretry//i;
+        }
+    }
+    my @lines = qx/armcc --vsn 2>&1/;
+
+    foreach (@lines)
+    {
+        if ($_ =~ /\bRVCT(\d)\.(\d)\s+\[Build (\d+)\]/ )
+        {
+	    $vsnworked = 1;
+            my ($bin, $inc, $lib) = ("RVCT$1$2BIN", "RVCT$1$2INC", "RVCT$1$2LIB");
+
+            $g_data{0}->{version} = "$1.$2.$3";
+
+            $g_data{0}->{bin_name} = $bin;
+            $g_data{0}->{bin_path} = $ENV{$bin};
+
+            $g_data{0}->{inc_name} = $inc;
+            $g_data{0}->{inc_path} = $ENV{$inc};
+
+            $g_data{0}->{lib_name} = $lib;
+            $g_data{0}->{lib_path} = $ENV{$lib};
+
+            last;
+        }
+    }
+    # In case --vsn doesn't work, call --version_number and setup environment variables
+    if ($vsnworked == 0)
+    {
+	    my @lines = qx/armcc --version_number 2>&1/;
+	    foreach (@lines) 
+	    {
+		    if ($_ =~ /^(\d{1})(\d{1})\d{1}(\d{3})$/) 
+		    {
+			    my ($bin, $inc, $lib) = ("RVCT$1$2BIN", "RVCT$1$2INC", "RVCT$1$2LIB");
+			    $g_data{0}->{version} = "$1.$2.$3";
+			    
+			    $g_data{0}->{bin_name} = $bin;
+			    $g_data{0}->{bin_path} = $ENV{$bin};
+
+			    $g_data{0}->{inc_name} = $inc;
+		            $g_data{0}->{inc_path} = $ENV{$inc};
+
+		            $g_data{0}->{lib_name} = $lib;
+		            $g_data{0}->{lib_path} = $ENV{$lib};
+
+            		    last;
+	   		 }
+    	    }
+    }
+
+    # restore RVCT22_CCOPT
+    foreach $key (keys %RVCT_CCOPT) {
+        $ENV{$key} = $RVCT_CCOPT{$key};
+    }
+    # Initialise all platforms defined in the INI file, if that file exists.
+
+    my $fname = $ENV{ABLD_PLAT_INI};
+
+    if ($fname) # The environment variable is set.
+    {
+        _err_and_die("ABLD_PLAT_INI doesn't point to a file.") unless -f $fname;
+
+        open (my $in,  "<",  $fname) or _err_and_die("couldn't open ABLD_PLAT_INI = $fname.");
+
+        my @lines = ();
+        my $format1 = 0;
+
+        while (<$in>)
+        {
+            chomp;
+
+            next if /^\s*;/ ;
+            next if /^\s*#/ ;
+            next if /^\s*$/ ;
+
+            if ($_ =~ /^\s*\[/i)
+            {
+                # This must be the start of an INI section so We treat the file as
+                # format 1.
+                $format1 = 1;
+            }
+
+            push @lines, $_;
+        }
+
+
+        close $in or _err_and_die("couldn't close ABLD_PLAT_INI = $fname.");
+        _err_and_die("$fname contains no data") unless @lines;
+
+        if ($format1)
+        {
+            my $os_ver = _get_os_version();
+            my @lines2 = ();
+
+            while (@lines)
+            {
+                my $line = shift @lines;
+                
+                if ( $line =~ /^\s*\[$os_ver\]/i)
+                {
+                    last;
+                }
+            }
+
+            while (@lines)
+            {
+                my $line = shift @lines;
+
+                if ( $line =~ /^\s*\[/i)
+                {
+                    last;
+                }
+            
+                push @lines2, $line;
+            }
+
+            _parse_section_data($fname, @lines2);
+        }
+        else # Format 2.
+        {
+            # The file is one big section without header.
+            _parse_section_data($fname, @lines);
+        }
+
+    } # if ($fname)
+}
+
+
+1;
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv1_os/e32toolp/toolinfo/rvct_ver2set.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,218 @@
+# Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# This module provides a mapping from RVCT versions to the corresponding environment
+# settings. The information is obtained from a configuration file pointed to by the
+# environment variable ABLD_RVCT_INI. The following example shows the file's
+# structure:
+# [2.2.616]
+# bin=C:\Apps\ARM-RVCT\2.2.616\bin
+# inc=C:\Apps\ARM-RVCT\2.2.616\inc
+# lib=C:\Apps\ARM-RVCT\2.2.616\lib
+# [3.1.700]
+# bin=C:\Apps\ARM-RVCT\3.1.700\bin
+# inc=C:\Apps\ARM-RVCT\3.1.700\inc
+# lib=C:\Apps\ARM-RVCT\3.1.700\lib
+# If the file is used, it must contain at least one section.
+# 
+#
+
+
+package RVCT_ver2set;
+use strict;
+
+#
+# PUBLIC FUNCTIONS
+#
+
+# Returns a list of available RVCT versions, for example ["2.2.435", "2.2.616"].
+sub get_versions();
+
+# Returns true if the given RVCT version exists.
+sub compiler_exists($);
+
+# Given an RVCT version, returns what the name and value of the RVCT??BIN
+# variable would be. 
+sub get_bin_name($);
+sub get_bin_path($);
+
+# Given an RVCT version, returns what the name and value of the RVCT??INC
+# variable would be. 
+sub get_inc_name($);
+sub get_inc_path($);
+
+# Given an RVCT version, returns what the name and value of the RVCT??LIB
+# variable would be. 
+sub get_lib_name($);
+sub get_lib_path($);
+
+
+#
+# PRIVATE HELPER FUNCTIONS
+#
+
+# Prints an error message and then terminates.
+sub _err_and_die(@);
+
+
+#
+# GLOBAL DATA
+#
+
+# Contains all the information read from the configuration file.
+my %g_data;
+
+
+sub get_versions()
+{
+    return sort(keys %g_data);
+}
+
+sub compiler_exists($)
+{
+    my $vers = shift;
+    return ( $g_data{$vers} ); 
+}
+
+sub get_bin_name($)
+{
+    my $vers = shift;
+    return $g_data{$vers}->{bin_name}; 
+}
+
+sub get_bin_path($)
+{
+    my $vers = shift;
+    return $g_data{$vers}->{bin_path}; 
+}
+
+sub get_inc_name($)
+{
+    my $vers = shift;
+    return $g_data{$vers}->{inc_name}; 
+}
+
+sub get_inc_path($)
+{
+    my $vers = shift;
+    return $g_data{$vers}->{inc_path}; 
+}
+
+sub get_lib_name($)
+{
+    my $vers = shift;
+    return $g_data{$vers}->{lib_name}; 
+}
+
+sub get_lib_path($)
+{
+    my $vers = shift;
+    return $g_data{$vers}->{lib_path}; 
+}
+
+sub _err_and_die(@)
+{
+    print STDERR "error: @_\n";
+    exit 1;
+}
+
+
+# initialize module
+{
+    my $fname = $ENV{ABLD_RVCT_INI};
+
+    if ($fname) # The environment varaible is set.
+    {
+        _err_and_die("ABLD_RVCT_INI doesn't point to a file.") unless -f $fname;
+
+        open (my $in,  "<",  $fname) or _err_and_die("couldn't open ABLD_RVCT_INI = $fname.");
+
+        my @lines = ();
+
+        while (<$in>)
+        {
+            chomp;
+
+            next if /^\s*;/ ;
+            next if /^\s*#/ ;
+            next if /^\s*$/ ;
+
+            push @lines, $_;
+        }
+
+        close $in or _err_and_die("couldn't close ABLD_RVCT_INI = $fname.");
+
+        while (@lines)
+        {
+            my $ver = shift @lines;
+            my $kv1 = shift @lines;
+            my $kv2 = shift @lines;
+            my $kv3 = shift @lines;
+
+            my $Mm = "";
+
+            if ( $ver =~ /^\s*\[(\d+)\.(\d+)\.(\d+)\]\s*$/ )
+            {
+                _err_and_die("$fname: duplicate section: $ver.") if $g_data{$1};
+                $ver = "$1.$2.$3";
+                $Mm  = "$1$2";
+            }
+            else
+            {
+                _err_and_die("$fname: invalid section header: $ver.");
+            }
+
+            my %kv = ();
+
+            for ($kv1, $kv2, $kv3)
+            {
+                _err_and_die("$fname: not enough data in section $ver.") unless $_;
+
+                if ( $_ =~ /^\s*(bin|inc|lib)\s*=(.*)$/i )
+            {
+                    my $key = uc($1);
+                    my $val = $2;
+
+                    $val =~ s/^\s+//;
+                    $val =~ s/\s+$//;
+
+                    _err_and_die("$fname: in section $ver: \"$key\" doesn't point to a directory.") unless -d $val;
+                    _err_and_die("$fname: in section $ver: duplicate key \"$key\".") if $kv{$key};
+
+                    $kv{$key} = $val;
+                }
+                else
+                {
+                    _err_and_die("$fname: in section $ver: invalid line \"$_\".");
+                }
+            }
+
+            $g_data{$ver}->{bin_name} = "RVCT${Mm}BIN";
+            $g_data{$ver}->{bin_path} = "$kv{BIN}";
+            $g_data{$ver}->{inc_name} = "RVCT${Mm}INC";
+            $g_data{$ver}->{inc_path} = "$kv{INC}";
+            $g_data{$ver}->{lib_name} = "RVCT${Mm}LIB";
+            $g_data{$ver}->{lib_path} = "$kv{LIB}";
+        }
+
+    }
+    else
+    {
+        # ABLD_RVCT_INI isn't set. This is not an error. All public functions will
+        # return NULL.
+    }
+}
+
+1;
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/group/Leavescan.mmp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,24 @@
+// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+TARGET   leavescan.exe
+TARGETTYPE  exe
+
+SOURCEPATH  ../source
+SOURCE   leavescan.cpp
+
+OPTION MSVC /W3 -GX		// enable exception handling
+
+VENDORID 0x70000001
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/group/bld.inf	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,25 @@
+// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// BLD.INF for Leavescan
+// 
+//
+
+PRJ_PLATFORMS
+
+TOOLS
+
+PRJ_MMPFILES
+
+Leavescan.mmp
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/group/testtools_leavescan.history.xml	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<relnotes name="LEAVESCAN">
+  <purpose>
+  </purpose>  
+    <defect number="DEF116820 " title="Leavescan errors in development code." revision="005">
+    Leavescan errors in development code.
+	</defect>
+	<defect number="PDEF119538 " title="leavescan generates false positives for NONSHARABLE_CLASS macro." revision="004">
+    leavescan generates false positives for NONSHARABLE_CLASS macro.
+	</defect>
+	<defect number="PDEF117080 " title="leavescan.exe terminates abnormally when scanning sources." revision="003">
+    leavescan.exe will crash when run on some source code.
+	</defect>
+    <defect number="PDEF116168 " title="leavescan.exe will crash when run on some source code." revision="002">
+    leavescan.exe will crash when run on some source code.
+  </defect>
+  <defect number="PDEF114881 " title="leavescan cannot handle namespace-qualified return types." revision="001">
+    leavescan cannot handle namespace-qualified return types.
+  </defect>
+ </relnotes>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/group/testtools_leavescan.mrp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+component	testtools_leavescan
+source	\sf\os\buildtools\srcanamdw_os\leavescan
+binary	\sf\os\buildtools\srcanamdw_os\leavescan\group	all
+
+binary	\epoc32\release\tools\rel\leavescan.exe
+
+notes_source	\component_defs\release.src
+
+
+ipr T 
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/source/leavescan.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,3343 @@
+// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Limitations:
+// Leavescan will attempt to avoid comments, strings and char literals which it
+// finds within the code. It is also capable of recognising escaped quotes,
+// but complex combinations of escaping e.g. "\\\"\"\'" may fool the parser and
+// result in false positives, or cause parsing to terminate prematurely (resulting
+// in possible unreported problems.
+// Leavescan can only parse what it sees, and is therefore oblivious to any 
+// non-trivial attempt to call a leaving function (i.e. by function pointer)
+// Macros can also fool the parser (as is), but leavscan will now indicate
+// whether the leaving invocation may, in fact, be a macro.
+// Multiple files are now supported on the command-line, along with some basic
+// options such as '-v' which will dump the version. Invoking with no 
+// parameters will dump the version & help, so that automated build systems can
+// check the version and cater for enhanced behaviour.
+// Local Version:
+// $Id: leavescan2.cpp,v 1.6 2003/02/19 12:59:00 AndrewHa Exp $
+// 
+//
+
+
+#include <fstream>
+#include <iostream>
+#include <sstream>   
+#include <string>
+#include <assert.h>
+#include <list>
+
+#define FOREVER for(;;)
+
+//static const char Kversion[] = "0.06"; // Version updated 07 March 08
+static const char Kversion[] = "0.07";  // suprrot L class, fix some defects.Version updated 07/2008
+// Shorthand
+typedef unsigned int uint;
+
+// Set of match types. E_Last must be at the end of the list.
+enum TMatchTypes { 
+  E_LCleanedUp=0,
+  E_LString,
+  E_LManaged,
+  E_LData,
+  E_Ell , 
+  E_Trap, 
+  E_BlockComment, 
+  E_LineComment, 
+  E_Eleave, 
+  E_UserEleave, 
+  E_String,
+  E_Quote,
+  E_OpenBrace,
+  E_CloseBrace,
+  E_OrLeave,
+  E_Last };
+
+// Set of return values of GetFunc().
+enum TReturnTypes {
+  E_False = 0,
+  E_True,
+  E_Continue };
+  
+enum TPPState { 
+   PPSTATE_NORMAL=0,
+   PPSTATE_ESCAPED_LINE ,
+   PPSTATE_SINGLE_COMMENT,
+   PPSTATE_MUL_COMMENT,
+   PPSTATE_STRING_LITERAL,
+   PPSTATE_SHARP_COMMENT
+  };
+
+enum TClassMemberTypes { 
+    E_NA= 0, 
+    E_MemberData, 
+    E_MemberFunctionDecl, 
+    E_MemberFunctionDef, 
+    E_Enum
+    };
+
+using namespace std;
+struct ClassMeta {
+	 string className ;
+	 int startPos;
+	 int endPos;
+};
+
+class TLeaveScanModel
+{
+public:
+  bool  Scan(ifstream& aStream);
+  void  SetFileName(char* aName);
+  char* FileName();
+  int   Verbose;
+  bool OnlyPrePrecess;
+
+private:	
+  void  FileToText(ifstream& aStream, string& aText);
+  enum  TReturnTypes  GetFunc(const string& aFile, string &name, uint &start, uint &end);
+  bool  CheckFunc(const string& aFile, string& aName, uint start, uint end, bool& aIsLeaver);
+  bool  MoveToEndOfTrapHarness(const string& aStr, uint& aIndex, uint aLen);
+  void  MoveToEndOfComment(const string& aStr, uint& aIndex, uint aLen);
+  void  MoveToEndOfLine(const string& aStr, uint& aIndex, uint aLen);
+  void  MoveToEndOfString(const string& aStr, uint& aIndex, uint aLen, char aQuote);
+  uint  GetRealStartPosition(const string& aFile, uint aStart, uint aIsvalidDoublecolon);
+  void  Peek(const string aStr, uint aPos);
+  uint  SmartFind(const string& aStr, const string& aTarget, uint aStart);
+  uint  SmartFindEndOfString(const string& aStr, uint aPos, char aQuote);
+  bool  IsInCommentScopeOrKeyword(const string& aFile, string &aName, uint aStartposition, uint aStartbraceposn);
+  bool  IsFunctionNameStringNotAMacro(const string& aFile, uint aStartbraceposn, uint aTempParenPos, uint aNstart);
+  bool  IsSemiColonAndAssignmentOccurs(const string& aFile, uint aStartbraceposn, uint aTempParenPos);
+  bool  CheckValidFuncName(const string& aFile, uint aStart);
+  bool  CheckForTemplateFunc(const string& aFile, uint nstart, uint nend);
+  uint  FindFirstMatchType(uint aMatchSet[]);
+  string PreProcess(const string& aFile);
+  string CombineLine(const string& aFile);
+  list<ClassMeta> GetClass(const string& aFile);
+  int GetLeftParenthesis(const string& aText, uint pos);
+  int GetRightParenthesis(const string& aText, uint pos);
+  int GetLeftTmpltParentBack(const string& aText,uint pos);
+  int GetRightTmpltParent(const string& aText,uint pos);
+  bool IsClassKeyword(const string& aText, uint aBegin, uint aEnd);
+  int GetLeftBracket(const string& aText,uint pos);
+  int GetRightBracket(const string& aText,uint pos);
+  void CheckClass(const string& aText , const string& aClassName, uint start,uint end);
+  void CheckInClassFunc(const string& aText , const string& aClassName, const string& aFuncName, uint start,uint end);
+  bool IsLClassCtor(const string& aName);
+  bool IsInClassScope(uint pos);
+  string GetFunctNameFromFuncHead(const string& aFuncHead);
+  string GetFunctionParam(const string& aText, uint aStart);
+  string GetFunctionHead(const string& aText, uint aStart);
+  string GetErrorLineHead(const string& aText,uint aStart);
+  string GetClassName(uint aStart);
+  void  ReportErrorLineAndString(uint aStart);
+  bool  AppendCommentToErrorString(uint aEnd);
+  bool  IdentifyMacro(const string& str, const uint aPos);
+  void  Test1();
+  void  Test2L();
+  void  Test3();
+  void  Test4();
+  
+  inline bool IsNewLine(const char& aCurChar) {return ((aCurChar)=='\n'||(aCurChar)=='\r')?true:false;}
+  inline bool IsLastChar(uint aCurPos, uint aStringLength) { return ((aCurPos+1)==aStringLength)?true:false;}
+  inline bool HasEnoughChar(uint aCurPos,uint aStringLength,uint aWanted) {return (aStringLength-aCurPos-1>=aWanted)?true:false;}
+  inline string TrimString(const string& aStr)
+  {
+	string result = aStr;
+	result.erase(result.find_last_not_of(" \t\n\r")+1);
+	result.erase(0,result.find_first_not_of(" \t\n\r"));
+	return result;
+  }
+private:
+  string	iText;
+  string	iBody;
+  string	iErrorString;
+  list<ClassMeta> iClassList;
+  int	        iPositionOfError;
+  char*         iFileName;
+  
+};
+
+void pversion()
+{
+  cout << "Leavescan version: " << Kversion <<"(build time:"<<__DATE__<<" "<<__TIME__<<")\n";
+}
+
+void pusage()
+{
+  pversion();
+  cout << "syntax: \n\tleavescan [-h|-n|-v|-N] <iFilename.cpp> [<iFilename.cpp> ...]\n\n";
+  cout << "\t-h: This help.\n";
+  cout << "\t-n: Noisy output - provides diagnostics (if available).\n";
+  cout << "\t-N: Very noisy output - provides diagnostics (if available).\n";
+  cout << "\t-v: Displays version (for build & automation systems).\n";
+  cout << "\t-E: Only do pre-process\n\n";
+
+}
+
+int main(int argc, char** argv)
+{
+  int noisy = 0;
+  bool onlyPreProcess =false;
+  if (argc < 2)
+    {
+      pusage();
+      return 1;
+    }
+  
+  for (int clparam = 1; clparam < argc; clparam++)
+    {
+      if (argv[clparam][0] == '-')
+	{
+	  switch(argv[clparam][1])
+	    {
+	    case 'n':
+	      noisy = 1;
+	      break;
+	    case 'N':
+	      noisy = 2;
+	      break;
+	    case 'h':
+	      pusage();
+	      break;
+	    case 'v':
+	      pversion();
+	      break;
+	    case 'E':
+	    	{
+	    		onlyPreProcess = true;
+	    	}
+	      break;
+	    default:
+	      pusage();
+	      break;
+	    }
+	} //if
+      else
+	{
+	  // invoked once per file
+	  TLeaveScanModel model;
+	  model.SetFileName(argv[clparam]);
+	  model.Verbose = noisy;
+	  if(onlyPreProcess)
+	  {
+		  model.OnlyPrePrecess = true;
+	  }
+	  else
+	  {
+		  model.OnlyPrePrecess = false;
+	  }
+	  ifstream file(model.FileName());
+	  (void) model.Scan(file);
+	  file.close();
+	  //	  return 0;
+	}
+    }
+  return 0;
+}
+  
+void TLeaveScanModel::SetFileName(char *aName)
+{
+  iFileName = aName;
+}
+
+char* TLeaveScanModel::FileName()
+{
+  return iFileName;
+}
+
+//
+// Main processing function which converts the file to a basic::string
+// and then searches through for methods, analysing them as they are
+// located.
+bool TLeaveScanModel::Scan(ifstream& aStream)
+{
+  FileToText(aStream, iText);
+  string oldText(iText);
+  iText = PreProcess(iText);
+  if(OnlyPrePrecess)
+	  {
+	  	cout<<iText;
+	  	return false;
+	  }
+  if(!iText.length())
+    {
+      cout << "File not found or empty.\n";
+      return false;
+    }
+  
+  uint start  = 0;
+  uint end    = 0;
+  bool isLeaver;
+  enum TReturnTypes getFuncReturnTypes;
+  //init class list
+  iClassList = GetClass(iText);
+  //check function
+  while (start < iText.length())
+    {
+      string name;
+	  getFuncReturnTypes = E_Continue;
+	  while(getFuncReturnTypes == E_Continue)
+	  {
+		  getFuncReturnTypes = GetFunc(iText, name, start, end);
+	  }
+      if (!getFuncReturnTypes)
+		break;
+      
+      bool clean = CheckFunc(iText, name, start, end, isLeaver);
+      bool isLCFunc =false;
+      if(name[name.length()-1] == 'C' && name[name.length()-2] == 'L')
+      {
+    	  isLCFunc = true;
+      }
+      if (isLeaver) // was a leaving container(safe) and no leavers found
+      {
+    	  
+    	  if (clean)
+    	  {
+    		  iPositionOfError=0;
+    		  iErrorString = "Warning - " + name + " appears to contain no leavers.";
+    		  if(!IsInClassScope(start))
+			  {
+				  ReportErrorLineAndString(start);	  
+			  }
+    	  }
+    	  else if(isLCFunc)
+    	  {
+    	      
+			  uint lcleanedupPos = iErrorString.find("LCleanedup");
+			  if(lcleanedupPos!=string::npos)
+				{
+    	    	  uint callPos = iErrorString.find(" calls ");
+				  uint lcleanedupPosInFuncName = name.find("LCleanedup");
+				  if(callPos!=string::npos && lcleanedupPosInFuncName!=string::npos && lcleanedupPos<callPos)
+				  {;}
+				  else
+				  {
+					iErrorString = "LCleanedup class is used in a function suffixed LC";
+    	    		if(!IsInClassScope(start))
+					{
+						ReportErrorLineAndString(start);	  
+					}
+				  }
+				}
+    	  }
+
+    	  // any leavers info can be supressed here since container was leaver
+      }
+      else // wasn't a leaving container 
+      {
+    	  if (!clean) // was dirty, so report
+    		  if(!IsInClassScope(start))
+			  {
+				  ReportErrorLineAndString(start);	  
+			  }
+      }
+      start = end;
+    }
+  //check class 
+  list<ClassMeta>::iterator iter; 
+  for(iter=iClassList.begin();iter!=iClassList.end();iter++) 
+  { 
+	  CheckClass(iText,iter->className,iter->startPos,iter->endPos);
+  } 
+  return true;
+}
+
+//
+// Spool a file into one large basic::string
+//
+void TLeaveScanModel::FileToText(ifstream& aStream, string& aText)
+{
+  char data[1024];
+  int len;
+  do	
+    {
+      aStream.read(data,1024);
+      len = aStream.gcount();
+      aText.append(data, len);
+    }
+  while(len);
+}
+
+// To get the actual position of starting parenthesis for a function definition
+//
+uint TLeaveScanModel::GetRealStartPosition(const string& aFile,uint aStart, uint aIsvaliddoublecolon)
+{
+	uint realstartpos = 0;
+
+	// The opening parenthesis which comes fist after opening brace while moving
+ 	// in backward direction is a valid candidate for function name.
+		
+	uint firstcurlybrace = SmartFind(aFile, "{", aStart + 1 ); // advance start
+
+	if ((firstcurlybrace == string::npos) || (firstcurlybrace >= aFile.length())) 
+	{
+		return realstartpos;
+	}
+
+	// This variable will store the first paranthesis position
+	uint tempParenPos = aFile.find_last_of('(',firstcurlybrace);
+
+	if (tempParenPos == string::npos)
+	{
+		// No '(' found yet
+		return realstartpos;
+	}
+
+	if (aIsvaliddoublecolon == 1)
+	{ 
+		tempParenPos = aStart;	
+	}
+	
+	string whiteSpaceChars = " \t\n\r*&";
+	
+	// ignore all tab and spaces between function name and opening parenthesis
+	uint nend = aFile.find_last_not_of(whiteSpaceChars, --tempParenPos);
+	uint pos = aFile.find_last_of(whiteSpaceChars, nend);
+	
+	if (pos == string::npos)
+	{
+		return realstartpos;
+	}
+	else
+	{
+		return pos;
+	}
+}
+/*
+This function checks the following :
+1) Whether the name is in comment scope, name is checked for both C-style comments(or block comments) and C++-style comments(Line Comments)
+2) The function name is not a keyword having same program construct as function name(i.e. is not among 'while', 'for','if' and 'for'
+
+@internalComponent
+@released
+@param aFile -  Buffer storing the whole source file contents(input)
+@param aName -  String that is to be checked whether it lies in the scope of the comment(input)
+@param aStartposition - Starting offset of name in file.(input)
+@param aStartbraceposn - Starting offset of function block (input)
+@param true - if name is in comment scope(output)
+@param false - if name is not in comment scope
+
+
+Following patterns are handled in this function:
+-----------------------------------------------
+NOTE: in order to remove compile warning, i use "|" stand for "/" in this section of comment
+
+Pattern 1: String is in the scope of both c-style and C++-style comments
+		
+	|*
+	|| name1
+	* |
+
+	
+Pattern 2: String is in the scope of both c-style comments
+
+	|*
+		name2()
+	* |
+			
+Pattern 3: String is in comment scope and the comment scope llies in a string
+			
+	printf(" |*  * | || ")
+	
+
+Pattern 4: String is in the scope of C++-style comments but C-style comments is also available in souurce file	
+
+	|*
+
+	* |
+
+	|| function() 	
+		
+		
+
+Pattern 5: String is in the scope of C-style comments but C+++-style comments is also available in souurce file	
+		
+	|| function() 	
+	|*
+
+	* |
+
+
+Pattern 6: The string is a keyword and the program construct for the keyword is same as for the functions
+	for()
+	{ } 
+
+
+Pattern 7: Both C-style and C++-style comments are avialable in file and the way of specifying comments 
+          is complex.(i.e. it is difficult to identify whether it is a C-Style comment or C++-style comment
+	  ||*******
+	   fun() 
+	  |******
+		**** | 
+	  {}
+
+*/
+bool TLeaveScanModel::IsInCommentScopeOrKeyword(const string& aFile, string &aName, uint aStartposition,uint aStartbraceposn)
+{
+	uint blockCommentStartPosn = aFile.rfind("/*",aStartposition);  // In backward direction
+	uint lineCommentStartPosn = aFile.rfind("//",aStartposition);
+	uint blockCommentEndPosn = aFile.find("*/", aStartposition); // In forward direction
+	uint semicolon = aFile.rfind(";",aStartposition);
+	uint isvalidlocationforBlock;
+	uint isvalidlocationforLine ;
+
+	if( (0 == strcmp(aName.c_str(),"if")) || (0 == strcmp(aName.c_str(),"while")) ||
+		(0 == strcmp(aName.c_str(),"for"))|| (0 == strcmp(aName.c_str(),"switch")) ||
+		(0 == strcmp(aName.c_str(),"defined")))
+	{
+		return true;
+	}
+	// There is no comment of any type either block comment or line comment 
+	if(blockCommentStartPosn == string::npos && lineCommentStartPosn == string::npos)
+	{
+		return false;
+	}
+	// A semiclon exists and semicolon is followed by both (1) the end of block comment scope and (2) the end of line comment scope
+	else if((semicolon != string::npos)&& 
+		((semicolon > blockCommentEndPosn) && (blockCommentStartPosn < blockCommentEndPosn))  &&
+		(semicolon > lineCommentStartPosn))
+	{
+		return false;
+	}
+	else if(lineCommentStartPosn == string::npos)
+	{
+		// Valid Block comment, verify that the function name by applying smartfind
+		isvalidlocationforBlock = SmartFind(aFile, aName, blockCommentStartPosn); 
+		if( (isvalidlocationforBlock == string::npos) || // There is no occurrence of name
+			((isvalidlocationforBlock > aStartbraceposn) && (isvalidlocationforBlock != string::npos))) // The name exists but that is inside function block
+		{
+			return true; 
+		}
+		else
+		{
+			return false; 
+		}
+	}
+	else if(blockCommentStartPosn == string::npos)
+	{
+		isvalidlocationforLine = SmartFind(aFile,aName, lineCommentStartPosn); 
+		if(	(isvalidlocationforLine == string::npos) || // There is no occurrence of name
+			((isvalidlocationforLine > aStartbraceposn) && (isvalidlocationforLine != string::npos) ) ) // The name exists but that is inside function block
+		{
+			return true;
+		}
+		else
+		{
+			return false;
+		}
+	}
+	else
+	{
+		isvalidlocationforBlock = SmartFind(aFile,aName, blockCommentStartPosn); 
+		isvalidlocationforLine = SmartFind(aFile,aName, lineCommentStartPosn);
+		if((isvalidlocationforLine == string::npos) )
+		{
+		  return true;
+		}
+		else if(( (isvalidlocationforLine > aStartbraceposn) && (isvalidlocationforLine != string::npos)) )
+		{
+		 return true; 
+		}
+		else if( (0 == isvalidlocationforBlock) || ((isvalidlocationforBlock > aStartbraceposn) && (isvalidlocationforBlock != string::npos)) )
+		{
+		 return true; 
+		}
+		else if(( blockCommentStartPosn <  aStartbraceposn) && (blockCommentEndPosn < aStartbraceposn ) && (blockCommentStartPosn < blockCommentEndPosn) && ((isvalidlocationforBlock == string::npos)))
+		{
+			return true; 
+		}
+		else
+		{
+			return false; 
+		}
+	}
+}
+
+/*
+This function checks whether the function name is a macro or not
+
+@internalComponent
+@released
+@param aFile - Buffer storing the whole source file contents
+@param aStartbraceposn - Starting offset of function block (input)
+@param aParenPos - End position of function signature
+@param aStartposnofname - Starting offset of string that is to be considered as a function name
+@param true - If function name is not a macro
+@param false - If function name is a macro  
+
+Following patterns are handled in this function:
+-----------------------------------------------
+
+Pattern 1: Function is invoked in macro
+
+	#if defined macro()
+	#endif
+	struct s1
+	{
+
+	}
+
+Pattern 2: Function is invoked in macro but the macro itself is in comment scope
+	void fun()
+	// #if macro()
+	// #endif
+	{
+		struct s1
+		{
+		
+		}
+	}
+  
+Pattern 3: There is parameterized Constructor e.g.
+
+	Foobar(CFileMan* aFileMan) : iFileMan(aFileMan), iCurrentStep(0) {}
+
+
+Pattern 4: Function is defined on the preprocessor statement e.g 
+
+	#define __KTRACE_ALL(a,p) {if((DEBUGMASK&(a))==(a))p;}
+
+Pattern 5: All the functions name in comment scope will be ignored
+
+   void func() 
+	//	#if comments() 
+	{
+	 
+	}
+
+Pattern 6: All the functions name (e.g. comments) in comment scope will be ignored
+  
+   #if defined()
+   // comments() 
+   struct{
+ 	}
+
+*/
+
+bool TLeaveScanModel::IsFunctionNameStringNotAMacro(const string& aFile, uint aStartbraceposn, uint aParenPos, uint aStartposnofname)
+{
+	uint startofword = 0;
+	uint endofword = 0;
+	uint tempParenPos = 0;
+	bool posn = true;
+	string whiteSpaceChars = " \t\n\r";
+	uint tempColonPosn = SmartFind(aFile,":",aParenPos); 
+	string  colonString(":");
+	bool isColonInCommentScope = IsInCommentScopeOrKeyword(aFile,colonString,aParenPos,aStartbraceposn);
+	if(	(tempColonPosn != string::npos)      &&
+		(false == isColonInCommentScope)     &&
+		(tempColonPosn < aStartbraceposn) )
+	{
+		return true; // Not a macro
+	}
+	// The function ignores all the strings which are in the scope of block comments.
+	while( startofword < aStartbraceposn && endofword < aStartbraceposn && posn == true)
+	{
+		if(tempParenPos == 0)
+		{
+			tempParenPos = aParenPos; // First word
+		}
+		else
+		{
+			tempParenPos = endofword; // Next word
+		}
+		startofword = aFile.find_first_not_of(whiteSpaceChars, tempParenPos+1);
+		if(startofword != aStartbraceposn) // No string between function signature and function start block
+		{
+			// get the posn of word end boundary
+			endofword = aFile.find_first_of(whiteSpaceChars, startofword);
+			string tmpString = aFile.substr(startofword,endofword-startofword);
+			string &aName = tmpString;
+			//is throw?
+			if(0==aName.find("throw"))
+			{
+				return true;
+			}
+			if(	(0 == strcmp(aName.c_str(),"const")) ||
+				(0 == strncmp(aName.c_str(),"//",2)) ||
+				(0 == strncmp(aName.c_str(),"*/",2)) ||
+				(0 == strncmp(aName.c_str(),"/*",2)) )
+			{
+				// do nothing
+			}
+			else
+			{
+				// If string is in comment scope then it is fine i.e. the  function returns true;
+				posn = IsInCommentScopeOrKeyword(aFile,aName,startofword,aStartbraceposn);
+			}
+		}
+		else
+		{
+			//	Pattern 1: only spaces are there between ')' and '{' e.g. void fun() {}
+			posn = true;
+		}
+	}
+	if(posn == false)
+	{
+		return false;
+	}
+	uint endOfLine=aFile.rfind('\n',aStartposnofname);  // Get the new line position while backtracking 
+    uint aIndex=(endOfLine==string::npos ? 0 : endOfLine);
+	uint preprocessorDirective = aFile.rfind("#",aStartposnofname); // Get the first char of the line starting with #
+	if(preprocessorDirective != string::npos && aIndex <= preprocessorDirective)
+	{
+		return false; // // Yes, the first char is #, so the name on this line can not be a valid function name
+	}
+	// Check whether it is a macro 
+	return true;
+}
+
+
+
+/*
+This function checks whether any semocolon (';') or assignment(=) is encountered 
+when the backtracking is done to look for function name. 
+  
+@internalComponent
+@released
+@param aFile - Buffer storing the whole source file contents
+@param aStartbraceposn - Starting offset of function block (input)
+@param aTempParenPos - End position of function signature
+@param true - if either assignment expression '=' or ':' occurs between function signature and starting curly brace of function block.
+@param false - if neither assignment expression '=' nor ':' occurs between function signature and starting curly brace of function block.
+
+
+Following patterns are handled in this function:
+-----------------------------------------------
+
+Pattern 1: The semicolon is encountered while backtracking in the search of function name
+
+	_LT();
+	struct s1
+	{
+
+	}
+
+Pattern 2: The semicolon is encountered while backtracking in the search of function name
+
+  fun();
+  a = 2;
+  struct str1
+  {
+  
+  }
+
+Pattern 3: The assignment is encountered while backtracking in the search of function name
+
+  voidmain()
+  a[2] = 
+  {
+	1,2,3
+  }
+ 
+*/
+
+bool TLeaveScanModel::IsSemiColonAndAssignmentOccurs(const string& aFile,uint aStartbraceposn ,uint aTempParenPos)
+{
+	string  semicolon(";");
+	string  assignment("=");
+	uint tempSemicolonPosn = SmartFind(aFile,semicolon,aTempParenPos-1); 
+	//uint tempAssignMentPosn = SmartFind(aFile,assignment,aTempParenPos-1); 
+	bool isSemicolonInCommentScope = IsInCommentScopeOrKeyword(aFile,semicolon,aTempParenPos,aStartbraceposn);
+	bool isAssignmentInCommentScope = IsInCommentScopeOrKeyword(aFile,assignment,aTempParenPos,aStartbraceposn);
+	if( (tempSemicolonPosn != string::npos)   &&
+		((false == isSemicolonInCommentScope) || (false == isAssignmentInCommentScope)) &&
+		(tempSemicolonPosn < aStartbraceposn) 
+	  )
+	{
+		return false;
+	}
+	return true;
+}
+
+/*
+This function checks whether the function definition is terminated by semi colon
+
+If the function definition is terminated with semicolon, then it is
+more likely to be a class/struct declaration rather than a function definition.
+
+@internalComponent
+@released
+@param aFile - Buffer storing the whole source file contents
+@param aStart - Starting offset of the function name string
+@return true -  If closing brace corresponding to function names is followed by semicolon 
+@return false - If closing brace corresponding to function names is not by semicolon
+
+Following patterns are handled in this function:
+-----------------------------------------------
+
+Pattern 1: NONSHARABLE_CLASS/NONSHARABLE_STRUCT modifier is used
+
+	NONSHARABLE_CLASS(...)
+	{
+
+	}; 
+
+Pattern 2: function definition is terminated by semicolon 
+
+	aaa(...)
+	{
+
+	} // comment
+	; 
+
+Pattern 3: Class is defined in macro
+
+	#define MACRO(arg) class name { };
+
+*/
+
+bool TLeaveScanModel::CheckValidFuncName(const string &aFile, uint aStart)
+{
+  bool returnValue=false;
+  unsigned long uiNumberOfCurlyBraces = 1;
+  unsigned int TempPosn = aStart;
+  unsigned int open_brace = 0;
+  unsigned int close_brace = 0;
+  // Continue till than at least any of open curly or close curly brace is remaining
+  while( !(open_brace == string::npos) || !(close_brace == string::npos) )
+  {
+		  open_brace = SmartFind(aFile, "{", TempPosn+1);
+		  close_brace = SmartFind(aFile, "}", TempPosn+1);
+
+		  if(open_brace < close_brace) // Handle which curly comes first
+		  {
+			  if((open_brace != string::npos)&& open_brace < aFile.size())
+			  {
+				uiNumberOfCurlyBraces++; // Update the curly counter
+				TempPosn = open_brace;   // move forward to the value from where the search of next curly to be started
+			  }
+		  }
+		  else // close brace comes first
+		  {
+			  if((close_brace != string::npos)&& close_brace < aFile.size())
+			  {
+				uiNumberOfCurlyBraces--;
+				TempPosn = close_brace; // move forward to the value from where the search of next curly to be started
+			  }
+			  if(uiNumberOfCurlyBraces == 0) // Match to the corresponding close curly
+			  {
+				break;
+			  }
+		  }
+  }
+  if(0 == uiNumberOfCurlyBraces)
+  {
+	  string whiteSpaceChars = " \t\n\r";
+	  unsigned int braceFollowsSemicolon1 = 0;
+	  unsigned int braceFollowsSemicolon2 = 0;
+
+	  braceFollowsSemicolon1 = SmartFind(aFile, ";", close_brace); // check if any semocolon exists after }
+	  braceFollowsSemicolon2 = aFile.find_first_not_of(whiteSpaceChars,close_brace+1); // Get the next character after close_brace
+
+	  if( (braceFollowsSemicolon1 == braceFollowsSemicolon2) && (braceFollowsSemicolon1 !=  string::npos) &&   (braceFollowsSemicolon2 !=  string::npos))
+	  {
+	   returnValue = true;
+	  }
+  }
+
+  return returnValue;
+}
+/*
+This function checks whether the function name is specified with template class definition
+
+@internalComponent
+@released
+@param nstart - starting offset of the function name string 
+@param nend - end offset of the function name string
+@return true -  If function name is specified with template class functtion definition
+@return false - If function name is not specified with template class functtion definition
+
+Following patterns are handled in this function:
+-----------------------------------------------
+
+Pattern 1: 
+
+  
+template <class T, class S, class L, class R>
+GLDEF_C void TestTDes<T,S,L,R>::Test1()
+{
+	T a(_TL("ABc"));
+}
+*/
+
+bool TLeaveScanModel::CheckForTemplateFunc(const string& aFile,uint nstart,uint nend)
+{
+	bool returnValue = false;
+	uint OpennAnglebracket = aFile.find_first_of("<", nstart); // advance start
+	if(nend == OpennAnglebracket ) // The first invalid char name is <
+	{
+		uint OpennParen = aFile.find_first_of("(", nstart); // advance start
+		uint CloseAnglebracket = SmartFind(aFile, ">::", nstart );
+		if( (CloseAnglebracket < OpennParen) && (CloseAnglebracket > OpennAnglebracket))
+		{
+			returnValue = true;
+		}
+	}
+	return returnValue;
+}
+
+// Seek out mathod functions and return their name and start/end bounds in the
+// string file.
+//
+enum TReturnTypes TLeaveScanModel::GetFunc(const string& aFile, string &aName, uint &start, uint &end)
+{
+  uint nstart = 0;//, cstart = 0;
+  uint initStart = start;
+  int realnstart = string::npos;
+  uint safety = 1000000;
+  string validNameChars = ":~abcdefghilkjmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_1234567890";
+  uint prevstart = string::npos;
+  FOREVER// do // forever 
+    {
+	if(
+		(start == string::npos) ||
+		(prevstart == start && prevstart != string::npos)
+	 )
+	{
+		return E_False;
+	}
+	prevstart = start;
+
+      if (safety-- == 0)
+	{
+	  cout << "ERROR: GetFunc context failure in " << iFileName << "\n";
+	  exit(6);
+	}
+
+	// move start along to 'real' double-colon
+	uint startColon = SmartFind(aFile, "::", start);
+	uint parenPostn = SmartFind(aFile, "(", start + 1);
+     
+	if (startColon == string::npos || startColon >= aFile.length() )
+	{
+		// Function Definition do not have any :: and function body contains
+  		nstart = start; 
+		// For 1st function, the value of start will be zero and for the
+		// second function onwards, it will start after the first function ends
+	}
+	else
+	{
+		uint Realstartpost  = GetRealStartPosition(aFile,parenPostn,0);
+		// If no real function name exists after double colon
+	//	if (Realstartpost == 0)
+	//		return E_False;
+		uint Realstartopnparen = SmartFind(aFile, "(", Realstartpost + 1); 
+
+		if(startColon < Realstartopnparen)
+		{
+			// If the double colon is used for function name then get function name which exists after ::
+			nstart = startColon;
+			//Get funcName before :: for "La :: La"
+			//step1 ':: L...'
+			uint fileLen = aFile.length();
+			int tmpnstart=nstart+2;
+			bool step1 = false;
+			while (tmpnstart<fileLen)
+			{
+				char curChar = aFile[tmpnstart];
+				if (curChar==' ' || curChar =='\n' || curChar=='\r' ||curChar=='\t')
+				{
+					tmpnstart++;
+				}
+				else if(curChar=='L')
+				{
+					step1=true;
+					break;
+				}
+				else
+				{
+					step1 = false;
+					break;
+				}
+			}
+			if(step1)
+			{
+				//step2 L...(<>)? :: L... -->skip all the blank
+				bool step2 = true;
+				tmpnstart = nstart-1;
+				while (tmpnstart>=0)
+				{
+					char curChar = aFile[tmpnstart];
+					if (curChar==' ' || curChar =='\n' || curChar=='\r' ||curChar=='\t')
+					{
+						tmpnstart--;
+					}
+					else
+					{
+						break;
+					}
+				}
+				if(tmpnstart<=0)
+				{
+					tmpnstart = 0;
+					step2 = false;
+				}
+				else
+				{
+					char curChar = aFile[tmpnstart];
+					if (curChar=='>')
+					{
+						tmpnstart = GetLeftTmpltParentBack(aFile,tmpnstart-1);
+						if(tmpnstart==string::npos)
+						{
+							//bad pattern
+							step2 =false;
+						}
+						else
+						{
+							tmpnstart --;
+						}
+					}
+					if(tmpnstart==string::npos)
+					{
+						//bad pattern
+						step2 =false;
+					}
+					else
+					{
+						
+						while (tmpnstart>=0)
+						{
+							curChar = aFile[tmpnstart];
+							if (curChar==' ' || curChar =='\n' || curChar=='\r' ||curChar=='\t')
+							{
+								tmpnstart--;
+							}
+							else
+							{
+								break;
+							}
+						}
+						if(tmpnstart <=0) 
+						{
+							tmpnstart=0;
+							step2=false;
+						}
+						while (tmpnstart>=0)
+						{
+							curChar = aFile[tmpnstart];
+							if (curChar=='_' || (curChar>='a' && curChar<='z') || (curChar>='A' && curChar<='Z') ||(curChar>='0' && curChar<='9'))
+							{
+								tmpnstart--;
+							}
+							else
+							{
+								break;
+							}
+						}
+						tmpnstart++;
+						if (tmpnstart<0)
+						{
+							tmpnstart=0;
+							step2=false;
+						}
+						if ( step2 && aFile[tmpnstart]=='L')
+						{
+							realnstart = tmpnstart;
+						}
+					}
+
+				}
+			}
+		}
+		else
+		{
+			// start looking for function name after '('
+			nstart = aFile.find_last_of(validNameChars,parenPostn-1);
+			if(nstart == string::npos)
+				return E_False;
+		}
+	}
+    
+	uint semiPos = SmartFind(aFile, ";", nstart + 1); 
+
+	if (semiPos == string::npos || semiPos >= aFile.length())
+		return E_False;
+
+	uint parenPos = SmartFind(aFile, "(", nstart + 1);
+    if (parenPos == string::npos || parenPos >= aFile.length()) 
+		return E_False;
+
+	start = SmartFind(aFile, "{", nstart + 1); // advance start
+	if (start == string::npos || start >= aFile.length())
+		return E_False;
+
+	uint nstart2 = SmartFind(aFile, "::", nstart + 1); // next fn
+	// Either (1) Second instance of Double collon is not there and first occurrence of double colon is valid
+	// or (2) second occurrence of double colon is inside the function and first occurrence of double colon is valid
+	
+	if((nstart2 == string::npos && startColon < parenPos && startColon < start)  || ( nstart2 > start && startColon < parenPos && startColon < start ))
+	{
+		// This variable will store the first paranthesis position in a temporary variable
+		// uint TempparenPos = parenPos;
+		uint Realstartpost  = GetRealStartPosition(aFile,parenPos,1 /*To indicate that a valid double colon exists*/);
+	
+		nstart = Realstartpost+1; // reset
+		
+		break;
+	}
+	// Either Second occurrence of Double-colon is invalid  
+	// or Second occurrence of Double-colon exists inside the function 
+	// while first occurrence of double colon is valid
+	else if (nstart2 == string::npos || nstart2 >= aFile.length() || (nstart2 != string::npos && nstart2 > start && startColon < parenPos && startColon < start))
+	{
+		// The opening parenthesis which comes fist after opening brace while moving
+ 		// in backward direction is a valid candidate for function name.
+		
+		// This variable will store the first paranthesis position
+		uint tempParenPos = aFile.find_last_of('(',start);
+		
+		
+		//void foo() throw () {;}
+		if(tempParenPos != string::npos)
+		{
+ 			uint throwPos = aFile.find("throw",initStart);
+			if(throwPos!=string::npos && throwPos>=initStart && throwPos<start)
+			{
+					tempParenPos = aFile.find_last_of('(',throwPos);
+					if(tempParenPos==string::npos || tempParenPos<initStart)
+					{
+						tempParenPos = aFile.find_last_of('(',throwPos);
+					}
+			}
+		}
+
+		if (tempParenPos == string::npos)
+		{
+			//FIX this pattern
+			//class A{};
+			//void foo(){fooL();}
+			if(start!=string::npos && semiPos!=string::npos && parenPos!=string::npos&&start<semiPos&&semiPos<parenPos)
+			{
+				start=semiPos+1;
+				return E_Continue;
+			}
+			//FIX this pattern
+			//class B;
+			//class B{};
+			//void foo(){fooL();}
+			else if(start!=string::npos && semiPos!=string::npos && parenPos!=string::npos&&start<parenPos&&semiPos<start)
+			{
+				int tmpRightBracket = GetRightBracket(aFile,start+1);
+				int tmpNextLeftBracket = GetLeftBracket(aFile,tmpRightBracket);
+				int tmpSemiPos = aFile.find(";",tmpRightBracket);
+				if(tmpRightBracket!=string::npos&&tmpNextLeftBracket!=string::npos&&tmpSemiPos!=string::npos)
+				{
+					if(tmpRightBracket<tmpSemiPos && tmpSemiPos<tmpNextLeftBracket)
+					{
+						//skip the content before B{};
+						start = tmpSemiPos;
+						return E_Continue;
+					}
+				}
+			}
+			//pattern:
+			//class temp
+			//{
+			//LData func();
+			//};
+			//LData func() 
+			//{
+			//	foo();
+			//}
+			if(start!=string::npos && semiPos!=string::npos && parenPos!=string::npos&&start<semiPos&&semiPos>parenPos)
+			{
+				int tmpRightBracket = GetRightBracket(aFile,semiPos);
+				if(tmpRightBracket!=string::npos)
+				{
+					start = tmpRightBracket;
+					return E_Continue;
+				}
+			}
+			
+			// No '(' found yet
+			return E_False;
+		}
+		
+
+		string whiteSpaceChars = " \t\n\r*&";
+
+		// ignore all tab and spaces and pointer between function name and opening parenthesis
+		uint nend = aFile.find_last_not_of(whiteSpaceChars, --tempParenPos);
+		uint currPos = aFile.find_last_of(whiteSpaceChars, nend);
+	
+		uint startOfBlock = SmartFind(aFile, "{", tempParenPos ); // advance start
+
+		if (startOfBlock == string::npos || startOfBlock >= aFile.length())
+ 			return E_False;
+
+		if (start < tempParenPos || nstart2 < tempParenPos)
+		{
+			start = startOfBlock;
+		}
+
+	 	if ((currPos != string::npos) && (currPos <  tempParenPos)) // fn1 before fn2
+			nstart = currPos+1; // reset
+	 	break;
+	}
+
+	if (semiPos < start) // semi came before brace = prototype
+		start = semiPos; 
+	else
+	if (nstart < nstart2 // fn1 before fn2
+	    && nstart2 < parenPos) // fn2 before paren 
+		start = nstart2; // reset
+	else
+		break;
+  } //while (true);
+  
+  // nstart should be left pointing to first of double colons
+  // start should point to curly brace
+
+  assert(aFile[start] == '{');
+  
+  // locate the end of the method name
+  nstart = aFile.find_first_of(validNameChars,nstart);
+  if(nstart == string::npos)
+	  return E_False;
+
+  int nend = aFile.find_first_not_of(validNameChars, nstart);
+  if(true == CheckForTemplateFunc(aFile,nstart,nend))
+  {
+	nend = aFile.find_first_of("(",nstart);
+  }
+  
+  if(realnstart!=string::npos && realnstart<nstart)
+  {
+	aName = aFile.substr(realnstart, nend - realnstart);
+  }
+  else
+  {
+	aName = aFile.substr(nstart, nend - nstart);
+  }
+  //operator
+  
+  if(aName.find("operator")!=string::npos)
+  {
+	  nend = aFile.find_first_of("(",nstart);
+	  while(nend>=0)
+	  {
+		  char tmpChar = aFile[nend];
+		  if(tmpChar == ' ' || tmpChar == '\n' ||tmpChar == '\t' ||tmpChar == 'r')
+		  {
+			  nend--;
+		  }
+		  else
+		  {
+			  break;
+		  }
+	  }
+	  aName = aFile.substr(nstart, nend - nstart);
+  }
+int typeEnd = aFile.find_last_of(validNameChars,nstart-1);
+int typeStart= aFile.find_last_of(" \t\n\r*&",typeEnd)+1;
+string type=TrimString(aFile.substr(typeStart, typeEnd - typeStart+1));
+  uint closeparenposn = aFile.find_first_of(")", nstart); // advance start
+
+  if(
+	 (false == IsFunctionNameStringNotAMacro(aFile,start,closeparenposn,nstart)) ||
+	 (false == IsSemiColonAndAssignmentOccurs(aFile,start,closeparenposn))
+	)
+  {
+	
+	start = SmartFind(aFile, "}", start); 
+	return E_Continue;
+  }
+  
+  // rewind nstart until non valid char found
+  safety = 1000000;
+  while (validNameChars.find_first_of(aFile[--nstart]) != string::npos)
+    {
+      if (safety-- == 0)
+	{
+	  cout << "ERROR: GetFunc context failure in " << iFileName << "\n";
+	  exit(7);
+	}
+    }
+  
+  nstart++;   // skip forward to acceptable character
+
+  // cut name out
+  if(realnstart!=string::npos && realnstart<nstart)
+  {
+	aName = aFile.substr(realnstart, nend - realnstart);
+  }
+  else
+  {
+	aName = aFile.substr(nstart, nend - nstart);
+  }
+  
+  // truncate the name with zero
+
+  if(realnstart!=string::npos && realnstart<nstart)
+  {
+	  aName[nend-realnstart] = 0;
+  }
+  else
+  {
+	  aName[nend-nstart] = 0;
+  }
+  aName = TrimString(aName);
+  uint NameSpaceinFunctionName = SmartFind(aName, "::",0);
+  // Continue processing when Either function name is in comment scope
+  // Or close curly corresponding to function name is followed by semicolon and pattern
+  // for scope resolution operator does not exists in function name
+  if(((true == IsInCommentScopeOrKeyword(aFile,aName,nstart,start))) || 
+	  ( (string::npos == NameSpaceinFunctionName) &&  ((true == CheckValidFuncName(aFile,start))))) 
+  {
+	  // Yes it is in comment scope
+	  start = SmartFind(aFile, "}", start); 
+	  return E_Continue;
+  }
+
+  if (Verbose)
+    cout << "Processing method " << iFileName << ": " << aName << "()\n";
+  
+  end = start+1;  // start was a curly brace, so place end inside the brace
+  int braceCount = 1;   // count the one we've just stepped over & prime loop
+  //uint sanity = 0;
+  uint lpos = end;
+  uint match[E_Last];
+  uint braceDepth = 1;
+
+  // keep progressing 'end' until braces match, end finishes up at brace+1
+  while (braceCount > 0)
+    {
+      if (Verbose > 1)
+	cout << ".";
+
+      // reset all types (in case we don't use all of them)
+      int counter;
+      for (counter = E_LCleanedUp; counter < E_Last; counter++)
+	match[counter] = string::npos;
+
+      match[E_OpenBrace]    = aFile.find("{",           lpos);
+      match[E_CloseBrace]   = aFile.find("}",           lpos);
+      match[E_BlockComment] = aFile.find("/*",          lpos);
+      match[E_LineComment]  = aFile.find("//",          lpos);
+      match[E_String]       = aFile.find("\"",          lpos);
+      match[E_Quote]        = aFile.find("\'",          lpos);
+
+      // Check for at least one match-type
+      bool nothingFound = true;
+      for(counter = E_LCleanedUp; counter < E_Last; counter++)
+	{
+	  if(match[counter] != string::npos) // if found an item
+	    nothingFound = false;
+	}
+
+      if(nothingFound) 
+	{
+	  if (Verbose > 1)
+	    cout << "\n";
+	  cout << "ERROR: " << iFileName << ":" << aName << " failed brace check.\n";
+	  exit(1);
+	}
+      
+      // Find the match-type which occurs first and set
+      // lps to its position
+      uint lowestMatchType = FindFirstMatchType(match);
+      lpos                 = match[lowestMatchType];
+      
+      switch(lowestMatchType)
+	{
+	case E_BlockComment:
+	  MoveToEndOfComment(aFile, lpos, string::npos); // lpos modified
+	  break;
+
+	case E_LineComment:
+	  MoveToEndOfLine(aFile, lpos, string::npos); // lpos modified
+	  break;
+
+	case E_OpenBrace:
+	  braceCount++;
+	  if (braceCount > (int)braceDepth)
+	    braceDepth = braceCount;
+	  lpos++;
+	  break;
+	  
+	case E_CloseBrace:
+	  braceCount--;
+	  lpos++;
+	  break;
+
+	case E_String:
+	  // we're sat on a quote, so advance
+	  lpos++;
+	  //	  Peek(file,lpos);
+	  lpos = SmartFindEndOfString(aFile, lpos, '\"');
+	  if (lpos != string::npos)
+	    lpos++; // skip closing quote
+	  break;
+	  
+	case E_Quote:
+	  lpos++;
+	  lpos = SmartFindEndOfString(aFile, lpos, '\'');
+	  if (lpos != string::npos)
+	    lpos++; // skip closing quote
+	  break;
+
+	default:
+	  if (Verbose > 1)
+	    cout << "\n";
+	  cout << "ERROR: " << iFileName << ":" << aName << " bad match type.\n";
+	  exit(1);
+	} //endsw
+      
+      if (lpos == string::npos || lpos == 0 || lpos > aFile.length())
+	{
+	  if (Verbose > 1)
+	    cout << "\n";
+	  cout << "ERROR: " << iFileName << ":" << aName << " failed brace check (EOF).\n";
+	  exit(1);
+	}
+      
+    } //endwhile
+
+  // advance 'end'
+  end = lpos;
+
+  if (braceDepth > 10)
+    {
+      if (Verbose > 1)
+	cout << "\n";
+      cout << "WARNING: " << iFileName << ":" << aName << " unexpectedly large brace depth.\n";
+    }
+  return E_True;
+}
+
+// Diagnostic function for displaying the contents of a string
+// starting at 'pos'
+//
+void TLeaveScanModel::Peek(const string aStr, uint aPos)
+{
+#define PEEKBUFFSIZE 20
+  static char peekBuf[PEEKBUFFSIZE];
+  int posn = aPos;
+  int remaining = aStr.length() - posn;
+  
+  if (remaining > (PEEKBUFFSIZE - 1))
+    remaining = PEEKBUFFSIZE;
+  
+  for (int i = 0; i < remaining; i++)
+    peekBuf[i] = aStr[i+posn];
+  
+  peekBuf[remaining] = 0;
+  
+  cout << "-------- Peek -----------\n" << peekBuf << "\n";
+  cout << "-------------------------\n";
+#undef PEEKBUFFSIZE
+}
+
+// Given an array of match types, work out which one actually comes first
+// in the string. Effectively this function returns the match type with the
+// lowest 'pos' value.
+//
+uint TLeaveScanModel::FindFirstMatchType(uint aMatchSet[])
+{
+  // load indexOfLowestMatch with the item which comes first in the fn
+  int lowestMatch = 0;
+  for(int i = E_LCleanedUp; i < E_Last; i++) 
+    {
+      if((aMatchSet[lowestMatch] == string::npos) // if didn't find one
+	 ||(aMatchSet[lowestMatch] > aMatchSet[i] && aMatchSet[i] != string::npos))
+	lowestMatch = i;
+    }
+  //  cout << "Lowest match found: " << (int)lowestMatch << "\n";
+  return lowestMatch;
+}
+
+//
+// Given a string, see if it looks like a macro (e.g. is capitalised)
+//
+bool  TLeaveScanModel::IdentifyMacro(const string& str, const uint aPos)
+{
+  string validNameChars = ":~abcdefghilkjmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_1234567890";
+  string LowerNameChars = "abcdefghilkjmnopqrstuvwxyz";
+
+  // backwind until not valid
+  int start = str.find_last_not_of(validNameChars, aPos);
+
+  // check for any lower case between start and pos
+  int lower = str.find_first_of(LowerNameChars, start);
+
+  bool result = false;
+  if (lower < (int)aPos)
+    result = false; // lower case == not macro
+  else
+    result = true;
+  return result;
+}
+
+// Given a method function bound, search thorough it looking for what appear to be
+// leaving functions (unless it's a leaver itself).
+//
+// Returns false if error was detected signifying that caller should dump the 
+// error string.
+//
+bool TLeaveScanModel::CheckFunc(const string& aFile, string &aName, 
+				uint start, uint end, bool& aIsLeaver)
+{
+  // entry criteria: name points to the container function name (after double-colon) which
+  // is now null-terminated.
+  // end is the bound for the end of the function (closing curly brace)
+  string extraTypes="CDX";
+  // Look for container name ending in L, or LC, LD, or LX
+  bool isLCFunc =false;
+  aName = TrimString(aName);
+  
+  string className="";
+    className = GetClassName( start);
+    if(className!="")
+    {
+    	  aName = className+"::"+aName;
+    }
+	
+  if (Verbose > 1)
+    {
+      cout << "Evaluating code:\n";
+      Peek(aFile, start);
+    }
+
+  if (aName[aName.length()-1] == 'L' || 
+      (aName[aName.length()-2] == 'L' && string::npos != extraTypes.find(aName[aName.length()-1]) ) )
+    //return true; // happy - we can exit since this container is marked as a leaver
+    aIsLeaver = true; // container is marked Leaver - used to return here
+  else if(IsLClassCtor(aName))
+  {
+	  aIsLeaver = true;
+  }
+  
+  else
+    aIsLeaver = false; // container not marked Leaver
+  
+  if (aName[aName.length()-1] == 'C' && aName[aName.length()-2] == 'L' )
+  {
+	 isLCFunc =true;
+  }
+  //CheckFuncDecl
+  //CheckFuncParam
+  int classNamePos = aFile.rfind(aName, start);
+  if(classNamePos == string::npos)
+  {
+	  uint coloncolonPos =  aName.find("::");
+	  if(coloncolonPos != string::npos)
+	  {
+		  string shortFuncName = aName.substr(coloncolonPos+2);
+		  classNamePos = aFile.rfind(shortFuncName,start);
+	  }
+  }
+  string funcParam = GetFunctionParam(aFile, classNamePos-1);
+  if(funcParam != "")
+  {
+  	if(funcParam.find("LString")!=string::npos||(funcParam.find("LData")!=string::npos))
+	{
+  		if(!aIsLeaver)
+  		{
+  			cout<<GetErrorLineHead(aFile,classNamePos)<<aName + " uses LString/LData class as parameter"<<endl;	
+  		}
+	}
+  }
+  //CheckFuncHead
+  string funcHead = GetFunctionHead(aFile, classNamePos-1);
+  if(funcHead != "")
+  {
+	 if(funcHead.find("LString")!=string::npos||(funcHead.find("LData")!=string::npos))
+	 {
+	  	if(!aIsLeaver) 
+	  	{
+	  		cout<<GetErrorLineHead(aFile,classNamePos)<<aName + " returns LString/LData class"<<endl;	
+	  	}
+	 }
+  }
+  // remainder of function exists to deal with non-leaving container
+  bool ok      = true;
+  uint bodyLen = end - start;
+  iBody        = aFile.substr(start, bodyLen); // bound the string to end
+
+  uint lpos = 0; 
+  uint match[E_Last]; // create some search-result slots
+  string extraTypesAndSpace=" CDX";
+
+  bool keepProcessing = true; // keep going unless we run out of data or bail
+  uint sanity = 1000000;
+
+  while (lpos < bodyLen && keepProcessing == true) 
+    {
+      if (sanity-- == 0)
+	{
+	  cout << "\nERROR: " << iFileName << ": " << aName << " context failure.\n";
+	  exit(4);
+	}
+      if (Verbose > 1)
+	cout << "?";
+      // Scans for a whole set of items from position lpos.
+      // string::npos returned if not found
+
+      // reset all types (in case we don't use all of them)
+      int counter;
+      for (counter = E_LCleanedUp; counter < E_Last; counter++)
+	match[counter] = string::npos;
+
+      match[E_Ell]          = iBody.find("L",           lpos); 
+      match[E_Trap]         = iBody.find("TRAP",        lpos); 
+      match[E_BlockComment] = iBody.find("/*",          lpos);
+      match[E_LineComment]  = iBody.find("//",          lpos);
+      match[E_Eleave]       = iBody.find("ELeave",      lpos);
+      match[E_UserEleave]   = iBody.find("User::Leave", lpos);
+      match[E_String]       = iBody.find("\"",          lpos);
+      match[E_Quote]        = iBody.find("\'",          lpos);
+      match[E_OrLeave]		= iBody.find("OR_LEAVE",	lpos);
+      match[E_LCleanedUp]	= iBody.find("LCleanedup",	lpos);
+      match[E_LString]		= iBody.find("LString",		lpos);
+      match[E_LManaged]		= iBody.find("LManaged",	lpos);
+      match[E_LData]		= iBody.find("LData",	    lpos);
+      
+      // Check for at least one match-type
+      bool doBreak = true;
+      for(counter = E_LCleanedUp; counter < E_Last; counter++)
+	{
+	  if(match[counter] != string::npos) // if found an item
+	    doBreak = false; 
+	}
+
+      if(doBreak) 
+	break; // found nothing of interest in this method function
+      
+      // Find the match-type which occurs first and set
+      // lps to its position
+      uint lowestMatchType = FindFirstMatchType(match);
+      lpos                 = match[lowestMatchType];
+      
+      switch(lowestMatchType) // what type was it?
+	{
+	case E_BlockComment:
+	  MoveToEndOfComment(iBody, lpos, bodyLen); // lpos modified
+	  break;
+
+	case E_LineComment:
+	  MoveToEndOfLine(iBody, lpos, bodyLen); // lpos modified
+	  break;
+
+	case E_Trap:
+	  if (! MoveToEndOfTrapHarness(iBody, lpos, bodyLen)) // lpos modified
+	    {
+              iErrorString     = aName + " structure Fault-Unclosed bracket after TRAP harness.";
+              iPositionOfError = lpos;
+	      keepProcessing   = false; // bail
+	    }
+	  break;
+
+	case E_Eleave:
+	  ok               = false;
+	  iErrorString     = aName + " calls new(ELeave).";
+	  iPositionOfError = match[E_Eleave];
+	  keepProcessing   = false; // bail
+	  break;
+	case E_OrLeave:
+		ok               = false;
+		iErrorString     = aName + " calls OR_LEAVE.";
+		iPositionOfError = match[E_OrLeave];
+		keepProcessing   = false; // bail
+		break;
+	case E_LCleanedUp:
+		ok               = false;
+		iErrorString     = aName + " uses LCleanedup* class.";
+		iPositionOfError = match[E_LCleanedUp];
+		keepProcessing   = false; // bail
+		break;
+	case E_LString:
+		ok               = false;
+		iErrorString     = aName + " uses LString* class.";
+		iPositionOfError = match[E_LString];
+		keepProcessing   = false; // bail
+		break;
+	case E_LManaged:
+		ok               = false;
+		iErrorString     = aName + " uses LManaged* class.";
+		iPositionOfError = match[E_LManaged];
+		keepProcessing   = false; // bail
+		break;
+	
+	case E_LData:
+			ok               = false;
+			iErrorString     = aName + " uses LData* class.";
+			iPositionOfError = match[E_LData];
+			keepProcessing   = false; // bail
+			break;
+			
+	case E_UserEleave:
+	  ok               = false;
+	  iErrorString     = aName + " calls User::Leave() or User::LeaveIfError().";
+	  iPositionOfError = match[E_UserEleave];
+	  AppendCommentToErrorString(bodyLen);
+	  keepProcessing   = false; // bail
+	  break;
+	  
+	
+	case E_Ell:
+	  // Found an L, but is there an underbar before it, 
+	  // AND (one of 'CDX ' AND a brace OR just a brace) _L[CDX ](
+	  if ((iBody[lpos - 1] != '_') &&
+	      (((string::npos != extraTypesAndSpace.find(iBody[lpos + 1])) 
+		&& (iBody[lpos + 2] == '(')) || (iBody[lpos + 1] == '(')) ) 
+	    {
+	      if (IdentifyMacro(iBody, lpos))
+		{
+		  ok = false;
+		  iErrorString = aName + " may employ a macro.";
+		  iPositionOfError = match[E_Ell];
+		  if(!AppendCommentToErrorString(bodyLen))
+		    keepProcessing = false; // keep going if possible
+		  lpos++;
+		  break; // don't bail - false alarm
+		}
+	      else
+		{
+		  if (Verbose > 1)
+		    {
+		      cout << "Leaver found: \n";
+		      Peek(iBody, lpos);
+		    }
+		}
+	      ok = false;
+	      iErrorString = aName + " calls a function that can leave.";
+	      iPositionOfError = match[E_Ell];
+	      if(!AppendCommentToErrorString(bodyLen))
+		keepProcessing = false; // keep going if possible
+	    }
+	  lpos++; // move on over the L
+	  break;
+	  
+	case E_String:
+	  lpos++;
+	  lpos = SmartFindEndOfString(iBody, lpos, '\"');
+	  if (lpos == string::npos)
+	    keepProcessing = false;
+	  else
+	    lpos++; // skip closing quote
+	  break;
+	  
+	case E_Quote:
+	  lpos++;
+	  lpos = SmartFindEndOfString(iBody, lpos, '\'');
+	  if (lpos == string::npos)
+	    keepProcessing = false;
+	  else
+	    lpos++; // skip closing quote
+	  break;
+
+	default:
+	  cout << "\nERROR: " << iFileName << ": " << aName << " unexpected match type.\n";
+	  exit(1);
+
+	} // endsw
+	//LCleanedup and LManaged cann't be TRAPed
+	/*
+	if (match[E_LCleanedUp]==string::npos && match[E_LManaged]==string::npos)
+	{
+	}
+	if(match[E_LCleanedUp]!=string::npos && match[E_LManaged]==string::npos)
+	{
+		ok               = false;
+		iErrorString     = aName + " uses LCleanedup class.";
+		iPositionOfError = match[E_LCleanedUp];
+		keepProcessing   = false; // bail
+		break;
+	}
+	else if(match[E_LManaged]!=string::npos && match[E_LCleanedUp]==string::npos)
+	{
+		ok               = false;
+		iErrorString     = aName + " uses LManaged* class.";
+		iPositionOfError = match[E_LManaged];
+		keepProcessing   = false; // bail
+		break;
+	}
+	else if(match[E_LCleanedUp]<match[E_LManaged])
+	{
+		ok               = false;
+		iErrorString     = aName + " uses LCleanedup class.";
+		iPositionOfError = match[E_LCleanedUp];
+		keepProcessing   = false; // bail
+		break;
+	}
+	else if(match[E_LCleanedUp]>match[E_LManaged])
+	{
+		ok               = false;
+		iErrorString     = aName + " uses LManaged* class.";
+		iPositionOfError = match[E_LManaged];
+		keepProcessing   = false; // bail
+		break;
+	}
+	*/
+    //check:An LCleanedup class is used in the same function body as the Classic cleanup stack API
+    if(match[E_LCleanedUp]!=string::npos)
+      {
+    	uint newLCPos = iBody.find("NewLC");
+		uint pushLPos = string::npos; //Cleanedup::PushL()-->find Cleanedup
+		uint bodyLen = iBody.length();
+		for(uint tmpPos = 0;tmpPos<bodyLen;)
+		{
+			pushLPos = iBody.find("CleanupStack",tmpPos);
+			if (pushLPos == string::npos)
+			{
+				break;
+			}
+			if(pushLPos>0)
+			{
+				if(iBody[pushLPos-1]=='L')
+				{
+					tmpPos++;
+					pushLPos = string::npos;
+					continue;
+				}
+				else
+				{
+					break;
+				}
+			}
+			else
+			{
+				break;
+			}
+		}
+		
+		//uint new
+    	uint lcleanedUpPos = match[E_LCleanedUp];
+    	if(newLCPos!=string::npos && pushLPos!=string::npos)
+    	{
+    		if(newLCPos<pushLPos)
+    		{
+    			cout<<GetErrorLineHead(aFile,start+newLCPos)<<aName<<" uses NewLC method with LCleanedup* class.\n";
+    			break;
+    		}
+    		else
+    		{
+    			cout<<GetErrorLineHead(aFile,start+pushLPos)<<aName<<" uses classic CleanupStack method with LCleanedup* class.\n";
+    			break;
+    		}
+    	}
+    	else if(newLCPos!=string::npos)
+    	{
+    		cout<<GetErrorLineHead(aFile,start+newLCPos)<<aName<<" uses NewLC method with LCleanedup* class.\n";
+    		break;
+    	}
+    	else if(pushLPos!=string::npos)
+    	{
+    		cout<<GetErrorLineHead(aFile,start+pushLPos)<<aName<<" uses classic CleanupStack with LCleanedup* class.\n";
+    		break;
+    	}
+    	
+      }
+    } // endwhile
+  
+  if (Verbose > 1)
+    cout << "END\n";
+
+  return ok;
+}
+
+//
+// Move an index forward to the start of a close-comment
+//
+void TLeaveScanModel::MoveToEndOfComment(const string& aStr, uint& aIndex, uint aLen)
+{
+  uint endOfComment=aStr.find("*/",aIndex);
+  aIndex=(endOfComment == string::npos ? aLen : endOfComment+2);
+}
+
+//
+// Move an index forward to the EOL (\n)
+//
+void TLeaveScanModel::MoveToEndOfLine(const string& aStr, uint& aIndex, uint aLen)
+{
+  uint endOfLine=aStr.find('\n',aIndex);
+  aIndex=(endOfLine==string::npos ? aLen : endOfLine);
+}
+
+//
+// Move an index forward to a closing quote (specified by x)
+//
+void TLeaveScanModel::MoveToEndOfString(const string& aStr, uint& aIndex, uint aLen, char aQuote)
+{
+  uint endOfLine=aStr.find(aQuote,aIndex);
+  aIndex=(endOfLine==string::npos ? aLen : endOfLine);
+}
+
+//
+// Move to end of a trap harness
+//
+bool TLeaveScanModel::MoveToEndOfTrapHarness(const string& aStr, uint& aIndex, uint aLen)
+{
+  uint bracketLevel=1;
+  uint closeBracket;
+  uint openBracket=aStr.find('(',aIndex);
+  bool cleanExit=true;
+  uint newIndex;
+  for(newIndex = openBracket; bracketLevel;)
+    {
+      closeBracket=aStr.find(')',newIndex+1);
+      openBracket=aStr.find('(',newIndex+1);
+      if (openBracket<closeBracket && openBracket!=string::npos)
+	{
+	  bracketLevel++;
+	  newIndex=openBracket;
+	}
+      else if ((closeBracket<openBracket && closeBracket!=string::npos) 
+	       || (closeBracket!=string::npos && openBracket==string::npos)) 
+	{
+	  bracketLevel--;
+	  newIndex=closeBracket;
+	}
+      else //bad structure
+	{
+	  cleanExit=false;
+	  break;
+	}
+    }
+  aIndex=(cleanExit ? newIndex : aLen);
+  return cleanExit;
+}
+
+//
+// Report the current error - note works on class member iText
+//
+void TLeaveScanModel::ReportErrorLineAndString(uint aStart)
+{
+  int positionInBody=aStart+iPositionOfError;
+  int positionOfNextLine=iText.find('\n',positionInBody+1);
+  if(positionOfNextLine==string::npos)
+  positionOfNextLine=iText.length()-1; //the first char could be '\n'
+  int positionOfLine=-1;
+  int lineNum;
+  for(lineNum=0 ;positionOfLine<positionOfNextLine;lineNum++)
+    positionOfLine=iText.find('\n',positionOfLine+1);
+ 
+  cout << iFileName <<"("<< lineNum << ") : " << iErrorString << "\n";
+}
+
+//calculate filename ,fileline
+string TLeaveScanModel::GetErrorLineHead(const string& aText, uint aPos)
+{
+	int lineNum=1;
+	char curChar=0;
+	//i did not count '\r'
+	for(int curPos=0;curPos<=aPos;curPos++)
+	{
+		curChar = aText[curPos];
+		if(curChar=='\n')
+		{
+			lineNum++;
+		}
+	}
+	stringstream   sstrm;
+	sstrm<<iFileName << string("(")<<lineNum<<string(") : ");
+	return sstrm.str();
+}
+//Get a class name from class list
+//may return wrong name if there are inner classes
+string TLeaveScanModel::GetClassName(uint aStart)
+{
+	list<ClassMeta>::iterator iter; 
+	for(iter=iClassList.begin();iter!=iClassList.end();iter++) 
+	{ 
+		if(iter->startPos<=aStart && iter->endPos >= aStart)
+		{
+			return iter->className;
+		}
+	}
+	return "";
+}
+//
+// Add to the current error string - note works on class member iBody
+//
+bool TLeaveScanModel::AppendCommentToErrorString(uint aEnd)
+{
+  bool qualified = true;
+  uint commentPosition   = iBody.find("//",iPositionOfError+1);
+  uint endOfLinePosition = iBody.find('\n',iPositionOfError+1);
+  if((commentPosition < endOfLinePosition) && (commentPosition != string::npos))
+    iErrorString+=" QUALIFIED WITH-> "+iBody.substr(commentPosition,endOfLinePosition-commentPosition);
+  else if(endOfLinePosition==string::npos && commentPosition!=string::npos)
+    iErrorString+=" QUALIFIED WITH-> "+iBody.substr(commentPosition,aEnd-commentPosition);
+  else //no comment
+    {
+      iErrorString+=" UnQualified.";
+      qualified = false;
+    }
+  return qualified;
+}
+
+//
+// Find the end of a string, but cope with escaped quotes
+//
+uint TLeaveScanModel::SmartFindEndOfString(const string& aStr, uint aPos, char aQuote)
+{
+  FOREVER//while(true)
+    {
+       MoveToEndOfString(aStr, aPos, string::npos, aQuote);
+      if (aPos == string::npos) // end of fn
+	  return aPos;
+
+      if (aStr[aPos - 1] != '\\')
+	return aPos;
+
+      // looks like we have an escaped quote
+      if (aStr[aPos - 2] == '\\')
+	{ // escape was itself quoted, so string end is real
+	  return aPos;	
+	}
+      else
+	{ // quote is escaped - carry on
+	  if (Verbose > 1)
+	    cout << "\n";
+	  cout << "WARNING: " << iFileName << ": detected quoted string.\n";
+	  aPos++;
+	  continue;
+	}
+    } //while
+}
+
+//
+// Find a target string from a given start position, but ignore targets buried
+// within comments, or strings.
+//
+uint  TLeaveScanModel::SmartFind(const string& aStr, const string& aTarget, uint aStart)
+{
+  uint found,cstart;
+  FOREVER//while(1)
+    {
+      //      cout << "Searching for target from: " << aStart << "\n";
+      // record found target 
+      found = aStr.find(aTarget, aStart);
+      if (found == string::npos)
+	  return(string::npos);
+
+      // cout << "Target candidate found at: " << found << "\n";
+      // look for earlier comment
+      cstart = aStr.find("//", aStart);
+
+      if (cstart < found) // earlier
+	{
+	  aStart = cstart; // reset start to after comment
+	  // cout << "Earlier comment found at: " << start << "\n";
+	  MoveToEndOfLine(aStr, aStart, string::npos);
+	  // cout << "Start advanced to: " << aStart << "\n";
+	  if (aStart == string::npos)
+	    return(aStart);
+	  else
+	    continue; // start search again
+	}
+      
+      // do the same for block comments
+      cstart = aStr.find("/*", aStart);
+      if (cstart < found)
+	{
+	  aStart = cstart;
+	  // cout << "Earlier block found at: " << aStart << "\n";
+	  MoveToEndOfComment(aStr, aStart, string::npos);
+	  // cout << "Start advanced to: " << aStart << "\n";
+	  if (aStart == string::npos)
+	    return(aStart);
+	  else
+	    continue;
+	}
+      
+      cstart = aStr.find("\"", aStart);
+
+      if (cstart < found)
+	{
+	  aStart = cstart + 1;
+	  MoveToEndOfString(aStr, aStart, string::npos, '\"');
+	  if (aStart == string::npos)
+	    return(aStart);
+	  else
+	    {
+	      aStart++;
+	      continue;
+	    }
+	}
+
+      cstart = aStr.find("\'", aStart);
+      if (cstart < found)
+	{
+	  aStart = cstart + 1;
+	  MoveToEndOfString(aStr, aStart, string::npos, '\'');
+	  if (aStart == string::npos)
+	    return(aStart);
+	  else
+	    {
+	      aStart++;
+	      continue;
+	    }
+	}
+      return(found); // quit loop
+    } // endwhile
+}
+
+
+/*
+ * Decide the "class" is keyword
+ * e.g
+ *  class -> true
+ *  Aclass ->false
+ *  classA ->false
+ */
+bool TLeaveScanModel::IsClassKeyword(const string& aText, uint aBegin, uint aEnd)
+{
+	bool tmpBefore =false;
+	bool tmpAfter =false;
+	int len = aText.size();
+	if(aBegin==0)
+	{
+		tmpBefore = true;
+	}
+	else
+	{
+		char tmpChar = aText[aBegin-1];
+		if(tmpChar==' ' || tmpChar=='\n' || tmpChar=='\r' || tmpChar=='\t' || tmpChar=='{'|| tmpChar=='}'|| tmpChar==';')
+		{
+			tmpBefore = true;
+		}
+	}
+	if(aEnd==len-1)
+	{
+		tmpAfter = true;
+	}
+	else
+	{
+		char tmpChar = aText[aEnd+1];
+		if(tmpChar==' ' || tmpChar=='\n' || tmpChar=='\r' || tmpChar=='{' || tmpChar=='('|| tmpChar==':')
+		{
+			tmpAfter = true;
+		}
+	}
+	return tmpAfter&&tmpBefore;
+}
+/**
+ * combine escaped lines to one line.
+ */
+string TLeaveScanModel::CombineLine(const string& aText)
+{
+
+	if(aText.size()<0) return string("");
+	int curPos = 0;
+	int curState = PPSTATE_NORMAL;
+	int firstPos = 0;
+	int stringSize = aText.size();
+	int newlineCount=0;
+	string newText("");
+	while(curPos< stringSize)
+	{
+		//remove "\"
+		switch(curState)
+		{
+		case PPSTATE_NORMAL:
+		{
+			char curChar=aText[curPos];
+			if(curChar=='\\')
+			{
+				// '\\\n" | "\\\r"
+				if(stringSize>(curPos+1)&&IsNewLine(aText[curPos+1]))
+				{
+					curState= PPSTATE_ESCAPED_LINE;				
+					newText.append(aText.substr(firstPos,curPos-firstPos));
+					curPos+=1;
+					newlineCount+=1;
+					
+				}
+				else if(IsLastChar(curPos,stringSize))
+				{
+					curPos++;
+					firstPos++;
+				}
+				else
+				{
+					curPos++;
+				}
+			}
+			else if(IsNewLine(curChar))
+			{
+				if (newlineCount>0)
+				{
+					newText.append(aText.substr(firstPos,curPos-firstPos));
+					while(newlineCount>= 0)
+					{
+						newText.append("\n");
+						newlineCount--;
+					}
+					newlineCount=0;
+					curPos++;
+					firstPos=curPos;
+				}
+				else
+				{
+					curPos++;
+				}
+			}
+			else
+			{
+				curPos++;
+			}
+		}
+			break;
+		case PPSTATE_ESCAPED_LINE:
+			if(stringSize-curPos>1)
+			{
+				if(
+					(aText[curPos]=='\n'&&aText[curPos+1]=='\r')
+					||
+					(aText[curPos]=='\r'&&aText[curPos+1]=='\n')
+					)
+				{
+					curPos+=2;
+					firstPos=curPos;
+					curState=PPSTATE_NORMAL;
+				}
+				else if(IsNewLine(aText[curPos]))
+				{
+					curPos+=1;
+					firstPos=curPos;
+					curState=PPSTATE_NORMAL;
+				}
+			}
+			else
+			{
+				//EOF
+				return newText;
+			}
+		
+		}
+	}
+	newText.append(aText.substr(firstPos,curPos-firstPos));
+	return newText;
+}
+
+/**
+ * C Preprocess
+ * a.remove single line comment
+ * b.remove mul-lines comment
+ * c.remove #command
+ * d.struct,NONSHARABLE_CLASS,NONSHARABLE_STRUCT --> class
+ * e.string literal -> blank string
+ */
+string TLeaveScanModel::PreProcess(const string& aText)
+{
+	string afterCombine = CombineLine(aText);
+	//cout<<"before:"<<endl<<afterCombine<<endl;
+	if(afterCombine.size()<0) return string("");
+	
+	int curPos = 0;
+	int curState = PPSTATE_NORMAL;
+	int firstPos = 0;
+	int stringSize = aText.size();
+	int newlineCount=0;
+	int blankCount=2;
+	string newText("");
+	while(curPos< stringSize)
+	{
+		switch(curState)
+		{
+			case PPSTATE_NORMAL:
+            {
+				char curChar = afterCombine[curPos];
+				if(curChar=='/')
+				{
+					if(HasEnoughChar(curPos,stringSize,1))
+					{
+						if('/'==afterCombine[curPos+1])
+						{
+							curState=PPSTATE_SINGLE_COMMENT;
+							newText.append(afterCombine.substr(firstPos,curPos-firstPos));
+							curPos+=2;
+						}
+						else if('*'==afterCombine[curPos+1])
+						{
+							curState=PPSTATE_MUL_COMMENT;
+							newText.append(afterCombine.substr(firstPos,curPos-firstPos));
+							curPos+=2;
+						}
+						else
+						{
+							curPos++;
+						}
+					}
+					else
+					{
+						curPos++;
+					}
+				}
+				else if(curChar=='"')
+				{
+					if(curPos>0&&(afterCombine[curPos-1]!='\\'&&afterCombine[curPos-1]!='\''))
+					{
+						curState=PPSTATE_STRING_LITERAL;
+						newText.append(afterCombine.substr(firstPos,curPos-firstPos+1));
+						
+					}
+					curPos+=1;
+				}
+				else if(curChar=='#')
+				{
+					//if # is the first non-blank char of line, comment this line
+					bool checkSharp=true;
+					for(int i=curPos-1;i>=0;i--)
+					{
+						char tmpChar = afterCombine[i];
+						if(tmpChar==' '||tmpChar=='\t'||tmpChar=='\f')
+						{
+							continue;
+						}
+						else if(tmpChar=='\n' || tmpChar=='\t')
+						{
+							break;
+						
+						}
+						else
+						{
+							checkSharp=false;
+							break;
+						}
+					}
+					if(checkSharp)
+					{
+						curState=PPSTATE_SHARP_COMMENT;
+						newText.append(afterCombine.substr(firstPos,curPos-firstPos));
+					}
+					curPos+=1;
+				}
+				//struct,NONSHARABLE_CLASS,NONSHARABLE_STRUCT --> class
+				else if(HasEnoughChar(curPos,stringSize,5))
+				{
+					
+					if(curChar=='s'&&afterCombine[curPos+1]=='t'&&afterCombine[curPos+2]=='r'&&afterCombine[curPos+3]=='u'&&afterCombine[curPos+4]=='c'&&afterCombine[curPos+5]=='t'&&IsClassKeyword(aText,curPos,curPos+5))
+					{
+						newText.append(afterCombine.substr(firstPos,curPos-firstPos));
+						newText.append("class ");
+						curPos+=6;
+						firstPos=curPos;
+					}
+					else if(curChar=='N'&&HasEnoughChar(curPos,stringSize,11)&&afterCombine[curPos+1]=='O'&&afterCombine[curPos+2]=='N'&&afterCombine[curPos+3]=='S'&&afterCombine[curPos+4]=='H'&&afterCombine[curPos+5]=='A'&&afterCombine[curPos+6]=='R'&&afterCombine[curPos+7]=='A'&&afterCombine[curPos+8]=='B'&&afterCombine[curPos+9]=='L'&&afterCombine[curPos+10]=='E'&&afterCombine[curPos+11]=='_')
+					{
+						if(HasEnoughChar(curPos,stringSize,5))
+						{
+							if(afterCombine[curPos+12]=='C'&&afterCombine[curPos+13]=='L'&&afterCombine[curPos+14]=='A'&&afterCombine[curPos+15]=='S'&&afterCombine[curPos+16]=='S'&&IsClassKeyword(aText,curPos,curPos+16))
+							{
+								newText.append(afterCombine.substr(firstPos,curPos-firstPos));
+								newText.append("class");
+								for(int i=0;i<12;i++)
+								{
+									newText.append(" ");
+								}
+								curPos+=17;
+								firstPos=curPos;
+								break;
+							}
+						}
+						if(HasEnoughChar(curPos,stringSize,6))
+						{
+							if(afterCombine[curPos+12]=='S'&&afterCombine[curPos+13]=='T'&&afterCombine[curPos+14]=='R'&&afterCombine[curPos+15]=='U'&&afterCombine[curPos+16]=='C'&&afterCombine[curPos+17]=='T'&&IsClassKeyword(aText,curPos,curPos+17))
+							{
+								newText.append(afterCombine.substr(firstPos,curPos-firstPos));
+								newText.append("class");
+								for(int i=0;i<13;i++)
+								{
+									newText.append(" ");
+								}
+								curPos+=18;
+								firstPos=curPos;
+								break;
+							}
+						}
+						curPos++;
+						
+					}//end of nonsharable
+					else
+					{
+						curPos++;
+					}
+				}
+				
+				else
+				{
+					curPos++;
+				}
+				break;
+            }
+			case PPSTATE_SHARP_COMMENT:
+			case PPSTATE_SINGLE_COMMENT:
+			{
+				while(curPos< stringSize)
+				{
+					if(IsNewLine(afterCombine[curPos]))
+					{
+						if(stringSize-curPos>1)
+						{
+										if(
+											(afterCombine[curPos]=='\n'&&afterCombine[curPos+1]=='\r')
+											||
+											(afterCombine[curPos]=='\r'&&afterCombine[curPos+1]=='\n')
+											)
+										{
+											curPos+=2;									
+										}
+										else 
+										{
+											curPos+=1;
+										}
+										firstPos=curPos;
+										curState=PPSTATE_NORMAL;
+										newText.append("\n");
+										break;
+						}
+						else
+						{					
+							newText.append("\n");
+							return newText;
+						}
+					}
+					else
+					{
+						curPos++;
+					}
+				}
+				firstPos=curPos;
+			
+				break;
+			}
+			case PPSTATE_MUL_COMMENT:
+			{
+				blankCount=2;
+				while(curPos< stringSize)
+				{
+					if(!HasEnoughChar(curPos,stringSize,1))
+					{
+						return newText;
+					}
+					if(afterCombine[curPos]=='*' && afterCombine[curPos+1]=='/')
+					{
+						curPos+=2;
+						firstPos=curPos;
+						curState=PPSTATE_NORMAL;
+						blankCount+=2;
+						break;
+					}
+					else if(IsNewLine(afterCombine[curPos]))
+					{
+						if(HasEnoughChar(curPos,stringSize,1))
+						{
+							if(
+									(afterCombine[curPos]=='\n'&&afterCombine[curPos+1]=='\r')
+									||
+									(afterCombine[curPos]=='\r'&&afterCombine[curPos+1]=='\n')
+								)
+							{
+										curPos+=2;				
+							}
+							else
+							{
+								curPos+=1;
+							}
+						}
+						else 
+						{
+									curPos+=1;
+						}					
+						while (blankCount-->0)
+						{
+							newText.append(" ");
+						}
+						newText.append("\n");				
+						blankCount=0;
+					}
+					else
+					{
+						curPos++;
+						blankCount++;
+					}
+				}
+				firstPos=curPos;
+				while (blankCount-->0)
+				{
+						newText.append(" ");
+				}
+				blankCount=0;
+			
+				break;
+			}
+			case PPSTATE_STRING_LITERAL:
+				blankCount=0;
+				while(curPos< stringSize)
+								{
+									
+									if((afterCombine[curPos]=='"' )&& (afterCombine[curPos-1]!='\\'))
+									{
+										curPos+=1;
+										firstPos=curPos;
+										while (blankCount-->0)
+										{
+											newText.append(" ");
+										}
+										newText.append("\"");
+										curState=PPSTATE_NORMAL;
+										break;
+									}
+									else
+									{
+										if(curPos>1 && (afterCombine[curPos]=='"' )&& (afterCombine[curPos-1]=='\\')&&(afterCombine[curPos-2]=='\\'))
+										{
+											curPos+=1;
+										    firstPos=curPos;
+											while (blankCount-->0)
+											{
+													newText.append(" ");
+											}
+											newText.append("\"");
+											curState=PPSTATE_NORMAL;
+											break;
+										}
+										else
+										{
+											curPos++;
+											blankCount++;
+										}
+									}
+								}
+				break;
+		}
+	}
+	newText.append(afterCombine.substr(firstPos,curPos-firstPos));
+	return newText;
+}
+/*
+ * Get next matched '{'
+ */
+int TLeaveScanModel::GetLeftBracket(const string& aText,uint pos)
+{
+	int len =aText.size();
+	if(pos>=len)
+	{
+		return string::npos;
+	}
+	while(pos<len)
+	{
+		if(aText[pos]=='{')
+		{
+			return pos;
+		}
+		pos++;
+	}
+	return string::npos;
+}
+/*
+ * Get next matched '}'
+ */
+int TLeaveScanModel::GetRightBracket(const string& aText,uint pos)
+{
+	int len = aText.size();
+	if(pos>=len)
+	{
+		return string::npos;
+	}
+	int parentCount = 1;
+	while(pos<len)
+		{
+			if(aText[pos]=='{')
+			{
+				parentCount++;
+			}
+			else if (aText[pos]=='}' )
+			{
+				parentCount--;
+				if(parentCount==0)
+				{
+					return pos;
+				}
+			}
+			pos++;
+		}
+		return string::npos;
+	
+}
+/*
+ Get next '('
+ */
+int TLeaveScanModel::GetLeftParenthesis(const string& aText,uint pos)
+{
+	int len =aText.size();
+	if(pos>=len)
+	{
+		return string::npos;
+	}
+	while(pos<len)
+	{
+		char curChar = aText[pos];
+		if(curChar=='(')
+		{
+			return pos;
+		}
+		pos++;
+	}
+	return string::npos;
+}
+
+/*
+ * Get next matched ')'
+ */
+int TLeaveScanModel::GetRightParenthesis(const string& aText,uint pos)
+{
+	int len = aText.size();
+		if(pos>=len)
+		{
+			return string::npos;
+		}
+	int parentCount = 1;
+	while(pos<len)
+		{
+			char curChar = aText[pos];
+			if(curChar=='(')
+			{
+				parentCount++;
+			}
+			else if (curChar==')' )
+			{
+				parentCount--;
+				if(parentCount==0)
+				{
+					return pos;
+				}
+			}
+			pos++;
+		}
+		return string::npos;
+}
+
+/*
+ Get next '<' by pair
+ */
+int TLeaveScanModel::GetLeftTmpltParentBack(const string& aText,uint pos)
+{
+	int count=1;
+	if (pos<=0)
+	{
+		return string::npos;
+	}
+	while(pos>0)
+	{
+		char curChar = aText[pos];
+		if(curChar=='<')
+		{
+			count--;
+			if (count <= 0)
+				return pos;
+		}
+		else if(curChar=='>')
+		{
+			count++;
+		}
+		pos--;
+	}
+	return string::npos;
+}
+
+/*
+ * Get next matched '>'
+ */
+int TLeaveScanModel::GetRightTmpltParent(const string& aText,uint pos)
+{
+	int len = aText.size();
+		if(pos>=len)
+		{
+			return string::npos;
+		}
+	int parentCount = 1;
+	while(pos<len)
+		{
+			char curChar = aText[pos];
+			if(curChar=='<')
+			{
+				parentCount++;
+			}
+			else if (curChar=='>' )
+			{
+				parentCount--;
+				if(parentCount==0)
+				{
+					return pos;
+				}
+			}
+			pos++;
+		}
+		return string::npos;
+}
+
+/*
+ *Get the start and end position of a class
+ */
+list<ClassMeta> TLeaveScanModel::GetClass(const string& aFile)
+{
+	int len= aFile.size();
+	int startPos=0;
+	int nextClassPos=-1;
+	list<ClassMeta> classList;
+	//struct ,NONSHARABLE_CLASS,NONSHARABLE_STRUCT should be parsed to 'class' in pp stage
+	while((nextClassPos = aFile.find("class",startPos))!=string::npos)
+	{
+		
+
+		char classSuffix = aFile[nextClassPos+5]; //the char after class
+		if(classSuffix!=' '&& classSuffix!='\n' && classSuffix!='\r' && classSuffix!='\t'&& classSuffix!=':'&&classSuffix!='{')
+		{
+			nextClassPos++;
+			startPos=nextClassPos;
+			continue;
+		}
+		/*no use*/
+		/*
+		if(nextClassPos>0)
+		{
+			char classPrfix = aFile[nextClassPos-1];
+			if (classPrfix =='_' || (classPrfix>='a' && classPrfix<='z') || (classPrfix>='A' && classPrfix<='Z') || (classPrfix>='0' && classPrfix<='9'))
+			{
+				nextClassPos++;
+				startPos=nextClassPos;
+				continue;
+			}
+		}
+		*/
+		if(nextClassPos >0 )
+		{
+			char classPrefix = aFile[nextClassPos-1];
+			if(classPrefix!=' '&& classPrefix!='\n' && classPrefix!='\r' && classPrefix!='\t'&& classPrefix!='{'&& classPrefix!='>'&& classPrefix!='}')
+			{
+				nextClassPos++;
+				startPos=nextClassPos;
+				continue;
+			}
+		}
+		
+		//pattern: template< ...class...>
+		int checkTemplate = nextClassPos-1;
+		bool isTemplateClass = false;
+		while(checkTemplate >= 0)
+		{
+			char checkTempChar = aFile[checkTemplate];
+			if(checkTempChar==' '|| checkTempChar=='\n' || checkTempChar=='\r' ||checkTempChar=='\t')
+			{
+				checkTemplate --;
+			}
+			else if(checkTempChar=='>') //template<> class
+			{
+				break;
+			}
+			else if(checkTempChar=='<')
+			{
+				isTemplateClass =true;
+				break;
+			}
+			else if(checkTempChar==',') //template<typename a, class T>
+			{
+				isTemplateClass =true;
+				break;	
+			}
+			else
+			{
+				break;
+			}
+		}
+		if(isTemplateClass)
+		{
+			startPos = nextClassPos+1;
+			continue;
+		}
+
+		int classStart = GetLeftBracket(aFile,nextClassPos);
+		if(classStart==-1)
+		{
+			break;  //there is no more class-body, so we can break dircetly
+		}
+		//skip this pattern
+		//class a;
+		uint semiPos = aFile.find(";",nextClassPos);
+		//such as this pattern: 
+		//class a;
+		//class b{};
+		if(semiPos!=string::npos&&semiPos<classStart)
+		{
+			startPos = semiPos;
+			continue;
+		}
+
+		uint classEnd = GetRightBracket(aFile,classStart+1);
+		if(classEnd == -1)
+		{
+			classEnd = len-1;
+		}
+		
+		//get class name
+		int curClassNamePos = classStart-1;
+		char curClassChar = 0;
+		//find pattern:
+		//class a:publlc b{...
+		uint colonPos = aFile.find(":",nextClassPos);
+		while(colonPos!=string::npos && colonPos<curClassNamePos)
+		{
+			if(colonPos != string::npos && colonPos < classStart)
+			{
+				uint secondColonPos = aFile.find(":",colonPos+1);
+				if(secondColonPos != string::npos && secondColonPos!=(colonPos+1))
+				{
+					curClassNamePos = colonPos-1;
+					break;
+				}
+				else if(secondColonPos == string::npos)
+				{
+					curClassNamePos = colonPos-1;
+					break;
+				}
+				//find ::
+				else
+				{
+					colonPos = aFile.find(":",colonPos+2);
+				}
+			}
+		}
+		//skip white spaces
+		while(curClassNamePos >=  nextClassPos)
+		{
+			curClassChar = aFile[curClassNamePos];
+			if(curClassChar ==' ' || curClassChar =='\t' || curClassChar =='\n' ||curClassChar=='\r' ||curClassChar==')')
+			{
+				curClassNamePos--;
+			}
+			else
+			{
+				break;
+			}
+		}
+		int classNameEnd = curClassNamePos;
+		while(curClassNamePos>=nextClassPos)
+		{
+			curClassChar = aFile[curClassNamePos];
+			if(curClassChar ==' ' || curClassChar =='\t' || curClassChar =='\n' ||curClassChar=='\r'||curClassChar==':'||curClassChar=='(')
+			{
+				break;
+			}
+			else
+			{
+				curClassNamePos--;
+			}
+		}
+		int classNameStart = curClassNamePos+1; //cur is a blank
+		string curClassName = TrimString(aFile.substr(classNameStart,classNameEnd-classNameStart+1));
+		if (curClassName == "class")
+		{
+			curClassName = "anonymous-class";
+		}
+		ClassMeta curClass;
+		curClass.startPos=classStart;
+		curClass.endPos=classEnd;
+		curClass.className = curClassName;
+		classList.push_back(curClass);
+		startPos=nextClassPos+1;
+	}
+	return classList;
+}
+
+/*
+ * parse the class and check it
+ * */
+void TLeaveScanModel::CheckClass(const string& aText ,const string& aClassName , uint start,uint end)
+{
+	start=start+1;
+	int curPos = start;
+	end=end-1;
+	if(end<=start) return;
+	//int colonCount=0;
+	int curStart= curPos;
+	int curEnd = curStart;
+	int curType = E_NA;
+	int curLine = 0; // wrong!!!
+	int len = aText.size();
+	string functionHead="";
+	string functionArgu="";
+	string functionBody="";
+	string memberDef="";
+	
+	for(curPos = start;curPos<=end;curPos++)
+	{
+		char curChar = aText[curPos];
+		switch(curChar)
+		{
+		case ':':
+			if (aText[curPos+1]==':')//  a '::'
+			{
+				//skip second :
+				curPos+=1;
+			}
+			//such as ctor_init_list
+			else if(curType == E_MemberFunctionDecl || curType==E_MemberFunctionDef)
+			{
+				//nothing
+			}
+			else //such as "public:"  ->ignore
+			{
+				curStart = curPos+1;
+			}
+			break;
+		case '{':
+			if(curType ==E_MemberFunctionDecl )
+			{
+				curType = E_MemberFunctionDef;
+			}
+			else
+			{
+				curType = E_Enum;
+			}		
+			curEnd = GetRightBracket(aText,curPos+1);
+			functionBody = aText.substr(curPos,curEnd-curPos+1);
+			//check in class function
+			if(E_MemberFunctionDef==curType)
+			{
+				CheckInClassFunc(aText,aClassName,functionHead,curPos,curEnd);
+			}
+			curPos = curEnd;
+			curStart =curPos;
+			curType = E_NA;
+			break;
+		case '(':
+			curType = E_MemberFunctionDecl;
+			curEnd = GetRightParenthesis(aText,curPos+1);		
+			functionHead = aText.substr(curStart,curPos-curStart);
+			functionArgu = aText.substr(curPos,curEnd-curPos+1);
+			curPos = curEnd;
+			curStart =curPos;
+			
+			break;
+		case ';':
+			if(curType == E_NA)
+			{
+				curType = E_MemberData;
+			}
+			//check point
+			if (curType == E_MemberData)
+			{
+				memberDef = aText.substr(curStart,curPos-curStart);
+				if(memberDef.find("LCleanedup")!=string::npos)
+				{
+					iErrorString = "class "+aClassName+" defines a data member with LCleanedup* type.\n";
+					cout<<GetErrorLineHead(aText, curPos)<<iErrorString;	
+				}
+			}
+			else if(curType == E_MemberFunctionDecl)
+			{
+				string funcName = GetFunctNameFromFuncHead(functionHead);
+				string extraTypes="CDX";
+				bool isLeaver = false;
+				if (funcName[funcName.length()-1] == 'L' || 
+				      (funcName[funcName.length()-2] == 'L' && string::npos != extraTypes.find(funcName[funcName.length()-1]) ) )
+				{
+					isLeaver = true; // container is marked Leaver - used to return here
+				}
+				else if(IsLClassCtor(aClassName+"::"+funcName))
+				{
+					isLeaver = true;
+				}
+				else
+				    isLeaver = false; // container not marked Leaver
+				  
+				
+				if(functionHead.find("LString")!=string::npos ||functionHead.find("LData")!=string::npos)
+				{
+					iErrorString = aClassName+"::"+funcName+" returns LString/LData class.\n";
+					if(!isLeaver) cout<<GetErrorLineHead(aText, curPos)<<iErrorString;
+				}
+				if(functionArgu.find("LString")!=string::npos ||functionArgu.find("LData")!=string::npos)
+				{
+					iErrorString = aClassName+"::"+funcName+"  uses LString/LData class as parameter.\n";
+					if(!isLeaver) cout<<GetErrorLineHead(aText, curPos)<<iErrorString;
+				}
+			}
+			//set up next check
+			curStart = curPos;
+			curType =E_NA;
+			break;
+		case 'c':
+			//check if 'class' and skip the inner class
+			if (HasEnoughChar(curPos,len,5))
+			{
+				if ( aText[curPos+1]=='l' && aText[curPos+2]=='a'  && aText[curPos+3]=='s'  && aText[curPos+4]=='s' )
+				{
+					char delimiter = aText[curPos+5];
+					//exclude pattern: void classa ()
+					if (!((delimiter >='0' && delimiter <='9') || (delimiter>='a' && delimiter<='z') || (delimiter>='A' && delimiter<='Z') ||(delimiter=='_')))
+					{
+						delimiter = aText[curPos-1];
+						//exclude pattern: void aclass()
+						if(curPos>0 && !((delimiter >='0' && delimiter <='9') || (delimiter>='a' && delimiter<='z') || (delimiter>='A' && delimiter<='Z') ||(delimiter=='_')))
+						{
+							//pattern: template<class T> Ltemp(T x){}
+							uint templatePos = aText.find("template",curStart);
+							if(templatePos != string::npos && templatePos < curPos)
+							{
+								continue;
+							}
+							else
+							{
+								int tmpLeft = GetLeftBracket(aText,curPos+4);
+								int tempRight = GetRightBracket(aText,tmpLeft+1);
+								curPos = tempRight;
+								curStart = curPos;
+								curType = E_NA;
+							}
+						}
+					}
+					
+				}			
+			}
+			//ignore
+			break;
+		default:
+			//curPos++;
+			break;
+		}
+		//curPos++;
+	}
+}
+/*
+ * Is a ctor of L class
+ * */
+bool TLeaveScanModel::IsLClassCtor(const string& aName)
+{
+	
+	//if(aName[0]=='L'&&aName.find("::")!=string::npos)%
+	//{
+	//	return true;
+	//}
+	uint colonPos = aName.find("::");
+	if(colonPos == string::npos)
+	{
+		return false;
+	}
+	string s1 = aName.substr(0,colonPos);
+	string s2 = aName.substr(colonPos+2);
+	s1.erase(s1.find_last_not_of(" \t\n\r")+1);
+	s1.erase(0,s1.find_first_not_of(" \t\n\r"));
+
+	s2.erase(s2.find_last_not_of(" \t\n\r")+1);
+	s2.erase(0,s2.find_first_not_of(" \t\n\r"));
+	
+
+	uint tmpltPos = s1.find('<');
+	if(tmpltPos!=string::npos)
+	{
+		s1 = s1.substr(0,tmpltPos);
+	}
+	if(s1[0]!='L')
+	{
+		return false;
+	}
+	if(s1.find(s2)!=string::npos)
+	{
+		uint s1Len = s1.length();
+		uint s2Len = s2.length();
+		//s1=LAL
+		//s2=LA
+		if(s2Len>0 && s1Len > s2Len)
+		{
+			char diffChar = s1[s2Len];
+			if( (diffChar>='a' && diffChar<='z') || (diffChar>='A' && diffChar<='Z') 
+				||(diffChar>='0' && diffChar<='9') || (diffChar=='_'))
+			{
+				return false;
+			}
+		}
+		return true;
+	}
+	if(s2.find("operator")==0)
+	{
+		return true;
+	}
+	if(s2.find("new")==0)
+	{
+		return true;
+	}
+
+	return false;
+}
+/*
+* Is sometiing defined in class scope?
+*/
+bool TLeaveScanModel::IsInClassScope(uint pos)
+{
+	if (pos == string::npos)
+	{
+		return false;
+	}
+	list<ClassMeta>::iterator iter; 
+	for(iter=iClassList.begin();iter!=iClassList.end();iter++) 
+	{ 
+		if(iter->startPos<=pos && iter->endPos >= pos)
+		{
+			return true;
+		}
+	}
+	return false;
+
+}
+/*
+ * Try to get the function name from a function head
+ * */
+string TLeaveScanModel::GetFunctNameFromFuncHead(const string& aFuncHead)
+{
+	string funcName;
+	int len = aFuncHead.length();
+	int curPos=len-1;
+	char curChar;
+	int nameStart = -1;
+	int nameEnd;
+	//skip white spaces
+	while(curPos>=0)
+	{
+		curChar = aFuncHead[curPos];
+		if(curChar==' ' || curChar=='\t' ||curChar=='\n'||curChar=='\r')
+		{
+			curPos--;
+		}
+		else
+		{
+			break;
+		}	
+	}
+	if(curChar == '>')
+	{
+		int templateBalance = 1;
+		curPos--;
+		while(curPos>=0)
+		{
+			curChar = aFuncHead[curPos];
+			
+			if(curChar=='>')
+			{
+				templateBalance++;
+			}
+			else if(curChar =='<')
+			{
+				templateBalance--;
+			}
+			curPos--;
+			if(templateBalance==0)
+			{
+				break;
+			}
+			
+		}
+	}
+	if(curPos<=0) return "";
+	
+	nameEnd = curPos;
+	if(aFuncHead.find("operator")!=string::npos)
+	{
+		int tmpNameStart = aFuncHead.find("operator");
+		char delimiter = aFuncHead[tmpNameStart+8];
+		if (!((delimiter >='0' && delimiter <='9') || (delimiter>='a' && delimiter<='z') || (delimiter>='A' && delimiter<='Z') ||(delimiter=='_')))
+		{
+			if(tmpNameStart>0)
+			{
+				delimiter = aFuncHead[tmpNameStart-1];
+				if (!((delimiter >='0' && delimiter <='9') || (delimiter>='a' && delimiter<='z') || (delimiter>='A' && delimiter<='Z') ||(delimiter=='_')))
+				{
+					nameStart = tmpNameStart;
+				}
+			}
+			if(tmpNameStart==0)
+			{
+				nameStart = tmpNameStart;
+			}
+		}				
+	}
+	if(nameStart == -1)
+	{
+		while(curPos>=0)
+		{
+			curChar = aFuncHead[curPos];
+			if(curChar==' ' || curChar=='\t' ||curChar=='\n'||curChar=='\r'||curChar=='>')
+			{
+				nameStart = curPos+1;
+				if(nameStart<0)
+				{
+					nameStart = 0;
+				}
+				break;
+				
+			}
+			else
+			{
+				curPos--;
+			}	
+			
+		}
+		if(curPos<0)
+		{
+			nameStart = 0;
+		}
+	}
+	funcName = aFuncHead.substr(nameStart,nameEnd-nameStart+1);
+	return funcName;
+
+	
+}
+/*
+ * Get the Param string of a function decl
+ * aStart usually is the position of '{'
+ * */
+string TLeaveScanModel::GetFunctionParam(const string& aText, uint aStart)
+{
+	int curPos = aStart;
+	if(curPos == string::npos)
+	{
+			return "";
+	}
+	int leftParenthesis  = GetLeftParenthesis(aText, curPos);
+	int rightParenthesis = GetRightParenthesis(aText, leftParenthesis+1);
+	
+	if(leftParenthesis==string::npos || rightParenthesis==string::npos)
+	{
+		return "";
+	}
+	else if(rightParenthesis>leftParenthesis) 
+	{
+		return aText.substr(leftParenthesis+1, rightParenthesis-leftParenthesis-1);
+	}
+	return "";
+	
+	
+}
+
+/*Get the string from last member decl to aStart*/
+string TLeaveScanModel::GetFunctionHead(const string& aText, uint aStart)
+{
+	int curPos = aStart;
+	char curChar;
+	if(curPos==string::npos || curPos<=0)
+	{
+		return "";
+	}
+	while(curPos >= 0)
+	{
+		curChar = aText[curPos];
+		if(curChar == '{' || curChar == '}' || curChar == ';')
+		{
+			break;
+		}
+		curPos--;
+	}
+	if(curPos<0)
+	{
+		curPos = 0;
+	}
+        
+	int tempPos = string::npos;
+	if( (aText.rfind("public",aStart)!=string::npos)||(aText.rfind("protected",aStart))!=string::npos ||(aText.rfind("private",aStart))!=string::npos)
+	{
+		tempPos = aText.rfind(':',aStart);
+                 
+	}
+        if(tempPos>curPos)
+	{
+		curPos = tempPos;
+	}
+	return aText.substr(curPos,aStart-curPos);
+
+}
+/*Chech the function decl/define in a class*/
+void TLeaveScanModel::CheckInClassFunc(const string& aText , const string& aClassName, const string& aFuncName, uint start,uint end)
+{
+	bool isLeaver;
+	bool clean;
+	string funcName = TrimString(GetFunctNameFromFuncHead(aFuncName));
+	string qualifiedFuncName = aClassName+"::"+funcName;
+	clean = CheckFunc(aText, funcName, start, end, isLeaver);
+	bool isLCFunc =false;
+	if(funcName[funcName.length()-1] == 'C' && funcName[funcName.length()-2] == 'L')
+	{
+	    isLCFunc = true;
+	}
+	if (isLeaver) // was a leaving container(safe) and no leavers found
+	{
+	
+	    if (clean)
+	    {
+	    	iPositionOfError=0;
+	    	iErrorString = "Warning - " + funcName + " appears to contain no leavers.";
+	        ReportErrorLineAndString(start);	  
+	    }
+	    else if(isLCFunc)
+    	  {
+    	      
+			  uint lcleanedupPos = iErrorString.find("LCleanedup");
+			  if(lcleanedupPos!=string::npos)
+				{
+    	    	  uint callPos = iErrorString.find(" calls ");
+				  uint lcleanedupPosInFuncName = funcName.find("LCleanedup");
+				  if(callPos!=string::npos && lcleanedupPosInFuncName!=string::npos && lcleanedupPos<callPos)
+				  {;}
+				  else
+				  {
+					iErrorString = "LCleanedup class is used in a function suffixed LC";
+    	    		ReportErrorLineAndString(start);
+				  }
+				}
+    	  }
+
+	    // any leavers info can be supressed here since container was leaver
+	  }
+	  else // wasn't a leaving container 
+	  {
+	    if (!clean) // was dirty, so report
+	    	ReportErrorLineAndString(start);
+	  }
+};
+
+//
+// Some test functions (for when leavescan parses its own source code)
+//
+void TLeaveScanModel::Test1()
+{
+  Test2L();
+}
+
+void TLeaveScanModel::Test2L()
+{
+  Test1();
+}
+
+#define TEST2L Test2L
+void TLeaveScanModel::Test3()
+{
+  TEST2L();
+}
+
+void TLeaveScanModel::Test4()
+{
+  Test2L(); // qualify me
+};
+
+
+
+// warnings back to default levels
+//#pragma warning (pop) 
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/LET/case2tef.py	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,200 @@
+#!/usr/bin/python
+import string
+import sys
+import os
+import re
+import time
+import sys
+import csv
+
+class TestcaseConfig:
+	def __init__(self):
+		self.desc =''
+		self.option =''
+		self.expect =''
+		self.warnItems =[]
+		self.author = ''
+		self.type = ''
+		self.date =''
+	def printSelf(self):
+		print 'desc:'+self.desc
+		print 'option:'+self.option
+		print 'author:'+self.author
+		print 'type:'+self.type
+		print 'date:'+self.date
+		print 'expect:'+self.expect
+		print 'check:'
+		for warnItem in self.warnItems:
+			print '	line:'+str(warnItem.line)
+			printType = 0;
+			if len(warnItem.checkExist)>0:
+				print '		checkExist'
+				printType +=1;
+				for checkWord in warnItem.checkExist:
+					print '				'+checkWord
+			if len(warnItem.checkNoExist)>0:
+				print '		checkNoExist'
+				printType +=1;
+				for checkWord in warnItem.checkNoExist:
+					print '				'+checkWord
+			if printType == 0:
+
+				print  '	nothing to check'
+
+class CheckPoint:
+	def __init__(self):
+		self.line = -1
+		self.checkExist=[]
+		self.checkNoExist=[]
+	def setCheckPoint(self,warnString):
+		warnString=warnString.strip()
+		if len(warnString)<=0:
+			return 
+		keywordList = warnString.split(',')
+		for keyword in keywordList:
+			keyword = keyword.strip()
+			if keyword[0]=='+':
+				self.checkExist.append(keyword[1:])
+			elif keyword[0]=='-':
+				self.checkNoExist.append(keyword[1:])
+			else:
+				self.checkExist.append(keyword)
+
+	def toString(self):
+		printType = 0;
+		res=''
+		res = res+'line:'+ str(self.line)+'\n'
+		if len(self.checkExist)>0:
+			res =res + '		checkExist\n'
+			printType +=1;
+			for checkWord in self.checkExist:
+				res =res+ '				'+checkWord+'\n'
+		if len(self.checkNoExist)>0:
+			res =res+ '		checkNoExist\n'
+			printType +=1;
+			for checkWord in self.checkNoExist:
+				res=res+ '				'+checkWord+'\n'
+		if printType == 0:
+			res=res+  '	nothing to check\n'
+		return res
+
+def get_case_name(value):
+	while value.find('\\\\') != -1:
+        	value = value.replace('\\\\', '\\')
+        	continue
+	while value.find('//') != -1:
+		value = value.replace('//', '\\')
+        	continue
+        while value.find('/') != -1:
+            	value = value.replace('/', '\\')
+            	continue
+	pos = value.rfind('\\')
+	value =  value[pos+1:]
+	pos = value.find('.')
+	return value[:pos]
+
+def get_testcase_config(fileName):
+	file = open(fileName,"r")
+	fileLine = 0
+	testcaseConfig = TestcaseConfig()
+	for line in file.readlines():
+		if not line.endswith('\\'):
+			fileLine += 1
+		line = line.strip()
+		scommnet = line.find('//')
+		if scommnet == 0:
+			if (line.find('desc:'))>0:
+				desc = line[line.find('desc:')+5:].strip()
+				testcaseConfig.desc=desc
+			elif line.find('option:')>0:
+				option = line[line.find('option:')+7:].strip()
+				testcaseConfig.option=option
+			elif line.find('expect file:')>0:
+				expect = line[line.find('expect file:')+12:].strip()
+				#get the content of the file
+				data = open(expect,"r")
+				for dataline in data.readlines():
+					testcaseConfig.expect += dataline
+			elif line.find('expect:')>0:
+				expect = line[line.find('expect:')+7:].strip()
+				testcaseConfig.expect=expect
+			elif line.find('author:')>0:
+				expect = line[line.find('author:')+7:].strip()
+				testcaseConfig.author=expect
+			elif line.find('type:')>0:
+				expect = line[line.find('type:')+5:].strip()
+				testcaseConfig.type=expect
+			elif line.find('date:')>0:
+				expect = line[line.find('date:')+5:].strip()
+				testcaseConfig.date=expect
+
+		if scommnet >=0:
+			line =line[scommnet+2:]
+			if line.find('check:')>=0:
+				line = line[line.find('check:')+6:].strip()
+				warnItem = CheckPoint()
+				warnItem.setCheckPoint(line)
+				warnItem.line = fileLine
+				testcaseConfig.warnItems.append(warnItem)
+	return testcaseConfig
+
+
+def comment_string(value):
+	lines = value.splitlines()
+	result = ''
+	for line in lines:
+		if line.find('@SYM')==0:
+			result += '//! ' + line+'\n'
+		else:	
+			result += '//!                           ' + line+'\n'
+	return result
+
+if __name__ == '__main__':
+	argv = sys.argv[1:]
+	if len(argv) >=1:
+		input_file_name = argv[0]
+	else:
+		print 'case2tef file_list_file'
+	if input_file_name == '-':
+		input_file = sys.stdin 
+	elif os.path.exists(input_file_name) and os.path.isfile(input_file_name):
+		input_file = open(input_file_name)
+	else:
+		input_file = None
+	if not input_file == None:
+		lines = input_file.readlines()
+		for line in lines:
+			while line.find('\n') != -1:
+        			line = line.replace('\n', '')
+        			continue
+
+			testcase_config =get_testcase_config(line)
+			case_name = get_case_name(line)
+			res = 'START_TESTCASE                '+case_name+'\n'
+			body = '@SYMTestCaseID            '    +case_name+'\n'
+			body+= '@SYMTestCaseDesc          '    +testcase_config.desc+'\n'
+			body+= '@SYMTestPriority          '    +'HIGH'+'\n'
+			body+= '@SYMTestActions           '    +'run LeaveScan command line'
+			if not testcase_config.option=='':
+				body+=' with option:'+testcase_config.option
+			body+='\n'
+			body+= '@SYMTestExpectedResults   '    +'Check the follwing:'+'\n'
+			if not testcase_config.expect=='':
+				body+='Output is:\n'
+				body+=testcase_config.expect+'\n'
+			if len(testcase_config.warnItems)>0:
+				body+='check the keyword of output\n'
+				for warnItem in testcase_config.warnItems:
+					body+= warnItem.toString()
+			body+= ''
+			body+= '@SYMTestType              '    +testcase_config.type+'\n'
+			body+= '@SYMCreationDate          '    +testcase_config.date+'\n'
+			body+= '@SYMAuthor                '    +testcase_config.author+'\n'
+			res += comment_string(body)
+			res += 'END_TESTCASE                  '+case_name+'\n'
+			res += '\n'
+			print res
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/LET/fl.py	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,62 @@
+#!/usr/bin/python
+import string
+import sys
+import os
+from os import listdir
+from os.path import isdir
+
+
+dir_path=['.']
+
+os_type = 'unix'
+if sys.platform.lower().startswith('win'):
+    os_type = 'windows'
+
+TRUE = 1
+FALSE = 0
+
+def correct_slashes(value):
+    """
+    This module corrects slashes in pathnames supplied to it.
+    """
+
+    while value.find('\\\\') != -1:
+        value = value.replace('\\\\', '\\')
+        continue
+
+    while value.find('//') != -1:
+        value = value.replace('//', '/')
+        continue
+    if os_type == 'windows' and '/' in value:
+        while value.find('/') != -1:
+            value = value.replace('/', '\\')
+            continue
+    return value
+
+def filter(file_name):
+	if file_name.endswith('.cpp'):
+		return TRUE
+	else:
+		return FALSE
+
+def print_files(dir_path):
+	if not os.path.exists(dir_path):
+		return
+	file_list = os.listdir(dir_path)
+	for cur_file in file_list:
+		if cur_file.endswith('\\') or cur_file.endswith('/'):
+			cur_file = dir_path+cur_file
+		else:
+			cur_file = dir_path+'\\'+cur_file	
+		if not os.path.isdir(cur_file):
+			if os.path.exists(cur_file) and filter(cur_file)== TRUE:
+				print correct_slashes(cur_file)
+		else:
+			print_files(cur_file)
+
+if __name__ == '__main__':
+	argv = sys.argv[1:]
+	if len(argv) >0:
+		dir_path = argv
+	for cur_path in dir_path:
+		print_files(os.path.abspath(cur_path))
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/LET/initcase.py	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,63 @@
+import time
+import sys
+import os
+from os.path import isdir
+def getCurTime():
+	curTime = time.localtime()
+	return str(curTime[0])+"-"+str(curTime[1])+"-"+str(curTime[2])+" "+str(curTime[3])+":"+str(curTime[4])+":"+str(curTime[5])
+
+def getForamtIndex(index):
+	if index<0:
+		return '000'
+	elif index<10:
+		return '00'+str(index)
+	elif index<100:
+		return '0'+str(index)
+	else:
+		return str(index)
+if __name__ == '__main__':
+	#init
+	cur_time = getCurTime()
+	type = 'CT'
+	USAGE = 'initcase outputdir name copies author'
+	copies = 10
+	args = sys.argv[1:]
+	args_len = len(args)
+	ok  = True
+	if args_len >= 3:
+		output_dir = args[0]
+		name = args[1]
+		copies = int(args[2])
+		if args_len>3:
+			author = args[3]
+		else:
+			author = 'Bolow'
+	else:
+		print USAGE
+
+	
+	#dir
+	if not os.path.exists(output_dir):
+		#mkdir
+		os.makedirs(output_dir)
+
+	elif not os.path.isdir(output_dir):
+		print output_dir, 'is not a dir'
+		ok = False
+	if ok:
+		index = 0
+		while copies>0:
+			copies=copies-1
+			index = index + 1
+			outfile_name = output_dir+'\\'+name+'-'+getForamtIndex(index)+'.cpp'
+			print outfile_name
+			outfile = open(outfile_name,"w")
+			outfile.write ( '//desc:\n' )
+			outfile.write ( '//option:\n' )
+			outfile.write ('//date:'+cur_time+'\n')
+			outfile.write ('//author:'+author+'\n')
+			outfile.write ('//type: CT\n')
+			outfile.close()
+			
+	
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/LET/let.py	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,345 @@
+#!/usr/bin/python
+import string
+import sys
+import os
+from os import listdir
+from os.path import isdir
+import time
+from optparse import OptionParser
+
+#config
+LEAVESCAN = 'D:\leavescan.exe '
+
+os_type = 'unix'
+if sys.platform.lower().startswith('win'):
+    os_type = 'windows'
+
+class TestResult:
+	def __init__(self):
+		self.allOutput=""
+		self.lines={}
+
+	def setAllOutput(self,allOuptput):
+		self.allOuptput = allOuptput
+
+	def parseLines(self):
+		tmp_lines=self.allOuptput.splitlines()
+		for tmp_line in tmp_lines:
+			line_no = getLeaveScanMsgLine(tmp_line)
+			self.lines[line_no]=tmp_line
+
+	def checkResult(self,warnItems):
+		result = ''
+		ok=0
+		for warnItem in warnItems:
+			warnLine = warnItem.line
+			if not warnItem.semi:
+				if self.lines.has_key(warnLine):
+					outputLine = self.lines[warnLine]
+					for keyword in warnItem.checkExist:
+						if outputLine.find(keyword)<0:
+							result= result+ 'CHECK:"'+keyword+'" is expected in the output:"'+outputLine+'"\n'
+							ok=1
+					for keyword in warnItem.checkNoExist:
+						if outputLine.find(keyword)>=0:
+							result= result+ 'CHECK:"'+keyword+'" is expected not in the output:"'+outputLine+'"\n'
+							ok=1
+				else:
+					for keyword in warnItem.checkExist:
+						result= result+ 'CHECK:"'+keyword+'" is expected in the output of line'+str(warnLine)+'\n'
+						ok = 1
+			else:
+				if self.lines.has_key(warnLine):
+					outputLine = self.lines[warnLine]
+					for keyword in warnItem.checkExist:
+						if outputLine.find(keyword)>=0:
+							result= result+ 'SEMI:"'+keyword+'" is expected in the output:"'+outputLine+'"\n'
+							ok=1
+					for keyword in warnItem.checkNoExist:
+						if outputLine.find(keyword)<0:
+							result= result+ 'SEMI:"'+keyword+'" is expected not in the output:"'+outputLine+'"\n'
+							ok=1
+				else:
+					for keyword in warnItem.checkNoExist:
+						result= result+ 'SEMI:"'+keyword+'" is expected in the output of line'+str(warnLine)+'\n'
+						ok = 1
+
+
+		if ok==0:
+			return 'OK'
+		else:
+			return result;
+
+class CheckPoint:
+	def __init__(self):
+		self.line = -1
+		self.checkExist=[]
+		self.checkNoExist=[]
+		self.semi = False
+	def setCheckPoint(self,warnString,semi = False):
+		warnString=warnString.strip()
+		if len(warnString)<=0:
+			return 
+		keywordList = warnString.split(',')
+		for keyword in keywordList:
+			keyword = keyword.strip()
+			if len(keyword)>0:
+				if keyword[0]=='+':
+					self.checkExist.append(keyword[1:])
+				elif keyword[0]=='-':
+					self.checkNoExist.append(keyword[1:])
+				else:
+					self.checkExist.append(keyword)
+		self.semi = semi
+
+	def printSelf(self):
+		printType = 0;
+		print 'line:'+ str(self.line)
+		if len(self.checkExist)>0:
+			print '		checkExist'
+			printType +=1;
+			for checkWord in self.checkExist:
+				print '				'+checkWord
+		if len(self.checkNoExist)>0:
+			print '		checkNoExist'
+			printType +=1;
+			for checkWord in self.checkNoExist:
+				print '				'+checkWord
+		if printType == 0:
+			print  '	nothing to check'
+
+
+
+class TestcaseConfig:
+	def __init__(self):
+		self.desc =''
+		self.option =''
+		self.expect =''
+		self.warnItems =[]
+		self.author = ''
+		self.type = ''
+		self.date =''
+	def printSelf(self):
+		print 'desc:'+self.desc
+		print 'option:'+self.option
+		print 'author:'+self.author
+		print 'type:'+self.type
+		print 'date:'+self.date
+		print 'expect:'+self.expect
+		print 'check:'
+		for warnItem in self.warnItems:
+			print '	line:'+str(warnItem.line)
+			printType = 0;
+			if len(warnItem.checkExist)>0:
+				print '		checkExist'
+				printType +=1;
+				for checkWord in warnItem.checkExist:
+					print '				'+checkWord
+			if len(warnItem.checkNoExist)>0:
+				print '		checkNoExist'
+				printType +=1;
+				for checkWord in warnItem.checkNoExist:
+					print '				'+checkWord
+			if printType == 0:
+
+				print  '	nothing to check'
+
+
+
+def getTestcaseConfig(fileName):
+	file = open(fileName,"r")
+	fileLine = 0
+	testcaseConfig = TestcaseConfig()
+	for line in file.readlines():
+		if not line.endswith('\\'):
+			fileLine += 1
+		line = line.strip()
+		scommnet = line.find('//')
+		if scommnet == 0:
+			if (line.find('desc:'))>0:
+				desc = line[line.find('desc:')+5:].strip()
+				testcaseConfig.desc=desc
+			elif line.find('option:')>0:
+				option = line[line.find('option:')+7:].strip()
+				testcaseConfig.option=option
+			elif line.find('expect file:')>0:
+				expect = line[line.find('expect file:')+12:].strip()
+				#get the content of the file
+				data = open(expect,"r")
+				for dataline in data.readlines():
+					testcaseConfig.expect += dataline
+			elif line.find('expect:')>0:
+				expect = line[line.find('expect:')+7:].strip()
+				testcaseConfig.expect=expect
+			elif line.find('author:')>0:
+				expect = line[line.find('author:')+7:].strip()
+				testcaseConfig.author=expect
+			elif line.find('type:')>0:
+				expect = line[line.find('type:')+5:].strip()
+				testcaseConfig.type=expect
+			elif line.find('date:')>0:
+				expect = line[line.find('date:')+5:].strip()
+				testcaseConfig.date=expect
+
+		if scommnet >=0:
+			line =line[scommnet+2:]
+			if line.find('check:')>=0:
+				line = line[line.find('check:')+6:].strip()
+				warnItem = CheckPoint()
+				warnItem.setCheckPoint(line)
+				warnItem.line = fileLine
+				testcaseConfig.warnItems.append(warnItem)
+			elif line.find('semi:')>=0:
+				line = line[line.find('semi:')+5:].strip()
+				warnItem = CheckPoint()
+				warnItem.setCheckPoint(line,True)
+				warnItem.line = fileLine
+				testcaseConfig.warnItems.append(warnItem)
+
+				
+	return testcaseConfig
+
+def execute(filename , option):
+	commandLine = LEAVESCAN + option + ' ' +filename
+	output=''
+	for outputLine in os.popen(commandLine).readlines():
+		output += outputLine
+	return output
+	
+def analysis(result,testcaseConfig):
+	"""
+	no use in the version
+	for expect keyword
+	"""
+	if not testcaseConfig.expect=='':
+		if testcaseConfig.expect == result:
+			return 1;
+		else:
+			print testcaseConfig.expect
+			if DEBUG:
+				print '------'
+				print result 
+				print '========'
+			return 0;
+
+	
+def excuteCmd(cmdLine):
+	i, o = os.popen4(cmdLine)
+   	i.close()
+    	out = o.read()
+    	o.close()
+	return out
+
+
+def getLeaveScanMsgLine(line):
+	p1=line.find('(')
+	if(p1<0):
+		return -2
+	p2=line.find(')')
+	if(p2<2):
+		return -2
+	return int(line[p1+1:p2])
+
+def getFormatTime():
+	curTime = time.localtime()
+	return str(curTime[0])+"_"+str(curTime[1])+"_"+str(curTime[2])+"_"+str(curTime[3])+"_"+str(curTime[4])+"_"+str(curTime[5])
+
+def getCurTime():
+	curTime = time.localtime()
+	return "'"+str(curTime[0])+"-"+str(curTime[1])+"-"+str(curTime[2])+" "+str(curTime[3])+":"+str(curTime[4])+":"+str(curTime[5])+".000000'"
+
+def getTestcaseName(fileName):
+	fileNameList = os.path.splitext(fileName) 
+	return fileNameList[len(fileNameList)-2]
+
+def runTest(testFile,logFile,reportFile):
+	testcaseConfig = getTestcaseConfig(testFile)
+	cmdString = LEAVESCAN+testcaseConfig.option+' '+testFile
+	logFile.write(cmdString+'\n')
+	startTime = getCurTime()
+	result = excuteCmd(cmdString)
+	endtime = getCurTime()
+	logFile.write(result+'\n')
+
+	lr = TestResult()
+	lr.setAllOutput(result)
+	lr.parseLines()
+	
+	result=lr.checkResult(testcaseConfig.warnItems)
+	testcaseResult = 'PASS' # for csv file
+	if not result=='OK':
+		logFile.write('ERROR:'+testFile+'\n')
+		logFile.write('DETAIL:'+'\n')
+		logFile.write(result)
+		testcaseResult = 'FAILTURE'
+		print testcaseResult+':'+testFile
+
+	else:
+		logFile.write('PASS\n')
+	
+	reportFile.write(getTestcaseName(testFile)+','+startTime+','+endtime+','+testcaseResult+'\n')
+	if result=='OK':
+		return 1
+	else:
+		return 0
+
+
+if __name__ == '__main__':
+	#pass argu
+	testFileList=[]
+	optParser = OptionParser('let -f file_list -o output_dir')
+	optParser.add_option("-f","--file",action = "store",type = "string",dest = "fileListName")
+	optParser.add_option("-o","--outputdir",action = "store",type = "string",dest = "outputName")
+	optParser.add_option("","--std-in",action = "store_true",dest = "listFromStdin",default =False)
+	optParser.add_option("-e","--execute",action = "store",type="string", dest = "exePath", default="")
+	options, args = optParser.parse_args(sys.argv[1:])
+	#check exe exsitence
+	if not options.exePath == "":
+		if os.path.exists(options.exePath):
+			LEAVESCAN = options.exePath+" "
+		else:
+			print "WARN-"+options.exePath+" dosen't exist"
+			print "WARN-will use default config:"+LEAVESCAN
+	if not os.path.exists(LEAVESCAN.strip()):
+		print "WARN-please set Leavescan's address"
+	else:
+		fileListName = options.fileListName
+		outputDirName = options.outputName
+		if not os.path.exists(outputDirName):
+			os.makedirs(outputDirName)
+		#get each testcase in the list 
+		pwd=os.getcwd()+'\\'
+		if options.listFromStdin :
+			listFile = sys.stdin
+		else:
+			listFile = open(fileListName,'r')
+
+		for curFile in listFile.readlines():
+			curFile=curFile.strip()
+			if(curFile.find('#')==0):
+				1+1
+			elif os.path.exists(curFile):
+				testFileList.append(curFile)
+			else:
+				print 'WARN-file '+curFile+ 'doesn\'t exist.ignore'
+		#other config
+		DEBUG = 0;
+		totalRun=0;
+		totalPass=0;
+		logFileName = outputDirName+'\\'+getFormatTime()+'.log'
+		reportFileName = outputDirName+'\\'+getFormatTime()+'.csv'
+		logFile = open(logFileName,'w')
+		reportFile = open(reportFileName,'w')
+		reportFile.write('TestCaseId,StartTime,EndTime,Result\n')
+
+		for testFileName in testFileList:
+		#test it
+			totalRun+=1;
+			totalPass+=runTest(testFileName,logFile,reportFile)
+		#summary
+		print 'RSLT-Total:'+str(totalRun)+';Pass:'+str(totalPass)
+		#environment
+		logFile.close()
+		reportFile.close()
+	
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/LET/logdiff.py	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,80 @@
+import sys
+import os
+from os import listdir
+from os.path import isdir
+import csv
+
+def check_argv(name):
+	if not os.path.exists(name):
+		print name,' doesn\'t exist.'
+		return False
+	if not os.path.isdir(name):
+		print name,' is not a dir.'
+		return False
+	file_list = os.listdir(name)
+	properDir = False
+	for current_file in file_list:
+		if current_file.endswith('.csv'):
+			properDir =True
+			break
+	if not properDir:
+		print name,' is not a LET log dir'
+		return False
+	return True
+
+def find_logfile(name):
+	file_list = os.listdir(name)
+	for current_file in file_list:
+		if current_file.endswith('.csv'):
+			return name+'\\'+current_file	
+	return None
+
+
+def get_result_map(csvfile):
+	map = {}
+	file = open(csvfile,"r")
+	lines = csv.reader(file)
+	skip_file_line = True
+	for line in lines:
+		if skip_file_line:
+			skip_file_line=False
+		else:
+			case_name = line[0]
+			test_result = line[3]
+			if map.has_key(case_name):
+				print 'Duplicate casename:',case_name,' ignored'
+			else:
+				map[case_name] = test_result
+	return map
+
+def diff_result(map_old, map_new):
+	keys_new = map_new.keys()
+	for key_new in keys_new:
+		item_new = map_new[key_new]
+		value_new = item_new
+		if map_old.has_key(key_new):
+			value_old = map_old[key_new]
+			if not value_old == value_new:
+				print 'CHANGE:',key_new,value_old,'-->',value_new
+		else:
+			print 'ADD:',key_new,value_new
+	keys_old = map_old.keys()
+	for key_old in map_old:
+		item_old = map_old[key_old]
+		value_old = item_old
+		if not map_new.has_key(key_old):
+			print 'REMOVE:',key_old,value_old
+
+if __name__ == '__main__':
+	argv = sys.argv[1:]
+	if len(argv)<2:
+		print 'usage: logdiff base_log_dir derived_log_dir'
+	else :
+		old_file = argv[0]
+		new_file = argv[1]
+		if check_argv(old_file) and check_argv(new_file):
+			new_map = get_result_map(find_logfile(new_file))
+			old_map = get_result_map(find_logfile(old_file))
+			diff_result(old_map,new_map)
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/LET/readme.txt	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,12 @@
+LET = LEave Test-framework
+
+
+fl:  a cpp filelist
+fl (dir1)?
+
+let: main testframework
+let -f cpp_file_list -o log_dir
+let --std-in -o log_dir
+
+logdiff: print the changes between to log dir
+logdiff log_dir_1 log_dir_2
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/PCT-LeaveScan-DEF129216-001.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,12 @@
+//desc:test hang-->"classA"
+//option:
+//date:2008-10-121 15:58:10
+//author:bolowy
+//type: CT
+
+void func()
+{
+	T a;
+	a.fooL(classA); //check:func,leave
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/PCT-LeaveScan-DEF129216-002.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,12 @@
+//desc:test hang-->"classA"
+//option:
+//date:2008-10-121 15:58:10
+//author:bolowy
+//type: CT
+
+void func()
+{
+	T a;
+	a.fooL(aclass); //check:func,leave
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/PCT-LeaveScan-DEF129771-01.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc:test new(ELeave) call in leave function of LS3
+//option:
+//date:2008-10-31 15:58:1
+//author:pingorliu
+//type: CT
+
+void funcL()
+{
+	new(ELeave)CL(); //check:-func,-ELeave
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/PCT-LeaveScan-DEF129771-02.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc:test new(ELeave) call in leave function LC of LS3
+//option:
+//date:2008-10-31 15:58:1
+//author:pingorliu
+//type: CT
+
+void funcLC()
+{
+	new(ELeave)CL(); //check:-func,-ELeave
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/PCT-LeaveScan-DEF129771-03.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,20 @@
+//desc:test User::LeaveIfError function call in a leave member template function of a class for LS3
+//option:
+//date:2008-10-31 15:58:1
+//author:pingorliu
+//type: CT
+
+
+class temp
+{
+void funcL(TInt x)
+{
+	fxx();
+}
+template<class T>
+void funcL()
+{
+	
+	User::LeaveIfError(); //check:-func,-calls,-Leave
+}
+};
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/PCT-LeaveScan-DEF129771-04.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc:test new(ELeave) call in leave function LD of LS3
+//option:
+//date:2008-10-31 15:58:1
+//author:pingorliu
+//type: CT
+
+void funcLD()
+{
+	new(ELeave)CL(); //check:-func,-ELeave
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/PCT-LeaveScan-DEF129771-05.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,20 @@
+//desc:test User::LeaveIfError function call in a leave member template function LX of a class for LS3
+//option:
+//date:2008-10-31 15:58:1
+//author:pingorliu
+//type: CT
+
+
+class temp
+{
+void funcL(TInt x)
+{
+	fxx();
+}
+template<class T>
+void funcLX()
+{
+	
+	User::LeaveIfError(); //check:-func,-calls,-Leave
+}
+};
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/PCT-LeaveScan-DEF129771-06.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc:test new(ELeave) call in leave function LX of LS3
+//option:
+//date:2008-10-31 15:58:1
+//author:pingorliu
+//type: CT
+
+void funcLX()
+{
+	new(ELeave)CL(); //check:-func,-ELeave
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/PCT-LeaveScan-DEF129771-07.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,20 @@
+//desc:test User::LeaveIfError function call in a leave member template function LC of a class for LS3
+//option:
+//date:2008-10-31 15:58:1
+//author:pingorliu
+//type: CT
+
+
+class temp
+{
+void funcL(TInt x)
+{
+	fxx();
+}
+template<class T>
+void funcLC()
+{
+	
+	User::LeaveIfError(); //check:-func,-calls,-Leave
+}
+};
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/PCT-LeaveScan-DEF129771-08.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,20 @@
+//desc:test User::LeaveIfError function call in a leave member template function LD of a class for LS3
+//option:
+//date:2008-10-31 15:58:1
+//author:pingorliu
+//type: CT
+
+
+class temp
+{
+void funcL(TInt x)
+{
+	fxx();
+}
+template<class T>
+void funcLD()
+{
+	
+	User::LeaveIfError(); //check:-func,-calls,-Leave
+}
+};
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/PCT-LeaveScan-DEF129771-09.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc:test L leave function LD call of LS1
+//option:
+//date:2008-10-31 15:58:1
+//author:pingorliu
+//type: CT
+
+void funcLX()
+{
+	fooLD(); //check:-func,-leave
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/PCT-LeaveScan-DEF129771-10.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc:test LD leave function call of LS1
+//option:
+//date:2008-10-31 15:58:1
+//author:pingorliu
+//type: CT
+
+void funcL()
+{
+	fooLD(); //check:-func,-leave
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/PCT-LeaveScan-DEF129771-11.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc:test L leave function call of LS1
+//option:
+//date:2008-10-31 15:58:1
+//author:pingorliu
+//type: CT
+
+void funcLC()
+{
+	fooL(); //check:-func,-leave
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/PCT-LeaveScan-DEF129771-12.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc:test L leave function LD call of LS1
+//option:
+//date:2008-10-31 15:58:1
+//author:pingorliu
+//type: CT
+
+void funcLD()
+{
+	fooL(); //check:-func,-leave
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-129216-001.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:test warning message:Call->call
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+void func()
+{
+	fooL(); //check:calls
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-129216-002.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:test warning message:Call->call
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+void func()
+{
+	fooLC(); //check:calls
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-129216-003.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:test warning message:Call->call
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+void func()
+{
+	new(ELeave)B(); //check:calls
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-129216-004.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:test warning message:Call->call
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+void func()
+{
+	foo() OR_LEAVE; //check:calls
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-129216-005.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:test warning message:Uses->uses
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+void func()
+{
+	LCleanedupXXX a;  //check:uses
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-129216-006.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc:test warning message:Uses->uses
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+void func()
+{
+	LString8 a; //check:use
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-129216-007.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:test warning message:Uses->uses
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+void func()
+{
+	LData a; //check:uses
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-129216-008.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:test warning message:Uses->uses
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+void func()
+{
+	LManagedXXX a; //check:uses
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-129216-009.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:test warning message:Call->call
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+void func()
+{
+	User::Leave(); //check:calls
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-129216-010.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,32 @@
+//desc:test warning message:Uses->uses
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+void func()
+{
+	LCleanedup a; 
+	CClass::NewLC();//check:uses
+}
+
+void func2()
+{
+	TRAP(CClass::NewLC());//check:uses
+	LCleanedup a; 
+}
+
+void func3LC()
+{
+	LCleanedup a; 
+	CClass::NewLC();//check:uses
+}
+
+void func4LC()
+{
+	LCleanedup a;
+	CClass::NewLC();//check:uses
+}
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-129216-011.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,12 @@
+//desc:test warning message:appears
+////option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+void funcL()
+{//check:appears
+
+	foo(); 
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-129216-012.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,13 @@
+//desc:test warning message:Call->call
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+class a
+{
+void func()
+{
+	fooL(); //check:calls
+}
+};
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-129216-013.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,12 @@
+//desc:test warning message:Call->call
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+class a
+{
+void func()
+{
+	fooLC(); //check:calls
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-129216-014.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,14 @@
+//desc:test warning message:Call->call
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+class a
+{
+	void func()
+	{
+		new(ELeave)B(); //check:calls
+	}
+};
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-129216-015.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,13 @@
+//desc:test warning message:Call->call
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+class a{
+void func()
+{
+	foo() OR_LEAVE; //check:calls
+}
+};
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-129216-016.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,14 @@
+//desc:test warning message:Uses->uses
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+class a
+{
+void func()
+{
+	LCleanedupXXX a;  //check:uses
+}
+};
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-129216-017.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,13 @@
+//desc:test warning message:Uses->uses
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+class a
+{
+void func()
+{
+	LString8 a; //check:use
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-129216-018.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,14 @@
+//desc:test warning message:Uses->uses
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+class a
+{
+	void func()
+	{
+		LData a; //check:uses
+	}
+};
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-129216-019.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,14 @@
+//desc:test warning message:Uses->uses
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+class a
+{
+	void func()
+	{
+		LManagedXXX a; //check:uses
+	}
+};
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-129216-020.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,14 @@
+//desc:test warning message:Call->call
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+class a
+{
+	void func()
+	{
+		User::Leave(); //check:calls
+	}
+};
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-129216-021.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,34 @@
+//desc:test warning message:Uses->uses
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+class
+{
+void func()
+{
+	LCleanedup a; 
+	CClass::NewLC();//check:uses
+}
+
+void func2()
+{
+	TRAP(CClass::NewLC());//check:uses
+	LCleanedup a; 
+}
+
+void func3LC()
+{
+	LCleanedup a; 
+	CClass::NewLC();//check:uses
+}
+
+void func4LC()
+{
+	LCleanedup a; 
+	CClass::NewLC();//check:uses
+}
+};
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-129216-022.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,13 @@
+//desc:test warning message:appears
+////option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+class a
+{
+void funcL()
+{//check:appears
+	foo(); 
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-129216-023.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc:test warning message:uses
+////option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+class a
+{
+	LCleanedupPtr<CBaz> iBaz;//uses
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-129216-024.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,45 @@
+//desc:test warning message:Returns->returns
+////option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+class a
+{
+int i;
+LData func(int a)//check:return
+{
+	foo(); 
+}
+void func2(LData a)//check:uses
+{
+	foo();
+}
+LString func3(int a)//check:return
+{
+	foo(); 
+}
+void func4(LString a)//check:uses
+{
+	foo();
+}
+
+};
+
+LData func5(int a)//check:return
+{
+	foo(); 
+}
+void func6(LData a)//check:uses
+{
+	foo();
+}
+LString func7(int a)//check:return
+{
+	foo(); 
+}
+void func8(LString a)//check:uses
+{
+	foo();
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132384-001.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:keyword:operator
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+void xoperatory()
+{
+	fooL(); //check:xoperatory
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132384-002.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:keyword:operator
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+void xoperator()
+{
+	fooL(); //check:xoperator
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132384-003.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:keyword:operator
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+void operatory()
+{
+	fooL(); //check:operatory
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132384-004.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:keyword:operator
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+void operator1()
+{
+	fooL(); //check:operator1
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132384-005.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:keyword:operator
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+void operatory0()
+{
+	fooL(); //check:operatory0
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132384-006.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:keyword:operator
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+void operator9()
+{
+	fooL(); //check:operator9
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132384-007.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:keyword:operator
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+void operatora()
+{
+	fooL(); //check:operatora
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132384-008.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:keyword:operator
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+void operatorz()
+{
+	fooL(); //check:operatorz
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132384-009.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:keyword:operator
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+void operator_()
+{
+	fooL(); //check:operator_
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132384-010.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:keyword:operator
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+void aoperator()
+{
+	fooL(); //check:aoperator
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132384-011.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:keyword:operator
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+void zoperator()
+{
+	fooL(); //check:zoperator
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132384-012.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:keyword:operator
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+void _operator()
+{
+	fooL(); //check:_operator
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132384-013.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:keyword:operator
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+void xoperatory()
+{
+	fooL(); //check:xoperatory
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132384-014.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:keyword:operator
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+void xoperator ()
+{
+	fooL(); //check:xoperator
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132384-015.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,12 @@
+//desc:keyword:operator
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+void xoperatory
+()
+{
+	fooL(); //check:xoperator
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132384-016.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:keyword:operator
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+void operator<<()
+{
+	fooL(); //check:operator<<
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132388-001.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:identify class
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+class a
+{
+	LCleanedupPtr<CBaz> iBaz; //check:class
+};
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132388-002.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,7 @@
+//desc:identify class
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+void fclassL(){;} //check:fclassL
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132388-003.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,7 @@
+//desc:identify class
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+void classL(){;} //check:classL
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132388-004.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,7 @@
+//desc:identify class
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+void fclass(){fooL();} //check:fclass
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132388-005.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc:identify class
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+class cclass
+{
+	LCleanedup a;//check:class,cclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132388-006.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,9 @@
+//desc:identify class
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+class classs{
+	LCleanedup a;//check:class,classs
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132388-007.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,9 @@
+//desc:identify class
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+class _class{
+	LCleanedup a;//check:class,_class
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132388-008.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,9 @@
+//desc:identify class
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+class class_{
+	LCleanedup a;//check:class,class_
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132388-009.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,9 @@
+//desc:identify class
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+class class0{
+	LCleanedup a;//check:class,class0
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132388-010.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,9 @@
+//desc:identify class
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+class ::class0{
+	LCleanedup a;//check:class,class0
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132388-011.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,9 @@
+//desc:identify class
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+template<typename t1 , class t2>//check:-class
+void fL(){;}//check:-class
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132388-012.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,8 @@
+//desc:identify class
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+template<typename t1 ,class t2>//check:-class
+void fL(){;}//check:-class
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132388-013.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,7 @@
+//desc:identify class
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+template< class t2 >//check:-class
+void fL(){;}//check:-class
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132388-014.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,8 @@
+//desc:identify class
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+template<class t2 >//check:-class
+void fL(){;}//check:-class
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132388-015.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,9 @@
+//desc:identify class
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+template< class t2 >//check:-class
+class a{LCleanedupPtr<CBaz> iBaz;//check:class
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132388-016.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,9 @@
+//desc:identify class
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+template< class t2 >class //check:-class
+a{LCleanedupPtr<CBaz> iBaz;//check:class
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132389-001.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:keyword:recognize LClass' constuctor and operator
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+LClass::LClass ()
+{//check:LClass::LClass
+	foo(); 
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132389-002.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:keyword:recognize LClass' constuctor and operator
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+LClass::LClass()
+{//check:LClass::LClass
+
+	foo(); }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132389-003.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc:keyword:recognize LClass' constuctor and operator
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+LClass:: LClass ()
+{//check:LClass
+	foo(); }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132389-004.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc:keyword:recognize LClass' constuctor and operator
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+LClass ::LClass ()
+{//check:LClass
+	foo(); }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132389-005.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:keyword:recognize LClass' constuctor and operator
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+LClass<>::LClass ()
+{//check:LClass
+
+	foo(); }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132389-006.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:keyword:recognize LClass' constuctor and operator
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+LClass::LClass(void)
+{//check:LClass::LClass
+	foo(); 
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132389-007.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,13 @@
+//desc:keyword:recognize LClass' constuctor and operator
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+class LClass
+{
+template<class a>LClass( ) 
+{//check:LClass
+	foo(); 
+}
+};
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132389-008.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:keyword:recognize LClass' constuctor and operator
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+LClass::LClass ()
+{//check:LClass::LClass
+	foo(); 
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132389-009.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,12 @@
+//desc:keyword:recognize LClass' constuctor and operator
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+LAL::LA(void)
+{
+	fooL(); //check:LAL::LA
+
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132389-010.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:keyword:recognize LClass' constuctor and operator
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+LA::LAx (void)
+{
+	fooL(); //check:LA::LAx
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132389-011.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:keyword:recognize LClass' constuctor and operator
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+LClass::~LClass ()
+{//check:-LClass::LClass
+
+	foo(); }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132389-012.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:keyword:recognize LClass' constuctor and operator
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+LClass::~LClass ()
+{//check:-LClass::LClass
+
+	foo(); }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132389-013.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:keyword:recognize LClass' constuctor and operator
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+LClass::operator++ ()
+{//check:LClass
+
+	foo(); }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132389-014.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,14 @@
+//desc:keyword:recognize LClass' constuctor and operator
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+class LClass
+{
+operator ++()
+{//check:LClass::operator,++
+	foo(); 
+}
+};
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132389-015.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,14 @@
+//desc:keyword:recognize LClass' constuctor and operator
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+class LClass
+{
+operator >>()
+{//check:no,leavers
+
+	foo(); }
+};
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132389-016.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,15 @@
+//desc:keyword:recognize LClass' constuctor and operator
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+class LClass
+{
+template<class a,class b>
+operator =(cclass b)
+{//check:LClass
+
+	foo(); }
+};
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132389-017.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,13 @@
+//desc:keyword:recognize LClass' constuctor and operator
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+class LClass
+{
+template<class a,class b>
+LClass()
+{;}  //check:LClass
+};
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132389-018.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,15 @@
+//desc:keyword:recognize LClass' constuctor and operator
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+class LClass
+{
+template<class a,class b>
+void LClas()
+    {
+	fL();//check:LClas
+    }  
+};
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132389-019.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,14 @@
+//desc:keyword:recognize LClass' constuctor and operator
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+class LClas
+{
+template<class a,class b>
+void LClass()
+{//check:-LClass
+
+;}  };
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132389-020.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,14 @@
+//desc:keyword:recognize LClass' constuctor and operator
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+class LClass
+{
+template<class a,class b>
+~LClass()
+{//check:-LClass
+
+;}  
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132389-021.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,13 @@
+//desc:keyword:recognize LClass' constuctor and operator
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+class LClass
+{
+template<class a,class b>
+~LClass<class c,class d>()
+{//check:-LClass
+;}  
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132390-001.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:keyword:recognize LClass' constuctor and operator
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+foo() throw(a)
+{
+	fooL(); //fooL
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132390-002.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:keyword:recognize LClass' constuctor and operator
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+foo() throw a
+{
+	fooL(); //fooL
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132390-003.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,12 @@
+//desc:keyword:recognize LClass' constuctor and operator
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+class c
+{
+foo() throw(a)
+{
+	fooL(); //fooL
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132390-004.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,14 @@
+//desc:keyword:recognize LClass' constuctor and operator
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+class a
+{
+foo() throw a
+{
+	fooL(); //fooL
+}
+};
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132390-005.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:keyword:recognize LClass' constuctor and operator
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+foo() throw(a,b)
+{
+	fooL(); //fooL
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132390-006.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:keyword:recognize LClass' constuctor and operator
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+foo() throw a,b
+{
+	fooL(); //fooL
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132390-007.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,12 @@
+//desc:keyword:recognize LClass' constuctor and operator
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+class a
+{
+foo() throw(a,b)
+{
+	fooL(); //fooL
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132390-008.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,13 @@
+//desc:keyword:recognize LClass' constuctor and operator
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+class c
+{
+foo() throw a,b
+{
+	fooL(); //fooL
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132393-001.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:test warning message:LData as parameter
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+void func(LData a)//check:LData
+{
+;
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132393-002.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:test warning message:LString as parameter
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+void func(LString a)//check:LString
+{
+;
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132393-003.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:test warning message:LData as return type
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+LData func(int a)//check:LData
+{
+;
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132393-004.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:test warning message:LString as return type
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+LString func(int a)//check:LString
+{
+;
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132393-005.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:test warning message:func use LString
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+void func(void)
+{
+	LString a;//check:LString
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132393-006.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:test warning message:func use LData
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+void func(LData a)
+{
+	LData a;//check:LData
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132397-001.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:check preprocessor:NONSHARABLE_CLASS
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+NONSHARABLE_CLASS (c)
+{
+	LCleanedupPtr<CBaz> iBaz; //check:class
+};
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132397-002.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:check preprocessor:NONSHARABLE_STRUCT
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+NONSHARABLE_STRUCT (c)
+{
+	LCleanedupPtr<CBaz> iBaz; //check:class
+};
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132397-003.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:check preprocessor:xxNONSHARABLE_STRUCT
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+xxNONSHARABLE_STRUCT (c)
+{
+	fooL(); //check:xxNONSHARABLE_STRUCT
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132397-004.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:check preprocessor:NONSHARABLE_STRUCTyy
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+NONSHARABLE_STRUCTyy (c)
+{
+	fooL(); //check:NONSHARABLE_STRUCTyy
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132397-005.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:check preprocessor:xxNONSHARABLE_STRUCTyy
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+xxNONSHARABLE_STRUCTyy (c)
+{
+	fooL(); //check:xxNONSHARABLE_STRUCTyy
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132397-006.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:check preprocessor:xxNONSHARABLE_CLASSyy
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+xxNONSHARABLE_CLASSyy (c)
+{
+	fooL(); //check:xxNONSHARABLE_CLASSyy
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132397-007.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:check preprocessor:xxNONSHARABLE_CLASS
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+xxNONSHARABLE_CLASS (c)
+{
+	fooL(); //check:xxNONSHARABLE_CLASS
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132397-008.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:check preprocessor:NONSHARABLE_CLASSyy
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+NONSHARABLE_CLASSyy (c)
+{
+	fooL(); //check:NONSHARABLE_CLASSyy
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def-132397-009.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:check preprocessor:xxNONSHARABLE_CLASSyy
+//option:
+//date:2008-12-22 14:58:10
+//author:bolowy
+//type: CT
+
+foo(){;}NONSHARABLE_CLASS(c)
+{
+	LCleanedupPtr<CBaz> iBaz; //check:class
+};
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-001.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+
+class classA 
+{ 
+	LCleanedup mem; //check:classA
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-002.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+
+class Aclass 
+{ 
+	LCleanedup mem; //check:Aclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-003.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+
+class _struct 
+{ 
+	LCleanedup mem; //check:_struct
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-004.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+
+class struct_ 
+{ 
+	LCleanedup mem; //check:struct_
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-005.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+
+class (MyClass) 
+{ 
+	LCleanedup mem; //check:MyClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-006.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+
+class ( Myclass) 
+{ 
+	LCleanedup mem; //check:Myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-007.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+
+class ( myclass1 ) 
+{ 
+	LCleanedup mem; //check:myclass1
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-008.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+
+class ::myClass 
+{ 
+	LCleanedup mem; //check:myClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-009.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+
+class NS1::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-010.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+
+class NS1::NS2::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-011.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+
+class NS1  ::  MS2 :: myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-012.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+
+class  
+{ 
+	LCleanedup mem; //check:anonymous-class
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-013.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+
+struct classA 
+{ 
+	LCleanedup mem; //check:classA
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-014.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+
+struct Aclass 
+{ 
+	LCleanedup mem; //check:Aclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-015.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+
+struct _struct 
+{ 
+	LCleanedup mem; //check:_struct
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-016.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+
+struct struct_ 
+{ 
+	LCleanedup mem; //check:struct_
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-017.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+
+struct (MyClass) 
+{ 
+	LCleanedup mem; //check:MyClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-018.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+
+struct ( Myclass) 
+{ 
+	LCleanedup mem; //check:Myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-019.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+
+struct ( myclass1 ) 
+{ 
+	LCleanedup mem; //check:myclass1
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-020.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+
+struct ::myClass 
+{ 
+	LCleanedup mem; //check:myClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-021.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+
+struct NS1::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-022.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+
+struct NS1::NS2::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-023.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+
+struct NS1  ::  MS2 :: myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-024.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+
+struct  
+{ 
+	LCleanedup mem; //check:anonymous-class
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-025.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+
+NONSHARABLE_CLASS classA 
+{ 
+	LCleanedup mem; //check:classA
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-026.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+
+NONSHARABLE_CLASS Aclass 
+{ 
+	LCleanedup mem; //check:Aclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-027.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+
+NONSHARABLE_CLASS _struct 
+{ 
+	LCleanedup mem; //check:_struct
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-028.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+
+NONSHARABLE_CLASS struct_ 
+{ 
+	LCleanedup mem; //check:struct_
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-029.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+
+NONSHARABLE_CLASS (MyClass) 
+{ 
+	LCleanedup mem; //check:MyClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-030.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+
+NONSHARABLE_CLASS ( Myclass) 
+{ 
+	LCleanedup mem; //check:Myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-031.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+
+NONSHARABLE_CLASS ( myclass1 ) 
+{ 
+	LCleanedup mem; //check:myclass1
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-032.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+
+NONSHARABLE_CLASS ::myClass 
+{ 
+	LCleanedup mem; //check:myClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-033.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+
+NONSHARABLE_CLASS NS1::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-034.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+
+NONSHARABLE_CLASS NS1::NS2::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-035.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+
+NONSHARABLE_CLASS NS1  ::  MS2 :: myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-036.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+
+NONSHARABLE_CLASS  
+{ 
+	LCleanedup mem; //check:anonymous-class
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-037.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+
+NONSHARABLE_STRUCT classA 
+{ 
+	LCleanedup mem; //check:classA
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-038.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+
+NONSHARABLE_STRUCT Aclass 
+{ 
+	LCleanedup mem; //check:Aclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-039.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+
+NONSHARABLE_STRUCT _struct 
+{ 
+	LCleanedup mem; //check:_struct
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-040.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+
+NONSHARABLE_STRUCT struct_ 
+{ 
+	LCleanedup mem; //check:struct_
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-041.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+
+NONSHARABLE_STRUCT (MyClass) 
+{ 
+	LCleanedup mem; //check:MyClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-042.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+
+NONSHARABLE_STRUCT ( Myclass) 
+{ 
+	LCleanedup mem; //check:Myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-043.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+
+NONSHARABLE_STRUCT ( myclass1 ) 
+{ 
+	LCleanedup mem; //check:myclass1
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-044.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+
+NONSHARABLE_STRUCT ::myClass 
+{ 
+	LCleanedup mem; //check:myClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-045.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+
+NONSHARABLE_STRUCT NS1::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-046.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+
+NONSHARABLE_STRUCT NS1::NS2::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-047.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+
+NONSHARABLE_STRUCT NS1  ::  MS2 :: myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-048.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+
+NONSHARABLE_STRUCT  
+{ 
+	LCleanedup mem; //check:anonymous-class
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-049.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<>
+class classA 
+{ 
+	LCleanedup mem; //check:classA
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-050.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<>
+class Aclass 
+{ 
+	LCleanedup mem; //check:Aclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-051.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<>
+class _struct 
+{ 
+	LCleanedup mem; //check:_struct
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-052.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<>
+class struct_ 
+{ 
+	LCleanedup mem; //check:struct_
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-053.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<>
+class (MyClass) 
+{ 
+	LCleanedup mem; //check:MyClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-054.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<>
+class ( Myclass) 
+{ 
+	LCleanedup mem; //check:Myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-055.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<>
+class ( myclass1 ) 
+{ 
+	LCleanedup mem; //check:myclass1
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-056.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<>
+class ::myClass 
+{ 
+	LCleanedup mem; //check:myClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-057.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<>
+class NS1::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-058.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<>
+class NS1::NS2::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-059.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<>
+class NS1  ::  MS2 :: myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-060.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<>
+class  
+{ 
+	LCleanedup mem; //check:anonymous-class
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-061.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<>
+struct classA 
+{ 
+	LCleanedup mem; //check:classA
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-062.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<>
+struct Aclass 
+{ 
+	LCleanedup mem; //check:Aclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-063.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<>
+struct _struct 
+{ 
+	LCleanedup mem; //check:_struct
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-064.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<>
+struct struct_ 
+{ 
+	LCleanedup mem; //check:struct_
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-065.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<>
+struct (MyClass) 
+{ 
+	LCleanedup mem; //check:MyClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-066.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<>
+struct ( Myclass) 
+{ 
+	LCleanedup mem; //check:Myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-067.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<>
+struct ( myclass1 ) 
+{ 
+	LCleanedup mem; //check:myclass1
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-068.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<>
+struct ::myClass 
+{ 
+	LCleanedup mem; //check:myClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-069.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<>
+struct NS1::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-070.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<>
+struct NS1::NS2::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-071.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<>
+struct NS1  ::  MS2 :: myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-072.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<>
+struct  
+{ 
+	LCleanedup mem; //check:anonymous-class
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-073.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<>
+NONSHARABLE_CLASS classA 
+{ 
+	LCleanedup mem; //check:classA
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-074.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<>
+NONSHARABLE_CLASS Aclass 
+{ 
+	LCleanedup mem; //check:Aclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-075.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<>
+NONSHARABLE_CLASS _struct 
+{ 
+	LCleanedup mem; //check:_struct
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-076.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<>
+NONSHARABLE_CLASS struct_ 
+{ 
+	LCleanedup mem; //check:struct_
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-077.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<>
+NONSHARABLE_CLASS (MyClass) 
+{ 
+	LCleanedup mem; //check:MyClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-078.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<>
+NONSHARABLE_CLASS ( Myclass) 
+{ 
+	LCleanedup mem; //check:Myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-079.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<>
+NONSHARABLE_CLASS ( myclass1 ) 
+{ 
+	LCleanedup mem; //check:myclass1
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-080.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<>
+NONSHARABLE_CLASS ::myClass 
+{ 
+	LCleanedup mem; //check:myClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-081.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<>
+NONSHARABLE_CLASS NS1::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-082.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<>
+NONSHARABLE_CLASS NS1::NS2::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-083.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<>
+NONSHARABLE_CLASS NS1  ::  MS2 :: myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-084.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<>
+NONSHARABLE_CLASS  
+{ 
+	LCleanedup mem; //check:anonymous-class
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-085.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<>
+NONSHARABLE_STRUCT classA 
+{ 
+	LCleanedup mem; //check:classA
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-086.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<>
+NONSHARABLE_STRUCT Aclass 
+{ 
+	LCleanedup mem; //check:Aclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-087.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<>
+NONSHARABLE_STRUCT _struct 
+{ 
+	LCleanedup mem; //check:_struct
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-088.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<>
+NONSHARABLE_STRUCT struct_ 
+{ 
+	LCleanedup mem; //check:struct_
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-089.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<>
+NONSHARABLE_STRUCT (MyClass) 
+{ 
+	LCleanedup mem; //check:MyClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-090.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<>
+NONSHARABLE_STRUCT ( Myclass) 
+{ 
+	LCleanedup mem; //check:Myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-091.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<>
+NONSHARABLE_STRUCT ( myclass1 ) 
+{ 
+	LCleanedup mem; //check:myclass1
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-092.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<>
+NONSHARABLE_STRUCT ::myClass 
+{ 
+	LCleanedup mem; //check:myClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-093.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<>
+NONSHARABLE_STRUCT NS1::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-094.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<>
+NONSHARABLE_STRUCT NS1::NS2::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-095.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<>
+NONSHARABLE_STRUCT NS1  ::  MS2 :: myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-096.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<>
+NONSHARABLE_STRUCT  
+{ 
+	LCleanedup mem; //check:anonymous-class
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-097.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t>
+class classA 
+{ 
+	LCleanedup mem; //check:classA
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-098.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t>
+class Aclass 
+{ 
+	LCleanedup mem; //check:Aclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-099.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t>
+class _struct 
+{ 
+	LCleanedup mem; //check:_struct
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-100.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t>
+class struct_ 
+{ 
+	LCleanedup mem; //check:struct_
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-101.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t>
+class (MyClass) 
+{ 
+	LCleanedup mem; //check:MyClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-102.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t>
+class ( Myclass) 
+{ 
+	LCleanedup mem; //check:Myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-103.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t>
+class ( myclass1 ) 
+{ 
+	LCleanedup mem; //check:myclass1
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-104.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t>
+class ::myClass 
+{ 
+	LCleanedup mem; //check:myClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-105.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t>
+class NS1::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-106.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t>
+class NS1::NS2::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-107.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t>
+class NS1  ::  MS2 :: myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-108.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t>
+class  
+{ 
+	LCleanedup mem; //check:anonymous-class
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-109.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t>
+struct classA 
+{ 
+	LCleanedup mem; //check:classA
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-110.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t>
+struct Aclass 
+{ 
+	LCleanedup mem; //check:Aclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-111.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t>
+struct _struct 
+{ 
+	LCleanedup mem; //check:_struct
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-112.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t>
+struct struct_ 
+{ 
+	LCleanedup mem; //check:struct_
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-113.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t>
+struct (MyClass) 
+{ 
+	LCleanedup mem; //check:MyClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-114.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t>
+struct ( Myclass) 
+{ 
+	LCleanedup mem; //check:Myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-115.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t>
+struct ( myclass1 ) 
+{ 
+	LCleanedup mem; //check:myclass1
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-116.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t>
+struct ::myClass 
+{ 
+	LCleanedup mem; //check:myClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-117.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t>
+struct NS1::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-118.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t>
+struct NS1::NS2::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-119.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t>
+struct NS1  ::  MS2 :: myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-120.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t>
+struct  
+{ 
+	LCleanedup mem; //check:anonymous-class
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-121.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t>
+NONSHARABLE_CLASS classA 
+{ 
+	LCleanedup mem; //check:classA
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-122.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t>
+NONSHARABLE_CLASS Aclass 
+{ 
+	LCleanedup mem; //check:Aclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-123.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t>
+NONSHARABLE_CLASS _struct 
+{ 
+	LCleanedup mem; //check:_struct
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-124.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t>
+NONSHARABLE_CLASS struct_ 
+{ 
+	LCleanedup mem; //check:struct_
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-125.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t>
+NONSHARABLE_CLASS (MyClass) 
+{ 
+	LCleanedup mem; //check:MyClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-126.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t>
+NONSHARABLE_CLASS ( Myclass) 
+{ 
+	LCleanedup mem; //check:Myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-127.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t>
+NONSHARABLE_CLASS ( myclass1 ) 
+{ 
+	LCleanedup mem; //check:myclass1
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-128.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t>
+NONSHARABLE_CLASS ::myClass 
+{ 
+	LCleanedup mem; //check:myClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-129.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t>
+NONSHARABLE_CLASS NS1::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-130.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t>
+NONSHARABLE_CLASS NS1::NS2::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-131.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t>
+NONSHARABLE_CLASS NS1  ::  MS2 :: myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-132.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t>
+NONSHARABLE_CLASS  
+{ 
+	LCleanedup mem; //check:anonymous-class
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-133.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t>
+NONSHARABLE_STRUCT classA 
+{ 
+	LCleanedup mem; //check:classA
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-134.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t>
+NONSHARABLE_STRUCT Aclass 
+{ 
+	LCleanedup mem; //check:Aclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-135.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t>
+NONSHARABLE_STRUCT _struct 
+{ 
+	LCleanedup mem; //check:_struct
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-136.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t>
+NONSHARABLE_STRUCT struct_ 
+{ 
+	LCleanedup mem; //check:struct_
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-137.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t>
+NONSHARABLE_STRUCT (MyClass) 
+{ 
+	LCleanedup mem; //check:MyClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-138.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t>
+NONSHARABLE_STRUCT ( Myclass) 
+{ 
+	LCleanedup mem; //check:Myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-139.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t>
+NONSHARABLE_STRUCT ( myclass1 ) 
+{ 
+	LCleanedup mem; //check:myclass1
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-140.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t>
+NONSHARABLE_STRUCT ::myClass 
+{ 
+	LCleanedup mem; //check:myClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-141.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t>
+NONSHARABLE_STRUCT NS1::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-142.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t>
+NONSHARABLE_STRUCT NS1::NS2::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-143.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t>
+NONSHARABLE_STRUCT NS1  ::  MS2 :: myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-144.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t>
+NONSHARABLE_STRUCT  
+{ 
+	LCleanedup mem; //check:anonymous-class
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-145.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t>
+class classA 
+{ 
+	LCleanedup mem; //check:classA
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-146.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t>
+class Aclass 
+{ 
+	LCleanedup mem; //check:Aclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-147.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t>
+class _struct 
+{ 
+	LCleanedup mem; //check:_struct
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-148.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t>
+class struct_ 
+{ 
+	LCleanedup mem; //check:struct_
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-149.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t>
+class (MyClass) 
+{ 
+	LCleanedup mem; //check:MyClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-150.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t>
+class ( Myclass) 
+{ 
+	LCleanedup mem; //check:Myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-151.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t>
+class ( myclass1 ) 
+{ 
+	LCleanedup mem; //check:myclass1
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-152.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t>
+class ::myClass 
+{ 
+	LCleanedup mem; //check:myClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-153.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t>
+class NS1::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-154.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t>
+class NS1::NS2::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-155.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t>
+class NS1  ::  MS2 :: myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-156.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t>
+class  
+{ 
+	LCleanedup mem; //check:anonymous-class
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-157.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t>
+struct classA 
+{ 
+	LCleanedup mem; //check:classA
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-158.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t>
+struct Aclass 
+{ 
+	LCleanedup mem; //check:Aclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-159.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t>
+struct _struct 
+{ 
+	LCleanedup mem; //check:_struct
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-160.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t>
+struct struct_ 
+{ 
+	LCleanedup mem; //check:struct_
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-161.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t>
+struct (MyClass) 
+{ 
+	LCleanedup mem; //check:MyClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-162.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t>
+struct ( Myclass) 
+{ 
+	LCleanedup mem; //check:Myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-163.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t>
+struct ( myclass1 ) 
+{ 
+	LCleanedup mem; //check:myclass1
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-164.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t>
+struct ::myClass 
+{ 
+	LCleanedup mem; //check:myClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-165.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t>
+struct NS1::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-166.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t>
+struct NS1::NS2::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-167.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t>
+struct NS1  ::  MS2 :: myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-168.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t>
+struct  
+{ 
+	LCleanedup mem; //check:anonymous-class
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-169.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t>
+NONSHARABLE_CLASS classA 
+{ 
+	LCleanedup mem; //check:classA
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-170.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t>
+NONSHARABLE_CLASS Aclass 
+{ 
+	LCleanedup mem; //check:Aclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-171.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t>
+NONSHARABLE_CLASS _struct 
+{ 
+	LCleanedup mem; //check:_struct
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-172.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t>
+NONSHARABLE_CLASS struct_ 
+{ 
+	LCleanedup mem; //check:struct_
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-173.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t>
+NONSHARABLE_CLASS (MyClass) 
+{ 
+	LCleanedup mem; //check:MyClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-174.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t>
+NONSHARABLE_CLASS ( Myclass) 
+{ 
+	LCleanedup mem; //check:Myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-175.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t>
+NONSHARABLE_CLASS ( myclass1 ) 
+{ 
+	LCleanedup mem; //check:myclass1
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-176.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t>
+NONSHARABLE_CLASS ::myClass 
+{ 
+	LCleanedup mem; //check:myClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-177.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t>
+NONSHARABLE_CLASS NS1::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-178.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t>
+NONSHARABLE_CLASS NS1::NS2::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-179.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t>
+NONSHARABLE_CLASS NS1  ::  MS2 :: myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-180.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t>
+NONSHARABLE_CLASS  
+{ 
+	LCleanedup mem; //check:anonymous-class
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-181.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t>
+NONSHARABLE_STRUCT classA 
+{ 
+	LCleanedup mem; //check:classA
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-182.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t>
+NONSHARABLE_STRUCT Aclass 
+{ 
+	LCleanedup mem; //check:Aclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-183.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t>
+NONSHARABLE_STRUCT _struct 
+{ 
+	LCleanedup mem; //check:_struct
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-184.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t>
+NONSHARABLE_STRUCT struct_ 
+{ 
+	LCleanedup mem; //check:struct_
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-185.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t>
+NONSHARABLE_STRUCT (MyClass) 
+{ 
+	LCleanedup mem; //check:MyClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-186.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t>
+NONSHARABLE_STRUCT ( Myclass) 
+{ 
+	LCleanedup mem; //check:Myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-187.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t>
+NONSHARABLE_STRUCT ( myclass1 ) 
+{ 
+	LCleanedup mem; //check:myclass1
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-188.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t>
+NONSHARABLE_STRUCT ::myClass 
+{ 
+	LCleanedup mem; //check:myClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-189.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t>
+NONSHARABLE_STRUCT NS1::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-190.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t>
+NONSHARABLE_STRUCT NS1::NS2::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-191.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t>
+NONSHARABLE_STRUCT NS1  ::  MS2 :: myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-192.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t>
+NONSHARABLE_STRUCT  
+{ 
+	LCleanedup mem; //check:anonymous-class
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-193.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template< typename t,typename tt >
+class classA 
+{ 
+	LCleanedup mem; //check:classA
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-194.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template< typename t,typename tt >
+class Aclass 
+{ 
+	LCleanedup mem; //check:Aclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-195.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template< typename t,typename tt >
+class _struct 
+{ 
+	LCleanedup mem; //check:_struct
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-196.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template< typename t,typename tt >
+class struct_ 
+{ 
+	LCleanedup mem; //check:struct_
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-197.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template< typename t,typename tt >
+class (MyClass) 
+{ 
+	LCleanedup mem; //check:MyClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-198.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template< typename t,typename tt >
+class ( Myclass) 
+{ 
+	LCleanedup mem; //check:Myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-199.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template< typename t,typename tt >
+class ( myclass1 ) 
+{ 
+	LCleanedup mem; //check:myclass1
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-200.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template< typename t,typename tt >
+class ::myClass 
+{ 
+	LCleanedup mem; //check:myClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-201.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template< typename t,typename tt >
+class NS1::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-202.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template< typename t,typename tt >
+class NS1::NS2::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-203.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template< typename t,typename tt >
+class NS1  ::  MS2 :: myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-204.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template< typename t,typename tt >
+class  
+{ 
+	LCleanedup mem; //check:anonymous-class
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-205.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template< typename t,typename tt >
+struct classA 
+{ 
+	LCleanedup mem; //check:classA
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-206.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template< typename t,typename tt >
+struct Aclass 
+{ 
+	LCleanedup mem; //check:Aclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-207.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template< typename t,typename tt >
+struct _struct 
+{ 
+	LCleanedup mem; //check:_struct
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-208.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template< typename t,typename tt >
+struct struct_ 
+{ 
+	LCleanedup mem; //check:struct_
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-209.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template< typename t,typename tt >
+struct (MyClass) 
+{ 
+	LCleanedup mem; //check:MyClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-210.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template< typename t,typename tt >
+struct ( Myclass) 
+{ 
+	LCleanedup mem; //check:Myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-211.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template< typename t,typename tt >
+struct ( myclass1 ) 
+{ 
+	LCleanedup mem; //check:myclass1
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-212.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template< typename t,typename tt >
+struct ::myClass 
+{ 
+	LCleanedup mem; //check:myClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-213.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template< typename t,typename tt >
+struct NS1::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-214.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template< typename t,typename tt >
+struct NS1::NS2::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-215.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template< typename t,typename tt >
+struct NS1  ::  MS2 :: myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-216.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template< typename t,typename tt >
+struct  
+{ 
+	LCleanedup mem; //check:anonymous-class
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-217.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template< typename t,typename tt >
+NONSHARABLE_CLASS classA 
+{ 
+	LCleanedup mem; //check:classA
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-218.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template< typename t,typename tt >
+NONSHARABLE_CLASS Aclass 
+{ 
+	LCleanedup mem; //check:Aclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-219.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template< typename t,typename tt >
+NONSHARABLE_CLASS _struct 
+{ 
+	LCleanedup mem; //check:_struct
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-220.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template< typename t,typename tt >
+NONSHARABLE_CLASS struct_ 
+{ 
+	LCleanedup mem; //check:struct_
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-221.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template< typename t,typename tt >
+NONSHARABLE_CLASS (MyClass) 
+{ 
+	LCleanedup mem; //check:MyClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-222.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template< typename t,typename tt >
+NONSHARABLE_CLASS ( Myclass) 
+{ 
+	LCleanedup mem; //check:Myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-223.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template< typename t,typename tt >
+NONSHARABLE_CLASS ( myclass1 ) 
+{ 
+	LCleanedup mem; //check:myclass1
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-224.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template< typename t,typename tt >
+NONSHARABLE_CLASS ::myClass 
+{ 
+	LCleanedup mem; //check:myClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-225.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template< typename t,typename tt >
+NONSHARABLE_CLASS NS1::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-226.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template< typename t,typename tt >
+NONSHARABLE_CLASS NS1::NS2::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-227.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template< typename t,typename tt >
+NONSHARABLE_CLASS NS1  ::  MS2 :: myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-228.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template< typename t,typename tt >
+NONSHARABLE_CLASS  
+{ 
+	LCleanedup mem; //check:anonymous-class
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-229.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template< typename t,typename tt >
+NONSHARABLE_STRUCT classA 
+{ 
+	LCleanedup mem; //check:classA
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-230.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template< typename t,typename tt >
+NONSHARABLE_STRUCT Aclass 
+{ 
+	LCleanedup mem; //check:Aclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-231.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template< typename t,typename tt >
+NONSHARABLE_STRUCT _struct 
+{ 
+	LCleanedup mem; //check:_struct
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-232.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template< typename t,typename tt >
+NONSHARABLE_STRUCT struct_ 
+{ 
+	LCleanedup mem; //check:struct_
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-233.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template< typename t,typename tt >
+NONSHARABLE_STRUCT (MyClass) 
+{ 
+	LCleanedup mem; //check:MyClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-234.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template< typename t,typename tt >
+NONSHARABLE_STRUCT ( Myclass) 
+{ 
+	LCleanedup mem; //check:Myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-235.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template< typename t,typename tt >
+NONSHARABLE_STRUCT ( myclass1 ) 
+{ 
+	LCleanedup mem; //check:myclass1
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-236.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template< typename t,typename tt >
+NONSHARABLE_STRUCT ::myClass 
+{ 
+	LCleanedup mem; //check:myClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-237.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template< typename t,typename tt >
+NONSHARABLE_STRUCT NS1::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-238.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template< typename t,typename tt >
+NONSHARABLE_STRUCT NS1::NS2::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-239.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template< typename t,typename tt >
+NONSHARABLE_STRUCT NS1  ::  MS2 :: myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-240.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template< typename t,typename tt >
+NONSHARABLE_STRUCT  
+{ 
+	LCleanedup mem; //check:anonymous-class
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-241.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, class tt>
+class classA 
+{ 
+	LCleanedup mem; //check:classA
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-242.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, class tt>
+class Aclass 
+{ 
+	LCleanedup mem; //check:Aclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-243.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, class tt>
+class _struct 
+{ 
+	LCleanedup mem; //check:_struct
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-244.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, class tt>
+class struct_ 
+{ 
+	LCleanedup mem; //check:struct_
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-245.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, class tt>
+class (MyClass) 
+{ 
+	LCleanedup mem; //check:MyClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-246.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, class tt>
+class ( Myclass) 
+{ 
+	LCleanedup mem; //check:Myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-247.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, class tt>
+class ( myclass1 ) 
+{ 
+	LCleanedup mem; //check:myclass1
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-248.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, class tt>
+class ::myClass 
+{ 
+	LCleanedup mem; //check:myClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-249.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, class tt>
+class NS1::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-250.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, class tt>
+class NS1::NS2::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-251.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, class tt>
+class NS1  ::  MS2 :: myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-252.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, class tt>
+class  
+{ 
+	LCleanedup mem; //check:anonymous-class
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-253.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, class tt>
+struct classA 
+{ 
+	LCleanedup mem; //check:classA
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-254.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, class tt>
+struct Aclass 
+{ 
+	LCleanedup mem; //check:Aclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-255.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, class tt>
+struct _struct 
+{ 
+	LCleanedup mem; //check:_struct
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-256.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, class tt>
+struct struct_ 
+{ 
+	LCleanedup mem; //check:struct_
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-257.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, class tt>
+struct (MyClass) 
+{ 
+	LCleanedup mem; //check:MyClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-258.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, class tt>
+struct ( Myclass) 
+{ 
+	LCleanedup mem; //check:Myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-259.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, class tt>
+struct ( myclass1 ) 
+{ 
+	LCleanedup mem; //check:myclass1
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-260.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, class tt>
+struct ::myClass 
+{ 
+	LCleanedup mem; //check:myClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-261.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, class tt>
+struct NS1::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-262.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, class tt>
+struct NS1::NS2::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-263.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, class tt>
+struct NS1  ::  MS2 :: myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-264.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, class tt>
+struct  
+{ 
+	LCleanedup mem; //check:anonymous-class
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-265.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, class tt>
+NONSHARABLE_CLASS classA 
+{ 
+	LCleanedup mem; //check:classA
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-266.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, class tt>
+NONSHARABLE_CLASS Aclass 
+{ 
+	LCleanedup mem; //check:Aclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-267.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, class tt>
+NONSHARABLE_CLASS _struct 
+{ 
+	LCleanedup mem; //check:_struct
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-268.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, class tt>
+NONSHARABLE_CLASS struct_ 
+{ 
+	LCleanedup mem; //check:struct_
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-269.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, class tt>
+NONSHARABLE_CLASS (MyClass) 
+{ 
+	LCleanedup mem; //check:MyClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-270.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, class tt>
+NONSHARABLE_CLASS ( Myclass) 
+{ 
+	LCleanedup mem; //check:Myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-271.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, class tt>
+NONSHARABLE_CLASS ( myclass1 ) 
+{ 
+	LCleanedup mem; //check:myclass1
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-272.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, class tt>
+NONSHARABLE_CLASS ::myClass 
+{ 
+	LCleanedup mem; //check:myClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-273.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, class tt>
+NONSHARABLE_CLASS NS1::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-274.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, class tt>
+NONSHARABLE_CLASS NS1::NS2::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-275.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, class tt>
+NONSHARABLE_CLASS NS1  ::  MS2 :: myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-276.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, class tt>
+NONSHARABLE_CLASS  
+{ 
+	LCleanedup mem; //check:anonymous-class
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-277.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, class tt>
+NONSHARABLE_STRUCT classA 
+{ 
+	LCleanedup mem; //check:classA
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-278.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, class tt>
+NONSHARABLE_STRUCT Aclass 
+{ 
+	LCleanedup mem; //check:Aclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-279.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, class tt>
+NONSHARABLE_STRUCT _struct 
+{ 
+	LCleanedup mem; //check:_struct
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-280.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, class tt>
+NONSHARABLE_STRUCT struct_ 
+{ 
+	LCleanedup mem; //check:struct_
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-281.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, class tt>
+NONSHARABLE_STRUCT (MyClass) 
+{ 
+	LCleanedup mem; //check:MyClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-282.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, class tt>
+NONSHARABLE_STRUCT ( Myclass) 
+{ 
+	LCleanedup mem; //check:Myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-283.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, class tt>
+NONSHARABLE_STRUCT ( myclass1 ) 
+{ 
+	LCleanedup mem; //check:myclass1
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-284.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, class tt>
+NONSHARABLE_STRUCT ::myClass 
+{ 
+	LCleanedup mem; //check:myClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-285.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, class tt>
+NONSHARABLE_STRUCT NS1::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-286.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, class tt>
+NONSHARABLE_STRUCT NS1::NS2::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-287.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, class tt>
+NONSHARABLE_STRUCT NS1  ::  MS2 :: myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-288.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, class tt>
+NONSHARABLE_STRUCT  
+{ 
+	LCleanedup mem; //check:anonymous-class
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-289.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, typename tt>
+class classA 
+{ 
+	LCleanedup mem; //check:classA
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-290.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, typename tt>
+class Aclass 
+{ 
+	LCleanedup mem; //check:Aclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-291.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, typename tt>
+class _struct 
+{ 
+	LCleanedup mem; //check:_struct
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-292.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, typename tt>
+class struct_ 
+{ 
+	LCleanedup mem; //check:struct_
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-293.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, typename tt>
+class (MyClass) 
+{ 
+	LCleanedup mem; //check:MyClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-294.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, typename tt>
+class ( Myclass) 
+{ 
+	LCleanedup mem; //check:Myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-295.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, typename tt>
+class ( myclass1 ) 
+{ 
+	LCleanedup mem; //check:myclass1
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-296.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, typename tt>
+class ::myClass 
+{ 
+	LCleanedup mem; //check:myClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-297.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, typename tt>
+class NS1::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-298.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, typename tt>
+class NS1::NS2::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-299.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, typename tt>
+class NS1  ::  MS2 :: myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-300.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, typename tt>
+class  
+{ 
+	LCleanedup mem; //check:anonymous-class
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-301.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, typename tt>
+struct classA 
+{ 
+	LCleanedup mem; //check:classA
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-302.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, typename tt>
+struct Aclass 
+{ 
+	LCleanedup mem; //check:Aclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-303.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, typename tt>
+struct _struct 
+{ 
+	LCleanedup mem; //check:_struct
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-304.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, typename tt>
+struct struct_ 
+{ 
+	LCleanedup mem; //check:struct_
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-305.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, typename tt>
+struct (MyClass) 
+{ 
+	LCleanedup mem; //check:MyClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-306.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, typename tt>
+struct ( Myclass) 
+{ 
+	LCleanedup mem; //check:Myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-307.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, typename tt>
+struct ( myclass1 ) 
+{ 
+	LCleanedup mem; //check:myclass1
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-308.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, typename tt>
+struct ::myClass 
+{ 
+	LCleanedup mem; //check:myClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-309.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, typename tt>
+struct NS1::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-310.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, typename tt>
+struct NS1::NS2::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-311.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, typename tt>
+struct NS1  ::  MS2 :: myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-312.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, typename tt>
+struct  
+{ 
+	LCleanedup mem; //check:anonymous-class
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-313.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, typename tt>
+NONSHARABLE_CLASS classA 
+{ 
+	LCleanedup mem; //check:classA
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-314.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, typename tt>
+NONSHARABLE_CLASS Aclass 
+{ 
+	LCleanedup mem; //check:Aclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-315.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, typename tt>
+NONSHARABLE_CLASS _struct 
+{ 
+	LCleanedup mem; //check:_struct
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-316.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, typename tt>
+NONSHARABLE_CLASS struct_ 
+{ 
+	LCleanedup mem; //check:struct_
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-317.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, typename tt>
+NONSHARABLE_CLASS (MyClass) 
+{ 
+	LCleanedup mem; //check:MyClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-318.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, typename tt>
+NONSHARABLE_CLASS ( Myclass) 
+{ 
+	LCleanedup mem; //check:Myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-319.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, typename tt>
+NONSHARABLE_CLASS ( myclass1 ) 
+{ 
+	LCleanedup mem; //check:myclass1
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-320.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, typename tt>
+NONSHARABLE_CLASS ::myClass 
+{ 
+	LCleanedup mem; //check:myClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-321.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, typename tt>
+NONSHARABLE_CLASS NS1::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-322.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, typename tt>
+NONSHARABLE_CLASS NS1::NS2::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-323.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, typename tt>
+NONSHARABLE_CLASS NS1  ::  MS2 :: myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-324.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, typename tt>
+NONSHARABLE_CLASS  
+{ 
+	LCleanedup mem; //check:anonymous-class
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-325.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, typename tt>
+NONSHARABLE_STRUCT classA 
+{ 
+	LCleanedup mem; //check:classA
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-326.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, typename tt>
+NONSHARABLE_STRUCT Aclass 
+{ 
+	LCleanedup mem; //check:Aclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-327.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, typename tt>
+NONSHARABLE_STRUCT _struct 
+{ 
+	LCleanedup mem; //check:_struct
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-328.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, typename tt>
+NONSHARABLE_STRUCT struct_ 
+{ 
+	LCleanedup mem; //check:struct_
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-329.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, typename tt>
+NONSHARABLE_STRUCT (MyClass) 
+{ 
+	LCleanedup mem; //check:MyClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-330.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, typename tt>
+NONSHARABLE_STRUCT ( Myclass) 
+{ 
+	LCleanedup mem; //check:Myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-331.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, typename tt>
+NONSHARABLE_STRUCT ( myclass1 ) 
+{ 
+	LCleanedup mem; //check:myclass1
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-332.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, typename tt>
+NONSHARABLE_STRUCT ::myClass 
+{ 
+	LCleanedup mem; //check:myClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-333.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, typename tt>
+NONSHARABLE_STRUCT NS1::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-334.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, typename tt>
+NONSHARABLE_STRUCT NS1::NS2::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-335.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, typename tt>
+NONSHARABLE_STRUCT NS1  ::  MS2 :: myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-336.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<class t, typename tt>
+NONSHARABLE_STRUCT  
+{ 
+	LCleanedup mem; //check:anonymous-class
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-337.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class classA 
+{ 
+	LCleanedup mem; //check:classA
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-338.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class Aclass 
+{ 
+	LCleanedup mem; //check:Aclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-339.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class _struct 
+{ 
+	LCleanedup mem; //check:_struct
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-340.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class struct_ 
+{ 
+	LCleanedup mem; //check:struct_
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-341.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class (MyClass) 
+{ 
+	LCleanedup mem; //check:MyClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-342.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class ( Myclass) 
+{ 
+	LCleanedup mem; //check:Myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-343.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class ( myclass1 ) 
+{ 
+	LCleanedup mem; //check:myclass1
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-344.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class ::myClass 
+{ 
+	LCleanedup mem; //check:myClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-345.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-346.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1::NS2::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-347.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-348.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class  
+{ 
+	LCleanedup mem; //check:anonymous-class
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-349.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+struct classA 
+{ 
+	LCleanedup mem; //check:classA
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-350.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+struct Aclass 
+{ 
+	LCleanedup mem; //check:Aclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-351.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+struct _struct 
+{ 
+	LCleanedup mem; //check:_struct
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-352.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+struct struct_ 
+{ 
+	LCleanedup mem; //check:struct_
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-353.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+struct (MyClass) 
+{ 
+	LCleanedup mem; //check:MyClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-354.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+struct ( Myclass) 
+{ 
+	LCleanedup mem; //check:Myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-355.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+struct ( myclass1 ) 
+{ 
+	LCleanedup mem; //check:myclass1
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-356.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+struct ::myClass 
+{ 
+	LCleanedup mem; //check:myClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-357.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+struct NS1::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-358.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+struct NS1::NS2::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-359.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+struct NS1  ::  MS2 :: myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-360.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+struct  
+{ 
+	LCleanedup mem; //check:anonymous-class
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-361.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+NONSHARABLE_CLASS classA 
+{ 
+	LCleanedup mem; //check:classA
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-362.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+NONSHARABLE_CLASS Aclass 
+{ 
+	LCleanedup mem; //check:Aclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-363.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+NONSHARABLE_CLASS _struct 
+{ 
+	LCleanedup mem; //check:_struct
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-364.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+NONSHARABLE_CLASS struct_ 
+{ 
+	LCleanedup mem; //check:struct_
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-365.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+NONSHARABLE_CLASS (MyClass) 
+{ 
+	LCleanedup mem; //check:MyClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-366.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+NONSHARABLE_CLASS ( Myclass) 
+{ 
+	LCleanedup mem; //check:Myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-367.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+NONSHARABLE_CLASS ( myclass1 ) 
+{ 
+	LCleanedup mem; //check:myclass1
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-368.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+NONSHARABLE_CLASS ::myClass 
+{ 
+	LCleanedup mem; //check:myClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-369.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+NONSHARABLE_CLASS NS1::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-370.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+NONSHARABLE_CLASS NS1::NS2::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-371.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+NONSHARABLE_CLASS NS1  ::  MS2 :: myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-372.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+NONSHARABLE_CLASS  
+{ 
+	LCleanedup mem; //check:anonymous-class
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-373.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+NONSHARABLE_STRUCT classA 
+{ 
+	LCleanedup mem; //check:classA
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-374.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+NONSHARABLE_STRUCT Aclass 
+{ 
+	LCleanedup mem; //check:Aclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-375.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+NONSHARABLE_STRUCT _struct 
+{ 
+	LCleanedup mem; //check:_struct
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-376.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+NONSHARABLE_STRUCT struct_ 
+{ 
+	LCleanedup mem; //check:struct_
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-377.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+NONSHARABLE_STRUCT (MyClass) 
+{ 
+	LCleanedup mem; //check:MyClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-378.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+NONSHARABLE_STRUCT ( Myclass) 
+{ 
+	LCleanedup mem; //check:Myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-379.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+NONSHARABLE_STRUCT ( myclass1 ) 
+{ 
+	LCleanedup mem; //check:myclass1
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-380.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+NONSHARABLE_STRUCT ::myClass 
+{ 
+	LCleanedup mem; //check:myClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-381.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+NONSHARABLE_STRUCT NS1::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-382.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+NONSHARABLE_STRUCT NS1::NS2::myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-383.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+NONSHARABLE_STRUCT NS1  ::  MS2 :: myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-384.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+NONSHARABLE_STRUCT  
+{ 
+	LCleanedup mem; //check:anonymous-class
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-385.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-386.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass :  classA
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-387.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass :  Aclass
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-388.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass :  _struct
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-389.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass :  struct_
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-390.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass :  (MyClass)
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-391.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass :  ( Myclass)
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-392.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass :  ( myclass1 )
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-393.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass :  ::myClass
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-394.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass :  NS1::myclass
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-395.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass :  NS1::NS2::myclass
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-396.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass :  NS1  ::  MS2 :: myclass
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-397.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass :  
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-398.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass : public classA
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-399.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass : public Aclass
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-400.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass : public _struct
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-401.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass : public struct_
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-402.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass : public (MyClass)
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-403.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass : public ( Myclass)
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-404.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass : public ( myclass1 )
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-405.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass : public ::myClass
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-406.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass : public NS1::myclass
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-407.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass : public NS1::NS2::myclass
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-408.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass : public NS1  ::  MS2 :: myclass
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-409.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass : public 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-410.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass : protected classA
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-411.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass : protected Aclass
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-412.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass : protected _struct
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-413.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass : protected struct_
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-414.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass : protected (MyClass)
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-415.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass : protected ( Myclass)
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-416.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass : protected ( myclass1 )
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-417.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass : protected ::myClass
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-418.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass : protected NS1::myclass
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-419.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass : protected NS1::NS2::myclass
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-420.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass : protected NS1  ::  MS2 :: myclass
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-421.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass : protected 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-422.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass : private classA
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-423.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass : private Aclass
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-424.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass : private _struct
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-425.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass : private struct_
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-426.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass : private (MyClass)
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-427.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass : private ( Myclass)
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-428.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass : private ( myclass1 )
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-429.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass : private ::myClass
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-430.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass : private NS1::myclass
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-431.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass : private NS1::NS2::myclass
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-432.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass : private NS1  ::  MS2 :: myclass
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-433.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass : private 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-434.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass :virtual  classA
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-435.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass :virtual  Aclass
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-436.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass :virtual  _struct
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-437.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass :virtual  struct_
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-438.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass :virtual  (MyClass)
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-439.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass :virtual  ( Myclass)
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-440.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass :virtual  ( myclass1 )
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-441.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass :virtual  ::myClass
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-442.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass :virtual  NS1::myclass
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-443.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass :virtual  NS1::NS2::myclass
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-444.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass :virtual  NS1  ::  MS2 :: myclass
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-445.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass :virtual  
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-446.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass :virtual public classA
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-447.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass :virtual public Aclass
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-448.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass :virtual public _struct
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-449.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass :virtual public struct_
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-450.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass :virtual public (MyClass)
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-451.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass :virtual public ( Myclass)
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-452.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass :virtual public ( myclass1 )
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-453.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass :virtual public ::myClass
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-454.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass :virtual public NS1::myclass
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-455.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass :virtual public NS1::NS2::myclass
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-456.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass :virtual public NS1  ::  MS2 :: myclass
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-457.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass :virtual public 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-458.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass :virtual protected classA
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-459.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass :virtual protected Aclass
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-460.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass :virtual protected _struct
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-461.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass :virtual protected struct_
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-462.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass :virtual protected (MyClass)
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-463.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass :virtual protected ( Myclass)
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-464.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass :virtual protected ( myclass1 )
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-465.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass :virtual protected ::myClass
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-466.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass :virtual protected NS1::myclass
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-467.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass :virtual protected NS1::NS2::myclass
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-468.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass :virtual protected NS1  ::  MS2 :: myclass
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-469.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass :virtual protected 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-470.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass :virtual private classA
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-471.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass :virtual private Aclass
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-472.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass :virtual private _struct
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-473.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass :virtual private struct_
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-474.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass :virtual private (MyClass)
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-475.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass :virtual private ( Myclass)
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-476.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass :virtual private ( myclass1 )
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-477.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass :virtual private ::myClass
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-478.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass :virtual private NS1::myclass
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-479.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass :virtual private NS1::NS2::myclass
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-480.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass :virtual private NS1  ::  MS2 :: myclass
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132396-481.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class name identify with base-class-spec
+//option:
+//date:2009-1-12 11:0:58
+//author:bolowyou
+//type: CT
+template<typename t, class tt>
+class NS1  ::  MS2 :: myclass :virtual private 
+{ 
+	LCleanedup mem; //check:myclass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-001.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	
+	LCleanedup mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-002.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	
+	::LCleanedup mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-003.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	
+	:: LCleanedup mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-004.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	
+	a::ss:LCleanedup mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-005.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	public:
+	LCleanedup mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-006.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	public:
+	::LCleanedup mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-007.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	public:
+	:: LCleanedup mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-008.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	public:
+	a::ss:LCleanedup mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-009.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	private:
+	LCleanedup mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-010.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	private:
+	::LCleanedup mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-011.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	private:
+	:: LCleanedup mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-012.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	private:
+	a::ss:LCleanedup mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-013.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	protected:
+	LCleanedup mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-014.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	protected:
+	::LCleanedup mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-015.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	protected:
+	:: LCleanedup mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-016.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	protected:
+	a::ss:LCleanedup mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-017.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	
+	LCleanedup<> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-018.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	
+	::LCleanedup<> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-019.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	
+	:: LCleanedup<> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-020.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	
+	a::ss:LCleanedup<> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-021.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	public:
+	LCleanedup<> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-022.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	public:
+	::LCleanedup<> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-023.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	public:
+	:: LCleanedup<> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-024.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	public:
+	a::ss:LCleanedup<> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-025.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	private:
+	LCleanedup<> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-026.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	private:
+	::LCleanedup<> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-027.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	private:
+	:: LCleanedup<> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-028.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	private:
+	a::ss:LCleanedup<> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-029.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	protected:
+	LCleanedup<> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-030.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	protected:
+	::LCleanedup<> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-031.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	protected:
+	:: LCleanedup<> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-032.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	protected:
+	a::ss:LCleanedup<> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-033.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	
+	LCleanedup<t> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-034.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	
+	::LCleanedup<t> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-035.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	
+	:: LCleanedup<t> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-036.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	
+	a::ss:LCleanedup<t> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-037.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	public:
+	LCleanedup<t> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-038.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	public:
+	::LCleanedup<t> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-039.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	public:
+	:: LCleanedup<t> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-040.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	public:
+	a::ss:LCleanedup<t> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-041.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	private:
+	LCleanedup<t> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-042.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	private:
+	::LCleanedup<t> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-043.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	private:
+	:: LCleanedup<t> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-044.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	private:
+	a::ss:LCleanedup<t> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-045.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	protected:
+	LCleanedup<t> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-046.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	protected:
+	::LCleanedup<t> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-047.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	protected:
+	:: LCleanedup<t> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-048.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	protected:
+	a::ss:LCleanedup<t> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-049.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	
+	LCleanedup<tt::t> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-050.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	
+	::LCleanedup<tt::t> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-051.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	
+	:: LCleanedup<tt::t> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-052.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	
+	a::ss:LCleanedup<tt::t> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-053.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	public:
+	LCleanedup<tt::t> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-054.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	public:
+	::LCleanedup<tt::t> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-055.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	public:
+	:: LCleanedup<tt::t> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-056.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	public:
+	a::ss:LCleanedup<tt::t> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-057.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	private:
+	LCleanedup<tt::t> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-058.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	private:
+	::LCleanedup<tt::t> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-059.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	private:
+	:: LCleanedup<tt::t> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-060.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	private:
+	a::ss:LCleanedup<tt::t> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-061.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	protected:
+	LCleanedup<tt::t> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-062.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	protected:
+	::LCleanedup<tt::t> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-063.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	protected:
+	:: LCleanedup<tt::t> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-064.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	protected:
+	a::ss:LCleanedup<tt::t> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-065.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	
+	LCleanedup< :: tt > mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-066.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	
+	::LCleanedup< :: tt > mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-067.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	
+	:: LCleanedup< :: tt > mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-068.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	
+	a::ss:LCleanedup< :: tt > mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-069.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	public:
+	LCleanedup< :: tt > mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-070.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	public:
+	::LCleanedup< :: tt > mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-071.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	public:
+	:: LCleanedup< :: tt > mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-072.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	public:
+	a::ss:LCleanedup< :: tt > mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-073.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	private:
+	LCleanedup< :: tt > mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-074.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	private:
+	::LCleanedup< :: tt > mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-075.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	private:
+	:: LCleanedup< :: tt > mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-076.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	private:
+	a::ss:LCleanedup< :: tt > mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-077.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	protected:
+	LCleanedup< :: tt > mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-078.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	protected:
+	::LCleanedup< :: tt > mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-079.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	protected:
+	:: LCleanedup< :: tt > mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-080.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	protected:
+	a::ss:LCleanedup< :: tt > mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-081.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	
+	LCleanedup< ::t :: tt> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-082.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	
+	::LCleanedup< ::t :: tt> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-083.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	
+	:: LCleanedup< ::t :: tt> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-084.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	
+	a::ss:LCleanedup< ::t :: tt> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-085.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	public:
+	LCleanedup< ::t :: tt> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-086.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	public:
+	::LCleanedup< ::t :: tt> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-087.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	public:
+	:: LCleanedup< ::t :: tt> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-088.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	public:
+	a::ss:LCleanedup< ::t :: tt> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-089.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	private:
+	LCleanedup< ::t :: tt> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-090.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	private:
+	::LCleanedup< ::t :: tt> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-091.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	private:
+	:: LCleanedup< ::t :: tt> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-092.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	private:
+	a::ss:LCleanedup< ::t :: tt> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-093.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	protected:
+	LCleanedup< ::t :: tt> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-094.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	protected:
+	::LCleanedup< ::t :: tt> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-095.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	protected:
+	:: LCleanedup< ::t :: tt> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/DEF-testcases/pct-leavescan-def132401-096.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test class member with template
+//option:
+//date:2009-1-8 15:42:48
+//author:bolowyou
+//type: CT
+class AClass
+{ 
+	protected:
+	a::ss:LCleanedup< ::t :: tt> mem; //check:AClass
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-001.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,35 @@
+//desc:test comment and string and marco of LS1
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+void func()
+{
+/*fooL();*/ //check:-func
+
+/*
+ *
+ * fooL();  //check:-func
+ *
+*/	
+
+//this is a function call fooL(); //check:-func
+
+//"this is another function call fooL();" //check:-func
+
+string str = "calling fooL()"; //check:-func
+string str2 = "\"calling fooL()\""; //check:-func
+string str3 = "\"calling fooL()"; //check:-func
+string str4 = "'calling fooL()'"; //check:-func
+string str5 = "'calling fooL()"; //check:-func
+string str6 = " this is a function\
+                fooL()";  //check:-func
+
+MARCOFOOL(); //check:func,macro
+
+int b = 1;
+fx(/*fooL()*/ b); //check:-func
+fx(/*                                        fooL()//        */ b); //check:-func
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-002.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,33 @@
+//desc:test LC LD LX of LS1
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+void func()
+{
+/*fooLC();*/ //check:-func
+
+/*
+ *
+ * fooLC();  //check:-func
+ *
+*/	
+
+//this is a function call fooLD(); //check:-func
+
+//"this is another function call fooLX();" //check:-func
+
+string str = "calling fooLC()"; //check:-func
+string str2 = "\"calling fooLD()\""; //check:-func
+string str3 = "\"calling fooLX()"; //check:-func
+string str4 = "'calling fooLC()'"; //check:-func
+string str5 = "'calling fooLD()"; //check:-func
+string str6 = " this is a function\
+                fooLX()";  //check:-func
+
+MARCOFOOLLLD(); //check:func
+
+fooLDD(); //check:-func
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-003.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,18 @@
+//desc:test TRAP and TRAPD of LS1
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+void func()
+{
+	TRAP(fooL()); //check:-func,-leave
+	TRAP(fooLC()); //check:-func,-leave
+	TRAP(                                    fooL()   ); //check:-func,-leave
+
+        TRAP(/*this is a function call */ fooL() /*hello*/    ); //check:-func,-leave
+	
+
+	TRAPD(result,fooL()  ); //check:-func,-leave
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-004.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc:test common leave function call of LS1
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+void func()
+{
+	fooL(); //check:func,leave
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-005.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc:test LC leave function call of LS1
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+void func()
+{
+	fooLC(); //check:func,leave
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-006.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc:test LD leave function call of LS1
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+void func()
+{
+	fooLD(); //check:func,leave
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-007.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc:test LX leave function call of LS1
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+void func()
+{
+	fooLX(); //check:func,leave
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-008.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc:test calling leave function as a argument of LS1
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+void func()
+{
+	fx(fooL()); //check:func,leave
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-009.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,14 @@
+//desc:test leave function call when there is a class definiton of LS1
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+class CC
+{
+};
+
+void func()
+{
+	fooL(); //check:func,leave
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-010.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,15 @@
+//desc:test leave function call when there is another TRAP of LS1
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+void func()
+{
+	TRAP(fooL()); //check:-func,-leave
+	if(i == 1)
+	{
+	//this is a function call//
+	fxxLC(); //check:func,leave
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-011.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc:test static leave function call of LS1
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+void func()
+{
+	CL::fooL(); //check:func,leave
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-012.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc:test static LC function call of LS1
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+void func()
+{
+	CL::fooLC(); //check:func,leave
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-013.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc:test multiple static leave function call of LS1
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+void func()
+{
+	CL::CLL::fooL(); //check:func,leave
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-014.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc:test multiple static leave function call of a template class for LS1
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+void func()
+{
+	CL::CLL<int>::fooL(); //check:func,leave
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-015.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,15 @@
+//desc:test a member leave function call of LS1
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+class CL;
+class CL:public CC
+{
+};
+void func()
+{
+	CL a;
+	a.b.c.fooL(); //check:func,leave
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-016.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:test memeber template leave function call of LS1
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+void func()
+{
+	CL a;
+	a.b.c.fooL<TInt,TEXT>(); //check:-func,-leave
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-017.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,12 @@
+//desc:test member template LX function call of LS1
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+void func()
+{
+	CL a;
+	a.b.c.fooLX<TInt,TEXT>(   /*       \
+	*/); //check:-func,-leave
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-018.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,12 @@
+//desc:test member template LD function call of LS1
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+void func()
+{
+
+	CL a;
+	a.b.c.fooLD(); //check:func,leave
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-019.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,12 @@
+//desc:test calling a leave function in member function for LS1
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+class CC
+{
+void func()
+{
+	CL::fooL(); //check:func,leave
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-020.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,15 @@
+//desc:test leave function call in member function definition out of a class for LS1
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+class CC
+{
+void func();
+};
+
+void CC::func()
+{
+	CL::fooL(); //check:func,leave
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-021.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,17 @@
+//desc:test leave function call in a member function definition of a template class for LS1
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+template<class T>
+class CC
+{
+	void func();
+};
+
+template<class T>
+void CC::func()
+{
+	CL::fooL(); //check:func,leave
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-022.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,17 @@
+//desc:test leave function call in a member template function definition of a template class for LS1
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+template<class T>
+class CC
+{
+	void func();
+};
+
+template<class T>
+void CC::func()
+{
+        fLeaveL(); //check:func,leave
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-023.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,16 @@
+//desc:test template leave function call in overload function for LS1
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+
+void func(TInt x)
+{
+	fxx();
+}
+void func()
+{
+	CL a;
+	a.b.c.fooL<TInt>(); //check:-func,-leave
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-024.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,19 @@
+//desc:test leave function call in overload member function for LS1
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+
+class temp
+{
+void func(TInt x)
+{
+	fxx();
+}
+void func()
+{
+	CL a;
+	a.b.c.fooLC(); //check:func,leave
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-025.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,16 @@
+//desc:test leave function call in operator overload function for LS1
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+
+int operator+(TInt x,TInt y)
+{
+	fxx();
+}
+void operator+(TInt x, TEXT y)
+{
+	CL a;
+	a.b.c.fooLD(); //check:leave
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-026.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,19 @@
+//desc:test leave function call in member operator overload function for LS1
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+
+class temp
+{
+int operator+(TInt x)
+{
+	fxx();
+}
+void operator+(TEXT y)
+{
+	CL a;
+	a.b.c.fooLX(); //check:leave
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-027.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,15 @@
+//desc:test leave function call in type cast function of a class for LS1
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+
+class temp
+{
+operator int()
+{
+	CL a;
+	fooLC(); //check:leave
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-028.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,20 @@
+//desc:test leave function call in a member template function of a class for LS1
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+
+class temp
+{
+void func(TInt x)
+{
+	fxx();
+}
+template<class T>
+void func()
+{
+	T a;
+	a.fooL(); //check:func,leave
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-029.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,20 @@
+//desc:test LD leave function call in member template function of a class for LS1
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+
+class temp
+{
+void func(TInt x)
+{
+	fxx();
+}
+template<class T>
+void func()
+{
+	T a;
+	a.b.c.fooLD(); //check:func,leave
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-030.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,16 @@
+//desc:test common function call of LS1
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+void func()
+{
+
+fooLLc(); //check:-func,-leave
+
+foo(); //check:-func,-leave
+
+TInt y = foo(); //check:-func,-leave
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-031.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,31 @@
+//desc:test difference of class and function LS1
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+
+class CC
+{
+	void func(); //check:-leave
+};
+struct CL
+{
+	void fooL(); //check:-leave
+};
+
+struct
+{
+	void fooL(); //check:-leave
+}cc;
+
+class CX
+{
+	public:
+		TInt x;
+		class CXX
+		{
+			void fooL(); //check:-leave
+		};
+};
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS1-testcases/PCT-LeaveScan-LS1-032.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,28 @@
+//desc:test leave function call in override member function for LS1
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+class base
+{
+	void func(TInt x)
+	{
+	}
+	void func()
+	{
+	}
+
+};
+class temp:public base
+{
+void func(TInt x)
+{
+	fxx();
+}
+void func()
+{
+	CL a;
+	fooL(); //check:func,leave
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS11-testcases/PCT-LeaveScan-LS11-001.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc: test LCleanedup is used to declare a common data member of a common class
+//option:
+//date:2008-8-20 13:51:31
+//author:pingorliu
+//type: CT
+
+class temp
+{
+	private:
+                LCleanedupPtr<CBaz> member; //check:LCleanedup,class,data,member
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS11-testcases/PCT-LeaveScan-LS11-002.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc: test LCleanedup is used to declare a common data member of a common struct
+//option:
+//date:2008-8-20 13:51:31
+//author:pingorliu
+//type: CT
+
+struct temp
+{
+	private:
+                LCleanedupPtr<TInt> member; //check:LCleanedup,data,member
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS11-testcases/PCT-LeaveScan-LS11-003.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,14 @@
+//desc: test LCleanedup is used to declare a common data member of a inner class
+//option:
+//date:2008-8-20 13:51:31
+//author:pingorliu
+//type: CT
+
+void func()
+{
+class temp
+{
+	private:
+                LCleanedupBuf member; //check:LCleanedup,data,member
+};
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS11-testcases/PCT-LeaveScan-LS11-004.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,15 @@
+//desc: test LCleanedup is used to declare a common data member of a nested class
+//option:
+//date:2008-8-20 13:51:31
+//author:pingorliu
+//type: CT
+
+class base
+{
+	public:
+struct temp
+{
+	private:
+                LCleanedup member; //check:LCleanedup,data,member
+};
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS11-testcases/PCT-LeaveScan-LS11-005.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc: test LCleanedup is used to declare a common data member of a class that has no name
+//option:
+//date:2008-8-20 13:51:31
+//author:pingorliu
+//type: CT
+
+struct
+{
+	private:
+                LCleanedupPtr<TInt> member; //check:LCleanedup,data,member
+} mystruct;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS11-testcases/PCT-LeaveScan-LS11-006.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,17 @@
+//desc: test LCleanedup is used to declare a common data member of a inherit class
+//option:
+//date:2008-8-20 13:51:31
+//author:pingorliu
+//type: CT
+
+class base
+{
+};
+class base2
+{
+};
+struct temp:public base,private base2
+{
+	private:
+                LCleanedupPtr<TInt> member; //check:LCleanedup,data,member
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS11-testcases/PCT-LeaveScan-LS11-007.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,12 @@
+//desc: test LCleanedup is used to declare a common data member of a abstract struct
+//option:
+//date:2008-8-20 13:51:31
+//author:pingorliu
+//type: CT
+
+class temp
+{
+	virtual void func() = 0;
+	private:
+                LCleanedupPtr<TInt> member; //check:LCleanedup,data,member
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS11-testcases/PCT-LeaveScan-LS11-008.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,16 @@
+//desc: test LCleanedup is used to declare a common data member of a template class
+//option:
+//date:2008-8-20 13:51:31
+//author:pingorliu
+//type: CT
+
+template<class Type>
+class base
+{
+};
+template<class T>
+class temp:public base<TInt>
+{
+	private:
+                LCleanedupBuf<T> member; //check:LCleanedup,data,member
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS11-testcases/PCT-LeaveScan-LS11-009.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc: test LCleanedup is used to declare a static data member of a common struct
+//option:
+//date:2008-8-20 13:51:31
+//author:pingorliu
+//type: CT
+
+struct temp
+{
+	private:
+                const static LCleanedupPtr<TInt> member; //check:LCleanedup,data,member
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS11-testcases/PCT-LeaveScan-LS11-010.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,14 @@
+//desc: test LCleanedup is used to declare a static data member of a inner class
+//option:
+//date:2008-8-20 13:51:31
+//author:pingorliu
+//type: CT
+
+void func()
+{
+class temp
+{
+	private:
+                static LCleanedupBuf* member; //check:LCleanedup,data,member
+};
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS11-testcases/PCT-LeaveScan-LS11-011.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,15 @@
+//desc: test LCleanedup is used to declare a static data member of a nested class
+//option:
+//date:2008-8-20 13:51:31
+//author:pingorliu
+//type: CT
+
+class base
+{
+	public:
+struct temp
+{
+	private:
+                const static LCleanedup member; //check:LCleanedup,data,member
+};
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS11-testcases/PCT-LeaveScan-LS11-012.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,16 @@
+//desc: test LCleanedup is used to declare a static data member of a template class
+//option:
+//date:2008-8-20 13:51:31
+//author:pingorliu
+//type: CT
+
+template<class Type>
+class base
+{
+};
+template<class T>
+class temp:public base<TInt>
+{
+	private:
+                static LCleanedupBuf<T> member; //check:LCleanedup,data,member
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS11-testcases/PCT-LeaveScan-LS11-013.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,14 @@
+//desc: test LCleanedup is used to declare a local variable of a common member function of a common struct
+//option:
+//date:2008-8-20 13:51:31
+//author:pingorliu
+//type: CT
+
+struct temp
+{
+	private:
+               void func()
+	       {
+                LCleanedupPtr<TInt> member; //check:LCleanedup,func
+	       }
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS11-testcases/PCT-LeaveScan-LS11-014.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,14 @@
+//desc: test LCleanedup is used to declare a local variable of a virtual member function of a common struct
+//option:
+//date:2008-8-20 13:51:31
+//author:pingorliu
+//type: CT
+
+struct temp
+{
+	private:
+               virtual void func()
+	       {
+                static const LCleanedupPtr<TInt> member; //check:LCleanedup,func
+	       }
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS11-testcases/PCT-LeaveScan-LS11-015.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,17 @@
+//desc: test LCleanedup is used to declare a local variable of a overload member function of a common struct
+//option:
+//date:2008-8-20 13:51:31
+//author:pingorliu
+//type: CT
+
+struct temp
+{
+	private:
+	       void func(TInt x)
+	       {
+	       }
+               void func()
+	       {
+                static const LCleanedupPtr<TInt> member; //check:LCleanedup,func
+	       }
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS11-testcases/PCT-LeaveScan-LS11-016.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,14 @@
+//desc: test LCleanedup is used to declare a local variable of a operator function of a common class
+//option:
+//date:2008-8-20 13:51:31
+//author:pingorliu
+//type: CT
+
+class temp
+{
+	private:
+               TInt operator+(temp& t)
+	       {
+                LCleanedup member; //check:LCleanedup,operator+
+	       }
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS11-testcases/PCT-LeaveScan-LS11-017.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,14 @@
+//desc: test LCleanedup is used to declare a local variable of a type cast function of a common class
+//option:
+//date:2008-8-20 13:51:31
+//author:pingorliu
+//type: CT
+
+class temp
+{
+	private:
+               operator int()
+	       {
+                LCleanedup member; //check:LCleanedup,int
+	       }
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS11-testcases/PCT-LeaveScan-LS11-018.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,14 @@
+//desc: test LCleanedup is used to declare a local variable of a constructor of a common class
+//option:
+//date:2008-8-20 13:51:31
+//author:pingorliu
+//type: CT
+
+class temp
+{
+	private:
+               temp(TInt x)
+	       {
+                static LCleanedup member; //check:LCleanedup,temp
+	       }
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS11-testcases/PCT-LeaveScan-LS11-019.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,14 @@
+//desc: test LCleanedup is used to declare a local variable of a destructor of a common class
+//option:
+//date:2008-8-20 13:51:31
+//author:pingorliu
+//type: CT
+
+class temp
+{
+	private:
+               ~temp()
+	       {
+                static LCleanedup member; //check:LCleanedup,~temp
+	       }
+};
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS11-testcases/PCT-LeaveScan-LS11-020.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,18 @@
+//desc: test LCleanedup is used to declare a local variable of a common function of a inner class
+//option:
+//date:2008-8-20 13:51:31
+//author:pingorliu
+//type: CT
+
+void func()
+{
+class temp
+{
+	private:
+		void func()
+		{
+                LCleanedupBuf member; //check:LCleanedup,func
+		}
+};
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS11-testcases/PCT-LeaveScan-LS11-021.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,18 @@
+//desc: test LCleanedup is used to declare a local variable of a virtual member function of a nested class
+//option:
+//date:2008-8-20 13:51:31
+//author:pingorliu
+//type: CT
+
+class base
+{
+	public:
+struct temp
+{
+	private:
+               virtual void func()
+	       {
+                static LCleanedupPtr<TInt> member; //check:LCleanedup,func
+	       }
+};
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS11-testcases/PCT-LeaveScan-LS11-022.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,17 @@
+//desc: test LCleanedup is used to declare a local variable of a virtual operator function of a non-name class
+//option:
+//date:2008-8-20 13:51:31
+//author:pingorliu
+//type: CT
+
+class base
+{
+};
+struct 
+{
+	private:
+               virtual TInt operator+(base b)
+	       {
+                static LCleanedupPtr<TInt> member; //check:LCleanedup,operator+
+	       }
+} mystruct;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS11-testcases/PCT-LeaveScan-LS11-023.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,22 @@
+//desc: test LCleanedup is used to declare a local variable of a overload function of a template class
+//option:
+//date:2008-8-20 13:51:31
+//author:pingorliu
+//type: CT
+
+template<class T>
+class base
+{
+};
+template<class TT>
+struct temp:private base<TInt>
+{
+	private:
+	       virtual void func(TInt,TEXT)
+	       {
+	       }
+               virtual void func(TT b)
+	       {
+                static LCleanedupPtr<TT> member; //check:LCleanedup,func
+	       }
+}my;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS11-testcases/PCT-LeaveScan-LS11-024.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,24 @@
+//desc: test LCleanedup is used to declare a data member of a specialised class
+//option:
+//date:2008-8-20 13:51:31
+//author:pingorliu
+//type: CT
+
+template<class T>
+class base
+{
+};
+template<class TT>
+struct temp:private base<TInt>
+{
+	private:
+                
+} mystruct;
+
+template<>
+struct temp<TInt>:private base<TInt>
+{
+	private:
+		static LCleanedupPtr<TT> member; //check:LCleanedup,temp<TInt>
+
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS11-testcases/PCT-LeaveScan-LS11-025.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,27 @@
+//desc: test LCleanedup is used to declare a data member of a common function of a specialised class
+//option:
+//date:2008-8-20 13:51:31
+//author:pingorliu
+//type: CT
+
+template<class T>
+class base
+{
+};
+template<class TT>
+struct temp:private base<TInt>
+{
+	private:
+                
+} mystruct;
+
+template<>
+struct temp<TInt>:private base<TInt>
+{
+	private:
+		void func()
+		{
+		static LCleanedupPtr<TT> member; //check:LCleanedup,func
+		}
+
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS11-testcases/PCT-LeaveScan-LS11-026.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,32 @@
+//desc: test LCleanedup is used to declare a data member of a specialised function of a specialised class
+//option:
+//date:2008-8-20 13:51:31
+//author:pingorliu
+//type: CT
+
+template<class T>
+class base
+{
+};
+template<class TT>
+struct temp:private base<TInt>
+{
+	private:
+                
+} mystruct;
+
+template<>
+struct temp<TInt>:private base<TInt>
+{
+	private:
+		template<typename T>
+			void func()
+			{
+			}
+		template<>
+		void func<TInt>()
+		{
+		static LCleanedupPtr<TT> member; //check:LCleanedup,temp<TInt>
+		}
+
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS11-testcases/PCT-LeaveScan-LS11-027.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc: test other type is used to declare a common data member of a common class
+//option:
+//date:2008-8-20 13:51:31
+//author:pingorliu
+//type: CT
+
+class temp
+{
+	private:
+                LManagedPtr<CBaz> member; //check:-LCleanedup,-data,-member
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS11-testcases/PCT-LeaveScan-LS11-028.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc: test other type is used to declare a friend class of a common class
+//option:
+//date:2008-8-20 13:51:31
+//author:pingorliu
+//type: CT
+
+class temp
+{
+	private:
+                friend LCleanedupPtr; //check:LCleanedup,data,member
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS11-testcases/PCT-LeaveScan-LS11-029.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,14 @@
+//desc: test other type is used to declare a data member of a common class of a namespace
+//option:
+//date:2008-8-20 13:51:31
+//author:pingorliu
+//type: CT
+
+namespace mysp
+{
+class temp
+{
+	private:
+                LCleanedupPtr pp; //check:LCleanedup,data,member
+};
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS11-testcases/PCT-LeaveScan-LS11-030.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,13 @@
+//desc: test other type is used to declare a local data of a function of a namespace
+//option:
+//date:2008-8-20 13:51:31
+//author:pingorliu
+//type: CT
+
+namespace mysp
+{
+void func()
+{
+                LCleanedupPtr pp; //check:-LCleanedup,-data,-member
+}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS11-testcases/PCT-LeaveScan-LS11-031.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test other type is used to declare a namespace using of a class
+//option:
+//date:2008-8-20 13:51:31
+//author:pingorliu
+//type: CT
+
+class temp
+{
+                using mysp::LCleanedupPtr; //check:LCleanedup,data,member
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS12-testcases/PCT-LeaveScan-LS12-001.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,19 @@
+//desc:test TRAP and TRAPD of LS12
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+void func()
+{
+
+	TRAP(LCleanedupHandle<RBaz> baz);//check:-improper
+	TRAP(LString8 s(KMaxString));//check:-improper
+	TRAP(                                    LData buf(KMaxBuf)   );//check:-improper
+
+        TRAP(/*this is a function call */ LData buf(KMaxBuf) /*hello*/    );//check:-improper
+	
+
+	TRAPD(result,LCleanedupHandle<RBaz> baz2  );//check:-improper
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS12-testcases/PCT-LeaveScan-LS12-002.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,19 @@
+//desc:test LCleanup class used in leaving function for LS12
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+void funcL()
+{
+
+	LCleanedupHandle<RBaz> baz;//check:-improper
+	LString8 s(KMaxString);//check:-improper
+	LData buf(KMaxBuf)   ;//check:-improper
+
+        /*this is a function call */ LData buf(KMaxBuf) /*hello*/    ;//check:-improper
+	
+
+	
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS12-testcases/PCT-LeaveScan-LS12-003.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,19 @@
+//desc:test LCleanup class used in leaving template function for LS12
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+template<class T>
+void funcL()
+{
+
+	LCleanedupHandle<T> baz;//check:-improper
+	LString8 s(KMaxString);//check:-improper
+	LData buf(KMaxBuf)   ;//check:-improper
+
+        /*this is a function call */ LData buf(KMaxBuf) /*hello*/    ;//check:-improper
+	
+
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS12-testcases/PCT-LeaveScan-LS12-004.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,25 @@
+//desc:test LCleanup class used in leaving specialised template function for LS12
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+template<class T>
+void funcL()
+{
+
+	LCleanedupHandle<T> baz;//check:-improper
+	LString8 s(KMaxString);//check:-improper
+	LData buf(KMaxBuf)   ;//check:-improper
+
+        /*this is a function call */ LData buf(KMaxBuf) /*hello*/    ;//check:-improper
+	
+
+
+}
+template<>
+void funcL<TInt>()
+{
+LCleanedupHandle<T> baz;//check:-improper
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS12-testcases/PCT-LeaveScan-LS12-005.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,30 @@
+//desc:test LCleanup class used in leaving member function for LS12
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+class temp
+{
+void funcL()
+{
+
+	LCleanedupHandle<RBaz> baz;//check:-improper
+	LString8 s(KMaxString);//check:-improper
+	LData buf(KMaxBuf)   ;//check:-improper
+
+        /*this is a function call */ LData buf(KMaxBuf) /*hello*/    ;//check:-improper
+	
+
+	
+
+}
+template<class T>
+void fooL();
+
+};
+template<class T>
+void temp::fooL()
+{
+LString8 s(KMaxString);//check:-improper
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS12-testcases/PCT-LeaveScan-LS12-006.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,20 @@
+//desc:test LCleanup class used in operator function for LS12
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+class temp
+{
+TInt operator+(TInt y)
+{
+
+	TRAP(LCleanedupHandle<RBaz> baz);//check:-improper
+	TRAPD(result,LString8 s(KMaxString));//check:-improper
+	
+
+	
+
+}
+
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS12-testcases/PCT-LeaveScan-LS12-007.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,20 @@
+//desc:test LCleanup class used in typecast function for LS12
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+class temp
+{
+operator TInt()
+{
+
+	TRAP(LCleanedupHandle<RBaz> baz);//check:-improper
+	TRAPD(result,LString8 s(KMaxString));//check:-improper
+	
+
+	
+
+}
+
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS12-testcases/PCT-LeaveScan-LS12-008.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,20 @@
+//desc:test LCleanup class used in constructor function for LS12
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+class temp
+{
+temp()
+{
+
+	TRAP(LCleanedupHandle<RBaz> baz);//check:-improper
+	TRAPD(result,LString8 s(KMaxString));//check:-improper
+	
+
+	
+
+}
+
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS12-testcases/PCT-LeaveScan-LS12-009.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,20 @@
+//desc:test LCleanup class used in destructor function for LS12
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+class temp
+{
+~temp()
+{
+
+	TRAP(LCleanedupHandle<RBaz> baz);//check:-improper
+	TRAPD(result,LString8 s(KMaxString));//check:-improper
+	
+
+	
+
+}
+
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS12-testcases/PCT-LeaveScan-LS12-010.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:test LManaged class used in class to define a data member for LS12
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+class temp
+{
+LManagedHandle<RFoo> foo;//check:-improper
+
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS12-testcases/PCT-LeaveScan-LS12-011.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:test LManaged class used in non-name class to define a data member for LS12
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+struct
+{
+LManagedHandle<RFoo> foo;//check:-improper
+
+}mystruct;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS12-testcases/PCT-LeaveScan-LS12-012.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:test LManaged class used in common function for LS12
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+void func()
+{
+LManagedHandle<RFoo> foo;//check:LManaged
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS12-testcases/PCT-LeaveScan-LS12-013.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,14 @@
+//desc:test LManaged class used in member function for LS12
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+class temp
+{
+void func()
+{
+LManagedHandle<RFoo> foo;//check:LManaged
+
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS12-testcases/PCT-LeaveScan-LS12-014.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,15 @@
+//desc:test LManaged class used in template function for LS12
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+class temp
+{
+template<class T>
+void func()
+{
+LManagedHandle<RFoo> foo;//check:LManaged
+
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS12-testcases/PCT-LeaveScan-LS12-015.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,21 @@
+//desc:test LManaged class used in specialised template function for LS12
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+class temp
+{
+template<class T>
+void func()
+{
+
+
+}
+};
+
+template<>
+void temp::func<TInt>()
+{
+LManagedHandle<RFoo> foo;//check:LManaged
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS12-testcases/PCT-LeaveScan-LS12-016.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,15 @@
+//desc:test LManaged class used in type cast function for LS12
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+class temp
+{
+
+operator TInt()
+{
+LManagedHandle<RFoo> foo;//check:LManaged
+
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS12-testcases/PCT-LeaveScan-LS12-017.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,15 @@
+//desc:test LManaged class used in operator function for LS12
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+class temp
+{
+
+TInt operator +(TInt x)
+{
+LManagedHandle<RFoo> foo;//check:LManaged
+
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS12-testcases/PCT-LeaveScan-LS12-018.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,15 @@
+//desc:test LManaged class used in constructor function for LS12
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+class temp
+{
+
+temp(TInt x)
+{
+LManagedHandle<RFoo> foo;//check:LManaged
+
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS12-testcases/PCT-LeaveScan-LS12-019.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,15 @@
+//desc:test LManaged class used in destructor function for LS12
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+class temp
+{
+
+~temp()
+{
+LManagedHandle<RFoo> foo;//check:LManaged
+
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS12-testcases/PCT-LeaveScan-LS12-020.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,15 @@
+//desc:test LCleanup class used in common function for LS12
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+void func()
+{
+
+	LCleanedupHandle<RBaz> baz;//check:LCleanedup
+	
+
+	
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS12-testcases/PCT-LeaveScan-LS12-021.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,15 @@
+//desc:test LCleanup class used in template function for LS12
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+template<class T>
+void func()
+{
+
+	LString8 s(KMaxString);//check:LString
+	
+
+
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS12-testcases/PCT-LeaveScan-LS12-022.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,18 @@
+//desc:test LCleanup class used in specialised template function for LS12
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+template<class T>
+void func()
+{
+
+
+}
+template<>
+void func<TInt>()
+{
+LData<T> baz;//check:LData
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS12-testcases/PCT-LeaveScan-LS12-023.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,15 @@
+//desc:test LCleanup class used in member function for LS12
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+class temp
+{
+void foo();
+
+};
+void temp::foo()
+{
+LString8 s(KMaxString);//check:LString
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS12-testcases/PCT-LeaveScan-LS12-024.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,19 @@
+//desc:test LCleanup class used without TRAP in operator function for LS12
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+class temp
+{
+TInt operator+(TInt y)
+{
+
+	LCleanedupHandle<RBaz> baz;//check:LCleanedup
+	
+
+	
+
+}
+
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS12-testcases/PCT-LeaveScan-LS12-025.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,19 @@
+//desc:test LCleanup class used without TRAP in typecast function for LS12
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+class temp
+{
+operator TInt()
+{
+
+	LString8 s(KMaxString);//check:LString
+	
+
+	
+
+}
+
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS12-testcases/PCT-LeaveScan-LS12-026.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,19 @@
+//desc:test LCleanup class used without TRAP in constructor function for LS12
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+class temp
+{
+temp()
+{
+
+	LCleanedupHandle<RBaz> baz;//check:LCleanedup
+	
+
+	
+
+}
+
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS12-testcases/PCT-LeaveScan-LS12-027.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,19 @@
+//desc:test LCleanup class used without TRAP in destructor function for LS12
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+class temp
+{
+~temp()
+{
+
+	LString8 s(KMaxString);//check:LString
+	
+
+	
+
+}
+
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS12-testcases/PCT-LeaveScan-LS12-028.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,17 @@
+//desc:test LCleanup class used in overload function for LS12
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+void func(TInt x)
+{
+}
+void func()
+{
+
+	LString8 s(KMaxString);//check:LString
+	
+
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS12-testcases/PCT-LeaveScan-LS12-029.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,14 @@
+//desc:test LCleanup class used in function of namespace for LS12
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+void NM1::NM2::NM3::func()
+{
+
+	LString8 s(KMaxString);//check:LString
+	
+
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS12-testcases/PCT-LeaveScan-LS12-030.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,17 @@
+//desc:test LCleanup class used in const member function for LS12
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+class temp
+{
+void func() const
+{
+
+	LString8 s(KMaxString);//check:LString
+	
+
+
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS13-testcases/PCT-LeaveScan-LS13-001.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc:test LString is used as a return type of a non-leaving function for LS13
+//option:
+//date:2008-8-21 14:10:2
+//author:pingorliu
+//type: CT
+
+LString8 func() //check:func,return,LString
+{
+	foo();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS13-testcases/PCT-LeaveScan-LS13-002.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,14 @@
+//desc:test LString is used as a return type of a non-leaving member function of a class for LS13
+//option:
+//date:2008-8-21 14:10:2
+//author:pingorliu
+//type: CT
+
+class temp
+{
+	public:
+LString16 func() //check:func,return,LString
+{
+	foo();
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS13-testcases/PCT-LeaveScan-LS13-003.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,16 @@
+//desc:test LString is used as a return type of a non-leaving member function that defined out of the class for LS13
+//option:
+//date:2008-8-21 14:10:2
+//author:pingorliu
+//type: CT
+
+class temp
+{
+	public:
+LString16 func(); //check:func,return,LString
+};
+
+LString16 temp::func()//check:func,return,LString
+{
+	fooL();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS13-testcases/PCT-LeaveScan-LS13-004.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,15 @@
+//desc:test LString is used as a return type of a template function of a class for LS13
+//option:
+//date:2008-8-21 14:10:2
+//author:pingorliu
+//type: CT
+
+class temp
+{
+	public:
+template<class T>
+const LString16 func()const //check:func,return,LString
+{
+	foo();
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS13-testcases/PCT-LeaveScan-LS13-005.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,19 @@
+//desc:test LString is used as a return type of a specialised function of a class for LS13
+//option:
+//date:2008-8-21 14:10:2
+//author:pingorliu
+//type: CT
+
+class temp
+{
+	public:
+template<class T>
+const T func()const 
+{
+}
+template<>
+const LString16 func<LString16>()const //check:func,return,LString
+{
+	foo();
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS13-testcases/PCT-LeaveScan-LS13-006.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,13 @@
+//desc:test LString is used as a return type of a overload function for LS13
+//option:
+//date:2008-8-21 14:10:2
+//author:pingorliu
+//type: CT
+
+const TInt func(TInt x) 
+{
+}
+const LString16 func() //check:func,return,LString
+{
+	foo();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS13-testcases/PCT-LeaveScan-LS13-007.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,14 @@
+//desc:test LString is used as a return type of a non-leaving operator function for LS13
+//option:
+//date:2008-8-21 14:10:2
+//author:pingorliu
+//type: CT
+
+class temp
+{
+	public:
+LStringXX operator+(TInt x) //check:return,LString
+{
+	foo();
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS13-testcases/PCT-LeaveScan-LS13-008.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,14 @@
+//desc:test LString is used as a return type of a non-leaving static function of a class for LS13
+//option:
+//date:2008-8-21 14:10:2
+//author:pingorliu
+//type: CT
+
+class temp
+{
+	public:
+static const LString16 func() //check:func,return,LString
+{
+	foo();
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS13-testcases/PCT-LeaveScan-LS13-009.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,16 @@
+//desc:test LData is used as a return type of a non-leaving friend function of a class for LS13
+//option:
+//date:2008-8-21 14:10:2
+//author:pingorliu
+//type: CT
+
+class temp
+{
+	public:
+friend LData func(); //check:func,return
+};
+
+LData func() //check:func
+{
+	foo();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS13-testcases/PCT-LeaveScan-LS13-010.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,19 @@
+//desc:test LData is used as a return type of a specialised function of a class for LS13
+//option:
+//date:2008-8-21 14:10:2
+//author:pingorliu
+//type: CT
+
+class temp
+{
+	public:
+template<class T>
+const T func()const 
+{
+}
+template<>
+const LData func<LString16>()const //check:func,return
+{
+	foo();
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS13-testcases/PCT-LeaveScan-LS13-011.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,19 @@
+//desc:test LDataXX is used as a return type of a specialised function of a class for LS13
+//option:
+//date:2008-8-21 14:10:2
+//author:pingorliu
+//type: CT
+
+class temp
+{
+	public:
+template<class T>
+const T func()const 
+{
+}
+template<>
+const LDataXX func<LString16>()const //check:func,return
+{
+	foo();
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS13-testcases/PCT-LeaveScan-LS13-012.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,9 @@
+//desc:test LString is used as a return type of a leaving function for LS13
+//option:
+//date:2008-8-21 14:10:2
+//author:pingorliu
+//type: CT
+
+LString8 funcL() //check:-func,-return,-LString
+{
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS13-testcases/PCT-LeaveScan-LS13-013.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,13 @@
+//desc:test LString is used as a return type of a leaving member function of a class for LS13
+//option:
+//date:2008-8-21 14:10:2
+//author:pingorliu
+//type: CT
+
+class temp
+{
+	public:
+LString16 funcL() //check:-func,-LString
+{
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS13-testcases/PCT-LeaveScan-LS13-014.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,14 @@
+//desc:test LString is used as a return type of a template leaving function of a class for LS13
+//option:
+//date:2008-8-21 14:10:2
+//author:pingorliu
+//type: CT
+
+class temp
+{
+	public:
+template<class T>
+const LString16 funcL()const //check:-func,-return,-LString
+{
+}
+};
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS13-testcases/PCT-LeaveScan-LS13-015.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,18 @@
+//desc:test LString is used as a return type of a specialised leaving function of a class for LS13
+//option:
+//date:2008-8-21 14:10:2
+//author:pingorliu
+//type: CT
+
+class temp
+{
+	public:
+template<class T>
+const T func()const 
+{
+}
+template<>
+const LString16 funcLC<LString16>()const //check:-func,-return,-LString
+{
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS13-testcases/PCT-LeaveScan-LS13-016.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,12 @@
+//desc:test LString is used as a return type of a overload leaving function for LS13
+//option:
+//date:2008-8-21 14:10:2
+//author:pingorliu
+//type: CT
+
+const TInt funcLX(TInt x) 
+{
+}
+const LString16 funcLX() //check:-func,-return,-LString
+{
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS13-testcases/PCT-LeaveScan-LS13-017.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,16 @@
+//desc:test LData is used as a return type of a leaving friend function of a class for LS13
+//option:
+//date:2008-8-21 14:10:2
+//author:pingorliu
+//type: CT
+
+class temp
+{
+	public:
+friend LData funcLD(); //check:-func,-return
+};
+
+LData funcLD() //check:-func,-return
+{
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS14-testcases/PCT-LeaveScan-LS14-001.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc:test LString is used as a parameter of a non-leaving function for LS14
+//option:
+//date:2008-8-21 14:10:2
+//author:pingorliu
+//type: CT
+
+void func(LString8 x) //check:func,parameter
+{
+foo();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS14-testcases/PCT-LeaveScan-LS14-002.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,13 @@
+//desc:test LString is used as a parameter of a non-leaving member function of a class for LS14
+//option:
+//date:2008-8-21 14:10:2
+//author:pingorliu
+//type: CT
+
+class temp
+{
+	public:
+void func(LString16 x) //check:func,parameter
+{
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS14-testcases/PCT-LeaveScan-LS14-003.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,16 @@
+//desc:test LString is used as a parameter of a non-leaving member function that defined out of the class for LS14
+//option:
+//date:2008-8-21 14:10:2
+//author:pingorliu
+//type: CT
+
+class temp
+{
+	public:
+void func(LString16 x); //check:func,parameter
+};
+
+void temp::func(LString16 x)//check:func,parameter
+{
+	foo();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS14-testcases/PCT-LeaveScan-LS14-004.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,14 @@
+//desc:test LString is used as a parameter of a template function of a class for LS14
+//option:
+//date:2008-8-21 14:10:2
+//author:pingorliu
+//type: CT
+
+class temp
+{
+	public:
+template<class T>
+void func(const LString16 x)const //check:func,parameter
+{
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS14-testcases/PCT-LeaveScan-LS14-005.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,18 @@
+//desc:test LString is used as a parameter of a specialised function of a class for LS14
+//option:
+//date:2008-8-21 14:10:2
+//author:pingorliu
+//type: CT
+
+class temp
+{
+	public:
+template<class T>
+const T func()const 
+{
+}
+template<>
+void func<LString16>(const LString16)const //check:func,parameter
+{
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS14-testcases/PCT-LeaveScan-LS14-006.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,14 @@
+//desc:test LString is used as a parameter of a overload function for LS14
+//option:
+//date:2008-8-21 14:10:2
+//author:pingorliu
+//type: CT
+
+void func(TInt x,const LString16 y) 
+{
+	foo();
+}
+void func(const LString16 x) //check:func,parameter
+{
+	foo();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS14-testcases/PCT-LeaveScan-LS14-007.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,13 @@
+//desc:test LString is used as a parameter of a non-leaving operator function for LS14
+//option:
+//date:2008-8-21 14:10:2
+//author:pingorliu
+//type: CT
+
+class temp
+{
+	public:
+TInt operator+(LStringXX x) //check:parameter,LString
+{
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS14-testcases/PCT-LeaveScan-LS14-008.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,13 @@
+//desc:test LString is used as a parameter of a non-leaving static function of a class for LS14
+//option:
+//date:2008-8-21 14:10:2
+//author:pingorliu
+//type: CT
+
+class temp
+{
+	public:
+void func(static const LString16 x) //check:func,parameter
+{
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS14-testcases/PCT-LeaveScan-LS14-009.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,15 @@
+//desc:test LData is used as a parameter of a non-leaving friend function of a class for LS14
+//option:
+//date:2008-8-21 14:10:2
+//author:pingorliu
+//type: CT
+
+class temp
+{
+	public:
+friend  void func(LData x); //check:func,parameter
+};
+
+void func(LData x) //check:func,parameter
+{
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS14-testcases/PCT-LeaveScan-LS14-010.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,18 @@
+//desc:test LData is used as a parameter of a specialised function of a class for LS14
+//option:
+//date:2008-8-21 14:10:2
+//author:pingorliu
+//type: CT
+
+class temp
+{
+	public:
+template<class T>
+const T func(const T x)const 
+{
+}
+template<>
+const void func<LString16>(const LData x)const //check:func,parameter
+{
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS14-testcases/PCT-LeaveScan-LS14-011.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,18 @@
+//desc:test LDataXX is used as a parameter of a specialised function of a class for LS14
+//option:
+//date:2008-8-21 14:10:2
+//author:pingorliu
+//type: CT
+
+class temp
+{
+	public:
+template<class T>
+const T func(const T y)const 
+{
+}
+template<>
+const void func<const LDataXX>(const LDataXX y)const //check:func,parameter
+{
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS14-testcases/PCT-LeaveScan-LS14-012.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc:test LString is used as a parameter of a leaving function for LS14
+//option:
+//date:2008-8-21 14:10:2
+//author:pingorliu
+//type: CT
+
+void funcL(LString8 x) //check:-func,-parameter
+{
+	foo();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS14-testcases/PCT-LeaveScan-LS14-013.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,13 @@
+//desc:test LString is used as a parameter of a leaving member function of a class for LS14
+//option:
+//date:2008-8-21 14:10:2
+//author:pingorliu
+//type: CT
+
+class temp
+{
+	public:
+void funcL(LString16 x) //check:-func,-parameter
+{
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS14-testcases/PCT-LeaveScan-LS14-014.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,14 @@
+//desc:test LString is used as a parameter of a template leaving function of a class for LS14
+//option:
+//date:2008-8-21 14:10:2
+//author:pingorliu
+//type: CT
+
+class temp
+{
+	public:
+template<class T>
+T funcL(const LString16 x)const //check:-func,-parameter
+{
+}
+};
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS14-testcases/PCT-LeaveScan-LS14-015.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,18 @@
+//desc:test LString is used as a parameter of a specialised leaving function of a class for LS14
+//option:
+//date:2008-8-21 14:10:2
+//author:pingorliu
+//type: CT
+
+class temp
+{
+	public:
+template<class T>
+const T func(const T x )const 
+{
+}
+template<>
+const LString16 funcLC<LString16>(const LString16 x)const //check:-func,-parameter
+{
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS14-testcases/PCT-LeaveScan-LS14-016.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,14 @@
+//desc:test LString is used as a parameter of a overload leaving function for LS14
+//option:
+//date:2008-8-21 14:10:2
+//author:pingorliu
+//type: CT
+
+const TInt funcLX(TInt x) 
+{
+	foo();
+}
+const TInt funcLX(const LString16) //check:-func,-parameter
+{
+	foo();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS14-testcases/PCT-LeaveScan-LS14-017.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,17 @@
+//desc:test LData is used as a parameter of a leaving friend function of a class for LS14
+//option:
+//date:2008-8-21 14:10:2
+//author:pingorliu
+//type: CT
+
+class temp
+{
+	public:
+friend void funcLD(LData x); //check:-func,-parameter
+};
+
+void funcLD(LData x) //check:-func,-parameter
+{
+	foo();
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS14-testcases/PCT-LeaveScan-LS14-018.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,13 @@
+//desc:test LString is used as a parameter of a non-leaving member function of a class for LS14
+//option:
+//date:2008-8-21 14:10:2
+//author:pingorliu
+//type: CT
+
+class temp
+{
+	public:
+void func(LString16 x) //check:func,parameter
+{
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS15-testcases/PCT-LeaveScan-LS15-001.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc: test LCleanedup class used with Classic cleanup in common function for LS15
+//option:
+//date:2008-8-21 15:19:15
+//author:pingorliu
+//type: CT
+
+void funcL()
+{
+LCleanedupHandle<RBar> bar;
+CFoo* foo1 = CFoo::NewLC(); //check:with,LCleaned
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS15-testcases/PCT-LeaveScan-LS15-002.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,13 @@
+//desc: test LCleanedup class used with Classic cleanup PushL in common function for LS15
+//option:
+//date:2008-8-21 15:19:15
+//author:pingorliu
+//type: CT
+
+void funcL()
+{
+LCleanedupHandle<RBar> bar;
+CFoo* foo2 = CFoo::NewL(); 
+CleanupStack::PushL(foo2); //check:with,LCleaned
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS15-testcases/PCT-LeaveScan-LS15-003.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,13 @@
+//desc: test LCleanedup class used with Classic cleanup PushL in common non-leaving function for LS15
+//option:
+//date:2008-8-21 15:19:15
+//author:pingorliu
+//type: CT
+
+void func()
+{
+LCleanedupHandle<RBar> bar;
+CFoo* foo2 = CFoo::NewL(); 
+CleanupStack::PushL(foo2); //check:with,LCleaned
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS15-testcases/PCT-LeaveScan-LS15-004.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,17 @@
+//desc: test LCleanedup class used with Classic cleanup PushL in member function for LS15
+//option:
+//date:2008-8-21 15:19:15
+//author:pingorliu
+//type: CT
+
+class temp
+{
+	public:
+void funcL()
+{
+LCleanedupHandle<RBar> bar;
+CFoo* foo2 = CFoo::NewL(); 
+CleanupStack::PushL(foo2); //check:with,LCleaned
+
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS15-testcases/PCT-LeaveScan-LS15-005.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,17 @@
+//desc: test LCleanedup class used with Classic cleanup PushL in operator function for LS15
+//option:
+//date:2008-8-21 15:19:15
+//author:pingorliu
+//type: CT
+
+class temp
+{
+	public:
+TInt operator+(TInt x)
+{
+LCleanedupHandle<RBar> bar;
+CFoo* foo2 = CFoo::NewL(); 
+CleanupStack::PushL(foo2); //check:with,LCleaned
+
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS15-testcases/PCT-LeaveScan-LS15-006.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,16 @@
+//desc: test LCleanedup class used with Classic cleanup PushL in type cast function for LS15
+//option:
+//date:2008-8-21 15:19:15
+//author:pingorliu
+//type: CT
+
+class temp
+{
+	public:
+operator TInt()
+{
+LCleanedupHandle<RBar> bar;
+CFoo* foo2 = CFoo::NewL(); 
+CleanupStack::PushL(foo2); //check:with,LCleaned
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS15-testcases/PCT-LeaveScan-LS15-007.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,17 @@
+//desc: test LCleanedup class used with Classic cleanup PushL in constructor for LS15
+//option:
+//date:2008-8-21 15:19:15
+//author:pingorliu
+//type: CT
+
+class temp
+{
+	public:
+temp()
+{
+LCleanedupHandle<RBar> bar;
+CFoo* foo2 = CFoo::NewL(); 
+CleanupStack::PushL(foo2); //check:with,LCleaned
+
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS15-testcases/PCT-LeaveScan-LS15-008.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,25 @@
+//desc: test LCleanedup class used with Classic cleanup PushL in template function for LS15
+//option:
+//date:2008-8-21 15:19:15
+//author:pingorliu
+//type: CT
+
+class temp
+{
+	public:
+
+template<class T>
+void funcL()
+{
+
+}
+template<>
+void funcL<TInt>()
+{
+LCleanedupHandle<RBar> bar;
+CFoo* foo2 = CFoo::NewL(); 
+CleanupStack::PushL(foo2); //check:with,LCleaned
+
+}
+
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS15-testcases/PCT-LeaveScan-LS15-009.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,22 @@
+//desc: test LCleanedup class used with Classic cleanup PushL in member function that defined out of class for LS15
+//option:
+//date:2008-8-21 15:19:15
+//author:pingorliu
+//type: CT
+
+template<class T>
+class temp
+{
+	public:
+void funcL();
+};
+template<class T>
+void temp::funcL<T>()
+{
+LCleanedupHandle<RBar> bar;
+CFoo* foo2 = CFoo::NewL(); 
+CleanupStack::PushL(foo2); //check:with,LCleaned
+
+
+}
+	
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS15-testcases/PCT-LeaveScan-LS15-010.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,23 @@
+//desc: test LCleanedup class used with Classic cleanup PushL in template function for LS15
+//option:
+//date:2008-8-21 15:19:15
+//author:pingorliu
+//type: CT
+
+class temp
+{
+	public:
+
+template<class T>
+void funcL()
+{
+
+}
+template<>
+void funcL<TInt>()
+{
+LCleanedupHandle<RBar> bar;
+CFoo* foo1 = CFoo::NewLC(); //check:with,LCleaned
+}
+
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS15-testcases/PCT-LeaveScan-LS15-011.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,23 @@
+//desc: test LCleanedup class used with Classic cleanup in template function for LS15
+//option:
+//date:2008-8-21 15:19:15
+//author:pingorliu
+//type: CT
+
+class temp
+{
+	public:
+
+template<class T>
+void func()
+{
+
+}
+template<>
+void func<TInt>()
+{
+LCleanedupXX<RBar> bar;
+CFoo* foo1 = CFoo::NewLC(); //check:with,LCleaned
+}
+
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS15-testcases/PCT-LeaveScan-LS15-012.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,15 @@
+//desc: test LCleanedup class used with Classic cleanup in operator function for LS15
+//option:
+//date:2008-8-21 15:19:15
+//author:pingorliu
+//type: CT
+
+class temp
+{
+	public:
+TInt operator+(TInt x)
+{
+LCleanedupHandle<RBar> bar;
+CFoo* foo1 = CFoo::NewLC(); //check:with,LCleaned
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS15-testcases/PCT-LeaveScan-LS15-013.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,15 @@
+//desc: test LCleanedup class used with Classic cleanup in operator function for LS15
+//option:
+//date:2008-8-21 15:19:15
+//author:pingorliu
+//type: CT
+
+class temp
+{
+	public:
+TInt operator+(TInt x)
+{
+LCleanedupHandle<RBar> bar;
+CFoo* foo1 = funcLC(); //check:-with,-LCleaned
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS15-testcases/PCT-LeaveScan-LS15-014.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,23 @@
+//desc: test LCleanedup class used with Classic cleanup in template function for LS15
+//option:
+//date:2008-8-21 15:19:15
+//author:pingorliu
+//type: CT
+
+class temp
+{
+	public:
+
+template<class T>
+void func()
+{
+
+}
+template<>
+void func<TInt>()
+{
+LCleanedupXX<RBar> bar;
+CFoo* foo1 = funcLC(); //check:-with,-LCleaned
+}
+
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS15-testcases/PCT-LeaveScan-LS15-015.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,22 @@
+//desc: test LCleanedup class not used with Classic cleanup in template function for LS15
+//option:
+//date:2008-8-21 15:19:15
+//author:pingorliu
+//type: CT
+
+class temp
+{
+	public:
+
+template<class T>
+void func()
+{
+
+}
+template<>
+void func<TInt>()
+{
+CFoo* foo1 = CFoo::NewLC(); //check:-with,-LCleaned
+}
+
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS15-testcases/PCT-LeaveScan-LS15-016.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,16 @@
+//desc: test LCleanedup class not used with Classic cleanup PushL in operator function for LS15
+//option:
+//date:2008-8-21 15:19:15
+//author:pingorliu
+//type: CT
+
+class temp
+{
+	public:
+TInt operator+(TInt x)
+{
+CFoo* foo2 = CFoo::NewL(); 
+CleanupStack::PushL(foo2); //check:-with,-LCleaned
+
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS15-testcases/PCT-LeaveScan-LS15-017.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc: test LCleanedup class not used with Classic cleanup in common function for LS15
+//option:
+//date:2008-8-21 15:19:15
+//author:pingorliu
+//type: CT
+
+void funcL()
+{
+
+CFoo* foo1 = CFoo::NewLC(); //check:-with,-LCleaned
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS15-testcases/PCT-LeaveScan-LS15-018.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,18 @@
+//desc: test LCleanedup class not used with Classic cleanup PushL in type cast function for LS15
+//option:
+//date:2008-8-21 15:19:15
+//author:pingorliu
+//type: CT
+
+class temp
+{
+	public:
+operator TInt()
+{
+CFoo* foo1 = CFoo::NewL(); 
+CleanupStack::PushL(foo1); //check:-with,-LCleaned
+CFoo* foo2 = CFoo::NewL(); 
+CleanupStack::PushL(foo2); //check:-with,-LCleaned
+
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS16-testcases/PCT-LeaveScan-LS16-001.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc: test LCleanedup class used in LC function for LS16
+//option:
+//date:2008-8-21 15:19:15
+//author:pingorliu
+//type: CT
+
+void funcLC()
+{
+LCleanedupHandle<RBar> bar; //check:suffixed,LCleanedup
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS16-testcases/PCT-LeaveScan-LS16-002.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,15 @@
+//desc: test LCleanedup class used in member function for LS16
+//option:
+//date:2008-8-21 15:19:15
+//author:pingorliu
+//type: CT
+
+class temp
+{
+	public:
+void funcLC()
+{
+LCleanedupHandle<RBar> bar;//check:suffixed,LCleanedup
+
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS16-testcases/PCT-LeaveScan-LS16-003.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,23 @@
+//desc: test LCleanedup class used in template function for LS16
+//option:
+//date:2008-8-21 15:19:15
+//author:pingorliu
+//type: CT
+
+class temp
+{
+	public:
+
+template<class T>
+void funcLC()
+{
+
+}
+template<>
+void funcLC<TInt>()
+{
+LCleanedupHandle<RBar> bar;//check:suffixed,LCleanedup
+
+}
+
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS16-testcases/PCT-LeaveScan-LS16-004.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,14 @@
+//desc: test LCleanedup class used in LC overload function for LS16
+//option:
+//date:2008-8-21 15:19:15
+//author:pingorliu
+//type: CT
+
+void funcLC()
+{
+}
+void funcLC(TInt x)
+{
+LCleanedupHandle<RBar> bar; //check:suffixed,LCleanedup
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS16-testcases/PCT-LeaveScan-LS16-005.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,17 @@
+//desc: test LCleanedup class used in member function that defined out of classfor LS16
+//option:
+//date:2008-8-21 15:19:15
+//author:pingorliu
+//type: CT
+
+class temp
+{
+	public:
+void funcLC();
+};
+
+void temp::funcLC()
+{
+LCleanedupHandle<RBar> bar;//check:suffixed,LCleanedup
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS16-testcases/PCT-LeaveScan-LS16-006.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,15 @@
+//desc: test LCleanedup class used in member L function for LS16
+//option:
+//date:2008-8-21 15:19:15
+//author:pingorliu
+//type: CT
+
+class temp
+{
+	public:
+void funcL()
+{
+LCleanedupHandle<RBar> bar;//check:-suffixed,-LCleanedup
+
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS16-testcases/PCT-LeaveScan-LS16-007.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,23 @@
+//desc: test LCleanedup class used in template L function for LS16
+//option:
+//date:2008-8-21 15:19:15
+//author:pingorliu
+//type: CT
+
+class temp
+{
+	public:
+
+template<class T>
+void funcL()
+{
+
+}
+template<>
+void funcL<TInt>()
+{
+LCleanedupHandle<RBar> bar;//check:-suffixed,-LCleanedup
+
+}
+
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS16-testcases/PCT-LeaveScan-LS16-008.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,13 @@
+//desc: test LCleanedup class used in non-leaving overload function for LS16
+//option:
+//date:2008-8-21 15:19:15
+//author:pingorliu
+//type: CT
+
+void func()
+{
+}
+void func(TInt x)
+{
+LCleanedupHandle<RBar> bar; //check:-suffixed,LCleanedup
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS16-testcases/PCT-LeaveScan-LS16-009.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,15 @@
+//desc: test LCleanedup class used in operator function for LS16
+//option:
+//date:2008-8-21 15:19:15
+//author:pingorliu
+//type: CT
+
+class temp
+{
+	public:
+TInt operator+(TInt x)
+{
+LCleanedupHandle<RBar> bar;//check:-suffixed,LCleanedup
+
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS16-testcases/PCT-LeaveScan-LS16-010.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,15 @@
+//desc: test LCleanedup class used in constructor for LS16
+//option:
+//date:2008-8-21 15:19:15
+//author:pingorliu
+//type: CT
+
+class temp
+{
+	public:
+temp(TInt x)//check:
+{
+LCleanedupHandle<RBar> bar;//check:-suffixed,LCleanedup
+
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS16-testcases/PCT-LeaveScan-LS16-011.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,15 @@
+//desc: test LCleanedup class used in typecast function for LS16
+//option:
+//date:2008-8-21 15:19:15
+//author:pingorliu
+//type: CT
+
+class temp
+{
+	public:
+operator TInt()
+{
+LCleanedupHandle<RBar> bar;//check:-suffixed,LCleanedup
+
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS16-testcases/PCT-LeaveScan-LS16-012.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,15 @@
+//desc: test non LCleanedup class used in member function for LS16
+//option:
+//date:2008-8-21 15:19:15
+//author:pingorliu
+//type: CT
+
+class temp
+{
+	public:
+void funcLC()
+{
+LXCleanedupHandle<RBar> bar;//check:-suffixed,-LCleanedup
+
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-001.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,27 @@
+//desc:test comment for LS2
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+void funcL()
+{//check:funcL,leavers
+
+/*fooL();*/
+
+/*
+ *
+ * fooL();
+ *
+*/	
+
+//this is a function call fooL();
+
+//"this is another function call fooL();"
+
+
+int b = 1;
+fx(/*fooL()*/ b);
+fx(/*                                        fooL()//        */ b);
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-002.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,19 @@
+//desc:test string for LS2
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+void funcL()
+{//check:funcL,leavers
+
+string str = "calling fooL()";
+string str2 = "\"calling fooL()\"";
+string str3 = "\"calling fooL()";
+string str4 = "'calling fooL()'";
+string str5 = "'calling fooL()";
+string str6 = " this is a function\
+                fooL()";
+
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-003.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,13 @@
+//desc:test marco for LS2
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+void funcL()
+{//check:-funcL,-leavers
+
+MARCOFOOL();
+
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-004.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,34 @@
+//desc:test LC LD LX for LS2
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+void funcL()
+{//check:-funcL,-leavers
+
+/*fooLC();*/
+
+/*
+ *
+ * fooLC();
+ *
+*/	
+
+//this is a function call fooLD();
+
+//"this is another function call fooLX();"
+
+string str = "calling fooLC()";
+string str2 = "\"calling fooLD()\"";
+string str3 = "\"calling fooLX()";
+string str4 = "'calling fooLC()'";
+string str5 = "'calling fooLD()";
+string str6 = " this is a function\
+                fooLX()";
+
+MARCOFOOLLLD();
+
+fooLDD();
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-005.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,19 @@
+//desc:test TRAP and TRAPD of LS2
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+void funcL()
+{//check:funcL,leavers
+
+	TRAP(fooL());
+	TRAP(fooLC());
+	TRAP(                                    fooL()   );
+
+        TRAP(/*this is a function call */ fooL() /*hello*/    );
+	
+
+	TRAPD(result,fooL()  );
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-006.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:test a empty leave function definiton for LS2
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+void funcL()
+{//check:-funcL,-leavers
+
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-007.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,13 @@
+//desc:test a common leave function definiton for LS2
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+void funcL()
+{//check:funcL,leavers
+   
+	TInt x = 1;
+	foo();
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-008.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,17 @@
+//desc:test a common member leave function definiton that no leavers for LS2
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+class temp
+{
+void funcL()
+{//check:funcL,leavers
+   
+	TInt x = 1;
+	foo();
+
+}
+};
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-009.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,19 @@
+//desc:test a overload leave function definiton that no leavers for LS2
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+void funcL(TInt x)
+{
+	fooL();
+}
+void funcL()
+{//check:funcL,leavers
+   
+	TInt x = 1;
+	foo();
+
+}
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-010.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,21 @@
+//desc:test a overload member leave function definiton that no leavers for LS2
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+class temp
+{
+void funcL(TInt x)
+{
+	fooL();
+}
+void funcL()
+{//check:funcL,leavers
+   
+	TInt x = 1;
+	foo();
+
+}
+};
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-011.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,13 @@
+//desc:test a operator overload function definiton for LS2
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+TInt operator+ (TInt x,TInt y)
+{//check:-leavers
+   
+	TInt x = 1;
+	foo();
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-012.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,17 @@
+//desc:test a member operator overload function definiton for LS2
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+class temp
+{
+TInt operator+ (TInt x)
+{//check:-leavers
+   
+	TInt x = 1;
+	foo();
+
+}
+};
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-013.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,17 @@
+//desc:test a type cast function definiton of a class for LS2
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+class temp
+{
+operator int ()
+{//check:-leavers
+   
+	TInt x = 1;
+	foo();
+
+}
+};
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-014.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,18 @@
+//desc:test a common member leave function definiton that no leavers of a template class for LS2
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+template<class T>
+class temp
+{
+void funcL()
+{//check:funcL,leavers
+   
+	T x = 1;
+	foo();
+
+}
+};
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-015.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,15 @@
+//desc:test a common template leave function definiton that no leavers for LS2
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+template<class T>
+void funcL()
+{//check:funcL,leavers
+   
+	T x = 1;
+	foo();
+
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-016.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:test common leave function call of LS2
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+void funcL()
+{//check:-funcL,-leavers
+
+	fooL();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-017.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:test LC leave function call of LS2
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+void funcL()
+{//check:-funcL,-leavers
+
+	fooLC();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-018.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:test LD leave function call of LS2
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+void funcL()
+{ //check:-funcL,-leavers
+
+	fooLD();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-019.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:test LX leave function call of LS2
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+void funcL()
+{//check:-funcL,-leavers
+
+	fooLX(); 
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-020.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:test calling leave function as a argument of LS2
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+void funcL()
+{//check:-funcL,-leavers
+
+	fx(fooL()); 
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-021.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,15 @@
+//desc:test leave function call when there is a class definiton of LS2
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+class CC
+{
+};
+
+void funcL()
+{//check:-funcL,-leavers
+
+	fooL();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-022.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,16 @@
+//desc:test leave function call when there is another TRAP of LS2
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+void funcL()
+{//check:-funcL,-leavers
+
+	TRAP(fooL()); 
+	if(i == 1)
+	{
+	//this is a function call//
+	fxxLC(); 
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-023.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:test static leave function call of LS2
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+void funcL()
+{//check:-funcL,-leavers
+
+	CL::fooL();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-024.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:test static LC function call of LS2
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+void funcL()
+{//check:-funcL,-leavers
+
+	CL::fooLC();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-025.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:test multiple static leave function call of LS2
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+void funcL()
+{//check:-funcL,-leavers
+
+	CL::CLL::fooL();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-026.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:test multiple static leave function call of a template class for LS2
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+void funcL()
+{//check:-funcL,-leavers
+
+	CL::CLL<int>::fooL();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-027.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,16 @@
+//desc:test a member leave function call of LS2
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+class CL;
+class CL:public CC
+{
+};
+void funcL()
+{//check:-funcL,-leavers
+
+	CL a;
+	a.b.c.fooL();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-028.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,12 @@
+//desc:test memeber template leave function call of LS2
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+void funcL()
+{//check:+funcL,+leavers
+
+	CL a;
+	a.b.c.fooL<TInt,TEXT>();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-029.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,14 @@
+//desc:test member template LX function call of LS2
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+
+void funcL()
+{//check:-funcL,-leavers
+
+	CL a;
+	a.b.c.fooLX(   /*       \
+	*/); 
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-030.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,13 @@
+//desc:test member template LD function call of LS2
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+void funcL()
+{//check:-funcL,-leavers
+
+
+	CL a;
+	a.b.c.fooLD();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-031.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,13 @@
+//desc:test calling a leave function in member function for LS2
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+class CC
+{
+void funcL()
+{//check:-funcL,-leavers
+
+	CL::fooL();
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-032.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,16 @@
+//desc:test leave function call in member function definition out of a class for LS2
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+class CC
+{
+void funcL();
+};
+
+void CC::funcL()
+{//check:-funcL,-leavers
+
+	CL::fooL();
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-033.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,18 @@
+//desc:test leave function call in a member function definition of a template class for LS2
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+template<class T>
+class CC
+{
+	void funcL();
+};
+
+template<class T>
+void CC::funcL()
+{//check:-funcL,-leavers
+
+	CL::fooL();
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-034.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,18 @@
+//desc:test static template leave function call in a member template function definition of a template class for LS2
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+template<class T>
+class CC
+{
+	void funcL();
+};
+
+template<class T>
+void CC::funcL()
+{//check:+funcL,+leavers
+
+	CL<TInt>::fooL<TInt>();
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-035.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,17 @@
+//desc:test template leave function call in overload function for LS2
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+
+void funcL(TInt x)
+{
+	fxx();
+}
+void funcL()
+{//check:-funcL,-leavers
+
+	CL a;
+	a.b.c.fooLC();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-036.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,20 @@
+//desc:test leave function call in overload member function for LS2
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+
+class temp
+{
+void funcL(TInt x)
+{
+	fxx();
+}
+void funcL()
+{//check:-funcL,-leavers
+
+	CL a;
+	fleaveL();
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-037.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,21 @@
+//desc:test leave function call in a member template function of a class for LS2
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+
+class temp
+{
+void funcL(TInt x)
+{
+	fxx();
+}
+template<class T>
+void funcL()
+{//check:-funcL,-leavers
+
+	
+	FooL();
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-038.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,21 @@
+//desc:test LD leave function call in member template function of a class for LS2
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+
+class temp
+{
+void funcL(TInt x)
+{
+	fxx();
+}
+template<class T>
+void funcL()
+{//check:-funcL,-leavers
+
+	T a;
+	a.b.c.fooLD();
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-039.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,17 @@
+//desc:test common function call of LS2
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+void funcL()
+{//check:funcL,leavers
+
+
+fooLLc(); 
+
+foo(); 
+
+TInt y = foo(); 
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-040.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,29 @@
+//desc:test leave function call in override member function for LS2
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+class base
+{
+	void funcL(TInt x)
+	{
+	}
+	void funcL()
+	{
+	}
+
+};
+class temp:public base
+{
+void funcL(TInt x)
+{
+	fxx();
+}
+void funcL()
+{//check:-funcL,-leavers
+
+	CL a;
+	a.b.c.fooL();
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-041.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,14 @@
+//desc:test constructor of a Lclass for LS2
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+class Ltemp
+{
+Ltemp()
+{//check:contain,leaver
+
+
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-042.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,16 @@
+//desc:test constructor defined out of class of a Lclass for LS2
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+class Ltemp
+{
+Ltemp();
+};
+Ltemp::Ltemp();
+{//check:-contain,-leaver
+
+
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-043.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,14 @@
+//desc:test operator function of a Lclass for LS2
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+class Ltemp
+{
+TInt operator+(TInt)
+{//check:contain,leaver
+
+
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-044.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,17 @@
+//desc:test operator function defined out of class of a Lclass for LS2
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+class Ltemp
+{
+TInt operator+(TInt);
+};
+
+TInt Ltemp::operator+(TInt)
+{//check:contain,leaver
+	foo();
+
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-045.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,15 @@
+//desc:test template constructor of a Lclass for LS2
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+class Ltemp
+{
+template<class T>
+Ltemp(T x)
+{//check:contain,leaver
+
+
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-046.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,22 @@
+//desc:test specialised template constructor of a Lclass for LS2
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+class Ltemp
+{
+template<class T>
+Ltemp(T x)
+{
+
+	fooL();
+
+}
+};
+
+template<>
+Ltemp::Ltemp<TInt>()
+{//check:contain,leaver
+	foo();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-047.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,22 @@
+//desc:test specialised template operator of a Lclass for LS2
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+class Ltemp
+{
+template<class T>
+TInt operator-(T x)
+{
+
+	fooL();
+
+}
+};
+
+template<>
+TInt Ltemp::operator-<TInt>()
+{//check:contain,leaver
+	foo();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-048.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,22 @@
+//desc:test common function of a Lclass for LS2
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+class Ltemp
+{
+
+void func()
+{//check:-contain,-leaver
+	foo();
+
+}
+void foo();
+};
+
+
+void Ltemp::foo()
+{//check:-contain,-leaver
+	foo();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-049.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,20 @@
+//desc:test constructor with calling leaving function of a Lclass for LS2
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+class Ltemp
+{
+Ltemp()
+{//check:-contain,-leaver
+fooL();
+
+}
+Ltemp(TInt x);
+};
+
+Ltemp::Ltemp(TInt x)
+{//check:-contain,-leaver
+	fooL();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS2-testcases/PCT-LeaveScan-LS2-050.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,20 @@
+//desc:test operator with calling leaving function of a Lclass for LS2
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+class Ltemp
+{
+TInt operator++()
+{//check:-contain,-leaver
+fooL();
+
+}
+TInt operator+(TInt x);
+};
+
+TInt Ltemp::operator+(TInt x)
+{//check:-contain,-leaver
+	fooL();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS3-testcases/PCT-LeaveScan-LS3-001.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,36 @@
+//desc:test new(ELeave) and User::Leave of LS3
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+void func()
+{
+/*new(ELeave)CL();*/ //check:-func,-calls
+
+/*
+ *
+ * new(ELeave)CL();  //check:-func,-calls
+ *
+*/	
+
+new(ELeavet)CL(); //check:func,ELeave
+
+//this is a function call User::Leave(); //check:-func,-calls
+//this is a function call User::LeaveIfError(); //check:-func,-calls
+//this is a function call User::LeaveNoMemory(); //check:-func,-calls
+//this is a function call User::LeaveIfError(); //check:-func,-calls
+
+
+string str = "calling new(ELeave)CL()"; //check:-func,-ELeave
+string str2 = "\"calling User::Leave()\""; //check:-func,-calls
+string str3 = "\"calling User::LeaveIfError()"; //check:-func,-calls
+string str4 = "'calling ELeave'"; //check:-func,-calls
+string str5 = "'calling Leave()"; //check:-func,-calls
+string str6 = " this is a function\
+                User::Leave()";  //check:-func,-calls
+
+int ELeavet = 1; //check:-func,-calls
+MARCOELEAVE(); //check:-func,-calls
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS3-testcases/PCT-LeaveScan-LS3-002.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,17 @@
+//desc:test TRAP and TRAPD of LS3
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+void func()
+{
+
+	
+	TRAP(new(ELeave)CL()); //check:-func,-calls
+        TRAP(User::Leave()); //check:-func,-calls
+	TRAP(User::LeaveIfError()         ); //check:-func,-calls
+
+	TRAPD(result,   User::Leave(        )     ); //check:-func,-calls
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS3-testcases/PCT-LeaveScan-LS3-003.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc:test new(ELeave) call of LS3
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+void func()
+{
+	new(ELeave)CL(); //check:func,ELeave
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS3-testcases/PCT-LeaveScan-LS3-004.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc:test User::Leave call of LS3
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+void func()
+{
+	User::Leave(); //check:func,calls
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS3-testcases/PCT-LeaveScan-LS3-005.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc:test User::LeaveIfError call of LS3
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+void func()
+{
+	User::LeaveIfError(); //check:func,calls
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS3-testcases/PCT-LeaveScan-LS3-006.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc:test User::LeaveNoMemory call of LS3
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+void func()
+{
+	User::LeaveNoMemory(); //check:func,calls
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS3-testcases/PCT-LeaveScan-LS3-007.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc:test a special User::LeaveXX call of LS3
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+void func()
+{
+	User::LeaveXX(); //check:func,calls
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS3-testcases/PCT-LeaveScan-LS3-008.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+//desc:test new(ELeave) call as a argument of a member template function call for LS3
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+void func()
+{
+	CL a;
+	a.b.c.foo<TInt,TEXT>(new(ELeave)CL()                       ); //check:func,ELeave
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS3-testcases/PCT-LeaveScan-LS3-009.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,17 @@
+//desc:test User::Leave function call in a member template function definition of a template class for LS3
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+template<class T>
+class CC
+{
+	void func();
+};
+
+template<class T>
+void CC::func()
+{
+	User::Leave(); //check:func,calls
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS3-testcases/PCT-LeaveScan-LS3-010.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,15 @@
+//desc:test new(ELeave) call in member function definition out of a class for LS3
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+class CC
+{
+void func();
+};
+
+void CC::func()
+{
+	new(ELeave)CL(); //check:func,ELeave
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS3-testcases/PCT-LeaveScan-LS3-011.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,17 @@
+//desc:test new(ELeave) call in a member function definition of a template class for LS3
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+template<class T>
+class CC
+{
+	void func();
+};
+
+template<class T>
+void CC::func()
+{
+	new(ELeave)CL(); //check:func,ELeave
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS3-testcases/PCT-LeaveScan-LS3-012.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,17 @@
+//desc:test User::Leave function call in a member template function definition of a template class for LS3
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+template<class T>
+class CC
+{
+	void func();
+};
+
+template<class T>
+void CC::func()
+{
+	User::Leave(); //check:func,calls
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS3-testcases/PCT-LeaveScan-LS3-013.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,16 @@
+//desc:test User::LeaveIfError function call in overload function for LS3
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+
+void func(TInt x)
+{
+	fxx();
+}
+void func()
+{
+	CL a;
+	User::LeaveIfError(); //check:func,calls
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS3-testcases/PCT-LeaveScan-LS3-014.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,19 @@
+//desc:test User::LeaveNoMemory LEAVE FUNCTION call in overload member function for LS3
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+
+class temp
+{
+void func(TInt x)
+{
+	fxx();
+}
+void func()
+{
+	CL a;
+	User::LeaveNoMemory(); //check:func,calls,Leave
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS3-testcases/PCT-LeaveScan-LS3-015.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,16 @@
+//desc:test new(ELeave) function call in operator overload function for LS3
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+
+int operator+(TInt x,TInt y)
+{
+	fxx();
+}
+void operator+(TInt x, TEXT y)
+{
+	CL a;
+	new(ELeave)CL(); //check:operator,ELeave
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS3-testcases/PCT-LeaveScan-LS3-016.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,19 @@
+//desc:test User::Leave function call in member operator overload function for LS3
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+
+class temp
+{
+int operator+(TInt x)
+{
+	fxx();
+}
+void operator+(TEXT y)
+{
+	CL a;
+	User::Leave(); //check:calls,Leave
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS3-testcases/PCT-LeaveScan-LS3-017.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,15 @@
+//desc:test new(ELeave) function call in type cast function of a class for LS3
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+
+class temp
+{
+operator int()
+{
+	CL a;
+	new(ELeave)(); //check:operator,ELeave
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS3-testcases/PCT-LeaveScan-LS3-018.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,20 @@
+//desc:test User::LeaveIfError function call in a member template function of a class for LS3
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+
+class temp
+{
+void func(TInt x)
+{
+	fxx();
+}
+template<class T>
+void func()
+{
+	
+	User::LeaveIfError(); //check:func,calls,Leave
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS3-testcases/PCT-LeaveScan-LS3-019.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,20 @@
+//desc:test User::LeaveNoMemory function call in member template function of a class for LS3
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+
+class temp
+{
+void func(TInt x)
+{
+	fxx();
+}
+template<class T>
+void func()
+{
+	T a;
+	User::LeaveNoMemory(); //check:func,calls,Leave
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS3-testcases/PCT-LeaveScan-LS3-020.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,28 @@
+//desc:test new(ELeave) function call in override member function for LS3
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+class base
+{
+	void func(TInt x)
+	{
+	}
+	void func()
+	{
+	}
+
+};
+class temp:public base
+{
+void func(TInt x)
+{
+	fxx();
+}
+void func()
+{
+	CL a;
+	new(ELeave)(); //check:func,ELeave
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS3-testcases/PCT-LeaveScan-LS3-021.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc:test OR_LEAVE call of LS3
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+void func()
+{
+	serv.Connect() OR_LEAVE;  //check:func,OR_LEAVE
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS3-testcases/PCT-LeaveScan-LS3-022.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,20 @@
+//desc:test OR_LEAVE call in member template function of a class for LS3
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+
+class temp
+{
+void func(TInt x)
+{
+	fxx();
+}
+template<class T>
+void func()
+{
+	T a;
+	serv.Connect() OR_LEAVE;  //check:func,OR_LEAVE
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS3-testcases/PCT-LeaveScan-LS3-023.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc:test OR_LEAVE call in leaving function of LS3
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+void funcL()
+{
+	serv.Connect() OR_LEAVE;  //check:-func,-calls
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS3-testcases/PCT-LeaveScan-LS3-024.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+//desc:test OR_LEAVE call in function with TRAP of LS3
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+void funcL()
+{
+	TRAP(serv.Connect() OR_LEAVE);  //check:-func,-calls
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/srcanamdw_os/leavescan/test/testcases/LS3-testcases/PCT-LeaveScan-LS3-025.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,21 @@
+//desc:test OR_LEAVE call in member specialised template function of a class with TRAP for LS3
+//option:
+//date:2008-8-12 15:58:1
+//author:pingorliu
+//type: CT
+
+
+class temp
+{
+template<class T>
+void func(TInt x)
+{
+	fxx();
+}
+template<>
+void func<TInt>(TInt x)
+{
+	T a;
+	TRAP(serv.Connect() OR_LEAVE);  //check:-func,-calls,-Leave
+}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/autotest/Test/th1.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,102 @@
+// Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// AUTOTEST.CPP
+// Demonstration code for the use of Autotest.Dll.
+// 
+//
+
+/**
+ @file Th1.cpp
+*/
+
+#include <e32std.h>
+// Autotest library header file
+#include <autotest.h>
+
+// Initialise an RTest instance
+// Autotest construction expects one
+_LIT(KTestTitle,"Test Harness");
+LOCAL_C RTest Test(KTestTitle);
+
+LOCAL_C TInt ApiCall1()
+// Function to represent an API call
+	{
+	// Do nothing but return ok
+	return KErrNone;
+	}
+
+LOCAL_C TInt ApiCall2()
+// Function to represent an API call
+	{
+	// Do nothing but return an error to demonstrate error handling
+	return KErrGeneral;
+	}
+
+LOCAL_C void Tests1L()
+// Function that calls one or more API calls
+	{
+	_LIT(KStartMessage,"Begin Test 1");
+	Test.Start(KStartMessage);
+	User::LeaveIfError(ApiCall1());
+	_LIT(KNext1,"API Call 1 Ok");
+	Test.Next(KNext1);
+	Test.End();
+	}
+
+LOCAL_C void Tests2L()
+// Function that calls one or more API calls
+	{
+	_LIT(KStartMessage,"Begin Test 2");
+	Test.Start(KStartMessage);
+	User::LeaveIfError(ApiCall2());
+	_LIT(KNext2,"API Call 2 Ok");
+	Test.Next(KNext2);
+	Test.End();
+	}
+// Set up the array of test functions, which make the API calls
+LOCAL_C const TAutoTestCase Cases[2] =
+	{
+	{Tests1L,_S("Test One")},
+	{Tests2L,_S("Test Two")}
+	};
+
+LOCAL_C void MainL()
+	{
+	Test.Title();
+	Test.SetLogged(EFalse);
+
+	_LIT(KDummyTests,"Dummy Tests.Txt");
+	_LIT8(KComponentInfo,"Dummy Test - xxx");
+	// Library defined macro
+	AUTOTEST_EXECUTE(Cases,KDummyTests,KComponentInfo,Test);
+
+	Test.Close();
+	}
+
+GLDEF_C TInt E32Main()
+    {
+	__UHEAP_MARK;
+	CTrapCleanup* cleanup = CTrapCleanup::New();
+	if(cleanup == NULL)
+		{
+		return KErrNoMemory;
+		}
+	TRAPD(err,MainL());
+	_LIT(KPanic,"Th1");
+	__ASSERT_ALWAYS(!err, User::Panic(KPanic,err));
+	delete cleanup;
+	__UHEAP_MARKEND;
+	return KErrNone;
+    }
+//
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/autotest/Test/th1.mmp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,27 @@
+// Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+TARGET  Th1.exe
+TARGETTYPE      exe
+
+SOURCEPATH      ..\Test
+SOURCE          Th1.cpp
+
+USERINCLUDE		..\inc
+SYSTEMINCLUDE   \epoc32\include 
+
+LIBRARY 	euser.lib autotest.lib
+
+VENDORID 0x70000001
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/autotest/Test/th2.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,153 @@
+// Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+
+#include <e32std.h>
+// Autotest library header file
+#include <ss_std.h>
+#include <autotest.h>
+
+// Global pointer for use by the autotest.h macro's
+CAutoTest* gAutoTest;
+RSocketServ gServ;
+
+
+// Initialise an RTest instance
+// Autotest construction expects one
+_LIT(KTestTitle,"Test Harness");
+LOCAL_C RTest Test(KTestTitle);
+
+
+LOCAL_C TInt ApiCall1()
+// Function to represent an API call
+	{
+	// Do nothing but return an error to demonstrate error handling
+	return KErrGeneral;
+	}
+
+LOCAL_C TInt ApiCall2()
+// Function to represent an API call
+	{
+	// Do nothing but return an error to demonstrate error handling
+	return KErrGeneral;
+	}
+
+LOCAL_C TInt ApiCall3()
+// Function to represent an API call
+	{
+	// Do nothing but return 0
+	return KErrNone;
+	}
+
+LOCAL_C void Tests1()
+// Function that calls one or more API calls
+	{
+	_LIT(KStartMessage,"Begin Test 1");
+	Test.Start(KStartMessage);
+	// replace the RTest () function operator overloads with this call
+	// If ApiCall1() does not return KErrNone, the error code is written to file
+	// if the "keepgoing" command line argument is used.
+	GLOBAL_CHECKPOINT_CODE(ApiCall1());
+	_LIT(KNext1,"API Call 1 Ok");
+	Test.Next(KNext1);
+	Test.End();
+	}
+
+
+LOCAL_C void Tests2()
+// Function that calls one or more API calls
+	{
+	_LIT(KStartMessage,"Begin Test 2");
+	Test.Start(KStartMessage);
+
+	// replace the RTest () function operator overloads with this call
+	// If ApiCall2() does not return KErrNone, failure (without code) is written to file
+	// if the "keepgoing" command line argument is used.
+	GLOBAL_CHECKPOINT(ApiCall2() == KErrNone);
+	_LIT(KNext2,"API Call 2 Ok");
+	Test.Next(KNext2);
+	Test.End();
+	}
+
+LOCAL_C void Tests3()
+// Function that calls one or more API calls
+	{
+	_LIT(KStartMessage,"Begin Test 3");
+	Test.Start(KStartMessage);
+	_LIT(KMessage,"ApiCall2() value comparison");
+	GLOBAL_CHECKPOINT_COMPARE(ApiCall1(),KErrNone,KMessage);
+	_LIT(KNext1,"API Call 2 Ok");
+	Test.Next(KNext1);
+	Test.End();
+	}
+
+
+LOCAL_C void Tests4L()
+// Function that calls one or more API calls
+	{
+	_LIT(KStartMessage,"Begin Test 4");
+	Test.Start(KStartMessage);
+
+	// Connect to socket server to 
+	User::LeaveIfError(gServ.Connect());
+
+	User::LeaveIfError(ApiCall3());
+	_LIT(KNext1,"API Call 3 Ok");
+	Test.Next(KNext1);
+	Test.End();
+	}
+
+
+// Set up the array of test functions, which make the API calls
+LOCAL_C const TAutoTestCase Cases[4] =
+	{
+	{Tests1,_S("Test One")},
+	{Tests2,_S("Test Two")},
+	{Tests3,_S("Test Three")},
+	{Tests4L,_S("Test Four")}
+	};
+
+
+LOCAL_C void MainL()
+	{
+	Test.Title();
+	Test.SetLogged(EFalse);
+
+	_LIT(KDummyTests,"Dummy Tests.Txt");
+	_LIT8(KComponentInfo,"Dummy Test - xxx");
+	// Library defined macro
+	// Uses a global pointer instance of CAutoTest
+	GLOBAL_AUTOTEST_EXECUTE(Cases,KDummyTests,KComponentInfo,Test);
+	gServ.Close();
+	Test.Close();
+	}
+
+
+GLDEF_C TInt E32Main()
+    {
+	__UHEAP_MARK;
+	CTrapCleanup* cleanup = CTrapCleanup::New();
+	if(cleanup == NULL)
+		{
+		return KErrNoMemory;
+		}
+	TRAPD(err,MainL());
+	_LIT(KPanic,"Th2");
+	__ASSERT_ALWAYS(!err, User::Panic(KPanic,err));
+	delete cleanup;
+	__UHEAP_MARKEND;
+	return KErrNone;
+    }
+//
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/autotest/Test/th2.mmp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,27 @@
+// Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+TARGET  Th2.exe
+TARGETTYPE      exe
+
+SOURCEPATH      ..\Test
+SOURCE          Th2.cpp
+
+USERINCLUDE		..\inc
+SYSTEMINCLUDE   \epoc32\include 
+
+LIBRARY 	euser.lib autotest.lib esock.lib
+
+VENDORID 0x70000001
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/autotest/bmarm/autotestu.def	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,12 @@
+EXPORTS
+	TestCheckPointL__9CAutoTestiPci @ 1 NONAME ; CAutoTest::TestCheckPointL(int, char *, int)
+	GetString__C9CAutoTestR12CConsoleBaseR6TDes16 @ 2 NONAME R3UNUSED ; CAutoTest::GetString(CConsoleBase &, TDes16 &) const
+	KeepGoing__9CAutoTest @ 3 NONAME R3UNUSED ; CAutoTest::KeepGoing(void)
+	LogExtra__9CAutoTestPCUciGt11TRefByValue1ZC7TDesC16e @ 4 NONAME ; CAutoTest::LogExtra(unsigned char const *, int, TRefByValue<TDesC16 const>,...)
+	NewL__9CAutoTestPC13TAutoTestCaseiRC7TDesC16R5RTest @ 5 NONAME ; CAutoTest::NewL(TAutoTestCase const *, int, TDesC16 const &, RTest &)
+	Printf__9CAutoTestGt11TRefByValue1ZC7TDesC16e @ 6 NONAME ; CAutoTest::Printf(TRefByValue<TDesC16 const>,...)
+	SetCompInfo__9CAutoTestRC6TDesC8 @ 7 NONAME R3UNUSED ; CAutoTest::SetCompInfo(TDesC8 const &)
+	TestCheckPointCodeL__9CAutoTestiPci @ 8 NONAME ; CAutoTest::TestCheckPointCodeL(int, char *, int)
+	TestCheckPointCompareL__9CAutoTestiiRC7TDesC16Pci @ 9 NONAME ; CAutoTest::TestCheckPointCompareL(int, int, TDesC16 const &, char *, int)
+	ExecuteL__9CAutoTest @ 10 NONAME R3UNUSED ; CAutoTest::ExecuteL(void)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/autotest/bwins/autotestu.def	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,12 @@
+EXPORTS
+	?ExecuteL@CAutoTest@@QAEHXZ @ 1 NONAME ; public: int __thiscall CAutoTest::ExecuteL(void)
+	?GetString@CAutoTest@@QBEXAAVCConsoleBase@@AAVTDes16@@@Z @ 2 NONAME ; public: void __thiscall CAutoTest::GetString(class CConsoleBase &,class TDes16 &)const 
+	?KeepGoing@CAutoTest@@QAEHXZ @ 3 NONAME ; public: int __thiscall CAutoTest::KeepGoing(void)
+	?LogExtra@CAutoTest@@QAAXPBEHV?$TRefByValue@$$CBVTDesC16@@@@ZZ @ 4 NONAME ; public: void __cdecl CAutoTest::LogExtra(unsigned char const *,int,class TRefByValue<class TDesC16 const >,...)
+	?NewL@CAutoTest@@SAPAV1@PBUTAutoTestCase@@HABVTDesC16@@AAVRTest@@@Z @ 5 NONAME ; public: static class CAutoTest * __cdecl CAutoTest::NewL(struct TAutoTestCase const *,int,class TDesC16 const &,class RTest &)
+	?Printf@CAutoTest@@QAAXV?$TRefByValue@$$CBVTDesC16@@@@ZZ @ 6 NONAME ; public: void __cdecl CAutoTest::Printf(class TRefByValue<class TDesC16 const >,...)
+	?SetCompInfo@CAutoTest@@QAEXABVTDesC8@@@Z @ 7 NONAME ; public: void __thiscall CAutoTest::SetCompInfo(class TDesC8 const &)
+	?TestCheckPointCodeL@CAutoTest@@QAEXHPADH@Z @ 8 NONAME ; public: void __thiscall CAutoTest::TestCheckPointCodeL(int,char *,int)
+	?TestCheckPointCompareL@CAutoTest@@QAEXHHABVTDesC16@@PADH@Z @ 9 NONAME ; public: void __thiscall CAutoTest::TestCheckPointCompareL(int,int,class TDesC16 const &,char *,int)
+	?TestCheckPointL@CAutoTest@@QAEXHPADH@Z @ 10 NONAME ; public: void __thiscall CAutoTest::TestCheckPointL(int,char *,int)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/autotest/eabi/autotestU.def	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,14 @@
+EXPORTS
+	_ZN9CAutoTest11SetCompInfoERK6TDesC8 @ 1 NONAME
+	_ZN9CAutoTest15TestCheckPointLEiPci @ 2 NONAME
+	_ZN9CAutoTest19TestCheckPointCodeLEiPci @ 3 NONAME
+	_ZN9CAutoTest22TestCheckPointCompareLEiiRK7TDesC16Pci @ 4 NONAME
+	_ZN9CAutoTest4NewLEPK13TAutoTestCaseiRK7TDesC16R5RTest @ 5 NONAME
+	_ZN9CAutoTest6PrintfE11TRefByValueIK7TDesC16Ez @ 6 NONAME
+	_ZN9CAutoTest8ExecuteLEv @ 7 NONAME
+	_ZN9CAutoTest8LogExtraEPKhi11TRefByValueIK7TDesC16Ez @ 8 NONAME
+	_ZN9CAutoTest9KeepGoingEv @ 9 NONAME
+	_ZNK9CAutoTest9GetStringER12CConsoleBaseR6TDes16 @ 10 NONAME
+	_ZTI9CAutoTest @ 11 NONAME ; #<TI>#
+	_ZTV9CAutoTest @ 12 NONAME ; #<VT>#
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/autotest/group/autotest.iby	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,8 @@
+#ifndef __AUTOTEST_IBY__
+#define __AUTOTEST_IBY__
+
+REM For components that use the Autotest framework
+
+file=ABI_DIR\BUILD_DIR\autotest.dll   System\Libs\autotest.dll
+
+#endif
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/autotest/group/autotest.mmp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,34 @@
+// Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+CAPABILITY All -Tcb
+
+TARGET			autotest.dll
+TARGETTYPE		DLL
+UID			0x1000008d 0x101F4658
+VENDORID 0x70000001
+
+SOURCEPATH      	../src
+SOURCE			autotest.cpp
+
+USERINCLUDE		../inc
+OS_LAYER_SYSTEMINCLUDE_SYMBIAN
+
+LIBRARY			euser.lib efsrv.lib flogger.lib
+
+DEFFILE			autotest.def
+START WINS
+BASEADDRESS		0x7ff00000
+END
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/autotest/group/bld.inf	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,36 @@
+// Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+
+PRJ_PLATFORMS
+
+DEFAULT
+
+PRJ_EXPORTS
+
+#ifdef SYMBIAN_OLD_EXPORT_LOCATION
+../inc/autotest.h
+#endif
+
+../group/autotest.iby	/epoc32/rom/include/autotest.iby
+
+PRJ_MMPFILES
+
+../group/autotest.mmp
+
+PRJ_TESTMMPFILES
+
+../Test/th1.mmp
+../Test/th2.mmp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/autotest/group/tools_autotest.history.xml	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<relnotes name="AUTOTEST">
+  <purpose>
+  </purpose>
+</relnotes>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/autotest/group/tools_autotest.mrp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,9 @@
+component	tools_autotest
+source	\sf\os\buildtools\toolsandutils\autotest
+binary	\sf\os\buildtools\toolsandutils\autotest\group	all
+exports	\sf\os\buildtools\toolsandutils\autotest\group
+notes_source	\component_defs\release.src
+
+
+ipr T 
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/autotest/inc/autotest.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,154 @@
+// Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#ifndef E32AUTOTEST_H__
+#define E32AUTOTEST_H__
+
+/** @file autotest.h
+ *
+ * Framework for Automated Test code.
+ */
+
+#include <e32test.h>
+#include <f32file.h>
+
+#define PRINTF gAutoTest->Printf
+
+/**
+ * Latest version can always be found here:
+ * //EPOC/development/personal/alfredh/autotest/...
+ *
+ * Revision history
+ *
+ * 0.04 Merged with RefTsy and SmsStack
+ * 0.03 imported to C32
+ * 0.02 imported to SmsStack
+ * 0.01 first version used in RefTSY
+ */
+
+//
+// prototypes
+//
+
+
+/**
+ * contains information about one test case, including
+ * name of test case and pointer to the test function
+ *
+ * @internalComponent
+ * @deprecated
+ */
+struct TAutoTestCase
+	{
+	void (*iFunc)(void);   //< function pointer to the actual test case
+	const TText* iText;    //< textual info about the test case
+	};
+
+static const TInt KMaxCmdLength = 256;
+
+/**
+ * This class implements the automated test framework.
+ * It is very simple but lets you run all the test cases
+ * separately or in one go.
+ *
+ * @internalComponent
+ * @deprecated
+ */
+class CAutoTest : public CBase
+	{
+  public:
+	IMPORT_C static CAutoTest* NewL(const struct TAutoTestCase* aTestcases, TInt aNumberOfTestcases, const TDesC& aName, RTest& aTest);
+	~CAutoTest();
+	IMPORT_C TInt ExecuteL();
+	IMPORT_C void TestCheckPointL(TBool aCase, char* aFile, TInt aLine);
+	IMPORT_C void TestCheckPointCodeL(TInt aCase, char* aFile, TInt aLine);
+	IMPORT_C void TestCheckPointCompareL(TInt aVal,TInt aExpectedVal, const TDesC& aText, char* aFile,TInt aLine);
+	IMPORT_C void SetCompInfo(const TDesC8& aCompInfo);
+	IMPORT_C void GetString(CConsoleBase& aConsole, TDes& aString) const;
+	IMPORT_C void LogExtra(const TText8* aFile, TInt aLine, TRefByValue<const TDesC> aFmt,...);
+	IMPORT_C void Printf(TRefByValue<const TDesC> aFmt,...);
+	IMPORT_C TBool KeepGoing(void);
+
+  protected:
+	CAutoTest(const struct TAutoTestCase* aTestcases, TInt aNumberOfTestcases, const TDesC& aName, RTest& aTest);
+	void ConstructL();
+	
+  protected:
+	void PrintMenu() const;
+	void StartMenuL();
+	void RunAllTestsL();
+	TInt RunATestL();
+	void PrintTestReportL(TInt aTestIndex);
+	void LogTimeL();
+	void MachineInfoL();
+	void PrintThreadsToLogFile();
+	void SetLogFileL();
+	const TBool TestSkipped(TUint8 aTestNum);
+	void GetCommandLineL();
+	void GetSkipOptions();
+	void GetKeepGoingOption();
+
+  private:
+
+  private:
+	const struct TAutoTestCase* iTestCases; //< pointer to table with all the test cases
+	const TInt iNumberOfTestcases;			//< number of test cases in the table
+	TBuf<KMaxCmdLength> iTestReportName;	//< holds the name of the test report file
+	TBool iKeepGoing;						//< if true, does not stop if a test fails, but continues
+	TBool iTestSuiteFailed;					//< indicates if the whole test suite failed or not
+	TInt* iTestResults;						//< contains all the test results after running test suite
+	RFs iFileServer;						//< handle to the File Server
+	RFile iTestReport;						//< handle to the file containing the test report
+	TInt iTestCase;							//< the test case currently being run
+	TBuf8<256> iCompInfo;					//< contains information about the Component under test
+	RTest& iRTest;							//< reference to the test utility class
+	TBool* iSkipList;						//< List of tests to be skipped in decimal
+	HBufC* iCommandLine;					//< Internal copy of command line or config file
+	};
+
+//
+// macros
+//
+
+/**
+ * call this macro to start the automated test framework.
+ *
+ * @param tc Table containing the test cases
+ * @param name Name of the test report file
+ */
+// Global pointer instance version
+#define GLOBAL_AUTOTEST_EXECUTE(tc, name, compinfo, test) \
+gAutoTest = CAutoTest::NewL((tc), sizeof(tc)/sizeof((tc)[0]), name, test); \
+CleanupStack::PushL(gAutoTest);\
+gAutoTest->SetCompInfo(compinfo); \
+gAutoTest->ExecuteL(); \
+CleanupStack::PopAndDestroy(); 
+
+// Stack version
+#define AUTOTEST_EXECUTE(tc, name, compinfo, test) \
+CAutoTest* autoTest = CAutoTest::NewL((tc), sizeof(tc)/sizeof((tc)[0]), name, test); \
+CleanupStack::PushL(autoTest);\
+autoTest->SetCompInfo(compinfo); \
+autoTest->ExecuteL(); \
+CleanupStack::PopAndDestroy(); 
+
+// Global checkpoint versions
+// Writes failure with the error code to file. 'a' is the error code
+#define GLOBAL_CHECKPOINT_CODE(a) gAutoTest->TestCheckPointCodeL((a), (__FILE__), (__LINE__))
+// Writes failure only to file. 'a' Parameter is boolean
+#define GLOBAL_CHECKPOINT(a) gAutoTest->TestCheckPointL((a), (__FILE__), (__LINE__))
+// Compare expected value a with b. If they're different, string C is logged along with the values
+#define GLOBAL_CHECKPOINT_COMPARE(a,b,c) gAutoTest->TestCheckPointCompareL((a),(b),(c),(__FILE__),(__LINE__))
+#endif // E32AUTOTEST_H__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/autotest/src/autotest.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,850 @@
+// Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Framework for Automated Test code.
+// 
+//
+
+/**
+ @file autotest.cpp
+*/
+
+#include "autotest.h"
+
+#include <flogger.h>		// for RFileLogger 
+
+
+_LIT(KTestKeywordSuccess, "SUCCESS");
+_LIT(KTestKeywordFailed,  "FAILED");
+_LIT(KTestKeywordNotSupported,  "NOT SUPPORTED");
+
+//
+// implementation of CAutoTest
+//
+
+EXPORT_C CAutoTest* CAutoTest::NewL(const struct TAutoTestCase* aTestcases, TInt aNumberOfTestcases, const TDesC& aName, RTest& aTest)
+/**
+ * 2 phase constructor
+ *
+ * @param aTestcases         Pointer to the table with test cases
+ * @param aNumberOfTestcases Number of automated test cases
+ * @param aName              Name of the test report file
+ * @param aTest              The RTest object owned by the client
+ * @return CAutoTest*        A newly created CAutoTest object
+ */
+	{
+	CAutoTest* p = new (ELeave) CAutoTest(aTestcases, aNumberOfTestcases, aName, aTest);
+	CleanupStack::PushL(p);
+	p->ConstructL();
+	CleanupStack::Pop();
+	return p;
+	}
+
+
+CAutoTest::~CAutoTest()
+/**
+ * D'tor
+ */
+	{
+	// close file handles
+	iTestReport.Close();
+	iFileServer.Close();
+	
+	delete iCommandLine;
+	delete iTestResults;
+	delete iSkipList;
+	iTestCases = NULL;
+	}
+
+
+EXPORT_C TInt CAutoTest::ExecuteL()
+/**
+ * Execute the test suite. 
+ *
+ * @return test result, KErrNone if all tests passed
+ */
+	{
+	(void)User::LeaveIfError(iTestReport.Write(_L8("--- test report start---\r\n")));
+
+	//
+	// machine info
+	//
+	MachineInfoL();
+
+	//
+	// date & time info
+	//
+	(void)User::LeaveIfError(iTestReport.Write(_L8("Time started: ")));
+	LogTimeL();
+
+	//
+	// component under test info (optional)
+	//
+	if(iCompInfo.Length())
+		{
+		(void)User::LeaveIfError(iTestReport.Write(_L8("Component info: ")));
+		(void)User::LeaveIfError(iTestReport.Write(iCompInfo));
+		(void)User::LeaveIfError(iTestReport.Write(_L8("\r\n")));
+		}
+
+	
+	// decide to run the menu or the complete test
+	if(iKeepGoing)
+		RunAllTestsL();
+	else
+		StartMenuL();
+
+	// date & time info
+	(void)User::LeaveIfError(iTestReport.Write(_L8("Time finished: ")));
+	LogTimeL();
+
+	(void)User::LeaveIfError(iTestReport.Write(_L8("--- test report end---\r\n")));
+
+	return iTestSuiteFailed ? 84 : KErrNone;
+
+	}
+
+EXPORT_C void CAutoTest::TestCheckPointCompareL(TInt aVal,TInt aExpectedVal, const TDesC& aText, char* aFile,TInt aLine)
+	{
+	if(aVal == aExpectedVal)
+		return;
+
+	TBuf<200> temp;
+	temp.Copy(TPtrC8((TText8*)aFile));
+
+	iRTest.Printf(_L("FAILED test %d : Val = %d Exp Val = %d file %S, line %d\n")
+		, iTestCase+1, aVal, aExpectedVal, &temp, aLine);
+
+	//
+	// Log failure to log file, even if iKeepGoing is EFalse.
+	// The code used to only log the failure to the file if iKeepGoing was ETrue.
+	// If a filaure occurs it needs to be written to log regardless of iKeepGoing.
+	TBuf8<256> stringBuf;
+	stringBuf.AppendFormat(_L8("FAILED test %d : Val = %d Exp Val = %d file %s, line %d : "),iTestCase+1,aVal,aExpectedVal, aFile, aLine);
+	stringBuf.Append(aText);
+	stringBuf.AppendFormat(_L8("\r\n"));
+	(void)User::LeaveIfError(iTestReport.Write(stringBuf));
+	iTestSuiteFailed = ETrue;
+
+	User::Leave(aVal);
+	}
+
+
+EXPORT_C void CAutoTest::TestCheckPointCodeL(TInt aCase, char* aFile, TInt aLine)
+/**
+ * hidden by the macro GLOBAL_CHECKPOINT_CODE. Used to validate return values etc.
+ * If the 'keepgoing' command line option is specified, the test program * will not stop, but just print a warning in the test report, including
+ * which file and line where the test failed. Then it will leave the test
+ * case and do the next one. 
+ *
+ * @param aCase 0 no error or the error code
+ * @param aFile name of the file involved here
+ * @param aLine the line of the file involved here
+ */
+	{
+	if(!aCase)
+		return;
+
+	// Convert to unicode for log to console
+	TBuf<200> temp;
+	temp.Copy(TPtrC8((TText8*)aFile));
+
+	iRTest.Printf(_L("FAILED test %d : Code = %d file %S, line %d\n"), iTestCase+1, aCase, &temp, aLine);
+
+	//
+	// Log failure to log file, even if iKeepGoing is EFalse.
+	// The code used to only log the failure to the file if iKeepGoing was ETrue.
+	// If a filaure occurs it needs to be written to log regardless of iKeepGoing.
+	TBuf8<256> stringBuf;
+	stringBuf.AppendFormat(_L8("FAILED test %d : Code = %d file %s, line %d\r\n"),iTestCase+1, aCase, aFile, aLine);
+	(void)User::LeaveIfError(iTestReport.Write(stringBuf));
+	iTestSuiteFailed = ETrue;
+
+	User::Leave(aCase);
+	}
+
+EXPORT_C void CAutoTest::TestCheckPointL(TBool aCase, char* aFile, TInt aLine)
+/**
+ * hidden by the macro GLOBAL_CHECKPOINT. Used to validate return values etc.
+ * If the 'keepgoing' option is specified, the test program
+ * will not stop, but just print a warning in the test report, including
+ * which file and line where the test failed. Then it will leave the test
+ * case and do the next one. 
+ *
+ * @param aCase if true success, false means failed
+ * @param aFile name of the file involved here
+ * @param aLine the line of the file involved here
+ */
+	{
+	if(aCase)
+		return;
+
+	// Convert to unicode for log to console
+	TBuf<200> temp;
+	temp.Copy(TPtrC8((TText8*)aFile));
+
+	iRTest.Printf(_L("FAILED test %d : file %S, line %d\n"),iTestCase+1, &temp, aLine);
+
+	// Log failure to log file, even if iKeepGoing is EFalse.
+	// The code used to only log the failure to the file if iKeepGoing was ETrue.
+	// If a filaure occurs it needs to be written to log regardless of iKeepGoing.
+	TBuf8<256> stringBuf;
+	stringBuf.AppendFormat(_L8("FAILED test %d : file %s, line %d\r\n"),iTestCase+1, aFile, aLine);
+	(void)User::LeaveIfError(iTestReport.Write(stringBuf));
+	iTestSuiteFailed = ETrue;
+	User::Leave(84);
+	}
+
+EXPORT_C void CAutoTest::SetCompInfo(const TDesC8& aCompInfo)
+/**
+ * store information about the Component under test in the autotest object
+ *
+ * @param aCompInfo descriptor containin the component info
+ */
+	{
+	iCompInfo = aCompInfo;
+	}
+
+//
+// protected
+//
+
+CAutoTest::CAutoTest(const struct TAutoTestCase* aTestcases, TInt aNumberOfTestcases, const TDesC& aName, RTest& aTest)
+/**
+ * C'tor
+ *
+ * @param aTestcases         Pointer to the table with test cases
+ * @param aNumberOfTestcases Number of automated test cases
+ * @param aName              Name of the test report file
+ * @param aTest              The RTest object owned by the client
+ */
+	:iTestCases(aTestcases)
+	,iNumberOfTestcases(aNumberOfTestcases)
+	,iTestReportName(aName)
+	,iKeepGoing(EFalse)
+	,iTestSuiteFailed(ETrue)
+	,iRTest(aTest)
+	,iSkipList(NULL)
+	,iCommandLine(NULL)
+	{
+	}
+
+
+void CAutoTest::ConstructL()
+/**
+ * 2nd phase of 2 phased constructor.
+ *
+ * create a new table for test results storing, depending on the 
+ * number of test cases. Connect to the file server and open
+ * and replace the test report file.
+ */
+	{
+	// No serial port logging
+	iRTest.SetLogged(EFalse);
+	// Array of test result codes
+	iTestResults = new (ELeave) TInt[iNumberOfTestcases];
+	// Array of bools to determine whether a test should be skipped
+	// Set to ETrue if a test is not supported
+	iSkipList = new (ELeave) TBool[iNumberOfTestcases];
+	Mem::FillZ(iSkipList,iNumberOfTestcases * sizeof(TBool));	
+	(void)User::LeaveIfError(iFileServer.Connect());
+
+	// Read the command line or contents of config file specified on the command line,
+	// into private storage
+	GetCommandLineL();
+	// Get the name of the output log file
+	SetLogFileL();
+	// Set up the test skip options
+	GetSkipOptions();
+	// Set the keepgoing flag
+	GetKeepGoingOption();
+	}
+
+
+//
+// private
+//
+
+void CAutoTest::PrintMenu() const
+/**
+ * print a menu to the console
+ */
+	{
+
+	iRTest.Printf(_L("menu:\n") );
+	iRTest.Printf(_L("  !  - Run all tests\n") );
+	iRTest.Printf(_L("  ^C - Quit\n") );
+
+	for(TInt i=0;i<iNumberOfTestcases;i++)
+		{
+		iRTest.Printf(_L("%d %s \n"), i+1, iTestCases[i].iText );
+		}
+
+	}
+
+EXPORT_C void CAutoTest::Printf(TRefByValue<const TDesC> aFmt,...)
+/**
+ * print to console and logfile
+ */
+	{
+	VA_LIST list;
+	VA_START(list, aFmt);
+	TBuf<0x100> aBuf;
+	aBuf.AppendFormatList(aFmt, list);
+
+	// console
+	iRTest.Printf(aBuf);
+
+	// logfile
+	LogExtra((TText8*)__FILE__, __LINE__, aFmt);
+	}
+
+
+void CAutoTest::StartMenuL()
+/**
+ * run the menu forever, until press Ctrl-C
+ *
+ * @leave this function may leave
+ */
+	{
+	TInt ret;
+
+	
+	FOREVER
+		{
+		TBuf<256> inputBuf;
+		
+		PrintMenu();
+
+		TInt key = iRTest.Getch();
+		iRTest.Printf(_L("%c"), key);
+
+		switch(key)
+			{
+		case '!':
+            // for the time, that there is a request in the menu to run all the
+            // test cases, the iKeepGoing flag shoulg should be set and deleted
+            // afterwards; because test cases behave different in automated and 
+            // manual mode; and here we are definitely in the automated mode
+            iKeepGoing = ETrue;
+			RunAllTestsL();
+            iKeepGoing = EFalse;
+			break;
+
+		case 0x03: // Ctrl-C
+			return;
+			  
+		default:
+
+			inputBuf.Append(key);
+			GetString(*iRTest.Console(), inputBuf);
+			TLex lexer(inputBuf);
+			TInt value;
+			ret = lexer.Val(value);
+			value-=1;
+			if(ret == KErrNone)
+				{
+				iRTest.Printf(_L("Testcase: %d\n"), value+1);
+				if((value >= 0) && (value < (TInt)iNumberOfTestcases))
+					{
+					iTestCase = value;
+					ret = RunATestL();
+					}
+				else
+					break;
+
+				//
+				// Display the success or failure to the console 
+				if(ret == KErrNone)
+					iRTest.Printf(_L("SUCCESS! \n"));
+				else if(ret == KErrNotSupported)
+					iRTest.Printf(_L("NOT SUPPORTED\n"), ret);
+				else
+					iRTest.Printf(_L("FAILED! (ret=%d)\n"), ret);
+
+				//
+				// Log our success/failure in the log file
+				TBuf8<256> stringBuf8;
+				stringBuf8.AppendFormat(_L8("test %d: "), value +1 );
+
+				if(ret == KErrNone)
+					stringBuf8.Append(KTestKeywordSuccess);
+				else if(ret == KErrNotSupported)
+					stringBuf8.Append(KTestKeywordNotSupported);
+				else
+					stringBuf8.Append(KTestKeywordFailed);
+
+				stringBuf8.AppendFormat(_L8(" (return=%d) "), ret );
+				TBuf<256> buf;
+				buf.AppendFormat(_L("[%s]\r\n"), iTestCases[value].iText);
+				stringBuf8.Append(buf);
+				(void)User::LeaveIfError(iTestReport.Write(stringBuf8));
+				}
+			  
+			  break;
+
+			} // end, switch(key)
+
+		} // end, FOREVER
+	
+	}
+
+void CAutoTest::RunAllTestsL()
+/**
+ * run all the tests for this test program
+ */
+	{
+	TInt ret;
+	iRTest.Printf(_L("Now running all the testcases...\n") );
+	
+	for(TInt i=0;i<iNumberOfTestcases;i++)
+		{
+		iTestCase = i;
+		ret = RunATestL();
+		iTestResults[i] = ret;
+		PrintTestReportL(i);
+		}
+	}
+
+void CAutoTest::PrintThreadsToLogFile()
+// Print all the current running thread names to the log file
+	{
+	TBuf<0x1> asterisk=_L("*");
+	TName search=asterisk;
+
+	TFindThread findHb;
+	findHb.Find(search);
+	TFullName name;
+
+	while (findHb.Next(name)==KErrNone)
+		{
+		TBuf8<300> stringBuf8(_L8("\tThread Name = "));
+		stringBuf8.Append(name);
+		stringBuf8.Append(_L8("\r\n"));
+		iTestReport.Write(stringBuf8);
+		}
+	}
+
+
+TInt CAutoTest::RunATestL()// const
+/**
+ * run a test and return the error code.
+ * the testcase is gived in iTestCase
+ *
+ * @return error code for that test case
+ */
+	{
+	TInt ret;
+
+	if(iSkipList[iTestCase])
+		return KErrNotSupported;
+
+	// check the index first
+	if(iTestCase < 0 || iTestCase >= (TInt)iNumberOfTestcases)
+		User::Leave(KErrNotFound);
+	
+	iRTest.Printf(_L("%d %s \n"), iTestCase+1, iTestCases[iTestCase].iText );
+
+	// get number of outstanding requetsts on thread before we run the test
+	TInt reqsAtStart = RThread().RequestCount();
+	if(reqsAtStart!=0)
+		{
+		TBuf8<256> stringBuf8;
+		stringBuf8.AppendFormat(_L8("Warning: thread had %d oustanding requests before starting test %d!\r\n"),reqsAtStart,iTestCase+1);
+		iTestReport.Write(stringBuf8);
+		}
+			
+	// get number of Handles *before* we start the program
+	TInt processHandleCountBefore;
+	TInt threadHandleCountBefore;
+	RThread().HandleCount(processHandleCountBefore, threadHandleCountBefore);
+
+	// ------------------------------------------
+	void (*fn)(void) = iTestCases[iTestCase].iFunc;
+	TRAP(ret, fn() );
+	// ------------------------------------------
+
+	//
+	// if the test case failed then we dont bother
+	// with checking the outstanding requests etc.
+	//
+	if(ret == KErrNone)
+		{
+		// get number of Handles *after* the program is finished
+		TInt processHandleCountAfter;
+		TInt threadHandleCountAfter;
+		RThread().HandleCount(processHandleCountAfter, threadHandleCountAfter);
+
+		// check that we are closing all the handles
+		if(threadHandleCountBefore<threadHandleCountAfter)
+			{
+
+			
+			TBuf8<256> stringBuf8;
+			stringBuf8.AppendFormat(_L8("%d handles left open after test %d returned!\r\n"),threadHandleCountAfter-threadHandleCountBefore,iTestCase+1);
+			iTestReport.Write(stringBuf8);
+			
+			PrintThreadsToLogFile();
+
+			return KErrGeneral;
+			}
+
+		// check that number of oustanding requests on thread has not increased
+		const TInt reqsNow=RThread().RequestCount();
+		if(reqsNow>reqsAtStart)
+			{
+			TBuf8<256> stringBuf8;
+			stringBuf8.AppendFormat(_L8("%d requests were left outstanding after test %d returned!\r\n"),reqsNow,iTestCase+1);
+			iTestReport.Write(stringBuf8);
+			return KErrGeneral;
+			}
+		}
+	return ret;
+	}
+
+void CAutoTest::SetLogFileL()
+/**
+ * Parse the command line buffer to see if a logfile has been specified
+ * If a logfile is specified create it
+ */
+	{
+	TPtr ptr = iCommandLine->Des();
+	TLex lex(ptr);
+
+	// Parse the command line for the "-log"
+	while(!lex.Eos())
+		{
+		TPtrC ptr = lex.NextToken();
+		_LIT(KLogCommand,"-log");
+		if(ptr == KLogCommand)
+			break;
+		}
+	// Read the log filename 
+	if(!lex.Eos())
+		{
+		TPtrC file = lex.NextToken();
+		iTestReportName.Copy(file);
+		}
+	// Replace if it exists and if not, create the folder then create the file
+	if(iTestReport.Replace(iFileServer, iTestReportName, EFileWrite) != KErrNone)
+		{
+		if(iTestReport.Create(iFileServer, iTestReportName, EFileWrite) == KErrPathNotFound)
+			(void)User::LeaveIfError(iFileServer.MkDirAll(iTestReportName));
+		(void)User::LeaveIfError(iTestReport.Create(iFileServer, iTestReportName, EFileWrite));
+		}
+	}
+
+void CAutoTest::GetCommandLineL()
+/**
+ * Parse the command line to see if a config file has been specified: "-config afile.txt"
+ * If it has, then read the contents of the file into the private command line buffer. Otherwise
+ * copy the real command line into the private command line buffer
+ */
+	{
+	TBuf<KMaxCmdLength> cmdLine;
+	TBuf<KMaxFileName> fileName;
+	
+	#ifndef EKA2 
+		RProcess().CommandLine(cmdLine);
+	#else
+		User::CommandLine(cmdLine);
+	#endif
+	
+	TLex lex(cmdLine);
+	// Parse the real command line for the -config option
+	while(!lex.Eos())
+		{
+		TPtrC ptr = lex.NextToken();
+		_LIT(KConfigCommand,"-config");
+		if(ptr == KConfigCommand)
+			break;
+		}
+	// Read the config filename if it's there
+	if(!lex.Eos())
+		{
+		TPtrC file = lex.NextToken();
+		fileName.Copy(file);
+		}
+	// If the filename has not been specified, set up the default
+	// This may not exist either, by the way.
+	if(!fileName.Length())
+		{
+		_LIT(KDefaultConfigFile,"c:\\autotestconfig.txt");
+		fileName = KDefaultConfigFile;
+		}
+	RFile file;
+	CleanupClosePushL(file);
+	// Try to open the config file
+	if(file.Open(iFileServer,fileName, EFileRead) == KErrNone)
+		// Config file exists
+		// read it into a local 8 bit buffer
+		{
+		TInt size;
+		// Get the size of the file
+		(void)User::LeaveIfError(file.Size(size));
+		HBufC8* buf8 = HBufC8::NewL(size);
+		CleanupStack::PushL(buf8);
+		TPtr8 ptr8 = buf8->Des();
+		// Read the file contents into the heap buffer
+		(void)User::LeaveIfError(file.Read(ptr8,size));
+		// Copy to private class unicode buffer
+		iCommandLine = HBufC::NewL(size);
+		TPtr ptr16 = iCommandLine->Des();
+		ptr16.Copy(ptr8);
+		CleanupStack::PopAndDestroy(buf8);
+		}
+	else
+		// Config file does not exist so copy the real command line buffer to the private class copy
+		{
+		iCommandLine = HBufC::NewL(cmdLine.Length());
+		TPtr ptr16 = iCommandLine->Des();
+		ptr16.Copy(cmdLine);
+		}
+	CleanupStack::PopAndDestroy(&file);
+	}
+
+void CAutoTest::GetKeepGoingOption()
+/**
+ * Read the keepgoing flag from the command line bufffer
+ */
+	{
+	_LIT(KKeepGoingString, "keepgoing");
+	TInt ret = iCommandLine->Find(KKeepGoingString);
+	if(ret >= KErrNone)
+		iKeepGoing = ETrue;
+	}
+
+void CAutoTest::GetSkipOptions()
+/**
+ * Read the test skip options, if any, from the command line buffer
+ * Usage: "-skip 1 4 5" to skip tests 1, 4 & 5 and log as NOT SUPPORTED
+ */
+   {
+	TPtr ptr = iCommandLine->Des();
+	TLex lex(ptr);
+	// Parse for -skip
+	while(!lex.Eos())
+		{
+		TPtrC token = lex.NextToken();
+		_LIT(KSkipCommand,"-skip");
+		if(token == KSkipCommand)
+			break;
+		}
+	// Loop through reading the test numbers to skip
+	while(!lex.Eos())
+		{
+		TInt testNum;
+		TPtrC ptr = lex.NextToken();
+		TLex lex(ptr);
+		// Read the test number as an integer
+		if(lex.Val(testNum) != KErrNone)
+			// Exit at the first token that's not a valid number
+			break;
+		if(testNum <= 0 || testNum > iNumberOfTestcases)
+			// Out of range
+			continue;
+		// Skip this test
+		iSkipList[testNum-1] = ETrue;
+		}
+	}
+
+
+void CAutoTest::PrintTestReportL(TInt aTestIndex)
+/**
+ * print a test report to file and console
+ */
+	{	
+	// print status
+	TBuf8<256> stringBuf8;
+	stringBuf8.AppendFormat(_L8("test %d: "), aTestIndex+1 );
+	if(iTestResults[aTestIndex] == KErrNone)
+		stringBuf8.Append(KTestKeywordSuccess);
+	else if(iTestResults[aTestIndex] == KErrNotSupported)
+		stringBuf8.Append(KTestKeywordNotSupported);
+	else
+		stringBuf8.Append(KTestKeywordFailed);
+	stringBuf8.AppendFormat(_L8(" (return=%d) "), iTestResults[aTestIndex] );
+	TBuf<256> buf;
+	buf.AppendFormat(_L("[%s]\r\n"), iTestCases[aTestIndex].iText);
+	stringBuf8.Append(buf);
+	(void)User::LeaveIfError(iTestReport.Write(stringBuf8));
+	TBuf<256> stringBuf;
+	stringBuf.Copy(stringBuf8);
+	iRTest.Printf(stringBuf);
+	}
+
+
+EXPORT_C void CAutoTest::GetString(CConsoleBase& aConsole, TDes& aString) const
+/**
+ * This function re-invents the wheel (once again...)
+ * It reads a string from the keyboard. Uses Getch() to get keys and does not
+ * return until ENTER is pressed. 
+ *
+ * @param aConsole const reference to the console
+ * @param aString reference to the string to be read into
+ */
+    {
+	TKeyCode code;
+	TBuf<1> kjar;
+
+	FOREVER
+		{
+		code = aConsole.Getch();
+		kjar.SetLength(0);
+		kjar.Append(code);
+
+		aConsole.Printf(_L("%S"),&kjar);
+	
+		// If <CR> finish editing string
+		if (code == '\r')
+			break;
+		
+		// if <BS> remove last character
+		if ((code == 0x08) && (aString.Length() != 0))
+			aString.SetLength((aString.Length()-1));
+		else
+			aString.Append(code);
+		}
+	aConsole.Printf(_L("\n"));
+    }
+
+
+void CAutoTest::LogTimeL()
+/*
+ * write date&time info to log file
+ */
+	{
+	TBuf8<64> buf8;
+	TTime now;
+	now.HomeTime();
+	TDateTime dateTime;
+	dateTime = now.DateTime();
+	buf8.Format(_L8("%02d/%02d/%04d %02d:%02d.%02d \r\n"), dateTime.Day()+1, dateTime.Month()+1, dateTime.Year(), 
+				dateTime.Hour(), dateTime.Minute(), dateTime.Second() );
+	(void)User::LeaveIfError(iTestReport.Write(buf8));
+	}
+
+EXPORT_C TBool CAutoTest::KeepGoing(void)
+// For external visibility
+// Handy if someone wants to use defaults instead of taking keyboard input
+	{
+	return iKeepGoing;
+	}
+
+
+EXPORT_C void CAutoTest::LogExtra(const TText8* aFile, TInt aLine, TRefByValue<const TDesC> aFmt,...)
+/**
+ * Write a free formatted string to a second log file and to the console.
+ * The second log files name is the same as the main log file plus '.EXTRA'.
+ */
+	{
+	VA_LIST list;
+	VA_START(list,aFmt);
+	//
+	// Assemble file name for second log file
+	_LIT(KExtra,".EXTRA");
+	TBuf<KMaxCmdLength+6> logFileName;		// +6 to hold the text ".EXTRA"
+	logFileName.Copy(iTestReportName);
+	logFileName.Append(KExtra);
+
+	// 
+	// Assemble string to be written to second log
+	TBuf<256> buf;				 
+	{		// Braces used to scope lifetime of TBuf objects
+	TPtrC8 fileName8(aFile);
+	TBuf<128> fileName;
+	fileName.Copy(fileName8);
+	buf.Format(_L("\t%S\t%d\t"), &fileName, aLine);
+	
+	buf.AppendFormatList(aFmt,list);
+	}
+
+	//
+	// (1) Open/create log file.
+	// (2) Write text to log file (RFileLogger adds a time stamp for us)
+	// (3) Close log
+	_LIT(KLogFolder,"autotest");
+	RFileLogger log;
+	if(log.Connect()==KErrNone)
+		{
+		log.CreateLog(KLogFolder,logFileName,EFileLoggingModeAppend);
+		log.Write(buf);
+		log.CloseLog();
+		log.Close();
+		}
+
+	//
+	// Also write the text to the console (with a new line after)
+	buf.Zero();
+	buf.AppendFormatList(aFmt,list);
+	iRTest.Printf(_L("%S\n"),&buf);
+	}
+
+
+void CAutoTest::MachineInfoL()
+/*
+ * write machine info to log file
+ */
+	{
+	TBuf8<256> buf8;
+	buf8.AppendFormat(_L8("Machine info: \r\n"));
+	//
+	// platform
+	//
+#if defined(__WINS__)
+	_LIT8(KPlatform, "WINS");
+#elif defined(__MARM_ARMI__)
+	_LIT8(KPlatform, "ARMI");
+#elif defined(__MARM_ARM4__)
+	_LIT8(KPlatform, "ARM4");
+#elif defined(__MARM_THUMB__)
+	_LIT8(KPlatform, "THUMB");
+#else
+	_LIT8(KPlatform, "unknown");
+#endif
+
+#if defined (_DEBUG)
+	_LIT8(KDebugRelease, "Debug");
+#else
+	_LIT8(KDebugRelease, "Release");
+#endif
+
+	buf8.AppendFormat(_L8("  Platform:    %S %S\r\n"), &KPlatform, &KDebugRelease );
+
+	//
+	// machine info from Hal9000
+	//
+	TMachineInfoV1Buf machine;
+	UserHal::MachineInfo(machine);
+
+	TVersion romver = machine().iRomVersion;
+	TInt64 uid = machine().iMachineUniqueId;
+    TInt khz = machine().iProcessorClockInKHz;
+
+	buf8.AppendFormat(_L8("  Rom version: %d.%d.%d\r\n"), romver.iMajor, romver.iMinor, romver.iBuild );
+	buf8.AppendFormat(_L8("  Unique ID:   0x%016x\r\n"), uid );
+	buf8.AppendFormat(_L8("  CPU Speed:   %d kHz\r\n"), khz );
+
+	User::LeaveIfError(iTestReport.Write(buf8));
+	}
+
+#ifndef EKA2
+GLDEF_C TInt E32Dll(TDllReason /*aReason*/)
+//
+// DLL entry point
+//
+	{
+	return(KErrNone);
+	}
+#endif
+// EOF - AUTOTEST.CPP
Binary file toolsandutils/buildsystem/bin/java/symbianant.jar has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/app-services/buildstubsis.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,20 @@
+# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for stub .sis building extension template
+#
+
+platform	win32
+makefile 	gnumake
+techstream	app-services
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/app-services/buildstubsis.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,72 @@
+# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Build Stub SIS file
+# 
+#
+
+# To ensure that EPOCROOT always ends with a forward slash
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+
+# Select appropriate directory and ensure it exists
+
+TARGETDIR=$(EPOCROOT)epoc32/data/z/system/install
+
+ifeq ($(PLATFORM),WINS) 
+        TARGETDIR=$(EPOCROOT)epoc32/release/$(PLATFORM_PATH)/$(CFG_PATH)/z/system/install
+else
+ifeq ($(PLATFORM),WINSCW)
+        TARGETDIR=$(EPOCROOT)epoc32/release/$(PLATFORM_PATH)/$(CFG_PATH)/z/system/install
+endif
+endif
+
+$(TARGETDIR) :
+	$(call createdir,"$(TARGETDIR)") 
+
+# Build stub SIS file
+
+SISFILE= $(TARGETDIR)/$(SISNAME).sis
+
+$(SISFILE) : $(EXTENSION_ROOT)/$(SRCDIR)/$(SISNAME).pkg
+	$(EPOCROOT)epoc32/tools/makesis -s $? $@
+
+do_nothing :
+	echo do_nothing
+
+# The targets invoked by abld
+
+MAKMAKE : do_nothing
+
+RESOURCE : $(TARGETDIR) $(SISFILE)
+
+SAVESPACE : BLD
+
+BLD : do_nothing
+
+FREEZE : do_nothing
+
+LIB : do_nothing
+
+CLEANLIB : do_nothing
+
+FINAL : do_nothing
+
+CLEAN :
+	-$(ERASE) $(SISFILE)
+
+RELEASABLES :
+	@echo $(SISFILE)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/app-services/buildupgradesis.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,20 @@
+# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for upgrade sis building extension template
+#
+
+platform	win32
+makefile 	gnumake
+techstream	app-services
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/app-services/buildupgradesis.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,72 @@
+# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Build Upgrade SIS file
+# 
+#
+
+# To ensure that EPOCROOT always ends with a forward slash
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+
+# Select appropriate directory and ensure it exists
+
+TARGETDIR=$(EPOCROOT)epoc32/data/z/private/$(UID_DIR)
+ifeq ($(PLATFORM),WINS) 
+        TARGETDIR=$(EPOCROOT)epoc32/release/$(PLATFORM_PATH)/$(CFG_PATH)/z/private/$(UID_DIR)
+else
+ifeq ($(PLATFORM),WINSCW)
+        TARGETDIR=$(EPOCROOT)epoc32/release/$(PLATFORM_PATH)/$(CFG_PATH)/z/private/$(UID_DIR)
+endif
+endif
+
+$(TARGETDIR) :
+	@$(call createdir,"$(TARGETDIR)") 
+
+# Build stub SIS file
+
+SISFILE= $(TARGETDIR)/$(SISNAME).sis
+
+$(SISFILE) : $(EXTENSION_ROOT)/$(SRCDIR)/$(SISNAME).pkg
+	$(EPOCROOT)epoc32/tools/makesis -d$(EXTENSION_ROOT)/$(SRCDIR) $? $@
+
+
+do_nothing :
+# do_nothing
+
+# The targets invoked by abld
+
+MAKMAKE : do_nothing
+
+RESOURCE : $(TARGETDIR) $(SISFILE)
+
+SAVESPACE : BLD
+
+BLD : do_nothing
+
+FREEZE : do_nothing
+
+LIB : do_nothing
+
+CLEANLIB : do_nothing
+
+FINAL : do_nothing
+
+CLEAN :
+	-$(ERASE) $(SISFILE)
+
+RELEASABLES :
+	@echo $(SISFILE)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/app-services/tzlocaltestserver.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,19 @@
+# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for stub .sis building extension template
+#
+
+platform	win32
+makefile 	gnumake
+techstream	app-services
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/app-services/tzlocaltestserver.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,62 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# TzLocalTestServer - makefile for TimeZoneLocalization test data
+# 
+#
+
+# To ensure that EPOCROOT always ends with a forward slash
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+
+MBSDIR = $(EPOCROOT)epoc32/tools/shell
+include $(MBSDIR)/$(notdir $(basename $(SHELL))).mk
+
+
+# Erase resources command
+erase_res  = $(ERASE) $(EPOCROOT)epoc32$/release$/$(PLATFORM)$/$(CFG)$/z$/resource$/timezonelocalization
+erase_data = $(ERASE) $(EPOCROOT)epoc32$/data$/z$/resource$/timezonelocalization
+do_nothing : 
+
+RESOURCE :
+	-$(erase_res)$/$(TZ_RSC)
+	-$(erase_data)$/$(TZ_RSC)
+	-$(erase_res)$/$(TZ_R01)
+	-$(erase_data)$/$(TZ_R01)
+	-$(erase_res)$/$(TZ_R02)
+	-$(erase_data)$/$(TZ_R02)
+	-$(erase_res)$/$(TZ_GRP_RSC)
+	-$(erase_data)$/$(TZ_GRP_RSC)
+	-$(erase_res)$/$(TZ_GRP_R01)
+	-$(erase_data)$/$(TZ_GRP_R01)
+	-$(erase_res)$/$(TZ_GRP_R02)
+	-$(erase_data)$/$(TZ_GTP_R02)
+
+BLD : do_nothing
+
+MAKMAKE :  do_nothing
+
+FREEZE : do_nothing
+
+LIB : do_nothing
+
+CLEANLIB : do_nothing
+
+CLEAN : do_nothing
+
+FINAL : do_nothing
+
+SAVESPACE : do_nothing
+
+RELEASEABLES : do_nothing
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/app-services/wlddatabasekit_sec.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,20 @@
+# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for the word database kit extension template
+#
+
+platform	win32
+makefile 	gnumake
+techstream	app-services
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/app-services/wlddatabasekit_sec.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,76 @@
+# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Builds the World Database
+# 
+#
+
+# To ensure that EPOCROOT always ends with a forward slash
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+
+TARGETDIR=$(EPOCROOT)epoc32/data/z/resource/worldserver
+
+ifeq ($(PLATFORM), WINS)
+        TARGETDIR=$(EPOCROOT)epoc32/release/$(PLATFORM_PATH)/$(CFG_PATH)/z/resource/worldserver
+else
+ifeq ($(PLATFORM), WINSCW)
+        TARGETDIR=$(EPOCROOT)epoc32/release/$(PLATFORM_PATH)/$(CFG_PATH)/z/resource/worldserver
+endif
+endif
+
+$(TARGETDIR) :
+	@$(call createdir,"$(TARGETDIR)")
+
+WLDCOMP=$(EPOCROOT)epoc32/release/winc/udeb/wldcomp.exe
+DATABASE=$(TARGETDIR)/$(TARGET)
+
+# We don't build multiple languages - that's a problem
+# for someone else...
+
+$(DATABASE) :  $(EXTENSION_ROOT)/$(SOURCES) $(WLDCOMP)
+	$(WLDCOMP) $(EXTENSION_ROOT)/$(SOURCES) $(DATABASE) -locale-01
+
+do_nothing :
+# do nothing
+
+#
+# The targets invoked by bld...
+#
+
+MAKMAKE : do_nothing
+
+BLD : $(TARGETDIR) $(DATABASE)
+
+SAVESPACE : BLD
+
+CLEAN :
+	-$(ERASE) $(DATABASE)
+
+FREEZE : do_nothing
+
+LIB : do_nothing
+
+CLEANLIB : do_nothing
+
+RESOURCE : do_nothing
+
+FINAL : do_nothing
+
+RELEASABLES : 
+	@echo $(DATABASE)
+
+ROMFILE : do_nothing
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/application-protocols/buildstubsis.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,20 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for stub .sis building extension template
+#
+
+platform	win32
+makefile 	gnumake
+techstream	application-protocols
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/application-protocols/buildstubsis.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,72 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# buildstubsis.mk - Build Stub SIS file
+# 
+#
+
+# To ensure that EPOCROOT always ends with a forward slash
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+
+# Select appropriate directory and ensure it exists
+
+TARGETDIR=$(EPOCROOT)epoc32/data/z/system/install
+
+ifeq ($(PLATFORM),WINS) 
+	TARGETDIR=$(EPOCROOT)epoc32/release/$(PLATFORM_PATH)/$(CFG_PATH)/z/system/install
+else
+ifeq ($(PLATFORM),WINSCW)
+	TARGETDIR=$(EPOCROOT)epoc32/release/$(PLATFORM_PATH)/$(CFG_PATH)/z/system/install
+endif
+endif
+
+$(TARGETDIR) :
+	$(call createdir,"$(TARGETDIR)") 
+
+# Build stub SIS file
+
+SISFILE= $(TARGETDIR)/$(SISNAME).sis
+
+$(SISFILE) : $(EXTENSION_ROOT)/$(SRCDIR)/$(SISNAME).pkg
+	$(EPOCROOT)epoc32/tools/makesis -s $? $@
+
+do_nothing :
+	echo do_nothing
+
+# The targets invoked by abld
+
+MAKMAKE : do_nothing
+
+RESOURCE : $(TARGETDIR) $(SISFILE)
+
+SAVESPACE : BLD
+
+BLD : do_nothing
+
+FREEZE : do_nothing
+
+LIB : do_nothing
+
+CLEANLIB : do_nothing
+
+FINAL : do_nothing
+
+CLEAN :
+	-$(ERASE) $(SISFILE)
+
+RELEASABLES :
+	@echo $(SISFILE)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/base/base_rvct_common.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,69 @@
+# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Some functions that are commonly used by base FLM
+
+define base__compile
+$(1) : $(2) : $(3)
+	$(call startrule,base__compile) \
+	$(CC) $(ARMCCFLAGS) $$< -o $$@ \
+	$(call endrule,base__compile)
+
+CLEANTARGETS := $(CLEANTARGETS) $(1)
+endef
+
+define base__h2inc
+$(1) : $(2)
+	$(call startrule,base__h2inc) \
+ 	$(PERL) $(EPOCROOT)/epoc32/tools/h2inc.pl $$< $$@ ARMASM \
+	$(call endrule,base__h2inc)
+
+CLEANTARGETS := $(CLEANTARGETS) $(1)
+endef
+
+define base__asm
+$(1) : $(2) : $(3)
+	$(call startrule,base__asm) \
+	$(ASM) $(AFLAGS) -o $$@ --LIST $(join $(basename $(1)),.lst) $$< \
+	$(call endrule,base__asm)
+
+CLEANTARGETS := $(CLEANTARGETS) $(1) $(join $(basename $(1)),.lst)
+endef
+
+define base__link
+$(1) : $(2)
+	$(call startrule,base__link) \
+	$(LD) $(LFLAGS) -o $$@ $(FULLOBJECTS) \
+	$(call endrule,base__link)
+
+CLEANTARGETS := $(CLEANTARGETS) $(1)
+endef
+
+define base__strip
+$(1) : $(2)
+	$(call startrule,base__strip) \
+	$(FROMELF) --bin --output $$@ $$< \
+	$(call endrule,base__strip)
+
+CLEANTARGETS := $(CLEANTARGETS) $(1)
+endef
+
+define base__omapsig
+$(1) : $(2)
+	$(call startrule,base__omapsig) \
+	$(PERL) $(EPOCROOT)/epoc32/tools/omapsig.pl $(LINKBASE) $$< $$@ \
+	$(call endrule,base__omapsig)
+
+CLEANTARGETS := $(CLEANTARGETS) $(1)
+endef
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/base/bootstrap.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,21 @@
+# Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for the boot strap extension template
+#
+
+platform	win32
+makefile 	gnumake
+techstream	base
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/base/bootstrap.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,391 @@
+# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+# To ensure that EPOCROOT always ends with a forward slash. 
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+
+ifndef CPU
+CPU := arm
+endif
+
+ifndef LINKBASE
+LINKBASE := 0x00000000
+endif
+
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+PROCEED:=build
+ifneq "$(PBUILDPID)" ""
+        ifneq "$(CFG)" "UREL"
+                PROCEED:=skip
+        endif
+endif
+
+COPY := $(call ecopy)
+
+ifeq "$(CPU)" "x86"
+        ifeq "$(MEMMODEL)" "direct"
+                BLDSGL:=s
+        else
+                ifeq "$(MEMMODEL)" "flexible"
+                        BLDSGL:=f
+                else
+                        BLDSGL:=
+                endif
+        endif
+        ifdef SMP
+                BLDSMP:=smp
+        else
+                BLDSMP:=
+        endif
+        EPOCROOT:=$(subst /,\,$(EPOCROOT))
+        EPOCBLDABS := $(EPOCROOT)epoc32\build\tasm$(PBUILDPID)\$(BLDSGL)$(VNAME)$(BLDSMP)
+else
+        DRIVELETTER := $(shell cd 2>NUL)
+        DRIVELETTER_2 := $(word 1,$(subst \, ,$(DRIVELETTER)))
+        EPOCBLDABS_1 := $(subst $(TO_ROOT),,$(EPOCBLD))
+        EPOCBLDABS_2 := $(subst $(DRIVELETTER_2),,$(EPOCBLDABS_1))
+        
+        EPOCBLDABS := $(call epocbldabs,$(DRIVELETTER_2),$(EPOCBLDABS_2))/$(NAME)
+endif
+
+EPOCINC := $(INC_PATH)
+EPOCKERNINC := $(EPOCINC)/kernel
+EPOCCPUINC := $(EPOCKERNINC)/$(CPU)
+EPOCMMINC := $(INC_PATH)/memmodel/epoc/$(MEMMODEL)/$(CPU)
+EPOCTRG := $(EPOCROOT)epoc32/release/$(PLATFORM_PATH)
+TRG := $(EPOCTRG)/$(NAME).bin
+TEMPTRG := $(EPOCBLDABS)/$(NAME).bin
+
+ifdef EXTRA_INC_PATH
+ASMINCPATH := $(EXTRA_INC_PATH)
+endif
+
+ifeq "$(CPU)" "arm"
+ASMINCPATH := . $(EPOCBLDABS) $(ASMINCPATH) $(EXTENSION_ROOT) $(EPOCCPUINC)
+ARMASM_OUT := $(shell armasm 2>&1)
+ARMASM_OUT_4 := $(word 4,$(ARMASM_OUT))
+ARMASM_OUT_6 := $(word 6,$(ARMASM_OUT))
+
+# Use GCC toolchain if no other is available
+TOOLVER := GCC
+
+RVCTSTR := $(strip $(findstring RVCT, $(ARMASM_OUT_4)))
+ifeq "$(RVCTSTR)" "RVCT"
+        TOOLVER := RVCT
+        OP := --
+endif
+ifeq "$(ARMASM_OUT_6)" "2.37"
+        TOOLVER := 211
+endif
+endif
+
+ifeq "$(MEMMODEL)" "direct"
+CFG_MM := CFG_MMDirect
+endif
+ifeq "$(MEMMODEL)" "moving"
+CFG_MM := CFG_MMMoving
+endif
+ifeq "$(MEMMODEL)" "multiple"
+CFG_MM := CFG_MMMultiple
+endif
+ifeq "$(MEMMODEL)" "flexible"
+CFG_MM := CFG_MMFlexible
+endif
+ifndef CFG_MM
+$(error Memory model unknown)
+endif
+
+ASM_MACROS += $(CFG_MM)
+ifdef SMP
+        ASM_MACROS += SMP
+endif
+
+ifeq "$(CPU)" "x86"
+        ifndef BASEINCLUDES
+                BASEINCLUDES := bootcpu.inc bootmacr.inc
+        endif
+        ifndef BASESOURCES
+                BASESOURCES := bootmain.asm bootcpu.asm bootutil.asm
+        endif
+        GENINCLUDES := $(GENINCLUDES) x86boot.h
+        ASMINCPATH := . 
+        ASM := tasm
+        LINK := tlink
+        EXE2BIN := exe2bin
+        SRCEXT := asm
+        INCEXT := inc
+        OBJEXT := obj
+        EXEEXT := exe
+        
+        ASMINCPATHCMD := $(foreach dir,$(ASMINCPATH),$(join /i,$(call slash2generic,$(dir))))   
+        ASM_MACRO_CMD := $(foreach macro,$(ASM_MACROS),/d$(macro)=1)
+        AFLAGS := /l /m3 /ML /W-PDC $(ASM_MACRO_CMD) $(ASMINCPATHCMD)
+        LFLAGS := /m /s /n /3 /c
+        ASMTYP := TASM
+        LINKFILE :=
+        define do_asm
+                cd $(EPOCBLDABS) && $(CP) $(call slash2generic,$<) .
+                cd $(EPOCBLDABS) && $(ASM) $(AFLAGS) $(notdir $<)
+        endef
+        define do_link
+                cd $(EPOCBLDABS) && $(LINK) $(LFLAGS) $(filter %.$(OBJEXT),$(foreach obj,$^,$(notdir $(obj)))), temp.exe
+                cd $(EPOCBLDABS) && $(COPY) temp.exe $@
+                cd $(EPOCBLDABS) && $(ERASE) temp.exe
+        endef
+        define do_strip
+                cd $(EPOCBLDABS) && $(COPY) $< temp.exe
+                cd $(EPOCBLDABS) && $(EXE2BIN) temp.exe temp.bin
+                cd $(EPOCBLDABS) && $(COPY) temp.bin $@
+                cd $(EPOCBLDABS) && $(ERASE) temp.exe temp.bin
+        endef
+endif
+ifeq "$(CPU)" "arm"
+        ifeq "$(TOOLVER)" "211"
+                ASM := armasm
+                LINK := armlink
+                SRCEXT := s
+                INCEXT := inc
+                OBJEXT := o
+                EXEEXT := in
+                ASMINCPATHCMD := $(foreach dir,$(ASMINCPATH),$(join -I ,$(dir)))
+                ASM_MACRO_CMD := $(foreach macro,$(ASM_MACROS),-predefine "$(macro) SETL {TRUE}")
+                AFLAGS := $(ASM_ARM211_VARIANTFLAGS) -apcs 3/32bit/nosw -Length 0 -Width 200 $(ASM_MACRO_CMD) $(ASMINCPATHCMD)
+                LFLAGS := -Base $(LINKBASE) -Data 0xf0000000 -Entry $(LINKBASE) -Bin -map
+                SYMOPT := -symbols
+                ASMTYP := ARMASM
+                LINKFILE :=
+                define do_asm
+                        $(ASM) $(AFLAGS) -o $@ -LIST $(join $(basename $@),.lst) $<
+                endef
+                define do_link
+                        $(LINK) $(LFLAGS) $(SYMOPT) $(join $(basename $@),.sym) -o $@ $(filter %.$(OBJEXT),$^)
+                endef
+                define do_strip
+                        @if exist $@ $(ERASE) $(call slash2generic,$@) 
+                        $(COPY) $< $@
+                endef
+        endif
+        ifeq "$(TOOLVER)" "RVCT"
+                ASM_MACROS += USE_CXSF
+                ASM := armasm
+                LINK := armlink
+                FROMELF := fromelf
+                SRCEXT := s
+                INCEXT := inc
+                OBJEXT := o
+                EXEEXT := in
+                ASMINCPATHCMD := $(foreach dir,$(ASMINCPATH),$(join -I ,$(dir)))
+                ASM_MACRO_CMD := $(foreach macro,$(ASM_MACROS),$(OP)predefine "$(macro) SETL {TRUE}")
+                AFLAGS := -g $(OP)keep $(ASM_MACRO_CMD) $(ASMINCPATHCMD) $(ASM_RVCT_VARIANTFLAGS)
+                LFLAGS := $(OP)ro-base $(LINKBASE) $(OP)entry $(LINKBASE) $(OP)map
+                SYMOPT := $(OP)symdefs
+                ASMTYP := ARMASM
+                LINKFILE :=
+                define do_asm
+                        $(ASM) $(AFLAGS) -o $@ $(OP)LIST $(join $(basename $@),.lst) $<
+                endef
+                define do_link
+                        $(LINK) $(LFLAGS) $(SYMOPT) $(join $(basename $@),.sym) -o $@ $(filter %.$(OBJEXT),$^)
+                        $(COPY) $@ $(join $(basename $(TRG)),.sym)
+                endef
+                define do_strip
+                        $(FROMELF) $(OP)bin $(OP)output $@ $<
+                endef
+        endif
+        ifeq "$(TOOLVER)" "GCC"
+                ASM_MACROS += USE_CXSF GNU_ASM
+                ASM := as
+                LINK := ld
+                STRIP := strip
+                SRCEXT := s
+                INCEXT := ginc
+                OBJEXT := o
+                EXEEXT := in
+                ASMINCPATHCMD := $(foreach dir,$(ASMINCPATH),$(join -I ,$(dir)))
+                ASM_MACRO_CMD := $(foreach macro,$(ASM_MACROS),--defsym $(macro)=1 )
+                AFLAGS := -mapcs-32 -R -n $(ASM_MACRO_CMD) -I- $(ASMINCPATHCMD)
+                LFLAGS := -n -x --section-alignment 4 --file-alignment 2 -no-whole-archive
+                SYMOPT := -symdefs
+                ASMTYP := AS
+                PROCESS_INCLUDES := 1
+                ifndef LINKFILE
+                        LINKFILE := bootstrap.lnk
+                endif
+                define do_asm
+                        perl $(EPOCROOT)epoc32/tools/armasm2as.pl $< $(join $(basename $@),.ss)
+                        $(ASM) $(AFLAGS) -acdhlms=$(join $(basename $@),.lst) -o $@ $(join $(basename $@),.ss)
+                endef
+                define do_link
+                        if exist $(join $(basename $@),.lnk) $(ERASE) $(call slash2generic,$(join $(basename $@),.lnk)) 
+                        $(COPY) $(subst /,\,$(filter %.lnk,$^)) $(join $(basename $@),.lnk)
+                        $(LINK) -M -o $@ $(filter %.$(OBJEXT),$^) $(LFLAGS) --script=$(join $(basename $@),.lnk) >$(join $(basename $@),.map)
+                endef
+                define do_strip
+                        $(STRIP) -O binary -o $(TEMPTRG) $<
+                        $(COPY) $(TEMPTRG) $@
+                        $(ERASE) $(call slash2generic,$(TEMPTRG)) 
+                endef
+        endif
+endif
+
+
+
+# Generic source files
+ifndef BASESOURCES
+BASESOURCES := bootmain.s bootcpu.s bootutils.s
+endif
+
+# Path for generic source files
+ifndef BASESRCPATH
+BASESRCPATH := $(E32PATH)/eka/kernel/$(CPU)
+endif
+
+
+# Generated include files
+GENINCLUDES := $(foreach f,$(GENINCLUDES),$(basename $(f)).$(INCEXT))
+GENINCLUDES := $(GENINCLUDES) e32rom.$(INCEXT) kernboot.$(INCEXT)
+GENINCLUDES := $(GENINCLUDES) bootdefs.$(INCEXT)
+ifneq "$(MEMMODEL)" "direct"
+GENINCLUDES := $(GENINCLUDES) mmboot.$(INCEXT)
+endif
+
+# Headers from which GENINCLUDES are generated
+GENHEADERS = $(foreach inc,$(GENINCLUDES),$(basename $(inc)).h)
+
+# Non-generated generic include files
+ifndef BASEINCLUDES
+BASEINCLUDES := bootcpu.inc bootmacro.inc
+endif
+BASEINCLUDES := $(foreach f,$(BASEINCLUDES),$(basename $(f)).$(INCEXT))
+INCLUDES := $(foreach f,$(INCLUDES),$(basename $(f)).$(INCEXT))
+
+# Generic object files
+BASEOBJECTS = $(foreach src, $(BASESOURCES), $(basename $(src)).$(OBJEXT))
+
+# Platform specific object files
+OBJECTS = $(foreach src, $(SOURCES), $(basename $(src)).$(OBJEXT))
+
+# Object files with paths
+FULLBASEOBJECTS = $(addprefix $(EPOCBLDABS)/,$(BASEOBJECTS))
+FULLOBJECTS = $(addprefix $(EPOCBLDABS)/,$(OBJECTS))
+LINKOBJECTS = $(FULLBASEOBJECTS) $(FULLOBJECTS)
+
+# Generated include files with paths
+FULLGENINCLUDES = $(addprefix $(EPOCBLDABS)/,$(GENINCLUDES))
+
+# Tell make where to look for things
+vpath %.h . $(EXTRA_INC_PATH) $(EPOCINC) $(EPOCKERNINC) $(EPOCCPUINC) $(EPOCMMINC)
+vpath %.inc . $(EXTRA_INC_PATH) $(EXTENSION_ROOT) $(EPOCINC) $(EPOCKERNINC) $(EPOCCPUINC) $(EPOCMMINC) $(EPOCBLDABS)
+vpath %.ginc $(EPOCBLDABS)
+vpath %.$(SRCEXT) . $(EXTRA_SRC_PATH) $(EXTENSION_ROOT) $(BASESRCPATH)
+vpath %.$(OBJEXT) $(EPOCBLDABS)
+vpath %.lnk . $(EXTENSION_ROOT) $(EPOCCPUINC)
+
+# How to link the object files 
+$(EPOCBLDABS)/$(NAME).$(EXEEXT): $(LINKOBJECTS) $(LINKFILE) $(call pipe,$(EPOCBLDABS)) 
+	$(do_link)
+
+# How to strip linked object to binary
+$(TRG): $(EPOCBLDABS)/$(NAME).$(EXEEXT)
+	$(do_strip)
+
+# How to assemble the source files
+ifdef PROCESS_INCLUDES
+FULLBASEINCLUDES := $(addprefix $(EPOCBLDABS)/,$(BASEINCLUDES))
+FULLINCLUDES := $(addprefix $(EPOCBLDABS)/,$(INCLUDES))
+
+$(FULLBASEINCLUDES) : $(EPOCBLDABS)/%.$(INCEXT) : %.inc $(call pipe,$(EPOCBLDABS))
+	perl $(EPOCROOT)epoc32/tools/armasm2as.pl $< $@
+
+$(FULLINCLUDES) : $(EPOCBLDABS)/%.$(INCEXT) : %.inc $(call pipe,$(EPOCBLDABS))
+	perl $(EPOCROOT)epoc32/tools/armasm2as.pl $< $@
+
+$(FULLBASEOBJECTS) : $(EPOCBLDABS)/%.$(OBJEXT) : %.$(SRCEXT) $(FULLINCLUDES) $(FULLBASEINCLUDES) $(FULLGENINCLUDES) $(call pipe,$(EPOCBLDABS))
+	$(do_asm)
+
+$(FULLOBJECTS) : $(EPOCBLDABS)/%.$(OBJEXT) : %.$(SRCEXT) $(FULLINCLUDES) $(FULLBASEINCLUDES) $(FULLGENINCLUDES) $(call pipe,$(EPOCBLDABS))
+	$(do_asm)
+
+else
+
+ifeq "$(CPU)" "x86"
+FULLBASEINCLUDES := $(addprefix $(EPOCBLDABS)/,$(BASEINCLUDES))
+FULLINCLUDES := $(addprefix $(EPOCBLDABS)/,$(INCLUDES))
+
+$(FULLBASEINCLUDES) $(FULLINCLUDES) : $(EPOCBLDABS)/%.inc : %.inc
+	$(CP) $(call slash2generic,$<) $(call slash2generic,$@) 
+
+$(FULLBASEOBJECTS) $(FULLOBJECTS) : $(EPOCBLDABS)/%.$(OBJEXT) : %.$(SRCEXT) $(FULLBASEINCLUDES) $(FULLGENINCLUDES) $(FULLINCLUDES)
+	$(do_asm)
+
+else
+$(FULLBASEOBJECTS) $(FULLOBJECTS) : $(EPOCBLDABS)/%.$(OBJEXT) : %.$(SRCEXT) $(BASEINCLUDES) $(FULLGENINCLUDES) $(INCLUDES) $(call pipe,$(EPOCBLDABS))
+	$(do_asm)
+
+endif
+endif
+
+# How to translate the .h files to .inc
+$(FULLGENINCLUDES) : $(EPOCBLDABS)/%.$(INCEXT) : %.h $(call pipe,$(EPOCBLDABS))
+	perl $(EPOCROOT)epoc32/tools/h2inc.pl $< $@ $(ASMTYP)
+
+
+# How to make the working directories
+$(EPOCBLDABS) $(EPOCTRG) :
+	$(call ifnotexistd,$(call slash2generic,$@))
+
+# Makmake targets
+.PHONY : MAKMAKE FREEZE LIB CLEANLIB RESOURCE FINAL BLD SAVESPACE RELEASABLES CLEAN
+.PHONY : build skip
+
+MAKMAKE :
+	echo Nothing to do
+	echo $(BASESRCPATH)
+
+FREEZE :
+	echo Nothing to do
+	echo $(BASESRCPATH)
+
+LIB :
+	echo Nothing to do
+	echo $(BASESRCPATH)
+
+CLEANLIB :
+	echo Nothing to do
+	echo $(BASESRCPATH)
+
+RESOURCE :
+	echo Nothing to do
+	echo $(BASESRCPATH)
+
+FINAL :
+	echo Nothing to do
+
+BLD SAVESPACE : $(PROCEED)
+
+RELEASABLES :
+	@echo $(TRG)
+
+CLEAN :
+	-$(ERASE) $(call slash2generic,$(TRG)) 
+	-$(ERASE) $(call slash2generic,$(EPOCBLDABS)/*.*) 
+
+build: $(EPOCTRG) $(EPOCBLDABS) $(TRG)
+	echo Bootstrap built for $(PLATFORM) $(CFG)
+
+skip:
+	echo Bootstrap build skipped for $(PLATFORM) $(CFG)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/base/config.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,21 @@
+# Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for the config extension template
+#
+
+platform	win32
+makefile 	gnumake
+techstream	base
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/base/config.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,65 @@
+# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+# To guarantee there is a slash at the end of EPOCROOT in case there is not. 
+# This is needed to ensure compatibility with SBSv1.
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+
+ifndef HALPATH
+HALPATH := ..
+endif
+
+ifndef SOURCE
+SOURCE := hal
+endif
+
+#MDIR := $(call generated,generatedcpp/hal) # abld
+#MDIR := $(call generated,base/lubbock) # raptor
+MDIR := $(call generatedcpp)
+
+MAKMAKE : $(MDIR)/$(PREFIX)values.cpp $(MDIR)/$(PREFIX)config.cpp
+
+FREEZE :
+
+LIB :
+
+CLEANLIB :
+
+RESOURCE :
+
+FINAL :
+
+BLD SAVESPACE : $(MDIR)/$(PREFIX)values.cpp $(MDIR)/$(PREFIX)config.cpp
+
+RELEASABLES :
+
+CLEAN :
+	-$(ERASE) $(call slash2generic,$(MDIR)/$(PREFIX)values.cpp) 
+	-$(ERASE) $(call slash2generic,$(MDIR)/$(PREFIX)config.cpp) 
+#	-$(ERASE) $(MDIR)/$(PREFIX)values.cpp
+#	-$(ERASE) $(MDIR)/$(PREFIX)config.cpp
+
+$(MDIR)/$(PREFIX)values.cpp : $(SOURCE)/values.hda $(EPOCROOT)epoc32/include/hal_data.h
+	-$(call createdir,"$(MDIR)")
+	perl $(HALPATH)/hal/halcfg.pl $(EPOCROOT)epoc32/include/hal_data.h $(SOURCE)/values.hda $(MDIR)/$(PREFIX)values.cpp
+
+$(MDIR)/$(PREFIX)config.cpp : $(SOURCE)/config.hcf $(EPOCROOT)epoc32/include/hal_data.h
+	-$(call createdir,"$(MDIR)")
+	perl $(HALPATH)/hal/halcfg.pl -x $(EPOCROOT)epoc32/include/hal_data.h $(SOURCE)/config.hcf $(MDIR)/$(PREFIX)config.cpp
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/base/copy_default.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,21 @@
+# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for the copy_default extension template
+#
+
+platform	win32
+makefile 	gnumake
+techstream	base
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/base/copy_default.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,48 @@
+# Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+# To guarantee there is a slash at the end of EPOCROOT in case there is not.
+# This is needed to ensure compatibility with SBSv1. 
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+
+SOURCE_COPY=$(EPOCROOT)epoc32/release/$(PLATFORM_PATH)/$(CFG_PATH)/$(SOURCES)
+TARGET_COPY=$(EPOCROOT)epoc32/release/$(PLATFORM_PATH)/$(CFG_PATH)/$(TARGET)
+
+$(TARGET_COPY) : $(SOURCE_COPY)
+	$(call cpfeature,"$(SOURCE_COPY)","$(TARGET_COPY)")
+#	perl $(EPOCROOT)epoc32/tools/copyfeaturevariants.pl "$(SOURCE_COPY)" "$(TARGET_COPY)"
+#	$(CP) "$?" "$@"
+
+#
+# The targets invoked by abld...
+#
+
+MAKMAKE BLD SAVESPACE FREEZE LIB CLEANLIB RESOURCE :
+	@echo Nothing to do for "$@"
+
+CLEAN : 
+	-$(ERASE) $(TARGET_COPY)
+
+RELEASABLES : 
+	@echo $(TARGET_COPY)
+
+# we have to wait until the SOURCE_COPY is built before we can copy it...
+#
+FINAL : $(TARGET_COPY)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/base/genexec.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,21 @@
+# Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for the genexec extension template
+#
+
+platform	win32
+makefile 	gnumake
+techstream	base
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/base/genexec.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,71 @@
+# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+# To guarantee there is a slash at the end of EPOCROOT in case there is not.
+# This is needed to ensure compatibility with SBSv1. 
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+
+XINCDIR := $(INC_PATH)
+XINCKDIR := $(INC_PATH)/kernel
+
+PROCEED:=all
+ifneq "$(PBUILDPID)" ""
+	ifneq "$(PLATFORM)" "$(__firstplat)"
+		PROCEED:=skip
+	endif
+endif
+
+.PHONY : MAKMAKE FREEZE LIB CLEANLIB RESOURCE FINAL BLD SAVESPACE RELEASABLES CLEAN
+.PHONY : all skip
+
+MAKMAKE : $(PROCEED)
+
+FREEZE :
+
+LIB : $(PROCEED)
+
+CLEANLIB :
+
+RESOURCE :
+
+FINAL :
+
+BLD SAVESPACE : $(PROCEED)
+
+RELEASABLES :
+
+CLEAN :
+	-$(ERASE) $(call slash2generic,$(XINCDIR)/exec_enum.h) 
+	-$(ERASE) $(call slash2generic,$(XINCDIR)/exec_user.h) 
+	-$(ERASE) $(call slash2generic,$(XINCKDIR)/exec_kernel.h) 
+
+all: $(XINCDIR)/exec_enum.h $(XINCDIR)/exec_user.h $(XINCKDIR)/exec_kernel.h
+
+$(XINCDIR)/exec_enum.h : $(EXTRA_SRC_PATH)/execs.txt $(EXTRA_SRC_PATH)/genexec.pl
+	perl $(EXTRA_SRC_PATH)/genexec.pl -i $(EXTRA_SRC_PATH)/execs.txt -e $(XINCDIR)/exec_enum.h -u $(XINCDIR)/exec_user.h -k $(XINCKDIR)/exec_kernel.h
+
+$(XINCDIR)/exec_user.h : $(EXTRA_SRC_PATH)/execs.txt $(EXTRA_SRC_PATH)/genexec.pl
+	perl $(EXTRA_SRC_PATH)/genexec.pl -i $(EXTRA_SRC_PATH)/execs.txt -e $(XINCDIR)/exec_enum.h -u $(XINCDIR)/exec_user.h -k $(XINCKDIR)/exec_kernel.h
+
+$(XINCKDIR)/exec_kernel.h :  $(EXTRA_SRC_PATH)/execs.txt $(EXTRA_SRC_PATH)/genexec.pl
+	perl $(EXTRA_SRC_PATH)/genexec.pl -i $(EXTRA_SRC_PATH)/execs.txt -e $(XINCDIR)/exec_enum.h -u $(XINCDIR)/exec_user.h -k $(XINCKDIR)/exec_kernel.h
+
+
+skip:
+	echo GENEXEC skipped for $(PLATFORM) $(CFG)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/base/h2_genbootinc.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,21 @@
+# Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for the h2_genbootinc extension template
+#
+
+platform	win32
+makefile 	gnumake
+techstream	base
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/base/h2_genbootinc.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,64 @@
+# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Generate assembler inc files from header files
+# 
+#
+
+# To guarantee there is a slash at the end of EPOCROOT in case there is not.
+# This is needed to ensure compatibility with SBSv1. 
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+
+XINCDIR := $(INC_PATH)/h2
+XINCDIR2 := $(INC_PATH)/assp/omap1610
+
+MAKMAKE : all
+
+FREEZE :
+
+LIB : all
+
+CLEANLIB :
+
+RESOURCE :
+
+FINAL :
+
+BLD SAVESPACE : all
+
+RELEASABLES :
+	@echo $(XINCDIR)/h2const.inc
+	@echo $(XINCDIR)/nand_fbr_offset.inc
+	@echo $(XINCDIR2)/omapconst.inc
+
+CLEAN :
+	-$(ERASE) $(call slash2generic,$(XINCDIR)/h2const.inc) 
+	-$(ERASE) $(call slash2generic,$(XINCDIR)/nand_fbr_offset.inc) 
+#	-$(ERASE) $(XINCDIR)/h2const.inc
+#	-$(ERASE) $(XINCDIR)/nand_fbr_offset.inc
+	@echo $(XINCDIR2)/omapconst.inc
+
+all: $(XINCDIR)/h2const.inc $(XINCDIR)/nand_fbr_offset.inc $(XINCDIR2)/omapconst.inc
+
+$(XINCDIR)/h2const.inc : $(XINCDIR)/h2const.h
+	perl $(EPOCROOT)epoc32/tools/h2inc.pl $(XINCDIR)/h2const.h $(XINCDIR)/h2const.inc ARMASM
+
+$(XINCDIR)/nand_fbr_offset.inc : $(XINCDIR)/nand_fbr_offset.h
+	perl $(EPOCROOT)epoc32/tools/h2inc.pl $(XINCDIR)/nand_fbr_offset.h $(XINCDIR)/nand_fbr_offset.inc ARMASM
+
+$(XINCDIR2)/omapconst.inc : $(XINCDIR2)/omapconst.h
+	perl $(EPOCROOT)epoc32/tools/h2inc.pl $(XINCDIR2)/omapconst.h $(XINCDIR2)/omapconst.inc ARMASM
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/base/h2_restricted_coreldr.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,21 @@
+# Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for the h2_restricted_coreldr extension template
+#
+
+platform	win32
+makefile 	gnumake
+techstream	base
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/base/h2_restricted_coreldr.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,384 @@
+# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Code execute address set in the linker file
+# 
+#
+
+# To guarantee there is a slash at the end of EPOCROOT in case there is not.
+# This is needed to ensure compatibility with SBSv1. 
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+
+## If any of these macros are changed, then execute "abld clean coreldr" from this directory
+## Use this macro if it is required to use the MMU
+## if the MMU is not require either comment it out or set it FALSE
+USE_MMU := TRUE
+  
+## This macro enables benchmarking code. Comment out or set FALSE if not required
+#WRITE_TIMINGS := TRUE
+
+## This macro causes the page tables to be output. Comment out or set FALSE if not required
+## If this option is selected then the MMU code will be enabled
+#DUMP_PAGE_TABLES := TRUE
+
+
+## Make sure all 3 macros are either TRUE or FALSE
+# Enforce USE_MMU if page table is to be dumped
+ifeq "$(DUMP_PAGE_TABLES)" "TRUE"
+        USE_MMU := TRUE
+else
+        DUMP_PAGE_TABLES := FALSE
+endif
+
+ifneq "$(USE_MMU)" "TRUE"
+        USE_MMU := FALSE
+endif
+
+ifneq "$(WRITE_TIMINGS)" "TRUE"
+        WRITE_TIMINGS := FALSE
+endif
+
+#Set the directories
+GENSRCDIR := $(EXTENSION_ROOT)/../../../kernelhwsrv/kerneltest/e32utils/nandboot/coreldr
+XSRSRCDIR := $(EXTENSION_ROOT)/../../../kernelhwsrv/kerneltest/e32utils/nandboot/coreldr/unistore2
+SPECSRCDIR := $(EXTENSION_ROOT)/../omaph2bsp/h2/nandboot/coreldr
+PLATSRCDIR := $(EXTENSION_ROOT)/../omaph2bsp/shared/bootstrap
+
+VARIANTINC := $(EXTENSION_ROOT)/../omaph2bsp/h2/inc
+ARMDIR := $(INC_PATH)/kernel/arm
+
+GENINC1 := $(INC_PATH)
+GENDRIVERINC := $(INC_PATH)/drivers
+GENINC2 := $(INC_PATH)/drivers/unistore2
+H2BLDDIR := $(EXTENSION_ROOT)/../omaph2bsp/h2
+GENINCPATH:= $(GENSRCDIR) $(SPECSRCDIR) $(XSRSRCDIR) $(VARIANTINC) $(GENINC1) $(GENDRIVERINC) $(GENINC2) $(H2BLDDIR) $(PLATSRCDIR)
+
+# Set the source/include/target directories
+GSRCDIR = ../../../unref/orphan/cedgen/shared/nandboot
+VINCDIR = ../../../unref/orphan/cedgen/h2/inc
+GINCDIR = ../../../unref/orphan/cedgen/shared/inc
+
+# Build directory (EPOCBLD too long)
+#BUILDLOC = $(EPOCROOT)epoc32/build/omap/h2/specific/unistore2/nandboot/coreldr/$(PLATFORM_PATH)/$(CFG_PATH)
+BUILDLOC = $(EPOCBLD)/$(PLATFORM_PATH)/$(CFG_PATH)
+
+# Set the target name
+TARGETDIR := $(EPOCROOT)epoc32/release/$(PLATFORM_PATH)
+TARGET = $(TARGETDIR)/h2_un2_coreldr.bin
+TMPTARGET = $(BUILDLOC)/coreldr.tmp
+
+#Rules
+vpath %.s . $(SPECSRCDIR) $(SRCDIR) $(GENSRCDIR)
+vpath %.inc . $(SPECSRCDIR)  $(VARIANTINC) $(EPOCINCDIR) $(BLDDIR) $(ARMDIR) $(PLATSRCDIR) $(GENSRCDIR) $(H2BLDDIR)
+vpath %.ginc . $(BUILDLOC)
+
+INCLUDES := nand_macro.inc
+
+VHEADERS := nanddevice.h 
+BUILTINCLUDES := nanddevice.inc
+BUILTINCLUDES2 := nand_plat.inc
+BLDINCLUDES := config.inc
+PLATINCLUDES := 16xx_common.inc general.inc
+GENINCLUDES := armcpudefs.inc
+
+ASMSOURCE := coreldrasm.s
+GENCPPSOURCE := coreldr.cpp inflate.cpp 
+XSRCPPSOURCE := coreldrxsr.cpp
+ifeq "$(USE_MMU)" "TRUE"
+        GENASMSOURCE := coreldrmmu.s # only link in the MMU stuff if required
+endif
+
+HEADERS := inflate.h coreldr.h
+SPECHEADERS := nand_plat.h
+
+## Address at which binary is loaded and started from
+LINKBASE = 0x20000C00
+
+
+
+ARMASM_OUT := $(shell armasm 2>&1)
+ARMASM_OUT_4 := $(word 4,$(ARMASM_OUT))
+
+# Select the toolchain: ARM RVCT, then GCC 
+
+# Use GCC toolchain if no other is available
+TOOLVER := GCC
+RVCTSTR := $(strip $(findstring RVCT, $(ARMASM_OUT_4)))
+ifeq "$(RVCTSTR)" "RVCT"
+        TOOLVER := RVCT
+        OP := --
+        OB := o
+endif
+
+# Build up logical TRUE defines
+ifeq "$(USE_MMU)" "TRUE"
+        ASM_TRUE_MACROS += USE_MMU
+endif 
+
+ifeq "$(WRITE_TIMINGS)" "TRUE"
+        ASM_TRUE_MACROS += WRITE_TIMINGS
+endif 
+
+ifeq "$(DUMP_PAGE_TABLES)" "TRUE"
+        ASM_TRUE_MACROS += DUMP_PAGE_TABLES
+endif 
+
+# Build up logical FALSE defines
+ifeq "$(USE_MMU)" "FALSE"
+        ASM_FALSE_MACROS += USE_MMU
+endif 
+
+ifeq "$(WRITE_TIMINGS)" "FALSE"
+        ASM_FALSE_MACROS += WRITE_TIMINGS
+endif 
+
+ifeq "$(DUMP_PAGE_TABLES)" "FALSE"
+        ASM_FALSE_MACROS += DUMP_PAGE_TABLES
+endif 
+
+#Arm RVCT tools
+ifeq "$(TOOLVER)" "RVCT"
+        ASM_TRUE_MACROS += USE_CXSF
+        ASM := armasm
+        LINK := armlink
+        FROMELF := fromelf
+        CPP := armcc
+
+        OBJEXT := o
+        INCEXT := inc
+
+        ARMCCFLAGS := --arm -c -Otime --cpp
+        ARMCCFLAGS := $(ARMCCFLAGS) $(foreach dir,$(GENINCPATH),$(join -I, $(dir)))
+        ARMCCFLAGS := $(ARMCCFLAGS) -DEKA2
+        ARMCCFLAGS := $(ARMCCFLAGS) -DSYMBIAN_SUPPORT_UNISTORE2
+
+
+        ARMCCFLAGS := $(ARMCCFLAGS) --preinclude $(EPOCROOT)epoc32/include/rvct/rvct.h
+
+        ifeq "$(CFG)" "UDEB"
+        ARMCCFLAGS := $(ARMCCFLAGS) -D_DEBUG
+        endif
+        
+        ASM_TRUE_MACRO_CMD := $(foreach macro,$(ASM_TRUE_MACROS),$(OP)predefine "$(macro) SETL {TRUE}")
+        ASM_FALSE_MACRO_CMD := $(foreach macro,$(ASM_FALSE_MACROS),$(OP)predefine "$(macro) SETL {FALSE}")
+        ASM_LINKBASE_MACRO := $(OP)predefine "_LINKBASE_ SETA $(LINKBASE)"
+
+        AFLAGS := -g $(OP)keep $(ASM_TRUE_MACRO_CMD) $(ASM_FALSE_MACRO_CMD) $(ASM_LINKBASE_MACRO) -I$(BUILDLOC) $(foreach dir,$(GENINCPATH),$(join -I, $(dir)))
+        LFLAGS := $(OP)entry BootEntry $(OP)ro-base $(LINKBASE) $(OP)FIRST BootEntry $(OP)map        
+        SYMOPT := $(OP)symdefs
+        ASMTYP := ARMASM
+        LINKFILE :=
+
+        define do_compile
+                $(CPP) $(ARMCCFLAGS) $< -o $@
+        endef
+        define do_h2inc
+                perl $(EPOCROOT)epoc32/tools/h2inc.pl $< $@ ARMASM
+        endef
+        define do_asm
+                $(ASM) $(AFLAGS) -$(OB) $@ $(OP)LIST $(join $(basename $@),.lst) $<
+        endef
+        define do_link
+                $(LINK) $(LFLAGS) -$(OB) $@ $(FULLOBJECTS)
+        endef
+        define do_strip
+                $(FROMELF) $(OP)bin $(OP)output $@ $<
+        endef
+endif
+
+
+#GCC build options
+ifeq "$(TOOLVER)" "GCC"
+        ASM := as
+        AFLAGS := -mapcs-32 -R -n -I$(BUILDLOC)
+
+        ASM_TRUE_MACRO_CMD := $(foreach macro,$(ASM_TRUE_MACROS),--defsym $(macro)=1)
+        ASM_FALSE_MACRO_CMD := $(foreach macro,$(ASM_FALSE_MACROS),--defsym $(macro)=0)
+        ASM_LINKBASE_MACRO := --defsym _LINKBASE_=$(LINKBASE)
+
+        LINKFLAGS = -n --section-alignment 4 --file-alignment 2 -no-whole-archive
+        GCCFLAGS=-march=armv4 -nostdinc -pipe -c -Wall -Wno-ctor-dtor-privacy -Wno-unknown-pragmas
+        GCCFLAGS := $(GCCFLAGS) $(foreach dir,$(GENINCPATH),$(join -I, $(dir)))
+        GCCDEFS = -D__SYMBIAN32__ -D__GCC32__ -D__EPOC32__ -D__MARM__ -D__MARM_ARM4__ -DEKA2 -DSYMBIAN_SUPPORT_UNISTORE2
+        ifeq "$(CFG)" "UDEB"
+        GCC = gcc -x c++ -g -O2 $(GCCFLAGS) -D_DEBUG -D_UNICODE $(GCCDEFS)
+        else
+        GCC = gcc -x c++ -s -fomit-frame-pointer -O2 $(GCCFLAGS) -DNDEBUG -D_UNICODE $(GCCDEFS)
+        endif
+
+        LINKFILE = $(SPECSRCDIR)/coreldr.lnk
+        OBJEXT := o
+        INCEXT := ginc
+
+        PROCESS_INCLUDES := 1
+        define do_compile
+                $(GCC) -o $@ $<
+        endef
+        define do_h2inc
+                perl $(EPOCROOT)epoc32/tools/h2inc.pl $< $@ AS
+                perl $(EPOCROOT)epoc32/tools/armasm2as.pl $@ $(join $(basename $@),.ginc)
+        endef 
+        define do_includes
+                perl $(EPOCROOT)epoc32/tools/armasm2as.pl $< $@ 
+        endef
+        define do_asm
+                perl $(EPOCROOT)epoc32/tools/armasm2as.pl $< $(join $(basename $@),.s)
+                $(AS) $(AFLAGS) $(ASM_TRUE_MACRO_CMD) $(ASM_FALSE_MACRO_CMD) $(ASM_LINKBASE_MACRO) -o $@ $(join $(basename $@),.s)
+        endef
+        define do_strip
+                strip -O binary -o "$(TARGET)" "$(TMPTARGET)"
+        
+		$(ERASE) $(call slash2generic,"$(TMPTARGET)") 
+        #	$(ERASE) "$(TMPTARGET)"
+		echo Built $(TARGET)
+        endef
+        define do_link
+                ld -o "$(TMPTARGET)"  --start $(FULLOBJECTS) --script=$(LINKFILE)
+        endef
+endif
+
+
+#CPP source processing
+FULLCPPSOURCE := $(addprefix $(GENSRCDIR)/,$(GENCPPSOURCE))
+
+#Header processing
+FULLHEADERS := $(addprefix $(GENSRCDIR)/,$(HEADERS))
+FULLSPECHEADERS := $(addprefix $(VARIANTINC)/,$(SPECHEADERS))
+
+FULLVHEADERS := $(addprefix $(GENDRIVERINC)/,$(VHEADERS))
+FULLBUILTINCLUDES := $(addprefix $(BUILDLOC)/,$(BUILTINCLUDES))
+$(FULLBUILTINCLUDES) : $(FULLVHEADERS)
+	$(do_h2inc)
+
+FULLVHEADERS2 := $(addprefix $(VARIANTINC)/,$(SPECHEADERS))
+FULLBUILTINCLUDES2 := $(addprefix $(BUILDLOC)/,$(BUILTINCLUDES2))
+$(FULLBUILTINCLUDES2) : $(FULLVHEADERS2) 
+	$(do_h2inc)
+
+#object names
+GENCPPOBJECTS := $(foreach f,$(GENCPPSOURCE),$(basename $(f)).$(OBJEXT))
+FULLGENCPPOBJECTS := $(addprefix $(BUILDLOC)/,$(GENCPPOBJECTS))
+
+XSRCPPOBJECTS := $(foreach f,$(XSRCPPSOURCE),$(basename $(f)).$(OBJEXT))
+FULLXSRCPPOBJECTS := $(addprefix $(BUILDLOC)/,$(XSRCPPOBJECTS))
+
+ASMOBJECTS := $(foreach f,$(ASMSOURCE),$(basename $(f)).$(OBJEXT))
+FULLASMOBJECTS := $(addprefix $(BUILDLOC)/,$(ASMOBJECTS))
+
+GENASMOBJECTS := $(foreach f,$(GENASMSOURCE),$(basename $(f)).$(OBJEXT))
+FULLGENASMOBJECTS := $(addprefix $(BUILDLOC)/,$(GENASMOBJECTS))
+
+FULLOBJECTS := $(FULLASMOBJECTS) $(FULLGENASMOBJECTS) $(FULLGENCPPOBJECTS) $(FULLXSRCPPOBJECTS)
+
+ifdef PROCESS_INCLUDES
+
+GCCSRC := $(addprefix $(BUILDLOC)/,$(SRC))
+
+#Creation of headers
+FULLINCLUDES := $(foreach f,$(INCLUDES),$(basename $(f)).$(INCEXT))
+FULLINCLUDES := $(addprefix $(BUILDLOC)/,$(FULLINCLUDES))
+
+$(FULLINCLUDES) : $(BUILDLOC)/%.$(INCEXT) : %.inc
+	$(do_includes)
+
+FULLBLDINCLUDES := $(foreach f,$(BLDINCLUDES),$(basename $(f)).$(INCEXT))
+FULLBLDINCLUDES := $(addprefix $(BUILDLOC)/,$(FULLBLDINCLUDES))
+$(FULLBLDINCLUDES) : $(BUILDLOC)/%.$(INCEXT) : %.inc
+	$(do_includes)
+
+FULLPLATINCLUDES := $(foreach f,$(PLATINCLUDES),$(basename $(f)).$(INCEXT))
+FULLPLATINCLUDES := $(addprefix $(BUILDLOC)/,$(FULLPLATINCLUDES))
+$(FULLPLATINCLUDES) : $(BUILDLOC)/%.$(INCEXT) : %.inc
+	$(do_includes)
+
+FULLGENINCLUDES := $(foreach f,$(GENINCLUDES),$(basename $(f)).$(INCEXT))
+FULLGENINCLUDES := $(addprefix $(BUILDLOC)/,$(FULLGENINCLUDES))
+$(FULLGENINCLUDES) : $(BUILDLOC)/%.$(INCEXT) : %.inc
+	$(do_includes)
+
+else
+FULLINCLUDES:= $(addprefix $(SPECSRCDIR)/,$(INCLUDES))
+FULLPLATINCLUDES:= $(addprefix $(PLATSRCDIR)/,$(PLATINCLUDES))
+FULLGENINCLUDES:= $(addprefix $(GENSRCDIR)/,$(GENINCLUDES))
+FULLBLDINCLUDES:= $(addprefix $(H2BLDDIR)/,$(BLDINCLUDES))
+
+#Arm RVCT specifics here
+
+endif
+
+
+#Link 
+$(TMPTARGET) : $(FULLOBJECTS)
+	$(do_link)
+
+#strip
+$(TARGET) : $(TMPTARGET)
+	$(do_strip)
+
+#CPP objects
+$(FULLGENCPPOBJECTS) : $(BUILDLOC)/%.$(OBJEXT) : $(GENSRCDIR)/%.cpp $(FULLHEADERS) $(FULLSPECHEADERS)
+	$(do_compile)
+
+$(FULLXSRCPPOBJECTS) : $(BUILDLOC)/%.$(OBJEXT) : $(XSRSRCDIR)/%.cpp $(FULLHEADERS) $(FULLSPECHEADERS)
+	$(do_compile)
+
+
+#Asm objects
+$(FULLGENASMOBJECTS) : $(BUILDLOC)/%.$(OBJEXT) : $(GENSRCDIR)/$(GENASMSOURCE) $(FULLINCLUDES) $(FULLBUILTINCLUDES) $(FULLBUILTINCLUDES2) $(FULLBUILTINCLUDES3) $(FULLDRIVERINCLUDES) $(FULLARMINCLUDES) $(FULLBLDINCLUDES) $(FULLGENINCLUDES) $(FULLPLATINCLUDES)
+	$(do_asm)
+
+$(FULLASMOBJECTS) : $(BUILDLOC)/%.$(OBJEXT) : $(SPECSRCDIR)/$(ASMSOURCE) $(FULLINCLUDES) $(FULLBUILTINCLUDES) $(FULLBUILTINCLUDES2) $(FULLBLDINCLUDES) $(FULLGENINCLUDES) $(FULLPLATINCLUDES)
+	$(do_asm)
+
+# make the work directories
+$(TARGETDIR) :
+	$(call ifnotexistd,"$(TARGETDIR)")
+
+$(BUILDLOC) :
+	$(call ifnotexistd,"$(BUILDLOC)")
+
+
+
+MAKMAKE :
+	echo Nothing to do
+
+FREEZE :
+	echo Nothing to do
+
+LIB :
+	echo Nothing to do
+
+CLEANLIB :
+	echo Nothing to do
+
+RESOURCE :
+	echo Nothing to do
+
+FINAL :
+	echo Nothing to do
+
+BLD SAVESPACE : $(TARGETDIR) $(BUILDLOC) $(TARGET)
+
+RELEASABLES :
+	@echo "$(TARGET)"
+
+CLEAN :
+	-$(ERASE) $(call slash2generic,"$(TARGET)") 
+	-$(ERASE) $(call slash2generic,"$(BUILDLOC)/*.*") 
+#	-$(ERASE) "$(TARGET)"
+#	-$(ERASE) "$(BUILDLOC)/*.*"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/base/h4_genbootinc.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,22 @@
+# Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for the h4_genbootinc extension template
+#
+
+
+platform	win32
+makefile 	gnumake
+techstream	base
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/base/h4_genbootinc.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,58 @@
+# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Generate assembler inc files from header files
+# 
+#
+
+# To guarantee there is a slash at the end of EPOCROOT in case there is not.
+# This is needed to ensure compatibility with SBSv1. 
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+
+XINCDIR := $(INC_PATH)/omap_hrp/h4
+XINCDIR2 := $(INC_PATH)/omap_hrp/assp/omap24xx
+
+MAKMAKE : all
+
+FREEZE :
+
+LIB : all
+
+CLEANLIB :
+
+RESOURCE :
+
+FINAL :
+
+BLD SAVESPACE : all
+
+RELEASABLES :
+	@echo $(XINCDIR)/nand_fbr_offset.inc
+	@echo $(XINCDIR2)/omap24xxconst.inc
+
+CLEAN :
+	-$(ERASE) $(call slash2generic,$(XINCDIR)/nand_fbr_offset.inc) 
+#	-$(ERASE) $(XINCDIR)/nand_fbr_offset.inc
+	@echo $(XINCDIR2)/omap24xxconst.inc
+
+all: $(XINCDIR2)/omap24xxconst.inc $(XINCDIR)/nand_fbr_offset.inc 
+
+$(XINCDIR)/nand_fbr_offset.inc : $(XINCDIR)/nand_fbr_offset.h
+	perl $(EPOCROOT)epoc32/tools/h2inc.pl $(XINCDIR)/nand_fbr_offset.h $(XINCDIR)/nand_fbr_offset.inc ARMASM
+
+$(XINCDIR2)/omap24xxconst.inc : $(XINCDIR2)/omap24xxconst.h
+	perl $(EPOCROOT)epoc32/tools/h2inc.pl $(XINCDIR2)/omap24xxconst.h $(XINCDIR2)/omap24xxconst.inc ARMASM
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/base/h4_restricted_coreldr.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,21 @@
+# Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for the h4_restricted_coreldr extension template
+#
+
+platform	win32
+makefile 	gnumake
+techstream	base
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/base/h4_restricted_coreldr.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,388 @@
+# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# #  NB! LINKBASE :  Code execute address also set coreldr.lnk file 
+# #  MUST REFLECT CORELOADER ADDRESS RELOCATION IN BOTH FILES!!
+# 
+#
+
+# To guarantee there is a slash at the end of EPOCROOT in case there is not.
+# This is needed to ensure compatibility with SBSv1. 
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+
+## If any of these macros are changed, then execute "abld clean coreldr" from this directory
+## Use this macro if it is required to use the MMU
+## if the MMU is not require either comment it out or set it FALSE
+USE_MMU := TRUE
+  
+## This macro enables benchmarking code. Comment out or set FALSE if not required
+#WRITE_TIMINGS := TRUE
+
+## This macro causes the page tables to be output. Comment out or set FALSE if not required
+## If this option is selected then the MMU code will be enabled
+#DUMP_PAGE_TABLES := TRUE
+
+
+## Make sure all 3 macros are either TRUE or FALSE
+# Enforce USE_MMU if page table is to be dumped
+ifeq "$(DUMP_PAGE_TABLES)" "TRUE"
+        USE_MMU := TRUE
+else
+        DUMP_PAGE_TABLES := FALSE
+endif
+
+ifneq "$(USE_MMU)" "TRUE"
+        USE_MMU := FALSE
+endif
+
+ifneq "$(WRITE_TIMINGS)" "TRUE"
+        WRITE_TIMINGS := FALSE
+endif
+
+#Set the directories
+GENSRCDIR := $(EXTENSION_ROOT)/../../../kernelhwsrv/kerneltest/e32utils/nandboot/coreldr
+XSRSRCDIR := $(EXTENSION_ROOT)/../../../kernelhwsrv/kerneltest/e32utils/nandboot/coreldr/unistore2
+SPECSRCDIR := $(EXTENSION_ROOT)/../omaph4bsp/h4/nandboot/coreldr_smallblk
+
+VARIANTINC := $(INC_PATH)/omap_hrp/h4
+VARIANTINC2 := $(EXTENSION_ROOT)/../omaph4bsp/shared/bootstrap
+VARIANTINC3 := $(EXTENSION_ROOT)/../omaph4bsp/h4/nand
+
+GENINC1 := $(INC_PATH)
+GENINC3 := $(EPOCROOT)epoc32/include
+GENDRIVERINC := $(INC_PATH)/drivers
+GENINC2 := $(INC_PATH)/drivers/unistore2
+GENINCPATH:= $(GENSRCDIR) $(SPECSRCDIR) $(XSRSRCDIR) $(VARIANTINC) $(VARIANTINC2) $(VARIANTINC3) $(GENINC1) $(GENDRIVERINC) $(GENINC2) $(GENINC3)
+
+# Set the source/include/target directories
+GSRCDIR = ../../../unref/orphan/cedgen/shared/nandboot
+VINCDIR = ../../../unref/orphan/cedgen/h4/inc
+GINCDIR = ../../../unref/orphan/cedgen/shared/inc
+EPOCINCDIR = $(INC_PATH)/omap_hrp/h4
+
+# Build directory (EPOCBLD too long)
+#BUILDLOC = $(EPOCROOT)epoc32/build/omap_hrp/h4_restricted/unistore2/nandboot/coreldr/$(PLATFORM_PATH)
+#BUILDLOC = $(EPOCBLD)/$(PLATFORM_PATH)/$(CFG_PATH)  # Error as $(EPOCBLD) include platform 
+BUILDLOC = $(EPOCBLD)/$(CFG_PATH)
+
+# Set the target name
+TARGETDIR := $(EPOCROOT)epoc32/release/$(PLATFORM_PATH)
+TARGET = $(TARGETDIR)/h4hrp_un2_sb_coreldr.bin
+TMPTARGET = $(BUILDLOC)/h4hrp_un2_sb_coreldr.elf
+
+#Rules
+vpath %.s . $(SPECSRCDIR) $(SRCDIR)
+vpath %.inc . $(SPECSRCDIR) $(EPOCINCDIR)
+vpath %.ginc . $(BUILDLOC)
+
+INCLUDES :=
+
+VHEADERS := nanddevice.h
+BUILTINCLUDES := nanddevice.inc config.inc
+BUILTINCLUDES2 := nand_plat.inc
+
+ASMSOURCE := coreldrasm_smallblk.s
+GENCPPSOURCE := coreldr.cpp inflate.cpp
+XSRCPPSOURCE := coreldrxsr.cpp
+
+ifeq "$(USE_MMU)" "TRUE"
+        GENASMSOURCE := coreldrmmu.s # only link in the MMU stuff if required
+endif
+
+HEADERS := inflate.h coreldr.h
+SPECHEADERS := nand_plat.h
+
+## Address at which coreloader binary is loaded and then started from
+#
+# On H4 this number is base of ram + 48MB (permitting 48MB core images)
+# this number is pretty arbitrary and may be raised higher into ram
+# if necessary as long as the corresponding change is also made to
+# KCoreLoaderAddress in variant_bootstrap.inc
+#
+LINKBASE = 0x83000000
+
+
+
+#ARMASM_OUT := $(shell armasm 2>&1)
+#ARMASM_OUT_4 := $(word 4,$(ARMASM_OUT))
+ARMASM_OUT := $(wordlist 2, 4, $(shell armasm --vsn 2>&1))
+
+# Select the toolchain: ARM RVCT, then GCC
+
+# Use GCC toolchain if no other is available
+TOOLVER := GCC
+#RVCTSTR := $(strip $(findstring RVCT, $(ARMASM_OUT_4)))
+RVCTSTR := $(strip $(findstring RVCT,$(ARMASM_OUT)))
+ifeq "$(RVCTSTR)" "RVCT"
+        TOOLVER := RVCT
+        OP := --
+        OB := o
+endif
+
+# Build up logical TRUE defines
+ifeq "$(USE_MMU)" "TRUE"
+        ASM_TRUE_MACROS += USE_MMU
+endif 
+
+ifeq "$(WRITE_TIMINGS)" "TRUE"
+        ASM_TRUE_MACROS += WRITE_TIMINGS
+endif 
+
+ifeq "$(DUMP_PAGE_TABLES)" "TRUE"
+        ASM_TRUE_MACROS += DUMP_PAGE_TABLES
+endif 
+
+# Build up logical FALSE defines
+ifeq "$(USE_MMU)" "FALSE"
+        ASM_FALSE_MACROS += USE_MMU
+endif 
+
+ifeq "$(WRITE_TIMINGS)" "FALSE"
+        ASM_FALSE_MACROS += WRITE_TIMINGS
+endif 
+
+ifeq "$(DUMP_PAGE_TABLES)" "FALSE"
+        ASM_FALSE_MACROS += DUMP_PAGE_TABLES
+endif 
+
+#Arm RVCT tools
+ifeq "$(TOOLVER)" "RVCT"
+        ASM_TRUE_MACROS += USE_CXSF
+        ASM := armasm
+        LINK := armlink
+        FROMELF := fromelf
+        CPP := armcc
+
+        OBJEXT := o
+        INCEXT := inc
+
+        ARMCCFLAGS := --arm -c -Otime --cpp
+        ARMCCFLAGS := $(ARMCCFLAGS) $(foreach dir,$(GENINCPATH),$(join -I, $(dir)))
+        ARMCCFLAGS := $(ARMCCFLAGS) -DEKA2
+        ARMCCFLAGS := $(ARMCCFLAGS) -DSYMBIAN_SUPPORT_UNISTORE2
+
+        ARMCCFLAGS := $(ARMCCFLAGS) --preinclude $(EPOCROOT)epoc32/include/rvct/rvct.h
+
+        ifeq "$(CFG)" "UDEB"
+        ARMCCFLAGS := $(ARMCCFLAGS) -D_DEBUG
+        endif
+
+        ASM_TRUE_MACRO_CMD := $(foreach macro,$(ASM_TRUE_MACROS),$(OP)predefine "$(macro) SETL {TRUE}")
+        ASM_FALSE_MACRO_CMD := $(foreach macro,$(ASM_FALSE_MACROS),$(OP)predefine "$(macro) SETL {FALSE}")
+        ASM_LINKBASE_MACRO := $(OP)predefine "_LINKBASE_ SETA $(LINKBASE)"
+
+        AFLAGS := -g $(OP)keep $(ASM_TRUE_MACRO_CMD) $(ASM_FALSE_MACRO_CMD) $(ASM_LINKBASE_MACRO) -I$(BUILDLOC) $(foreach dir,$(GENINCPATH),$(join -I, $(dir)))
+        LFLAGS := $(OP)entry BootEntry $(OP)ro-base $(LINKBASE) $(OP)FIRST BootEntry $(OP)map
+        SYMOPT := $(OP)symdefs
+        ASMTYP := ARMASM
+        LINKFILE :=
+
+        define do_compile
+                $(CPP) $(ARMCCFLAGS) $< -o $@
+        endef
+        define do_h2inc
+                perl $(EPOCROOT)epoc32/tools/h2inc.pl $< $@ ARMASM
+        endef
+        define do_asm
+                $(ASM) $(AFLAGS) -$(OB) $@ $(OP)LIST $(join $(basename $@),.lst) $<
+        endef
+        define do_link
+                $(LINK) $(LFLAGS) -$(OB) $@ $(FULLOBJECTS)
+        endef
+        define do_strip
+                $(FROMELF) $(OP)bin $(OP)output $@ $<
+        endef
+endif
+
+
+#GCC build options
+ifeq "$(TOOLVER)" "GCC"
+        ASM := as
+        AFLAGS := -mapcs-32 -R -n -I$(BUILDLOC)
+
+        ASM_TRUE_MACRO_CMD := $(foreach macro,$(ASM_TRUE_MACROS),--defsym $(macro)=1)
+        ASM_FALSE_MACRO_CMD := $(foreach macro,$(ASM_FALSE_MACROS),--defsym $(macro)=0)
+        ASM_LINKBASE_MACRO := --defsym _LINKBASE_=$(LINKBASE)
+
+        LINKFLAGS = -n --section-alignment 4 --file-alignment 2 -no-whole-archive
+        GCCFLAGS=-march=armv4 -nostdinc -pipe -c -Wall -Wno-ctor-dtor-privacy -Wno-unknown-pragmas
+        GCCFLAGS := $(GCCFLAGS) $(foreach dir,$(GENINCPATH),$(join -I, $(dir)))
+        GCCDEFS = -D__SYMBIAN32__ -D__GCC32__ -D__EPOC32__ -D__MARM__ -D__MARM_ARM4__ -DEKA2 -DSYMBIAN_SUPPORT_UNISTORE2
+        ifeq "$(CFG)" "UDEB"
+        GCC = gcc -x c++ -g -O2 $(GCCFLAGS) -D_DEBUG -D_UNICODE $(GCCDEFS)
+        else
+        GCC = gcc -x c++ -s -fomit-frame-pointer -O2 $(GCCFLAGS) -DNDEBUG -D_UNICODE $(GCCDEFS)
+        endif
+
+        LINKFILE = $(SPECSRCDIR)/coreldr.lnk
+        OBJEXT := o
+        INCEXT := ginc
+
+        PROCESS_INCLUDES := 1
+        define do_compile
+                $(GCC) -o $@ $<
+        endef
+        define do_h2inc
+                perl $(EPOCROOT)epoc32/tools/h2inc.pl $< $@ AS
+                perl $(EPOCROOT)epoc32/tools/armasm2as.pl $@ $(join $(basename $@),.ginc)
+        endef
+        define do_includes
+                perl $(EPOCROOT)epoc32/tools/armasm2as.pl $< $@
+        endef
+        define do_asm
+                perl $(EPOCROOT)epoc32/tools/armasm2as.pl $< $(join $(basename $@),.s)
+                $(AS) $(AFLAGS) $(ASM_TRUE_MACRO_CMD) $(ASM_FALSE_MACRO_CMD) $(ASM_LINKBASE_MACRO) -o $@ $(join $(basename $@),.s)
+        endef
+        define do_strip
+                strip -O binary -o "$(TARGET)" "$(TMPTARGET)"
+                echo Built $(TARGET)
+        endef
+        define do_link
+                ld -o "$(TMPTARGET)"  --start $(FULLOBJECTS) --script=$(LINKFILE)
+        endef
+endif
+
+
+#CPP source processing
+FULLCPPSOURCE := $(addprefix $(GENSRCDIR)/,$(GENCPPSOURCE))
+
+#Header processing
+FULLHEADERS := $(addprefix $(GENSRCDIR)/,$(HEADERS))
+FULLSPECHEADERS := $(addprefix $(VARIANTINC)/,$(SPECHEADERS))
+
+FULLVHEADERS := $(addprefix $(GENDRIVERINC)/,$(VHEADERS))
+FULLBUILTINCLUDES := $(addprefix $(BUILDLOC)/,$(BUILTINCLUDES))
+$(FULLBUILTINCLUDES) : $(FULLVHEADERS)
+	$(do_h2inc)
+
+FULLVHEADERS2 := $(addprefix $(VARIANTINC)/,$(SPECHEADERS))
+FULLBUILTINCLUDES2 := $(addprefix $(BUILDLOC)/,$(BUILTINCLUDES2))
+$(FULLBUILTINCLUDES2) : $(FULLVHEADERS2)
+	$(do_h2inc)
+
+#object names
+GENCPPOBJECTS := $(foreach f,$(GENCPPSOURCE),$(basename $(f)).$(OBJEXT))
+FULLGENCPPOBJECTS := $(addprefix $(BUILDLOC)/,$(GENCPPOBJECTS))
+
+XSRCPPOBJECTS := $(foreach f,$(XSRCPPSOURCE),$(basename $(f)).$(OBJEXT))
+FULLXSRCPPOBJECTS := $(addprefix $(BUILDLOC)/,$(XSRCPPOBJECTS))
+
+ASMOBJECTS := $(foreach f,$(ASMSOURCE),$(basename $(f)).$(OBJEXT))
+FULLASMOBJECTS := $(addprefix $(BUILDLOC)/,$(ASMOBJECTS))
+
+GENASMOBJECTS := $(foreach f,$(GENASMSOURCE),$(basename $(f)).$(OBJEXT))
+FULLGENASMOBJECTS := $(addprefix $(BUILDLOC)/,$(GENASMOBJECTS))
+
+FULLOBJECTS := $(FULLASMOBJECTS) $(FULLGENASMOBJECTS) $(FULLGENCPPOBJECTS) $(FULLXSRCPPOBJECTS)
+
+ifdef PROCESS_INCLUDES
+
+GCCSRC := $(addprefix $(BUILDLOC)/,$(SRC))
+
+#Creation of headers
+FULLINCLUDES := $(foreach f,$(INCLUDES),$(basename $(f)).$(INCEXT))
+FULLINCLUDES := $(addprefix $(BUILDLOC)/,$(FULLINCLUDES))
+
+$(FULLINCLUDES) : $(BUILDLOC)/%.$(INCEXT) : %.inc
+	$(do_includes)
+
+FULLBLDINCLUDES := $(foreach f,$(BLDINCLUDES),$(basename $(f)).$(INCEXT))
+FULLBLDINCLUDES := $(addprefix $(BUILDLOC)/,$(FULLBLDINCLUDES))
+$(FULLBLDINCLUDES) : $(BUILDLOC)/%.$(INCEXT) : %.inc
+	$(do_includes)
+
+FULLPLATINCLUDES := $(foreach f,$(PLATINCLUDES),$(basename $(f)).$(INCEXT))
+FULLPLATINCLUDES := $(addprefix $(BUILDLOC)/,$(FULLPLATINCLUDES))
+$(FULLPLATINCLUDES) : $(BUILDLOC)/%.$(INCEXT) : %.inc
+	$(do_includes)
+
+FULLGENINCLUDES := $(foreach f,$(GENINCLUDES),$(basename $(f)).$(INCEXT))
+FULLGENINCLUDES := $(addprefix $(BUILDLOC)/,$(FULLGENINCLUDES))
+$(FULLGENINCLUDES) : $(BUILDLOC)/%.$(INCEXT) : %.inc
+	$(do_includes)
+
+else
+FULLINCLUDES:= $(addprefix $(SPECSRCDIR)/,$(INCLUDES))
+FULLPLATINCLUDES:= $(addprefix $(PLATSRCDIR)/,$(PLATINCLUDES))
+FULLGENINCLUDES:= $(addprefix $(GENSRCDIR)/,$(GENINCLUDES))
+FULLBLDINCLUDES:= $(addprefix $(H2BLDDIR)/,$(BLDINCLUDES))
+
+#Arm RVCT specifics here
+
+endif
+
+
+#Link
+$(TMPTARGET) : $(FULLOBJECTS)
+	$(do_link)
+
+#strip
+$(TARGET) : $(TMPTARGET)
+	$(do_strip)
+
+#CPP objects
+$(FULLGENCPPOBJECTS) : $(BUILDLOC)/%.$(OBJEXT) : $(GENSRCDIR)/%.cpp $(FULLHEADERS) $(FULLSPECHEADERS)
+	$(do_compile)
+
+$(FULLXSRCPPOBJECTS) : $(BUILDLOC)/%.$(OBJEXT) : $(XSRSRCDIR)/%.cpp $(FULLHEADERS) $(FULLSPECHEADERS)
+	$(do_compile)
+
+#Asm objects
+$(FULLGENASMOBJECTS) : $(BUILDLOC)/%.$(OBJEXT) : $(GENSRCDIR)/$(GENASMSOURCE) $(FULLINCLUDES) $(FULLBUILTINCLUDES) $(FULLBUILTINCLUDES2) $(FULLBUILTINCLUDES3) $(FULLDRIVERINCLUDES) $(FULLARMINCLUDES) $(FULLBLDINCLUDES) $(FULLGENINCLUDES) $(FULLPLATINCLUDES)
+	$(do_asm)
+
+$(FULLASMOBJECTS) : $(BUILDLOC)/%.$(OBJEXT) : $(SPECSRCDIR)/$(ASMSOURCE) $(FULLINCLUDES) $(FULLBUILTINCLUDES) $(FULLBUILTINCLUDES2) $(FULLBLDINCLUDES) $(FULLGENINCLUDES) $(FULLPLATINCLUDES)
+	$(do_asm)
+
+# make the work directories
+$(TARGETDIR) :
+	$(call ifnotexistd,"$(TARGETDIR)")
+
+$(BUILDLOC) :
+	$(call ifnotexistd,"$(BUILDLOC)")
+
+
+
+MAKMAKE :
+	echo Nothing to do
+
+FREEZE :
+	echo Nothing to do
+
+LIB :
+	echo Nothing to do
+
+CLEANLIB :
+	echo Nothing to do
+
+RESOURCE :
+	echo Nothing to do
+
+FINAL :
+	echo Nothing to do
+
+BLD SAVESPACE : $(TARGETDIR) $(BUILDLOC) $(TARGET)
+
+RELEASABLES :
+	@echo "$(TARGET)"
+
+CLEAN :
+	-$(ERASE) $(call slash2generic,"$(TARGET)") 
+	-$(ERASE) $(call slash2generic,"$(BUILDLOC)/*.*") 
+#	-$(ERASE) "$(TARGET)"
+#	-$(ERASE) "$(BUILDLOC)/*.*"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/base/h4_restricted_on_coreldr.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,21 @@
+# Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for the h4_restricted_coreldr extension template
+#
+
+platform	win32
+makefile 	gnumake
+techstream	base
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/base/h4_restricted_on_coreldr.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,355 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# #  NB! LINKBASE :  Code execute address also set coreldr.lnk file 
+# #  MUST REFLECT CORELOADER ADDRESS RELOCATION IN BOTH FILES!!
+# 
+#
+
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+
+## If any of these macros are changed, then execute "abld clean coreldr" from this directory
+## Use this macro if it is required to use the MMU
+## if the MMU is not require either comment it out or set it FALSE
+USE_MMU := TRUE
+  
+# This macro enables benchmarking code. Comment out or set FALSE if not required
+#WRITE_TIMINGS := TRUE
+
+## This macro causes the page tables to be output. Comment out or set FALSE if not required
+## If this option is selected then the MMU code will be enabled
+#DUMP_PAGE_TABLES := TRUE
+
+
+## Make sure all 3 macros are either TRUE or FALSE
+# Enforce USE_MMU if page table is to be dumped
+ifeq "$(DUMP_PAGE_TABLES)" "TRUE"
+	USE_MMU := TRUE
+else
+	DUMP_PAGE_TABLES := FALSE
+endif
+
+ifneq "$(USE_MMU)" "TRUE"
+	USE_MMU := FALSE
+endif
+
+ifneq "$(WRITE_TIMINGS)" "TRUE"
+	WRITE_TIMINGS := FALSE
+endif
+
+#Set the directories
+GENSRCDIR := $(EXTENSION_ROOT)/../../../kernelhwsrv/kerneltest/e32utils/nandboot/coreldr
+BLSRCDIR := $(EXTENSION_ROOT)/../../../kernelhwsrv/kernel/eka/drivers/unistore2/srca/XSR/UTIL/ONBL2
+XSRSRCDIR1 := $(EXTENSION_ROOT)/../../../kernelhwsrv/kernel/eka/drivers/unistore2/srca/XSR/OAM/OSLess
+XSRSRCDIR2 := $(EXTENSION_ROOT)/../../../kernelhwsrv/kernel/eka/drivers/unistore2/srca/XSR/LLD/DNandO
+SPECSRCDIR := $(EXTENSION_ROOT)/../omaph4bsp/h4/nandboot/coreldr_onenand
+SPECXSRSRCDIR := $(EXTENSION_ROOT)/drivers/h4ons
+
+VARIANTINC := $(INC_PATH)/omap_hrp/h4
+VARIANTINC2 := $(EXTENSION_ROOT)/../omaph4bsp/shared/bootstrap
+VARIANTINC3 := $(EXTENSION_ROOT)/../omaph4bsp/h4/nand  $(EXTENSION_ROOT)/../omaph4bsp/assp/shared/assp $(EXTENSION_ROOT)/../omaph4bsp/assp/omap24xx/inc $(EXTENSION_ROOT)/../omaph4bsp/assp/omap24xx/assp $(EXTENSION_ROOT)/../omaph4bsp/assp/shared/interrupt $(EXTENSION_ROOT)/../omaph4bsp/assp/omap24xx/interrupt $(EXTENSION_ROOT)/../omaph4bsp/shared/gpio $(EXTENSION_ROOT)/../omaph4bsp/shared/mcspi $(EXTENSION_ROOT)/../omaph4bsp/assp/omap24xx/gpio $(EXTENSION_ROOT)/../omaph4bsp/assp/shared $(EXTENSION_ROOT)/../omaph4bsp/shared/cirq $(EXTENSION_ROOT)/../omaph4bsp/shared/dma $(EXTENSION_ROOT)/../omaph4bsp/assp/shared/dma
+
+GENINC1 := $(INC_PATH)
+GENINC3 := $(EPOCROOT)epoc32/include
+GENDRIVERINC := $(INC_PATH)/drivers
+GENINC2 := $(INC_PATH)/drivers/unistore2 $(INC_PATH)/memmodel/epoc $(INC_PATH)/kernel  $(INC_PATH)/kernel/arm $(INC_PATH)/nkern $(INC_PATH)/nkern/arm
+GENXSRINC := $(EXTENSION_ROOT)/../../../kernelhwsrv/kernel/eka/drivers/unistore2/srca/XSR/INC
+GENINCPATH:= $(GENSRCDIR) $(SPECSRCDIR) $(XSRSRCDIR1) $(XSRSRCDIR2) $(SPECXSRSRCDIR) $(VARIANTINC) $(VARIANTINC2) $(VARIANTINC3) $(GENINC1) $(GENDRIVERINC) $(GENINC2) $(GENINC3) $(GENINC4) $(GENXSRINC) $(GENINC3)
+
+# Set the source/include/target directories
+GSRCDIR = ../../../unref/orphan/cedgen/shared/nandboot
+VINCDIR = ../../../unref/orphan/cedgen/h4/inc
+GINCDIR = ../../../unref/orphan/cedgen/shared/inc
+EPOCINCDIR = $(INC_PATH)/omap_hrp/h4
+
+# Build directory (EPOCBLD too long)
+BUILDLOC = $(EPOCROOT)epoc32/build/omap_hrp/h4_restricted/unistore2/nandboot/coreldr/$(PLATFORM_PATH)
+
+# Set the target name
+TARGETDIR := $(EPOCROOT)epoc32/release/$(PLATFORM_PATH)
+TARGET = $(TARGETDIR)$/h4hrp_un2_on_coreldr.bin
+TMPTARGET = $(BUILDLOC)$/h4hrp_un2_on_coreldr.elf
+
+#Rules
+vpath %.s . $(SPECSRCDIR) $(SRCDIR)
+vpath %.inc . $(SPECSRCDIR) $(EPOCINCDIR)
+vpath %.ginc . $(BUILDLOC)
+
+VHEADERS := NandDevice.h
+BUILTINCLUDES := NandDevice.inc config.inc
+BUILTINCLUDES2 := nand_plat.inc
+
+ASMSOURCE := coreldrasm_onenand.s
+GENCPPSOURCE := inflate.cpp
+BLCPPSOURCE := ONbl2.cpp
+XSRCPPSOURCE1 := OSLessOAM.cpp
+XSRCPPSOURCE2 := onld.cpp
+SPECXSRCPPSOURCE := pam.cpp
+
+XSRLIB := $(EPOCROOT)epoc32/release/armv5/urel/nbl2.lib
+
+ifeq "$(USE_MMU)" "TRUE"
+	GENASMSOURCE := coreldrmmu.s # only link in the MMU stuff if required
+endif
+
+# HEADERS := inflate.h coreldr.h
+HEADERS := 
+SPECHEADERS := nand_plat.h
+
+## Address at which coreloader binary is loaded and then started from
+#
+# On H4 this number is base of ram + 48MB (permitting 48MB core images)
+# this number is pretty arbitrary and may be raised higher into ram
+# if necessary as long as the corresponding change is also made to
+# KCoreLoaderAddress in variant_bootstrap.inc
+#
+LINKBASE = 0x83000000
+
+
+
+ARMASM_OUT := $(shell armasm 2>&1)
+ARMASM_OUT_4 := $(word 4,$(ARMASM_OUT))
+
+# Select the toolchain: ARM RVCT, then GCC
+
+# Use GCC toolchain if no other is available
+TOOLVER := GCC
+RVCTSTR := $(strip $(findstring RVCT, $(ARMASM_OUT_4)))
+ifeq "$(RVCTSTR)" "RVCT"
+	TOOLVER := RVCT
+	OP := --
+	OB := o
+endif
+
+# Build up logical TRUE defines
+ifeq "$(USE_MMU)" "TRUE"
+	ASM_TRUE_MACROS += USE_MMU
+endif 
+
+ifeq "$(WRITE_TIMINGS)" "TRUE"
+	ASM_TRUE_MACROS += WRITE_TIMINGS
+endif 
+
+ifeq "$(DUMP_PAGE_TABLES)" "TRUE"
+	ASM_TRUE_MACROS += DUMP_PAGE_TABLES
+endif 
+
+# Build up logical FALSE defines
+ifeq "$(USE_MMU)" "FALSE"
+	ASM_FALSE_MACROS += USE_MMU
+endif 
+
+ifeq "$(WRITE_TIMINGS)" "FALSE"
+	ASM_FALSE_MACROS += WRITE_TIMINGS
+endif 
+
+ifeq "$(DUMP_PAGE_TABLES)" "FALSE"
+	ASM_FALSE_MACROS += DUMP_PAGE_TABLES
+endif 
+
+#Arm RVCT tools
+ifeq "$(TOOLVER)" "RVCT"
+ASM_TRUE_MACROS += USE_CXSF
+ASM := armasm
+LINK := armlink
+FROMELF := fromelf
+CPP := armcc
+
+OBJEXT := o
+INCEXT := inc
+
+ARMCCFLAGS := --arm -c -Otime --cpp
+ARMCCFLAGS := $(ARMCCFLAGS) $(foreach dir,$(GENINCPATH),$(join -I, $(dir)))
+ARMCCFLAGS := $(ARMCCFLAGS) -DEKA2
+ARMCCFLAGS := $(ARMCCFLAGS) -DXSR_NBL2 -DREAL_TARGET -DSYMBIAN_SUPPORT_UNISTORE2 
+
+	ARMCCFLAGS := $(ARMCCFLAGS) --preinclude $(EPOCROOT)epoc32/include/rvct/rvct.h
+
+	ifeq "$(CFG)" "UDEB"
+	ARMCCFLAGS := $(ARMCCFLAGS) -D_DEBUG
+	endif
+
+ASM_TRUE_MACRO_CMD := $(foreach macro,$(ASM_TRUE_MACROS),$(OP)predefine "$(macro) SETL {TRUE}")
+ASM_FALSE_MACRO_CMD := $(foreach macro,$(ASM_FALSE_MACROS),$(OP)predefine "$(macro) SETL {FALSE}")
+ASM_LINKBASE_MACRO := $(OP)predefine "_LINKBASE_ SETA $(LINKBASE)"
+
+AFLAGS := -g $(OP)keep $(ASM_TRUE_MACRO_CMD) $(ASM_FALSE_MACRO_CMD) $(ASM_LINKBASE_MACRO) -I$(BUILDLOC) $(foreach dir,$(GENINCPATH),$(join -I, $(dir)))
+LFLAGS := $(OP)entry BootEntry $(OP)ro-base $(LINKBASE) $(OP)FIRST BootEntry $(OP)map
+SYMOPT := $(OP)symdefs
+ASMTYP := ARMASM
+LINKFILE :=
+
+define do_compile
+$(CPP) $(ARMCCFLAGS) $< -o $@
+endef
+define do_h2inc
+perl -S $(EPOCROOT)epoc32/tools/h2inc.pl $< $@ ARMASM
+endef
+define do_asm
+$(ASM) $(AFLAGS) -$(OB) $@ $(OP)LIST $(join $(basename $@),.lst) $<
+endef
+define do_link
+$(LINK) $(LFLAGS) -$(OB) $@ $(FULLOBJECTS)
+endef
+define do_strip
+$(FROMELF) $(OP)bin $(OP)output $@ $<
+endef
+endif
+
+#Header processing
+FULLHEADERS := $(addprefix $(GENSRCDIR)/,$(HEADERS))
+FULLSPECHEADERS := $(addprefix $(VARIANTINC)/,$(SPECHEADERS))
+
+FULLVHEADERS := $(addprefix $(GENDRIVERINC)/,$(VHEADERS))
+FULLBUILTINCLUDES := $(addprefix $(BUILDLOC)/,$(BUILTINCLUDES))
+$(FULLBUILTINCLUDES) : $(FULLVHEADERS)
+	$(do_h2inc)
+
+FULLVHEADERS2 := $(addprefix $(VARIANTINC)/,$(SPECHEADERS))
+FULLBUILTINCLUDES2 := $(addprefix $(BUILDLOC)/,$(BUILTINCLUDES2))
+$(FULLBUILTINCLUDES2) : $(FULLVHEADERS2)
+	$(do_h2inc)
+
+#object names
+GENCPPOBJECTS := $(foreach f,$(GENCPPSOURCE),$(basename $(f)).$(OBJEXT))
+FULLGENCPPOBJECTS := $(addprefix $(BUILDLOC)/,$(GENCPPOBJECTS))
+
+BLCPPOBJECTS := $(foreach f,$(BLCPPSOURCE),$(basename $(f)).$(OBJEXT))
+FULLBLCPPOBJECTS := $(addprefix $(BUILDLOC)/,$(BLCPPOBJECTS))
+
+XSRCPPOBJECTS1 := $(foreach f,$(XSRCPPSOURCE1),$(basename $(f)).$(OBJEXT))
+FULLXSRCPPOBJECTS1 := $(addprefix $(BUILDLOC)/,$(XSRCPPOBJECTS1))
+
+XSRCPPOBJECTS2 := $(foreach f,$(XSRCPPSOURCE2),$(basename $(f)).$(OBJEXT))
+FULLXSRCPPOBJECTS2 := $(addprefix $(BUILDLOC)/,$(XSRCPPOBJECTS2))
+
+SPECXSRCPPOBJECTS := $(foreach f,$(SPECXSRCPPSOURCE),$(basename $(f)).$(OBJEXT))
+FULLSPECXSRCPPOBJECTS := $(addprefix $(BUILDLOC)/,$(SPECXSRCPPOBJECTS))
+
+ASMOBJECTS := $(foreach f,$(ASMSOURCE),$(basename $(f)).$(OBJEXT))
+FULLASMOBJECTS := $(addprefix $(BUILDLOC)/,$(ASMOBJECTS))
+
+GENASMOBJECTS := $(foreach f,$(GENASMSOURCE),$(basename $(f)).$(OBJEXT))
+FULLGENASMOBJECTS := $(addprefix $(BUILDLOC)/,$(GENASMOBJECTS))
+
+FULLOBJECTS := $(FULLASMOBJECTS) $(FULLGENASMOBJECTS) $(FULLGENCPPOBJECTS) $(FULLBLCPPOBJECTS) $(FULLXSRCPPOBJECTS1) $(FULLXSRCPPOBJECTS2) $(FULLSPECXSRCPPOBJECTS) $(XSRLIB)
+
+ifdef PROCESS_INCLUDES
+
+GCCSRC := $(addprefix $(BUILDLOC)/,$(SRC))
+
+#Creation of headers
+FULLINCLUDES := $(foreach f,$(INCLUDES),$(basename $(f)).$(INCEXT))
+FULLINCLUDES := $(addprefix $(BUILDLOC)/,$(FULLINCLUDES))
+
+$(FULLINCLUDES) : $(BUILDLOC)/%.$(INCEXT) : %.inc
+	$(do_includes)
+
+FULLBLDINCLUDES := $(foreach f,$(BLDINCLUDES),$(basename $(f)).$(INCEXT))
+FULLBLDINCLUDES := $(addprefix $(BUILDLOC)/,$(FULLBLDINCLUDES))
+$(FULLBLDINCLUDES) : $(BUILDLOC)/%.$(INCEXT) : %.inc
+	$(do_includes)
+
+FULLPLATINCLUDES := $(foreach f,$(PLATINCLUDES),$(basename $(f)).$(INCEXT))
+FULLPLATINCLUDES := $(addprefix $(BUILDLOC)/,$(FULLPLATINCLUDES))
+$(FULLPLATINCLUDES) : $(BUILDLOC)/%.$(INCEXT) : %.inc
+	$(do_includes)
+
+FULLGENINCLUDES := $(foreach f,$(GENINCLUDES),$(basename $(f)).$(INCEXT))
+FULLGENINCLUDES := $(addprefix $(BUILDLOC)/,$(FULLGENINCLUDES))
+$(FULLGENINCLUDES) : $(BUILDLOC)/%.$(INCEXT) : %.inc
+	$(do_includes)
+
+else
+FULLINCLUDES:= $(addprefix $(SPECSRCDIR)/,$(INCLUDES))
+FULLPLATINCLUDES:= $(addprefix $(PLATSRCDIR)/,$(PLATINCLUDES))
+FULLGENINCLUDES:= $(addprefix $(GENSRCDIR)/,$(GENINCLUDES))
+FULLBLDINCLUDES:= $(addprefix $(H2BLDDIR)/,$(BLDINCLUDES))
+
+#Arm RVCT specifics here
+
+endif
+
+
+#Link
+$(TMPTARGET) : $(FULLOBJECTS)
+	$(do_link)
+
+#strip
+$(TARGET) : $(TMPTARGET)
+	$(do_strip)
+
+#CPP objects
+$(FULLGENCPPOBJECTS) : $(BUILDLOC)/%.$(OBJEXT) : $(GENSRCDIR)/%.cpp $(FULLHEADERS) $(FULLSPECHEADERS)
+	$(do_compile)
+
+$(FULLBLCPPOBJECTS) : $(BUILDLOC)/%.$(OBJEXT) : $(BLSRCDIR)/%.cpp $(FULLHEADERS) $(FULLSPECHEADERS)
+	$(do_compile)
+
+$(FULLXSRCPPOBJECTS1) : $(BUILDLOC)/%.$(OBJEXT) : $(XSRSRCDIR1)/%.cpp $(FULLHEADERS) $(FULLSPECHEADERS)
+	$(do_compile)
+
+$(FULLXSRCPPOBJECTS2) : $(BUILDLOC)/%.$(OBJEXT) : $(XSRSRCDIR2)/%.cpp $(FULLHEADERS) $(FULLSPECHEADERS)
+	$(do_compile)
+
+$(FULLSPECXSRCPPOBJECTS) : $(BUILDLOC)/%.$(OBJEXT) : $(SPECXSRSRCDIR)/%.cpp $(FULLHEADERS) $(FULLSPECHEADERS)
+	$(do_compile)
+
+
+#Asm objects
+$(FULLGENASMOBJECTS) : $(BUILDLOC)/%.$(OBJEXT) : $(GENSRCDIR)/$(GENASMSOURCE) $(FULLINCLUDES) $(FULLBUILTINCLUDES) $(FULLBUILTINCLUDES2) $(FULLBUILTINCLUDES3) $(FULLDRIVERINCLUDES) $(FULLARMINCLUDES) $(FULLBLDINCLUDES) $(FULLGENINCLUDES) $(FULLPLATINCLUDES)
+	$(do_asm)
+
+$(FULLASMOBJECTS) : $(BUILDLOC)/%.$(OBJEXT) : $(SPECSRCDIR)/$(ASMSOURCE) $(FULLINCLUDES) $(FULLBUILTINCLUDES) $(FULLBUILTINCLUDES2) $(FULLBLDINCLUDES) $(FULLGENINCLUDES) $(FULLPLATINCLUDES)
+	$(do_asm)
+
+# make the work directories
+$(TARGETDIR) :
+	$(call ifnotexistd,"$(TARGETDIR)")
+
+$(BUILDLOC) :
+	$(call ifnotexistd,"$(BUILDLOC)")
+
+
+MAKMAKE :
+	echo Nothing to do
+
+FREEZE :
+	echo Nothing to do
+
+LIB :
+	echo Nothing to do
+
+CLEANLIB :
+	echo Nothing to do
+
+RESOURCE :
+	echo Nothing to do
+
+FINAL :
+	echo Nothing to do
+
+BLD SAVESPACE : $(TARGETDIR) $(BUILDLOC) $(TARGET)
+	@echo BLD
+
+RELEASABLES :
+	@echo "$(TARGET)"
+
+CLEAN :
+	-$(ERASE) $(call slash2generic,"$(TARGET)")
+	-$(ERASE) $(call slash2generic,"$(BUILDLOC)/*.*")
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/base/h4_restricted_on_miniboot.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,21 @@
+# Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for the h4_restricted_coreldr extension template
+#
+
+platform	win32
+makefile 	gnumake
+techstream	base
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/base/h4_restricted_on_miniboot.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,149 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+## This macro enables benchmarking code. Comment out or set FALSE if not required
+# WRITE_TIMINGS := TRUE
+
+ifneq "$(WRITE_TIMINGS)" "TRUE"
+        WRITE_TIMINGS := FALSE
+endif
+
+#Set the directories
+GENSRCDIR := $(EXTENSION_ROOT)/../../../kernelhwsrv/kernel/eka/drivers/unistore2/srca/xsr/util/ONBL1
+SPECSRCDIR := $(EXTENSION_ROOT)/nandboot/miniboot_onenand
+
+# Build directory (EPOCBLD too long)
+BUILDLOC = $(EPOCROOT)epoc32/build/omap_hrp/h4_restricted/unistore2/nandboot/miniboot/$(PLATFORM_PATH)
+
+# Set the target name
+TARGETDIR := $(EPOCROOT)epoc32/release/$(PLATFORM_PATH)
+TARGET = $(TARGETDIR)$/h4hrp_un2_on_miniboot.bin
+TMPTARGET = $(BUILDLOC)$/h4hrp_un2_on_miniboot.elf
+
+#Rules
+vpath %.s . $(GENSRCDIR) $(SPECSRCDIR) 
+
+GENASMSOURCE := onbl1.s
+ASMSOURCE := miniboot_onenand.s
+
+ARMASM_OUT := $(shell armasm 2>&1)
+ARMASM_OUT_4 := $(word 4,$(ARMASM_OUT))
+
+# Select the toolchain: ARM RVCT, then GCC
+#TOOLVER := RVCT
+OP := --
+OB := o
+
+
+ifeq "$(WRITE_TIMINGS)" "TRUE"
+	ASM_TRUE_MACROS += WRITE_TIMINGS
+endif 
+
+ifeq "$(WRITE_TIMINGS)" "FALSE"
+	ASM_FALSE_MACROS += WRITE_TIMINGS
+endif 
+
+#Arm RVCT tools
+ASM_TRUE_MACROS += USE_CXSF
+ASM := armasm
+LINK := armlink
+FROMELF := fromelf
+
+OBJEXT := o
+
+ASM_TRUE_MACRO_CMD := $(foreach macro,$(ASM_TRUE_MACROS),$(OP)predefine "$(macro) SETL {TRUE}")
+ASM_FALSE_MACRO_CMD := $(foreach macro,$(ASM_FALSE_MACROS),$(OP)predefine "$(macro) SETL {FALSE}")
+
+AFLAGS := -g $(OP)keep $(ASM_TRUE_MACRO_CMD) $(ASM_FALSE_MACRO_CMD) -I$(BUILDLOC)
+LFLAGS := $(OP)entry BootEntry $(OP)FIRST BootEntry $(OP)map
+SYMOPT := $(OP)symdefs
+ASMTYP := ARMASM
+
+define do_asm
+	$(ASM) $(AFLAGS) -$(OB) $@ $(OP)LIST $(join $(basename $@),.lst) $<
+endef
+
+define do_link
+	$(LINK) $(LFLAGS) -$(OB) $@ $(FULLOBJECTS)
+endef
+
+define do_strip
+	$(FROMELF) $(OP)bin $(OP)output $@ $<
+endef
+
+ASMOBJECTS := $(foreach f,$(ASMSOURCE),$(basename $(f)).$(OBJEXT))
+FULLASMOBJECTS := $(addprefix $(BUILDLOC)/,$(ASMOBJECTS))
+
+GENASMOBJECTS := $(foreach f,$(GENASMSOURCE),$(basename $(f)).$(OBJEXT))
+FULLGENASMOBJECTS := $(addprefix $(BUILDLOC)/,$(GENASMOBJECTS))
+
+FULLOBJECTS := $(FULLASMOBJECTS) $(FULLGENASMOBJECTS)
+
+
+#Link
+$(TMPTARGET) : $(FULLOBJECTS)
+	$(do_link)
+
+#strip
+$(TARGET) : $(TMPTARGET)
+	$(do_strip)
+
+#Asm objects
+$(FULLGENASMOBJECTS) : $(BUILDLOC)/%.$(OBJEXT) : $(GENSRCDIR)/$(GENASMSOURCE) $(FULLINCLUDES) $(FULLBUILTINCLUDES) $(FULLBUILTINCLUDES2) $(FULLBUILTINCLUDES3) $(FULLDRIVERINCLUDES) $(FULLARMINCLUDES) $(FULLBLDINCLUDES) $(FULLGENINCLUDES) $(FULLPLATINCLUDES)
+	$(do_asm)
+
+$(FULLASMOBJECTS) : $(BUILDLOC)/%.$(OBJEXT) : $(SPECSRCDIR)/$(ASMSOURCE) $(FULLINCLUDES) $(FULLBUILTINCLUDES) $(FULLBUILTINCLUDES2) $(FULLBLDINCLUDES) $(FULLGENINCLUDES) $(FULLPLATINCLUDES)
+	$(do_asm)
+
+# make the work directories
+$(TARGETDIR) :
+	$(call ifnotexistd,"$(TARGETDIR)")
+   
+$(BUILDLOC) :
+	$(call ifnotexistd,"$(BUILDLOC)")
+	
+
+
+MAKMAKE :
+	echo Nothing to do
+
+FREEZE :
+	echo Nothing to do
+
+LIB :
+	echo Nothing to do
+
+CLEANLIB :
+	echo Nothing to do
+
+RESOURCE :
+	echo Nothing to do
+
+FINAL :
+	echo Nothing to do
+
+BLD SAVESPACE : $(TARGETDIR) $(BUILDLOC) $(TARGET)
+
+RELEASABLES :
+	@echo "$(TARGET)"
+
+CLEAN :
+	-$(ERASE) $(call slash2generic,"$(TARGET)")
+	-$(ERASE) $(call slash2generic,"$(BUILDLOC)/*.*")
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/base/integrator_lmnand2_coreldr.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,21 @@
+# Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for the integrator_lmnand2_coreldr extension template
+#
+
+platform	win32
+makefile 	gnumake
+techstream	base
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/base/integrator_lmnand2_coreldr.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,291 @@
+# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Code execute address set in the linker file
+# 
+#
+
+# To guarantee there is a slash at the end of EPOCROOT in case there is not.
+# This is needed to ensure compatibility with SBSv1. 
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+
+#Set the directories
+BLDINFDIR := ../../../unref/orphan/cedgen/base/integrator/.
+GENSRCDIR := $(EXTENSION_ROOT)/../../../kernelhwsrv/kerneltest/e32utils/nandboot/coreldr
+XSRSRCDIR := $(EXTENSION_ROOT)/../../../kernelhwsrv/kerneltest/e32utils/nandboot/coreldr/unistore2
+SPECSRCDIR := $(EXTENSION_ROOT)/nandboot/coreldr
+VARIANTINC := $(EXTENSION_ROOT)/inc
+DRIVERDIR := $(EXTENSION_ROOT)/drivers
+EPOCINCDIR = $(EPOCROOT)epoc32/include/integrator/logic/lmnand2
+
+
+GENINC1 := $(EPOCROOT)epoc32/include
+GENDRIVERINC := $(EPOCROOT)epoc32/include/drivers
+GENINC2 := $(EPOCROOT)epoc32/include/drivers/unistore2
+GENINC3 := $(EPOCROOT)epoc32/include/integrator/logic/lmnand2
+GENINCPATH:= $(GENSRCDIR) $(SPECSRCDIR) $(XSRSRCDIR) $(VARIANTINC) $(GENINC1) $(GENDRIVERINC) $(GENINC2) $(GENINC3)
+
+# Build directory (EPOCBLD too long)
+#BUILDLOC = $(EPOCROOT)epoc32/build/integrator/logic/lmnand2/nandboot/coreldr/$(PLATFORM_PATH)/$(CFG_PATH)
+BUILDLOC = $(EPOCBLD)/$(PLATFORM_PATH)/$(CFG_PATH)
+
+# Set the target name
+TARGETDIR := $(EPOCROOT)epoc32/release/$(PLATFORM_PATH)
+TARGET = $(TARGETDIR)/_lmnand2_coreldr.bin
+TMPTARGET = $(BUILDLOC)/coreldr.tmp
+
+#Rules
+vpath %.s . $(SPECSRCDIR) $(SRCDIR)
+vpath %.inc . $(SPECSRCDIR) $(DRIVERDIR) $(EPOCINCDIR)
+vpath %.ginc . $(BUILDLOC)
+
+INCLUDES := nand.inc
+DRIVERINCLUDES := nand_fbr_offset.h
+
+VHEADERS := nanddevice.h 
+BUILTINCLUDES := nanddevice.inc
+
+ASMSOURCE := coreldrasm.s
+GENCPPSOURCE := coreldr.cpp inflate.cpp 
+XSRCPPSOURCE := coreldrxsr.cpp
+
+HEADERS := inflate.h coreldr.h
+SPECHEADERS := nand_plat.h
+
+
+#Execution address
+LINKBASE = 0x1F00000
+
+
+
+ARMASM_OUT := $(shell armasm 2>&1)
+ARMASM_OUT_4 := $(word 4,$(ARMASM_OUT))
+# Use GCC toolchain if no other is available
+TOOLVER := GCC
+RVCTSTR := $(strip $(findstring RVCT, $(ARMASM_OUT_4)))
+ifeq "$(RVCTSTR)" "RVCT"
+        TOOLVER := RVCT
+        OP := --
+        OB := o
+endif 
+
+#Arm RVCT tools
+ifeq "$(TOOLVER)" "RVCT"
+        ASM_MACROS += USE_CXSF
+        ASM := armasm
+        LINK := armlink
+        FROMELF := fromelf
+        CPP := armcc
+        
+        OBJEXT := o
+        INCEXT := inc
+        
+        ARMCCFLAGS := --arm -c -Otime --cpp 
+        
+        ARMCCFLAGS := $(ARMCCFLAGS) $(foreach dir,$(GENINCPATH),$(join -I, $(dir)))
+        
+        ARMCCFLAGS := $(ARMCCFLAGS) -DSYMBIAN_SUPPORT_UNISTORE2 -DEKA2
+
+        ARMCCFLAGS := $(ARMCCFLAGS) --preinclude $(EPOCROOT)epoc32/include/rvct/rvct.h
+
+        ifeq "$(CFG)" "UDEB"
+        ARMCCFLAGS := $(ARMCCFLAGS) -D_DEBUG
+        endif
+        
+        ASM_MACRO_CMD := $(foreach macro,$(ASM_MACROS),$(OP)predefine "$(macro) SETL {TRUE}")
+        AFLAGS := -g $(OP)keep $(ASM_MACRO_CMD) -I$(BUILDLOC)
+        LFLAGS := $(OP)entry BootEntry $(OP)ro-base $(LINKBASE) $(OP)FIRST BootEntry $(OP)map	
+        SYMOPT := $(OP)symdefs
+        ASMTYP := ARMASM
+        LINKFILE :=
+        
+        define do_compile
+                $(CPP) $(ARMCCFLAGS) $< -o $@
+        endef
+        define do_h2inc
+                perl $(EPOCROOT)epoc32/tools/h2inc.pl $< $@ ARMASM
+        endef
+        define do_asm
+                $(ASM) $(AFLAGS) -$(OB) $@ $(OP)LIST $(join $(basename $@),.lst) $<
+        endef
+        define do_link
+                $(LINK) $(LFLAGS) -$(OB) $@ $(FULLOBJECTS)
+        endef
+        define do_strip
+                $(FROMELF) $(OP)bin $(OP)output $@ $<
+        endef
+endif
+
+
+#GCC build options
+ifeq "$(TOOLVER)" "GCC"
+        ASM := as
+        AFLAGS := -mapcs-32 -R -n -I$(BUILDLOC)
+
+        LINKFLAGS = -n --section-alignment 4 --file-alignment 2 -no-whole-archive
+        GCCFLAGS=-march=armv4 -nostdinc -pipe -c -Wall -Wno-ctor-dtor-privacy -Wno-unknown-pragmas
+        GCCFLAGS := $(GCCFLAGS) $(foreach dir,$(GENINCPATH),$(join -I, $(dir)))
+        GCCDEFS = -D__SYMBIAN32__ -D__GCC32__ -D__EPOC32__ -D__MARM__ -D__MARM_ARM4__ -DEKA2 -DSYMBIAN_SUPPORT_UNISTORE2
+        ifeq "$(CFG)" "UDEB"
+        GCC = gcc -x c++ -g -O2 $(GCCFLAGS) -D_DEBUG -D_UNICODE $(GCCDEFS)
+        else
+        GCC = gcc -x c++ -s -fomit-frame-pointer -O2 $(GCCFLAGS) -DNDEBUG -D_UNICODE $(GCCDEFS)
+        endif
+
+        LINKFILE = $(SPECSRCDIR)/coreldr.lnk
+        OBJEXT := o
+        INCEXT := ginc
+
+        PROCESS_INCLUDES := 1
+        define do_compile
+                $(GCC) -o $@ $<
+        endef
+        define do_h2inc
+                perl $(EPOCROOT)epoc32/tools/h2inc.pl $< $@ AS
+                perl $(EPOCROOT)epoc32/tools/armasm2as.pl $@ $(join $(basename $@),.ginc)
+        endef 
+        define do_includes
+                perl $(EPOCROOT)epoc32/tools/armasm2as.pl $< $@ 
+        endef
+        define do_asm
+                perl $(EPOCROOT)epoc32/tools/armasm2as.pl $< $(join $(basename $@),.s)
+                $(AS) $(AFLAGS) -o $@ $(join $(basename $@),.s)
+        endef
+        define do_strip
+                strip -O binary -o "$(TARGET)" "$(TMPTARGET)"
+                $(ERASE) $(call slash2generic,"$(TMPTARGET)") 
+	#	$(ERASE) "$(TMPTARGET)"
+                echo Built $(TARGET)
+        endef
+        define do_link
+                ld -o "$(TMPTARGET)"  --start $(FULLOBJECTS) --script=$(LINKFILE)
+        endef
+endif
+
+
+#CPP source processing
+FULLCPPSOURCE := $(addprefix $(GENSRCDIR)/,$(GENCPPSOURCE))
+
+#Header processing
+FULLHEADERS := $(addprefix $(GENSRCDIR)/,$(HEADERS))
+FULLSPECHEADERS := $(addprefix $(VARIANTINC)/,$(SPECHEADERS))
+
+FULLVHEADERS := $(addprefix $(GENDRIVERINC)/,$(VHEADERS))
+FULLBUILTINCLUDES := $(addprefix $(BUILDLOC)/,$(BUILTINCLUDES))
+$(FULLBUILTINCLUDES) : $(FULLVHEADERS)
+	$(do_h2inc)
+
+
+
+#object names
+GENCPPOBJECTS := $(foreach f,$(GENCPPSOURCE),$(basename $(f)).$(OBJEXT))
+FULLGENCPPOBJECTS := $(addprefix $(BUILDLOC)/,$(GENCPPOBJECTS))
+
+XSRCPPOBJECTS := $(foreach f,$(XSRCPPSOURCE),$(basename $(f)).$(OBJEXT))
+FULLXSRCPPOBJECTS := $(addprefix $(BUILDLOC)/,$(XSRCPPOBJECTS))
+
+ASMOBJECTS := $(foreach f,$(ASMSOURCE),$(basename $(f)).$(OBJEXT))
+FULLASMOBJECTS := $(addprefix $(BUILDLOC)/,$(ASMOBJECTS))
+
+FULLOBJECTS := $(FULLASMOBJECTS) $(FULLGENCPPOBJECTS) $(FULLXSRCPPOBJECTS)
+
+ifdef PROCESS_INCLUDES
+
+GCCSRC := $(addprefix $(BUILDLOC)/,$(SRC))
+
+#Creation of headers
+FULLINCLUDES := $(foreach f,$(INCLUDES),$(basename $(f)).$(INCEXT))
+FULLINCLUDES := $(addprefix $(BUILDLOC)/,$(FULLINCLUDES))
+
+FULLDRIVERINCLUDES := $(foreach f,$(DRIVERINCLUDES),$(basename $(f)).$(INCEXT))
+FULLDRIVERINCLUDES := $(addprefix $(BUILDLOC)/,$(FULLDRIVERINCLUDES))
+
+$(FULLINCLUDES) : $(BUILDLOC)/%.$(INCEXT) : %.inc
+	$(do_includes)
+
+$(FULLDRIVERINCLUDES) : $(BUILDLOC)/%.$(INCEXT) : %.inc
+	$(do_includes)
+
+else
+FULLINCLUDES:= $(addprefix $(SPECSRCDIR)/,$(INCLUDES))
+FULLDRIVERINCLUDES:= $(addprefix $(DRIVERDIR)/,$(DRIVERINCLUDES))
+
+#Arm RVCT specifics here
+
+endif
+
+
+#Link 
+$(TMPTARGET) : $(FULLOBJECTS)
+	$(do_link)
+
+#strip
+$(TARGET) : $(TMPTARGET)
+	$(do_strip)
+
+#CPP objects
+$(FULLGENCPPOBJECTS) : $(BUILDLOC)/%.$(OBJEXT) : $(GENSRCDIR)/%.cpp $(FULLHEADERS) $(FULLSPECHEADERS) $(FULLDRIVERINCLUDES)
+	$(do_compile)
+
+$(FULLXSRCPPOBJECTS) : $(BUILDLOC)/%.$(OBJEXT) : $(XSRSRCDIR)/%.cpp $(FULLHEADERS) $(FULLSPECHEADERS)
+	$(do_compile)
+
+
+#Asm objects
+$(FULLASMOBJECTS) : $(BUILDLOC)/%.$(OBJEXT) : $(SPECSRCDIR)/$(ASMSOURCE) $(FULLINCLUDES) $(FULLBUILTINCLUDES)
+	$(do_asm)
+
+# make the work directories
+$(TARGETDIR) :
+	$(call ifnotexistd,"$(TARGETDIR)")
+
+$(BUILDLOC) :
+	$(call ifnotexistd,"$(BUILDLOC)")
+
+
+
+MAKMAKE :
+	echo Nothing to do
+
+FREEZE :
+	echo Nothing to do
+
+LIB :
+	echo Nothing to do
+
+CLEANLIB :
+	echo Nothing to do
+
+RESOURCE :
+	echo Nothing to do
+
+FINAL :
+	echo Nothing to do
+
+BLD SAVESPACE : $(TARGETDIR) $(BUILDLOC) $(TARGET)
+
+RELEASABLES :
+	@echo "$(TARGET)"
+
+CLEAN :
+	-$(ERASE) $(call slash2generic,"$(TARGET)") 
+	-$(ERASE) $(call slash2generic,"$(BUILDLOC)/*.*") 
+#	-$(ERASE) "$(TARGET)"
+#	-$(ERASE) "$(BUILDLOC)/*.*"
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/base/integrator_lmnand2_miniboot.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,21 @@
+# Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for the integrator_lmnand2_miniboot extension template
+#
+
+platform	win32
+makefile 	gnumake
+techstream	base
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/base/integrator_lmnand2_miniboot.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,215 @@
+# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+# To guarantee there is a slash at the end of EPOCROOT in case there is not.
+# This is needed to ensure compatibility with SBSv1. 
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+
+## Set the source directory
+BLDINFDIR := ../../../unref/orphan/cedgen/base/integrator/.
+SRCDIR = $(EXTENSION_ROOT)/nandboot/miniboot
+SPECSRCDIR = $(EXTENSION_ROOT)/../integratormotherboard/nandboot/miniboot
+TARGETDIR = $(EPOCROOT)epoc32/release/$(PLATFORM_PATH)
+EPOCINCDIR = $(EPOCROOT)epoc32/include/integrator/logic/lmnand2
+
+#Rules
+vpath %.s . $(SPECSRCDIR) $(SRCDIR)
+vpath %.inc . $(SRCDIR) $(SPECSRCDIR) $(EPOCINCDIR)
+vpath %.ginc . $(BUILDLOC)
+
+
+# Build directory (EPOCBLD too long)
+#BUILDLOC = $(EPOCROOT)epoc32/build/integrator/logic/lmnand2/nandboot/miniboot/$(PLATFORM_PATH)/$(CFG_PATH)
+BUILDLOC = $(EPOCBLD)/$(PLATFORM_PATH)/$(CFG_PATH)
+
+## Set the target name
+INCLUDES := nand.inc
+SPECINCLUDES := arm.inc
+EPOCINCLUDES := nand_fbr_offset.inc
+
+SRC := miniboot.s arm.s
+TARGET = $(TARGETDIR)/_lmnand2_miniboot.bin
+TMPTARGET = $(BUILDLOC)/miniboot.exe
+
+# Set the code and data base addresses 
+LINKBASE = 0x0000000
+
+ARMASM_OUT := $(shell armasm 2>&1)
+ARMASM_OUT_4 := $(word 4,$(ARMASM_OUT))
+# Use GCC toolchain if no other is available
+TOOLVER := GCC
+RVCTSTR := $(strip $(findstring RVCT, $(ARMASM_OUT_4)))
+ifeq "$(RVCTSTR)" "RVCT"
+        TOOLVER := RVCT
+        OP := --
+        OB := o
+endif 
+
+ifeq "$(TOOLVER)" "RVCT"
+        ASM_MACROS += USE_CXSF
+
+        ASM := armasm
+        LINK := armlink
+        FROMELF := fromelf
+        OBJEXT := o
+        INCEXT := inc
+
+        ASMINCPATHCMD := $(foreach dir,$(SRCDIR),$(join -I ,$(dir))) $(foreach dir,$(EPOCINCDIR),$(join -I ,$(dir)))
+        SPECASMINCPATHCMD := $(foreach dir,$(SPECSRCDIR),$(join -I ,$(dir)))
+        ASM_MACRO_CMD := $(foreach macro,$(ASM_MACROS),$(OP)predefine "$(macro) SETL {TRUE}")
+        AFLAGS := -g $(OP)keep $(ASM_MACRO_CMD) $(ASMINCPATHCMD) $(SPECASMINCPATHCMD)
+        
+        SYMOPT := $(OP)symdefs
+        ASMTYP := ARMASM
+        LINKFILE :=
+        define do_asm
+                $(ASM) $(AFLAGS) -$(OB) $@ $(OP)LIST $(join $(basename $@),.lst) $<
+        endef
+        
+        LFLAGS := $(OP)ro-base $(LINKBASE) $(OP)entry $(LINKBASE) $(OP)map
+
+        define do_link
+                $(LINK) $(LFLAGS) -$(OB) $@ $(filter %.$(OBJEXT),$^)
+        endef
+
+        define do_strip
+                $(FROMELF) $(OP)bin $(OP)output $@ $<
+        endef
+endif
+
+
+#GCC build options
+ifeq "$(TOOLVER)" "GCC"
+        ASM := as
+        AFLAGS := -mapcs-32 -R -n -I$(BUILDLOC)
+
+        LINKFLAGS = -n -x --section-alignment 4 --file-alignment 2 -no-whole-archive
+        OBJEXT := o
+        INCEXT := ginc
+        LINKFILE = $(SRCDIR)/miniboot.lnk
+        define do_includes
+                perl $(EPOCROOT)epoc32/tools/armasm2as.pl $< $@
+        endef
+        define do_asm
+                perl $(EPOCROOT)epoc32/tools/armasm2as.pl $< $(join $(basename $@),.s) 
+                $(AS) $(AFLAGS) -o $@ $(join $(basename $@),.s)
+        endef
+        define do_link
+                ld -o "$(TMPTARGET)"  --start $(FULLOBJECTS) --script=$(LINKFILE)
+        endef
+        define do_strip
+                strip -O binary -o "$(TARGET)" "$(TMPTARGET)"
+                $(ERASE) $(call slash2generic,"$(TMPTARGET)") 
+	#	$(ERASE) "$(TMPTARGET)"
+                echo Built $(TARGET)
+        endef
+        PROCESS_INCLUDES := 1
+endif
+
+
+OBJECTS := $(foreach f,$(SRC),$(basename $(f)).$(OBJEXT))
+
+FULLOBJECTS := $(addprefix $(BUILDLOC)/,$(OBJECTS))
+
+
+#Include processing
+
+
+ifdef PROCESS_INCLUDES
+
+GCCSRC := $(addprefix $(BUILDLOC)/,$(SRC))
+
+FULLINCLUDES := $(foreach f,$(INCLUDES),$(basename $(f)).$(INCEXT))
+FULLINCLUDES := $(addprefix $(BUILDLOC)/,$(FULLINCLUDES))
+
+SPECFULLINCLUDES := $(foreach f,$(SPECINCLUDES),$(basename $(f)).$(INCEXT))
+SPECFULLINCLUDES := $(addprefix $(BUILDLOC)/,$(SPECFULLINCLUDES))
+
+EPOCFULLINCLUDES := $(foreach f,$(EPOCINCLUDES),$(basename $(f)).$(INCEXT))
+EPOCFULLINCLUDES := $(addprefix $(BUILDLOC)/,$(EPOCFULLINCLUDES))
+
+#Creation of headers
+$(FULLINCLUDES) : $(BUILDLOC)/%.$(INCEXT) : %.inc
+	$(do_includes)
+$(SPECFULLINCLUDES) : $(BUILDLOC)/%.$(INCEXT) : %.inc
+	$(do_includes)
+$(EPOCFULLINCLUDES) : $(BUILDLOC)/%.$(INCEXT) : %.inc
+	$(do_includes)
+
+else
+
+#Armasm sytax specifc asm rule goes here
+FULLINCLUDES := $(addprefix $(SRCDIR)/,$(INCLUDES))
+SPECFULLINCLUDES:= $(addprefix $(SPECSRCDIR)/,$(SPECINCLUDES))
+EPOCFULLINCLUDES:= $(addprefix $(EPOCINCDIR)/,$(EPOCINCLUDES))
+
+endif
+ 
+
+#Strip
+$(TARGET) : $(TMPTARGET)
+	$(do_strip)
+
+#Link	
+$(TMPTARGET) : $(FULLOBJECTS)
+	$(do_link)
+
+#Objects
+$(FULLOBJECTS): $(BUILDLOC)/%.$(OBJEXT): %.s $(FULLINCLUDES) $(SPECFULLINCLUDES)  $(EPOCFULLINCLUDES)
+	$(do_asm)
+
+# make directories
+$(TARGETDIR):
+	$(call ifnotexistd,"$(TARGETDIR)")
+
+$(BUILDLOC):
+	$(call ifnotexistd,"$(BUILDLOC)")
+
+
+MAKMAKE :
+	echo Nothing to do
+
+FREEZE :
+	echo Nothing to do
+
+LIB :
+	echo Nothing to do
+
+CLEANLIB :
+	echo Nothing to do
+
+RESOURCE :
+	echo Nothing to do
+
+FINAL :
+	echo Nothing to do
+
+
+
+BLD SAVESPACE : $(TARGETDIR) $(BUILDLOC) $(TARGET)
+
+RELEASABLES :
+	@echo "$(TARGET)"
+
+CLEAN :
+	-$(ERASE) $(call slash2generic,"$(TARGET)") 
+	-$(ERASE) $(call slash2generic,"$(BUILDLOC)/*.*") 
+#	-$(ERASE) "$(TARGET)"
+#	-$(ERASE) "$(BUILDLOC)/*.*"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/base/lab_restricted_miniboot.flm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,84 @@
+# lab_restricted_miniboot.flm
+#
+# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+
+ifeq ($(lab_restricted_miniboot_flm),)
+lab_restricted_miniboot_flm := 1
+
+# Set the directories
+SRCDIR := $(EXTENSION_ROOT)/../../lab_restricted/unistore2/nandboot/miniboot_largeblk
+
+# Build directory
+BUILDLOC := $(EPOCBLD)/lab_restricted_miniboot_flm/$(PLATFORM_PATH)
+
+# Set the target name
+TARGETDIR := $(EPOCROOT)/epoc32/release/$(PLATFORM_PATH)
+BINTARGET := $(TARGETDIR)/lab_miniboot.bin
+TMPTARGET := $(BUILDLOC)/lab_miniboot.elf
+TMPTARGET2 := $(BUILDLOC)/lab_miniboot.bin
+
+# Set the Load Address for the miniboot
+# This is currently set to the beginning of SRAM
+LINKBASE := 0x40200000
+
+# Rules
+vpath %.s . $(SRCDIR)
+
+ASMSOURCE := miniboot_largeblk.s
+
+
+# Arm RVCT tools
+ASM_TRUE_MACROS := USE_CXSF
+
+OBJEXT := o
+
+ASM_TRUE_MACRO_CMD := $(foreach macro,$(ASM_TRUE_MACROS),--predefine "$(macro) SETL {TRUE}")
+ASM_FALSE_MACRO_CMD := $(foreach macro,$(ASM_FALSE_MACROS),--predefine "$(macro) SETL {FALSE}")
+
+AFLAGS := -g --keep $(ASM_TRUE_MACRO_CMD) $(ASM_FALSE_MACRO_CMD) -I$(BUILDLOC)
+LFLAGS := --ro-base $(LINKBASE) --entry BootEntry --FIRST BootEntry --map
+SYMOPT := --symdefs
+ASMTYP := ARMASM
+
+# Include base commonly used functions
+include $(EPOCROOT)/epoc32/tools/makefile_templates/base/base_rvct_common.mk
+
+
+ASMOBJECTS := $(foreach f,$(ASMSOURCE),$(basename $(f)).$(OBJEXT))
+FULLASMOBJECTS := $(addprefix $(BUILDLOC)/,$(ASMOBJECTS))
+
+FULLOBJECTS := $(FULLASMOBJECTS)
+
+# Link
+$(eval $(call base__link,$(TMPTARGET),$(FULLOBJECTS)))
+# Strip
+$(eval $(call base__strip,$(TMPTARGET2),$(TMPTARGET)))
+# Omapsig
+$(eval $(call base__omapsig,$(BINTARGET),$(TMPTARGET2)))
+
+# Asm objects
+$(eval $(call base__asm,$(FULLASMOBJECTS),$(BUILDLOC)/%.$(OBJEXT),$(SRCDIR)/$(ASMSOURCE) $(FULLINCLUDES) $(FULLBUILTINCLUDES) $(FULLBUILTINCLUDES2) $(FULLBLDINCLUDES) $(FULLGENINCLUDES) $(FULLPLATINCLUDES)))
+
+#
+TARGET :: $(BINTARGET) $(TARGETDIR) $(BUILDLOC) 
+
+# --what to show releasables
+$(eval $(call whatmacro,$(BINTARGET),USERFLM))
+# Create directory
+CREATABLEPATHS := $(TARGETDIR) $(BUILDLOC)
+$(call makepath,$(CREATABLEPATHS))
+# Clean up
+$(eval $(call GenerateStandardCleanTarget,$(CLEANTARGETS),$(BUILDLOC)))
+
+endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/base/lab_restricted_miniboot.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+# Meta information for the lab_restricted_miniboot extension template
+#
+# Copyright (c) 2005 Symbian Software Ltd.  All rights reserved.
+#
+
+platform	win32
+makefile 	gnumake
+techstream	base
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/base/lab_restricted_miniboot.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,141 @@
+# lab_restricted_miniboot.mk
+#
+# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# 
+#
+
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+#Set the directories
+SRCDIR := $(EXTENSION_ROOT)/../../lab_restricted/unistore2/nandboot/miniboot_largeblk
+
+# Build directory (EPOCBLD too long)
+BUILDLOC = $(EPOCROOT)epoc32/build/lab_restricted/unistore2/nandboot/miniboot/$(PLATFORM_PATH)
+
+# Set the target name
+TARGETDIR := $(EPOCROOT)epoc32/release/$(PLATFORM_PATH)
+TARGET = $(TARGETDIR)$/lab_miniboot.bin
+TMPTARGET = $(BUILDLOC)$/lab_miniboot.elf
+TMPTARGET2 = $(BUILDLOC)$/lab_miniboot.bin
+
+# Set the Load Address for the miniboot
+# This is currently set to the beginning of SRAM
+LINKBASE=0x40200000
+
+#Rules
+vpath %.s . $(SRCDIR)
+
+ASMSOURCE := miniboot_largeblk.s
+
+ARMASM_OUT := $(shell armasm 2>&1)
+ARMASM_OUT_4 := $(word 4,$(ARMASM_OUT))
+
+# Select the toolchain: ARM RVCT, then GCC
+#TOOLVER := RVCT
+OP := --
+OB := o
+
+#Arm RVCT tools
+ASM_TRUE_MACROS += USE_CXSF
+ASM := armasm
+LINK := armlink
+FROMELF := fromelf
+
+OBJEXT := o
+
+ASM_TRUE_MACRO_CMD := $(foreach macro,$(ASM_TRUE_MACROS),$(OP)predefine "$(macro) SETL {TRUE}")
+ASM_FALSE_MACRO_CMD := $(foreach macro,$(ASM_FALSE_MACROS),$(OP)predefine "$(macro) SETL {FALSE}")
+
+AFLAGS := -g $(OP)keep $(ASM_TRUE_MACRO_CMD) $(ASM_FALSE_MACRO_CMD) -I$(BUILDLOC)
+LFLAGS := $(OP)ro-base $(LINKBASE) $(OP)entry BootEntry $(OP)FIRST BootEntry $(OP)map
+SYMOPT := $(OP)symdefs
+ASMTYP := ARMASM
+
+define do_asm
+	$(ASM) $(AFLAGS) -$(OB) $@ $(OP)LIST $(join $(basename $@),.lst) $<
+endef
+
+define do_link
+	$(LINK) $(LFLAGS) -$(OB) $@ $(FULLOBJECTS)
+endef
+
+define do_strip
+	$(FROMELF) $(OP)bin $(OP)output $@ $<
+endef
+
+define do_omapsig
+	perl -S $(EPOCROOT)epoc32/tools/omapsig.pl $(LINKBASE) $< $@
+endef
+
+ASMOBJECTS := $(foreach f,$(ASMSOURCE),$(basename $(f)).$(OBJEXT))
+FULLASMOBJECTS := $(addprefix $(BUILDLOC)/,$(ASMOBJECTS))
+
+FULLOBJECTS := $(FULLASMOBJECTS)
+
+
+#Link
+$(TMPTARGET) : $(FULLOBJECTS)
+	$(do_link)
+
+#strip
+$(TMPTARGET2) : $(TMPTARGET)
+	$(do_strip)
+
+#omapsig
+$(TARGET) : $(TMPTARGET2)
+	$(do_omapsig)
+
+#Asm objects
+
+$(FULLASMOBJECTS) : $(BUILDLOC)/%.$(OBJEXT) : $(SRCDIR)/$(ASMSOURCE) $(FULLINCLUDES) $(FULLBUILTINCLUDES) $(FULLBUILTINCLUDES2) $(FULLBLDINCLUDES) $(FULLGENINCLUDES) $(FULLPLATINCLUDES)
+	$(do_asm)
+
+# make the work directories
+$(TARGETDIR) :
+	$(call ifnotexistd,"$(TARGETDIR)")
+   
+$(BUILDLOC) :
+	$(call ifnotexistd,"$(BUILDLOC)")
+	
+
+
+MAKMAKE :
+	echo Nothing to do
+
+FREEZE :
+	echo Nothing to do
+
+LIB :
+	echo Nothing to do
+
+CLEANLIB :
+	echo Nothing to do
+
+RESOURCE :
+	echo Nothing to do
+
+FINAL :
+	echo Nothing to do
+
+BLD SAVESPACE : $(TARGETDIR) $(BUILDLOC) $(TARGET)
+
+RELEASABLES :
+	@echo "$(TARGET)"
+
+CLEAN :
+	-$(ERASE) $(call slash2generic,"$(TARGET)")
+	-$(ERASE) $(call slash2generic,"$(BUILDLOC)/*.*")
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/base/lab_restricted_miniboot.xml	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?> 
+<build xmlns="http://symbian.com/xml/build" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symbian.com/xml/build build/2_0.xsd">
+
+<!--  Extension interfaces : replacements for Template Extension Makefiles  --> 
+
+ <interface name="base.lab_restricted_miniboot" extends="Symbian.KernelFLM" flm="lab_restricted_miniboot.flm">
+ </interface>
+
+</build>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/base/lubbock_coreldr.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,21 @@
+# Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for the lubbock_coreldr extension template
+#
+
+platform	win32
+makefile 	gnumake
+techstream	base
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/base/lubbock_coreldr.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,286 @@
+# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Code execute address also set in the linker file
+# 
+#
+
+# To guarantee there is a slash at the end of EPOCROOT in case there is not.
+# This is needed to ensure compatibility with SBSv1. 
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+
+#Set the directories
+GENSRCDIR := $(EXTENSION_ROOT)/../e32utils/nandboot/coreldr
+SPECSRCDIR := $(EXTENSION_ROOT)/nandboot/coreldr
+VARIANTINC := $(EXTENSION_ROOT)/inc
+DRIVERDIR := $(VARIANTINC)
+EPOCINCDIR = $(EPOCROOT)epoc32/include/lubbock/nand
+GENINC1 := $(EPOCROOT)epoc32/include
+GENINC2 := $(EPOCROOT)epoc32/include/lubbock/nand
+GENDRIVERINC := $(EPOCROOT)epoc32/include/drivers
+GENINCPATH:= $(GENSRCDIR) $(SPECSRCDIR) $(VARIANTINC) $(GENINC1) $(GENDRIVERINC)
+ASMINCPATH := $(GENINC2)
+
+# Build directory = EPOCBLD
+BUILDLOC = $(EPOCBLD)$(call sbsadd,/$(PLATFORM_PATH)/$(CFG_PATH))
+
+# Set the target name
+TARGETDIR := $(EPOCROOT)epoc32/release/$(PLATFORM_PATH)
+TARGET = $(TARGETDIR)/lubbock_coreldr.bin
+TMPTARGET = $(BUILDLOC)/coreldr.tmp
+
+#Rules
+vpath %.s . $(SPECSRCDIR) $(SRCDIR)
+vpath %.inc . $(SPECSRCDIR) $(VARIANTINC) $(EPOCINCDIR)
+vpath %.ginc . $(BUILDLOC)
+
+INCLUDES := nand.inc
+DRIVERINCLUDES := nand_fbr_offset.h
+
+VHEADERS := nanddevice.h 
+BUILTINCLUDES := nanddevice.inc
+
+ASMSOURCE := coreldrasm.s
+GENCPPSOURCE := coreldr.cpp inflate.cpp 
+HEADERS := inflate.h coreldr.h
+SPECHEADERS := nand_plat.h
+
+#Execution address (top 1M of Lubbock RAM)
+LINKBASE = 0xA3F00000
+
+
+
+ARMASM_OUT := $(shell armasm 2>&1)
+ARMASM_OUT_4 := $(word 4,$(ARMASM_OUT))
+# Use GCC toolchain if no other is available
+TOOLVER := GCC
+RVCTSTR := $(strip $(findstring RVCT, $(ARMASM_OUT_4)))
+ifeq "$(RVCTSTR)" "RVCT"
+        TOOLVER := RVCT
+        OP := --
+        OB := o
+endif 
+
+#Arm RVCT tools
+ifeq "$(TOOLVER)" "RVCT"
+        ASM_MACROS += USE_CXSF
+        ASM := armasm
+        LINK := armlink
+        FROMELF := fromelf
+        CPP := armcc
+
+        OBJEXT := o
+        INCEXT := inc
+
+        ARMCCFLAGS := --arm -c -Otime --cpp
+
+        ARMCCFLAGS := $(ARMCCFLAGS) $(foreach dir,$(GENINCPATH),$(join -I, $(dir)))
+
+        ARMCCFLAGS := $(ARMCCFLAGS) -DEKA2
+
+        ARMCCFLAGS := $(ARMCCFLAGS) --preinclude $(EPOCROOT)epoc32/include/rvct/rvct.h
+
+
+ifeq "$(CFG)" "UDEB"
+        ARMCCFLAGS := $(ARMCCFLAGS) -D_DEBUG
+endif
+        
+        ASM_MACRO_CMD := $(foreach macro,$(ASM_MACROS),$(OP)predefine "$(macro) SETL {TRUE}")
+        AFLAGS := -g $(OP)keep $(ASM_MACRO_CMD) -I$(BUILDLOC) -I$(ASMINCPATH)
+        LFLAGS := $(OP)entry BootEntry $(OP)ro-base $(LINKBASE) $(OP)FIRST BootEntry $(OP)map	
+        SYMOPT := $(OP)symdefs
+        ASMTYP := ARMASM
+        LINKFILE :=
+
+define do_compile
+                $(CPP) $(ARMCCFLAGS) $< -o $@
+endef
+define do_h2inc
+                perl $(EPOCROOT)epoc32/tools/h2inc.pl $< $@ ARMASM
+endef
+define do_asm
+                $(ASM) $(AFLAGS) -$(OB) $@ $(OP)LIST $(join $(basename $@),.lst) $<
+endef
+define do_link
+                $(LINK) $(LFLAGS) -$(OB) $@ $(FULLOBJECTS)
+endef
+define do_strip
+                $(FROMELF) $(OP)bin $(OP)output $@ $<
+endef
+endif
+
+
+#GCC build options
+ifeq "$(TOOLVER)" "GCC"
+        ASM := as
+        AFLAGS := -mapcs-32 -R -n -I$(BUILDLOC)
+
+        LINKFLAGS = -n --section-alignment 4 --file-alignment 2 -no-whole-archive
+        GCCFLAGS=-march=armv4 -nostdinc -pipe -c -Wall -Wno-ctor-dtor-privacy -Wno-unknown-pragmas
+        GCCFLAGS := $(GCCFLAGS) $(foreach dir,$(GENINCPATH),$(join -I, $(dir)))
+        GCCDEFS = -D__SYMBIAN32__ -D__GCC32__ -D__EPOC32__ -D__MARM__ -D__MARM_ARM4__ -DEKA2
+ifeq "$(CFG)" "UDEB"
+        GCC = gcc -x c++ -g -O2 $(GCCFLAGS) -D_DEBUG -D_UNICODE $(GCCDEFS)
+        else
+        GCC = gcc -x c++ -s -fomit-frame-pointer -O2 $(GCCFLAGS) -DNDEBUG -D_UNICODE $(GCCDEFS)
+endif
+
+        LINKFILE = $(SPECSRCDIR)/coreldr.lnk
+        OBJEXT := o
+        INCEXT := ginc
+
+        PROCESS_INCLUDES := 1
+define do_compile
+                $(GCC) -o $@ $<
+endef
+define do_h2inc
+                perl $(EPOCROOT)epoc32/tools/h2inc.pl $< $@ AS
+                perl $(EPOCROOT)epoc32/tools/armasm2as.pl $@ $(join $(basename $@),.ginc)
+endef 
+define do_includes
+                perl $(EPOCROOT)epoc32/tools/armasm2as.pl $< $@
+endef
+define do_asm
+                perl $(EPOCROOT)epoc32/tools/armasm2as.pl $< $(join $(basename $@),.s)
+                $(AS) $(AFLAGS) -o $@ $(join $(basename $@),.s)
+endef
+define do_strip
+                strip -O binary -o "$(TARGET)" "$(TMPTARGET)"
+                $(ERASE) $(call slash2generic,"$(TMPTARGET)") 
+                echo Built $(TARGET)
+endef
+define do_link
+                ld -o "$(TMPTARGET)"  --start $(FULLOBJECTS) --script=$(LINKFILE)
+endef
+endif
+
+
+#CPP source processing
+FULLCPPSOURCE := $(addprefix $(GENSRCDIR)/,$(GENCPPSOURCE))
+
+#Header processing
+FULLHEADERS := $(addprefix $(GENSRCDIR)/,$(HEADERS))
+FULLSPECHEADERS := $(addprefix $(VARIANTINC)/,$(SPECHEADERS))
+
+FULLVHEADERS := $(addprefix $(GENDRIVERINC)/,$(VHEADERS)) 
+FULLBUILTINCLUDES := $(addprefix $(BUILDLOC)/,$(BUILTINCLUDES))
+$(FULLBUILTINCLUDES) : $(FULLVHEADERS)
+	$(do_h2inc)
+
+
+#object names
+GENCPPOBJECTS := $(foreach f,$(GENCPPSOURCE),$(basename $(f)).$(OBJEXT))
+FULLGENCPPOBJECTS := $(addprefix $(BUILDLOC)/,$(GENCPPOBJECTS)) 
+
+ASMOBJECTS := $(foreach f,$(ASMSOURCE),$(basename $(f)).$(OBJEXT))
+FULLASMOBJECTS := $(addprefix $(BUILDLOC)/,$(ASMOBJECTS))
+
+FULLOBJECTS := $(FULLASMOBJECTS) $(FULLGENCPPOBJECTS)
+
+ifdef PROCESS_INCLUDES
+
+GCCSRC := $(addprefix $(BUILDLOC)/,$(SRC))
+
+#Creation of headers
+FULLINCLUDES := $(foreach f,$(INCLUDES),$(basename $(f)).$(INCEXT))
+FULLINCLUDES := $(addprefix $(BUILDLOC)/,$(FULLINCLUDES))
+
+FULLDRIVERINCLUDES := $(foreach f,$(DRIVERINCLUDES),$(basename $(f)).$(INCEXT))
+FULLDRIVERINCLUDES := $(addprefix $(BUILDLOC)/,$(FULLDRIVERINCLUDES))
+
+$(FULLINCLUDES) : $(BUILDLOC)/%.$(INCEXT) : %.inc $(call pipe,$(BUILDLOC))
+	$(do_includes)
+
+$(FULLDRIVERINCLUDES) : $(BUILDLOC)/%.$(INCEXT) : %.inc $(call pipe,$(BUILDLOC))
+	$(do_includes)
+
+else
+FULLINCLUDES:= $(addprefix $(SPECSRCDIR)/,$(INCLUDES))
+FULLDRIVERINCLUDES:= $(addprefix $(DRIVERDIR)/,$(DRIVERINCLUDES))
+
+#Arm RVCT specifics here
+
+endif
+
+
+#Link 
+$(TMPTARGET) : $(FULLOBJECTS)
+	$(do_link)
+
+#strip
+$(TARGET) : $(TMPTARGET)
+	$(do_strip)
+
+#CPP objects
+$(FULLGENCPPOBJECTS) : $(BUILDLOC)/%.$(OBJEXT) : $(GENSRCDIR)/%.cpp $(FULLHEADERS) $(FULLSPECHEADERS)
+	$(do_compile)
+
+
+#Asm objects
+$(FULLASMOBJECTS) : $(BUILDLOC)/%.$(OBJEXT) : $(SPECSRCDIR)/$(ASMSOURCE) $(FULLINCLUDES) $(FULLBUILTINCLUDES) $(FULLDRIVERINCLUDES)
+	$(do_asm)
+
+# make the work directories
+$(TARGETDIR) :
+	@$(call ifnotexistd,"$(TARGETDIR)")
+
+$(BUILDLOC) :
+	@$(call ifnotexistd,"$(BUILDLOC)")
+
+
+
+MAKMAKE :
+	echo Nothing to do
+
+FREEZE :
+	echo Nothing to do
+
+LIB :
+	echo Nothing to do
+
+CLEANLIB :
+	echo Nothing to do
+
+RESOURCE :
+	echo Nothing to do
+
+FINAL :
+	echo Nothing to do
+
+ifneq "$(PLATFORM)" "GCCXML"
+BLD SAVESPACE : $(TARGETDIR) $(BUILDLOC) $(TARGET)
+
+RELEASABLES :
+	@echo "$(TARGET)"
+
+CLEAN :
+	-$(ERASE) $(call slash2generic,"$(TARGET)") 
+	-$(ERASE) $(call slash2generic,"$(BUILDLOC)/*.*") 
+#	-$(ERASE) "$(TARGET)"
+#	-$(ERASE) "$(BUILDLOC)/*.*"
+
+else
+
+BLD SAVESPACE :
+	echo Nothing to do
+
+RELEASABLES :
+
+CLEAN :
+	echo Nothing to do
+endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/base/lubbock_miniboot.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,21 @@
+# Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for the lubbock_miniboot extension template
+#
+
+platform	win32
+makefile 	gnumake
+techstream	base
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/base/lubbock_miniboot.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,212 @@
+# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+# To guarantee there is a slash at the end of EPOCROOT in case there is not.
+# This is needed to ensure compatibility with SBSv1. 
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+
+# Set the source directory
+SRCDIR = $(EXTENSION_ROOT)/nandboot/miniboot
+TARGETDIR = $(EPOCROOT)epoc32/release/$(PLATFORM_PATH)
+EPOCINCDIR = $(EPOCROOT)epoc32/include/lubbock/nand
+
+#Rules
+vpath %.s $(SRCDIR)
+vpath %.inc $(SRCDIR) $(EPOCINCDIR)
+vpath %.ginc $(BUILDLOC)
+
+# Build directory
+BUILDLOC = $(EPOCBLD)$(call sbsadd,/base/lubbock)
+
+## Set the target name
+INCLUDES := nand.inc lubbock.inc
+EPOCINCLUDES := nand_fbr_offset.inc
+SRC := miniboot.s lubbock.s
+TARGET=$(TARGETDIR)/lubbock_miniboot.bin
+TMPTARGET = $(BUILDLOC)/miniboot.exe
+
+# Set the code and data base addresses 
+# Since miniboot is PIC this is just to placate the linker
+LINKBASE = 0x0000000
+
+ARMASM_OUT := $(shell armasm 2>&1)
+ARMASM_OUT_4 := $(word 4,$(ARMASM_OUT))
+# Use GCC toolchain if no other is available
+# NB! Need to keep updating/extending allowable range of RVCT versions!!
+TOOLVER := GCC
+RVCTSTR := $(strip $(findstring RVCT, $(ARMASM_OUT_4)))
+ifeq "$(RVCTSTR)" "RVCT"
+        TOOLVER := RVCT
+        OP := --
+        OB := o
+endif 
+
+ifeq "$(TOOLVER)" "RVCT"
+        ASM_MACROS += USE_CXSF
+
+        ASM := armasm
+        LINK := armlink
+        FROMELF := fromelf
+        OBJEXT := o
+        INCEXT := inc
+
+        ASMINCPATHCMD := $(foreach dir,$(SRCDIR),$(join -I ,$(dir))) $(foreach dir,$(EPOCINCDIR),$(join -I ,$(dir)))
+        ASMINCFBRPATH := $(foreach fir,$(EPOCINCDIR),$(join -I ,$(fir)))
+        ASM_MACRO_CMD := $(foreach macro,$(ASM_MACROS),$(OP)predefine "$(macro) SETL {TRUE}")
+        AFLAGS := -g $(OP)keep $(ASM_MACRO_CMD) $(ASMINCPATHCMD) $(ASMINCFBRPATH)
+        
+        SYMOPT := $(OP)symdefs
+        ASMTYP := ARMASM
+        LINKFILE :=
+define do_asm
+        $(ASM) $(AFLAGS) -$(OB) $@ $(OP)LIST $(join $(basename $@),.lst) $<
+endef
+        
+        LFLAGS := $(OP)ro-base $(LINKBASE) $(OP)entry $(LINKBASE) $(OP)map
+
+define do_link
+        $(LINK) $(LFLAGS) -$(OB) $@ $(filter %.$(OBJEXT),$^)
+endef
+
+define do_strip
+        $(FROMELF) $(OP)bin $(OP)output $@ $<
+endef
+endif
+
+
+#GCC build options
+ifeq "$(TOOLVER)" "GCC"
+        ASM := as
+        AFLAGS := -mapcs-32 -R -n -I$(BUILDLOC)
+
+        LINKFLAGS = -n -x --section-alignment 4 --file-alignment 2 -no-whole-archive
+        OBJEXT := o
+        INCEXT := ginc
+        LINKFILE = $(SRCDIR)/miniboot.lnk
+define do_headers
+        perl $(EPOCROOT)epoc32/tools/armasm2as.pl $< $@
+endef
+define do_asm
+        perl $(EPOCROOT)epoc32/tools/armasm2as.pl $< $(join $(basename $@),.s) 
+        $(AS) $(AFLAGS) -o $@ $(join $(basename $@),.s)
+endef
+define do_link
+        ld -o "$(TMPTARGET)"  --start $(FULLOBJECTS) --script=$(LINKFILE)
+endef
+define do_strip
+        strip -O binary -o "$(TARGET)" "$(TMPTARGET)"
+        $(ERASE) $(call slash2generic,"$(TMPTARGET)") 
+        echo Built $(TARGET)
+endef
+        PROCESS_INCLUDES := 1
+endif
+
+
+OBJECTS := $(foreach f,$(SRC),$(basename $(f)).$(OBJEXT))
+
+FULLOBJECTS := $(addprefix $(BUILDLOC)/,$(OBJECTS))
+
+
+#Include processing
+FULLINCLUDES := $(addprefix $(SRCDIR)/,$(INCLUDES))
+#Object processing
+FULLSRC := $(addprefix $(SRCDIR)/,$(SRC))
+
+ifdef PROCESS_INCLUDES
+GCCSRC := $(addprefix $(EPOCBLD)/,$(SRC))
+FULLINCLUDES := $(foreach f,$(FULLINCLUDES),$(basename $(f)).$(INCEXT))
+
+EPOCFULLINCLUDES := $(foreach f,$(EPOCINCLUDES),$(basename $(f)).$(INCEXT))
+EPOCFULLINCLUDES := $(addprefix $(BUILDLOC)/,$(EPOCFULLINCLUDES))
+
+
+#Creation of headers
+$(FULLINCLUDES) : $(SRCDIR)/%.$(INCEXT) : %.inc
+	$(do_headers)
+$(EPOCFULLINCLUDES) : $(BUILDLOC)/%.$(INCEXT) : %.inc
+	$(do_headers)
+
+else
+
+#Armasm sytax specifc asm rule goes here
+
+EPOCFULLINCLUDES:= $(addprefix $(EPOCINCDIR)/,$(EPOCINCLUDES))
+endif
+
+
+#Strip
+$(call abldquote,$(TARGET)) : $(call abldquote,$(TMPTARGET)) $(call pipe,$(TARGETDIR) $(BUILDLOC)) 
+	$(do_strip)
+
+#Link	
+$(call abldquote,$(TMPTARGET)) : $(FULLOBJECTS)
+	$(do_link)
+
+#Objects
+$(FULLOBJECTS) : $(BUILDLOC)/%.$(OBJEXT) : %.s $(FULLINCLUDES) $(EPOCFULLINCLUDES) $(call pipe,$(BUILDLOC))
+	$(do_asm)
+
+# make directories
+$(call abldquote,$(TARGETDIR)) :
+	@$(call ifnotexistd,"$(TARGETDIR)")
+	
+$(call abldquote,$(BUILDLOC)) :
+	@$(call ifnotexistd,"$(BUILDLOC)")
+	
+$(EPOCBLD) :
+	@$(call ifnotexistd,"$(EPOCBLD)")
+
+
+MAKMAKE :
+	echo Nothing to do
+	echo $(BUILDLOC)
+
+FREEZE :
+	echo Nothing to do
+	echo $(BUILDLOC)
+
+LIB :
+	echo Nothing to do
+	echo $(BUILDLOC)
+
+CLEANLIB :
+	echo Nothing to do
+	echo $(BUILDLOC)
+
+RESOURCE :
+	echo Nothing to do
+	echo $(BUILDLOC)
+
+FINAL :
+	echo Nothing to do
+	echo $(BUILDLOC)
+
+
+
+BLD SAVESPACE : $(call abldquote,$(TARGETDIR)) $(EPOCBLD) $(call abldquote,$(TARGET)) $(call sbsadd,$(BUILDLOC))
+
+RELEASABLES :
+	@echo "$(TARGET)"
+
+CLEAN :
+	-$(ERASE) $(call slash2generic,"$(TARGET)") 
+	-$(ERASE) $(call slash2generic,"$(EPOCBLD)/*.*") 
+#	-$(ERASE) "$(TARGET)"
+#	-$(ERASE) "$(EPOCBLD)/*.*"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/base/nand_fbr_offset.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,21 @@
+# Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for the nand_fbr_offset extension template
+#
+
+platform	win32
+makefile 	gnumake
+techstream	base
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/base/nand_fbr_offset.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,85 @@
+# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+# To guarantee there is a slash at the end of EPOCROOT in case there is not.
+# This is needed to ensure compatibility with SBSv1. 
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+
+# Build directory (EPOCBLD too long)
+BUILDLOC = $(EXTENSION_ROOT)/drivers
+
+## Set the target name
+SRC := $(SRCDIR)/nand_fbr_offset.h
+TARGET = $(TARGETDIR)/nand_fbr_offset.inc
+
+
+
+#Include processing
+FULLINCLUDES := $(addprefix $(SRCDIR)/,$(INCLUDES))
+#Object processing
+FULLSRC := $(addprefix $(SRCDIR)/,$(SRC))
+
+ifdef PROCESS_INCLUDES
+GCCSRC := $(addprefix $(BUILDLOC)/,$(SRC))
+FULLINCLUDES := $(foreach f,$(FULLINCLUDES),$(basename $(f)).$(INCEXT))
+#Creation of headers
+$(FULLINCLUDES) : $(SRCDIR)/%.$(INCEXT) : %.inc
+	$(do_headers)
+else
+#Armasm sytax specifc asm rule goes here
+endif
+
+
+#Rules
+#vpath %.inc . $(SRCDIR) 
+
+
+MAKMAKE :
+	perl $(EPOCROOT)epoc32/tools/h2inc.pl $(SRC) $(TARGET) ARMASM
+#	echo Nothing to do
+
+FREEZE :
+	echo Nothing to do
+
+LIB :
+	echo Nothing to do
+
+CLEANLIB :
+	echo Nothing to do
+
+RESOURCE :
+	echo Nothing to do
+
+FINAL :
+	echo Nothing to do
+
+
+
+BLD SAVESPACE : 
+	echo Nothing to do
+
+RELEASABLES :
+	@echo "$(TARGET)"
+
+CLEAN :
+	-$(ERASE) $(call slash2generic,"$(TARGET)") 
+	-$(ERASE) $(call slash2generic,"$(BUILDLOC)/$(TARGET)") 
+#	-$(ERASE) "$(TARGET)")
+#	-$(ERASE) "$(BUILDLOC)/$(TARGET)")
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/base/ne1_tb_genbootinc.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,22 @@
+# Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for the h4_genbootinc extension template
+#
+
+
+platform	win32
+makefile 	gnumake
+techstream	base
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/base/ne1_tb_genbootinc.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,54 @@
+# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# h4_genbootinc.mk
+# Generate assembler inc files from header files
+#
+
+# To guarantee there is a slash at the end of EPOCROOT in case there is not.
+# This is needed to ensure compatibility with SBSv1. 
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+
+XINCDIR := $(INC_PATH)/assp/naviengine
+XGENDIR := $(INC_PATH)/assp/naviengine/$(MEMMODEL)
+
+MAKMAKE : all
+
+FREEZE :
+
+LIB : all
+
+CLEANLIB :
+
+RESOURCE :
+
+FINAL :
+
+BLD SAVESPACE : all
+
+RELEASABLES :
+	@echo $(XGENDIR)/naviengine.inc
+
+CLEAN :
+	-$(ERASE) $(call slash2generic,$(XGENDIR)/naviengine.inc) 
+	@echo $(XGENDIR)/naviengine.inc
+
+all: $(XGENDIR)/naviengine.inc
+
+$(XGENDIR)/naviengine.inc : $(XINCDIR)/naviengine.h
+	perl $(EPOCROOT)epoc32/tools/h2inc.pl $(XINCDIR)/naviengine.h $(XGENDIR)/naviengine.inc ARMASM
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/base/ne1_tb_restricted_coreldr.flm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,281 @@
+# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# ne1_tb_restricted_coreldr.flm
+# #  NB! LINKBASE :  Code execute address also set coreldr.lnk file 
+# #  MUST REFLECT CORELOADER ADDRESS RELOCATION IN BOTH FILES!!
+# 
+#
+
+ifeq ($($(NAME)_ne1_tb_resricted_coreldr_flm),)
+$(NAME)_ne1_tb_resricted_coreldr_flm := 1
+
+## THESE MACROS NEED TO BE SET EXPLICITLY TO TRUE OR BLANK
+
+## Use this macro if it is required to use the MMU
+## if the MMU is not require either comment it out or set it FALSE
+USE_MMU := TRUE
+  
+# This macro enables benchmarking code. Comment out or set FALSE if not required
+WRITE_TIMINGS :=
+# Timer is not implemented for Naviengine. Do not enable!
+
+## This macro causes the page tables to be output. Comment out or set FALSE if not required
+## If this option is selected then the MMU code will be enabled
+DUMP_PAGE_TABLES :=
+# Page tables cannot be dumped on Naviengine due to the NANDController used. Do not enable!
+
+# This macro enables the MMU enabled version of the coreldr to call RestartAuxiliaryCores
+# before it runs the core image.  This function should be defined in the variant, to 
+# restart the auxiliary cores, which it should have paused on startup.
+RUNS_WITH_SMP := TRUE
+
+## Make sure all 3 macros are either TRUE or FALSE
+# Enforce USE_MMU if page table is to be dumped
+ifeq "$(DUMP_PAGE_TABLES)" "TRUE"
+  USE_MMU := TRUE
+else
+  DUMP_PAGE_TABLES := FALSE
+endif
+
+ifneq "$(USE_MMU)" "TRUE"
+  USE_MMU := FALSE
+endif
+
+ifneq "$(WRITE_TIMINGS)" "TRUE"
+  WRITE_TIMINGS := FALSE
+endif
+
+# Set the directories; based on calling bld.inf
+GENSRCDIR := $(EXTENSION_ROOT)/../../../kernelhwsrv/kerneltest/e32utils/nandboot/coreldr
+# Generic drivers
+BLSRCDIR := $(EXTENSION_ROOT)/../../../kernelhwsrv/kernel/eka/drivers/unistore2/srca/XSR/UTIL/ONBL2
+XSRSRCDIR1 := $(EXTENSION_ROOT)/../../../kernelhwsrv/kernel/eka/drivers/unistore2/srca/XSR/OAM/OSLess
+XSRSRCDIR2 := $(EXTENSION_ROOT)/../../../kernelhwsrv/kernel/eka/drivers/unistore2/srca/XSR/LLD/DNandO
+# Coreloader ASM...
+SPECSRCDIR := $(EXTENSION_ROOT)/../navienginebsp/ne1_tb/nandboot
+# PAM - Platform specific Version
+SPECXSRSRCDIR := $(EXTENSION_ROOT)/pam
+SPECXSRSRCDIR1 := $(EXTENSION_ROOT)/lld
+
+# Platform Variant includes
+VARIANTINC := $(INC_PATH)/ne1_tb
+VARIANTINC2 := $(EXTENSION_ROOT)/../navienginebsp/ne1_tb/bootstrap
+VARIANTINC3 := $(EXTENSION_ROOT)/../navienginebsp/ne1_tb/nand  $(EXTENSION_ROOT)/../navienginebsp/naviengine_assp  $(INC_PATH)/assp/naviengine/$(MEMMODEL)
+
+# Generic driver file includes
+GENINC1 := $(INC_PATH) $(EPOCROOT)/epoc32/include
+GENDRIVERINC := $(INC_PATH)/drivers
+GENINC2 := $(INC_PATH)/drivers/unistore2 $(INC_PATH)/memmodel/epoc $(INC_PATH)/kernel  $(INC_PATH)/kernel/arm $(INC_PATH)/nkern $(INC_PATH)/nkern/arm
+GENXSRINC := $(EXTENSION_ROOT)/../../../kernelhwsrv/kernel/eka/drivers/unistore2/srca/XSR/INC
+GENINCPATH:= $(GENSRCDIR) $(SPECSRCDIR) $(XSRSRCDIR1) $(XSRSRCDIR2) $(SPECXSRSRCDIR) $(SPECXSRSRCDIR1) $(VARIANTINC) $(VARIANTINC2) $(VARIANTINC3) $(GENINC1) $(GENDRIVERINC) $(GENINC2) $(GENINC3) $(GENINC4) $(GENXSRINC)
+
+
+# Set the source/include/target directories
+
+# epoc32 folder for exported header files
+EPOCINCDIR := $(INC_PATH)/ne1_tb
+
+# Build directory
+BUILDLOC := $(EPOCBLD)/ne1_tb_restricted_coreldr_flm/$(PLATFORM_PATH)
+
+# Set the target name
+TARGETDIR := $(EPOCROOT)/epoc32/release/$(PLATFORM_PATH)
+BINTARGET := $(TARGETDIR)/$(NAME).bin
+TMPTARGET := $(BUILDLOC)/$(NAME).elf
+
+# Rules
+vpath %.s . $(SPECSRCDIR) $(SRCDIR)
+vpath %.inc . $(SPECSRCDIR) $(EPOCINCDIR)
+vpath %.ginc . $(BUILDLOC)
+
+
+# from base/e32/include/drivers/...
+VHEADERS := nanddevice.h
+# the following .inc files get built as part of the process
+BUILTINCLUDES := nanddevice.inc config.inc
+BUILTINCLUDES2 := nand_plat.inc
+
+#
+ASMSOURCE := coreldrasm.s
+GENCPPSOURCE := inflate.cpp
+BLCPPSOURCE := ONbl2.cpp
+XSRCPPSOURCE1 := OSLessOAM.cpp
+SPECXSRCPPSOURCE := pam.cpp
+SPECXSRCPPSOURCE1 := pnl.cpp  
+
+XSRLIB := $(EPOCROOT)/epoc32/release/armv5/urel/nbl2.lib
+
+# Only link in the MMU stuff if required
+GENASMSOURCE :=
+ifeq "$(USE_MMU)" "TRUE"
+  GENASMSOURCE := coreldrmmu.s
+endif
+
+HEADERS := 
+SPECHEADERS := nand_plat.h
+
+## Address at which coreloader binary is loaded and then started from
+#
+# On NaviEngine this number is base of ram + 208MB (permitting 208MB core images)
+# this number is pretty arbitrary
+# if necessary as long as the corresponding change is also made to
+# KCoreLoaderAddress in variant_bootstrap.inc
+#
+LINKBASE := 0x8D000000
+
+# Build up logical TRUE defines
+ASM_TRUE_MACROS :=
+
+ifeq "$(USE_MMU)" "TRUE"
+  ASM_TRUE_MACROS := $(ASM_TRUE_MACROS) USE_MMU
+endif 
+
+ifeq "$(WRITE_TIMINGS)" "TRUE"
+  ASM_TRUE_MACROS := $(ASM_TRUE_MACROS) WRITE_TIMINGS
+endif 
+
+ifeq "$(DUMP_PAGE_TABLES)" "TRUE"
+  ASM_TRUE_MACROS := $(ASM_TRUE_MACROS) DUMP_PAGE_TABLES
+endif 
+
+ifeq "$(RUNS_WITH_SMP)" "TRUE"
+  ASM_TRUE_MACROS := $(ASM_TRUE_MACROS) RUNS_WITH_SMP
+endif
+
+# Build up logical FALSE defines
+ASM_FALSE_MACROS :=
+
+ifeq "$(USE_MMU)" "FALSE"
+  ASM_FALSE_MACROS := $(ASM_FALSE_MACROS) USE_MMU
+endif 
+
+ifeq "$(WRITE_TIMINGS)" "FALSE"
+  ASM_FALSE_MACROS := $(ASM_FALSE_MACROS) WRITE_TIMINGS
+endif
+
+ifeq "$(DUMP_PAGE_TABLES)" "FALSE"
+  ASM_FALSE_MACROS := $(ASM_FALSE_MACROS) DUMP_PAGE_TABLES
+endif 
+
+
+# Arm RVCT tools
+ASM_TRUE_MACROS := $(ASM_TRUE_MACROS) USE_CXSF
+
+OBJEXT := o
+INCEXT := inc
+
+ARMCCFLAGS := --arm -c -Otime --cpp --enum_is_int
+ARMCCFLAGS := $(ARMCCFLAGS) $(foreach dir,$(GENINCPATH),$(join -I, $(dir)))
+ARMCCFLAGS := $(ARMCCFLAGS) -DEKA2
+ARMCCFLAGS := $(ARMCCFLAGS) -DXSR_NBL2 -DREAL_TARGET -DDEFERED_CHK -DSYMBIAN_SUPPORT_UNISTORE2
+
+ARMCCFLAGS := $(ARMCCFLAGS) --preinclude $(EPOCROOT)/epoc32/include/rvct/rvct.h
+
+ifeq "$(CFG)" "UDEB"
+ARMCCFLAGS := $(ARMCCFLAGS) -D_DEBUG
+endif
+
+ASM_TRUE_MACRO_CMD := $(foreach macro,$(ASM_TRUE_MACROS),--predefine "$(macro) SETL {TRUE}")
+ASM_FALSE_MACRO_CMD := $(foreach macro,$(ASM_FALSE_MACROS),--predefine "$(macro) SETL {FALSE}")
+ASM_LINKBASE_MACRO := --predefine "_LINKBASE_ SETA $(LINKBASE)"
+
+AFLAGS := -g --keep $(ASM_TRUE_MACRO_CMD) $(ASM_FALSE_MACRO_CMD) $(ASM_LINKBASE_MACRO) -I$(BUILDLOC) $(foreach dir,$(GENINCPATH),$(join -I, $(dir)))
+LFLAGS := --entry BootEntry --ro-base $(LINKBASE) --FIRST BootEntry --map
+SYMOPT := --symdefs
+ASMTYP := ARMASM
+LINKFILE :=
+
+# include base commonly used functions
+include $(EPOCROOT)/epoc32/tools/makefile_templates/base/base_rvct_common.mk
+
+
+# Header processing
+FULLHEADERS := $(addprefix $(GENSRCDIR)/,$(HEADERS))
+FULLSPECHEADERS := $(addprefix $(VARIANTINC)/,$(SPECHEADERS))
+
+FULLVHEADERS := $(addprefix $(GENDRIVERINC)/,$(VHEADERS))
+FULLBUILTINCLUDES := $(addprefix $(BUILDLOC)/,$(BUILTINCLUDES))
+# do h2inc
+$(eval $(call base__h2inc,$(FULLBUILTINCLUDES),$(FULLVHEADERS)))
+
+FULLVHEADERS2 := $(addprefix $(VARIANTINC)/,$(SPECHEADERS))
+FULLBUILTINCLUDES2 := $(addprefix $(BUILDLOC)/,$(BUILTINCLUDES2))
+# do h2inc
+$(eval $(call base__h2inc,$(FULLBUILTINCLUDES2),$(FULLVHEADERS2)))
+
+# object names
+GENCPPOBJECTS := $(foreach f,$(GENCPPSOURCE),$(basename $(f)).$(OBJEXT))
+FULLGENCPPOBJECTS := $(addprefix $(BUILDLOC)/,$(GENCPPOBJECTS))
+
+BLCPPOBJECTS := $(foreach f,$(BLCPPSOURCE),$(basename $(f)).$(OBJEXT))
+FULLBLCPPOBJECTS := $(addprefix $(BUILDLOC)/,$(BLCPPOBJECTS))
+
+XSRCPPOBJECTS1 := $(foreach f,$(XSRCPPSOURCE1),$(basename $(f)).$(OBJEXT))
+FULLXSRCPPOBJECTS1 := $(addprefix $(BUILDLOC)/,$(XSRCPPOBJECTS1))
+
+SPECXSRCPPOBJECTS := $(foreach f,$(SPECXSRCPPSOURCE),$(basename $(f)).$(OBJEXT))
+FULLSPECXSRCPPOBJECTS := $(addprefix $(BUILDLOC)/,$(SPECXSRCPPOBJECTS))
+
+SPECXSRCPPOBJECTS1 := $(foreach f,$(SPECXSRCPPSOURCE1),$(basename $(f)).$(OBJEXT))
+FULLSPECXSRCPPOBJECTS1 := $(addprefix $(BUILDLOC)/,$(SPECXSRCPPOBJECTS1))
+
+ASMOBJECTS := $(foreach f,$(ASMSOURCE),$(basename $(f)).$(OBJEXT))
+FULLASMOBJECTS := $(addprefix $(BUILDLOC)/,$(ASMOBJECTS))
+
+GENASMOBJECTS := $(foreach f,$(GENASMSOURCE),$(basename $(f)).$(OBJEXT))
+FULLGENASMOBJECTS := $(addprefix $(BUILDLOC)/,$(GENASMOBJECTS))
+
+FULLOBJECTS := $(FULLASMOBJECTS) $(FULLGENASMOBJECTS) $(FULLGENCPPOBJECTS) $(FULLBLCPPOBJECTS) $(FULLXSRCPPOBJECTS1) $(FULLSPECXSRCPPOBJECTS) $(FULLSPECXSRCPPOBJECTS1) $(XSRLIB)
+
+
+FULLINCLUDES:= $(addprefix $(SPECSRCDIR)/,$(INCLUDES))
+FULLPLATINCLUDES:= $(addprefix $(PLATSRCDIR)/,$(PLATINCLUDES))
+FULLGENINCLUDES:= $(addprefix $(GENSRCDIR)/,$(GENINCLUDES))
+FULLBLDINCLUDES:= $(addprefix $(H2BLDDIR)/,$(BLDINCLUDES))
+
+
+# Link
+$(eval $(call base__link,$(TMPTARGET),$(FULLOBJECTS)))
+
+# Strip
+$(eval $(call base__strip,$(BINTARGET),$(TMPTARGET)))
+
+# CPP objects
+$(eval $(call base__compile,$(FULLGENCPPOBJECTS),$(BUILDLOC)/%.$(OBJEXT),$(GENSRCDIR)/%.cpp $(FULLHEADERS) $(FULLSPECHEADERS)))
+
+$(eval $(call base__compile,$(FULLBLCPPOBJECTS),$(BUILDLOC)/%.$(OBJEXT),$(BLSRCDIR)/%.cpp $(FULLHEADERS) $(FULLSPECHEADERS)))
+
+$(eval $(call base__compile,$(FULLXSRCPPOBJECTS1),$(BUILDLOC)/%.$(OBJEXT),$(XSRSRCDIR1)/%.cpp $(FULLHEADERS) $(FULLSPECHEADERS)))
+
+$(eval $(call base__compile,$(FULLSPECXSRCPPOBJECTS),$(BUILDLOC)/%.$(OBJEXT),$(SPECXSRSRCDIR)/%.cpp $(FULLHEADERS) $(FULLSPECHEADERS)))
+
+$(eval $(call base__compile,$(FULLSPECXSRCPPOBJECTS1),$(BUILDLOC)/%.$(OBJEXT),$(SPECXSRSRCDIR1)/%.cpp $(FULLHEADERS) $(FULLSPECHEADERS)))
+
+# Asm objects
+$(eval $(call base__asm,$(FULLGENASMOBJECTS),$(BUILDLOC)/%.$(OBJEXT),$(GENSRCDIR)/$(GENASMSOURCE) $(FULLINCLUDES) $(FULLBUILTINCLUDES) $(FULLBUILTINCLUDES2) $(FULLBUILTINCLUDES3) $(FULLDRIVERINCLUDES) $(FULLARMINCLUDES) $(FULLBLDINCLUDES) $(FULLGENINCLUDES) $(FULLPLATINCLUDES)))
+
+$(eval $(call base__asm,$(FULLASMOBJECTS),$(BUILDLOC)/%.$(OBJEXT),$(SPECSRCDIR)/$(ASMSOURCE) $(FULLINCLUDES) $(FULLBUILTINCLUDES) $(FULLBUILTINCLUDES2) $(FULLBLDINCLUDES) $(FULLGENINCLUDES) $(FULLPLATINCLUDES)))
+
+#
+TARGET :: $(TARGETDIR) $(BUILDLOC) $(BINTARGET)
+
+# --what to show releasables
+$(eval $(call whatmacro,$(BINTARGET),USERFLM))
+# Create directory
+CREATABLEPATHS := $(TARGETDIR) $(BUILDLOC)
+$(call makepath,$(CREATABLEPATHS))
+# Clean up
+$(eval $(call GenerateStandardCleanTarget,$(CLEANTARGETS),$(BUILDLOC)))
+
+endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/base/ne1_tb_restricted_coreldr.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,21 @@
+# Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for the Navi_restricted_coreldr extension template
+#
+
+platform	win32
+makefile 	gnumake
+techstream	base
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/base/ne1_tb_restricted_coreldr.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,398 @@
+# Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# ne1_tb_restricted_coreldr.mk
+# #  NB! LINKBASE :  Code execute address also set coreldr.lnk file 
+# #  MUST REFLECT CORELOADER ADDRESS RELOCATION IN BOTH FILES!!
+# 
+#
+
+# To guarantee there is a slash at the end of EPOCROOT in case there is not.
+# This is needed to ensure compatibility with SBSv1. 
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+## If any of these macros are changed, then execute "abld clean coreldr" from this directory
+## Use this macro if it is required to use the MMU
+## if the MMU is not require either comment it out or set it FALSE
+USE_MMU := TRUE
+  
+# This macro enables benchmarking code. Comment out or set FALSE if not required
+#WRITE_TIMINGS := TRUE
+# Timer is not implemented for Naviengine. Do not enable!
+
+
+## This macro causes the page tables to be output. Comment out or set FALSE if not required
+## If this option is selected then the MMU code will be enabled
+# DUMP_PAGE_TABLES := TRUE
+# Page tables cannot be dumped on Naviengine due to the NANDController used. Do not enable!
+
+# This macro enables the MMU enabled version of the coreldr to call RestartAuxiliaryCores
+# before it runs the core image.  This function should be defined in the variant, to 
+# restart the auxiliary cores, which it should have paused on startup.
+RUNS_WITH_SMP := TRUE
+
+# Macro used to enable support for Shadowed Memory Regions feature in loader
+# See also varaint\config.inc to enable in bootstrap
+SUPPORTS_SMR := TRUE
+
+## Make sure all 3 macros are either TRUE or FALSE
+# Enforce USE_MMU if page table is to be dumped
+ifeq "$(DUMP_PAGE_TABLES)" "TRUE"
+	USE_MMU := TRUE
+else
+	DUMP_PAGE_TABLES := FALSE
+endif
+
+ifneq "$(USE_MMU)" "TRUE"
+	USE_MMU := FALSE
+endif
+
+ifneq "$(WRITE_TIMINGS)" "TRUE"
+	WRITE_TIMINGS := FALSE
+endif
+
+ifneq "$(SUPPORTS_SMR)" "TRUE"
+	SUPPORTS_SMR := FALSE
+endif
+
+#Set the directories; based on calling bld.inf
+GENSRCDIR := $(EXTENSION_ROOT)/../../../kernelhwsrv/kerneltest/e32utils/nandboot/coreldr
+#Generic drivers
+BLSRCDIR := $(EXTENSION_ROOT)/../../../kernelhwsrv/kernel/eka/drivers/unistore2/srca/XSR/UTIL/ONBL2
+XSRSRCDIR1 := $(EXTENSION_ROOT)/../../../kernelhwsrv/kernel/eka/drivers/unistore2/srca/XSR/OAM/OSLess
+XSRSRCDIR2 := $(EXTENSION_ROOT)/../../../kernelhwsrv/kernel/eka/drivers/unistore2/srca/XSR/LLD/DNandO
+#Coreloader ASM...
+SPECSRCDIR := $(EXTENSION_ROOT)/../navienginebsp/ne1_tb/nandboot
+#PAM - Platform specific Version
+SPECXSRSRCDIR := $(EXTENSION_ROOT)/pam
+SPECXSRSRCDIR1 := $(EXTENSION_ROOT)/lld
+
+#Platform Variant includes
+VARIANTINC := $(INC_PATH)/ne1_tb
+VARIANTINC2 := $(EXTENSION_ROOT)/../navienginebsp/ne1_tb/bootstrap
+VARIANTINC3 := $(EXTENSION_ROOT)/../navienginebsp/ne1_tb/nand  $(EXTENSION_ROOT)/../navienginebsp/naviengine_assp  $(INC_PATH)/assp/naviengine/$(MEMMODEL)
+
+#Generic driver file includes
+GENINC1 := $(INC_PATH)
+GENDRIVERINC := $(INC_PATH)/drivers
+GENINC2 := $(INC_PATH)/drivers/unistore2 $(INC_PATH)/memmodel/epoc $(INC_PATH)/kernel  $(INC_PATH)/kernel/arm $(INC_PATH)/nkern $(INC_PATH)/nkern/arm
+GENXSRINC := $(EXTENSION_ROOT)/../../../kernelhwsrv/kernel/eka/drivers/unistore2/srca/XSR/INC
+GENINCPATH:= $(GENSRCDIR) $(SPECSRCDIR) $(XSRSRCDIR1) $(XSRSRCDIR2) $(SPECXSRSRCDIR) $(SPECXSRSRCDIR1) $(VARIANTINC) $(VARIANTINC2) $(VARIANTINC3) $(GENINC1) $(GENDRIVERINC) $(GENINC2) $(GENINC3) $(GENINC4) $(GENXSRINC)
+
+
+# Set the source/include/target directories
+
+#epoc32 folder for exported header files
+EPOCINCDIR = $(INC_PATH)/ne1_tb
+
+# Build directory (EPOCBLD too long)
+BUILDLOC = $(EPOCROOT)epoc32/build/bsp/hwip_nec_naviengine/ne1_tb_restricted/unistore2/nandboot/coreldr/$(PLATFORM_PATH)
+
+# Set the target name
+TARGETDIR := $(EPOCROOT)epoc32/release/$(PLATFORM_PATH)
+TARGET = $(TARGETDIR)$/$(NAME).bin
+TMPTARGET = $(BUILDLOC)$/$(NAME).elf
+
+#Rules
+vpath %.s . $(SPECSRCDIR) $(SRCDIR)
+vpath %.inc . $(SPECSRCDIR) $(EPOCINCDIR)
+vpath %.ginc . $(BUILDLOC)
+
+
+# from base/e32/include/drivers/...
+VHEADERS := nanddevice.h
+# the following .inc files get built as part of the process
+BUILTINCLUDES := nanddevice.inc config.inc
+BUILTINCLUDES2 := nand_plat.inc
+
+
+
+ASMSOURCE := coreldrasm.s
+GENCPPSOURCE := inflate.cpp
+BLCPPSOURCE := ONbl2.cpp
+XSRCPPSOURCE1 := OSLessOAM.cpp
+SPECXSRCPPSOURCE := pam.cpp
+SPECXSRCPPSOURCE1 := pnl.cpp  
+
+XSRLIB := $(EPOCROOT)epoc32/release/armv5/urel/nbl2.lib
+
+ifeq "$(USE_MMU)" "TRUE"
+	#generic version found in base/e32utils/nandboot/coreldr/...
+	GENASMSOURCE := coreldrmmu.s # only link in the MMU stuff if required
+endif
+
+HEADERS := 
+SPECHEADERS := nand_plat.h
+
+## Address at which coreloader binary is loaded and then started from
+#
+# On NaviEngine this number is base of ram + 208MB (permitting 208MB core images)
+# this number is pretty arbitrary
+# if necessary as long as the corresponding change is also made to
+# KCoreLoaderAddress in variant_bootstrap.inc
+#
+LINKBASE = 0x8D000000
+
+ARMASM_OUT := $(shell armasm 2>&1)
+ARMASM_OUT_4 := $(word 4,$(ARMASM_OUT))
+
+# Select the toolchain: ARM RVCT, then GCC
+
+# Use GCC toolchain if no other is available
+TOOLVER := GCC
+RVCTSTR := $(strip $(findstring RVCT, $(ARMASM_OUT_4)))
+ifeq "$(RVCTSTR)" "RVCT"
+	TOOLVER := RVCT
+	OP := --
+	OB := o
+endif
+
+# Build up logical TRUE defines
+ifeq "$(USE_MMU)" "TRUE"
+	ASM_TRUE_MACROS += USE_MMU
+endif 
+
+ifeq "$(WRITE_TIMINGS)" "TRUE"
+	ASM_TRUE_MACROS += WRITE_TIMINGS
+endif 
+
+ifeq "$(SUPPORTS_SMR)" "TRUE"
+	ASM_TRUE_MACROS += SUPPORTS_SMR
+endif 
+
+ifeq "$(DUMP_PAGE_TABLES)" "TRUE"
+	ASM_TRUE_MACROS += DUMP_PAGE_TABLES
+endif 
+
+ifeq "$(RUNS_WITH_SMP)" "TRUE"
+	ASM_TRUE_MACROS += RUNS_WITH_SMP
+endif
+
+# Build up logical FALSE defines
+ifeq "$(USE_MMU)" "FALSE"
+	ASM_FALSE_MACROS += USE_MMU
+endif 
+
+ifeq "$(WRITE_TIMINGS)" "FALSE"
+	ASM_FALSE_MACROS += WRITE_TIMINGS
+endif
+ 
+ifeq "$(SUPPORTS_SMR)" "FALSE"
+	ASM_FALSE_MACROS += SUPPORTS_SMR
+endif 
+
+ifeq "$(DUMP_PAGE_TABLES)" "FALSE"
+	ASM_FALSE_MACROS += DUMP_PAGE_TABLES
+endif 
+
+#Arm RVCT tools
+ifeq "$(TOOLVER)" "RVCT"
+ASM_TRUE_MACROS += USE_CXSF
+ASM := armasm
+LINK := armlink
+FROMELF := fromelf
+CPP := armcc
+
+OBJEXT := o
+INCEXT := inc
+
+ARMCCFLAGS := --arm -c -Otime --cpp
+ARMCCFLAGS := $(ARMCCFLAGS) $(foreach dir,$(GENINCPATH),$(join -I, $(dir)))
+ARMCCFLAGS := $(ARMCCFLAGS) -DEKA2
+ARMCCFLAGS := $(ARMCCFLAGS) -DXSR_NBL2 -DREAL_TARGET -DDEFERED_CHK -DSYMBIAN_SUPPORT_UNISTORE2
+  
+
+ifeq "$(SUPPORTS_SMR)" "TRUE"
+    ARMCCFLAGS := $(ARMCCFLAGS) -DSUPPORTS_SMR
+endif    
+
+
+
+	ARMCCFLAGS := $(ARMCCFLAGS) --preinclude $(EPOCROOT)epoc32/include/rvct/rvct.h
+
+	ifeq "$(CFG)" "UDEB"
+	ARMCCFLAGS := $(ARMCCFLAGS) -D_DEBUG
+	endif
+
+ASM_TRUE_MACRO_CMD := $(foreach macro,$(ASM_TRUE_MACROS),$(OP)predefine "$(macro) SETL {TRUE}")
+ASM_FALSE_MACRO_CMD := $(foreach macro,$(ASM_FALSE_MACROS),$(OP)predefine "$(macro) SETL {FALSE}")
+ASM_LINKBASE_MACRO := $(OP)predefine "_LINKBASE_ SETA $(LINKBASE)"
+
+AFLAGS := -g $(OP)keep $(ASM_TRUE_MACRO_CMD) $(ASM_FALSE_MACRO_CMD) $(ASM_LINKBASE_MACRO) -I$(BUILDLOC) $(foreach dir,$(GENINCPATH),$(join -I, $(dir)))
+LFLAGS := $(OP)entry BootEntry $(OP)ro-base $(LINKBASE) $(OP)FIRST BootEntry $(OP)map
+SYMOPT := $(OP)symdefs
+ASMTYP := ARMASM
+LINKFILE :=
+
+define do_compile
+$(CPP) $(ARMCCFLAGS) $< -o $@
+endef
+define do_h2inc
+perl -S $(EPOCROOT)epoc32/tools/h2inc.pl $< $@ ARMASM
+endef
+define do_asm
+$(ASM) $(AFLAGS) -$(OB) $@ $(OP)LIST $(join $(basename $@),.lst) $<
+endef
+define do_link
+$(LINK) $(LFLAGS) -$(OB) $@ $(FULLOBJECTS)
+endef
+define do_strip
+$(FROMELF) $(OP)bin $(OP)output $@ $<
+endef
+endif
+
+#Header processing
+FULLHEADERS := $(addprefix $(GENSRCDIR)/,$(HEADERS))
+FULLSPECHEADERS := $(addprefix $(VARIANTINC)/,$(SPECHEADERS))
+
+FULLVHEADERS := $(addprefix $(GENDRIVERINC)/,$(VHEADERS))
+FULLBUILTINCLUDES := $(addprefix $(BUILDLOC)/,$(BUILTINCLUDES))
+$(FULLBUILTINCLUDES) : $(FULLVHEADERS)
+	$(do_h2inc)
+
+FULLVHEADERS2 := $(addprefix $(VARIANTINC)/,$(SPECHEADERS))
+FULLBUILTINCLUDES2 := $(addprefix $(BUILDLOC)/,$(BUILTINCLUDES2))
+$(FULLBUILTINCLUDES2) : $(FULLVHEADERS2)
+	$(do_h2inc)
+
+#object names
+GENCPPOBJECTS := $(foreach f,$(GENCPPSOURCE),$(basename $(f)).$(OBJEXT))
+FULLGENCPPOBJECTS := $(addprefix $(BUILDLOC)/,$(GENCPPOBJECTS))
+
+BLCPPOBJECTS := $(foreach f,$(BLCPPSOURCE),$(basename $(f)).$(OBJEXT))
+FULLBLCPPOBJECTS := $(addprefix $(BUILDLOC)/,$(BLCPPOBJECTS))
+
+XSRCPPOBJECTS1 := $(foreach f,$(XSRCPPSOURCE1),$(basename $(f)).$(OBJEXT))
+FULLXSRCPPOBJECTS1 := $(addprefix $(BUILDLOC)/,$(XSRCPPOBJECTS1))
+
+SPECXSRCPPOBJECTS := $(foreach f,$(SPECXSRCPPSOURCE),$(basename $(f)).$(OBJEXT))
+FULLSPECXSRCPPOBJECTS := $(addprefix $(BUILDLOC)/,$(SPECXSRCPPOBJECTS))
+
+SPECXSRCPPOBJECTS1 := $(foreach f,$(SPECXSRCPPSOURCE1),$(basename $(f)).$(OBJEXT))
+FULLSPECXSRCPPOBJECTS1 := $(addprefix $(BUILDLOC)/,$(SPECXSRCPPOBJECTS1))
+
+ASMOBJECTS := $(foreach f,$(ASMSOURCE),$(basename $(f)).$(OBJEXT))
+FULLASMOBJECTS := $(addprefix $(BUILDLOC)/,$(ASMOBJECTS))
+
+GENASMOBJECTS := $(foreach f,$(GENASMSOURCE),$(basename $(f)).$(OBJEXT))
+FULLGENASMOBJECTS := $(addprefix $(BUILDLOC)/,$(GENASMOBJECTS))
+
+FULLOBJECTS := $(FULLASMOBJECTS) $(FULLGENASMOBJECTS) $(FULLGENCPPOBJECTS) $(FULLBLCPPOBJECTS) $(FULLXSRCPPOBJECTS1) $(FULLSPECXSRCPPOBJECTS) $(FULLSPECXSRCPPOBJECTS1) $(XSRLIB)
+
+ifdef PROCESS_INCLUDES
+
+GCCSRC := $(addprefix $(BUILDLOC)/,$(SRC))
+
+#Creation of headers
+FULLINCLUDES := $(foreach f,$(INCLUDES),$(basename $(f)).$(INCEXT))
+FULLINCLUDES := $(addprefix $(BUILDLOC)/,$(FULLINCLUDES))
+
+$(FULLINCLUDES) : $(BUILDLOC)/%.$(INCEXT) : %.inc
+	$(do_includes)
+
+FULLBLDINCLUDES := $(foreach f,$(BLDINCLUDES),$(basename $(f)).$(INCEXT))
+FULLBLDINCLUDES := $(addprefix $(BUILDLOC)/,$(FULLBLDINCLUDES))
+$(FULLBLDINCLUDES) : $(BUILDLOC)/%.$(INCEXT) : %.inc
+	$(do_includes)
+
+FULLPLATINCLUDES := $(foreach f,$(PLATINCLUDES),$(basename $(f)).$(INCEXT))
+FULLPLATINCLUDES := $(addprefix $(BUILDLOC)/,$(FULLPLATINCLUDES))
+$(FULLPLATINCLUDES) : $(BUILDLOC)/%.$(INCEXT) : %.inc
+	$(do_includes)
+
+FULLGENINCLUDES := $(foreach f,$(GENINCLUDES),$(basename $(f)).$(INCEXT))
+FULLGENINCLUDES := $(addprefix $(BUILDLOC)/,$(FULLGENINCLUDES))
+$(FULLGENINCLUDES) : $(BUILDLOC)/%.$(INCEXT) : %.inc
+	$(do_includes)
+
+else
+FULLINCLUDES:= $(addprefix $(SPECSRCDIR)/,$(INCLUDES))
+FULLPLATINCLUDES:= $(addprefix $(PLATSRCDIR)/,$(PLATINCLUDES))
+FULLGENINCLUDES:= $(addprefix $(GENSRCDIR)/,$(GENINCLUDES))
+FULLBLDINCLUDES:= $(addprefix $(H2BLDDIR)/,$(BLDINCLUDES))
+
+#Arm RVCT specifics here
+
+endif
+
+
+#Link
+$(TMPTARGET) : $(FULLOBJECTS)
+	$(do_link)
+
+#strip
+$(TARGET) : $(TMPTARGET)
+	$(do_strip)
+
+#CPP objects
+$(FULLGENCPPOBJECTS) : $(BUILDLOC)/%.$(OBJEXT) : $(GENSRCDIR)/%.cpp $(FULLHEADERS) $(FULLSPECHEADERS)
+	$(do_compile)
+
+$(FULLBLCPPOBJECTS) : $(BUILDLOC)/%.$(OBJEXT) : $(BLSRCDIR)/%.cpp $(FULLHEADERS) $(FULLSPECHEADERS)
+	$(do_compile)
+
+$(FULLXSRCPPOBJECTS1) : $(BUILDLOC)/%.$(OBJEXT) : $(XSRSRCDIR1)/%.cpp $(FULLHEADERS) $(FULLSPECHEADERS)
+	$(do_compile)
+
+$(FULLSPECXSRCPPOBJECTS) : $(BUILDLOC)/%.$(OBJEXT) : $(SPECXSRSRCDIR)/%.cpp $(FULLHEADERS) $(FULLSPECHEADERS)
+	$(do_compile)
+
+$(FULLSPECXSRCPPOBJECTS1) : $(BUILDLOC)/%.$(OBJEXT) : $(SPECXSRSRCDIR1)/%.cpp $(FULLHEADERS) $(FULLSPECHEADERS)
+	$(do_compile)
+
+#Asm objects
+$(FULLGENASMOBJECTS) : $(BUILDLOC)/%.$(OBJEXT) : $(GENSRCDIR)/$(GENASMSOURCE) $(FULLINCLUDES) $(FULLBUILTINCLUDES) $(FULLBUILTINCLUDES2) $(FULLBUILTINCLUDES3) $(FULLDRIVERINCLUDES) $(FULLARMINCLUDES) $(FULLBLDINCLUDES) $(FULLGENINCLUDES) $(FULLPLATINCLUDES)
+	$(do_asm)
+
+$(FULLASMOBJECTS) : $(BUILDLOC)/%.$(OBJEXT) : $(SPECSRCDIR)/$(ASMSOURCE) $(FULLINCLUDES) $(FULLBUILTINCLUDES) $(FULLBUILTINCLUDES2) $(FULLBLDINCLUDES) $(FULLGENINCLUDES) $(FULLPLATINCLUDES)
+	$(do_asm)
+
+# make the work directories
+$(TARGETDIR) :
+	$(call ifnotexistd,"$(TARGETDIR)")
+
+$(BUILDLOC) :
+	$(call ifnotexistd,"$(BUILDLOC)")
+
+
+MAKMAKE :
+	echo Nothing to do
+
+FREEZE :
+	echo Nothing to do
+
+LIB :
+	echo Nothing to do
+
+CLEANLIB :
+	echo Nothing to do
+
+RESOURCE :
+	echo Nothing to do
+
+FINAL :
+	echo Nothing to do
+
+BLD SAVESPACE : $(TARGETDIR) $(BUILDLOC) $(TARGET)
+	@echo BLD
+
+RELEASABLES :
+	@echo "$(TARGET)"
+
+CLEAN :
+	-$(ERASE) $(call slash2generic,"$(TARGET)")
+	-$(ERASE) $(call slash2generic,"$(BUILDLOC)/*.*")
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/base/ne1_tb_restricted_coreldr.xml	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?> 
+<build xmlns="http://symbian.com/xml/build" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symbian.com/xml/build build/2_0.xsd">
+
+<!--  Extension interfaces : replacements for Template Extension Makefiles  --> 
+
+ <interface name="base.ne1_tb_restricted_coreldr" extends="Symbian.KernelFLM" flm="ne1_tb_restricted_coreldr.flm">
+  <param name="NAME" />
+  <param name="MEMMODEL" />	
+  <param name="INCLUDES" default='' />
+  <param name="INC_PATH" />
+ </interface>
+
+</build>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/base/omap3_genbootinc.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,22 @@
+# Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for the omap3_genbootinc extension template
+#
+
+
+platform	win32
+makefile 	gnumake
+techstream	base
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/base/omap3_genbootinc.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,59 @@
+# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Generate assembler inc files from header files
+# 
+#
+
+# To guarantee there is a slash at the end of EPOCROOT in case there is not.
+# This is needed to ensure compatibility with SBSv1. 
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+# This will need to change when the directory gets renamed
+XINCDIR := $(INC_PATH)/tiomap3/variant/common
+XINCDIR2 := $(INC_PATH)/tiomap3/assp/common
+
+
+MAKMAKE : all
+
+FREEZE :
+
+LIB : all
+
+CLEANLIB :
+
+RESOURCE :
+
+FINAL :
+
+BLD SAVESPACE : all
+
+RELEASABLES :
+	@echo $(XINCDIR)/nand_fbr_offset.inc
+	@echo $(XINCDIR2)/customrestartreasons.inc
+
+CLEAN :
+	-$(ERASE) $(call slash2generic,$(XINCDIR)/nand_fbr_offset.inc) 
+#	-$(ERASE) $(XINCDIR)/nand_fbr_offset.inc
+	@echo $(XINCDIR2)/customrestartreasons.inc
+
+all: $(XINCDIR2)/customrestartreasons.inc $(XINCDIR)/nand_fbr_offset.inc 
+
+$(XINCDIR)/nand_fbr_offset.inc : $(XINCDIR)/nand_fbr_offset.h
+	perl $(EPOCROOT)epoc32/tools/h2inc.pl $(XINCDIR)/nand_fbr_offset.h $(XINCDIR)/nand_fbr_offset.inc ARMASM
+
+$(XINCDIR2)/customrestartreasons.inc : $(XINCDIR2)/customrestartreasons.h
+	perl $(EPOCROOT)epoc32/tools/h2inc.pl $(XINCDIR2)/customrestartreasons.h $(XINCDIR2)/customrestartreasons.inc ARMASM
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/base/omap3_restricted_coreldr.flm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,244 @@
+# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# #  NB! LINKBASE :  Code execute address also set coreldr.lnk file 
+# #  MUST REFLECT CORELOADER ADDRESS RELOCATION IN BOTH FILES!!
+#
+
+ifeq ($($(NAME)_omap3_resricted_coreldr_flm),)
+$(NAME)_omap3_resricted_coreldr_flm := 1
+
+## THESE MACROS NEED TO BE SET EXPLICITLY TO TRUE OR BLANK
+
+## Use this macro if it is required to use the MMU
+## if the MMU is not require either comment it out or set it FALSE
+USE_MMU :=
+
+## This macro enables benchmarking code. Comment out or set FALSE if not required
+WRITE_TIMINGS :=
+
+## This macro causes the page tables to be output. Comment out or set FALSE if not required
+## If this option is selected then the MMU code will be enabled
+DUMP_PAGE_TABLES :=
+
+## Make sure all 3 macros are either TRUE or FALSE
+# Enforce USE_MMU if page table is to be dumped
+ifeq "$(DUMP_PAGE_TABLES)" "TRUE"
+  USE_MMU := TRUE
+else
+  DUMP_PAGE_TABLES := FALSE
+endif
+
+ifneq "$(USE_MMU)" "TRUE"
+  USE_MMU := FALSE
+endif
+
+ifneq "$(WRITE_TIMINGS)" "TRUE"
+  WRITE_TIMINGS := FALSE
+endif
+
+# Set the directories
+GENSRCDIR := $(EXTENSION_ROOT)/../../../../../../kernelhwsrv/kerneltest/e32utils/nandboot/coreldr
+XSRSRCDIR := $(EXTENSION_ROOT)/../../../../../../kernelhwsrv/kerneltest/e32utils/nandboot/coreldr/unistore2
+SPECSRCDIR := $(EXTENSION_ROOT)/../../../assp/common/nandboot/coreldr_largeblk
+
+VARIANTINC := $(INC_PATH)/tiomap3/variant/$(VARIANT_PATH)
+VARIANTINC2 := $(EXTENSION_ROOT)/../../../assp/common/bootstrap
+VARIANTINC3 := $(EXTENSION_ROOT)/../../34xx_sdp/nand
+VARIANTINC4 := $(INC_PATH)/tiomap3/variant/common
+
+GENINC1 := $(INC_PATH) $(EPOCROOT)/epoc32/include
+GENDRIVERINC := $(INC_PATH)/drivers
+GENINC2 := $(INC_PATH)/drivers/unistore2
+GENINCPATH := $(GENSRCDIR) $(SPECSRCDIR) $(XSRSRCDIR) $(VARIANTINC) $(VARIANTINC2) $(VARIANTINC3) $(VARIANTINC4) $(GENINC1) $(GENDRIVERINC) $(GENINC2)
+
+# Set the source/include/target directories
+GSRCDIR := ../../../assp/common/nandboot
+VINCDIR := ../../../h4/inc
+GINCDIR := ../../../shared/inc
+EPOCINCDIR := $(INC_PATH)/tiomap3/variant/34xx_sdp
+
+# Build directory
+BUILDLOC := $(EPOCBLD)/omap3_restricted_coreldr_flm/$(PLATFORM_PATH)
+
+# Set the target name
+TARGETDIR := $(EPOCROOT)/epoc32/release/$(PLATFORM_PATH)
+BINTARGET := $(TARGETDIR)/$(NAME).bin
+TMPTARGET := $(BUILDLOC)/$(NAME).elf
+
+# Rules
+vpath %.s . $(SPECSRCDIR) $(SRCDIR)
+vpath %.inc . $(SPECSRCDIR) $(EPOCINCDIR)
+vpath %.ginc . $(BUILDLOC)
+
+INCLUDES :=
+
+VHEADERS := nanddevice.h
+BUILTINCLUDES := nanddevice.inc config.inc
+BUILTINCLUDES2 := nand_plat.inc
+
+ASMSOURCE := coreldrasm_largeblk.s
+GENCPPSOURCE := coreldr.cpp inflate.cpp
+XSRCPPSOURCE := coreldrxsr.cpp
+
+# Only link in the MMU stuff if required
+GENASMSOURCE :=
+ifeq "$(USE_MMU)" "TRUE"
+  GENASMSOURCE := coreldrmmu.s 
+endif
+
+HEADERS := inflate.h coreldr.h
+SPECHEADERS := nand_plat.h
+
+## Address at which coreloader binary is loaded and then started from
+#
+# On H4 this number is base of ram + 48MB (permitting 48MB core images)
+# this number is pretty arbitrary and may be raised higher into ram
+# if necessary as long as the corresponding change is also made to
+# KCoreLoaderAddress in variant_bootstrap.inc
+#
+LINKBASE := 0x83000000
+
+# Build up logical TRUE defines
+ASM_TRUE_MACROS :=
+
+ifeq "$(USE_MMU)" "TRUE"
+  ASM_TRUE_MACROS := $(ASM_TRUE_MACROS) USE_MMU
+endif 
+
+ifeq "$(WRITE_TIMINGS)" "TRUE"
+  ASM_TRUE_MACROS := $(ASM_TRUE_MACROS) WRITE_TIMINGS
+endif 
+
+ifeq "$(DUMP_PAGE_TABLES)" "TRUE"
+  ASM_TRUE_MACROS := $(ASM_TRUE_MACROS) DUMP_PAGE_TABLES
+endif 
+
+# Build up logical FALSE defines
+ASM_FALSE_MACROS :=
+
+ifeq "$(USE_MMU)" "FALSE"
+  ASM_FALSE_MACROS := $(ASM_FALSE_MACROS) USE_MMU
+endif 
+
+ifeq "$(WRITE_TIMINGS)" "FALSE"
+  ASM_FALSE_MACROS := $(ASM_FALSE_MACROS) WRITE_TIMINGS
+endif 
+
+ifeq "$(DUMP_PAGE_TABLES)" "FALSE"
+  ASM_FALSE_MACROS := $(ASM_FALSE_MACROS) DUMP_PAGE_TABLES
+endif 
+
+
+# Arm RVCT tools
+ASM_TRUE_MACROS := $(ASM_TRUE_MACROS) USE_CXSF 
+
+OBJEXT := o
+INCEXT := inc
+
+ARMCCFLAGS := --arm -c -Otime --cpp --enum_is_int
+ARMCCFLAGS := $(ARMCCFLAGS) $(foreach dir,$(GENINCPATH),$(join -I, $(dir)))
+ARMCCFLAGS := $(ARMCCFLAGS) -DEKA2
+ARMCCFLAGS := $(ARMCCFLAGS) -DSYMBIAN_SUPPORT_UNISTORE2
+
+ARMCCFLAGS := $(ARMCCFLAGS) --preinclude $(EPOCROOT)/epoc32/include/rvct/rvct.h
+
+ifdef MACRO
+ARMCCFLAGS := $(ARMCCFLAGS) -D$(MACRO)
+endif
+
+ifeq "$(CFG)" "UDEB"
+ARMCCFLAGS := $(ARMCCFLAGS) -D_DEBUG
+endif
+
+ASM_TRUE_MACRO_CMD := $(foreach macro,$(ASM_TRUE_MACROS),--predefine "$(macro) SETL {TRUE}")
+ASM_FALSE_MACRO_CMD := $(foreach macro,$(ASM_FALSE_MACROS),--predefine "$(macro) SETL {FALSE}")
+ASM_LINKBASE_MACRO := --predefine "_LINKBASE_ SETA $(LINKBASE)"
+
+AFLAGS := -g --keep $(ASM_TRUE_MACRO_CMD) $(ASM_FALSE_MACRO_CMD) $(ASM_LINKBASE_MACRO) -I$(BUILDLOC) $(foreach dir,$(GENINCPATH),$(join -I, $(dir)))
+LFLAGS := --entry BootEntry --ro-base $(LINKBASE) --FIRST BootEntry --map
+SYMOPT := --symdefs
+ASMTYP := ARMASM
+LINKFILE :=
+
+# Include base commonly used functions with RVCT toolchain
+include $(EPOCROOT)/epoc32/tools/makefile_templates/base/base_rvct_common.mk
+
+
+# CPP source processing
+FULLCPPSOURCE := $(addprefix $(GENSRCDIR)/,$(GENCPPSOURCE))
+
+# Header processing
+FULLHEADERS := $(addprefix $(GENSRCDIR)/,$(HEADERS))
+FULLSPECHEADERS := $(addprefix $(VARIANTINC)/,$(SPECHEADERS))
+
+FULLVHEADERS := $(addprefix $(GENDRIVERINC)/,$(VHEADERS))
+FULLBUILTINCLUDES := $(addprefix $(BUILDLOC)/,$(BUILTINCLUDES))
+
+$(eval $(call base__h2inc,$(FULLBUILTINCLUDES),$(FULLVHEADERS)))
+
+FULLVHEADERS2 := $(addprefix $(VARIANTINC)/,$(SPECHEADERS))
+FULLBUILTINCLUDES2 := $(addprefix $(BUILDLOC)/,$(BUILTINCLUDES2))
+
+$(eval $(call base__h2inc,$(FULLBUILTINCLUDES2),$(FULLVHEADERS2)))
+
+# Object names
+GENCPPOBJECTS := $(foreach f,$(GENCPPSOURCE),$(basename $(f)).$(OBJEXT))
+FULLGENCPPOBJECTS := $(addprefix $(BUILDLOC)/,$(GENCPPOBJECTS))
+
+XSRCPPOBJECTS := $(foreach f,$(XSRCPPSOURCE),$(basename $(f)).$(OBJEXT))
+FULLXSRCPPOBJECTS := $(addprefix $(BUILDLOC)/,$(XSRCPPOBJECTS))
+
+ASMOBJECTS := $(foreach f,$(ASMSOURCE),$(basename $(f)).$(OBJEXT))
+FULLASMOBJECTS := $(addprefix $(BUILDLOC)/,$(ASMOBJECTS))
+
+GENASMOBJECTS := $(foreach f,$(GENASMSOURCE),$(basename $(f)).$(OBJEXT))
+FULLGENASMOBJECTS := $(addprefix $(BUILDLOC)/,$(GENASMOBJECTS))
+
+FULLOBJECTS := $(FULLASMOBJECTS) $(FULLGENASMOBJECTS) $(FULLGENCPPOBJECTS) $(FULLXSRCPPOBJECTS)
+
+
+FULLINCLUDES := $(addprefix $(SPECSRCDIR)/,$(INCLUDES))
+FULLPLATINCLUDES := $(addprefix $(PLATSRCDIR)/,$(PLATINCLUDES))
+FULLGENINCLUDES := $(addprefix $(GENSRCDIR)/,$(GENINCLUDES))
+FULLBLDINCLUDES := $(addprefix $(H2BLDDIR)/,$(BLDINCLUDES))
+
+
+# Link
+$(eval $(call base__link,$(TMPTARGET),$(FULLOBJECTS)))
+
+# Strip
+$(eval $(call base__strip,$(BINTARGET),$(TMPTARGET)))
+
+# CPP objects
+$(eval $(call base__compile,$(FULLGENCPPOBJECTS),$(BUILDLOC)/%.$(OBJEXT),$(GENSRCDIR)/%.cpp $(FULLHEADERS) $(FULLSPECHEADERS)))
+
+$(eval $(call base__compile,$(FULLXSRCPPOBJECTS),$(BUILDLOC)/%.$(OBJEXT),$(XSRSRCDIR)/%.cpp $(FULLHEADERS) $(FULLSPECHEADERS)))
+
+# Asm objects
+$(eval $(call base__asm,$(FULLGENASMOBJECTS),$(BUILDLOC)/%.$(OBJEXT),$(GENSRCDIR)/$(GENASMSOURCE) $(FULLINCLUDES) $(FULLBUILTINCLUDES) $(FULLBUILTINCLUDES2) $(FULLBUILTINCLUDES3) $(FULLDRIVERINCLUDES) $(FULLARMINCLUDES) $(FULLBLDINCLUDES) $(FULLGENINCLUDES) $(FULLPLATINCLUDES)))
+
+$(eval $(call base__asm,$(FULLASMOBJECTS),$(BUILDLOC)/%.$(OBJEXT),$(SPECSRCDIR)/$(ASMSOURCE) $(FULLINCLUDES) $(FULLBUILTINCLUDES) $(FULLBUILTINCLUDES2) $(FULLBLDINCLUDES) $(FULLGENINCLUDES) $(FULLPLATINCLUDES)))
+
+#
+TARGET :: $(TARGETDIR) $(BUILDLOC) $(BINTARGET) 
+
+# --what to show releasables
+$(eval $(call whatmacro,$(BINTARGET),USERFLM))
+# Create directory
+CREATABLEPATHS := $(TARGETDIR) $(BUILDLOC)
+$(call makepath,$(CREATABLEPATHS))
+# Clean up
+$(eval $(call GenerateStandardCleanTarget,$(CLEANTARGETS),$(BUILDLOC)))
+
+endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/base/omap3_restricted_coreldr.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,21 @@
+# Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for the omap3_restricted_coreldr extension template
+#
+
+platform	win32
+makefile 	gnumake
+techstream	base
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/base/omap3_restricted_coreldr.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,391 @@
+# Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# #  NB! LINKBASE :  Code execute address also set coreldr.lnk file 
+# #  MUST REFLECT CORELOADER ADDRESS RELOCATION IN BOTH FILES!!
+# 
+#
+
+# To guarantee there is a slash at the end of EPOCROOT in case there is not.
+# This is needed to ensure compatibility with SBSv1. 
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+
+## If any of these macros are changed, then execute "abld clean coreldr" from this directory
+## Use this macro if it is required to use the MMU
+## if the MMU is not require either comment it out or set it FALSE
+## USE_MMU := TRUE
+  
+## This macro enables benchmarking code. Comment out or set FALSE if not required
+#WRITE_TIMINGS := TRUE
+
+## This macro causes the page tables to be output. Comment out or set FALSE if not required
+## If this option is selected then the MMU code will be enabled
+#DUMP_PAGE_TABLES := TRUE
+
+
+## Make sure all 3 macros are either TRUE or FALSE
+# Enforce USE_MMU if page table is to be dumped
+ifeq "$(DUMP_PAGE_TABLES)" "TRUE"
+        USE_MMU := TRUE
+else
+        DUMP_PAGE_TABLES := FALSE
+endif
+
+ifneq "$(USE_MMU)" "TRUE"
+        USE_MMU := FALSE
+endif
+
+ifneq "$(WRITE_TIMINGS)" "TRUE"
+        WRITE_TIMINGS := FALSE
+endif
+
+#Set the directories
+GENSRCDIR := $(EXTENSION_ROOT)/../../../../../../kernelhwsrv/kerneltest/e32utils/nandboot/coreldr
+XSRSRCDIR := $(EXTENSION_ROOT)/../../../../../../kernelhwsrv/kerneltest/e32utils/nandboot/coreldr/unistore2
+SPECSRCDIR := $(EXTENSION_ROOT)/../../../assp/common/nandboot/coreldr_largeblk
+
+VARIANTINC := $(INC_PATH)/tiomap3/variant/$(VARIANT_PATH)
+VARIANTINC2 := $(EXTENSION_ROOT)/../../../assp/common/bootstrap
+VARIANTINC3 := $(EXTENSION_ROOT)/../../34xx_sdp/nand
+VARIANTINC4 := $(INC_PATH)/tiomap3/variant/common
+
+GENINC1 := $(INC_PATH) $(EPOCROOT)epoc32/include
+GENDRIVERINC := $(INC_PATH)/drivers
+GENINC2 := $(INC_PATH)/drivers/unistore2
+GENINCPATH:= $(GENSRCDIR) $(SPECSRCDIR) $(XSRSRCDIR) $(VARIANTINC) $(VARIANTINC2) $(VARIANTINC3) $(VARIANTINC4) $(GENINC1) $(GENDRIVERINC) $(GENINC2)
+
+# Set the source/include/target directories
+GSRCDIR = ../../../assp/common/nandboot
+VINCDIR = ../../../h4/inc
+GINCDIR = ../../../shared/inc
+EPOCINCDIR = $(INC_PATH)/tiomap3/variant/34xx_sdp
+
+# Build directory (EPOCBLD too long)
+BUILDLOC = $(EPOCROOT)epoc32/build/tiomap3/$(VARIANT_PATH)_restricted/unistore2/nandboot/coreldr/$(PLATFORM)
+#BUILDLOC = $(EPOCROOT)epoc32/build/tiomap3/34xx_sdp_restricted/unistore2/nandboot/coreldr/$(PLATFORM)
+#BUILDLOC = $(EPOCBLD)/$(PLATFORM_PATH)/$(CFG)  # Error as $(EPOCBLD) include platform 
+#BUILDLOC = $(EPOCBLD)/$(CFG_PATH)
+
+# Set the target name
+TARGETDIR := $(EPOCROOT)epoc32/release/$(PLATFORM_PATH)
+TARGET = $(TARGETDIR)/$(NAME).bin
+TMPTARGET = $(BUILDLOC)/$(NAME).elf
+
+#Rules
+vpath %.s . $(SPECSRCDIR) $(SRCDIR)
+vpath %.inc . $(SPECSRCDIR) $(EPOCINCDIR)
+vpath %.ginc . $(BUILDLOC)
+
+INCLUDES :=
+
+VHEADERS := nanddevice.h
+BUILTINCLUDES := nanddevice.inc config.inc
+BUILTINCLUDES2 := nand_plat.inc
+
+ASMSOURCE := coreldrasm_largeblk.s
+GENCPPSOURCE := coreldr.cpp inflate.cpp
+XSRCPPSOURCE := coreldrxsr.cpp
+
+ifeq "$(USE_MMU)" "TRUE"
+        GENASMSOURCE := coreldrmmu.s # only link in the MMU stuff if required
+endif
+
+HEADERS := inflate.h coreldr.h
+SPECHEADERS := nand_plat.h
+
+## Address at which coreloader binary is loaded and then started from
+#
+# On H4 this number is base of ram + 48MB (permitting 48MB core images)
+# this number is pretty arbitrary and may be raised higher into ram
+# if necessary as long as the corresponding change is also made to
+# KCoreLoaderAddress in variant_bootstrap.inc
+#
+LINKBASE = 0x83000000
+
+
+
+ARMASM_OUT := $(shell armasm 2>&1)
+ARMASM_OUT_4 := $(word 4,$(ARMASM_OUT))
+
+# Select the toolchain: ARM RVCT, then GCC
+
+# Use GCC toolchain if no other is available
+TOOLVER := GCC
+RVCTSTR := $(strip $(findstring RVCT, $(ARMASM_OUT_4)))
+ifeq "$(RVCTSTR)" "RVCT"
+        TOOLVER := RVCT
+        OP := --
+        OB := o
+endif
+
+# Build up logical TRUE defines
+ifeq "$(USE_MMU)" "TRUE"
+        ASM_TRUE_MACROS += USE_MMU
+endif 
+
+ifeq "$(WRITE_TIMINGS)" "TRUE"
+        ASM_TRUE_MACROS += WRITE_TIMINGS
+endif 
+
+ifeq "$(DUMP_PAGE_TABLES)" "TRUE"
+        ASM_TRUE_MACROS += DUMP_PAGE_TABLES
+endif 
+
+# Build up logical FALSE defines
+ifeq "$(USE_MMU)" "FALSE"
+        ASM_FALSE_MACROS += USE_MMU
+endif 
+
+ifeq "$(WRITE_TIMINGS)" "FALSE"
+        ASM_FALSE_MACROS += WRITE_TIMINGS
+endif 
+
+ifeq "$(DUMP_PAGE_TABLES)" "FALSE"
+        ASM_FALSE_MACROS += DUMP_PAGE_TABLES
+endif 
+
+#Arm RVCT tools
+ifeq "$(TOOLVER)" "RVCT"
+        ASM_TRUE_MACROS += USE_CXSF
+        ASM := armasm
+        LINK := armlink
+        FROMELF := fromelf
+        CPP := armcc
+
+        OBJEXT := o
+        INCEXT := inc
+
+        ARMCCFLAGS := --arm -c -Otime --cpp
+        ARMCCFLAGS := $(ARMCCFLAGS) $(foreach dir,$(GENINCPATH),$(join -I, $(dir)))
+        ARMCCFLAGS := $(ARMCCFLAGS) -DEKA2
+        ARMCCFLAGS := $(ARMCCFLAGS) -DSYMBIAN_SUPPORT_UNISTORE2
+
+        ARMCCFLAGS := $(ARMCCFLAGS) --preinclude $(EPOCROOT)epoc32/include/rvct/rvct.h
+
+	  ifdef MACRO
+	  ARMCCFLAGS := $(ARMCCFLAGS) -D$(MACRO)
+	  endif
+	  
+        ifeq "$(CFG)" "UDEB"
+        ARMCCFLAGS := $(ARMCCFLAGS) -D_DEBUG
+        endif
+
+        ASM_TRUE_MACRO_CMD := $(foreach macro,$(ASM_TRUE_MACROS),$(OP)predefine "$(macro) SETL {TRUE}")
+        ASM_FALSE_MACRO_CMD := $(foreach macro,$(ASM_FALSE_MACROS),$(OP)predefine "$(macro) SETL {FALSE}")
+        ASM_LINKBASE_MACRO := $(OP)predefine "_LINKBASE_ SETA $(LINKBASE)"
+
+        AFLAGS := -g $(OP)keep $(ASM_TRUE_MACRO_CMD) $(ASM_FALSE_MACRO_CMD) $(ASM_LINKBASE_MACRO) -I$(BUILDLOC) $(foreach dir,$(GENINCPATH),$(join -I, $(dir)))
+        LFLAGS := $(OP)entry BootEntry $(OP)ro-base $(LINKBASE) $(OP)FIRST BootEntry $(OP)map
+        SYMOPT := $(OP)symdefs
+        ASMTYP := ARMASM
+        LINKFILE :=
+
+        define do_compile
+                $(CPP) $(ARMCCFLAGS) $< -o $@
+        endef
+        define do_h2inc
+                perl $(EPOCROOT)epoc32/tools/h2inc.pl $< $@ ARMASM
+        endef
+        define do_asm
+                $(ASM) $(AFLAGS) -$(OB) $@ $(OP)LIST $(join $(basename $@),.lst) $<
+        endef
+        define do_link
+                $(LINK) $(LFLAGS) -$(OB) $@ $(FULLOBJECTS)
+        endef
+        define do_strip
+                $(FROMELF) $(OP)bin $(OP)output $@ $<
+        endef
+endif
+
+
+#GCC build options
+ifeq "$(TOOLVER)" "GCC"
+        ASM := as
+        AFLAGS := -mapcs-32 -R -n -I$(BUILDLOC)
+
+        ASM_TRUE_MACRO_CMD := $(foreach macro,$(ASM_TRUE_MACROS),--defsym $(macro)=1)
+        ASM_FALSE_MACRO_CMD := $(foreach macro,$(ASM_FALSE_MACROS),--defsym $(macro)=0)
+        ASM_LINKBASE_MACRO := --defsym _LINKBASE_=$(LINKBASE)
+
+        LINKFLAGS = -n --section-alignment 4 --file-alignment 2 -no-whole-archive
+        GCCFLAGS=-march=armv4 -nostdinc -pipe -c -Wall -Wno-ctor-dtor-privacy -Wno-unknown-pragmas
+        GCCFLAGS := $(GCCFLAGS) $(foreach dir,$(GENINCPATH),$(join -I, $(dir)))
+        GCCDEFS = -D__SYMBIAN32__ -D__GCC32__ -D__EPOC32__ -D__MARM__ -D__MARM_ARM4__ -DEKA2 -DSYMBIAN_SUPPORT_UNISTORE2
+        ifeq "$(CFG)" "UDEB"
+        GCC = gcc -x c++ -g -O2 $(GCCFLAGS) -D_DEBUG -D_UNICODE $(GCCDEFS)
+        else
+        GCC = gcc -x c++ -s -fomit-frame-pointer -O2 $(GCCFLAGS) -DNDEBUG -D_UNICODE $(GCCDEFS)
+        endif
+
+        LINKFILE = $(SPECSRCDIR)/coreldr.lnk
+        OBJEXT := o
+        INCEXT := ginc
+
+        PROCESS_INCLUDES := 1
+        define do_compile
+                $(GCC) -o $@ $<
+        endef
+        define do_h2inc
+                perl $(EPOCROOT)epoc32/tools/h2inc.pl $< $@ AS
+                perl $(EPOCROOT)epoc32/tools/armasm2as.pl $@ $(join $(basename $@),.ginc)
+        endef
+        define do_includes
+                perl $(EPOCROOT)epoc32/tools/armasm2as.pl $< $@
+        endef
+        define do_asm
+                perl $(EPOCROOT)epoc32/tools/armasm2as.pl $< $(join $(basename $@),.s)
+                $(AS) $(AFLAGS) $(ASM_TRUE_MACRO_CMD) $(ASM_FALSE_MACRO_CMD) $(ASM_LINKBASE_MACRO) -o $@ $(join $(basename $@),.s)
+        endef
+        define do_strip
+                strip -O binary -o "$(TARGET)" "$(TMPTARGET)"
+                echo Built $(TARGET)
+        endef
+        define do_link
+                ld -o "$(TMPTARGET)"  --start $(FULLOBJECTS) --script=$(LINKFILE)
+        endef
+endif
+
+
+#CPP source processing
+FULLCPPSOURCE := $(addprefix $(GENSRCDIR)/,$(GENCPPSOURCE))
+
+#Header processing
+FULLHEADERS := $(addprefix $(GENSRCDIR)/,$(HEADERS))
+FULLSPECHEADERS := $(addprefix $(VARIANTINC)/,$(SPECHEADERS))
+
+FULLVHEADERS := $(addprefix $(GENDRIVERINC)/,$(VHEADERS))
+FULLBUILTINCLUDES := $(addprefix $(BUILDLOC)/,$(BUILTINCLUDES))
+$(FULLBUILTINCLUDES) : $(FULLVHEADERS)
+	$(do_h2inc)
+
+FULLVHEADERS2 := $(addprefix $(VARIANTINC)/,$(SPECHEADERS))
+FULLBUILTINCLUDES2 := $(addprefix $(BUILDLOC)/,$(BUILTINCLUDES2))
+$(FULLBUILTINCLUDES2) : $(FULLVHEADERS2)
+	$(do_h2inc)
+
+#object names
+GENCPPOBJECTS := $(foreach f,$(GENCPPSOURCE),$(basename $(f)).$(OBJEXT))
+FULLGENCPPOBJECTS := $(addprefix $(BUILDLOC)/,$(GENCPPOBJECTS))
+
+XSRCPPOBJECTS := $(foreach f,$(XSRCPPSOURCE),$(basename $(f)).$(OBJEXT))
+FULLXSRCPPOBJECTS := $(addprefix $(BUILDLOC)/,$(XSRCPPOBJECTS))
+
+ASMOBJECTS := $(foreach f,$(ASMSOURCE),$(basename $(f)).$(OBJEXT))
+FULLASMOBJECTS := $(addprefix $(BUILDLOC)/,$(ASMOBJECTS))
+
+GENASMOBJECTS := $(foreach f,$(GENASMSOURCE),$(basename $(f)).$(OBJEXT))
+FULLGENASMOBJECTS := $(addprefix $(BUILDLOC)/,$(GENASMOBJECTS))
+
+FULLOBJECTS := $(FULLASMOBJECTS) $(FULLGENASMOBJECTS) $(FULLGENCPPOBJECTS) $(FULLXSRCPPOBJECTS)
+
+ifdef PROCESS_INCLUDES
+
+GCCSRC := $(addprefix $(BUILDLOC)/,$(SRC))
+
+#Creation of headers
+FULLINCLUDES := $(foreach f,$(INCLUDES),$(basename $(f)).$(INCEXT))
+FULLINCLUDES := $(addprefix $(BUILDLOC)/,$(FULLINCLUDES))
+
+$(FULLINCLUDES) : $(BUILDLOC)/%.$(INCEXT) : %.inc
+	$(do_includes)
+
+FULLBLDINCLUDES := $(foreach f,$(BLDINCLUDES),$(basename $(f)).$(INCEXT))
+FULLBLDINCLUDES := $(addprefix $(BUILDLOC)/,$(FULLBLDINCLUDES))
+$(FULLBLDINCLUDES) : $(BUILDLOC)/%.$(INCEXT) : %.inc
+	$(do_includes)
+
+FULLPLATINCLUDES := $(foreach f,$(PLATINCLUDES),$(basename $(f)).$(INCEXT))
+FULLPLATINCLUDES := $(addprefix $(BUILDLOC)/,$(FULLPLATINCLUDES))
+$(FULLPLATINCLUDES) : $(BUILDLOC)/%.$(INCEXT) : %.inc
+	$(do_includes)
+
+FULLGENINCLUDES := $(foreach f,$(GENINCLUDES),$(basename $(f)).$(INCEXT))
+FULLGENINCLUDES := $(addprefix $(BUILDLOC)/,$(FULLGENINCLUDES))
+$(FULLGENINCLUDES) : $(BUILDLOC)/%.$(INCEXT) : %.inc
+	$(do_includes)
+
+else
+FULLINCLUDES:= $(addprefix $(SPECSRCDIR)/,$(INCLUDES))
+FULLPLATINCLUDES:= $(addprefix $(PLATSRCDIR)/,$(PLATINCLUDES))
+FULLGENINCLUDES:= $(addprefix $(GENSRCDIR)/,$(GENINCLUDES))
+FULLBLDINCLUDES:= $(addprefix $(H2BLDDIR)/,$(BLDINCLUDES))
+
+#Arm RVCT specifics here
+
+endif
+
+
+#Link
+$(TMPTARGET) : $(FULLOBJECTS)
+	$(do_link)
+
+#strip
+$(TARGET) : $(TMPTARGET)
+	$(do_strip)
+
+#CPP objects
+$(FULLGENCPPOBJECTS) : $(BUILDLOC)/%.$(OBJEXT) : $(GENSRCDIR)/%.cpp $(FULLHEADERS) $(FULLSPECHEADERS)
+	$(do_compile)
+
+$(FULLXSRCPPOBJECTS) : $(BUILDLOC)/%.$(OBJEXT) : $(XSRSRCDIR)/%.cpp $(FULLHEADERS) $(FULLSPECHEADERS)
+	$(do_compile)
+
+#Asm objects
+$(FULLGENASMOBJECTS) : $(BUILDLOC)/%.$(OBJEXT) : $(GENSRCDIR)/$(GENASMSOURCE) $(FULLINCLUDES) $(FULLBUILTINCLUDES) $(FULLBUILTINCLUDES2) $(FULLBUILTINCLUDES3) $(FULLDRIVERINCLUDES) $(FULLARMINCLUDES) $(FULLBLDINCLUDES) $(FULLGENINCLUDES) $(FULLPLATINCLUDES)
+	$(do_asm)
+
+$(FULLASMOBJECTS) : $(BUILDLOC)/%.$(OBJEXT) : $(SPECSRCDIR)/$(ASMSOURCE) $(FULLINCLUDES) $(FULLBUILTINCLUDES) $(FULLBUILTINCLUDES2) $(FULLBLDINCLUDES) $(FULLGENINCLUDES) $(FULLPLATINCLUDES)
+	$(do_asm)
+
+# make the work directories
+$(TARGETDIR) :
+	$(call ifnotexistd,"$(TARGETDIR)")
+
+$(BUILDLOC) :
+	$(call ifnotexistd,"$(BUILDLOC)")
+
+
+
+MAKMAKE :
+	echo Nothing to do
+
+FREEZE :
+	echo Nothing to do
+
+LIB :
+	echo Nothing to do
+
+CLEANLIB :
+	echo Nothing to do
+
+RESOURCE :
+	echo Nothing to do
+
+FINAL :
+	echo Nothing to do
+
+BLD SAVESPACE : $(TARGETDIR) $(BUILDLOC) $(TARGET)
+
+RELEASABLES :
+	@echo "$(TARGET)"
+
+CLEAN :
+	-$(ERASE) $(call slash2generic,"$(TARGET)") 
+	-$(ERASE) $(call slash2generic,"$(BUILDLOC)/*.*") 
+#	-$(ERASE) "$(TARGET)"
+#	-$(ERASE) "$(BUILDLOC)/*.*"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/base/omap3_restricted_coreldr.xml	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?> 
+<build xmlns="http://symbian.com/xml/build" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symbian.com/xml/build build/2_0.xsd">
+
+<!--  Extension interfaces : replacements for Template Extension Makefiles 
+  --> 
+
+ <interface name="base.omap3_restricted_coreldr" extends="Symbian.KernelFLM" flm="omap3_restricted_coreldr.flm">
+  <param name="VARIANT_PATH" />
+  <param name="NAME" />
+  <param name="INC_PATH" />
+  <param name="MACRO" default=''/>
+  <param name="INCLUDES" default='' />
+ </interface>
+
+</build>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/converged-comms/createcommdbs.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,20 @@
+# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for PDR generation
+#
+
+platform	win32
+makefile 	gnumake
+techstream	converged-comms
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/converged-comms/createcommdbs.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,50 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Envoke CED to create correct CommDB
+# 
+#
+
+do_nothing :
+
+
+#
+# The targets invoked by abld 
+#
+
+MAKMAKE : do_nothing
+
+RESOURCE : do_nothing
+
+SAVESPACE : BLD
+
+BLD : do_nothing
+
+FREEZE : do_nothing
+
+LIB : do_nothing
+
+CLEANLIB : do_nothing
+
+FINAL : 
+	perl $(EXTENSION_ROOT)/createcommdbs.pl --command=build --platform=$(PLATFORM) --variant=$(CFG) --sourceDir=$(EXTENSION_ROOT)/$(SRCDIR) --platsec
+
+CLEAN : 
+	perl $(EXTENSION_ROOT)/createcommdbs.pl --command=clean --platform=$(PLATFORM) --variant=$(CFG) --sourceDir=$(EXTENSION_ROOT)/$(SRCDIR) --platsec
+
+RELEASABLES : 
+	@perl $(EXTENSION_ROOT)/createcommdbs.pl --command=releasables --platform=$(PLATFORM) --variant=$(CFG) --sourceDir=$(EXTENSION_ROOT)/$(SRCDIR) --platsec
+	
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/converged-comms/installdefaultcommdb.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,20 @@
+# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for PDR generation
+#
+
+platform	win32
+makefile 	gnumake
+techstream	converged-comms
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/converged-comms/installdefaultcommdb.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,48 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Envoke CED to install correct CommDB
+#
+
+do_nothing :
+	rem do_nothing
+
+#
+# The targets invoked by abld 
+#
+
+MAKMAKE : do_nothing
+
+RESOURCE : do_nothing
+
+SAVESPACE : BLD
+
+BLD : do_nothing
+
+FREEZE : do_nothing
+
+LIB : do_nothing
+
+CLEANLIB : do_nothing
+
+FINAL : 
+	perl $(EXTENSION_ROOT)/installdefaultcommdb.pl --command=build --platform=$(PLATFORM) --variant=$(CFG) --platsec
+
+CLEAN : 
+	perl $(EXTENSION_ROOT)/installdefaultcommdb.pl --command=clean --platform=$(PLATFORM) --variant=$(CFG) --platsec
+
+RELEASABLES : 
+	@perl $(EXTENSION_ROOT)/installdefaultcommdb.pl --command=releasables --platform=$(PLATFORM) --variant=$(CFG) --platsec
+	
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/graphics/gen_khronos_cpp_from_hdr.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,19 @@
+# Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for the gen_khronos_cpp_from_hdr extension template
+#
+
+platform	win32
+makefile 	gnumake
+techstream	graphics
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/graphics/gen_khronos_cpp_from_hdr.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,46 @@
+# Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+# To ensure that EPOCROOT always ends with a forward slash
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+SOURCE_HDR=$(SOURCES)
+TARGET_CPP=$(TARGET)
+CONVERSION_SCRIPT = $(EPOCROOT)epoc32$/tools$/conv_khronos_hdr_to_cpp.pl
+
+MAKMAKE : $(TARGET_CPP)
+
+FREEZE :
+
+LIB :
+
+CLEANLIB :
+
+RESOURCE :
+
+FINAL :
+
+BLD SAVESPACE : $(TARGET_CPP)
+
+RELEASABLES :
+
+CLEAN :
+	perl $(CONVERSION_SCRIPT) $(SOURCE_HDR) $(TARGET_CPP) delete
+
+$(TARGET_CPP): $(SOURCE_HDR)
+	perl $(CONVERSION_SCRIPT) $(SOURCE_HDR) $(TARGET_CPP) create
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/graphics/gen_khronos_openvg_cpp_from_hdr.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,19 @@
+# Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for the gen_khronos_openvg_cpp_from_hdr extension template
+#
+
+platform	win32
+makefile 	gnumake
+techstream	graphics
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/graphics/gen_khronos_openvg_cpp_from_hdr.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,46 @@
+# Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+# To ensure that EPOCROOT always ends with a forward slash
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+SOURCE_HDR=$(SOURCES)
+TARGET_CPP=$(TARGET)
+CONVERSION_SCRIPT = $(EPOCROOT)epoc32$/tools$/conv_khronos_openvg_hdr_to_cpp.pl
+
+MAKMAKE : $(TARGET_CPP)
+
+FREEZE :
+
+LIB :
+
+CLEANLIB :
+
+RESOURCE :
+
+FINAL :
+
+BLD SAVESPACE : $(TARGET_CPP)
+
+RELEASABLES :
+
+CLEAN :
+	perl $(CONVERSION_SCRIPT) $(SOURCE_HDR) $(TARGET_CPP) delete
+
+$(TARGET_CPP): $(SOURCE_HDR)
+	perl $(CONVERSION_SCRIPT) $(SOURCE_HDR) $(TARGET_CPP) create
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/graphics/genpdrs.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,20 @@
+# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for PDR generation
+#
+
+platform	win32
+makefile 	gnumake
+techstream	graphics
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/graphics/genpdrs.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,72 @@
+# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Build PDR files
+# 
+#
+
+
+# To ensure that EPOCROOT always ends with a forward slash
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+
+ifeq ($(PLATFORM),WINS) 
+        TARGETDIR:=$(EPOCROOT)epoc32/release/$(PLATFORM_PATH)/$(CFG_PATH)/z/resource/printers
+else
+ifeq ($(PLATFORM),WINSCW)
+        TARGETDIR:=$(EPOCROOT)epoc32/release/$(PLATFORM_PATH)/$(CFG_PATH)/z/resource/printers
+else
+        TARGETDIR:=$(EPOCROOT)epoc32/data/z/resource/printers
+endif
+endif
+
+$(TARGETDIR) :
+	$(call createdir,"$(TARGETDIR)")
+
+PDR=$(TARGETDIR)/$(PRINTER).pdr
+
+$(PDR) : $(EXTENSION_ROOT)/../$(PRINTER_DIR)/$(PRINTER).PD
+	$(EPOCROOT)epoc32/tools/pdrtran '$<' '$@'
+
+do_nothing:
+# do nothing
+
+#
+# The targets invoked by bld...
+#
+
+MAKMAKE : do_nothing
+
+BLD : $(TARGETDIR) $(PDR)
+
+SAVESPACE : BLD
+
+RESOURCE : BLD
+
+CLEAN :
+	-$(ERASE) $(PDR)
+
+FREEZE : do_nothing
+
+LIB : do_nothing
+
+CLEANLIB : do_nothing
+
+FINAL : do_nothing
+
+RELEASABLES : 
+	@echo $(PDR)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/security/upsserver.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,19 @@
+# Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for the GNU ups server extension template
+#
+
+platform	win32
+makefile 	gnumake
+techstream	security
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/security/upsserver.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,74 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+ZDIR:=$(EPOCROOT)epoc32/release/$(PLATFORM_PATH)/$(CFG_PATH)/z
+
+ifeq "$(PLATFORM)" "WINSCW"
+COPIED_EXE=$(ZDIR)/sys/bin/upsserver.exe
+endif
+
+
+do_nothing:
+	
+
+#
+# The targets invoked by bld...
+#
+
+MAKMAKE : do_nothing
+
+BLD : do_nothing
+
+ifdef COPIED_EXE
+#
+# Rules to create and package winscw Z drive upsserver.exe copy
+#
+.PHONY: FINAL
+FINAL : $(COPIED_EXE)
+
+$(COPIED_EXE) : $(EPOCROOT)epoc32/release/$(PLATFORM_PATH)/$(CFG_PATH)/upsserver.exe
+	echo Copying upsserver.exe to emulator Z drive so the UPS romstub works.
+	$(CP)  $(call slash2generic,$<) $(call slash2generic,$@)
+
+CLEAN : 
+	-$(ERASE)  $(COPIED_EXE) 
+
+RELEASABLES : 
+	 echo $(COPIED_EXE)
+
+else
+
+FINAL : do_nothing
+CLEAN : do_nothing
+RELEASABLES : do_nothing
+
+endif
+
+SAVESPACE : BLD
+
+FREEZE : do_nothing
+
+LIB : do_nothing
+
+CLEANLIB : do_nothing
+
+RESOURCE : do_nothing
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/syslibs/conversiontable.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,20 @@
+# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for conversiontable use
+#
+
+platform	win32
+makefile 	gnumake
+techstream	syslibs
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/syslibs/conversiontable.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,75 @@
+# Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+# To ensure that EPOCROOT always ends with a forward slash
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+
+BUILD_DIR = $(call generated,generated/fatcharsetconv)
+	
+
+SOURCE_DIR = $(EXTENSION_ROOT)/../unicodeTables
+
+TARGET= $(BUILD_DIR)/cp950.cpp \
+	$(BUILD_DIR)/cp949.cpp \
+	$(BUILD_DIR)/cp936.cpp \
+	$(BUILD_DIR)/cp932.cpp \
+	$(BUILD_DIR)/cp874.cpp \
+	$(BUILD_DIR)/cp1258.cpp \
+	$(BUILD_DIR)/cp1257.cpp \
+	$(BUILD_DIR)/cp1256.cpp \
+	$(BUILD_DIR)/cp1255.cpp \
+	$(BUILD_DIR)/cp1254.cpp \
+	$(BUILD_DIR)/cp1253.cpp \
+	$(BUILD_DIR)/cp1252.cpp \
+	$(BUILD_DIR)/cp1251.cpp \
+	$(BUILD_DIR)/cp1250.cpp
+
+$(BUILD_DIR):
+	$(call createdir,$(BUILD_DIR)) 
+
+$(TARGET):$(BUILD_DIR)/cp%.cpp : $(SOURCE_DIR)/CP%.txt $(BUILD_DIR)
+	perl $(EXTENSION_ROOT)/FatConversionTable.pl $< $@
+
+
+do_nothing:
+	@echo do nothing
+
+
+MAKMAKE : $(TARGET)
+
+BLD : do_nothing
+
+SAVESPACE : do_nothing
+
+FREEZE : do_nothing
+
+LIB : do_nothing
+
+CLEANLIB: do_nothing
+
+RESOURCE : do_nothing
+
+FINAL : do_nothing
+
+# Do not echo 'do nothing'.
+# Do not specify any 'epoc32/build' files, unless they are built into the CBR. 
+RELEASABLES :
+
+CLEAN :
+	-$(ERASE) $(TARGET)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/syslibs/fm_copyfile_to_winscw_zdrive.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,19 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# fm_copyfiles_to_winscw_zdrive.meta
+#
+
+platform	winscw
+makefile	gnumake
+techstream	syslibs
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/syslibs/fm_copyfile_to_winscw_zdrive.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,71 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# fm_copyfiles_to_winscw_zdrive.mk
+# Arguments to makefile are:
+# option FILE_TO_COPY <src/dest_filename_without_any_path>
+# option SRC_PATH     <epocroot_starting_path>
+# option DEST_PATH    <emulator_zdrive_path_starting_with_a_z>
+# Job of the this makefile is to copy the specified file to 
+# the epoc32/release/winscw/CFG/z/... folder for the current config e.g. UREL or
+# UDEB.
+# 
+#
+
+
+# To ensure that EPOCROOT always ends with a forward slash
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+ 
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+
+SOURCE_FILE=$(SRC_PATH)/$(FILE_TO_COPY)
+TARGET_DIR=$(EPOCROOT)epoc32/release/winscw/$(CFG_PATH)/$(DEST_PATH)
+TARGET_FILE=$(TARGET_DIR)/$(FILE_TO_COPY)
+
+DO_NOTHING : 
+	@echo do nothing
+
+$(TARGET_DIR) : 
+	$(MKDIR) $(call slash2generic,$(TARGET_DIR))
+	
+#
+# The targets invoked by abld...
+#
+
+MAKMAKE : DO_NOTHING
+
+BLD : DO_NOTHING
+
+SAVESPACE : DO_NOTHING
+
+FREEZE : DO_NOTHING
+
+LIB : DO_NOTHING
+
+CLEANLIB : DO_NOTHING
+
+RESOURCE : DO_NOTHING
+
+CLEAN : 
+	@echo Erasing $(call slash2generic,$(TARGET_FILE))
+	-$(ERASE) $(call slash2generic,$(TARGET_FILE))
+
+RELEASABLES : 
+	@echo $(TARGET_FILE)
+
+FINAL : $(TARGET_DIR)
+	@echo Copying $(call slash2generic,$(SOURCE_FILE)) to $(call slash2generic,$(TARGET_FILE))
+	$(CP) $(call slash2generic,$(SOURCE_FILE)) $(call slash2generic,$(TARGET_FILE))
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/syslibs/generate_cpp.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,20 @@
+# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for cnvtool invocation
+#
+
+platform	win32
+makefile 	gnumake
+techstream	syslibs
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/syslibs/generate_cpp.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,112 @@
+# Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+# To ensure that EPOCROOT always ends with a forward slash
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+
+ifneq ($(FIRST_PASS),completed)
+
+FIRST_PASS=completed
+
+SOURCE_DIRECTORY=$(EXTENSION_ROOT)/../data
+
+TOOLS=\
+$(EPOCROOT)epoc32/tools/PARSER.pm \
+$(EPOCROOT)epoc32/tools/WRITER.pm \
+$(EPOCROOT)epoc32/tools/cnvtool.pl
+
+TARGET_DIRECTORY:=$(call generated,generatedcpp/charconv)
+TARGET_DIRECTORY2:=$(EPOCROOT)epoc32/tools/charconv
+
+endif
+
+
+ifeq ($(TYPE),dat)
+
+TARGET_FILES2=$(patsubst %,$(TARGET_DIRECTORY2)/%.dat,$(STEMS))
+
+$(TARGET_FILES2) : $(TARGET_DIRECTORY2)/%.dat: $(SOURCE_DIRECTORY)/%.txt $(SOURCE_DIRECTORY)/%$(CTL_EXT).ctl $(EXTRA_DEP) $(TOOLS)
+	@$(call createdir,"$(TARGET_DIRECTORY2)")
+	perl $(EPOCROOT)epoc32/tools/cnvtool.pl $(subst .txt,$(CTL_EXT).ctl,$<) $< $@  -flattenHashAndSave $(foreach PARAM,$(EXTRA_PARAMS),"$(PARAM)" )
+
+else
+
+# This is required by parellel build
+
+TARGET_FILES=$(patsubst %,$(TARGET_DIRECTORY)/g_%.cpp,$(STEMS)) 
+
+$(TARGET_FILES) : $(TARGET_DIRECTORY)/g_%.cpp: $(SOURCE_DIRECTORY)/%.txt $(SOURCE_DIRECTORY)/%$(CTL_EXT).ctl $(EXTRA_DEP) $(TOOLS)
+	@$(call createdir,"$(TARGET_DIRECTORY)")
+	@$(call createdir,"$(TARGET_DIRECTORY2)")
+	perl $(EPOCROOT)epoc32/tools/cnvtool.pl $(subst .txt,$(CTL_EXT).ctl,$<) $< $@ -generateSourceCode $(foreach PARAM,$(EXTRA_PARAMS),"$(PARAM)" )
+
+endif
+
+
+
+ifneq ($(TYPE),all)
+
+DO_NOTHING :
+# do nothing
+
+  # the targets below are the public ones
+
+MAKMAKE : $(TARGET_FILES2) $(TARGET_FILES)
+
+BLD : $(TARGET_FILES2) $(TARGET_FILES)
+
+SAVESPACE : BLD
+
+FREEZE : DO_NOTHING
+
+LIB : DO_NOTHING
+
+CLEANLIB : DO_NOTHING
+	
+RESOURCE : DO_NOTHING
+
+CLEAN :
+	-$(ERASE) $(TARGET_FILES2) $(TARGET_FILES)
+
+RELEASABLES : DO_NOTHING
+
+FINAL : DO_NOTHING
+
+endif
+
+
+
+ifeq ($(TYPE),dat)
+
+RELEASABLES : 
+	$(call formatreleasables,$(TARGET_FILES2))
+
+endif
+
+
+
+ifeq ($(TYPE),all)
+
+TYPE=dat
+TARGET_FILES2=$(TARGET_FILES)
+
+include $(call include)
+
+endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/syslibs/generate_snm.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,20 @@
+# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for snmtool use
+#
+
+platform	win32
+makefile 	gnumake
+techstream	syslibs
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/syslibs/generate_snm.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,77 @@
+# Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# basic_snm.mk
+# 
+#
+
+# To ensure that EPOCROOT always ends with a forward slash
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+
+ifeq ($(PLATFORM),WINS) 
+        TARGET_DIRECTORY := $(EPOCROOT)epoc32/release/$(PLATFORM_PATH)/$(CFG_PATH)/z/resource/charconv
+else 
+ifeq ($(PLATFORM),WINSCW)
+        TARGET_DIRECTORY := $(EPOCROOT)epoc32/release/$(PLATFORM_PATH)/$(CFG_PATH)/z/resource/charconv
+else
+        TARGET_DIRECTORY := $(EPOCROOT)epoc32/data/z/resource/charconv
+endif
+endif
+
+SOURCE_DIRECTORY=$(EXTENSION_ROOT)
+
+TARGET_FILE=\
+        $(TARGET_DIRECTORY)/$(TARGET)
+
+TOOLS=\
+        $(EPOCROOT)epoc32/tools/PARSER.pm \
+        $(EPOCROOT)epoc32/tools/WRITER.pm \
+        $(EPOCROOT)epoc32/tools/snmtool.pl
+
+$(TARGET_DIRECTORY) :
+	@$(call createdir,"$@")
+
+$(TARGET_DIRECTORY)/basic.snm : $(SOURCE_DIRECTORY)/$(SOURCES) $(TOOLS)
+	perl $(EPOCROOT)epoc32/tools/snmtool.pl $(SOURCE_DIRECTORY)/$(SOURCES) $@
+
+DO_NOTHING :
+	@echo do nothing
+
+# the targets below are the public ones
+
+MAKMAKE : DO_NOTHING
+
+BLD : $(TARGET_DIRECTORY) $(TARGET_FILE)
+
+SAVESPACE : BLD
+
+FREEZE : DO_NOTHING
+
+LIB : DO_NOTHING
+
+CLEANLIB : DO_NOTHING
+
+RESOURCE : DO_NOTHING
+
+CLEAN : 
+	-$(ERASE) $(TARGET_FILE)
+
+RELEASABLES : 
+	@echo $(TARGET_FILE)
+
+FINAL : DO_NOTHING
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/syslibs/test/bafl_copytestfiles.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,19 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for bafl_copytestfiles use
+#
+
+platform	win32
+makefile 	gnumake
+techstream	syslibs
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/syslibs/test/bafl_copytestfiles.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,74 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Copy test files to test sortbytable functionality.
+# 
+#
+
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+ifeq ($(findstring WINS,$(PLATFORM)),WINS)
+EPOCDATADIR=$(EPOCROOT)epoc32/release/$(PLATFORM_PATH)/$(CFG_PATH)
+else
+EPOCDATADIR=$(EPOCROOT)epoc32/data
+endif
+
+TARGETDIR=$(EPOCDATADIR)/z/system/documents/baflsortbytabletest
+SOURCEDIR=$(EXTENSION_ROOT)/../tsrc
+	
+COPYFILES :
+	$(CP) $(call slash2generic,$(SOURCEDIR)/ADDCERT.RSC $(TARGETDIR)/addcert.rsc)
+	$(CP) $(call slash2generic,$(SOURCEDIR)/HELP.RSC $(TARGETDIR)/help.rsc)
+	$(CP) $(call slash2generic,$(SOURCEDIR)/MSGEDITOR.RSC $(TARGETDIR)/msgeditor.rsc)
+	$(CP) $(call slash2generic,$(SOURCEDIR)/SMLPROGRESS.RSC $(TARGETDIR)/smlprogress.rsc)
+
+$(TARGETDIR) :
+	$(call createdir,"$@")
+	
+DO_NOTHING :
+	@echo do nothing
+	
+#
+# The targets invoked by bld...
+#
+
+BLD : $(TARGETDIR) COPYFILES
+
+CLEAN :  
+	-$(ERASE) $(call slash2generic,$(TARGETDIR)/addcert.rsc)
+	-$(ERASE) $(call slash2generic,$(TARGETDIR)/help.rsc)
+	-$(ERASE) $(call slash2generic,$(TARGETDIR)/msgeditor.rsc)
+	-$(ERASE) $(call slash2generic,$(TARGETDIR)/smlprogress.rsc)
+	
+RELEASABLES :
+	@echo $(TARGETDIR)/addcert.rsc
+	@echo $(TARGETDIR)/help.rsc
+	@echo $(TARGETDIR)/msgeditor.rsc
+	@echo $(TARGETDIR)/smlprogress.rsc
+ 
+MAKMAKE : DO_NOTHING
+
+SAVESPACE : DO_NOTHING
+
+RESOURCE : DO_NOTHING
+
+FREEZE : DO_NOTHING
+
+LIB : DO_NOTHING
+
+CLEANLIB : DO_NOTHING
+
+FINAL : DO_NOTHING
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/syslibs/test/bafl_resource_files.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,19 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for t_copytestfiles use
+#
+
+platform	win32
+makefile 	gnumake
+techstream	syslibs
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/syslibs/test/bafl_resource_files.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,205 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Copy test files to test sortbytable functionality.
+# 
+#
+
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+ifeq ($(findstring WINS,$(PLATFORM)),WINS)
+TARGET_DIRECTORY=$(EPOCROOT)epoc32/release/$(PLATFORM)/$(CFG)/z/system/data
+else
+TARGET_DIRECTORY=$(EPOCROOT)epoc32/data/z/system/data
+endif
+
+SOURCEDIR=$(EXTENSION_ROOT)/../tsrc
+
+$(TARGET_DIRECTORY) :
+	$(call createdir,"$@")
+
+TARGET_FILES=\
+	$(TARGET_DIRECTORY)/t_compressed_unicode_1.rsc $(EPOCROOT)epoc32\include\T_COMPRESSED_UNICODE_1.RSG \
+	$(TARGET_DIRECTORY)/t_compressed_unicode_2.rsc $(EPOCROOT)epoc32\include\T_COMPRESSED_UNICODE_2.RSG \
+	$(TARGET_DIRECTORY)/t_dictionary_compressed_versio_of_2.rsc \
+	$(TARGET_DIRECTORY)/t_calypso_test_resource_file_1.rsc \
+	$(TARGET_DIRECTORY)/t_notrscfile.rsc \
+	$(TARGET_DIRECTORY)/rscheader.bin \
+	$(TARGET_DIRECTORY)/newrscformat.rsc \
+
+$(TARGET_DIRECTORY)/t_compressed_unicode_1.rsc : $(SOURCEDIR)/T_COMPRESSED_UNICODE_1.RPP
+	@RCOMP.EXE -s$? -o$@ -h$(EPOCROOT)epoc32/include/T_COMPRESSED_UNICODE_1.RSG -u -{0x000eb205,*}
+$(EPOCROOT)epoc32/include/T_COMPRESSED_UNICODE_1.RSG : $(SOURCEDIR)/T_COMPRESSED_UNICODE_1.RPP
+	@RCOMP.EXE -s$? -o$(TARGET_DIRECTORY)/t_compressed_unicode_1.rsc -h$@ -u -{0x000eb205,*}
+
+$(TARGET_DIRECTORY)/t_compressed_unicode_2.rsc : $(SOURCEDIR)/T_COMPRESSED_UNICODE_2.RPP
+	@RCOMP.EXE -s$? -o$@ -h$(EPOCROOT)epoc32/include/T_COMPRESSED_UNICODE_2.RSG -u
+$(EPOCROOT)epoc32/include/T_COMPRESSED_UNICODE_2.RSG : $(SOURCEDIR)/T_COMPRESSED_UNICODE_2.RPP
+	@RCOMP.EXE -s$? -o$(TARGET_DIRECTORY)/t_compressed_unicode_2.rsc -h$@ -u
+
+$(TARGET_DIRECTORY)/t_dictionary_compressed_versio_of_2.rsc : $(SOURCEDIR)/T_GENERATE_DICTIONARY_COMPRESSED_VERSION_OF_2.PL
+	@perl -w $(SOURCEDIR)/T_GENERATE_DICTIONARY_COMPRESSED_VERSION_OF_2.PL $(TARGET_DIRECTORY)/t_dictionary_compressed_versio_of_2.rsc
+
+$(TARGET_DIRECTORY)/t_calypso_test_resource_file_1.rsc : $(SOURCEDIR)/T_CALYPSO_COMPILED_RESOURCE_FILE_1.RSC
+	$(CP) $(call slash2generic,$(SOURCEDIR)/T_CALYPSO_COMPILED_RESOURCE_FILE_1.RSC $(TARGET_DIRECTORY)/t_calypso_test_resource_file_1.rsc)
+
+$(TARGET_DIRECTORY)/t_notrscfile.rsc  : $(SOURCEDIR)/T_NotRscFile.RSC
+	$(CP) $(call slash2generic,$(SOURCEDIR)/T_NotRscFile.RSC $(TARGET_DIRECTORY)/t_notrscfile.rsc)
+	
+$(TARGET_DIRECTORY)/rscheader.bin : 
+	$(CP) $(call slash2generic,$(SOURCEDIR)/RscHeader.Bin $(TARGET_DIRECTORY)/rscheader.bin)
+
+$(TARGET_DIRECTORY)/newrscformat.rsc :  $(SOURCEDIR)/RscHeader.Bin  $(SOURCEDIR)/RLETest.BMP $(TARGET_DIRECTORY)/TRSC.rsc
+	@BMCONV.EXE  $(SOURCEDIR)/16RAMC.MBM /c16$(SOURCEDIR)/RLETest.BMP
+	$(CP) $(call slash2generic,$(SOURCEDIR)/RscHeader.Bin)/b + $(call slash2generic,$(TARGET_DIRECTORY)/TRSC.rsc)/b + $(call slash2generic,$(SOURCEDIR)/16RAMC.MBM) /b $(call slash2generic,$(TARGET_DIRECTORY)/newrscformat.rsc)
+
+COPYFILES :
+	$(CP) $(call slash2generic,$(SOURCEDIR)/TRSC_Inv1.RSC $(TARGET_DIRECTORY)/trsc_inv1.rsc)
+	$(CP) $(call slash2generic,$(SOURCEDIR)/TRSC_Inv2.RSC $(TARGET_DIRECTORY)/trsc_inv2.rsc)
+	$(CP) $(call slash2generic,$(SOURCEDIR)/TRSC_Inv3.RSC $(TARGET_DIRECTORY)/trsc_inv3.rsc)
+	$(CP) $(call slash2generic,$(SOURCEDIR)/TRSC_Inv4.RSC $(TARGET_DIRECTORY)/trsc_inv4.rsc)
+	$(CP) $(call slash2generic,$(SOURCEDIR)/TRSC_Inv5.RSC $(TARGET_DIRECTORY)/trsc_inv5.rsc)
+	$(CP) $(call slash2generic,$(SOURCEDIR)/TRSC_Inv6.RSC $(TARGET_DIRECTORY)/trsc_inv6.rsc)
+	$(CP) $(call slash2generic,$(SOURCEDIR)/TRSC_Inv7.RSC $(TARGET_DIRECTORY)/trsc_inv7.rsc)
+	$(CP) $(call slash2generic,$(SOURCEDIR)/TRSC_Inv8.RSC $(TARGET_DIRECTORY)/trsc_inv8.rsc)
+	$(CP) $(call slash2generic,$(SOURCEDIR)/TRSC_Inv9.RSC $(TARGET_DIRECTORY)/trsc_inv9.rsc)
+	$(CP) $(call slash2generic,$(SOURCEDIR)/TRscCalypso_Inv10.RSC $(TARGET_DIRECTORY)/trsccalypso_inv10.rsc)
+	$(CP) $(call slash2generic,$(SOURCEDIR)/TRscCalypso_Inv11.RSC $(TARGET_DIRECTORY)/trsccalypso_inv11.rsc)
+	$(CP) $(call slash2generic,$(SOURCEDIR)/TRscCalypso_Inv12.RSC $(TARGET_DIRECTORY)/trsccalypso_inv12.rsc)
+	$(CP) $(call slash2generic,$(SOURCEDIR)/TRscComprU_Inv13.RSC $(TARGET_DIRECTORY)/trsccompru_inv13.rsc)
+	$(CP) $(call slash2generic,$(SOURCEDIR)/TRscComprU_Inv14.RSC $(TARGET_DIRECTORY)/trsccompru_inv14.rsc)
+	$(CP) $(call slash2generic,$(SOURCEDIR)/TRscComprU_Inv15.RSC $(TARGET_DIRECTORY)/trsccompru_inv15.rsc)
+	$(CP) $(call slash2generic,$(SOURCEDIR)/TRscCalypso_Inv16.RSC $(TARGET_DIRECTORY)/trsccalypso_inv16.rsc)
+	$(CP) $(call slash2generic,$(SOURCEDIR)/TRscCalypso_Inv17.RSC $(TARGET_DIRECTORY)/trsccalypso_inv17.rsc)
+	$(CP) $(call slash2generic,$(SOURCEDIR)/RscHeader.Bin)/b + $(call slash2generic,$(TARGET_DIRECTORY)/t_calypso_test_resource_file_1.rsc)/b $(call slash2generic,$(TARGET_DIRECTORY)/trscromcalypsocomprnewfmt.rsc)
+	$(CP) $(call slash2generic,$(SOURCEDIR)/Spi_ECom.spi $(TARGET_DIRECTORY)/spi_ecom.spi)
+	$(CP) $(call slash2generic,$(SOURCEDIR)/Spi_EComRsc1.RSC $(TARGET_DIRECTORY)/spi_ecomrsc1.rsc)
+	$(CP) $(call slash2generic,$(SOURCEDIR)/Spi_EComRsc2.RSC $(TARGET_DIRECTORY)/spi_ecomrsc2.rsc)
+	$(CP) $(call slash2generic,$(SOURCEDIR)/Spi_EComRsc3.RSC $(TARGET_DIRECTORY)/spi_ecomrsc3.rsc)
+	$(CP) $(call slash2generic,$(SOURCEDIR)/ECom-1-0.spi $(TARGET_DIRECTORY)/ecom-1-0.spi)
+	$(CP) $(call slash2generic,$(SOURCEDIR)/ECom-1-0.s02 $(TARGET_DIRECTORY)/ecom-1-0.s02)
+	$(CP) $(call slash2generic,$(SOURCEDIR)/ECom-2-0.spi $(TARGET_DIRECTORY)/ecom-2-0.spi)
+	$(CP) $(call slash2generic,$(SOURCEDIR)/ECom-2-0.s02 $(TARGET_DIRECTORY)/ecom-2-0.s02)
+	$(CP) $(call slash2generic,$(SOURCEDIR)/Spi_ECom-0-0.spi $(TARGET_DIRECTORY)/spi_ecom-0-0.spi)
+	$(CP) $(call slash2generic,$(SOURCEDIR)/Spi_ECom-1-0.spi $(TARGET_DIRECTORY)/spi_ecom-1-0.spi)
+	$(CP) $(call slash2generic,$(SOURCEDIR)/CECom-0-0.spi $(TARGET_DIRECTORY)/cecom-0-0.spi)
+	$(CP) $(call slash2generic,$(SOURCEDIR)/CECom-1-0.spi $(TARGET_DIRECTORY)/cecom-1-0.spi)
+	$(CP) $(call slash2generic,$(SOURCEDIR)/Spi_ECom_Case-0-0.spi $(TARGET_DIRECTORY)/spi_ecom_case-0-0.spi)
+	$(CP) $(call slash2generic,$(SOURCEDIR)/Spi_ECom_Case-1-0.spi $(TARGET_DIRECTORY)/spi_ecom_case-1-0.spi)
+
+
+DO_NOTHING :
+	@echo do nothing
+
+# the targets below are the public ones
+
+MAKMAKE : DO_NOTHING
+
+BLD : $(TARGET_DIRECTORY) $(TARGET_FILES) COPYFILES
+
+SAVESPACE : BLD
+
+FREEZE : DO_NOTHING
+
+LIB : DO_NOTHING
+
+CLEANLIB : DO_NOTHING
+
+RESOURCE : DO_NOTHING
+
+CLEAN : 
+	-$(ERASE) $(call slash2generic,$(TARGET_DIRECTORY)/t_compressed_unicode_1.rsc $(EPOCROOT)epoc32/include/t_compressed_unicode_1.rsg)
+	-$(ERASE) $(call slash2generic,$(TARGET_DIRECTORY)/t_compressed_unicode_2.rsc $(EPOCROOT)epoc32/include/t_compressed_unicode_2.rsg)
+	-$(ERASE) $(call slash2generic,$(TARGET_DIRECTORY)/t_dictionary_compressed_versio_of_2.rsc) 
+	-$(ERASE) $(call slash2generic,$(TARGET_DIRECTORY)/t_calypso_test_resource_file_1.rsc) 
+	-$(ERASE) $(call slash2generic,$(TARGET_DIRECTORY)/t_notrscfile.rsc) 
+	-$(ERASE) $(call slash2generic,$(TARGET_DIRECTORY)/rscheader.bin) 
+	-$(ERASE) $(call slash2generic,$(TARGET_DIRECTORY)/newrscformat.rsc) 
+	-$(ERASE) $(call slash2generic,$(TARGET_DIRECTORY)/trsc_inv1.rsc) 
+	-$(ERASE) $(call slash2generic,$(TARGET_DIRECTORY)/trsc_inv2.rsc) 
+	-$(ERASE) $(call slash2generic,$(TARGET_DIRECTORY)/trsc_inv3.rsc) 
+	-$(ERASE) $(call slash2generic,$(TARGET_DIRECTORY)/trsc_inv4.rsc) 
+	-$(ERASE) $(call slash2generic,$(TARGET_DIRECTORY)/trsc_inv5.rsc) 
+	-$(ERASE) $(call slash2generic,$(TARGET_DIRECTORY)/trsc_inv6.rsc) 
+	-$(ERASE) $(call slash2generic,$(TARGET_DIRECTORY)/trsc_inv7.rsc) 
+	-$(ERASE) $(call slash2generic,$(TARGET_DIRECTORY)/trsc_inv8.rsc) 
+	-$(ERASE) $(call slash2generic,$(TARGET_DIRECTORY)/trsc_inv9.rsc) 
+	-$(ERASE) $(call slash2generic,$(TARGET_DIRECTORY)/trsccalypso_inv10.rsc) 
+	-$(ERASE) $(call slash2generic,$(TARGET_DIRECTORY)/trsccalypso_inv11.rsc) 
+	-$(ERASE) $(call slash2generic,$(TARGET_DIRECTORY)/trsccalypso_inv12.rsc) 
+	-$(ERASE) $(call slash2generic,$(TARGET_DIRECTORY)/trsccompru_inv13.rsc) 
+	-$(ERASE) $(call slash2generic,$(TARGET_DIRECTORY)/trsccompru_inv14.rsc) 
+	-$(ERASE) $(call slash2generic,$(TARGET_DIRECTORY)/trsccompru_inv15.rsc) 
+	-$(ERASE) $(call slash2generic,$(TARGET_DIRECTORY)/trsccalypso_inv16.rsc) 
+	-$(ERASE) $(call slash2generic,$(TARGET_DIRECTORY)/trsccalypso_inv17.rsc) 
+	-$(ERASE) $(call slash2generic,$(TARGET_DIRECTORY)/trscromcalypsocomprnewfmt.rsc) 
+	-$(ERASE) $(call slash2generic,$(TARGET_DIRECTORY)/spi_ecom.spi) 
+	-$(ERASE) $(call slash2generic,$(TARGET_DIRECTORY)/spi_ecomrsc1.rsc) 
+	-$(ERASE) $(call slash2generic,$(TARGET_DIRECTORY)/spi_ecomrsc2.rsc) 
+	-$(ERASE) $(call slash2generic,$(TARGET_DIRECTORY)/spi_ecomrsc3.rsc) 
+	-$(ERASE) $(call slash2generic,$(TARGET_DIRECTORY)/ecom-1-0.spi)  
+	-$(ERASE) $(call slash2generic,$(TARGET_DIRECTORY)/ecom-1-0.s02) 
+	-$(ERASE) $(call slash2generic,$(TARGET_DIRECTORY)/ecom-2-0.spi) 
+	-$(ERASE) $(call slash2generic,$(TARGET_DIRECTORY)/ecom-2-0.s02) 
+	-$(ERASE) $(call slash2generic,$(TARGET_DIRECTORY)/spi_ecom-0-0.spi) 
+	-$(ERASE) $(call slash2generic,$(TARGET_DIRECTORY)/spi_ecom-1-0.spi) 
+	-$(ERASE) $(call slash2generic,$(TARGET_DIRECTORY)/cecom-0-0.spi) 
+	-$(ERASE) $(call slash2generic,$(TARGET_DIRECTORY)/cecom-1-0.spi)
+	-$(ERASE) $(call slash2generic,$(TARGET_DIRECTORY)/spi_ecom_case-0-0.spi) 
+	-$(ERASE) $(call slash2generic,$(TARGET_DIRECTORY)/spi_ecom_case-1-0.spi)
+
+RELEASABLES : 
+	@echo $(TARGET_DIRECTORY)/t_compressed_unicode_1.rsc $(EPOCROOT)epoc32/include/t_compressed_unicode_1.rsg 
+	@echo $(TARGET_DIRECTORY)/t_compressed_unicode_2.rsc $(EPOCROOT)epoc32/include/t_compressed_unicode_2.rsg 
+	@echo $(TARGET_DIRECTORY)/t_dictionary_compressed_versio_of_2.rsc 
+	@echo $(TARGET_DIRECTORY)/t_calypso_test_resource_file_1.rsc 
+	@echo $(TARGET_DIRECTORY)/t_notrscfile.rsc 
+	@echo $(TARGET_DIRECTORY)/rscheader.bin 
+	@echo $(TARGET_DIRECTORY)/newrscformat.rsc 
+	@echo $(TARGET_DIRECTORY)/trsc_inv1.rsc 
+	@echo $(TARGET_DIRECTORY)/trsc_inv2.rsc 
+	@echo $(TARGET_DIRECTORY)/trsc_inv3.rsc 
+	@echo $(TARGET_DIRECTORY)/trsc_inv4.rsc 
+	@echo $(TARGET_DIRECTORY)/trsc_inv5.rsc 
+	@echo $(TARGET_DIRECTORY)/trsc_inv6.rsc 
+	@echo $(TARGET_DIRECTORY)/trsc_inv7.rsc 
+	@echo $(TARGET_DIRECTORY)/trsc_inv8.rsc 
+	@echo $(TARGET_DIRECTORY)/trsc_inv9.rsc 
+	@echo $(TARGET_DIRECTORY)/trsccalypso_inv10.rsc 
+	@echo $(TARGET_DIRECTORY)/trsccalypso_inv11.rsc 
+	@echo $(TARGET_DIRECTORY)/trsccalypso_inv12.rsc 
+	@echo $(TARGET_DIRECTORY)/trsccompru_inv13.rsc 
+	@echo $(TARGET_DIRECTORY)/trsccompru_inv14.rsc 
+	@echo $(TARGET_DIRECTORY)/trsccompru_inv15.rsc 
+	@echo $(TARGET_DIRECTORY)/trsccalypso_inv16.rsc 
+	@echo $(TARGET_DIRECTORY)/trsccalypso_inv17.rsc 
+	@echo $(TARGET_DIRECTORY)/trscromcalypsocomprnewfmt.rsc 
+	@echo $(TARGET_DIRECTORY)/spi_ecom.spi 
+	@echo $(TARGET_DIRECTORY)/spi_ecomrsc1.rsc 
+	@echo $(TARGET_DIRECTORY)/spi_ecomrsc2.rsc 
+	@echo $(TARGET_DIRECTORY)/spi_ecomrsc3.rsc 
+	@echo $(TARGET_DIRECTORY)/ecom-1-0.spi  
+	@echo $(TARGET_DIRECTORY)/ecom-1-0.s02 
+	@echo $(TARGET_DIRECTORY)/ecom-2-0.spi 
+	@echo $(TARGET_DIRECTORY)/ecom-2-0.s02 
+	@echo $(TARGET_DIRECTORY)/spi_ecom-0-0.spi 
+	@echo $(TARGET_DIRECTORY)/spi_ecom-1-0.spi 
+	@echo $(TARGET_DIRECTORY)/cecom-0-0.spi
+	@echo $(TARGET_DIRECTORY)/cecom-1-0.spi
+	@echo $(TARGET_DIRECTORY)/spi_ecom_case-0-0.spi 
+	@echo $(TARGET_DIRECTORY)/spi_ecom_case-1-0.spi 
+	
+FINAL : DO_NOTHING
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/syslibs/test/centrep_copydatfile.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,19 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for centrep_copydatfile use
+#
+
+platform	win32
+makefile 	gnumake
+techstream	syslibs
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/syslibs/test/centrep_copydatfile.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,70 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+ifeq ($(findstring WINS,$(PLATFORM)),WINS)
+	EPOCDATADIR=$(EPOCROOT)epoc32/release/$(PLATFORM_PATH)/$(CFG_PATH)
+else
+	EPOCDATADIR=$(EPOCROOT)epoc32/data
+endif
+
+TARGETDIR = $(EPOCDATADIR)/z/resource
+SOURCEDIR = $(EXTENSION_ROOT)/../data/certstore
+
+FILE = swicertstore.dat
+
+$(TARGETDIR) : 
+	$(call createdir, "$@")
+
+COPYFILES : $(FILE)
+	
+	$(call forcecopy,$(SOURCEDIR)/$^,$(TARGETDIR)/$^)
+
+$(FILE) :
+
+DO_NOTHING:
+	@echo do nothing
+
+#
+# The targets invoked by bld...
+#
+
+BLD :	$(TARGETDIR) COPYFILES
+
+CLEAN :
+	$(call forceremove,$(TARGETDIR)/swicertstore.dat)
+
+RELEASABLES :
+	@echo $(TARGETDIR)/swicertstore.dat
+
+MAKMAKE : DO_NOTHING
+
+SAVESPACE : DO_NOTHING
+
+LIB : DO_NOTHING
+
+CLEANLIB : DO_NOTHING
+
+FREEZE : DO_NOTHING
+
+RESOURCE : DO_NOTHING
+
+FINAL : DO_NOTHING
+
+ROMFILE : DO_NOTHING
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/syslibs/test/centrep_copyincentrepsrv.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,19 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for centrep_copyincentrepsrv use
+#
+
+platform	win32
+makefile 	gnumake
+techstream	syslibs
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/syslibs/test/centrep_copyincentrepsrv.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,74 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+ifeq ($(findstring WINS,$(PLATFORM)),WINS)
+CENTREPSRVSRCDIR = $(EPOCROOT)epoc32/release/$(PLATFORM_PATH)/$(CFG_PATH)
+CENTREPSRVTGTDIR = $(EPOCROOT)epoc32/release/$(PLATFORM_PATH)/$(CFG_PATH)/z/sys/bin
+
+FILE = centralrepositorysrv.exe
+
+$(CENTREPSRVTGTDIR) :
+	$(call createdir, "$(CENTREPSRVTGTDIR)")
+
+COPYFILE : $(FILE)
+	$(call forcecopy,$(CENTREPSRVSRCDIR)/$^,$(CENTREPSRVTGTDIR))
+
+$(FILE):
+endif
+
+DO_NOTHING :
+	@echo do nothing
+
+#
+# The targets invoked by bld...
+#
+
+ifeq ($(findstring WINS,$(PLATFORM)),WINS)
+BLD : $(CENTREPSRVTGTDIR) $(CENTREPSRVSRCDIR) COPYFILE
+
+CLEAN : $(FILE)
+	$(call forceremove,$(CENTREPSRVTGTDIR)/$^)
+
+RELEASABLES : $(FILE)
+	@echo $(CENTREPSRVTGTDIR)/$^
+
+else
+BLD : DO_NOTHING
+
+CLEAN : DO_NOTHING
+
+RELEASABLES : DO_NOTHING
+endif
+
+MAKMAKE : DO_NOTHING
+
+SAVESPACE : DO_NOTHING
+
+LIB : DO_NOTHING
+
+CLEANLIB : DO_NOTHING
+
+FREEZE : DO_NOTHING
+
+RESOURCE : DO_NOTHING
+
+FINAL : DO_NOTHING
+
+ROMFILE : DO_NOTHING
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/syslibs/test/centrep_copypctestfile.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,19 @@
+# Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for centrep_copypctestfile use
+#
+
+platform	win32
+makefile 	gnumake
+techstream	syslibs
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/syslibs/test/centrep_copypctestfile.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,203 @@
+# Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+ifeq ($(findstring WINS,$(PLATFORM)),WINS)
+	EPOCDATADIR = $(EPOCROOT)epoc32/release/$(PLATFORM_PATH)/$(CFG_PATH)
+else
+	EPOCDATADIR = $(EPOCROOT)epoc32/data
+endif
+
+SECURETARGETDIR = $(EPOCDATADIR)/z/private/10202BE9
+
+PCCENREPSOURCE = $(EXTENSION_ROOT)/../test
+PCCENREPDATADIR = $(EPOCROOT)epoc32/winscw/c/private/00000000
+PCCENREPTESTDIR = $(EPOCROOT)epoc32/winscw/c
+PCCENREPPCTESTDIR = $(EPOCROOT)epoc32/release/$(PLATFORM_PATH)/$(CFG_PATH)
+
+$(SECURETARGETDIR) :
+	$(call createdir, "$@")
+
+$(PCCENREPDATADIR) :
+	$(call createdir, "$@")
+
+COPYFILES :
+ifneq ($(findstring TOOLS2,$(PLATFORM)),TOOLS2)
+	
+	$(call forcecopy,$(PCCENREPSOURCE)/000001ff.txt,$(SECURETARGETDIR)/000001ff.txt)
+	$(call forcecopy,$(PCCENREPSOURCE)/00001fff.cre,$(SECURETARGETDIR)/00001fff.cre)
+	$(call forcecopy,$(PCCENREPSOURCE)/000002ff.cre,$(SECURETARGETDIR)/000002ff.cre)
+	$(call forcecopy,$(PCCENREPSOURCE)/88888880.txt,$(SECURETARGETDIR)/88888880.txt)
+	$(call forcecopy,$(PCCENREPSOURCE)/88888881.cre,$(SECURETARGETDIR)/88888881.cre)
+	$(call forcecopy,$(PCCENREPSOURCE)/00022222.txt,$(SECURETARGETDIR)/00022222.txt)
+
+ifeq ($(findstring WINS,$(PLATFORM)),WINS)	
+	$(call forcecopy,$(PCCENREPSOURCE)/000001ff.txt,$(PCCENREPDATADIR)/000001ff.txt)
+	$(call forcecopy,$(PCCENREPSOURCE)/00001fff.cre,$(PCCENREPDATADIR)/00001fff.cre)
+	$(call forcecopy,$(PCCENREPSOURCE)/000002ff.cre,$(PCCENREPDATADIR)/000002ff.cre)
+	$(call forcecopy,$(PCCENREPSOURCE)/88888880.txt,$(PCCENREPDATADIR)/88888880.txt)
+	$(call forcecopy,$(PCCENREPSOURCE)/88888881.cre,$(PCCENREPDATADIR)/88888881.cre)
+	$(call forcecopy,$(PCCENREPSOURCE)/winscwcre.cre,$(PCCENREPDATADIR)/ref_winscwcre.cre)
+	$(call forcecopy,$(PCCENREPSOURCE)/winscwtxt.cre,$(PCCENREPDATADIR)/ref_winscwtxt.cre)
+	$(call forcecopy,$(PCCENREPSOURCE)/000001ff.txt,$(PCCENREPDATADIR)/copy000001ff.txt)
+	$(call forcecopy,$(PCCENREPSOURCE)/00001fff.cre,$(PCCENREPDATADIR)/copy00001fff.cre)
+	$(call forcecopy,$(PCCENREPSOURCE)/000002ff.cre,$(PCCENREPDATADIR)/copy000002ff.cre)
+	$(call forcecopy,$(PCCENREPSOURCE)/00022222.txt,$(PCCENREPDATADIR)/00022222.txt)
+	$(call forcecopy,$(PCCENREPSOURCE)/00022222.cre,$(PCCENREPDATADIR)/copy00022222.cre)
+	$(call forcecopy,$(PCCENREPSOURCE)/000001ff.txt,$(PCCENREPTESTDIR)/000001ff.txt)
+	$(call forcecopy,$(PCCENREPSOURCE)/00001fff.cre,$(PCCENREPTESTDIR)/00001fff.cre)
+	$(call forcecopy,$(PCCENREPSOURCE)/00001fff.cre,$(PCCENREPTESTDIR)/copy00001fff.cre)
+	$(call forcecopy,$(PCCENREPSOURCE)/00022222.txt,$(PCCENREPTESTDIR)/00022222.txt)
+	$(call forcecopy,$(PCCENREPSOURCE)/00022222.cre,$(PCCENREPTESTDIR)/copy00022222.cre)
+endif
+
+else
+	$(call forcecopy,$(PCCENREPSOURCE)/000001ff.txt,$(PCCENREPPCTESTDIR)/000001ff.txt)
+	$(call forcecopy,$(PCCENREPSOURCE)/00001fff.cre,$(PCCENREPPCTESTDIR)/00001fff.cre)
+	$(call forcecopy,$(PCCENREPSOURCE)/000001ff.txt,$(PCCENREPPCTESTDIR)/copy000001ff.txt)
+	$(call forcecopy,$(PCCENREPSOURCE)/00001fff.cre,$(PCCENREPPCTESTDIR)/copy00001fff.cre)
+	$(call forcecopy,$(PCCENREPSOURCE)/000002ff.cre,$(PCCENREPPCTESTDIR)/000002ff.cre)
+	$(call forcecopy,$(PCCENREPSOURCE)/000002ff.cre,$(PCCENREPPCTESTDIR)/copy000002ff.cre)
+	$(call forcecopy,$(PCCENREPSOURCE)/winscwcre.cre,$(PCCENREPPCTESTDIR)/ref_winscwcre.cre)
+	$(call forcecopy,$(PCCENREPSOURCE)/winscwtxt.cre,$(PCCENREPPCTESTDIR)/ref_winscwtxt.cre)
+	$(call forcecopy,$(PCCENREPSOURCE)/88888880.txt,$(PCCENREPPCTESTDIR)/88888880.txt)
+	$(call forcecopy,$(PCCENREPSOURCE)/88888881.cre,$(PCCENREPPCTESTDIR)/88888881.cre)
+	$(call forcecopy,$(PCCENREPSOURCE)/00022222.txt,$(PCCENREPPCTESTDIR)/00022222.txt)
+	$(call forcecopy,$(PCCENREPSOURCE)/00022222.cre,$(PCCENREPPCTESTDIR)/copy00022222.cre)
+	
+endif
+
+DO_NOTHING:
+	@echo do nothing
+
+#
+# The targets invoked by bld...
+#
+
+BLD : $(SECURETARGETDIR) $(PCCENREPDATADIR) $(PCCENREPTESTDIR) $(PCCENREPSOURCE) $(PCCENREPPCTESTDIR) COPYFILES
+
+CLEAN :
+
+ifneq ($(findstring TOOLS2,$(PLATFORM)),TOOLS2)
+
+	$(call forceremove,$(SECURETARGETDIR)/000001ff.txt)
+	$(call forceremove,$(SECURETARGETDIR)/00001fff.cre)
+	$(call forceremove,$(SECURETARGETDIR)/000002ff.cre)
+	$(call forceremove,$(SECURETARGETDIR)/88888880.txt)
+	$(call forceremove,$(SECURETARGETDIR)/88888881.cre)
+	$(call forceremove,$(SECURETARGETDIR)/00022222.txt)
+	
+ifeq ($(findstring WINS,$(PLATFORM)),WINS)
+	$(call forceremove,$(PCCENREPDATADIR)/000001ff.txt)
+	$(call forceremove,$(PCCENREPDATADIR)/00001fff.cre)
+	$(call forceremove,$(PCCENREPDATADIR)/000002ff.cre)
+	$(call forceremove,$(PCCENREPDATADIR)/88888880.txt)
+	$(call forceremove,$(PCCENREPDATADIR)/88888881.cre)
+	$(call forceremove,$(PCCENREPDATADIR)/ref_winscwcre.cre)
+	$(call forceremove,$(PCCENREPDATADIR)/ref_winscwtxt.cre)
+	$(call forceremove,$(PCCENREPDATADIR)/copy000001ff.txt)
+	$(call forceremove,$(PCCENREPDATADIR)/copy00001fff.cre)
+	$(call forceremove,$(PCCENREPDATADIR)/copy000002ff.cre)
+	$(call forceremove,$(PCCENREPDATADIR)/00022222.txt)
+	$(call forceremove,$(PCCENREPDATADIR)/copy00022222.cre)
+	$(call forceremove,$(PCCENREPTESTDIR)/000001ff.txt)
+	$(call forceremove,$(PCCENREPTESTDIR)/00001fff.cre)
+	$(call forceremove,$(PCCENREPTESTDIR)/copy00001fff.cre)
+	$(call forceremove,$(PCCENREPTESTDIR)/00022222.txt)
+	$(call forceremove,$(PCCENREPTESTDIR)/copy00022222.cre)
+
+endif
+
+else
+	$(call forceremove,$(PCCENREPPCTESTDIR)/000001ff.txt)
+	$(call forceremove,$(PCCENREPPCTESTDIR)/00001fff.cre)
+	$(call forceremove,$(PCCENREPPCTESTDIR)/copy000001ff.txt)
+	$(call forceremove,$(PCCENREPPCTESTDIR)/copy00001fff.cre)
+	$(call forceremove,$(PCCENREPPCTESTDIR)/000002ff.cre)
+	$(call forceremove,$(PCCENREPPCTESTDIR)/copy000002ff.cre)
+	$(call forceremove,$(PCCENREPPCTESTDIR)/ref_winscwcre.cre)
+	$(call forceremove,$(PCCENREPPCTESTDIR)/ref_winscwtxt.cre)
+	$(call forceremove,$(PCCENREPPCTESTDIR)/88888880.txt)
+	$(call forceremove,$(PCCENREPPCTESTDIR)/88888881.cre)
+	$(call forceremove,$(PCCENREPPCTESTDIR)/00022222.txt)
+	$(call forceremove,$(PCCENREPPCTESTDIR)/copy00022222.cre)
+	
+endif
+
+RELEASABLES :
+ifneq ($(findstring TOOLS2,$(PLATFORM)),TOOLS2)
+	
+	@echo $(SECURETARGETDIR)/000001ff.txt
+	@echo $(SECURETARGETDIR)/00001fff.cre
+	@echo $(SECURETARGETDIR)/000002ff.cre
+	@echo $(SECURETARGETDIR)/88888880.txt
+	@echo $(SECURETARGETDIR)/88888881.cre
+	@echo $(SECURETARGETDIR)/00022222.txt
+	
+ifeq ($(findstring WINS,$(PLATFORM)),WINS)	
+	@echo $(PCCENREPDATADIR)/000001ff.txt
+	@echo $(PCCENREPDATADIR)/00001fff.cre
+	@echo $(PCCENREPDATADIR)/000002ff.cre
+	@echo $(PCCENREPDATADIR)/88888880.txt
+	@echo $(PCCENREPDATADIR)/88888881.cre
+	@echo $(PCCENREPDATADIR)/ref_winscwcre.cre
+	@echo $(PCCENREPDATADIR)/ref_winscwtxt.cre
+	@echo $(PCCENREPDATADIR)/copy000001ff.txt
+	@echo $(PCCENREPDATADIR)/copy00001fff.cre
+	@echo $(PCCENREPDATADIR)/copy000002ff.cre
+	@echo $(PCCENREPDATADIR)/00022222.txt
+	@echo $(PCCENREPDATADIR)/copy00022222.cre
+	@echo $(PCCENREPTESTDIR)/000001ff.txt
+	@echo $(PCCENREPTESTDIR)/00001fff.cre
+	@echo $(PCCENREPTESTDIR)/copy00001fff.cre
+	@echo $(PCCENREPTESTDIR)/00022222.txt
+	@echo $(PCCENREPTESTDIR)/copy00022222.cre
+
+endif
+
+else
+	@echo $(PCCENREPPCTESTDIR)/000001ff.txt
+	@echo $(PCCENREPPCTESTDIR)/00001fff.cre
+	@echo $(PCCENREPPCTESTDIR)/copy000001ff.txt
+	@echo $(PCCENREPPCTESTDIR)/copy00001fff.cre
+	@echo $(PCCENREPPCTESTDIR)/000002ff.cre
+	@echo $(PCCENREPPCTESTDIR)/copy000002ff.cre
+	@echo $(PCCENREPPCTESTDIR)/ref_winscwcre.cre
+	@echo $(PCCENREPPCTESTDIR)/ref_winscwtxt.cre
+	@echo $(PCCENREPPCTESTDIR)/88888880.txt
+	@echo $(PCCENREPPCTESTDIR)/88888881.cre
+	@echo $(PCCENREPPCTESTDIR)/00022222.txt
+	@echo $(PCCENREPPCTESTDIR)/copy00022222.cre
+endif
+
+MAKMAKE : DO_NOTHING
+
+RESOURCE : DO_NOTHING
+
+SAVESPACE : DO_NOTHING
+
+FREEZE : DO_NOTHING
+
+LIB : DO_NOTHING
+
+CLEANLIB : DO_NOTHING
+
+FINAL : DO_NOTHING
+
+ROMFILE : DO_NOTHING
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/syslibs/test/centrep_copypctestfilev2.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,20 @@
+# Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# centrep_copypctestfile.meta
+# Meta information for centrep_copypctestfile use
+#
+
+platform	win32
+makefile 	gnumake
+techstream	syslibs
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/syslibs/test/centrep_copypctestfilev2.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,238 @@
+# Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# centrep_copypctestfile.mk
+# 
+#
+
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+ifeq ($(findstring WINS,$(PLATFORM)),WINS)
+	EPOCDATADIR = $(EPOCROOT)epoc32/release/$(PLATFORM_PATH)/$(CFG_PATH)
+else
+	EPOCDATADIR = $(EPOCROOT)epoc32/data
+endif
+
+SECURETARGETDIR = $(EPOCDATADIR)/z/private/10202BE9
+
+PCCENREPSOURCE = $(EXTENSION_ROOT)/../test
+PCCENREPDATADIR = $(EPOCROOT)epoc32/winscw/c/private/00000000
+PCCENREPTESTDIR = $(EPOCROOT)epoc32/winscw/c
+PCCENREPPCTESTDIR = $(EPOCROOT)epoc32/release/$(PLATFORM_PATH)/$(CFG_PATH)
+
+$(SECURETARGETDIR) :
+	$(call createdir, "$@")
+
+$(PCCENREPDATADIR) :
+	$(call createdir, "$@")
+
+COPYFILES :
+ifneq ($(findstring TOOLS2,$(PLATFORM)),TOOLS2)
+	$(call forcecopy,$(PCCENREPSOURCE)/000001ff.txt,$(SECURETARGETDIR)/000001ff.txt)
+	$(call forcecopy,$(PCCENREPSOURCE)/00001fff.crev2,$(SECURETARGETDIR)/00001fff.cre)
+	$(call forcecopy,$(PCCENREPSOURCE)/000002ff.crev2,$(SECURETARGETDIR)/000002ff.cre)
+	$(call forcecopy,$(PCCENREPSOURCE)/88888880.txt,$(SECURETARGETDIR)/88888880.txt)
+	$(call forcecopy,$(PCCENREPSOURCE)/88888881.cre,$(SECURETARGETDIR)/88888881.cre)
+	$(call forcecopy,$(PCCENREPSOURCE)/00004fff.cre,$(SECURETARGETDIR)/00004fff.cre)
+	$(call forcecopy,$(PCCENREPSOURCE)/00022222.txt,$(SECURETARGETDIR)/00022222.txt)
+
+ifeq ($(findstring WINS,$(PLATFORM)),WINS)	
+	$(call forcecopy,$(PCCENREPSOURCE)/000001ff.txt,$(PCCENREPDATADIR)/000001ff.txt)
+	$(call forcecopy,$(PCCENREPSOURCE)/00001fff.crev2,$(PCCENREPDATADIR)/00001fff.cre)
+	$(call forcecopy,$(PCCENREPSOURCE)/000002ff.crev2,$(PCCENREPDATADIR)/000002ff.cre)
+	$(call forcecopy,$(PCCENREPSOURCE)/88888880.txt,$(PCCENREPDATADIR)/88888880.txt)
+	$(call forcecopy,$(PCCENREPSOURCE)/88888881.cre,$(PCCENREPDATADIR)/88888881.cre)
+	$(call forcecopy,$(PCCENREPSOURCE)/winscwcre.crev2,$(PCCENREPDATADIR)/ref_winscwcre.cre)
+	$(call forcecopy,$(PCCENREPSOURCE)/winscwtxt.crev2,$(PCCENREPDATADIR)/ref_winscwtxt.cre)
+	$(call forcecopy,$(PCCENREPSOURCE)/000001ff.txt,$(PCCENREPDATADIR)/copy000001ff.txt)
+	$(call forcecopy,$(PCCENREPSOURCE)/00001fff.crev2,$(PCCENREPDATADIR)/copy00001fff.cre)
+	$(call forcecopy,$(PCCENREPSOURCE)/000002ff.crev2,$(PCCENREPDATADIR)/copy000002ff.cre)
+	$(call forcecopy,$(PCCENREPSOURCE)/00004fff.cre,$(PCCENREPDATADIR)/00004fff.cre)
+	$(call forcecopy,$(PCCENREPSOURCE)/00004fff.cre,$(PCCENREPDATADIR)/copy00004fff.cre)
+	$(call forcecopy,$(PCCENREPSOURCE)/00022222.txt,$(PCCENREPDATADIR)/00022222.txt)
+	$(call forcecopy,$(PCCENREPSOURCE)/00022222.crev2,$(PCCENREPDATADIR)/copy00022222.cre)
+	$(call forcecopy,$(PCCENREPSOURCE)/000001ff.txt,$(PCCENREPTESTDIR)/000001ff.txt)
+	$(call forcecopy,$(PCCENREPSOURCE)/00001fff.crev2,$(PCCENREPTESTDIR)/00001fff.cre)
+	$(call forcecopy,$(PCCENREPSOURCE)/00001fff.crev2,$(PCCENREPTESTDIR)/copy00001fff.cre)
+	$(call forcecopy,$(PCCENREPSOURCE)/00004fff.cre,$(PCCENREPTESTDIR)/00004fff.cre)
+	$(call forcecopy,$(PCCENREPSOURCE)/00004fff.cre,$(PCCENREPTESTDIR)/copy00004fff.cre)
+	$(call forcecopy,$(PCCENREPSOURCE)/00022222.txt,$(PCCENREPTESTDIR)/00022222.txt)
+	$(call forcecopy,$(PCCENREPSOURCE)/00022222.crev2,$(PCCENREPTESTDIR)/copy00022222.cre)
+# Shared files between the t_cenreppc (WINSCW) and testsymcenrep (TOOLS2) tests.
+	$(call forcecopy,$(PCCENREPSOURCE)/common_crc.txt,$(PCCENREPTESTDIR)/common_crc.txt)
+	$(call forcecopy,$(PCCENREPSOURCE)/common_ref_00022222.cre,$(PCCENREPDATADIR)/common_ref_00022222.cre)
+endif
+
+# TOOLS2
+else
+	$(call forcecopy,$(PCCENREPSOURCE)/000001ff.txt,$(PCCENREPPCTESTDIR)/000001ff.txt)
+	$(call forcecopy,$(PCCENREPSOURCE)/00001fff.crev2,$(PCCENREPPCTESTDIR)/00001fff.cre)
+	$(call forcecopy,$(PCCENREPSOURCE)/00004fff.cre,$(PCCENREPPCTESTDIR)/00004fff.cre)
+	$(call forcecopy,$(PCCENREPSOURCE)/000001ff.txt,$(PCCENREPPCTESTDIR)/copy000001ff.txt)
+	$(call forcecopy,$(PCCENREPSOURCE)/00001fff.crev2,$(PCCENREPPCTESTDIR)/copy00001fff.cre)
+	$(call forcecopy,$(PCCENREPSOURCE)/00004fff.cre,$(PCCENREPPCTESTDIR)/copy00004fff.cre)
+	$(call forcecopy,$(PCCENREPSOURCE)/000002ff.crev2,$(PCCENREPPCTESTDIR)/000002ff.cre)
+	$(call forcecopy,$(PCCENREPSOURCE)/000002ff.crev2,$(PCCENREPPCTESTDIR)/copy000002ff.cre)
+	$(call forcecopy,$(PCCENREPSOURCE)/winscwcre.crev2,$(PCCENREPPCTESTDIR)/ref_winscwcre.cre)
+	$(call forcecopy,$(PCCENREPSOURCE)/winscwtxt.crev2,$(PCCENREPPCTESTDIR)/ref_winscwtxt.cre)
+	$(call forcecopy,$(PCCENREPSOURCE)/88888880.txt,$(PCCENREPPCTESTDIR)/88888880.txt)
+	$(call forcecopy,$(PCCENREPSOURCE)/88888881.cre,$(PCCENREPPCTESTDIR)/88888881.cre)
+	$(call forcecopy,$(PCCENREPSOURCE)/00022222.txt,$(PCCENREPPCTESTDIR)/00022222.txt)
+	$(call forcecopy,$(PCCENREPSOURCE)/00022222.crev2,$(PCCENREPPCTESTDIR)/copy00022222.cre)
+# Shared files between the t_cenreppc (WINSCW) and testsymcenrep (TOOLS2) tests.
+	$(call forcecopy,$(PCCENREPSOURCE)/common_crc.txt,$(PCCENREPTESTDIR)/common_crc.txt)
+	$(call forcecopy,$(PCCENREPSOURCE)/common_ref_00022222.cre,$(PCCENREPDATADIR)/common_ref_00022222.cre)
+endif
+
+DO_NOTHING:
+	@echo do nothing
+
+#
+# The targets invoked by bld...
+#
+
+BLD : $(SECURETARGETDIR) $(PCCENREPDATADIR) $(PCCENREPTESTDIR) $(PCCENREPSOURCE) $(PCCENREPPCTESTDIR) COPYFILES
+
+CLEAN :
+
+ifneq ($(findstring TOOLS2,$(PLATFORM)),TOOLS2)
+	$(call forceremove,$(SECURETARGETDIR)/000001ff.txt)
+	$(call forceremove,$(SECURETARGETDIR)/00001fff.cre)
+	$(call forceremove,$(SECURETARGETDIR)/000002ff.cre)
+	$(call forceremove,$(SECURETARGETDIR)/88888880.txt)
+	$(call forceremove,$(SECURETARGETDIR)/88888881.cre)
+	$(call forceremove,$(SECURETARGETDIR)/00004fff.cre)
+	$(call forceremove,$(SECURETARGETDIR)/00022222.txt)
+
+ifeq ($(findstring WINS,$(PLATFORM)),WINS)
+	$(call forceremove,$(PCCENREPDATADIR)/000001ff.txt)
+	$(call forceremove,$(PCCENREPDATADIR)/00001fff.cre)
+	$(call forceremove,$(PCCENREPDATADIR)/000002ff.cre)
+	$(call forceremove,$(PCCENREPDATADIR)/88888880.txt)
+	$(call forceremove,$(PCCENREPDATADIR)/88888881.cre)
+	$(call forceremove,$(PCCENREPDATADIR)/ref_winscwcre.cre)
+	$(call forceremove,$(PCCENREPDATADIR)/ref_winscwtxt.cre)
+	$(call forceremove,$(PCCENREPDATADIR)/copy000001ff.txt)
+	$(call forceremove,$(PCCENREPDATADIR)/copy00001fff.cre)
+	$(call forceremove,$(PCCENREPDATADIR)/copy000002ff.cre)
+	$(call forceremove,$(PCCENREPDATADIR)/00004fff.cre)
+	$(call forceremove,$(PCCENREPDATADIR)/copy00004fff.cre)
+	$(call forceremove,$(PCCENREPDATADIR)/00022222.txt)
+	$(call forceremove,$(PCCENREPDATADIR)/copy00022222.cre)
+	$(call forceremove,$(PCCENREPTESTDIR)/000001ff.txt)
+	$(call forceremove,$(PCCENREPTESTDIR)/00001fff.cre)
+	$(call forceremove,$(PCCENREPTESTDIR)/copy00001fff.cre)
+	$(call forceremove,$(PCCENREPTESTDIR)/00004fff.cre)
+	$(call forceremove,$(PCCENREPTESTDIR)/copy00004fff.cre)
+	$(call forceremove,$(PCCENREPTESTDIR)/00022222.txt)
+	$(call forceremove,$(PCCENREPTESTDIR)/copy00022222.cre)
+	$(call forceremove,$(PCCENREPTESTDIR)/common_crc.txt)
+	$(call forceremove,$(PCCENREPDATADIR)/common_ref_00022222.cre)
+endif
+
+
+# TOOLS2
+else
+	$(call forceremove,$(PCCENREPPCTESTDIR)/000001ff.txt)
+	$(call forceremove,$(PCCENREPPCTESTDIR)/00001fff.cre)
+	$(call forceremove,$(PCCENREPPCTESTDIR)/00004fff.cre)
+	$(call forceremove,$(PCCENREPPCTESTDIR)/copy000001ff.txt)
+	$(call forceremove,$(PCCENREPPCTESTDIR)/copy00001fff.cre)
+	$(call forceremove,$(PCCENREPPCTESTDIR)/000002ff.cre)
+	$(call forceremove,$(PCCENREPPCTESTDIR)/copy000002ff.cre)
+	$(call forceremove,$(PCCENREPPCTESTDIR)/ref_winscwcre.cre)
+	$(call forceremove,$(PCCENREPPCTESTDIR)/ref_winscwtxt.cre)
+	$(call forceremove,$(PCCENREPPCTESTDIR)/88888880.txt)
+	$(call forceremove,$(PCCENREPPCTESTDIR)/88888881.cre)
+	$(call forceremove,$(PCCENREPPCTESTDIR)/00022222.txt)
+	$(call forceremove,$(PCCENREPPCTESTDIR)/copy00022222.cre)
+	$(call forceremove,$(PCCENREPPCTESTDIR)/copy00004fff.cre)
+	$(call forceremove,$(PCCENREPTESTDIR)/common_crc.txt)
+	$(call forceremove,$(PCCENREPDATADIR)/common_ref_00022222.cre)
+
+endif
+
+RELEASABLES :
+ifneq ($(findstring TOOLS2,$(PLATFORM)),TOOLS2)
+	@echo $(SECURETARGETDIR)/000001ff.txt
+	@echo $(SECURETARGETDIR)/00001fff.cre
+	@echo $(SECURETARGETDIR)/000002ff.cre
+	@echo $(SECURETARGETDIR)/88888880.txt
+	@echo $(SECURETARGETDIR)/88888881.cre
+	@echo $(SECURETARGETDIR)/00004fff.cre
+	@echo $(SECURETARGETDIR)/00022222.txt
+
+ifeq ($(findstring WINS,$(PLATFORM)),WINS)
+	@echo $(PCCENREPDATADIR)/000001ff.txt
+	@echo $(PCCENREPDATADIR)/00001fff.cre
+	@echo $(PCCENREPDATADIR)/000002ff.cre
+	@echo $(PCCENREPDATADIR)/88888880.txt
+	@echo $(PCCENREPDATADIR)/88888881.cre
+	@echo $(PCCENREPDATADIR)/ref_winscwcre.cre
+	@echo $(PCCENREPDATADIR)/ref_winscwtxt.cre
+	@echo $(PCCENREPDATADIR)/copy000001ff.txt
+	@echo $(PCCENREPDATADIR)/copy00001fff.cre
+	@echo $(PCCENREPDATADIR)/copy000002ff.cre
+	@echo $(PCCENREPDATADIR)/00004fff.cre
+	@echo $(PCCENREPDATADIR)/copy00004fff.cre
+	@echo $(PCCENREPDATADIR)/00022222.txt
+	@echo $(PCCENREPDATADIR)/copy00022222.cre
+	@echo $(PCCENREPTESTDIR)/000001ff.txt
+	@echo $(PCCENREPTESTDIR)/00001fff.cre
+	@echo $(PCCENREPTESTDIR)/copy00001fff.cre
+	@echo $(PCCENREPTESTDIR)/00004fff.cre
+	@echo $(PCCENREPTESTDIR)/copy00004fff.cre
+	@echo $(PCCENREPTESTDIR)/00022222.txt
+	@echo $(PCCENREPTESTDIR)/copy00022222.cre
+	@echo $(PCCENREPTESTDIR)/common_crc.txt
+	@echo $(PCCENREPDATADIR)/common_ref_00022222.cre
+endif
+
+# TOOLS2
+else 
+	@echo $(PCCENREPPCTESTDIR)/000001ff.txt
+	@echo $(PCCENREPPCTESTDIR)/00001fff.cre
+	@echo $(PCCENREPPCTESTDIR)/copy000001ff.txt
+	@echo $(PCCENREPPCTESTDIR)/copy00001fff.cre
+	@echo $(PCCENREPPCTESTDIR)/000002ff.cre
+	@echo $(PCCENREPPCTESTDIR)/copy000002ff.cre
+	@echo $(PCCENREPPCTESTDIR)/ref_winscwcre.cre
+	@echo $(PCCENREPPCTESTDIR)/ref_winscwtxt.cre
+	@echo $(PCCENREPPCTESTDIR)/88888880.txt
+	@echo $(PCCENREPPCTESTDIR)/88888881.cre
+	@echo $(PCCENREPPCTESTDIR)/00022222.txt
+	@echo $(PCCENREPPCTESTDIR)/copy00022222.cre
+	@echo $(PCCENREPPCTESTDIR)/copy00004fff.cre
+	@echo $(PCCENREPTESTDIR)/common_crc.txt
+	@echo $(PCCENREPDATADIR)/common_ref_00022222.cre
+
+endif
+
+MAKMAKE : DO_NOTHING
+
+RESOURCE : DO_NOTHING
+
+SAVESPACE : DO_NOTHING
+
+FREEZE : DO_NOTHING
+
+LIB : DO_NOTHING
+
+CLEANLIB : DO_NOTHING
+
+FINAL : DO_NOTHING
+
+ROMFILE : DO_NOTHING
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/syslibs/test/charconv_testpostbuild.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,20 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# charconv_tiso8859x_generate_cpp.meta
+# Meta information for charconv_tiso8859x_generate_cpp use
+#
+
+platform	win32
+makefile 	gnumake
+techstream	syslibs
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/syslibs/test/charconv_testpostbuild.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,74 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# This postbuild script is only called when a Test Build is done.  It deletes the KDDI/AU versions of the shiftjis and j5 plugin RSC file, so
+# that only the Docomo versions remain.  This removed ambiguity over which one will load during tests - a seperate version of the KDDI/AU
+# plugins is created for test build, with a unique UID number so they may coexist for test purposes.
+# 
+#
+
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+# Only remove files on emulator build - for hardware, iby file selects correct plugin.
+ifeq ($(findstring WINS,$(PLATFORM)),WINS)
+	TARGETDIR = $(EPOCROOT)epoc32/release/$(PLATFORM_PATH)/$(CFG_PATH)/z/resource/plugins
+
+	TARGET_FILES = \
+	$(TARGETDIR)/shiftjis_kddiau.rsc \
+	$(TARGETDIR)/j5_kddiau.rsc \
+	$(TARGETDIR)/eucjp_packed_2.rsc \
+	$(TARGETDIR)/iso2022jp_2.rsc \
+	$(TARGETDIR)/iso2022jp1_2.rsc \
+	$(TARGETDIR)/j5_kddiau_2.rsc \
+	$(TARGETDIR)/jis_2.rsc\
+	$(TARGETDIR)/shiftjis_kddiau_2.rsc
+	
+	TARGET_FILES:=$(subst /,\,$(TARGET_FILES))
+endif
+
+DO_NOTHING :
+	@echo do nothing
+
+#
+# The targets invoked by bld...
+#
+
+ifeq ($(findstring WINS,$(PLATFORM)),WINS)
+BLD :	
+	@echo Below rsc files will be deleted to remove ambiguity in testing:
+	@echo $(TARGET_FILES)
+	-$(ERASE) $(TARGET_FILES)	
+else
+BLD : DO_NOTHING
+endif
+
+RELEASABLES : DO_NOTHING
+
+MAKMAKE : DO_NOTHING
+
+CLEAN : DO_NOTHING
+
+SAVESPACE : DO_NOTHING
+
+RESOURCE : DO_NOTHING
+
+FREEZE : DO_NOTHING
+
+LIB : DO_NOTHING
+
+CLEANLIB : DO_NOTHING
+
+FINAL : DO_NOTHING
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/syslibs/test/charconv_tiso8859x_generate_cpp.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,19 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for charconv_tiso8859x_generate_cpp use
+#
+
+platform	win32
+makefile 	gnumake
+techstream	syslibs
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/syslibs/test/charconv_tiso8859x_generate_cpp.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,73 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+TARGET_DIRECTORY = $(EXTENSION_ROOT)/../test/rtest/tsrc/main
+
+TEXT_FILE_DIRECTORY = $(EXTENSION_ROOT)/../data
+
+TARGET_CPP_FILES = $(TARGET_DIRECTORY)/g_tiso8859x.cpp
+
+TOOLS = $(EXTENSION_ROOT)/../test/rtest/tsrc/main/tiso8859x_generate_cpp.pl
+
+$(TARGET_DIRECTORY) :
+
+$(TARGET_DIRECTORY)/g_tiso8859x.cpp : $(TOOLS) \
+	$(TEXT_FILE_DIRECTORY)/iso88592.txt \
+	$(TEXT_FILE_DIRECTORY)/iso88593.txt \
+	$(TEXT_FILE_DIRECTORY)/iso88594.txt \
+	$(TEXT_FILE_DIRECTORY)/iso88595.txt \
+	$(TEXT_FILE_DIRECTORY)/iso88596.txt \
+	$(TEXT_FILE_DIRECTORY)/iso88597.txt \
+	$(TEXT_FILE_DIRECTORY)/iso88598.txt \
+	$(TEXT_FILE_DIRECTORY)/iso88599.txt \
+	$(TEXT_FILE_DIRECTORY)/iso885910.txt \
+	$(TEXT_FILE_DIRECTORY)/iso885913.txt \
+	$(TEXT_FILE_DIRECTORY)/iso885914.txt \
+	$(TEXT_FILE_DIRECTORY)/iso885915.txt
+	@perl -w $(call slash2generic, $(EXTENSION_ROOT)/../test/rtest/tsrc/main/tiso8859x_generate_cpp.pl '$(EXTENSION_ROOT)')
+
+DO_NOTHING :
+	@echo do nothing
+
+#
+# The targets invoked by bld...
+#
+
+MAKMAKE : $(TARGET_DIRECTORY) $(TARGET_CPP_FILES)
+
+BLD : $(TARGET_DIRECTORY) $(TARGET_CPP_FILES)
+
+SAVESPACE : BLD
+
+FREEZE : DO_NOTHING
+
+LIB : DO_NOTHING
+
+CLEANLIB : DO_NOTHING
+
+RESOURCE : DO_NOTHING
+
+CLEAN : 
+	-$(ERASE) $(TARGET_CPP_FILES)
+
+RELEASABLES : 
+	@echo $(TARGET_CPP_FILES)
+
+FINAL : DO_NOTHING
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/syslibs/test/charconv_tsnmdata.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,19 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for charconv_tsnmdata use
+#
+
+platform	win32
+makefile 	gnumake
+techstream	syslibs
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/syslibs/test/charconv_tsnmdata.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,68 @@
+# Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+ifeq ($(findstring WINS,$(PLATFORM)),WINS)
+	TARGET_DIRECTORY = $(EPOCROOT)epoc32/release/$(PLATFORM_PATH)/$(CFG_PATH)/z/resource/charconv
+else
+	TARGET_DIRECTORY = $(EPOCROOT)epoc32/data/z/resource/charconv
+endif
+
+TARGET_FILES = $(TARGET_DIRECTORY)/tsnm.snm
+
+SOURCE_DIRECTORY = $(EXTENSION_ROOT)/../test/data/main
+
+TOOLS = \
+	$(EPOCROOT)epoc32/tools/PARSER.PM \
+	$(EPOCROOT)epoc32/tools/WRITER.PM \
+	$(EPOCROOT)epoc32/tools/snmtool.pl
+
+$(TARGET_DIRECTORY) :
+	$(call createdir,"$@")
+
+$(TARGET_FILES) : $(SOURCE_DIRECTORY)/tsnm.txt $(TOOLS)
+	perl $(EPOCROOT)epoc32/tools/snmtool.pl $(SOURCE_DIRECTORY)/tsnm.txt $@
+DO_NOTHING :
+	@echo do nothing
+	
+#
+# The targets invoked by bld...
+#
+
+MAKMAKE : DO_NOTHING
+
+BLD : $(TARGET_DIRECTORY) $(TARGET_FILES)
+
+SAVESPACE : BLD
+
+FREEZE : DO_NOTHING
+
+LIB : DO_NOTHING
+
+CLEANLIB : DO_NOTHING
+
+RESOURCE : DO_NOTHING
+
+CLEAN : 
+	-$(ERASE) $(TARGET_FILES)
+
+RELEASABLES : 
+	@echo $(TARGET_FILES)
+
+FINAL : DO_NOTHING
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/syslibs/test/dbms_copytestdbscfiles.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,19 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for dbms_copytestdbscfiles use
+#
+
+platform	win32
+makefile 	gnumake
+techstream	syslibs
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/syslibs/test/dbms_copytestdbscfiles.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,132 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Build DBMS test files
+# 
+#
+
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+ifeq ($(findstring WINS,$(PLATFORM)),WINS)
+	TARGETDIR = $(EPOCROOT)epoc32/release/$(PLATFORM_PATH)/$(CFG_PATH)/z/private/100012a5/policy
+	TARGETDIR2 = $(EPOCROOT)epoc32/release/$(PLATFORM_PATH)/$(CFG_PATH)/z/private/100012a5
+	TARGETDIR3 = $(EPOCROOT)epoc32/release/$(PLATFORM_PATH)/$(CFG_PATH)/z/test
+else
+	TARGETDIR = $(EPOCROOT)epoc32/data/z/private/100012a5/policy
+	TARGETDIR2 = $(EPOCROOT)epoc32/data/z/private/100012a5
+	TARGETDIR3 = $(EPOCROOT)epoc32/data/z/system/test
+endif
+
+TARGET_FILES = \
+	$(TARGETDIR)/11335577.spd \
+	$(TARGETDIR)/11335578.spd \
+	$(TARGETDIR)/11335579.spd \
+	$(TARGETDIR)/1133557a.spd \
+	$(TARGETDIR)/12344321.spd \
+	$(TARGETDIR2)/dbs_11335578_a.db \
+	$(TARGETDIR2)/dbs_11335578_b.db \
+	$(TARGETDIR2)/dbs_11335578_z.db \
+	$(TARGETDIR2)/dbs_11335579_testdb.db \
+	$(TARGETDIR2)/dbs_1133557a_zzz.db \
+	$(TARGETDIR2)/dbs_12344321_1234567890123456789012345678901234567890123456789012345678901234567890.db\
+	$(TARGETDIR3)/11335577.txt\
+	$(TARGETDIR3)/11335578.txt\
+	$(TARGETDIR3)/11335579.txt\
+	$(TARGETDIR3)/1133557A.txt\
+	$(TARGETDIR3)/t_dbperf1.sql\
+	$(TARGETDIR3)/t_script.txt\
+	$(TARGETDIR3)/typetextktests44.dat\
+	$(TARGETDIR3)/typetextktests46.dat\
+	$(TARGETDIR3)/typetextktests47.dat
+
+
+$(TARGETDIR) :
+	$(call createdir, "$@")
+
+$(TARGETDIR2) :
+	$(call createdir, "$@")
+	
+$(TARGETDIR3) :
+	$(call createdir, "$@")
+
+COPYFILES :
+		$(call forcecopy,$(EXTENSION_ROOT)/../TDBMS/11335577.spd,$(TARGETDIR)/11335577.spd)
+		$(call forcecopy,$(EXTENSION_ROOT)/../TDBMS/11335578.spd,$(TARGETDIR)/11335578.spd)
+		$(call forcecopy,$(EXTENSION_ROOT)/../TDBMS/11335579.spd,$(TARGETDIR)/11335579.spd)
+		$(call forcecopy,$(EXTENSION_ROOT)/../TDBMS/1133557A.spd,$(TARGETDIR)/1133557a.spd)
+		$(call forcecopy,$(EXTENSION_ROOT)/../TDBMS/12344321.spd,$(TARGETDIR)/12344321.spd)
+		$(call forcecopy,$(EXTENSION_ROOT)/../TDBMS/dbs_11335578_A.DB,$(TARGETDIR2)/dbs_11335578_a.db)
+		$(call forcecopy,$(EXTENSION_ROOT)/../TDBMS/dbs_11335578_B.DB,$(TARGETDIR2)/dbs_11335578_b.db)
+		$(call forcecopy,$(EXTENSION_ROOT)/../TDBMS/dbs_11335578_Z.DB,$(TARGETDIR2)/dbs_11335578_z.db)
+		$(call forcecopy,$(EXTENSION_ROOT)/../TDBMS/dbs_11335579_TESTDB.DB,$(TARGETDIR2)/dbs_11335579_testdb.db)
+		$(call forcecopy,$(EXTENSION_ROOT)/../TDBMS/dbs_1133557A_ZZZ.DB,$(TARGETDIR2)/dbs_1133557a_zzz.db)
+		$(call forcecopy,$(EXTENSION_ROOT)/../TDBMS/dbs_12344321_1234567890123456789012345678901234567890123456789012345678901234567890.DB,$(TARGETDIR2)/dbs_12344321_1234567890123456789012345678901234567890123456789012345678901234567890.db)
+		$(call forcecopy,$(EXTENSION_ROOT)/../TDBMS/11335577.txt,$(TARGETDIR3)/11335577.txt)
+		$(call forcecopy,$(EXTENSION_ROOT)/../TDBMS/11335578.txt,$(TARGETDIR3)/11335578.txt)
+		$(call forcecopy,$(EXTENSION_ROOT)/../TDBMS/11335579.txt,$(TARGETDIR3)/11335579.txt)
+		$(call forcecopy,$(EXTENSION_ROOT)/../TDBMS/1133557A.txt,$(TARGETDIR3)/1133557A.txt)
+		$(call forcecopy,$(EXTENSION_ROOT)/../TDBMS/t_dbperf1.sql,$(TARGETDIR3)/t_dbperf1.sql)
+		$(call forcecopy,$(EXTENSION_ROOT)/../TDBMS/t_script.txt,$(TARGETDIR3)/t_script.txt)
+		$(call forcecopy,$(EXTENSION_ROOT)/../TDBMS/typetextktests44.dat,$(TARGETDIR3)/typetextktests44.dat)
+		$(call forcecopy,$(EXTENSION_ROOT)/../TDBMS/typetextktests46.dat,$(TARGETDIR3)/typetextktests46.dat)
+		$(call forcecopy,$(EXTENSION_ROOT)/../TDBMS/typetextktests47.dat,$(TARGETDIR3)/typetextktests47.dat)
+		
+DO_NOTHING :
+	@echo do nothing
+#
+# The targets invoked by bld...
+#
+
+MAKMAKE : DO_NOTHING
+
+BLD : $(TARGETDIR) $(TARGETDIR2) $(TARGETDIR3) COPYFILES
+
+CLEAN : 
+	$(call forceremove,$(TARGET_FILES))
+
+SAVESPACE : DO_NOTHING
+
+RESOURCE : DO_NOTHING
+
+FREEZE : DO_NOTHING
+
+LIB : DO_NOTHING
+
+CLEANLIB : DO_NOTHING
+
+FINAL : DO_NOTHING
+
+RELEASABLES :
+	@echo $(TARGETDIR)/11335577.spd
+	@echo $(TARGETDIR)/11335578.spd
+	@echo $(TARGETDIR)/11335579.spd
+	@echo $(TARGETDIR)/1133557a.spd
+	@echo $(TARGETDIR)/12344321.spd
+	@echo $(TARGETDIR2)/dbs_11335578_a.db
+	@echo $(TARGETDIR2)/dbs_11335578_b.db
+	@echo $(TARGETDIR2)/dbs_11335578_z.db
+	@echo $(TARGETDIR2)/dbs_11335579_testdb.db
+	@echo $(TARGETDIR2)/dbs_1133557a_zzz.db
+	@echo $(TARGETDIR2)/dbs_12344321_1234567890123456789012345678901234567890123456789012345678901234567890.db
+	@echo $(TARGETDIR3)/11335577.txt
+	@echo $(TARGETDIR3)/11335578.txt
+	@echo $(TARGETDIR3)/11335579.txt
+	@echo $(TARGETDIR3)/1133557A.txt
+	@echo $(TARGETDIR3)/t_dbperf1.sql
+	@echo $(TARGETDIR3)/t_script.txt
+	@echo $(TARGETDIR3)/typetextktests44.dat
+	@echo $(TARGETDIR3)/typetextktests46.dat
+	@echo $(TARGETDIR3)/typetextktests47.dat
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/syslibs/test/ecom3_buildsis.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,19 @@
+# Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for the ecom3_buildsis extension template
+#
+
+platform	win32
+makefile 	gnumake
+techstream	syslibs
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/syslibs/test/ecom3_buildsis.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,60 @@
+# Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Params:
+# SOURCES - list of .pkg files
+# TARGET - not used
+# OPTION OUTDIR - mandatory, it is tef_ecomswi
+# OPTION INDIR - mandatory, path relative to bld.inf containing the 
+# .pkg files.
+# OPTION CERTPEM - mandatory
+# OPTION CERTKEY - mandatory
+# OPTION STUBLIST - mandatory, identify stubs in $(SOURCES)
+# OPTION SCRIPTNAME - mandatory, perl script to build SIS. Must be in
+# same dir as .pkg files.
+# 
+#
+
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+
+
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+CERTPEM := $(subst /,$(/),$(CERTPEM))
+CERTKEY := $(subst /,$(/),$(CERTKEY))
+OUTDIR := $(subst /,$(/),$(OUTDIR))
+INDIR := $(subst /,$(/),$(INDIR))
+BASEDIR := $(EXTENSION_ROOT)/$(INDIR)
+
+TARGETS := $(shell perl $(BASEDIR)/$(SCRIPTNAME) -platform $(PLATFORM_PATH) -cfg $(CFG_PATH) -outdir $(OUTDIR) -maketrgt RELEASABLES -sources "$(SOURCES)" -stublist "$(STUBLIST)")
+EXTRA := $(shell perl $(BASEDIR)/$(SCRIPTNAME) -platform $(PLATFORM_PATH) -cfg $(CFG_PATH) -outdir $(OUTDIR) -maketrgt EXTRATARGET -sources "$(SOURCES)" -stublist "$(STUBLIST)")
+
+
+$(TARGETS) :
+	@perl $(call slash2generic, $(BASEDIR)/$(SCRIPTNAME)) -basedir $(BASEDIR) -platform $(PLATFORM_PATH) -cfg $(CFG_PATH) -certpem $(CERTPEM) -certkey $(CERTKEY) -maketrgt FINAL $@
+
+#
+# The targets invoked by abld...
+#
+FINAL : $(TARGETS)
+
+BLD MAKMAKE SAVESPACE FREEZE LIB CLEANLIB RESOURCE :
+	@echo do nothing
+
+CLEAN : 
+	-$(ERASE) $(TARGETS) $(EXTRA)
+
+RELEASABLES : 
+	@echo $(TARGETS) $(EXTRA)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/syslibs/test/ecom3_postbuild.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,19 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for ecom3_postbuild use
+#
+
+platform	win32
+makefile 	gnumake
+techstream	syslibs
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/syslibs/test/ecom3_postbuild.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,353 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+ifeq ($(findstring WINS,$(PLATFORM)),WINS)
+TARGETDIR=$(EPOCROOT)epoc32/release/$(PLATFORM_PATH)/$(CFG_PATH)/z
+RAMONLYTARGETDIR=$(EPOCROOT)epoc32/release/$(PLATFORM_PATH)/$(CFG_PATH)/z/ramonly
+SOURCEDIR=$(EPOCROOT)epoc32/release/$(PLATFORM_PATH)/$(CFG_PATH)
+SOURCEDIR2=$(EPOCROOT)epoc32/release/$(PLATFORM_PATH)/$(CFG_PATH)/z/resource/plugins
+else
+TARGETDIR=$(EPOCROOT)epoc32/data/z
+RAMONLYTARGETDIR=$(EPOCROOT)epoc32/data/z/ramonly
+SOURCEDIR=$(EPOCROOT)epoc32/release/$(PLATFORM_PATH)/$(CFG_PATH)
+SOURCEDIR2=$(EPOCROOT)epoc32/data/z/resource/plugins
+endif
+
+DO_NOTHING:
+	@echo do_nothing
+	
+$(RAMONLYTARGETDIR) :
+	$(call createdir,"$@")
+
+COPYFILES :
+		$(CP) /B $(call slash2generic, $(SOURCEDIR)/HeapTestImpl.dll $(TARGETDIR)/heaptestimpl.dll)
+		-$(ERASE) $(call slash2generic, $(SOURCEDIR)/HeapTestImpl.dll)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR)/EComExample5.dll $(RAMONLYTARGETDIR)/ecomexample5.dll)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR)/EComExample5.dll $(RAMONLYTARGETDIR)/invalidsidplugin.dll)
+		-$(ERASE) $(call slash2generic, $(SOURCEDIR)/EComExample5.dll)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR)/EComExample12.dll $(RAMONLYTARGETDIR)/ecomexample12.dll)
+		-$(ERASE) $(call slash2generic, $(SOURCEDIR)/EComExample12.dll)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR)/EComExample12Upgraded.dll $(RAMONLYTARGETDIR)/ecomexample12Upgraded.dll)
+		-$(ERASE) $(call slash2generic, $(SOURCEDIR)/EComExample12Upgraded.dll)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR)/EComExample12Downgraded.dll $(RAMONLYTARGETDIR)/ecomexample12Downgraded.dll)
+		-$(ERASE) $(call slash2generic, $(SOURCEDIR)/EComExample12Downgraded.dll)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR)/EComExample14.dll $(RAMONLYTARGETDIR)/ecomexample14.dll)
+		-$(ERASE) $(call slash2generic, $(SOURCEDIR)/EComExample14.dll)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR)/EComExample14Upgraded.dll $(RAMONLYTARGETDIR)/ecomexample14Upgraded.dll)
+		-$(ERASE) $(call slash2generic, $(SOURCEDIR)/EComExample14Upgraded.dll)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR)/EComExample15.dll $(RAMONLYTARGETDIR)/ecomexample15.dll)
+		-$(ERASE) $(call slash2generic, $(SOURCEDIR)/EComExample15.dll)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR)/EComExampleBadData.dll	$(RAMONLYTARGETDIR)/ecomexamplebaddata.dll)
+		-$(ERASE) $(call slash2generic, $(SOURCEDIR)/EComExampleBadData.dll)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR)/EComExampleBadData1.dll $(RAMONLYTARGETDIR)/ecomexamplebaddata1.dll)
+		-$(ERASE) $(call slash2generic, $(SOURCEDIR)/EComExampleBadData1.dll)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR)/EComExampleBadData2.dll	$(RAMONLYTARGETDIR)/ecomexamplebaddata2.dll)
+		-$(ERASE) $(call slash2generic, $(SOURCEDIR)/EComExampleBadData2.dll)
+				$(CP) /B $(call slash2generic, $(SOURCEDIR)/EComExample3.dll $(RAMONLYTARGETDIR)/ecomexample3.dll)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR)/EComExample2.dll $(RAMONLYTARGETDIR)/ecomexample2.dll)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR)/EComExample.dll $(RAMONLYTARGETDIR)/ecomexample.dll)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR)/EComNullExample.dll $(RAMONLYTARGETDIR)/ecomnullexample.dll)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR)/EComRomOnlyExampleOnC.dll $(RAMONLYTARGETDIR)/ecomromonlyexampleonc.dll)
+		-$(ERASE) $(call slash2generic, $(SOURCEDIR)/EComRomOnlyExampleOnC.dll)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR)/EComRomRslvrExampleOnC.dll $(RAMONLYTARGETDIR)/ecomromrslvrexampleonc.dll)
+		-$(ERASE) $(call slash2generic, $(SOURCEDIR)/EComRomRslvrExampleOnC.dll)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR)/EComRomRslvrExampleOnZ.dll $(RAMONLYTARGETDIR)/ecomromrslvrexampleonz.dll)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR)/T_PlatSecResolverC.dll $(RAMONLYTARGETDIR)/t_platsecresolverc.dll)
+		-$(ERASE) $(call slash2generic, $(SOURCEDIR)/T_PlatSecResolverC.dll)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR)/T_PlatSecEcom4.dll $(RAMONLYTARGETDIR)/t_platsececom4.dll)
+		-$(ERASE) $(call slash2generic, $(SOURCEDIR)/T_PlatSecEcom4.dll)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR)/EcomUpgradeExample1.dll $(RAMONLYTARGETDIR)/ecomupgradeexample1.dll)
+		-$(ERASE) $(call slash2generic, $(SOURCEDIR)/EcomUpgradeExample1.dll)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR)/EcomUpgradeExample2.dll $(RAMONLYTARGETDIR)/ecomupgradeexample2.dll)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR)/EcomUpgradeExample3.dll $(RAMONLYTARGETDIR)/ecomupgradeexample3.dll)
+		-$(ERASE) $(call slash2generic, $(SOURCEDIR)/EcomUpgradeExample3.dll)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR)/EcomUpgradeROExample1.dll $(RAMONLYTARGETDIR)/ecomupgraderoexample1.dll)
+		-$(ERASE) $(call slash2generic, $(SOURCEDIR)/EcomUpgradeROExample1.dll)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR)/EcomUpgradeROExample2.dll $(RAMONLYTARGETDIR)/ecomupgraderoexample2.dll)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR)/EcomUpgradeROExample3.dll $(RAMONLYTARGETDIR)/ecomupgraderoexample3.dll)
+		-$(ERASE) $(call slash2generic, $(SOURCEDIR)/EcomUpgradeROExample3.dll)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR)/DefectPlugin.dll $(RAMONLYTARGETDIR)/defectplugin.dll)
+		-$(ERASE) $(call slash2generic, $(SOURCEDIR)/DefectPlugin.dll)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR)/EComExample7.dll $(RAMONLYTARGETDIR)/ecomexample7.dll)
+		-$(ERASE) $(call slash2generic, $(SOURCEDIR)/EComExample7.dll)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR)/EComExample8.dll $(RAMONLYTARGETDIR)/ecomexample8.dll)
+		-$(ERASE) $(call slash2generic, $(SOURCEDIR)/EComExample8.dll)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR)/EComCR629Example1.dll	$(RAMONLYTARGETDIR)/ecomcr629example1.dll)
+		-$(ERASE) $(call slash2generic, $(SOURCEDIR)/EComCR629Example1.dll)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR)/EComCR629Example2.dll	$(RAMONLYTARGETDIR)/ecomcr629example2.dll)
+		-$(ERASE) $(call slash2generic, $(SOURCEDIR)/EComCR629Example2.dll)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR)/LanguagePlugin.dll $(RAMONLYTARGETDIR)/languageplugin.dll)
+		-$(ERASE) $(call slash2generic $(SOURCEDIR)/LanguagePlugin.dll)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR)/EComHashExample.dll $(RAMONLYTARGETDIR)/ecomhashexample.dll)
+		-$(ERASE) $(call slash2generic, $(SOURCEDIR)/EComHashExample.dll)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR)/EComSwiExample.dll $(RAMONLYTARGETDIR)/ecomswiexample.dll)
+		-$(ERASE) $(call slash2generic, $(SOURCEDIR)/EComSwiExample.dll)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR)/exampleNine.dll $(RAMONLYTARGETDIR)/examplenine.dll)
+		-$(ERASE) $(call slash2generic, $(SOURCEDIR)/exampleNine.dll)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR)/dummycustomresolver1.dll $(RAMONLYTARGETDIR)/dummycustomresolver1.dll)
+		-$(ERASE) $(call slash2generic, $(SOURCEDIR)/dummycustomresolver1.dll)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR2)/HeapTestImpl.rsc $(TARGETDIR)/heaptestimpl.rsc)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR2)/HeapTestImpl.rsc $(RAMONLYTARGETDIR)/invalidsidplugin.rsc)
+		-$(ERASE) $(call slash2generic, $(SOURCEDIR2)/HeapTestImpl.rsc)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR2)/EComExample5.RSC $(RAMONLYTARGETDIR)/ecomexample5.rsc)
+		-$(ERASE) $(call slash2generic, $(SOURCEDIR2)/EComExample5.RSC)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR2)/EComExample12.RSC $(RAMONLYTARGETDIR)/ecomexample12.rsc)
+		-$(ERASE) $(call slash2generic, $(SOURCEDIR2)/EComExample12.RSC)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR2)/EComExample12Upgraded.RSC $(RAMONLYTARGETDIR)/ecomexample12Upgraded.rsc)
+		-$(ERASE) $(call slash2generic, $(SOURCEDIR2)/EComExample12Upgraded.RSC)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR2)/EComExample12Downgraded.RSC $(RAMONLYTARGETDIR)/ecomexample12Downgraded.rsc)
+		-$(ERASE) $(call slash2generic, $(SOURCEDIR2)/EComExample12Downgraded.RSC)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR2)/EComExample14.RSC $(RAMONLYTARGETDIR)/ecomexample14.rsc)
+		-$(ERASE) $(call slash2generic, $(SOURCEDIR2)/EComExample14.RSC)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR2)/EComExample14Upgraded.RSC $(RAMONLYTARGETDIR)/ecomexample14Upgraded.rsc)
+		-$(ERASE) $(call slash2generic, $(SOURCEDIR2)/EComExample14Upgraded.RSC)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR2)/EComExample15.RSC $(RAMONLYTARGETDIR)/ecomexample15.rsc)
+		-$(ERASE) $(call slash2generic, $(SOURCEDIR2)/EComExample15.RSC)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR2)/EComExampleBadData.RSC $(RAMONLYTARGETDIR)/ecomexamplebaddata.rsc)
+		-$(ERASE) $(call slash2generic, $(SOURCEDIR2)/EComExampleBadData.RSC)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR2)/EComExampleBadData1.RSC $(RAMONLYTARGETDIR)/ecomexamplebaddata1.rsc)
+		-$(ERASE) $(call slash2generic, $(SOURCEDIR2)/EComExampleBadData1.RSC)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR2)/EComExampleBadData2.RSC $(RAMONLYTARGETDIR)/ecomexamplebaddata2.rsc)
+		-$(ERASE) $(call slash2generic, $(SOURCEDIR2)/EComExampleBadData2.RSC)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR2)/EComExample3.RSC $(RAMONLYTARGETDIR)/ecomexample3.rsc)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR2)/EComExample2.RSC $(RAMONLYTARGETDIR)/ecomexample2.rsc)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR2)/EComExample.RSC $(RAMONLYTARGETDIR)/ecomexample.rsc)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR2)/EComRomOnlyExampleOnC.RSC $(RAMONLYTARGETDIR)/ecomromonlyexampleonc.rsc)
+		-$(ERASE) $(call slash2generic, $(SOURCEDIR2)/EComRomOnlyExampleOnC.RSC)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR2)/EComRomRslvrExampleOnC.RSC $(RAMONLYTARGETDIR)/ecomromrslvrexampleonc.rsc)
+		-$(ERASE) $(call slash2generic, $(SOURCEDIR2)/EComRomRslvrExampleOnC.RSC)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR2)/EComRomRslvrExampleOnZ.RSC $(RAMONLYTARGETDIR)/ecomromrslvrexampleonz.rsc)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR2)/T_PlatSecResolverC.RSC $(RAMONLYTARGETDIR)/t_platsecresolverc.rsc)
+		-$(ERASE) $(call slash2generic, $(SOURCEDIR2)/T_PlatSecResolverC.RSC)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR2)/T_PlatSecEcom4.RSC $(RAMONLYTARGETDIR)/t_platsececom4.rsc)
+		-$(ERASE) $(call slash2generic, $(SOURCEDIR2)/T_PlatSecEcom4.RSC)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR2)/EcomNullExample.RSC $(RAMONLYTARGETDIR)/ecomnullexample.rsc)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR2)/EcomUpgradeExample1.rsc $(RAMONLYTARGETDIR)/ecomupgradeexample1.rsc)
+		-$(ERASE) $(call slash2generic, $(SOURCEDIR2)/EcomUpgradeExample1.rsc)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR2)/EcomUpgradeExample2.rsc $(RAMONLYTARGETDIR)/ecomupgradeexample2.rsc)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR2)/EcomUpgradeExample3.rsc $(RAMONLYTARGETDIR)/ecomupgradeexample3.rsc)
+		-$(ERASE) $(call slash2generic, $(SOURCEDIR2)/EcomUpgradeExample3.rsc)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR2)/EcomUpgradeROExample1.rsc $(RAMONLYTARGETDIR)/ecomupgraderoexample1.rsc)
+		-$(ERASE) $(call slash2generic, $(SOURCEDIR2)/EcomUpgradeROExample1.rsc)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR2)/EcomUpgradeROExample2.rsc $(RAMONLYTARGETDIR)/ecomupgraderoexample2.rsc)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR2)/EcomUpgradeROExample3.rsc $(RAMONLYTARGETDIR)/ecomupgraderoexample3.rsc)
+		-$(ERASE) $(call slash2generic, $(SOURCEDIR2)/EcomUpgradeROExample3.rsc)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR2)/DefectPlugin.rsc $(RAMONLYTARGETDIR)/defectplugin.rsc)
+		-$(ERASE) $(SOURCEDIR2)/DefectPlugin.rsc)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR2)/EComExample7.rsc $(RAMONLYTARGETDIR)/ecomexample7.rsc)
+		-$(ERASE) $(SOURCEDIR2)/EComExample7.rsc)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR2)/EComExample8.rsc $(RAMONLYTARGETDIR)/ecomexample8.rsc)
+		-$(ERASE) $(SOURCEDIR2)/EComExample8.rsc)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR2)/EComCR629Example1.rsc	$(RAMONLYTARGETDIR)/ecomcr629example1.rsc)
+		-$(ERASE) $(call slash2generic, $(SOURCEDIR2)/EComCR629Example1.rsc)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR2)/EComCR629Example2.rsc	$(RAMONLYTARGETDIR)/ecomcr629example2.rsc)
+		-$(ERASE) $(call slash2generic, $(SOURCEDIR2)/EComCR629Example2.rsc)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR2)/LanguagePlugin.rsc $(RAMONLYTARGETDIR)/languageplugin.rsc)
+		-$(ERASE) $(call slash2generic, $(SOURCEDIR2)/LanguagePlugin.rsc)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR2)/LanguagePlugin.r01 $(RAMONLYTARGETDIR)/languageplugin.r01)
+		-$(ERASE) $(call slash2generic, $(SOURCEDIR2)/LanguagePlugin.r01)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR2)/LanguagePlugin.r02 $(RAMONLYTARGETDIR)/languageplugin.r02)
+		-$(ERASE) $(call slash2generic, $(SOURCEDIR2)/LanguagePlugin.r02)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR2)/LanguagePlugin.r03 $(RAMONLYTARGETDIR)/languageplugin.r03)
+		-$(ERASE) $(call slash2generic, $(SOURCEDIR2)/LanguagePlugin.r03)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR2)/EComHashExample.rsc $(RAMONLYTARGETDIR)/ecomhashexample.rsc)
+		-$(ERASE) $(call slash2generic, $(SOURCEDIR2)/EComHashExample.rsc)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR2)/EComSwiExample.rsc $(RAMONLYTARGETDIR)/ecomswiexample.rsc)
+		-$(ERASE) $(call slash2generic, $(SOURCEDIR2)/EComSwiExample.rsc)
+		$(CP) /B $(call slash2generic, $(SOURCEDIR2)/dummycustomresolver1.rsc $(RAMONLYTARGETDIR)/dummycustomresolver1.rsc)
+		-$(ERASE) $(call slash2generic, $(SOURCEDIR2)/dummycustomresolver1.rsc)
+		
+#
+# The targets invoked by bld...
+#
+
+MAKMAKE : DO_NOTHING
+
+BLD : $(RAMONLYTARGETDIR) COPYFILES
+
+CLEAN : 
+		-$(ERASE) $(call slash2generic, $(TARGETDIR)/heaptestimpl.dll)
+		-$(ERASE) $(call slash2generic, $(TARGETDIR)/heaptestimpl.rsc )
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/ecomexample5.rsc)
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/ecomexample12.rsc)
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/ecomexample12Upgraded.rsc)
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/ecomexample12Downgraded.rsc)
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/ecomexample14.rsc)
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/ecomexample14Upgraded.rsc)
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/ecomexample15.rsc)
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/ecomexamplebaddata.rsc)
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/ecomexamplebaddata1.rsc)
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/ecomexamplebaddata2.rsc)
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/ecomexample3.rsc)
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/ecomexample2.rsc)
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/ecomexample.rsc )
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/ecomromonlyexampleonc.rsc)
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/ecomromrslvrexampleonc.rsc)
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/ecomromrslvrexampleonz.rsc)  
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/ecomexample5.dll)
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/ecomexample12.dll)
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/ecomexample12Upgraded.dll)
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/ecomexample12Downgraded.dll)
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/ecomexample14.dll)
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/ecomexample14Upgraded.dll)
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/ecomexample15.dll)
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/ecomexamplebaddata.dll)
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/ecomexamplebaddata1.dll)
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/ecomexamplebaddata2.dll)
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/ecomexample3.dll) 
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/ecomexample2.dll) 
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/ecomexample.dll) 
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/ecomromonlyexampleonc.dll) 
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/ecomromrslvrexampleonc.dll) 
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/ecomromrslvrexampleonz.dll) 
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/invalidsidplugin.rsc) 
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/invalidsidplugin.dll) 
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/t_platsecresolverc.dll) 
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/t_platsecresolverc.rsc )
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/t_platsececom4.dll )
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/t_platsececom4.rsc)
+		
+
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/ecomnullexample.dll)
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/ecomnullexample.rsc)
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/ecomupgradeexample1.dll)
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/ecomupgradeexample1.rsc)
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/ecomupgradeexample2.dll)
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/ecomupgradeexample2.rsc)
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/ecomupgradeexample3.dll)
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/ecomupgradeexample3.rsc)
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/ecomupgraderoexample1.dll) 
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/ecomupgraderoexample1.rsc)
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/ecomupgraderoexample2.dll) 
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/ecomupgraderoexample2.rsc) 
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/ecomupgraderoexample3.dll) 
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/ecomupgraderoexample3.rsc) 
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/defectplugin.dll) 
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/defectplugin.rsc) 
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/ecomexample7.dll) 
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/ecomexample7.rsc )
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/ecomexample8.dll) 
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/ecomexample8.rsc)
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/ecomcr629example1.dll)
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/ecomcr629example1.rsc) 
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/ecomcr629example2.dll)
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/ecomcr629example2.rsc) 
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/languageplugin.dll) 
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/languageplugin.rsc) 
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/languageplugin.r01) 
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/languageplugin.r02) 
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/languageplugin.r03) 
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/ecomhashexample.dll) 
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/ecomhashexample.rsc) 
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/ecomswiexample.dll) 
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/ecomswiexample.rsc)
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/examplenine.dll)
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/dummycustomresolver1.dll)
+		-$(ERASE) $(call slash2generic, $(RAMONLYTARGETDIR)/dummycustomresolver1.rsc)
+
+SAVESPACE : DO_NOTHING
+
+RESOURCE : DO_NOTHING
+
+FREEZE : DO_NOTHING
+
+LIB : DO_NOTHING
+
+CLEANLIB : DO_NOTHING
+
+FINAL : DO_NOTHING
+
+RELEASABLES :
+		@echo $(TARGETDIR)/heaptestimpl.dll
+		@echo $(TARGETDIR)/heaptestimpl.rsc
+		@echo $(RAMONLYTARGETDIR)/ecomexample5.rsc
+		@echo $(RAMONLYTARGETDIR)/ecomexample12.rsc
+		@echo $(RAMONLYTARGETDIR)/ecomexample12Upgraded.rsc
+		@echo $(RAMONLYTARGETDIR)/ecomexample12Downgraded.rsc
+		@echo $(RAMONLYTARGETDIR)/ecomexample14.rsc
+		@echo $(RAMONLYTARGETDIR)/ecomexample14Upgraded.rsc
+		@echo $(RAMONLYTARGETDIR)/ecomexample15.rsc
+		@echo $(RAMONLYTARGETDIR)/ecomexamplebaddata.rsc
+		@echo $(RAMONLYTARGETDIR)/ecomexamplebaddata1.rsc
+		@echo $(RAMONLYTARGETDIR)/ecomexamplebaddata2.rsc
+		@echo $(RAMONLYTARGETDIR)/ecomexample3.rsc
+		@echo $(RAMONLYTARGETDIR)/ecomexample2.rsc
+		@echo $(RAMONLYTARGETDIR)/ecomexample.rsc 
+		@echo $(RAMONLYTARGETDIR)/ecomromonlyexampleonc.rsc
+		@echo $(RAMONLYTARGETDIR)/ecomromrslvrexampleonc.rsc
+		@echo $(RAMONLYTARGETDIR)/ecomromrslvrexampleonz.rsc
+		@echo $(RAMONLYTARGETDIR)/ecomexample5.dll
+		@echo $(RAMONLYTARGETDIR)/ecomexample12.dll
+		@echo $(RAMONLYTARGETDIR)/ecomexample12Upgraded.dll
+		@echo $(RAMONLYTARGETDIR)/ecomexample12Downgraded.dll
+		@echo $(RAMONLYTARGETDIR)/ecomexample14.dll
+		@echo $(RAMONLYTARGETDIR)/ecomexample14Upgraded.dll
+		@echo $(RAMONLYTARGETDIR)/ecomexample15.dll
+		@echo $(RAMONLYTARGETDIR)/ecomexamplebaddata.dll
+		@echo $(RAMONLYTARGETDIR)/ecomexamplebaddata1.dll
+		@echo $(RAMONLYTARGETDIR)/ecomexamplebaddata2.dll
+		@echo $(RAMONLYTARGETDIR)/ecomexample3.dll
+		@echo $(RAMONLYTARGETDIR)/ecomexample2.dll
+		@echo $(RAMONLYTARGETDIR)/ecomexample.dll
+		@echo $(RAMONLYTARGETDIR)/ecomromonlyexampleonc.dll
+		@echo $(RAMONLYTARGETDIR)/ecomromrslvrexampleonc.dll
+		@echo $(RAMONLYTARGETDIR)/ecomromrslvrexampleonz.dll
+		@echo $(RAMONLYTARGETDIR)/invalidsidplugin.rsc 
+		@echo $(RAMONLYTARGETDIR)/invalidsidplugin.dll 
+		@echo $(RAMONLYTARGETDIR)/t_platsecresolverc.dll
+		@echo $(RAMONLYTARGETDIR)/t_platsecresolverc.rsc 
+		@echo $(RAMONLYTARGETDIR)/t_platsececom4.dll
+		@echo $(RAMONLYTARGETDIR)/t_platsececom4.rsc
+		@echo $(RAMONLYTARGETDIR)/ecomnullexample.dll
+		@echo $(RAMONLYTARGETDIR)/ecomnullexample.rsc
+		@echo $(RAMONLYTARGETDIR)/ecomupgradeexample1.dll
+		@echo $(RAMONLYTARGETDIR)/ecomupgradeexample1.rsc
+		@echo $(RAMONLYTARGETDIR)/ecomupgradeexample2.dll
+		@echo $(RAMONLYTARGETDIR)/ecomupgradeexample2.rsc
+		@echo $(RAMONLYTARGETDIR)/ecomupgradeexample3.dll
+		@echo $(RAMONLYTARGETDIR)/ecomupgradeexample3.rsc
+		@echo $(RAMONLYTARGETDIR)/ecomupgraderoexample1.dll
+		@echo $(RAMONLYTARGETDIR)/ecomupgraderoexample1.rsc
+		@echo $(RAMONLYTARGETDIR)/ecomupgraderoexample2.dll
+		@echo $(RAMONLYTARGETDIR)/ecomupgraderoexample2.rsc
+		@echo $(RAMONLYTARGETDIR)/ecomupgraderoexample3.dll
+		@echo $(RAMONLYTARGETDIR)/ecomupgraderoexample3.rsc
+		@echo $(RAMONLYTARGETDIR)/defectplugin.dll
+		@echo $(RAMONLYTARGETDIR)/defectplugin.rsc
+		@echo $(RAMONLYTARGETDIR)/ecomexample7.dll
+		@echo $(RAMONLYTARGETDIR)/ecomexample7.rsc
+		@echo $(RAMONLYTARGETDIR)/ecomexample8.dll
+		@echo $(RAMONLYTARGETDIR)/ecomexample8.rsc
+		@echo $(RAMONLYTARGETDIR)/ecomcr629example1.dll
+		@echo $(RAMONLYTARGETDIR)/ecomcr629example1.rsc
+		@echo $(RAMONLYTARGETDIR)/ecomcr629example2.dll
+		@echo $(RAMONLYTARGETDIR)/ecomcr629example2.rsc
+		@echo $(RAMONLYTARGETDIR)/languageplugin.dll
+		@echo $(RAMONLYTARGETDIR)/languageplugin.rsc
+		@echo $(RAMONLYTARGETDIR)/languageplugin.r01
+		@echo $(RAMONLYTARGETDIR)/languageplugin.r02
+		@echo $(RAMONLYTARGETDIR)/languageplugin.r03
+		@echo $(RAMONLYTARGETDIR)/ecomhashexample.dll
+		@echo $(RAMONLYTARGETDIR)/ecomhashexample.rsc
+		@echo $(RAMONLYTARGETDIR)/ecomswiexample.dll
+		@echo $(RAMONLYTARGETDIR)/ecomswiexample.rsc
+		@echo $(RAMONLYTARGETDIR)/examplenine.dll
+		@echo $(RAMONLYTARGETDIR)/dummycustomresolver1.dll
+		@echo $(RAMONLYTARGETDIR)/dummycustomresolver1.rsc
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/syslibs/test/ecom3_relocatetarget.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,19 @@
+# Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for the ecom3_relocatetarget extension template
+#
+
+platform	win32
+makefile 	gnumake
+techstream	syslibs
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/syslibs/test/ecom3_relocatetarget.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,74 @@
+# Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Different from ecom3_postbuild.mk in that on armv5 the RAMONLYTARGETDIR
+# is not \epoc32\data\z\ramonly. It is \epoc32\release\armv5\<CFG>\z\ramonly.
+# This template has to preserve the udeb/urel targets.
+# Params:
+# SOURCES - list of .exe and .dll files to relocate
+# TARGET - not used
+# OPTION TARGETDIR - mandatory, it is "ramonly" for ecom testing.
+# OPTION TARGETBASE - optional, overrides \epoc32\release\<platform>\<cfg>\z 
+# OPTION SOURCEDIR -  optional, overrides \epoc32\release\<platform>\<cfg> 
+# 
+#
+
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+# $(/) is actually back slash in Windows environment. Since bld.inf are written
+# with forward slashes and $(CP) is "copy", this substitution is important.
+TARGETDIR := $(subst /,$(/),$(TARGETDIR))
+
+ifdef TARGETBASE
+TARGETBASE := $(subst PLATFORM,$(PLATFORM_PATH),$(TARGETBASE))
+TARGETBASE := $(subst CFG,$(CFG_PATH),$(TARGETBASE))
+TARGETBASE := $(subst /,$(/),$(TARGETBASE))
+DESTDIR:=$(TARGETBASE)/$(TARGETDIR)
+else
+DESTDIR:=$(EPOCROOT)epoc32/release/$(PLATFORM_PATH)/$(CFG_PATH)/z/$(TARGETDIR)
+endif
+
+ifdef SOURCEDIR
+SOURCEDIR := $(subst PLATFORM,$(PLATFORM_PATH),$(SOURCEDIR))
+SOURCEDIR := $(subst CFG,$(CFG_PATH),$(SOURCEDIR))
+SOURCEDIR := $(subst /,$(/),$(SOURCEDIR))
+else
+SOURCEDIR := $(EPOCROOT)epoc32/release/$(PLATFORM_PATH)/$(CFG_PATH)
+endif
+
+TARGET_COPY := $(foreach f,$(SOURCES),$(DESTDIR)/$(f) )
+
+$(DESTDIR) :
+	$(call createdir,"$@")
+
+$(TARGET_COPY) :
+	$(CP) $(call slash2generic, $(SOURCEDIR)/$(notdir $@) $@)
+	-$(ERASE) $(call slash2generic, $(SOURCEDIR)/$(notdir $@))
+
+#
+# The targets invoked by abld...
+#
+BLD : $(DESTDIR) $(TARGET_COPY)
+
+MAKMAKE SAVESPACE FREEZE LIB CLEANLIB RESOURCE FINAL :
+	@echo do nothing
+
+CLEAN : 
+	-$(ERASE) $(TARGET_COPY)
+
+RELEASABLES : 
+	@echo $(TARGET_COPY)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/syslibs/test/featmgr_moveplugin.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,20 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# template.meta
+# Meta information for template use
+#
+
+platform	win32
+makefile 	gnumake
+techstream	syslibs
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/syslibs/test/featmgr_moveplugin.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,162 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+ifeq ($(findstring WINS,$(PLATFORM)),WINS)
+	EPOCDATADIR:=$(EPOCROOT)epoc32/release/$(PLATFORM_PATH)/$(CFG_PATH)
+else
+	EPOCDATADIR:=$(EPOCROOT)epoc32/data
+endif
+
+BINSOURCEDIR:=$(EPOCROOT)epoc32/release/$(PLATFORM_PATH)/$(CFG_PATH)
+RESOURCESOURCEDIR:=$(EPOCDATADIR)/z/resource/plugins
+
+FILE1:=normal_plugin.dll
+FILE2:=hanging_plugin.dll
+FILE3:=corrupt_plugin.dll
+FILE4:=reconciliation_plugin.dll
+FILE5:=ab_normal_plugin.dll
+FILE6:=bc_enhanced_plugin.dll
+FILE7:=slowstart_plugin.dll
+FILE8:=invalid_plugin.dll
+FILE9:=normal_plugin.rsc
+FILE10:=hanging_plugin.rsc
+FILE11:=corrupt_plugin.rsc
+FILE12:=reconciliation_plugin.rsc
+FILE13:=ab_normal_plugin.rsc
+FILE14:=bc_enhanced_plugin.rsc
+FILE15:=slowstart_plugin.rsc
+FILE16:=invalid_plugin.rsc
+
+TARGETDIR:=$(EPOCDATADIR)/z/test/efm/plugins
+# we copy the normal plugin files to the resource folder on C: drive for the plugin ignoring test
+PLUGINTARGETDIR:=$(EPOCROOT)epoc32/winscw/c/sys/bin
+RESOURCETARGETDIR:=$(EPOCROOT)epoc32/winscw/c/resource/plugins
+
+$(TARGETDIR) :
+	$(call createdir,"$@")
+
+$(PLUGINTARGETDIR) :
+	$(call createdir,"$@")
+
+$(RESOURCETARGETDIR) :
+	$(call createdir,"$@")
+
+COPYFILES : $(TARGETDIR) $(PLUGINTARGETDIR) $(RESOURCETARGETDIR) 
+	$(call forcecopy,$(BINSOURCEDIR)/$(FILE1),$(TARGETDIR)/$(FILE1))
+	$(call forcecopy,$(BINSOURCEDIR)/$(FILE1),$(PLUGINTARGETDIR)/$(FILE1))
+	$(call forcecopy,$(BINSOURCEDIR)/$(FILE2),$(TARGETDIR)/$(FILE2))
+	$(call forcecopy,$(BINSOURCEDIR)/$(FILE3),$(TARGETDIR)/$(FILE3))
+	$(call forcecopy,$(BINSOURCEDIR)/$(FILE4),$(TARGETDIR)/$(FILE4))
+	$(call forcecopy,$(BINSOURCEDIR)/$(FILE5),$(TARGETDIR)/$(FILE5))
+	$(call forcecopy,$(BINSOURCEDIR)/$(FILE6),$(TARGETDIR)/$(FILE6))
+	$(call forcecopy,$(BINSOURCEDIR)/$(FILE7),$(TARGETDIR)/$(FILE7))
+	$(call forcecopy,$(BINSOURCEDIR)/$(FILE8),$(TARGETDIR)/$(FILE8))
+	$(call forcecopy,$(RESOURCESOURCEDIR)/$(FILE9),$(TARGETDIR)/$(FILE9))
+	$(call forcecopy,$(RESOURCESOURCEDIR)/$(FILE9),$(RESOURCETARGETDIR)/$(FILE9))
+	$(call forcecopy,$(RESOURCESOURCEDIR)/$(FILE10),$(TARGETDIR)/$(FILE10))
+	$(call forcecopy,$(RESOURCESOURCEDIR)/$(FILE11),$(TARGETDIR)/$(FILE11))
+	$(call forcecopy,$(RESOURCESOURCEDIR)/$(FILE12),$(TARGETDIR)/$(FILE12))
+	$(call forcecopy,$(RESOURCESOURCEDIR)/$(FILE13),$(TARGETDIR)/$(FILE13))
+	$(call forcecopy,$(RESOURCESOURCEDIR)/$(FILE14),$(TARGETDIR)/$(FILE14))
+	$(call forcecopy,$(RESOURCESOURCEDIR)/$(FILE15),$(TARGETDIR)/$(FILE15))
+	$(call forcecopy,$(RESOURCESOURCEDIR)/$(FILE16),$(TARGETDIR)/$(FILE16))
+
+ERASEFILES : $(call slash2generic,$(foreach FILE, $(FILE1) $(FILE2) $(FILE3) $(FILE4) $(FILE5) $(FILE6) $(FILE7) $(FILE8), $(TARGETDIR)/$(FILE)) $(PLUGINTARGETDIR)/$(FILE1))
+	$(call forceremove,$(BINSOURCEDIR)/$(FILE1))
+	$(call forceremove,$(BINSOURCEDIR)/$(FILE2))
+	$(call forceremove,$(BINSOURCEDIR)/$(FILE3))
+	$(call forceremove,$(BINSOURCEDIR)/$(FILE4))
+	$(call forceremove,$(BINSOURCEDIR)/$(FILE5))
+	$(call forceremove,$(BINSOURCEDIR)/$(FILE6))
+	$(call forceremove,$(BINSOURCEDIR)/$(FILE7))
+	$(call forceremove,$(BINSOURCEDIR)/$(FILE8))
+	
+DO_NOTHING:
+	@echo do nothing
+
+#
+# The targets invoked by bld...
+#
+
+BLD : DO_NOTHING
+
+CLEAN :
+	$(call forceremove,$(TARGETDIR)/$(FILE1))
+	$(call forceremove,$(PLUGINTARGETDIR)/$(FILE1))
+	$(call forceremove,$(TARGETDIR)/$(FILE2))
+	$(call forceremove,$(TARGETDIR)/$(FILE3))
+	$(call forceremove,$(TARGETDIR)/$(FILE4))
+	$(call forceremove,$(TARGETDIR)/$(FILE5))
+	$(call forceremove,$(TARGETDIR)/$(FILE6))
+	$(call forceremove,$(TARGETDIR)/$(FILE7))
+	$(call forceremove,$(TARGETDIR)/$(FILE8))
+	$(call forceremove,$(TARGETDIR)/$(FILE9))
+	$(call forceremove,$(RESOURCETARGETDIR)/$(FILE9))
+	$(call forceremove,$(TARGETDIR)/$(FILE10))
+	$(call forceremove,$(TARGETDIR)/$(FILE11))
+	$(call forceremove,$(TARGETDIR)/$(FILE12))
+	$(call forceremove,$(TARGETDIR)/$(FILE13))
+	$(call forceremove,$(TARGETDIR)/$(FILE14))
+	$(call forceremove,$(TARGETDIR)/$(FILE15))
+	$(call forceremove,$(TARGETDIR)/$(FILE16))
+	$(call forceremove,$(RESOURCESOURCEDIR)/$(FILE9))
+	$(call forceremove,$(RESOURCESOURCEDIR)/$(FILE10))
+	$(call forceremove,$(RESOURCESOURCEDIR)/$(FILE11))
+	$(call forceremove,$(RESOURCESOURCEDIR)/$(FILE12))
+	$(call forceremove,$(RESOURCESOURCEDIR)/$(FILE13))
+	$(call forceremove,$(RESOURCESOURCEDIR)/$(FILE14))
+	$(call forceremove,$(RESOURCESOURCEDIR)/$(FILE15))
+	$(call forceremove,$(RESOURCESOURCEDIR)/$(FILE16))
+
+RELEASABLES :
+	@echo $(TARGETDIR)/$(FILE1)
+	@echo $(PLUGINTARGETDIR)/$(FILE1)
+	@echo $(TARGETDIR)/$(FILE2)
+	@echo $(TARGETDIR)/$(FILE3)
+	@echo $(TARGETDIR)/$(FILE4)
+	@echo $(TARGETDIR)/$(FILE5)
+	@echo $(TARGETDIR)/$(FILE6)
+	@echo $(TARGETDIR)/$(FILE7)
+	@echo $(TARGETDIR)/$(FILE8)
+	@echo $(TARGETDIR)/$(FILE9)
+	@echo $(RESOURCETARGETDIR)/$(FILE9)
+	@echo $(TARGETDIR)/$(FILE10)
+	@echo $(TARGETDIR)/$(FILE11)
+	@echo $(TARGETDIR)/$(FILE12)
+	@echo $(TARGETDIR)/$(FILE13)
+	@echo $(TARGETDIR)/$(FILE14)
+	@echo $(TARGETDIR)/$(FILE15)
+	@echo $(TARGETDIR)/$(FILE16)
+
+MAKMAKE : DO_NOTHING
+
+SAVESPACE : DO_NOTHING
+
+LIB : DO_NOTHING
+
+CLEANLIB : DO_NOTHING
+
+FREEZE : DO_NOTHING
+
+RESOURCE : DO_NOTHING
+
+FINAL : COPYFILES ERASEFILES
+
+ROMFILE : DO_NOTHING
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/syslibs/test/logeng_copytestfiles.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,19 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for logeng_copytestfiles use
+#
+
+platform	win32
+makefile 	gnumake
+techstream	syslibs
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/syslibs/test/logeng_copytestfiles.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,85 @@
+# Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Copy logeng test dat file(s)
+# 
+#
+
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+ifeq ($(findstring WINS,$(PLATFORM)),WINS)
+	TARGETDIR = $(EPOCROOT)epoc32/release/$(PLATFORM_PATH)/$(CFG_PATH)/z/system/data
+	TARGETDIR2= $(EPOCROOT)epoc32/release/$(PLATFORM_PATH)/$(CFG_PATH)/z/private/101f401d
+else
+	TARGETDIR = $(EPOCROOT)epoc32/data/z/system/data
+	TARGETDIR2=$(EPOCROOT)epoc32/data/z/private/101f401d
+endif
+
+TARGET_FILES = $(TARGETDIR)/oldLogdbu.dat \
+			   $(TARGETDIR)/corruptLogdbu.dat \
+			   $(TARGETDIR)/corruptDamagedLogdbu.dat \
+			   $(TARGETDIR)/101f401d.txt \
+			   $(TARGETDIR2)/CntModel.ini \
+			   $(TARGETDIR2)/SQLite__Contacts.cdb
+			   
+
+$(TARGETDIR)/oldLogdbu.dat : $(EXTENSION_ROOT)/../test/src/oldLogdbu.dat $(TARGETDIR)
+	$(call forcecopy,$(EXTENSION_ROOT)/../test/src/oldLogdbu.dat,$(TARGETDIR)/oldLogdbu.dat)
+$(TARGETDIR)/corruptLogdbu.dat : $(EXTENSION_ROOT)/../test/src/corruptLogdbu.dat
+	$(call forcecopy,$(EXTENSION_ROOT)/../test/src/corruptLogdbu.dat,$(TARGETDIR)/corruptLogdbu.dat)
+$(TARGETDIR)/corruptDamagedLogdbu.dat : $(EXTENSION_ROOT)/../test/src/corruptDamagedLogdbu.dat
+	$(call forcecopy,$(EXTENSION_ROOT)/../test/src/corruptDamagedLogdbu.dat,$(TARGETDIR)/corruptDamagedLogdbu.dat)
+$(TARGETDIR)/101f401d.txt : $(EXTENSION_ROOT)/../test/101f401d.txt
+	$(call forcecopy,$(EXTENSION_ROOT)/../test/101f401d.txt,$(TARGETDIR)/101f401d.txt)
+$(TARGETDIR2)/CntModel.ini : $(EXTENSION_ROOT)/../test/src/CntModel.ini $(TARGETDIR2)
+	$(call forcecopy,$(EXTENSION_ROOT)/../test/src/CntModel.ini,$(TARGETDIR2)/CntModel.ini)
+$(TARGETDIR2)/SQLite__Contacts.cdb : $(EXTENSION_ROOT)/../test/src/SQLite__Contacts.cdb $(TARGETDIR2)
+	$(call forcecopy,$(EXTENSION_ROOT)/../test/src/SQLite__Contacts.cdb,$(TARGETDIR2)/SQLite__Contacts.cdb)
+
+
+DO_NOTHING :
+	@echo do nothing
+
+#
+# The targets invoked by bld...
+#
+
+MAKMAKE : DO_NOTHING
+
+RESOURCE : DO_NOTHING
+
+SAVESPACE : DO_NOTHING
+
+BLD : $(TARGET_FILES)
+
+FREEZE : DO_NOTHING
+
+LIB : DO_NOTHING
+
+CLEANLIB : DO_NOTHING
+
+FINAL : DO_NOTHING
+
+CLEAN :
+	$(call forceremove,$(TARGET_FILES))
+
+RELEASABLES :
+	@echo $(TARGETDIR)/oldLogdbu.dat
+	@echo $(TARGETDIR)/corruptLogdbu.dat
+	@echo $(TARGETDIR)/corruptDamagedLogdbu.dat
+	@echo $(TARGETDIR)/101f401d.txt
+	@echo $(TARGETDIR2)/CntModel.ini
+	@echo $(TARGETDIR2)/SQLite__Contacts.cdb
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/syslibs/test/sql_copyperfsqltestfiles.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,20 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# sql_copyperfsqltestfile.meta
+# Meta information for sql_copyperfsqltestfile
+#
+
+platform	win32
+makefile 	gnumake
+techstream	syslibs
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/syslibs/test/sql_copyperfsqltestfiles.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,213 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Copy SQL test files
+# 
+#
+
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+ifeq ($(findstring WINS,$(PLATFORM)),WINS)
+TARGETDIR=$(EPOCROOT)epoc32/release/$(PLATFORM_PATH)/$(CFG_PATH)/z/testdata
+else
+TARGETDIR=$(EPOCROOT)epoc32/data/z/testdata
+endif
+
+SOURCEDIR = $(EXTENSION_ROOT)/../SCRIPT
+SOURCEDIR2= $(EXTENSION_ROOT)/../TESTDATA
+
+$(TARGETDIR):
+	$(call createdir, "$@")
+
+COPYFILES :
+	$(call forcecopy,$(SOURCEDIR)/SqlDB_Config.script,$(TARGETDIR)/sqldb_config.script)
+	$(call forcecopy,$(SOURCEDIR)/SqlDB_BaseDatabase.script,$(TARGETDIR)/sqldb_basedatabase.script)
+	$(call forcecopy,$(SOURCEDIR)/SqlDB_Measurement_CreateTable.script,$(TARGETDIR)/sqldb_measurement_createtable.script)
+	$(call forcecopy,$(SOURCEDIR)/SqlDB_Performance_CreateTable.script,$(TARGETDIR)/sqldb_performance_createtable.script)
+	$(call forcecopy,$(SOURCEDIR)/SqlDB_Measurement_insert.script,$(TARGETDIR)/sqldb_measurement_insert.script)
+	$(call forcecopy,$(SOURCEDIR)/SqlDB_Performance_insert.script,$(TARGETDIR)/sqldb_performance_insert.script)
+	$(call forcecopy,$(SOURCEDIR)/SqlDB_Measurement_droptable.script,$(TARGETDIR)/sqldb_measurement_droptable.script)
+	$(call forcecopy,$(SOURCEDIR)/SqlDB_Performance_droptable.script,$(TARGETDIR)/sqldb_performance_droptable.script)
+	$(call forcecopy,$(SOURCEDIR)/SqlDB_Measurement_delete.script,$(TARGETDIR)/sqldb_measurement_delete.script)
+	$(call forcecopy,$(SOURCEDIR)/SqlDB_Performance_delete.script,$(TARGETDIR)/sqldb_performance_delete.script)
+	$(call forcecopy,$(SOURCEDIR)/SqlDB_Measurement_altertable.script,$(TARGETDIR)/sqldb_measurement_altertable.script)
+	$(call forcecopy,$(SOURCEDIR)/SqlDB_Performance_altertable.script,$(TARGETDIR)/sqldb_performance_altertable.script)
+	$(call forcecopy,$(SOURCEDIR)/SqlDB_Measurement_update.script,$(TARGETDIR)/sqldb_measurement_update.script)
+	$(call forcecopy,$(SOURCEDIR)/SqlDB_Performance_update.script,$(TARGETDIR)/sqldb_performance_update.script)
+	$(call forcecopy,$(SOURCEDIR)/SqlDB_Measurement_Concurrency.script,$(TARGETDIR)/sqldb_measurement_concurrency.script)
+	$(call forcecopy,$(SOURCEDIR)/SqlDB_Performance_Concurrency.script,$(TARGETDIR)/sqldb_performance_concurrency.script)
+	$(call forcecopy,$(SOURCEDIR)/SqlDB_Measurement_Select1.script,$(TARGETDIR)/sqldb_measurement_select1.script)
+	$(call forcecopy,$(SOURCEDIR)/SqlDB_Performance_Select1.script,$(TARGETDIR)/sqldb_performance_select1.script)
+	$(call forcecopy,$(SOURCEDIR)/SqlDB_Measurement_Select2.script,$(TARGETDIR)/sqldb_measurement_select2.script)
+	$(call forcecopy,$(SOURCEDIR)/SqlDB_Performance_Select2.script,$(TARGETDIR)/sqldb_performance_select2.script)
+	$(call forcecopy,$(SOURCEDIR)/SqlDB_Measurement_Trigger.script,$(TARGETDIR)/sqldb_measurement_trigger.script)
+	$(call forcecopy,$(SOURCEDIR)/SqlDB_Performance_Trigger.script,$(TARGETDIR)/sqldb_performance_trigger.script)
+	$(call forcecopy,$(SOURCEDIR)/SqlDB_Measurement_Transaction_Commit.script,$(TARGETDIR)/sqldb_measurement_transaction_commit.script)
+	$(call forcecopy,$(SOURCEDIR)/SqlDB_Measurement_Transaction_Commit_Index.script,$(TARGETDIR)/sqldb_measurement_transaction_commit_index.script)
+	$(call forcecopy,$(SOURCEDIR)/SqlDB_Measurement_Transaction_Commit_Mixed.script,$(TARGETDIR)/sqldb_measurement_transaction_commit_mixed.script)
+	$(call forcecopy,$(SOURCEDIR)/SqlDB_Performance_Transaction_Commit.script,$(TARGETDIR)/sqldb_performance_transaction_commit.script)
+	$(call forcecopy,$(SOURCEDIR)/SqlDB_Performance_Transaction_Commit_Index.script,$(TARGETDIR)/sqldb_performance_transaction_commit_index.script)
+	$(call forcecopy,$(SOURCEDIR)/SqlDB_Performance_Transaction_Commit_Mixed.script,$(TARGETDIR)/sqldb_performance_transaction_commit_mixed.script)
+	$(call forcecopy,$(SOURCEDIR)/SqlDB_Measurement_Transaction_Rollback.script,$(TARGETDIR)/sqldb_measurement_transaction_rollback.script)
+	$(call forcecopy,$(SOURCEDIR)/SqlDB_Measurement_Transaction_Rollback_Index.script,$(TARGETDIR)/sqldb_measurement_transaction_rollback_index.script)
+	$(call forcecopy,$(SOURCEDIR)/SqlDB_Measurement_Transaction_Rollback_Mixed.script,$(TARGETDIR)/sqldb_measurement_transaction_rollback_mixed.script)
+	$(call forcecopy,$(SOURCEDIR)/SqlDB_Performance_Transaction_Rollback.script,$(TARGETDIR)/sqldb_performance_transaction_rollback.script)
+	$(call forcecopy,$(SOURCEDIR)/SqlDB_Performance_Transaction_Rollback_Index.script,$(TARGETDIR)/sqldb_performance_transaction_rollback_index.script)
+	$(call forcecopy,$(SOURCEDIR)/SqlDB_Performance_Transaction_Rollback_Mixed.script,$(TARGETDIR)/sqldb_performance_transaction_rollback_mixed.script)
+	$(call forcecopy,$(SOURCEDIR)/SqlDB_Measurement_AttachDB.script,$(TARGETDIR)/sqldb_measurement_attachdb.script)
+	$(call forcecopy,$(SOURCEDIR)/SqlDB_Performance_AttachDB.script,$(TARGETDIR)/sqldb_performance_attachdb.script)
+	$(call forcecopy,$(SOURCEDIR)/SqlDB_Measurement_Apps.script,$(TARGETDIR)/sqldb_measurement_apps.script)
+	$(call forcecopy,$(SOURCEDIR)/SqlDB_Performance_Apps.script,$(TARGETDIR)/sqldb_performance_apps.script)
+	$(call forcecopy,$(SOURCEDIR)/SqlDB_Performance_Apps_Create.script,$(TARGETDIR)/sqldb_performance_apps_create.script)
+	$(call forcecopy,$(SOURCEDIR)/SqlDB_Performance_Apps_Delete.script,$(TARGETDIR)/sqldb_performance_apps_delete.script)
+	$(call forcecopy,$(SOURCEDIR)/SqlDB_Performance_Apps_Modify.script,$(TARGETDIR)/sqldb_performance_apps_modify.script)
+	$(call forcecopy,$(SOURCEDIR)/SqlDB_Performance_Apps_Select.script,$(TARGETDIR)/sqldb_performance_apps_select.script)
+	$(call forcecopy,$(SOURCEDIR)/SqlDB_Performance_Apps_Add.script,$(TARGETDIR)/sqldb_performance_apps_add.script)
+	$(call forcecopy,$(SOURCEDIR2)/TestsqlDB_comparec0.db,$(TARGETDIR)/testsqldb_comparec0.db)
+	$(call forcecopy,$(SOURCEDIR2)/TestsqlDB_comparec1.db,$(TARGETDIR)/testsqldb_comparec1.db)
+	$(call forcecopy,$(SOURCEDIR2)/TestsqlDB_comparec2.db,$(TARGETDIR)/testsqldb_comparec2.db)
+	$(call forcecopy,$(SOURCEDIR2)/TestsqlDB_comparec3.db,$(TARGETDIR)/testsqldb_comparec3.db)
+	$(call forcecopy,$(SOURCEDIR2)/TestsqlDB_comparef.db,$(TARGETDIR)/testsqldb_comparef.db)
+	$(call forcecopy,$(SOURCEDIR2)/SqlDB_testexecute.ini,$(TARGETDIR)/sqldb_testexecute.ini)
+	$(call forcecopy,$(SOURCEDIR2)/TestSqlDB_Stress.ini,$(TARGETDIR)/testsqldb_stress.ini)
+	$(call forcecopy,$(SOURCEDIR2)/TestSqlDB_Stress_view.ini,$(TARGETDIR)/testsqldb_stress_view.ini)
+
+DO_NOTHING :
+	@echo do nothing
+
+#
+# The targets invoked by bld...
+#
+
+MAKMAKE : DO_NOTHING
+
+BLD : $(TARGETDIR) COPYFILES
+
+CLEAN : 
+	$(call forceremove,$(TARGETDIR)/sqldb_config.script)
+	$(call forceremove,$(TARGETDIR)/sqldb_basedatabase.script)
+	$(call forceremove,$(TARGETDIR)/sqldb_measurement_createtable.script)
+	$(call forceremove,$(TARGETDIR)/sqldb_performance_createtable.script)
+	$(call forceremove,$(TARGETDIR)/sqldb_measurement_insert.script)
+	$(call forceremove,$(TARGETDIR)/sqldb_performance_insert.script)
+	$(call forceremove,$(TARGETDIR)/sqldb_measurement_droptable.script)
+	$(call forceremove,$(TARGETDIR)/sqldb_performance_droptable.script)
+	$(call forceremove,$(TARGETDIR)/sqldb_measurement_delete.script)
+	$(call forceremove,$(TARGETDIR)/sqldb_performance_delete.script)
+	$(call forceremove,$(TARGETDIR)/sqldb_measurement_altertable.script)
+	$(call forceremove,$(TARGETDIR)/sqldb_performance_altertable.script)
+	$(call forceremove,$(TARGETDIR)/sqldb_measurement_update.script)
+	$(call forceremove,$(TARGETDIR)/sqldb_performance_update.script)
+	$(call forceremove,$(TARGETDIR)/sqldb_measurement_concurrency.script)
+	$(call forceremove,$(TARGETDIR)/sqldb_performance_concurrency.script)
+	$(call forceremove,$(TARGETDIR)/sqldb_measurement_select1.script)
+	$(call forceremove,$(TARGETDIR)/sqldb_performance_select1.script)
+	$(call forceremove,$(TARGETDIR)/sqldb_measurement_select2.script)
+	$(call forceremove,$(TARGETDIR)/sqldb_performance_select2.script)
+	$(call forceremove,$(TARGETDIR)/sqldb_measurement_trigger.script)
+	$(call forceremove,$(TARGETDIR)/sqldb_performance_trigger.script)
+	$(call forceremove,$(TARGETDIR)/sqldb_measurement_transaction_commit.script)
+	$(call forceremove,$(TARGETDIR)/sqldb_measurement_transaction_commit_index.script)
+	$(call forceremove,$(TARGETDIR)/sqldb_measurement_transaction_commit_mixed.script)
+	$(call forceremove,$(TARGETDIR)/sqldb_performance_transaction_commit.script)
+	$(call forceremove,$(TARGETDIR)/sqldb_performance_transaction_commit_mixed.script)
+	$(call forceremove,$(TARGETDIR)/sqldb_measurement_transaction_rollback.script)
+	$(call forceremove,$(TARGETDIR)/sqldb_measurement_transaction_rollback_index.script)
+	$(call forceremove,$(TARGETDIR)/sqldb_measurement_transaction_rollback_mixed.script)
+	$(call forceremove,$(TARGETDIR)/sqldb_performance_transaction_rollback.script)
+	$(call forceremove,$(TARGETDIR)/sqldb_performance_transaction_rollback_index.script)
+	$(call forceremove,$(TARGETDIR)/sqldb_performance_transaction_rollback_mixed.script)
+	$(call forceremove,$(TARGETDIR)/sqldb_measurement_attachdb.script)
+	$(call forceremove,$(TARGETDIR)/sqldb_performance_attachdb.script)
+	$(call forceremove,$(TARGETDIR)/sqldb_measurement_apps.script)
+	$(call forceremove,$(TARGETDIR)/sqldb_performance_apps.script)
+	$(call forceremove,$(TARGETDIR)/sqldb_performance_apps_create.script)
+	$(call forceremove,$(TARGETDIR)/sqldb_performance_apps_delete.script)
+	$(call forceremove,$(TARGETDIR)/sqldb_performance_apps_modify.script)
+	$(call forceremove,$(TARGETDIR)/sqldb_performance_apps_select.script)
+	$(call forceremove,$(TARGETDIR)/sqldb_performance_apps_add.script)
+	$(call forceremove,$(TARGETDIR)/testsqldb_comparec0.db)
+	$(call forceremove,$(TARGETDIR)/testsqldb_comparec1.db)
+	$(call forceremove,$(TARGETDIR)/testsqldb_comparec2.db)
+	$(call forceremove,$(TARGETDIR)/testsqldb_comparec3.db)
+	$(call forceremove,$(TARGETDIR)/testsqldb_comparef.db)
+	$(call forceremove,$(TARGETDIR)/sqldb_testexecute.ini)
+	$(call forceremove,$(TARGETDIR)/testsqldb_stress.ini)
+	$(call forceremove,$(TARGETDIR)/testsqldb_stress_view.ini)
+
+SAVESPACE : DO_NOTHING
+
+RESOURCE : DO_NOTHING
+
+FREEZE : DO_NOTHING
+
+LIB : DO_NOTHING
+
+CLEANLIB : DO_NOTHING
+
+FINAL : DO_NOTHING
+
+RELEASABLES :
+	@echo $(TARGETDIR)/sqldb_config.script
+	@echo $(TARGETDIR)/sqldb_basedatabase.script
+	@echo $(TARGETDIR)/sqldb_measurement_createtable.script
+	@echo $(TARGETDIR)/sqldb_performance_createtable.script
+	@echo $(TARGETDIR)/sqldb_measurement_insert.script
+	@echo $(TARGETDIR)/sqldb_performance_insert.script
+	@echo $(TARGETDIR)/sqldb_measurement_droptable.script
+	@echo $(TARGETDIR)/sqldb_performance_droptable.script
+	@echo $(TARGETDIR)/sqldb_measurement_delete.script
+	@echo $(TARGETDIR)/sqldb_performance_delete.script
+	@echo $(TARGETDIR)/sqldb_measurement_altertable.script
+	@echo $(TARGETDIR)/sqldb_performance_altertable.script
+	@echo $(TARGETDIR)/sqldb_measurement_update.script
+	@echo $(TARGETDIR)/sqldb_performance_update.script
+	@echo $(TARGETDIR)/sqldb_measurement_concurrency.script
+	@echo $(TARGETDIR)/sqldb_performance_concurrency.script
+	@echo $(TARGETDIR)/sqldb_measurement_select1.script
+	@echo $(TARGETDIR)/sqldb_performance_select1.script
+	@echo $(TARGETDIR)/sqldb_measurement_select2.script
+	@echo $(TARGETDIR)/sqldb_performance_select2.script
+	@echo $(TARGETDIR)/sqldb_measurement_trigger.script
+	@echo $(TARGETDIR)/sqldb_performance_trigger.script
+	@echo $(TARGETDIR)/sqldb_measurement_transaction_commit.script
+	@echo $(TARGETDIR)/sqldb_measurement_transaction_commit_index.script
+	@echo $(TARGETDIR)/sqldb_measurement_transaction_commit_mixed.script
+	@echo $(TARGETDIR)/sqldb_performance_transaction_commit.script
+	@echo $(TARGETDIR)/sqldb_performance_transaction_commit_mixed.script
+	@echo $(TARGETDIR)/sqldb_measurement_transaction_rollback.script
+	@echo $(TARGETDIR)/sqldb_measurement_transaction_rollback_index.script
+	@echo $(TARGETDIR)/sqldb_measurement_transaction_rollback_mixed.script
+	@echo $(TARGETDIR)/sqldb_performance_transaction_rollback.script
+	@echo $(TARGETDIR)/sqldb_performance_transaction_rollback_index.script
+	@echo $(TARGETDIR)/sqldb_performance_transaction_rollback_mixed.script
+	@echo $(TARGETDIR)/sqldb_measurement_attachdb.script
+	@echo $(TARGETDIR)/sqldb_performance_attachdb.script
+	@echo $(TARGETDIR)/sqldb_measurement_apps.script
+	@echo $(TARGETDIR)/sqldb_performance_apps.script
+	@echo $(TARGETDIR)/sqldb_performance_apps_create.script
+	@echo $(TARGETDIR)/sqldb_performance_apps_delete.script
+	@echo $(TARGETDIR)/sqldb_performance_apps_modify.script
+	@echo $(TARGETDIR)/sqldb_performance_apps_select.script
+	@echo $(TARGETDIR)/sqldb_performance_apps_add.script
+	@echo $(TARGETDIR)/testsqldb_comparec0.db
+	@echo $(TARGETDIR)/testsqldb_comparec1.db
+	@echo $(TARGETDIR)/testsqldb_comparec2.db
+	@echo $(TARGETDIR)/testsqldb_comparec3.db
+	@echo $(TARGETDIR)/testsqldb_comparef.db
+	@echo $(TARGETDIR)/sqldb_testexecute.ini
+	@echo $(TARGETDIR)/testsqldb_stress.ini
+	@echo $(TARGETDIR)/testsqldb_stress_view.ini
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/syslibs/test/sql_copysqltestfiles.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,19 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for sql_copysqltestfiles
+#
+
+platform	win32
+makefile 	gnumake
+techstream	syslibs
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/syslibs/test/sql_copysqltestfiles.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,146 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Copy SQL test files
+# 
+#
+
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+ifeq ($(findstring WINS,$(PLATFORM)),WINS)
+	TARGETDIR=$(EPOCROOT)epoc32/release/$(PLATFORM_PATH)/$(CFG_PATH)/z/test
+	TARGETDIR2=$(EPOCROOT)epoc32/release/$(PLATFORM_PATH)/$(CFG_PATH)/z/private/10281e17
+	TARGETDIR3=$(EPOCROOT)epoc32/release/$(PLATFORM_PATH)/$(CFG_PATH)/z/private/21212124
+else
+	TARGETDIR=$(EPOCROOT)epoc32/data/z/system/test
+	TARGETDIR2=$(EPOCROOT)epoc32/data/z/private/10281e17
+	TARGETDIR3=$(EPOCROOT)epoc32/data/z/private/21212124
+
+endif
+
+SOURCEDIR = $(EXTENSION_ROOT)/../TEST
+
+$(TARGETDIR):
+	$(call createdir, "$@")
+$(TARGETDIR2):
+	$(call createdir, "$@")
+$(TARGETDIR3):	
+	$(call createdir, "$@")
+
+COPYFILES :
+	$(call forcecopy,$(SOURCEDIR)/TestDb1.db,$(TARGETDIR)/testdb1.db)
+	$(call forcecopy,$(SOURCEDIR)/CorruptDb.db,$(TARGETDIR)/corruptdb.db)
+	$(call forcecopy,$(SOURCEDIR)/contacts_schema_to_vendors.sql,$(TARGETDIR)/contacts_schema_to_vendors.sql)
+	$(call forcecopy,$(SOURCEDIR)/add_simple_contacts.sql,$(TARGETDIR)/add_simple_contacts.sql)
+	$(call forcecopy,$(SOURCEDIR)/t_SqlShortNonDb.db,$(TARGETDIR)/t_sqlshortnondb.db)
+	$(call forcecopy,$(SOURCEDIR)/contacts_startup_time.sql,$(TARGETDIR)/contacts_startup_time.sql)
+	$(call forcecopy,$(SOURCEDIR)/t_inc095412.db,$(TARGETDIR)/t_inc095412.db)
+	$(call forcecopy,$(SOURCEDIR)/{21212122}AADb2.db,$(TARGETDIR2)/[21212122]aadb2.db)
+	$(call forcecopy,$(SOURCEDIR)/{21212122}BBDb2.db,$(TARGETDIR2)/[21212122]bbdb2.db)
+	$(call forcecopy,$(SOURCEDIR)/{21212125}T_AB.db,$(TARGETDIR2)/[21212125]t_ab.db)
+	$(call forcecopy,$(SOURCEDIR)/{1111CCCC}T_AB.db,$(TARGETDIR2)/[1111CCCC]t_ab.db)
+	$(call forcecopy,$(SOURCEDIR)/{21212125}T_OneDefPolicy.db,$(TARGETDIR2)/[21212125]t_onedefpolicy.db)
+#	$(call forcecopy,$(SOURCEDIR)/SqlServer.cfg,$(TARGETDIR2)/sqlserver.cfg)
+	$(call forcecopy,$(SOURCEDIR)/t_sqldb1.db,$(TARGETDIR3)/t_sqldb1.db)
+	$(call forcecopy,$(SOURCEDIR)/{98765432}t_2defaultpolicies.db,$(TARGETDIR2)/[98765432]t_2defaultpolicies.db)
+	$(call forcecopy,$(SOURCEDIR)/{98765432}t_emptysettings.db,$(TARGETDIR2)/[98765432]t_emptysettings.db)
+	$(call forcecopy,$(SOURCEDIR)/{98765432}t_invobject.db,$(TARGETDIR2)/[98765432]t_invobject.db)
+	$(call forcecopy,$(SOURCEDIR)/{98765432}t_invversion.db,$(TARGETDIR2)/[98765432]t_invversion.db)
+	$(call forcecopy,$(SOURCEDIR)/{98765432}t_longcollation.db,$(TARGETDIR2)/[98765432]t_longcollation.db)
+	$(call forcecopy,$(SOURCEDIR)/{98765432}t_nocollation.db,$(TARGETDIR2)/[98765432]t_nocollation.db)
+	$(call forcecopy,$(SOURCEDIR)/{98765432}t_nodefaultpolicy.db,$(TARGETDIR2)/[98765432]t_nodefaultpolicy.db)
+	$(call forcecopy,$(SOURCEDIR)/{98765432}t_nosettings.db,$(TARGETDIR2)/[98765432]t_nosettings.db)
+	$(call forcecopy,$(SOURCEDIR)/default_avacon.dbSQL,$(TARGETDIR)/default_avacon.dbSQL)
+	$(call forcecopy,$(SOURCEDIR)/t_sqlbur_backup_ver0.bak,$(TARGETDIR)/t_sqlbur_backup_ver0.bak)
+	$(call forcecopy,$(SOURCEDIR)/t_sqlperformance4.sql,$(TARGETDIR)/t_sqlperformance4.sql)
+
+	
+DO_NOTHING :
+	@echo do nothing
+
+#
+# The targets invoked by bld...
+#
+
+MAKMAKE : DO_NOTHING
+
+BLD : $(TARGETDIR) $(TARGETDIR2) $(TARGETDIR3) $(SOURCEDIR) COPYFILES
+
+CLEAN : 
+	$(call forceremove,$(TARGETDIR)/testdb1.db)
+	$(call forceremove,$(TARGETDIR)/corruptdb.db)
+	$(call forceremove,$(TARGETDIR)/contacts_schema_to_vendors.sql)
+	$(call forceremove,$(TARGETDIR)/add_simple_contacts.sql)
+	$(call forceremove,$(TARGETDIR)/t_sqlshortnondb.db)
+	$(call forceremove,$(TARGETDIR)/contacts_startup_time.sql)
+	$(call forceremove,$(TARGETDIR)/t_inc095412.db)
+	$(call forceremove,$(TARGETDIR2)/[21212122]aadb2.db)
+	$(call forceremove,$(TARGETDIR2)/[21212122]bbdb2.db)
+	$(call forceremove,$(TARGETDIR2)/[21212125]t_ab.db)
+	$(call forceremove,$(TARGETDIR2)/[1111CCCC]t_ab.db)
+	$(call forceremove,$(TARGETDIR2)/[21212125]t_onedefpolicy.db)
+#	$(call forceremove,$(TARGETDIR2)/sqlserver.cfg)
+	$(call forceremove,$(TARGETDIR3)/t_sqldb1.db)
+	$(call forceremove,$(TARGETDIR2)/[98765432]t_2defaultpolicies.db)
+	$(call forceremove,$(TARGETDIR2)/[98765432]t_emptysettings.db)
+	$(call forceremove,$(TARGETDIR2)/[98765432]t_invobject.db)
+	$(call forceremove,$(TARGETDIR2)/[98765432]t_invversion.db)
+	$(call forceremove,$(TARGETDIR2)/[98765432]t_longcollation.db)
+	$(call forceremove,$(TARGETDIR2)/[98765432]t_nocollation.db)
+	$(call forceremove,$(TARGETDIR2)/[98765432]t_nodefaultpolicy.db)
+	$(call forceremove,$(TARGETDIR2)/[98765432]t_nosettings.db)
+	$(call forceremove,$(TARGETDIR)/default_avacon.dbSQL)
+	$(call forceremove,$(TARGETDIR)/t_sqlbur_backup_ver0.bak)
+	$(call forceremove,$(TARGETDIR)/t_sqlperformance4.sql)
+	
+SAVESPACE : DO_NOTHING
+
+RESOURCE : DO_NOTHING
+
+FREEZE : DO_NOTHING
+
+LIB : DO_NOTHING
+
+CLEANLIB : DO_NOTHING
+
+FINAL : DO_NOTHING
+
+RELEASABLES : 
+	@echo $(TARGETDIR)/testdb1.db
+	@echo $(TARGETDIR)/corruptdb.db
+	@echo $(TARGETDIR)/contacts_schema_to_vendors.sql
+	@echo $(TARGETDIR)/add_simple_contacts.sql
+	@echo $(TARGETDIR)/t_sqlshortnondb.db
+	@echo $(TARGETDIR)/contacts_startup_time.sql
+	@echo $(TARGETDIR)/t_inc095412.db
+	@echo $(TARGETDIR2)/[21212122]aadb2.db
+	@echo $(TARGETDIR2)/[21212122]bbdb2.db
+	@echo $(TARGETDIR2)/[21212125]t_ab.db
+	@echo $(TARGETDIR2)/[1111CCCC]t_ab.db
+	@echo $(TARGETDIR2)/[21212125]t_onedefpolicy.db
+#	@echo $(TARGETDIR2)/sqlserver.cfg
+	@echo $(TARGETDIR3)/t_sqldb1.db
+	@echo $(TARGETDIR2)/[98765432]t_2defaultpolicies.db
+	@echo $(TARGETDIR2)/[98765432]t_emptysettings.db
+	@echo $(TARGETDIR2)/[98765432]t_invobject.db
+	@echo $(TARGETDIR2)/[98765432]t_invversion.db
+	@echo $(TARGETDIR2)/[98765432]t_longcollation.db
+	@echo $(TARGETDIR2)/[98765432]t_nocollation.db
+	@echo $(TARGETDIR2)/[98765432]t_nodefaultpolicy.db
+	@echo $(TARGETDIR2)/[98765432]t_nosettings.db
+	@echo $(TARGETDIR)/default_avacon.dbSQL
+	@echo $(TARGETDIR)/t_sqlbur_backup_ver0.bak
+	@echo $(TARGETDIR)/t_sqlperformance4.sql
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/syslibs/test/sqlite3_copysqlite3testfiles.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,19 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for sqlite3_copysqlite3testfiles
+#
+
+platform	win32
+makefile 	gnumake
+techstream	syslibs
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/syslibs/test/sqlite3_copysqlite3testfiles.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,1277 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Copy SQLITE3 test files
+# 
+#
+
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+ifeq ($(findstring WINS,$(PLATFORM)),WINS)
+	TARGETDIR=$(EPOCROOT)epoc32/release/$(PLATFORM_PATH)/$(CFG_PATH)/z/private/10285A82
+else
+	TARGETDIR=$(EPOCROOT)epoc32/data/z/private/10285A82
+endif
+
+SOURCEDIR = $(EXTENSION_ROOT)/../TEST/TCLSCRIPT
+
+TARGET_FILES = \
+	$(TARGETDIR)/speed1p.explain \
+	$(TARGETDIR)/speed4p.explain \
+	$(TARGETDIR)/fuzz_common.tcl \
+	$(TARGETDIR)/malloc_common.tcl \
+	$(TARGETDIR)/tester.tcl \
+	$(TARGETDIR)/thread_common.tcl \
+	$(TARGETDIR)/trans2.test.gz \
+	$(TARGETDIR)/aggerror.test \
+	$(TARGETDIR)/alias.test \
+	$(TARGETDIR)/all.test \
+	$(TARGETDIR)/alter.test \
+	$(TARGETDIR)/alter2.test \
+	$(TARGETDIR)/alter3.test \
+	$(TARGETDIR)/altermalloc.test \
+	$(TARGETDIR)/analyze.test \
+	$(TARGETDIR)/async.test \
+	$(TARGETDIR)/async2.test \
+	$(TARGETDIR)/async3.test \
+	$(TARGETDIR)/attach.test \
+	$(TARGETDIR)/attach2.test \
+	$(TARGETDIR)/attach3.test \
+	$(TARGETDIR)/attachmalloc.test \
+	$(TARGETDIR)/auth.test \
+	$(TARGETDIR)/auth2.test \
+	$(TARGETDIR)/autoinc.test \
+	$(TARGETDIR)/autovacuum.test \
+	$(TARGETDIR)/autovacuum_ioerr2.test \
+	$(TARGETDIR)/avtrans.test \
+	$(TARGETDIR)/badutf.test \
+	$(TARGETDIR)/between.test \
+	$(TARGETDIR)/bigfile.test \
+	$(TARGETDIR)/bigrow.test \
+	$(TARGETDIR)/bind.test \
+	$(TARGETDIR)/bindxfer.test \
+	$(TARGETDIR)/bitvec.test \
+	$(TARGETDIR)/blob.test \
+	$(TARGETDIR)/busy.test \
+	$(TARGETDIR)/cache.test \
+	$(TARGETDIR)/capi2.test \
+	$(TARGETDIR)/capi3.test \
+	$(TARGETDIR)/capi3b.test \
+	$(TARGETDIR)/capi3c.test \
+	$(TARGETDIR)/capi3d.test \
+	$(TARGETDIR)/cast.test \
+	$(TARGETDIR)/check.test \
+	$(TARGETDIR)/collate1.test \
+	$(TARGETDIR)/collate2.test \
+	$(TARGETDIR)/collate3.test \
+	$(TARGETDIR)/collate4.test \
+	$(TARGETDIR)/collate5.test \
+	$(TARGETDIR)/collate6.test \
+	$(TARGETDIR)/collate7.test \
+	$(TARGETDIR)/collate8.test \
+	$(TARGETDIR)/collate9.test \
+	$(TARGETDIR)/collateA.test \
+	$(TARGETDIR)/colmeta.test \
+	$(TARGETDIR)/colname.test \
+	$(TARGETDIR)/conflict.test \
+	$(TARGETDIR)/corrupt.test \
+	$(TARGETDIR)/corrupt2.test \
+	$(TARGETDIR)/corrupt3.test \
+	$(TARGETDIR)/corrupt4.test \
+	$(TARGETDIR)/corrupt5.test \
+	$(TARGETDIR)/corrupt6.test \
+	$(TARGETDIR)/corrupt7.test \
+	$(TARGETDIR)/corrupt8.test \
+	$(TARGETDIR)/corrupt9.test \
+	$(TARGETDIR)/corruptA.test \
+	$(TARGETDIR)/crash.test \
+	$(TARGETDIR)/crash2.test \
+	$(TARGETDIR)/crash3.test \
+	$(TARGETDIR)/crash4.test \
+	$(TARGETDIR)/crash5.test \
+	$(TARGETDIR)/crash6.test \
+	$(TARGETDIR)/crash7.test \
+	$(TARGETDIR)/createtab.test \
+	$(TARGETDIR)/cse.test \
+	$(TARGETDIR)/date.test \
+	$(TARGETDIR)/default.test \
+	$(TARGETDIR)/delete.test \
+	$(TARGETDIR)/delete2.test \
+	$(TARGETDIR)/delete3.test \
+	$(TARGETDIR)/descidx1.test \
+	$(TARGETDIR)/descidx2.test \
+	$(TARGETDIR)/descidx3.test \
+	$(TARGETDIR)/diskfull.test \
+	$(TARGETDIR)/distinctagg.test \
+	$(TARGETDIR)/enc.test \
+	$(TARGETDIR)/enc2.test \
+	$(TARGETDIR)/enc3.test \
+	$(TARGETDIR)/eval.test \
+	$(TARGETDIR)/exclusive.test \
+	$(TARGETDIR)/exclusive2.test \
+	$(TARGETDIR)/exec.test \
+	$(TARGETDIR)/expr.test \
+	$(TARGETDIR)/filectrl.test \
+	$(TARGETDIR)/filefmt.test \
+	$(TARGETDIR)/fkey1.test \
+	$(TARGETDIR)/format4.test \
+	$(TARGETDIR)/fts1a.test \
+	$(TARGETDIR)/fts1b.test \
+	$(TARGETDIR)/fts1c.test \
+	$(TARGETDIR)/fts1d.test \
+	$(TARGETDIR)/fts1e.test \
+	$(TARGETDIR)/fts1f.test \
+	$(TARGETDIR)/fts1i.test \
+	$(TARGETDIR)/fts1j.test \
+	$(TARGETDIR)/fts1k.test \
+	$(TARGETDIR)/fts1l.test \
+	$(TARGETDIR)/fts1m.test \
+	$(TARGETDIR)/fts1n.test \
+	$(TARGETDIR)/fts1o.test \
+	$(TARGETDIR)/fts1porter.test \
+	$(TARGETDIR)/fts2.test \
+	$(TARGETDIR)/fts2a.test \
+	$(TARGETDIR)/fts2b.test \
+	$(TARGETDIR)/fts2c.test \
+	$(TARGETDIR)/fts2d.test \
+	$(TARGETDIR)/fts2e.test \
+	$(TARGETDIR)/fts2f.test \
+	$(TARGETDIR)/fts2g.test \
+	$(TARGETDIR)/fts2h.test \
+	$(TARGETDIR)/fts2i.test \
+	$(TARGETDIR)/fts2j.test \
+	$(TARGETDIR)/fts2k.test \
+	$(TARGETDIR)/fts2l.test \
+	$(TARGETDIR)/fts2m.test \
+	$(TARGETDIR)/fts2n.test \
+	$(TARGETDIR)/fts2o.test \
+	$(TARGETDIR)/fts2p.test \
+	$(TARGETDIR)/fts2q.test \
+	$(TARGETDIR)/fts2r.test \
+	$(TARGETDIR)/fts2token.test \
+	$(TARGETDIR)/fts3.test \
+	$(TARGETDIR)/fts3aa.test \
+	$(TARGETDIR)/fts3ab.test \
+	$(TARGETDIR)/fts3ac.test \
+	$(TARGETDIR)/fts3ad.test \
+	$(TARGETDIR)/fts3ae.test \
+	$(TARGETDIR)/fts3af.test \
+	$(TARGETDIR)/fts3ag.test \
+	$(TARGETDIR)/fts3ah.test \
+	$(TARGETDIR)/fts3ai.test \
+	$(TARGETDIR)/fts3aj.test \
+	$(TARGETDIR)/fts3ak.test \
+	$(TARGETDIR)/fts3al.test \
+	$(TARGETDIR)/fts3am.test \
+	$(TARGETDIR)/fts3an.test \
+	$(TARGETDIR)/fts3ao.test \
+	$(TARGETDIR)/fts3atoken.test \
+	$(TARGETDIR)/fts3b.test \
+	$(TARGETDIR)/fts3c.test \
+	$(TARGETDIR)/fts3d.test \
+	$(TARGETDIR)/fts3e.test \
+	$(TARGETDIR)/fts3near.test \
+	$(TARGETDIR)/func.test \
+	$(TARGETDIR)/fuzz.test \
+	$(TARGETDIR)/fuzz2.test \
+	$(TARGETDIR)/fuzz_malloc.test \
+	$(TARGETDIR)/hook.test \
+	$(TARGETDIR)/icu.test \
+	$(TARGETDIR)/in.test \
+	$(TARGETDIR)/in2.test \
+	$(TARGETDIR)/in3.test \
+	$(TARGETDIR)/incrblob.test \
+	$(TARGETDIR)/incrblob2.test \
+	$(TARGETDIR)/incrblob_err.test \
+	$(TARGETDIR)/incrvacuum.test \
+	$(TARGETDIR)/incrvacuum2.test \
+	$(TARGETDIR)/incrvacuum_ioerr.test \
+	$(TARGETDIR)/index.test \
+	$(TARGETDIR)/index2.test \
+	$(TARGETDIR)/index3.test \
+	$(TARGETDIR)/insert.test \
+	$(TARGETDIR)/insert2.test \
+	$(TARGETDIR)/insert3.test \
+	$(TARGETDIR)/insert4.test \
+	$(TARGETDIR)/insert5.test \
+	$(TARGETDIR)/interrupt.test \
+	$(TARGETDIR)/intpkey.test \
+	$(TARGETDIR)/io.test \
+	$(TARGETDIR)/ioerr.test \
+	$(TARGETDIR)/ioerr2.test \
+	$(TARGETDIR)/ioerr3.test \
+	$(TARGETDIR)/ioerr4.test \
+	$(TARGETDIR)/ioerr5.test \
+	$(TARGETDIR)/join.test \
+	$(TARGETDIR)/join2.test \
+	$(TARGETDIR)/join3.test \
+	$(TARGETDIR)/join4.test \
+	$(TARGETDIR)/join5.test \
+	$(TARGETDIR)/journal1.test \
+	$(TARGETDIR)/jrnlmode.test \
+	$(TARGETDIR)/lastinsert.test \
+	$(TARGETDIR)/laststmtchanges.test \
+	$(TARGETDIR)/like.test \
+	$(TARGETDIR)/like2.test \
+	$(TARGETDIR)/limit.test \
+	$(TARGETDIR)/loadext.test \
+	$(TARGETDIR)/loadext2.test \
+	$(TARGETDIR)/lock.test \
+	$(TARGETDIR)/lock2.test \
+	$(TARGETDIR)/lock3.test \
+	$(TARGETDIR)/lock4.test \
+	$(TARGETDIR)/lock5.test \
+	$(TARGETDIR)/lookaside.test \
+	$(TARGETDIR)/main.test \
+	$(TARGETDIR)/malloc.test \
+	$(TARGETDIR)/malloc3.test \
+	$(TARGETDIR)/malloc4.test \
+	$(TARGETDIR)/malloc5.test \
+	$(TARGETDIR)/malloc6.test \
+	$(TARGETDIR)/malloc7.test \
+	$(TARGETDIR)/malloc8.test \
+	$(TARGETDIR)/malloc9.test \
+	$(TARGETDIR)/mallocA.test \
+	$(TARGETDIR)/mallocAll.test \
+	$(TARGETDIR)/mallocB.test \
+	$(TARGETDIR)/mallocC.test \
+	$(TARGETDIR)/mallocD.test \
+	$(TARGETDIR)/mallocE.test \
+	$(TARGETDIR)/mallocF.test \
+	$(TARGETDIR)/mallocG.test \
+	$(TARGETDIR)/mallocH.test \
+	$(TARGETDIR)/mallocI.test \
+	$(TARGETDIR)/manydb.test \
+	$(TARGETDIR)/memdb.test \
+	$(TARGETDIR)/memleak.test \
+	$(TARGETDIR)/memsubsys1.test \
+	$(TARGETDIR)/memsubsys2.test \
+	$(TARGETDIR)/minmax.test \
+	$(TARGETDIR)/minmax2.test \
+	$(TARGETDIR)/minmax3.test \
+	$(TARGETDIR)/misc1.test \
+	$(TARGETDIR)/misc2.test \
+	$(TARGETDIR)/misc3.test \
+	$(TARGETDIR)/misc4.test \
+	$(TARGETDIR)/misc5.test \
+	$(TARGETDIR)/misc6.test \
+	$(TARGETDIR)/misc7.test \
+	$(TARGETDIR)/misuse.test \
+	$(TARGETDIR)/mutex1.test \
+	$(TARGETDIR)/mutex2.test \
+	$(TARGETDIR)/nan.test \
+	$(TARGETDIR)/notnull.test \
+	$(TARGETDIR)/null.test \
+	$(TARGETDIR)/openv2.test \
+	$(TARGETDIR)/pager.test \
+	$(TARGETDIR)/pager2.test \
+	$(TARGETDIR)/pager3.test \
+	$(TARGETDIR)/pageropt.test \
+	$(TARGETDIR)/pagesize.test \
+	$(TARGETDIR)/pcache.test \
+	$(TARGETDIR)/permutations.test \
+	$(TARGETDIR)/pragma.test \
+	$(TARGETDIR)/pragma2.test \
+	$(TARGETDIR)/printf.test \
+	$(TARGETDIR)/progress.test \
+	$(TARGETDIR)/ptrchng.test \
+	$(TARGETDIR)/quick.test \
+	$(TARGETDIR)/quote.test \
+	$(TARGETDIR)/rdonly.test \
+	$(TARGETDIR)/reindex.test \
+	$(TARGETDIR)/rollback.test \
+	$(TARGETDIR)/rowid.test \
+	$(TARGETDIR)/rtree.test \
+	$(TARGETDIR)/safety.test \
+	$(TARGETDIR)/schema.test \
+	$(TARGETDIR)/schema2.test \
+	$(TARGETDIR)/select1.test \
+	$(TARGETDIR)/select2.test \
+	$(TARGETDIR)/select3.test \
+	$(TARGETDIR)/select4.test \
+	$(TARGETDIR)/select5.test \
+	$(TARGETDIR)/select6.test \
+	$(TARGETDIR)/select7.test \
+	$(TARGETDIR)/select8.test \
+	$(TARGETDIR)/select9.test \
+	$(TARGETDIR)/selectA.test \
+	$(TARGETDIR)/selectB.test \
+	$(TARGETDIR)/server1.test \
+	$(TARGETDIR)/shared.test \
+	$(TARGETDIR)/shared2.test \
+	$(TARGETDIR)/shared3.test \
+	$(TARGETDIR)/shared4.test \
+	$(TARGETDIR)/shared_err.test \
+	$(TARGETDIR)/shortread1.test \
+	$(TARGETDIR)/sidedelete.test \
+	$(TARGETDIR)/soak.test \
+	$(TARGETDIR)/softheap1.test \
+	$(TARGETDIR)/sort.test \
+	$(TARGETDIR)/speed1.test \
+	$(TARGETDIR)/speed1p.test \
+	$(TARGETDIR)/speed2.test \
+	$(TARGETDIR)/speed3.test \
+	$(TARGETDIR)/speed4.test \
+	$(TARGETDIR)/speed4p.test \
+	$(TARGETDIR)/sqllimits1.test \
+	$(TARGETDIR)/subquery.test \
+	$(TARGETDIR)/subselect.test \
+	$(TARGETDIR)/substr.test \
+	$(TARGETDIR)/sync.test \
+	$(TARGETDIR)/table.test \
+	$(TARGETDIR)/tableapi.test \
+	$(TARGETDIR)/tclsqlite.test \
+	$(TARGETDIR)/tempdb.test \
+	$(TARGETDIR)/temptable.test \
+	$(TARGETDIR)/thread001.test \
+	$(TARGETDIR)/thread002.test \
+	$(TARGETDIR)/thread003.test \
+	$(TARGETDIR)/thread1.test \
+	$(TARGETDIR)/thread2.test \
+	$(TARGETDIR)/tkt1435.test \
+	$(TARGETDIR)/tkt1443.test \
+	$(TARGETDIR)/tkt1444.test \
+	$(TARGETDIR)/tkt1449.test \
+	$(TARGETDIR)/tkt1473.test \
+	$(TARGETDIR)/tkt1501.test \
+	$(TARGETDIR)/tkt1512.test \
+	$(TARGETDIR)/tkt1514.test \
+	$(TARGETDIR)/tkt1536.test \
+	$(TARGETDIR)/tkt1537.test \
+	$(TARGETDIR)/tkt1567.test \
+	$(TARGETDIR)/tkt1644.test \
+	$(TARGETDIR)/tkt1667.test \
+	$(TARGETDIR)/tkt1873.test \
+	$(TARGETDIR)/tkt2141.test \
+	$(TARGETDIR)/tkt2192.test \
+	$(TARGETDIR)/tkt2213.test \
+	$(TARGETDIR)/tkt2251.test \
+	$(TARGETDIR)/tkt2285.test \
+	$(TARGETDIR)/tkt2332.test \
+	$(TARGETDIR)/tkt2339.test \
+	$(TARGETDIR)/tkt2391.test \
+	$(TARGETDIR)/tkt2409.test \
+	$(TARGETDIR)/tkt2450.test \
+	$(TARGETDIR)/tkt2640.test \
+	$(TARGETDIR)/tkt2643.test \
+	$(TARGETDIR)/tkt2686.test \
+	$(TARGETDIR)/tkt2767.test \
+	$(TARGETDIR)/tkt2817.test \
+	$(TARGETDIR)/tkt2820.test \
+	$(TARGETDIR)/tkt2822.test \
+	$(TARGETDIR)/tkt2832.test \
+	$(TARGETDIR)/tkt2854.test \
+	$(TARGETDIR)/tkt2920.test \
+	$(TARGETDIR)/tkt2927.test \
+	$(TARGETDIR)/tkt2942.test \
+	$(TARGETDIR)/tkt3080.test \
+	$(TARGETDIR)/tkt3093.test \
+	$(TARGETDIR)/tkt3121.test \
+	$(TARGETDIR)/tkt3201.test \
+	$(TARGETDIR)/tkt3292.test \
+	$(TARGETDIR)/tkt3298.test \
+	$(TARGETDIR)/tkt3334.test \
+	$(TARGETDIR)/tokenize.test \
+	$(TARGETDIR)/trace.test \
+	$(TARGETDIR)/trans.test \
+	$(TARGETDIR)/trans2.test \
+	$(TARGETDIR)/trigger1.test \
+	$(TARGETDIR)/trigger2.test \
+	$(TARGETDIR)/trigger3.test \
+	$(TARGETDIR)/trigger4.test \
+	$(TARGETDIR)/trigger5.test \
+	$(TARGETDIR)/trigger6.test \
+	$(TARGETDIR)/trigger7.test \
+	$(TARGETDIR)/trigger8.test \
+	$(TARGETDIR)/trigger9.test \
+	$(TARGETDIR)/triggerA.test \
+	$(TARGETDIR)/triggerB.test \
+	$(TARGETDIR)/types.test \
+	$(TARGETDIR)/types2.test \
+	$(TARGETDIR)/types3.test \
+	$(TARGETDIR)/unique.test \
+	$(TARGETDIR)/update.test \
+	$(TARGETDIR)/utf16align.test \
+	$(TARGETDIR)/vacuum.test \
+	$(TARGETDIR)/vacuum2.test \
+	$(TARGETDIR)/vacuum3.test \
+	$(TARGETDIR)/varint.test \
+	$(TARGETDIR)/veryquick.test \
+	$(TARGETDIR)/view.test \
+	$(TARGETDIR)/vtab1.test \
+	$(TARGETDIR)/vtab2.test \
+	$(TARGETDIR)/vtab3.test \
+	$(TARGETDIR)/vtab4.test \
+	$(TARGETDIR)/vtab5.test \
+	$(TARGETDIR)/vtab6.test \
+	$(TARGETDIR)/vtab7.test \
+	$(TARGETDIR)/vtab8.test \
+	$(TARGETDIR)/vtab9.test \
+	$(TARGETDIR)/vtabA.test \
+	$(TARGETDIR)/vtabB.test \
+	$(TARGETDIR)/vtabC.test \
+	$(TARGETDIR)/vtab_alter.test \
+	$(TARGETDIR)/vtab_err.test \
+	$(TARGETDIR)/vtab_shared.test \
+	$(TARGETDIR)/where.test \
+	$(TARGETDIR)/where2.test \
+	$(TARGETDIR)/where3.test \
+	$(TARGETDIR)/where4.test \
+	$(TARGETDIR)/where5.test \
+	$(TARGETDIR)/where6.test \
+	$(TARGETDIR)/zeroblob.test
+
+
+$(TARGETDIR):
+	$(call createdir, "$@")
+	
+COPYFILES :
+	$(call forcecopy,$(SOURCEDIR)/speed1p.explain,$(TARGETDIR)/speed1p.explain)
+	$(call forcecopy,$(SOURCEDIR)/speed4p.explain,$(TARGETDIR)/speed4p.explain)
+	$(call forcecopy,$(SOURCEDIR)/fuzz_common.tcl,$(TARGETDIR)/fuzz_common.tcl)
+	$(call forcecopy,$(SOURCEDIR)/malloc_common.tcl,$(TARGETDIR)/malloc_common.tcl)
+	$(call forcecopy,$(SOURCEDIR)/tester.tcl,$(TARGETDIR)/tester.tcl)
+	$(call forcecopy,$(SOURCEDIR)/thread_common.tcl,$(TARGETDIR)/thread_common.tcl)
+	$(call forcecopy,$(SOURCEDIR)/trans2.test.gz,$(TARGETDIR)/trans2.test.gz)
+	$(call forcecopy,$(SOURCEDIR)/aggerror.test,$(TARGETDIR)/aggerror.test)
+	$(call forcecopy,$(SOURCEDIR)/alias.test,$(TARGETDIR)/alias.test)
+	$(call forcecopy,$(SOURCEDIR)/all.test,$(TARGETDIR)/all.test)
+	$(call forcecopy,$(SOURCEDIR)/alter.test,$(TARGETDIR)/alter.test)
+	$(call forcecopy,$(SOURCEDIR)/alter2.test,$(TARGETDIR)/alter2.test)
+	$(call forcecopy,$(SOURCEDIR)/alter3.test,$(TARGETDIR)/alter3.test)
+	$(call forcecopy,$(SOURCEDIR)/altermalloc.test,$(TARGETDIR)/altermalloc.test)
+	$(call forcecopy,$(SOURCEDIR)/analyze.test,$(TARGETDIR)/analyze.test)
+	$(call forcecopy,$(SOURCEDIR)/async.test,$(TARGETDIR)/async.test)
+	$(call forcecopy,$(SOURCEDIR)/async2.test,$(TARGETDIR)/async2.test)
+	$(call forcecopy,$(SOURCEDIR)/async3.test,$(TARGETDIR)/async3.test)
+	$(call forcecopy,$(SOURCEDIR)/attach.test,$(TARGETDIR)/attach.test)
+	$(call forcecopy,$(SOURCEDIR)/attach2.test,$(TARGETDIR)/attach2.test)
+	$(call forcecopy,$(SOURCEDIR)/attach3.test,$(TARGETDIR)/attach3.test)
+	$(call forcecopy,$(SOURCEDIR)/attachmalloc.test,$(TARGETDIR)/attachmalloc.test)
+	$(call forcecopy,$(SOURCEDIR)/auth.test,$(TARGETDIR)/auth.test)
+	$(call forcecopy,$(SOURCEDIR)/auth2.test,$(TARGETDIR)/auth2.test)
+	$(call forcecopy,$(SOURCEDIR)/autoinc.test,$(TARGETDIR)/autoinc.test)
+	$(call forcecopy,$(SOURCEDIR)/autovacuum.test,$(TARGETDIR)/autovacuum.test)
+	$(call forcecopy,$(SOURCEDIR)/autovacuum_ioerr2.test,$(TARGETDIR)/autovacuum_ioerr2.test)
+	$(call forcecopy,$(SOURCEDIR)/avtrans.test,$(TARGETDIR)/avtrans.test)
+	$(call forcecopy,$(SOURCEDIR)/badutf.test,$(TARGETDIR)/badutf.test)
+	$(call forcecopy,$(SOURCEDIR)/between.test,$(TARGETDIR)/between.test)
+	$(call forcecopy,$(SOURCEDIR)/bigfile.test,$(TARGETDIR)/bigfile.test)
+	$(call forcecopy,$(SOURCEDIR)/bigrow.test,$(TARGETDIR)/bigrow.test)
+	$(call forcecopy,$(SOURCEDIR)/bind.test,$(TARGETDIR)/bind.test)
+	$(call forcecopy,$(SOURCEDIR)/bindxfer.test,$(TARGETDIR)/bindxfer.test)
+	$(call forcecopy,$(SOURCEDIR)/bitvec.test,$(TARGETDIR)/bitvec.test)
+	$(call forcecopy,$(SOURCEDIR)/blob.test,$(TARGETDIR)/blob.test)
+	$(call forcecopy,$(SOURCEDIR)/busy.test,$(TARGETDIR)/busy.test)
+	$(call forcecopy,$(SOURCEDIR)/cache.test,$(TARGETDIR)/cache.test)
+	$(call forcecopy,$(SOURCEDIR)/capi2.test,$(TARGETDIR)/capi2.test)
+	$(call forcecopy,$(SOURCEDIR)/capi3.test,$(TARGETDIR)/capi3.test)
+	$(call forcecopy,$(SOURCEDIR)/capi3b.test,$(TARGETDIR)/capi3b.test)
+	$(call forcecopy,$(SOURCEDIR)/capi3c.test,$(TARGETDIR)/capi3c.test)
+	$(call forcecopy,$(SOURCEDIR)/capi3d.test,$(TARGETDIR)/capi3d.test)
+	$(call forcecopy,$(SOURCEDIR)/cast.test,$(TARGETDIR)/cast.test)
+	$(call forcecopy,$(SOURCEDIR)/check.test,$(TARGETDIR)/check.test)
+	$(call forcecopy,$(SOURCEDIR)/collate1.test,$(TARGETDIR)/collate1.test)
+	$(call forcecopy,$(SOURCEDIR)/collate2.test,$(TARGETDIR)/collate2.test)
+	$(call forcecopy,$(SOURCEDIR)/collate3.test,$(TARGETDIR)/collate3.test)
+	$(call forcecopy,$(SOURCEDIR)/collate4.test,$(TARGETDIR)/collate4.test)
+	$(call forcecopy,$(SOURCEDIR)/collate5.test,$(TARGETDIR)/collate5.test)
+	$(call forcecopy,$(SOURCEDIR)/collate6.test,$(TARGETDIR)/collate6.test)
+	$(call forcecopy,$(SOURCEDIR)/collate7.test,$(TARGETDIR)/collate7.test)
+	$(call forcecopy,$(SOURCEDIR)/collate8.test,$(TARGETDIR)/collate8.test)
+	$(call forcecopy,$(SOURCEDIR)/collate9.test,$(TARGETDIR)/collate9.test)
+	$(call forcecopy,$(SOURCEDIR)/collateA.test,$(TARGETDIR)/collateA.test)
+	$(call forcecopy,$(SOURCEDIR)/colmeta.test,$(TARGETDIR)/colmeta.test)
+	$(call forcecopy,$(SOURCEDIR)/colname.test,$(TARGETDIR)/colname.test)
+	$(call forcecopy,$(SOURCEDIR)/conflict.test,$(TARGETDIR)/conflict.test)
+	$(call forcecopy,$(SOURCEDIR)/corrupt.test,$(TARGETDIR)/corrupt.test)
+	$(call forcecopy,$(SOURCEDIR)/corrupt2.test,$(TARGETDIR)/corrupt2.test)
+	$(call forcecopy,$(SOURCEDIR)/corrupt3.test,$(TARGETDIR)/corrupt3.test)
+	$(call forcecopy,$(SOURCEDIR)/corrupt4.test,$(TARGETDIR)/corrupt4.test)
+	$(call forcecopy,$(SOURCEDIR)/corrupt5.test,$(TARGETDIR)/corrupt5.test)
+	$(call forcecopy,$(SOURCEDIR)/corrupt6.test,$(TARGETDIR)/corrupt6.test)
+	$(call forcecopy,$(SOURCEDIR)/corrupt7.test,$(TARGETDIR)/corrupt7.test)
+	$(call forcecopy,$(SOURCEDIR)/corrupt8.test,$(TARGETDIR)/corrupt8.test)
+	$(call forcecopy,$(SOURCEDIR)/corrupt9.test,$(TARGETDIR)/corrupt9.test)
+	$(call forcecopy,$(SOURCEDIR)/corruptA.test,$(TARGETDIR)/corruptA.test)
+	$(call forcecopy,$(SOURCEDIR)/crash.test,$(TARGETDIR)/crash.test)
+	$(call forcecopy,$(SOURCEDIR)/crash2.test,$(TARGETDIR)/crash2.test)
+	$(call forcecopy,$(SOURCEDIR)/crash3.test,$(TARGETDIR)/crash3.test)
+	$(call forcecopy,$(SOURCEDIR)/crash4.test,$(TARGETDIR)/crash4.test)
+	$(call forcecopy,$(SOURCEDIR)/crash5.test,$(TARGETDIR)/crash5.test)
+	$(call forcecopy,$(SOURCEDIR)/crash6.test,$(TARGETDIR)/crash6.test)
+	$(call forcecopy,$(SOURCEDIR)/crash7.test,$(TARGETDIR)/crash7.test)
+	$(call forcecopy,$(SOURCEDIR)/createtab.test,$(TARGETDIR)/createtab.test)
+	$(call forcecopy,$(SOURCEDIR)/cse.test,$(TARGETDIR)/cse.test)
+	$(call forcecopy,$(SOURCEDIR)/date.test,$(TARGETDIR)/date.test)
+	$(call forcecopy,$(SOURCEDIR)/default.test,$(TARGETDIR)/default.test)
+	$(call forcecopy,$(SOURCEDIR)/delete.test,$(TARGETDIR)/delete.test)
+	$(call forcecopy,$(SOURCEDIR)/delete2.test,$(TARGETDIR)/delete2.test)
+	$(call forcecopy,$(SOURCEDIR)/delete3.test,$(TARGETDIR)/delete3.test)
+	$(call forcecopy,$(SOURCEDIR)/descidx1.test,$(TARGETDIR)/descidx1.test)
+	$(call forcecopy,$(SOURCEDIR)/descidx2.test,$(TARGETDIR)/descidx2.test)
+	$(call forcecopy,$(SOURCEDIR)/descidx3.test,$(TARGETDIR)/descidx3.test)
+	$(call forcecopy,$(SOURCEDIR)/diskfull.test,$(TARGETDIR)/diskfull.test)
+	$(call forcecopy,$(SOURCEDIR)/distinctagg.test,$(TARGETDIR)/distinctagg.test)
+	$(call forcecopy,$(SOURCEDIR)/enc.test,$(TARGETDIR)/enc.test)
+	$(call forcecopy,$(SOURCEDIR)/enc2.test,$(TARGETDIR)/enc2.test)
+	$(call forcecopy,$(SOURCEDIR)/enc3.test,$(TARGETDIR)/enc3.test)
+	$(call forcecopy,$(SOURCEDIR)/eval.test,$(TARGETDIR)/eval.test)
+	$(call forcecopy,$(SOURCEDIR)/exclusive.test,$(TARGETDIR)/exclusive.test)
+	$(call forcecopy,$(SOURCEDIR)/exclusive2.test,$(TARGETDIR)/exclusive2.test)
+	$(call forcecopy,$(SOURCEDIR)/exec.test,$(TARGETDIR)/exec.test)
+	$(call forcecopy,$(SOURCEDIR)/expr.test,$(TARGETDIR)/expr.test)
+	$(call forcecopy,$(SOURCEDIR)/filectrl.test,$(TARGETDIR)/filectrl.test)
+	$(call forcecopy,$(SOURCEDIR)/filefmt.test,$(TARGETDIR)/filefmt.test)
+	$(call forcecopy,$(SOURCEDIR)/fkey1.test,$(TARGETDIR)/fkey1.test)
+	$(call forcecopy,$(SOURCEDIR)/format4.test,$(TARGETDIR)/format4.test)
+	$(call forcecopy,$(SOURCEDIR)/fts1a.test,$(TARGETDIR)/fts1a.test)
+	$(call forcecopy,$(SOURCEDIR)/fts1b.test,$(TARGETDIR)/fts1b.test)
+	$(call forcecopy,$(SOURCEDIR)/fts1c.test,$(TARGETDIR)/fts1c.test)
+	$(call forcecopy,$(SOURCEDIR)/fts1d.test,$(TARGETDIR)/fts1d.test)
+	$(call forcecopy,$(SOURCEDIR)/fts1e.test,$(TARGETDIR)/fts1e.test)
+	$(call forcecopy,$(SOURCEDIR)/fts1f.test,$(TARGETDIR)/fts1f.test)
+	$(call forcecopy,$(SOURCEDIR)/fts1i.test,$(TARGETDIR)/fts1i.test)
+	$(call forcecopy,$(SOURCEDIR)/fts1j.test,$(TARGETDIR)/fts1j.test)
+	$(call forcecopy,$(SOURCEDIR)/fts1k.test,$(TARGETDIR)/fts1k.test)
+	$(call forcecopy,$(SOURCEDIR)/fts1l.test,$(TARGETDIR)/fts1l.test)
+	$(call forcecopy,$(SOURCEDIR)/fts1m.test,$(TARGETDIR)/fts1m.test)
+	$(call forcecopy,$(SOURCEDIR)/fts1n.test,$(TARGETDIR)/fts1n.test)
+	$(call forcecopy,$(SOURCEDIR)/fts1o.test,$(TARGETDIR)/fts1o.test)
+	$(call forcecopy,$(SOURCEDIR)/fts1porter.test,$(TARGETDIR)/fts1porter.test)
+	$(call forcecopy,$(SOURCEDIR)/fts2.test,$(TARGETDIR)/fts2.test)
+	$(call forcecopy,$(SOURCEDIR)/fts2a.test,$(TARGETDIR)/fts2a.test)
+	$(call forcecopy,$(SOURCEDIR)/fts2b.test,$(TARGETDIR)/fts2b.test)
+	$(call forcecopy,$(SOURCEDIR)/fts2c.test,$(TARGETDIR)/fts2c.test)
+	$(call forcecopy,$(SOURCEDIR)/fts2d.test,$(TARGETDIR)/fts2d.test)
+	$(call forcecopy,$(SOURCEDIR)/fts2e.test,$(TARGETDIR)/fts2e.test)
+	$(call forcecopy,$(SOURCEDIR)/fts2f.test,$(TARGETDIR)/fts2f.test)
+	$(call forcecopy,$(SOURCEDIR)/fts2g.test,$(TARGETDIR)/fts2g.test)
+	$(call forcecopy,$(SOURCEDIR)/fts2h.test,$(TARGETDIR)/fts2h.test)
+	$(call forcecopy,$(SOURCEDIR)/fts2i.test,$(TARGETDIR)/fts2i.test)
+	$(call forcecopy,$(SOURCEDIR)/fts2j.test,$(TARGETDIR)/fts2j.test)
+	$(call forcecopy,$(SOURCEDIR)/fts2k.test,$(TARGETDIR)/fts2k.test)
+	$(call forcecopy,$(SOURCEDIR)/fts2l.test,$(TARGETDIR)/fts2l.test)
+	$(call forcecopy,$(SOURCEDIR)/fts2m.test,$(TARGETDIR)/fts2m.test)
+	$(call forcecopy,$(SOURCEDIR)/fts2n.test,$(TARGETDIR)/fts2n.test)
+	$(call forcecopy,$(SOURCEDIR)/fts2o.test,$(TARGETDIR)/fts2o.test)
+	$(call forcecopy,$(SOURCEDIR)/fts2p.test,$(TARGETDIR)/fts2p.test)
+	$(call forcecopy,$(SOURCEDIR)/fts2q.test,$(TARGETDIR)/fts2q.test)
+	$(call forcecopy,$(SOURCEDIR)/fts2r.test,$(TARGETDIR)/fts2r.test)
+	$(call forcecopy,$(SOURCEDIR)/fts2token.test,$(TARGETDIR)/fts2token.test)
+	$(call forcecopy,$(SOURCEDIR)/fts3.test,$(TARGETDIR)/fts3.test)
+	$(call forcecopy,$(SOURCEDIR)/fts3aa.test,$(TARGETDIR)/fts3aa.test)
+	$(call forcecopy,$(SOURCEDIR)/fts3ab.test,$(TARGETDIR)/fts3ab.test)
+	$(call forcecopy,$(SOURCEDIR)/fts3ac.test,$(TARGETDIR)/fts3ac.test)
+	$(call forcecopy,$(SOURCEDIR)/fts3ad.test,$(TARGETDIR)/fts3ad.test)
+	$(call forcecopy,$(SOURCEDIR)/fts3ae.test,$(TARGETDIR)/fts3ae.test)
+	$(call forcecopy,$(SOURCEDIR)/fts3af.test,$(TARGETDIR)/fts3af.test)
+	$(call forcecopy,$(SOURCEDIR)/fts3ag.test,$(TARGETDIR)/fts3ag.test)
+	$(call forcecopy,$(SOURCEDIR)/fts3ah.test,$(TARGETDIR)/fts3ah.test)
+	$(call forcecopy,$(SOURCEDIR)/fts3ai.test,$(TARGETDIR)/fts3ai.test)
+	$(call forcecopy,$(SOURCEDIR)/fts3aj.test,$(TARGETDIR)/fts3aj.test)
+	$(call forcecopy,$(SOURCEDIR)/fts3ak.test,$(TARGETDIR)/fts3ak.test)
+	$(call forcecopy,$(SOURCEDIR)/fts3al.test,$(TARGETDIR)/fts3al.test)
+	$(call forcecopy,$(SOURCEDIR)/fts3am.test,$(TARGETDIR)/fts3am.test)
+	$(call forcecopy,$(SOURCEDIR)/fts3an.test,$(TARGETDIR)/fts3an.test)
+	$(call forcecopy,$(SOURCEDIR)/fts3ao.test,$(TARGETDIR)/fts3ao.test)
+	$(call forcecopy,$(SOURCEDIR)/fts3atoken.test,$(TARGETDIR)/fts3atoken.test)
+	$(call forcecopy,$(SOURCEDIR)/fts3b.test,$(TARGETDIR)/fts3b.test)
+	$(call forcecopy,$(SOURCEDIR)/fts3c.test,$(TARGETDIR)/fts3c.test)
+	$(call forcecopy,$(SOURCEDIR)/fts3d.test,$(TARGETDIR)/fts3d.test)
+	$(call forcecopy,$(SOURCEDIR)/fts3e.test,$(TARGETDIR)/fts3e.test)
+	$(call forcecopy,$(SOURCEDIR)/fts3near.test,$(TARGETDIR)/fts3near.test)
+	$(call forcecopy,$(SOURCEDIR)/func.test,$(TARGETDIR)/func.test)
+	$(call forcecopy,$(SOURCEDIR)/fuzz.test,$(TARGETDIR)/fuzz.test)
+	$(call forcecopy,$(SOURCEDIR)/fuzz2.test,$(TARGETDIR)/fuzz2.test)
+	$(call forcecopy,$(SOURCEDIR)/fuzz_malloc.test,$(TARGETDIR)/fuzz_malloc.test)
+	$(call forcecopy,$(SOURCEDIR)/hook.test,$(TARGETDIR)/hook.test)
+	$(call forcecopy,$(SOURCEDIR)/icu.test,$(TARGETDIR)/icu.test)
+	$(call forcecopy,$(SOURCEDIR)/in.test,$(TARGETDIR)/in.test)
+	$(call forcecopy,$(SOURCEDIR)/in2.test,$(TARGETDIR)/in2.test)
+	$(call forcecopy,$(SOURCEDIR)/in3.test,$(TARGETDIR)/in3.test)
+	$(call forcecopy,$(SOURCEDIR)/incrblob.test,$(TARGETDIR)/incrblob.test)
+	$(call forcecopy,$(SOURCEDIR)/incrblob2.test,$(TARGETDIR)/incrblob2.test)
+	$(call forcecopy,$(SOURCEDIR)/incrblob_err.test,$(TARGETDIR)/incrblob_err.test)
+	$(call forcecopy,$(SOURCEDIR)/incrvacuum.test,$(TARGETDIR)/incrvacuum.test)
+	$(call forcecopy,$(SOURCEDIR)/incrvacuum2.test,$(TARGETDIR)/incrvacuum2.test)
+	$(call forcecopy,$(SOURCEDIR)/incrvacuum_ioerr.test,$(TARGETDIR)/incrvacuum_ioerr.test)
+	$(call forcecopy,$(SOURCEDIR)/index.test,$(TARGETDIR)/index.test)
+	$(call forcecopy,$(SOURCEDIR)/index2.test,$(TARGETDIR)/index2.test)
+	$(call forcecopy,$(SOURCEDIR)/index3.test,$(TARGETDIR)/index3.test)
+	$(call forcecopy,$(SOURCEDIR)/insert.test,$(TARGETDIR)/insert.test)
+	$(call forcecopy,$(SOURCEDIR)/insert2.test,$(TARGETDIR)/insert2.test)
+	$(call forcecopy,$(SOURCEDIR)/insert3.test,$(TARGETDIR)/insert3.test)
+	$(call forcecopy,$(SOURCEDIR)/insert4.test,$(TARGETDIR)/insert4.test)
+	$(call forcecopy,$(SOURCEDIR)/insert5.test,$(TARGETDIR)/insert5.test)
+	$(call forcecopy,$(SOURCEDIR)/interrupt.test,$(TARGETDIR)/interrupt.test)
+	$(call forcecopy,$(SOURCEDIR)/intpkey.test,$(TARGETDIR)/intpkey.test)
+	$(call forcecopy,$(SOURCEDIR)/io.test,$(TARGETDIR)/io.test)
+	$(call forcecopy,$(SOURCEDIR)/ioerr.test,$(TARGETDIR)/ioerr.test)
+	$(call forcecopy,$(SOURCEDIR)/ioerr2.test,$(TARGETDIR)/ioerr2.test)
+	$(call forcecopy,$(SOURCEDIR)/ioerr3.test,$(TARGETDIR)/ioerr3.test)
+	$(call forcecopy,$(SOURCEDIR)/ioerr4.test,$(TARGETDIR)/ioerr4.test)
+	$(call forcecopy,$(SOURCEDIR)/ioerr5.test,$(TARGETDIR)/ioerr5.test)
+	$(call forcecopy,$(SOURCEDIR)/join.test,$(TARGETDIR)/join.test)
+	$(call forcecopy,$(SOURCEDIR)/join2.test,$(TARGETDIR)/join2.test)
+	$(call forcecopy,$(SOURCEDIR)/join3.test,$(TARGETDIR)/join3.test)
+	$(call forcecopy,$(SOURCEDIR)/join4.test,$(TARGETDIR)/join4.test)
+	$(call forcecopy,$(SOURCEDIR)/join5.test,$(TARGETDIR)/join5.test)
+	$(call forcecopy,$(SOURCEDIR)/journal1.test,$(TARGETDIR)/journal1.test)
+	$(call forcecopy,$(SOURCEDIR)/jrnlmode.test,$(TARGETDIR)/jrnlmode.test)
+	$(call forcecopy,$(SOURCEDIR)/lastinsert.test,$(TARGETDIR)/lastinsert.test)
+	$(call forcecopy,$(SOURCEDIR)/laststmtchanges.test,$(TARGETDIR)/laststmtchanges.test)
+	$(call forcecopy,$(SOURCEDIR)/like.test,$(TARGETDIR)/like.test)
+	$(call forcecopy,$(SOURCEDIR)/like2.test,$(TARGETDIR)/like2.test)
+	$(call forcecopy,$(SOURCEDIR)/limit.test,$(TARGETDIR)/limit.test)
+	$(call forcecopy,$(SOURCEDIR)/loadext.test,$(TARGETDIR)/loadext.test)
+	$(call forcecopy,$(SOURCEDIR)/loadext2.test,$(TARGETDIR)/loadext2.test)
+	$(call forcecopy,$(SOURCEDIR)/lock.test,$(TARGETDIR)/lock.test)
+	$(call forcecopy,$(SOURCEDIR)/lock2.test,$(TARGETDIR)/lock2.test)
+	$(call forcecopy,$(SOURCEDIR)/lock3.test,$(TARGETDIR)/lock3.test)
+	$(call forcecopy,$(SOURCEDIR)/lock4.test,$(TARGETDIR)/lock4.test)
+	$(call forcecopy,$(SOURCEDIR)/lock5.test,$(TARGETDIR)/lock5.test)
+	$(call forcecopy,$(SOURCEDIR)/lookaside.test,$(TARGETDIR)/lookaside.test)
+	$(call forcecopy,$(SOURCEDIR)/main.test,$(TARGETDIR)/main.test)
+	$(call forcecopy,$(SOURCEDIR)/malloc.test,$(TARGETDIR)/malloc.test)
+	$(call forcecopy,$(SOURCEDIR)/malloc3.test,$(TARGETDIR)/malloc3.test)
+	$(call forcecopy,$(SOURCEDIR)/malloc4.test,$(TARGETDIR)/malloc4.test)
+	$(call forcecopy,$(SOURCEDIR)/malloc5.test,$(TARGETDIR)/malloc5.test)
+	$(call forcecopy,$(SOURCEDIR)/malloc6.test,$(TARGETDIR)/malloc6.test)
+	$(call forcecopy,$(SOURCEDIR)/malloc7.test,$(TARGETDIR)/malloc7.test)
+	$(call forcecopy,$(SOURCEDIR)/malloc8.test,$(TARGETDIR)/malloc8.test)
+	$(call forcecopy,$(SOURCEDIR)/malloc9.test,$(TARGETDIR)/malloc9.test)
+	$(call forcecopy,$(SOURCEDIR)/mallocA.test,$(TARGETDIR)/mallocA.test)
+	$(call forcecopy,$(SOURCEDIR)/mallocAll.test,$(TARGETDIR)/mallocAll.test)
+	$(call forcecopy,$(SOURCEDIR)/mallocB.test,$(TARGETDIR)/mallocB.test)
+	$(call forcecopy,$(SOURCEDIR)/mallocC.test,$(TARGETDIR)/mallocC.test)
+	$(call forcecopy,$(SOURCEDIR)/mallocD.test,$(TARGETDIR)/mallocD.test)
+	$(call forcecopy,$(SOURCEDIR)/mallocE.test,$(TARGETDIR)/mallocE.test)
+	$(call forcecopy,$(SOURCEDIR)/mallocF.test,$(TARGETDIR)/mallocF.test)
+	$(call forcecopy,$(SOURCEDIR)/mallocG.test,$(TARGETDIR)/mallocG.test)
+	$(call forcecopy,$(SOURCEDIR)/mallocH.test,$(TARGETDIR)/mallocH.test)
+	$(call forcecopy,$(SOURCEDIR)/mallocI.test,$(TARGETDIR)/mallocI.test)
+	$(call forcecopy,$(SOURCEDIR)/manydb.test,$(TARGETDIR)/manydb.test)
+	$(call forcecopy,$(SOURCEDIR)/memdb.test,$(TARGETDIR)/memdb.test)
+	$(call forcecopy,$(SOURCEDIR)/memleak.test,$(TARGETDIR)/memleak.test)
+	$(call forcecopy,$(SOURCEDIR)/memsubsys1.test,$(TARGETDIR)/memsubsys1.test)
+	$(call forcecopy,$(SOURCEDIR)/memsubsys2.test,$(TARGETDIR)/memsubsys2.test)
+	$(call forcecopy,$(SOURCEDIR)/minmax.test,$(TARGETDIR)/minmax.test)
+	$(call forcecopy,$(SOURCEDIR)/minmax2.test,$(TARGETDIR)/minmax2.test)
+	$(call forcecopy,$(SOURCEDIR)/minmax3.test,$(TARGETDIR)/minmax3.test)
+	$(call forcecopy,$(SOURCEDIR)/misc1.test,$(TARGETDIR)/misc1.test)
+	$(call forcecopy,$(SOURCEDIR)/misc2.test,$(TARGETDIR)/misc2.test)
+	$(call forcecopy,$(SOURCEDIR)/misc3.test,$(TARGETDIR)/misc3.test)
+	$(call forcecopy,$(SOURCEDIR)/misc4.test,$(TARGETDIR)/misc4.test)
+	$(call forcecopy,$(SOURCEDIR)/misc5.test,$(TARGETDIR)/misc5.test)
+	$(call forcecopy,$(SOURCEDIR)/misc6.test,$(TARGETDIR)/misc6.test)
+	$(call forcecopy,$(SOURCEDIR)/misc7.test,$(TARGETDIR)/misc7.test)
+	$(call forcecopy,$(SOURCEDIR)/misuse.test,$(TARGETDIR)/misuse.test)
+	$(call forcecopy,$(SOURCEDIR)/mutex1.test,$(TARGETDIR)/mutex1.test)
+	$(call forcecopy,$(SOURCEDIR)/mutex2.test,$(TARGETDIR)/mutex2.test)
+	$(call forcecopy,$(SOURCEDIR)/nan.test,$(TARGETDIR)/nan.test)
+	$(call forcecopy,$(SOURCEDIR)/notnull.test,$(TARGETDIR)/notnull.test)
+	$(call forcecopy,$(SOURCEDIR)/null.test,$(TARGETDIR)/null.test)
+	$(call forcecopy,$(SOURCEDIR)/openv2.test,$(TARGETDIR)/openv2.test)
+	$(call forcecopy,$(SOURCEDIR)/pager.test,$(TARGETDIR)/pager.test)
+	$(call forcecopy,$(SOURCEDIR)/pager2.test,$(TARGETDIR)/pager2.test)
+	$(call forcecopy,$(SOURCEDIR)/pager3.test,$(TARGETDIR)/pager3.test)
+	$(call forcecopy,$(SOURCEDIR)/pageropt.test,$(TARGETDIR)/pageropt.test)
+	$(call forcecopy,$(SOURCEDIR)/pagesize.test,$(TARGETDIR)/pagesize.test)
+	$(call forcecopy,$(SOURCEDIR)/pcache.test,$(TARGETDIR)/pcache.test)
+	$(call forcecopy,$(SOURCEDIR)/permutations.test,$(TARGETDIR)/permutations.test)
+	$(call forcecopy,$(SOURCEDIR)/pragma.test,$(TARGETDIR)/pragma.test)
+	$(call forcecopy,$(SOURCEDIR)/pragma2.test,$(TARGETDIR)/pragma2.test)
+	$(call forcecopy,$(SOURCEDIR)/printf.test,$(TARGETDIR)/printf.test)
+	$(call forcecopy,$(SOURCEDIR)/progress.test,$(TARGETDIR)/progress.test)
+	$(call forcecopy,$(SOURCEDIR)/ptrchng.test,$(TARGETDIR)/ptrchng.test)
+	$(call forcecopy,$(SOURCEDIR)/quick.test,$(TARGETDIR)/quick.test)
+	$(call forcecopy,$(SOURCEDIR)/quote.test,$(TARGETDIR)/quote.test)
+	$(call forcecopy,$(SOURCEDIR)/rdonly.test,$(TARGETDIR)/rdonly.test)
+	$(call forcecopy,$(SOURCEDIR)/reindex.test,$(TARGETDIR)/reindex.test)
+	$(call forcecopy,$(SOURCEDIR)/rollback.test,$(TARGETDIR)/rollback.test)
+	$(call forcecopy,$(SOURCEDIR)/rowid.test,$(TARGETDIR)/rowid.test)
+	$(call forcecopy,$(SOURCEDIR)/rtree.test,$(TARGETDIR)/rtree.test)
+	$(call forcecopy,$(SOURCEDIR)/safety.test,$(TARGETDIR)/safety.test)
+	$(call forcecopy,$(SOURCEDIR)/schema.test,$(TARGETDIR)/schema.test)
+	$(call forcecopy,$(SOURCEDIR)/schema2.test,$(TARGETDIR)/schema2.test)
+	$(call forcecopy,$(SOURCEDIR)/select1.test,$(TARGETDIR)/select1.test)
+	$(call forcecopy,$(SOURCEDIR)/select2.test,$(TARGETDIR)/select2.test)
+	$(call forcecopy,$(SOURCEDIR)/select3.test,$(TARGETDIR)/select3.test)
+	$(call forcecopy,$(SOURCEDIR)/select4.test,$(TARGETDIR)/select4.test)
+	$(call forcecopy,$(SOURCEDIR)/select5.test,$(TARGETDIR)/select5.test)
+	$(call forcecopy,$(SOURCEDIR)/select6.test,$(TARGETDIR)/select6.test)
+	$(call forcecopy,$(SOURCEDIR)/select7.test,$(TARGETDIR)/select7.test)
+	$(call forcecopy,$(SOURCEDIR)/select8.test,$(TARGETDIR)/select8.test)
+	$(call forcecopy,$(SOURCEDIR)/select9.test,$(TARGETDIR)/select9.test)
+	$(call forcecopy,$(SOURCEDIR)/selectA.test,$(TARGETDIR)/selectA.test)
+	$(call forcecopy,$(SOURCEDIR)/selectB.test,$(TARGETDIR)/selectB.test)
+	$(call forcecopy,$(SOURCEDIR)/server1.test,$(TARGETDIR)/server1.test)
+	$(call forcecopy,$(SOURCEDIR)/shared.test,$(TARGETDIR)/shared.test)
+	$(call forcecopy,$(SOURCEDIR)/shared2.test,$(TARGETDIR)/shared2.test)
+	$(call forcecopy,$(SOURCEDIR)/shared3.test,$(TARGETDIR)/shared3.test)
+	$(call forcecopy,$(SOURCEDIR)/shared4.test,$(TARGETDIR)/shared4.test)
+	$(call forcecopy,$(SOURCEDIR)/shared_err.test,$(TARGETDIR)/shared_err.test)
+	$(call forcecopy,$(SOURCEDIR)/shortread1.test,$(TARGETDIR)/shortread1.test)
+	$(call forcecopy,$(SOURCEDIR)/sidedelete.test,$(TARGETDIR)/sidedelete.test)
+	$(call forcecopy,$(SOURCEDIR)/soak.test,$(TARGETDIR)/soak.test)
+	$(call forcecopy,$(SOURCEDIR)/softheap1.test,$(TARGETDIR)/softheap1.test)
+	$(call forcecopy,$(SOURCEDIR)/sort.test,$(TARGETDIR)/sort.test)
+	$(call forcecopy,$(SOURCEDIR)/speed1.test,$(TARGETDIR)/speed1.test)
+	$(call forcecopy,$(SOURCEDIR)/speed1p.test,$(TARGETDIR)/speed1p.test)
+	$(call forcecopy,$(SOURCEDIR)/speed2.test,$(TARGETDIR)/speed2.test)
+	$(call forcecopy,$(SOURCEDIR)/speed3.test,$(TARGETDIR)/speed3.test)
+	$(call forcecopy,$(SOURCEDIR)/speed4.test,$(TARGETDIR)/speed4.test)
+	$(call forcecopy,$(SOURCEDIR)/speed4p.test,$(TARGETDIR)/speed4p.test)
+	$(call forcecopy,$(SOURCEDIR)/sqllimits1.test,$(TARGETDIR)/sqllimits1.test)
+	$(call forcecopy,$(SOURCEDIR)/subquery.test,$(TARGETDIR)/subquery.test)
+	$(call forcecopy,$(SOURCEDIR)/subselect.test,$(TARGETDIR)/subselect.test)
+	$(call forcecopy,$(SOURCEDIR)/substr.test,$(TARGETDIR)/substr.test)
+	$(call forcecopy,$(SOURCEDIR)/sync.test,$(TARGETDIR)/sync.test)
+	$(call forcecopy,$(SOURCEDIR)/table.test,$(TARGETDIR)/table.test)
+	$(call forcecopy,$(SOURCEDIR)/tableapi.test,$(TARGETDIR)/tableapi.test)
+	$(call forcecopy,$(SOURCEDIR)/tclsqlite.test,$(TARGETDIR)/tclsqlite.test)
+	$(call forcecopy,$(SOURCEDIR)/tempdb.test,$(TARGETDIR)/tempdb.test)
+	$(call forcecopy,$(SOURCEDIR)/temptable.test,$(TARGETDIR)/temptable.test)
+	$(call forcecopy,$(SOURCEDIR)/thread001.test,$(TARGETDIR)/thread001.test)
+	$(call forcecopy,$(SOURCEDIR)/thread002.test,$(TARGETDIR)/thread002.test)
+	$(call forcecopy,$(SOURCEDIR)/thread003.test,$(TARGETDIR)/thread003.test)
+	$(call forcecopy,$(SOURCEDIR)/thread1.test,$(TARGETDIR)/thread1.test)
+	$(call forcecopy,$(SOURCEDIR)/thread2.test,$(TARGETDIR)/thread2.test)
+	$(call forcecopy,$(SOURCEDIR)/tkt1435.test,$(TARGETDIR)/tkt1435.test)
+	$(call forcecopy,$(SOURCEDIR)/tkt1443.test,$(TARGETDIR)/tkt1443.test)
+	$(call forcecopy,$(SOURCEDIR)/tkt1444.test,$(TARGETDIR)/tkt1444.test)
+	$(call forcecopy,$(SOURCEDIR)/tkt1449.test,$(TARGETDIR)/tkt1449.test)
+	$(call forcecopy,$(SOURCEDIR)/tkt1473.test,$(TARGETDIR)/tkt1473.test)
+	$(call forcecopy,$(SOURCEDIR)/tkt1501.test,$(TARGETDIR)/tkt1501.test)
+	$(call forcecopy,$(SOURCEDIR)/tkt1512.test,$(TARGETDIR)/tkt1512.test)
+	$(call forcecopy,$(SOURCEDIR)/tkt1514.test,$(TARGETDIR)/tkt1514.test)
+	$(call forcecopy,$(SOURCEDIR)/tkt1536.test,$(TARGETDIR)/tkt1536.test)
+	$(call forcecopy,$(SOURCEDIR)/tkt1537.test,$(TARGETDIR)/tkt1537.test)
+	$(call forcecopy,$(SOURCEDIR)/tkt1567.test,$(TARGETDIR)/tkt1567.test)
+	$(call forcecopy,$(SOURCEDIR)/tkt1644.test,$(TARGETDIR)/tkt1644.test)
+	$(call forcecopy,$(SOURCEDIR)/tkt1667.test,$(TARGETDIR)/tkt1667.test)
+	$(call forcecopy,$(SOURCEDIR)/tkt1873.test,$(TARGETDIR)/tkt1873.test)
+	$(call forcecopy,$(SOURCEDIR)/tkt2141.test,$(TARGETDIR)/tkt2141.test)
+	$(call forcecopy,$(SOURCEDIR)/tkt2192.test,$(TARGETDIR)/tkt2192.test)
+	$(call forcecopy,$(SOURCEDIR)/tkt2213.test,$(TARGETDIR)/tkt2213.test)
+	$(call forcecopy,$(SOURCEDIR)/tkt2251.test,$(TARGETDIR)/tkt2251.test)
+	$(call forcecopy,$(SOURCEDIR)/tkt2285.test,$(TARGETDIR)/tkt2285.test)
+	$(call forcecopy,$(SOURCEDIR)/tkt2332.test,$(TARGETDIR)/tkt2332.test)
+	$(call forcecopy,$(SOURCEDIR)/tkt2339.test,$(TARGETDIR)/tkt2339.test)
+	$(call forcecopy,$(SOURCEDIR)/tkt2391.test,$(TARGETDIR)/tkt2391.test)
+	$(call forcecopy,$(SOURCEDIR)/tkt2409.test,$(TARGETDIR)/tkt2409.test)
+	$(call forcecopy,$(SOURCEDIR)/tkt2450.test,$(TARGETDIR)/tkt2450.test)
+	$(call forcecopy,$(SOURCEDIR)/tkt2640.test,$(TARGETDIR)/tkt2640.test)
+	$(call forcecopy,$(SOURCEDIR)/tkt2643.test,$(TARGETDIR)/tkt2643.test)
+	$(call forcecopy,$(SOURCEDIR)/tkt2686.test,$(TARGETDIR)/tkt2686.test)
+	$(call forcecopy,$(SOURCEDIR)/tkt2767.test,$(TARGETDIR)/tkt2767.test)
+	$(call forcecopy,$(SOURCEDIR)/tkt2817.test,$(TARGETDIR)/tkt2817.test)
+	$(call forcecopy,$(SOURCEDIR)/tkt2820.test,$(TARGETDIR)/tkt2820.test)
+	$(call forcecopy,$(SOURCEDIR)/tkt2822.test,$(TARGETDIR)/tkt2822.test)
+	$(call forcecopy,$(SOURCEDIR)/tkt2832.test,$(TARGETDIR)/tkt2832.test)
+	$(call forcecopy,$(SOURCEDIR)/tkt2854.test,$(TARGETDIR)/tkt2854.test)
+	$(call forcecopy,$(SOURCEDIR)/tkt2920.test,$(TARGETDIR)/tkt2920.test)
+	$(call forcecopy,$(SOURCEDIR)/tkt2927.test,$(TARGETDIR)/tkt2927.test)
+	$(call forcecopy,$(SOURCEDIR)/tkt2942.test,$(TARGETDIR)/tkt2942.test)
+	$(call forcecopy,$(SOURCEDIR)/tkt3080.test,$(TARGETDIR)/tkt3080.test)
+	$(call forcecopy,$(SOURCEDIR)/tkt3093.test,$(TARGETDIR)/tkt3093.test)
+	$(call forcecopy,$(SOURCEDIR)/tkt3121.test,$(TARGETDIR)/tkt3121.test)
+	$(call forcecopy,$(SOURCEDIR)/tkt3201.test,$(TARGETDIR)/tkt3201.test)
+	$(call forcecopy,$(SOURCEDIR)/tkt3292.test,$(TARGETDIR)/tkt3292.test)
+	$(call forcecopy,$(SOURCEDIR)/tkt3298.test,$(TARGETDIR)/tkt3298.test)
+	$(call forcecopy,$(SOURCEDIR)/tkt3334.test,$(TARGETDIR)/tkt3334.test)
+	$(call forcecopy,$(SOURCEDIR)/tokenize.test,$(TARGETDIR)/tokenize.test)
+	$(call forcecopy,$(SOURCEDIR)/trace.test,$(TARGETDIR)/trace.test)
+	$(call forcecopy,$(SOURCEDIR)/trans.test,$(TARGETDIR)/trans.test)
+	$(call forcecopy,$(SOURCEDIR)/trans2.test,$(TARGETDIR)/trans2.test)
+	$(call forcecopy,$(SOURCEDIR)/trigger1.test,$(TARGETDIR)/trigger1.test)
+	$(call forcecopy,$(SOURCEDIR)/trigger2.test,$(TARGETDIR)/trigger2.test)
+	$(call forcecopy,$(SOURCEDIR)/trigger3.test,$(TARGETDIR)/trigger3.test)
+	$(call forcecopy,$(SOURCEDIR)/trigger4.test,$(TARGETDIR)/trigger4.test)
+	$(call forcecopy,$(SOURCEDIR)/trigger5.test,$(TARGETDIR)/trigger5.test)
+	$(call forcecopy,$(SOURCEDIR)/trigger6.test,$(TARGETDIR)/trigger6.test)
+	$(call forcecopy,$(SOURCEDIR)/trigger7.test,$(TARGETDIR)/trigger7.test)
+	$(call forcecopy,$(SOURCEDIR)/trigger8.test,$(TARGETDIR)/trigger8.test)
+	$(call forcecopy,$(SOURCEDIR)/trigger9.test,$(TARGETDIR)/trigger9.test)
+	$(call forcecopy,$(SOURCEDIR)/triggerA.test,$(TARGETDIR)/triggerA.test)
+	$(call forcecopy,$(SOURCEDIR)/triggerB.test,$(TARGETDIR)/triggerB.test)
+	$(call forcecopy,$(SOURCEDIR)/types.test,$(TARGETDIR)/types.test)
+	$(call forcecopy,$(SOURCEDIR)/types2.test,$(TARGETDIR)/types2.test)
+	$(call forcecopy,$(SOURCEDIR)/types3.test,$(TARGETDIR)/types3.test)
+	$(call forcecopy,$(SOURCEDIR)/unique.test,$(TARGETDIR)/unique.test)
+	$(call forcecopy,$(SOURCEDIR)/update.test,$(TARGETDIR)/update.test)
+	$(call forcecopy,$(SOURCEDIR)/utf16align.test,$(TARGETDIR)/utf16align.test)
+	$(call forcecopy,$(SOURCEDIR)/vacuum.test,$(TARGETDIR)/vacuum.test)
+	$(call forcecopy,$(SOURCEDIR)/vacuum2.test,$(TARGETDIR)/vacuum2.test)
+	$(call forcecopy,$(SOURCEDIR)/vacuum3.test,$(TARGETDIR)/vacuum3.test)
+	$(call forcecopy,$(SOURCEDIR)/varint.test,$(TARGETDIR)/varint.test)
+	$(call forcecopy,$(SOURCEDIR)/veryquick.test,$(TARGETDIR)/veryquick.test)
+	$(call forcecopy,$(SOURCEDIR)/view.test,$(TARGETDIR)/view.test)
+	$(call forcecopy,$(SOURCEDIR)/vtab1.test,$(TARGETDIR)/vtab1.test)
+	$(call forcecopy,$(SOURCEDIR)/vtab2.test,$(TARGETDIR)/vtab2.test)
+	$(call forcecopy,$(SOURCEDIR)/vtab3.test,$(TARGETDIR)/vtab3.test)
+	$(call forcecopy,$(SOURCEDIR)/vtab4.test,$(TARGETDIR)/vtab4.test)
+	$(call forcecopy,$(SOURCEDIR)/vtab5.test,$(TARGETDIR)/vtab5.test)
+	$(call forcecopy,$(SOURCEDIR)/vtab6.test,$(TARGETDIR)/vtab6.test)
+	$(call forcecopy,$(SOURCEDIR)/vtab7.test,$(TARGETDIR)/vtab7.test)
+	$(call forcecopy,$(SOURCEDIR)/vtab8.test,$(TARGETDIR)/vtab8.test)
+	$(call forcecopy,$(SOURCEDIR)/vtab9.test,$(TARGETDIR)/vtab9.test)
+	$(call forcecopy,$(SOURCEDIR)/vtabA.test,$(TARGETDIR)/vtabA.test)
+	$(call forcecopy,$(SOURCEDIR)/vtabB.test,$(TARGETDIR)/vtabB.test)
+	$(call forcecopy,$(SOURCEDIR)/vtabC.test,$(TARGETDIR)/vtabC.test)
+	$(call forcecopy,$(SOURCEDIR)/vtab_alter.test,$(TARGETDIR)/vtab_alter.test)
+	$(call forcecopy,$(SOURCEDIR)/vtab_err.test,$(TARGETDIR)/vtab_err.test)
+	$(call forcecopy,$(SOURCEDIR)/vtab_shared.test,$(TARGETDIR)/vtab_shared.test)
+	$(call forcecopy,$(SOURCEDIR)/where.test,$(TARGETDIR)/where.test)
+	$(call forcecopy,$(SOURCEDIR)/where2.test,$(TARGETDIR)/where2.test)
+	$(call forcecopy,$(SOURCEDIR)/where3.test,$(TARGETDIR)/where3.test)
+	$(call forcecopy,$(SOURCEDIR)/where4.test,$(TARGETDIR)/where4.test)
+	$(call forcecopy,$(SOURCEDIR)/where5.test,$(TARGETDIR)/where5.test)
+	$(call forcecopy,$(SOURCEDIR)/where6.test,$(TARGETDIR)/where6.test)
+	$(call forcecopy,$(SOURCEDIR)/zeroblob.test,$(TARGETDIR)/zeroblob.test)
+	
+DO_NOTHING :
+	@echo do nothing
+
+#
+# The targets invoked by bld...
+#
+
+MAKMAKE : DO_NOTHING
+
+BLD : $(TARGETDIR) COPYFILES
+
+CLEAN : 
+	$(call forceremove,$(TARGET_FILES))
+	
+SAVESPACE : DO_NOTHING
+
+RESOURCE : DO_NOTHING
+
+FREEZE : DO_NOTHING
+
+LIB : DO_NOTHING
+
+CLEANLIB : DO_NOTHING
+
+FINAL : DO_NOTHING
+
+RELEASABLES : 
+	@echo $(TARGETDIR)/speed1p.explain
+	@echo $(TARGETDIR)/speed4p.explain
+	@echo $(TARGETDIR)/fuzz_common.tcl
+	@echo $(TARGETDIR)/malloc_common.tcl
+	@echo $(TARGETDIR)/tester.tcl
+	@echo $(TARGETDIR)/thread_common.tcl
+	@echo $(TARGETDIR)/trans2.test.gz
+	@echo $(TARGETDIR)/aggerror.test
+	@echo $(TARGETDIR)/alias.test
+	@echo $(TARGETDIR)/all.test
+	@echo $(TARGETDIR)/alter.test
+	@echo $(TARGETDIR)/alter2.test
+	@echo $(TARGETDIR)/alter3.test
+	@echo $(TARGETDIR)/altermalloc.test
+	@echo $(TARGETDIR)/analyze.test
+	@echo $(TARGETDIR)/async.test
+	@echo $(TARGETDIR)/async2.test
+	@echo $(TARGETDIR)/async3.test
+	@echo $(TARGETDIR)/attach.test
+	@echo $(TARGETDIR)/attach2.test
+	@echo $(TARGETDIR)/attach3.test
+	@echo $(TARGETDIR)/attachmalloc.test
+	@echo $(TARGETDIR)/auth.test
+	@echo $(TARGETDIR)/auth2.test
+	@echo $(TARGETDIR)/autoinc.test
+	@echo $(TARGETDIR)/autovacuum.test
+	@echo $(TARGETDIR)/autovacuum_ioerr2.test
+	@echo $(TARGETDIR)/avtrans.test
+	@echo $(TARGETDIR)/badutf.test
+	@echo $(TARGETDIR)/between.test
+	@echo $(TARGETDIR)/bigfile.test
+	@echo $(TARGETDIR)/bigrow.test
+	@echo $(TARGETDIR)/bind.test
+	@echo $(TARGETDIR)/bindxfer.test
+	@echo $(TARGETDIR)/bitvec.test
+	@echo $(TARGETDIR)/blob.test
+	@echo $(TARGETDIR)/busy.test
+	@echo $(TARGETDIR)/cache.test
+	@echo $(TARGETDIR)/capi2.test
+	@echo $(TARGETDIR)/capi3.test
+	@echo $(TARGETDIR)/capi3b.test
+	@echo $(TARGETDIR)/capi3c.test
+	@echo $(TARGETDIR)/capi3d.test
+	@echo $(TARGETDIR)/cast.test
+	@echo $(TARGETDIR)/check.test
+	@echo $(TARGETDIR)/collate1.test
+	@echo $(TARGETDIR)/collate2.test
+	@echo $(TARGETDIR)/collate3.test
+	@echo $(TARGETDIR)/collate4.test
+	@echo $(TARGETDIR)/collate5.test
+	@echo $(TARGETDIR)/collate6.test
+	@echo $(TARGETDIR)/collate7.test
+	@echo $(TARGETDIR)/collate8.test
+	@echo $(TARGETDIR)/collate9.test
+	@echo $(TARGETDIR)/collateA.test
+	@echo $(TARGETDIR)/colmeta.test
+	@echo $(TARGETDIR)/colname.test
+	@echo $(TARGETDIR)/conflict.test
+	@echo $(TARGETDIR)/corrupt.test
+	@echo $(TARGETDIR)/corrupt2.test
+	@echo $(TARGETDIR)/corrupt3.test
+	@echo $(TARGETDIR)/corrupt4.test
+	@echo $(TARGETDIR)/corrupt5.test
+	@echo $(TARGETDIR)/corrupt6.test
+	@echo $(TARGETDIR)/corrupt7.test
+	@echo $(TARGETDIR)/corrupt8.test
+	@echo $(TARGETDIR)/corrupt9.test
+	@echo $(TARGETDIR)/corruptA.test
+	@echo $(TARGETDIR)/crash.test
+	@echo $(TARGETDIR)/crash2.test
+	@echo $(TARGETDIR)/crash3.test
+	@echo $(TARGETDIR)/crash4.test
+	@echo $(TARGETDIR)/crash5.test
+	@echo $(TARGETDIR)/crash6.test
+	@echo $(TARGETDIR)/crash7.test
+	@echo $(TARGETDIR)/createtab.test
+	@echo $(TARGETDIR)/cse.test
+	@echo $(TARGETDIR)/date.test
+	@echo $(TARGETDIR)/default.test
+	@echo $(TARGETDIR)/delete.test
+	@echo $(TARGETDIR)/delete2.test
+	@echo $(TARGETDIR)/delete3.test
+	@echo $(TARGETDIR)/descidx1.test
+	@echo $(TARGETDIR)/descidx2.test
+	@echo $(TARGETDIR)/descidx3.test
+	@echo $(TARGETDIR)/diskfull.test
+	@echo $(TARGETDIR)/distinctagg.test
+	@echo $(TARGETDIR)/enc.test
+	@echo $(TARGETDIR)/enc2.test
+	@echo $(TARGETDIR)/enc3.test
+	@echo $(TARGETDIR)/eval.test
+	@echo $(TARGETDIR)/exclusive.test
+	@echo $(TARGETDIR)/exclusive2.test
+	@echo $(TARGETDIR)/exec.test
+	@echo $(TARGETDIR)/expr.test
+	@echo $(TARGETDIR)/filectrl.test
+	@echo $(TARGETDIR)/filefmt.test
+	@echo $(TARGETDIR)/fkey1.test
+	@echo $(TARGETDIR)/format4.test
+	@echo $(TARGETDIR)/fts1a.test
+	@echo $(TARGETDIR)/fts1b.test
+	@echo $(TARGETDIR)/fts1c.test
+	@echo $(TARGETDIR)/fts1d.test
+	@echo $(TARGETDIR)/fts1e.test
+	@echo $(TARGETDIR)/fts1f.test
+	@echo $(TARGETDIR)/fts1i.test
+	@echo $(TARGETDIR)/fts1j.test
+	@echo $(TARGETDIR)/fts1k.test
+	@echo $(TARGETDIR)/fts1l.test
+	@echo $(TARGETDIR)/fts1m.test
+	@echo $(TARGETDIR)/fts1n.test
+	@echo $(TARGETDIR)/fts1o.test
+	@echo $(TARGETDIR)/fts1porter.test
+	@echo $(TARGETDIR)/fts2.test
+	@echo $(TARGETDIR)/fts2a.test
+	@echo $(TARGETDIR)/fts2b.test
+	@echo $(TARGETDIR)/fts2c.test
+	@echo $(TARGETDIR)/fts2d.test
+	@echo $(TARGETDIR)/fts2e.test
+	@echo $(TARGETDIR)/fts2f.test
+	@echo $(TARGETDIR)/fts2g.test
+	@echo $(TARGETDIR)/fts2h.test
+	@echo $(TARGETDIR)/fts2i.test
+	@echo $(TARGETDIR)/fts2j.test
+	@echo $(TARGETDIR)/fts2k.test
+	@echo $(TARGETDIR)/fts2l.test
+	@echo $(TARGETDIR)/fts2m.test
+	@echo $(TARGETDIR)/fts2n.test
+	@echo $(TARGETDIR)/fts2o.test
+	@echo $(TARGETDIR)/fts2p.test
+	@echo $(TARGETDIR)/fts2q.test
+	@echo $(TARGETDIR)/fts2r.test
+	@echo $(TARGETDIR)/fts2token.test
+	@echo $(TARGETDIR)/fts3.test
+	@echo $(TARGETDIR)/fts3aa.test
+	@echo $(TARGETDIR)/fts3ab.test
+	@echo $(TARGETDIR)/fts3ac.test
+	@echo $(TARGETDIR)/fts3ad.test
+	@echo $(TARGETDIR)/fts3ae.test
+	@echo $(TARGETDIR)/fts3af.test
+	@echo $(TARGETDIR)/fts3ag.test
+	@echo $(TARGETDIR)/fts3ah.test
+	@echo $(TARGETDIR)/fts3ai.test
+	@echo $(TARGETDIR)/fts3aj.test
+	@echo $(TARGETDIR)/fts3ak.test
+	@echo $(TARGETDIR)/fts3al.test
+	@echo $(TARGETDIR)/fts3am.test
+	@echo $(TARGETDIR)/fts3an.test
+	@echo $(TARGETDIR)/fts3ao.test
+	@echo $(TARGETDIR)/fts3atoken.test
+	@echo $(TARGETDIR)/fts3b.test
+	@echo $(TARGETDIR)/fts3c.test
+	@echo $(TARGETDIR)/fts3d.test
+	@echo $(TARGETDIR)/fts3e.test
+	@echo $(TARGETDIR)/fts3near.test
+	@echo $(TARGETDIR)/func.test
+	@echo $(TARGETDIR)/fuzz.test
+	@echo $(TARGETDIR)/fuzz2.test
+	@echo $(TARGETDIR)/fuzz_malloc.test
+	@echo $(TARGETDIR)/hook.test
+	@echo $(TARGETDIR)/icu.test
+	@echo $(TARGETDIR)/in.test
+	@echo $(TARGETDIR)/in2.test
+	@echo $(TARGETDIR)/in3.test
+	@echo $(TARGETDIR)/incrblob.test
+	@echo $(TARGETDIR)/incrblob2.test
+	@echo $(TARGETDIR)/incrblob_err.test
+	@echo $(TARGETDIR)/incrvacuum.test
+	@echo $(TARGETDIR)/incrvacuum2.test
+	@echo $(TARGETDIR)/incrvacuum_ioerr.test
+	@echo $(TARGETDIR)/index.test
+	@echo $(TARGETDIR)/index2.test
+	@echo $(TARGETDIR)/index3.test
+	@echo $(TARGETDIR)/insert.test
+	@echo $(TARGETDIR)/insert2.test
+	@echo $(TARGETDIR)/insert3.test
+	@echo $(TARGETDIR)/insert4.test
+	@echo $(TARGETDIR)/insert5.test
+	@echo $(TARGETDIR)/interrupt.test
+	@echo $(TARGETDIR)/intpkey.test
+	@echo $(TARGETDIR)/io.test
+	@echo $(TARGETDIR)/ioerr.test
+	@echo $(TARGETDIR)/ioerr2.test
+	@echo $(TARGETDIR)/ioerr3.test
+	@echo $(TARGETDIR)/ioerr4.test
+	@echo $(TARGETDIR)/ioerr5.test
+	@echo $(TARGETDIR)/join.test
+	@echo $(TARGETDIR)/join2.test
+	@echo $(TARGETDIR)/join3.test
+	@echo $(TARGETDIR)/join4.test
+	@echo $(TARGETDIR)/join5.test
+	@echo $(TARGETDIR)/journal1.test
+	@echo $(TARGETDIR)/jrnlmode.test
+	@echo $(TARGETDIR)/lastinsert.test
+	@echo $(TARGETDIR)/laststmtchanges.test
+	@echo $(TARGETDIR)/like.test
+	@echo $(TARGETDIR)/like2.test
+	@echo $(TARGETDIR)/limit.test
+	@echo $(TARGETDIR)/loadext.test
+	@echo $(TARGETDIR)/loadext2.test
+	@echo $(TARGETDIR)/lock.test
+	@echo $(TARGETDIR)/lock2.test
+	@echo $(TARGETDIR)/lock3.test
+	@echo $(TARGETDIR)/lock4.test
+	@echo $(TARGETDIR)/lock5.test
+	@echo $(TARGETDIR)/lookaside.test
+	@echo $(TARGETDIR)/main.test
+	@echo $(TARGETDIR)/malloc.test
+	@echo $(TARGETDIR)/malloc3.test
+	@echo $(TARGETDIR)/malloc4.test
+	@echo $(TARGETDIR)/malloc5.test
+	@echo $(TARGETDIR)/malloc6.test
+	@echo $(TARGETDIR)/malloc7.test
+	@echo $(TARGETDIR)/malloc8.test
+	@echo $(TARGETDIR)/malloc9.test
+	@echo $(TARGETDIR)/mallocA.test
+	@echo $(TARGETDIR)/mallocAll.test
+	@echo $(TARGETDIR)/mallocB.test
+	@echo $(TARGETDIR)/mallocC.test
+	@echo $(TARGETDIR)/mallocD.test
+	@echo $(TARGETDIR)/mallocE.test
+	@echo $(TARGETDIR)/mallocF.test
+	@echo $(TARGETDIR)/mallocG.test
+	@echo $(TARGETDIR)/mallocH.test
+	@echo $(TARGETDIR)/mallocI.test
+	@echo $(TARGETDIR)/manydb.test
+	@echo $(TARGETDIR)/memdb.test
+	@echo $(TARGETDIR)/memleak.test
+	@echo $(TARGETDIR)/memsubsys1.test
+	@echo $(TARGETDIR)/memsubsys2.test
+	@echo $(TARGETDIR)/minmax.test
+	@echo $(TARGETDIR)/minmax2.test
+	@echo $(TARGETDIR)/minmax3.test
+	@echo $(TARGETDIR)/misc1.test
+	@echo $(TARGETDIR)/misc2.test
+	@echo $(TARGETDIR)/misc3.test
+	@echo $(TARGETDIR)/misc4.test
+	@echo $(TARGETDIR)/misc5.test
+	@echo $(TARGETDIR)/misc6.test
+	@echo $(TARGETDIR)/misc7.test
+	@echo $(TARGETDIR)/misuse.test
+	@echo $(TARGETDIR)/mutex1.test
+	@echo $(TARGETDIR)/mutex2.test
+	@echo $(TARGETDIR)/nan.test
+	@echo $(TARGETDIR)/notnull.test
+	@echo $(TARGETDIR)/null.test
+	@echo $(TARGETDIR)/openv2.test
+	@echo $(TARGETDIR)/pager.test
+	@echo $(TARGETDIR)/pager2.test
+	@echo $(TARGETDIR)/pager3.test
+	@echo $(TARGETDIR)/pageropt.test
+	@echo $(TARGETDIR)/pagesize.test
+	@echo $(TARGETDIR)/pcache.test
+	@echo $(TARGETDIR)/permutations.test
+	@echo $(TARGETDIR)/pragma.test
+	@echo $(TARGETDIR)/pragma2.test
+	@echo $(TARGETDIR)/printf.test
+	@echo $(TARGETDIR)/progress.test
+	@echo $(TARGETDIR)/ptrchng.test
+	@echo $(TARGETDIR)/quick.test
+	@echo $(TARGETDIR)/quote.test
+	@echo $(TARGETDIR)/rdonly.test
+	@echo $(TARGETDIR)/reindex.test
+	@echo $(TARGETDIR)/rollback.test
+	@echo $(TARGETDIR)/rowid.test
+	@echo $(TARGETDIR)/rtree.test
+	@echo $(TARGETDIR)/safety.test
+	@echo $(TARGETDIR)/schema.test
+	@echo $(TARGETDIR)/schema2.test
+	@echo $(TARGETDIR)/select1.test
+	@echo $(TARGETDIR)/select2.test
+	@echo $(TARGETDIR)/select3.test
+	@echo $(TARGETDIR)/select4.test
+	@echo $(TARGETDIR)/select5.test
+	@echo $(TARGETDIR)/select6.test
+	@echo $(TARGETDIR)/select7.test
+	@echo $(TARGETDIR)/select8.test
+	@echo $(TARGETDIR)/select9.test
+	@echo $(TARGETDIR)/selectA.test
+	@echo $(TARGETDIR)/selectB.test
+	@echo $(TARGETDIR)/server1.test
+	@echo $(TARGETDIR)/shared.test
+	@echo $(TARGETDIR)/shared2.test
+	@echo $(TARGETDIR)/shared3.test
+	@echo $(TARGETDIR)/shared4.test
+	@echo $(TARGETDIR)/shared_err.test
+	@echo $(TARGETDIR)/shortread1.test
+	@echo $(TARGETDIR)/sidedelete.test
+	@echo $(TARGETDIR)/soak.test
+	@echo $(TARGETDIR)/softheap1.test
+	@echo $(TARGETDIR)/sort.test
+	@echo $(TARGETDIR)/speed1.test
+	@echo $(TARGETDIR)/speed1p.test
+	@echo $(TARGETDIR)/speed2.test
+	@echo $(TARGETDIR)/speed3.test
+	@echo $(TARGETDIR)/speed4.test
+	@echo $(TARGETDIR)/speed4p.test
+	@echo $(TARGETDIR)/sqllimits1.test
+	@echo $(TARGETDIR)/subquery.test
+	@echo $(TARGETDIR)/subselect.test
+	@echo $(TARGETDIR)/substr.test
+	@echo $(TARGETDIR)/sync.test
+	@echo $(TARGETDIR)/table.test
+	@echo $(TARGETDIR)/tableapi.test
+	@echo $(TARGETDIR)/tclsqlite.test
+	@echo $(TARGETDIR)/tempdb.test
+	@echo $(TARGETDIR)/temptable.test
+	@echo $(TARGETDIR)/thread001.test
+	@echo $(TARGETDIR)/thread002.test
+	@echo $(TARGETDIR)/thread003.test
+	@echo $(TARGETDIR)/thread1.test
+	@echo $(TARGETDIR)/thread2.test
+	@echo $(TARGETDIR)/tkt1435.test
+	@echo $(TARGETDIR)/tkt1443.test
+	@echo $(TARGETDIR)/tkt1444.test
+	@echo $(TARGETDIR)/tkt1449.test
+	@echo $(TARGETDIR)/tkt1473.test
+	@echo $(TARGETDIR)/tkt1501.test
+	@echo $(TARGETDIR)/tkt1512.test
+	@echo $(TARGETDIR)/tkt1514.test
+	@echo $(TARGETDIR)/tkt1536.test
+	@echo $(TARGETDIR)/tkt1537.test
+	@echo $(TARGETDIR)/tkt1567.test
+	@echo $(TARGETDIR)/tkt1644.test
+	@echo $(TARGETDIR)/tkt1667.test
+	@echo $(TARGETDIR)/tkt1873.test
+	@echo $(TARGETDIR)/tkt2141.test
+	@echo $(TARGETDIR)/tkt2192.test
+	@echo $(TARGETDIR)/tkt2213.test
+	@echo $(TARGETDIR)/tkt2251.test
+	@echo $(TARGETDIR)/tkt2285.test
+	@echo $(TARGETDIR)/tkt2332.test
+	@echo $(TARGETDIR)/tkt2339.test
+	@echo $(TARGETDIR)/tkt2391.test
+	@echo $(TARGETDIR)/tkt2409.test
+	@echo $(TARGETDIR)/tkt2450.test
+	@echo $(TARGETDIR)/tkt2640.test
+	@echo $(TARGETDIR)/tkt2643.test
+	@echo $(TARGETDIR)/tkt2686.test
+	@echo $(TARGETDIR)/tkt2767.test
+	@echo $(TARGETDIR)/tkt2817.test
+	@echo $(TARGETDIR)/tkt2820.test
+	@echo $(TARGETDIR)/tkt2822.test
+	@echo $(TARGETDIR)/tkt2832.test
+	@echo $(TARGETDIR)/tkt2854.test
+	@echo $(TARGETDIR)/tkt2920.test
+	@echo $(TARGETDIR)/tkt2927.test
+	@echo $(TARGETDIR)/tkt2942.test
+	@echo $(TARGETDIR)/tkt3080.test
+	@echo $(TARGETDIR)/tkt3093.test
+	@echo $(TARGETDIR)/tkt3121.test
+	@echo $(TARGETDIR)/tkt3201.test
+	@echo $(TARGETDIR)/tkt3292.test
+	@echo $(TARGETDIR)/tkt3298.test
+	@echo $(TARGETDIR)/tkt3334.test
+	@echo $(TARGETDIR)/tokenize.test
+	@echo $(TARGETDIR)/trace.test
+	@echo $(TARGETDIR)/trans.test
+	@echo $(TARGETDIR)/trans2.test
+	@echo $(TARGETDIR)/trigger1.test
+	@echo $(TARGETDIR)/trigger2.test
+	@echo $(TARGETDIR)/trigger3.test
+	@echo $(TARGETDIR)/trigger4.test
+	@echo $(TARGETDIR)/trigger5.test
+	@echo $(TARGETDIR)/trigger6.test
+	@echo $(TARGETDIR)/trigger7.test
+	@echo $(TARGETDIR)/trigger8.test
+	@echo $(TARGETDIR)/trigger9.test
+	@echo $(TARGETDIR)/triggerA.test
+	@echo $(TARGETDIR)/triggerB.test
+	@echo $(TARGETDIR)/types.test
+	@echo $(TARGETDIR)/types2.test
+	@echo $(TARGETDIR)/types3.test
+	@echo $(TARGETDIR)/unique.test
+	@echo $(TARGETDIR)/update.test
+	@echo $(TARGETDIR)/utf16align.test
+	@echo $(TARGETDIR)/vacuum.test
+	@echo $(TARGETDIR)/vacuum2.test
+	@echo $(TARGETDIR)/vacuum3.test
+	@echo $(TARGETDIR)/varint.test
+	@echo $(TARGETDIR)/veryquick.test
+	@echo $(TARGETDIR)/view.test
+	@echo $(TARGETDIR)/vtab1.test
+	@echo $(TARGETDIR)/vtab2.test
+	@echo $(TARGETDIR)/vtab3.test
+	@echo $(TARGETDIR)/vtab4.test
+	@echo $(TARGETDIR)/vtab5.test
+	@echo $(TARGETDIR)/vtab6.test
+	@echo $(TARGETDIR)/vtab7.test
+	@echo $(TARGETDIR)/vtab8.test
+	@echo $(TARGETDIR)/vtab9.test
+	@echo $(TARGETDIR)/vtabA.test
+	@echo $(TARGETDIR)/vtabB.test
+	@echo $(TARGETDIR)/vtabC.test
+	@echo $(TARGETDIR)/vtab_alter.test
+	@echo $(TARGETDIR)/vtab_err.test
+	@echo $(TARGETDIR)/vtab_shared.test
+	@echo $(TARGETDIR)/where.test
+	@echo $(TARGETDIR)/where2.test
+	@echo $(TARGETDIR)/where3.test
+	@echo $(TARGETDIR)/where4.test
+	@echo $(TARGETDIR)/where5.test
+	@echo $(TARGETDIR)/where6.test
+	@echo $(TARGETDIR)/zeroblob.test
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/syslibs/test/sqlite3_securecopytestfiles.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,20 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for sqlite3_securecopytestfiles
+#
+
+platform	win32
+makefile 	gnumake
+techstream	pds
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/syslibs/test/sqlite3_securecopytestfiles.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,69 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Copy SQLITE3_SECURE test files
+# 
+#
+
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+ifeq ($(findstring WINS,$(PLATFORM)),WINS)
+	TARGETDIR=$(EPOCROOT)epoc32/release/$(PLATFORM_PATH)/$(CFG_PATH)/z/private/10286A82
+else
+	TARGETDIR=$(EPOCROOT)epoc32/data/z/private/10286A82
+
+endif
+
+SOURCEDIR = $(EXTENSION_ROOT)/../TEST/TCLSCRIPT
+
+$(TARGETDIR):
+	$(call createdir, "$@")
+
+COPYFILES :
+	$(call forcecopy,$(SOURCEDIR)/*.test,$(TARGETDIR)/)
+	$(call forcecopy,$(SOURCEDIR)/tester.tcl,$(TARGETDIR)/)
+
+	
+DO_NOTHING :
+	@echo do nothing
+
+#
+# The targets invoked by bld...
+#
+
+MAKMAKE : DO_NOTHING
+
+BLD : $(TARGETDIR) $(SOURCEDIR) COPYFILES
+
+CLEAN : 
+	$(call forceremove,$(TARGETDIR)/*.test)
+	$(call forceremove,$(TARGETDIR)/tester.tcl)
+	
+SAVESPACE : DO_NOTHING
+
+RESOURCE : DO_NOTHING
+
+FREEZE : DO_NOTHING
+
+LIB : DO_NOTHING
+
+CLEANLIB : DO_NOTHING
+
+FINAL : DO_NOTHING
+
+RELEASABLES : 
+	@echo $(TARGETDIR)/*.test
+	@echo $(TARGETDIR)/tester.tcl
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/syslibs/test/xml_sitestfiledist.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,19 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for xml_sitestfiledist
+#
+
+platform	win32
+makefile 	gnumake
+techstream	syslibs
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/syslibs/test/xml_sitestfiledist.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,131 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+
+
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+ifeq ($(OS), "Windows_NT")
+RMDIR := @rmdir 2>>nul
+else
+RMDIR := @rmdir
+endif
+
+ifeq ($(findstring WINS,$(PLATFORM)),WINS)
+	DEST_DIR = $(EPOCROOT)epoc32/release/$(PLATFORM_PATH)/$(CFG_PATH)/z/system/xmltest/serviceindication
+else
+	DEST_DIR = $(EPOCROOT)epoc32/data/z/system/xmltest/serviceindication
+endif
+
+SOURCE_DIR = $(EXTENSION_ROOT)/../test/rtest/data/serviceindication
+
+# Ensure we have a clean canvas - this also avoids us having to specify
+# switches to commands that are not recognised across platforms.
+CLEAN_DEST :
+	$(call createdir,$(DEST_DIR))
+
+MAKE_DIRS :
+	$(call createdir,$(DEST_DIR)/1.0)
+	$(call createdir,$(DEST_DIR)/corrupt)
+
+COPYFILES : CLEAN_DEST MAKE_DIRS
+	$(CP) $(call slash2generic, $(SOURCE_DIR)/1.0/*.bdy $(DEST_DIR)/1.0/*.bdy)
+	$(CP) $(call slash2generic, $(SOURCE_DIR)/corrupt/*.bdy $(DEST_DIR)/corrupt/*.bdy)
+
+DO_NOTHING:
+	@echo do nothing
+
+#
+# The targets invoked by bld...
+#
+
+MAKMAKE : DO_NOTHING
+
+RESOURCE : COPYFILES
+
+CLEAN : 
+	$(call createdir,$(DEST_DIR))
+
+BLD : DO_NOTHING
+
+SAVESPACE : DO_NOTHING
+
+FREEZE : DO_NOTHING
+
+LIB : DO_NOTHING
+
+CLEANLIB : DO_NOTHING
+
+RESOURCE : DO_NOTHING
+
+FINAL : DO_NOTHING
+
+RELEASABLES :
+	@echo $(DEST_DIR)/1.0/si_invalid_cdate.bdy
+	@echo $(DEST_DIR)/1.0/si_inv_act_multiple.bdy
+	@echo $(DEST_DIR)/1.0/si_inv_act_multiple2.bdy
+	@echo $(DEST_DIR)/1.0/si_inv_cd_day.bdy
+	@echo $(DEST_DIR)/1.0/si_inv_cd_hour.bdy
+	@echo $(DEST_DIR)/1.0/si_inv_cd_len.bdy
+	@echo $(DEST_DIR)/1.0/si_inv_cd_min.bdy
+	@echo $(DEST_DIR)/1.0/si_inv_cd_sec.bdy
+	@echo $(DEST_DIR)/1.0/si_inv_cd_year.bdy
+	@echo $(DEST_DIR)/1.0/si_inv_ind.bdy
+	@echo $(DEST_DIR)/1.0/si_inv_msg_emp.bdy
+	@echo $(DEST_DIR)/1.0/si_valid.bdy
+	@echo $(DEST_DIR)/1.0/si_valid_chi.bdy
+	@echo $(DEST_DIR)/1.0/si_val_act_de.bdy
+	@echo $(DEST_DIR)/1.0/si_val_act_no.bdy
+	@echo $(DEST_DIR)/1.0/si_val_act_sh.bdy
+	@echo $(DEST_DIR)/1.0/si_val_act_sl.bdy
+	@echo $(DEST_DIR)/1.0/si_val_act_sm.bdy
+	@echo $(DEST_DIR)/1.0/si_val_act_sn.bdy
+	@echo $(DEST_DIR)/1.0/si_val_char_iso_8859_1.bdy
+	@echo $(DEST_DIR)/1.0/si_val_char_iso_8859_2.bdy
+	@echo $(DEST_DIR)/1.0/si_val_char_iso_8859_3.bdy
+	@echo $(DEST_DIR)/1.0/si_val_char_iso_8859_4.bdy
+	@echo $(DEST_DIR)/1.0/si_val_char_iso_8859_5.bdy
+	@echo $(DEST_DIR)/1.0/si_val_char_iso_8859_6.bdy
+	@echo $(DEST_DIR)/1.0/si_val_char_iso_8859_7.bdy
+	@echo $(DEST_DIR)/1.0/si_val_char_iso_8859_8.bdy
+	@echo $(DEST_DIR)/1.0/si_val_char_iso_8859_9.bdy
+	@echo $(DEST_DIR)/1.0/si_val_char_shift_JIS.bdy
+	@echo $(DEST_DIR)/1.0/si_val_char_us_ascii.bdy
+	@echo $(DEST_DIR)/1.0/si_val_char_utf_8.bdy
+	@echo $(DEST_DIR)/1.0/si_val_expired.bdy
+	@echo $(DEST_DIR)/1.0/si_val_exp_null.bdy
+	@echo $(DEST_DIR)/1.0/si_val_ind_opq.bdy
+	@echo $(DEST_DIR)/1.0/si_val_msg_emp_indatt.bdy
+	@echo $(DEST_DIR)/1.0/si_val_no_cd.bdy
+	@echo $(DEST_DIR)/1.0/si_val_no_exp.bdy
+	@echo $(DEST_DIR)/1.0/si_val_only_href.bdy
+	@echo $(DEST_DIR)/1.0/si_val_sender_encoding.bdy
+	@echo $(DEST_DIR)/1.0/si_val_wbx_ver_10.bdy
+	@echo $(DEST_DIR)/1.0/si_val_wbx_ver_11.bdy
+	@echo $(DEST_DIR)/1.0/si_val_wbx_ver_12.bdy
+	@echo $(DEST_DIR)/1.0/si_val_wbx_ver_13.bdy
+	@echo $(DEST_DIR)/corrupt/si_inv_act_undf.bdy
+	@echo $(DEST_DIR)/corrupt/si_inv_cd_token.bdy
+	@echo $(DEST_DIR)/corrupt/si_inv_cd_type.bdy
+	@echo $(DEST_DIR)/corrupt/si_inv_char.bdy
+	@echo $(DEST_DIR)/corrupt/si_inv_hrf_ter.bdy
+	@echo $(DEST_DIR)/corrupt/si_inv_msg_emp2.bdy
+	@echo $(DEST_DIR)/corrupt/si_inv_msg_ter.bdy
+	@echo $(DEST_DIR)/corrupt/si_inv_msg_ter2.bdy
+	@echo $(DEST_DIR)/corrupt/si_val_wbx_ver_14.bdy
+	@echo $(DEST_DIR)/corrupt/si_val_wbx_ver_30.bdy
+	@echo $(DEST_DIR)/corrupt/si_val_wbx_ver_FF.bdy
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/syslibs/test/xml_stringdictionary00tagtable.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,19 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for xml_stringdictionary00tagtable use
+#
+
+platform	win32
+makefile 	gnumake
+techstream	syslibs
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/syslibs/test/xml_stringdictionary00tagtable.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,57 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+BUILD_DIR = $(EPOCROOT)epoc32/build/generated/xml
+
+GENERATED_FILES = $(BUILD_DIR)/t_stringdictionary00tagtable.cpp
+
+$(BUILD_DIR)/t_stringdictionary00tagtable.cpp : $(EXTENSION_ROOT)/../test/rtest/tsrc/t_stringdictionary00tagtable.st
+	$(call createdir,$(BUILD_DIR))
+	@perl $(EPOCROOT)epoc32/tools/ecopyfile.pl $(EXTENSION_ROOT)/../test/rtest/tsrc/t_stringdictionary00tagtable.st $(BUILD_DIR)$/t_stringdictionary00tagtable.st
+	@perl $(EPOCROOT)epoc32/tools/stringtable.pl $(BUILD_DIR)/t_stringdictionary00tagtable.st 
+
+DO_NOTHING:
+	@echo do nothing
+
+#
+# The targets invoked by bld...
+#
+
+MAKMAKE : $(GENERATED_FILES)
+
+BLD : MAKMAKE
+
+SAVESPACE : MAKMAKE
+
+CLEAN : 
+	$(call createdir,$(BUILD_DIR))
+
+FREEZE : DO_NOTHING
+
+LIB : DO_NOTHING
+
+CLEANLIB : DO_NOTHING
+
+RESOURCE : DO_NOTHING
+
+FINAL : DO_NOTHING
+
+RELEASABLES : 
+	@echo $(GENERATED_FILES)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/syslibs/test/xml_syncmltestfiledist.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,19 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for xml_syncmltestfiledist
+#
+
+platform	win32
+makefile 	gnumake
+techstream	syslibs
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/syslibs/test/xml_syncmltestfiledist.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,357 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+
+
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+ifeq ($(OS), "Windows_NT")
+RMDIR := @rmdir 2>>nul
+else
+RMDIR := @rmdir
+endif
+
+ifeq ($(findstring WINS,$(PLATFORM)),WINS)
+	DEST_DIR = $(EPOCROOT)epoc32/release/$(PLATFORM_PATH)/$(CFG_PATH)/z/system/xmltest/syncml
+else
+	DEST_DIR = $(EPOCROOT)epoc32/data/z/system/xmltest/syncml
+endif
+
+SOURCE_DIR = $(EXTENSION_ROOT)/../test/rtest/data/syncml
+
+# Ensure we have a clean canvas - this also avoids us having to specify
+# switches to commands that are not recognised across platforms.
+CLEAN_DEST :
+	$(call createdir,$(DEST_DIR))
+
+MAKE_DIRS :
+	$(call createdir,$(DEST_DIR)/1.1/add-to-client)
+	$(call createdir,$(DEST_DIR)/1.1/add-to-server)
+	$(call createdir,$(DEST_DIR)/1.1/Atomic)
+	$(call createdir,$(DEST_DIR)/1.1/AuthBasicFail)
+	$(call createdir,$(DEST_DIR)/1.1/AuthBasicFailFirst)
+	$(call createdir,$(DEST_DIR)/1.1/AuthMD5Fail)
+	$(call createdir,$(DEST_DIR)/1.1/AuthMD5FailFirst)
+	$(call createdir,$(DEST_DIR)/1.1/client-large)
+	$(call createdir,$(DEST_DIR)/1.1/client-large-multiple)
+	$(call createdir,$(DEST_DIR)/1.1/DevManAdd)
+	$(call createdir,$(DEST_DIR)/1.1/DevManAlertDisplay)
+	$(call createdir,$(DEST_DIR)/1.1/DevManAlertMultiChoice)
+	$(call createdir,$(DEST_DIR)/1.1/DevManAlertSingleChoice)
+	$(call createdir,$(DEST_DIR)/1.1/DevManAlertTextInput)
+	$(call createdir,$(DEST_DIR)/1.1/DevManAlertUserAccept)
+	$(call createdir,$(DEST_DIR)/1.1/DevManAlertUserReject)
+	$(call createdir,$(DEST_DIR)/1.1/DevManAtomic)
+	$(call createdir,$(DEST_DIR)/1.1/DevManAtomicAlertUserAccept)
+	$(call createdir,$(DEST_DIR)/1.1/DevManAtomicAlertUserReject)
+	$(call createdir,$(DEST_DIR)/1.1/DevManAtomicFail)
+	$(call createdir,$(DEST_DIR)/1.1/DevManDelete)
+	$(call createdir,$(DEST_DIR)/1.1/DevManGet)
+	$(call createdir,$(DEST_DIR)/1.1/DevManLargeObjectAdd)
+	$(call createdir,$(DEST_DIR)/1.1/DevManLargeObjectGet)
+	$(call createdir,$(DEST_DIR)/1.1/DevManReplace)
+	$(call createdir,$(DEST_DIR)/1.1/DevManSequence)
+	$(call createdir,$(DEST_DIR)/1.1/DevManSequenceAlertUserAccept)
+	$(call createdir,$(DEST_DIR)/1.1/DevManSequenceAlertUserReject)
+	$(call createdir,$(DEST_DIR)/1.1/DevManSequenceFail)
+	$(call createdir,$(DEST_DIR)/1.1/DevManSimple)
+	$(call createdir,$(DEST_DIR)/1.1/Large-object-from-client)
+	$(call createdir,$(DEST_DIR)/1.1/Large-object-from-server)
+	$(call createdir,$(DEST_DIR)/1.1/Large-object-from-server2)
+	$(call createdir,$(DEST_DIR)/1.1/Multiple-Db-Sync)
+	$(call createdir,$(DEST_DIR)/1.1/One-way-client-refresh-sync)
+	$(call createdir,$(DEST_DIR)/1.1/One-way-client-sync)
+	$(call createdir,$(DEST_DIR)/1.1/One-way-server-refresh-sync)
+	$(call createdir,$(DEST_DIR)/1.1/One-way-server-sync)
+	$(call createdir,$(DEST_DIR)/1.1/Pref-Tx-Rx)
+	$(call createdir,$(DEST_DIR)/1.1/server-busy)
+	$(call createdir,$(DEST_DIR)/1.1/server-large)
+	$(call createdir,$(DEST_DIR)/1.1/server-large-multiple)
+	$(call createdir,$(DEST_DIR)/1.1/slow-sync)
+	$(call createdir,$(DEST_DIR)/1.1/two-way-add)
+	$(call createdir,$(DEST_DIR)/1.1/two-way-delete)
+	$(call createdir,$(DEST_DIR)/1.1/two-way-replace)
+	$(call createdir,$(DEST_DIR)/1.1/two-way-sync)
+	$(call createdir,$(DEST_DIR)/1.2/defects)
+	$(call createdir,$(DEST_DIR)/unknown)
+
+
+COPYFILES : CLEAN_DEST MAKE_DIRS
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/add-to-client/*.xml $(DEST_DIR)/1.1/add-to-client/*.xml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/add-to-server/*.xml $(DEST_DIR)/1.1/add-to-server/*.xml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/atomic/*.xml $(DEST_DIR)/1.1/Atomic/*.xml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/authbasicfail/*.xml $(DEST_DIR)/1.1/AuthBasicFail/*.xml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/authbasicfailfirst/*.xml $(DEST_DIR)/1.1/AuthBasicFailFirst/*.xml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/authmd5fail/*.xml $(DEST_DIR)/1.1/AuthMD5Fail/*.xml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/authmd5failfirst/*.xml $(DEST_DIR)/1.1/AuthMD5FailFirst/*.xml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/client-large/*.xml $(DEST_DIR)/1.1/client-large/*.xml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/client-large-multiple/*.xml $(DEST_DIR)/1.1/client-large-multiple/*.xml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/devmanadd/*.xml $(DEST_DIR)/1.1/DevManAdd/*.xml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/devmanalertdisplay/*.xml $(DEST_DIR)/1.1/DevManAlertDisplay/*.xml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/devmanalertmultichoice/*.xml $(DEST_DIR)/1.1/DevManAlertMultiChoice/*.xml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/devmanalertsinglechoice/*.xml $(DEST_DIR)/1.1/DevManAlertSingleChoice/*.xml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/devmanalerttextinput/*.xml $(DEST_DIR)/1.1/DevManAlertTextInput/*.xml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/devmanalertuseraccept/*.xml $(DEST_DIR)/1.1/DevManAlertUserAccept/*.xml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/devmanalertuserreject/*.xml $(DEST_DIR)/1.1/DevManAlertUserReject/*.xml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/devmanatomic/*.xml $(DEST_DIR)/1.1/DevManAtomic/*.xml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/devmanatomicalertuseraccept/*.xml $(DEST_DIR)/1.1/DevManAtomicAlertUserAccept/*.xml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/devmanatomicalertuserreject/*.xml $(DEST_DIR)/1.1/DevManAtomicAlertUserReject/*.xml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/devmanatomicfail/*.xml $(DEST_DIR)/1.1/DevManAtomicFail/*.xml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/devmandelete/*.xml $(DEST_DIR)/1.1/DevManDelete/*.xml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/devmanget/*.xml $(DEST_DIR)/1.1/DevManGet/*.xml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/devmanlargeobjectadd/*.xml $(DEST_DIR)/1.1/DevManLargeObjectAdd/*.xml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/devmanlargeobjectget/*.xml $(DEST_DIR)/1.1/DevManLargeObjectGet/*.xml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/devmanreplace/*.xml $(DEST_DIR)/1.1/DevManReplace/*.xml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/devmansequence/*.xml $(DEST_DIR)/1.1/DevManSequence/*.xml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/devmansequencealertuseraccept/*.xml $(DEST_DIR)/1.1/DevManSequenceAlertUserAccept/*.xml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/devmansequencealertuserreject/*.xml $(DEST_DIR)/1.1/DevManSequenceAlertUserReject/*.xml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/devmansequencefail/*.xml $(DEST_DIR)/1.1/DevManSequenceFail/*.xml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/devmansimple/*.xml $(DEST_DIR)/1.1/DevManSimple/*.xml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/large-object-from-client/*.xml $(DEST_DIR)/1.1/Large-object-from-client/*.xml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/large-object-from-server/*.xml $(DEST_DIR)/1.1/Large-object-from-server/*.xml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/large-object-from-server2/*.xml $(DEST_DIR)/1.1/Large-object-from-server2/*.xml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/multiple-db-sync/*.xml $(DEST_DIR)/1.1/Multiple-Db-Sync/*.xml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/one-way-client-refresh-sync/*.xml $(DEST_DIR)/1.1/One-way-client-refresh-sync/*.xml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/one-way-client-sync/*.xml $(DEST_DIR)/1.1/One-way-client-sync/*.xml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/one-way-server-refresh-sync/*.xml $(DEST_DIR)/1.1/One-way-server-refresh-sync/*.xml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/one-way-server-sync/*.xml $(DEST_DIR)/1.1/One-way-server-sync/*.xml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/pref-tx-rx/*.xml $(DEST_DIR)/1.1/Pref-Tx-Rx/*.xml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/server-busy/*.xml $(DEST_DIR)/1.1/server-busy/*.xml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/server-large/*.xml $(DEST_DIR)/1.1/server-large/*.xml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/server-large-multiple/*.xml $(DEST_DIR)/1.1/server-large-multiple/*.xml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/slow-sync/*.xml $(DEST_DIR)/1.1/slow-sync/*.xml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/two-way-add/*.xml $(DEST_DIR)/1.1/two-way-add/*.xml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/two-way-delete/*.xml $(DEST_DIR)/1.1/two-way-delete/*.xml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/two-way-replace/*.xml $(DEST_DIR)/1.1/two-way-replace/*.xml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/two-way-sync/*.xml $(DEST_DIR)/1.1/two-way-sync/*.xml)
+
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/add-to-client/*.wbxml $(DEST_DIR)/1.1/add-to-client/*.wbxml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/add-to-server/*.wbxml $(DEST_DIR)/1.1/add-to-server/*.wbxml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/atomic/*.wbxml $(DEST_DIR)/1.1/Atomic/*.wbxml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/authbasicfail/*.wbxml $(DEST_DIR)/1.1/AuthBasicFail/*.wbxml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/authbasicfailfirst/*.wbxml $(DEST_DIR)/1.1/AuthBasicFailFirst/*.wbxml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)$/1.1$/authmd5fail$/*.wbxml $(DEST_DIR)$/1.1$/AuthMD5Fail$/*.wbxml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/authmd5failfirst/*.wbxml $(DEST_DIR)/1.1/AuthMD5FailFirst/*.wbxml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/client-large/*.wbxml $(DEST_DIR)/1.1/client-large/*.wbxml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/client-large-multiple/*.wbxml $(DEST_DIR)/1.1/client-large-multiple/*.wbxml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/devmanadd/*.wbxml $(DEST_DIR)/1.1/DevManAdd/*.wbxml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/devmanalertdisplay/*.wbxml $(DEST_DIR)/1.1/DevManAlertDisplay/*.wbxml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/devmanalertmultichoice/*.wbxml $(DEST_DIR)/1.1/DevManAlertMultiChoice/*.wbxml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/devmanalertsinglechoice/*.wbxml $(DEST_DIR)/1.1/DevManAlertSingleChoice/*.wbxml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/devmanalerttextinput/*.wbxml $(DEST_DIR)/1.1/DevManAlertTextInput/*.wbxml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/devmanalertuseraccept/*.wbxml $(DEST_DIR)/1.1/DevManAlertUserAccept/*.wbxml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/devmanalertuserreject/*.wbxml $(DEST_DIR)/1.1/DevManAlertUserReject/*.wbxml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/devmanatomic/*.wbxml $(DEST_DIR)/1.1/DevManAtomic/*.wbxml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/devmanatomicalertuseraccept/*.wbxml $(DEST_DIR)/1.1/DevManAtomicAlertUserAccept/*.wbxml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/devmanatomicalertuserreject/*.wbxml $(DEST_DIR)/1.1/DevManAtomicAlertUserReject/*.wbxml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/devmanatomicfail/*.wbxml $(DEST_DIR)/1.1/DevManAtomicFail/*.wbxml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/devmandelete/*.wbxml $(DEST_DIR)/1.1/DevManDelete/*.wbxml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/devmanget/*.wbxml $(DEST_DIR)/1.1/DevManGet/*.wbxml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/devmanlargeobjectadd/*.wbxml $(DEST_DIR)/1.1/DevManLargeObjectAdd/*.wbxml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/devmanlargeobjectget/*.wbxml $(DEST_DIR)/1.1/DevManLargeObjectGet/*.wbxml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/devmanreplace/*.wbxml $(DEST_DIR)/1.1/DevManReplace/*.wbxml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/devmansequence/*.wbxml $(DEST_DIR)/1.1/DevManSequence/*.wbxml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/devmansequencealertuseraccept/*.wbxml $(DEST_DIR)/1.1/DevManSequenceAlertUserAccept/*.wbxml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/devmansequencealertuserreject/*.wbxml $(DEST_DIR)/1.1/DevManSequenceAlertUserReject/*.wbxml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/devmansequencefail/*.wbxml $(DEST_DIR)/1.1/DevManSequenceFail/*.wbxml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/devmansimple/*.wbxml	 $(DEST_DIR)/1.1/DevManSimple/*.wbxml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/large-object-from-client/*.wbxml $(DEST_DIR)/1.1/Large-object-from-client/*.wbxml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/large-object-from-server/*.wbxml $(DEST_DIR)/1.1/Large-object-from-server/*.wbxml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/large-object-from-server2/*.wbxml $(DEST_DIR)/1.1/Large-object-from-server2/*.wbxml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/multiple-db-sync/*.wbxml $(DEST_DIR)/1.1/Multiple-Db-Sync/*.wbxml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/one-way-client-refresh-sync/*.wbxml $(DEST_DIR)/1.1/One-way-client-refresh-sync/*.wbxml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/one-way-client-sync/*.wbxml $(DEST_DIR)/1.1/One-way-client-sync/*.wbxml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/one-way-server-refresh-sync/*.wbxml $(DEST_DIR)/1.1/One-way-server-refresh-sync/*.wbxml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/one-way-server-sync/*.wbxml $(DEST_DIR)/1.1/One-way-server-sync/*.wbxml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/pref-tx-rx/*.wbxml $(DEST_DIR)/1.1/Pref-Tx-Rx/*.wbxml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/server-busy/*.wbxml $(DEST_DIR)/1.1/server-busy/*.wbxml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/server-large/*.wbxml $(DEST_DIR)/1.1/server-large/*.wbxml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/server-large-multiple/*.wbxml $(DEST_DIR)/1.1/server-large-multiple/*.wbxml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/slow-sync/*.wbxml $(DEST_DIR)/1.1/slow-sync/*.wbxml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/two-way-add/*.wbxml $(DEST_DIR)/1.1/two-way-add/*.wbxml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/two-way-delete/*.wbxml $(DEST_DIR)/1.1/two-way-delete/*.wbxml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/two-way-replace/*.wbxml $(DEST_DIR)/1.1/two-way-replace/*.wbxml)
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.1/two-way-sync/*.wbxml $(DEST_DIR)/1.1/two-way-sync/*.wbxml)
+
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/1.2/defects/*.wbxml $(DEST_DIR)/1.2/defects/*.wbxml)
+	
+	$(CP) $(call slash2generic,$(SOURCE_DIR)/unknown/*.wbxml $(DEST_DIR)/unknown/*.wbxml)
+
+DO_NOTHING:
+	@echo do nothing
+
+#
+# The targets invoked by bld...
+#
+
+MAKMAKE : DO_NOTHING
+
+RESOURCE : COPYFILES
+
+CLEAN : 
+	$(call createdir,$(DEST_DIR))
+
+BLD : DO_NOTHING
+
+SAVESPACE : DO_NOTHING
+
+FREEZE : DO_NOTHING
+
+LIB : DO_NOTHING
+
+CLEANLIB : DO_NOTHING
+
+RESOURCE : DO_NOTHING
+
+FINAL : DO_NOTHING
+
+RELEASABLES :
+	@echo $(DEST_DIR)/1.1/add-to-client/FromServer1.wbxml
+	@echo $(DEST_DIR)/1.1/add-to-client/FromServer2.wbxml
+	@echo $(DEST_DIR)/1.1/add-to-client/FromServer3.wbxml
+	@echo $(DEST_DIR)/1.1/add-to-server/FromServer1.wbxml
+	@echo $(DEST_DIR)/1.1/add-to-server/FromServer2.wbxml
+	@echo $(DEST_DIR)/1.1/add-to-server/FromServer3.wbxml
+	@echo $(DEST_DIR)/1.1/atomic/FromServer1.wbxml
+	@echo $(DEST_DIR)/1.1/atomic/FromServer2.wbxml
+	@echo $(DEST_DIR)/1.1/atomic/FromServer3.wbxml
+	@echo $(DEST_DIR)/1.1/authbasicfail/FromServer1.wbxml
+	@echo $(DEST_DIR)/1.1/authbasicfail/FromServer2.wbxml
+	@echo $(DEST_DIR)/1.1/authbasicfail/FromServer3.wbxml
+	@echo $(DEST_DIR)/1.1/authbasicfailfirst/FromServer1.wbxml
+	@echo $(DEST_DIR)/1.1/authbasicfailfirst/FromServer2.wbxml
+	@echo $(DEST_DIR)/1.1/authbasicfailfirst/FromServer3.wbxml
+	@echo $(DEST_DIR)/1.1/authmd5fail/FromServer1.wbxml
+	@echo $(DEST_DIR)/1.1/authmd5fail/FromServer2.wbxml
+	@echo $(DEST_DIR)/1.1/authmd5fail/FromServer3.wbxml
+	@echo $(DEST_DIR)/1.1/authmd5failfirst/FromServer1.wbxml
+	@echo $(DEST_DIR)/1.1/authmd5failfirst/FromServer2.wbxml
+	@echo $(DEST_DIR)/1.1/authmd5failfirst/FromServer3.wbxml
+	@echo $(DEST_DIR)/1.1/client-large/FromServer1.wbxml
+	@echo $(DEST_DIR)/1.1/client-large/FromServer2.wbxml
+	@echo $(DEST_DIR)/1.1/client-large/FromServer3.wbxml
+	@echo $(DEST_DIR)/1.1/client-large/FromServer4.wbxml
+	@echo $(DEST_DIR)/1.1/client-large-multiple/FromServer1.wbxml
+	@echo $(DEST_DIR)/1.1/client-large-multiple/FromServer2.wbxml
+	@echo $(DEST_DIR)/1.1/client-large-multiple/FromServer3.wbxml
+	@echo $(DEST_DIR)/1.1/client-large-multiple/FromServer4.wbxml
+	@echo $(DEST_DIR)/1.1/devmanadd/FromServer1.wbxml
+	@echo $(DEST_DIR)/1.1/devmanadd/FromServer2.wbxml
+	@echo $(DEST_DIR)/1.1/devmanalertdisplay/FromServer1.wbxml
+	@echo $(DEST_DIR)/1.1/devmanalertdisplay/FromServer2.wbxml
+	@echo $(DEST_DIR)/1.1/devmanalertmultichoice/FromServer1.wbxml
+	@echo $(DEST_DIR)/1.1/devmanalertmultichoice/FromServer2.wbxml
+	@echo $(DEST_DIR)/1.1/devmanalertsinglechoice/FromServer1.wbxml
+	@echo $(DEST_DIR)/1.1/devmanalertsinglechoice/FromServer2.wbxml
+	@echo $(DEST_DIR)/1.1/devmanalerttextinput/FromServer1.wbxml
+	@echo $(DEST_DIR)/1.1/devmanalerttextinput/FromServer2.wbxml
+	@echo $(DEST_DIR)/1.1/devmanalertuseraccept/FromServer1.wbxml
+	@echo $(DEST_DIR)/1.1/devmanalertuseraccept/FromServer2.wbxml
+	@echo $(DEST_DIR)/1.1/devmanalertuserreject/FromServer1.wbxml
+	@echo $(DEST_DIR)/1.1/devmanalertuserreject/FromServer2.wbxml
+	@echo $(DEST_DIR)/1.1/devmanatomic/FromServer1.wbxml
+	@echo $(DEST_DIR)/1.1/devmanatomic/FromServer2.wbxml
+	@echo $(DEST_DIR)/1.1/devmanatomicAlertUserAccept/FromServer1.wbxml
+	@echo $(DEST_DIR)/1.1/devmanatomicAlertUserAccept/FromServer2.wbxml
+	@echo $(DEST_DIR)/1.1/devmanatomicAlertUserReject/FromServer1.wbxml
+	@echo $(DEST_DIR)/1.1/devmanatomicAlertUserReject/FromServer2.wbxml
+	@echo $(DEST_DIR)/1.1/devmanatomicFail/FromServer1.wbxml
+	@echo $(DEST_DIR)/1.1/devmanatomicFail/FromServer2.wbxml
+	@echo $(DEST_DIR)/1.1/devmandelete/FromServer1.wbxml
+	@echo $(DEST_DIR)/1.1/devmandelete/FromServer2.wbxml
+	@echo $(DEST_DIR)/1.1/devmanget/FromServer1.wbxml
+	@echo $(DEST_DIR)/1.1/devmanget/FromServer2.wbxml
+	@echo $(DEST_DIR)/1.1/devmanlargeobjectadd/FromServer1.wbxml
+	@echo $(DEST_DIR)/1.1/devmanlargeobjectadd/FromServer2.wbxml
+	@echo $(DEST_DIR)/1.1/devmanlargeobjectadd/FromServer3.wbxml
+	@echo $(DEST_DIR)/1.1/devmanlargeobjectadd/FromServer4.wbxml
+	@echo $(DEST_DIR)/1.1/devmanlargeobjectget/FromServer1.wbxml
+	@echo $(DEST_DIR)/1.1/devmanlargeobjectget/FromServer2.wbxml
+	@echo $(DEST_DIR)/1.1/devmanlargeobjectget/FromServer3.wbxml
+	@echo $(DEST_DIR)/1.1/devmanlargeobjectget/FromServer4.wbxml
+	@echo $(DEST_DIR)/1.1/devmanlargeobjectget/FromServer5.wbxml
+	@echo $(DEST_DIR)/1.1/devmanreplace/FromServer1.wbxml
+	@echo $(DEST_DIR)/1.1/devmanreplace/FromServer2.wbxml
+	@echo $(DEST_DIR)/1.1/devmansequence/FromServer1.wbxml
+	@echo $(DEST_DIR)/1.1/devmansequence/FromServer2.wbxml
+	@echo $(DEST_DIR)/1.1/devmansequencealertuseraccept/FromServer1.wbxml
+	@echo $(DEST_DIR)/1.1/devmansequencealertuseraccept/FromServer2.wbxml
+	@echo $(DEST_DIR)/1.1/devmansequencealertuserreject/FromServer1.wbxml
+	@echo $(DEST_DIR)/1.1/devmansequencealertuserreject/FromServer2.wbxml
+	@echo $(DEST_DIR)/1.1/devmansequencefail/FromServer1.wbxml
+	@echo $(DEST_DIR)/1.1/devmansequencefail/FromServer2.wbxml
+	@echo $(DEST_DIR)/1.1/devmansimple/FromServer1.wbxml
+	@echo $(DEST_DIR)/1.1/large-object-from-client/FromServer1.wbxml
+	@echo $(DEST_DIR)/1.1/large-object-from-client/FromServer2.wbxml
+	@echo $(DEST_DIR)/1.1/large-object-from-client/FromServer3.wbxml
+	@echo $(DEST_DIR)/1.1/large-object-from-client/FromServer4.wbxml
+	@echo $(DEST_DIR)/1.1/large-object-from-server/FromServer1.wbxml
+	@echo $(DEST_DIR)/1.1/large-object-from-server/FromServer2.wbxml
+	@echo $(DEST_DIR)/1.1/large-object-from-server/FromServer3.wbxml
+	@echo $(DEST_DIR)/1.1/large-object-from-server/FromServer4.wbxml
+	@echo $(DEST_DIR)/1.1/large-object-from-server2/FromServer1.wbxml
+	@echo $(DEST_DIR)/1.1/large-object-from-server2/FromServer2.wbxml
+	@echo $(DEST_DIR)/1.1/large-object-from-server2/FromServer3.wbxml
+	@echo $(DEST_DIR)/1.1/large-object-from-server2/FromServer4.wbxml
+	@echo $(DEST_DIR)/1.1/multiple-db-sync/FromServer1.wbxml
+	@echo $(DEST_DIR)/1.1/multiple-db-sync/FromServer2.wbxml
+	@echo $(DEST_DIR)/1.1/multiple-db-sync/FromServer3.wbxml
+	@echo $(DEST_DIR)/1.1/one-way-client-refresh-sync/FromServer1.wbxml
+	@echo $(DEST_DIR)/1.1/one-way-client-refresh-sync/FromServer2.wbxml
+	@echo $(DEST_DIR)/1.1/one-way-client-refresh-sync/FromServer3.wbxml
+	@echo $(DEST_DIR)/1.1/one-way-client-sync/FromServer1.wbxml
+	@echo $(DEST_DIR)/1.1/one-way-client-sync/FromServer2.wbxml
+	@echo $(DEST_DIR)/1.1/one-way-client-sync/FromServer3.wbxml
+	@echo $(DEST_DIR)/1.1/one-way-server-refresh-sync/FromServer1.wbxml
+	@echo $(DEST_DIR)/1.1/one-way-server-refresh-sync/FromServer2.wbxml
+	@echo $(DEST_DIR)/1.1/one-way-server-refresh-sync/FromServer3.wbxml
+	@echo $(DEST_DIR)/1.1/one-way-server-sync/FromServer1.wbxml
+	@echo $(DEST_DIR)/1.1/one-way-server-sync/FromServer2.wbxml
+	@echo $(DEST_DIR)/1.1/one-way-server-sync/FromServer3.wbxml
+	@echo $(DEST_DIR)/1.1/pref-tx-rx/FromServer1.wbxml
+	@echo $(DEST_DIR)/1.1/pref-tx-rx/FromServer2.wbxml
+	@echo $(DEST_DIR)/1.1/pref-tx-rx/FromServer3.wbxml
+	@echo $(DEST_DIR)/1.1/server-busy/FromServer1.wbxml
+	@echo $(DEST_DIR)/1.1/server-large/FromServer1.wbxml
+	@echo $(DEST_DIR)/1.1/server-large/FromServer2.wbxml
+	@echo $(DEST_DIR)/1.1/server-large/FromServer3.wbxml
+	@echo $(DEST_DIR)/1.1/server-large/FromServer4.wbxml
+	@echo $(DEST_DIR)/1.1/server-large-multiple/FromServer1.wbxml
+	@echo $(DEST_DIR)/1.1/server-large-multiple/FromServer2.wbxml
+	@echo $(DEST_DIR)/1.1/server-large-multiple/FromServer3.wbxml
+	@echo $(DEST_DIR)/1.1/server-large-multiple/FromServer4.wbxml
+	@echo $(DEST_DIR)/1.1/server-large-multiple/FromServer5.wbxml
+	@echo $(DEST_DIR)/1.1/slow-sync/FromServer1.wbxml
+	@echo $(DEST_DIR)/1.1/slow-sync/FromServer2.wbxml
+	@echo $(DEST_DIR)/1.1/slow-sync/FromServer3.wbxml
+	@echo $(DEST_DIR)/1.1/two-way-add/FromServer1.wbxml
+	@echo $(DEST_DIR)/1.1/two-way-add/FromServer2.wbxml
+	@echo $(DEST_DIR)/1.1/two-way-add/FromServer3.wbxml
+	@echo $(DEST_DIR)/1.1/two-way-delete/FromServer1.wbxml
+	@echo $(DEST_DIR)/1.1/two-way-delete/FromServer2.wbxml
+	@echo $(DEST_DIR)/1.1/two-way-delete/FromServer3.wbxml
+	@echo $(DEST_DIR)/1.1/two-way-replace/FromServer1.wbxml
+	@echo $(DEST_DIR)/1.1/two-way-replace/FromServer2.wbxml
+	@echo $(DEST_DIR)/1.1/two-way-replace/FromServer3.wbxml
+	@echo $(DEST_DIR)/1.1/two-way-sync/FromServer1.wbxml
+	@echo $(DEST_DIR)/1.1/two-way-sync/FromServer2.wbxml
+	@echo $(DEST_DIR)/1.2/defects/DEF063979.wbxml
+	@echo $(DEST_DIR)/1.2/defects/DEF066185.wbxml
+	@echo $(DEST_DIR)/1.2/defects/DEF078987_1.wbxml
+	@echo $(DEST_DIR)/1.2/defects/DEF078987_2.wbxml
+	@echo $(DEST_DIR)/1.2/defects/DEF078668.wbxml
+	@echo $(DEST_DIR)/unknown/DEF078987_3.wbxml
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/syslibs/test/xml_wmltestfiledist.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,19 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for xml_wmltestfiledist
+#
+
+platform	win32
+makefile 	gnumake
+techstream	syslibs
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/syslibs/test/xml_wmltestfiledist.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,94 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+
+
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+ifeq ($(OS), "Windows_NT")
+RMDIR := @rmdir 2>>nul
+else
+RMDIR := @rmdir
+endif
+
+ifeq ($(findstring WINS,$(PLATFORM)),WINS)
+	DEST_DIR = $(EPOCROOT)epoc32/release/$(PLATFORM_PATH)/$(CFG_PATH)/z/system/xmltest/wml
+else
+	DEST_DIR = $(EPOCROOT)epoc32/data/z/system/xmltest/wml
+endif
+
+SOURCE_DIR = $(EXTENSION_ROOT)/../test/rtest/data/Wml
+
+# Ensure we have a clean canvas - this also avoids us having to specify
+# switches to commands that are not recognised across platforms.
+CLEAN_DEST :
+	$(call createdir,$(DEST_DIR))
+
+MAKE_DIRS :
+	$(call createdir,$(DEST_DIR)/1.1)
+	$(call createdir,$(DEST_DIR)/codepage)
+	$(call createdir,$(DEST_DIR)/corrupt)
+	$(call createdir,$(DEST_DIR)/unknown)
+
+COPYFILES : CLEAN_DEST MAKE_DIRS
+	$(CP) $(call slash2generic, $(SOURCE_DIR)/1.1/*.wmlc $(DEST_DIR)/1.1/*.wmlc)
+	$(CP) $(call slash2generic, $(SOURCE_DIR)/codepage/*.wmlc $(DEST_DIR)/codepage/*.wmlc)
+	$(CP) $(call slash2generic, $(SOURCE_DIR)/corrupt/*.wmlc $(DEST_DIR)/corrupt/*.wmlc)
+	$(CP) $(call slash2generic, $(SOURCE_DIR)/unknown/*.wmlc $(DEST_DIR)/unknown/*.wmlc)	
+
+DO_NOTHING:
+	@echo do nothing
+
+#
+# The targets invoked by bld...
+#
+
+MAKMAKE : DO_NOTHING
+
+RESOURCE : COPYFILES
+
+CLEAN :
+	$(call createdir,$(DEST_DIR))
+
+BLD : DO_NOTHING
+
+SAVESPACE : DO_NOTHING
+
+FREEZE : DO_NOTHING
+
+LIB : DO_NOTHING
+
+CLEANLIB : DO_NOTHING
+
+RESOURCE : DO_NOTHING
+
+FINAL : DO_NOTHING
+
+RELEASABLES :
+	@echo $(DEST_DIR)/1.1/AllElements.wmlc
+	@echo $(DEST_DIR)/1.1/CharEntities.wmlc
+	@echo $(DEST_DIR)/1.1/data.wmlc
+	@echo $(DEST_DIR)/1.1/http___www.bbc.co.uk_mobile_sportheads1.wmlc
+	@echo $(DEST_DIR)/1.1/mob.wmlc
+	@echo $(DEST_DIR)/1.1/Variables.wmlc
+	@echo $(DEST_DIR)/1.1/wireless_char.wmlc
+	@echo $(DEST_DIR)/codepage/wml_data_attr_copepage_255.wmlc
+	@echo $(DEST_DIR)/corrupt/CorruptAttrVal_mob.wmlc
+	@echo $(DEST_DIR)/corrupt/CorruptAttr_mob.wmlc
+	@echo $(DEST_DIR)/corrupt/CorruptTag_AllElements.wmlc
+	@echo $(DEST_DIR)/corrupt/NonNullTermInlineStr.wmlc
+	@echo $(DEST_DIR)/unknown/UnknownPubId_AllElements.wmlc
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/syslibs/test/xml_xmlcmatchdatapostbuild.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,19 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for xml_xmlcmatchdatapostbuild use
+#
+
+platform	win32
+makefile 	gnumake
+techstream	syslibs
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/syslibs/test/xml_xmlcmatchdatapostbuild.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,85 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+ifeq ($(OS), "Windows_NT")
+	RMDIR := @rmdir 2>>nul
+	@echo $(OS))
+else
+	RMDIR := @rmdir
+endif
+ifeq ($(findstring WINS,$(PLATFORM)),WINS)
+	TARGETDIR = $(EPOCROOT)epoc32/release/$(PLATFORM_PATH)/$(CFG_PATH)/z/xmlramonly
+	SOURCEDIR = $(EPOCROOT)epoc32/release/$(PLATFORM_PATH)/$(CFG_PATH)
+	SOURCEDIR2 = $(EPOCROOT)epoc32/release/$(PLATFORM_PATH)/$(CFG_PATH)/z/resource/plugins
+else
+	TARGETDIR = $(EPOCROOT)epoc32/data/z/xmlramonly
+	SOURCEDIR = $(EPOCROOT)epoc32/release/$(PLATFORM_PATH)/$(CFG_PATH)
+	SOURCEDIR2 = $(EPOCROOT)epoc32/data/z/resource/plugins
+endif
+
+# Ensure we have a clean canvas - this also avoids us having to specify
+# switches to commands that are not recognised across platforms.
+CLEAN_DEST :
+	$(call createdir,$(TARGETDIR))
+
+$(TARGETDIR) : 
+	$(call createdir,"$@")
+
+COPYFILES : CLEAN_DEST $(TARGETDIR)
+	$(CP) $(call slash2generic,$(SOURCEDIR)/tu_xmlramparserplugins.dll  $(TARGETDIR)/tu_xmlramparserplugins.dll)
+	$(CP) $(call slash2generic,$(SOURCEDIR2)/tu_xmlramparserplugins.RSC  $(TARGETDIR)/tu_xmlramparserplugins.rsc)
+	-$(ERASE) $(call slash2generic,$(SOURCEDIR)/tu_xmlramparserplugins.dll)
+	-$(ERASE) $(call slash2generic,$(SOURCEDIR2)/tu_xmlramparserplugins.rsc)
+
+DO_NOTHING:
+	@echo do nothing
+
+#
+# The targets invoked by bld...
+#
+
+MAKMAKE : DO_NOTHING
+
+RESOURCE : DO_NOTHING
+
+CLEAN :
+	$(call createdir,$(TARGETDIR))
+
+ifeq ($(PLATFORM), GCCXML)
+BLD : DO_NOTHING
+else
+BLD : COPYFILES
+endif
+
+SAVESPACE : DO_NOTHING
+
+FREEZE : DO_NOTHING
+
+LIB : DO_NOTHING
+
+CLEANLIB : DO_NOTHING
+
+RESOURCE : DO_NOTHING
+
+FINAL : DO_NOTHING
+
+RELEASABLES :
+	@echo $(TARGETDIR)/tu_xmlramparserplugins.dll
+	@echo $(TARGETDIR)/tu_xmlramparserplugins.rsc
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/syslibs/word_template.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,20 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# template.meta
+# Meta information for template use
+#
+
+platform	win32
+makefile 	gnumake
+techstream	syslibs
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/syslibs/word_template.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,68 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# template.mk
+# Build Word template files
+# 
+#
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+ifeq ($(findstring WINS,$(PLATFORM)),WINS)
+	TARGETDIR = $(EPOCROOT)epoc32/release/$(PLATFORM_PATH)/$(CFG_PATH)/z/private/10003a64
+else
+	# The IBY file uses the template file stored here when building ROMs
+	TARGETDIR = $(EPOCROOT)epoc32/data/z/private/10003a64
+endif
+
+TEMPLATES = $(TARGETDIR)/blank
+
+$(TARGETDIR) :
+	$(call createdir, "$@")
+
+# Well, actually just copy the prebuilt ones for now...
+#  - deleting existing file first (in case it's read-only)
+
+TEMPLATESRCDIR = $(EXTENSION_ROOT)/../utemplat
+
+$(TEMPLATES) : $(TEMPLATESRCDIR)$/BLANK.UK $(TARGETDIR)
+	$(call forceremove,$@)
+	$(call forcecopy,$(TEMPLATESRCDIR)/BLANK.UK,"$@")
+DO_NOTHING :
+	@echo do nothing
+
+# The targets invoked by bld...
+
+MAKMAKE : DO_NOTHING
+
+RESOURCE : DO_NOTHING
+
+SAVESPACE : BLD
+
+BLD : $(TARGETDIR) $(TEMPLATES)
+
+FREEZE : DO_NOTHING
+
+LIB : DO_NOTHING
+
+CLEANLIB : DO_NOTHING
+
+FINAL : DO_NOTHING
+
+CLEAN :
+	-$(ERASE) $(TEMPLATES)
+
+RELEASABLES :
+	@echo $(TEMPLATES)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/techview/uiklaf_resource.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,20 @@
+# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for Uiklad resource generation
+#
+
+platform	win32
+makefile 	gnumake
+techstream	techview
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/techview/uiklaf_resource.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,63 @@
+# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Extension Makefile to check uiklaf generated rsg files against the generic exported uiklafgt rsg files.
+# 
+#
+
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+
+#----------------------------------------------------------------
+# Check whether the associated RSG header
+# files are identical to those already exported by uiklafGT
+#
+#
+
+INCDIR = $(EPOCROOT)epoc32/include
+INCUIKLAFDIR = $(EPOCROOT)epoc32/include/uiklafgt
+
+DO_NOTHING :
+
+#
+# The targets invoked by abld...
+#
+
+MAKMAKE : DO_NOTHING
+
+RESOURCE : DO_NOTHING
+
+SAVESPACE : DO_NOTHING
+
+BLD : DO_NOTHING
+
+FREEZE : DO_NOTHING
+
+LIB : DO_NOTHING
+
+CLEANLIB : DO_NOTHING
+
+FINAL : 
+	perl -w $(EXTENSION_ROOT)/rsg_check.pl $(INCDIR)/eikcore.rsg $(INCUIKLAFDIR)/eikcore.rsg
+	perl -w $(EXTENSION_ROOT)/rsg_check.pl $(INCDIR)/eikpriv.rsg $(INCUIKLAFDIR)/eikpriv.rsg
+
+
+ROMFILE : DO_NOTHING
+
+CLEAN : DO_NOTHING
+
+RELEASABLES : DO_NOTHING
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/tools/ant_launch.flm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,43 @@
+# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+JAVABLDDIR := $(EPOCBLD)/$(PLATFORM_PATH)/$(CFG_PATH)
+RELDIR := $(EPOCROOT)/epoc32/release/$(PLATFORM_PATH)/$(CFG_PATH)
+ANTLIBCMD := $(subst \,/,$(ANT_HOME))/bin/ant -lib $(EPOCROOT)/epoc32/tools/java
+ANTBLDFILE := $(TO_BLDINF)/$(BUILD_XML)
+
+JAVAMARKER := $(JAVABLDDIR)/javabld.$(BUILD_XML).done
+
+# Build
+ANTCMD_BUILD := $(ANTLIBCMD) -logger com.symbian.ant.ScanLogger -buildfile $(ANTBLDFILE) -Depoc.build=$(JAVABLDDIR) -Depoc.rel=$(RELDIR) -Dtools.rel=$(EPOCROOT)/epoc32/tools ; $(GNUTOUCH) $(JAVAMARKER)
+
+TARGET :: $(JAVAMARKER)
+
+$(call raptor_recipe,ant_build,$(JAVAMARKER),$(ANTBLDFILE) $(JAVABLDDIR),$(ANTCMD_BUILD))
+
+# Clean
+ANTCMD_CLEAN := $(ANTLIBCMD) -logger com.symbian.ant.ScanLogger -buildfile $(ANTBLDFILE) -Depoc.build=$(JAVABLDDIR) -Depoc.rel=$(RELDIR) -Dtools.rel=$(EPOCROOT)/epoc32/tools clean ; $(GNURM) -f $(JAVAMARKER)
+
+$(call raptor_phony_recipe,ant_clean,CLEAN,,$(ANTCMD_CLEAN))
+
+# sbs --what
+JAVARELEASABLES := $(shell $(ANTLIBCMD) -logger com.symbian.ant.AbldWhatLogger -quiet -buildfile $(ANTBLDFILE) -Depoc.rel=$(RELDIR) -Dtools.rel=$(EPOCROOT)/epoc32/tools what)
+
+$(eval $(call whatmacro,$(JAVARELEASABLES),USERFLM))
+
+# Create directory
+CREATABLEPATHS := $(JAVABLDDIR)
+$(call makepath,$(CREATABLEPATHS))
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/tools/ant_launch.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,19 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for Apache Ant launcher
+#
+
+platform	tools
+makefile 	gnumake
+techstream	developertools
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/tools/ant_launch.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,81 @@
+# Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+# To ensure that EPOCROOT always ends with a forward slash
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+EXTENSION_ROOT:=$(lastword $(subst :, ,$(EXTENSION_ROOT)))
+BUILDDIR = $(EPOCROOT)epoc32/build$(EXTENSION_ROOT)/$(PLATFORM_PATH)/$(CFG_PATH)
+RELDIR = $(EPOCROOT)epoc32/release/$(PLATFORM_PATH)/$(CFG_PATH)
+LIBDIR = $(ANT_HOME)/bin/ant -lib $(EPOCROOT)epoc32/tools/java
+BLDFILE = -buildfile $(EXTENSION_ROOT)/${build_xml}
+
+BUILD = $(BUILDDIR)/${notdir ${build_xml}}_${target}
+HAS_BUILT = ${wildcard ${BUILD}}
+
+DO_NOTHING :
+	@echo Nothing to do
+
+$(BUILDDIR):
+	-$(MKDIR) $(call slash2generic,$$@)
+
+SAVESPACE : BLD	
+MAKMAKE FREEZE LIB CLEANLIB RESOURCE FINAL : DO_NOTHING
+
+
+## Find configuration
+ifeq ($(CFG),REL)
+RELEASE = REL
+endif
+ifeq ($(CFG),UREL)
+RELEASE = UREL
+endif
+
+## Build target
+ifeq ($(CFG),$(RELEASE))
+ifeq ($(strip $(HAS_BUILT)), )
+
+BLD : $(EXTENSION_ROOT)/${build_xml} $(BUILDDIR)
+	$(LIBDIR) -logger com.symbian.ant.ScanLogger $(BLDFILE) -Depoc.build=$(BUILDDIR) -Depoc.rel=$(RELDIR) -Dtools.rel=$(EPOCROOT)tools ${args} ${target}
+	echo $(BUILDDIR)/${build_xml} ${target} > ${BUILD}
+else
+BLD : ${BUILD}
+	@echo The java component ${target} has already been built. Clean to rebuild.
+endif
+else
+BLD : DO_NOTHING
+endif
+
+
+## Allow for a abld reallyclean
+ifeq ($(CFG),$(RELEASE))
+ifneq ($(strip $(HAS_BUILT)), )
+
+CLEAN : ${BUILD}
+	$(LIBDIR) -logger com.symbian.ant.ScanLogger $(BLDFILE) -Depoc.build=$(BUILDDIR) -Depoc.rel=$(RELDIR) -Dtools.rel=$(EPOCROOT)tools clean 
+	${RM} ${BUILD}
+else
+CLEAN : DO_NOTHING
+endif
+else
+CLEAN : DO_NOTHING
+endif
+
+
+## Allow for a abld -what
+RELEASABLES :
+	$(LIBDIR) -logger com.symbian.ant.AbldWhatLogger -quiet $(BLDFILE) -Depoc.rel=$(RELDIR) -Dtools.rel=$(EPOCROOT)tools what
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/tools/ant_launch.xml	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?> 
+<build xmlns="http://symbian.com/xml/build" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symbian.com/xml/build build/2_0.xsd">
+
+  <!-- Extension interfaces : replacements for Template Extension Makefiles -->
+  <interface name="tools.ant_launch" extends="Symbian.UserFLM" flm="ant_launch.flm">
+    <param name="BUILD_XML" />
+  </interface>
+</build>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/tools/bldex.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,20 @@
+# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for stlport builds
+#
+
+platform	win32
+makefile 	gnumake
+techstream	tools
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/tools/bldex.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,75 @@
+# Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Generate some source files
+# Note that the YACC and LEX tools used expect to see Unix-style
+# path names and will hang horribly if given DOS pathnames
+# 
+#
+
+FIXSLASHES:=$(subst \,/,$(EPOCROOT))
+EPOCROOTABS:=$(patsubst %/,%,$(FIXSLASHES))
+EPOCROOT:=$(EPOCROOTABS)/
+
+YACC_VERSION:=$(EPOCROOT)epoc32/gcc/bin/bison
+LEX_VERSION:=$(EPOCROOT)epoc32/gcc/bin/flex
+
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+LEXSOURCE:=$(EXTENSION_ROOT)/$(LEXSOURCE)
+YACCSOURCE:=$(EXTENSION_ROOT)/$(YACCSOURCE)
+
+GENERATED_FILES= \
+	$(EPOCROOT)epoc32/build/rcomp/build/rcomp.cpp \
+	$(EPOCROOT)epoc32/build/rcomp/build/rcomp.hpp \
+	$(EPOCROOT)epoc32/build/rcomp/build/rcompl.cpp
+
+$(EPOCROOT)epoc32/build/rcomp/build/rcompl.cpp : $(LEXSOURCE)
+	$(call createdir,$(EPOCROOT)epoc32/build/rcomp/build)
+	$(LEX_VERSION) -t $< > $@
+
+$(EPOCROOT)epoc32/build/rcomp/build/rcomp.cpp $(EPOCROOT)epoc32/build/rcomp/build/rcomp.hpp : $(YACCSOURCE)
+	$(call createdir,$(EPOCROOT)epoc32/build/rcomp/build)
+	$(YACC_VERSION) -d -o $@ $<
+
+do_nothing:
+	
+
+#
+# The targets invoked by bld...
+#
+
+# Do the work in the MAKMAKE target, in the hope of getting the files
+# created in time to scan them in the processing of RCOMP.MMP
+
+MAKMAKE : $(GENERATED_FILES)
+
+BLD : MAKMAKE
+
+SAVESPACE : MAKMAKE
+
+CLEAN : 
+	$(call remove,$(GENERATED_FILES))
+
+FREEZE : do_nothing
+
+LIB : do_nothing
+
+CLEANLIB : do_nothing
+
+RESOURCE : do_nothing
+
+FINAL : do_nothing
+
+RELEASABLES : do_nothing
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/tools/compsupp.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,20 @@
+# Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for the config extension template
+#
+
+platform	win32
+makefile 	gnumake
+techstream	Tools
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/tools/compsupp.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,43 @@
+# Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+# To ensure that EPOCROOT always ends with a forward slash
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+
+do_nothing:
+
+MAKMAKE : do_nothing
+
+FREEZE : do_nothing
+
+LIB :
+	unzip -o $(FILE) -d $(TODIR)
+
+CLEANLIB : do_nothing
+
+RESOURCE : do_nothing
+
+FINAL : do_nothing
+
+BLD : do_nothing
+
+SAVESPACE : do_nothing
+
+RELEASABLES :
+		@perl -S $(EPOCROOT)epoc32/tools/listzip.pl $(EPOCROOT)epoc32/release $(FILE)
+
+CLEAN : do_nothing
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/tools/features.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,19 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for features file generation
+#
+
+platform	win32
+makefile 	gnumake
+techstream	tools
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/tools/features.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,78 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# This makefile template is used to generate header/iby/features.dat file
+# 
+#
+
+# To ensure that EPOCROOT always ends with a forward slash
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+
+ifeq "$(CFG_PATH)" "rel"
+
+FEAT_TOOL := perl -S $(call slash2generic,features.pl)
+
+ifndef FEAT_DATABASE
+FEAT_DATABASE := $(EPOCROOT)epoc32/rom/include/featuredatabase.xml
+endif
+
+ifndef FEAT_HEADER_PATH
+FEAT_HEADER_PATH := $(EPOCROOT)epoc32/include
+endif
+
+ifndef FEAT_IBY_PATH
+FEAT_IBY_PATH := $(EPOCROOT)epoc32/rom/include
+endif
+
+ifndef FEAT_DAT_PATH
+FEAT_DAT_PATH := $(EPOCROOT)epoc32/data/config
+endif
+
+# Features tool will be invoked here
+ALL:
+	$(FEAT_TOOL) --datfile=$(FEAT_DAT_PATH) --hdrfile=$(FEAT_HEADER_PATH) --ibyfile=$(FEAT_IBY_PATH) $(FEAT_DATABASE)
+
+
+BLD SAVESPACE: ALL
+
+CLEAN :
+	-$(ERASE) $(call slash2generic,$(FEAT_HEADER_PATH)/featureuids.h)
+	-$(ERASE) $(call slash2generic,$(FEAT_IBY_PATH)/feature.iby)
+	-$(ERASE) $(call slash2generic,$(FEAT_DAT_PATH)/features.dat)
+
+RELEASABLES :
+	@echo $(FEAT_HEADER_PATH)/featureuids.h
+	@echo $(FEAT_IBY_PATH)/feature.iby
+	@echo $(FEAT_DAT_PATH)/features.dat
+	
+DO_NOTHING :
+	@echo do nothing
+	
+MAKMAKE : DO_NOTHING
+FREEZE : DO_NOTHING
+LIB : DO_NOTHING
+CLEANLIB : DO_NOTHING
+RESOURCE : DO_NOTHING
+FINAL : DO_NOTHING
+
+#if $(CFG_PATH) == "deb"
+else
+
+FINAL FREEZE LIB CLEANLIB RESOURCE RELEASABLES CLEAN BLD SAVESPACE MAKMAKE :
+
+endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/tools/jni_ant_launch.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,19 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for Apache Ant launcher
+#
+
+platform	tools
+makefile 	gnumake
+techstream	developertools
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/tools/jni_ant_launch.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,64 @@
+# Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+# To ensure that EPOCROOT always ends with a forward slash
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+
+# Get standard shell definitions
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+LETTERS:=a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
+
+# Raptor includes the drive letter on paths - this makefile can't handle the drive letter
+# If we don't do this we get "multiple target patterns" errors in sbsv2
+TMPROOT:=$(strip $(foreach let,$(LETTERS),$(if $(findstring $(let):,$(EPOCROOT)),$(subst $(let):,,$(EPOCROOT)))))
+ifneq ($(TMPROOT),)
+	EPOCROOT:=$(TMPROOT)
+endif
+TMPROOT:=$(strip $(foreach let,$(LETTERS),$(if $(findstring $(let):,$(EXTENSION_ROOT)),$(subst $(let):,,$(EXTENSION_ROOT)))))
+ifneq ($(TMPROOT),)
+	EXTENSION_ROOT:=$(TMPROOT)
+endif
+
+
+BUILDDIR = $(EPOCROOT)epoc32/build/$(EXTENSION_ROOT)/$(PLATFORM_PATH)
+RELDIR = $(EPOCROOT)epoc32/release/$(PLATFORM_PATH)
+LIBDIR = $(ANT_HOME)/bin/ant -lib $(EPOCROOT)epoc32/tools/java
+BLDFILE = -buildfile $(EXTENSION_ROOT)/build.xml
+
+BUILD = $(BUILDDIR)/${notdir ${build_xml}}_${target}
+HAS_BUILT = ${wildcard ${BUILD}}
+
+DO_NOTHING :
+	@echo Nothing to do
+
+SAVESPACE : BLD	
+MAKMAKE FREEZE CLEANLIB RESOURCE FINAL : DO_NOTHING
+
+BLD: DO_NOTHING
+
+LIB:
+	@$(call createdir,"$(BUILDDIR)")
+	$(LIBDIR) -logger com.symbian.ant.ScanLogger $(BLDFILE) -Depoc.build=$(BUILDDIR) -Depoc.rel=$(RELDIR) -Dtools.rel=$(EPOCROOT)tools ${args} ${target}
+	echo $(BUILDDIR)/${build_xml} ${target} > ${BUILD}	
+
+## Allow for a abld reallyclean
+CLEAN :
+	$(LIBDIR) -logger com.symbian.ant.ScanLogger $(BLDFILE) -Depoc.build=$(BUILDDIR) -Depoc.rel=$(RELDIR) -Dtools.rel=$(EPOCROOT)tools clean 
+
+## Allow for a abld -what
+RELEASABLES : 
+	$(LIBDIR) -logger com.symbian.ant.AbldWhatLogger -quiet $(BLDFILE) -Depoc.rel=$(RELDIR) -Dtools.rel=$(EPOCROOT)tools what
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/tools/kif.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,20 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for Kit Information file generation
+#
+
+platform	win32
+makefile 	gnumake
+techstream	productcreationtools
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/tools/kif.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,60 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Invoke genkif.pl to create the Kit Information File
+# 
+#
+
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+do_nothing :
+	
+
+#
+# The targets invoked by abld 
+#
+
+MAKMAKE : do_nothing
+
+RESOURCE : do_nothing
+
+SAVESPACE : BLD
+
+BLD : 
+ifeq ($(CFG),REL)
+	perl ${EPOCROOT}epoc32/tools/genkif.pl -o ${EPOCROOT}epoc32/data/kif.xml
+endif
+
+FREEZE : do_nothing
+
+LIB : do_nothing
+
+CLEANLIB : do_nothing
+
+FINAL : do_nothing
+
+CLEAN : 
+ifeq ($(CFG),REL)
+	$(call remove,${EPOCROOT}epoc32/data/kif.xml)
+endif
+
+RELEASABLES : 
+ifeq ($(CFG),REL)	
+	@echo ${EPOCROOT}epoc32/data/kif.xml	
+endif
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/tools/py2exe.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,19 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for Python Py2exe
+#
+
+platform	tools tools2
+makefile 	gnumake
+techstream	productcreationtools
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/tools/py2exe.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,39 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+MAKMAKE :
+	@python $(EXTENSION_ROOT)/$(RAPTOR_SCRIPTS_LOC)$(SETUP_SCRIPT) py2exe $(EXTENSION_ROOT)/$(RAPTOR_SCRIPTS_LOC)$(ENTRY_POINT) $(EXTENSION_ROOT)/$(DIST_DIR)
+
+CLEAN :
+	@del $(subst /,\, $(wildcard $(EXTENSION_ROOT)\$(DIST_DIR)*.pyd))
+	@del $(subst /,\, $(EXTENSION_ROOT)\$(DIST_DIR)library.zip)
+	@del $(subst /,\, $(wildcard $(EXTENSION_ROOT)\$(DIST_DIR)MSVCR*.dll))
+	@del $(subst /,\, $(wildcard $(EXTENSION_ROOT)\$(DIST_DIR)python*.dll))
+	@del $(subst .py,.exe, $(subst /,\, $(EXTENSION_ROOT)\$(DIST_DIR)$(ENTRY_POINT)))
+	@del $(subst /,\, $(EXTENSION_ROOT)\$(DIST_DIR)w9xpopen.exe)
+
+RELEASABLES :
+	@echo $(subst /,\, $(wildcard $(EXTENSION_ROOT)\$(DIST_DIR)*.pyd))
+	@echo $(subst /,\, $(EXTENSION_ROOT)\$(DIST_DIR)library.zip)
+	@echo $(subst /,\, $(wildcard $(EXTENSION_ROOT)\$(DIST_DIR)MSVCR*.dll))
+	@echo $(subst /,\, $(wildcard $(EXTENSION_ROOT)\$(DIST_DIR)python*.dll))
+	@echo $(subst .py,.exe, $(subst /,\, $(EXTENSION_ROOT)\$(DIST_DIR)$(ENTRY_POINT)))
+	@echo $(subst /,\, $(EXTENSION_ROOT)\$(DIST_DIR)w9xpopen.exe)
+
+# Dummy target
+DO_NOTHING :
+	
+BLD LIB SAVESPACE FREEZE CLEANLIB RESOURCE FINAL : DO_NOTHING
+	
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/tools/raptor_linux_dist.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,20 @@
+# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for stlport builds
+#
+
+platform	win32
+makefile 	gnumake
+techstream	tools
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/tools/raptor_linux_dist.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,23 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+MAKMAKE :
+	cd "$(subst /,\,$(EXTENSION_ROOT)/..)"; python python/sbs_dist.py $(RAPTOR_DIST) $(RAPTOR_DIST_INCLUDE_DIRS)
+
+# Dummy target
+DO_NOTHING :
+
+RELEASABLES CLEAN BLD LIB SAVESPACE FREEZE CLEANLIB RESOURCE FINAL : DO_NOTHING
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/tools/stlport.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,20 @@
+# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for stlport builds
+#
+
+platform	win32
+makefile 	gnumake
+techstream	tools
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/tools/stlport.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,91 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+# To ensure that EPOCROOT always ends with a forward slash
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+
+SOURCE_ARCHIVE:=$(EXTENSION_ROOT)/$(SOURCE_ARCHIVE)
+
+ISPATH:=$(call settPath)
+
+ifeq "$(ISPATH)" "1"
+Path:=$(EPOCROOT)epoc32/gcc_mingw/bin;$(Path)
+PATH:=$(Path)
+endif
+
+
+EXTRACT_DIR=$(EPOCROOT)epoc32/build
+STL_DIR=$(EXTRACT_DIR)/STLport-$(STLPORT_VERSION)
+BUILD_DIR=$(STL_DIR)/build/lib
+UNZIPPED=$(STL_DIR)/unzipped.ok
+
+RELEASE_DIR=$(EPOCROOT)epoc32/release/tools2
+RELEASE_DIR_REL=$(RELEASE_DIR)/rel
+RELEASE_DIR_DEB=$(RELEASE_DIR)/deb
+RELEASE_DIRS=$(RELEASE_DIR_REL) $(RELEASE_DIR_DEB)
+
+STL_REL_LIB_PATH=$(STL_DIR)/lib/libstlport.a
+STL_DEB_LIB_PATH=$(STL_DIR)/lib/libstlportg.a
+
+REL_LIB=$(RELEASE_DIR_REL)/$(STL_REL_LIB_NAME)
+DEB_LIB=$(RELEASE_DIR_DEB)/$(STL_REL_LIB_NAME)
+
+STL_HEADERS_PATH=$(EPOCROOT)epoc32/include/tools/stlport
+
+
+$(UNZIPPED): $(SOURCE_ARCHIVE)  $(EXTRACT_DIR)
+	unzip -o $(SOURCE_ARCHIVE) -d $(EXTRACT_DIR)
+	
+
+$(REL_LIB): $(UNZIPPED) $(STL_REL_LIB_PATH)  $(RELEASE_DIR_REL)
+	$(call ecopy) $(STL_REL_LIB_PATH) $(REL_LIB)
+
+$(DEB_LIB): $(UNZIPPED) $(STL_DEB_LIB_PATH)  $(RELEASE_DIR_DEB)
+	$(call ecopy) $(STL_DEB_LIB_PATH) $(DEB_LIB)
+
+LIB: $(REL_LIB) $(DEB_LIB)
+
+
+$(EXTRACT_DIR) $(RELEASE_DIRS):
+	$(call createdir,$@)
+
+# -Wno-uninitialized is needed by mingw gcc v3.4.5 because it gets
+#  # confused by some of the STLport source and gives this error erroneously
+export EXTRA_CXXFLAGS=-Wno-uninitialized
+
+$(STL_REL_LIB_PATH) (STL_DEB_LIB_PATH):
+	$(call tmpmacro)
+	make -C $(BUILD_DIR) -fgcc.mak install-release-static install-dbg-static LIB_SUFFIX=
+	
+CLEAN:
+	$(call remove,$(REL_LIB))
+	$(call remove,$(DEB_LIB))
+	make -C $(BUILD_DIR) -fgcc.mak clobber LIB_SUFFIX=
+	$(call remove,$(STL_DIR))
+
+
+RELEASABLES:
+	@echo $(REL_LIB)
+	@echo $(DEB_LIB)
+	
+
+MAKMAKE BLD SAVESPACE FREEZE CLEANLIB RESOURCE FINAL:
+	@echo $@ does nothing in $(TEMPLATE_EXTENSION_MAKEFILE)
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/tools/x86tool.meta	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,19 @@
+# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+# 
+# Contributors:
+#
+# Description:
+# Meta information for the GNU makesis extension template
+#
+
+platform	win32
+makefile 	gnumake
+techstream	tools
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/extension/tools/x86tool.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,373 @@
+# Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# /epoc32/tools/makefile_templates/tools/x86tool.mk
+# SBSv2 issues and differences from SBSv1
+# 1/ The shell is different
+# 2/ The msys shell can't handle absolute paths from root without the drive letter e.g. it can't find /epoc32 but it can find x:/epoc32
+# workaround is to go back to TO_ROOT
+# 3/ The current directory is at the bld.inf rather than /epoc32/build
+# 4/ Backslash is problematic
+# 5/ Path variables include the drive letter x: which causes problems for make when used in targets due to :
+# 6/ TO_ROOT is not defined
+# 7/ Some tool compatibility is problematic e.g. createdir doesn't work with paths containing forward slash
+# 
+#
+
+# If this environment variable is defined we're definitely building for win32
+ifdef ComSpec
+WIN32:=1
+endif
+
+space:=
+space+=
+LETTERS:=a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
+
+# If win32 isn't defined yet - then we're probably building on sbsv2
+# So see if EPOCROOT starts with a drive letter to work out if we're building for win32
+ifndef WIN32
+  ifneq ($(subst $(space),,$(foreach let,$(LETTERS),$(if $(findstring $(let):,$(EPOCROOT)),1,))),)
+    WIN32:=1
+  endif
+endif
+
+# To guarantee there is a slash at the end of EPOCROOT in case there is not.
+# This is needed to ensure compatibility with SBSv1.
+TMPROOT:=$(subst \,/,$(EPOCROOT))
+EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
+
+# Get standard shell definitions
+include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
+
+# Raptor includes the drive letter on paths - this makefile can't handle the drive letter
+# If we don't do this we get "multiple target patterns" errors in sbsv2
+TMPROOT:=$(strip $(foreach let,$(LETTERS),$(if $(findstring $(let):,$(EPOCROOT)),$(subst $(let):,,$(EPOCROOT)))))
+ifneq ($(TMPROOT),)
+  EPOCROOT:=$(TMPROOT)
+endif
+TMPROOT:=$(strip $(foreach let,$(LETTERS),$(if $(findstring $(let):,$(EXTENSION_ROOT)),$(subst $(let):,,$(EXTENSION_ROOT)))))
+ifneq ($(TMPROOT),)
+  EXTENSION_ROOT:=$(TMPROOT)
+endif
+
+# Make up for raptor not defining TO_ROOT properly
+# This might get broken if they change the current directory (which should really be in /epoc32/build)
+# We're using TO_ROOT to handle the fact that the msys shell doesn't seem to handle absolute paths
+ifdef WIN32
+  ifeq ($(TO_ROOT),)
+    TMPROOT:=$(strip $(foreach let,$(LETTERS),$(if $(findstring $(let):,$(TO_BLDINF)),$(subst $(let):,,$(TO_BLDINF)))))
+    TO_ROOT:=.$(subst $(space),,$(foreach word,$(subst /,$(space),$(TMPROOT)),/..))
+  endif
+endif
+
+# Handle inconsistent case for build variant
+CFG_PATH:=$(CFG)
+ifeq ($(CFG_PATH),DEB)
+  CFG_PATH:=deb
+endif
+ifeq ($(CFG_PATH),REL)
+  CFG_PATH:=rel
+endif
+
+# Set the following to enable code coverage stats
+CODE_COVERAGE:=
+
+# Build
+ifdef WIN32
+  TARGET_DIR_REL:=$(EPOCROOT)epoc32/release/tools2/rel/
+  TARGET_DIR_DEB:=$(EPOCROOT)epoc32/release/tools2/deb/
+  GCOVDIR:=$(if $(CODE_COVERAGE),$(EPOCROOT)epoc32/gcc_mingw/libgcc/mingw32/3.4.5/)
+else
+  TARGET_DIR_REL:=$(EPOCROOT)epoc32/release/tools2/linux-i386/rel/
+  TARGET_DIR_DEB:=$(EPOCROOT)epoc32/release/tools2/linux-i386/deb/
+endif
+
+# The root to the source code - paths are relative to bld.inf if NOT specified
+# If SOURCE_ROOT specified then it's relative to EPOCROOT
+ifndef SOURCE_ROOT
+  ROOT:=$(subst \,/,$(EXTENSION_ROOT))
+  OBJSUBST:=/
+else
+  ROOT:=$(EPOCROOT)$(subst $(space)/,/,$(SOURCE_ROOT))
+  OBJSUBST:=$(EPOCROOT)
+endif
+
+# ***
+# STATIC LIBRARY
+#
+ifeq ($(TARGET_TYPE),lib)
+  TARGET_FULLNAME_REL:=$(TARGET_DIR_REL)lib$(TARGET_NAME)$(if $(findstring .,$(TARGET_NAME)),,.a)
+  TARGET_FULLNAME_DEB:=$(TARGET_DIR_DEB)lib$(TARGET_NAME)$(if $(findstring .,$(TARGET_NAME)),,.a)
+
+  ifeq ($(CFG_PATH),deb)
+    TARGET_LIB:=$(TARGET_FULLNAME_DEB)
+  endif
+  ifeq ($(CFG_PATH),rel)
+    TARGET_LIB:=$(TARGET_FULLNAME_REL)
+  endif
+  TARGET_LIB?=$(TARGET_FULLNAME_REL) $(TARGET_FULLNAME_DEB)
+endif
+
+# ***
+# EXE
+#
+ifeq ($(TARGET_TYPE),exe)
+  TARGET_FULLNAME_REL:=$(TARGET_DIR_REL)$(TARGET_SUB_DIR)$(TARGET_NAME)$(if $(findstring .,$(TARGET_NAME)),,$(if $(WIN32),.exe))
+  TARGET_FULLNAME_DEB:=$(TARGET_DIR_DEB)$(TARGET_SUB_DIR)$(TARGET_NAME)$(if $(findstring .,$(TARGET_NAME)),,$(if $(WIN32),.exe))
+
+  ifeq ($(CFG_PATH),deb)
+    TARGET_BLD:=$(TARGET_FULLNAME_DEB)
+  endif
+  ifeq ($(CFG_PATH),rel)
+    TARGET_BLD:=$(TARGET_FULLNAME_REL)
+  endif
+  TARGET_BLD?=$(TARGET_FULLNAME_REL) $(TARGET_FULLNAME_DEB)
+
+  LIBS+=symexestub
+  ifdef STLPORT
+    LIBS+=-lstlport.5.1
+  endif
+endif
+
+# ***
+# DLL/SO
+#
+ifeq ($(TARGET_TYPE),dll)
+
+  TARGET_FULLNAME_REL:=$(TARGET_DIR_REL)$(TARGET_SUB_DIR)lib$(TARGET_NAME)$(if $(findstring .,$(TARGET_NAME)),,$(if $(WIN32),.dll,.so))
+  TARGET_FULLNAME_DEB:=$(TARGET_DIR_DEB)$(TARGET_SUB_DIR)lib$(TARGET_NAME)$(if $(findstring .,$(TARGET_NAME)),,$(if $(WIN32),.dll,.so))
+
+  ifeq ($(CFG_PATH),deb)
+    TARGET_BLD:=$(TARGET_FULLNAME_DEB)
+  endif
+  ifeq ($(CFG_PATH),rel)
+    TARGET_BLD:=$(TARGET_FULLNAME_REL)
+  endif
+  TARGET_BLD?=$(TARGET_FULLNAME_REL) $(TARGET_FULLNAME_DEB)
+
+  ifdef STLPORT
+    LIBS+=-lstlport.5.1
+  endif
+endif
+
+# Pick up MINGW compiler from epoc32 on Windows
+ifdef WIN32
+  AR:=$(EPOCROOT)epoc32/gcc_mingw/bin/ar
+  CXX:=$(EPOCROOT)epoc32/gcc_mingw/bin/g++
+endif
+
+# Product include files are different for S60
+ifdef S60_BUILD
+  PRODUCT_INCLUDE:=$(EPOCROOT)epoc32/include/oem/bldvariant.hrh
+else
+  PRODUCT_INCLUDE:=$(EPOCROOT)epoc32/include/variant/Symbian_OS.hrh
+endif
+
+# Define macros we need
+CXXDEFS_COMMON:=$(foreach def,$(MACROS),-D$(def)) -D__SYMBIAN32__ -D__GCC32__ -D__EPOC32__ -D__X86__ -D_UNICODE -D__SUPPORT_CPP_EXCEPTIONS__ -D__TOOLS2__ -D'__PRODUCT_INCLUDE__="$(PRODUCT_INCLUDE)"'
+CXXDEFS_DEB:=$(CXXDEFS_COMMON) -D_DEBUG
+CXXDEFS_REL:=$(CXXDEFS_COMMON)
+
+# Setup the command line options for the compiler
+PREINC=$(EPOCROOT)epoc32/include/x86tool/x86tool.h
+CXXOPT_DEB:=-fshort-wchar -x c++ -O0 -g3 -Wall -c -fmessage-length=0 -include $(PREINC) -masm=intel
+OPTIMISE:=-fdefer-pop -fmerge-constants -fthread-jumps -floop-optimize -fif-conversion -fif-conversion2 -fguess-branch-probability -fcprop-registers -fforce-mem -foptimize-sibling-calls -fstrength-reduce -fcse-follow-jumps -fcse-skip-blocks -frerun-cse-after-loop -frerun-loop-opt -fgcse -fgcse-lm -fgcse-sm -fgcse-las -fdelete-null-pointer-checks -fexpensive-optimizations -fregmove -fschedule-insns -fschedule-insns2 -fsched-interblock -fsched-spec -fcaller-saves -fpeephole2 -freorder-blocks -freorder-functions -fstrict-aliasing -funit-at-a-time -falign-functions -falign-jumps -falign-loops -falign-labels -fcrossjumping
+CXXOPT_REL:=-fshort-wchar -x c++ -Wall -c -fmessage-length=0 -include $(PREINC) $(if $(CODE_COVERAGE),-O0,$(OPTIMISE)) -masm=intel
+
+# Allow specification of additional build include file
+ifdef BUILDINC
+  CXXOPT_DEB+= -include $(BUILDINC)
+  CXXOPT_REL+= -include $(BUILDINC)
+endif
+
+# Extra options needed for cia files
+ASMOPT:=-fomit-frame-pointer
+
+# Linker options for DLL
+ifndef DLL_WIN_LINKER_OPTS
+  DLL_WIN_LINKER_OPTS:= $(if $(CODE_COVERAGE),-lgcov) -Wl,-export-all-symbols
+endif
+ifndef DLL_LIN_LINKER_OPTS
+  DLL_LIN_LINKER_OPTS:= -Wl,-export-all-symbols $(if $(CODE_COVERAGE),-lgcov) -ldl
+endif
+
+# Source files to scan for in a directory
+# Note that CPP and cpp will match on the same files - so a sort is necessary on wildcard results
+SOURCE_EXT:=CPP cpp c cia
+
+# Source code assumed to be all cpp/cia files in supplied directories
+SOURCE_FILES:=$(foreach dir,$(SOURCE_DIRS),$(sort $(foreach ext,$(SOURCE_EXT),$(wildcard $(ROOT)/$(dir)/*.$(ext))))) \
+  $(foreach src,$(SOURCE),$(ROOT)/$(if $(SOURCE_FOLDER),$(SOURCE_FOLDER)/)$(src)) \
+  $(foreach src,$(SOURCE_MOD),$(subst \,/,$(EXTENSION_ROOT))/$(src)) \
+  $(foreach id,$(SOURCE_IDS),$(foreach src,$($(id)_SOURCE),$(subst $(space)/,/,$(if $($(id)_SOURCE_ROOT),$(EPOCROOT)$($(id)_SOURCE_ROOT),$(ROOT))/$(src))))
+
+# Include folders
+CXXINC:=$(foreach inc,$(INCLUDES) $(SOURCE_DIRS),-I$(ROOT)/$(inc)) \
+  $(foreach inc,$(SYS_INCLUDES),-I$(EPOCROOT)$(inc)) -I$(ROOT) \
+  $(foreach id,$(SOURCE_IDS),$(foreach inc,$($(id)_SOURCE_INC),-I$(subst $(space)/,/,$(if $($(id)_SOURCE_ROOT),$(EPOCROOT)$($(id)_SOURCE_ROOT),$(ROOT)))/$(inc)))
+
+# Add standard include paths?
+ifndef NO_STD_INCLUDE
+  CXXINC+= -I$(EPOCROOT)epoc32/include/x86tool -I$(EPOCROOT)epoc32/include
+  ifdef S60_BUILD
+    CXXINC+= -I$(EPOCROOT)epoc32/include/oem
+  endif
+endif
+
+# Support for building JNI
+ifdef JAVA_JNI
+  CXXINC+= -I"$(JAVA_HOME)/include"
+  ifdef WIN32
+    CXXINC+= -I"$(JAVA_HOME)/include/win32"
+  else
+    CXXINC+= -I"$(JAVA_HOME)/include/linux"
+  endif
+endif
+
+
+# STL Port support needed? Note STL and Symbian won't mix!
+ifdef STLPORT
+  CXXINC+= -I$(EPOCROOT)epoc32/include/tools/stlport 
+endif
+
+# ***
+# DEBUG
+#
+
+# Object files are the same name as the source files with a .o extension
+OBJECTFILES_DEB:=$(foreach src,$(SOURCE_FILES),deb$(src).o)
+
+# Compile
+$(OBJECTFILES_DEB) : $(PREINC) $(SOURCE_FILES)
+	@echo ***
+	@echo Making: $@
+	$(call createdir,$(dir $@))
+	$(CXX) $(CXXDEFS_DEB) $(CXXINC) -I$(subst deb$(OBJSUBST),$(OBJSUBST),$(dir $@)) $(CXXOPT_DEB) $(if $(findstring .cia,$@),$(ASMOPT),$(if $(CODE_COVERAGE),-fprofile-arcs -ftest-coverage)) -o$@ $(subst deb$(OBJSUBST),$(OBJSUBST),$(basename $@))
+
+# Link
+$(TARGET_FULLNAME_DEB) : $(OBJECTFILES_DEB) $(foreach lib,$(LIBS),$(TARGET_DIR_DEB)lib$(lib).a) $(foreach lib,$(SHARED_LIBS),$(TARGET_DIR_DEB)lib$(lib)$(if $(WIN32),.a,.so))
+ifeq ($(TARGET_TYPE),lib)
+	@echo ***
+	@echo Creating lib: $@
+	$(AR) -r $(TARGET_FULLNAME_DEB) $(OBJECTFILES_DEB)
+endif
+ifeq ($(TARGET_TYPE),exe)
+	@echo ***
+	@echo Creating exe: $@
+	$(CXX) -L$(TARGET_DIR_DEB) $(if $(GCOVDIR),-L$(GCOVDIR)) \
+		-o$(TARGET_FULLNAME_DEB) $(OBJECTFILES_DEB) \
+		$(foreach lib,$(LIBS) $(SHARED_LIBS), -l$(lib)) \
+		$(if $(CODE_COVERAGE),-lgcov) $(if $(WIN32),,-ldl)
+endif
+ifeq ($(TARGET_TYPE),dll)
+  ifdef WIN32
+	@echo ***
+	@echo Creating Windows dll: $@
+	$(CXX) -L$(TARGET_DIR_DEB) $(if $(GCOVDIR),-L$(GCOVDIR)) \
+		-shared -o$(TARGET_FULLNAME_DEB) $(OBJECTFILES_DEB) \
+		$(foreach lib,$(LIBS) $(SHARED_LIBS), -l$(lib)) \
+		-Wl,-out-implib,$(@D)/$(basename $(@F)).a \
+		$(DLL_WIN_LINKER_OPTS)
+  else
+	@echo ***
+	@echo Creating Linux shared object: $@
+	$(CXX) -L$(TARGET_DIR_DEB) \
+		-shared -o$(TARGET_FULLNAME_DEB) $(OBJECTFILES_DEB) \
+		$(foreach lib,$(LIBS) $(SHARED_LIBS), -l$(lib)) \
+		$(DLL_LIN_LINKER_OPTS)
+  endif
+endif
+
+# ***
+# RELEASE
+#
+
+# Object files are the same name as the source files with a .o extension
+OBJECTFILES_REL:=$(foreach src,$(SOURCE_FILES),rel$(src).o)
+
+# Compile
+$(OBJECTFILES_REL) : $(PREINC) $(SOURCE_FILES)
+	@echo ***
+	@echo Making: $@
+	$(call createdir,$(dir $@))
+	$(CXX) $(CXXDEFS_REL) $(CXXINC) -I$(subst rel$(OBJSUBST),$(OBJSUBST),$(dir $@)) $(CXXOPT_REL) $(if $(findstring .cia,$@),$(ASMOPT),$(if $(CODE_COVERAGE),-fprofile-arcs -ftest-coverage)) -o$@ $(subst rel$(OBJSUBST),$(OBJSUBST),$(basename $@))
+
+# Link
+$(TARGET_FULLNAME_REL) : $(OBJECTFILES_REL) $(foreach lib,$(LIBS),$(TARGET_DIR_REL)lib$(lib).a) $(foreach lib,$(SHARED_LIBS),$(TARGET_DIR_REL)lib$(lib)$(if $(WIN32),.a,.so))
+ifeq ($(TARGET_TYPE),lib)
+	@echo ***
+	@echo Creating lib: $@
+	$(AR) -r $(TARGET_FULLNAME_REL) $(OBJECTFILES_REL)
+endif
+ifeq ($(TARGET_TYPE),exe)
+	@echo ***
+	@echo Creating exe: $@
+	$(CXX) -L$(TARGET_DIR_REL) $(if $(GCOVDIR),-L$(GCOVDIR)) \
+		-o$(TARGET_FULLNAME_REL) $(OBJECTFILES_REL) \
+		$(foreach lib,$(LIBS) $(SHARED_LIBS), -l$(lib)) \
+		$(if $(CODE_COVERAGE),-lgcov) $(if $(WIN32),,-ldl)
+endif
+ifeq ($(TARGET_TYPE),dll)
+  ifdef WIN32
+	@echo ***
+	@echo Creating Windows dll: $@	
+	$(CXX) -L$(TARGET_DIR_REL) $(if $(GCOVDIR),-L$(GCOVDIR)) \
+		-shared -o$(TARGET_FULLNAME_REL) $(OBJECTFILES_REL) \
+		$(foreach lib,$(LIBS) $(SHARED_LIBS), -l$(lib)) \
+		-Wl,-out-implib,$(@D)/$(basename $(@F)).a \
+		$(DLL_WIN_LINKER_OPTS)
+  else
+	@echo ***
+	@echo Creating Linux shared object: $@
+	$(CXX) -L$(TARGET_DIR_REL) \
+		-shared -o$(TARGET_FULLNAME_REL) $(OBJECTFILES_REL) \
+		$(foreach lib,$(LIBS) $(SHARED_LIBS), -l$(lib)) \
+		$(DLL_LIN_LINKER_OPTS)
+  endif
+endif
+
+do_nothing:
+
+#
+# The targets invoked by abld...
+#
+
+MAKMAKE : do_nothing
+FREEZE : do_nothing
+RESOURCE : do_nothing
+CLEANLIB : do_nothing
+FINAL : do_nothing
+
+SAVESPACE :
+ifeq ($(CFG_PATH),deb)
+	$(call remove,$(OBJECTFILES_DEB))
+endif
+ifeq ($(CFG_PATH),rel)
+	$(call remove,$(OBJECTFILES_REL))
+endif
+
+LIB : $(TARGET_LIB)
+
+BLD : $(TARGET_BLD)
+
+CLEAN :
+	$(call remove,$(foreach file,$(TARGET_LIB) $(TARGET_BLD),$(TO_ROOT)$(file)))
+ifeq ($(CFG_PATH),deb)
+	$(call remove,$(OBJECTFILES_DEB))
+endif
+ifeq ($(CFG_PATH),rel)
+	$(call remove,$(OBJECTFILES_REL))
+endif
+
+RELEASABLES :
+	@echo $(TARGET_LIB) $(TARGET_BLD)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/shell/cmd.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,136 @@
+# Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+include $(EPOCROOT)epoc32/tools/shell/generic.mk
+
+# Host platform dependant variables
+/:=$(shell echo \)
+;:=;
+CP=copy
+RM=del
+RMDIR=rmdir
+MKDIR=mkdir
+ERASE=@erase /q 2>>nul
+
+
+# Some tools do not work with slash but only dollar slash.  
+# That is actually a defect for them and should be fixed.  
+# Then this macro should be abandoned.
+define slash2generic
+$(subst /,$/,$(1))
+endef
+
+# Call perl script to create directory. 
+# Used in base/config.mk and many others
+define createdir
+perl $(EPOCROOT)epoc32/tools/emkdir.pl $(1)
+endef
+
+# Check if not exist directory then create it first. 
+# Used in BASE/lubbock_miniboot
+define ifnotexistd
+if not exist $(1) md $(subst /,\,$(1))
+endef
+
+# This means there are something to add for SBSv2 here.
+# For abld, there is nothing.
+# Used in base/lubbock_miniboot and should be used in similar situation.
+define sbsadd
+
+endef
+
+# Add double quotes for abld target. No quote for SBSv2.
+# Used in base/lubbock_miniboot
+define abldquote
+"$(1)"
+endef
+
+# Used in Syslibs/conversiontable.mk
+define generated
+$(EPOCROOT)epoc32/build/$(1)
+endef
+
+# Used in syslibs/generate_cpp.mk
+define formatreleasables
+@echo $(1)
+endef
+
+# Used in BASE/config.mk
+define generatedcpp
+$(EPOCROOT)epoc32/build/generatedcpp/hal
+endef
+
+# Set path. Used in BASE/bootstrap.mk
+define epocbldabs
+$(1)$(2)
+endef
+
+# Call perl script ecopyfile.pl to copy.  
+# Used in BASE/bootstrap.mk 
+define ecopy
+perl $(EPOCROOT)epoc32/tools/ecopyfile.pl 
+endef
+
+# Abld does not support pipe symbol | while SBSv2 does.  So for Abld it is nothing.
+# Used in Base/bootstrap.mk. 
+define pipe
+
+endef
+
+# Call perl script copyfeaturevariants.pl.  Used in BASE/copy_default.mk.
+define cpfeature
+perl $(EPOCROOT)epoc32/tools/copyfeaturevariants.pl $(1) $(2)
+endef
+
+# Used in Syslibs/generate_cpp.mk at the bottom to deal with different
+# way of includeing TEM in Abld and SBSv2.
+define include
+$(EPOCROOT)epoc32/tools/makefile_templates/syslibs/generate_cpp.mk
+endef
+
+# Macro to change working directory. Used for TOOLS/stlport.mk
+# The path needs to be fixed before passing to cd command
+define chdir
+-cd $(subst /,\,$(1))
+endef
+
+# Macro to remove files. All paths need to be corrected before deleting.
+# Used in TOOLS/stlport.mk
+define remove
+-$(ERASE) $(subst /,\,$(1))
+endef
+
+# Macro to copy files. Needed for sbsv2 build 
+# Used in PDS components in syslibs/*.mk
+define forcecopy
+$(CP) $(subst /,\,$(1)) $(subst /,\,$(2))
+endef
+
+# Macro to remove files. Needed for sbsv2 build
+# Used in PDS components in syslibs/*.mk
+define forceremove
+-$(ERASE) $(subst /,\,$(1))
+endef
+
+define tmpmacro
+$(call chdir,$(BUILD_DIR));configure.bat -c gcc;
+endef
+
+define settPath
+1
+endef
+
+# Configuration needs to be returned as upper case for abld
+CONFIGURATION:=REL
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/shell/generic.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,63 @@
+# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Definitions common to all shells
+# *_PATH variables to support filename policy conformance in makefile templates
+# NOTE: These should all be replaced by calls to a function that lower-cases
+# the current setting of the original variable
+# 
+#
+
+PLATFORM_PATH=$(PLATFORM)
+CFG_PATH=$(CFG)
+
+ifeq ($(PLATFORM_PATH),WINS) 
+	PLATFORM_PATH=wins
+else
+ifeq ($(PLATFORM_PATH),WINSCW) 
+	PLATFORM_PATH=winscw
+else
+ifeq ($(PLATFORM_PATH),ARMV5) 
+	PLATFORM_PATH=armv5
+else
+ifeq ($(PLATFORM_PATH),ARMV7) 
+	PLATFORM_PATH=armv7
+else
+ifeq ($(PLATFORM_PATH),TOOLS) 
+	PLATFORM_PATH=tools
+else
+ifeq ($(PLATFORM_PATH),TOOLS2) 
+	PLATFORM_PATH=tools2
+endif
+endif
+endif
+endif
+endif
+endif
+
+ifeq ($(CFG_PATH),UREL) 
+	CFG_PATH=urel
+else
+ifeq ($(CFG_PATH),UDEB) 
+	CFG_PATH=udeb
+else
+ifeq ($(CFG_PATH),DEB) 
+	CFG_PATH=deb
+else
+ifeq ($(CFG_PATH),REL) 
+	CFG_PATH=rel
+endif
+endif
+endif
+endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/shell/sh.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,117 @@
+# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+include $(EPOCROOT)epoc32/tools/shell/generic.mk
+
+
+# Some tools do not work with slash but only dollar slash.  
+# That is actually a defect for them and should be fixed.  
+# Then this macro should be abandoned.
+define slash2generic
+$(1)
+endef
+
+# Use $(MKDIR) to create directory
+# Use in base/config.mk and many others
+define createdir
+$(MKDIR) -p $(1) 
+endef
+
+# Check if not exist directory then create it first. 
+# Use in BASE/lubbock_miniboot and many others
+define ifnotexistd
+if [ ! -d $(1) ]; then $(MKDIR) -p $(1); fi
+endef
+
+# This means there are something to add for SBSv2 here.
+# Used in base/lubbock_miniboot and should be used in similar situation.
+define sbsadd
+$(1)
+endef
+
+# Add double quotes for abld target. No quote for SBSv2.
+# Used in base/lubbock_miniboot
+define abldquote
+$(1)
+endef
+
+# Used in Syslibs/conversiontable.mk
+define generated
+$(EPOCROOT)epoc32/build/$(1)
+endef
+
+# Used in syslibs/generate_cpp.mk
+define formatreleasables
+$(if $(1),@echo $(word 1,$(1)))
+$(if $(1),$(call formatreleasables,$(wordlist 2,$(words $(1)),$(1))))
+endef
+
+# Used in BASE/config.mk
+define generatedcpp
+$(EPOCROOT)epoc32/build/generatedcpp/hal
+endef
+
+# Set path. Used in BASE/bootstrap.mk
+define epocbldabs
+$(EPOCBLD)
+endef
+
+# Copy. Used in BASE/bootstrap.mk 
+define ecopy
+cp
+endef
+
+# Abld does not support pipe symbol | while SBSv2 does.  So for Abld it is nothing.
+# Used in Base/bootstrap.mk. 
+define pipe
+| $(1)
+endef
+
+# Used in BASE/copy_default.mk.
+define cpfeature
+$(CP) $? $@
+endef
+
+# Used in Syslibs/generate_cpp.mk at the bottom to deal with different
+# way of includeing TEM in Abld and SBSv2.
+define include
+$(TEMPLATE_EXTENSION_MAKEFILE)
+endef
+
+# Macro to change working directory. Used for TOOLS/stlport.mk
+# The path needs to be fixed before passing to cd command
+define chdir
+-cd $(1)
+endef
+
+# Macro to remove files. Used in TOOLS/stlport.mk
+define remove
+-rm -f $(1)
+endef
+
+# Macro to copy files. Needed for sbsv2 build
+# Used in PDS components in syslibs/*.mk
+define forcecopy
+$(CP) -f $(1)	$(2) && chmod a+rwx $(2)
+endef
+
+# Macro to remove files. Needed for sbsv2 build
+# Used in PDS components in syslibs/*.mk
+define forceremove
+-$(ERASE) -f $(1)
+endef
+
+# Configuration needs to be returned as upper case for abld
+CONFIGURATION:=rel
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/test/binaryvariation/Bld.inf	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,23 @@
+// Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Component description file
+// 
+//
+
+PRJ_MMPFILES
+
+InvariantStaticDLL.mmp
+VariantStaticDLL.mmp
+UseStaticDLL.mmp
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/test/binaryvariation/CommonFramework.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,61 @@
+// Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+
+#ifndef __CommonFramework_H
+#define __CommonFramework_H
+
+#include <e32base.h>
+#include <e32cons.h>
+
+_LIT(KTxtEPOC32EX,"EXAMPLES");
+_LIT(KTxtExampleCode,"Symbian OS Example Code");
+_LIT(KFormatFailed,"failed: leave code=%d");
+_LIT(KTxtOK,"ok");
+_LIT(KTxtPressAnyKey," [press any key]");
+
+// public
+LOCAL_D CConsoleBase* console; // write all your messages to this
+LOCAL_C void doExampleL(); // code this function for the real example
+
+// private
+LOCAL_C void callExampleL(); // initialize with cleanup stack, then do example
+
+GLDEF_C TInt E32Main() // main function called by E32
+    {
+	__UHEAP_MARK;
+	CTrapCleanup* cleanup=CTrapCleanup::New(); // get clean-up stack
+	TRAPD(error,callExampleL()); // more initialization, then do example
+	__ASSERT_ALWAYS(!error,User::Panic(KTxtEPOC32EX,error));
+	delete cleanup; // destroy clean-up stack
+	__UHEAP_MARKEND;
+	return 0; // and return
+    }
+
+LOCAL_C void callExampleL() // initialize and call example code under cleanup stack
+    {
+	console=Console::NewL(KTxtExampleCode,TSize(KConsFullScreen,KConsFullScreen));
+	CleanupStack::PushL(console);
+	TRAPD(error,doExampleL()); // perform example function
+	if (error)
+		console->Printf(KFormatFailed, error);
+	else
+		console->Printf(KTxtOK);
+	console->Printf(KTxtPressAnyKey);
+	console->Getch(); // get and ignore character
+	CleanupStack::PopAndDestroy(); // close console
+    }
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/test/binaryvariation/InvariantStaticDLL.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,62 @@
+// Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// This program creates a dll.
+// 
+//
+
+#include "InvariantStaticDLL.h"
+#include <e32uid.h>
+
+// construct/destruct
+
+EXPORT_C CInvMessenger* CInvMessenger::NewLC(CConsoleBase& aConsole, const TDesC& aString)
+	{
+	CInvMessenger* self=new (ELeave) CInvMessenger(aConsole);
+	CleanupStack::PushL(self);
+	self->ConstructL(aString);
+	return self;
+	}
+
+CInvMessenger::~CInvMessenger() // destruct - virtual, so no export
+	{
+	delete iString;
+	}
+
+// useful functions
+
+EXPORT_C void CInvMessenger::ShowMessage()
+	{
+	_LIT(KFormat1,"FEATURE INVARIANT %S\n");
+	iConsole.Printf(KFormat1, iString); // notify completion
+	}
+
+// constructor support
+// don't export these, because used only by functions in this DLL, eg our NewLC()
+
+CInvMessenger::CInvMessenger(CConsoleBase& aConsole) // first-phase C++ constructor
+	: iConsole(aConsole)
+	{
+	}
+
+void CInvMessenger::ConstructL(const TDesC& aString) // second-phase constructor
+	{
+	iString=aString.AllocL(); // copy given string into own descriptor
+    }
+
+
+GLDEF_C TInt E32Dll(TInt /*aReason*/)
+// DLL entry point
+	{
+	return(KErrNone);
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/test/binaryvariation/InvariantStaticDLL.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,41 @@
+// Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Statically linked dll example
+// 
+//
+ 
+
+#include <e32cons.h>
+
+
+class CInvMessenger : public CBase
+  	{
+public:
+		// Construction
+	IMPORT_C static CInvMessenger* NewLC(CConsoleBase& aConsole, const TDesC& aString);
+		// Destructor - virtual and class not intended
+		// for derivation, so not exported
+	~CInvMessenger();
+		// general functions - exported
+	IMPORT_C void ShowMessage();
+private:
+		// C++ constructor - not exported;
+		// implicitly called from NewLC()
+	CInvMessenger(CConsoleBase& aConsole);
+		// 2nd phase construction, called by NewLC()
+	void ConstructL(const TDesC& aString); // second-phase constructor
+private:
+	CConsoleBase& iConsole; // Use the console (but not owned)
+	HBufC*        iString;  // Allocated container for string data (destructor destroys)
+	};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/test/binaryvariation/InvariantStaticDLL.mmp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,38 @@
+// Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// using relative paths for sourcepath and user includes
+// exports are unfrozen
+// 
+//
+
+TARGET        InvariantStaticDLL.dll
+TARGETTYPE    dll
+UID           0x1000008d 0x10004268
+VENDORID      0x70000001
+
+SOURCEPATH    .
+SOURCE        InvariantStaticDLL.cpp
+
+USERINCLUDE   .
+OS_LAYER_SYSTEMINCLUDE
+
+LIBRARY       euser.lib
+
+#if defined(WINS)
+    deffile ./InvariantStaticDLLwin.def
+#else
+    deffile ./InvariantStaticDLLarm.def
+#endif
+nostrictdef
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/test/binaryvariation/InvariantStaticDLLarm.def	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,6 @@
+EXPORTS
+	_ZN13CInvMessenger11ShowMessageEv @ 1 NONAME
+	_ZN13CInvMessenger5NewLCER12CConsoleBaseRK7TDesC16 @ 2 NONAME
+	_ZTI13CInvMessenger @ 3 NONAME ; #<TI>#
+	_ZTV13CInvMessenger @ 4 NONAME ; #<VT>#
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/test/binaryvariation/InvariantStaticDLLwin.def	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,4 @@
+EXPORTS
+	?NewLC@CInvMessenger@@SAPAV1@AAVCConsoleBase@@ABVTDesC16@@@Z @ 1 NONAME ; class CInvMessenger * CInvMessenger::NewLC(class CConsoleBase &, class TDesC16 const &)
+	?ShowMessage@CInvMessenger@@QAEXXZ @ 2 NONAME ; void CInvMessenger::ShowMessage(void)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/test/binaryvariation/UseStaticDLL.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,55 @@
+// Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// A simple program which uses the statically linked dll  "eulibd1b.dll"
+// 
+//
+
+// standard example header
+#include "CommonFramework.h"
+#include "InvariantStaticDLL.h"
+#include "VariantStaticDLL.h"
+
+_LIT(KTxt1,"statically linked DLL example \n\n");
+
+#ifdef FEATURE_VARIANT_DEFAULT
+	_LIT(KTxt2,"Hello from variant_default!");
+#endif
+
+#ifdef FEATURE_VARIANT_A
+	_LIT(KTxt2,"Hello from variant_a!");
+#endif
+
+#ifdef FEATURE_VARIANT_B
+	_LIT(KTxt2,"Hello from variant_b!");
+#endif
+
+_LIT(KTxtNewLine,"\n");
+
+LOCAL_C void doExampleL()
+    {
+	console->Printf(KTxt1);
+
+	CInvMessenger* myInvMessage = CInvMessenger::NewLC(*console, KTxt2);
+	myInvMessage->ShowMessage();
+
+	console->Printf(KTxtNewLine);
+
+	CVarMessenger* myVarMessage = CVarMessenger::NewLC(*console, KTxt2);
+	myVarMessage->ShowMessage();
+
+	console->Printf(KTxtNewLine);
+	CleanupStack::PopAndDestroy(); 
+	}
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/test/binaryvariation/UseStaticDLL.mmp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,33 @@
+// Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// using relative paths for sourcepath and user includes
+// 
+//
+
+TARGET        UseStaticDLL.exe
+TARGETTYPE    exe
+UID           0
+VENDORID      0x70000001
+
+// test exe's support binary variation
+FEATUREVARIANT
+
+SOURCEPATH    .
+SOURCE        UseStaticDLL.cpp
+
+USERINCLUDE   .
+OS_LAYER_SYSTEMINCLUDE
+
+LIBRARY       euser.lib InvariantStaticDLL.lib VariantStaticDLL.lib
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/test/binaryvariation/VariantStaticDLL.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,72 @@
+// Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// This program creates a dll.
+// 
+//
+
+#include "VariantStaticDLL.h"
+#include <e32uid.h>
+
+// construct/destruct
+
+EXPORT_C CVarMessenger* CVarMessenger::NewLC(CConsoleBase& aConsole, const TDesC& aString)
+	{
+	CVarMessenger* self=new (ELeave) CVarMessenger(aConsole);
+	CleanupStack::PushL(self);
+	self->ConstructL(aString);
+	return self;
+	}
+
+CVarMessenger::~CVarMessenger() // destruct - virtual, so no export
+	{
+	delete iString;
+	}
+
+// useful functions
+
+EXPORT_C void CVarMessenger::ShowMessage()
+	{
+#ifdef FEATURE_VARIANT_A
+	_LIT(KFormat1,"FEATURE VARIANT A %S\n");
+#else
+	_LIT(KFormat1,"FEATURE VARIANT ~A %S\n");
+#endif
+#ifdef FEATURE_VARIANT_B
+	_LIT(KFormat2,"FEATURE VARIANT B %S\n");
+#else
+	_LIT(KFormat2,"FEATURE VARIANT ~B %S\n");
+#endif
+	iConsole.Printf(KFormat1, iString); // notify completion
+	iConsole.Printf(KFormat2, iString); // notify completion
+	}
+
+// constructor support
+// don't export these, because used only by functions in this DLL, eg our NewLC()
+
+CVarMessenger::CVarMessenger(CConsoleBase& aConsole) // first-phase C++ constructor
+	: iConsole(aConsole)
+	{
+	}
+
+void CVarMessenger::ConstructL(const TDesC& aString) // second-phase constructor
+	{
+	iString=aString.AllocL(); // copy given string into own descriptor
+    }
+
+
+GLDEF_C TInt E32Dll(TInt /*aReason*/)
+// DLL entry point
+	{
+	return(KErrNone);
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/test/binaryvariation/VariantStaticDLL.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,41 @@
+// Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Statically linked dll example
+// 
+//
+ 
+
+#include <e32cons.h>
+
+
+class CVarMessenger : public CBase
+  	{
+public:
+		// Construction
+	IMPORT_C static CVarMessenger* NewLC(CConsoleBase& aConsole, const TDesC& aString);
+		// Destructor - virtual and class not intended
+		// for derivation, so not exported
+	~CVarMessenger();
+		// general functions - exported
+	IMPORT_C void ShowMessage();
+private:
+		// C++ constructor - not exported;
+		// implicitly called from NewLC()
+	CVarMessenger(CConsoleBase& aConsole);
+		// 2nd phase construction, called by NewLC()
+	void ConstructL(const TDesC& aString); // second-phase constructor
+private:
+	CConsoleBase& iConsole; // Use the console (but not owned)
+	HBufC*        iString;  // Allocated container for string data (destructor destroys)
+	};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/test/binaryvariation/VariantStaticDLL.mmp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,49 @@
+// Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// using relative paths for sourcepath and user includes
+// exports are unfrozen
+// 
+//
+
+TARGET        VariantStaticDLL.dll
+TARGETTYPE    dll
+FEATUREVARIANT
+UID           0x1000008d 0x10004268
+VENDORID      0x70000001
+
+SOURCEPATH    .
+SOURCE        VariantStaticDLL.cpp
+
+USERINCLUDE   .
+OS_LAYER_SYSTEMINCLUDE
+
+LIBRARY       euser.lib
+
+#if defined(WINS)
+    deffile ./VariantStaticDLLwin.def
+#else
+    deffile ./VariantStaticDLLarm.def
+#endif
+nostrictdef
+
+// Test variation in MMP files?
+#if defined(FEATURE_VARIANT_DEFAULT)
+#warning "FEATURE_VARIANT_DEFAULT defined"
+#elif defined(FEATURE_VARIANT_A)
+#warning "FEATURE_VARIANT_A defined"
+#elif defined(FEATURE_VARIANT_B )
+#warning "FEATURE_VARIANT_B defined"
+#else
+#error "Test failed"
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/test/binaryvariation/VariantStaticDLLarm.def	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,6 @@
+EXPORTS
+	_ZN13CVarMessenger11ShowMessageEv @ 1 NONAME
+	_ZN13CVarMessenger5NewLCER12CConsoleBaseRK7TDesC16 @ 2 NONAME
+	_ZTI13CVarMessenger @ 3 NONAME ; #<TI>#
+	_ZTV13CVarMessenger @ 4 NONAME ; #<VT>#
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/test/binaryvariation/VariantStaticDLLwin.def	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,4 @@
+EXPORTS
+	?NewLC@CVarMessenger@@SAPAV1@AAVCConsoleBase@@ABVTDesC16@@@Z @ 1 NONAME ; class CVarMessenger * CVarMessenger::NewLC(class CConsoleBase &, class TDesC16 const &)
+	?ShowMessage@CVarMessenger@@QAEXXZ @ 2 NONAME ; void CVarMessenger::ShowMessage(void)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/test/binaryvariation/bvtest.txt	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,5 @@
+FEATURE_VARIANT_A
+FEATURE_VARIANT_A_EXTRA
+
+FEATURE_VARIANT_B
+FEATURE_VARIANT_B_EXTRA
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/test/binaryvariation/default.var	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,5 @@
+
+VARIANT default
+
+BUILD_INCLUDE	set		/epoc32/include/variant
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/test/binaryvariation/test.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,295 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# binary variation build test
+#
+# build a variant DLL and an invariant DLL and use them.
+
+use strict;
+use Test;
+use Digest::MD5;
+
+# how many tests do we plan to run?
+BEGIN { plan tests => 204 }
+
+# remember where we started
+use Cwd;
+my $cwd = getcwd();
+
+# change to the test data directory
+use File::Basename;
+my $dir = dirname($0);
+chdir($dir);
+print "# running in $dir\n";
+
+# create a local default.hrh, as it varies per OS version
+# (make it just include the product include file)
+my $epocroot = $ENV{'EPOCROOT'};
+my $include = $epocroot . "epoc32/include/variant";
+my $variant = $epocroot . "epoc32/tools/variant";
+
+my $cfg = $variant . "/variant.cfg";
+my $productInclude;
+
+open(VARCFG, "$cfg") or die("cannot read $cfg\n");
+while (<VARCFG>)
+{
+	$productInclude = "$1" if /epoc32.+?([^\\\/]+\.hrh)$/i;
+}
+close(VARCFG);
+die("no product include file in $cfg\n") unless ($productInclude);
+
+open(DEFHRH, ">default.hrh") or die("cannot write $dir/default.hrh\n");
+print(DEFHRH "#include <$productInclude>\n");
+print(DEFHRH "\n#define FEATURE_VARIANT_DEFAULT\n");
+close(DEFHRH);
+print("# testing against product $productInclude\n");
+
+# copy test files to EPOCROOT (make sure we do not destroy any valid
+# files that are already there and remember to clean up afterwards)
+#
+# /epoc32/include/variant/default.hrh
+# /epoc32/include/variant/variant_a.hrh
+# /epoc32/include/variant/variant_b.hrh
+# /epoc32/include/variant/a/variant_a_extra.hrh
+# /epoc32/include/variant/b/variant_b_extra.hrh
+# /epoc32/tools/variant/default.var
+# /epoc32/tools/variant/variant_a.var
+# /epoc32/tools/variant/variant_b.var
+# /epoc32/tools/variant/variant_c.var
+# /epoc32/include/variant/featurelists/bvtest.txt
+
+my @created = ("$include/default.hrh",
+			   "$include/variant_a.hrh",
+			   "$include/variant_b.hrh",
+			   "$include/a/variant_a_extra.hrh",
+			   "$include/b/variant_b_extra.hrh",
+			   "$variant/default.var",
+			   "$variant/variant_a.var",
+			   "$variant/variant_b.var",
+			   "$variant/variant_c.var",
+			   "$include/featurelists/bvtest.txt"
+			  );
+
+use File::Copy;
+my $file;
+foreach $file (@created)
+{
+	my $epocDir = dirname($file);
+	my $localFile = basename($file);
+
+	mkdir($epocDir) if (!-d $epocDir);
+	move($file, "$file.bak") if (-f $file);
+
+	print "# copy $localFile $file\n";
+	unlink $file;
+	copy($localFile, $file) or die "Failed copy: $!";
+}
+
+###############################################################################
+# THE TESTS                                                                   #
+###############################################################################
+
+# we need to test the ABIv1 and ABIv2 builds
+
+testABI("armv5");
+testABI("armv5_abiv1");
+
+###############################################################################
+# END OF TESTS                                                                #
+###############################################################################
+
+# delete test files and restore backed up files to their original state
+foreach $file (@created)
+{
+	if (-f "$file.bak")
+	{
+		move("$file.bak", $file);
+	}
+	else
+	{
+		unlink($file);
+	}
+}
+
+# change back to the starting directory
+chdir($cwd);
+
+# ALL DONE
+
+
+###############################################################################
+# SUBROUTINES                                                                 #
+###############################################################################
+
+sub testABI
+{
+	my $platform = shift;
+
+	# remove the binaries if they already exist
+	my $release = $epocroot . "epoc32/release/$platform";
+
+	my @binaries = (
+			    	"$release/udeb/InvariantStaticDLL.dll",
+			    	"$release/urel/InvariantStaticDLL.dll",
+					);
+
+	foreach (@binaries)
+	{
+		unlink($_);
+	}
+
+	cleanVariants("$release/udeb", "VariantStaticDLL.dll");
+	cleanVariants("$release/urel", "VariantStaticDLL.dll");
+	cleanVariants("$release/udeb", "UseStaticDLL.exe");
+	cleanVariants("$release/urel", "UseStaticDLL.exe");
+
+	# we cannot test the command return values because they are always 0
+	system("bldmake bldfiles");
+	
+	# clean out everything so makefiles have to be recreated
+	system("abld reallyclean $platform.variant_a >nul 2>&1");
+	system("abld reallyclean $platform.variant_b >nul 2>&1");
+	system("abld reallyclean $platform.variant_c >nul 2>&1");
+	system("abld reallyclean $platform >nul 2>&1");
+	
+	# Build variants first to ensure the default makefile is created for invariant dlls
+	system("abld build $platform.variant_a");
+	system("abld build $platform.variant_b");
+	system("abld build $platform.variant_c");
+	system("abld build $platform");
+
+	# test for the existence of each invariant binary file
+	foreach (@binaries)
+	{
+		print "# checking $_\n";
+		ok(-f $_);
+	}
+
+	# test for the existence of each variant binary file
+	checkVariants("$release/udeb/VariantStaticDLL.dll");
+	checkVariants("$release/urel/VariantStaticDLL.dll");
+	checkVariants("$release/udeb/UseStaticDLL.exe");
+	checkVariants("$release/urel/UseStaticDLL.exe");
+}
+
+sub cleanVariants
+{
+	my $dir = shift;
+	my $name = shift;
+
+	if (opendir(DIR, $dir))
+	{
+		while (my $file = readdir(DIR))
+		{
+			if ($file =~ /^$name/)
+			{
+				print "removing $dir/$file\n";
+				unlink("$dir/$file");
+			}
+		}
+		closedir(DIR);
+	}
+	else
+	{
+		print "cannot clean $dir/$name*\n";
+	}
+}
+
+sub checkVariants
+{
+	my $root = shift;
+	
+	$root =~ s/\.([^\.]+)$//;
+	my $ext = $1;
+	
+	my $vmap = "$root.$ext.vmap";
+
+	# there should be a VMAP file
+	print "# checking $vmap\n";
+	ok(-f $vmap);
+
+	my $hashDefault = "0";
+	my $hashVariantA = "0";
+	my $hashVariantB = "0";
+	my $hashVariantC = "0";
+
+	# Variables to hold feature macro values
+	my ( $featDefault, $featVariantA, $featVariantB, $featVariantC );
+	
+	if (open(VMAP, $vmap))
+	{
+		while (<VMAP>)
+		{
+			if (/([0-9a-f]{32})\s+(\S+)\s(\S+)/i)
+			{
+				my $var = lc($2);
+				
+				# Store the data for later
+				( $hashDefault, $featDefault ) = ( $1, $3) if ($var eq 'default');
+				( $hashVariantA, $featVariantA ) = ( $1, $3) if ($var eq 'variant_a');
+				( $hashVariantB, $featVariantB ) = ( $1, $3) if ($var eq 'variant_b');
+				( $hashVariantC, $featVariantC ) = ( $1, $3) if ($var eq 'variant_c');
+			}
+		}
+		close(VMAP);
+	}
+
+	# the three hashes Default,A,B should be valid and different
+	ok($hashDefault);
+	ok($hashVariantA);
+	ok($hashVariantB);
+
+	ok($hashDefault ne $hashVariantA);
+	ok($hashDefault ne $hashVariantB);
+	ok($hashVariantA ne $hashVariantB);
+
+	# the three feature lists for Default,A,B should be valid and different
+	ok($featDefault);
+	ok($featVariantA);
+	ok($featVariantB);
+
+	ok($featDefault ne $featVariantA);
+	ok($featDefault ne $featVariantB);
+	ok($featVariantA ne $featVariantB);
+
+	# Check the feature lists are correct
+	ok($featDefault eq 'FEATURE_VARIANT_A=undefined,FEATURE_VARIANT_B=undefined');
+	ok($featVariantA eq 'FEATURE_VARIANT_A=defined,FEATURE_VARIANT_B=undefined');
+	ok($featVariantB eq 'FEATURE_VARIANT_A=undefined,FEATURE_VARIANT_B=\'123\'');
+	
+	# Check the hash and feature lists match
+	ok($hashDefault eq Digest::MD5::md5_hex($featDefault));
+	ok($hashVariantA eq Digest::MD5::md5_hex($featVariantA));
+	ok($hashVariantB eq Digest::MD5::md5_hex($featVariantB));
+	
+	# hashes A and C should be the same
+	ok($hashVariantA, $hashVariantC);
+
+	# feature lists for A and C should be the same
+	ok($featVariantA, $featVariantC);
+	
+	# the corresponding binaries should exist
+	print("# checking $root.$hashDefault.$ext\n");
+	ok(-f "$root.$hashDefault.$ext");
+
+	print("# checking $root.$hashVariantA.$ext\n");
+	ok(-f "$root.$hashVariantA.$ext");
+
+	print("# checking $root.$hashVariantB.$ext\n");
+	ok(-f "$root.$hashVariantB.$ext");
+
+	print("# checking $root.$hashVariantC.$ext\n");
+	ok(-f "$root.$hashVariantC.$ext");
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/test/binaryvariation/variant_a.hrh	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,20 @@
+// Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#include <default.hrh>
+#include <variant_a_extra.hrh>
+
+#define FEATURE_VARIANT_A
+#undef FEATURE_VARIANT_DEFAULT
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/test/binaryvariation/variant_a.var	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,6 @@
+
+VARIANT variant_a
+EXTENDS default
+
+BUILD_INCLUDE	append	/epoc32/include/variant/a
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/test/binaryvariation/variant_a_extra.hrh	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,17 @@
+// Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#define FEATURE_VARIANT_A_EXTRA
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/test/binaryvariation/variant_b.hrh	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,20 @@
+// Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#include <default.hrh>
+#include <variant_b_extra.hrh>
+
+#define FEATURE_VARIANT_B 123
+#undef FEATURE_VARIANT_DEFAULT
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/test/binaryvariation/variant_b.var	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,5 @@
+
+VARIANT variant_b
+EXTENDS default
+
+BUILD_INCLUDE	append	/epoc32/include/variant/b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/test/binaryvariation/variant_b_extra.hrh	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,17 @@
+// Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#define FEATURE_VARIANT_B_EXTRA
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/test/binaryvariation/variant_c.var	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,7 @@
+
+VARIANT variant_c
+EXTENDS default
+VARIANT_HRH /epoc32/include/variant/variant_a.hrh
+
+BUILD_INCLUDE	append	/epoc32/include/variant/a
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/test/extensions/my_testing.01	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,3 @@
+
+this is not really a DLL...
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/test/extensions/test.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,86 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# template extension makefile test
+#
+#
+
+use strict;
+use Test;
+
+# how many tests do we plan to run?
+BEGIN { plan tests => 6 }
+
+# remember where we started
+use Cwd;
+my $cwd = getcwd();
+
+# change to the test data directory
+use File::Basename;
+my $dir = dirname($0);
+chdir($dir);
+print "# running in $dir\n";
+
+my $epocroot = $ENV{'EPOCROOT'};
+
+###############################################################################
+# THE TESTS                                                                   #
+###############################################################################
+
+# check base/copy_default in a [non] feature variant world
+my $mk = "../../extension/base/copy_default.mk";
+my $name = "my_testing";
+my $path = "${epocroot}epoc32/release/armv5/udeb/$name";
+my $vars = "SHELL=cmd PLATFORM_PATH=armv5 CFG_PATH=udeb SOURCES=$name.01 TARGET=$name.loc";
+
+use File::Copy;
+copy("$name.01", "$path.01");		# no variants
+unlink("$path.loc");
+
+system("make -f $mk $vars BLD");
+system("make -f $mk $vars RELEASABLES");
+
+print "# checking $path.loc\n";
+ok(-f "$path.loc");
+
+unlink("$path.01");
+system("make -f $mk $vars CLEAN");
+ok(! -f "$path.loc");
+
+my $v1 = "11111111101111111110111111111011";	# variant
+my $v2 = "22222222202222222220222222222022";	# variant
+copy("$name.01", "$path.$v1.01");
+copy("$name.01", "$path.$v2.01");
+
+system("make -f $mk $vars BLD");
+system("make -f $mk $vars RELEASABLES");
+
+print "# checking $path.$v1.loc\n";
+ok(-f "$path.$v1.loc");
+print "# checking $path.$v2.loc\n";
+ok(-f "$path.$v2.loc");
+
+unlink("$path.$v1.01");
+unlink("$path.$v2.01");
+
+system("make -f $mk $vars CLEAN");
+ok(! -f "$path.$v1.loc");
+ok(! -f "$path.$v2.loc");
+
+###############################################################################
+# END OF TESTS                                                                #
+###############################################################################
+
+# change back to the starting directory
+chdir($cwd);
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/test/helloworld/Bld.inf	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,20 @@
+// Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Component description file
+// 
+//
+
+PRJ_MMPFILES
+
+HelloWorld.mmp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/test/helloworld/CommonFramework.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,61 @@
+// Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+
+#ifndef __CommonFramework_H
+#define __CommonFramework_H
+
+#include <e32base.h>
+#include <e32cons.h>
+
+_LIT(KTxtEPOC32EX,"EXAMPLES");
+_LIT(KTxtExampleCode,"Symbian OS Example Code");
+_LIT(KFormatFailed,"failed: leave code=%d");
+_LIT(KTxtOK,"ok");
+_LIT(KTxtPressAnyKey," [press any key]");
+
+// public
+LOCAL_D CConsoleBase* console; // write all your messages to this
+LOCAL_C void doExampleL(); // code this function for the real example
+
+// private
+LOCAL_C void callExampleL(); // initialize with cleanup stack, then do example
+
+GLDEF_C TInt E32Main() // main function called by E32
+    {
+	__UHEAP_MARK;
+	CTrapCleanup* cleanup=CTrapCleanup::New(); // get clean-up stack
+	TRAPD(error,callExampleL()); // more initialization, then do example
+	__ASSERT_ALWAYS(!error,User::Panic(KTxtEPOC32EX,error));
+	delete cleanup; // destroy clean-up stack
+	__UHEAP_MARKEND;
+	return 0; // and return
+    }
+
+LOCAL_C void callExampleL() // initialize and call example code under cleanup stack
+    {
+	console=Console::NewL(KTxtExampleCode,TSize(KConsFullScreen,KConsFullScreen));
+	CleanupStack::PushL(console);
+	TRAPD(error,doExampleL()); // perform example function
+	if (error)
+		console->Printf(KFormatFailed, error);
+	else
+		console->Printf(KTxtOK);
+	console->Printf(KTxtPressAnyKey);
+	console->Getch(); // get and ignore character
+	CleanupStack::PopAndDestroy(); // close console
+    }
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/test/helloworld/HelloWorld.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,23 @@
+// Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#include "CommonFramework.h"
+
+// do the example
+LOCAL_C void doExampleL()
+    {
+	_LIT(KHelloWorldText,"Hello world!\n");
+	console->Printf(KHelloWorldText);
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/test/helloworld/HelloWorld.mmp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,30 @@
+// Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// using relative paths for sourcepath and user includes
+// 
+//
+
+TARGET        HelloWorld.exe
+TARGETTYPE    exe
+UID           0xE8000047
+VENDORID      0x70000001
+
+SOURCEPATH    .
+SOURCE        HelloWorld.cpp
+
+USERINCLUDE   .
+OS_LAYER_SYSTEMINCLUDE
+
+LIBRARY       euser.lib
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/test/helloworld/test.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,68 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# hello world build test
+#
+# If we cannot build this then we probably cannot build anything...
+
+use strict;
+use Test;
+
+# how many tests do we plan to run?
+BEGIN { plan tests => 4 }
+
+# remember where we started
+use Cwd;
+my $cwd = getcwd();
+
+# change to the test data directory
+use File::Basename;
+my $dir = dirname($0);
+chdir($dir);
+print "# running in $dir\n";
+
+# remove the binaries if they already exist
+my $release = $ENV{'EPOCROOT'} . "epoc32/release";
+my @binaries = ("$release/winscw/udeb/HelloWorld.exe",
+			    "$release/winscw/urel/HelloWorld.exe",
+				"$release/armv5/udeb/HelloWorld.exe",
+				"$release/armv5/urel/HelloWorld.exe"
+			   );
+
+foreach (@binaries)
+{
+	unlink($_);
+}
+
+###############################################################################
+# THE TESTS                                                                   #
+###############################################################################
+
+# we cannot test the command return values because they are always 0
+system("bldmake bldfiles");
+system("abld build");
+
+# test for the existence of each binary file
+foreach (@binaries)
+{
+	print "# checking $_\n";
+	ok(-f $_);
+}
+
+###############################################################################
+# END OF TESTS                                                                #
+###############################################################################
+
+# change back to the starting directory
+chdir($cwd);
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/test/smoketest.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,34 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# run smoke tests for the buildsystem
+#
+# each test should use the Test module
+#
+# Failing tests can be re-run individually in their own folder
+# if you need more detailed output to determine the fault.
+
+use strict;
+use Test::Harness;
+$Test::Harness::Verbose = 1;
+
+# a list of all the tests.
+my @all = ( 
+'helloworld/test.pl' ,
+'binaryvariation/test.pl' ,
+'extensions/test.pl'
+);
+
+runtests(@all);
+exit 0;
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/tools/buildloggers/group/build.mk	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,36 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+SRCDIR = ..\src
+JARDIR = ..\..\..\bin\java
+PKGDIR = com\symbian\ant
+JAVAC = $(JAVA_HOME)\bin\javac -cp $(ANT_HOME)\lib\ant.jar
+
+JARFILE = $(JARDIR)\symbianant.jar
+
+ALL: $(JARFILE)
+
+$(SRCDIR)\$(PKGDIR)\AbldWhatLogger.class: $(SRCDIR)\$(PKGDIR)\AbldWhatLogger.java
+	$(JAVAC) $<
+	
+$(SRCDIR)\$(PKGDIR)\ScanLogger.class: $(SRCDIR)\$(PKGDIR)\ScanLogger.java
+	$(JAVAC) $<
+	
+$(JARFILE): $(SRCDIR)\$(PKGDIR)\AbldWhatLogger.class $(SRCDIR)\$(PKGDIR)\ScanLogger.class
+	$(JAVA_HOME)\bin\jar -cf $@ -C $(SRCDIR) $(PKGDIR)\AbldWhatLogger.class -C $(SRCDIR) $(PKGDIR)\ScanLogger.class
+
+CLEAN:
+	-del $(SRCDIR)\$(PKGDIR)\*.class
+	-del $(JARFILE)
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/tools/buildloggers/src/com/symbian/ant/AbldWhatLogger.java	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,37 @@
+// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+package com.symbian.ant;
+
+import java.io.PrintStream;
+import org.apache.tools.ant.DefaultLogger;
+
+public class AbldWhatLogger extends DefaultLogger {
+	
+	protected void printMessage(String aMessage, PrintStream aPrintStream, int aPrioritary) {  
+		if (aMessage.indexOf("[echo]") >= 0) {
+			// remove "[echo]"
+			aMessage = aMessage.replace("[echo]", "");
+		} else {
+			aMessage = "";
+		}
+
+		// remove drive letter
+		aMessage = aMessage.replaceAll("[A-Z]:", "");
+
+		super.printMessage(aMessage, aPrintStream, aPrioritary);
+	}
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/buildsystem/tools/buildloggers/src/com/symbian/ant/ScanLogger.java	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,86 @@
+// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+package com.symbian.ant;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.StringReader;
+
+import org.apache.tools.ant.BuildEvent;
+import org.apache.tools.ant.DefaultLogger;
+import org.apache.tools.ant.Project;
+import org.apache.tools.ant.util.StringUtils;
+
+public class ScanLogger extends DefaultLogger {
+
+    /**
+     * Logs a message, if the priority is suitable.
+     * In non-emacs mode, task level messages are prefixed by the
+     * task name which is right-justified.
+     *
+     * @param event A BuildEvent containing message information.
+     *              Must not be <code>null</code>.
+     */
+    public void messageLogged(BuildEvent event) {
+        int priority = event.getPriority();
+        // Filter out messages based on priority
+        if (priority <= msgOutputLevel) {
+
+            StringBuffer message = new StringBuffer();
+            if (event.getTask() != null && !emacsMode) {
+                // Print out the name of the task if we're in one
+                String name = event.getTask().getTaskName();
+                String label = "[" + name + "] ";
+                int size = LEFT_COLUMN_SIZE - label.length();
+                StringBuffer tmp = new StringBuffer();
+                for (int i = 0; i < size; i++) {
+                    tmp.append(" ");
+                }
+                tmp.append(label);
+                label = tmp.toString();
+
+                try {
+                    BufferedReader r =
+                        new BufferedReader(
+                            new StringReader(event.getMessage()));
+                    String line = r.readLine();
+                    boolean first = true;
+                    while (line != null) {
+                        if (!first) {
+                            message.append(StringUtils.LINE_SEP);
+                        }
+                        first = false;
+                        message.append(label).append(line);
+                        line = r.readLine();
+                    }
+                } catch (IOException e) {
+                    // shouldn't be possible
+                    message.append("ERROR:").append(label).append(event.getMessage());
+                }
+            } else {
+                message.append(event.getMessage());
+            }
+
+            String msg = message.toString();
+            if (priority != Project.MSG_ERR) {
+                printMessage(msg, out, priority);
+            } else {
+                printMessage("ERROR:" + msg, err, priority);
+            }
+            log(msg);
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/bin2coff/bin2coff.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,149 @@
+// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Add a simple coff header to a binary file
+// optionally strip off the first 256 bytes
+// This is primarily for generating an image
+// file that can be downloaded via the ether
+// to cogent using the SmartFirmWare boot rom
+// 
+//
+
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <io.h>
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+
+// little error functionet
+void error(const char* p)
+{
+	fprintf(stderr, "%s\n", p);
+	exit(1);
+}
+
+// little usage functionet
+void usage(const char* p)
+{
+	fprintf(stderr, "%s\n", p);
+	exit(EXIT_FAILURE);
+}
+
+
+int main(int argc, char* argv[])
+{
+	// check for usage
+	if (argc < 3 || argc > 4)
+		{
+		usage("Usage: bin2coff infile outfile nostrip\nOption nostrip: don't strip off the first 256 bytes");
+		}
+
+	// make sure we are not operating on only one file
+	if (!strcmp(argv[1], argv[2]))
+		{
+		usage("Usage: bin2coff must specify different input and output files");
+		}
+
+	// try to open the input file
+	FILE *pInFile;
+	if((pInFile  = fopen(argv[1], "rb" )) == NULL)
+   		{
+   		error("Cannot open input file");
+   		}
+
+	// open output file
+	FILE *pOutFile;
+	if((pOutFile = fopen(argv[2], "wb") ) == NULL)
+		{
+   		error("Cannot open output file");
+		}
+
+	// strip the 256 long header?
+	// ok, so it's simple, so what
+	bool stripheader = (argc == 3);
+
+	// how big is the input file
+	struct stat filelength;
+	stat(argv[1], &filelength);
+	unsigned long fsize = filelength.st_size;
+	if (stripheader)
+		{
+		fsize -= 256;
+		}
+
+	// write out the coff header to the new file
+	// somewhere to put a simple coff header
+	unsigned char coffhead[0x58] = {0};  // zero all the elements
+
+	// fill in the constant bits
+	// this is supposed to be simple, remember
+	coffhead[1] = 0x0a;
+	coffhead[2] = 0x01;
+	coffhead[0x10] = 0x1c;
+	coffhead[0x12] = 0x0f;
+	coffhead[0x13] = 0xa1;
+	coffhead[0x14] = 0x0b;
+	coffhead[0x15] = 0x01;
+	coffhead[0x26] = 0x40; // entry point 0x00400000
+	coffhead[0x2a] = 0x40;
+	coffhead[0x30] = 0x2e;
+	coffhead[0x31] = 0x74;
+	coffhead[0x32] = 0x65;
+	coffhead[0x33] = 0x78;
+	coffhead[0x34] = 0x74;
+	coffhead[0x3a] = 0x40;
+	coffhead[0x3e] = 0x40;
+	coffhead[0x44] = 0x58;
+	coffhead[0x54] = 0x20;
+
+	// now fill in the text segment size
+	*(int *) (&coffhead[0x18]) = fsize;
+	*(int *) (&coffhead[0x40]) = fsize;
+
+	// write out the new file
+	// first the header
+	int numwritten=0;
+	numwritten = fwrite(coffhead, sizeof(char), 0x58, pOutFile);
+	if (numwritten < 0x58)
+		{
+   		error("The number of items written is less than 0x58");
+		}
+
+	// now the rest of the file
+	if (stripheader)
+		{
+		fpos_t filePositionIndicator = 0x100;
+		if (fsetpos(pInFile, &filePositionIndicator) !=0)
+			{
+			error("The file is not accessible ");
+			}
+		}
+	
+	static const int buffsize = 1024;
+	unsigned char fbuff[buffsize];
+	while (!feof(pInFile))
+	        {
+			int nread = fread(fbuff,sizeof(unsigned char), sizeof(fbuff), pInFile);
+			int nwritten = fwrite(fbuff, sizeof(unsigned char), nread, pOutFile);
+			if (nwritten < nread)
+		        {
+				error("The number of items written is less than number of items read");
+				}
+			}
+   
+	fclose(pOutFile);
+	fclose(pInFile);
+
+	return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/checklib/library/library.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,260 @@
+// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Class for reading libraries in Unix "ar" format.
+// 
+//
+
+#include "library.h"
+
+#include "misc/endian.h" // For misc::reverse_bytes()
+
+#include <fstream>
+#include <stdexcept>
+#include <cassert>
+#include <iostream>
+#include <iomanip>
+#include <cstdlib>
+
+namespace
+{
+    // An ar library begins with this string.
+    const char MAGIC[] = "!<arch>\n";
+
+    // The size of an object header.
+    const int HEADER_LENGTH = 60;
+
+    // Each object *header* has this trailer.
+    const char TRAILER[] = "`\n";
+}
+
+
+Library::Library(const char a_file_name[])
+{
+    std::ifstream file(a_file_name, std::ios::in | std::ios::binary | std::ios::ate);
+
+    if ( ! file.is_open() )
+    {
+        throw std::runtime_error("couldn't open file");
+    }
+
+    unsigned size  = file.tellg();
+    m_mem_p = new char[size];
+
+    file.seekg(0, std::ios::beg);
+    file.read( const_cast<char*>(m_mem_p), size );
+
+    file.close();
+
+    const char* p1 = m_mem_p;
+    const char* p2 = p1 + size - 1;
+
+    // Eat all meta objects.
+
+    p1 = _eat_ar_header(p1, p2);
+    p1 = _eat_sym_table(p1, p2);
+    p1 = _eat_junk_objs(p1, p2);
+
+    m_first_p = p1; // Pointer to the start of the first "real" object.
+    m_last_p = p2;  // Pointer to end of the last real object.
+}
+
+Library::~Library()
+{
+    delete[] m_mem_p;
+}
+
+bool Library::contains_symbol(const char a_sym_name[]) const
+{
+    std::vector<const char*>::const_iterator p = m_symbols.begin();
+    std::vector<const char*>::const_iterator end_p = m_symbols.end();
+
+    for ( ; p != end_p; ++p)
+    {
+        if ( std::strcmp(a_sym_name, *p) == 0 ) return 1;
+    }
+
+    return 0;
+}
+
+const std::vector< std::pair<const char*, const char*> >* Library::get_objects() const
+{
+    if ( m_objects.empty() )
+    {
+        const char* p = m_first_p;
+
+        unsigned long size;
+
+        while (p < m_last_p)
+        {
+            p = _eat_obj_header(p, m_last_p, &size);
+
+            m_objects.push_back( std::pair<const char*, const char*>(p, p + size) );
+
+            p += size;
+        }
+    }
+
+    return &m_objects;
+}
+
+const char* Library::_eat_ar_header(const char* p1, const char* p2) const
+{
+    int magic_length = std::strlen(MAGIC);
+
+    if (p2 - p1 + 1 < magic_length)
+    {
+        throw std::runtime_error("library too small for magic word");
+    }
+
+    if ( std::strncmp(p1, MAGIC, magic_length) != 0 )
+    {
+        throw std::runtime_error("bad magic; this is not a valid library");
+    }
+
+    return (p1 + magic_length);
+}
+
+const char* Library::_eat_sym_table(const char* a_first_p, const char* a_last_p) const
+{
+    unsigned long obj_size;
+
+    const char* p = _eat_obj_header(a_first_p, a_last_p, &obj_size, "/               "); // Read the header of the symbol table.
+
+    if (p == a_first_p)
+    {
+        throw std::runtime_error("no library symbol table found");
+    }
+
+    const char* obj_end_p = p + obj_size;
+
+    // Check that we're 4-byte aligned.
+    assert( (reinterpret_cast<int>(p) & 0x3) == 0 );
+
+    uint32_t nr_of_syms = *reinterpret_cast<const int*>(p);
+    nr_of_syms = misc::reverse_bytes(nr_of_syms);
+
+    p += sizeof(nr_of_syms);            // Go past the integer we just read.
+    p += nr_of_syms * sizeof(uint32_t); // Go past all the offsets.
+
+    unsigned n = 0;
+
+    while (n < nr_of_syms && p < a_last_p)
+    {
+        m_symbols.push_back(p);
+
+        p += std::strlen(p) + 1; 
+
+        n++;
+    }
+
+    if (n != nr_of_syms)
+    {
+        throw std::runtime_error("inconsistent symbol table");
+    }
+
+    if (p > obj_end_p)
+    {
+        throw std::runtime_error("over-running symbol table");
+    }
+
+    return obj_end_p;
+}
+
+const char* Library::_eat_junk_objs(const char* p1, const char* p2) const
+{
+    unsigned long obj_size;
+    const char* p;
+
+    p = _eat_obj_header(p1, p2, &obj_size, "//              ");
+
+    if (p > p1)
+    {
+        p1 = p + obj_size;
+    }
+
+    p = _eat_obj_header(p1, p2, &obj_size, "/               ");
+
+    if (p > p1)
+    {
+        p1 = p + obj_size;
+    }
+
+    p = _eat_obj_header(p1, p2, &obj_size, "//              ");
+
+    if (p > p1)
+    {
+        p1 = p + obj_size;
+    }
+
+    return p1;
+}
+
+const char* Library::_eat_obj_header(const char* a_first_p, const char* a_last_p, unsigned long* a_size_p, const char* a_name) const
+{
+    const char* p = a_first_p;
+
+    // The header is 2-byte aligned, so ignore the previous object's trailing
+    // padding byte.
+    if ( reinterpret_cast<int>(p) & 1)
+    {
+        p++;
+    }
+
+    if (a_last_p - p + 1 < HEADER_LENGTH)
+    {
+        throw std::runtime_error("no space for library object header");
+    }
+
+    // At the moment We can only handle short names. This is enough for identifying
+    // the meta objects "/" (symbol table) and "//" (object table).
+
+    if ( a_name && std::strncmp(p, a_name, std::strlen(a_name)) != 0 )
+    {
+        return a_first_p;
+    }
+
+    p += 16; // Ignore the name field.
+    p += 12; // Ignore the modification time.
+    p +=  6; // Ignore the group ID.
+    p +=  6; // Ignore the user ID.
+    p +=  8; // Ignore the file mode.
+
+    // Read the object size.
+
+    if (a_size_p)
+    {
+        char* tail_p;
+        *a_size_p = std::strtoul(p, &tail_p, 0);
+
+        if (tail_p == p || tail_p > a_last_p + 1)
+        {
+            throw std::runtime_error("could not read library object size");
+        }
+    }
+
+    p += 10; // Jump over the object size field.
+
+    // Verify that the header trailer is correct.
+
+    int trailer_length = std::strlen(TRAILER);
+
+    if ( std::strncmp(p, TRAILER, trailer_length) != 0  )
+    {
+        throw std::runtime_error("incorrect library object header trailer");
+    }
+
+    return (p + trailer_length);
+}
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/checklib/library/library.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,53 @@
+// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Class for reading libraries in Unix "ar" format.
+// 
+//
+
+#ifndef LIBRARY_H
+#define LIBRARY_H
+
+#include <vector>
+#include <utility>
+
+
+class Library
+{
+public:
+    Library(const char a_file_name[]);
+    ~Library();
+public:
+    bool contains_symbol(const char[]) const;
+
+    const std::vector< std::pair<const char*, const char*> >* get_objects() const;
+private:
+    const char* _eat_ar_header(const char*, const char*) const;
+    const char* _eat_sym_table(const char*, const char*) const;
+    const char* _eat_junk_objs(const char*, const char*) const;
+
+    const char* _eat_obj_header(const char*, const char*, unsigned long*, const char* = 0) const;
+
+private:
+    const char* m_mem_p;
+
+    const char* m_first_p;
+    const char* m_last_p;
+
+    mutable std::vector<const char*> m_symbols;
+    mutable std::vector< std::pair<const char*, const char*> > m_objects;
+};
+
+
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/checklib/main.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,173 @@
+// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Entry point for the checklib utility.
+// 
+//
+
+#include "library/library.h" // For handling libraries of Unix "ar" format.
+#include "object/object.h"   // For handling (parts of) ELF and COFF object files.
+
+#include <string>
+#include <sstream>
+#include <iostream>
+#include <stdexcept>
+
+
+const char SELF_NAME[] = "checklib";
+
+// Describes what kind of library it is.
+enum libkind_t
+{
+    STDCPP, // Library should be compatible with Symbian C++.
+    SYMCPP  // Library should be compatible with standard C++ (Open Environment).
+};
+
+// Describes what kind of objects are in the library: ELF or COFF.
+typedef Object_factory::objkind_t objkind_t;
+
+void _usage_and_exit(int exit_code=EXIT_FAILURE);
+void _error_and_exit(const std::string&, int exit_code=EXIT_FAILURE);
+
+// These are the ::operator new symbols we are worried about.
+const char* NEW_NAMES[2][4] = {
+    {"_Znwj", "_Znaj", "_ZnwjRKSt9nothrow_t", "_ZnajRKSt9nothrow_t"}, // ELF
+    {"??2@YAPAXI@Z", "??_U@YAPAXI@Z", "??2@YAPAXIABUnothrow_t@std@@@Z", "??_U@YAPAXIABUnothrow_t@std@@@Z"} // COFF
+};
+
+// Checks whether the object files in the given library references any of the
+// ::operator new functions.
+bool _lib_ref_new(const Library&, objkind_t);
+
+
+int main(int argc, const char* argv[])
+{
+    // Do we have any standard module for handling the command-line interface? If
+    // not, see if we can start using getopt or Boost. 
+
+    if (argc < 4)
+    {
+        _usage_and_exit();
+    }
+
+    // Command-line options.
+    libkind_t opt_libkind;
+    objkind_t opt_objkind;
+
+    if ( std::strcmp(argv[1], "stdc++") == 0 )
+    {
+        opt_libkind = STDCPP;
+    }
+    else if ( std::strcmp(argv[1], "symc++") == 0 )
+    {
+        opt_libkind = SYMCPP;
+    }
+    else
+    {
+        _usage_and_exit();
+    }
+
+    if ( std::strcmp(argv[2], "--elf") == 0 )
+    {
+        opt_objkind = Object_factory::ELF;
+    }
+    else if ( std::strcmp(argv[2], "--coff") == 0 )
+    {
+        opt_objkind = Object_factory::COFF;
+    }
+    else
+    {
+        _usage_and_exit();
+    }
+
+    try
+    {
+        // Check each library that was given on the command-line.
+        for (int i = 3; i < argc; i++)
+        {
+            Library lib( argv[i] ); // May throw std::runtime_error.
+
+            // If the library has the tag, we know that it was built to be OE
+            // compatible, and vice versa.
+            bool lib_is_tagged = lib.contains_symbol("____symbian_stdcpp_mmviii");
+
+            // Handle the two only possible error cases:
+
+            if ( opt_libkind == STDCPP && !lib_is_tagged && _lib_ref_new(lib, opt_objkind) )
+            {
+                std::ostringstream err_msg;
+                err_msg << "library " << argv[i] <<  " is incompatible with standard C++";
+
+                _error_and_exit(err_msg.str());
+            }
+            else if ( opt_libkind == SYMCPP && lib_is_tagged && _lib_ref_new(lib, opt_objkind) )
+            {
+                std::ostringstream err_msg;
+                err_msg << "library " << argv[i] <<  " is incompatible with Symbian C++";
+
+                _error_and_exit(err_msg.str());
+            }
+        }
+    }
+    catch (std::runtime_error& e)
+    {
+        _error_and_exit( e.what() );
+    }
+
+    return 0;
+}
+
+void _error_and_exit(const std::string& a_msg, int a_exit_code)
+{
+    std::cerr << SELF_NAME << ": error: " << a_msg << "." << std::endl;
+    std::exit(a_exit_code);
+}
+
+void _usage_and_exit(int a_exit_code)
+{
+    using std::cout;
+    using std::endl;
+
+    cout << "usage: " << SELF_NAME << " stdc++ --elf|--coff <lib_list>\n"
+         << "       " << SELF_NAME << " symc++ --elf|--coff <lib_list>" << endl;
+
+    std::exit(a_exit_code);
+}
+
+bool _lib_ref_new(const Library& a_lib, objkind_t a_objkind)
+{
+    typedef std::vector< std::pair<const char*, const char*> > T;
+
+    const T* objects_p = a_lib.get_objects();
+
+    T::const_iterator p = objects_p->begin();
+    T::const_iterator end_p = objects_p->end();
+
+    // Iterate over all the objects ...
+    for (; p != end_p; ++p)
+    {
+        std::auto_ptr<Object> obj_p = Object_factory::create(a_objkind, p->first, p->second);
+
+        // ... And check for references to any ::operator new function.
+        for (unsigned i = 0; i < sizeof(NEW_NAMES[a_objkind]) / sizeof(NEW_NAMES[a_objkind][0]); i++)
+        {
+            if ( obj_p->is_undef(NEW_NAMES[a_objkind][i]) )
+            {
+                return 1;
+            }
+        }
+    }
+
+    return 0;
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/checklib/misc/endian.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,38 @@
+// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Some utility functions for converting between big and little endian.
+// 
+//
+
+#include "endian.h"
+
+
+uint32_t misc::reverse_bytes(uint32_t n)
+{
+    unsigned char b0 = (n >> 0*8) & 0xff;
+    unsigned char b1 = (n >> 1*8) & 0xff;
+    unsigned char b2 = (n >> 2*8) & 0xff;
+    unsigned char b3 = (n >> 3*8) & 0xff;
+
+    return (b0 << 3*8) | (b1 << 2*8) | (b2 << 1*8) | (b3 << 0*8);
+}
+
+uint16_t misc::reverse_bytes(uint16_t n)
+{
+    unsigned char b0 = (n >> 0*8) & 0xff;
+    unsigned char b1 = (n >> 1*8) & 0xff;
+
+    return (b0 << 1*8) | (b1 << 0*8);
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/checklib/misc/endian.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,32 @@
+// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Some utility functions for converting between big and little endian.
+// 
+//
+
+#ifndef ENDIAN_H
+#define ENDIAN_H
+
+#include <stdint.h> // For uint16_t and uint32_t.
+
+namespace misc
+{
+    // Big endian <-> little endian.
+    uint32_t reverse_bytes(uint32_t);
+    uint16_t reverse_bytes(uint16_t);
+}
+
+
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/checklib/object/coff/coff.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,51 @@
+// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#ifndef COFF_H
+#define COFF_H
+
+
+struct coff_file_header_t
+{
+    unsigned short magic;
+
+    unsigned short _junk1;
+    unsigned long  _junk2;
+
+    unsigned long  symtab;
+    unsigned long  nsyms;
+
+    unsigned short _junk3;
+    unsigned short _junk4;
+};
+
+struct coff_symentry_t
+{
+    unsigned long is_inline __attribute__((packed));
+    unsigned long offset    __attribute__((packed));
+    unsigned long _junk1    __attribute__((packed));
+    
+    short section;
+
+    unsigned short _junk2;
+
+    unsigned char  _junk3;
+    unsigned char  aux_count;
+};
+
+
+#endif
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/checklib/object/coff/coff_file_header.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,52 @@
+// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#include "coff_file_header.h"
+#include <stdexcept>
+#include <string>
+
+
+namespace coff
+{
+    File_header::File_header(const char* p1, const char* p2, bool a_pedantic)
+        : m_data( reinterpret_cast<const coff_file_header_t*>(p1) )
+    {
+        if ( unsigned(p2 - p1 + 1) < sizeof(coff_file_header_t) )
+        {
+            throw std::runtime_error("not a COFF object: the file is too small");
+        }
+
+        if (m_data->magic != 0x014c)
+        {
+            throw std::runtime_error("not a COFF object: bad magic");
+        }
+
+        if (a_pedantic) // Do some extra checks for correctness.
+        {
+            // ...
+        }
+    }
+
+    unsigned File_header::get_symtab_offset() const
+    {
+        return m_data->symtab;
+    }
+
+    unsigned File_header::get_symcount() const
+    {
+        return m_data->nsyms;
+    }
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/checklib/object/coff/coff_file_header.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,37 @@
+// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#ifndef COFF_FILE_HEADER_H
+#define COFF_FILE_HEADER_H
+
+#include "coff.h"
+
+
+namespace coff
+{
+    class File_header
+    {
+    public:
+        File_header(const char*, const char*, bool = 0);
+    public:
+        unsigned get_symtab_offset() const;
+        unsigned get_symcount() const;
+    private:
+        const coff_file_header_t* m_data;
+    };
+}
+
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/checklib/object/coff/coff_string_table.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,37 @@
+// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#include "coff_string_table.h"
+
+static const char NULL_STRING[] = "";
+
+namespace coff
+{
+    String_table::String_table(const char* p) : m_first_p(p)
+    {
+        m_size = *reinterpret_cast<const int*>(m_first_p);
+    }
+
+    const char* String_table::get_string(unsigned n) const
+    {
+        if (n < 4)
+        {
+            return NULL_STRING;
+        }
+
+        return (m_first_p + n);
+    }
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/checklib/object/coff/coff_string_table.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,36 @@
+// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#ifndef COFF_STRING_TABLE_H
+#define COFF_STRING_TABLE_H
+
+
+namespace coff
+{
+    class String_table
+    {
+    public:
+        String_table(const char*);
+
+        const char* get_string(unsigned) const;
+    private:
+        const char* m_first_p;
+        unsigned m_size;
+    };
+}
+
+
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/checklib/object/coff/coff_symbol.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,60 @@
+// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#include "coff_symbol.h"
+
+
+namespace coff
+{
+    Symbol::Symbol(const char* p1, const char* p2)
+        : m_data( reinterpret_cast<const coff_symentry_t*>(p1) )
+    {
+        if ( unsigned(p2 - p1 + 1) < sizeof(coff_symentry_t) )
+        {
+             //throw
+        }
+    }
+
+    unsigned Symbol::get_entrysize()
+    {
+        return sizeof(coff_symentry_t);
+    }
+
+    unsigned Symbol::get_name() const
+    {
+        // At the moment we can't handle inlined names. It shouldn't be necessary
+        // right now, though, as the mangled name of all ::operator new functions
+        // are more than eight characters long.
+        if (m_data->is_inline)
+        {
+            return 0;
+        }
+
+        return m_data->offset;
+    }
+
+    unsigned Symbol::get_section() const
+    {
+        return m_data->section;
+    }
+
+    unsigned Symbol::get_auxcount() const
+    {
+        return m_data->aux_count;
+    }
+
+}
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/checklib/object/coff/coff_symbol.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,41 @@
+// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#ifndef COFF_SYMBOL_H
+#define COFF_SYMBOL_H
+
+#include "coff.h"
+
+
+namespace coff
+{
+    class Symbol
+    {
+    public:
+        Symbol(const char*, const char*);
+    public:
+        static unsigned get_entrysize();
+
+        unsigned get_name() const;
+        unsigned get_section() const;
+        unsigned get_auxcount() const;
+    private:
+        const coff_symentry_t* m_data;
+    };
+}
+
+
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/checklib/object/coff_object.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,75 @@
+// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#include "object.h"
+
+#include "coff/coff_file_header.h"
+#include "coff/coff_symbol.h"
+#include "coff/coff_string_table.h"
+
+#include <algorithm>
+#include <functional>
+
+Coff_object::Coff_object(const char* p1, const char* p2)
+{
+    coff::File_header fh(p1, p2);
+
+    unsigned nr_of_syms = fh.get_symcount();
+    unsigned sym_size = coff::Symbol::get_entrysize();
+
+    // Pointer to the first entry in the symbol table.
+    p1 +=  fh.get_symtab_offset();
+
+    // The string table is locates directly after the symbol table.
+    coff::String_table strtab( p1 + nr_of_syms * sym_size);
+
+    // Iterate over the whole symbol table.
+    for (unsigned i = 0; i < nr_of_syms; i++, p1 += sym_size)
+    {
+        coff::Symbol s(p1, p2);
+
+        // A symbol can have auxiliary entries that follows it.
+        unsigned aux_count = s.get_auxcount();
+
+        p1 += sym_size * aux_count;
+        i += aux_count;
+
+        if ( s.get_section() == 0 ) // If symbol is undefined ...
+        {
+            m_undef_symbols.push_back( strtab.get_string( s.get_name() ) );
+        }
+    }
+}
+
+Coff_object::~Coff_object() {}
+
+bool Coff_object::is_undef(const char a_sym[]) const
+{
+    using std::find_if;
+    using std::not1;
+    using std::bind2nd;
+    using std::ptr_fun;
+    using std::strcmp;
+
+    typedef std::vector<const char*> T;
+
+    T::const_iterator beg_p = m_undef_symbols.begin();
+    T::const_iterator end_p = m_undef_symbols.end();
+
+    T::const_iterator pos = find_if( beg_p, end_p, not1(bind2nd( ptr_fun(strcmp), a_sym)) );
+
+    return (pos != end_p);
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/checklib/object/elf/elf_file_header.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,182 @@
+// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#include "elf_file_header.h"
+#include <stdexcept>
+#include <string>
+
+
+namespace elf
+{
+    File_header::File_header(const char* p1, const char* p2, bool a_pedantic)
+        : m_data( reinterpret_cast<const Elf32_Ehdr*>(p1) )
+    {
+        if ( p1 + sizeof(Elf32_Ehdr) > p2 )
+        {
+            throw std::runtime_error("not an ELF object; file too small");
+        }
+
+        uint8_t m0 = m_data->e_ident[0];
+        uint8_t m1 = m_data->e_ident[1];
+        uint8_t m2 = m_data->e_ident[2];
+        uint8_t m3 = m_data->e_ident[3];
+
+        if (m0 != 0x7f || m1 != 'E' || m2 != 'L' || m3 != 'F')
+        {
+            throw std::runtime_error("not an ELF object; bad magic");
+        }
+
+        if (a_pedantic) // Do some extra checks for correctness.
+        {
+            //if (m_data->e_ident[4] != 1)
+            //{
+            //    throw std::runtime_error("invalid class; this program can only handle 32-bit objects");
+            //}
+
+            //if (m_data->e_ident[5] != 1)
+            //{
+            //    throw std::runtime_error("invalid encoding; this program can only handle little-endian objects");
+            //}
+
+            //for (unsigned i = EI_PAD; i < sizeof(m_data->e_ident); ++i)
+            //{
+            //    if (m_data->e_ident[i] != 0)
+            //    {
+            //        throw std::runtime_error("non-zero pading");
+            //    }
+            //}
+
+            //if (m_data->e_type == ET_NONE)
+            //{
+            //    throw std::runtime_error("invalid type");
+            //}
+
+            //if (m_data->e_phoff == 0 && m_data->e_shoff == 0)
+            //{
+            //    throw std::runtime_error("no program headers and no section headers");
+            //}
+
+            //if ( m_data->e_phoff + m_data->e_phentsize * m_data->e_phnum > p2 - p1 + 1 )
+            //{
+            //    throw std::runtime_error("file too small for header table");
+            //}
+
+            //if (m_data->e_shoff + m_data->e_shentsize * m_data->e_shnum > a_mem.get_size() )
+            //{
+            //    throw std::runtime_error("file too small for header table");
+            //}
+
+            //if ( m_data->e_shentsize != sizeof(Elf32_Shdr) )
+            //{
+            //    throw std::runtime_error("e_shentsize doesn't match the actual size of the type");
+            //}
+
+            //if (m_data->e_shoff > 0 && m_data->e_shnum == 0)
+            //{
+            //    throw std::runtime_error("this program can't handle the combination e_shoff > 0 and e_shnum == 0");
+            //}
+
+            //if (m_data->e_shstrndx >= 0xff00)
+            //{
+            //    throw std::runtime_error("this program can only handle e_shstrndx < 0xff00");
+            //}
+
+        } // if (a_pedantic)
+    }
+
+    // The following functions are obvious candidates for inlining ...
+
+    // e_type
+
+    bool File_header::is_type_rel() const
+    {
+        return (m_data->e_type == ET_REL);
+    }
+    bool File_header::is_type_exec() const
+    {
+        return (m_data->e_type == ET_EXEC);
+    }
+    bool File_header::is_type_dyn() const
+    {
+        return (m_data->e_type == ET_DYN);
+    }
+
+    // e_machine
+
+    bool File_header::is_machine_none() const
+    {
+        return (m_data->e_machine == EM_NONE);
+    }
+    bool File_header::is_machine_arm() const
+    {
+        return (m_data->e_machine == EM_ARM);
+    }
+    bool File_header::is_machine_386() const
+    {
+        return (m_data->e_machine == EM_386);
+    }
+
+    uint32_t File_header::get_entry() const
+    {
+        return m_data->e_entry;
+    }
+
+    uint32_t File_header::get_phoff() const
+    {
+        return m_data->e_phoff;
+    }
+
+    uint32_t File_header::get_shoff() const
+    {
+        return m_data->e_shoff;
+    }
+
+    uint32_t File_header::get_flags() const
+    {
+        return m_data->e_flags;
+    }
+
+    uint16_t File_header::get_ehsize() const
+    {
+        return m_data->e_ehsize;
+    }
+
+    uint16_t File_header::get_phentsize() const
+    {
+        return m_data->e_phentsize;
+    }
+
+    uint16_t File_header::get_phnum() const
+    {
+        return m_data->e_phnum;
+    }
+
+    uint16_t File_header::get_shentsize() const
+    {
+        return m_data->e_shentsize;
+    }
+
+    uint16_t File_header::get_shnum() const
+    {
+        return m_data->e_shnum;
+    }
+
+    uint16_t File_header::get_shstrndx() const
+    {
+        return m_data->e_shstrndx;
+    }
+
+} // namespace elf
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/checklib/object/elf/elf_file_header.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,66 @@
+// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#ifndef ELF_FILE_HEADER_H
+#define ELF_FILE_HEADER_H
+
+#include "elftools/inc/elfdefs.h"
+#include <stdint.h>
+
+
+namespace elf
+{
+    class File_header
+    {
+    public:
+        File_header(const char*, const char*, bool = 0);
+    public:
+        // e_ident[]
+        // No functions are defined; they shouldn't be needed.
+
+        // e_type
+        bool is_type_rel() const;
+        bool is_type_exec() const;
+        bool is_type_dyn() const;
+        
+        // e_machine
+        bool is_machine_none() const;
+        bool is_machine_arm() const;
+        bool is_machine_386() const;
+
+        // e_version
+        // No functions necessary.
+
+        uint32_t get_entry() const;
+        uint32_t get_phoff() const;
+        uint32_t get_shoff() const;
+        uint32_t get_flags() const;
+        uint16_t get_ehsize() const;
+        uint16_t get_phentsize() const;
+        uint16_t get_phnum() const;
+        uint16_t get_shentsize() const;
+        uint16_t get_shnum() const;
+        uint16_t get_shstrndx() const;
+
+    private:
+        const Elf32_Ehdr* m_data;
+    };
+}
+
+
+
+
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/checklib/object/elf/elf_section_header.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,138 @@
+// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#include "elf_section_header.h"
+
+
+namespace elf
+{
+    Section_header::Section_header(const char* p1, const char* p2)
+        : m_data( reinterpret_cast<const Elf32_Shdr*>(p1) )
+    {
+        // This could be useful for future error checking.
+        (void) p2;
+
+        //--if (m_data->sh_type != SHT_NOBITS)
+        //--{
+        //--    if (m_data->sh_offset + m_data->sh_size > a_mem.get_size() )
+        //--    {
+        //--        throw std::runtime_error("file is too small");
+        //--    }
+        //--}
+
+        //--if (m_data->sh_addralign > 1)
+        //--{
+        //--    if (m_data->sh_addr % m_data->sh_addralign != 0)
+        //--    {
+        //--        throw std::runtime_error("incorrect alignment");
+        //--    }
+        //--}
+    }
+
+    uint32_t Section_header::get_name()
+    {
+        return m_data->sh_name;
+    }
+
+    bool Section_header::is_type_null() const
+    {
+        return (m_data->sh_type == SHT_NULL);
+    }
+
+    bool Section_header::is_type_progbits() const
+    {
+        return (m_data->sh_type == SHT_PROGBITS);
+    }
+    
+    bool Section_header::is_type_symtab() const
+    {
+        return (m_data->sh_type == SHT_SYMTAB);
+    }
+    
+    bool Section_header::is_type_dynsym() const
+    {
+        return (m_data->sh_type == SHT_DYNSYM);
+    }
+
+    bool Section_header::is_type_strtab() const
+    {
+        return (m_data->sh_type == SHT_STRTAB);
+    }
+
+    bool Section_header::is_type_rela() const
+    {
+        return (m_data->sh_type == SHT_RELA);
+    }
+
+    bool Section_header::is_type_nobits() const
+    {
+        return (m_data->sh_type == SHT_NOBITS);
+    }
+
+    bool Section_header::is_type_rel() const
+    {
+        return (m_data->sh_type == SHT_REL);
+    }
+
+    bool Section_header::is_flags_write() const
+    {
+        return (m_data->sh_flags & SHF_WRITE) != 0;
+    }
+    bool Section_header::is_flags_alloc() const
+    {
+        return (m_data->sh_flags & SHF_ALLOC) != 0;
+    }
+    bool Section_header::is_flags_execinstr() const
+    {
+        return (m_data->sh_flags & SHF_EXECINSTR) != 0;
+    }
+
+    uint32_t Section_header::get_addr()
+    {
+        return m_data->sh_addr;
+    }
+
+    uint32_t Section_header::get_offset() const
+    {
+        return m_data->sh_offset;
+    }
+
+    uint32_t Section_header::get_size() const
+    {
+        return m_data->sh_size;
+    }
+
+    uint32_t Section_header::get_link()
+    {
+        return m_data->sh_link;
+    }
+
+    uint32_t Section_header::get_info()
+    {
+        return m_data->sh_info;
+    }
+
+    uint32_t Section_header::get_addralign()
+    {
+        return m_data->sh_addralign;
+    }
+
+    uint32_t Section_header::get_entsize() const
+    {
+        return m_data->sh_entsize;
+    }
+
+} // namespace elf
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/checklib/object/elf/elf_section_header.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,60 @@
+// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#ifndef ELF_SECTION_HEADER_H
+#define ELF_SECTION_HEADER_H
+
+#include "elftools/inc/elfdefs.h"
+#include <stdint.h>
+
+namespace elf
+{
+    class Section_header
+    {
+    public:
+        Section_header(const char*, const char*);
+
+        uint32_t get_name();
+
+        bool is_type_null() const;
+        bool is_type_progbits() const;
+        bool is_type_symtab() const;
+        bool is_type_dynsym() const;
+        bool is_type_strtab() const;
+        bool is_type_rela() const;
+        bool is_type_nobits() const;
+        bool is_type_rel() const;
+
+        bool is_flags_write() const; 
+        bool is_flags_alloc() const;
+        bool is_flags_execinstr() const;
+
+        uint32_t get_addr();
+        uint32_t get_offset() const;
+        uint32_t get_size() const;
+        uint32_t get_link();
+        uint32_t get_info();
+        uint32_t get_addralign();
+        uint32_t get_entsize() const;
+
+    private:
+        const Elf32_Shdr* m_data;
+    };
+
+} // namespace elf
+
+
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/checklib/object/elf/elf_string_table.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,44 @@
+// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#include "elf_string_table.h"
+#include <cassert>
+
+namespace elf
+{
+    const char* String_table::get_string(unsigned n) const
+    {
+        return (m_first_p + n);
+    }
+
+    String_table::String_table(const char* p, unsigned size)
+        : m_first_p(p), m_last_p(p + size - 1)
+    {
+        assert(m_first_p <= m_last_p);
+
+        if (*m_first_p != '\0')
+        {
+            //throw String_table_error("the first character is non-NUL");
+            assert(0);
+        }
+
+        if (*m_last_p != '\0')
+        {
+            //throw String_table_error("the last character is non-NUL");
+            assert(0);
+        }
+    }
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/checklib/object/elf/elf_string_table.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,34 @@
+// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#ifndef ELF_STRING_TABLE_H
+#define ELF_STRING_TABLE_H
+
+namespace elf
+{
+    class String_table
+    {
+    public:
+        String_table(const char*, unsigned);
+
+        const char* get_string(unsigned) const;
+    private:
+        const char* m_first_p;
+        const char* m_last_p;
+    };
+}
+
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/checklib/object/elf/elf_symbol.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,104 @@
+// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#include "elf_symbol.h"
+
+
+namespace elf
+{
+    // All of the following functions are candidates for inlining ...
+
+    Symbol::Symbol(const char* p) : m_data( reinterpret_cast<const Elf32_Sym*>(p) )
+    {
+    }
+
+    uint32_t Symbol::get_name() const
+    {
+        return m_data->st_name;
+    }
+
+    uint32_t Symbol::get_value() const
+    {
+        return m_data->st_value;
+    }
+
+    uint32_t Symbol::get_size() const
+    {
+        return m_data->st_size;
+    }
+
+    bool Symbol::is_info_bind_local() const
+    {
+        return (m_data->st_info >> 4) == STB_LOCAL;
+    }
+
+    bool Symbol::is_info_bind_global() const
+    {
+        return (m_data->st_info >> 4) == STB_GLOBAL;
+    }
+
+    bool Symbol::is_info_bind_weak() const
+    {
+        return (m_data->st_info >> 4) == STB_WEAK;
+    }
+    
+    bool Symbol::is_info_type_notype() const
+    {
+        return (m_data->st_info & 0x0f) == STT_NOTYPE;
+    }
+
+    bool Symbol::is_info_type_object() const
+    {
+        return (m_data->st_info & 0x0f) == STT_OBJECT;
+    }
+
+    bool Symbol::is_info_type_func() const
+    {
+        return (m_data->st_info & 0x0f) == STT_FUNC;
+    }
+
+    bool Symbol::is_info_type_section() const
+    {
+        return (m_data->st_info & 0x0f) == STT_SECTION;
+    }
+
+    bool Symbol::is_info_type_file() const
+    {
+        return (m_data->st_info & 0x0f) == STT_FILE;
+    }
+
+    //bool Symbol::is_info_type_common() const
+    //{
+    //    return (m_data->st_info == STT_COMMON);
+    //}
+
+    //bool Symbol::is_info_type_tls() const
+    //{
+    //    return (m_data->st_info == STT_TLS);
+    //}
+
+    uint8_t Symbol::get_other() const
+    {
+        return m_data->st_other;
+    }
+
+    uint16_t Symbol::get_shndx() const
+    {
+        return m_data->st_shndx;
+    }
+
+} // namespace elf
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/checklib/object/elf/elf_symbol.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,57 @@
+// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#ifndef ELF_SYMBOL_H
+#define ELF_SYMBOL_H
+
+#include "elftools/inc/elfdefs.h"
+#include <stdint.h>
+
+
+namespace elf
+{
+    class Symbol
+    {
+    public:
+        Symbol(const char*);
+
+        uint32_t get_name() const ;
+        uint32_t get_value() const ;
+        uint32_t get_size() const ;
+
+        bool is_info_bind_local() const;
+        bool is_info_bind_global() const;
+        bool is_info_bind_weak() const;
+
+        bool is_info_type_notype() const;
+        bool is_info_type_object() const;
+        bool is_info_type_func() const;
+        bool is_info_type_section() const;
+        bool is_info_type_file() const;
+        //bool is_info_type_common() const;
+        //bool is_info_type_tls() const;
+
+        uint8_t  get_info_other() const ;
+        uint8_t  get_other() const ;
+        uint16_t get_shndx() const ;
+    private:
+        const Elf32_Sym* m_data;
+    };
+
+}
+
+
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/checklib/object/elf_object.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,92 @@
+// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#include "object.h"
+
+#include "elf/elf_file_header.h"
+#include "elf/elf_section_header.h"
+#include "elf/elf_symbol.h"
+#include "elf/elf_string_table.h"
+
+#include <algorithm>
+#include <functional>
+
+Elf_object::Elf_object(const char* p1, const char* p2)
+{
+    const char* first_p = p1;
+    const char* last_p = p2;
+
+    elf::File_header fh(first_p, last_p);
+
+    const char* sh_table_p = first_p + fh.get_shoff();
+
+    const char* p = sh_table_p;
+
+    unsigned D = fh.get_shentsize();
+    unsigned N = fh.get_shnum();
+
+    // Iterate over the section header table.
+    for (unsigned i = 0; i < N; i++, p += D )
+    {
+        elf::Section_header sh(p, last_p);
+
+        if ( sh.is_type_symtab() ) // We've found the symbol table's section header.
+        {
+            // Locate the string table.
+            elf::Section_header strtab_sh( sh_table_p + D*sh.get_link(), last_p );
+            elf::String_table strtab(first_p + strtab_sh.get_offset(), strtab_sh.get_size() );
+
+            unsigned D = sh.get_entsize();  // The difference between two symbol pointers.
+            unsigned N = sh.get_size() / D; // The number of symbols.
+
+            const char* p = first_p + sh.get_offset();
+
+            // Iterate over all symbols.
+            for (unsigned i = 0; i < N; i++, p += D)
+            {
+                const elf::Symbol s(p);
+
+                if (s.get_shndx() == 0)
+                {
+                    m_undef_symbols.push_back( strtab.get_string( s.get_name() ) );
+                }
+            }
+
+            break; // We're only interested in the symbol table ...
+        }
+    }
+}
+
+Elf_object::~Elf_object() {}
+
+bool Elf_object::is_undef(const char a_sym[]) const
+{
+    using std::find_if;
+    using std::not1;
+    using std::bind2nd;
+    using std::ptr_fun;
+    using std::strcmp;
+
+    typedef std::vector<const char*> T;
+
+    T::const_iterator beg_p = m_undef_symbols.begin();
+    T::const_iterator end_p = m_undef_symbols.end();
+
+    // "STL considered harmful."
+    T::const_iterator pos = find_if( beg_p, end_p, not1(bind2nd( ptr_fun(strcmp), a_sym)) );
+
+    return (pos != end_p);
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/checklib/object/object.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,41 @@
+// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#include "object.h"
+#include <cassert>
+
+
+std::auto_ptr<Object> Object_factory::create(objkind_t a_kind, const char* p1, const char* p2)
+{
+    switch(a_kind)
+    {
+    case ELF:
+        return std::auto_ptr<Object>( new Elf_object(p1, p2) );
+        break;
+    case COFF:
+        return std::auto_ptr<Object>( new Coff_object(p1, p2) );
+        break;
+    default:
+        break;
+    }
+
+    assert(0);
+
+    // Dead code, just to get rid of the warning.
+    return std::auto_ptr<Object>(0);
+}
+
+Object::~Object() {}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/checklib/object/object.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,69 @@
+// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Classes for interpreting a memory area as an ELF or COFF object.
+// <creates>
+// Object_factory -----------------> Object
+// Elf_object      Coff_object
+// 
+//
+
+#ifndef OBJECT_H
+#define OBJECT_H
+
+#include <vector>
+#include <memory>
+
+
+class Object
+{
+public:
+    virtual ~Object() = 0;
+public:
+    // Does the object have an unresolved reference to the given symbol.
+    virtual bool is_undef(const char*) const = 0;
+};
+
+class Elf_object : public Object
+{
+public:
+    Elf_object(const char*, const char*);
+    virtual ~Elf_object();
+public:
+    virtual bool is_undef(const char*) const;
+private:
+    std::vector<const char*> m_undef_symbols;
+};
+
+class Coff_object : public Object
+{
+public:
+    Coff_object(const char*, const char*);
+    virtual ~Coff_object();
+public:
+    virtual bool is_undef(const char*) const;
+private:
+    std::vector<const char*> m_undef_symbols;
+};
+
+class Object_factory
+{
+public:
+    enum objkind_t {ELF, COFF};
+public:
+    static std::auto_ptr<Object> create(objkind_t, const char*, const char*);
+};
+
+
+#endif
+
Binary file toolsandutils/e32tools/checklib/tag/tag_coff has changed
Binary file toolsandutils/e32tools/checklib/tag/tag_elf has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/compress/byte_pair.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,516 @@
+// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#include "byte_pair.h"
+
+#undef ASSERT
+#define ASSERT(c)	if(!(c))	\
+{		\
+    __BREAKPOINT()	\
+}
+void CBytePair::InitPairCount(TUint8* data, TInt size, TInt minFrequency, TInt marker)
+{
+    PairsFound = 0;
+    memset(PairCount,0,sizeof(PairCount));
+    TUint8* dataEnd = data+size-1;
+    TInt lastPair = -1;
+    while(data<dataEnd)
+    {
+        TInt b1 = *data++;
+        if(b1==marker)
+        {
+            // skip marker and following byte
+            lastPair = -1;
+            ++data;
+            continue;
+        }
+        TInt b2 = *data;
+        if(b2==marker)
+        {
+            // skip marker and following byte
+            lastPair = -1;
+            data+=2;
+            continue;
+        }
+        TInt p = (b2<<8)|b1;
+        if(p==lastPair)
+        {
+            // ensure a pair of identical bytes don't get double counted
+            lastPair = -1;
+            continue;
+        }
+        lastPair = p;
+        ++PairCount[p];
+        if(PairCount[p]==minFrequency) {
+            PairBuffer[PairsFound++] = (TUint16)p;
+        }
+    }
+}
+TInt CBytePair::MostCommonPair(TInt& pair)
+{
+    TInt bestCount = -1;
+    TInt bestPair = -1;
+    TInt bestTieBreak = 0;
+    TInt p;
+    TInt pairsFound = PairsFound;
+    while(pairsFound--)
+    {
+        p = PairBuffer[pairsFound];
+        TInt f=PairCount[p];
+        if(f>bestCount)
+        {
+            bestCount = f;
+            bestPair = p;
+            //bestTieBreak = TieBreak(p&0xff,p>>8);
+            bestTieBreak = -ByteCount[p&0xff]-ByteCount[p>>8];
+        }
+        else if(f==bestCount)
+        {
+            //TInt tieBreak = TieBreak(p&0xff,p>>8);
+            TInt tieBreak = -ByteCount[p&0xff]-ByteCount[p>>8];
+            if(tieBreak>bestTieBreak)
+            {
+                bestCount = f;
+                bestPair = p;
+                bestTieBreak = tieBreak;
+            }
+        }
+    }
+    pair = bestPair;
+    return bestCount;
+}
+
+
+TInt CBytePair::LeastCommonByte(TInt& byte)
+{
+    TInt bestCount = 0xffff;
+    TInt bestByte = -1;
+    TInt b;
+    for(b=0; b<0x100; b++)
+    {
+        TInt f = ByteCount[b];
+        if(f<bestCount)
+        {
+            bestCount = f;
+            bestByte = b;
+        }
+    }
+    byte = bestByte;
+    return bestCount;
+}
+
+
+TInt CBytePair::Compress(TUint8* dst, TUint8* src, TInt size)
+{
+    TInt originalSize = size;
+    TUint8* dst2 = dst+size*2;
+    TUint8* in = src;
+    TUint8* out = dst;
+
+    TUint8 tokens[0x100*3];
+    TInt tokenCount = 0;
+
+    CountBytes(in,size);
+
+    TInt marker = -1;
+    TInt overhead = 1+3+LeastCommonByte(marker);
+    ByteUsed(marker);
+
+    TUint8* inEnd = in+size;
+    TUint8* outStart = out;
+    while(in<inEnd)
+    {
+        TInt b=*in++;
+        if(b==marker)
+            *out++ = (TUint8)b;
+        *out++ = (TUint8)b;
+    }
+    size = out-outStart;
+
+    TInt outToggle = 1;
+    in = dst;
+    out = dst2;
+    InitPairCount(in,size,overhead+1,marker);
+
+    for(TInt r=256; r>0; --r)
+    {
+        TInt byte;
+        TInt byteCount = LeastCommonByte(byte);
+        if(iFastCompress && byteCount) break;
+        TInt pair;
+        TInt pairCount = MostCommonPair(pair);
+        TInt saving = pairCount-byteCount;
+        if(saving<=overhead)
+            break;
+
+        overhead = 3;
+        if(tokenCount>=32)
+            overhead = 2;
+        TInt minFrequency = overhead+1;
+        PairsFound = 0;
+        memset(PairCount,0,sizeof(PairCount));
+
+        TUint8* d=tokens+3*tokenCount;
+        ++tokenCount;
+        *d++ = (TUint8)byte;
+        ByteUsed(byte);
+        *d++ = (TUint8)pair;
+        ByteUsed(pair&0xff);
+        *d++ = (TUint8)(pair>>8);
+        ByteUsed(pair>>8);
+        ++GlobalPairs[pair];
+
+        inEnd = in+size;
+        outStart = out;
+        //
+        TInt lastPair = -1;
+        TInt b, bb[2], p;
+        TInt jj = 0;
+        if(byteCount == 0) {
+            //in this case, marker is not used in the replacement
+            b=*in++;
+            if(b==(pair&0xff) && in<inEnd && *in==(pair>>8))
+            {
+                ++in;
+                --pairCount;
+                b = byte;
+            }
+            *out++ = (TUint8)b;
+            bb[0] = b;
+
+            while(in<inEnd) {
+                b=*in++;
+                if(b==(pair&0xff) && in<inEnd && *in==(pair>>8))
+                {
+                    ++in;
+                    --pairCount;
+                    b = byte;
+                }
+                *out++ = (TUint8)b;
+
+                p = (b<<8)|bb[0];
+                bb[0] = b;
+                if(p==lastPair) {
+                    // ensure a pair of identical bytes don't get double counted
+                    lastPair = -1;
+                }
+                else {
+                    lastPair = p;
+                    ++PairCount[p];
+                    if(PairCount[p]==minFrequency)
+                        PairBuffer[PairsFound++] = (TUint16)p;
+                }
+            }
+        }
+        else {
+            while(in<inEnd) {
+                b=*in++;
+                if(b==marker)
+                {
+                    *out++ = (TUint8)marker;
+                    *out++ = *in++;
+                    lastPair = -1;
+                    jj = 0;
+                }
+                else if(b==byte)
+                {
+                    *out++ = (TUint8)marker;
+                    --byteCount;
+                    *out++ = (TUint8)byte;
+                    lastPair = -1;
+                    jj = 0;
+                }
+                else if(b==(pair&0xff) && in<inEnd && *in==(pair>>8))
+                {
+                    ++in;
+                    --pairCount;
+                    *out++ = (TUint8)byte;
+                    bb[jj++] = byte;
+                }
+                else{
+                    *out++ = (TUint8)b;
+                    bb[jj++] = b;
+                }
+
+                if(jj == 2) {
+                    p = (bb[1]<<8)|bb[0];
+                    bb[0] = bb[1];
+                    jj = 1;
+                    if(p==lastPair)
+                    {
+                        // ensure a pair of identical bytes don't get double counted
+                        lastPair = -1;
+                    }
+                    else {
+                        lastPair = p;
+                        ++PairCount[p];
+                        if(PairCount[p]==minFrequency)
+                            PairBuffer[PairsFound++] = (TUint16)p;
+                    }
+                }
+            }
+        }
+        //
+        ASSERT(!byteCount);
+        ASSERT(!pairCount);
+        size = out-outStart;
+
+        outToggle ^= 1;
+        if(outToggle)
+        {
+            in = dst;
+            out = dst2;
+        }
+        else
+        {
+            in = dst2;
+            out = dst;
+        }
+    }
+
+    // sort tokens with a bubble sort...
+    for(TInt x=0; x<tokenCount-1; x++)
+        for(TInt y=x+1; y<tokenCount; y++)
+            if(tokens[x*3]>tokens[y*3])
+            {
+                TInt z = tokens[x*3];
+                tokens[x*3] = tokens[y*3];
+                tokens[y*3] = (TUint8)z;
+                z = tokens[x*3+1];
+                tokens[x*3+1] = tokens[y*3+1];
+                tokens[y*3+1] = (TUint8)z;
+                z = tokens[x*3+2];
+                tokens[x*3+2] = tokens[y*3+2];
+                tokens[y*3+2] = (TUint8)z;
+            }
+
+    // check for not being able to compress...
+    if(size>originalSize)
+    {
+        *dst++ = 0; // store zero token count
+        memcpy(dst,src,originalSize); // store original data
+        return originalSize+1;
+    }
+
+    // make sure data is in second buffer (dst2)
+    if(in!=dst2)
+        memcpy(dst2,dst,size);
+
+    // store tokens...
+    TUint8* originalDst = dst;
+    *dst++ = (TUint8)tokenCount;
+    if(tokenCount)
+    {
+        *dst++ = (TUint8)marker;
+        if(tokenCount<32)
+        {
+            memcpy(dst,tokens,tokenCount*3);
+            dst += tokenCount*3;
+        }
+        else
+        {
+            TUint8* bitMask = dst;
+            memset(bitMask,0,32);
+            dst += 32;
+            TUint8* d=tokens;
+            do
+            {
+                TInt t=*d++;
+                bitMask[t>>3] |= (1<<(t&7));
+                *dst++ = *d++;
+                *dst++ = *d++;
+            }
+            while(--tokenCount);
+        }
+    }
+    // store data...
+    memcpy(dst,dst2,size);
+    dst += size;
+
+    // get stats...
+    ++GlobalTokenCounts[tokenCount];
+
+    // return total size of compressed data...
+    return dst-originalDst;
+}
+
+
+TInt CBytePair::Decompress(TUint8* dst, TInt dstSize, TUint8* src, TInt srcSize, TUint8*& srcNext)
+{
+    TUint8* dstStart = dst;
+    TUint8* dstEnd = dst+dstSize;
+    TUint8* srcEnd = src+srcSize;
+
+    TUint32 LUT[0x100/2];
+    TUint8* LUT0 = (TUint8*)LUT;
+    TUint8* LUT1 = LUT0+0x100;
+
+    TUint8 stack[0x100];
+    TUint8* stackStart = stack+sizeof(stack);
+    TUint8* sp = stackStart;
+
+    TUint32 marker = ~0u;
+    TInt numTokens;
+    TUint32 p1;
+    TUint32 p2;
+
+    TUint32* l = (TUint32*)LUT;
+    TUint32 b = 0x03020100;
+    TUint32 step = 0x04040404;
+    do
+    {
+        *l++ = b;
+        b += step;
+    }
+    while(b>step);
+
+    if(src>=srcEnd)
+        goto error;
+    numTokens = *src++;
+    if(numTokens)
+    {
+        if(src>=srcEnd)
+            goto error;
+        marker = *src++;
+        LUT0[marker] = (TUint8)~marker;
+
+        if(numTokens<32)
+        {
+            TUint8* tokenEnd = src+3*numTokens;
+            if(tokenEnd>srcEnd)
+                goto error;
+            do
+            {
+                TInt b = *src++;
+                TInt p1 = *src++;
+                TInt p2 = *src++;
+                LUT0[b] = (TUint8)p1;
+                LUT1[b] = (TUint8)p2;
+            }
+            while(src<tokenEnd);
+        }
+        else
+        {
+            TUint8* bitMask = src;
+            src += 32;
+            if(src>srcEnd)
+                goto error;
+            TInt b=0;
+            do
+            {
+                TUint8 mask = bitMask[b>>3];
+                if(mask&(1<<(b&7)))
+                {
+                    if(src>srcEnd)
+                        goto error;
+                    TInt p1 = *src++;
+                    if(src>srcEnd)
+                        goto error;
+                    TInt p2 = *src++;
+                    LUT0[b] = (TUint8)p1;
+                    LUT1[b] = (TUint8)p2;		
+                    --numTokens;
+                }
+                ++b;
+            }
+            while(b<0x100);
+            if(numTokens)
+                goto error;
+        }
+    }
+
+    if(src>=srcEnd)
+        goto error;
+    b = *src++;
+    if(dst>=dstEnd)
+        goto error;
+    p1 = LUT0[b];
+    if(p1!=b)
+        goto not_single;
+next:
+    if(src>=srcEnd)
+        goto done_s;
+    b = *src++;
+    *dst++ = (TUint8)p1;
+    if(dst>=dstEnd)
+        goto done_d;
+    p1 = LUT0[b];
+    if(p1==b)
+        goto next;
+
+not_single:
+    if(b==marker)
+        goto do_marker;
+
+do_pair:
+    p2 = LUT1[b];
+    b = p1;
+    p1 = LUT0[b];
+    if(sp<=stack)
+        goto error;
+    *--sp = (TUint8)p2;
+
+recurse:
+    if(b!=p1)
+        goto do_pair;
+
+    if(sp==stackStart)
+        goto next;
+    b = *sp++;
+    if(dst>=dstEnd)
+        goto error;
+    *dst++ = (TUint8)p1;
+    p1 = LUT0[b];
+    goto recurse;
+
+do_marker:
+    if(src>=srcEnd)
+        goto error;
+    p1 = *src++;
+    goto next;
+
+error:
+    srcNext = 0;
+    return KErrCorrupt;
+
+done_s:
+    *dst++ = (TUint8)p1;
+    srcNext = src;
+    return dst-dstStart;
+
+done_d:
+    if(dst>=dstEnd)
+        --src;
+    srcNext = src;
+    return dst-dstStart;
+}
+
+
+TInt BytePairCompress(TUint8* dst, TUint8* src, TInt size, CBytePair *aBPE)
+{
+    TUint8 PakBuffer[MaxBlockSize*4];
+    TUint8 UnpakBuffer[MaxBlockSize];
+    ASSERT(size<=MaxBlockSize);
+    TInt compressedSize = aBPE->Compress(PakBuffer,src,size);
+    TUint8* pakEnd;
+    TInt us = aBPE->Decompress(UnpakBuffer,MaxBlockSize,PakBuffer,compressedSize,pakEnd);
+    ASSERT(us==size)
+    ASSERT(pakEnd==PakBuffer+compressedSize)
+    ASSERT(!memcmp(src,UnpakBuffer,size))
+    if(compressedSize>=size)
+        return KErrTooBig;
+    memcpy(dst,PakBuffer,compressedSize);
+    return compressedSize;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/compress/byte_pair.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,82 @@
+// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#ifndef BYTE_PAIR_H
+#define BYTE_PAIR_H
+
+#ifdef __VC32__
+#ifdef __MSVCDOTNET__
+#include <strstream>
+#include <iomanip>
+#else //!__MSVCDOTNET__
+#include <strstrea.h>
+#include <iomanip.h>
+#endif //__MSVCDOTNET__
+#else // !__VC32__
+#ifdef __TOOLS2__ 
+#include <sstream>
+#include <iomanip>
+using namespace std;
+#else
+#include <strstream.h>
+#include <iomanip.h>
+#endif
+#endif // __VC32__
+
+
+
+#include <e32cmn.h>
+const TInt MaxBlockSize = 0x1000;
+class CBytePair {
+    private:
+        TBool iFastCompress;
+        TUint16 PairCount[0x10000];
+        TUint16 PairBuffer[MaxBlockSize*2];
+        TInt PairsFound;
+
+        TUint16 GlobalPairs[0x10000];
+        TUint16 GlobalTokenCounts[0x100];
+
+        TUint16 ByteCount[0x100+4];
+
+        void CountBytes(TUint8* data, TInt size) {
+            memset(ByteCount,0,sizeof(ByteCount));
+            TUint8* dataEnd = data+size;
+            while(data<dataEnd)
+                ++ByteCount[*data++];
+        }
+        inline void ByteUsed(TInt b) {
+            ByteCount[b] = 0xffff;
+        }
+        int TieBreak(int b1,int b2) {
+            return -ByteCount[b1]-ByteCount[b2];
+        }
+
+        void InitPairCount(TUint8* data, TInt size, TInt minFrequency, TInt marker);
+        TInt MostCommonPair(TInt& pair);
+        TInt LeastCommonByte(TInt& byte);
+    public:
+        CBytePair(TBool fastCompress) {
+            iFastCompress = fastCompress;
+            memset(GlobalPairs,0,sizeof(GlobalPairs));
+            memset(GlobalTokenCounts,0,sizeof(GlobalTokenCounts));
+        }
+        TInt Compress(TUint8* dst, TUint8* src, TInt size);
+        TInt Decompress(TUint8* dst, TInt dstSize, TUint8* src, TInt srcSize, TUint8*& srcNext);
+};
+TInt BytePairCompress(TUint8* dst, TUint8* src, TInt size, CBytePair *aBPE);
+
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/compress/pagedcompress.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,333 @@
+// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// byte_pair.cpp
+// 
+//
+
+#include <malloc.h>
+#include <string.h>
+#include <stdlib.h>
+#include "h_utl.h"
+#include "h_ver.h"
+#include <stdio.h>
+
+#include "byte_pair.h"
+
+#define PAGE_SIZE 4096
+
+typedef struct IndexTableItemTag
+{
+	TUint16 iSizeOfCompressedPageData;	// pointer to an array TUint16[NumberOfPages]
+	TUint8 *iCompressedPageData;		// pointer to an array TUint8*. Each elemet of 
+										// this array point a compressed Page data	
+}IndexTableItem;
+
+
+typedef struct IndexTableHeaderTag
+{
+	TInt	iSizeOfData;					// Includes the index and compressed pages
+	TInt	iDecompressedSize;
+	TUint16	iNumberOfPages;
+} IndexTableHeader;
+
+
+class CBytePairCompressedImage
+{
+	public:
+		static CBytePairCompressedImage* NewLC(TUint16 aNumberOfPages, TInt aSize);
+		
+		~CBytePairCompressedImage();
+		
+		void AddPage(TUint16 aPageNum, TUint8 * aPageData, TUint16 aPageSize, CBytePair *aBPE);
+		int  GetPage(TUint16 aPageNum, TUint8 * aPageData, CBytePair *aBPE);
+		void WriteOutTable(ostream &os);
+		int  ReadInTable(istream &is, TUint & aNumberOfPages);
+	
+	private:
+		TInt ConstructL( TUint16 aNumberOfPages, TInt aSize);
+		CBytePairCompressedImage();
+		
+	private:
+		IndexTableHeader 	iHeader;
+		IndexTableItem*		iPages;
+		TUint8* 			iOutBuffer; 
+		
+};
+
+
+CBytePairCompressedImage::CBytePairCompressedImage()
+{
+	
+}
+
+
+CBytePairCompressedImage* CBytePairCompressedImage::NewLC(TUint16 aNumberOfPages, TInt aSize)
+{
+	CBytePairCompressedImage* self = new CBytePairCompressedImage;
+	if( NULL == self)
+	{
+		return self;
+	}
+	
+	if( KErrNone == self->ConstructL(aNumberOfPages, aSize))
+	{
+		return self;
+	}
+	return NULL;
+}
+
+
+TInt CBytePairCompressedImage::ConstructL(TUint16 aNumberOfPages, TInt aSize)
+{
+#ifdef __DEBUG_MSG__
+	Print(EWarning,"Start ofCBytePairCompressedImage::ConstructL(%d, %d)\n", aNumberOfPages, aSize );
+#endif
+
+	iHeader.iNumberOfPages = aNumberOfPages;
+	iHeader.iDecompressedSize = aSize;
+	
+	if( 0 != aNumberOfPages)
+	{
+		iPages = (IndexTableItem *) calloc(aNumberOfPages, sizeof(IndexTableItem));
+		
+		if( NULL == iPages )
+		{
+			return KErrNoMemory;
+		}
+	}
+		
+	iHeader.iSizeOfData = 	sizeof(iHeader.iSizeOfData) + 
+							sizeof(iHeader.iDecompressedSize) + 
+							sizeof(iHeader.iNumberOfPages) + 
+							aNumberOfPages * sizeof(TUint16);
+	
+	iOutBuffer = (TUint8 *) calloc(4 * PAGE_SIZE, sizeof(TUint8) ); 
+	
+	if ( NULL == iOutBuffer)
+	{
+		return KErrNoMemory;
+	}
+	return KErrNone;
+} // End of ConstructL()
+
+CBytePairCompressedImage::~CBytePairCompressedImage()
+{
+#ifdef __DEBUG_MSG__
+	Print(EWarning,"Destructor calling.");
+#endif
+
+	for( int i = 0; i < iHeader.iNumberOfPages; i++)
+	{
+		free(iPages[i].iCompressedPageData);
+		iPages[i].iCompressedPageData = NULL;
+	}
+	
+	free( iPages );
+	iPages = NULL;
+	
+	free( iOutBuffer );
+	iOutBuffer = NULL;
+}
+
+
+void CBytePairCompressedImage::AddPage(TUint16 aPageNum, TUint8 * aPageData, TUint16 aPageSize, CBytePair *aBPE)
+{
+#ifdef __DEBUG_MSG__
+	Print(EWarning,"Start of AddPage(aPageNum:%d, ,aPageSize:%d)\n",aPageNum, aPageSize );
+#endif
+
+#ifdef __TEST_ONLY__
+
+	iPages[aPageNum].iSizeOfCompressedPageData = 2;
+
+	iPages[aPageNum].iCompressedPageData = (TUint8 *) calloc(iPages[aPageNum].iSizeOfCompressedPageData, sizeof(TUint8) );	
+	
+	memcpy(iPages[aPageNum].iCompressedPageData, (TUint8 *) &aPageNum, iPages[aPageNum].iSizeOfCompressedPageData);
+	
+	
+#else
+
+	TUint16 compressedSize = (TUint16) aBPE->Compress(iOutBuffer,aPageData,aPageSize);
+	iPages[aPageNum].iSizeOfCompressedPageData = compressedSize;
+
+#ifdef __DEBUG_MSG__
+	Print(EWarning,"Compressed page size:%d\n", iPages[aPageNum].iSizeOfCompressedPageData );
+#endif
+	
+	iPages[aPageNum].iCompressedPageData = (TUint8 *) calloc(iPages[aPageNum].iSizeOfCompressedPageData, sizeof(TUint8) );
+	
+	if( NULL == iPages[aPageNum].iCompressedPageData )
+	{
+		return;
+	}
+	
+	memcpy(iPages[aPageNum].iCompressedPageData, iOutBuffer, iPages[aPageNum].iSizeOfCompressedPageData );
+	
+#endif
+
+	iHeader.iSizeOfData += iPages[aPageNum].iSizeOfCompressedPageData;
+}
+
+void CBytePairCompressedImage::WriteOutTable(ostream &os)
+{
+	// Write out IndexTableHeader
+	os.write((const char *) &iHeader.iSizeOfData, sizeof(iHeader.iSizeOfData));
+	os.write((const char *) &iHeader.iDecompressedSize, sizeof(iHeader.iDecompressedSize));
+	os.write((const char *) &iHeader.iNumberOfPages, sizeof(iHeader.iNumberOfPages));
+	
+	TInt i;
+	// Write out IndexTableItems (size of each compressed page)
+	for(i = 0; i < iHeader.iNumberOfPages; i++)
+	{
+		os.write((const char *) &(iPages[i].iSizeOfCompressedPageData), sizeof(TUint16));
+	}
+	
+	// Write out compressed pages
+	for(i = 0; i < iHeader.iNumberOfPages; i++)
+	{
+		os.write((const char*)iPages[i].iCompressedPageData, iPages[i].iSizeOfCompressedPageData); 
+	}
+	
+}
+
+
+int CBytePairCompressedImage::ReadInTable(istream &is, TUint & aNumberOfPages)
+{
+	// Read page index table header 
+	is.read((char *)&iHeader, (sizeof(iHeader.iSizeOfData)+sizeof(iHeader.iDecompressedSize)+sizeof(iHeader.iNumberOfPages)));
+
+	// Allocatin place to Page index table entries
+	iPages = (IndexTableItem *) calloc(iHeader.iNumberOfPages, sizeof(IndexTableItem));
+		
+	if( NULL == iPages )
+	{
+		return KErrNoMemory;
+	}
+	TInt i;
+	// Read whole Page index table 
+
+	for(i = 0; i < iHeader.iNumberOfPages; i++)
+	{
+		is.read((char *) &(iPages[i].iSizeOfCompressedPageData), sizeof(TUint16));
+	}
+
+	// Read compressed data pages page by page, decompress and store them
+	for(i = 0; i < iHeader.iNumberOfPages; i++)
+	{
+
+		iPages[i].iCompressedPageData = (TUint8 *) calloc(iPages[i].iSizeOfCompressedPageData, sizeof(TUint8) );
+	
+		if( NULL == iPages[i].iCompressedPageData )
+		{
+			return KErrNoMemory;
+		}
+
+		is.read((char*)iPages[i].iCompressedPageData, iPages[i].iSizeOfCompressedPageData);
+	}
+
+	aNumberOfPages = iHeader.iNumberOfPages;
+
+	return KErrNone;
+}
+
+int  CBytePairCompressedImage::GetPage(TUint16 aPageNum, TUint8 * aPageData, CBytePair *aBPE)
+{
+	TUint8* pakEnd;
+        
+    const TInt MaxBlockSize = 0x1000;
+        
+   	TUint16 uncompressedSize = (TUint16) aBPE->Decompress( aPageData, 
+												MaxBlockSize, 
+												iPages[aPageNum].iCompressedPageData, 
+												iPages[aPageNum].iSizeOfCompressedPageData, 
+												pakEnd );
+
+	return uncompressedSize;
+
+
+}
+
+
+void CompressPages(TUint8 * bytes, TInt size, ostream& os, CBytePair *aBPE)
+{
+	// Build a list of compressed pages
+	TUint16 numOfPages = (TUint16) (size / PAGE_SIZE);
+
+#ifdef __DEBUG_MSG__
+	Print(EWarning,"numOfPages:%d, (size %% PAGE_SIZE:%d)\n", numOfPages, size % PAGE_SIZE);
+#endif
+
+	if ( size % PAGE_SIZE > 0)
+		++numOfPages;
+	
+	CBytePairCompressedImage *comprImage = CBytePairCompressedImage::NewLC(numOfPages, size);
+	if( NULL == comprImage)
+	{
+		Print(EError," NULL == comprImage\n");
+		return;
+	}
+	
+	TUint8* iPageStart;
+	TUint16 iPageLen;
+	TUint16 iPage = 0;
+	
+	while(iPage * PAGE_SIZE < size )
+	{
+		iPageStart = &bytes[iPage * PAGE_SIZE];
+		iPageLen = (TUint16)( (iPage + 1) * PAGE_SIZE < size ? PAGE_SIZE : size - iPage * PAGE_SIZE);
+		
+		comprImage->AddPage(iPage, iPageStart, iPageLen, aBPE);
+
+		++iPage;
+	}
+	
+	// Write out index table and compressed pages
+	comprImage->WriteOutTable(os);
+	
+	
+	delete comprImage;
+	comprImage = NULL;
+	
+}
+
+int DecompressPages(TUint8 * bytes, istream& is, CBytePair *aBPE)
+{
+	TUint decompressedSize = 0;
+	CBytePairCompressedImage *comprImage = CBytePairCompressedImage::NewLC(0, 0);
+	if( NULL == comprImage)
+	{
+		Print(EError," NULL == comprImage\n");
+		return KErrNoMemory;
+	}
+
+	TUint numberOfPages = 0;
+	comprImage->ReadInTable(is, numberOfPages);
+
+
+	TUint8* iPageStart;
+	TUint16 iPage = 0;
+	
+	while(iPage < numberOfPages )
+	{
+		iPageStart = &bytes[iPage * PAGE_SIZE];
+		
+		decompressedSize += comprImage->GetPage(iPage, iPageStart, aBPE);
+
+		++iPage;
+	}
+	
+	delete comprImage;
+	return decompressedSize;
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/ddesign/e32rom.mdl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,384 @@
+
+(object Petal
+    version    	35)
+
+(object Design "<Top Level>"
+    is_unit    	TRUE
+    file_name  	"c:\e32tools\ddesign\e32rom.mdl"
+    is_loaded  	TRUE
+    defaults   	(object defaults
+	rightMargin 	0.25
+	leftMargin 	0.25
+	topMargin  	0.25
+	bottomMargin 	0.5
+	pageOverlap 	0.25
+	clipIconLabels 	TRUE
+	autoResize 	FALSE
+	snapToGrid 	TRUE
+	gridX      	9
+	gridY      	9
+	defaultFont 	(object Font
+	    size       	10
+	    face       	"Arial"
+	    bold       	FALSE
+	    italics    	FALSE
+	    underline  	FALSE
+	    strike     	FALSE
+	    color      	0
+	    default_color 	TRUE)
+	showMessageNum 	3)
+    root_category 	(object Class_Category "<Top Level>"
+	exportControl 	"Public"
+	global     	TRUE
+	subsystem  	"<Top Level>"
+	logical_models 	(list unit_reference_list
+	    (object Class "TRomEntry
+"
+		documentation 	
+|if (iAtt&KAttDir) then
+|    iAddressLin -> TRomDir
+|else
+|   iAddressLin -> The start of the actual file
+|
+		
+		fields     	(list has_relationship_list
+		    (object Has_Relationship
+			label      	"TInt iSize")
+		    (object Has_Relationship
+			label      	"TLinAddr iAddressLin")
+		    (object Has_Relationship
+			label      	"TUint8 iAtt")
+		    (object Has_Relationship
+			label      	"TUint8 iNameLength"))
+		collaborators 	(list association_list
+		    (object Association
+			supplier   	"PEFile"
+			supplier_cardinality 	(value cardinality "1")
+			client_cardinality 	(value cardinality "1"))
+		    (object Association
+			label      	"iAtt=KDir"
+			supplier   	
+|TRomDir
+|
+			
+			supplier_cardinality 	(value cardinality "1")
+			client_cardinality 	(value cardinality "1"))))
+	    (object Class "PEFile")
+	    (object Class "TRomDir
+")
+	    (object Class "CObeyFile
+"
+		fields     	(list has_relationship_list
+		    (object Has_Relationship
+			supplier   	
+|Rom Info
+|
+			)
+		    (object Has_Relationship
+			supplier   	"Directories")
+		    (object Has_Relationship
+			supplier   	
+|Files
+|
+			)
+		    (object Has_Relationship
+			supplier   	"TObeyLine")))
+	    (object Class "Files
+")
+	    (object Class "Directories")
+	    (object Class "Rom Info
+")
+	    (object Class "TObeyLine")
+	    (object Class "PEFile
+")
+	    (object Class "TRomBuilderEntry
+"
+		collaborators 	(list association_list
+		    (object Association
+			supplier   	
+|TRomEntry
+|
+			)))
+	    (object Class "TRomLoaderHeader
+")
+	    (object Class "TRomHeader
+")
+	    (object Class "TBootBinary
+")
+	    (object Class "TRomDir"
+		documentation 	"iCount = number of file & directory entries"
+		fields     	(list has_relationship_list
+		    (object Has_Relationship
+			label      	"TInt iCount")
+		    (object Has_Relationship
+			label      	"TRomEntry n[iCount]")
+		    (object Has_Relationship
+			supplier   	
+|TRomEntry
+|
+			)))
+	    (object Class "E32ROM (the ROM)"
+		fields     	(list has_relationship_list
+		    (object Has_Relationship
+			supplier   	
+|CObeyFile
+|
+			)
+		    (object Has_Relationship
+			supplier   	
+|TRomLoaderHeader
+|
+			)
+		    (object Has_Relationship
+			supplier   	
+|TRomHeader
+|
+			)
+		    (object Has_Relationship
+			supplier   	
+|TRomBuilderEntry
+|
+			)
+		    (object Has_Relationship
+			supplier   	"PEFile"))))
+	logical_presentations 	(list unit_reference_list
+	    (object ClassDiagram "Main"
+		title      	"Main"
+		zoom       	100
+		max_height 	28350
+		max_width  	21600
+		origin_x   	0
+		origin_y   	100
+		items      	(list diagram_item_list
+		    (object ClassView "Class" "TRomEntry
+" @1
+			location   	(2205, 1368)
+			label      	(object ItemLabel
+			    location   	(2016, 1209)
+			    nlines     	2
+			    max_width  	448
+			    justify    	0
+			    label      	
+|TRomEntry
+|
+			    )
+			compartment 	(object Compartment
+			    location   	(1573, 1275)
+			    anchor     	2
+			    nlines     	5
+			    max_width  	1345
+			    justify    	0
+			    compartmentItems 	(list Compartment
+				"TInt iSize"
+				"TLinAddr iAddressLin"
+				"TUint8 iAtt"
+				"TUint8 iNameLength"))
+			width      	650
+			height     	469
+			annotation 	8)
+		    (object ClassView "Class" "PEFile" @2
+			location   	(972, 1962)
+			label      	(object ItemLabel
+			    location   	(868, 1878)
+			    nlines     	2
+			    max_width  	240
+			    justify    	0
+			    label      	"PEFile")
+			annotation 	8)
+		    (object ClassView "Class" "TRomDir
+" @3
+			location   	(2637, 801)
+			label      	(object ItemLabel
+			    location   	(2533, 717)
+			    nlines     	2
+			    max_width  	240
+			    justify    	0
+			    label      	
+|TRomDir
+|
+			    )
+			annotation 	8)
+		    (object ClassView "Class" "CObeyFile
+" @4
+			location   	(1197, 972)
+			label      	(object ItemLabel
+			    location   	(1093, 888)
+			    nlines     	2
+			    max_width  	240
+			    justify    	0
+			    label      	
+|CObeyFile
+|
+			    )
+			annotation 	8)
+		    (object ClassView "Class" "TRomBuilderEntry
+" @5
+			location   	(1350, 1503)
+			label      	(object ItemLabel
+			    location   	(1213, 1392)
+			    nlines     	2
+			    max_width  	319
+			    justify    	0
+			    label      	
+|TRomBuilderEntry
+|
+			    )
+			width      	463
+			height     	331
+			annotation 	8)
+		    (object ClassView "Class" "TRomLoaderHeader
+" @6
+			location   	(387, 396)
+			label      	(object ItemLabel
+			    location   	(241, 276)
+			    nlines     	2
+			    max_width  	344
+			    justify    	0
+			    label      	
+|TRomLoaderHeader
+|
+			    )
+			width      	500
+			height     	356
+			annotation 	8)
+		    (object ClassView "Class" "TRomHeader
+" @7
+			location   	(1026, 315)
+			label      	(object ItemLabel
+			    location   	(922, 231)
+			    nlines     	2
+			    max_width  	240
+			    justify    	0
+			    label      	
+|TRomHeader
+|
+			    )
+			annotation 	8)
+		    (object ClassView "Class" "TRomDir" @8
+			location   	(1917, 585)
+			label      	(object ItemLabel
+			    location   	(1757, 449)
+			    nlines     	2
+			    max_width  	378
+			    justify    	0
+			    label      	"TRomDir")
+			compartment 	(object Compartment
+			    location   	(1383, 515)
+			    anchor     	2
+			    nlines     	3
+			    max_width  	1136
+			    justify    	0
+			    compartmentItems 	(list Compartment
+				"TInt iCount"
+				"TRomEntry n[iCount]"))
+			width      	549
+			height     	400
+			annotation 	8)
+		    (object HasView ""
+			client     	@8
+			supplier   	@1)
+		    (object ClassView "Class" "E32ROM (the ROM)" @9
+			location   	(675, 1134)
+			label      	(object ItemLabel
+			    location   	(544, 1027)
+			    nlines     	2
+			    max_width  	306
+			    justify    	0
+			    label      	"E32ROM (the ROM)")
+			width      	444
+			height     	319
+			annotation 	8)
+		    (object AssociationView ""
+			client     	@5
+			supplier   	@1)
+		    (object HasView ""
+			client     	@9
+			supplier   	@4)
+		    (object HasView ""
+			client     	@9
+			supplier   	@6)
+		    (object HasView ""
+			client     	@9
+			supplier   	@7)
+		    (object HasView ""
+			client     	@9
+			supplier   	@5)
+		    (object AssociationView ""
+			client     	@1
+			supplier   	@2
+			vertices   	(list Points
+			    (2057, 1565)
+			    (1836, 1863)
+			    (1124, 1946)))
+		    (object AssociationView "iAtt=KDir"
+			label      	(object ItemLabel
+			    location   	(2459, 1035)
+			    anchor_loc 	1
+			    nlines     	1
+			    max_width  	450
+			    justify    	0
+			    label      	"iAtt=KDir")
+			client     	@1
+			supplier   	@3)
+		    (object HasView ""
+			client     	@9
+			supplier   	@2)
+		    (object Label
+			location   	(1233, 1260)
+			nlines     	1
+			max_width  	382
+			label      	"TheRootDirectory")
+		    (object Label
+			location   	(963, 1764)
+			nlines     	1
+			max_width  	419
+			label      	
+|TheRomPeFiles
+|
+			)
+		    (object Label
+			location   	(63, 594)
+			nlines     	1
+			max_width  	563
+			label      	
+|TheRomLoaderHeader
+|
+			)
+		    (object Label
+			location   	(1053, 423)
+			nlines     	1
+			max_width  	394
+			label      	
+|TheRomHeader
+|
+			)
+		    (object Label
+			location   	(1053, 783)
+			nlines     	1
+			max_width  	538
+			label      	
+|TheObeyFile
+|
+			)))))
+    root_subsystem 	(object SubSystem "<Top Level>"
+	physical_models 	(list unit_reference_list)
+	physical_presentations 	(list unit_reference_list
+	    (object Module_Diagram "Main"
+		title      	"Main"
+		zoom       	100
+		max_height 	28350
+		max_width  	21600
+		origin_x   	0
+		origin_y   	0
+		items      	(list diagram_item_list))))
+    process_structure 	(object Processes
+	ProcsNDevs 	(list
+	    (object Process_Diagram ""
+		title      	""
+		zoom       	100
+		max_height 	28350
+		max_width  	21600
+		origin_x   	0
+		origin_y   	0
+		items      	(list diagram_item_list))))
+    properties 	(object Properties))
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/dspec/romimage.rtf	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,2715 @@
+{\rtf1\ansi\ansicpg1252\uc1\deff0\stshfdbch0\stshfloch0\stshfhich0\stshfbi0\deflang2057\deflangfe2057{\fonttbl{\f0\froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f1\fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Arial;}
+{\f2\fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New;}{\f3\froman\fcharset2\fprq2{\*\panose 05050102010706020507}Symbol;}{\f7\fswiss\fcharset0\fprq2{\*\panose 020b0604020202030204}Helv{\*\falt Arial};}
+{\f10\fnil\fcharset2\fprq2{\*\panose 05000000000000000000}Wingdings;}{\f35\fswiss\fcharset0\fprq2{\*\panose 020b0604030504040204}Tahoma;}{\f36\fmodern\fcharset0\fprq1{\*\panose 020b0609040504020204}Lucida Console;}
+{\f57\froman\fcharset238\fprq2 Times New Roman CE;}{\f58\froman\fcharset204\fprq2 Times New Roman Cyr;}{\f60\froman\fcharset161\fprq2 Times New Roman Greek;}{\f61\froman\fcharset162\fprq2 Times New Roman Tur;}
+{\f62\froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f63\froman\fcharset178\fprq2 Times New Roman (Arabic);}{\f64\froman\fcharset186\fprq2 Times New Roman Baltic;}{\f65\froman\fcharset163\fprq2 Times New Roman (Vietnamese);}
+{\f67\fswiss\fcharset238\fprq2 Arial CE;}{\f68\fswiss\fcharset204\fprq2 Arial Cyr;}{\f70\fswiss\fcharset161\fprq2 Arial Greek;}{\f71\fswiss\fcharset162\fprq2 Arial Tur;}{\f72\fswiss\fcharset177\fprq2 Arial (Hebrew);}
+{\f73\fswiss\fcharset178\fprq2 Arial (Arabic);}{\f74\fswiss\fcharset186\fprq2 Arial Baltic;}{\f75\fswiss\fcharset163\fprq2 Arial (Vietnamese);}{\f77\fmodern\fcharset238\fprq1 Courier New CE;}{\f78\fmodern\fcharset204\fprq1 Courier New Cyr;}
+{\f80\fmodern\fcharset161\fprq1 Courier New Greek;}{\f81\fmodern\fcharset162\fprq1 Courier New Tur;}{\f82\fmodern\fcharset177\fprq1 Courier New (Hebrew);}{\f83\fmodern\fcharset178\fprq1 Courier New (Arabic);}
+{\f84\fmodern\fcharset186\fprq1 Courier New Baltic;}{\f85\fmodern\fcharset163\fprq1 Courier New (Vietnamese);}{\f407\fswiss\fcharset238\fprq2 Tahoma CE;}{\f408\fswiss\fcharset204\fprq2 Tahoma Cyr;}{\f410\fswiss\fcharset161\fprq2 Tahoma Greek;}
+{\f411\fswiss\fcharset162\fprq2 Tahoma Tur;}{\f412\fswiss\fcharset177\fprq2 Tahoma (Hebrew);}{\f413\fswiss\fcharset178\fprq2 Tahoma (Arabic);}{\f414\fswiss\fcharset186\fprq2 Tahoma Baltic;}{\f415\fswiss\fcharset163\fprq2 Tahoma (Vietnamese);}
+{\f416\fswiss\fcharset222\fprq2 Tahoma (Thai);}{\f417\fmodern\fcharset238\fprq1 Lucida Console CE;}{\f418\fmodern\fcharset204\fprq1 Lucida Console Cyr;}{\f420\fmodern\fcharset161\fprq1 Lucida Console Greek;}
+{\f421\fmodern\fcharset162\fprq1 Lucida Console Tur;}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;
+\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;\red217\green217\blue217;}{\stylesheet{
+\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \snext0 \styrsid16319362 Normal;}{
+\s1\ql \li0\ri0\sb360\sa240\keepn\pagebb\widctlpar\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin0\lin0\itap0 \b\f1\fs40\lang2057\langfe2057\kerning28\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext0 heading 1;}{\s2\ql \li0\ri0\sb120\keepn\widctlpar
+\brdrt\brdrs\brdrw60\brsp20 \tqr\tx9072\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\rtlgutter\itap0 \b\f1\fs34\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext0 heading 2;}{\s3\ql \li0\ri0\sb120\keepn\widctlpar\brdrt
+\brdrs\brdrw30\brsp20 \tqr\tx9072\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\rtlgutter\itap0 \b\f1\fs28\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext0 heading 3;}{\s4\ql \li0\ri0\sb120\keepn\widctlpar\brdrt
+\brdrs\brdrw15\brsp20 \tqr\tx9072\aspalpha\aspnum\faauto\outlinelevel3\adjustright\rin0\lin0\rtlgutter\itap0 \b\f1\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext0 heading 4;}{
+\s5\ql \li0\ri0\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel4\adjustright\rin0\lin0\itap0 \b\f1\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext0 heading 5,H5;}{
+\s6\ql \li0\ri0\sb240\sa60\widctlpar\aspalpha\aspnum\faauto\outlinelevel5\adjustright\rin0\lin0\itap0 \i\f1\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext0 heading 6;}{
+\s7\ql \li0\ri0\sb240\sa60\widctlpar\aspalpha\aspnum\faauto\outlinelevel6\adjustright\rin0\lin0\itap0 \f1\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext0 heading 7;}{
+\s8\ql \li0\ri0\sb240\sa60\widctlpar\aspalpha\aspnum\faauto\outlinelevel7\adjustright\rin0\lin0\itap0 \i\f1\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext0 heading 8;}{
+\s9\ql \li0\ri0\sb240\sa60\widctlpar\aspalpha\aspnum\faauto\outlinelevel8\adjustright\rin0\lin0\itap0 \i\f1\fs18\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext0 heading 9;}{\*\cs10 \additive \ssemihidden \styrsid16319362 
+Default Paragraph Font;}{\*\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tscellwidthfts0\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv 
+\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs20\lang1024\langfe1024\cgrid\langnp1024\langfenp1024 \snext11 \ssemihidden \styrsid16319362 Normal Table;}{\s15\ql \li0\ri0\widctlpar
+\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext15 \slink112 \styrsid14762227 Code Paragraph;}{\*
+\cs16 \additive \f36\lang2057\langfe0\langnp2057\langfenp0 \sbasedon10 Code;}{\*\cs17 \additive \i \sbasedon10 Emphasis;}{\*\cs18 \additive \b \sbasedon10 Warning;}{\s19\ql \li567\ri0\keep\widctlpar
+\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\aspalpha\aspnum\faauto\adjustright\rin0\lin567\itap0 \f36\fs24\lang1024\langfe1024\cgrid\noproof\langnp2057\langfenp2057 \sbasedon0 \snext19 Indented Code;}{
+\s20\ql \fi-284\li568\ri567\widctlpar{\*\pn \pnlvlblt\ilvl10\ls2047\pnrnot0\pnf3\pnstart1\pnindent283\pnhang {\pntxtb \'b7}}\aspalpha\aspnum\faauto\ls2047\ilvl10\adjustright\rin567\lin568\itap0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 
+\sbasedon0 \snext20 \sautoupd List Bullet;}{\s21\ql \fi-284\li851\ri567\widctlpar\aspalpha\aspnum\faauto\adjustright\rin567\lin851\itap0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext21 List;}{
+\s22\ql \li567\ri567\widctlpar\aspalpha\aspnum\faauto\adjustright\rin567\lin567\itap0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext22 List Continue;}{\s23\ql \fi-284\li568\ri567\widctlpar{\*\pn \pnlvlbody\ilvl11\ls2047\pnrnot0
+\pndec\pnstart1\pnindent283\pnhang {\pntxta ?}}\aspalpha\aspnum\faauto\ls2047\ilvl11\adjustright\rin567\lin568\itap0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext23 List Number;}{
+\s24\qc \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext24 Picture;}{\s25\qc \li0\ri0\sb240\sa240\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 
+\b\f1\fs72\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext25 Title;}{\s26\ql \li0\ri0\widctlpar\phmrg\posxr\posyt\dxfrtext181\dfrmtxtx181\dfrmtxty0\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 
+\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext26 Logo;}{\s27\ql \li0\ri0\sb1440\sa1200\sl-460\slmult0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 
+\b\scaps\f1\fs40\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext27 Subtitle;}{\s28\ql \li0\ri0\sl-200\slmult0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \b\f1\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 
+\sbasedon0 \snext28 Version;}{\s29\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext29 Date Published;}{
+\s30\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext30 Copyright Header;}{\s31\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 
+\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext31 Copyright Notice;}{\s32\ql \li0\ri0\sa1440\sl-960\slmult0\keepn\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 
+\b\scaps\f1\fs40\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext32 TOC Header;}{\s33\ql \li0\ri0\sb480\sa160\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \tqr\tx9072\aspalpha\aspnum\faauto\adjustright\rin0\lin0\rtlgutter\itap0 
+\b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext0 \sautoupd \ssemihidden toc 1;}{\s34\ql \li221\ri0\sb120\keepn\widctlpar\tqr\tx9072\aspalpha\aspnum\faauto\adjustright\rin0\lin221\itap0 
+\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext0 \sautoupd \ssemihidden toc 2;}{\s35\ql \li442\ri0\widctlpar\tqr\tx9072\aspalpha\aspnum\faauto\adjustright\rin0\lin442\itap0 
+\f1\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext0 \sautoupd \ssemihidden toc 3;}{\s36\ql \li658\ri0\widctlpar\tqr\tx9072\aspalpha\aspnum\faauto\adjustright\rin0\lin658\itap0 
+\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext0 \sautoupd \ssemihidden toc 4;}{\*\cs37 \additive \f1\uld\cf11 \sbasedon10 Hypertext Link;}{\s38\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 
+\f1\fs24\ul\cf13\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext0 Hypertext Anchor;}{\s39\ql \li0\ri0\widctlpar\tqc\tx4536\tqr\tx9072\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 
+\fs18\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext39 header;}{\s40\ql \li0\ri0\widctlpar\brdrt\brdrs\brdrw15\brsp20 \tqc\tx4536\tqr\tx9072\aspalpha\aspnum\faauto\adjustright\rin0\lin0\rtlgutter\itap0 
+\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext40 Even Footer Paragraph;}{\s41\ql \li0\ri0\widctlpar\tqc\tx4536\tqr\tx9072\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 
+\caps\fs18\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext41 Even Header Paragraph;}{\s42\ql \li0\ri0\widctlpar\brdrt\brdrs\brdrw15\brsp20 \tqc\tx4536\tqr\tx9072\aspalpha\aspnum\faauto\adjustright\rin0\lin0\rtlgutter\itap0 
+\fs18\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon39 \snext42 footer;}{\*\cs43 \additive \b \sbasedon10 page number;}{\s44\ql \li0\ri0\widctlpar\brdrt\brdrs\brdrw15\brsp20 
+\tqc\tx4536\tqr\tx9072\aspalpha\aspnum\faauto\adjustright\rin0\lin0\rtlgutter\itap0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext44 Odd Footer Paragraph;}{\s45\ql \li0\ri0\widctlpar
+\tqc\tx4536\tqr\tx9072\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \caps\fs18\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext45 Odd Header Paragraph;}{\s46\ql \li0\ri0\widctlpar\brdrl\brdrs\brdrw30\brsp80 
+\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext46 Status;}{\*\cs47 \additive \i \sbasedon10 Glossary Reference;}{
+\s48\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext48 Compact;}{\*\cs49 \additive \f1 \sbasedon10 App Text;}{
+\s50\ql \li0\ri0\sb240\sa240\keepn\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \b\f1\fs40\lang2057\langfe2057\kerning28\cgrid\langnp2057\langfenp2057 \sbasedon1 \snext50 Heading 1 NoSection;}{\*\cs51 \additive \f1 \sbasedon10 Filename;}{
+\s52\ql \fi-284\li1135\ri1134\widctlpar{\*\pn \pnlvlblt\ilvl10\ls2047\pnrnot0\pnf3\pnstart1\pnindent283\pnhang {\pntxtb \'b7}}\aspalpha\aspnum\faauto\ls2047\ilvl10\adjustright\rin1134\lin1135\itap0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 
+\sbasedon0 \snext52 \sautoupd List Bullet 2;}{\*\cs53 \additive \b \sbasedon10 Glossary Definition;}{\*\cs54 \additive \i \sbasedon10 Document Name;}{\s55\ql \li0\ri0\keep\keepn\widctlpar
+\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f36\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext0 Prototype;}{\*\cs56 \additive \scaps \sbasedon10 
+Key Name;}{\s57\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f36\fs16\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext57 Reduced Code;}{
+\s58\qc \li0\ri0\sb240\sa240\keepn\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \b\f1\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext58 Picture Title;}{\s59\ql \li851\ri851\keep\widctlpar\brdrt
+\brdrs\brdrw15\brsp20 \brdrb\brdrs\brdrw15\brsp20 \aspalpha\aspnum\faauto\adjustright\rin851\lin851\rtlgutter\itap0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext0 Syntax;}{\s60\ql \fi-3119\li3119\ri0\widctlpar
+\tx3119\aspalpha\aspnum\faauto\adjustright\rin0\lin3119\itap0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext60 Member List;}{\*\cs61 \additive \i \sbasedon10 Syntax Element;}{\*\cs62 \additive \b\f36 \sbasedon10 Syntax Literal;}
+{\s63\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext63 \ssemihidden annotation text;}{\*\cs64 \additive \b\f1\uld\cf11 \sbasedon10 Example Link;}{\*\cs65 
+\additive \f36\cf2\lang2057\langfe0\langnp2057\langfenp0 \sbasedon16 Resource Code;}{\*\cs66 \additive \b\cf10 \sbasedon10 Raw HTML;}{\s67\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 
+\b\f1\fs36\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext67 TOC 0;}{\s68\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs24\cf6\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext68 
+Converter Directive;}{\s69\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \b\f36\fs24\uldb\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext0 Platform Dependency;}{\*\cs70 \additive \i\cf14 \sbasedon10 
+URL Reference;}{\s71\ql \li0\ri0\widctlpar\brdrr\brdrdb\brdrw15\brsp20 \aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f36\fs24\lang1024\langfe1024\cgrid\noproof\langnp2057\langfenp2057 \sbasedon0 \snext71 Constant Definition;}{
+\s72\ql \li0\ri0\widctlpar\brdrr\brdrs\brdrw45\brsp20 \aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext72 Member Definition;}{\s73\ql \li567\ri567\widctlpar\brdrt
+\brdrs\brdrw15\brsp20 \brdrb\brdrs\brdrw15\brsp20 \aspalpha\aspnum\faauto\adjustright\rin567\lin567\rtlgutter\itap0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext73 Figure Picture;}{\s74\ql \li0\ri0\widctlpar\brdrl
+\brdrs\brdrw60\brsp80 \aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs24\cf5\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext74 Comment;}{\s75\ql \li567\ri567\widctlpar\brdrt\brdrs\brdrw15\brsp20 \brdrb\brdrs\brdrw15\brsp20 
+\aspalpha\aspnum\faauto\adjustright\rin567\lin567\rtlgutter\itap0 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext75 Figure Caption;}{\s76\ql \li567\ri567\widctlpar\brdrt\brdrs\brdrw15\brsp20 \brdrb\brdrs\brdrw15\brsp20 
+\aspalpha\aspnum\faauto\adjustright\rin567\lin567\rtlgutter\itap0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext76 Figure Description;}{\s77\ql \li567\ri567\widctlpar\brdrt\brdrs\brdrw15\brsp20 \brdrb\brdrs\brdrw15\brsp20 
+\aspalpha\aspnum\faauto\adjustright\rin567\lin567\rtlgutter\itap0 \fs24\cf6\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon73 \snext77 Figure Status;}{\s78\ql \li567\ri567\widctlpar\brdrt\brdrs\brdrw15\brsp20 \brdrb\brdrs\brdrw15\brsp20 
+\aspalpha\aspnum\faauto\adjustright\rin567\lin567\rtlgutter\itap0 \f1\fs24\ul\cf13\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext78 Figure Anchor;}{\*\cs79 \additive \f1\uld\cf12 \sbasedon37 Figure Link;}{
+\s80\ql \li567\ri567\widctlpar\brdrt\brdrs\brdrw15\brsp20 \brdrb\brdrs\brdrw15\brsp20 \aspalpha\aspnum\faauto\adjustright\rin567\lin567\rtlgutter\itap0 \i\fs24\cf10\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon73 \snext80 Figure Directive;}
+{\*\cs81 \additive \f36\lang2057\langfe0\langnp2057\langfenp0 \sbasedon16 PC Text;}{\*\cs82 \additive \f1\uld\cf9 \sbasedon37 Hypertext Link Text;}{\s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 
+\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext83 \styrsid3299464 Body Text;}{\s84\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \b\f1\fs21\cf8\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 
+\sbasedon0 \snext84 Tabletitle;}{\s85\ql \fi-540\li900\ri0\sl240\slmult0\widctlpar\tx0\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\aspalpha\aspnum\faauto\adjustright\rin0\lin900\itap0 \f7\fs24\cf1\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 
+\sbasedon0 \snext85 Bullet;}{\s86\ql \li880\ri0\widctlpar\tqr\tldot\tx9027\aspalpha\aspnum\faauto\adjustright\rin0\lin880\itap0 \fs18\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext0 \sautoupd \ssemihidden toc 5;}{
+\s87\ql \li1100\ri0\widctlpar\tqr\tldot\tx9027\aspalpha\aspnum\faauto\adjustright\rin0\lin1100\itap0 \fs18\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext0 \sautoupd \ssemihidden toc 6;}{\s88\ql \li1320\ri0\widctlpar
+\tqr\tldot\tx9027\aspalpha\aspnum\faauto\adjustright\rin0\lin1320\itap0 \fs18\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext0 \sautoupd \ssemihidden toc 7;}{\s89\ql \li1540\ri0\widctlpar
+\tqr\tldot\tx9027\aspalpha\aspnum\faauto\adjustright\rin0\lin1540\itap0 \fs18\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext0 \sautoupd \ssemihidden toc 8;}{\s90\ql \li1760\ri0\widctlpar
+\tqr\tldot\tx9027\aspalpha\aspnum\faauto\adjustright\rin0\lin1760\itap0 \fs18\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext0 \sautoupd \ssemihidden toc 9;}{
+\s91\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext0 \ssemihidden caption;}{
+\s92\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext92 Table;}{\s93\ql \li0\ri0\sb3600\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 
+\b\fs36\cf6\lang2057\langfe2057\kerning28\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext93 DocumentTitle;}{\s94\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs24\lang2057\langfe2057\kerning28\cgrid\langnp2057\langfenp2057 
+\sbasedon0 \snext94 DocumentSubTitle;}{\s95\ql \li0\ri0\sa240\pagebb\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \b\f1\fs28\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext0 HeadingAppendix 1;}{
+\s96\ql \li0\ri0\sa240\pagebb\widctlpar\faauto\adjustright\rin0\lin0\itap0 \b\fs28\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \snext96 Contents;}{\s97\ql \li0\ri0\sb240\sa240\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 
+\b\f1\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon95 \snext0 HeadingAppendix 2;}{\s98\ql \li0\ri0\sb120\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \b\f1\fs22\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 
+\sbasedon95 \snext0 HeadingAppendix 3;}{\s99\ql \li0\ri0\widctlpar\faauto\adjustright\rin0\lin0\itap0 \f1\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \snext99 Style0;}{\*\cs100 \additive \fs16 \sbasedon10 \ssemihidden annotation reference;}{
+\s101\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext101 Body Text 2;}{\s102\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 
+\b\fs20\ul\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon3 \snext102 Heading 3b;}{\s103\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext103 
+Body Text 3;}{\s104\ql \li2127\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin2127\itap0 \f2\fs18\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext104 indent;}{
+\s105\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \cbpat9 \f35\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext105 \ssemihidden Document Map;}{
+\s106\ql \li360\ri0\nowidctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin360\itap0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext0 Definition List;}{\*\cs107 \additive \f2\fs20 Typewriter;}{
+\s108\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext108 \styrsid10576049 Normal (Web);}{\*\cs109 \additive \f2\fs20 
+\styrsid14683277 CODE;}{\s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 \sbasedon0 \snext0 \styrsid14683277 keyword;}{\*\ts111\tsrowd\trbrdrt\brdrs\brdrw10 
+\trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 
+\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tscellwidthfts0\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv \ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 
+\fs20\lang1024\langfe1024\cgrid\langnp1024\langfenp1024 \sbasedon11 \snext111 \styrsid14683277 Table Grid;}{\*\cs112 \additive \f2\lang2057\langfe2057\langnp2057\langfenp2057 \sbasedon10 \slink15 \styrsid14762227 Code Paragraph Char;}{\*\cs113 \additive 
+\ul\cf12 \sbasedon10 \styrsid9534246 FollowedHyperlink;}{\*\ts114\tsrowd\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv
+\brdrs\brdrw15\brdrcf1 \trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tscellwidthfts0\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv 
+\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs20\lang1024\langfe1024\cgrid\langnp1024\langfenp1024 \sbasedon11 \snext114 \styrsid8743957 Table Grid 5;}{\*\ts114\tsrowd\tsbrdrb\brdrs\brdrw30\brdrcf1 
+\tsbrdrdgl\brdrnil\tsbrdrdgr\brdrnil \tscfirstrow Table Grid 5;}{\*\ts114\tsrowd\tsbrdrdgl\brdrnil\tsbrdrdgr\brdrnil \b \tsclastrow Table Grid 5;}{\*\ts114\tsrowd\tsbrdrdgl\brdrnil\tsbrdrdgr\brdrnil \b \tsclastcol Table Grid 5;}{\*\ts114\tsrowd\tsbrdrdgl
+\brdrs\brdrw15\brdrcf1 \tsbrdrdgr\brdrnil \tscnwcell Table Grid 5;}}{\*\listtable{\list\listtemplateid413445490\listsimple{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li643\jclisttab\tx643\lin643 }{\listname ;}\listid-125}{\list\listtemplateid-160769062\listsimple{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0
+{\leveltext\'02\'00.;}{\levelnumbers\'01;}\fi-360\li360\jclisttab\tx360\lin360 }{\listname ;}\listid-120}{\list\listtemplateid1087909162\listsimple{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0
+{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360\lin360 }{\listname ;}\listid-119}{\list\listtemplateid-1\listsimple{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat0\levelspace0\levelindent0
+{\leveltext\'01*;}{\levelnumbers;}}{\listname ;}\listid-2}{\list\listtemplateid-1767052060\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807553
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li720\jclisttab\tx720\lin720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807555\'01o;}{\levelnumbers;}
+\f2\fbias0 \fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807557\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li2160
+\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807553\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li2880\jclisttab\tx2880\lin2880 }
+{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807555\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li3600\jclisttab\tx3600\lin3600 }{\listlevel\levelnfc23\levelnfcn23
+\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807557\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li4320\jclisttab\tx4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0
+\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807553\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li5040\jclisttab\tx5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1
+\levelspace360\levelindent0{\leveltext\leveltemplateid134807555\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li5760\jclisttab\tx5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0
+{\leveltext\leveltemplateid134807557\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li6480\jclisttab\tx6480\lin6480 }{\listname ;}\listid260187019}{\list\listtemplateid-377692692{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0
+\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fs20\fbias0 \fi-360\li720\jclisttab\tx720\lin720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01o;}{\levelnumbers;}\f2\fs20\fbias0 \fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fs20\fbias0 
+\fi-360\li2160\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fs20\fbias0 \fi-360\li2880\jclisttab\tx2880\lin2880 }
+{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fs20\fbias0 \fi-360\li3600\jclisttab\tx3600\lin3600 }{\listlevel\levelnfc23\levelnfcn23\leveljc0
+\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fs20\fbias0 \fi-360\li4320\jclisttab\tx4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0
+\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fs20\fbias0 \fi-360\li5040\jclisttab\tx5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3929 ?;}{\levelnumbers;}\f10\fs20\fbias0 \fi-360\li5760\jclisttab\tx5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fs20\fbias0 
+\fi-360\li6480\jclisttab\tx6480\lin6480 }{\listname ;}\listid533469511}{\list\listtemplateid-1701445396\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext
+\leveltemplateid134807553\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li720\jclisttab\tx720\lin720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807555
+\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807557\'01\u-3929 ?;}{\levelnumbers;}
+\f10\fbias0 \fi-360\li2160\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807553\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li2880
+\jclisttab\tx2880\lin2880 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807555\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li3600\jclisttab\tx3600\lin3600 }
+{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807557\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li4320\jclisttab\tx4320\lin4320 }{\listlevel\levelnfc23
+\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807553\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li5040\jclisttab\tx5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0
+\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807555\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li5760\jclisttab\tx5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1
+\levelspace360\levelindent0{\leveltext\leveltemplateid134807557\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li6480\jclisttab\tx6480\lin6480 }{\listname ;}\listid593591032}{\list\listtemplateid-2049286432\listhybrid{\listlevel\levelnfc23\levelnfcn23
+\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807553\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li720\jclisttab\tx720\lin720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0
+\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807555\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360
+\levelindent0{\leveltext\leveltemplateid134807557\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li2160\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext
+\leveltemplateid134807553\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li2880\jclisttab\tx2880\lin2880 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807555
+\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li3600\jclisttab\tx3600\lin3600 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807557\'01\u-3929 ?;}{\levelnumbers;}
+\f10\fbias0 \fi-360\li4320\jclisttab\tx4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807553\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li5040
+\jclisttab\tx5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807555\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li5760\jclisttab\tx5760\lin5760 }
+{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807557\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li6480\jclisttab\tx6480\lin6480 }{\listname 
+;}\listid821848375}{\list\listtemplateid134807553\listsimple{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360\lin360 
+}{\listname ;}\listid851724354}{\list\listtemplateid595382522\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807553\'01\u-3913 ?;}{\levelnumbers;}
+\f3\fbias0 \fi-360\li720\jclisttab\tx720\lin720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807555\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li1440
+\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807557\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li2160\jclisttab\tx2160\lin2160 }
+{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807553\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li2880\jclisttab\tx2880\lin2880 }{\listlevel\levelnfc23
+\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807555\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li3600\jclisttab\tx3600\lin3600 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0
+\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807557\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li4320\jclisttab\tx4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1
+\levelspace360\levelindent0{\leveltext\leveltemplateid134807553\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li5040\jclisttab\tx5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0
+{\leveltext\leveltemplateid134807555\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li5760\jclisttab\tx5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807557
+\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li6480\jclisttab\tx6480\lin6480 }{\listname ;}\listid886523925}{\list\listtemplateid490608654{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0
+{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fs20\fbias0 \fi-360\li720\jclisttab\tx720\lin720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01o;}{\levelnumbers;}\f2\fs20\fbias0 
+\fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fs20\fbias0 \fi-360\li2160\jclisttab\tx2160\lin2160 }
+{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fs20\fbias0 \fi-360\li2880\jclisttab\tx2880\lin2880 }{\listlevel\levelnfc23\levelnfcn23\leveljc0
+\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fs20\fbias0 \fi-360\li3600\jclisttab\tx3600\lin3600 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0
+\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fs20\fbias0 \fi-360\li4320\jclisttab\tx4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3929 ?;}{\levelnumbers;}\f10\fs20\fbias0 \fi-360\li5040\jclisttab\tx5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fs20\fbias0 
+\fi-360\li5760\jclisttab\tx5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fs20\fbias0 \fi-360\li6480\jclisttab\tx6480\lin6480 }
+{\listname ;}\listid1101529995}{\list\listtemplateid-1965017420\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807553\'01\u-3913 ?;}{\levelnumbers;}
+\f3\fbias0 \fi-360\li720\jclisttab\tx720\lin720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807555\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li1440
+\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807557\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li2160\jclisttab\tx2160\lin2160 }
+{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807553\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li2880\jclisttab\tx2880\lin2880 }{\listlevel\levelnfc23
+\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807555\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li3600\jclisttab\tx3600\lin3600 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0
+\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807557\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li4320\jclisttab\tx4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1
+\levelspace360\levelindent0{\leveltext\leveltemplateid134807553\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li5040\jclisttab\tx5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0
+{\leveltext\leveltemplateid134807555\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li5760\jclisttab\tx5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807557
+\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li6480\jclisttab\tx6480\lin6480 }{\listname ;}\listid1173060617}{\list\listtemplateid2110546256{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0
+{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fs20\fbias0 \fi-360\li720\jclisttab\tx720\lin720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01o;}{\levelnumbers;}\f2\fs20\fbias0 
+\fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fs20\fbias0 \fi-360\li2160\jclisttab\tx2160\lin2160 }
+{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fs20\fbias0 \fi-360\li2880\jclisttab\tx2880\lin2880 }{\listlevel\levelnfc23\levelnfcn23\leveljc0
+\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fs20\fbias0 \fi-360\li3600\jclisttab\tx3600\lin3600 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0
+\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fs20\fbias0 \fi-360\li4320\jclisttab\tx4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3929 ?;}{\levelnumbers;}\f10\fs20\fbias0 \fi-360\li5040\jclisttab\tx5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fs20\fbias0 
+\fi-360\li5760\jclisttab\tx5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fs20\fbias0 \fi-360\li6480\jclisttab\tx6480\lin6480 }
+{\listname ;}\listid1174108523}{\list\listtemplateid-1198754566{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fs20\fbias0 \fi-360\li720
+\jclisttab\tx720\lin720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01o;}{\levelnumbers;}\f2\fs20\fbias0 \fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23
+\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fs20\fbias0 \fi-360\li2160\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1
+\levelspace0\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fs20\fbias0 \fi-360\li2880\jclisttab\tx2880\lin2880 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3929 ?;}{\levelnumbers;}\f10\fs20\fbias0 \fi-360\li3600\jclisttab\tx3600\lin3600 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fs20\fbias0 
+\fi-360\li4320\jclisttab\tx4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fs20\fbias0 \fi-360\li5040\jclisttab\tx5040\lin5040 }
+{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fs20\fbias0 \fi-360\li5760\jclisttab\tx5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0
+\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fs20\fbias0 \fi-360\li6480\jclisttab\tx6480\lin6480 }{\listname ;}\listid1201212338}{\list\listtemplateid2068220956\listhybrid{\listlevel
+\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807553\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li720\jclisttab\tx720\lin720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0
+\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807555\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1
+\levelspace360\levelindent0{\leveltext\leveltemplateid134807557\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li2160\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0
+{\leveltext\leveltemplateid134807553\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li2880\jclisttab\tx2880\lin2880 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext
+\leveltemplateid134807555\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li3600\jclisttab\tx3600\lin3600 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807557
+\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li4320\jclisttab\tx4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807553
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li5040\jclisttab\tx5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807555\'01o;}{\levelnumbers;}
+\f2\fbias0 \fi-360\li5760\jclisttab\tx5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807557\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li6480
+\jclisttab\tx6480\lin6480 }{\listname ;}\listid1406613271}{\list\listtemplateid-1550962184\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807553
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li720\jclisttab\tx720\lin720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807555\'01o;}{\levelnumbers;}
+\f2\fbias0 \fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807557\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li2160
+\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807553\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li2880\jclisttab\tx2880\lin2880 }
+{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807555\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li3600\jclisttab\tx3600\lin3600 }{\listlevel\levelnfc23\levelnfcn23
+\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807557\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li4320\jclisttab\tx4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0
+\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807553\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li5040\jclisttab\tx5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1
+\levelspace360\levelindent0{\leveltext\leveltemplateid134807555\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li5760\jclisttab\tx5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0
+{\leveltext\leveltemplateid134807557\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li6480\jclisttab\tx6480\lin6480 }{\listname ;}\listid1444497207}{\list\listtemplateid1971341882\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0
+\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807553\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li720\jclisttab\tx720\lin720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1
+\levelspace360\levelindent0{\leveltext\leveltemplateid134807555\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0
+{\leveltext\leveltemplateid134807557\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li2160\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext
+\leveltemplateid134807553\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li2880\jclisttab\tx2880\lin2880 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807555
+\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li3600\jclisttab\tx3600\lin3600 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807557\'01\u-3929 ?;}{\levelnumbers;}
+\f10\fbias0 \fi-360\li4320\jclisttab\tx4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807553\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li5040
+\jclisttab\tx5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807555\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li5760\jclisttab\tx5760\lin5760 }
+{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807557\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li6480\jclisttab\tx6480\lin6480 }{\listname 
+;}\listid1670518769}{\list\listtemplateid-2049286432{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fs24 \fi-360\li720\jclisttab\tx720\lin720 }
+{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0
+\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li2160\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360
+\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li2880\jclisttab\tx2880\lin2880 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\'01o;}{\levelnumbers;}
+\f2\fbias0 \fi-360\li3600\jclisttab\tx3600\lin3600 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li4320\jclisttab\tx4320\lin4320 }
+{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li5040\jclisttab\tx5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0
+\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li5760\jclisttab\tx5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0
+{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li6480\jclisttab\tx6480\lin6480 }{\listname ;}\listid1671563407}{\list\listtemplateid1435262888\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1
+\levelspace360\levelindent0{\leveltext\leveltemplateid134807553\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li720\jclisttab\tx720\lin720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0
+{\leveltext\leveltemplateid134807555\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807557
+\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li2160\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807553
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li2880\jclisttab\tx2880\lin2880 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807555\'01o;}{\levelnumbers;}
+\f2\fbias0 \fi-360\li3600\jclisttab\tx3600\lin3600 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807557\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li4320
+\jclisttab\tx4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807553\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li5040\jclisttab\tx5040\lin5040 }
+{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807555\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li5760\jclisttab\tx5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23
+\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807557\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li6480\jclisttab\tx6480\lin6480 }{\listname ;}\listid1687365765}{\list\listtemplateid-229606334
+{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fs20\fbias0 \fi-360\li720\jclisttab\tx720\lin720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0
+\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01o;}{\levelnumbers;}\f2\fs20\fbias0 \fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0
+{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fs20\fbias0 \fi-360\li2160\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}
+\f10\fs20\fbias0 \fi-360\li2880\jclisttab\tx2880\lin2880 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fs20\fbias0 \fi-360\li3600
+\jclisttab\tx3600\lin3600 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fs20\fbias0 \fi-360\li4320\jclisttab\tx4320\lin4320 }{\listlevel\levelnfc23
+\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fs20\fbias0 \fi-360\li5040\jclisttab\tx5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0
+\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3929 ?;}{\levelnumbers;}\f10\fs20\fbias0 \fi-360\li5760\jclisttab\tx5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext
+\'01\u-3929 ?;}{\levelnumbers;}\f10\fs20\fbias0 \fi-360\li6480\jclisttab\tx6480\lin6480 }{\listname ;}\listid1772507664}{\list\listtemplateid-1892096414\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1
+\levelspace360\levelindent0{\leveltext\leveltemplateid134807553\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li720\jclisttab\tx720\lin720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0
+{\leveltext\leveltemplateid134807555\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807557
+\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li2160\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807553
+\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li2880\jclisttab\tx2880\lin2880 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807555\'01o;}{\levelnumbers;}
+\f2\fbias0 \fi-360\li3600\jclisttab\tx3600\lin3600 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807557\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li4320
+\jclisttab\tx4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807553\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li5040\jclisttab\tx5040\lin5040 }
+{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807555\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li5760\jclisttab\tx5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23
+\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807557\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li6480\jclisttab\tx6480\lin6480 }{\listname ;}\listid1841195362}{\list\listtemplateid134807553
+\listsimple{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360\lin360 }{\listname ;}\listid1984265665}
+{\list\listtemplateid2043707376\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807553\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li720
+\jclisttab\tx720\lin720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807555\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel
+\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807557\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li2160\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23
+\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807553\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li2880\jclisttab\tx2880\lin2880 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0
+\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807555\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li3600\jclisttab\tx3600\lin3600 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1
+\levelspace360\levelindent0{\leveltext\leveltemplateid134807557\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li4320\jclisttab\tx4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0
+{\leveltext\leveltemplateid134807553\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li5040\jclisttab\tx5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext
+\leveltemplateid134807555\'01o;}{\levelnumbers;}\f2\fbias0 \fi-360\li5760\jclisttab\tx5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid134807557
+\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0 \fi-360\li6480\jclisttab\tx6480\lin6480 }{\listname ;}\listid2084837044}}{\*\listoverridetable{\listoverride\listid-119\listoverridecount0\ls1}{\listoverride\listid-120\listoverridecount0\ls2}
+{\listoverride\listid-125\listoverridecount0\ls3}{\listoverride\listid-119\listoverridecount0\ls4}{\listoverride\listid-120\listoverridecount0\ls5}{\listoverride\listid-125\listoverridecount0\ls6}{\listoverride\listid-119\listoverridecount0\ls7}
+{\listoverride\listid-120\listoverridecount0\ls8}{\listoverride\listid-125\listoverridecount0\ls9}{\listoverride\listid-119\listoverridecount0\ls10}{\listoverride\listid-120\listoverridecount0\ls11}{\listoverride\listid-125\listoverridecount0\ls12}
+{\listoverride\listid-119\listoverridecount0\ls13}{\listoverride\listid-120\listoverridecount0\ls14}{\listoverride\listid-125\listoverridecount0\ls15}{\listoverride\listid-119\listoverridecount0\ls16}{\listoverride\listid-120\listoverridecount0\ls17}
+{\listoverride\listid-125\listoverridecount0\ls18}{\listoverride\listid-119\listoverridecount0\ls19}{\listoverride\listid-120\listoverridecount0\ls20}{\listoverride\listid-125\listoverridecount0\ls21}{\listoverride\listid-119\listoverridecount0\ls22}
+{\listoverride\listid-120\listoverridecount0\ls23}{\listoverride\listid-125\listoverridecount0\ls24}{\listoverride\listid-119\listoverridecount0\ls25}{\listoverride\listid-120\listoverridecount0\ls26}{\listoverride\listid-125\listoverridecount0\ls27}
+{\listoverride\listid-119\listoverridecount0\ls28}{\listoverride\listid-120\listoverridecount0\ls29}{\listoverride\listid-125\listoverridecount0\ls30}{\listoverride\listid-119\listoverridecount0\ls31}{\listoverride\listid-120\listoverridecount0\ls32}
+{\listoverride\listid-125\listoverridecount0\ls33}{\listoverride\listid-119\listoverridecount0\ls34}{\listoverride\listid-120\listoverridecount0\ls35}{\listoverride\listid-125\listoverridecount0\ls36}{\listoverride\listid-2\listoverridecount1{\lfolevel
+\listoverrideformat{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat0\levelold\levelspace0\levelindent360{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\lin360 }}\ls37}{\listoverride\listid-2
+\listoverridecount1{\lfolevel\listoverrideformat{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelold\levelspace0\levelindent360{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\lin360 }}\ls38}
+{\listoverride\listid1101529995\listoverridecount0\ls39}{\listoverride\listid1984265665\listoverridecount0\ls40}{\listoverride\listid-2\listoverridecount1{\lfolevel\listoverrideformat{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0
+\levelstartat0\levelold\levelspace0\levelindent360{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li720\lin720 }}\ls41}{\listoverride\listid851724354\listoverridecount0\ls42}{\listoverride\listid1772507664\listoverridecount0\ls43}
+{\listoverride\listid1174108523\listoverridecount0\ls44}{\listoverride\listid1201212338\listoverridecount0\ls45}{\listoverride\listid2084837044\listoverridecount0\ls46}{\listoverride\listid1406613271\listoverridecount0\ls47}{\listoverride\listid533469511
+\listoverridecount0\ls48}{\listoverride\listid821848375\listoverridecount0\ls49}{\listoverride\listid593591032\listoverridecount0\ls50}{\listoverride\listid1671563407\listoverridecount0\ls51}{\listoverride\listid1841195362\listoverridecount0\ls52}
+{\listoverride\listid1173060617\listoverridecount0\ls53}{\listoverride\listid1687365765\listoverridecount0\ls54}{\listoverride\listid260187019\listoverridecount0\ls55}{\listoverride\listid1444497207\listoverridecount0\ls56}{\listoverride\listid886523925
+\listoverridecount0\ls57}{\listoverride\listid1670518769\listoverridecount0\ls58}}{\*\revtbl {Unknown;}}{\*\pgptbl {\pgp\ipgp13\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp0\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp32\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp13\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp32\itap0
+\li0\ri0\sb0\sa0}{\pgp\ipgp2\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp13\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp43\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp13\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp2\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp13\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp37\itap0\li0\ri0\sb0
+\sa0}{\pgp\ipgp0\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp40\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp32\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp28\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp13\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp25\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp32\itap0\li0\ri0\sb0\sa0}{\pgp
+\ipgp32\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp13\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp2\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp32\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp32\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp0\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp32\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp13
+\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp0\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp32\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp32\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp13\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp0\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp13\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp13\itap0\li0
+\ri0\sb0\sa0}{\pgp\ipgp32\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp32\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp0\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp32\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp13\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp0\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp13\itap0\li0\ri0\sb0\sa0
+}{\pgp\ipgp13\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp0\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp32\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp13\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp32\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp13\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp32\itap0\li0\ri0\sb0\sa0}{\pgp
+\ipgp13\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp13\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp32\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp32\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp13\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp32\itap0\li0\ri0\sb0\sa0}}{\*\rsidtbl \rsid293946\rsid657056\rsid1735350
+\rsid1917381\rsid2240616\rsid2562411\rsid2764289\rsid3299464\rsid3552037\rsid3754124\rsid3949151\rsid4267725\rsid4420163\rsid4529877\rsid5120752\rsid5598066\rsid6424832\rsid6900756\rsid6956791\rsid7166973\rsid7230975\rsid8082533\rsid8262194\rsid8399123
+\rsid8743957\rsid8807119\rsid8814113\rsid8989702\rsid9400752\rsid9534246\rsid9575677\rsid9846767\rsid9990809\rsid10449189\rsid10576049\rsid10626422\rsid11156090\rsid11158436\rsid11426236\rsid11624676\rsid11823531\rsid12202278\rsid12610959\rsid12875944
+\rsid13382535\rsid13451011\rsid14632474\rsid14683277\rsid14762227\rsid14972466\rsid15690730\rsid15746571\rsid15926123\rsid15948434\rsid16319362\rsid16475512}{\*\generator Microsoft Word 10.0.4219;}{\info{\title DDK}{\subject Using drivers for patching}
+{\author William Roberts}{\operator Symbian}{\creatim\yr2001\mo5\dy24\hr14\min31}{\revtim\yr2004\mo1\dy21\hr14}{\printim\yr2004\mo1\dy20\hr14\min14}{\version27}{\edmins544}{\nofpages27}{\nofwords8094}{\nofchars46137}{\*\company Symbian}{\nofcharsws54123}
+{\vern16469}}\paperw11907\paperh16840\margl794\margr862\margt851\margb851\gutter510 \widowctrl\ftnbj\aenddoc\noxlattoyen\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\linkstyles\hyphcaps0\formshade\horzdoc\dghspace120\dgvspace120\dghorigin1701\dgvorigin1984
+\dghshow0\dgvshow3\jcompress\viewkind1\viewscale100\nolnhtadjtbl\rsidroot5598066 \fet0\sectd \psz9\sbknone\linex0\headery709\footery537\colsx709\endnhere\titlepg\sectdefaultcl\sectrsid8807119\sftnbj {\header \pard\plain \qc \li0\ri0\widctlpar\brdrb
+\brdrs\brdrw10\brsp20 \aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid8989702 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\b\insrsid3552037\charrsid8989702 Making a ROM image}{\b\i\insrsid3552037\charrsid8989702 
+\par }\pard\plain \s45\ql \li0\ri0\widctlpar\tqc\tx4536\tqr\tx9072\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \caps\fs18\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid3552037 \tab \tab 
+\par }}{\footer \pard\plain \s44\ql \li0\ri0\widctlpar\brdrt\brdrs\brdrw15\brsp20 \tqc\tx4536\tqr\tx9072\aspalpha\aspnum\faauto\adjustright\rin0\lin0\rtlgutter\itap0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid3552037 \tab Last saved }
+{\field{\*\fldinst {\insrsid3552037  SAVEDATE  \\@ "d-MMM-yy"  \\* MERGEFORMAT }}{\fldrslt {\lang1024\langfe1024\noproof\insrsid16319362 21-Jan-04}}}{\insrsid3552037  by }{\field{\*\fldinst {\insrsid3552037  LASTSAVEDBY  \\* MERGEFORMAT }}{\fldrslt {
+\lang1024\langfe1024\noproof\insrsid15926123 Symbian}}}{\insrsid3552037  \tab }{\field{\*\fldinst {\cs43\b\insrsid3552037 PAGE}}{\fldrslt {\cs43\b\lang1024\langfe1024\noproof\insrsid16319362 9}}}{\insrsid3552037 
+\par }}{\footerf \pard\plain \s44\ql \li0\ri0\widctlpar\brdrt\brdrs\brdrw15\brsp20 \tqc\tx4536\tqr\tx9072\aspalpha\aspnum\faauto\adjustright\rin0\lin0\rtlgutter\itap0\pararsid8989702 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid3552037 
+\tab Last saved }{\field{\*\fldinst {\insrsid3552037  SAVEDATE  \\@ "d-MMM-yy"  \\* MERGEFORMAT }}{\fldrslt {\lang1024\langfe1024\noproof\insrsid16319362 21-Jan-04}}}{\insrsid3552037  by }{\field{\*\fldinst {\insrsid3552037  LASTSAVEDBY  \\* MERGEFORMAT }
+}{\fldrslt {\lang1024\langfe1024\noproof\insrsid15926123 Symbian}}}{\insrsid3552037  \tab }{\field{\*\fldinst {\cs43\b\insrsid3552037 PAGE}}{\fldrslt {\cs43\b\lang1024\langfe1024\noproof\insrsid16319362 1}}}{\insrsid3552037 
+\par }\pard\plain \s42\ql \li0\ri0\widctlpar\brdrt\brdrs\brdrw15\brsp20 \tqc\tx4536\tqr\tx9072\aspalpha\aspnum\faauto\adjustright\rin0\lin0\rtlgutter\itap0 \fs18\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid3552037 
+\par }}{\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta ?}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang {\pntxta ?}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta ?}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta ?}}
+{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb ?}{\pntxta ?}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb ?}{\pntxta ?}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb ?}{\pntxta ?}}{\*\pnseclvl8
+\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb ?}{\pntxta ?}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb ?}{\pntxta ?}}\pard\plain 
+\s1\ql \li0\ri0\sb360\sa240\keepn\pagebb\widctlpar\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin0\lin0\itap0 \b\f1\fs40\lang2057\langfe2057\kerning28\cgrid\langnp2057\langfenp2057 {\insrsid15948434 Making a ROM image}{
+\insrsid15948434\charrsid14972466 
+\par }\pard\plain \s2\ql \li0\ri0\sb120\keepn\widctlpar\brdrt\brdrs\brdrw60\brsp20 \tqr\tx9072\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\rtlgutter\itap0 \b\f1\fs34\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 
+Introduction
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid3299464 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 This section }{\insrsid8814113 describes}{\insrsid15948434 
+ the syntax and use of the ROM building tool, the organisation and format of the obey files which drives the operation of the tool and finally describes t}{\insrsid8814113 he structure and format of }{\insrsid15948434 ROM images.
+\par }\pard \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 {\insrsid10576049 The tool used to build a ROM image is }{\insrsid8814113 BUILDROM}{\insrsid10576049 . This tool uses two other tools }{
+\insrsid8814113 ROMBUILD}{\insrsid10576049  and }{\insrsid8814113 ROFSBUILD}{\insrsid10576049  to produced ROM images. The }{\insrsid8814113 ROMBUILD }{\insrsid10576049 tool is used for XIP ROMs. }{\insrsid8814113 ROFSBUILD }{\insrsid10576049 is used 
+for Non-XIP ROMs.
+\par }{\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057\insrsid10576049 {\object\objemb\objw9796\objh2160\objscalex99\objscaley99
+{\*\objclass Word.Picture.8}{\*\objdata 01050000020000000f000000576f72642e506963747572652e38000000000000000000005c0000
+d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff0900060000000000000000000000010000000100000000000000001000000200000001000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffdffffff0c000000feffffff0d00000005000000060000000700000008000000090000000a0000000b000000feffffff1c0000000e0000000f00000010000000110000001200000013000000feffffff15000000160000001700000018000000190000001a0000001b000000fefffffffeffffff1e00
+00001f0000002000000021000000220000002300000024000000feffffff260000002700000028000000290000002a0000002b0000002c000000feffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffff040000000709020000000000c000000000000046000000000000000000000000b017
+23e426e0c30103000000400e00000000000001004f006c00650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000201ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000
+000000000000000000000000140000000000000031005400610062006c006500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0002010100000003000000ffffffff0000000000000000000000000000000000000000000000000000
+00000000000000000000040000000010000000000000010043006f006d0070004f0062006a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012000201ffffffffffffffffffffffff000000000000000000000000000000000000000000000000
+000000000000000000000000010000006800000000000000feffffff02000000fefffffffeffffff05000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f000000100000001100000012000000130000001400000015000000160000001700000018000000190000001a00
+00001b0000001c0000001d0000001e0000001f000000200000002100000022000000230000002400000025000000260000002700000028000000290000002a0000002b0000002c0000002d0000002e0000002f000000300000003100000032000000330000003400000035000000360000003700000038000000feffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff010000020000000000000000000000000000000030451b00000000000000000000000000000000000000000000000000000000000000000000000000000000000100feff030a0000ffffffff0709020000000000c0000000000000461700
+00004d6963726f736f667420576f72642050696374757265000a0000004d53576f7264446f63000f000000576f72642e506963747572652e3800f439b27100000000000000000000000000000000000000000000000000000000000000000000000000000300040000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000ffffffff030000000400000001000000ffffffff00000000000000007d430000e20e0000e00c00000100090000037006000007002800000000001400000026060f001e00ffffffff040014000000576f72640e004d6963726f73
+6f667420576f7264050000000b0200000000050000000c028403f10f1c000000fb021000070000000000bc02000000000102022253797374656d000000000a000000040000000000ffffffff0100000000003000040000002d010000050000000201010000001c000000fb02adff00000000000090010000000004400022
+417269616c00f47740000000b2060aa453a8f4775ca8f4770100000000003000040000002d01010012000f000a0001005b000f00020000000000000038000040f1ff020038000c0006004e006f0072006d0061006c0000000200000018004f4a0200514a02005f4801046d48090873480908744809040000000000000000
+000000000000000000003c004140f2ffa1003c000c011600440065006600610075006c0074002000500061007200610067007200610070006800200046006f006e007400000000000000000000000000000000000a000000150000001f00000034000000480000005d0000006c0000007f0000008f000000010000000000
+00000000ffffffff020400000000000001000000000000000000ffffffff070400000000000001000000000000000000ffffffff060400000000000001000000000000000000ffffffff0b0400000000000001000000000000000000ffffffff100400000000000001000000000000000000ffffffff1104000000000000
+01000000000000000000ffffffff150400000000000001000000000000000000ffffffff1604000000000000ffffffff000000000000000000000000000000000000000000000a000000150000001f00000034000000480000005d0000006c0000007f000000820000000000000000000100000000000200000000000300
+00000000040000000000050000000000060000000000070000000000ffff00000000000000008f0000000900000c00000000ffffffff010000000420ffff010000000000000000008f000000000000000000000400008f04000003000000000400008f04000004000000000400008e040000050000000f0000f038000000
+000006f01800000002080000020000001500000001000000010000001700000040001ef110000000ffff00000000ff0080808000f7000010000f0002f052050000100008f0080000000e000000160400000f0003f0f00400000f0004f028000000010009f0100000000000000000000000000000000000000002000af008
+00000000040000050000000f0004f048000000a20c0af0080000000b040000000a000023000bf00c000000800000000400ff0100000800000010f00400000008000000000011f0040000001700000000000df004000000000004000f0004f048000000a20c0af00800000011040000000a000023000bf00c000000800000
+000600ff0100000800000010f00400000009000000000011f0040000001000000000000df004000000000006000f0004f04e000000a20c0af00800000015040000000a000033000bf0120000008000000007008a0015040000ff0100000800000010f00400000001000000000011f0040000001500000000000df0040000
+00000007000f0004f04e000000a20c0af00800000016040000000a000033000bf0120000008000000008008a0016040000ff0100000800000010f00400000003000000000011f0040000001900000000000df004000000000008000f0004f04200000012000af00800000002040000000a000013000bf006000000800000
+000100000010f00400000007000000000011f0040000000e00000000000df004000000000001000f0004f04200000012000af00800000006040000000a000013000bf006000000800000000300000010f00400000000000000000011f0040000001300000000000df004000000000003000f0004f04200000012000af008
+00000007040000000a000013000bf006000000800000000200000010f00400000005000000000011f0040000001900000000000df004000000000002000f0004f04e00000042010af00800000008040000000a000053000bf01e0000004401040000007f0100000100bf0100001000d10102000000ff0110001000000010
+f00400000006000000000011f0040000000e0000000f0004f09400000002000af0080000000e040000000a000093000bf06400000042017008000043014002000044010400000045c11000000046c1180000007f0101000100bf0100001000d00102000000ff011000100004000400f0ff70080000200100002001400200
+00400209000c000200004000ac010000ac010000ac010000ac0080000010f0040000000c000000000011f004000000090000000f0004f09a00000002000af0080000000f040000000a0000a3000bf06a00000042017008000043014002000044010400000045c11000000046c1180000007f0101000100bf0100001000d0
+0102000000d10100000000ff011000100004000400f0ff7008400220014002200100000000000009000c000200004000ac010000ac010000ac010000ac0080000010f0040000000b000000000011f004000000090000000f0004f04e000000a20c0af00800000010040000000a000033000bf0120000008000000005008a
+0010040000ff0100000800000010f0040000000a000000000011f0040000000d00000000000df004000000000005000f0004f04e00000042010af00800000013040000000a000053000bf01e0000004401040000007f0100000100bf0100001000d10102000000ff0110001000000010f00400000002000000000011f004
+000000110000000f0004f04e00000042010af00800000014040000000a000053000bf01e0000004401040000007f0100000100bf0100001000d10102000000ff0110001000000010f00400000004000000000011f004000000120000000f0004f04200000012000af00800000001040000000e000053000bf01e000000bf
+0100001000cb0100000000ff01000008000403090000003f0301000100000011f00400000001000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000008f000000060400006015000023010000901b000063030000740000000000150400
+00d01d0000b3010000202500006303000074000100000013040000901b000043020000d01d00004302000074000000000016040000d01d00003306000040260000e307000074000100000014040000901b0000c6060000d01d0000c60600007400000000000704000060150000a3050000901b0000e30700007400000000
+000804000090000000830400005007000083040000740000000000020400005007000063030000f00c0000a30500007400000000000b04000000000000d3020000e00700008304000074000000000011040000800d0000c3060000d01400007308000074000000000010040000800d000003000000d0140000b301000074
+00010000000f040000f00c00008304000060150000c30600007400000000000e040000f00c0000b301000060150000f3030000740000000000000000000e0000002d00000035000000420000004a000000560000005f00000090000000070007001c0007001c0007001c000700000000000e0000002d0000003500000042
+0000004a000000560000005f00000090000000070007001a0007001a0007001a000700ff400380010000000000000000003082c20501000100000000000000000000000000000000000210000000000000008f00000090000008004000000300000047169001000002020603050405020304877a00000000008008000000
+00000000ff00000000000000540069006d006500730020004e0065007700200052006f006d0061006e00000035169001020005050102010706020507000000000000001000000000000000000000008000000000530079006d0062006f006c000000332690010000020b0604020202020204877a00000000008008000000
+00000000ff0000000000000041007200690061006c000000220004007108881800f0d00200006801000000008c7a81868f7a8186000000000200010000000000000000000000010001000000040083100100000000000000000000000100010000000100000000000000210300f010040000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a506c007b400b40080003e300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000020000000d03ffff120000000000000000000000000000000e004b0075006c0064006900700020004e00610072006f007400720061000e004b0075006c0064006900700020004e00610072006f0074007200610000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003004f0062006a0049006e0066006f00000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000120002010200000006000000ffffffff0000000000000000000000000000000000000000000000000000000000000000000000000300000006000000000000004f0062006a0065006300740050006f006f006c00
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000101ffffffffffffffffffffffff0000000000000000000000000000000000000000b01723e426e0c301b01723e426e0c30100000000000000000000000002004f006c00650050007200650073003000
+30003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000180002010500000008000000ffffffff00000000000000000000000000000000000000000000000000000000000000000000000004000000080d00000000000057006f007200640044006f0063007500
+6d0065006e007400000000000000000000000000000000000000000000000000000000000000000000000000000000001a000200ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000001400000000100000000000000500000009020000000005000000
+02010100000007000000fc020000ffffff000000040000002d01020008000000fa0205000100000000000000040000002d010300040000002d010200090000001d062100f000b40048032d010000040000002d01020007000000fc020000ffffff000000040000002d01040004000000f001020008000000fa0200000000
+000000000000040000002d010200030000001e00070000001604c3010d034b013c00050000000201010000000500000014024d013c00050000002e010100000028000000320a4d013c001300040000000000f10f84036275696c64726f6d206f6265792066696c6573002e002e00130012002e001c002e00470017002e00
+2e002f00280017001800130012002e002a00050000002e01000000000500000014020000000005000000020101000000040000002701ffff07000000fc020000ffffff000000040000002d010500040000002d010300040000002d010500090000001d062100f000b4000c03d102a005040000002d010500040000002d01
+040004000000f0010500040000002d010200030000001e0007000000160467037108ef02dc0505000000020101000000040000002d01010005000000090200000000050000001402f102dc05050000002e010100000028000000320af102dc051300040000000000f10f8403726f66736275696c64206f6265792066696c
+65001c002e0018002a002e002e00120012002e0018002e002e003000280017001800120013002e00050000002e01000000000500000014025b059da905000000020101000000040000002701ffff07000000fc020000ffffff000000040000002d010500040000002d010300040000002d010500090000001d062100f000
+b4000c03b5006c0c040000002d010500040000002d01040004000000f0010500040000002d010200030000001e000700000016044b013d0fd300a80c05000000020101000000040000002d01010005000000090200000000050000001402d500a80c050000002e01010000001f000000320ad500a80c0d00040000000000
+f10f840358495020524f4d20696d6167653d38001700370017003c00410045001800120047002e002e002e00050000002e01000000000500000014025b059da905000000020101000000040000002701ffff07000000fc020000ffffff000000040000002d010500040000002d010300040000002d010500090000001d06
+2100f000b400840395026c0c040000002d010500040000002d01040004000000f0010500040000002d010200030000001e000700000016042b03b50fb302a80c05000000020101000000040000002d01010005000000090200000000050000001402b502a80c050000002e010100000025000000320ab502a80c11000400
+00000000f10f84034e6f6e2058495020524f4d20696d616765653c002e002e00170038001700380017003c00410045001800120047002e002e002e00050000002e01000000000500000014025b059da905000000020101000000040000002701ffff07000000fc020000ffffff000000040000002d01050008000000fa02
+00000600000000000002040000002d010600070000001b045a02650569010c03040000002d01040004000000f0010500040000002d01020004000000f0010600030000001e00070000001604380226058a014b0305000000020101000000040000002d010100050000000902000000000500000014028c015c0305000000
+2e010100000017000000320a8c015c030800040000000000f10f84034255494c44524f4d37003c0017002e003d003c0041004500050000002e01000000000500000014025b059da905000000020101000000040000002701ffff07000000fc020000ffffff000000040000002d01050008000000fa020000060000000000
+0002040000002d010600070000001b046a017d0b7900e808040000002d01040004000000f0010500040000002d01020004000000f0010600030000001e0007000000160448013e0b9a00270905000000020101000000040000002d010100050000000902000000000500000014029c005609050000002e01010000001700
+0000320a9c0056090800040000000000f10f8403524f4d4255494c443c004100450037003c0018002e003c00050000002e01000000000500000014025b059da905000000020101000000040000002701ffff07000000fc020000ffffff000000040000002d01050008000000fa0200000600000000000002040000002d01
+0600070000001b044a037d0b5902e808040000002d01040004000000f0010500040000002d01020004000000f0010600030000001e0007000000160428033e0b7a02270905000000020101000000040000002d010100050000000902000000000500000014027c024409050000002e010100000019000000320a7c024409
+0900040000000000f10f8403524f46534255494c44533c0041003300370037003c0018002e003c00050000002e01000000000500000014025b059da905000000020101000000040000002701ffff1000000026060f001600ffffffff000038000000bd010000110300000702000008000000fa0200000600000000000000
+040000002d01050007000000fc020100000000000000040000002d01060008000000250302003c00e101e202e101040000002d01030004000000f001050007000000fc020000000000000000040000002d0105000c00000024030400cb0202020c03e101cb02c101e002e101040000002d010200040000002d0104000400
+0000f00105000800000026060f000600ffffffff01001000000026060f001600ffffffff00006005000091000000ed080000aa01000008000000fa0200000600000000000000040000002d010500040000002d0106000c00000025030400be08b500dc05b500dc05a5016405a501040000002d01030004000000f0010500
+07000000fc020000000000000000040000002d0105000c00000024030400a708d600e808b500a7089500bc08b500040000002d010200040000002d01040004000000f00105000800000026060f000600ffffffff01001000000026060f001600ffffffff000060050000dd010000ed080000f702000008000000fa020000
+0600000000000000040000002d010500040000002d0106000c00000025030400be08d102dc05d102dc05e1016405e101040000002d01030004000000f001050007000000fc020000000000000000040000002d0105000c00000024030400a708f202e808d102a708b102bc08d102040000002d010200040000002d010400
+04000000f00105000800000026060f000600ffffffff010007000000fc020000ffffff000000040000002d010500040000002d010300040000002d010500090000001d062100f000b4000c030100a005040000002d010500040000002d01040004000000f0010500040000002d010200030000001e000700000016049700
+71081f00dc0505000000020101000000040000002d010100050000000902000000000500000014022100dc05050000002e010100000026000000320a2100dc051200040000000000f10f8403726f6d6275696c64206f6265792066696c651c002e0047002e002e00120012002e0017002e002f002f002800170018001300
+12002e00050000002e01000000000500000014025b059da905000000020101000000040000002701ffff1000000026060f001600ffffffff0000780b0000cd000000710c00001701000008000000fa0200000600000000000000040000002d010500040000002d01060008000000250302007c0bf100420cf10004000000
+2d01030004000000f001050007000000fc020000000000000000040000002d0105000c000000240304002b0c12016c0cf1002b0cd100400cf100040000002d010200040000002d01040004000000f00105000800000026060f000600ffffffff01001000000026060f001600ffffffff0000780b0000ae020000710c0000
+f802000008000000fa0200000600000000000000040000002d010500040000002d01060008000000250302007c0bd202420cd202040000002d01030004000000f001050007000000fc020000000000000000040000002d0105000c000000240304002b0cf3026c0cd2022b0cb202400cd202040000002d01020004000000
+2d01040004000000f00105000800000026060f000600ffffffff0100040000002d010000030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000eca5c1007100090800000012bf0000000000001000000000000400008f0400000e00626a626a742b742b000000000000000000000000000000000000090416001e0c000016410100164101000e00000000000000
+000000000000000000000000000000008000000000000000ffff0f000000000000000000ffff0f000000000000000000ffff0f00000000000000000000000000000000005d0000000000a600000000000000a6000000a600000000000000a600000000000000f201000000000000f201000000000000f201000014000000
+00000000000000002202000000000000220200000000000022020000000000002202000000000000220200000c0000002e0200000c00000022020000000000000e0a0000b6000000460200000000000046020000000000004602000000000000460200000000000046020000000000006b090000000000006b0900000000
+00006b09000000000000d309000002000000d509000000000000d509000000000000d509000000000000d509000000000000d509000000000000d509000024000000c40a0000f4010000b80c000062000000f90900001500000000000000000000000000000000000000f2010000000000006b0900000000000000000000
+000000000000000000000000e10700008a0100006b090000000000006b090000000000006b09000000000000f909000000000000d309000000000000a600000000000000a60000000000000046020000000000000000000000000000460200009b0500004602000000000000d309000000000000d309000000000000d309
+0000000000006b09000034000000a6000000ee0000004602000000000000f2010000000000004602000000000000d30900000000000000000000000000000000000000000000060200000e000000140200000e000000a600000000000000a600000000000000a600000000000000a6000000000000006b09000000000000
+d309000000000000d309000000000000d3090000000000000000000000000000d309000000000000940100005e000000f2010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d309000000000000460200000000
+00003a0200000c00000030a37a7a50dbc301220200000000000022020000000000009f09000034000000d30900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808080808080808080808080d4255494c44524f4d0d0d524f46534255494c440d0d524f4d4255494c440d0d6275696c64726f6d206f6265792066696c65730d0d726f
+6d6275696c64206f6265792066696c650d0d726f66736275696c64206f6265792066696c650d0d58495020524f4d20696d6167650d0d4e6f6e2058495020524f4d20696d6167650d0d0d0d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000d0400008f040000f80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d036a000000005508016d4800040002000400000e040000170400001804000022040000230400002c0400002d040000410400004204000055040000560400006a040000
+6b040000790400007a0400008c0400008d0400008e0400008f040000fd000000000000000000000000fa000000000000000000000000fd000000000000000000000000fa000000000000000000000000fd000000000000000000000000fa000000000000000000000000fd000000000000000000000000fd000000000000
+000000000000fd000000000000000000000000fd000000000000000000000000fd000000000000000000000000fd000000000000000000000000fd000000000000000000000000fd000000000000000000000000fd000000000000000000000000fd000000000000000000000000fd000000000000000000000000fd0000
+00000000000000000000fd00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030000032401000100000013000400000104000002040000030400000404000005040000060400000704000008040000090400000a040000
+0b0400000c0400000d0400000e040000170400001804000022040000230400002c0400002d040000410400004204000055040000560400006a0400006b040000790400007a0400008c0400008d0400008e040000fefefefefefefefefefefefefefe000000000000000000000000000000fefe0000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000201011f1c001fb0cb4e20b0c04e21b0501922b0380f2390dd222490732325b00000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000500530075006d006d0061007200790049006e00
+66006f0072006d006100740069006f006e000000000000000000000000000000000000000000000000000000280002010700000009000000ffffffff0000000000000000000000000000000000000000000000000000000000000000000000001d0000000010000000000000050044006f00630075006d0065006e007400
+530075006d006d0061007200790049006e0066006f0072006d006100740069006f006e000000000000000000000038000200ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000000000000025000000001000000000000000000000000000000000000000000000
+00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000feff00000500020000000000
+00000000000000000000000001000000e0859ff2f94f6810ab9108002b27b3d93000000078010000110000000100000090000000020000009800000003000000a400000004000000b000000005000000c800000006000000d400000007000000e000000008000000f4000000090000000c01000012000000180100000a00
+0000340100000c000000400100000d0000004c0100000e000000580100000f000000600100001000000068010000130000007001000002000000e40400001e00000001000000000073001e00000001000000000073001e0000000f0000004b756c646970204e61726f74726100001e0000000100000000756c641e000000
+0100000000756c641e0000000b0000004e6f726d616c2e646f7400741e0000000f0000004b756c646970204e61726f74726100001e0000000200000032006c641e000000130000004d6963726f736f667420576f726420382e300000400000000046c323000000004000000000d88d0350dbc3014000000000aad76e50db
+c30103000000010000000300000000000000030000000000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000feff000005000200000000000000000000000000000000000200000002d5cdd59c2e1b10939708002b2cf9ae4400000005d5cdd59c2e1b10939708002b2cf9ae34010000f00000000c00
+000001000000680000000f000000700000000500000084000000060000008c0000001100000094000000170000009c0000000b000000a400000010000000ac00000013000000b400000016000000bc0000000d000000c40000000c000000d100000002000000e40400001e0000000c00000053796d6269616e204c746400
+03000000010000000300000001000000030000000000000003000000311508000b000000000000000b000000000000000b000000000000000b000000000000001e1000000100000001000000000c100000020000001e000000060000005469746c6500030000000100000000980000000300000000000000200000000100
+000036000000020000003e00000001000000020000000a0000005f5049445f475549440002000000e4040000410000004e0000007b00440041003100300032003700450043002d0035004500320030002d0034003300410038002d0041003400360039002d00320032004500450045003600360046004300350035003400
+7d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000105000005000000
+0d0000004d45544146494c4550494354007d4300001ef1ffffe80c000008007d43e20e0000
+0100090000037006000007002800000000001400000026060f001e00ffffffff040014000000576f72640e004d6963726f736f667420576f7264050000000b0200000000050000000c028403f10f1c000000fb021000070000000000bc02000000000102022253797374656d000000000a000000040000000000ffffffff
+0100000000003000040000002d010000050000000201010000001c000000fb02adff00000000000090010000000004400022417269616c00f47740000000b2060aa453a8f4775ca8f4770100000000003000040000002d010100050000000902000000000500000002010100000007000000fc020000ffffff0000000400
+00002d01020008000000fa0205000100000000000000040000002d010300040000002d010200090000001d062100f000b40048032d010000040000002d01020007000000fc020000ffffff000000040000002d01040004000000f001020008000000fa0200000000000000000000040000002d010200030000001e000700
+00001604c3010d034b013c00050000000201010000000500000014024d013c00050000002e010100000028000000320a4d013c001300040000000000f10f84036275696c64726f6d206f6265792066696c6573002e002e00130012002e001c002e00470017002e002e002f00280017001800130012002e002a0005000000
+2e01000000000500000014020000000005000000020101000000040000002701ffff07000000fc020000ffffff000000040000002d010500040000002d010300040000002d010500090000001d062100f000b4000c03d102a005040000002d010500040000002d01040004000000f0010500040000002d01020003000000
+1e0007000000160467037108ef02dc0505000000020101000000040000002d01010005000000090200000000050000001402f102dc05050000002e010100000028000000320af102dc051300040000000000f10f8403726f66736275696c64206f6265792066696c65001c002e0018002a002e002e00120012002e001800
+2e002e003000280017001800120013002e00050000002e01000000000500000014025b059da905000000020101000000040000002701ffff07000000fc020000ffffff000000040000002d010500040000002d010300040000002d010500090000001d062100f000b4000c03b5006c0c040000002d010500040000002d01
+040004000000f0010500040000002d010200030000001e000700000016044b013d0fd300a80c05000000020101000000040000002d01010005000000090200000000050000001402d500a80c050000002e01010000001f000000320ad500a80c0d00040000000000f10f840358495020524f4d20696d6167653d38001700
+370017003c00410045001800120047002e002e002e00050000002e01000000000500000014025b059da905000000020101000000040000002701ffff07000000fc020000ffffff000000040000002d010500040000002d010300040000002d010500090000001d062100f000b400840395026c0c040000002d0105000400
+00002d01040004000000f0010500040000002d010200030000001e000700000016042b03b50fb302a80c05000000020101000000040000002d01010005000000090200000000050000001402b502a80c050000002e010100000025000000320ab502a80c1100040000000000f10f84034e6f6e2058495020524f4d20696d
+616765653c002e002e00170038001700380017003c00410045001800120047002e002e002e00050000002e01000000000500000014025b059da905000000020101000000040000002701ffff07000000fc020000ffffff000000040000002d01050008000000fa0200000600000000000002040000002d01060007000000
+1b045a02650569010c03040000002d01040004000000f0010500040000002d01020004000000f0010600030000001e00070000001604380226058a014b0305000000020101000000040000002d010100050000000902000000000500000014028c015c03050000002e010100000017000000320a8c015c03080004000000
+0000f10f84034255494c44524f4d37003c0017002e003d003c0041004500050000002e01000000000500000014025b059da905000000020101000000040000002701ffff07000000fc020000ffffff000000040000002d01050008000000fa0200000600000000000002040000002d010600070000001b046a017d0b7900
+e808040000002d01040004000000f0010500040000002d01020004000000f0010600030000001e0007000000160448013e0b9a00270905000000020101000000040000002d010100050000000902000000000500000014029c005609050000002e010100000017000000320a9c0056090800040000000000f10f8403524f
+4d4255494c443c004100450037003c0018002e003c00050000002e01000000000500000014025b059da905000000020101000000040000002701ffff07000000fc020000ffffff000000040000002d01050008000000fa0200000600000000000002040000002d010600070000001b044a037d0b5902e808040000002d01
+040004000000f0010500040000002d01020004000000f0010600030000001e0007000000160428033e0b7a02270905000000020101000000040000002d010100050000000902000000000500000014027c024409050000002e010100000019000000320a7c0244090900040000000000f10f8403524f46534255494c4453
+3c0041003300370037003c0018002e003c00050000002e01000000000500000014025b059da905000000020101000000040000002701ffff1000000026060f001600ffffffff000038000000bd010000110300000702000008000000fa0200000600000000000000040000002d01050007000000fc020100000000000000
+040000002d01060008000000250302003c00e101e202e101040000002d01030004000000f001050007000000fc020000000000000000040000002d0105000c00000024030400cb0202020c03e101cb02c101e002e101040000002d010200040000002d01040004000000f00105000800000026060f000600ffffffff0100
+1000000026060f001600ffffffff00006005000091000000ed080000aa01000008000000fa0200000600000000000000040000002d010500040000002d0106000c00000025030400be08b500dc05b500dc05a5016405a501040000002d01030004000000f001050007000000fc020000000000000000040000002d010500
+0c00000024030400a708d600e808b500a7089500bc08b500040000002d010200040000002d01040004000000f00105000800000026060f000600ffffffff01001000000026060f001600ffffffff000060050000dd010000ed080000f702000008000000fa0200000600000000000000040000002d010500040000002d01
+06000c00000025030400be08d102dc05d102dc05e1016405e101040000002d01030004000000f001050007000000fc020000000000000000040000002d0105000c00000024030400a708f202e808d102a708b102bc08d102040000002d010200040000002d01040004000000f00105000800000026060f000600ffffffff
+010007000000fc020000ffffff000000040000002d010500040000002d010300040000002d010500090000001d062100f000b4000c030100a005040000002d010500040000002d01040004000000f0010500040000002d010200030000001e00070000001604970071081f00dc0505000000020101000000040000002d01
+0100050000000902000000000500000014022100dc05050000002e010100000026000000320a2100dc051200040000000000f10f8403726f6d6275696c64206f6265792066696c651c002e0047002e002e00120012002e0017002e002f002f00280017001800130012002e00050000002e01000000000500000014025b05
+9da905000000020101000000040000002701ffff1000000026060f001600ffffffff0000780b0000cd000000710c00001701000008000000fa0200000600000000000000040000002d010500040000002d01060008000000250302007c0bf100420cf100040000002d01030004000000f001050007000000fc0200000000
+00000000040000002d0105000c000000240304002b0c12016c0cf1002b0cd100400cf100040000002d010200040000002d01040004000000f00105000800000026060f000600ffffffff01001000000026060f001600ffffffff0000780b0000ae020000710c0000f802000008000000fa02000006000000000000000400
+00002d010500040000002d01060008000000250302007c0bd202420cd202040000002d01030004000000f001050007000000fc020000000000000000040000002d0105000c000000240304002b0cf3026c0cd2022b0cb202400cd202040000002d010200040000002d01040004000000f00105000800000026060f000600
+ffffffff0100040000002d010000030000000000}{\result {\insrsid10449189 {\pict{\*\picprop\shplid1025{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn pictureGray}{\sv 0}}{\sp{\sn pictureBiLevel}{\sv 0}}
+{\sp{\sn fillColor}{\sv 268435473}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fHitTestFill}{\sv 1}}{\sp{\sn fillShape}{\sv 1}}{\sp{\sn fillUseRect}{\sv 0}}{\sp{\sn fNoFillHitTest}{\sv 0}}
+{\sp{\sn fLine}{\sv 0}}{\sp{\sn fLayoutInCell}{\sv 1}}{\sp{\sn fLayoutInCell}{\sv 1}}}\picscalex99\picscaley99\piccropl0\piccropr0\piccropt0\piccropb0
+\picw17277\pich3810\picwgoal9795\pichgoal2160\wmetafile8\bliptag-1191650637\blipupi34{\*\blipuid b8f8dab342daca10aeb017acf38cde79}
+0100090000037006000007002800000000001400000026060f001e00ffffffff040014000000576f72640e004d6963726f736f667420576f7264050000000b02
+00000000050000000c028403f10f1c000000fb021000070000000000bc02000000000102022253797374656d000000000a000000040000000000ffffffff0100
+000000003000040000002d010000050000000201010000001c000000fb02adff00000000000090010000000004400022417269616c00f47740000000b2060aa4
+53a8f4775ca8f4770100000000003000040000002d010100050000000902000000000500000002010100000007000000fc020000ffffff000000040000002d01
+020008000000fa0205000100000000000000040000002d010300040000002d010200090000001d062100f000b40048032d010000040000002d01020007000000
+fc020000ffffff000000040000002d01040004000000f001020008000000fa0200000000000000000000040000002d010200030000001e00070000001604c301
+0d034b013c00050000000201010000000500000014024d013c00050000002e010100000028000000320a4d013c001300040000000000f10f84036275696c6472
+6f6d206f6265792066696c6573002e002e00130012002e001c002e00470017002e002e002f00280017001800130012002e002a00050000002e01000000000500
+000014020000000005000000020101000000040000002701ffff07000000fc020000ffffff000000040000002d010500040000002d010300040000002d010500
+090000001d062100f000b4000c03d102a005040000002d010500040000002d01040004000000f0010500040000002d010200030000001e000700000016046703
+7108ef02dc0505000000020101000000040000002d01010005000000090200000000050000001402f102dc05050000002e010100000028000000320af102dc05
+1300040000000000f10f8403726f66736275696c64206f6265792066696c65001c002e0018002a002e002e00120012002e0018002e002e003000280017001800
+120013002e00050000002e01000000000500000014025b059da905000000020101000000040000002701ffff07000000fc020000ffffff000000040000002d01
+0500040000002d010300040000002d010500090000001d062100f000b4000c03b5006c0c040000002d010500040000002d01040004000000f001050004000000
+2d010200030000001e000700000016044b013d0fd300a80c05000000020101000000040000002d01010005000000090200000000050000001402d500a80c0500
+00002e01010000001f000000320ad500a80c0d00040000000000f10f840358495020524f4d20696d6167653d38001700370017003c0041004500180012004700
+2e002e002e00050000002e01000000000500000014025b059da905000000020101000000040000002701ffff07000000fc020000ffffff000000040000002d01
+0500040000002d010300040000002d010500090000001d062100f000b400840395026c0c040000002d010500040000002d01040004000000f001050004000000
+2d010200030000001e000700000016042b03b50fb302a80c05000000020101000000040000002d01010005000000090200000000050000001402b502a80c0500
+00002e010100000025000000320ab502a80c1100040000000000f10f84034e6f6e2058495020524f4d20696d616765653c002e002e0017003800170038001700
+3c00410045001800120047002e002e002e00050000002e01000000000500000014025b059da905000000020101000000040000002701ffff07000000fc020000
+ffffff000000040000002d01050008000000fa0200000600000000000002040000002d010600070000001b045a02650569010c03040000002d01040004000000
+f0010500040000002d01020004000000f0010600030000001e00070000001604380226058a014b0305000000020101000000040000002d010100050000000902
+000000000500000014028c015c03050000002e010100000017000000320a8c015c030800040000000000f10f84034255494c44524f4d37003c0017002e003d00
+3c0041004500050000002e01000000000500000014025b059da905000000020101000000040000002701ffff07000000fc020000ffffff000000040000002d01
+050008000000fa0200000600000000000002040000002d010600070000001b046a017d0b7900e808040000002d01040004000000f0010500040000002d010200
+04000000f0010600030000001e0007000000160448013e0b9a00270905000000020101000000040000002d010100050000000902000000000500000014029c00
+5609050000002e010100000017000000320a9c0056090800040000000000f10f8403524f4d4255494c443c004100450037003c0018002e003c00050000002e01
+000000000500000014025b059da905000000020101000000040000002701ffff07000000fc020000ffffff000000040000002d01050008000000fa0200000600
+000000000002040000002d010600070000001b044a037d0b5902e808040000002d01040004000000f0010500040000002d01020004000000f001060003000000
+1e0007000000160428033e0b7a02270905000000020101000000040000002d010100050000000902000000000500000014027c024409050000002e0101000000
+19000000320a7c0244090900040000000000f10f8403524f46534255494c44533c0041003300370037003c0018002e003c00050000002e010000000005000000
+14025b059da905000000020101000000040000002701ffff1000000026060f001600ffffffff000038000000bd010000110300000702000008000000fa020000
+0600000000000000040000002d01050007000000fc020100000000000000040000002d01060008000000250302003c00e101e202e101040000002d0103000400
+0000f001050007000000fc020000000000000000040000002d0105000c00000024030400cb0202020c03e101cb02c101e002e101040000002d01020004000000
+2d01040004000000f00105000800000026060f000600ffffffff01001000000026060f001600ffffffff00006005000091000000ed080000aa01000008000000
+fa0200000600000000000000040000002d010500040000002d0106000c00000025030400be08b500dc05b500dc05a5016405a501040000002d01030004000000
+f001050007000000fc020000000000000000040000002d0105000c00000024030400a708d600e808b500a7089500bc08b500040000002d010200040000002d01
+040004000000f00105000800000026060f000600ffffffff01001000000026060f001600ffffffff000060050000dd010000ed080000f702000008000000fa02
+00000600000000000000040000002d010500040000002d0106000c00000025030400be08d102dc05d102dc05e1016405e101040000002d01030004000000f001
+050007000000fc020000000000000000040000002d0105000c00000024030400a708f202e808d102a708b102bc08d102040000002d010200040000002d010400
+04000000f00105000800000026060f000600ffffffff010007000000fc020000ffffff000000040000002d010500040000002d010300040000002d0105000900
+00001d062100f000b4000c030100a005040000002d010500040000002d01040004000000f0010500040000002d010200030000001e0007000000160497007108
+1f00dc0505000000020101000000040000002d010100050000000902000000000500000014022100dc05050000002e010100000026000000320a2100dc051200
+040000000000f10f8403726f6d6275696c64206f6265792066696c651c002e0047002e002e00120012002e0017002e002f002f00280017001800130012002e00
+050000002e01000000000500000014025b059da905000000020101000000040000002701ffff1000000026060f001600ffffffff0000780b0000cd000000710c
+00001701000008000000fa0200000600000000000000040000002d010500040000002d01060008000000250302007c0bf100420cf100040000002d0103000400
+0000f001050007000000fc020000000000000000040000002d0105000c000000240304002b0c12016c0cf1002b0cd100400cf100040000002d01020004000000
+2d01040004000000f00105000800000026060f000600ffffffff01001000000026060f001600ffffffff0000780b0000ae020000710c0000f802000008000000
+fa0200000600000000000000040000002d010500040000002d01060008000000250302007c0bd202420cd202040000002d01030004000000f001050007000000
+fc020000000000000000040000002d0105000c000000240304002b0cf3026c0cd2022b0cb202400cd202040000002d010200040000002d01040004000000f00105000800000026060f000600ffffffff0100040000002d010000030000000000}}}}}{\insrsid10576049 
+\par }{\insrsid15948434 Building a ROM requires that the following are available or have been successfully created:
+\par {\listtext\pard\plain\s83 \f3\insrsid10576049 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \s83\ql \fi-360\li720\ri0\sa120\widctlpar\jclisttab\tx720\aspalpha\aspnum\faauto\ls53\adjustright\rin0\lin720\itap0\pararsid16319362 {\insrsid10576049 
+Symbian OS components making up a set of releasables
+\par {\listtext\pard\plain\s83 \f3\insrsid10576049 \loch\af3\dbch\af0\hich\f3 \'b7\tab}a Bootstrap binary image
+\par {\listtext\pard\plain\s83 \f3\insrsid10576049 \loch\af3\dbch\af0\hich\f3 \'b7\tab}a text file specifying how the ROM image is to be built.
+\par }\pard \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 {\insrsid5120752 
+\par }{\insrsid10576049 Executables are pre-processed, relocated, and have their imports and exports bound for a ROM image based at some given virtual address. The files, base address of the ROM, and various 
+other parameters are specified by means of the obey file. This is a file of type .oby and is a text file containing statements that specify how the ROM image is to be built. A .oby file can include other files in the same way that files containing C++ sou
+rce can #include other C++ files. By convention, the included files have the .iby file type. This structure allows flexibility in the way that ROM images are defined.
+\par The ROM building process produces a log, which is written to rombuild.log in the current directory.
+\par BUILDROM processes obey files written in a superset of the language supported by ROMBUILD and ROFSBUILD. Depending on whether an XIP ROM or non XIP ROM image is being generated it will produce an obey file which is directly acceptable to ROMBUILD
+ or ROFSBUILD. It then invokes either ROMBUILD or ROFSBUILD on the final obey file and performs a number of post-processing steps to produce a ROM symbol file and directory listing.
+\par The import or relocation sections of an executable are no longer needed when that executable is bound into a ROM. These sections are removed as part of the ROM building process, reducing the size taken up by that executable.
+\par A file header mapped by the TRomImageHeader class replaces the standard image file header.
+\par The Bootstrap code and the file/directory structure imposes a small overhead on a ROM.
+\par }\pard\plain \s2\ql \li0\ri0\sb120\keepn\widctlpar\brdrt\brdrs\brdrw60\brsp20 \tqr\tx9072\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\rtlgutter\itap0\pararsid15948434 \b\f1\fs34\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid10576049 BUILDROM
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid10576049 
+BUILDROM is the Symbian OS ROM configuration tool.  BUILDROM is designed to be a unified ROM building front-end to the binary ROM building tools ROMBUILD and ROFSBUILD. 
+\par BUILDROM provides features to specify multiple ROMs for a target device.  The characteristics of each ROM are described to the ROM builder which determines how they are built.  Characteristics: XIP-ness, compression, and extensions.  Each file to be inclu
+ded in the ROM can be steered into any of the specified ROM images. BUILDROM can ensure that all the files destined for the ROM exist.
+\par BUILDROM assembles an XIP obey files suitable for ROMBUILD, and non-XIP obey files for ROFSBUILD. It automatically provides the appropriate headers required to generate extensions if they are specified.  
+\par The initial obeyfile is modified by C++ preprocessor directives and subsequently adjusted by statements in the ROM specification language. The C++ preprocessor is applied to
+ the file(s) before processing, and the C++ #define, #ifdef  and #include facilities should be used to control the inclusion and exclusion of source lines. The modifications to the content of those lines should be done using the BUILDROM textual substitut
+ion facility.
+\par The final obey file is in the subset of the specification language which is understood directly by ROMBUILD or ROFSBUILD
+\par BUILDROM keywords are not case-sensitive.
+\par Each obyfile parameter specifies a file via a search path: if the filename is not matched then }{\insrsid8814113 BUILDROM }{\insrsid10576049 will look in \\epoc32\\rom\\include.
+\par Usage:
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid8399123 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\cs109\insrsid10576049\charrsid14972466   buildrom [options] obeyfile [obeyfile2 ...]   
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid10576049 The available options are
+\par }\trowd \irow0\irowband0\ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt
+\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2660\clshdrawnil \cellx2552\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 
+\cltxlrtb\clftsWidth3\clwWidth5386\clshdrawnil \cellx7938\pard \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362 {\insrsid10576049 -Dxxx\cell C++ preprocessor arguments\cell }\pard\plain 
+\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid10576049 \trowd \irow0\irowband0\ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb
+\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 
+\cltxlrtb\clftsWidth3\clwWidth2660\clshdrawnil \cellx2552\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth5386\clshdrawnil \cellx7938\row }\pard\plain 
+\s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid10576049 -o<image name>\cell ROM image name, overriding any ROMNAME statement \cell 
+}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid10576049 \trowd \irow1\irowband1\ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl
+\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr
+\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2660\clshdrawnil \cellx2552\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth5386\clshdrawnil \cellx7938\row }\pard\plain 
+\s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid10576049 -s\cell strict option, any missing files will stop buildrom}{\insrsid8807119 
+ without generating a ROM image. Without this option it is possible to generate a ROM image with missing files.}{\insrsid10576049 \cell }\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 
+\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid10576049 \trowd \irow2\irowband2\lastrow \ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv
+\brdrs\brdrw10 \trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2660\clshdrawnil \cellx2552\clvertalt\clbrdrt
+\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth5386\clshdrawnil \cellx7938\row }\pard\plain 
+\s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid5120752 
+\par }{\insrsid10576049 Popular -D defines to use include
+\par    -D_DEBUG\tab \tab select debug versions of some files
+\par    -D_FULL_DEBUG\tab select debug versions of all files
+\par    -D_ARM4
+\par    -D_ARM4T\tab \tab specify the target platform
+\par    -D_KABI=xxxx\tab specify the target platform for the Kernel (e.g. ARMV5)
+\par }\pard\plain \s3\ql \li0\ri0\sb120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \tqr\tx9072\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\rtlgutter\itap0\pararsid8807119 \b\f1\fs28\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid8807119 {\*\bkmkstart _Toc61942203}{\*\bkmkstart _Toc61942202}Strict checking of missing files.{\*\bkmkend _Toc61942203}
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid8807119 BUILDROM will norm
+ally ignore any missing files specified in the obey files. To prevent the generation of the ROM }{\insrsid8814113 image }{\insrsid8807119 
+when files are missing the -s option is used. This ensures that BUILDROM terminates after all the files have been checked and some are found missing. The error message indicates how many files are missing.
+\par }\pard\plain \s3\ql \li0\ri0\sb120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \tqr\tx9072\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\rtlgutter\itap0\pararsid15948434 \b\f1\fs28\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid15948434 Automatic generation of extension header for XIP ROM{\*\bkmkend _Toc61942202}
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 
+If the ROM_IMAGE specifices an XIP image with an extension, than the following header will automatically be added to the obey file. 
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid8399123 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid15948434 extensionrom=<name>
+\par romsize=<rom max size>
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 
+The <name> and <rom max size> are as specified in the ROM_IMAGE keyword. 
+\par 
+\par The addition of the header will result in rombuild tool producing multiple images from the obey file.
+\par }\pard\plain \s2\ql \li0\ri0\sb120\keepn\widctlpar\brdrt\brdrs\brdrw60\brsp20 \tqr\tx9072\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\rtlgutter\itap0\pararsid14683277 \b\f1\fs34\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid15948434 {\*\bkmkstart _Toc61942204}ROMBUILD}{\insrsid15948434\charrsid15948434 {\*\bkmkend _Toc61942204}
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 ROMBUILD is the Symbian OS binary XIP ROM builder.  It is }{
+\insrsid8814113 typically invoked through }{\insrsid15948434 BUILDROM.  ROMBUILD understands a sub-set of the BUILDROM obey file syntax.
+\par }{\insrsid8814113 ROM}{\insrsid15948434 BUILD allows a ROM extension to be added to the ROM base.  The extension enables renaming and hiding of files in the ROM base, and also allows new files to be added to the ROM drive.}{\b\insrsid15948434 
+\par }{\insrsid15948434 Syntax: 
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid8399123 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid15948434 ROMBUILD [options] <obeyfilename>
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 Options can be:
+\par }\trowd \irow0\irowband0\ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt
+\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2943\clshdrawnil \cellx2835\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 
+\cltxlrtb\clftsWidth3\clwWidth6731\clshdrawnil \cellx9566\pard \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362 {\insrsid15948434 -v\cell verbose\cell }\pard\plain 
+\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 \trowd \irow0\irowband0\ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb
+\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 
+\cltxlrtb\clftsWidth3\clwWidth2943\clshdrawnil \cellx2835\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth6731\clshdrawnil \cellx9566\row }\pard\plain 
+\s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 -?\cell display more detailed help for command\cell }\pard\plain 
+\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 \trowd \irow1\irowband1\ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb
+\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 
+\cltxlrtb\clftsWidth3\clwWidth2943\clshdrawnil \cellx2835\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth6731\clshdrawnil \cellx9566\row }\pard\plain 
+\s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 -s[log|screen|both]\cell display size summary to the specified destination\cell 
+}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 \trowd \irow2\irowband2\ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl
+\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr
+\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2943\clshdrawnil \cellx2835\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth6731\clshdrawnil \cellx9566\row }\pard\plain 
+\s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 -r<FileName>\cell compare a sectioned Rom image\cell }\pard\plain 
+\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 \trowd \irow3\irowband3\ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb
+\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 
+\cltxlrtb\clftsWidth3\clwWidth2943\clshdrawnil \cellx2835\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth6731\clshdrawnil \cellx9566\row }\pard\plain 
+\s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 -no-header\cell suppress the image loader header\cell }\pard\plain 
+\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 \trowd \irow4\irowband4\ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb
+\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 
+\cltxlrtb\clftsWidth3\clwWidth2943\clshdrawnil \cellx2835\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth6731\clshdrawnil \cellx9566\row }\pard\plain 
+\s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 -check-capabilities\cell Enforce Platform Security capabilities\cell 
+}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 \trowd \irow5\irowband5\ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl
+\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr
+\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2943\clshdrawnil \cellx2835\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth6731\clshdrawnil \cellx9566\row }\pard\plain 
+\s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 -check-datacaging\cell Enforce Data Caging\cell }\pard\plain 
+\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 \trowd \irow6\irowband6\ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb
+\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 
+\cltxlrtb\clftsWidth3\clwWidth2943\clshdrawnil \cellx2835\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth6731\clshdrawnil \cellx9566\row }\pard\plain 
+\s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 -coff-header\cell use a PE-COFF header rather than an EPOC header\cell 
+}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 \trowd \irow7\irowband7\ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl
+\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr
+\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2943\clshdrawnil \cellx2835\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth6731\clshdrawnil \cellx9566\row }\pard\plain 
+\s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 -d<bitmask>\cell set trace mask (DEB build only)\cell }\pard\plain 
+\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 \trowd \irow8\irowband8\ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb
+\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 
+\cltxlrtb\clftsWidth3\clwWidth2943\clshdrawnil \cellx2835\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth6731\clshdrawnil \cellx9566\row }\pard\plain 
+\s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 -compress\cell compress the ROM Image\cell }\pard\plain 
+\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 \trowd \irow9\irowband9\ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb
+\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 
+\cltxlrtb\clftsWidth3\clwWidth2943\clshdrawnil \cellx2835\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth6731\clshdrawnil \cellx9566\row }\pard\plain 
+\s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 -no-sorted-romfs\cell do not add sorted entries arrays (6.1 compatible)\cell 
+}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 \trowd \irow10\irowband10\lastrow \ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl
+\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr
+\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2943\clshdrawnil \cellx2835\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth6731\clshdrawnil \cellx9566\row }\pard\plain 
+\s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 
+\par }\pard\plain \s2\ql \li0\ri0\sb120\keepn\widctlpar\brdrt\brdrs\brdrw60\brsp20 \tqr\tx9072\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\rtlgutter\itap0\pararsid14683277 \b\f1\fs34\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid15948434 {\*\bkmkstart _Toc61942206}ROFSBUILD{\*\bkmkend _Toc61942206}
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 
+ROFSBUILD is the Symbian OS non-XIP ROM builder. ROFSBUILD understands a sub-set of the BUILDROM obey file syntax
+\par ROFSBUILD allows a ROM extension to be added to the ROM base.  The extension enables renaming and hiding of files in the ROM base, and also allows new files to be added to the ROM drive.}{\b\insrsid15948434 
+\par }{\insrsid15948434 Syntax: 
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid8399123 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid15948434 ROFSBUILD [options] <obeyfilename>
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 Options can be:
+\par }\pard \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362 {\insrsid15948434 -v\cell verbose\cell }\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 
+\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 \trowd \irow0\irowband0\ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv
+\brdrs\brdrw10 \trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2943\clshdrawnil \cellx2835\clvertalt\clbrdrt
+\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth6731\clshdrawnil \cellx9566\row }\pard\plain 
+\s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 -?\cell display help for command\cell }\pard\plain 
+\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 \trowd \irow1\irowband1\ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb
+\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 
+\cltxlrtb\clftsWidth3\clwWidth2943\clshdrawnil \cellx2835\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth6731\clshdrawnil \cellx9566\row }\pard\plain 
+\s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 -s[log|screen|both]\cell display size summary to the specified destination\cell 
+}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 \trowd \irow2\irowband2\ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl
+\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr
+\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2943\clshdrawnil \cellx2835\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth6731\clshdrawnil \cellx9566\row }\pard\plain 
+\s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 -d<bitmask>\cell set trace mask (DEB build only)\cell }\pard\plain 
+\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 \trowd \irow3\irowband3\ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb
+\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 
+\cltxlrtb\clftsWidth3\clwWidth2943\clshdrawnil \cellx2835\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth6731\clshdrawnil \cellx9566\row }\pard\plain 
+\s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 -compress\cell compress executable files where possible\cell }\pard\plain 
+\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 \trowd \irow4\irowband4\ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb
+\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 
+\cltxlrtb\clftsWidth3\clwWidth2943\clshdrawnil \cellx2835\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth6731\clshdrawnil \cellx9566\row }\pard\plain 
+\s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 -coreimage <core image file>\cell 
+use the specified core image file as the basis for creating the extension\cell }\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 
+\trowd \irow5\irowband5\lastrow \ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 
+\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2943\clshdrawnil \cellx2835\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr
+\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth6731\clshdrawnil \cellx9566\row }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid10576049\charrsid10576049 
+\par }\pard\plain \s2\ql \li0\ri0\sb120\keepn\widctlpar\brdrt\brdrs\brdrw60\brsp20 \tqr\tx9072\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\rtlgutter\itap0\pararsid15948434 \b\f1\fs34\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid15948434 Obey Files}{\insrsid15948434\charrsid14972466 
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid10576049 
+Obey files are standard text files containing statements that are used to control the operation of the ROM building tool}{\insrsid5120752 s}{\insrsid10576049 .}{\insrsid5120752  }{\insrsid3754124 
+Each of the tools (BUILDROM, ROMBUILD and ROFSBUILD) can handle different subsets of the obey file syntax. 
+\par The obey file syntax handled by BUILDROM includes the following:}{\insrsid10576049 
+\par {\listtext\pard\plain\s83 \f3\insrsid3754124 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \s83\ql \fi-360\li720\ri0\sa120\widctlpar\jclisttab\tx720\aspalpha\aspnum\faauto\ls54\adjustright\rin0\lin720\itap0\pararsid16319362 {\insrsid3754124 
+BUILDROM specific keywords/macros
+\par {\listtext\pard\plain\s83 \f3\insrsid3754124 \loch\af3\dbch\af0\hich\f3 \'b7\tab}Common keywords for both ROMBUILD and ROFSBUILD
+\par {\listtext\pard\plain\s83 \f3\insrsid3754124 \loch\af3\dbch\af0\hich\f3 \'b7\tab}ROMBUILD specific keywords
+\par {\listtext\pard\plain\s83 \f3\insrsid3754124 \loch\af3\dbch\af0\hich\f3 \'b7\tab}ROFSBUILD specific keywords
+\par }\pard \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 {\insrsid3754124 The obey fi}{\insrsid11426236 le syntax handled by ROMBUILD includes the following:}{\insrsid3754124 
+\par {\listtext\pard\plain\s83 \f3\insrsid11426236 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \s83\ql \fi-360\li720\ri0\sa120\widctlpar\jclisttab\tx720\aspalpha\aspnum\faauto\ls55\adjustright\rin0\lin720\itap0\pararsid16319362 {\insrsid11426236 Comm
+on keywords for both ROMBUILD and ROFSBUILD
+\par {\listtext\pard\plain\s83 \f3\insrsid11426236 \loch\af3\dbch\af0\hich\f3 \'b7\tab}ROMBUILD specific keywords
+\par }\pard \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 {\insrsid11426236 The obey file syntax handled by ROFSBUILD includes the following:
+\par {\listtext\pard\plain\s83 \f3\insrsid11426236 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \s83\ql \fi-360\li720\ri0\sa120\widctlpar\jclisttab\tx720\aspalpha\aspnum\faauto\ls56\adjustright\rin0\lin720\itap0\pararsid16319362 {\insrsid11426236 
+Common keywords for both ROMBUILD and ROFSBUILD
+\par {\listtext\pard\plain\s83 \f3\insrsid11426236 \loch\af3\dbch\af0\hich\f3 \'b7\tab}ROFSBUILD specific keywords
+\par }\pard \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 {\insrsid15948434 By convention, obey files have a }{\cs109\f2\fs20\insrsid15948434\charrsid14972466 .oby}{\insrsid15948434 
+ extension. Also by convention, any files included by the obey file have a }{\cs109\f2\fs20\insrsid15948434\charrsid14972466 .iby}{\insrsid15948434  extension.
+\par }\pard\plain \s3\ql \li0\ri0\sb120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \tqr\tx9072\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\rtlgutter\itap0\pararsid5120752 \b\f1\fs28\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid14683277 Syntax}{\insrsid15948434  conventions
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 The following conventions apply to obey file statements:
+\par {\listtext\pard\plain\s83 \f3\insrsid14683277 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \s83\ql \fi-360\li720\ri0\sa120\widctlpar\jclisttab\tx720\aspalpha\aspnum\faauto\ls57\adjustright\rin0\lin720\itap0\pararsid16319362 {\insrsid14683277 
+most statements are in lower case
+\par {\listtext\pard\plain\s83 \f3\insrsid14683277 \loch\af3\dbch\af0\hich\f3 \'b7\tab}case is significant
+\par {\listtext\pard\plain\s83 \f3\insrsid14683277 \loch\af3\dbch\af0\hich\f3 \'b7\tab}a line that is a comment can be identified using the }{\cs109\f2\fs20\insrsid14683277 rem}{\insrsid14683277  keyword
+\par {\listtext\pard\plain\s83 \f3\insrsid14683277 \loch\af3\dbch\af0\hich\f3 \'b7\tab}blank lines are ignored
+\par {\listtext\pard\plain\s83 \f3\insrsid14683277 \loch\af3\dbch\af0\hich\f3 \'b7\tab}the }{\cs109\f2\fs20\insrsid14683277 =}{\insrsid14683277  symbol, where used, is optional; a blank character can be used instead
+\par {\listtext\pard\plain\s83 \f3\insrsid14683277 \loch\af3\dbch\af0\hich\f3 \'b7\tab}a file name can, }{\cs17\i\insrsid14683277 optionally}{\insrsid14683277 , be enclosed within quotes; a file name that contains spaces }{\cs17\i\insrsid14683277 must}{
+\insrsid14683277  be enclosed within quotes
+\par {\listtext\pard\plain\s83 \f3\insrsid14683277 \loch\af3\dbch\af0\hich\f3 \'b7\tab}the }{\cs109\f2\fs20\insrsid14683277 stop}{\insrsid14683277  statement causes the rest of the obey file to be ignored
+\par }\pard\plain \s3\ql \li0\ri0\sb120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \tqr\tx9072\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\rtlgutter\itap0\pararsid5120752 \b\f1\fs28\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid11426236 Overview}{\insrsid15948434 
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 
+An obey file consists of a number of sections, each defining a ROM image:
+\par {\listtext\pard\plain\s83 \f3\insrsid14683277 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \s83\ql \fi-360\li720\ri0\sa120\widctlpar\jclisttab\tx720\aspalpha\aspnum\faauto\ls58\adjustright\rin0\lin720\itap0\pararsid16319362 {\insrsid14683277 the }{
+\cs109\f2\fs20\insrsid14683277 kernel-rom-section}{\insrsid14683277  defines a bootable ROM image which includes the Kernel
+\par {\listtext\pard\plain\s83 \f3\insrsid14683277 \loch\af3\dbch\af0\hich\f3 \'b7\tab}each }{\cs109\f2\fs20\insrsid14683277 extension-rom-section}{\insrsid14683277  defines a ROM image which extends the }{\cs109\f2\fs20\insrsid14683277 kernel-rom-section}{
+\insrsid14683277 .
+\par }\pard \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 {\insrsid14683277 Every section contains a list of obey statements that specify ROM configuration information or files to be includ
+ed in the ROM image.
+\par Each section is scanned twice. This allows the configuration information to appear anywhere in the list. 
+\par Extension ROM sections are marked by the }{\b\insrsid14683277 extensionrom}{\insrsid14683277  keyword, and can only contain those ROM information statements that are not related to Kernel configuration.
+\par }\pard\plain \s3\ql \li0\ri0\sb120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \tqr\tx9072\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\rtlgutter\itap0\pararsid12202278 \b\f1\fs28\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid12202278 BUILDROM Specific Keywords
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid12202278 
+The keywords in this section are only seen by the BUILDROM tool and are usually converted into something suitable for ROMBUILD or ROFSBUILD. }{\insrsid12202278\charrsid12202278 
+\par }\pard\plain \s4\ql \li0\ri0\sb120\keepn\widctlpar\brdrt\brdrs\brdrw15\brsp20 \tqr\tx9072\aspalpha\aspnum\faauto\outlinelevel3\adjustright\rin0\lin0\rtlgutter\itap0\pararsid12202278 \b\f1\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid11426236 {\*\bkmkstart _Toc61942190}Textual Substitution{\*\bkmkend _Toc61942190}
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid8807119 BUILDROM}{\insrsid11426236 
+ implements a simple textual substitution sc}{\insrsid8807119 heme: the C++ preprocessor cannot}{\insrsid11426236  be used conveniently because it inserts whitespace around the substituted text.
+\par }\trowd \irow0\irowband0\ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt
+\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth3227\clshdrawnil \cellx3119\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 
+\cltxlrtb\clftsWidth3\clwWidth6447\clshdrawnil \cellx9566\pard \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362 {\cs109\f2\fs20\insrsid11426236\charrsid12202278 DEFINE <name> <replacement>\cell }{
+\insrsid11426236 All subsequent instances of }{\cs109\f2\fs20\insrsid11426236\charrsid12202278 <name>}{\insrsid11426236  will be replaced by }{\cs109\f2\fs20\insrsid11426236\charrsid12202278 <replacement>}{\insrsid11426236 .}{\cf6\insrsid11426236 \cell 
+}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\cf6\insrsid11426236 \trowd \irow0\irowband0\ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl
+\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr
+\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth3227\clshdrawnil \cellx3119\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth6447\clshdrawnil \cellx9566\row }\pard\plain 
+\s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\cs109\f2\fs20\insrsid11426236\charrsid9400752 ##\cell }{\insrsid11426236 
+will replace "##" with an empty string.}{\cf1\insrsid11426236 \cell }\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\cf6\insrsid11426236 
+\trowd \irow1\irowband1\lastrow \ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 
+\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth3227\clshdrawnil \cellx3119\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr
+\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth6447\clshdrawnil \cellx9566\row }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid11426236 
+\par There are three pre-defined substitutions
+\par }\pard \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362 {\cs109\f2\fs20\insrsid11426236\charrsid9400752 EPOCROOT\cell }{\insrsid11426236 the value of the EPOCROOT environment variable}{
+\cf6\insrsid11426236 \cell }\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\cf6\insrsid11426236 \trowd \irow0\irowband0\ts11\trgaph108\trleft-108\trbrdrt
+\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb
+\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth3227\clshdrawnil \cellx3119\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth6447\clshdrawnil \cellx9566
+\row }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\cs109\f2\fs20\insrsid11426236\charrsid9400752 TODAY\cell }{\insrsid11426236 
+today's date as dd/mm/yyyy}{\cf1\insrsid11426236 \cell }\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\cf1\insrsid11426236 \trowd \irow1\irowband1
+\ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 
+\clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth3227\clshdrawnil \cellx3119\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 
+\cltxlrtb\clftsWidth3\clwWidth6447\clshdrawnil \cellx9566\row }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\cs109\f2\fs20\insrsid11426236\charrsid9400752 RIGHT_NOW\cell }{\insrsid11426236 the exact time as dd/mm/yyyy hh:mm:ss\cell }\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 
+\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\cf1\insrsid11426236 \trowd \irow2\irowband2\lastrow \ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 
+\trbrdrv\brdrs\brdrw10 \trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth3227\clshdrawnil \cellx3119\clvertalt\clbrdrt
+\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth6447\clshdrawnil \cellx9566\row }\pard\plain 
+\s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid11426236 
+\par There is no "UNDEFINE" facility, and the substitutions are applied in an unspecified order.
+\par }\pard\plain \s4\ql \li0\ri0\sb120\keepn\widctlpar\brdrt\brdrs\brdrw15\brsp20 \tqr\tx9072\aspalpha\aspnum\faauto\outlinelevel3\adjustright\rin0\lin0\rtlgutter\itap0\pararsid12202278 \b\f1\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid11426236 {\*\bkmkstart _Toc61942191}Additional Simple Keywords{\*\bkmkend _Toc61942191}
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid11426236 BUILDROM implements the following simple keywords
+\par }\trowd \irow0\irowband0\ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt
+\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth4503\clshdrawnil \cellx4395\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 
+\cltxlrtb\clftsWidth3\clwWidth5171\clshdrawnil \cellx9566\pard \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362 {\cs109\f2\fs20\insrsid11426236\charrsid9400752 ECHO <anything at all>\cell }{
+\insrsid11426236 Simply prints the rest of the line to standard output.\cell }\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\cf1\insrsid11426236 
+\trowd \irow0\irowband0\ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt
+\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth4503\clshdrawnil \cellx4395\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 
+\cltxlrtb\clftsWidth3\clwWidth5171\clshdrawnil \cellx9566\row }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\cs109\f2\fs20\insrsid11426236\charrsid9400752 WARNING <anything at all>\cell }{\insrsid11426236 Reports the source file and line number as well as printing the message\cell }\pard\plain 
+\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\cf1\insrsid11426236 \trowd \irow1\irowband1\ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb
+\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 
+\cltxlrtb\clftsWidth3\clwWidth4503\clshdrawnil \cellx4395\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth5171\clshdrawnil \cellx9566\row }\pard\plain 
+\s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\cs109\f2\fs20\insrsid11426236\charrsid9400752 ERROR <anything at all>\cell }{\insrsid11426236 
+Reports the source file and line number as well as printing the message. Any ERRORs will cause BUILDROM to abort without attempting to create the ROM.\cell }\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 
+\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\cf1\insrsid11426236 \trowd \irow2\irowband2\ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv
+\brdrs\brdrw10 \trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth4503\clshdrawnil \cellx4395\clvertalt\clbrdrt
+\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth5171\clshdrawnil \cellx9566\row }\pard\plain 
+\s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\cs109\f2\fs20\insrsid11426236\charrsid12202278 ROMBUILD_OPTION <command-line-option>\cell }{
+\insrsid11426236 Adds additional command line parameters to the eventual invocation of ROMBUILD. It is primarily used to specify the "-no-header" option for pla
+tforms which don't want the 256-byte REPRO header. The ROMBUILD_OPTION keyword can be used multiple times if desired\cell }\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 
+\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\cf1\insrsid11426236 \trowd \irow3\irowband3\lastrow \ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 
+\trbrdrv\brdrs\brdrw10 \trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth4503\clshdrawnil \cellx4395\clvertalt\clbrdrt
+\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth5171\clshdrawnil \cellx9566\row }\pard\plain 
+\s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid11426236  
+\par }\pard\plain \s4\ql \li0\ri0\sb120\keepn\widctlpar\brdrt\brdrs\brdrw15\brsp20 \tqr\tx9072\aspalpha\aspnum\faauto\outlinelevel3\adjustright\rin0\lin0\rtlgutter\itap0\pararsid12202278 \b\f1\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid11426236 {\*\bkmkstart _Toc61942192}Localisation Support{\*\bkmkend _Toc61942192}
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid11426236 
+BUILDROM implements the MULTILINGUIFY() macro that can expand a single source line into multiple
+\par lines referring to distinct language codes.
+\par }\pard \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362 {\cs109\f2\fs20\insrsid11426236\charrsid9400752 LANGUAGE_CODE <nn>\cell }{\insrsid11426236 
+Can be used multiple times to specify the Symbian 2-digit codes for languages to be supported in this ROM.\cell }\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 
+{\cf1\insrsid11426236 \trowd \irow0\irowband0\ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 
+\trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth4503\clshdrawnil \cellx4395\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl
+\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth5171\clshdrawnil \cellx9566\row }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362 
+\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\cs109\f2\fs20\insrsid11426236\charrsid9400752 DEFAULT_LANGUAGE <nn>\cell }{\insrsid11426236 Used to specify the default language. It should only be used once.\cell }\pard\plain 
+\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\cf1\insrsid11426236 \trowd \irow1\irowband1\ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb
+\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 
+\cltxlrtb\clftsWidth3\clwWidth4503\clshdrawnil \cellx4395\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth5171\clshdrawnil \cellx9566\row }\pard\plain 
+\s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\cs109\f2\fs20\insrsid11426236\charrsid9400752 data=MULTILINGUIFY(EXT <sourcename> <destname>)
+\cell }{\insrsid11426236 During the localisation pass, the MULTILINGUIFY lines are expanded into a line per language code. \cell }\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 
+\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\cf1\insrsid11426236 \trowd \irow2\irowband2\lastrow \ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 
+\trbrdrv\brdrs\brdrw10 \trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth4503\clshdrawnil \cellx4395\clvertalt\clbrdrt
+\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth5171\clshdrawnil \cellx9566\row }\pard\plain 
+\s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid11426236 
+\par Example for the MULTILINGUIFY macro.
+\par The line:
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid11426236 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\cs109\insrsid11426236\charrsid14972466     data=MULTILINGUIFY( EXT sourcename destname )
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid11426236 becomes
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid11426236 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\cs109\insrsid11426236\charrsid14972466     data=sourcename.Enn destname.EXT\tab for the default language code nn
+\par     data=sourcename.Enn destname.Enn\tab for all other language codes nn
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid11426236 
+\par This provides support for the BafUtils::NearestLanguageFile() function, which is performing a similar mapping from language codes to filenames.
+\par }\pard\plain \s4\ql \li0\ri0\sb120\keepn\widctlpar\brdrt\brdrs\brdrw15\brsp20 \tqr\tx9072\aspalpha\aspnum\faauto\outlinelevel3\adjustright\rin0\lin0\rtlgutter\itap0\pararsid12202278 \b\f1\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid11426236 {\*\bkmkstart _Toc61942193}XIP ROM format bitmaps}{\insrsid11426236\charrsid15948434 {\*\bkmkend _Toc61942193}
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid11426236 MAKMAKE normally generates EPOC MBM 
+files in a compressed format, but there is an alternative uncompressed format which allows an MBM to be used directly from the ROM filesystem. BUILDROM supports on-the-fly generation of ROM format MBM files from compressed MBM files using the BITMAP keywo
+rd as follows
+\par }\trowd \irow0\irowband0\ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt
+\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth4077\clshdrawnil \cellx3969\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 
+\cltxlrtb\clftsWidth3\clwWidth5597\clshdrawnil \cellx9566\pard \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362 {\cs109\f2\fs20\insrsid11426236\charrsid12202278 BITMAP=<source> <dest>\cell }{
+\insrsid11426236 BUILDROM creates an intermediate file using the BMCONV utility. \cell }\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\cf1\insrsid11426236 
+\trowd \irow0\irowband0\ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt
+\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth4077\clshdrawnil \cellx3969\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 
+\cltxlrtb\clftsWidth3\clwWidth5597\clshdrawnil \cellx9566\row }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\cs109\f2\fs20\insrsid11426236\charrsid12202278 COMPRESSED-BITMAP=<source> <dest>\cell }{\insrsid11426236 If the files are already compressed then the    COMPRESSED-BITMAP keyword has to be used in the same way as the BITMAP k
+eyword. Different parameters to BMCONV utility are used to create the appropriate format\cell }\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\cf1\insrsid11426236 \trowd \irow1\irowband1\lastrow \ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 
+\trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth4077\clshdrawnil \cellx3969\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl
+\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth5597\clshdrawnil \cellx9566\row }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 
+\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid11426236 
+\par BUILDROM will use an existing intermediate file if it is newer than the corresponding source file.
+\par }\pard\plain \s5\ql \li0\ri0\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel4\adjustright\rin0\lin0\itap0\pararsid12202278 \b\f1\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid11426236 {\*\bkmkstart _Toc61942194}
+XIP and Non-XIP ROM format bitmaps}{\insrsid11426236\charrsid15948434 {\*\bkmkend _Toc61942194}
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid11426236 BUILDRO
+M provides a keyword to automatically select between XIP and non-XIP versions of bitmaps.This is used when it is not known by the application author if the bitmap is to be included in an XIP or non-XIP ROM.
+\par }\trowd \irow0\irowband0\lastrow \ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 
+\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth3227\clshdrawnil \cellx3119\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr
+\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth6447\clshdrawnil \cellx9566\pard \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362 {\cs109\f2\fs20\insrsid11426236\charrsid9400752 AUTO-BITMAP=<source> <dest>
+\cell }{\insrsid11426236 This keyword will use "compressed-bitmap=" for XIP ROMs and "data=" for non-XIP ROMs.\cell }\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 
+\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\cf1\insrsid11426236 \trowd \irow0\irowband0\lastrow \ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 
+\trbrdrv\brdrs\brdrw10 \trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth3227\clshdrawnil \cellx3119\clvertalt\clbrdrt
+\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth6447\clshdrawnil \cellx9566\row }\pard\plain 
+\s5\ql \li0\ri0\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel4\adjustright\rin0\lin0\itap0\pararsid12202278 \b\f1\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid11426236 {\*\bkmkstart _Toc61942195}
+XIP and non-XIP ROM format AIF files{\*\bkmkend _Toc61942195}
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid11426236 
+A keyword is provided to automatically select between XIP and non-XIP versions of AIF files.
+\par }\pard \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362 {\cs109\f2\fs20\insrsid11426236\charrsid9400752 AIF=<source> <dest>\cell }{\insrsid11426236 
+This keyword will use the _xip version of the specified AIF for XIP ROMs or the originaly supplied file otherwise\cell }\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 
+\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\cf1\insrsid11426236 \trowd \irow0\irowband0\lastrow \ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 
+\trbrdrv\brdrs\brdrw10 \trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth3227\clshdrawnil \cellx3119\clvertalt\clbrdrt
+\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth6447\clshdrawnil \cellx9566\row }\pard\plain \s4\ql \li0\ri0\sb120\keepn\widctlpar\brdrt\brdrs\brdrw15\brsp20 
+\tqr\tx9072\aspalpha\aspnum\faauto\outlinelevel3\adjustright\rin0\lin0\rtlgutter\itap0\pararsid12202278 \b\f1\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid11426236 {\*\bkmkstart _Toc61942196}Source reorganisation for two-section ROMs
+{\*\bkmkend _Toc61942196}
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid11426236 
+ROMBUILD and ROFSBUILD have the ability to create ROMs divided into two se
+ctions, such that the upper section can be replaced without needing to change the lower section. This facility is most often used to put localised resource files into the upper section, so BUILDROM provides support for gathering marked obey source lines a
+nd placing them in the upper section of the ROM.
+\par }\pard \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362 {\cs109\f2\fs20\insrsid11426236\charrsid9400752 SECTION2 <anything>\cell }{\insrsid11426236 
+All lines beginning with the SECTION2 keyword are removed from the OBY file, and placed into a separate list with the SECTION2 keyword removed. When BUILDROM encounters the SECTION keyword
+, the accumulated section2 list is inserted after the SECTION line, and subsequent SECTION2 keywords are removed as they occur. If no SECTION line is encountered, the accumulated section2 list is emitted after the end of the input file(s).\cell 
+}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\cf1\insrsid11426236 \trowd \irow0\irowband0\lastrow \ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl
+\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr
+\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth3227\clshdrawnil \cellx3119\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth6447\clshdrawnil \cellx9566\row }\pard\plain 
+\s4\ql \li0\ri0\sb120\keepn\widctlpar\brdrt\brdrs\brdrw15\brsp20 \tqr\tx9072\aspalpha\aspnum\faauto\outlinelevel3\adjustright\rin0\lin0\rtlgutter\itap0\pararsid11426236 \b\f1\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid11426236 
+{\*\bkmkstart _Toc61942197}Example}{\insrsid11426236\charrsid15948434 {\*\bkmkend _Toc61942197}
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid12202278 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid11426236\charrsid12202278     LANGUAGE_CODE 01
+\par     LANGUAGE_CODE 10
+\par     DEFAULT_LANGUAGE 10
+\par     file=sourcedir\\myapp.dll destdir\\myapp.dll
+\par     SECTION2 REM bitmaps for myapp
+\par     SECTION2 bitmap=MULTILINGUIFY( MBM sourcedir\\myapp destdir\\myapp )
+\par     file=sourcedir\\myengine.dll destdir\\myengine.dll
+\par     section 0x800000
+\par     file=sourcedir\\example destdir\\example
+\par     SECTION2 data=sourcedir\\example2 destdir\\example2}{\insrsid11426236 
+\par }{\insrsid12202278 
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid11426236 would become
+\par     
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid11426236 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid11426236     file=sourcedir\\myapp.dll destdir\\myapp.dll
+\par     file=sourcedir\\myengine.dll destdir\\myengine.dll
+\par 
+\par     section 0x800000
+\par     REM bitmaps for myapp
+\par     data=sourcedir\\myapp.M01_rom destdir\\myapp.M01
+\par     data=sourcedir\\myapp.M10_rom destdir\\myapp.MBM
+\par 
+\par     file=sourcedir\\example destdir\\example
+\par     data=sourcedir\\example2 destdir\\example2
+\par }\pard\plain \s4\ql \li0\ri0\sb120\keepn\widctlpar\brdrt\brdrs\brdrw15\brsp20 \tqr\tx9072\aspalpha\aspnum\faauto\outlinelevel3\adjustright\rin0\lin0\rtlgutter\itap0\pararsid12202278 \b\f1\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid11426236 {\*\bkmkstart _Toc61942198}Problem suppression{\*\bkmkend _Toc61942198}
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid11426236 BUILDROM does a number}{\insrsid8814113 
+ of things which probably are not}{\insrsid11426236  appropriate for producing production devices, but which increase the chance of Symbian internal development builds producing a ROM in the presence of build problems.
+\par }\pard \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362 {\cs109\f2\fs20\insrsid11426236\charrsid9400752 ABI_DOWNGRADE   from->to\cell }{\insrsid11426236 
+Allows BUILDROM to substitute a compatible executable if the specified source file is not available. For example
+\par It is usually used as
+\par ABI_DOWNGRADE   THUMB->ARMI
+\par This will substitute \\ARMI\\ for \\THUMB\\ if a specified source file cannot be found.\cell }\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\cf1\insrsid11426236 \trowd \irow0\irowband0\lastrow \ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 
+\trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth3227\clshdrawnil \cellx3119\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl
+\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth6447\clshdrawnil \cellx9566\row }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 
+\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid11426236 
+\par In the localisation support, problem suppression allows BUILDROM to handle a missing source.Enn file by specifying source.EXT instead.
+\par In a final pass,
+ if any file is still not available after applying these downgrades then BUILDROM will simply comment out the line in the OBY file, in the hope that the missing file is not vital to the ROM. If this behaviour is not required the command line option -s can
+ be used to enforce stricter behaviour and cause BUILDROM to terminate after the final pass}{\insrsid8814113  if files are missing}{\insrsid11426236 . 
+\par }\pard\plain \s4\ql \li0\ri0\sb120\keepn\widctlpar\brdrt\brdrs\brdrw15\brsp20 \tqr\tx9072\aspalpha\aspnum\faauto\outlinelevel3\adjustright\rin0\lin0\rtlgutter\itap0\pararsid12202278 \b\f1\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid11426236 {\*\bkmkstart _Toc61942199}Rom configuration support{\*\bkmkend _Toc61942199}
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid11426236 
+BUILDROM has ROM configuration features to support building of multiple xip and non-xip ROMs for the same device.
+\par }\pard\plain \s5\ql \li0\ri0\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel4\adjustright\rin0\lin0\itap0\pararsid11426236 \b\f1\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid11426236 {\*\bkmkstart _Toc61942200}
+First you must specify the ROM devices{\*\bkmkend _Toc61942200}
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid11426236 
+The ROM_IMAGE keyword specifies a ROM image.  There can be up to 8 images.
+\par }\trowd \irow0\irowband0\lastrow \ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 
+\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth4786\clshdrawnil \cellx4678\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr
+\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth4888\clshdrawnil \cellx9566\pard \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362 {\cs109\f2\fs20\insrsid11426236\charrsid9400752 
+ROM_IMAGE <id> <name> [size=<rom max size>] [xip | non-xip] [compress | no-compress] [extension]\cell }{\insrsid11426236 where:
+\par id = 0 .. 7
+\par name = a name suitable as a suffix for the ROM image, oby and logs
+\par xip = specifies an XIP ROM.  This is the default.
+\par size = max size of the ROM.  Not required for XIP roms.
+\par compress = Compress an XIP ROM.
+\par extension = Indicates this image as an extension to the previous image.\cell }\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\cf1\insrsid11426236 
+\trowd \irow0\irowband0\lastrow \ts11\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 
+\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth4786\clshdrawnil \cellx4678\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr
+\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth4888\clshdrawnil \cellx9566\row }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid11426236 
+\par }\pard\plain \s5\ql \li0\ri0\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel4\adjustright\rin0\lin0\itap0\pararsid11426236 \b\f1\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid11426236 {\*\bkmkstart _Toc61942201}Including files
+{\*\bkmkend _Toc61942201}
+\par }\pard\plain \s6\ql \li0\ri0\sb240\sa60\widctlpar\aspalpha\aspnum\faauto\outlinelevel5\adjustright\rin0\lin0\itap0\pararsid11426236 \i\f1\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid11426236 
+ To mark a file for inclusion in a ROM it is prefixed with the keyword
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid11426236 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid11426236 ROM_IMAGE[<id>]
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid11426236 eg.
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid11426236 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid11426236 ROM_IMAGE[2] data=ZSYSTEM\\Apps\\Calc\\calc.INSTCOL_MBM System\\Apps\\Calc\\Calc.mbm
+\par }\pard\plain \s6\ql \li0\ri0\sb240\sa60\widctlpar\aspalpha\aspnum\faauto\outlinelevel5\adjustright\rin0\lin0\itap0\pararsid11426236 \i\f1\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid11426236  A Block of files can be included using '\{
+' '\}' braces.
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid11426236 eg.
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid11426236 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid11426236 ROM_IMAGE[2] \{
+\par #include "calc.iby"
+\par #include "word.iby"
+\par \}
+\par }\pard\plain \s6\ql \li0\ri0\sb240\sa60\widctlpar\aspalpha\aspnum\faauto\outlinelevel5\adjustright\rin0\lin0\itap0\pararsid11426236 \i\f1\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid11426236 File blocks can be nested eg.
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid11426236 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid11426236 ROM_IMAGE[2] \{
+\par \tab #include "calc.iby"
+\par \tab ROM_IMAGE[0] \{
+\par \tab \tab #include "word.iby"
+\par \tab \}
+\par \tab #include "video.iby"
+\par \}
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid11426236 
+\par }\pard\plain \s3\ql \li0\ri0\sb120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \tqr\tx9072\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\rtlgutter\itap0\pararsid12202278 \b\f1\fs28\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid11426236 General Structure}{\insrsid12202278  of Obey file}{\insrsid11426236 
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 The general syntax is:
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid5120752 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\cs109\insrsid14683277\charrsid14762227 obey-file :\~kernel-rom-section}{\cs109\insrsid12202278\charrsid14762227  }{\cs109\insrsid14683277\charrsid14762227 |}{\cs109\insrsid12202278\charrsid14762227  }{\cs109\insrsid14683277\charrsid14762227 
+core-image-statement [ extension-rom-list ]}{\cs109\insrsid14683277 
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\cs109\f2\fs20\insrsid2764289\charrsid14762227 
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid5120752 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\cs109\insrsid14683277\charrsid14762227 kernel-rom-section : obey-statement-list
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\lang2057\langfe1033\cgrid0\langfenp1033\insrsid12202278 
+\par }{\lang2057\langfe1033\cgrid0\langfenp1033\insrsid14683277 The core-image statement is }{\lang2057\langfe1033\cgrid0\langfenp1033\insrsid12202278 valid for non XIP ROMs only and is only handled by ROFSBUILD.}{
+\lang2057\langfe1033\cgrid0\langfenp1033\insrsid9990809 
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid5120752 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\cs109\insrsid14683277\charrsid14762227 core-image-statement: coreimage=core-image-filename}{\cs109\insrsid9990809\charrsid14762227 
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\cs109\f2\fs20\insrsid9990809 
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid12202278 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\cs109\insrsid14683277\charrsid14762227 extension-rom-list : extension-rom-section | extension-rom-section extension-rom-list}{\cs109\insrsid12202278\charrsid14762227 
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid9990809\charrsid12202278 
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid5120752 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\cs109\insrsid14683277 extension-rom-section : extensionrom = rom-file-name obey-statement-list}{\insrsid14683277 
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\cs109\f2\fs20\insrsid9990809 
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2764289 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\cs109\insrsid14683277 obey-statement-list : obey-statement | obey-statement obey-statement-list}{\cs109\insrsid2764289 
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\cs109\f2\fs20\insrsid2764289 
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2764289 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\cs109\insrsid14683277 obey-statement : rom-information-statement | file-statement
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid2764289 
+\par }{\insrsid14683277 The general syntax of a }{\cs109\f2\fs20\insrsid14683277 rom-information-statement}{\insrsid14683277  is:
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid5120752 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\cs109\insrsid14683277 rom-information-statement : kernel-information-statement | generic-information-statement}{\cs109\insrsid657056  | rofs-information-statement}{\cs109\insrsid14683277 
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid9990809 
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid5120752 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\cs109\insrsid14683277 kernel-information-statement : \line }{\insrsid14683277\charrsid9990809 romname = rom-file-name\line | bootbinary = boot-file-name\line }{\cs109\insrsid14683277 | kerneldataaddress = hex-address\line | kernelheapmin = hex-size\line 
+| kernelheapmax = hex-size\line | singlekernel\line | multikernel\line | areas = number-of-areas\line | kerneltrace = 32bit-hex-number
+\par }{\cs109\insrsid13382535 | kernelromname = rom-file-name
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid9990809 
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid5120752 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\cs109\insrsid14683277 generic-information-statement : \line romnameodd = rom-file-name-odd\line | romnameeven = rom-file-name-even\line | srecordfilename = srec-file-name\line | srecordbase = hex-address\line | version = [ major ] [ .minor ] [ (build) ]
+\line | romsize = hex-size\line | romlinearbase = hex-address\line | romalign = hex-alignment\line | dataaddress = hex-address\line | romchecksum = base-checksum\line | time = dd/mm/yyyy hh:mm:ss\line | trace = 32bit-hex-number\line 
+| debugport = 32bit-number\line | collapse = cpu compiler mode
+\par }{\cs109\insrsid2240616 | ascii
+\par }{\cs109\insrsid13382535 | unicode
+\par }{\cs109\insrsid2240616 | coffwrapper
+\par | compress
+\par | defaultstackreserve = <default stack reserve>
+\par }{\insrsid2240616 | dlldatatop = <address of data region>
+\par }{\insrsid13382535 | memmodel = moving | direct | multiple <chunk size> <page size>
+\par | nowrapper
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid657056 
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid657056 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid657056 rofs-information-statement:
+\par autosize = <block size>
+\par | extensionrofs
+\par | extensionrofsname = <filename>
+\par | rofsname = <filename>
+\par | rofsize = <size in bytes>
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid657056 
+\par }{\insrsid14683277 The general syntax of a file-statement is:
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid5120752 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid14683277 file-statement : file-specification-statement | control-statement | rom-directory-statement
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid5120752 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid14683277 file-specification-statement : 
+\par }{\cs109\insrsid14683277 data[[HWVD]] = source-file destination-file [directory-attribute-list]    
+\par | file[[HWVD]] = source-file destination-image-file [full-attribute-list] 
+\par | primary[[HWVD]] = source-file destination-image-file [full-attribute-list]
+\par | secondary = source-file destination-image-file [full-attribute-list]
+\par | variant[HWVD] = source-file destination-image-file [full-attribute-list]
+\par | device[[HWVD]] = source-file destination-image-file [full-attribute-list]
+\par | extension[[HWVD]] = source-file destination-image-file [full-attribute-list]
+\par }\pard \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2240616 \cbpat17 {\cs109\insrsid2240616 
+| dll [[HWVD]] = source-file destination-image-file [full-attribute-list] 
+\par }{\cs109\insrsid13382535 | filecompress [[HWVD]] = source-file destination-image-file [full-attribute-list]
+\par }\pard \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid13382535 \cbpat17 {\cs109\insrsid13382535 
+| fileuncompress [[HWVD]] = source-file destination-image-file [full-attribute-list]
+\par }\pard \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2240616 \cbpat17 {\cs109\insrsid13382535 
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\cs109\f2\fs20\insrsid14683277 
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid5120752 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid14683277 control-statement : 
+\par }{\cs109\insrsid14683277 rem comments
+\par | section = section-offset
+\par }\pard \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid13382535 \cbpat17 {\insrsid13382535 | extensionrom = <rom filename>
+\par }\pard \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid5120752 \cbpat17 {\cs109\insrsid14683277 | align = alignment
+\par | area = name run-address maxlength
+\par | stop}{\cs109\insrsid2240616 
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid5120752 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid14683277 rom-directory-statement : 
+\par }{\cs109\insrsid14683277 hide[[HWVD]] = existing-file
+\par | alias[[HWVD]] = existing-file destination-file [ directory-attribute-list ]
+\par | rename[[HWVD]]= existing-file destination-file [ full-attribute-list ]
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\cs109\f2\fs20\insrsid14683277 
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid5120752 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid14683277 full-attribute-list : full-attribute | full-attribute full-attribute-list
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid2764289 
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid5120752 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid14683277 full-attribute : directory-attribute | file-attribute
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid2764289 
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid5120752 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid14683277 directory-attribute-list : directory-attribute | directory-attribute directory-attribute-list
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid2764289 
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid5120752 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid14683277 directory-attribute : }{\insrsid9990809 
+\par }{\cs109\insrsid14683277      attrib = [ s | S ][ h | H ][ r | R | w | W ] | hide
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\cs109\f2\fs20\insrsid9990809 
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid5120752 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid14683277 file-attribute : 
+\par }{\cs109\insrsid14683277 stack = hex-size
+\par | reloc = hex-address
+\par | heapmin = hex-size
+\par | heapmax = hex-size 
+\par | code-align = hex-number
+\par | fixed
+\par | priority = hex-number | keyword
+\par | patched
+\par | uid1 = uid
+\par | uid2 = uid
+\par | uid3 = uid
+\par | stackreserve = hex-size
+\par | area = name
+\par }\pard\plain \s3\ql \li0\ri0\sb120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \tqr\tx9072\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\rtlgutter\itap0\pararsid14972466 \b\f1\fs28\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid14683277\charrsid14972466 Directory attributes
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9990809 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\cs109\insrsid14683277      attrib = [ s | S ][ h | H ][ r | R | w | W ] | hide
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 
+Files can have the: System, Hidden, read-only, and writable attributes.
+\par File attributes are copied from the source file and are then overridden by the attributes specified by this keyword. Specifying S, H, or R sets the corresponding attribute; specifying s, h or r clears it.
+\par W and w are synonyms for R and r respectively. To mark a file in the ROM as being writable, specify attrib=W.
+\par As this is a ROM, the file cannot be physically modified, even if the read-only attribute is cleared, but it is useful to mark files as writeable so that copies are also made writeable, for example, if copied onto a CF card or a RAM file system.
+\par Using the hide keyword indicates that the file should be included in the ROM but not recorded in the ROM filesystem. If it is a DLL, then it is still available to resolve DLL static links from other files in the same ROM, but is no
+t available to RAM-loaded software or DLLs in an extension ROM.
+\par }\pard\plain \s3\ql \li0\ri0\sb120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \tqr\tx9072\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\rtlgutter\itap0\pararsid14972466 \b\f1\fs28\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid14683277\charrsid14972466 File attributes
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 
+Executable files already have various settings such as UIDs and default stack size recorded when they were processed by petran, but rombuild allows these settings to be overrid
+den, if necessary. There are also a number of other attributes which control the way that the executable is loaded into the ROM image.
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 stack
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9990809 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid14683277 stack = hex-size
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 Overrides the default stack size for the executable.
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 reloc
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9990809 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid14683277 reloc = hex-address
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 
+Supplies a new user-process data run address to which the file is relocated. This parameter is not allowed with files of type: device, extension and variant.
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 heapmin
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9990809 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid14683277 heapmin = hex-size
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 Overrides the default minimum heap size for the executable.
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 heapmax
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9990809 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid14683277 heapmax = hex-size
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 Overrides the default maximum heap size for the executable.
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 code-align
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9990809 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid14683277 code-align = hex-number
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 Specifies the alignment for the executable's code.
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 fixed
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9990809 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid14683277 fixed
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 
+This executable is loaded as a fixed address process, and has its data fixed in Ke
+rnel space (high memory). The data of normal executables is paged in and out of low memory as the executable runs. Fixing a chosen subset of the system servers saves context switch time, and speeds execution considerably. The multiprocess keyword can be u
+sed to specify the chunk size used in allocating data space in high memory; it defaults to 1Mb.
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 priority
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9990809 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid14683277 priority = hex-number | priority-keyword
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 Sets the priority of the process.
+\par The priority can be a hexadecimal number, or one of the keywords listed below:
+\par  
+\par }\trowd \irow0\irowband0\ts111\trgaph108\trleft612\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 
+\trftsWidth1\trftsWidthB3\trftsWidthA3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tbllkhdrrows\tbllklastrow\tbllkhdrcols\tbllklastcol \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr
+\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2376\clshdrawnil \cellx2988\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2977\clshdrawnil \cellx5965\pard\plain 
+\s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362\yts111 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277\charrsid1917381 Keyword \cell Process priority\cell }\pard\plain 
+\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277\charrsid1917381 \trowd \irow0\irowband0\ts111\trgaph108\trleft612\trbrdrt\brdrs\brdrw10 \trbrdrl
+\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 
+\trftsWidth1\trftsWidthB3\trftsWidthA3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tbllkhdrrows\tbllklastrow\tbllkhdrcols\tbllklastcol \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr
+\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2376\clshdrawnil \cellx2988\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2977\clshdrawnil \cellx5965\row }\pard\plain 
+\s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362\yts111 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277\charrsid1917381 low\cell  EPriorityLow\cell }\pard\plain 
+\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277\charrsid1917381 \trowd \irow1\irowband1\ts111\trgaph108\trleft612\trbrdrt\brdrs\brdrw10 \trbrdrl
+\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 
+\trftsWidth1\trftsWidthB3\trftsWidthA3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tbllkhdrrows\tbllklastrow\tbllkhdrcols\tbllklastcol \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr
+\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2376\clshdrawnil \cellx2988\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2977\clshdrawnil \cellx5965\row }\pard\plain 
+\s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362\yts111 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277\charrsid1917381 background\cell  EPriorityBackground\cell }\pard\plain 
+\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277\charrsid1917381 \trowd \irow2\irowband2\ts111\trgaph108\trleft612\trbrdrt\brdrs\brdrw10 \trbrdrl
+\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 
+\trftsWidth1\trftsWidthB3\trftsWidthA3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tbllkhdrrows\tbllklastrow\tbllkhdrcols\tbllklastcol \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr
+\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2376\clshdrawnil \cellx2988\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2977\clshdrawnil \cellx5965\row }\pard\plain 
+\s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362\yts111 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277\charrsid1917381  foreground\cell  EPriorityForeground\cell }\pard\plain 
+\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277\charrsid1917381 \trowd \irow3\irowband3\ts111\trgaph108\trleft612\trbrdrt\brdrs\brdrw10 \trbrdrl
+\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 
+\trftsWidth1\trftsWidthB3\trftsWidthA3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tbllkhdrrows\tbllklastrow\tbllkhdrcols\tbllklastcol \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr
+\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2376\clshdrawnil \cellx2988\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2977\clshdrawnil \cellx5965\row }\pard\plain 
+\s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362\yts111 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277\charrsid1917381  high\cell  EPriorityHigh\cell }\pard\plain 
+\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277\charrsid1917381 \trowd \irow4\irowband4\ts111\trgaph108\trleft612\trbrdrt\brdrs\brdrw10 \trbrdrl
+\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 
+\trftsWidth1\trftsWidthB3\trftsWidthA3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tbllkhdrrows\tbllklastrow\tbllkhdrcols\tbllklastcol \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr
+\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2376\clshdrawnil \cellx2988\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2977\clshdrawnil \cellx5965\row }\pard\plain 
+\s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362\yts111 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277\charrsid1917381  windowserver\cell  EPriorityWindowServer\cell 
+}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277\charrsid1917381 \trowd \irow5\irowband5\ts111\trgaph108\trleft612\trbrdrt\brdrs\brdrw10 
+\trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 
+\trftsWidth1\trftsWidthB3\trftsWidthA3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tbllkhdrrows\tbllklastrow\tbllkhdrcols\tbllklastcol \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr
+\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2376\clshdrawnil \cellx2988\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2977\clshdrawnil \cellx5965\row }\pard\plain 
+\s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362\yts111 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277\charrsid1917381  fileserver\cell  EPriorityFileServer\cell }\pard\plain 
+\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277\charrsid1917381 \trowd \irow6\irowband6\ts111\trgaph108\trleft612\trbrdrt\brdrs\brdrw10 \trbrdrl
+\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 
+\trftsWidth1\trftsWidthB3\trftsWidthA3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tbllkhdrrows\tbllklastrow\tbllkhdrcols\tbllklastcol \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr
+\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2376\clshdrawnil \cellx2988\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2977\clshdrawnil \cellx5965\row }\pard\plain 
+\s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362\yts111 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277\charrsid1917381  realtimeserver\cell  EPriorityRealTimeServer\cell 
+}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277\charrsid1917381 \trowd \irow7\irowband7\ts111\trgaph108\trleft612\trbrdrt\brdrs\brdrw10 
+\trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 
+\trftsWidth1\trftsWidthB3\trftsWidthA3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tbllkhdrrows\tbllklastrow\tbllkhdrcols\tbllklastcol \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr
+\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2376\clshdrawnil \cellx2988\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2977\clshdrawnil \cellx5965\row }\pard\plain 
+\s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362\yts111 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277\charrsid1917381  supervisor\cell  EPrioritySupervisor\cell }\pard\plain 
+\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277\charrsid1917381 \trowd \irow8\irowband8\lastrow \ts111\trgaph108\trleft612\trbrdrt\brdrs\brdrw10 \trbrdrl
+\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 
+\trftsWidth1\trftsWidthB3\trftsWidthA3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tbllkhdrrows\tbllklastrow\tbllkhdrcols\tbllklastcol \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr
+\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2376\clshdrawnil \cellx2988\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth2977\clshdrawnil \cellx5965\row }\pard\plain 
+\s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277  
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 patched
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9990809 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid14683277 patched
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 
+This is used when sectioning a ROM for language variants etc. If an executable is to be replaced, make it patched in the first section of the ROM, and include a replacement in the top section of the ROM, after the section keyword.
+\par Note that the original file is still required to guarantee consistency in the first section of the ROM.
+\par For example, supposed we are replacing TESTEG.DLL in a UK ROM with TESTFR.DLL in a French one.
+\par The original obey file might have a line such as:
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9990809 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\cs109\insrsid14683277\charrsid1917381 file=\\Epoc32\\Release\\Mcog\\rel\\testeg.dll System\\Libs\\TEST.DLL
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 The new obey file would look like this:
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9990809 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\cs109\insrsid14683277\charrsid1917381 file=\\Epoc32\\Release\\Mcog\\rel\\testeg.dll System\\Libs\\TEST.DLL patched
+\par ...
+\par section = 0x200000
+\par file=\\Epoc32\\Release\\Mcog\\rel\\testfr.dll System\\Libs\\TEST.DLL
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 
+NB, it is not possible to patch any files which are listed before the primary or the secondary.
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 uid1, uid2, uid3
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9990809 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid14683277 uid1 = uid-value
+\par uid2 = uid-value
+\par uid3 = uid-value
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 Overrides the UIDs for the executable.
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 area
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9990809 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid14683277 area = name
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 Defines
+ the area in which the executable will be relocated. The specified name must have been previously defined in the area control statement.
+\par }\pard\plain \s3\ql \li0\ri0\sb120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \tqr\tx9072\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\rtlgutter\itap0\pararsid14683277 \b\f1\fs28\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid14683277 {\*\bkmkstart _Toc61942212}Common keywords{\*\bkmkend _Toc61942212}
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 alias
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9990809 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid14683277 alias[[HWVD]] = existing-file destination-file [ directory-attribute-list ]
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 
+Creates an additional filesystem entry, which refers to an existing file. rombuild allows directory aliases to preserve the guarantee that the ROM filesystem should not contain cycles. The existing-file must not be hidden, and both names are now availab
+le to resolve DLL static linkage.
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 data
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9990809 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid14683277 data[[HWVD]] = source-file destination-file [directory-attribute-list]
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 
+A file that is copied from its source location into the ROM without any processing.
+\par Note that the HWVD is optional but, if specified, must be enclosed within square brackets.
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 file
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9990809 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid14683277 file[[HWVD]] = source-file destination-image-file [full-attribute-list]
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 
+A standard executable file, i.e. a .exe or a .dll, in PE format or E32 image format. Executable files are stripped of their relocation information pri
+or to being stored in the ROM. The relocation information is not necessary in the ROM because all files are executed in place, with an address that is determined at ROM build time.
+\par Note that the HWVD is optional but, if specified, must be enclosed within square brackets.
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 hide
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9990809 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid14683277 hide existing-file
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 
+Marks the existing file as hidden. The file is still available to resolve DLL static links.
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 rem
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9990809 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid14683277 rem comment
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 
+Defines a comment line. Text that appears after the rem keyword is interpreted as a comment.
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 rename
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9990809 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid14683277 rename[[HWVD]]= existing-file destination-file [ full-attribute-list ]
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 
+Adding a file and then renaming it is equivalent to adding it directly at the rename destination. The existing and destination directories do not have to be the same.
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 romchecksum
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9990809 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\cs109\insrsid14683277 romchecksum = 32 bit hex-number}{\insrsid14683277 
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 
+The checksum in the final ROM image is made using the following algorithm:
+\par checksum = romchecksum - sum of 32bit words in ROM image.
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 romsize
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9990809 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\cs109\insrsid14683277 romsize = hex-size}{\insrsid14683277 
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 The size of the entire ROM, in hex, e.g. 0x400000 for a 4MB ROM.
+
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 stop
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9990809 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid14683277 stop
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 stops processing of the obey file. The rom image is not generarted
+
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 time
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9990809 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\cs109\insrsid14683277 time = dd/mm/yyyy hh:mm:ss}{\insrsid14683277 
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 
+If specified, overwrites the date-time stamp of the ROM image with this value. If not specified, the image is time and date stamped from the system clock of the build PC.
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 trace
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9990809 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\cs109\insrsid14683277 trace = 32 bit hex-number}{\insrsid14683277 
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 Turns on rombuild tracing. This is internal to Symbian.
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 version
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9990809 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\cs109\insrsid14683277 version = [ major ] [ .minor ] [ (build) ]}{\insrsid14683277 
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 The ROM version number. The version number is returned by }{
+\cs109\f2\fs20\insrsid14683277 Hal::RomVersion()}{\insrsid14683277 .
+\par }\pard\plain \s3\ql \li0\ri0\sb120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \tqr\tx9072\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\rtlgutter\itap0\pararsid14683277 \b\f1\fs28\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid14683277 {\*\bkmkstart _Toc61942213}ROMBUILD specific keywords{\*\bkmkend _Toc61942213}
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 align
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid11158436 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid14683277 align = <hex-number>
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 
+Specifies the alignment boundary for all subsequent files, or until another align control statement is met.
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 area
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid11158436 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid14683277 area = <name> <run-address> <maxlength>
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 Defines a new relocation area.
+\par The area is identified by the specified name. Executable files placed in this area will be relocated so that they run in the address range X, where X is defined as: run-address <= X < run-address+maxlength.
+\par The Bootstrap is required to copy the relevant subset of ROM to the run address at Boot time. The main purpose of areas is to relocate time-critical executables to internal or tightly-coupled RAM.
+\par Directory attributes
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 ascii
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid11158436 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid14683277 ascii}{\insrsid14683277\charrsid10626422 
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 Indicates that this is not a Unicode build.}{
+\insrsid14683277\charrsid1917381 
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 bootbinary
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid11158436 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\cs109\insrsid14683277 bootbinary = <boot-file-name>}{\insrsid14683277 
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 
+File name of the ROM's bootstrap code which, on ARM CPUs, appears at physical address 0x00000000 when the machine is booted.
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 coffwrapper
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid11158436 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\cs109\insrsid14683277\charrsid10626422 coffwrapper
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277\charrsid10626422 Specifies that a COFF ROM wrapper is required}{
+\insrsid14683277 .}{\insrsid14683277\charrsid10626422 
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 collapse
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid11158436 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\cs109\insrsid14683277 collapse = <cpu> <compiler> <mode>}{\insrsid14683277 
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 This is only supported when the CPU is ARM and the compiler is GCC.
+
+\par The mode can take one of the following values:
+\par 1 - collapse import thunks only
+\par 2 - collapse import thunks and vtables
+\par 3 - collapse branches
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 compress
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid11158436 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid14683277 compress}{\cs109\insrsid14683277\charrsid10626422 
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277\charrsid10626422 Compress the ROM image
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 dataaddress
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid11158436 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\cs109\insrsid14683277 dataaddress = <hex-address>}{\insrsid14683277 
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 
+Linear address of data/bss chunks for all executables except the Kernel.
+\par The recommended value is 0x400000.
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 debugport
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid11158436 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\cs109\insrsid14683277 debugport = <32bit-number>}{\insrsid14683277 
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 Specifies the destination port for Kernel and Bootstrap traces.
+
+\par rombuild stores the value in the ROM header.
+\par Each ASSP is free to interpret the debug port as it pleases, for example, as a serial port number or as an I/O base address.
+\par The default value is -1.
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 defaultstackreserve
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid11158436 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid14683277 defaultstackreserve = <default stack reserve>
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 Specify the maximum size of the stack.}{
+\insrsid14683277\charrsid10626422 
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 device
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid11158436 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid14683277 device[[HWVD]] = source-file destination-image-file [full-attribute-list]
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 
+Defines Kernel-mode logical or physical device drivers, which can have global data. The address of this data is generated by rombuild.
+\par Note that the HWVD is optional but, if specified, must be enclosed within square brackets.
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 dll
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid11158436 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid14683277 dll}{\insrsid13451011 [[HWVD]] = source-file destination-image-file [full-attribute-list]}{\insrsid14683277\charrsid10626422 
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277\charrsid10626422 Executable file whose entry point must be called
+
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 dlldatatop
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid11158436 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid14683277 dlldatatop = <address of data region>}{\insrsid14683277\charrsid6956791 
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277\charrsid6956791 Specify top of DLL data region
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 epocwrapper
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid11158436 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid14683277 epocwrapper}{\insrsid14683277\charrsid4420163 
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277\charrsid4420163 Specifies that an EPOC ROM wrapper is required
+
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 extension
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid11158436 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid14683277 extension[[HWVD]] = source-file destination-image-file [full-attribute-list]
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 Defines a Kernel-mode DLL that can have global data, th
+e address of which is generated by rombuild. Extension files are connected together in a linked list, which allows the Kernel to load the extensions at boot time before the ROM file system is available.
+\par Note that the HWVD is optional but, if specified, must be enclosed within square brackets.
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 extensionrom
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid11158436 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\cs109\insrsid14683277 extensionrom = rom-file-name}{\insrsid14683277 
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 
+This marks the start of an extension ROM section. A filename of "*" can be specified, which means use the file name specified on the }{\field\flddirty{\*\fldinst {\insrsid14683277 HYPERLINK "RomInformationStatement.guide.html" \\
+l "Tools%2dguide%2erom%2dimage%2eobey%2dfiles%2dsyntax%2erom%2dinformation%2eromname"}{\insrsid10449189 {\*\datafield 
+08d0c9ea79f9bace118c8200aa004ba90b02000000090000000303000000000000c000000000000046000023000000526f6d496e666f726d6174696f6e53746174656d656e742e67756964652e68746d6c00ffffadde0000000000000000000000000000000000000000000000005200000054006f006f006c007300250032
+0064006700750069006400650025003200650072006f006d0025003200640069006d006100670065002500320065006f00620065007900250032006400660069006c0065007300250032006400730079006e0074006100780025003200650072006f006d0025003200640069006e0066006f0072006d006100740069006f00
+6e0025003200650072006f006d006e0061006d0065000000ff0000ff}}}{\fldrslt {\insrsid14683277 romname}}}{\insrsid14683277  keyword in a }{\field\flddirty{\*\fldinst {\insrsid14683277 HYPERLINK "RomInformationStatement.guide.html" \\
+l "Tools%2dguide%2erom%2dimage%2eobey%2dfiles%2dsyntax%2erom%2dinformation"}{\insrsid10449189 {\*\datafield 
+08d0c9ea79f9bace118c8200aa004ba90b02000000090000000303000000000000c000000000000046000023000000526f6d496e666f726d6174696f6e53746174656d656e742e67756964652e68746d6c00ffffadde0000000000000000000000000000000000000000000000004800000054006f006f006c007300250032
+0064006700750069006400650025003200650072006f006d0025003200640069006d006100670065002500320065006f00620065007900250032006400660069006c0065007300250032006400730079006e0074006100780025003200650072006f006d0025003200640069006e0066006f0072006d006100740069006f00
+6e00000000000000}}}{\fldrslt {\insrsid14683277 rom-information-statement}}}{\insrsid14683277  
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 filecompress
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9400752 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid9400752 filecompress[[HWVD]] = source-file destination-file [}{\insrsid13451011 full-attribute-list}{\insrsid9400752 ]
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid9400752\charrsid9400752 
+Non-XIP Executable to be loaded into the ROM compressed
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 fileuncompress
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9400752 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid9400752 data[[HWVD]] = source-file destination-file [}{\insrsid13451011 full-attribute-list}{\insrsid9400752 ]
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid13451011\charrsid13451011 
+Non-XIP Executable to be loaded into the ROM uncompressed}{\insrsid13451011 
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 kerneldataaddress
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid11158436 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\cs109\insrsid14683277 kerneldataaddress = hex-address}{\insrsid14683277 
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 Kernel data/bss chunk base virtual address.
+\par The recommended value is 0x80000000.
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 kernelheapmax
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid11158436 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\cs109\insrsid14683277 kernelheapmax = hex-size}{\insrsid14683277 
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 Maximu
+m size of the Kernel's heap. The Kernel heap grows in virtual address space until this value is reached: it can then grow no further.
+\par The value is rounded up to a multiple of the virtual address space mapped by a single page directory entry - on ARM CPUs, this is 1MB.
+\par Usually 1 page directory entry's worth of RAM is specified.
+\par The default value is 0x100000; this is used if none is supplied.
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 kernelheapmin
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid11158436 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\cs109\insrsid14683277 kernelheapmin = hex-size}{\insrsid14683277 
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 
+Minimum size of the Kernel heap, allocated immediately when the Kernel boots. Specify either a minimal value, or a working set size based on envisaged use.
+\par The recommended value is 0x10000, and is the default value if none is explicitly supplied.
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 kernelromname
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid15690730 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\cs109\insrsid15690730 kernelromname = rom-file-name}{\insrsid15690730 
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid13451011\charrsid13451011 ROM image on which extension ROM is based}{
+\insrsid13451011 . This keyword is only valid for extension ROMs.}{\insrsid13451011\charrsid13451011 
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 kerneltrace
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid11158436 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\cs109\insrsid14683277 kernelTrace = 32 bit hex-number}{\insrsid14683277 
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 
+Initial value for the Kernel trace mask. The bit values are defined in k32std.h, and only apply to a debug Kernel
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 memmodel
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid15690730 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid15690730 memmodel = (moving | direct |multiple) <chunk size> <page size>}{\insrsid15690730\charrsid15690730 
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15690730\charrsid15690730 Specifies the memory model to be used at runtime
+
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 multikernel
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid11158436 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\cs109\insrsid14683277 multikernel}{\insrsid14683277 
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 
+Specifies that the ROM image has multiple Kernel executables. These Kernels are specified with multiple primary keywords in the files-section.
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 nowrapper
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid15690730 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid15690730 nowrapper}{\insrsid15690730\charrsid15690730 
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15690730\charrsid15690730 Specifies that no ROM wrapper is required}{
+\insrsid15690730 .}{\insrsid15690730\charrsid15690730 
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 primary
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid11158436 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid14683277 primary[[HWVD]] = source-file destination-image-file [full-attribute-list]
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 
+A standard executable file that is loaded directly directly, bypassing the file server. The Boot program loads and gives control to the primary; this is the Kernel. 
+\par As with all standard executable files, this is loaded, relocated and stripped of its relocation information.
+\par Note that the HWVD is optional but, if specified, must be enclosed within square brackets.
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 romalign
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9400752 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\cs109\insrsid14683277\charrsid14972466 romalign = hex-alignment
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 
+The address alignment boundary for files in the ROM. This value should be greater than 4, and a multiple of 4. The recommended value is 0x10.
+\par If no value is specified, rombuild defaults to using a value of 0x1000.
+\par If the value specified is not a multiple of 4, it is rounded to become so.
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 romlinearbase
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid11158436 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\cs109\insrsid14683277 romlinearbase = hex-address}{\insrsid14683277 
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 Virtual address of the start of ROM, in hex.
+\par The recommended value for ARM CPUs is 0x50000000.
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 romname
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9534246 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\cs109\insrsid14683277 romname = rom-file-name}{\insrsid14683277 
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 
+This is the name of the output file, and contains the ROM image that rombuild creates.
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 romnameeven
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9534246 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\cs109\insrsid14683277 romnameeven = rom-file-name-even}{\insrsid14683277 
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 
+rombuild can write two separate ROM images, one containing the odd bytes of the image, and the other the even. This is done if this keyword and the }{\insrsid2562411 romnameodd }{\insrsid14683277 
+keyword are used to specify the output filenames for the two half-images. A filename of "*" can be specified, which means use the file name specified on the }{\insrsid2562411 romname }{\insrsid14683277 keyword and append .even.
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 romnameodd
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9534246 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\cs109\insrsid14683277 romnameodd = rom-file-name-odd}{\insrsid14683277 
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 
+rombuild can write two separate ROM images, one containing the odd bytes of the image, and the other the even. This is done if this keyword and the}{\insrsid2562411  romnameeven}{\insrsid14683277  keyword are used to specify the output filenames for t
+he two half-images. A filename of "*" can be specified, which means use the file name specified on the }{\insrsid2562411 romname}{\insrsid14683277  keyword and append .odd.
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 secondary
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9534246 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid14683277 secondary = source-file destination-image-file [full-attribute-list]
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 A standard executable file that is loaded
+ by the Kernel; this is the file server. All subsequent files can be loaded through the file server.
+\par As with all standard executable files, this is loaded, relocated and stripped of its relocation information.
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 section
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9534246 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid14683277 section = section-offset
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 ROMs can be s
+ectioned into two parts allowing the upper part of the ROM to be switched for language variations and file patching. This is independent of the extension ROM mechanism.
+\par This keyword appears at the point in the obey file where the ROM to be split. All files before this line appear in the first (constant) section, and files after appear in the second (patch/language) section.
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 singlekernel
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9534246 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\cs109\insrsid14683277 singlekernel}{\insrsid14683277 
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 
+Specifies that this ROM image has one Kernel executable within it. This is the default.
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 srecordbase
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9534246 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\cs109\insrsid14683277 srecordbase = hex-address}{\insrsid14683277 
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 Destination address for S-record download.
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 srecordfilename
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9534246 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\cs109\insrsid14683277 srecordfilename = srec-file-name}{\insrsid14683277 
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 
+rombuild can write an image in Motorola S-record format. This happens if a name for the output file is specified here. A filename of "*" can be specified, which means use the file name specified on the }{\field\flddirty{\*\fldinst {\insrsid14683277 
+HYPERLINK "RomInformationStatement.guide.html" \\l "Tools%2dguide%2erom%2dimage%2eobey%2dfiles%2dsyntax%2erom%2dinformation%2eromname"}{\insrsid10449189 {\*\datafield 
+08d0c9ea79f9bace118c8200aa004ba90b02000000090000000303000000000000c000000000000046000023000000526f6d496e666f726d6174696f6e53746174656d656e742e67756964652e68746d6c00ffffadde0000000000000000000000000000000000000000000000005200000054006f006f006c007300250032
+0064006700750069006400650025003200650072006f006d0025003200640069006d006100670065002500320065006f00620065007900250032006400660069006c0065007300250032006400730079006e0074006100780025003200650072006f006d0025003200640069006e0066006f0072006d006100740069006f00
+6e0025003200650072006f006d006e0061006d0065000000000000ff}}}{\fldrslt {\insrsid14683277 romname}}}{\insrsid14683277  keyword and append .screc.
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 unicode
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid15690730 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid15690730 unicode}{\insrsid15690730\charrsid15690730 
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15690730 UNICODE ROM \endash  this is the}{
+\insrsid15690730\charrsid15690730  default
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 variant
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9534246 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid14683277 variant[HWVD] = source-file destination-image-file [full-attribute-list]
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 
+Defines hardware variants. It should be applied to the variant DLL, i.e. the ecust.dll of each hardware variant to be supported, and must specify a suitable HWVD. Note that the HWVD must be enclosed within square brackets.
+\par }\pard\plain \s3\ql \li0\ri0\sb120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \tqr\tx9072\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\rtlgutter\itap0\pararsid14683277 \b\f1\fs28\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid14683277 {\*\bkmkstart _Toc61942214}ROFSBUILD specific keywords{\*\bkmkend _Toc61942214}
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 autosize
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9534246 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid14683277 autosize=<block size>
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 
+The automatic sizing functionality will always reduce the size to a whole number of blocks where the size of the block has been specified in the autosize command. 
+\par For example if the rofsize is set to 0x30000 and the actual image size is 0x1234 then the generated image size without autosize option will be 0x30000. If autosize=0x1000 is used then the generated image size will be 0x2000.
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 coreimage
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9534246 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid14683277 coreimage=<core image file>
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 
+This coreimage keyword indicates to rofsbuild that the generation of the core image is not required and that the specified core image should be used to as the base for generating the extension image.
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 extensionrofs
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14972466 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid14683277\charrsid14972466 extensionrofs
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 Start of definition of optional Extension ROFS
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 extensionrofsname
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9534246 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\cs109\insrsid14683277 extensionrofs=<filename>
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 
+Specify the name of the extension image.  Any new files added after this keyword will appear in the extension.  The files in the core can be renamed, hidden, and aliased by using the other keywords.
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 rofsname
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9534246 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid14683277 rofsname=<filename>
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 Specify the name of the core image.
+\par }\pard\plain \s110\ql \li0\ri0\sb120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14683277 \b\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 rofsize
+\par }\pard\plain \s15\ql \li0\ri0\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid9534246 \cbpat17 \f2\fs20\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid14683277 rofssize=<size in bytes>
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14683277 
+Specify the maximum size of the core image, or the maximum size of the extension.
+\par }{\insrsid14683277\charrsid14683277 
+\par }\pard\plain \s2\ql \li0\ri0\sb120\keepn\widctlpar\brdrt\brdrs\brdrw60\brsp20 \tqr\tx9072\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\rtlgutter\itap0\pararsid14683277 \b\f1\fs34\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid15948434 Building multi-boot ROMs
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid9534246 
+A multi-boot ROM exists when there is support for more than one hardware Variant in the ROM image. Such a ROM also has multiple root directories, one for each Variant supported. This automatically ensures that the file server only 
+sees the files that are relevant to the hardware on which it is running.
+\par There may, or may not, be multiple Kernels to support the multiple hardware variants. If there is more than one Kernel, then the keyword multikernel should be present in the rom-infor
+mation-statement part of the obey file. The first and subsequent Kernels are specified in the file-statement part of the obey file with the primary keyword.
+\par }\pard\plain \s3\ql \li0\ri0\sb120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \tqr\tx9072\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\rtlgutter\itap0\pararsid9534246 \b\f1\fs28\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid9534246 {\*\bkmkstart Tools_2dguide_2erom_2dimage_2emulti_2dbo}{\*\bkmkend Tools_2dguide_2erom_2dimage_2emulti_2dbo}Hardware Variant Discriminator (HWVD)
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid9534246 
+rombuild uses a Hardware Variant Discriminator (HWVD) to decide which files in the file-statement part of the obey file are present in which directory structure.
+\par This is an 8 digit (32 bit) hexadecimal number that may, optionally, appear after the file name. The number itself must be enclosed in square brackets. The number identifies the hardware variants to which the file is relevant.
+\par The HWVD numbers have a structure which enables them to describe a tree. The top 8 bits are the "node" n
+umber, the next 8 bits are the "parent" node number, and the low 16 bits are the variant mask. These numbers together place the HWVD into a tree with the following structure:
+\par }{\insrsid15948434 
+\par 
+\par }{\insrsid10449189 {\pict{\*\picprop\shplid1026{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fillColor}{\sv 268435473}}{\sp{\sn fFilled}{\sv 0}}
+{\sp{\sn fLine}{\sv 0}}{\sp{\sn fLayoutInCell}{\sv 1}}{\sp{\sn fLayoutInCell}{\sv 1}}}\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0
+\picw5084\pich4494\picwgoal2882\pichgoal2548\wmetafile8\bliptag968032448\blipupi575{\*\blipuid 39b300c03d6b9f374d7a84f66d7e32dd}
+0100090000035b08000007001c00000000001100000026060f001800ffffffff0000100070f6ffff0bf9fffff1faffff06fdffff0900000026060f000800ffff
+ffff020000001000000026060f001600ffffffff04000e00544e50500700a8623d501d09b9000a00000026060f000a00544e505000000200f003090000002606
+0f000800ffffffff030000000f00000026060f001400544e505004000c00010000000100000000000000050000000b020bf970f6050000000c02fb0381040800
+0000fa0205000100000000000000040000002d01000007000000fc020100000000000000040000002d0101000900000026060f000800ffffffff000000000500
+000004010d000000040000002d010000040000002d010100030000001e00070000001604d8fc0640e0fb01c008000000fa020600100000000000000204000000
+2d010200050000001402e0fb70f9050000001302d0fcd0f9040000002d010000040000002d01010004000000f0010200040000002701ffff040000002d010000
+040000002d010100030000001e00070000001604d8fc88f8b0fbc0f708000000fa0206001000000000000002040000002d010200050000001402b0fbc0f70500
+00001302d0fc80f8040000002d010000040000002d01010004000000f0010200040000002701ffff040000002d010000040000002d010100030000001e000700
+00001604a8fcc8f7e0fb60f708000000fa0206001000000000000002040000002d010200050000001402e0fbc0f7050000001302a0fc60f7040000002d010000
+040000002d01010004000000f0010200040000002701ffff040000002d010000040000002d010100030000001e00070000001604b8fb48f9f0fa80f808000000
+fa0206001000000000000002040000002d010200050000001402f0fa80f8050000001302b0fb40f9040000002d010000040000002d01010004000000f0010200
+040000002701ffff040000002d010000040000002d010100030000001e00070000001604e8fb88f8f0fac0f708000000fa020600100000000000000204000000
+2d010200050000001402f0fa80f8050000001302e0fbc0f7040000002d010000040000002d01010004000000f0010200040000002701ffff0900000026060f00
+0800ffffffff0000000008000000fa0206001000000000000002040000002d01020007000000fc020000ffffff020000040000002d010300050000000902ffff
+ff0207000000180411fc1df880fb8cf71c000000fb02b1ff000000000000bc02000000000000001254696d6573204e657720526f6d616e00db7ced77d067ef77
+38050a0c00000a00040000002d010400050000002e0118000000050000000a020000000005000000090200000002050000001402e0fbc0f70500000002010100
+000009000000320ae0fbc0f70100000034002800050000000201020000000900000026060f000800ffffffff010000000900000026060f000800ffffffff0000
+0000050000000902ffffff0207000000180411fc9df980fb0cf91c000000fb02b1ff000000000000bc02000000000000001254696d6573204e657720526f6d61
+6e00db7ced77d067ef773d050a2700000a00040000002d01050004000000f0010400050000002e0118000000050000000a020000000005000000090200000002
+0500000014021fdd00000500000002010100000009000000320ae0fb40f90100000037002800050000000201020000000900000026060f000800ffffffff0100
+00000900000026060f000800ffffffff00000000050000000902ffffff0207000000180401fd8df770fcfcf61c000000fb02b1ff000000000000bc0200000000
+0000001254696d6573204e657720526f6d616e00db7ced77d067ef7738050a0d00000a00040000002d01040004000000f0010500050000002e01180000000500
+00000a0200000000050000000902000000020500000014021fdd00000500000002010100000009000000320ad0fc30f701000000350028000500000002010200
+00000900000026060f000800ffffffff010000000900000026060f000800ffffffff00000000050000000902ffffff0207000000180401fdadf870fc1cf81c00
+0000fb02b1ff000000000000bc02000000000000001254696d6573204e657720526f6d616e00db7ced77d067ef773d050a2800000a00040000002d0105000400
+0000f0010400050000002e0118000000050000000a0200000000050000000902000000020500000014021fdd00000500000002010100000009000000320ad0fc
+50f80100000036002800050000000201020000000900000026060f000800ffffffff010000000900000026060f000800ffffffff00000000050000000902ffff
+ff0207000000180401fd2dfa70fc9cf91c000000fb02b1ff000000000000bc02000000000000001254696d6573204e657720526f6d616e00db7ced77d067ef77
+38050a0e00000a00040000002d01040004000000f0010500050000002e0118000000050000000a0200000000050000000902000000020500000014021fdd0000
+0500000002010100000009000000320ad0fcd0f90100000038002800050000000201020000000900000026060f000800ffffffff010000000500000009020000
+0002040000002d010000040000002d01010004000000f001020004000000f00103001c000000fb021000070000000000bc02000000000102022253797374656d
+00773705661607008a0100000a000600000007008a0100000a00040000002d01020004000000f0010400030000001e00070000001604c8fa064040f901c00800
+0000fa0206001000000000000002040000002d0103000500000014023ef980f8050000001302c2fa80f8040000002d010000040000002d01010004000000f001
+0300040000002701ffff0900000026060f000800ffffffff0000000008000000fa0206001000000000000002040000002d01030007000000fc020000ffffff02
+0000040000002d010400050000000902ffffff02070000001804a1f9ddf810f94cf81c000000fb02b1ff000000000000bc02000000000000001254696d657320
+4e657720526f6d616e00db7ced77d067ef7739050a5800000a00040000002d010500050000002e0118000000050000000a020000000005000000090200000002
+050000001402c2fa80f80500000002010100000009000000320a70f980f80100000031002800050000000201020000000900000026060f000800ffffffff0100
+00000900000026060f000800ffffffff00000000050000000902ffffff0207000000180461faddf8d0f94cf81c000000fb02b1ff000000000000bc0200000000
+0000001254696d6573204e657720526f6d616e00db7ced77d067ef773d050a2900000a00040000002d01060004000000f0010500050000002e01180000000500
+00000a0200000000050000000902000000020500000014021fdd00000500000002010100000009000000320a30fa80f801000000320028000500000002010200
+00000900000026060f000800ffffffff010000000900000026060f000800ffffffff00000000050000000902ffffff0207000000180421fbddf890fa4cf81c00
+0000fb02b1ff000000000000bc02000000000000001254696d6573204e657720526f6d616e00db7ced77d067ef7739050a5900000a00040000002d0105000400
+0000f0010600050000002e0118000000050000000a0200000000050000000902000000020500000014021fdd00000500000002010100000009000000320af0fa
+80f80100000033002800050000000201020000000900000026060f000800ffffffff0100000005000000090200000002040000002d010000040000002d010100
+04000000f001030004000000f0010400040000002d01020004000000f0010500030000001e000700000016040640f8fa01c070f607000000fc02000000000002
+0000040000002d010300050000000902000000020c000000240304006ef64cfb6ef654fb76f654fb76f64cfb050000000902000000020c000000240304008ef6
+4cfb8ef654fb96f654fb96f64cfb050000000902000000020c00000024030400aef64cfbaef654fbb6f654fbb6f64cfb050000000902000000020c0000002403
+0400cef64cfbcef654fbd6f654fbd6f64cfb050000000902000000020c00000024030400eef64cfbeef654fbf6f654fbf6f64cfb050000000902000000020c00
+0000240304000ef74cfb0ef754fb16f754fb16f74cfb050000000902000000020c000000240304002ef74cfb2ef754fb36f754fb36f74cfb0500000009020000
+00020c000000240304004ef74cfb4ef754fb56f754fb56f74cfb050000000902000000020c000000240304006ef74cfb6ef754fb76f754fb76f74cfb05000000
+0902000000020c000000240304008ef74cfb8ef754fb96f754fb96f74cfb050000000902000000020c00000024030400aef74cfbaef754fbb6f754fbb6f74cfb
+050000000902000000020c00000024030400cef74cfbcef754fbd6f754fbd6f74cfb050000000902000000020c00000024030400eef74cfbeef754fbf6f754fb
+f6f74cfb050000000902000000020c000000240304000ef84cfb0ef854fb16f854fb16f84cfb050000000902000000020c000000240304002ef84cfb2ef854fb
+36f854fb36f84cfb050000000902000000020c000000240304004ef84cfb4ef854fb56f854fb56f84cfb050000000902000000020c000000240304006ef84cfb
+6ef854fb76f854fb76f84cfb050000000902000000020c000000240304008ef84cfb8ef854fb96f854fb96f84cfb050000000902000000020c00000024030400
+aef84cfbaef854fbb6f854fbb6f84cfb050000000902000000020c00000024030400cef84cfbcef854fbd6f854fbd6f84cfb050000000902000000020c000000
+24030400eef84cfbeef854fbf6f854fbf6f84cfb050000000902000000020c000000240304000ef94cfb0ef954fb16f954fb16f94cfb05000000090200000002
+0c000000240304002ef94cfb2ef954fb36f954fb36f94cfb050000000902000000020c000000240304004ef94cfb4ef954fb56f954fb56f94cfb050000000902
+000000020c000000240304006ef94cfb6ef954fb76f954fb76f94cfb050000000902000000020c000000240304008ef94cfb8ef954fb96f954fb96f94cfb0500
+00000902000000020c00000024030400aef94cfbaef954fbb6f954fbb6f94cfb050000000902000000020c00000024030400cef94cfbcef954fbd6f954fbd6f9
+4cfb050000000902000000020c00000024030400eef94cfbeef954fbf6f954fbf6f94cfb050000000902000000020c000000240304000efa4cfb0efa54fb16fa
+54fb16fa4cfb050000000902000000020c000000240304002efa4cfb2efa54fb36fa54fb36fa4cfb050000000902000000020c000000240304004efa4cfb4efa
+54fb56fa54fb56fa4cfb050000000902000000020c000000240304006efa4cfb6efa54fb76fa54fb76fa4cfb050000000902000000020c000000240304008efa
+4cfb8efa54fb96fa54fb96fa4cfb050000000902000000020c00000024030400aefa4cfbaefa54fbb6fa54fbb6fa4cfb050000000902000000020c0000002403
+0400cefa4cfbcefa54fbd6fa54fbd6fa4cfb050000000902000000020c00000024030400eefa4cfbeefa54fbf2fa54fbf2fa4cfb050000000902000000020400
+00002d010000040000002d01010004000000f0010300040000002701ffff0900000026060f000800ffffffff010000000f00000026060f001400544e505004000c000000000000000000000000000900000026060f000800ffffffff01000000040000002d010000040000002d010100030000000000}}{
+\insrsid15948434 
+\par }{\insrsid12875944 The nodes above the dotted line are fixed:
+\par 1 is fully generic
+\par 2 is platform specific, i.e. the kp_* layer
+\par 3 is processor architecture, i.e. the kc_* layer.
+\par The node numbers below the dotted line are specific to a given ROM, but live in two distinct layers:
+\par 4 and 7 represent a specific CPU core core, e.g. ARM7, SA-1.
+\par 5, 6 and 8 represent a specific ASSP
+\par For HWVD numbers which refer to the ASSP nodes (5,6 & 8 in the diagram), the low 16 bits indicate which Variants are supported by the given file. There must be at least one file, the Variant DLL, which is marked as supporting only one Variant.
+\par This tree is used to determine which files appear in the ROM directory structure for a given Variant, and also how the static DLL linkages are resolved. A file associated with a node in the tree can link to any DLL 
+attached to the same node, or any DLL attached to one of the nodes in the path leading back to the root of the tree.
+\par It is possible to have two or more files of the same name in the same directory provided that they have HWVDs which are mutually exclusive, so that the two files can never appear on the same machine.
+\par For example:
+\par 0x01000000 - generic file, appears in directory tree for every variant
+\par 0x0504FFFF - file associated with node 5, supporting all variants
+\par 0x04030000 file associated with node 4
+\par 0x07030000 file associated with node 7
+\par 0x06070001 improper for the diagram shown - implies that node 7 is parent of node 6
+\par 0x06040001 file associated with node 6, supporting only the first variant.
+\par In practice, the ROM-constrained nature of devices does not encourage extensive use of this facility, and it would be unusual to have more than one ASSP supported. 
+\par }\pard\plain \s4\ql \li0\ri0\sb120\keepn\widctlpar\brdrt\brdrs\brdrw15\brsp20 \tqr\tx9072\aspalpha\aspnum\faauto\ilvl12\outlinelevel3\adjustright\rin0\lin0\rtlgutter\itap0 \b\f1\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid12875944 E}{
+\insrsid15948434 xtension ROMs
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 
+An extension ROM is a ROM image which combines with a kernel ROM image to produce a larger overall ROM with a  modified ROM filesystem.}{\insrsid12875944 
+\par }{\insrsid15948434 Each extension ROM section starts with a fresh copy of the ROM filesystem produced by the kernel ROM section of the OBEY file, and modifies it by adding files and possibly renaming or hiding the f
+iles in the kernel image. Once the section has been processed, the extension image is written to the filename specified in the extensionrom statement, including a directory structure which refers to files in both the extension and the kernel images: no ch
+anges are made to the kernel image, which is completely independent of any extension ROMs.
+\par It is possible to extend a kernel ROM which used the section keyword to create a replaceable section, but the extension ROM will be very likely to contain the address
+es of files in the second section, which are likely to change if a different second section is used. This won\rquote t be a problem if the extension ROM is changed at the same time as the second section.
+\par }\pard\plain \s2\ql \li0\ri0\sb120\keepn\widctlpar\brdrt\brdrs\brdrw60\brsp20 \tqr\tx9072\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\rtlgutter\itap0 \b\f1\fs34\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 
+ROM image format
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 In this section we first explain the forma
+t of a Kernel ROM image, and then go on to show how this is altered when the ROM is sectioned.
+\par }\pard\plain \s3\ql \li0\ri0\sb120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \tqr\tx9072\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\rtlgutter\itap0\pararsid2562411 \b\f1\fs28\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid15948434 Kernel ROM image format
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid12875944\charrsid12875944 
+The standard output from rombuild is an image on disk which consists of six sections:
+\par TRomLoaderHeader - also known as the wrapper, this is discarded in the final blown ROM image
+\par TRomHeader - the ROM header which remains in the ROM image
+\par bootrom.bin - the Bootstrap binary image
+\par TRomRootDirectoryList - a list of all the root directories, one for each Variant supported by this ROM image. In the Kernel ROM image, there is only one root directory and one variant.
+\par the directory structure - the overhead supporting a full directory structure on the ROM.
+\par the file images - the executables and data which go to make up the ROM image.
+\par }\pard\plain \s4\ql \li0\ri0\sb120\keepn\widctlpar\brdrt\brdrs\brdrw15\brsp20 \tqr\tx9072\aspalpha\aspnum\faauto\outlinelevel3\adjustright\rin0\lin0\rtlgutter\itap0\pararsid2562411 \b\f1\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid6900756 TRomLoaderHeader
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 T
+his is a wrapper, which is used by the 486 boot loader and the Series 5 ROM programmer, and then discarded. It is possible to build a ROM without this header, by specifying the -no-header parameter to rombuild.
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 Offset (hex)\nestcell{\nonesttables
+\par }Description of field\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow0\irowband0\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw30\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1398\clvertalt\clbrdrt\brdrs\brdrw30\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx7679\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 00\nestcell{\nonesttables
+\par }ROM image name (ascii text)\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow1\irowband1\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1398\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx7679\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 10\nestcell{\nonesttables
+\par }Version string (ascii text)\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow2\irowband2\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1398\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx7679\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 14\nestcell{\nonesttables
+\par }Build string (ascii text)\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow3\irowband3\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1398\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx7679\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 18\nestcell{\nonesttables
+\par }Size of ROM image\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow4\irowband4\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1398\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx7679\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 1C\nestcell{\nonesttables
+\par }Size of wrapper\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow5\irowband5\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1398\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx7679\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 20\nestcell{\nonesttables
+\par }Filler to size of wrapper (specified above, usually 0x100 bytes)\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow6\irowband6\lastrow \ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw30\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1398\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw30\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx7679\nestrow}{\nonesttables
+\par }}\trowd \irow0\irowband0\lastrow \ts11\trgaph15\trleft-15\trftsWidth1\trftsWidthB3\trftsWidthA3\trautofit1\trspdfl3\trspdft3\trspdfb3\trspdfr3\trpaddl15\trpaddt15\trpaddb15\trpaddr15\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalc\clbrdrt\brdrtbl 
+\clbrdrl\brdrtbl \clbrdrb\brdrtbl \clbrdrr\brdrtbl \cltxlrtb\clftsWidth1\clshdrawnil \cellx7709\pard \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid2562411 {\insrsid6900756 \cell }\pard 
+\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\fs20\insrsid6900756 \trowd \irow0\irowband0\lastrow 
+\ts11\trgaph15\trleft-15\trftsWidth1\trftsWidthB3\trftsWidthA3\trautofit1\trspdfl3\trspdft3\trspdfb3\trspdfr3\trpaddl15\trpaddt15\trpaddb15\trpaddr15\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalc\clbrdrt\brdrtbl \clbrdrl\brdrtbl \clbrdrb\brdrtbl 
+\clbrdrr\brdrtbl \cltxlrtb\clftsWidth1\clshdrawnil \cellx7709\row }\pard\plain \s4\ql \li0\ri0\sb120\keepn\widctlpar\brdrt\brdrs\brdrw15\brsp20 \tqr\tx9072\aspalpha\aspnum\faauto\outlinelevel3\adjustright\rin0\lin0\rtlgutter\itap0\pararsid2562411 
+\b\f1\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 TRomHeader
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 This data is created by }{\insrsid3552037 ROMBUILD}{\insrsid6900756 
+ for later use by the Bootstrap program and the Kernel.
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756\charrsid8743957 Offset (hex)
+\nestcell{\nonesttables
+\par }Description of field\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow0\irowband0\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw30\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1029\clvertalt\clbrdrt\brdrs\brdrw30\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx9726\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 00\nestcell{\nonesttables
+\par }0x80 bytes reserved for a small amount of boot code if needed\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow1\irowband1\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1029\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx9726\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid293946 80\nestcell{\nonesttables
+\par }ROM image build datetime.\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid293946 {\*\nesttableprops\trowd \irow2\irowband2\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1029\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx9726\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid293946 8C\nestcell{\nonesttables
+\par }ROM virtual base address.\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid293946 {\*\nesttableprops\trowd \irow3\irowband3\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1029\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx9726\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid293946 90\nestcell{\nonesttables
+\par }ROM image size in bytes (including the second section for sectioned ROMs).\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid293946 {\*\nesttableprops\trowd \irow4\irowband4\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1029\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx9726\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid293946 94\nestcell{\nonesttables
+\par }Virtual address of the TRomRootDirList structure.\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid293946 {\*\nesttableprops\trowd \irow5\irowband5\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1029\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx9726\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid293946 98\nestcell{\nonesttables
+\par }Kernel data virtual address (when in RAM).\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid293946 {\*\nesttableprops\trowd \irow6\irowband6\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1029\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx9726\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid293946 9C\nestcell{\nonesttables
+\par }Kernel limit virtual address (when in RAM).\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid293946 {\*\nesttableprops\trowd \irow7\irowband7\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1029\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx9726\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid293946 A0\nestcell{\nonesttables
+\par }Virtual address of (first) primary's TRomImageHeader.\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid293946 {\*\nesttableprops\trowd \irow8\irowband8\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1029\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx9726\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid293946 A4\nestcell{\nonesttables
+\par }Virtual address of secondary's TRomImageHeader.\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid293946 {\*\nesttableprops\trowd \irow9\irowband9\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1029\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx9726\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid293946 A8\nestcell{\nonesttables
+\par }Computed constant which causes the 32-bit checksum of the image to equal the value specified by the romchecksum keyword.\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid293946 {\*\nesttableprops\trowd \irow10\irowband10\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1029\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx9726\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid293946 AC\nestcell{\nonesttables
+\par }Hardware - a unique number identifying the hardware for which this ROM image has been built.
+\par NB This is only used for testing purposes.\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid293946 {\*\nesttableprops\trowd \irow11\irowband11\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1029\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx9726\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid293946 B0\nestcell{\nonesttables
+\par }Languages - a bitmask identifying which of the languages are supported by the ROM image, as specified by the languages keyword. 
+\par NB This is only used for testing purposes.\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid293946 {\*\nesttableprops\trowd \irow12\irowband12\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1029\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx9726\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid293946 B8\nestcell{\nonesttables
+\par }Not Used\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid293946 {\*\nesttableprops\trowd \irow13\irowband13\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1029\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx9726\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid293946 BC\nestcell{\nonesttables
+\par }Not Used\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid293946 {\*\nesttableprops\trowd \irow14\irowband14\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1029\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx9726\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid293946 C0\nestcell{\nonesttables
+\par }Not Used\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid293946 {\*\nesttableprops\trowd \irow15\irowband15\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1029\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx9726\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid293946 C4\nestcell{\nonesttables
+\par }ROM section header, a pointer to a TRomSectionHeader, if the ROM is sectioned.\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid293946 {\*\nesttableprops\trowd \irow16\irowband16\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1029\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx9726\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid293946 C8\nestcell{\nonesttables
+\par }Total supervisor data size, the amount of memory mapped for the Kernel data chunk.\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid293946 {\*\nesttableprops\trowd \irow17\irowband17\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1029\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx9726\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid293946 CC\nestcell{\nonesttables
+\par }Address of variant file TRomEntry.\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid293946 {\*\nesttableprops\trowd \irow18\irowband18\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1029\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx9726\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid293946 D0\nestcell{\nonesttables
+\par }Address of TRomEntry for the first extension file, if it exists. If there is more than one extension, then the next extension field in the TRomImageHeader of the extension points to the TRomEntry for the next one.\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid293946 {\*\nesttableprops\trowd \irow19\irowband19\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1029\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx9726\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid293946 D4\nestcell{\nonesttables
+\par }Address of the first area to be relocated into RAM, as defined using the }{\field\fldedit{\*\fldinst {\insrsid293946  HYPERLINK "mk:@MSITStore:C:\\\\Documents%20and%20Settings\\\\kuldipn\\\\My%20Documents\\\\lib\\\\
+docset.chm::/doc_source/BasePorting/Tools/MakingROMImage/ObeyAndSyntax/FileInformationStatement.guide.html" \\l "Tools%2dguide%2erom%2dimage%2eobey%2dfiles%2dsyntax%2efile%2dinformation%2econtrol%2dstatement%2earea" }{\insrsid10449189 {\*\datafield 
+08d0c9ea79f9bace118c8200aa004ba90b020000000b000000e0c9ea79f9bace118c8200aa004ba90b580100006d006b003a0040004d00530049005400530074006f00720065003a0043003a005c0044006f00630075006d0065006e0074007300200061006e0064002000530065007400740069006e00670073005c006b00
+75006c006400690070006e005c004d007900200044006f00630075006d0065006e00740073005c006c00690062005c0064006f0063007300650074002e00630068006d003a003a002f0064006f0063005f0073006f0075007200630065002f00420061007300650050006f007200740069006e0067002f0054006f006f006c
+0073002f004d0061006b0069006e00670052004f004d0049006d006100670065002f004f0062006500790041006e006400530079006e007400610078002f00460069006c00650049006e0066006f0072006d006100740069006f006e00530074006100740065006d0065006e0074002e00670075006900640065002e006800
+74006d006c0000006600000054006f006f006c0073002500320064006700750069006400650025003200650072006f006d0025003200640069006d006100670065002500320065006f00620065007900250032006400660069006c0065007300250032006400730079006e00740061007800250032006500660069006c0065
+0025003200640069006e0066006f0072006d006100740069006f006e0025003200650063006f006e00740072006f006c00250032006400730074006100740065006d0065006e0074002500320065006100720065006100000001ffff}}}{\fldrslt {\insrsid293946 area}}}{\insrsid293946  keyword.
+\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid293946 {\*\nesttableprops\trowd \irow20\irowband20\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1029\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx9726\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid293946 D8\nestcell{\nonesttables
+\par }Initial value for the Kernel trace mask.\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid293946 {\*\nesttableprops\trowd \irow21\irowband21\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1029\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx9726\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid293946 DC\nestcell{\nonesttables
+\par }User data address.\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid293946 {\*\nesttableprops\trowd \irow22\irowband22\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1029\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx9726\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid293946 E0\nestcell{\nonesttables
+\par }Total user data size\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid293946 {\*\nesttableprops\trowd \irow23\irowband23\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1029\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx9726\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid293946 E4\nestcell{\nonesttables
+\par }Value interpreted by the Bootstrap and Kernel as the debug port to use.\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid293946 {\*\nesttableprops\trowd \irow24\irowband24\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1029\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx9726\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid293946 E8\nestcell{\nonesttables
+\par }Version\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid293946 {\*\nesttableprops\trowd \irow25\irowband25\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1029\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx9726\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid293946 EC\nestcell{\nonesttables
+\par }Compression type used for image\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid293946 {\*\nesttableprops\trowd \irow26\irowband26\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1029\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx9726\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid293946 F0\nestcell{\nonesttables
+\par }Size after compression\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid293946 {\*\nesttableprops\trowd \irow27\irowband27\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1029\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx9726\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid293946 F4\nestcell{\nonesttables
+\par }Size before compression\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid293946 {\*\nesttableprops\trowd \irow28\irowband28\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1029\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx9726\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid293946 F8-FF\nestcell{\nonesttables
+\par }Filler \nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid293946 {\*\nesttableprops\trowd \irow29\irowband29\lastrow \ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw30\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1029\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw30\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx9726\nestrow}{\nonesttables
+\par }}\trowd \irow0\irowband0\lastrow \ts11\trgaph15\trleft-15\trftsWidth1\trftsWidthB3\trftsWidthA3\trautofit1\trspdfl3\trspdft3\trspdfb3\trspdfr3\trpaddl15\trpaddt15\trpaddb15\trpaddr15\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalc\clbrdrt\brdrtbl 
+\clbrdrl\brdrtbl \clbrdrb\brdrtbl \clbrdrr\brdrtbl \cltxlrtb\clftsWidth1\clshdrawnil \cellx9756\pard \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid2562411 {\insrsid6900756 \cell }\pard 
+\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\fs20\insrsid6900756 \trowd \irow0\irowband0\lastrow 
+\ts11\trgaph15\trleft-15\trftsWidth1\trftsWidthB3\trftsWidthA3\trautofit1\trspdfl3\trspdft3\trspdfb3\trspdfr3\trpaddl15\trpaddt15\trpaddb15\trpaddr15\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalc\clbrdrt\brdrtbl \clbrdrl\brdrtbl \clbrdrb\brdrtbl 
+\clbrdrr\brdrtbl \cltxlrtb\clftsWidth1\clshdrawnil \cellx9756\row }\pard\plain \s4\ql \li0\ri0\sb120\keepn\widctlpar\brdrt\brdrs\brdrw15\brsp20 \tqr\tx9072\aspalpha\aspnum\faauto\outlinelevel3\adjustright\rin0\lin0\rtlgutter\itap0\pararsid2562411 
+\b\f1\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 The Bootstrap binary
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 
+The Bootstrap binary image is copied directly into the start of the ROM. It must, therefore, contain a "hole" at offsets 0x80 to 0xFF for the data members of the TRomHeader object. The first 4 bytes of the binary image typically contain a branch instructi
+on which jumps to the code at offset 0x100. The Bootstrap is responsible for detecting the extension ROM, if present, and for passing the appropriate TRomRootDirectoryList address to the Kernel. For the MISA ASSP, the bootstrap binary is \\Epoc32\\Release
+\\MISA\\UREL\\bootromba.bin
+\par }\pard\plain \s4\ql \li0\ri0\sb120\keepn\widctlpar\brdrt\brdrs\brdrw15\brsp20 \tqr\tx9072\aspalpha\aspnum\faauto\outlinelevel3\adjustright\rin0\lin0\rtlgutter\itap0\pararsid2562411 \b\f1\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid6900756 TRomRootDirectoryList
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 
+This structure allows you to find the root directories for each hardware Variant supported by the ROM. Usually, there is only one variant and one root directory, so this table normally has just three entries.
+\par Some
+times, however, a ROM has multiple root directories and directory trees, one for each hardware Variant supported by the ROM. This automatically ensures that the file server only sees the files that are relevant to the hardware on which it is running. In t
+his case, there are multiple entries in the table describing each root directory.
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756\charrsid9400752 Offset (hex)
+\nestcell{\nonesttables
+\par }Description of field\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow0\irowband0\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw30\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1398\clvertalt\clbrdrt\brdrs\brdrw30\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx5839\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 00\nestcell{\nonesttables
+\par }Number of root directories.\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow1\irowband1\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1398\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx5839\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 04\nestcell{\nonesttables
+\par }Hardware Variant for first root directory.\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow2\irowband2\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1398\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx5839\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 08\nestcell{\nonesttables
+\par }Address of first root directory.\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow3\irowband3\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1398\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx5839\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 0C\nestcell{\nonesttables
+\par }Hardware Variant for second root directory.\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow4\irowband4\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1398\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx5839\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 10\nestcell{\nonesttables
+\par }Address of second root directory.\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow5\irowband5\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1398\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx5839\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 \'85\nestcell{\nonesttables
+\par }\'85\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow6\irowband6\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1398\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx5839\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 nn\nestcell{\nonesttables
+\par }Hardware Variant for last root directory.\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow7\irowband7\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1398\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx5839\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 nn+4\nestcell{\nonesttables
+\par }Address of last root directory.\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow8\irowband8\lastrow \ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw30\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1398\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw30\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx5839\nestrow}{\nonesttables
+\par }}\trowd \irow0\irowband0\lastrow \ts11\trgaph15\trleft-15\trftsWidth1\trftsWidthB3\trftsWidthA3\trautofit1\trspdfl3\trspdft3\trspdfb3\trspdfr3\trpaddl15\trpaddt15\trpaddb15\trpaddr15\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalc\clbrdrt\brdrtbl 
+\clbrdrl\brdrtbl \clbrdrb\brdrtbl \clbrdrr\brdrtbl \cltxlrtb\clftsWidth1\clshdrawnil \cellx5869\pard \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid2562411 {\insrsid6900756 \cell }\pard 
+\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\fs20\insrsid6900756 \trowd \irow0\irowband0\lastrow 
+\ts11\trgaph15\trleft-15\trftsWidth1\trftsWidthB3\trftsWidthA3\trautofit1\trspdfl3\trspdft3\trspdfb3\trspdfr3\trpaddl15\trpaddt15\trpaddb15\trpaddr15\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalc\clbrdrt\brdrtbl \clbrdrl\brdrtbl \clbrdrb\brdrtbl 
+\clbrdrr\brdrtbl \cltxlrtb\clftsWidth1\clshdrawnil \cellx5869\row }\pard\plain \s4\ql \li0\ri0\sb120\keepn\widctlpar\brdrt\brdrs\brdrw15\brsp20 \tqr\tx9072\aspalpha\aspnum\faauto\outlinelevel3\adjustright\rin0\lin0\rtlgutter\itap0\pararsid2562411 
+\b\f1\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 The directory structure
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 
+Every directory is described by a TRomDir, including the root directories. Each directory is described twice; first by a sequence of variable length entries in the order that the directory members were mentioned in the obey file, and then as a pair of sor
+ted tables suitable for binary search.
+\par }\pard\plain \s4\ql \li0\ri0\sb120\keepn\widctlpar\brdrt\brdrs\brdrw15\brsp20 \tqr\tx9072\aspalpha\aspnum\faauto\outlinelevel3\adjustright\rin0\lin0\rtlgutter\itap0\pararsid2562411 \b\f1\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid6900756 {\*\bkmkstart BM1_9_4}{\*\bkmkend BM1_9_4}TRomDir
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 Offset (hex)\nestcell{\nonesttables
+\par }Description of field\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow0\irowband0\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw30\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1649\clvertalt\clbrdrt\brdrs\brdrw30\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx8837\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 00\nestcell{\nonesttables
+\par }Number of bytes (N) occupied by the subsequent TRomEntry structures.\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow1\irowband1\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1649\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx8837\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 04\nestcell{\nonesttables
+\par }TRomEntry structure for file or directory 0.\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow2\irowband2\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1649\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx8837\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 ...\nestcell{\nonesttables
+\par }TRomEntry structure for file or directory 1.\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow3\irowband3\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1649\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx8837\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 ...\nestcell{\nonesttables
+\par }Etc. for each entry in the directory.\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow4\irowband4\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1649\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx8837\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 N+04 \nestcell{\nonesttables
+\par }Number of directory entries (D).\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow5\irowband5\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1649\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx8837\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 N+06 \nestcell{\nonesttables
+\par }Number of files (F).\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow6\irowband6\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1649\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx8837\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 N+08 \nestcell{\nonesttables
+\par }Table of 16-bit scaled offsets to the directory entries.\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow7\irowband7\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1649\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx8837\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 (N+08+(2*D)) \nestcell{\nonesttables
+\par }Table of 16-bit scaled offsets to the file entries.\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow8\irowband8\lastrow \ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw30\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1649\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw30\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx8837\nestrow}{\nonesttables
+\par }}\trowd \irow0\irowband0\lastrow \ts11\trgaph15\trleft-15\trftsWidth1\trautofit1\trspdfl3\trspdft3\trspdfb3\trspdfr3\trpaddl15\trpaddt15\trpaddb15\trpaddr15\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalc\clbrdrt\brdrtbl \clbrdrl\brdrtbl \clbrdrb
+\brdrtbl \clbrdrr\brdrtbl \cltxlrtb\clftsWidth1\clshdrawnil \cellx8867\pard \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid2562411 {\insrsid6900756 \cell }\pard 
+\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\fs20\insrsid6900756 \trowd \irow0\irowband0\lastrow 
+\ts11\trgaph15\trleft-15\trftsWidth1\trautofit1\trspdfl3\trspdft3\trspdfb3\trspdfr3\trpaddl15\trpaddt15\trpaddb15\trpaddr15\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalc\clbrdrt\brdrtbl \clbrdrl\brdrtbl \clbrdrb\brdrtbl \clbrdrr\brdrtbl 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx8867\row }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 
+The sorted tables contain unsigned 16-bit scaled offsets, which point to the start of the corresponding TRomEntry.
+\par If the offset value is X then the corresponding TRomEntry is at address (4*X + (char*)(address of first entry)). For example, the first entry is at offset zero. The entries are sorted in order of the UTF-8 representation of the filenames in a case insensi
+tive way (cf the 'C' function stricmp()). In effect, this folds upper and lowercase ASCII characters but leaves all other Unicode characters unchanged.
+\par Each of the files or subdirectories within the TRomDir is described with a TRomEntry structure. The latter are always 4 byte aligned, and may include padding, if the length of the name doesn't cause the structure to be a multiple of 4 bytes in length.
+
+\par }\pard\plain \s5\ql \li0\ri0\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel4\adjustright\rin0\lin0\itap0\pararsid2562411 \b\f1\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 {\*\bkmkstart BM1_9_5}{\*\bkmkend BM1_9_5}TRomEntry
+
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756\charrsid6900756 Offset (hex)
+\nestcell{\nonesttables
+\par }Description of field\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow0\irowband0\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw30\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1398\clvertalt\clbrdrt\brdrs\brdrw30\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx9452\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 00\nestcell{\nonesttables
+\par }Size of file.\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow1\irowband1\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1398\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx9452\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 04\nestcell{\nonesttables
+\par }Virtual address of file, or of a TRomDir structure if the entry is another directory.\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow2\irowband2\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1398\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx9452\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 08\nestcell{\nonesttables
+\par }Attributes byte.\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow3\irowband3\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1398\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx9452\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 09\nestcell{\nonesttables
+\par }Length of name.\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow4\irowband4\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1398\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx9452\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 0A\nestcell{\nonesttables
+\par }Name.\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow5\irowband5\lastrow \ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw30\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1398\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw30\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx9452\nestrow}{\nonesttables
+\par }}\trowd \irow0\irowband0\lastrow \ts11\trgaph15\trleft-15\trftsWidth1\trautofit1\trspdfl3\trspdft3\trspdfb3\trspdfr3\trpaddl15\trpaddt15\trpaddb15\trpaddr15\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalc\clbrdrt\brdrtbl \clbrdrl\brdrtbl \clbrdrb
+\brdrtbl \clbrdrr\brdrtbl \cltxlrtb\clftsWidth1\clshdrawnil \cellx9482\pard \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid2562411 {\insrsid6900756 \cell }\pard 
+\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\fs20\insrsid6900756 \trowd \irow0\irowband0\lastrow 
+\ts11\trgaph15\trleft-15\trftsWidth1\trautofit1\trspdfl3\trspdft3\trspdfb3\trspdfr3\trpaddl15\trpaddt15\trpaddb15\trpaddr15\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalc\clbrdrt\brdrtbl \clbrdrl\brdrtbl \clbrdrb\brdrtbl \clbrdrr\brdrtbl 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx9482\row }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 
+If the TRomEntry describes a file, then the field at offset 4 points at that file. If it describes a sub-directory, then it points to another TRomDir structure.
+\par }\pard\plain \s4\ql \li0\ri0\sb120\keepn\widctlpar\brdrt\brdrs\brdrw15\brsp20 \tqr\tx9072\aspalpha\aspnum\faauto\outlinelevel3\adjustright\rin0\lin0\rtlgutter\itap0\pararsid2562411 \b\f1\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid6900756 {\*\bkmkstart Tools_2dguide_2erom_2dimage_2eformat_2ek}{\*\bkmkend Tools_2dguide_2erom_2dimage_2eformat_2ek}The file images
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 
+The structure of the file images is based on the native image file format, but this can be compressed in the ROM image, as the relocation information and the .idata section can be discarded once the file is fixed up.
+\par A further optimisation is that the Import Address Table (IAT) is removed and each reference to an IAT entry is converted into a reference to the associated Export Directory entry in the corresponding DLL.
+\par ROM files have the following sections:
+\par TromImageHeader - the ROM file header
+\par .text - code
+\par .rdata - constant (read-only) data
+\par .edata - the export directory
+\par .data - initialised data that is copied to RAM when the executable runs
+\par TDllRefTable - DLL reference table, a list of the libraries used by this executable.
+\par }\pard\plain \s4\ql \li0\ri0\sb120\keepn\widctlpar\brdrt\brdrs\brdrw15\brsp20 \tqr\tx9072\aspalpha\aspnum\faauto\outlinelevel3\adjustright\rin0\lin0\rtlgutter\itap0\pararsid2562411 \b\f1\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid6900756 {\*\bkmkstart BM1_10_7}{\*\bkmkend BM1_10_7}TRomImageHeader 
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756\charrsid6900756 Offset (hex)
+\nestcell{\nonesttables
+\par }Description of field\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow0\irowband0\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw30\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1106\clvertalt\clbrdrt\brdrs\brdrw30\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx9726\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 00\nestcell{\nonesttables
+\par }UID 1.\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow1\irowband1\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1106\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx9726\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 04\nestcell{\nonesttables
+\par }UID 2.\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow2\irowband2\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1106\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx9726\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 08\nestcell{\nonesttables
+\par }UID 3.\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow3\irowband3\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1106\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx9726\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 0C\nestcell{\nonesttables
+\par }Checksum of UIDs.\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow4\irowband4\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1106\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx9726\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 10\nestcell{\nonesttables
+\par }Entrypoint of this executable (offset within this file).\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow5\irowband5\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1106\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx9726\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 14\nestcell{\nonesttables
+\par }Target code address for this executable.\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow6\irowband6\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1106\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx9726\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 18\nestcell{\nonesttables
+\par }Target data address for this executable.\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow7\irowband7\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1106\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx9726\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 1C\nestcell{\nonesttables
+\par }Code size (includes constant data).\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow8\irowband8\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1106\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx9726\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 20\nestcell{\nonesttables
+\par }Text size (code size - size of constant data).\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow9\irowband9\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1106\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx9726\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 24\nestcell{\nonesttables
+\par }Data size\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow10\irowband10\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1106\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx9726\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 28\nestcell{\nonesttables
+\par }BSS (Zero-filled data) size.\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow11\irowband11\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1106\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx9726\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 2C\nestcell{\nonesttables
+\par }Heap minimum size.\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow12\irowband12\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1106\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx9726\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 30\nestcell{\nonesttables
+\par }Heap maximum size.\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow13\irowband13\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1106\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx9726\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 34\nestcell{\nonesttables
+\par }Stack size.\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow14\irowband14\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1106\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx9726\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 38\nestcell{\nonesttables
+\par }Address of DLL reference table (a list of the DLLs which this executable needs to run). This is a TDllRefTable structure.\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow15\irowband15\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1106\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx9726\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 3C\nestcell{\nonesttables
+\par }Number of functions exported by this executable.\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow16\irowband16\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1106\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx9726\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 40\nestcell{\nonesttables
+\par }Export directory address. The export directory is a simple list of functions, which can be indexed by ordinal.\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow17\irowband17\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1106\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx9726\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 44\nestcell{\nonesttables
+\par }}{\insrsid8082533 Security information}{\insrsid6900756 .\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow18\irowband18\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1106\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx9726\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid8082533 50}{\insrsid6900756 \nestcell{\nonesttables
+\par }}{\insrsid14632474 Tools v}{\insrsid6900756 ersion.\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow19\irowband19\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1106\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx9726\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid8082533 54}{\insrsid6900756 \nestcell{\nonesttables
+\par }Flags.\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow20\irowband20\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1106\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx9726\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid8082533 58}{\insrsid6900756 \nestcell{\nonesttables
+\par }Priority of this process.\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow21\irowband21\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1106\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx9726\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid8082533 5C}{\insrsid6900756 \nestcell{\nonesttables
+\par }Data and BSS linear base address, where this process expects its data chunk to be when it runs.\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow22\irowband22\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1106\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx9726\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid8082533 60}{\insrsid6900756 \nestcell{\nonesttables
+\par }Address of the TRomEntry for the next extension file. This field is only used if there is more than one extension. The first extension is found using the TRomHeader.\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow23\irowband23\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1106\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx9726\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid8082533 64}{\insrsid6900756 \nestcell{\nonesttables
+\par }A number denoting the hardware Variant, used to determine if this executable can run on any particular system.\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow24\irowband24\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1106\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx9726\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14632474 6}{\insrsid8082533 8}{\insrsid14632474 
+\nestcell{\nonesttables
+\par }Total data size including space reserved for DLLs\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid14632474 {\*\nesttableprops\trowd \irow25\irowband25\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1106\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx9726\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid14632474 6}{\insrsid8082533 C}{\insrsid14632474 
+\nestcell{\nonesttables
+\par }Module version\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid14632474 {\*\nesttableprops\trowd \irow26\irowband26\lastrow \ts114\trgaph75\trleft15
+\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw30\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1106\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw30\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx9726\nestrow}{\nonesttables
+\par }}\trowd \irow0\irowband0\lastrow \ts11\trgaph15\trleft-15\trftsWidth1\trautofit1\trspdfl3\trspdft3\trspdfb3\trspdfr3\trpaddl15\trpaddt15\trpaddb15\trpaddr15\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalc\clbrdrt\brdrtbl \clbrdrl\brdrtbl \clbrdrb
+\brdrtbl \clbrdrr\brdrtbl \cltxlrtb\clftsWidth1\clshdrawnil \cellx9756\pard \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid2562411 {\insrsid6900756 \cell }\pard 
+\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\fs20\insrsid6900756 \trowd \irow0\irowband0\lastrow 
+\ts11\trgaph15\trleft-15\trftsWidth1\trautofit1\trspdfl3\trspdft3\trspdfb3\trspdfr3\trpaddl15\trpaddt15\trpaddb15\trpaddr15\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalc\clbrdrt\brdrtbl \clbrdrl\brdrtbl \clbrdrb\brdrtbl \clbrdrr\brdrtbl 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx9756\row }\pard\plain \s5\ql \li0\ri0\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel4\adjustright\rin0\lin0\itap0\pararsid2562411 \b\f1\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 
+{\*\bkmkstart BM1_10_8}{\*\bkmkend BM1_10_8}The export }{\insrsid6900756\charrsid11823531 directory}{\insrsid6900756 
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 
+The .edata section is a table supplying the fixed up address of each exported function or data item. The table is }{\cs17\i\insrsid6900756 not}{\insrsid6900756 
+ null terminated as the number of entries in the table is available from offset 0x3c in the executable's TRomImageHeader.
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756\charrsid6900756 Offset\nestcell{\nonesttables
+\par }Description\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow0\irowband0\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw30\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx831\clvertalt\clbrdrt\brdrs\brdrw30\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx6659\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 00\nestcell{\nonesttables
+\par }Address of first function exported from this executable.\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow1\irowband1\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx831\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx6659\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 04\nestcell{\nonesttables
+\par }Address of second function exported from this executable.\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow2\irowband2\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx831\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx6659\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 \'85\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid2562411\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 \nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow3\irowband3\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx831\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx6659\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid8082533 N}{\insrsid6900756 n\nestcell{\nonesttables
+\par }Address of last function exported from this executable.\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow4\irowband4\lastrow \ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw30\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx831\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw30\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx6659\nestrow}{\nonesttables
+\par }}\trowd \irow0\irowband0\lastrow \ts11\trgaph15\trleft-15\trftsWidth1\trautofit1\trspdfl3\trspdft3\trspdfb3\trspdfr3\trpaddl15\trpaddt15\trpaddb15\trpaddr15\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalc\clbrdrt\brdrtbl \clbrdrl\brdrtbl \clbrdrb
+\brdrtbl \clbrdrr\brdrtbl \cltxlrtb\clftsWidth1\clshdrawnil \cellx6689\pard \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid2562411 {\insrsid6900756 \cell }\pard 
+\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\fs20\insrsid6900756 \trowd \irow0\irowband0\lastrow 
+\ts11\trgaph15\trleft-15\trftsWidth1\trautofit1\trspdfl3\trspdft3\trspdfb3\trspdfr3\trpaddl15\trpaddt15\trpaddb15\trpaddr15\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalc\clbrdrt\brdrtbl \clbrdrl\brdrtbl \clbrdrb\brdrtbl \clbrdrr\brdrtbl 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx6689\row }\pard\plain \s5\ql \li0\ri0\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel4\adjustright\rin0\lin0\itap0\pararsid2562411 \b\f1\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 
+{\*\bkmkstart BM1_10_9}{\*\bkmkend BM1_10_9}TDllRefTable
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 
+The TDllRefTable of an executable lists the DLLs that this executable needs in order to run. For each such DLL referenced, it }{\insrsid8082533 has a pointer to a TRomImageHeader that describes the referenced DLL.}{\insrsid6900756 
+ This latter allows programs such as the DLL loader to search a dependency chain, and load all the required DLLs.
+\par For example, if DLL A uses DLL B which uses DLL C, then recursing through the TDllRefTables of those DLLs, allows the loader to find DLL C.
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756\charrsid11823531 Offset (hex)
+\nestcell{\nonesttables
+\par }Description of field\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow0\irowband0\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trftsWidthA3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw30\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1398\clvertalt\clbrdrt\brdrs\brdrw30\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx6966\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 00\nestcell{\nonesttables
+\par }Flags.\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow1\irowband1\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trftsWidthA3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1398\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx6966\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6900756 02\nestcell{\nonesttables
+\par }Number of entries in table.\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow2\irowband2\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trftsWidthA3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1398\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx6966\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid8082533 04}{\insrsid6900756 \nestcell{\nonesttables
+\par }}{\insrsid8082533 Pointer to}{\insrsid6900756  }{\insrsid8082533 TRomImageHeader for}{\insrsid6900756  first DLL referenced.\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid6900756 {\*\nesttableprops\trowd \irow3\irowband3\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trftsWidthA3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1398\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx6966\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid8082533 \'85\nestcell{\nonesttables
+\par }\'85\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid8082533 {\*\nesttableprops\trowd \irow4\irowband4\ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trftsWidthA3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1398\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx6966\nestrow}{\nonesttables
+\par }}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid9575677 N}{\insrsid8082533 n+4\nestcell{\nonesttables
+\par }Pointer to TRomImageHeader for last DLL referenced.\nestcell{\nonesttables
+\par }}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap2 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\fs20\insrsid8082533 {\*\nesttableprops\trowd \irow5\irowband5\lastrow \ts114\trgaph75\trleft15\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trftsWidthA3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx1398\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth1\clshdrawnil \cellx6966\nestrow}{\nonesttables
+\par }}\trowd \irow0\irowband0\lastrow \ts11\trgaph15\trleft-15\trftsWidth1\trautofit1\trspdfl3\trspdft3\trspdfb3\trspdfr3\trpaddl15\trpaddt15\trpaddb15\trpaddr15\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalc\clbrdrt\brdrtbl \clbrdrl\brdrtbl \clbrdrb
+\brdrtbl \clbrdrr\brdrtbl \cltxlrtb\clftsWidth1\clshdrawnil \cellx6996\pard \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid2562411 {\insrsid6900756 \cell }\pard 
+\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\fs20\insrsid6900756 \trowd \irow0\irowband0\lastrow 
+\ts11\trgaph15\trleft-15\trftsWidth1\trautofit1\trspdfl3\trspdft3\trspdfb3\trspdfr3\trpaddl15\trpaddt15\trpaddb15\trpaddr15\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalc\clbrdrt\brdrtbl \clbrdrl\brdrtbl \clbrdrb\brdrtbl \clbrdrr\brdrtbl 
+\cltxlrtb\clftsWidth1\clshdrawnil \cellx6996\row }\pard\plain \s3\ql \li0\ri0\sb120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \tqr\tx9072\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\rtlgutter\itap0\pararsid2562411 
+\b\f1\fs28\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 Format of extension ROMs
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 
+An extension ROM is an optional ROM which extends a kernel ROM and pr
+esents a filesystem which describes the combined ROM image. The underlying kernel ROM is self-sufficient and has no references to any extension ROM, and different extension ROMs can be built which extend the same kernel ROM.
+\par The format of an extension ROM is similar to that of a kernel ROM: 
+\par }\trowd \irow0\irowband0\ts114\trgaph108\trleft-108\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw30\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth3\clwWidth2808\clshdrawnil \cellx2700\clvertalt\clbrdrt\brdrs\brdrw30\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth6480\clshdrawnil \cellx9180
+\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 Section\cell Description\cell }\pard\plain 
+\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 \trowd \irow0\irowband0\ts114\trgaph108\trleft-108\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl
+\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 \trftsWidth1\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt
+\brdrs\brdrw30\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth2808\clshdrawnil \cellx2700\clvertalt\clbrdrt\brdrs\brdrw30\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb
+\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth6480\clshdrawnil \cellx9180\row }\trowd \irow1\irowband1\ts114\trgaph108\trleft-108\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb
+\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 \trftsWidth1\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl
+\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth2808\clshdrawnil \cellx2700\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr
+\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth6480\clshdrawnil \cellx9180\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362\yts114 
+\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\cs109\f2\fs20\insrsid15948434\charrsid14972466 TExtensionRomHeader\cell }{\insrsid15948434 The ROM header which remains in the ROM image, and which contains \'93fingerprint\'94
+ information to identify the associated kernel ROM.\cell }\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 \trowd \irow1\irowband1
+\ts114\trgaph108\trleft-108\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth3\clwWidth2808\clshdrawnil \cellx2700\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth6480\clshdrawnil \cellx9180\row 
+}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\cs109\f2\fs20\insrsid15948434\charrsid14972466 TRomRootDirectoryList\cell }{
+\insrsid15948434 A list of all the root directories, one for each variant supported by the combined kernel+extenstion ROM image. \cell }\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 
+\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 \trowd \irow2\irowband2\ts114\trgaph108\trleft-108\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 
+\trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 \trftsWidth1\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 
+\clbrdrr\brdrs\brdrw15\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth2808\clshdrawnil \cellx2700\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 
+\cltxlrtb\clftsWidth3\clwWidth6480\clshdrawnil \cellx9180\row }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\cs109\f2\fs20\insrsid15948434\charrsid14972466 The directory structure\cell }{\insrsid15948434 The full directory structure for the combined image.\cell }\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 
+\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 \trowd \irow3\irowband3\ts114\trgaph108\trleft-108\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 
+\trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 \trftsWidth1\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 
+\clbrdrr\brdrs\brdrw15\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth2808\clshdrawnil \cellx2700\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 
+\cltxlrtb\clftsWidth3\clwWidth6480\clshdrawnil \cellx9180\row }\trowd \irow4\irowband4\lastrow \ts114\trgaph108\trleft-108\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh
+\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 \trftsWidth1\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw30\brdrcf1 \clbrdrr
+\brdrs\brdrw15\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth2808\clshdrawnil \cellx2700\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw30\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 
+\cltxlrtb\clftsWidth3\clwWidth6480\clshdrawnil \cellx9180\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\cs109\f2\fs20\insrsid15948434\charrsid14972466 Files\cell }{\insrsid15948434 The additional executables and data in the extension ROM.\cell }\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 
+\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 \trowd \irow4\irowband4\lastrow \ts114\trgaph108\trleft-108\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr
+\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 \trftsWidth1\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb
+\brdrs\brdrw30\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth2808\clshdrawnil \cellx2700\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw30\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 
+\cltxlrtb\clftsWidth3\clwWidth6480\clshdrawnil \cellx9180\row }\pard\plain \s4\ql \li0\ri0\sb120\keepn\widctlpar\brdrt\brdrs\brdrw15\brsp20 \tqr\tx9072\aspalpha\aspnum\faauto\outlinelevel3\adjustright\rin0\lin0\rtlgutter\itap0\pararsid2562411 
+\b\f1\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 TExtensionRomHeader
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 This data is created by }{
+\cs109\f2\fs20\insrsid15948434\charrsid14972466 rombuild}{\insrsid15948434 , for later use by the bootstrap program and the kernel.
+\par }\trowd \irow0\irowband0\ts114\trgaph102\trleft-108\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw30\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth3\clwWidth2719\clshdrawnil \cellx2611\clvertalt\clbrdrt\brdrs\brdrw30\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth6480\clshdrawnil \cellx9091
+\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 Offset (hex)\cell Description of field\cell }\pard\plain 
+\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 \trowd \irow0\irowband0\ts114\trgaph102\trleft-108\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl
+\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 \trftsWidth1\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt
+\brdrs\brdrw30\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth2719\clshdrawnil \cellx2611\clvertalt\clbrdrt\brdrs\brdrw30\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb
+\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth6480\clshdrawnil \cellx9091\row }\trowd \irow1\irowband1\ts114\trgaph102\trleft-108\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb
+\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 \trftsWidth1\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl
+\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth2719\clshdrawnil \cellx2611\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr
+\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth6480\clshdrawnil \cellx9091\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362\yts114 
+\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 00\cell Extension ROM image major version\cell }\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 
+\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 \trowd \irow1\irowband1\ts114\trgaph102\trleft-108\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 
+\trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 \trftsWidth1\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 
+\clbrdrr\brdrs\brdrw15\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth2719\clshdrawnil \cellx2611\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 
+\cltxlrtb\clftsWidth3\clwWidth6480\clshdrawnil \cellx9091\row }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid15948434 01\cell Extension ROM image minor version\cell }\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 \trowd \irow2\irowband2
+\ts114\trgaph102\trleft-108\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth3\clwWidth2719\clshdrawnil \cellx2611\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth6480\clshdrawnil \cellx9091\row 
+}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 02\cell Extension ROM image build number\cell }\pard\plain 
+\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 \trowd \irow3\irowband3\ts114\trgaph102\trleft-108\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl
+\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 \trftsWidth1\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt
+\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth2719\clshdrawnil \cellx2611\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb
+\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth6480\clshdrawnil \cellx9091\row }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362\yts114 
+\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid3949151 04}{\insrsid15948434 \cell Extension ROM linear base address\cell }\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 
+\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 \trowd \irow4\irowband4\ts114\trgaph102\trleft-108\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 
+\trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 \trftsWidth1\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 
+\clbrdrr\brdrs\brdrw15\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth2719\clshdrawnil \cellx2611\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 
+\cltxlrtb\clftsWidth3\clwWidth6480\clshdrawnil \cellx9091\row }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid3949151 08}{\insrsid15948434 \cell Extension ROM image size in bytes\cell }\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 
+\trowd \irow5\irowband5\ts114\trgaph102\trleft-108\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth3\clwWidth2719\clshdrawnil \cellx2611\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth6480\clshdrawnil \cellx9091\row 
+}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid3949151 0C}{\insrsid15948434 \cell 
+Linear address of TRomRootDirList structure for the combined kernel+extension ROM image\cell }\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 
+\trowd \irow6\irowband6\ts114\trgaph102\trleft-108\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth3\clwWidth2719\clshdrawnil \cellx2611\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth6480\clshdrawnil \cellx9091\row 
+}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid3949151 10\cell Extension ROM image build datetime\cell }\pard\plain 
+\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid3949151 \trowd \irow7\irowband7\ts114\trgaph102\trleft-108\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl
+\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 \trftsWidth1\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt
+\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth2719\clshdrawnil \cellx2611\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb
+\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth6480\clshdrawnil \cellx9091\row }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362\yts114 
+\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid3949151 18\cell Checksum\cell }\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid3949151 
+\trowd \irow8\irowband8\ts114\trgaph102\trleft-108\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth3\clwWidth2719\clshdrawnil \cellx2611\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth6480\clshdrawnil \cellx9091\row 
+}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid3949151 1C\cell Copy of Kernel ROM image major version\cell 
+}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid3949151 \trowd \irow9\irowband9\ts114\trgaph102\trleft-108\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl
+\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 \trftsWidth1\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt
+\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth2719\clshdrawnil \cellx2611\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb
+\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth6480\clshdrawnil \cellx9091\row }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362\yts114 
+\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid3949151 1D\cell Copy of Kernel ROM image minor version\cell }\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 
+\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid3949151 \trowd \irow10\irowband10\ts114\trgaph102\trleft-108\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 
+\trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 \trftsWidth1\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 
+\clbrdrr\brdrs\brdrw15\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth2719\clshdrawnil \cellx2611\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 
+\cltxlrtb\clftsWidth3\clwWidth6480\clshdrawnil \cellx9091\row }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid3949151 1E\cell Copy of Kernel ROM image build number\cell }\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid3949151 \trowd \irow11\irowband11
+\ts114\trgaph102\trleft-108\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth3\clwWidth2719\clshdrawnil \cellx2611\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth6480\clshdrawnil \cellx9091\row 
+}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid3949151 20\cell Copy of Kernel ROM image build datetime\cell 
+}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid3949151 \trowd \irow12\irowband12\ts114\trgaph102\trleft-108\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl
+\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 \trftsWidth1\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt
+\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth2719\clshdrawnil \cellx2611\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb
+\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth6480\clshdrawnil \cellx9091\row }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362\yts114 
+\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid3949151 28\cell Copy of Kernel.ROM image checksum constant.\cell }\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 
+\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid3949151 \trowd \irow13\irowband13\ts114\trgaph102\trleft-108\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 
+\trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 \trftsWidth1\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 
+\clbrdrr\brdrs\brdrw15\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth2719\clshdrawnil \cellx2611\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 
+\cltxlrtb\clftsWidth3\clwWidth6480\clshdrawnil \cellx9091\row }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid3949151 2C\cell Compression type\cell }\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid3949151 \trowd \irow14\irowband14
+\ts114\trgaph102\trleft-108\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth3\clwWidth2719\clshdrawnil \cellx2611\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth6480\clshdrawnil \cellx9091\row 
+}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid3949151 30\cell }{\insrsid6424832 Size}{\insrsid3949151 
+ when compressed\cell }\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid3949151 \trowd \irow15\irowband15\ts114\trgaph102\trleft-108\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth3\clwWidth2719\clshdrawnil \cellx2611\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth6480\clshdrawnil \cellx9091\row 
+}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6424832 34}{\insrsid3949151 \cell }{\insrsid6424832 
+Size when not compressed}{\insrsid3949151 \cell }\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid3949151 \trowd \irow16\irowband16
+\ts114\trgaph102\trleft-108\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth3\clwWidth2719\clshdrawnil \cellx2611\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth6480\clshdrawnil \cellx9091\row 
+}\trowd \irow17\irowband17\lastrow \ts114\trgaph102\trleft-108\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw30\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth3\clwWidth2719\clshdrawnil \cellx2611\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw30\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth6480\clshdrawnil \cellx9091
+\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6424832 3}{\insrsid3949151 8 - 7F\cell Filler\cell }\pard\plain 
+\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid3949151 \trowd \irow17\irowband17\lastrow \ts114\trgaph102\trleft-108\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl
+\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 \trftsWidth1\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt
+\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw30\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth2719\clshdrawnil \cellx2611\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb
+\brdrs\brdrw30\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth6480\clshdrawnil \cellx9091\row }\pard\plain \s3\ql \li0\ri0\sb120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 
+\tqr\tx9072\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\rtlgutter\itap0\pararsid2562411 \b\f1\fs28\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 Format of sectioned ROMs
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 
+Kernel Roms can be sectioned into two parts allowing the upper part of the ROM to be switched for language variations and file patching.
+\par If the line }{\cs109\f2\fs20\insrsid15948434\charrsid14972466 section 0x200000}{\insrsid15948434  keyword appears in the obey file, then the ROM will be in 2 sections \endash 
+ the lower section will be identical to that in the original ROM, and the higher (second) section will contain all the files listed in the obey file after the }{\b\insrsid15948434 section}{\insrsid15948434  keyword. 
+\par The format of sectioned ROMs is given in overview below.
+\par }\trowd \irow0\irowband0\ts114\trgaph100\trleft-108\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw30\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth3\clwWidth2890\clshdrawnil \cellx2782\clvertalt\clbrdrt\brdrs\brdrw30\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth5749\clshdrawnil \cellx8531
+\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 Section\cell Description\cell }\pard\plain 
+\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 \trowd \irow0\irowband0\ts114\trgaph100\trleft-108\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl
+\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 \trftsWidth1\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt
+\brdrs\brdrw30\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth2890\clshdrawnil \cellx2782\clvertalt\clbrdrt\brdrs\brdrw30\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb
+\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth5749\clshdrawnil \cellx8531\row }\trowd \irow1\irowband1\ts114\trgaph100\trleft-108\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb
+\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 \trftsWidth1\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl
+\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth2890\clshdrawnil \cellx2782\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr
+\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth5749\clshdrawnil \cellx8531\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362\yts114 
+\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\cs109\f2\fs20\insrsid15948434\charrsid14972466 TRomLoaderHeader\cell }{\insrsid15948434 Also known as the wrapper, this is discarded in the final ROM image which is blown.\cell }\pard\plain 
+\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 \trowd \irow1\irowband1\ts114\trgaph100\trleft-108\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl
+\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 \trftsWidth1\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt
+\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth2890\clshdrawnil \cellx2782\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb
+\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth5749\clshdrawnil \cellx8531\row }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362\yts114 
+\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\cs109\f2\fs20\insrsid15948434\charrsid14972466 TRomHeader\cell }{\insrsid15948434 The ROM header which remains on the ROM.\cell }\pard\plain 
+\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 \trowd \irow2\irowband2\ts114\trgaph100\trleft-108\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl
+\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 \trftsWidth1\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt
+\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth2890\clshdrawnil \cellx2782\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb
+\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth5749\clshdrawnil \cellx8531\row }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362\yts114 
+\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\cs109\f2\fs20\insrsid15948434\charrsid14972466 BOOTROM.BIN\cell }{\insrsid15948434 The bootstrap binary image (which logically encloses the TRomHeader)\cell }\pard\plain 
+\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 \trowd \irow3\irowband3\ts114\trgaph100\trleft-108\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl
+\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 \trftsWidth1\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt
+\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth2890\clshdrawnil \cellx2782\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb
+\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth5749\clshdrawnil \cellx8531\row }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362\yts114 
+\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\cs109\f2\fs20\insrsid15948434\charrsid14972466 Files 1\cell }{\insrsid15948434 The executables and data which go to make up the ROM image \endash  those which appear before the section keyword.
+\cell }\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 \trowd \irow4\irowband4\ts114\trgaph100\trleft-108\trbrdrt\brdrs\brdrw30\brdrcf1 
+\trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 \trftsWidth1\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt
+\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth2890\clshdrawnil \cellx2782\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 
+\clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth5749\clshdrawnil \cellx8531\row }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362\yts114 
+\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\cs109\f2\fs20\insrsid15948434\charrsid14972466 TRomSectionHeader\cell }{\insrsid15948434 Appearing at the section address specified in the obey file\cell }\pard\plain 
+\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 \trowd \irow5\irowband5\ts114\trgaph100\trleft-108\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl
+\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 \trftsWidth1\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt
+\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth2890\clshdrawnil \cellx2782\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb
+\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth5749\clshdrawnil \cellx8531\row }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362\yts114 
+\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\cs109\f2\fs20\insrsid15948434\charrsid14972466 EDATA and DllRefTables \cell }{\insrsid15948434 For files in the low section (Files 1)\cell }\pard\plain 
+\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 \trowd \irow6\irowband6\ts114\trgaph100\trleft-108\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl
+\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 \trftsWidth1\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt
+\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth2890\clshdrawnil \cellx2782\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb
+\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth5749\clshdrawnil \cellx8531\row }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362\yts114 
+\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\cs109\f2\fs20\insrsid15948434\charrsid14972466 TRomRootDirectoryList\cell }{\insrsid15948434 
+A list of all the root directories for each variant supported by this ROM. Usually, there is only one root directory and one variant.\cell }\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 
+\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 \trowd \irow7\irowband7\ts114\trgaph100\trleft-108\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 
+\trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 \trftsWidth1\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 
+\clbrdrr\brdrs\brdrw15\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth2890\clshdrawnil \cellx2782\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 
+\cltxlrtb\clftsWidth3\clwWidth5749\clshdrawnil \cellx8531\row }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\cs109\f2\fs20\insrsid15948434\charrsid14972466 The directory structure\cell }{\insrsid15948434 The overhead supporting a full directory structure on the ROM.\cell }\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 
+\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 \trowd \irow8\irowband8\ts114\trgaph100\trleft-108\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 
+\trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 \trftsWidth1\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 
+\clbrdrr\brdrs\brdrw15\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth2890\clshdrawnil \cellx2782\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 
+\cltxlrtb\clftsWidth3\clwWidth5749\clshdrawnil \cellx8531\row }\trowd \irow9\irowband9\lastrow \ts114\trgaph100\trleft-108\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh
+\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 \trftsWidth1\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw30\brdrcf1 \clbrdrr
+\brdrs\brdrw15\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth2890\clshdrawnil \cellx2782\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw30\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 
+\cltxlrtb\clftsWidth3\clwWidth5749\clshdrawnil \cellx8531\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\cs109\f2\fs20\insrsid15948434\charrsid14972466 Files 2\cell }{\insrsid15948434 The rest of executables and data which go to make up the ROM image.\cell }\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 
+\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 \trowd \irow9\irowband9\lastrow \ts114\trgaph100\trleft-108\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr
+\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 \trftsWidth1\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb
+\brdrs\brdrw30\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth2890\clshdrawnil \cellx2782\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw30\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 
+\cltxlrtb\clftsWidth3\clwWidth5749\clshdrawnil \cellx8531\row }\pard\plain \s4\ql \li0\ri0\sb120\keepn\widctlpar\brdrt\brdrs\brdrw15\brsp20 \tqr\tx9072\aspalpha\aspnum\faauto\outlinelevel3\adjustright\rin0\lin0\rtlgutter\itap0\pararsid2562411 
+\b\f1\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 TRomSectionHeader
+\par }\trowd \irow0\irowband0\ts114\trgaph100\trleft-108\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw30\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth3\clwWidth2611\clshdrawnil \cellx2503\clvertalt\clbrdrt\brdrs\brdrw30\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth6028\clshdrawnil \cellx8531
+\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 Offset (hex)\cell Description\cell }\pard\plain 
+\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 \trowd \irow0\irowband0\ts114\trgaph100\trleft-108\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl
+\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 \trftsWidth1\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt
+\brdrs\brdrw30\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth2611\clshdrawnil \cellx2503\clvertalt\clbrdrt\brdrs\brdrw30\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb
+\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth6028\clshdrawnil \cellx8531\row }\trowd \irow1\irowband1\ts114\trgaph100\trleft-108\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb
+\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 \trftsWidth1\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl
+\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth2611\clshdrawnil \cellx2503\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr
+\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth6028\clshdrawnil \cellx8531\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362\yts114 
+\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 00\cell ROM major version\cell }\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid15948434 \trowd \irow1\irowband1\ts114\trgaph100\trleft-108\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth3\clwWidth2611\clshdrawnil \cellx2503\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth6028\clshdrawnil \cellx8531\row 
+}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 01\cell ROM minor version\cell }\pard\plain 
+\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 \trowd \irow2\irowband2\ts114\trgaph100\trleft-108\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl
+\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 \trftsWidth1\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt
+\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth2611\clshdrawnil \cellx2503\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb
+\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth6028\clshdrawnil \cellx8531\row }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362\yts114 
+\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 02\cell ROM build number\cell }\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid15948434 \trowd \irow3\irowband3\ts114\trgaph100\trleft-108\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth3\clwWidth2611\clshdrawnil \cellx2503\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth6028\clshdrawnil \cellx8531\row 
+}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid7166973 04}{\insrsid6424832 \cell 
+Computed constant that causes the 32-bit checksum of the upper section to equal zero. All upper sections will checksum to zero, so the overall ROM checksum in the TRomHeader is unaffected by changing the second section.\cell }\pard\plain 
+\ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6424832 \trowd \irow4\irowband4\ts114\trgaph100\trleft-108\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl
+\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 \trftsWidth1\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt
+\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth2611\clshdrawnil \cellx2503\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb
+\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth6028\clshdrawnil \cellx8531\row }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362\yts114 
+\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid7166973 08}{\insrsid6424832 \cell ROM datetime\cell }\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 
+\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6424832 \trowd \irow5\irowband5\ts114\trgaph100\trleft-108\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh
+\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 \trftsWidth1\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr
+\brdrs\brdrw15\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth2611\clshdrawnil \cellx2503\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 
+\cltxlrtb\clftsWidth3\clwWidth6028\clshdrawnil \cellx8531\row }\trowd \irow6\irowband6\lastrow \ts114\trgaph100\trleft-108\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh
+\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 \trftsWidth1\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw30\brdrcf1 \clbrdrr
+\brdrs\brdrw15\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth2611\clshdrawnil \cellx2503\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw30\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 
+\cltxlrtb\clftsWidth3\clwWidth6028\clshdrawnil \cellx8531\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid7166973 10}{
+\insrsid6424832 \cell Language\cell }\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid6424832 \trowd \irow6\irowband6\lastrow \ts114\trgaph100\trleft-108
+\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw30\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth3\clwWidth2611\clshdrawnil \cellx2503\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw30\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth6028\clshdrawnil \cellx8531\row 
+}\pard\plain \s4\ql \li0\ri0\sb120\keepn\widctlpar\brdrt\brdrs\brdrw15\brsp20 \tqr\tx9072\aspalpha\aspnum\faauto\outlinelevel3\adjustright\rin0\lin0\rtlgutter\itap0\pararsid2562411 \b\f1\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid15948434 EDATA and DllRefTables
+\par }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid16319362 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 References from an executable to a fu
+nction exported by a DLL involve reading the function address from the Export Directory of the DLL. In order to allow low section DLLs to be overridden, the Export Directory for each low section DLL must be stored in the second section.
+\par }\trowd \irow0\irowband0\ts114\trgaph108\trleft-108\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw30\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth3\clwWidth2628\clshdrawnil \cellx2520\clvertalt\clbrdrt\brdrs\brdrw30\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth6030\clshdrawnil \cellx8550
+\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 EDATA1\cell Export Directory (if any) for first file in ROM
+\cell }\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 \trowd \irow0\irowband0\ts114\trgaph108\trleft-108\trbrdrt\brdrs\brdrw30\brdrcf1 
+\trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 \trftsWidth1\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt
+\clbrdrt\brdrs\brdrw30\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth2628\clshdrawnil \cellx2520\clvertalt\clbrdrt\brdrs\brdrw30\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 
+\clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth6030\clshdrawnil \cellx8550\row }\trowd \irow1\irowband1\ts114\trgaph108\trleft-108\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb
+\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 \trftsWidth1\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl
+\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth2628\clshdrawnil \cellx2520\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr
+\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth6030\clshdrawnil \cellx8550\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362\yts114 
+\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 DllRefTable1\cell DllRefTable for first file in ROM\cell }\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 
+\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 \trowd \irow1\irowband1\ts114\trgaph108\trleft-108\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 
+\trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 \trftsWidth1\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 
+\clbrdrr\brdrs\brdrw15\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth2628\clshdrawnil \cellx2520\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 
+\cltxlrtb\clftsWidth3\clwWidth6030\clshdrawnil \cellx8550\row }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {
+\insrsid15948434 EDATA2\cell Export Directory (if any) for second file in ROM\cell }\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 
+\trowd \irow2\irowband2\ts114\trgaph108\trleft-108\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth3\clwWidth2628\clshdrawnil \cellx2520\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth6030\clshdrawnil \cellx8550\row 
+}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 DllRefTable1\cell DllRefTable for second file in ROM\cell 
+}\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 \trowd \irow3\irowband3\ts114\trgaph108\trleft-108\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl
+\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 \trftsWidth1\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt
+\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth2628\clshdrawnil \cellx2520\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb
+\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth6030\clshdrawnil \cellx8550\row }\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362\yts114 
+\fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 ..\cell \'85\cell }\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 
+\trowd \irow4\irowband4\ts114\trgaph108\trleft-108\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth3\clwWidth2628\clshdrawnil \cellx2520\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth6030\clshdrawnil \cellx8550\row 
+}\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 EDATAn\cell Expo
+rt Directory (if any) for last file in first section of ROM\cell }\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 \trowd \irow5\irowband5
+\ts114\trgaph108\trleft-108\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth3\clwWidth2628\clshdrawnil \cellx2520\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw15\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth6030\clshdrawnil \cellx8550\row 
+}\trowd \irow6\irowband6\lastrow \ts114\trgaph108\trleft-108\trbrdrt\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw30\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth3\clwWidth2628\clshdrawnil \cellx2520\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw30\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth6030\clshdrawnil \cellx8550
+\pard\plain \s83\ql \li0\ri0\sa120\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0\pararsid16319362\yts114 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 DllRefTablen\cell DllRefTable for last file in first section 
+of ROM\cell }\pard\plain \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \fs24\lang2057\langfe2057\cgrid\langnp2057\langfenp2057 {\insrsid15948434 \trowd \irow6\irowband6\lastrow \ts114\trgaph108\trleft-108\trbrdrt
+\brdrs\brdrw30\brdrcf1 \trbrdrl\brdrs\brdrw30\brdrcf1 \trbrdrb\brdrs\brdrw30\brdrcf1 \trbrdrr\brdrs\brdrw30\brdrcf1 \trbrdrh\brdrs\brdrw15\brdrcf1 \trbrdrv\brdrs\brdrw15\brdrcf1 
+\trftsWidth1\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw30\brdrcf1 \clbrdrb\brdrs\brdrw30\brdrcf1 \clbrdrr\brdrs\brdrw15\brdrcf1 
+\cltxlrtb\clftsWidth3\clwWidth2628\clshdrawnil \cellx2520\clvertalt\clbrdrt\brdrs\brdrw15\brdrcf1 \clbrdrl\brdrs\brdrw15\brdrcf1 \clbrdrb\brdrs\brdrw30\brdrcf1 \clbrdrr\brdrs\brdrw30\brdrcf1 \cltxlrtb\clftsWidth3\clwWidth6030\clshdrawnil \cellx8550\row 
+}\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid2562411 {\insrsid15948434 
+\par }}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/e32image/Makefile.elftran	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,46 @@
+# Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+CXX	 = g++296
+CXXFLAGS = -D__SUPPORT_ELF_FILES__ -D__LINUX__ -D__GCC32__ -D__TOOLS__ -D EKA2 \
+		-I $(EPOCROOT)epoc32/include -I ../inc -I ../elftools/inc
+SOURCE	 = elf_file.cpp elf_dlld.cpp elf_imp.cpp elf_reloc.cpp elf_tran.cpp \
+	   e32uid.cpp \
+	   h_file.cpp h_mem.cpp h_utl.cpp \
+	   e32image.cpp tr_main.cpp imgdump.cpp \
+	   decode.cpp encode.cpp deflate.cpp inflate.cpp panic.cpp compress.cpp
+BLDDIR	 = ../build-elftran
+OBJECT   = $(addprefix $(BLDDIR)/, $(notdir $(SOURCE:.cpp=.o)))
+TARGET	 = $(BLDDIR)/elftran
+
+VPATH	 = ../host ../e32uid ../e32image ../e32image/deflate ../elftools/elftran
+
+_dummy := $(shell mkdir -p $(BLDDIR))
+
+all: $(TARGET)
+
+$(TARGET): $(OBJECT)
+	$(CXX) $^ -o $@
+	strip $@
+	
+$(OBJECT): $(BLDDIR)/%.o: %.cpp
+	$(CXX) $(CXXFLAGS) -c $< -o $@
+
+clean:
+	rm -f $(OBJECT) $(TARGET)
+	-rmdir $(BLDDIR)
+
+.PHONY: all clean
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/e32image/deflate/compress.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,126 @@
+// Copyright (c) 1998-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// e32tools\petran\Szip\compress.cpp
+// 
+//
+
+#include "deflate.h"
+
+#if defined(__MSVCDOTNET__) || defined(__TOOLS2__)
+#include <fstream>
+#else //__MSVCDOTNET__
+#include <fstream.h>
+#endif //__MSVCDOTNET__
+
+#include <assert.h>
+#include "h_utl.h"
+
+class TFileOutput : public TBitOutput
+	{
+	enum {KBufSize=0x1000};
+public:
+	TFileOutput(ostream& os);
+	void FlushL();
+	TUint32 iDataCount; 
+private:
+	void OverflowL();
+private:
+	ostream& iOutStream;
+	TUint8 iBuf[KBufSize];
+	};
+
+TFileOutput::TFileOutput(ostream& os)
+	:iOutStream(os)
+	{
+	Set(iBuf,KBufSize);
+	}
+
+void TFileOutput::OverflowL()
+//
+// empty the buffer and reset the pointers
+//
+	{
+	FlushL();
+	Set(iBuf,KBufSize);
+	}
+
+void TFileOutput::FlushL()
+//
+// write out the contents of the buffer
+//
+	{
+	TInt len=Ptr()-iBuf;
+	if (len)
+		{
+		iOutStream.write(reinterpret_cast<char *>(iBuf), len); // write extended header
+		iDataCount += len;
+		}
+	}
+
+void DeflateCompress(char *bytes,TInt size,ostream &os)
+	{
+	TFileOutput* output=new TFileOutput(os);
+	output->iDataCount = 0;
+	DeflateL((TUint8*)bytes,size,*output);
+	output->FlushL();
+	delete output;
+	}
+
+TUint32 DeflateCompressCheck(char *bytes,TInt size,ostream &os)
+	{
+	TUint32 r = 0;
+	TFileOutput* output=new TFileOutput(os);
+	output->iDataCount = 0;
+	DeflateL((TUint8*)bytes,size,*output);
+	output->FlushL();
+
+	r = output->iDataCount; // Preserve the compressed count
+	delete output;
+	return r; // Return the compressed size
+	}
+
+class TFileInput : public TBitInput
+	{
+public:
+	TFileInput(unsigned char* source,int size);
+
+private:
+	void UnderflowL();
+private:
+	TUint8* iReadBuf;
+	TInt iSize;
+	};
+
+TFileInput::TFileInput(unsigned char* source,int size)
+	:iReadBuf(source),iSize(size)
+	{
+	Set(source,iSize*8);
+	}
+
+
+void TFileInput::UnderflowL()
+	{
+	Print(ESevereError,"Buffer underflow on deflate\n");
+	}
+
+void InflateUnCompress(unsigned char* source, int sourcesize,unsigned char* dest, int destsize)
+	{
+	TFileInput* input = new TFileInput(source, sourcesize);
+	CInflater* inflater=CInflater::NewLC(*input);
+	inflater->ReadL(dest,destsize);
+	delete input;
+	//delete inflater;
+	}
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/e32image/deflate/decode.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,412 @@
+// Copyright (c) 1998-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of the License "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// e32tools\petran\Szip\decode.cpp
+// 
+//
+
+#include "huffman.h"
+#include "panic.h"
+#include <cpudefs.h>
+#include "h_utl.h"
+#include "farray.h"
+
+
+const TInt KHuffTerminate=0x0001;
+const TUint32 KBranch1=sizeof(TUint32)<<16;
+
+TUint32* HuffmanSubTree(TUint32* aPtr,const TUint32* aValue,TUint32** aLevel)
+//
+// write the subtree below aPtr and return the head
+//
+	{
+	TUint32* l=*aLevel++;
+	if (l>aValue)
+		{
+		TUint32* sub0=HuffmanSubTree(aPtr,aValue,aLevel);	// 0-tree first
+		aPtr=HuffmanSubTree(sub0,aValue-(aPtr-sub0)-1,aLevel);			// 1-tree
+		TInt branch0=(TUint8*)sub0-(TUint8*)(aPtr-1);
+		*--aPtr=KBranch1|branch0;
+		}
+	else if (l==aValue)
+		{
+		TUint term0=*aValue--;						// 0-term
+		aPtr=HuffmanSubTree(aPtr,aValue,aLevel);			// 1-tree
+		*--aPtr=KBranch1|(term0>>16);
+		}
+	else	// l<iNext
+		{
+		TUint term0=*aValue--;						// 0-term
+		TUint term1=*aValue--;
+		*--aPtr=(term1>>16<<16)|(term0>>16);
+		}
+	return aPtr;
+	}
+
+void Huffman::Decoding(const TUint32 aHuffman[],TInt aNumCodes,TUint32 aDecodeTree[],TInt aSymbolBase)
+/** Create a canonical Huffman decoding tree
+
+	This generates the huffman decoding tree used by TBitInput::HuffmanL() to read huffman
+	encoded data. The input is table of code lengths, as generated by Huffman::HuffmanL()
+	and must represent a valid huffman code.
+	
+	@param "const TUint32 aHuffman[]" The table of code lengths as generated by Huffman::HuffmanL()
+	@param "TInt aNumCodes" The number of codes in the table
+	@param "TUint32 aDecodeTree[]" The space for the decoding tree. This must be the same
+		size as the code-length table, and can safely be the same memory
+	@param "TInt aSymbolBase" the base value for the output 'symbols' from the decoding tree, by default
+		this is zero.
+
+	@panic "USER ???" If the provided code is not a valid Huffman coding
+
+	@see IsValid()
+	@see HuffmanL()
+*/
+	{
+	if(!IsValid(aHuffman,aNumCodes))
+		Panic(EHuffmanInvalidCoding);
+//
+	TFixedArray<TInt,KMaxCodeLength> counts;
+	counts.Reset();
+	TInt codes=0;
+	TInt ii;
+	for (ii=0;ii<aNumCodes;++ii)
+		{
+		TInt len=aHuffman[ii];
+		aDecodeTree[ii]=len;
+		if (--len>=0)
+			{
+			++counts[len];
+			++codes;
+			}
+		}
+//
+	TFixedArray<TUint32*,KMaxCodeLength> level;
+	TUint32* lit=aDecodeTree+codes;
+	for (ii=0;ii<KMaxCodeLength;++ii)
+		{
+		level[ii]=lit;
+		lit-=counts[ii];
+		}
+	aSymbolBase=(aSymbolBase<<17)+(KHuffTerminate<<16);
+	for (ii=0;ii<aNumCodes;++ii)
+		{
+		TUint len=TUint8(aDecodeTree[ii]);
+		if (len)
+			*--level[len-1]|=(ii<<17)+aSymbolBase;
+		}
+	if (codes==1)	// codes==1 special case: the tree is not complete
+		{
+		TUint term=aDecodeTree[0]>>16;
+		aDecodeTree[0]=term|(term<<16); // 0- and 1-terminate at root
+		}
+	else if (codes>1)
+		HuffmanSubTree(aDecodeTree+codes-1,aDecodeTree+codes-1,&level[0]);
+	}
+
+// The decoding tree for the externalised code
+const TUint32 HuffmanDecoding[]=
+	{
+	0x0004006c,
+	0x00040064,
+	0x0004005c,
+	0x00040050,
+	0x00040044,
+	0x0004003c,
+	0x00040034,
+	0x00040021,
+	0x00040023,
+	0x00040025,
+	0x00040027,
+	0x00040029,
+	0x00040014,
+	0x0004000c,
+	0x00040035,
+	0x00390037,
+	0x00330031,
+	0x0004002b,
+	0x002f002d,
+	0x001f001d,
+	0x001b0019,
+	0x00040013,
+	0x00170015,
+	0x0004000d,
+	0x0011000f,
+	0x000b0009,
+	0x00070003,
+	0x00050001
+	};
+
+void Huffman::InternalizeL(TBitInput& aInput,TUint32 aHuffman[],TInt aNumCodes)
+/** Restore a canonical huffman encoding from a bit stream
+
+	The encoding must have been stored using Huffman::ExternalizeL(). The resulting
+	code-length table can be used to create an encoding table using Huffman::Encoding()
+	or a decoding tree using Huffman::Decoding().
+	
+	@param "TBitInput& aInput" The input stream with the encoding
+	@param "TUint32 aHuffman[]" The internalized code-length table is placed here
+	@param "TInt aNumCodes" The number of huffman codes in the table
+
+	@leave "TBitInput::HuffmanL()"
+
+	@see ExternalizeL()
+*/
+// See ExternalizeL for a description of the format
+	{
+	// initialise move-to-front list
+	TFixedArray<TUint8,Huffman::KMetaCodes> list;
+	for (TInt i=0;i<list.Count();++i)
+		list[i]=TUint8(i);
+	TInt last=0;
+	// extract codes, reverse rle-0 and mtf encoding in one pass
+	TUint32* p=aHuffman;
+	const TUint32* end=aHuffman+aNumCodes;
+	TInt rl=0;
+	while (p+rl<end)
+		{
+		TInt c=aInput.HuffmanL(HuffmanDecoding);
+		if (c<2)
+			{
+			// one of the zero codes used by RLE-0
+			// update he run-length
+			rl+=rl+c+1;
+			}
+		else
+			{
+			while (rl>0)
+				{
+				if (p>end)
+					{
+					Panic(EHuffmanCorruptFile);
+					}
+				*p++=last;
+				--rl;
+				}
+			--c;
+			list[0]=TUint8(last);
+			last=list[c];
+			HMem::Copy(&list[1],&list[0],c);
+			if (p>end)
+				{
+				Panic(EHuffmanCorruptFile);
+				}
+			*p++=last;
+			}
+		}
+	while (rl>0)
+		{
+		if (p>end)
+			{
+			Panic(EHuffmanCorruptFile);
+			}
+		*p++=last;
+		--rl;
+		}
+	}
+
+// bit-stream input class
+
+inline TUint reverse(TUint aVal)
+//
+// Reverse the byte-order of a 32 bit value
+// This generates optimal ARM code (4 instructions)
+//
+	{
+	TUint v=(aVal<<16)|(aVal>>16);
+	v^=aVal;
+	v&=0xff00ffff;
+	aVal=(aVal>>8)|(aVal<<24);
+	return aVal^(v>>8);
+	}
+
+TBitInput::TBitInput()
+/** Construct a bit stream input object
+
+	Following construction the bit stream is ready for reading bits, but will
+	immediately call UnderflowL() as the input buffer is empty.
+*/
+	:iCount(0),iRemain(0)
+	{}
+
+TBitInput::TBitInput(const TUint8* aPtr, TInt aLength, TInt aOffset)
+/** Construct a bit stream input object over a buffer
+
+	Following construction the bit stream is ready for reading bits from
+	the specified buffer.
+
+	@param "const TUint8* aPtr" The address of the buffer containing the bit stream
+	@param "TInt aLength" The length of the bitstream in bits
+	@param "TInt aOffset" The bit offset from the start of the buffer to the bit stream (defaults to zero)
+*/
+	{
+	Set(aPtr,aLength,aOffset);
+	}
+
+void TBitInput::Set(const TUint8* aPtr, TInt aLength, TInt aOffset)
+/** Set the memory buffer to use for input
+
+	Bits will be read from this buffer until it is empty, at which point
+	UnderflowL() will be called.
+	
+	@param "const TUint8* aPtr" The address of the buffer containing the bit stream
+	@param "TInt aLength" The length of the bitstream in bits
+	@param "TInt aOffset" The bit offset from the start of the buffer to the bit stream (defaults to zero)
+*/
+	{
+	TUint p=(TUint)aPtr;
+	p+=aOffset>>3;			// nearest byte to the specified bit offset
+	aOffset&=7;				// bit offset within the byte
+	const TUint32* ptr=(const TUint32*)(p&~3);	// word containing this byte
+	aOffset+=(p&3)<<3;		// bit offset within the word
+	if (aLength==0)
+		iCount=0;
+	else
+		{
+		// read the first few bits of the stream
+		iBits=reverse(*ptr++)<<aOffset;
+		aOffset=32-aOffset;
+		aLength-=aOffset;
+		if (aLength<0)
+			aOffset+=aLength;
+		iCount=aOffset;
+		}
+	iRemain=aLength;
+	iPtr=ptr;
+	}
+
+#ifndef __HUFFMAN_MACHINE_CODED__
+
+TUint TBitInput::ReadL()
+/** Read a single bit from the input
+
+	Return the next bit in the input stream. This will call UnderflowL() if
+	there are no more bits available.
+
+	@return The next bit in the stream
+
+	@leave "UnderflowL()" It the bit stream is exhausted more UnderflowL is called
+		to get more data
+*/
+	{
+	TInt c=iCount;
+	TUint bits=iBits;
+	if (--c<0)
+		return ReadL(1);
+	iCount=c;
+	iBits=bits<<1;
+	return bits>>31;
+	}
+
+TUint TBitInput::ReadL(TInt aSize)
+/** Read a multi-bit value from the input
+
+	Return the next few bits as an unsigned integer. The last bit read is
+	the least significant bit of the returned value, and the value is
+	zero extended to return a 32-bit result.
+
+	A read of zero bits will always reaturn zero.
+	
+	This will call UnderflowL() if there are not enough bits available.
+
+	@param "TInt aSize" The number of bits to read
+
+	@return The bits read from the stream
+
+	@leave "UnderflowL()" It the bit stream is exhausted more UnderflowL is called
+		to get more data
+*/
+	{
+	if (!aSize)
+		return 0;
+	TUint val=0;
+	TUint bits=iBits;
+	iCount-=aSize;
+	while (iCount<0)
+		{
+		// need more bits
+#ifdef __CPU_X86
+		// X86 does not allow shift-by-32
+		if (iCount+aSize!=0)
+			val|=bits>>(32-(iCount+aSize))<<(-iCount);	// scrub low order bits
+#else
+		val|=bits>>(32-(iCount+aSize))<<(-iCount);	// scrub low order bits
+#endif
+		aSize=-iCount;	// bits still required
+		if (iRemain>0)
+			{
+			bits=reverse(*iPtr++);
+			iCount+=32;
+			iRemain-=32;
+			if (iRemain<0)
+				iCount+=iRemain;
+			}
+		else
+			{
+			UnderflowL();
+			bits=iBits;
+			iCount-=aSize;
+			}
+		}
+#ifdef __CPU_X86
+	// X86 does not allow shift-by-32
+	iBits=aSize==32?0:bits<<aSize;
+#else
+	iBits=bits<<aSize;
+#endif
+	return val|(bits>>(32-aSize));
+	}
+
+TUint TBitInput::HuffmanL(const TUint32* aTree)
+/** Read and decode a Huffman Code
+
+	Interpret the next bits in the input as a Huffman code in the specified
+	decoding. The decoding tree should be the output from Huffman::Decoding().
+
+	@param "const TUint32* aTree" The huffman decoding tree
+
+	@return The symbol that was decoded
+	
+	@leave "UnderflowL()" It the bit stream is exhausted more UnderflowL is called
+		to get more data
+*/
+	{
+	TUint huff=0;
+	do
+		{
+		aTree=PtrAdd(aTree,huff>>16);
+		huff=*aTree;
+		if (ReadL()==0)
+			huff<<=16;
+		} while ((huff&0x10000u)==0);
+	return huff>>17;
+	}
+
+#endif
+
+void TBitInput::UnderflowL()
+/** Handle an empty input buffer
+
+	This virtual function is called when the input buffer is empty and
+	more bits are required. It should reset the input buffer with more
+	data using Set().
+
+	A derived class can replace this to read the data from a file
+	(for example) before reseting the input buffer.
+
+	@leave "KErrUnderflow" The default implementation leaves
+*/
+	{
+	Panic(EHuffmanBufferOverflow);
+	}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/e32image/deflate/deflate.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,338 @@
+// Copyright (c) 1998-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// e32tools\petran\Szip\deflate.cpp
+// 
+//
+
+#include "deflate.h"
+#include "h_utl.h"
+#include "panic.h"
+
+class HDeflateHash
+	{
+public:
+	inline static HDeflateHash* NewLC(TInt aLinks);
+//
+	inline TInt First(const TUint8* aPtr,TInt aPos);
+	inline TInt Next(TInt aPos,TInt aOffset) const;
+private:
+	inline HDeflateHash();
+	inline static TInt Hash(const TUint8* aPtr);
+private:
+	typedef TUint16 TOffset;
+private:
+	TInt iHash[256];
+	TOffset iOffset[1];	// or more
+	};
+
+class MDeflater
+	{
+public:
+	void DeflateL(const TUint8* aBase,TInt aLength);
+	inline virtual ~MDeflater() { }; 
+private:
+	const TUint8* DoDeflateL(const TUint8* aBase,const TUint8* aEnd,HDeflateHash& aHash);
+	static TInt Match(const TUint8* aPtr,const TUint8* aEnd,TInt aPos,HDeflateHash& aHas);
+	void SegmentL(TInt aLength,TInt aDistance);
+	virtual void LitLenL(TInt aCode) =0;
+	virtual void OffsetL(TInt aCode) =0;
+	virtual void ExtraL(TInt aLen,TUint aBits) =0;
+	};
+
+class TDeflateStats : public MDeflater
+	{
+public:
+	inline TDeflateStats(TEncoding& aEncoding);
+	inline virtual ~TDeflateStats() { } 
+private:
+// from MDeflater
+	void LitLenL(TInt aCode);
+	void OffsetL(TInt aCode);
+	void ExtraL(TInt aLen,TUint aBits);
+private:
+	TEncoding& iEncoding;
+	};
+
+class TDeflater : public MDeflater
+	{
+public:
+	inline TDeflater(TBitOutput& aOutput,const TEncoding& aEncoding);
+	inline virtual ~TDeflater() { }; 
+private:
+// from MDeflater
+	void LitLenL(TInt aCode);
+	void OffsetL(TInt aCode);
+	void ExtraL(TInt aLen,TUint aBits);
+private:
+	TBitOutput& iOutput;
+	const TEncoding& iEncoding;
+	};
+
+
+// Class HDeflateHash
+
+inline HDeflateHash::HDeflateHash()
+	{TInt* p=iHash+256;do *--p=-KDeflateMaxDistance-1; while (p>iHash);}
+
+inline HDeflateHash* HDeflateHash::NewLC(TInt aLinks)
+	{
+#if __GNUC__ >= 4
+	unsigned n = sizeof(TInt) * 256 + sizeof(TOffset) * Min(aLinks, KDeflateMaxDistance);
+
+	while (n & 0x1f)
+	{
+		n++;	
+	}
+
+	void* p = ::operator new(n);
+
+	return new(p) HDeflateHash;
+#else
+	return new(HMem::Alloc(0,_FOFF(HDeflateHash,iOffset[Min(aLinks,KDeflateMaxDistance)]))) HDeflateHash;
+#endif
+	}
+
+inline TInt HDeflateHash::Hash(const TUint8* aPtr)
+	{
+	TUint x=aPtr[0]|(aPtr[1]<<8)|(aPtr[2]<<16);
+	return (x*KDeflateHashMultiplier)>>KDeflateHashShift;
+	}
+
+inline TInt HDeflateHash::First(const TUint8* aPtr,TInt aPos)
+	{
+	TInt h=Hash(aPtr);
+	TInt offset=Min(aPos-iHash[h],KDeflateMaxDistance<<1);
+	iHash[h]=aPos;
+	iOffset[aPos&(KDeflateMaxDistance-1)]=TOffset(offset);
+	return offset;
+	}
+
+inline TInt HDeflateHash::Next(TInt aPos,TInt aOffset) const
+	{return aOffset+iOffset[(aPos-aOffset)&(KDeflateMaxDistance-1)];}
+
+
+// Class TDeflater
+//
+// generic deflation algorithm, can do either statistics and the encoder
+
+TInt MDeflater::Match(const TUint8* aPtr,const TUint8* aEnd,TInt aPos,HDeflateHash& aHash)
+	{
+	TInt offset=aHash.First(aPtr,aPos);
+	if (offset>KDeflateMaxDistance)
+		return 0;
+	TInt match=0;
+	aEnd=Min(aEnd,aPtr+KDeflateMaxLength);
+	TUint8 c=*aPtr;
+	do
+		{
+		const TUint8* p=aPtr-offset;
+		if (p[match>>16]==c)
+			{	// might be a better match
+			const TUint8* m=aPtr;
+			for (;;)
+				{
+				if (*p++!=*m++)
+					break;
+				if (m<aEnd)
+					continue;
+				return ((m-aPtr)<<16)|offset;
+				}
+			TInt l=m-aPtr-1;
+			if (l>match>>16)
+				{
+				match=(l<<16)|offset;
+				c=m[-1];
+				}
+			}
+		offset=aHash.Next(aPos,offset);
+		} while (offset<=KDeflateMaxDistance);
+	return match;
+	}
+
+const TUint8* MDeflater::DoDeflateL(const TUint8* aBase,const TUint8* aEnd,HDeflateHash& aHash)
+//
+// Apply the deflation algorithm to the data [aBase,aEnd)
+// Return a pointer after the last byte that was deflated (which may not be aEnd)
+//
+	{
+	const TUint8* ptr=aBase;
+	TInt prev=0;		// the previous deflation match
+	do
+		{
+		TInt match=Match(ptr,aEnd,ptr-aBase,aHash);
+// Extra deflation applies two optimisations which double the time taken
+// 1. If we have a match at p, then test for a better match at p+1 before using it
+// 2. When we have a match, add the hash links for all the data which will be skipped 
+		if (match>>16 < prev>>16)
+			{	// use the previous match--it was better
+			TInt len=prev>>16;
+			SegmentL(len,prev-(len<<16));
+			// fill in missing hash entries for better compression
+			const TUint8* e=ptr+len-2;
+			do 
+				{
+				++ptr;
+				if (ptr + 2 < aEnd)
+					aHash.First(ptr,ptr-aBase);
+				} while (ptr<e);
+			prev=0;
+			}
+		else if (match<=(KDeflateMinLength<<16))
+			LitLenL(*ptr);			// no deflation match here
+		else
+			{	// save this match and test the next position
+			if (prev)	// we had a match at ptr-1, but this is better
+				LitLenL(ptr[-1]);
+			prev=match;
+			}
+		++ptr;
+		} while (ptr+KDeflateMinLength-1<aEnd);
+	if (prev)
+		{		// emit the stored match
+		TInt len=prev>>16;
+		SegmentL(len,prev-(len<<16));
+		ptr+=len-1;
+		}
+	return ptr;
+	}
+
+void MDeflater::DeflateL(const TUint8* aBase,TInt aLength)
+//
+// The generic deflation algorithm
+//
+	{
+	const TUint8* end=aBase+aLength;
+	if (aLength>KDeflateMinLength)
+		{	// deflation kicks in if there is enough data
+		HDeflateHash* hash=HDeflateHash::NewLC(aLength);
+		if(hash==NULL)
+			Panic(EHuffmanOutOfMemory);
+
+		aBase=DoDeflateL(aBase,end,*hash);
+		delete hash;
+		}
+	while (aBase<end)					// emit remaining bytes
+		LitLenL(*aBase++);
+	LitLenL(TEncoding::EEos);	// eos marker
+	}
+
+void MDeflater::SegmentL(TInt aLength,TInt aDistance)
+//
+// Turn a (length,offset) pair into the deflation codes+extra bits before calling
+// the specific LitLen(), Offset() and Extra() functions.
+//
+	{
+	aLength-=KDeflateMinLength;
+	TInt extralen=0;
+	TUint len=aLength;
+	while (len>=8)
+		{
+		++extralen;
+		len>>=1;
+		}
+	LitLenL((extralen<<2)+len+TEncoding::ELiterals);
+	if (extralen)
+		ExtraL(extralen,aLength);
+//
+	aDistance--;
+	extralen=0;
+	TUint dist=aDistance;
+	while (dist>=8)
+		{
+		++extralen;
+		dist>>=1;
+		}
+	OffsetL((extralen<<2)+dist);
+	if (extralen)
+		ExtraL(extralen,aDistance);
+	}
+
+// Class TDeflateStats
+//
+// This class analyses the data stream to generate the frequency tables 
+// for the deflation algorithm
+
+inline TDeflateStats::TDeflateStats(TEncoding& aEncoding)
+	:iEncoding(aEncoding)
+	{}
+
+void TDeflateStats::LitLenL(TInt aCode)
+	{
+	++iEncoding.iLitLen[aCode];
+	}
+
+void TDeflateStats::OffsetL(TInt aCode)
+	{
+	++iEncoding.iDistance[aCode];
+	}
+
+void TDeflateStats::ExtraL(TInt,TUint)
+	{}
+
+// Class TDeflater
+//
+// Extends MDeflater to provide huffman encoding of the output
+
+inline TDeflater::TDeflater(TBitOutput& aOutput,const TEncoding& aEncoding)
+//
+// construct for encoding
+//
+	:iOutput(aOutput),iEncoding(aEncoding)
+	{}
+
+void TDeflater::LitLenL(TInt aCode)
+	{
+	iOutput.HuffmanL(iEncoding.iLitLen[aCode]);
+	}
+
+void TDeflater::OffsetL(TInt aCode)
+	{
+	iOutput.HuffmanL(iEncoding.iDistance[aCode]);
+	}
+
+void TDeflater::ExtraL(TInt aLen,TUint aBits)
+	{
+	iOutput.WriteL(aBits,aLen);
+	}
+
+void DoDeflateL(const TUint8* aBuf,TInt aLength,TBitOutput& aOutput,TEncoding& aEncoding)
+	{
+// analyse the data for symbol frequency 
+	TDeflateStats analyser(aEncoding);
+	analyser.DeflateL(aBuf,aLength);
+	
+// generate the required huffman encodings
+	Huffman::HuffmanL(aEncoding.iLitLen,TEncoding::ELitLens,aEncoding.iLitLen);
+	Huffman::HuffmanL(aEncoding.iDistance,TEncoding::EDistances,aEncoding.iDistance);
+
+// Store the encoding table
+	Huffman::ExternalizeL(aOutput,aEncoding.iLitLen,KDeflationCodes);
+
+// generate the tables
+	Huffman::Encoding(aEncoding.iLitLen,TEncoding::ELitLens,aEncoding.iLitLen);
+	Huffman::Encoding(aEncoding.iDistance,TEncoding::EDistances,aEncoding.iDistance);
+
+// now finally deflate the data with the generated encoding
+	TDeflater deflater(aOutput,aEncoding);
+	deflater.DeflateL(aBuf,aLength);
+	aOutput.PadL(1);
+	}
+
+void DeflateL(const TUint8* aBuf, TInt aLength, TBitOutput& aOutput)
+	{
+	TEncoding* encoding=new TEncoding;
+	HMem::FillZ(encoding,sizeof(TEncoding));
+	DoDeflateL(aBuf,aLength,aOutput,*encoding);
+	}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/e32image/deflate/deflate.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,78 @@
+// Copyright (c) 1998-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// e32tools\petran\Szip\deflate.h
+// 
+//
+
+#ifndef __DECODE_H__
+#define __DECODE_H__
+
+#include "huffman.h"
+#include <e32base.h>
+
+// deflation constants
+const TInt KDeflateLengthMag=8;
+const TInt KDeflateDistanceMag=12;
+//
+const TInt KDeflateMinLength=3;
+const TInt KDeflateMaxLength=KDeflateMinLength-1 + (1<<KDeflateLengthMag);
+const TInt KDeflateMaxDistance=(1<<KDeflateDistanceMag);
+const TInt KDeflateDistCodeBase=0x200;
+// hashing
+const TUint KDeflateHashMultiplier=0xAC4B9B19u;
+const TInt KDeflateHashShift=24;
+
+class TEncoding
+	{
+public:
+	enum {ELiterals=256,ELengths=(KDeflateLengthMag-1)*4,ESpecials=1,EDistances=(KDeflateDistanceMag-1)*4};
+	enum {ELitLens=ELiterals+ELengths+ESpecials};
+	enum {EEos=ELiterals+ELengths};
+public:
+	TUint32 iLitLen[ELitLens];
+	TUint32 iDistance[EDistances];
+	};
+
+const TInt KDeflationCodes=TEncoding::ELitLens+TEncoding::EDistances;
+
+class CInflater
+	{
+public:
+	enum {EBufSize = 0x800, ESafetyZone=8};
+public:
+	static CInflater* NewLC(TBitInput& aInput);
+	~CInflater();
+//
+	TInt ReadL(TUint8* aBuffer,TInt aLength);
+	TInt SkipL(TInt aLength);
+private:
+	CInflater(TBitInput& aInput);
+	void ConstructL();
+	void InitL();
+	TInt InflateL();
+private:
+	TBitInput* iBits;
+	const TUint8* iRptr;			// partial segment
+	TInt iLen;
+	const TUint8* iAvail;			// available data
+	const TUint8* iLimit;
+	TEncoding* iEncoding;
+	TUint8* iOut;					// circular buffer for distance matches
+	TUint8 iHuff[EBufSize+ESafetyZone];			// huffman data
+	};
+
+void DeflateL(const TUint8* aBuf, TInt aLength, TBitOutput& aOutput);
+
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/e32image/deflate/encode.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,492 @@
+// Copyright (c) 1998-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of the License "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// e32tools\petran\Szip\encode.cpp
+// 
+//
+
+#include "huffman.h"
+#include "panic.h"
+#include <e32base.h>
+#include <e32base_private.h>
+#include "h_utl.h"
+#include <assert.h>
+#include "farray.h"
+#include <stdlib.h>
+
+void User::Invariant()
+	{
+	fprintf(stderr, "User::Invariant() called\n");
+	exit(1);
+	}
+
+// local definitions used for Huffman code generation
+typedef TUint16 THuff;		/** @internal */
+const THuff KLeaf=0x8000;	/** @internal */
+struct TNode
+/** @internal */
+	{
+	TUint iCount;
+	THuff iLeft;
+	THuff iRight;
+	};
+
+void HuffmanLengthsL(TUint32* aLengths,const TNode* aNodes,TInt aNode,TInt aLen)
+/** recursive function to calculate the code lengths from the node tree
+
+	@internal
+*/
+	{
+	if (++aLen>Huffman::KMaxCodeLength)
+		Panic(EHuffmanBufferOverflow);
+
+	const TNode& node=aNodes[aNode];
+	TUint x=node.iLeft;
+	if (x&KLeaf)
+		aLengths[x&~KLeaf]=aLen;
+	else
+		HuffmanLengthsL(aLengths,aNodes,x,aLen);
+	x=node.iRight;
+	if (x&KLeaf)
+		aLengths[x&~KLeaf]=aLen;
+	else
+		HuffmanLengthsL(aLengths,aNodes,x,aLen);
+	}
+
+void InsertInOrder(TNode* aNodes, TInt aSize, TUint aCount, TInt aVal)
+/**	Insert the {aCount,aValue} pair into the already sorted array of nodes
+
+	@internal
+*/
+	{
+	// Uses Insertion sort following a binary search...
+	TInt l=0, r=aSize;
+	while (l < r)
+		{
+		TInt m = (l+r) >> 1;
+		if (aNodes[m].iCount<aCount)
+			r=m;
+		else
+			l=m+1;
+		}
+	HMem::Copy(aNodes+l+1,aNodes+l,sizeof(TNode)*(aSize-l));
+	aNodes[l].iCount=aCount;
+	aNodes[l].iRight=TUint16(aVal);
+	}
+
+void Huffman::HuffmanL(const TUint32 aFrequency[],TInt aNumCodes,TUint32 aHuffman[])
+/** Generate a Huffman code
+
+	This generates a Huffman code for a given set of code frequencies. The output
+	is a table of code lengths which can be used to build canonincal encoding tables
+	or decoding trees for use with the TBitInput and TBitOutput classes.
+
+	Entries in the table with a frequency of zero will have a zero code length
+	and thus no associated huffman encoding. If each such symbol should have a
+	maximum length encoding, they must be given at least a frequency of 1.
+
+	For an alphabet of n symbols, this algorithm has a transient memory overhead
+	of 8n, and a time complexity of O(n*log(n)).
+
+	@param "const TUint32 aFrequency[]" The table of code frequencies
+	@param "TInt aNumCodes" The number of codes in the table
+	@param "TUint32 aHuffman[]" The table for the output code-length table. This must be
+		the same size as the frequency table, and can safely be the same table
+
+	@leave "KErrNoMemory" If memory used for code generation cannot be allocated
+
+  	@panic "USER ???" If the number of codes exceeds Huffman::KMaxCodes
+*/
+	{
+	if(TUint(aNumCodes)>TUint(KMaxCodes))
+		Panic(EHuffmanTooManyCodes);
+
+	// Sort the values into decreasing order of frequency
+	//
+	TNode* nodes = new TNode[aNumCodes];
+	if(nodes==NULL)
+		Panic(EHuffmanOutOfMemory);
+
+	TInt lCount=0;
+
+	for (TInt ii=0;ii<aNumCodes;++ii)
+		{
+		TInt c=aFrequency[ii];
+		if (c!=0)
+			InsertInOrder(nodes,lCount++,c,ii|KLeaf);
+		}
+
+	// default code length is zero
+	HMem::FillZ(aHuffman,aNumCodes*sizeof(TUint32));
+
+	if (lCount==0)
+		{
+		// no codes with frequency>0. No code has a length
+		}
+	else if (lCount==1)
+		{
+		// special case for a single value (always encode as "0")
+		aHuffman[nodes[0].iRight&~KLeaf]=1;
+		}
+	else
+		{
+		// Huffman algorithm: pair off least frequent nodes and reorder
+		//
+		do
+			{
+			--lCount;
+			TUint c=nodes[lCount].iCount + nodes[lCount-1].iCount;
+			nodes[lCount].iLeft=nodes[lCount-1].iRight;
+			// re-order the leaves now to reflect new combined frequency 'c'
+			InsertInOrder(nodes,lCount-1,c,lCount);
+			} while (lCount>1);
+		// generate code lengths in aHuffman[]
+		HuffmanLengthsL(aHuffman,nodes,1,0);
+		}
+
+	delete [] nodes;
+
+	if(!IsValid(aHuffman,aNumCodes))
+		Panic(EHuffmanInvalidCoding);
+	}
+
+TBool Huffman::IsValid(const TUint32 aHuffman[],TInt aNumCodes)
+/** Validate a Huffman encoding
+
+	This verifies that a Huffman coding described by the code lengths is valid.
+	In particular, it ensures that no code exceeds the maximum length and
+	that it is possible to generate a canonical coding for the specified lengths.
+	
+	@param "const TUint32 aHuffman[]" The table of code lengths as generated by Huffman::HuffmanL()
+	@param "TInt aNumCodes" The number of codes in the table
+
+	@return True if the code is valid, otherwise false
+*/
+	{
+	// The code is valid if one of the following holds:
+	// (a) the code exactly fills the 'code space'
+	// (b) there is only a single symbol with code length 1
+	// (c) there are no encoded symbols
+	//
+	TUint remain=1<<KMaxCodeLength;
+	TInt totlen=0;
+	for (const TUint32* p=aHuffman+aNumCodes; p>aHuffman;)
+		{
+		TInt len=*--p;
+		if (len>0)
+			{
+			totlen+=len;
+			if (len>KMaxCodeLength)
+				return EFalse;
+			TUint c=1<<(KMaxCodeLength-len);
+			if (c>remain)
+				return EFalse;
+			remain-=c;
+			}
+		}
+
+	return remain==0 || totlen<=1;
+	}
+
+void Huffman::Encoding(const TUint32 aHuffman[],TInt aNumCodes,TUint32 aEncodeTable[])
+/** Create a canonical Huffman encoding table
+
+	This generates the huffman codes used by TBitOutput::HuffmanL() to write huffman
+	encoded data. The input is table of code lengths, as generated by Huffman::HuffmanL()
+	and must represent a valid huffman code.
+	
+	@param "const TUint32 aHuffman[]" The table of code lengths as generated by Huffman::HuffmanL()
+	@param "TInt aNumCodes" The number of codes in the table
+	@param "TUint32 aEncodeTable[]" The table for the output huffman codes. This must be
+		the same size as the code-length table, and can safely be the same table
+
+	@panic "USER ???" If the provided code is not a valid Huffman coding
+	
+	@see IsValid()
+	@see HuffmanL()
+*/
+	{
+	__ASSERT_ALWAYS(IsValid(aHuffman,aNumCodes),Panic(EHuffmanInvalidCoding));
+
+	TFixedArray<TInt,KMaxCodeLength> lenCount;
+	lenCount.Reset();
+
+	TInt ii;
+	for (ii=0;ii<aNumCodes;++ii)
+		{
+		TInt len=aHuffman[ii]-1;
+		if (len>=0)
+			++lenCount[len];
+		}
+
+	TFixedArray<TUint,KMaxCodeLength> nextCode;
+	TUint code=0;
+	for (ii=0;ii<KMaxCodeLength;++ii)
+		{
+		code<<=1;
+		nextCode[ii]=code;
+		code+=lenCount[ii];
+		}
+
+	for (ii=0;ii<aNumCodes;++ii)
+		{
+		TInt len=aHuffman[ii];
+		if (len==0)
+			aEncodeTable[ii]=0;
+		else
+			{
+			aEncodeTable[ii] = (nextCode[len-1]<<(KMaxCodeLength-len))|(len<<KMaxCodeLength);
+			++nextCode[len-1];
+			}
+		}
+	}
+
+/** the encoding table for the externalised code
+	@internal
+*/
+const TUint32 HuffmanEncoding[]=
+	{
+	0x10000000,
+	0x1c000000,
+	0x12000000,
+	0x1d000000,
+	0x26000000,
+	0x26800000,
+	0x2f000000,
+	0x37400000,
+	0x37600000,
+	0x37800000,
+	0x3fa00000,
+	0x3fb00000,
+	0x3fc00000,
+	0x3fd00000,
+	0x47e00000,
+	0x47e80000,
+	0x47f00000,
+	0x4ff80000,
+	0x57fc0000,
+	0x5ffe0000,
+	0x67ff0000,
+	0x77ff8000,
+	0x7fffa000,
+	0x7fffb000,
+	0x7fffc000,
+	0x7fffd000,
+	0x7fffe000,
+	0x87fff000,
+	0x87fff800
+	};
+
+void EncodeRunLengthL(TBitOutput& aOutput, TInt aLength)
+/** encode 0a as '0' and 0b as '1', return number of symbols created
+
+	@internal
+*/
+	{
+	if (aLength>0)
+		{
+		EncodeRunLengthL(aOutput,(aLength-1)>>1);
+		aOutput.HuffmanL(HuffmanEncoding[1-(aLength&1)]);
+		}
+	}
+
+void Huffman::ExternalizeL(TBitOutput& aOutput,const TUint32 aHuffman[],TInt aNumCodes)
+/** Store a canonical huffman encoding in compact form
+
+	As the encoding is canonical, only the code lengths of each code needs to be saved.
+
+	Due to the nature of code length tables, these can usually be stored very compactly
+	by encoding the encoding itself, hence the use of the bit output stream.
+	
+	@param "TBitOutput& aOutput" The output stream for the encoding
+	@param "const TUint32 aHuffman[]" The table of code lengths as generated by Huffman::HuffmanL()
+	@param "TInt aNumCodes" The number of huffman codes in the table
+
+	@leave "TBitOutput::HuffmanL()"
+*/
+	{
+	// We assume that the code length table is generated by the huffman generator,
+	// in which case the maxmimum code length is 27 bits.
+	//
+	// We apply three transformations to the data:
+	// 1. the data goes through a move-to-front coder
+	// 2. apply a rle-0 coder which replace runs of '0' with streams of '0a' and '0b'
+	// 3. encode the result using a predefined (average) huffman coding
+	//
+	// This can be done in a single pass over the data, avoiding the need for additional
+	// memory.
+	//
+	// initialise the list for the MTF coder
+	TFixedArray<TUint8,Huffman::KMetaCodes> list;
+	TInt i;
+	for (i=0;i<list.Count();++i)
+		list[i]=TUint8(i);
+	TInt last=0;
+
+	TInt rl=0;
+	const TUint32* p32=aHuffman;
+	const TUint32* e32=p32+aNumCodes;
+	while (p32<e32)
+		{
+		TInt c=*p32++;
+		if (c==last)
+			++rl;	// repeat of last symbol
+		else
+			{
+			// encode run-length
+			EncodeRunLengthL(aOutput,rl);
+			rl=0;
+			// find code in MTF list
+			TInt j;
+			for (j=1;list[j]!=c;++j)
+				;
+			// store this code
+			aOutput.HuffmanL(HuffmanEncoding[j+1]);
+			// adjust list for MTF algorithm
+			while (--j>0)
+				list[j+1]=list[j];
+			list[1]=TUint8(last);
+			last=c;
+			}
+		}
+	// encod any remaining run-length
+	EncodeRunLengthL(aOutput,rl);
+	}
+
+
+TBitOutput::TBitOutput()
+/** Construct a bit stream output object
+
+	Following construction the bit stream is ready for writing bits, but will first call
+	OverflowL() as the output buffer is 'full'. A derived class can detect this state as
+	Ptr() will return null.
+*/
+	:iCode(0),iBits(-8),iPtr(0),iEnd(0)
+	{}
+
+TBitOutput::TBitOutput(TUint8* aBuf,TInt aSize)
+/** Construct a bit stream output object over a buffer
+
+	Data will be written to the buffer until it is full, at which point OverflowL() will
+	be called. This should handle the data and then can Set() again to reset the buffer
+	for further output.
+	
+	@param "TUint8* aBuf" The buffer for output
+	@param "TInt aSize" The size of the buffer in bytes
+*/
+	:iCode(0),iBits(-8),iPtr(aBuf),iEnd(aBuf+aSize)
+	{}
+
+void TBitOutput::HuffmanL(TUint aHuffCode)
+/** Write a huffman code
+
+	This expects a huffman code value as generated by Huffman::Encoding()
+
+	@param "TUint aHuffCode" The huffman code write to the stream
+
+	@leave "OverflowL()" If the output buffer is full, OverflowL() is called
+*/
+	{
+	DoWriteL(aHuffCode<<(32-Huffman::KMaxCodeLength),aHuffCode>>Huffman::KMaxCodeLength);
+	}
+
+void TBitOutput::WriteL(TUint aValue,TInt aLength)
+/** Write an arbitrary integer value
+
+	Write an unsigned integer using the number of bits specified. Only
+	the low order bits of the value are written to the output, most
+	significant bit first.
+
+	@param "TUint aValue" The value to write to the stream
+	@param "TUint aLength" The number of bits to output
+
+	@leave "OverflowL()" If the output buffer is full, OverflowL() is called
+*/
+	{
+	if (aLength)
+		DoWriteL(aValue<<=32-aLength,aLength);
+	}
+
+void TBitOutput::PadL(TUint aPadding)
+/** Pad the bitstream to the next byte boundary
+
+	Terminate the bitstream by padding the last byte with the requested value.
+	Following this operation the bitstream can continue to be used, the data will
+	start at the next byte.
+
+	@param "TUint aPadding" The bit value to pad the final byte with
+
+	@leave "OverflowL()" If the output buffer is full, OverflowL() is called
+*/
+	{
+	if (iBits>-8)
+		WriteL(aPadding?0xffffffffu:0,-iBits);
+	}
+
+void TBitOutput::DoWriteL(TUint aBits,TInt aSize)
+/** Write the higher order bits to the stream
+	
+	@internal
+*/
+	{
+	if (aSize>25)
+		{
+		// cannot process >25 bits in a single pass
+		// so do the top 8 bits first
+		ASSERT(aSize<=32);
+		DoWriteL(aBits&0xff000000u,8);
+		aBits<<=8;
+		aSize-=8;
+		}
+
+	TInt bits=iBits;
+	TUint code=iCode|(aBits>>(bits+8));
+	bits+=aSize;
+	if (bits>=0)
+		{
+		TUint8* p=iPtr;
+		do
+			{
+			if (p==iEnd)
+				{
+				// run out of buffer space so invoke the overflow handler
+				iPtr=p;
+				OverflowL();
+				p=iPtr;
+				ASSERT(p!=iEnd);
+				}
+			*p++=TUint8(code>>24);
+			code<<=8;
+			bits-=8;
+			} while (bits>=0);
+		iPtr=p;
+		}
+	iCode=code;
+	iBits=bits;
+	}
+
+void TBitOutput::OverflowL()
+/** Handle a full output buffer
+
+	This virtual function is called when the output buffer is full. It should deal
+	with the data in the buffer before reseting the buffer using Set(), allowing
+	further data to be written.
+
+	A derived class can replace this to write the data to a file (for example)
+	before marking the buffer as empty.
+
+	@leave "KErrOverflow" The default implementation leaves
+*/
+	{
+	Panic(EHuffmanBufferOverflow);
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/e32image/deflate/farray.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,104 @@
+// Copyright (c) 1998-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// e32tools\petran\Szip\farray.h
+// 
+//
+
+#ifndef __FARRAY_H__
+#define __FARRAY_H__
+#include <assert.h>
+
+template <class T,TInt S> 
+class TFixedArray
+// Range checking wrapper+ class for C++ arrays
+// Can be embedded in C-objects, or used on the stack: use Reset() to zero it
+	{
+	typedef TFixedArray<T,S> ThisClass;
+public:
+	inline TFixedArray();
+	inline TFixedArray(const T* aList, TInt aLength);
+	//
+	inline void Copy(const T* aList, TInt aLength);
+	inline void Reset();		// zero fill
+	inline void DeleteAll();
+	//
+	inline TInt Count() const;
+	inline TInt Length() const;
+	// Accessors - debug range checking
+	inline T& operator[](TInt aIndex);
+	inline const T& operator[] (TInt aIndex) const;
+	// Accessors - always range checking
+	inline T& At(TInt aIndex);
+	inline const T& At(TInt aIndex) const;
+	// Provides pointers to the beginning and end of the array
+	inline T* Begin();
+	inline T* End();
+	inline const T* Begin() const;
+	inline const T* End() const;
+	//
+protected:
+	inline static TBool InRange(TInt aIndex);
+protected:
+	T iRep[S];
+	};
+
+// Template class TFixedArray
+IMPORT_C void PanicTFixedArray();
+
+template <class T,TInt S>
+inline TFixedArray<T,S>::TFixedArray()
+	{}
+template <class T,TInt S>
+inline void TFixedArray<T,S>::Copy(const T* aList,TInt aLength)
+	{assert(TUint(aLength)<=TUint(S));HMem::Copy(iRep,aList,aLength*sizeof(T));}
+template <class T,TInt S>
+inline TFixedArray<T,S>::TFixedArray(const T* aList,TInt aLength)
+	{Copy(aList,aLength);}
+template <class T,TInt S>
+inline void TFixedArray<T,S>::Reset()
+	{HMem::FillZ(iRep,sizeof(iRep));}
+template <class T,TInt S>
+inline TInt TFixedArray<T,S>::Count() const
+	{return S;}
+template <class T,TInt S>
+inline TInt TFixedArray<T,S>::Length() const
+	{return sizeof(T);}
+template <class T,TInt S>
+inline TBool TFixedArray<T,S>::InRange(TInt aIndex)
+	{return TUint(aIndex)<S;}
+template <class T,TInt S>
+inline T& TFixedArray<T,S>::operator[](TInt aIndex)
+	{assert(InRange(aIndex));return iRep[aIndex];}
+template <class T,TInt S>
+inline const T& TFixedArray<T,S>::operator[](TInt aIndex) const
+	{return const_cast<ThisClass&>(*this)[aIndex];}
+template <class T,TInt S>
+inline T& TFixedArray<T,S>::At(TInt aIndex)
+	{verify(InRange(aIndex));return iRep[aIndex];}
+template <class T,TInt S>
+inline const T& TFixedArray<T,S>::At(TInt aIndex) const
+	{return const_cast<ThisClass&>(*this).At(aIndex);}
+template <class T,TInt S>
+inline T* TFixedArray<T,S>::Begin()
+	{return &iRep[0];}
+template <class T,TInt S>
+inline T* TFixedArray<T,S>::End()
+	{return &iRep[S];}
+template <class T,TInt S>
+inline const T* TFixedArray<T,S>::Begin() const
+	{return &iRep[0];}
+template <class T,TInt S>
+inline const T* TFixedArray<T,S>::End() const
+	{return &iRep[S];}
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/e32image/deflate/huffman.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,140 @@
+// Copyright (c) 1998-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// e32tools\petran\Szip\huffman.h
+// 
+//
+
+#ifndef __HUFFMAN_H__
+#define __HUFFMAN_H__
+
+#include <e32std.h>
+
+/** Bit output stream.
+	Good for writing bit streams for packed, compressed or huffman data algorithms.
+
+	This class must be derived from and OverflowL() reimplemented if the bitstream data
+	cannot be generated into a single memory buffer.
+
+	@since 8.0
+	@library euser.lib
+*/
+class TBitOutput
+	{
+public:
+	TBitOutput();
+	TBitOutput(TUint8* aBuf,TInt aSize);
+	inline virtual ~TBitOutput() { } 
+	inline void Set(TUint8* aBuf,TInt aSize);
+	inline const TUint8* Ptr() const;
+	inline TInt BufferedBits() const;
+//
+	void WriteL(TUint aValue, TInt aLength);
+	void HuffmanL(TUint aHuffCode);
+	void PadL(TUint aPadding);
+private:
+	void DoWriteL(TUint aBits, TInt aSize);
+	virtual void OverflowL();
+private:
+	TUint iCode;		// code in production
+	TInt iBits;
+	TUint8* iPtr;
+	TUint8* iEnd;
+	};
+
+/** Set the memory buffer to use for output
+
+	Data will be written to this buffer until it is full, at which point OverflowL() will
+	be called. This should handle the data and then can Set() again to reset the buffer
+	for further output.
+	
+	@param "TUint8* aBuf" The buffer for output
+	@param "TInt aSize" The size of the buffer in bytes
+*/
+inline void TBitOutput::Set(TUint8* aBuf,TInt aSize)
+	{iPtr=aBuf;iEnd=aBuf+aSize;}
+/** Get the current write position in the output buffer
+
+	In conjunction with the address of the buffer, which should be known to the
+	caller, this describes the data in the bitstream.
+*/
+inline const TUint8* TBitOutput::Ptr() const
+	{return iPtr;}
+/** Get the number of bits that are buffered
+
+	This reports the number of bits that have not yet been written into the
+	output buffer. It will always lie in the range 0..7. Use PadL() to
+	pad the data out to the next byte and write it to the buffer.
+*/
+inline TInt TBitOutput::BufferedBits() const
+	{return iBits+8;}
+
+
+/** Bit input stream.
+	Good for reading bit streams for packed, compressed or huffman data algorithms.
+	@since 8.0
+	@library euser.lib
+*/
+class TBitInput
+	{
+public:
+	TBitInput();
+	TBitInput(const TUint8* aPtr, TInt aLength, TInt aOffset=0);
+	void Set(const TUint8* aPtr, TInt aLength, TInt aOffset=0);
+ 	inline virtual ~TBitInput() { } 
+	TUint ReadL();
+	TUint ReadL(TInt aSize);
+	TUint HuffmanL(const TUint32* aTree);
+private:
+	virtual void UnderflowL();
+private:
+	TInt iCount;
+	TUint iBits;
+	TInt iRemain;
+	const TUint32* iPtr;
+	};
+
+/** Huffman code toolkit.
+
+	This class builds a huffman encoding from a frequency table and builds
+	a decoding tree from a code-lengths table
+
+	The encoding generated is based on the rule that given two symbols s1 and s2, with 
+	code length l1 and l2, and huffman codes h1 and h2:
+
+		if l1<l2 then h1<h2 when compared lexicographically
+		if l1==l2 and s1<s2 then h1<h2 ditto
+
+	This allows the encoding to be stored compactly as a table of code lengths
+
+	@since 8.0
+	@library euser.lib
+*/
+class Huffman
+	{
+public:
+	enum {KMaxCodeLength=27};
+	enum {KMetaCodes=KMaxCodeLength+1};
+	enum {KMaxCodes=0x8000};
+public:
+	static void HuffmanL(const TUint32 aFrequency[],TInt aNumCodes,TUint32 aHuffman[]);
+	static void Encoding(const TUint32 aHuffman[],TInt aNumCodes,TUint32 aEncodeTable[]);
+	static void Decoding(const TUint32 aHuffman[],TInt aNumCodes,TUint32 aDecodeTree[],TInt aSymbolBase=0);
+	static TBool IsValid(const TUint32 aHuffman[],TInt aNumCodes);
+//
+	static void ExternalizeL(TBitOutput& aOutput,const TUint32 aHuffman[],TInt aNumCodes);
+	static void InternalizeL(TBitInput& aInput,TUint32 aHuffman[],TInt aNumCodes);
+	};
+
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/e32image/deflate/inflate.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,169 @@
+// Copyright (c) 1998-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// e32tools\petran\Szip\inflate.cpp
+// 
+//
+
+#include "deflate.h"
+#include "panic.h"
+#include "h_utl.h"
+
+// Class RInflater
+//
+// The inflation algorithm, complete with huffman decoding
+
+inline CInflater::CInflater(TBitInput& aInput)
+	:iBits(&aInput),iEncoding(0),iOut(0)
+	{}
+
+void CInflater::ConstructL()
+	{
+	iEncoding=new TEncoding;
+	if(iEncoding==NULL)
+		Panic(EHuffmanOutOfMemory);
+	InitL();
+	iLen=0;
+	iOut=new TUint8[KDeflateMaxDistance];
+	if(iOut==NULL)
+		Panic(EHuffmanOutOfMemory);
+
+	iAvail=iLimit=iOut;
+	}
+
+CInflater* CInflater::NewLC(TBitInput& aInput)
+	{
+	CInflater* self=new CInflater(aInput);
+	if(self==NULL)
+		Panic(EHuffmanOutOfMemory);
+	self->ConstructL();
+	return self;
+	}
+
+CInflater::~CInflater()
+	{
+	delete iEncoding;
+	delete [] iOut;
+	}
+
+TInt CInflater::ReadL(TUint8* aBuffer,TInt aLength)
+	{
+	TInt tfr=0;
+	for (;;)
+		{
+		TInt len=Min(aLength,iLimit-iAvail);
+		if (len && aBuffer)
+			{
+			HMem::Copy(aBuffer,iAvail,len);
+			aBuffer+=len;
+			}
+		aLength-=len;
+		iAvail+=len;
+		tfr+=len;
+		if (aLength==0)
+			return tfr;
+		len=InflateL();
+		if (len==0)
+			return tfr;
+		iAvail=iOut;
+		iLimit=iAvail+len;
+		}
+	}
+
+TInt CInflater::SkipL(TInt aLength)
+	{
+	return ReadL(0,aLength);
+	}
+
+void CInflater::InitL()
+	{
+// read the encoding
+	Huffman::InternalizeL(*iBits,iEncoding->iLitLen,KDeflationCodes);
+// validate the encoding
+	if (!Huffman::IsValid(iEncoding->iLitLen,TEncoding::ELitLens) ||
+		!Huffman::IsValid(iEncoding->iDistance,TEncoding::EDistances))
+		Panic(EHuffmanCorruptFile);
+// convert the length tables into huffman decoding trees
+	Huffman::Decoding(iEncoding->iLitLen,TEncoding::ELitLens,iEncoding->iLitLen);
+	Huffman::Decoding(iEncoding->iDistance,TEncoding::EDistances,iEncoding->iDistance,KDeflateDistCodeBase);
+	}
+
+TInt CInflater::InflateL()
+//
+// consume all data lag in the history buffer, then decode to fill up the output buffer
+// return the number of available bytes in the output buffer. This is only ever less than
+// the buffer size if the end of stream marker has been read
+//
+	{
+// empty the history buffer into the output
+	TUint8* out=iOut;
+	TUint8* const end=out+KDeflateMaxDistance;
+	const TUint32* tree=iEncoding->iLitLen;
+	if (iLen<0)	// EOF
+		return 0;
+	if (iLen>0)
+		goto useHistory;
+//
+	while (out<end)
+		{
+		// get a huffman code
+		{
+		TInt val=iBits->HuffmanL(tree)-TEncoding::ELiterals;
+		if (val<0)
+			{
+			*out++=TUint8(val);
+			continue;			// another literal/length combo
+			}
+		if (val==TEncoding::EEos-TEncoding::ELiterals)
+			{	// eos marker. we're done
+			iLen=-1;
+			break;
+			}
+		// get the extra bits for the code
+		TInt code=val&0xff;
+		if (code>=8)
+			{	// xtra bits
+			TInt xtra=(code>>2)-1;
+			code-=xtra<<2;
+			code<<=xtra;
+			code|=iBits->ReadL(xtra);
+			}
+		if (val<KDeflateDistCodeBase-TEncoding::ELiterals)
+			{	// length code... get the code
+			iLen=code+KDeflateMinLength;
+			tree=iEncoding->iDistance;
+			continue;			// read the huffman code
+			}
+		// distance code
+		iRptr=out-(code+1);
+		if (iRptr+KDeflateMaxDistance<end)
+			iRptr+=KDeflateMaxDistance;
+		}
+useHistory:
+		TInt tfr=Min(end-out,iLen);
+		iLen-=tfr;
+		const TUint8* from=iRptr;
+		do
+			{
+			*out++=*from++;
+			if (from==end)
+				from-=KDeflateMaxDistance;
+			} while (--tfr!=0);
+		iRptr=from;
+		tree=iEncoding->iLitLen;
+		};
+	return out-iOut;
+	}
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/e32image/deflate/panic.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,36 @@
+// Copyright (c) 1998-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// e32tools\petran\Szip\panic.cpp
+// 
+//
+
+#include "panic.h"
+#include "h_utl.h"
+#include <stdlib.h>
+
+char* HuffmanError[]=	{
+						"Huffman: Too many codes\n",
+						"Huffman: Invalid coding\n",
+						"Huffman: Buffer overflow\n",
+						"Huffman: Out Of Memory\n",
+						"Huffman: Corrupt File\n",
+						};
+
+const TInt KHuffmanErrorBase=700;
+
+void Panic(TPanic aPanic)
+	{
+  	Print(ESevereError,HuffmanError[TInt(aPanic)]);
+	exit(KHuffmanErrorBase+TInt(aPanic));
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/e32image/deflate/panic.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,36 @@
+// Copyright (c) 1998-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// e32tools\petran\Szip\panic.h
+// 
+//
+
+#ifndef __PANIC_H__
+#define __PANIC_H__
+
+#include <e32std.h>
+
+enum TPanic
+	{
+	EHuffmanTooManyCodes=0,
+	EHuffmanInvalidCoding=1,
+	EHuffmanBufferOverflow=2,
+	EHuffmanOutOfMemory=3,
+	EHuffmanCorruptFile=4,
+
+	};
+
+void Panic(TPanic aPanic);
+
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/e32image/e32image.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,871 @@
+// Copyright (c) 1996-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// e32tools/e32image/e32image.cpp
+// Basic operations on E32Image files which are used by ROMBUILD.
+// These are independent of the original file format from which the
+// E32Image file was derived.
+// 
+//
+
+#include <time.h>
+#include <malloc.h>
+#include <string.h>
+#include <stdlib.h>
+#include "h_utl.h"
+
+
+#if defined (__MSVCDOTNET__) || defined(__TOOLS2__)
+#include <fstream>
+#else //!__MSVCDOTNET__
+#include <fstream.h>
+#endif //__MSVCDOTNET__
+
+#include <assert.h>
+#ifndef __LINUX__
+  #include <io.h>
+#endif
+#include "h_ver.h"
+
+// get E32ImageHeader class...
+#define INCLUDE_E32IMAGEHEADER_IMPLEMENTATION
+#define RETURN_FAILURE(_r) return (fprintf(stderr, "line %d\n", __LINE__),_r)
+//#define E32IMAGEHEADER_TRACE(_t) printf _t
+#include "e32image.h"
+
+void DeflateCompress(char* bytes, TInt size, ostream& os);
+void InflateUnCompress(unsigned char* source, int sourcesize, unsigned char* dest, int destsize);
+void CompressPages(TUint8 * bytes, TInt size, ostream &os, CBytePair *aBPE);
+int  DecompressPages(TUint8 * bytes, istream& is, CBytePair *aBPE);
+
+// needed by E32ImageHeaderV::ValidateHeader...
+void Mem::Crc32(TUint32& aCrc, const TAny* aPtr, TInt aLength)
+	{
+	HMem::Crc32(aCrc, aPtr, aLength);
+	}
+
+//
+// E32 Image files
+//
+E32ImageFile::E32ImageFile(CBytePair *aBPE)
+	: iData(NULL), iSize(0), iOrigHdr(NULL), iHdr(NULL), iFileName(NULL)
+#ifndef __LINUX__
+	  , iWideFileName(NULL)
+#endif
+, iError(0), iSource(EE32Image), iOrigHdrOffsetAdj(0), iExportBitMap(0), iBPE(aBPE)
+	{
+            if(aBPE == NULL) { 
+                iOwnBPE = 1;
+                iBPE = new CBytePair(EFalse);
+            }
+            else {
+                iOwnBPE = 0;
+                iBPE = aBPE;
+            }
+        }
+
+E32ImageFile::~E32ImageFile()
+	{
+            if(iOwnBPE == 1) {
+                delete iBPE;
+            }
+
+	free(iData);
+	delete [] iFileName;
+#ifndef __LINUX__
+	delete [] iWideFileName;
+#endif
+	if (iHdr && iHdr != iOrigHdr)
+		delete iHdr;
+	free(iExportBitMap);
+	}
+
+// dummy implementation
+TBool E32ImageFile::Translate(const char*, TUint, TBool, TBool)
+	{
+	return EFalse;
+	}
+
+Int64 timeToInt64(TInt aTime)
+	{
+	aTime-=(30*365*24*60*60+7*24*60*60);	// seconds since midnight Jan 1st, 2000
+	Int64 daysTo2000AD=730497;
+	Int64 t=daysTo2000AD*24*3600+aTime;	// seconds since 0000
+	t=t+3600;								// BST (?)
+	return t*1000000;						// milliseconds
+	}
+
+class TE32ImageUids : public TCheckedUid
+	{
+public:
+	TE32ImageUids(TUint32 aUid1, TUint32 aUid2, TUint32 aUid3) : TCheckedUid(TUidType(TUid::Uid(aUid1), TUid::Uid(aUid2), TUid::Uid(aUid3))) {}
+	TUint Check() { return TCheckedUid::Check(); }
+	};
+
+void E32ImageFile::SetDefaultHeader()
+	{
+	iHdr = (E32ImageHeaderV*)iOrigHdr;
+	iHdr->iUid1 = 0;
+	iHdr->iUid2 = 0;
+	iHdr->iUid3 = 0;
+	iHdr->iHeaderCrc = 0;
+	iHdr->iSignature = 0x434f5045u;
+	iHdr->iModuleVersion = 0x00010000u;
+	iHdr->iCompressionType = 0;
+	iHdr->iToolsVersion = TVersion(MajorVersion, MinorVersion, Build);
+	Int64 time1(timeToInt64(time(0))); 
+	iHdr->iTimeLo=(TUint32)time1;
+	iHdr->iTimeHi=(TUint32)(time1>>32);
+	iHdr->iFlags = KImageHdrFmt_V;
+	iHdr->iCodeSize = 0;
+	iHdr->iDataSize = 0;
+	iHdr->iHeapSizeMin = 0;
+	iHdr->iHeapSizeMax = 0;
+	iHdr->iStackSize = 0;
+	iHdr->iBssSize = 0;
+	iHdr->iEntryPoint = 0;
+	iHdr->iCodeBase = 0;
+	iHdr->iDataBase = 0;
+	iHdr->iDllRefTableCount = 0;
+	iHdr->iExportDirOffset = 0;
+	iHdr->iExportDirCount = 0;
+	iHdr->iTextSize = 0;
+	iHdr->iCodeOffset = 0;
+	iHdr->iDataOffset = 0;
+	iHdr->iImportOffset = 0;
+	iHdr->iCodeRelocOffset = 0;
+	iHdr->iDataRelocOffset = 0;
+	iHdr->iProcessPriority = (TUint16)EPriorityForeground;
+	iHdr->iUncompressedSize = 0;
+	iHdr->iS.iSecureId = 0;
+	iHdr->iS.iVendorId = 0;
+	iHdr->iExceptionDescriptor = 0;
+	iHdr->iSpare2 = 0;
+
+	iHdr->iExportDescSize = 0;
+	iHdr->iExportDescType = KImageHdr_ExpD_NoHoles;
+	iHdr->iExportDesc[0] = 0;
+	}
+
+void E32ImageFile::SetCallEntryPoints(TInt aBool)
+	{
+
+	if (aBool)
+		iHdr->iFlags&=~KImageNoCallEntryPoint;
+	else
+		iHdr->iFlags|=KImageNoCallEntryPoint;
+	}
+
+void E32ImageFile::SetFixedAddress(TInt aBool)
+	{
+
+	if (aBool)
+		iHdr->iFlags|=KImageFixedAddressExe;
+	else
+		iHdr->iFlags&=~KImageFixedAddressExe;
+	}
+
+void E32ImageFile::SetPriority(TProcessPriority aPri)
+	{
+
+	iHdr->iProcessPriority = (TUint16)aPri;
+	}
+
+void E32ImageFile::SetCapability(SCapabilitySet& aCapabilities)
+	{
+	iHdr->iS.iCaps = aCapabilities;
+	}
+
+void E32ImageFile::SetFPU(unsigned int aFPU)
+	{
+	iHdr->iFlags &=~ KImageHWFloatMask;
+
+	if (aFPU == 1)
+		iHdr->iFlags |= KImageHWFloat_VFPv2;
+	}
+
+void E32ImageFile::Adjust(TInt aSize, TBool aAllowShrink)
+//
+// Adjust the size of allocated data and fix the member data
+//
+	{
+
+	TInt asize = ALIGN4(aSize);
+	if (asize == iSize)
+		return;
+	if (iSize == 0)
+		{
+		iSize = asize;
+		iData = (char*)malloc(iSize);
+		memset(iData, 0, iSize);
+		}
+	else if (aAllowShrink || asize > iSize)
+		{
+		TInt oldsize = iSize;
+		iSize = asize;
+		iData = (char*)realloc(iData, iSize);
+		if (iSize > oldsize)
+			memset(iData+oldsize, 0, iSize-oldsize);
+		}
+	if (!iData)
+		iSize = 0;
+	if (iHdr && iHdr == iOrigHdr)
+		iHdr = (E32ImageHeaderV*)iData;
+	iOrigHdr = (E32ImageHeader*)iData;
+	}
+
+TInt E32ImageFile::ReadHeader(ifstream& is)
+	{
+	Adjust(sizeof(E32ImageHeader), EFalse);
+	is.read(iData, sizeof(E32ImageHeader));
+	TInt hdrsz = iOrigHdr->TotalSize();
+	if (hdrsz > 0x10000 || hdrsz <= 0)
+		return KErrCorrupt;	// sanity check
+	if (hdrsz > (TInt)sizeof(E32ImageHeader))
+		{
+		Adjust(hdrsz, EFalse);
+		is.read(iData+sizeof(E32ImageHeader), hdrsz-sizeof(E32ImageHeader));
+		}
+	TUint32 uncompressedSize;
+	TInt r = iOrigHdr->ValidateHeader(iFileSize,uncompressedSize);
+	if (r != KErrNone)
+		{
+		fprintf(stderr, "Integrity check failed %d\n", r);
+		return r;
+		}
+	iHdr = (E32ImageHeaderV*)iOrigHdr;
+	return KErrNone;
+	}
+
+void E32ImageFile::SetStackSize(TInt aSize)
+	{
+	iHdr->iStackSize=aSize;
+	}
+
+void E32ImageFile::SetHeapSizeMin(TInt aSize)
+	{
+	iHdr->iHeapSizeMin=aSize;
+	}
+
+void E32ImageFile::SetHeapSizeMax(TInt aSize)
+	{
+	iHdr->iHeapSizeMax=aSize;
+	}
+
+TUint E32ImageFile::TextOffset()
+//
+// Return the offset of the text section
+//
+	{
+	return 0;
+	}
+
+TUint E32ImageFile::DataOffset()
+//
+// return the offset of the initialised data
+//
+	{
+	return iHdr->iCodeSize;
+	}
+
+TUint E32ImageFile::BssOffset()
+//
+// return the offset from the start of code where the bss is linked
+//
+	{
+	return DataOffset()+iHdr->iDataSize;
+	}
+
+
+TInt E32ImageFile::IsDll()
+//
+//
+//
+	{
+	return iHdr->iFlags&KImageDll;
+	}
+
+
+void E32ImageFile::RelocateSection(char* aPtr, char* aRelocs, TUint aCodeDelta, TUint aDataDelta, char* aImagePtr, TLinAddr** aIATRefs, TBool keepIAT)
+//
+// Relocates the section data at aPtr
+//	
+	{
+
+	TUint codeStart=iHdr->iCodeBase;
+	TUint codeFinish=codeStart+iHdr->iCodeSize;
+	TUint iatStart = aIATRefs ? codeStart+iHdr->iTextSize : 0;
+	TUint iatFinish = aIATRefs ? iatStart+NumberOfImports()*sizeof(TUint) : 0;
+	char* relocs=aRelocs;
+	TUint page=0;
+	TInt size=0;
+	TInt i=((E32RelocSection *)relocs)->iNumberOfRelocs;
+	relocs+=sizeof(E32RelocSection);
+	while (i>0)
+		{
+		if (size>0)
+			{
+			TUint offset=*(TUint16 *)relocs;
+			relocs+=2;
+			if (offset!=0)
+				{ // its a reloc
+				TUint va=page+(offset&0x0fff);
+				TUint relocType=offset&0xf000;
+				TUint *dataptr=(TUint *)(aPtr+va);
+				assert((char *)dataptr < aRelocs);
+				TUint data=*dataptr;
+				if (relocType == KTextRelocType) 
+					*dataptr=data+aCodeDelta; // points to text/rdata section
+				else if (relocType == KDataRelocType)
+					*dataptr=data+aDataDelta;
+				else 
+					{
+					if (relocType != KInferredRelocType)
+						Print(EError,"Unrecognized relocation type %x\n",relocType);
+
+					if (data>=iatStart && data<iatFinish)
+						{
+
+						TUint iatNum = (data-iatStart)/sizeof(TLinAddr);
+
+						// If "keepIAT" is used then the importing instruction must import through the IAT entry,
+						// but otherwise we change the IAT entry to point to the bit of code doing the importing
+						// and do the real fix-up later on in TRomBuilderEntry::FixupImports.
+						// NB: We always want to do this for X86 or data exports dont work.
+						if (keepIAT || (iHdr->iCpuIdentifier & 0x1000) /*denotes X86*/) 
+							*dataptr=data+aCodeDelta; 
+						else 
+							{
+							if ((TUint)aIATRefs[iatNum]>65535)
+								Print(EWarning, "Multiple relocations for IAT entry %d (0x%x, 0x%x)\n",
+										iatNum, aIATRefs[iatNum], dataptr);
+							else
+								aIATRefs[iatNum] = (TLinAddr*)(aImagePtr+va);	// ROM image address of importing pointer					
+							}
+						}
+					else if (data>=codeStart && data<codeFinish)
+						*dataptr=data+aCodeDelta; // points to text/rdata section
+					else
+						*dataptr=data+aDataDelta; // points to data section
+					}
+				--i;
+				}
+			size-=2;
+			}
+		else
+			{ // next page of relocs
+			page=*(TUint *)relocs;
+			relocs+=4;
+			size=*(TUint *)relocs;
+			relocs+=4;
+			size-=8;
+			}
+		}
+	}
+
+void E32ImageFile::SetUids(TUid aUid1, TUid aUid2, TUid aUid3)
+	{
+	iHdr->iUid1=aUid1.iUid;
+	iHdr->iUid2=aUid2.iUid;
+	iHdr->iUid3=aUid3.iUid;
+	}
+
+void E32ImageFile::SetSecureId(TUint32 aId)
+	{
+	((E32ImageHeaderV*)iHdr)->iS.iSecureId = aId;
+	}
+
+void E32ImageFile::SetVendorId(TUint32 aId)
+	{
+	((E32ImageHeaderV*)iHdr)->iS.iVendorId = aId;
+	}
+
+void E32ImageFile::UpdateHeaderCrc()
+	{
+	TE32ImageUids u(iHdr->iUid1, iHdr->iUid2, iHdr->iUid3);
+	iHdr->iUidChecksum = u.Check();
+	TInt hdrsz = iHdr->TotalSize();
+	TInt orighdrsz = iOrigHdr->TotalSize();
+	iHdr->iUncompressedSize = iSize - orighdrsz;
+	iHdr->iHeaderCrc = KImageCrcInitialiser;
+	TUint32 crc = 0;
+	HMem::Crc32(crc, iHdr, hdrsz);
+	iHdr->iHeaderCrc = crc;
+	}
+
+TInt E32ImageFile::NumberOfImports()
+//
+// Return the number of imports made by this image
+//
+	{
+
+	if (iHdr->iDllRefTableCount==0 || iHdr->iImportOffset==0)
+		return 0;
+
+	TUint impfmt = iHdr->ImportFormat();
+	const E32ImportSection* isection = (const E32ImportSection*)(iData + iOrigHdr->iImportOffset);
+	TInt d;
+	TInt nImports = 0;
+	const E32ImportBlock* b = (const E32ImportBlock*)(isection+1);
+	for (d=0; d<iHdr->iDllRefTableCount; d++)
+		{
+		nImports += b->iNumberOfImports;
+		b = b->NextBlock(impfmt);
+		}
+
+	if (impfmt==KImageImpFmt_PE || impfmt==KImageImpFmt_PE2)
+		{
+		TUint *imports=(TUint *)(iData + iOrigHdr->iCodeOffset + iHdr->iTextSize);
+		TInt i=0;
+		while (*imports++)
+			i++;
+		assert(i==nImports);
+		}
+	
+	return nImports;
+	}
+
+// Work out which exports are missing from the export directory
+void E32ImageFile::CreateExportBitMap()
+	{
+	TInt nexp = iOrigHdr->iExportDirCount;
+	TInt memsz = (nexp + 7) >> 3;
+	iExportBitMap = (TUint8*)malloc(memsz);
+	memset(iExportBitMap, 0xff, memsz);
+	TUint* exports = (TUint*)(iData + iOrigHdr->iExportDirOffset);
+	TUint absoluteEntryPoint = iOrigHdr->iEntryPoint + iOrigHdr->iCodeBase;
+	TUint impfmt = iOrigHdr->ImportFormat();
+	TUint hdrfmt = iOrigHdr->HeaderFormat();
+	TUint absentVal = (impfmt == KImageImpFmt_ELF) ? absoluteEntryPoint : iOrigHdr->iEntryPoint;
+	TInt i;
+	iMissingExports = 0;
+	for (i=0; i<nexp; ++i)
+		{
+		if (exports[i] == absentVal)
+			{
+			iExportBitMap[i>>3] &= ~(1u << (i & 7));
+			++iMissingExports;
+			}
+		}
+	if (hdrfmt < KImageHdrFmt_V && iMissingExports)
+		{
+		fprintf(stderr, "Bad exports\n");
+		exit(999);
+		}
+	}
+
+// Append an export description to the E32ImageHeader if necessary
+void E32ImageFile::AddExportDescription()
+	{
+	if (iMissingExports == 0)
+		return;	// nothing to do
+	TInt nexp = iOrigHdr->iExportDirCount;
+	TInt memsz = (nexp + 7) >> 3;	// size of complete bitmap
+	TInt mbs = (memsz + 7) >> 3;	// size of meta-bitmap
+	TInt nbytes = 0;
+	TInt i;
+	for (i=0; i<memsz; ++i)
+		if (iExportBitMap[i] != 0xff)
+			++nbytes;				// number of groups of 8
+	TUint8 edt = KImageHdr_ExpD_FullBitmap;
+	TInt extra_space = memsz - 1;
+	if (mbs + nbytes < memsz)
+		{
+		edt = KImageHdr_ExpD_SparseBitmap8;
+		extra_space = mbs + nbytes - 1;
+		}
+	extra_space = (extra_space + sizeof(TUint) - 1) &~ (sizeof(TUint) - 1);
+	TInt hdrsz = sizeof(E32ImageHeaderV) + extra_space;
+	iHdr = (E32ImageHeaderV*)malloc(hdrsz);
+	memcpy(iHdr, iOrigHdr, sizeof(E32ImageHeaderV));
+	iHdr->iExportDescType = edt;
+	if (edt == KImageHdr_ExpD_FullBitmap)
+		{
+		iHdr->iExportDescSize = (TUint16)memsz;
+		memcpy(iHdr->iExportDesc, iExportBitMap, memsz);
+		}
+	else
+		{
+		iHdr->iExportDescSize = (TUint16)(mbs + nbytes);
+		memset(iHdr->iExportDesc, 0, extra_space + 1);
+		TUint8* mptr = iHdr->iExportDesc;
+		TUint8* gptr = mptr + mbs;
+		for (i=0; i<memsz; ++i)
+			{
+			if (iExportBitMap[i] != 0xff)
+				{
+				mptr[i>>3] |= (1u << (i&7));
+				*gptr++ = iExportBitMap[i];
+				}
+			}
+		}
+	iHdr->iCodeOffset += extra_space;
+	if (iHdr->iDataOffset)
+		iHdr->iDataOffset += extra_space;
+	if (iHdr->iCodeRelocOffset)
+		iHdr->iCodeRelocOffset += extra_space;
+	if (iHdr->iDataRelocOffset)
+		iHdr->iDataRelocOffset += extra_space;
+	if (iHdr->iImportOffset)
+		iHdr->iImportOffset += extra_space;
+	if (iHdr->iExportDirOffset)
+		iHdr->iExportDirOffset += extra_space;
+	}
+
+// Check the export description is consistent with the export directory
+TInt E32ImageFile::CheckExportDescription()
+	{
+	TUint hdrfmt = iOrigHdr->HeaderFormat();
+	if (hdrfmt < KImageHdrFmt_V && iMissingExports)
+		return KErrCorrupt;
+	if (iHdr->iExportDescType == KImageHdr_ExpD_NoHoles)
+		{
+		return iMissingExports ? KErrCorrupt : KErrNone;
+		}
+	TInt nexp = iOrigHdr->iExportDirCount;
+	TInt memsz = (nexp + 7) >> 3;	// size of complete bitmap
+	TInt mbs = (memsz + 7) >> 3;	// size of meta-bitmap
+	TInt eds = iHdr->iExportDescSize;
+	if (iHdr->iExportDescType == KImageHdr_ExpD_FullBitmap)
+		{
+		if (eds != memsz)
+			return KErrCorrupt;
+		if (memcmp(iHdr->iExportDesc, iExportBitMap, eds) == 0)
+			return KErrNone;
+		return KErrCorrupt;
+		}
+	if (iHdr->iExportDescType != KImageHdr_ExpD_SparseBitmap8)
+		return KErrNotSupported;
+	TInt nbytes = 0;
+	TInt i;
+	for (i=0; i<memsz; ++i)
+		if (iExportBitMap[i] != 0xff)
+			++nbytes;				// number of groups of 8
+	TInt exp_extra = mbs + nbytes;
+	if (eds != exp_extra)
+		return KErrCorrupt;
+	const TUint8* mptr = iHdr->iExportDesc;
+	const TUint8* gptr = mptr + mbs;
+	for (i=0; i<memsz; ++i)
+		{
+		TUint mbit = mptr[i>>3] & (1u << (i&7));
+		if (iExportBitMap[i] != 0xff)
+			{
+			if (!mbit || *gptr++ != iExportBitMap[i])
+				return KErrCorrupt;
+			}
+		else if (mbit)
+			return KErrCorrupt;
+		}
+	return KErrNone;
+	}
+
+
+TInt E32ImageFile::Validate()
+	{
+	TInt orighdrsz = iOrigHdr->TotalSize();
+	TInt r = iHdr->ValidateWholeImage(iData+orighdrsz,iSize-orighdrsz);
+	if(r!=KErrNone)
+		return r;
+	return r;
+	}
+
+
+ostream& operator<<(ostream& os, const E32ImageFile& aImage)
+//
+// Output an E32ImageFile
+//
+	{
+	E32ImageHeaderV* h = aImage.iHdr;
+	TUint hdrfmt = h->HeaderFormat();
+	if (hdrfmt != KImageHdrFmt_V)
+		return os;	// don't generate old binary formats
+	TInt hdrsz = h->TotalSize();
+	TInt orighdrsz = aImage.iOrigHdr->TotalSize();
+
+	os.write((const char*)aImage.iHdr, hdrsz);
+
+	TUint compression = h->CompressionType();
+	if (compression == KUidCompressionDeflate)
+		{
+		int srcsize = aImage.iSize - orighdrsz;
+		DeflateCompress(aImage.iData + orighdrsz, srcsize, os);
+		}
+	else if (compression == KUidCompressionBytePair)
+		{
+		// Compress and write out code part
+		int srcStart = orighdrsz;
+		CompressPages( (TUint8*)aImage.iData + srcStart, aImage.iOrigHdr->iCodeSize, os, aImage.iBPE);
+		
+		
+		// Compress and write out data part
+		srcStart += aImage.iOrigHdr->iCodeSize;
+		int srcLen = aImage.iSize - srcStart;
+
+		CompressPages((TUint8*)aImage.iData + srcStart, srcLen, os, aImage.iBPE);		
+
+		}
+	else if (compression == KFormatNotCompressed)
+		{
+		int srcsize = aImage.iSize - orighdrsz;
+		os.write(aImage.iData + orighdrsz, srcsize); // image not to be compressed
+		}
+	return os;
+	}
+
+ifstream& operator>>(ifstream& is, E32ImageFile& aImage)
+//
+// Input an E32ImageFile
+//
+	{
+	aImage.iError = aImage.ReadHeader(is);
+	if (aImage.iError != KErrNone)
+		return is;
+	E32ImageHeader* oh = aImage.iOrigHdr;
+	TInt orighdrsz = oh->TotalSize();
+	int remainder = aImage.iSize - orighdrsz;
+	TUint compression = oh->CompressionType();
+	if (compression == 0)
+		{
+		is.read(aImage.iData + orighdrsz, remainder);
+		}
+	else if (compression == KUidCompressionDeflate)
+		{ //Uncompress
+		aImage.iError = KErrNoMemory;
+		unsigned int uncompsize = ((E32ImageHeaderComp*)aImage.iOrigHdr)->iUncompressedSize;
+		aImage.Adjust(uncompsize + orighdrsz);
+		if (aImage.iData==NULL)
+			return is;
+		oh = aImage.iOrigHdr;
+		unsigned char* compressedData = new unsigned char[remainder];
+		if (compressedData==NULL)
+			return is;
+		is.read(reinterpret_cast<char *>(compressedData), remainder);
+		unsigned int destsize = uncompsize;
+		InflateUnCompress( compressedData, remainder, (unsigned char*)(aImage.iData + orighdrsz), destsize);
+		if (destsize != uncompsize)
+			Print(EWarning, "Inconsistent sizes discovered during uncompression.\n");
+		delete [] compressedData;
+		if ((TUint)orighdrsz > oh->iCodeOffset)
+			{
+			// need to adjust code offsets in original
+			aImage.iOrigHdrOffsetAdj = (TUint)orighdrsz - oh->iCodeOffset;
+			aImage.OffsetAdjust(oh->iCodeOffset);
+			aImage.OffsetAdjust(oh->iDataOffset);
+			aImage.OffsetAdjust(oh->iCodeRelocOffset);
+			aImage.OffsetAdjust(oh->iDataRelocOffset);
+			aImage.OffsetAdjust(oh->iImportOffset);
+			aImage.OffsetAdjust(oh->iExportDirOffset);
+			}
+		aImage.iError = KErrNone;
+		}
+	else if(compression == KUidCompressionBytePair)
+	{ // Uncompress
+		aImage.iError = KErrNoMemory;
+		unsigned int uncompsize = ((E32ImageHeaderComp*)aImage.iOrigHdr)->iUncompressedSize;
+		aImage.Adjust(uncompsize + orighdrsz);
+		if (aImage.iData==NULL)
+			return is;
+		oh = aImage.iOrigHdr;
+
+		// Read and decompress code part of the image
+
+		unsigned int uncompressedCodeSize = DecompressPages((TUint8 *) (aImage.iData + orighdrsz), is, aImage.iBPE);
+
+		
+		// Read and decompress data part of the image
+
+		unsigned int uncompressedDataSize = DecompressPages((TUint8 *) (aImage.iData + orighdrsz + uncompressedCodeSize), is, aImage.iBPE);
+
+		if (uncompressedCodeSize + uncompressedDataSize != uncompsize)
+			Print(EWarning, "Inconsistent sizes discovered during uncompression.\n");
+
+		if ((TUint)orighdrsz > oh->iCodeOffset)
+			{
+			// need to adjust code offsets in original
+			aImage.iOrigHdrOffsetAdj = (TUint)orighdrsz - oh->iCodeOffset;
+			aImage.OffsetAdjust(oh->iCodeOffset);
+			aImage.OffsetAdjust(oh->iDataOffset);
+			aImage.OffsetAdjust(oh->iCodeRelocOffset);
+			aImage.OffsetAdjust(oh->iDataRelocOffset);
+			aImage.OffsetAdjust(oh->iImportOffset);
+			aImage.OffsetAdjust(oh->iExportDirOffset);
+			}
+		aImage.iError = KErrNone;
+	}
+	aImage.CreateExportBitMap();
+	return is;
+	}
+
+TInt E32ImageFile::IsE32ImageFile(char *aFileName)
+	{
+
+#ifdef __LINUX__
+	E32ImageFile f;
+	struct stat buf;
+	if (stat(aFileName, &buf) < 0) 
+		{
+		return FALSE;
+		}
+	f.iFileSize = buf.st_size;
+#else
+	_finddata_t fileinfo;
+	int ret=_findfirst((char *)aFileName,&fileinfo);
+	if (ret==-1) 
+		return FALSE;
+	E32ImageFile f;
+	f.iFileSize = fileinfo.size;
+#endif
+	ifstream ifile(aFileName, ios::in | ios::binary);
+	if(!ifile.is_open())
+		return FALSE;
+	TInt r = f.ReadHeader(ifile);
+	ifile.close();
+	return (r == KErrNone);
+	}
+
+TInt E32ImageFile::IsValid()
+	{
+	return (iError == KErrNone);
+	}
+
+TInt E32ImageFile::Open(const char* aFileName)
+//
+// Open an E32 Image file
+//
+	{
+#ifdef __LINUX__
+	struct stat buf;
+	if (stat(aFileName, &buf) < 0) 
+		{
+		Print(EError,"Cannot open %s for input.\n",aFileName);
+		return 1;
+		}
+	iFileSize = buf.st_size;
+#else
+	_finddata_t fileinfo;
+	int ret=_findfirst((char *)aFileName,&fileinfo);
+	if (ret==-1) 
+		{
+		Print(EError,"Cannot open %s for input.\n",aFileName);
+		return 1;
+		}
+	iFileSize = fileinfo.size;
+#endif
+	Adjust(iFileSize);
+	ifstream ifile((char *)aFileName, ios::in | ios::binary);
+	if(!ifile.is_open())
+		{
+		Print(EError,"Cannot open %s for input.\n",aFileName);
+		return 1;
+		}
+	ifile >> *this;
+	ifile.close();
+	if (iError != KErrNone)
+		return iError;
+	iFileName=strdup((char *)aFileName);
+	if (iFileName==NULL)
+		return KErrNoMemory;
+	return KErrNone;
+	}
+
+#ifndef __LINUX__
+TInt E32ImageFile::Open(const wchar_t* aFileName)
+//
+// Open an E32 Image file
+//
+	{
+	_wfinddata_t fileinfo;
+	int ret=_wfindfirst(aFileName,&fileinfo);
+	if (ret==-1) 
+		{
+		Print(EError,"Cannot open %ls for input.\n",aFileName);
+		return 1;
+		}
+	iFileSize = fileinfo.size;
+	Adjust(iFileSize);
+
+	FILE* file = _wfopen(aFileName, L"rb");
+
+	if(!file)
+		{
+		Print(EError,"Cannot open %ls for input.\n",aFileName);
+		return 1;
+		}
+	
+	#if defined(__TOOLS2__) || defined(__MSVCDOTNET__)
+	char tmp[100];  				// Convert wide character name to char *, then open a file.
+	wcstombs(tmp,aFileName,100);
+	ifstream ifile(tmp, ios::in | ios::binary);
+	#else
+	ifstream ifile(fileno(file));
+	#endif
+	
+	if(!ifile.is_open())
+		{
+		Print(EError,"Cannot open %ls for input,\n",aFileName);
+		return 1;
+		}
+		
+	ifile >> *this;
+	ifile.close();
+	fclose(file);
+	if (iError != KErrNone)
+		return iError;
+	iWideFileName=wcsdup(aFileName);
+	if (iWideFileName==NULL)
+		return KErrNoMemory;
+	return KErrNone;
+	}
+#endif
+
+TUint E32ImageFile::VaOfOrdinal(TUint aOrdinal)
+// return the offset of the exported symbol
+	{
+	TUint* exportdir = (TUint*)(iData + iOrigHdr->iExportDirOffset);
+	return exportdir[aOrdinal-KOrdinalBase];
+	}
+
+// Determine the type of entry point in this module and set the flags
+// in the E32Image header accordingly.
+TInt E32ImageFile::DetermineEntryPointType()
+	{
+	TUint cpu = iHdr->CpuIdentifier();
+	if (cpu != ECpuArmV4 && cpu != ECpuArmV5)
+		return KErrNone;	// if not ARM, leave EPT as 0
+	TUint epOffset = iHdr->iEntryPoint;
+	if (epOffset & 3)
+		return KErrNone;	// if entry point not 4 byte aligned, must be old style
+	TUint fileOffset = epOffset + iHdr->iCodeOffset;
+	if (fileOffset+4 > (TUint)iSize)
+		return KErrCorrupt;	// entry point is past the end of the file??
+	TInt ept = 0;			// old style if first instruction not recognised
+	unsigned char* p = (unsigned char*)iData + fileOffset + 4;
+	TUint32 x = *--p;
+	x<<=8;
+	x|=*--p;
+	x<<=8;
+	x|=*--p;
+	x<<=8;
+	x|=*--p;
+	if ((x & 0xffffff00) == 0xe31f0000)
+		{
+		// starts with tst pc, #n - new entry point
+		ept = (x & 0xff) + 1;
+		}
+	if (ept>7)
+		return KErrNotSupported;
+	iHdr->iFlags |= (ept<<KImageEptShift);
+	return KErrNone;
+	}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/e32image/imgdump.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,512 @@
+// Copyright (c) 1996-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// e32tools/e32image/imgdump.cpp
+// 
+//
+
+#define __REFERENCE_CAPABILITY_NAMES__
+
+#include "e32image.h"
+#include "h_utl.h"
+#include <string.h>
+
+void PriorityToStr(TProcessPriority aPri, char *aStr)
+	{
+
+	if (aPri==EPrioritySupervisor)
+		strcpy(aStr,"Supervisor");
+
+	else if (aPri>EPriorityRealTimeServer)
+		sprintf(aStr, "RealTime+%d", aPri-EPriorityRealTimeServer);
+	else if (aPri==EPriorityRealTimeServer)
+		strcpy(aStr,"RealTime");
+
+	else if (aPri>EPriorityFileServer)
+		sprintf(aStr, "FileServer+%d", aPri-EPriorityFileServer);
+	else if (aPri==EPriorityFileServer)
+		strcpy(aStr,"FileServer");
+
+	else if (aPri>EPriorityWindowServer)
+		sprintf(aStr, "WindowServer+%d", aPri-EPriorityWindowServer);
+	else if (aPri==EPriorityWindowServer)
+		strcpy(aStr,"WindowServer");
+
+	else if (aPri>EPriorityHigh)
+		sprintf(aStr, "High+%d", aPri-EPriorityHigh);
+	else if (aPri==EPriorityHigh)
+		strcpy(aStr,"High");
+
+	else if (aPri>EPriorityForeground)
+		sprintf(aStr, "Foreground+%d", aPri-EPriorityForeground);
+	else if (aPri==EPriorityForeground)
+		strcpy(aStr,"Foreground");
+
+	else if (aPri>EPriorityBackground)
+		sprintf(aStr, "Background+%d", aPri-EPriorityBackground);
+	else if (aPri==EPriorityBackground)
+		strcpy(aStr,"Background");
+
+	else if (aPri>EPriorityLow)
+		sprintf(aStr, "Low+%d", aPri-EPriorityLow);
+	else if (aPri==EPriorityLow)
+		strcpy(aStr,"Low");
+
+	else
+		sprintf(aStr, "Illegal (%d)", aPri);
+	}
+
+void nl()
+	{
+	Print(EAlways, "\n");
+	}
+
+void E32ImageFile::Dump(TText *aFileName,TInt aDumpFlags)
+	{
+	if (IsValid())
+		{
+		Print(EAlways, "E32ImageFile '%s'\n", aFileName);
+		DumpHeader(aDumpFlags);
+		DumpData(aDumpFlags);
+		}
+	else
+		Print(EAlways, "This is not an E32 image file (error %d).\n", iError);
+	}
+
+void E32ImageFile::DumpHeader(TInt aDumpFlags)
+	{
+	TUint flags = iOrigHdr->iFlags;
+	TUint abi = E32ImageHeader::ABIFromFlags(flags);
+	TUint hdrfmt = E32ImageHeader::HdrFmtFromFlags(flags);
+	TUint impfmt = E32ImageHeader::ImpFmtFromFlags(flags);
+	TUint ept = E32ImageHeader::EptFromFlags(flags);
+	TBool isARM = EFalse;
+
+	if(aDumpFlags&EDumpHeader)
+		{
+		Print(EAlways, "V%d.%02d(%03d)", iOrigHdr->iToolsVersion.iMajor,iOrigHdr->iToolsVersion.iMinor,iOrigHdr->iToolsVersion.iBuild);
+		Print(EAlways, "\tTime Stamp: %08x,%08x\n", iOrigHdr->iTimeHi, iOrigHdr->iTimeLo);
+		char sig[5];
+		memcpy(sig, (const char*)&iOrigHdr->iSignature, 4);
+		sig[4]=0;
+		Print(EAlways, sig);
+		if (iOrigHdr->iFlags&KImageDll)
+			Print(EAlways, " Dll for ");
+		else
+			Print(EAlways, " Exe for ");
+		switch (iOrigHdr->CpuIdentifier())
+			{
+		case ECpuX86:
+			Print(EAlways, "X86 CPU\n");
+			break;
+		case ECpuArmV4:
+			isARM = ETrue;
+			Print(EAlways, "ARMV4 CPU\n");
+			break;
+		case ECpuArmV5:
+			isARM = ETrue;
+			Print(EAlways, "ARMV5 CPU\n");
+			break;
+		case ECpuMCore:
+			Print(EAlways, "M*Core CPU\n");
+			break;
+		case ECpuUnknown:
+			Print(EAlways, "Unknown CPU\n");
+			break;
+		default:
+			Print(EAlways, "something or other\n");
+			break;
+			}
+		
+		Print(EAlways, "Flags:\t%08x\n", flags);
+	
+		if (!(flags & KImageDll))
+			{
+			char str[80];
+			PriorityToStr(iOrigHdr->ProcessPriority(), str);
+			Print(EAlways, "Priority %s\n", str);
+			if (flags & KImageFixedAddressExe)
+				Print(EAlways, "Fixed process\n");
+			}
+		if (flags & KImageNoCallEntryPoint)
+			Print(EAlways, "Entry points are not called\n");
+		Print(EAlways, "Image header is format %d\n", hdrfmt>>24);
+		TUint compression = iOrigHdr->CompressionType();
+		switch (compression)
+			{
+			case KFormatNotCompressed:
+				Print(EAlways, "Image is not compressed\n");
+				break;
+			case KUidCompressionDeflate:
+				Print(EAlways, "Image is compressed using the DEFLATE algorithm\n");
+				break;
+			case KUidCompressionBytePair:
+				Print(EAlways, "Image is compressed using the BYTEPAIR algorithm\n");
+				break;
+			default:
+				Print(EAlways, "Image compression type UNKNOWN (%08x)\n", compression);
+			}
+		if (compression)
+			{
+			Print(EAlways, "Uncompressed size %08x\n", iOrigHdr->UncompressedFileSize());
+			}
+		
+		TUint FPU = flags & KImageHWFloatMask;
+
+		if (FPU == KImageHWFloat_None)
+			Print(EAlways, "Image FPU support : Soft VFP\n");
+		else if (FPU == KImageHWFloat_VFPv2) 
+			Print(EAlways, "Image FPU support : VFPv2\n");
+		else
+			Print(EAlways, "Image FPU support : Unknown\n");
+
+		if (flags & KImageCodeUnpaged)
+			{
+			Print(EAlways, "Code Paging : Unpaged\n");
+			}
+		else if (flags & KImageCodePaged)
+			{
+			Print(EAlways, "Code Paging : Paged\n");
+			}
+		else
+			{
+			Print(EAlways, "Code Paging : Default\n");
+			}
+
+		if (flags & KImageDataUnpaged)
+			{
+			Print(EAlways, "Data Paging : Unpaged\n");
+			}
+		else if (flags & KImageDataPaged)
+			{
+			Print(EAlways, "Data Paging : Paged\n");
+			}
+		else
+			{
+			Print(EAlways, "Data Paging : Default\n");
+			}
+
+		if(flags & KImageDebuggable)
+			{
+ 			Print(EAlways, "Debuggable : True\n");
+ 			}
+ 		else
+ 			{
+ 			Print(EAlways, "Debuggable : False\n");
+ 			}
+
+		if(flags & KImageSMPSafe)
+			{
+ 			Print(EAlways, "SMP Safe : True\n");
+ 			}
+ 		else
+ 			{
+ 			Print(EAlways, "SMP Safe : False\n");
+ 			}
+		}
+
+	if (hdrfmt >= KImageHdrFmt_V && (aDumpFlags&(EDumpHeader|EDumpSecurityInfo)))
+		{
+		//
+		// Important. Don't change output format of following security info
+		// because this is relied on by used by "Symbian Signed".
+		//
+		E32ImageHeaderV* v = iHdr;
+		Print(EAlways, "Secure ID: %08x\n", v->iS.iSecureId);
+		Print(EAlways, "Vendor ID: %08x\n", v->iS.iVendorId);
+		Print(EAlways, "Capabilities: %08x %08x\n", v->iS.iCaps[1], v->iS.iCaps[0]);
+		if(aDumpFlags&EDumpSecurityInfo)
+			{
+			TInt i;
+			for(i=0; i<ECapability_Limit; i++)
+				if(v->iS.iCaps[i>>5]&(1<<(i&31)))
+					Print(EAlways, "              %s\n", CapabilityNames[i]);
+			Print(EAlways, "\n");
+			}
+		}
+
+	if(aDumpFlags&EDumpHeader)
+		{
+		if (hdrfmt >= KImageHdrFmt_V)
+			{
+			E32ImageHeaderV* v = iHdr;
+			TUint32 xd = v->iExceptionDescriptor;
+			if ((xd & 1) && (xd != 0xffffffffu))
+				{
+				xd &= ~1;
+				Print(EAlways, "Exception Descriptor Offset:  %08x\n", v->iExceptionDescriptor);
+				TExceptionDescriptor * aED = (TExceptionDescriptor * )(iData + v->iCodeOffset + xd);
+				Print(EAlways, "Exception Index Table Base: %08x\n", aED->iExIdxBase);
+				Print(EAlways, "Exception Index Table Limit: %08x\n", aED->iExIdxLimit);
+				Print(EAlways, "RO Segment Base: %08x\n", aED->iROSegmentBase);
+				Print(EAlways, "RO Segment Limit: %08x\n", aED->iROSegmentLimit);
+				}
+			else
+				Print(EAlways, "No Exception Descriptor\n");
+
+			Print(EAlways, "Export Description: Size=%03x, Type=%02x\n", v->iExportDescSize, v->iExportDescType);
+			if (v->iExportDescType != KImageHdr_ExpD_NoHoles)
+				{
+				TInt nb = v->iExportDescSize;
+				TInt i;
+				TInt j = 0;
+				for (i=0; i<nb; ++i)
+					{
+					if (++j == 8)
+						{
+						j = 0;
+						Print(EAlways,"\n");
+						}
+					Print(EAlways," %02x", v->iExportDesc[i]);
+					}
+				Print(EAlways,"\n");
+				}
+			TInt r = CheckExportDescription();
+			if (r == KErrNone)
+				Print(EAlways,"Export description consistent\n");
+			else if (r == KErrNotSupported)
+				Print(EAlways,"Export description type not recognised\n");
+			else
+				Print(EAlways,"!! Export description inconsistent !!\n");
+			}
+
+		TUint32 mv = iOrigHdr->ModuleVersion();
+		Print(EAlways, "Module Version: %d.%d\n", mv>>16, mv&0xffff);
+		if (impfmt == KImageImpFmt_PE)
+			{
+			Print(EAlways, "Imports are PE-style\n");
+			}
+		else if (impfmt == KImageImpFmt_ELF)
+			{
+			Print(EAlways, "Imports are ELF-style\n");
+			}
+		else if (impfmt == KImageImpFmt_PE2)
+			{
+			Print(EAlways, "Imports are PE-style without redundant ordinal lists\n");
+			}
+		if (isARM)
+			{
+			if (abi == KImageABI_GCC98r2)
+				{
+				Print(EAlways, "GCC98r2 ABI\n");
+				}
+			else if (abi == KImageABI_EABI)
+				{
+				Print(EAlways, "ARM EABI\n");
+				}
+			if (ept == KImageEpt_Eka1)
+				{
+				Print(EAlways, "Built against EKA1\n");
+				}
+			else if (ept == KImageEpt_Eka2)
+				{
+				Print(EAlways, "Built against EKA2\n");
+				}
+			}
+
+		Print(EAlways, "Uids:\t\t%08x %08x %08x (%08x)\n", iOrigHdr->iUid1, iOrigHdr->iUid2, iOrigHdr->iUid3, iOrigHdr->iUidChecksum);
+		if (hdrfmt >= KImageHdrFmt_V)
+			Print(EAlways, "Header CRC:\t%08x\n", iHdr->iHeaderCrc);
+		Print(EAlways, "File Size:\t%08x\n", iSize);
+		Print(EAlways, "Code Size:\t%08x\n", iOrigHdr->iCodeSize);
+		Print(EAlways, "Data Size:\t%08x\n", iOrigHdr->iDataSize);
+		Print(EAlways, "Compression:\t%08x\n", iOrigHdr->iCompressionType);
+		Print(EAlways, "Min Heap Size:\t%08x\n", iOrigHdr->iHeapSizeMin);
+		Print(EAlways, "Max Heap Size:\t%08x\n", iOrigHdr->iHeapSizeMax);
+		Print(EAlways, "Stack Size:\t%08x\n", iOrigHdr->iStackSize);
+		Print(EAlways, "Code link addr:\t%08x\n", iOrigHdr->iCodeBase);
+		Print(EAlways, "Data link addr:\t%08x\n", iOrigHdr->iDataBase);
+		Print(EAlways, "Code reloc offset:\t%08x\n", OrigCodeRelocOffset());
+		Print(EAlways, "Data reloc offset:\t%08x\n", OrigDataRelocOffset());
+		Print(EAlways, "Dll ref table count: %d\n", iOrigHdr->iDllRefTableCount);
+
+		if (iOrigHdr->iCodeSize || iOrigHdr->iDataSize || iOrigHdr->iBssSize || iOrigHdr->iImportOffset)
+			Print(EAlways, "        Offset  Size  Relocs #Relocs\n");
+
+		Print(EAlways, "Code    %06x %06x", OrigCodeOffset(), iOrigHdr->iCodeSize);
+		if (iOrigHdr->iCodeRelocOffset)
+			{
+			E32RelocSection *r=(E32RelocSection *)(iData + iOrigHdr->iCodeRelocOffset);
+			Print(EAlways, " %06x %06x", OrigCodeRelocOffset(), r->iNumberOfRelocs);
+			}
+		else
+			Print(EAlways, "              ");
+		Print(EAlways, "        +%06x (entry pnt)", iOrigHdr->iEntryPoint);
+		nl();
+
+		Print(EAlways, "Data    %06x %06x", OrigDataOffset(), iOrigHdr->iDataSize);
+		if (iOrigHdr->iDataRelocOffset)
+			{
+			E32RelocSection *r=(E32RelocSection *)(iData + iOrigHdr->iDataRelocOffset);
+			Print(EAlways, " %06x %06x", OrigDataRelocOffset(), r->iNumberOfRelocs);
+			}
+		nl();
+
+		Print(EAlways, "Bss            %06x\n", iOrigHdr->iBssSize);
+
+		if (iOrigHdr->iExportDirOffset)
+			Print(EAlways, "Export  %06x %06x                      (%d entries)\n", OrigExportDirOffset(), iOrigHdr->iExportDirCount*4, iOrigHdr->iExportDirCount);
+		if (iOrigHdr->iImportOffset)
+			Print(EAlways, "Import  %06x\n", OrigImportOffset());
+		}
+	}
+
+void dump(TUint *aData, TInt aLength)
+	{
+	TUint *p=aData;
+	TInt i=0;
+	char line[256];
+	char *cp=(char*)aData;
+	TInt j=0;
+	memset(line,' ',sizeof(line));
+	while (i<aLength)
+		{
+		TInt ccount=0;
+		char* linep=&line[8*9+2];
+		Print(EAlways, "%06x:", i);
+		while (i<aLength && ccount<8)
+			{
+			Print(EAlways," %08x", *p++);
+			i+=4;
+			ccount++;
+			for (j=0; j<4; j++)
+				{
+				char c=*cp++;
+				if (c<32 || c>127)
+					{
+					c = '.';
+					}
+				*linep++ = c;
+				}
+			}
+		*linep='\0';
+		Print(EAlways, "%s", line+(ccount*9));
+		nl();
+		}
+	}
+
+void dumprelocs(char *aRelocs)
+	{
+
+	TInt num=((E32RelocSection *)aRelocs)->iNumberOfRelocs;
+	Print(EAlways, "%d relocs\n", num);
+	aRelocs+=sizeof(E32RelocSection);
+	TInt printed=0;
+	while (num>0)
+		{
+		TInt page=*(TUint *)aRelocs;
+		TInt size=*(TUint *)(aRelocs+4);
+		TInt pagesize=size;
+		size-=8;
+		TUint16 *p=(TUint16 *)(aRelocs+8);
+		while (size>0)
+			{
+			TUint a=*p++;
+			TUint relocType = a >> 12;
+			if (relocType==3 || relocType==1)
+				{
+				Print(EAlways, "%08x(%1x) ", page+(a&0x0fff), relocType);
+				printed++;
+				if (printed>3)
+					{
+					nl();
+					printed=0;
+					}
+				}
+			size-=2;
+			num--;
+			}
+		aRelocs+=pagesize;
+		}
+	nl();
+	}
+
+
+void E32ImageFile::DumpData(TInt aDumpFlags)
+	{
+	if(aDumpFlags&EDumpCode)
+		{
+		Print(EAlways, "\nCode (text size=%08x)\n", iOrigHdr->iTextSize);
+		dump((TUint *)(iData + iOrigHdr->iCodeOffset), iOrigHdr->iCodeSize);
+		if (iOrigHdr->iCodeRelocOffset)
+			dumprelocs(iData + iOrigHdr->iCodeRelocOffset);
+		}
+
+	if((aDumpFlags&EDumpData) && iOrigHdr->iDataOffset)
+		{
+		Print(EAlways, "\nData\n");
+		dump((TUint *)(iData + iOrigHdr->iDataOffset), iOrigHdr->iDataSize);
+		if (iOrigHdr->iDataRelocOffset)
+			dumprelocs(iData + iOrigHdr->iDataRelocOffset);
+		}
+
+	if(aDumpFlags&EDumpExports)
+		{
+		Print(EAlways, "\nNumber of exports = %d\n", iOrigHdr->iExportDirCount);
+		TInt i;
+		TUint* exports = (TUint*)(iData + iOrigHdr->iExportDirOffset);
+		TUint absoluteEntryPoint = iOrigHdr->iEntryPoint + iOrigHdr->iCodeBase;
+		TUint impfmt = iOrigHdr->ImportFormat();
+		TUint absentVal = (impfmt == KImageImpFmt_ELF) ? absoluteEntryPoint : iOrigHdr->iEntryPoint;
+		for (i=0; i<iOrigHdr->iExportDirCount; ++i)
+			{
+			TUint exp = exports[i];
+			if (exp == absentVal)
+				Print(EAlways, "\tOrdinal %5d:\tABSENT\n", i+1);
+			else
+				Print(EAlways, "\tOrdinal %5d:\t%08x\n", i+1, exp);
+			}
+		}
+
+	//
+	// Important. Don't change output format of following inport info
+	// because this is relied on by tools used by "Symbian Signed".
+	//
+	if((aDumpFlags&EDumpImports) && iOrigHdr->iImportOffset)
+		{
+		const E32ImportSection* isection = (const E32ImportSection*)(iData + iOrigHdr->iImportOffset);
+		TUint* iat = (TUint*)((TUint8*)iData + iOrigHdr->iCodeOffset + iOrigHdr->iTextSize);
+		Print(EAlways, "\nIdata\tSize=%08x\n", isection->iSize);
+		Print(EAlways, "Offset of import address table (relative to code section): %08x\n", iOrigHdr->iTextSize);
+		TInt d;
+		const E32ImportBlock* b = (const E32ImportBlock*)(isection + 1);
+		for (d=0; d<iOrigHdr->iDllRefTableCount; d++)
+			{
+			char* dllname = iData + iOrigHdr->iImportOffset + b->iOffsetOfDllName;
+			TInt n = b->iNumberOfImports;
+			Print(EAlways, "%d imports from %s\n", b->iNumberOfImports, dllname);
+			const TUint* p = b->Imports();
+			TUint impfmt = iOrigHdr->ImportFormat();
+			if (impfmt == KImageImpFmt_ELF)
+				{
+				while (n--)
+					{
+					TUint impd_offset = *p++;
+					TUint impd = *(TUint*)(iData + iOrigHdr->iCodeOffset + impd_offset);
+					TUint ordinal = impd & 0xffff;
+					TUint offset = impd >> 16;
+					if (offset)
+						Print(EAlways, "%10d offset by %d\n", ordinal, offset);
+					else
+						Print(EAlways, "%10d\n", ordinal);
+					}
+				}
+			else
+				{
+				while (n--)
+					Print(EAlways, "\t%d\n", *iat++);
+				}
+			b = b->NextBlock(impfmt);
+			}
+		}
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/e32image/tr_main.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,998 @@
+// Copyright (c) 1996-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// e32tools/e32image/tr_main.cpp
+// Translate X->E32Image top level
+// 
+//
+
+#ifndef __LINUX__
+  #include <io.h>
+#endif
+#include <string.h>
+
+#ifdef __VC32__
+ #ifdef __MSVCDOTNET__
+  #include <strstream>
+  #include <iomanip>
+ #else //!__MSVCDOTNET__
+  #include <strstrea.h>
+  #include <iomanip.h>
+ #endif //__MSVCDOTNET__
+#else // !__VC32__*/
+#ifdef __TOOLS2__
+  #include <sstream>
+  #include <iomanip>
+  #else
+ #include <strstream.h>
+ #include <iomanip.h>
+#endif // __VC32__
+#endif
+
+#include <e32std.h>
+#include <e32std_private.h>
+
+#ifdef __SUPPORT_PE_FILES__
+#include "pe_file.h"
+#endif
+#ifdef __SUPPORT_ELF_FILES__
+#include "elftran.h"
+#endif
+
+#include "h_utl.h"
+#include "h_ver.h"
+#include <stdio.h>
+
+extern int gAlignConstSection;
+extern TUint gConstSectionAddressMask;
+
+int gVerbose=0;
+char *gFile1=NULL;
+char *gFile2=NULL;
+unsigned int gStack=0;
+unsigned int gHeapMin=0;
+unsigned int gHeapMax=0;
+TUid gUid1=KNullUid;
+TUid gUid2=KNullUid;
+TUid gUid3=KNullUid;
+unsigned int gSecureId=0;
+unsigned int gVendorId=0;
+unsigned int gVersionWord=0x00010000u;
+int gCallEntryPoints=TRUE;
+int gFixedAddress=FALSE;
+int gPriority=EPriorityForeground;
+SCapabilitySet gCapability={0};
+int gAllowDllData=FALSE;
+// fix warning for Linux warning: 0 instead of NULL
+TUint gDataBase=0;
+int gCompress=TRUE;
+unsigned int gFPU=0;
+
+int gCodePaged=FALSE;
+int gCodeUnpaged=FALSE;
+int gCodeDefaultPaged=FALSE;
+
+int gDataPaged=FALSE;
+int gDataUnpaged=FALSE;
+int gDataDefaultPaged=FALSE;
+
+int gDebuggable=FALSE;
+int gSmpSafe=FALSE;
+
+int gSetStack=FALSE;
+int gSetHeap=FALSE;
+int gSetUid1=FALSE;
+int gSetUid2=FALSE;
+int gSetUid3=FALSE;
+int gSetCallEntryPoints=FALSE;
+int gSetFixedAddress=FALSE;
+int gSetPriority=FALSE;
+int gSetCapability=FALSE;
+int gSetCompress=FALSE;
+int gSetVersion=FALSE;
+int gSetSecureId=FALSE;
+int gSetVendorId=FALSE;
+int gSetFPU=FALSE;
+
+int gSetCodePaged=FALSE;
+int gSetDataPaged=FALSE;
+
+int gSetSymLkup=FALSE;
+int gSetDebuggable=FALSE;
+int gSetSmpSafe=FALSE;
+
+enum CompressionMethods
+{
+	ENoCompression = 0,
+	EDeflate = 1,
+	EBytePair = 2,
+};
+
+int gCompressionMethod = EDeflate;
+int gSuppressComprMethod = FALSE;
+
+#ifdef __SUPPORT_PE_FILES__
+char* gX86imp=NULL;
+int gX86num_imp_dlls=0;
+int gX86imp_size=0;
+int gX86num_imports=0;
+#endif
+
+TBool gLittleEndian=ETrue;
+
+class E32ImageFileRef
+	{
+public:
+	E32ImageFileRef() {iPtr = E32ImageFile::New();}
+	~E32ImageFileRef() {delete iPtr;}
+	class E32ImageFile& Ref() {return *iPtr;}
+private:
+	E32ImageFileRef(const E32ImageFileRef&);
+	E32ImageFileRef& operator=(const E32ImageFileRef&);
+private:
+	E32ImageFile* iPtr;
+	};
+
+int setPagedFlags(E32ImageFile& f)
+	{
+	unsigned check1 = gCodePaged + gCodeUnpaged + gCodeDefaultPaged;
+	unsigned check2 = gDataPaged + gDataUnpaged + gDataDefaultPaged;
+
+	if (check1 > 1 || check2 > 1)
+		{
+		Print(EError, "Conflicting paging options.\n");
+		return KErrArgument;
+		}
+
+	if (gCodePaged)
+		{
+		f.iHdr->iFlags |= KImageCodePaged;
+		f.iHdr->iFlags &= ~KImageCodeUnpaged;
+		}
+	else if (gCodeUnpaged)
+		{
+		f.iHdr->iFlags |= KImageCodeUnpaged;
+		f.iHdr->iFlags &= ~KImageCodePaged;
+		}
+	else if (gCodeDefaultPaged)
+		{
+		f.iHdr->iFlags &= ~KImageCodePaged;
+		f.iHdr->iFlags &= ~KImageCodeUnpaged;
+		}
+
+	if (gDataPaged)
+		{
+		f.iHdr->iFlags |=  KImageDataPaged;
+		f.iHdr->iFlags &= ~KImageDataUnpaged;
+		}
+	else if (gDataUnpaged)
+		{
+		f.iHdr->iFlags |=  KImageDataUnpaged;
+		f.iHdr->iFlags &= ~KImageDataPaged;
+		}
+	else if (gDataDefaultPaged)
+		{
+		f.iHdr->iFlags &= ~KImageDataPaged;
+		f.iHdr->iFlags &= ~KImageDataUnpaged;
+		}
+
+	return KErrNone;
+	}
+
+void setDebuggableFlags(E32ImageFile& f)
+	{
+	if (gDebuggable)
+		{
+		f.iHdr->iFlags |= KImageDebuggable;
+		}
+	else
+		{
+		f.iHdr->iFlags &= ~KImageDebuggable;
+		}
+	}
+
+void setSmpSafeFlags(E32ImageFile& f)
+	{
+	if (gSmpSafe)
+		{
+		f.iHdr->iFlags |= KImageSMPSafe;
+		}
+	else
+		{
+		f.iHdr->iFlags &= ~KImageSMPSafe;
+		}
+	}
+
+int dotran(const char* ifilename, const char* ofilename)
+	{
+	E32ImageFileRef fRef;
+	E32ImageFile& f = fRef.Ref();
+	int r=f.Translate(ifilename, gDataBase, gAllowDllData, gSetSymLkup);
+	if (r!=KErrNone)
+		return r;
+	if (gSetStack)
+		f.SetStackSize(gStack);
+	if (gSetHeap)
+		{
+		f.SetHeapSizeMin(gHeapMin);
+		f.SetHeapSizeMax(gHeapMax);
+		}
+	if (!gSetUid1)
+		gUid1=TUid::Uid(f.iHdr->iUid1);
+	if (!gSetUid2)
+		gUid2=TUid::Uid(f.iHdr->iUid2);
+	if (!gSetUid3)
+		gUid3=TUid::Uid(f.iHdr->iUid3);
+	if (!gSetSecureId)
+		gSecureId = f.iHdr->iUid3;
+	if (!gSetVendorId)
+		gVendorId = 0;
+	f.SetUids(gUid1, gUid2, gUid3);
+	f.SetSecureId(gSecureId);
+	f.SetVendorId(gVendorId);
+	if (gSetCallEntryPoints)
+		f.SetCallEntryPoints(gCallEntryPoints);
+	if (gSetCapability)
+		f.SetCapability(gCapability);
+	if (gSetPriority)
+		{
+		if (f.iHdr->iFlags&KImageDll)
+			Print(EWarning,"Cannot set priority of a DLL.\n");
+		else
+			f.SetPriority((TProcessPriority)gPriority);
+		}
+	if (gSetFixedAddress)
+		{
+		if (f.iHdr->iFlags&KImageDll)
+			Print(EWarning,"Cannot set fixed address for DLL.\n");
+		else
+			f.SetFixedAddress(gFixedAddress);
+		}
+	if (gSetVersion)
+		f.iHdr->iModuleVersion = gVersionWord;
+
+	if(gCompress)
+	{
+		switch(gCompressionMethod)
+		{
+			case ENoCompression:
+				f.iHdr->iCompressionType = KFormatNotCompressed;
+				break;
+				
+			case EDeflate:
+				f.iHdr->iCompressionType = KUidCompressionDeflate;
+			
+				break;
+			
+			case EBytePair:
+				f.iHdr->iCompressionType = KUidCompressionBytePair;
+			
+				break;
+			
+			default:
+				Print(EError, "Unknown compression method:%d", gCompressionMethod);
+				return 1;
+			
+		} // End of switch()
+		
+	}
+	else
+	{
+		f.iHdr->iCompressionType = KFormatNotCompressed;		
+	}
+		
+
+	if (gSetFPU)
+		f.SetFPU(gFPU);
+
+	r = setPagedFlags(f);
+	if (r != KErrNone)
+	{
+		return r;
+	}
+
+	setDebuggableFlags(f);
+
+	setSmpSafeFlags(f);
+
+	f.CreateExportBitMap();
+	f.AddExportDescription();
+	f.UpdateHeaderCrc();
+	r = f.Validate();
+	if (r!=KErrNone)
+		return r;
+
+	ofstream ofile(ofilename, ios::binary);
+	if (!ofile)
+		{
+		Print(EError,"Cannot open %s for output.\n",ofilename);
+		return 1;
+		}
+	ofile << f;
+	ofile.close();
+	if (gVerbose)
+		f.Dump((TText*)ofilename,gVerbose);
+	return KErrNone;
+	}
+
+
+int dodump(const char* ifilename)
+	{
+	E32ImageFile f;
+	TInt r = f.Open(ifilename);
+	if (r>0)
+		return 1;
+	else if (r==KErrCorrupt || r==KErrNotSupported)
+		{
+		Print(EError,"%s is not a valid E32Image file.\n",ifilename);
+		return 1;
+		}
+	else if (r!=0)
+		{
+		Print(EError,"Error %d reading %s.\n",r,ifilename);
+		return 1;
+		}
+	f.Dump((TText*)ifilename, gVerbose ? gVerbose : E32ImageFile::EDumpDefaults);
+	return KErrNone;
+	}
+
+int doalter(const char* ifilename)
+	{
+	E32ImageFile f;
+	TInt r = f.Open(ifilename);
+	if (r>0)
+		return 1;
+	else if (r==KErrCorrupt || r==KErrNotSupported)
+		{
+		Print(EError,"%s is not a valid E32Image file.\n",ifilename);
+		return 1;
+		}
+	else if (r!=0)
+		{
+		Print(EError,"Error %d reading %s.\n",r,ifilename);
+		return 1;
+		}
+
+	TUint hdrfmt = f.iHdr->HeaderFormat();
+	if (hdrfmt != KImageHdrFmt_V)
+		{
+		Print(EError,"Can't modify old format binaries\n");
+		return 1;
+		}
+
+	if (gDataBase)
+		{
+		Print(EWarning, "Ignoring -datalinkaddress Switch");
+		}
+	if (gSetStack)
+		f.SetStackSize(gStack);
+	if (gSetHeap)
+		{
+		f.SetHeapSizeMin(gHeapMin);
+		f.SetHeapSizeMax(gHeapMax);
+		}
+	if (!gSetUid1)
+		gUid1=TUid::Uid(f.iHdr->iUid1);
+	if (!gSetUid2)
+		gUid2=TUid::Uid(f.iHdr->iUid2);
+	if (!gSetUid3)
+		gUid3=TUid::Uid(f.iHdr->iUid3);
+	f.SetUids(gUid1, gUid2, gUid3);
+	if (gSetSecureId)
+		f.SetSecureId(gSecureId);
+	if (gSetVendorId)
+		f.SetVendorId(gVendorId);
+	if (gSetCallEntryPoints)
+		f.SetCallEntryPoints(gCallEntryPoints);
+	if (gSetCapability)
+		f.SetCapability(gCapability);
+	if (gSetPriority)
+		{
+		if (f.iHdr->iFlags&KImageDll)
+			Print(EWarning,"Cannot set priority of a DLL.\n");
+		else
+			f.SetPriority((TProcessPriority)gPriority);
+		}
+	if (gSetFixedAddress)
+		{
+		if (f.iHdr->iFlags&KImageDll)
+			Print(EWarning,"Cannot set fixed address for DLL.\n");
+		else
+			f.SetFixedAddress(gFixedAddress);
+		}
+	if (gSetVersion)
+		f.iHdr->iModuleVersion = gVersionWord;
+
+	if(gCompress)
+	{
+		switch(gCompressionMethod)
+		{
+			case ENoCompression:
+				f.iHdr->iCompressionType = KFormatNotCompressed;
+				break;
+				
+			case EDeflate:
+				f.iHdr->iCompressionType = KUidCompressionDeflate;
+			
+				break;
+			
+			case EBytePair:
+				f.iHdr->iCompressionType = KUidCompressionBytePair;
+			
+				break;
+			
+			default:
+				Print(EError, "Unknown compression method:%d", gCompressionMethod);
+				return 1;
+			
+		} // End of switch()
+	}
+	else
+		f.iHdr->iCompressionType = KFormatNotCompressed;
+
+	if (gSetFPU)
+		f.SetFPU(gFPU);
+
+	r = setPagedFlags(f);
+	if (r != KErrNone)
+	{
+		return r;
+	}
+	
+	setDebuggableFlags(f);
+
+	setSmpSafeFlags(f);
+
+	f.UpdateHeaderCrc();
+	r = f.Validate();
+	if (r!=KErrNone)
+		return r;
+
+	ofstream ofile(ifilename, ios::binary);
+	if (!ofile)
+		{
+		Print(EError,"Cannot open %s for output.\n",ifilename);
+		return 1;
+		}
+	ofile << f;
+	ofile.close();
+	if (gVerbose)
+		f.Dump((TText *)ifilename,gVerbose);
+	return KErrNone;
+	}
+
+int helpme(char *aStr)
+	{
+	Print(EAlways,"Syntax: %s [options] inputfile outputfile\n",aStr);
+	Print(EAlways,"        %s [options] e32imagefile\n",aStr);
+	Print(EAlways,"option: [-v] [[-no]call[entrypoint]] [-priority <priority>]\n");
+	Print(EAlways,"        [-stack <size>] [-heap <min> <max>] [-uid<n> <uid>]\n");
+	Print(EAlways,"        [-allowdlldata] [-datalinkaddress <base>] [-fixed] [-moving]\n");
+	Print(EAlways,"        [-align-const-section] [-const-section-address-mask <mask>]\n");
+	Print(EAlways,"        [-[no]compress] [-compressionmethod none|deflate|bytepair]\n");
+	Print(EAlways,"        [-capability \"<list>\"] [-version M.m] [-vid <id>]\n");
+	Print(EAlways,"        [-fpu <softvfp|vfpv2>]\n");
+	Print(EAlways,"        [-codepaging <paged|unpaged|default>]\n");
+	Print(EAlways,"        [-datapaging <paged|unpaged|default>]\n");
+	Print(EAlways,"        [-debuggable]\n");
+	Print(EAlways,"        [-smpsafe]\n");
+	Print(EAlways,"        [-sym_name_lkup]\n");
+	Print(EAlways,"        [-dump [h][s][c][d][e][i]]\n");
+	Print(EAlways,"flags for dump: h Header\n");
+	Print(EAlways,"                s Security info\n");
+	Print(EAlways,"                c Code section\n");
+	Print(EAlways,"                d Data section\n");
+	Print(EAlways,"                e Export info\n");
+	Print(EAlways,"                i Import table\n");
+	return KErrArgument;
+	}
+
+int isNumber(char *aStr)
+	{
+	return (aStr[0]>='0') && (aStr[0]<='9');
+	}
+
+int getUIntArg(unsigned int &aVal, int argc, char *argv[], int i)
+	{
+	if (i>=argc)
+		return KErrArgument;
+	if (!isNumber(argv[i]))
+		return KErrArgument;
+#ifdef __LINUX__
+	int n;
+	sscanf(argv[i], "%i", &n);
+	aVal = n;
+#else
+#ifdef __TOOLS2__
+istringstream s(argv[i]/*, strlen(argv[i])*/);
+#else
+istrstream s(argv[i], strlen(argv[i]));
+#endif
+
+#if defined(__MSVCDOTNET__) || defined(__TOOLS2__)
+	s >> setbase(0);
+#endif //__MSVCDOTNET__
+
+	s >> aVal;
+#endif // __LINUX__
+	return KErrNone;
+	}
+
+int getCapabilitiesArg(SCapabilitySet& aVal, int argc, char *argv[], int i)
+	{
+	memset(&aVal,0,sizeof(aVal));
+	if (i>=argc)
+		return KErrArgument;
+	if (isNumber(argv[i]))
+		return getUIntArg(*(TUint*)&aVal[0], argc, argv, i);
+	return ParseCapabilitiesArg(aVal,argv[i]);
+	}
+
+int getPriorityArg(int &aVal, int argc, char *argv[], int i)
+	{
+
+	if (i>=argc)
+		return KErrArgument;
+	if (isNumber(argv[i]))
+		{
+#ifdef __LINUX__
+		int n;
+		sscanf(argv[i], "%i", &n);
+		aVal = n;
+#else
+#ifdef __TOOLS2__
+istringstream s(argv[i]);
+#else
+istrstream s(argv[i], strlen(argv[i]));
+#endif
+
+#if defined(__MSVCDOTNET__) || defined(__TOOLS2__)
+		s >> setbase(0);
+#endif //__MSVCDOTNET__
+
+		s>>aVal;
+#endif // __LINUX__
+		}
+	else
+		{
+		if (stricmp(argv[i], "low")==0)
+			aVal=EPriorityLow;
+		else if (strnicmp(argv[i], "background",4)==0)
+			aVal=EPriorityBackground;
+		else if (strnicmp(argv[i], "foreground",4)==0)
+			aVal=EPriorityForeground;
+		else if (stricmp(argv[i], "high")==0)
+			aVal=EPriorityHigh;
+		else if (strnicmp(argv[i], "windowserver",3)==0)
+			aVal=EPriorityWindowServer;
+		else if (strnicmp(argv[i], "fileserver",4)==0)
+			aVal=EPriorityFileServer;
+		else if (strnicmp(argv[i], "realtime",4)==0)
+			aVal=EPriorityRealTimeServer;
+		else if (strnicmp(argv[i], "supervisor",3)==0)
+			aVal=EPrioritySupervisor;
+		else
+			{
+			Print(EError, "Unrecognised priority\n");
+			return KErrArgument;
+			}
+		}
+	if (aVal<EPriorityLow || aVal>EPrioritySupervisor)
+		{
+		Print(EError, "Priority out of range\n");
+		return KErrArgument;
+		}
+	return KErrNone;
+	}
+
+int getVersionArg(unsigned int& aVal, const char* aArg)
+	{
+	const char* s = aArg;
+	unsigned int major = 0;
+	unsigned int minor = 0;
+	for (; major<=6553 && *s>='0' && *s<='9'; ++s)
+		major = major*10 + (*s - '0');
+	if (*s == '.')
+		{
+		for (++s; minor<=6553 && *s>='0' && *s<='9'; ++s)
+			minor = minor*10 + (*s - '0');
+		if (*s==0 && major<32768 && minor<32768)
+			{
+			aVal = (major << 16) | minor;
+			return KErrNone;
+			}
+		}
+	Print(EError, "Bad argument to -version\n");
+	return KErrArgument;
+	}
+
+int getFPUArg(unsigned int &aVal, int argc, char *argv[], int i)
+	{
+	if (i>=argc)
+		return KErrArgument;
+	else if (strnicmp(argv[i], "softvfp", 7)==0)
+		aVal = 0;
+	else if (strnicmp(argv[i], "vfpv2", 5)==0)
+		aVal = 1;
+	else
+		{
+		Print(EError, "Bad argument to -fpu\n");
+		return KErrArgument;
+		}
+
+	return KErrNone;
+	}
+
+int getCompressionMethod(int &aVal, int argc, char *argv[], int i)
+{
+	if( i >= argc || argv[i] == NULL)
+	{
+		Print(EError, "Missing argument to -compressionmethod\n");
+		return KErrArgument;
+	}
+	else if (strnicmp(argv[i], "none", 2) == 0)
+	{
+		aVal = ENoCompression;
+	}
+	else if (strnicmp(argv[i], "deflate", 7) == 0)
+	{
+		aVal = EDeflate;
+	}
+	else if (strnicmp(argv[i], "bytepair", 8) == 0)
+	{
+		aVal = EBytePair;
+	}
+	else
+	{
+		Print(EError, "Bad argument '%s' to -compressionmethod\n", argv[i]);
+		return KErrArgument;
+	}
+
+	return KErrNone;
+	
+}
+
+
+int processCL(int argc, char *argv[])
+	{
+
+	int r=KErrNone;
+	int i=1;
+	while (i<argc)
+		{
+		if (stricmp("-v", argv[i])==0)
+			gVerbose |= E32ImageFile::EDumpDefaults;
+		else if (stricmp("-dump", argv[i])==0)
+			{
+			i++;
+			if (i>=argc)
+				return KErrArgument;
+			char* s=argv[i];
+			while(char c = *(s++))
+				{
+				if(c<'a')
+					c += 'a'-'A';
+				switch(c)
+					{
+				case 'h': gVerbose |= E32ImageFile::EDumpHeader; break;
+				case 's': gVerbose |= E32ImageFile::EDumpSecurityInfo; break;
+				case 'c': gVerbose |= E32ImageFile::EDumpCode; break;
+				case 'd': gVerbose |= E32ImageFile::EDumpData; break;
+				case 'e': gVerbose |= E32ImageFile::EDumpExports; break;
+				case 'i': gVerbose |= E32ImageFile::EDumpImports; break;
+				default: return KErrArgument;
+					}
+				}
+			}
+		else if (stricmp("-stack", argv[i])==0)
+			{
+			i++;
+			gSetStack=TRUE;
+			r=getUIntArg(gStack, argc, argv, i);
+			}
+		else if (stricmp("-uid1", argv[i])==0)
+			{
+			i++;
+			gSetUid1=TRUE;
+			unsigned int id;
+			r=getUIntArg(id, argc, argv, i);
+			gUid1=TUid::Uid(id);
+			}
+		else if (stricmp("-uid2", argv[i])==0)
+			{
+			i++;
+			gSetUid2=TRUE;
+			unsigned int id;
+			r=getUIntArg(id, argc, argv, i);
+			gUid2=TUid::Uid(id);
+			}
+		else if (stricmp("-uid3", argv[i])==0)
+			{
+			i++;
+			gSetUid3=TRUE;
+			unsigned int id;
+			r=getUIntArg(id, argc, argv, i);
+			gUid3=TUid::Uid(id);
+			}
+		else if (stricmp("-version", argv[i])==0)
+			{
+			i++;
+			r=getVersionArg(gVersionWord, argv[i]);
+			gSetVersion=TRUE;
+			}
+		else if (stricmp("-sid", argv[i])==0)
+			{
+			i++;
+			r=getUIntArg(gSecureId, argc, argv, i);
+			gSetSecureId=TRUE;
+			}
+		else if (stricmp("-vid", argv[i])==0)
+			{
+			i++;
+			r=getUIntArg(gVendorId, argc, argv, i);
+			gSetVendorId=TRUE;
+			}
+		else if (strnicmp("-nocall", argv[i], 7)==0)
+			{
+			gSetCallEntryPoints=TRUE;
+			gCallEntryPoints=FALSE;
+			}
+		else if (strnicmp("-call", argv[i], 5)==0)
+			{
+			gSetCallEntryPoints=TRUE;
+			gCallEntryPoints=TRUE;
+			}
+		else if (strnicmp("-fixed", argv[i], 3)==0)
+			{
+			gSetFixedAddress=TRUE;
+			gFixedAddress=TRUE;
+			}
+		else if (strnicmp("-moving", argv[i], 3)==0)
+			{
+			gSetFixedAddress=TRUE;
+			gFixedAddress=FALSE;
+			}
+		else if (strnicmp("-priority", argv[i], 4)==0)
+			{
+			i++;
+			gSetPriority=TRUE;
+			r=getPriorityArg(gPriority,argc,argv,i);
+			}
+		else if (strnicmp("-capability", argv[i], 10)==0)
+			{
+			i++;
+			gSetCapability=TRUE;
+			r=getCapabilitiesArg(gCapability, argc, argv, i);
+			}
+		else if (strnicmp("-heap", argv[i], 4)==0)
+			{
+			i++;
+			gSetHeap=TRUE;
+			r=getUIntArg(gHeapMin, argc, argv, i);
+			if (r==KErrNone)
+				r=getUIntArg(gHeapMax, argc, argv, ++i);
+			}
+		else if (strnicmp("-allow", argv[i], 6)==0) // Note, toolchain passes 'allow' for 'allowdlldata'
+			{
+			gAllowDllData=TRUE;
+			}
+		else if( strnicmp("-compressionmethod", argv[i], 18) == 0)
+		{
+			if(!gSuppressComprMethod)
+			{
+				gCompress = TRUE;
+				gSetCompress = TRUE;
+				r = getCompressionMethod(gCompressionMethod, argc, argv, ++i);  
+			}
+			else
+			{
+				++i; // Skip the compression method because compessionmethod suppressed.
+			}
+		}
+		else if (strnicmp("-compress", argv[i], 9)==0)
+			{
+			gCompress=TRUE;
+			gSetCompress=TRUE;
+			gSuppressComprMethod=FALSE;
+			}
+		else if (strnicmp("-nocompress", argv[i], 11)==0)
+			{
+			gCompress=FALSE;
+			gSetCompress=TRUE;
+			gSuppressComprMethod = TRUE;
+			gCompressionMethod = ENoCompression;
+			}
+		else if (strnicmp("-datalinkaddress", argv[i], 16)==0)
+			{
+			i++;
+			r=getUIntArg(gDataBase, argc, argv, i);
+			}
+		else if (strnicmp("-align-const-section", argv[i], 20)==0)
+			{
+			gAlignConstSection=TRUE;
+			}
+		else if (strnicmp("-const-section-address-mask", argv[i], 27)==0)
+			{
+			i++;
+			r=getUIntArg(gConstSectionAddressMask, argc, argv, i);
+			}
+		else if (strnicmp("-fpu", argv[i], 4)==0)
+			{
+			i++;
+			r=getFPUArg(gFPU, argc, argv, i);
+			gSetFPU=TRUE;
+			}
+		else if (strnicmp("-paged", argv[i], 6) == 0)
+			{
+			gCodePaged=TRUE;
+			gSetCodePaged=TRUE;
+			}
+		else if (strnicmp("-unpaged", argv[i], 8) == 0)
+			{
+			gCodeUnpaged=TRUE;
+			gSetCodePaged=TRUE;
+			}
+		else if (strnicmp("-defaultpaged", argv[i], 13) == 0)
+			{
+			gCodeDefaultPaged=TRUE;
+			gSetCodePaged=TRUE;
+			}
+		else if (strnicmp("-codepaging", argv[i], 11)==0)
+			{
+			i++;
+
+			if (i>=argc)
+				{
+				r = KErrArgument;
+				}
+			else if ( strnicmp(argv[i], "paged", 5) == 0 )
+				{
+				gCodePaged=TRUE;
+				}
+			else if ( strnicmp(argv[i], "unpaged", 7) == 0 )
+				{
+				gCodeUnpaged=TRUE;
+				}
+			else if ( strnicmp(argv[i], "default", 7) == 0 )
+				{
+				gCodeDefaultPaged=TRUE;
+				}
+			else
+				{
+				Print(EError, "Bad argument to -codepaging\n");
+				r = KErrArgument;
+				}
+
+			gSetCodePaged=TRUE;
+			}
+		else if (strnicmp("-datapaging", argv[i], 11)==0)
+			{
+			i++;
+
+			if (i>=argc)
+				{
+				r = KErrArgument;
+				}
+			else if ( strnicmp(argv[i], "paged", 5) == 0 )
+				{
+				gDataPaged=TRUE;
+				}
+			else if ( strnicmp(argv[i], "unpaged", 7) == 0 )
+				{
+				gDataUnpaged=TRUE;
+				}
+			else if ( strnicmp(argv[i], "default", 7) == 0 )
+				{
+				gDataDefaultPaged=TRUE;
+				}
+			else
+				{
+				Print(EError, "Bad argument to -datapaging\n");
+				r = KErrArgument;
+				}
+
+			gSetDataPaged=TRUE;
+			}
+		else if (strnicmp("-sym_name_lkup", argv[i], 14) == 0)
+			{
+			gSetSymLkup=TRUE;
+			}
+		else if (strnicmp("-debuggable", argv[i], 11) == 0)
+			{
+			gDebuggable=TRUE;
+			gSetDebuggable=TRUE;
+			}
+		else if (strnicmp("-smpsafe", argv[i], 8) == 0)
+			{
+			gSmpSafe=TRUE;
+			gSetSmpSafe=TRUE;
+			}
+#ifdef __SUPPORT_PE_FILES__
+		else if (strnicmp("-x86imp=", argv[i], 8)==0)
+			{
+			const char* x86impfile=argv[i]+8;
+//			printf("%s\n",x86impfile);
+			FILE* f=fopen(x86impfile,"rb");
+			if (!f)
+				r=KErrArgument;
+			else
+				{
+				fseek(f,0,SEEK_END);
+				long size=ftell(f);
+				fseek(f,0,SEEK_SET);
+				if (size>4)
+					{
+					gX86imp=new char[size];
+					fread(gX86imp,1,size,f);
+					}
+				fclose(f);
+				r=KErrNone;
+				if (gX86imp)
+					{
+					gX86imp_size=ALIGN4(size);
+	//				printf("size %d\n",size);
+					int i;
+					int* p=(int*)gX86imp;
+					gX86num_imp_dlls=*p++;
+					for (i=0; i<gX86num_imp_dlls; ++i)
+						{
+						++p;
+						int n=*p++;
+						gX86num_imports+=n;
+						p+=n;
+						}
+	//				fprintf(stderr,"#imports=%d\n",gX86num_imports);
+					}
+				}
+			}
+#endif
+		else if (gFile1==NULL)
+			{
+			gFile1 = NormaliseFileName(argv[i]);
+			}
+		else if (gFile2==NULL)
+			{
+			gFile2 = NormaliseFileName(argv[i]);
+			}
+		else
+			r=KErrArgument;
+		if (r!=KErrNone)
+			return r;
+		i++;
+		}
+	return KErrNone;
+	}
+
+int main(int argc, char *argv[])
+	{
+#ifdef __SUPPORT_PE_FILES__
+	Print(EAlways,"\nPETRAN - PE file preprocessor");
+#endif
+#ifdef __SUPPORT_ELF_FILES__
+	Print(EAlways,"\nELFTRAN - ELF file preprocessor");
+#endif
+  	Print(EAlways," V%02d.%02d (Build %03d)\n",MajorVersion,MinorVersion,Build);
+	int r=processCL(argc, argv);
+	if (r!=KErrNone)
+		return helpme(argv[0]);
+	if (gFile2)
+		return dotran(gFile1, gFile2);
+	if ((gSetStack || gSetUid1 || gSetUid2 || gSetUid3 || gSetCallEntryPoints || gSetPriority
+		|| gSetCapability || gSetCompress || gSetHeap || gSetVersion || gSetSecureId
+		|| gSetVendorId || gSetFixedAddress || gSetFPU || gSetCodePaged || gSetDataPaged || gSetDebuggable || gSetSmpSafe) && gFile1)
+		return doalter(gFile1);
+	if (gFile1)
+		return dodump(gFile1);
+	helpme(argv[0]);
+	return KErrArgument;
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/e32uid/e32uid.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,245 @@
+// Copyright (c) 1996-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+typedef unsigned char  BYTE;	// TUint8
+typedef unsigned short WORD;	// TUint16
+typedef unsigned int   UINT;	// TUint
+
+#include <string.h>
+#include <e32std.h>
+#include <e32std_private.h>
+#include "e32uid.h"
+
+const UINT crcTab[256] =
+    {
+	0x0000,0x1021,0x2042,0x3063,0x4084,0x50a5,0x60c6,0x70e7,0x8108,0x9129,0xa14a,
+	0xb16b,0xc18c,0xd1ad,0xe1ce,0xf1ef,0x1231,0x0210,0x3273,0x2252,0x52b5,0x4294,
+	0x72f7,0x62d6,0x9339,0x8318,0xb37b,0xa35a,0xd3bd,0xc39c,0xf3ff,0xe3de,0x2462,
+	0x3443,0x0420,0x1401,0x64e6,0x74c7,0x44a4,0x5485,0xa56a,0xb54b,0x8528,0x9509,
+	0xe5ee,0xf5cf,0xc5ac,0xd58d,0x3653,0x2672,0x1611,0x0630,0x76d7,0x66f6,0x5695,
+	0x46b4,0xb75b,0xa77a,0x9719,0x8738,0xf7df,0xe7fe,0xd79d,0xc7bc,0x48c4,0x58e5,
+	0x6886,0x78a7,0x0840,0x1861,0x2802,0x3823,0xc9cc,0xd9ed,0xe98e,0xf9af,0x8948,
+	0x9969,0xa90a,0xb92b,0x5af5,0x4ad4,0x7ab7,0x6a96,0x1a71,0x0a50,0x3a33,0x2a12,
+	0xdbfd,0xcbdc,0xfbbf,0xeb9e,0x9b79,0x8b58,0xbb3b,0xab1a,0x6ca6,0x7c87,0x4ce4,
+	0x5cc5,0x2c22,0x3c03,0x0c60,0x1c41,0xedae,0xfd8f,0xcdec,0xddcd,0xad2a,0xbd0b,
+	0x8d68,0x9d49,0x7e97,0x6eb6,0x5ed5,0x4ef4,0x3e13,0x2e32,0x1e51,0x0e70,0xff9f,
+	0xefbe,0xdfdd,0xcffc,0xbf1b,0xaf3a,0x9f59,0x8f78,0x9188,0x81a9,0xb1ca,0xa1eb,
+	0xd10c,0xc12d,0xf14e,0xe16f,0x1080,0x00a1,0x30c2,0x20e3,0x5004,0x4025,0x7046,
+	0x6067,0x83b9,0x9398,0xa3fb,0xb3da,0xc33d,0xd31c,0xe37f,0xf35e,0x02b1,0x1290,
+	0x22f3,0x32d2,0x4235,0x5214,0x6277,0x7256,0xb5ea,0xa5cb,0x95a8,0x8589,0xf56e,
+	0xe54f,0xd52c,0xc50d,0x34e2,0x24c3,0x14a0,0x0481,0x7466,0x6447,0x5424,0x4405,
+	0xa7db,0xb7fa,0x8799,0x97b8,0xe75f,0xf77e,0xc71d,0xd73c,0x26d3,0x36f2,0x0691,
+	0x16b0,0x6657,0x7676,0x4615,0x5634,0xd94c,0xc96d,0xf90e,0xe92f,0x99c8,0x89e9,
+	0xb98a,0xa9ab,0x5844,0x4865,0x7806,0x6827,0x18c0,0x08e1,0x3882,0x28a3,0xcb7d,
+	0xdb5c,0xeb3f,0xfb1e,0x8bf9,0x9bd8,0xabbb,0xbb9a,0x4a75,0x5a54,0x6a37,0x7a16,
+	0x0af1,0x1ad0,0x2ab3,0x3a92,0xfd2e,0xed0f,0xdd6c,0xcd4d,0xbdaa,0xad8b,0x9de8,
+	0x8dc9,0x7c26,0x6c07,0x5c64,0x4c45,0x3ca2,0x2c83,0x1ce0,0x0cc1,0xef1f,0xff3e,
+	0xcf5d,0xdf7c,0xaf9b,0xbfba,0x8fd9,0x9ff8,0x6e17,0x7e36,0x4e55,0x5e74,0x2e93,
+	0x3eb2,0x0ed1,0x1ef0
+    };
+
+void Crc(WORD& aCrc,const void* aPtr,int aLength)
+//
+// Perform a CCITT CRC checksum.
+//
+	{
+
+	const BYTE* pB=(const BYTE*)aPtr;
+	const BYTE* pE=pB+aLength;
+	UINT crc=aCrc;
+    while (pB<pE)
+		crc=(crc<<8)^crcTab[((crc>>8)^*pB++)&0xff];
+	aCrc=(WORD)crc;
+	}
+
+UINT checkSum(const void* aPtr)
+//
+// Checksum every other byte
+//
+	{
+
+	const BYTE* pB=(const BYTE*)aPtr;
+	const BYTE* pE=pB+(KMaxCheckedUid*sizeof(TUid));
+	BYTE buf[(KMaxCheckedUid*sizeof(TUid))>>1];
+	BYTE* pT=(&buf[0]);
+	while (pB<pE)
+		{
+		*pT++=(*pB);
+		pB+=2;
+		}
+	WORD crc=0;
+	Crc(crc,&buf[0],(KMaxCheckedUid*sizeof(TUid))>>1);
+	return(crc);
+	}
+	
+int TUid::operator==(const TUid& aUid) const
+//
+// Compare UID's for equality
+//
+	{
+
+	return(iUid==aUid.iUid);
+	}
+
+int TUid::operator!=(const TUid& aUid) const
+//
+// Compare UID's for equality
+//
+	{
+
+	return(iUid!=aUid.iUid);
+	}
+
+TUidType::TUidType()
+//
+// Constructor
+//
+    {
+
+	memset(this,0,sizeof(TUidType));
+    }
+
+TUidType::TUidType(TUid aUid1)
+//
+// Constructor
+//
+    {
+
+
+	memset(this,0,sizeof(TUidType));
+    iUid[0]=aUid1;
+    }
+
+TUidType::TUidType(TUid aUid1,TUid aUid2)
+//
+// Constructor
+//
+    {
+
+    iUid[0]=aUid1;
+    iUid[1]=aUid2;
+    iUid[2]=KNullUid;
+    }
+
+TUidType::TUidType(TUid aUid1,TUid aUid2,TUid aUid3)
+//
+// Constructor
+//
+    {
+
+
+    iUid[0]=aUid1;
+    iUid[1]=aUid2;
+    iUid[2]=aUid3;
+    }
+
+int TUidType::operator==(const TUidType& aUidType) const
+//
+// TRUE if equal.
+//
+    {
+
+    return(iUid[0]==aUidType.iUid[0] &&
+           iUid[1]==aUidType.iUid[1] &&
+           iUid[2]==aUidType.iUid[2]);
+    }
+
+int TUidType::operator!=(const TUidType& aUidType) const
+//
+// TRUE if not equal.
+//
+    {
+
+
+    return(!(*this==aUidType));
+    }
+
+const TUid& TUidType::operator[](int anIndex) const
+//
+// Array operator.
+//
+    {
+
+	return(iUid[anIndex]);
+    }
+
+TUid TUidType::MostDerived() const
+//
+// Return the most derived type
+//
+    {
+
+    if (iUid[2]!=KNullUid)
+        return(iUid[2]);
+    if (iUid[1]!=KNullUid)
+        return(iUid[1]);
+    return(iUid[0]);
+    }
+
+int TUidType::IsPresent(TUid aUid) const
+//
+// TRUE if aUid is present as any type.
+//
+    {
+
+	return(iUid[0]==aUid || iUid[1]==aUid || iUid[2]==aUid);
+    }
+
+int TUidType::IsValid() const
+//
+// TRUE if one of the type is not NULL.
+//
+    {
+
+    return(MostDerived()!=KNullUid);
+    }
+
+TCheckedUid::TCheckedUid()
+//
+// Constructor
+//
+	{
+
+	memset(this,0,sizeof(TCheckedUid));
+	}
+
+TCheckedUid::TCheckedUid(const TUidType& aUidType)
+//
+// Constructor
+//
+	{
+
+    Set(aUidType);
+    }
+
+void TCheckedUid::Set(const TUidType& aUidType)
+//
+// Set from a aUidType
+//
+	{
+
+    iType=aUidType;
+    iCheck=Check();
+    }
+
+UINT TCheckedUid::Check() const
+//
+// Return the checksum of the UIDs
+//
+	{
+
+	return((checkSum(((BYTE*)this)+1)<<16)|checkSum((BYTE*)this));
+	}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/e32uid/uidcrc.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,87 @@
+// Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <e32std.h>
+#include <e32std_private.h>
+#include <e32uid.h>
+
+// Get round the privateness of the checksum etc.
+// See also PE_TRAN.CPP TE32ImageUids
+
+class TCheckedUidX : public TCheckedUid
+	{
+public:
+	inline TCheckedUidX(TUint uids[3])
+		: TCheckedUid(TUidType(TUid::Uid(uids[1]),TUid::Uid(uids[2]),TUid::Uid(uids[3]))) 
+		{}
+	inline TUint CRC() 
+		{ return Check(); }
+	};
+
+int usage()
+	{
+	fprintf(stderr, "uidcrc <uid1> <uid2> <uid3> [ <outputfile> ]\n");
+	return -1;
+	}
+
+int main(int argc, char* argv[])
+	{
+	if (argc<4 || argc>5)
+		return usage();
+
+	TUint uids[5];
+	int i=0;
+
+	for (i=1; i<4; i++)
+		{
+		char* endptr = "failed";
+		uids[i] = strtoul(argv[i],&endptr,0);
+		if (*endptr!='\0')
+			{
+			fprintf(stderr, "invalid uid%d >%s<\n",i,argv[i]);
+			return -1;
+			}
+		}
+
+	TCheckedUidX checked(uids);
+	uids[4] = checked.CRC();
+
+	if (argc==5)
+		{
+		FILE* fp=fopen(argv[4], "wb");
+		if (fp==0)
+			{
+			fprintf(stderr, "cannot open %s for writing\n", argv[4]);
+			return -1;
+			}
+		for (i=1; i<5; i++)
+			{
+			TUint word=uids[i];
+			unsigned char bytes[4];
+			bytes[0] = (unsigned char)( word     &0xFF);
+			bytes[1] = (unsigned char)((word>> 8)&0xFF);
+			bytes[2] = (unsigned char)((word>>16)&0xFF);
+			bytes[3] = (unsigned char)((word>>24)&0xFF);
+			fwrite(bytes, 4, 1, fp);
+			}
+		fclose(fp);
+		return 0;
+		}
+
+	printf("0x%08x 0x%08x 0x%08x 0x%08x\n", uids[1], uids[2], uids[3], uids[4]);
+	return 0;
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/group/elf2e32.mmp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,36 @@
+// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+
+target			elf2e32.exe
+targettype		exe
+
+sourcepath	../source
+source 	    deffile.cpp  deflatecompress.cpp  dll_fb_target.cpp  dll_rebuild_target.cpp  e32exporttable.cpp 
+source	 	filedump.cpp  e32imagefile.cpp elf2e32.cpp  elffilesupplied.cpp errorhandler.cpp exetarget.cpp exexp_fb_target.cpp 
+source	 	exexp_rebuild_target.cpp  export_type_fb_target.cpp  export_type_rebuild_target.cpp  export_type_target.cpp  h_utl.cpp 
+source	 	huffman.cpp  imgdump.cpp  inflate.cpp  librarytarget.cpp  main.cpp  messagehandler.cpp  messageimplementation.cpp 
+source	 	parameterlistinterface.cpp  parametermanager.cpp  pl_common.cpp  pl_dllsymbol.cpp 	pl_dso_handler.cpp  pl_elfconsumer.cpp 
+source	 	pl_elfexecutable.cpp  pl_elfexports.cpp  pl_elfimportrelocation.cpp  pl_elfimports.cpp  pl_elflocalrelocation.cpp  pl_elfproducer.cpp 
+source	 	pl_elfrelocation.cpp  pl_elfrelocations.cpp  pl_symbol.cpp  polydll_fb_target.cpp  polydll_rebuild_target.cpp  usecasebase.cpp 
+source	 	byte_pair.cpp  pagedcompress.cpp checksum.cpp stdexe_target.cpp
+
+OS_LAYER_SYSTEMINCLUDE_SYMBIAN
+userinclude		../source
+userinclude		../include
+
+option 	GCC -w
+
+VENDORID 0x70000001
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/include/h_ver.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,24 @@
+// Copyright (c) 1996-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#ifndef __H_VER_H__
+#define __H_VER_H__
+
+const TInt MajorVersion=2;
+const TInt MinorVersion=1;
+const TInt Build=15;
+
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/byte_pair.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,488 @@
+// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#include "byte_pair.h"
+
+
+#undef ASSERT
+#define ASSERT(c)	if(!(c))	\
+						{		\
+						__BREAKPOINT()	\
+						}
+
+const TInt MaxBlockSize = 0x1000;
+
+TUint16 PairCount[0x10000];
+TUint16 PairBuffer[MaxBlockSize*2];
+
+TUint16 GlobalPairs[0x10000] = {0};
+TUint16 GlobalTokenCounts[0x100] = {0};
+
+TUint16 ByteCount[0x100+4];
+
+void CountBytes(TUint8* data, TInt size)
+	{
+	memset(ByteCount,0,sizeof(ByteCount));
+	TUint8* dataEnd = data+size;
+	while(data<dataEnd)
+		++ByteCount[*data++];
+	}
+
+
+inline void ByteUsed(TInt b)
+	{
+	ByteCount[b] = 0xffff;
+	}
+
+
+// 11915620
+// 11913551  	return -ByteCount[b1]-ByteCount[b2];
+// 11913185
+
+#if 0
+int TieBreak(int b1,int b2)
+	{
+	int i;
+	int x = 0;
+	for(i=0; i<0x100; i++)
+		x += PairCount[(b1<<8)+i];
+	int y = 0;
+	for(i=b2; i<0x10000; i+=0x100)
+		y += PairCount[i];
+	return -x-y;
+	}
+#endif
+
+int TieBreak(int b1,int b2)
+	{
+	return -ByteCount[b1]-ByteCount[b2];
+	}
+
+TInt MostCommonPair(TInt& pair, TUint8* data, TInt size, TInt minFrequency, TInt marker)
+	{
+	memset(PairCount,0,sizeof(PairCount));
+	TUint8* dataEnd = data+size-1;
+	TInt pairsFound = 0;
+	TInt lastPair = -1;
+	while(data<dataEnd)
+		{
+		TInt b1 = *data++;
+		if(b1==marker)
+			{
+			// skip marker and following byte
+			lastPair = -1;
+			++data;
+			continue;
+			}
+		TInt b2 = *data;
+		if(b2==marker)
+			{
+			// skip marker and following byte
+			lastPair = -1;
+			data+=2;
+			continue;
+			}
+		TInt p = (b2<<8)|b1;
+		if(p==lastPair)
+			{
+			// ensure a pair of identical bytes don't get double counted
+			lastPair = -1;
+			continue;
+			}
+		lastPair = p;
+		++PairCount[p];
+		if(PairCount[p]==minFrequency)
+			PairBuffer[pairsFound++] = (TUint16)p;
+		}
+
+	TInt bestCount = -1;
+	TInt bestPair = -1;
+	TInt bestTieBreak = 0;
+	TInt p;
+	while(pairsFound--)
+		{
+		p = PairBuffer[pairsFound];
+		TInt f=PairCount[p];
+		if(f>bestCount)
+			{
+			bestCount = f;
+			bestPair = p;
+			bestTieBreak = TieBreak(p&0xff,p>>8);
+			}
+		else if(f==bestCount)
+			{
+			TInt tieBreak = TieBreak(p&0xff,p>>8);
+			if(tieBreak>bestTieBreak)
+				{
+				bestCount = f;
+				bestPair = p;
+				bestTieBreak = tieBreak;
+				}
+			}
+		}
+	pair = bestPair;
+	return bestCount;
+	}
+
+
+TInt LeastCommonByte(TInt& byte)
+	{
+	TInt bestCount = 0xffff;
+	TInt bestByte = -1;
+	for(TInt b=0; b<0x100; b++)
+		{
+		TInt f = ByteCount[b];
+		if(f<bestCount)
+			{
+			bestCount = f;
+			bestByte = b;
+			}
+		}
+	byte = bestByte;
+	return bestCount;
+	}
+
+
+TInt Pak(TUint8* dst, TUint8* src, TInt size)
+	{
+	TInt originalSize = size;
+	TUint8* dst2 = dst+size*2;
+	TUint8* in = src;
+	TUint8* out = dst;
+
+	TUint8 tokens[0x100*3];
+	TInt tokenCount = 0;
+
+	CountBytes(in,size);
+
+	TInt marker = -1;
+	TInt overhead = 1+3+LeastCommonByte(marker);
+	ByteUsed(marker);
+
+	TUint8* inEnd = in+size;
+	TUint8* outStart = out;
+	while(in<inEnd)
+		{
+		TInt b=*in++;
+		if(b==marker)
+			*out++ = (TUint8)b;
+		*out++ = (TUint8)b;
+		}
+	size = out-outStart;
+
+	TInt outToggle = 1;
+	in = dst;
+	out = dst2;
+
+	for(TInt r=256; r>0; --r)
+		{
+		TInt byte;
+		TInt byteCount = LeastCommonByte(byte);
+		TInt pair;
+		TInt pairCount = MostCommonPair(pair,in,size,overhead+1,marker);
+		TInt saving = pairCount-byteCount;
+		if(saving<=overhead)
+			break;
+
+		overhead = 3;
+		if(tokenCount>=32)
+			overhead = 2;
+
+		TUint8* d=tokens+3*tokenCount;
+		++tokenCount;
+		*d++ = (TUint8)byte;
+		ByteUsed(byte);
+		*d++ = (TUint8)pair;
+		ByteUsed(pair&0xff);
+		*d++ = (TUint8)(pair>>8);
+		ByteUsed(pair>>8);
+		++GlobalPairs[pair];
+
+		inEnd = in+size;
+		outStart = out;
+		while(in<inEnd)
+			{
+			TInt b=*in++;
+			if(b==marker)
+				{
+				*out++ = (TUint8)marker;
+				b = *in++;
+				}
+			else if(b==byte)
+				{
+				*out++ = (TUint8)marker;
+				--byteCount;
+				}
+			else if(b==(pair&0xff) && in<inEnd && *in==(pair>>8))
+				{
+				++in;
+				b = byte;
+				--pairCount;
+				}
+			*out++ = (TUint8)b;
+			}
+		ASSERT(!byteCount);
+		ASSERT(!pairCount);
+		size = out-outStart;
+
+		outToggle ^= 1;
+		if(outToggle)
+			{
+			in = dst;
+			out = dst2;
+			}
+		else
+			{
+			in = dst2;
+			out = dst;
+			}
+		}
+
+	// sort tokens with a bubble sort...
+	for(TInt x=0; x<tokenCount-1; x++)
+		for(TInt y=x+1; y<tokenCount; y++)
+			if(tokens[x*3]>tokens[y*3])
+				{
+				TInt z = tokens[x*3];
+				tokens[x*3] = tokens[y*3];
+				tokens[y*3] = (TUint8)z;
+				z = tokens[x*3+1];
+				tokens[x*3+1] = tokens[y*3+1];
+				tokens[y*3+1] = (TUint8)z;
+				z = tokens[x*3+2];
+				tokens[x*3+2] = tokens[y*3+2];
+				tokens[y*3+2] = (TUint8)z;
+				}
+
+	// check for not being able to compress...
+	if(size>originalSize)
+		{
+		*dst++ = 0; // store zero token count
+		memcpy(dst,src,originalSize); // store original data
+		return originalSize+1;
+		}
+
+	// make sure data is in second buffer (dst2)
+	if(in!=dst2)
+		memcpy(dst2,dst,size);
+
+	// store tokens...
+	TUint8* originalDst = dst;
+	*dst++ = (TUint8)tokenCount;
+	if(tokenCount)
+		{
+		*dst++ = (TUint8)marker;
+		if(tokenCount<32)
+			{
+			memcpy(dst,tokens,tokenCount*3);
+			dst += tokenCount*3;
+			}
+		else
+			{
+			TUint8* bitMask = dst;
+			memset(bitMask,0,32);
+			dst += 32;
+			TUint8* d=tokens;
+			do
+				{
+				TInt t=*d++;
+				bitMask[t>>3] |= (1<<(t&7));
+				*dst++ = *d++;
+				*dst++ = *d++;
+				}
+			while(--tokenCount);
+			}
+		}
+	// store data...
+	memcpy(dst,dst2,size);
+	dst += size;
+
+	// get stats...
+	++GlobalTokenCounts[tokenCount];
+
+	// return total size of compressed data...
+	return dst-originalDst;
+	}
+
+
+TInt Unpak(TUint8* dst, TInt dstSize, TUint8* src, TInt srcSize, TUint8*& srcNext)
+	{
+	TUint8* dstStart = dst;
+	TUint8* dstEnd = dst+dstSize;
+	TUint8* srcEnd = src+srcSize;
+
+	TUint32 LUT[0x100/2];
+	TUint8* LUT0 = (TUint8*)LUT;
+	TUint8* LUT1 = LUT0+0x100;
+
+	TUint8 stack[0x100];
+	TUint8* stackStart = stack+sizeof(stack);
+	TUint8* sp = stackStart;
+
+	TUint32 marker = ~0u;
+	TInt numTokens;
+	TUint32 p1;
+	TUint32 p2;
+
+	TUint32* l = (TUint32*)LUT;
+	TUint32 b = 0x03020100;
+	TUint32 step = 0x04040404;
+	do
+		{
+		*l++ = b;
+		b += step;
+		}
+	while(b>step);
+
+	if(src>=srcEnd)
+		goto error;
+	numTokens = *src++;
+	if(numTokens)
+		{
+		if(src>=srcEnd)
+			goto error;
+		marker = *src++;
+		LUT0[marker] = (TUint8)~marker;
+
+		if(numTokens<32)
+			{
+			TUint8* tokenEnd = src+3*numTokens;
+			if(tokenEnd>srcEnd)
+				goto error;
+			do
+				{
+				TInt b = *src++;
+				TInt p1 = *src++;
+				TInt p2 = *src++;
+				LUT0[b] = (TUint8)p1;
+				LUT1[b] = (TUint8)p2;
+				}
+			while(src<tokenEnd);
+			}
+		else
+			{
+			TUint8* bitMask = src;
+			src += 32;
+			if(src>srcEnd)
+				goto error;
+			TInt b=0;
+			do
+				{
+				TUint8 mask = bitMask[b>>3];
+				if(mask&(1<<(b&7)))
+					{
+					if(src>srcEnd)
+						goto error;
+					TInt p1 = *src++;
+					if(src>srcEnd)
+						goto error;
+					TInt p2 = *src++;
+					LUT0[b] = (TUint8)p1;
+					LUT1[b] = (TUint8)p2;		
+					--numTokens;
+					}
+				++b;
+				}
+			while(b<0x100);
+			if(numTokens)
+				goto error;
+			}
+		}
+
+	if(src>=srcEnd)
+		goto error;
+	b = *src++;
+	if(dst>=dstEnd)
+		goto error;
+	p1 = LUT0[b];
+	if(p1!=b)
+		goto not_single;
+next:
+	if(src>=srcEnd)
+		goto done_s;
+	b = *src++;
+	*dst++ = (TUint8)p1;
+	if(dst>=dstEnd)
+		goto done_d;
+	p1 = LUT0[b];
+	if(p1==b)
+		goto next;
+
+not_single:
+	if(b==marker)
+		goto do_marker;
+
+do_pair:
+	p2 = LUT1[b];
+	b = p1;
+	p1 = LUT0[b];
+	if(sp<=stack)
+		goto error;
+	*--sp = (TUint8)p2;
+
+recurse:
+	if(b!=p1)
+		goto do_pair;
+
+	if(sp==stackStart)
+		goto next;
+	b = *sp++;
+	if(dst>=dstEnd)
+		goto error;
+	*dst++ = (TUint8)p1;
+	p1 = LUT0[b];
+	goto recurse;
+
+do_marker:
+	if(src>=srcEnd)
+		goto error;
+	p1 = *src++;
+	goto next;
+
+error:
+	srcNext = 0;
+	return KErrCorrupt;
+
+done_s:
+	*dst++ = (TUint8)p1;
+	srcNext = src;
+	return dst-dstStart;
+
+done_d:
+	if(dst>=dstEnd)
+		--src;
+	srcNext = src;
+	return dst-dstStart;
+	}
+
+
+TUint8 PakBuffer[MaxBlockSize*4];
+TUint8 UnpakBuffer[MaxBlockSize];
+
+
+TInt BytePairCompress(TUint8* dst, TUint8* src, TInt size)
+	{
+	ASSERT(size<=MaxBlockSize);
+	TInt compressedSize = Pak(PakBuffer,src,size);
+	TUint8* pakEnd;
+	TInt us = Unpak(UnpakBuffer,MaxBlockSize,PakBuffer,compressedSize,pakEnd);
+	ASSERT(us==size)
+	ASSERT(pakEnd==PakBuffer+compressedSize)
+	ASSERT(!memcmp(src,UnpakBuffer,size))
+	if(compressedSize>=size)
+		return KErrTooBig;
+	memcpy(dst,PakBuffer,compressedSize);
+	return compressedSize;
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/byte_pair.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,52 @@
+// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#ifndef BYTE_PAIR_H
+#define BYTE_PAIR_H
+#define __PLACEMENT_NEW_INLINE
+#define __PLACEMENT_VEC_NEW_INLINE
+/*
+#ifdef __VC32__
+ #ifdef __MSVCDOTNET__
+  #include <strstream>
+  #include <iomanip>
+//  #include <ostream.h>
+ #else //!__MSVCDOTNET__
+  #include <strstrea.h>
+  #include <iomanip.h>
+ #endif //__MSVCDOTNET__
+#else // !__VC32__
+ #include <strstream.h>
+ #include <iomanip.h>
+#endif // __VC32__
+*/
+#ifdef __TOOLS2__
+#include <sstream>
+#include <ostream>
+using namespace std;
+#else
+#include <strstream>
+#include <ostream.h>
+#endif
+
+
+#include <e32cmn.h>
+
+TInt BytePairCompress(TUint8* dst, TUint8* src, TInt size);
+TInt Pak(TUint8* dst, TUint8* src, TInt size);
+TInt Unpak(TUint8* dst, TInt dstSize, TUint8* src, TInt srcSize, TUint8*& srcNext);
+void BytePairCompress(char * bytes, TInt size, ostream &os);
+
+#endif
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/checksum.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,194 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation of the checksum for the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+#include "checksum.h"
+#include "e32imagedefs.h"
+
+typedef unsigned long uint32;
+typedef unsigned short uint16;
+typedef unsigned char uint8;
+
+/**
+Checksum every other byte
+
+@param aPtr    A pointer to the start of the data to be checksummed. 
+
+@internalComponent
+@released
+*/
+uint32 checkSum(const void *aPtr)
+{
+
+	const uint8 * pB=(const uint8 *)aPtr;
+	const uint8 * pE=pB+(KMaxCheckedUid*sizeof(TUid));
+	uint8 buf[(KMaxCheckedUid*sizeof(TUid))>>1];
+	uint8 * pT=(&buf[0]);
+	while (pB<pE)
+	{
+		*pT++=(*pB);
+		pB+=2;
+	}
+	unsigned short crc=0;
+	Crc(crc,&buf[0],(KMaxCheckedUid*sizeof(TUid))>>1);
+	return(crc);
+}
+
+//crc table
+static const uint32 crcTab[256] =
+    {
+	0x0000,0x1021,0x2042,0x3063,0x4084,0x50a5,0x60c6,0x70e7,0x8108,0x9129,0xa14a,
+	0xb16b,0xc18c,0xd1ad,0xe1ce,0xf1ef,0x1231,0x0210,0x3273,0x2252,0x52b5,0x4294,
+	0x72f7,0x62d6,0x9339,0x8318,0xb37b,0xa35a,0xd3bd,0xc39c,0xf3ff,0xe3de,0x2462,
+	0x3443,0x0420,0x1401,0x64e6,0x74c7,0x44a4,0x5485,0xa56a,0xb54b,0x8528,0x9509,
+	0xe5ee,0xf5cf,0xc5ac,0xd58d,0x3653,0x2672,0x1611,0x0630,0x76d7,0x66f6,0x5695,
+	0x46b4,0xb75b,0xa77a,0x9719,0x8738,0xf7df,0xe7fe,0xd79d,0xc7bc,0x48c4,0x58e5,
+	0x6886,0x78a7,0x0840,0x1861,0x2802,0x3823,0xc9cc,0xd9ed,0xe98e,0xf9af,0x8948,
+	0x9969,0xa90a,0xb92b,0x5af5,0x4ad4,0x7ab7,0x6a96,0x1a71,0x0a50,0x3a33,0x2a12,
+	0xdbfd,0xcbdc,0xfbbf,0xeb9e,0x9b79,0x8b58,0xbb3b,0xab1a,0x6ca6,0x7c87,0x4ce4,
+	0x5cc5,0x2c22,0x3c03,0x0c60,0x1c41,0xedae,0xfd8f,0xcdec,0xddcd,0xad2a,0xbd0b,
+	0x8d68,0x9d49,0x7e97,0x6eb6,0x5ed5,0x4ef4,0x3e13,0x2e32,0x1e51,0x0e70,0xff9f,
+	0xefbe,0xdfdd,0xcffc,0xbf1b,0xaf3a,0x9f59,0x8f78,0x9188,0x81a9,0xb1ca,0xa1eb,
+	0xd10c,0xc12d,0xf14e,0xe16f,0x1080,0x00a1,0x30c2,0x20e3,0x5004,0x4025,0x7046,
+	0x6067,0x83b9,0x9398,0xa3fb,0xb3da,0xc33d,0xd31c,0xe37f,0xf35e,0x02b1,0x1290,
+	0x22f3,0x32d2,0x4235,0x5214,0x6277,0x7256,0xb5ea,0xa5cb,0x95a8,0x8589,0xf56e,
+	0xe54f,0xd52c,0xc50d,0x34e2,0x24c3,0x14a0,0x0481,0x7466,0x6447,0x5424,0x4405,
+	0xa7db,0xb7fa,0x8799,0x97b8,0xe75f,0xf77e,0xc71d,0xd73c,0x26d3,0x36f2,0x0691,
+	0x16b0,0x6657,0x7676,0x4615,0x5634,0xd94c,0xc96d,0xf90e,0xe92f,0x99c8,0x89e9,
+	0xb98a,0xa9ab,0x5844,0x4865,0x7806,0x6827,0x18c0,0x08e1,0x3882,0x28a3,0xcb7d,
+	0xdb5c,0xeb3f,0xfb1e,0x8bf9,0x9bd8,0xabbb,0xbb9a,0x4a75,0x5a54,0x6a37,0x7a16,
+	0x0af1,0x1ad0,0x2ab3,0x3a92,0xfd2e,0xed0f,0xdd6c,0xcd4d,0xbdaa,0xad8b,0x9de8,
+	0x8dc9,0x7c26,0x6c07,0x5c64,0x4c45,0x3ca2,0x2c83,0x1ce0,0x0cc1,0xef1f,0xff3e,
+	0xcf5d,0xdf7c,0xaf9b,0xbfba,0x8fd9,0x9ff8,0x6e17,0x7e36,0x4e55,0x5e74,0x2e93,
+	0x3eb2,0x0ed1,0x1ef0
+};
+
+/**
+Performs a CCITT CRC checksum on the specified data.
+
+On return from this function, the referenced 16 bit integer contains the checksummed 
+value.
+
+@param aCrc    A reference to a 16 bit integer to contain the checksummed value. 
+@param aPtr    A pointer to the start of the data to be checksummed. 
+@param aLength The length of the data to be checksummed.
+@internalComponent
+@released
+*/
+void Crc(unsigned short & aCrc,const void * aPtr,size_t aLength)
+{
+
+	const uint8 * pB=(const uint8 *)aPtr;
+	const uint8 * pE=pB+aLength;
+	uint32 crc=aCrc;
+    while (pB<pE)
+		crc=(crc<<8)^crcTab[((crc>>8)^*pB++)&0xff];
+	aCrc=(unsigned short)crc;
+}
+
+//crc table
+static const uint32 CrcTab32[256] =
+	{
+	0x00000000, 0x77073096, 0xee0e612c, 0x990951ba,
+	0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3,
+	0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988,
+	0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91,
+	0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de,
+	0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7,
+	0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec,
+	0x14015c4f, 0x63066cd9, 0xfa0f3d63, 0x8d080df5,
+	0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172,
+	0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b,
+	0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940,
+	0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59,
+	0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116,
+	0x21b4f4b5, 0x56b3c423, 0xcfba9599, 0xb8bda50f,
+	0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924,
+	0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d,
+	0x76dc4190, 0x01db7106, 0x98d220bc, 0xefd5102a,
+	0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433,
+	0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818,
+	0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01,
+	0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e,
+	0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457,
+	0x65b0d9c6, 0x12b7e950, 0x8bbeb8ea, 0xfcb9887c,
+	0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65,
+	0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2,
+	0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb,
+	0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0,
+	0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9,
+	0x5005713c, 0x270241aa, 0xbe0b1010, 0xc90c2086,
+	0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f,
+	0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4,
+	0x59b33d17, 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad,
+	0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a,
+	0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683,
+	0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8,
+	0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1,
+	0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe,
+	0xf762575d, 0x806567cb, 0x196c3671, 0x6e6b06e7,
+	0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc,
+	0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5,
+	0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252,
+	0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b,
+	0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60,
+	0xdf60efc3, 0xa867df55, 0x316e8eef, 0x4669be79,
+	0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236,
+	0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f,
+	0xc5ba3bbe, 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04,
+	0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d,
+	0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a,
+	0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713,
+	0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38,
+	0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21,
+	0x86d3d2d4, 0xf1d4e242, 0x68ddb3f8, 0x1fda836e,
+	0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777,
+	0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c,
+	0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45,
+	0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2,
+	0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db,
+	0xaed16a4a, 0xd9d65adc, 0x40df0b66, 0x37d83bf0,
+	0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9,
+	0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6,
+	0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf,
+	0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94,
+	0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d
+	};
+
+/**
+Performs a CCITT CRC-32 checksum on the specified data.
+
+On return from this function, the referenced 32 bit integer contains the CRC
+value.
+
+@param aCrc		A reference to a 32 bit integer to contain the CRC value. 
+@param aPtr		A pointer to the start of the data to be checksummed. 
+@param aLength	The length of the data to be checksummed.
+@internalComponent
+@released
+*/
+void Crc32(unsigned long & aCrc, const void * aPtr, size_t aLength)
+{
+	const uint8 * p = (const uint8 *)aPtr;
+	const uint8 * q = p + aLength;
+	unsigned long crc = aCrc;
+	while (p < q)
+		crc = (crc >> 8) ^ CrcTab32[(crc ^ *p++) & 0xff];
+	aCrc = crc;
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/checksum.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,31 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation of the Header file for CheckSum implementation of the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+#ifndef CHECKSUM_H
+#define CHECKSUM_H
+
+#include <stddef.h>
+unsigned long checkSum(const void *aPtr);
+void Crc(unsigned short & aCrc,const void * aPtr,size_t aLength);
+void Crc32(unsigned long & aCrc, const void * aPtr, size_t aLength);
+
+#endif // CHECKSUM_H
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/deffile.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,1002 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation of the Class DefFile for the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+//
+#include <stdio.h>
+#include <iostream>
+#include <stdlib.h>
+
+#include "pl_symbol.h"
+#include "deffile.h"
+#include "errorhandler.h"
+
+#ifdef __LINUX__
+    #include "h_utl.h"
+    #define STRUPR strupr
+#else 
+    #define STRUPR _strupr
+#endif
+
+using std::cerr;
+using std::cout;
+using std::endl;
+
+#define SUCCESS 1
+#define FAILURE 0
+
+/**
+Destructor to release all the allocated memory
+@internalComponent
+@released
+*/
+DefFile::~DefFile()
+{
+	if(iSymbolList && iSymbolList->size())
+	{
+		SymbolList::iterator aItr = iSymbolList->begin();
+		SymbolList::iterator last = iSymbolList->end();
+		Symbol *temp;
+
+		while(aItr != last)
+		{
+			temp = *aItr;
+			aItr++;
+			delete temp;
+		}
+		iSymbolList->clear();
+	}
+	delete iSymbolList;
+}
+/**
+Function to Get File Size.
+@param fptrDef - File pointer to DEF file
+@internalComponent
+@released
+*/
+int DefFile::GetFileSize(FILE *fptrDef)
+{
+	int fileSize,status;
+
+	status=fseek(fptrDef, 0, SEEK_END);
+	if(status!=0)
+	{
+		throw FileError(FILEREADERROR,iFileName);
+	}
+	fileSize=ftell(fptrDef);
+	rewind(fptrDef);
+
+	return fileSize;
+
+}
+
+/**
+Function to Open File and read it in memory.
+@param defFile - DEF File name
+@internalComponent
+@released
+*/
+char* DefFile::OpenDefFile(char * defFile)
+{
+	int fileSize;
+	char *defFileEntries;
+	FILE *fptrDef;
+
+	iFileName=defFile;
+	if((fptrDef=fopen(defFile,"rb"))==NULL)
+	{
+		throw FileError(FILEOPENERROR,defFile);
+	}
+
+	fileSize=GetFileSize(fptrDef);
+
+	if((defFileEntries= new char[fileSize+2]) ==NULL)
+	{
+		throw MemoryAllocationError(MEMORYALLOCATIONERROR,defFile);
+	}
+
+	//Getting whole file in memory
+	if(!fread(defFileEntries, fileSize, 1, fptrDef))
+	{
+		throw FileError(FILEREADERROR,defFile);
+	}
+
+	//Adding ENTER at end
+	*(defFileEntries+fileSize)='\n';
+	//Adding '\0' at end
+	*(defFileEntries+fileSize+1)='\0';
+
+	fclose(fptrDef);
+
+	return defFileEntries;
+
+}
+
+/**
+Function to Parse Def File which has been read in buffer.
+@param defFileEntries - pointer to def file entries which has been read in buffer
+@internalComponent
+@released
+*/
+void DefFile::ParseDefFile(char *defFileEntries)
+{
+	iSymbolList = new SymbolList;
+
+	int ordinalNo = 0;
+	int symbolType=SymbolTypeCode;
+	int PreviousOrdinal=0;
+	char MultiLineStatement[1024]="";
+	bool NAMEorLIBRARYallowed=true;
+	int LineNum = 0;
+	bool isComment;
+
+	char *lineToken;
+	int aLineLength = 0, width = 0;
+	unsigned i;
+	char *ptrEntry,*ptrEntryType;
+	char entryType[256];
+	bool entryFlag;
+
+
+	lineToken=strtok(defFileEntries,"\n");
+	while(lineToken != NULL)
+	{
+		symbolType=SymbolTypeCode;
+		isComment=false;
+		entryType[0]='\0';
+		aLineLength = strlen(lineToken);
+		LineNum++;
+
+		if (lineToken == NULL || lineToken[0]==13)
+		{
+			lineToken=strtok(NULL,"\n");
+			continue;
+		}
+
+		// comment lines
+		if (lineToken[0] == ';')
+		{
+			lineToken=strtok(NULL,"\n");
+			continue;
+		}
+
+		ptrEntry=lineToken;
+
+		if((!strstr(lineToken, "NONAME") && ((ptrEntryType=strstr(lineToken, "NAME")) != NULL)) ||
+			((ptrEntryType=strstr(lineToken, "EXPORTS")) != NULL) ||
+			((ptrEntryType=strstr(lineToken, "IMPORTS")) != NULL) ||
+			((ptrEntryType=strstr(lineToken, "SECTIONS")) != NULL) ||
+			((ptrEntryType=strstr(lineToken, "LIBRARY")) != NULL) ||
+			((ptrEntryType=strstr(lineToken, "DESCRIPTION")) != NULL)||
+			((ptrEntryType=strstr(lineToken, "STACKSIZE")) != NULL)||
+			((ptrEntryType=strstr(lineToken, "VERSION")) != NULL)
+			)
+		{
+			entryFlag=true;
+
+			for(i=0; ptrEntry!=ptrEntryType; i++,ptrEntry++)
+			{
+				switch(lineToken[i])
+				{
+				case ' ':
+				case '\t':
+					continue;
+				default:
+					entryFlag=false;
+					break;
+				}
+				if(entryFlag==false)
+					break;
+			}
+
+			if(entryFlag==false && !strcmp(MultiLineStatement,""))
+			{
+				throw DEFFileError(UNRECOGNIZEDTOKEN,iFileName,LineNum,lineToken);
+			}
+
+			if(entryFlag==true)
+			{
+				switch(ptrEntryType[0])
+				{
+				case 'E':
+				case 'I':
+				case 'L':
+				case 'V':
+					width=7;
+					break;
+				case 'S':
+					if(ptrEntryType[1]=='E')
+						width=8;
+					else
+						width=9;
+					break;
+				case 'N':
+					width=4;
+					break;
+				case 'D':
+					width=11;
+					break;
+				}
+			}
+
+			if(entryFlag==true)
+			{
+  				for(i=i+width; i<strlen(lineToken); i++)
+				{
+					switch(lineToken[i])
+					{
+					case ' ':
+					case '\t':
+						continue;
+					case '\r':
+					case '\0':
+						break;
+					default:
+						entryFlag=false;
+						break;
+					}
+
+					if(entryFlag==false)
+						break;
+				}
+			}
+
+			if(entryFlag==false && !strcmp(MultiLineStatement,""))
+			{
+				throw DEFFileError(UNRECOGNIZEDTOKEN,iFileName,LineNum,lineToken+i);
+			}
+
+			if(entryFlag==true)
+			{
+				strncpy(entryType, ptrEntryType, width);
+				entryType[width]='\0';
+
+				switch(ptrEntryType[0])
+				{
+				case 'E':		// check for multi-line sections starting
+					strcpy(MultiLineStatement, STRUPR(entryType)); // Uppercase token
+					NAMEorLIBRARYallowed = false;
+					lineToken = strtok(NULL, "\n" ); // Get the next line
+					continue;
+				case 'N':
+					break;
+				case 'L':
+					break;
+				case 'D':
+					break;
+				case 'S':
+				case 'V':
+					if(entryType[1]!='E')
+					{
+						// set MULTI-LINE statement to OFF
+						strcpy(MultiLineStatement, STRUPR(entryType)); // Uppercase token
+						// check single-line statements are specified correctly
+						// check NAME or LIBRARY statements aren't supplied incorrectly
+						if (!strcmp(entryType, "NAME") ||
+							!strcmp(entryType, "LIBRARY")
+							)
+						{
+							if (NAMEorLIBRARYallowed == false)
+							{
+								throw DEFFileError(NAMELIBRARYNOTCORRECT,iFileName,LineNum,lineToken);
+							}
+							lineToken=strtok(NULL,"\n");
+							continue;
+						}
+						NAMEorLIBRARYallowed = false;
+						lineToken=strtok(NULL,"\n");
+						continue;
+					}
+					continue;
+				case 'I':
+					strcpy(MultiLineStatement, STRUPR(entryType)); // Uppercase token
+					lineToken = strtok(NULL, "\n" ); // Get the next line
+					continue;
+				}
+			}
+
+		}
+		else
+		{
+			if (!strcmp(MultiLineStatement,""))
+		    {
+				throw DEFFileError(EXPORTSEXPECTED,iFileName,LineNum,lineToken);
+			}
+		}	
+			
+		// Get Export entries
+		if (!strcmp(MultiLineStatement,"EXPORTS"))
+		{
+			Symbol aSymbol(NULL, SymbolTypeCode);
+			if( Tokenize(lineToken, LineNum, aSymbol) )
+			{
+				Symbol *newSymbolEntry = new Symbol(aSymbol);
+				iSymbolList->push_back(newSymbolEntry);
+
+				ordinalNo = aSymbol.OrdNum();
+				//Check for ordinal sequence
+				if (ordinalNo != PreviousOrdinal+1)
+		   		{
+					throw DEFFileError(ORDINALSEQUENCEERROR,iFileName,LineNum,(char*)aSymbol.SymbolName());
+				}
+
+				PreviousOrdinal = ordinalNo;
+
+			}
+			lineToken=strtok(NULL,"\n");
+			continue;
+		}
+		else if(strcmp(MultiLineStatement,"")!=0)//For entry other than exports
+			lineToken = strtok(NULL, "\n" ); // Get the next line
+
+	}//End of while
+}
+
+/**
+This Function calls LineToken's Tokenize function.
+@param aTokens   - Input string at the current line number
+@param aLineNum  - Current line number
+@param aSymbol   - Symbol to be populated while parsing the line.
+Return value     - It returns true if a valid def file entry is found.
+@internalComponent
+@released
+*/
+bool DefFile::Tokenize(char* aTokens, int aLineNum, Symbol& aSymbol)
+{
+	/*
+	 * Pattern to match is:
+	 * START\s*(\S+)\s+@\s*(d+)\s*(NONAME)?\s*(R3UNUSED)?\s*(ABSENT)?\s*(;\s*(.*))END
+	 */
+	LineToken aLine(iFileName, aLineNum, aTokens, &aSymbol);
+	return aLine.Tokenize();
+}
+
+
+char * DefFilePatterns[] =
+	{
+		"NONAME",//index 0
+		"DATA",
+		"R3UNUSED",
+		"ABSENT"
+	};
+
+#define DEF_NONAME		0
+#define DEF_DATA		1
+#define DEF_R3UNUSED	2
+#define DEF_ABSENT		3
+
+/**
+This constructor creates an instance of LineToken class.
+@param aFileName - Def File Name.
+@param aLineNum  - Current line number
+@param aLn       - Input string at the current line number
+@param aSym      - Symbol to be populated while parsing the line.
+@internalComponent
+@released
+*/
+LineToken::LineToken(char* aFileName, int aLineNum, char *aLn, Symbol* aSym) : \
+		iLine(aLn) , iSymbol(aSym) , iOffset(0), iState(EInitState),iFileName(aFileName), iLineNum(aLineNum) 
+{
+}
+
+/**
+This function tokenizes the line and populates a symbol entry 
+if there is one.
+Return Value - True, if the current line has a valid def entry.
+@internalComponent
+@released
+*/
+bool LineToken::Tokenize()
+{
+	while (1) 
+	{
+		switch( iState )
+		{
+		case EFinalState:
+			return true;
+		case EInitState:
+			if( *(iLine + iOffset) == '\0' || 
+				*(iLine + iOffset) == '\r' || 
+				*(iLine + iOffset) == '\n')
+			{
+				/*
+				 * Skip empty lines.
+				 */
+				return false;
+			}
+			else
+			{
+				NextToken();
+			}
+			break;
+		default:
+			NextToken();
+			break;
+		}
+	}
+	return false;
+}
+
+/**
+This function parses a line of the def file based on the current 
+state it is in.
+@internalComponent
+@released
+*/
+void LineToken::NextToken()
+{
+	int aCurrentPos = 0;
+	char *aSymbolName;
+
+	switch( iState )
+	{
+	case EInitState:
+		if(IsWhiteSpace((iLine + iOffset), aCurrentPos))
+		{
+			IncrOffset(aCurrentPos);
+		}
+
+		if(IsWord(iLine + iOffset, aCurrentPos))
+		{
+			SetState(ESymbolName);
+		}
+	break;
+
+	case ESymbolName:
+	{
+		// Get the length of the symbol
+		IsWord(iLine + iOffset, aCurrentPos);
+
+		char *cmt = strchr(iLine + iOffset, ';');
+		char *aAlias = strchr(iLine + iOffset, '=');
+
+		if( aAlias && (!cmt || (aAlias < cmt)) )
+		{
+			int aAliasPos = aAlias - (iLine+ iOffset);
+
+			//Check if alias name is also supplied, they should be separated 
+			// by whitespace, i.e., SymbolName=AliasName is valid while, 
+			// SymbolName =AliasName is invalid.
+			if( aAliasPos > aCurrentPos)
+			{
+				char *aToken = (iLine + iOffset + aCurrentPos);
+				throw DEFFileError(UNRECOGNIZEDTOKEN, iFileName, iLineNum, aToken);
+			}
+
+			aSymbolName = new char[aAliasPos+1];
+			strncpy(aSymbolName, iLine + iOffset, aAliasPos);
+			aSymbolName[aAliasPos] = '\0';
+			char *aExportName = new char[aCurrentPos - aAliasPos + 1];
+			strncpy(aExportName, aAlias +1, (aCurrentPos - aAliasPos));
+			aExportName[(aCurrentPos - aAliasPos)] = '\0';
+			iSymbol->ExportName(aExportName);
+		}
+		else
+		{
+			aSymbolName = new char[aCurrentPos+1];
+			strncpy(aSymbolName, iLine+ iOffset, aCurrentPos);
+			aSymbolName[aCurrentPos] = '\0';
+		}
+		iSymbol->SymbolName(aSymbolName);
+		
+		IncrOffset(aCurrentPos);
+
+		if(IsWhiteSpace((iLine + iOffset), aCurrentPos))
+		{
+			IncrOffset(aCurrentPos);
+		}
+		
+		if(*(iLine+iOffset) == '@')
+		{
+			SetState(EAtSymbol);
+			IncrOffset(1);
+		}
+		else
+		{
+			/*
+			 * The first non-whitespace entry in a line is assumed to be the 
+			 * symbol name and a symbol name might also have a '@' char. Hence
+			 * there MUST be a whitespace between symbol name and '@'.
+			 */
+			throw DEFFileError(ATRATEMISSING,iFileName,iLineNum,(iLine+iOffset));
+		}
+	}
+	break;
+
+	case EAtSymbol:
+		if(IsWhiteSpace((iLine + iOffset), aCurrentPos))
+		{
+			IncrOffset(aCurrentPos);
+		}
+		
+		SetState(EOrdinal);
+		break;
+	case EOrdinal:
+	{
+		if(!IsDigit(iLine+iOffset, aCurrentPos ) )
+		{
+			throw DEFFileError(ORDINALNOTANUMBER, iFileName, iLineNum, (iLine+iOffset));
+		}
+		char aTmp[32];
+		strncpy(aTmp, iLine+iOffset, aCurrentPos);
+		aTmp[aCurrentPos] = '\0';
+		int aOrdinal = atoi(aTmp);
+		iSymbol->SetOrdinal(aOrdinal);
+
+		IncrOffset(aCurrentPos);
+
+		if(IsWhiteSpace((iLine + iOffset), aCurrentPos))
+		{
+			IncrOffset(aCurrentPos);
+		}
+		SetState(EOptionals);
+	}
+	break;
+
+	case EOptionals:
+		{
+		int aPrevPatternIndex, aPatternIdx = 0;
+		aPrevPatternIndex = -1;
+		while (*(iLine + iOffset) != '\n' || *(iLine + iOffset) != '\r')
+		{
+			if(IsPattern(iLine+iOffset, aCurrentPos, aPatternIdx) )
+			{
+				switch(aPatternIdx)
+				{
+				case DEF_NONAME:
+					break;
+				case DEF_DATA:
+					iSymbol->CodeDataType(SymbolTypeData);
+
+					IncrOffset(aCurrentPos);
+					if(IsWhiteSpace((iLine + iOffset), aCurrentPos))
+					{
+						IncrOffset(aCurrentPos);
+					}
+					if(IsDigit(iLine+iOffset, aCurrentPos ) )
+					{
+						char aSymSz[16];
+						strncpy(aSymSz, (iLine + iOffset), aCurrentPos);
+						aSymSz[aCurrentPos] = '\0';
+						iSymbol->SetSymbolSize(atoi(aSymSz));
+					}
+					break;
+				case DEF_R3UNUSED:
+					iSymbol->R3Unused(true);
+					break;
+				case DEF_ABSENT:
+					iSymbol->SetAbsent(true);
+					break;
+				default:
+					break;
+				}
+
+				/*
+				 * NONAME , DATA, R3UNUSED and ABSENT, all the 3 are optional. But, if more than
+				 * one of them appear, they MUST appear in that order. 
+				 * Else, it is not accepted.
+				 */
+				if( aPrevPatternIndex >= aPatternIdx)
+				{
+					throw DEFFileError(UNRECOGNIZEDTOKEN, iFileName, iLineNum,(iLine + iOffset));
+				}
+				aPrevPatternIndex = aPatternIdx;
+
+				IncrOffset(aCurrentPos);
+				
+				if(IsWhiteSpace((iLine + iOffset), aCurrentPos))
+				{
+					IncrOffset(aCurrentPos);
+				}
+			}
+			else
+			{
+				if( *(iLine + iOffset) == ';' )
+				{
+					SetState(EComment);
+					IncrOffset(1);
+					return;
+				}
+				else if( *(iLine + iOffset) == '\0' || 
+						 *(iLine + iOffset) == '\r' || 
+						 *(iLine + iOffset) == '\n')
+				{
+					SetState(EFinalState);
+					return;
+				}
+				else
+				{
+					throw DEFFileError(UNRECOGNIZEDTOKEN, iFileName, iLineNum,(iLine + iOffset));
+				}
+			}
+		}
+		}
+	break;
+
+	case EComment:
+	{
+		if(IsWhiteSpace(iLine + iOffset, aCurrentPos))
+		{
+			IncrOffset(aCurrentPos);
+		}
+		
+	
+		int aLen = strlen(iLine + iOffset);
+		if( *(iLine + iOffset + aLen - 1 ) == '\n' ||  *(iLine + iOffset + aLen - 1 ) == '\r')
+			aLen -=1;
+
+		char * aComment = new char[ aLen + 1];
+		strncpy( aComment, iLine + iOffset, aLen);
+		aComment[aLen] = '\0';
+
+		IncrOffset(aLen);
+
+		iSymbol->Comment(aComment);
+		SetState(EFinalState);
+	}
+	break;
+
+	case EFinalState:
+		return;
+	default:
+		break;	
+	}
+}
+
+/**
+This function returns true if the string starts with one
+of the fixed patterns.
+It also updates the length  and index of this pattern.
+@param aChar - Line Token
+@param aTill - Length of the pattern
+@param aTill - Index of the pattern
+Return Value - True, if the string starts with one of the patterns.
+@internalComponent
+@released
+*/
+bool LineToken::IsPattern(char* aStr, int& aTill, int& aIndex)
+{
+	int pos = 0;
+	int aLength;
+	int size = sizeof(DefFilePatterns)/sizeof(char*);
+	while(size > pos)
+	{
+		aLength = strlen(DefFilePatterns[pos]);
+		if(!strncmp(aStr, DefFilePatterns[pos], aLength))
+		{
+			aTill = aLength;
+			aIndex = pos;
+			return true;
+		}
+		pos++;
+	}
+	return false;
+}
+
+/**
+This function returns true if the string starts with digits.
+It also updates the length of this digit string.
+@param aChar - Line Token
+@param aTill - Length of the digit string
+Return Value - True, if the string starts with digit(s)
+@internalComponent
+@released
+*/
+bool LineToken::IsDigit(char *aChar, int &aTill)
+{
+	int pos = 0;
+	if( aChar[pos] - '0' >= 0 &&  aChar[pos] - '0' <= 9)
+	{
+		pos++;
+		while(aChar[pos] - '0' >= 0 &&  aChar[pos] - '0' <= 9)
+		{
+			pos++;
+		}
+		aTill = pos;
+		return true;
+	}
+	else
+	{
+		return false;
+	}
+}
+
+/**
+This function returns true if the string starts with white space.
+It also updates the length of this white string!
+@param aStr - Line Token
+@param aTill - Length of the white string
+Return Value - True, if the string starts with whitespace
+@internalComponent
+@released
+*/
+bool LineToken::IsWhiteSpace(char *aStr, int &aTill)
+{
+	int pos = 0;
+	switch( aStr[pos] )
+	{
+	case ' ':
+	case '\t':
+		break;
+	default:
+		return false;
+	}
+
+	pos++;
+	while( aStr[pos])
+	{
+		switch(aStr[pos])
+		{
+			case ' ':
+			case '\t':
+				pos++;
+			break;
+			default:
+				aTill = pos;
+				return true;
+		}
+
+	}
+	aTill = pos;
+	return true;
+}
+
+/**
+This function returns true if the string starts with non-whitespace.
+It also updates the length of this word.
+@param aStr  - Line Token
+@param aTill - Length of the word
+Return Value - True, if the string starts with non-whitespace chars.
+It also updates the length of the word.
+@internalComponent
+@released
+*/
+bool LineToken::IsWord(char *aStr, int &aTill)
+{
+	int pos = 0;
+	switch( aStr[pos] )
+	{
+	case '\0':
+	case ' ':
+	case '\t':
+	case '\r':
+	case '\n':
+		return false;
+	default:
+		break;
+	}
+
+	pos++;
+	while( aStr[pos])
+	{
+		switch(aStr[pos])
+		{
+			case ' ':
+			case '\t':
+			case '\r':
+			case '\n':
+				aTill = pos;
+				return true;
+			default:
+				pos++;
+				break;
+		}
+
+	}
+	aTill = pos;
+	return true;
+}
+
+/**
+This function increments the current offset.
+@param aOff  - increment by this value
+@internalComponent
+@released
+*/
+void LineToken::IncrOffset(int aOff)
+{ 
+	iOffset += aOff;
+}
+
+/**
+This function sets the state of the tokenizer that is parsing 
+the line.
+@param aState  - next state
+@internalComponent
+@released
+*/
+void LineToken::SetState(DefStates aState)
+{
+	iState = aState;
+}
+
+/**
+Function to Read def file and get the internal representation in structure.
+@param defFile - DEF File name
+@internalComponent
+@released
+*/
+SymbolList* DefFile::ReadDefFile(char *defFile)
+{
+	char *defFileEntries;
+
+	defFileEntries=OpenDefFile(defFile);
+	ParseDefFile(defFileEntries);
+
+	delete [] defFileEntries;//Free the memory which was required to read def file
+
+	return iSymbolList;
+
+}
+
+/**
+Function to get the internal representation of Def File.
+@param defFile - DEF File name
+@internalComponent
+@released
+*/
+SymbolList* DefFile::GetSymbolEntryList(char *defFile)
+{
+	if(iSymbolList)
+	{
+		return iSymbolList;
+	}
+	else
+	{
+		iSymbolList=ReadDefFile(defFile);
+		return iSymbolList;
+	}
+
+}
+
+/**
+Function to write DEF file from symbol entry List.
+@param fileName - Def file name
+@param newSymbolList - pointer to SymbolList which we get as an input for writing in DEF File
+@internalComponent
+@released
+*/
+void DefFile::WriteDefFile(char *fileName, SymbolList * newSymbolList)
+{
+
+	char ordinal[6];
+	int newDefEntry=0;
+	FILE *fptr;
+
+	if((fptr=fopen(fileName,"wb"))==NULL)
+	{
+		throw FileError(FILEOPENERROR,fileName);
+	}
+	else
+	{
+		SymbolList::iterator aItr = newSymbolList->begin();
+		SymbolList::iterator last = newSymbolList->end();
+		Symbol *aSym;
+
+		fputs("EXPORTS",fptr);
+		fputs("\r\n",fptr);
+		while( aItr != last)
+		{
+			aSym = *aItr;
+			//Do not write now if its a new entry
+			if(aSym->GetSymbolStatus()==New)
+			{
+				newDefEntry=1;
+				aItr++;
+				continue;
+			}
+
+			//Make it comment if its missing def entry
+			if(aSym->GetSymbolStatus()==Missing)
+				fputs("; MISSING:",fptr);
+
+			fputs("\t",fptr);
+			if((aSym->ExportName()) && strcmp(aSym->SymbolName(),aSym->ExportName())!=0)
+			{
+				fputs(aSym->ExportName(),fptr);
+				fputs("=",fptr);
+			}
+			fputs(aSym->SymbolName(),fptr);
+			fputs(" @ ",fptr);
+			sprintf(ordinal,"%d",aSym->OrdNum());
+			fputs(ordinal,fptr);
+			fputs(" NONAME",fptr);
+			if(aSym->CodeDataType()==SymbolTypeData) {
+				fputs(" DATA",fptr);
+				fputs(" ",fptr);
+				char aSymSize[16];
+				sprintf(aSymSize, "%d", aSym->SymbolSize());
+				fputs(aSymSize,fptr);
+			}
+			if(aSym->R3unused())
+				fputs(" R3UNUSED",fptr);
+			if(aSym->Absent())
+				fputs(" ABSENT",fptr);
+				
+			if(aSym->Comment()!=NULL)
+			{
+				fputs(" ; ",fptr);
+				fputs(aSym->Comment(),fptr);
+			}
+			fputs("\r\n",fptr);
+			aItr++;
+		}
+
+		//This is for writing new def entry in DEF File
+		if(newDefEntry)
+		{
+			fputs("; NEW:",fptr);
+			fputs("\r\n",fptr);
+			aItr = newSymbolList->begin();
+			last = newSymbolList->end();
+
+			while( aItr != last)
+			{
+				aSym = *aItr;
+				if(aSym->GetSymbolStatus()!=New)
+				{
+					aItr++;
+					continue;
+				}
+				fputs("\t",fptr);
+				if((aSym->ExportName()) && strcmp(aSym->SymbolName(),aSym->ExportName())!=0)
+				{
+					fputs(aSym->ExportName(),fptr);
+					fputs("=",fptr);
+				}
+				fputs(aSym->SymbolName(),fptr);
+				fputs(" @ ",fptr);
+				sprintf(ordinal,"%d",aSym->OrdNum());
+				fputs(ordinal,fptr);
+				fputs(" NONAME",fptr);
+
+				if(aSym->CodeDataType()==SymbolTypeData) {
+					fputs(" DATA",fptr);
+					fputs(" ",fptr);
+					char aSymSize[16];
+					sprintf(aSymSize, "%d", aSym->SymbolSize());
+					fputs(aSymSize,fptr);
+				}
+
+				if(aSym->R3unused())
+					fputs(" R3UNUSED",fptr);
+				if(aSym->Absent())
+					fputs(" ABSENT",fptr);
+
+				if(aSym->Comment()!=NULL)
+				{
+					if(aSym->CodeDataType()!=SymbolTypeCode &&
+						aSym->CodeDataType()!=SymbolTypeData)
+					{
+						fputs(" ; ",fptr);
+						fputs(aSym->Comment(),fptr);
+					}
+					else
+					{
+						fputs(" ",fptr);
+						fputs(aSym->Comment(),fptr);
+					}
+				}
+				fputs("\r\n",fptr);
+				aItr++;
+			}
+		}
+		fputs("\r\n",fptr);
+		fclose(fptr);
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/deffile.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,94 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation of the Class DefFile for the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+#ifndef _DEF_FILE_
+#define _DEF_FILE_
+
+#include <list>
+
+class Symbol;
+typedef std::list <Symbol*>	SymbolList;
+
+/**
+Class for DEF File Handler.
+@internalComponent
+@released
+*/
+class DefFile
+{
+	public:
+		DefFile():iSymbolList(NULL){};
+		virtual ~DefFile();
+		SymbolList* ReadDefFile(char *defFile);
+		void WriteDefFile(char *fileName, SymbolList *newSymbolList);
+		SymbolList* GetSymbolEntryList(char *defFile);
+		SymbolList* GetSymbolEntryList() { return iSymbolList;}
+	private:
+		char *iFileName;
+		SymbolList *iSymbolList;
+		int GetFileSize(FILE * fptrDef);
+		char* OpenDefFile(char *defFile);
+		void ParseDefFile(char *defData);
+		bool Tokenize(char* tokens, int aLineNum, Symbol& aSymbol);
+};
+
+//Different states while parsing a line in the def file.
+enum DefStates
+{
+	EInitState = 0,
+	ESymbolName = 1,
+	EAtSymbol,
+	EOrdinal,
+	EOptionals,
+	EComment,
+	EFinalState,
+	EInvalidState
+};
+
+#define CODESYM "CODE"
+#define DATASYM "DATA"
+
+/**
+Class for parsing a line from the DEF File.
+@internalComponent
+@released
+*/
+class LineToken
+{
+public:
+	LineToken(char* , int , char *, Symbol *aSym);
+	char *iLine;
+	Symbol *iSymbol;
+	int iOffset;
+	DefStates iState;
+	
+	char *iFileName;
+	int iLineNum;
+
+	bool Tokenize();
+	void NextToken();
+	void IncrOffset(int aOff);
+	void SetState(DefStates aState);
+
+	bool IsWhiteSpace(char *aStr, int&);
+	bool IsPattern(char*, int&, int&);
+	bool IsDigit(char*, int&);
+	bool IsWord(char*, int&);
+};
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/deflatecompress.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,514 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#include <fstream>
+#include <cassert>
+
+#include "e32imagedefs.h"
+#include "errorhandler.h"
+#include "farray.h"
+#include "huffman.h"
+
+const TInt KDeflateMinLength=3;
+const TInt KDeflateMaxLength=KDeflateMinLength-1 + (1<<KDeflateLengthMag);
+const TInt KDeflateMaxDistance=(1<<KDeflateDistanceMag);
+
+// hashing
+const TUint KDeflateHashMultiplier=0xAC4B9B19u;
+const TInt KDeflateHashShift=24;
+
+#define COMPILE_TIME_ASSERT(e)	\
+	switch (0)					\
+	{							\
+	case 0:						\
+	case e:						\
+		;						\
+	}
+
+/**
+Class HDeflateHash
+@internalComponent
+@released
+*/
+class HDeflateHash
+{
+	public:
+		inline static HDeflateHash* NewLC(TInt aLinks);
+//
+		inline TInt First(const TUint8* aPtr,TInt aPos);
+		inline TInt Next(TInt aPos,TInt aOffset) const;
+	private:
+		inline HDeflateHash();
+		inline static TInt Hash(const TUint8* aPtr);
+	private:
+		typedef TUint16 TOffset;
+	private:
+		TInt iHash[256];
+		TOffset iOffset[1];	// or more
+};
+
+/**
+Class MDeflater
+@internalComponent
+@released
+*/
+class MDeflater
+{
+	public:
+		void DeflateL(const TUint8* aBase,TInt aLength);
+	private:
+		const TUint8* DoDeflateL(const TUint8* aBase,const TUint8* aEnd,HDeflateHash& aHash);
+		static TInt Match(const TUint8* aPtr,const TUint8* aEnd,TInt aPos,HDeflateHash& aHas);
+		void SegmentL(TInt aLength,TInt aDistance);
+		virtual void LitLenL(TInt aCode) =0;
+		virtual void OffsetL(TInt aCode) =0;
+		virtual void ExtraL(TInt aLen,TUint aBits) =0;
+};
+
+/**
+Class TDeflateStats
+@internalComponent
+@released
+*/
+class TDeflateStats : public MDeflater
+{
+	public:
+		inline TDeflateStats(TEncoding& aEncoding);
+	private:
+		// from MDeflater
+		void LitLenL(TInt aCode);
+		void OffsetL(TInt aCode);
+		void ExtraL(TInt aLen,TUint aBits);
+	private:
+		TEncoding& iEncoding;
+};
+
+/**
+Class TDeflater
+@internalComponent
+@released
+*/
+class TDeflater : public MDeflater
+{
+	public:
+		inline TDeflater(TBitOutput& aOutput,const TEncoding& aEncoding);
+	private:
+		// from MDeflater
+		void LitLenL(TInt aCode);
+		void OffsetL(TInt aCode);
+		void ExtraL(TInt aLen,TUint aBits);
+	private:
+		TBitOutput& iOutput;
+		const TEncoding& iEncoding;
+};
+
+
+/**
+Constructor for class HDeflateHash
+@internalComponent
+@released
+*/
+inline HDeflateHash::HDeflateHash()
+{TInt* p=iHash+256;do *--p=-KDeflateMaxDistance-1; while (p>iHash);}
+
+/**
+@Leave - OutOfMemory
+This function allocates memory for HDeflateHash
+@param aLinks
+@return pointer to allocated memory
+@internalComponent
+@released
+*/
+inline HDeflateHash* HDeflateHash::NewLC(TInt aLinks)
+{
+#if __GNUC__ >= 4
+	// Try to detect if the class' layout has changed.
+	COMPILE_TIME_ASSERT( sizeof(HDeflateHash) == 1028 );
+	COMPILE_TIME_ASSERT( sizeof(TOffset) == 2 );
+	COMPILE_TIME_ASSERT( offsetof(HDeflateHash, iHash) < offsetof(HDeflateHash, iOffset) );
+
+	// Compute the size of the class, including rounding it up to a multiple of 4
+	// bytes.
+
+	unsigned n = sizeof(TInt) * 256 + sizeof(TOffset) * Min(aLinks, KDeflateMaxDistance);
+
+	while (n & 0x1f)
+	{
+		n++;	
+	}
+
+	// Allocate the raw memory ...
+	void* p = ::operator new(n);
+
+	// ... And create the object in that memory.
+	return new(p) HDeflateHash;
+#else
+	return new(new char[_FOFF(HDeflateHash,iOffset[Min(aLinks,KDeflateMaxDistance)])]) HDeflateHash;
+#endif
+}
+
+/**
+Hash function for HDeflateHash
+@param aPtr
+@return Hash value
+@internalComponent
+@released
+*/
+inline TInt HDeflateHash::Hash(const TUint8* aPtr)
+{
+	TUint x=aPtr[0]|(aPtr[1]<<8)|(aPtr[2]<<16);
+	return (x*KDeflateHashMultiplier)>>KDeflateHashShift;
+}
+
+/**
+Function First
+@param aPtr
+@param aPos
+@internalComponent
+@released
+*/
+inline TInt HDeflateHash::First(const TUint8* aPtr,TInt aPos)
+{
+	TInt h=Hash(aPtr);
+	TInt offset=Min(aPos-iHash[h],KDeflateMaxDistance<<1);
+	iHash[h]=aPos;
+	iOffset[aPos&(KDeflateMaxDistance-1)]=TOffset(offset);
+	return offset;
+}
+
+/**
+Function Next
+@param aPtr
+@param aPos
+@internalComponent
+@released
+*/
+inline TInt HDeflateHash::Next(TInt aPos,TInt aOffset) const
+{return aOffset+iOffset[(aPos-aOffset)&(KDeflateMaxDistance-1)];}
+
+
+// Class TDeflater
+//
+// generic deflation algorithm, can do either statistics and the encoder
+
+/**
+Function Match
+@param aPtr
+@param aEnd
+@param aPos
+@param aHash
+@internalComponent
+@released
+*/
+TInt MDeflater::Match(const TUint8* aPtr,const TUint8* aEnd,TInt aPos,HDeflateHash& aHash)
+{
+	TInt offset=aHash.First(aPtr,aPos);
+	if (offset>KDeflateMaxDistance)
+		return 0;
+	TInt match=0;
+	aEnd=Min(aEnd,aPtr+KDeflateMaxLength);
+	TUint8 c=*aPtr;
+	do
+	{
+		const TUint8* p=aPtr-offset;
+		if (p[match>>16]==c)
+		{	// might be a better match
+			const TUint8* m=aPtr;
+			for (;;)
+			{
+				if (*p++!=*m++)
+					break;
+				if (m<aEnd)
+					continue;
+				return ((m-aPtr)<<16)|offset;
+			}
+			TInt l=m-aPtr-1;
+			if (l>match>>16)
+			{
+				match=(l<<16)|offset;
+				c=m[-1];
+			}
+		}
+		offset=aHash.Next(aPos,offset);
+	} while (offset<=KDeflateMaxDistance);
+	return match;
+}
+
+/*
+Apply the deflation algorithm to the data [aBase,aEnd)
+Return a pointer after the last byte that was deflated (which may not be aEnd)
+@param aBase
+@param aEnd
+@param aHash
+@internalComponent
+@released
+*/
+const TUint8* MDeflater::DoDeflateL(const TUint8* aBase,const TUint8* aEnd,HDeflateHash& aHash)
+{
+	const TUint8* ptr=aBase;
+	TInt prev=0;		// the previous deflation match
+	do
+	{
+		TInt match=Match(ptr,aEnd,ptr-aBase,aHash);
+// Extra deflation applies two optimisations which double the time taken
+// 1. If we have a match at p, then test for a better match at p+1 before using it
+// 2. When we have a match, add the hash links for all the data which will be skipped 
+		if (match>>16 < prev>>16)
+		{	// use the previous match--it was better
+			TInt len=prev>>16;
+			SegmentL(len,prev-(len<<16));
+			// fill in missing hash entries for better compression
+			const TUint8* e=ptr+len-2;
+			do
+			{
+				++ptr;
+				if (ptr + 2 < aEnd)
+				  aHash.First(ptr,ptr-aBase);
+			} while (ptr<e);
+			prev=0;
+		}
+		else if (match<=(KDeflateMinLength<<16))
+			LitLenL(*ptr);			// no deflation match here
+		else
+		{	// save this match and test the next position
+			if (prev)	// we had a match at ptr-1, but this is better
+				LitLenL(ptr[-1]);
+			prev=match;
+		}
+		++ptr;
+	} while (ptr+KDeflateMinLength-1<aEnd);
+	if (prev)
+	{		// emit the stored match
+		TInt len=prev>>16;
+		SegmentL(len,prev-(len<<16));
+		ptr+=len-1;
+	}
+	return ptr;
+}
+
+/*
+The generic deflation algorithm
+@param aBase
+@param aLength
+@internalComponent
+@released
+*/
+void MDeflater::DeflateL(const TUint8* aBase,TInt aLength)
+{
+	const TUint8* end=aBase+aLength;
+	if (aLength>KDeflateMinLength)
+	{	// deflation kicks in if there is enough data
+		HDeflateHash* hash=HDeflateHash::NewLC(aLength);
+
+		aBase=DoDeflateL(aBase,end,*hash);
+		delete hash;
+	}
+	while (aBase<end)					// emit remaining bytes
+		LitLenL(*aBase++);
+	LitLenL(TEncoding::EEos);	// eos marker
+}
+
+/*
+Turn a (length,offset) pair into the deflation codes+extra bits before calling the specific
+LitLen(), Offset() and Extra() functions.
+@param aLength
+@param aDistance
+@internalComponent
+@released
+*/
+void MDeflater::SegmentL(TInt aLength,TInt aDistance)
+{
+	aLength-=KDeflateMinLength;
+	TInt extralen=0;
+	TUint len=aLength;
+	while (len>=8)
+	{
+		++extralen;
+		len>>=1;
+	}
+	LitLenL((extralen<<2)+len+TEncoding::ELiterals);
+	if (extralen)
+		ExtraL(extralen,aLength);
+//
+	aDistance--;
+	extralen=0;
+	TUint dist=aDistance;
+	while (dist>=8)
+	{
+		++extralen;
+		dist>>=1;
+	}
+	OffsetL((extralen<<2)+dist);
+	if (extralen)
+		ExtraL(extralen,aDistance);
+}
+
+/**
+Class TDeflateStats
+This class analyses the data stream to generate the frequency tables 
+for the deflation algorithm
+@internalComponent
+@released
+*/
+inline TDeflateStats::TDeflateStats(TEncoding& aEncoding)
+	:iEncoding(aEncoding)
+	{}
+/*
+Function LitLenL
+@Leave
+@param aCode
+@internalComponent
+@released
+*/
+void TDeflateStats::LitLenL(TInt aCode)
+	{
+	++iEncoding.iLitLen[aCode];
+	}
+
+/*
+@Leave ArrayIndexOutOfBounds
+Finction OffsetL
+@param aCode
+@internalComponent
+@released
+*/
+void TDeflateStats::OffsetL(TInt aCode)
+	{
+	++iEncoding.iDistance[aCode];
+	}
+
+/*
+Function ExtraL
+@Leave
+@internalComponent
+@released
+*/void TDeflateStats::ExtraL(TInt,TUint)
+	{}
+
+/**
+Constructor of Class TDeflater
+Extends MDeflater to provide huffman encoding of the output
+@internalComponent
+@released
+*/
+inline TDeflater::TDeflater(TBitOutput& aOutput,const TEncoding& aEncoding)
+//
+// construct for encoding
+//
+	:iOutput(aOutput),iEncoding(aEncoding)
+	{}
+
+/*
+Function LitLenL
+@Leave
+@param aCode 
+@internalComponent
+@released
+*/
+void TDeflater::LitLenL(TInt aCode)
+	{
+	iOutput.HuffmanL(iEncoding.iLitLen[aCode]);
+	}
+
+/*
+Function OffsetL
+@Leave
+@param aCdoe 
+@internalComponent
+@released
+*/
+void TDeflater::OffsetL(TInt aCode)
+	{
+	iOutput.HuffmanL(iEncoding.iDistance[aCode]);
+	}
+
+/*
+Function ExtraL
+@Leave
+@param  aLen
+@param aBits
+@internalComponent
+@released
+*/
+void TDeflater::ExtraL(TInt aLen,TUint aBits)
+	{
+	iOutput.WriteL(aBits,aLen);
+	}
+/*
+Function DoDeflateL
+@Leave
+@param aBuf
+@param aLength
+@param aOutput
+@param aEncoding
+@internalComponent
+@released
+*/
+void DoDeflateL(const TUint8* aBuf,TInt aLength,TBitOutput& aOutput,TEncoding& aEncoding)
+	{
+// analyse the data for symbol frequency 
+	TDeflateStats analyser(aEncoding);
+	analyser.DeflateL(aBuf,aLength);
+	
+// generate the required huffman encodings
+	Huffman::HuffmanL(aEncoding.iLitLen,TEncoding::ELitLens,aEncoding.iLitLen);
+	Huffman::HuffmanL(aEncoding.iDistance,TEncoding::EDistances,aEncoding.iDistance);
+
+// Store the encoding table
+	Huffman::ExternalizeL(aOutput,aEncoding.iLitLen,KDeflationCodes);
+
+// generate the tables
+	Huffman::Encoding(aEncoding.iLitLen,TEncoding::ELitLens,aEncoding.iLitLen);
+	Huffman::Encoding(aEncoding.iDistance,TEncoding::EDistances,aEncoding.iDistance);
+
+// now finally deflate the data with the generated encoding
+	TDeflater deflater(aOutput,aEncoding);
+	deflater.DeflateL(aBuf,aLength);
+	aOutput.PadL(1);
+	}
+
+/*
+Function DeflateL
+@Leave
+@param aBuf
+@param aLength
+@param aOutput 
+@internalComponent
+@released
+*/
+void DeflateL(const TUint8* aBuf, TInt aLength, TBitOutput& aOutput)
+	{
+	TEncoding* encoding=new TEncoding;
+	memset(encoding,0,sizeof(TEncoding));
+	DoDeflateL(aBuf,aLength,aOutput,*encoding);
+	delete encoding;
+	}
+/*
+Function DeflateCompress
+@param bytes
+@param size
+@param os
+@internalComponent
+@released
+*/
+void DeflateCompress(char *bytes,size_t size, std::ofstream & os)
+	{
+	TFileOutput* output=new TFileOutput(os);
+	output->iDataCount = 0;
+	DeflateL((TUint8*)bytes,size,*output);
+	output->FlushL();
+	delete output;
+	}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/dll_fb_target.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,42 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation of the Class ExeTarget for the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+#include "dll_fb_target.h"
+
+/**
+Constructor for the DLLFBTarget Class
+
+@internalComponent
+@released
+*/
+DLLFBTarget::DLLFBTarget(ParameterListInterface* aParameterListInterface) : ExportTypeFBTarget(aParameterListInterface) {
+}
+
+/**
+Destructor for the DLLFBTarget Class
+
+@internalComponent
+@released
+*/
+DLLFBTarget::~DLLFBTarget() {
+}
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/dll_fb_target.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,42 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation of the Header file for DLL First build Target Type
+// @internalComponent
+// @released
+// 
+//
+
+#ifndef DLLFB_TARGET_H
+#define DLLFB_TARGET_H
+
+#include "export_type_fb_target.h"
+
+/**
+This class is derived from the base class ExportTypeFBTarget and is responsible for creation of
+DLL Target.It passes the input ELF file to the ELFfile Handler to get the Symbol list
+and then passes the Symbol List to the DSOHandler to generate the DSO file and then the E32 image.
+
+@internalComponent
+@released
+*/
+class DLLFBTarget : public ExportTypeFBTarget
+{
+
+public:
+	DLLFBTarget(ParameterListInterface* aParameterListInterface);
+	~DLLFBTarget();
+};
+
+
+#endif // DLLFB_TARGET_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/dll_rebuild_target.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,43 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// dll_fb_target.cpp
+// Implementation of the Class ExeTarget for the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+#include "dll_rebuild_target.h"
+
+/**
+Constructor for the DLLRebuildTarget Class
+
+@internalComponent
+@released
+*/
+DLLRebuildTarget::DLLRebuildTarget(ParameterListInterface* aParameterListInterface) : ExportTypeRebuildTarget(aParameterListInterface) {
+}
+
+/**
+Destructor for the DLLRebuildTarget Class
+
+@internalComponent
+@released
+*/
+DLLRebuildTarget::~DLLRebuildTarget() {
+}
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/dll_rebuild_target.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,42 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation of the Header file for DLL Rebuild Target Type
+// @internalComponent
+// @released
+// 
+//
+
+#ifndef DLL_REBUILD_TARGET_H
+#define DLL_REBUILD_TARGET_H
+
+#include "export_type_rebuild_target.h"
+
+/**
+This class is derived from the base class ExportTypeRebuildTarget and is responsible for creation of
+DLL Target.
+
+@internalComponent
+@released
+*/
+
+class DLLRebuildTarget : public ExportTypeRebuildTarget
+{
+
+public:
+	DLLRebuildTarget(ParameterListInterface* aParameterListInterface);
+	~DLLRebuildTarget();	
+};
+
+#endif // DLL_REBUILD_TARGET_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/e32defwrap.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,40 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Wrapper for e32def.h to undefine _L macros to prevent
+// warnings.
+// @internalComponent
+// @released
+
+// 
+//
+
+#ifndef __E32DEFWRAP_H__
+#define __E32DEFWRAP_H__
+
+#ifdef _L
+#undef _L
+#endif
+
+
+
+#include <e32def.h>
+#include <e32def_private.h>
+
+#ifdef _L
+#undef _L
+#endif
+
+
+#endif  // E32IMAGEDEFS_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/e32exporttable.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,125 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#include "e32exporttable.h"
+#include "pl_elfexecutable.h"
+#include "pl_elfexports.h"
+#include "pl_dllsymbol.h"
+#include "pl_elflocalrelocation.h"
+
+/**
+Destructor for E32ExportTable class.
+@internalComponent
+@released
+*/
+E32ExportTable::~E32ExportTable()
+{
+	delete [] iTable;
+}
+
+/**
+This function updates the e32 export table.
+@param aElfExecutable - Elf executable
+@param aExportList - export symbol list
+@internalComponent
+@released
+*/
+void E32ExportTable::CreateExportTable(ElfExecutable * aElfExecutable, ElfExports::ExportList & aExportList)
+{
+	iElfExecutable = aElfExecutable;
+	// ELFExports::ExportList aExportList = aElfExecutable->GetExportsInOrdinalOrder();
+	// The export table has a header containing the number of entries
+	// before the entries themselves. So add 1 to number of exports
+	iNumExports = aExportList.size();
+	size_t aSize = iNumExports + 1;
+	iSize = aSize * sizeof(MemAddr);
+	iTable = new unsigned int[aSize];
+	// Set up header
+	iTable[0] = aExportList.size();
+	Elf32_Phdr * aROHdr = aElfExecutable->iCodeSegmentHdr;
+	// The export table starts after the header. NB this is a virtual address in the RO
+	// segment of the E32Image. It is outside the ELF RO segment.
+	Elf32_Addr * aPlace =  ELF_ENTRY_PTR(Elf32_Addr, aROHdr->p_vaddr, aROHdr->p_filesz) + 1;
+	iExportTableAddress = (Elf32_Addr)aPlace;
+	// Tell the E32Image constructor that it must allocate the export table
+	// i.e. copy it from iTable.
+	iAllocateP = true;
+	bool aDelSym;
+	ElfExports::ExportList::iterator first = aExportList.begin();
+	for (PLUINT32 i = 1; i < aSize; i++, first++) 
+	{
+		Elf32_Sym * sym;
+
+		unsigned int ptr;
+		if ((*first)->Absent())
+		{
+			ptr = aElfExecutable->iEntryPoint;
+			sym = new Elf32_Sym;
+			memset(sym, 0, sizeof(Elf32_Sym));
+			sym->st_value = ptr;
+			aDelSym = true;
+		}
+		else
+		{
+			ptr = (*first)->iElfSym->st_value;
+			sym = (*first)->iElfSym;
+			aDelSym = false;
+		}
+		// set up the pointer
+		iTable[i] = ptr;
+		ElfLocalRelocation * aRel = new ElfLocalRelocation(iElfExecutable, (Elf32_Addr)aPlace++, 0, i, R_ARM_ABS32, NULL, ESegmentRO, sym, aDelSym);														   
+		aRel->Add();
+
+	}
+}
+
+/**
+This function returns the number of exports.
+@internalComponent
+@released
+*/
+size_t E32ExportTable::GetNumExports()
+{
+	return iNumExports;
+}
+
+/**
+This function tells the e32 image allocator if space is required to 
+be allocated for export table.
+@internalComponent
+@released
+*/
+bool E32ExportTable::AllocateP(){ 
+	return iAllocateP;
+}
+
+/**
+This function returns the e32 export table size.
+@internalComponent
+@released
+*/
+size_t E32ExportTable::GetExportTableSize(){ 
+	return iSize;
+}
+
+/**
+This function returns e32 export table.
+@internalComponent
+@released
+*/
+unsigned int * E32ExportTable::GetExportTable() {
+	 return iTable; 
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/e32exporttable.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,60 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Class for E32 Export Table implementation of the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+#ifndef __E32EXPORTTABLE__
+#define __E32EXPORTTABLE__
+
+#include <tools/elfdefs.h>
+
+#include "pl_elfexports.h"
+
+class ElfExecutable;
+
+/**
+class for E32 Export Table
+@internalComponent
+@released
+*/
+class E32ExportTable {
+ public:
+  E32ExportTable() : 
+	   iElfExecutable(0), iSize(0), iTable(0), iExportTableAddress(0),
+	   iAllocateP(true), iNumExports(0)
+	   {};
+  ~E32ExportTable();
+  void CreateExportTable(ElfExecutable * aElfExecutable, ElfExports::ExportList & aExportList);
+  size_t GetNumExports();
+  bool AllocateP();
+  size_t GetExportTableSize();
+  unsigned int * GetExportTable();
+
+ public:
+  ElfExecutable * iElfExecutable;
+  size_t iSize;
+  unsigned int * iTable;
+  // NB. This a virtual address (within the RO segment).
+  Elf32_Addr iExportTableAddress;
+  // True if the postlinker must allocate the export table in the E32Image.
+  // This should only be false for custom built ELF executables.
+  bool iAllocateP;
+  size_t iNumExports;
+};
+
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/e32imagedefs.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,42 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation of the Header file for E32 Image implementation of the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+#define __PLACEMENT_NEW
+#define __PLACEMENT_VEC_NEW_INLINE
+
+#ifndef E32IMAGEDEFS_H
+#define E32IMAGEDEFS_H
+
+// Pick up E32Image definitions
+// need the following to suppress interence from EPOC definitions
+#define __PLACEMENT_NEW
+#define __PLACEMENT_VEC_NEW_INLINE
+#ifdef _L
+#undef _L
+#endif
+
+#ifdef _S 
+#undef _S
+#endif
+#include <e32ldr.h>
+#include <f32image.h>
+#include <e32def_private.h>
+
+#endif  // E32IMAGEDEFS_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/e32imagefile.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,1994 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation of e32 image creation and dump for elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+#include "pl_elfexecutable.h"
+
+// get E32ImageHeader class...
+#define INCLUDE_E32IMAGEHEADER_IMPLEMENTATION
+#define RETURN_FAILURE(_r) return (fprintf(stderr, "line %d\n", __LINE__),_r)
+//#define E32IMAGEHEADER_TRACE(_t) printf _t
+#include "e32imagefile.h"
+
+#include "pl_elfimportrelocation.h"
+#include "pl_elflocalrelocation.h"
+#include "pl_elfimports.h"
+#include "elffilesupplied.h"
+#include "pl_dllsymbol.h"
+#include "h_ver.h"
+#include "checksum.h"
+#include "errorhandler.h"
+
+#include <string>
+#include <vector>
+#include <cassert>
+#include <iostream>
+#ifndef __LINUX__ 
+    #include <io.h>
+#else
+    #include <time.h>
+#endif 
+#include <time.h>
+#include <stdio.h>
+
+using namespace std;
+
+template <class T> inline T Align(T v, size_t s)
+{
+	unsigned int inc = s-1;
+	unsigned int mask = ~inc;
+	unsigned int val = (unsigned int)v;
+	unsigned int res = (val+inc) & mask;
+	return (T)res;
+}
+
+// Need a default constructor for TVersion, but don't want all the other stuff in h_utl.cpp
+/**
+Default constructor for TVersion class.
+@internalComponent
+@released
+*/
+TVersion::TVersion(){}
+
+/**
+Constructor for TVersion class.
+@internalComponent
+@released
+*/
+TVersion::TVersion(TInt aMajor, TInt aMinor, TInt aBuild): 
+	iMajor((TInt8)aMajor), iMinor((TInt8)aMinor), iBuild((TInt16)aBuild)
+{
+}
+
+
+/**
+Constructor for E32ImageChunkDesc class.
+@internalComponent
+@released
+*/
+E32ImageChunkDesc::E32ImageChunkDesc(char * aData, size_t aSize, size_t aOffset, char * aDoc):
+	iData(aData), iSize(aSize), iOffset(aOffset), iDoc(aDoc)
+{
+}
+
+/**
+Destructor for E32ImageChunkDesc class.
+@internalComponent
+@released
+*/
+E32ImageChunkDesc::~E32ImageChunkDesc()
+{
+}
+
+/**
+This function writes its data in the buffer.
+@param aPlace - a location in the buffer
+@internalComponent
+@released
+*/
+void E32ImageChunkDesc::Write(char * aPlace)
+{
+	memcpy(aPlace+iOffset, iData, iSize);
+}
+
+/**
+Constructor for E32ImageChunks class.
+@internalComponent
+@released
+*/
+E32ImageChunks::E32ImageChunks(): 
+	iOffset(0)
+{
+}
+
+/**
+Destructor for E32ImageChunks class.
+@internalComponent
+@released
+*/
+E32ImageChunks::~E32ImageChunks()
+{	
+ 	if(iChunks.size())
+ 	{
+ 		ChunkList::iterator aItr = iChunks.begin();
+ 		ChunkList::iterator last = iChunks.end();
+ 		E32ImageChunkDesc *temp;
+ 
+ 		while( aItr != last)
+ 		{
+ 			temp = *aItr;
+ 			aItr++;
+ 			delete temp;
+ 		}
+ 	}
+}
+
+/**
+This function creates and adds a chunk into a list.
+@param aData - input buffer
+@param asize - size of the input buffer
+@param aOffset - byte offset of this chunk from the 1 byte in e32 image file.
+@param aDoc - name of the chunk
+@internalComponent
+@released
+*/
+void E32ImageChunks::AddChunk(char * aData, size_t aSize, size_t aOffset, char * aDoc)
+{
+	E32ImageChunkDesc * aChunk = new E32ImageChunkDesc(aData, aSize, aOffset, aDoc);
+	iChunks.push_back(aChunk);
+	iOffset += Align(aSize, sizeof(TUint32));
+}
+
+/**
+This function returns the list of chunks.
+@internalComponent
+@released
+*/
+E32ImageChunks::ChunkList & E32ImageChunks::GetChunks()
+{
+	return iChunks;
+}
+
+/**
+This function returns the current offset pointing to the last chunk that
+was added into the list of chunks.
+@internalComponent
+@released
+*/
+size_t E32ImageChunks::GetOffset()
+{
+	return iOffset;
+}
+
+/**
+This function sets the current offset pointing to the last chunk that 
+was added into the list of chunks.
+@internalComponent
+@released
+*/
+void E32ImageChunks::SetOffset(size_t aOffset)
+{
+	iOffset = aOffset;
+}
+
+/**
+Constructor for E32ImageFile class.
+@internalComponent
+@released
+*/
+E32ImageFile::E32ImageFile(const char * aFileName, ElfExecutable * aExecutable, ElfFileSupplied *aUseCase) :
+	iFileName(aFileName), 
+	iE32Image(0),
+	iExportBitMap(0),
+	iElfExecutable(aExecutable), 
+	iData(0),
+	iUseCase(aUseCase),
+	iHdr(0),
+	iHdrSize(sizeof(E32ImageHeaderV)),
+	iImportSection(0), 
+	iImportSectionSize(0),
+	iCodeRelocs(0), 
+	iCodeRelocsSize(0),
+	iDataRelocs(0), 
+	iDataRelocsSize(0),
+	iExportOffset(0),
+	iLayoutDone(false), 
+	iMissingExports(0),
+	iSymNameOffset(0)
+{
+}
+
+/**
+This function generates the E32 image.
+@internalComponent
+@released
+*/
+void E32ImageFile::GenerateE32Image()
+{
+	if( iUseCase->GetNamedSymLookup() ){
+		ProcessSymbolInfo();
+	}
+	ProcessImports();
+	ProcessRelocations();
+	ConstructImage();
+}
+
+/**
+This function processes the import map by looking into the dso files
+from which the symbols are imported. It also fetches the ordinal numbers
+for the corresponding symbols.
+@internalComponent
+@released
+*/
+void E32ImageFile::ProcessImports()
+{
+	string aStrTab;
+	vector<int> aStrTabOffsets;
+	int aNumDlls = 0;
+	int aNumImports = 0;
+	bool aNamedLookup = iUseCase->GetNamedSymLookup();
+	TUint aImportTabEntryPos = 0;
+
+	ElfImports::ImportMap aImportMap = iElfExecutable->GetImports();
+	ElfImports::ImportMap::iterator p;
+
+	// First set up the string table and record offsets into string table of each 
+	// LinkAs name.
+	for (p = aImportMap.begin(); p != aImportMap.end(); p++)
+	{
+		ElfImports::RelocationList & aImports = (*p).second;
+		char* aLinkAs = aImports[0]->iVerRecord->iLinkAs;
+
+		aStrTabOffsets.push_back(aStrTab.size()); // 
+		string s = aLinkAs;
+		aStrTab.insert(aStrTab.end(),s.begin(),s.end());
+		aStrTab.insert(aStrTab.end(),0);
+		aNumDlls++;
+		aNumImports += aImports.size();
+	}
+	
+	iNumDlls = aNumDlls;
+	iNumImports = aNumImports;
+
+	// Now we can figure out the size of everything
+	size_t aImportSectionSize = sizeof(E32ImportSection) + 
+								(sizeof(E32ImportBlock) * aNumDlls) +
+								(sizeof(unsigned int) * aNumImports);
+ 
+	vector<Elf32_Word> aImportSection;
+
+	// This is the 'E32ImportSection' header - fill with 0 for the moment
+	aImportSection.push_back(0);
+
+	if( aNamedLookup ) {
+		// These are the 0th ordinals imported into the import table, one
+		// entry for each DLL.
+		aImportSectionSize += (sizeof(unsigned int) * aNumDlls);
+	}
+	// Now fill in the E32ImportBlocks
+	int idx = 0;
+	char * aDsoName;
+	for (p = aImportMap.begin(); p != aImportMap.end(); p++, idx++)
+	{
+		ElfImports::RelocationList & aImports = (*p).second;
+		aDsoName = aImports[0]->iVerRecord->iSOName;
+
+		//const char * aDSO = FindDSO((*p).first);
+		const char * aDSO = FindDSO(aDsoName);
+
+		aImportSection.push_back(aStrTabOffsets[idx] + aImportSectionSize); 
+		int nImports = aImports.size();
+
+		// Take the additional 0th ordinal import into account
+		if( aNamedLookup )
+			nImports++;
+		aImportSection.push_back(nImports);
+
+		size_t aSize;
+		Elf32_Ehdr * aElfFile = 0;
+		ReadInputELFFile(aDSO, aSize, aElfFile);
+
+		ElfExecutable aElfExecutable(NULL);//(aElfFile, aSize);
+		aElfExecutable.ProcessElfFile(aElfFile);
+
+		ElfImports::RelocationList::iterator q;
+		for (q = aImports.begin(); q != aImports.end(); q++)
+		{
+			ElfImportRelocation * aReloc = *q;
+			char * aSymName = iElfExecutable->GetSymbolName(aReloc->iSymNdx);
+			unsigned int aOrdinal = aElfExecutable.GetSymbolOrdinal(aSymName);
+			
+			//check the reloc refers to Code Segment
+			try
+			{
+				if (iElfExecutable->SegmentType(aReloc->iAddr) != ESegmentRO)
+				{
+					throw ImportRelocationError(ILLEGALEXPORTFROMDATASEGMENT, aSymName, iElfExecutable->iParameterListInterface->ElfInput());
+				}
+			}
+			/**This catch block introduced here is to avoid deleting partially constructed object(s).
+			Otherwise global catch block will delete the partially constructed object(s) and the tool will crash.
+			*/
+			catch(ErrorHandler& aError)
+			{
+				aError.Report();
+				exit(EXIT_FAILURE);
+			}
+				
+			Elf32_Word aRelocOffset = iElfExecutable->GetRelocationOffset(aReloc);
+			aImportSection.push_back(aRelocOffset);
+
+			Elf32_Word * aRelocPlace = iElfExecutable->GetRelocationPlace(aReloc);
+			if (aOrdinal > 0xFFFF)
+			{
+			}
+			if (aReloc->iAddend > 0xFFFF)
+			{
+			}
+			* aRelocPlace = (aReloc->iAddend<<16) | aOrdinal;
+		}
+
+		if( aNamedLookup ) {
+			aImportTabEntryPos = aImportSection.size();
+			// Keep track of the location of the entry
+			iImportTabLocations.push_back(aImportTabEntryPos);
+			// Put the entry as 0 now, which shall be updated 
+			aImportSection.push_back(0);
+		}
+
+		delete [] ((char*)aElfFile);
+	}
+
+	assert(aImportSectionSize == aImportSection.size() * sizeof(Elf32_Word));
+
+	size_t aTotalSize = Align(aImportSectionSize + aStrTab.size(), sizeof(Elf32_Word));
+
+	// Fill in the section header now we have the correct value.
+	aImportSection[0] = aTotalSize;
+
+	// Now construct the unified section
+	iImportSectionSize = aTotalSize;
+	iImportSection = (uint32 *)new char[aTotalSize];
+	memset(iImportSection, 0, aTotalSize);
+	memcpy(iImportSection, aImportSection.begin(), aImportSectionSize);
+	char * strTab = ((char *)iImportSection) + aImportSectionSize;
+	memcpy(strTab, aStrTab.data(), aStrTab.size());
+
+}
+
+
+/**
+This function checks if a DSO file exists.
+@param aPath - DSO file name.
+@internalComponent
+@released
+*/
+static bool ProbePath(string & aPath)
+{
+	ifstream aInput;
+	const char * p = aPath.c_str();
+	aInput.open(p);
+	if (aInput.is_open())
+	{
+		aInput.close();
+		return true;
+	}
+	else
+	{
+		return false;
+	}
+}
+
+/**
+This function allocates space for a DSO file name.
+@param aPath - DSO file name
+@internalComponent
+@released
+*/
+const char * AllocatePath(string & aPath)
+{
+	const char * p = aPath.c_str();
+	size_t len = aPath.size();
+	char * result = new char[len+1];
+	strcpy(result, p);
+	return (const char *)result;
+}
+
+/**
+This function searches for a DSO in the libpath specified.
+@param aName - DSO file name
+@internalComponent
+@released
+*/
+const char * E32ImageFile::FindDSO(const char * aName)
+{
+	string aDSOName(aName);
+	string aDSOPath(aName);
+
+	const char *aNewDsoName;
+
+	if (ProbePath(aDSOName))
+	{
+		aNewDsoName = AllocatePath(aDSOName);
+		cleanupStack.push_back((char*)aNewDsoName);
+		return aNewDsoName;
+	}
+
+	ParameterListInterface::LibSearchPaths & paths = iUseCase->GetLibSearchPaths();
+	ParameterListInterface::LibSearchPaths::iterator p = paths.begin();
+	for (; p != paths.end(); p++)
+	{
+		string path(*p);
+		char dir = iUseCase->GetDirectorySeparator();
+		aDSOPath.erase();
+		aDSOPath.insert(aDSOPath.end(), path.begin(), path.end());
+		aDSOPath.insert(aDSOPath.end(), dir);
+		aDSOPath.insert(aDSOPath.end(), aDSOName.begin(), aDSOName.end());
+		if (ProbePath(aDSOPath))
+		{
+			aNewDsoName = AllocatePath(aDSOPath);
+			cleanupStack.push_back((char*)aNewDsoName);
+			return aNewDsoName;
+		}
+	}
+	throw ELFFileError(DSONOTFOUNDERROR,(char*)aName);
+}
+
+void E32ImageFile::ReadInputELFFile(const char * aName, size_t & aFileSize, Elf32_Ehdr * & aELFFile )
+{
+	ifstream aInput;
+	aInput.open(aName, ifstream::binary|ifstream::in);
+	if (aInput.is_open()) 
+	{
+		aInput.seekg(0,ios::end);
+		aFileSize = (unsigned int) aInput.tellg();
+		aInput.seekg(0,ios::beg);
+		aELFFile = (Elf32_Ehdr *)new char [aFileSize];
+		aInput.read((char *)aELFFile, aFileSize);
+		aInput.close();
+	} 
+	else
+	{
+		throw FileError(FILEOPENERROR,(char*)aName);
+	}
+}
+
+/**
+This function processes relocations.
+@internalComponent
+@released
+*/
+void E32ImageFile::ProcessRelocations()
+{
+	ProcessCodeRelocations();
+	ProcessDataRelocations();
+}
+
+/**
+This function processes Code relocations.
+@internalComponent
+@released
+*/
+void E32ImageFile::ProcessCodeRelocations()
+{
+	CreateRelocations(iElfExecutable->GetCodeRelocations(), iCodeRelocs, iCodeRelocsSize);
+}
+
+/**
+This function processes Data relocations.
+@internalComponent
+@released
+*/
+void E32ImageFile::ProcessDataRelocations()
+{
+	CreateRelocations(iElfExecutable->GetDataRelocations(), iDataRelocs, iDataRelocsSize);
+}
+
+/**
+This function creates Code and Data relocations from the corresponding
+ELF form to E32 form.
+@internalComponent
+@released
+*/
+void E32ImageFile::CreateRelocations(ElfRelocations::RelocationList & aRelocList, char * & aRelocs, size_t & aRelocsSize)
+{
+	size_t rsize = RelocationsSize(aRelocList);
+	if (rsize)
+	{
+		aRelocsSize = Align(rsize + sizeof(E32RelocSection), sizeof(uint32));
+
+		uint32 aBase = (*aRelocList.begin())->iSegment->p_vaddr;
+		//add for cleanup to be done later..
+		cleanupStack.push_back(aRelocs);
+		aRelocs =	new char [aRelocsSize];
+		memset(aRelocs, 0, aRelocsSize);
+		E32RelocSection * aRelocSection = (E32RelocSection * )aRelocs;
+
+		uint16 * data = (uint16 *)(aRelocSection + 1);
+		E32RelocPageDesc * startofblock = (E32RelocPageDesc *)data;
+
+		int page = -1;
+		int pagesize = sizeof(E32RelocPageDesc);
+		ElfRelocations::RelocationList::iterator r;
+		for (r = aRelocList.begin(); r != aRelocList.end(); r++)
+		{
+			ElfLocalRelocation * aReloc = *r;
+			int p = aReloc->iAddr & 0xfffff000;
+			if (page != p)
+			{
+				if (pagesize%4 != 0)
+				{
+					*data++ = 0;
+					pagesize += sizeof(uint16);
+				}
+				if (page == -1) page = p;
+				startofblock->aOffset = page - aBase;
+				startofblock->aSize = pagesize;
+				pagesize = sizeof(E32RelocPageDesc);
+				page = p;
+				startofblock = (E32RelocPageDesc *)data;
+				data = (uint16 *)(startofblock + 1);
+			}
+			uint16 relocType = aReloc->Fixup();
+			*data++ = (uint16)((aReloc->iAddr & 0xfff) | relocType);
+			pagesize += sizeof(uint16);
+		}
+		if (pagesize%4 != 0)
+		{
+			*data++ = 0;
+			pagesize += sizeof(uint16);
+		}
+		startofblock->aOffset = page - aBase;
+		startofblock->aSize = pagesize;
+		((E32RelocSection *)aRelocs)->iNumberOfRelocs = aRelocList.size();
+		((E32RelocSection *)aRelocs)->iSize = rsize;
+
+	}
+}
+
+/**
+This function calculates the relocation taking into consideration
+the page boundaries if they are crossed. The relocations are
+sorted.
+@param aRelocList - relocations found in the Elf file.
+@internalComponent
+@released
+*/
+size_t E32ImageFile::RelocationsSize(ElfRelocations::RelocationList & aRelocList)
+{
+	size_t bytecount = 0;
+	int page = -1;
+	ElfRelocations::RelocationList::iterator r;
+	for (r = aRelocList.begin(); r != aRelocList.end(); r++)
+	{
+		ElfLocalRelocation * aReloc = *r;
+		int p = aReloc->iAddr & 0xfffff000;
+		if (page != p)
+			{
+			if (bytecount%4 != 0)
+				bytecount += sizeof(uint16);
+			bytecount += sizeof(E32RelocPageDesc); // page, block size
+			page = p;
+			}
+		bytecount += sizeof(uint16);
+		}
+	if (bytecount%4 != 0)
+		bytecount += sizeof(uint16);
+	return bytecount;
+}
+
+/**
+This function returns the E32 interpretation for an Elf relocation type.
+@param aReloc - relocation entry.
+@internalComponent
+@released
+*/
+E32ImageFile::uint16 E32ImageFile::GetE32RelocType(ElfRelocation * aReloc)
+{
+	ESegmentType aSegType = aReloc->iSegmentType; // iElfExecutable->SegmentType(aReloc->iSymbol->st_value);
+	switch (aSegType)
+	{
+	case ESegmentRO:
+		return KTextRelocType;
+	case ESegmentRW:
+		return KDataRelocType;
+	default:
+		break;
+	};
+
+	// maybe this should be an error
+	return KInferredRelocType;
+}
+
+/**
+This function constructs the E32 image.
+@internalComponent
+@released
+*/
+void E32ImageFile::ConstructImage()
+{
+	InitE32ImageHeader();
+	ComputeE32ImageLayout();
+	FinalizeE32Image();
+	AllocateE32Image();
+}
+
+/**
+This function calculates the timestamp.
+@param aTime
+@internalComponent
+@released
+*/
+Int64 timeToInt64(TInt aTime)
+{
+	aTime-=(30*365*24*60*60+7*24*60*60);	// seconds since midnight Jan 1st, 2000
+	Int64 daysTo2000AD=730497;
+	Int64 t=daysTo2000AD*24*3600+aTime;	// seconds since 0000
+	t=t+3600;								// BST (?)
+	return t*1000000;						// milliseconds
+}
+
+/**
+This function returns the E32 image header size.
+@internalComponent
+@released
+*/
+size_t E32ImageFile::GetE32ImageHeaderSize()
+{
+	return sizeof(E32ImageHeaderV);
+}
+
+/**
+This function returns the extended E32 image header size.
+@internalComponent
+@released
+*/
+size_t E32ImageFile::GetExtendedE32ImageHeaderSize()
+{
+	return iHdrSize;
+}
+
+/**
+This function sets the extended E32 image header size.
+@internalComponent
+@released
+*/
+void E32ImageFile::SetExtendedE32ImageHeaderSize(size_t aSize)
+{
+	iHdrSize = aSize;
+}
+
+/**
+This function initialises the E32 image header fields.
+@internalComponent
+@released
+*/
+void E32ImageFile::InitE32ImageHeader()
+{
+	iHdr = iUseCase->AllocateE32ImageHeader();
+	
+	iHdr->iUid1 = 0;
+	iHdr->iUid2 = 0;
+	iHdr->iUid3 = 0;
+	iHdr->iHeaderCrc = 0;
+	iHdr->iSignature = 0x434f5045u;
+	iHdr->iModuleVersion = 0x00010000u;
+	iHdr->iCompressionType = 0;
+	iHdr->iToolsVersion = TVersion(MajorVersion, MinorVersion, Build);
+	Int64 ltime(timeToInt64(time(0)));
+	iHdr->iTimeLo=(uint32)ltime;
+	iHdr->iTimeHi=(uint32)(ltime>>32);
+	iHdr->iFlags = KImageHdrFmt_V;
+	// Confusingly, CodeSize means everything except writable data
+	iHdr->iCodeSize = 0;
+	iHdr->iDataSize = iElfExecutable->GetRWSize();
+	iHdr->iHeapSizeMin = 0;
+	iHdr->iHeapSizeMax = 0;
+	iHdr->iStackSize = 0;
+	iHdr->iBssSize = iElfExecutable->GetBssSize();
+	iHdr->iEntryPoint = 0;
+	iHdr->iCodeBase = iElfExecutable->GetROBase();
+	iHdr->iDataBase = iElfExecutable->GetRWBase();
+	iHdr->iDllRefTableCount = iNumDlls;
+	iHdr->iExportDirOffset = 0;
+	iHdr->iExportDirCount = iUseCase->GetNumExports();
+	iHdr->iTextSize = iElfExecutable->GetROSize();
+	iHdr->iCodeOffset = 0;
+	iHdr->iDataOffset = 0;
+	iHdr->iImportOffset = 0;
+	iHdr->iCodeRelocOffset = 0;
+	iHdr->iDataRelocOffset = 0;
+	iHdr->iProcessPriority = (uint16)EPriorityForeground;
+	iHdr->iUncompressedSize = 0;
+	iHdr->iS.iSecureId = 0;
+	iHdr->iS.iVendorId = 0;
+	iHdr->iExceptionDescriptor = 0;
+	iHdr->iSpare2 = 0;
+
+	iHdr->iExportDescSize = iUseCase->GetExportDescSize();
+	iHdr->iExportDescType = iUseCase->GetExportDescType();
+	if (iHdr->iExportDescSize == 0) iHdr->iExportDesc[0] = 0;
+
+}
+
+/**
+This function creates the E32 image layout.
+@internalComponent
+@released
+*/
+void E32ImageFile::ComputeE32ImageLayout()
+{
+	// E32Image header
+	iChunks.AddChunk((char *)iHdr, Align(GetExtendedE32ImageHeaderSize(), sizeof(uint32)), 0, "Image Header");
+
+	uint32 endOfHeader = iChunks.GetOffset();
+	
+		// Code section
+	iHdr->iCodeOffset = iChunks.GetOffset();
+	iChunks.AddChunk(iElfExecutable->GetRawROSegment(), iElfExecutable->GetROSize(), iHdr->iCodeOffset, "Code Section"); 
+	
+	// Exports Next - then we can set up CodeSize
+	// Call out to the use case so it can decide how we do this
+	// record exporttable offset for default case
+
+	bool aSymLkupEnabled = iUseCase->GetNamedSymLookup();
+	// The export table is required either when:
+	//	a. there are exported symbols
+	//	b. symbol lookup is enabled - because this table also indicates the dependencies
+	bool aExportTableNeeded = (iHdr->iExportDirCount || aSymLkupEnabled) ? 1 : 0;
+
+	iExportOffset = iChunks.GetOffset() + 4;
+	iHdr->iExportDirOffset = aExportTableNeeded ? iUseCase->GetExportOffset() : 0;
+	if ( aExportTableNeeded && iUseCase->AllocateExportTableP())
+		iChunks.AddChunk(iUseCase->GetExportTable(), iUseCase->GetExportTableSize(), iChunks.GetOffset(), "Export Table");
+
+	// Symbol info next
+	if( aSymLkupEnabled ){
+		E32EpocExpSymInfoHdr* aSymHdrInfo = (E32EpocExpSymInfoHdr*)CreateSymbolInfo(iChunks.GetOffset());
+		if( aSymHdrInfo )
+			iChunks.AddChunk( (char*)aSymHdrInfo, aSymHdrInfo->iSize, iChunks.GetOffset(), "Symbol Info" );
+	}
+
+	// CodeSize is current offset - endof header offset
+	iHdr->iTextSize = iHdr->iCodeSize = iChunks.GetOffset() - endOfHeader;
+
+	// Data section
+	if (iElfExecutable->GetRWSize())
+	{
+		iHdr->iDataOffset = iChunks.GetOffset();
+		iChunks.AddChunk(iElfExecutable->GetRawRWSegment(), iElfExecutable->GetRWSize(), iHdr->iDataOffset, "Data Section");
+	}
+	
+	// Import Section
+	if (iImportSectionSize)
+	{
+		iHdr->iImportOffset = iChunks.GetOffset();
+		iChunks.AddChunk((char *)iImportSection, iImportSectionSize, iHdr->iImportOffset, "Import Section");
+	}
+
+	// Code relocs
+	if (iCodeRelocsSize)
+	{
+		iHdr->iCodeRelocOffset = iChunks.GetOffset();
+		iChunks.AddChunk((char *)iCodeRelocs, iCodeRelocsSize, iHdr->iCodeRelocOffset, "Code Relocs");
+	}
+
+	// Data relocs
+	if (iDataRelocsSize)
+	{
+		iHdr->iDataRelocOffset = iChunks.GetOffset();
+		iChunks.AddChunk((char *)iDataRelocs, iDataRelocsSize, iHdr->iDataRelocOffset, "Data Relocs");
+	}
+
+	iLayoutDone = true;
+}
+
+/**
+This function returns the byte offset in the E32 image from where the
+export table starts.
+@internalComponent
+@released
+*/
+size_t E32ImageFile::GetExportOffset()
+{
+	return iExportOffset;
+}
+
+/**
+This function returns E32 image size.
+@internalComponent
+@released
+*/
+size_t E32ImageFile::GetE32ImageSize()
+{
+	assert(iLayoutDone);
+	return iChunks.GetOffset();
+
+}
+
+/**
+This function creates the export bitmap also replacing the absent symbols 
+with the entry point functions.
+@internalComponent
+@released
+*/
+void E32ImageFile::CreateExportBitMap()
+{
+	int nexp = iUseCase->GetNumExports();
+	size_t memsz = (nexp + 7) >> 3;
+	iExportBitMap = new uint8[memsz];
+	memset(iExportBitMap, 0xff, memsz);
+	// skip header
+	uint32 * exports = ((uint32 *)iUseCase->GetExportTable()) + 1;
+	uint32 absentVal = EntryPointOffset() + iElfExecutable->GetROBase();
+	iMissingExports = 0;
+	for (int i=0; i<nexp; ++i)
+	{
+		if (exports[i] == absentVal)
+		{
+			iExportBitMap[i>>3] &= ~(1u << (i & 7));
+			++iMissingExports;
+		}
+	}
+}
+
+/**
+This function creates export desription for the absent symbols.
+@internalComponent
+@released
+*/
+void E32ImageFile::AddExportDescription()
+{
+	CreateExportBitMap();
+	if (iMissingExports == 0)
+		return;	// nothing to do
+
+	int nexp = iUseCase->GetNumExports();
+	size_t memsz = (nexp + 7) >> 3;	// size of complete bitmap
+	size_t mbs = (memsz + 7) >> 3;	// size of meta-bitmap
+	size_t nbytes = 0;
+	unsigned int i;
+	for (i=0; i<memsz; ++i)
+		if (iExportBitMap[i] != 0xff)
+			++nbytes;				// number of groups of 8
+	uint8 edt = KImageHdr_ExpD_FullBitmap;
+	uint32 extra_space = memsz - 1;
+	if (mbs + nbytes < memsz)
+	{
+		edt = KImageHdr_ExpD_SparseBitmap8;
+		extra_space = mbs + nbytes - 1;
+	}
+	extra_space = (extra_space + sizeof(uint32) - 1) &~ (sizeof(uint32) - 1);
+
+	iHdr->iExportDescType = edt;
+	if (edt == KImageHdr_ExpD_FullBitmap)
+	{
+		iHdr->iExportDescSize = (uint16)memsz;
+		iHdr->iExportDesc[0] = iExportBitMap[0];
+		uint8 * aDesc = new uint8[extra_space];
+		memset(aDesc, 0, extra_space);
+		memcpy(aDesc, &iExportBitMap[1], memsz-1);
+		iChunks.AddChunk((char *)aDesc,extra_space, iChunks.GetOffset(), "Export Description");
+	}
+	else
+	{
+		iHdr->iExportDescSize = (uint16)(mbs + nbytes);
+		uint8 * aBuf = new uint8[extra_space + 1];
+		memset(aBuf , 0, extra_space + 1);
+		TUint8* mptr = aBuf;
+		TUint8* gptr = mptr + mbs;
+		for (i=0; i<memsz; ++i)
+		{
+			if (iExportBitMap[i] != 0xff)
+			{
+				mptr[i>>3] |= (1u << (i&7));
+				*gptr++ = iExportBitMap[i];
+			}
+		}
+		iHdr->iExportDesc[0] = aBuf[0];
+		uint8 * aDesc = new uint8[extra_space];
+		memcpy(aDesc, aBuf+1, extra_space);
+		delete[] aBuf;
+		iChunks.AddChunk((char *)aDesc,extra_space, iChunks.GetOffset(), "Export Description");
+	}
+}
+
+/**
+This function sets the fields of the E32 image.
+@internalComponent
+@released
+*/
+void E32ImageFile::FinalizeE32Image()
+{
+	// Arrange a header for this E32 Image
+	iHdr->iCpuIdentifier = GetCpuIdentifier();
+	// Import format is ELF-derived
+	iHdr->iFlags |= KImageImpFmt_ELF;
+	// ABI is ARM EABI
+	iHdr->iFlags |= KImageABI_EABI;
+	iHdr->iFlags |= KImageEpt_Eka2;
+
+	bool isDllp = iUseCase->ImageIsDll();
+	if (isDllp)
+	{
+		iHdr->iFlags |= KImageDll;
+		if (iHdr->iDataSize && !iUseCase->AllowDllData())
+			throw ELFFileError(DLLHASINITIALISEDDATAERROR, (char*)iUseCase->InputElfFileName());
+
+		if (iHdr->iBssSize  && !iUseCase->AllowDllData())
+			throw ELFFileError(DLLHASUNINITIALISEDDATAERROR, (char*)iUseCase->InputElfFileName());
+
+	}
+
+	iHdr->iHeapSizeMin = iUseCase->HeapCommittedSize();
+	iHdr->iHeapSizeMax = iUseCase->HeapReservedSize();
+	iHdr->iStackSize = iUseCase->StackCommittedSize();
+
+
+	iHdr->iEntryPoint = EntryPointOffset();
+
+	EEntryPointStatus r = ValidateEntryPoint();
+	if (r == EEntryPointCorrupt)
+		throw ELFFileError(ENTRYPOINTCORRUPTERROR, (char*)iUseCase->InputElfFileName());
+	else if (r == EEntryPointNotSupported)
+		throw ELFFileError(ENTRYPOINTNOTSUPPORTEDERROR, (char*)iUseCase->InputElfFileName());
+
+	SetUpExceptions();
+	SetUids();
+	SetSecureId();
+	SetVendorId();
+	SetCallEntryPoints();
+	SetCapability();
+	SetPriority(isDllp);
+	SetFixedAddress(isDllp);
+	SetVersion();
+	SetCompressionType();
+	SetFPU();
+
+	SetPaged();
+
+	SetSymbolLookup();
+	SetDebuggable();
+	SetSmpSafe();
+	UpdateHeaderCrc();
+}
+
+/**
+This function returns the CPU identifier for the E32 image header.
+@internalComponent
+@released
+*/
+E32ImageFile::uint16 E32ImageFile::GetCpuIdentifier()
+{
+	return (uint16)ECpuArmV5;
+}
+
+/**
+This function returns the entry point of the E32 image .
+@internalComponent
+@released
+*/
+E32ImageFile::uint32 E32ImageFile::EntryPointOffset()
+{
+	return iElfExecutable->EntryPointOffset();
+}
+
+/**
+This function validates the entry point of the E32 image .
+@internalComponent
+@released
+*/
+E32ImageFile::EEntryPointStatus E32ImageFile::ValidateEntryPoint()
+{
+	uint32 epOffset = iHdr->iEntryPoint;
+	if (epOffset & 3)
+		return EEntryPointOK;	// if entry point not 4 byte aligned, must be old style
+	uint32 fileOffset = epOffset + iElfExecutable->iCodeSegmentHdr->p_offset;
+	if (fileOffset+4 > iChunks.GetOffset())
+		return EEntryPointCorrupt;	// entry point is past the end of the file??
+	int ept = 0;			// old style if first instruction not recognised
+	uint8 * p = ELF_ENTRY_PTR(uint8, iElfExecutable->iElfHeader, fileOffset + 4);
+	uint32 x = *--p;
+	x<<=8;
+	x|=*--p;
+	x<<=8;
+	x|=*--p;
+	x<<=8;
+	x|=*--p;
+	if ((x & 0xffffff00) == 0xe31f0000)
+	{
+		// starts with tst pc, #n - new entry point
+		ept = (x & 0xff) + 1;
+	}
+	if (ept>7)
+		return EEntryPointNotSupported;
+	iHdr->iFlags |= (ept<<KImageEptShift);
+	return EEntryPointOK;
+}
+
+/**
+This function sets the exciption descriptor in the E32 image .
+@internalComponent
+@released
+*/
+void E32ImageFile::SetUpExceptions()
+{
+	char * aExDescName = "Symbian$$CPP$$Exception$$Descriptor";
+	Elf32_Sym * aSym = iElfExecutable->LookupStaticSymbol(aExDescName);
+	if (aSym)
+	{
+		uint32 aSymVaddr = aSym->st_value;
+		uint32 aROBase = iElfExecutable->GetROBase();
+		uint32 aROSize = iElfExecutable->GetROSize();
+		//check its in RO segment
+		if (aSymVaddr < aROBase || aSymVaddr >= (aROBase + aROSize))
+		{
+			throw ELFFileError(EXCEPTIONDESCRIPTOROUTSIDEROERROR,(char*)iUseCase->InputElfFileName());
+		}
+		// Set bottom bit so 0 in header slot means an old binary.
+		// The decriptor is always aligned on a 4 byte boundary.
+		iHdr->iExceptionDescriptor = (aSymVaddr - aROBase) | 0x00000001;
+	}	
+}
+
+/**
+This function sets the UIDs of the E32 image .
+@internalComponent
+@released
+*/
+void E32ImageFile::SetUids()
+{
+	iHdr->iUid1=iUseCase->GetUid1();
+	iHdr->iUid2=iUseCase->GetUid2();
+	iHdr->iUid3=iUseCase->GetUid3();
+}
+
+/**
+This function sets the secure ID of the E32 image as passed in the command line.
+@internalComponent
+@released
+*/
+void E32ImageFile::SetSecureId()
+{
+	if (iUseCase->GetSecureIdOption())
+		iHdr->iS.iSecureId = iUseCase->GetSecureId();
+	else
+		iHdr->iS.iSecureId = iUseCase->GetUid3();
+}
+
+/**
+This function sets the vendor Id of the E32 image as passed in command line.
+@internalComponent
+@released
+*/
+void E32ImageFile::SetVendorId()
+{
+	iHdr->iS.iVendorId = iUseCase->GetVendorId();
+}
+
+/**
+This function sets the call entry point of the E32 image .
+@internalComponent
+@released
+*/
+void E32ImageFile::SetCallEntryPoints()
+{
+	if (iUseCase->GetCallEntryPoints())
+		iHdr->iFlags|=KImageNoCallEntryPoint;
+	else
+		iHdr->iFlags&=~KImageNoCallEntryPoint;
+}
+
+/**
+This function sets the capcbility of the E32 image as specified in the command line.
+@internalComponent
+@released
+*/
+void E32ImageFile::SetCapability()
+{
+	iHdr->iS.iCaps = iUseCase->GetCapability();
+}
+
+/**
+This function sets the priority of the E32 exe.
+@internalComponent
+@released
+*/
+void E32ImageFile::SetPriority(bool isDllp)
+{
+	if (iUseCase->GetPriority())
+	{
+		if (isDllp)
+		{
+			cerr << "Warning: Cannot set priority of a DLL." << endl;
+		}
+		else
+			iHdr->iProcessPriority = (unsigned short)iUseCase->GetPriority();
+	}
+}
+
+/**
+This function sets the fixed address flag of the E32 image .
+@internalComponent
+@released
+*/
+void E32ImageFile::SetFixedAddress(bool isDllp)
+{
+	if (iUseCase->GetFixedAddress())
+	{
+		if (isDllp)
+		{
+			cerr << "Warning: Cannot set fixed address for DLL." << endl;
+		}
+		else
+			iHdr->iFlags|=KImageFixedAddressExe;
+	}
+	else
+		iHdr->iFlags&=~KImageFixedAddressExe;
+}
+
+/**
+This function sets the version of the E32 image .
+@internalComponent
+@released
+*/
+void E32ImageFile::SetVersion()
+{
+	iHdr->iModuleVersion = iUseCase->GetVersion();
+}
+
+/**
+This function sets the compression type of the E32 image .
+@internalComponent
+@released
+*/
+void E32ImageFile::SetCompressionType()
+{
+	if(iUseCase->GetCompress())
+		iHdr->iCompressionType = iUseCase->GetCompressionMethod();
+	else
+		iHdr->iCompressionType = KFormatNotCompressed;
+
+}
+
+/**
+This function sets the FPU type that the E32 image targets .
+@internalComponent
+@released
+*/
+void E32ImageFile::SetFPU()
+{
+	iHdr->iFlags &=~ KImageHWFloatMask;
+
+	if (iUseCase->GetFPU() == 1)
+		iHdr->iFlags |= KImageHWFloat_VFPv2;
+}
+
+/**
+This function sets the paging attribute in the E32 image.
+@internalComponent
+@released
+*/
+void E32ImageFile::SetPaged()
+{
+	// Code paging.
+
+	if ( iUseCase->IsCodePaged() )
+	{
+		iHdr->iFlags |= KImageCodePaged;
+		iHdr->iFlags &= ~KImageCodeUnpaged;
+	}
+	else if ( iUseCase->IsCodeUnpaged() )
+	{
+		iHdr->iFlags |= KImageCodeUnpaged;
+		iHdr->iFlags &= ~KImageCodePaged;
+	}
+	else if ( iUseCase->IsCodeDefaultPaged() )
+	{
+		iHdr->iFlags &= ~KImageCodePaged;
+		iHdr->iFlags &= ~KImageCodeUnpaged;
+	}
+
+	// Data paging.
+
+	if ( iUseCase->IsDataPaged() )
+	{
+		iHdr->iFlags |=  KImageDataPaged;
+		iHdr->iFlags &= ~KImageDataUnpaged;
+	}
+	else if ( iUseCase->IsDataUnpaged() )
+	{
+		iHdr->iFlags |=  KImageDataUnpaged;
+		iHdr->iFlags &= ~KImageDataPaged;
+	}
+	else if ( iUseCase->IsDataDefaultPaged() )
+	{
+		iHdr->iFlags &= ~KImageDataPaged;
+		iHdr->iFlags &= ~KImageDataUnpaged;
+	}
+}
+
+/**
+This function sets the Debuggable attribute in the E32 image.
+@internalComponent
+@released
+*/
+void E32ImageFile::SetDebuggable()
+{
+	if (iUseCase->IsDebuggable() == true)
+	{
+		iHdr->iFlags |= KImageDebuggable;
+	}
+	else
+	{
+		iHdr->iFlags &= ~KImageDebuggable;
+	}
+}
+
+
+void E32ImageFile::SetSmpSafe()
+{
+	if ( iUseCase->IsSmpSafe() )
+	{
+		iHdr->iFlags |= KImageSMPSafe;
+	}
+	else
+	{
+		iHdr->iFlags &= ~KImageSMPSafe;
+	}
+}
+
+/**
+This function sets the named symol-lookup attribute in the E32 image.
+@internalComponent
+@released
+*/
+void E32ImageFile::SetSymbolLookup()
+{
+	if(iUseCase->GetNamedSymLookup())
+	{
+		iHdr->iFlags |= KImageNmdExpData;
+	}
+	else
+	{
+		iHdr->iFlags &= ~KImageNmdExpData;
+	}
+}
+
+/**
+Class for Uids.
+@internalComponent
+@released
+*/
+class TE32ImageUids
+{
+public:
+	TE32ImageUids(TUint32 aUid1, TUint32 aUid2, TUint32 aUid3);
+	void Set(const TUidType& aUidType);
+	TUint Check() { return ((checkSum(((TUint8*)this)+1)<<16)|checkSum(this));}
+private:
+	TUidType iType;
+	TUint iCheck;
+
+};
+
+/**
+Constructor for TE32ImageUids.
+@internalComponent
+@released
+*/
+TE32ImageUids::TE32ImageUids(TUint32 aUid1, TUint32 aUid2, TUint32 aUid3)
+{
+	Set(TUidType(TUid::Uid(aUid1), TUid::Uid(aUid2), TUid::Uid(aUid3)));
+}
+
+/**
+This function sets the Uid.
+@internalComponent
+@released
+*/
+void TE32ImageUids::Set(const TUidType& aUidType)
+{
+    iType=aUidType;
+    iCheck=Check();
+}
+
+/**
+Default constructor for TUidType class.
+@internalComponent
+@released
+*/
+TUidType::TUidType()
+{
+	memset(this, 0, sizeof(TUidType));
+}
+
+/**
+Constructor for TUidType class.
+@internalComponent
+@released
+*/
+TUidType::TUidType(TUid aUid1,TUid aUid2,TUid aUid3)
+{
+	iUid[0]=aUid1;
+	iUid[1]=aUid2;
+	iUid[2]=aUid3;
+}
+
+// needed by E32ImageHeaderV::ValidateHeader...
+TCheckedUid::TCheckedUid(const TUidType& aUidType)
+	{
+    iType = aUidType;
+    iCheck = ((TE32ImageUids*)this)->Check();
+	}
+
+// needed by E32ImageHeaderV::ValidateHeader...
+void Mem::Crc32(TUint32& aCrc, const TAny* aPtr, TInt aLength)
+	{
+	::Crc32(aCrc, aPtr, aLength);
+	}
+
+/**
+This function updates the CRC of the E32 Image.
+@internalComponent
+@released
+*/
+void E32ImageFile::UpdateHeaderCrc()
+{
+	TE32ImageUids u(iHdr->iUid1, iHdr->iUid2, iHdr->iUid3);
+	iHdr->iUidChecksum = u.Check();
+	TInt hdrsz = GetExtendedE32ImageHeaderSize();
+	iHdr->iUncompressedSize = iChunks.GetOffset() - Align(GetExtendedE32ImageHeaderSize(), sizeof(uint32));
+	iHdr->iHeaderCrc = KImageCrcInitialiser;
+	uint32 crc = 0;
+	Crc32(crc, iHdr, hdrsz);
+	iHdr->iHeaderCrc = crc;
+}
+
+/**
+This function creates a buffer and writes all the data into the buffer.
+@internalComponent
+@released
+*/
+void E32ImageFile::AllocateE32Image()
+{
+	size_t aImageSize = iChunks.GetOffset();
+	iE32Image = new char[aImageSize];
+	memset(iE32Image, 0, aImageSize);
+
+	E32ImageChunks::ChunkList aChunkList = iChunks.GetChunks();
+	E32ImageChunks::ChunkList::iterator p;
+	for(p = aChunkList.begin(); p != aChunkList.end(); p++)
+	{
+		(*p)->Write(iE32Image);
+	}
+
+	E32ImageHeaderV* header = (E32ImageHeaderV*)iE32Image;
+	TInt headerSize = header->TotalSize();
+	if(KErrNone!=header->ValidateWholeImage(iE32Image+headerSize,GetE32ImageSize()-headerSize))
+		throw InvalidE32ImageError(VALIDATIONERROR, (char*)iUseCase->OutputE32FileName());
+}
+
+/**
+This function deflates the compressed data.
+@param bytes
+@param size
+@param os
+@internalComponent
+@released
+*/
+void DeflateCompress(char* bytes, size_t size, ofstream & os);
+
+/**
+This function Paged Pack the compressed data.
+@param bytes
+@param size
+@param os
+@internalComponent
+@released
+*/
+void CompressPages(TUint8 * bytes, TInt size, ofstream& os);
+
+
+/**
+This function writes into the final E32 image file.
+@param aName - E32 image file name
+@internalComponent
+@released
+*/
+bool E32ImageFile::WriteImage(const char * aName)
+{
+	ofstream *os = new ofstream();
+	os->open(aName, ofstream::binary|ofstream::out);
+
+	if (os->is_open()) 
+	{
+		uint32 compression = iHdr->CompressionType();
+		if (compression == KUidCompressionDeflate)
+		{
+			size_t aHeaderSize = GetExtendedE32ImageHeaderSize();
+			size_t aBodySize = GetE32ImageSize() - aHeaderSize;
+			os->write(iE32Image, aHeaderSize);
+			DeflateCompress(iE32Image + aHeaderSize, aBodySize, *os);
+		}
+		else if (compression == KUidCompressionBytePair)
+		{
+			size_t aHeaderSize = GetExtendedE32ImageHeaderSize();
+			os->write(iE32Image, aHeaderSize);
+			
+			// Compress and write out code part
+			int srcStart = GetExtendedE32ImageHeaderSize();
+			CompressPages( (TUint8*)iE32Image + srcStart, iHdr->iCodeSize, *os);
+			
+			
+			// Compress and write out data part
+			srcStart += iHdr->iCodeSize;
+			int srcLen = GetE32ImageSize() - srcStart;
+			
+			CompressPages((TUint8*)iE32Image + srcStart, srcLen, *os);		
+
+		}
+		else if (compression == 0)
+		{
+			os->write(iE32Image, GetE32ImageSize()); // image not compressed
+		}
+
+	} 
+	else
+	{
+		throw FileError(FILEOPENERROR,(char*)aName);
+	}
+	os->close();
+	if(os!=NULL)
+	{
+	delete os;
+	os = NULL;
+	}
+	return true;
+}
+
+
+/**
+Constructor for E32ImageFile class.
+@internalComponent
+@released
+*/
+E32ImageFile::E32ImageFile(): iFileName(NULL), iE32Image(NULL),iExportBitMap(0),cleanupStack(0),  iData(NULL),iHdr(NULL),iImportSection(0), iSize(0), iOrigHdr(NULL),  iError(0), iSource(EE32Image), iOrigHdrOffsetAdj(0)  
+{
+	
+};
+
+/**
+Destructor for E32ImageFile class.
+@internalComponent
+@released
+*/
+E32ImageFile::~E32ImageFile()
+{
+	delete[] iData;
+	if (iHdr && iHdr != iOrigHdr)
+		delete iHdr;
+
+	delete [] iExportBitMap;
+	delete [] iE32Image;
+	delete [] iImportSection;
+
+ 	std::vector<char*>::iterator aPos;
+ 	char *aPtr;
+ 	aPos = cleanupStack.begin();
+ 	while( aPos != cleanupStack.end() )
+ 	{
+ 		aPtr = *aPos;
+ 		delete [] aPtr;
+ 		aPos++;
+ 	}
+	
+}
+
+/**
+Adjust the size of allocated data and fix the member data
+@internalComponent
+@released
+*/
+void E32ImageFile::Adjust(TInt aSize, TBool aAllowShrink)
+{
+	TInt asize = ((aSize+0x3)&0xfffffffc);
+
+	if (asize == iSize)
+		return;
+
+	if (iSize == 0)
+	{
+		iSize = asize;
+		iData = new char[iSize];
+		memset(iData, 0, iSize);
+	}
+	else if (aAllowShrink || asize > iSize)
+	{
+		TInt oldsize = iSize;
+		iSize = asize;
+		iData = (char*)realloc(iData, iSize);
+		
+		if (iSize > oldsize)
+			memset(iData+oldsize, 0, iSize-oldsize);
+	}
+	
+	if (!iData)
+		iSize = 0;
+	
+	if (iHdr && iHdr == iOrigHdr)
+		iHdr = (E32ImageHeaderV*)iData;
+	
+	iOrigHdr = (E32ImageHeader*)iData;
+}
+
+/**
+Read the E32 image.
+@param is - input stream
+@internalComponent
+@released
+*/
+TInt E32ImageFile::ReadHeader(ifstream& is)
+{
+	Adjust(sizeof(E32ImageHeader), EFalse);
+	is.read(iData, sizeof(E32ImageHeader));
+	TInt hdrsz = iOrigHdr->TotalSize();
+	
+	if (hdrsz > 0x10000)
+		return KErrCorrupt;	// sanity check
+	
+	if (hdrsz > (TInt)sizeof(E32ImageHeader))
+	{
+		Adjust(hdrsz, EFalse);
+		is.read(iData+sizeof(E32ImageHeader), hdrsz-sizeof(E32ImageHeader));
+	}
+
+	TUint32 uncompressedSize;
+	TInt r = iOrigHdr->ValidateHeader(iFileSize,uncompressedSize);
+	
+	if (r != KErrNone)
+	{
+		fprintf(stderr, "Integrity check failed %d\n", r);
+		return r;
+	}
+	
+	iHdr = (E32ImageHeaderV*)iOrigHdr;
+	return KErrNone;
+}
+
+/**
+Return the offset of the text section
+@internalComponent
+@released
+*/
+TUint E32ImageFile::TextOffset()
+{
+	return 0;
+}
+
+/**
+Return the offset of the data section
+@internalComponent
+@released
+*/
+TUint E32ImageFile::DataOffset()
+{
+	return iHdr->iCodeSize;
+}
+
+/**
+Return the offset of the bss section
+@internalComponent
+@released
+*/
+TUint E32ImageFile::BssOffset()
+{
+	return DataOffset()+iHdr->iDataSize;
+}
+
+
+/**
+This function creates the bitmap after reading the E32 image file
+@internalComponent
+@released
+*/
+void E32ImageFile::E32ImageExportBitMap()
+{
+	TInt nexp = iOrigHdr->iExportDirCount;
+	TInt memsz = (nexp + 7) >> 3;
+	iExportBitMap = new TUint8[memsz];
+	memset(iExportBitMap, 0xff, memsz);
+	TUint* exports = (TUint*)(iData + iOrigHdr->iExportDirOffset);
+	TUint absoluteEntryPoint = iOrigHdr->iEntryPoint + iOrigHdr->iCodeBase;
+	TUint impfmt = iOrigHdr->ImportFormat();
+	TUint hdrfmt = iOrigHdr->HeaderFormat();
+	TUint absentVal = (impfmt == KImageImpFmt_ELF) ? absoluteEntryPoint : iOrigHdr->iEntryPoint;
+	TInt i;
+	iMissingExports = 0;
+	
+	for (i=0; i<nexp; ++i)
+	{
+		if (exports[i] == absentVal)
+		{
+			iExportBitMap[i>>3] &= ~(1u << (i & 7));
+			++iMissingExports;
+		}
+	}
+	
+	if (hdrfmt < KImageHdrFmt_V && iMissingExports)
+	{
+		fprintf(stderr, "Bad exports\n");
+		exit(999);
+	}
+}
+
+/**
+This function creates the export description after reading the E32 image file
+@internalComponent
+@released
+*/
+TInt E32ImageFile::CheckExportDescription()
+{
+	TUint hdrfmt = iOrigHdr->HeaderFormat();
+	if (hdrfmt < KImageHdrFmt_V && iMissingExports)
+		return KErrCorrupt;
+	
+	if (iHdr->iExportDescType == KImageHdr_ExpD_NoHoles)
+	{
+		return iMissingExports ? KErrCorrupt : KErrNone;
+	}
+	
+	TInt nexp = iOrigHdr->iExportDirCount;
+	TInt memsz = (nexp + 7) >> 3;	// size of complete bitmap
+	TInt mbs = (memsz + 7) >> 3;	// size of meta-bitmap
+	TInt eds = iHdr->iExportDescSize;
+	
+	if (iHdr->iExportDescType == KImageHdr_ExpD_FullBitmap)
+	{
+		if (eds != memsz)
+			return KErrCorrupt;
+		if (memcmp(iHdr->iExportDesc, iExportBitMap, eds) == 0)
+			return KErrNone;
+		return KErrCorrupt;
+	}
+	
+	if (iHdr->iExportDescType != KImageHdr_ExpD_SparseBitmap8)
+		return KErrNotSupported;
+	
+	TInt nbytes = 0;
+	TInt i;
+	for (i=0; i<memsz; ++i)
+		if (iExportBitMap[i] != 0xff)
+			++nbytes;				// number of groups of 8
+	
+	TInt exp_extra = mbs + nbytes;
+	if (eds != exp_extra)
+		return KErrCorrupt;
+	
+	const TUint8* mptr = iHdr->iExportDesc;
+	const TUint8* gptr = mptr + mbs;
+	for (i=0; i<memsz; ++i)
+	{
+		TUint mbit = mptr[i>>3] & (1u << (i&7));
+		if (iExportBitMap[i] != 0xff)
+		{
+			if (!mbit || *gptr++ != iExportBitMap[i])
+				return KErrCorrupt;
+		}
+		else if (mbit)
+			return KErrCorrupt;
+	}
+	
+	return KErrNone;
+}
+
+
+int  DecompressPages(TUint8 * bytes, ifstream& is);
+
+
+/**
+This function creates the E32 image reading from the file
+@param is
+@param aImage
+@internalComponent
+@released
+*/
+ifstream& operator>>(ifstream& is, E32ImageFile& aImage)
+{
+	aImage.iError = aImage.ReadHeader(is);
+	if (aImage.iError != KErrNone)
+		return is;
+	
+	E32ImageHeader* oh = aImage.iOrigHdr;
+	TInt orighdrsz = oh->TotalSize();
+	int remainder = aImage.iSize - orighdrsz;
+	TUint compression = oh->CompressionType();
+	if (compression == 0)
+	{
+		is.read(aImage.iData + orighdrsz, remainder);
+	}
+	else if (compression == KUidCompressionDeflate)
+	{ //Uncompress
+		aImage.iError = KErrNoMemory;
+		unsigned int uncompsize = ((E32ImageHeaderComp*)aImage.iOrigHdr)->iUncompressedSize;
+		aImage.Adjust(uncompsize + orighdrsz);
+		
+		if (aImage.iData==NULL)
+			return is;
+		
+		oh = aImage.iOrigHdr;
+		
+		unsigned char* compressedData = new unsigned char[remainder];
+		if (compressedData==NULL)
+			return is;
+		
+		is.read(reinterpret_cast<char *>(compressedData), remainder);
+		unsigned int destsize = uncompsize;
+		InflateUnCompress( compressedData, remainder, (unsigned char*)(aImage.iData + orighdrsz), destsize);
+		
+		if (destsize != uncompsize)
+			MessageHandler::GetInstance()->ReportMessage(WARNING, HUFFMANINCONSISTENTSIZEERROR);
+		
+		delete [] compressedData;
+		
+		if ((TUint)orighdrsz > oh->iCodeOffset)
+		{
+			// need to adjust code offsets in original
+			aImage.iOrigHdrOffsetAdj = (TUint)orighdrsz - oh->iCodeOffset;
+			aImage.OffsetAdjust(oh->iCodeOffset);
+			aImage.OffsetAdjust(oh->iDataOffset);
+			aImage.OffsetAdjust(oh->iCodeRelocOffset);
+			aImage.OffsetAdjust(oh->iDataRelocOffset);
+			aImage.OffsetAdjust(oh->iImportOffset);
+			aImage.OffsetAdjust(oh->iExportDirOffset);
+		}
+		aImage.iError = KErrNone;
+	}
+	else if(compression == KUidCompressionBytePair)
+	{ // Uncompress
+		aImage.iError = KErrNoMemory;
+		unsigned int uncompsize = ((E32ImageHeaderComp*)aImage.iOrigHdr)->iUncompressedSize;
+		aImage.Adjust(uncompsize + orighdrsz);
+		if (aImage.iData==NULL)
+			return is;
+		oh = aImage.iOrigHdr;
+
+		// Read and decompress code part of the image
+
+		unsigned int uncompressedCodeSize = DecompressPages((TUint8 *) (aImage.iData + orighdrsz), is);
+
+		
+		// Read and decompress data part of the image
+
+		unsigned int uncompressedDataSize = DecompressPages((TUint8 *) (aImage.iData + orighdrsz + uncompressedCodeSize), is);
+
+		if (uncompressedCodeSize + uncompressedDataSize != uncompsize)
+			MessageHandler::GetInstance()->ReportMessage(WARNING, BYTEPAIRINCONSISTENTSIZEERROR);
+
+		if ((TUint)orighdrsz > oh->iCodeOffset)
+			{
+			// need to adjust code offsets in original
+			aImage.iOrigHdrOffsetAdj = (TUint)orighdrsz - oh->iCodeOffset;
+			aImage.OffsetAdjust(oh->iCodeOffset);
+			aImage.OffsetAdjust(oh->iDataOffset);
+			aImage.OffsetAdjust(oh->iCodeRelocOffset);
+			aImage.OffsetAdjust(oh->iDataRelocOffset);
+			aImage.OffsetAdjust(oh->iImportOffset);
+			aImage.OffsetAdjust(oh->iExportDirOffset);
+			}
+		aImage.iError = KErrNone;
+	}
+	aImage.E32ImageExportBitMap();
+
+	return is;
+}
+#ifdef __LINUX__ 
+#include <sys/stat.h>
+/**
+Simple function uses stdlib fstat to obtain the size of the file. 
+@param aFileName - e32 image file name
+@internalComponent
+@released
+*/ 
+int GetFileSize(const char* aFileName) {
+    // Open the file the old-fashioned way :-)
+    struct stat fileInfo; 
+    if(stat(aFileName,&fileInfo)!=0) {
+        throw FileError(FILEOPENERROR,(char *)aFileName);
+    }
+    off_t fileSize = fileInfo.st_size;
+    return fileSize; 
+}
+#else 
+int GetFileSize(const char* aFileName) {
+    _finddata_t fileinfo;
+	int ret=_findfirst((char *)aFileName,&fileinfo);
+	if (ret==-1) 
+	{
+		throw FileError(FILEOPENERROR,(char *)aFileName);
+	}
+    return fileinfo.size; 
+}
+#endif
+
+
+/**
+This function opens the  e32 image file.
+@param aFileName - e32 image file name
+@internalComponent
+@released
+*/
+TInt E32ImageFile::Open(const char* aFileName)
+{
+	iFileSize = GetFileSize(aFileName);
+	
+	Adjust(iFileSize);
+	ifstream ifile((char *)aFileName, ios::in | ios::binary);
+	if(!ifile.is_open())
+	{
+		throw FileError(FILEOPENERROR,(char *)aFileName);
+	}
+	ifile >> *this;
+	ifile.close();
+
+	if (iError != KErrNone)
+		return iError;
+	
+	return KErrNone;
+}
+
+void E32ImageFile::ProcessSymbolInfo() {
+	
+	Elf32_Addr aPlace = iUseCase->GetExportTableAddress() - 4;// This location points to 0th ord.
+	// Create a relocation entry for the 0th ordinal.
+	ElfLocalRelocation *aRel = new ElfLocalRelocation(iElfExecutable, aPlace, 0, 0, R_ARM_ABS32, \
+		NULL, ESegmentRO, NULL, false);
+	aRel->Add();
+
+	aPlace += iUseCase->GetExportTableSize();// aPlace now points to the symInfo
+	uint32 *aZerothOrd = (uint32*)iUseCase->GetExportTable();
+	*aZerothOrd = aPlace;
+	aPlace += sizeof(E32EpocExpSymInfoHdr);// aPlace now points to the symbol address
+											// which is just after the syminfo header.
+	if(!iElfExecutable->iExports)
+		return;
+
+	// Donot disturb the internal list sorting.
+	ElfExports::ExportList aList = iElfExecutable->iExports->GetExports(false);
+
+	ElfExports::ExportList::iterator aIter = aList.begin();
+	DllSymbol *aSym;
+	TUint aAlign, aNameLen;
+
+	
+	char aPad[] = {'\0', '\0', '\0', '\0'};
+
+
+	while ( aIter != aList.end() ) {
+		aSym = *aIter;
+		iSymAddrTab.push_back(aSym->iElfSym->st_value);
+		// The symbol names always start at a 4-byte aligned offset.
+		iSymNameOffset = iSymbolNames.size() >> 2;
+		iSymNameOffTab.push_back(iSymNameOffset);
+
+		iSymbolNames += aSym->SymbolName();
+		iSymbolNames += '\0';
+		aNameLen = iSymbolNames.size();
+		aAlign = Align(aNameLen, sizeof(int));
+		aAlign = aAlign - aNameLen;
+		if(aAlign % 4){
+			iSymbolNames.append(aPad, aAlign);
+		}
+		//Create a relocation entry...
+		aRel = new ElfLocalRelocation(iElfExecutable, aPlace, 0, 0, R_ARM_ABS32, NULL,\
+			ESegmentRO, aSym->iElfSym, false);
+		aPlace += sizeof(uint32);
+		aRel->Add();
+		aIter++;
+	}
+}
+
+char* E32ImageFile::CreateSymbolInfo(size_t aBaseOffset) {
+	E32EpocExpSymInfoHdr aSymInf;
+	uint32 aSizeofNames, aSize;
+
+	SetSymInfo(aSymInf);
+	if( aSymInf.iFlags & 1) {
+		aSizeofNames = sizeof(uint32);
+	}
+	else {
+		aSizeofNames = sizeof(uint16);
+	}
+
+	aSize = aSymInf.iSize;
+
+	char* aInfo = new char[aSize];
+	memset(aInfo, 0, aSize);
+	memcpy(aInfo, (void*)&aSymInf, sizeof(aSymInf));
+
+	TUint aPos = aSymInf.iSymbolTblOffset;
+	memcpy(aInfo+aPos, iSymAddrTab.begin(), iSymAddrTab.size()*sizeof(uint32));
+
+	aPos += iSymAddrTab.size()*aSizeofNames;
+	aPos += iSymNameOffTab.size()*aSizeofNames;
+	aPos = Align(aPos, sizeof(uint32));
+
+	std::vector<uint32>::iterator Iter = iSymNameOffTab.begin();
+	TInt aOffLen = 2;
+	if(aSymInf.iFlags & 1)
+		aOffLen=4;
+	while(Iter != iSymNameOffTab.end()){
+		memcpy( ((void*)(aInfo+aPos)), ((void*)Iter), aOffLen);
+		aPos += aOffLen;
+		Iter++;
+	}
+
+	aPos = aSymInf.iStringTableOffset;
+	memcpy(aInfo+aPos, iSymbolNames.begin(), iSymbolNames.size());
+
+	// At the end, the dependencies are listed. They remain zeroes and shall be fixed up
+	// while relocating.
+
+	// Update the import table to have offsets to ordinal zero entries
+	uint32 *aLocation, aOffset;
+	uint32 *aImportTab = iImportSection;
+
+	std::vector<int>::iterator aIter = iImportTabLocations.begin();
+	aOffset = aBaseOffset - iHdr->iCodeOffset;// This gives the offset of syminfo table base
+										// wrt the code section start
+	aOffset += aSymInf.iDepDllZeroOrdTableOffset; // This points to the ordinal zero offset table now
+	while( aIter != iImportTabLocations.end()) {
+		aLocation = (aImportTab + *aIter);
+		*aLocation = aOffset;
+		aOffset += sizeof(uint32);
+		aIter++;
+	}
+
+	return aInfo;
+}
+
+void E32ImageFile::SetSymInfo(E32EpocExpSymInfoHdr& aSymInfo)
+{
+	uint32 aSize = sizeof(E32EpocExpSymInfoHdr);
+	memset(&aSymInfo, 0, aSize);
+
+	uint16 aNSymbols = (uint16) iSymAddrTab.size();
+	aSymInfo.iSymCount = aNSymbols;
+	aSymInfo.iSymbolTblOffset = aSize;
+	aSize += aNSymbols * sizeof(uint32); // Symbol addresses
+	TUint aNameTabSz = iSymbolNames.size();
+	TInt aSizeofNames;
+
+	if( iSymNameOffset < 0xffff) {
+		aSizeofNames = sizeof(uint16);
+		aSymInfo.iFlags &= ~1;//reset the 0th bit
+	}
+	else {
+		aSizeofNames = sizeof(uint32);
+		aSymInfo.iFlags |= 1;//set the 0th bit
+	}
+	aSize += Align((aNSymbols * aSizeofNames), sizeof(uint32)); // Symbol name offsets
+	aSymInfo.iStringTableOffset = aSize;
+	aSize += aNameTabSz; // Symbol names in string tab
+	aSymInfo.iStringTableSz = aNameTabSz;
+	aSymInfo.iDepDllZeroOrdTableOffset = aSize;
+	aSymInfo.iDllCount = iNumDlls ;
+	aSize += iNumDlls * sizeof(uint32); // Dependency list - ordinal zero placeholder
+	aSymInfo.iSize = aSize;
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/e32imagefile.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,265 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Class for E32 Image implementation and dump of the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+#ifndef E32IMAGEFILE_H
+#define E32IMAGEFILE_H
+
+#include "pl_elfrelocation.h"
+#include "pl_elfrelocations.h"
+#include "e32imagedefs.h"
+#include <tools/elfdefs.h>
+
+#include <fstream>
+#include <vector>
+using std::vector;
+#include <iostream>
+using std::ifstream;
+
+#include <e32std.h>
+
+enum TFileSource
+	{
+	EE32Image=0,
+	EPeFile=1,
+	EElfFile=2,
+	};
+
+class ELFExecutable;
+class ElfFileSupplied;
+
+/**
+Class E32ImageChunkDesc for different sections in the E32 image.
+@internalComponent
+@released
+*/
+class E32ImageChunkDesc
+{
+public:
+	E32ImageChunkDesc(char * aData, size_t aSize, size_t aOffset, char * aDoc);
+	virtual ~E32ImageChunkDesc();
+	virtual void Write(char * aPlace);
+
+public:
+	char * iData;
+	size_t iSize;
+	size_t iOffset;
+	char * iDoc;
+};
+
+/**
+Class E32ImageChunks for a list of sections in the E32 image.
+@internalComponent
+@released
+*/
+class E32ImageChunks
+{
+public:
+
+	typedef vector<E32ImageChunkDesc *> ChunkList;
+
+public:
+	E32ImageChunks();
+	virtual ~E32ImageChunks();
+
+	void AddChunk(char * aData, size_t aSize, size_t aOffset, char * aDoc);
+	size_t GetOffset();
+	void SetOffset(size_t aOffset);
+	ChunkList & GetChunks();
+
+public:
+	ChunkList iChunks;
+
+	size_t iOffset;
+
+};
+
+class ElfFileSupplied;
+
+/**
+Class E32ImageFile for fields of an E32 image.
+@internalComponent
+@released
+*/
+class E32ImageFile 
+{
+public:
+
+	typedef unsigned char uint8;
+	typedef unsigned short uint16;
+	typedef unsigned long uint32;
+	struct E32RelocPageDesc
+	{
+		uint32 aOffset;
+		uint32 aSize;
+	};
+
+//public:
+	E32ImageFile(const char * aFileName, ElfExecutable * aExecutable, ElfFileSupplied * aUseCase);
+	virtual ~E32ImageFile();
+
+	void GenerateE32Image();
+
+	void ReadInputELFFile(const char * aName, size_t & aFileSize, Elf32_Ehdr * & aELFFile );
+
+	void ProcessImports();
+	const char * FindDSO(const char * aName);
+
+	void ProcessRelocations();
+	void ProcessCodeRelocations();
+	void ProcessDataRelocations();
+	void CreateRelocations(ElfRelocations::RelocationList & aRelocList, char * & aRelocs, size_t & aRelocSize);
+	size_t RelocationsSize(ElfRelocations::RelocationList & aRelocList);
+
+	uint16 GetE32RelocType(ElfRelocation * aReloc);
+
+	void ConstructImage();
+
+	virtual void InitE32ImageHeader();
+	virtual size_t GetE32ImageHeaderSize();
+	virtual size_t GetExtendedE32ImageHeaderSize();
+	virtual void SetExtendedE32ImageHeaderSize(size_t aSize);
+
+	virtual void ComputeE32ImageLayout();
+	virtual size_t GetE32ImageSize();
+	virtual size_t GetExportOffset();
+	virtual void CreateExportBitMap();
+	virtual void AddExportDescription();
+
+	virtual void AllocateE32Image();
+	virtual void FinalizeE32Image();
+	virtual uint16 GetCpuIdentifier();
+	virtual uint32 EntryPointOffset();
+
+	enum EEntryPointStatus
+	{
+		EEntryPointOK,
+		EEntryPointCorrupt,
+		EEntryPointNotSupported
+	};
+
+	EEntryPointStatus ValidateEntryPoint();
+
+	virtual void SetUpExceptions();
+	virtual void SetUids();
+	virtual void SetSecureId();
+	virtual void SetVendorId();
+	virtual void SetCallEntryPoints();
+	virtual void SetCapability();
+	virtual void SetPriority(bool isDllp);
+	virtual void SetFixedAddress(bool isDllp);
+	virtual void SetVersion();
+	virtual void SetCompressionType();
+	virtual void SetFPU();
+	virtual void SetPaged();
+	virtual void SetSymbolLookup();
+	virtual void SetDebuggable();
+	virtual void SetSmpSafe();
+
+	void UpdateHeaderCrc();
+
+	bool WriteImage(const char * aName);
+
+public:
+	const char * iFileName;
+
+	char * iE32Image;
+	uint8 * iExportBitMap;
+	ElfExecutable * iElfExecutable;
+	std::vector<char*> cleanupStack;
+	char* iData;
+	ElfFileSupplied * iUseCase;
+	E32ImageHeaderV * iHdr;
+	size_t iHdrSize;
+
+	E32ImageChunks iChunks;
+
+	uint32 iNumDlls;
+	uint32 iNumImports;
+
+	uint32 * iImportSection;
+	size_t iImportSectionSize;
+
+	char * iCodeRelocs;
+	size_t iCodeRelocsSize;
+
+	char * iDataRelocs;
+	size_t iDataRelocsSize;
+
+	size_t iExportOffset;
+	bool iLayoutDone;
+
+	int iMissingExports;
+	
+	// This table carries the byte offsets in the import table entries corresponding 
+	// to the 0th ordinal entry of static dependencies.
+	std::vector<int>	iImportTabLocations;
+	std::vector<uint32>	iSymAddrTab;
+	std::vector<uint32>	iSymNameOffTab;
+	std::string			iSymbolNames;
+	uint32				iSymNameOffset;
+
+public:
+	E32ImageFile();
+	TInt ReadHeader(ifstream& is);
+	TInt Open(const char* aFileName);
+	void Adjust(TInt aSize, TBool aAllowShrink=ETrue);
+
+	TUint TextOffset();
+	TUint DataOffset();
+	TUint BssOffset();
+	TUint32 Capability();
+	TUint32 Format();
+
+	void Dump(TText *aFileName,TInt aDumpFlags);
+	void DumpHeader(TInt aDumpFlags);
+	void DumpData(TInt aDumpFlags);
+	void DumpSymbolInfo(E32EpocExpSymInfoHdr *aSymInfoHdr);
+	void E32ImageExportBitMap();
+	TInt CheckExportDescription();
+	void ProcessSymbolInfo();
+	char* CreateSymbolInfo(size_t aBaseOffset);
+	void SetSymInfo(E32EpocExpSymInfoHdr& aSymInfo);
+public:
+	inline TUint OrigCodeOffset() const {return OffsetUnadjust(iOrigHdr->iCodeOffset);}
+	inline TUint OrigDataOffset() const {return OffsetUnadjust(iOrigHdr->iDataOffset);}
+	inline TUint OrigCodeRelocOffset() const {return OffsetUnadjust(iOrigHdr->iCodeRelocOffset);}
+	inline TUint OrigDataRelocOffset() const {return OffsetUnadjust(iOrigHdr->iDataRelocOffset);}
+	inline TUint OrigImportOffset() const {return OffsetUnadjust(iOrigHdr->iImportOffset);}
+	inline TUint OrigExportDirOffset() const {return OffsetUnadjust(iOrigHdr->iExportDirOffset);}
+	inline TUint OffsetUnadjust(TUint a) const {return a ? a-iOrigHdrOffsetAdj : 0;}
+	inline void OffsetAdjust(TUint& a) { if (a) a+=iOrigHdrOffsetAdj; }
+
+public:
+
+	TInt iSize;
+	E32ImageHeader* iOrigHdr;
+	TInt iError;
+	TFileSource iSource;
+	TUint iOrigHdrOffsetAdj;
+	TInt iFileSize;
+
+};
+
+ifstream &operator>>(ifstream &is, E32ImageFile &aImage);
+void InflateUnCompress(unsigned char* source, int sourcesize, unsigned char* dest, int destsize);
+
+
+#endif // E32IMAGEFILE_H
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/elf2e32.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,347 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation of the Class Elf2E32 for the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+#include "elf2e32.h"
+#include "errorhandler.h"
+#include "librarytarget.h"
+#include "dll_fb_target.h"
+#include "dll_rebuild_target.h"
+#include "exetarget.h"
+#include "polydll_fb_target.h"
+#include "exexp_fb_target.h"
+#include "exexp_rebuild_target.h"
+#include "polydll_rebuild_target.h"
+#include "stdexe_target.h"
+#include "filedump.h"
+
+#include <iostream>
+
+using std::cout;
+using std::endl;
+
+ParameterListInterface * Elf2E32::iInstance=0;
+
+/**
+Constructor for Elf2E32
+
+@internalComponent 
+@released
+
+@param aArgc
+ The number of command line arguments passed into the program
+@param aArgv
+ The listing of all the arguments
+*/
+Elf2E32::Elf2E32(int aArgc, char **aArgv)
+{
+	iParameterListInterface = GetInstance(aArgc, aArgv);
+}
+
+
+Elf2E32::~Elf2E32()
+{
+	delete iInstance;
+}
+
+/**
+This function creates a single instance of the ParameterManager which is derived from 
+ParameterListInterface which is the abstract base class.
+
+@internalComponent
+@released
+
+@param aArgc
+ The number of command line arguments passed into the program
+@param aArgv
+ The listing of all the arguments
+
+@return A pointer to the newly created ParameterListInterface object which is the 
+ abstract interface
+*/
+ParameterListInterface * Elf2E32::GetInstance(int aArgc, char ** aArgv)
+{
+	if (iInstance == 0)
+		iInstance = new ParameterManager(aArgc, aArgv);
+
+	return iInstance;
+}
+
+/**
+This function is to select the appropriate use case based on the input values.
+1. If the input is only DEF file, then the usecase is the Create Library Target.
+   For Library Creation, alongwith the DEF file input, the DSO file option and 
+   the link as option SHOULD be passed. Otherwise, appropriate error message will
+   be generated.
+@internalComponent
+@released
+
+@return A pointer to the newly created UseCaseBase object
+
+*/
+UseCaseBase * Elf2E32::SelectUseCase()
+{
+	bool definputoption = iParameterListInterface->DefFileInOption();
+	bool elfinputoption = iParameterListInterface->ElfFileInOption();
+	char * deffilein = iParameterListInterface->DefInput();
+	char * elfin = iParameterListInterface->ElfInput();
+	bool filedumpoption = iParameterListInterface->FileDumpOption();
+	int dumpOptions = iParameterListInterface->DumpOptions();
+	char *filedumpsuboptions = iParameterListInterface->FileDumpSubOptions();
+
+	bool e32inputoption = iParameterListInterface->E32ImageInOption();
+	char * e32in = iParameterListInterface->E32Input();
+
+	bool dumpMessageFileOption = iParameterListInterface->DumpMessageFileOption();
+
+	if (definputoption && !deffilein)
+		throw ParameterParserError(NOARGUMENTERROR, "--definput");
+
+	if (elfinputoption && !elfin)
+		throw ParameterParserError(NOARGUMENTERROR, "--elfinput");
+
+	if(filedumpoption && !dumpOptions)
+	{
+		//throw for wrong options
+		throw InvalidArgumentError(INVALIDARGUMENTERROR,filedumpsuboptions,"--dump");
+	}
+
+	if(e32inputoption && !e32in)
+	{
+        throw ParameterParserError(NOARGUMENTERROR, "--e32input");
+	}
+	
+	iTargetType = iParameterListInterface->TargetTypeName();
+
+//	if (iTargetType == ETargetTypeNotSet) // Will get this warning in build
+//		cout << "Warning: Target Type is not specified explicitly" << endl;
+
+	if (iTargetType == EInvalidTargetType || iTargetType == ETargetTypeNotSet)
+	{
+		if (elfin)
+		{
+			if (deffilein)
+				return iUseCase = new ExportTypeRebuildTarget(iParameterListInterface);
+			else
+				return iUseCase = new ElfFileSupplied(iParameterListInterface);
+		}
+		else if (filedumpoption || e32in)
+		{
+			return iUseCase = new FileDump(iParameterListInterface);
+		}
+		else if (deffilein)
+		{
+			iTargetType = ELib;
+		}
+		else if (dumpMessageFileOption)
+			return NULL;
+		else
+			throw InvalidInvocationError(INVALIDINVOCATIONERROR); //REVISIT
+	}
+
+	switch (iTargetType)
+	{
+	case EDll:
+		if (!deffilein && elfin)
+			iUseCase = new DLLFBTarget(iParameterListInterface);
+		else if (deffilein && elfin)
+			iUseCase = new DLLRebuildTarget(iParameterListInterface);
+		else if (!elfin)
+			throw ParameterParserError(NOREQUIREDOPTIONERROR,"--elfinput");
+
+		ValidateDSOGeneration(iParameterListInterface, iTargetType);
+		ValidateE32ImageGeneration(iParameterListInterface, iTargetType);
+		return iUseCase;
+	case ELib:
+		if (deffilein)
+		{
+			ValidateDSOGeneration(iParameterListInterface, iTargetType);
+			return iUseCase = new LibraryTarget(iParameterListInterface);
+		}
+		else
+		{
+			throw ParameterParserError(NOREQUIREDOPTIONERROR,"--definput");
+		}
+		break;
+	case EExe:
+		if (elfin)
+		{
+			iUseCase = new ExeTarget(iParameterListInterface);
+			ValidateE32ImageGeneration(iParameterListInterface, iTargetType);
+		}
+		else
+		{
+			throw ParameterParserError(NOREQUIREDOPTIONERROR,"--elfinput");
+		}
+		return iUseCase;
+	case EPolyDll:
+		if (!deffilein && elfin)
+			iUseCase = new POLYDLLFBTarget(iParameterListInterface);
+		else if (deffilein && elfin)
+			iUseCase = new POLYDLLRebuildTarget(iParameterListInterface);
+		else if (!elfin)
+			throw ParameterParserError(NOREQUIREDOPTIONERROR,"--elfinput");
+
+		ValidateE32ImageGeneration(iParameterListInterface, iTargetType);
+		return iUseCase;
+	case EExexp:
+	       	if (!deffilein && elfin)
+                iUseCase = new ExexpFBTarget(iParameterListInterface);
+			else if (deffilein && elfin)
+				iUseCase = new ExExpRebuildTarget(iParameterListInterface);
+			else if (!elfin)
+				throw ParameterParserError(NOREQUIREDOPTIONERROR,"--elfinput");
+
+		ValidateDSOGeneration(iParameterListInterface,iTargetType);
+		ValidateE32ImageGeneration(iParameterListInterface, iTargetType);
+		return iUseCase;
+	case EStdExe:
+		iUseCase = new StdExeTarget(iParameterListInterface);
+		return iUseCase;
+	default:
+		throw InvalidInvocationError(INVALIDINVOCATIONERROR);
+	}
+
+	return (iUseCase=0x0);
+}
+
+void Elf2E32::ValidateDSOGeneration(ParameterListInterface *aParameterListInterface, ETargetType aTargetType)
+{
+	bool dsofileoutoption = aParameterListInterface->DSOFileOutOption();
+	bool linkasoption = aParameterListInterface->LinkAsOption();
+	char * dsofileout = aParameterListInterface->DSOOutput();
+	char * linkas = aParameterListInterface->LinkAsDLLName();
+
+	if (aTargetType != ELib)
+	{
+		bool deffileoutoption = aParameterListInterface->DefFileOutOption();
+
+		if (!deffileoutoption)
+			throw ParameterParserError(NOREQUIREDOPTIONERROR,"--defoutput");
+
+		char * deffileout = aParameterListInterface->DefOutput();
+		//Incase if the DEF file name is not passed as an input
+		if (!deffileout)
+			throw ParameterParserError(NOARGUMENTERROR,"--defoutput");
+	}
+
+	if (dsofileoutoption && !dsofileout)
+		throw ParameterParserError(NOARGUMENTERROR, "--dso");
+	else if (linkasoption && !linkas)
+		throw ParameterParserError(NOFILENAMEERROR,"--linkas");
+	else if (!dsofileoutoption && !linkasoption)
+		throw ParameterParserError(NOREQUIREDOPTIONERROR,"--dso, --linkas");
+	else if (!dsofileoutoption)
+		throw ParameterParserError(NOREQUIREDOPTIONERROR,"--dso");
+	else if (!linkasoption)
+		throw ParameterParserError(NOREQUIREDOPTIONERROR,"--linkas");
+
+}
+
+void Elf2E32::ValidateE32ImageGeneration(ParameterListInterface *aParameterListInterface, ETargetType aTargetType)
+{
+	bool e32fileoutoption = aParameterListInterface->E32OutOption();
+	char * e32fileout = aParameterListInterface->E32ImageOutput();
+
+	if (!e32fileoutoption)
+		throw ParameterParserError(NOREQUIREDOPTIONERROR,"--output");
+	else if (!e32fileout)
+		throw ParameterParserError(NOARGUMENTERROR,"--output");
+
+	UINT uid1option = aParameterListInterface->Uid1Option();
+	UINT uid1val = aParameterListInterface->Uid1();
+
+	if (!uid1option) // REVISIT
+		throw ParameterParserError(NOREQUIREDOPTIONERROR,"--uid1");
+	else if (uid1option && !uid1val)
+		throw ParameterParserError(NOARGUMENTERROR,"--uid1");
+	else if (aTargetType == EDll && uid1val != 0x10000079)
+		cout << "UID1 should be set to 0x10000079 for DLL Generation" << endl;
+	else if (aTargetType == EExe && uid1val != 0x1000007A)
+		cout << "UID1 should be set to 0x1000007A for EXE Generation" << endl;
+
+}
+
+/**
+This function:
+ 1. Calls the ParameterAnalyser() which parses the command line options and extracts the inputs. 
+ 2. Calls the SelectUseCase() to select the appropriate use case based on the input values.
+ 3. Calls the Execute() of the selected use case.
+@internalComponent
+@released
+
+@return EXIT_SUCCESS if the generation of the target is successful, else EXIT_FAILURE
+
+*/
+int Elf2E32::Execute()
+{
+	int result = EXIT_SUCCESS;
+	UseCaseBase * usecase=0;
+	bool dumpMessageFileOption;
+	char * dumpMessageFile;
+
+	try
+	{
+		iParameterListInterface->ParameterAnalyser();
+
+		dumpMessageFileOption = iParameterListInterface->DumpMessageFileOption();
+		dumpMessageFile = iParameterListInterface->DumpMessageFile();
+
+	 	if(dumpMessageFileOption)
+		{
+			if (dumpMessageFile)
+			{
+				//create message file
+				MessageHandler::GetInstance()->CreateMessageFile(dumpMessageFile);
+				//return result;
+			}
+			else
+			//dumpmessage file name is not provided as input
+			throw ParameterParserError(NOARGUMENTERROR, "--dumpmessagefile");
+		}
+	
+		usecase = SelectUseCase();
+		if (usecase)
+		{
+			result = usecase->Execute();
+		}
+		else if (dumpMessageFileOption)
+		{
+			return result;
+		}
+		else
+		{
+			result = EXIT_FAILURE;
+		}
+	}
+	catch(ErrorHandler& error) 
+	{ 
+		result = EXIT_FAILURE;
+		error.Report();
+	} 
+	catch(...) // If there are any other unhandled exception,they are handled here.
+	{
+		result = EXIT_FAILURE;
+		MessageHandler::GetInstance()->ReportMessage(ERROR, POSTLINKERERROR);
+	} 
+	delete usecase;
+	return result;
+}
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/elf2e32.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,62 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation of the Header file for Class Elf2E32
+// @internalComponent
+// @released
+// 
+//
+
+#ifndef ELF2E32_H
+#define ELF2E32_H
+
+#include "pl_common.h"
+#include "parametermanager.h"
+
+class UseCaseBase;
+class ParameterListInterface;
+/**
+This class gets the single instance of the ParameterManager.
+
+@internalComponent
+@released
+*/
+class Elf2E32
+{
+
+public:
+	Elf2E32();
+	Elf2E32(int argc, char** argv);
+	virtual ~Elf2E32();
+	UseCaseBase * SelectUseCase();
+	int Execute();
+	static void ValidateDSOGeneration(ParameterListInterface *aParameterListInterface, ETargetType aTargetType);
+	static void ValidateE32ImageGeneration(ParameterListInterface *aParameterListInterface, ETargetType aTargetType);
+	static ParameterListInterface * GetInstance(int aArgc, char ** aArgv);
+
+private:
+
+	ETargetType iTargetType;
+
+	/** Pointer to the ParameterListInterface which is the abstract base class */
+	ParameterListInterface * iParameterListInterface;
+
+	/** Pointer to the UseCaseBase and says whether the usecase is CreateLibrary or CreateDLL or CreateEXE*/
+	UseCaseBase * iUseCase;
+
+	/** Static Pointer to the ParameterListInterface */
+	static ParameterListInterface * iInstance;
+};
+
+
+#endif // ELF2E32_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/elffilesupplied.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,655 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#include "elffilesupplied.h"
+#include "pl_elfexecutable.h"
+#include "errorhandler.h"
+#include "pl_dso_handler.h"
+#include "deffile.h"
+#include "pl_elfexports.h"
+#include "pl_dllsymbol.h"
+#include "elf2e32.h"
+#include "staticlibsymbols.h"
+
+#include <algorithm>
+#include <iostream>
+#include<hash_set>
+
+using namespace std;
+
+/**
+Constructor for class ElfFileSupplied to initialize members and create instance of class DSOHandler
+@param aParameterListInterface - Instance of class ParameterListInterface
+@internalComponent
+@released
+*/
+ElfFileSupplied::ElfFileSupplied(ParameterListInterface* aParameterListInterface) : UseCaseBase(aParameterListInterface) ,
+	iNumAbsentExports(-1),iExportBitMap(NULL),iE32ImageFile(NULL), iElfExecutable(NULL),  \
+	iExportDescSize(0), iExportDescType(0)
+{
+	iElfIfc = new DSOHandler(aParameterListInterface);
+}
+
+/**
+Destructor for class ElfFileSupplied to release allocated memory
+@internalComponent
+@released
+*/
+ElfFileSupplied::~ElfFileSupplied()
+{
+	iSymList.clear();
+	delete iElfIfc;
+	delete [] iExportBitMap;
+}
+
+/**
+Execute Function for the Elf File Supplied use case
+@return 0 on success
+@internalComponent
+@released
+*/
+int ElfFileSupplied::Execute() 
+{
+	ReadElfFile();
+	iElfIfc->ProcessElfFile();
+	try
+	{
+		ProcessExports();
+	}
+	catch(SymbolMissingFromElfError& aSme)
+	{
+		/* Only DEF file would be generated if symbols found in
+		 * DEF file are missing from the ELF file.
+		 */
+		WriteDefFile();
+		throw aSme;
+	}
+	GenerateOutput();
+	return 0;
+}
+
+/**
+Function to read ELF File
+@internalComponent
+@released
+*/
+void ElfFileSupplied::ReadElfFile() 
+{
+	char * aElfFileName = UseCaseBase::InputElfFileName();
+	
+	iElfIfc->ReadElfFile(aElfFileName);
+	iElfExecutable = iElfIfc->ElfExecutableP();
+}
+
+/**
+Function to process exports
+@internalComponent
+@released
+*/
+void ElfFileSupplied::ProcessExports() 
+{
+	ValidateExports(NULL);
+	CreateExports();
+}
+
+/**
+Function to write DEF File
+@internalComponent
+@released
+*/
+void ElfFileSupplied::WriteDefFile() 
+{
+	char * aDEFFileName = UseCaseBase::DefOutput();
+	DefFile deffile;
+
+	deffile.WriteDefFile(aDEFFileName, &iSymList);
+}
+
+/**
+Function to create exports
+@internalComponent
+@released
+*/
+void ElfFileSupplied::CreateExports()
+{
+	if (iElfExecutable->iExports || GetNamedSymLookup())
+	{
+		CreateExportTable();	
+		CreateExportBitMap();
+	}
+}
+
+/**
+Function to validate exports
+@param aDefExports - List of export symbols from Def file and/or sysdef.
+@internalComponent
+@released
+*/
+void ElfFileSupplied::ValidateExports(SymbolList *aDefExports)
+{
+	/**
+	 * Symbols from DEF file (DEF_Symbols) => Valid_DEF + Absent
+	 * Symbols from ELF file (ELF_Symbols) => Existing  + NEW
+	 * 1. if the set {Valid_DEF - ELF_Symbols} is non-empty then, symbols are missing
+	 *			from Elf and it is an error if the mode is UNFROZEN
+	 * 2. if the intersection set {Absent,ELF_Symbols} is non-empty, absent symbols
+	 *			are exported from Elf..warn for this
+	 * 3. if the set {ELF_Symbols - Valid_DEF} is non-empty, these are the NEW symbols
+	 * 4. if there are symbols marked absent in DEF file but exported in ELF,
+	 *		add them into the new list retaining the ordinal number as of the
+	 *		absent symbol(using PtrELFExportNameCompareUpdateOrdinal).
+	 **/
+
+	PLUINT32 aMaxOrdinal = 0;
+	int len = strlen("_ZTI");
+	
+	typedef SymbolList::iterator Iterator;
+
+	Iterator aPos, aEnd;
+
+	//SymbolList *aDefExports, aDefValidExports, aDefAbsentExports, aElfExports;
+	SymbolList aDefValidExports, aDefAbsentExports, aElfExports;
+
+	//aDefExports = iDefIfc->GetSymbolEntryList();
+	if (aDefExports)
+		{
+		aPos = aDefExports->begin();
+		aEnd = aDefExports->end();
+
+		while(aPos != aEnd)
+			{
+				if( (*aPos)->Absent() ){
+					aDefAbsentExports.insert(aDefAbsentExports.end(), *aPos);
+				}
+				else {
+					aDefValidExports.insert(aDefValidExports.end(), *aPos);
+				}
+											
+				if( aMaxOrdinal < (*aPos)->OrdNum() ){
+					aMaxOrdinal = (*aPos)->OrdNum();
+				}
+				aPos++;
+			}
+		}
+
+	iSymList = aDefValidExports;
+
+	if (iElfIfc->ElfExecutableP()->iExports)
+		iElfIfc->GetElfExportSymbolList( aElfExports );
+	else if (!aDefExports)
+		return;
+	
+	// REVISIT - return back if elfexports and defexports is NULL 
+
+	aDefValidExports.sort(ElfExports::PtrELFExportNameCompare());
+	aElfExports.sort(ElfExports::PtrELFExportNameCompare());
+
+	aDefAbsentExports.sort(ElfExports::PtrELFExportNameCompare());
+
+	//Check for Case 1... {Valid_DEF - ELF_Symbols}
+	{
+		SymbolList aResult(aDefValidExports.size());
+		Iterator aResultPos = aResult.begin();
+
+		Iterator aMissingListEnd = set_difference(aDefValidExports.begin(), aDefValidExports.end(), \
+			aElfExports.begin(), aElfExports.end(), aResultPos, ElfExports::PtrELFExportNameCompareUpdateAttributes());
+
+		std::list<String> aMissingSymNameList;
+		while (aResultPos != aMissingListEnd) {
+			// {Valid_DEF - ELF_Symbols} is non empty
+			(*aResultPos)->SetSymbolStatus(Missing); // Set the symbol Status as Missing
+			aMissingSymNameList.push_back((*aResultPos)->SymbolName());
+			aResultPos++;
+			//throw error
+		}
+		if( aMissingSymNameList.size() ) {
+			if (!Unfrozen())
+				throw SymbolMissingFromElfError(SYMBOLMISSINGFROMELFERROR, aMissingSymNameList, UseCaseBase::InputElfFileName());
+			else
+				cout << "Elf2e32: Warning: " << aMissingSymNameList.size() << " Frozen Export(s) missing from the ELF file" << endl;
+		}
+	}
+
+	//Check for Case 2... intersection set {Absent,ELF_Symbols}
+	{
+		if(aDefAbsentExports.size())
+		{
+			SymbolList aResult(aDefAbsentExports.size());
+			Iterator aResultPos = aResult.begin();
+
+			Iterator aAbsentListEnd = set_intersection(aDefAbsentExports.begin(), aDefAbsentExports.end(), \
+				aElfExports.begin(), aElfExports.end(), aResultPos, ElfExports::PtrELFExportNameCompareUpdateAttributes());
+			
+			while( aResultPos != aAbsentListEnd ) 
+			{
+				// intersection set {Absent,ELF_Symbols} is non-empty
+
+				iSymList.insert(iSymList.end(), *aResultPos);
+				cout << "Elf2e32: Warning: Symbol " << (*aResultPos)->SymbolName() << " absent in the DEF file, but present in the ELF file" << endl;
+				aResultPos++;
+			}
+		}
+	}
+
+	//Do 3
+	{
+		SymbolList aResult(aElfExports.size());
+		Iterator aResultPos = aResult.begin();
+
+		Iterator aNewListEnd = set_difference(aElfExports.begin(), aElfExports.end(), \
+			aDefValidExports.begin(), aDefValidExports.end(), aResultPos, ElfExports::PtrELFExportNameCompare());
+
+		bool aIgnoreNonCallable = GetIgnoreNonCallable();
+		bool aIsCustomDll = IsCustomDllTarget();
+		bool aExcludeUnwantedExports = ExcludeUnwantedExports();
+
+		while( aResultPos != aNewListEnd ) 
+		{
+			
+			if( !(*aResultPos)->Absent() ) 
+			{
+				/* For a custom dll and for option "--excludeunwantedexports", the new exports should be filtered,
+				 * so that only the exports from the frozen DEF file are considered.
+				 */
+				if ((aIsCustomDll || aExcludeUnwantedExports) && UnWantedSymbolp((*aResultPos)->SymbolName()))
+				{
+					iElfExecutable->iExports->ExportsFilteredP(true);
+					iElfExecutable->iExports->iFilteredExports.insert(iElfExecutable->iExports->iFilteredExports.end(),(DllSymbol *)(*aResultPos));
+					aResultPos++;
+					continue;
+				}
+				if (aIgnoreNonCallable)
+				{
+					// Ignore the non callable exports
+					if ((!strncmp("_ZTI", (*aResultPos)->SymbolName(), len)) ||
+					    (!strncmp("_ZTV", (*aResultPos)->SymbolName(), len)))
+					{
+						iElfExecutable->iExports->ExportsFilteredP(true);
+						iElfExecutable->iExports->iFilteredExports.insert(iElfExecutable->iExports->iFilteredExports.end(),(DllSymbol *)(*aResultPos));
+						aResultPos++;
+						continue;
+					}
+				}
+				(*aResultPos)->SetOrdinal( ++aMaxOrdinal );
+				(*aResultPos)->SetSymbolStatus(New); // Set the symbol Status as NEW
+				iSymList.insert(iSymList.end(), *aResultPos);			
+				if(WarnForNewExports())
+					cout << "Elf2e32: Warning: New Symbol " << (*aResultPos)->SymbolName() << " found, export(s) not yet Frozen" << endl;
+			}
+			aResultPos++;
+		}
+	}
+
+	//Do 4
+	{
+		if(aDefAbsentExports.size())
+		{
+			SymbolList aResult(aDefAbsentExports.size());
+			Iterator aResultPos = aResult.begin();
+
+			Iterator aAbsentListEnd = set_difference(aDefAbsentExports.begin(), aDefAbsentExports.end(), \
+				aElfExports.begin(), aElfExports.end(), aResultPos, ElfExports::PtrELFExportNameCompareUpdateAttributes());
+			
+			DllSymbol *aSymbol;
+			bool aAbsent = true;
+			while( aResultPos != aAbsentListEnd  ) {
+				//aElfExports.insert(aElfExports.end(), *aResultPos);
+				aSymbol = new DllSymbol( *aResultPos, SymbolTypeCode, aAbsent);
+				iElfExecutable->iExports->Add(iElfExecutable->iSOName, aSymbol);
+				//aElfExports.insert(aElfExports.end(), (Symbol*)aSymbol);
+				iSymList.insert(iSymList.end(), (Symbol*)aSymbol);
+				aResultPos++;
+			}
+			aElfExports.sort(ElfExports::PtrELFExportOrdinalCompare());
+			iSymList.sort(ElfExports::PtrELFExportOrdinalCompare());
+		}
+	}
+
+	if(iElfExecutable->iExports && iElfExecutable->iExports->ExportsFilteredP() ) {
+		iElfExecutable->iExports->FilterExports();
+	}
+
+	aElfExports.clear();
+	aDefAbsentExports.clear();
+	aDefValidExports.clear();
+
+} 
+
+/**
+Function to generate output which is E32 Image file, DEF File and DSO file, if
+exports are available.
+@internalComponent
+@released
+*/
+void ElfFileSupplied::GenerateOutput() 
+{
+	if (iElfExecutable->iExports)
+	{
+		Elf2E32::ValidateDSOGeneration(iParameterListInterface, ETargetTypeNotSet);
+		WriteDefFile();
+		WriteDSOFile();
+	}
+	Elf2E32::ValidateE32ImageGeneration(iParameterListInterface, ETargetTypeNotSet);
+	WriteE32();
+}
+
+/**
+Function to write DSO file.
+@internalComponent
+@released
+*/
+void ElfFileSupplied::WriteDSOFile()
+{
+	char * aLinkAs = UseCaseBase::LinkAsDLLName();
+	char * aDSOName = UseCaseBase::DSOOutput();
+	char * aDSOFileName = UseCaseBase::FileName(aDSOName);
+
+	iElfIfc->WriteElfFile( aDSOName, aDSOFileName, aLinkAs, iSymList );
+}
+
+/**
+Function to write E32 Image file.
+@internalComponent
+@released
+*/
+void ElfFileSupplied::WriteE32()
+{
+
+	const char * aE32FileName = OutputE32FileName();
+
+	iE32ImageFile = new E32ImageFile(aE32FileName, iElfExecutable, this);
+
+	try
+	{
+		iE32ImageFile->GenerateE32Image();
+
+		if (iE32ImageFile->WriteImage(aE32FileName))
+		{
+			//GetELF2E32()->AddFileCleanup(aE32FileName);
+			delete iE32ImageFile;
+		}
+	}
+	catch (...)
+	{
+		delete iE32ImageFile;
+		throw;
+	}
+}
+
+/**
+Function to check image is Dll or not.
+@return True if image is Dll, otherwise false.
+@internalComponent
+@released
+*/
+bool ElfFileSupplied::ImageIsDll() 
+{ 
+	return (iElfExecutable->LookupStaticSymbol("_E32Dll") != NULL);
+}
+
+/**
+Function to allocate E32 Image header.
+@return pointer to E32ImageHeaderV
+@internalComponent
+@released
+*/
+E32ImageHeaderV * ElfFileSupplied::AllocateE32ImageHeader()
+{
+	if (iNumAbsentExports == 0)
+	{
+		return new E32ImageHeaderV;
+	}
+
+	int nexp = GetNumExports();
+	size_t memsz = (nexp + 7) >> 3;	// size of complete bitmap
+	size_t mbs = (memsz + 7) >> 3;	// size of meta-bitmap
+	size_t nbytes = 0;
+	PLUINT32 i;
+	for (i=0; i<memsz; ++i)
+		if (iExportBitMap[i] != 0xff)
+			++nbytes;				// number of groups of 8
+	PLUINT8 edt = KImageHdr_ExpD_FullBitmap;
+	PLUINT32 extra_space = memsz - 1;
+	if (mbs + nbytes < memsz)
+	{
+		edt = KImageHdr_ExpD_SparseBitmap8;
+		extra_space = mbs + nbytes - 1;
+	}
+	extra_space = (extra_space + sizeof(PLUINT32) - 1) &~ (sizeof(PLUINT32) - 1);
+	size_t aExtendedHeaderSize = sizeof(E32ImageHeaderV) + extra_space;
+	iE32ImageFile->SetExtendedE32ImageHeaderSize(aExtendedHeaderSize);
+	E32ImageHeaderV * aHdr = (E32ImageHeaderV *)new PLUINT8[aExtendedHeaderSize];
+
+	iExportDescType = edt;
+	if (edt == KImageHdr_ExpD_FullBitmap)
+	{
+		iExportDescSize = (PLUINT16)memsz;
+		memcpy(aHdr->iExportDesc, iExportBitMap, memsz);
+	}
+	else
+	{
+		iExportDescSize = (PLUINT16) (mbs + nbytes);
+		memset(aHdr->iExportDesc, 0, extra_space + 1);
+		PLUINT8* mptr = aHdr->iExportDesc;
+		PLUINT8* gptr = mptr + mbs;
+		for (i=0; i<memsz; ++i)
+		{
+			if (iExportBitMap[i] != 0xff)
+			{
+				mptr[i>>3] |= (1u << (i&7));
+				*gptr++ = iExportBitMap[i];
+			}
+		}
+	}
+	return aHdr;
+}
+
+/**
+Function to create export table
+@internalComponent
+@released
+*/
+void ElfFileSupplied::CreateExportTable()
+{
+	ElfExports::ExportList aList;
+	
+	if(iElfExecutable->iExports)
+		aList = iElfExecutable->GetExportsInOrdinalOrder();
+
+	iExportTable.CreateExportTable(iElfExecutable, aList);
+}
+
+/**
+Function to create export bitmap
+@internalComponent
+@released
+*/
+void ElfFileSupplied::CreateExportBitMap()
+{
+	int nexp = GetNumExports();
+	size_t memsz = (nexp + 7) >> 3;
+	iExportBitMap = new PLUINT8[memsz];
+	memset(iExportBitMap, 0xff, memsz);
+	// skip header
+	PLUINT32 * exports = ((PLUINT32 *)GetExportTable()) + 1;
+	PLUINT32 absentVal = iElfExecutable->EntryPointOffset() + iElfExecutable->GetROBase();
+	iNumAbsentExports = 0;
+	for (int i=0; i<nexp; ++i)
+	{
+		if (exports[i] == absentVal)
+		{
+			iExportBitMap[i>>3] &= ~(1u << (i & 7));
+			++iNumAbsentExports;
+		}
+	}
+}
+
+/**
+Function to get number of exports
+@return Number of exports in export table
+@internalComponent
+@released
+*/
+size_t ElfFileSupplied::GetNumExports()
+{
+	return iExportTable.GetNumExports();
+}
+
+/**
+Function to check export table is required.
+@return True for E32 image if allocation requires space for export table.
+@internalComponent
+@released
+*/
+bool ElfFileSupplied::AllocateExportTableP()
+{
+	return iExportTable.AllocateP();
+}
+
+/**
+Function to get export table
+@return Pointer to export table
+@internalComponent
+@released
+*/
+char * ElfFileSupplied::GetExportTable()
+{
+	return (char *)iExportTable.GetExportTable();
+}
+
+/**
+Function to get export table size
+@return size of export table
+@internalComponent
+@released
+*/
+size_t ElfFileSupplied::GetExportTableSize()
+{
+	return iExportTable.GetExportTableSize();
+}
+
+/**
+Function to get export table Virtual address
+@return the export table VA
+@internalComponent
+@released
+*/
+size_t ElfFileSupplied::GetExportTableAddress()
+{
+	return iExportTable.iExportTableAddress;
+}
+
+/**
+Function to get export offset
+@return size of export offset
+@internalComponent
+@released
+*/
+size_t ElfFileSupplied::GetExportOffset()
+{
+	return iE32ImageFile->GetExportOffset();
+}
+
+/**
+Function to get symbol type based on the encoded names.
+@return CODE or DATA
+@internalComponent
+@released
+*/
+SymbolType ElfFileSupplied::SymbolTypeF(char * aName)
+{
+	size_t prefixLength = strlen("_ZTV");
+	bool classImpedimenta = false;
+	classImpedimenta = !strncmp(aName, "_ZTV", prefixLength) ||
+					   !strncmp(aName, "_ZTI", prefixLength) ||
+					   !strncmp(aName, "_ZTS", prefixLength) ;
+
+	return classImpedimenta? SymbolTypeData : SymbolTypeCode;
+}
+
+/**
+Function to get export description size
+@return export description size
+@internalComponent
+@released
+*/
+PLUINT16 ElfFileSupplied::GetExportDescSize()
+{
+	return iExportDescSize;
+}
+
+/**
+Function to get export description type
+@return export description type
+@internalComponent
+@released
+*/
+PLUINT8 ElfFileSupplied::GetExportDescType()
+{
+	return iExportDescType;
+}
+
+/**
+Function to indicate if the new exports are to be reported as warnings.
+@return export description type
+@internalComponent
+@released
+*/
+bool ElfFileSupplied::WarnForNewExports()
+{
+	return true;
+}
+
+/**
+To check if the two strings are equal
+@internalComponent
+@released
+*/
+struct eqstr
+{
+  bool operator()(const char* s1, const char* s2) const
+  {
+    return strcmp(s1, s2) == 0;
+  }
+};
+
+/**
+Function to provide a predicate which checks whether a symbol name is unwanted:
+@return 1 if new symbols are present in the static library list else return 0
+@param aSymbol symbols to be checked if part of static lib
+@internalComponent
+@released
+*/ 
+int ElfFileSupplied::UnWantedSymbolp(const char * aSymbol)
+{
+  static hash_set<const char*, hash<const char*>, eqstr> aSymbolSet;
+  int symbollistsize=sizeof(Unwantedruntimesymbols)/sizeof(Unwantedruntimesymbols[0]);
+  static bool FLAG=false;
+  while(!FLAG)
+  {
+	for(int i=0;i<symbollistsize;i++)
+	{
+		aSymbolSet.insert(Unwantedruntimesymbols[i]);
+	}
+	FLAG=true;
+  }
+  hash_set<const char*, hash<const char*>, eqstr>::const_iterator it
+    = aSymbolSet.find(aSymbol);
+  if(it != aSymbolSet.end())
+	return 1;
+  else 
+	return 0;
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/elffilesupplied.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,91 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// ElfFileSupplied class for elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+#ifndef __ELFFILESUPPLIED_H_
+#define __ELFFILESUPPLIED_H_
+
+#include "usecasebase.h"
+#include "e32exporttable.h"
+#include <list>
+
+class Symbol;
+class DllSymbol;
+class DSOHandler;
+class ParameterManager;
+
+typedef std::list<Symbol*> SymbolList;
+
+/**
+This class is derived from the base class UseCaseBase and handles case for elf file supplied.
+
+@internalComponent
+@released
+*/
+class ElfFileSupplied : public UseCaseBase
+{
+
+public:
+	ElfFileSupplied(ParameterListInterface* aParameterListInterface);
+	~ElfFileSupplied();
+	int Execute();
+
+	void ReadElfFile();
+	virtual void ProcessExports();
+	virtual void GenerateOutput();
+	void ValidateExports(SymbolList* aDefExports);
+	void CreateExports();
+	void WriteDefFile();
+	void WriteDSOFile();
+	void WriteE32();
+	virtual bool ImageIsDll();
+	virtual bool WarnForNewExports();
+	SymbolType SymbolTypeF(char * aName);
+	E32ImageHeaderV * AllocateE32ImageHeader();
+
+	virtual void CreateExportTable();
+	void CreateExportBitMap();
+	virtual size_t GetNumExports();
+	virtual size_t GetExportOffset();
+	virtual bool AllocateExportTableP();
+	virtual char * GetExportTable();
+	virtual size_t GetExportTableSize();
+
+	PLUINT16 GetExportDescSize();
+	PLUINT8 GetExportDescType();
+	size_t GetExportTableAddress();
+	//Method to check whether a symbol name is unwanted
+	int UnWantedSymbolp(const char * aSymbol);
+
+protected:
+	SymbolList iSymList;
+	DSOHandler	*iElfIfc;
+
+	E32ExportTable iExportTable;
+	int iNumAbsentExports;
+	PLUINT8 * iExportBitMap;
+
+	E32ImageFile * iE32ImageFile;
+	ElfExecutable *iElfExecutable;
+	PLUINT16 iExportDescSize;
+	PLUINT8 iExportDescType;
+};
+
+
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/errorhandler.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,936 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Error Handler Operations for elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+#ifdef _MSC_VER
+	#pragma warning(disable: 4514) // unreferenced inline function has been removed
+	#pragma warning(disable: 4702) // unreachable code
+	#pragma warning(disable: 4710) // function not inlined
+#endif
+
+#include "errorhandler.h"
+#include "messagehandler.h"
+#include <iostream>
+#include <stdio.h>
+using std::cerr;
+using std::endl;
+
+char *errMssgPrefix="elf2e32 : Error: E";
+char *colonSpace=": ";
+
+/**
+ErrorHandler constructor for doing common thing required for derived class functions.
+@param aMessageIndex - Message Index
+@internalComponent
+@released
+*/
+ErrorHandler::ErrorHandler(int aMessageIndex)
+{
+	char mssgNo[MAXMSSGNOLENGTH];
+	int mssgIndex;
+	
+	iMessageIndex=aMessageIndex;
+	iMessage=errMssgPrefix;
+	mssgIndex=BASEMSSGNO+iMessageIndex;
+	sprintf(mssgNo,"%d",mssgIndex);
+	iMessage+=mssgNo;
+	iMessage+=colonSpace;
+};
+
+/**
+ErrorHandler destructor.
+@internalComponent
+@released
+*/
+ErrorHandler::~ErrorHandler()
+{
+	MessageHandler::CleanUp();
+}
+
+/**
+FileError constructor for initializing message index and argument name.
+@param aMessageIndex - Message Index
+@param aName - File name
+@internalComponent
+@released
+*/
+FileError:: FileError(int aMessageIndex, char * aName) : ErrorHandler(aMessageIndex), iName(aName)
+{
+}
+
+/**
+FileError destructor.
+@internalComponent
+@released
+*/
+FileError:: ~FileError()
+{
+}
+
+/**
+Function to report File Errors.
+@internalComponent
+@released
+*/
+void FileError::Report()
+{
+	char *tempMssg;
+	char *errMessage;
+
+	errMessage=MessageHandler::GetInstance()->GetMessageString(iMessageIndex);
+	if(errMessage)
+	{
+		tempMssg = new char[strlen(errMessage)+strlen(iName.c_str())];
+		sprintf(tempMssg,errMessage,iName.c_str());
+		iMessage+=tempMssg;
+		MessageHandler::GetInstance()->Output(iMessage.c_str());
+		delete[] tempMssg;
+	}
+}
+
+/**
+ELFFormatError constructor for initializing message index and argument name.
+@param aMessageIndex - Message Index
+@param aName - ELF File name
+@internalComponent
+@released
+*/
+ELFFormatError::ELFFormatError(int aMessageIndex, char * aName) : ErrorHandler(aMessageIndex), iName(aName)
+{
+
+}
+
+/**
+ELFFormatError destructor.
+@internalComponent
+@released
+*/
+ELFFormatError::~ELFFormatError()
+{
+
+}
+
+/**
+Function to report ELF Format Errors.
+@internalComponent
+@released
+*/
+void ELFFormatError::Report()
+{
+	char *tempMssg;
+	char *errMessage;
+	
+	errMessage=MessageHandler::GetInstance()->GetMessageString(iMessageIndex);
+	if(errMessage)
+	{
+		tempMssg = new char[strlen(errMessage)+strlen(iName.c_str())];
+		sprintf(tempMssg,errMessage,iName.c_str());
+		iMessage+=tempMssg;
+		MessageHandler::GetInstance()->Output(iMessage.c_str());
+		delete tempMssg;
+	}
+}
+
+/**
+DEFFileError constructor for initializing message index, argument name and line number and token.
+@param aMessageIndex - Message Index
+@param aName - DEF File name
+@param aLineNo - DEF File line number
+@param aToken - Token in export entry
+@internalComponent
+@released
+*/
+DEFFileError::DEFFileError(int aMessageIndex, char * aName, int aLineNo,char * aToken) : ErrorHandler(aMessageIndex), iName(aName), iLineNo(aLineNo)
+{
+	iToken=aToken;
+	if(iToken[iToken.size()-1]=='\r')
+		iToken[iToken.size()-1]='\0';
+}
+
+/**
+DEFFileError destructor.
+@internalComponent
+@released
+*/
+DEFFileError::~DEFFileError()
+{
+}
+
+/**
+Function to report DEF File Errors.
+@internalComponent
+@released
+*/
+void DEFFileError::Report()
+{
+	char *tempMssg;
+	char *errMessage;
+	
+	errMessage=MessageHandler::GetInstance()->GetMessageString(iMessageIndex);
+	if(errMessage)
+	{
+		tempMssg = new char[strlen(errMessage)+5+strlen(iName.c_str())+strlen(iToken.c_str())];
+		sprintf(tempMssg,errMessage,iName.c_str(),iLineNo,iToken.c_str());
+		iMessage+=tempMssg;
+		MessageHandler::GetInstance()->Output(iMessage.c_str());
+		delete tempMssg;
+	}
+}
+
+/**
+ParameterParserError constructor for initializing message index and argument name.
+@param aMessageIndex - Message Index
+@Param aName - Argument name
+@internalComponent
+@released
+*/
+ParameterParserError::ParameterParserError(int aMessageIndex, char * aName) : ErrorHandler(aMessageIndex), iName(aName)
+{
+}
+
+/**
+ParameterParserError destructor.
+@internalComponent
+@released
+*/
+ParameterParserError::~ParameterParserError()
+{
+}
+
+/**
+Function to report Parameter Parser Error.
+@internalComponent
+@released
+*/
+void ParameterParserError::Report()
+{
+	char *tempMssg;
+	char *errMessage;
+	errMessage=MessageHandler::GetInstance()->GetMessageString(iMessageIndex);
+
+	if(errMessage)
+	{
+		tempMssg = new char[strlen(errMessage)+strlen(iName.c_str())];
+		sprintf(tempMssg,errMessage,iName.c_str());
+		iMessage+=tempMssg;
+		MessageHandler::GetInstance()->Output(iMessage.c_str());
+		delete tempMssg;
+	}
+}
+
+/**
+InvalidArgumentError constructor for initializing message index, argument value and option.
+@param aMessageIndex - Message Index
+@param aValue - Argument value
+@param aOption - Argument option
+@internalComponent
+@released
+*/
+InvalidArgumentError::InvalidArgumentError(int aMessageIndex, const char * aValue, char * aOption) : ErrorHandler(aMessageIndex), iValue(aValue), iOption(aOption)
+{
+}
+
+/**
+InvalidArgumentError destructor.
+@internalComponent
+@released
+*/
+InvalidArgumentError::~InvalidArgumentError()
+{
+}
+
+/**
+Function to report Invalid Argument Error.
+@internalComponent
+@released
+*/
+void InvalidArgumentError::Report()
+{
+	char *tempMssg;
+	char *errMessage;
+	errMessage=MessageHandler::GetInstance()->GetMessageString(iMessageIndex);
+
+	if(errMessage)
+	{
+		tempMssg = new char[strlen(errMessage)+strlen(iValue.c_str())+strlen(iOption.c_str())];
+		sprintf(tempMssg,errMessage,iValue.c_str(),iOption.c_str());
+		iMessage+=tempMssg;
+		MessageHandler::GetInstance()->Output(iMessage.c_str());
+		delete tempMssg;
+	}
+}
+
+/**
+E32ImageCompressionError constructor for initializing message index.
+@param aMessageIndex - Message Index
+@internalComponent
+@released
+*/
+E32ImageCompressionError::E32ImageCompressionError(int aMessageIndex) : ErrorHandler(aMessageIndex)
+{
+}
+
+/**
+E32ImageCompressionError destructor.
+@internalComponent
+@released
+*/
+E32ImageCompressionError::~E32ImageCompressionError()
+{
+}
+
+/**
+Function to report E32 Image Compression Error.
+@internalComponent
+@released
+*/
+void E32ImageCompressionError::Report()
+{
+	char *errMessage;
+
+	errMessage=MessageHandler::GetInstance()->GetMessageString(iMessageIndex);
+	if(errMessage)
+	{
+		iMessage+=errMessage;
+		MessageHandler::GetInstance()->Output(iMessage.c_str());
+	}
+}
+
+/**
+CapabilityError constructor for initializing message index.
+@param aMessageIndex - Message Index
+@internalComponent
+@released
+*/
+CapabilityError::CapabilityError(int aMessageIndex) : ErrorHandler(aMessageIndex)
+{
+}
+
+/**
+CapabilityError destructor.
+@internalComponent
+@released
+*/
+CapabilityError::~CapabilityError()
+{
+}
+
+/**
+Function to report Capability Error.
+@internalComponent
+@released
+*/
+void CapabilityError::Report()
+{
+	char *errMessage;
+
+	errMessage=MessageHandler::GetInstance()->GetMessageString(iMessageIndex);
+	if(errMessage)
+	{
+		iMessage+=errMessage;
+		MessageHandler::GetInstance()->Output(iMessage.c_str());
+	}
+}
+
+/**
+UnrecognisedCapabilityError constructor for initializing message index and argument name.
+@param aMessageIndex - Message Index
+@param aName - Capability
+@internalComponent
+@released
+*/
+UnrecognisedCapabilityError::UnrecognisedCapabilityError(int aMessageIndex, char * aName) : CapabilityError(aMessageIndex), iName(aName)
+{
+}
+
+/**
+UnrecognisedCapabilityError destructor.
+@internalComponent
+@released
+*/
+UnrecognisedCapabilityError::~UnrecognisedCapabilityError()
+{
+}
+
+/**
+Function to report Unrecognised Capability Error.
+@internalComponent
+@released
+*/
+void UnrecognisedCapabilityError::Report()
+{
+	char *tempMssg;
+	char *errMessage;
+
+	errMessage=MessageHandler::GetInstance()->GetMessageString(iMessageIndex);
+	if(errMessage)
+	{
+		tempMssg = new char[strlen(errMessage)+strlen(iName.c_str())];
+		sprintf(tempMssg,errMessage,iName.c_str());
+		iMessage+=tempMssg;
+		MessageHandler::GetInstance()->Output(iMessage.c_str());
+		delete tempMssg;
+	}
+}
+
+/**
+ELFFileError constructor for initializing message index and argument name.
+@param aMessageIndex - Message Index
+@param aName - ELF File name
+@internalComponent
+@released
+*/
+ELFFileError::ELFFileError(int aMessageIndex, const char * aName) : ErrorHandler(aMessageIndex), iName(aName)
+{
+}
+
+/**
+ELFFileError destructor.
+@internalComponent
+@released
+*/
+ELFFileError::~ELFFileError()
+{
+}
+
+/**
+Function to report ELF File Error.
+@internalComponent
+@released
+*/
+void ELFFileError::Report()
+{
+	char *tempMssg;
+	char *errMessage;
+
+	errMessage=MessageHandler::GetInstance()->GetMessageString(iMessageIndex);
+	if(errMessage)
+	{
+		tempMssg = new char[strlen(errMessage)+strlen(iName.c_str())];
+		sprintf(tempMssg,errMessage,iName.c_str());
+		iMessage+=tempMssg;
+		MessageHandler::GetInstance()->Output(iMessage.c_str());
+		delete tempMssg;
+	}
+}
+
+/**
+UndefinedSymbolError constructor for initializing message index, argument name and symbol name.
+@param aMessageIndex - Message Index
+@param aName - File Name
+@param aSymbolName - Symbol Name
+@internalComponent
+@released
+*/
+UndefinedSymbolError::UndefinedSymbolError(int aMessageIndex, char * aName, char *aSymbolName) : ELFFileError(aMessageIndex,aName), iSymbolName(aSymbolName)
+{
+}
+
+/**
+UndefinedSymbolError destructor.
+@internalComponent
+@released
+*/
+UndefinedSymbolError::~UndefinedSymbolError()
+{
+}
+
+/**
+Function to report Undefined Symbol Error.
+@internalComponent
+@released
+*/
+void UndefinedSymbolError::Report()
+{
+	char *tempMssg;
+	char *errMessage;
+	
+	errMessage=MessageHandler::GetInstance()->GetMessageString(iMessageIndex);
+	if(errMessage)
+	{
+		tempMssg = new char[strlen(errMessage)+strlen(iSymbolName.c_str())+strlen(iName.c_str())];
+		sprintf(tempMssg,errMessage,iSymbolName.c_str(),iName.c_str());
+		iMessage+=tempMssg;
+		MessageHandler::GetInstance()->Output(iMessage.c_str());
+		delete tempMssg;
+	}
+}
+
+/**
+SymbolMissingFromElfError constructor for initializing message index, symbol name list and argument name.
+@param aMessageIndex - Message Index
+@param aSymbolList - List of symbols
+@param aName - File Name
+@internalComponent
+@released
+*/
+SymbolMissingFromElfError::SymbolMissingFromElfError(int aMessageIndex, list<String> &aSymbolList, const char * aName) : ELFFileError(aMessageIndex,aName)
+{
+
+	std::list<String>::iterator aItr = aSymbolList.begin();
+	std::list<String>::iterator last = aSymbolList.end();
+
+	while(aItr != last)
+	{
+		iSymbolNames+=*aItr;
+		aItr++;
+		if(aItr != last)
+		{
+			iSymbolNames+=",";
+		}
+	}
+
+}
+
+/**
+SymbolMissingFromElfError destructor.
+@internalComponent
+@released
+*/
+SymbolMissingFromElfError::~SymbolMissingFromElfError()
+{
+}
+
+/**
+Function to report Symbol Missing From Elf Error.
+@internalComponent
+@released
+*/
+void SymbolMissingFromElfError::Report()
+{
+	char *tempMssg;
+	char *errMessage;
+
+	errMessage=MessageHandler::GetInstance()->GetMessageString(iMessageIndex);
+	if(errMessage)
+	{
+		tempMssg = new char[strlen(errMessage)+strlen(iSymbolNames.c_str())+strlen(iName.c_str())];
+		sprintf(tempMssg,errMessage,iSymbolNames.c_str(),iName.c_str());
+		iMessage+=tempMssg;
+		MessageHandler::GetInstance()->Output(iMessage.c_str());
+		delete tempMssg;
+	}
+}
+
+/**
+MemoryAllocationError constructor for initializing message index and argument name.
+@param aMessageIndex - Message Index
+@param aName - File Name
+@internalComponent
+@released
+*/
+MemoryAllocationError::MemoryAllocationError(int aMessageIndex, char * aName) : ErrorHandler(aMessageIndex), iName(aName)
+{
+}
+
+/**
+MemoryAllocationError destructor.
+@internalComponent
+@released
+*/
+MemoryAllocationError::~MemoryAllocationError()
+{
+}
+
+/**
+Function to report Memory Allocation Error.
+@internalComponent
+@released
+*/
+void MemoryAllocationError::Report()
+{
+	char *tempMssg;
+	char *errMessage;
+
+	errMessage=MessageHandler::GetInstance()->GetMessageString(iMessageIndex);
+	if(errMessage)
+	{
+		tempMssg = new char[strlen(errMessage)+strlen(iName.c_str())];
+		sprintf(tempMssg,errMessage,iName.c_str());
+		iMessage+=tempMssg;
+		MessageHandler::GetInstance()->Output(iMessage.c_str());
+		delete tempMssg;
+	}
+}
+
+/**
+E32ImageError constructor for initializing message index.
+@param aMessageIndex - Message Index
+@internalComponent
+@released
+*/
+E32ImageError::E32ImageError(int aMessageIndex) : ErrorHandler(aMessageIndex)
+{
+}
+
+/**
+E32ImageError destructor.
+@internalComponent
+@released
+*/
+E32ImageError::~E32ImageError()
+{
+}
+
+/**
+Function to report E32 Image Error.
+@internalComponent
+@released
+*/
+void E32ImageError::Report()
+{
+	char *errMessage;
+
+	errMessage=MessageHandler::GetInstance()->GetMessageString(iMessageIndex);
+	if(errMessage)
+	{
+		iMessage+=errMessage;
+		MessageHandler::GetInstance()->Output(iMessage.c_str());
+	}
+}
+
+/**
+InvalidInvocationError constructor for initializing message index.
+@param aMessageIndex - Message Index
+@internalComponent
+@released
+*/
+InvalidInvocationError::InvalidInvocationError(int aMessageIndex) : ErrorHandler(aMessageIndex)
+{
+}
+
+/**
+InvalidInvocationError destructor.
+@internalComponent
+@released
+*/
+InvalidInvocationError::~InvalidInvocationError()
+{
+}
+
+/**
+Function to report Invalid Invocation Error.
+@internalComponent
+@released
+*/
+void InvalidInvocationError::Report()
+{
+	char *errMessage;
+
+	errMessage=MessageHandler::GetInstance()->GetMessageString(iMessageIndex);
+	if(errMessage)
+	{
+		iMessage+=errMessage;
+		MessageHandler::GetInstance()->Output(iMessage.c_str());
+	}
+}
+
+/**
+TargetTypeError constructor for initializing message index.
+@param aMessageIndex - Message Index
+@internalComponent
+@released
+*/
+TargetTypeError::TargetTypeError(int aMessageIndex) : ErrorHandler(aMessageIndex)
+{
+}
+
+/**
+TargetTypeError destructor.
+@internalComponent
+@released
+*/
+TargetTypeError::~TargetTypeError()
+{
+}
+
+/**
+Function to report Target Type Error.
+@internalComponent
+@released
+*/
+void TargetTypeError::Report()
+{
+	char *errMessage;
+
+	errMessage=MessageHandler::GetInstance()->GetMessageString(iMessageIndex);
+	if(errMessage)
+	{
+		iMessage+=errMessage;
+		MessageHandler::GetInstance()->Output(iMessage.c_str());
+	}
+}
+
+/**
+UnsupportedTargetTypeError constructor for initializing message index and argument name.
+@param aMessageIndex - Message Index
+@param aName - Target type name
+@internalComponent
+@released
+*/
+UnsupportedTargetTypeError::UnsupportedTargetTypeError(int aMessageIndex, char * aName) : TargetTypeError(aMessageIndex), iName(aName)
+{
+}
+
+/**
+UnsupportedTargetTypeError destructor.
+@internalComponent
+@released
+*/
+UnsupportedTargetTypeError::~UnsupportedTargetTypeError()
+{
+}
+
+/**
+Function to report Unsupported Target Type Error.
+@internalComponent
+@released
+*/
+void UnsupportedTargetTypeError::Report()
+{
+	char *tempMssg;
+	char *errMessage;
+
+	errMessage=MessageHandler::GetInstance()->GetMessageString(iMessageIndex);
+	if(errMessage)
+	{
+		tempMssg = new char[strlen(errMessage)+strlen(iName.c_str())];
+		sprintf(tempMssg,errMessage,iName.c_str());
+		iMessage+=tempMssg;
+		MessageHandler::GetInstance()->Output(iMessage.c_str());
+		delete tempMssg;
+	}
+}
+
+/**
+MessageError constructor for initializing message index and index value.
+@param aMessageIndex - Message Index
+@param aIndexValue - Value of Index
+@internalComponent
+@released
+*/
+MessageError::MessageError(int aMessageIndex, int aIndexValue) : ErrorHandler(aMessageIndex), iIndexValue(aIndexValue)
+{
+}
+
+/**
+MessageError destructor.
+@internalComponent
+@released
+*/
+MessageError::~MessageError()
+{
+}
+
+/**
+Function to report Message Errors.
+@internalComponent
+@released
+*/
+void MessageError::Report()
+{
+	char *tempMssg;
+	char *errMessage;
+	
+	errMessage=MessageHandler::GetInstance()->GetMessageString(iMessageIndex);
+	if(errMessage)
+	{
+		tempMssg = new char[strlen(errMessage)+5];
+		sprintf(tempMssg,errMessage,iIndexValue);
+		iMessage+=tempMssg;
+		MessageHandler::GetInstance()->Output(iMessage.c_str());
+		delete tempMssg;
+	}
+}
+
+/**
+NoMessageFileError constructor for initializing message index.
+@param aMessageIndex - Message Index
+@internalComponent
+@released
+*/
+NoMessageFileError::NoMessageFileError(int aMessageIndex) : ErrorHandler(aMessageIndex)
+{
+}
+
+/**
+NoMessageFileError destructor.
+@internalComponent
+@released
+*/
+NoMessageFileError::~NoMessageFileError()
+{
+}
+
+/**
+Function to report No Message File Error.
+@internalComponent
+@released
+*/
+void NoMessageFileError::Report()
+{
+	char *errMessage;
+
+	errMessage=MessageHandler::GetInstance()->GetMessageString(iMessageIndex);
+	if(errMessage)
+	{
+		iMessage+=errMessage;
+		MessageHandler::GetInstance()->Output(iMessage.c_str());
+	}
+}
+
+/**
+SysDefMismatchError constructor for initializing message index, symbol name list and argument name.
+@param aMessageIndex - Message Index
+@param aSymbolList - list of symbols
+@param aName - sysdef
+@internalComponent
+@released
+*/
+SysDefMismatchError::SysDefMismatchError(int aMessageIndex, list<String> &aSymbolList, const char * aName) : ErrorHandler(aMessageIndex), iName(aName)
+{
+
+	std::list<String>::iterator aItr = aSymbolList.begin();
+	std::list<String>::iterator last = aSymbolList.end();
+
+	while(aItr != last)
+	{
+		iSymbolNames+=*aItr;
+		aItr++;
+		if(aItr != last)
+		{
+			iSymbolNames+=",";
+		}
+	}
+
+}
+
+/**
+SysDefMismatchError destructor.
+@internalComponent
+@released
+*/
+SysDefMismatchError::~SysDefMismatchError()
+{
+}
+
+/**
+Function to report SysDef Mismatch Error.
+@internalComponent
+@released
+*/
+void SysDefMismatchError::Report()
+{
+	char *tempMssg;
+	char *errMessage;
+
+	errMessage=MessageHandler::GetInstance()->GetMessageString(iMessageIndex);
+	if(errMessage)
+	{
+		tempMssg = new char[strlen(errMessage)+strlen(iSymbolNames.c_str())+strlen(iName.c_str())];
+		sprintf(tempMssg,errMessage,iSymbolNames.c_str(),iName.c_str());
+		iMessage+=tempMssg;
+		MessageHandler::GetInstance()->Output(iMessage.c_str());
+		delete tempMssg;
+	}
+}
+
+/**
+InvalidE32ImageError constructor for initializing message index and argument name.
+@param aMessageIndex - Message Index
+@param aName - E32Image File name
+@internalComponent
+@released
+*/
+InvalidE32ImageError::InvalidE32ImageError(int aMessageIndex, char * aName) : ErrorHandler(aMessageIndex), iName(aName)
+{
+}
+
+/**
+InvalidE32ImageError destructor.
+@internalComponent
+@released
+*/
+InvalidE32ImageError::~InvalidE32ImageError()
+{
+}
+
+/**
+Function to report Invalid E32 Image Error.
+@internalComponent
+@released
+*/
+void InvalidE32ImageError::Report()
+{
+	char *tempMssg;
+	char *errMessage;
+
+	errMessage=MessageHandler::GetInstance()->GetMessageString(iMessageIndex);
+	if(errMessage)
+	{
+		tempMssg = new char[strlen(errMessage)+strlen(iName.c_str())];
+		sprintf(tempMssg,errMessage,iName.c_str());
+		iMessage+=tempMssg;
+		MessageHandler::GetInstance()->Output(iMessage.c_str());
+		delete tempMssg;
+	}
+}
+
+/**
+ImportRelocationError constructor for initializing message index, argument name and symbol name.
+@param aMessageIndex - Message Index
+@param aName - File Name
+@param aSymbolName - Symbol Name
+@internalComponent
+@released
+*/
+ImportRelocationError::ImportRelocationError(int aMessageIndex, char * aName, char *aSymbolName) : ELFFileError(aMessageIndex,aName), iSymbolName(aSymbolName)
+{
+}
+
+/**
+ImportRelocationError destructor.
+@internalComponent
+@released
+*/
+ImportRelocationError::~ImportRelocationError()
+{
+}
+
+/**
+Function to report Import Relocations references to Data Segment Error
+@internalComponent
+@released
+*/
+void ImportRelocationError::Report()
+{
+	char *tempMssg;
+	char *errMessage;
+	
+	errMessage=MessageHandler::GetInstance()->GetMessageString(iMessageIndex);
+	if(errMessage)
+	{
+		tempMssg = new char[strlen(errMessage)+strlen(iSymbolName.c_str())+strlen(iName.c_str())];
+		sprintf(tempMssg,errMessage,iSymbolName.c_str(),iName.c_str());
+		iMessage+=tempMssg;
+		MessageHandler::GetInstance()->Output(iMessage.c_str());
+		delete tempMssg;
+	}
+}
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/errorhandler.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,356 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Error Handler Classes for elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+
+#ifndef _ERROR_HANDLER_
+#define _ERROR_HANDLER_
+
+#include "messagehandler.h"
+#include <list>
+#include <string>
+
+using std::list;
+typedef std::string String;
+
+/**
+Base class from which all other error handler classes are derived from.
+@internalComponent
+@released
+*/
+class ErrorHandler
+{
+	public:
+		ErrorHandler(int aMessageIndex);
+		virtual ~ErrorHandler();
+		virtual void Report() =0;
+
+		String iMessage;
+		int iMessageIndex;
+};
+
+/**
+Base class for File Errors.
+@internalComponent
+@released
+*/
+class FileError : public ErrorHandler
+{
+	public:
+		FileError(int aMessageIndex, char * aName);
+		virtual ~FileError();
+		void Report();
+
+		String iName;
+};
+
+/**
+Base class for ELFFormat Errors.
+@internalComponent
+@released
+*/
+class ELFFormatError : public ErrorHandler
+{
+	public:
+		ELFFormatError(int aMessageIndex, char * aName);
+		virtual ~ELFFormatError();
+		void Report();
+
+		String iName;
+};
+
+/**
+Base class for DEF File Errors.
+@internalComponent
+@released
+*/
+class DEFFileError : public ErrorHandler
+{
+	public:
+		DEFFileError(int aMessageIndex, char * aName, int aLineNo,char * aToken);
+		virtual ~DEFFileError();
+		void Report();
+
+		String iName;
+		int iLineNo;
+		String iToken;
+};
+
+/**
+Base class for Parameter Parser Errors.
+@internalComponent
+@released
+*/
+class ParameterParserError : public ErrorHandler
+{
+	public:
+		ParameterParserError(int aMessageIndex, char * aName);
+		virtual ~ParameterParserError();
+		void Report();
+
+		String iName;
+};
+
+/**
+Class for Invalid Argument Errors.
+@internalComponent
+@released
+*/
+class InvalidArgumentError : public ErrorHandler
+{
+	public:
+		InvalidArgumentError(int aMessageIndex, const char * aValue, char * aOption);
+		virtual ~InvalidArgumentError();
+		void Report();
+
+		String iValue;
+		String iOption;
+};
+
+/**
+Base class for E32Image Compression Errors.
+@internalComponent
+@released
+*/
+class E32ImageCompressionError : public ErrorHandler
+{
+	public:
+		E32ImageCompressionError(int aMessageIndex);
+		virtual ~E32ImageCompressionError();
+		void Report();
+};
+
+/**
+Base class for Capability Errors.
+@internalComponent
+@released
+*/
+class CapabilityError : public ErrorHandler
+{
+	public:
+		CapabilityError(int aMessageIndex);
+		virtual ~CapabilityError();
+		void Report();
+};
+
+/**
+Class for handling Unrecognised Capability Errors.
+@internalComponent
+@released
+*/
+class UnrecognisedCapabilityError : public CapabilityError
+{
+	public:
+		UnrecognisedCapabilityError(int aMessageIndex, char * aName);
+		~UnrecognisedCapabilityError();
+		void Report();
+
+		String iName;
+};
+
+/**
+Base class for ELF File Errors.
+@internalComponent
+@released
+*/
+class ELFFileError : public ErrorHandler
+{
+	public:
+		ELFFileError(int aMessageIndex, const char * aName);
+		virtual ~ELFFileError();
+		void Report();
+
+		String iName;
+};
+
+/**
+Class for handling Undefined Symbol Errors.
+@internalComponent
+@released
+*/
+class UndefinedSymbolError : public ELFFileError
+{
+public:
+	UndefinedSymbolError(int aMessageIndex, char * aName, char *aSymbolName);
+	~UndefinedSymbolError();
+	void Report();
+
+	String iSymbolName;
+};
+
+/**
+Class for handling Import relocation to Data segment
+@internalComponent
+@released
+*/
+class ImportRelocationError : public ELFFileError
+{
+public:
+	ImportRelocationError(int aMessageIndex, char * aName, char *aSymbolName);
+	~ImportRelocationError();
+	void Report();
+
+	String iSymbolName;
+};
+
+/**
+Class for handling Symbol Missing From Elf Errors.
+@internalComponent
+@released
+*/
+class SymbolMissingFromElfError : public ELFFileError
+{
+	public:
+		SymbolMissingFromElfError(int aMessageIndex, list<String> &aSymbolList, const char * aName);
+		virtual ~SymbolMissingFromElfError();
+		void Report();
+
+		String iSymbolNames;
+};
+
+/**
+Class for handling Memory Allocation Errors.
+@internalComponent
+@released
+*/
+class MemoryAllocationError : public ErrorHandler
+{
+	public:
+		MemoryAllocationError(int aMessageIndex, char * aName);
+		virtual ~MemoryAllocationError();
+		void Report();
+
+		String iName;
+};
+
+/**
+Class for handling E32 Image Errors.
+@internalComponent
+@released
+*/
+class E32ImageError : public ErrorHandler
+{
+public:
+	E32ImageError(int aMessageIndex);
+	~E32ImageError();
+	void Report();
+};
+
+/**
+Class for handling Invalid Invocation Errors.
+@internalComponent
+@released
+*/
+class InvalidInvocationError : public ErrorHandler
+{
+public:
+	InvalidInvocationError(int aMessageIndex);
+	~InvalidInvocationError();
+	void Report();
+};
+
+/**
+Base class for handling Target Type Errors.
+@internalComponent
+@released
+*/
+class TargetTypeError : public ErrorHandler
+{
+public:
+	TargetTypeError(int aMessageIndex);
+	~TargetTypeError();
+	void Report();
+};
+
+/**
+Class for handling Unsupported Target Type Errors.
+@internalComponent
+@released
+*/
+class UnsupportedTargetTypeError : public TargetTypeError
+{
+public:
+	UnsupportedTargetTypeError(int aMessageIndex, char * aName);
+	~UnsupportedTargetTypeError();
+	void Report();
+
+	String iName;
+};
+
+/**
+Class for handling Message Errors.
+@internalComponent
+@released
+*/
+class MessageError : public ErrorHandler
+{
+public:
+	MessageError(int aMessageIndex, int aIndexValue);
+	~MessageError();
+	void Report();
+
+	int iIndexValue;
+};
+
+/**
+Class for handling No Message File Errors.
+@internalComponent
+@released
+*/
+class NoMessageFileError : public ErrorHandler
+{
+public:
+	NoMessageFileError(int aMessageIndex);
+	~NoMessageFileError();
+	void Report();
+};
+
+/**
+Class for handling Symbol that are passed through --sysdef 
+not matching with the ones in the DEF file.
+@internalComponent
+@released
+*/
+class SysDefMismatchError : public ErrorHandler
+{
+	public:
+		SysDefMismatchError(int aMessageIndex, list<String> &aSymbolList, const char * aName);
+		virtual ~SysDefMismatchError();
+		void Report();
+
+		String iName;
+		String iSymbolNames;
+};
+
+/**
+Class for handling Invalid E32 Image Error
+@internalComponent
+@released
+*/
+class InvalidE32ImageError : public ErrorHandler
+{
+	public:
+		InvalidE32ImageError(int aMessageIndex, char * aName);
+		virtual ~InvalidE32ImageError();
+		void Report();
+
+		String iName;
+};
+
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/exetarget.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,77 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation of the Class ExeTarget for the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+#include "exetarget.h"
+
+/**
+Constructor for the ExeTarget Class
+
+@internalComponent
+@released
+*/
+ExeTarget::ExeTarget(ParameterListInterface* aParameterListInterface):
+ElfFileSupplied(aParameterListInterface)
+{
+}
+
+/**
+Destructor for the ExeTarget Class
+
+@internalComponent
+@released
+*/
+ExeTarget::~ExeTarget()
+{
+}
+
+/**
+Function to process the symbols to be exported. This function is empty since there are no
+exports in case of EXE Target. However, this dummy implementation is included since
+this is a virtual function in ElfFileSuplied Class.
+ 
+@internalComponent
+@released
+*/
+void ExeTarget::ProcessExports()
+{
+}
+
+/**
+Function to generate the output E32 image.
+ 
+@internalComponent
+@released
+*/
+void ExeTarget::GenerateOutput()
+{
+	WriteE32();
+}
+
+/**
+Function to check if the provided input is a DLL.
+ 
+@internalComponent
+@released
+
+@result False since EXE Target is not a DLL.
+*/
+bool ExeTarget::ImageIsDll()
+{
+	return false;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/exetarget.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,49 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation of the Header file for Class ExeTarget of the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+
+#ifndef EXETARGET_H
+#define EXETARGET_H
+
+#include "elffilesupplied.h"
+
+/**
+This class is derived from the base class ElfFileSupplied and is responsible for creation of
+EXE Target.
+
+@internalComponent
+@released
+*/
+class ExeTarget : public ElfFileSupplied
+{
+
+public:
+	ExeTarget(ParameterListInterface* aParameterListInterface);
+	virtual ~ExeTarget();
+	void ProcessExports();
+	void GenerateOutput();
+
+	bool ImageIsDll();
+
+};
+
+
+#endif // EXETARGET_H
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/exexp_fb_target.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,67 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation of the Class ExexpTarget for the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+#include "exexp_fb_target.h"
+
+/**
+Constructor for the ExexpFBTarget Class
+
+@internalComponent
+@released
+*/
+ExexpFBTarget::ExexpFBTarget(ParameterListInterface* aParameterListInterface):
+ExportTypeFBTarget(aParameterListInterface)
+{
+}
+
+/**
+Destructor for the ExexpFBTarget Class
+
+@internalComponent
+@released
+*/
+ExexpFBTarget::~ExexpFBTarget(){
+
+}
+
+/**
+Function to check if the provided input is a DLL.
+ 
+@internalComponent
+@released
+
+@result False since EXEXP Target is not a DLL.
+*/
+bool ExexpFBTarget::ImageIsDll()
+{
+	return false;
+}
+
+/**
+Function to check if writable data is allowed.
+ 
+@internalComponent
+@released
+
+@result True, since EXEXP targets can have writable data
+*/
+bool ExexpFBTarget::AllowDllData()
+{
+	return true;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/exexp_fb_target.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,48 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation of the Header file for Class Exexp_FB_Target of the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+
+#ifndef EXEXP_FB_TARGET_H
+#define EXEXP_FB_TARGET_H
+
+#include "export_type_fb_target.h"
+
+/**
+This class is derived from the base class ExportTypeFBTarget and is responsible for
+creation of EXEXP Target.
+
+@internalComponent
+@released
+*/
+class ExexpFBTarget : public ExportTypeFBTarget
+{
+
+public:
+	ExexpFBTarget(ParameterListInterface* aParameterListInterface);
+	virtual ~ExexpFBTarget();
+	bool ImageIsDll();
+	bool AllowDllData();
+
+};
+
+
+
+#endif // EXEXP_FB_TARGET_H
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/exexp_rebuild_target.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,64 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation of the Class ExexpTarget for the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+#include "exexp_rebuild_target.h"
+
+/**
+Constructor for the ExexpRebuildTarget Class
+
+@internalComponent
+@released
+*/
+ExExpRebuildTarget::ExExpRebuildTarget(ParameterListInterface* aParameterListInterface) : ExportTypeRebuildTarget(aParameterListInterface) {
+}
+
+/**
+Destructor for the ExexpRebuildTarget Class
+
+@internalComponent
+@released
+*/
+ExExpRebuildTarget::~ExExpRebuildTarget() {
+}
+
+/**
+Function to check if the provided input is a DLL.
+ 
+@internalComponent
+@released
+
+@result False since EXEXP Target is not a DLL.
+*/
+bool ExExpRebuildTarget::ImageIsDll()
+{
+	return false; 
+}
+
+/**
+Function to check if writable data is allowed.
+ 
+@internalComponent
+@released
+
+@result True, since EXEXP targets can have writable data
+*/
+bool ExExpRebuildTarget::AllowDllData()
+{
+	return true;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/exexp_rebuild_target.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,43 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Declaration of Class ExExpRebuildTarget of the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+#ifndef EXEXP_REBUILD_TARGET_H
+#define EXEXP_REBUILD_TARGET_H
+
+#include "export_type_rebuild_target.h"
+
+/**
+This class is derived from the class ExportTypeRebuildTarget and handles exexp target rebuild
+
+@internalComponent
+@released
+*/
+class ExExpRebuildTarget : public ExportTypeRebuildTarget
+{
+
+public:
+	ExExpRebuildTarget(ParameterListInterface* aParameterListInterface);
+	~ExExpRebuildTarget();
+	bool ImageIsDll();
+	bool AllowDllData();
+};
+
+
+#endif // EXEXP_REBUILD_TARGET_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/export_type_fb_target.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,40 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation of the Class ExexpTarget for the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+#include "export_type_fb_target.h"
+
+/**
+Constructor for the ExportTypeFBTarget Class
+
+@internalComponent
+@released
+*/
+ExportTypeFBTarget::ExportTypeFBTarget(ParameterListInterface* aParameterListInterface) : ExportTypeTarget(aParameterListInterface) {
+}
+
+/**
+Destructor for the ExportTypeFBTarget Class
+
+@internalComponent
+@released
+*/
+ExportTypeFBTarget::~ExportTypeFBTarget() {
+}
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/export_type_fb_target.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,43 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Declaration of Class ExportTypeFBTarget of the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+#ifndef EXPORT_TYPE_FB_TARGET_H
+#define EXPORT_TYPE_FB_TARGET_H
+
+#include "export_type_target.h"
+
+/**
+class ExportTypeFBTarget is dervied from ExportTypeTarget and handles export type target 
+first build
+
+@internalComponent
+@released
+*/
+class ExportTypeFBTarget : public ExportTypeTarget
+{
+
+public:
+	ExportTypeFBTarget(ParameterListInterface* aParameterListInterface);
+	~ExportTypeFBTarget();
+
+};
+
+
+#endif // EXPORT_TYPE_FB_TARGET_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/export_type_rebuild_target.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,58 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation of the Class ExexpTarget for the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+#include "export_type_rebuild_target.h"
+#include "deffile.h"
+
+/**
+Constructor for the ExportTypeRebuildTarget Class
+
+@internalComponent
+@released
+*/
+ExportTypeRebuildTarget::ExportTypeRebuildTarget(ParameterListInterface* aParameterListInterface) : ExportTypeTarget(aParameterListInterface) {
+	iDefFile = new DefFile();
+}
+
+/**
+Destructor for the ExportTypeRebuildTarget Class
+
+@internalComponent
+@released
+*/
+ExportTypeRebuildTarget::~ExportTypeRebuildTarget()
+{
+	delete iDefFile;
+}
+
+/**
+Function to process the symbols to be exported. The symbols from the DEF File are read
+and passed to ValidateExports() to validate against the symbols present in the ELF file.
+The final list of exports symbols is created.
+ 
+@internalComponent
+@released
+*/
+void ExportTypeRebuildTarget::ProcessExports()
+{
+  	iDefExports = iDefFile->ReadDefFile( iParameterListInterface->DefInput() );
+
+	ValidateExports(iDefExports);
+	CreateExports();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/export_type_rebuild_target.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,49 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Declaration of Class ExportTypeRebuildTarget of the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+#ifndef EXPORT_TYPE_REBUILD_TARGET_H
+#define EXPORT_TYPE_REBUILD_TARGET_H
+
+#include "export_type_target.h"
+
+class DefFile;
+
+/**
+class ExportTypeRebuildTarget is dervied from ExportTypeTarget and handles export type  target rebuilding
+
+@internalComponent
+@released
+*/
+class ExportTypeRebuildTarget : public ExportTypeTarget
+{
+
+public:
+	ExportTypeRebuildTarget(ParameterListInterface* aParameterListInterface);
+	~ExportTypeRebuildTarget();
+
+	void ProcessExports();
+
+protected:
+	DefFile *iDefFile;
+
+};
+
+
+#endif // EXPORT_TYPE_REBUILD_TARGET_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/export_type_target.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,66 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation of the Class ExexpTarget for the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+#include "export_type_target.h"
+
+/**
+Constructor for the ExportTypeTarget Class
+
+@internalComponent
+@released
+*/
+ExportTypeTarget::ExportTypeTarget(ParameterListInterface* aParameterListInterface) : ElfFileSupplied(aParameterListInterface), iDefExports(NULL) {
+}
+
+/**
+Destructor for the ExportTypeTarget Class
+
+@internalComponent
+@released
+*/
+ExportTypeTarget::~ExportTypeTarget() {
+}
+
+/**
+Function to generate the output E32 image. Since this is a targettype which can have
+export symbols, the output generated can also include DEF File (if any), DSO file and
+and E32 image.
+ 
+@internalComponent
+@released
+*/
+void ExportTypeTarget::GenerateOutput() 
+{
+	WriteDefFile();
+	WriteDSOFile();
+	WriteE32();
+}
+
+/**
+Function to check if the provided input is a DLL.
+ 
+@internalComponent
+@released
+
+@result True since Export Type Target is a DLL.
+*/
+bool ExportTypeTarget::ImageIsDll()
+{
+	return true;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/export_type_target.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,48 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Declaration of Class ExportTypeTarget of the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+#ifndef EXPORT_TYPE_TARGET_H
+#define EXPORT_TYPE_TARGET_H
+
+#include "elffilesupplied.h"
+
+/**
+class ExportTypeTarget is dervied from ElfSupplied and handles export type target
+
+@internalComponent
+@released
+*/
+class ExportTypeTarget : public ElfFileSupplied
+{
+
+public:
+	ExportTypeTarget(ParameterListInterface* aParameterListInterface);
+	~ExportTypeTarget();
+
+	bool ImageIsDll();
+	void GenerateOutput();
+
+protected:
+	SymbolList *iDefExports;
+
+};
+
+
+#endif // EXPORT_TYPE_TARGET_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/farray.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,111 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// @internalComponent
+// @released
+// 
+//
+
+
+#ifndef __FARRAY_H__
+#define __FARRAY_H__
+#include <cassert>
+
+template <class T,TInt S> 
+class TFixedArray
+// Range checking wrapper+ class for C++ arrays
+// Can be embedded in C-objects, or used on the stack: use Reset() to zero it
+	{
+	typedef TFixedArray<T,S> ThisClass;
+public:
+	inline TFixedArray();
+	inline TFixedArray(const T* aList, TInt aLength);
+	//
+	inline void Copy(const T* aList, TInt aLength);
+	inline void Reset();		// zero fill
+	inline void DeleteAll();
+	//
+	inline TInt Count() const;
+	inline TInt Length() const;
+	// Accessors - debug range checking
+	inline T& operator[](TInt aIndex);
+	inline const T& operator[] (TInt aIndex) const;
+	// Accessors - always range checking
+	inline T& At(TInt aIndex);
+	inline const T& At(TInt aIndex) const;
+	// Provides pointers to the beginning and end of the array
+	inline T* Begin();
+	inline T* End();
+	inline const T* Begin() const;
+	inline const T* End() const;
+	//
+protected:
+	inline static TBool InRange(TInt aIndex);
+protected:
+	T iRep[S];
+	};
+
+
+template <class T,TInt S>
+inline TFixedArray<T,S>::TFixedArray()
+	{}
+template <class T,TInt S>
+inline void TFixedArray<T,S>::Copy(const T* aList,TInt aLength)
+	{
+	// Never used. 
+    assert(TUint(aLength)<=TUint(S));
+    // HMdem::Copy(iRep,aList,aLength*sizeof(T));
+    }
+template <class T,TInt S>
+inline TFixedArray<T,S>::TFixedArray(const T* aList,TInt aLength)
+	{Copy(aList,aLength);}
+template <class T,TInt S>
+inline void TFixedArray<T,S>::Reset()
+	{memset(iRep,0,sizeof(iRep));}
+template <class T,TInt S>
+inline TInt TFixedArray<T,S>::Count() const
+	{return S;}
+template <class T,TInt S>
+inline TInt TFixedArray<T,S>::Length() const
+	{return sizeof(T);}
+template <class T,TInt S>
+inline TBool TFixedArray<T,S>::InRange(TInt aIndex)
+	{return TUint(aIndex)<S;}
+template <class T,TInt S>
+inline T& TFixedArray<T,S>::operator[](TInt aIndex)
+	{assert(InRange(aIndex));return iRep[aIndex];}
+template <class T,TInt S>
+inline const T& TFixedArray<T,S>::operator[](TInt aIndex) const
+	{return const_cast<ThisClass&>(*this)[aIndex];}
+template <class T,TInt S>
+inline T& TFixedArray<T,S>::At(TInt aIndex)
+	{verify(InRange(aIndex));return iRep[aIndex];}
+template <class T,TInt S>
+inline const T& TFixedArray<T,S>::At(TInt aIndex) const
+	{return const_cast<ThisClass&>(*this).At(aIndex);}
+template <class T,TInt S>
+inline T* TFixedArray<T,S>::Begin()
+	{return &iRep[0];}
+template <class T,TInt S>
+inline T* TFixedArray<T,S>::End()
+	{return &iRep[S];}
+template <class T,TInt S>
+inline const T* TFixedArray<T,S>::Begin() const
+	{return &iRep[0];}
+template <class T,TInt S>
+inline const T* TFixedArray<T,S>::End() const
+	{return &iRep[S];}
+
+
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/filedump.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,186 @@
+// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of the License "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// FileDump Operations of elf2e32 tool to dump E32Image and generate ASM File.
+// @internalComponent
+// @released
+// 
+//
+
+#include "pl_common.h"
+#include "filedump.h"
+#include "e32imagefile.h"
+#include "h_utl.h"
+#include "deffile.h"
+#include "errorhandler.h"
+#include <stdio.h>
+/**
+Constructor for class FileDump
+@param aParameterListInterface - Instance of class ParameterListInterface
+@internalComponent
+@released
+*/
+FileDump::FileDump(ParameterListInterface* aParameterListInterface) : UseCaseBase(aParameterListInterface)
+{
+}
+
+/**
+Destructor for class FileDump
+@internalComponent
+@released
+*/
+FileDump::~FileDump()
+{
+}
+
+/**
+Execute Function for the File Dump. It dumps E32 image or generate ASM file based on the
+file dump options
+@return 0 on success, otherwise throw error 
+@internalComponent
+@released
+*/
+int FileDump::Execute()
+{
+	if(iParameterListInterface->FileDumpOption() && iParameterListInterface->E32OutOption() && iParameterListInterface->DefFileInOption()) //DumpAsm
+	{
+		if(!(iParameterListInterface->DumpOptions() & EDumpAsm))
+			throw InvalidArgumentError(INVALIDARGUMENTERROR,(!iParameterListInterface->FileDumpSubOptions()?"":iParameterListInterface->FileDumpSubOptions()) ,"--dump");
+		if(iParameterListInterface->DumpOptions() & 31)
+			throw InvalidArgumentError(INVALIDARGUMENTERROR,(!iParameterListInterface->FileDumpSubOptions()?"":iParameterListInterface->FileDumpSubOptions()),"--dump");
+		if(!iParameterListInterface->E32ImageOutput())
+			throw ParameterParserError(NOREQUIREDOPTIONERROR,"--output");
+		if(!iParameterListInterface->DefInput())
+			throw ParameterParserError(NOREQUIREDOPTIONERROR,"--definput");
+
+		GenerateAsmFile(iParameterListInterface->E32ImageOutput());
+	}
+	else
+	{
+		if(!iParameterListInterface->E32Input())
+			throw ParameterParserError(NOREQUIREDOPTIONERROR,"--e32input");
+		if(iParameterListInterface->DumpOptions() & EDumpAsm )
+			throw InvalidArgumentError(INVALIDARGUMENTERROR,iParameterListInterface->FileDumpSubOptions() ,"--dump");
+		DumpE32Image(iParameterListInterface->E32Input());
+	}
+	return 0;
+}
+
+/**
+Function to generate ASM File.
+@param afileName - ASM File name
+@return 0 on success, otherwise throw error 
+@internalComponent
+@released
+*/
+int FileDump::GenerateAsmFile(const char* afileName)//DumpAsm
+{
+	DefFile *iDefFile = new DefFile();
+	SymbolList *aSymList;
+	aSymList = iDefFile->ReadDefFile(iParameterListInterface->DefInput());
+
+	FILE *fptr;
+
+	if((fptr=fopen(afileName,"w"))==NULL)
+	{
+		throw FileError(FILEOPENERROR,(char*)afileName);
+	}
+	else
+	{
+		SymbolList::iterator aItr = aSymList->begin();
+		SymbolList::iterator last = aSymList->end();
+		Symbol *aSym;
+
+		while( aItr != last)
+		{
+			aSym = *aItr;
+
+			if(aSym->Absent())
+			{
+				aItr++;
+				continue;
+			}
+
+			fputs("\tIMPORT ",fptr);
+			fputs(aSym->SymbolName(),fptr);
+			//Set the visibility of the symbols as default."DYNAMIC" option is
+			//added to remove STV_HIDDEN visibility warnings generated by every 
+			//export during kernel build 
+			fputs(" [DYNAMIC]", fptr);
+			fputs("\n",fptr);
+			aItr++;
+		}
+
+        // Create a directive section that instructs the linker to make all listed
+        // symbols visible.
+
+        fputs("\n AREA |.directive|, READONLY, NOALLOC\n\n",fptr);
+
+        fputs("\tDCB \"#<SYMEDIT>#\\n\"\n", fptr);
+
+		aItr = aSymList->begin();
+		while (aItr != last)
+		{
+			aSym = *aItr;
+
+			if ( aSym->Absent() )
+			{
+				aItr++;
+				continue;
+			}
+
+            // Example:
+            //  DCB "EXPORT __ARM_ll_mlass\n"
+			fputs("\tDCB \"EXPORT ",fptr);
+			fputs(aSym->SymbolName(),fptr);
+			fputs("\\n\"\n", fptr);
+
+			aItr++;
+		}
+
+		fputs("\n END\n",fptr);
+		fclose(fptr);
+	}
+	return 0;
+}
+
+/**
+Function to Dump E32 Image.
+@param afileName - E32 Image File name
+@return 1 on success, otherwise throw error 
+@internalComponent
+@released
+*/
+int FileDump::DumpE32Image(const char* afileName)
+{
+	E32ImageFile *aE32Imagefile=new E32ImageFile();
+	TInt result = aE32Imagefile->Open(afileName);
+	
+	if (result > 0)
+		return 1;
+	else if (result == KErrCorrupt || result == KErrNotSupported)
+	{
+		throw InvalidE32ImageError(INVALIDE32IMAGEERROR, (char *)afileName);
+	}
+	else if (result != 0)
+	{
+		throw FileError(FILEREADERROR, (char *)afileName);
+	}
+
+	int dumpOptions=iParameterListInterface->DumpOptions();
+	
+	aE32Imagefile->Dump((TText*)afileName, dumpOptions);
+	delete aE32Imagefile;
+	return KErrNone;
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/filedump.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,43 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// FileDump Class for elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+#ifndef __FILEDUMP_H__
+#define __FILEDUMP_H__
+
+#include "usecasebase.h"
+
+/**
+class for dumping e32image file or dumping asm file
+@internalComponent
+@released
+*/
+class FileDump : public UseCaseBase
+{
+
+	public:
+		FileDump(ParameterListInterface* aParameterListInterface);
+		~FileDump();
+		int Execute();
+	private:
+		int DumpE32Image(const char * fileName);
+		int GenerateAsmFile(const char* afileName);//DumpAsm
+};
+
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/h_utl.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,260 @@
+// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation of the e32 image version for e32 image dump for the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+#include <stdlib.h>
+#include <stdio.h>
+#include "h_utl.h"
+
+/**
+Function to check bracketed hex i.e '{', '}'
+
+@internalComponent
+@released
+
+@param aTemp
+@param aBrackets
+@param aDigits
+@param aValue
+
+@return True if the value passed in is a bracketed hex.
+*/
+TBool IsBracketedHex(const char* aTemp, const char* aBrackets, TInt aDigits, TUint32& aValue)
+{
+	if (aTemp[0]!=aBrackets[0] || aTemp[1+aDigits]!=aBrackets[1])
+		return 0;
+	TInt i;
+	TUint32 x = 0;
+	for (i=1; i<=aDigits; ++i)
+	{
+		TInt c = aTemp[i];
+		if (c>='a' && c<='z') c-=32;
+		if (c<'0' || (c>'9' && c<'A') || c>'F')
+			return 0;
+		c-='0';
+		if (c>9)
+			c-=7;
+		x = (x<<4) | (TUint32)c;
+	}
+	aValue = x;
+	
+	return 1;
+}
+
+/**
+Function to check the decimal version
+
+@internalComponent
+@released
+
+@param aBegin
+Beginning of the version information
+@param aTemp
+@param aValue
+Holds the hexadecimal value
+@return the checked value.
+*/
+TInt CheckForDecimalVersion(const char* aBegin, const char* aTemp, TUint32& aValue)
+{
+	aValue = 0;
+	if (aTemp <= aBegin || *aTemp != '}')
+		return 0;
+	TUint32 v[2] = {0,0};
+	TUint32 m = 1;
+	TInt pos = 0;
+	const char* s0 = aTemp + 1;
+	for (--aTemp; aTemp >= aBegin; --aTemp)
+	{
+		int c = *aTemp;
+		if (c >= '0' && c <= '9')
+		{
+			v[pos] += m * (c - '0');
+			if (v[pos] >= 65536u)
+				return 0;
+			m *= 10;
+		}
+		else if (c == '.')
+		{
+			m = 1;
+			if (++pos >= 2)
+				return 0;
+		}
+		else if (c == '{')
+			break;
+		else
+			return 0;
+	}
+	if (aTemp < aBegin)
+		return 0;
+	
+	aValue = (v[1] << 16) | v[0];
+	
+	return s0 - aTemp;
+}
+
+/**
+Function to Parse a filename and convert decimal version number to hex
+
+@internalComponent
+@released
+
+@param aName
+Filename to be parsed
+
+@return the converted name wherein the decimal number is converted to hex.
+*/
+char* NormaliseFileName(const char* aName)
+{
+	TFileNameInfo f(aName, 0);
+	TInt nl = f.iBaseLength;
+	TInt el = f.iTotalLength - f.iExtPos;
+	TInt tl = nl + el;
+	if (f.iFlags & EVerPresent)
+		tl += 10;
+	char* t = new char[tl + 1];
+	if (t)
+	{
+		memcpy(t, aName, nl);
+		if (f.iFlags & EVerPresent)
+			sprintf(t + nl, "{%08x}%s", (TInt)f.iModuleVersion, aName + f.iExtPos);
+		else if (el)
+			memcpy(t + nl, aName + f.iExtPos, el);
+		t[tl] = 0;
+	}
+	
+	return t;
+}
+
+/**
+Constructor for Class TFileNameInfo
+
+@internalComponent
+@released
+
+@param aFileName
+Filename to be parsed
+@param aLookForUid
+*/
+TFileNameInfo::TFileNameInfo(const char* aFileName, TBool aLookForUid)
+{
+	iFileName = aFileName;
+	TInt l = strlen(aFileName);
+	iTotalLength = l;
+	TInt remain = l;
+	iFlags = 0;
+	iUid3 = 0;
+	iModuleVersion = 0;
+	iBaseLength = l;
+	iExtPos = l;
+	const char* s = iFileName + l;
+	for (; s>=iFileName && *s!='.' && *s!='}' && (!aLookForUid || *s!=']'); --s)
+	{
+	}
+	
+	if (s<iFileName)
+		return;
+	if (*s == '.')
+	{
+		iExtPos = s - iFileName;
+		if (iExtPos == 0)
+		{
+			iBaseLength = 0;
+			return;
+		}
+		remain = iExtPos;
+		--s;
+	}
+	else if (s != iFileName + l)
+		return;
+	
+	if (aLookForUid && remain>=10 && IsBracketedHex(s-9, "[]", 8, iUid3))
+	{
+		iFlags |= EUidPresent;
+		remain -= 10;
+		s -= 10;
+	}
+	
+	if (remain>=10 && IsBracketedHex(s-9, "{}", 8, iModuleVersion))
+	{
+		iFlags |= EVerPresent;
+		remain -= 10;
+		s -= 10;
+	}
+	else
+	{
+		TInt n = CheckForDecimalVersion(iFileName, s, iModuleVersion);
+		if (n>0)
+		{
+			iFlags |= EVerPresent;
+			remain -= n;
+			s -= n;
+		}
+	}
+	iBaseLength = remain;
+}
+
+/*-------------------------------------------------------------------------
+String comparison on Linux seems to be a little half-baked.
+-------------------------------------------------------------------------*/
+#ifdef __LINUX__
+
+int stricmp(const char *a, const char *b)
+	{
+	unsigned char ca,cb;
+
+	do {
+		ca = *a++;
+		cb = *b++;
+		ca = tolower(ca);
+		cb = tolower(cb);
+	}
+	while((ca == cb) && (ca));
+	return (int) ca-cb;
+	}
+
+int strnicmp(const char *a, const char *b, int n)
+	{
+	unsigned char ca,cb;
+	int i = 0;
+
+	do {
+		if (++i > n) return 0;
+		ca = *a++;
+		cb = *b++;
+		ca = tolower(ca);
+		cb = tolower(cb);
+	}
+	while((ca == cb) && (ca));
+	return (int) ca-cb;
+	}
+
+char* strupr(char *a)
+	{
+		char *ret = a;
+
+		while (*a)
+			{
+			*a = toupper(*a);
+			a++;
+			}
+
+		return ret;
+	}
+
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/h_utl.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,112 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+
+ #ifndef __H_UTL_H__
+ #define __H_UTL_H__
+
+#include "e32defwrap.h"
+#include <e32err.h>
+#include <iostream>
+
+#ifdef __TOOLS2__
+#include <sstream>
+#include <fstream>
+using namespace std;
+#else
+#include <strstream.h>
+#endif
+
+ /**
+ Convert string to number.
+ @internalComponent
+ @released
+ */
+ template <class T>
+ TInt Val(T& aVal, char* aStr)
+ {
+ 
+ 
+	T x;
+	#ifdef __TOOLS2__
+	istringstream val(aStr);
+	#else
+	istrstream val(aStr,strlen(aStr));
+	#endif
+	val >> x;
+	if (!val.eof() || val.fail())
+		return KErrGeneral;
+	aVal=x;
+	return KErrNone;
+	
+     /*T x;
+     istrstream val(aStr,strlen(aStr));
+     val >> x;
+     if (!val.eof() || val.fail())
+         return KErrGeneral;
+     aVal=x;
+     return KErrNone;*/
+ }
+ 
+ 
+ //enum for decompose flag
+ enum TDecomposeFlag
+ {
+     EUidPresent=1,
+     EVerPresent=2
+ };
+ 
+ /**
+ class for FileNameInfo
+ @internalComponent
+ @released
+ */
+ class TFileNameInfo
+ {
+     public:
+         TFileNameInfo(const char* aFileName, TBool aLookForUid);
+     public:
+         const char* iFileName;
+         TInt iTotalLength;
+         TInt iBaseLength;
+         TInt iExtPos;
+         TUint32 iUid3;
+         TUint32 iModuleVersion;
+         TUint32 iFlags;
+ };
+ 
+ extern char* NormaliseFileName(const char* aName);
+ 
+ 
+ 
+ #ifdef __LINUX__ 
+ // Case insensitive comparison functions are named differently on Linux
+ #define stricmp strcasecmp 
+ #define strnicmp strncasecmp 
+ 
+ // Convert the provided string to Uppercase
+ char* strupr(char *a);
+ #endif // __LINUX__
+ 
+ #endif // __H_UTL_H__
+ 
+ 
+ 
+ 
+ 
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/huffman.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,917 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of the License "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation of the Huffman technique for the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+#ifdef _MSC_VER
+	#pragma warning(disable: 4710) // function not inlined
+#endif
+
+#include <cassert>
+#include "huffman.h"
+#include "errorhandler.h"
+#include "farray.h"
+
+/**
+Function for overflow
+@internalComponent
+@released
+*/
+void TBitOutput::OverflowL()
+{
+}
+
+/**
+Construct a bit stream output object
+
+Following construction the bit stream is ready for writing bits, but will first call
+OverflowL() as the output buffer is 'full'. A derived class can detect this state as
+Ptr() will return null.
+*/
+TBitOutput::TBitOutput():iCode(0),iBits(-8),iPtr(0),iEnd(0)
+{
+}
+
+/**
+Construct a bit stream output object over a buffer
+
+Data will be written to the buffer until it is full, at which point OverflowL() will
+be called. This should handle the data and then can Set() again to reset the buffer
+for further output.
+	
+@param "TUint8* aBuf" The buffer for output
+@param "TInt aSize" The size of the buffer in bytes
+*/
+TBitOutput::TBitOutput(TUint8* aBuf,TInt aSize):iCode(0),iBits(-8),iPtr(aBuf),iEnd(aBuf+aSize)
+{
+}
+
+/**
+Write a huffman code
+
+This expects a huffman code value as generated by Huffman::Encoding()
+
+@param "TUint aHuffCode" The huffman code write to the stream
+@leave "OverflowL()" If the output buffer is full, OverflowL() is called
+*/
+void TBitOutput::HuffmanL(TUint aHuffCode)
+{
+	DoWriteL(aHuffCode<<(32-Huffman::KMaxCodeLength),aHuffCode>>Huffman::KMaxCodeLength);
+}
+
+/**
+Write an arbitrary integer value
+
+Write an unsigned integer using the number of bits specified. Only the low order bits of the
+value are written to the output, most significant bit first.
+
+@param "TUint aValue" The value to write to the stream
+@param "TUint aLength" The number of bits to output
+@leave "OverflowL()" If the output buffer is full, OverflowL() is called
+*/
+void TBitOutput::WriteL(TUint aValue,TInt aLength)
+{
+	if (aLength)
+		DoWriteL(aValue<<=32-aLength,aLength);
+}
+
+/**
+Pad the bitstream to the next byte boundary
+
+Terminate the bitstream by padding the last byte with the requested value.
+Following this operation the bitstream can continue to be used, the data will start at the
+next byte.
+
+@param "TUint aPadding" The bit value to pad the final byte with
+@leave "OverflowL()" If the output buffer is full, OverflowL() is called
+*/
+void TBitOutput::PadL(TUint aPadding)
+{
+	if (iBits>-8)
+		WriteL(aPadding?0xffffffffu:0,-iBits);
+}
+
+/**
+Write the higher order bits to the stream
+@internalComponent
+@released
+*/
+void TBitOutput::DoWriteL(TUint aBits,TInt aSize)
+{
+	if (aSize>25)
+	{
+		// cannot process >25 bits in a single pass so do the top 8 bits first
+		assert(aSize<=32);
+		DoWriteL(aBits&0xff000000u,8);
+		aBits<<=8;
+		aSize-=8;
+	}
+
+	TInt bits=iBits;
+	TUint code=iCode|(aBits>>(bits+8));
+	bits+=aSize;
+	if (bits>=0)
+	{
+		TUint8* p=iPtr;
+		do
+		{
+			if (p==iEnd)
+			{
+				// run out of buffer space so invoke the overflow handler
+				iPtr=p;
+				OverflowL();
+				p=iPtr;
+				assert(p!=iEnd);
+			}
+			*p++=TUint8(code>>24);
+			code<<=8;
+			bits-=8;
+		} while (bits>=0);
+		iPtr=p;
+	}
+	iCode=code;
+	iBits=bits;
+}
+
+/**
+Constructor for class TFileOutput
+@internalComponent
+@released
+*/
+TFileOutput::TFileOutput(std::ofstream & os):iOutStream(os)
+{
+	Set(iBuf,KBufSize);
+}
+
+/**
+Function to empty the buffer and reset the pointers
+@internalComponent
+@released
+*/
+void TFileOutput::OverflowL()
+{
+	FlushL();
+	Set(iBuf,KBufSize);
+}
+
+/**
+Function to write out the contents of the buffer
+@internalComponent
+@released
+*/
+void TFileOutput::FlushL()
+{
+	TInt len=Ptr()-iBuf;
+	if (len)
+	{
+		iOutStream.write(reinterpret_cast<char *>(iBuf), len); // write extended header
+		iDataCount += len;
+	}
+}
+
+/**
+Recursive function to calculate the code lengths from the node tree
+@internalComponent
+@released
+*/
+void HuffmanLengthsL(TUint32* aLengths,const TNode* aNodes,TInt aNode,TInt aLen)
+{
+	if (++aLen>Huffman::KMaxCodeLength)
+		throw E32ImageCompressionError(HUFFMANBUFFEROVERFLOWERROR);
+
+	const TNode& node=aNodes[aNode];
+	TUint x=node.iLeft;
+	if (x&KLeaf)
+		aLengths[x&~KLeaf]=aLen;
+	else
+		HuffmanLengthsL(aLengths,aNodes,x,aLen);
+	x=node.iRight;
+	if (x&KLeaf)
+		aLengths[x&~KLeaf]=aLen;
+	else
+		HuffmanLengthsL(aLengths,aNodes,x,aLen);
+}
+
+/**
+Function to Insert the {aCount,aValue} pair into the already sorted array of nodes
+@internalComponent
+@released
+*/
+void InsertInOrder(TNode* aNodes, TInt aSize, TUint aCount, TInt aVal)
+{
+	// Uses Insertion sort following a binary search...
+	TInt l=0, r=aSize;
+	while (l < r)
+	{
+		TInt m = (l+r) >> 1;
+		if (aNodes[m].iCount<aCount)
+			r=m;
+		else
+			l=m+1;
+	}
+	memmove(aNodes+l+1,aNodes+l,sizeof(TNode)*(aSize-l));
+	aNodes[l].iCount=aCount;
+	aNodes[l].iRight=TUint16(aVal);
+}
+
+/**
+Generate a Huffman code.
+
+This generates a Huffman code for a given set of code frequencies. The output is a table of
+code lengths which can be used to build canonincal encoding tables or decoding trees for use
+with the TBitInput and TBitOutput classes.
+
+Entries in the table with a frequency of zero will have a zero code length and thus no
+associated huffman encoding. If each such symbol should have a maximum length encoding, they
+must be given at least a frequency of 1.
+
+For an alphabet of n symbols, this algorithm has a transient memory overhead of 8n, and a
+time complexity of O(n*log(n)).
+
+@param "const TUint32 aFrequency[]" The table of code frequencies
+@param "TInt aNumCodes" The number of codes in the table
+@param "TUint32 aHuffman[]" The table for the output code-length table. This must be the same
+size as the frequency table, and can safely be the same table
+
+@leave "KErrNoMemory" If memory used for code generation cannot be allocated
+@panic "USER ???" If the number of codes exceeds Huffman::KMaxCodes
+*/
+void Huffman::HuffmanL(const TUint32 aFrequency[],TInt aNumCodes,TUint32 aHuffman[])
+{
+	if(TUint(aNumCodes)>TUint(KMaxCodes))
+		throw E32ImageCompressionError(HUFFMANTOOMANYCODESERROR);
+
+	// Sort the values into decreasing order of frequency
+	TNode* nodes = new TNode[aNumCodes];
+
+	TInt lCount=0;
+
+	for (TInt ii=0;ii<aNumCodes;++ii)
+	{
+		TInt c=aFrequency[ii];
+		if (c!=0)
+			InsertInOrder(nodes,lCount++,c,ii|KLeaf);
+	}
+
+	// default code length is zero
+	memset(aHuffman,0,aNumCodes*sizeof(TUint32));
+
+	if (lCount==0)
+	{
+		// no codes with frequency>0. No code has a length
+	}
+	else if (lCount==1)
+	{
+		// special case for a single value (always encode as "0")
+		aHuffman[nodes[0].iRight&~KLeaf]=1;
+	}
+	else
+	{
+		// Huffman algorithm: pair off least frequent nodes and reorder
+		do
+		{
+			--lCount;
+			TUint c=nodes[lCount].iCount + nodes[lCount-1].iCount;
+			nodes[lCount].iLeft=nodes[lCount-1].iRight;
+			// re-order the leaves now to reflect new combined frequency 'c'
+			InsertInOrder(nodes,lCount-1,c,lCount);
+		} while (lCount>1);
+		// generate code lengths in aHuffman[]
+		HuffmanLengthsL(aHuffman,nodes,1,0);
+	}
+
+	delete [] nodes;
+
+	if(!IsValid(aHuffman,aNumCodes))
+		throw E32ImageCompressionError(HUFFMANINVALIDCODINGERROR);
+}
+
+/**
+Validate a Huffman encoding
+
+This verifies that a Huffman coding described by the code lengths is valid. In particular,
+it ensures that no code exceeds the maximum length and that it is possible to generate a
+canonical coding for the specified lengths.
+	
+@param "const TUint32 aHuffman[]" The table of code lengths as generated by Huffman::HuffmanL()
+@param "TInt aNumCodes" The number of codes in the table
+
+@return True if the code is valid, otherwise false
+*/
+TBool Huffman::IsValid(const TUint32 aHuffman[],TInt aNumCodes)
+{
+	// The code is valid if one of the following holds:
+	// (a) the code exactly fills the 'code space'
+	// (b) there is only a single symbol with code length 1
+	// (c) there are no encoded symbols
+	//
+	TUint remain=1<<KMaxCodeLength;
+	TInt totlen=0;
+	for (const TUint32* p=aHuffman+aNumCodes; p>aHuffman;)
+	{
+		TInt len=*--p;
+		if (len>0)
+		{
+			totlen+=len;
+			if (len>KMaxCodeLength)
+				return 0;
+
+			TUint c=1<<(KMaxCodeLength-len);
+			if (c>remain)
+				return 0;
+
+			remain-=c;
+		}
+	}
+
+	return remain==0 || totlen<=1;
+}
+
+/**
+Create a canonical Huffman encoding table
+
+This generates the huffman codes used by TBitOutput::HuffmanL() to write huffman encoded data.
+The input is table of code lengths, as generated by Huffman::HuffmanL() and must represent a
+valid huffman code.
+	
+@param "const TUint32 aHuffman[]" The table of code lengths as generated by Huffman::HuffmanL()
+@param "TInt aNumCodes" The number of codes in the table
+@param "TUint32 aEncodeTable[]" The table for the output huffman codes. This must be the same
+size as the code-length table, and can safely be the same table.
+
+@panic "USER ???" If the provided code is not a valid Huffman coding
+	
+@see IsValid()
+@see HuffmanL()
+*/
+void Huffman::Encoding(const TUint32 aHuffman[],TInt aNumCodes,TUint32 aEncodeTable[])
+{
+	if (!IsValid(aHuffman,aNumCodes)) 
+		throw E32ImageCompressionError(HUFFMANINVALIDCODINGERROR);
+
+	TFixedArray<TInt,KMaxCodeLength> lenCount;
+	lenCount.Reset();
+
+	TInt ii;
+	for (ii=0;ii<aNumCodes;++ii)
+	{
+		TInt len=aHuffman[ii]-1;
+		if (len>=0)
+			++lenCount[len];
+	}
+
+	TFixedArray<TUint,KMaxCodeLength> nextCode;
+	TUint code=0;
+	for (ii=0;ii<KMaxCodeLength;++ii)
+	{
+		code<<=1;
+		nextCode[ii]=code;
+		code+=lenCount[ii];
+	}
+
+	for (ii=0;ii<aNumCodes;++ii)
+	{
+		TInt len=aHuffman[ii];
+		if (len==0)
+			aEncodeTable[ii]=0;
+		else
+		{
+			aEncodeTable[ii] = (nextCode[len-1]<<(KMaxCodeLength-len))|(len<<KMaxCodeLength);
+			++nextCode[len-1];
+		}
+	}
+}
+
+/**
+The encoding table for the externalised code
+@internalComponent
+@released
+*/
+const TUint32 HuffmanEncoding[]=
+{
+	0x10000000,
+	0x1c000000,
+	0x12000000,
+	0x1d000000,
+	0x26000000,
+	0x26800000,
+	0x2f000000,
+	0x37400000,
+	0x37600000,
+	0x37800000,
+	0x3fa00000,
+	0x3fb00000,
+	0x3fc00000,
+	0x3fd00000,
+	0x47e00000,
+	0x47e80000,
+	0x47f00000,
+	0x4ff80000,
+	0x57fc0000,
+	0x5ffe0000,
+	0x67ff0000,
+	0x77ff8000,
+	0x7fffa000,
+	0x7fffb000,
+	0x7fffc000,
+	0x7fffd000,
+	0x7fffe000,
+	0x87fff000,
+	0x87fff800
+};
+
+/**
+Function to encode 0a as '0' and 0b as '1', return number of symbols created
+@internalComponent
+@released
+*/
+void EncodeRunLengthL(TBitOutput& aOutput, TInt aLength)
+{
+	if (aLength>0)
+	{
+		EncodeRunLengthL(aOutput,(aLength-1)>>1);
+		aOutput.HuffmanL(HuffmanEncoding[1-(aLength&1)]);
+	}
+}
+
+/**
+Store a canonical huffman encoding in compact form
+
+As the encoding is canonical, only the code lengths of each code needs to be saved.
+
+Due to the nature of code length tables, these can usually be stored very compactly by
+encoding the encoding itself, hence the use of the bit output stream.
+	
+@param "TBitOutput& aOutput" The output stream for the encoding
+@param "const TUint32 aHuffman[]" The table of code lengths as generated by Huffman::HuffmanL()
+@param "TInt aNumCodes" The number of huffman codes in the table
+
+@leave "TBitOutput::HuffmanL()"
+*/
+void Huffman::ExternalizeL(TBitOutput& aOutput,const TUint32 aHuffman[],TInt aNumCodes)
+{
+	// We assume that the code length table is generated by the huffman generator,
+	// in which case the maxmimum code length is 27 bits.
+	//
+	// We apply three transformations to the data:
+	// 1. the data goes through a move-to-front coder
+	// 2. apply a rle-0 coder which replace runs of '0' with streams of '0a' and '0b'
+	// 3. encode the result using a predefined (average) huffman coding
+	//
+	// This can be done in a single pass over the data, avoiding the need for additional
+	// memory.
+	//
+	// initialise the list for the MTF coder
+	TFixedArray<TUint8,Huffman::KMetaCodes> list;
+	TInt i;
+	for (i=0;i<list.Count();++i)
+		list[i]=TUint8(i);
+	TInt last=0;
+
+	TInt rl=0;
+	const TUint32* p32=aHuffman;
+	const TUint32* e32=p32+aNumCodes;
+	while (p32<e32)
+	{
+		TInt c=*p32++;
+		if (c==last)
+			++rl;	// repeat of last symbol
+		else
+		{
+			// encode run-length
+			EncodeRunLengthL(aOutput,rl);
+			rl=0;
+			// find code in MTF list
+			TInt j;
+			for (j=1;list[j]!=c;++j)
+				;
+			// store this code
+			aOutput.HuffmanL(HuffmanEncoding[j+1]);
+			// adjust list for MTF algorithm
+			while (--j>0)
+				list[j+1]=list[j];
+			list[1]=TUint8(last);
+			last=c;
+		}
+	}
+	// encod any remaining run-length
+	EncodeRunLengthL(aOutput,rl);
+}
+
+const TInt KHuffTerminate=0x0001;
+const TUint32 KBranch1=sizeof(TUint32)<<16;
+
+/**
+Function to write the subtree below aPtr and return the head
+*/
+TUint32* HuffmanSubTree(TUint32* aPtr,const TUint32* aValue,TUint32** aLevel)
+{
+	TUint32* l=*aLevel++;
+	if (l>aValue)
+	{
+		TUint32* sub0=HuffmanSubTree(aPtr,aValue,aLevel);		// 0-tree first
+		aPtr=HuffmanSubTree(sub0,aValue-(aPtr-sub0)-1,aLevel);	// 1-tree
+		TInt branch0=(TUint8*)sub0-(TUint8*)(aPtr-1);
+		*--aPtr=KBranch1|branch0;
+	}
+	else if (l==aValue)
+	{
+		TUint term0=*aValue--;						// 0-term
+		aPtr=HuffmanSubTree(aPtr,aValue,aLevel);	// 1-tree
+		*--aPtr=KBranch1|(term0>>16);
+	}
+	else	// l<iNext
+	{
+		TUint term0=*aValue--;						// 0-term
+		TUint term1=*aValue--;
+		*--aPtr=(term1>>16<<16)|(term0>>16);
+	}
+	return aPtr;
+}
+
+/**
+Create a canonical Huffman decoding tree
+
+This generates the huffman decoding tree used by TBitInput::HuffmanL() to read huffman
+encoded data. The input is table of code lengths, as generated by Huffman::HuffmanL()
+and must represent a valid huffman code.
+	
+@param "const TUint32 aHuffman[]" The table of code lengths as generated by Huffman::HuffmanL()
+@param "TInt aNumCodes" The number of codes in the table
+@param "TUint32 aDecodeTree[]" The space for the decoding tree. This must be the same
+size as the code-length table, and can safely be the same memory
+@param "TInt aSymbolBase" the base value for the output 'symbols' from the decoding tree, by default
+this is zero.
+
+@panic "USER ???" If the provided code is not a valid Huffman coding
+
+@see IsValid()
+@see HuffmanL()
+*/
+void Huffman::Decoding(const TUint32 aHuffman[],TInt aNumCodes,TUint32 aDecodeTree[],TInt aSymbolBase)
+{
+	if(!IsValid(aHuffman,aNumCodes))
+		throw E32ImageCompressionError(HUFFMANINVALIDCODINGERROR);
+
+	TFixedArray<TInt,KMaxCodeLength> counts;
+	counts.Reset();
+	TInt codes=0;
+	TInt ii;
+	for (ii=0;ii<aNumCodes;++ii)
+	{
+		TInt len=aHuffman[ii];
+		aDecodeTree[ii]=len;
+		if (--len>=0)
+		{
+			++counts[len];
+			++codes;
+		}
+	}
+
+	TFixedArray<TUint32*,KMaxCodeLength> level;
+	TUint32* lit=aDecodeTree+codes;
+	for (ii=0;ii<KMaxCodeLength;++ii)
+	{
+		level[ii]=lit;
+		lit-=counts[ii];
+	}
+	
+	aSymbolBase=(aSymbolBase<<17)+(KHuffTerminate<<16);
+	for (ii=0;ii<aNumCodes;++ii)
+	{
+		TUint len=TUint8(aDecodeTree[ii]);
+		if (len)
+			*--level[len-1]|=(ii<<17)+aSymbolBase;
+	}
+	
+	if (codes==1)	// codes==1 special case: tree isn't complete
+	{
+		TUint term=aDecodeTree[0]>>16;
+		aDecodeTree[0]=term|(term<<16); // 0- and 1-terminate at root
+	}
+	else if (codes>1)
+		HuffmanSubTree(aDecodeTree+codes-1,aDecodeTree+codes-1,&level[0]);
+}
+
+/**
+The decoding tree for the externalised code
+*/
+const TUint32 HuffmanDecoding[]=
+{
+	0x0004006c,
+	0x00040064,
+	0x0004005c,
+	0x00040050,
+	0x00040044,
+	0x0004003c,
+	0x00040034,
+	0x00040021,
+	0x00040023,
+	0x00040025,
+	0x00040027,
+	0x00040029,
+	0x00040014,
+	0x0004000c,
+	0x00040035,
+	0x00390037,
+	0x00330031,
+	0x0004002b,
+	0x002f002d,
+	0x001f001d,
+	0x001b0019,
+	0x00040013,
+	0x00170015,
+	0x0004000d,
+	0x0011000f,
+	0x000b0009,
+	0x00070003,
+	0x00050001
+};
+
+
+/**
+Restore a canonical huffman encoding from a bit stream
+
+The encoding must have been stored using Huffman::ExternalizeL(). The resulting
+code-length table can be used to create an encoding table using Huffman::Encoding()
+or a decoding tree using Huffman::Decoding().
+	
+@param "TBitInput& aInput" The input stream with the encoding
+@param "TUint32 aHuffman[]" The internalized code-length table is placed here
+@param "TInt aNumCodes" The number of huffman codes in the table
+
+@leave "TBitInput::HuffmanL()"
+
+@see ExternalizeL()
+See ExternalizeL for a description of the format
+*/
+void Huffman::InternalizeL(TBitInput& aInput,TUint32 aHuffman[],TInt aNumCodes)
+{
+	// initialise move-to-front list
+	TFixedArray<TUint8,Huffman::KMetaCodes> list;
+	for (TInt i=0;i<list.Count();++i)
+		list[i]=TUint8(i);
+
+	TInt last=0;
+	// extract codes, reverse rle-0 and mtf encoding in one pass
+	TUint32* p=aHuffman;
+	const TUint32* end=aHuffman+aNumCodes;
+	TInt rl=0;
+	while (p+rl<end)
+	{
+		TInt c=aInput.HuffmanL(HuffmanDecoding);
+		if (c<2)
+		{
+			// one of the zero codes used by RLE-0
+			// update he run-length
+			rl+=rl+c+1;
+		}
+		else
+		{
+			while (rl>0)
+			{
+				if (p>end)
+				{
+					throw E32ImageCompressionError(HUFFMANINVALIDCODINGERROR);
+				}
+				*p++=last;
+				--rl;
+			}
+			--c;
+			list[0]=TUint8(last);
+			last=list[c];
+			
+			memmove((void * const)&list[1],(const void * const)&list[0],(size_t)c);
+			if (p>end)
+			{
+				throw E32ImageCompressionError(HUFFMANINVALIDCODINGERROR);
+			}
+			*p++=last;
+		}
+	}
+	while (rl>0)
+	{
+		if (p>end)
+		{
+			throw E32ImageCompressionError(HUFFMANINVALIDCODINGERROR);
+		}
+		*p++=last;
+		--rl;
+	}
+}
+
+/**
+bit-stream input class
+Reverse the byte-order of a 32 bit value
+This generates optimal ARM code (4 instructions)
+*/
+inline TUint reverse(TUint aVal)
+{
+	TUint v=(aVal<<16)|(aVal>>16);
+	v^=aVal;
+	v&=0xff00ffff;
+	aVal=(aVal>>8)|(aVal<<24);
+	return aVal^(v>>8);
+}
+
+/**
+Construct a bit stream input object
+
+Following construction the bit stream is ready for reading bits, but will
+immediately call UnderflowL() as the input buffer is empty.
+*/
+TBitInput::TBitInput():iCount(0),iRemain(0)
+{
+
+}
+
+/**
+Construct a bit stream input object over a buffer
+
+Following construction the bit stream is ready for reading bits from the specified buffer.
+
+@param "const TUint8* aPtr" The address of the buffer containing the bit stream
+@param "TInt aLength" The length of the bitstream in bits
+@param "TInt aOffset" The bit offset from the start of the buffer to the bit stream (defaults to zero)
+*/
+TBitInput::TBitInput(const TUint8* aPtr, TInt aLength, TInt aOffset)
+{
+	Set(aPtr,aLength,aOffset);
+}
+
+/**
+Set the memory buffer to use for input.
+
+Bits will be read from this buffer until it is empty, at which point UnderflowL() will be called.
+	
+@param "const TUint8* aPtr" The address of the buffer containing the bit stream
+@param "TInt aLength" The length of the bitstream in bits
+@param "TInt aOffset" The bit offset from the start of the buffer to the bit stream (defaults to zero)
+*/
+void TBitInput::Set(const TUint8* aPtr, TInt aLength, TInt aOffset)
+{
+	TUint p=(TUint)aPtr;
+	p+=aOffset>>3;			// nearest byte to the specified bit offset
+	aOffset&=7;				// bit offset within the byte
+	const TUint32* ptr=(const TUint32*)(p&~3);	// word containing this byte
+	aOffset+=(p&3)<<3;		// bit offset within the word
+	if (aLength==0)
+		iCount=0;
+	else
+	{
+		// read the first few bits of the stream
+		iBits=reverse(*ptr++)<<aOffset;
+		aOffset=32-aOffset;
+		aLength-=aOffset;
+		if (aLength<0)
+			aOffset+=aLength;
+		iCount=aOffset;
+	}
+	iRemain=aLength;
+	iPtr=ptr;
+}
+
+#ifndef __HUFFMAN_MACHINE_CODED__
+
+/**
+Read a single bit from the input
+
+Return the next bit in the input stream. This will call UnderflowL() if there are no more
+bits available.
+
+@return The next bit in the stream
+
+@leave "UnderflowL()" It the bit stream is exhausted more UnderflowL is called to get more
+data
+*/
+TUint TBitInput::ReadL()
+{
+	TInt c=iCount;
+	TUint bits=iBits;
+	if (--c<0)
+		return ReadL(1);
+	iCount=c;
+	iBits=bits<<1;
+	return bits>>31;
+}
+
+/**
+Read a multi-bit value from the input
+
+Return the next few bits as an unsigned integer. The last bit read is the least significant
+bit of the returned value, and the value is zero extended to return a 32-bit result.
+
+A read of zero bits will always reaturn zero.
+	
+This will call UnderflowL() if there are not enough bits available.
+
+@param "TInt aSize" The number of bits to read
+
+@return The bits read from the stream
+
+@leave "UnderflowL()" It the bit stream is exhausted more UnderflowL is called to get more
+data
+*/
+TUint TBitInput::ReadL(TInt aSize)
+{
+	if (!aSize)
+		return 0;
+	TUint val=0;
+	TUint bits=iBits;
+	iCount-=aSize;
+	while (iCount<0)
+	{
+		// need more bits
+#ifdef __CPU_X86
+		// X86 does not allow shift-by-32
+		if (iCount+aSize!=0)
+			val|=bits>>(32-(iCount+aSize))<<(-iCount);	// scrub low order bits
+#else
+		val|=bits>>(32-(iCount+aSize))<<(-iCount);	// scrub low order bits
+#endif
+		aSize=-iCount;	// bits still required
+		if (iRemain>0)
+		{
+			bits=reverse(*iPtr++);
+			iCount+=32;
+			iRemain-=32;
+			if (iRemain<0)
+				iCount+=iRemain;
+		}
+		else
+		{
+			UnderflowL();
+			bits=iBits;
+			iCount-=aSize;
+		}
+	}
+
+#ifdef __CPU_X86
+	// X86 does not allow shift-by-32
+	iBits=aSize==32?0:bits<<aSize;
+#else
+	iBits=bits<<aSize;
+#endif
+
+	return val|(bits>>(32-aSize));
+}
+
+/**
+Read and decode a Huffman Code
+
+Interpret the next bits in the input as a Huffman code in the specified decoding.
+The decoding tree should be the output from Huffman::Decoding().
+
+@param "const TUint32* aTree" The huffman decoding tree
+
+@return The symbol that was decoded
+	
+@leave "UnderflowL()" It the bit stream is exhausted more UnderflowL is called to get more
+data
+*/
+TUint TBitInput::HuffmanL(const TUint32* aTree)
+{
+	TUint huff=0;
+	do
+	{
+		aTree=(const TUint32*)(((TUint8*)aTree)+(huff>>16));
+		huff=*aTree;
+		if (ReadL()==0)
+			huff<<=16;
+	} while ((huff&0x10000u)==0);
+	
+	return huff>>17;
+}
+
+#endif
+
+/**
+Handle an empty input buffer
+
+This virtual function is called when the input buffer is empty and more bits are required.
+It should reset the input buffer with more data using Set().
+
+A derived class can replace this to read the data from a file (for example) before reseting
+the input buffer.
+
+@leave "KErrUnderflow" The default implementation leaves
+*/
+void TBitInput::UnderflowL()
+{
+	throw E32ImageCompressionError(HUFFMANBUFFEROVERFLOWERROR);
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/huffman.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,225 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Huffman Class for deflate and inflate
+// @internalComponent
+// @released
+// 
+//
+
+#ifndef __HUFFMAN_H__
+#define __HUFFMAN_H__
+
+#include "e32defwrap.h"
+#include <fstream>
+
+/**
+class Bit Output stream
+@internalComponent
+@released
+*/
+class TBitOutput
+{
+	public:
+		TBitOutput();
+		TBitOutput(TUint8* aBuf,TInt aSize);
+		inline void Set(TUint8* aBuf,TInt aSize);
+		inline const TUint8* Ptr() const;
+		inline TInt BufferedBits() const;
+		void WriteL(TUint aValue, TInt aLength);
+		void HuffmanL(TUint aHuffCode);
+		void PadL(TUint aPadding);
+	private:
+		void DoWriteL(TUint aBits, TInt aSize);
+		virtual void OverflowL();
+	private:
+		TUint iCode;		// code in production
+		TInt iBits;
+		TUint8* iPtr;
+		TUint8* iEnd;
+};
+
+/*
+Set the memory buffer to use for output
+
+Data will be written to this buffer until it is full, at which point OverflowL() will be
+called. This should handle the data and then can Set() again to reset the buffer for further
+output.
+	
+@param "TUint8* aBuf" The buffer for output
+@param "TInt aSize" The size of the buffer in bytes
+@internalComponent
+@released
+*/
+inline void TBitOutput::Set(TUint8* aBuf,TInt aSize)
+{
+	iPtr=aBuf;
+	iEnd=aBuf+aSize;
+}
+
+/*
+Get the current write position in the output buffer
+
+In conjunction with the address of the buffer, which should be known to the caller, this
+describes the data in the bitstream.
+@internalComponent
+@released
+*/
+inline const TUint8* TBitOutput::Ptr() const
+{
+	return iPtr;
+}
+
+/*
+Get the number of bits that are buffered
+
+This reports the number of bits that have not yet been written into the output buffer.It will
+always lie in the range 0..7. Use PadL() to pad the data out to the next byte and write it to
+the buffer.
+@internalComponent
+@released
+*/
+inline TInt TBitOutput::BufferedBits() const
+{
+	return iBits+8;
+}
+
+/**
+This class is derived from TBitOutput
+@internalComponent
+@released
+*/
+class TFileOutput : public TBitOutput
+{
+	enum {KBufSize=0x1000};
+	public:
+		TFileOutput(std::ofstream & os);
+		void FlushL();
+		TUint32 iDataCount; 
+	private:
+		void OverflowL();
+	private:
+		std::ofstream & iOutStream;
+		TUint8 iBuf[KBufSize];
+};
+
+/**
+Class for Bit input stream.
+Good for reading bit streams for packed, compressed or huffman data algorithms.
+@since 8.0
+@library euser.lib
+@internalComponent
+@released
+*/
+class TBitInput
+{
+	public:
+		TBitInput();
+		TBitInput(const TUint8* aPtr, TInt aLength, TInt aOffset=0);
+		void Set(const TUint8* aPtr, TInt aLength, TInt aOffset=0);
+		TUint ReadL();
+		TUint ReadL(TInt aSize);
+		TUint HuffmanL(const TUint32* aTree);
+	private:
+		virtual void UnderflowL();
+	private:
+		TInt iCount;
+		TUint iBits;
+		TInt iRemain;
+		const TUint32* iPtr;
+};
+
+/**
+Class derived from TBitInput
+@internalComponent
+@released
+*/
+class TFileInput : public TBitInput
+{
+	public:
+		TFileInput(unsigned char* source,int size);
+		~TFileInput();
+	private:
+		void UnderflowL();
+	private:
+		TUint8* iReadBuf;
+		TInt iSize;
+};
+
+/*
+Class for Huffman code toolkit.
+
+This class builds a huffman encoding from a frequency table and builds a decoding tree from a
+code-lengths table.
+
+The encoding generated is based on the rule that given two symbols s1 and s2, with code
+length l1 and l2, and huffman codes h1 and h2:
+	if l1<l2 then h1<h2 when compared lexicographically
+	if l1==l2 and s1<s2 then h1<h2 ditto
+
+This allows the encoding to be stored compactly as a table of code lengths
+
+@since 8.0
+@library euser.lib
+@internalComponent
+@released
+*/
+class Huffman
+{
+	public:
+		enum {KMaxCodeLength=27};
+		enum {KMetaCodes=KMaxCodeLength+1};
+		enum {KMaxCodes=0x8000};
+	public:
+		static void HuffmanL(const TUint32 aFrequency[],TInt aNumCodes,TUint32 aHuffman[]);
+		static void Encoding(const TUint32 aHuffman[],TInt aNumCodes,TUint32 aEncodeTable[]);
+		static TBool IsValid(const TUint32 aHuffman[],TInt aNumCodes);
+		static void ExternalizeL(TBitOutput& aOutput,const TUint32 aHuffman[],TInt aNumCodes);
+		static void Decoding(const TUint32 aHuffman[],TInt aNumCodes,TUint32 aDecodeTree[],TInt aSymbolBase=0);
+		static void InternalizeL(TBitInput& aInput,TUint32 aHuffman[],TInt aNumCodes);
+};
+
+// local definitions used for Huffman code generation
+typedef TUint16 THuff;		/** @internal */
+const THuff KLeaf=0x8000;	/** @internal */
+struct TNode
+/** @internal */
+{
+	TUint iCount;
+	THuff iLeft;
+	THuff iRight;
+};
+
+const TInt KDeflateLengthMag=8;
+const TInt KDeflateDistanceMag=12;
+
+/**
+class for TEncoding
+@internalComponent
+@released
+*/
+class TEncoding
+{
+	public:
+		enum {ELiterals=256,ELengths=(KDeflateLengthMag-1)*4,ESpecials=1,EDistances=(KDeflateDistanceMag-1)*4};
+		enum {ELitLens=ELiterals+ELengths+ESpecials};
+		enum {EEos=ELiterals+ELengths};
+	public:
+		TUint32 iLitLen[ELitLens];
+		TUint32 iDistance[EDistances];
+};
+
+const TInt KDeflationCodes=TEncoding::ELitLens+TEncoding::EDistances;
+
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/imgdump.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,735 @@
+// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation of the e32 image dump for the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+#define __REFERENCE_CAPABILITY_NAMES__
+
+#include "e32imagefile.h"
+#include "pl_common.h"
+#include <string.h>
+#include <stdarg.h>
+#include <stdio.h>
+
+#ifdef __LINUX__ 
+    #define VSNPRINTF vsnprintf
+#else 
+    #define VSNPRINTF _vsnprintf
+#endif 
+
+using std::cout;
+
+const TInt KMaxStringLength=0x400;
+
+/**
+Variadic Function to print string.
+
+@internalComponent
+@released
+
+@param aFmt
+Formatted string.
+*/
+void PrintString(const char *aFmt,...)
+{
+	TText imageText[KMaxStringLength];
+	va_list list;
+	va_start(list,aFmt);
+	VSNPRINTF((char *)imageText,KMaxStringLength,aFmt,list);
+	va_end(list);
+	cout << imageText;
+
+	cout.flush();
+}
+
+/**
+Function to set priority.
+
+@internalComponent
+@released
+
+@param aPri
+Priority Type passed in
+@param aStr
+The priority value corresponding to the appropriate priority type
+*/
+void PriorityToStr(TProcessPriority aPri, char *aStr)
+{
+	if (aPri==EPrioritySupervisor)
+		strcpy(aStr,"Supervisor");
+
+	else if (aPri>EPriorityRealTimeServer)
+		sprintf(aStr, "RealTime+%d", aPri-EPriorityRealTimeServer);
+	else if (aPri==EPriorityRealTimeServer)
+		strcpy(aStr,"RealTime");
+
+	else if (aPri>EPriorityFileServer)
+		sprintf(aStr, "FileServer+%d", aPri-EPriorityFileServer);
+	else if (aPri==EPriorityFileServer)
+		strcpy(aStr,"FileServer");
+
+	else if (aPri>EPriorityWindowServer)
+		sprintf(aStr, "WindowServer+%d", aPri-EPriorityWindowServer);
+	else if (aPri==EPriorityWindowServer)
+		strcpy(aStr,"WindowServer");
+
+	else if (aPri>EPriorityHigh)
+		sprintf(aStr, "High+%d", aPri-EPriorityHigh);
+	else if (aPri==EPriorityHigh)
+		strcpy(aStr,"High");
+
+	else if (aPri>EPriorityForeground)
+		sprintf(aStr, "Foreground+%d", aPri-EPriorityForeground);
+	else if (aPri==EPriorityForeground)
+		strcpy(aStr,"Foreground");
+
+	else if (aPri>EPriorityBackground)
+		sprintf(aStr, "Background+%d", aPri-EPriorityBackground);
+	else if (aPri==EPriorityBackground)
+		strcpy(aStr,"Background");
+
+	else if (aPri>EPriorityLow)
+		sprintf(aStr, "Low+%d", aPri-EPriorityLow);
+	else if (aPri==EPriorityLow)
+		strcpy(aStr,"Low");
+
+	else
+		sprintf(aStr, "Illegal (%d)", aPri);
+}
+
+/**
+Function to dump e32 image.
+
+@internalComponent
+@released
+
+@param aFileName
+Name of the E32image to be dumped.
+@param aDumpFlags
+sub options passed to the 'dump' option
+*/
+void E32ImageFile::Dump(TText *aFileName,TInt aDumpFlags)
+{
+	PrintString("E32ImageFile '%s'\n", aFileName);
+	DumpHeader(aDumpFlags);
+	DumpData(aDumpFlags);
+}
+
+/**
+Function to dump e32 image header.
+
+@internalComponent
+@released
+
+@param aDumpFlags
+The flags set based on the sub options provided to the program.
+*/
+void E32ImageFile::DumpHeader(TInt aDumpFlags)
+{
+	TUint flags = iOrigHdr->iFlags;
+	TUint abi = E32ImageHeader::ABIFromFlags(flags);
+	TUint hdrfmt = E32ImageHeader::HdrFmtFromFlags(flags);
+	TUint impfmt = E32ImageHeader::ImpFmtFromFlags(flags);
+	TUint ept = E32ImageHeader::EptFromFlags(flags);
+	TBool isARM = EFalse;
+
+	if(aDumpFlags&EDumpHeader)
+	{
+		PrintString("V%d.%02d(%03d)", iOrigHdr->iToolsVersion.iMajor,iOrigHdr->iToolsVersion.iMinor,iOrigHdr->iToolsVersion.iBuild);
+		PrintString("\tTime Stamp: %08x,%08x\n", iOrigHdr->iTimeHi, iOrigHdr->iTimeLo);
+		char sig[5];
+		memcpy(sig, (const char*)&iOrigHdr->iSignature, 4);
+		sig[4]=0;
+		PrintString(sig);
+		if (iOrigHdr->iFlags&KImageDll)
+			PrintString(" Dll for ");
+		else
+			PrintString(" Exe for ");
+		switch (iOrigHdr->CpuIdentifier())
+		{
+		case ECpuX86:
+			PrintString("X86 CPU\n");
+			break;
+		case ECpuArmV4:
+			isARM = ETrue;
+			PrintString("ARMV4 CPU\n");
+			break;
+		case ECpuArmV5:
+			isARM = ETrue;
+			PrintString("ARMV5 CPU\n");
+			break;
+		case ECpuMCore:
+			PrintString("M*Core CPU\n");
+			break;
+		case ECpuUnknown:
+			PrintString("Unknown CPU\n");
+			break;
+		default:
+			PrintString("something or other\n");
+			break;
+		}
+		
+		PrintString("Flags:\t%08x\n", flags);
+
+		if (!(flags & KImageDll))
+		{
+			char str[80];
+			PriorityToStr(iOrigHdr->ProcessPriority(), str);
+			PrintString("Priority %s\n", str);
+			if (flags & KImageFixedAddressExe)
+				PrintString("Fixed process\n");
+		}
+		
+		if (flags & KImageNoCallEntryPoint)
+			PrintString("Entry points are not called\n");
+		
+		PrintString("Image header is format %d\n", hdrfmt>>24);
+		TUint compression = iOrigHdr->CompressionType();
+		
+		switch (compression)
+		{
+		case KFormatNotCompressed:
+			PrintString("Image is not compressed\n");
+			break;
+		case KUidCompressionDeflate:
+			PrintString("Image is compressed using the DEFLATE algorithm\n");
+			break;
+		case KUidCompressionBytePair:
+			PrintString("Image is compressed using the BYTEPAIR algorithm\n");
+			break;
+		default:
+			PrintString("Image compression type UNKNOWN (%08x)\n", compression);
+		}
+		
+		if (compression)
+		{
+			PrintString("Uncompressed size %08x\n", iOrigHdr->UncompressedFileSize());
+		}
+
+		TUint FPU = flags & KImageHWFloatMask;
+
+		if (FPU == KImageHWFloat_None)
+			PrintString("Image FPU support : Soft VFP\n");
+		else if (FPU == KImageHWFloat_VFPv2) 
+			PrintString("Image FPU support : VFPv2\n");
+		else
+			PrintString("Image FPU support : Unknown\n");
+
+		// Code paging.
+
+		if (flags & KImageCodeUnpaged)
+		{
+			PrintString("Code Paging : Unpaged\n");
+		}
+		else if (flags & KImageCodePaged)
+		{
+			PrintString("Code Paging : Paged\n");
+		}
+		else
+		{
+			PrintString("Code Paging : Default\n");
+		}
+
+		// Data paging.
+
+		if (flags & KImageDataUnpaged)
+		{
+			PrintString("Data Paging : Unpaged\n");
+		}
+		else if (flags & KImageDataPaged)
+		{
+			PrintString("Data Paging : Paged\n");
+		}
+		else
+		{
+			PrintString("Data Paging : Default\n");
+		}
+
+		if (iOrigHdr->iFlags & KImageDebuggable)
+		{
+			PrintString("Debuggable : True\n");
+		}
+		else
+		{
+			PrintString("Debuggable : False\n");
+		}
+		if (iOrigHdr->iFlags & KImageSMPSafe)
+		{
+			PrintString("SMP Safe : True\n");
+		}
+		else
+		{
+			PrintString("SMP Safe : False\n");
+		}
+	}
+
+	if (hdrfmt >= KImageHdrFmt_V && (aDumpFlags&(EDumpHeader|EDumpSecurityInfo)))
+	{
+		//
+		// Important. Don't change output format of following security info
+		// because this is relied on by used by "Symbian Signed".
+		//
+		E32ImageHeaderV* v = iHdr;
+		PrintString("Secure ID: %08x\n", v->iS.iSecureId);
+		PrintString("Vendor ID: %08x\n", v->iS.iVendorId);
+		PrintString("Capabilities: %08x %08x\n", v->iS.iCaps[1], v->iS.iCaps[0]);
+		if(aDumpFlags&EDumpSecurityInfo)
+		{
+			TInt i;
+			for(i=0; i<ECapability_Limit; i++)
+				if(v->iS.iCaps[i>>5]&(1<<(i&31)))
+					PrintString("              %s\n", CapabilityNames[i]);
+			PrintString("\n");
+		}
+	}
+
+	if(aDumpFlags&EDumpHeader)
+	{
+		if (hdrfmt >= KImageHdrFmt_V)
+		{
+			E32ImageHeaderV* v = iHdr;
+			TUint32 xd = v->iExceptionDescriptor;
+			if ((xd & 1) && (xd != 0xffffffffu))
+			{
+				xd &= ~1;
+				PrintString("Exception Descriptor Offset:  %08x\n", v->iExceptionDescriptor);
+				TExceptionDescriptor * aED = (TExceptionDescriptor * )(iData + v->iCodeOffset + xd);
+				PrintString("Exception Index Table Base: %08x\n", aED->iExIdxBase);
+				PrintString("Exception Index Table Limit: %08x\n", aED->iExIdxLimit);
+				PrintString("RO Segment Base: %08x\n", aED->iROSegmentBase);
+				PrintString("RO Segment Limit: %08x\n", aED->iROSegmentLimit);
+			}
+			else
+				PrintString("No Exception Descriptor\n");
+
+			PrintString("Export Description: Size=%03x, Type=%02x\n", v->iExportDescSize, v->iExportDescType);
+			
+			if (v->iExportDescType != KImageHdr_ExpD_NoHoles)
+			{
+				TInt nb = v->iExportDescSize;
+				TInt i;
+				TInt j = 0;
+				for (i=0; i<nb; ++i)
+				{
+					if (++j == 8)
+					{
+						j = 0;
+						PrintString("\n");
+					}
+					PrintString(" %02x", v->iExportDesc[i]);
+				}
+				PrintString("\n");
+			}
+			
+			TInt r = CheckExportDescription();
+			
+			if (r == KErrNone)
+				PrintString("Export description consistent\n");
+			else if (r == KErrNotSupported)
+				PrintString("Export description type not recognised\n");
+			else
+				PrintString("!! Export description inconsistent !!\n");
+		}
+
+		TUint32 mv = iOrigHdr->ModuleVersion();
+		PrintString("Module Version: %d.%d\n", mv>>16, mv&0xffff);
+		
+		if (impfmt == KImageImpFmt_PE)
+		{
+			PrintString("Imports are PE-style\n");
+		}
+		else if (impfmt == KImageImpFmt_ELF)
+		{
+			PrintString("Imports are ELF-style\n");
+		}
+		else if (impfmt == KImageImpFmt_PE2)
+		{
+			PrintString("Imports are PE-style without redundant ordinal lists\n");
+		}
+		
+		if (isARM)
+		{
+			if (abi == KImageABI_GCC98r2)
+			{
+				PrintString("GCC98r2 ABI\n");
+			}
+			else if (abi == KImageABI_EABI)
+			{
+				PrintString("ARM EABI\n");
+			}
+			if (ept == KImageEpt_Eka1)
+			{
+				PrintString("Built against EKA1\n");
+			}
+			else if (ept == KImageEpt_Eka2)
+			{
+				PrintString("Built against EKA2\n");
+			}
+		}
+
+		PrintString("Uids:\t\t%08x %08x %08x (%08x)\n", iOrigHdr->iUid1, iOrigHdr->iUid2, iOrigHdr->iUid3, iOrigHdr->iUidChecksum);
+		
+		if (hdrfmt >= KImageHdrFmt_V)
+			PrintString("Header CRC:\t%08x\n", iHdr->iHeaderCrc);
+		
+		PrintString("File Size:\t%08x\n", iSize);
+		PrintString("Code Size:\t%08x\n", iOrigHdr->iCodeSize);
+		PrintString("Data Size:\t%08x\n", iOrigHdr->iDataSize);
+		PrintString("Compression:\t%08x\n", iOrigHdr->iCompressionType);
+		PrintString("Min Heap Size:\t%08x\n", iOrigHdr->iHeapSizeMin);
+		PrintString("Max Heap Size:\t%08x\n", iOrigHdr->iHeapSizeMax);
+		PrintString("Stack Size:\t%08x\n", iOrigHdr->iStackSize);
+		PrintString("Code link addr:\t%08x\n", iOrigHdr->iCodeBase);
+		PrintString("Data link addr:\t%08x\n", iOrigHdr->iDataBase);
+		PrintString("Code reloc offset:\t%08x\n", OrigCodeRelocOffset());
+		PrintString("Data reloc offset:\t%08x\n", OrigDataRelocOffset());
+		PrintString("Dll ref table count: %d\n", iOrigHdr->iDllRefTableCount);
+
+		if (iOrigHdr->iCodeSize || iOrigHdr->iDataSize || iOrigHdr->iBssSize || iOrigHdr->iImportOffset)
+			PrintString("        Offset  Size  Relocs #Relocs\n");
+
+		PrintString("Code    %06x %06x", OrigCodeOffset(), iOrigHdr->iCodeSize);
+		
+		if (iOrigHdr->iCodeRelocOffset)
+		{
+			E32RelocSection *r=(E32RelocSection *)(iData + iOrigHdr->iCodeRelocOffset);
+			PrintString(" %06x %06x", OrigCodeRelocOffset(), r->iNumberOfRelocs);
+		}
+		else
+			PrintString("              ");
+		
+		PrintString("        +%06x (entry pnt)", iOrigHdr->iEntryPoint);
+		PrintString("\n");
+
+		PrintString("Data    %06x %06x", OrigDataOffset(), iOrigHdr->iDataSize);
+		
+		if (iOrigHdr->iDataRelocOffset)
+		{
+			E32RelocSection *r=(E32RelocSection *)(iData + iOrigHdr->iDataRelocOffset);
+			PrintString(" %06x %06x", OrigDataRelocOffset(), r->iNumberOfRelocs);
+		}
+		PrintString("\n");
+
+		PrintString("Bss            %06x\n", iOrigHdr->iBssSize);
+
+		if (iOrigHdr->iExportDirOffset)
+			PrintString("Export  %06x %06x                      (%d entries)\n", OrigExportDirOffset(), iOrigHdr->iExportDirCount*4, iOrigHdr->iExportDirCount);
+		
+		if (iOrigHdr->iImportOffset)
+			PrintString("Import  %06x\n", OrigImportOffset());
+	}
+}
+
+/**
+Function to dump e32 image.
+
+@internalComponent
+@released
+
+@param aData
+Data to be dumped
+@param aLength
+Length of the file
+*/
+void dump(TUint *aData, TInt aLength)
+{
+	TUint *p=aData;
+	TInt i=0;
+	char line[256];
+	char *cp=(char*)aData;
+	TInt j=0;
+	memset(line,' ',sizeof(line));
+	while (i<aLength)
+	{
+		TInt ccount=0;
+		char* linep=&line[8*9+2];
+		PrintString("%06x:", i);
+		while (i<aLength && ccount<8)
+		{
+			PrintString(" %08x", *p++);
+			i+=4;
+			ccount++;
+			for (j=0; j<4; j++)
+			{
+				char c=*cp++;
+				if (c<32 || c>127)
+				{
+					c = '.';
+				}
+				*linep++ = c;
+			}
+		}
+		*linep='\0';
+		PrintString("%s", line+(ccount*9));
+		PrintString("\n");
+	}
+}
+
+/**
+Function to dump relocations.
+
+@internalComponent
+@released
+
+@param aRelocs
+Character pointer to relocations.
+*/
+void dumprelocs(char *aRelocs)
+{
+
+	TInt num=((E32RelocSection *)aRelocs)->iNumberOfRelocs;
+	PrintString("%d relocs\n", num);
+	aRelocs+=sizeof(E32RelocSection);
+	TInt printed=0;
+	while (num>0)
+	{
+		TInt page=*(TUint *)aRelocs;
+		TInt size=*(TUint *)(aRelocs+4);
+		TInt pagesize=size;
+		size-=8;
+		TUint16 *p=(TUint16 *)(aRelocs+8);
+		while (size>0)
+		{
+			TUint a=*p++;
+			TUint relocType = (a & 0x3000) >> 12;
+			if ((relocType == 1) || (relocType == 3)) //only relocation type1 and type3
+			{
+				PrintString("%08x(%d) ", page + (a&0x0fff), relocType);
+				printed++;
+				if (printed>3)
+				{
+					PrintString("\n");
+					printed=0;
+				}
+			}
+			size-=2;
+			num--;
+		}
+		aRelocs+=pagesize;
+	}
+	PrintString("\n");
+}
+
+/**
+Function to dump e32 image data.
+
+@internalComponent
+@released
+
+@param aDumpFlags
+The flags set based on the sub options provided to the program.
+*/
+void E32ImageFile::DumpData(TInt aDumpFlags)
+{
+	if(aDumpFlags&EDumpCode)
+	{
+		PrintString("\nCode (text size=%08x)\n", iOrigHdr->iTextSize);
+		dump((TUint *)(iData + iOrigHdr->iCodeOffset), iOrigHdr->iCodeSize);
+	
+		if (iOrigHdr->iCodeRelocOffset)
+			dumprelocs(iData + iOrigHdr->iCodeRelocOffset);
+	}
+
+	if((aDumpFlags&EDumpData) && iOrigHdr->iDataOffset)
+	{
+		PrintString("\nData\n");
+		dump((TUint *)(iData + iOrigHdr->iDataOffset), iOrigHdr->iDataSize);
+	
+		if (iOrigHdr->iDataRelocOffset)
+			dumprelocs(iData + iOrigHdr->iDataRelocOffset);
+	}
+
+	if(aDumpFlags&EDumpExports)
+	{
+		PrintString("\nNumber of exports = %d\n", iOrigHdr->iExportDirCount);
+		TInt i;
+		TUint* exports = (TUint*)(iData + iOrigHdr->iExportDirOffset);
+		TUint absoluteEntryPoint = iOrigHdr->iEntryPoint + iOrigHdr->iCodeBase;
+		TUint impfmt = iOrigHdr->ImportFormat();
+		TUint absentVal = (impfmt == KImageImpFmt_ELF) ? absoluteEntryPoint : iOrigHdr->iEntryPoint;
+		for (i=0; i<iOrigHdr->iExportDirCount; ++i)
+		{
+			TUint exp = exports[i];
+			if (exp == absentVal)
+				PrintString("\tOrdinal %5d:\tABSENT\n", i+1);
+			else
+				PrintString("\tOrdinal %5d:\t%08x\n", i+1, exp);
+		}
+	}
+
+	// Important. Don't change output format of following inport info
+	// because this is relied on by tools used by "Symbian Signed".
+	if((aDumpFlags&EDumpImports) && iOrigHdr->iImportOffset)
+	{
+		const E32ImportSection* isection = (const E32ImportSection*)(iData + iOrigHdr->iImportOffset);
+		TUint* iat = (TUint*)((TUint8*)iData + iOrigHdr->iCodeOffset + iOrigHdr->iTextSize);
+		PrintString("\nIdata\tSize=%08x\n", isection->iSize);
+		PrintString("Offset of import address table (relative to code section): %08x\n", iOrigHdr->iTextSize);
+		TInt d;
+		const E32ImportBlock* b = (const E32ImportBlock*)(isection + 1);
+		for (d=0; d<iOrigHdr->iDllRefTableCount; d++)
+		{
+			char* dllname = iData + iOrigHdr->iImportOffset + b->iOffsetOfDllName;
+			TInt n = b->iNumberOfImports;
+			PrintString("%d imports from %s\n", b->iNumberOfImports, dllname);
+			const TUint* p = b->Imports();
+			TUint impfmt = iOrigHdr->ImportFormat();
+			if (impfmt == KImageImpFmt_ELF)
+			{
+				while (n--)
+				{
+					TUint impd_offset = *p++;
+					TUint impd = *(TUint*)(iData + iOrigHdr->iCodeOffset + impd_offset);
+					TUint ordinal = impd & 0xffff;
+					TUint offset = impd >> 16;
+				
+					if (offset)
+						PrintString("%10d offset by %d\n", ordinal, offset);
+					else
+						PrintString("%10d\n", ordinal);
+				}
+			}
+			else
+			{
+				while (n--)
+					PrintString("\t%d\n", *iat++);
+			}
+			b = b->NextBlock(impfmt);
+		}
+	}
+	if((aDumpFlags & EDumpSymbols) && (iOrigHdr->iFlags & KImageNmdExpData))
+	{
+		TUint* aExpTbl = (TUint*)(iData + iOrigHdr->iExportDirOffset);
+		TUint* aZeroethOrd = aExpTbl - 1;
+
+		E32EpocExpSymInfoHdr *aSymInfoHdr = (E32EpocExpSymInfoHdr*)(iData + \
+					iOrigHdr->iCodeOffset + \
+					*aZeroethOrd - iOrigHdr->iCodeBase ) ;
+		DumpSymbolInfo(aSymInfoHdr);
+	}
+}
+
+void E32ImageFile::DumpSymbolInfo(E32EpocExpSymInfoHdr *aSymInfoHdr)
+{
+	if(!aSymInfoHdr)
+		return;
+	char	*aSymTblBase = (char*)aSymInfoHdr;
+	TUint	*aSymAddrTbl;
+	char	*aSymNameTbl;
+
+	char *aStrTable = aSymTblBase + aSymInfoHdr->iStringTableOffset;
+	aSymAddrTbl = (TUint*)(aSymTblBase + aSymInfoHdr->iSymbolTblOffset);
+	aSymNameTbl = (char*)(aSymAddrTbl + aSymInfoHdr->iSymCount);
+	
+	int aIdx;
+	char *aSymName;
+
+	PrintString("\n\n\t\tSymbol Info\n");
+	if(aSymInfoHdr->iSymCount)
+	{
+		PrintString("0x%x Symbols exported\n",aSymInfoHdr->iSymCount);
+		PrintString("  Addr\t\tName\n");
+		PrintString("----------------------------------------\n");
+		TUint aNameOffset = 0;
+		for(aIdx=0;aIdx<aSymInfoHdr->iSymCount ; aIdx++)
+		{
+			if(aSymInfoHdr->iFlags & 1)
+			{
+				TUint32* aOff = ((TUint32*)aSymNameTbl+aIdx);
+				aNameOffset = (*aOff) << 2;
+				aSymName = aStrTable + aNameOffset;
+			}
+			else
+			{
+				TUint16* aOff = ((TUint16*)aSymNameTbl+aIdx);
+				aNameOffset = (*aOff) << 2;
+				aSymName = aStrTable + aNameOffset;
+			}
+			PrintString("0x%08x \t%s\t\n",aSymAddrTbl[aIdx], aSymName);
+		}
+	}
+	else
+	{
+		PrintString("No Symbol exported\n");
+	}
+	PrintString("\n\n");
+
+	if(aSymInfoHdr->iDllCount)
+	{
+		// The import table orders the dependencies alphabetically...
+		// We need to list out in the link order...
+		PrintString("%d Static dependencies found\n", aSymInfoHdr->iDllCount);
+		TUint* aDepTbl = (TUint*)((char*)aSymInfoHdr + aSymInfoHdr->iDepDllZeroOrdTableOffset);
+		TUint* aDepOffset =  (TUint*)((char*)aDepTbl - iData);
+
+		const E32ImportSection* isection = (const E32ImportSection*)(iData + iOrigHdr->iImportOffset);
+		
+		TInt d;
+
+		/* The import table has offsets to the location (in code section) where the
+		 * import is required. For dependencies pointed by 0th ordinal, this offset
+		 * must be same as the offset of the dependency table entry (relative to 
+		 * the code section).
+		 */
+		bool aZerothFound;
+		for(int aDep = 0; aDep < aSymInfoHdr->iDllCount; aDep++)
+		{
+			const E32ImportBlock* b = (const E32ImportBlock*)(isection + 1);
+			aZerothFound = false;
+			for (d=0; d<iOrigHdr->iDllRefTableCount; d++)
+			{
+				char* dllname = iData + iOrigHdr->iImportOffset + b->iOffsetOfDllName;
+				TInt n = b->iNumberOfImports;
+
+				const TUint* p = b->Imports()+ (n - 1);//start from the end of the import table
+				TUint impfmt = iOrigHdr->ImportFormat();
+				if (impfmt == KImageImpFmt_ELF)
+				{
+					while (n--)
+					{
+						TUint impd_offset = *p--;
+						TUint impd = *(TUint*)(iData + iOrigHdr->iCodeOffset + impd_offset);
+						TUint ordinal = impd & 0xffff;
+					
+						if (ordinal == 0 )
+						{
+							if( impd_offset == ((TUint)aDepOffset - iOrigHdr->iCodeOffset))
+							{
+								/* The offset in import table is same as the offset of this 
+								 * dependency entry
+								 */
+								PrintString("\t%s\n", dllname);
+								aZerothFound = true;
+							}
+							break;
+						}
+					}
+				}
+				if(aZerothFound)
+					break;
+
+				b = b->NextBlock(impfmt);
+			}
+			if(!aZerothFound)
+			{
+				PrintString("!!Invalid dependency listed at %d\n",aDep );
+			}
+
+			aDepOffset++;
+		}
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/inflate.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,265 @@
+// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation of the Inflater for e32 image dump for the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+#include "huffman.h"
+#include "inflate.h"
+#include <cpudefs.h>
+#include "farray.h"
+#include "errorhandler.h"
+#include<iostream>
+using std::cout;
+
+/*
+Inline constructor for CInflater
+@param aInput
+@internalComponent
+@released
+*/
+inline CInflater::CInflater(TBitInput& aInput):iBits(&aInput),iEncoding(0),iOut(0)
+{
+}
+
+/*
+Function for the 2nd phase construction.
+@param 
+@internalComponent
+@released
+*/
+void CInflater::ConstructL()
+{
+	iEncoding=new TEncoding;
+	InitL();
+	iLen=0;
+	iOut=new TUint8[KDeflateMaxDistance];
+	iAvail=iLimit=iOut;
+}
+
+/*
+Function NewLC
+@Leave OutOfMemory
+@param aInput
+@return pointer to self
+@internalComponent
+@released
+*/
+CInflater* CInflater::NewLC(TBitInput& aInput)
+{
+	CInflater* self=new CInflater(aInput);
+	self->ConstructL();
+
+	return self;
+}
+
+/*
+Destructor for CInflater
+@internalComponent
+@released
+*/
+CInflater::~CInflater()
+{
+	delete iEncoding;
+	delete [] iOut;
+}
+
+/*
+Function ReadL
+@Leave 
+@param aBuffer
+@param aLength
+@internalComponent
+@released
+*/
+TInt CInflater::ReadL(TUint8* aBuffer,TInt aLength)
+{
+	TInt tfr=0;
+	for (;;)
+	{
+		TInt len;
+		if(aLength > (iLimit-iAvail))
+			len=iLimit-iAvail;
+		else
+			len=aLength;
+
+		if (len && aBuffer)
+		{
+			memcpy((void * const)aBuffer,(const void * const)iAvail,(size_t)len);
+			aBuffer+=len;
+		}
+		aLength-=len;
+		iAvail+=len;
+		tfr+=len;
+		if (aLength==0)
+			return tfr;
+		len=InflateL();
+		if (len==0)
+			return tfr;
+		iAvail=iOut;
+		iLimit=iAvail+len;
+	}
+}
+
+/*
+Function InitL
+@Leave
+@internalComponent
+@released
+*/
+void CInflater::InitL()
+{
+	// read the encoding
+	Huffman::InternalizeL(*iBits,iEncoding->iLitLen,KDeflationCodes);
+	// validate the encoding
+	if (!Huffman::IsValid(iEncoding->iLitLen,TEncoding::ELitLens) ||
+		!Huffman::IsValid(iEncoding->iDistance,TEncoding::EDistances))	
+	{
+		throw E32ImageCompressionError(HUFFMANINVALIDCODINGERROR);
+	}
+
+	// convert the length tables into huffman decoding trees
+	Huffman::Decoding(iEncoding->iLitLen,TEncoding::ELitLens,iEncoding->iLitLen);
+	Huffman::Decoding(iEncoding->iDistance,TEncoding::EDistances,iEncoding->iDistance,KDeflateDistCodeBase);
+}
+
+/*
+Consume all data lag in the history buffer, then decode to fill up the output buffer
+Return the number of available bytes in the output buffer. This is only ever less than the
+buffer size if the end of stream marker has been read.
+@internalComponent
+@released
+*/
+TInt CInflater::InflateL()
+{
+	// empty the history buffer into the output
+	TUint8* out=iOut;
+	TUint8* const end=out+KDeflateMaxDistance;
+	const TUint32* tree=iEncoding->iLitLen;
+	if (iLen<0)	// EOF
+		return 0;
+	if (iLen>0)
+		goto useHistory;
+
+	while (out<end)
+	{
+		// get a huffman code
+		{
+			TInt val=iBits->HuffmanL(tree)-TEncoding::ELiterals;
+			if (val<0)
+			{
+				*out++=TUint8(val);
+				continue;			// another literal/length combo
+			}
+			if (val==TEncoding::EEos-TEncoding::ELiterals)
+			{	// eos marker. we're done
+				iLen=-1;
+				break;
+			}
+		
+			// get the extra bits for the code
+			TInt code=val&0xff;
+			if (code>=8)
+			{	// xtra bits
+				TInt xtra=(code>>2)-1;
+				code-=xtra<<2;
+				code<<=xtra;
+				code|=iBits->ReadL(xtra);
+			}
+			if (val<KDeflateDistCodeBase-TEncoding::ELiterals)
+			{	// length code... get the code
+				iLen=code+KDeflateMinLength;
+				tree=iEncoding->iDistance;
+				continue;			// read the huffman code
+			}
+			// distance code
+			iRptr=out-(code+1);
+			if (iRptr+KDeflateMaxDistance<end)
+			iRptr+=KDeflateMaxDistance;
+		}
+		useHistory:
+			TInt tfr;
+			if(iLen > (end-out))
+				tfr=end-out;
+			else
+				tfr=iLen;
+
+			iLen-=tfr;
+			const TUint8* from=iRptr;
+			do
+			{
+				*out++=*from++;
+				if (from==end)
+					from-=KDeflateMaxDistance;
+			}while (--tfr!=0);
+			iRptr=from;
+			tree=iEncoding->iLitLen;
+	};
+	
+	return out-iOut;
+}
+
+/*
+TFileInput Constructor
+@param source
+@param size
+@internalComponent
+@released
+*/
+TFileInput::TFileInput(unsigned char* source,int size):iReadBuf(source),iSize(size)
+{
+	Set(source,iSize*8);
+}
+
+/*
+TFileInput Destructor
+@internalComponent
+@released
+*/
+TFileInput::~TFileInput()
+{
+
+}
+
+/*
+Function UnderFlowL
+@Leave E32ImageCompressionError
+@internalComponent
+@released
+*/
+void TFileInput::UnderflowL()
+{
+	throw E32ImageCompressionError(HUFFMANBUFFERUNDERFLOWERROR);
+}
+
+/*
+Function InflateUncompress
+@param source
+@param sourcesize
+@param dest
+@param destsize
+@internalComponent
+@released
+*/
+void InflateUnCompress(unsigned char* source, int sourcesize,unsigned char* dest, int destsize)
+{
+	TFileInput* input = new TFileInput(source, sourcesize);
+	CInflater* inflater=CInflater::NewLC(*input);
+	inflater->ReadL(dest,destsize);
+	delete input;
+	delete inflater;
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/inflate.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,63 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Class for inflater
+// @internalComponent
+// @released
+// 
+//
+
+#ifndef __INFLATE_H__
+#define __INFLATE_H__
+
+#include "e32defwrap.h"
+#include "huffman.h"
+
+
+const TInt KDeflateMinLength=3;
+const TInt KDeflateMaxDistance=(1<<KDeflateDistanceMag);
+const TInt KDeflateDistCodeBase=0x200;
+
+/**
+Class for inflater
+@internalComponent
+@released
+*/
+class CInflater
+{
+	public:
+		enum {EBufSize = 0x800, ESafetyZone=8};
+	public:
+		static CInflater* NewLC(TBitInput& aInput);
+		~CInflater();
+		TInt ReadL(TUint8* aBuffer,TInt aLength);
+		TInt SkipL(TInt aLength);
+	private:
+		CInflater(TBitInput& aInput);
+		void ConstructL();
+		void InitL();
+		TInt InflateL();
+	private:
+		TBitInput* iBits;
+		const TUint8* iRptr;			// partial segment
+		TInt iLen;
+		const TUint8* iAvail;			// available data
+		const TUint8* iLimit;
+		TEncoding* iEncoding;
+		TUint8* iOut;					// circular buffer for distance matches
+		TUint8 iHuff[EBufSize+ESafetyZone];	// huffman data
+};
+
+
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/librarytarget.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,97 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation of the Class LibraryTarget for the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+#include "librarytarget.h"
+#include "pl_dso_handler.h"
+#include "deffile.h"
+#include <iostream>
+
+/**
+Constructor for the Library Class
+
+@internalComponent
+@released
+*/
+LibraryTarget::LibraryTarget(ParameterListInterface* aParameterListInterface):
+UseCaseBase(aParameterListInterface)
+{
+	iElfIfc = new DSOHandler(aParameterListInterface);
+	iDefFile = new DefFile();
+}
+
+
+/**
+Destructor for the Library Class
+
+@internalComponent
+@released
+*/
+LibraryTarget::~LibraryTarget()
+{
+	delete iElfIfc;
+	delete iDefFile;
+}
+
+/**
+Execute Function for the library target creation. The symbols are read from the input
+DEF file. The DSO file is generated on passing the symbols.
+ 
+@internalComponent
+@released
+
+@return EXIT_SUCCESS, on successful creation of library.
+*/
+int LibraryTarget::Execute()
+{
+	SymbolList *aSymList;
+	aSymList = ReadInputDefFile();
+	GenerateOutput(aSymList);
+	return EXIT_SUCCESS;
+
+}
+
+/**
+Function to read the symbols from the DEF file.
+ 
+@internalComponent
+@released
+
+@return the list of symbols read from the DEF file.
+*/
+SymbolList* LibraryTarget::ReadInputDefFile()
+{
+	char * aDEFFileName = UseCaseBase::DefInput();
+
+	return iDefFile->ReadDefFile(aDEFFileName);
+}
+
+/**
+Function to generate the output DSO File.
+ 
+@internalComponent
+@released
+*/
+void LibraryTarget::GenerateOutput(SymbolList* aSymList)
+{
+	char * aLinkAs = UseCaseBase::LinkAsDLLName();
+	char * aDSOName = UseCaseBase::DSOOutput();
+	char * aDSOFileName = UseCaseBase::FileName(aDSOName);
+
+	iElfIfc->WriteElfFile( aDSOName, aDSOFileName, aLinkAs, *aSymList);	
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/librarytarget.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,58 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation of the Header file for Class LibraryTarget of the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+
+#if !defined(SYMBIAN_LIBRARYTARGET_H_)
+#define SYMBIAN_LIBRARYTARGET_H_
+
+#include "usecasebase.h"
+#include <list>
+
+class Symbol;
+class DSOHandler;
+class DefFile;
+typedef std::list<Symbol*> SymbolList;
+
+/**
+This class is derived from the base class UseCaseBase and is responsible for creation of
+Library Target.It passes the input DEF file to the DEFfile parser to get the Symbol list
+and then passes the Symbol List to the DSOHandler to generate the DSO file.
+
+@internalComponent
+@released
+*/
+class LibraryTarget : public UseCaseBase
+{
+
+public:
+	LibraryTarget(ParameterListInterface* aParameterListInterface);
+	virtual ~LibraryTarget();
+	int Execute();
+	SymbolList* ReadInputDefFile();
+	void GenerateOutput(SymbolList* aSymList);
+
+private:
+	DSOHandler	*iElfIfc;
+	DefFile *iDefFile;
+};
+
+
+
+#endif // !defined(SYMBIAN_LIBRARYTARGET_H_)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/main.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,43 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation of the main function for elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+//
+#include "elf2e32.h"
+
+/**
+This function creates an instance of Elf2E32 and calls Execute() of Elf2E32 to generate
+the appropriate target.
+@internalComponent
+@released
+
+@param aArgc
+ The number of command line arguments passed into the program
+@param aArgv
+ The listing of all the arguments
+
+
+@return EXIT_SUCCESS if the generation of the target is successful, else EXIT_FAILURE
+
+*/
+int main(int argc, char** argv) 
+{
+  Elf2E32 aElf2E32(argc, argv);
+  return aElf2E32.Execute();
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/messagehandler.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,80 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Error Message Interface Operations for elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+#include "messagehandler.h"
+#include "messageimplementation.h"
+
+Message* MessageHandler::iInstance=0;
+
+/**
+Function Get Instance of class Message Implementation and initializing messages.
+
+@internalComponent
+@released
+
+@return Instance of MessageImplementation
+*/
+Message * MessageHandler::GetInstance()
+{
+    if(iInstance == 0)
+	{
+		iInstance = new MessageImplementation();
+		iInstance->InitializeMessages(NULL);
+	}
+	return iInstance;
+}
+
+/**
+Function to call StartLogging function of class Message Implementation.
+
+@internalComponent
+@released
+
+@param aFileName
+Name of the Log File
+*/
+void MessageHandler::StartLogging(char *aFileName)
+{
+    GetInstance()->StartLogging(aFileName);
+}
+
+/**
+Function to call InitializeMessages function of class Message Implementation.
+
+@internalComponent
+@released
+
+@param aFileName
+Name of the Message file 
+*/
+void MessageHandler::InitializeMessages(char *aFileName)
+{
+	GetInstance()->InitializeMessages(aFileName);
+}
+
+/**
+Function to delete instance of class MessageImplementation
+
+@internalComponent
+@released
+*/
+void MessageHandler::CleanUp()
+{
+	delete iInstance;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/messagehandler.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,48 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Message Handler Class for elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+
+#ifndef _MESSAGE_HANDLER_
+#define _MESSAGE_HANDLER_
+
+#include "messageimplementation.h"
+
+/**
+Class for Message Handler which will be used for getting instance of Message Implementationin
+and start logging, creating message file, initializing messages.
+@internalComponent
+@released
+*/
+class MessageHandler
+{
+    public:
+		static Message *GetInstance();
+		static void CleanUp();
+		static void StartLogging(char *filename);
+		static void CreateMessageFile(char *fileName);
+		static void InitializeMessages(char *fileName);
+
+    private:
+		static Message* iInstance;
+};
+
+
+
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/messageimplementation.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,425 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Message Implementation Operations for elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+
+#include "messageimplementation.h"
+#include "errorhandler.h"
+#include<iostream>
+#include<stdarg.h>
+#include<string>
+#include <stdio.h>
+
+using std::endl;
+using std::cout;
+typedef std::string String;
+
+char *errorMssgPrefix="elf2e32 : Error: E";
+char *warnMssgPrefix="elf2e32 : Warning: W";
+char *infoMssgPrefix="elf2e32 : Information: I";
+char *colSpace=": ";
+
+enum MessageArraySize{MAX=66};
+
+//Messages stored required for the program
+struct EnglishMessage MessageArray[MAX]=
+{
+	{FILEOPENERROR,"Could not open file : %s."},
+	{FILEREADERROR,"Could not read file : %s."},
+	{FILEWRITEERROR,"Could not write file : %s."},
+	{ELFMAGICERROR,"Invalid ELF magic in file : %s."},
+	{ELFCLASSERROR,"ELF file %s is not 32 bit."},
+	{ELFABIVERSIONERROR,"ELF file %s is not BPABI conformant."},
+	{ELFLEERROR,"ELF file %s is not Little Endian."},
+	{ELFARMERROR,"ELF file %s does not target ARM."},
+	{ELFEXECUTABLEERROR,"ELF file %s is neither executable (ET_EXEC) or shared (ET_DYN)."},
+	{ELFSHSTRINDEXERROR,"Error in ELF Section Header String Index : %s."},
+	{NAMELIBRARYNOTCORRECT,"Name or Library not supplied correctly : %s[Line No=%d][%s]"},
+	{ORDINALSEQUENCEERROR,"Ordinal number is not in sequence : %s[Line No=%d][%s]."},
+	{ARGUMENTNAMEERROR,"Argument %s is not correct."},
+	{OPTIONNAMEERROR,"Option %s is Unrecognized."},
+	{NOARGUMENTERROR,"Missing arguments for option : %s."},
+	{OPTIONPREFIXERROR,"Option %s is neither preceedded by '-' nor '--'."},
+	{NOREQUIREDOPTIONERROR,"Missing options : %s."},
+	{NOFILENAMEERROR,"Missing argument for option : %s."},
+	{INVALIDARGUMENTERROR,"Argument '%s' not permitted for option %s."},
+	{HUFFMANBUFFEROVERFLOWERROR,"Huffman buffer overflow during E32Image compression."},
+	{HUFFMANTOOMANYCODESERROR,"Too many Huffman codes during E32Image compression."},
+	{HUFFMANINVALIDCODINGERROR,"Invalid Huffman coding during E32Image compression."},
+	{CAPABILITYALLINVERSIONERROR,"-ALL not a valid capability."},
+	{CAPABILITYNONEINVERSIONERROR,"+NONE not a valid capability."},
+	{UNRECOGNISEDCAPABILITYERROR,"Unrecognized capability : %s."},
+	{NOSTATICSYMBOLSERROR,"ELF File %s contains no static symbols."},
+	{DLLHASINITIALISEDDATAERROR,"ELF File %s contains initialized writable data."},
+	{DLLHASUNINITIALISEDDATAERROR,"ELF File %s contains uninitialized writable data."},
+	{ENTRYPOINTCORRUPTERROR,"ELF File %s has corrupt entry point."},
+	{ENTRYPOINTNOTSUPPORTEDERROR,"ELF File %s has unsupported entry point type."},
+	{EXCEPTIONDESCRIPTOROUTSIDEROERROR,"ELF File %s has invalid exception descriptor."},
+	{NOEXCEPTIONDESCRIPTORERROR,"ELF File %s has no exception descriptor."},
+	{NEEDSECTIONVIEWERROR,"ELF File %s has no section headers."},
+	{DSONOTFOUNDERROR,"DSO %s not found."},
+	{UNDEFINEDSYMBOLERROR,"Undefined Symbol %s found in ELF File %s."},
+	{SYMBOLMISSINGFROMELFERROR,"Symbol %s Missing from ELF File : %s."},
+	{MEMORYALLOCATIONERROR,"Memory allocation failure : %s."},
+	{E32IMAGEERROR,"Not able to write E32 Image file."},
+	{INVALIDINVOCATIONERROR,"Invalid invocation of elf2e32."},
+	{TARGETTYPENOTSPECIFIEDERROR,"Target Type Not Specified."},
+	{UNSUPPORTEDTARGETTYPEERROR,"Unsupported Target Type '%s'."},
+	{INDEXNOMESSAGEERROR,"There is no message for the message index[%d]."},
+	{INDEXNOTREQUIREDERROR,"Message index[%d] not required in message file."},
+	{INDEXNOTFOUNDERROR,"Message index [%d] not found in message file"},
+	{NOMESSAGEFILEERROR,"There is no message file."},
+	{ENTRYPOINTNOTSETERROR,"Entry point is not set for %s."},
+	{UNDEFINEDENTRYPOINTERROR,"Entry point and Text segment base both 0, can't tell if entry point set for %s."},
+	{ORDINALNOTANUMBER,"Ordinal not a Number : %s[Line No=%d][%s]."},
+	{UNRECOGNIZEDTOKEN,"Unrecognized Token : %s[Line No=%d][%s]."},
+	{NONAMEMISSING,"NONAME Missing : %s[Line No=%d][%s]."},
+	{EXPORTSEXPECTED,"EXPORTS expected before first export entry : %s[Line No=%d][%s]."},
+	{ATRATEMISSING,"@ Missing : %s[Line No=%d][%s]."},
+	{SYSDEFSMISMATCHERROR,"Symbol %s passed through '--sysdef' option is not at the specified ordinal in the DEF file %s."},
+	{SYSDEFERROR,"Ordinal number is not provided as input to the option: %s"},
+	{INVALIDE32IMAGEERROR,"%s is not a valid E32Image file."},
+	{HUFFMANBUFFERUNDERFLOWERROR,"Huffman buffer underflow on deflate."},
+	{HUFFMANINCONSISTENTSIZEERROR,"Inconsistent sizes discovered during uncompression."},
+	{MULTIPLESYSDEFERROR, "Multiple system definitions passed to %s should be separated by ';'"},
+	{SYSDEFNOSYMBOLERROR, "Symbol Name is not provided as input to the option: %s"},
+	{VALUEIGNOREDWARNING, "Value passed to '%s' is ignored"},
+	{ELFFILEERROR,"Error while processing the ELF file %s."},
+	{SYMBOLCOUNTMISMATCHERROR, "Symbol count provided by DT_ARM_SYMTABSZ is not same as that in the Hash Table in %s"},
+	{POSTLINKERERROR,"Fatal Error in Postlinker"},
+	{BYTEPAIRINCONSISTENTSIZEERROR, "Inconsistent sizes discovered during Byte pair uncompression." },
+	{ILLEGALEXPORTFROMDATASEGMENT,"'%s' : '%s' Import relocation does not refer to code segment."},
+	{VALIDATIONERROR,"Image failed validation"}
+};
+
+/**
+Constructor to reset the logging option flag.
+
+@internalComponent
+@released
+*/
+MessageImplementation::MessageImplementation()
+{
+    iLogging = false;
+}
+
+/**
+Destructor to close log file if logging is enabled and to clear the messaged.
+@internalComponent
+@released
+*/
+MessageImplementation::~MessageImplementation()
+{
+    if(iLogging)
+    {
+		fclose(iLogPtr);
+    }
+	iMessage.clear();
+}
+
+/**
+Function to Get Message stored in map.
+
+@internalComponent
+@released
+
+@param aMessageIndex
+Index of the Message to be displayed
+@return Message string to be displayed
+*/
+char * MessageImplementation::GetMessageString(int aMessageIndex)
+{
+	Map::iterator p;
+
+	if(iMessage.empty())
+	{
+		if(aMessageIndex <= MAX)
+		{
+			return MessageArray[aMessageIndex-1].message;
+		}
+		else
+		{
+			return NULL;
+		}
+	}
+	else
+	{
+		p=iMessage.find(aMessageIndex);
+		if(p == iMessage.end())
+		{
+			if(aMessageIndex <= MAX)
+			{
+				return MessageArray[aMessageIndex-1].message;
+			}
+			else
+			{
+				return NULL;
+			}
+		}
+
+		if(aMessageIndex <= MAX)
+		{
+			return p->second;
+		}
+		else
+		{
+			return NULL;
+		}
+	}
+}
+
+/**
+Function to display output and log message in log file if logging is enable.
+
+@internalComponent
+@released
+
+@param aString
+Message to be displayed
+*/
+void MessageImplementation::Output(const char *aString)
+{
+
+    if (iLogging)
+    {
+		fputs(aString,iLogPtr);
+		fputs("\n",iLogPtr);
+    }
+	cout << aString << endl;
+}
+
+/**
+Function to Get Message stored in map and to display the Message
+
+@internalComponent
+@released
+
+@param
+The type of the message, whether it is Error or Warning or Information.
+@param
+The index of the information and the corresponding arguments.
+*/
+void MessageImplementation::ReportMessage(int aMessageType, int aMsgIndex,...)
+{
+	char *reportMessage, *ptr, *tmpMessage;
+	char intStr[16];
+	char mssgNo[MAXMSSGNOLENGTH];
+	int mssgIndex,k;
+
+	va_list ap;
+	va_start(ap,aMsgIndex);
+	
+	reportMessage=GetMessageString(aMsgIndex);
+	
+	if(reportMessage)
+	{
+		String message;
+		switch (aMessageType)
+		{
+			case ERROR:
+				message = errorMssgPrefix;
+				break;
+			case WARNING:
+				message = warnMssgPrefix;
+				break;
+			case INFORMATION:
+				message = infoMssgPrefix;
+				break;
+		}
+		mssgIndex = BASEMSSGNO + aMsgIndex;
+		sprintf(mssgNo,"%d",mssgIndex);
+		message += mssgNo;
+		message += colSpace;
+
+		ptr = strchr(reportMessage,'%');
+
+		while( ptr != NULL && (ptr[0]) == '%' )
+		{
+			tmpMessage=new char[ptr - reportMessage + 1];
+			strncpy(tmpMessage, reportMessage, ptr - reportMessage+1);
+			tmpMessage[ptr - reportMessage]='\0';
+			message += tmpMessage;
+			delete tmpMessage;
+			ptr++;
+			switch(ptr[0])
+			{
+				case 'd':
+					k = va_arg(ap, int);
+					sprintf(intStr,"%d",k);
+					message += intStr;
+					ptr++;
+					reportMessage = ptr;
+					break;
+				case 's':
+					message += va_arg(ap, char *);
+					ptr++;
+					reportMessage = ptr;
+					break;
+				case '%':
+					message += ptr[0];
+					reportMessage = ptr;
+				default:
+					break;
+			}
+			ptr=strchr(reportMessage,'%');
+		}
+		message += reportMessage;
+		Output(message.c_str());
+	}
+}
+
+/**
+Function to start logging.
+
+@internalComponent
+@released
+
+@param aFileName
+Name of the Log file
+*/
+void MessageImplementation::StartLogging(char *aFileName)
+{
+	char logFile[1024];
+	FILE *fptr;
+
+	strcpy(logFile,aFileName);
+
+	// open file for log etc.
+	if((fptr=fopen(logFile,"w"))==NULL)
+	{
+		ReportMessage(WARNING, FILEOPENERROR,aFileName);
+	}
+	else
+	{
+	    iLogging = true;
+		iLogPtr=fptr;
+	}
+}
+
+/**
+Function to Create Messages file.
+
+@internalComponent
+@released
+@param aFileName
+Name of the Message file to be dumped
+*/
+void MessageImplementation::CreateMessageFile(char *aFileName)
+{
+	int i;
+	FILE *fptr;
+
+	// open file for writing messages.
+	if((fptr=fopen(aFileName,"w"))==NULL)
+	{
+		ReportMessage(WARNING, FILEOPENERROR,aFileName);
+	}
+	else
+	{
+		for(i=0;i<MAX;i++)
+		{
+			fprintf(fptr,"%d,%s\n",i+1,MessageArray[i].message);
+		}
+			
+		fclose(fptr);
+	}
+
+}
+
+/**
+Function to put Message string in map which is stored in message file.
+If file is not available the put message in map from Message Array structure.
+
+@internalComponent
+@released
+
+@param aFileName
+Name of the Message file passed in
+*/
+void MessageImplementation::InitializeMessages(char *aFileName)
+{
+	char index[16];
+	char *message, *errStr;
+	int i, lineLength;
+	int fileSize;
+	char *messageEntries, *lineToken;
+
+	FILE *fptr;
+
+	if(aFileName && (fptr=fopen(aFileName,"rb"))!=NULL)
+	{
+
+		iMessage.clear();
+		//Getting File size
+		fseek(fptr, 0, SEEK_END);
+		fileSize=ftell(fptr);
+		rewind(fptr);
+
+		messageEntries= new char[fileSize+2];
+
+		//Getting whole file in memory
+		fread(messageEntries, fileSize, 1, fptr);
+
+		//Adding ENTER at end
+		*(messageEntries+fileSize)='\n';
+		//Adding '\0' at end
+		*(messageEntries+fileSize+1)='\0';
+
+		fclose(fptr);
+
+		lineToken=strtok(messageEntries,"\n");
+		while(lineToken != NULL)
+		{
+			if( lineToken[0] == '\n' || lineToken[0] == '\r' )
+			{
+				lineToken=strtok(NULL,"\n");
+				continue;
+			}
+
+			lineLength=strlen(lineToken);
+
+			if( lineToken[strlen(lineToken)-1] == '\r' )
+			{
+				lineToken[strlen(lineToken)-1]='\0';
+			}
+
+			message=strchr(lineToken,',');
+			strncpy(index,lineToken,message-lineToken);
+			index[message-lineToken]='\0';
+			errStr = new char[strlen(message+1) + 1];
+			strcpy(errStr, (message+1));
+			iMessage.insert(std::pair<int,char*>(atoi(index),errStr));
+
+			lineToken=strtok(lineToken+lineLength+1,"\n");
+		}
+
+		delete messageEntries;
+
+	}
+	else
+	{
+		for(i=0;i<MAX;i++)
+		{
+			errStr = new char[strlen(MessageArray[i].message) + 1];
+			strcpy(errStr, MessageArray[i].message);
+			iMessage.insert(std::pair<int,char*>(MessageArray[i].index,errStr));
+		}
+	}
+}
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/messageimplementation.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,173 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Message Implementation Class for elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+
+#ifndef _MESSAGE_IMPLEMENTATION_
+#define _MESSAGE_IMPLEMENTATION_
+
+#ifdef _MSC_VER 
+	#pragma warning(disable: 4514) // unreferenced inline function has been removed
+	#pragma warning(disable: 4702) // unreachable code
+	#pragma warning(disable: 4710) // function not inlined
+	#pragma warning(disable: 4786) // identifier was truncated to '255' characters in the debug information
+#endif
+
+#include<map>
+#include<string>
+
+typedef std::map<int,char*> Map;
+typedef std::string String;
+
+enum { MAXMSSGNOLENGTH=5, BASEMSSGNO=1000 };
+
+enum { ERROR = 0,
+	   WARNING,
+	   INFORMATION
+};
+
+enum {	FILEOPENERROR=1,
+		FILEREADERROR,
+		FILEWRITEERROR,
+		ELFMAGICERROR,
+		ELFCLASSERROR,
+		ELFABIVERSIONERROR,
+		ELFLEERROR,
+		ELFARMERROR,
+		ELFEXECUTABLEERROR,
+		ELFSHSTRINDEXERROR,
+		NAMELIBRARYNOTCORRECT,
+		ORDINALSEQUENCEERROR,
+		ARGUMENTNAMEERROR,
+		OPTIONNAMEERROR,
+		NOARGUMENTERROR,
+		OPTIONPREFIXERROR,
+		NOREQUIREDOPTIONERROR,
+		NOFILENAMEERROR,
+		INVALIDARGUMENTERROR,
+		HUFFMANBUFFEROVERFLOWERROR,
+		HUFFMANTOOMANYCODESERROR,
+		HUFFMANINVALIDCODINGERROR,
+		CAPABILITYALLINVERSIONERROR,
+		CAPABILITYNONEINVERSIONERROR,
+		UNRECOGNISEDCAPABILITYERROR,
+		NOSTATICSYMBOLSERROR,
+		DLLHASINITIALISEDDATAERROR,
+		DLLHASUNINITIALISEDDATAERROR,
+		ENTRYPOINTCORRUPTERROR,
+		ENTRYPOINTNOTSUPPORTEDERROR,
+		EXCEPTIONDESCRIPTOROUTSIDEROERROR,
+		NOEXCEPTIONDESCRIPTORERROR,
+		NEEDSECTIONVIEWERROR,
+		DSONOTFOUNDERROR,
+		UNDEFINEDSYMBOLERROR,
+		SYMBOLMISSINGFROMELFERROR,
+		MEMORYALLOCATIONERROR,
+		E32IMAGEERROR,
+		INVALIDINVOCATIONERROR,
+		TARGETTYPENOTSPECIFIEDERROR,
+		UNSUPPORTEDTARGETTYPEERROR,
+		INDEXNOMESSAGEERROR,
+		INDEXNOTREQUIREDERROR,
+		INDEXNOTFOUNDERROR,
+		NOMESSAGEFILEERROR,
+		ENTRYPOINTNOTSETERROR,
+		UNDEFINEDENTRYPOINTERROR,
+		ORDINALNOTANUMBER,
+		UNRECOGNIZEDTOKEN,
+		NONAMEMISSING,
+		EXPORTSEXPECTED,
+		ATRATEMISSING,
+		SYSDEFSMISMATCHERROR,
+		SYSDEFERROR,
+		INVALIDE32IMAGEERROR,
+		HUFFMANBUFFERUNDERFLOWERROR,
+		HUFFMANINCONSISTENTSIZEERROR,
+		MULTIPLESYSDEFERROR,
+		SYSDEFNOSYMBOLERROR,
+		VALUEIGNOREDWARNING,
+		ELFFILEERROR,
+		SYMBOLCOUNTMISMATCHERROR,
+		POSTLINKERERROR,
+		BYTEPAIRINCONSISTENTSIZEERROR,
+		ILLEGALEXPORTFROMDATASEGMENT,
+		VALIDATIONERROR
+};
+
+
+/**
+Abstract base Class for Message Implementation.
+@internalComponent
+@released
+*/
+class Message
+{
+    public:
+		virtual ~Message(){};
+		// get error string from message file
+		virtual char * GetMessageString(int errorIndex)=0;
+		// display message to output device
+		virtual void Output(const char *aName) =0;
+		// start logging to a file
+		virtual void StartLogging(char *fileName)=0;
+	//	virtual void ReportWarning(int warnIndex,...)=0;
+		virtual void ReportMessage(int aMsgType, int aMsgIndex,...)=0;
+		virtual void CreateMessageFile(char *fileName)=0;
+		virtual void InitializeMessages(char *fileName)=0;
+};
+
+/**
+Class for Message Implementation.
+@internalComponent
+@released
+*/
+class MessageImplementation : public Message
+{
+    public:
+		MessageImplementation();
+		~MessageImplementation();
+
+		//override base class methods
+		char* GetMessageString(int errorIndex);
+		void Output(const char *aName);
+		void StartLogging(char *fileName);
+	//	void ReportWarning(int warnIndex,...);
+		void ReportMessage(int aMsgType, int aMsgIndex,...);
+		void CreateMessageFile(char *fileName);
+		void InitializeMessages(char *fileName);
+    private:
+
+		bool iLogging;
+		char* iLogFileName;
+		FILE *iLogPtr;
+		Map iMessage;
+};
+
+/**
+Structure for Messages.
+@internalComponent
+@released
+*/
+struct EnglishMessage
+{
+	int index;
+	char message[1024];
+};
+
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/pagedcompress.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,334 @@
+// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// byte_pair.cpp
+// 
+//
+
+#include <malloc.h>
+#include <string.h>
+#include <stdlib.h>
+#include "h_utl.h"
+#include "h_ver.h"
+#include <stdio.h>
+
+#include <fstream>
+#ifdef __TOOLS2__
+#include <sstream>
+#else
+#include <strstream.h>
+#endif
+
+#include <string>
+#include <vector>
+#include <cassert>
+#include <iostream>
+#ifndef __LINUX__
+#include <io.h>
+#endif
+#include <time.h>
+
+#include "byte_pair.h"
+
+#define PAGE_SIZE 4096
+
+//#define __TEST_ONLY__
+
+
+typedef struct IndexTableItemTag
+{
+	TUint16 iSizeOfCompressedPageData;	// pointer to an array TUint16[NumberOfPages]
+	TUint8 *iCompressedPageData;		// pointer to an array TUint8*. Each elemet of 
+										// this array point a compressed Page data	
+}IndexTableItem;
+
+
+typedef struct IndexTableHeaderTag
+{
+	TInt	iSizeOfData;					// Includes the index and compressed pages
+	TInt	iDecompressedSize;
+	TUint16	iNumberOfPages;
+} IndexTableHeader;
+
+
+class CBytePairCompressedImage
+{
+	public:
+		static CBytePairCompressedImage* NewLC(TUint16 aNumberOfPages, TInt aSize);
+		
+		~CBytePairCompressedImage();
+		
+		void AddPage(TUint16 aPageNum, TUint8 * aPageData, TUint16 aPageSize);
+		int  GetPage(TUint16 aPageNum, TUint8 * aPageData);
+		void WriteOutTable(std::ofstream &os);
+		int  ReadInTable(std::ifstream &is, TUint & aNumberOfPages);
+	
+	private:
+		TInt ConstructL( TUint16 aNumberOfPages, TInt aSize);
+		CBytePairCompressedImage();
+		
+	private:
+		IndexTableHeader 	iHeader;
+		IndexTableItem*		iPages;
+		TUint8* 			iOutBuffer; 
+		
+};
+
+
+CBytePairCompressedImage::CBytePairCompressedImage()
+{
+	
+}
+
+
+CBytePairCompressedImage* CBytePairCompressedImage::NewLC(TUint16 aNumberOfPages, TInt aSize)
+{
+	CBytePairCompressedImage* self = new CBytePairCompressedImage;
+	if( NULL == self)
+	{
+		return self;
+	}
+	
+	if( KErrNone == self->ConstructL(aNumberOfPages, aSize))
+	{
+		return self;
+	}
+	return NULL;
+}
+
+
+TInt CBytePairCompressedImage::ConstructL(TUint16 aNumberOfPages, TInt aSize)
+{
+	//Print(EWarning,"Start ofCBytePairCompressedImage::ConstructL(%d, %d)\n", aNumberOfPages, aSize );
+	iHeader.iNumberOfPages = aNumberOfPages;
+	iHeader.iDecompressedSize = aSize;
+	
+	if( 0 != aNumberOfPages)
+	{
+		iPages = (IndexTableItem *) calloc(aNumberOfPages, sizeof(IndexTableItem));
+		
+		if( NULL == iPages )
+		{
+			return KErrNoMemory;
+		}
+	}
+		
+	iHeader.iSizeOfData = 	sizeof(iHeader.iSizeOfData) + 
+							sizeof(iHeader.iDecompressedSize) + 
+							sizeof(iHeader.iNumberOfPages) + 
+							aNumberOfPages * sizeof(TUint16);
+	
+	iOutBuffer = (TUint8 *) calloc(4 * PAGE_SIZE, sizeof(TUint8) ); 
+	
+	if ( NULL == iOutBuffer)
+	{
+		return KErrNoMemory;
+	}
+	return KErrNone;
+} // End of ConstructL()
+
+CBytePairCompressedImage::~CBytePairCompressedImage()
+{
+	
+	for( int i = 0; i < iHeader.iNumberOfPages; i++)
+	{
+		free(iPages[i].iCompressedPageData);
+		iPages[i].iCompressedPageData = NULL;
+	}
+	
+	free( iPages );
+	iPages = NULL;
+	
+	free( iOutBuffer );
+	iOutBuffer = NULL;
+}
+
+
+void CBytePairCompressedImage::AddPage(TUint16 aPageNum, TUint8 * aPageData, TUint16 aPageSize)
+{
+	//Print(EWarning,"Start of AddPage(aPageNum:%d, ,aPageSize:%d)\n",aPageNum, aPageSize );
+
+#ifdef __TEST_ONLY__
+
+	iPages[aPageNum].iSizeOfCompressedPageData = 2;
+
+	iPages[aPageNum].iCompressedPageData = (TUint8 *) calloc(iPages[aPageNum].iSizeOfCompressedPageData, sizeof(TUint8) );	
+	
+	memcpy(iPages[aPageNum].iCompressedPageData, (TUint8 *) &aPageNum, iPages[aPageNum].iSizeOfCompressedPageData);
+	
+	
+#else
+
+	TUint16 compressedSize = (TUint16) Pak(iOutBuffer,aPageData,aPageSize );
+	iPages[aPageNum].iSizeOfCompressedPageData = compressedSize;
+	//Print(EWarning,"Compressed page size:%d\n", iPages[aPageNum].iSizeOfCompressedPageData );
+	
+	iPages[aPageNum].iCompressedPageData = (TUint8 *) calloc(iPages[aPageNum].iSizeOfCompressedPageData, sizeof(TUint8) );
+	
+	if( NULL == iPages[aPageNum].iCompressedPageData )
+	{
+		return;
+	}
+	
+	memcpy(iPages[aPageNum].iCompressedPageData, iOutBuffer, iPages[aPageNum].iSizeOfCompressedPageData );
+	
+#endif
+
+	iHeader.iSizeOfData += iPages[aPageNum].iSizeOfCompressedPageData;
+}
+
+void CBytePairCompressedImage::WriteOutTable(std::ofstream & os)
+{
+	// Write out IndexTableHeader
+	//Print(EWarning,"Write out IndexTableHeader(iSizeOfData:%d,iDecompressedSize:%d,iNumberOfPages:%d)\n",iHeader.iSizeOfData, iHeader.iDecompressedSize, iHeader.iNumberOfPages );
+	//Print(EWarning,"sizeof(IndexTableHeader) = %d, , sizeof(TUint16) = %d\n",sizeof(IndexTableHeader), sizeof(TUint16) );
+	//os.write((const char *) &iHeader, sizeof(IndexTableHeader));
+	os.write((const char *) &iHeader.iSizeOfData, sizeof(iHeader.iSizeOfData));
+	os.write((const char *) &iHeader.iDecompressedSize, sizeof(iHeader.iDecompressedSize));
+	os.write((const char *) &iHeader.iNumberOfPages, sizeof(iHeader.iNumberOfPages));
+	
+	
+	// Write out IndexTableItems (size of each compressed page)
+	for(TInt i = 0; i < iHeader.iNumberOfPages; i++)
+	{
+		os.write((const char *) &(iPages[i].iSizeOfCompressedPageData), sizeof(TUint16));
+	}
+	
+	// Write out compressed pages
+	for(TInt i = 0; i < iHeader.iNumberOfPages; i++)
+	{
+		os.write( (const char *)iPages[i].iCompressedPageData, iPages[i].iSizeOfCompressedPageData);
+	}
+	
+}
+
+
+int CBytePairCompressedImage::ReadInTable(std::ifstream &is, TUint & aNumberOfPages)
+{
+	// Read page index table header 
+	is.read((char *)&iHeader, (sizeof(iHeader.iSizeOfData)+sizeof(iHeader.iDecompressedSize)+sizeof(iHeader.iNumberOfPages)));
+
+	// Allocatin place to Page index table entries
+	iPages = (IndexTableItem *) calloc(iHeader.iNumberOfPages, sizeof(IndexTableItem));
+		
+	if( NULL == iPages )
+	{
+		return KErrNoMemory;
+	}
+
+	// Read whole Page index table 
+
+	for(TInt i = 0; i < iHeader.iNumberOfPages; i++)
+	{
+		is.read((char *) &(iPages[i].iSizeOfCompressedPageData), sizeof(TUint16));
+	}
+
+	// Read compressed data pages page by page, decompress and store them
+	for(TInt i = 0; i < iHeader.iNumberOfPages; i++)
+	{
+
+		iPages[i].iCompressedPageData = (TUint8 *) calloc(iPages[i].iSizeOfCompressedPageData, sizeof(TUint8) );
+	
+		if( NULL == iPages[i].iCompressedPageData )
+		{
+			return KErrNoMemory;
+		}
+
+		is.read((char *)iPages[i].iCompressedPageData, iPages[i].iSizeOfCompressedPageData);
+	}
+
+	aNumberOfPages = iHeader.iNumberOfPages;
+
+	return KErrNone;
+}
+
+int  CBytePairCompressedImage::GetPage(TUint16 aPageNum, TUint8 * aPageData)
+{
+	TUint8* pakEnd;
+        
+    const TInt MaxBlockSize = 0x1000;
+        
+   	TUint16 uncompressedSize = (TUint16) Unpak( aPageData, 
+												MaxBlockSize, 
+												iPages[aPageNum].iCompressedPageData, 
+												iPages[aPageNum].iSizeOfCompressedPageData, 
+												pakEnd );
+
+	return uncompressedSize;
+
+
+}
+
+
+void CompressPages(TUint8* bytes, TInt size, std::ofstream& os)
+{
+	// Build a list of compressed pages
+	TUint16 numOfPages = (TUint16) ((size + PAGE_SIZE - 1) / PAGE_SIZE);
+	
+	CBytePairCompressedImage* comprImage = CBytePairCompressedImage::NewLC(numOfPages, size);
+	if (!comprImage)
+	{
+		//Print(EError," NULL == comprImage\n");
+		return;
+	}
+	
+	TUint pageNum;
+	TUint remain = (TUint)size;
+	for (pageNum=0; pageNum<numOfPages; ++pageNum)
+	{
+		TUint8* pageStart = bytes + pageNum * PAGE_SIZE;
+		TUint pageLen = remain>PAGE_SIZE ? PAGE_SIZE : remain;
+		comprImage->AddPage((TUint16)pageNum, pageStart, (TUint16)pageLen);
+		remain -= pageLen;
+	}
+	
+	// Write out index table and compressed pages
+	comprImage->WriteOutTable(os);
+	
+	
+	delete comprImage;
+	comprImage = NULL;
+	
+}
+
+
+int DecompressPages(TUint8 * bytes, std::ifstream& is)
+{
+	TUint decompressedSize = 0;
+	CBytePairCompressedImage *comprImage = CBytePairCompressedImage::NewLC(0, 0);
+	if( NULL == comprImage)
+	{
+		//Print(EError," NULL == comprImage\n");
+		return KErrNoMemory;
+	}
+
+	TUint numberOfPages = 0;
+	comprImage->ReadInTable(is, numberOfPages);
+
+
+	TUint8* iPageStart;
+	TUint16 iPage = 0;
+	
+	while(iPage < numberOfPages )
+	{
+		iPageStart = &bytes[iPage * PAGE_SIZE];
+		
+		decompressedSize += comprImage->GetPage(iPage, iPageStart);
+
+		++iPage;
+	}
+	
+	delete comprImage;
+	return decompressedSize;
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/parameterlistinterface.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,31 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation of the Interface ParameterListInterface for the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+#include "parameterlistinterface.h"
+
+/**
+Destructor for the ParameterListInterface Class
+
+@internalComponent
+@released
+*/
+ParameterListInterface::~ParameterListInterface()
+{
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/parameterlistinterface.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,285 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation of the Header file for the ParameterListInterface of the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+#ifndef PARAMETERLISTINTERFACE_H
+#define PARAMETERLISTINTERFACE_H
+
+#ifdef _MSC_VER 
+#pragma warning(disable: 4786) // identifier was truncated to '255' characters in the debug information
+#pragma warning(disable: 4702) // unreachable code
+#endif
+
+#include <string>
+#include <vector>
+#include "e32imagedefs.h"
+
+enum ETargetType
+{
+	ETargetTypeNotSet = - 2,
+	EInvalidTargetType = - 1,	
+	/** Target type is Library */
+	ELib,
+	/** Target type is DLL */
+	EDll,
+	EExe,
+	EPolyDll,
+	EExexp,
+	EStdExe
+};
+
+typedef unsigned int UINT;
+
+using std::vector;
+/**
+This class is the abstract base class from which ParameterManager is derived.
+
+@internalComponent
+@released
+*/
+class ParameterListInterface
+{
+
+public:
+	typedef vector<char *> LibSearchPaths;
+
+	struct SysDefs
+	{
+		unsigned int iSysDefOrdinalNum;
+		char * iSysDefSymbolName;
+	};
+
+	typedef struct SysDefs Sys;
+
+	typedef std::string string;
+
+	virtual ~ParameterListInterface();
+/**
+This function extracts the DEF file name that is passed as input through the --definput option.
+
+@internalComponent
+@released
+
+@return the name of the input DEF file if provided as input through --definput or 0.
+*/
+	virtual char * DefInput()=0;
+/**
+This function extracts the Elf file name that is passed as input through the --dsoin option.
+
+@internalComponent
+@released
+
+@return the name of the input Elf file if provided as input through --dsoin or 0.
+*/
+	virtual char * ElfInput()=0;
+/**
+This function extracts the E32 image name that is passed as input through the --e32dump option.
+
+@internalComponent
+@released
+
+@return the name of the input E32 image if provided as input through --e32dump or 0.
+*/
+	virtual char * E32Input()=0;
+	virtual bool E32ImageInOption()=0;
+	virtual bool FileDumpOption()=0;
+	virtual int DumpOptions()=0;
+
+/**
+This function extracts the output DEF file name that is passed as input through the --defoutput option.
+
+@internalComponent
+@released
+
+@return the name of the output DEF file if provided as input through --defoutput or 0.
+*/
+	virtual char * DefOutput()=0;
+/**
+This function extracts the DSO file name that is passed as input through the --dso option.
+
+@internalComponent
+@released
+
+@return the name of the output DSO file if provided as input through --dso or 0.
+*/
+	virtual char * DSOOutput()=0;
+/**
+This function extracts the E32 image output that is passed as input through the --output option.
+
+@internalComponent
+@released
+
+@return the name of the output E32 image output if provided as input through --output or 0.
+*/
+	virtual char * E32ImageOutput()=0;
+/**
+This function extracts the target type that is passed as input through the --targettype option.
+
+@internalComponent
+@released
+
+@return the name of the input target type if provided as input through --targettype or 0.
+*/
+	virtual ETargetType TargetTypeName()=0;
+/**
+This function extracts the name of the DLL (that the DSO is to be linked with) 
+that is passed as input through the --linkas option.
+
+@internalComponent
+@released
+
+@return the name of the DLL name to be linked with if provided as input through --linkas or 0.
+*/
+	virtual char * LinkAsDLLName()=0;
+/**
+This function extracts the path (where the intermediate libraries should be put)
+that is passed as input through the --libpath option.
+
+@internalComponent
+@released
+
+@return the path if provided as input through --libpath or 0.
+*/
+	virtual LibSearchPaths& LibPath()=0;
+/**
+This function extracts the filename from the absolute path that is given as input.
+
+@internalComponent
+@released
+
+@param aFileName
+The filename alongwith the absolute path.
+
+@return the filename (without the absolute path) for valid input else the filename itself.
+
+*/
+	virtual char * FileName(char * aArg)=0;
+/**
+This function finds out the directory separator '\' in the path
+
+@internalComponent
+@released
+
+@return the directory spearator '\'
+*/
+	virtual char DirectorySeparator()=0;
+/**
+This function finds out if the --definput option is passed to the program.
+
+@internalComponent
+@released
+
+@return True if --definput option is passed in or False.
+*/
+	virtual bool DefFileInOption()=0;
+/**
+This function finds out if the --elfinput option is passed to the program.
+
+@internalComponent
+@released
+
+@return True if --elfinput option is passed in or False.
+*/
+	virtual bool ElfFileInOption()=0;
+/**
+This function finds out if the --dso option is passed to the program.
+
+@internalComponent
+@released
+
+@return True if --dso option is passed in or False.
+*/
+	virtual bool DSOFileOutOption()=0;
+/**
+This function finds out if the --linkas option is passed to the program.
+
+@internalComponent
+@released
+
+@return True if --linkas option is passed in or False.
+*/
+	virtual bool LinkAsOption()=0;
+/**
+This function parses the command line options and sets the appropriate values based on the
+input options.
+
+@internalComponent
+@released
+
+*/
+	virtual void ParameterAnalyser()=0;
+
+	virtual bool LogFileOption()=0;
+	virtual char* LogFile()=0;
+
+	virtual bool E32OutOption()=0;
+	virtual bool DefFileOutOption()=0;
+
+	virtual bool Uid1Option()=0;
+	virtual bool SecureIdOption()=0;
+	virtual bool VendorIdOption()=0;
+
+	virtual bool MessageFileOption()=0;
+	virtual char* MessageFile()=0;
+
+	virtual bool DumpMessageFileOption()=0;
+	virtual char* DumpMessageFile()=0;
+
+	virtual Sys SysDefSymbols(int count)=0;
+
+
+	virtual UINT Uid1() = 0;
+	virtual UINT Uid2() = 0;
+	virtual UINT Uid3() = 0;
+	virtual UINT SecureId() = 0;
+	virtual UINT VendorId() = 0;
+	virtual bool FixedAddress() = 0;
+	virtual bool Compress() = 0;
+	virtual UINT CompressionMethod() = 0;
+	virtual size_t HeapCommittedSize() = 0;
+	virtual size_t HeapReservedSize() = 0;
+	virtual size_t StackCommittedSize() = 0;
+	virtual bool Unfrozen() = 0;
+	virtual bool IgnoreNonCallable() = 0;
+	virtual SCapabilitySet Capability() = 0;
+	virtual int SysDefCount() = 0;
+	virtual char * FileDumpSubOptions() = 0;
+	virtual TProcessPriority Priority() = 0;
+	virtual bool DllDataP() = 0;
+	virtual unsigned int Version() = 0;
+	virtual bool CallEntryPoint() = 0; //{ return true;}
+	virtual UINT FPU() = 0;
+
+	virtual bool IsCodePaged() = 0;
+	virtual bool IsCodeUnpaged() = 0;
+	virtual bool IsCodeDefaultPaged() = 0;
+
+	virtual bool IsDataPaged() = 0;
+	virtual bool IsDataUnpaged() = 0;
+	virtual bool IsDataDefaultPaged() = 0;
+	
+	virtual bool ExcludeUnwantedExports() = 0;
+	virtual bool IsCustomDllTarget() = 0;
+	virtual bool SymNamedLookup() = 0;
+	virtual bool IsDebuggable() = 0;
+	virtual bool IsSmpSafe() = 0;
+};
+
+
+#endif // PARAMETERLISTINTERFACE_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/parametermanager.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,3730 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation of the Class ParameterManager for the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+// This must go before ParameterManager.h
+#define __INCLUDE_CAPABILITY_NAMES__
+#include <e32capability.h>
+
+#include "pl_common.h"
+#include "parametermanager.h"
+#include "errorhandler.h"
+#include <iostream>
+
+#include "h_utl.h"
+#include "h_ver.h"
+/**
+Constructor for the ParameterManager.
+
+@internalComponent
+@released
+
+@param aArgc
+ The number of command line arguments passed into the program
+@param aArgv
+ The listing of all the arguments
+*/
+ParameterManager::ParameterManager(int aArgc, char** aArgv) :
+	iArgc(aArgc),
+	iArgv(aArgv),
+	iImageLocation(0), 
+	iImageName(0),
+	iTargetTypeOption(false), 
+	iDefFileInOption(false),
+	iDefFileOutOption(false), 
+	iFileDumpOption(false),		
+	iDSOFileOutOption(false), 
+	iOutFileOption(false),
+	iElfFileInOption(false),
+	iE32ImageInOption(false),			
+	iLinkAsOption(false),
+	iUid1Option(false), 	
+	iSecureIDOption(false), 
+	iVendorIDOption(false),
+	iUID1(0), 
+	iUID2(0), 
+	iUID3(0),
+	iSecureID(0),
+	iVendorID(0),
+	iCompress(true),
+	iCompressionMethod(KUidCompressionDeflate),
+	iFixedAddress(false),
+	iHeapCommittedSize(0x1000),
+	iHeapReservedSize(0x100000),	
+	iStackCommittedSize(0x2000),
+	iUnfrozen(false),
+	iIgnoreNonCallable(false),
+	iTargetTypeName(ETargetTypeNotSet),	
+	iDefOutput(0),
+	iDSOOutput(0),	
+	iOutFileName(0),
+	iDefInput(0),		
+	iElfInput(0),
+	iE32Input(0),
+	iLinkDLLName(0),
+	iDumpOptions(EDumpDefaults),
+	iFileDumpSubOptions(0),	
+	iSysDefOption(false),
+	iLogFileName(0),
+	iLogFileOption(false),
+	iMessageFileName(0),
+	iMessageFileOption(false),		
+	iDumpMessageFileName(0),	
+	iDumpMessageFileOption(false),
+	iDllDataP(false),	
+	iLibPathList (0),	
+	iSysDefCount (0),	
+	iPriorityOption(false),
+	iPriorityVal((TProcessPriority)0),
+	iVersion(0x000a0000u),
+	iVersionOption(false),
+	iCallEntryPoint(true),
+	iFPU(0),
+	iFPUOption(false),
+	iArgumentCount(0),
+
+	iCodePaged(false),
+	iCodeUnpaged(false),
+	iCodeDefaultPaged(false),
+
+	iDataPaged(false),
+	iDataUnpaged(false),
+	iDataDefaultPaged(false),
+	
+	iExcludeUnwantedExports(false),
+	iCustomDllTarget(false),
+	iSymNamedLookup(false),
+	iDebuggable(false),
+	iSmpSafe(false)
+{
+	iArgumentCount = aArgc;
+	ParamList temp(aArgv, aArgv+aArgc);
+	iParamList = temp;
+	iCapability.iCaps[0] = 0;	
+	iCapability.iCaps[1] = 0;
+}
+
+/**
+Destructor for the ParameterManager.
+
+@internalComponent
+@released
+*/
+ParameterManager::~ParameterManager()
+{
+	DELETE_PTR_ARRAY(iImageLocation);
+}
+
+/**
+Function to check if the given value is a valid number (decimal value)
+
+@internalComponent
+@released
+
+@param aArg
+Value to be checked
+@return True if the provided value is a decimal value.
+*/
+static bool IsAllDigits(const char * aArg)
+{
+	const char * p = aArg;
+	while (*p)
+	{
+		if (!isdigit(*p++)) return false;
+	}
+	return true;	
+}
+
+/**
+Function to check if the given value is a valid number (Hexadecimal value)
+
+@internalComponent
+@released
+
+@param aArg
+Value to be checked
+@return True if the provided value is a hexadecimal value.
+*/
+static bool IsAllXDigits(const char * aArg)
+{
+	const char * p = aArg;
+	while (*p)
+	{
+		if (!isxdigit(*p++)) return false;
+	}
+	return true;	
+}
+
+/**
+Function to check if the given value is a valid number (Decimal or Hexadecimal value)
+
+@internalComponent
+@released
+
+@param aVal
+Holds the validated number.
+@param aArg
+Value to be checked
+@return True if the provided value is a valid number.
+*/
+static bool GetUInt(UINT & aVal, const char * aArg)
+{
+	char * final = (char *)aArg;
+	// try base 10 first
+	if (IsAllDigits(aArg))
+	{
+		aVal = strtoul(aArg, &final, 10);
+		if (aArg != final) return true;
+		// now try as hex
+	}
+	if (aArg[0] == '0' && (aArg[1] == 'x' || aArg[1] == 'X'))
+	{
+		aArg += 2;
+		if (IsAllXDigits(aArg))
+		{
+			final = (char *)aArg ;
+			aVal = strtoul(aArg, &final, 16);
+			if (aArg != final) return true;
+		}
+	}
+
+	return false;
+}
+
+const char * ParameterManager::iParamPrefix = "--";
+const char * ParameterManager::iParamShortPrefix = "-";
+const char ParameterManager::iParamEquals = '=';
+
+// Option Map
+const ParameterManager::OptionDesc ParameterManager::iOptions[] = 
+{
+	{ 
+		"definput", 
+		(void *)ParameterManager::ParseDefInput,
+		"Input DEF File",
+	},
+	{ 
+		"defoutput", 
+		(void *)ParameterManager::ParseDefOutput,
+		"Output DEF File",
+	},
+	{ 
+		"elfinput", 
+		(void *)ParameterManager::ParseElfInput,
+		"Input ELF File",
+	},
+	{ 
+		"output", 
+		(void *)ParameterManager::ParseOutput,
+		"Output E32 Image",
+	},
+	{ 
+		"dso", 
+		(void *)ParameterManager::ParseDSOOutput,
+		"Output import DSO File",
+	},
+	{ 
+		"targettype", 
+		(void *)ParameterManager::ParseTargetTypeName,
+		"Target Type",
+	},
+	{ 
+		"linkas", 
+		(void *)ParameterManager::ParseLinkAs,
+		"name",
+	},
+	{ 
+		"uid1", 
+		(void *)ParameterManager::ParseUID1,
+		"UID 1",
+	},
+	{ 
+		"uid2", 
+		(void *)ParameterManager::ParseUID2,
+		"UID 2",
+	},
+	{ 
+		"uid3", 
+		(void *)ParameterManager::ParseUID3,
+		"UID 3",
+	},
+	{ 
+		"sid", 
+		(void *)ParameterManager::ParseSecureId,
+		"Secure ID",
+	},
+	{ 
+		"vid", 
+		(void *)ParameterManager::ParseVendorId,
+		"Vendor ID",
+	},
+	{ 
+		"fixedaddress", 
+		(void *)ParameterManager::ParseFixedAddress,
+		"Has fixed address",
+		},
+	{ 
+		"uncompressed", 
+		(void *)ParameterManager::ParseUncompressed,
+		"Don't compress output e32image",
+		},
+	{
+		"compressionmethod",
+		(void*)ParameterManager::ParseCompressionMethod,
+		"Input compression method [none|inflate|bytepair]\n\t\tnone     no compress the image.\
+		\n\t\tinflate  compress image with Inflate algorithm.\
+		\n\t\tbytepair tcompress image with BytePair Pak algorithm."
+	},
+	{ 
+		"heap", 
+		(void *)ParameterManager::ParseHeap,
+		"Heap committed and reserved size in bytes(.EXEs only)",
+	},
+	{ 
+		"stack", 
+		(void *)ParameterManager::ParseStackCommitted,
+		"Stack size in bytes(.EXEs only)",
+	},
+	{ 
+		"unfrozen", 
+		(void *)ParameterManager::ParseUnfrozen,
+		"Don't treat input dot-def file as frozen",
+	},
+	{ 
+		"ignorenoncallable", 
+		(void *)ParameterManager::ParseIgnoreNonCallable,
+		"Suppress implicit exports",
+	},
+	{
+		"capability",
+		(void *)ParameterManager::ParseCapability,
+		"capability option",
+	},
+	{ 
+		"libpath", 
+		(void *)ParameterManager::ParseLibPaths,
+		"A semi-colon separated search path list to locate import DSOs",
+	},
+	{
+		"sysdef",
+		(void *)ParameterManager::ParseSysDefs,
+		"A semi-colon separated Pre Defined Symbols to be exported and the ordinal number",
+	},
+	{
+		"log",
+		(void *)ParameterManager::ParseLogFile,
+		"Output Log Message",
+	},
+	{
+		"messagefile",
+		(void *)ParameterManager::ParseMessageFile,
+		"Input Message File",
+	},
+	{
+		"dumpmessagefile",
+		(void *)ParameterManager::ParseDumpMessageFile,
+		"Output Message File",
+	},
+	{
+		"dlldata", 
+		(void *)ParameterManager::ParseAllowDllData,
+		"Allow writable static data in DLL",
+	},
+	{
+		"dump",
+		(void *)ParameterManager::ParseFileDump,
+		"Input dump options [hscdeit] --e32input <filename>\n\tFlags for dump:\n\t\th Header \
+		 \n\t\ts Security info\n\t\tc Code section\n\t\td Data section \
+		 \n\t\te Export info\n\t\ti Import table\n\t\tt Symbol Info",
+	},
+	{
+		"e32input",
+		(void *)ParameterManager::ParseE32ImageInput,
+		"Input E32 Image File Name",
+	},
+	{
+		"priority",
+		(void *)ParameterManager::ParsePriority,
+		"Input Priority",
+	},
+	{
+		"version",
+		(void *)ParameterManager::ParseVersion,
+		"Module Version",
+	},
+	{
+		"callentry",
+		(void *)ParameterManager::ParseCallEntryPoint,
+		"Call Entry Point",
+	},
+	{
+		"fpu",
+		(void *)ParameterManager::ParseFPU,
+		"FPU type [softvfp|vfpv2]",
+	},
+	{
+        "codepaging",
+		(void *)ParameterManager::ParseCodePaging,
+		"Code Paging Strategy [paged|unpaged|default]",
+	},
+	{
+        "datapaging",
+		(void *)ParameterManager::ParseDataPaging,
+		"Data Paging Strategy [paged|unpaged|default]",
+	},
+
+	{
+		"paged",
+		(void *)ParameterManager::ParsePaged,
+		"This option is deprecated. Use --codepaging=paged instead.",
+	},
+	{
+		"unpaged",
+		(void *)ParameterManager::ParseUnpaged,
+		"This option is deprecated. Use --codepaging=unpaged instead.",
+	},
+	{
+		"defaultpaged",
+		(void *)ParameterManager::ParseDefaultPaged,
+		"This option is deprecated. Use --codepaging=default instead.",
+	},
+
+	{
+		"excludeunwantedexports",
+		(void *)ParameterManager::ParseExcludeUnwantedExports,
+		"Exclude Unwanted Exports",
+	},
+	{
+		"customdlltarget",
+		(void *)ParameterManager::ParseIsCustomDllTarget,
+		"Custom Dll Target",
+	},
+	{
+		"namedlookup",
+		(void*)ParameterManager::ParseSymNamedLookup,
+		"Enable named lookup of symbols",
+	},
+	{
+		"debuggable",
+		(void*)ParameterManager::ParseDebuggable,
+		"Debuggable by run-mode debug subsystem",
+	},
+	{
+		"smpsafe",
+		(void*)ParameterManager::ParseSmpSafe,
+		"SMP Safe",
+	},
+	{ 
+		"help", 
+		(void *)ParameterManager::ParamHelp,
+		0,
+	},
+};
+
+// Map for the short options (abbreviation)
+const ParameterManager::OptionDesc ParameterManager::iShortOptions[] =
+{
+	{ 
+		"h", 
+		(void *)ParameterManager::ParamHelp,
+		0,
+	},
+};
+
+/**
+This function finds the total number of options with normal prefix ('--')
+
+@internalComponent
+@released
+
+@return the total number of options with normal prefix '--' in the option list.
+*/
+int ParameterManager::NumOptions()
+{
+	return (sizeof(iOptions) / sizeof(OptionDesc));
+}
+
+/**
+This function finds the total number of options with short prefix ('-')
+
+@internalComponent
+@released
+
+@return the total number of options with short prefix '-' in the option list.
+*/
+int ParameterManager::NumShortOptions()
+{
+	return (sizeof(iShortOptions) / sizeof(OptionDesc));
+}
+
+/**
+This function initializes the option list, options preceeded by '--' and '-'
+
+@internalComponent
+@released
+*/
+void ParameterManager::InitParamParser()
+{
+	int lim = NumOptions();
+	int shortoptionlim = NumShortOptions();
+	int i;
+
+ 	for (i = 0; i < lim; i++)
+	{
+		string aOption = iOptions[i].iName;
+		iOptionMap[aOption] = &iOptions[i];
+	}
+
+	for (i = 0; i < shortoptionlim; i++)
+	{
+		string aShortOption = iShortOptions[i].iName;
+		iShortOptionMap[aShortOption] = &iShortOptions[i];
+	}
+}
+
+/**
+This function parses the command line options and identifies the input parameters.
+If no options or if --log is the only option passed in, then usage information will 
+be displayed.
+
+@internalComponent
+@released
+*/
+void ParameterManager::ParameterAnalyser()
+{
+	InitParamParser();
+	const OptionDesc * aHelpDesc = iOptionMap["help"];
+	int prefixLen = strlen(iParamPrefix);
+	int prefixShortLen = strlen(iParamShortPrefix);
+	int ArgCount = iArgumentCount-1;
+	RecordImageLocation();
+	ParamList::iterator p = iParamList.begin()+1;
+
+	int OnlyLoggingOption = 0;
+	
+	// Have to have some arguments. Otherwise, assume this is a request for --help and display the usage information
+	if (p == iParamList.end())
+	{
+		ParserFn parser = (ParserFn)aHelpDesc->iParser ;
+		parser(this, "help", 0, aHelpDesc);
+	}
+
+	if ( (ArgCount ==1) && (!strncmp(*p,"--log",5)) )
+		OnlyLoggingOption = 1;
+
+	for (; p != iParamList.end(); p++)
+	{
+		int Prefix=0, ShortPrefix=0;
+		ArgCount--;
+		
+
+		// Check if the option provided is correct and display help on getting incorrect options
+		try 
+		{
+			if (!strncmp(*p, iParamPrefix, prefixLen))
+				Prefix = 1;
+			else if (!strncmp(*p, iParamShortPrefix, prefixShortLen))
+				ShortPrefix = 1;
+			else // Option is neither preceeded by '-' or by '--'
+				throw ParameterParserError(OPTIONNAMEERROR,*p);
+		}
+		catch (ErrorHandler& error) 
+		{ 
+			error.Report();
+			ParserFn parser = (ParserFn)aHelpDesc->iParser ;
+			parser(this, *p, 0, 0);
+		}
+		
+		char *option;
+		const OptionDesc * aDesc;
+		char * optval=NULL;
+
+		// Get the option name excluding the prefix, '-' or '--'if (Prefix)
+		if (Prefix)
+			{
+ 			option = *p + prefixLen;
+			}
+ 		else
+			{
+			option = *p + prefixShortLen;
+			}
+
+		char * pos = strchr(*p, iParamEquals);
+
+		char *end = pos ? pos : *p + strlen(*p);
+
+		string aName(option, end);
+		string optionval;
+
+		if (pos)
+		{
+			if (*end != 0 && (*(end+1) != NULL) )
+			{
+			// Check to ensure that optval points to the correct option value
+				optval=end+1;
+			}
+			if ( ((p+1) != iParamList.end()) && (**(p+1) != '-') )
+			{
+				pos = 0;
+			}
+		}
+		if ( !pos)
+		{
+			// The option is not immediately preceeded by '='
+			// Space may be used to separate the input option and the paramters
+			// '=' may be enclosed within space
+			//if ((p+1) != iParamList.end())
+			if (ArgCount != 0) //To find if we have consumed all the arguments
+			{
+				while ( ((p+1) != iParamList.end()) && (**(p+1) != '-') )
+				{
+					end = *(p+1);
+					if (*end == '=') 
+					{
+						if ( (*(end+1) != ' ') && (*(end+1) != NULL) )
+							// This is the case where '=' is preceeded by space.
+							optionval += end+1;
+					}
+					else
+					{
+						optionval += end;
+					}
+					p++;
+					ArgCount-- ;
+				}
+				if (optionval.length())
+				{
+					if (optval)
+  						strcat(optval, optionval.c_str());
+  					else
+  					{
+  						optval = new char[optionval.length()+1];
+  						strcpy(optval, optionval.c_str());
+  					}
+				}				
+			}
+		}
+	
+		if (Prefix)
+			aDesc = iOptionMap[aName];
+		else
+			aDesc = iShortOptionMap[aName];
+
+		ParserFn parser = aDesc ?(ParserFn)aDesc->iParser : (ParserFn)aHelpDesc->iParser ;
+		// NB aDesc might be NULL which tells help to exit with error.
+		try
+		{
+			if (!aDesc)
+				throw ParameterParserError(OPTIONNAMEERROR,*p);
+		}
+		catch (ErrorHandler& error) 
+		{ 
+			error.Report();
+			ParserFn parser = (ParserFn)aHelpDesc->iParser ;
+			parser(this, "help", 0, 0);
+		}
+
+		// If --log is the only option provided, then display the usage information
+		if (OnlyLoggingOption)
+		{
+			parser(this, (char *)aName.c_str(), optval, aDesc);
+			parser = (ParserFn)aHelpDesc->iParser ;
+			parser(this, "help", 0, 0);
+		}
+
+		parser(this, const_cast<char*>(aName.c_str()), optval, aDesc);
+	}
+}
+
+/**
+This function extracts the path
+
+@internalComponent
+@released
+
+@param aPathName
+The file path name
+
+@return the Path in case of valid path name, else 0.
+
+*/
+char * ParameterManager::Path(char * aPathName)
+{
+	string str(aPathName);
+	size_t pos = str.find_last_of(DirectorySeparator());
+
+	if (pos < str.size())
+	{
+		char * aPath = new char[pos+2];
+		memcpy(aPath, aPathName, pos+1);
+		aPath[pos+1] = 0;
+		return aPath;
+	}
+	else
+		return (char *)0;
+}
+
+
+/**
+This function extracts the location where the image is to be dumped and the image name.
+
+@internalComponent
+@released
+*/
+void ParameterManager::RecordImageLocation()
+{
+	iImageLocation = Path(iArgv[0]);
+	iImageName = FileName(iArgv[0]);
+}
+
+/**
+This function finds out if the --definput option is passed to the program.
+
+@internalComponent
+@released
+
+@return True if --definput option is passed in or False.
+*/
+bool ParameterManager::DefFileInOption()
+{
+	return iDefFileInOption;
+}
+
+/**
+This function finds out if the --e32input option is passed to the program.
+
+@internalComponent
+@released
+
+@return True if --e32input option is passed in or False.
+*/
+bool ParameterManager::E32ImageInOption()
+{
+	return iE32ImageInOption;
+}
+
+/**
+This function finds out if the --elfinput option is passed to the program.
+
+@internalComponent
+@released
+
+@return True if --elfinput option is passed in or False.
+*/
+bool ParameterManager::ElfFileInOption()
+{
+	return iElfFileInOption;
+}
+
+/**
+This function finds out if the --dso option is passed to the program.
+
+@internalComponent
+@released
+
+@return True if --dso option is passed in or False.
+*/
+bool ParameterManager::DSOFileOutOption()
+{
+	return iDSOFileOutOption;
+}
+
+/**
+This function finds out if the --defoutput option is passed to the program.
+
+@internalComponent
+@released
+
+@return True if --defoutput option is passed in or False.
+*/
+bool ParameterManager::DefFileOutOption()
+{
+	return iDefFileOutOption;
+}
+
+/**
+This function finds out if the --output option is passed to the program.
+
+
+@internalComponent
+@released
+
+@return true if --output option is passed else return False.
+*/
+bool ParameterManager::E32OutOption()
+{
+	return iOutFileOption;
+}
+
+/**
+This function finds out if the --linkas option is passed to the program.
+
+@internalComponent
+@released
+
+@return True if --linkas option is passed in or False.
+*/
+bool ParameterManager::LinkAsOption()
+{
+	return iLinkAsOption;
+}
+
+
+/**
+This function finds out if the --UID1 option is passed to the program.
+
+@internalComponent
+@released
+
+@return True if --UID1 option is passed in or False.
+*/
+bool ParameterManager::Uid1Option()
+{
+	return iUid1Option;
+}
+
+/**
+This function finds out if the --sid option is passed to the program.
+
+@internalComponent
+@released
+
+@return True if --sid option is passed in or False.
+*/
+bool ParameterManager::SecureIdOption()
+{
+	return iSecureIDOption;
+}
+
+/**
+This function finds out if the --vid option is passed to the program.
+
+@internalComponent
+@released
+
+@return True if --vid option is passed in or False.
+*/
+bool ParameterManager::VendorIdOption()
+{
+	return iVendorIDOption;
+}
+
+/**
+This function finds out if the --log option is passed to the program.
+
+@internalComponent
+@released
+
+@return True if --log option is passed in or False.
+*/
+bool ParameterManager::LogFileOption()
+{
+	return iLogFileOption;
+}
+
+/**
+This function finds out if the --messagefile option is passed to the program.
+
+@internalComponent
+@released
+
+@return True if --messagefile option is passed in or False.
+*/
+bool ParameterManager::MessageFileOption()
+{
+	return iMessageFileOption;
+}
+
+/**
+This function finds out if the --dumpmessagefile option is passed to the program.
+
+@internalComponent
+@released
+
+@return True if --dumpmessagefile option is passed in or False.
+*/
+bool ParameterManager::DumpMessageFileOption()
+{
+	return iDumpMessageFileOption;
+}
+
+/**
+This function finds out if the --fixedaddress option is passed to the program.
+
+@internalComponent
+@released
+
+@return True if --fixedaddress option is passed in or False.
+*/
+bool ParameterManager::FixedAddress()
+{
+	return iFixedAddress;
+}
+
+/**
+This function finds out if the --uncompressed option is passed to the program.
+
+@internalComponent
+@released
+
+@return True if --uncompressed option is passed in or False.
+*/
+bool ParameterManager::Compress()
+{
+	return iCompress;
+}
+
+
+/**
+This function finds out if the --compressionmethod option is passed to the program.
+
+@internalComponent
+@released
+
+@return UId if --compressionmethod option is passed in or UId of deflate compressor (compatibility).
+*/
+UINT ParameterManager::CompressionMethod()
+{
+	return iCompressionMethod;
+}
+
+
+/**
+This function finds out if the --unfrozen option is passed to the program.
+
+@internalComponent
+@released
+
+@return True if --unfrozen option is passed in or False.
+*/
+bool ParameterManager::Unfrozen()
+{
+	return iUnfrozen;
+}
+
+/**
+This function finds out if the --ignorenoncallable option is passed to the program.
+
+@internalComponent
+@released
+
+@return True if --ignorenoncallable option is passed in or False.
+*/
+bool ParameterManager::IgnoreNonCallable()
+{
+	return iIgnoreNonCallable;
+}
+
+/**
+This function finds out if the --dlldata option is passed to the program.
+
+@internalComponent
+@released
+
+@return True if --dlldata option is passed in or False.
+*/
+bool ParameterManager::DllDataP()
+{
+ 	return iDllDataP;
+}
+
+/**
+This function finds out if the --version option is passed to the program.
+
+@internalComponent
+@released
+
+@return True if --version option is passed in or False.
+*/
+bool ParameterManager::VersionOption()
+{
+	return iVersionOption;
+}
+
+/**
+This function finds out if the --callentry option is passed to the program.
+
+@internalComponent
+@released
+
+@return True if --callentry option is passed in or False.
+*/
+bool ParameterManager::CallEntryPoint()
+{
+	return iCallEntryPoint;
+}
+
+/**
+This function finds out if the --priority option is passed to the program.
+
+@internalComponent
+@released
+
+@return True if --priority option is passed in or False.
+*/
+bool ParameterManager::PriorityOption()
+{
+	return iPriorityOption;
+}
+
+/**
+This function finds out if the --sysdef option is passed to the program.
+
+@internalComponent
+@released
+
+@return True if --sysdef option is passed in or False.
+*/
+bool ParameterManager::SysDefOption()
+{
+	return iSysDefOption;
+}
+
+/**
+This function finds out if the --dump option is passed to the program.
+
+@internalComponent
+@released
+
+@return True if --dump option is passed in or False
+*/
+bool ParameterManager::FileDumpOption()
+{
+	return iFileDumpOption;
+}
+
+/**
+This function finds out if the --fpu option is passed to the program.
+
+@internalComponent
+@released
+
+@return True if --fup option is passed in or False.
+*/
+bool ParameterManager::FPUOption()
+{
+	return iFPUOption;
+}
+
+
+/**
+This function extracts the DEF file name that is passed as input through the --definput option.
+
+@internalComponent
+@released
+
+@return the name of the input DEF file if provided as input through --definput or 0.
+*/
+char * ParameterManager::DefInput()
+{
+	return iDefInput;
+}
+
+/**
+This function extracts the Elf file name that is passed as input through the --elfinput option.
+
+@internalComponent
+@released
+
+@return the name of the input Elf file if provided as input through --elfinput or 0.
+*/
+char * ParameterManager::ElfInput()
+{
+	return iElfInput;
+}
+
+/**
+This function extracts the E32 image name that is passed as input through the --e32input option.
+
+@internalComponent
+@released
+
+@return the name of the input E32 image if provided as input through --e32input or 0.
+*/
+char * ParameterManager::E32Input()
+{
+	return iE32Input;
+}
+
+/**
+This function extracts the output DEF file name that is passed as input through the --defoutput option.
+
+@internalComponent
+@released
+
+@return the name of the output DEF file if provided as input through --defoutput or 0.
+*/
+char * ParameterManager::DefOutput()
+{
+	return iDefOutput;
+}
+
+/**
+This function extracts the DSO file name that is passed as input through the --dso option.
+
+@internalComponent
+@released
+
+@return the name of the output DSO file if provided as input through --dso or 0.
+*/
+char * ParameterManager::DSOOutput()
+{
+	return iDSOOutput;
+}
+
+/**
+This function extracts the E32 image output that is passed as input through the --output option.
+
+@internalComponent
+@released
+
+@return the name of the output E32 image output if provided as input through --output or 0.
+*/
+char * ParameterManager::E32ImageOutput()
+{
+	return iOutFileName;
+}
+
+/**
+This function extracts the target type that is passed as input through the --targettype option.
+
+@internalComponent
+@released
+
+@return the name of the input target type if provided as input through --targettype or 0.
+*/
+ETargetType ParameterManager::TargetTypeName()
+{
+	return iTargetTypeName;
+}
+
+/**
+This function extracts the name of the DLL (that the DSO is to be linked with) 
+that is passed as input through the --linkas option.
+
+@internalComponent
+@released
+
+@return the name of the DLL name to be linked with if provided as input through --linkas or 0.
+*/
+char * ParameterManager::LinkAsDLLName()
+{
+	return iLinkDLLName;
+}
+
+/**
+This function extracts the path (where the intermediate libraries should be put)
+that is passed as input through the --libpath option.
+
+@internalComponent
+@released
+
+@return the path if provided as input through --libpath or 0.
+*/
+ParameterListInterface::LibSearchPaths& ParameterManager::LibPath()
+{
+	return iLibPathList;
+}
+
+/**
+This function extracts the total number of predefined symbols passed to --sysdef option.
+
+@internalComponent
+@released
+
+@return the total number of predefined symbols passed through --elfinput or 0.
+*/
+int ParameterManager::SysDefCount()
+{
+	return iSysDefCount;
+}
+
+/**
+This function extracts the E32 image dump options passed as input through the --dump option.
+
+/@internalComponent
+@released
+
+@return the name of the dump options if provided as input through --dump or 0.
+*/
+char * ParameterManager::FileDumpSubOptions()
+{
+	return iFileDumpSubOptions;
+}
+
+/**
+This function extracts the E32 image dump options in integer value passed as character input
+through the --dump option.
+
+@internalComponent
+@released
+
+@return the name of the dump options in integer.
+*/
+int ParameterManager::DumpOptions()
+{
+      return iDumpOptions;
+}
+
+/**
+This function gets the first UID in a compound identifier (UID type) that is passed as 
+input through the --uid1 option.UID1 differentiates the executables, DLLs and file stores.
+
+@internalComponent
+@released
+
+@return the System level identifier if provided as input through --uid1 or 0.
+*/
+UINT ParameterManager::Uid1()
+{
+	return iUID1;
+}
+
+/**
+This function gets the UID2 that is passed as input through the --uid2 option.
+UID2 differentiates the static interface (shared library) and polymorphic interface 
+(application or plug-in framework) DLLs.
+	
+@internalComponent
+@released
+
+@return the Interface identifier if provided as input through --uid2 or 0.
+*/
+UINT ParameterManager::Uid2()
+{
+	return iUID2;
+}
+
+/**
+This function gets the UID3 that is passed as input through the --uid3 option. UID3 
+is shared by all objects belonging to a given program, including library DLLs if any, 
+framework DLLs, and all documents.
+	
+@internalComponent
+@released
+
+@return the Project identifier if provided as input through --uid3 or 0.
+*/
+UINT ParameterManager::Uid3()
+{
+	return iUID3;
+}
+
+/**
+This function gets the Secure Id that is passed as input through the --sid option.
+
+@internalComponent
+@released
+
+@return the Secure Id if provided as input through --sid or 0.
+*/
+UINT ParameterManager::SecureId()
+{
+	return iSecureID;
+}
+
+/**
+This function gets the Vendor Id that is passed as input through the --vid option.
+
+@internalComponent
+@released
+
+@return the Vendor Id if provided as input through --vid or 0.
+*/
+UINT ParameterManager::VendorId()
+{
+	return iVendorID;
+}
+
+/**
+This function gets the capability value passed to '--capability' option.
+
+@internalComponent
+@released
+
+@return the capability value passed to '--capability' option.
+*/
+SCapabilitySet ParameterManager::Capability()
+{
+	return iCapability;
+}
+
+/**
+This function extracts the Log file name that is passed as input through the --log option.
+
+@internalComponent
+@released
+
+@return the name of the Log file if provided as input through --log or 0.
+*/
+char * ParameterManager::LogFile()
+{
+	return iLogFileName;
+}
+
+/**
+This function extracts the Message file name that is passed as input through the --messagefile option.
+
+@internalComponent
+@released
+
+@return the name of the Message file if provided as input through --messagefile or 0.
+*/
+char * ParameterManager::MessageFile()
+{
+	return iMessageFileName;
+}
+
+/**
+This function extracts the Message file name that is passed as input through the --dumpmessagefile option.
+
+@internalComponent
+@released
+
+@return the name of the Message file to be dumped if provided as input through --dumpmessagefile or 0.
+*/
+char * ParameterManager::DumpMessageFile()
+{
+	return iDumpMessageFileName;
+}
+
+/**
+This function extracts the list of predefined symbols that is passed as input through
+the --sysdef option.
+
+@internalComponent
+@released
+
+@return the list of predefined symbols that is passed as input through the --sysdef option.
+*/
+ParameterManager::Sys ParameterManager::SysDefSymbols(int sysdefcount)
+{
+	return iSysDefSymbols[sysdefcount];
+}
+
+/**
+This function extracts the heap commited size passed as input to --heap option.
+
+@internalComponent
+@released
+
+@return the heap commited size passed as input to --heap option.
+*/
+size_t ParameterManager::HeapCommittedSize()
+{
+ 	return iHeapCommittedSize;
+}
+
+/**
+This function extracts the heap reserved size passed as input to --heap option.
+
+@internalComponent
+@released
+
+@return the heap reserved size passed as input to --heap option.
+*/
+size_t ParameterManager::HeapReservedSize()
+{
+ 	return iHeapReservedSize;
+}
+
+/**
+This function extracts the stack commited size passed as input to --stack option.
+
+@internalComponent
+@released
+
+@return the stack commited size passed as input to --stack option.
+*/
+size_t ParameterManager::StackCommittedSize()
+{
+ 	return iStackCommittedSize;
+}
+
+/**
+This function extracts the priority value passed as input to --priority option.
+
+@internalComponent
+@released
+
+@return the priority value passed as input to --priority option
+*/
+TProcessPriority ParameterManager::Priority()
+{
+	return iPriorityVal;
+}
+
+/**
+This function extracts the version information passed as input to --version option.
+
+@internalComponent
+@released
+
+@return the version information passed as input to --version option.
+*/
+UINT ParameterManager::Version()
+{
+	return iVersion;
+}
+
+/**
+This function extracts the fpu information passed as input to the --fpu option.
+
+@internalComponent
+@released
+
+@return the fpu information passed as input to the --fpu option.
+*/
+UINT ParameterManager::FPU()
+{
+	return iFPU;
+}
+
+/**
+@internalComponent
+@released
+*/
+bool ParameterManager::IsCodePaged()
+{
+	return iCodePaged;
+}
+
+/**
+@internalComponent
+@released
+*/
+bool ParameterManager::IsCodeUnpaged()
+{
+	return iCodeUnpaged;
+}
+
+/**
+@internalComponent
+@released
+*/
+bool ParameterManager::IsCodeDefaultPaged()
+{
+	return iCodeDefaultPaged;
+}
+
+/**
+@internalComponent
+@released
+*/
+bool ParameterManager::IsDataPaged()
+{
+	return iDataPaged;
+}
+
+/**
+@internalComponent
+@released
+*/
+bool ParameterManager::IsDataUnpaged()
+{
+	return iDataUnpaged;
+}
+
+/**
+@internalComponent
+@released
+*/
+bool ParameterManager::IsDataDefaultPaged()
+{
+	return iDataDefaultPaged;
+}
+
+/**
+This function finds out if the --excludeunwantedexports option is passed to the program.
+
+@internalComponent
+@released
+
+@return true if --excludeunwantedexports option is passed in or False.
+*/
+bool ParameterManager::ExcludeUnwantedExports()
+{
+	return iExcludeUnwantedExports;
+}
+
+/**
+This function finds out if the --customdlltarget option is passed to the program.
+
+@internalComponent
+@released
+
+@return true if --customdlltarget option is passed in or False.
+*/
+bool ParameterManager::IsCustomDllTarget()
+{
+	return iCustomDllTarget;
+}
+
+/**
+This function extracts the SymNamedLookup information passed as input to the --namedlookup option.
+
+@internalComponent
+@released
+
+@return the namedlookup information passed as input to the --namedlookup option.
+*/
+bool ParameterManager::SymNamedLookup()
+{
+	return iSymNamedLookup;
+}
+
+/**
+This function determines if the -debuggable option is passed to the program.
+
+@internalComponent
+@released
+
+@return true if --debuggable is passed in or False.
+*/
+bool ParameterManager::IsDebuggable()
+{
+	return iDebuggable;
+}
+
+
+bool ParameterManager::IsSmpSafe()
+{
+	return iSmpSafe;
+}
+
+/**
+This function extracts the filename from the absolute path that is given as input.
+
+@internalComponent
+@released
+
+@param aFileName
+The filename alongwith the absolute path.
+
+@return the filename (without the absolute path) for valid input else the filename itself.
+*/
+char * ParameterManager::FileName(char * aFileName)
+{
+	string str(aFileName);
+	
+	size_t pos = str.find_last_of(DirectorySeparator());	
+#ifndef __LINUX__ 	
+	// Support Unix slashes on Windows when stripping filenames from paths
+	if (pos > str.size())
+		{
+		pos = str.find_last_of('/');
+		}
+#endif
+
+	if (pos < str.size())
+		return aFileName + pos + 1;
+	else
+		return aFileName;
+}
+
+/**
+This function finds out the directory separator '\' in the path
+
+@internalComponent
+@released
+
+@return the directory spearator '\'
+*/
+char ParameterManager::DirectorySeparator()
+{
+#ifdef __LINUX__ 
+	return '/';
+#else 
+	return '\\';
+#endif 
+}
+
+/**
+This function set the input Def file name that is passed through --definput option.
+
+void ParameterManager::ParseDefInput(ParameterManager * aPM, char * aOption, char * aValue, void * aDesc)
+
+@internalComponent
+@released
+
+@param aPM
+Pointer to the ParameterManager
+@param aOption
+Option that is passed as input, in this case --definput
+@param aValue
+The DEF file name passed to --definput option
+@param aDesc
+Pointer to function ParameterManager::ParseDefInput returning void.
+*/
+DEFINE_PARAM_PARSER(ParameterManager::ParseDefInput)
+{
+	INITIALISE_PARAM_PARSER;
+	aPM->SetDefInput(aValue);
+}
+
+/**
+This function set the input Elf file name that is passed through --elfinput option.
+
+void ParameterManager::ParseElfInput(ParameterManager * aPM, char * aOption, char * aValue, void * aDesc)
+
+@internalComponent
+@released
+
+@param aPM
+Pointer to the ParameterManager
+@param aOption
+Option that is passed as input, in this case --elfinput
+@param aValue
+The ELF file name passed to --elfinput option
+@param aDesc
+Pointer to function ParameterManager::ParseElfInput returning void.
+*/
+DEFINE_PARAM_PARSER(ParameterManager::ParseElfInput)
+{
+	INITIALISE_PARAM_PARSER;
+	aPM->SetElfInput(aValue);
+}
+
+/**
+This function set the output Def file name that is passed through --defoutput option.
+
+void ParameterManager::ParseDefOutput(ParameterManager * aPM, char * aOption, char * aValue, void * aDesc)
+
+@internalComponent
+@released
+
+@param aPM
+Pointer to the ParameterManager
+@param aOption
+Option that is passed as input, in this case --defoutput
+@param aValue
+The DEF file name passed to --defoutput option
+@param aDesc
+Pointer to function ParameterManager::ParseDefOutput returning void.
+*/
+DEFINE_PARAM_PARSER(ParameterManager::ParseDefOutput)
+{
+	INITIALISE_PARAM_PARSER;
+	aPM->SetDefOutput(aValue);
+}
+
+/**
+This function set the input E32 file name that is passed through --e32input option.
+
+void ParameterManager::ParseE32Input(ParameterManager * aPM, char * aOption, char * aValue, void * aDesc)
+
+@internalComponent
+@released
+
+@param aPM
+Pointer to the ParameterManager
+@param aOption
+Option that is passed as input, in this case --e32input
+@param aValue
+The E32 file name passed to --e32input option
+@param aDesc
+Pointer to function ParameterManager::ParseE32Input returning void.
+*/
+DEFINE_PARAM_PARSER(ParameterManager::ParseE32ImageInput)
+{
+      INITIALISE_PARAM_PARSER;
+      aPM->SetE32Input(aValue);
+}
+
+/**
+This function set the output E32 image name that is passed through --output option.
+
+void ParameterManager::ParseOutput(ParameterManager * aPM, char * aOption, char * aValue, void * aDesc)
+
+@internalComponent
+@released
+
+@param aPM
+Pointer to the ParameterManager
+@param aOption
+Option that is passed as input, in this case --output
+@param aValue
+The E32 file name passed to --output option
+@param aDesc
+Pointer to function ParameterManager::ParseOutput returning void.
+*/
+DEFINE_PARAM_PARSER(ParameterManager::ParseOutput)
+{
+	INITIALISE_PARAM_PARSER;
+	aPM->SetE32Output(aValue);
+}
+
+/**
+This function set the output Log file name that is passed through --log option.
+
+void ParameterManager::ParseLogFile(ParameterManager * aPM, char * aOption, char * aValue, void * aDesc)
+
+@internalComponent
+@released
+
+@param aPM
+Pointer to the ParameterManager
+@param aOption
+Option that is passed as input, in this case --log
+@param aValue
+The Log file name passed to --log option
+@param aDesc
+Pointer to function ParameterManager::ParseLogFile returning void.
+*/
+DEFINE_PARAM_PARSER(ParameterManager::ParseLogFile)
+{
+	INITIALISE_PARAM_PARSER;
+	if(aValue)
+	{
+		aPM->SetLogFile(aValue);
+		MessageHandler::StartLogging(aValue);
+	}
+	else
+	{
+		throw ParameterParserError(NOARGUMENTERROR, "--log");
+	}
+}
+
+/**
+This function set the input Message file name that is passed through --messagefile option.
+
+void ParameterManager::ParseMessageFile(ParameterManager * aPM, char * aOption, char * aValue, void * aDesc)
+
+@internalComponent
+@released
+
+@param aPM
+Pointer to the ParameterManager
+@param aOption
+Option that is passed as input, in this case --messagefile
+@param aValue
+The Message file name passed to --messagefile option
+@param aDesc
+Pointer to function ParameterManager::ParseMessageFile returning void.
+*/
+DEFINE_PARAM_PARSER(ParameterManager::ParseMessageFile)
+{
+	INITIALISE_PARAM_PARSER;
+	if(aValue)
+	{
+		aPM->SetMessageFile(aValue);
+		MessageHandler::InitializeMessages(aValue);
+	}
+	else
+	{
+		throw ParameterParserError(NOARGUMENTERROR, "--messagefile");
+	}
+}
+
+/**
+This function set the Message file name to be dumped that is passed through --dumpmessagefile option.
+
+void ParameterManager::ParseDumpMessageFile(ParameterManager * aPM, char * aOption, char * aValue, void * aDesc)
+
+@internalComponent
+@released
+
+@param aPM
+Pointer to the ParameterManager
+@param aOption
+Option that is passed as input, in this case --dumpmessagefile
+@param aValue
+The output Message file name passed to --dumpmessagefile option
+@param aDesc
+Pointer to function ParameterManager::ParseDumpMessageFile returning void.
+*/
+DEFINE_PARAM_PARSER(ParameterManager::ParseDumpMessageFile)
+{
+	INITIALISE_PARAM_PARSER;
+	aPM->SetDumpMessageFile(aValue);
+}
+
+/**
+This function checks the arguments passed to the options. If an incorrect argument
+is passed or if no arguments are passed then appropriate error message is displayed.
+
+@internalComponent
+@released
+
+@param aValue
+Input to the option
+@param aOption
+Option that is passed as input
+@return the validated value
+*/
+UINT ValidateInputVal(char * aValue, char * aOption)
+{
+	UINT uid;
+	if (!aValue)
+		throw ParameterParserError(NOARGUMENTERROR, aOption);
+	else if (!GetUInt(uid, aValue))
+		throw InvalidArgumentError(INVALIDARGUMENTERROR, aValue, aOption);
+	return uid;
+}
+
+/**
+There are some boolean options which does not expect any inputs. This function checks
+if there are any the arguments passed to the option. In case of getting an input argument,
+the warning message "Value is ignored" is displayed.
+
+@internalComponent
+@released
+
+@param aValue
+Input to the option
+@param aOption
+Option that is passed as input
+*/
+void CheckInput(char * aValue, char * aOption)
+{
+	if (aValue)
+		MessageHandler::GetInstance()->ReportMessage(WARNING, VALUEIGNOREDWARNING, aOption);
+}
+
+/**
+This function set the version information that is passed through --version option.
+
+void ParameterManager::ParseVersion(ParameterManager * aPM, char * aOption, char * aValue, void * aDesc)
+
+@internalComponent
+@released
+
+@param aPM
+Pointer to the ParameterManager
+@param aOption
+Option that is passed as input, in this case --version
+@param aValue
+The version information passed to --version option
+@param aDesc
+Pointer to function ParameterManager::ParseVersion returning void.
+*/
+DEFINE_PARAM_PARSER(ParameterManager::ParseVersion)
+{
+	INITIALISE_PARAM_PARSER;
+	UINT version = 0;
+	UINT majorVal = 0;
+	UINT minorVal = 0;
+
+	if(!aValue)
+  	throw ParameterParserError(NOARGUMENTERROR, "--version");
+
+	char * tokens = strdup(aValue);
+	char * major, * minor;
+
+	major = strtok(tokens, ".");
+	majorVal = ValidateInputVal(major, "--version");
+	minor = strtok(NULL, ".");
+	if (minor && !GetUInt(minorVal, minor))
+		throw InvalidArgumentError(INVALIDARGUMENTERROR, aValue, "--version");
+
+	version = ((majorVal & 0xFFFF) << 16) | (minorVal & 0xFFFF);
+	aPM->SetVersion(version);
+}
+
+/**
+This function set the UID1 value that is passed through --uid1 option.
+
+void ParameterManager::ParseUID1(ParameterManager * aPM, char * aOption, char * aValue, void * aDesc)
+
+@internalComponent
+@released
+
+@param aPM
+Pointer to the ParameterManager
+@param aOption
+Option that is passed as input, in this case --uid1
+@param aValue
+The UID1 value passed to --uid1 option
+@param aDesc
+Pointer to function ParameterManager::ParseUID1 returning void.
+*/
+DEFINE_PARAM_PARSER(ParameterManager::ParseUID1)
+{
+	INITIALISE_PARAM_PARSER;
+	UINT aUid = ValidateInputVal(aValue, "--uid1");
+	aPM->SetUID1(aUid);
+}
+
+/**
+This function set the UID2 value that is passed through --uid2 option.
+
+void ParameterManager::ParseUID2(ParameterManager * aPM, char * aOption, char * aValue, void * aDesc)
+
+@internalComponent
+@released
+
+@param aPM
+Pointer to the ParameterManager
+@param aOption
+Option that is passed as input, in this case --uid2
+@param aValue
+The UID2 value passed to --uid2 option
+@param aDesc
+Pointer to function ParameterManager::ParseUID2 returning void.
+*/
+DEFINE_PARAM_PARSER(ParameterManager::ParseUID2)
+{
+	INITIALISE_PARAM_PARSER;
+	UINT aUid = ValidateInputVal(aValue, "--uid2");
+	aPM->SetUID2(aUid);
+}
+
+/**
+This function set the UID3 value that is passed through --uid3 option.
+
+void ParameterManager::ParseUID3(ParameterManager * aPM, char * aOption, char * aValue, void * aDesc)
+
+@internalComponent
+@released
+
+@param aPM
+Pointer to the ParameterManager
+@param aOption
+Option that is passed as input, in this case --uid3
+@param aValue
+The UID3 value passed to --uid3 option
+@param aDesc
+Pointer to function ParameterManager::ParseUID3 returning void.
+*/
+DEFINE_PARAM_PARSER(ParameterManager::ParseUID3)
+{
+	INITIALISE_PARAM_PARSER;
+	UINT aUid = ValidateInputVal(aValue, "--uid3");
+	aPM->SetUID3(aUid);
+}
+
+/**
+This function set the Secure ID value that is passed through --sid option.
+
+void ParameterManager::ParseSecureId(ParameterManager * aPM, char * aOption, char * aValue, void * aDesc)
+
+@internalComponent
+@released
+
+@param aPM
+Pointer to the ParameterManager
+@param aOption
+Option that is passed as input, in this case --sid
+@param aValue
+The Secure ID value passed to --sid option
+@param aDesc
+Pointer to function ParameterManager::ParseSecureId returning void.
+*/
+DEFINE_PARAM_PARSER(ParameterManager::ParseSecureId)
+{
+	INITIALISE_PARAM_PARSER;
+	UINT aUid = ValidateInputVal(aValue, "--sid");
+	aPM->SetSecureId(aUid);
+}
+
+/**
+This function set the Vendor ID value that is passed through --vid option.
+
+void ParameterManager::ParseVendorId(ParameterManager * aPM, char * aOption, char * aValue, void * aDesc)
+
+@internalComponent
+@released
+
+@param aPM
+Pointer to the ParameterManager
+@param aOption
+Option that is passed as input, in this case --vid
+@param aValue
+The Vendor ID value passed to --vid option
+@param aDesc
+Pointer to function ParameterManager::ParseVendorId returning void.
+*/
+DEFINE_PARAM_PARSER(ParameterManager::ParseVendorId)
+{
+	INITIALISE_PARAM_PARSER;
+	UINT aUid = ValidateInputVal(aValue, "--vid");
+	aPM->SetVendorId(aUid);
+}
+
+/**
+This function set the FixedAddress flag if --fixedaddress option is passed to the program.
+
+void ParameterManager::ParseFixedAddress(ParameterManager * aPM, char * aOption, char * aValue, void * aDesc)
+
+@internalComponent
+@released
+
+@param aPM
+Pointer to the ParameterManager
+@param aOption
+Option that is passed as input, in this case --fixedaddress
+@param aValue
+The value passed to --fixedaddress option, in this case NULL
+@param aDesc
+Pointer to function ParameterManager::ParseFixedAddress returning void.
+*/
+DEFINE_PARAM_PARSER(ParameterManager::ParseFixedAddress)
+{
+	INITIALISE_PARAM_PARSER;
+	CheckInput(aValue, "--fixedaddress");
+	aPM->SetFixedAddress(true);
+}
+
+/**
+This function set the CallEntryPoint flag if --callentry option is passed to the program.
+
+void ParameterManager::ParseCallEntryPoint(ParameterManager * aPM, char * aOption, char * aValue, void * aDesc)
+
+@internalComponent
+@released
+
+@param aPM
+Pointer to the ParameterManager
+@param aOption
+Option that is passed as input, in this case --callentry
+@param aValue
+The value passed to --callentry option, in this case NULL
+@param aDesc
+Pointer to function ParameterManager::ParseCallEntryPoint returning void.
+*/
+DEFINE_PARAM_PARSER(ParameterManager::ParseCallEntryPoint)
+{
+	INITIALISE_PARAM_PARSER;
+	aPM->SetCallEntryPoint(true);
+}
+
+/**
+This function set the Uncompressed flag if --uncompressed option is passed to the program.
+
+void ParameterManager::ParseUncompressed(ParameterManager * aPM, char * aOption, char * aValue, void * aDesc)
+
+@internalComponent
+@released
+
+@param aPM
+Pointer to the ParameterManager
+@param aOption
+Option that is passed as input, in this case --uncompressed
+@param aValue
+The value passed to --uncompressed option, in this case NULL
+@param aDesc
+Pointer to function ParameterManager::ParseUncompressed returning void.
+*/
+DEFINE_PARAM_PARSER(ParameterManager::ParseUncompressed)
+{
+	INITIALISE_PARAM_PARSER;
+	CheckInput(aValue, "--uncompressed");
+	aPM->SetCompress(false);
+}
+
+
+static const ParameterManager::CompressionMethodDesc MethodNames[] =
+{
+	{ "none", 0},
+	{ "inflate", KUidCompressionDeflate},
+	{ "bytepair", KUidCompressionBytePair},
+	{ 0, 0}
+};
+
+/**
+This function parses the compression method value passed in and finds the corresponding match
+from the list of existing method values.
+
+@internalComponent
+@released
+
+@param aMethod
+Holds the method value mapped from list.
+@param aText
+The priority value passed to --compressionmethod option
+@return True if the method value passed in is a valid one present in the list.
+*/
+static bool ParseCompressionMethodArg(UINT & aMethod, const char *aText)
+{
+	
+	int i = 0;
+	aMethod = 0;
+	for (;; i++)
+	{
+		if (!MethodNames[i].iMethodName)
+			return false;
+		if (!stricmp(aText, MethodNames[i].iMethodName))
+		{
+			aMethod = MethodNames[i].iMethodUid;
+			return true;
+		}
+	}
+	return false;
+}
+
+/**
+This function set the CompressionMethod variable if --compressionmethod option is passed to the program.
+
+void ParameterManager::ParseUncompressed(ParameterManager * aPM, char * aOption, char * aValue, void * aDesc)
+
+@internalComponent
+@released
+
+@param aPM
+Pointer to the ParameterManager
+@param aOption
+Option that is passed as input, in this case --compressionmethod
+@param aValue
+The value passed to --compressionmethod option, in this case none|inflate|bytepair
+@param aDesc
+Pointer to function ParameterManager::ParseCompressionMethod returning void.
+*/
+DEFINE_PARAM_PARSER(ParameterManager::ParseCompressionMethod)
+{
+	INITIALISE_PARAM_PARSER;
+	UINT method;
+	if(!aValue)
+		throw ParameterParserError(NOARGUMENTERROR, "--compressionmethod");
+	
+	if(ParseCompressionMethodArg(method, aValue) )
+		aPM->SetCompressionMethod(method);
+	else
+		throw InvalidArgumentError(INVALIDARGUMENTERROR, aValue, "compression method");
+}
+
+/**
+This function parses the compression method value passed in and finds the corresponding match
+from the list of existing method values.
+
+@internalComponent
+@released
+
+
+
+/**
+This function set the AllowDllData flag if --dlldata option is passed to the program.
+
+void ParameterManager::ParseAllowDllData(ParameterManager * aPM, char * aOption, char * aValue, void * aDesc)
+
+@internalComponent
+@released
+
+@param aPM
+Pointer to the ParameterManager
+@param aOption
+Option that is passed as input, in this case --dlldata
+@param aValue
+The value passed to --dlldata option, in this case NULL
+@param aDesc
+Pointer to function ParameterManager::ParseAllowDllData returning void.
+*/
+DEFINE_PARAM_PARSER(ParameterManager::ParseAllowDllData)
+{
+	INITIALISE_PARAM_PARSER;
+	CheckInput(aValue, "--dlldata");
+	aPM->SetDllDataP(true);
+}
+
+static const ParameterManager::PriorityValueDesc PriorityNames[] =
+{
+	{ "Low", EPriorityLow},
+	{ "Background", EPriorityBackground},
+	{ "Foreground", EPriorityForeground},
+	{ "High", EPriorityHigh},
+	{ "WindowServer", EPriorityWindowServer},
+	{ "FileServer", EPriorityFileServer},
+	{ "RealTimeServer", EPriorityRealTimeServer},
+	{ "Supervisor", EPrioritySupervisor},
+	{ 0, (TProcessPriority)0}
+};
+
+/**
+This function parses the priority value passed in and finds the corresponding match
+from the list of existing priority values.
+
+@internalComponent
+@released
+
+@param aPriority
+Holds the priority value mapped from list.
+@param aText
+The priority value passed to --priority option
+@return True if the priority value passed in is a valid one present in the list.
+*/
+static bool ParsePriorityArg(unsigned int & aPriority, const char *aText)
+{
+	int i = 0;
+	aPriority = 0;
+	for (;; i++)
+	{
+		if (!PriorityNames[i].iName)
+			return false;
+		if (!stricmp(aText, PriorityNames[i].iName))
+		{
+			aPriority = PriorityNames[i].iPriority;
+			return true;
+		}
+	}
+	return false;
+}
+
+
+/**
+This function set the priority value that is passed through --priority option.
+
+void ParameterManager::ParsePriority(ParameterManager * aPM, char * aOption, char * aValue, void * aDesc)
+
+@internalComponent
+@released
+
+@param aPM
+Pointer to the ParameterManager
+@param aOption
+Option that is passed as input, in this case --priority
+@param aValue
+The priority value passed to --priority option
+@param aDesc
+Pointer to function ParameterManager::ParsePriority returning void.
+*/
+DEFINE_PARAM_PARSER(ParameterManager::ParsePriority)
+{
+	INITIALISE_PARAM_PARSER;
+	unsigned int priority;
+	if (!aValue)
+		throw ParameterParserError(NOARGUMENTERROR, "--priority");
+	if (GetUInt(priority, aValue) || ParsePriorityArg(priority, aValue))
+		aPM->SetPriority((TProcessPriority)priority);
+	else
+		throw InvalidArgumentError(INVALIDARGUMENTERROR, aValue, "priority");
+}
+
+/**
+This function sets the predefined symbols, at the specified ordinal numbers, that are passed through 
+--sysdef option.
+
+void ParameterManager::ParseSysDefs(ParameterManager * aPM, char * aOption, char * aValue, void * aDesc)
+
+@internalComponent
+@released
+
+@param aPM
+Pointer to the ParameterManager
+@param aOption
+Option that is passed as input, in this case --sysdef
+@param aValue
+The predefined symbols alongwith the ordinal numbers passed to --sysdef option
+@param aDesc
+Pointer to function ParameterManager::ParseSysDefs returning void.
+*/
+DEFINE_PARAM_PARSER(ParameterManager::ParseSysDefs)
+{
+	INITIALISE_PARAM_PARSER;
+	if (!aValue)
+		throw ParameterParserError(NOARGUMENTERROR, "--sysdef");
+	string aSysDefValues(aValue);
+	string::iterator p = aSysDefValues.begin();
+
+	int sysdeflength = aSysDefValues.size();
+	
+	int parsesysdef = 1; 
+
+	int sysdefcount=0;
+
+	while (parsesysdef && sysdeflength)
+	{
+
+		int q = 0;
+		unsigned int ordinalnum = 0;
+		char *symbol = 0;
+
+		int nq = aSysDefValues.find_first_of(",", q,sizeof(*p));
+		if (nq && (nq != string::npos))
+		{
+			int len = nq;
+			symbol = new char[len+1];
+			memcpy(symbol, p, len);
+			symbol[len] = 0;
+			q = nq+1;
+
+			char val = *(p+q);
+			if (!val || !isdigit(val))
+				throw ParameterParserError(SYSDEFERROR, "--sysdef");
+			ordinalnum = *(p+q) - '0';
+			aPM->SetSysDefs(ordinalnum, symbol, sysdefcount);
+
+			unsigned int separator = aSysDefValues.find(";", 0);
+
+			if (separator && (separator != string::npos))
+			{
+				if (separator != (unsigned int)(q+1))
+					throw ParameterParserError(MULTIPLESYSDEFERROR, "--sysdef");
+				else 
+				{
+					sysdeflength -= separator + 1;
+					aSysDefValues = aSysDefValues.substr(separator+1);
+					sysdefcount++;
+				}	
+			}
+			else
+			{
+				sysdeflength -= q+1;
+				if (sysdeflength)
+					throw ParameterParserError(MULTIPLESYSDEFERROR, "--sysdef");
+				else
+					parsesysdef = 0;
+			}
+		}
+		else
+		{
+			if (!nq && sysdeflength)
+				throw ParameterParserError(SYSDEFNOSYMBOLERROR, "--sysdef");
+			else
+				throw ParameterParserError(SYSDEFERROR, "--sysdef");
+		}
+	}
+}
+
+/**
+This function parses the capability value passed to --capability option.
+
+@internalComponent
+@released
+
+@param aName
+The pointer marking the beginning value passed to the --capability option
+@param aEnd
+The pointer marking the end value passed to the --capability option
+@param aCapabilities
+List of Capability Values allowed
+@param aInvert
+Flag to denote if value can be inverted.
+*/
+void ParameterManager::ParseCapability1(const char * aName, const char * aEnd, SCapabilitySet& aCapabilities, bool aInvert)
+{
+	int n = aEnd - aName;
+	int i = 0;
+	if(n==3 && strnicmp("all",aName,n)==0)
+	{
+		if(aInvert)
+			throw CapabilityError(CAPABILITYALLINVERSIONERROR);
+
+		for(i=0; i<ECapability_Limit; i++)
+		{
+			if(CapabilityNames[i])
+				aCapabilities[i>>5] |= (1<<(i&31));
+		}
+		return;
+	}
+
+	if(n==4 && strnicmp("none",aName,n)==0)
+	{
+		if(aInvert)
+			throw CapabilityError(CAPABILITYNONEINVERSIONERROR);
+
+		memset(&aCapabilities,0,sizeof(aCapabilities));
+		return;
+	}
+
+	for(i=0; i<ECapability_Limit; i++)
+	{
+		const char* cap = CapabilityNames[i];
+		if(!cap)
+			continue;
+		if((int)strlen(cap)!=n)
+			continue;
+		if(strnicmp(cap,aName,n)!=0)
+			continue;
+		break;
+	}
+	if(i>=ECapability_Limit)
+	{
+		string aBadCap(aName, aEnd);
+		throw UnrecognisedCapabilityError(UNRECOGNISEDCAPABILITYERROR,"BAD CAP");
+	}
+	if(aInvert)
+		aCapabilities[i>>5] &= ~(1<<(i&31));
+	else
+		aCapabilities[i>>5] |= (1<<(i&31));
+}
+
+/**
+This function parses the capability value passed to --capability option.
+
+@internalComponent
+@released
+
+@param aCapabilities
+List of Capability Values allowed
+@param aText
+Value passed to --capability option.
+*/
+void ParameterManager::ParseCapabilitiesArg(SCapabilitySet& aCapabilities, const char *aText)
+{
+	string aCapList(aText);
+	string::iterator b = aCapList.begin();
+	string::iterator e = b;
+	bool invert = false;
+
+	while(e != aCapList.end())
+	{
+		invert = false;
+		if (*b == '-')
+		{
+			invert = true;
+			b++;
+		}
+		else if (*b == '+')
+			b++;
+
+		e = b;
+		for (; e != aCapList.end(); e++)
+		{
+			if (*e == '-' || *e == '+') break;
+		}
+		if (e != b)
+			ParseCapability1(b, e, aCapabilities, invert);
+
+		b = e;
+		
+	}
+}
+
+/**
+This function parses the capability value passed to --capability option.
+
+void ParameterManager::ParseCapability(ParameterManager * aPM, char * aOption, char * aValue, void * aDesc)
+
+@internalComponent
+@released
+
+@param aPM
+Pointer to the ParameterManager
+@param aOption
+Option that is passed as input, in this case --capability
+@param aValue
+The predefined symbols alongwith the ordinal numbers passed to --capability option
+@param aDesc
+Pointer to function ParameterManager::ParseCapability returning void.
+*/
+DEFINE_PARAM_PARSER(ParameterManager::ParseCapability)
+{
+	INITIALISE_PARAM_PARSER;
+	unsigned int cap;
+	SCapabilitySet capSet = {0, 0};
+	if (!aValue)
+		throw ParameterParserError(NOARGUMENTERROR, "--capability");
+	if (GetUInt(cap, aValue))
+	{
+		aPM->SetCapability(cap);
+	}
+	else
+	{
+		aPM->ParseCapabilitiesArg(capSet, aValue);
+		aPM->SetCapability(capSet);
+	}
+}
+
+/**
+This function set the Heap Reserved and Committed Size value that is passed through --heap option.
+
+void ParameterManager::ParseHeap(ParameterManager * aPM, char * aOption, char * aValue, void * aDesc)
+
+@internalComponent
+@released
+
+@param aPM
+Pointer to the ParameterManager
+@param aOption
+Option that is passed as input, in this case --heap
+@param aValue
+The Heap Reserved and Committed Size value passed to --heap option separated by ','.
+@param aDesc
+Pointer to function ParameterManager::ParseHeap returning void.
+*/
+DEFINE_PARAM_PARSER(ParameterManager::ParseHeap)
+{
+	INITIALISE_PARAM_PARSER;
+	string aArg(aValue);
+	UINT committed = aPM->HeapCommittedSize();
+	UINT reserved = aPM->HeapReservedSize();
+	int p = aArg.find_first_of(",");
+	if (p  < 0)
+	{
+		if ( !GetUInt(committed, aValue)) 
+			throw InvalidArgumentError(INVALIDARGUMENTERROR, aValue, "heap");
+	}
+	else
+	{
+		aArg[p] = 0;
+		const char * committedval = aArg.c_str();
+		const char * reservedval = committedval + p + 1;
+		if (!(GetUInt(committed, committedval) && GetUInt(reserved, reservedval)))
+			throw InvalidArgumentError(INVALIDARGUMENTERROR, aValue, "heap");
+	}
+	aPM->SetHeapCommittedSize(committed);
+	aPM->SetHeapReservedSize(reserved);
+}
+
+/**
+This function set the stack Committed Size that is passed through --stack option.
+
+void ParameterManager::ParseStackCommitted(ParameterManager * aPM, char * aOption, char * aValue, void * aDesc)
+
+@internalComponent
+@released
+
+@param aPM
+Pointer to the ParameterManager
+@param aOption
+Option that is passed as input, in this case --stack
+@param aValue
+The Stack Committed Size value passed to --stack option.
+@param aDesc
+Pointer to function ParameterManager::ParseStackCommitted returning void.
+*/
+DEFINE_PARAM_PARSER(ParameterManager::ParseStackCommitted)
+{
+	INITIALISE_PARAM_PARSER;
+	UINT aSize = ValidateInputVal(aValue, "--stack");
+	aPM->SetStackCommittedSize(aSize);
+}
+
+/**
+This function set the Unfrozen flag if --unfrozen option is passed to the program.
+
+void ParameterManager::ParseUnfrozen(ParameterManager * aPM, char * aOption, char * aValue, void * aDesc)
+
+@internalComponent
+@released
+
+@param aPM
+Pointer to the ParameterManager
+@param aOption
+Option that is passed as input, in this case --unfrozen
+@param aValue
+The value passed to --unfrozen option, in this case NULL
+@param aDesc
+Pointer to function ParameterManager::ParseUnfrozen returning void.
+*/
+DEFINE_PARAM_PARSER(ParameterManager::ParseUnfrozen)
+{
+	INITIALISE_PARAM_PARSER;
+	CheckInput(aValue, "--unfrozen");
+	aPM->SetUnfrozen(true);
+}
+
+/**
+This function set the ignorenoncallable flag if --ignorenoncallable option is passed to the program.
+
+void ParameterManager::ParseIgnoreNonCallable(ParameterManager * aPM, char * aOption, char * aValue, void * aDesc)
+
+@internalComponent
+@released
+
+@param aPM
+Pointer to the ParameterManager
+@param aOption
+Option that is passed as input, in this case --ignorenoncallable
+@param aValue
+The value passed to --ignorenoncallable option, in this case NULL
+@param aDesc
+Pointer to function ParameterManager::Parseignorenoncallable returning void.
+*/
+DEFINE_PARAM_PARSER(ParameterManager::ParseIgnoreNonCallable)
+{
+	INITIALISE_PARAM_PARSER;
+	CheckInput(aValue, "--ignorenoncallable");
+	aPM->SetIgnoreNonCallable(true);
+}
+
+/**
+This function sets the FPU type that is passed using the --fpu option.
+
+void ParameterManager::ParseFPU(ParameterManager * aPM, char * aOption, char * aValue, void * aDesc)
+
+@internalComponent
+@released
+
+@param aPM
+Pointer to the ParameterManager
+@param aOption
+Option that is passed as input, in this case --fpu
+@param aValue
+The fpu information passed to the --fpu option
+@param aDesc
+Pointer to function ParameterManager::ParseFPU returning void.
+*/
+DEFINE_PARAM_PARSER(ParameterManager::ParseFPU)
+{
+	INITIALISE_PARAM_PARSER;
+
+	if (strnicmp(aValue, "softvfp", 7)==0)
+		aPM->SetFPU(0);
+	else if (strnicmp(aValue, "vfpv2", 5)==0)
+		aPM->SetFPU(1);
+	else
+		throw InvalidArgumentError(INVALIDARGUMENTERROR, aValue, aOption);
+}
+
+/**
+This function set the Paged flag if --paged option is passed to the program.
+
+void ParameterManager::ParsePaged(ParameterManager * aPM, char * aOption, char * aValue, void * aDesc)
+
+@internalComponent
+@released
+
+@param aPM
+Pointer to the ParameterManager
+@param aOption
+Option that is passed as input, in this case --paged
+@param aValue
+The value passed to --paged option, in this case NULL
+@param aDesc
+Pointer to function ParameterManager::ParsePaged returning void.
+*/
+DEFINE_PARAM_PARSER(ParameterManager::ParsePaged)
+{
+	INITIALISE_PARAM_PARSER;
+	CheckInput(aValue, "--paged");
+
+	if (aPM->IsCodeUnpaged() || aPM->IsCodeDefaultPaged())
+	{
+		throw InvalidInvocationError(INVALIDINVOCATIONERROR);
+	}
+
+	aPM->SetCodePaged(true);
+}
+
+/**
+This function set the Unpaged flag if --unpaged option is passed to the program.
+
+void ParameterManager::ParseUnpaged(ParameterManager * aPM, char * aOption, char * aValue, void * aDesc)
+
+@internalComponent
+@released
+
+@param aPM
+Pointer to the ParameterManager
+@param aOption
+Option that is passed as input, in this case --unpaged
+@param aValue
+The value passed to --unpaged option, in this case NULL
+@param aDesc
+Pointer to function ParameterManager::ParseUnpaged returning void.
+*/
+DEFINE_PARAM_PARSER(ParameterManager::ParseUnpaged)
+{
+	INITIALISE_PARAM_PARSER;
+	CheckInput(aValue, "--unpaged");
+
+	if (aPM->IsCodePaged() || aPM->IsCodeDefaultPaged())
+	{
+		throw InvalidInvocationError(INVALIDINVOCATIONERROR);
+	}
+	
+	aPM->SetCodeUnpaged(true);
+}
+
+/**
+This function set the Defaultpaged flag if --defaultpaged option is passed to the program.
+
+void ParameterManager::ParseDefaultpaged(ParameterManager * aPM, char * aOption, char * aValue, void * aDesc)
+
+@internalComponent
+@released
+
+@param aPM
+Pointer to the ParameterManager
+@param aOption
+Option that is passed as input, in this case --defaultpaged
+@param aValue
+The value passed to --defaultpaged option, in this case NULL
+@param aDesc
+Pointer to function ParameterManager::ParseDefaultpaged returning void.
+*/
+DEFINE_PARAM_PARSER(ParameterManager::ParseDefaultPaged)
+{
+	INITIALISE_PARAM_PARSER;
+	CheckInput(aValue, "--defaultpaged");
+
+	if (aPM->IsCodePaged() || aPM->IsCodeUnpaged())
+	{
+		throw InvalidInvocationError(INVALIDINVOCATIONERROR);
+	}
+	
+	aPM->SetCodeDefaultPaged(true);
+}
+
+
+/**
+@internalComponent
+@released
+*/
+DEFINE_PARAM_PARSER(ParameterManager::ParseCodePaging)
+{
+	INITIALISE_PARAM_PARSER;
+
+	if (strnicmp(aValue, "paged", 5)==0)
+    {
+        aPM->SetCodePaged(true);
+    }
+	else if (strnicmp(aValue, "unpaged", 7)==0)
+    {
+        aPM->SetCodeUnpaged(true);
+    }
+	else if (strnicmp(aValue, "default", 7)==0)
+    {
+        aPM->SetCodeDefaultPaged(true);
+    }
+	else
+    {
+        throw InvalidArgumentError(INVALIDARGUMENTERROR, aValue, aOption);
+    }
+
+	// Check that we haven't been given conflicting options.
+
+    unsigned check = 0;
+
+    if ( aPM->IsCodePaged() )
+    {
+        check++;
+    }
+    if ( aPM->IsCodeUnpaged() )
+    {
+        check++;
+    }
+    if ( aPM->IsCodeDefaultPaged() )
+    {
+        check++;
+    }
+
+    if (check > 1)
+    {
+		throw InvalidInvocationError(INVALIDINVOCATIONERROR);
+    }
+}
+
+/**
+@internalComponent
+@released
+*/
+DEFINE_PARAM_PARSER(ParameterManager::ParseDataPaging)
+{
+	INITIALISE_PARAM_PARSER;
+
+	if (strnicmp(aValue, "paged", 5)==0)
+    {
+        aPM->SetDataPaged(true);
+    }
+	else if (strnicmp(aValue, "unpaged", 7)==0)
+    {
+        aPM->SetDataUnpaged(true);
+    }
+	else if (strnicmp(aValue, "default", 7)==0)
+    {
+        aPM->SetDataDefaultPaged(true);
+    }
+	else
+    {
+        throw InvalidArgumentError(INVALIDARGUMENTERROR, aValue, aOption);
+    }
+
+	// Check that we haven't been given conflicting options.
+
+    unsigned check = 0;
+
+    if ( aPM->IsDataPaged() )
+    {
+        check++;
+    }
+    if ( aPM->IsDataUnpaged() )
+    {
+        check++;
+    }
+    if ( aPM->IsDataDefaultPaged() )
+    {
+        check++;
+    }
+
+    if (check > 1)
+    {
+		throw InvalidInvocationError(INVALIDINVOCATIONERROR);
+    }
+}
+
+
+/**
+This function sets the iExcludeUnwantedExports flag if --excludeunwantedexports option is passed to the program.
+
+void ParameterManager::ParseExcludeUnwantedExports(ParameterManager * aPM, char * aOption, char * aValue, void * aDesc)
+
+@internalComponent
+@released
+
+@param aPM
+Pointer to the ParameterManager
+@param aOption
+Option that is passed as input, in this case --excludeunwantedexports
+@param aValue
+The value passed to --excludeunwantedexports, in this case NULL
+@param aDesc
+Pointer to function ParameterManager::ParseExcludeUnwantedExports returning void.
+*/
+DEFINE_PARAM_PARSER(ParameterManager::ParseExcludeUnwantedExports)
+{
+	INITIALISE_PARAM_PARSER;
+	CheckInput(aValue, "--excludeunwantedexports");
+	aPM->SetExcludeUnwantedExports(true);
+}
+
+/**
+This function sets the customdlltarget flag if --customdlltarget option is passed to the program.
+
+void ParameterManager::ParseIsCustomDllTarget(ParameterManager * aPM, char * aOption, char * aValue, void * aDesc)
+
+@internalComponent
+@released
+
+@param aPM
+Pointer to the ParameterManager
+@param aOption
+Option that is passed as input, in this case --customdlltarget
+@param aValue
+The value passed to --customdlltarget option, in this case NULL
+@param aDesc
+Pointer to function ParameterManager::ParseIsCustomDllTarget returning void.
+*/
+DEFINE_PARAM_PARSER(ParameterManager::ParseIsCustomDllTarget)
+{
+	INITIALISE_PARAM_PARSER;
+	CheckInput(aValue, "--customdlltarget");
+	aPM->SetCustomDllTarget(true);
+}
+
+DEFINE_PARAM_PARSER(ParameterManager::ParseSymNamedLookup)
+{
+	INITIALISE_PARAM_PARSER;
+	CheckInput(aValue, "--namedlookup");
+	aPM->SetSymNamedLookup(true);
+}
+
+/**
+This function set the iDebuggable flag if --debuggable option is passed to the program.
+
+void ParameterManager::ParseDebuggable(ParameterManager * aPM, char * aOption, char * aValue, void * aDesc)
+
+@internalComponent
+@released
+
+@param aPM
+Pointer to the ParameterManager
+@param aOption
+Option that is passed as input, in this case --debuggable
+@param aValue
+The value passed to --debuggable option, in this case NULL
+@param aDesc
+Pointer to function ParameterManager::ParseDebuggable returning void.
+*/
+DEFINE_PARAM_PARSER(ParameterManager::ParseDebuggable)
+{
+	INITIALISE_PARAM_PARSER;
+	CheckInput(aValue, "--debuggable");
+	aPM->SetDebuggable(true); 
+}
+
+
+DEFINE_PARAM_PARSER(ParameterManager::ParseSmpSafe)
+{
+	INITIALISE_PARAM_PARSER;
+	CheckInput(aValue, "--smpsafe");
+	aPM->SetSmpSafe(true); 
+}
+
+static const ParameterManager::TargetTypeDesc DefaultTargetTypes[] =
+{
+	{ "DLL", EDll },
+	{ "LIB", ELib },
+	// allow full name
+	{ "LIBRARY", ELib},
+	{ "IMPLIB", ELib},
+	{ "EXE", EExe},
+	{ "ANI", EPolyDll},
+	{ "APP", EPolyDll},
+	{ "CTL", EPolyDll},
+	{ "CTPKG", EPolyDll},
+	{ "FSY", EPolyDll},
+	{ "LDD", EPolyDll},
+	{ "ECOMIIC", EPolyDll},
+	{ "PLUGIN", EPolyDll},
+	{ "PLUGIN3", EPolyDll},
+	{ "KDLL", EPolyDll},
+	{ "KEXT", EPolyDll},
+	{ "MDA", EPolyDll},
+	{ "MDl", EPolyDll},
+	{ "RDL", EPolyDll},
+	{ "NOTIFIER", EPolyDll},
+	{ "NOTIFIER2", EPolyDll},
+	{ "TEXTNOTIFIER2", EPolyDll},
+	{ "PDD", EPolyDll},
+	{ "PDL", EPolyDll},
+	{ "VAR", EPolyDll},
+	{ "VAR2", EPolyDll},
+	{ "EXEXP", EExexp},
+	{ "STDEXE", EStdExe},
+	{ "STDDLL", EDll},
+	{ 0, EInvalidTargetType }
+};
+
+/**
+Function to check if the given target type is a valid one from the list.
+
+@internalComponent
+@released
+
+@param aArg
+Value to be checked, the one that is passed to '--targettype'.
+@return True if the provided value is a valid targettype.
+*/
+static ETargetType IsDefaultTargetType(const char * aArg)
+{
+	for (int i = 0; DefaultTargetTypes[i].iName; i++)
+	{
+		if (aArg && !stricmp(aArg, DefaultTargetTypes[i].iName)) 
+			return DefaultTargetTypes[i].iTargetType;
+	}
+	return EInvalidTargetType;
+}
+
+/**
+Function to check if the given target type is a valid one from the list. If no value is
+passed or if unsupported targettypes are passed, then the appropriate warnings are displayed.
+
+@internalComponent
+@released
+
+@param aArg
+Value to be checked, the one that is passed to '--targettype'.
+@return the appropriate matching value from the list.
+*/
+ETargetType ParameterManager::ValidateTargetType(const char * aArg)
+{
+	ETargetType res = IsDefaultTargetType(aArg);
+	if (res == EInvalidTargetType)
+	{
+		if (aArg)
+			MessageHandler::GetInstance()->ReportMessage(WARNING, UNSUPPORTEDTARGETTYPEERROR,aArg);
+		else
+			MessageHandler::GetInstance()->ReportMessage(WARNING, TARGETTYPENOTSPECIFIEDERROR);
+	}
+	return res;
+}
+
+/**
+This function set the target type that is passed through --targettype option.
+
+void ParameterManager::ParseTargetTypeName(ParameterManager * aPM, char * aOption, char * aValue, void * aDesc)
+
+@internalComponent
+@released
+
+@param aPM
+Pointer to the ParameterManager
+@param aOption
+Option that is passed as input, in this case --targettype
+@param aValue
+The target type passed to --targettype option
+@param aDesc
+Pointer to function ParameterManager::ParseTargetTypeName returning void.
+*/
+DEFINE_PARAM_PARSER(ParameterManager::ParseTargetTypeName)
+{
+	INITIALISE_PARAM_PARSER;
+	aPM->SetTargetTypeName(aPM->ValidateTargetType(aValue));
+}
+
+/**
+This function set the output DSO file name that is passed through --dso option.
+
+void ParameterManager::ParseDSOOutput(ParameterManager * aPM, char * aOption, char * aValue, void * aDesc)
+
+@internalComponent
+@released
+
+@param aPM
+Pointer to the ParameterManager
+@param aOption
+Option that is passed as input, in this case --dso
+@param aValue
+The DSO file name passed to --dso option
+@param aDesc
+Pointer to function ParameterManager::ParseDSOOutput returning void.
+*/
+DEFINE_PARAM_PARSER(ParameterManager::ParseDSOOutput)
+{
+	INITIALISE_PARAM_PARSER;
+	aPM->SetDSOOutput(aValue);
+}
+
+/**
+This function displays the usage information if --help option is passed in.
+For invalid option, this function displays the usage information and throws the
+appropriate error message.
+
+void ParameterManager::ParamHelp(ParameterManager * aPM, char * aOption, char * aValue, void * aDesc)
+
+@internalComponent
+@released
+
+@param aPM
+Pointer to the ParameterManager
+@param aOption
+Option that is passed as input, in this case --help or -h
+@param aValue
+The value passed to --help option, in this case, no value, hence 0.
+@param aDesc
+Pointer to function ParameterManager::ParamHelp returning void.
+*/
+DEFINE_PARAM_PARSER(ParameterManager::ParamHelp)
+{
+	INITIALISE_PARAM_PARSER;
+	using std::cerr;
+	using std::endl;
+
+	cerr << "\nSymbian Post Linker, " << "Elf2E32"
+         << " V" << MajorVersion << "." << MinorVersion << " (Build "<<Build <<")"
+         << endl;
+
+	cerr << "Usage:\t" << "elf2e32" << " [options] [filename]\n" << endl;
+    
+    cerr << "Options:\n" ;
+
+	const OptionDesc * aHelpDesc = aPM->iOptionMap["help"];
+	int lim = aPM->NumOptions();
+	for (int i = 0; i < lim; i++)
+	{
+		if (aPM->iOptions[i].iName == aHelpDesc->iName)
+		{
+			cerr << '\t' << aPM->iParamPrefix << aPM->iOptions[i].iName 
+				<< " : This command." << endl;
+		}
+		else
+		{
+			cerr << '\t' << aPM->iParamPrefix << aPM->iOptions[i].iName;
+			if (aPM->iOptions[i].iDoc) cerr << aPM->iParamEquals << aPM->iOptions[i].iDoc;
+			cerr << endl;
+		}
+	}
+	
+	if (!aDesc)
+		exit(EXIT_FAILURE);
+	else
+		exit(EXIT_SUCCESS);
+}
+
+/**
+This function set the LibPath that is passed through --libpath option.
+
+void ParameterManager::ParseLibPath(ParameterManager * aPM, char * aOption, char * aValue, void * aDesc)
+
+@internalComponent
+@released
+
+@param aPM
+Pointer to the ParameterManager
+@param aOption
+Option that is passed as input, in this case --libpath
+@param aValue
+The LibPath value passed to --libpath option.
+@param aDesc
+Pointer to function ParameterManager::ParseLibPath returning void.
+*/
+DEFINE_PARAM_PARSER(ParameterManager::ParseLibPaths)
+{
+	INITIALISE_PARAM_PARSER;
+	if (!aValue)
+		throw ParameterParserError(NOARGUMENTERROR, "--libpath");
+	string aPathList(aValue);
+	const char* p = aPathList.c_str(); 
+	int n =  strlen(p); 
+	int q = 0;
+	while (n)
+	{
+		int nq = aPathList.find_first_of(";", q, sizeof(*p));
+		if (nq > 0)
+		{
+			// handle case where there are multiple paths which are ; separated
+			int len = nq - q;
+			if (p[len-1] == aPM->DirectorySeparator()) len--;
+			char * path = new char[len+1];
+			memcpy(path, p+q, len);
+			path[len] = 0;
+			aPM->iLibPathList.push_back(path);
+			n -= nq - q + 1;
+			q = nq+1;
+		}
+		else
+		{
+			p += q;
+			int len = strlen(p);
+			if (p[len-1] == aPM->DirectorySeparator()) len--;
+			char * path = new char[len+1];
+			memcpy(path, p, len);
+			path[len] = 0;
+			aPM->iLibPathList.push_back(path);
+			break;
+		}
+	}
+}
+
+/**
+This function sets the linkas dll name when --linkas option is passed in.
+
+void ParameterManager::ParseLinkAs(ParameterManager * aPM, char * aOption, char * aValue, void * aDesc)
+
+@internalComponent
+@released
+
+@param aPM
+Pointer to the ParameterManager
+@param aOption
+Option that is passed as input, in this case --linkas
+@param aValue
+The DLL name to be linked with passed through --linkas option
+@param aDesc
+Pointer to function ParameterManager::ParseLinkAs returning void.
+*/
+DEFINE_PARAM_PARSER(ParameterManager::ParseLinkAs)
+{
+	INITIALISE_PARAM_PARSER;
+	aPM->SetLinkDLLName(aValue);
+}
+
+/**
+This function set the sub options that are passed through --dump option.
+
+void ParameterManager::ParseFileDump(ParameterManager * aPM, char * aOption, char * aValue, void * aDesc)
+
+@internalComponent
+@released
+
+@param aPM
+Pointer to the ParameterManager
+@param aOption
+Option that is passed as input, in this case --dump
+@param aValue
+The FileDump suboptions passed to --dump option.
+@param aDesc
+Pointer to function ParameterManager::ParseFileDump returning void.
+*/
+DEFINE_PARAM_PARSER(ParameterManager::ParseFileDump)
+{
+      INITIALISE_PARAM_PARSER;
+      aPM->SetFileDumpOptions(aValue);
+}
+
+/**
+This function sets the target type that is passed as input through the --targettype option
+and sets the flag if --targettype option is passed in.
+
+@internalComponent
+@released
+
+@param aTargetTypeVal
+Name of the input target type if provided as input through --targettype or 0.
+*/
+void ParameterManager::SetTargetTypeName(ETargetType aTargetTypeVal)
+{
+	iTargetTypeOption = true;
+	iTargetTypeName = aTargetTypeVal;
+}
+
+/**
+This function sets the DEF file name that is passed as input through the --definput option and
+sets the flag if --definput option is passed in.
+
+@internalComponent
+@released
+
+@param aDefInputVal
+Name of the input DEF file if provided as input through --definput or 0.
+*/
+void ParameterManager::SetDefInput(char * aDefInputVal)
+{
+	iDefFileInOption = true;
+	iDefInput = aDefInputVal;
+}
+
+/**
+This function sets the DSO file name that is passed as input through the --dso option
+and sets the flag if the --dso option is passed in.
+
+@internalComponent
+@released
+
+@param aDSOOutputVal
+Name of the output DSO file if provided as input through --dso or 0.
+*/
+void ParameterManager::SetDSOOutput(char * aDSOOutputVal)
+{
+	iDSOFileOutOption = true;
+	iDSOOutput = aDSOOutputVal;
+}
+
+/**
+This function sets the Elf file name that is passed as input through the --dsoin option.
+
+@internalComponent
+@released
+
+@param aSetElfInput
+Name of the input Elf file if provided as input through --dsoin or 0.
+*/
+void ParameterManager::SetElfInput(char * aElfInputVal)
+{
+	iElfFileInOption = true;
+	iElfInput = aElfInputVal;
+}
+
+/**
+This function sets the E32 name that is passed as input through the --e32dump option.
+
+@internalComponent
+@released
+
+@param aSetE32Input
+Name of the input E32 image if provided as input through --e32dump or 0.
+*/
+void ParameterManager::SetE32Input(char * aSetE32Input)
+{
+	iE32ImageInOption = true;
+	iE32Input = aSetE32Input;
+}
+
+/**
+This function sets the E32 dump options that is passed as input through the --dump option.
+
+@internalComponent
+@released
+
+@param aSetFileDumpOptions
+Dump sub options passed to --dump option
+*/
+void ParameterManager::SetFileDumpOptions(char * aSetFileDumpOptions)
+{
+	iFileDumpOption = true;
+	iFileDumpSubOptions = aSetFileDumpOptions;
+
+	if (aSetFileDumpOptions)
+	{
+		iDumpOptions=0;
+		while (char c = *(aSetFileDumpOptions++))
+		{
+			if (c < 'a')
+				c += 'a'-'A';
+			switch(c)
+			{
+			case 'h': iDumpOptions |= EDumpHeader; break;
+			case 's': iDumpOptions |= EDumpSecurityInfo; break;
+			case 'c': iDumpOptions |= EDumpCode; break;
+			case 'd': iDumpOptions |= EDumpData; break;
+			case 'e': iDumpOptions |= EDumpExports; break;
+			case 'i': iDumpOptions |= EDumpImports; break;
+			case 'a': iDumpOptions |= EDumpAsm; break; //Dump the Assembler code
+			case 't': iDumpOptions |= EDumpSymbols;break;
+			default: 
+				iDumpOptions=0;
+				return;
+			}
+		}
+	}
+}
+
+/**
+This function extracts the E32 image output that is passed as input through the --output option.
+
+@internalComponent
+@released
+
+@param aSetE32Output
+Name of the output E32 image output if provided as input through --output or 0.
+*/
+void ParameterManager::SetE32Output(char * aSetE32Output)
+{
+	iOutFileOption = true;
+	iOutFileName = aSetE32Output;
+}
+
+/**
+This function sets the output DEF file name that is passed as input through the --defoutput option.
+
+@internalComponent
+@released
+
+@param aSetDefOutput
+Name of the output DEF file if provided as input through --defoutput or 0.
+*/
+void ParameterManager::SetDefOutput(char * aSetDefOutput)
+{
+	iDefFileOutOption = true;
+	iDefOutput = aSetDefOutput;
+}
+
+/**
+This function sets the name of the DLL (that the DSO is to be linked with) that is passed 
+as input through the --linkas option and sets the flag if the --linkas option is passed in.
+
+@internalComponent
+@released
+
+@param aSetLinkDLLName
+The DLL name with which the DSO is to be linked with
+*/
+void ParameterManager::SetLinkDLLName(char * aSetLinkDLLName)
+{
+	iLinkAsOption = true;
+	iLinkDLLName = aSetLinkDLLName;
+}
+
+/**
+This function sets the priority value.
+
+@internalComponent
+@released
+
+@param anewVal
+priority value passed in to --priority option.
+*/
+void ParameterManager::SetPriority(TProcessPriority anewVal)
+{
+	iPriorityOption = true;
+	iPriorityVal = anewVal;
+}
+
+/**
+This function sets the capability value.
+
+@internalComponent
+@released
+
+@param anewVal
+Capability value passed in to --capability option.
+*/
+void ParameterManager::SetCapability(unsigned int anewVal)
+{
+	iCapability[0] = anewVal;
+}
+
+/**
+This function sets the capability value.
+
+@internalComponent
+@released
+
+@param anewVal
+Capability value passed in to --capability option.
+*/
+void ParameterManager::SetCapability(SCapabilitySet & anewVal)
+{
+	iCapability = anewVal;
+}
+
+/**
+This function sets the list of predefined symbols passed to --sysdef option.
+
+@internalComponent
+@released
+
+@param aOrdinalnum
+Ordinal number of the predefined symbols
+@param aSymbol
+Symbol Name
+@param aCount
+Position of the predefined symbol
+*/
+void ParameterManager::SetSysDefs(unsigned int aOrdinalnum, char* aSymbol, int aCount)
+{
+	iSysDefOption = 1;
+	iSysDefSymbols[aCount].iSysDefOrdinalNum = aOrdinalnum;
+	iSysDefSymbols[aCount].iSysDefSymbolName = aSymbol;
+	iSysDefCount = (aCount+1);
+}
+
+/**
+This function sets the output LOG file name that is passed as input through the --log option.
+
+@internalComponent
+@released
+
+@param aSetLogFile
+Name of the output LOG file if provided as input through --log or 0.
+*/
+void ParameterManager::SetLogFile(char * aSetLogFile)
+{
+	iLogFileOption = true;
+	iLogFileName = aSetLogFile;
+}
+
+/**
+This function sets the Message file name that is passed as input through the --messagefile option.
+
+@internalComponent
+@released
+
+@param aMessageFile
+Name of the Message file if provided as input through --messagefile or 0.
+*/
+void ParameterManager::SetMessageFile(char * aMessageFile)
+{
+	iMessageFileOption = true;
+	iMessageFileName = aMessageFile;
+}
+
+/**
+This function sets the Message file name that is passed as input through the --dumpmessagefile option.
+
+@internalComponent
+@released
+
+@param aDumpMessageFile
+Name of the Message file to be dumped if provided as input through --dumpmessagefile or 0.
+*/
+void ParameterManager::SetDumpMessageFile(char * aDumpMessageFile)
+{
+	iDumpMessageFileOption = true;
+	iDumpMessageFileName = aDumpMessageFile;
+}
+
+/**
+This function sets iFixedAddress if --fixedaddress is passed in.
+
+@internalComponent
+@released
+
+@param aVal
+True if --fixedaddress is passed in.
+*/
+void ParameterManager::SetFixedAddress(bool aSetFixedAddress)
+{
+	iFixedAddress = aSetFixedAddress;
+}
+
+/**
+This function sets iCompress if --uncompressed is passed in.
+
+@internalComponent
+@released
+
+@param aVal
+True if --uncompressed is passed in.
+*/
+void ParameterManager::SetCompress(bool aSetCompress)
+{
+	iCompress = aSetCompress;
+}
+
+/**
+This function sets iCompress if --uncompressed is passed in.
+
+@internalComponent
+@released
+
+@param aVal
+True if --uncompressed is passed in.
+*/
+void ParameterManager::SetCompressionMethod(UINT aCompressionMethod)
+{
+	
+	iCompressionMethod = aCompressionMethod;
+}
+
+
+/**
+This function sets iCallEntryPoint if --callentry is passed in.
+
+@internalComponent
+@released
+
+@param aVal
+True if --callentry is passed in.
+*/
+void ParameterManager::SetCallEntryPoint(bool aSetCallEntryPoint)
+{
+	iCallEntryPoint = aSetCallEntryPoint;
+}
+
+/**
+This function sets the Version information passed to '--version' option.
+
+@internalComponent
+@released
+
+@param aVersion information
+Version information passed to '--version' option.
+*/
+void  ParameterManager::SetVersion(UINT aSetVersion)
+{
+	iVersionOption = true;
+	iVersion = aSetVersion;
+}
+
+/**
+This function sets the UID1 passed to '--uid1' option.
+
+@internalComponent
+@released
+
+@param aUID1
+UID1 passed to '--uid1' option.
+*/
+void  ParameterManager::SetUID1(UINT aUID1)
+{
+	iUid1Option = true;
+	iUID1 = aUID1;
+}
+
+/**
+This function sets the UID2 passed to '--uid2' option.
+
+@internalComponent
+@released
+
+@param aUID2
+UID2passed to '--uid2' option.
+*/
+void  ParameterManager::SetUID2(UINT aUID2)
+{
+	iUID2 = aUID2;
+}
+
+/**
+This function sets the UID3 passed to '--uid3' option.
+
+@internalComponent
+@released
+
+@param aUID3
+UID3 passed to '--uid3' option.
+*/
+void  ParameterManager::SetUID3(UINT aUID3)
+{
+	iUID3 = aUID3;
+}
+
+/**
+This function sets the Secure ID passed to '--sid' option.
+
+@internalComponent
+@released
+
+@param aSetSecureID
+Secure ID passed to '--sid' option.
+*/
+void  ParameterManager::SetSecureId(UINT aSetSecureID)
+{
+	iSecureIDOption = true;
+	iSecureID = aSetSecureID;
+}
+
+/**
+This function sets the Vendor ID passed to '--vid' option.
+
+@internalComponent
+@released
+
+@param aSetVendorID
+Vendor ID passed to '--vid' option.
+*/
+void  ParameterManager::SetVendorId(UINT aSetVendorID)
+{
+	iVendorIDOption = true;
+	iVendorID = aSetVendorID;
+}
+
+/**
+This function sets the heap committed size passed to '--heap' option.
+
+@internalComponent
+@released
+
+@param aSetHeapCommittedSize
+stack committed size passed to '--heap' option.
+*/
+void  ParameterManager::SetHeapCommittedSize(UINT aSetHeapCommittedSize)
+{
+	iHeapCommittedSize = aSetHeapCommittedSize;
+}
+
+/**
+This function sets the heap reserver size passed to '--heap' option.
+
+@internalComponent
+@released
+
+@param aSetStackReservedSize
+stack reserved size passed to '--heap' option.
+*/
+void  ParameterManager::SetHeapReservedSize(UINT aSetHeapReservedSize)
+{
+	iHeapReservedSize = aSetHeapReservedSize;
+}
+
+/**
+This function sets the stack committed size passed to '--stack' option.
+
+@internalComponent
+@released
+
+@param aSetStackCommittedSize
+stack committed size passed to '--stack' option.
+*/
+void  ParameterManager::SetStackCommittedSize(UINT aSetStackCommittedSize)
+{
+	iStackCommittedSize = aSetStackCommittedSize;
+}
+
+/**
+This function sets iUnfrozen if --unfrozen is passed in.
+
+@internalComponent
+@released
+
+@param aVal
+True if --unfrozen is passed in.
+*/
+void ParameterManager::SetUnfrozen(bool aVal)
+{
+	iUnfrozen = aVal;
+}
+
+/**
+This function sets iIgnoreNonCallable if --ignorenoncallable is passed in.
+
+@internalComponent
+@released
+
+@param aVal
+True if --ignorenoncallable is passed in.
+*/
+void ParameterManager::SetIgnoreNonCallable(bool aVal)
+{
+	iIgnoreNonCallable = aVal;
+}
+
+/**
+This function sets iDllDataP if --dlldata is passed in.
+
+@internalComponent
+@released
+
+@param anewVal
+True if --dlldata is passed in.
+*/
+void ParameterManager::SetDllDataP(bool anewVal)
+{
+	iDllDataP = anewVal;
+}
+
+/**
+This function sets the FPU type based on the parsed '--fpu' option.
+
+@internalComponent
+@released
+
+@param aSetVendorID
+FPU type passed to the '--fpu' option.
+*/
+void  ParameterManager::SetFPU(UINT aFPU)
+{
+	iFPUOption = true;
+	iFPU = aFPU;
+}
+
+
+void ParameterManager::SetCodePaged(bool anewVal)
+{
+	iCodePaged = anewVal;
+}
+
+void ParameterManager::SetCodeUnpaged(bool anewVal)
+{
+	iCodeUnpaged = anewVal;
+}
+
+void ParameterManager::SetCodeDefaultPaged(bool anewVal)
+{
+	iCodeDefaultPaged = anewVal;
+}
+
+void ParameterManager::SetDataPaged(bool anewVal)
+{
+	iDataPaged = anewVal;
+}
+
+void ParameterManager::SetDataUnpaged(bool anewVal)
+{
+	iDataUnpaged = anewVal;
+}
+
+void ParameterManager::SetDataDefaultPaged(bool anewVal)
+{
+	iDataDefaultPaged = anewVal;
+}
+
+void ParameterManager::SetSymNamedLookup(bool aVal)
+{
+	iSymNamedLookup = aVal;
+}
+
+/**
+This function sets iExcludeUnwantedExports if --excludeunwantedexports is passed in.
+
+@internalComponent
+@released
+
+@param aVal
+True if --excludeunwantedexports is passed in.
+*/
+void ParameterManager::SetExcludeUnwantedExports(bool aVal)
+{
+	iExcludeUnwantedExports = aVal;
+}
+
+/**
+This function sets iIsCustomDllTarget if --customdlltarget is passed in.
+
+@internalComponent
+@released
+
+@param aVal
+True if --customdlltarget is passed in.
+*/
+void ParameterManager::SetCustomDllTarget(bool aVal)
+{
+	iCustomDllTarget = aVal;
+}
+
+/**
+This function sets iDebuggable if --debuggable is passed in.
+
+@internalComponent
+@released
+
+@param aVal
+True if --debuggable is passed in.
+*/
+void ParameterManager::SetDebuggable(bool aVal)
+{
+	iDebuggable = aVal;
+}
+
+
+void ParameterManager::SetSmpSafe(bool aVal)
+{
+	iSmpSafe = aVal;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/parametermanager.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,451 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation of the Header file for Class ParameterManager of the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+#if !defined(SYMBIAN_PARAMETERMANAGER_H_)
+#define SYMBIAN_PARAMETERMANAGER_H_
+
+#include "parameterlistinterface.h"
+#include <vector>
+#include <map>
+#include <string>
+
+class UseCaseBase;
+class Symbol;
+
+
+
+/**
+This class is derived from ParameterListInterface (the abstract base class). 
+
+@internalComponent
+@released
+*/
+class ParameterManager : public ParameterListInterface
+{
+
+public:
+
+	typedef std::vector<char *> ParamList;
+
+	struct OptionDesc
+	{
+		char * iName;
+		const void * iParser;
+		char * iDoc;
+	};
+
+	struct TargetTypeDesc
+	{
+		const char * iName;
+		ETargetType iTargetType;
+	};
+
+	struct PriorityValueDesc
+	{
+		const char * iName;
+		TProcessPriority iPriority;
+	};
+	
+	struct CompressionMethodDesc
+	{
+		const char *iMethodName;
+		UINT		iMethodUid;
+	};
+
+	/*struct SysDefs
+	{
+		int iSysDefOrdinalNum;
+		char * iSysDefSymbolName;
+	};
+
+	typedef struct SysDefs Sys;*/
+
+	typedef std::string string;
+	typedef std::less<string> OptionCompare;
+	typedef std::map<string, const OptionDesc *, OptionCompare> OptionMap;
+	typedef vector<char *> LibSearchPaths;
+
+	typedef void (*ParserFn)(ParameterManager *, char *, char *, const OptionDesc *);
+
+
+	#define DECLARE_PARAM_PARSER(name) \
+		static void name(ParameterManager* aPM, char* aOption, char* aValue, void* aDesc)
+	
+	#define DEFINE_PARAM_PARSER(name) \
+		void name(ParameterManager * aPM, char * aOption, char* aValue, void * aDesc)
+	
+	#define INITIALISE_PARAM_PARSER \
+		aOption = aOption; \
+		aValue = aValue; \
+		aDesc = aDesc;
+
+	DECLARE_PARAM_PARSER(ParseDefInput);
+	DECLARE_PARAM_PARSER(ParseDSOOutput);
+	DECLARE_PARAM_PARSER(ParseTargetTypeName);
+	DECLARE_PARAM_PARSER(ParseLinkAs);
+	DECLARE_PARAM_PARSER(ParseDefOutput);
+	DECLARE_PARAM_PARSER(ParseElfInput);
+	DECLARE_PARAM_PARSER(ParseFileDump);
+	DECLARE_PARAM_PARSER(ParseE32ImageInput);
+	DECLARE_PARAM_PARSER(ParseOutput);
+	DECLARE_PARAM_PARSER(ParseLogFile);
+	DECLARE_PARAM_PARSER(ParseMessageFile);
+	DECLARE_PARAM_PARSER(ParseDumpMessageFile);
+	
+	DECLARE_PARAM_PARSER(ParamHelp);
+	DECLARE_PARAM_PARSER(ParseUID1);
+	DECLARE_PARAM_PARSER(ParseUID2);
+	DECLARE_PARAM_PARSER(ParseUID3);
+
+
+	DECLARE_PARAM_PARSER(ParseCapability);
+	DECLARE_PARAM_PARSER(ParseSecureId);
+	DECLARE_PARAM_PARSER(ParseVendorId);
+	DECLARE_PARAM_PARSER(ParseFixedAddress);
+	DECLARE_PARAM_PARSER(ParseUncompressed);
+	DECLARE_PARAM_PARSER(ParseCompressionMethod);
+	DECLARE_PARAM_PARSER(ParseHeap);
+	DECLARE_PARAM_PARSER(ParseStackCommitted);
+	DECLARE_PARAM_PARSER(ParseUnfrozen);
+	DECLARE_PARAM_PARSER(ParseIgnoreNonCallable);
+	DECLARE_PARAM_PARSER(ParseLibPaths);
+	DECLARE_PARAM_PARSER(ParseSysDefs);
+	DECLARE_PARAM_PARSER(ParseAllowDllData);
+	DECLARE_PARAM_PARSER(ParsePriority);
+	DECLARE_PARAM_PARSER(ParseVersion);
+	DECLARE_PARAM_PARSER(ParseCallEntryPoint);
+	DECLARE_PARAM_PARSER(ParseFPU);
+
+	DECLARE_PARAM_PARSER(ParsePaged);
+	DECLARE_PARAM_PARSER(ParseUnpaged);
+	DECLARE_PARAM_PARSER(ParseDefaultPaged);
+
+	DECLARE_PARAM_PARSER(ParseCodePaging);
+	DECLARE_PARAM_PARSER(ParseDataPaging);
+
+	DECLARE_PARAM_PARSER(ParseExcludeUnwantedExports);
+	DECLARE_PARAM_PARSER(ParseIsCustomDllTarget);
+	DECLARE_PARAM_PARSER(ParseSymNamedLookup);
+	DECLARE_PARAM_PARSER(ParseDebuggable);
+	DECLARE_PARAM_PARSER(ParseSmpSafe);
+
+	ParameterManager(int aArgc, char** aArgv);
+	virtual ~ParameterManager();
+	void ParameterAnalyser();
+	void SetDefInput(char * aDefInputVal);
+	void SetDSOOutput(char * aDSOOutputVal);
+	void SetElfInput(char * aSetElfInput);
+	void SetE32Input(char * aSetE32Input);
+	void SetFileDumpOptions(char * aSetE32DumpOptions);
+	void SetE32Output(char * aSetE32Output);
+	void SetDefOutput(char * aSetDefOutput);
+	void SetTargetTypeName(ETargetType  aSetTargetTypeName);
+	void SetLinkDLLName(char * aSetLinkDLLName);
+	void SetUID1(UINT aSetUINT1);
+	void SetUID2(UINT aSetUINT2);
+	void SetUID3(UINT aSetUINT3);
+	void SetFixedAddress(bool aSetFixedAddress);
+	void SetCompress(bool aSetCompress);
+	void SetCompressionMethod(UINT aCompressionMethod);
+	void SetSecureId(UINT aSetSecureID);
+	void SetVendorId(UINT aSetVendorID);
+	void SetHeapCommittedSize(UINT aSetHeapCommittedSize);
+	void SetHeapReservedSize(UINT aSetHeapReservedSize);
+	void SetStackCommittedSize(UINT aSetStackCommittedSize);
+	void SetUnfrozen(bool aVal);
+	void SetIgnoreNonCallable(bool aVal);
+	void SetCapability(unsigned int newVal);
+	void SetCapability(SCapabilitySet & newVal);
+	void SetSysDefs(unsigned int aSysDefOrdinal, char * aSysDefSymbol, int aCount);
+	void SetLogFile(char * aSetLogFile);
+	void SetMessageFile(char *aMessageFile);
+	void SetDumpMessageFile(char *aDumpMessageFile);
+	void SetDllDataP(bool newVal);
+	void SetPriority(TProcessPriority anewVal);
+	void SetVersion(UINT aSetVersion);
+	void SetCallEntryPoint(bool aCallEntryPoint);
+	void SetFPU(UINT aVal);
+
+	void SetCodePaged(bool);
+	void SetCodeUnpaged(bool);
+	void SetCodeDefaultPaged(bool);
+
+	void SetDataPaged(bool);
+	void SetDataUnpaged(bool);
+	void SetDataDefaultPaged(bool);
+	
+	void SetExcludeUnwantedExports(bool aVal);
+	void SetCustomDllTarget(bool aVal);
+	void SetSymNamedLookup(bool aVal);
+	void SetDebuggable(bool aVal);
+	void SetSmpSafe(bool aVal);
+
+	int NumOptions();
+	int NumShortOptions();
+	void InitParamParser();
+	void ParseCommandLine();
+	void RecordImageLocation();
+	char * Path(char * aArg);
+	ETargetType TargetTypeName();
+	ETargetType ValidateTargetType(const char * aTargetType);
+	LibSearchPaths& LibPath();
+	char * DefInput();
+	char * ElfInput();
+	char * E32Input();
+	bool DefFileInOption();
+	bool DefFileOutOption();
+	bool ElfFileInOption();
+	bool E32ImageInOption();
+	bool FileDumpOption();
+	bool DSOFileOutOption();
+	bool E32OutOption();
+	bool LinkAsOption();
+	bool Uid1Option();
+	bool SecureIdOption();
+	bool VendorIdOption();
+	bool SysDefOption();
+	bool LogFileOption();
+	bool MessageFileOption();
+	bool DumpMessageFileOption();
+	bool DllDataP();
+	TProcessPriority Priority();
+	bool PriorityOption();
+	bool VersionOption();
+	bool CallEntryPoint();
+	bool FPUOption();
+
+	char * DefOutput();
+	char * DSOOutput();
+	char * E32ImageOutput();
+	char * LinkAsDLLName();
+	char * FileName(char * aArg);
+	char * LogFile();
+	char * MessageFile();
+	char * DumpMessageFile();
+	char * FileDumpOptions();
+	char * FileDumpSubOptions();
+	int DumpOptions();
+	int SysDefCount();
+	char DirectorySeparator();
+	//int SysDefOrdinalNum();
+	//char * SysDefSymbol();
+	Sys SysDefSymbols(int count);
+	UINT Uid1();
+	UINT Uid2();
+	UINT Uid3();
+	UINT SecureId();
+	UINT VendorId();
+	UINT Version();
+	bool FixedAddress();
+	bool Compress();
+	UINT CompressionMethod();
+	size_t HeapCommittedSize();
+	size_t HeapReservedSize();
+	size_t StackCommittedSize();
+	bool Unfrozen();
+	bool IgnoreNonCallable();
+	UseCaseBase * SelectUseCase();
+	SCapabilitySet Capability();
+	void ParseCapability1(const char * name, const char * end, SCapabilitySet& aCapabilities, bool invert);
+	void ParseCapabilitiesArg(SCapabilitySet& aCapabilities, const char *aText);
+	UINT FPU();
+
+	bool IsCodePaged();
+	bool IsCodeUnpaged();
+	bool IsCodeDefaultPaged();
+
+	bool IsDataPaged();
+	bool IsDataUnpaged();
+	bool IsDataDefaultPaged();
+
+	bool ExcludeUnwantedExports();
+	bool IsCustomDllTarget();
+	bool SymNamedLookup();
+	bool IsDebuggable();
+	bool IsSmpSafe();
+
+private:
+	/** The number of command line arguments passed into the program */
+	int iArgc;
+
+	/** The listing of all the arguments */
+	char ** iArgv;
+
+	/** REVISIT */
+	char * iImageLocation;
+
+	/** REVISIT */
+	char * iImageName;
+
+	/** To check if the --targettypeoption (Option to pass the target type of the final image) is provided */
+	 bool iTargetTypeOption;
+
+	/** To check if the --definput (Option to pass the input DEF File) is passed as input */
+	 bool iDefFileInOption;
+
+	/** To check if the --defoutput (Option to pass the output DEF File name) is passed as input */
+	bool iDefFileOutOption;
+	
+	/** To check if the --dump is passed as input */
+	bool iFileDumpOption;
+
+	/** To check if the --dso (Option to pass the output DSO File name) is passed as input */
+	bool iDSOFileOutOption;
+	
+	/** To check if the --output (Option to pass the output image name) is passed as input */
+	bool iOutFileOption;
+	
+	/** To check if the --elfinput (Option to pass the input Elf File) is passed as input */
+	bool iElfFileInOption;
+	
+	/** To check if the --e32input (Option to pass the input E32 File) is passed as input */
+	bool iE32ImageInOption;
+	
+	/** To check if the --linkas (Option to pass DLL name to be linked with) is passed as input */
+	bool iLinkAsOption;
+
+	bool iUid1Option;
+	bool iSecureIDOption;
+	bool iVendorIDOption;
+
+	/** System level identifier, identifies the general type of a Symbian OS object */
+	UINT iUID1;
+
+	/** Interface identifier, distinguishes within a type (i.e.within a UID1) */
+	UINT iUID2;
+
+	/** Project identifier, identifies a particular subtype */ 
+	UINT iUID3;
+
+	UINT iSecureID;
+
+	UINT iVendorID;
+
+	bool iCompress;
+	UINT iCompressionMethod;
+
+	bool iFixedAddress;
+
+	size_t iHeapCommittedSize;
+	size_t iHeapReservedSize;
+	size_t iStackCommittedSize;
+	bool iUnfrozen;
+	bool iIgnoreNonCallable;
+
+
+	/** List of the parameters */
+	ParamList iParamList;
+
+	/** The short prefix '-' used for the command line options for the program */
+	static const char * iParamShortPrefix;
+
+	/** The normal prefix '--' used for the command line options for the program */
+	static const char * iParamPrefix;
+
+	/** The '=' used for passing the arguments to the command line options for the program */
+	static const char iParamEquals; 
+
+	/** The list of command line options (with normal prefix '--') that will be accepted by the program */
+	static const OptionDesc iOptions[];
+
+	/** The list of command line options (with short prefix '-') that will be accepted by the program */
+	static const OptionDesc iShortOptions[];
+
+	/** The map between the command line option (with normal prefix '--') and the corresponding function */
+	OptionMap iOptionMap;
+
+	/** The map between the command line option (with short prefix '-') and the corresponding function */
+	OptionMap iShortOptionMap;
+
+	/** The usecase that is selected, could either be LibraryTarget or DLLTarget or EXETarget */
+	UseCaseBase *iUseCase;
+
+	/** Target Type that is passed as input to the --targettype option */
+	ETargetType iTargetTypeName;
+
+	/** File name of the output DEF file passed as input to the --defoutput option */
+	char * iDefOutput;
+
+	/** File name of the output DSO file passed as input to the --dso option */
+	char * iDSOOutput;
+
+	/** File name of the output image passed as input to the --output option */
+	char * iOutFileName;
+
+	/** File name of the input DEF file passed as input to the --definput option */
+	char * iDefInput;
+
+	/** File name of the input DSO file passed as input to the --dsoin option */
+	char * iElfInput;
+
+	/** File name of the input E32 image passed as input to the --e32dump option */
+	char * iE32Input;
+
+	/** File name of the DLL to be linked with passed as input to the --linkas option */
+	char * iLinkDLLName;
+
+	/** Path name of the intermediate libraries passed as input to the --libpath option */
+	char * iLibPath;
+
+	int iDumpOptions;
+	char *iFileDumpSubOptions;
+
+	bool iSysDefOption;
+	char * iLogFileName;
+	bool iLogFileOption;
+	char * iMessageFileName;
+	bool iMessageFileOption;
+	char * iDumpMessageFileName;
+	bool iDumpMessageFileOption;
+
+	bool iDllDataP;
+	
+	//vector<char*> iLibPathList;
+	LibSearchPaths iLibPathList;
+	SCapabilitySet iCapability;
+	//struct SysDefs iSysDefSymbols[10];
+	Sys iSysDefSymbols[10];
+	int iSysDefCount;
+	bool iPriorityOption;
+	TProcessPriority iPriorityVal;
+	UINT iVersion;
+	bool iVersionOption;
+	bool iCallEntryPoint;
+	UINT iFPU;
+	bool iFPUOption;
+
+	int iArgumentCount;
+	
+	bool iCodePaged;
+	bool iCodeUnpaged;
+	bool iCodeDefaultPaged;
+
+	bool iDataPaged;
+	bool iDataUnpaged;
+	bool iDataDefaultPaged;
+
+	bool iExcludeUnwantedExports;
+	bool iCustomDllTarget;
+	bool iSymNamedLookup;
+	bool iDebuggable;
+	bool iSmpSafe;
+};
+
+
+#endif // !defined(SYMBIAN_PARAMETERMANAGER_H_)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/pl_common.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,47 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation of the Class SymbolAttrib for the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+#include <tools/elfdefs.h>
+#include "pl_common.h"
+
+
+VersionInfo::VersionInfo(): iSOName(0), iLinkAs(0), iVerCategory(VER_CAT_NONE) 
+{}
+
+VersionInfo::~VersionInfo()
+{}
+
+/**
+hash function for ELF symbols
+@param name
+@internalComponent
+@released
+*/
+unsigned long Util::elf_hash(const unsigned char *name)
+{
+	unsigned long h, g;
+	for (h = 0; *name != 0; ++name)
+	{
+		h = (h << 4) + *name;
+		g = h & 0xf0000000;
+		if (g != 0) h ^= g >> 24;
+		h &= ~g;
+	}
+	return h;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/pl_common.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,97 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation of the Class SymbolAttrib for the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+#if !defined _PL_COMMON_H_
+#define _PL_COMMON_H_
+
+#ifdef _MSC_VER 
+	#pragma warning(disable: 4786) // identifier was truncated to '255' characters in the debug information
+	#pragma warning(disable: 4514) // unreferenced inline function has been removed
+	#pragma warning(disable: 4702) // unreachable code
+	#pragma warning(disable: 4710) // function not inlined
+#endif
+
+#include <tools/elfdefs.h>
+
+typedef unsigned long	PLULONG;
+typedef unsigned int	PLUINT32;
+typedef unsigned short	PLUINT16;
+typedef unsigned char	PLUCHAR;
+typedef	int				PLINT32;
+typedef short			PLINT16;
+typedef unsigned char	PLUINT8;
+typedef char			PLCHAR;
+typedef unsigned int	PLMemAddr32;
+typedef unsigned int	PLOffset32;
+typedef unsigned short	PLOffset16;
+
+#define DELETE_PTR(aPtr) delete aPtr; aPtr = NULL;
+#define DELETE_PTR_ARRAY(aPtr) delete[] aPtr; aPtr = NULL;
+
+#define ELF_ENTRY_PTR(ptype, base, offset) \
+	((ptype*)((char*)base + offset))
+
+//enum for version category
+enum VER_CATEGORY{
+	VER_CAT_NONE = 0,
+	VER_CAT_DEFINED,
+	VER_CAT_NEEDED
+
+};
+
+/**
+Class for general utility
+@internalComponent
+@released
+*/class Util {
+public:
+	static unsigned long elf_hash(const unsigned char *name);
+};
+
+/**
+class for Version info
+@internalComponent
+@released
+*/
+class VersionInfo {
+public:
+	VersionInfo();
+	~VersionInfo();
+
+	char*	iSOName;
+	char*	iLinkAs;
+	char	iVerCategory;
+};
+
+//enum for e32 dump flag and dumping asm file flag
+enum TDumpFlags
+{
+	EDumpHeader = 1<<0,
+	EDumpSecurityInfo = 1<<1,
+	EDumpCode = 1<<2,
+	EDumpData = 1<<3,
+	EDumpExports = 1<<4,
+	EDumpImports = 1<<5,
+	EDumpAsm = 1<<6, //Added (Only)option for generating assembly code for deffile input.//DumpAsm
+	EDumpSymbols = 1<<7,//Not added as a default option.
+	EDumpDefaults = EDumpHeader|EDumpCode|EDumpData|EDumpExports|EDumpImports
+};
+
+#endif //_PL_COMMON_H_
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/pl_dllsymbol.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,63 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation of the Class DllSymbol for the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+#include "pl_dllsymbol.h"
+
+
+/**
+Constructor for class DllSymbol
+@param aName - symbol name
+@param aType - symbol type
+@param aElfSym - elf symbol
+@param aSymbolIndex - index in the symbol table
+@internalComponent
+@released
+*/
+DllSymbol::DllSymbol(char* aName, SymbolType aType, Elf32_Sym* aElfSym, \
+					PLUINT32 aSymbolIndex): Symbol(aName, aType), iElfSym(aElfSym), iSymbolIndex(aSymbolIndex)
+{
+}
+
+/**
+Constructor for class DllSymbol
+@param aSymbol - symbol name
+@param aType - symbol type
+@param aAbsent - flag if the symbol is marked absent
+@internalComponent
+@released
+*/
+DllSymbol::DllSymbol(Symbol* aSymbol, SymbolType aType, bool aAbsent): Symbol(*aSymbol, aType, aAbsent), iElfSym(NULL), iSymbolIndex(0)
+{
+}
+
+/**
+Destructor for class DllSymbol
+@internalComponent
+@released
+*/
+DllSymbol::~DllSymbol(){
+
+}
+
+
+
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/pl_dllsymbol.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,51 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation of the Class DllSymbol for the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+#if !defined(_PL_DLLSYMBOL_H_)
+#define _PL_DLLSYMBOL_H_
+
+#include <tools/elfdefs.h>
+#include "pl_symbol.h"
+
+/**
+The class DLLSymbol properties for both imported and exported symbols.
+@internalComponent
+@released
+*/
+class DllSymbol : public Symbol
+{
+
+public:
+	DllSymbol(char* aName,SymbolType aType, Elf32_Sym* aElfSym, PLUINT32 aSymbolIndex);
+	DllSymbol(Symbol* aSymbol, SymbolType aType, bool aAbsent);
+	~DllSymbol();
+	
+	Elf32_Sym	*iElfSym;
+	/**
+	 * The index of this symbol in the symbol table(required for the hash table while
+	 * creating the dso).
+	 */
+	PLUINT32		iSymbolIndex;
+
+};
+
+
+
+
+#endif // !defined(_PL_DLLSYMBOL_H_)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/pl_dso_handler.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,126 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation of the Class DSOHandler for the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+
+#include "pl_dso_handler.h"
+#include "pl_elfconsumer.h"
+#include "pl_elfproducer.h"
+
+/**
+Constructor for class DSOHandler
+@param aParameterListInterface - instance of ParameterListInterface 
+@internalComponent
+@released
+*/
+DSOHandler::DSOHandler(	ParameterListInterface *aParameterListInterface){
+
+	iParameterListInterface = aParameterListInterface;
+	iElfProducer = new ElfProducer(iParameterListInterface);
+	iElfConsumer = new ElfConsumer(iParameterListInterface);
+}
+
+
+
+/**
+Destructor for class DSOHandler to release allocated memory
+@internalComponent
+@released
+*/
+DSOHandler::~DSOHandler(){
+
+	DELETE_PTR(iElfProducer);
+	DELETE_PTR(iElfConsumer);
+}
+
+
+/**
+Reads the ELF executable file through its ElfConsumer member
+@param aElfFile The ELF executable file name
+@internalComponent
+@released
+@return Error status
+*/
+PLUINT32 DSOHandler::ReadElfFile(char* aElfFile){
+	return iElfConsumer->ReadElfFile( aElfFile );
+}
+
+/**
+Processes the ELF executable file through its ElfConsumer member
+@internalComponent
+@released
+@return Error status
+*/
+void DSOHandler::ProcessElfFile(){
+	iElfConsumer->ProcessElfFile();
+}
+
+/**
+Writes the proxy DSO file through its ElfProducer member
+@internalComponent
+@released
+@return Error Status
+@param aDsoFullName The full path and the proxy DSO library file name
+@param aDSOName The proxy DSO library file name
+@param aDllName The DLL name that defines the exported symbols.
+@param aSymbolList The list of exported Symbols that are to be included within the proxy DSO library.
+*/
+PLUINT32 DSOHandler::WriteElfFile(char* aDsoFullName, char* aDSOName, char* aDllName, SymbolList& aSymbolList){
+
+	iElfProducer->SetSymbolList( aSymbolList );
+	iElfProducer->WriteElfFile(aDsoFullName, aDSOName, aDllName);
+
+	return 0;
+}
+
+
+/**
+This operation fetches the list of symbols that are exported from the ELF
+file. This list is used by UseCaseHandler to finalise the export symbols and 
+compare them with those found from the DEF file.
+@internalComponent
+@released
+@return Error status
+@param aList A reference to the list is passed so as to fetch all the exported Symbols from ELF executable.
+*/
+int DSOHandler::GetElfExportSymbolList(SymbolList& aList){
+	return (iElfConsumer->GetElfSymbolList(aList));
+}
+
+
+/**
+
+@internalComponent
+@released
+@param 
+*/
+void DSOHandler::GetImageDetails(/*E32ImageInterface aImageInterface*/){
+
+}
+
+/**
+Function for retuning instance of elf consumer
+@internalComponent
+@released
+@return return the elf consumer instance
+*/
+ElfExecutable * DSOHandler::ElfExecutableP(){ 
+	return iElfConsumer;
+}
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/pl_dso_handler.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,66 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation of the Class DSOHandler for the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+#if !defined(_PL_DSOHANDLER_H_)
+#define _PL_DSOHANDLER_H_
+#include "pl_common.h"
+#include <list>
+
+using std::list;
+
+class Symbol;
+class ElfExecutable;
+class ElfProducer;
+class ElfConsumer;
+class ParameterListInterface;
+
+/**
+This class is for reading the input ELF file. If the input is of type ET_DYN, it
+initiates writing the dso file.
+@internalComponent
+@released
+
+*/
+class DSOHandler
+{
+
+	typedef std::list<Symbol*>	SymbolList;
+
+public:
+	DSOHandler(	ParameterListInterface *aParameterListInterface);
+	~DSOHandler();
+	PLUINT32 ReadElfFile(char* aElfFile);
+	void ProcessElfFile();
+	PLUINT32 WriteElfFile(char* aDsoFullName, char* aDllName, char* aFile, SymbolList& aSymbolList);
+	int GetElfExportSymbolList(SymbolList& aList);
+	void GetImageDetails(/*E32ImageInterface aImageInterface*/);
+	ElfExecutable * ElfExecutableP();
+
+private:
+	/** This member handles reading the ELF exucutable file. */
+	ElfConsumer* iElfConsumer;
+	/** This member is responsible for generating the proxy DSO file. */
+	ElfProducer* iElfProducer;
+	ParameterListInterface *iParameterListInterface;
+};
+
+
+
+
+#endif // !defined(_PL_DSOHANDLER_H_)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/pl_elfconsumer.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,222 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation of the Class ElfConsumer for the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+#include "pl_elfconsumer.h"
+#include "parameterlistinterface.h"
+#include "errorhandler.h"
+#include <iostream>
+#include <string>
+
+using std::list;
+using std::cout;
+using std::endl;
+using std::min;
+
+/**
+Constructor for class ElfConsumer
+@param aParameterListInterface - instance of class ParameterListInterface
+@internalComponent
+@released
+*/
+ElfConsumer::ElfConsumer(ParameterListInterface *aParameterListInterface) :\
+ ElfExecutable(aParameterListInterface) ,\
+ iMemBlock(NULL)
+{
+}
+
+
+/**
+Destructor for class ElfConsumer
+@internalComponent
+@released
+*/
+ElfConsumer::~ElfConsumer(){
+
+	DELETE_PTR_ARRAY(iMemBlock);
+}
+
+
+/**
+This operation takes the member of the ElfFileWriter object that is to be populated with the
+export info in the iExports member (from the iInputElfFile member of ElfConsumer).
+@param aFile - Elf file name
+@internalComponent
+@released
+*/
+PLUINT32 ElfConsumer::ReadElfFile(char* aFile){
+	FILE*	aFd;
+
+	if( (aFd = fopen(aFile,"rb")) == NULL) {
+		throw FileError(FILEOPENERROR, aFile);
+	}
+
+	fseek(aFd, 0, SEEK_END);
+
+	PLUINT32 aSz = ftell(aFd);
+	iMemBlock = new char[aSz];
+
+	fseek(aFd, 0, SEEK_SET);
+
+	// Certain Windows devices (e.g., network shares) limit the size of I/O operations to 64MB
+	// or less.  We read all the data in individual KMaxWindowsIOSize (32MB) chunks to be safe.
+	PLUINT32 chunkSize = 0;
+	for( PLUINT32 bytesRead = 0; bytesRead < aSz; bytesRead += chunkSize) {
+		
+		chunkSize = min(aSz - bytesRead, PLUINT32(KMaxWindowsIOSize));
+		
+		if( fread(iMemBlock + bytesRead, chunkSize, 1, aFd) != 1) {
+			throw FileError(FILEREADERROR, aFile);
+		}		
+	}
+	
+	return 0;
+}
+
+
+/**
+Funtion for getting elf symbol list
+@param aList - list of symbols found in elf files
+@return - 0 for no exports in elf files, otherwise number of symbols found
+@internalComponent
+@released
+*/
+int ElfConsumer::GetElfSymbolList(list<Symbol*>& aList){
+
+	if( !iExports ) 
+		return 0;
+
+	//Get the exported symbols
+	vector<DllSymbol*> aTmpList = iExports->GetExports(true);
+
+	typedef vector<DllSymbol*> List;
+	List::iterator aItr = aTmpList.begin();
+	while( aItr != aTmpList.end() ){
+		aList.push_back((Symbol*) (*aItr));
+		aItr++;
+	}
+	aTmpList.clear();
+	return aList.size();
+}
+
+/**
+Funtion for getting image details
+@internalComponent
+@released
+*/
+void ElfConsumer::GetImageDetails(/*E32ImageInterface aInterface*/){
+
+}
+
+
+/**
+Funtion for processing elf file
+@internalComponent
+@released
+*/
+PLUINT32 ElfConsumer::ProcessElfFile(){
+
+	Elf32_Ehdr *aElfHdr = ELF_ENTRY_PTR(Elf32_Ehdr, iMemBlock, 0);
+
+	try
+	{
+		ElfExecutable::ProcessElfFile(aElfHdr);
+		
+		/* The following is a workaround for the ARM linker problem.
+		 * Linker Problem: ARM linker generates Long ARM to Thumb veneers for which
+		 * relocation entries are not generated.
+		 * The linker problem is resolved in ARM Linker version RVCT 2.2 Build 616.
+		 * Hence the workaround is applicable only for executables generated
+		 * by ARM linker 2.2 and if build number is below 616.
+		 */
+		char * aARMCompiler = "ARM Linker, RVCT";
+		int length = strlen(aARMCompiler);
+		char * aCommentSection = ElfExecutable::FindCommentSection();
+   		/* The .comment section in an elf file contains the compiler version information and 
+   		 * it is used to apply the fore mentioned workaround. 
+   		 * Some build tool chains generating elf file output without the .comment section, 
+   		 * just to save the disk space. In this case the variable aCommentSection gets the NULL value.
+   		 * Solution: This workaround is only applicable for RVCT compiler. So if the .comment section 
+   		 * is not available in the elf file, then this workaround is no need to be applied.
+   		 */
+   		if(aCommentSection != NULL)
+   		{
+		if (!strncmp(aCommentSection, aARMCompiler, length))
+		{
+			int WorkAroundBuildNo = 616;
+			int BuildNo = 0;
+			char* RVCTVersion = aCommentSection+length;
+
+			/* RVCTVersion contains the following string
+			 * "<MajorVersion>.<MinorVersion> [Build <BuildNumber>]"
+			 * Example: "2.2 [Build 616]"
+			 */
+			String Version(RVCTVersion);
+			size_t pos = Version.find_last_of(' ');
+			size_t size = Version.size();
+			if (pos < size)
+			{
+				size_t index = pos + 1;
+				if (index < size)
+				{
+					BuildNo = atoi(strtok(RVCTVersion+index, "]"));
+				}
+			}
+
+			/* Workaround is applicable only when the version is 2.2 and if the
+			 * build number is below 616.
+			 */
+			size_t minorVersionPos = Version.find_first_of('.');
+			char RVCTMinorVersion='0';
+			if (minorVersionPos < size)
+			{
+				size_t index = minorVersionPos + 1;
+				if (index < size)
+				{
+					RVCTMinorVersion = *(RVCTVersion + index);
+				}
+			}
+
+			if ((*RVCTVersion == '2') && (RVCTMinorVersion == '2') &&
+				(BuildNo < WorkAroundBuildNo))
+			{ 
+				/* The static symbol table should be processed to identify the veneer symbols.
+				 * Relocation entries should be generated for these symbols if the linker 
+				 * is not generating the same.
+				 */
+				ElfExecutable::FindStaticSymbolTable();
+				ElfExecutable::ProcessVeneers();
+			}
+		}
+		}
+	}
+	catch(ErrorHandler&) 
+	{
+		throw;
+	} 
+	/*catch(...) // If there are any other unhandled exception,they are handled here.
+	{
+		//Warning to indicate that there had been an exception at this point.
+		MessageHandler::GetInstance()->ReportWarning(ELFFILEERROR,(char*)iParameterListInterface->ElfInput());
+		throw;
+	} */
+	return 0;
+}
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/pl_elfconsumer.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,54 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of the License "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation of the Class ElfConsumer for the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+#if !defined(_PL_ELFCONSUMER_H_)
+#define _PL_ELFCONSUMER_H_
+
+#include "pl_elfexecutable.h"
+#include <list>
+#include <stdio.h>
+
+using std::list;
+
+enum{ KMaxWindowsIOSize = 31 * 1024 * 1024 };
+
+/**
+This class is for reading the ELF file generated by the static linker and based on whether it is
+ET_EXEC or ET_DYN, it processes the imports(if required) or exports respectively.
+@internalComponent
+@released
+*/
+class ElfConsumer : public ElfExecutable
+{
+public:
+	ElfConsumer(ParameterListInterface *aParameterListInterface);
+	virtual ~ElfConsumer();
+	PLUINT32 ReadElfFile(char* aFile);
+	int GetElfSymbolList(list<Symbol*>& aList);
+	void GetImageDetails(/*E32ImageInterface aInterface*/);
+	PLUINT32 ProcessElfFile();
+
+private:
+	char*		iMemBlock;
+};
+
+
+
+
+#endif // !defined(_PL_ELFCONSUMER_H_)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/pl_elfexecutable.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,1484 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation of the Class ElfExecutable for the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+
+#include "pl_elfexecutable.h"
+#include "errorhandler.h"
+#include <stdio.h>
+#include "parameterlistinterface.h"
+#include "pl_elfimportrelocation.h"
+#include "pl_dllsymbol.h"
+#include "messagehandler.h"
+#include "pl_elflocalrelocation.h"
+
+
+/**
+Constructor for class ElfExecutable
+@param aParameterListInterface - Instance of class ParameterListInterface
+@internalComponent
+@released
+*/
+ElfExecutable::ElfExecutable(ParameterListInterface *aParameterListInterface) :\
+	iElfHeader(NULL), \
+	iEntryPoint(0),\
+	iProgHeader(NULL), \
+	iSONameOffset(0) ,\
+	iSections (NULL) , \
+	iVersionDef (NULL) , iVerDefCount(0), \
+	iVersionNeed (NULL) , iVerNeedCount(0), \
+	iVersionTbl (NULL) ,iRelSize(0),iRelEntSize(0), \
+	iNRelocs(0),
+	iRel (NULL) ,iRelaSize(0), iRelaEntSize(0), \
+	iRela(NULL), 
+	iStringTable (NULL) , \
+	iSectionHdrStrTbl(NULL), \
+	iVerInfo(NULL),	iElfDynSym (NULL), \
+	iSymTab (NULL), \
+	iStrTab (NULL), \
+	iLim (NULL), \
+	iNSymbols(0), \
+	iHashTbl (NULL) , \
+	iDynSegmentHdr (NULL) , \
+	iDataSegmentHdr (NULL) ,iDataSegment(NULL), iDataSegmentSize(0), iDataSegmentIdx(0), \
+	iCodeSegmentHdr (NULL) , iCodeSegment(NULL), iCodeSegmentSize(0), iCodeSegmentIdx(0), \
+	iExports (NULL), \
+	iParameterListInterface(aParameterListInterface),\
+	iPltGotBase(0), iPltGotLimit(0), iStrTabSz(0), iSymEntSz(0), \
+	iPltGot(NULL), iPltRel(NULL),iPltRelaSz(0), iPltRela(NULL), iPltRelSz(0)  \
+
+{
+}
+
+
+/**
+Destructor for class ElfExecutable
+@internalComponent
+@released
+*/
+ElfExecutable::~ElfExecutable()
+{
+	delete iExports;
+	delete [] iVerInfo;
+	/* 
+	all of these were getting deleted, they are not allocated by 
+	ElfExecutable, they simply refer to a linear array of images 
+	in an ElfImage, hence they shouldn't be de-allocated 
+	
+	delete iRela;
+	delete iPltRel;
+	delete iPltRela; */ 
+
+	iNeeded.clear();
+	iSymbolTable.clear();
+}
+
+
+/**
+Function to process Elf file
+@param aElfHdr - pointer to Elf header
+@return 0 if its valid ELF file
+@internalComponent
+@released
+*/
+PLUINT32  ElfExecutable::ProcessElfFile(Elf32_Ehdr *aElfHdr) {
+
+	iElfHeader = aElfHdr;
+	iEntryPoint = aElfHdr->e_entry;
+
+	ValidateElfFile();
+
+	/* A valid ELF file so far..*/
+
+	/* Get the Section base..*/
+	if(iElfHeader->e_shnum) {
+		iSections = ELF_ENTRY_PTR(Elf32_Shdr, iElfHeader, iElfHeader->e_shoff); 
+	}
+
+	/* Get the program header..*/
+	if(iElfHeader->e_phnum) {
+		iProgHeader = ELF_ENTRY_PTR(Elf32_Phdr, iElfHeader, iElfHeader->e_phoff);
+	}
+
+	/* Get the section-header-string table..*/
+	if(iElfHeader->e_shstrndx != SHN_UNDEF) {
+
+		if(iElfHeader->e_shstrndx > iElfHeader->e_shnum ) {
+			throw ELFFormatError(ELFSHSTRINDEXERROR,iParameterListInterface->ElfInput());
+		}
+
+		iSectionHdrStrTbl = ELF_ENTRY_PTR(char, iElfHeader, iSections[iElfHeader->e_shstrndx].sh_offset);
+	}
+
+	if( iProgHeader ) {
+		PLUINT32 aIdx = 0;
+
+		while( aIdx < iElfHeader->e_phnum) {
+			switch( iProgHeader[aIdx].p_type ) {
+			case PT_DYNAMIC:
+				{
+					iDynSegmentHdr = &iProgHeader[aIdx];
+				}
+				break;
+			case PT_LOAD:
+				{
+					if( (iProgHeader[aIdx].p_flags) & (PF_X | PF_ARM_ENTRY) ) {
+						iCodeSegmentHdr = &iProgHeader[aIdx];
+						iCodeSegmentIdx = aIdx;
+						iCodeSegment = ELF_ENTRY_PTR(char, iElfHeader, iCodeSegmentHdr->p_offset);
+						iCodeSegmentSize = iCodeSegmentHdr->p_filesz;
+					}
+					else if( (iProgHeader[aIdx].p_flags) & (PF_W | PF_R) ) {
+						iDataSegmentHdr = &iProgHeader[aIdx];
+						iDataSegmentIdx = aIdx;
+						iDataSegment = ELF_ENTRY_PTR(char, iElfHeader, iDataSegmentHdr->p_offset);
+						iDataSegmentSize = iDataSegmentHdr->p_filesz;
+					}
+				}
+				break;
+			default:
+				break;
+
+			}
+			aIdx++;
+		}
+
+		if( iDynSegmentHdr ) {
+			ProcessDynamicEntries();
+		}
+
+		ProcessSymbols();
+		ProcessRelocations();
+	}
+
+	return 0;
+}
+
+/**
+Function to Find the Static Symbol Table
+@internalComponent
+@released
+*/
+void ElfExecutable::FindStaticSymbolTable()
+{
+	size_t nShdrs = iElfHeader->e_shnum;
+
+	if (nShdrs)
+	{
+		// Find the static symbol table and string table
+		for (PLUINT32 i = 0; i < nShdrs; i++)
+		{
+			if (iSections[i].sh_type == SHT_SYMTAB)
+			{
+				iSymTab = ELF_ENTRY_PTR(Elf32_Sym, iElfHeader, iSections[i].sh_offset);
+				iLim = ELF_ENTRY_PTR(Elf32_Sym, iSymTab, iSections[i].sh_size);
+				if (iStrTab) break;
+			}
+			else if (iSections[i].sh_type == SHT_STRTAB)
+			{
+				char * aSectionName = iSectionHdrStrTbl + iSections[i].sh_name;
+				if (!strcmp(aSectionName, ".strtab"))
+				{
+					iStrTab = ELF_ENTRY_PTR(char, iElfHeader, iSections[i].sh_offset);
+					if (iSymTab) break;
+				}
+			}
+		}
+	}
+}
+
+/**
+Function to Find the Comment Section
+@return aComment - Pointer to Comment Section
+@internalComponent
+@released
+*/
+char* ElfExecutable::FindCommentSection()
+{
+	size_t nShdrs = iElfHeader->e_shnum;
+	char *aCommentSection = ".comment";
+	char *aComment;
+
+	if (nShdrs)
+	{
+		// find the comment section
+		for (PLUINT32 i = 0; i < nShdrs; i++)
+		{
+			if (iSections[i].sh_type == SHT_PROGBITS)
+			{
+				char * aSectionName = iSectionHdrStrTbl + iSections[i].sh_name;
+				int length = strlen(aCommentSection);
+				if (!strncmp(aSectionName, aCommentSection, length))
+				{
+					aComment = ELF_ENTRY_PTR(char, iElfHeader, iSections[i].sh_offset);
+					return aComment;
+				}
+			}
+		}
+	}
+	return NULL;
+}
+
+/**
+Function to process the ARM to Thumb veneers
+@internalComponent
+@released
+*/
+void ElfExecutable::ProcessVeneers()
+{
+	if (iSymTab && iStrTab)
+	{	
+		ElfRelocations::RelocationList & iLocalCodeRelocs = GetCodeRelocations();
+
+		Elf32_Sym *aSymTab = iSymTab;
+		int length = strlen("$Ven$AT$L$$");
+
+		// Process the symbol table to find Long ARM to Thumb Veneers
+		// i.e. symbols of the form '$Ven$AT$L$$'
+		for(; aSymTab < iLim; aSymTab++)
+		{
+			if (!aSymTab->st_name) continue;
+			char * aSymName = iStrTab + aSymTab->st_name;
+			Elf32_Sym	*aSym;
+
+			if (!strncmp(aSymName, "$Ven$AT$L$$", length))
+			{
+				aSym = aSymTab;
+				Elf32_Addr r_offset = aSym->st_value;
+				Elf32_Addr aOffset = r_offset + 4;
+				Elf32_Word	aInstruction = FindValueAtLoc(r_offset);
+				bool aRelocEntryFound = false;
+
+				ElfRelocations::RelocationList::iterator r;
+				for (r = iLocalCodeRelocs.begin(); r != iLocalCodeRelocs.end(); r++)
+				{
+					ElfLocalRelocation * aReloc = *r;
+					// Check if there is a relocation entry for the veneer symbol
+					if (aReloc->iAddr == aOffset)
+					{
+						aRelocEntryFound = true;
+						break;
+					}
+				}
+
+				Elf32_Word aPointer = FindValueAtLoc(aOffset);
+
+				/* If the symbol addresses a Thumb instruction, its value is the
+				 * address of the instruction with bit zero set (in a
+				 * relocatable object, the section offset with bit zero set).
+				 * This allows a linker to distinguish ARM and Thumb code symbols 
+				 * without having to refer to the map. An ARM symbol will always have 
+				 * an even value, while a Thumb symbol will always have an odd value.
+				 * Reference: Section 4.5.3 in Elf for the ARM Architecture Doc
+				 * aIsThumbSymbol will be 1 for a thumb symbol and 0 for ARM symbol
+				 */
+				int aIsThumbSymbol = aPointer & 0x1;
+
+				/* The relocation entry should be generated for the veneer only if
+				 * the following three conditions are satisfied:
+				 * 1) Check if the instruction at the symbol is as expected 
+				 *    i.e. has the bit pattern 0xe51ff004 == 'LDR pc,[pc,#-4]'
+				 * 2) There is no relocation entry generated for the veneer symbol
+				 * 3) The instruction in the location provided by the pointer is a thumb symbol
+				 */
+				if (aInstruction == 0xE51FF004 && !aRelocEntryFound && aIsThumbSymbol)
+				{
+					ElfLocalRelocation	*aRel;
+					PLUCHAR	aType = R_ARM_NONE;
+
+					aRel = new ElfLocalRelocation(this, aOffset, 0, 0, aType, NULL, ESegmentRO, aSym, false, true);
+					if(aRel) 
+					{
+						aRel->Add();
+					}
+				}
+			}
+		}
+	}
+}
+
+/**
+Function to find the content of the address passed in
+@param aOffset - Address
+@return aLocVal - The content of the address, like instruction or a pointer
+@internalComponent
+@released
+*/
+Elf32_Word	ElfExecutable::FindValueAtLoc(Elf32_Addr aOffset)
+{
+	Elf32_Phdr  *aHdr = Segment(aOffset);
+	PLUINT32 aLoc = aHdr->p_offset + aOffset - aHdr->p_vaddr;
+	Elf32_Word	*aLocVal = ELF_ENTRY_PTR(Elf32_Word, iElfHeader, aLoc);
+	return *aLocVal;
+}
+
+/**
+Function to process Elf symbols
+@internalComponent
+@released
+*/
+PLUINT32  ElfExecutable::ProcessSymbols(){
+	PLUINT32	aSymIdx = 0;
+	DllSymbol	*aSymbol;
+	char		*aDllName;
+	char		*aSymName, *aNewSymName;
+	SymbolType	aType;
+	
+	while( aSymIdx < iNSymbols ) {
+		
+		aSymName = ELF_ENTRY_PTR(char, iStringTable, iElfDynSym[aSymIdx].st_name );
+
+		if( ExportedSymbol( &iElfDynSym[aSymIdx] ) ){
+
+			if( FunctionSymbol( &iElfDynSym[aSymIdx] ))
+				aType = SymbolTypeCode;
+			else
+				aType = SymbolTypeData;
+
+			aSymName = ELF_ENTRY_PTR(char, iStringTable, iElfDynSym[aSymIdx].st_name );
+			aDllName = iVerInfo[iVersionTbl[aSymIdx]].iLinkAs;
+			aNewSymName = new char[strlen(aSymName)+1];
+			strcpy(aNewSymName, aSymName);
+			aSymbol = new DllSymbol( aNewSymName, aType, &iElfDynSym[aSymIdx], aSymIdx);
+			aSymbol->SetSymbolSize(iElfDynSym[aSymIdx].st_size);
+			
+			//Putting the symbols into a hash table - Used later while processing relocations
+			iSymbolTable[aSymIdx] = aSymbol ;
+			if( !AddToExports( aDllName, aSymbol ))
+			{
+				//Not a valid export... delete it..
+				delete aSymbol;
+			}
+		}
+		else if( ImportedSymbol( &iElfDynSym[aSymIdx] ) ){
+
+			if( FunctionSymbol( &iElfDynSym[aSymIdx] ))
+				aType = SymbolTypeCode;
+			else
+				aType = SymbolTypeData;
+
+			aSymName = ELF_ENTRY_PTR(char, iStringTable, iElfDynSym[aSymIdx].st_name );
+
+			/*
+			 * All imported symbols must be informed via the version needed information.
+			 */
+			if( iVerInfo[iVersionTbl[aSymIdx]].iVerCategory != VER_CAT_NEEDED ) {
+				throw UndefinedSymbolError(UNDEFINEDSYMBOLERROR, iParameterListInterface->ElfInput(), aSymName);
+			}
+			aDllName = iVerInfo[iVersionTbl[aSymIdx]].iLinkAs;
+			//aSymbol = new DllSymbol( aSymName, aType, &iElfDynSym[aSymIdx], aSymIdx);
+			
+			//Putting the symbols into a hash table
+			//iSymbolTable[aSymIdx] = aSymbol ;
+		}
+		aSymIdx++;
+	}
+
+	return 0;
+}
+
+/**
+This function Dump all the sections with their section details (i.e., the section name, type,
+size and linked section if any)
+@param aFile - ELF file name
+@internalComponent
+@released
+*/
+void ElfExecutable::DumpElfFile(char* aFile){
+	aFile = aFile;
+}
+
+
+/**
+This function adds exports into the export list
+@param aDll - Dll name
+@param aSymbol - Symbol
+@return
+@internalComponent
+@released
+*/
+DllSymbol* ElfExecutable::AddToExports(char* aDll, DllSymbol* aSymbol){
+	if( !iExports ) {
+		iExports = new ElfExports();
+	}
+	return iExports->Add( aDll, this, aSymbol );
+}
+
+
+/**
+This function adds imports into the map
+@param aReloc - Instance of class ElfImportRelocation
+@internalComponent
+@released
+*/
+void  ElfExecutable::AddToImports(ElfImportRelocation* aReloc){
+	SetVersionRecord(aReloc);
+	//char *aDll = iVerInfo[iVersionTbl[aReloc->iSymNdx]].iLinkAs;
+	char *aDll = aReloc->iVerRecord->iLinkAs;
+	iImports.Add( (const char*)aDll, aReloc );
+		
+}
+
+/**
+This function adds local relocation into a list
+@param aReloc - Instance of class ElfImportRelocation
+@internalComponent
+@released
+*/
+void ElfExecutable::AddToLocalRelocations(ElfRelocation* aReloc) {
+	iLocalRelocations.Add((ElfLocalRelocation*)aReloc);
+}
+
+/**
+This function records the version of an imported symbol
+@param aReloc - Instance of class ElfImportRelocation
+@internalComponent
+@released
+*/
+void ElfExecutable::SetVersionRecord( ElfRelocation* aReloc ) {
+	if( !aReloc )
+		return;
+	((ElfImportRelocation*)aReloc)->iVerRecord = &iVerInfo[ iVersionTbl[aReloc->iSymNdx]];
+}
+
+/**
+This function validates the ELF file
+@internalComponent
+@released
+*/
+PLUINT32  ElfExecutable::ValidateElfFile() {
+
+	/*Check if the ELF-Magic is correct*/
+	if(!(iElfHeader->e_ident[EI_MAG0] == ELFMAG0) &&
+		(iElfHeader->e_ident[EI_MAG1] == ELFMAG1) &&
+		(iElfHeader->e_ident[EI_MAG2] == ELFMAG2) &&
+		(iElfHeader->e_ident[EI_MAG3] == ELFMAG3) ) {
+			throw ELFFormatError(ELFMAGICERROR, iParameterListInterface->ElfInput());
+	}
+
+	/*32-bit ELF file*/
+	if(iElfHeader->e_ident[EI_CLASS] != ELFCLASS32) {
+		throw ELFFormatError(ELFCLASSERROR, iParameterListInterface->ElfInput());
+	}
+
+	/* Check if the ELF file is in Little endian format*/
+	if(iElfHeader->e_ident[EI_DATA] != ELFDATA2LSB) {
+		throw ELFFormatError(ELFLEERROR, iParameterListInterface->ElfInput());
+	}
+
+	/* The ELF executable must be a DLL or an EXE*/
+	if( iElfHeader->e_type != ET_EXEC && iElfHeader->e_type != ET_DYN) {
+		throw ELFFormatError(ELFEXECUTABLEERROR, iParameterListInterface->ElfInput());
+	}
+
+	return 0;
+}
+
+
+/**
+This function processes the dynamic table.
+@internalComponent
+@released
+*/
+PLUINT32  ElfExecutable::ProcessDynamicEntries(){
+
+	PLUINT32 aIdx = 0;
+	bool aSONameFound = false;
+	bool aPltRelTypeSeen = false, aJmpRelSeen = false;
+	list<PLUINT32>	aNeeded;
+	Elf32_Dyn *aDyn = ELF_ENTRY_PTR(Elf32_Dyn, iElfHeader, iDynSegmentHdr->p_offset);
+
+	while( aDyn[aIdx].d_tag != DT_NULL ) {
+		switch (aDyn[aIdx].d_tag) {
+		case DT_NEEDED:
+			aNeeded.push_back( aDyn[aIdx].d_val );
+			break;
+		case DT_HASH:
+			iHashTbl = ELF_ENTRY_PTR(Elf32_HashTable, iElfHeader, aDyn[aIdx].d_val);
+			break;
+		case DT_STRTAB:
+			iStringTable = ELF_ENTRY_PTR(char, iElfHeader, aDyn[aIdx].d_val);
+			break;
+		case DT_SYMTAB:
+			iElfDynSym = ELF_ENTRY_PTR(Elf32_Sym, iElfHeader, aDyn[aIdx].d_val);
+			break;
+		case DT_RELA:
+			iRela = ELF_ENTRY_PTR(Elf32_Rela, iElfHeader, aDyn[aIdx].d_val);
+			break;
+		case DT_RELASZ:
+			iRelaSize = aDyn[aIdx].d_val;
+			break;
+		case DT_RELAENT:
+			iRelaEntSize = aDyn[aIdx].d_val;
+			break;
+		case DT_SONAME:
+			aSONameFound = true;
+			iSONameOffset = aDyn[aIdx].d_val;
+			break;
+		case DT_REL:
+			iRel = ELF_ENTRY_PTR(Elf32_Rel, iElfHeader, aDyn[aIdx].d_val);
+			break;
+		case DT_RELSZ:
+			iRelSize = aDyn[aIdx].d_val;
+			break;
+		case DT_RELENT:
+			iRelEntSize = aDyn[aIdx].d_val;
+			break;
+		case DT_VERSYM:
+			iVersionTbl = ELF_ENTRY_PTR(Elf32_Half, iElfHeader, aDyn[aIdx].d_val);
+			break;
+		case DT_VERDEF:
+			iVersionDef = ELF_ENTRY_PTR(Elf32_Verdef, iElfHeader, aDyn[aIdx].d_val);
+			break;
+		case DT_VERDEFNUM:
+			iVerDefCount = aDyn[aIdx].d_val;
+			break;
+		case DT_VERNEED:
+			iVersionNeed = ELF_ENTRY_PTR(Elf32_Verneed, iElfHeader, aDyn[aIdx].d_val);
+			break;
+		case DT_VERNEEDNUM:
+			iVerNeedCount = aDyn[aIdx].d_val;
+			break;
+		case DT_STRSZ:
+			iStrTabSz = aDyn[aIdx].d_val;
+			break;
+		case DT_SYMENT:
+			iSymEntSz = aDyn[aIdx].d_val;
+			break;
+		case DT_PLTRELSZ:
+			iPltRelSz = aDyn[aIdx].d_val;
+			break;
+		case DT_PLTGOT:
+			iPltGot = ELF_ENTRY_PTR(Elf32_Word, iElfHeader, aDyn[aIdx].d_val);
+			break;
+		case DT_RPATH:
+			break;
+		case DT_SYMBOLIC:
+			break;
+		case DT_INIT:
+			break;
+		case DT_FINI:
+			break;
+		case DT_PLTREL:
+			aPltRelTypeSeen = true;
+			iPltRelType = aDyn[aIdx].d_val;
+			break;
+		case DT_DEBUG:
+			break;
+		case DT_TEXTREL:
+			break;
+		case DT_JMPREL:
+			aJmpRelSeen = true;
+			iJmpRelOffset = aDyn[aIdx].d_val;
+			break;
+		case DT_BIND_NOW:
+			break;
+		case DT_INIT_ARRAY:
+			break;
+		case DT_FINI_ARRAY:
+			break;
+		case DT_INIT_ARRAYSZ:
+			break;
+		case DT_FINI_ARRAYSZ:
+			break;
+		case DT_RELCOUNT:
+			break;
+		case DT_ARM_PLTGOTBASE:
+			iPltGotBase = aDyn[aIdx].d_val;
+			break;
+		case DT_ARM_PLTGOTLIMIT:
+			iPltGotLimit = aDyn[aIdx].d_val;
+			break;
+		case DT_ARM_SYMTABSZ:
+			iNSymbols = aDyn[aIdx].d_val;
+			break;
+		default:
+			//cout << "Unknown entry in dynamic table Tag=0x%x Value=0x%x",aDyn[aIdx].d_tag, aDyn[aIdx].d_val);
+			break;
+		}
+		aIdx++;
+	}
+
+	//String table is found, so get the strings...
+	if(aSONameFound) {
+		iSOName = ELF_ENTRY_PTR(char, iStringTable, iSONameOffset);
+	}
+
+	std::list<PLUINT32>::iterator aItr = aNeeded.begin();
+	char *aStr;
+	for( ; aItr != aNeeded.end();aItr++ ) {
+		aStr = ELF_ENTRY_PTR(char, iStringTable, *aItr);
+		iNeeded.push_back( aStr );
+	}
+
+	if(iVerNeedCount || iVerDefCount) {
+		ProcessVerInfo();
+	}
+
+	if(iHashTbl)
+	{
+		//The number of symbols should be same as the number of chains in hashtable
+		if (iNSymbols && (iNSymbols != iHashTbl->nChains))
+			throw ELFFormatError(SYMBOLCOUNTMISMATCHERROR,(char*)iParameterListInterface->ElfInput());
+		else
+		//The number of symbols is same as the number of chains in hashtable	
+			iNSymbols = iHashTbl->nChains;
+	}
+
+	if( aPltRelTypeSeen  && aJmpRelSeen) {
+
+		if (iPltRelType == DT_REL)
+		{
+			iPltRel = ELF_ENTRY_PTR(Elf32_Rel, iElfHeader, iJmpRelOffset);
+			// check to see if PltRels are included in iRel. If they are
+			// ignore them since we don't care about the distinction
+			if (iRel <= iPltRel && iPltRel < ELF_ENTRY_PTR(Elf32_Rel, iRel, iRelSize))
+				iPltRel = 0;
+		}
+		else
+		{
+			iPltRela = ELF_ENTRY_PTR(Elf32_Rela, iElfHeader, iJmpRelOffset);
+			// check to see if PltRels are included in iRel.  If they are
+			// ignore them since we don't care about the distinction
+			if (iRela <= iPltRela && iPltRela < ELF_ENTRY_PTR(Elf32_Rela, iRela, iRelaSize))
+				iPltRela = 0;
+		}
+	}
+
+	return 0;
+}
+
+/**
+This function processes version information
+@internalComponent
+@released
+*/
+void ElfExecutable::ProcessVerInfo() {
+	PLUINT32 aSz = iVerNeedCount + iVerDefCount + 1;
+	iVerInfo = new VersionInfo[aSz];
+
+	Elf32_Verdef	*aDef;
+	Elf32_Verdaux	*aDaux;
+	Elf32_Verneed	*aNeed;
+	Elf32_Vernaux	*aNaux;
+	char			*aSoName;
+	char			*aLinkAs;
+	
+	aDef = iVersionDef;
+	
+	while( aDef ) {
+		aDaux = ELF_ENTRY_PTR( Elf32_Verdaux, aDef, aDef->vd_aux);
+		aLinkAs = ELF_ENTRY_PTR(char, iStringTable, aDaux->vda_name );
+		aSoName = iSOName;
+		iVerInfo[aDef->vd_ndx].iLinkAs = aLinkAs;
+		iVerInfo[aDef->vd_ndx].iSOName = aSoName;
+		iVerInfo[aDef->vd_ndx].iVerCategory = VER_CAT_DEFINED;
+
+		if( !aDef->vd_next ) {
+			break;
+		}
+		aDef = ELF_ENTRY_PTR(Elf32_Verdef, aDef, aDef->vd_next);
+	}
+
+	aNeed = iVersionNeed;
+
+	while( aNeed ) {
+		aNaux = ELF_ENTRY_PTR(Elf32_Vernaux, aNeed, aNeed->vn_aux);
+		aLinkAs = ELF_ENTRY_PTR(char, iStringTable, aNaux->vna_name);
+		aSoName = ELF_ENTRY_PTR(char, iStringTable, aNeed->vn_file);
+
+		iVerInfo[aNaux->vna_other].iLinkAs = aLinkAs;
+		iVerInfo[aNaux->vna_other].iSOName = aSoName;
+		iVerInfo[aNaux->vna_other].iVerCategory = VER_CAT_NEEDED;
+
+		if( !aNeed->vn_next ) {
+			break;
+		}
+		aNeed = ELF_ENTRY_PTR(Elf32_Verneed, aNeed, aNeed->vn_next);
+	}
+}
+
+/**
+This function processes Elf relocations
+@internalComponent
+@released
+*/
+void ElfExecutable::ProcessRelocations(){
+	ProcessRelocations(iRel, iRelSize);
+	ProcessRelocations(iRela, iRelaSize);
+	ProcessRelocations(iPltRel, iPltRelSz);
+	ProcessRelocations(iPltRela, iPltRelaSz);
+}
+
+/**
+Template Function to process relocations
+@param aElfRel - relocation table
+@param aSize - relocation table size
+@internalComponent
+@released
+*/
+template <class T> 
+void ElfExecutable::ProcessRelocations(T *aElfRel, size_t aSize){
+	if( !aElfRel ) 
+		return;
+
+	T * aElfRelLimit = ELF_ENTRY_PTR(T, aElfRel, aSize);
+
+	PLUINT32		aSymIdx;
+	PLUCHAR			aType;
+	ElfRelocation	*aRel;
+	bool			aImported;
+	Elf32_Word		aAddend;
+
+	while( aElfRel < aElfRelLimit) {
+		
+		aType = ELF32_R_TYPE(aElfRel->r_info );
+		
+		if(ElfRelocation::ValidRelocEntry(aType)) {
+
+			aSymIdx = ELF32_R_SYM(aElfRel->r_info);
+			aImported = ImportedSymbol( &iElfDynSym[aSymIdx] );
+			aAddend = Addend(aElfRel);
+			aRel = ElfRelocation::NewRelocEntry(this, aElfRel->r_offset, aAddend, \
+				aSymIdx, aType, aElfRel, aImported);
+
+			if(aRel) {
+				aRel->Add();
+			}
+		}
+		aElfRel++;
+	}
+}
+
+/**
+This function finds the addend associated with a relocation entry.
+@param aRel - relocation entry
+@return location in the elf image
+@internalComponent
+@released
+*/
+Elf32_Word ElfExecutable::Addend(Elf32_Rel* aRel) {
+	PLUINT32 aOffset;
+	Elf32_Word	*aAddendPlace;
+	Elf32_Phdr  *aHdr = Segment(aRel->r_offset);
+	aOffset = aHdr->p_offset + aRel->r_offset - aHdr->p_vaddr;
+	aAddendPlace = ELF_ENTRY_PTR(Elf32_Word, iElfHeader, aOffset);
+	return *aAddendPlace;
+}
+
+/**
+This function returns the addend for a relocation entry
+@param aRel - relocation entry
+@return location in the elf image
+@internalComponent
+@released
+*/
+Elf32_Word ElfExecutable::Addend(Elf32_Rela* aRel) {
+	return aRel->r_addend;
+}
+
+/**
+This function gets the version info at an index
+@param aIndex - index into the version table
+@return version record
+@internalComponent
+@released
+*/
+VersionInfo* ElfExecutable::GetVersionInfo(PLUINT32  aIndex){
+	return &iVerInfo[ iVersionTbl[aIndex]];
+}
+
+
+/**
+This function returns the Dll name in which an imported symbol is 
+defined by looking in the version required section.
+@param aSymbolIndex - Index of symbol
+@return Dll name
+@internalComponent
+@released
+*/
+char* ElfExecutable::SymbolDefinedInDll(PLUINT32  aSymbolIndex){
+
+	VersionInfo *aVInfo = GetVersionInfo(aSymbolIndex);
+	return aVInfo ? aVInfo->iLinkAs : NULL;
+}
+
+/**
+This function returns the DSO(import library) name where the Symbol information can be found.
+This DSO is then looked up for the ordinal number of this symbol.
+@param aSymbolIndex - Index of symbol
+@return DSO name
+@internalComponent
+@released
+*/
+char* ElfExecutable::SymbolFromDSO(PLUINT32  aSymbolIndex){
+
+	VersionInfo *aVInfo = GetVersionInfo(aSymbolIndex);
+	return aVInfo ? aVInfo->iSOName : NULL;
+}
+
+/**
+This function returns the segment type
+@param aAddr - Address
+@return Segment type
+@internalComponent
+@released
+*/
+ESegmentType ElfExecutable::SegmentType(Elf32_Addr aAddr) {
+	
+	try {
+		Elf32_Phdr *aHdr = Segment(aAddr);
+		if( !aHdr )
+			return ESegmentUndefined;
+
+		if( aHdr == iCodeSegmentHdr)
+			return ESegmentRO;
+		else if(aHdr == iDataSegmentHdr)
+			return ESegmentRW;
+		else
+			return ESegmentUndefined;
+	}
+	catch(...)
+	{
+	}
+
+	return ESegmentUndefined;
+}
+
+/**
+This function returns the segment type
+@param aType
+@return Segment header
+@internalComponent
+@released
+*/
+Elf32_Phdr* ElfExecutable::Segment(ESegmentType aType) {
+	
+	switch(aType)
+	{
+	case ESegmentRO:
+		return iCodeSegmentHdr;
+	case ESegmentRW:
+		return iDataSegmentHdr;
+	default:
+		return NULL;
+	}
+}
+
+/**
+Function to get segment header
+@param aAddr - Address
+@return Segment header
+@internalComponent
+@released
+*/
+Elf32_Phdr* ElfExecutable::Segment(Elf32_Addr aAddr) {
+	
+	if(iCodeSegmentHdr) {
+		PLUINT32 aBase = iCodeSegmentHdr->p_vaddr;
+		if( aBase <= aAddr && aAddr < (aBase + iCodeSegmentHdr->p_memsz) ) {
+			return iCodeSegmentHdr;
+		}
+	}
+	if(iDataSegmentHdr) {
+		PLUINT32 aBase = iDataSegmentHdr->p_vaddr;
+		if( aBase <= aAddr && aAddr < (aBase + iDataSegmentHdr->p_memsz) ) {
+			return iDataSegmentHdr;
+		}
+	}
+
+	throw int(0);
+}
+
+/**
+Thsi function returns the segment header to which the address refers.
+@param aAddr - location
+@return Segment header.
+@internalComponent
+@released
+*/
+Elf32_Phdr* ElfExecutable::SegmentFromAbs(Elf32_Addr aAddr) {
+
+	if(iCodeSegmentHdr) {
+		PLUINT32 aBase = iCodeSegmentHdr->p_vaddr;
+		if( aBase <= aAddr && aAddr <= (aBase + iCodeSegmentHdr->p_memsz) ) {
+			return iCodeSegmentHdr;
+		}
+	}
+	if(iDataSegmentHdr) {
+		PLUINT32 aBase = iDataSegmentHdr->p_vaddr;
+		if( aBase <= aAddr && aAddr <= (aBase + iDataSegmentHdr->p_memsz) ) {
+			return iDataSegmentHdr;
+		}
+	}
+	return NULL;
+}
+
+/**
+This function says if the symbol is global.
+@param aSym - Symbol
+@return True if symbol is global, otherwise false
+@internalComponent
+@released
+*/
+bool ElfExecutable::GlobalSymbol(Elf32_Sym* aSym)
+{
+	return (ELF32_ST_BIND(aSym->st_info) == STB_GLOBAL);
+}
+
+/**
+This function says if the symbol is exported.
+@param aSym - Symbol
+@return True if symbol is exported, otherwise false
+@internalComponent
+@released
+*/
+bool ElfExecutable::ExportedSymbol(Elf32_Sym* aSym)
+{
+	PLUINT32 aIdx = aSym->st_shndx;
+
+	if(GlobalSymbol(aSym) && VisibleSymbol(aSym) && DefinedSymbol(aSym) && \
+		(aIdx != SHN_UNDEF) && (FunctionSymbol(aSym) || DataSymbol(aSym) ) && aIdx < SHN_ABS )
+		return true;
+	return false;
+}
+
+/**
+This function says if the symbol is imported.
+@param aSym - Symbol
+@return True if symbol is imported, otherwise false
+@internalComponent
+@released
+*/
+bool ElfExecutable::ImportedSymbol(Elf32_Sym* aSym)
+{
+	PLUINT32 aIdx = aSym->st_shndx;
+
+	if( (aIdx == SHN_UNDEF) && GlobalSymbol(aSym) && VisibleSymbol(aSym) && (!DefinedSymbol(aSym)) )
+		return true;
+	return false;
+}
+
+/**
+This function says if the symbol refers to code or data.
+@param aSym - Symbol
+@return True if symbol refers to code, otherwise false
+@internalComponent
+@released
+*/
+bool ElfExecutable::FunctionSymbol(Elf32_Sym* aSym)
+{
+	return (STT_FUNC == ELF32_ST_TYPE(aSym->st_info));
+}
+
+/**
+This function says if the symbol refers to code or data.
+@param aSym - Symbol
+@return True if symbol refers to data, otherwise false
+@internalComponent
+@released
+*/
+bool ElfExecutable::DataSymbol(Elf32_Sym* aSym)
+{
+	return (STT_OBJECT == ELF32_ST_TYPE(aSym->st_info));
+}
+
+/**
+This function says if the symbol is defined in the Elf executable.
+@param aSym - Symbol
+@return True if symbol is defined, otherwise false
+@internalComponent
+@released
+*/
+bool ElfExecutable::DefinedSymbol(Elf32_Sym* aSym)
+{
+	if( aSym->st_shndx == SHN_UNDEF )
+		return false;
+	ESegmentType aType = SegmentType(aSym->st_value);
+	return ((aType == ESegmentRO) || (aType == ESegmentRW));
+}
+
+/**
+This function says if the visibility of the symbol is default.
+@param aSym - Symbol
+@return True if symbol has default visibility, otherwise false
+@internalComponent
+@released
+*/
+bool ElfExecutable::VisibleSymbol(Elf32_Sym* aSym)
+{
+	return (STV_DEFAULT == ELF32_ST_VISIBILITY(aSym->st_other) || STV_PROTECTED == ELF32_ST_VISIBILITY(aSym->st_other));
+}
+
+/**
+This function finds symbol using the hash table
+@param aName - Symbol name
+@return elf symbol.
+@internalComponent
+@released
+*/
+Elf32_Sym* ElfExecutable::FindSymbol(char* aName) {
+	if(!aName )
+		return NULL;
+
+	PLULONG aHashVal = Util::elf_hash((const PLUCHAR*) aName );
+	
+	Elf32_Sword* aBuckets = ELF_ENTRY_PTR(Elf32_Sword, iHashTbl, sizeof(Elf32_HashTable) );
+	Elf32_Sword* aChains = ELF_ENTRY_PTR(Elf32_Sword, aBuckets, sizeof(Elf32_Sword)*(iHashTbl->nBuckets) );
+
+	Elf32_Sword aIdx = aHashVal % iHashTbl->nBuckets;
+	aIdx = aBuckets[aIdx];
+	
+	char	*aSymName;
+	do {
+		aSymName = ELF_ENTRY_PTR(char, iStringTable, iElfDynSym[aIdx].st_name);
+		if( !strcmp(aSymName, aName) ) {
+			return &iElfDynSym[aIdx];
+		}
+		aIdx = aChains[aIdx];
+	}while( aIdx > 0 );
+
+	return NULL;
+}
+
+/**
+Function to get symbol name
+@param aSymIdx - Index of symbol
+@return Symbol name
+@internalComponent
+@released
+*/
+char* ElfExecutable::GetSymbolName( PLUINT32 aSymIdx) {
+	return ELF_ENTRY_PTR(char, iStringTable, iElfDynSym[aSymIdx].st_name);
+}
+
+/**
+Function to get symbol ordinal
+@param aSymName - Symbol name
+@return Symbol ordinal
+@internalComponent
+@released
+*/
+PLUINT32 ElfExecutable::GetSymbolOrdinal( char* aSymName) {
+	Elf32_Sym	*aSym = FindSymbol(aSymName);
+	if( !aSym )
+		return (PLUINT32)-1;
+	return GetSymbolOrdinal( aSym );
+	
+}
+
+/**
+Function to get symbol ordinal
+@param aSym - Symbol
+@return Symbol ordinal
+@internalComponent
+@released
+*/
+PLUINT32 ElfExecutable::GetSymbolOrdinal( Elf32_Sym* aSym) {
+	PLUINT32 aOrd = (PLUINT32)-1;
+	if( aSym->st_shndx == ESegmentRO) {
+		Elf32_Word *aLocation, aOffset;
+
+		aOffset = iCodeSegmentHdr->p_offset + aSym->st_value - iCodeSegmentHdr->p_vaddr;
+		aLocation = ELF_ENTRY_PTR(Elf32_Word, iElfHeader, aOffset);
+		aOrd = *aLocation;
+	}
+	return aOrd;
+}
+
+/**
+Function to get relocation offset
+@param aReloc - Instance of class ElfRelocation
+@return offset
+@internalComponent
+@released
+*/
+Elf32_Word ElfExecutable::GetRelocationOffset(ElfRelocation * aReloc)
+{
+	Elf32_Phdr * aHdr = Segment(aReloc->iAddr);
+	unsigned int aOffset = aReloc->iAddr - aHdr->p_vaddr;
+	return aOffset;
+}
+
+/**
+Function to get relocation place address
+@param aReloc - Instance of class ElfRelocation
+@return address to place relocation
+@internalComponent
+@released
+*/
+Elf32_Word * ElfExecutable::GetRelocationPlace(ElfRelocation * aReloc)
+{
+	Elf32_Phdr * aHdr = Segment(aReloc->iAddr);
+	unsigned int aOffset = aHdr->p_offset + aReloc->iAddr - aHdr->p_vaddr;
+	Elf32_Word * aPlace = ELF_ENTRY_PTR(Elf32_Word, iElfHeader, aOffset);
+	return aPlace;
+}
+
+/**
+Function to get local relocation
+@return local relocation
+@internalComponent
+@released
+*/
+ElfRelocations& ElfExecutable::GetLocalRelocations()
+{
+	return iLocalRelocations;
+}
+
+/**
+Function to get code relocation
+@return code relocation list
+@internalComponent
+@released
+*/
+ElfRelocations::RelocationList & ElfExecutable::GetCodeRelocations()
+{
+	return GetLocalRelocations().GetCodeRelocations();
+}
+
+/**
+Function to get data relocation
+@return data relocation list
+@internalComponent
+@released
+*/
+ElfRelocations::RelocationList & ElfExecutable::GetDataRelocations()
+{
+	return GetLocalRelocations().GetDataRelocations();
+}
+
+/**
+Function to get RO base address
+@return RO base virtual address
+@internalComponent
+@released
+*/
+Elf32_Word ElfExecutable::GetROBase()
+{
+	if (iCodeSegmentHdr) return iCodeSegmentHdr->p_vaddr;
+	return 0;
+}
+
+/**
+Function to get RO segment
+@return code segment
+@internalComponent
+@released
+*/
+MemAddr ElfExecutable::GetRawROSegment()
+{
+	return iCodeSegment;
+}
+
+/**
+Function to get RW segment virtual address
+@return RW base address
+@internalComponent
+@released
+*/
+Elf32_Word ElfExecutable::GetRWBase()
+{
+	if (iDataSegmentHdr) return iDataSegmentHdr->p_vaddr;
+	return 0;
+}
+
+/**
+Function to get Raw RW segment
+@return data segment address
+@internalComponent
+@released
+*/
+MemAddr ElfExecutable::GetRawRWSegment()
+{
+	return iDataSegment;
+}
+
+/**
+Function to get RO segment size
+@return code segment size
+@internalComponent
+@released
+*/
+size_t ElfExecutable::GetROSize()
+{
+	return iCodeSegmentHdr->p_filesz;
+}
+
+/**
+Function to get RW segment size
+@return data segment size
+@internalComponent
+@released
+*/
+size_t ElfExecutable::GetRWSize()
+{
+	if (iDataSegmentHdr)
+		return iDataSegmentHdr->p_filesz;;
+	return 0;
+}
+
+/**
+Function to get Bss segment size
+@return Bss segment size, if data segment, otherwise 0
+@internalComponent
+@released
+*/
+size_t ElfExecutable::GetBssSize()
+{
+	if (iDataSegmentHdr)
+		return iDataSegmentHdr->p_memsz - iDataSegmentHdr->p_filesz;
+	return 0;
+}
+
+/**
+Function returns entry point location in Elf image.
+@return entry point offset if valid, warning if undefined, otherwise throw error
+@internalComponent
+@released
+*/
+Elf32_Word ElfExecutable::EntryPointOffset()
+{
+	if (!(iElfHeader->e_entry) && !(iCodeSegmentHdr->p_vaddr))
+	{
+		MessageHandler::GetInstance()->ReportMessage(WARNING, UNDEFINEDENTRYPOINTERROR,(char*)iParameterListInterface->ElfInput());
+		return 0;
+	}
+	else if (!(iElfHeader->e_entry))
+		throw ELFFormatError(ENTRYPOINTNOTSETERROR, (char*)iParameterListInterface->ElfInput());
+	else 
+		return iElfHeader->e_entry - iCodeSegmentHdr->p_vaddr;
+}
+
+/**
+Function to check exception is present in the Elf image.
+@return True if exception present, otherwise false
+@internalComponent
+@released
+*/
+bool ElfExecutable::ExeceptionsPresentP()
+{	
+	size_t nShdrs = iElfHeader->e_shnum;
+	if (nShdrs)
+	{
+		// Find the exception index table section
+		Elf32_Shdr * aShdr = ELF_ENTRY_PTR(Elf32_Shdr, iElfHeader, iElfHeader->e_shoff);
+		char * aShStrTab = ELF_ENTRY_PTR(char, iElfHeader, aShdr[iElfHeader->e_shstrndx].sh_offset);
+
+		for (PLUINT32 i = 0; i < nShdrs; i++)
+		{
+			if (aShdr[i].sh_type == SHT_ARM_EXIDX)
+			{
+				char * aSectionName = aShStrTab + aShdr[i].sh_name;
+				if (!strcmp(aSectionName, ".ARM.exidx"))
+				{
+					return true;
+				}
+			}
+		}
+
+	}
+	else
+		throw ELFFileError(NEEDSECTIONVIEWERROR, (char*)iParameterListInterface->ElfInput());
+	
+	return false;
+}
+
+/**
+Function to get the exports in ordinal number order.
+@return ordered exports
+@internalComponent
+@released
+*/
+ElfExports::ExportList &ElfExecutable::GetExportsInOrdinalOrder() {
+	return iExports->GetExportsInOrdinalOrder();
+}
+
+/**
+This function looks up for a symbol in the static symbol table.
+@return Elf symbol.
+@internalComponent
+@released
+*/
+Elf32_Sym * ElfExecutable::LookupStaticSymbol(char * aName) {
+	size_t nShdrs = iElfHeader->e_shnum;
+	if (nShdrs)
+	{
+		// find the static symbol table and string table
+		Elf32_Shdr * aShdr = ELF_ENTRY_PTR(Elf32_Shdr, iElfHeader, iElfHeader->e_shoff);
+		char * aShStrTab = ELF_ENTRY_PTR(char, iElfHeader, aShdr[iElfHeader->e_shstrndx].sh_offset);
+		Elf32_Sym * aSymTab = 0;
+		Elf32_Sym * aLim = 0;
+		char * aStrTab = 0;
+		for (PLUINT32 i = 0; i < nShdrs; i++)
+		{
+			if (aShdr[i].sh_type == SHT_SYMTAB)
+			{
+				aSymTab = ELF_ENTRY_PTR(Elf32_Sym, iElfHeader, aShdr[i].sh_offset);
+				aLim = ELF_ENTRY_PTR(Elf32_Sym, aSymTab, aShdr[i].sh_size);
+				if (aStrTab) break;
+			}
+			else if (aShdr[i].sh_type == SHT_STRTAB)
+			{
+				char * aSectionName = aShStrTab + aShdr[i].sh_name;
+				if (!strcmp(aSectionName, ".strtab"))
+				{
+					aStrTab = ELF_ENTRY_PTR(char, iElfHeader, aShdr[i].sh_offset);
+					if (aSymTab) break;
+				}
+			}
+		}
+
+		/*if(aHashTbl && aSymTab && aStrTab)
+		{
+			PLULONG aHashVal = Util::elf_hash((const PLUCHAR*)aName);
+			Elf32_Sword* aBuckets = ELF_ENTRY_PTR(Elf32_Sword, aHashTbl, sizeof(Elf32_HashTable) );
+			Elf32_Sword* aChains = ELF_ENTRY_PTR(Elf32_Sword, aBuckets, sizeof(Elf32_Sword)*(aHashTbl->nBuckets) );
+
+			PLUINT32 aIdx = aHashVal % aHashTbl->nBuckets;
+			aIdx = aBuckets[aIdx];
+			
+			char	*aSymName;
+			do {
+				aSymName = ELF_ENTRY_PTR(char, aStrTab, aSymTab[aIdx].st_name);
+				if( !strcmp(aSymName, aName) ) {
+					return &aSymTab[aIdx];
+				}
+				aIdx = aChains[aIdx];
+			}while( aIdx > 0 );
+
+			return NULL;
+		}
+		else */ 
+
+		if (aSymTab && aStrTab)
+		{	
+			for(; aSymTab < aLim; aSymTab++)
+			{
+				if (!aSymTab->st_name) continue;
+				char * aSymName = aStrTab + aSymTab->st_name;
+				if (!strcmp(aSymName, aName))
+					return aSymTab;
+			}
+			return 0;
+		}
+		else
+		{
+			throw ELFFileError(NOSTATICSYMBOLSERROR, (char*)iParameterListInterface->ElfInput());
+		}
+	}
+	else
+	{
+			throw ELFFileError(NOSTATICSYMBOLSERROR, (char*)iParameterListInterface->ElfInput());
+	}
+}
+
+/**
+Function to get imports
+@return imports
+@internalComponent
+@released
+*/
+ElfImports::ImportMap ElfExecutable::GetImports() {
+	return iImports.GetImports();
+}
+
+/**
+Function to get exports
+@return exports
+@internalComponent
+@released
+*/
+ElfExports* ElfExecutable::GetExports() {
+	return iExports;
+}
+
+/**
+Function to get fixup location
+@param aReloc - Instance of class ElfLocalRelocation
+@param aPlace -
+@return addres of position for relocation
+@internalComponent
+@released
+*/
+Elf32_Word* ElfExecutable::GetFixupLocation(ElfLocalRelocation* aReloc, Elf32_Addr aPlace)
+{
+	Elf32_Phdr * aPhdr = aReloc->ExportTableReloc() ? 
+		iCodeSegmentHdr :
+		Segment(aPlace);
+	Elf32_Word offset = aPhdr->p_offset + aPlace - aPhdr->p_vaddr;
+	return ELF_ENTRY_PTR(Elf32_Word, iElfHeader, offset);
+}
+
+/**
+Function to get the segment type
+@param aSym - Symbol
+@return Segment type
+@internalComponent
+@released
+*/
+ESegmentType ElfExecutable::Segment(Elf32_Sym *aSym)
+{
+	Elf32_Phdr * aHdr;
+
+	try {
+
+		bool limitSymbolFound = false;
+
+		// If Symbol is absolute then assume it came from linker and is a
+		// limit symbol.
+		if (aSym->st_shndx == SHN_ABS)
+		{
+			aHdr = SegmentFromAbs(aSym->st_value);
+		}
+		else
+		{
+			if( (iCodeSegmentHdr && aSym->st_value == (iCodeSegmentHdr->p_vaddr + iCodeSegmentHdr->p_memsz)) ||
+				(iDataSegmentHdr && aSym->st_value == (iDataSegmentHdr->p_vaddr + iDataSegmentHdr->p_memsz)) )
+			{
+				//If Symbol is a $$Limit symbol, then consider the open boundary.
+				String limitstr = iStringTable + aSym->st_name;
+				if (limitstr.rfind("$$Limit",limitstr.length()) != String::npos)
+				{
+					aHdr = SegmentFromAbs(aSym->st_value);
+					limitSymbolFound = true;
+				}
+			}
+
+			if(!limitSymbolFound )
+			{
+				aHdr = Segment(aSym->st_value);
+			}
+
+		}
+		
+		if (aHdr == iCodeSegmentHdr)
+		{
+			return ESegmentRO;
+		} 
+		else if (aHdr == iDataSegmentHdr)
+		{
+			return ESegmentRW;
+		}
+	}
+	catch(...)
+	{
+	}
+	return ESegmentUndefined;
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/pl_elfexecutable.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,247 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation of the Class ElfExecutable for the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+#if !defined(_PL_ELFEXECUTABLE_H_)
+#define _PL_ELFEXECUTABLE_H_
+
+#include "pl_common.h"
+#include <list>
+#include <hash_map>
+#include "pl_elfimports.h"
+#include "pl_elfrelocations.h"
+#include "pl_elfexports.h"
+
+using std::list;
+using std::hash_map;
+
+class DllSymbol;
+class Symbol;
+class ElfRelocations;
+class ElfExports;
+class ParameterListInterface;
+class ElfLocalRelocation;
+/**
+This class is for ELF object carrying the elf header, sections, segments.
+@internalComponent
+@released
+*/
+class ElfExecutable
+{
+
+public:
+	ElfExecutable(ParameterListInterface *aParameterListInterface);
+	virtual ~ElfExecutable();
+	
+	PLUINT32 ProcessElfFile(Elf32_Ehdr *aElfHdr);
+	void DumpElfFile(char* aFile);
+
+	PLUINT32 ProcessSymbols();
+	ElfImports::ImportMap GetImports();
+	ElfExports* GetExports();
+	DllSymbol* AddToExports(char* aDll, DllSymbol* aSymbol);
+	void AddToImports(ElfImportRelocation* aReloc);
+	PLUINT32 AddToRelocations(ElfRelocation* aReloc);
+	void AddToLocalRelocations(ElfRelocation* aReloc);
+	void ProcessVerInfo();
+
+	Elf32_Sym* FindSymbol(char* aSymName);
+
+	PLUINT32 GetSymbolOrdinal( char* aSymName);
+	PLUINT32 GetSymbolOrdinal( Elf32_Sym* );
+	char* GetSymbolName( PLUINT32 aSymIdx);
+	Elf32_Word GetRelocationOffset(ElfRelocation * aReloc);
+	Elf32_Word *GetRelocationPlace(ElfRelocation * aReloc);
+
+	Elf32_Word GetROBase();
+	Elf32_Word GetRWBase();
+	size_t GetROSize();
+	size_t GetRWSize();
+	size_t GetBssSize();
+	MemAddr GetRawROSegment();
+	MemAddr GetRawRWSegment();
+	Elf32_Word EntryPointOffset();
+	ESegmentType SegmentType(Elf32_Addr aAddr);
+	Elf32_Phdr* Segment(Elf32_Addr aAddr);
+	ElfRelocations::RelocationList & GetCodeRelocations();
+	ElfRelocations::RelocationList & GetDataRelocations();
+	ElfRelocations& GetLocalRelocations();
+	bool ExeceptionsPresentP();
+	ElfExports::ExportList& GetExportsInOrdinalOrder();
+	Elf32_Sym* LookupStaticSymbol(char * aName);
+public:
+	/**
+	 * The elf header pointer which points to the base of the file records
+	 */
+	Elf32_Ehdr	*iElfHeader;
+	Elf32_Addr	iEntryPoint;
+	/**
+	 * The dynamic program header of the elf file
+	 */
+	Elf32_Phdr	*iProgHeader;
+
+	PLUINT32	iSONameOffset;
+	char		*iSOName;
+	/**
+	 * This member points to the base of the section header table.
+	 */
+	Elf32_Shdr		*iSections;
+	Elf32_Verdef	*iVersionDef;
+	PLUINT32		iVerDefCount;
+	Elf32_Verneed	*iVersionNeed;
+	PLUINT32		iVerNeedCount;
+	Elf32_Half		*iVersionTbl;
+	PLUINT32		iRelSize;
+	PLUINT32		iRelEntSize;
+	PLUINT32		iNRelocs;
+	Elf32_Rel		*iRel;
+	PLUINT32		iRelaSize;
+	PLUINT32		iRelaEntSize;
+	Elf32_Rela		*iRela;
+	char			*iStringTable;
+	char			*iSectionHdrStrTbl;
+
+	list<char*>		iNeeded;
+	VersionInfo		*iVerInfo;
+	/**
+	 * The dynamic symbol array.
+	 */
+	Elf32_Sym		*iElfDynSym;//The ELF symbol
+	hash_map<PLUINT32, DllSymbol*>	iSymbolTable; //The representation
+
+	/**
+	 * The static symbol table.
+	 */
+	Elf32_Sym *iSymTab; 
+	char *iStrTab;
+	Elf32_Sym *iLim;
+
+	PLUINT32		iNSymbols;
+	Elf32_HashTable	*iHashTbl;
+	Elf32_Phdr		*iDynSegmentHdr;
+	Elf32_Phdr		*iDataSegmentHdr;
+	MemAddr			iDataSegment;
+	size_t			iDataSegmentSize;
+	PLUINT32		iDataSegmentIdx;
+	Elf32_Phdr		*iCodeSegmentHdr;
+	MemAddr			iCodeSegment;
+	size_t			iCodeSegmentSize;
+	PLUINT32		iCodeSegmentIdx;
+	ElfImports		iImports;
+	ElfExports		*iExports;
+	ElfRelocations  iLocalRelocations;
+	ParameterListInterface *iParameterListInterface;
+	PLUINT32		iPltGotBase;
+	PLUINT32		iPltGotLimit;
+	PLUINT32		iStrTabSz;
+	PLUINT32		iSymEntSz;
+	Elf32_Word		*iPltGot;
+	PLUINT32		iPltRelType;
+	Elf32_Rel		*iPltRel;
+	PLUINT32		iPltRelaSz;
+	Elf32_Rela		*iPltRela;
+	PLUINT32		iPltRelSz;
+	PLUINT32		iJmpRelOffset;
+
+	PLUINT32	ValidateElfFile();
+	PLUINT32	ProcessDynamicEntries();
+	void	ProcessRelocations();
+	template <class T> void	ProcessRelocations(T *aElfRel, size_t aSize);
+
+	VersionInfo* GetVersionInfo(PLUINT32 aIndex);
+	char*		SymbolDefinedInDll(PLUINT32 aSymbolIndex);
+	void SetVersionRecord( ElfRelocation* aReloc );
+
+/** This function says if the Symbol is a global symbol
+@return It returns true if the Symbol is a global one.
+@param aSym The reference to the Symbol whose attribute is being checked
+*/
+bool GlobalSymbol(Elf32_Sym* aSym);
+
+/** This function says if the Symbol is Exported
+@return It returns true if the Symbol is an exported one.
+@param aSym The reference to the Symbol whose attribute is being checked
+*/
+bool ExportedSymbol(Elf32_Sym* aSym);
+
+/** This function says if the Symbol is Imported
+@return It returns true if the Symbol is an imported one.
+@param aSym The reference to the Symbol whose attribute is being checked
+*/
+bool ImportedSymbol(Elf32_Sym* aSym);
+
+/** This function says if the Symbol is a Code Symbol
+@return It returns true if the Symbol is of Code type.
+@param aSym The reference to the Symbol whose attribute is being checked
+*/
+bool FunctionSymbol(Elf32_Sym* aSym);
+
+/** This function says if the Symbol is a Data Symbol
+@return It returns true if the Symbol is of Data type.
+@param aSym The reference to the Symbol whose attribute is being checked
+*/
+bool DataSymbol(Elf32_Sym* aSym);
+
+/** This function says if the Symbol is Defined
+@return It returns true if the Symbol is defined.
+@param aSym The reference to the Symbol whose attribute is being checked
+*/
+bool DefinedSymbol(Elf32_Sym* aSym);
+
+/** This function says if the Symbol has a default Visibility
+@return It returns true if the Symbol has a default Visibility
+@param aSym The reference to the Symbol whose attribute is being checked
+*/
+bool VisibleSymbol(Elf32_Sym* aSym);
+
+/** This function finds the segment in which this address belongs
+@return the segment type
+@param aAddr The address within the executable
+*/
+
+Elf32_Word Addend(Elf32_Rel* aRel);
+Elf32_Word Addend(Elf32_Rela* aRel);
+
+char* SymbolFromDSO(PLUINT32  aSymbolIndex);
+Elf32_Word* GetFixupLocation(ElfLocalRelocation* aReloc, Elf32_Addr aPlace);
+ESegmentType Segment(Elf32_Sym *aSym);
+Elf32_Phdr* SegmentFromAbs(Elf32_Addr aAddr);
+Elf32_Phdr* Segment(ESegmentType aType);
+
+/** This function processes the linker generated Veneer symbols and
+ *  creates a relocation entry.
+ */
+void ProcessVeneers();
+/** This function processes the ELF file to find the static symbol table.
+*/
+void FindStaticSymbolTable();
+/** This function finds the .comment section
+@return the pointer to the comment section
+*/
+char* FindCommentSection();
+/** This function finds the value at the address passed in
+@return the value at the address passed in
+@param aAddr The address within the executable
+*/
+Elf32_Word FindValueAtLoc(Elf32_Addr aOffset);
+};
+
+
+
+
+#endif // !defined(_PL_ELFEXECUTABLE_H_)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/pl_elfexports.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,265 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation of the Class ElfExports for the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+#include "pl_elfexports.h"
+#include "pl_elfexecutable.h"
+#include "pl_dllsymbol.h"
+
+using std::set_difference;
+
+/**
+Constructor for class ElfExports
+@internalComponent
+@released
+*/
+ElfExports::ElfExports() : iDllName(NULL), iSorted(false), iExportsFilteredP(false){
+}
+
+/**
+Destructor for class ElfExports
+@internalComponent
+@released
+*/
+ElfExports::~ElfExports()
+{
+	if(iExportList.size())
+	{
+		ExportList::iterator aItr = iExportList.begin();
+		ExportList::iterator last = iExportList.end();
+		DllSymbol *temp;
+
+		while( aItr != last)
+		{
+			temp = *aItr;
+			aItr++;
+			delete temp;
+		}
+	}
+	iExportList.clear();
+
+}
+
+/**
+This function validates exported symbols. The typeinfo name strings
+are not valid export symbols and are discarded.
+@param aExecutable - Instance of class ElfExecutable
+@param aSym	- DllSymbol
+@return True if symbol is valid, otherwise false
+@internalComponent
+@released
+*/
+bool ElfExports::ValidExportP(ElfExecutable * aExecutable, DllSymbol * aSym)
+{
+	char * aSymName = aExecutable->GetSymbolName(aSym->iSymbolIndex);
+	int result = strncmp(aSymName, "_ZTS", strlen("_ZTS"));
+	return ( result != 0);
+}
+
+/**
+This function adds export symbols into exports list.
+@param aDll - Dll name
+@param aExecutable - Instance of class ElfExecutable
+@param aSym - Dll symbol
+@return Dll Symbol if its valid, otherwise NULL
+@internalComponent
+@released
+*/
+DllSymbol* ElfExports::Add(char *aDll, ElfExecutable * aExecutable, DllSymbol *aSym)
+{
+	if (ValidExportP(aExecutable, aSym))
+	{
+		if( !iDllName )
+			iDllName = aDll;
+
+		iExportList.push_back(aSym);
+		iSorted = false;
+		return aSym;
+	}
+	return NULL;
+}
+
+/**
+Function to add elf exports
+@param aDll - Dll name
+@param aSym - Dll symbol
+@internalComponent
+@released
+*/
+void ElfExports::Add(char *aDll, DllSymbol *aSym)
+{
+	if( !iDllName )
+		iDllName = aDll;
+	iExportList.push_back(aSym);
+	iSorted = false;
+}
+
+/**
+Function to sort elf exports. Sorting may be done based on the symbol
+name or on the ordinal number depending on the usecase.
+@internalComponent
+@released
+*/
+void ElfExports::Sort() 
+{
+	if (!iSorted) {
+		if(iExportsFilteredP) {
+			std::sort(iFilteredExports.begin(), iFilteredExports.end(), PtrELFExportNameCompare());
+		}
+		else {
+			std::sort(iExportList.begin(), iExportList.end(), PtrELFExportNameCompare());
+		}
+		iSorted = true;
+	}
+}
+
+/**
+Function to get exports list.
+@param aSorted - sort before returning the exports.
+@return export list
+@internalComponent
+@released
+*/
+ElfExports::ExportList & ElfExports::GetExports(bool aSorted)
+{
+	if (aSorted) Sort();
+	
+	if(iExportsFilteredP) 
+		return iFilteredExports;
+	else
+		return iExportList;
+}
+
+/**
+Function to get exports in ordinal order
+@return export list
+@internalComponent
+@released
+*/
+ElfExports::ExportList & ElfExports::GetExportsInOrdinalOrder()
+{
+	if (iExportsFilteredP)
+	{
+		std::sort(iFilteredExports.begin(), iFilteredExports.end(), PtrELFExportOrdinalCompare());
+		return iFilteredExports;
+	}
+	else
+	{
+		std::sort(iExportList.begin(), iExportList.end(), PtrELFExportOrdinalCompare());
+		return iExportList;
+	}
+}
+
+/**
+Function to process the filtered exports
+@internalComponent
+@released
+*/
+void ElfExports::FilterExports()
+{
+	std::sort(iExportList.begin(), iExportList.end(), PtrELFExportNameCompare());
+	std::sort(iFilteredExports.begin(), iFilteredExports.end(), PtrELFExportNameCompare());
+
+	ExportList aNewList(iExportList.size());
+	ExportList::iterator aNewListBegin = aNewList.begin(); 
+
+	ExportList::iterator aNewListEnd = set_difference(iExportList.begin(), iExportList.end(), \
+		iFilteredExports.begin(), iFilteredExports.end(), aNewListBegin, PtrELFExportNameCompare());
+
+	iFilteredExports.clear();
+	while (aNewListBegin != aNewListEnd)
+	{
+		iFilteredExports.push_back(*aNewListBegin);
+		aNewListBegin++;
+	}
+}
+
+/**
+Function to get number of exports
+@return size of export list
+@internalComponent
+@released
+*/
+size_t ElfExports::GetNumExports()
+{
+	return iExportList.size();
+}
+
+/**
+Function to get Dll name
+@return Dll name
+@internalComponent
+@released
+*/
+char* ElfExports::DllName()
+{ 
+	return iDllName;
+}
+
+/**
+Overloaded operator to compare ELF export names.
+@return True if lhs symbol name < rhs symbol name, otherwise false
+@internalComponent
+@released
+*/
+bool ElfExports::PtrELFExportNameCompare::operator()(const Symbol * lhs, const Symbol * rhs) const
+{
+	return strcmp( lhs->SymbolName(), rhs->SymbolName()) < 0;
+}
+
+/**
+Overloaded operator to compare ordinal numbers of symbols.
+@return True if lhs symbol name < rhs symbol name, otherwise false
+@internalComponent
+@released
+*/
+bool ElfExports::PtrELFExportOrdinalCompare::operator()(const Symbol * lhs, const Symbol * rhs) const
+{
+	return lhs->OrdNum() < rhs->OrdNum();
+}
+
+/**
+Overloaded operator to compare update symbol attributes that are 
+being compared. The comparision is done on the symbol names.
+@return True if lhs symbol name < rhs symbol name, otherwise false
+@internalComponent
+@released
+*/
+bool ElfExports::PtrELFExportNameCompareUpdateAttributes::operator()(const Symbol * lhs, const Symbol * rhs) const
+{
+	int result = strcmp(lhs->SymbolName(), rhs->SymbolName());
+	if (!result) 
+	{
+		if (lhs->OrdNum() > 0)
+			((Symbol*)rhs)->SetOrdinal( lhs->OrdNum());
+		else if (rhs->OrdNum() > 0)
+			((Symbol*)lhs)->SetOrdinal( rhs->OrdNum());
+				
+		if( ((Symbol*)lhs)->Absent() )
+			((Symbol*)rhs)->SetAbsent(true);
+		else if ( ((Symbol*)rhs)->Absent() )
+			((Symbol*)lhs)->SetAbsent(true);
+
+		if( ((Symbol*)lhs)->SymbolSize() )
+			((Symbol*)rhs)->SetSymbolSize(((Symbol*)lhs)->SymbolSize());
+		else if( ((Symbol*)rhs)->SymbolSize() )
+			((Symbol*)lhs)->SetSymbolSize(((Symbol*)rhs)->SymbolSize());
+	}
+	return result < 0;
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/pl_elfexports.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,100 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation of the Class ElfExports for the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+#if !defined(_PL_ELFEXPORTS_H_)
+#define _PL_ELFEXPORTS_H_
+
+#include "pl_common.h"
+#include <vector>
+#include <functional>
+#include <algorithm>
+
+using std::vector;
+using std::binary_function;
+
+class ElfExecutable;
+class DllSymbol;
+class Symbol;
+
+/**
+This class is for exports coming from elf file.
+(Corresponding to the exported symbols defined in the given DLL. These exports are filtered
+by individual targets as per their requirements(relating to class impedimenta). While 
+processing these exports, they are also to update the ordinal numbers before these exports
+are written into the dso file.
+@internalComponent
+@released
+*/
+class ElfExports
+{
+
+public:
+	typedef std::vector<DllSymbol*>	ExportList;
+
+	
+	struct PtrELFExportNameCompare : 
+		binary_function<const Symbol *, const Symbol *, bool>
+	{
+		bool operator()(const Symbol * lhs, const Symbol * rhs) const;
+	};
+
+	struct PtrELFExportOrdinalCompare : 
+		binary_function<const Symbol *, const Symbol *, bool>
+	{
+		bool operator()(const Symbol * lhs, const Symbol * rhs) const;
+	};
+
+	struct PtrELFExportNameCompareUpdateAttributes : 
+		binary_function<const Symbol *, const Symbol *, bool>
+	{
+		bool operator()(const Symbol * lhs, const Symbol * rhs) const;
+	};
+	
+
+	ElfExports();
+	~ElfExports();
+	
+	bool ValidExportP(ElfExecutable * aExecutable, DllSymbol * aSym);
+	void FilterExports();
+	DllSymbol* Add(char *aDll, ElfExecutable * aExecutable, DllSymbol *aSym);
+	void Add(char *aDll, DllSymbol *aSym);
+	void Sort();
+	void ExportsFilteredP(bool aExportsFilteredP) 
+	{
+		iExportsFilteredP = aExportsFilteredP;
+	}
+	bool ExportsFilteredP() {return iExportsFilteredP;} 
+
+	char* DllName();
+	ExportList& GetExports(bool) ;
+	ExportList& GetExportsInOrdinalOrder();
+	size_t GetNumExports();
+	ExportList iFilteredExports;
+
+private:
+	ExportList	iExportList;
+	char		*iDllName;
+	bool iSorted;
+	bool iExportsFilteredP;
+};
+
+
+
+
+#endif // !defined(_PL_ELFEXPORTS_H_)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/pl_elfimportrelocation.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,76 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation of the Class ElfImportRelocation for the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+#include "pl_elfimportrelocation.h"
+#include "pl_elfexecutable.h"
+
+
+/**
+Constructor for class ElfImportRelocation
+@param aElfExec - Instance of class ElfExecutable
+@param aAddr
+@param aAddend
+@param aIndex
+@param aRelType
+@param aRel
+@internalComponent
+@released
+*/
+ElfImportRelocation::ElfImportRelocation(ElfExecutable *aElfExec,PLMemAddr32 aAddr, \
+			PLUINT32 aAddend, PLUINT32 aIndex, PLUCHAR aRelType, \
+			Elf32_Rel* aRel): \
+			ElfRelocation(aElfExec, aAddr, aAddend, aIndex, aRelType, aRel), \
+			iVerRecord(NULL)
+{
+	iSymbol = &(aElfExec->iElfDynSym[iSymNdx]);
+	iSegment = aElfExec->Segment(iAddr);
+	iSegmentType = aElfExec->SegmentType(iAddr);
+}
+
+
+
+/**
+Destructor for class ElfImportRelocation
+@internalComponent
+@released
+*/
+ElfImportRelocation::~ElfImportRelocation(){
+
+}
+
+
+/**
+Function to know is import relocation
+@internalComponent
+@released
+*/
+bool ElfImportRelocation::IsImportRelocation(){
+	return true;
+}
+
+/**
+Function to add import relocation
+@internalComponent
+@released
+*/
+void ElfImportRelocation::Add() {
+	iElfExec->AddToImports(this);
+}
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/pl_elfimportrelocation.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,47 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation of the Class ElfImportRelocation for the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+#if !defined(_PL_ELFIMPORTRELOCATION_H_)
+#define _PL_ELFIMPORTRELOCATION_H_
+
+#include "pl_elfrelocation.h"
+
+/**
+This class represents relocation entries corresponding to the import symbols.
+@internalComponent
+@released
+*/
+class ElfImportRelocation : public ElfRelocation
+{
+
+public:
+	ElfImportRelocation(ElfExecutable *aElfExec, PLMemAddr32 aAddr, \
+			PLUINT32 aAddend, PLUINT32 aIndex, PLUCHAR aRelType, \
+			Elf32_Rel* aRel);
+	~ElfImportRelocation();
+	bool IsImportRelocation();
+	void Add();
+	
+	VersionInfo *iVerRecord;
+};
+
+
+
+
+#endif // !defined(_PL_ELFIMPORTRELOCATION_H_)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/pl_elfimports.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,123 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation of the Class ElfImports for the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+#include "pl_elfimports.h"
+#include "pl_elfimportrelocation.h"
+
+/**
+Constructor for class ElfImports
+@internalComponent
+@released
+*/
+ElfImports::ElfImports(){
+
+}
+
+/**
+Destructor for class ElfImports to release allocated memory
+@internalComponent
+@released
+*/
+ElfImports::~ElfImports()
+{
+
+	if(iImports.size())
+	{
+		ImportMap::iterator aItr = iImports.begin();
+		ImportMap::iterator last = iImports.end();
+		RelocationList *rlistTemp;
+
+		while( aItr != last)
+		{
+			rlistTemp = &((*aItr).second);
+			RelocationList::iterator aItr1 = rlistTemp->begin();
+			RelocationList::iterator last1 = rlistTemp->end();
+			ElfImportRelocation *temp;
+
+			while( aItr1 != last1)
+			{
+				temp = *aItr1;
+				aItr1++;
+				delete temp;
+			}
+			aItr++;
+			rlistTemp->clear();
+		}
+	}
+
+	iImports.clear();
+}
+
+
+/**
+Function to add imports
+@param aDllName - Dll name
+@param aReloc - Elf import relocation
+@internalComponent
+@released
+*/
+void ElfImports::Add(const char* aDllName, ElfImportRelocation *aReloc){
+	iImports[aDllName].insert(iImports[aDllName].end(), aReloc);
+}
+
+
+/**
+Function to get import size
+@return import size
+@internalComponent
+@released
+*/
+PLUINT32 ElfImports::GetImportSize(){
+
+	PLUINT32	aSize = 0;
+
+	ImportMap::iterator aItr = iImports.begin();
+	RelocationList aList;
+
+	while(aItr != iImports.end()) {
+		aList = ((*aItr).second);
+		aSize += aList.size();
+		aItr++;
+	}
+	return aSize;
+}
+
+
+/**
+Overloaded operator comparing the symbol names.
+@return True if lhs string is less then rhs, otherwise false
+@internalComponent
+@released
+*/
+bool ElfImports::StringPtrLess::operator() (const char * lhs, const char * rhs) const
+{
+	return strcmp(lhs, rhs) < 0;
+}
+
+/**
+Function to get imports
+@return imports
+@internalComponent
+@released
+*/
+ElfImports::ImportMap& ElfImports::GetImports()
+{
+	return iImports;
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/pl_elfimports.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,67 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation of the Class ElfImports for the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+
+#if !defined(_PL_ELFIMPORTS_H_)
+#define _PL_ELFIMPORTS_H_
+
+#include "pl_common.h"
+#include <vector>
+#include <map>
+
+using std::vector;
+using std::map;
+using std::binary_function;
+
+class ElfImportRelocation;
+
+/**
+This class get the list of symbols imported from a list of DSOs.
+@internalComponent
+@released
+*/
+class ElfImports
+{
+
+public:
+	struct StringPtrLess : binary_function<const char *, const char *, bool>
+	{
+		bool operator() (const char * lhs, const char * rhs) const;
+	};
+	
+	typedef std::vector<ElfImportRelocation*>			RelocationList;
+	
+	typedef std::map<const char*, RelocationList, StringPtrLess>	ImportMap;
+
+	ElfImports();
+	~ElfImports();
+
+	void Add(const char* aDll, ElfImportRelocation *aReloc);
+	PLUINT32 GetImportSize();
+	ImportMap& GetImports();
+
+private:
+	ImportMap	iImports;
+
+};
+
+
+
+
+#endif // !defined(_PL_ELFIMPORTS_H_)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/pl_elflocalrelocation.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,158 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation of the Class ElfLocalRelocation for the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+#include "pl_elflocalrelocation.h"
+#include "pl_elfexecutable.h"
+#include "e32imagedefs.h"
+
+/**
+Constructor for class ElfLocalRelocation
+@param aElfExec - Instance of class ElfExecutable
+@param aAddr    - location where the relocation refers to.
+@param aAddend  - addend for the relocation entry
+@param aIndex   - symbol index
+@param aRelType - Relocation type
+@param aRel     - Elf relocation entry
+@internalComponent
+@released
+*/
+ElfLocalRelocation::ElfLocalRelocation(ElfExecutable *aElfExec, PLMemAddr32 aAddr, \
+			PLUINT32 aAddend, PLUINT32 aIndex, PLUCHAR aRelType, \
+			Elf32_Rel* aRel, bool aVeneerSymbol): \
+		ElfRelocation(aElfExec, aAddr, aAddend, aIndex, aRelType, aRel)
+{
+	iSegment = aElfExec->Segment( iAddr );
+	iSegmentType = aElfExec->SegmentType( iAddr );
+	iSymbol = &(aElfExec->iElfDynSym[iSymNdx]);
+	iDelSym = false;
+	iVeneerSymbol = aVeneerSymbol;
+}
+
+/**
+Constructor for class ElfLocalRelocation
+@param aElfExec - Instance of class ElfExecutable
+@param aAddr    - location where the relocation refers to.
+@param aAddend  - addend for the relocation entry
+@param aIndex
+@param aRelType - Relocation type
+@param aRel     - Elf relocation entry
+@param aSegmentType - Segment type
+@param aSym			- Elf symbol
+@param aDelSym		- indicate if the symbol is to be deleted by this relocation.
+@internalComponent
+@released
+*/
+ElfLocalRelocation::ElfLocalRelocation(ElfExecutable *aElfExec, PLMemAddr32 aAddr, \
+			PLUINT32 aAddend, PLUINT32 aIndex, PLUCHAR aRelType, \
+			Elf32_Rel* aRel, ESegmentType aSegmentType, Elf32_Sym* aSym,bool aDelSym, bool aVeneerSymbol): \
+		ElfRelocation(aElfExec, aAddr, aAddend, aIndex, aRelType, aRel)
+{
+	iSegmentType = aSegmentType;
+	iSegment = aElfExec->Segment(aSegmentType);
+	//iSymbol = &(aElfExec->iElfDynSym[iSymNdx]);
+	iSymbol = aSym;
+	iDelSym = aDelSym;
+	iVeneerSymbol = aVeneerSymbol;
+}
+
+
+/**
+Destructor for class ElfLocalRelocation
+@internalComponent
+@released
+*/
+ElfLocalRelocation::~ElfLocalRelocation()
+{
+	if(iDelSym)
+	{
+		DELETE_PTR(iSymbol);
+	}
+
+}
+
+
+/**
+This function overrides the virtual function to indicate that this
+relocation is not an import relocation.
+@return false
+@internalComponent
+@released
+*/
+bool ElfLocalRelocation::IsImportRelocation(){
+	return false;
+}
+
+/**
+Function to add local relocations
+@internalComponent
+@released
+*/
+void ElfLocalRelocation::Add() {
+	iElfExec->AddToLocalRelocations(this);
+}
+
+/**
+This function adjusts the fixup for the relocation entry.
+@return - Relocation type
+@internalComponent
+@released
+*/
+PLUINT16 ElfLocalRelocation::Fixup()
+{
+	if(!ExportTableReloc() && !iVeneerSymbol)
+	{
+		Elf32_Word * aLoc = iElfExec->GetFixupLocation(this, iAddr);
+		Elf32_Word aLocVal = * aLoc;
+
+		if (iRelType == R_ARM_ABS32 || iRelType == R_ARM_GLOB_DAT ) 
+		{
+
+			Elf32_Word aFixedVal = aLocVal + iSymbol->st_value;
+			*aLoc = aFixedVal;
+		}
+	}
+
+	ESegmentType aType;
+	if( iSymbol )
+		aType = iElfExec->Segment(iSymbol);
+	else
+		aType = iSegmentType;
+
+	if (aType == ESegmentRO)
+		return KTextRelocType;
+	else if (aType == ESegmentRW)
+		return KDataRelocType;
+
+	// maybe this should be an error
+	return KInferredRelocType;
+}
+
+/**
+Function for export table relocation
+@return - True
+@internalComponent
+@released
+*/
+bool ElfLocalRelocation::ExportTableReloc()
+{
+	return iRel == 0;
+}
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/pl_elflocalrelocation.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,54 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of the License "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation of the Class ElfLocalRelocation for the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+#if !defined(_PL_ELFLOCALRELOCATION_H)
+#define _PL_ELFLOCALRELOCATION_H
+
+#include "pl_elfrelocation.h"
+
+/**
+This class represents relocations generated by the linker that need to be interpreted into
+the E32 image.
+@internalComponent
+@released
+*/
+class ElfLocalRelocation : public ElfRelocation
+{
+
+public:
+	ElfLocalRelocation(ElfExecutable *aElfExec,PLMemAddr32 aAddr, \
+			PLUINT32 aAddend, PLUINT32 aIndex, PLUCHAR aRelType, \
+			Elf32_Rel* aRel, bool aVeneerSymbol=false);
+	ElfLocalRelocation(ElfExecutable *aElfExec,PLMemAddr32 aAddr, \
+			PLUINT32 aAddend, PLUINT32 aIndex, PLUCHAR aRelType, \
+			Elf32_Rel* aRel, ESegmentType aSegmentType, Elf32_Sym* aSym, bool aDelSym, bool aVeneerSymbol=false);
+	~ElfLocalRelocation();
+	bool IsImportRelocation();
+	void Add();
+
+	bool ExportTableReloc();
+	PLUINT16 Fixup();
+	bool iDelSym;
+	bool iVeneerSymbol;
+};
+
+
+
+
+#endif // !defined(_PL_ELFLOCALRELOCATION_H)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/pl_elfproducer.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,688 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation of the Class ElfProducer for the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+#include "pl_elfproducer.h"
+#include "pl_dllsymbol.h"
+#include <stdio.h>
+#include <string>
+#include "errorhandler.h"
+
+/**
+ * Following array is indexed on the SECTION_INDEX enum 
+ */
+char* SECTION_NAME[] = {
+	"",
+	"ER_RO",
+	".dynamic",
+	".hash",
+	".version_d",
+	".version",
+	".strtab",
+	".dynsym",
+	".shstrtab"
+};
+
+
+/**
+Constructor for class ElfProducer
+@param aParameterListInterface - instance of class ParameterListInterface
+@internalComponent
+@released
+*/
+ElfProducer::ElfProducer(ParameterListInterface *aParameterListInterface): ElfExecutable(aParameterListInterface) , \
+	 iDSONameOffset(0),\
+	 iLinkAsOffset(0),\
+	 iSymbolsList(NULL),
+	 iDSODaux(NULL), \
+	 iDSOBuckets(NULL), \
+     iDSOChains(NULL),\
+	 iCodeSectionData(NULL),\
+	 iElfFileOffset(0)
+{
+}
+
+
+
+/**
+Destructor for class ElfProducer to release allocated memory
+@internalComponent
+@released
+*/
+ElfProducer::~ElfProducer(){
+	Cleanup();
+}
+
+
+/**
+This function sets the export Symbol list
+@internalComponent
+@released
+@param aSymbolList The export Symbol list.
+*/
+void ElfProducer::SetSymbolList(SymbolList& aSymbolList){
+	iSymbolsList = &aSymbolList;
+	if (iSymbolsList)
+	{
+		SymbolList::iterator aPos, aEnd;
+		aPos = iSymbolsList->begin();
+		aEnd = iSymbolsList->end();
+		char *aAbsentSymbol = "_._.absent_export_";
+		int length = strlen(aAbsentSymbol);
+		while(aPos != aEnd)
+		{
+			/* If a symbol is marked as Absent in the DEF file, replace the 
+			 * symbol name with "_._.absent_export_<Ordinal Number>"
+			 */
+			if((*aPos)->Absent())
+			{
+				int aOrdinalNo = (*aPos)->OrdNum();
+				// Ordinal Number can be upto 0xffff which is 6 digits
+				char * aSymName = new char[length+7];
+				sprintf(aSymName, "_._.absent_export_%d", aOrdinalNo);
+				(*aPos)->SetSymbolName(aSymName);
+				delete[] aSymName;
+			}
+			aPos++;
+		}
+	}
+	iNSymbols = iSymbolsList->size() + 1;
+}
+
+/**
+This function takes the file names and generates the proxy dso library.
+@internalComponent
+@released
+@param aDsoFullName The full path and proxy-dso file name
+@param aDsoFileName The proxy-dso file name
+@param aLinkAs The DLL that defines the export Symbols
+*/
+void ElfProducer::WriteElfFile(char* aDsoFullName, char* aDsoFileName , char* aLinkAs){
+
+	//This includes the full path followed by the file name
+	iDsoFullName = aDsoFullName;
+
+	iDSOName = aDsoFileName;
+	iLinkAs = aLinkAs;
+
+	InitElfContents();
+
+	WriteElfContents();
+}
+
+/**
+This function initializes the Elf members
+@internalComponent
+@released
+*/
+void ElfProducer::InitElfContents() {
+
+	iElfHeader		= new Elf32_Ehdr;
+	iSections		= new Elf32_Shdr[MAX_SECTIONS+1];
+
+	iElfDynSym		= new Elf32_Sym[iNSymbols];
+	iVersionTbl		= new Elf32_Half[iNSymbols];
+	iVersionDef		= new Elf32_Verdef[2];
+	iDSODaux		= new Elf32_Verdaux[2];
+
+	iProgHeader		 = new Elf32_Phdr[2];
+	iCodeSectionData = new PLUINT32[iNSymbols];	
+
+	iHashTbl = new Elf32_HashTable;
+	
+	//premeditated
+	iHashTbl->nBuckets = (iNSymbols /3) + (iNSymbols % 0x3);
+	
+	iHashTbl->nChains = iNSymbols;
+
+	iDSOBuckets = new Elf32_Sword[iHashTbl->nBuckets];
+	iDSOChains = new Elf32_Sword[iHashTbl->nChains];
+
+	Elf32_Sword	aNullPtr = 0;
+
+	memset(iDSOBuckets, aNullPtr, sizeof(Elf32_Sword)*iHashTbl->nBuckets);
+	memset(iDSOChains,  aNullPtr, sizeof(Elf32_Sword)*iHashTbl->nChains);
+	memset(iCodeSectionData,  0, sizeof(PLUINT32)*iNSymbols);
+
+	CreateElfHeader();
+
+	SymbolList::iterator aItr = iSymbolsList->begin();
+	SymbolList::iterator aEnd = iSymbolsList->end();
+	Symbol		*aSym;
+	PLUINT32	aIdx = 1;
+
+	memset( &iElfDynSym[0], 0, sizeof(Elf32_Sym));
+	iDSOSymNameStrTbl.insert(iDSOSymNameStrTbl.end(), 0);
+
+	while(aItr != aEnd) {
+		String		aSymName("");
+		aSym = *aItr;
+		aSymName = aSym->SymbolName();
+		//set symbol info..
+		iElfDynSym[aIdx].st_name = iDSOSymNameStrTbl.size();
+
+		iDSOSymNameStrTbl.insert(iDSOSymNameStrTbl.end(), aSymName.begin(), aSymName.end() );
+		iDSOSymNameStrTbl.insert(iDSOSymNameStrTbl.end(), 0);
+
+		SetSymolFields( aSym, &iElfDynSym[aIdx], aIdx);
+
+		//set version table info...
+		iVersionTbl[aIdx] = DEFAULT_VERSION;
+		AddToHashTable(aSym->SymbolName(), aIdx);
+		aItr++;aIdx++;
+	}
+
+	CreateVersionTable();
+	
+	//Fill section headers...
+	CreateSections();
+
+	//Copy dyn entries..
+	CreateDynamicEntries();
+
+	//create code section data - this has the ordinal numbers...
+	CreateProgHeader();
+}
+
+/**
+This function creates the version definition table
+@internalComponent
+@released
+*/
+void ElfProducer::CreateVersionTable()
+{
+	//Fill verdef table...
+	iVersionDef[0].vd_ndx = 1;
+	iVersionDef[0].vd_cnt = 1;
+	iVersionDef[0].vd_flags = 1;
+	iVersionDef[0].vd_hash = Util::elf_hash((const PLUCHAR*) iDSOName.c_str());
+	iVersionDef[0].vd_version = 1;
+
+	iVersionDef[0].vd_aux = sizeof(Elf32_Verdef);
+	iVersionDef[0].vd_next = sizeof(Elf32_Verdef) + sizeof(Elf32_Verdaux);
+
+	iDSONameOffset = iDSOSymNameStrTbl.size();
+
+	iDSOSymNameStrTbl.insert(iDSOSymNameStrTbl.end(),iDSOName.begin(), iDSOName.end());
+	iDSOSymNameStrTbl.insert(iDSOSymNameStrTbl.end(), 0);
+	
+	iDSODaux[0].vda_name = iDSONameOffset;
+	iDSODaux[0].vda_next = 0;
+
+	iVersionDef[1].vd_ndx = DEFAULT_VERSION;
+	iVersionDef[1].vd_cnt = 1;
+	iVersionDef[1].vd_flags = 0;
+	iVersionDef[1].vd_hash = Util::elf_hash((const PLUCHAR*)iLinkAs.c_str());
+	iVersionDef[1].vd_version = 1;
+
+	iVersionDef[1].vd_aux = sizeof(Elf32_Verdef);
+	iVersionDef[1].vd_next = 0;
+
+	iLinkAsOffset = iDSOSymNameStrTbl.size();
+	iDSOSymNameStrTbl.insert(iDSOSymNameStrTbl.end(),iLinkAs.begin(), iLinkAs.end());
+	iDSOSymNameStrTbl.insert(iDSOSymNameStrTbl.end(), 0);
+	
+	iDSODaux[1].vda_name = iLinkAsOffset;
+	iDSODaux[1].vda_next = 0;
+
+}
+
+/**
+This function sets the Elf Symbol fields
+@internalComponent
+@released
+@param aSym The Symbol representation
+@param aElfSym The Elf Symbol
+@param aCodeIndex The index at which this Symbol refers to in the code section where, we have the ordinal number
+*/
+void ElfProducer::SetSymolFields(Symbol *aSym, Elf32_Sym* aElfSym, PLUINT32 aCodeIndex) {
+	
+	aElfSym->st_other = STV_DEFAULT;
+	
+	aElfSym->st_info = (PLUCHAR) (ELF32_ST_INFO(STB_GLOBAL, aSym->CodeDataType()));
+	aElfSym->st_value	= (aCodeIndex - 1)*sizeof(Elf32_Word);
+	
+	if(aSym->CodeDataType() == SymbolTypeCode){
+		aElfSym->st_size	= sizeof(Elf32_Word);
+	}else{
+		aElfSym->st_size	= aSym->SymbolSize();
+	}
+	aElfSym->st_shndx = CODE_SECTION;
+}
+
+/**
+This function adds an entry into the hash table based on the symbol name.
+@internalComponent
+@released
+@param aSymName The Symbol name
+@param aIndex The Symbol index in the Symbol table
+*/
+void ElfProducer::AddToHashTable(const char* aSymName, PLUINT32 aIndex) 
+{
+	Elf32_Sword	aNullPtr = 0;
+
+	PLULONG	aHash = Util::elf_hash((PLUCHAR*)aSymName);
+	PLUINT32  aBIdx = aHash % iHashTbl->nBuckets;
+
+	if(iDSOBuckets[aBIdx] == aNullPtr)
+	{
+		iDSOBuckets[aBIdx] = aIndex;
+	}		
+	else
+	{
+		PLUINT32 aCIdx = iDSOBuckets[aBIdx];
+		
+		while(iDSOChains[aCIdx] != aNullPtr){
+
+			/* If the entry is already added into the hash table*/
+			if((PLUINT32)iDSOChains[aCIdx] == aIndex) {
+				return;
+			}
+			aCIdx = iDSOChains[aCIdx];
+		}
+		iDSOChains[aCIdx] = aIndex;
+	}
+}
+
+/**
+This function creates the different sections of the Elf file
+@internalComponent
+@released
+*/
+void ElfProducer::CreateSections() {
+	PLUINT32	aIdx = 0;
+
+	//clear the first section...
+	memset(&iSections[0], 0, sizeof(Elf32_Shdr));
+	iDSOSectionNames.insert(iDSOSectionNames.begin(), 0);
+
+	// Set the ELF file offset.
+	// This indicates the start of sections.
+	iElfFileOffset = sizeof(Elf32_Ehdr);
+
+	iElfFileOffset += (sizeof(Elf32_Shdr) * iElfHeader->e_shnum);
+
+	//Check if the string table is 4-byte aligned..
+	AlignString(iDSOSymNameStrTbl);
+
+	for(aIdx = 1; aIdx <= MAX_SECTIONS; aIdx++) {
+		switch(aIdx)
+		{
+			case SYMBOL_SECTION:
+				SetSectionFields(aIdx, SECTION_NAME[aIdx], SHT_DYNSYM, \
+								   sizeof(Elf32_Sym), (iNSymbols * sizeof(Elf32_Sym)),\
+								   STRING_SECTION, CODE_SECTION, 4, 0, 0);
+				break;
+			case STRING_SECTION:
+				SetSectionFields(aIdx, SECTION_NAME[aIdx], SHT_STRTAB, \
+								   1, iDSOSymNameStrTbl.size(), 0, \
+								   0, 0, 0,0);
+				break;
+			case VERSION_SECTION:
+				SetSectionFields(aIdx, SECTION_NAME[aIdx], 0x6fffffff, \
+								   sizeof(Elf32_Half), (iNSymbols * sizeof(Elf32_Half)), SYMBOL_SECTION, \
+								   0, 2, 0, 0);
+				break;
+			case VER_DEF_SECTION:
+				SetSectionFields(aIdx, SECTION_NAME[aIdx],0x6ffffffd, \
+								   sizeof(Elf32_Verdaux), (2*(sizeof(Elf32_Verdef) + sizeof(Elf32_Verdaux))),\
+								   STRING_SECTION, DYNAMIC_SECTION, 4, 0, 0);
+				break;
+			case HASH_TBL_SECTION:
+				{
+					PLUINT32 aSize = sizeof(Elf32_HashTable) + \
+							(sizeof(Elf32_Sword) * (iHashTbl->nBuckets + iHashTbl->nChains));
+
+				SetSectionFields(aIdx, SECTION_NAME[aIdx], SHT_HASH, \
+								   0, aSize, SYMBOL_SECTION, 0, 4, 0, 0);
+				}
+				break;
+			case DYNAMIC_SECTION:
+				SetSectionFields(aIdx, SECTION_NAME[aIdx], SHT_DYNAMIC, \
+								   sizeof(Elf32_Dyn), ((MAX_DYN_ENTS + 1) *sizeof(Elf32_Dyn)),\
+								   STRING_SECTION, 0, 4, 0,0);
+				break;
+			case CODE_SECTION:
+				SetSectionFields(aIdx, SECTION_NAME[aIdx], SHT_PROGBITS, \
+								   0, (iNSymbols *sizeof(PLUINT32)),\
+								   0, 0, 4, (SHF_ALLOC | SHF_EXECINSTR),0);
+				break;
+			case SH_STR_SECTION:
+				{
+				PLUINT32 aSize = iDSOSectionNames.size() + strlen(SECTION_NAME[aIdx]);
+				SetSectionFields(aIdx, SECTION_NAME[aIdx], SHT_STRTAB, \
+								   1, aSize, 0, \
+								   0, 0, 0, 0);
+				//Check if the string table is 4-byte aligned..
+				AlignString(iDSOSectionNames);
+				iSections[aIdx].sh_size = iDSOSectionNames.size();
+
+				}
+				break;
+			default:
+				break;
+		}
+		iSections[aIdx].sh_offset = iElfFileOffset;
+		iElfFileOffset += iSections[aIdx].sh_size;
+
+		if(iElfFileOffset %4) {
+			iElfFileOffset += (4 - (iElfFileOffset %4));
+		}
+	}
+}
+
+/**
+This function sets the section header fields.
+@internalComponent
+@released
+@return Error status
+@param aSectionIndex The index of the section
+@param aSectionName The name of the section
+@param aType The type of the section
+@param aEntSz The size of each entry of the section
+@param aSectionSize The size of the section
+@param aLink The section this section is linked to
+@param aInfo Extra information. Depends on the section type of this section.
+@param aAddrAlign The address alignment of this section.
+@param aFlags Section flags
+@param aAddr The address of this section in memory(Here it remains 0)
+*/
+void ElfProducer::SetSectionFields(PLUINT32 aSectionIndex, char* aSectionName, PLUINT32 aType, \
+								   PLUINT32 aEntSz, PLUINT32 aSectionSize, PLUINT32 aLink, \
+								   PLUINT32 aInfo, PLUINT32 aAddrAlign, PLUINT32 aFlags, \
+								   PLUINT32 aAddr)
+{
+	String aSecName = aSectionName;
+
+	iSections[aSectionIndex].sh_name			= iDSOSectionNames.size();
+	iDSOSectionNames.insert(iDSOSectionNames.end(), aSecName.begin(), aSecName.end());
+	iDSOSectionNames.insert(iDSOSectionNames.end(), 0);
+	
+	iSections[aSectionIndex].sh_type			= aType;
+	iSections[aSectionIndex].sh_entsize		= aEntSz;
+	iSections[aSectionIndex].sh_size			= aSectionSize;
+	iSections[aSectionIndex].sh_link			= aLink;
+	iSections[aSectionIndex].sh_flags		= aFlags;
+	iSections[aSectionIndex].sh_addralign	= aAddrAlign;
+	iSections[aSectionIndex].sh_info			= aInfo;
+	iSections[aSectionIndex].sh_addr			= aAddr;
+}
+
+/**
+This function cleans up the memory allocated to the Elf fields.
+@internalComponent
+@released
+*/
+void ElfProducer::Cleanup()
+{
+	DELETE_PTR(iElfHeader);
+	DELETE_PTR_ARRAY(iSections);
+	DELETE_PTR_ARRAY(iElfDynSym);
+	DELETE_PTR_ARRAY(iVersionTbl);
+	DELETE_PTR_ARRAY(iVersionDef);
+	DELETE_PTR_ARRAY(iDSODaux);
+
+	DELETE_PTR_ARRAY(iProgHeader);
+	DELETE_PTR_ARRAY(iCodeSectionData);
+	DELETE_PTR_ARRAY(iHashTbl);
+	DELETE_PTR_ARRAY(iDSOBuckets);
+	DELETE_PTR_ARRAY(iDSOChains);
+}
+
+/**
+This function creates the dynamic sections.
+@internalComponent
+@released
+*/
+void ElfProducer::CreateDynamicEntries()
+{
+	for(PLUINT32 aIdx = 0; aIdx <= MAX_DYN_ENTS; aIdx++ ) {
+		switch(aIdx) {
+			case DSO_DT_DSONAME:
+				iDSODynTbl[aIdx].d_tag = DT_SONAME;
+				iDSODynTbl[aIdx].d_val = iDSONameOffset;
+				break;
+			case DSO_DT_SYMTAB:
+				iDSODynTbl[aIdx].d_tag = DT_SYMTAB;
+				iDSODynTbl[aIdx].d_val = iSections[SYMBOL_SECTION].sh_offset;
+				break;
+			case DSO_DT_SYMENT:
+				iDSODynTbl[aIdx].d_tag = DT_SYMENT;
+				iDSODynTbl[aIdx].d_val = iSections[SYMBOL_SECTION].sh_entsize;
+				break;
+			case DSO_DT_STRTAB:
+				iDSODynTbl[aIdx].d_tag = DT_STRTAB;
+				iDSODynTbl[aIdx].d_val = iSections[STRING_SECTION].sh_offset;
+				break;
+			case DSO_DT_STRSZ:
+				iDSODynTbl[aIdx].d_tag = DT_STRSZ;
+				iDSODynTbl[aIdx].d_val = iDSOSymNameStrTbl.size();
+				break;
+			case DSO_DT_VERSYM:
+				iDSODynTbl[aIdx].d_tag = DT_VERSYM;
+				iDSODynTbl[aIdx].d_val = iSections[VERSION_SECTION].sh_offset;
+				break;
+			case DSO_DT_VERDEF:
+				iDSODynTbl[aIdx].d_tag = DT_VERDEF;
+				iDSODynTbl[aIdx].d_val = iSections[VER_DEF_SECTION].sh_offset;
+				break;
+			case DSO_DT_VERDEFNUM:
+				iDSODynTbl[aIdx].d_tag = DT_VERDEFNUM;
+				iDSODynTbl[aIdx].d_val = 2;
+				break;
+			case DSO_DT_HASH:
+				iDSODynTbl[aIdx].d_tag = DT_HASH;
+				iDSODynTbl[aIdx].d_val = iSections[HASH_TBL_SECTION].sh_offset;
+				break;
+			case DSO_DT_NULL:
+				iDSODynTbl[aIdx].d_tag = DT_NULL;
+				iDSODynTbl[aIdx].d_val = 0;
+				break;
+			default:
+				break;
+		}
+	}
+}
+
+/**
+This function creates the Elf header.
+@internalComponent
+@released
+*/
+void ElfProducer::CreateElfHeader()
+{
+	//create ELF header
+	unsigned char c[EI_NIDENT] = {0x7f, 'E', 'L', 'F', \
+				ELFCLASS32, ELFDATA2LSB, 1, 0, \
+				0, 0, 0, 0, \
+				0, 0, 0, 0};       // e_ident
+
+	for (PLUINT32 i=0; i <EI_NIDENT;i++)
+		iElfHeader->e_ident[i] = c[i];
+
+	iElfHeader->e_type		= ET_DYN;
+	iElfHeader->e_machine	= EM_ARM;
+	iElfHeader->e_version	= EV_CURRENT;
+	iElfHeader->e_entry		= 0;
+	iElfHeader->e_shoff		= sizeof(Elf32_Ehdr);
+	iElfHeader->e_flags		= EF_ARM_BPABI_VERSION | EF_ARM_SYMSARESORTED;
+	iElfHeader->e_ehsize	= sizeof(Elf32_Ehdr);
+	iElfHeader->e_phentsize = sizeof(Elf32_Phdr);
+	iElfHeader->e_shentsize = sizeof(Elf32_Shdr);
+	iElfHeader->e_shnum		= MAX_SECTIONS + 1;
+	iElfHeader->e_shstrndx	= SH_STR_SECTION;
+	iElfHeader->e_phnum		= 2;
+}
+
+/**
+This function creates the program header
+@internalComponent
+@released
+*/
+void ElfProducer::CreateProgHeader()
+{
+	//Update the program header offset..
+	iElfHeader->e_phoff		= iElfFileOffset;
+
+	// Update code section data..
+	SymbolList::iterator aItr = iSymbolsList->begin();
+	SymbolList::iterator end  = iSymbolsList->end();
+
+	Symbol *aSym;
+	PLUINT32	aPos = 0;
+	while(aItr != end) {
+		aSym = *aItr;
+
+		iCodeSectionData[aPos] = aSym->OrdNum();
+		aItr++;aPos++;
+	}
+
+	//Create program header
+	iProgHeader[0].p_align	= 4;
+	iProgHeader[0].p_offset = iSections[CODE_SECTION].sh_offset;
+	iProgHeader[0].p_type	= PT_LOAD;
+	iProgHeader[0].p_flags	= (PF_X | PF_ARM_ENTRY);
+	iProgHeader[0].p_filesz = iSections[CODE_SECTION].sh_size;
+	iProgHeader[0].p_paddr	= 0;
+	iProgHeader[0].p_vaddr	= 0;
+	iProgHeader[0].p_memsz  = iSections[CODE_SECTION].sh_size;
+
+	iProgHeader[1].p_align	= 4;
+	iProgHeader[1].p_offset = iSections[DYNAMIC_SECTION].sh_offset;
+	iProgHeader[1].p_type	= PT_DYNAMIC;
+	iProgHeader[1].p_flags	= (PF_R );
+	iProgHeader[1].p_filesz = iSections[DYNAMIC_SECTION].sh_size;
+	iProgHeader[1].p_paddr	= 0;
+	iProgHeader[1].p_vaddr	= 0;
+	iProgHeader[1].p_memsz  = 0;
+
+}
+
+/**
+This function aligns the string table to a 4-byte boundary
+@internalComponent
+@released
+@return Error status
+@param aStr - string to be aligned
+*/
+void ElfProducer::AlignString(String& aStr) {
+
+	if( aStr.size() %4 ){
+		PLUCHAR	aPad = (PLUCHAR)(4 - (aStr.size() %4));
+
+		while(aPad--) {
+			aStr.insert(aStr.end(), 0);
+		}
+	}
+}
+
+/**
+This function writes the Elf file contents.
+@internalComponent
+@released
+*/
+void ElfProducer::WriteElfContents()
+{
+	FILE		*aElfFd;
+	PLUINT32	aIndex;
+	
+	if((aElfFd = fopen(iDsoFullName.c_str(), "wb")) == NULL ) {
+		throw FileError(FILEOPENERROR, (char*)iDsoFullName.c_str());
+	}
+
+	// The ELF header..
+	fwrite(iElfHeader, 1, sizeof(Elf32_Ehdr), aElfFd);
+	
+	//Section headers
+	for(aIndex = 0; aIndex <= MAX_SECTIONS; aIndex++) {
+		fwrite(&iSections[aIndex], 1, sizeof(Elf32_Shdr), aElfFd);
+	}
+
+
+	//Each section..
+
+		//code
+		for(aIndex = 0; aIndex < iNSymbols; aIndex++) {
+			fwrite(&iCodeSectionData[aIndex], 1, sizeof(PLUINT32), aElfFd );
+		}
+		
+		//dyn table
+		for(aIndex = 0; aIndex <= MAX_DYN_ENTS; aIndex++) {
+			fwrite(&iDSODynTbl[aIndex], 1, sizeof(Elf32_Dyn), aElfFd);
+		}
+
+		//hash table
+		fwrite(&iHashTbl->nBuckets, 1, sizeof(Elf32_Word), aElfFd);
+		fwrite(&iHashTbl->nChains, 1, sizeof(Elf32_Word), aElfFd);
+
+		for(aIndex=0; aIndex < iHashTbl->nBuckets; aIndex++) {
+			fwrite(&iDSOBuckets[aIndex], 1, sizeof(Elf32_Sword), aElfFd);
+
+		}
+		for(aIndex=0; aIndex < iHashTbl->nChains; aIndex++) {
+			fwrite(&iDSOChains[aIndex], 1, sizeof(Elf32_Sword), aElfFd);
+			
+		}
+
+		//version def table
+		for(aIndex = 0; aIndex < 2; aIndex++) {
+			fwrite(&iVersionDef[aIndex], 1, sizeof(Elf32_Verdef), aElfFd);
+			fwrite(&iDSODaux[aIndex], 1, sizeof(Elf32_Verdaux), aElfFd);
+		}
+
+		//version table
+		for(aIndex = 0; aIndex < iNSymbols; aIndex++) {
+			fwrite(&iVersionTbl[aIndex], 1, sizeof(Elf32_Half), aElfFd );
+		}
+
+		if( iSections[VERSION_SECTION].sh_size %4 ) {
+			PLUINT32 aNPads = 4 - (iSections[VERSION_SECTION].sh_size %4);
+			PLUCHAR aPad = '\0';
+			while(aNPads--) {
+				fwrite(&aPad, 1, 1, aElfFd);
+			}
+		}
+
+		//string table
+		PLUINT32 aSz = iDSOSymNameStrTbl.size();
+		char *aData = new char[aSz];
+		memcpy(aData, iDSOSymNameStrTbl.data(), aSz);
+		fwrite(aData, 1, aSz, aElfFd);
+
+		DELETE_PTR_ARRAY(aData);
+
+		//Sym table
+		for(aIndex = 0; aIndex < iNSymbols; aIndex ++) {
+			fwrite(&iElfDynSym[aIndex], 1, sizeof(Elf32_Sym), aElfFd);
+		}
+
+		//section header name table
+		aSz = iDSOSectionNames.size();
+		char *aData1 = new char[ aSz];
+		memcpy(aData1, iDSOSectionNames.data(), aSz);
+		fwrite(aData1, 1, aSz, aElfFd);
+		DELETE_PTR_ARRAY(aData1);
+
+	//program header
+	for(aIndex = 0; aIndex < 2; aIndex++) {
+		fwrite(&iProgHeader[aIndex], 1, sizeof(Elf32_Phdr), aElfFd );
+	}
+
+	fclose(aElfFd);
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/pl_elfproducer.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,150 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation of the Class ElfProducer for the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+#if !defined(_PL_ELFPRODUCER_H_)
+#define _PL_ELFPRODUCER_H_
+
+#include "pl_elfexecutable.h"
+#include <string>
+
+//enum for section index
+typedef enum _SECTION_INDEX_ {
+	DUMMY_SECTION=0,
+	CODE_SECTION,
+	DYNAMIC_SECTION,
+	HASH_TBL_SECTION,
+	VER_DEF_SECTION,
+	VERSION_SECTION,
+	STRING_SECTION,
+	SYMBOL_SECTION,
+	SH_STR_SECTION,
+	MAX_SECTIONS=SH_STR_SECTION
+}SECTION_INDEX;
+
+//enum for DYN entries
+typedef enum _DYN_ENTRIES_ {
+	DSO_DT_DSONAME=0,
+	DSO_DT_SYMTAB,
+	DSO_DT_SYMENT,
+	DSO_DT_STRTAB,
+	DSO_DT_STRSZ,
+	DSO_DT_VERSYM,
+	DSO_DT_VERDEF,
+	DSO_DT_VERDEFNUM,
+	DSO_DT_HASH,
+	DSO_DT_NULL,
+	MAX_DYN_ENTS=DSO_DT_NULL,
+}DYN_ENTRIES;
+
+#define DEFAULT_VERSION	2
+/**
+This class provides elf contents for the dso file creation. It generates the
+elf header, sections, dynamic array and the relocatrion entries.
+@internalComponent
+@released
+*/
+class ElfProducer : public ElfExecutable
+{
+
+	typedef std::list<Symbol*> SymbolList;
+public:
+	ElfProducer(ParameterListInterface *aParameterListInterface);
+	~ElfProducer();
+	
+	void SetSymbolList(SymbolList& aSymbolList);
+	void WriteElfFile(char* aDsoFullName,char* aDsoFileName, char* aLinkAs);
+
+private:
+	/**
+	 * This list is passed from the UseCaseHandler via the DSOHandler to this class.
+	 * This is used to create the export info when only a def file is available and
+	 * the DSO needs to be generated for that.
+	 */
+	typedef std::string	String;
+	/** The proxy DSO file name*/
+	String			iDSOName;
+
+	/** The offset of the file name within the string table of the ELF file*/
+	PLUINT32		iDSONameOffset;
+
+	/** The DLL name that defines the export Symbols*/
+	String			iLinkAs;
+
+	/** The offset of the DLL name within the string table within the ELF file*/
+	PLUINT32		iLinkAsOffset;
+
+	/** The export Symbol list*/
+	SymbolList		*iSymbolsList;
+
+	/** The number of export Symbols*/
+	PLUINT32		iNSymbols;
+
+	/** The proxy DSO full file name*/
+	String			iDsoFullName;
+
+	/*DSO content Fields*/
+
+	/** The Elf version definition auxiliary section*/
+	Elf32_Verdaux	*iDSODaux;
+
+	/** The Buckets for the hash table*/
+	Elf32_Sword		*iDSOBuckets;
+
+	/** The chains pointed to by the buckets belonging to the hash table*/
+	Elf32_Sword		*iDSOChains;
+
+	/** The Elf Dynamic section table*/
+	Elf32_Dyn		iDSODynTbl[MAX_DYN_ENTS+1];
+
+	/** The code section*/
+	PLUINT32		*iCodeSectionData;
+
+	/** The Elf file offset maintained for writing the different sections of the Elf file*/
+	PLUINT32		iElfFileOffset;
+
+	/** The Elf String table*/
+	String			iDSOSymNameStrTbl;
+
+	/** The Elf Section-header String table*/
+	String			iDSOSectionNames;
+
+
+	void InitElfContents();
+	void Cleanup();
+	void SetSymolFields(Symbol *aSym, Elf32_Sym* aElfSym, PLUINT32 aIndex);
+	void AddToHashTable(const char* aSymName, PLUINT32 aIndex);
+	void CreateVersionTable();
+	void CreateElfHeader();
+	void CreateSections();
+	void SetSectionFields(PLUINT32 aSectionIndex, char* aSectionName, PLUINT32 aType, \
+								   PLUINT32 aEntSz, PLUINT32 aSectionSize, PLUINT32 aLink, \
+								   PLUINT32 aInfo, PLUINT32 aAddrAlign, PLUINT32 aFlags, \
+								   PLUINT32 aAddr);
+	void CreateDynamicEntries();
+	void CreateProgHeader();
+
+	void WriteElfContents();
+	void AlignString(String& aStr);
+
+};
+
+
+
+
+#endif // !defined(_PL_ELFPRODUCER_H_)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/pl_elfrelocation.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,106 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation of the Class ElfRelocation for the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+#include "pl_elfrelocation.h"
+#include "pl_elfimportrelocation.h"
+#include "pl_elflocalrelocation.h"
+#include "pl_dllsymbol.h"
+
+/**
+Constructor for class ElfRelocation
+@param aElfExec - Instance of class ELfExecutable
+@param aAddr
+@param aAddend
+@param aIndex
+@param aRelType - Relocation type
+@param aRel
+@internalComponent
+@released
+*/
+ElfRelocation::ElfRelocation(ElfExecutable *aElfExec, PLMemAddr32 aAddr, \
+			PLUINT32 aAddend, PLUINT32 aIndex, PLUCHAR aRelType, \
+			Elf32_Rel* aRel) : iAddr(aAddr), iAddend(aAddend), \
+			iSymNdx(aIndex), iRelType(aRelType), iRel(aRel),  iElfExec(aElfExec)
+{
+}
+
+
+
+/**
+Destructor for class ElfRelocation
+@internalComponent
+@released
+*/
+ElfRelocation::~ElfRelocation(){
+
+}
+
+
+/**
+Function to create new relocation entry
+@param aElfExec - Instance of class ElfExecutable
+@param aAddr    - location where the relocation refers to.
+@param aAddend  - addend for the relocation entry
+@param aIndex   - symbol index
+@param aRelType - Relocation type
+@param aRel     - Elf relocation entry
+@param aImportRel - Import relocation
+@internalComponent
+@released
+*/
+ElfRelocation* ElfRelocation::NewRelocEntry(ElfExecutable *aElfExec, PLMemAddr32 aAddr, \
+				PLUINT32 aAddend, PLUINT32 aIndex, PLUCHAR aRelType, \
+				void* aRel, bool aImportRel)
+{
+	ElfRelocation	*aReloc = NULL;
+	if(aImportRel)
+		aReloc = new ElfImportRelocation(aElfExec, aAddr, aAddend, aIndex, aRelType, (Elf32_Rel*)aRel);
+	else
+		aReloc = new ElfLocalRelocation(aElfExec, aAddr, aAddend, aIndex, aRelType, (Elf32_Rel*)aRel);
+
+	return aReloc;
+}
+
+
+/**
+This function verifies if the relocation entry is required to be
+handled by the postlinker.
+@param aType - type of relocation
+@return - True if valid relocation type, otherwise false
+@internalComponent
+@released
+*/
+bool ElfRelocation::ValidRelocEntry(PLUCHAR aType) {
+	
+	switch(aType)
+	{
+	case R_ARM_ABS32:
+	case R_ARM_GLOB_DAT:
+	case R_ARM_JUMP_SLOT:
+	case R_ARM_RELATIVE:
+	case R_ARM_GOT_BREL:
+		return true;
+	case R_ARM_NONE:
+		return false;
+	default:
+		return false;
+	}
+}
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/pl_elfrelocation.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,63 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation of the Class ElfRelocation for the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+#if !defined(_PL_ELFRELOCATION_H_)
+#define _PL_ELFRELOCATION_H_
+
+#include "pl_common.h"
+
+class DllSymbol;
+class ElfExecutable;
+
+/**
+This class is for Elf relocation.
+
+@internalComponent
+@released
+*/
+class ElfRelocation
+{
+
+public:
+	ElfRelocation(ElfExecutable *aElfExec, PLMemAddr32 aAddr, PLUINT32 aAddend, PLUINT32 aIndex, PLUCHAR aRelType, Elf32_Rel* aRel);
+	virtual ~ElfRelocation();
+
+	static bool ValidRelocEntry(PLUCHAR aType);
+	static ElfRelocation* NewRelocEntry( ElfExecutable *aElfExec, PLMemAddr32 aAddr, \
+		PLUINT32 aAddend, PLUINT32 aIndex, PLUCHAR aRelType,\
+		void* aRel, bool aImportRel);
+
+	virtual bool IsImportRelocation() =0;
+	virtual void Add() = 0;
+
+	PLMemAddr32 iAddr;
+	PLUINT32	iAddend;
+	PLUINT32	iSymNdx;
+	PLUCHAR		iRelType;
+	Elf32_Rel	*iRel;
+	Elf32_Sym	*iSymbol;
+	ElfExecutable *iElfExec;
+	Elf32_Phdr	*iSegment;
+	ESegmentType iSegmentType;
+};
+
+
+
+
+#endif // !defined(_PL_ELFRELOCATION_H_)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/pl_elfrelocations.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,142 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation of the Class ElfRelocations for the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+#include "pl_elfrelocations.h"
+#include "pl_elflocalrelocation.h"
+
+/**
+Constructor for class ElfRelocations
+@internalComponent
+@released
+*/
+ElfRelocations::ElfRelocations() : \
+	iCodeSortedP(false), iDataSortedP(false)
+{
+}
+
+/**
+Destructor for class ElfRelocations to release allocated memory
+@internalComponent
+@released
+*/
+ElfRelocations::~ElfRelocations()
+{
+	if(iCodeRelocations.size())
+	{
+		RelocationList::iterator aItr = iCodeRelocations.begin();
+		RelocationList::iterator last = iCodeRelocations.end();
+		ElfLocalRelocation *temp;
+
+		while( aItr != last)
+		{
+			temp = *aItr;
+			aItr++;
+			delete temp;
+		}
+		iCodeRelocations.clear();
+	}
+	if(iDataRelocations.size())
+	{
+		RelocationList::iterator aItr = iDataRelocations.begin();
+		RelocationList::iterator last = iDataRelocations.end();
+		ElfLocalRelocation *temp;
+
+		while( aItr != last)
+		{
+			temp = *aItr;
+			aItr++;
+			delete temp;
+		}
+		iDataRelocations.clear();
+	}
+}
+
+
+/**
+Function for adding Elf local Relocations.
+@internalComponent
+@released
+@return 0 if therelocation is valid.
+*/
+PLUINT32 ElfRelocations::Add(ElfLocalRelocation* aReloc){
+	if(!aReloc) return 1;
+	
+	switch (aReloc->iSegmentType)
+	{
+	case ESegmentRO:
+		iCodeSortedP = false;
+		iCodeRelocations.push_back(aReloc);
+		break;
+	case ESegmentRW:
+		iDataSortedP = false;
+		iDataRelocations.push_back(aReloc);
+		break;
+	default:
+		;
+	}
+
+	return 0;
+}
+
+/**
+Function for getting code relocations. The reloc entries are
+sorted on the address they refer to.
+@internalComponent
+@released
+@return list of code relocation
+*/
+ElfRelocations::RelocationList & ElfRelocations::GetCodeRelocations()
+{
+	if (!iCodeSortedP) 
+	{
+		iCodeRelocations.sort(Cmp());
+		iCodeSortedP = true;
+	}
+  return iCodeRelocations;
+}
+
+/**
+Function for getting data relocations. The reloc entries are
+sorted on the address they refer to.
+@internalComponent
+@released
+@return list of code relocation
+*/
+ElfRelocations::RelocationList & ElfRelocations::GetDataRelocations()
+{
+	if (!iDataSortedP) 
+	{
+		iDataRelocations.sort(Cmp());
+		iDataSortedP = true;
+	}
+  return iDataRelocations;
+}
+
+/**
+Overloaded operator for comparing location the relocations refer to.
+@internalComponent
+@released
+@return comparison of both relocation
+*/
+bool ElfRelocations::Cmp::operator()(ElfRelocation * x, ElfRelocation * y)
+{
+	return x->iAddr < y->iAddr;
+}
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/pl_elfrelocations.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,60 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation of the Class ElfRelocations for the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+#if !defined(_PL_ELFRELOCATIONS_H)
+#define _PL_ELFRELOCATIONS_H
+
+#include "pl_common.h"
+#include <list>
+
+class ElfRelocation;
+class ElfLocalRelocation;
+
+/**
+This class is for Elf relocations.
+
+@internalComponent
+@released
+*/
+class ElfRelocations
+{
+public:
+	typedef std::list<ElfLocalRelocation*> RelocationList;
+	
+	ElfRelocations();
+	~ElfRelocations();
+	PLUINT32 Add(ElfLocalRelocation* aReloc);
+
+	RelocationList & GetCodeRelocations();
+	RelocationList & GetDataRelocations();
+	struct Cmp {
+		bool operator()(ElfRelocation * x, ElfRelocation * y);
+	};
+private:
+	bool iCodeSortedP;
+	RelocationList iCodeRelocations;
+	bool iDataSortedP;
+	RelocationList iDataRelocations;
+
+};
+
+
+
+
+#endif // !defined(_PL_ELFRELOCATIONS_H)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/pl_sym_type.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,35 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation of the enumeration SymbolType for the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+#if !defined(EA_37C067EA_9B6B_4d95_84A3_ABBE88E7AD8F__INCLUDED_)
+#define EA_37C067EA_9B6B_4d95_84A3_ABBE88E7AD8F__INCLUDED_
+
+#include <tools/elfdefs.h>
+
+enum SymbolType
+{
+	SymbolTypeNotDefined = STT_NOTYPE,
+	SymbolTypeData = STT_OBJECT,
+	SymbolTypeCode = STT_FUNC
+};
+
+
+
+
+#endif // !defined(EA_37C067EA_9B6B_4d95_84A3_ABBE88E7AD8F__INCLUDED_)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/pl_symbol.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,329 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation of the Class Symbol for the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+#include "pl_symbol.h"
+
+
+/**
+This constructor sets the symbol members.
+@internalComponent
+@released
+*/
+Symbol::Symbol(char* aName, SymbolType aCodeDataType, char* aExportName, PLUINT32	aOrd, \
+			   char* aComment , bool aR3Unused, bool aAbsent, PLUINT32 aSz) :\
+			   iSymbolName(aName), iExportName(aExportName),iSymbolType(aCodeDataType),\
+			    iOrdinalNumber(aOrd),iComment(aComment),iAbsent(aAbsent), iR3Unused(aR3Unused), \
+	        	iSize (aSz) 
+{
+
+}
+
+/**
+This constructor sets the symbol members.
+@internalComponent
+@released
+*/
+Symbol::Symbol(Symbol& aSymbol, SymbolType aCodeDataType, bool aAbsent)
+			   : iExportName(NULL), \
+		iSymbolType(aCodeDataType),iComment(NULL), iR3Unused(false), iAbsent(aAbsent) 
+{
+	iSymbolName = new char[strlen(aSymbol.SymbolName()) + 1];
+	strcpy(iSymbolName, aSymbol.SymbolName());
+	iOrdinalNumber = aSymbol.OrdNum();
+}
+
+/**
+This copy constructor copies the symbol members from the input symbol.
+@param aSymbol - The symbol from which the members are to be copied.
+@internalComponent
+@released
+*/
+Symbol::Symbol(Symbol& aSymbol)
+{
+	memcpy(this, &aSymbol, sizeof(aSymbol));
+	
+	iSymbolName = new char[strlen(aSymbol.SymbolName()) + 1];
+	strcpy(iSymbolName, aSymbol.SymbolName());
+	
+	if(aSymbol.Comment())
+	{
+		iComment = new char[strlen(aSymbol.Comment()) + 1];
+		strcpy(iComment, aSymbol.Comment());
+	}
+
+	if(aSymbol.ExportName())
+	{
+		iExportName = new char[strlen(aSymbol.ExportName()) + 1];
+		strcpy(iExportName, aSymbol.ExportName());
+	}
+}
+
+/**
+This constructor sets the symbol members.
+@internalComponent
+@released
+*/
+Symbol::Symbol(int symbolStatus,char *name,char *exportName,int ordinalNo,bool r3unused,bool absent,int symbolType,char *comment, PLUINT32 aSz)\
+	:iSize (aSz)
+{
+	if(symbolStatus==0)
+	{
+		iSymbolStatus=Matching;
+	}
+	else if(symbolStatus==1)
+	{
+		iSymbolStatus=Missing;
+	}
+	else
+	{
+		iSymbolStatus=New;
+	}
+	iSymbolName=name;
+	iExportName=exportName;
+	iOrdinalNumber=ordinalNo;
+	iR3Unused=r3unused;
+	iAbsent=absent;
+	if(symbolType==0)
+	{
+		iSymbolType=SymbolTypeCode;
+	}
+	else if(symbolType==1)
+	{
+		iSymbolType=SymbolTypeData;
+	}
+	else
+	{
+		iSymbolType=SymbolTypeNotDefined;
+	}
+	iComment=comment;
+}
+
+/**
+This destructor frees the symbol members.
+@internalComponent
+@released
+*/
+Symbol::~Symbol()
+{
+		delete [] iSymbolName;
+		delete [] iExportName;
+		delete [] iComment;
+}
+
+/**
+This function sets the symbol name.
+@param aSymbolName - The symbol name
+@internalComponent
+@released
+*/
+void Symbol::SetSymbolName(char *aSymbolName) 
+{
+	iSymbolName = new char[strlen(aSymbolName)+1];
+	strcpy(iSymbolName, aSymbolName);
+}
+
+/**
+This function compares the symbol for equality.
+@param aSym - The symbol that is compared with this symbol
+Return - It returns true if the 2 symbols are equal.
+@internalComponent
+@released
+*/
+bool Symbol::operator==(const Symbol* aSym) const {
+	if(strcmp(iSymbolName, aSym->iSymbolName))
+		return false;
+	if( iSymbolType != aSym->iSymbolType )
+		return false;
+
+	return true;
+}
+
+/**
+This function returns the symbol name.
+@internalComponent
+@released
+*/
+const char* Symbol::SymbolName() const {
+	return iSymbolName;
+}
+
+/**
+This function returns the aliased symbol name.
+@internalComponent
+@released
+*/
+const char* Symbol::ExportName() {
+	 return iExportName;
+}
+
+/**
+This function returns the ordinal number of the symbol.
+@internalComponent
+@released
+*/
+PLUINT32 Symbol::OrdNum() const {
+	 return iOrdinalNumber;
+}
+
+/**
+This function returns if the symbol is code or a data symbol.
+@internalComponent
+@released
+*/
+SymbolType Symbol::CodeDataType() { 
+	return iSymbolType;
+}
+
+/**
+This function returns if r3unused is true.
+@internalComponent
+@released
+*/
+bool Symbol::R3unused() { 
+	return iR3Unused;
+}
+
+/**
+This function returns if the symbol is marked absent in the def file.
+@internalComponent
+@released
+*/
+bool Symbol::Absent() { 
+	return iAbsent;
+}
+
+/**
+This function sets the symbol to be absent.
+@param aAbsent - bool value
+@internalComponent
+@released
+*/
+void Symbol::SetAbsent(bool aAbsent) { 
+	iAbsent = aAbsent;
+}
+
+/**
+This function returns the comment against this def file.
+@internalComponent
+@released
+*/
+char* Symbol::Comment() { 
+	return iComment;
+}
+
+/**
+This function returns the symbol is a matching/missing/new symbol in the def file.
+@internalComponent
+@released
+*/
+int Symbol::GetSymbolStatus() { 
+	return  iSymbolStatus;
+}
+
+/**
+This function sets the ordinal number for this symbol.
+@internalComponent
+@released
+*/
+void Symbol::SetOrdinal(PLUINT32 aOrdinalNum) {
+	iOrdinalNumber=aOrdinalNum;
+}
+
+/**
+This function sets the status of the symbol i.e., whether it is 
+a matching/missing/new symbol.
+@internalComponent
+@released
+*/
+void Symbol::SetSymbolStatus(SymbolStatus aSymbolStatus) {
+	iSymbolStatus = aSymbolStatus;
+}
+
+/**
+This function sets the symbol name.
+@param aSymbolName - Symbol Name
+@internalComponent
+@released
+*/
+void Symbol::SymbolName(char *aSymbolName)
+{ 
+	iSymbolName = aSymbolName;
+}
+/**
+This function sets the export name of the symbol.
+@param aComment - aExportName
+@internalComponent
+@released
+*/
+void Symbol::ExportName(char *aExportName)
+{ 
+	iExportName = aExportName;
+}
+
+/**
+This function sets the comment against the symbol.
+@param aComment - aComment
+@internalComponent
+@released
+*/
+void Symbol::Comment(char *aComment)
+{ 
+	iComment = aComment;
+}
+
+/**
+This function sets the symbol type if it is Code or Data symbol.
+@param aType - Symbol Type
+@internalComponent
+@released
+*/
+void Symbol::CodeDataType(SymbolType aType) 
+{
+	iSymbolType = aType;
+}
+
+/**
+This function sets if R3Unused is true for this symbol.
+@param aR3Unused - bool value
+@internalComponent
+@released
+*/
+void Symbol::R3Unused(bool aR3Unused)
+{
+	iR3Unused = aR3Unused;
+}
+
+/**
+This function sets if R3Unused is true for this symbol.
+@param aSize - size of the symbol
+@internalComponent
+@released
+*/
+void Symbol::SetSymbolSize(PLUINT32 aSize){
+	iSize = aSize;
+}
+
+/**
+This function gets the size of this symbol.
+@internalComponent
+@released
+*/
+PLUINT32 Symbol::SymbolSize(){
+	return iSize;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/pl_symbol.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,91 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation of the Class Symbol for the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+
+#if !defined(_PL_SYMBOL_H_)
+#define _PL_SYMBOL_H_
+
+#include "pl_common.h"
+#include "pl_sym_type.h"
+#include <string>
+
+#define UnAssignedOrdNum -1;
+
+enum SymbolStatus {Matching,Missing,New};
+/**
+ * This class is shared among all that use the symbol information. To name  them,
+ * DefFileHandler, UseCaseController, DSOHandler. To be finaslized  by
+ * DefFileHandler.
+ */
+class Symbol
+{
+
+public:
+	Symbol(char* aName,SymbolType aCodeDataType, char* aExportName=NULL, PLUINT32 aOrd = -1,\
+		char* aComment=NULL, bool aR3Unused=false, bool aAbsent=false, PLUINT32 aSymbolSz = 0);
+
+	Symbol(int symbolStatus,char *name,char *exportName,int ordinalNo,bool r3unused,bool absent,int symbolType,char *comment, PLUINT32 aSymbolSz = 0);
+
+	Symbol(Symbol& aSymbol, SymbolType aCodeDataType, bool aAbsent);
+
+	Symbol(Symbol& aSymbol);
+	/*Symbol(char* aName,CDType aCodeDataType, PLUINT32	aOrd = UnAssignedOrdNum,\
+		char* aComment = NULL, bool aAbsent = false);*/
+	virtual ~Symbol();
+
+	bool operator==(const Symbol* aSym) const;
+	const char* SymbolName() const;
+	const char* ExportName();
+	PLUINT32 OrdNum() const;
+	SymbolType CodeDataType();
+
+	bool R3unused();
+	bool Absent();
+	void SetAbsent(bool aAbsent);
+	char* Comment();
+	int GetSymbolStatus();
+	void SetOrdinal(PLUINT32 aOrdinalNum);
+	void SetSymbolStatus(SymbolStatus aSymbolStatus);
+	void SetSymbolName(char *aSymbolName);
+	
+	void SymbolName(char *aSymbolName);
+	void Comment(char *aComment);
+	void CodeDataType(SymbolType aType);
+	void R3Unused(bool aR3Unused);
+	void ExportName(char *aExportName);
+	void SetSymbolSize(PLUINT32 aSz);
+	PLUINT32 SymbolSize();
+
+private:
+	SymbolStatus iSymbolStatus;
+	char*		iSymbolName;
+	char*		iExportName;
+	SymbolType	iSymbolType;
+	PLUINT32	iOrdinalNumber;
+	char*		iComment;
+	bool		iAbsent;
+	bool		iR3Unused;
+	PLUINT32	iSize;
+	
+};
+
+
+
+
+#endif // !defined(_PL_SYMBOL_H_)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/polydll_fb_target.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,112 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation of the Class PolyDllFB Target for the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+#include "polydll_fb_target.h"
+
+/**
+Constructor for the POLYDLLFBTarget Class
+
+@internalComponent
+@released
+*/
+POLYDLLFBTarget::POLYDLLFBTarget(ParameterListInterface* aParameterListInterface) : ExportTypeFBTarget(aParameterListInterface) {
+}
+
+/**
+Destructor for the POLYDLLFBTarget Class
+
+@internalComponent
+@released
+*/
+POLYDLLFBTarget::~POLYDLLFBTarget()
+{
+	if(iDefExports)
+	{
+		SymbolList::iterator aItr = iDefExports->begin();
+		SymbolList::iterator last = iDefExports->end();
+		Symbol *temp;
+
+		while( aItr != last)
+		{
+			temp = *aItr;
+			aItr++;
+			delete temp;
+		}
+		iDefExports->clear();
+	}
+}
+
+/**
+Function to process the symbols to be exported. In case of Poly DLL, there might be
+predefined symbols passed to '--sydef' option, need to consider them alongwith the 
+symbols coming from the ELF file.
+ 
+@internalComponent
+@released
+*/
+void POLYDLLFBTarget::ProcessExports() 
+{
+	int count = iParameterListInterface->SysDefCount();
+	ParameterListInterface::Sys aSysDefSymbols[10];
+
+	int j=0, i=count;
+	while (i)
+	{
+		aSysDefSymbols[j] = iParameterListInterface->SysDefSymbols(j);
+		j++; i--;
+	}
+
+	typedef SymbolList::iterator Iterator;
+
+	Symbol *aSymbolEntry;
+
+	iDefExports = new SymbolList;
+
+	for (int k=0; k < count; k++)
+	{
+		SymbolType aType = SymbolTypeCode;
+		aSymbolEntry = new Symbol(aSysDefSymbols[k].iSysDefSymbolName, aType);
+		aSymbolEntry->SetOrdinal(aSysDefSymbols[k].iSysDefOrdinalNum);
+		iDefExports->push_back(aSymbolEntry);
+	}
+
+	ValidateExports(iDefExports);
+	CreateExports();
+}
+
+/**
+Function to generate the output E32 image. Incase of an output DEF file, then the 
+DEF file and the corresponding DSO file should be generated.
+  
+@internalComponent
+@released
+*/
+void POLYDLLFBTarget::GenerateOutput() {
+	
+	if( UseCaseBase::DefOutput() ) {
+		WriteDefFile();
+	}
+	if(UseCaseBase::DSOOutput() && UseCaseBase::LinkAsDLLName()) {
+		WriteDSOFile();
+	}
+	WriteE32();
+}
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/polydll_fb_target.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,52 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// polydllfb_target.h
+// Declaration of Class POLYDLLFBTarget of the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+#ifndef POLYDLLFB_TARGET_H
+#define POLYDLLFB_TARGET_H
+
+#include "export_type_fb_target.h"
+#include <list>
+
+class Symbol;
+
+typedef std::list<Symbol*> SymbolList;
+
+/**
+This class is derived from the class ExportTypeFBTarget and is responsible for creation of
+PolyDll first build.
+
+@internalComponent
+@released
+*/
+class POLYDLLFBTarget : public ExportTypeFBTarget
+{
+
+public:
+	POLYDLLFBTarget(ParameterListInterface* aParameterListInterface);
+	~POLYDLLFBTarget();
+	void ProcessExports();
+	void GenerateOutput();
+
+};
+
+
+#endif // POLYDLLFB_TARGET_H
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/polydll_rebuild_target.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,124 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation of the Class PolyDLL Rebuild Target for the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+#include "polydll_rebuild_target.h"
+#include "deffile.h"
+#include "errorhandler.h"
+
+#include <iostream>
+
+using std::list;
+
+/**
+Constructor for the POLYDLLRebuildTarget Class
+
+@internalComponent
+@released
+*/
+POLYDLLRebuildTarget::POLYDLLRebuildTarget(ParameterListInterface* aParameterListInterface) : ExportTypeRebuildTarget(aParameterListInterface) {
+}
+
+/**
+Destructor for the POLYDLLRebuildTarget Class
+
+@internalComponent
+@released
+*/
+POLYDLLRebuildTarget::~POLYDLLRebuildTarget() 
+{
+}
+
+/**
+Function to process the symbols to be exported. In case of Poly DLL, there might be
+predefined symbols passed to '--sydef' option, need to consider them alongwith the 
+symbols coming from the DEF file and ELF file.
+ 
+@internalComponent
+@released
+*/
+void POLYDLLRebuildTarget::ProcessExports() 
+{
+	int count = iParameterListInterface->SysDefCount();
+	ParameterListInterface::Sys aSysDefSymbols[10];
+
+	int j=0, i=count;
+	while (i)
+	{
+		aSysDefSymbols[j] = iParameterListInterface->SysDefSymbols(j);
+		j++; i--;
+	}
+
+	typedef SymbolList::iterator Iterator;
+
+	Symbol *aSymbolEntry;
+
+	SymbolList *iSysDefExports = new SymbolList;
+
+	iDefExports = iDefFile->ReadDefFile(iParameterListInterface->DefInput());
+	
+	for (int k=0; k < count; k++)
+	{
+		SymbolType aType = SymbolTypeCode;
+		aSymbolEntry = new Symbol(aSysDefSymbols[k].iSysDefSymbolName, aType);
+		aSymbolEntry->SetOrdinal(aSysDefSymbols[k].iSysDefOrdinalNum);
+		iSysDefExports->push_back(aSymbolEntry);
+	}
+
+	// Check if the Sysdefs and the DEF file are matching.
+
+	Iterator aBegin = iSysDefExports->begin();
+	Iterator aEnd = iSysDefExports->end();
+
+	Iterator aDefBegin = iDefExports->begin();
+	Iterator aDefEnd = iDefExports->end();
+
+	std::list<String> aMissingSysDefList;
+
+	while ((aDefBegin != aDefEnd) && (aBegin != aEnd))
+	{
+		if (strcmp((*aBegin)->SymbolName(), (*aDefBegin)->SymbolName()))
+			aMissingSysDefList.push_back((*aBegin)->SymbolName());
+		aBegin++;
+		aDefBegin++;
+	}
+
+	if( aMissingSysDefList.size() ) 
+		throw SysDefMismatchError(SYSDEFSMISMATCHERROR, aMissingSysDefList, UseCaseBase::DefInput());
+		
+	ValidateExports(iDefExports);
+	CreateExports();
+}
+
+/**
+Function to generate the output E32 image. Incase of an output DEF file, then the 
+DEF file and the corresponding DSO file should be generated.
+  
+@internalComponent
+@released
+*/
+void POLYDLLRebuildTarget::GenerateOutput() {
+	
+	if( UseCaseBase::DefOutput() ) {
+		WriteDefFile();
+	}
+	if(UseCaseBase::DSOOutput() && UseCaseBase::LinkAsDLLName()) {
+		WriteDSOFile();
+	}
+	WriteE32();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/polydll_rebuild_target.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,51 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// polydllrebuild_target.h
+// Declaration of Class POLYDLLRebuildTarget of the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+#ifndef POLYDLLREBUILD_TARGET_H
+#define POLYDLLREBUILD_TARGET_H
+
+#include "export_type_rebuild_target.h"
+#include <list>
+
+class Symbol;
+
+typedef std::list<Symbol*> SymbolList;
+
+/**
+This class is derived from the base class ExportTypeRebuildTarget and is responsible for
+PolyDLL rebuild.
+
+@internalComponent
+@released
+*/
+class POLYDLLRebuildTarget : public ExportTypeRebuildTarget
+{
+
+public:
+	POLYDLLRebuildTarget(ParameterListInterface* aParameterListInterface);
+	~POLYDLLRebuildTarget();
+	void ProcessExports();
+	void GenerateOutput();
+};
+
+
+#endif // POLYDLLREBUILD_TARGET_H
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/staticlibsymbols.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,520 @@
+// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Header file containing the list of symbols exported by static libraries
+// @internalComponent
+// @released
+// 
+//
+
+#if !defined STATICLIBS_SYMBOLS_H
+#define STATICLIBS_SYMBOLS_H
+
+static const char * Unwantedruntimesymbols[] =
+{
+"_ZN10__cxxabiv116__enum_type_infoD0Ev",
+"_ZN10__cxxabiv116__enum_type_infoD1Ev",
+"_ZN10__cxxabiv116__enum_type_infoD2Ev",
+"_ZN10__cxxabiv117__array_type_infoD0Ev",
+"_ZN10__cxxabiv117__array_type_infoD1Ev",
+"_ZN10__cxxabiv117__array_type_infoD2Ev",
+"_ZN10__cxxabiv117__class_type_infoD0Ev",
+"_ZN10__cxxabiv117__class_type_infoD1Ev",
+"_ZN10__cxxabiv117__class_type_infoD2Ev",
+"_ZN10__cxxabiv117__pbase_type_infoD0Ev",
+"_ZN10__cxxabiv117__pbase_type_infoD1Ev",
+"_ZN10__cxxabiv117__pbase_type_infoD2Ev",
+"_ZN10__cxxabiv119__pointer_type_infoD0Ev",
+"_ZN10__cxxabiv119__pointer_type_infoD1Ev",
+"_ZN10__cxxabiv119__pointer_type_infoD2Ev",
+"_ZN10__cxxabiv120__function_type_infoD0Ev",
+"_ZN10__cxxabiv120__function_type_infoD1Ev",
+"_ZN10__cxxabiv120__function_type_infoD2Ev",
+"_ZN10__cxxabiv120__si_class_type_infoD0Ev",
+"_ZN10__cxxabiv120__si_class_type_infoD1Ev",
+"_ZN10__cxxabiv120__si_class_type_infoD2Ev",
+"_ZN10__cxxabiv121__vmi_class_type_infoD0Ev",
+"_ZN10__cxxabiv121__vmi_class_type_infoD1Ev",
+"_ZN10__cxxabiv121__vmi_class_type_infoD2Ev",
+"_ZN10__cxxabiv123__fundamental_type_infoD0Ev",
+"_ZN10__cxxabiv123__fundamental_type_infoD1Ev",
+"_ZN10__cxxabiv123__fundamental_type_infoD2Ev",
+"_ZN10__cxxabiv129__pointer_to_member_type_infoD0Ev",
+"_ZN10__cxxabiv129__pointer_to_member_type_infoD1Ev",
+"_ZN10__cxxabiv129__pointer_to_member_type_infoD2Ev",
+"_ZNKSt13bad_exception4whatEv",
+"_ZNKSt9exception4whatEv",
+"_ZNSt13bad_exceptionC2ERKS_",
+"_ZNSt13bad_exceptionC2Ev",
+"_ZNSt13bad_exceptionD0Ev",
+"_ZNSt13bad_exceptionD2Ev",
+"_ZNSt9exceptionC1ERKS_",
+"_ZNSt9exceptionC1Ev",
+"_ZNSt9exceptionC2ERKS_",
+"_ZNSt9exceptionC2Ev",
+"_ZNSt9exceptionD0Ev",
+"_ZNSt9exceptionD1Ev",
+"_ZNSt9exceptionD2Ev",
+"_ZNSt9exceptionaSERKS_",
+"_ZNSt9type_infoD0Ev",
+"_ZNSt9type_infoD1Ev",
+"_ZNSt9type_infoD2Ev",
+"_ZSt9terminatev",
+"_ZTISt13bad_exception",
+"_ZTISt9exception",
+"_ZTVSt13bad_exception",
+"_ZTVSt9exception",
+"__ARM_dcmp4",
+"__ARM_dcmp4e",
+"__ARM_exceptions_buffer_allocate",
+"__ARM_exceptions_buffer_free",
+"__ARM_exceptions_buffer_init",
+"__ARM_fcmp4",
+"__ARM_fcmp4e",
+"__ARM_isnan",
+"__ARM_vec_cleanup",
+"__Heap_Alloc",
+"__Heap_Alloc_Internal",
+"__Heap_Broken",
+"__Heap_DescSize",
+"__Heap_Free",
+"__Heap_Free_Internal",
+"__Heap_Full",
+"__Heap_Initialize",
+"__Heap_ProvideMemory",
+"__I_use_heap",
+"__aeabi_cdcmpeq",
+"__aeabi_cdcmple",
+"__aeabi_cfcmpeq",
+"__aeabi_cfcmple",
+"__aeabi_d2iz",
+"__aeabi_d2lz",
+"__aeabi_d2uiz",
+"__aeabi_d2ulz",
+"__aeabi_dcmpeq",
+"__aeabi_dcmpge",
+"__aeabi_dcmpgt",
+"__aeabi_dcmple",
+"__aeabi_dcmplt",
+"__aeabi_ddiv",
+"__aeabi_dneg",
+"__aeabi_f2iz",
+"__aeabi_f2lz",
+"__aeabi_f2uiz",
+"__aeabi_f2ulz",
+"__aeabi_fcmpeq",
+"__aeabi_fcmpge",
+"__aeabi_fcmpgt",
+"__aeabi_fcmple",
+"__aeabi_fcmplt",
+"__aeabi_fdiv",
+"__aeabi_fneg",
+"__aeabi_i2d",
+"__aeabi_i2f",
+"__aeabi_l2d",
+"__aeabi_l2f",
+"__aeabi_ui2d",
+"__aeabi_ui2f",
+"__aeabi_ul2d",
+"__aeabi_ul2f",
+"__array_delete_general",
+"__cxa_get_globals",
+"__dcmp4e",
+"__default_signal_handler",
+"__derived_to_base_conversion",
+"__dflt_normalise",
+"__dunder",
+"__dunder_d",
+"__fcmp4e",
+"__fflt_normalise",
+"__fpl_cmpreturn",
+"__fpl_dcheck_NaN1",
+"__fpl_dcheck_NaN2",
+"__fpl_dcmp_InfNaN",
+"__fpl_exception",
+"__fpl_fcheck_NaN1",
+"__fpl_fcheck_NaN2",
+"__fpl_fcmp_InfNaN",
+"__fpl_inf_d2f",
+"__fpl_inf_dadd",
+"__fpl_inf_dcmp",
+"__fpl_inf_ddiv",
+"__fpl_inf_dfix",
+"__fpl_inf_dfix_r",
+"__fpl_inf_dfixu",
+"__fpl_inf_dfixu_r",
+"__fpl_inf_dmul",
+"__fpl_inf_drem",
+"__fpl_inf_drnd",
+"__fpl_inf_dsqrt",
+"__fpl_inf_dsub",
+"__fpl_inf_f2d",
+"__fpl_inf_fadd",
+"__fpl_inf_fcmp",
+"__fpl_inf_fdiv",
+"__fpl_inf_ffix",
+"__fpl_inf_ffix_r",
+"__fpl_inf_ffixu",
+"__fpl_inf_ffixu_r",
+"__fpl_inf_fmul",
+"__fpl_inf_frem",
+"__fpl_inf_frnd",
+"__fpl_inf_fsqrt",
+"__fpl_inf_fsub",
+"__fpl_inf_ll_sfrom_d",
+"__fpl_inf_ll_sfrom_d_r",
+"__fpl_inf_ll_sfrom_f",
+"__fpl_inf_ll_sfrom_f_r",
+"__fpl_inf_ll_ufrom_d",
+"__fpl_inf_ll_ufrom_d_r",
+"__fpl_inf_ll_ufrom_f",
+"__fpl_inf_ll_ufrom_f_r",
+"__fpl_inf_scalbn",
+"__fpl_inf_scalbnf",
+"__fpl_normalise2",
+"__fpl_return_NaN",
+"__funder",
+"__funder_d",
+"__hardfp_acos",
+"__hardfp_asin",
+"__hardfp_atan",
+"__hardfp_atan2",
+"__hardfp_cos",
+"__hardfp_exp",
+"__hardfp_fabs",
+"__hardfp_fmod",
+"__hardfp_log",
+"__hardfp_log10",
+"__hardfp_modf",
+"__hardfp_pow",
+"__hardfp_sin",
+"__hardfp_sqrt",
+"__hardfp_tan",
+"__heap_guard",
+"__ieee754_rem_pio2",
+"__kernel_cos",
+"__kernel_poly",
+"__kernel_sin",
+"__kernel_tan",
+"__mathlib_zero",
+"__softfp_acos",
+"__softfp_asin",
+"__softfp_atan",
+"__softfp_atan2",
+"__softfp_cos",
+"__softfp_exp",
+"__softfp_fabs",
+"__softfp_fmod",
+"__softfp_log",
+"__softfp_log10",
+"__softfp_modf",
+"__softfp_pow",
+"__softfp_sin",
+"__softfp_sqrt",
+"__softfp_tan",
+"_d2f",
+"_dabs",
+"_dadd",
+"_dcmp4e",
+"_dcmpeq",
+"_dcmple",
+"_ddiv",
+"_ddiv_mantissas",
+"_deq",
+"_dfix",
+"_dfix_r",
+"_dfixu",
+"_dfixu_r",
+"_dflt",
+"_dfltu",
+"_dgeq",
+"_dgr",
+"_dleq",
+"_dls",
+"_dmul",
+"_dneg",
+"_dneq",
+"_drcmple",
+"_drdiv",
+"_drsb",
+"_dsub",
+"_dun",
+"_f2d",
+"_fabs",
+"_fadd",
+"_fcmp4e",
+"_fcmpeq",
+"_fcmple",
+"_fdiv",
+"_feq",
+"_ffix",
+"_ffix_r",
+"_ffixu",
+"_ffixu_r",
+"_fflt",
+"_ffltu",
+"_fgeq",
+"_fgr",
+"_fleq",
+"_fls",
+"_fmul",
+"_fneg",
+"_fneq",
+"_fp_trap",
+"_fp_trapveneer",
+"_frcmple",
+"_frdiv",
+"_frsb",
+"_fsub",
+"_fun",
+"_init_alloc",
+"_init_user_alloc",
+"_ll_sfrom_d",
+"_ll_sfrom_d_r",
+"_ll_sfrom_f",
+"_ll_sfrom_f_r",
+"_ll_sto_d",
+"_ll_sto_f",
+"_ll_ufrom_d",
+"_ll_ufrom_d_r",
+"_ll_ufrom_f",
+"_ll_ufrom_f_r",
+"_ll_uto_d",
+"_ll_uto_f",
+"_terminate_user_alloc",
+"_ttywrch",
+"abort",
+"array_new_general",
+"copysign",
+"fabs",
+"malloc",
+"scalbln",
+"scalblnf",
+"scalblnl",
+"scalbn",
+"scalbnf",
+"scalbnl",
+"sqrt",
+"_vfp__fpl_inf_fsqrt",
+"_vfp_dfixu",
+"_vfp__fpl_dcmp_InfNaN",
+"_vfp_fp_trapveneer",
+"_vfp_dread",
+"_vfp__fpl_inf_ddiv",
+"_vfp_ffixu",
+"_vfp_ddiv",
+"_vfp__fflt_normalise",
+"_vfp__fpl_inf_d2f",
+"_vfp__fpl_inf_fdiv",
+"_vfp__fpl_exception",
+"_vfp__fpl_inf_dmul",
+"_vfp_sread",
+"_vfp_f2d",
+"_vfp_fdiv",
+"_vfp_dmul",
+"_vfp__dcmp4",
+"_vfp__fpl_inf_fmul",
+"_vfp_fmul",
+"_vfp__fcmp4",
+"_vfp__fpl_inf_dadd",
+"_vfp_dfltu",
+"_vfp_fcmp4e",
+"_vfp__fpl_inf_dcmp",
+"_vfp_read_fpscr",
+"_vfp_dadd",
+"_vfp__fpl_inf_ffixu_r",
+"_vfp__dunder_d",
+"_vfp__fpl_inf_fadd",
+"_vfp__fcmp4e",
+"_vfp_dfixu_r",
+"_vfp_ffltu",
+"_vfp__fpl_inf_fcmp",
+"_vfp_fadd",
+"_vfp__dflt_normalise",
+"_vfp__fpl_inf_ffix_r",
+"_vfp_drsb",
+"_vfp_dflt",
+"_vfp__funder",
+"_vfp__funder_d",
+"_fcmpge",
+"_vfp__fpl_inf_dfixu",
+"_vfp_frsb",
+"_vfp_fflt",
+"_vfp_ffix_r",
+"_vfp_dsqrt",
+"_vfp__fpl_inf_ffixu",
+"_vfp__fpl_fcheck_NaN1",
+"_vfp_drdiv",
+"_vfp__fpl_fcheck_NaN2",
+"_vfp_fsqrt",
+"_vfp__fpl_normalise2",
+"_vfp_ddiv_mantissas",
+"_vfp__fpl_inf_dfix",
+"_vfp__fpl_return_NaN",
+"_vfp_d2f",
+"_vfp_frdiv",
+"_vfp__fpl_inf_f2d",
+"_vfp_dneg",
+"_vfp_write_fpscr",
+"_vfp_dfix",
+"_vfp__fpl_inf_ffix",
+"_vfp__fpl_inf_dsub",
+"_vfp_swrite",
+"_vfp_dcmp4e",
+"_vfp__fpl_fcmp_InfNaN",
+"_vfp__fpl_inf_dfixu_r",
+"_vfp_fneg",
+"_vfp_ffix",
+"_vfp_dsub",
+"_vfp_dwrite",
+"_vfp__dcmp4e",
+"_vfp__fpl_inf_fsub",
+"_vfp__fpl_cmpreturn",
+"_vfp_fsub",
+"_vfp__fpl_inf_dfix_r",
+"_vfp__dunder",
+"_dcmpge",
+"_vfp_dcmp4",
+"_vfp__fpl_dcheck_NaN1",
+"_vfp__fpl_dcheck_NaN2",
+"_vfp_dabs",
+"_vfp_dfix_r",
+"_vfp__fpl_inf_dsqrt",
+"_vfp_fcmp4",
+"_vfp_ffixu_r",
+"_vfp_fabs",
+
+
+// For RVCT 3.1 vfpsupport.l archive.
+"_vfp_abs_double",
+"_vfp_abs_single",
+"_vfp_add_double",
+"_vfp_add_single",
+"_vfp_call_trap_handler",
+"_vfp_cmp_double",
+"_vfp_cmp_single",
+"_vfp_cmpe_double",
+"_vfp_cmpe_single",
+"_vfp_const_double",
+"_vfp_const_single",
+"_vfp_convert_cmp_result_1",
+"_vfp_convert_cmp_result_2",
+"_vfp_cvt_double",
+"_vfp_cvt_single",
+"_vfp_div_double",
+"_vfp_div_single",
+"_vfp_do_one_instruction_double",
+"_vfp_do_one_instruction_single",
+"_vfp_fix_double",
+"_vfp_fix_single",
+"_vfp_fixhp_double",
+"_vfp_fixhp_single",
+"_vfp_fixp_double",
+"_vfp_fixp_single",
+"_vfp_fixu_double",
+"_vfp_fixu_single",
+"_vfp_fixuhp_double",
+"_vfp_fixuhp_single",
+"_vfp_fixup_double",
+"_vfp_fixup_single",
+"_vfp_flt_double",
+"_vfp_flt_single",
+"_vfp_flthp_double",
+"_vfp_flthp_single",
+"_vfp_fltp_double",
+"_vfp_fltp_single",
+"_vfp_fltu_double",
+"_vfp_fltu_single",
+"_vfp_fltuhp_double",
+"_vfp_fltuhp_single",
+"_vfp_fltup_double",
+"_vfp_fltup_single",
+"_vfp_fp_d2f",
+"_vfp_fp_d2f_quiet",
+"_vfp_fp_dabs",
+"_vfp_fp_dadd",
+"_vfp_fp_dcmp",
+"_vfp_fp_dcmpe",
+"_vfp_fp_ddiv",
+"_vfp_fp_dfcmp",
+"_vfp_fp_dfcmpe",
+"_vfp_fp_dfix",
+"_vfp_fp_dfixll",
+"_vfp_fp_dfixllp",
+"_vfp_fp_dfixu",
+"_vfp_fp_dfixull",
+"_vfp_fp_dflt",
+"_vfp_fp_dfltll",
+"_vfp_fp_dfltll_scaled",
+"_vfp_fp_dfltllp",
+"_vfp_fp_dfltu",
+"_vfp_fp_dfltull",
+"_vfp_fp_dmul",
+"_vfp_fp_dneg",
+"_vfp_fp_drdiv",
+"_vfp_fp_drem",
+"_vfp_fp_drnd",
+"_vfp_fp_drsb",
+"_vfp_fp_dsqrt",
+"_vfp_fp_dsub",
+"_vfp_fp_f2d",
+"_vfp_fp_f2d_quiet",
+"_vfp_fp_fabs",
+"_vfp_fp_fadd",
+"_vfp_fp_fcmp",
+"_vfp_fp_fcmpe",
+"_vfp_fp_fdcmp",
+"_vfp_fp_fdcmpe",
+"_vfp_fp_fdiv",
+"_vfp_fp_ffix",
+"_vfp_fp_ffixll",
+"_vfp_fp_ffixllp",
+"_vfp_fp_ffixu",
+"_vfp_fp_ffixull",
+"_vfp_fp_fflt",
+"_vfp_fp_fflt_scaled",
+"_vfp_fp_ffltll",
+"_vfp_fp_ffltll_scaled",
+"_vfp_fp_ffltllp",
+"_vfp_fp_ffltu",
+"_vfp_fp_ffltull",
+"_vfp_fp_fma",
+"_vfp_fp_fmaf",
+"_vfp_fp_fmul",
+"_vfp_fp_fneg",
+"_vfp_fp_frdiv",
+"_vfp_fp_frem",
+"_vfp_fp_frnd",
+"_vfp_fp_frsb",
+"_vfp_fp_fsqrt",
+"_vfp_fp_fsub",
+"_vfp_fp_ilogb",
+"_vfp_fp_ilogbf",
+"_vfp_fp_logb",
+"_vfp_fp_logbf",
+"_vfp_fp_nextafter",
+"_vfp_fp_nextafterf",
+"_vfp_fp_nexttowardf",
+"_vfp_fp_scalbn",
+"_vfp_fp_scalbnf",
+"_vfp_mul_double",
+"_vfp_mul_single",
+"_vfp_neg_double",
+"_vfp_neg_single",
+"_vfp_process_exceptions",
+"_vfp_sqrt_double",
+"_vfp_sqrt_single",
+"_vfp_sub_double",
+"_vfp_sub_single"
+};
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/stdexe_target.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,87 @@
+// Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation of the Class StdExeTarget for the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+#include "stdexe_target.h"
+
+/**
+Constructor for the StdExeTarget Class
+
+@internalComponent
+@released
+*/
+StdExeTarget::StdExeTarget(ParameterListInterface* aParameterListInterface):
+ExportTypeFBTarget(aParameterListInterface)
+{
+}
+
+/**
+Destructor for the StdExeTarget Class
+
+@internalComponent
+@released
+*/
+StdExeTarget::~StdExeTarget(){
+
+}
+
+/**
+Function to check if the provided input is a DLL.
+ 
+@internalComponent
+@released
+
+@result False since StdExe Target is an Exe.
+*/
+bool StdExeTarget::ImageIsDll()
+{
+	return false;
+}
+
+/**
+Function to check if writable data is allowed.
+ 
+@internalComponent
+@released
+
+@result True, since STDEXE targets can have writable data
+*/
+bool StdExeTarget::AllowDllData()
+{
+	return true;
+}
+
+/**
+Function to write E32 image. Here, no def file or Dso file is generated.
+ 
+@internalComponent
+@released
+
+@result void
+*/
+void StdExeTarget::GenerateOutput()
+{
+	WriteE32();
+}
+
+bool StdExeTarget::WarnForNewExports()
+{
+	return false;
+}
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/stdexe_target.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,49 @@
+// Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation of the Header file for Class StdExeTarget of the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+
+#ifndef STDEXE_TARGET_H
+#define STDEXE_TARGET_H
+
+#include "export_type_fb_target.h"
+
+/**
+This class is derived from the base class ExportTypeFBTarget and is responsible for
+creation of STDEXE Target.
+
+@internalComponent
+@released
+*/
+class StdExeTarget : public ExportTypeFBTarget
+{
+
+public:
+	StdExeTarget(ParameterListInterface* aParameterListInterface);
+	virtual ~StdExeTarget();
+	bool ImageIsDll();
+	bool AllowDllData();
+	void GenerateOutput();
+	bool WarnForNewExports();
+};
+
+
+
+#endif // STDEXE_TARGET_H
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/usecasebase.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,580 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation of the Class UseCaseBase for the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+#include <iostream>
+
+#include "usecasebase.h"
+#include "e32exporttable.h"
+
+#include "errorhandler.h"
+
+UseCaseBase::UseCaseBase(ParameterListInterface *aParameterListInterface)
+{
+	iParameterListInterface = aParameterListInterface;
+}
+
+
+UseCaseBase::~UseCaseBase()
+{
+}
+
+/**
+This function calls the DefInput() from ParameterManager through the interface.
+
+@internalComponent
+@released
+
+@return the name of the input DEF file if provided as input through --definput or 0.
+
+*/
+char * UseCaseBase::DefInput()
+{
+	return (iParameterListInterface->DefInput());
+}
+
+/**
+This function calls the DSOOutput() from ParameterManager through the interface.
+
+@internalComponent
+@released
+
+@return the name of the outut DSO file if provided as input through --dso or 0.
+
+*/
+char * UseCaseBase::DSOOutput()
+{
+	return (iParameterListInterface->DSOOutput());
+}
+
+/**
+This function calls the LinkAsDLLName() from ParameterManager through the interface.
+
+@internalComponent
+@released
+
+@return the name of the DLL to be linked with if provided as input through --linkas or 0.
+
+*/
+char * UseCaseBase::LinkAsDLLName()
+{
+	return (iParameterListInterface->LinkAsDLLName());
+}
+
+/**
+This function calls the FileName() from ParameterManager through the interface.
+
+@internalComponent
+@released
+
+@param aFileName
+The filename alongwith the absolute path.
+
+@return the filename (without the absolute path) for valid input else 0.
+
+*/
+char * UseCaseBase::FileName(char * aFileName)
+{
+	return (iParameterListInterface->FileName(aFileName));
+}
+
+/**
+This function calls the DefOutput() from ParameterManager through the interface.
+
+@internalComponent
+@released
+
+@return the name of the output DEF file if provided as input through --defoutput or 0.
+
+*/
+char * UseCaseBase::DefOutput()
+{
+	return iParameterListInterface->DefOutput();
+}
+
+/**
+This function calls the ElfInput() from ParameterManager through the interface.
+
+@internalComponent
+@released
+
+@return the name of the Input ELF file if provided as input through --elfinput or 0.
+
+*/
+char * UseCaseBase::InputElfFileName()
+{
+	return iParameterListInterface->ElfInput();
+}
+
+/**
+This function gets DSO file name from the parameter manager
+
+@internalComponent
+@released
+
+@return DSO file name
+
+*/
+const char * UseCaseBase::OutputDSOFileName()
+{
+	return iParameterListInterface->DSOOutput();
+}
+
+/**
+This function gets the E32 image file name freom the parameter manager
+
+@internalComponent
+@released
+
+@return E32 image file name
+
+*/
+const char * UseCaseBase::OutputE32FileName()
+{
+	return iParameterListInterface->E32ImageOutput();
+}
+
+/**
+This function returns if data in a DLL is allowed.
+
+@internalComponent
+@released
+
+@return if data in a DLL is allowed.
+
+*/
+bool UseCaseBase::AllowDllData()
+{
+	return iParameterListInterface->DllDataP();
+}
+
+/**
+This function returns committed heap size
+
+@internalComponent
+@released
+
+@return committed heap size
+
+*/
+size_t UseCaseBase::HeapCommittedSize()
+{
+	return iParameterListInterface->HeapCommittedSize();
+}
+
+/**
+This function returns reserved heap size
+
+@internalComponent
+@released
+
+@return reserved heap size
+
+*/
+size_t UseCaseBase::HeapReservedSize()
+{
+	return iParameterListInterface->HeapReservedSize();
+}
+
+/**
+This function returns committed stack size
+
+@internalComponent
+@released
+
+@return committed stack size
+
+*/
+size_t UseCaseBase::StackCommittedSize()
+{
+	return iParameterListInterface->StackCommittedSize();
+}
+
+/**
+This function returns if the def file is unfrozen
+
+@internalComponent
+@released
+
+@return if the def file is unfrozen
+
+*/
+bool UseCaseBase::Unfrozen()
+{
+	return iParameterListInterface->Unfrozen();
+}
+
+/**
+This function returns Uid1
+
+@internalComponent
+@released
+
+@return Uid1
+
+*/
+unsigned int UseCaseBase::GetUid1()
+{
+	return iParameterListInterface->Uid1();
+}
+
+/**
+This function returns Uid2
+
+@internalComponent
+@released
+
+@return Uid2
+
+*/
+unsigned int UseCaseBase::GetUid2()
+{
+	return iParameterListInterface->Uid2();
+}
+
+/**
+This function returns Uid3
+
+@internalComponent
+@released
+
+@return Uid3
+
+*/
+unsigned int UseCaseBase::GetUid3()
+{
+	return iParameterListInterface->Uid3();
+}
+
+/**
+This function returns secure Id
+
+@internalComponent
+@released
+
+@return secure Id
+
+*/
+unsigned int UseCaseBase::GetSecureId()
+{
+	return iParameterListInterface->SecureId();
+}
+
+/**
+This function returns true if the --sid option is enabled.
+
+@internalComponent
+@released
+
+@return true if --sid option is passed in.
+
+*/
+bool UseCaseBase::GetSecureIdOption()
+{
+	return iParameterListInterface->SecureIdOption();
+}
+
+/**
+This function returns vendor Id
+
+@internalComponent
+@released
+
+@return Vendor Id
+
+*/
+unsigned int UseCaseBase::GetVendorId()
+{
+	return iParameterListInterface->VendorId();
+}
+
+/**
+This function returns version
+
+@internalComponent
+@released
+
+@return version
+
+*/
+unsigned int UseCaseBase::GetVersion()
+{
+	return iParameterListInterface->Version();
+}
+
+/**
+This function returns call entry point
+
+@internalComponent
+@released
+
+@return call entry point
+
+*/
+bool UseCaseBase::GetCallEntryPoints()
+{
+	return iParameterListInterface->CallEntryPoint();
+}
+
+/**
+This function returns capability
+
+@internalComponent
+@released
+
+@return capability
+
+*/
+SCapabilitySet UseCaseBase::GetCapability()
+{
+	return iParameterListInterface->Capability();
+}
+
+/**
+This function returns priority
+
+@internalComponent
+@released
+
+@return priority
+
+*/
+TProcessPriority UseCaseBase::GetPriority()
+{
+	return iParameterListInterface->Priority();
+}
+
+/**
+This function returns if fixed address is enabled.
+
+@internalComponent
+@released
+
+@return if fixed address is enabled.
+
+*/
+bool UseCaseBase::GetFixedAddress()
+{
+	return iParameterListInterface->FixedAddress();
+}
+
+/**
+This function returns if compression is enabled.
+
+@internalComponent
+@released
+
+@return if compression is enabled.
+
+*/
+bool UseCaseBase::GetCompress()
+{
+		return iParameterListInterface->Compress();
+}
+
+/**
+This function returns compression method
+
+@internalComponent
+@released
+
+@return UID of compression method
+
+*/
+unsigned int UseCaseBase::GetCompressionMethod()
+{
+	return iParameterListInterface->CompressionMethod();
+}
+
+/**
+This function returns the FPU type.
+
+@internalComponent
+@released
+
+@return FPU type.
+
+*/
+unsigned int UseCaseBase::GetFPU()
+{
+	return iParameterListInterface->FPU();
+}
+
+/**
+This function returns the library search path.
+
+@internalComponent
+@released
+
+@return libpath
+
+*/
+ParameterListInterface::LibSearchPaths &  UseCaseBase::GetLibSearchPaths()
+{
+	return iParameterListInterface->LibPath();
+}
+
+/**
+This function returns the logfile name
+
+@internalComponent
+@released
+
+@return log file name
+
+*/
+char * UseCaseBase::LogFile()
+{
+	return (iParameterListInterface->LogFile());
+}
+
+/**
+This function returns if the logging option is enabled
+
+@internalComponent
+@released
+
+@return logging option enabled.
+
+*/
+bool UseCaseBase::LogFileOption()
+{
+	return (iParameterListInterface->LogFileOption());
+}
+
+/**
+This function returns if export library is enabled.
+
+@internalComponent
+@released
+
+@return if the export library is enabled.
+
+*/
+bool UseCaseBase::GetIgnoreNonCallable()
+{
+	return iParameterListInterface->IgnoreNonCallable();
+}
+
+/**
+This function returns the directory separator
+
+@internalComponent
+@released
+
+@return directory separator
+
+*/
+char UseCaseBase::GetDirectorySeparator()
+{
+	return iParameterListInterface->DirectorySeparator();
+}
+
+
+bool UseCaseBase::IsCodePaged()
+{
+	return (iParameterListInterface->IsCodePaged());
+}
+
+bool UseCaseBase::IsCodeUnpaged()
+{
+	return (iParameterListInterface->IsCodeUnpaged());
+}
+
+bool UseCaseBase::IsCodeDefaultPaged()
+{
+	return (iParameterListInterface->IsCodeDefaultPaged());
+}
+
+bool UseCaseBase::IsDataPaged()
+{
+	return (iParameterListInterface->IsDataPaged());
+}
+
+bool UseCaseBase::IsDataUnpaged()
+{
+	return (iParameterListInterface->IsDataUnpaged());
+}
+
+bool UseCaseBase::IsDataDefaultPaged()
+{
+	return (iParameterListInterface->IsDataDefaultPaged());
+}
+
+/**
+This function returns whether the debuggable option is enabled or not.
+
+@internalComponent
+@released
+
+@return whether debuggable option is enabled.
+
+*/
+bool UseCaseBase::IsDebuggable()
+{
+	return (iParameterListInterface->IsDebuggable());
+}
+
+
+bool UseCaseBase::IsSmpSafe()
+{
+	return iParameterListInterface->IsSmpSafe();
+}
+
+/**
+This function returns if the unwanted exports are to be ignored
+
+@internalComponent
+@released
+
+@return if the unwanted exports are to be ignored
+
+*/
+bool UseCaseBase::ExcludeUnwantedExports()
+{
+	return iParameterListInterface->ExcludeUnwantedExports();
+}
+
+/**
+This function returns if the target is a custom dll
+
+@internalComponent
+@released
+
+@return if target is a custom dll
+
+*/
+bool UseCaseBase::IsCustomDllTarget()
+{
+	return iParameterListInterface->IsCustomDllTarget();
+}
+
+/**
+This function returns whether named lookup of symbols is enabled or not.
+
+@internalComponent
+@released
+
+@return default named symbol lookup enabled.
+
+*/
+bool UseCaseBase::GetNamedSymLookup()
+{
+	return (iParameterListInterface->SymNamedLookup());
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elf2e32/source/usecasebase.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,140 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation of the Header file for Class UseCaseBase of the elf2e32 tool
+// @internalComponent
+// @released
+// 
+//
+
+#ifndef USECASEBASE_H
+#define USECASEBASE_H
+
+#include "pl_symbol.h"
+#include "e32imagefile.h"
+#include "parameterlistinterface.h"
+
+class E32ImageFile;
+
+/**
+This class is the base class for the use cases. The appropriate usecases like LibraryTarget,
+DLLTarget, EXETarget are derived from this class. 
+
+Other classes like ParameterManager are dependant on this class.
+
+@internalComponent
+@released
+*/
+class UseCaseBase
+{
+
+public:
+	UseCaseBase(ParameterListInterface* aParameterListInterface);
+	virtual ~UseCaseBase();
+	char * DefInput();
+	char * DSOOutput();
+	char * LinkAsDLLName();
+	char * FileName(char *aFileName);
+
+//const char * DefOutput();
+	char *DefOutput();
+
+	char *LogFile();
+	bool LogFileOption();
+
+char * InputElfFileName();
+
+const char * OutputDSOFileName();
+
+const char * OutputE32FileName();
+
+bool AllowDllData();
+
+size_t HeapCommittedSize();
+
+size_t HeapReservedSize();
+
+size_t StackCommittedSize();
+
+unsigned int GetUid1();
+
+unsigned int GetUid2();
+
+unsigned int GetUid3();
+
+unsigned int GetSecureId();
+bool GetSecureIdOption();
+
+unsigned int GetVendorId();
+
+unsigned int GetVersion();
+
+bool GetCallEntryPoints();
+
+SCapabilitySet GetCapability();
+bool Unfrozen();
+
+TProcessPriority GetPriority();
+
+bool GetFixedAddress();
+
+bool GetCompress();
+unsigned int GetCompressionMethod();
+
+unsigned int GetFPU();
+
+ParameterListInterface::LibSearchPaths &  GetLibSearchPaths();
+
+
+bool GetIgnoreNonCallable();
+
+char GetDirectorySeparator();
+
+bool IsCodePaged();
+bool IsCodeUnpaged();
+bool IsCodeDefaultPaged();
+
+bool IsDataPaged();
+bool IsDataUnpaged();
+bool IsDataDefaultPaged();
+
+bool ExcludeUnwantedExports();
+bool IsCustomDllTarget();
+bool GetNamedSymLookup();
+
+bool IsDebuggable();
+
+bool IsSmpSafe();
+
+SymbolType SymbolTypeF(char * aName);
+/**
+This function creates the appropriate target.
+
+@internalComponent
+@released
+
+@return EXIT_SUCCESS if the generation of the target is successful, else EXIT_FAILURE
+*/
+	virtual int Execute() = 0;
+
+protected:
+	/** Pointer to the ParameterListInterface */
+	ParameterListInterface *iParameterListInterface;
+
+	
+};
+
+
+
+
+#endif // USECASEBASE_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elfdump/elfdump.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,479 @@
+// Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <tools/elfdefs.h>
+#include <sys/stat.h>
+
+#if defined(__MSVCDOTNET__) || defined(__TOOLS2__)
+#include <iostream>
+#include <iomanip>
+using namespace std;
+#else //(!__MSVCDOTNET__ && !__TOOLS2__) 
+#include <iostream.h>
+#include <iomanip.h>
+#endif //__MSVCDOTNET__
+
+#define ADDR(rtype, p, o) (rtype *)(((char *)p) + o)
+
+bool ignoreSomeSections;
+
+void hexdump(unsigned char* data, int aSize, int offset)
+	//  print hex dump of relevant sections
+	{
+	int i=0;
+	int p=0;
+	while (i<aSize)	
+		{
+		int count=0;
+		if(p==0){printf("\t%06x   ",offset);} // offset into section
+		while (i<aSize && count<4)
+			{ 
+			printf("%02X", *data);		// print 4 lots of %08x for the data expresed as 32-bit word 
+			data++;
+			i++;
+			count++;
+			offset++;
+			}
+
+		printf("  ");
+		p++;
+		if (p==4)
+			{
+			data=data-16;
+			for (int i=0;i<16;i++)			//print 16 bytes of memory interpreted 
+				{							//as ASCII characters with all non-printing 
+				if (*data>32 && *data <127)	//characters converted to dots
+					{
+					printf("%1c",*data);
+					}
+				else
+					{
+					printf(".");
+					}
+					data++;
+				}
+			p=0; 
+			printf(" \n "); 
+			}
+		}
+		printf(" \n\n "); 	   	
+	}
+
+void print_directive(unsigned char* data, int size)
+	// print formatted text of directive section
+	{
+	printf ("\t");
+
+	for (int i=0; i<size; i++)
+		{
+		if ((char)data[i]>31 && (char)data[i]<127)
+			{
+			printf ("%c", (char)data[i]);
+			}
+
+		if ((char)data[i]=='\n')
+			{
+			printf ("\n\t");
+			}
+		}
+
+	printf ("\n");
+	}
+
+void print_reloc(Elf32_Ehdr* eh, Elf32_Sym* symT, unsigned char* strtab)
+	// print relocation section
+	{
+	Elf32_Shdr* shdr = ADDR(Elf32_Shdr, eh, eh->e_shoff);
+	for (int j=0;j< eh->e_shnum;j++)
+		{
+		char* sname = ADDR(char, eh, shdr[eh->e_shstrndx].sh_offset);
+		if ( (shdr[j].sh_type==9) && 
+		     ( (!ignoreSomeSections) || 
+		       (strncmp(".rel.debug_", &sname[shdr[j].sh_name], 11))
+		     )
+		   )
+			{
+			unsigned char* data = ADDR(unsigned char, eh, shdr[j].sh_offset);
+			int noOfReloc=shdr[j].sh_size / shdr[j].sh_entsize;
+			printf("\n\n\n\t\t\t%s\n", &sname[shdr[j].sh_name]);
+			Elf32_Rel* rl=(Elf32_Rel*)data;				// pointer to relocation section	
+			for (int i=0;i<noOfReloc;i++)
+				{
+				unsigned char* symbolName = strtab;		// pointer to firest element of string											// table which holds symbol names
+				Elf32_Sym*  sym = symT;					// pointer to symbol table
+				int symTIndx= ELF32_R_SYM(rl->r_info);		// symbol Tableindex
+				sym=sym+symTIndx;							
+				symbolName=symbolName+sym->st_name;		// index into string table section 
+															// with symbol names
+				printf("\t0x%08x \t", rl->r_offset);		// prints offset into relocation section
+				printf("%d", symTIndx);					// symbol table index
+				printf("\t%s\n",symbolName);				// symbol name
+				rl++;			
+				}
+			}
+		}
+	}	
+
+void print_GlSymbols(Elf32_Ehdr* eh, Elf32_Sym* symT, unsigned char* strtab)
+	// print global symbols from Symbol Table
+	{	
+	Elf32_Shdr* shdr = ADDR(Elf32_Shdr, eh, eh->e_shoff);
+	char* sname = ADDR(char, eh, shdr[eh->e_shstrndx].sh_offset);
+	for (int i=0;i< eh->e_shnum;i++)
+		{
+		if (!strcmp(".symtab", &sname[shdr[i].sh_name]))
+			{
+		  	int noOfSym=shdr[i].sh_size / shdr[i].sh_entsize; 	// number of symbols
+		  	const char *symName =(const char *)strtab;
+		  	int count = 1;										
+		  	printf("Global symbols:\n");
+		  	printf("=================\n\n");
+		  	for (int l=0;l< noOfSym ;l++)
+				{
+				symT=symT+1;
+				if( ELF32_ST_BIND(symT->st_info) == 1)			// searching for global symbols
+			 		{
+			  		symName = symName + symT->st_name;			// index into string table section 
+			 		printf("%d	",count);
+			  		printf(symName);
+			  		printf("\n");
+			  		symName = symName - symT->st_name;			// back to pointing to first byte of string table
+			  		count++;
+					}
+			
+				}
+			}
+		}
+	}
+	
+void print_elf_header(Elf32_Ehdr* eh)
+	{
+	// print elf header
+	if (eh->e_version==1)
+		printf("\tHeader version: EV_CURRENT (Current version)\n");
+	else
+		printf("\tInvalid version: EV_NONE (Invalid version)\n");
+
+	if (eh->e_type==0)
+		printf("\tFile Type: ET_NONE (No file type) (0)\n");
+	else if (eh->e_type==1)
+			printf("\tFile Type: ET_REL (Relocatable object) (1)\n");
+	else if (eh->e_type==2)
+			printf("\tFile Type: ET_EXEC (Executable file) (2)\n"); 
+	else if (eh->e_type==3)
+			printf("\tFile Type: ET_DYN (Shared object file) (3)\n"); 
+	else if (eh->e_type==4)
+			printf("\tFile Type: ET_CORE (Core File) (4)\n"); 
+	else if (eh->e_type==65280)
+			printf("\tFile Type: ET_LOPROC (Precessor Specific) (ff00)\n");
+	else	
+			printf("\tFile Type: ET_HIPROC (Precessor Specific) (ffff)\n");
+	if (eh->e_machine==40)
+		printf("\tMachine: EM_ARM (ARM)\n");
+	else
+		printf("\tERROR:\tUnexpected machine\n");
+
+	printf("\tEntry offset (in SHF_ENTRYSECT section):0x%08x \n",eh->e_entry);
+	printf("\tProgram header entries : %d\n",eh->e_phnum); 
+	printf("\tSection header entries : %d\n",eh->e_shnum); 
+  
+	printf("\tProgram header offset  : %d",eh->e_phoff); 
+	printf("  bytes (0x%08X",eh->e_phoff);
+	printf(")\n");
+	printf("\tSection header offset  : %d",eh->e_shoff); 
+	printf("  bytes (0x%08X",eh->e_shoff);
+	printf(")\n");
+
+	printf("\tProgram header entry size  : %d",eh->e_phentsize); 
+	printf("  bytes (0x%02X",eh->e_phentsize);
+	printf(")\n");
+	printf("\tSection header entry size  : %d",eh->e_shentsize); 
+	printf("  bytes (0x%02X",eh->e_shentsize);
+	printf(")\n");
+	printf("\tSection header string table index: %d \n", eh->e_shstrndx);
+	printf("\tHeader size: %d", eh->e_ehsize);
+	printf("  bytes (0x%02X",eh->e_ehsize);
+	printf(")\n");
+	}
+
+void print_sect_header(char* sname, Elf32_Shdr* shdr, int count)
+	// print section header names
+	{
+	static const char* KtypeName[]={"0","SHT_PROGBITS (1)","SHT_SYMTAB (2)","SHT_STRTAB (3)",
+								  "SHT_RELA (4)","5",	"SHT_DINAMIC (6)","7","8","SHT_REL (9)",
+								  "10","SHT_DINSYM (11)"};
+						
+	printf("\n\n\tName\t\t:%1s\n ",&sname[shdr[count].sh_name]);
+	printf("\tType\t\t: %s\n",  KtypeName[shdr[count].sh_type]);
+	printf("\tAddr\t\t: 0x%08X\n",shdr[count].sh_addr);
+	printf("\tSize\t\t: %1d", shdr[count].sh_size);
+	printf("  bytes (0x%X",shdr[count].sh_size);
+	printf(")\n");
+	printf("\tEntry Size\t: %1d\n",shdr[count].sh_entsize);
+	printf("\tAligment\t: %1d\n\n\n",shdr[count].sh_addralign);		 	
+	}
+
+unsigned char* findSymbolStringT(Elf32_Ehdr* eh)
+	//calculate and return pointer to the first byte of string table(the one with symbol names)
+	{
+	Elf32_Shdr* shdr = ADDR(Elf32_Shdr, eh, eh->e_shoff);
+	char* sname = ADDR(char, eh, shdr[eh->e_shstrndx].sh_offset);
+	for (int i=0;i < eh->e_shnum; i++)
+		{
+		if (!strcmp(".strtab", &sname[shdr[i].sh_name]))
+			{
+			unsigned char* data = ADDR(unsigned char, eh, shdr[i].sh_offset); 
+			return data;	//pointer to the first byte of string table section
+			}
+		}
+	return NULL;	//if not found  
+	}
+
+Elf32_Sym* findSymbolT(Elf32_Ehdr* eh)
+	//calculate and return pointer to the first element of symbol table	
+	{
+	Elf32_Shdr* shdr = ADDR(Elf32_Shdr, eh, eh->e_shoff);
+	for (int i=0;i < eh->e_shnum;i++)
+		{
+		if (shdr[i].sh_type==2)
+			{
+			unsigned char* data = ADDR(unsigned char, eh, shdr[i].sh_offset);
+			Elf32_Sym* sym=(Elf32_Sym*)data;
+			return sym;		//pointer to the first element of symbol table.
+			}
+		}
+	return NULL; // if not found
+	}
+
+void print_Summary(Elf32_Ehdr* eh)
+	{
+	//print section names
+	Elf32_Shdr* shdr = ADDR(Elf32_Shdr, eh, eh->e_shoff);
+	char* sname = ADDR(char, eh, shdr[eh->e_shstrndx].sh_offset);
+	printf("\nSummary: \n");
+	printf("==========\n");
+	for (int i=0;i< eh->e_shnum;i++)
+		{
+		printf(&sname[shdr[i].sh_name]);
+		printf("\n");
+		}
+	}
+
+bool printAll;
+
+int do_elf_file(char* buffer, char* name)
+	{
+	Elf32_Ehdr* eh=(Elf32_Ehdr *)buffer;	//elf header
+	if (eh->e_ident[EI_MAG0] !=0x7f || eh->e_ident[EI_MAG1] != 0x45 || eh->e_ident[EI_MAG2] !=0x4c || eh->e_ident[EI_MAG3] != 0x46)
+		{
+		// EI_MAG0 to EI_MAG3 - A files' first 4 bytes hold a 'magic number', identifying the file as an ELF object file. 
+		cout << "Error: " << name << " is not a valid ELF file";
+		return 1;
+		}
+	if (eh->e_ident[EI_DATA] == 2)							
+		{
+		// ELF Header size should be 52 bytes or converted into Big-Endian system 13312
+		if (eh->e_ehsize != 13312)
+			{
+			printf("\tERROR:\tELF Header contains invalid file type\n");
+			exit(1);
+			}
+		// e_ident[EI_DATA] specifies the data encoding of the processor-specific data in the object file.
+		printf("\tERROR:\tData encoding ELFDATA2MSB (Big-Endian) not supported\n");
+		exit(1);
+		}
+	if (eh->e_ehsize != 52)
+		{
+		// ELF Header size should be 52 bytes
+        printf("\tERROR:\tELF Header contains invalid file type\n");
+        exit(1);
+        }
+	int shoff = eh->e_shoff;							    // offset of section header table
+	Elf32_Shdr* shdr = ADDR(Elf32_Shdr, eh, shoff);			// calculating pointer to Secton Header Table
+															// Elf32_Shdr * shdr = (Elf32_Shdr *)(buffer+shoff); 
+	int shnum = eh->e_shnum;							    // number of section headers
+	int shstrndx = eh->e_shstrndx;
+	int snameoffset = shdr[shstrndx].sh_offset;				// offset in file of sections' names
+	char* sname = ADDR(char, eh, snameoffset);				// pointer to String Table which holds section names
+															// char * sname = (char *)(buffer+snameoffset);
+	print_elf_header(eh);									// print Elf Header
+	
+	Elf32_Sym* symT= findSymbolT(eh);	// pointer to Symbol table
+	if (symT==NULL)
+		{
+		printf("\nSymbol table not found\n");
+		}
+	unsigned char* strtab=findSymbolStringT(eh);	// pointer to String table which holds symbol names
+	if (strtab==NULL)
+		{	
+		printf("\nString (the one which holds symbol names) table not found\n");
+		}
+		print_reloc(eh,symT, strtab);	// print relocation info showing symbol names and
+					        // and the name of section in which the relocaton occurs.														
+	for(int i = 0; i < shnum; i++)
+		{    
+		unsigned char* data = ADDR(unsigned char, eh, shdr[i].sh_offset);	//pointer to the first byte in the section
+															//unsigned char * data = (unsigned char * )(buffer+shdr[i].sh_offset);
+		int size = shdr[i].sh_size;	// section size in bytes
+	
+		//print directive section
+		if (!strcmp(".directive", &sname[shdr[i].sh_name])) 
+			{ 
+			print_sect_header(sname, shdr, i);
+			print_directive(data,size);
+			}
+
+		if (!strcmp(".symtab", &sname[shdr[i].sh_name])) 
+			{
+			 print_sect_header(sname, shdr, i);	
+			 // print global symbols
+			 print_GlSymbols(eh,symT, strtab);								
+			}
+
+		//print relevant section header names
+ 		//print hex dump of relevant sections
+		if (shdr[i].sh_type==1 || shdr[i].sh_type==4 || shdr[i].sh_type==6 ||
+		    shdr[i].sh_type==9 || shdr[i].sh_type==11)
+			{
+			if (strcmp(".comment", &sname[shdr[i].sh_name])&&
+				strcmp(".line", &sname[shdr[i].sh_name])   &&
+				strcmp(".hash", &sname[shdr[i].sh_name])   &&
+				strcmp(".note", &sname[shdr[i].sh_name])   &&
+				strcmp(".directive", &sname[shdr[i].sh_name]) &&
+				strncmp(".debug",&sname[shdr[i].sh_name] ,6))
+				{
+				if ( ! ( (ignoreSomeSections) &&
+					 (strncmp(".rel.debug_", &sname[shdr[i].sh_name], 11)==0)
+				       )
+				   )
+					{
+					print_sect_header(sname, shdr, i);			
+			 	    hexdump(data,size,i);
+					}
+				}
+			}
+		if (printAll)		// displays extra information
+			{ 	
+			if(i!=0)
+			 	{
+		 	 	print_sect_header(sname, shdr, i);					
+		 		hexdump(data,size,i);				
+		 		}
+		 	}		
+		}
+	print_Summary(eh);	// print section names
+	return 0;
+}
+
+int read_ar_element_header(char* ptr)
+	{
+	int length = strtol(ptr+48,0,10);
+
+	if (strncmp(ptr+58, "\x60\x0A", 2) != 0)
+		{
+		return -1;
+		}
+	return length;
+	}
+	
+int main(int argc, char* argv[])
+	{
+	char* arg;
+	int numberOfOptions=2;
+	printAll=0;
+	ignoreSomeSections=0;
+	if (argc<2)
+		{
+		cout << "File not specified";
+		exit(1);
+		}
+	else if (argc>numberOfOptions+2)
+		{
+		cout << "Too many arguments";
+		exit(1);
+		}
+	else
+		{
+		for (int i=1;i<=argc-2;i++)
+			{
+			if ( strcmp("-i", argv[i]) ==0 )
+				{
+				ignoreSomeSections=1;
+				}
+			else if ( strcmp("-a", argv[i]) ==0 )
+				{
+				printAll=1;
+				}
+			}
+		arg=argv[argc-1];
+		}
+
+	struct stat results;
+	stat(arg, &results); 
+	FILE *elffile;
+	if((elffile  = fopen(arg, "rb" )) == NULL)
+   		{
+   		cout << "Error opening file " << arg;
+		exit (1); 
+   		}
+	char* buffer=new  char [results.st_size];//allocating enough memory 
+	fread( buffer, sizeof( char ), results.st_size, elffile);
+	fclose(elffile);						
+	
+	if (strncmp(buffer, "!<arch>\x0A", 8) != 0)
+		{
+		// plain ELF file
+		if (do_elf_file(buffer, arg) != 0)
+			{
+			return 1;
+			}
+		return 0;
+		}
+
+	// library file
+	char* nextfile = buffer;
+	int remainder = results.st_size;
+
+#define ADVANCE(n)	nextfile+=(n); remainder-=(n);
+
+	ADVANCE(8);
+		
+	while (remainder > 0)
+		{
+		int element_length = read_ar_element_header(nextfile);
+		ADVANCE(60);
+		
+		if (element_length < 0 || element_length > remainder)
+			{
+			cout << "Error: archive file corrupt";
+			return 1;
+			}
+		
+		if (strncmp(nextfile, "\x7F\x45\x4C\x46",4) == 0)
+			{
+			if (do_elf_file(nextfile, "archive_element") != 0)
+				{
+				return 1;
+				}
+			}
+		element_length += element_length&1;	// round up to a multiple of 2
+		ADVANCE(element_length);
+		}
+		
+	return 0;
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elftools/Makefile.genstubs	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,41 @@
+# Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+CXX	 = g++296
+CXXFLAGS = -I $(EPOCROOT)epoc32/include -I ./inc
+SOURCE	 = genstubs.cpp
+BLDDIR	 = ../build-genstubs
+OBJECT   = $(addprefix $(BLDDIR)/, $(notdir $(SOURCE:.cpp=.o)))
+TARGET	 = $(BLDDIR)/genstubs
+
+VPATH	 = ./genstubs
+
+_dummy := $(shell mkdir -p $(BLDDIR))
+
+all: $(TARGET)
+
+$(TARGET): $(OBJECT)
+	$(CXX) $^ -o $@
+	strip $@
+	
+$(OBJECT): $(BLDDIR)/%.o: %.cpp
+	$(CXX) $(CXXFLAGS) -c $< -o $@
+
+clean:
+	rm -f $(OBJECT) $(TARGET)
+	-rmdir $(BLDDIR)
+
+.PHONY: all clean
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elftools/Makefile.getdirective	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,41 @@
+# Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+CXX	 = g++296
+CXXFLAGS = -I $(EPOCROOT)epoc32/include -I ./inc
+SOURCE	 = getdirective.cpp
+BLDDIR	 = ../build-getdirective
+OBJECT   = $(addprefix $(BLDDIR)/, $(notdir $(SOURCE:.cpp=.o)))
+TARGET	 = $(BLDDIR)/getdirective
+
+VPATH	 = ./getexports
+
+_dummy := $(shell mkdir -p $(BLDDIR))
+
+all: $(TARGET)
+
+$(TARGET): $(OBJECT)
+	$(CXX) $^ -o $@
+	strip $@
+	
+$(OBJECT): $(BLDDIR)/%.o: %.cpp
+	$(CXX) $(CXXFLAGS) -c $< -o $@
+
+clean:
+	rm -f $(OBJECT) $(TARGET)
+	-rmdir $(BLDDIR)
+
+.PHONY: all clean
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elftools/Makefile.uidcrc	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,41 @@
+# Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+CXX	 = g++296
+CXXFLAGS = -D__LINUX__ -D__GCC32__ -I $(EPOCROOT)epoc32/include 
+SOURCE	 = uidcrc.cpp e32uid.cpp
+BLDDIR	 = ../build-uidcrc
+OBJECT   = $(addprefix $(BLDDIR)/, $(notdir $(SOURCE:.cpp=.o)))
+TARGET	 = $(BLDDIR)/uidcrc
+
+VPATH	 = ../e32uid
+
+_dummy := $(shell mkdir -p $(BLDDIR))
+
+all: $(TARGET)
+
+$(TARGET): $(OBJECT)
+	$(CXX) $^ -o $@
+	strip $@
+	
+$(OBJECT): $(BLDDIR)/%.o: %.cpp
+	$(CXX) $(CXXFLAGS) -c $< -o $@
+
+clean:
+	rm -f $(OBJECT) $(TARGET)
+	-rmdir $(BLDDIR)
+
+.PHONY: all clean
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elftools/def2dll.bat	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,306 @@
+:: Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
+:: All rights reserved.
+:: This component and the accompanying materials are made available
+:: under the terms of "Eclipse Public License v1.0"
+:: which accompanies this distribution, and is available
+:: at the URL "http://www.eclipse.org/legal/epl-v10.html".
+::
+:: Initial Contributors:
+:: Nokia Corporation - initial contribution.
+::
+:: Contributors:
+::
+:: Description:
+::
+
+@goto invoke
+
+#!perl
+#line 19
+
+use strict;
+use FindBin;		# for FindBin::Bin
+use Getopt::Long;
+use Cwd;
+
+my $PerlLibPath;    # fully qualified pathname of the directory containing our Perl modules
+
+BEGIN {
+# check user has a version of perl that will cope
+	require 5.005_03;
+# establish the path to the Perl libraries: currently the same directory as this script
+	$PerlLibPath = $FindBin::Bin;	# X:/epoc32/tools
+	$PerlLibPath =~ s/\//\\/g;	# X:\epoc32\tools
+	$PerlLibPath .= "\\";
+}
+
+use lib $PerlLibPath;
+use Defutl;
+
+my %opts = ();
+
+my $result = GetOptions(\%opts,
+						"path:s",
+						"bldpath:s",
+						"deffile:s",
+						"linkAs:s",
+						"import:s",
+						"export:s",
+						"absent:s",
+						"inter",
+						"sym_name_lkup"
+						);
+
+my $gPath = $opts{"path"}; # 0
+my $gBldPath = $opts{"bldpath"}; # 0
+my $compName = $opts{"import"}; # 1
+my $gDefFile = $opts{"deffile"}; # 2
+my $gDllName = $opts{"linkAs"};  # 3
+my $gExpFile = $opts{"export"};
+my $gLibFile = "$compName.lib" if $compName;
+my $gSymbolNameLookup = $opts{"sym_name_lkup"};
+
+my $oP = '--';
+
+my $floatingpointmodel = "${oP}fpu softvfp";
+my $interworkingp = $opts{"inter"};
+my $interworking = "${oP}apcs /nointer";
+$interworking = "${oP}apcs /inter" if ($interworkingp);
+
+my @objectFiles;
+
+&main;
+
+my @DefDataStruct;
+
+sub main ()
+{
+       unless($gDefFile)
+       {
+               usage();
+       }
+	my $FrzExportsOn=0;
+	eval { &Def_ReadFileL(\@DefDataStruct, $gDefFile, $FrzExportsOn); };
+	die $@ if $@;
+
+    &parseDefFile(\@DefDataStruct, $opts{absent}, $gDefFile);
+    &genExpFile($gPath, $gBldPath, $gExpFile) if $gExpFile;
+    &genLibFile($gPath, $gBldPath, $gLibFile, $gDllName) if $gLibFile;
+}
+
+# Usage subroutine
+sub usage( )
+{
+        print "\n";
+        print "DEF2DLL -Creates binary objects used to implement the Symbian OS DLL model\n";
+        print "\n";
+        print "Usage: def2dll --deffile=<file> [--path=<dir>] [--bldpath=<dir>] [--import=<file>]  [--linkas=<file>] [--inter] [--export=<file>] [--sym_name_lkup]\n";
+
+        print "\nOptions:\n";
+	print "\t--deffile=<file>   	 	: def file to be converted\n";
+        print "\t--path =<direcotry>		: destination path\n";
+        print "\t--bldpath=<direcotry>		: build path for dll\n";
+        print "\t--import=<file>			: import from file name\n";
+        print "\t--linkas=<file>     		: linkas to file name specified\n";
+        print "\t--inter                 	: enables interworking on ARM and THUMB\n";
+        print "\t--export=<file>			: export to filename\n";
+        print "\t--sym_name_lkup         	: symbol name ordinal number lookupç\n";
+        print "\n";
+        exit 1;
+}
+
+my %symbols = ();
+my %symbolIndexMap = ();
+my $exports = 0;
+
+sub parseDefFile ($$$)
+{
+    my ($defStructRef, $AbsentSubst, $defFile) = @_;
+	my $Ref;
+	foreach $Ref (@$defStructRef) {
+		next if (!$Ref);
+		next if (!defined ($$Ref{Ordinal}));
+		my $symbol = $$Ref{Name};
+		my $index = $$Ref{Ordinal};
+		my $rest = $$Ref{Comment};
+		my $symbolType = 'CODE';
+		if ($$Ref{Data} || ($symbol =~ /^(_ZTV|_ZTI|_ZTT)/)){
+			$symbolType = 'DATA';
+		}
+		else {
+			$exports = 1;
+		}
+		if ($symbols{$symbol} and !$$Ref{Absent}) {
+			warn "DEF2DLL - WARNING: $symbol duplicated in $defFile\n";
+		} else {
+			if ($$Ref{Absent}) {
+				$symbolIndexMap{$index} = $AbsentSubst;
+			} else {
+				$symbols{$symbol} = $symbolType;
+				$symbolIndexMap{$index} = $symbol;
+			}
+		}
+    }
+}
+
+sub genExpFile ($$$)
+{
+    my ($path, $bldpath, $expFile) = @_;
+    my $numkeys = keys %symbolIndexMap;
+    my $failed = 0;
+
+    open EXPFILE, ">$path\\$expFile.s" or
+ 		die "Error: can't create $path\\$expFile.s\n";
+
+    print EXPFILE "\tEXPORT __DLL_Export_Table__\n\n";
+    print EXPFILE "\tEXPORT |DLL\#\#ExportTable|\n\n";
+    print EXPFILE "\tEXPORT |DLL\#\#ExportTableSize|\n\n";
+    print EXPFILE "\tAREA ExportTable, CODE\n";
+
+
+    print EXPFILE "__DLL_Export_Table__\n";
+	if ($interworkingp) {
+	  print EXPFILE "\tBX lr\n";
+	} else {
+	  print EXPFILE "\tMOV pc, lr\n";
+	}
+
+    print EXPFILE "|DLL\#\#ExportTableSize|\n";
+    printf EXPFILE "\tDCD %d\n", $numkeys;
+	if($gSymbolNameLookup) {
+		print EXPFILE "\tDCD 0 \n";# This is the 0th ordinal for elftran to fill in.
+	}
+    print EXPFILE "|DLL\#\#ExportTable|\n";
+
+    my @orderedSyms;
+    my $maxIndex = 0;
+    my $index;
+    foreach $index (keys %symbolIndexMap) {
+		$maxIndex = $index if $index > $maxIndex;
+		$orderedSyms[$index] = $symbolIndexMap{$index};
+    }
+
+    print EXPFILE "\tPRESERVE8\n\n";
+    my $n;
+    for ($n = 1; $n <= $maxIndex ; $n++) {
+		my $entry = $orderedSyms[$n];
+		if ($entry) {
+			print EXPFILE "\tIMPORT $entry\n";
+			print EXPFILE "\tDCD $entry \t; @ $n\n";
+		} else {
+			warn "WARNING: missing entry at index $n\n";
+			print EXPFILE "\tDCD 0 ; missing symbol\n";
+		}
+    }
+
+
+    # create a .directive section
+    print EXPFILE "\n\n\tAREA |.directive|, READONLY, NOALLOC\n";
+    # Mark the section as armlink edit commands
+    print EXPFILE "\tDCB  \"#<SYMEDIT>#\\n\"\n"; 
+    # mark the imported symbol for 'dynamic' export
+    print EXPFILE "\tDCB  \"EXPORT DLL##ExportTable\\n\"\n";
+    print EXPFILE "\tDCB  \"EXPORT DLL##ExportTableSize\\n\"\n";
+
+    print EXPFILE "\tEND";
+    close EXPFILE;
+
+    $failed = system "armasm $floatingpointmodel $interworking -o $path\\$expFile.exp $path\\$expFile.s";
+    unlink ("$path\\$expFile.s") unless $failed;
+    die "Error: cant create $path\\$expFile.exp\n" if $failed;
+}
+
+my %DataSymbols = ();
+
+sub genVtblExportFile($$)
+{
+    my ($bldpath, $dllName) = @_;
+    my $FileName = "VtblExports";
+
+    open VTBLFILE, ">$bldpath\\$FileName.s" or
+		die "Error: can't create $bldpath\\$FileName.s\n";
+
+    print VTBLFILE "\tAREA |.directive|, NOALLOC, READONLY, ALIGN=2\n";
+    printf VTBLFILE "\tDCB \"\#\<SYMEDIT\>\#\\n\"\n";
+
+    my $symbol;
+    foreach $symbol (sort keys %DataSymbols) {
+		my $index = $DataSymbols{$symbol};
+		
+		$symbol =~ s/^"(.*)"$/$1/;	# remove enclosing quotes
+		printf VTBLFILE "\tDCB \"IMPORT \#\<DLL\>$dllName\#\<\\\\DLL\>%x AS $symbol \\n\"\n", $index;
+    }
+#    printf VTBLFILE "\tDCB \"\#\<\\\\VTBLSYMS\>\#\\n\"\n";
+    print VTBLFILE "\tEND";
+    close VTBLFILE;
+
+    my $failed = system "armasm $floatingpointmodel $interworking -o $bldpath\\$FileName.o $bldpath\\$FileName.s";
+    unlink ("$bldpath\\$FileName.s");
+    die "Error: cant create $bldpath\\$FileName.o\n" if $failed;
+    push @objectFiles, "$bldpath\\$FileName.o";
+}
+
+sub genLibFile ($$$$)
+{
+    my ($path, $bldpath, $libFile, $dllName) = @_;
+    my $tempFileName = "$bldpath\\$compName";
+    my $viaFileName = sprintf("$bldpath\\_t%x_via_.txt", time);
+    my $keyz = keys %symbolIndexMap;
+    my $failed = 0;
+    my $key;
+
+    if ($keyz > 0) {
+		open STUBGEN, "|genstubs" if $exports;
+		foreach $key (sort keys %symbolIndexMap) {
+			my $symbol = $symbolIndexMap{$key};
+			my $stubFileName = "$tempFileName-$key";
+			if ( $symbols{$symbol} eq 'DATA') {
+				$DataSymbols{$symbol} = $key;
+			} else {
+				printf STUBGEN "$stubFileName.o $symbol #<DLL>$dllName#<\\DLL>%x\n", $key;
+				push @objectFiles, "$stubFileName.o";
+			}
+		}
+		genVtblExportFile($bldpath, $dllName);
+    } else {
+		# create dummy stub so armar creates a .lib for us
+		open STUBGEN, "|genstubs";
+		print STUBGEN "$tempFileName-stub.o $tempFileName##stub $dllName##dummy\n";
+		push @objectFiles, "$tempFileName-stub.o";
+    }
+    close STUBGEN;
+
+    open VIAFILE, ">$viaFileName" or
+		die "Error: can't create VIA fie $viaFileName\n";
+
+    print VIAFILE "${oP}create \"$path\\$libFile\"\n";
+    my $objectFile;
+    foreach $objectFile (@objectFiles) {
+		print VIAFILE "\"$objectFile\"\n";
+    }
+    close VIAFILE;
+
+    $failed = system( "armar ${oP}via $viaFileName");
+    push @objectFiles, $viaFileName;
+    unlink @objectFiles;
+    die "Error: can't create $path\\$libFile\n" if $failed;
+}
+
+__END__
+
+# Tell emacs that this is a perl script even 'though it has a .bat extension
+# Local Variables:
+# mode:perl
+# tab-width:4
+# End:
+
+:invoke
+@perl -x -S def2dll.bat %*
+
+
+
+
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elftools/def2dll.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,288 @@
+# Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+use strict;
+use FindBin;		# for FindBin::Bin
+use Getopt::Long;
+use Cwd;
+
+my $PerlLibPath;    # fully qualified pathname of the directory containing our Perl modules
+
+BEGIN {
+# check user has a version of perl that will cope
+	require 5.005_03;
+# establish the path to the Perl libraries: currently the same directory as this script
+	$PerlLibPath = $FindBin::Bin;	# X:/epoc32/tools
+	if ($^O eq "MSWin32")
+	{
+		$PerlLibPath =~ s/\//\\/g;	# X:\epoc32\tools
+		$PerlLibPath .= "\\";
+	}	
+}
+
+use lib $PerlLibPath;
+use Defutl;
+
+my %opts = ();
+
+my $result = GetOptions(\%opts,
+						"path:s",
+						"bldpath:s",
+						"deffile:s",
+						"linkAs:s",
+						"import:s",
+						"export:s",
+						"absent:s",
+						"inter",
+						"sym_name_lkup"
+						);
+
+my $gPath = $opts{"path"}; # 0
+my $gBldPath = $opts{"bldpath"}; # 0
+my $compName = $opts{"import"}; # 1
+my $gDefFile = $opts{"deffile"}; # 2
+my $gDllName = $opts{"linkAs"};  # 3
+my $gExpFile = $opts{"export"};
+my $gLibFile = "$compName.lib" if $compName;
+my $gSymbolNameLookup = $opts{"sym_name_lkup"};
+
+my $oP = '--';
+
+my $floatingpointmodel = "${oP}fpu softvfp";
+my $interworkingp = $opts{"inter"};
+my $interworking = "${oP}apcs /nointer";
+$interworking = "${oP}apcs /inter" if ($interworkingp);
+
+my @objectFiles;
+
+&main;
+
+my @DefDataStruct;
+
+sub main ()
+{
+       unless($gDefFile)
+       {
+               usage();
+       }
+	my $FrzExportsOn=0;
+	eval { &Def_ReadFileL(\@DefDataStruct, $gDefFile, $FrzExportsOn); };
+	die $@ if $@;
+
+    &parseDefFile(\@DefDataStruct, $opts{absent}, $gDefFile);
+    &genExpFile($gPath, $gBldPath, $gExpFile) if $gExpFile;
+    &genLibFile($gPath, $gBldPath, $gLibFile, $gDllName) if $gLibFile;
+}
+
+# Usage subroutine
+sub usage( )
+{
+        print "\n";
+        print "DEF2DLL -Creates binary objects used to implement the Symbian OS DLL model\n";
+        print "\n";
+        print "Usage: def2dll --deffile=<file> [--path=<dir>] [--bldpath=<dir>] [--import=<file>]  [--linkas=<file>] [--inter] [--export=<file>] [--sym_name_lkup]\n";
+
+        print "\nOptions:\n";
+	print "\t--deffile=<file>   	 	: def file to be converted\n";
+        print "\t--path =<direcotry>		: destination path\n";
+        print "\t--bldpath=<direcotry>		: build path for dll\n";
+        print "\t--import=<file>			: import from file name\n";
+        print "\t--linkas=<file>     		: linkas to file name specified\n";
+        print "\t--inter                 	: enables interworking on ARM and THUMB\n";
+        print "\t--export=<file>			: export to filename\n";
+        print "\t--sym_name_lkup         	: symbol name ordinal number lookupç\n";
+        print "\n";
+        exit 1;
+}
+
+my %symbols = ();
+my %symbolIndexMap = ();
+my $exports = 0;
+
+sub parseDefFile ($$$)
+{
+    my ($defStructRef, $AbsentSubst, $defFile) = @_;
+	my $Ref;
+	foreach $Ref (@$defStructRef) {
+		next if (!$Ref);
+		next if (!defined ($$Ref{Ordinal}));
+		my $symbol = $$Ref{Name};
+		my $index = $$Ref{Ordinal};
+		my $rest = $$Ref{Comment};
+		my $symbolType = 'CODE';
+		if ($$Ref{Data} || ($symbol =~ /^(_ZTV|_ZTI|_ZTT)/)){
+			$symbolType = 'DATA';
+		}
+		else {
+			$exports = 1;
+		}
+		if ($symbols{$symbol} and !$$Ref{Absent}) {
+			warn "DEF2DLL - WARNING: $symbol duplicated in $defFile\n";
+		} else {
+			if ($$Ref{Absent}) {
+				$symbolIndexMap{$index} = $AbsentSubst;
+			} else {
+				$symbols{$symbol} = $symbolType;
+				$symbolIndexMap{$index} = $symbol;
+			}
+		}
+    }
+}
+
+sub genExpFile ($$$)
+{
+    my ($path, $bldpath, $expFile) = @_;
+    my $numkeys = keys %symbolIndexMap;
+    my $failed = 0;
+
+    open EXPFILE, ">$path\\$expFile.s" or
+		die "Error: can't create $path\\$expFile.s\n";
+
+    print EXPFILE "\tEXPORT __DLL_Export_Table__\n\n";
+    print EXPFILE "\tEXPORT |DLL\#\#ExportTable|\n\n";
+    print EXPFILE "\tEXPORT |DLL\#\#ExportTableSize|\n\n";
+    print EXPFILE "\tAREA ExportTable, CODE\n";
+
+
+    print EXPFILE "__DLL_Export_Table__\n";
+	if ($interworkingp) {
+	  print EXPFILE "\tBX lr\n";
+	} else {
+	  print EXPFILE "\tMOV pc, lr\n";
+	}
+
+    print EXPFILE "|DLL\#\#ExportTableSize|\n";
+    printf EXPFILE "\tDCD %d\n", $numkeys;
+	if($gSymbolNameLookup) {
+		print EXPFILE "\tDCD 0 \n";# This is the 0th ordinal for elftran to fill in.
+	}
+    print EXPFILE "|DLL\#\#ExportTable|\n";
+
+    my @orderedSyms;
+    my $maxIndex = 0;
+    my $index;
+    foreach $index (keys %symbolIndexMap) {
+		$maxIndex = $index if $index > $maxIndex;
+		$orderedSyms[$index] = $symbolIndexMap{$index};
+    }
+
+    print EXPFILE "\tPRESERVE8\n\n";
+    my $n;
+    for ($n = 1; $n <= $maxIndex ; $n++) {
+		my $entry = $orderedSyms[$n];
+		if ($entry) {
+			print EXPFILE "\tIMPORT $entry\n";
+			print EXPFILE "\tDCD $entry \t; @ $n\n";
+		} else {
+			warn "WARNING: missing entry at index $n\n";
+			print EXPFILE "\tDCD 0 ; missing symbol\n";
+		}
+    }
+
+
+    # create a .directive section
+    print EXPFILE "\n\n\tAREA |.directive|, READONLY, NOALLOC\n";
+    # Mark the section as armlink edit commands
+    print EXPFILE "\tDCB  \"#<SYMEDIT>#\\n\"\n"; 
+    # mark the imported symbol for 'dynamic' export
+    print EXPFILE "\tDCB  \"EXPORT DLL##ExportTable\\n\"\n";
+    print EXPFILE "\tDCB  \"EXPORT DLL##ExportTableSize\\n\"\n";
+
+    print EXPFILE "\tEND";
+    close EXPFILE;
+
+    $failed = system "armasm $floatingpointmodel $interworking -o $path\\$expFile.exp $path\\$expFile.s";
+    unlink ("$path\\$expFile.s") unless $failed;
+    die "Error: cant create $path\\$expFile.exp\n" if $failed;
+}
+
+my %DataSymbols = ();
+
+sub genVtblExportFile($$)
+{
+    my ($bldpath, $dllName) = @_;
+    my $FileName = "VtblExports";
+
+    open VTBLFILE, ">$bldpath\\$FileName.s" or
+		die "Error: can't create $bldpath\\$FileName.s\n";
+
+    print VTBLFILE "\tAREA |.directive|, NOALLOC, READONLY, ALIGN=2\n";
+    printf VTBLFILE "\tDCB \"\#\<SYMEDIT\>\#\\n\"\n";
+
+    my $symbol;
+    foreach $symbol (sort keys %DataSymbols) {
+		my $index = $DataSymbols{$symbol};
+		
+		$symbol =~ s/^"(.*)"$/$1/;	# remove enclosing quotes
+		printf VTBLFILE "\tDCB \"IMPORT \#\<DLL\>$dllName\#\<\\\\DLL\>%x AS $symbol \\n\"\n", $index;
+    }
+#    printf VTBLFILE "\tDCB \"\#\<\\\\VTBLSYMS\>\#\\n\"\n";
+    print VTBLFILE "\tEND";
+    close VTBLFILE;
+
+    my $failed = system "armasm $floatingpointmodel $interworking -o $bldpath\\$FileName.o $bldpath\\$FileName.s";
+    unlink ("$bldpath\\$FileName.s");
+    die "Error: cant create $bldpath\\$FileName.o\n" if $failed;
+    push @objectFiles, "$bldpath\\$FileName.o";
+}
+
+sub genLibFile ($$$$)
+{
+    my ($path, $bldpath, $libFile, $dllName) = @_;
+    my $tempFileName = "$bldpath\\$compName";
+    my $viaFileName = sprintf("$bldpath\\_t%x_via_.txt", time);
+    my $keyz = keys %symbolIndexMap;
+    my $failed = 0;
+    my $key;
+
+    if ($keyz > 0) {
+		open STUBGEN, "|$ENV{'EPOCROOT'}/epoc32/tools/genstubs" if $exports;
+		foreach $key (sort keys %symbolIndexMap) {
+			my $symbol = $symbolIndexMap{$key};
+			my $stubFileName = "$tempFileName-$key";
+			if ( $symbols{$symbol} eq 'DATA') {
+				$DataSymbols{$symbol} = $key;
+			} else {
+				printf STUBGEN "$stubFileName.o $symbol #<DLL>$dllName#<\\DLL>%x\n", $key;
+				push @objectFiles, "$stubFileName.o";
+			}
+		}
+		genVtblExportFile($bldpath, $dllName);
+    } else {
+		# create dummy stub so armar creates a .lib for us
+		open STUBGEN, "|$ENV{'EPOCROOT'}/epoc32/tools/genstubs";
+		print STUBGEN "$tempFileName-stub.o $tempFileName##stub $dllName##dummy\n";
+		push @objectFiles, "$tempFileName-stub.o";
+    }
+    close STUBGEN;
+
+    open VIAFILE, ">$viaFileName" or
+		die "Error: can't create VIA fie $viaFileName\n";
+
+    print VIAFILE "${oP}create \"$path\\$libFile\"\n";
+    my $objectFile;
+    foreach $objectFile (@objectFiles) {
+		print VIAFILE "\"$objectFile\"\n";
+    }
+    close VIAFILE;
+
+    $failed = system( "armar ${oP}via $viaFileName");
+    push @objectFiles, $viaFileName;
+    unlink @objectFiles;
+    die "Error: can't create $path\\$libFile\n" if $failed;
+}
+
+__END__
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elftools/deputil.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,56 @@
+# Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+use FindBin;		# for FindBin::Bin
+use Getopt::Long;
+
+# establish the path to the Perl binaries
+BEGIN {
+	require 5.005_03;				# check user has a version of perl that will cope
+	$PerlBinPath = $FindBin::Bin;	# X:/epoc32/tools
+	$PerlBinPath =~ s/\//\\/g;		# X:\epoc32\tools
+}
+use lib $PerlBinPath;
+
+use DepUtil;
+use Armutl;
+
+
+my %opts = ();
+
+my $result = GetOptions(\%opts,
+						"inter",
+						"path:s",
+						"libpath:s",
+						"out:s",
+						"verbose"
+						);
+my $gPath = $opts{"path"};
+my $glibPath = $opts{"libpath"};
+my $gOutFile = $opts{"out"};
+my $gVerbose = $opts{"verbose"};
+my @libs;
+my $lib;
+my $aCnt = 0;
+while($ARGV[$aCnt]){
+	push @libs, $ARGV[$aCnt++];
+}
+my $oP = '--';
+$oP = '-' if (Armutl_RVCTMajorVersion() == 2 && Armutl_RVCTMinorVersion() < 2);
+my $interworkingp = $opts{"inter"};
+my $interworking = "${oP}apcs /nointer";
+$interworking = "${oP}apcs /inter" if ($interworkingp);
+
+&GenDependencies($interworking, $gOutFile, $gPath, $glibPath, \@libs, $gVerbose);
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elftools/deputil.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,79 @@
+# Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+package DepUtil;
+
+require Exporter;
+@ISA=qw(Exporter);
+
+@EXPORT=qw(
+	GenDependencies
+);
+use strict;
+my ($interworking, $outfile, $genpath, $libpath, $librariesRef, $gVerbose);
+sub GenDependencies {
+	($interworking, $outfile, $genpath, $libpath, $librariesRef, $gVerbose) = @_;
+	my @dsoList;
+	foreach my $alib (@$librariesRef) {
+#	.lib files are archive file. Get the corresponding dso file which is in ELF.
+		if($alib =~ /(.*)\.lib$/) {
+			my $dso = "$1.dso";
+			if(-e $dso){
+				push @dsoList, $dso;
+				}
+		}
+		elsif($alib =~ /.*\.dso$/) {
+			if(-e $alib){
+				push @dsoList, $alib;
+				}
+		}
+	}
+	my @linkAsList=();
+	foreach my $dso (@dsoList) {
+#	Get the linkas names of the libraries
+		open PIPE, "getexports -s $dso |";
+		while(<PIPE>) {
+			if($_ =~ /(\S+)/){
+			push @linkAsList, $1;
+			}
+	 	}
+		close PIPE;
+	}
+	GenLinkerSteeringFileForDeps(\@linkAsList) if($outfile);
+}
+
+sub GenLinkerSteeringFileForDeps {
+#	Generate the linker steering file to indicate in the final ELF file 
+#	about the static dependencies. This list gives the list and order of
+#	library names in which name lookup shall happen. Whether they were
+#	actually linked-in in the final ELF shall be determined by the import
+#	table. The import table fails to maintain the linking order and is
+#	achieved through these linker directives.
+
+	my ($LinkAsNamesRef) = @_;
+	my $depfile = "$genpath\\$outfile.dep";
+	open OUTFILE, ">$depfile" or
+		die "Can't create file $depfile\n";
+	print OUTFILE "; This is a generated file for Static Dependency listing";
+	print OUTFILE "; causing the linker to create DT_NEEDED tag(s) in the dynamic array\n\n";
+
+	foreach my $name (@$LinkAsNamesRef) {
+		print OUTFILE "\n\tREQUIRE \"$name\"";
+	}
+	print OUTFILE "\n";
+	close OUTFILE;
+}
+
+1;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elftools/elf2inf.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,220 @@
+# Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+use Getopt::Long;
+use strict;
+
+my $outputFileName = "default.inf";
+my $discard_noncallable_exports = 0;
+my @inputFiles;
+my @exports = ();
+my %symsSeen = ();
+
+#
+
+&args;
+&main;
+
+
+sub args ()
+{
+    my %opts = ();
+    my $result = GetOptions(\%opts, "output:s", "discard_noncallable_exports");
+    $outputFileName = $opts{'output'} if $opts{'output'} ;
+    $discard_noncallable_exports = 1 if $opts{'discard_noncallable_exports'};
+    @inputFiles = @ARGV;
+}
+
+sub main ()
+{
+
+    foreach my $file (@inputFiles){
+	ReadFromElf($file);
+    }
+    open( INFFILE, ">$outputFileName") or 
+	die "Error: can't open $outputFileName\n";
+    foreach my $export (sort {$a cmp $b } @exports) {
+	print INFFILE $export;
+    }
+    close INFFILE;
+}
+
+sub ReadFromElf ($)
+{
+    my ($filename) = @_;
+    my $line;
+    %symsSeen = ();
+    open(FROMELF, "getexports $filename|")
+	or die "Error: can't open $filename\n";
+
+    while ($_ = <FROMELF> ) 
+    {
+	    if ($_ =~ /^\s*(\S+)\s+((DATA)\s+(\d+))?\s*$/) {
+		my $sym = $1;
+		my $data = "";
+		unless ($symsSeen{$sym}) { 
+		    $symsSeen{$sym} = $sym;
+			
+			if($2){
+#			Indicate if this is a data symbol along with its size.
+			if($4){
+				$data = " DATA $4";
+				}
+			}
+
+		    if ($sym =~ /^_ZTV/ && !$discard_noncallable_exports) { # allow vtables thru
+			push @exports, " _$sym (#<VT>#)\n";
+		    } elsif ($sym =~ /^_ZTI/ && !$discard_noncallable_exports) { # allow type info  thru: comment out if we don't want it
+			push @exports, " _$sym (#<TI>#)\n";
+		    } elsif ($sym =~ /^_ZThn\d/) { # allow thunk  thru
+			push @exports, " _$sym (#<thunk>#)\n";
+		    } elsif ($sym =~ /^_ZT/) { # punt all other type stuff: shouldn't be exported anyway
+			next;
+		    } elsif (C9Ctor($sym)) { #work around non-export of constructors
+			PushCtors($sym, $filename);
+		    } elsif (D9Dtor($sym)) { #work around non-export of constructors
+			PushDtors($sym, $filename);
+		    } else {
+			push @exports, " _$sym$data\n";
+		    }
+		}
+	    }
+	}
+    close FROMELF;
+}
+
+sub PushSym($$)
+{
+    my ($s, $f) = @_;
+    unless ($symsSeen{$s}) {
+	$symsSeen{$s} = $s;
+	push @exports, " _$s\n";
+    }
+}
+
+sub simpleC9Ctor($)
+{
+    my ($sym) = @_;
+    if ($sym =~ /_ZN(\d+)(.+)C9E.*$/) {
+	# Really check it
+	return 1 if ($1 == length($2));
+    } 
+    return 0;
+}
+
+sub simpleD9Ctor($)
+{
+    my ($sym) = @_;
+    if ($sym =~ /_ZN(\d+)(.+)D9E.*$/) {
+	# Really check it
+	return 1 if ($1 == length($2));
+    } 
+    return 0;
+}
+
+sub C9Ctor($)
+{
+    my ($sym) = @_;
+    return 1 if simpleC9Ctor($sym);
+    if ($sym =~ /_ZN(\d+)(.+)C9E.*$/) {
+	my $l = $1;
+	my $s = $2;
+	my $t_params = substr $s, $l;
+	return 1 if ($t_params =~ /^I.*I$/); # not totally convincing check for templated ctor
+    }
+    return 0;
+}
+
+sub PushCtors($$)
+{
+    my ($sym, $filename) = @_;
+    return PushSimpleCtors($sym, $filename) if (simpleC9Ctor($sym));
+
+    my ($sym, $filename) = @_;
+    $sym =~ /(_ZN\d+.+IC)9E.*$/o;
+    my $s = $1;
+    my $i = length $s;
+    my $e = substr $sym, $i + 1;
+    my $C1 = "$s"."1"."$e";
+    my $C2 = "$s"."2"."$e";
+    push @exports, " _$sym\n";
+    PushSym($C1, $filename);
+    PushSym($C2, $filename);
+
+} 
+
+sub PushSimpleCtors($$)
+{
+    my ($sym, $filename) = @_;
+    $sym =~ /(_ZN\d+.+C)9E.*$/o;
+    my $s = $1;
+    my $i = length $s;
+    my $e = substr $sym, $i + 1;
+    my $C1 = "$s"."1"."$e";
+    my $C2 = "$s"."2"."$e";
+    push @exports, " _$sym\n";
+    PushSym($C1, $filename);
+    PushSym($C2, $filename);
+}
+
+sub D9Dtor($)
+{
+    my ($sym) = @_;
+    return 1 if simpleD9Ctor($sym);
+    if ($sym =~ /_ZN(\d+)(.+)D9E.*$/) {
+	my $l = $1;
+	my $s = $2;
+	my $t_params = substr $s, $l;
+	return 1 if ($t_params =~ /^I.*I$/); # not totally convincing check for templated ctor
+    }
+    return 0;
+}
+
+sub PushDtors($$)
+{
+    my ($sym, $filename) = @_;
+    return PushSimpleDtors($sym, $filename) if (simpleD9Ctor($sym));
+
+    my ($sym, $filename) = @_;
+    $sym =~ /(_ZN\d+.+ID)9E.*$/o;
+    my $s = $1;
+    my $i = length $s;
+    my $e = substr $sym, $i + 1;
+    my $D0 = "$s"."0"."$e";
+    my $D1 = "$s"."1"."$e";
+    my $D2 = "$s"."2"."$e";
+    push @exports, " _$sym\n";
+    PushSym($D0, $filename);
+    PushSym($D1, $filename);
+    PushSym($D2, $filename);
+} 
+
+
+sub PushSimpleDtors($$)
+{
+    my ($sym, $filename) = @_;
+    $sym =~ /(_ZN\d+.+D)9E.*$/o;
+    my $s = $1;
+    my $i = length $s;
+    my $e = substr $sym, $i + 1;
+    my $D0 = "$s"."0"."$e";
+    my $D1 = "$s"."1"."$e";
+    my $D2 = "$s"."2"."$e";
+    push @exports, " _$sym\n";
+    PushSym($D0, $filename);
+    PushSym($D1, $filename);
+    PushSym($D2, $filename);
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elftools/elftran/elf_dlld.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,914 @@
+// Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// ELFDLLD.CPP
+// 
+//
+
+
+#include <string.h>
+#include <stdlib.h>
+#include <e32std.h>
+#include <e32std_private.h>
+#include <tools/elfdefs.h>
+#include "elfdll.h"
+#include "elffile.h"
+#include "h_utl.h"
+#include <e32ldr.h>
+
+ELFFile::ELFDllData::ELFDllData(ELFFile * f) :
+        iElfFile(f), iDynStrTab(0), iDynStrTabSize(0), iDynSymTab(0),
+		iSymSize(0), iRela(0), iRelaSz(0), iRelaEnt(0), 
+		iRel(0), iRelSz(0), iRelEnt(0),
+		iHashTable(0),iDllHead(0), iDllTail(0), 
+		iNumberOfImports(0), iNumberOfExports(0), iNumberOfImportDlls(0),
+		iStringTableSize(0), iNumberOfRelocs(0), iNumberOfCodeRelocs(0), 
+		iNumberOfDataRelocs(0), iNamedLookupEnabled(0), iNamedExportSymbolHead(0), 
+		iNamedExportCount(0), iSymStringTableSize(0),iStringNameOffset(0), iOrdZeroRec(0), 
+		iDepRecords(0), iDepRecordsTail(0),iNeededDllNames(0),
+		iNeededDllNamesTail(0)
+		{
+		}
+
+ELFFile::ELFDllData::~ELFDllData()
+	{
+		delete iOrdZeroRec;
+		delete iDepRecords;
+		delete iNeededDllNames;
+	}
+
+TBool ELFFile::ELFDllData::Init()
+	{
+	// process imported symbols
+	// There will be at least one relocation (assumed to be Elf32_Rel) for each such symbol.
+	// S iterate over relocations looking for DLL symbols and add them to the record of
+	// of import info.
+	TInt nrelocs = iRelSz/iRelEnt;
+	TInt SrcSegIdx = -1;
+	TInt errors = 0;
+
+	for (TInt idx = 0; idx < nrelocs; idx++)
+			{
+			Elf32_Rel * rel = &iRel[idx];
+			TUint relType = ELF32_R_TYPE(rel->r_info);
+
+			if (relType == R_ARM_ABS32)      
+					{	
+					TInt symIdx = ELF32_R_SYM(rel->r_info);
+					Elf32_Sym * sym = &iDynSymTab[symIdx];
+					DllSymbol * dllSym = DllSymbolP(sym);
+					if (dllSym) 
+							{
+							dllSym->iRel = rel;
+							dllSym->iSegment = iElfFile->GetSegment(SrcSegIdx);
+							if (!AddSymbol(dllSym)) return EFalse;
+							}
+					else errors++;
+					}
+			else if (relType == R_ARM_RABS32)
+					{
+					iNumberOfRelocs++;
+					if (iElfFile->CodeSegmentP(SrcSegIdx)) iNumberOfCodeRelocs++;
+					else iNumberOfDataRelocs++;
+					}
+			else if (relType == R_ARM_RBASE)
+				    {
+					SrcSegIdx = ELF32_R_SYM(rel->r_info);
+					if (SrcSegIdx) SrcSegIdx--;
+					}
+			else 
+				    {
+					// Gives error with all other Relocation types..
+					TInt symIdx = ELF32_R_SYM(rel->r_info);
+					Elf32_Sym * s = &iDynSymTab[symIdx];
+					char * symName = ELFADDR(char,iDynStrTab,s->st_name);
+					Print(EPeError, "Unresolved symbol: %s\n", symName);
+					errors++;
+					}
+			}
+	// Set up export info
+	if (InitExportInfo())
+	       {
+	       TText * sym = (TText *)"_E32Startup";
+	       // If _E32Startup is defined then this is not a DLL
+	       iImageIsDll = !iElfFile->SymbolPresent(sym);
+	       }
+	if (errors > 0) return EFalse;
+	return ETrue;
+	}
+
+TBool ELFFile::ELFDllData::ParseDllSymbol(Elf32_Sym * s, char *& dll, TUint& len, TInt& ord)
+    {
+	char * sym = ELFADDR(char,iDynStrTab,s->st_name);
+	if (!strncmp(sym, DLLSYMPREFIX, strlen(DLLSYMPREFIX)))
+			{
+			dll = sym + strlen(DLLSYMPREFIX);
+			TUint lim = strlen(dll);
+			TUint index = strcspn(dll, DLLSYMPREFIX0);
+			if ((index + strlen(DLLSYMSUFFIX)) < lim)
+					{
+					len = index;
+					char * dllSuffix = dll+index;
+					char * match = DLLSYMSUFFIX;
+					int suflen = strlen(DLLSYMSUFFIX);
+					if (!strncmp(dllSuffix, match, suflen))
+							{
+							char * ordString = dll+index+suflen;
+							char * final;
+							TUint X = strtoul(ordString, &final, ORDBASE);
+							if (ordString != final)
+									{
+									ord = (TInt)X;
+									return ETrue;
+									}
+			     
+							}
+					}
+			}
+	dll = 0;
+	len = 0;
+	ord = -1;
+	return EFalse;
+	}
+
+ELFFile::ELFDllData::DllSymbol * ELFFile::ELFDllData::DllSymbolP(Elf32_Sym * s)
+    {
+	char * dllName;
+	TUint nameLen;
+	TInt symOrd;
+	if (ParseDllSymbol(s, dllName, nameLen, symOrd))
+	       {
+	       DllSymbol * ds = new DllSymbol(dllName, nameLen, symOrd);
+	       if (ds) return ds;
+	       Print(EPeError, "Out of memory.\n");
+	       return NULL;
+	       }
+	// If we get here its not a valid 'dll symbol' and so it is an unresolved symbol
+	char * sym = ELFADDR(char,iDynStrTab,s->st_name);
+	Print(EPeError, "Unresolved symbol: %s\n", sym);
+    return NULL;
+	}
+
+TBool ELFFile::ELFDllData::AddSymbol(ELFFile::ELFDllData::DllSymbol * s)
+    {
+	DllRec * aDll = NULL;
+     
+	for (DllRec * r = iDllHead; r != NULL; r = r->iNext)
+			{
+			if (!strncmp(s->iDll, r->iName, s->iLen))
+					{
+					aDll = r;
+					break;
+					}
+			}
+	if (aDll)
+			{
+		    iNumberOfImports++;
+		    aDll->AddSymbol(s);
+			return ETrue;
+			}
+	else
+			{
+			aDll = new DllRec(s->iDll, s->iLen, s);
+			if (aDll)
+					{
+					if (!iDllHead) 
+							{
+							iDllHead = iDllTail = aDll;
+							}
+					else
+							{
+							iDllTail->iNext = aDll;
+							iDllTail = aDll;
+							}
+					iStringTableSize += (s->iLen + 1);
+	      			iNumberOfImportDlls++;
+					iNumberOfImports++;
+					return ETrue;
+					}
+			else
+					{
+					Print(EPeError, "Out of memory.\n");
+					return EFalse;
+					}
+			}
+	}
+
+void ELFFile::ELFDllData::DllRec::AddSymbol(ELFFile::ELFDllData::DllSymbol * s)
+	{
+	nImports++;
+    iTail->iNext = s;
+    iTail = s;
+    }
+
+static unsigned long elf_hash(const unsigned char *name)
+    {
+    unsigned long h, g;
+    for (h = 0; *name != 0; ++name)
+	        {
+			h = (h << 4) + *name;
+			g = h & 0xf0000000;
+			if (g != 0) h ^= g >> 24;
+			h &= ~g;
+			}
+	return h;
+    }
+
+Elf32_Word ELFFile::ELFDllData::FindSymbolIndex(TText * s)
+    {
+	TUint h = elf_hash(s);
+	TUint nb = iHashTable[0].nBuckets;
+	TUint probe = h%nb;
+	Elf32_Sword * bucket = ELFADDR(Elf32_Sword, iHashTable, sizeof(Elf32_HashTable));
+	Elf32_Sword * chain = ELFADDR(Elf32_Sword, bucket, nb * sizeof(Elf32_Sword));
+	Elf32_Sword idx = bucket[probe];
+
+	do 	
+			{
+			if (!strcmp(ELFADDR(char, iDynStrTab, iDynSymTab[idx].st_name), (char *)s)) return idx;
+			idx = chain[idx];
+			} while (idx > 0);
+	if (idx == 0) idx = -1;
+	return idx;
+	}
+
+TBool ELFFile::ELFDllData::InitExportInfo()
+	{
+	memset(&iSymInfoHdr, 0, sizeof(iSymInfoHdr));
+	TText * exp = (TText *)EXPORTTABLENAME;
+	if ((iExportTableSymIdx = FindSymbolIndex(exp)) != -1)
+			{
+			TText * exps = (TText *)EXPORTTABLESIZENAME;
+			iExportTableSizeSymIdx = FindSymbolIndex(exps);
+			//TUint offset = iDynSymTab[iExportTableSizeSymIdx].st_value - (TUint)code;
+			Elf32_Word * pNumberOfExports = iElfFile->CodePtrFromAddr(iDynSymTab[iExportTableSizeSymIdx].st_value);
+			iNumberOfExports = * pNumberOfExports;
+			iImageIsDll = ETrue;
+			return ETrue;
+			}
+	else iImageIsDll = EFalse;
+	return EFalse;
+	}
+
+TInt ELFFile::ELFDllData::NumberOfImports(void)
+    {
+	return iNumberOfImports;
+	}
+
+TInt ELFFile::ELFDllData::NumberOfExports(void)
+    {
+	return iNumberOfExports;
+	}
+
+TInt ELFFile::ELFDllData::NumberOfImportDlls(void)
+    {
+	return iNumberOfImportDlls;
+	}
+
+TInt ELFFile::ELFDllData::NumberOfRelocs()
+	{
+	return iNumberOfRelocs;
+	}
+
+char * ELFFile::ELFDllData::CreateImportSection(TInt &aSize)
+	{
+	if (!iNumberOfImports)
+			{
+			aSize = 0;
+			return 0;
+			}
+
+	TInt byteSize = sizeof(E32ImportSection) + 
+	                (sizeof(E32ImportBlock) * iNumberOfImportDlls) +
+					(sizeof(TUint) * iNumberOfImports) +
+					iStringTableSize;
+	if(iNamedLookupEnabled)
+	{
+		// 0th ordinal of each DLL imported from.
+		byteSize += (sizeof(TUint) * iNumberOfImportDlls);
+	}
+	char * newSection = new char[byteSize];
+
+	if (!newSection)
+	       {
+	       Print(EPeError, "Failed to allocate new import section.\n");
+	       aSize = 0;
+	       return 0;
+	       }
+
+	((E32ImportSection *)newSection)->iSize = byteSize;
+
+	// used to point to current ImportBlock
+	E32ImportBlock * bp = ELFADDR(E32ImportBlock, newSection, sizeof(E32ImportSection));
+	// used to point to current import relocation entry
+	TUint * rp;
+	// used to point to current location in string table
+	char * sp = ELFADDR(char, newSection, (byteSize - iStringTableSize));
+	OrdZeroRecord *aDep = iDepRecords;
+
+	for (DllRec * dll = iDllHead; dll != NULL ; dll = dll->iNext, bp = (E32ImportBlock *)rp )
+	        {
+			// set up the offset from E32ImportBlock.iOffsetOfDllName to the
+			// corresponding  string table location
+			bp->iOffsetOfDllName = (sp - (char *)newSection);
+			bp->iNumberOfImports = dll->nImports;
+			if(iNamedLookupEnabled)
+			{
+				bp->iNumberOfImports++;
+			}
+
+			// copy the DLL name to the string table
+			memcpy(sp , dll->iName, dll->iLen);
+			sp[dll->iLen] = 0;
+			sp = sp + dll->iLen + 1;
+
+			// sort out the import 'relocs'
+			rp = ELFADDR(TUint, bp, sizeof(E32ImportBlock));
+		
+			for (DllSymbol * sym = dll->iHead; sym != NULL; sym = sym->iNext, rp++)
+				    {
+					Elf32_Phdr * segment = sym->iSegment;
+					Elf32_Addr segBase = segment->p_vaddr;
+
+					// sanity check: segment should be the code segment
+					if (!iElfFile->CodeSegmentP(segment))
+							{
+							Print(EPeError, "Import relocation does not refer to code segment.\n");
+							aSize = 0;
+							return 0;
+							}
+
+					// This field is misnamed because it is actually given as a virtual address in 
+					// dynamic relocations
+					Elf32_Addr dynOffset = sym->iRel->r_offset;
+					//So this is the 'real' offset of the reloc in  the segment in which it occurs
+					Elf32_Addr segOffset = dynOffset - segBase;
+					TUint * relocAddr = ELFADDR(TUint, iElfFile->ELFFileBase(), (segment->p_offset + segOffset));
+					// The only non-zero reloc vals we expect are for vtables.
+					// We store there reloc offset in the top 16 bits of the 'reloc info'.
+					// NB the ELF reloc values should only ever be multiples of 4. So we could optimize here,
+					// but we won't.
+					TUint relocVal = *relocAddr;
+					TUint importOrdinal = sym->iOrd;
+					if (relocVal > 0xFFFF)
+							Print(EPeError, "ELF relocation exceeds E32Image limit of 64K.\n");
+					if (importOrdinal > 0xFFFF)
+							Print(EPeError, "Import ordinal exceeds E32Image limit of 64K.\n");
+   
+   					*rp = segOffset;
+   			
+   					// eek !! surgery on the code segment....
+					*relocAddr = (relocVal<<16) | importOrdinal;
+					}
+			
+				if(iNamedLookupEnabled)
+				{
+					aDep = FindDependency(dll->iName, dll->iLen);
+					if( aDep )
+					{
+						*rp = aDep->iOffset;
+						rp++;
+					}
+				}
+			}
+	
+	aSize = byteSize;
+	return newSection;
+	}
+
+TUint ELFFile::ELFDllData::GetExportTableOffset(void)
+    {
+	Elf32_Sym * et = &iDynSymTab[iExportTableSymIdx];
+	Elf32_Phdr * segment = iElfFile->GetSegment(et->st_shndx - 1);
+	
+	return et->st_value - segment->p_vaddr;
+	}
+
+TBool ELFFile::ELFDllData::GetRelocs(Elf32_Rel **aCodeRelocs, Elf32_Rel **aDataRelocs)
+	//	
+	// load the relocs from the reloc section into relocation and relocsection arrays
+	//
+	{
+	TInt nrelocs = iRelSz/iRelEnt;
+
+	TInt SrcSegIdx = -1;
+
+	for (TInt idx = 0, cidx = 0, didx = 0; idx < nrelocs; idx++)
+	        {
+			Elf32_Rel * rel = &iRel[idx];
+
+			if (ELF32_R_TYPE(rel->r_info) == R_ARM_RABS32)
+					{
+					if (iElfFile->CodeSegmentP(SrcSegIdx))
+							aCodeRelocs[cidx++]=rel;
+					else if (iElfFile->DataSegmentP(SrcSegIdx))
+							aDataRelocs[didx++]=rel;
+					}
+			else if (ELF32_R_TYPE(rel->r_info) == R_ARM_RBASE)
+					{
+					SrcSegIdx = ELF32_R_SYM(rel->r_info);
+					if (!(iElfFile->CodeSegmentP(SrcSegIdx-1) || iElfFile->DataSegmentP(SrcSegIdx-1)))
+							{
+							Print(EPeError, "Source segment for relocations is neither Code or Data.\n");
+							return EFalse;
+							}
+					SrcSegIdx--;
+					}
+			}
+	if(!iNamedLookupEnabled)
+		return ETrue;
+
+	// Add the 0th ordinal of this binary - The relocation info is already setup.
+	aCodeRelocs[cidx++] = &iOrdZeroRec->iReloc;
+
+	// add relocation entries for each of the symbols
+	NamedExportSymbol *aSym = iNamedExportSymbolHead;
+	while(aSym)
+	{
+		// The symbol name info is part of the code section hence all relocations
+		// are collected as part of Code relocations.
+		aCodeRelocs[cidx++] = &aSym->iReloc;
+		aSym = aSym->Next();
+	}
+
+	// Since we have added a few relocations, lets make sure
+	// they are still sorted on addresses they refer to.
+	
+	//Sorting the code relocs
+	TInt aIdx1, aIdx2;
+	Elf32_Rel *aTmp;
+	for (aIdx1 = 0; aIdx1 < cidx; aIdx1++) {
+		for (aIdx2 = aIdx1; aIdx2 < cidx; aIdx2++) {
+			if(aCodeRelocs[aIdx1]->r_offset > aCodeRelocs[aIdx2]->r_offset) {
+				aTmp = aCodeRelocs[aIdx2];
+				aCodeRelocs[aIdx2] = aCodeRelocs[aIdx1];
+				aCodeRelocs[aIdx1] = aTmp;
+			}
+		}
+	}
+	
+	//Sorting the data relocs
+	for (aIdx1 = 0; aIdx1 < didx; aIdx1++) {
+		for (aIdx2 = aIdx1; aIdx2 < didx; aIdx2++) {
+			if(aDataRelocs[aIdx1]->r_offset > aDataRelocs[aIdx2]->r_offset) {
+				aTmp = aDataRelocs[aIdx2];
+				aDataRelocs[aIdx2] = aDataRelocs[aIdx1];
+				aDataRelocs[aIdx1] = aTmp;
+			}
+		}
+	}
+
+	return ETrue;
+	}
+
+NamedExportSymbol::NamedExportSymbol(char* aName, Elf32_Addr aValue) : \
+	iSymbolName(aName), iValue(aValue), iNext(NULL)
+{
+}
+
+TBool ELFFile::ELFDllData::CreateSymLookupTable()
+{
+	if( !SetupSymbolValues() )
+		return FALSE;
+
+	if( !SetupSymbolNames() )
+		return FALSE;
+
+	return TRUE;
+}
+
+TBool ELFFile::ELFDllData::SetupSymbolValues()
+{
+	NamedExportSymbol *aSym, *aPrevSym;
+
+	if( iExportTableSymIdx == -1 || iExportTableSizeSymIdx == -1)
+		return FALSE;
+
+	// Fetch the 'export table' symbol from the dynamic symbol table.
+	Elf32_Sym *aElfExpTbl = &iDynSymTab[iExportTableSymIdx];
+
+	// Fetch the 'export table size' symbol from the dynamic symbol table.
+	Elf32_Sym *aElfExpTblSz = &iDynSymTab[iExportTableSizeSymIdx];
+
+	if((aElfExpTbl->st_value - aElfExpTblSz->st_value) != 4)
+	{
+		// Check that the word prior to the export table is not the export table size
+		// This is to make sure that there is space for the 0th ordinal and
+		// we dont overwrite the 'export table size' entry.
+		iNamedLookupEnabled = 1;
+	}
+	else 
+		return FALSE;
+
+	// Fetch the export table contents
+	Elf32_Word * aExpEntries = iElfFile->CodePtrFromAddr(aElfExpTbl->st_value);
+
+	if(!aExpEntries)
+		return FALSE;
+
+	aSym = aPrevSym = NULL;
+	TInt idx;
+	// Create symbols corresponding to export table entries.
+	for(idx = 0;  idx < iNumberOfExports; idx++)
+	{
+		//Symbols marked Absent are ignored.
+		if( aExpEntries[idx] == iElfFile->iEntryPoint)
+			continue;
+
+		aSym = new NamedExportSymbol(0, aExpEntries[idx]);
+		iNamedExportCount++;
+		if(aPrevSym)
+		{
+			aPrevSym->Next(aSym);
+		}
+		else
+		{
+			iNamedExportSymbolHead = aSym;
+		}
+
+		aPrevSym = aSym;
+	}
+
+	return TRUE;
+}
+
+TBool ELFFile::ELFDllData::SetupSymbolNames()
+{
+	char *aSymName = NULL;
+	NamedExportSymbol *aSym;
+	TUint aDynSymbolTblCount = iHashTable->nChains;
+	TInt aCount = 0;
+	TInt aCodeSegIdx = iElfFile->CodeSegmentIndex() + 1;
+	TInt aDataSegIdx = iElfFile->DataSegmentIndex() + 1;
+
+	// Traverse the dynamic symbol table
+	for(TUint idx = 0; idx < aDynSymbolTblCount; idx++)
+	{
+		//Consider only the the defined symbols
+		if( ELF32_ST_TYPE(iDynSymTab[idx].st_info) == STT_OBJECT || 
+			ELF32_ST_TYPE(iDynSymTab[idx].st_info) == STT_FUNC )
+		{
+			aSym = iNamedExportSymbolHead;
+			while(aSym)
+			{
+				// Name already set
+				if(aSym->Name())
+				{
+					aSym = aSym->Next();
+					continue;
+				}
+				Elf32_Addr aAddr = aSym->Value();
+
+				// If the exported symbol and the dynamic symbol table entry have the 
+				// same values, setup the name
+				if(iDynSymTab[idx].st_value == aAddr)
+				{
+					aSymName = ELFADDR(char, iDynStrTab, iDynSymTab[idx].st_name);
+					aSym->Name(aSymName);
+					
+					if(iElfFile->CodeSegmentP (iElfFile->GetSegmentFromAddr(aAddr)) ) {
+						aSym->iReloc.r_info = aCodeSegIdx << 8 | R_ARM_RABS32;
+						aSym->iSymRelocType = KTextRelocType;
+					}
+					else {
+						aSym->iReloc.r_info = aDataSegIdx << 8 | R_ARM_RABS32;
+						aSym->iSymRelocType = KDataRelocType;
+					}
+					
+					iNumberOfCodeRelocs++;
+					iNumberOfRelocs++;
+
+					// The offset to the name is always 4 byte aligned.
+					iStringNameOffset = iSymStringTableSize >> 2;
+					aSym->NameOffset( iSymStringTableSize );
+					// These are NULL-terminated strings
+					iSymStringTableSize += (strlen(aSymName) + 1);
+					iSymStringTableSize = ALIGN4(iSymStringTableSize);
+
+					aCount++;
+					break;
+				}
+				aSym = aSym->Next();
+			}
+		}
+	}
+
+	if(aCount != iNamedExportCount)
+		return FALSE;
+
+	// Sort symbols on their names...
+	if(iNamedExportCount > 1)
+	{
+		NamedExportSymbol **aTmpStart = &iNamedExportSymbolHead;
+		Sort(aTmpStart, iNamedExportSymbolHead);
+	}
+
+	return TRUE;
+}
+
+void ELFFile::ELFDllData::SetLookupTblBase(TInt aBaseOffset)
+{
+	Elf32_Addr	aBaseAddr = iElfFile->iLinkedBase + iElfFile->GetCodeSize();
+
+	Elf32_Addr	aAddr;
+
+	// setup relocations of each of the exported symbols.
+	aAddr = aBaseAddr + iSymInfoHdr.iSymbolTblOffset;
+	NamedExportSymbol *aSym = iNamedExportSymbolHead;
+	while(aSym)
+	{
+		aSym->iReloc.r_offset = aAddr;
+		aAddr += sizeof(Elf32_Addr);
+		aSym = aSym->Next();
+	}
+
+	// setup relocations for the 0th ordinal of this binary. 
+
+	iOrdZeroRec = new OrdZeroRecord(0);
+	Elf32_Sym * et = &iDynSymTab[iExportTableSymIdx];
+	iOrdZeroRec->iReloc.r_offset = et->st_value - 4; // The word prior ro the first entry
+											// of the export table is the 0th ordinal entry.
+
+	//At the 0th ordinal, write the address of the start of symbol info	
+	TUint32 aZeroOrdOff = et->st_value - 4 - iElfFile->iLinkedBase;
+	aZeroOrdOff += (iElfFile->GetSegment(et->st_shndx - 1))->p_offset;
+	TUint32 *aZeroOrdLocation = ELFADDR(TUint32, iElfFile->ELFFileBase(), aZeroOrdOff);
+	*aZeroOrdLocation = aBaseAddr;
+
+	iOrdZeroRec->iReloc.r_info = ELF32_R_INFO(et->st_shndx, R_ARM_RABS32);
+	iNumberOfCodeRelocs++;
+	iNumberOfRelocs++;
+
+	TInt aOffset = aBaseOffset + iSymInfoHdr.iDepDllZeroOrdTableOffset;
+
+	OrdZeroRecord *aDepRecord = iDepRecords;
+
+	while( aDepRecord )
+	{
+		// Setup the offset - This offset (relative code segment) is filled in the 
+		// import table to point to this dependency record.
+		aDepRecord->iOffset = aOffset;
+
+		aOffset += 4;
+		aDepRecord = aDepRecord->iNext;
+	}
+}
+
+TBool ELFFile::ELFDllData::AddToDependency(TUint aOff)
+{
+	// Add the name found in DT_NEEDED into a list.
+	// The dynamic string table might not have been found in dynamic table yet.
+	// So store the offset (wrt base of dynamic string table) for now.
+	NeededDLLsList *aNeeded = new NeededDLLsList(aOff);
+	if(!aNeeded)
+		return FALSE;
+
+	if ( iNeededDllNames ) {
+	 iNeededDllNamesTail->iNext= aNeeded;
+	 iNeededDllNamesTail = aNeeded; 
+	}
+	else {
+		iNeededDllNames = iNeededDllNamesTail = aNeeded;
+	}
+	
+	return TRUE;
+}
+
+TBool ELFFile::ELFDllData::CreateDependency()
+{
+	OrdZeroRecord *aDep;
+	NeededDLLsList *aNeeded = iNeededDllNames;
+	char *aDllName = NULL;
+	DllRec *aRec;
+	TInt aNeededFound;
+
+	for(aNeededFound = 0; (aNeededFound < iNumberOfImportDlls) && aNeeded;)
+	{
+		aRec = 0;
+		while(aNeeded) {
+			aDllName = iDynStrTab + aNeeded->iOffset;
+			// aNeeded is just a guess that this binary might be dependent on aDllName
+			// Search through the import table to find if the guess was correct.
+			aRec = SearchImports(aDllName);
+			if(aRec && FindDependency(aRec->iName, aRec->iLen) == NULL) {
+				// Check if aDllName is listed in import table and it
+				// not added already in the depedency records.
+				aNeededFound++;
+				break;
+			}
+			// Bad guess...go to the next aNeeded
+			aNeeded = aNeeded->iNext;
+		}
+
+		if( !aRec )
+			return FALSE;
+
+		aDep = new OrdZeroRecord(aDllName);
+		if(!iDepRecords)
+		{
+			iDepRecords = iDepRecordsTail = aDep;
+		}
+		else
+		{
+			iDepRecordsTail->iNext = aDep;
+			iDepRecordsTail = aDep;
+		}
+		aNeeded = aNeeded->iNext;
+	}
+
+	return (aNeededFound == iNumberOfImportDlls);
+}
+
+ELFFile::ELFDllData::DllRec* ELFFile::ELFDllData::SearchImports(char *aName)
+{
+	DllRec *aRec = iDllHead;
+	while (aRec)
+	{
+		if(strncmp(aRec->iName, aName, aRec->iLen) == 0)
+			return aRec;
+		aRec = aRec->iNext;
+	}
+	return NULL;
+}
+
+OrdZeroRecord* ELFFile::ELFDllData::FindDependency(char* aName, TUint aLen)
+{
+	OrdZeroRecord* aDep = iDepRecords;
+	while(aDep)
+	{
+		if(strncmp(aName, aDep->iName, aLen) == 0)
+			return aDep;
+		aDep = aDep->iNext;
+	}
+	return NULL;
+}
+
+void ELFFile::ELFDllData::GetExportSymInfoHeader(E32EpocExpSymInfoHdr& aSymInfoHdr)
+{
+	memcpy(&aSymInfoHdr, &iSymInfoHdr, sizeof(E32EpocExpSymInfoHdr));
+}
+
+void ELFFile::ELFDllData::SetExportSymInfo()
+{
+	iSymInfoHdr.iSymCount = (TUint16)iNamedExportCount;
+	iSymInfoHdr.iSymbolTblOffset = sizeof(E32EpocExpSymInfoHdr);
+	iSymInfoHdr.iStringTableSz = iSymStringTableSize;
+	TInt aSymTabSz;
+	if( iStringNameOffset > 0xffff){
+		iSymInfoHdr.iFlags = KNameLookupOffsetFlag32;  // Flag indicating 32 bit offsets 
+													   // for symbol names
+		aSymTabSz = iNamedExportCount* sizeof(TUint32);// symbol addresses
+		aSymTabSz += iNamedExportCount* sizeof(TUint32);// symbol name 32-bit offsets
+	}
+	else
+	{
+		iSymInfoHdr.iFlags &= ~KNameLookupOffsetFlag32;// Flag indicating 16-bit offsets 
+													   // for symbol names
+		aSymTabSz = iNamedExportCount* sizeof(TUint32);	// symbol addresses
+		aSymTabSz += iNamedExportCount* sizeof(TUint16);// symbol name 16-bit offsets
+		aSymTabSz = ALIGN4(aSymTabSz);
+	}
+	iSymInfoHdr.iStringTableOffset = iSymInfoHdr.iSymbolTblOffset + aSymTabSz;
+	iSymInfoHdr.iDllCount = iNumberOfImportDlls;
+	iSymInfoHdr.iDepDllZeroOrdTableOffset = iSymInfoHdr.iStringTableOffset + \
+								iSymInfoHdr.iStringTableSz;
+
+	iSymInfoHdr.iSize = iSymInfoHdr.iDepDllZeroOrdTableOffset + \
+						iSymInfoHdr.iDllCount * sizeof(Elf32_Addr);
+}
+
+TUint ELFFile::ELFDllData::GetSymLookupSection(char* aBuff)
+{
+	if( !iNamedLookupEnabled)
+		return 0;
+
+	memcpy(aBuff, &iSymInfoHdr, sizeof(iSymInfoHdr));
+	
+	// Name offsets start after the end of symbol addresses.
+	TUint32 aNameOffsetStart = iSymInfoHdr.iSymbolTblOffset + \
+								iNamedExportCount* sizeof(TUint32);
+																
+	TUint32 *aAddrPtr = (TUint32*)(aBuff + iSymInfoHdr.iSymbolTblOffset);
+	TUint32 aStringTabOff = 0;
+	char *aStringTab = aBuff + iSymInfoHdr.iStringTableOffset;//Start of the string table.
+	NamedExportSymbol *aSym = iNamedExportSymbolHead;
+	while(aSym)
+	{
+		*aAddrPtr = aSym->Value();
+		aStringTabOff = aSym->NameOffset(); // Get the offset of symbol name (which is wrt 
+											// string table base).
+		if( iSymInfoHdr.iFlags & KNameLookupOffsetFlag32 )
+		{
+			TUint32 *aNameOffPtr = (TUint32*)(aBuff + aNameOffsetStart);
+			*aNameOffPtr = (aStringTabOff >> 2);//write the offset of the name
+			strcpy(aStringTab + aStringTabOff, aSym->Name());//write the symbol name
+			aNameOffsetStart +=4;
+		}
+		else
+		{
+			TUint16 *aNameOffPtr = (TUint16*)(aBuff + aNameOffsetStart);
+			*aNameOffPtr = (TUint16)(aStringTabOff >> 2);//write the offset of the name
+			strcpy(aStringTab + aStringTabOff, aSym->Name());//write the symbol name
+			aNameOffsetStart +=2;
+		}
+		aAddrPtr++;
+		aSym = aSym->Next();
+	}
+
+	OrdZeroRecord *aRec = iDepRecords;
+	TUint32* aDepsTable = (TUint32*)(aBuff + iSymInfoHdr.iDepDllZeroOrdTableOffset);
+	while(aRec)
+	{
+		*aDepsTable++ = 0;
+		aRec = aRec->iNext;
+	}
+	return iSymInfoHdr.iSize;
+}
+
+void ELFFile::ELFDllData::Sort(NamedExportSymbol** aDstList, NamedExportSymbol* aSrcList)
+{
+	NamedExportSymbol *aSym = aSrcList;
+	NamedExportSymbol **aSymbols = new NamedExportSymbol*[iNamedExportCount];
+	
+	TInt pos;
+	for (pos = 0; pos < iNamedExportCount; pos++) {
+		aSymbols[pos] = aSym;
+		aSym = aSym->Next();
+	}
+	
+	NamedExportSymbol **aResult = new NamedExportSymbol*[iNamedExportCount];
+	MergeSort(aResult, aSymbols);
+	iNamedExportSymbolHead = aResult[0];
+	for (pos = 0; pos < iNamedExportCount; pos++) {
+		aSym = aResult[pos];
+		if( pos == iNamedExportCount-1)
+			aSym->Next(NULL);
+		else
+			aSym->Next(aResult[pos+1]);
+	}
+	*aDstList = aResult[0];
+	delete [] aResult;
+	delete [] aSymbols;
+}
+
+void ELFFile::ELFDllData::MergeSort(NamedExportSymbol** aDstList, NamedExportSymbol** aSrcList)
+{
+	MergeSort(aDstList, aSrcList, 0, iNamedExportCount);
+}
+
+void ELFFile::ELFDllData::MergeSort(NamedExportSymbol** aDstList, NamedExportSymbol** aSrcList, \
+									TUint aLeft, TUint aRight)
+{
+	if( (aRight - aLeft) <= 1)
+		return;
+
+	TUint aSize = aRight - aLeft;
+	TUint aCenter = aLeft + aSize/2;
+
+	MergeSort(aDstList, aSrcList, aLeft, aCenter);
+	MergeSort(aDstList, aSrcList, aCenter, aRight);
+
+	TUint aLPos, aRPos, aCnt;
+	aLPos = aLeft;
+	aRPos = aCenter;
+	for(aCnt = 0; aCnt < aSize; aCnt++)
+	{
+		if( (aLPos < aCenter) &&
+			(aRPos == aRight || (strcmp(aSrcList[aLPos]->Name(), aSrcList[aRPos]->Name()) < 0) )
+		  )
+		{
+			// Compare the left half with the right and add the lesser one.
+			// The comparision is done on the topmost element on each half.
+			// if aRPos is past the last element of the right half, the left element has 
+			// nothing to compare with. Just add it to the result list.
+			aDstList[aCnt] = aSrcList[aLPos];
+			aLPos++;
+		}
+		else
+		{
+			// Add the greater one into the list.
+			// if aLPos is past the element at the center, it anyway belongs to the
+			// right half. Add it to the result list.
+			aDstList[aCnt] = aSrcList[aRPos];
+			aRPos++;
+		}
+	}
+
+	// Once the sublist is sorted, put it back to the source list
+	// so that the parent has its left and right sublists are sorted.
+	for(aCnt = 0; aCnt < aSize; aCnt++)
+	{
+		aSrcList[aLeft+aCnt] = aDstList[aCnt];
+	}
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elftools/elftran/elf_file.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,528 @@
+// Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+
+#include <e32def.h>
+#include <e32def_private.h>
+#include <e32std.h>
+#include <e32std_private.h>
+#include "elftran.h"
+#include <tools/elfdefs.h>
+#include "elffile.h"
+#include "elfdll.h"
+#include "h_utl.h"
+#include <string.h>
+#include <stdlib.h>
+
+TBool hadText, hadReloc = EFalse;
+
+ELFFile::ELFFile() 
+	: iFileName(0), iFileHandle(-1) , iElfFile(0),
+	iHeapCommittedSize(0x1000), iHeapReservedSize(0x100000), iStackCommittedSize(0),
+	iCodeSegmentHdr(0), iDataSegmentHdr(0), iDynamicSegmentHdr(0),
+	iCodeSegmentIdx(0), iDataSegmentIdx(0),
+	iDynamicSegmentIdx(0), iDllData(0), iCpu(ECpuUnknown)
+	{}
+
+
+
+
+ELFFile::~ELFFile()
+//
+// Destructor
+//
+	{
+
+	delete [] iFileName;
+	delete iElfFile;
+	delete iDllData;
+	}
+
+
+TBool ELFFile::Init(const TText * const aFileName)
+//
+// Read the ELF file into memory
+//
+ 	{
+
+ 	delete [] iFileName;	
+	iFileName = new TText[strlen((const char *)aFileName)+1];
+	strcpy ((char *)iFileName, (const char *)aFileName);
+
+	TInt error = HFile::Open(iFileName, &iFileHandle);
+	if (error!=0)
+		return EFalse;
+
+	TInt flength = HFile::GetLength(iFileHandle);
+
+	iElfFile = (Elf32_Ehdr *)HMem::Alloc(0,flength);
+	if (!iElfFile)
+		{
+		Print(EPeError,"Failed to allocate memory to read in file.\n");
+		Close();
+		return EFalse;
+		}
+
+	if (!HFile::Read(iFileHandle,iElfFile,flength))
+		{
+		Print(EPeError,"Unable to read file %s.\n",iFileName);
+		Close();
+		return EFalse;
+		}
+
+        Close();
+
+	if (!IsValidFileHeader(iElfFile))
+		{
+		Print(EPeError,"Invalid file header.\n");
+		return EFalse;
+		}
+	// we only support this....for the moment
+	iCpu = ECpuArmV4;
+
+	if (!InitHeaders()) return EFalse;
+	
+	if (!InitDllData()) return EFalse;
+
+	iEntryPoint = iElfFile->e_entry;
+
+	iCodeSize = GetCodeSize();
+	iDataSize = GetDataSize();
+	iBssSize = GetBssSize();
+
+	iStackReservedSize = 0x2000;
+	iStackCommittedSize = 0x2000;
+
+ 	iLinkedBase = iCodeSegmentHdr->p_vaddr;
+	
+	iImageIsDll = iDllData->ImageIsDll();
+
+	return ETrue;
+	}
+
+char * ELFFile::CreateImportSection(TInt &aSize)
+//
+// get ELFDLLData to do it
+//
+	{
+	TInt size;
+	char * newSection = iDllData->CreateImportSection(size);
+	aSize = size;
+	return newSection;
+	}
+
+TUint ELFFile::GetExportTableOffset(void)
+        {
+	return iDllData->GetExportTableOffset();
+	}
+
+TBool ELFFile::InitHeaders(void)
+        {
+	TInt nphdrs = iElfFile->e_phnum;
+	if (nphdrs)
+	       {
+	       // Find the dynamic segment
+	       Elf32_Phdr * aPhdr = ELFADDR(Elf32_Phdr, iElfFile, iElfFile->e_phoff);
+	       iPhdr = aPhdr;
+	       for (TInt idx = 0; idx < nphdrs; idx++)
+					{
+					Elf32_Word ptype = aPhdr[idx].p_type;
+					if (ptype == PT_DYNAMIC)
+							{
+							iDynamicSegmentHdr = &aPhdr[idx];
+							iDynamicSegmentIdx = idx;
+							}
+      				else if (ptype == PT_LOAD && 
+							 (aPhdr[idx].p_flags & (PF_X + PF_ARM_ENTRY)))
+							{
+							iCodeSegmentHdr = &aPhdr[idx];
+							iCodeSegmentIdx = idx;
+							}
+      				else if (ptype == PT_LOAD && 
+							 (aPhdr[idx].p_flags & (PF_W + PF_R)))
+							{
+							iDataSegmentHdr = &aPhdr[idx];
+							iDataSegmentIdx = idx;
+							}
+					}
+	       }
+	
+	// cache pointer to symbol table
+
+	// Get section header table
+	Elf32_Shdr * s = ELFADDR(Elf32_Shdr, iElfFile, iElfFile->e_shoff);
+	// Index of section header for section header string table
+	TInt stIdx = iElfFile->e_shstrndx;
+	TInt symIdx = -1;
+	// Section name string table
+	char * stringtable = ELFADDR(char, iElfFile, s[stIdx].sh_offset);
+	// the index at which we find '.symtab' is the index of the symtab section
+	for (TInt idx = 0; idx < iElfFile->e_shnum; idx++)
+	    {
+		if (idx != stIdx)
+		       {
+		       if (!strcmp(&stringtable[s[idx].sh_name], ".symtab"))
+			      {
+			      symIdx = idx;
+			      break;
+			      }
+		       }
+		}
+	if (symIdx == -1) return EFalse;
+
+	// save section header table
+	iSectionHeaderTable = s;
+	// save the index
+	iSymIdx = symIdx;	
+	// here's the symbol table
+	iSymTab = ELFADDR(Elf32_Sym, iElfFile, s[symIdx].sh_offset);
+	return ETrue;
+	}
+
+TBool ELFFile::InitDllData(void)
+	{
+	if (!iDynamicSegmentHdr)
+	       {
+#if defined(_DEBUG)
+	       Print(EWarning, "Image '%s' has no import/export data.\n", iFileName);
+#endif
+	       return ETrue;
+	       }
+	iDllData = new ELFDllData(this);
+	if (!iDllData)
+	       {
+	       Print(EPeError, "Out of memory allocating DLL data\n");
+	       return EFalse;
+	       }
+
+	Elf32_Dyn * dyn = ELFADDR(Elf32_Dyn, iElfFile, iDynamicSegmentHdr->p_offset);
+	TInt idx = 0;
+	TInt soNameOffset = 0;
+	while(dyn[idx].d_tag != DT_NULL) // best to make it explicit
+	       {
+	       switch (dyn[idx].d_tag)
+		      {
+		      case DT_HASH:
+			   iDllData->iHashTable = ELFADDR(Elf32_HashTable, dyn, dyn[idx].d_val);
+			   break;
+		      case DT_STRTAB:
+			   iDllData->iDynStrTab = ELFADDR(char, dyn, dyn[idx].d_val);
+			   break;
+		      case DT_SYMTAB:
+			   iDllData->iDynSymTab = ELFADDR(Elf32_Sym, dyn, dyn[idx].d_val);
+			   break;
+		      case DT_RELA:
+			   iDllData->iRela = ELFADDR(Elf32_Rela, dyn, dyn[idx].d_val);
+			   break;
+		      case DT_RELASZ:
+			   iDllData->iRelaSz = dyn[idx].d_val;
+			   break;
+		      case DT_RELAENT:
+			   iDllData->iRelaSz = dyn[idx].d_val;
+			   break;
+		      case DT_STRSZ:
+			   iDllData->iDynStrTabSize = dyn[idx].d_val;
+			   break;
+		      case DT_ARM_SYMTABSZ_21: //For RVCT2.1
+			   //iDllData->iDynSymTabSize = dyn[idx].d_val;
+		      case DT_ARM_SYMTABSZ:
+			  /* This is same as DT_ARM_SYMTABSZ_21, but for RVCT 2.2
+			   * The tag value has been changed for RVC2.2 from RVCT2.1.
+			   * We just ignore this. i.e., we get the symbol table size
+			   * from the nchain field of the hash table as noted in section
+			   * 3.2.2.2 of the BPABI.
+			   */
+			   break;
+		      case DT_SYMENT:
+			   iDllData->iSymSize = dyn[idx].d_val;
+			   break;
+		      case DT_SONAME:
+			   soNameOffset = dyn[idx].d_val;
+			   break;
+		      case DT_REL:
+			   iDllData->iRel = ELFADDR(Elf32_Rel, dyn, dyn[idx].d_val);
+			   break;
+		      case DT_RELSZ:
+			   iDllData->iRelSz = dyn[idx].d_val;
+			   break;
+		      case DT_RELENT:
+			   iDllData->iRelEnt = dyn[idx].d_val;
+			   break;
+		      case DT_NEEDED:
+			   iDllData->AddToDependency(dyn[idx].d_val);
+			   break;
+		      case DT_PLTRELSZ:
+		      case DT_PLTGOT:
+		      case DT_INIT:
+		      case DT_FINI:
+		      case DT_RPATH:
+		      case DT_SYMBOLIC:
+		      case DT_PLTREL:
+		      case DT_DEBUG:
+		      case DT_TEXTREL:
+		      case DT_JMPREL:
+		      case DT_BIND_NOW:
+			   break;
+		      default:
+		           Print(EPeError,"Unrecognized Dyn Array tag in image '%s'.\n", iFileName);
+			   return EFalse;
+		      }
+		      idx++;
+	       }
+	return iDllData->Init();
+	}
+
+
+void ELFFile::Close()
+//
+// close the ELF file
+//
+	{
+	HFile::Close(iFileHandle);
+	}
+
+
+
+TInt ELFFile::NumberOfImports() const
+//
+// Count the total number of imports for this image
+//
+	{
+	return iDllData->NumberOfImports();
+	}
+
+TInt ELFFile::NumberOfImportDlls() const
+//
+// Count the number of referenced Dlls
+//
+	{
+	return iDllData->NumberOfImportDlls();
+	}
+
+TInt ELFFile::NumberOfExports() const
+//
+// Count the number of exported symbols
+//
+	{
+	return iDllData->NumberOfExports();
+	}
+
+TInt ELFFile::NumberOfCodeRelocs() 
+	{ 
+	return iDllData->NumberOfCodeRelocs(); 
+	}
+
+TInt ELFFile::NumberOfDataRelocs() 
+	{ 
+	return iDllData->NumberOfDataRelocs(); 
+	}
+
+Elf32_Phdr * ELFFile::GetSegmentFromAddr(Elf32_Addr addr)
+	{
+	TInt nphdrs = iElfFile->e_phnum;
+	for (TInt idx = 0; idx < nphdrs; idx++)
+	        {
+		// take advantage of unsignedness 
+		if ((addr - iPhdr[idx].p_vaddr) < iPhdr[idx].p_memsz) return &iPhdr[idx];
+		}
+	return NULL;
+	}
+
+
+TInt ELFFile::NumberOfRelocs()
+	{
+	return iDllData->NumberOfRelocs();
+	}
+
+TUint16 ELFFile::GetRelocType(Elf32_Rel *aReloc)
+    {
+	// We work out the type by figuring out the segment of the reloc
+	TInt segmentIdx = ELF32_R_SYM(aReloc->r_info);
+	
+	// check to see if its a reserved or special index.
+	if ((!segmentIdx) || ((segmentIdx >= SHN_LORESERVE) && (segmentIdx <= SHN_HIRESERVE)))
+		// up until now these have been treated as KInferredRelocType, so lets continue...
+		return KInferredRelocType;
+			
+	// need to see if this section is executable or writable
+	if (iPhdr[segmentIdx-1].p_flags & PF_X) 
+		return KTextRelocType;
+	if (iPhdr[segmentIdx-1].p_flags & PF_W) 
+		return KDataRelocType;
+	// perhaps we should error here.
+	return KInferredRelocType;
+	}
+
+TBool ELFFile::GetRelocs(Elf32_Rel **aCodeRelocs, Elf32_Rel **aDataRelocs)
+        {
+	return iDllData->GetRelocs(aCodeRelocs, aDataRelocs);
+	}
+
+TUint ELFFile::GetCodeSize()
+    {
+	return iCodeSegmentHdr->p_filesz;
+	}
+
+TBool ELFFile::HasInitialisedData()
+	{
+	return iDataSegmentHdr != NULL && iDataSegmentHdr->p_filesz != 0;
+	}
+
+TUint ELFFile::GetDataSize()
+    {
+	return iDataSegmentHdr != NULL ? iDataSegmentHdr->p_filesz : 0;
+	}
+
+TBool ELFFile::HasBssData()
+	{
+	return iDataSegmentHdr != NULL && (iDataSegmentHdr->p_memsz - iDataSegmentHdr->p_filesz) != 0;
+	}
+
+TUint ELFFile::GetBssSize()
+    {
+	return iDataSegmentHdr != NULL ? iDataSegmentHdr->p_memsz - iDataSegmentHdr->p_filesz: 0;
+	}
+
+
+
+
+
+
+TBool ELFFile::IsValidFileHeader(Elf32_Ehdr * iElfFile)
+ 	{
+        if (!(iElfFile->e_ident[EI_MAG0] == ELFMAG0 &&
+	      iElfFile->e_ident[EI_MAG1] == ELFMAG1 &&
+	      iElfFile->e_ident[EI_MAG2] == ELFMAG2 &&
+	      iElfFile->e_ident[EI_MAG3] == ELFMAG3))
+		{
+                Print(EPeError,"Invalid ELF magic.\n");
+		return EFalse;
+		}
+
+        if (iElfFile->e_ident[EI_CLASS] != ELFCLASS32)
+		{
+                Print(EPeError,"File is not a 32 bit object file.\n");
+		return EFalse;
+		}
+        if (iElfFile->e_ident[EI_DATA] != ELFDATA2LSB)
+		{
+                Print(EPeError,"File data encoding is not Little Endian.\n");
+		return EFalse;
+		}
+
+  	if (iElfFile->e_machine != EM_ARM)
+		{
+		Print(EPeError,"File does not target ARM/THUMB processors.\n");
+		return EFalse;
+		}
+
+  	if (!(iElfFile->e_type == ET_EXEC || iElfFile->e_type == ET_DYN))
+		{
+		Print(EPeError,"File is neither an executable nor a shared object\n");
+		return EFalse;
+		}
+
+	return ETrue;
+	}
+
+
+// Get details of the next import to fix-up in the current file. Fill in the name of the dll 
+//it is imported from, the ordinal number and the address to write back to.
+#define ORDINAL_DONE 0x40000000
+
+
+// The following static functions are passed an array of PE files to operate on
+
+Elf32_Sym * ELFFile::FindSymbol(const TText *aName)
+    {
+	Elf32_Shdr * s = ELFADDR(Elf32_Shdr, iElfFile, iElfFile->e_shoff);	
+	TInt symIdx = iSymIdx;
+	Elf32_Sym * sym = iSymTab;
+	TInt nSyms = s[symIdx].sh_size / s[symIdx].sh_entsize;
+	char * symStringtable = ELFADDR(char, iElfFile, s[s[symIdx].sh_link].sh_offset);
+	for (TInt jdx = 0; jdx < nSyms; jdx++)
+	    {
+		if (!strcmp(&symStringtable[sym[jdx].st_name], (char *)aName)) 
+			return &sym[jdx];
+		}
+	return (Elf32_Sym *)0;
+    }
+
+TBool ELFFile::SymbolPresent(TText *aName)
+    {
+	return (FindSymbol(aName) != 0);
+    }
+
+TBool ELFFile::GetExceptionIndexInfo(TUint32 &aOffset)
+    {
+    const TText * aBase = (TText *)".ARM.exidx$$Base";
+    const TText * aLimit = (TText *)".ARM.exidx$$Limit";
+	Elf32_Sym * exidxBase = FindSymbol(aBase);
+	Elf32_Sym * exidxLimit = FindSymbol(aLimit);
+	if (exidxBase && exidxLimit && (exidxLimit->st_value - exidxBase->st_value)) 
+	    {
+		const TText * aExceptionDescriptor = (TText *)"Symbian$$CPP$$Exception$$Descriptor";
+		Elf32_Sym * aED = FindSymbol(aExceptionDescriptor);
+		if (aED) 
+			{
+			// Set bottom bit so 0 in header slot means an old binary.
+			// The decriptor is always aligned on a 4 byte boundary.
+			aOffset = (aED->st_value - iLinkedBase) | 0x00000001;
+			return ETrue;
+			}
+		else
+			{
+			Print(EPeError,"Executable has exception table but no exception descriptor\n");
+			exit(666);
+			}
+		}
+	return EFalse;
+    }
+
+TBool ELFFile::SetUpLookupTable()
+{
+	if(!iDllData->CreateSymLookupTable() ) {
+		Print(EPeError,"Failed to create named symbol lookup information\n");
+		return FALSE;
+	}
+	if(!iDllData->CreateDependency()){
+		Print(EPeError,"Failed to create dependency ordering for named symbol lookup\n");
+		return FALSE;
+	}
+
+	iDllData->SetExportSymInfo();
+	return TRUE;
+}
+
+void ELFFile::GetExportSymInfoHeader(E32EpocExpSymInfoHdr& aSymInfoHdr)
+{
+	iDllData->GetExportSymInfoHeader(aSymInfoHdr);
+}
+
+void ELFFile::SetLookupTblBase(TInt aBaseOffset)
+{
+	iDllData->SetLookupTblBase(aBaseOffset);
+}
+
+TInt ELFFile::GetLookupTblSize()
+{
+	return iDllData->GetLookupTblSize();
+}
+
+TUint ELFFile::GetSymLookupSection(char* aBuff)
+{
+	return iDllData->GetSymLookupSection(aBuff);
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elftools/elftran/elf_imp.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,37 @@
+// Copyright (c) 1996-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#include <stdlib.h>
+#include <string.h>
+#include <e32std.h>
+#include <e32std_private.h>
+#include "h_utl.h"
+#include "e32ldfmt.h"
+#include "elftran.h"
+#include "elffile.h"
+
+char* E32ImageFile_ELF::CreateImportSection(ELFFile& aElfFile, TInt& aSize)
+//
+// get the ELFFile to do it for us.
+//
+	{
+	TInt size;
+	char * newSection = aElfFile.CreateImportSection(size);
+	aSize = size;
+	return newSection;
+	}
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elftools/elftran/elf_reloc.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,152 @@
+// Copyright (c) 1996-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#include <stdlib.h>
+#include <string.h>
+#include <e32std.h>
+#include <e32std_private.h>
+#include "elftran.h"
+#include "elffile.h"
+#include "h_utl.h"
+#include <assert.h>
+
+TInt sizeOfRelocs(Elf32_Rel **relocs, TInt nrelocs)
+	{
+
+	TInt bytecount=0;
+	TInt page=-1;
+	TInt i;
+	for (i=0; i<nrelocs; i++)
+		{
+		TInt p=relocs[i]->r_offset&0xfffff000;
+		if (page!=p)
+			{
+			if (bytecount%4!=0)
+				bytecount+=2;
+			bytecount+=8; // page, block size
+			page=p;
+			}
+		bytecount+=2;
+		}
+	if (bytecount%4!=0)
+		bytecount+=2;
+	return bytecount;
+	}
+
+char* E32ImageFile_ELF::CreateRelocs(ELFFile& aElfFile, Elf32_Rel **relocs, TInt nrelocs, TInt &aSize, TUint aBase)
+	{
+
+	TInt bytecount=sizeOfRelocs(relocs, nrelocs);
+	aSize=0;
+	if (bytecount==0)
+		return NULL;
+	aSize=bytecount+sizeof(E32RelocSection);
+
+	char *section=new char [bytecount+sizeof(E32RelocSection)];
+	char *data=section+sizeof(E32RelocSection);
+	char *startofblock=data;
+
+	TInt page=-1;
+	TInt pagesize=8;
+	TInt i;
+	for (i=0; i<nrelocs; i++)
+		{
+		TInt p=relocs[i]->r_offset&0xfffff000;
+		if (page!=p)
+			{
+			if (pagesize%4!=0)
+				{
+				*(TUint16 *)data=0;
+				data+=2;
+				pagesize+=2;
+				}
+			if (page == -1) page = p;
+			*(TUint *)startofblock=page - aBase;
+			*(TUint *)(startofblock+4)=pagesize;
+			pagesize=8;
+			page=p;
+			startofblock=data;
+			data+=8;
+			}
+		TUint16 relocType = aElfFile.GetRelocType(relocs[i]);
+		*(TUint16 *)data=(TUint16)((relocs[i]->r_offset&0xfff)|relocType);
+		data+=2;
+		pagesize+=2;
+		}
+	if (pagesize%4!=0)
+		{
+		*(TUint16 *)data=0;
+		data+=2;
+		pagesize+=2;
+		}
+	*(TUint *)startofblock=page - aBase;
+	*(TUint *)(startofblock+4)=pagesize;
+	((E32RelocSection *)section)->iNumberOfRelocs=nrelocs;
+	((E32RelocSection *)section)->iSize=bytecount;
+	return section;
+	}
+
+void checkreloc(ELFFile& aElfFile, TUint va, TUint reloc)
+	{
+	// This will warn if appears to be outside any known segment.
+   	// NB. Such relocations can occur as the result of 'optimizations'
+   	// and aren't 'bugs'.
+   	// It turns out that the released version of RVCT makes such widespread
+   	// use of the optimization that this warning is disconcerting and
+   	// unhelpful.
+ 	(void) aElfFile;
+ 	(void)va;
+ 	(void)reloc;
+#if 0
+	if (!aElfFile.GetSegmentFromAddr(va)) 
+		Print(EWarning, "dubious relocation:  [%08x] = %08x\n", reloc, va);
+#endif
+	}
+
+void E32ImageFile_ELF::FixRelocs(ELFFile &aElfFile, Elf32_Rel **codeRelocs, Elf32_Rel **dataRelocs)
+	{
+	TUint *data;
+	TInt numberOfCodeRelocs = aElfFile.NumberOfCodeRelocs();
+	TInt numberOfDataRelocs = aElfFile.NumberOfDataRelocs();
+	for (TInt i=0; i<numberOfCodeRelocs; i++)
+	        {
+		data=aElfFile.CodePtrFromAddr(codeRelocs[i]->r_offset);
+		checkreloc(aElfFile, *data, codeRelocs[i]->r_offset);
+		//*data=FixAddress(aElfFile, *data, codeRelocs[i]);
+		}
+// fix defect
+	for (TInt j=0; j<numberOfDataRelocs; j++)
+	        {
+		data=aElfFile.DataPtrFromAddr(dataRelocs[j]->r_offset);
+		checkreloc(aElfFile, *data, dataRelocs[j]->r_offset);
+		//*data=FixAddress(aElfFile, *data, dataRelocs[j]);
+		}
+	}
+
+TUint E32ImageFile_ELF::FixAddress(ELFFile &aElfFile, TUint va, Elf32_Rel * rel)
+//
+// Fix the given virtual address for the new headers
+//
+	{
+	Elf32_Phdr * segment = aElfFile.GetSegmentFromAddr(rel->r_offset);
+	assert(aElfFile.CodeSegmentP(segment) || aElfFile.DataSegmentP(segment));
+	TUint offset = va - segment->p_vaddr;
+	if (aElfFile.CodeSegmentP(segment))
+	      return (TUint)aElfFile.GetCode() + offset;
+	else 
+	      return (TUint)aElfFile.GetData() + offset;
+	
+	}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elftools/elftran/elf_tran.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,302 @@
+// Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// derived from pe_tran.cpp
+// 
+//
+
+#include <time.h>
+#include <malloc.h>
+#include <string.h>
+#include "elftran.h"
+#include <e32std.h>
+#include <e32std_private.h>
+#include <tools/elfdefs.h>
+#include "elffile.h"
+#include "h_ver.h"
+#include "h_utl.h"
+
+extern TUid gUid1, gUid2, gUid3;
+extern int gSetUid1, gSetUid2, gSetUid3;
+
+int gAlignConstSection=FALSE;
+TUint gConstSectionAddressMask=0;
+static TUint gRequiredConstPadding;
+
+E32ImageFile* E32ImageFile::New()
+	{
+	return new E32ImageFile_ELF;
+	}
+
+E32ImageFile_ELF::E32ImageFile_ELF()
+	{
+	}
+
+E32ImageFile_ELF::~E32ImageFile_ELF()
+	{
+	}
+
+TInt E32ImageFile_ELF::DoCodeHeader(ELFFile &aElfFile)
+//
+// Calculate the code parts of the ELFFile
+//
+	{
+
+	TInt size=ALIGN4(aElfFile.GetCodeSize());
+	iHdr->iCodeSize = iHdr->iTextSize = size;
+	// make it the offset from the beginning of the file.....
+	if(iHdr->iExportDirCount==0)
+		iHdr->iExportDirOffset = 0;
+	else
+		iHdr->iExportDirOffset = aElfFile.GetExportTableOffset() + iHdr->iCodeOffset;
+
+	return size;
+	}
+
+TInt E32ImageFile_ELF::DoDataHeader(ELFFile &aElfFile, TUint aDataBase)
+	{
+
+	if (aDataBase==0 && aElfFile.iDataSegmentHdr)
+		aDataBase=aElfFile.iDataSegmentHdr->p_vaddr;
+	TInt size=0;
+
+	iHdr->iDataBase=aDataBase;
+
+	if (aElfFile.HasInitialisedData())
+		{
+	        size=ALIGN4(aElfFile.GetDataSize());
+		iHdr->iDataOffset = iHdr->iCodeOffset + iHdr->iCodeSize;
+		iHdr->iDataSize = size;
+		}
+	if (aElfFile.HasBssData())
+		{
+		iHdr->iBssSize = ALIGN4(aElfFile.GetBssSize());
+		}
+	return size;
+	}
+
+TInt E32ImageFile_ELF::CopyCode(char *p, ELFFile &aElfFile)
+//
+// Copies the files code sections to p
+// returns the number of bytes copied or KErrGeneral
+//
+	{
+	TInt size=aElfFile.GetCodeSize();
+	memcpy(p, (char *)aElfFile.GetCode(), size);
+	p+=ALIGN4(size);
+	return iHdr->iCodeSize = size;
+	}
+
+TInt E32ImageFile_ELF::CopyData(char *p, ELFFile &aElfFile)
+	{
+	TInt size=aElfFile.GetDataSize();
+	if (size) memcpy(p, (char *)aElfFile.GetData(), size);
+	return size;
+	}
+
+TInt E32ImageFile_ELF::Translate(const char* aFileName, TUint aDataBase, TBool aAllowDllData, \
+								 TBool aSymLkupEnabled)
+//
+// Translate a ELF format file to a E32Image file
+//
+	
+{
+	iSource = EElfFile;
+	ELFFile elffile;
+	if (!elffile.Init((const TText * const)aFileName)) return KErrGeneral;
+		
+	iFileName = strdup(aFileName);
+
+	Adjust(ALIGN4(sizeof(E32ImageHeaderV)));	// fixed for now because holes not supported
+	SetDefaultHeader();
+	iHdr->iDllRefTableCount = elffile.NumberOfImportDlls();
+	iHdr->iExportDirCount = elffile.NumberOfExports();
+	iHdr->iCodeBase = elffile.iLinkedBase;
+
+	if(aSymLkupEnabled)
+	{
+		if( !SetUpLookupTable(elffile) )
+			return KErrGeneral;
+	}
+
+
+	TInt size = ALIGN4(sizeof(E32ImageHeaderV));	// fixed for now because holes not supported
+	iHdr->iCodeOffset = size;
+	TInt pos = size;
+	size+=DoCodeHeader(elffile);
+
+	size += DoSymbolLookupHeader(elffile, size - pos);
+
+	TInt nimports=elffile.NumberOfImports();
+	TInt importSectionSize;
+	char *newImportSection=CreateImportSection(elffile, importSectionSize);
+
+	TInt t=DoDataHeader(elffile, aDataBase);
+	if (t>0)
+		{
+		iHdr->iDataOffset = size;
+		size += t;
+		}
+	if (importSectionSize!=0)
+		{
+		iHdr->iImportOffset=size;
+		size+=ALIGN4(importSectionSize);
+		}
+
+	char *newCodeRelocs=NULL;
+	char *newDataRelocs=NULL;
+	TInt codeRelocSize=0, dataRelocSize=0;
+	TInt nCodeRelocs=elffile.NumberOfCodeRelocs();
+	TInt nDataRelocs=elffile.NumberOfDataRelocs();
+	if (nCodeRelocs + nDataRelocs)
+		{
+		Elf32_Rel **codeRelocs=new Elf32_Rel * [nCodeRelocs];
+		Elf32_Rel **dataRelocs=new Elf32_Rel * [nDataRelocs];
+		if (!elffile.GetRelocs(codeRelocs, dataRelocs)) return KErrGeneral;
+		       
+		FixRelocs(elffile, codeRelocs, dataRelocs);
+		if (elffile.iCodeSegmentHdr)
+			newCodeRelocs=CreateRelocs(elffile, codeRelocs, nCodeRelocs, codeRelocSize, elffile.iCodeSegmentHdr->p_vaddr);
+		if (elffile.iDataSegmentHdr)
+			newDataRelocs=CreateRelocs(elffile, dataRelocs, nDataRelocs, dataRelocSize, elffile.iDataSegmentHdr->p_vaddr);
+		if (codeRelocSize)
+			{
+			iHdr->iCodeRelocOffset = size;
+			size += codeRelocSize;
+			}
+		if (dataRelocSize)
+			{
+			iHdr->iDataRelocOffset = size;
+			size += dataRelocSize;
+			}
+		delete [] codeRelocs;
+		delete [] dataRelocs;
+		}
+
+	Adjust(size);
+	t=CopyCode(iData + pos, elffile);
+	if (t<0)
+		return KErrGeneral;
+	pos += t;
+	t = CopyExportSymInfo(iData+pos, elffile);
+	if (t<0)
+		return KErrGeneral;
+	pos += t;
+
+	pos += CopyData(iData + pos, elffile);
+	if (nimports)
+		{
+		memcpy(iData + pos, newImportSection, importSectionSize);
+		pos += ALIGN4(importSectionSize);
+		}
+	if (codeRelocSize)
+		{
+		memcpy(iData + pos, newCodeRelocs, codeRelocSize);
+		pos += codeRelocSize;
+		}
+	if (dataRelocSize)
+		{
+		memcpy(iData + pos, newDataRelocs, dataRelocSize);
+		pos += dataRelocSize;
+		}
+
+	// locate the entry point
+	TUint entryPointOffset=elffile.GetEntryPointOffset();
+
+	// Arrange a header for this E32 Image
+	iHdr->iCpuIdentifier = (TUint16)ECpuArmV4;
+	// Import format is ELF-derived
+	iHdr->iFlags |= KImageImpFmt_ELF;
+	// ABI is ARM EABI
+	iHdr->iFlags |= KImageABI_EABI;
+	if (ImageIsDll(elffile))
+		{
+		iHdr->iFlags |= KImageDll;
+		if (iHdr->iDataSize && !aAllowDllData)
+			return Print(EError, "Dll '%s' has initialised data.\n", iFileName);
+		if (iHdr->iBssSize  && !aAllowDllData)
+			return Print(EError, "Dll '%s' has uninitialised data.\n", iFileName);
+		}
+	iHdr->iHeapSizeMin = elffile.iHeapCommittedSize;
+	iHdr->iHeapSizeMax = elffile.iHeapReservedSize;
+	iHdr->iStackSize = elffile.iStackCommittedSize;
+	iHdr->iEntryPoint = entryPointOffset;
+	TInt r = DetermineEntryPointType();
+	if (r == KErrCorrupt)
+		return Print(EError, "File '%s': Bad Entry Point.\n", iFileName);
+	else if (r == KErrNotSupported)
+		return Print(EError, "File '%s': Bad Entry Point Type.\n", iFileName);
+
+	SetUpExceptions(elffile);
+
+	delete [] newImportSection;
+	delete [] newCodeRelocs;
+	delete [] newDataRelocs;
+
+	return KErrNone;
+	}
+
+TBool E32ImageFile_ELF::Translate(ELFFile &aElfFile)
+    {
+    // VT fix for warning
+    // fix warning in Linux
+    return Translate((const char*)aElfFile.iFileName, 0, EFalse);
+    }
+
+TBool E32ImageFile_ELF::ImageIsDll(ELFFile& aElfFile)
+    {
+    return aElfFile.ImageIsDll();
+    }
+
+void E32ImageFile_ELF::SetUpExceptions(ELFFile &aElfFile)
+    {
+    aElfFile.GetExceptionIndexInfo(iHdr->iExceptionDescriptor);
+    }
+
+void E32ImageFile_ELF::SetSymNameLookup(TInt aSymNameLkupEnabled)
+	{
+	if(aSymNameLkupEnabled)
+		iHdr->iFlags |= KImageNmdExpData;
+	else
+		iHdr->iFlags &= ~KImageNmdExpData;
+	}
+TBool E32ImageFile_ELF::IsNamedLookupEnabled()
+{
+	return (iHdr->iFlags & KImageNmdExpData);
+}
+
+TBool E32ImageFile_ELF::SetUpLookupTable(ELFFile &aElfFile)
+// Symbol lookup by name is enabled. Create the symbol table with names
+// and their values.
+{
+	if(!aElfFile.SetUpLookupTable() )
+		return FALSE;
+	SetSymNameLookup(TRUE);
+	return TRUE;
+}
+
+// Build the infrastructure for symbol lookup via name
+TInt E32ImageFile_ELF::DoSymbolLookupHeader(ELFFile &aElfFile, TInt aBaseOffset)
+	{
+	if(!IsNamedLookupEnabled())
+		return 0;
+	
+	aElfFile.SetLookupTblBase(aBaseOffset);
+	return aElfFile.GetLookupTblSize(); 
+	}
+TUint E32ImageFile_ELF::CopyExportSymInfo(char *p, ELFFile &aElfFile)
+	{
+	iHdr->iCodeSize += aElfFile.GetLookupTblSize();
+	iHdr->iTextSize = iHdr->iCodeSize ;
+	return aElfFile.GetSymLookupSection(p);
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elftools/genstubs/genstubs.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,436 @@
+// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+
+#include <tools/elfdefs.h>
+
+#define MAXPATHNAMELENGTH 2000
+#define MAXSYMBOLLENGTH 2000
+
+#define writef(f, d, n, s) if ( 1 != fwrite(d, n, 1, f)) { croak(s); }
+
+void croak(char * s)
+{
+  printf("GENSTUB ERROR: %s\n", s);
+  exit(EXIT_FAILURE);
+}
+
+long codeSectionData [] = 
+{
+  0xe51ff004,    // LDR      pc,0x4
+  0x00000000     // the pointer to the imported code
+};
+
+
+#define COMMENTSTRING "\tAndy's magic stub generator vsn 0.2\n"
+char commentSectionData[] = // "\tAndy's magic stub generator vsn 0.2\n"
+{ 
+  '\t','A','n','d','y','\'','s',' ','m','a','g','i','c',' ',
+  's','t','u','b',' ','g','e','n','e','r','a','t','o','r',' ',
+  'v','s','n',' ','0','.','2','\n'
+};
+
+char directiveSectionData[] = // "#<SYMEDIT>\nIMPORT "
+{
+  '#','<','S','Y','M','E','D','I','T','>','\n',
+  'I','M','P','O','R','T',' '
+};
+
+char strtabSectionData [] =
+{
+  0,'$','a',0,                                                          // $a
+  '$','d',0,                                                            // $d
+  'S','t','u','b','C','o','d','e',0,                                    // StubCode
+  '.','d','i','r','e','c','t','i','v','e',0,                            // .directive
+  't','h','e','I','m','p','o','r','t','e','d','S','y','m','b','o','l',0 // theImportSymbol
+};
+
+Elf32_Sym symtabSectionData[] =
+{
+  // undefined symbol
+  {
+    0, // st_name
+    0, // st_value
+    0, // st_size
+    0, // st_info
+    0, // st_other
+    0  // stshndx
+  },
+  // $a
+  {
+    1, // st_name
+    0, // st_value
+    0, // st_size
+    ELF32_ST_INFO(STB_LOCAL,STT_FUNC), // st_info
+    0, // st_other
+    1  // stshndx
+  },
+  // $d
+  {
+    4, // st_name
+    4, // st_value
+    0, // st_size
+    ELF32_ST_INFO(STB_LOCAL,STT_OBJECT), // st_info
+    0, // st_other
+    1  // stshndx
+  },
+  // StubCode
+  {
+    7, // st_name
+    0, // st_value
+    sizeof(codeSectionData), // st_size
+    ELF32_ST_INFO(STB_LOCAL,STT_SECTION), // st_info
+    0, // st_other
+    1  // stshndx
+  },
+  // .directive
+#define DIRECTIVESYMNDX 4
+  {
+    16,// st_name
+    0, // st_value
+    0, // st_size - to be filled on
+    ELF32_ST_INFO(STB_LOCAL,STT_SECTION), // st_info
+    0, // st_other
+    3  // stshndx
+  },
+  // theImportedSymbol
+  {
+    27, // st_name
+    4, // st_value
+    0, // st_size
+    ELF32_ST_INFO(STB_LOCAL,STT_FUNC), // st_info
+    0, // st_other
+    1  // stshndx
+  },
+
+  // the exported symbol
+#define EXPORTEDSYMBOLSTRNDX 45
+  {
+    EXPORTEDSYMBOLSTRNDX, // st_name
+    0, // st_value
+    0, // st_size
+    ELF32_ST_INFO(STB_GLOBAL,STT_FUNC), // st_info
+    0, // st_other
+    1  // stshndx
+  },
+  // the imported symbol
+#define IMPORTEDSYMBOLSYMNDX 7
+  {
+    0, // st_name - needs to be filled in = EXPORTEDSYMBOLSTRNDX + strlen(exportedSymbol) + 1
+    0, // st_value
+    0, // st_size
+    ELF32_ST_INFO(STB_GLOBAL,STT_NOTYPE), // st_info
+    0, // st_other
+    SHN_UNDEF  // stshndx
+  }
+};
+
+Elf32_Rel relocSectionData [] =
+{
+  {
+    0x00000004, // r_offset
+    ELF32_R_INFO(IMPORTEDSYMBOLSYMNDX, R_ARM_ABS32)
+  }
+};
+
+char shstrtabSectionData []= 
+{
+  0,'S','t','u','b','C','o','d','e',0,                 // StubCode
+  '.','r','e','l','S','t','u','b','C','o','d','e',0,   // .relStubCode
+  '.','d','i','r','e','c','t','i','v','e',0,           // .directive
+  '.','s','y','m','t','a','b',0,                       // .symtab
+  '.','s','t','r','t','a','b',0,                       // .strtab
+  '.','c','o','m','m','e','n','t',0,                  // .comment
+  '.','s','h','s','t','r','t','a','b',0                // .shstrtab
+};
+
+Elf32_Shdr SectionHeaderTable[] = 
+{
+  // dummy section
+  {
+    0,             // sh_name - to be filled
+    SHT_NULL,      // sh_type
+    0,             // sh_flags
+    0,             // sh_addr
+    0,             // sh_offset - file offset of this section - to be filled in
+    0,             // sh_size - to be filled in
+    0,             // sh_link
+    0,             // sh_info
+    0,             // sh_addralign
+    0              // sh_entsize
+  },
+
+  // StubCode section
+#define CODEINDEX 1
+#define CODEOFFSET (sizeof(Elf32_Ehdr) + (8 * sizeof(Elf32_Shdr)))
+#define CODESIZE (sizeof(codeSectionData))
+  {
+    1,             // sh_name 
+    SHT_PROGBITS,  // sh_type
+    SHF_ALLOC + SHF_EXECINSTR, // sh_flags
+    0,             // sh_addr
+    CODEOFFSET,    // sh_offset 
+    CODESIZE,      // sh_size
+    SHN_UNDEF,     // sh_link
+    0,             // sh_info
+    4,             // sh_addralign
+    0              // sh_entsize
+  },
+
+  // relocation data
+#define RELOCINDEX 2
+#define RELOCOFFSET (CODEOFFSET + CODESIZE)
+#define RELOCSIZE (sizeof(relocSectionData))
+  {
+    10,            // sh_name - to be filled
+    SHT_REL,       // sh_type
+    0,             // sh_flags
+    0,             // sh_addr
+    RELOCOFFSET,   // sh_offset - file offset of this section - to be filled in
+    RELOCSIZE,     // sh_size - there's only one of them
+    3,             // sh_link - index of the symbol table we use
+    1,             // sh_info - refers to section 1
+    0,             // sh_addralign
+    sizeof(Elf32_Rel) // sh_entsize
+  },
+
+  // .symtab
+#define SYMTABINDEX 3
+#define SYMTABOFFSET (RELOCOFFSET + RELOCSIZE)
+#define SYMTABSIZE sizeof(symtabSectionData)
+{
+    34,            // sh_name 
+    SHT_SYMTAB,    // sh_type
+    0,             // sh_flags
+    0,             // sh_addr
+    SYMTABOFFSET,  // sh_offset
+    SYMTABSIZE, // sh_size
+    7,             // sh_link - .strtab - the string table section
+    6,             // sh_info - last local symbol
+    0,             // sh_addralign
+    sizeof(Elf32_Sym)// sh_entsize
+  },
+
+  // .comment
+#define COMMENTINDEX 4
+#define COMMENTOFFSET (SYMTABOFFSET + SYMTABSIZE)
+#define COMMENTSIZE (sizeof(commentSectionData))
+{
+    50,            // sh_name 
+    SHT_PROGBITS,  // sh_type
+    0,             // sh_flags
+    0,             // sh_addr
+    COMMENTOFFSET, // sh_offset
+    COMMENTSIZE,   // sh_size - to be filled in
+    SHN_UNDEF,     // sh_link
+    0,             // sh_info
+    0,             // sh_addralign
+    0              // sh_entsize
+  },
+
+
+  // .shstrtab
+#define SHSTRTABINDEX 5
+#define SHSTRTABOFFSET (COMMENTOFFSET + COMMENTSIZE)
+#define SHSTRTABSIZE sizeof(shstrtabSectionData)
+  {
+    59,            // sh_name 
+    SHT_STRTAB,    // sh_type
+    0,             // sh_flags
+    0,             // sh_addr
+    SHSTRTABOFFSET,// sh_offset
+    SHSTRTABSIZE,  // sh_size - to be filled in
+    SHN_UNDEF,     // sh_link
+    0,             // sh_info
+    0,             // sh_addralign
+    0              // sh_entsize
+      },
+
+  // .directive section
+#define DIRECTIVEINDEX 6
+#define DIRECTIVEOFFSET SHSTRTABOFFSET + SHSTRTABSIZE
+  {
+    23,            // sh_name 
+    SHT_PROGBITS,  // sh_type
+    0,             // sh_flags
+    0,             // sh_addr
+    DIRECTIVEOFFSET,// sh_offset
+    0,             // sh_size - to be filled in
+    SHN_UNDEF,     // sh_link 
+    0,             // sh_info 
+    1,             // sh_addralign
+    0              // sh_entsize
+  },
+
+  // .strtab
+#define STRTABINDEX 7
+  {
+    42,            // sh_name
+    SHT_STRTAB,    // sh_type
+    0,             // sh_flags
+    0,             // sh_addr
+    0,             // sh_offset - to be filled in
+    0,             // sh_size - to be filled in
+    SHN_UNDEF,     // sh_link
+    0,             // sh_info
+    0,             // sh_addralign
+    0              // sh_entsize
+  }
+};
+
+#define ELFOBJECTFILEVERSION 1
+#define EF_NONE 0x02000000
+
+Elf32_Ehdr headerTemplate = 
+{
+  {0x7f, 'E', 'L', 'F', 
+   ELFCLASS32, ELFDATA2LSB, ELFOBJECTFILEVERSION, 0,
+   0, 0, 0, 0,
+   0, 0, 0, 0},       // e_ident
+  ET_REL,             // e_type
+  EM_ARM,             // e_machine
+  EV_CURRENT,         // e_version
+  0x00000000,         // e_entry
+  0,                  // e_phoff
+  sizeof(Elf32_Ehdr), // e_shoff
+  EF_ARM_EABI_VERSION,// e_flags
+  sizeof(Elf32_Ehdr), // e_ehsize
+  sizeof(Elf32_Phdr), // e_phentsize
+  0,                  // e_phnum
+  sizeof(Elf32_Shdr), // e_shentsize
+#define SHNUM (sizeof(SectionHeaderTable)/sizeof(Elf32_Shdr))
+  SHNUM,              // e_shnum 
+  SHSTRTABINDEX       // e_shstrndx
+};
+
+void WriteElfHeader(FILE * file);
+void WriteSectionHeaderTable(FILE * file);
+void WriteCodeSection(FILE * file);
+void WriteRelocationSection(FILE * file);
+void WriteCommentSection(FILE * file);
+void WriteSymtabSection(FILE * file);
+void WriteShStrtabSection(FILE * file);
+void WriteDirectiveSection(FILE * file, char * import);
+void WriteStrtabSection(FILE * file, char * eexport, char * import);
+
+void WriteStubFileX(FILE * file, char * eexport, char * import)
+{
+  int directiveSize = sizeof(directiveSectionData) + strlen(import) + 1; // terminated by a newline
+  int strtabSize = sizeof(strtabSectionData) + strlen(eexport) + strlen(import) + 2; // strings are null terminated
+
+  SectionHeaderTable[DIRECTIVEINDEX].sh_size = directiveSize;
+  SectionHeaderTable[STRTABINDEX].sh_offset = DIRECTIVEOFFSET+ directiveSize;
+  SectionHeaderTable[STRTABINDEX].sh_size = strtabSize;
+
+  symtabSectionData[IMPORTEDSYMBOLSYMNDX].st_name  = EXPORTEDSYMBOLSTRNDX + strlen(eexport) + 1;
+
+  WriteElfHeader(file);
+  WriteSectionHeaderTable(file);
+  WriteCodeSection(file);
+  WriteRelocationSection(file);
+  WriteSymtabSection(file);
+  WriteCommentSection(file);
+  WriteShStrtabSection(file);
+  WriteDirectiveSection(file, import);
+  WriteStrtabSection(file, eexport, import);
+}
+
+void WriteElfHeader(FILE * file)
+{
+  writef(file, &headerTemplate, sizeof(headerTemplate), "ELF header");
+}
+
+void WriteSectionHeaderTable(FILE * file)
+{
+  writef(file, &SectionHeaderTable, sizeof(SectionHeaderTable), "Section header table");
+}
+
+void CheckFileOffset(FILE * f, int i, char *s)
+{
+	int o = SectionHeaderTable[i].sh_offset;
+	if (ftell(f)!= o) { croak(s); }
+}
+
+#define WriteSection(f, i, d, e1, e2) { CheckFileOffset(f, i, e1); writef(f, d, sizeof(d), e2); }
+
+void WriteCodeSection(FILE * file)
+{
+  WriteSection(file, CODEINDEX, codeSectionData,"StubCode section offset incorrect", "StubCode section");
+}
+
+void WriteRelocationSection(FILE * file)
+{
+  WriteSection(file, RELOCINDEX, relocSectionData,".relStubCode section offset incorrect", ".relStubCode section");
+}
+
+void WriteCommentSection(FILE * file)
+{
+  WriteSection(file, COMMENTINDEX, commentSectionData,".comment section offset incorrect", ".comment section");
+}
+
+void WriteSymtabSection(FILE * file)
+{
+  WriteSection(file, SYMTABINDEX, symtabSectionData,".symtab section offset incorrect", ".symtab section");
+}
+
+void WriteShStrtabSection(FILE * file)
+{
+  WriteSection(file, SHSTRTABINDEX, shstrtabSectionData,".shstrtab section offset incorrect", ".shstrtab section");
+}
+
+void WriteDirectiveSection(FILE * file, char * import)
+{
+  WriteSection(file, DIRECTIVEINDEX, directiveSectionData,
+	       ".directive section offset incorrect", ".directive section");
+  fprintf(file, "%s\n", import);
+}
+
+void WriteStrtabSection(FILE * file, char * eexport, char * import)
+{
+  char n = 0;
+  WriteSection(file, STRTABINDEX, strtabSectionData,".strtab section offset incorrect", ".strtab section");
+  fprintf(file, eexport);
+  fwrite(&n, sizeof(n), 1, file);
+  fprintf(file, import);
+  fwrite(&n, sizeof(n), 1, file);
+}
+
+
+
+void WriteStubFile(char * file, char * eexport, char * import)
+{
+  FILE * f = fopen(file, "wb");
+  if (!f) croak("can't open output file");
+  
+  WriteStubFileX(f, eexport, import);
+
+  fclose(f);
+}
+
+
+int  main (void)
+{
+  
+  char file[MAXPATHNAMELENGTH], eexport[MAXSYMBOLLENGTH], import[MAXSYMBOLLENGTH];
+  
+  while (!feof(stdin) && !ferror(stdin)) {
+    fscanf(stdin, "%s %s %s\n", file, eexport, import);
+    WriteStubFile(file, eexport, import);
+  }
+  return EXIT_SUCCESS;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elftools/getexports/geninf.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,428 @@
+// Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+
+
+#include <tools/elfdefs.h>
+#define DEFAULT_VERSION 2
+
+#define ELFADDR(rtype, p, o) (rtype *)(((char *)p) + o)
+
+FILE *OUTFILE;
+
+void croak(char * s)
+{
+	printf("GENINF ERROR: %s\n", s);
+	exit(EXIT_FAILURE);
+}
+
+void croak2(char * s1, char * s2)
+{
+	printf("GENINF ERROR: %s %s\n", s1, s2);
+	exit(EXIT_FAILURE);
+}
+
+int GetFileSize(FILE * f, char * file)
+{
+	int r = fseek(f, 0, SEEK_END);
+	if (r) croak2("can't seek to end of file:", file);
+	r = ftell(f);
+	rewind(f);
+	return r;
+}
+
+void EnsureElf(Elf32_Ehdr* eh)
+{
+	if (!(eh->e_ident[EI_MAG0] == ELFMAG0 &&
+	      eh->e_ident[EI_MAG1] == ELFMAG1 &&
+	      eh->e_ident[EI_MAG2] == ELFMAG2 &&
+	      eh->e_ident[EI_MAG3] == ELFMAG3)) 
+		croak("Invalid ELF magic.\n");
+	if (eh->e_ident[EI_CLASS] != ELFCLASS32) 
+		croak("File is not a 32 bit ELF object file.\n");
+	if (eh->e_ident[EI_DATA] != ELFDATA2LSB) 
+		croak("File data encoding is not Little Endian.\n");
+  	if (eh->e_machine != EM_ARM) 
+		croak("File does not target ARM/THUMB processors.\n");
+
+}
+
+
+Elf32_Ehdr* OpenElfFile (char* file)
+{
+	Elf32_Ehdr* eh;
+	FILE* f = fopen(file, "rb");
+	if (!f)
+		croak2("can't open file:", file);
+
+	int fsize = GetFileSize(f, file);
+
+	eh = (Elf32_Ehdr*)malloc(fsize);
+	if (!eh)
+		croak("Out of memory");
+
+	if (fread(eh, fsize, 1, f) != 1)
+		croak2("Can't read file", file);
+
+	EnsureElf(eh);
+
+	return eh;
+}
+
+typedef struct NameList 
+{
+	NameList * nl_next;
+	char * nl_name;
+	unsigned int nl_size;
+} NameList;
+
+
+static NameList * ExportedData = 0;
+static NameList * ExportedCode = 0;
+//Workaround  for compiler defect(To avoid export of static symbols)
+static NameList * LocalSymbols = 0;
+
+
+NameList* IsPresentInList(char * name, NameList * list)
+{
+	NameList * e = list;
+	while (e) {
+		if (!strcmp(name, e->nl_name))
+			return e;
+		else
+			e = e->nl_next;
+	}
+	return 0;
+}
+
+NameList* IsExportedData(char * name) 
+{
+	return IsPresentInList(name,ExportedData);
+}
+
+NameList* IsExportedCode(char * name) 
+{
+	return IsPresentInList(name,ExportedCode);
+}
+
+//Workaround  for compiler defect(To avoid export of local symbols)
+NameList* IsLocalSymbol(char * name) 
+{
+ 	return IsPresentInList(name,LocalSymbols);
+}
+
+void AddToList(char * name, NameList *& list, unsigned int aSymSz)
+{
+	NameList * ed = new NameList;
+	ed->nl_name = name;
+	ed->nl_size = aSymSz;
+	ed->nl_next = list;
+	list = ed;
+}
+
+void AddExportedData(char * name, unsigned int aSymSz)
+{
+	AddToList(name, ExportedData, aSymSz);
+}
+
+void AddExportedCode(char * name, unsigned int aSymSz)
+{
+	AddToList(name, ExportedCode, aSymSz);
+}
+
+//Workaround  for compiler defect(To avoid export of local symbols)
+void AddLocalSymbols(char * name)
+{
+	AddToList(name, LocalSymbols, 0);
+}
+
+void InitSymbolsLists(Elf32_Ehdr * eh,Elf32_Shdr * shdr,int shnum)
+{
+	Elf32_Sym * symtab = 0;
+	int nSyms = 0;
+	char * strtab = 0;
+
+	for (int i = 0; (i < shnum); i++) {
+		if (shdr[i].sh_type == SHT_SYMTAB) {
+			symtab = ELFADDR(Elf32_Sym, eh, shdr[i].sh_offset);
+			nSyms = shdr[i].sh_size / shdr[i].sh_entsize;
+			strtab = ELFADDR(char, eh, shdr[shdr[i].sh_link].sh_offset);
+			break;
+		}
+	}
+	for (i = 0; i < nSyms; i++) {
+		if (symtab[i].st_info == ELF32_ST_INFO(STB_GLOBAL, STT_OBJECT)) {
+			char * name = ELFADDR(char, strtab, symtab[i].st_name);
+			AddExportedData(name, symtab[i].st_size);
+		} else if (symtab[i].st_info == ELF32_ST_INFO(STB_GLOBAL, STT_FUNC)) {
+			char * name = ELFADDR(char, strtab, symtab[i].st_name);
+			AddExportedCode(name, symtab[i].st_size);
+		}
+		else if (symtab[i].st_info == ELF32_ST_INFO(STB_LOCAL, STT_FUNC) || 
+ 			symtab[i].st_info == ELF32_ST_INFO(STB_LOCAL, STT_OBJECT)) {
+		// Workaround for compiler defect to avoid export of local symbols
+ 			char * name = ELFADDR(char, strtab, symtab[i].st_name);
+ 			AddLocalSymbols(name);
+ 		}
+	}
+}
+
+#define DIRECTIVE_TAG "#<SYMEDIT>#"
+#define DIRECTIVE_TAG_SIZE (sizeof(DIRECTIVE_TAG) - 1)
+#define EXPORT_DIRECTIVE "EXPORT "
+#define EXPORT_DIRECTIVE_SIZE (sizeof(EXPORT_DIRECTIVE) - 1)
+
+void PrintExportsFromSection(char * section, int size)
+{
+	if (strncmp(DIRECTIVE_TAG, section, DIRECTIVE_TAG_SIZE) != 0) 
+		croak("Unrecognized .directive tag");
+	section += (DIRECTIVE_TAG_SIZE + 1);
+	size -= (DIRECTIVE_TAG_SIZE + 1);
+	// The separator for the following entries is 0x0A (i.e. \n). 
+	// We're only interested in lines starting with EXPORT
+	char eolchar = '\n';
+	NameList* aDataSymbol;
+	while (size > 0) {
+		
+		char * eolp = (char *)memchr(section, eolchar, size);
+		int linelength = (eolp - section) + 1;
+		if (!strncmp(EXPORT_DIRECTIVE, section, EXPORT_DIRECTIVE_SIZE)) {
+			char * symbol = section + EXPORT_DIRECTIVE_SIZE;
+			int symbolsize = linelength - EXPORT_DIRECTIVE_SIZE - 1;
+			// null-terminate the string - doesn't matter that we side effect the
+			// section since we won't see it again and saves making a copy.
+			symbol[symbolsize] = 0;
+			if (IsExportedCode(symbol)) {
+				fprintf(OUTFILE, " %s\n", symbol);
+
+			} else if ( (aDataSymbol = IsExportedData(symbol)) != 0) {
+				fprintf(OUTFILE, " %s DATA %d\n", symbol, aDataSymbol->nl_size);
+			}
+			else {
+				//All those symbols included from static libs that are
+				//treated as exported because of the dll_runtime compiler
+				//option.Such symbols donot figure out in the symbol table.
+				//Hence are handled separately here.
+				
+				//Workaround  for compiler defect - To avoid export of local symbols
+				if(!IsLocalSymbol(symbol)) 
+ 				{																	
+					fprintf(OUTFILE, " %s\n", symbol);								
+				}
+
+			}
+		}
+		size -= linelength;
+		section += linelength;
+	}
+}
+
+void PrintABIv1ExportSymbols (Elf32_Ehdr * eh)
+{
+  int shoff = eh->e_shoff;                      // offset of section header table
+  if (shoff) {
+    Elf32_Shdr * shdr = ELFADDR(Elf32_Shdr, eh, shoff);
+
+    int shnum = eh->e_shnum;                    // number of section headers
+
+	// e_shnum will be 0 if the number of sections is >= SHN_LORESERVE (0xff00)
+	// If this is the case, sh_size contains the actual number of section headers.
+	// If sh_size is 0, there really aren't any section headers.
+	if (!shnum)
+		shnum = shdr->sh_size;
+
+    int shstrndx = eh->e_shstrndx;
+
+	// If the section name string table index is >= SHN_LORESERVE (0xff00), shstrndx
+	// contains SHN_XINDEX (0xffff).
+	// If this is the case, sh_link contains the actual index of the section name string
+	// table, otherwise sh_link is 0.
+
+	if (shstrndx >= 65535)
+		shstrndx = shdr->sh_link;
+
+	// Initialize list of global data symbols
+	InitSymbolsLists(eh,shdr,shnum);
+
+    int snameoffset = shdr[shstrndx].sh_offset; // offset in file of sections' names
+    char * sname = ELFADDR(char, eh, snameoffset);
+    for (int i = 0; i < shnum; i++) {
+      if (i != shstrndx) {
+		if (!strcmp(".directive", &sname[shdr[i].sh_name])) {
+			// we're in business. print the section to stdout
+			char * data = ELFADDR(char, eh, shdr[i].sh_offset);
+			int size = shdr[i].sh_size;
+			PrintExportsFromSection(data, size);
+		}
+      }
+    }
+  }
+}
+
+void PrintABIv2ExportSymbols(Elf32_Ehdr *eh)
+{
+	int shoff = eh->e_shoff;                      // offset of section header table
+	if (shoff) {
+	Elf32_Shdr * shdr = ELFADDR(Elf32_Shdr, eh, shoff);
+
+	int shnum = eh->e_shnum;                    // number of section headers
+
+	// e_shnum will be 0 if the number of sections is >= SHN_LORESERVE (0xff00)
+	// If this is the case, sh_size contains the actual number of section headers.
+	// If sh_size is 0, there really aren't any section headers.
+	if (!shnum)
+		shnum = shdr->sh_size;
+
+	int shstrndx = eh->e_shstrndx;
+
+	// If the section name string table index is >= SHN_LORESERVE (0xff00), shstrndx
+	// contains SHN_XINDEX (0xffff).
+	// If this is the case, sh_link contains the actual index of the section name string
+	// table, otherwise sh_link is 0.
+
+	if (shstrndx >= 65535)
+		shstrndx = shdr->sh_link;
+
+	//Get the symbol table
+	Elf32_Sym * symtab = 0;
+	int nSyms = 0;
+	char * strtab = 0;
+
+	for (int i = 0; (i < shnum); i++) {
+		if (shdr[i].sh_type == SHT_DYNSYM) {
+			symtab = ELFADDR(Elf32_Sym, eh, shdr[i].sh_offset);
+			nSyms = shdr[i].sh_size / shdr[i].sh_entsize;
+			strtab = ELFADDR(char, eh, shdr[shdr[i].sh_link].sh_offset);
+			break;
+		}
+	}
+	for (i = 0; i < nSyms; i++) {
+		if (symtab[i].st_info == ELF32_ST_INFO(STB_GLOBAL, STT_OBJECT)) {
+			char * name = ELFADDR(char, strtab, symtab[i].st_name);
+			char * CodeSection = ELFADDR(char, eh, shdr[symtab[i].st_shndx].sh_offset);
+			Elf32_Word *aLocation = ELFADDR(Elf32_Word, CodeSection, symtab[i].st_value);
+			int ordinal = *aLocation;
+			fprintf(OUTFILE, "%s %d DATA %d %d\n",name, ordinal, symtab[i].st_size);
+		} else if (symtab[i].st_info == ELF32_ST_INFO(STB_GLOBAL, STT_FUNC)) {
+			char * name = ELFADDR(char, strtab, symtab[i].st_name);
+			char * CodeSection = ELFADDR(char, eh, shdr[symtab[i].st_shndx].sh_offset);
+			Elf32_Word *aLocation = ELFADDR(Elf32_Word, CodeSection, symtab[i].st_value);
+			int ordinal = *aLocation;
+			fprintf(OUTFILE, "%s %d \n",name, ordinal);
+		}
+	}
+	}
+}
+
+void PrintSONAME(Elf32_Ehdr *eh)
+{
+	int shoff = eh->e_shoff;                      // offset of section header table
+	if (shoff) {
+		Elf32_Shdr * shdr = ELFADDR(Elf32_Shdr, eh, shoff);
+
+		int shnum = eh->e_shnum;                    // number of section headers
+
+		// e_shnum will be 0 if the number of sections is >= SHN_LORESERVE (0xff00)
+		// If this is the case, sh_size contains the actual number of section headers.
+		// If sh_size is 0, there really aren't any section headers.
+		if (!shnum)
+			shnum = shdr->sh_size;
+
+		int shstrndx = eh->e_shstrndx;
+		char *aSHdrStrTab = ELFADDR(char, eh, shdr[shstrndx].sh_offset);
+		int i;
+		Elf32_Verdef *aVerDef = 0;
+		char *aStringTab = 0;
+		for(i = 0; i < shnum; i++) {
+			if(strcmp(aSHdrStrTab + shdr[i].sh_name, ".version_d") == 0) {
+				aVerDef = ELFADDR(Elf32_Verdef,eh , shdr[i].sh_offset );
+				aStringTab = ELFADDR(char, eh, shdr[shdr[i].sh_link].sh_offset);
+				break;
+			}
+		}
+		if(!aVerDef)
+			return;
+		char *aLinkAsName;
+		while(aVerDef) {
+			if(aVerDef->vd_ndx == DEFAULT_VERSION){
+				Elf32_Verdaux *aVerAux = ELFADDR(Elf32_Verdaux, aVerDef, aVerDef->vd_aux);
+				aLinkAsName = ELFADDR(char, aStringTab, aVerAux->vda_name);
+				fprintf(OUTFILE, "%s \n", aLinkAsName);
+				break;
+			}
+			aVerDef = ELFADDR(Elf32_Verdef, aVerDef, aVerDef->vd_next);
+		}
+	}
+}
+
+int main(int argc, char** argv)
+{
+	if( argc < 2 )
+	{
+		return EXIT_FAILURE;
+	}
+
+	char* file = argv[argc - 1];//The last arg is the file name
+	int idx = 0;
+	bool outFileOpt = false;
+	bool proxyDso = false;
+	bool soname = false;
+	while(idx < argc )
+	{
+		if((stricmp(argv[idx], "-o") == 0) && ((idx + 1) < argc) )
+		{
+			idx++;
+			char *outfilename = argv[idx];
+			OUTFILE = fopen(outfilename, "wb");
+			outFileOpt = true;
+		}
+		else if(stricmp(argv[idx], "-d") == 0)
+		{
+			proxyDso = true;
+		}
+		else if(stricmp(argv[idx], "-s") == 0)
+		{
+			soname = true;
+		}
+		idx++;
+	}
+
+	if(!outFileOpt)
+	{
+		OUTFILE = stdout;
+	}
+
+	Elf32_Ehdr * eh = OpenElfFile(file);
+
+	if( soname ) {
+		PrintSONAME(eh);
+	}
+	else if( !proxyDso ) {
+		PrintABIv1ExportSymbols(eh);
+	}
+	else {
+		PrintABIv2ExportSymbols(eh);
+	}
+	return EXIT_SUCCESS;
+}
+  
+
+  
+
+  
+  
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elftools/getexports/getdirective.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,125 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+
+#include <tools/elfdefs.h>
+
+#define ADDR(rtype, p, o) (rtype *)(((char *)p) + o)
+
+void croak(char * s)
+{
+  printf("GETDIRECTIVE ERROR: %s\n", s);
+  exit(EXIT_FAILURE);
+}
+
+void croak2(char * s1, char * s2)
+{
+  printf("GETDIRECTIVE ERROR: %s %s\n", s1, s2);
+  exit(EXIT_FAILURE);
+}
+
+int GetFileSize(FILE * f, char * file)
+{
+  int r = fseek(f, 0, SEEK_END);
+  if (r) croak2("can't seek to end of file:", file);
+  r = ftell(f);
+  rewind(f);
+  return r;
+}
+
+void EnsureElf(Elf32_Ehdr* ef)
+	{
+	// Do nothing for now
+	(void)ef;
+	}
+
+Elf32_Ehdr* OpenElfFile (char* file)
+	{
+	Elf32_Ehdr* eh;
+	FILE* f = fopen(file, "rb");
+	if (!f)
+		croak2("can't open file:", file);
+
+	int fsize = GetFileSize(f, file);
+
+	eh = (Elf32_Ehdr*)malloc(fsize);
+	if (!eh)
+		croak("Out of memory");
+
+	if (fread(eh, fsize, 1, f) != 1)
+		croak2("Can't read file", file);
+
+	EnsureElf(eh);
+
+	return eh;
+	}
+
+void PrintDirectiveSections (Elf32_Ehdr * eh)
+{
+  int shoff = eh->e_shoff;                      // offset of section header table
+  if (shoff) {
+    Elf32_Shdr * shdr = ADDR(Elf32_Shdr, eh, shoff);
+
+    int shnum = eh->e_shnum;                    // number of section headers
+
+	// e_shnum will be 0 if the number of sections is >= SHN_LORESERVE (0xff00)
+	// If this is the case, sh_size contains the actual number of section headers.
+	// If sh_size is 0, there really aren't any section headers.
+	if (!shnum)
+		shnum = shdr->sh_size;
+
+    int shstrndx = eh->e_shstrndx;
+
+	// If the section name string table index is >= SHN_LORESERVE (0xff00), shstrndx
+	// contains SHN_XINDEX (0xffff).
+	// If this is the case, sh_link contains the actual index of the section name string
+	// table, otherwise sh_link is 0.
+
+	if (shstrndx >= 65535)
+		shstrndx = shdr->sh_link;
+
+    int snameoffset = shdr[shstrndx].sh_offset; // offset in file of sections' names
+    char * sname = ADDR(char, eh, snameoffset);
+    for (int i = 0; i < shnum; i++) {
+      if (i != shstrndx) {
+	if (!strcmp(".directive", &sname[shdr[i].sh_name])) {
+	  // we're in business. print the section to stdout
+	  char * data = ADDR(char, eh, shdr[i].sh_offset);
+	  int size = shdr[i].sh_size;
+	  fwrite(data, size, 1, stdout);
+	  printf("\n");
+	}
+      }
+    }
+  }
+}
+	
+int main(int argc, char** argv)
+	{
+	(void)argc;
+	char* file = argv[1];
+	PrintDirectiveSections(OpenElfFile(file));
+
+	return EXIT_SUCCESS;
+	}
+  
+
+  
+
+  
+  
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elftools/inc/e32ldfmt.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,30 @@
+// Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Derived from E32IMAGE.H
+// 
+//
+
+#ifndef __E32LDFMT_H__
+#define __E32LDFMT_H__
+
+#ifdef __MSVCDOTNET__
+#include <fstream>
+#else //!__MSVCDOTNET__
+#include <fstream.h>
+#endif //__MSVCDOTNET__
+
+#include <e32std.h>
+#include <f32image.h>
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elftools/inc/elfdefs.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,817 @@
+// Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// lifted from the ARMELF spec
+// 
+//
+
+#ifndef __ELFDEFS_H__
+#define __ELFDEFS_H__
+
+
+// ARMELF 3.1.2
+// Data Representation
+typedef unsigned int Elf32_Addr;     //Unsigned program address
+typedef unsigned short Elf32_Half;   //Unsigned medium integer
+typedef unsigned int Elf32_Off;      //Unsigned file offset
+typedef signed int Elf32_Sword;      //Signed large integer
+typedef unsigned int Elf32_Word;     //Unsigned large integer
+typedef unsigned char UChar;         //Unsigned small integer
+
+typedef char* MemAddr;
+/*
+3.2 ELF Header 
+Some object file control structures can grow, because the ELF header
+contains their actual sizes. If the object file format changes, a
+program may encounter control structures that are larger or smaller
+than expected. Programs might therefore ignore extra information. The
+treatment of missing information depends on context and will be
+specified when and if extensions are defined.
+*/
+#define EI_NIDENT 16
+typedef struct {
+
+  // marks the file as an object file and provide machine-independent 
+  // data with which to decode and interpret the file's contents.
+  unsigned char e_ident[EI_NIDENT];
+
+  // identifies the object file type.
+  Elf32_Half e_type;
+
+  // specifies the required architecture for an individual file.
+  Elf32_Half e_machine;
+
+  // identifies the object file version.
+  Elf32_Word e_version;
+
+  // gives the virtual address to which the system first transfers 
+  // control, thus starting the process. If the file has no associated
+  // entry point, this member holds zero.
+  Elf32_Addr e_entry;
+
+  // holds the program header table's file offset in bytes. If the 
+  // file has no program header table, this member holds zero.
+  Elf32_Off e_phoff;
+
+  // holds the section header table's file offset in bytes. If the 
+  // file has no section header table, this member holds zero.
+  Elf32_Off e_shoff;
+
+  // holds processor-specific flags associated with the file. Flag 
+  // names take the form EF_machine_flag.
+  Elf32_Word e_flags;
+
+  // holds the ELF header's size in bytes.
+  Elf32_Half e_ehsize;
+
+  // holds the size in bytes of one entry in the file's program 
+  // header table; all entries are the same size.
+  Elf32_Half e_phentsize;
+
+  // holds the number of entries in the program header table. 
+  // Thus the product of e_phentsize and e_phnum gives the table's 
+  // size in bytes. If a file has no program header table, e_phnum
+  // holds the value zero.
+  Elf32_Half e_phnum;
+
+  // holds a section header's size in bytes. A section header is 
+  // one entry in the section header table; all entries are the same size.
+  Elf32_Half e_shentsize;
+
+  // holds the number of entries in the section header table. Thus 
+  // the product of e_shentsize and e_shnum gives the section header 
+  // table's size in bytes. If a file has no section header table, 
+  // e_shnum holds the value zero.
+  Elf32_Half e_shnum;
+
+  // holds the section header table index of the entry associated 
+  // with the section name string table. If the file has no section 
+  // name string table, this member holds the value SHN_UNDEF. 
+  Elf32_Half e_shstrndx;
+
+} Elf32_Ehdr;
+
+// values for e_type
+#define ET_NONE 	0 // No file type
+#define ET_REL 		1 // Re-locatable
+#define ET_EXEC 	2 // Executable file
+#define ET_DYN 		3 // Shared object
+#define ET_CORE 	4 // Core file
+#define ET_LOPROC  0xff00 // Processor-specific
+#define ET_HIPROC  0xffff // Processor-specific
+
+//values for e_machine
+#define EM_NONE 	0 // No machine
+#define EM_M32 		1 // AT&T WE 32100
+#define EM_SPARC 	2 // SPARC
+#define EM_386 		3 // Intel Architecture
+#define EM_68K 		4 // Moto 68000
+#define EM_88K 		5 // Moto 88000
+#define EM_860 		7 // Intel 80860
+#define EM_MIPS 	8 // MIPS RS3000 Big-Endian
+#define EM_MIPS_RS4_BE 10 // MIPS RS4000 Big-Endian
+//#define RESERVED 11-16 Reserved for future use
+#define EM_ARM 	       40 //ARM/Thumb Architecture
+
+// values for e_version
+#define EV_NONE 	0 // Invalid version
+#define EV_CURRENT 	1 // Current version
+
+// ELF Identification
+#define EI_MAG0 	0 // File identification
+#define EI_MAG1 	1 // File identification
+#define EI_MAG2 	2 // File identification
+#define EI_MAG3 	3 // File identification
+#define EI_CLASS 	4 // File class
+#define EI_DATA 	5 // Data encoding
+#define EI_VERSION 	6 // File version
+#define EI_PAD 		7 // Start of padding bytes
+
+// values for e_ident[0-3]
+#define ELFMAG0        0x7f // e_ident[EI_MAG0]
+#define ELFMAG1 	'E' // e_ident[EI_MAG1]
+#define ELFMAG2 	'L' // e_ident[EI_MAG2]
+#define ELFMAG3 	'F' // e_ident[EI_MAG3]
+
+// values for e_ident[EI_CLASS]- identifies the file's class, or capacity.
+#define ELFCLASSNONE 	0 // Invalid class
+#define ELFCLASS32 	1 // 32-bit objects
+#define ELFCLASS64 	2 // 64-bit objects
+
+// values for e_ident[EI_DATA] - specifies the data encoding of the 
+// processor-specific data in the object file. 
+#define ELFDATANONE 	0 // Invalid data encoding
+#define ELFDATA2LSB 	1 // 2's complement , with LSB at lowest address.
+#define ELFDATA2MSB 	2 // 2's complement , with MSB at lowest address.
+
+// ARM/THUMB specific values for e_flags
+
+// e_entry contains a program-loader entry point
+#define EF_ARM_HASENTRY 0x02
+// Each subsection of the symbol table is sorted by symbol value
+#define EF_ARM_SYMSARESORTED 0x04
+// Symbols in dynamic symbol tables that are defined in sections
+// included in program segment n have st_shndx = n+ 1. 
+#define EF_ARM_DYNSYMSUSESEGIDX 0x8
+// Mapping symbols precede other local symbols in the symbol table
+#define EF_ARM_MAPSYMSFIRST 0x10
+// This masks an 8-bit version number, the version of the ARM EABI to
+// which this ELF file conforms. This EABI is version 2. A value of 0
+// denotes unknown conformance. (current version is 0x02000000)
+#define EF_ARM_EABIMASK 0xFF000000
+
+#define EF_ARM_EABI_VERSION 0x02000000
+#define EF_ARM_BPABI_VERSION 0x04000000
+
+/* 
+3.3 Sections
+
+An object file's section header table lets one locate all the file's
+sections. The section header table is an array of Elf32_Shdr
+structures as described below. A section header table index is a
+subscript into this array. The ELF header's e_shoff member gives the
+byte offset from the beginning of the file to the section header
+table; e_shnum tells how many entries the section header table
+contains; e_shentsize gives the size in bytes of each entry.
+*/
+
+// Some section header table indexes are reserved; an object file will
+// not have sections for these special indexes.
+
+// marks an undefined, missing, irrelevant, or otherwise meaningless 
+// section reference.
+#define SHN_UNDEF 	0
+// specifies the lower bound of the range of reserved indexes.
+#define SHN_LORESERVE 	0xff00
+// SHN_LOPROC-SHN_HIPRO - this inclusive range reserved for 
+// processor-specific semantics.
+#define SHN_LOPROC 	0xff00
+#define SHN_HIPROC 	0xff1f
+// Specifies absolute values for the corresponding reference. 
+// For example, symbols defined relative to section number SHN_ABS have 
+// absolute values and are not affected by relocation.
+#define SHN_ABS 	0xfff1
+// Symbols defined relative to this section are common symbols, 
+// such as FORTRAN COMMON or unallocated C external variables.
+#define SHN_COMMON 	0xfff2
+// specifies the upper bound of the range of reserved indexes.
+#define SHN_HIRESERVE 	0xffff
+
+typedef struct {
+
+  // specifies the name of the section. Its value is an index into the
+  // section header string table section [see String Tablebelow],
+  // giving the location of a null-terminated string.
+  Elf32_Word sh_name;
+
+  // categorizes the section's contents and semantics. Section types
+  // and their descriptions appear below.
+  Elf32_Word sh_type;
+
+  // Sections support 1-bit flags that describe miscellaneous
+  // attributes. Flag definitions appear below.
+  Elf32_Word sh_flags;
+
+  // If the section will appear in the memory image of a process, this
+  // member gives the address at which the section's first byte should
+  // reside. Otherwise, the member contains 0.
+  Elf32_Addr sh_addr;
+
+  // gives the byte offset from the beginning of the file to the first
+  // byte in the section.One section type, SHT_NOBITS described below,
+  // occupies no space in the file, and its sh_offset member locates
+  // the conceptual placement in the file.
+  Elf32_Off sh_offset;
+
+  // gives the section's size in bytes. Unless the section type is
+  // SHT_NOBITS, the section occupies sh_size bytes in the file. A
+  // section of type SHT_NOBITS may have a non-zero size, but it
+  // occupies no space in the file.
+  Elf32_Word sh_size;
+
+  // holds a section header table index link, whose interpretation
+  // depends on the section type. A table below describes the values.
+  Elf32_Word sh_link;
+
+  // holds extra information, whose interpretation depends on the
+  // section type. A table below describes the values.
+  Elf32_Word sh_info;
+
+  // Some sections have address alignment constraints. For example, if
+  // a section holds a doubleword, the system must ensure double-word
+  // alignment for the entire section. That is, the value of sh_addr
+  // must be congruent to 0, modulo the value of
+  // sh_addralign. Currently, only 0 and positive integral powers of
+  // two are allowed. Values 0 and 1 mean the section has no alignment
+  // constraints.
+  Elf32_Word sh_addralign;
+
+  // Some sections hold a table of fixed-size entries, such as a
+  // symbol table. For such a section, this member gives the size in
+  // bytes of each entry. The member contains 0 if the section does
+  // not hold a table of fixedsize entries. A section header's sh_type
+  // member specifies the section's semantics.
+  Elf32_Word sh_entsize;
+
+} Elf32_Shdr;
+
+// values for sh_type 
+
+#define SHT_NULL 0 // marks the section header as inactive; it does
+ // not have an associated section. Other members of the section
+ // header have undefined values.
+#define SHT_PROGBITS 1 // The section holds information defined by the
+ // program, whose format and meaning are determined solely by the
+ // program.
+#define SHT_SYMTAB 2 //These sections hold a symbol table.
+#define SHT_STRTAB 3 // The section holds a string table.
+#define SHT_RELA 4 // The section holds relocation entries with
+ // explicit addends, such as type Elf32_Rela for the 32-bit class of
+ // object files. An object file may have multiple relocation
+ // sections. See Relocationbelow for details.
+#define SHT_HASH 5 // The section holds a symbol hash table.
+#define SHT_DYNAMIC 6 // The section holds information for dynamic
+ // linking.
+#define SHT_NOTE 7 // This section holds information that marks the
+ // file in some way.
+#define SHT_NOBITS 8 // A section of this type occupies no space in
+ // the file but otherwise resembles SHT_PROGBITS. Although this
+ // section contains no bytes, the sh_offset member contains the
+ // conceptual file offset.
+#define SHT_REL 9 // The section holds relocation entries without
+ // explicit addends, such as type Elf32_Rel for the 32-bit class of
+ // object files. An object file may have multiple relocation
+ // sections. See Relocationbelow for details.
+#define SHT_SHLIB 10 // This section type is reserved but has
+ // unspecified semantics.
+#define SHT_DYNSYM 11 // This section hold dynamic symbol information
+// SHT_LOPROC through SHT_HIPROC - Values in this inclusive range are
+// reserved for processor-specific semantics.
+#define SHT_LOPROC     0x70000000
+#define SHT_ARM_EXIDX  0x70000001
+#define SHT_HIPROC     0x7fffffff
+// Section types between SHT_LOUSER and SHT_HIUSER may be used by the
+// application, without conflicting with current or future
+// system-defined section types.
+#define SHT_LOUSER 0x80000000 // This value specifies the lower bound
+ // of the range of indexes reserved for application programs.
+#define SHT_HIUSER 0xffffffff // This value specifies the upper bound
+ // of the range of indexes reserved for application programs.
+
+// values for sh_flags
+
+// The section contains data that should be writable during process execution
+#define SHF_WRITE 0x1 
+// The section occupies memory during process execution. Some control
+// sections do not reside in the memory image of an object file; this
+// attribute is off for those sections
+#define SHF_ALLOC 0x2 
+// The section contains executable machine instructions.
+#define SHF_EXECINSTR 0x4 
+// Bits in this mask are reserved for processor-specific semantics.
+#define SHF_MASKPROC 0xf0000000 
+
+
+typedef struct {
+
+  // holds an index into the object file's symbol string table, which
+  // holds the character representations of the symbol names.
+  Elf32_Word st_name;
+
+  // gives the value of the associated symbol. Depending on the
+  // context this may be an absolute value, an address, and so on
+  Elf32_Addr st_value;
+
+  // Many symbols have associated sizes. For example, a data object's
+  // size is the number of bytes contained in the object. This member
+  // holds 0 if the symbol has no size or an unknown size.
+  Elf32_Word st_size;
+
+  // This member specifies the symbol's type and binding
+  // attributes. The following code shows how to manipulate the
+  // values.
+#define ELF32_ST_BIND(i) ((i)>>4)
+#define ELF32_ST_TYPE(i) ((i)&0xf)
+#define ELF32_ST_INFO(b,t) (((b)<<4)+((t)&0xf))
+  unsigned char st_info;
+
+  // This member currently holds 0 and has no defined meaning.
+  unsigned char st_other;
+
+
+#define ELF32_ST_VISIBILITY(o)       ((o)&0x3)
+#define ELF64_ST_VISIBILITY(o)       ((o)&0x3)
+
+  // Every symbol table entry is defined in relation to some section;
+  // this member holds the relevant section header table index.
+  Elf32_Half st_shndx;
+
+} Elf32_Sym;
+
+// Local symbols are not visible outside the object file containing
+// their definition. Local symbols of the same name may exist in
+// multiple files without interfering with each other.
+#define STB_LOCAL 0
+// Global symbols are visible to all object files being combined. One
+// file's definition of a global symbol will satisfy another file's
+// undefined reference to the same global symbol.
+#define STB_GLOBAL 1
+// Weak symbols resemble global symbols, but their definitions have
+// lower precedence. Undefined weak symbols (weak references) may have
+// processor- or OS-specific semantics
+#define STB_WEAK 2 
+// STB_LOPROC through STB_HIPROC - values in this inclusive range are
+// reserved for processor-specific semantics.
+#define STB_LOPROC 13 
+#define STB_HIPROC 15
+
+// The symbol's type is not specified.
+#define STT_NOTYPE 0 
+// The symbol is associated with a data object, such as a variable, an
+// array, and so on.
+#define STT_OBJECT 1 
+// The symbol is associated with a function or other executable code.
+#define STT_FUNC 2 
+// The symbol is associated with a section. Symbol table entries of
+// this type exist primarily for relocation and normally have
+// STB_LOCAL binding.
+#define STT_SECTION 3 
+// A file symbol has STB_LOCAL binding, its section index is SHN_A BS,
+// and it precedes the other STB_LOCAL symbols for the file, if it is
+// present.
+#define STT_FILE 4 
+// Values in this inclusive range are reserved for processor-specific
+// semantics. If a symbol's value refers to a specific location within
+// a section, its section index member, st_shndx, holds an index into
+// the section header table. As the section moves during relocation,
+// the symbol's value changes as well, and references to the symbol
+// continue to point to the same location in the program. Some special
+// section index values give other semantics.
+#define STT_LOPROC 13
+#define STT_HIPROC 15
+
+/*
+STV_DEFAULT
+The visibility of symbols with the STV_DEFAULT attribute is as specified by the symbol's 
+binding type. That is, global and weak symbols are visible outside of their defining 
+component, the executable file or shared object. Local symbols are hidden. Global and weak
+ symbols can also be preempted, that is, they may by interposed by definitions of the same
+ name in another component. 
+
+STV_PROTECTED
+A symbol defined in the current component is protected if it is visible in other components
+ but cannot be preempted. Any reference to such a symbol from within the defining component
+ must be resolved to the definition in that component, even if there is a definition in
+ another component that would interpose by the default rules. A symbol with STB_LOCAL binding
+ will not have STV_PROTECTED visibility.
+
+STV_HIDDEN
+A symbol defined in the current component is hidden if its name is not visible to other
+ components. Such a symbol is necessarily protected. This attribute is used to control 
+ the external interface of a component. An object named by such a symbol may still be 
+ referenced from another component if its address is passed outside.
+
+A hidden symbol contained in a relocatable object is either removed or converted to 
+STB_LOCAL binding by the link-editor when the relocatable object is included in an
+ executable file or shared object.
+
+STV_INTERNAL
+This visibility attribute is currently reserved.
+*/
+#define STV_DEFAULT		0
+#define STV_INTERNAL	1
+#define STV_HIDDEN		2
+#define	STV_PROTECTED	3
+
+// Relocation Entries
+
+typedef struct { 
+
+  // r_offset gives the location at which to apply the relocation
+  // action. For a relocatable file, the value is the byte offset from
+  // the beginning of the section to the storage unit affected by the
+  // relocation. For an executable file or a shared object, the value
+  // is the virtual address of the storage unit affected by the
+  // relocation.
+  Elf32_Addr r_offset;
+
+  // r_info gives both the symbol table index with respect to which
+  // the relocation must be made, and the type of relocation to
+  // apply. For example, a call instruction's relocation entry would
+  // hold the symbol table index of the function being called. If the
+  // index is STN_UNDEF, the undefined symbol index, the relocation
+  // uses 0 as the symbol value. Relocation types are
+  // processor-specific; descriptions of their behavior appear in
+  // section 4.5, Relocation types. When the text in section 4.5
+  // refers to a relocation entry's relocation type or symbol table
+  // index, it means the result of applying ELF32_R_TYPE or
+  // ELF32_R_SYM, respectively, to the entry's r_info member.
+
+#define ELF32_R_SYM(i) ((i)>>8)
+#define ELF32_R_TYPE(i) ((unsigned char)(i))
+#define ELF32_R_INFO(s,t) (((s)<<8)+(unsigned char)(t))
+
+  Elf32_Word r_info; 
+} Elf32_Rel; 
+
+typedef struct {
+  Elf32_Addr r_offset;
+  Elf32_Word r_info;
+  Elf32_Sword r_addend;
+} Elf32_Rela;
+
+// Program Header
+
+typedef struct {
+
+  // p_type tells what kind of segment this array element describes or
+  // how to interpret the array element's information. Type values and
+  // their meanings are given below.
+  Elf32_Word p_type;
+
+  // p_offset gives the offset from the start of the file at which the
+  // first byte of the segment resides.
+  Elf32_Off p_offset;
+
+  // p_vaddr gives the virtual address at which the first byte of the
+  // segment resides in memory.
+  Elf32_Addr p_vaddr;
+
+  // p_paddr - On systems for which physical addressing is relevant,
+  // this member is reserved for the segment's physical address. This
+  // member requires operating system specific information.
+  Elf32_Addr p_paddr;
+
+  // p_filesz gives the number of bytes in the file image of the
+  // segment; it may be zero.
+  Elf32_Word p_filesz;
+
+  // p_memsz gives the number of bytes in the memory image of the
+  // segment; it may be zero.
+  Elf32_Word p_memsz;
+
+  // p_flags gives flags relevant to the segment. Defined flag values
+  // are given below.
+  Elf32_Word p_flags;
+
+  // p_align - Loadable process segments must have congruent values
+  // for p_vaddr and p_offset, modulo the page size. This member gives
+  // the value to which the segments are aligned in memory and in the
+  // file. Values 0 and 1 mean that no alignment is
+  // required. Otherwise, p_align should be a positive, integral power
+  // of 2, and p_vaddr should equal p_offset, modulo p_align.
+  Elf32_Word p_align;
+
+} Elf32_Phdr;
+
+// Segment types - values for p_type
+
+// The array element is unused; other members' values are
+// undefined. This type lets the program header table have ignored
+// entries.
+#define PT_NULL 0 
+// The array element specifies a loadable segment, described by
+// p_filesz and p_memsz (for additional explanation, see
+// PT_LOAD below).
+#define PT_LOAD 1 
+// The array element specifies dynamic linking information. See
+// subsection 4.7.
+#define PT_DYNAMIC 2 
+// The array element specifies the location and size of a
+// null-terminated pathname to invoke as an interpreter.
+#define PT_INTERP 3 
+// The array element specifies the location and size of auxiliary
+// information.
+#define PT_NOTE 4 
+// This segment type is reserved but has unspecified semantics.
+#define PT_SHLIB 5 
+// The array element, if present, specifies the location and size of
+// the program header table itself (for additional explanation, see
+// PT_ PHDR below).
+#define PT_PHDR 6 
+// Values in the inclusive [PT_LOPROC, PT_HIPROC] range are reserved
+// for processor-specific semantics.
+#define PT_LOPROC 0x70000000
+#define PT_HIPROC 0x7fffffff
+
+// values for p_flags
+// The segment may be executed.
+#define PF_X 1 
+// The segment may be written to.
+#define PF_W 2 
+// The segment may be read.
+#define PF_R 4 
+// Reserved for processor-specific purposes (see 4.6, Program
+// headers).
+#define PF_MASKPROC 0xf0000000 
+#define PF_ARM_ENTRY 0x80000000
+
+
+// Relocation types
+
+// ELF defines two sorts of relocation directive, SHT_REL, and
+// SHT_RELA. Both identify:
+//
+// o A section containing the storage unit - byte, half-word, word, or
+//   instruction - being relocated.
+// o An offset within the section - or the address within an
+//   executable program - of the storage unit itself.
+// o A symbol,the value of which helps to define a new value for the
+//   storage unit.
+// o A relocation typethat defines the computation to be
+//   performed. Computations are performed using 2's complement, 32-bit,
+//   unsigned arithmetic with silent overflow.
+// o An addend, that also helps to define a new value for the storage
+//   unit.
+//
+// The addend may be encoded wholly in a field of the storage unit
+// being relocated - relocation sort SHT_REL - or partly there and
+// partly in the addendfield of the relocation directive - relocation
+// sort SHT_RELA. Tables below describe the computation associated
+// with each relocation type, using the following notation:
+//
+// A - denotes the addend used to compute the new value of the storage
+//     unit being relocated.
+//   - It is the value extracted from the storage unit being relocated
+//     (relocation directives of sort SHT_REL) or the sum of that
+//     value and the r_addend field of the relocation directive (sort
+//     SHT_RELA).
+//   - If it has a unit, the unit is bytes. An encoded address or
+//     offset value is converted to bytes on extraction from a storage
+//     unit and re-encoded on insertion into a storage unit.
+//
+// P - denotes the place (section offset or address of the storage
+//     unit) being re-located. It is the sum of the r_offset field of
+//     the relocation directive and the base address of the section
+//     being re-located.
+//
+// S - denotes the value of the symbol whose symbol table index is
+//     given in the r_info field of the relocation directive.
+//
+// B - denotes the base address of the consolidated section in which
+//     the symbol is defined. For relocations of type R_ARM_SBREL32,
+//     this is the least static data address (the static base).
+//
+// relocation types 0-16 are generic
+//      Name             Type    Field                  Computation
+//====================================================================
+#define R_ARM_NONE         0  // Any                    No relocation. 
+#define R_ARM_PC24         1  // ARM B/BL               S - P + A
+#define R_ARM_ABS32        2  // 32-bit word            S + A
+#define R_ARM_REL32        3  // 32-bit word            S - P + A
+#define R_ARM_PC13         4  // ARM LDR r, [pc,...]    S - P + A
+#define R_ARM_ABS16        5  // 16-bit half-word       S + A
+#define R_ARM_ABS12        6  // ARM LDR/STR            S + A
+#define R_ARM_THM_ABS5     7  // Thumb LDR/STR          S + A
+#define R_ARM_ABS8         8  // 8-bit byte             S + A
+#define R_ARM_SBREL32      9  // 32-bit word            S - B + A
+#define R_ARM_THM_PC22    10  // Thumb BL pair          S - P + A
+#define R_ARM_THM_PC8     11  // Thumb LDR r, [pc,...]  S - P + A
+#define R_ARM_AMP_VCALL9  12  // AMP VCALL              Obsolete - SA-1500
+#define R_ARM_SWI24       13  // ARM SWI                S + A
+#define R_ARM_THM_SWI8    14  // Thumb SWI              S + A
+#define R_ARM_XPC25       15  // ARM BLX                S - P + A
+#define R_ARM_THM_XPC22   16  // Thumb BLX pair         S - P + A
+
+// relocation types 17-31 are reserved for ARM Linux
+#define R_ARM_GLOB_DAT    21  //  PLT related			S + A
+#define R_ARM_JUMP_SLOT   22  //  PLT related			S + A
+#define R_ARM_RELATIVE	  23  //  32-bit word			B(S) + A
+
+#define R_ARM_GOT_BREL	  26  //  			
+
+#define R_ARM_ALU_PCREL_7_0   32 // ARM ADD/SUB         (S - P + A) & 0x000000FF
+#define R_ARM_ALU_PCREL_15_8  33 // ARM ADD/SUB         (S - P + A) & 0x0000FF00
+#define R_ARM_ALU_PCREL_23_15 34 // ARM ADD/SUB         (S - P + A) & 0x00FF0000
+#define R_ARM_LDR_SBREL_11_0  35 // ARM ADD/SUB         (S - B + A) & 0x00000FFF
+#define R_ARM_ALU_SBREL_19_12 36 // ARM ADD/SUB         (S - B + A) & 0x000FF000
+#define R_ARM_ALU_SBREL_27_20 37 // ARM ADD/SUB         (S - B + A) & 0x0FF00000
+
+// Dynamic relocation types 
+
+// A small set of relocation types supports relocating executable ELF
+// files. They are used only in a relocation section embedded in a
+// dynamic segment (see section 4.7, Dynamic linking and
+// relocation). They cannot be used in a relocation section in a
+// re-locatable ELF file. In Figure 4-13 below:
+//
+// .S is the displacement from its statically linked virtual address
+//    of the segment containing the symbol definition.
+//
+// .P is the displacement from its statically linked virtual address
+//    of the segment containing the place to be relocated.
+//
+// .SB is the displacement of the segment pointed to by the static
+//     base (PF_ARM_SB is set in the p_flags field of this segment's
+//     program header - see 4.6, Program headers).
+
+
+// types 249 - 255 are dynamic relocation types and are only used in dynamic sections
+#define R_ARM_RXPC25    249    // ARM BLX             (.S - .P) + A
+                               //                     For calls between program segments.
+#define R_ARM_RSBREL32  250    // Word                (.S - .SB) + A
+                               //                     For an offset from SB, the static base.
+#define R_ARM_THM_RPC22 251    // Thumb BL/BLX pair   (.S - .P) + A
+                               //                     For calls between program segments.
+#define R_ARM_RREL32    252    // Word                (.S - .P) + A
+                               //                     For on offset between two segments.
+#define R_ARM_RABS32    253    // Word                .S + A
+                               //                     For the address of a location in the target segment.
+#define R_ARM_RPC24     254    // ARM B/BL            (.S - .P) + A
+                               //                     For calls between program segments.
+#define R_ARM_RBASE     255    // None                Identifies the segment being relocated by
+                               //                     the following relocation directives.
+// DYNAMIC SEGMENT
+// The dynamic segment begins with a dynamic section containing an array of structures of type:
+typedef struct Elf32_Dyn {
+  Elf32_Sword d_tag;
+  Elf32_Word d_val;
+} Elf32_Dyn;
+
+// This entry marks the end of the dynamic array. mandatory
+#define DT_NULL 0
+// Index in the string table of the name of a needed library. multiple
+#define DT_NEEDED 1
+// These entries are unused by versions 1-2 of the ARM EABI. unused
+#define DT_PLTRELSZ 2
+#define DT_PLTGOT 3
+// The offset of the hash table section in the dynamic segment. mandatory
+#define DT_HASH 4
+// The offset of the string table section in the dynamic segment. mandatory
+#define DT_STRTAB 5
+//  The offset of the symbol table section in the dynamic segment. mandatory
+#define DT_SYMTAB 6
+// The offset in the dynamic segment of an SHT_RELA relocation
+// section, Its bytesize,and the byte size of an ARMRELA-type
+// relocation entry. optional
+#define DT_RELA 7
+#define DT_RELASZ 8
+#define DT_RELAENT 9
+// The byte size of the string table section. mandatory
+#define DT_STRSZ 10
+// The byte size of an ARM symbol table entry. mandatory
+#define DT_SYMENT 11
+// These entries are unused by versions 1-2 of the ARM EABI. unused
+#define DT_INIT 12
+#define DT_FINI 13
+// The Index in the string table of the name of this shared object. mandatory
+#define DT_SONAME 14
+// Unused by the ARM EABI. unused
+#define DT_RPATH 15
+#define DT_SYMBOLIC 16
+//The offset in the dynamic segment of an SHT_REL relocation section,
+//Its bytesize, and the byte size of an ARMREL-type relocation
+//entry. optional
+#define DT_REL 17
+#define DT_RELSZ 18
+#define DT_RELENT 19
+// These entries are unused by versions 1-2 of the ARM EABI. unused
+#define DT_PLTREL 20
+#define DT_DEBUG 21
+#define DT_TEXTREL 22
+#define DT_JMPREL 23
+#define DT_BIND_NOW 24
+#define DT_INIT_ARRAY 25
+#define DT_FINI_ARRAY 26
+#define DT_INIT_ARRAYSZ 27
+#define DT_FINI_ARRAYSZ 28
+
+#define DT_VERSYM		0x6ffffff0	/* see section 3.3.3.1 in bpabi*/
+#define DT_RELCOUNT		0x6ffffffa
+#define	DT_VERDEF		0x6ffffffc	/* Address of version definition
+										table */
+#define	DT_VERDEFNUM	0x6ffffffd	/* Number of version definitions */
+#define	DT_VERNEED		0x6ffffffe	/* Address of table with needed
+										versions */
+#define	DT_VERNEEDNUM	0x6fffffff	/* Number of needed versions */
+
+// Values in this range are reserved to the ARM EABI. unused
+#define DT_LOPROC  0x70000000
+#define DT_HIPROC  0x7fffffff
+#define DT_ARM_RESERVED1   0x70000000
+/* Number of entries in the dynamic symbol table, including the initial dummy symbol. */
+#define DT_ARM_SYMTABSZ_21 0x70000000 // For RVCT 2.1
+#define DT_ARM_SYMTABSZ	   0x70000001 // The DT_ARM_SYMTABSZ tag value has been changed from RVCT2.2
+/* Holds the address of the pre-emption map for platforms that use the DLL static binding model. */
+#define DT_ARM_PREEMPTMAP  0x70000002 
+#define DT_ARM_RESERVED2   0x70000003
+#define DT_ARM_PLTGOTBASE  0x70000004
+#define DT_ARM_PLTGOTLIMIT 0x70000005
+
+// What the hash table looks like in the dynamic segment
+typedef struct Elf32_HashTable {
+  Elf32_Word nBuckets;
+  Elf32_Word nChains;
+  // Elf32_Word bucket[nBuckets];
+  // Elf32_Word chain[nChains];
+} Elf32_HashTable;
+
+
+typedef struct
+{
+  Elf32_Half	vd_version;		/* Version revision */
+  Elf32_Half	vd_flags;		/* Version information */
+  Elf32_Half	vd_ndx;			/* Version Index */
+  Elf32_Half	vd_cnt;			/* Number of associated aux entries */
+  Elf32_Word	vd_hash;		/* Version name hash value */
+  Elf32_Word	vd_aux;			/* Offset in bytes to verdaux array */
+  Elf32_Word	vd_next;		/* Offset in bytes to next verdef
+									entry */
+} Elf32_Verdef;
+
+typedef struct
+{
+  Elf32_Word	vda_name;		/* Version or dependency names */
+  Elf32_Word	vda_next;		/* Offset in bytes to next verdaux
+									entry */
+} Elf32_Verdaux;
+
+
+typedef struct
+{
+  Elf32_Half	vn_version;		/* Version of structure */
+  Elf32_Half	vn_cnt;			/* Number of associated aux entries */
+  Elf32_Word	vn_file;		/* Offset of filename for this
+									dependency */
+  Elf32_Word	vn_aux;			/* Offset in bytes to vernaux array */
+  Elf32_Word	vn_next;		/* Offset in bytes to next verneed
+					   entry */
+} Elf32_Verneed;
+
+typedef struct {
+	Elf32_Word    vna_hash;
+	Elf32_Half    vna_flags;
+	Elf32_Half    vna_other;
+	Elf32_Word    vna_name;
+	Elf32_Word    vna_next;
+} Elf32_Vernaux;
+
+
+enum ESegmentType 
+{
+	ESegmentUndefined = SHN_UNDEF,	// undefined or meaningless section/segment reference
+    ESegmentRO,						// Read Only (text) segment
+    ESegmentRW,						// Read Write (data) segment
+	ESegmentDynamic,				// Dynamic segment
+	ESegmentABS = SHN_ABS,			// Symbols defined relative to section number SHN_ABS have 
+									// absolute values and are not affected by relocation.
+	ESegmentCommon = SHN_COMMON,	// Symbols defined relative to section number SHN_ABS have 
+									// absolute values and are not affected by relocation.
+};
+
+#endif
+
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elftools/inc/elfdll.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,251 @@
+// Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#if !defined(__ELFDLL_H__)
+#define __ELFDLL_H__
+//#include <e32rom.h>
+#include "e32ldfmt.h"
+#include <tools/elfdefs.h>
+#include "elffile.h"
+
+#define DLLSYMPREFIX "#<DLL>"
+#define DLLSYMPREFIX0 "#"
+#define DLLSYMSUFFIX "#<\\DLL>"
+#define ORDBASE 16
+#define EXPORTTABLENAME "DLL##ExportTable"
+#define EXPORTTABLESIZENAME "DLL##ExportTableSize"
+
+class NamedExportSymbol;
+class OrdZeroRecord;
+struct NeededDLLsList;
+
+const TUint		KNameLookupOffsetFlag32 = 0x0001;
+
+class ELFFile::ELFDllData
+        {
+public:
+	ELFFile * iElfFile;
+
+	char * iDynStrTab;
+	// bytesize of the dynamic string table
+	TInt iDynStrTabSize; 
+	Elf32_Sym * iDynSymTab;
+	// size of an entry in the dynamic symbol table
+	TInt iSymSize;
+	// the rela relocation table
+	Elf32_Rela * iRela;
+	// size of rela relocation table in bytes
+	TInt iRelaSz;
+	// size of a rela entry in bytes
+	TInt iRelaEnt;
+	// the rel relocation table
+	Elf32_Rel * iRel;
+	// size of rel relocation table in bytes
+	TInt iRelSz;
+	// size of a rel entry in bytes
+	TInt iRelEnt;
+
+	Elf32_HashTable * iHashTable;
+
+	// Exported symbols required for lookup via names.
+	NamedExportSymbol			*iNamedExportSymbolHead;
+	// Number of exported symbols - this doesn't nclude the absent symbols.
+	TInt					iNamedExportCount;
+	// header of the export symbol info table
+	E32EpocExpSymInfoHdr	iSymInfoHdr;
+	// String table size for the symbol names.
+	TUint					iSymStringTableSize;
+	TUint					iStringNameOffset;
+	
+	// Dependency list
+	// Static Dependencies - An 'import relocation' entry is required to be created 
+	// for each such record.
+	OrdZeroRecord		*iDepRecords;
+	OrdZeroRecord		*iDepRecordsTail;
+
+	// List of names obtained from DT_NEEDED entries in ELF.
+	// The order in which they appear is the order in which symbol
+	// lookup shall be followed.
+	NeededDLLsList		*iNeededDllNames;
+	NeededDLLsList		*iNeededDllNamesTail;
+	// Ordinal 0 of this binary. - A local relocation needs to be created for this
+	// record.
+
+	OrdZeroRecord		*iOrdZeroRec;		
+	TInt			iNamedLookupEnabled;
+	
+	ELFDllData(ELFFile * f);
+	~ELFDllData();
+    TBool Init();
+
+	TBool ParseDllSymbol(Elf32_Sym * s, char*& dll, TUint& len, TInt& ord);
+	class DllSymbol
+		{
+	public:
+		char * iDll;
+		TUint iLen;
+		TInt iOrd;
+		Elf32_Phdr * iSegment;
+		Elf32_Rel * iRel;
+		DllSymbol * iNext;
+
+		DllSymbol(char * n, TUint l, TInt o) 
+		        : iDll(n), iLen(l), iOrd(o), iSegment(0),iRel(0),iNext(0) 
+			{}
+		~DllSymbol()
+			{ 
+			delete iNext; 
+			}
+		};
+	DllSymbol * DllSymbolP(Elf32_Sym * s);
+	TBool AddSymbol(DllSymbol * s);
+
+	class DllRec
+		{
+	public:
+	    char * iName;
+	    TUint iLen;
+	    TInt nImports;
+	    DllSymbol * iHead;
+	    DllSymbol * iTail;
+	    DllRec * iNext;
+
+		DllRec(char * n, TInt l, DllSymbol * s) :
+			iName(n), iLen(l), nImports(1), iHead(s), iTail(s), iNext(0)
+		    {}
+	    ~DllRec() 
+		    { 
+		    delete iHead; 
+		    delete iNext; 
+		    }
+	    void AddSymbol(DllSymbol * s);
+	    };
+
+	DllRec * iDllHead;
+	DllRec * iDllTail;
+
+	Elf32_Word iExportTableSymIdx;
+	Elf32_Word iExportTableSizeSymIdx;
+
+	TBool InitExportInfo();
+	TBool iImageIsDll;
+	TBool ImageIsDll() { return iImageIsDll; }
+
+	Elf32_Word FindSymbolIndex(TText * s);
+
+	TInt iNumberOfImports;
+	TInt iNumberOfExports;
+	TInt iNumberOfImportDlls;
+
+	TInt iStringTableSize;
+
+	TInt iNumberOfRelocs;
+	TInt iNumberOfCodeRelocs;
+	TInt iNumberOfDataRelocs;
+
+	TInt NumberOfImports(void);
+	TInt NumberOfExports(void);
+	TInt NumberOfImportDlls(void);
+
+	TInt NumberOfRelocs(void);
+
+	TInt NumberOfCodeRelocs() { return iNumberOfCodeRelocs; }
+	TInt NumberOfDataRelocs() { return iNumberOfDataRelocs; }
+	
+	TBool GetRelocs(Elf32_Rel **aCodeRelocs, Elf32_Rel **aDataRelocs);
+
+	TUint GetExportTableOffset(void);
+	char * CreateImportSection(TInt &aSize);
+	TBool CreateSymLookupTable();
+	TBool SetupSymbolValues();
+	TBool SetupSymbolNames();
+	void Sort(NamedExportSymbol** aDstList, NamedExportSymbol* aSrcList);
+	void MergeSort(NamedExportSymbol** aDstList, NamedExportSymbol** aSrcList);
+	void MergeSort(NamedExportSymbol** aDstList, NamedExportSymbol** aSrcList, \
+									TUint aLeft, TUint aRight);
+	TBool AddToDependency(TUint aOff);
+	TBool CreateDependency();
+	OrdZeroRecord* FindDependency(char* aName, TUint aLen);
+	DllRec * SearchImports(char *aName);
+	TInt GetLookupTblSize(){ return iSymInfoHdr.iSize;}
+	void SetLookupTblBase(TInt);
+	void GetExportSymInfoHeader(E32EpocExpSymInfoHdr& aSymInfoHdr);
+	void SetExportSymInfo();
+	TUint GetSymLookupSection(char* aBuff);
+	};
+
+// This class is used to create symbols to support named lookups.
+// 
+	class NamedExportSymbol
+	{
+	public:
+		NamedExportSymbol(char* aName, Elf32_Addr aValue);
+		~NamedExportSymbol()
+		{
+			delete iNext;
+		}
+		
+		char* Name() { return iSymbolName;}
+		void Name(char* aName) {iSymbolName = aName;}
+		
+		TUint NameOffset() {return iSymbolNameOffset;}
+		void  NameOffset(TUint aOffset) {iSymbolNameOffset = aOffset;}
+		
+		Elf32_Addr Value() { return iValue;}
+		void Value(Elf32_Addr aValue) { iValue = aValue;}
+	
+		NamedExportSymbol* Next() { return iNext;}
+		void Next(NamedExportSymbol* aNext) { iNext = aNext;}
+
+		Elf32_Rel	iReloc;	// relocation entry for the symbol address
+		TUint		iSymRelocType;  // Whether it is a code or data relocation for this symbol
+	private:
+		char*		iSymbolName;	// Symbol name
+		TInt		iSymIdx;
+		TUint		iSymbolNameOffset;// offset of name in string table.
+		Elf32_Addr	iValue;			// symbol value - this is the address of the symbol
+		NamedExportSymbol *iNext;		// next symbol
+	};
+
+// This class is used to support symbol lookup of the static dependencies by linking in their 
+// 0th ordinal.
+	class OrdZeroRecord
+	{
+	public:
+		OrdZeroRecord(char* aName): 
+			iName(aName), iNext(0){}
+		~OrdZeroRecord()
+		{
+			delete iNext;
+		}
+		char				*iName; // (linkas) name of the dependency
+		Elf32_Rel			iReloc;	// a relocation entry for the 0th ordinal of each dependency
+		OrdZeroRecord		*iNext; // next dependency
+		TUint				iOffset;
+	};
+	struct NeededDLLsList
+	{
+		NeededDLLsList(TUint aOff) : iOffset(aOff), iNext(0)
+		{}
+		~NeededDLLsList()
+		{
+			delete iNext;
+		}
+		TUint iOffset;
+		NeededDLLsList *iNext;
+	};
+
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elftools/inc/elffile.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,157 @@
+// Copyright (c) 1995-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#if !defined(__ELFFILE_H__)
+#define __ELFFILE_H__
+#include <e32rom.h>
+#include "e32ldfmt.h"
+#include <tools/elfdefs.h>
+
+#define ELFADDR(rtype, p, o) (rtype *)(((char *)p) + o)
+
+//
+enum TImportStat {EImpError, EImpSuccess, EImpDone};
+//
+class ELFFile
+	{
+public:
+	ELFFile();
+	~ELFFile();
+	TBool Init(const TText * const aFileName);
+	void Close(void);
+
+	char *CreateImportSection(TInt &aSize);
+
+	TBool GetRelocs(Elf32_Rel **aCodeRelocs, Elf32_Rel **aDataRelocs);
+	TUint16 GetRelocType(Elf32_Rel* aReloc);
+
+	TInt NumberOfImports() const;
+	TInt NumberOfImportDlls() const;
+	TInt NumberOfExports() const;
+	TInt NumberOfRelocs();
+
+	
+
+	TInt NumberOfCodeRelocs();
+	TInt NumberOfDataRelocs();
+	
+public:
+	TUint iCodeSize;
+	TUint iDataSize;
+	TUint iBssSize;
+
+
+	TUint GetCodeSize();
+	TBool HasInitialisedData();
+	TUint GetDataSize();
+	TBool HasBssData();
+	TUint GetBssSize();
+	
+
+	Elf32_Phdr * GetSegment(TInt idx) {return &iPhdr[idx];}
+	Elf32_Phdr * GetSegmentFromAddr(Elf32_Addr addr);
+
+	char * GetCode() { return ELFADDR(char, iElfFile, iCodeSegmentHdr->p_offset); }
+	char * GetData() { return ELFADDR(char, iElfFile, iDataSegmentHdr->p_offset); }
+	TBool CodeSegmentP(Elf32_Phdr * s) { return (TBool)(s == iCodeSegmentHdr); }
+	TBool CodeSegmentP(TInt idx) { return (TBool)(idx == iCodeSegmentIdx); }
+	TInt CodeSegmentIndex() {return iCodeSegmentIdx;}
+	TBool DataSegmentP(Elf32_Phdr * s) { return (TBool)(s == iDataSegmentHdr); }
+	TBool DataSegmentP(TInt idx) { return (TBool)(idx == iDataSegmentIdx); }
+	TInt DataSegmentIndex() {return iDataSegmentIdx;}
+
+	TUint * CodePtrFromAddr(Elf32_Addr addr) { return PtrInSegment(iCodeSegmentHdr, addr); }
+	TUint * DataPtrFromAddr(Elf32_Addr addr) { return PtrInSegment(iDataSegmentHdr, addr); }
+
+
+	char * ELFFileBase() { return (char *) iElfFile; }
+
+	TUint GetExportTableOffset(void);
+	TUint GetEntryPointOffset(void) { return iElfFile->e_entry - iCodeSegmentHdr->p_vaddr; }
+
+	TBool SymbolPresent(TText *s);
+	Elf32_Sym * FindSymbol(const TText *);
+
+	TBool GetExceptionIndexInfo(TUint32 &aOffset);
+	TBool SetUpLookupTable();
+	void SetLookupTblBase(TInt);
+	TInt GetLookupTblSize();
+	void GetExportSymInfoHeader(E32EpocExpSymInfoHdr& aSymInfoHdr);
+	TUint GetSymLookupSection(char* aBuff);
+private:
+	TBool InitHeaders(void);
+	TBool InitDllData(void);
+
+	TUint * PtrInSegment(Elf32_Phdr * phdr, Elf32_Addr addr) 
+	        { 
+		return ELFADDR(TUint, ELFADDR(TUint, iElfFile, phdr->p_offset), (addr - phdr->p_vaddr));
+		}
+
+
+	TBool IsValidFileHeader(Elf32_Ehdr * aElfHdr);
+	void CopySectionData(TAny *source, TAny *dest, TUint32 fileLength, TUint32 memLength);
+	TBool ProcessRelocData(TAny *relocData,TInt dataSize);
+	ELFFile(const ELFFile&);
+	const ELFFile & operator = (const ELFFile&);
+public:
+	TBool	iImageIsDll;
+	TBool	ImageIsDll() { return iImageIsDll; }
+	Elf32_Addr iLinkedBase;
+
+	TUint iEntryPoint;
+	TUint iHeapCommittedSize;
+	TUint iHeapReservedSize;
+	TUint iStackCommittedSize;
+	TUint iStackReservedSize;
+private:
+	friend class E32ImageFile;
+	friend class E32ImageFile_ELF;
+
+	TText * iFileName;
+	TInt32 iFileHandle;
+	Elf32_Ehdr * iElfFile;
+	Elf32_Phdr * iPhdr;
+	Elf32_Phdr * iDynamicSegmentHdr;
+	TInt iDynamicSegmentIdx;
+	Elf32_Phdr * iCodeSegmentHdr;
+	TInt iCodeSegmentIdx;
+	Elf32_Phdr * iDataSegmentHdr;
+	TInt iDataSegmentIdx;
+
+	Elf32_Shdr * iSectionHeaderTable;
+	TInt iSymIdx;
+	Elf32_Sym * iSymTab;
+
+	class ELFDllData;
+	ELFDllData * iDllData;
+
+	TCpu iCpu;
+
+
+	};
+#endif
+
+
+
+
+
+
+
+
+
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elftools/inc/elftran.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,63 @@
+// Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Derived in part from E32IMAGE.H
+// 
+//
+
+#ifndef __ELFTRAN_H__
+#define __ELFTRAN_H__
+
+#include <e32std.h>
+#include "e32image.h"
+#include "e32ldfmt.h"
+#include <tools/elfdefs.h>
+
+class ELFFile;
+
+//
+class E32ImageFile_ELF : public E32ImageFile
+	{
+public:
+	E32ImageFile_ELF();
+	virtual ~E32ImageFile_ELF();
+	virtual TBool Translate(const char* aFileName, TUint aDataBase, TBool aAllowDllData, \
+		TBool aSymLkupEnabled = FALSE);
+	TBool Translate(ELFFile& aElfFile);
+	TBool ImageIsDll(ELFFile& aElfFile);
+private:
+	TInt DoCodeHeader(ELFFile &aElfFile);
+	TInt DoDataHeader(ELFFile &aElfFile, TUint aDataBase);
+	TInt CopyCode(char *aPtr, ELFFile &aElfFile);
+	TInt CopyData(char *aPtr, ELFFile &aElfFile);
+
+	char *CreateImportSection(ELFFile &aElfFile, TInt &aSize);
+	void CreateExportSection(char *aPtr, ELFFile &aElfFile);
+
+	void FixRelocs(ELFFile &aElfFile, Elf32_Rel **codeRelocs, Elf32_Rel **dataRelocs);
+	char *CreateRelocs(ELFFile& aElfFile, Elf32_Rel **relocs, TInt nrelocs, TInt &aSize, TUint aBase);
+
+	TUint FixAddress(ELFFile &aElfFile, TUint va, Elf32_Rel * rel);
+
+	void SetUpExceptions(ELFFile &aElfFile);
+	void SetSymNameLookup(TInt aSymNameLkupEnabled);
+	TBool IsNamedLookupEnabled();
+	TBool SetUpLookupTable(ELFFile &aElfFile);
+	TInt DoSymbolLookupHeader(ELFFile &aElfFile, TInt aBaseOffset);
+	TUint CopyExportSymInfo(char *aPtr, ELFFile &aElfFile);
+	};
+
+#endif
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elftools/test/Elftran-test.kpf	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Komodo Project File - DO NOT EDIT -->
+<project id="BC02BEB8-6647-428F-9F0A-9691304C795F" name="Elftran-test" kpf_version="2">
+<preference-set id="">
+</preference-set>
+<file url="Elftran-test.pl" id="A8EF646E-135D-4D32-A0ED-29A64166AC45" name="Elftran-test.pl">
+<preference-set id="">
+  <string id="lastInvocation">default</string>
+<preference-set id="Invocations">
+<preference-set id="default">
+  <string id="postparams"></string>
+  <string id="warnings">enabled</string>
+  <boolean id="use-console">0</boolean>
+  <string id="getparams"></string>
+  <string id="filename">G:\personal\e32tools\elftools\test\Elftran-test.pl</string>
+  <string id="mpostparams"></string>
+  <boolean id="show-dialog">1</boolean>
+  <string id="userCGIEnvironment"></string>
+  <string id="request-method">GET</string>
+  <string id="params"></string>
+  <string id="executable-params"></string>
+  <string id="posttype">application/x-www-form-urlencoded</string>
+  <string id="documentRoot"></string>
+  <string id="cookieparams"></string>
+  <string id="userEnvironment"></string>
+  <boolean id="sim-cgi">0</boolean>
+  <string id="cwd"></string>
+  <long id="debugger.io-port">9011</long>
+</preference-set>
+</preference-set>
+</preference-set>
+</file>
+</project>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/elftools/test/Elftran-test.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,184 @@
+#
+# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+#!/usr/bin/perl -w
+use strict;
+
+# Perl script that creates PKG files and test MAKESIS tools with different ranges
+
+#my $logFile = "\\epoc32\\winscw\\c\\ELFTRAN_test.txt";
+my $logFile = "ELFTRAN_test.txt";
+my @retval = 0;
+
+#
+# Counters for results
+#
+my $NumberOfTests  = 0;
+my $NumberOfPassed = 0;
+my $NumberOfFailed = 0;
+
+#
+#Function to write log into file
+#
+sub WriteLog {
+	my ($log) = @_;
+	#public $logfile;
+        my $fh;
+	unless( open($fh, ">> $logFile")) {
+		printf STDERR "Can\'t open $logFile:$!\n";
+		return;
+	}
+	printf $fh $log;
+	printf $log;
+	close $fh;
+}
+
+
+#
+# Run command with prepared command line parameters and administrate its result
+#
+sub RunCommand {
+
+	my( $command, $expectedResult, $expectedLog, $expectedVal) = @_;
+	#my ($pkgfile) = @_[0];
+	#my ($expectedResult) = @_[1];
+	#$pkgfile =~ s/\.pkg//;
+
+       	#@retval = system("$command >run.log");
+        @retval = system("$command >NUL");
+        my $logMsg = sprintf "Expected code:%5d   result Code:%5d \n", $expectedResult, @retval;
+        WriteLog( $logMsg);
+        
+        #open CMDPIPE, "$command 3>&1 2>&1 | ";
+        open CMDPIPE, "$command 2>&1 | ";
+        
+        my @lines=<CMDPIPE>;
+        close CMDPIPE;
+       
+        my $receivedVal;
+        if( $expectedLog ne "")
+        {
+            $receivedVal = ProcessResult($expectedLog, $expectedVal, @lines);
+            $logMsg = sprintf "Expected %s:%s   result value:%s \n", $expectedLog, $expectedVal, $receivedVal;
+            WriteLog( $logMsg);
+        }
+        else
+        {
+            $receivedVal=$expectedVal;
+        }
+       
+	$NumberOfTests++;
+
+	if( $retval[0] == $expectedResult ) {
+                if( $receivedVal eq $expectedVal ){
+                    $NumberOfPassed++;
+                    WriteLog("Passed\n\n");
+                }
+                else
+                {
+                    $NumberOfFailed++;
+                    WriteLog("Failed\n\n");
+                }
+	}
+	else {
+		$NumberOfFailed++;
+		WriteLog("Failed\n\n");
+	}
+
+	#unlink("$pkgfile-tmp.sis");
+	#unlink("$pkgfile.log");
+	#unlink("$pkgfile.pkg");
+
+}
+
+sub ProcessResult {
+    my ($expLog, $expVal, @result) = @_;
+    for my $line (@result) {
+        #WriteLog( $line);
+        if($line =~ /($expLog):[ \t](.*)/i)
+        #if($line =~ /.?($expLog)[ :][ \t](.*)/i)
+        {
+            #WriteLog($1);
+            if( $2 eq $expVal)
+            {
+                return $2;
+            }
+        }
+        
+    }
+    return "";
+}
+
+#
+# Main
+#
+# Create environment and control test flow to testing ELFTRAN
+#
+
+unlink($logFile);
+WriteLog("ELFTRAN test.\n\n");
+
+
+my $Command = "ELFTRAN.EXE";
+my $Path = "\\epoc32\\tools\\";
+#
+# Array of contents of ELFTRAN parameters and expected results
+#
+#                    command,     options                                           inputfile/,         outfile    expected , expected log,     expeced log
+#                                                                                   e32imagefile                    result     message          value
+#               ------------------------------------------------------------------------------------------------------------------------------------------------ 
+my @TestItems = (   [$Command,  "",                                                 "",                     "",     65280,    , "",		""],
+                    [$Command,  "-h",                                               "",                     "",       256,    , "ERROR",        "Cannot open -h for input."],
+                    [$Command,  "-dump h -nocompress",                              "camera1_test.exe",     "",         0,    , "Compression",  "00000000"],
+                    [$Command,  "-dump h",                                          "camera1_test.exe",     "",         0,    , "Compression",	"101f7afc"],
+                    [$Command,  "-dump h -nocompress",                              "camera1_test.exe",     "",         0,    , "Compression",  "00000000"],
+                    [$Command,  "-dump h -compress",                                "camera1_test.exe",     "",         0,    , "Compression",  "101f7afc"],                    
+                    [$Command,  "-dump h -nocompress",                              "camera1_test.exe",     "",         0,    , "Compression",  "00000000"],
+                    [$Command,  "-dump h -compressionmethod bytepair",              "camera1_test.exe",     "",         0,    , "Compression",  "102822aa"],
+                    [$Command,  "-dump h -compressionmethod none",                  "camera1_test.exe",     "",         0,    , "Compression",  "00000000"],
+                    [$Command,  "-dump h -compressionmethod deflate",               "camera1_test.exe",     "",         0,    , "Compression",  "101f7afc"],
+                    [$Command,  "-dump h -compress -compressionmethod bytepair",    "camera1_test.exe",     "",         0,    , "Compression",  "102822aa"],
+                    [$Command,  "-dump h -compress -compressionmethod deflate",     "camera1_test.exe",     "",         0,    , "Compression",  "101f7afc"],
+                    [$Command,  "-dump h -compress -compressionmethod none",        "camera1_test.exe",     "",         0,    , "Compression",  "00000000"],
+                    [$Command,  "-dump h -nocompress -compressionmethod deflate",   "camera1_test.exe",     "",         0,    , "Compression",  "00000000"],
+                    [$Command,  "-dump h -nocompress -compressionmethod none",      "camera1_test.exe",     "",         0,    , "Compression",  "00000000"],
+                    [$Command,  "-dump h -nocompress -compressionmethod bytepair",  "camera1_test.exe",     "",         0,    , "Compression",  "00000000"],
+	     );
+
+
+#
+# Do test for each elements of TestItems array
+#
+my $loop = 1;
+for my $Test ( @TestItems )  {
+
+    WriteLog( sprintf "Loop:%3d\n", $loop++);
+        
+    my $command = sprintf "%s%s %s %s %s", $Path, $Test->[0], $Test->[1], $Test->[2], $Test->[3];
+    my $logLine = "Command: '$command'\n";
+    WriteLog($logLine);
+
+    RunCommand($command, $Test->[4], $Test->[5], $Test->[6]);
+ 
+}
+
+
+#
+# Display the result
+#
+WriteLog("\n\nTests completed OK\n");
+WriteLog(sprintf "Run: %d\n", $NumberOfTests );
+WriteLog(sprintf "Passed: %d\n", $NumberOfPassed );
+WriteLog(sprintf "%d tests failed out of %d\n", $NumberOfFailed, $NumberOfTests ); 
\ No newline at end of file
Binary file toolsandutils/e32tools/elftools/test/camera1_test.exe has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/eruntest/eruntest.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,327 @@
+// Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#include <windows.h>
+
+#ifdef __MSVCDOTNET__
+ #include <iostream>
+ #include <fstream>
+ using namespace std;
+#else //!__MSVCDOTNET__
+ #include <iostream.h>
+ #include <fstream.h>
+#endif //__MSVCDOTNET__
+
+#include <stdio.h>
+#include <errno.h>
+
+#if defined(__VC32__) && !defined(__MSVCDOTNET__)
+#pragma warning( disable : 4710 )	// 'fn': function not inlined
+#endif // old MSVC
+
+const unsigned int KMaxLineLen=256;
+const unsigned int KTimeout=600000; // 10 minutes
+
+
+void NumFileLines(ifstream& inStream, unsigned int &aNumLines)
+	{
+	// finds out how many lines are in the file specified
+
+	aNumLines=0;
+	inStream.clear();
+	inStream.seekg(0);
+
+	char str[KMaxLineLen];
+	while (!inStream.eof())
+		{
+		inStream.getline(str, KMaxLineLen);
+		aNumLines++;
+		}
+	}
+
+void GetTestData(ifstream& inStream, char (*aDataArray)[KMaxLineLen], unsigned int &aNumTests)
+	{
+	// fill the test data structure from the file stream
+
+	aNumTests=0;
+	inStream.clear();
+	inStream.seekg(0);
+
+	char str[KMaxLineLen]="";
+	while (!inStream.eof())
+		{
+		bool charsPresent=0;
+		inStream.getline(str, KMaxLineLen);
+		if (strlen(str))
+			{
+			unsigned int len=strlen(str);
+			for (unsigned int i=0; i<len; i++)
+				{
+				if (!isspace(str[i]))
+					{
+					charsPresent=1;
+					break;
+					}
+				}
+			if (charsPresent)
+				{
+				strcpy(aDataArray[aNumTests], str);
+				aNumTests++;
+				}
+			}
+		}
+	}
+
+int GetTestOutFileName(char* aOutFile)
+	{
+	// Gets the temporary file in which RTest puts its output
+		
+	const char KTestOutFileName[16]="epocwind.out";
+	char tmpDir[KMaxLineLen]="";
+	int r=0;
+
+	aOutFile[0]='\0';
+	int len=GetTempPath(KMaxLineLen, tmpDir);
+	if (len==0||len>KMaxLineLen)
+		r=1;
+	
+	if (!r)
+		if (KMaxLineLen > (strlen(KTestOutFileName)+strlen(tmpDir)))
+			{
+			strcpy(aOutFile, tmpDir);
+			strcat(aOutFile, KTestOutFileName);
+			}
+		else
+			r=1;
+	return(r);
+	}
+
+void RemoveLeadingSpaces(char* aStr)
+	{
+	// removes leading whitespace from a string
+
+	int spaces=0;
+	while (isspace(aStr[spaces]))
+		spaces++;
+	int newLen=strlen(aStr)-spaces;
+	for (int j=0;j<=newLen;j++)
+		aStr[j]=aStr[j+spaces];
+	}
+
+int TestSucceeded(char* aLastLineBut1)
+	{
+	// checks whether an EPOC RTest has succeeded by comparing the
+	// last line but 1 in the EPOCWIND.OUT file with a template success
+	// string
+
+	int r=0;
+	const char KSuccessResult[20]="RTEST: SUCCESS :";
+
+	char testStr[KMaxLineLen];
+	strcpy(testStr,aLastLineBut1);
+	RemoveLeadingSpaces(testStr);
+	testStr[strlen(KSuccessResult)]='\0';
+	if (strcmp(testStr, KSuccessResult)==0)
+		r=1;
+	return(r);
+	}
+
+int GetPenultimateLines(char* aFile, char* aLastLineBut1, char* aLastLineBut2)
+	{
+	// Gets the two penultimate lines in a file.
+	// Returns 0 if successful, 1 otherwise.
+
+	int r=0;
+
+	aLastLineBut1[0]='\0';
+	aLastLineBut2[0]='\0';
+
+	ifstream fileStream(aFile);
+	if (!fileStream)
+		r=1;
+
+	if (!r)
+		{
+		char lastLine[KMaxLineLen]="";
+		while (!fileStream.eof())
+			{
+			strcpy(aLastLineBut2, aLastLineBut1);
+			strcpy(aLastLineBut1, lastLine);
+			fileStream.getline(lastLine, KMaxLineLen);
+			}
+		}
+	return(r);	
+	}
+
+int main(int argc, char *argv[])
+	{
+	FILE *stream = NULL;
+	if (argc != 2)
+		{
+		cerr << "Syntax: eruntest <batch_file>" << endl;
+		return(1);
+		}
+	// Check if input file exists
+	if( (stream  = fopen(argv[1], "r" )) == NULL)
+		{
+		cerr << "ERROR: Cannot open input file " << argv[1] << endl;
+		return(1);
+		}
+	else 
+		fclose(stream); 
+//	stream the input file
+	ifstream inFile(argv[1]);
+	
+	// get the number of lines in the input file
+	unsigned int numLines=0;
+	NumFileLines(inFile, numLines);
+	
+	// allocate space for the tests names
+	char (*pTests)[KMaxLineLen];
+	pTests = new char[numLines][KMaxLineLen];
+	if (!pTests)
+		{
+		cerr << "ERROR: Out of memory" << endl;
+		return(1);
+		}
+
+	// populate the data structure for the tests
+	unsigned int numTests=0;
+	GetTestData(inFile, pTests, numTests);
+
+	// Get the test output file name
+	char testOutFile[KMaxLineLen];
+	if (GetTestOutFileName(testOutFile)!=0)
+		{
+		cerr << "Error getting temporary path" << endl;
+		return(1);
+		}
+
+	// Get the current directory
+	char currentDir[KMaxLineLen]="";
+	GetCurrentDirectory(KMaxLineLen, currentDir);
+	strcat(currentDir, "\\");
+
+	// Retrieve the STARTUPINFO structure for the current process
+	STARTUPINFO startUpInfo;
+	PROCESS_INFORMATION procInfo;
+	GetStartupInfo(&startUpInfo);
+	
+	unsigned failCount=0;
+	unsigned timeoutCount=0;
+	unsigned cantStartCount=0;
+	unsigned unknownCount=0;
+
+	// run each test in turn
+	for (unsigned int i=0; i<numTests; i++)
+		{
+
+		// remove epocwind.out
+		remove(testOutFile);
+		if (errno==EACCES)
+			{
+			cerr << "Cannot remove " << testOutFile << endl;
+			return(1);
+			}
+
+		// Create the child process
+		if (!CreateProcess(0, pTests[i], 0, 0, FALSE, 0,0, 0, &startUpInfo, &procInfo))
+			{
+			// int error=GetLastError();
+			cout << "CAN'T START: " << currentDir << pTests[i] << endl;
+			cantStartCount++;
+			continue;
+			}
+
+		// Wait for the child process to complete
+		int ret=WaitForSingleObject(procInfo.hProcess, KTimeout);
+		ifstream testOutFileStream(testOutFile);
+
+		char lastLineBut1[KMaxLineLen]="";
+		char lastLineBut2[KMaxLineLen]="";
+		switch (ret)
+			{
+			case WAIT_OBJECT_0:
+				// find out if the test terminated successfully
+				if (GetPenultimateLines(testOutFile, lastLineBut1, lastLineBut2)!=0)
+					{
+					cout << "UNKNOWN: " << currentDir << pTests[i] << endl;
+					cout << "  <no test output file>" << endl;
+					unknownCount++;
+					}
+				else
+					{
+					// make the comparison
+					if (TestSucceeded(lastLineBut1))
+						cout << "PASSED: " << currentDir << pTests[i] << endl;
+					else
+						{
+						cout << "FAILED(RTest): " << currentDir << pTests[i] << endl;
+						cout << "  " << lastLineBut2 << endl;
+						cout << "  " << lastLineBut1 << endl;
+						cout << endl;
+						failCount++;
+						}
+					}
+				break;
+			case WAIT_FAILED:
+				cout << "FAILED: " << currentDir << pTests[i] << endl;
+				if (GetPenultimateLines(testOutFile, lastLineBut1, lastLineBut2)!=0)
+					{
+					cout << "  <no test output file>" << endl;
+					}
+				else
+					{
+					cout << "  " << lastLineBut2 << endl;
+					cout << "  " << lastLineBut1 << endl;
+					cout << endl;
+					}
+				failCount++;
+				break;
+			case WAIT_TIMEOUT:
+				cout << "TIMED OUT: " << currentDir << pTests[i] << endl;
+				if (GetPenultimateLines(testOutFile, lastLineBut1, lastLineBut2)!=0)
+					{
+					cout << "  <no test output file>" << endl;
+					}
+				else
+					{
+					cout << "  " << lastLineBut2 << endl;
+					cout << "  " << lastLineBut1 << endl;
+					cout << endl;
+					}
+				timeoutCount++;
+				if (!TerminateProcess(procInfo.hProcess, 1))
+					{
+					cout << "FROZEN: " << currentDir << endl;
+					cout << "  Cannot terminate - kill via Task Manager"  << endl;
+					cout << endl;
+					}
+				break;
+			}
+		}
+
+	delete [] pTests;
+
+	cout << endl;
+	cout << "TotalErrors   " << dec << (failCount+timeoutCount+unknownCount+cantStartCount) << endl;
+	cout << "  Failures    " << dec << failCount << endl;
+	cout << "  Timeouts    " << dec << timeoutCount << endl;
+	cout << "  Unknown     " << dec << unknownCount << endl;
+	cout << "  Can't start " << dec << cantStartCount << endl;
+	cout << endl;
+
+	return(0);
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/etouch/etouch.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,46 @@
+// Copyright (c) 1996-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#if defined(__MSVCDOTNET__) || defined (__TOOLS2__)
+ #include <iostream>
+ using namespace std;
+#else //!__MSVCDOTNET__
+ #include <iostream.h>
+#endif //__MSVCDOTNET__
+
+#if defined(__VC32__) || defined(__TOOLS2__)
+ #include <sys\utime.h>
+#else
+ #include <utime.h>
+#endif
+
+#if defined(__VC32__) && !defined(__MSVCDOTNET__)
+#pragma warning( disable : 4710 )	// 'fn': function not inlined
+#endif // old MSVC
+
+int main(int argc,char *argv[])
+//
+// Collect the filename from the command line
+// and change its date/time stamp to the current date/time
+//
+	{
+
+	if (argc!=2)
+		{
+		cout << "Syntax: etouch filename" << endl;
+		return(1);
+		}
+	return(utime(argv[1],NULL)==(-1) ? 1 : 0);
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/fix_eabi_thunk_offsets/fix_eabi_thunk_offsets.bat	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,427 @@
+:: Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+:: All rights reserved.
+:: This component and the accompanying materials are made available
+:: under the terms of "Eclipse Public License v1.0"
+:: which accompanies this distribution, and is available
+:: at the URL "http://www.eclipse.org/legal/epl-v10.html".
+::
+:: Initial Contributors:
+:: Nokia Corporation - initial contribution.
+::
+:: Contributors:
+::
+:: Description:
+::
+
+@rem = '--*-Perl-*--
+@echo off
+if "%OS%" == "Windows_NT" goto WinNT
+perl -x -S "%0" %1 %2 %3 %4 %5 %6 %7 %8 %9
+goto endofperl
+:WinNT
+perl -x -S "%0" %*
+if NOT "%COMSPEC%" == "%SystemRoot%\system32\cmd.exe" goto endofperl
+if %errorlevel% == 9009 echo You do not have Perl in your PATH.
+goto endofperl
+@rem ';
+#!perl
+#line 28
+
+use strict;
+use Getopt::Long;
+
+my $toolVersion = "1.0";
+
+my $update = 0;
+my $use_perforce = 0;
+my $verbose = 0;
+my $defFile;
+
+# 1. Check arguments, output help etc.
+
+GetOptions (
+	'update' => \$update,			# modify the files
+	'perforce' => \$use_perforce,	# apply "p4 edit" to changed files
+	'v+' => \$verbose,				# print extra diagnostic info
+	'match=s' => \$defFile			# only process DEF files matching a pattern
+	);
+
+if (@ARGV == 0)
+	{
+	print STDERR "\nfix_eabi_thunk_offsets.bat - Version $toolVersion\n";
+
+	print STDERR << 'END_OF_HELP';
+
+Usage: fix_eabi_think_offsets [-update] [-perforce] [-match exp] build_log ... 
+
+Parse the output from one or more build logs, extracting MAKEDEF errors and
+warnings which relate to EABI virtual function override thunks. Using this
+information, prepare modified DEF files in which each "missing" export is 
+replaced by a corresponding "unfrozen" export.
+
+-update     Overwrite the existing .def files with the modified versions
+-perforce   Apply "p4 edit" to each of the modified .def files
+-match exp  Process only .def files with names that contain "\exp"
+
+NOTE: The tool assumes that the original build source layout is replicated on 
+the drive where it is being executed.
+
+Build logs will sometimes contain corrupted warning messages, in which case
+the tool will probably report that there is nothing to replace some missing
+symbol. It may help to edit the log file and try again: it is always safe to 
+run this tool more than once on the same log file.
+
+END_OF_HELP
+
+	exit(1);
+	}
+
+my $parseWarnings = 1;
+my $parseErrors = 1;
+
+
+# 2. Parse the build logs, extracting the Makedef warnings & errors
+
+my $line;
+my $header;
+my $parseWarning = 0;
+my $parseError = 0;
+my $variant;
+my $component;
+my $sourceDefFile;
+my @errorOutput;
+my @warningOutput;
+
+my %DefFiles;
+my %TempDefFiles;
+
+sub newDefFile($)
+	{
+	my ($defFile) = @_;
+	if (!defined $DefFiles{$defFile})
+		{
+		@{$DefFiles{$defFile}} = \();
+		}
+	}
+
+while ($line = <>)
+	{
+	if ($line =~ /^Chdir /)
+		{
+		$component = $line;
+		$component =~ s/^Chdir //;
+		$component =~ s/\s//g;
+		next;
+		}
+		
+	if (($line =~ /^  make/) && ($line =~ / CFG\=/))
+		{
+		$variant = $line;
+		$variant =~ s/^.*CFG\=//;
+		$variant =~ s/ .*$//;
+		$variant =~ s/\s//g;
+		next;
+		}
+
+	if ($parseWarnings && ($line =~ /MAKEDEF WARNING:/))
+		{
+		$parseWarning =  1;
+		$parseError = 0;
+		$header = $line;
+		next;		
+		}
+		
+	if ($parseErrors && ($line =~ /MAKEDEF ERROR:/))
+		{
+		$parseWarning =  0;
+		$parseError = 1;
+		$header = $line;
+		next;		
+		}
+
+	if ($line !~ /^  /)
+		{
+		$parseWarning = 0;
+		$parseError = 0;
+		next;
+		}
+
+	if ($parseWarning)
+		{
+		if ($header)
+			{
+			if ($defFile && ($header !~ /\\$defFile/i))
+				{
+				$parseWarning = 0;
+				$parseError = 0;
+				next;
+				}
+			
+			$sourceDefFile = $header;
+			$sourceDefFile =~ s/^.*not yet Frozen in//;
+			$sourceDefFile =~ s/://;
+			$sourceDefFile =~ s/\s//g;
+			
+			push @warningOutput, "--\n$sourceDefFile ($variant)\n$component\n$header";
+			newDefFile($sourceDefFile);
+			$header = "";
+			}
+
+		next if ($line =~ /\*\*\*/);
+		if ($line =~ /^  (\S.*}\.def)(\(\d+\) : \S+.*)$/)
+			{
+			push @{$DefFiles{$sourceDefFile}}, "W$2";
+			$TempDefFiles{$1} = $sourceDefFile;
+			}
+		push @warningOutput, $line;
+		
+		next;		
+		}
+
+	if ($parseError)
+		{
+		if ($defFile && ($line !~ /\\$defFile/i))
+			{
+			$parseWarning = 0;
+			$parseError = 0;
+			next;
+			}
+			
+		if ($header)
+			{
+			$sourceDefFile = $line;
+			$sourceDefFile =~ s/\(.*$//;
+			$sourceDefFile =~ s/\s//g;
+
+			push @errorOutput, "--\n$sourceDefFile ($variant)\n$component\n$header";
+			newDefFile($sourceDefFile);
+			$header = "";
+			}
+
+		next if ($line =~ /\*\*\*/);
+		if ($line =~ /(\(\d+\) : \S+.*)$/)
+			{
+			push @{$DefFiles{$sourceDefFile}}, "E$1";
+			}
+		push @errorOutput, $line;
+		
+		next;
+		}
+
+	# Catch a orphaned warning line...
+	
+	if ($line =~ /^  (\S.*}\.def)(\(\d+\) : \S+.*)$/)
+		{
+		my $tempDefFile = $1;
+		my $newline = $2;
+		
+		next if ($defFile && ($tempDefFile !~ /\\$defFile/i));
+
+		my $sourceDefFile = $TempDefFiles{$tempDefFile};
+		push @{$DefFiles{$sourceDefFile}}, "W$newline";
+		push @warningOutput, $line;
+		}
+
+	}
+
+close BUILD_LOG;
+
+# 3. Process the information for each DEF file
+
+my %Classes;
+my @DefFileList;
+
+foreach my $def (sort keys %DefFiles)
+	{
+	my @replacements;
+	my @errors;
+	my @warnings;
+	my $problems = 0;
+	
+	print "\n----\n$def\n";
+	if ($verbose > 1)
+		{
+		print "Information extracted from Makedef warnings and errors:\n";
+		# printed inside the following loop...
+		}
+
+	# Process into lists of errors and warnings which can be sorted
+	
+	my $previousline = "";
+	foreach $line (sort @{$DefFiles{$def}})
+		{
+		next if ($line eq $previousline);	# skip duplicates
+		$previousline = $line;
+		print "\t$line\n" if ($verbose > 1);
+			
+		if ($line =~ /^(.)\((\d+)\) : (((_ZTh|_ZTv)([n0-9_]+)_(NK?(\d+)(\S+)))\s.*)$/)
+			{
+			my $msgtype = $1;
+			my $lineno = $2;
+			my $defline = $3;
+			my $symbol = $4;
+			my $thunkprefix = $5;
+			my $thunkoffset = $6;
+			my $unthunked = $7;
+			my $topnamelen = $8;
+			my $restofsymbol = $9;
+			
+			if ($msgtype eq "E")
+				{
+				push @errors, "$unthunked\@$thunkprefix $thunkoffset $lineno $symbol";
+				}
+			else
+				{
+				push @warnings, "$unthunked\@$thunkprefix $thunkoffset $symbol";
+				}
+				
+			my $class = substr $restofsymbol, 0, $topnamelen;
+			$Classes{$class} = 1;
+			}
+		else
+			{
+			print "WARNING: Ignored - not a thunk: $line\n";
+			}
+		}
+	
+	# Match up the errors and warnings for related symbols
+	
+	@errors = sort @errors;
+	@warnings = sort @warnings;
+	my $error;
+	my $warning;
+	while (scalar @errors && scalar @warnings)
+		{
+		# Unpack the first entry in each of the lists
+		
+		$error = shift @errors;
+		my ($ekey, $eoffset, $eline, $esymbol) = split / /, $error;
+		$warning = shift @warnings;
+		my ($wkey, $woffset, $wsymbol) = split / /, $warning;
+		
+		# Are they for the same thunk?
+		
+		if ($ekey lt $wkey) 
+			{
+			# no - unmatched error, so put back the warning
+			unshift @warnings, $warning;
+			print "Nothing to replace missing symbol on $eline : $esymbol\n";
+			$problems += 1;
+			next;
+			}
+		
+		if ($ekey gt $wkey)
+			{
+			# no - unmatched warning, so put back the error
+			unshift @errors, $error;
+			print "Nothing missing for replacement symbol : $wsymbol\n";
+			$problems += 1;
+			next;
+			}
+		
+		# Yes - create replacement instruction
+		
+		push @replacements, "$eline $esymbol => $wsymbol";
+		}
+	
+	# drain remaining problems, if any
+	
+	foreach my $error (@errors)
+		{
+		my ($ekey, $eoffset, $eline, $esymbol) = split / /, $error;
+		print "Nothing to replace missing symbol on $eline : $esymbol\n";
+		$problems += 1;
+		}
+	foreach my $warning (@warnings)
+		{
+		my ($wkey, $woffset, $wsymbol) = split / /, $warning;
+		print "Nothing missing for replacement symbol : $wsymbol\n";
+		$problems += 1;
+		}
+		
+	if ($verbose)
+		{
+		print "\nSubstitions identified:\n\t";
+		print join("\n\t", sort @replacements);
+		print "\n";
+		}
+	
+	open DEFFILE, "<$def" or print "Can't open $def: $!\n" and next;
+	my @deflines = <DEFFILE>;
+	close DEFFILE;
+	my $changedlines = 0;
+
+	foreach my $fix (@replacements)
+		{
+		my ($lineno, $before, $to, $after) = split ' ', $fix;
+
+		my $line = @deflines[$lineno-1];
+		if ($line =~ /\s($after)\s/)
+			{
+			print "$lineno - already fixed\n";
+			next;
+			}
+		if ($line =~ /\s($before)\s/)
+			{
+			$line =~ s/(\s)$before(\s)/$1$after$2/;
+			@deflines[$lineno-1] = $line;
+			print "Changed $lineno to $line" if ($verbose > 1);
+			$changedlines += 1;
+			next;
+			}
+		print "$lineno doesn't contain $before\n";
+		$problems += 1;
+		}
+	print "\n";
+	
+	if ($problems != 0)
+		{
+		print "WARNING: $problems thunks could not be repaired\n";
+		}
+
+	if ($changedlines == 0)
+		{
+		print "Nothing to change\n";
+		next;
+		}
+	print "Will change $changedlines lines\n\n";
+
+	# Now update the file (and edit in Perforce if required)
+		
+	if ($update)
+		{
+		chmod 0666, $def;	# make it writeable
+		
+		open DEFFILE, ">$def" or print "Can't open $def for writing: $!\n" and next;
+		print DEFFILE @deflines;
+		close DEFFILE;
+		
+		print "Updated $def\n";
+		push @DefFileList, $def;
+		
+		if ($use_perforce)
+			{
+			print "* p4 edit $def\n";
+			system "p4 edit $def";
+			print "\n";
+			}
+		}
+	}
+
+# 5. More diagnostic information
+
+if (scalar @DefFileList)
+	{
+	print "\nList of updated def files\n";
+	print join("\n", @DefFileList);
+	print "\n";
+	}
+
+if ($verbose && scalar keys %Classes != 0)
+	{
+	print "\nList of affected classes:\n";
+	print join("\n", sort keys %Classes), "\n";
+	}
+
+__END__
+:endofperl
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/group/bin2coff.mmp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,23 @@
+// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+
+TARGET			bin2coff.exe
+TARGETTYPE		exe
+SOURCEPATH	..\bin2coff
+SOURCE			bin2coff.cpp
+
+
+VENDORID 0x70000001
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/group/bld.inf	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,68 @@
+// Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Base tools (e.g. petran)
+// 
+//
+
+/**
+ @file
+*/
+
+
+PRJ_PLATFORMS
+TOOLS TOOLS2
+
+PRJ_EXPORTS
+
+../dspec/romimage.rtf		/epoc32/engdoc/e32tools/romimage.rtf
+../tranasm/tranasm.bat		/epoc32/tools/tranasm.bat
+../tranasm/tranasm.pl		/epoc32/tools/tranasm.pl
+../tranasm/tranasm_x86.pl	/epoc32/tools/tranasm_x86.pl
+../elftools/elf2inf.pl		/epoc32/tools/elf2inf.pl
+../elftools/def2dll.bat		/epoc32/tools/def2dll.bat
+../elftools/def2dll.pl		/epoc32/tools/def2dll.pl
+../elftools/deputil.pl		/epoc32/tools/deputil.pl
+../elftools/deputil.pm		/epoc32/tools/deputil.pm
+../elftools/inc/elfdefs.h	SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(tools/elfdefs.h)
+../checklib/tag/tag_elf		/epoc32/tools/tag/tag_elf
+../checklib/tag/tag_coff	/epoc32/tools/tag/tag_coff
+../inc/seclib.h				SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(seclib.h)
+
+
+PRJ_MMPFILES
+#ifdef TOOLS
+eruntest
+etouch
+../pe_dump/pe_dump.mmp
+pediff
+readtype
+rommask
+w32repro
+wveconv
+bin2coff
+genstubs
+getexports
+elftran
+seclib
+secdump
+petran
+#else
+checklib.mmp
+../elf2e32/group/elf2e32.mmp
+elfdump
+seclib
+#endif
+
+PRJ_TESTMMPFILES
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/group/checklib.mmp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,51 @@
+// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+
+target          checklib.exe
+targettype      exe
+
+userinclude     ..
+userinclude     ../checklib
+userinclude     ../checklib/object/coff
+
+sourcepath      ../checklib
+
+source          main.cpp
+
+source          library/library.cpp
+source          misc/endian.cpp
+
+sourcepath      ../checklib/object
+
+source          object.cpp
+source          elf_object.cpp
+source          coff_object.cpp
+
+source          elf/elf_file_header.cpp
+source          elf/elf_section_header.cpp
+source          elf/elf_symbol.cpp
+source          elf/elf_string_table.cpp
+
+source          coff/coff_file_header.cpp
+source          coff/coff_symbol.cpp
+source          coff/coff_string_table.cpp
+
+
+//option GCC      -Wall -Wextra
+
+
+vendorid        0x70000001
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/group/elfdump.mmp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,25 @@
+// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+
+TARGET			elfdump.exe
+TARGETTYPE		exe
+SOURCEPATH		../elfdump
+SOURCE			 elfdump.cpp
+OS_LAYER_SYSTEMINCLUDE_SYMBIAN
+USERINCLUDE  ../inc 
+option GCC -w
+
+VENDORID 0x70000001
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/group/elftran.mmp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,37 @@
+// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+macro		__SUPPORT_ELF_FILES__
+
+target			elftran.exe
+targettype		exe
+sourcepath	..\elftools\elftran
+source			elf_file.cpp elf_dlld.cpp elf_imp.cpp elf_reloc.cpp elf_tran.cpp
+sourcepath	..\e32uid
+source			e32uid.cpp
+sourcepath	..\host
+source			h_file.cpp h_mem.cpp h_utl.cpp
+userinclude	..\elftools\inc
+sourcepath	..\e32image
+source			e32image.cpp tr_main.cpp imgdump.cpp
+sourcepath	..\e32image\deflate
+source			decode.cpp encode.cpp deflate.cpp inflate.cpp panic.cpp compress.cpp
+sourcepath  	..\compress
+source			byte_pair.cpp pagedCompress.cpp
+USERINCLUDE ../inc
+OS_LAYER_SYSTEMINCLUDE_SYMBIAN
+USERINCLUDE ../compress
+
+VENDORID 0x70000001
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/group/eruntest.mmp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,24 @@
+// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+
+TARGET			eruntest.exe
+TARGETTYPE		exe
+SOURCEPATH	..\eruntest
+SOURCE			 eruntest.cpp
+
+ 
+
+VENDORID 0x70000001
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/group/etouch.mmp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,23 @@
+// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+
+TARGET			etouch.exe
+TARGETTYPE		exe
+SOURCEPATH	..\etouch
+SOURCE			 etouch.cpp
+ 
+
+VENDORID 0x70000001
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/group/filesystem.mmp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,25 @@
+// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+target			libfilesystem.a
+targettype		lib
+sourcepath	../filesystem/source
+source			cluster.cpp directory.cpp dirregion.cpp errorhandler.cpp fat16bootsector.cpp fat16filesystem.cpp fat32bootsector.cpp fat32filesystem.cpp fatbasebootsector.cpp filesysteminterface.cpp longentry.cpp longname.cpp messagehandler.cpp messageimplementation.cpp filesystemclass.cpp
+userinclude	../filesystem/include
+
+option GCC -w
+
+
+macro _MINGW_INL
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/group/genstubs.mmp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,23 @@
+// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+TARGET			genstubs.exe
+TARGETTYPE		exe
+SOURCEPATH	..\elftools\genstubs
+SOURCE			 genstubs.cpp
+USERINCLUDE	..\elftools\inc
+OS_LAYER_SYSTEMINCLUDE_SYMBIAN
+
+VENDORID 0x70000001
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/group/getdirective.mmp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,23 @@
+// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+TARGET			gendirective.exe
+TARGETTYPE		exe
+SOURCEPATH	..\elftools\getexports
+SOURCE			 getdirective.cpp
+USERINCLUDE	..\elftools\inc 
+OS_LAYER_SYSTEMINCLUDE_SYMBIAN
+
+VENDORID 0x70000001
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/group/getexports.mmp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,23 @@
+// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+TARGET			getexports.exe
+TARGETTYPE		exe
+SOURCEPATH	..\elftools\getexports
+SOURCE			 geninf.cpp
+USERINCLUDE	..\elftools\inc
+OS_LAYER_SYSTEMINCLUDE_SYMBIAN
+
+VENDORID 0x70000001
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/group/memmap.mmp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,28 @@
+// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+target			libmemmap.a
+targettype		lib
+
+sourcepath		../memmap/source
+source			memmap.cpp
+source			memmaputils.cpp
+
+userinclude		../inc
+userinclude		../memmap/include
+OS_LAYER_SYSTEMINCLUDE_SYMBIAN 
+
+option GCC -w
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/group/parameterfileprocessor.mmp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,25 @@
+// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+target			libparameterfileprocessor.a
+targettype		lib
+sourcepath		../parameterfileprocessor/source
+source			parameterfileprocessor.cpp 
+
+userinclude		../parameterfileprocessor/include
+
+option GCC -w
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/group/patchdataprocessor.mmp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,27 @@
+// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+target			libpatchdataprocessor.a
+targettype		lib
+
+sourcepath		../patchdataprocessor/source
+source			patchdataprocessor.cpp 
+
+userinclude		../patchdataprocessor/include
+userinclude		../inc
+
+OS_LAYER_SYSTEMINCLUDE_SYMBIAN
+
+option GCC -w
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/group/pediff.mmp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,38 @@
+// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+
+target			pediff.exe
+targettype		exe
+sourcepath	..\e32uid
+source			e32uid.cpp
+sourcepath	..\host
+source			h_mem.cpp h_utl.cpp
+sourcepath	..\pediff
+source			pediff.cpp
+sourcepath	..\e32image
+source			e32image.cpp
+sourcepath	..\e32image\deflate
+source			decode.cpp encode.cpp deflate.cpp inflate.cpp panic.cpp
+source			compress.cpp
+sourcepath	..\compress
+source			pagedcompress.cpp byte_pair.cpp
+
+userinclude     ..\compress
+USERINCLUDE ../inc
+OS_LAYER_SYSTEMINCLUDE_SYMBIAN
+ 
+
+VENDORID 0x70000001
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/group/petran.mmp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,37 @@
+// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+
+macro		__SUPPORT_PE_FILES__
+
+target			petran.exe
+targettype		exe
+sourcepath	..\e32uid
+source			e32uid.cpp
+sourcepath	..\host
+source			h_file.cpp h_mem.cpp h_utl.cpp
+sourcepath	..\pefile
+source			pe_file.cpp pe_imp.cpp pe_reloc.cpp pe_tran.cpp pe_utl.cpp
+sourcepath	..\e32image
+source			e32image.cpp tr_main.cpp imgdump.cpp
+sourcepath	..\e32image\deflate
+source			decode.cpp encode.cpp deflate.cpp inflate.cpp panic.cpp compress.cpp
+sourcepath  	..\compress
+source			byte_pair.cpp pagedCompress.cpp
+USERINCLUDE ../inc
+OS_LAYER_SYSTEMINCLUDE_SYMBIAN
+USERINCLUDE ../compress
+
+VENDORID 0x70000001
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/group/readimage.mmp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,52 @@
+// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+macro		__SUPPORT_ELF_FILES__
+
+target			readimage.exe
+targettype		exe
+sourcepath	..\readimage\src
+source			common.cpp e32_image_reader.cpp image_handler.cpp image_reader.cpp rofs_image_reader.cpp rom_image_reader.cpp
+sourcepath	..\e32uid
+source			e32uid.cpp
+sourcepath	..\host
+source			h_file.cpp h_mem.cpp h_utl.cpp
+userinclude	..\elftools\inc ..\readimage\inc ..\rofsbuild ..\rombuild
+sourcepath	..\rofsbuild
+source			r_build.cpp r_coreimage.cpp 
+sourcepath	..\rombuild
+source			r_global.cpp
+sourcepath	..\e32image
+source			e32image.cpp
+sourcepath	..\e32image\deflate
+source			decode.cpp encode.cpp deflate.cpp inflate.cpp panic.cpp compress.cpp
+
+sourcepath	..\compress
+source			pagedcompress.cpp byte_pair.cpp
+
+sourcepath	../patchdataprocessor/source
+source			patchdataprocessor.cpp
+
+userinclude     ..\compress 
+userinclude		..\patchdataprocessor\include
+userinclude		..\sisutils\inc
+
+USERINCLUDE ../inc
+OS_LAYER_SYSTEMINCLUDE_SYMBIAN
+
+staticlibrary 	sisutils.lib
+
+OPTION MSVC /W1 /GX
+VENDORID 0x70000001
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/group/readtype.mmp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,23 @@
+// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+
+TARGET			readtype.exe
+TARGETTYPE		exe
+SOURCEPATH	..\readtype
+SOURCE			 readtype.cpp
+OS_LAYER_SYSTEMINCLUDE_SYMBIAN
+
+VENDORID 0x70000001
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/group/release.txt	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,3566 @@
+Version is unchanged
+===============
+Made by Zheng Shen 24/08/2009
+  1. REQ12628 Tools codeline refactoring for SymTB9.2
+     ROM Tools are removed from MCL.
+
+Version 2.2.0 (readimage)
+===============
+Made by Zhi Dou 31/07/2009
+
+  1.	PREQ2465 REQ12562 Byte-pair compression update
+
+Version 2.12.0 (rombuild)
+================
+(Made by Zhi Dou, 31/07/2009)
+  1. PREQ2465 REQ12562 Byte-pair compression update
+
+Version 2.5.0 (rofsbuild)
+================
+(Made by Zhi Dou, 31/07/2009)
+  1. PREQ2465 REQ12562 Byte-pair compression update
+
+Version 2.11.0 (rombuild)
+================
+(Made by Zheng Shen, 23/07/2009)
+  1. PREQ2465 REQ11939  Warnings for unpaged memory size overflows
+
+Version 2.10.1 (rombuild)
+===============
+Made by Zhi Dou 29/07/2009
+
+  1. DEF140763 ROMBUILD should prevent kernel extensions linking to user side 
+
+Version 2.10.0 (rombuild)
+===============
+Made by Zhi Dou 20/07/2009
+
+  1. REQ13110 HCR file in ROM (ROMBUILD)
+
+Version 2.4.0 (rofsbuild)
+===============
+Made by Zhi Dou 20/07/2009
+
+  1. REQ13111 HCR file in a separate NAND partition (ROFSBUILD)
+
+Version 2.1.602
+===============
+Made by Vino Jose 10/07/2009
+
+1.	ChrisN
+	1.	MILESTONE: SymTB9.2, GT0419, MS3.36, DS.1815 PREQ2621 System Architecture Relocating header files - K&HS support
+
+Version 2.1.601
+===============
+Made by DeleOgunjumelo 15/01/2009
+
+1.	JonCo
+	1.	MILESTONE: Diran, GT0421, MS3.20, DS1210, REQ11822: WDP support for SBSv1
+	2.	MILESTONE: Diran, GT0421, MS3.20, DS1210, REQ11823: WDP support for romtools
+		PREQ1954 Writeable data paging: prototype release 
+
+Version 2.1.600
+===============
+Released by Kun Xu, 20/06/2008
+	1. DEF122540: Slight issue with readimage and sis files that specify a drive letter.
+
+Version 2.1.599
+===============
+Released by Kun Xu, 17/06/2008
+	1. DEF122721 READIMAGE:Files are extracted in 'reftsp.ini' directory for an ROFS image.
+
+Version 2.1.598
+===============
+Released by Kun Xu, 02/06/2008
+	1. DEF122243: ROMBuild deal with file contain line more than 255 characters incorrectly 
+
+Version 2.1.597
+===============
+Released by Kun Xu, 02/06/2008
+	1. DEF122827: Rom build failure with _ONENAND switch
+	2. DEF119470: ROFSBUILD hangs when an empty OBY file is passed as input
+	3. DEF122024: Many warnings when compiling readimage tool with MSVC++ 6.0
+	4. DEF122533: ROFSBUILD loglevel2 generates logs which don't work for interpretsis
+	
+Version 2.1.596
+===============
+Released by ReubenH, 12/05/2008
+	1. DEF115401: Incomplete validation of data in loader 
+
+Version 2.1.595
+===============
+Released by Mool Chand Tyagi, 13/12/2007
+	1. PDEF115166 	Symbian rombuild.exe work incorrectly when compression is used
+
+Version 2.1.594
+===============
+Released by Tamilarasu Byran, 04/12/2007
+	1. PDEF114692: elf2e32 - failed to report relocation data.
+
+Version 2.1.593
+===============
+Released by Tamilarasu Byran, 07/11/2007
+	1. DEF113140: Buildrom fails with error "Use the keyword 'romsize' " for extension ROFS image.
+
+Version 2.1.592
+===============
+Released by Madhu, 31/10/2007
+	1. PDEF107501: readimage is not able to display output of the patched dll.
+
+Version 2.1.591
+===============
+Released by Tamilarasu Byran, 26/10/2007
+	1. INC112577: Readimage tool crashes when run on S60 3.2 rom image.
+
+Version 2.1.590
+===============
+Released by Tamilarasu Byran, 25/10/2007
+	1. DEF107096: Postlinker ignores references to imports from the data segment.
+	2. DEF112586: Buildrom fails while building extension rofs image.
+
+Version 2.1.589
+===============
+Released by Saurabh, 11/10/2007
+	1.	INC112241: Operator precedence bug in Rombuild  
+
+Version 2.1.588
+===============
+Released by Moolchand, 10/10/2007
+	1.	PDEF109724: Rombuild/Rofsbuild should warn if dll or exe is located outside standard paths 
+
+Version 2.1.587
+===============
+Released by Saurabh, 03/10/2007
+	1.	DEF111903: Elf2e32 GT warning base e32  
+
+Version 2.1.586
+===============
+Released by Madhu, 28/09/2007
+	1.	PDEF102323: rofsbuild crashes without generating appropriate error message 
+
+Version 2.1.585
+===============
+Released by Tamilarasu Byran, 25/09/2007
+	1.	DEF111695: Data drive image generation failed
+	2.	DEF104630: elf2e32 crashes
+
+Version 2.1.584
+===============
+Released by AndrewSmi, 09/08/2007
+1.	AndrewSmi
+	1.	DEF110094: Run mode debug: debuggable keyword not supported for armv5_abiv1 in MCL
+
+Version 2.1.583
+===============
+Released by Tamilarasu Byran, 08/08/2007
+	1.	DEF106861: Specifying a compression method in buildrom doesn't work
+
+Version 2.1.582
+===============
+Released by MiguelB, 06/06/2007
+
+1.	Andrew Haigh
+	1.	PREQ1426: Added Debuggable bitfield to E32 header and associated changes
+
+
+Version 2.1.581
+===============
+Released by ???, dd/mm/yyyy
+1.  SivashankarN
+	1.	EC114: Core OS: Enhance File Server to solve 1085/1086 interoperability issue. 
+			Enhanced rofsbuild tools to handle the special attributes to create the rofs image
+
+Version 2.1.580
+===============
+Released by JonC, 03/04/2007
+
+	1) DEF104558 ELF2E32 should build dynamically for TOOLS2 rather than statically for TOOLS
+
+Version 2.1.579
+===============
+Released by KunalM, 27/03/2007
+
+	1) Seclib built as part of the system build
+
+Version 2.1.578
+===============
+Released by KunalM, 20/03/2007
+
+	1) ROM building tools (ROMBUILD,ROFSBUILD) ported to the TOOLS2 platform, under PREQ1182, MS3.1
+
+Version 2.00.577
+==========================
+(Made by SushmitaR, 19/03/2007)
+
+1) OlegI
+	DEFECT FIX: PDEF102522: DP: unhandled exception readimage.exe when using a XIP ROM paged core image 
+
+Version 2.1.576
+===============
+Released by KunalM, 06/03/2007
+
+	1) Build tools (elfdump,uidcrc) ported to the TOOLS2 platform, under PREQ1182, MS3.6.2
+	2) Seclib and Zlib added as pre-built libraries in the MCL for TOOLS2
+
+
+Version 2.00.575
+==========================
+(Made by JonathanM, 07/02/2007)
+
+1) JonathanM
+	DEFECT FIX: DEF101095: DP: Rofsbuild doesn't support paged, unpaged and pagingoverride keywords
+
+Version 2.00.574
+==========================
+(Made by Dusko, 12/12/2006)
+
+1) Dusko
+	DEF097419: DemandPaging:Keywords paged/unpaged are case sensitive
+
+Version 2.00.573
+==========================
+(Made by Dusko, 11/10/2006)
+
+1) Dusko
+	DEF095506: Change in behaviour for 0 length files (rofsbuild)
+
+Version 2.00.572
+==========================
+(Made by Dusko, 27/09/2006)
+
+1.	Dusko
+	DEF093537: Re-Introducing warnings when creating demand paged ROMs
+
+2.	RajeswariR
+	DEF087061 : PR0104 test failures - Incorrect function call, incorrect msg checking
+	DEF088937: Incorrect usage of $ChopSrcPath in cl_bpabi.pm.
+	DEF091008: ignorenoncallablefunction not supported in ABIV2 mode toolchain.
+	DEF093342: Symbol name for absent exports present in the DSO file.
+	DEF093344: ABIV2 fixup should not happen for export table relocation entries in postlinker.
+	DEF093345: Support for no exception compiler option in the ABIV2 mode toolchain.
+	DEF094731: Workaround to handle ARM linker veneer problem.	
+
+Version 2.00.571
+==========================
+(Made by RichardC, 13/09/2006)
+
+1.	RichardCo
+	1.	DEF093954: GetSecurityInfo does not support opening unicode filenames
+	2.	DEF092758: E32ImageFile::Open does not support opening unicode filenames
+
+Version 2.00.570
+==========================
+(Made by Dusko, 05/09/2006)
+
+1.	Dusko
+	INC088317 Elftran crashes during compilation of ARMV5 dll 
+
+Version 2.00.569
+==========================
+(Made by JonathanM, 01/09/2006)
+
+1.	DanH
+	1.	DEF091669: Several rombuild problems in demand paged roms.
+		Fixed various rombuild problems with different demand paging configurations, including
+		unhandled exceptions with certain edge cases and missing support for the 'alwayspage'
+		value for the pagingoverride keyword.
+
+Version 2.00.568
+==========================
+(Made by Dusko, 23/08/2006)
+
+1.	Dusko
+	DEF092459: Warnings when creating demand paged ROMs
+
+Version 2.00.567
+==========================
+(Made by ????, ??/??/2006)
+
+1.	AttilaV
+	1.	DEF090973: elf2e32 can't dump header of a byte pair compressed binary
+		Added missing image header wirting code fragment into e32imagefile.cpp 
+		E32ImageFile::WriteImage()method Bytepair compressed image generation branch.
+		Added new case: branch for display bytepair compression method in t the imgdump.cpp 
+		E32ImageFile::DumpHeader method. 
+
+	2.	DEF091564: Spurious warnings when using BytePair compression.
+		In \e32tools\e32image\e32image.cpp there are spuriou 'warning' messages whenever 
+		BytePair compression is used in "ostream& operator<<". These should be deleted. 
+
+Version 2.00.566
+==========================
+(Made by RobertJ, 20/07/2006)
+
+1.	DanH
+	1. 	DEF090813: Rofsbuild has warnings when creating demand paged ROMs
+		Added support for paged/unpaged attributes in rofsbuild. No action is taken with these 
+		attributes yet (not needed until "Code Paging" support is added) but the warnings have
+		been removed when DP ROMs are created.
+
+Version 2.00.565
+===========================
+(Made by DmitryL, 28/06/2006)
+
+1.	AttilaV
+	1.	DEF088473: ELF2E32 tool terminates if --compressionmethod bytepair CLI parameter presents
+		Fixed an uninitialised pointer use at create byte pair compressed executable image.
+
+
+Version 2.00.564
+===========================
+(Made by Dusko, 19/06/2006)
+
+1.	JohanG
+	DEF088447 Change in the rom log file format breaks CW debugging ...
+
+
+Version 2.00.563
+===========================
+(Made by Dusko, 19/06/2006)
+
+1.	JohanG
+	1.	DEF079348: ROMBUILD doesn't always fail cleanly on OOM
+	2.	DEF083206: elftran only dumps inferred relocations, not code or data
+
+
+Version 2.00.562
+===========================
+(Made by DjordjeK, 06/06/2006)
+
+1.	AttilaV
+	1.	DEF081770: The Loader should verify compression type.
+
+
+Version 2.00.561
+===========================
+(Made by DavidM, 26/05/2006)
+
+1.	AttilaV
+	Milestone: Argus,GT0286,MS3.2
+	Extended PETRAN, ELFTRAN, ELF2E32, ROMBUILD, ROFSBUILD to handle new compression method Byte Pair 
+	and new executable image compressed by the new compression
+
+
+Version 2.00.560
+===========================
+(Made by DuskoJ, 30/05/2006)
+1) SatyakamM
+	DEF083920: Rofsbuild crashes on using patchdata for ABIV2 DLL (ABIV1 works fine)
+
+Version 2.00.559
+===========================
+(Made by DuskoJ, 13/04/2006)
+1) Dusko
+	DEF083116 Validaterel always fails 
+
+Version 2.00.558
+===========================
+(Made by DuskoJ, 16/03/2006)
+1) JonC
+	DEF082002 - EVALID can't deal with case differences in ARMV5 DLL
+
+Version 2.00.557
+===========================
+(Made by JonathanM, 06/03/2006)
+
+1)	JonathanM
+	MILESTONE: Argus GT0286, MS3.1 PREQ209 Demand Paging Prototype.
+	First delivery of demand paging prototype. Delivery step DS204.
+
+Version 2.00.556
+===========================
+(Made by KuldipN, 08/02/2006)
+1) KuldipN
+	DEF078510 buildrom does not validate new XML files 
+	DEF077827 buildrom feature management - should disallow default ranges with extra flags 
+
+Version 2.00.555
+===========================
+(Made by DuskoJ, 24/01/2006)
+1) DuskoJ
+	DEF075849 Feature registry API returning error when featreg.cfg file is greater than 64KB
+	DEF077941 VA_* macros cannot be used with GCCE 
+
+Version 2.00.554
+===========================
+(Made by JonathanM, 04/01/2006)
+
+1) JonathanM
+	PREQ1030 - Kernel support for device driver test suites - Generic Logging Engine.
+	This adds support for the following keywords into ROMBUILD:
+		btrace, btracemode and btracebuffer
+	See base/documentation/Base_How_To_BTrace.doc
+
+Version 2.00.553
+===========================
+(Made by KuldipN, 21/10/2005)
+1) KuldipN
+	PREQ1086 - Device Feature Management (DS 069)
+Version 2.00.552
+===========================
+(Made by KuldipN, 12/10/2005)
+1) KuldipN
+	PREQ1028 - Plug-in compiler integration (DS 063)
+Version 2.00.551
+===========================
+(Made by KuldipN, 06/10/2005)
+1) KuldipN
+	PREQ1085 Flexible device ROM configuration
+Version 2.00.550
+===========================
+(Made by KuldipN, 14/09/2005)
+1) KuldipN
+	REQ5412: Enhance ROM tools compression options  (part of PREQ1192)
+
+Version 2.00.549
+===========================
+(Made by DuskoJ, 12/07/2005)
+1) RajeswariR
+	DEF065105 Using GCC-E should not require modification of existing bld.inf files
+	DEF063447 Postlinker crashes with unsupported outfile
+
+Version 2.00.548
+================
+(Made by JonC, 21/07/2005)
+1) JonC
+      PREQ1032 Hardware-dependent support for "VFP" floating point acceleration and accelerated maths functions
+
+Version 2.00.547
+===========================
+(Made by DuskoJ, 13/07/2005)
+1) Dusko
+	DEF063791 ROFSBUILD resets main ROFS file attributes when processing a ROFS extension
+
+Version 2.00.546
+===========================
+(Made by DuskoJ, 01/07/2005)
+
+1) Dusko
+	DEF062362 PE_DUMP does not report all significant content in NSIS files 
+	DEF064173 secdump.exe blows up when you try and use it 
+
+Version 2.00.545
+===========================
+(Made by KuldipN, 22/06/2005)
+
+1) KuldipN
+		DEF060825  PR0104: Addition of GCCE support to CodeWarrior 
+
+Version 2.00.544
+===========================
+(Made by KuldipN, 10/06/2005)
+
+1) KuldipN
+		DEF062125  PR104: Custom DLL generation is failing 
+
+Version 2.00.543
+===========================
+(Made by DuskoJ, 10/06/2005)
+
+1) Dusko
+		DEF061701 Petran.exe can crash on certain non E32 files
+
+Version 2.00.542
+===========================
+(Made by KuldipN, 27/05/2005)
+
+1) KuldipN
+	PREQ413   Changes to support the GCCE toolchain.
+      	PREQ414   Enable Commercial Compatible Compilers
+      	DEF061420 Elf2e32 Problems
+
+Version 2.00.541
+===========================
+(Made by DuskoJ, 27/05/2005)
+
+1) BalaT
+	DEF060837 RVCT2.2 emits unresolved symbols which ELFTRAN does not notice.
+
+
+Version 2.00.540
+===========================
+(Made by KuldipN, 11/05/2005)
+
+1) KuldipN
+	DEF060826 - PR0104 - PostLinker Memory Leaks
+
+Version 2.00.539
+===========================
+(Made by KuldipN, 3/05/2005)
+
+1) KuldipN
+	PREQ413 - Changes to support the GCCE toolchain.
+
+Version 2.00.538
+===========================
+(Made by BalaT, 1/04/2005)
+
+1) BalaT
+	DEF058002 - [System Build] Failed to build EIKCORE.DLL using RVCT2.2 
+
+Version 2.00.537
+===========================
+(Made by MiguelB, 1/03/2005)
+
+1) MiguelB
+	DEF055301 - ROFSBUILD, COREIMAGE keyword: problem with single-char files/directories 
+
+Version 2.00.536
+===========================
+(Made by Bala, 22/02/2005)
+1) Bala
+	PREQ1027 Submission of RVCT 2.2 Run-Time ABI Compliance to MCL
+
+Version 2.00.535
+===========================
+(Made by Dusko, 21/02/2005)
+
+1)	BalaT
+	DEF051265 Problems debugging .cia files in ARMV5 builds.
+
+Version 2.00.534
+===========================
+(Made by Dusko, 19/01/2005)
+
+1)	Dusko
+	DEF052809 - GENSTUB ERROR: can't open output file....
+
+Version 2.00.533
+===========================
+(Made by Dusko, 23/11/2004)
+
+1)	BalaT
+	1) DEF051128 - armv5 library build in parallel cause conflicts
+
+Version 2.00.532
+===========================
+(Made by KamranN, 11/11/2004)
+
+1)	KamranN
+	1)	Fix for defect DEF051421  Problems with binary search in ROFS  
+
+Version 2.00.531
+===========================
+(Made by Dusko, 08/10/2004)
+
+1)	BalaT
+	1) DEF047934 - ROMBUILD:EXE corrupts ROM directory of an extension ROM 
+
+Version 2.00.530
+===========================
+(Made by Dusko, 04/10/2004)
+
+1)	BalaT
+    1.	Fix for DEF046271 - EVALID cannot cope with differing temp paths present in some ARMV5 .lib files.
+
+Patch to Version 2.00.529
+===========================
+(Made by ???, ??/??/2004)
+
+1.	JonathanM
+	1.	Fix for -dump option in PETRAN.
+
+Patch to Version 2.00.529
+===========================
+(Made by MichaelP, 27/08/2004)
+
+1.	JonathanM
+	1.	Defect Fix: DEF048051 - ROMBUILD can when PlatSecEnforceSysBin is ON
+
+
+Version 2.00.529
+===========================
+(Made by KuldipN, 25/08/2004)
+
+1.	NaheedA
+	1.  DEF047579 - petran fails to report a corrupted input file.
+	2.  DEF046271 - EVALID cannot cope with differing temp paths present in some ARMV5 .lib files
+
+Patch to Version 2.00.528
+===========================
+(Made by JonathanM, 19/08/2004)
+
+1.	JonathanM
+	1.	Defect Fix: DEF048015 - [System Build] ROMs failed to build for MCL 03344 8.1b/9.0
+
+Version 2.00.528
+===========================
+(Made by DjordjeK, 18/08/2004)
+
+1.	JonathanM
+	1.	Added -dump option to PETRAN and ELFTRAN to select what information should
+		be displayed about an image file. This takes a string argument consisting
+		of letters to select the information to be dumped:
+			h	All header info
+			s	Platform Security info
+			c	Code section
+			d	Data section
+			e	Exports
+			i	Imports
+		These letters can be used in any combinations, e.g. "PETRAN -dump ie foo.exe"
+		will show all Imports and Exports of FOO.EXE
+
+Version 2.00.527
+===========================
+(Made by JonathanM, 26/07/2004)
+
+1.	JonathanM
+	1.	Added PlatSecEnforceSysBin setting to ROMBUILD which forces all binary files to
+		be placed under the \sys\bin\ directory.
+		Part of Yankee,GT0217,MS3.1.4 PS6.3.2 Ignore path information for binary files
+		within ROM build and loader.
+		
+Version 2.00.526
+===========================
+(Made by JonathanM, 26/05/2004)
+
+1.	DennisM
+	1.	Fixed defect DEF041434 EKA2 ROMBUILD can't build extension ROMs
+	2.	ROMBUILD now checks that kernel side code doesn't link to user side
+		code, and vice-versa.
+
+Version 2.00.525
+================
+Made by Dusko, 18/05/2004
+
+1) Dusko
+	1) Fix for DEF045146  EVALID does not correctly handle ARMV5 lib files or RVCT .MAP files.
+
+Version 2.00.524
+================
+Made by JonC, 29/04/2004
+
+1) Jon
+	Fixes for:
+	1) DEF044567 gendirective obtains ELF section header data incorrectly
+	2) DEF044048 RVCT version of DEF2DLL camplains about DLLs not having exports 
+
+Version 2.00.523
+===========================
+(Made by JonathanM, 19/03/2004)
+
+1.	JonathanM
+	1.	Implemented the requirements:
+		REQ2632 - Configurability of the enforcement of capabilities
+		REQ2633 - Security violation diagnostic
+		REQ3142 - Associate Platform Security information with an executable.
+		See /cedar/generic/base/documentation/Base_How_To_Configure_Platform_Security_Settings.doc
+
+Version 2.00.522
+===========================
+(Made by JonathanM, 26/02/2004)
+
+1)	JonathanM
+	1)	Modifications made for implementation of
+		Change Request JDOD-5VUJ7F - Change in executable format of EKA2 binaries.
+	2)	Tools now use the sytax "cap1+cap2+cap3" to specify a named set of capabilities
+		(Rather than specifying a single hexadecimal number.)
+	3)	Added three new keywords to ROMBUILD:
+			PlatSecEnforcement
+			PlatSecDiagnostics
+			PlatSecDiasabledCaps cap1+cap2+cap3
+		these are used for specifying Platform Security settings which are then placed
+		in the ROM Header.
+
+Version 1.00.521
+================
+Made by DuskoJ, 16/02/2004
+
+1) Dusko
+	1) Fix for DEF042440 - elfdump creates a new file with zero length.
+
+
+Version 2.01.520
+================
+Made by AndrewJ, 13/02/2004
+
+1) StephanGu
+	Implemented CLCT-5VEK4P - "Binary search in ROFS 
+	together with 'expanding ROFS entries with UIDs'".
+	Changed Rofsbuild to provide a sorted array of offsets
+	in order to allow the file system to perform binary search
+	through the image.  Also expended the TRofsEntry structure
+	to include a copy of the file UID data.
+
+
+Version 2.01.519
+================
+Made by DuskoJ, 30/01/2004
+
+1) Jon
+	1) Fix for - DEF040324 PETRAN access violation whilst converting THUMB build EXEDLL
+	   (Further amendment).
+
+Version 2.01.518
+================
+Made by DuskoJ, 22/01/2004
+
+1) Kuldip
+	1) Fix for DEF40965 Changes to stop overwriting readonly attribute for directories.
+
+
+Version 2.01.517
+================
+Made by DuskoJ, 05/01/2004
+
+1) Kuldip
+	Fix for DEF039055  "Change in behaviour for 0 length files"
+
+Version 2.01.516
+================
+Made by DuskoJ, 19/12/2003
+
+1) Dusko
+	1)	fix for DEF039365 - Petran ignores -fixed keyword	
+
+
+Version 2.01.515
+================
+Made by Dusko, 17/12/2003
+
+1. Kuldip
+	1)	REQ1733, A3.2 Improved Command Line Build Tools
+        ROFSBUILD ROM flexing, Automatic sizing behaviour
+		Automatic XIP-extension OBEYFILE, header generation
+
+Version 2.01.514
+================
+Made by Dusko, 24/11/2003
+
+1. Dusko
+	1)	DEF039411  pediff does not ignore the header CRC 
+		File changed pediff.cpp
+
+Version 2.01.513
+================
+Made by Dusko, 03/11/2003
+
+1. Dusko
+	1.	fix for DEF039536 Non existing files referenced in  Tools_e32tools.mrp...
+
+
+1) William
+	1)	Added PE_DUMP to support the new EVALID.
+
+Version 2.01.512
+================
+Made by Dusko, 10/10/2003
+
+1. Dusko
+	1.	Zephyr,PRO0085,REQ1663, Remove dependencies on MSDEV	
+	  	Changes to BIN2COFF and  WVECONV in order to build with CW
+
+
+Version 2.01.511
+================
+Made by Dusko, 02/10/2003
+
+1. Dusko
+	1.	fix for DEF037065 Problem with error message from uidcrc
+
+Version 2.01.510
+================
+
+Made by Dennis, 24/09/2003
+
+1. Dennis
+	1.	ROMBUILD adds sorted offsets to directory structures to enable binary
+		searching of the ROM file system.
+	2.	Implemented CR ATHE-5PZEAU (Add Version Numbers to Symbian OS Executables).
+
+Version 1.00.505
+================
+Made by DuskoJ, 22/08/2003
+
+1) Morgan
+	Ported ROFSBUILD extension support from beech
+	1) 	Added ROFSBUILD extension support.  Start a ROFS extension with obey file 
+		commands
+			extensionrofs = <filename>
+			rofssize = <size>
+		Added support for ALIASing, HIDEing and RENAMEing.  Semantics and syntax
+		for these commands are the same as ROMBUILD.
+		Core image and extension can be joined together with 
+			tools\e32tools\rombuild\addextensions.pl
+		Added TRofsExtensionHeader to ROFS.H
+		Padding, Alignment and Repro assumptions: 
+		The extension assumes it will be added TRofsHeader::iMaxSize bytes
+		after the start of the core image.  It is assumed the max size of the core
+		image will be aligned appropriately for the underlying ROM device.
+		Core image has signature "ROFS" at offset 0, extension has signature
+		"ROFx" at offset 0 into extension (= iMaxSize after start of core image).
+
+2) Morgan
+	1)	Added rofsbuild\dumpdirs.pl - utility for dumping the ROFS directory
+		structure.
+	2)	Ported ROFSBUILD executable compression from beech
+
+3) Dusko	Changes to a number of e32tools components in order to build cleanly with CodeWarrior
+
+
+Version 1.00.504
+================
+Made by DuskoJ, 25/07/2003
+
+1. Jon
+	1. Fixed DEF036679 by adding copyright statements where appropriate.
+
+
+Version 2.00.503
+================
+
+1) Morgan
+	1) Removed ROMBUILD build warning
+
+Version 2.00.503
+================
+
+1) Dennis
+	
+	ROMBUILD changes:
+
+	1)	'kernelstackaddress' keyword removed. This is now always calculated by
+		ROMBUILD.
+	2)	Address allocation strategy modified. The initial stack is now placed
+		immediately after the kernel .data/.bss area. The kernel heap follows
+		the initial stack (as before). In the moving model, fixed process data
+		chunks are placed after the kernel heap (on chunk boundaries).
+	3)	TRomHeader::iKernStackAddress replaced with TRomHeader::iKernelLimit,
+		which gives the end of the kernel heap rounded up to a chunk boundary
+		except on the moving memory model where it is advanced past the space
+		reserved for fixed process data chunks.
+
+
+Version 2.00.502
+================
+
+1) Dennis
+	1)	Pulled out general E32Image file handling code into e32tools/e32image/...
+		directories. This includes compression/decompression and all stuff which
+		doesn't require	the native PE or ELF file.
+	2)	Merged the two versions of ROMBUILD. ROMBUILD.EXE now accepts E32Image
+		files derived from either PE or ELF. It no longer accepts the native
+		PE/ELF files directly. XIPRMBLD.EXE is no longer built.
+	3)	Added a special instruction (TST PC, #0) to the beginning of all EKA2
+		entry points. This is detected by PETRAN/ELFTRAN and the file marked as
+		having an EKA2 style entry point. The ELF-derived and JFormat flags have
+		been generalised into header format, import format and ABI fields. An
+		entry point type field has been added to distinguish EKA1 and EKA2 entry
+		points.
+	4)	Add 'nowrapper' keyword to ROMBUILD. If specified in OBY file it causes
+		the 256 byte wrapper to be omitted. This setting can still be overridden
+		on the command line.
+
+
+
+======================
+ELFDUMP version 1.0.0
+1) Dusko
+     1) Adding elfdump.cpp. Elfdump is required to be a standalone program     
+    	which can present an ELF object file in a form suitable for use with 
+    	EVALID. It prints hex dumps of relevant sections, directive section as 
+    	text and relocation information showing the symbol the name and of the 
+    	section in which the relocation occurs.
+
+Version 1.00.501
+================
+EKA2 Tools
+
+1) RobertJ
+	1) Support for compressed executables introduced. Source code for the compression
+	& decompression is in petran\szip. Changed PEDUMP to dump compressed executables
+	added -compress & -nocompress options to PETRAN
+	2) Bumped version number of written executables to 1.10
+	3) Added a new format bit to iFlags JFormat (Jetstream format)
+
+Version 1.00.500
+================
+EKA2 Tools
+
+1) Dennis
+	1) Added support for the x86 development target to PETRAN
+	2) Added various values to the ROM header for EKA2 in ROMBUILD
+2) William
+	1) Added -capability <mask> option to PETRAN. There isn't yet an iCapability field in the
+	   E32ImageHeader, but everything else is ready to go.
+
+
+================
+ROMBUILD version 2.05
+
+1) William
+	1)	Fixed defect ROS-52XF6E "ROMBUILD produces incorrect S-Record checksums" by getting the length
+		right (actually by checksumming the bytes we write instead of calculating the values twice).
+	2)	Disable the 3-byte address form of S-Record with a #define, since it upsets some external
+		tools and only benefitted serial download to M*Core.
+	3)	Fixed defect ROS-52ZED7 "ROMBUILD crashes if section 1 overflows in 2 section ROMs" by
+		checking for overflows in the right place.
+	4)	Made verification failure use Print(EError, ...) in all cases, so that it will cause a 
+		ROMBUILD failure rather than just a small complaint at the end of the log file.
+	5)	Extend checkstubs.pl to handle the R3UNUSED Thumb stubs, and update stubs.lst
+
+Todo
+handle section 1 DLLs linking to section 2 DLLs so that section 2 can be replaced
+respect the E32Image flags for dll static data and called entrypoints 
+			
+
+2) Chris
+	1)	Updated romimage.rtf to remove screensize keyword
+
+3) Nicolas (work done as part of CR JPAR-54XMZD)
+	1)	Added new keyword: DEBUGPORT.  It takes a numeric argument
+		which is a magic cookie as far as rombuild is concerned and
+		is stored in the ROM header for interpretation by the
+		kernel and bootstrap.  The default value is -1.
+	2)	Updated romimage.rtf to include DEBUGPORT.	
+
+
+================
+ROMBUILD version 2.04
+
+1) Nicolas
+	1)  Fixed bug where EPOC crashes during boot if there is a non-empty
+	    area after an empty one in the relocation table.
+	2)  Modified the way the kernel extensions list is built to
+	    ensure the extensions are always in the same order in the
+	    list as in the obey file even when some extensions are in
+	    areas and other aren't.  This is necessary because the
+	    kernel extension ordering in the obey file is important
+	    (for example an extension registering a power handler
+	    *must* be loaded after the extension that loads the power
+	    model).
+	3)  Fixed bug in AreaSet::AddArea() (overlap was not detected
+	    when an existing area is embedded in the new one).
+	4)  Overlap unit tests updated.
+	5)	Fixed bug in TDllExportInfo ctor: The ptr to the export directory in
+	  	the ROM buffer was wrong when the file was relocated to a non-default
+	  	area (iRunAddress / iImageAddr mismatch).
+
+
+================
+ROMBUILD version 2.03
+
+1) William
+	1)  Set the default srecordbase to zero, and remove the srecordbase validation.
+	2)  Added "data-align" attribute, and used it in the calculation of dataOffset for
+	    things sharing the SvData. It's not a great name, but it will do for now...
+	3)  Added "KeepIAT" attribute, which builds an old-style Import Address Table instead
+	    of pointing the stubs directly at the export data.  NB. this won't work for
+	    section 1 DLLs, because I haven't reinstated the machinery for putting the IAT into
+	    the second section.
+	4)  Fix defect CLE-4ZEJBB "rom building: fatal error when file to hide isn't found" by
+	    dealing with (aKeyword==EKeywordHide) before testing for !existingFile, and issuing
+	    a warning if the existing file wasn't found.
+	5)  Export checkstubs.pl to \epoc32\rom\tools
+
+---------------------
+ROMBUILD version 2.02
+
+1) Nicolas
+
+	1) ROMBUILD: Introduced new area syntax (incompatible with the existing
+       scheme):
+
+		a) The "area <name> <start> <size>" statement declares an area
+		(there is no need to declare the default ROM area).
+
+		b) The "area=<name>" file attribute relocates individual files to
+		the designated area.
+
+		c) When invoking rombuild with -s, a summary of the free and used
+		space in each area is printed.
+
+		d) Areas can be used only in the first section of a sectioned ROM
+		and are forbidden in extension ROMs.
+
+		e) It is forbidden to patch a relocated file.
+
+	2) ROMBUILD: Introduced classes Area and AreaSet and associated
+       iterators to replace all the existing dynamic arrays and indexes
+       used to store the area-related state.  Unit tests for these are
+       built using r_t_areaset.mmp.  Refactored existing code (notably
+       E32Rom::LayoutRom()) to use those new classes.
+
+	3) ROMBUILD: Moved global variables from rombuild.cpp to r_global.cpp
+       to allow build of r_t_areaset.exe.  Made static the globals which
+       were used only in rombuild.cpp.
+
+	4) ROMBUILD: Merged TAddressSet into TAddressRange.  Renamed every
+       "i.*Set" variable to either "i.*Range" or "i.*Section" (previously
+       existing "i.*Section" variables have been suffixed with "Number").
+
+	5) ROMBUILD: Updated version number to 2.02.
+
+	6) HOST: Turned the various overloads of Val() into a template
+       function.
+
+---------------------
+ROMBUILD version 2.01
+
+1) William
+	1)  Fixed bug in ParseArea() which reused the area address as the area length
+	2)  Allow for executables generated before GCC 530 by changing the assertion about 
+	    unexpected data. If it looks as though the rdata is after the IAT, then the whole
+	    of the E32ImageFile text area is included in the ROM.
+	3)  The rounding up for the ROM size to a multiple of a megabyte must not exceed the
+	    originally specified size.
+	4)  Increased the ROMBUILD version to 2.01
+
+Version 1.00.174
+================
+Made by William, 23/03/2001
+
+1) William
+	1)  Removed the old .ipr files associated with the predecessor to DISTRIBUTION.TXT
+	2)  Moved ROMBUILD.MMP into the ROMBUILD directory
+	3)  Gave ROMBUILD it's own major and minor version numbers - now 2.0
+	4)  Moved the collapsing routines into ROMBUILD\R_COLLAPSE.CPP
+	5)  Substantial rework of the way that the E32Image files are put into the ROM: it's now
+	    almost the case that the ROM layout is established before copying any data. The layout
+	    is expressed by setting up TAddressRange and TImageSection values in the TRomBuilderEntry,
+	    and the rest of the relocation and copying to the ROM image follows from those values.
+	6)  Change of approach on relocation: instead of relocating the file contents after copying
+	    into the ROM image, do the relocation beforehand. This allows the relocation to operate on
+	    a simple fixed layout (the one which PETRAN set up), and frees the ROM layout to be
+	    entirely different.
+	7)  Unified all the various ROM flavours: in particular the "areas" support is part of the
+	    normal layout process. The use of TAddressSets and their derived forms makes this
+	    pretty painless.
+	8)  Removed the Import Address Tables, saving ~240K in a Quartz 6.1 ROM. The import stubs
+	    are fixed up to point directly into the export directory for the relevant DLL. In two 
+	    section ROMs the export directories are now placed at the start of the upper section 
+	    to support patching: this was previously done using the import address tables.
+	9)  Various special case handling for the Primary has been reworked using generic support.
+	    In particular the primary now gets a default code alignment of 4K, which allows the 
+	    gap to be occupied by other files if the obey file is suitably arranged.
+	10) Area relocation is more pervasive than before. The import stubs in relocated executable
+	    no longer refer back to the unrelocated original contents of the area.
+	11) The sizes of the DLL reference tables are now reported in the log.
+	12) Fixed a bug which caused ROMBUILD to crash if a file was marked as "patched" in a 
+	    two section ROM.
+	13) Size information in the ROM is more consistent: the size in the ROM filesystem is always
+	    the length of the contiguous section beginning at the given address, and the size summary
+	    in the log file reports the SizeInRom() information for the file, which should always
+	    reflect the real cost in ROM of the file regardless of layout.
+
+Version 1.00.173
+================
+Made by Morgan, 08/03/2001
+
+1) Morgan
+	1)	Fixed ROMBUILD to accept DLLs with no imports and DLLs with no exports
+
+
+Version 1.00.172
+================
+Made by William, 07/12/2000
+
+1) William
+	1)  Introduced ROMBUILD support for extension ROMs, the deliverable from project PR0027.
+	    Lots of churn, but the key new data structure is the TRomNode which separates the
+	    ROM directory structure information from the individual files (TRomBuilderEntry). The
+	    TRomNodes handle the DLL name matching and are used to drive the multiple-variant clever
+	    directory structure operations.
+	2)  Reworked the ROMBUILD parsing strategy to remove the need for "files=", allowing the
+	    header statements and file statements to be mixed freely in the OBY file.
+	3)  Use the tables which now drive the ROMBUILD parsing to generate the help information.
+	4)  Don't create ROMBUILD.LOG unless processing an OBY file, and put extra useful information
+	    into the log. In particular, print a line include the ROM image name before processing
+	    the files and after writing the ROM image, e.g.
+
+	        Creating Rom image testrom.IMG
+		...
+	        Writing Rom image with repro header to file testrom.IMG
+
+	    Also report the "Writing" line to the screen, as a comfort to the user.
+	5)  Fix ROS-4RJPTK "ROMBUILD checksums are incorrect" by computing the checksum at the 
+	    right stage, and cross check to make sure it's still right when displaying the ROM stats.
+	    ROMs built with this version of ROMBUILD are likely to be different in up to 4 bytes
+	    at offsets 0x1A8 to 0x1AB (0xA8 to 0xAB for images without a REPRO header).
+	6)  Make "unicode" the default, and introduce sensible defaults for various other keywords.
+	7)  Remove the ROMBUILD support for bigendian images (it's still present in the files
+	    shared with PETRAN.
+	8)  Added dumpdirs.pl which prints out the ROM root directory structures.
+	9)  Added addextension.pl which concatenates a kernel ROM and an extension ROM, making a 
+	    combined image suitable for use with Brutus.
+	10) Try harder to continue reporting errors rather than stopping immediately. In particular,
+	    report all of the unresolved DLL linkages rather than just the first one.
+	11) Introduce new keywords "hide", "alias" and "rename" to manipulate the directory structure.
+	12) Added romimage.rtf documentation (from the BPK, but somewhat edited) and export it to
+	    \epoc32\engdoc\e32tools
+
+
+Version 1.00.171
+================
+Made by Nicolas, 19/10/2000
+
+1) William
+	1)  Rework internals of ROMBUILD to remove arrays indexed by file number.
+	    TRomBuilderEntry is now derived from E32ImageFile, and the various arrays
+	    have become member data in the associated TRomBuilderEntry - OO, dontcha just love it!
+	2)  Added -coff-header option, which could remove the need for bin2coff
+	3)  Use the .idata information to get the DLL ordinals, not the IAT. 
+	    This is preparation for the IAT removal idea, which involves turning the IAT into
+	    a table of pointers back to the associated stubs.
+	4)  Added a range check to TRomBuilderEntry::AddressOfOrdinal
+	5)  Added documentation about various forms of import stub, and checkstubs.pl which
+	    scans all of the stubs in a ROM to check that they lead to a function of the
+	    correct name.
+	6)  Introduced TAddressSet for recording the various addresses associated with
+	    code in a ROM (address of ROMBUILD.EXE working copy, address in ROM, execution address).
+	    Currently used for handling ImportAddressTable and DllRefTable and seems to work in
+	    a two-section Brutus ROM.
+	7)  Partial fix for EDNRFID-4J6DV3 "Corrupt reloc table generated"
+	    Allow for the possibility that there is only .bss with no .data when applying the
+	    heuristic for relocs that don't point into any known section.
+	    Fix printf format specifier typo by changing %0x8 -> %08x
+	8)  Added a verbose option to W32REPRO
+
+
+Version 1.00.170
+================
+Made by Dennis, 13/09/2000
+
+1) William
+	1)  Dust off the S-Record support in ROMBUILD
+	    Use the full 78-bytes available per line, and add support for the
+	    3-byte address form, since this is beneficial to M*Core Cogent.
+	2)  Use "srecordfilename=*" to mean "append .srec to romname and use that"
+	    Same approach for "romnameodd=*" and "romnameeven=*" filenames.
+	3)  Set the RomHeader iSize to be iSizeUsed rounded up to a megabyte. This is
+	    particularly beneficial on platforms which RAM-load a ROM image (Brutus, Cogent)
+	    because it allows the bootstrap to use only the amount of RAM really needed
+	    for the ROM image.
+	4)  Add "hide" keyword to ROMBUILD, as requested by a licensee. This stops the
+	    specified file from being included in the ROM directory, but doesn't stop other
+	    ROM files from linking to the hidden file. A consequence of hiding a DLL is that
+	    it can't be dynamically loaded, which means that you can't hide kernel extensions.
+
+
+Version 1.00.156
+================
+Made by Morgan, 5/7/2000
+
+1) Anon
+	1) Changes to ETOUCH
+	==== //EPOC/development/base/6.0/e32tools/ETOUCH/ETOUCH.CPP#1
+	@@ -3,6 +3,10 @@
+	 // Copyright (c) 1996-1999 Symbian Ltd.  All rights reserved.
+	 //
+
+	+#if defined(__VC32__)
+	+#pragma warning(disable : 4710)        // function '...' not expanded
+	+#endif
+	+
+
+
+Version 1.00.155
+================
+Made by Dennis 22-06-2000.
+
+1)	Dennis
+	1)	Modified W32REPRO so that the -HEX option only makes it receive in hex.
+		It always transmits in base 10. This is so it works with REPROC.
+	2)	Fixed bug in ROMBUILD - it didn't like files with no imports.
+
+Version 1.00.154
+================
+(Made by Alastair, 10.3.2000)
+
+1)	William
+	1)	Added M*Core support
+		Basically just another PE magic number and another TCpu code.
+
+Version 1.00.153
+================
+(Made by Pete, 24/02/2000)
+
+1)	William
+	1)	Updated PETRAN to report exports with value 0 as
+
+			WARNING: No export specified for ordinal 62
+
+		and promoted the non-zero exports from an unknown section to be errors.
+	2)	Added more information to the warning about failure to identify a section for relocation,
+		just in case it ever happens...
+
+2)	Simon
+	1)	Added bin2coff, a utility to add a coff header to a binary
+	  	image. Mainly for use with the cogent smartfirmware
+
+Version 1.00.152
+================
+(Made by Dennis, 19/01/2000)
+
+1)	William
+	1)	Updated W32REPRO usage statement to remove misleading limit on the baud rate
+		The baud rate is actually passed directly to the Win32 comms device, so it should
+		be possible to specify any baud rate supported by the device.
+	2)	Updated W32REPRO to add a -RAW option for use with Brutus REPROB (and others).
+		This tells W32REPRO not to expect a 256-byte header on the image, but it will
+		still pretend that there is one, as expected by the existing REPRO code.
+	3)	Updated W32REPRO to a -BOOT <boostrap_image> and -HEX options, to support
+		the Cirrus Logic board. The bootstrap is sent at 9600 baud before starting the
+		normal REPRO protocol, and -HEX changes the protocol to use base 16 rather than
+		base 10 for numbers transmitted between W32REPRO and the other end.
+	4)	Added W32REPRO protocol support for a new command 'D' which tells W32REPRO to
+		disconnect after a successful transfer: REPROB could usefully be extended to
+		send this command...
+
+2)	Morgan
+	1)	Fixed ROMBUILD so it gives appropriate errors if passed an empty file
+	2)	ROMBUILD.LOG reports inclusion of 256 ROM repro header (Defect EDN147097)
+	3)	Fixed EDN580686 Rombuild is not very tolerant
+	4)	Fixed EDN210727 PEDIFF returns stupid result codes
+		PEDIFF now returns 0 for identical files, and 2 for different files
+	5)	Improved PETRAN dump output (Fixed EDNGLAY-463LNN)
+
+
+Version 1.00.151
+================
+(Made by Morgan, 3/12/99)
+
+1)	Alastair
+	1)	Created a new utility, ERUNTEST.EXE, which will take a batch file
+		listing tests as generated by ABLD and run each test in turn, checking
+		whether each test has succeeded or not by checking the return value from
+		the process and also checking output to the EPOCWIND.OUT file in the
+		temporary directory.  ERUNTEST.EXE logs output to standard output.
+		Obviously this utility will only run WINS/WINC tests.  It must be invoked
+		from the directory in which the test executables reside.
+
+2)	Morgan
+	1)	Fixed some warnings
+
+
+Version 1.00.150
+================
+(Made by Morgan, 27/9/99)
+
+1)	Alastair
+	1)	Created new directory COLTAB and added COLTAB.CPP, BASEKEYS.TXT,
+		COMPKEYS.TXT and README.TXT.  COLTAB comes from Graham Asher, and is a
+		tool for writing the collation tables in COLLATE.CPP.  README.TXT
+		contains details of the URL from which data files BASEKEYS.TXT and
+		COMPKEYS.TXT were sourced.  Type COLTAB without any parameters for help,
+		and/or read the header in COLTAB.CPP.  Console APP COLTAB.EXE will be
+		built into \EPOC32\Tools\.
+
+2)	Malcolm
+	1)	Added code to allow the kernel debug mask to be set via the ROM.OBY
+		file via the new KERNELTRACE keyword.
+
+3)	Morgan
+	1)	ROMBUILD internal directory structure is now sorted wrt a unique
+		identifier for each Dir.  This (hopefully) fixes the reproducability
+		problems ("drifting-directories") experienced when building identical
+		Roms in different NT environments.
+
+
+Version 1.00.125
+================
+(Made by Morgan, 26/8/99)
+
+1)	Dennis
+	1)	Added "defaultstackreserve" keyword. The argument to this keyword is
+		added to the combined size of .data and .bss to determine the address
+		space to reserve for the $DAT chunk of a 'fixed' process. The value
+		defaults to zero for compatibility with previous versions.
+		Added "stackreserve" keyword to override the default setting on a
+		per-file basis.
+
+
+Version 1.00.124
+================
+(Made by Alastair, 2nd August 1999)
+
+1)	Jonathan
+	1)	Removed MAKSYM - moved to e32toolp.
+
+
+Version 1.00.123
+================
+(Made by Kal Patel, 22 July 1999)
+
+1) Morgan
+	1)	New ROMMASK.  Added a -verbose flag for logging, and added a -no-header
+		for Roms with no Epoc header.
+
+2) Malcolm
+   
+    1) Added Area support to ROMBUILD for Roxette.  This allows the
+       code to be fixed up to execute outside the rom where it's stored.
+       Relocation info is written into the rom and the bootstrap uses
+       this to copy the info out to its final location.  Any file can 
+       be in any arbitrary area.  This is only enabled in
+       singleprocess mode, since the same effect can be achieved with
+       an MMU on a real system.
+
+	   This is enabled by placing a "areas=<num>" line in the first
+	   section of the .oby file.  Then, in the files= section, the
+	   next tranche of files can be sent to another area with a
+	   directive like "area 0x81000000 0x100000" where the first value 
+	   is the address and the next the length. Up to <num> area lines
+	   can be in the file section.
+
+	   A relocation table is placed in ROM for the bootstrap.  Its
+	   address is stored in the romheader info that rombuild uses.
+	   The table is a list of <length> <src> <dest> triples, ending
+	   with a <0,0,0> tuple.
+
+	   Note that any bootstrap that uses this should not process a
+	   relocation table address of 0, as this maintains backwards
+	   compatability with old rombuilds which will put zero in the
+	   address location.
+
+3)	Alastair
+	1)	Removed all .DSP and .MAK files, now that makefiles are generated.
+	2)	Fixed minor typo in W32Repro.
+
+
+Version 1.00.122
+================
+(Made by Alastair, 12.7.99)
+
+1) Alastair
+	1)	Added fetcher definition file, E32TOOLS.FTC, to the group directory.
+	2)	Added William's new version of E32UID.CPP which no longer requires
+		WINDOWS.H.
+	3)	Added William's new UIDCRC.EXE, which provides a simple way to calculate
+		the checksum:
+
+			uidcrc <uid1> <uid2> <uid3> [<outputfile>]
+
+		This reads the three uids (using strtoul, so decimal and 0x9999 hex are 
+		found), computes the checksum, and either prints the 4 hex values to standard
+		output or creates <outputfile> as the 32 byte sequence which is the specified
+		UIDs and checksum in little-endian byte order.
+
+
+Version 1.00.121
+================
+(Made by Alastair, 16.6.99)
+
+1)	Alastair
+	1)	Fixed EDN459831 "Wveconv help is out of date" .
+	2)	Removed MAKTRAN, DEFMAKE and DEFTOOL.
+	3)	Converted all projects to MAKMAKE building for the new TOOLS platform.
+	4)	Changed zip of releasables onto the network - this is now called
+		TOOLS.<ver> rather than E32TOOLS.<ver>.  It also contains full paths to
+		the releasables so make sure you're in the root of your EPOC drive
+		before calling, say, "getrel e32tools tools 121".
+	5)	Updated MNT.CMD in various ways, including adding an MNT CHECKREL.
+	6)	Added dopcvs.pl and lock.pl to GROUP directory for use with MNT.BAT.
+
+
+Version 1.00.120
+================
+(Made by Morgan, 30th March 1999)
+
+1)	Morgan
+	1)	Fixed EDNGBON-46BQK4, "ROMBUILD "patched" keyword is broken".
+		(merged in from ER5 release E32TOOLS 110)
+	2)	Left a gap in the build numbers for ER5 maintenance releases
+	3)	Introduced a new version of ROMMASK.EXE.  The syntax has changed
+		from previous versions.  Type "ROMMASK" to see the new syntax.
+		For example, to produce a 10Meg image split into 8 and 2,
+		type the following:     
+rommask -rom p2rom.img -output rom.img -log rom.log -size 10 -section 8 -section 2
+		(You can leave off the final -section 2, and ROMMASK will do the
+		calculations for you.)
+		The output of Rommask will be "rom.log", and the 2 mask files
+		"rom.img" and "rom.im2"
+		ROMMASK still expects the image to contain a Psion 256byte header.
+
+
+Version 1.00.100
+================
+(Made by Morgan, 16th February 1999
+
+1)	Morgan
+	1)	Added the keyword 'srecordbase' to change the base address of
+		the motorola srecord output file.  (Defaults to address 0x0000)
+	2)	Fixed srecord output for big and little endians.
+	3)	Removed unused dependencies from MNT GETCOMPS
+
+
+Version 1.00.099
+================
+(Made by Jonathan, 8th February 1999)
+
+1)	Alastair
+	1)	Edited PETRAN.MAK so that sources depend upon
+	  	\Epoc32\Include\E32uid.h rather than ..\E32uid\E32uid.h. This
+		change should complete the fixing of bug EDN057832 "E32Tools won't
+		rebuild on my PC".
+
+2)	Jonathan
+	1)	Fixed ROMBUILD defect EDN853437 "Dual Boot ROM does not function on
+	  	Series 5" by applying Dennis' fix to fix up data as well as
+	  	executables in dual-boot images.
+
+
+Version 1.00.098
+================
+(Made by Jonathan, 1st February 1999)
+
+1)	Petteri
+	1)	Applied boilerplate copyright to sources.
+
+2)	Jonathan
+	1)	Fixed copyright message in executables.
+	2)	Removed odbc32.lib and odbccp32.lib from all .DSP and .MAK files
+	  	since these libraries are neither required nor always installed.
+
+
+Version 1.00.97
+===============
+(Made by Alastair, 28th January 1999)
+
+1)	Alastair
+	GENERAL
+	1)	Created and added VC5 .DSP files for all projects for debugging.
+	2)	Removed hard-coded drive letters from .DSP files.
+	3)	Re-generated makefiles from .DSP files.
+	4)	Reinstated E32UID directory containing files E32UID.CPP and STDAFX.H
+		required for building ROMBUILD, PEDIFF and PETRAN.
+	5)	Replaced hard-coded instances of 'R:' in MNT.CMD with '%s%'.
+	MAKSYM
+	1)	Added proper handling of two functions appearing at the same address in
+		a ROM.
+	2)	Removed an unnecessary destructor to prevent allocated memory being
+		deleted twice.
+	TMAKTRAN
+	1)	Removed MAKTRAN tests.
+	PEIGER, PREPRO
+	1)	Removed these executables.  Previously MNT.CMD attempted to unzip these
+		from S:\ptool\ and then zip them up again in the e32tools release zip
+		file.  Plans are afoot to provide these tools elsewhere, since we no
+		longer have access to S:.
+
+
+Version 1.00.096
+================
+(Made by Morgan, 21st January 1999)
+
+1)	Morgan
+	GENERAL
+	1)	Removed E32UID
+	2)	Converted all makefiles to VC5
+	3)	Built with VC5
+	ROMBUILD
+	4)	Rectified the drifting directory problem.  ROM images can now
+		be reproduced and validated reliably.
+	READTYPE
+	5)	Removed definitions for "true" and "false" so readtype will
+		compile with VC5.
+
+
+Version 0.01.095
+================
+(Made by Alastair, 18th August 1998)
+
+Morgan
+ROMBUILD
+1) Big-endian bug fix
+
+Alastair
+DEFMAKE
+1) Fixed Epoc S/W Problem SW1-141 - 'DEFMAKE adds an "E" to the end of
+   the generated DEF file'
+ROMBUILD
+1) Fixed Bluebell defect SW1-734 - "What do the tools have against August?".
+   A rom time of 08/08/2008 08:08:08 is now acceptable.
+
+
+Version 0.01.094
+================
+(Made by Jonathan, 10th June 1998)
+
+1)	Morgan
+	ROMBUILD
+	1)	Added extra info to log output.
+
+2)	Graham Asher
+	READTYPE
+	1)	New uniflds.txt and unidata2.txt from release 2.1 of the charater
+		database from Unicode Inc. Many additions and corrections have been
+		made. One of them fixes defect SW1-42 (User::UpperCase is wrong for
+		Greek final sigma (03C2) in the Unicode build) in the EPOC32
+		Software Problems database.
+	2)	Changes to readtype.cpp to accommodate the new character categories
+		in unidata2.txt.
+
+Version 0.01.093
+================
+(Made by Morgan, 15th May 1998)
+
+1) Dennis
+    ROMBUILD
+1)	Added support to ROMBUILD for multiple-boot ROMs:
+ a)	Added keywords 'singlekernel' and 'multikernel' to declare whether a
+	single kernel ROM or multiple-kernel ROM is required (defaults to single).
+ b)	Added keyword 'variant' to declare which files define hardware variants;
+	this keyword should be applied to the variant DLL (ECUST.DLL) of each
+	hardware variant to be supported.
+ c)	Added keywords 'extension' and 'device'. These define kernel-mode DLLs
+	which may have global data, the address of which is generated by ROMBUILD.
+	'device' DLLs are simply LDDs or PDDs with global data.
+	'extension' DLLs are not yet supported by E32.
+ d)	Files declared with one of the keywords
+		{primary, file, data, dll, variant, extension, device}
+	may have an additional hardware variant discriminator specified by means
+	of the syntax
+		file[0x05040001]=filename
+	The hardware variant discriminator (HWVD) is an 8-digit hex number whose
+	purpose is to specify which hardware variants the file is relevant to.
+	The top 16 bits indicate which conceptual layer the file belongs to:
+		0100=independent - file is required by all hardware variants
+		xx03=CPU-specific - file is required by all variants with same CPU
+		yyxx=ASIC/variant specific - file is required by all variants with
+			 CPU xx and ASIC yy.
+
+	The bottom 16 bits are only relevant in the last of these three cases.
+	They form a bit mask indicating which specific variants the file is
+	required for. A file declared with the variant keyword must be totally
+	variant-specific, i.e. must have only one bit set in the bit mask.
+	If the HWVD is not specified, a value of 01000000 is assumed, which means
+	that the file appears in all hardware variants.
+
+	Examples (from forthcoming Bluebell/Protea upgrade ROM):
+
+	primary[0504ffff] - kernel for EIGER
+	primary[0706ffff] - kernel for WINDERMERE (different CPU core and ASIC)
+	variant[05040001] - variant DLL for PROTEA
+	variant[07060001] - variant DLL for BLUEBELL v.1
+	variant[07060002] - variant DLL for BLUEBELL v.2 (for illustration)
+
+	Static linkage between files is now restricted by the HWVDs of those
+	files. It is possible for file A to link statically to file B iff
+	{variants V | V requires A} is a subset of {variants V | V requires B}.
+	For the example above, variant[0x05040001] can link to primary[0x0504ffff]
+	but not the other way round.
+
+	It is possible to have two or more files of the same name in the same
+	directory provided that they have HWVDs which are mutually exclusive, so
+	that the two files can never appear on the same machine. The HWVD is used
+	to determine which of the files to use to resolve any static linkage.
+
+ e)	The ROM file system now has multiple root directories and directory trees,
+	one for each hardware variant supported by the ROM. This automatically
+	ensures that F32 only sees the files which are relevant to the hardware
+	on which it is running.
+
+ f) DLLs declared with one of the keywords {variant, device, extension} can
+	have global data (.data and .bss) which will be allocated in the kernel
+	static data chunk after the kernel data itself.
+
+2)	The 'fixed' flag is now propagated through from PETRAN.
+
+3)	The 'kernstackaddress' keyword is now optional - if it is not present in
+	the obey file, ROMBUILD uses a default value of 
+	kerneldataaddress + Round(kernel-mode dataBss size) +
+		Sum over all fixed .EXEs(Round(DataBss size of .EXE file))
+	where Round(x) rounds up to the PDE size (1Mb on ARM).
+
+
+Version 0.01.092
+================
+(Made by Morgan, 25th February 1998)
+
+ROMBUILD
+1) Fixed the 'code-align' file attribute
+2) Forced the image file size to a multiple of 4k for the good of Rome.
+
+
+Version 0.01.091
+================
+(Made by Alastair, 18th February 1998)
+
+Removed MAKMAKE and BLDMAKE - these tools are now part of
+new project E32TOOLP.
+
+
+Version 0.01.090
+================
+(Made by Morgan, 13th February 1998)
+
+ROMBUILD
+1)	Added support for 'fix'ing LDDs with global static data in Rom.
+2)	The 'file=' specifier now honours the KNoCallEntryPoints flag in
+	the image header (as set by PETRAN).  This means all 'dll='
+	specifiers should be changed to 'file=' and MAKMAKE used to
+	control the entrypoint behaviour with the CALLDLLENTRYPOINTS
+	keyword.
+3)	Added a '-no-header' switch to suppress the Rom loader header.
+
+
+Version 0.01.089
+================
+(Made by Alastair, 9th February 1998)
+
+DEFMAKE
+1)  Changed defmake.exe so that it processes freeze files without
+    carraige returns at the end of the last line correctly. 
+    Fixes SW1-803.
+2)  Put in warning for unfrozen exports.
+
+MAKMAKE
+1)  Changed the warning generated if parameters appear with the
+    NOSTRICTDEF keyword so that it doesn't just appear when MAKMAKE
+    is invoked with the -V flag.  The NOSTRICTDEF keyword,
+    if required, should be used in addition to the DEFFILE keyword,
+    not instead of it.
+2)  Intermediate deffiles created by command-line makefiles no
+    longer have the basename extensions, eg D for narrow debug,
+	if the NOSTRICTDEF keyword is specified.	
+2)  Added warning for any SUBPROJECT keyword appearing before a
+    project has been specified with the PROJECT keyword.  This
+    is now necessary because MAKMAKE now stores SUBPROJECT directories
+    as absolute paths rather than paths relative to the PROJECT directory.
+    If a SUBPROJECT statement specifies a directory beginning with a
+    backslash, it will be treated as an absolute directory; otherwise
+    it will be treated as a directory relative to the PROJECT directory,
+    as before.
+3)  Added warnings for the non-existence of SYSTEMINCLUDE, USERINCLUDE,
+    \PROJECT, SUBPROJECT and \PROJECT\SUBPROJECT directories.
+4)  Put in START WINS .. END block option, NOBROWSEINFO, which can
+    be used to stop generation of .SBR and .BSC files for command-line
+    WINS and WINC builds.
+5)  Changed MAKMAKE.BAT so that the help for the batch command "CALL"
+    is no longer produced if MAKMAKE /? is typed.
+6)  Moved all makmake releasables out of \epoc32\tools\makmake into
+    \epoc32\tools.
+7)  Changed MAKMAKE.BAT over to using the -S PERL switch so that the
+    system path is searched for MAKMAKE.PL, then MAKMAKE.PL searches
+    for the modules it depends upon in whichever \epoc32\tools is
+    specified in the system path.  This means that makmake can be
+    installed on one drive and called to operate on .MMP files from
+    another.
+8)  The second UID for targettypes APP, LDD and PDD will now be added
+    if not present.
+9)  Restructured MAKMAKE and moved some functionality into new modules
+    to facilitate code reuse.  MAKMAKE and BLDMAKE now depend upon the
+    following shared modules
+    PARSECOM.PM, E32ENV.PM, E32TVER.PM, MODLOAD.PM, PATHUTL.PM, PREPFILE.PM.
+    MMP.PM and GENUTL.PM are currently only used by MAKMAKE but may be
+    useful for other purposes in the future.
+10)  Renamed MAKPREP.PM MAKDEPS.PM.
+
+
+BLDMAKE
+1)  Added warning that BLDMAKE ALL won't create batchfiles for preparing
+    IDE makefiles.
+  
+
+Version 0.01.088
+================
+(Made by Morgan, 29th January 1998)
+
+MAKMAKE
+1)	Inserted '-bigendian' on the PETRAN command line for BE builds
+
+PETRAN and ROMBUILD
+1)	Added -bigendian switches to both tools
+
+From Simon Lewis
+1)	Added a new file attribute 'code-align' to ROMBUILD
+2)	Added the switches '-align-const-section' and
+	'const-section-address-mask' to PETRAN
+
+
+Version 0.01.087
+================
+(Made by Alastair, 23th January 1998)
+
+MAKMAKE
+1)  Changed paths within created makefiles so that they are relative
+    to the directory where MAKMAKE was invoked rather than relative
+    to the makefile.  If you are using the /D makmake command-line
+    flag and invoking makmake from directory \[project]\group there
+    is therefore no longer a need to change directory to
+    \Epoc32\Make\[platform] before calling NMAKE.
+
+2)  Deffiles created by the build process in the build directories
+    now have the build-variant dependent U, D, and UD suffixes, and
+    are removed by a makmake -clean.
+
+3)  Changed handling of EXEDLL targettypes so that they can export
+    functions under MARM.  MAKMAKE will expect EXEDLL targettypes to
+    be function exporters for MARM if a deffile is specified in the
+    MMP file, otherwise it will make no use of the intermediate deffile
+    created during the build process.  This means that, until a fix for
+    dlltool becomes available from Cygnus, the first time functions are
+    frozen for EXEDLL targettypes for MARM it is necessary to build once,
+    put a deffile statement for MARM in the MMP file, put the intermediate
+    deffile where the MMP deffile statement expects the freeze file to be,
+    and build once again so that the target is frozen by ordinal.
+
+4)  Changed MAKMAKE warnings so they go to STDERR rather than STDOUT.
+
+5)  Added LONGBLDPATH keyword to MAKMAKE which inserts an extra directory
+    into the build path for a project.  The extra directory may be
+    specified as a parameter to the new keyword but will default
+    to the basename of the MMP file if the keyword is specified
+    without a parameter.
+
+6)  Added new TARGETTYPE, LIB, for creating static libraries.  This
+    is not yet implemented for MSVC5.0.  The object file compiled
+    from the first source file specified in the mmpfile is copied
+    into the target directory and given the same basename as the
+    target.  The behaviour for this keyword is not yet finalised.
+
+7)  Added new TARGETTYPE, IMPLIB, for creating import libraries
+    for DLLs with mutual imports.  Specify a new MMP file for
+    one of the DLLs, give the name of the DLL as the argument
+    for the TARGET keyword (so that the .LIB produced contains
+    the right DLL name) and set the TARGETTYPE as IMPLIB.
+    This is not yet implemented for IDE makefiles and the behaviour
+    for this keyword is not yet finalised.
+
+8)  Added handling of Win32 Resource files to command-line WINS
+    and VC4 and VC5 makefiles because the kernel uses one.
+
+9)  Added new MARM MMP file keywords to cater for unusual scenarios
+    START MARM
+    ALLOWDLLDATA // for dlls requiring static data
+	DATALINKADDRESS [address] // for relocation address for dll data
+    DLLNAME [dll basename for linking] // for dlls which are built
+    // as one thing but linked in the ROM as another
+	STACKSIZE // for stack size other than the default
+    END
+
+10) Added new module SARMBE.PM for creating big-endian single-process
+    arm makefiles
+
+11) Implemented more stringent checking of the format of UIDs in mmp files
+    and made sure dlls with null uids link as mydll.dll rather than
+    mydll[00000000].dll for consistency with rombuild.
+
+12) Made all relative paths in VC4 and VC5 makefiles absolute.
+
+BLDMAKE
+1)  Added new perl tool, bldmake, which creates batch files to
+    control the building of E32 and F32.  Type bldmake without
+    any parameters for options.
+
+
+Version 0.01.086
+================
+(Made by Alastair, 5th January 1998)
+
+DEFMAKE
+1)  Added .E32_UID and .rsrc to the list of recognised sections so that,
+    eg, "WARNING: Section '.E32_UID' removed" no longer appears during
+    WINS builds.
+
+MAKMAKE
+1)  Changed cl_arm.pm and cl_win.pm so that makmake -clean will remove
+    resource headers from \Epoc32\Include if a resource file is specified.
+
+Version 0.01.085
+================
+(Made by Alastair, 9th December 1997)
+
+MAKMAKE
+1)  Removed automatic addition of kernel32.lib and libc.lib to list
+    of Win32 libraries for WINC EXE targettypes as this addition is
+    apparently unnecessary.
+
+
+Version 0.01.084
+================
+(Made by Alastair, 9th December 1997)
+
+MAKMAKE
+1)  Changed handling of targettype EXE for WINC, VC4WINC and VC5WINC
+    platforms so that the LINK.EXE flag /subsystem:console is used
+    rather that /subsystem:windows, and kernel32.lib and libc.lib
+    are automatically added to the list of Win32 libraries to be linked
+    to.
+
+2)  Targettypes LDD and PDD makefiles for MSVC IDEs now require the
+    presence of \epoc32\include\lddwins.def and \epoc32\include\pddwins.def
+    respectively.
+
+
+Version 0.01.083
+================
+(Made by Alastair, 20th November 1997)
+
+Some Makmake Bug Fixes
+1)  Makmake invoked with the /CLEAN flag will now erase the autouid
+    object file if the Win32 autouid keyword is used.
+
+2)  Makmake now uses the environmental variable "INCLUDE" rather
+    than "MsDevDir" to decide which standard include directories
+    should be searched for Win32 header files if a project is
+    linking to Win32 libraries, so that the wrong standard
+    include directories aren't searched when creating MSVC5
+    project files.
+    Fixes SW1-698.
+
+3)  Fixed bug caused by CPP inserting a space after expanding
+    macros in .mmp files by taking the space out again.  This was
+    causing problems where, for example, a path specified as
+    "\EPOC32\RELEASE\WINS\APP.DEF" in the .mmp file would become
+    "\EPOC32\RELEASE\WINS \APP.DEF" after preprocessing prior
+    to creating a WINS makefile.  Lower case paths were not
+    affected.
+
+4)  Replaced link.exe flag
+    /EXPORT:?NewApplication@@YAPAVCApaApplication@@XZ,@1,NONAME
+    in VC4 and VC5 makefiles where the targettype is APP with the
+    flag /def:\EPOC32\RELEASE\WINS\APP.DEF, because the former flag
+    failed to ensure that the function in question was exported
+    at ordinal one.  This solution means that if no deffile is
+    specified in the .mmp file for an APP, \EPOC32\RELEASE\WINS\APP.DEF
+    must be present for the project to link.  Command-line Win32
+    makefiles will link properly without the presence of APP.DEF
+    because they use a defmake flag to ensure the function is
+    exported at the right ordinal.
+    Targettypes LDD and PDD will link by name in MSVC until
+    their deffiles are released to
+    \epoc32\release\wins or somewhere else suitable. 
+
+Version 0.01.082
+================
+(Made by Alastair, 12th November 1997)
+
+MAKMAKE
+1)  Added link-libraries and e(dll|exe) object as dependencies of
+    main target.  This cannot be done for MSVC IDE makefiles.
+    Fixes SW1-565.
+
+2)  Added new targettypes LDD and PDD.  A frozen first ordinal export,
+    the respective gate funtion for the targettype, is specified for
+    these targettypes and for targettype APP if no deffile is specified
+    for the project, otherwise the deffile controls the order of
+    exported functions.  This applies for all supported platforms.  Apart
+    from this feature, projects specifying one of these targettypes build
+    in the same way as projects with targettype DLL.
+    Fixes SW1-666.
+
+3)  Changed MAKMAKE help information so that the build version appears and
+    a list of platform choices appears.  This list of platforms is produced
+    by a search of .PM modules in \EPOC32\TOOLS\MAKMAKE for the comment line
+    "# Can call in makmake command line".  If the line is present in the module
+    then the basename of the module is added to the list.  This is a cheap way
+    of producing a list of available platforms while preserving MAKMAKE's
+    extensibility, and doesn't involve the loading of every .PM module and all
+    the modules that each one of those depends on.
+        The module controlling MAKMAKE help is loaded only when required and
+    provides a brief guide to MMP file syntax if makmake is invoked
+	    MAKMAKE /MMP {PLATFORM}
+    If PLATFORM is specified, syntax for the START .. END block relating to
+    the platform is displayed as well as platform-independent MMP syntax.
+    Fixes SW1-653.
+
+4)  The macros "WIN32" and "_WINDOWS" are now only used in compilation by MAKMAKE-
+    generated Win32 makefiles if the project's MMP file states that the project
+    needs to link to Win32 libraries by listing the libraries it needs with the
+    WIN32_LIBRARY keyword in a Win32 START .. END block. 
+    Fixes SW1-652.
+
+5)  New MMP file keyword - OBJECT - is available.  This keyword is intended to
+    be used by projects having access not to the source files but only the compiled
+    code for certain objects.  Specify the basename of the object only.  Created Win32
+    makefiles will expect object <basename>.OBJ to exist in the build directories
+    for a project, while MARM makefiles will look for <basename>.o.  These object
+    files will appear in the dependency list for the main target in command-line
+    makefiles - this is not possible in MSVC IDE makefiles.
+
+6)  Command-line makefiles now contain extra targets MAKEWORK, MAKEWORKDEB,
+    MAKEWORKREL, etc.  The build-specific targets are included in the list of
+    dependencies for the main makefile build-specific target, so that work
+    directories will be automatically created when building with command-line
+    makefiles if these directories do not already exist.  The new targets could
+    also be used to make the work directories for a project with NMAKE
+        e.g.  NMAKE /f <command line makefile> MAKEWORK
+    would create all the makefiles for a project for all builds.
+
+7)  Win32 command line makefiles now generate SBR and BSC browse files for DEBUG
+    builds so that if a DEBUG build of a project has already been done with a Win32
+    command line makefile, subsequent building of the DEBUG build of the project
+    within the MSVC IDE will not recompile everything to generate the browse files.
+
+8)  Added new module MAKPREP.PM to handle everything relating to MAKMAKE's use of
+    \EPOC32\GCC\BIN\CPP.EXE to generate lists of dependencies for source files.
+    This module now identifies missing system and user headers -
+          - if missing system headers have the extension .RSG or .MBG, the header is
+        listed as existing in \EPOC32\INCLUDE, so there is no longer a need for
+        MAKMAKE to generate a dummy resource header in \EPOC32\INCLUDE to fool CPP.
+          - platform modules can specify standard directories to search for missing
+       system headers.  This means, e.g., Win32 makefiles can specify the MSDEV include
+       directory for those projects linking to Win32 libraries.  If the missing system
+       header is found by the module in the standard directory, it will be left out
+       of the dependency list since the MSVC tools will know where to find it and it
+       can be trusted to be there and unchanged.
+          - if a missing system header fails to satisfy both the above tests then
+       makmake will issue a warning since the generated makefile will probably fail to
+       build.
+ 	      - a warning is issued for any user headers not found in the user include or
+       system include paths, where the user include path is the source directory if no
+       user include paths are specified explicitly.
+
+9)  Processing of MMP files now involves a lot more syntax checking and produces
+    corresponding warnings, especially if MAKMAKE is invoked with the -V switch.
+
+10) MAKMAKE will now automatically generate WINS uid source files when creating Win32
+    makefiles, but only if the new keyword - AUTOUID - is specified in a Win32 START ..
+    END MMP file block.  The keyword is necessary since LINK.EXE would fail for projects
+    which already specified UIDS in the source code, so remove WINS UID specification in
+    the project's source code before using AUTOUID.  MAKMAKE works out UID 1 from a
+    project's targettype and takes UIDs 2 and 3, if specified, from the MMP file.  It
+    then creates the UID source file in the same directory as the MAKEFILE it is to create
+    with the name "<target basename>.UID.cpp".  The source file will look something like this
+
+        // Makmake-generated uid source file
+        #include <E32STD.H>
+        #pragma data_seg("E32_UID")
+        __WINS_UID(0x10000079,0x1000008D,0x100002C3)
+        #pragma data_seg()
+
+	The file will be created only if it doesn't already exist or if it is older than the
+    project's MMP file.
+
+11) In MARM makefiles, multiple calls to GNU tool "ar" to archive the object files for
+    a project prior to linking have been replaced by a single call to ar.  The single
+    call passes a script listing the object files to ar.  This changes speeds up the
+    archiving stage of MARM building considerably.
+
+12) Renamed MAKMAKE.CMD MAKMAKE.BAT for Windows 95 compatibility.
+
+13) Changed MSVC5 dependency generation to be the same as for other platforms,
+    but with system headers stripped out of the list later.  Before, vc5 dependencies
+    called CPP such that only user headers were generated.  This change means that
+    CPP will no longer fail if one of the user headers is expecting a macro definition
+    from a system header and forcing CPP to fail if it doesn't get it.
+
+14) Replaced relative with absolute filepaths where possible in CL_WIN.PM.
+
+15) Changed \e32tools\makmake\makmake.mak so that debug utilities like
+	the perl -w switch and use of module strict.pm apply for "DEB" builds.
+    of MAKMAKE only.
+
+16) Added SARM.PM module to be used by the base for building SARM makefiles.
+
+17) Improved path utilities module MAKPATH.PM to do more error checking
+    and handle extra functions.
+
+GROUP
+1)  Changed e32tools\group\mnt.cmd so that makmake is released in a way more similar
+    to other e32tools project - from \epoc32\build\e32tools\makmake\rel.
+
+
+Version 0.01.081
+================
+(Made by Morgan, 4th November 1997)
+
+ROMBUILD
+1)	Added fixed keyword for use with EXE files. This keyword results in the
+	file being loaded as a fixed address process. The data section base address
+	is allocated in the region between the kernel data address and the kernel
+	stack address. The multiprocess keyword can be used to specify the chunk
+	size; it defaults to 1Mb.
+
+PETRAN
+1)	Added -fixed and -moving options which set and clear KImageFixedAddressExe
+	flag respectively.
+
+2)	Added the following switches
+		-heap <min> <max>
+		-allowdlldata
+		-datalinkaddress <base>
+
+MAKSYM
+1)	Removed duplicate function address error message.
+
+
+Version 0.01.080
+================
+(Made by Alastair, 30th September 1997)
+
+MAKMAKE
+1)	Changed Makmake.pl so that if a project uses a resource file
+	and the resource header file is not yet present in \epoc32\include
+	a dummy header file will be created there so that MAKMAKE's generation
+	of dependencies does not assume that the missing header file is
+	in some other location.
+
+2)	Changed /Fd compiler flag in Ide_vc4.pm so that pdb files have the right
+	name rather than vc40.pdb. 
+
+
+Version 0.01.079
+================
+(Made by Morgan, 22nd September 1997)
+
+ROMBUILD
+1)	Integrated the code for building ROMs for the single process
+	version of E32.  Currently this code is protected with a
+	__SINGLE__ macro.
+	Use the keyword 'singleprocess <ChunkSize>' to generate a
+	single process ROM.  Default is 'multiprocess'.
+
+
+Version 0.01.078
+================
+(Made by Alastair, 15th September 1997)
+
+MAKMAKE
+
+0)	Forget to say about release 077 that \[project]\bwinc is the default
+	directory for which WINC def files are searched if the file specified
+	with the DEFFILE keyword has no path.
+
+1)	Improved MMP file reading so that a warning is generated if MAKMAKE
+	ignores a line because it doesn't recognise the syntax.
+
+2)	Makmake.pl - added new code to trap dependency generation errors.
+
+3)	Makmake.pl - minor changes required to support creation of MSVC5 project
+	files.
+
+4)	Added new modules VC5.PM and VC5WINC.PM to support MSVC5.  These modules
+	will create .DSP MSVC5 project control files.  When an MSVC5 .DSP file is
+	created with makmake project files with the following extensions will be
+	deleted - .dsw,.mak,.mdb,.ncb,.opt,.plg.  The new features of MSVC5 which
+	distinguish between header files belonging to the project and system header
+	files are supported.
+
+5)	Added new module MISA.PM to support MISA command-line makefiles.
+
+6)	Tidied up VC4.PM.
+
+7)	Changed MAKMAKE internal structure so that implementaion modules can
+	share modules controlling the layout of the makefile and other common
+	features.  This change does not affect the way that MAKMAKE is invoked.
+
+		VC5.PM and VC5WINC.PM share IDE_VC5.PM
+		VC4.PM and VC4WINC.PM share IDE_VC4.PM
+		WINS.PM and WINC.PM share CL_WIN.PM
+		MARM.PM and MISA.PM share CL_ARM.PM
+
+8)	Changed CL_WIN.PM and CL_MARM.PM to use an inline batch file in the
+	makefile for calling fc4bat to decide whether a resource header file
+	needs rewriting or not.  Previously, if fc4bat returned an error to
+	indicate that the header file should be rewritten, nmake would die.
+
+9)	Added Makmake.mak to \e32tools\makmake\ for building makmake source to
+	\epoc32\tools and \epoc32\tools\makmake in a way similar to C++ projects.
+
+10)	Changed all .PM modules to ensure that they return a true value
+	when loaded successfully.
+
+E32TOOLS MNT
+
+1)	Changed e32tools.rel file so that readtype.exe is released.
+
+2)	Updated MNT MAKEWORK and MNT GETBLD so that PGETBLD and MNT BLDALL will
+	now work on a clean drive.  Changed readtype.mak so that it searches
+	\epoc32\include rather than \e32\inc for system header files.
+	File \e32\inc\unicode.h needs to be listed in e32\inc\incc.prj 
+	at some point.
+
+3)  Modernised MNT BLDALL so that NMAKE is invoked with the /nologo flag.
+
+4)	Modernised MNT VALID so that pediff is used instead of fc /b for binary
+	file comparison.  Makmake is now included and e32uid.exe removed since it's
+	not used or released.
+
+
+Version 0.01.077
+================
+(Made by Alastair, 8th September 1997)
+
+MAKMAKE
+
+1)	Changed 1st stage of linking (by name) for WINS command-line builds so that
+	linking is not attemped incrementally to stop unnecessary warning appearing.
+
+2)	Added two new modules, WINC.PM and VC4WINC.PM, for use in creating WINC
+	command-line and IDE makefiles respectively.  For command-line makefiles,
+	type "makmake {options} [project] WINC;  for IDE makefiles, type
+	"makmake {options} [project] VC4WINC.  DIfferences between WINC and WINS
+	makefiles are slight - WINC appears where WINS would otherwise appear, and
+	WINC source files are preprocessed with the macros "__WINC__" and "__XCON__"
+	defined as well as all the usual WINS macros including "__WINS__".  Note that,
+	in line with the macro scheme applied to source files, MAKMAKE will preprocess
+	XXX.MMP files with macros "WINS" AND "WINC" defined when creating WINC makefiles,
+	so keywords within "#if defined(WINS) ... #endif" and "START WINS ... END" blocks
+	will apply for WINC builds too.  This scheme required changes to the way
+	MAKMAKE.PL processes START ... END blocks.
+
+3)	Removed possibility of passing extra macros to makmake for preprocessing XXX.MMP
+	files - this possibility was never documented and has never been requested so
+	is now presumed unnecessary.
+
+4)	Introduced keyword option which, if specified in XXX.MMP files, will cause
+	MAKMAKE to search for the same deffile for all build variants rather than
+	several files differentiated by suffixes "U","D" and "UD".	The new keyword
+	is "NOSTRICTDEF", originally enough.  Hopefully deffiles for LDDs and PDDs
+	can soon be done away with by having targettypes for LDDs and PDDs and having
+	MAKMAKE implementation modules pass the correct mangled names as 1st ordinal
+	command-line option arguments to DEFTOOL and DEFMAKE instead.
+
+5)	Changed resource handling to be entirely compatible with eikrs.bat - the basename
+	of XXX.RSS is used for XXX.R$(EPOCLANG) and all intermediate resource files.  This
+	change still does not fix SW1-204, for which a spec decision regarding the handling
+	of differing licensee resource file requirements is required.
+	
+
+Version 0.01.076
+================
+(Made by Alastair, 15th August 1997)
+
+MAKMAKE
+
+1)  Changed MARM and WINS modules so that rcomp is called to compile resources
+    directly rather than via eikrs.bat.  This change will mean that resources will
+    be compiled into the correct directory for MARM builds, and that the *.rss file
+	need no longer be in the same directory as the makefile.  This change addresses
+	SW1-204 and SW1-212.
+2)  The STRICTDEF keyword is no longer recognised by makmake.  Its function in
+	appending "D", "U", and "UD" to the base name of *.DEF files for DEB, UREL and
+	UDEB builds is now carried out by default.  There should now be a *.def file for
+	each of these build variants in use if any definition files are used at all.
+	This change addresses SW1-196.
+3)  Makmake.cmd has been improved.  If makmake fails, a basic perl operation will be
+	attempted.  If this fails, the user will be asked if the correct version of perl
+	is installed.  This change addresses SW1-345.
+
+Version 0.01.075
+================
+(Made by Alastair, 24th July 1997)
+
+DEFTOOL (from William Roberts)
+
+1)	Modified DEFTOOL.CPP and DEFTOOL.H
+	Basically just improved error reporting so that
+	a)	When it tells you that there are "frozen ordinals missing from supplied
+		def file" it also tells you which ordinal numbers have been lost.
+	b)	If your DLL exports functions that weren't in the freeze file then it
+		gives you a gentle warning, because that's not something which we'd 
+		want to allow in a release.
+
+MAKMAKE
+
+1)	Changed makmake so that target makefile is created in the current
+	working directory rather than the directory containing the *.mmp
+	file.
+2)  Added line of code to makpath.pm so that single dot directories
+	are stripped from paths.
+3)	Removed repeat occurrence of deffile flag in the link command for 
+	*.wins makefiles.
+4)	Changed RELGDB path macros for MARM makefiles so that they are prefixed
+	with ".\" rather than "..\\..<absolute path to makefile directory>".
+	This is a neater way to get them to expand to something textually different
+	from REL path macros while still specifying the same path.
+5)	Changed "ar q" lines within MARM makefiles to include 8 object files maximum
+	rather than 4 - this should improve efficiency without breaking limits on
+	command-line lengths.
+6)	Changed WINS.PM so that the $(LINK_OBJS) macro is used in the link command line
+	in *.wins makefiles rather than a list of all the objects concerned.
+7)	Changed MARM.PM so that the first stage of linking (by name) for a dll target
+	creates the dll in the build directory rather than the release directory.
+	The	second stage of linking (by number) creates a dll in the build directory
+	rather than the release directory too, overwriting the first dll.  Finally,
+	this target is petranned to the release directory and the dll left in the
+	build directory is deleted. This change solves the problem of nmake thinking
+	that the target has been successfully created when the build has failed
+	anywhere between the first link stage and the petranning stage, because of
+	the presence of an apparently up-to-date dll in the release directory.
+8)	Changed WINS.PM similarly so that *.wins makefiles do a two-stage link.  Defmake
+	is called between the two link stages with a "freeze" file if one is specified
+	with the DEFFILE statement (see below).  The defmake-created def file is then
+	used for the second-stage link (by number).  The first stage of linking creates
+	the target dll in the intermediate directory while the second stage creates the
+	final target dll in the target directory and the first dll is deleted.
+9)	Removed /NAME flag from MAKMAKE - no longer necessary due to (8).
+10)	Radically changed behaviour of MAKMAKE towards DEFFILE and FRZFILE statements
+	within *.mmp files.  There is no longer handling of FRZFILE statements.  As
+	before, if a DEFFILE statement is placed within an #if defined(WINS) ... #endif
+	block, the statement will be used by both WINS and VC4 makefiles but not MARM
+	makefiles, and vice versa if a #if defined(MARM) ... #endif block is used.  If
+	the file specified has no path, the file is assumed to be in directory 
+	\<project>\bwins\ for WINS and VC4 makefiles and \<project>\bmarm\ for MARM
+	makefiles.  For VC4 makefiles, the specified file is passed to LINK.EXE as 
+	before.  For WINS makefiles, the file is not used in the first stage of linking.
+	Defmake is called and uses the file as a freeze file in the creation of a new
+	deffile which will include any new exports produced by changes to the source code
+	for the project.  The new deffile created is used in the second stage of linking.
+	For MARM makefiles, the specified file works in much the same way as for WINS
+	makefiles.
+		In other words, the DEFFILE statement should now be used to specify "freeze"
+	files.  WINS *.def files were in effect "freeze" files anyway.  The choice of
+	"DEFFILE" rather than "FRZFILE" for the new statement within *.mmp file reflects
+	the widespread understanding of "def" vocabulary outside Psion.  For more
+	information, see the discussion on e32proposals - tools - makmake and frz files.
+		The STRICTDEF keyword is still required if differently-named "freeze" files
+	are required for different builds, but this requirement is under review together
+	with potential default directories for components not using directories
+	\<project>\bwins and \<project>\bmarm.  Note that if these directories are not
+	being used and files specified with the DEFFILE statement include a path then is
+	is essential to place DEFFILE statements with #if defines because WINS and VC4
+	builds should never use the same "freeze" file as MARM builds due to the compilers
+	mangling function names in different ways.
+11)	A file specified with the DEFFILE statement is now put in the list of 
+	dependencies for a target in WINS and MARM makefiles, but not yet VC4.
+12)	Changed MAKMAKE to allow for use of the WINDOWS API.  If you are using this API,
+	specify the windows libraries you wish to link to in *.mmp as follows
+
+	START WINS
+	BASEADDRESS		0x43500000
+	WIN32_LIBRARY	kernel32.lib gdi32.lib user32.lib
+	END
+
+		ie, put the WIN32_LIBRARY statement somewhere in a START WINS ... END block
+	and	list the libraries after it.  Please note that these START WINS ... END
+	blocks are very different from #if defined(WINS) ... #endif blocks.  Makmake
+	always preprocesses the *.mmp file when invoked, and later passes any text within
+	START ... END blocks onto the perl module specific to the platform in question.
+	When makmake is invoked with the VC4 argument, the *.mmp file is preprocessed
+	the WINS macro defined.
+13) Fixed bug causing AIF file subroutine to be ignored
+14)	Fixed bug causing path specified with TARGETPATH statement to be left out of
+	path to resource target for WINS makefiles.
+15) Changed resource file building command so that the base name of the target
+	resource file is the same as the base name of the releasable rather than
+	the base name of the file specified with the RESOURCE or SYSTEMRESOURCE
+	statement.
+16) Changed name for target AIF from the base name of the releasable + ".aif" to
+	the name specified by the AIF statement.
+18)	Changed code designed to warn the user if the version of perl they are using
+	is not supported by MAKMAKE so that it is activated before rather than after
+	compilation - untested.
+
+
+Version 0.01.074
+================
+(Made by Alastair, 1st July 1997)
+
+MAKMAKE
+1)  Fixed egregious error causing the content of LIBRARY
+    statements in *.MMP files to be ignored.  This error
+    is present in e32tools releases 071, 072 and 073.
+
+
+Version 0.01.073
+================
+(Made by Morgan, 18th June 1997)
+
+1) ROMBUILD
+   Added 'time' keyword for specifying the date/time stamp
+   in the rom header.
+   Syntax:
+      time=dd/mm/yyyy hh:mm:ss
+
+   Added 'reloc' file attribute to specify user process
+   data run address for Exes.
+
+   Added 'align' keyword to align files on particular
+   alignment boundries.
+
+
+Version 0.01.072
+================
+(Made by Alastair, 16th June 1997)
+
+MAKMAKE
+1)  Added line of code to makmake.pl so that makmake will refuse
+	to work with versions of PERL released prior to version 
+	5.003_07   .  To find out what version of PERL you are using,
+	type  perl -v<return>  in a DOS box.
+
+
+Version 0.01.071
+================
+(Made by Alastair, 9th June 1997)
+
+MAKMAKE
+1)  Added new preprocessor macro, __PSISOFT32__, defined for all
+	projects using MAKMAKE regardless of platform or build variant.
+
+
+Version 0.01.070
+================
+(Made by Matthew, 4th June 1997)
+
+Added new tool ROMMASK, for generating rom images suitable for masking.
+
+
+Version 0.01.069
+================
+(Made by Alastair, 4th June 1997)
+
+MAKMAKE
+
+1)      Fixed bugs causing _UNICODE macro to be output
+	without the initial underscore by marm.pm and
+	wins.pm.
+
+2)      Single call to gcc archiving tool "ar" replaced
+	by multiple call to avoid overriding of command-line
+	length limits for projects comprising many source
+	files.
+
+3)      Fixed bug in \e32tools\makmake\mnt.cmd so that
+	makpath.pm is copied to directory
+	\epoc32\tools\makmake.
+
+
+Version 0.01.068
+================
+(Made by Alastair, 2nd June 1997)
+
+MAKMAKE
+
+1)      Removals
+	makmake.txt - SDK documentation now available
+	revmak.pl - redundant
+	winsname.pm - redundant
+
+2)      Fixes
+
+a)      fixed dependency macro bug for VC4 platform
+b)      fixed problem with mmp file specification of
+	multiple subprojects
+c)      Other minor bug fixes
+
+3)      Internal Changes
+
+a)      Improved generation of dependencies
+b)      Improved path utility functions
+c)      Moved path utility functions out of makmake.pl to
+	new module "MAKPATH.PM"
+d)      Other structural changes
+
+4)      Command-Line invocation
+
+a)      Platform VC4 can now be specified to produce MSVC4.0
+	compatible makefiles - WINS platform now produces
+	makefiles incompatible with MSVC4.0 allowing greater
+	freedom for using nmake to build resource files, etc.
+	*.MMP files will still be preprocessed with the "WINS"
+	macro whether the platform is specified as WINS or VC4
+b)      New flag "/clean" - deletes all non-source files for the
+	project and platform specified.
+c)      New flag "/lang [language]" - sets a language for the
+	project and platform specified except for VC4.
+d)      New flag "/name" - doesn't add any /def:[deffile]
+	linker flags to WINS or VC4 makefiles.  No effect
+	on MARM makefiles.  This flag makes linking-by-name
+	builds possible for WINS.
+e)      Flags can now be specified anywhere on the command-line
+
+5)      *.MMP Files
+
+a)      New keyword "LANG [language]" - sets a language for
+	the project and platform specified except VC4.
+	This setting is overridden if the command-line language
+	flag is used.
+b)      New keyword "AIF [*.aif file]" - specifies an application
+	information file.  This keyword is subproject relative,
+	and merely copies the *.aif file to the target directory
+	at the moment (except for VC4).
+c)      New keyword "BITMAP [*.mbm file] [*.bmp files]" - specifies
+	a protea multi-bitmap target and compiles it to the target
+	directory using bmconv on the windows bitmap files (except
+	for VC4).  The keyword is subproject relative, so all
+	windows bitmaps files specified are expected to reside in
+	the current \PROJECT\SUBPROJECT directory.  This may not be
+	the required behaviour.
+d)      New "RESOURCE" keyword behaviour - eikrs.bat is invoked
+	for MARM and WINS platforms to compile the resource specified
+	to the target directory.  VC4 platform uses the keyword
+	parameter for information only.  If a language is specified
+	it is passed to eikrs.bat, defaults to "SC".
+e)      New keyword "SYSTEMRESOURCE [*.rss file]" - subproject
+	relative, behaves exactly as the RESOURCE keyword except
+	that for WINS the target resource is compiled to directory
+	\epoc32\release\wins\[build]\Z\system\data.  Ignored by
+	VC4.
+f)      New "TARGETTYPE" keyword option - "exedll".  This option
+	can be used to specify a target which will be built as
+	a dll under single-process platform WINS (or VC4), but as
+	an exe for multi-process platform MARM.
+g)      New keyword "STRICTDEPEND" - if specified, makmake will
+	generate dependencies for each source or resource specified
+	for all builds - DEB,UREL,RELGDB etc.  If sources are unlikely
+	to specify different include header files for different
+	builds then there is no need to specify this keyword and
+	dependencies will be generated once only for each source
+	file.
+h)      New "DEFFILE" keyword behaviour.  This keyword is no longer
+	platform-specific (within a "START [platform] ... END" block).
+	If the deffile is specified without a path, then makmake
+	will expect the deffile to live in directory "\PROJECT\BMARM"
+	for the MARM platform, and in "\PROJECT\BWINS" for WINS or VC4.
+	Note that currently the *.def file will be used in a call
+	to dlltool in MARM makefiles as follows:-
+		"dlltool --def [deffile] --output-def [created deffile]".
+	This behaviour is required for at least one project, and
+	different deffiles can be specified for different platforms
+	using "#if defined [platform]" within *.mmp files.
+i)      New keyword "FRZFILE [*.frz file]" - behaves the same as
+	"DEFFILE" keyword as regards paths.  A specified freeze file
+	is ignored by makmake when producing WINS or VC4 makefiles.
+	The file is used by MARM makefiles as follows
+		"ld -z [frzfile] [dlltool-created deffile]".
+j)      New keyword "STRICTDEF" - if this keyword is specified then
+	makmake assumes that, for each *.def or *.frz files specified,
+	there are actually as many of these files as there are
+	different build configurations for the project.  E.G. for
+	WINS makefiles, if a deffile is secified in a *.mmp file as
+	"DEFFILE mydef.def", then makmake will assume "mydefd.def",
+	"mydefu.def" and "mydefud.def" for DEB, UREL, and UDEB builds
+	respectively.  Though for MARM, a RELGDB build would look for
+	plain "mydef.def".
+
+6)      Output
+
+a)      Makmake for MARM will produce *.MARM makefiles.
+b)      Makmake for WINS will produce *.WINS makefiles.
+c)      Makmake for VC4 will produce *.MAK makefiles.
+d)      MARM and WINS makefiles are restructured to allow
+	the following example NMAKE command-line invocations
+
+		"NMAKE /f euactiv2.wins UREL"
+		"NMAKE /f euactiv2.marm UDEB"
+		"NMAKE /f euactiv2.wins CLEANDEB"
+		"NMAKE /f euactiv2.marm CLEAN"
+
+e)      Macros specifying target directories, language,
+	build directories and so on are produced at the
+	top of WINS and MARM makefiles.
+f)  RELGDB builds for MARM aim to put the executable
+	produced into \epoc32\release\marm\rel, and also use 
+	\epoc32\build\[project]\marm\rel as their building 
+	directory.
+g)      Gcc tool OBJCOPY produces a *.sym file for MARM debug
+	builds, including RELGDB.
+
+
+Version 0.01.067
+================
+(Made by Morgan, 19th May 1997)
+
+1) PEDIFF
+   Recognises time/date stamps in debug and export directories.
+   Ignores PETRAN version information in the header.
+
+2) PETRAN
+   Uids take the full 32bits.
+
+3) WVECONV
+   From \VNOTES\WVECONV.  S3a to S5 sound file converter.
+
+
+Version 0.01.066
+================
+(Made by Alastair, 9th May 1997)
+
+MAKMAKE
+
+1) Fixed bug causing extra "print " text to be produced
+   as part of the USERINCLUDES text outputted in verbose mode.
+
+2) Fixed bug causing makmake.pl to fail to produce the extension
+   of a target filename when requested by *.pm modules
+
+3) Fixed bug causing makmake to fail with an error report if
+   more than one flag is specified on the command line
+
+MAKSYM
+
+1) Added a few lines of extra code so that the base address of
+   a dll in the rom is printed to maksym.log when maksym cannot
+   find the corresponding *.map file.
+
+
+Version 0.01.065
+================
+(Made by Alastair, 6th May 1997)
+
+MAKMAKE
+
+1) reorganised to be more easily maintainable and extensible.
+
+2)      handles uid keyword in *.mmp file - uid1 is provided automatically,
+	uid's 2 and 3 are specified ... 
+
+UID <uid2> <uid3>
+
+in *.mmp file.
+
+3)      dependency generation section calls CPP with flag -MG so that
+	makmake responds gracefully to missing generated headers
+
+4)      *.mdp and *.ncb files are automatically deleted from directories
+	in which makmake is directed to create a wins makefile with the same
+	root.
+
+5)      petran is invoked from the arm makefile
+
+6)      invocation syntax simplified so that makmake is invoked 
+		makmake [flags] [mmp file root] [platform]
+	rather than
+		makmake [flags] [mmp file] [destination makefile] [platform]
+
+7)      makmake by default operates in quiet mode, verbose mode is invoked
+	using the new "/V" flag on the command-line
+
+8)      makmake will create the work directories rather than the makefile
+	if the new "/MAKEWORK" flag is used on the command-line
+
+9)      the "/q" flag for "del" commands is no longer added to marm makefiles
+	created with makmake
+
+10)     the DEFFILE keyword is no longer searched for within a START WINS ... END       
+	block, now it is platform independent though not yet utilised by the marm 
+	platform.
+
+11)     winsname.pm is not currently expected to work
+
+12)     PERL is no longer invoked with the -w debugger flag
+
+Version 0.01.064
+================
+(Made by Morgan, 16th April 1997)
+
+1)      ROMBUILD
+	Removed the checks for unicode-ness of Uid[0] on Exes/Dlls
+
+2)  W32REPRO
+	An NT version of PREPRO written by WilliamR
+
+
+Version 0.01.063
+================
+(Made by Morgan, 15th April 1997)
+
+1)      MAKTRAN
+	Changed over to the new (and slightly less mad) Uid scheme
+	introduced in E32(098).
+	Dlls now have a Uid[0] of 0x10000079
+	Exes now have a Uid[0] of 0x1000007A
+	Everything else is as before.
+
+
+Version 0.01.062
+================
+(Made by Graham Asher, 15th April 1997)
+
+READTYPE
+	Added this new tool, which writes the new file unitable.cpp, which contains
+	the Unicode character attribute information. I've put a full
+	explanation of how to use READTYPE in Notes under e32 software design.
+
+
+Version 0.01.061
+================
+(Made by Morgan, 13th April 1997)
+
+1)      ROMBUILD
+	1) Bug fix when using the -S switch with Rom patching
+	2) Added class TRomSectionHeader to the start of the
+	   second section of the Rom so sectioned Roms can have
+	   a separate build time, language variant, and checksum.
+	3) Added iRomSectionHeader member to TRomHeader to point
+	   at the start of the sectioned Rom and padded TRomHeader
+	   to 256 bytes.  This needs a new BOOTROM.BIN which will
+	   be released with E32(098)
+	4) Fixed a bug in the split rom verify code.
+	5) Fixed the overriding of Uids.
+
+
+Version 0.01.060
+================
+(Made by Morgan, 9th April 1997)
+
+1)      PETRAN
+	Fixed a PETRAN dumping bug when there are no .data relocations.
+
+2)      MAKTRAN
+	Bug fix for -P switch when no uid3 is specified.
+
+3)      DEFMAKE
+	Made the -S switch work when -Z is used.
+
+
+Version 0.01.059
+================
+(Made by Morgan, 7th April 1997)
+
+HIGHLIGHTS:
+	* MAKTRAN now produces PETRANned targets.
+	* Components should use the new -P switch instead of -U.
+	* Suggested minimum commandline for Dlls:
+	  MAKTRAN <src .MAK> <dest .ARM> -z<Your .FRZ> -p"-uid2 <Your Uid2> -uid3 <Your Uid3> -nocall"
+
+2)      MAKTRAN
+	1) Overhauled for releasing PETRANned components.
+	   -U switch has been removed and been replaced by new
+	   -P switch for specifying PETRAN command line arguments. Uid1
+	      will default to the correct uid for the build type unless
+		  you specify otherwise.
+
+
+Version 0.01.058
+================
+(Made by Morgan, 3rd April 1997)
+
+1)      ROMBUILD
+	1) Filenames can now be quoted ("") to include spaces.
+	2) More details provided when the Rom overflows.
+
+	NOTE: Currently there is a bug that occurs if the Rom 
+	is exactly the correct size (byte for byte) and sectioning
+	is being used.  It's harmless - I'll fix this in a release
+	soon.
+
+
+Version 0.01.057
+================
+(Made by Alastair, 2nd April 1997)
+
+1)      MAKMAKE
+	Fixed bug in wins.pm causing *.def files specified in *.mmp
+	files to be ignored by MSVC.
+	Included deftool flag -1 NewApplication__Fv for MARM makefiles
+	where the target is an APP.
+	
+	E32TOOLS GROUP MNT.CMD
+	Added lock, unlock and wholock parameters.
+
+
+Version 0.01.056
+================
+(Made by Alastair, 27th March 1997)
+
+Alastair:
+1)      MAKMAKE
+	MAKMAKE generates makefiles for WINS or MARM builds.
+	It is being released because the SDK example projects
+	now use it, and no longer use MAKTRAN.  Makmake is by no
+	means fully tested and is certainly not intended for 
+	incorporation into Epoc32 projects prior to V1 shipping.
+	Details of its use are roughly documented in file 
+	\e32tools\makmake\makmake.txt.
+	Use of makmake requires the installation of Perl 
+	from directory T:\UTIL\PERL.
+
+
+Version 0.01.055
+================
+(Made by Morgan, 20th March 1997)
+
+1) ROMBUILD
+   CheckSum bug fix.
+   Kernel alignment bug fix.
+
+
+Version 0.01.054
+================
+(Made by Morgan, 18th March 1997)
+
+1) ROMBUILD
+   Removed some unnecesary recurtion and tidied some dodgy code.
+   Loaded the files to Rom in the order they appear in the obey
+   file, rather than depth first order.
+   
+   Roms can now be sectioned into two parts allowing the upper
+   part of the rom to be switched for language variations and
+   file patching.  Both these processes require the original
+   releasables, original obey file, and any new releasables.
+   It is also advisable to supply the original Rom so the lower
+   section can be verified to be constant.
+
+   In a sectioned rom the directory structure, import address
+   tables, and Dll reference tables of all files in the first Rom
+   are placed after the section border.
+   The overhead of sectioning a Rom (over and above an unsectioned
+   one) is the space required to duplicate the import address
+   tables of files from the first section.
+   Last time I counted (B2) the iat's took up 42k.
+
+   The 32bit sum of all 32bit words in the second section is
+   always 0.  This means the iChecksum member in TRomHeader is
+   valid for the rom as a whole and for the first section in
+   isolation.
+   It is not possible to patch any files that are listed before
+   the primary or the secondary.  Doing this causes the position
+   of the kernel's/file-server's entry in the directory table to
+   move.  This may be fixed in a future release.
+
+   To section a Rom:
+      Use the keyword
+	 section <rom offset>
+      at the point in the obey file where you want the Rom to be
+      split.  All files before this line appear in the first
+	  (constant) section, and files after appear in the second
+	  (patch/language) section.
+
+   Patching a file in the second section:
+      Add file attribute 'patch[ed]' to the file to be patched.
+      (This will cull the file from the first section).
+      Supply a replacement file in the top section as required.
+	  Note, the original file is still required to guarantee
+	  consistency in the first section of Rom.
+	  Run ROMBUILD.
+
+   Supplying a language dependant file:
+      Put the file after the section keyword.
+	  Run ROMBUILD.
+
+   To verify the lower section of Rom has remained constant:
+      Specify the original Rom image on the command line with
+	  -r<FileName>
+
+
+Version 0.01.053
+================
+(Made by Morgan, 7th March 1997)
+
+1) ROMBUILD
+   Bug fix to 'screen' keyword
+
+
+Version 0.01.052
+================
+(Made by Morgan, 3rd March 1997)
+
+1) ROMBUILD
+   Bug fix for Exes/Dlls with no relocations in .text or .rdata
+   Check Uids for exporting .EXEs as well as .DLLs
+   New 'screen' keyword.  Default is: screen = 640x240x4
+
+2) MAKTRAN
+   Bug fix
+
+
+Version 0.01.051
+================
+(Made by Morgan, 13th January 1997)
+
+Alastair:
+1) MAKSYM
+   Generates a list of C++ symbols and their addresses in rom from
+   ROMBUILD.LOG and accompanying .MAP files.
+   MAKSYM ? for help.
+
+
+Version 0.01.050
+================
+(Made by Morgan, 6th January 1997)
+
+1) ROMBUILD
+   Incompatable with any E32 before 083.
+   Added some stuff to TRomHeader for the test department:
+   A language bitfield (64bits for specifying the languages supported
+   by the ROM), and a 32bit hardware identifier.
+   The languages are as defined by TLanguage in E32STD.H.  (ie Test
+   is bit 0,  English is bit 1, French is bit 2,  etc...)
+   Added two more obeyfile keywords for this.  Usage:
+   languages = <list of supported languages>
+   hardware = <n>
+
+   Rombuild now has a -? switch.
+
+
+Version 0.01.049
+================
+(Made by Morgan, 11th December 1996)
+
+1) MAKTRAN
+   Object files are now grouped on the ar (archive) command line to
+   speed up building.  By default they are grouped in 4s but this
+   can be changed by using the new -a<n> switch.
+
+2) ROMBUILD
+   More informative error information when a dll is exporting by
+   name.
+
+3) E32UID
+   Removed.
+
+
+Version 0.01.048
+================
+(Made by Morgan, 22nd November 1996)
+
+1) ROMBUILD
+   Added 128 bytes of space to TRomHeader which appears at the front
+   of the ROM.  This is to allow work on the StrongARM port to
+   progress.
+   Naturally, this makes ROMBUILD compatable with absolutely nothing.
+   So a new bootrom.bin will be released with E32(075).
+
+
+Version 0.01.047
+================
+(Made by Morgan, 1st November 1996)
+
+1) MAKTRAN
+   Another minor fix to deal with unusually shaped .MAK files.  This
+   time it's old link information stored in comment lines.
+   Added "-Wno-ctor-dtor-privacy" to CPPFLAGS.
+
+2) PEDIFF
+   Bug fix HA-283.  The final section in a PE file may be truncated
+   to its VirtualSize making the SizeOfRawData field of the header
+   inaccurate.  This was causing a problem in the release build but
+   not the debug build.
+   Fixed by padding the section data with zeros up to SizeOfRawData
+   bytes.
+
+3) ROMBUILD
+   Added a iTextSize member to TRomImageHeader.  Making this version
+   of rombuild incompatable with any E32 before build 075.
+
+
+Version 0.01.046
+================
+(Made by Morgan, 1st November 1996)
+
+1) MAKTRAN
+   Added support for include directories other than ..\inc and
+   \epoc32\include
+      
+
+Version 0.01.045
+================
+(Made by Morgan, 7th October 1996)
+
+1) MAKTRAN
+   Added a -U<Uid> switch to put the 3rd uid in the target's import
+   stub so the Dll/Exe exports as DllName[Uid].Ext
+   This enables you to use the type-safe static linking (based on the
+   Dll's 3rd Uid) in E32(070)/F32(036) and ROMBUILD(043).
+
+2) ROMBUILD
+   Officially PVCSed DW's patch to ROMBUILD(044) that disables
+   type-safe static linking and added a -type-safe-link option to
+   turn it back on.
+   I'll leave it that way until people get used to the idea (or until
+   someone comes up with a better plan).
+   Also added checks on the first Uid against
+   KNarrowDebugUid, KNarrowReleaseUid for Ascii builds and
+   KWideDebugUid, KWideReleaseUid for Unicode builds.  I havn't made
+   this dependent on the -type-safe-link option because executables
+   and dlls wont load if this Uid is not set correctly.
+
+
+Version 0.01.044
+================
+(Made by Morgan, 3rd October 1996)
+
+1) ROMBUILD
+   ROMBUILD can now take E32 Image (pre-PETRANned) files as well as
+   PE Format files as input.
+
+
+Version 0.01.043
+================
+(Made by Morgan, 2th October 1996)
+
+1) MAKTRAN
+   Better filename parsing for the -z option.
+
+2) PETRAN
+   Added a -priority option.  This takes a number or one of these
+   keywords: low, background, foreground, high, windowserver,
+   fileserver, realtime, supervisor.
+
+3) ROMBUILD
+   Added 'priority' inline keyword for EXEs.
+   Added checks for type-safe static linking of DLLs.
+
+5) E32UID
+   Jal:  Displays the psion copyright message and build.
+	 Renumbered Uids to be Uid0, Uid1, and Uid2.
+
+6) ALL
+   Redirected error output to stderr.
+   
+
+Version 0.01.042
+================
+(Made by Morgan, 14th September 1996)
+
+1) PREPRO, PEIGER
+   Changes to MNT.CMD to include the latest versions of
+   PREPRO and PEIGER in the E32TOOLS release.
+
+2) MAKTRAN
+   Minor bug fixes for -D defined symbols.
+
+3) E32UID
+   Added a -Q quiet switch.
+
+
+Version 0.01.041
+================
+(Made by Morgan, 14th September 1996)
+
+1) MAKTRAN
+   Added support for maktranning make files of static libraries.
+   There are added complications when using static libraries from
+   GCC:
+   You may find that any executables linked with a static library
+   produce reams of "bad relocation" errors from either PETRAN or
+   ROMBUILD.  At the moment, to work around this you will need to
+   modify 2 lines for each build in the MAKTRANed file.
+       $(LD) ... --whole-archive my_exe.in --no-whole-archive ... my_lib.lib
+   becomes:
+       $(LD) ... --whole-archive my_exe.in my_lib.lib --no-whole-archive ...
+   this has the effect of including all code from the static library
+   in your .EXE whether it is used or not, but it fixes the bad
+   relocations generated by the GCC linker.
+
+   MAKTRAN also propogates defined symbols from the MSVC4
+   Build/Settings dialog excluding:
+	      __WINS__,__VC32__,__EXE__,__DLL__,
+	      _UNICODE,WIN32,_WINDOWS
+
+2) DEFTOOL
+   No longer truncates your def file if it can't find the specified
+   freeze file.
+
+
+Version 0.01.040
+================
+(Made by Morgan, 2nd September 1996)
+
+!) ROMBUILD
+   Bug fix:  for EXEs/DLLs with no imports.
+   
+   The tab character is now treated as white space in obey files.
+   
+   Improved some error messages.
+
+   Removed the universally dispised 'nocallentrypoint' directive on
+   the grounds that it looked silly.
+   Executables specified with 'file=' do not have the entry points
+   called.  New keyword 'dll=' indicates that the entry points
+   should be called.
+
+   Fixed filename case dependency.
+
+2) MAKTRAN
+   Added the switches '--whole-archive' and '--no-whole-archive'
+   around the .in file on the linker command line to keep GCC happy.
+   This only effects EXEs - as DLLs did it already.
+
+
+Version 0.01.039
+================
+(Made by Morgan, 19th August 1996)
+
+1) MAKTRAN
+   Added Unicode and Debug (U,D) suffixes to DEF files to make the
+   filenames for each target different under the new directory
+   structure.
+   Freeze files have also been given the same treatment:  specifying
+   -z afile.frz
+   will use afile.frz, afileD.frz, afileU.frz, afileUD.frz
+   as freeze files for the respective builds.
+
+
+Version 0.01.038
+================
+(Made by Morgan, 2nd August 1996)
+
+1) MAKTRAN
+   New maktran for the new epoc32 directory structure.
+   -T option removed.  Template instantiation is automatic.
+   Dlls are auto-detected by looking for __DLL__ in the .MAK file,
+   but this can be overridden with -D (to force a DLL) and -E (to
+   force an EXE)
+   Bug fix:  MAKTRAN now deals with make files that do not have
+   their "Win32 Release" target first.
+
+2) ETOUCH
+   Replacement TOUCH program.
+
+3) ROMBUILD
+   Bug fix:  for data sections with no relocations
+
+4) PETRAN
+   Added -nocallentrypoints option (can be shortened to -nocall)
+   and   -callentrypoints   option (       shortened to -call)
+   Bug fix:  for executable files with no relocations
+
+
+Version 0.01.037
+================
+(Made by Morgan, 2nd August 1996)
+
+1) ROMBUILD
+   Yet another change that will break your rom if you don't pay
+   attention to the version numbers.  This build is intended to
+   work with E32 (065).
+   The format of the Dll reference table has changed, and now looks
+   like this:
+
+   class TDllRefTable
+      {
+   public:
+      TUint16 iFlags;
+      TUint16 iNumberOfEntries;
+      };
+   followed by iNumberOfEntries of these:
+   class TDllRefTableEntry
+      {
+   public:
+      TUint iEntryPoint;
+      TUint iDllRefTable;
+      };
+
+   Added another inline keyword "nocallentrypoint" to obey files.
+   When attached to a file it prevents the entry points of linked
+   Dlls being called.  This is used to save time during loading
+   when the Dll's entry points are trivial (=empty).
+
+2) Fiddled with the -s option.
+   -S        outputs the size summary to the screen and to the log
+   -SLog     outputs the size summary to the log only
+   -SScreen  outputs the size summary to the screen only
+
+3) Forced the primary's code section to start on a 4K page boundry
+   for obscure operating system reasons.
+   (ie, Getting the exception/interrupt vectors to land on a page
+   boundry so they can be easily mapped by the MMU to the address
+   where they are expected to be.)
+
+4) Added support for building Unicode roms.  The implementation for
+   writing Unicode filenames to ROM is temporarily dubious.
+   A Unicode rom is made by specifying the keyword 'unicode' in the
+   first section of the obey file.
+
+5) Added the keyword 'stop' so parsing of an obey file can
+   be stopped prematurely.
+   
+
+Version 0.01.036
+================
+(Made by Morgan, 11th July 1996)
+
+1) ROMBUILD
+   Support for generating split ROM images - added the optional
+   keywords:
+   romnameodd=<file name>
+   romnameeven=<file name>
+   resulting in two half-roms.  one containing all odd numbered
+   half-words (16bits) and one containing all the even half-words.
+
+   Checksums:
+   Added a checksum member to TRomHeader and an optional keyword
+   romchecksum=<n>
+   for obey files.  This results in a ROM where summing all 32 bit
+   words (ignoring overflows) will return n.  The default sum of
+   all ROM words is 0.
+
+   Checksums for the ROM and for split ROMs are now calculated and
+   reported in the log.  These checksums are calculated by summing
+   all 8bit bytes and taking the least significant 32 bits of the
+   result.
+
+
+Version 0.01.035
+================
+(Made by Morgan, 10th June 1996)
+
+1) MAKTRAN
+   Added a RELGDB target which pretends to be the REL target
+   while keeping the debug info.
+   This has the same effect as a REL build when the makefile is
+   generated with:
+   MAKTRAN -no-strip-symbols -g"-g -fno-omit-frame-pointer" src dest
+
+2) DEFMAKE, DEFTOOL
+   Added -2 switch to compliment the -f switch so you can specify
+   the second ordinal as well as the first without the need to mess
+   around with freeze files.
+   This allows us to accomadate DLLs with the UID function at 
+   ordinal 1, and the GateL function at ordinal 2.
+   Also added -1 switch which is the same as -f to keep things 
+   consistent.
+
+
+Version 0.01.034
+================
+(Made by Morgan, 26th June 1996)
+
+1) ROMBUILD
+   Added facility to output Motorola S format Records.
+   Use the optional keyword:
+   srecordfilename=<output filename>
+   in the first section of the obey file.
+
+2) MAKTRAN
+   gcc option -mcpu-arm710 is now -mcpu=arm710
+   Added -strip-symbols and -no-strip-symbols options.
+   These force the linker to keep or strip all symbol
+   information (including debug symbol info).  If both
+   are omitted then symbols are striped for release
+   builds only.
+
+
+Version 0.01.033
+================
+(Made by Morgan, 24th June 1996)
+
+1) MAKTRAN
+   The -m6 flag on the CPPFLAGS line has changed to
+   -mcpu-arm710 -mapcs-32
+   added -fvtable-thunks and
+   removed -fno-implicit-templates
+
+
+Version 0.01.032
+================
+(Made by Morgan, 20th June 1996)
+
+1) PETRAN, ROMBUILD
+   Bug fix:  Relocations for the .rdata section were 4 bytes out
+   when the executable had a .rdata section and no imports.
+
+   PETRAN now performs a sanity check on all virtual addresses, and
+   lists the dubious ones.
+
+2) MAKTRAN
+   Made the error messages more descriptive when the .MAK file
+   doesn't contain one of the expected targets.
+
+
+Version 0.01.031
+================
+(Made by Morgan, 12th June 1996)
+
+1) PEDIFF
+   syntax: PEDIFF pefile pefile
+	   PEDIFF -e32 e32imagefile e32imagefile
+   compares 2 PE/E32Image format files to see if they are identical
+   ignoring all time/date stamps
+
+2) PETRAN
+   Another change to the E32Image file format to add a time stamp.
+
+
+Version 0.01.030
+================
+(Made by Morgan, 11th June 1996)
+
+1) PETRAN, ROMBUILD
+   Fixes to supply more information for the ram loader.
+   (ie. the size of the import section)
+   Documentation for the E32 Image file format is available from
+   the 'E32Base' Notes database.
+
+
+Version 0.01.029
+================
+(Made by Morgan, 7th June 1996)
+
+1) PETRAN
+   Added the command line switches:
+     -stack <stack size>
+     -uid<n> <uid>
+   for setting the stack size and the file's uids
+
+   The output of PETRAN has changed to the new E32Image file
+   format giving a (seasonally adjusted) size reduction of between
+   20 and 40 bytes.
+
+2) ROMBUILD
+   Uses the new E32Image file format.
+   Added heap size, and uids to the file modifiers
+   file = <src PE file> <dest EPOC file> [attributes]*
+       where 'attributes' is
+       attrib = [r|s|h|R|S|H]+
+       stack = <stack size>
+       reloc = <specific relocation address>
+       heapmax = <heap size>
+       heapmin = <heap size>
+       uid<n> = <uid>
+   Files in the rom are now read-only (R) by default (use
+   attrib=r to make them read/write)
+
+   Made filename and import/export name compares case insensitive
+
+3) DEFMAKE
+   DEFMAKE now accepts Alpha CPU PE Files
+
+
+Version 0.01.028
+================
+(Made by Morgan, 30th May 1996)
+
+1) MAKTRAN
+   added a -g flag to pass extra parameters to the gcc command line
+   eg.
+   -g-fcheck-new
+   adds: -fcheck-new to CPPFLAGS and
+   -g"-fcheck-new -fsigned-char"
+   adds: -fcheck-new -fsigned-char
+
+
+Version 0.01.027
+================
+(Made by Morgan, 29th May 1996)
+
+1) ROMBUILD
+   Changed the format of the 'file' keyword to allow overriding of 
+   various file attributes.
+   New format is:
+   file = <src PE file> <dest EPOC file> [attributes]*
+       where 'attributes' is
+       attrib = [r|s|h]+
+       stack = <stack size>
+       reloc = <specific relocation address>
+
+   The -s switch now lists file sizes in the same order as files
+   occur in the obey file.
+
+   Fixed a problem with reading relocations when the PE format file
+   lies about the VirtualSize of the section.
+
+2) MAKTRAN
+   Removed the -s flag from the linking stage of debug builds
+   to keep gcc generated debug information.
+
+3) DEFTOOL
+   Improved error reporting.
+
+4) General
+   Removed the dependencies on TRomExeHeader and TRomDllHeader
+   (from the header files of E32(059)) which are now defunct
+   so the tools build properly with E32(060).
+   Removed some of the dead code left over from E32ROM
+
+
+Version 0.01.026
+================
+(Made by Morgan, 24th May 1996)
+
+1) ROMBUILD
+   Altered the size summary output to include data files.
+   Currently the files are listed in depth first directory
+   order.  I intend to change this so they appear in the
+   same order as they appear in the obey file.
+
+2) PETRAN
+   Fixed a bug that crashed the translator when the size of the
+   relocation section of an executable was a multiple of 0x200
+   (the PE format file alignment size.)
+
+3) MAKTRAN
+   Added a CLEAN target.
+
+
+Version 0.01.025
+================
+(Made by Morgan, 23rd May 1996)
+
+1) E32ROM has been killed
+
+2) ROMBUILD replaces E32ROM
+   Syntax: ROMBUILD [-v] [-s] obeyfilename
+   -v verbose flag
+   -s gives a size summary of all executables in the rom
+   Logged output appears in the file ROMBUILD.LOG
+
+   The obey files for ROMBUILD are slightly different:
+   The keyword 'resource' has been replaced with 'data' for
+   putting data files in rom.
+   A manditory keyword 'kernheapmax' has been added.
+   The 'version' keyword has the syntax Major[.Minor[(Build)]]
+
+3) PETRAN
+   Produces E32ImageFile format files from PEFiles.
+
+4) Jal,
+   E32UID
+   Attaches UIDs to WINS files.
+
+
+Version 0.01.024
+================
+(Made by Morgan, 14th May 1996)
+
+1) DEFMAKE, DEFTOOL and MAKTRAN
+   Added -z switch to specify a frozen def file.
+   The exports in the frozen def file appear first (and in order)
+   in the new def file.  All additional exports are added to the
+   end.
+   A warning will be give if an export in the frozen def file
+   does not appear in the executable being processed.
+
+
+Version 0.01.023
+================
+(Made by Morgan, 3rd May 1996)
+
+1) Jane
+   Added space for the Uid system to the Rom Exe and DLL headers.
+
+
+Version 0.01.022
+================
+(Made by Morgan, 1st May 1996)
+
+1) E32ROM:
+   Added path checking so now it is not possible to create
+   directories with the name ""
+   The version specified by the obey file is now put into the rom.
+
+2) MAKTRAN:
+   /f switch added to specify the name of the function to use as
+   the first ordinal in the dll. (only works with /d switch).
+   More looping bugs fixed.  This time in the Archive generation.
+   Added some meagre form of test suit:  DIFs good .ARM files
+   with files generated from the current version.
+   Put in the work-around for the "ld hardcoded to C:" problem.
+
+
+Version 0.01.021
+================
+(Made by Morgan, 23rd April 1996)
+
+1) MAKTRAN bug fixes:
+   Added gcc -g option to the debug builds to produce debug output.
+   Fixed HA-103:  Now rules are only output for .cpp files
+   Having a .. or a . in the path for a source file 
+   (eg SOURCE=.\T_BLOB.CPP) no longer puts MAKTRAN into an endless
+   loop.  Also using system variables in path specifiers
+   (eg {($INCLUDE)}"\AHeader.H" ) no longer fills your hard disk.
+   Source files with no dependancies now generate a target.
+
+
+Version 0.01.020
+================
+(Made by Morgan, 11th April 1996)
+
+   E32ROM:
+1) Jal,
+   The 'resource' option is fixed and the rom is given the correct
+   date.
+
+2) Jane,
+   Added an error message if you don't supply enough parameters on
+   any line in the files section.
+
+
+Version 0.01.019
+================
+(Made by Graham, 8th April, 1996)
+
+1) Changed MAKTRAN-created makefile compiler options:
+
+   Added -fno-implcit-templates
+   In the past GCC automatically instantiated template classes and
+   functions. We now want to take complete control of this, so all
+   such templates will have to be instantiated by hand. There is an
+   extra switch (/T) on the command line which enables automatic
+   template instantiation to be turned back on, but this should only
+   be used when compiling test programs. Releasable code should take
+   advantage of the reduction in ROM size which hand-instantiation
+   brings.
+
+   Removed -fvtable-thunks
+   Those programs which exploit multiple-inheritence should now work.
+
+   Added $(USERDEFS)
+   This enables you to add your own definitions to the build.
+   e.g. nmake /f elink.mak USERDEFS=-D_USE_LOG
+
+2) Changed MAKTRAN-created makefile linker options:
+
+   Added --no-whole-archive option
+   This should greatly improve the size and linking speed DLL's. In
+   order to exploit this, you must get the next release of the GCC
+   tools from the network. Do this by typing TOOLS GCC and making
+   sure that \GCC\BIN is in your path.
+
+3) Fixed a bug with MSVC .MAK files which contain custom builds
+
+
+Version 0.01.018
+================
+(Made by Morgan, 3rd April, 1996)
+
+1) Extended DEFTOOL to take a -f switch (takes the name of the
+   function to be ordinal 1).
+
+
+Version 0.01.017
+================
+(Made by Graham, 26th March, 1996)
+
+1) Fixed a bug in E32ROM which gave "relocation type not handled" in
+   the presence of .reloc sections which were an exact multiple of
+   256 bytes in length.
+
+2) Fixed the MAKTRAN "if exist xxx.in del xxx.in" bug
+
+3) Added DEB, UREL and UDEB builds to MAKTRAN make files
+
+Jane:
+
+4) Better error reporting in E32ROM.EXE
+
+
+Version 0.01.016
+================
+(Made by Graham, 19th March, 1996)
+
+1) Fixed a bug in targetting some test program make files.
+2) Changed "del xxx.in" to "if exist xxx.in del xxx.in"
+
+Lane:
+
+3) Changed the mechanism by which libraries to be linked are found.
+
+Jane:
+
+4) Further improvements to the error reporting for DEFMAKE.
+
+
+Version 0.01.015
+================
+(Made by Graham, 8th March, 1996)
+
+1) Changed all tools to display their version and build numbers.
+
+Jane:
+
+2) Fixed a couple of heap problems in E32ROM, and generally increased robustness. 
+   Will now print an error message if there are too many files for the ROM,
+   rather than scribbling all over your nice memory.
+
+3) Improved some of the error reporting for DEFMAKE.
+
+Version 0.01.014
+================
+(Made by Graham, 6th March, 1996)
+
+1) Changed MAKTRAN to accept makefiles which have depenencies ..\..\
+   away from their source directory.
+
+Version 0.01.013
+================
+(Made by Graham, 5th March, 1996)
+
+1) Changed MAKTRAN to accept makefiles which are completely relative to
+   the directory in which they reside. NB These makefiles cannot be
+   correctly translated if they are moved to a different directory.
+
+Version 0.01.012
+================
+(Made by Graham, 4th March, 1996)
+
+1) Changed MAKTRAN to assume DEFTOOL.EXE is in your path
+2) Changed MAKTRAN so that it correctly sets __DLL__ and __EXE__
+3) Changed MAKTRAN to handle specially named DLL's - .DEV .MTD etc
+4) Changed MAKTRAN to handle projects with non-compilable components
+5) Changed the mechanism by which MAKTRAN decides group and project.
+
+Version 0.01.011
+================
+(Made by Graham, 27th February, 1996)
+
+1) Changed E32ROM to give each .EXE an 8K Stack
+2) Fixed bugs in MAKTRAN to do with picking up the name of the target
+3) Removed --whole-archive from .EXE make files built by MAKTRAN
+
+Version 0.01.010
+================
+(Made by Jane, 26th February, 1996)
+
+1) Fixed mnd.cmd for command line builds
+
+Version 0.01.009
+================
+(Made by Jane, 23rd February, 1996)
+
+1) Switched to Visual C++ 4.0
+
+2) E32ROM - Added support for REM statement in obeyfiles
+
+3) E32ROM - Fixed an obeyfile init bug which became apparent under the new compiler
+
+4) DEFMAKE & E32ROM - added support for export table being in .rdata section, as it is
+   now with Visual C++. (Export table in .edata is still supported.)
+
+5) DEFMAKE - added -q option which surrounds symbols names in "". This is mostly needed by
+   gcc builds where all destructors have a full stop in their name.
+
+6) First release of MAKTRAN and DEFTOOL from Lane
+	MAKTRAN converts msvc .mak files to gcc format.
+	DEFTOOL is used by MAKTRAN to strip out garbage from .def files
+		and to insert "NONAME" as required by gcc.
+	For MAKTRAN usage type "MAKTRAN".
+
+7) E32ROM - in log now displays absolute ROM addresses rather than offsets, and for text only
+
+Version 0.01.008
+================
+(Made by Jane, 31st January, 1996)
+
+1) Removed support for old time class
+
+
+Version 0.01.007
+================
+(Made by Jane, 8th January, 1996)
+
+1) Changed to new time class
+
+
+Version 0.01.006
+================
+(Made by Jane, 21st December 1995)
+
+1) Added versions to tools
+
+2) E32ROM - Changed heap min size for apps to 32k.
+
+3) E32ROM - Exits with error if files fail to fixup due to importing by name
+
+
+Version 0.01.004/005
+====================
+(Made by Jane, 15th November 1995)
+
+1) Added -R option to DEFMAKE so that the omission of ??__Dbg names in the .DEF
+   (release 003, (1)) can be optional.
+
+2) DEFMAKE alone now prints the meaning of the switches as well as help text.
+
+Version 0.01.003
+================
+(Made by Jane, 7th November 1995)
+
+1) Changed DEFMAKE not to write any exports after it hits the first
+   ??__Dbg prefixed name, allowing me to automate the E32 build
+   completely.
+
+2) E32ROM - Added code to avoid overwriting the first byte of a file if presented
+   with an invalid RVA of 0. (Bug in Cygnus tools).
+
+Version 0.01.002
+================
+(Made by Jane, 2nd November 1995)
+
+1) Converted DEFMAKE to the new HOST scheme.
+
+2) Sorted MNT.CMD so E32ROM will actually build.
+
+
+Version 0.01.001
+================
+(Made by Jane, 1st November 1995)
+1) First release.
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/group/rommask.mmp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,24 @@
+// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+
+TARGET			rommask.exe
+TARGETTYPE		exe
+SOURCEPATH	..\rommask
+SOURCE			 rommask.cpp
+USERINCLUDE ../inc
+OS_LAYER_SYSTEMINCLUDE_SYMBIAN
+
+VENDORID 0x70000001
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/group/secdump.mmp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,28 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+target			secdump.exe
+targettype		exe
+
+sourcepath		..\seclib
+source			secdump.cpp
+
+userinclude		..\inc
+OS_LAYER_SYSTEMINCLUDE_SYMBIAN
+
+staticlibrary		seclib.lib
+//staticlibrary    seclib
+
+VENDORID 0x70000001
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/group/seclib.mmp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,58 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#ifdef TOOLS2
+target			libseclib.a
+#else
+target			seclib.lib
+#endif
+targettype		lib
+
+sourcepath		../seclib
+source			seclib.cpp
+
+sourcepath		../e32image
+source			e32image.cpp
+
+sourcepath		../e32image/deflate
+source			decode.cpp encode.cpp deflate.cpp inflate.cpp panic.cpp compress.cpp
+
+sourcepath	../compress
+source			pagedcompress.cpp byte_pair.cpp
+
+sourcepath		../e32uid
+source			e32uid.cpp
+
+sourcepath		../setcap
+source			setcap.cpp
+
+sourcepath		../host
+source			h_file.cpp h_mem.cpp h_utl.cpp
+
+userinclude     ../compress
+userinclude		../setcap 
+userinclude	../inc
+OS_LAYER_SYSTEMINCLUDE_SYMBIAN
+
+OPTION          GCC -w
+
+//macro __PLACEMENT_NEW_INLINE
+//macro __PLACEMENT_VEC_NEW_INLINE
+
+START WINS
+WIN32_HEADERS
+END // WINS
+
+VENDORID 0x70000001
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/group/sisutils.mmp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,29 @@
+// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+target			sisutils.lib
+targettype		lib
+
+sourcepath	../sisutils/src
+source		sisutils.cpp sis2iby.cpp pkglanguage.cpp pkgfileparser.cpp
+
+userinclude	../sisutils/inc
+
+USERINCLUDE ../inc
+OS_LAYER_SYSTEMINCLUDE_SYMBIAN
+
+OPTION MSVC /W1 /GX
+VENDORID 0x70000001
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/group/tools_e32tools.mrp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,41 @@
+# component name "E32 Tools"
+
+component	tools_e32tools
+source	\sf\os\buildtools\toolsandutils\e32tools
+#binary	\sf\os\buildtools\toolsandutils\e32tools\group cwtools
+binary	\sf\os\buildtools\toolsandutils\e32tools\group all
+exports	\sf\os\buildtools\toolsandutils\e32tools\group
+
+-export_file	\sf\os\buildtools\toolsandutils\e32tools\dspec\romimage.rtf	\epoc32\engdoc\e32tools\romimage.rtf
+
+binary	\epoc32\release\tools\rel\bin2coff.exe
+binary	\epoc32\release\tools\rel\eruntest.exe
+binary	\epoc32\release\tools\rel\etouch.exe
+binary	\epoc32\release\tools\rel\pe_dump.exe
+binary	\epoc32\release\tools\rel\pediff.exe
+binary	\epoc32\release\tools\rel\pediff.exe.exp
+binary	\epoc32\release\tools\rel\pediff.exe.lib
+binary	\epoc32\release\tools\rel\petran.exe
+binary	\epoc32\release\tools\rel\petran.exe.exp
+binary	\epoc32\release\tools\rel\petran.exe.lib
+binary	\epoc32\release\tools\rel\readtype.exe
+binary	\epoc32\release\tools\rel\rommask.exe
+binary	\epoc32\release\tools\rel\w32repro.exe
+binary	\epoc32\release\tools\rel\w32repro.exe.exp
+binary	\epoc32\release\tools\rel\w32repro.exe.lib
+binary	\epoc32\release\tools\rel\wveconv.exe
+binary	\epoc32\release\tools2\rel\elfdump.exe
+binary	\epoc32\release\tools\rel\elftran.exe
+binary	\epoc32\release\tools\rel\elftran.exe.exp
+binary	\epoc32\release\tools\rel\elftran.exe.lib
+binary	\epoc32\release\tools\rel\getexports.exe
+binary	\epoc32\release\tools\rel\genstubs.exe
+binary	\epoc32\release\tools2\rel\elf2e32.exe
+
+notes_source	\component_defs\release.src
+
+
+ipr T 
+ipr E \sf\os\buildtools\toolsandutils\e32tools\compress
+ipr E \sf\os\buildtools\toolsandutils\e32tools\docs
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/group/uidcrc.mmp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,28 @@
+// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+
+TARGET			uidcrc.exe
+TARGETTYPE		exe
+SOURCEPATH	../e32uid
+SOURCE			uidcrc.cpp e32uid.cpp
+OS_LAYER_SYSTEMINCLUDE_SYMBIAN
+
+option GCC -w
+
+
+
+
+VENDORID 0x70000001
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/group/w32repro.mmp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,28 @@
+// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+
+TARGET			w32repro.exe
+TARGETTYPE		exe
+SOURCEPATH	..\w32repro
+SOURCE			 w32repro.cpp
+SOURCEPATH	..\host
+SOURCE			h_utl.cpp
+USERINCLUDE ../inc
+USERINCLUDE ../rombuild
+OS_LAYER_SYSTEMINCLUDE_SYMBIAN
+
+
+VENDORID 0x70000001
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/group/wveconv.mmp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,25 @@
+// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+
+TARGET			wveconv.exe
+TARGETTYPE		exe
+SOURCEPATH	..\wveconv
+SOURCE			 wveconv.cpp
+
+			
+
+
+VENDORID 0x70000001
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/host/h_file.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,147 @@
+// Copyright (c) 1995-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#ifdef __LINUX__
+#include <unistd.h>
+#else	// Windows specific
+#include <io.h>
+#endif
+#include <fcntl.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <errno.h>
+
+#include "h_utl.h"
+
+TInt HFile::Open(const TText * const aFileName, TInt32 * const aFileHandle)
+	{
+#ifdef __LINUX__
+	TInt32 hFile = open((const char *)aFileName, O_RDONLY );
+#else
+	TInt32 hFile = _open((const char *)aFileName, _O_RDONLY | _O_BINARY);
+#endif
+
+	if (hFile == -1)
+		{
+		switch (errno)
+			{
+		case EACCES:
+			Print(EError,"Can't open file %s - access violation.\n",aFileName);
+			break;
+		case EEXIST:
+			Print(EAlways,"Tried to create existing file %s\n",aFileName);
+			break;
+		case EINVAL:
+			Print(EError,"Can't open file %s - invalid open flags.\n",aFileName);
+			break;
+		case EMFILE:
+			Print(EError,"Can't open file %s - too many open files.\n",aFileName);
+			break;
+		case ENOENT:
+			Print(EError,"Can't open file %s - file or path not found.\n",aFileName);
+			break;
+		default:
+			Print(EError,"Can't open file %s, error %d (decimal).\n",aFileName,errno);
+			break;
+			}
+		return errno;
+		}
+ 	*aFileHandle = hFile;
+	return 0;
+	}	
+
+/******************************************************************************/
+TBool HFile::Read(const TInt32 aFileHandle, TAny * const aBuffer, const TUint32 aCount)
+	{
+	TInt32 bytesRead =  _read(aFileHandle, aBuffer, aCount);
+	if (bytesRead != (TInt32)aCount)
+		return EFalse;
+	else
+		return ETrue;
+	}  
+
+/******************************************************************************/
+TBool HFile::Seek(const TInt32 aFileHandle, const TUint32 aOffset)
+	{
+	TInt32 newPos = _lseek(aFileHandle, aOffset, SEEK_SET);
+	if (newPos == -1)
+		return(EFalse);
+	else
+		return ETrue;
+	}
+
+/******************************************************************************/
+TUint32 HFile::GetPos(const TInt32 aFileHandle)
+	{
+	TUint32 pos = _lseek(aFileHandle, 0, SEEK_CUR);
+	return pos;
+	}
+
+/******************************************************************************/
+TUint32 HFile::GetLength(TText *aName)
+	{
+	TInt32 handle;
+	if (HFile::Open(aName, &handle)==0)
+		{
+		TUint32 size = _filelength(handle);
+		HFile::Close(handle);
+		return size;
+		}
+	else
+		return 0;
+	}
+
+/******************************************************************************/
+TUint32 HFile::GetLength(const TInt32 aFileHandle)
+	{
+
+	TUint32 size = _filelength(aFileHandle);
+	return size;
+	}
+
+
+/******************************************************************************/
+void HFile::Close(const TInt32 aFileHandle)
+	{
+	_close(aFileHandle);
+	}
+
+
+/******************************************************************************/
+TUint32 HFile::Read(TText *aName, TAny *someMem)
+ 	{
+	TInt32 handle;
+	if (HFile::Open(aName, &handle)==0)
+		{
+		TUint32 size = HFile::GetLength(handle);
+		if (HFile::Read(handle, someMem, size))
+			{
+			HFile::Close(handle);
+			return size;
+			}
+		else 
+			{
+			HFile::Close(handle);
+			return 0;
+			}
+		}
+	else
+		return 0;
+	}
+
+
+/******************************************************************************/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/host/h_mem.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,180 @@
+// Copyright (c) 1995-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#include <stdlib.h>   
+#include <malloc.h>
+#include <stdio.h>
+#include <string.h>
+
+#include "h_utl.h"
+
+TAny *HMem::Alloc(TAny * const aBaseAddress,const TUint32 aImageSize)
+	{
+	if (aBaseAddress != 0)
+		{
+		Print(EError, "Allocating at a specified address is not supported on this system.\n");
+		return 0;
+		}
+
+	TAny *address = malloc(aImageSize);
+	return (address);
+	}
+
+void HMem::Free(TAny * const aMem)
+	{
+	free(aMem);
+	}
+
+void HMem::Copy(TAny * const aDestAddr,const TAny * const aSourceAddr,const TUint32 aLength)
+	{
+	memcpy(aDestAddr,aSourceAddr,(size_t)aLength);
+	}
+
+void HMem::Move(TAny * const aDestAddr,const TAny * const aSourceAddr,const TUint32 aLength)
+	{
+	memmove(aDestAddr,aSourceAddr,(size_t)aLength);
+	}
+
+void HMem::Set(TAny * const aDestAddr, const TUint8 aFillChar, const TUint32 aLength)
+	{		
+	memset(aDestAddr, aFillChar, aLength);
+	}
+
+void HMem::FillZ(TAny * const aDestAddr, const TUint32 aLength)
+	{		
+	memset(aDestAddr, 0, aLength);
+	}
+
+TUint HMem::CheckSum(TUint *aPtr, TInt aSize)
+	{
+	TUint sum=0;
+	aSize/=4;
+	while (aSize-->0)
+		sum+=*aPtr++;
+	return sum;
+	}
+
+TUint HMem::CheckSum8(TUint8 *aPtr, TInt aSize)
+	{
+	TUint sum=0;
+	while (aSize-->0)
+		sum+=*aPtr++;
+	return sum;
+	}
+
+TUint HMem::CheckSumOdd8(TUint8 *aPtr, TInt aSize)
+	{
+	return CheckSumEven8(aPtr+2, aSize-2);
+	}
+
+TUint HMem::CheckSumEven8(TUint8 *aPtr, TInt aSize)
+	{
+	TUint sum=0;
+	while (aSize>0)
+		{
+		sum+=(TUint)aPtr[0]+aPtr[1];
+		aPtr+=4;
+		aSize-=4;
+		}
+	return sum;
+	}
+
+static const TUint32 CrcTab32[256] =
+	{
+	0x00000000, 0x77073096, 0xee0e612c, 0x990951ba,
+	0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3,
+	0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988,
+	0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91,
+	0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de,
+	0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7,
+	0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec,
+	0x14015c4f, 0x63066cd9, 0xfa0f3d63, 0x8d080df5,
+	0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172,
+	0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b,
+	0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940,
+	0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59,
+	0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116,
+	0x21b4f4b5, 0x56b3c423, 0xcfba9599, 0xb8bda50f,
+	0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924,
+	0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d,
+	0x76dc4190, 0x01db7106, 0x98d220bc, 0xefd5102a,
+	0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433,
+	0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818,
+	0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01,
+	0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e,
+	0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457,
+	0x65b0d9c6, 0x12b7e950, 0x8bbeb8ea, 0xfcb9887c,
+	0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65,
+	0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2,
+	0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb,
+	0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0,
+	0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9,
+	0x5005713c, 0x270241aa, 0xbe0b1010, 0xc90c2086,
+	0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f,
+	0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4,
+	0x59b33d17, 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad,
+	0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a,
+	0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683,
+	0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8,
+	0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1,
+	0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe,
+	0xf762575d, 0x806567cb, 0x196c3671, 0x6e6b06e7,
+	0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc,
+	0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5,
+	0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252,
+	0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b,
+	0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60,
+	0xdf60efc3, 0xa867df55, 0x316e8eef, 0x4669be79,
+	0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236,
+	0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f,
+	0xc5ba3bbe, 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04,
+	0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d,
+	0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a,
+	0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713,
+	0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38,
+	0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21,
+	0x86d3d2d4, 0xf1d4e242, 0x68ddb3f8, 0x1fda836e,
+	0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777,
+	0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c,
+	0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45,
+	0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2,
+	0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db,
+	0xaed16a4a, 0xd9d65adc, 0x40df0b66, 0x37d83bf0,
+	0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9,
+	0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6,
+	0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf,
+	0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94,
+	0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d
+	};
+
+/**
+Performs a CCITT CRC-32 checksum on the specified data.
+
+On return from this function, the referenced 32 bit integer contains the CRC
+value.
+
+@param aCrc		A reference to a 32 bit integer to contain the CRC value. 
+@param aPtr		A pointer to the start of the data to be checksummed. 
+@param aLength	The length of the data to be checksummed.
+*/
+void HMem::Crc32(TUint32& aCrc, const TAny* aPtr, TInt aLength)
+	{
+	const TUint8* p = (const TUint8*)aPtr;
+	const TUint8* q = p + aLength;
+	TUint32 crc = aCrc;
+	while (p < q)
+		crc = (crc >> 8) ^ CrcTab32[(crc ^ *p++) & 0xff];
+	aCrc = crc;
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/host/h_utl.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,680 @@
+// Copyright (c) 1995-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+
+#define __INCLUDE_CAPABILITY_NAMES__
+
+#if defined(_MSVCDOTNET__) || defined(__TOOLS2__)
+#include <string>
+#else //!__MSVCDOTNET__
+#include <string.h>
+#endif //__MSVCDOTNET__
+
+#include <stdarg.h>
+#include <stdlib.h>
+
+#include <e32std.h>
+
+#include "h_utl.h"
+
+#ifdef __LINUX__
+ 
+ // Convert the supplied string to uppercase, in-place 
+ char* strupr(char *a)
+    {
+     char *ret = a;
+ 
+    while (*a)
+        {
+        *a = toupper(*a);
+        a++;
+         }
+ 
+     return ret;
+     }
+ 
+ off_t filelength(int filedes)
+     {
+     struct stat buf;
+     if(!fstat(filedes, &buf))
+         {
+        return buf.st_size;
+         }
+    perror("fstat failed");
+   return 0;
+    }
+ 
+#endif
+
+TBool PVerbose=ETrue;
+
+HPrint H;
+
+HPrint::~HPrint()
+	{
+	iLogFile.close();
+	}
+
+void HPrint::SetLogFile(TText *aFileName)
+	{
+	iLogFile.open((const char *)aFileName);
+	}
+
+
+/**
+Closing the logfile.(since 'n' number of drive images can be created)
+
+@internalComponent
+@released
+
+*/
+void HPrint::CloseLogFile()
+	{
+	if(iLogFile.is_open())
+		iLogFile.close();
+	}
+
+TInt HPrint::PrintString(TPrintType aType,const char *aFmt,...)
+//
+// Print text, noting where to send it.
+//
+	{
+
+	TInt r=KErrNone;
+	va_list list;
+	va_start(list,aFmt);
+	_vsnprintf((char *)iText,KMaxStringLength,aFmt,list);
+	va_end(list);
+	switch (aType)
+		{
+	case EAlways:
+		cout << iText;
+		iLogFile << iText;
+		break;
+	case EScreen:
+		cout << iText;
+		break;
+	case ELog:
+		if (iVerbose)
+			cout << iText;
+		iLogFile << iText;
+		break;
+	case EWarning:
+		cerr << "WARNING: " << iText;
+		iLogFile << "WARNING: "<<iText;
+		break;
+	case EError:
+		cerr << "ERROR: " << iText;
+		iLogFile << "ERROR: " << iText;
+		r=KErrGeneral;
+		break;
+	case EPeError:
+		if (PVerbose)
+			{
+			cerr << "ERROR: " << iText;
+			iLogFile << "ERROR: " << iText;
+			}
+		r=KErrGeneral;
+		break;
+	case ESevereError:
+		cerr << "ERROR: " << iText;
+		iLogFile << "ERROR: " << iText;
+		r=KErrGeneral;
+		break;
+	case EDiagnostic:
+		cerr << "DIAGNOSTIC MESSAGE: " << iText;
+		iLogFile << "DIAGNOSTIC MESSAGE: "<<iText;
+		break;
+	default:
+		cerr << "ERROR: Invalid print type" << endl;
+		r=KErrGeneral;
+		}
+	cout.flush();
+	iLogFile.flush();
+	return r;
+    }
+
+TVersion::TVersion()
+	{}
+TVersion::TVersion(TInt aMajor, TInt aMinor, TInt aBuild)
+	: iMajor((TInt8)aMajor), iMinor((TInt8)aMinor), iBuild((TInt16)aBuild)
+	{}
+#ifdef __TOOLS2__
+istringstream &operator>>(istringstream &is, TVersion &aVersion)
+#else
+istrstream &operator>>(istrstream &is, TVersion &aVersion)
+#endif
+//
+// Input a TVersion with syntax: major[.minor][(build)]
+//	
+	{
+#ifdef __TOOLS2__
+string tmp = is.str();
+const char *str=tmp.c_str();
+#else
+#ifdef __LINUX__
+    char *str = is.rdbuf()->str();
+#else
+    char *str=is.str();
+#endif
+#endif
+
+
+	TInt build=0;
+	memset(&aVersion, sizeof(TVersion), 0);	
+	TInt i;
+	TInt len=strlen(str);
+	for (i=0; i<len; i++)
+		if (str[i]=='(')
+			break;
+	if (i<len)
+		build=atoi(str+i+1);
+	aVersion.iMajor = (TInt8)Min(KMaxTInt8, atoi(str));
+	int majorV = atoi(str);
+	// iMajor is defined as TInt8 so it should not be bigger than 127
+	if (majorV > 127)
+		{ 
+		cout << "\n Warning: major version must be in range 0 - 127 \n";
+		}
+	char* pMinor = strchr(str, '.');
+	if (pMinor)
+		{
+		pMinor++; 
+		aVersion.iMinor = (TInt8)Min(KMaxTInt8, atoi(pMinor));
+		int minorV = atoi(pMinor);
+		// iMinor is defined as TInt8 so it should not be bigger than 127
+		if (minorV > 127)
+			{ 
+			cout << "\n Warning: minor version must be in range 0 - 127 \n";
+			}
+		}	
+	aVersion.iBuild=(TInt16)build;
+	return is;
+	}
+
+TInt Locate(const char *aString, char aChar)
+//
+// Locate aChar in aString
+//
+	{
+
+	if (aString==NULL)
+		return KErrNotFound;
+	TInt i=0;
+	while (*aString!=0)
+		{
+		if (*aString==aChar)
+			return i;
+		aString++;
+		i++;
+		}
+	return KErrNotFound;
+	}
+
+
+#define KHoursToMicroSeconds	Int64(3600000000UL) 
+#define KDaysToMicroSeconds		(Int64(24)*KHoursToMicroSeconds)
+const TInt KMinutesToMicroSeconds = 60000000;
+const TInt KSecondsToMicroSeconds =  1000000;
+
+const TInt8 mTab[2][12]=
+    {
+    {31,28,31,30,31,30,31,31,30,31,30,31}, // 28 days in Feb
+    {31,29,31,30,31,30,31,31,30,31,30,31}  // 29 days in Feb
+    };
+
+TInt Time::LeapYearsUpTo(TInt aYear)
+//
+// from 0AD to present year according to the rule above
+//
+	{
+
+	if (aYear<=0)
+		return(aYear/4);
+	if (aYear<=1600)
+		return(1+((aYear-1)/4));
+	TInt num=401; // 1600/4+1
+	aYear-=1601;
+	num+=(aYear/4-aYear/100+aYear/400);
+	return(num);
+	}
+
+TBool Time::IsLeapYear(TInt aYear)
+//
+// up to and including 1600 leap years were every 4 years,since then leap years are every 4 years unless
+// the year falls on a century which is not divisible by 4 (ie 1900 wasnt,2000 will be)
+// for simplicity define year 0 as a leap year
+//
+	{
+
+	if (aYear>1600)
+    	return(!(aYear%4) && (aYear%100 || !(aYear%400)));
+	return(!(aYear%4));
+	}
+
+
+Int64 ConvertTime(TInt aDay, TInt aMonth, TInt aYear, TInt aHour, TInt aMinute, TInt aSecond, TInt aMilliSeconds)
+//
+// converts TDateTime into a TTime, doesnt check for overflows
+//
+	{
+	
+	TInt days=365*aYear+Time::LeapYearsUpTo(aYear);
+	TBool isleap=Time::IsLeapYear(aYear);
+	for (TInt ii=0; ii<aMonth; ii++)
+	    days+=(mTab[isleap][ii]);	
+	days+=aDay;
+	TInt sum=aMilliSeconds+aSecond*KSecondsToMicroSeconds;
+	return((Int64(days)*KDaysToMicroSeconds+Int64(aHour)*KHoursToMicroSeconds) 
+			+(Int64(KMinutesToMicroSeconds)*Int64(aMinute)+Int64(sum))); 
+	}
+	
+TInt StringToTime(Int64 &aTime, char *aString)
+//
+// Convert string to time. String is in the format:
+//
+// dd/mm/yyyy hh:mm:ss.mmmmmmm
+//
+	{
+	TInt day=1;
+	TInt month=1;
+	TInt year=1997;
+	TInt hour=10;
+	TInt minute=10;
+	TInt sec=0;
+	TInt mill=0;
+	char ch;
+	#ifdef __TOOLS2__
+	istringstream val(aString);
+	#else
+	istrstream val(aString,strlen(aString));
+	#endif
+	val >> dec >> day; // locks istrstream in decimal mode for further extractions
+	val >> ch;
+	if (ch!='/')
+		return KErrGeneral;
+	val >> month;
+	val >> ch;
+	if (ch!='/')
+		return KErrGeneral;
+	val >> year;
+	val >> ch;
+
+	if (ch=='_')
+		{
+		// time too.
+		val >> hour;
+		val >> ch;
+		if (ch!=':')
+			return KErrGeneral;
+		val >> minute;
+		val >> ch;
+		if (ch!=':')
+			return KErrGeneral;
+		val >> sec;
+		val >> ch;
+		if (ch=='.')
+			{
+			val >> mill;
+			}
+		}
+
+	if (day<1 || day>31)
+		return KErrArgument;
+	if (month<1 || month>12)
+		return KErrArgument;
+	if (year<1970 || year>2060)
+		return KErrArgument;
+	if (hour<0 || hour>23)
+		return KErrArgument;
+	if (minute<0 || minute>59)
+		return KErrArgument;
+	if (sec<0 || sec>59)
+		return KErrArgument;
+	if (mill<0 || mill>999999)
+		return KErrArgument;
+
+	aTime=ConvertTime(day-1, month-1, year, hour, minute, sec, mill);
+	return KErrNone;
+	}
+
+void ByteSwap(TUint &aVal)
+	{
+	TUint t0=aVal & 0xff;
+	TUint t1=(aVal>>8)  & 0xff;
+	TUint t2=(aVal>>16) & 0xff;
+	TUint t3=aVal>>24;
+	aVal=(t0 << 24) | (t1 << 16) | (t2 << 8) | (t3);
+	}
+
+void ByteSwap(TUint16 &aVal)
+	{
+	TUint16 t0=(TUint16)((aVal >> 8) & 0xff);
+	TUint16 t1=(TUint16)(aVal & 0xff);
+	aVal=(TUint16)((t1 << 8) | t0);
+	}
+
+void ByteSwap(TUint *aPtr, TInt aSize)
+	{
+
+	while ((aSize-=4)>=0)
+		ByteSwap(*aPtr++);
+	}
+
+TBool IsBracketedHex(const char* s, const char* brackets, TInt digits, TUint32& aValue)
+	{
+	if (s[0]!=brackets[0] || s[1+digits]!=brackets[1])
+		return EFalse;
+	TInt i;
+	TUint32 x = 0;
+	for (i=1; i<=digits; ++i)
+		{
+		TInt c = s[i];
+		if (c>='a' && c<='z') c-=32;
+		if (c<'0' || (c>'9' && c<'A') || c>'F')
+			return EFalse;
+		c-='0';
+		if (c>9) c-=7;
+		x = (x<<4) | (TUint32)c;
+		}
+	aValue = x;
+	return ETrue;
+	}
+
+TInt CheckForDecimalVersion(const char* begin, const char* s, TUint32& aValue)
+	{
+	aValue = 0;
+	if (s <= begin || *s != '}')
+		return 0;
+	TUint32 v[2] = {0,0};
+	TUint32 m = 1;
+	TInt pos = 0;
+	const char* s0 = s + 1;
+	for (--s; s >= begin; --s)
+		{
+		int c = *s;
+		if (c >= '0' && c <= '9')
+			{
+			v[pos] += m * (c - '0');
+			if (v[pos] >= 65536u)
+				return 0;
+			m *= 10;
+			}
+		else if (c == '.')
+			{
+			m = 1;
+			if (++pos >= 2)
+				return 0;
+			}
+		else if (c == '{')
+			break;
+		else
+			return 0;
+		}
+	if (s < begin)
+		return 0;
+	aValue = (v[1] << 16) | v[0];
+	return s0 - s;
+	}
+
+// Decompose a name of the form NAME{MMMMmmmm}[UUUUUUUU].EXT where the bracketed
+// sections and extension are both optional.
+// Return a newly malloc-ed string containing NAME.EXT
+// Set aUid = 0xUUUUUUUU if present, 0 if not
+// Set aModuleVersion = 0xMMMMmmmm if present, 0 if not
+// Set aFlags according to which of these are present
+char* SplitFileName(const char* aName, TUint32& aUid, TUint32& aModuleVersion, TUint32& aFlags)
+	{
+	TFileNameInfo f(aName, ETrue);
+	aUid = f.iUid3;
+	aModuleVersion = f.iModuleVersion;
+	aFlags = f.iFlags;
+	TInt nl = f.iBaseLength;
+	TInt el = f.iTotalLength - f.iExtPos;
+	TInt tl = nl + el;
+	char* t = (char*)malloc(tl + 1);
+	if (t)
+		{
+		memcpy(t, aName, nl);
+		if (el)
+			memcpy(t + nl, aName + f.iExtPos, el);
+		t[tl] = 0;
+		}
+	return t;
+	}
+
+
+// Decompose a name of the form NAME{MMMMmmmm}.EXT where the bracketed
+// sections and extension are both optional.
+// Return a newly malloc-ed string containing NAME.EXT
+// Set aModuleVersion = 0xMMMMmmmm if present, 0 if not
+// Set aFlags according to whether version present
+char* SplitFileName(const char* aName, TUint32& aModuleVersion, TUint32& aFlags)
+	{
+	TFileNameInfo f(aName, EFalse);
+	aModuleVersion = f.iModuleVersion;
+	aFlags = f.iFlags;
+	TInt nl = f.iBaseLength;
+	TInt el = f.iTotalLength - f.iExtPos;
+	TInt tl = nl + el;
+	char* t = (char*)malloc(tl + 1);
+	if (t)
+		{
+		memcpy(t, aName, nl);
+		if (el)
+			memcpy(t + nl, aName + f.iExtPos, el);
+		t[tl] = 0;
+		}
+	return t;
+	}
+
+
+// Parse a filename and convert decimal version number to hex
+char* NormaliseFileName(const char* aName)
+{
+	//convert forward slashes into back slashes.
+	char* filename = strdup(aName);  //prevent violated access from stack.
+	char* fwdslashfinder = filename;
+	fwdslashfinder=strstr(fwdslashfinder, "/");
+	while(fwdslashfinder)
+	  {
+		*fwdslashfinder++ = '\\';
+		fwdslashfinder=strstr(fwdslashfinder, "/");
+	  }
+
+	//normalize filename.
+	TFileNameInfo f(filename, EFalse);
+	TInt nl = f.iBaseLength;
+	TInt el = f.iTotalLength - f.iExtPos;
+	TInt tl = nl + el;
+	if (f.iFlags & EVerPresent)
+		tl += 10;
+	char* t = (char*)malloc(tl + 1);
+	if (t)
+		{
+		memcpy(t, filename, nl);
+		if (f.iFlags & EVerPresent)
+			sprintf(t + nl, "{%08lx}%s", f.iModuleVersion, filename + f.iExtPos);
+		else if (el)
+			memcpy(t + nl, filename + f.iExtPos, el);
+		t[tl] = 0;
+		}
+	free(filename);
+
+	return t;
+}
+
+TFileNameInfo::TFileNameInfo(const char* aFileName, TBool aLookForUid)
+	{
+	iFileName = aFileName;
+	TInt l = strlen(aFileName);
+	iTotalLength = l;
+	TInt remain = l;
+	iFlags = 0;
+	iUid3 = 0;
+	iModuleVersion = 0;
+	iBaseLength = l;
+	iExtPos = l;
+	const char* s = iFileName + l;
+	for (; s>=iFileName && *s!='.' && *s!='}' && (!aLookForUid || *s!=']'); --s) {}
+	if (s<iFileName)
+		return;
+	if (*s == '.')
+		{
+		iExtPos = s - iFileName;
+		if (iExtPos == 0)
+			{
+			iBaseLength = 0;
+			return;
+			}
+		remain = iExtPos;
+		--s;
+		}
+	else if (s != iFileName + l)
+		return;
+	if (aLookForUid && remain>=10 && IsBracketedHex(s-9, "[]", 8, iUid3))
+		{
+		iFlags |= EUidPresent;
+		remain -= 10;
+		s -= 10;
+		}
+	if (remain>=10 && IsBracketedHex(s-9, "{}", 8, iModuleVersion))
+		{
+		iFlags |= EVerPresent;
+		remain -= 10;
+		s -= 10;
+		}
+	else
+		{
+		TInt n = CheckForDecimalVersion(iFileName, s, iModuleVersion);
+		if (n>0)
+			{
+			iFlags |= EVerPresent;
+			remain -= n;
+			s -= n;
+			}
+		}
+	iBaseLength = remain;
+	}
+
+
+#define PARSE_CAPABILITIES_ERROR(aMessage) Print(EError, "%s\n",aMessage)
+#define PARSE_CAPABILITIES_ERROR2(aMessage1,aMessage2) Print(EError, "%s%s\n",aMessage1,aMessage2)
+
+TInt ParseCapabilitiesArg(SCapabilitySet& aCapabilities, const char *aText)
+//
+// This is a cun'n'paste copy of the function in BASE\WINS\SPECIFIC\PROPERTY.CPP
+// Keep both of these versions up to date with each other
+//
+	{
+	memset(&aCapabilities,0,sizeof(aCapabilities));
+	char c;
+	while((c=*aText)!=0)
+		{
+		if(c<=' ')
+			{
+			++aText;
+			continue;
+			}
+		int invert=0;
+		if(c=='+')
+			{
+			++aText;
+			c=*aText;
+			}
+		if(c=='-')
+			{
+			invert=1;
+			++aText;
+			}
+		const char* name = aText;
+		while((c=*aText)>' ')
+			{
+			if(c=='-' || c=='+')
+				break;
+			++aText;
+			}
+		TUint n = aText-name; 
+		TInt i; 
+
+		if(n==3 && strnicmp("all",name,n)==0)
+			{
+			if(invert)
+				{
+				PARSE_CAPABILITIES_ERROR("Capability '-ALL' not allowed");
+				return KErrArgument;
+				}
+			for(i=0; i<ECapability_Limit; i++)
+				{
+				if(CapabilityNames[i])
+					aCapabilities[i>>5] |= (1<<(i&31));
+				}
+			continue;
+			}
+
+		if(n==4 && strnicmp("none",name,n)==0)
+			{
+			if(invert)
+				{
+				PARSE_CAPABILITIES_ERROR("Capability '-NONE' not allowed");
+				return KErrArgument;
+				}
+			memset(&aCapabilities,0,sizeof(aCapabilities));
+			continue;
+			}
+
+		for(i=0; i<ECapability_Limit; i++)
+			{
+			const char* cap = CapabilityNames[i];
+			if(!cap)
+				continue;
+			if((TUint)strlen(cap)!=n) 
+				continue;
+			if(strnicmp(cap,name,n)!=0)
+				continue;
+			break;
+			}
+		if(i>=ECapability_Limit)
+			{
+			char badName[32];
+			if(n>=sizeof(badName)) n=sizeof(badName)-1;
+			memcpy(badName,name,n);
+			badName[n]=0;
+			PARSE_CAPABILITIES_ERROR2("Unrecognised capability name: ",badName);
+			return KErrArgument;
+			}
+		if(invert)
+			aCapabilities[i>>5] &= ~(1<<(i&31));
+		else
+			aCapabilities[i>>5] |= (1<<(i&31));
+		}
+	return KErrNone;
+	}
+
+TInt ParseBoolArg(TBool& aValue, const char *aText)
+	{
+	if (_stricmp(aText, "on")==0 || _stricmp(aText, "yes")==0 || _stricmp(aText, "1")==0 || strlen(aText)==0)
+		{
+		aValue = ETrue;
+		return KErrNone;
+		}
+	if (_stricmp(aText, "off")==0 || _stricmp(aText, "no")==0 || _stricmp(aText, "0")==0 )
+		{
+		aValue = EFalse;
+		return KErrNone;
+		}
+	Print(EError, "Expected a boolean on/off value but found %s\n",aText);
+	return KErrArgument;
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/inc/e32image.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,131 @@
+// Copyright (c) 1996-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#ifndef __E32IMAGE_H__
+#define __E32IMAGE_H__
+
+#if defined(__MSVCDOTNET__) || defined(__TOOLS2__)
+#include <fstream>
+using namespace std;
+#else //!__MSVCDOTNET__
+#include <fstream.h>
+#endif //__MSVCDOTNET__
+
+#include <e32std.h>
+#include <e32ldr.h>
+#include <f32image.h>
+#include "byte_pair.h"
+
+enum TFileSource
+	{
+	EE32Image=0,
+	EPeFile=1,
+	EElfFile=2,
+	};
+
+class E32ImageFile
+	{
+private:
+        int iOwnBPE;
+public:
+	static E32ImageFile* New();
+	E32ImageFile(CBytePair *aBPE = NULL);
+	virtual ~E32ImageFile();
+	virtual TBool Translate(const char* aFileName, TUint aDataBase, TBool aAllowDllData, TBool aSymLkupEnabled = FALSE);
+	TInt ReadHeader(ifstream& is);
+	TInt Open(const char* aFileName);
+#ifndef __LINUX__
+	TInt Open(const wchar_t* aFileName);
+#endif
+	void Adjust(TInt aSize, TBool aAllowShrink=ETrue);
+	TUint VaOfOrdinal(TUint aOrdinal);
+	void RelocateSection(char* aPtr, char *aRelocs, TUint aCodeDelta, TUint aDataDelta, char* aImagePtr, TLinAddr** aIATRefs, TBool keepIAT=EFalse);
+	//
+	TUint TextOffset();
+	TUint DataOffset();
+	TUint BssOffset();
+	TUint32 Capability();
+	TUint32 Format();
+	TInt NumberOfImports();
+
+	TInt IsValid();
+	TInt IsDll();
+	enum TDumpFlags
+		{
+		EDumpHeader = 1<<0,
+		EDumpSecurityInfo = 1<<1,
+		EDumpCode = 1<<2,
+		EDumpData = 1<<3,
+		EDumpExports = 1<<4,
+		EDumpImports = 1<<5,
+		EDumpDefaults = EDumpHeader|EDumpCode|EDumpData|EDumpExports|EDumpImports
+		};
+	void Dump(TText *aFileName,TInt aDumpFlags);
+	void DumpHeader(TInt aDumpFlags);
+	void DumpData(TInt aDumpFlags);
+	void SetStackSize(TInt aSize);
+	void SetHeapSizeMin(TInt aSize);
+	void SetHeapSizeMax(TInt aSize);
+	void SetUids(TUid aUid1, TUid aUid2, TUid aUid3);
+	void SetSecureId(TUint32 aId);
+	void SetVendorId(TUint32 aId);
+	void SetCallEntryPoints(TInt aBool);
+	void SetFixedAddress(TInt aBool);
+	void SetPriority(TProcessPriority aPri);
+	void SetCapability(SCapabilitySet& aCapabilities);
+	void SetFPU(unsigned int aFPU);
+	static TInt IsE32ImageFile(char *aFileName);
+	TInt DetermineEntryPointType();
+	void UpdateHeaderCrc();
+	void SetDefaultHeader();
+	void CreateExportBitMap();
+	void AddExportDescription();
+	TInt CheckExportDescription();
+	TInt Validate();
+public:
+	inline TUint OrigCodeOffset() const {return OffsetUnadjust(iOrigHdr->iCodeOffset);}
+	inline TUint OrigDataOffset() const {return OffsetUnadjust(iOrigHdr->iDataOffset);}
+	inline TUint OrigCodeRelocOffset() const {return OffsetUnadjust(iOrigHdr->iCodeRelocOffset);}
+	inline TUint OrigDataRelocOffset() const {return OffsetUnadjust(iOrigHdr->iDataRelocOffset);}
+	inline TUint OrigImportOffset() const {return OffsetUnadjust(iOrigHdr->iImportOffset);}
+	inline TUint OrigExportDirOffset() const {return OffsetUnadjust(iOrigHdr->iExportDirOffset);}
+	inline TUint OffsetUnadjust(TUint a) const {return a ? a-iOrigHdrOffsetAdj : 0;}
+	inline void OffsetAdjust(TUint& a) { if (a) a+=iOrigHdrOffsetAdj; }
+public:
+	char* iData;
+	TInt iSize;
+	CBytePair *iBPE;
+	E32ImageHeader* iOrigHdr;
+	E32ImageHeaderV* iHdr;
+	char* iFileName;
+#ifndef __LINUX__
+	wchar_t* iWideFileName;
+#endif
+	TInt iError;
+	TFileSource iSource;
+	TUint iOrigHdrOffsetAdj;
+	TInt iFileSize;
+	TUint8* iExportBitMap;
+	TInt iMissingExports;
+	};
+
+#ifdef __VC32__
+ostream &operator<<(ostream &os, const E32ImageFile &aImage);
+#else
+ostream &operator<<(ostream &os, const E32ImageFile &aImage);
+#endif
+ifstream &operator>>(ifstream &is, E32ImageFile &aImage);
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/inc/h_utl.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,216 @@
+// Copyright (c) 1995-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#if !defined(__H_UTL_H__)
+#define __H_UTL_H__
+//
+#include <stdio.h>
+
+#ifdef __VC32__
+ #ifdef __MSVCDOTNET__
+  #include <iostream>
+  #include <strstream>
+  #include <fstream>
+  using namespace std;
+ #else //!__MSVCDOTNET__
+  #include <iostream.h>
+  #include <strstrea.h>
+  #include <fstream.h>
+ #endif //__MSVCDOTNET__
+#else //!__VC32__
+#ifdef __TOOLS2__ 
+#include <fstream>
+#include <iostream>
+#include <sstream>
+#include <iomanip>
+using namespace std;
+#else // !__TOOLS2__ OR __VC32__ OR __MSVCDOTNET__
+  #include <iostream.h>
+  #include <strstream.h>
+  #include <fstream.h>
+#endif
+#endif 
+
+#ifdef __LINUX__
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+#include <ctype.h>
+
+
+#define _close close
+#define _filelength filelength
+#define _lseek lseek
+#define _read read
+#define _snprintf snprintf
+#define _vsnprintf vsnprintf
+
+// linux case insensitive stromg comparisons have different names
+#define stricmp  strcasecmp		
+#define _stricmp strcasecmp		
+#define strnicmp strncasecmp	
+
+// to fix the linux problem: memcpy does not work with overlapped areas.
+#define memcpy memmove
+
+// hand-rolled strupr function for converting a string to all uppercase
+char* strupr(char *a);
+
+// return the length of a file
+off_t filelength (int filedes);
+#endif
+
+
+#include <e32cmn.h>
+#include <e32def.h>
+#include <e32def_private.h>
+
+#define ALIGN4K(a) ((a+0xfff)&0xfffff000)
+#define ALIGN4(a) ((a+0x3)&0xfffffffc)
+
+
+#ifdef HEAPCHK
+#define NOIMAGE
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+void HeapCheck();
+#endif
+#define Print H.PrintString
+//
+const TInt KMaxStringLength=0x400;
+//
+class HFile
+	{
+public:
+	static TBool Open(const TText * const aFileName, TInt32 * const aFileHandle);
+	static TBool Read(const TInt32 aFileHandle, TAny * const aBuffer, const TUint32 aCount);
+	static TBool Seek(const TInt32 aFileHandle, const TUint32 aOffset);
+	static TUint32 GetPos(const TInt32 aFileHandle);
+	static TAny Close(const TInt32 aFileHandle);
+	static TUint32 GetLength(const TInt32 aFileHandle);
+	static TUint32 GetLength(TText *aName);
+	static TUint32 Read(TText *aName, TAny *someMem);
+	};
+//
+//inline TAny* operator new(TUint /*aSize*/, TAny* aBase)
+//	{return aBase;}
+
+class HMem
+	{
+public:
+	static TAny *Alloc(TAny * const aBaseAddress,const TUint32 aImageSize);
+	static void Free(TAny * const aMem);
+	static void Copy(TAny * const aDestAddr,const TAny * const aSourceAddr,const TUint32 aLength);
+	static void Move(TAny * const aDestAddr,const TAny * const aSourceAddr,const TUint32 aLength);
+	static void Set(TAny * const aDestAddr, const TUint8 aFillChar, const TUint32 aLength);
+	static void FillZ(TAny * const aDestAddr, const TUint32 aLength);
+
+	static TUint CheckSum(TUint *aPtr, TInt aSize);
+	static TUint CheckSum8(TUint8 *aPtr, TInt aSize);
+	static TUint CheckSumOdd8(TUint8 *aPtr, TInt aSize);
+	static TUint CheckSumEven8(TUint8 *aPtr, TInt aSize);
+
+	static void Crc32(TUint32& aCrc, const TAny* aPtr, TInt aLength);
+	};
+//
+enum TPrintType {EAlways, EScreen, ELog, EWarning, EError, EPeError, ESevereError, EDiagnostic};
+//
+class HPrint
+	{
+public:
+	~HPrint();
+	void SetLogFile(TText *aFileName);
+	void CloseLogFile();						//	Added to close intermediate log files.
+	TInt PrintString(TPrintType aType,const char *aFmt,...);
+public:
+	TText iText[KMaxStringLength];
+	TBool iVerbose;
+private:
+	ofstream iLogFile;
+	};
+//
+extern HPrint H;
+extern TBool PVerbose;
+//
+TAny *operator new(TUint aSize);
+void operator delete(TAny *aPtr);
+//
+#ifdef __TOOLS2__
+istringstream &operator>>(istringstream &is, TVersion &aVersion);
+#else
+istrstream &operator>>(istrstream &is, TVersion &aVersion);
+#endif
+//
+TInt StringToTime(TInt64 &aTime, char *aString);
+
+void ByteSwap(TUint &aVal);
+void ByteSwap(TUint16 &aVal);
+void ByteSwap(TUint *aPtr, TInt aSize);
+
+extern TBool gLittleEndian;
+
+
+/**
+ Convert string to number.
+*/
+template <class T>
+TInt Val(T& aVal, char* aStr)
+	{
+
+	T x;
+	#ifdef __TOOLS2__
+	istringstream val(aStr);
+	#else
+	istrstream val(aStr,strlen(aStr));
+	#endif
+	#if defined(__MSVCDOTNET__) || defined (__TOOLS2__) 
+		val >> setbase(0);
+	#endif //__MSVCDOTNET__                             
+	val >> x;
+	if (!val.eof() || val.fail())
+		return KErrGeneral;
+	aVal=x;
+	return KErrNone;
+	}
+
+// Filename decompose routines
+enum TDecomposeFlag
+	{
+	EUidPresent=1,
+	EVerPresent=2
+	};
+
+class TFileNameInfo
+	{
+public:
+	TFileNameInfo(const char* aFileName, TBool aLookForUid);
+public:
+	const char* iFileName;
+	TInt iTotalLength;
+	TInt iBaseLength;
+	TInt iExtPos;
+	TUint32 iUid3;
+	TUint32 iModuleVersion;
+	TUint32 iFlags;
+	};
+
+extern char* NormaliseFileName(const char* aName);
+extern char* SplitFileName(const char* aName, TUint32& aUid, TUint32& aModuleVersion, TUint32& aFlags);
+extern char* SplitFileName(const char* aName, TUint32& aModuleVersion, TUint32& aFlags);
+extern TInt ParseCapabilitiesArg(SCapabilitySet& aCapabilities, const char *aText);
+extern TInt ParseBoolArg(TBool& aValue, const char *aText);
+
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/inc/h_ver.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,23 @@
+// Copyright (c) 1996-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#ifndef __H_VER_H__
+#define __H_VER_H__
+const TInt MajorVersion=2;
+const TInt MinorVersion=2;
+const TInt Build=0;
+const char Copyright[]="Copyright (c) 1996-2009 Nokia Corporation.\n\n";
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/inc/pe_defs.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,830 @@
+// Copyright (c) 1995-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#if !defined(__PE_DEFS_H__)
+#define __PE_DEFS_H__
+
+// A few additions to winnnt.h
+
+#define IMAGE_FILE_MINIMAL_OBJECT			0x0010
+#define IMAGE_FILE_UPDATE_OBJECT			0x0020
+#define IMAGE_FILE_16BIT_MACHINE			0x0040
+#define IMAGE_FILE_PATCH					0x0400
+#define IMAGE_FILE_MACHINE_I860				0x014d
+
+#define IMAGE_LIBRARY_PROCESS_INIT			0x0001
+#define IMAGE_LIBRARY_PROCESS_TERM			0x0002
+#define IMAGE_LIBRARY_THREAD_INIT			0x0004
+#define IMAGE_LIBRARY_THREAD_TERM			0x0008
+
+#define IMAGE_LOADER_FLAGS_BREAK_ON_LOAD	0x0001
+#define IMAGE_LOADER_FLAGS_DEBUG_ON_LOAD	0x0002 
+
+#define IMAGE_SCN_LNK_OVERLAY				0x00000400 
+
+
+//
+// Image Format	(copied entire from winnt.h)
+//
+
+#define IMAGE_DOS_SIGNATURE                 0x5A4D      // MZ
+#define IMAGE_OS2_SIGNATURE                 0x454E      // NE
+#define IMAGE_OS2_SIGNATURE_LE              0x454C      // LE
+#define IMAGE_NT_SIGNATURE                  0x00004550  // PE00
+
+typedef struct _IMAGE_DOS_HEADER {      // DOS .EXE header
+    TUint16   e_magic;                     // Magic number
+    TUint16   e_cblp;                      // TUint8 on last page of file
+    TUint16   e_cp;                        // Pages in file
+    TUint16   e_crlc;                      // Relocations
+    TUint16   e_cparhdr;                   // Size of header in paragraphs
+    TUint16   e_minalloc;                  // Minimum extra paragraphs needed
+    TUint16   e_maxalloc;                  // Maximum extra paragraphs needed
+    TUint16   e_ss;                        // Initial (relative) SS value
+    TUint16   e_sp;                        // Initial SP value
+    TUint16   e_csum;                      // Checksum
+    TUint16   e_ip;                        // Initial IP value
+    TUint16   e_cs;                        // Initial (relative) CS value
+    TUint16   e_lfarlc;                    // File address of relocation table
+    TUint16   e_ovno;                      // Overlay number
+    TUint16   e_res[4];                    // Reserved TUint16s
+    TUint16   e_oemid;                     // OEM identifier (for e_oeminfo)
+    TUint16   e_oeminfo;                   // OEM information; e_oemid specific
+    TUint16   e_res2[10];                  // Reserved TUint16s
+    TUint32   e_lfanew;                    // File address of new exe header
+  } IMAGE_DOS_HEADER, *PIMAGE_DOS_HEADER;
+
+typedef struct _IMAGE_OS2_HEADER {			// OS/2 .EXE header
+    TUint16		ne_magic;                    // Magic number
+    TUint8		ne_ver;                      // Version number
+    TUint8		ne_rev;                      // Revision number
+    TUint16		ne_enttab;                   // Offset of Entry Table
+    TUint16		ne_cbenttab;                 // Number of TUint8 in Entry Table
+    TUint32		ne_crc;                      // Checksum of whole file
+    TUint16		ne_flags;                    // Flag TUint16
+    TUint16		ne_autodata;                 // Automatic data segment number
+    TUint16		ne_heap;                     // Initial heap allocation
+    TUint16		ne_stack;                    // Initial stack allocation
+    TUint32   ne_csip;                     // Initial CS:IP setting
+    TUint32   ne_sssp;                     // Initial SS:SP setting
+    TUint16   ne_cseg;                     // Count of file segments
+    TUint16   ne_cmod;                     // Entries in Module Reference Table
+    TUint16   ne_cbnrestab;                // Size of non-resident name table
+    TUint16   ne_segtab;                   // Offset of Segment Table
+    TUint16   ne_rsrctab;                  // Offset of Resource Table
+    TUint16   ne_restab;                   // Offset of resident name table
+    TUint16   ne_modtab;                   // Offset of Module Reference Table
+    TUint16   ne_imptab;                   // Offset of Imported Names Table
+    TUint32   ne_nrestab;                  // Offset of Non-resident Names Table
+    TUint16   ne_cmovent;                  // Count of movable entries
+    TUint16   ne_align;                    // Segment alignment shift count
+    TUint16   ne_cres;                     // Count of resource segments
+    TUint8   ne_exetyp;                   // Target Operating system
+    TUint8   ne_flagsothers;              // Other .EXE flags
+    TUint16   ne_pretthunks;               // offset to return thunks
+    TUint16   ne_psegrefTUint8;             // offset to segment ref. TUint8
+    TUint16   ne_swaparea;                 // Minimum code swap area size
+    TUint16   ne_expver;                   // Expected Windows version number
+  } IMAGE_OS2_HEADER, *PIMAGE_OS2_HEADER;
+
+//
+// File header format.
+//
+
+typedef struct _IMAGE_FILE_HEADER
+	{
+	TUint16	Machine;
+    TUint16	NumberOfSections;
+    TUint32	TimeDateStamp;
+    TUint32	PointerToSymbolTable;
+    TUint32	NumberOfSymbols;
+    TUint16	SizeOfOptionalHeader;
+    TUint16	Characteristics;
+	} IMAGE_FILE_HEADER, *PIMAGE_FILE_HEADER;
+
+#define IMAGE_SIZEOF_FILE_HEADER             20
+
+#define IMAGE_FILE_RELOCS_STRIPPED			0x0001  // Relocation info stripped from file.
+#define IMAGE_FILE_EXECUTABLE_IMAGE			0x0002  // File is executable  (i.e. no unresolved externel references).
+#define IMAGE_FILE_LINE_NUMS_STRIPPED		0x0004  // Line nunbers stripped from file.
+#define IMAGE_FILE_LOCAL_SYMS_STRIPPED		0x0008  // Local symbols stripped from file.
+#define IMAGE_FILE_CHAR_REVERSED_LO			0x0080  // TUint8 of machine TUint16 are reversed.
+#define IMAGE_FILE_32BIT_MACHINE			0x0100  // 32 bit word machine.
+#define IMAGE_FILE_DEBUG_STRIPPED			0x0200  // Debugging info stripped from file in .DBG file
+#define IMAGE_FILE_SYSTEM					0x1000  // System File.
+#define IMAGE_FILE_DLL						0x2000  // File is a DLL.
+#define IMAGE_FILE_CHAR_REVERSED_HI			0x8000  // Char of machine short are reversed.
+
+#define IMAGE_FILE_MACHINE_UNKNOWN           0
+#define IMAGE_FILE_MACHINE_I386              0x14c   // Intel 386.
+#define IMAGE_FILE_MACHINE_R3000             0x162   // MIPS little-endian, 0540 big-endian
+#define IMAGE_FILE_MACHINE_R4000             0x166   // MIPS little-endian
+#define IMAGE_FILE_MACHINE_ALPHA             0x184   // Alpha_AXP
+#define IMAGE_FILE_MACHINE_POWERPC           0x1F0   // IBM PowerPC Little-Endian
+
+//
+// Directory format.
+//
+typedef struct _IMAGE_DATA_DIRECTORY
+	{
+    TUint32	VirtualAddress;
+    TUint32	Size;
+	} IMAGE_DATA_DIRECTORY, *PIMAGE_DATA_DIRECTORY;
+
+#define IMAGE_NUMBEROF_DIRECTORY_ENTRIES    16
+
+//
+// Optional header format.
+//
+typedef struct _IMAGE_OPTIONAL_HEADER
+	{
+    //
+    // Standard fields.
+    //
+
+	TUint16	Magic;
+    TUint8	MajorLinkerVersion;
+    TUint8	MinorLinkerVersion;
+    TUint32	SizeOfCode;
+    TUint32	SizeOfInitializedData;
+    TUint32	SizeOfUninitializedData;
+    TUint32	AddressOfEntryPoint;
+    TUint32	BaseOfCode;
+    TUint32	BaseOfData;
+
+    //
+    // NT additional fields.
+    //
+
+    TUint32	ImageBase;
+    TUint32	SectionAlignment;
+    TUint32	FileAlignment;
+    TUint16	MajorOperatingSystemVersion;
+    TUint16	MinorOperatingSystemVersion;
+    TUint16	MajorImageVersion;
+    TUint16	MinorImageVersion;
+    TUint16	MajorSubsystemVersion;
+    TUint16	MinorSubsystemVersion;
+    TUint32	Reserved1;
+    TUint32	SizeOfImage;
+    TUint32	SizeOfHeaders;
+    TUint32	CheckSum;
+    TUint16	Subsystem;
+    TUint16	DllCharacteristics;
+    TUint32	SizeOfStackReserve;
+    TUint32	SizeOfStackCommit;
+    TUint32	SizeOfHeapReserve;
+    TUint32	SizeOfHeapCommit;
+    TUint32	LoaderFlags;
+    TUint32	NumberOfRvaAndSizes;
+    IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES];
+	} IMAGE_OPTIONAL_HEADER, *PIMAGE_OPTIONAL_HEADER;
+
+typedef struct _IMAGE_ROM_OPTIONAL_HEADER {
+    TUint16   Magic;
+    TUint8   MajorLinkerVersion;
+    TUint8   MinorLinkerVersion;
+    TUint32  SizeOfCode;
+    TUint32  SizeOfInitializedData;
+    TUint32  SizeOfUninitializedData;
+    TUint32  AddressOfEntryPoint;
+    TUint32  BaseOfCode;
+    TUint32  BaseOfData;
+    TUint32  BaseOfBss;
+    TUint32  GprMask;
+    TUint32  CprMask[4];
+    TUint32  GpValue;
+} IMAGE_ROM_OPTIONAL_HEADER, *PIMAGE_ROM_OPTIONAL_HEADER;
+
+#define IMAGE_SIZEOF_ROM_OPTIONAL_HEADER      56
+#define IMAGE_SIZEOF_STD_OPTIONAL_HEADER      28
+#define IMAGE_SIZEOF_NT_OPTIONAL_HEADER      224
+
+#define IMAGE_NT_OPTIONAL_HDR_MAGIC        0x10b
+#define IMAGE_ROM_OPTIONAL_HDR_MAGIC       0x107
+
+typedef struct _IMAGE_NT_HEADERS {
+    TUint32 Signature;
+    IMAGE_FILE_HEADER FileHeader;
+    IMAGE_OPTIONAL_HEADER OptionalHeader;
+} IMAGE_NT_HEADERS, *PIMAGE_NT_HEADERS;
+
+typedef struct _IMAGE_ROM_HEADERS {
+    IMAGE_FILE_HEADER FileHeader;
+    IMAGE_ROM_OPTIONAL_HEADER OptionalHeader;
+} IMAGE_ROM_HEADERS, *PIMAGE_ROM_HEADERS;
+
+#define IMAGE_FIRST_SECTION( ntheader ) ((PIMAGE_SECTION_HEADER)        \
+    ((TUint32)ntheader +                                                  \
+     FIELD_OFFSET( IMAGE_NT_HEADERS, OptionalHeader ) +                 \
+     ((PIMAGE_NT_HEADERS)(ntheader))->FileHeader.SizeOfOptionalHeader   \
+    ))
+
+
+// Subsystem Values
+
+#define IMAGE_SUBSYSTEM_UNKNOWN              0   // Unknown subsystem.
+#define IMAGE_SUBSYSTEM_NATIVE               1   // Image doesn't require a subsystem.
+#define IMAGE_SUBSYSTEM_WINDOWS_GUI          2   // Image runs in the Windows GUI subsystem.
+#define IMAGE_SUBSYSTEM_WINDOWS_CUI          3   // Image runs in the Windows character subsystem.
+#define IMAGE_SUBSYSTEM_OS2_CUI              5   // image runs in the OS/2 character subsystem.
+#define IMAGE_SUBSYSTEM_POSIX_CUI            7   // image run  in the Posix character subsystem.
+
+
+// Directory Entries
+
+#define IMAGE_DIRECTORY_ENTRY_EXPORT         0   // Export Directory
+#define IMAGE_DIRECTORY_ENTRY_IMPORT         1   // Import Directory
+#define IMAGE_DIRECTORY_ENTRY_RESOURCE       2   // Resource Directory
+#define IMAGE_DIRECTORY_ENTRY_EXCEPTION      3   // Exception Directory
+#define IMAGE_DIRECTORY_ENTRY_SECURITY       4   // Security Directory
+#define IMAGE_DIRECTORY_ENTRY_BASERELOC      5   // Base Relocation Table
+#define IMAGE_DIRECTORY_ENTRY_DEBUG          6   // Debug Directory
+#define IMAGE_DIRECTORY_ENTRY_COPYRIGHT      7   // Description String
+#define IMAGE_DIRECTORY_ENTRY_GLOBALPTR      8   // Machine Value (MIPS GP)
+#define IMAGE_DIRECTORY_ENTRY_TLS            9   // TLS Directory
+#define IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG   10   // Load Configuration Directory
+
+//
+// Section header format.
+//
+
+#define IMAGE_SIZEOF_SHORT_NAME              8
+
+typedef struct _IMAGE_SECTION_HEADER {
+    TUint8 		Name[IMAGE_SIZEOF_SHORT_NAME];
+    union	{
+            TUint32   PhysicalAddress;
+            TUint32   VirtualSize;
+    		} Misc;
+    TUint32		VirtualAddress;
+    TUint32		SizeOfRawData;
+    TUint32		PointerToRawData;
+    TUint32		PointerToRelocations;
+    TUint32		PointerToLinenumbers;
+    TUint16		NumberOfRelocations;
+    TUint16		NumberOfLinenumbers;
+    TUint32		Characteristics;
+} IMAGE_SECTION_HEADER, *PIMAGE_SECTION_HEADER;
+
+#define IMAGE_SIZEOF_SECTION_HEADER          40
+
+#define IMAGE_SCN_TYPE_NO_PAD                0x00000008  // Reserved.
+
+#define IMAGE_SCN_CNT_CODE                   0x00000020  // Section contains code.
+#define IMAGE_SCN_CNT_INITIALIZED_DATA       0x00000040  // Section contains initialized data.
+#define IMAGE_SCN_CNT_UNINITIALIZED_DATA     0x00000080  // Section contains uninitialized data.
+
+#define IMAGE_SCN_LNK_OTHER                  0x00000100  // Reserved.
+#define IMAGE_SCN_LNK_INFO                   0x00000200  // Section contains comments or some other type of information.
+#define IMAGE_SCN_LNK_REMOVE                 0x00000800  // Section contents will not become part of image.
+#define IMAGE_SCN_LNK_COMDAT                 0x00001000  // Section contents comdat.
+
+#define IMAGE_SCN_ALIGN_1Byte               0x00100000  //
+#define IMAGE_SCN_ALIGN_2Byte               0x00200000  //
+#define IMAGE_SCN_ALIGN_4Byte               0x00300000  //
+#define IMAGE_SCN_ALIGN_8Byte               0x00400000  //
+#define IMAGE_SCN_ALIGN_16Byte              0x00500000  // Default alignment if no others are specified.
+#define IMAGE_SCN_ALIGN_32Byte              0x00600000  //
+#define IMAGE_SCN_ALIGN_64Byte              0x00700000  //
+
+#define IMAGE_SCN_MEM_DISCARDABLE            0x02000000  // Section can be discarded.
+#define IMAGE_SCN_MEM_NOT_CACHED             0x04000000  // Section is not cachable.
+#define IMAGE_SCN_MEM_NOT_PAGED              0x08000000  // Section is not pageable.
+#define IMAGE_SCN_MEM_SHARED                 0x10000000  // Section is shareable.
+#define IMAGE_SCN_MEM_EXECUTE                0x20000000  // Section is executable.
+#define IMAGE_SCN_MEM_READ                   0x40000000  // Section is readable.
+#define IMAGE_SCN_MEM_WRITE                  0x80000000  // Section is writeable.
+
+//
+// Symbol format.
+//
+
+typedef struct _IMAGE_SYMBOL {
+    union {
+        TUint8    ShortName[8];
+        struct {
+            TUint32   Short;     // if 0, use LongName
+            TUint32   Long;      // offset into string table
+        } Name;
+        TUint8   *LongName[2];
+    } N;
+    TUint32   Value;
+    TInt16   SectionNumber;
+    TUint16    Type;
+    TUint8    StorageClass;
+    TUint8    NumberOfAuxSymbols;
+} IMAGE_SYMBOL;
+typedef IMAGE_SYMBOL *PIMAGE_SYMBOL;
+
+#define IMAGE_SIZEOF_SYMBOL                  18
+
+//
+// Section values.
+//
+// Symbols have a section number of the section in which they are
+// defined. Otherwise, section numbers have the following meanings:
+//
+
+#define IMAGE_SYM_UNDEFINED           (TInt16)0           // Symbol is undefined or is common.
+#define IMAGE_SYM_ABSOLUTE            (TInt16)-1          // Symbol is an absolute value.
+#define IMAGE_SYM_DEBUG               (TInt16)-2          // Symbol is a special debug item.
+
+//
+// Type (fundamental) values.
+//
+
+#define IMAGE_SYM_TYPE_NULL                  0           // no type.
+#define IMAGE_SYM_TYPE_VOID                  1           //
+#define IMAGE_SYM_TYPE_TUint8                  2           // type character.
+#define IMAGE_SYM_TYPE_TInt16                 3           // type TInt16 integer.
+#define IMAGE_SYM_TYPE_INT                   4           //
+#define IMAGE_SYM_TYPE_TUint32                  5           //
+#define IMAGE_SYM_TYPE_FLOAT                 6           //
+#define IMAGE_SYM_TYPE_DOUBLE                7           //
+#define IMAGE_SYM_TYPE_STRUCT                8           //
+#define IMAGE_SYM_TYPE_UNION                 9           //
+#define IMAGE_SYM_TYPE_ENUM                  10          // enumeration.
+#define IMAGE_SYM_TYPE_MOE                   11          // member of enumeration.
+#define IMAGE_SYM_TYPE_BYTE                  12          //
+#define IMAGE_SYM_TYPE_WORD                  13          //
+#define IMAGE_SYM_TYPE_UINT                  14          //
+#define IMAGE_SYM_TYPE_DWORD                 15          //
+
+//
+// Type (derived) values.
+//
+
+#define IMAGE_SYM_DTYPE_NULL                 0           // no derived type.
+#define IMAGE_SYM_DTYPE_POINTER              1           // pointer.
+#define IMAGE_SYM_DTYPE_FUNCTION             2           // function.
+#define IMAGE_SYM_DTYPE_ARRAY                3           // array.
+
+//
+// Storage classes.
+//
+
+#define IMAGE_SYM_CLASS_END_OF_FUNCTION      (TUint8 )-1
+#define IMAGE_SYM_CLASS_NULL                 0
+#define IMAGE_SYM_CLASS_AUTOMATIC            1
+#define IMAGE_SYM_CLASS_EXTERNAL             2
+#define IMAGE_SYM_CLASS_STATIC               3
+#define IMAGE_SYM_CLASS_REGISTER             4
+#define IMAGE_SYM_CLASS_EXTERNAL_DEF         5
+#define IMAGE_SYM_CLASS_LABEL                6
+#define IMAGE_SYM_CLASS_UNDEFINED_LABEL      7
+#define IMAGE_SYM_CLASS_MEMBER_OF_STRUCT     8
+#define IMAGE_SYM_CLASS_ARGUMENT             9
+#define IMAGE_SYM_CLASS_STRUCT_TAG           10
+#define IMAGE_SYM_CLASS_MEMBER_OF_UNION      11
+#define IMAGE_SYM_CLASS_UNION_TAG            12
+#define IMAGE_SYM_CLASS_TYPE_DEFINITION      13
+#define IMAGE_SYM_CLASS_UNDEFINED_STATIC     14
+#define IMAGE_SYM_CLASS_ENUM_TAG             15
+#define IMAGE_SYM_CLASS_MEMBER_OF_ENUM       16
+#define IMAGE_SYM_CLASS_REGISTER_PARAM       17
+#define IMAGE_SYM_CLASS_BIT_FIELD            18
+#define IMAGE_SYM_CLASS_BLOCK                100
+#define IMAGE_SYM_CLASS_FUNCTION             101
+#define IMAGE_SYM_CLASS_END_OF_STRUCT        102
+#define IMAGE_SYM_CLASS_FILE                 103
+// new
+#define IMAGE_SYM_CLASS_SECTION              104
+#define IMAGE_SYM_CLASS_WEAK_EXTERNAL        105
+
+// type packing constants
+
+#define N_BTMASK                            017
+#define N_TMASK                             060
+#define N_TMASK1                            0300
+#define N_TMASK2                            0360
+#define N_BTSHFT                            4
+#define N_TSHIFT                            2
+
+// MACROS
+
+// Basic Type of  x
+#define BTYPE(x) ((x) & N_BTMASK)
+
+// Is x a pointer?
+#ifndef ISPTR
+#define ISPTR(x) (((x) & N_TMASK) == (IMAGE_SYM_DTYPE_POINTER << N_BTSHFT))
+#endif
+
+// Is x a function?
+#ifndef ISFCN
+#define ISFCN(x) (((x) & N_TMASK) == (IMAGE_SYM_DTYPE_FUNCTION << N_BTSHFT))
+#endif
+
+// Is x an array?
+
+#ifndef ISARY
+#define ISARY(x) (((x) & N_TMASK) == (IMAGE_SYM_DTYPE_ARRAY << N_BTSHFT))
+#endif
+
+// Is x a structure, union, or enumeration TAG?
+#ifndef ISTAG
+#define ISTAG(x) ((x)==IMAGE_SYM_CLASS_STRUCT_TAG || (x)==IMAGE_SYM_CLASS_UNION_TAG || (x)==IMAGE_SYM_CLASS_ENUM_TAG)
+#endif
+
+#ifndef INCREF
+#define INCREF(x) ((((x)&~N_BTMASK)<<N_TSHIFT)|(IMAGE_SYM_DTYPE_POINTER<<N_BTSHFT)|((x)&N_BTMASK))
+#endif
+#ifndef DECREF
+#define DECREF(x) ((((x)>>N_TSHIFT)&~N_BTMASK)|((x)&N_BTMASK))
+#endif
+
+//
+// Auxiliary entry format.
+//
+
+typedef union _IMAGE_AUX_SYMBOL {
+    struct {
+        TUint32    TagIndex;                      // struct, union, or enum tag index
+        union {
+            struct {
+                TUint16    Linenumber;             // declaration line number
+                TUint16    Size;                   // size of struct, union, or enum
+            } LnSz;
+           TUint32    TotalSize;
+        } Misc;
+        union {
+            struct {                            // if ISFCN, tag, or .bb
+                TUint32    PointerToLinenumber;
+                TUint32    PointerToNextFunction;
+            } Function;
+            struct {                            // if ISARY, up to 4 dimen.
+                TUint16     Dimension[4];
+            } Array;
+        } FcnAry;
+        TUint16    TvIndex;                        // tv index
+    } Sym;
+    struct {
+        TUint8    Name[IMAGE_SIZEOF_SYMBOL];
+    } File;
+    struct {
+        TUint32   Length;                         // section length
+        TUint16    NumberOfRelocations;            // number of relocation entries
+        TUint16    NumberOfLinenumbers;            // number of line numbers
+        TUint32   CheckSum;                       // checksum for communal
+        TInt16   Number;                         // section number to associate with
+        TUint8    Selection;                      // communal selection type
+    } Section;
+} IMAGE_AUX_SYMBOL;
+typedef IMAGE_AUX_SYMBOL *PIMAGE_AUX_SYMBOL;
+
+#define IMAGE_SIZEOF_AUX_SYMBOL              18
+
+//
+// Communal selection types.
+//
+
+#define IMAGE_COMDAT_SELECT_NODUPLICATES   1
+#define IMAGE_COMDAT_SELECT_ANY            2
+#define IMAGE_COMDAT_SELECT_SAME_SIZE      3
+#define IMAGE_COMDAT_SELECT_EXACT_MATCH    4
+#define IMAGE_COMDAT_SELECT_ASSOCIATIVE    5
+
+#define IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY 1
+#define IMAGE_WEAK_EXTERN_SEARCH_LIBRARY   2
+#define IMAGE_WEAK_EXTERN_SEARCH_ALIAS     3
+
+
+//
+// Relocation format.
+//
+
+typedef struct _IMAGE_RELOCATION {
+    TUint32   VirtualAddress;
+    TUint32   SymbolTableIndex;
+    TUint16    Type;
+} IMAGE_RELOCATION;
+typedef IMAGE_RELOCATION *PIMAGE_RELOCATION;
+
+#define IMAGE_SIZEOF_RELOCATION              10
+
+//
+// I386 relocation types.
+//
+
+#define IMAGE_REL_I386_ABSOLUTE              0           // Reference is absolute, no relocation is necessary
+#define IMAGE_REL_I386_DIR16                 01          // Direct 16-bit reference to the symbols virtual address
+#define IMAGE_REL_I386_REL16                 02          // PC-relative 16-bit reference to the symbols virtual address
+#define IMAGE_REL_I386_DIR32                 06          // Direct 32-bit reference to the symbols virtual address
+#define IMAGE_REL_I386_DIR32NB               07          // Direct 32-bit reference to the symbols virtual address, base not included
+#define IMAGE_REL_I386_SEG12                 011         // Direct 16-bit reference to the segment-selector bits of a 32-bit virtual address
+#define IMAGE_REL_I386_SECTION               012
+#define IMAGE_REL_I386_SECREL                013
+#define IMAGE_REL_I386_REL32                 024         // PC-relative 32-bit reference to the symbols virtual address
+
+//
+// MIPS relocation types.
+//
+
+#define IMAGE_REL_MIPS_ABSOLUTE              0           // Reference is absolute, no relocation is necessary
+#define IMAGE_REL_MIPS_REFHALF               01
+#define IMAGE_REL_MIPS_REFTUint16               02
+#define IMAGE_REL_MIPS_JMPADDR               03
+#define IMAGE_REL_MIPS_REFHI                 04
+#define IMAGE_REL_MIPS_REFLO                 05
+#define IMAGE_REL_MIPS_GPREL                 06
+#define IMAGE_REL_MIPS_LITERAL               07
+#define IMAGE_REL_MIPS_SECTION               012
+#define IMAGE_REL_MIPS_SECREL                013
+#define IMAGE_REL_MIPS_REFTUint16NB             042
+#define IMAGE_REL_MIPS_PAIR                  045
+
+//
+// Alpha Relocation types.
+//
+
+#define IMAGE_REL_ALPHA_ABSOLUTE             0x0
+#define IMAGE_REL_ALPHA_REFTUint32              0x1
+#define IMAGE_REL_ALPHA_REFQUAD              0x2
+#define IMAGE_REL_ALPHA_GPREL32              0x3
+#define IMAGE_REL_ALPHA_LITERAL              0x4
+#define IMAGE_REL_ALPHA_LITUSE               0x5
+#define IMAGE_REL_ALPHA_GPDISP               0x6
+#define IMAGE_REL_ALPHA_BRADDR               0x7
+#define IMAGE_REL_ALPHA_HINT                 0x8
+#define IMAGE_REL_ALPHA_INLINE_REFTUint32       0x9
+#define IMAGE_REL_ALPHA_REFHI                0xA
+#define IMAGE_REL_ALPHA_REFLO                0xB
+#define IMAGE_REL_ALPHA_PAIR                 0xC
+#define IMAGE_REL_ALPHA_MATCH                0xD
+#define IMAGE_REL_ALPHA_SECTION              0xE
+#define IMAGE_REL_ALPHA_SECREL               0xF
+#define IMAGE_REL_ALPHA_REFTUint32NB            0x10
+
+//
+// IBM PowerPC relocation types.
+//
+
+#define IMAGE_REL_PPC_ABSOLUTE 0x0000  // NOP
+#define IMAGE_REL_PPC_ADDR64   0x0001  // 64-bit address
+#define IMAGE_REL_PPC_ADDR32   0x0002  // 32-bit address
+#define IMAGE_REL_PPC_ADDR24   0x0003  // 26-bit address, shifted left 2 (branch absolute)
+#define IMAGE_REL_PPC_ADDR16   0x0004  // 16-bit address
+#define IMAGE_REL_PPC_ADDR14   0x0005  // 16-bit address, shifted left 2 (load doubleTUint16)
+#define IMAGE_REL_PPC_REL24    0x0006  // 26-bit PC-relative offset, shifted left 2 (branch relative)
+#define IMAGE_REL_PPC_REL14    0x0007  // 16-bit PC-relative offset, shifted left 2 (br cond relative)
+#define IMAGE_REL_PPC_TOCREL16 0x0008  // 16-bit offset from TOC base
+#define IMAGE_REL_PPC_TOCREL14 0x0009  // 16-bit offset from TOC base, shifted left 2 (load doubleTUint16)
+
+#define IMAGE_REL_PPC_ADDR32NB 0x000A  // 32-bit addr w/o image base
+#define IMAGE_REL_PPC_SECREL   0x000B  // va of containing section (as in an image sectionhdr)
+#define IMAGE_REL_PPC_SECTION  0x000C  // sectionheader number
+#define IMAGE_REL_PPC_IFGLUE   0x000D  // substitute TOC restore instruction iff symbol is glue code
+#define IMAGE_REL_PPC_IMGLUE   0x000E  // symbol is glue code; virtual address is TOC restore instruction
+
+#define IMAGE_REL_PPC_TYPEMASK 0x00FF  // mask to isolate above values in IMAGE_RELOCATION.Type
+
+// Flag bits in IMAGE_RELOCATION.TYPE
+
+#define IMAGE_REL_PPC_NEG      0x0100  // subtract reloc value rather than adding it
+#define IMAGE_REL_PPC_BRTAKEN  0x0200  // fix branch prediction bit to predict branch taken
+#define IMAGE_REL_PPC_BRNTAKEN 0x0400  // fix branch prediction bit to predict branch not taken
+#define IMAGE_REL_PPC_TOCDEFN  0x0800  // toc slot defined in file (or, data in toc)
+
+//
+// Based relocation format.
+//
+
+typedef struct _IMAGE_BASE_RELOCATION {
+    TUint32   VirtualAddress;
+    TUint32   SizeOfBlock;
+//  TUint16    TypeOffset[1];
+} IMAGE_BASE_RELOCATION, *PIMAGE_BASE_RELOCATION;
+
+#define IMAGE_SIZEOF_BASE_RELOCATION         8
+
+//
+// Based relocation types.
+//
+
+#define IMAGE_REL_BASED_ABSOLUTE              0
+#define IMAGE_REL_BASED_HIGH                  1
+#define IMAGE_REL_BASED_LOW                   2
+#define IMAGE_REL_BASED_HIGHLOW               3
+#define IMAGE_REL_BASED_HIGHADJ               4
+#define IMAGE_REL_BASED_MIPS_JMPADDR          5
+
+//
+// Line number format.
+//
+
+typedef struct _IMAGE_LINENUMBER {
+    union {
+        TUint32   SymbolTableIndex;               // Symbol table index of function name if Linenumber is 0.
+        TUint32   VirtualAddress;                 // Virtual address of line number.
+    } Type;
+    TUint16    Linenumber;                         // Line number.
+} IMAGE_LINENUMBER;
+typedef IMAGE_LINENUMBER *PIMAGE_LINENUMBER;
+
+#define IMAGE_SIZEOF_LINENUMBER              6
+
+//
+// Archive format.
+//
+
+#define IMAGE_ARCHIVE_START_SIZE             8
+#define IMAGE_ARCHIVE_START                  "!<arch>\n"
+#define IMAGE_ARCHIVE_END                    "`\n"
+#define IMAGE_ARCHIVE_PAD                    "\n"
+#define IMAGE_ARCHIVE_LINKER_MEMBER          "/               "
+#define IMAGE_ARCHIVE_TUint32NAMES_MEMBER       "//              "
+
+typedef struct _IMAGE_ARCHIVE_MEMBER_HEADER {
+    TUint8     Name[16];                          // File member name - `/' terminated.
+    TUint8     Date[12];                          // File member date - decimal.
+    TUint8     UserID[6];                         // File member user id - decimal.
+    TUint8     GroupID[6];                        // File member group id - decimal.
+    TUint8     Mode[8];                           // File member mode - octal.
+    TUint8     Size[10];                          // File member size - decimal.
+    TUint8     EndHeader[2];                      // String to end header.
+} IMAGE_ARCHIVE_MEMBER_HEADER, *PIMAGE_ARCHIVE_MEMBER_HEADER;
+
+#define IMAGE_SIZEOF_ARCHIVE_MEMBER_HDR      60
+
+//
+// DLL support.
+//
+
+//
+// Export Format
+//
+
+typedef struct _IMAGE_EXPORT_DIRECTORY {
+    TUint32   Characteristics;
+    TUint32   TimeDateStamp;
+    TUint16    MajorVersion;
+    TUint16    MinorVersion;
+    TUint32   Name;
+    TUint32   Base;
+    TUint32   NumberOfFunctions;
+    TUint32   NumberOfNames;
+    TUint32  **AddressOfFunctions;
+    TUint32  **AddressOfNames;
+    TUint16   **AddressOfNameOrdinals;
+} IMAGE_EXPORT_DIRECTORY, *PIMAGE_EXPORT_DIRECTORY;
+
+//
+// Import Format
+//
+
+typedef struct _IMAGE_IMPORT_BY_NAME {
+    TUint16    Hint;
+    TUint8    Name[1];
+} IMAGE_IMPORT_BY_NAME, *PIMAGE_IMPORT_BY_NAME;
+
+typedef struct _IMAGE_THUNK_DATA {
+    union {
+        TUint32 *Function;
+        TUint32 Ordinal;
+        PIMAGE_IMPORT_BY_NAME AddressOfData;
+    } u1;
+} IMAGE_THUNK_DATA, *PIMAGE_THUNK_DATA;
+
+#define IMAGE_ORDINAL_FLAG 0x80000000
+#define IMAGE_SNAP_BY_ORDINAL(Ordinal) ((Ordinal & IMAGE_ORDINAL_FLAG) != 0)
+#define IMAGE_ORDINAL(Ordinal) (Ordinal & 0xffff)
+
+typedef struct _IMAGE_IMPORT_DESCRIPTOR {
+    TUint32   Characteristics;
+    TUint32   TimeDateStamp;
+    TUint32   ForwarderChain;
+    TUint32   Name;
+    PIMAGE_THUNK_DATA FirstThunk;
+} IMAGE_IMPORT_DESCRIPTOR, *PIMAGE_IMPORT_DESCRIPTOR;
+
+
+//
+// Debug Format
+//
+
+typedef struct _IMAGE_DEBUG_DIRECTORY {
+    TUint32   characteristics;
+    TUint32   TimeDateStamp;
+    TUint16    MajorVersion;
+    TUint16    MinorVersion;
+    TUint32   Type;
+    TUint32   SizeOfData;
+    TUint32   AddressOfRawData;
+    TUint32   PointerToRawData;
+} IMAGE_DEBUG_DIRECTORY, *PIMAGE_DEBUG_DIRECTORY;
+
+#define IMAGE_DEBUG_TYPE_UNKNOWN          0
+#define IMAGE_DEBUG_TYPE_COFF             1
+#define IMAGE_DEBUG_TYPE_CODEVIEW         2
+#define IMAGE_DEBUG_TYPE_FPO              3
+#define IMAGE_DEBUG_TYPE_MISC             4
+#define IMAGE_DEBUG_TYPE_EXCEPTION        5
+#define IMAGE_DEBUG_TYPE_FIXUP            6
+#define IMAGE_DEBUG_TYPE_OMAP_TO_SRC      7
+#define IMAGE_DEBUG_TYPE_OMAP_FROM_SRC    8
+
+typedef struct _IMAGE_COFF_SYMBOLS_HEADER {
+    TUint32   NumberOfSymbols;
+    TUint32   LvaToFirstSymbol;
+    TUint32   NumberOfLinenumbers;
+    TUint32   LvaToFirstLinenumber;
+    TUint32   RvaToFirstTUint8OfCode;
+    TUint32   RvaToLastTUint8OfCode;
+    TUint32   RvaToFirstTUint8OfData;
+    TUint32   RvaToLastTUint8OfData;
+} IMAGE_COFF_SYMBOLS_HEADER, *PIMAGE_COFF_SYMBOLS_HEADER;
+
+#define FRAME_FPO   0
+#define FRAME_TRAP  1
+#define FRAME_TSS   2
+
+typedef struct _FPO_DATA {
+    TUint32       ulOffStart;             // offset 1st TUint8 of function code
+    TUint32       cbProcSize;             // # TUint8 in function
+    TUint32       cdwLocals;              // # TUint8 in locals/4
+    TUint16        cdwParams;              // # TUint8 in params/4
+    TUint16        cbProlog : 8;           // # TUint8 in prolog
+    TUint16        cbRegs   : 3;           // # regs saved
+    TUint16        fHasSEH  : 1;           // TRUE if SEH in func
+    TUint16        fUseBP   : 1;           // TRUE if EBP has been allocated
+    TUint16        reserved : 1;           // reserved for future use
+    TUint16        cbFrame  : 2;           // frame type
+} FPO_DATA, *PFPO_DATA;
+#define SIZEOF_RFPO_DATA 16
+
+
+#define IMAGE_DEBUG_MISC_EXENAME    1
+
+typedef struct _IMAGE_DEBUG_MISC {
+    TUint32       DataType;               // type of misc data, see defines
+    TUint32       Length;                 // total length of record, rounded to four
+                                        // TUint8 multiple.
+    TBool     Unicode;                // TRUE if data is unicode string
+    TUint8        Reserved[ 3 ];
+    TUint8        Data[ 1 ];              // Actual data
+} IMAGE_DEBUG_MISC, *PIMAGE_DEBUG_MISC;
+
+
+//
+// Function table extracted from MIPS/ALPHA images.  Does not contain
+// information needed only for runtime support.  Just those fields for
+// each entry needed by a debugger.
+//
+
+typedef struct _IMAGE_FUNCTION_ENTRY {
+    TUint32   StartingAddress;
+    TUint32   EndingAddress;
+    TUint32   EndOfPrologue;
+} IMAGE_FUNCTION_ENTRY, *PIMAGE_FUNCTION_ENTRY;
+
+//
+// Debugging information can be stripped from an image file and placed
+// in a separate .DBG file, whose file name part is the same as the
+// image file name part (e.g. symbols for CMD.EXE could be stripped
+// and placed in CMD.DBG).  This is indicated by the IMAGE_FILE_DEBUG_STRIPPED
+// flag in the characteristics field of the file header.  The beginning of
+// the .DBG file contains the following structure which captures certain
+// information from the image file.  This allows a debug to proceed even if
+// the original image file is not accessable.  This header is followed by
+// zero of more IMAGE_SECTION_HEADER structures, followed by zero or more
+// IMAGE_DEBUG_DIRECTORY structures.  The latter structures and those in
+// the image file contain file offsets relative to the beginning of the
+// .DBG file.
+//
+// If symbols have been stripped from an image, the IMAGE_DEBUG_MISC structure
+// is left in the image file, but not mapped.  This allows a debugger to
+// compute the name of the .DBG file, from the name of the image in the
+// IMAGE_DEBUG_MISC structure.
+//
+
+typedef struct _IMAGE_SEPARATE_DEBUG_HEADER {
+    TUint16        Signature;
+    TUint16        Flags;
+    TUint16        Machine;
+    TUint16        characteristics;
+    TUint32       TimeDateStamp;
+    TUint32       CheckSum;
+    TUint32       ImageBase;
+    TUint32       SizeOfImage;
+    TUint32       NumberOfSections;
+    TUint32       ExportedNamesSize;
+    TUint32       DebugDirectorySize;
+    TUint32       Reserved[ 3 ];          // Note: reserved[0] is actually the section alignment
+} IMAGE_SEPARATE_DEBUG_HEADER, *PIMAGE_SEPARATE_DEBUG_HEADER;
+
+#define IMAGE_SEPARATE_DEBUG_SIGNATURE 0x4944
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/inc/pe_file.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,181 @@
+// Copyright (c) 1995-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#if !defined(__PE_FILE_H__)
+#define __PE_FILE_H__
+#include <e32rom.h>
+#include "e32image.h"
+#include "pe_defs.h"
+//
+const TInt KTextSection=0;
+const TInt KConstSection=1;
+const TInt KExportSection=2;
+const TInt KDataSection=3;
+const TInt KBssSection=4;
+const TInt KImportSection=5;
+const TInt KCrtSection=6;
+const TInt KRelocSection=7;
+const TInt KNumberOfSections=8;
+//
+enum TImportStat {EImpError, EImpSuccess, EImpDone};
+//
+class PEFile
+	{
+public:
+	PEFile();
+	~PEFile();
+	TBool Init(const TText * const aFileName);
+	void Close();
+	//
+	TImportStat GetNextImport(TText * &aDllName, TUint16 &aOrdinal, TUint32 * &aThunkPtr);
+	TUint32 GetFixUp(const TUint16 aOrdinal);
+// 	TText *GetImageName();
+//	TUint8 *GetExportName(const TUint16 aOrdinal);
+//	TUint32 WriteDllRefTable(PEFile aPeArray[], TUint aMaxFiles);
+	void RelocateExportTable();
+	TUint GetNumberOfExportedFunctions();
+	TUint GetOrdinalBase();
+	TBool ExportSectionExists();
+	TBool ImportSectionExists();
+	TUint RoundToSectionSize(TUint aSize);
+	void DumpPeHeaders();
+	//
+	TInt Normalise();
+	void GetRelocs(TUint *aReloc, TUint *aRelocSection, TInt aNumberOfRelocs);
+	TInt ReadSectionHeaders();
+	TInt ReadData();
+	TInt ReadExportDirectory();
+	char *ReadSectionData(PIMAGE_SECTION_HEADER aHeader);
+	TInt NumberOfImports() const;
+	TInt NumberOfImportDlls() const;
+	TInt NumberOfExports() const;
+	TInt NumberOfRelocs();
+public:
+	static TInt CmpSectionName(PIMAGE_SECTION_HEADER apSectionHeader, char *aName);
+	TInt VirtualAddressInSection(TUint aVA, PIMAGE_SECTION_HEADER aHeader);
+	TUint DistanceFromSection(TUint aVA, PIMAGE_SECTION_HEADER aHeader);
+	TInt FindSectionByVa(TUint aVa, TUint aTryToBeClever=0);
+	static TInt HasInitialisedData(PIMAGE_SECTION_HEADER aHeader);
+	
+//	static TBool DoFixUps(PEFile aPeArray[], TUint aMaxFiles);
+//	static TBool FindByName(PEFile aPeArray[], TUint aMaxFiles,const TText * const aDllName, PEFile * &aExportPEFile);
+//	static void WriteDllRefTables(PEFile aPeArray[], TUint aMaxFiles);
+//	static void RelocateExportTables(PEFile aPeArray[], TUint aMaxFiles);
+private:
+	TBool IsInCode(TUint32 anAddr);
+	TBool IsInData(TUint32 anAddr);
+	TBool IsInDataReloc(TUint32 anAddr);
+	TBool IsInExport(TUint32 anAddr);
+	TBool IsInImport(TUint32 anAddr);
+	TBool IsValidDOSHeader(PIMAGE_DOS_HEADER pDOSHeader);
+	TBool IsValidNTHeader(PIMAGE_NT_HEADERS pNTHeader);
+	TBool IsValidFileHeader(PIMAGE_FILE_HEADER pFileHeader);
+	void DumpNextSectionInFile(PIMAGE_SECTION_HEADER pSectionHeader);
+	void CopySectionData(TAny *source, TAny *dest, TUint32 fileLength, TUint32 memLength);
+	TBool ProcessRelocData(TAny *relocData,TInt dataSize);
+	PEFile(const PEFile&);
+	const PEFile & operator = (const PEFile&);
+public:
+	static TUint32 iRomMemBase; // where the ROM is being loaded to
+	static TUint32 iRomLinearBase; // where the ROM will run
+	TUint32 iMemBase; // where this file is being loaded to
+	TUint32 iEntryPoint;
+	TUint32 iImageSize;
+	TUint32 iCodeSize;
+	TUint32 iDataSize;
+	TUint32 iHeapReservedSize;
+	TUint32 iHeapCommittedSize;
+	TUint32 iStackReservedSize;
+	TUint32 iStackCommittedSize;
+	TUint32 iBssSize;
+	TUint32 iBssOffset;
+	TUint32 iSectionAlign;
+	TUint32 iExpDirectoryOffset;
+	TUint32 iDataOffset;
+	TBool	iImageIsDll;
+private:
+	IMAGE_NT_HEADERS *iHeader;
+ 	PIMAGE_EXPORT_DIRECTORY	iExpDirectory;
+	PIMAGE_IMPORT_DESCRIPTOR iImpDescriptor; 
+	TText *iFileName;
+	TInt32 iFileHandle;
+	TUint32 iLinkedBase;
+	TUint32 iStartOfHeaders; // whether DOS header or not
+	TUint32 iSizeOfHeaders; // Up to and including section headers
+	TUint32 iNumSections;
+	TUint32 iRomRunAddr; // where the code will run & rdata be accessed
+	TUint32 iRamRunAddr; // and where the data & bss will be when it does
+	TUint32 iRomDelta;
+	TUint32 iRamDelta;
+	TBool iHadDataSection;
+
+// stuff for relocating image successfully in 2 parts
+	TUint32 iBssSectionLinkedAddr;
+	TUint32 iBssSectionAddr;
+	TUint32 iBssSectionSize;
+	TUint32 iDataSectionLinkedAddr;
+	TUint32 iDataSectionAddr;
+	TUint32 iDataSectionSize;
+	TUint32 iCodeSectionAddr;
+	TUint32 iCodeSectionSize;
+	TUint32 iRDataSectionAddr;
+	TUint32 iRDataSectionSize;
+	TUint32 iCRTSectionAddr;
+	TUint32 iCRTSectionSize;
+	TUint32 iExportDataDir;
+
+// stuff for the pe->e32image translator
+	PIMAGE_SECTION_HEADER iSectionHeader[KNumberOfSections];
+	char *iSectionData[KNumberOfSections];
+	TInt iExportDirSize;
+	TInt iCpu;
+	friend class E32ImageFile;
+	friend class E32ImageFile_PE;
+	};
+
+class E32ImageFile_PE : public E32ImageFile
+	{
+public:
+	E32ImageFile_PE();
+	virtual ~E32ImageFile_PE();
+	virtual TBool Translate(const char* aFileName, TUint aDataBase, TBool aAllowDllData, TBool /*aSymLkupEnabled*/);
+	TBool Translate(PEFile &aPEFile);
+	TUint ImportAddressTableOffset();
+	TUint ConstOffset();
+private:
+	TInt DoCodeHeader(PEFile &aPeFile);
+	TInt DoDataHeader(PEFile &aPeFile, TUint aDataBase);
+	TInt CopyCode(char *aPtr, PEFile &aPeFile);
+	TInt CopyData(char *aPtr, PEFile &aPeFile);
+	TInt CopyImportAddrTable(char *aPtr, PEFile &aPeFile);
+	char *CreateImportSection(const PEFile &aPeFile, TInt &aSize);
+	void CreateExportSection(char *aPtr, PEFile &aPeFile);
+
+	void CreateExportDirectory(char *aPtr, PEFile &aPeFile);
+	void FixExportDirectory(TUint *aExportDir, PEFile &aPeFile);
+	void FixRelocs(PEFile &aPeFile, TUint *relocation, TUint *relocsection, TInt aNumberOfRelocs);
+	char *CreateCodeRelocs(TUint *reloc, TUint *relocsection, TInt nrelocs, TInt &aSize);
+	char *CreateDataRelocs(TUint *reloc, TUint *relocsection, TInt nrelocs, TInt &aSize);
+
+	TUint FixAddress(PEFile &aPeFile, TUint va);
+	TUint FixImportThunk(PEFile &aPeFile, TUint va);
+private:
+	PIMAGE_SECTION_HEADER iPeHeader[KNumberOfSections];
+	char *iPeData[KNumberOfSections];
+	TUint iConstOffset;
+	TUint iCrtOffset;
+	};
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/inc/seclib.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,41 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// e32tools/inc/seclib.h
+// Get the capabilities of an emulator / e32image.
+// Image security information structure.
+// 
+//
+
+/**
+ @internalTechnology
+ @prototype
+*/
+struct SBinarySecurityInfo
+	{
+	TUint32			iSecureId;
+	TUint32			iVendorId;
+	TUint8			iCapabilities[KCapabilitySetMaxSize];
+	TBool			iE32Image;
+	};
+
+/**
+ * Extracts security information from an image.
+ *
+ * @internalTechnology
+ * @prototype
+ */
+TInt GetSecurityInfo(const char* aFileName, SBinarySecurityInfo& aInfo);
+#ifndef __LINUX__
+TInt GetSecurityInfo(const wchar_t* aFileName, SBinarySecurityInfo& aInfo);
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/pe_dump/pe_dump.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,447 @@
+// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of the License "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#include <e32def.h>
+#include <e32def_private.h>
+#include <e32err.h>
+
+#include "h_ver.h"
+#include "pe_defs.h"
+#include <sys\stat.h>
+
+#if defined(__MSVCDOTNET__) || defined (__TOOLS2__)
+ #include <iostream>
+ #include <iomanip>
+ #include <fstream>
+ #include <string>
+ using namespace std;
+#else //__MSVCDOTNET__
+ #include <iostream.h>
+ #include <iomanip.h>
+ #include <fstream.h>
+ #include <string.h>
+#endif //__MSVCDOTNET__
+
+#include <stdio.h>
+
+const int KDiffIdentical=0;
+const int KDiffDifferent=2;
+
+class PeFile
+	{
+public:
+	PeFile();
+	~PeFile();
+	int Open(char *aFileName);
+	void Close();
+	PIMAGE_DOS_HEADER DosHeader();
+	PIMAGE_NT_HEADERS Headers();
+	PIMAGE_SECTION_HEADER SectionHeaders();
+	char *LoadSection(PIMAGE_SECTION_HEADER aSectionHeader);
+	int NumberOfSections();
+	char *LoadExtraData(int aOffsetToExtraData, TUint aFileSize);
+	
+	int Errno();  // Should be invoked only if previous call of PeFile's 
+	              // member function returns incorrectly
+	int Errno(int aErrno);  // Assign error number for special purpose.
+public:
+	fstream iFile;
+	PIMAGE_DOS_HEADER iDosHeader;
+	PIMAGE_NT_HEADERS iHeaders;
+	PIMAGE_SECTION_HEADER iSectionHeaders;
+private:
+	int errno;
+	};
+
+PeFile::PeFile()
+	: iDosHeader(NULL), iHeaders(NULL), iSectionHeaders(NULL), errno(KErrNone)
+	{}
+
+PeFile::~PeFile()
+	{
+	delete iDosHeader;
+	delete iHeaders;
+	delete [] iSectionHeaders;
+	}
+
+int PeFile::Open(char *aFileName)
+	{
+#if defined(__MSVCDOTNET__) || defined(__TOOLS2__)
+	iFile.open(aFileName, ios::in | ios::binary);
+#else //!__MSVCDOTNET__
+	iFile.open(aFileName, ios::in | ios::binary | ios::nocreate);
+#endif //__MSVCDOTNET__
+	if (!iFile.is_open()) {
+		this->errno = KErrNotFound;
+		return KErrNotFound;
+	}
+	return KErrNone;
+	}
+
+void PeFile::Close()
+	{
+	iFile.close();
+	}
+
+
+PIMAGE_DOS_HEADER PeFile::DosHeader()
+	{
+	if (iDosHeader)
+		return iDosHeader;
+
+	iDosHeader=new IMAGE_DOS_HEADER;
+	if (!iDosHeader) {
+		this->errno = KErrNoMemory;
+		return NULL;
+	}
+
+	memset(iDosHeader, 0, sizeof(IMAGE_DOS_HEADER));
+
+	iFile.seekg(0);
+	iFile.read((char *)iDosHeader, sizeof(IMAGE_DOS_HEADER));
+	if (iDosHeader->e_magic!=IMAGE_DOS_SIGNATURE) {
+		this->errno = KErrCorrupt;
+		return NULL;
+	}
+	return iDosHeader;
+	}
+
+PIMAGE_NT_HEADERS PeFile::Headers()
+	{
+	if (iHeaders)
+		return iHeaders;
+	PIMAGE_DOS_HEADER d=DosHeader();
+	if (d==NULL)
+		return NULL;
+
+	iHeaders=new IMAGE_NT_HEADERS;
+	if (!iHeaders) {
+		this->errno = KErrNoMemory;
+		return NULL;
+	}
+
+	memset(iHeaders, 0, sizeof(IMAGE_NT_HEADERS));
+
+	iFile.seekg(d->e_lfanew);
+	if (iFile.eof()) {
+		this->errno = KErrCorrupt;  // File size is too small.
+		return NULL;
+	}
+
+	iFile.read((char *)iHeaders, sizeof(IMAGE_NT_HEADERS));
+	return iHeaders;
+	}
+
+PIMAGE_SECTION_HEADER PeFile::SectionHeaders()
+	{
+	if (iSectionHeaders)
+		return iSectionHeaders;
+	PIMAGE_NT_HEADERS h=Headers();
+	if (h==NULL) {
+		this->errno = KErrNoMemory;
+		return NULL;
+	}
+
+	int numSec;
+	if ((numSec = NumberOfSections()) < 0) {
+		return NULL;
+	}
+	else {
+		iSectionHeaders=new IMAGE_SECTION_HEADER [numSec];
+		if (!iSectionHeaders) {
+			this->errno = KErrNoMemory;
+			return NULL;
+		}
+	}
+
+	iFile.seekg(DosHeader()->e_lfanew+sizeof(IMAGE_NT_HEADERS));
+	int i=sizeof(IMAGE_SECTION_HEADER)*numSec;
+	iFile.read((char *)iSectionHeaders, i);
+	if (iFile.gcount() != i) {  // The size of header is incorrect.
+		printf("Error: Cannot load section headers in offset: 0x%x \n", 
+			(int) (DosHeader()->e_lfanew + sizeof(IMAGE_NT_HEADERS)));
+		this->errno = KErrCorrupt;
+		return NULL;
+	}
+
+	return iSectionHeaders;
+	}
+
+int PeFile::NumberOfSections()
+	{
+	if (Headers()) 
+		return iHeaders->FileHeader.NumberOfSections;
+	else
+		return -1;
+	}
+
+char *PeFile::LoadSection(PIMAGE_SECTION_HEADER h)
+	{
+	char *section=new char [h->SizeOfRawData];
+	if (section==NULL){
+		this->errno = KErrNoMemory;
+		return NULL;
+	}
+
+	try
+	{
+	memset(section, 0, h->SizeOfRawData);
+	}
+	catch(...)
+	{
+	}
+
+	iFile.seekg(h->PointerToRawData);
+	iFile.read(section, h->SizeOfRawData);
+	
+	// Guarantee we have loaded the section correctly.
+	unsigned int actNum = iFile.gcount();
+	if (actNum != h->SizeOfRawData) { // The size of section is incorrect.
+		printf("Error: Cannot load section in offset: 0x%x \n", 
+			(int)h->PointerToRawData);
+		this->errno = KErrCorrupt;
+		return NULL;
+	}
+
+	return section;
+	}
+
+char* PeFile::LoadExtraData(int aOffset, TUint aFileSize)
+	{
+	TUint sizeOfExtraData = 0;
+	if(aFileSize >= (TUint)aOffset)
+		sizeOfExtraData=aFileSize-aOffset;
+	if(sizeOfExtraData>0){
+		char* buffer=new char [sizeOfExtraData];
+		if (!buffer) {
+			this->errno = KErrNoMemory;
+			return NULL;
+		}
+
+		memset(buffer, 0, sizeOfExtraData);
+		iFile.seekg(aOffset);
+		iFile.read(buffer, sizeOfExtraData); // Should be OK if the file size is correct.
+
+		// Guarantee we have loaded the data correctly.
+		unsigned int actNum = iFile.gcount();
+		if (actNum != sizeOfExtraData){ // Shouldn't be here is the file size is correct.
+			printf("Error: Cannot load extra section in offset: 0x%x \n", aOffset);
+			this->errno = KErrCorrupt;
+			return NULL;
+		}
+
+		return buffer;
+	}
+	else {
+		this->errno = KErrCorrupt;
+		return NULL;
+	}
+		
+}
+
+int PeFile::Errno() {
+	return this->errno;
+}
+
+int PeFile::Errno(int aErrno) {
+	return (this->errno = aErrno);
+}
+
+
+void dump(TUint *aData, TInt aLength)
+	{
+	TUint *p=aData;
+	TInt i=0;
+	char line[256];
+	char *cp=(char*)aData;
+	TInt j=0;
+	memset(line,' ',sizeof(line));
+	while (i<aLength)
+		{
+		TInt ccount=0;
+		char* linep=&line[8*9+2];
+		printf("%06x:", i);
+		while (i<aLength && ccount<8)
+			{
+			printf(" %08x", *p++);
+			i+=4;
+			ccount++;
+			for (j=0; j<4; j++)
+				{
+				char c=*cp++;
+				if (c<32 || c>127)
+					{
+					c = '.';
+					}
+				*linep++ = c;
+				}
+			}
+		*linep='\0';
+		printf("%s\n", line+(ccount*9));
+		}
+	}
+
+int pecmp(char *aFileName)
+	{
+
+	PeFile peFile;
+	if (peFile.Open(aFileName)!=KErrNone)
+		{
+		cout << "Cannot open file '"<<aFileName<<"' for input.\n";
+		return KErrNotFound;
+		}
+
+	PIMAGE_DOS_HEADER dosHeader=peFile.DosHeader();
+	if (dosHeader==NULL)
+	{
+		switch(peFile.Errno()){
+		case KErrNoMemory:
+			cout << "Error:  Out of memory\n";
+			return KErrNoMemory;
+		default:
+			cout << aFileName << " does not have a valid DOS header.\n";
+		}
+		return KErrGeneral;
+	}
+
+	PIMAGE_NT_HEADERS headers=peFile.Headers();
+	if (headers==NULL)
+	{
+		switch(peFile.Errno()){
+		case KErrNoMemory:
+			cout << "Error:  Out of memory\n";
+			return KErrNoMemory;
+		default:
+			cout << aFileName << " is too small to be a PE file.\n";
+		}
+		return KErrGeneral;
+	}
+
+	headers->FileHeader.TimeDateStamp=0;
+	headers->OptionalHeader.CheckSum = 0; // Fix for TOOLS2 
+
+	printf("NT Headers:\n");
+	dump((TUint*)headers, sizeof(IMAGE_NT_HEADERS));
+
+	int numberofsections=peFile.NumberOfSections();
+	if (numberofsections==-1)
+		{
+		cout << "Not a valid PE file.\n";
+		return KErrGeneral;
+		}
+
+	PIMAGE_SECTION_HEADER sectionheaders=peFile.SectionHeaders();
+
+	printf("Section Headers:\n");
+	dump((TUint*)sectionheaders, sizeof(IMAGE_SECTION_HEADER)*peFile.NumberOfSections());
+
+	TUint exportDirVa=headers->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT].VirtualAddress;
+	TUint debugDirVa=headers->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_DEBUG].VirtualAddress;
+	int SizeOfHeaders=headers->OptionalHeader.SizeOfHeaders;
+	int offsetToExtraData=0;
+	int i;
+	for (i=0; i<numberofsections; i++)
+		{
+		PIMAGE_SECTION_HEADER h=&sectionheaders[i];
+		char *section=peFile.LoadSection(h);
+		if (section==NULL)
+		{
+			switch(peFile.Errno()){
+			case KErrNoMemory:
+				cout << "Error:  Out of memory\n";
+				return KErrNoMemory;
+			default:
+				cout << "Not a valid PE file.\n";
+			}
+			return KErrGeneral;
+		}
+		char name[9];
+		for (int j=0; j<9; j++)
+			name[j]=h->Name[j];
+		name[8]=0;
+
+		if (debugDirVa>=h->VirtualAddress && debugDirVa<h->VirtualAddress+h->SizeOfRawData)
+			{
+			// Debug data in this section
+			PIMAGE_DEBUG_DIRECTORY dd=(PIMAGE_DEBUG_DIRECTORY)(section+debugDirVa-h->VirtualAddress);
+			TInt debugDirSize=headers->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_DEBUG].Size;
+			while (debugDirSize>0)
+				{
+				dd->TimeDateStamp=0;
+				// size & location in file of debug data is not significant
+				// unless it's also mapped (AddressOfRawData != 0). If that's
+				// true, then the data will be visible in one of the sections
+				// anyway...
+				dd->SizeOfData=0;
+				dd->PointerToRawData=0;
+				dd++;
+				debugDirSize-=sizeof(IMAGE_DEBUG_DIRECTORY);
+				}
+			}
+		if (exportDirVa>=h->VirtualAddress && exportDirVa<h->VirtualAddress+h->SizeOfRawData)
+			{
+			// Export directory in this section
+			PIMAGE_EXPORT_DIRECTORY ed=(PIMAGE_EXPORT_DIRECTORY)(section+exportDirVa-h->VirtualAddress);
+			ed->TimeDateStamp=0;
+			}
+		if (strcmp(".rsrc",name)==0)
+			{
+			int *t=(int *)(section+4);
+			*t=0;
+			}
+
+		offsetToExtraData=offsetToExtraData+h->SizeOfRawData;
+		printf("Raw data:\n");
+		dump((TUint*)section, h->SizeOfRawData);
+
+		delete section;
+		}
+	struct stat buf;
+	stat (aFileName,&buf);
+	TUint fileSize=buf.st_size;
+	offsetToExtraData=offsetToExtraData+SizeOfHeaders;
+	TUint sizeOfExtraData = 0;
+	if(buf.st_size >= offsetToExtraData)
+		sizeOfExtraData=buf.st_size-offsetToExtraData;
+	char* extraData=peFile.LoadExtraData(offsetToExtraData, fileSize);
+	if(sizeOfExtraData>0){
+		char* nsisSign;
+		nsisSign=extraData+8;
+		if(strncmp (nsisSign,"NullsoftInst",12) == 0){
+			printf("\n\n Extra Data:\n");
+			dump((TUint*)extraData, sizeOfExtraData);
+		}
+	}
+	peFile.Close();
+	return KErrNone;
+	}
+
+int main(int argc, char *argv[])
+	{
+	int r=KErrArgument;
+	if (argc==2)
+		{
+		r=pecmp(argv[1]);
+		}
+	if (r==KErrArgument)
+		{
+		cout << "\nPE_DUMP - PE file dumper V";
+		cout << MajorVersion << '.' << setfill('0') << setw(2) << MinorVersion;
+		cout << '(' << setw(3) << Build << ")\n";
+		cout << Copyright;
+		cout << "Syntax: "<<argv[0]<<" pefile\n";
+		}
+	return r;
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/pe_dump/pe_dump.mmp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,24 @@
+// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+TARGET			pe_dump.exe
+TARGETTYPE		exe
+SOURCE			pe_dump.cpp
+
+USERINCLUDE ../inc
+OS_LAYER_SYSTEMINCLUDE_SYMBIAN
+
+OPTION MSVC /GX
+VENDORID 0x70000001
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/pediff/pediff.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,388 @@
+// Copyright (c) 1996-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of the License "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#include "e32image.h"
+
+#include "h_ver.h"
+#include "h_utl.h"
+#include "pe_defs.h"
+
+#ifdef __MSVCDOTNET__
+ #include <fstream>
+ #include <iomanip>
+ #include <string>
+ using namespace std;
+#else //!__MSVCDOTNET__
+ #include <fstream.h>
+ #include <iomanip.h>
+ #include <string.h>
+#endif //__MSVCDOTNET__
+
+const int KDiffIdentical=0;
+const int KDiffDifferent=2;
+
+class PeFile
+	{
+public:
+	PeFile();
+	~PeFile();
+	int Open(char *aFileName);
+	void Close();
+	PIMAGE_DOS_HEADER DosHeader();
+	PIMAGE_NT_HEADERS Headers();
+	PIMAGE_SECTION_HEADER SectionHeaders();
+	char *LoadSection(PIMAGE_SECTION_HEADER aSectionHeader);
+	int NumberOfSections();
+public:
+	fstream iFile;
+	PIMAGE_DOS_HEADER iDosHeader;
+	PIMAGE_NT_HEADERS iHeaders;
+	PIMAGE_SECTION_HEADER iSectionHeaders;
+	};
+
+PeFile::PeFile()
+	: iDosHeader(NULL), iHeaders(NULL), iSectionHeaders(NULL)
+	{}
+
+PeFile::~PeFile()
+	{
+	
+	delete iDosHeader;
+	delete iHeaders;
+	delete [] iSectionHeaders;
+	}
+
+int PeFile::Open(char *aFileName)
+	{
+	iFile.open(aFileName, ios::in | ios::binary);
+	if (!iFile.is_open())
+		return KErrNotFound;
+	return KErrNone;
+	}
+
+void PeFile::Close()
+	{
+
+	iFile.close();
+	}
+
+
+PIMAGE_DOS_HEADER PeFile::DosHeader()
+	{
+	if (iDosHeader)
+		return iDosHeader;
+	iDosHeader=new IMAGE_DOS_HEADER;
+	iFile.seekg(0);
+	iFile.read((char *)iDosHeader, sizeof(IMAGE_DOS_HEADER));
+	if (iDosHeader->e_magic!=IMAGE_DOS_SIGNATURE)
+		return NULL;
+	return iDosHeader;
+	}
+
+PIMAGE_NT_HEADERS PeFile::Headers()
+	{
+	if (iHeaders)
+		return iHeaders;
+	PIMAGE_DOS_HEADER d=DosHeader();
+	if (d==NULL)
+		return NULL;
+	iHeaders=new IMAGE_NT_HEADERS;
+	iFile.seekg(d->e_lfanew);
+	if (iFile.eof())
+		return NULL;
+	iFile.read((char *)iHeaders, sizeof(IMAGE_NT_HEADERS));
+	return iHeaders;
+	}
+
+PIMAGE_SECTION_HEADER PeFile::SectionHeaders()
+	{
+	if (iSectionHeaders)
+		return iSectionHeaders;
+	PIMAGE_NT_HEADERS h=Headers();
+	if (h==NULL)
+		return NULL;
+	iSectionHeaders=new IMAGE_SECTION_HEADER [NumberOfSections()];
+	iFile.seekg(DosHeader()->e_lfanew+sizeof(IMAGE_NT_HEADERS));
+	int i=sizeof(IMAGE_SECTION_HEADER)*NumberOfSections();
+	iFile.read((char *)iSectionHeaders, i);
+	return iSectionHeaders;
+	}
+
+int PeFile::NumberOfSections()
+	{
+	if (Headers())
+		return iHeaders->FileHeader.NumberOfSections;
+	else
+		return -1;
+	}
+
+char *PeFile::LoadSection(PIMAGE_SECTION_HEADER h)
+	{
+	char *section=new char [h->SizeOfRawData];
+	memset(section, 0, h->SizeOfRawData);
+	if (section==NULL)
+		return NULL;
+	iFile.seekg(h->PointerToRawData);
+	iFile.read(section, h->SizeOfRawData);
+	return section;
+	}
+
+int pecmp(char *aFileName1, char *aFileName2)
+	{
+
+	PeFile file1, file2;
+	if (file1.Open(aFileName1)!=KErrNone)
+		{
+		cout << "Cannot open file '"<<aFileName1<<"' for input.\n";
+		return KErrNotFound;
+		}
+	if (file2.Open(aFileName2)!=KErrNone)
+		{
+		cout << "Cannot open file '"<<aFileName2<<"' for input.\n";
+		return KErrNotFound;
+		}
+
+	PIMAGE_DOS_HEADER dosheader1=file1.DosHeader();
+	if (dosheader1==NULL)
+		{
+		cout << aFileName1 << " does not have a valid DOS header.\n";
+		return KErrGeneral;
+		}
+	PIMAGE_DOS_HEADER dosheader2=file2.DosHeader();
+	if (dosheader2==NULL)
+		{
+		cout << aFileName2 << " does not have a valid DOS header.\n";
+		return KErrGeneral;
+		}
+
+	PIMAGE_NT_HEADERS headers1=file1.Headers();
+	if (headers1==NULL)
+		{
+		cout << aFileName1 << " is too small to be a PE file.\n";
+		return KErrGeneral;
+		}
+	PIMAGE_NT_HEADERS headers2=file2.Headers();
+	if (headers2==NULL)
+		{
+		cout << aFileName2 << " is too small to be a PE file.\n";
+		return KErrGeneral;
+		}
+
+	int sameTime=(headers1->FileHeader.TimeDateStamp==headers2->FileHeader.TimeDateStamp);
+	headers1->FileHeader.TimeDateStamp=0;
+	headers2->FileHeader.TimeDateStamp=0;
+
+	int r=memcmp(headers1, headers2, sizeof(IMAGE_NT_HEADERS));
+	if (r)
+		{
+		cout << "PE file headers are different.\n";
+		return KDiffDifferent;
+		}
+
+	PIMAGE_SECTION_HEADER sectionheaders1=file1.SectionHeaders();
+	PIMAGE_SECTION_HEADER sectionheaders2=file2.SectionHeaders();
+	// file one and two have the same number of sections
+	int numberofsections=file1.NumberOfSections();
+	if (numberofsections==-1)
+		{
+		cout << "Not a valid PE file.\n";
+		return KErrGeneral;
+		}
+	r=memcmp(sectionheaders1, sectionheaders2, sizeof(IMAGE_SECTION_HEADER)*file1.NumberOfSections());
+	if (r)
+		{
+		cout << "The files are different:  PE section headers are different.\n";
+		return KDiffDifferent;
+		}
+
+	TUint exportDirVa=headers1->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT].VirtualAddress;
+	TUint debugDirVa=headers1->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_DEBUG].VirtualAddress;
+
+	int i;
+	for (i=0; i<numberofsections; i++)
+		{
+		PIMAGE_SECTION_HEADER h=&sectionheaders1[i];
+		char *section1=file1.LoadSection(h);
+		char *section2=file2.LoadSection(h);
+		if ((section1==NULL) || (section2==NULL))
+			{
+			cout << "Error:  Out of memory\n";
+			return KErrNoMemory;
+			}
+		char name[9];
+		for (int j=0; j<9; j++)
+			name[j]=h->Name[j];
+		name[8]=0;
+
+		if (debugDirVa>=h->VirtualAddress && debugDirVa<h->VirtualAddress+h->SizeOfRawData)
+			{
+			// Debug data in this section
+			PIMAGE_DEBUG_DIRECTORY dd1=(PIMAGE_DEBUG_DIRECTORY)(section1+debugDirVa-h->VirtualAddress);
+			PIMAGE_DEBUG_DIRECTORY dd2=(PIMAGE_DEBUG_DIRECTORY)(section2+debugDirVa-h->VirtualAddress);
+			TInt debugDirSize=headers1->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_DEBUG].Size;
+			while (debugDirSize>0)
+				{
+				if (sameTime)
+					sameTime=(dd1->TimeDateStamp==dd2->TimeDateStamp);
+				dd1->TimeDateStamp=0;
+				dd2->TimeDateStamp=0;
+				// size & location in file of debug data is not significant
+				// unless it's also mapped (AddressOfRawData != 0). If that's
+				// true, then the data will be visible in one of the sections
+				// anyway...
+				dd1->SizeOfData=0;
+				dd2->SizeOfData=0;
+				dd1->PointerToRawData=0;
+				dd2->PointerToRawData=0;
+				dd1++;
+				dd2++;
+				debugDirSize-=sizeof(IMAGE_DEBUG_DIRECTORY);
+				}
+			}
+		if (exportDirVa>=h->VirtualAddress && exportDirVa<h->VirtualAddress+h->SizeOfRawData)
+			{
+			// Export directory in this section
+			PIMAGE_EXPORT_DIRECTORY ed1=(PIMAGE_EXPORT_DIRECTORY)(section1+exportDirVa-h->VirtualAddress);
+			PIMAGE_EXPORT_DIRECTORY ed2=(PIMAGE_EXPORT_DIRECTORY)(section2+exportDirVa-h->VirtualAddress);
+			if (sameTime)
+				sameTime=(ed1->TimeDateStamp==ed2->TimeDateStamp);
+			ed1->TimeDateStamp=0;
+			ed2->TimeDateStamp=0;
+			}
+		if (strcmp(".rsrc",name)==0)
+			{
+			int *t1=(int *)(section1+4);
+			int *t2=(int *)(section2+4);
+			if (sameTime)
+				sameTime=(*t1==*t2);
+			*t1=0;
+			*t2=0;
+			}
+
+		r=memcmp(section1, section2, h->SizeOfRawData);
+		if (r)
+			{
+			cout << name << " sections are different.\n";
+			return KDiffDifferent;
+			}
+		delete section1;
+		delete section2;
+		}
+
+	if (sameTime)
+		cout << "PE files are identical (time/data stamps also identical).\n";
+	else
+		cout << "PE files are identical except for time/date stamps.\n";
+	file1.Close();
+	file2.Close();
+	return KDiffIdentical;
+	}
+
+int e32cmp(char *aFileName1, char *aFileName2)
+	{
+	char* f1 = NormaliseFileName(aFileName1);
+	char* f2 = NormaliseFileName(aFileName2);
+	
+	E32ImageFile e32image1;
+	E32ImageFile e32image2;
+	TInt r = e32image1.Open(f1);
+	if (r != KErrNone)
+		{
+		if (r<0)
+			fprintf(stderr, "%s is not a valid E32Image file (error %d)\n", f1, r);
+		else
+			r = -1;
+		return r;
+		}
+	r = e32image2.Open(f2);
+	if (r != KErrNone)
+		{
+		if (r<0)
+			fprintf(stderr, "%s is not a valid E32Image file (error %d)\n", f2, r);
+		else
+			r = -1;
+		return r;
+		}
+
+
+
+	int sametime=(e32image1.iHdr->iTimeLo==e32image2.iHdr->iTimeLo)
+		&&(e32image1.iHdr->iTimeHi==e32image2.iHdr->iTimeHi);
+	e32image1.iHdr->iTimeLo=0;
+	e32image1.iHdr->iTimeHi=0;
+	e32image1.iOrigHdr->iTimeLo=0;
+	e32image1.iOrigHdr->iTimeHi=0;
+	e32image2.iHdr->iTimeLo=0;
+	e32image2.iHdr->iTimeHi=0;
+	e32image2.iOrigHdr->iTimeLo=0;
+	e32image2.iOrigHdr->iTimeHi=0;
+	e32image1.iHdr->iToolsVersion=e32image2.iHdr->iToolsVersion;
+	e32image1.iOrigHdr->iToolsVersion=e32image2.iOrigHdr->iToolsVersion;
+	e32image1.iHdr->iHeaderCrc=0;
+	e32image2.iHdr->iHeaderCrc=0;
+
+	int ohs1 = e32image1.iOrigHdr->TotalSize();
+	int ohs2 = e32image2.iOrigHdr->TotalSize();
+	int orighdrcmp = (ohs1==ohs2) ? memcmp(e32image1.iOrigHdr, e32image2.iOrigHdr, ohs1) : 1;
+
+	int hs1 = e32image1.iHdr->TotalSize();
+	int hs2 = e32image2.iHdr->TotalSize();
+	int hdrcmp = (hs1==hs2) ? memcmp(e32image1.iHdr, e32image2.iHdr, hs1) : 1;
+
+	int rs1 = e32image1.iSize - ohs1;
+	int rs2 = e32image2.iSize - ohs2;
+	int rcmp = (rs1==rs2) ? memcmp(e32image1.iData + ohs1, e32image2.iData + ohs2, rs1) : 1;
+
+	if (orighdrcmp==0 && rcmp==0)
+		{
+		if (sametime)
+			printf("E32 image files are identical\n");
+		else
+			printf("E32 image files are identical apart from timestamps and Header CRC \n");
+		return KDiffIdentical;
+		}
+	if (hdrcmp==0 && rcmp==0)
+		{
+		printf("E32 image files are functionally equivalent but have different headers\n");
+		return KDiffDifferent;
+		}
+	printf("E32 image files are different\n");
+	return KDiffDifferent;
+	}
+
+
+int main(int argc, char *argv[])
+	{
+	cout << "\nPEDIFF - PE file compare V";
+	cout << MajorVersion << '.' << setfill('0') << setw(2) << MinorVersion;
+	cout << '(' << setw(3) << Build << ")\n";
+	cout << Copyright;
+	
+	int r=KErrArgument;
+	if ((argc==3) || (argc==4))
+		{
+		if (argc==3)
+			r=pecmp(argv[1], argv[2]);
+		else if (strcmp("-e32", argv[1])==0)
+			r=e32cmp(argv[2], argv[3]);
+		}
+	if (r==KErrArgument)
+		{
+		cout << "Syntax: "<<argv[0]<<" pefile pefile\n";
+		cout << "        "<<argv[0]<<" -e32 e32imagefile e32imagefile\n";
+		}
+	return r;
+	}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/pefile/pe_file.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,1054 @@
+// Copyright (c) 1995-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+
+#include <string.h>
+#include <e32std.h>
+#include <e32std_private.h>
+#include <e32rom.h>
+#include "e32image.h"
+#include "pe_defs.h"
+#include "pe_file.h"
+#include "h_utl.h"
+
+TBool hadText, hadReloc = EFalse;
+TUint32 PEFile::iRomMemBase=0;
+TUint32 PEFile::iRomLinearBase=0;
+
+extern char* gX86imp;
+extern int gX86num_imp_dlls;
+
+PEFile::PEFile()
+	:iMemBase(0),iEntryPoint(0),iImageSize(0),iCodeSize(0),iDataSize(0),
+	iHeapReservedSize(0),iHeapCommittedSize(0),iStackReservedSize(0),iStackCommittedSize(0),
+	iBssSize(0),iBssOffset(0),iSectionAlign(0),iExpDirectoryOffset(0),iDataOffset(0),
+	iImageIsDll(EFalse),
+	iHeader(0),iExpDirectory(0),iImpDescriptor(0),iFileName(0),iFileHandle(0),
+	iLinkedBase(0),iStartOfHeaders(0),iSizeOfHeaders(0),iNumSections(0),
+	iRomRunAddr(0),iRamRunAddr(0),iRomDelta(0),iRamDelta(0),iHadDataSection(EFalse),
+	iBssSectionLinkedAddr(0),iBssSectionAddr(0),iBssSectionSize(0),
+	iDataSectionLinkedAddr(0),iDataSectionAddr(0),iDataSectionSize(0),
+	iCodeSectionAddr(0),iCodeSectionSize(0),
+	iRDataSectionAddr(0),iRDataSectionSize(0),
+	iCRTSectionAddr(0),iCRTSectionSize(0),
+	iExportDataDir(0)
+//
+// Constructor
+//
+	{
+
+	for (TInt i=0; i<KNumberOfSections; i++)
+		{
+		iSectionHeader[i]=NULL;
+		iSectionData[i]=NULL;
+		}
+	}
+
+
+PEFile::~PEFile()
+//
+// Destructor
+//
+	{
+
+	delete [] iFileName;
+	for (TInt i=0; i<KNumberOfSections; i++)
+		{
+		delete iSectionHeader[i];
+		delete iSectionData[i];
+		}
+	}
+
+
+TBool PEFile::Init(const TText * const aFileName)
+//
+// Reads the PE headers to fill in lots of nice instance variables with info about the file
+//
+ 	{
+
+ 	delete [] iFileName;	
+	iFileName = new TText[strlen((const char *)aFileName)+1];
+	strcpy ((char *)iFileName, (const char *)aFileName);
+
+	iHeader = (PIMAGE_NT_HEADERS)(HMem::Alloc(0,sizeof(IMAGE_DOS_HEADER)+sizeof(IMAGE_NT_HEADERS)));
+	if (!iHeader)
+		{
+		Print(EPeError,"Failed to allocate memory for headers.\n");
+		return EFalse;
+		}
+
+	TInt error = HFile::Open(iFileName, &iFileHandle);
+	if (error!=0)
+		return EFalse;
+
+	if (!HFile::Read(iFileHandle,iHeader,sizeof(IMAGE_DOS_HEADER)))
+		{
+		Print(EPeError,"Unable to read file %s.\n",iFileName);
+		HFile::Close(iFileHandle);
+		return EFalse;
+		}
+
+	if (IsValidDOSHeader((PIMAGE_DOS_HEADER)iHeader)) // read in the rest, overwriting the DOS header
+		iStartOfHeaders = ((PIMAGE_DOS_HEADER)iHeader)->e_lfanew;
+	else
+		iStartOfHeaders = 0;
+
+	if (!HFile::Seek(iFileHandle, iStartOfHeaders))
+		{
+		Print(EPeError,"File %s is not large enough to contain valid headers.\n",iFileName);
+		HFile::Close(iFileHandle);
+		return EFalse;
+		}
+
+ 	if (!HFile::Read(iFileHandle,iHeader,sizeof(IMAGE_NT_HEADERS)))
+		{
+		Print(EPeError,"Unable to read NT headers.\n");
+		HFile::Close(iFileHandle);
+		return EFalse;
+		}
+
+	if (!IsValidNTHeader(iHeader))
+		{
+		Print(EPeError,"Invalid NT header.\n");
+		HFile::Close(iFileHandle);
+		return EFalse;
+		}
+
+	if (!(IsValidFileHeader((PIMAGE_FILE_HEADER)&iHeader->FileHeader)))
+		{
+		Print(EPeError,"Invalid file header.\n");
+		HFile::Close(iFileHandle);
+		return EFalse;
+		}
+
+//	PIMAGE_NT_HEADERS pNTHeader = iHeader;
+	PIMAGE_FILE_HEADER pFileHeader = (PIMAGE_FILE_HEADER)&iHeader->FileHeader;
+	PIMAGE_OPTIONAL_HEADER pOptionalHeader = (PIMAGE_OPTIONAL_HEADER)&iHeader->OptionalHeader;
+//	PIMAGE_SECTION_HEADER pSectionHeader = (PIMAGE_SECTION_HEADER)(iHeader+1);
+
+	iImageSize = pOptionalHeader->SizeOfImage;
+	iCodeSize = pOptionalHeader->SizeOfCode;
+	iDataSize = pOptionalHeader->SizeOfInitializedData;
+	iEntryPoint = pOptionalHeader->AddressOfEntryPoint;
+	iHeapReservedSize = pOptionalHeader->SizeOfHeapReserve;
+	iHeapCommittedSize = pOptionalHeader->SizeOfHeapCommit;
+	iStackReservedSize = 0x2000;
+	iStackCommittedSize = 0x2000;
+	iBssSize = pOptionalHeader->SizeOfUninitializedData;
+    iSectionAlign =	pOptionalHeader->SectionAlignment;
+ 	if (pFileHeader->Characteristics & IMAGE_FILE_DLL)
+		iImageIsDll = ETrue;
+	else
+		iImageIsDll = EFalse;
+ 	iLinkedBase=pOptionalHeader->ImageBase;
+	iNumSections = pFileHeader->NumberOfSections;
+	iSizeOfHeaders = pOptionalHeader->SizeOfHeaders;
+	iExportDataDir=pOptionalHeader->DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT].VirtualAddress;
+	iExportDirSize=pOptionalHeader->DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT].Size;
+//
+	iCpu=pFileHeader->Machine;
+	HMem::Free(iHeader);
+	iHeader=0;
+	return ETrue;
+	}
+
+void PEFile::Close()
+//
+// close the pe file
+//
+	{
+	HFile::Close(iFileHandle);
+	}
+
+TInt PEFile::ReadExportDirectory()
+//
+// Read in just the export directory
+//
+	{
+
+	if (iExportDataDir==0)
+		return KErrNotFound;
+	TInt r=ReadSectionHeaders();
+	if (r!=KErrNone)
+		return r;
+	iSectionData[KConstSection]=ReadSectionData(iSectionHeader[KConstSection]);
+	iExpDirectoryOffset=iSectionHeader[KConstSection]->VirtualAddress;
+	iExpDirectory=(PIMAGE_EXPORT_DIRECTORY)(iSectionData[KConstSection]+iExportDataDir-iExpDirectoryOffset);
+	return KErrNone;
+	}
+
+TInt PEFile::ReadSectionHeaders()
+//
+// Read in the section headers
+//
+	{
+	
+	TInt i;
+	for (i=0; i<KNumberOfSections; i++)
+		iSectionHeader[i]=NULL;
+	HFile::Seek(iFileHandle, iStartOfHeaders+sizeof(IMAGE_NT_HEADERS));
+	for (i=0; i<(TInt)iNumSections; i++)
+		{
+		PIMAGE_SECTION_HEADER header = new IMAGE_SECTION_HEADER;
+		if (!HFile::Read(iFileHandle, header, sizeof(IMAGE_SECTION_HEADER)))
+			return Print(EError, "Cannot read section header.\n");
+
+		if (CmpSectionName(header, ".text"))
+			iSectionHeader[KTextSection]=header;
+		else if (CmpSectionName(header, ".rdata"))
+			iSectionHeader[KConstSection]=header;
+		else if (CmpSectionName(header, ".edata"))
+			iSectionHeader[KExportSection]=header;
+		else if (CmpSectionName(header, ".data"))
+			iSectionHeader[KDataSection]=header;
+		else if (CmpSectionName(header, ".bss"))
+			iSectionHeader[KBssSection]=header;
+		else if (CmpSectionName(header, ".idata"))
+			iSectionHeader[KImportSection]=header;
+		else if (CmpSectionName(header, ".reloc"))
+			iSectionHeader[KRelocSection]=header;
+		else if (CmpSectionName(header, ".CRT"))
+			iSectionHeader[KCrtSection]=header;
+		else if (CmpSectionName(header, ".stab"))
+			delete header;
+		else if (CmpSectionName(header, ".stabstr"))
+			delete header;
+		else if (CmpSectionName(header,".E32_UID"))
+			delete header;
+		else if (CmpSectionName(header,".rsrc"))
+			delete header;
+		else
+			{
+			Print(EWarning, "Section '%.8s' removed.\n", header->Name);
+			delete header;
+			}
+		}
+	return KErrNone;
+	}
+
+char *PEFile::ReadSectionData(PIMAGE_SECTION_HEADER aPeHeader)
+//
+// Read in the data for this section
+//
+	{
+	char *section=NULL;
+	if (aPeHeader)
+		{
+		section=(char *)HMem::Alloc(NULL, aPeHeader->SizeOfRawData);
+		if (section==NULL)
+			return NULL;
+		HFile::Seek(iFileHandle, aPeHeader->PointerToRawData);
+		HFile::Read(iFileHandle, section, aPeHeader->SizeOfRawData);
+		}
+	return section;
+	}
+
+TInt PEFile::ReadData()
+//
+//
+//
+	{
+
+	TInt i;
+	for (i=0; i<KNumberOfSections; i++)
+		{
+		if (iSectionHeader[i])
+			{
+			iSectionData[i]=ReadSectionData(iSectionHeader[i]);
+			if (iSectionData[i]==NULL)
+				return Print(EError, "Cannot read %s section data.\n", iSectionHeader[i]->Name);
+			}
+		else
+			iSectionData[i]=NULL;
+		}
+	return KErrNone;
+	}
+
+TInt PEFile::NumberOfImports() const
+//
+// Count the total number of imports for this image
+//
+	{
+	
+//	if (gX86imp)
+//		return gX86num_imp_dlls;
+	char *importData=iSectionData[KImportSection];
+	PIMAGE_SECTION_HEADER importHeader=iSectionHeader[KImportSection];
+	if (importData==NULL)
+		return 0;
+	TInt n=0;
+	TUint *src=(TUint *)importData;
+	while (*src)
+		{
+		TUint vaoffset=src[4];
+		if (!gLittleEndian) ByteSwap(vaoffset);
+		TUint offset=vaoffset-importHeader->VirtualAddress; // find the offset into the section of import addr table
+		TUint *p=(TUint *)(importData+offset);
+		while (*p++)
+			n++;
+		src+=5; // sizeof pe import block/4
+		}
+	return n;
+	}
+
+TInt PEFile::NumberOfImportDlls() const
+//
+// Count the number of referenced Dlls
+//
+	{
+
+	char *importData=iSectionData[KImportSection];
+//	PIMAGE_SECTION_HEADER importHeader=iSectionHeader[KImportSection];
+	if (importData==NULL)
+		return 0;
+	TInt n=0;
+	while (*(TUint *)importData)
+		{
+		n++;
+		importData+=5*4; // size of pe import block
+		}
+	return n;
+	}
+
+TInt PEFile::NumberOfExports() const
+//
+// Count the number of exported symbols
+//
+	{
+
+	if (iExportDataDir==0)
+		return 0;
+	return ((PIMAGE_EXPORT_DIRECTORY)iSectionData[KExportSection])->NumberOfFunctions;
+	}
+
+TInt PEFile::NumberOfRelocs()
+//
+// Count the number of reloctions
+//
+	{
+
+	if (iSectionData[KRelocSection]==NULL)
+		return 0;
+	char *relocs=iSectionData[KRelocSection];
+	TInt n=0;
+	TInt dudrelocs=0;
+	TInt blocksize;
+	TUint page;
+	TInt size=iSectionHeader[KRelocSection]->Misc.VirtualSize;
+
+	TUint *rrelocs=(TUint *)relocs;
+	TUint ssize=size;
+	if (!gLittleEndian) ByteSwap(rrelocs, ssize);
+
+	while (size>0)
+		{
+		page=*(TUint *)relocs;
+		blocksize=*(TInt *)(relocs+4);
+		if (blocksize==0)
+			break;
+		size-=blocksize;
+		TUint16 *p=(TUint16 *)(relocs+8);
+		relocs+=blocksize;
+		blocksize-=8;
+		while (blocksize>0)
+			{
+			TInt rtype=(*p&0xf000)>>12;
+			if (rtype==IMAGE_REL_BASED_HIGHLOW)
+				{
+				TUint va=page+(*p&0xfff);
+
+				// va is the address requiring relocation, so it must be in a section and can't have been offset
+				TInt section=FindSectionByVa(va+iLinkedBase);
+				if (section==KTextSection || section==KConstSection || section==KDataSection || section==KCrtSection)
+					n++;
+				else
+					dudrelocs++;
+				}
+			else if (rtype!=IMAGE_REL_BASED_ABSOLUTE)	// used for padding
+				Print(EWarning, "Relocation type other than IMAGE_REL_BASED_HIGHLOW has been ignored.\n");
+			*p++;
+			blocksize-=2;
+			}
+		}
+#if defined(_DEBUG)
+	if (dudrelocs>0)
+		Print(EWarning, "Image '%s' has %d relocations pointing at uninitialised data.\n", iFileName, dudrelocs);
+#endif
+
+	if (!gLittleEndian) ByteSwap(rrelocs, ssize);
+	return n;
+	}
+
+void PEFile::GetRelocs(TUint *aReloc, TUint *aRelocSection, TInt /*aNumberOfRelocs*/)
+//
+// load the relocs from the reloc section into relocation and relocsection arrays
+//
+	{
+
+	TUint *relocation=aReloc;
+	TUint *relocsection=aRelocSection;
+	char *aRelocData=iSectionData[KRelocSection];
+
+	TUint16 *relocs=(TUint16 *)aRelocData;
+	TInt relocsize=iSectionHeader[KRelocSection]->Misc.VirtualSize;
+	TUint offset;
+	TUint page;
+	TInt i=0;
+
+	TUint *rrelocs=(TUint *)aRelocData;
+	TUint ssize=relocsize;
+	if (!gLittleEndian) ByteSwap(rrelocs, ssize);
+
+	while (relocsize>0)
+		{
+		page=*(TUint *)relocs;
+		relocs+=2;
+		TInt size=*(TUint *)relocs;
+		if (size==0)
+			break;
+		relocsize-=size;
+		relocs+=2;
+		size-=8;
+		while (size>0)
+			{
+			offset=*relocs++;
+			TInt type=offset&0xf000;
+			if (type==0x3000)
+				{
+				TUint va=page+(offset&0xfff);
+
+				// va is the address requiring relocation, so it must be in a section and can't have been offset
+				TInt section=FindSectionByVa(va+iLinkedBase);
+				if (section==KTextSection || section==KConstSection || section==KDataSection || section==KCrtSection)
+					{
+					relocsection[i]=section;
+					relocation[i++]=va;
+					}
+				}
+			size-=2;
+			}
+		}
+
+	if (!gLittleEndian) ByteSwap(rrelocs, ssize);
+	}
+
+TInt PEFile::Normalise()
+//
+// Remove the MSVC anomalies
+//
+	{
+
+	// MSVC puts export data in with .rdata
+	if (iExportDataDir && iSectionHeader[KExportSection]==NULL)
+		{
+		if (!PEFile::VirtualAddressInSection(iExportDataDir+iLinkedBase, iSectionHeader[KConstSection]))
+			return Print(EError, "Can't find exports in this PE file.\n");
+		else
+			{
+			iSectionHeader[KExportSection]=new IMAGE_SECTION_HEADER;
+			iSectionHeader[KExportSection]->VirtualAddress=iExportDataDir;
+			iSectionHeader[KExportSection]->Misc.VirtualSize=iExportDirSize;
+			iSectionHeader[KExportSection]->SizeOfRawData=iExportDirSize;
+			iSectionData[KExportSection]=new char [iExportDirSize];
+			if (iSectionData[KExportSection]==NULL)
+				return Print(EError, "Out of memory.\n");
+			memcpy(iSectionData[KExportSection], iSectionData[KConstSection]+iExportDataDir-iSectionHeader[KConstSection]->VirtualAddress, iExportDirSize);
+			// adjust .rdata so it does not include .edata
+			iSectionHeader[KConstSection]->Misc.VirtualSize-=iExportDirSize;
+			iSectionHeader[KConstSection]->SizeOfRawData-=iExportDirSize;
+			char *c=new char [iSectionHeader[KConstSection]->SizeOfRawData];
+			if (c==NULL)
+				return Print(EError, "Out of memory.\n");
+			memcpy(c, iSectionData[KConstSection], iSectionHeader[KConstSection]->SizeOfRawData);
+			delete iSectionData[KConstSection];
+			iSectionData[KConstSection]=c;
+			}
+		}
+	// Stupid compilers generate .idata sections even when there are no imports
+	if (iSectionHeader[KImportSection])
+		{
+		if (NumberOfImports()==0)
+			{
+			delete iSectionHeader[KImportSection];
+			delete iSectionData[KImportSection];
+			iSectionHeader[KImportSection]=NULL;
+			iSectionData[KImportSection]=NULL;
+			}
+		}
+	return KErrNone;
+	}
+
+
+TInt PEFile::HasInitialisedData(PIMAGE_SECTION_HEADER aHeader)
+//
+// Returns true if the pe file section contains any initialised data
+//
+	{
+
+	if (aHeader==NULL)
+		return FALSE;
+	if (aHeader->SizeOfRawData==0)
+		return FALSE;
+	return TRUE;
+	}
+
+void PEFile::CopySectionData(TAny *source, TAny *dest, TUint32 fileLength, TUint32 memLength)
+	{
+
+	if (fileLength <= memLength)
+		{
+		Print(EScreen,"   Copying %08x bytes from file at %08x to memory at %08x\n", fileLength, source, dest);
+		HMem::Copy(dest,source,fileLength);
+		dest = (TAny *)((TUint32)dest + fileLength);
+		TUint32 remainingSize = memLength - fileLength;
+		Print(EScreen,"   Zeroing remaining %08x bytes at %08x\n", remainingSize, dest);
+		HMem::Set(dest, 0, remainingSize);
+		}
+	else
+		{
+		Print(EScreen,"   Copying %08x bytes from file at %08x to memory at %08x\n", memLength, source, dest);
+		HMem::Copy(dest,source,memLength);
+		}
+	}		
+
+
+TBool PEFile::ProcessRelocData(TAny *relocData,TInt dataSize)
+	{
+
+	TBool hadBadRelocs=EFalse;
+	PIMAGE_BASE_RELOCATION pRelocData = (PIMAGE_BASE_RELOCATION)((TUint32)relocData);
+	Print(ELog,"   Info on .reloc section...\n");
+
+	while (pRelocData->SizeOfBlock != 0)
+		{
+		TUint16 relocType;
+		TUint32 relocOffset;
+		TUint32 *relocAddr;
+
+		Print(ELog,"      Virtual address: %08x  size: %08x\n",pRelocData->VirtualAddress, pRelocData->SizeOfBlock);
+			
+		TUint numEntries = (pRelocData->SizeOfBlock-sizeof(*pRelocData))/sizeof(TUint16);
+		TUint16 *pEntry = (TUint16 *)((TUint32)pRelocData+sizeof(*pRelocData));
+		
+		for (TUint i=0; i<numEntries; i++)
+			{
+			// Extract the top 4 bits of the relocation entry. This is the type
+			relocType = (TUint16)((*pEntry & 0xF000)>>12);
+			// The rest of the field is the offset
+			relocOffset = (*pEntry & 0x0FFF);
+			switch (relocType)
+				{
+				case 0: // Just padding
+					pEntry++;
+					break;
+
+				case 1:
+				case 2:
+				case 4:
+				case 5:
+					Print(EPeError,".reloc section, relocation type not handled.\n");
+					return EFalse;
+					break;
+
+				case 3:
+					{
+					if (pRelocData->VirtualAddress==0) // Defect in .reloc section of arm ekern.exe
+						{
+						pEntry++;
+						break;
+						}
+					TUint thisReloc=0;
+					relocAddr = (TUint32 *)((TUint32)iMemBase + (TUint32)pRelocData->VirtualAddress + relocOffset);
+					TUint32 reloc = *relocAddr;
+
+					if (IsInCode((TUint32)relocAddr) || IsInData((TUint32)relocAddr))
+						{
+						if (IsInDataReloc(reloc))
+					   		{
+							if (iImageIsDll)
+								{
+								Print(EPeError,"Dlls should have no RAM (data) relocations.\n");
+								return(EFalse);
+								}
+							thisReloc=reloc+iRamDelta;
+							}
+						else
+							thisReloc=reloc+iRomDelta;
+						*relocAddr = thisReloc; // this line here to enable breaking on values of thisReloc 
+						}
+					else
+						hadBadRelocs=ETrue;
+					pEntry++;
+					}
+					break;
+				default:
+					Print(EPeError,".reloc section, invalid relocation type.\n");
+					return(EFalse);
+				}
+			}
+		dataSize-=pRelocData->SizeOfBlock;
+		if(dataSize<=0)
+			break;
+		pRelocData = (PIMAGE_BASE_RELOCATION)((TUint32)pRelocData+pRelocData->SizeOfBlock);
+		}
+
+	if (hadBadRelocs)
+		Print(EPeError,"File %s has relocation in invalid section\n",iFileName);
+	return(ETrue);
+	}
+
+TBool PEFile::IsInCode(TUint32 anAddr)
+	{
+	if ((anAddr>=iCodeSectionAddr) && (anAddr<(iCodeSectionAddr+iCodeSectionSize)))
+		return(ETrue);
+	if ((anAddr>=iRDataSectionAddr) && (anAddr<(iRDataSectionAddr+iRDataSectionSize)))
+		return(ETrue);
+	if ((anAddr>=iCRTSectionAddr) && (anAddr<(iCRTSectionAddr+iCRTSectionSize)))
+		return(ETrue);
+	return(EFalse);
+	}
+
+TBool PEFile::IsInData(TUint32 anAddr)
+	{
+	if ((anAddr>=iDataSectionAddr) && (anAddr<(iDataSectionAddr+iDataSectionSize)))
+		return(ETrue);
+	if ((anAddr>=iBssSectionAddr) && (anAddr<(iBssSectionAddr+iBssSectionSize)))
+		return(ETrue);
+	return(EFalse);
+	}
+
+TBool PEFile::IsInDataReloc(TUint32 anAddr)
+	{
+	if ((anAddr>=iDataSectionLinkedAddr) && (anAddr<(iDataSectionLinkedAddr+iDataSectionSize)))
+		return(ETrue);
+	if ((anAddr>=iBssSectionLinkedAddr) && (anAddr<(iBssSectionLinkedAddr+iBssSectionSize)))
+		return(ETrue);
+	return(EFalse);
+	}
+ 
+
+TBool PEFile::IsValidDOSHeader(PIMAGE_DOS_HEADER aDOSHeader)
+ 	{
+	if (aDOSHeader->e_magic!=IMAGE_DOS_SIGNATURE)
+		{
+		Print(EPeError,"File does not have valid DOS MZ signature.\n");
+		return EFalse;
+		}
+	else
+		return ETrue;
+	}			  
+
+
+
+TBool PEFile::IsValidNTHeader(PIMAGE_NT_HEADERS aNTHeader)
+ 	{
+ 	if (aNTHeader->Signature != IMAGE_NT_SIGNATURE )
+		{
+		Print(EPeError,"File does not have valid NT PE signature.\n");
+		return EFalse;
+		}
+	else
+	 return ETrue;
+	}  
+
+
+TBool PEFile::IsValidFileHeader(PIMAGE_FILE_HEADER aFileHeader)
+ 	{
+	if ((aFileHeader->Machine != IMAGE_FILE_MACHINE_I386) 
+		&& (aFileHeader->Machine != 0xa00) 
+		&& (aFileHeader->Machine != 0xb00) 
+		&& (aFileHeader->Machine !=IMAGE_FILE_MACHINE_ALPHA))
+		{
+		Print(EPeError,"File is not a valid i386, ARM, M*Core or ALPHA executable.\n");
+		return EFalse;
+		}
+
+	if (aFileHeader->SizeOfOptionalHeader == 0)
+		{
+		Print(EPeError,"Optional header is 0 bytes in length - this is probably an object, not an executable\n");
+		return EFalse;
+		}
+
+  	if (!(aFileHeader->Characteristics & IMAGE_FILE_EXECUTABLE_IMAGE))
+		{
+		Print(EPeError,"File is not a valid executable - probably linker error\n");
+		return EFalse;
+		}
+
+	return ETrue;
+	}
+
+
+// Get details of the next import to fix-up in the current file. Fill in the name of the dll 
+//it is imported from, the ordinal number and the address to write back to.
+#define ORDINAL_DONE 0x40000000
+
+TImportStat PEFile::GetNextImport(TText * &aDllName, TUint16 &aOrdinal, TUint32 * &aThunk)
+	{
+	PIMAGE_THUNK_DATA pLookupTable = 0;
+	TUint32 *pThunk = 0;
+	TUint32 rawOrdinal = ORDINAL_DONE;
+	TImportStat res = EImpDone;
+	PIMAGE_IMPORT_DESCRIPTOR impDesc = iImpDescriptor;
+	TText *expDllName = 0;
+
+	if (impDesc == 0)
+		return EImpDone; // This file imports nothing
+		
+ 	while ((rawOrdinal & ORDINAL_DONE) && ((impDesc->TimeDateStamp!=0 ) || (impDesc->Name!=0)))
+		{
+		expDllName = (TText *)(iMemBase + impDesc->Name);
+		pLookupTable = (PIMAGE_THUNK_DATA)(iMemBase + impDesc->Characteristics);
+ 		pThunk = (TUint32 *)(iMemBase + (TUint32)impDesc->FirstThunk);
+		while ((rawOrdinal & ORDINAL_DONE) && (pLookupTable->u1.AddressOfData != 0))
+ 			{
+ 			if (pLookupTable->u1.Ordinal & IMAGE_ORDINAL_FLAG )
+				rawOrdinal = pLookupTable->u1.Ordinal;
+			else
+				{
+				Print(EPeError,"in file %s\n",iFileName);
+				Print(EPeError,"It is importing a symbol by name from %s\n",expDllName);
+				return EImpError;
+				}
+			pThunk++;
+			pLookupTable++;
+			}	
+		impDesc++;
+		}
+
+	if (!(rawOrdinal & ORDINAL_DONE))
+		{
+		pThunk--;
+		pLookupTable--;
+		res = EImpSuccess;
+		aDllName = expDllName;
+		aThunk = pThunk;
+		aOrdinal = (TUint16)(rawOrdinal & 0xFFFF);
+		pLookupTable->u1.Ordinal |= ORDINAL_DONE;
+		}
+
+	return res;
+	}
+
+TUint32 PEFile::GetFixUp(const TUint16 aOrdinal)
+//
+// Look through export directory to find fix-up for given ordinal
+//
+	{
+
+	TUint32 ordBase = iExpDirectory->Base;
+	TUint32 *functions = (TUint32 *)((TUint32)iExpDirectory->AddressOfFunctions + iMemBase);
+	TUint32 fixupAddr = functions[aOrdinal-ordBase] + iRomRunAddr;
+	return fixupAddr;
+	}
+
+TUint PEFile::GetNumberOfExportedFunctions()
+	{
+
+	return iExpDirectory->NumberOfFunctions;
+	}
+
+
+TUint PEFile::GetOrdinalBase()
+	{
+
+	return iExpDirectory->Base;
+	}
+
+
+TBool PEFile::ExportSectionExists()
+	{
+
+	if (iExpDirectory)
+		return ETrue;
+	else
+		return EFalse;
+	}
+
+
+TBool PEFile::ImportSectionExists()
+	{
+
+	if (iImpDescriptor)
+		return ETrue;
+	else
+		return EFalse;
+	}
+
+
+TUint PEFile::RoundToSectionSize(TUint aSize)
+//
+// Round to the nearest size in sections
+//
+	{
+	TUint sAlign = iSectionAlign;
+	return ((aSize+sAlign-1)/sAlign)*sAlign ;
+	}
+
+
+void PEFile::DumpPeHeaders()
+//
+// Print out loads of stuff from the PE header
+//
+	{
+	TInt err = HFile::Open(iFileName, &iFileHandle);
+	if (err!=0) 
+		return;
+
+	iHeader = (PIMAGE_NT_HEADERS)(HMem::Alloc(0,iSizeOfHeaders-iStartOfHeaders));
+	if (!iHeader)
+		return;
+
+	if (!HFile::Seek(iFileHandle, iStartOfHeaders))
+		return;
+
+ 	if (!HFile::Read(iFileHandle, iHeader, iSizeOfHeaders-iStartOfHeaders))
+		return;
+
+	PIMAGE_FILE_HEADER pFileHeader = (PIMAGE_FILE_HEADER)&iHeader->FileHeader;
+	PIMAGE_OPTIONAL_HEADER pOptionalHeader = (PIMAGE_OPTIONAL_HEADER)&iHeader->OptionalHeader;
+	PIMAGE_SECTION_HEADER pSectionHeader = (PIMAGE_SECTION_HEADER)(iHeader+1);
+
+ 	printf("File header\n");
+ 	printf("-----------\n\n");
+	TText *szMachine=0;
+	switch( pFileHeader->Machine )
+		{
+		case 0xa00:
+			szMachine = (TText *)"ARM"; break;
+		case 0xb00:
+			szMachine = (TText *)"M*Core"; break;
+		case IMAGE_FILE_MACHINE_I386:
+			szMachine = (TText *)"i386"; break;
+		case IMAGE_FILE_MACHINE_I860:
+			szMachine = (TText *)"i860"; break;
+		case IMAGE_FILE_MACHINE_R3000:
+			szMachine = (TText *)"R3000"; break;
+		case IMAGE_FILE_MACHINE_R4000:
+			szMachine = (TText *)"R4000"; break;
+		case IMAGE_FILE_MACHINE_ALPHA:
+			szMachine = (TText *)"Alpha"; break;
+		case IMAGE_FILE_MACHINE_POWERPC:
+			szMachine = (TText *)"IBM PowerPC"; break;
+		default:
+			printf ("ERROR - machine not specified.\n");
+			szMachine = (TText *)"unknown";
+			break;
+		}
+
+	printf("\n    Machine: %s (Id=%04x)",szMachine, pFileHeader->Machine);
+	if ((pFileHeader->Machine != 0xa00)		// ARM
+		&& (pFileHeader->Machine != 0xb00))	// M*Core
+		printf("..........ERROR!!");
+    printf("\n    Number of sections : %04x",pFileHeader->NumberOfSections);
+    printf("\n    Time date stamp : %08lx",pFileHeader->TimeDateStamp);
+	if (pFileHeader->TimeDateStamp == 0)
+		printf("..........ERROR!!");
+    printf("\n    Pointer to symbol table : %08lx",pFileHeader->PointerToSymbolTable);
+    printf("\n    Number of symbols : %08lx",pFileHeader->NumberOfSymbols);
+    printf("\n    Size of optional header : %08x",pFileHeader->SizeOfOptionalHeader);
+	if (pFileHeader->SizeOfOptionalHeader == 0)
+		printf("..........ERROR!!");
+    printf("\n    Characteristics : %08x\n",pFileHeader->Characteristics);
+	if (pFileHeader->Characteristics & IMAGE_FILE_RELOCS_STRIPPED)
+		printf("\n      Relocations stripped..........ERROR!!");
+	if (pFileHeader->Characteristics & IMAGE_FILE_EXECUTABLE_IMAGE)
+		printf("\n      Executable image.");
+	else
+		printf("\n      Not executable image..........ERROR!!");
+	if (pFileHeader->Characteristics & IMAGE_FILE_CHAR_REVERSED_LO)
+		printf("\n      Bytes reversed lo..........ERROR!!");
+ 	if (pFileHeader->Characteristics & IMAGE_FILE_32BIT_MACHINE)
+		printf("\n      32bit image.");
+	else
+		printf("\n      Not 32bit image..........ERROR!!");
+ 	if (pFileHeader->Characteristics & IMAGE_FILE_SYSTEM)
+		printf("\n      System file.");
+ 	if (pFileHeader->Characteristics & IMAGE_FILE_DLL)
+		printf("\n      Dll file.");
+	if (pFileHeader->Characteristics & IMAGE_FILE_CHAR_REVERSED_HI)
+		printf("\n      Bytes reversed hi..........ERROR!!");
+
+
+  	printf ("\n\n\nOptional Header\n");
+  	printf ("------------------");
+
+	printf("\n    Magic = %04x", pOptionalHeader->Magic);
+	printf("\n    Major Linker Version = %02x", pOptionalHeader->MajorLinkerVersion);
+	printf("\n    Minor Linker Version = %02x", pOptionalHeader->MinorLinkerVersion);
+	printf("\n    Size of code (bytes) = %08lx", pOptionalHeader->SizeOfCode);
+	printf("\n    Size of initialized data (bytes) = %08lx", pOptionalHeader->SizeOfInitializedData);
+	printf("\n    Size of uninitialized data (bytes) = %08lx", pOptionalHeader->SizeOfUninitializedData);
+	printf("\n    Entrypoint RVA = %08lx", pOptionalHeader->AddressOfEntryPoint);
+	if (pOptionalHeader->AddressOfEntryPoint & 0x80000000)
+		printf("..........ERROR!!");
+	printf("\n    Base of code = %08lx", pOptionalHeader->BaseOfCode);
+	if (pOptionalHeader->BaseOfCode & 0x80000000)
+		printf("..........ERROR!!");
+	printf("\n    Base of data = %08lx", pOptionalHeader->BaseOfData);
+	if (pOptionalHeader->BaseOfData & 0x80000000)
+		printf("..........ERROR!!");
+	printf("\n    Image base = %08lx", pOptionalHeader->ImageBase);
+	if (pOptionalHeader->ImageBase & 0x80000000)
+		printf("..........ERROR!!");
+	printf("\n    Section alignment (bytes) = %08lx",pOptionalHeader->SectionAlignment);
+	if (pOptionalHeader->SectionAlignment & 0x80000000)
+		printf("..........ERROR!!\n");
+	printf("\n    File alignment (bytes) = %08lx", pOptionalHeader->FileAlignment);
+	if (pOptionalHeader->FileAlignment & 0x80000000)
+		printf("..........ERROR!!");
+	printf("\n    Major Operating System Version = %04x", pOptionalHeader->MajorOperatingSystemVersion);
+	printf("\n    Minor Operating System Version = %04x", pOptionalHeader->MinorOperatingSystemVersion);
+	printf("\n    Major Image Version = %04x", pOptionalHeader->MajorImageVersion);
+	printf("\n    Minor Image Version = %04x", pOptionalHeader->MinorImageVersion);
+	printf("\n    Major Subsystem Version = %04x", pOptionalHeader->MajorSubsystemVersion);
+	printf("\n    Minor Subsystem Version = %04x", pOptionalHeader->MinorSubsystemVersion);
+
+	printf("\n    Size of image (bytes) = %08lx", pOptionalHeader->SizeOfImage);
+	if (pOptionalHeader->SizeOfImage & 0x80000000)
+		printf("..........ERROR!!");
+	printf("\n    Size of headers (bytes) = %08lx",pOptionalHeader->SizeOfHeaders);
+	if (pOptionalHeader->SizeOfHeaders & 0x80000000)
+		printf("..........ERROR!!");
+	printf("\n    CheckSum = %04lx", pOptionalHeader->CheckSum);
+	printf("\n    Subsystem = %04x", pOptionalHeader->Subsystem);
+	printf("\n    Dll Characteristics = %04x", pOptionalHeader->DllCharacteristics);
+	printf("\n    Size Of Stack Reserve = %04lx", pOptionalHeader->SizeOfStackReserve);
+	printf("\n    Size Of Stack Commit = %04lx", pOptionalHeader->SizeOfStackCommit);
+	printf("\n    Size Of Heap Reserve = %04lx", pOptionalHeader->SizeOfHeapReserve);
+	printf("\n    Size Of Heap Commit = %04lx", pOptionalHeader->SizeOfHeapCommit);
+	printf("\n    Loader Flags = %04lx", pOptionalHeader->LoaderFlags);
+	printf("\n    Number Of Rva and Sizes = %04lx", pOptionalHeader->NumberOfRvaAndSizes);
+
+	printf("\n\n\nSection Headers\n");
+ 	printf("---------------\n\n");
+
+ 	for (TUint i=0;i<iNumSections;i++)
+		{
+		DumpNextSectionInFile(pSectionHeader);
+		pSectionHeader++;
+		}
+
+	if (!hadText)
+ 		printf("\nERROR - missing code section.");
+	if (!hadReloc)
+ 		printf("\nERROR - missing reloc section. (All images must be relocatable.)");
+	HMem::Free(iHeader);
+ 	}
+
+
+void PEFile::DumpNextSectionInFile(PIMAGE_SECTION_HEADER pSectionHeader)
+//
+// Print out loads of stuff from the section header
+//
+	{
+	printf("\nSection name %-8.8s\n",pSectionHeader->Name);
+	printf("\n    Virtual size            : %08lx", pSectionHeader->Misc.VirtualSize);
+	printf("\n    RVA of section data     : %08lx", pSectionHeader->VirtualAddress);
+	if (pSectionHeader->VirtualAddress & 0x80000000)
+		printf("..........ERROR!!");
+	printf("\n    Size of raw data        : %08lx", pSectionHeader->SizeOfRawData);
+	printf("\n    Pointer to raw data     : %08lx", pSectionHeader->PointerToRawData);
+	printf("\n    Characteristics: %08lx\n", pSectionHeader->Characteristics);
+ 	if (pSectionHeader->Characteristics & IMAGE_SCN_LNK_REMOVE)
+		printf("\nERROR - Section should have been removed by linker.\n");
+
+	// read the section in
+	TUint32 filePos = pSectionHeader->PointerToRawData;
+ 	TUint32 fileLength = pSectionHeader->SizeOfRawData;
+//	TUint32 memLength = pSectionHeader->Misc.VirtualSize;
+	TAny *sectionFile = HMem::Alloc((TAny *)0, fileLength); // get a buffer
+	HFile::Seek(iFileHandle, filePos);
+	HFile::Read(iFileHandle, sectionFile, fileLength); // and read the file into the buffer
+//	TAny *sectionMem = (TAny *)((TUint32)iMemBase + pSectionHeader->VirtualAddress);
+
+	if (strnicmp((const char *)pSectionHeader->Name, ".text", IMAGE_SIZEOF_SHORT_NAME) == 0)
+		{
+		hadText = ETrue;
+		if (!(pSectionHeader->Characteristics & IMAGE_SCN_CNT_CODE))
+			printf("\nERROR - Code section has incorrect characteristics.\n");
+		else if (!(pSectionHeader->Characteristics & IMAGE_SCN_MEM_EXECUTE))
+			printf("\nERROR - Code section has incorrect characteristics.\n");
+		else if (!(pSectionHeader->Characteristics & IMAGE_SCN_MEM_READ))
+			printf("\nERROR - Code section has incorrect characteristics.\n");
+		}
+	else if (strnicmp((const char *)pSectionHeader->Name, ".data", IMAGE_SIZEOF_SHORT_NAME) == 0)
+		{
+		if (iImageIsDll)
+			{
+			printf ("\nERROR - DLL has data section.\n");
+			}
+		else
+			{
+			if (!(pSectionHeader->Characteristics & IMAGE_SCN_CNT_INITIALIZED_DATA))
+				printf("\nERROR - data section has incorrect characteristics.\n");
+			else if (!(pSectionHeader->Characteristics & IMAGE_SCN_MEM_WRITE))
+				printf("\nERROR - data section has incorrect characteristics.\n");
+			else if (!(pSectionHeader->Characteristics & IMAGE_SCN_MEM_READ))
+				printf("\nERROR - data section has incorrect characteristics.\n");
+			}
+		}
+	else if (strnicmp((const char *)pSectionHeader->Name, ".rdata", IMAGE_SIZEOF_SHORT_NAME) == 0)
+		{
+		}							
+	else if (strnicmp((const char *)pSectionHeader->Name, ".bss", IMAGE_SIZEOF_SHORT_NAME) == 0)
+		{
+		if (iImageIsDll)
+			{
+			printf ("\nERROR - DLL has bss section.\n");
+			}
+		else
+			{
+			if (!(pSectionHeader->Characteristics & IMAGE_SCN_CNT_UNINITIALIZED_DATA))
+				printf("\nERROR - BSS section has incorrect characteristics.\n");
+			else if (!(pSectionHeader->Characteristics & IMAGE_SCN_MEM_WRITE))
+				printf("\nERROR - BSS section has incorrect characteristics.\n");
+			else if (!(pSectionHeader->Characteristics & IMAGE_SCN_MEM_READ))
+				printf("\nERROR - BSS section has incorrect characteristics.\n");
+			}
+		}
+ 	else if (strnicmp((const char *)pSectionHeader->Name, ".reloc", IMAGE_SIZEOF_SHORT_NAME) == 0)
+		{
+		hadReloc = ETrue;
+		}
+	else if (strnicmp((const char *)pSectionHeader->Name, ".idata", IMAGE_SIZEOF_SHORT_NAME) == 0)
+		{
+		}
+	else if (strnicmp((const char *)pSectionHeader->Name, ".edata", IMAGE_SIZEOF_SHORT_NAME) == 0)
+		{
+		iExpDirectory = (PIMAGE_EXPORT_DIRECTORY)(sectionFile);
+		if (iImageIsDll)
+			{
+			printf("\n      Ordinal base = %08lx", iExpDirectory->Base);
+			printf("\n      Number of functions = %08lx", iExpDirectory->NumberOfFunctions);
+			printf("\n      Number of names = %08lx", iExpDirectory->NumberOfNames);
+			printf("\n      Export address table RVA = %08lx", (TUint32)iExpDirectory->AddressOfFunctions);
+			printf("\n      Name pointer RVA = %08lx", (TUint32)iExpDirectory->AddressOfNames);
+			printf("\n      Ordinal table RVA = %08lx", (TUint32)iExpDirectory->AddressOfNameOrdinals);
+			}
+		else
+			{
+			printf("\nERROR - non-DLL with export section.");
+			}
+ 		}
+	else
+		{
+		printf("\nERROR - unexpected section.");
+		}
+
+	HMem::Free(sectionFile);
+	return;
+	}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/pefile/pe_imp.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,235 @@
+// Copyright (c) 1996-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#include <stdlib.h>
+#include <string.h>
+#include <e32std.h>
+#include <e32std_private.h>
+#include "h_utl.h"
+#include "pe_file.h"
+
+TInt E32ImageFile_PE::CopyImportAddrTable(char *aPtr, PEFile &aPeFile)
+//
+// Copy the import address table entries
+//
+	{
+
+	TUint *ptr=(TUint *)aPtr;
+	char *importsection=aPeFile.iSectionData[KImportSection];
+	TUint *src=(TUint *)importsection;
+	while (*src)
+		{
+		TUint vaoffset=src[4];
+		if (!gLittleEndian) ByteSwap(vaoffset);
+		TUint offset=vaoffset-aPeFile.iSectionHeader[KImportSection]->VirtualAddress; // find the offset into the section of import addr table
+		vaoffset=src[3];
+		if (!gLittleEndian) ByteSwap(vaoffset);
+		TUint exportername=vaoffset-aPeFile.iSectionHeader[KImportSection]->VirtualAddress;
+		TUint *p=(TUint *)(importsection+offset);
+		while (*p)
+			{
+			if ((*p&0x80000000)==0)
+				{
+				Print(EError, "%s exporting symbol by name\n", importsection+exportername);
+				return KErrGeneral;
+				}
+			*ptr++=(*p++)&0x7fffffff; // mask out the high bit (- indicates export by ordinal)
+			}
+		src+=5;
+		}
+	*ptr++=0;
+	return KErrNone;
+	}
+
+extern char* gX86imp;
+extern int gX86num_imports;
+extern int gX86num_imp_dlls;
+extern int gX86imp_size;
+int* gX86imp_relocs=NULL;
+
+TInt CrunchImportSection(TAny* aSection, TInt aNumImpDlls, TInt aNumImports)
+	{
+	// Remove lists of ordinals from import section
+	TInt* d = (TInt*)aSection;
+	TInt orig_size = *d;
+	TInt offset_correction = aNumImports*sizeof(TUint);
+	*d -= offset_correction;	// reduce total section size
+	TInt *dd = d+1;
+	TInt *ss = d+1;
+
+	TInt i;
+	for (i=0; i<aNumImpDlls; ++i)
+		{
+		*dd++ = *ss++ - offset_correction;	// copy name offset and reduce it appropriately
+		TInt nimp = *ss++;					// number of imports from this DLL
+		*dd++ = nimp;						// copy it
+		ss += nimp;							// skip the ordinals in the original list
+		}
+	TInt used_size = (ss - d) * sizeof(TInt);
+	memcpy(dd, ss, orig_size - used_size);	// copy name strings
+
+	return *d;	// return new total section size
+	}
+
+char *E32ImageFile_PE::CreateImportSection(const PEFile &aPeFile, TInt &aSize)
+//
+// Create a new format import section
+//
+	{
+
+	int total_imports = 0;
+	if (gX86imp)
+		{
+		TUint *rdata=(TUint*)aPeFile.iSectionData[KConstSection];
+		TInt bytecount=gX86imp_size;
+		char* section=new char[bytecount];
+		memcpy(section,gX86imp,bytecount);
+		int i;
+		int j=0;
+		int* s=(int*)section;
+		s++;
+		gX86imp_relocs=new int[gX86num_imports+gX86num_imp_dlls];
+		for (i=0; i<gX86num_imp_dlls; ++i)
+			{
+			++s;
+			int n=*s++;
+			total_imports += n;
+			while (n--)
+				{
+				int rdata_int_offset=*s>>2;
+				*s=rdata[rdata_int_offset]&0x7fffffffu;	// rdata offset to ordinal
+				gX86imp_relocs[rdata_int_offset]=j<<2;
+				++j;
+				++s;
+				}
+			}
+		*(TInt*)section = bytecount;
+		aSize = CrunchImportSection(section, gX86num_imp_dlls, total_imports);
+		return section;
+		}
+	PIMAGE_SECTION_HEADER aHeader=aPeFile.iSectionHeader[KImportSection];
+	TUint *aSrc=(TUint *)aPeFile.iSectionData[KImportSection];
+
+	TInt nimportdlls=aPeFile.NumberOfImportDlls();
+	if (nimportdlls==0)
+		{
+		aSize=0;
+		return NULL;
+		}
+	E32ImportBlock *block=new E32ImportBlock [nimportdlls];
+	char **name=new char* [nimportdlls];
+	TUint **import=new TUint* [nimportdlls];
+
+	TInt bytecount=sizeof(E32ImportSection)+sizeof(E32ImportBlock)*nimportdlls;
+	TUint *src=aSrc;
+	TInt i;
+	for (i=0; i<nimportdlls; i++)
+		{
+		TUint vaoffset=src[4];
+		if (!gLittleEndian) ByteSwap(vaoffset);
+		TUint offset=vaoffset-aHeader->VirtualAddress; // find the offset into the section of import addr table
+		TUint *p=aSrc+offset/4;
+		block[i].iNumberOfImports=0;
+		while (*p++)
+			block[i].iNumberOfImports++;
+		total_imports += block[i].iNumberOfImports;
+		import[i]=new TUint [block[i].iNumberOfImports];
+		TInt j;
+		p=aSrc+offset/4;
+		for (j=0; j<block[i].iNumberOfImports; j++)
+			{
+			import[i][j]=(*p++)&0x7fffffffu;
+			bytecount+=4;
+			}
+		// name
+		vaoffset=src[3];
+		if (!gLittleEndian) ByteSwap(vaoffset);
+		offset=vaoffset-aHeader->VirtualAddress;
+		name[i]=((char *)aSrc)+offset;
+		bytecount+=strlen(name[i])+1;
+		src+=5;
+		}
+
+	bytecount=ALIGN4(bytecount);
+	char *section=new char [bytecount];
+	char *s=section+sizeof(E32ImportSection);
+	for (i=0; i<nimportdlls; i++)
+		{
+		memcpy(s, (char *)&block[i], sizeof(E32ImportBlock));
+		s+=sizeof(E32ImportBlock);
+		memcpy(s, (char *)import[i], block[i].iNumberOfImports*4);
+		s+=block[i].iNumberOfImports*4;
+		}
+	char *t=section+sizeof(E32ImportSection);
+	for (i=0; i<nimportdlls; i++)
+		{
+		((E32ImportBlock *)t)->iOffsetOfDllName=s-section;
+		strcpy(s, name[i]);
+		s+=strlen(name[i])+1;
+		t += ((E32ImportBlock *)t)->iNumberOfImports * sizeof(TUint) + sizeof(E32ImportBlock);
+		}
+	while ((s-section)<bytecount)
+		*s++=0;
+
+	// free mem
+	for (i=0; i<nimportdlls; i++)
+		delete import[i];
+	delete block;
+	delete import;
+	delete name;
+
+	*(TInt*)section = bytecount;
+	aSize = CrunchImportSection(section, nimportdlls, total_imports);
+	return section;
+	}
+
+TUint E32ImageFile_PE::FixImportThunk(PEFile &aPeFile, TUint va)
+//
+// Fix an access to the import address table
+//
+	{
+
+	TUint *imports=(TUint *)aPeFile.iSectionData[KImportSection];
+	TUint n=0;
+	TUint importoffset=imports[4];
+	if (!gLittleEndian) ByteSwap(importoffset);
+	TUint iat=importoffset-aPeFile.iSectionHeader[KImportSection]->VirtualAddress;
+
+	while (iat<va)
+		{
+		if (*((TUint *)(aPeFile.iSectionData[KImportSection]+iat))==0)
+			{
+			imports+=5;
+			importoffset=imports[4];
+			if (!gLittleEndian) ByteSwap(importoffset);
+			iat=importoffset-aPeFile.iSectionHeader[KImportSection]->VirtualAddress;
+			}
+		else
+			{
+			n++;
+			iat+=4;
+			}
+		}
+
+	// Flag errors brought about by a corrupt input binary
+	if (iat>va)
+		{
+		Print(EError, "%s is corrupt - problem processing import address table.\n", this->iFileName);
+		return (TUint)KErrGeneral;
+		}
+		
+	return iHdr->iTextSize+n*sizeof(TUint);
+	}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/pefile/pe_reloc.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,374 @@
+// Copyright (c) 1996-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#include <stdlib.h>
+#include <string.h>
+#include <e32std.h>
+#include <e32std_private.h>
+#include "pe_file.h"
+#include "h_utl.h"
+#include <stdio.h>
+
+extern char* gX86imp;
+extern int gX86num_imp_dlls;
+extern int gX86imp_size;
+extern int gX86num_imports;
+extern int* gX86imp_relocs;
+
+TInt sizeOfCodeRelocs(TUint *relocs, TUint *relocsection, TInt nrelocs)
+	{
+
+	TInt bytecount=0;
+	TInt page=-1;
+	TInt i;
+	for (i=0; i<nrelocs; i++)
+		{
+		if ((TInt)relocsection[i]==KTextSection || (TInt)relocsection[i]==KConstSection || (TInt)relocsection[i]==KCrtSection)
+			{
+			TInt p=relocs[i]&0xfffff000;
+			if (page!=p)
+				{
+				if (bytecount%4!=0)
+					bytecount+=2;
+				bytecount+=8; // page, block size
+				page=p;
+				}
+			bytecount+=2;
+			}
+		}
+	if (bytecount%4!=0)
+		bytecount+=2;
+	return bytecount;
+	}
+
+TInt sizeOfDataRelocs(TUint *relocs, TUint *relocsection, TInt nrelocs)
+	{
+
+	TInt bytecount=0;
+	TInt page=-1;
+	TInt i;
+	for (i=0; i<nrelocs; i++)
+		{
+		if ((TInt)relocsection[i]==KDataSection)
+			{
+			TInt p=relocs[i]&0xfffff000;
+			if (page!=p)
+				{
+				if (bytecount%4!=0)
+					bytecount+=2;
+				bytecount+=8; // page, block size
+				page=p;
+				}
+			bytecount+=2;
+			}
+		}
+	if (bytecount%4!=0)
+		bytecount+=2;
+	return bytecount;
+	}
+
+void reorderRelocs(TUint aReloc[], TUint aRelocSection[], TInt aNumberOfRelocs)
+//
+// sort the relocations in section order
+//
+	{
+	TUint *temp=new TUint [aNumberOfRelocs];
+	TUint *tempsection=new TUint [aNumberOfRelocs];
+	TInt idx=0;
+	TUint section=0;
+	while (idx<aNumberOfRelocs)
+		{
+		for (TInt i=0; i<aNumberOfRelocs; i++)
+			{
+			if (aRelocSection[i]==section)
+				{
+				temp[idx]=aReloc[i];
+				tempsection[idx]=aRelocSection[i];
+				idx++;
+				}
+			}
+		section++;
+		}
+	memcpy((char *)aReloc, (char *)temp, aNumberOfRelocs*sizeof(TUint));
+	memcpy((char *)aRelocSection, (char *)tempsection, aNumberOfRelocs*sizeof(TUint));
+	delete [] temp;
+	delete [] tempsection;
+	}
+
+char *E32ImageFile_PE::CreateCodeRelocs(TUint *relocs, TUint *relocsection, TInt nrelocs, TInt &aSize)
+	{
+
+	TInt bytecount=sizeOfCodeRelocs(relocs, relocsection, nrelocs);
+	aSize=0;
+	if (bytecount==0)
+		return NULL;
+	aSize=bytecount+sizeof(E32RelocSection);
+
+	char *section=new char [bytecount+sizeof(E32RelocSection)];
+	char *data=section+sizeof(E32RelocSection);
+	char *startofblock=data;
+
+	TInt ncoderelocs=0;
+	TInt page=-1;
+	TInt pagesize=8;
+	TInt i;
+	for (i=0; i<nrelocs; i++)
+		{
+		if ((TInt)relocsection[i]==KTextSection || (TInt)relocsection[i]==KConstSection || (TInt)relocsection[i]==KCrtSection)
+			{
+			TInt p=relocs[i]&0xfffff000;
+			if (page!=p)
+				{
+				if (pagesize%4!=0)
+					{
+					*(TUint16 *)data=0;
+					data+=2;
+					pagesize+=2;
+					}
+				*(TUint *)startofblock=page;
+				*(TUint *)(startofblock+4)=pagesize;
+				pagesize=8;
+				page=p;
+				startofblock=data;
+				data+=8;
+				}
+			*(TUint16 *)data=(TUint16)((relocs[i]&0xfff)|0x3000);
+			data+=2;
+			pagesize+=2;
+			ncoderelocs++;
+			}
+		}
+	if (pagesize%4!=0)
+		{
+		*(TUint16 *)data=0;
+		data+=2;
+		pagesize+=2;
+		}
+	*(TUint *)startofblock=page;
+	*(TUint *)(startofblock+4)=pagesize;
+	((E32RelocSection *)section)->iNumberOfRelocs=ncoderelocs;
+	((E32RelocSection *)section)->iSize=bytecount;
+	return section;
+	}
+
+char *E32ImageFile_PE::CreateDataRelocs(TUint *relocs, TUint *relocsection, TInt nrelocs, TInt &aSize)
+	{
+
+	TInt bytecount=sizeOfDataRelocs(relocs, relocsection, nrelocs);
+	aSize=0;
+	if (bytecount==0)
+		return NULL;
+	aSize=bytecount+sizeof(E32RelocSection);
+
+	char *section=new char [bytecount+sizeof(E32RelocSection)];
+	char *data=section+sizeof(E32RelocSection);
+	char *startofblock=data;
+
+	TInt ndatarelocs=0;
+	TInt page=-1;
+	TInt pagesize=8;
+	TInt i;
+	for (i=0; i<nrelocs; i++)
+		{
+		if ((TInt)relocsection[i]==KDataSection)
+			{
+			TInt p=relocs[i]&0xfffff000;
+			if (page!=p)
+				{
+				if (pagesize%4!=0)
+					{
+					*(TUint16 *)data=0;
+					data+=2;
+					pagesize+=2;
+					}
+				*(TUint *)startofblock=page;
+				*(TUint *)(startofblock+4)=pagesize;
+				pagesize=8;
+				page=p;
+				startofblock=data;
+				data+=8;
+				}
+			*(TUint16 *)data=(TUint16)((relocs[i]&0xfff)|0x3000);
+			data+=2;
+			pagesize+=2;
+			ndatarelocs++;
+			}
+		}
+	if (pagesize%4!=0)
+		{
+		*(TUint16 *)data=0;
+		data+=2;
+		pagesize+=2;
+		}
+	*(TUint *)startofblock=page;
+	*(TUint *)(startofblock+4)=pagesize;
+
+	((E32RelocSection *)section)->iNumberOfRelocs=ndatarelocs;
+	((E32RelocSection *)section)->iSize=bytecount;
+	return section;
+	}
+
+void checkreloc(PEFile &aPeFile, TUint va, TUint reloc)
+	{
+
+	// Allow the section find routine to use heuristics to resolve addresses
+	// which have been offset by the compiler
+	TInt s = aPeFile.FindSectionByVa(va, 1);
+	switch(s)
+		{
+		case KTextSection:
+		case KConstSection:
+		case KDataSection:
+		case KCrtSection:
+		case KBssSection:
+		case KImportSection:
+			return;
+		default:
+			break;
+		}
+	Print(EAlways, "bad relocation:  [%08x] = %08x\n", reloc, va);
+	}
+
+void E32ImageFile_PE::FixRelocs(PEFile &aPeFile, TUint *relocation, TUint *relocsection, TInt aNumberOfRelocs)
+	{
+
+	TUint *data;
+	TInt i;
+#if 0
+	Print(EAlways, "Linked base %08x\n", aPeFile.iLinkedBase);
+	for (i=0; i<KNumberOfSections; i++)
+		{
+		if (!aPeFile.iSectionHeader[i])
+			continue;
+		TUint start = aPeFile.iSectionHeader[i]->VirtualAddress;
+		TUint finish = start + aPeFile.iSectionHeader[i]->Misc.VirtualSize;
+		Print(EAlways, "Section %d %08x-%08x\n", i, start, finish);
+		}
+#endif
+	for (i=0; i<aNumberOfRelocs; i++)
+		{
+		switch (relocsection[i])
+			{
+		case KTextSection:
+			relocation[i]-=aPeFile.iSectionHeader[KTextSection]->VirtualAddress;
+			data=(TUint *)(aPeFile.iSectionData[KTextSection]+relocation[i]);
+			if (!gLittleEndian) ByteSwap(*data);
+			checkreloc(aPeFile, *data, relocation[i]+aPeFile.iSectionHeader[KTextSection]->VirtualAddress);
+			*data=FixAddress(aPeFile, *data);
+			if (!gLittleEndian) ByteSwap(*data);
+			break;
+		case KConstSection:
+			relocation[i]-=aPeFile.iSectionHeader[KConstSection]->VirtualAddress;
+			data=(TUint *)(aPeFile.iSectionData[KConstSection]+relocation[i]);
+			if (!gLittleEndian) ByteSwap(*data);
+			checkreloc(aPeFile, *data, relocation[i]+aPeFile.iSectionHeader[KConstSection]->VirtualAddress);
+			relocation[i]+=ConstOffset();
+			*data=FixAddress(aPeFile, *data);
+			if (!gLittleEndian) ByteSwap(*data);
+			break;
+		case KCrtSection:
+			relocation[i]-=aPeFile.iSectionHeader[KCrtSection]->VirtualAddress;
+			data=(TUint *)(aPeFile.iSectionData[KCrtSection]+relocation[i]);
+			if (!gLittleEndian) ByteSwap(*data);
+			checkreloc(aPeFile, *data, relocation[i]+aPeFile.iSectionHeader[KCrtSection]->VirtualAddress);
+			relocation[i]+=iCrtOffset;
+			*data=FixAddress(aPeFile, *data);
+			if (!gLittleEndian) ByteSwap(*data);
+			break;
+		case KDataSection:
+			relocation[i]-=aPeFile.iSectionHeader[KDataSection]->VirtualAddress;
+			data=(TUint *)(aPeFile.iSectionData[KDataSection]+relocation[i]);
+			if (!gLittleEndian) ByteSwap(*data);
+			checkreloc(aPeFile, *data, relocation[i]+aPeFile.iSectionHeader[KDataSection]->VirtualAddress);
+			*data=FixAddress(aPeFile, *data);
+			if (!gLittleEndian) ByteSwap(*data);
+			break;
+		default:
+			Print(EWarning, "Relocation in invalid section.\n");
+			break;
+			}
+		}
+	reorderRelocs(relocation, relocsection, aNumberOfRelocs);
+	}
+
+TUint E32ImageFile_PE::FixAddress(PEFile &aPeFile, TUint va)
+//
+// Fix the given virtual address for the new headers
+//
+	{
+
+	// Allow the section find routine to use heuristics to resolve addresses
+	// which have been offset by the compiler
+	TInt section=aPeFile.FindSectionByVa(va, 1);
+	switch(section)
+		{
+		case KTextSection:
+			va-=aPeFile.iLinkedBase;
+			va-=aPeFile.iSectionHeader[KTextSection]->VirtualAddress;
+			va+=iHdr->iCodeBase;
+			break;
+		case KConstSection:
+			va-=aPeFile.iLinkedBase;
+			va-=aPeFile.iSectionHeader[KConstSection]->VirtualAddress;
+			if (gX86imp)
+				{
+				TUint old_iat_size=(gX86num_imports+gX86num_imp_dlls)<<2;
+				if (va<old_iat_size)
+					{
+					TInt offset=iHdr->iTextSize;
+//					fprintf(stderr,"IAT OFF %x ",va);
+					va=gX86imp_relocs[va>>2]+iHdr->iCodeBase+offset;
+//					fprintf(stderr,"-> %x\n",va);
+					break;
+					}
+				}
+			va+=iHdr->iCodeBase+ConstOffset();
+//			fprintf(stderr,"const reloc -> %x\n",va);
+			break;
+		case KDataSection:
+			va-=aPeFile.iLinkedBase;
+			va-=aPeFile.iSectionHeader[KDataSection]->VirtualAddress;
+			va+=iHdr->iDataBase; //DataOffset();
+			break;
+		case KCrtSection:
+			va-=aPeFile.iLinkedBase;
+			va-=aPeFile.iSectionHeader[KCrtSection]->VirtualAddress;
+			va+=iHdr->iCodeBase+iCrtOffset;
+			break;
+		case KBssSection:
+			va-=aPeFile.iLinkedBase;
+			va-=aPeFile.iSectionHeader[KBssSection]->VirtualAddress;
+			va+=iHdr->iDataBase+iHdr->iDataSize;
+			break;
+		case KImportSection:
+			va-=aPeFile.iLinkedBase;
+			va=FixImportThunk(aPeFile, va-aPeFile.iSectionHeader[KImportSection]->VirtualAddress);
+			va+=iHdr->iCodeBase;
+			break;
+		default:
+			if (va < 0x10000u)
+				{
+				// assume it's a relocation relative to an omitted section
+				break;
+				}
+			Print(EWarning, "Address to relocate cannot be resolved to .text, .rdata, .idata or data sections\n");
+			Print(EWarning, "Problem address = %08x (section %d)\n", va, section);
+			break;
+		}
+	// va is now an offset from the start of the text
+	return va;
+	}
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/pefile/pe_tran.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,453 @@
+// Copyright (c) 1996-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#include <time.h>
+#include <malloc.h>
+#include <string.h>
+#include "e32image.h"
+#include <e32std.h>
+#include <e32std_private.h>
+#include "pe_defs.h"
+#include "pe_file.h"
+#include "h_ver.h"
+#include "h_utl.h"
+
+int gAlignConstSection=FALSE;
+TUint gConstSectionAddressMask=0;
+static TUint gRequiredConstPadding;
+
+extern char* gX86imp;
+extern int gX86num_imp_dlls;
+extern int gX86imp_size;
+extern int gX86num_imports;
+
+E32ImageFile* E32ImageFile::New()
+	{
+	return new E32ImageFile_PE;
+	}
+
+E32ImageFile_PE::E32ImageFile_PE()
+	{
+	}
+
+E32ImageFile_PE::~E32ImageFile_PE()
+	{
+	}
+
+TUint E32ImageFile_PE::ImportAddressTableOffset()
+//
+// Return the offset of the iat
+//
+	{
+	return iHdr->iTextSize;
+	}
+
+TUint E32ImageFile_PE::ConstOffset()
+//
+// return the offset of the const data
+//
+	{
+	return iConstOffset;
+	}
+
+void E32ImageFile_PE::CreateExportDirectory(char *aPtr, PEFile &aPeFile)
+//
+// create a new format export directory
+//
+	{
+	
+	if (iHdr->iExportDirCount==0)
+		return;
+	TUint *src=(TUint *)aPeFile.iSectionData[KExportSection];
+	TUint *dst=(TUint *)aPtr;
+	PIMAGE_EXPORT_DIRECTORY dir=(PIMAGE_EXPORT_DIRECTORY)src;
+	src+=(((TInt)dir->AddressOfFunctions)-((TInt)aPeFile.iSectionHeader[KExportSection]->VirtualAddress))/4;
+	TUint i;
+	for (i=0; i<dir->NumberOfFunctions; i++)
+		{
+		TUint va=*src++;
+		dst[i]=va;
+		}
+	FixExportDirectory(dst, aPeFile);
+	}
+
+void E32ImageFile_PE::FixExportDirectory(TUint *aExportDir, PEFile &aPeFile)
+//
+// Fix the export directory
+//
+	{
+
+	TUint lb = aPeFile.iLinkedBase;
+	TUint *exportdir=aExportDir;
+	TInt n;
+	for (n=0; n<(TInt)iHdr->iExportDirCount; n++)
+		{
+		TUint va=*exportdir;
+		if (!gLittleEndian) ByteSwap(va);
+
+		// va is the address of an exported item, so assume it can't have been offset
+		TInt i=aPeFile.FindSectionByVa(va+lb);
+		if (i==KTextSection)
+			va=va-aPeFile.iSectionHeader[i]->VirtualAddress;
+		else if (i==KConstSection)
+			va=va-aPeFile.iSectionHeader[i]->VirtualAddress+ConstOffset();
+		else if (i==KDataSection)
+			va=va-aPeFile.iSectionHeader[i]->VirtualAddress+DataOffset();
+		else if (i==KBssSection)
+			va=va-aPeFile.iSectionHeader[i]->VirtualAddress+BssOffset();
+		else
+			{
+			if (va == 0)
+				Print(EWarning, "No export specified for ordinal %d\n", n+1, va);
+			else
+				Print(EError, "Export %d (address %08x) is not from .text, .rdata, or data sections\n", n+1, va);
+			}
+		if (!gLittleEndian) ByteSwap(va);
+		*exportdir++=va;
+		}
+	}
+
+TInt E32ImageFile_PE::DoCodeHeader(PEFile &aPeFile)
+//
+// Calculate the code parts of the pefile
+//
+	{
+
+	// .text
+	TInt size=ALIGN4(aPeFile.iSectionHeader[KTextSection]->Misc.VirtualSize);
+
+	// .rdata
+	iConstOffset=0;
+	if (gAlignConstSection)
+		{
+	    // Compute the amount of padding to put before the
+	    // const section to align it correctly
+	    TUint   oldAddressBits = aPeFile.iSectionHeader[KConstSection]->VirtualAddress & gConstSectionAddressMask;
+	    TUint   oldConstAddress = size;
+	    TUint   newConstAddress = oldConstAddress;
+	    // slow but sure
+	    while ((newConstAddress & gConstSectionAddressMask) != oldAddressBits)
+	    	{
+			newConstAddress++;
+			}
+	    gRequiredConstPadding = newConstAddress - oldConstAddress;
+	    size += gRequiredConstPadding;
+		}
+	if (aPeFile.iSectionHeader[KConstSection])
+		{
+		iConstOffset = size;
+		size += ALIGN4(aPeFile.iSectionHeader[KConstSection]->Misc.VirtualSize);
+		}
+
+	// .crt
+	iCrtOffset=0;
+	if (aPeFile.iSectionHeader[KCrtSection])
+		{
+		iCrtOffset = size;
+		size += ALIGN4(aPeFile.iSectionHeader[KCrtSection]->Misc.VirtualSize);
+		}
+
+	iHdr->iTextSize=size; // The "text" part of the E32 code section combines PE's .text + .rdata + .crt.
+						  // The remainder of the E32 code section is the IAT + export directory.
+
+	// Import Address Table (IAT)
+	TInt nimports=gX86imp?gX86num_imports:aPeFile.NumberOfImports();
+	if (nimports!=0)
+		size+=nimports*4+4; // null terminated
+	
+	// Export Dir
+	if (iHdr->iExportDirCount)
+		{
+		iHdr->iExportDirOffset = iHdr->iCodeOffset + size;
+		size += ALIGN4(iHdr->iExportDirCount*4);
+		}
+	iHdr->iCodeSize=size;
+	return size;
+	}
+
+TInt E32ImageFile_PE::DoDataHeader(PEFile &aPeFile, TUint aDataBase)
+//
+//
+//
+	{
+
+	if (aDataBase==NULL)
+		aDataBase=iHdr->iCodeBase+iHdr->iCodeSize;
+	TInt size=0;
+	if (PEFile::HasInitialisedData(aPeFile.iSectionHeader[KDataSection]))
+		{
+		size=ALIGN4(aPeFile.iSectionHeader[KDataSection]->Misc.VirtualSize);
+		iHdr->iDataBase=aDataBase;
+		iHdr->iDataOffset = iHdr->iCodeOffset + iHdr->iCodeSize;
+		TInt bsssize=aPeFile.iSectionHeader[KDataSection]->Misc.VirtualSize-aPeFile.iSectionHeader[KDataSection]->SizeOfRawData;
+		// drop any uninitialised data
+		if (bsssize>0)
+			{
+			iHdr->iBssSize+=bsssize;
+			size=ALIGN4(aPeFile.iSectionHeader[KDataSection]->SizeOfRawData);
+			}
+		iHdr->iDataSize=size;
+		}
+	else if (aPeFile.iSectionHeader[KDataSection])
+		{ // just .bss
+		iHdr->iDataBase=aDataBase;
+		TInt bsssize=aPeFile.iSectionHeader[KDataSection]->Misc.VirtualSize;
+		iHdr->iBssSize+=bsssize;
+		}
+	if (aPeFile.iSectionHeader[KBssSection])
+		{
+		iHdr->iBssSize+=ALIGN4(aPeFile.iSectionHeader[KBssSection]->Misc.VirtualSize);
+		if (iHdr->iDataBase==0) // .bss but no .data
+			iHdr->iDataBase=aDataBase;
+		}
+	return size;
+	}
+
+TInt E32ImageFile_PE::CopyCode(char *p, PEFile &aPeFile)
+//
+// Copies the files code sections to p
+// returns the number of bytes copied or KErrGeneral
+//
+	{
+
+	// text
+	TInt size=aPeFile.iSectionHeader[KTextSection]->Misc.VirtualSize;
+	memcpy(p, aPeFile.iSectionData[KTextSection], size);
+	TInt text_offset=ALIGN4(size);
+	p+=text_offset;
+
+	// rdata
+	if (aPeFile.iSectionData[KConstSection])
+		{
+		if (gAlignConstSection)
+			{
+			// add padding ahead of const section
+			p += gRequiredConstPadding;
+			}
+		TInt size=ALIGN4(aPeFile.iSectionHeader[KConstSection]->Misc.VirtualSize);
+		memcpy(p, aPeFile.iSectionData[KConstSection], size);
+		p+=size;
+		}
+	if (aPeFile.iSectionData[KCrtSection])
+		{
+		TInt size=ALIGN4(aPeFile.iSectionHeader[KCrtSection]->Misc.VirtualSize);
+		memcpy(p, aPeFile.iSectionData[KCrtSection], size);
+		p+=size;
+		}
+
+	// iat
+	TInt nimports=gX86imp?gX86num_imports:aPeFile.NumberOfImports();
+//	TInt nimports=aPeFile.NumberOfImports();
+	if (nimports)
+		{
+		if (gX86imp)
+			{
+			TUint *rdata=(TUint*)aPeFile.iSectionData[KConstSection];
+			int i;
+			int* s=(int*)gX86imp;
+			s++;
+			for (i=0; i<gX86num_imp_dlls; ++i)
+				{
+				++s;
+				int n=*s++;
+				while (n--)
+					{
+					*(int*)p=rdata[(*s)>>2]&0x7fffffffu;	// rdata offset to ordinal
+					++s;
+					p+=4;
+					}
+				}
+			*(int*)p=0;
+			p+=4;
+			}
+		else
+			{
+			TInt r=CopyImportAddrTable(p, aPeFile);
+			p+=ALIGN4(nimports*4+4);
+			if (r!=KErrNone)
+				return Print(EError, "%s is importing symbols by name.\n", iFileName);
+			}
+		}
+	// export dir
+	CreateExportDirectory(p, aPeFile);
+	p+=iHdr->iExportDirCount*4;
+	return iHdr->iCodeSize;
+	}
+
+TInt E32ImageFile_PE::CopyData(char *p, PEFile &aPeFile)
+	{
+	
+	if (iHdr->iDataSize)
+		memcpy(p, aPeFile.iSectionData[KDataSection], iHdr->iDataSize);
+	return iHdr->iDataSize;
+	}
+
+TInt E32ImageFile_PE::Translate(const char* aFileName, TUint aDataBase, TBool aAllowDllData, TBool /*aSymLkupEnabled*/)
+//
+// Translate a PE format file to a E32Image file
+//
+	{
+	iSource = EPeFile;
+	PEFile pefile;
+	if (!pefile.Init((const TText * const)aFileName))
+		return KErrGeneral;
+	TInt r=pefile.ReadSectionHeaders();
+	if (r!=KErrNone) return r;
+	r=pefile.ReadData();
+	if (r!=KErrNone) return r;
+	pefile.Close();
+	r=pefile.Normalise();
+	if (r!=KErrNone) return r;
+	iFileName = strdup(aFileName);
+
+	Adjust(ALIGN4(sizeof(E32ImageHeaderV)));	// fixed for now because holes not supported
+	SetDefaultHeader();
+	if (gX86imp)
+		iHdr->iDllRefTableCount=gX86num_imp_dlls;
+	else
+		iHdr->iDllRefTableCount=pefile.NumberOfImportDlls();
+	iHdr->iExportDirCount=pefile.NumberOfExports();
+	iHdr->iCodeBase=pefile.iLinkedBase;
+	TInt nimports=gX86imp?gX86num_imports:pefile.NumberOfImports();
+
+	TInt importSectionSize;
+	char *newImportSection=CreateImportSection(pefile, importSectionSize);
+
+	TInt size = ALIGN4(sizeof(E32ImageHeaderV));	// fixed for now because holes not supported
+	iHdr->iCodeOffset = size;
+	TInt pos = size;
+	size+=DoCodeHeader(pefile);
+	TInt t=DoDataHeader(pefile, aDataBase);
+	if (t>0)
+		{
+		iHdr->iDataOffset = size;
+		size += t;
+		}
+	if (importSectionSize!=0)
+		{
+		iHdr->iImportOffset = size;
+		size += importSectionSize;
+		}
+
+	char *newCodeRelocs=NULL;
+	char *newDataRelocs=NULL;
+	TInt codeRelocSize=0, dataRelocSize=0;
+	TInt nrelocs=pefile.NumberOfRelocs();
+	if (nrelocs)
+		{
+		TUint *relocs=new TUint [nrelocs];
+		TUint *relocsection=new TUint [nrelocs];
+		pefile.GetRelocs(relocs, relocsection, nrelocs);
+		FixRelocs(pefile, relocs, relocsection, nrelocs);
+		newCodeRelocs=CreateCodeRelocs(relocs, relocsection, nrelocs, codeRelocSize);
+		newDataRelocs=CreateDataRelocs(relocs, relocsection, nrelocs, dataRelocSize);
+		if (codeRelocSize)
+			{
+			iHdr->iCodeRelocOffset = size;
+			size += codeRelocSize;
+			}
+		if (dataRelocSize)
+			{
+			iHdr->iDataRelocOffset = size;
+			size += dataRelocSize;
+			}
+		delete [] relocs;
+		delete [] relocsection;
+		}
+
+	Adjust(size);
+	t=CopyCode(iData + pos, pefile);
+	if (t<0)
+		return KErrGeneral;
+	pos += t;
+	pos += CopyData(iData + pos, pefile);
+	if (nimports)
+		{
+		memcpy(iData + pos, newImportSection, importSectionSize);
+		pos += importSectionSize;
+		}
+	if (codeRelocSize)
+		{
+		memcpy(iData + pos, newCodeRelocs, codeRelocSize);
+		pos += codeRelocSize;
+		}
+	if (dataRelocSize)
+		{
+		memcpy(iData + pos, newDataRelocs, dataRelocSize);
+		pos += dataRelocSize;
+		}
+
+	// locate the entry point
+	// entry point must be in the text section
+	TInt entryPointSectionIndex=pefile.FindSectionByVa(pefile.iEntryPoint+pefile.iLinkedBase);
+	TUint entryPointOffset=pefile.iEntryPoint-pefile.iSectionHeader[entryPointSectionIndex]->VirtualAddress;
+	if (entryPointSectionIndex!=KTextSection)
+		return Print(EError, "Entry Point not in code section\n");
+
+	// Arrange a header for this E32 Image
+	switch (pefile.iCpu)
+		{
+	case IMAGE_FILE_MACHINE_I386:
+		iHdr->iCpuIdentifier = (TUint16)ECpuX86;
+		break;
+	case 0x0a00:
+		iHdr->iCpuIdentifier = (TUint16)ECpuArmV4;
+		break;
+	case 0x0b00:
+		iHdr->iCpuIdentifier = (TUint16)ECpuMCore;
+		break;
+	default:
+		iHdr->iCpuIdentifier = (TUint16)ECpuUnknown;
+		break;
+		}
+
+	// Import format is PE-derived without redundant ordinal lists
+	// ABI is GCC98r2 ABI (on ARM)
+	iHdr->iFlags |= KImageImpFmt_PE2;
+
+	if (pefile.iImageIsDll)
+		{
+		iHdr->iFlags|=KImageDll;
+		if (iHdr->iDataSize && !aAllowDllData)
+			return Print(EError, "Dll '%s' has initialised data.\n", iFileName);
+		if (iHdr->iBssSize  && !aAllowDllData)
+			return Print(EError, "Dll '%s' has uninitialised data.\n", iFileName);
+		}
+	iHdr->iHeapSizeMin=pefile.iHeapCommittedSize;
+	iHdr->iHeapSizeMax=pefile.iHeapReservedSize;
+	iHdr->iStackSize=pefile.iStackCommittedSize;
+	iHdr->iEntryPoint=entryPointOffset;
+	r = DetermineEntryPointType();
+	if (r == KErrCorrupt)
+		return Print(EError, "File '%s': Bad Entry Point.\n", iFileName);
+	else if (r == KErrNotSupported)
+		return Print(EError, "File '%s': Bad Entry Point Type.\n", iFileName);
+
+	delete [] newImportSection;
+	delete [] newCodeRelocs;
+	delete [] newDataRelocs;
+
+	return KErrNone;
+	}
+
+TBool E32ImageFile_PE::Translate(PEFile &aPeFile)
+//
+//
+//
+	{
+
+	return Translate((const char*)aPeFile.iFileName, NULL, EFalse, EFalse);
+	}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/pefile/pe_utl.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,93 @@
+// Copyright (c) 1996-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#include <e32std.h>
+#include <e32std_private.h>
+#include "pe_file.h"
+#include <string.h>
+#include "e32image.h"
+
+TInt PEFile::CmpSectionName(PIMAGE_SECTION_HEADER apSectionHeader, char *aName)
+//
+// Returns true if the name of the pe section is the same as aName
+//
+	{
+
+	return (strnicmp((const char *)apSectionHeader->Name, aName, IMAGE_SIZEOF_SHORT_NAME)==0);
+	}
+
+TInt PEFile::VirtualAddressInSection(TUint aVA, PIMAGE_SECTION_HEADER aHeader)
+//
+// Returns true if the virtual address is in the section
+//
+	{
+
+	TUint start = iLinkedBase + aHeader->VirtualAddress;
+	TUint finish = start + aHeader->Misc.VirtualSize;
+	return (aVA>=start) && (aVA<finish);
+	}
+
+TUint PEFile::DistanceFromSection(TUint aVA, PIMAGE_SECTION_HEADER aHeader)
+//
+// Returns the minimum distance from aVA to any address in the specified section
+//
+	{
+
+	TUint start = iLinkedBase + aHeader->VirtualAddress;
+	TUint finish = start + aHeader->Misc.VirtualSize;
+	if (aVA>=start)
+		{
+		if (aVA<finish)
+			return 0;
+		return aVA - finish + 1;
+		}
+	return start - aVA;
+	}
+
+TInt PEFile::FindSectionByVa(TUint aVA, TUint aTryToBeClever)
+	{
+	TInt i;
+	TInt s = -1;
+	if (aTryToBeClever == 0)
+		{
+		for (i=0; i<KNumberOfSections; i++)
+			if (iSectionHeader[i])
+				if (VirtualAddressInSection(aVA, iSectionHeader[i]))
+					s=i;
+		}
+	if (aTryToBeClever == 1)
+		{
+		// Find the minimum distance from the specified address to any section
+		TUint dist = KMaxTUint;
+		for (i=0; i<KNumberOfSections; i++)
+			{
+			if (!iSectionHeader[i])
+				continue;
+			TUint d = DistanceFromSection(aVA, iSectionHeader[i]);
+			if (d < dist)
+				{
+				dist = d;
+				s = i;
+				}
+			else if (d == dist)
+				{
+				s = -1;	// Ambiguous :-(
+				}
+			}
+		if (dist >= 0x1000u)
+			s = -1;		// too far for comfort
+		}
+	return s;
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/readtype/UnicodeData-5.0.txt	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,17720 @@
+0000;<control>;Cc;0;BN;;;;;N;NULL;;;;
+0001;<control>;Cc;0;BN;;;;;N;START OF HEADING;;;;
+0002;<control>;Cc;0;BN;;;;;N;START OF TEXT;;;;
+0003;<control>;Cc;0;BN;;;;;N;END OF TEXT;;;;
+0004;<control>;Cc;0;BN;;;;;N;END OF TRANSMISSION;;;;
+0005;<control>;Cc;0;BN;;;;;N;ENQUIRY;;;;
+0006;<control>;Cc;0;BN;;;;;N;ACKNOWLEDGE;;;;
+0007;<control>;Cc;0;BN;;;;;N;BELL;;;;
+0008;<control>;Cc;0;BN;;;;;N;BACKSPACE;;;;
+0009;<control>;Cc;0;S;;;;;N;CHARACTER TABULATION;;;;
+000A;<control>;Cc;0;B;;;;;N;LINE FEED (LF);;;;
+000B;<control>;Cc;0;S;;;;;N;LINE TABULATION;;;;
+000C;<control>;Cc;0;WS;;;;;N;FORM FEED (FF);;;;
+000D;<control>;Cc;0;B;;;;;N;CARRIAGE RETURN (CR);;;;
+000E;<control>;Cc;0;BN;;;;;N;SHIFT OUT;;;;
+000F;<control>;Cc;0;BN;;;;;N;SHIFT IN;;;;
+0010;<control>;Cc;0;BN;;;;;N;DATA LINK ESCAPE;;;;
+0011;<control>;Cc;0;BN;;;;;N;DEVICE CONTROL ONE;;;;
+0012;<control>;Cc;0;BN;;;;;N;DEVICE CONTROL TWO;;;;
+0013;<control>;Cc;0;BN;;;;;N;DEVICE CONTROL THREE;;;;
+0014;<control>;Cc;0;BN;;;;;N;DEVICE CONTROL FOUR;;;;
+0015;<control>;Cc;0;BN;;;;;N;NEGATIVE ACKNOWLEDGE;;;;
+0016;<control>;Cc;0;BN;;;;;N;SYNCHRONOUS IDLE;;;;
+0017;<control>;Cc;0;BN;;;;;N;END OF TRANSMISSION BLOCK;;;;
+0018;<control>;Cc;0;BN;;;;;N;CANCEL;;;;
+0019;<control>;Cc;0;BN;;;;;N;END OF MEDIUM;;;;
+001A;<control>;Cc;0;BN;;;;;N;SUBSTITUTE;;;;
+001B;<control>;Cc;0;BN;;;;;N;ESCAPE;;;;
+001C;<control>;Cc;0;B;;;;;N;INFORMATION SEPARATOR FOUR;;;;
+001D;<control>;Cc;0;B;;;;;N;INFORMATION SEPARATOR THREE;;;;
+001E;<control>;Cc;0;B;;;;;N;INFORMATION SEPARATOR TWO;;;;
+001F;<control>;Cc;0;S;;;;;N;INFORMATION SEPARATOR ONE;;;;
+0020;SPACE;Zs;0;WS;;;;;N;;;;;
+0021;EXCLAMATION MARK;Po;0;ON;;;;;N;;;;;
+0022;QUOTATION MARK;Po;0;ON;;;;;N;;;;;
+0023;NUMBER SIGN;Po;0;ET;;;;;N;;;;;
+0024;DOLLAR SIGN;Sc;0;ET;;;;;N;;;;;
+0025;PERCENT SIGN;Po;0;ET;;;;;N;;;;;
+0026;AMPERSAND;Po;0;ON;;;;;N;;;;;
+0027;APOSTROPHE;Po;0;ON;;;;;N;APOSTROPHE-QUOTE;;;;
+0028;LEFT PARENTHESIS;Ps;0;ON;;;;;Y;OPENING PARENTHESIS;;;;
+0029;RIGHT PARENTHESIS;Pe;0;ON;;;;;Y;CLOSING PARENTHESIS;;;;
+002A;ASTERISK;Po;0;ON;;;;;N;;;;;
+002B;PLUS SIGN;Sm;0;ES;;;;;N;;;;;
+002C;COMMA;Po;0;CS;;;;;N;;;;;
+002D;HYPHEN-MINUS;Pd;0;ES;;;;;N;;;;;
+002E;FULL STOP;Po;0;CS;;;;;N;PERIOD;;;;
+002F;SOLIDUS;Po;0;CS;;;;;N;SLASH;;;;
+0030;DIGIT ZERO;Nd;0;EN;;0;0;0;N;;;;;
+0031;DIGIT ONE;Nd;0;EN;;1;1;1;N;;;;;
+0032;DIGIT TWO;Nd;0;EN;;2;2;2;N;;;;;
+0033;DIGIT THREE;Nd;0;EN;;3;3;3;N;;;;;
+0034;DIGIT FOUR;Nd;0;EN;;4;4;4;N;;;;;
+0035;DIGIT FIVE;Nd;0;EN;;5;5;5;N;;;;;
+0036;DIGIT SIX;Nd;0;EN;;6;6;6;N;;;;;
+0037;DIGIT SEVEN;Nd;0;EN;;7;7;7;N;;;;;
+0038;DIGIT EIGHT;Nd;0;EN;;8;8;8;N;;;;;
+0039;DIGIT NINE;Nd;0;EN;;9;9;9;N;;;;;
+003A;COLON;Po;0;CS;;;;;N;;;;;
+003B;SEMICOLON;Po;0;ON;;;;;N;;;;;
+003C;LESS-THAN SIGN;Sm;0;ON;;;;;Y;;;;;
+003D;EQUALS SIGN;Sm;0;ON;;;;;N;;;;;
+003E;GREATER-THAN SIGN;Sm;0;ON;;;;;Y;;;;;
+003F;QUESTION MARK;Po;0;ON;;;;;N;;;;;
+0040;COMMERCIAL AT;Po;0;ON;;;;;N;;;;;
+0041;LATIN CAPITAL LETTER A;Lu;0;L;;;;;N;;;;0061;
+0042;LATIN CAPITAL LETTER B;Lu;0;L;;;;;N;;;;0062;
+0043;LATIN CAPITAL LETTER C;Lu;0;L;;;;;N;;;;0063;
+0044;LATIN CAPITAL LETTER D;Lu;0;L;;;;;N;;;;0064;
+0045;LATIN CAPITAL LETTER E;Lu;0;L;;;;;N;;;;0065;
+0046;LATIN CAPITAL LETTER F;Lu;0;L;;;;;N;;;;0066;
+0047;LATIN CAPITAL LETTER G;Lu;0;L;;;;;N;;;;0067;
+0048;LATIN CAPITAL LETTER H;Lu;0;L;;;;;N;;;;0068;
+0049;LATIN CAPITAL LETTER I;Lu;0;L;;;;;N;;;;0069;
+004A;LATIN CAPITAL LETTER J;Lu;0;L;;;;;N;;;;006A;
+004B;LATIN CAPITAL LETTER K;Lu;0;L;;;;;N;;;;006B;
+004C;LATIN CAPITAL LETTER L;Lu;0;L;;;;;N;;;;006C;
+004D;LATIN CAPITAL LETTER M;Lu;0;L;;;;;N;;;;006D;
+004E;LATIN CAPITAL LETTER N;Lu;0;L;;;;;N;;;;006E;
+004F;LATIN CAPITAL LETTER O;Lu;0;L;;;;;N;;;;006F;
+0050;LATIN CAPITAL LETTER P;Lu;0;L;;;;;N;;;;0070;
+0051;LATIN CAPITAL LETTER Q;Lu;0;L;;;;;N;;;;0071;
+0052;LATIN CAPITAL LETTER R;Lu;0;L;;;;;N;;;;0072;
+0053;LATIN CAPITAL LETTER S;Lu;0;L;;;;;N;;;;0073;
+0054;LATIN CAPITAL LETTER T;Lu;0;L;;;;;N;;;;0074;
+0055;LATIN CAPITAL LETTER U;Lu;0;L;;;;;N;;;;0075;
+0056;LATIN CAPITAL LETTER V;Lu;0;L;;;;;N;;;;0076;
+0057;LATIN CAPITAL LETTER W;Lu;0;L;;;;;N;;;;0077;
+0058;LATIN CAPITAL LETTER X;Lu;0;L;;;;;N;;;;0078;
+0059;LATIN CAPITAL LETTER Y;Lu;0;L;;;;;N;;;;0079;
+005A;LATIN CAPITAL LETTER Z;Lu;0;L;;;;;N;;;;007A;
+005B;LEFT SQUARE BRACKET;Ps;0;ON;;;;;Y;OPENING SQUARE BRACKET;;;;
+005C;REVERSE SOLIDUS;Po;0;ON;;;;;N;BACKSLASH;;;;
+005D;RIGHT SQUARE BRACKET;Pe;0;ON;;;;;Y;CLOSING SQUARE BRACKET;;;;
+005E;CIRCUMFLEX ACCENT;Sk;0;ON;;;;;N;SPACING CIRCUMFLEX;;;;
+005F;LOW LINE;Pc;0;ON;;;;;N;SPACING UNDERSCORE;;;;
+0060;GRAVE ACCENT;Sk;0;ON;;;;;N;SPACING GRAVE;;;;
+0061;LATIN SMALL LETTER A;Ll;0;L;;;;;N;;;0041;;0041
+0062;LATIN SMALL LETTER B;Ll;0;L;;;;;N;;;0042;;0042
+0063;LATIN SMALL LETTER C;Ll;0;L;;;;;N;;;0043;;0043
+0064;LATIN SMALL LETTER D;Ll;0;L;;;;;N;;;0044;;0044
+0065;LATIN SMALL LETTER E;Ll;0;L;;;;;N;;;0045;;0045
+0066;LATIN SMALL LETTER F;Ll;0;L;;;;;N;;;0046;;0046
+0067;LATIN SMALL LETTER G;Ll;0;L;;;;;N;;;0047;;0047
+0068;LATIN SMALL LETTER H;Ll;0;L;;;;;N;;;0048;;0048
+0069;LATIN SMALL LETTER I;Ll;0;L;;;;;N;;;0049;;0049
+006A;LATIN SMALL LETTER J;Ll;0;L;;;;;N;;;004A;;004A
+006B;LATIN SMALL LETTER K;Ll;0;L;;;;;N;;;004B;;004B
+006C;LATIN SMALL LETTER L;Ll;0;L;;;;;N;;;004C;;004C
+006D;LATIN SMALL LETTER M;Ll;0;L;;;;;N;;;004D;;004D
+006E;LATIN SMALL LETTER N;Ll;0;L;;;;;N;;;004E;;004E
+006F;LATIN SMALL LETTER O;Ll;0;L;;;;;N;;;004F;;004F
+0070;LATIN SMALL LETTER P;Ll;0;L;;;;;N;;;0050;;0050
+0071;LATIN SMALL LETTER Q;Ll;0;L;;;;;N;;;0051;;0051
+0072;LATIN SMALL LETTER R;Ll;0;L;;;;;N;;;0052;;0052
+0073;LATIN SMALL LETTER S;Ll;0;L;;;;;N;;;0053;;0053
+0074;LATIN SMALL LETTER T;Ll;0;L;;;;;N;;;0054;;0054
+0075;LATIN SMALL LETTER U;Ll;0;L;;;;;N;;;0055;;0055
+0076;LATIN SMALL LETTER V;Ll;0;L;;;;;N;;;0056;;0056
+0077;LATIN SMALL LETTER W;Ll;0;L;;;;;N;;;0057;;0057
+0078;LATIN SMALL LETTER X;Ll;0;L;;;;;N;;;0058;;0058
+0079;LATIN SMALL LETTER Y;Ll;0;L;;;;;N;;;0059;;0059
+007A;LATIN SMALL LETTER Z;Ll;0;L;;;;;N;;;005A;;005A
+007B;LEFT CURLY BRACKET;Ps;0;ON;;;;;Y;OPENING CURLY BRACKET;;;;
+007C;VERTICAL LINE;Sm;0;ON;;;;;N;VERTICAL BAR;;;;
+007D;RIGHT CURLY BRACKET;Pe;0;ON;;;;;Y;CLOSING CURLY BRACKET;;;;
+007E;TILDE;Sm;0;ON;;;;;N;;;;;
+007F;<control>;Cc;0;BN;;;;;N;DELETE;;;;
+0080;<control>;Cc;0;BN;;;;;N;;;;;
+0081;<control>;Cc;0;BN;;;;;N;;;;;
+0082;<control>;Cc;0;BN;;;;;N;BREAK PERMITTED HERE;;;;
+0083;<control>;Cc;0;BN;;;;;N;NO BREAK HERE;;;;
+0084;<control>;Cc;0;BN;;;;;N;;;;;
+0085;<control>;Cc;0;B;;;;;N;NEXT LINE (NEL);;;;
+0086;<control>;Cc;0;BN;;;;;N;START OF SELECTED AREA;;;;
+0087;<control>;Cc;0;BN;;;;;N;END OF SELECTED AREA;;;;
+0088;<control>;Cc;0;BN;;;;;N;CHARACTER TABULATION SET;;;;
+0089;<control>;Cc;0;BN;;;;;N;CHARACTER TABULATION WITH JUSTIFICATION;;;;
+008A;<control>;Cc;0;BN;;;;;N;LINE TABULATION SET;;;;
+008B;<control>;Cc;0;BN;;;;;N;PARTIAL LINE FORWARD;;;;
+008C;<control>;Cc;0;BN;;;;;N;PARTIAL LINE BACKWARD;;;;
+008D;<control>;Cc;0;BN;;;;;N;REVERSE LINE FEED;;;;
+008E;<control>;Cc;0;BN;;;;;N;SINGLE SHIFT TWO;;;;
+008F;<control>;Cc;0;BN;;;;;N;SINGLE SHIFT THREE;;;;
+0090;<control>;Cc;0;BN;;;;;N;DEVICE CONTROL STRING;;;;
+0091;<control>;Cc;0;BN;;;;;N;PRIVATE USE ONE;;;;
+0092;<control>;Cc;0;BN;;;;;N;PRIVATE USE TWO;;;;
+0093;<control>;Cc;0;BN;;;;;N;SET TRANSMIT STATE;;;;
+0094;<control>;Cc;0;BN;;;;;N;CANCEL CHARACTER;;;;
+0095;<control>;Cc;0;BN;;;;;N;MESSAGE WAITING;;;;
+0096;<control>;Cc;0;BN;;;;;N;START OF GUARDED AREA;;;;
+0097;<control>;Cc;0;BN;;;;;N;END OF GUARDED AREA;;;;
+0098;<control>;Cc;0;BN;;;;;N;START OF STRING;;;;
+0099;<control>;Cc;0;BN;;;;;N;;;;;
+009A;<control>;Cc;0;BN;;;;;N;SINGLE CHARACTER INTRODUCER;;;;
+009B;<control>;Cc;0;BN;;;;;N;CONTROL SEQUENCE INTRODUCER;;;;
+009C;<control>;Cc;0;BN;;;;;N;STRING TERMINATOR;;;;
+009D;<control>;Cc;0;BN;;;;;N;OPERATING SYSTEM COMMAND;;;;
+009E;<control>;Cc;0;BN;;;;;N;PRIVACY MESSAGE;;;;
+009F;<control>;Cc;0;BN;;;;;N;APPLICATION PROGRAM COMMAND;;;;
+00A0;NO-BREAK SPACE;Zs;0;CS;<noBreak> 0020;;;;N;NON-BREAKING SPACE;;;;
+00A1;INVERTED EXCLAMATION MARK;Po;0;ON;;;;;N;;;;;
+00A2;CENT SIGN;Sc;0;ET;;;;;N;;;;;
+00A3;POUND SIGN;Sc;0;ET;;;;;N;;;;;
+00A4;CURRENCY SIGN;Sc;0;ET;;;;;N;;;;;
+00A5;YEN SIGN;Sc;0;ET;;;;;N;;;;;
+00A6;BROKEN BAR;So;0;ON;;;;;N;BROKEN VERTICAL BAR;;;;
+00A7;SECTION SIGN;So;0;ON;;;;;N;;;;;
+00A8;DIAERESIS;Sk;0;ON;<compat> 0020 0308;;;;N;SPACING DIAERESIS;;;;
+00A9;COPYRIGHT SIGN;So;0;ON;;;;;N;;;;;
+00AA;FEMININE ORDINAL INDICATOR;Ll;0;L;<super> 0061;;;;N;;;;;
+00AB;LEFT-POINTING DOUBLE ANGLE QUOTATION MARK;Pi;0;ON;;;;;Y;LEFT POINTING GUILLEMET;*;;;
+00AC;NOT SIGN;Sm;0;ON;;;;;N;;;;;
+00AD;SOFT HYPHEN;Cf;0;BN;;;;;N;;;;;
+00AE;REGISTERED SIGN;So;0;ON;;;;;N;REGISTERED TRADE MARK SIGN;;;;
+00AF;MACRON;Sk;0;ON;<compat> 0020 0304;;;;N;SPACING MACRON;;;;
+00B0;DEGREE SIGN;So;0;ET;;;;;N;;;;;
+00B1;PLUS-MINUS SIGN;Sm;0;ET;;;;;N;PLUS-OR-MINUS SIGN;;;;
+00B2;SUPERSCRIPT TWO;No;0;EN;<super> 0032;;2;2;N;SUPERSCRIPT DIGIT TWO;;;;
+00B3;SUPERSCRIPT THREE;No;0;EN;<super> 0033;;3;3;N;SUPERSCRIPT DIGIT THREE;;;;
+00B4;ACUTE ACCENT;Sk;0;ON;<compat> 0020 0301;;;;N;SPACING ACUTE;;;;
+00B5;MICRO SIGN;Ll;0;L;<compat> 03BC;;;;N;;;039C;;039C
+00B6;PILCROW SIGN;So;0;ON;;;;;N;PARAGRAPH SIGN;;;;
+00B7;MIDDLE DOT;Po;0;ON;;;;;N;;;;;
+00B8;CEDILLA;Sk;0;ON;<compat> 0020 0327;;;;N;SPACING CEDILLA;;;;
+00B9;SUPERSCRIPT ONE;No;0;EN;<super> 0031;;1;1;N;SUPERSCRIPT DIGIT ONE;;;;
+00BA;MASCULINE ORDINAL INDICATOR;Ll;0;L;<super> 006F;;;;N;;;;;
+00BB;RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK;Pf;0;ON;;;;;Y;RIGHT POINTING GUILLEMET;*;;;
+00BC;VULGAR FRACTION ONE QUARTER;No;0;ON;<fraction> 0031 2044 0034;;;1/4;N;FRACTION ONE QUARTER;;;;
+00BD;VULGAR FRACTION ONE HALF;No;0;ON;<fraction> 0031 2044 0032;;;1/2;N;FRACTION ONE HALF;;;;
+00BE;VULGAR FRACTION THREE QUARTERS;No;0;ON;<fraction> 0033 2044 0034;;;3/4;N;FRACTION THREE QUARTERS;;;;
+00BF;INVERTED QUESTION MARK;Po;0;ON;;;;;N;;;;;
+00C0;LATIN CAPITAL LETTER A WITH GRAVE;Lu;0;L;0041 0300;;;;N;LATIN CAPITAL LETTER A GRAVE;;;00E0;
+00C1;LATIN CAPITAL LETTER A WITH ACUTE;Lu;0;L;0041 0301;;;;N;LATIN CAPITAL LETTER A ACUTE;;;00E1;
+00C2;LATIN CAPITAL LETTER A WITH CIRCUMFLEX;Lu;0;L;0041 0302;;;;N;LATIN CAPITAL LETTER A CIRCUMFLEX;;;00E2;
+00C3;LATIN CAPITAL LETTER A WITH TILDE;Lu;0;L;0041 0303;;;;N;LATIN CAPITAL LETTER A TILDE;;;00E3;
+00C4;LATIN CAPITAL LETTER A WITH DIAERESIS;Lu;0;L;0041 0308;;;;N;LATIN CAPITAL LETTER A DIAERESIS;;;00E4;
+00C5;LATIN CAPITAL LETTER A WITH RING ABOVE;Lu;0;L;0041 030A;;;;N;LATIN CAPITAL LETTER A RING;;;00E5;
+00C6;LATIN CAPITAL LETTER AE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER A E;ash *;;00E6;
+00C7;LATIN CAPITAL LETTER C WITH CEDILLA;Lu;0;L;0043 0327;;;;N;LATIN CAPITAL LETTER C CEDILLA;;;00E7;
+00C8;LATIN CAPITAL LETTER E WITH GRAVE;Lu;0;L;0045 0300;;;;N;LATIN CAPITAL LETTER E GRAVE;;;00E8;
+00C9;LATIN CAPITAL LETTER E WITH ACUTE;Lu;0;L;0045 0301;;;;N;LATIN CAPITAL LETTER E ACUTE;;;00E9;
+00CA;LATIN CAPITAL LETTER E WITH CIRCUMFLEX;Lu;0;L;0045 0302;;;;N;LATIN CAPITAL LETTER E CIRCUMFLEX;;;00EA;
+00CB;LATIN CAPITAL LETTER E WITH DIAERESIS;Lu;0;L;0045 0308;;;;N;LATIN CAPITAL LETTER E DIAERESIS;;;00EB;
+00CC;LATIN CAPITAL LETTER I WITH GRAVE;Lu;0;L;0049 0300;;;;N;LATIN CAPITAL LETTER I GRAVE;;;00EC;
+00CD;LATIN CAPITAL LETTER I WITH ACUTE;Lu;0;L;0049 0301;;;;N;LATIN CAPITAL LETTER I ACUTE;;;00ED;
+00CE;LATIN CAPITAL LETTER I WITH CIRCUMFLEX;Lu;0;L;0049 0302;;;;N;LATIN CAPITAL LETTER I CIRCUMFLEX;;;00EE;
+00CF;LATIN CAPITAL LETTER I WITH DIAERESIS;Lu;0;L;0049 0308;;;;N;LATIN CAPITAL LETTER I DIAERESIS;;;00EF;
+00D0;LATIN CAPITAL LETTER ETH;Lu;0;L;;;;;N;;Icelandic;;00F0;
+00D1;LATIN CAPITAL LETTER N WITH TILDE;Lu;0;L;004E 0303;;;;N;LATIN CAPITAL LETTER N TILDE;;;00F1;
+00D2;LATIN CAPITAL LETTER O WITH GRAVE;Lu;0;L;004F 0300;;;;N;LATIN CAPITAL LETTER O GRAVE;;;00F2;
+00D3;LATIN CAPITAL LETTER O WITH ACUTE;Lu;0;L;004F 0301;;;;N;LATIN CAPITAL LETTER O ACUTE;;;00F3;
+00D4;LATIN CAPITAL LETTER O WITH CIRCUMFLEX;Lu;0;L;004F 0302;;;;N;LATIN CAPITAL LETTER O CIRCUMFLEX;;;00F4;
+00D5;LATIN CAPITAL LETTER O WITH TILDE;Lu;0;L;004F 0303;;;;N;LATIN CAPITAL LETTER O TILDE;;;00F5;
+00D6;LATIN CAPITAL LETTER O WITH DIAERESIS;Lu;0;L;004F 0308;;;;N;LATIN CAPITAL LETTER O DIAERESIS;;;00F6;
+00D7;MULTIPLICATION SIGN;Sm;0;ON;;;;;N;;;;;
+00D8;LATIN CAPITAL LETTER O WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER O SLASH;;;00F8;
+00D9;LATIN CAPITAL LETTER U WITH GRAVE;Lu;0;L;0055 0300;;;;N;LATIN CAPITAL LETTER U GRAVE;;;00F9;
+00DA;LATIN CAPITAL LETTER U WITH ACUTE;Lu;0;L;0055 0301;;;;N;LATIN CAPITAL LETTER U ACUTE;;;00FA;
+00DB;LATIN CAPITAL LETTER U WITH CIRCUMFLEX;Lu;0;L;0055 0302;;;;N;LATIN CAPITAL LETTER U CIRCUMFLEX;;;00FB;
+00DC;LATIN CAPITAL LETTER U WITH DIAERESIS;Lu;0;L;0055 0308;;;;N;LATIN CAPITAL LETTER U DIAERESIS;;;00FC;
+00DD;LATIN CAPITAL LETTER Y WITH ACUTE;Lu;0;L;0059 0301;;;;N;LATIN CAPITAL LETTER Y ACUTE;;;00FD;
+00DE;LATIN CAPITAL LETTER THORN;Lu;0;L;;;;;N;;Icelandic;;00FE;
+00DF;LATIN SMALL LETTER SHARP S;Ll;0;L;;;;;N;;German;;;
+00E0;LATIN SMALL LETTER A WITH GRAVE;Ll;0;L;0061 0300;;;;N;LATIN SMALL LETTER A GRAVE;;00C0;;00C0
+00E1;LATIN SMALL LETTER A WITH ACUTE;Ll;0;L;0061 0301;;;;N;LATIN SMALL LETTER A ACUTE;;00C1;;00C1
+00E2;LATIN SMALL LETTER A WITH CIRCUMFLEX;Ll;0;L;0061 0302;;;;N;LATIN SMALL LETTER A CIRCUMFLEX;;00C2;;00C2
+00E3;LATIN SMALL LETTER A WITH TILDE;Ll;0;L;0061 0303;;;;N;LATIN SMALL LETTER A TILDE;;00C3;;00C3
+00E4;LATIN SMALL LETTER A WITH DIAERESIS;Ll;0;L;0061 0308;;;;N;LATIN SMALL LETTER A DIAERESIS;;00C4;;00C4
+00E5;LATIN SMALL LETTER A WITH RING ABOVE;Ll;0;L;0061 030A;;;;N;LATIN SMALL LETTER A RING;;00C5;;00C5
+00E6;LATIN SMALL LETTER AE;Ll;0;L;;;;;N;LATIN SMALL LETTER A E;ash *;00C6;;00C6
+00E7;LATIN SMALL LETTER C WITH CEDILLA;Ll;0;L;0063 0327;;;;N;LATIN SMALL LETTER C CEDILLA;;00C7;;00C7
+00E8;LATIN SMALL LETTER E WITH GRAVE;Ll;0;L;0065 0300;;;;N;LATIN SMALL LETTER E GRAVE;;00C8;;00C8
+00E9;LATIN SMALL LETTER E WITH ACUTE;Ll;0;L;0065 0301;;;;N;LATIN SMALL LETTER E ACUTE;;00C9;;00C9
+00EA;LATIN SMALL LETTER E WITH CIRCUMFLEX;Ll;0;L;0065 0302;;;;N;LATIN SMALL LETTER E CIRCUMFLEX;;00CA;;00CA
+00EB;LATIN SMALL LETTER E WITH DIAERESIS;Ll;0;L;0065 0308;;;;N;LATIN SMALL LETTER E DIAERESIS;;00CB;;00CB
+00EC;LATIN SMALL LETTER I WITH GRAVE;Ll;0;L;0069 0300;;;;N;LATIN SMALL LETTER I GRAVE;;00CC;;00CC
+00ED;LATIN SMALL LETTER I WITH ACUTE;Ll;0;L;0069 0301;;;;N;LATIN SMALL LETTER I ACUTE;;00CD;;00CD
+00EE;LATIN SMALL LETTER I WITH CIRCUMFLEX;Ll;0;L;0069 0302;;;;N;LATIN SMALL LETTER I CIRCUMFLEX;;00CE;;00CE
+00EF;LATIN SMALL LETTER I WITH DIAERESIS;Ll;0;L;0069 0308;;;;N;LATIN SMALL LETTER I DIAERESIS;;00CF;;00CF
+00F0;LATIN SMALL LETTER ETH;Ll;0;L;;;;;N;;Icelandic;00D0;;00D0
+00F1;LATIN SMALL LETTER N WITH TILDE;Ll;0;L;006E 0303;;;;N;LATIN SMALL LETTER N TILDE;;00D1;;00D1
+00F2;LATIN SMALL LETTER O WITH GRAVE;Ll;0;L;006F 0300;;;;N;LATIN SMALL LETTER O GRAVE;;00D2;;00D2
+00F3;LATIN SMALL LETTER O WITH ACUTE;Ll;0;L;006F 0301;;;;N;LATIN SMALL LETTER O ACUTE;;00D3;;00D3
+00F4;LATIN SMALL LETTER O WITH CIRCUMFLEX;Ll;0;L;006F 0302;;;;N;LATIN SMALL LETTER O CIRCUMFLEX;;00D4;;00D4
+00F5;LATIN SMALL LETTER O WITH TILDE;Ll;0;L;006F 0303;;;;N;LATIN SMALL LETTER O TILDE;;00D5;;00D5
+00F6;LATIN SMALL LETTER O WITH DIAERESIS;Ll;0;L;006F 0308;;;;N;LATIN SMALL LETTER O DIAERESIS;;00D6;;00D6
+00F7;DIVISION SIGN;Sm;0;ON;;;;;N;;;;;
+00F8;LATIN SMALL LETTER O WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER O SLASH;;00D8;;00D8
+00F9;LATIN SMALL LETTER U WITH GRAVE;Ll;0;L;0075 0300;;;;N;LATIN SMALL LETTER U GRAVE;;00D9;;00D9
+00FA;LATIN SMALL LETTER U WITH ACUTE;Ll;0;L;0075 0301;;;;N;LATIN SMALL LETTER U ACUTE;;00DA;;00DA
+00FB;LATIN SMALL LETTER U WITH CIRCUMFLEX;Ll;0;L;0075 0302;;;;N;LATIN SMALL LETTER U CIRCUMFLEX;;00DB;;00DB
+00FC;LATIN SMALL LETTER U WITH DIAERESIS;Ll;0;L;0075 0308;;;;N;LATIN SMALL LETTER U DIAERESIS;;00DC;;00DC
+00FD;LATIN SMALL LETTER Y WITH ACUTE;Ll;0;L;0079 0301;;;;N;LATIN SMALL LETTER Y ACUTE;;00DD;;00DD
+00FE;LATIN SMALL LETTER THORN;Ll;0;L;;;;;N;;Icelandic;00DE;;00DE
+00FF;LATIN SMALL LETTER Y WITH DIAERESIS;Ll;0;L;0079 0308;;;;N;LATIN SMALL LETTER Y DIAERESIS;;0178;;0178
+0100;LATIN CAPITAL LETTER A WITH MACRON;Lu;0;L;0041 0304;;;;N;LATIN CAPITAL LETTER A MACRON;;;0101;
+0101;LATIN SMALL LETTER A WITH MACRON;Ll;0;L;0061 0304;;;;N;LATIN SMALL LETTER A MACRON;;0100;;0100
+0102;LATIN CAPITAL LETTER A WITH BREVE;Lu;0;L;0041 0306;;;;N;LATIN CAPITAL LETTER A BREVE;;;0103;
+0103;LATIN SMALL LETTER A WITH BREVE;Ll;0;L;0061 0306;;;;N;LATIN SMALL LETTER A BREVE;;0102;;0102
+0104;LATIN CAPITAL LETTER A WITH OGONEK;Lu;0;L;0041 0328;;;;N;LATIN CAPITAL LETTER A OGONEK;;;0105;
+0105;LATIN SMALL LETTER A WITH OGONEK;Ll;0;L;0061 0328;;;;N;LATIN SMALL LETTER A OGONEK;;0104;;0104
+0106;LATIN CAPITAL LETTER C WITH ACUTE;Lu;0;L;0043 0301;;;;N;LATIN CAPITAL LETTER C ACUTE;;;0107;
+0107;LATIN SMALL LETTER C WITH ACUTE;Ll;0;L;0063 0301;;;;N;LATIN SMALL LETTER C ACUTE;;0106;;0106
+0108;LATIN CAPITAL LETTER C WITH CIRCUMFLEX;Lu;0;L;0043 0302;;;;N;LATIN CAPITAL LETTER C CIRCUMFLEX;;;0109;
+0109;LATIN SMALL LETTER C WITH CIRCUMFLEX;Ll;0;L;0063 0302;;;;N;LATIN SMALL LETTER C CIRCUMFLEX;;0108;;0108
+010A;LATIN CAPITAL LETTER C WITH DOT ABOVE;Lu;0;L;0043 0307;;;;N;LATIN CAPITAL LETTER C DOT;;;010B;
+010B;LATIN SMALL LETTER C WITH DOT ABOVE;Ll;0;L;0063 0307;;;;N;LATIN SMALL LETTER C DOT;;010A;;010A
+010C;LATIN CAPITAL LETTER C WITH CARON;Lu;0;L;0043 030C;;;;N;LATIN CAPITAL LETTER C HACEK;;;010D;
+010D;LATIN SMALL LETTER C WITH CARON;Ll;0;L;0063 030C;;;;N;LATIN SMALL LETTER C HACEK;;010C;;010C
+010E;LATIN CAPITAL LETTER D WITH CARON;Lu;0;L;0044 030C;;;;N;LATIN CAPITAL LETTER D HACEK;;;010F;
+010F;LATIN SMALL LETTER D WITH CARON;Ll;0;L;0064 030C;;;;N;LATIN SMALL LETTER D HACEK;;010E;;010E
+0110;LATIN CAPITAL LETTER D WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER D BAR;;;0111;
+0111;LATIN SMALL LETTER D WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER D BAR;;0110;;0110
+0112;LATIN CAPITAL LETTER E WITH MACRON;Lu;0;L;0045 0304;;;;N;LATIN CAPITAL LETTER E MACRON;;;0113;
+0113;LATIN SMALL LETTER E WITH MACRON;Ll;0;L;0065 0304;;;;N;LATIN SMALL LETTER E MACRON;;0112;;0112
+0114;LATIN CAPITAL LETTER E WITH BREVE;Lu;0;L;0045 0306;;;;N;LATIN CAPITAL LETTER E BREVE;;;0115;
+0115;LATIN SMALL LETTER E WITH BREVE;Ll;0;L;0065 0306;;;;N;LATIN SMALL LETTER E BREVE;;0114;;0114
+0116;LATIN CAPITAL LETTER E WITH DOT ABOVE;Lu;0;L;0045 0307;;;;N;LATIN CAPITAL LETTER E DOT;;;0117;
+0117;LATIN SMALL LETTER E WITH DOT ABOVE;Ll;0;L;0065 0307;;;;N;LATIN SMALL LETTER E DOT;;0116;;0116
+0118;LATIN CAPITAL LETTER E WITH OGONEK;Lu;0;L;0045 0328;;;;N;LATIN CAPITAL LETTER E OGONEK;;;0119;
+0119;LATIN SMALL LETTER E WITH OGONEK;Ll;0;L;0065 0328;;;;N;LATIN SMALL LETTER E OGONEK;;0118;;0118
+011A;LATIN CAPITAL LETTER E WITH CARON;Lu;0;L;0045 030C;;;;N;LATIN CAPITAL LETTER E HACEK;;;011B;
+011B;LATIN SMALL LETTER E WITH CARON;Ll;0;L;0065 030C;;;;N;LATIN SMALL LETTER E HACEK;;011A;;011A
+011C;LATIN CAPITAL LETTER G WITH CIRCUMFLEX;Lu;0;L;0047 0302;;;;N;LATIN CAPITAL LETTER G CIRCUMFLEX;;;011D;
+011D;LATIN SMALL LETTER G WITH CIRCUMFLEX;Ll;0;L;0067 0302;;;;N;LATIN SMALL LETTER G CIRCUMFLEX;;011C;;011C
+011E;LATIN CAPITAL LETTER G WITH BREVE;Lu;0;L;0047 0306;;;;N;LATIN CAPITAL LETTER G BREVE;;;011F;
+011F;LATIN SMALL LETTER G WITH BREVE;Ll;0;L;0067 0306;;;;N;LATIN SMALL LETTER G BREVE;;011E;;011E
+0120;LATIN CAPITAL LETTER G WITH DOT ABOVE;Lu;0;L;0047 0307;;;;N;LATIN CAPITAL LETTER G DOT;;;0121;
+0121;LATIN SMALL LETTER G WITH DOT ABOVE;Ll;0;L;0067 0307;;;;N;LATIN SMALL LETTER G DOT;;0120;;0120
+0122;LATIN CAPITAL LETTER G WITH CEDILLA;Lu;0;L;0047 0327;;;;N;LATIN CAPITAL LETTER G CEDILLA;;;0123;
+0123;LATIN SMALL LETTER G WITH CEDILLA;Ll;0;L;0067 0327;;;;N;LATIN SMALL LETTER G CEDILLA;;0122;;0122
+0124;LATIN CAPITAL LETTER H WITH CIRCUMFLEX;Lu;0;L;0048 0302;;;;N;LATIN CAPITAL LETTER H CIRCUMFLEX;;;0125;
+0125;LATIN SMALL LETTER H WITH CIRCUMFLEX;Ll;0;L;0068 0302;;;;N;LATIN SMALL LETTER H CIRCUMFLEX;;0124;;0124
+0126;LATIN CAPITAL LETTER H WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER H BAR;;;0127;
+0127;LATIN SMALL LETTER H WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER H BAR;;0126;;0126
+0128;LATIN CAPITAL LETTER I WITH TILDE;Lu;0;L;0049 0303;;;;N;LATIN CAPITAL LETTER I TILDE;;;0129;
+0129;LATIN SMALL LETTER I WITH TILDE;Ll;0;L;0069 0303;;;;N;LATIN SMALL LETTER I TILDE;;0128;;0128
+012A;LATIN CAPITAL LETTER I WITH MACRON;Lu;0;L;0049 0304;;;;N;LATIN CAPITAL LETTER I MACRON;;;012B;
+012B;LATIN SMALL LETTER I WITH MACRON;Ll;0;L;0069 0304;;;;N;LATIN SMALL LETTER I MACRON;;012A;;012A
+012C;LATIN CAPITAL LETTER I WITH BREVE;Lu;0;L;0049 0306;;;;N;LATIN CAPITAL LETTER I BREVE;;;012D;
+012D;LATIN SMALL LETTER I WITH BREVE;Ll;0;L;0069 0306;;;;N;LATIN SMALL LETTER I BREVE;;012C;;012C
+012E;LATIN CAPITAL LETTER I WITH OGONEK;Lu;0;L;0049 0328;;;;N;LATIN CAPITAL LETTER I OGONEK;;;012F;
+012F;LATIN SMALL LETTER I WITH OGONEK;Ll;0;L;0069 0328;;;;N;LATIN SMALL LETTER I OGONEK;;012E;;012E
+0130;LATIN CAPITAL LETTER I WITH DOT ABOVE;Lu;0;L;0049 0307;;;;N;LATIN CAPITAL LETTER I DOT;;;0069;
+0131;LATIN SMALL LETTER DOTLESS I;Ll;0;L;;;;;N;;;0049;;0049
+0132;LATIN CAPITAL LIGATURE IJ;Lu;0;L;<compat> 0049 004A;;;;N;LATIN CAPITAL LETTER I J;;;0133;
+0133;LATIN SMALL LIGATURE IJ;Ll;0;L;<compat> 0069 006A;;;;N;LATIN SMALL LETTER I J;;0132;;0132
+0134;LATIN CAPITAL LETTER J WITH CIRCUMFLEX;Lu;0;L;004A 0302;;;;N;LATIN CAPITAL LETTER J CIRCUMFLEX;;;0135;
+0135;LATIN SMALL LETTER J WITH CIRCUMFLEX;Ll;0;L;006A 0302;;;;N;LATIN SMALL LETTER J CIRCUMFLEX;;0134;;0134
+0136;LATIN CAPITAL LETTER K WITH CEDILLA;Lu;0;L;004B 0327;;;;N;LATIN CAPITAL LETTER K CEDILLA;;;0137;
+0137;LATIN SMALL LETTER K WITH CEDILLA;Ll;0;L;006B 0327;;;;N;LATIN SMALL LETTER K CEDILLA;;0136;;0136
+0138;LATIN SMALL LETTER KRA;Ll;0;L;;;;;N;;Greenlandic;;;
+0139;LATIN CAPITAL LETTER L WITH ACUTE;Lu;0;L;004C 0301;;;;N;LATIN CAPITAL LETTER L ACUTE;;;013A;
+013A;LATIN SMALL LETTER L WITH ACUTE;Ll;0;L;006C 0301;;;;N;LATIN SMALL LETTER L ACUTE;;0139;;0139
+013B;LATIN CAPITAL LETTER L WITH CEDILLA;Lu;0;L;004C 0327;;;;N;LATIN CAPITAL LETTER L CEDILLA;;;013C;
+013C;LATIN SMALL LETTER L WITH CEDILLA;Ll;0;L;006C 0327;;;;N;LATIN SMALL LETTER L CEDILLA;;013B;;013B
+013D;LATIN CAPITAL LETTER L WITH CARON;Lu;0;L;004C 030C;;;;N;LATIN CAPITAL LETTER L HACEK;;;013E;
+013E;LATIN SMALL LETTER L WITH CARON;Ll;0;L;006C 030C;;;;N;LATIN SMALL LETTER L HACEK;;013D;;013D
+013F;LATIN CAPITAL LETTER L WITH MIDDLE DOT;Lu;0;L;<compat> 004C 00B7;;;;N;;;;0140;
+0140;LATIN SMALL LETTER L WITH MIDDLE DOT;Ll;0;L;<compat> 006C 00B7;;;;N;;;013F;;013F
+0141;LATIN CAPITAL LETTER L WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER L SLASH;;;0142;
+0142;LATIN SMALL LETTER L WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER L SLASH;;0141;;0141
+0143;LATIN CAPITAL LETTER N WITH ACUTE;Lu;0;L;004E 0301;;;;N;LATIN CAPITAL LETTER N ACUTE;;;0144;
+0144;LATIN SMALL LETTER N WITH ACUTE;Ll;0;L;006E 0301;;;;N;LATIN SMALL LETTER N ACUTE;;0143;;0143
+0145;LATIN CAPITAL LETTER N WITH CEDILLA;Lu;0;L;004E 0327;;;;N;LATIN CAPITAL LETTER N CEDILLA;;;0146;
+0146;LATIN SMALL LETTER N WITH CEDILLA;Ll;0;L;006E 0327;;;;N;LATIN SMALL LETTER N CEDILLA;;0145;;0145
+0147;LATIN CAPITAL LETTER N WITH CARON;Lu;0;L;004E 030C;;;;N;LATIN CAPITAL LETTER N HACEK;;;0148;
+0148;LATIN SMALL LETTER N WITH CARON;Ll;0;L;006E 030C;;;;N;LATIN SMALL LETTER N HACEK;;0147;;0147
+0149;LATIN SMALL LETTER N PRECEDED BY APOSTROPHE;Ll;0;L;<compat> 02BC 006E;;;;N;LATIN SMALL LETTER APOSTROPHE N;;;;
+014A;LATIN CAPITAL LETTER ENG;Lu;0;L;;;;;N;;Sami;;014B;
+014B;LATIN SMALL LETTER ENG;Ll;0;L;;;;;N;;Sami;014A;;014A
+014C;LATIN CAPITAL LETTER O WITH MACRON;Lu;0;L;004F 0304;;;;N;LATIN CAPITAL LETTER O MACRON;;;014D;
+014D;LATIN SMALL LETTER O WITH MACRON;Ll;0;L;006F 0304;;;;N;LATIN SMALL LETTER O MACRON;;014C;;014C
+014E;LATIN CAPITAL LETTER O WITH BREVE;Lu;0;L;004F 0306;;;;N;LATIN CAPITAL LETTER O BREVE;;;014F;
+014F;LATIN SMALL LETTER O WITH BREVE;Ll;0;L;006F 0306;;;;N;LATIN SMALL LETTER O BREVE;;014E;;014E
+0150;LATIN CAPITAL LETTER O WITH DOUBLE ACUTE;Lu;0;L;004F 030B;;;;N;LATIN CAPITAL LETTER O DOUBLE ACUTE;;;0151;
+0151;LATIN SMALL LETTER O WITH DOUBLE ACUTE;Ll;0;L;006F 030B;;;;N;LATIN SMALL LETTER O DOUBLE ACUTE;;0150;;0150
+0152;LATIN CAPITAL LIGATURE OE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER O E;;;0153;
+0153;LATIN SMALL LIGATURE OE;Ll;0;L;;;;;N;LATIN SMALL LETTER O E;;0152;;0152
+0154;LATIN CAPITAL LETTER R WITH ACUTE;Lu;0;L;0052 0301;;;;N;LATIN CAPITAL LETTER R ACUTE;;;0155;
+0155;LATIN SMALL LETTER R WITH ACUTE;Ll;0;L;0072 0301;;;;N;LATIN SMALL LETTER R ACUTE;;0154;;0154
+0156;LATIN CAPITAL LETTER R WITH CEDILLA;Lu;0;L;0052 0327;;;;N;LATIN CAPITAL LETTER R CEDILLA;;;0157;
+0157;LATIN SMALL LETTER R WITH CEDILLA;Ll;0;L;0072 0327;;;;N;LATIN SMALL LETTER R CEDILLA;;0156;;0156
+0158;LATIN CAPITAL LETTER R WITH CARON;Lu;0;L;0052 030C;;;;N;LATIN CAPITAL LETTER R HACEK;;;0159;
+0159;LATIN SMALL LETTER R WITH CARON;Ll;0;L;0072 030C;;;;N;LATIN SMALL LETTER R HACEK;;0158;;0158
+015A;LATIN CAPITAL LETTER S WITH ACUTE;Lu;0;L;0053 0301;;;;N;LATIN CAPITAL LETTER S ACUTE;;;015B;
+015B;LATIN SMALL LETTER S WITH ACUTE;Ll;0;L;0073 0301;;;;N;LATIN SMALL LETTER S ACUTE;;015A;;015A
+015C;LATIN CAPITAL LETTER S WITH CIRCUMFLEX;Lu;0;L;0053 0302;;;;N;LATIN CAPITAL LETTER S CIRCUMFLEX;;;015D;
+015D;LATIN SMALL LETTER S WITH CIRCUMFLEX;Ll;0;L;0073 0302;;;;N;LATIN SMALL LETTER S CIRCUMFLEX;;015C;;015C
+015E;LATIN CAPITAL LETTER S WITH CEDILLA;Lu;0;L;0053 0327;;;;N;LATIN CAPITAL LETTER S CEDILLA;*;;015F;
+015F;LATIN SMALL LETTER S WITH CEDILLA;Ll;0;L;0073 0327;;;;N;LATIN SMALL LETTER S CEDILLA;*;015E;;015E
+0160;LATIN CAPITAL LETTER S WITH CARON;Lu;0;L;0053 030C;;;;N;LATIN CAPITAL LETTER S HACEK;;;0161;
+0161;LATIN SMALL LETTER S WITH CARON;Ll;0;L;0073 030C;;;;N;LATIN SMALL LETTER S HACEK;;0160;;0160
+0162;LATIN CAPITAL LETTER T WITH CEDILLA;Lu;0;L;0054 0327;;;;N;LATIN CAPITAL LETTER T CEDILLA;*;;0163;
+0163;LATIN SMALL LETTER T WITH CEDILLA;Ll;0;L;0074 0327;;;;N;LATIN SMALL LETTER T CEDILLA;*;0162;;0162
+0164;LATIN CAPITAL LETTER T WITH CARON;Lu;0;L;0054 030C;;;;N;LATIN CAPITAL LETTER T HACEK;;;0165;
+0165;LATIN SMALL LETTER T WITH CARON;Ll;0;L;0074 030C;;;;N;LATIN SMALL LETTER T HACEK;;0164;;0164
+0166;LATIN CAPITAL LETTER T WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER T BAR;;;0167;
+0167;LATIN SMALL LETTER T WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER T BAR;;0166;;0166
+0168;LATIN CAPITAL LETTER U WITH TILDE;Lu;0;L;0055 0303;;;;N;LATIN CAPITAL LETTER U TILDE;;;0169;
+0169;LATIN SMALL LETTER U WITH TILDE;Ll;0;L;0075 0303;;;;N;LATIN SMALL LETTER U TILDE;;0168;;0168
+016A;LATIN CAPITAL LETTER U WITH MACRON;Lu;0;L;0055 0304;;;;N;LATIN CAPITAL LETTER U MACRON;;;016B;
+016B;LATIN SMALL LETTER U WITH MACRON;Ll;0;L;0075 0304;;;;N;LATIN SMALL LETTER U MACRON;;016A;;016A
+016C;LATIN CAPITAL LETTER U WITH BREVE;Lu;0;L;0055 0306;;;;N;LATIN CAPITAL LETTER U BREVE;;;016D;
+016D;LATIN SMALL LETTER U WITH BREVE;Ll;0;L;0075 0306;;;;N;LATIN SMALL LETTER U BREVE;;016C;;016C
+016E;LATIN CAPITAL LETTER U WITH RING ABOVE;Lu;0;L;0055 030A;;;;N;LATIN CAPITAL LETTER U RING;;;016F;
+016F;LATIN SMALL LETTER U WITH RING ABOVE;Ll;0;L;0075 030A;;;;N;LATIN SMALL LETTER U RING;;016E;;016E
+0170;LATIN CAPITAL LETTER U WITH DOUBLE ACUTE;Lu;0;L;0055 030B;;;;N;LATIN CAPITAL LETTER U DOUBLE ACUTE;;;0171;
+0171;LATIN SMALL LETTER U WITH DOUBLE ACUTE;Ll;0;L;0075 030B;;;;N;LATIN SMALL LETTER U DOUBLE ACUTE;;0170;;0170
+0172;LATIN CAPITAL LETTER U WITH OGONEK;Lu;0;L;0055 0328;;;;N;LATIN CAPITAL LETTER U OGONEK;;;0173;
+0173;LATIN SMALL LETTER U WITH OGONEK;Ll;0;L;0075 0328;;;;N;LATIN SMALL LETTER U OGONEK;;0172;;0172
+0174;LATIN CAPITAL LETTER W WITH CIRCUMFLEX;Lu;0;L;0057 0302;;;;N;LATIN CAPITAL LETTER W CIRCUMFLEX;;;0175;
+0175;LATIN SMALL LETTER W WITH CIRCUMFLEX;Ll;0;L;0077 0302;;;;N;LATIN SMALL LETTER W CIRCUMFLEX;;0174;;0174
+0176;LATIN CAPITAL LETTER Y WITH CIRCUMFLEX;Lu;0;L;0059 0302;;;;N;LATIN CAPITAL LETTER Y CIRCUMFLEX;;;0177;
+0177;LATIN SMALL LETTER Y WITH CIRCUMFLEX;Ll;0;L;0079 0302;;;;N;LATIN SMALL LETTER Y CIRCUMFLEX;;0176;;0176
+0178;LATIN CAPITAL LETTER Y WITH DIAERESIS;Lu;0;L;0059 0308;;;;N;LATIN CAPITAL LETTER Y DIAERESIS;;;00FF;
+0179;LATIN CAPITAL LETTER Z WITH ACUTE;Lu;0;L;005A 0301;;;;N;LATIN CAPITAL LETTER Z ACUTE;;;017A;
+017A;LATIN SMALL LETTER Z WITH ACUTE;Ll;0;L;007A 0301;;;;N;LATIN SMALL LETTER Z ACUTE;;0179;;0179
+017B;LATIN CAPITAL LETTER Z WITH DOT ABOVE;Lu;0;L;005A 0307;;;;N;LATIN CAPITAL LETTER Z DOT;;;017C;
+017C;LATIN SMALL LETTER Z WITH DOT ABOVE;Ll;0;L;007A 0307;;;;N;LATIN SMALL LETTER Z DOT;;017B;;017B
+017D;LATIN CAPITAL LETTER Z WITH CARON;Lu;0;L;005A 030C;;;;N;LATIN CAPITAL LETTER Z HACEK;;;017E;
+017E;LATIN SMALL LETTER Z WITH CARON;Ll;0;L;007A 030C;;;;N;LATIN SMALL LETTER Z HACEK;;017D;;017D
+017F;LATIN SMALL LETTER LONG S;Ll;0;L;<compat> 0073;;;;N;;;0053;;0053
+0180;LATIN SMALL LETTER B WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER B BAR;;0243;;0243
+0181;LATIN CAPITAL LETTER B WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER B HOOK;;;0253;
+0182;LATIN CAPITAL LETTER B WITH TOPBAR;Lu;0;L;;;;;N;LATIN CAPITAL LETTER B TOPBAR;;;0183;
+0183;LATIN SMALL LETTER B WITH TOPBAR;Ll;0;L;;;;;N;LATIN SMALL LETTER B TOPBAR;;0182;;0182
+0184;LATIN CAPITAL LETTER TONE SIX;Lu;0;L;;;;;N;;;;0185;
+0185;LATIN SMALL LETTER TONE SIX;Ll;0;L;;;;;N;;;0184;;0184
+0186;LATIN CAPITAL LETTER OPEN O;Lu;0;L;;;;;N;;;;0254;
+0187;LATIN CAPITAL LETTER C WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER C HOOK;;;0188;
+0188;LATIN SMALL LETTER C WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER C HOOK;;0187;;0187
+0189;LATIN CAPITAL LETTER AFRICAN D;Lu;0;L;;;;;N;;*;;0256;
+018A;LATIN CAPITAL LETTER D WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER D HOOK;;;0257;
+018B;LATIN CAPITAL LETTER D WITH TOPBAR;Lu;0;L;;;;;N;LATIN CAPITAL LETTER D TOPBAR;;;018C;
+018C;LATIN SMALL LETTER D WITH TOPBAR;Ll;0;L;;;;;N;LATIN SMALL LETTER D TOPBAR;;018B;;018B
+018D;LATIN SMALL LETTER TURNED DELTA;Ll;0;L;;;;;N;;;;;
+018E;LATIN CAPITAL LETTER REVERSED E;Lu;0;L;;;;;N;LATIN CAPITAL LETTER TURNED E;;;01DD;
+018F;LATIN CAPITAL LETTER SCHWA;Lu;0;L;;;;;N;;;;0259;
+0190;LATIN CAPITAL LETTER OPEN E;Lu;0;L;;;;;N;LATIN CAPITAL LETTER EPSILON;;;025B;
+0191;LATIN CAPITAL LETTER F WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER F HOOK;;;0192;
+0192;LATIN SMALL LETTER F WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER SCRIPT F;;0191;;0191
+0193;LATIN CAPITAL LETTER G WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER G HOOK;;;0260;
+0194;LATIN CAPITAL LETTER GAMMA;Lu;0;L;;;;;N;;;;0263;
+0195;LATIN SMALL LETTER HV;Ll;0;L;;;;;N;LATIN SMALL LETTER H V;hwair;01F6;;01F6
+0196;LATIN CAPITAL LETTER IOTA;Lu;0;L;;;;;N;;;;0269;
+0197;LATIN CAPITAL LETTER I WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER BARRED I;;;0268;
+0198;LATIN CAPITAL LETTER K WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER K HOOK;;;0199;
+0199;LATIN SMALL LETTER K WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER K HOOK;;0198;;0198
+019A;LATIN SMALL LETTER L WITH BAR;Ll;0;L;;;;;N;LATIN SMALL LETTER BARRED L;;023D;;023D
+019B;LATIN SMALL LETTER LAMBDA WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER BARRED LAMBDA;;;;
+019C;LATIN CAPITAL LETTER TURNED M;Lu;0;L;;;;;N;;;;026F;
+019D;LATIN CAPITAL LETTER N WITH LEFT HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER N HOOK;;;0272;
+019E;LATIN SMALL LETTER N WITH LONG RIGHT LEG;Ll;0;L;;;;;N;;;0220;;0220
+019F;LATIN CAPITAL LETTER O WITH MIDDLE TILDE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER BARRED O;*;;0275;
+01A0;LATIN CAPITAL LETTER O WITH HORN;Lu;0;L;004F 031B;;;;N;LATIN CAPITAL LETTER O HORN;;;01A1;
+01A1;LATIN SMALL LETTER O WITH HORN;Ll;0;L;006F 031B;;;;N;LATIN SMALL LETTER O HORN;;01A0;;01A0
+01A2;LATIN CAPITAL LETTER OI;Lu;0;L;;;;;N;LATIN CAPITAL LETTER O I;gha;;01A3;
+01A3;LATIN SMALL LETTER OI;Ll;0;L;;;;;N;LATIN SMALL LETTER O I;gha;01A2;;01A2
+01A4;LATIN CAPITAL LETTER P WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER P HOOK;;;01A5;
+01A5;LATIN SMALL LETTER P WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER P HOOK;;01A4;;01A4
+01A6;LATIN LETTER YR;Lu;0;L;;;;;N;LATIN LETTER Y R;*;;0280;
+01A7;LATIN CAPITAL LETTER TONE TWO;Lu;0;L;;;;;N;;;;01A8;
+01A8;LATIN SMALL LETTER TONE TWO;Ll;0;L;;;;;N;;;01A7;;01A7
+01A9;LATIN CAPITAL LETTER ESH;Lu;0;L;;;;;N;;;;0283;
+01AA;LATIN LETTER REVERSED ESH LOOP;Ll;0;L;;;;;N;;;;;
+01AB;LATIN SMALL LETTER T WITH PALATAL HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER T PALATAL HOOK;;;;
+01AC;LATIN CAPITAL LETTER T WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER T HOOK;;;01AD;
+01AD;LATIN SMALL LETTER T WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER T HOOK;;01AC;;01AC
+01AE;LATIN CAPITAL LETTER T WITH RETROFLEX HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER T RETROFLEX HOOK;;;0288;
+01AF;LATIN CAPITAL LETTER U WITH HORN;Lu;0;L;0055 031B;;;;N;LATIN CAPITAL LETTER U HORN;;;01B0;
+01B0;LATIN SMALL LETTER U WITH HORN;Ll;0;L;0075 031B;;;;N;LATIN SMALL LETTER U HORN;;01AF;;01AF
+01B1;LATIN CAPITAL LETTER UPSILON;Lu;0;L;;;;;N;;;;028A;
+01B2;LATIN CAPITAL LETTER V WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER SCRIPT V;;;028B;
+01B3;LATIN CAPITAL LETTER Y WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER Y HOOK;;;01B4;
+01B4;LATIN SMALL LETTER Y WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER Y HOOK;;01B3;;01B3
+01B5;LATIN CAPITAL LETTER Z WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER Z BAR;;;01B6;
+01B6;LATIN SMALL LETTER Z WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER Z BAR;;01B5;;01B5
+01B7;LATIN CAPITAL LETTER EZH;Lu;0;L;;;;;N;LATIN CAPITAL LETTER YOGH;;;0292;
+01B8;LATIN CAPITAL LETTER EZH REVERSED;Lu;0;L;;;;;N;LATIN CAPITAL LETTER REVERSED YOGH;;;01B9;
+01B9;LATIN SMALL LETTER EZH REVERSED;Ll;0;L;;;;;N;LATIN SMALL LETTER REVERSED YOGH;;01B8;;01B8
+01BA;LATIN SMALL LETTER EZH WITH TAIL;Ll;0;L;;;;;N;LATIN SMALL LETTER YOGH WITH TAIL;;;;
+01BB;LATIN LETTER TWO WITH STROKE;Lo;0;L;;;;;N;LATIN LETTER TWO BAR;;;;
+01BC;LATIN CAPITAL LETTER TONE FIVE;Lu;0;L;;;;;N;;;;01BD;
+01BD;LATIN SMALL LETTER TONE FIVE;Ll;0;L;;;;;N;;;01BC;;01BC
+01BE;LATIN LETTER INVERTED GLOTTAL STOP WITH STROKE;Ll;0;L;;;;;N;LATIN LETTER INVERTED GLOTTAL STOP BAR;;;;
+01BF;LATIN LETTER WYNN;Ll;0;L;;;;;N;;;01F7;;01F7
+01C0;LATIN LETTER DENTAL CLICK;Lo;0;L;;;;;N;LATIN LETTER PIPE;;;;
+01C1;LATIN LETTER LATERAL CLICK;Lo;0;L;;;;;N;LATIN LETTER DOUBLE PIPE;;;;
+01C2;LATIN LETTER ALVEOLAR CLICK;Lo;0;L;;;;;N;LATIN LETTER PIPE DOUBLE BAR;;;;
+01C3;LATIN LETTER RETROFLEX CLICK;Lo;0;L;;;;;N;LATIN LETTER EXCLAMATION MARK;;;;
+01C4;LATIN CAPITAL LETTER DZ WITH CARON;Lu;0;L;<compat> 0044 017D;;;;N;LATIN CAPITAL LETTER D Z HACEK;;;01C6;01C5
+01C5;LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON;Lt;0;L;<compat> 0044 017E;;;;N;LATIN LETTER CAPITAL D SMALL Z HACEK;;01C4;01C6;01C5
+01C6;LATIN SMALL LETTER DZ WITH CARON;Ll;0;L;<compat> 0064 017E;;;;N;LATIN SMALL LETTER D Z HACEK;;01C4;;01C5
+01C7;LATIN CAPITAL LETTER LJ;Lu;0;L;<compat> 004C 004A;;;;N;LATIN CAPITAL LETTER L J;;;01C9;01C8
+01C8;LATIN CAPITAL LETTER L WITH SMALL LETTER J;Lt;0;L;<compat> 004C 006A;;;;N;LATIN LETTER CAPITAL L SMALL J;;01C7;01C9;01C8
+01C9;LATIN SMALL LETTER LJ;Ll;0;L;<compat> 006C 006A;;;;N;LATIN SMALL LETTER L J;;01C7;;01C8
+01CA;LATIN CAPITAL LETTER NJ;Lu;0;L;<compat> 004E 004A;;;;N;LATIN CAPITAL LETTER N J;;;01CC;01CB
+01CB;LATIN CAPITAL LETTER N WITH SMALL LETTER J;Lt;0;L;<compat> 004E 006A;;;;N;LATIN LETTER CAPITAL N SMALL J;;01CA;01CC;01CB
+01CC;LATIN SMALL LETTER NJ;Ll;0;L;<compat> 006E 006A;;;;N;LATIN SMALL LETTER N J;;01CA;;01CB
+01CD;LATIN CAPITAL LETTER A WITH CARON;Lu;0;L;0041 030C;;;;N;LATIN CAPITAL LETTER A HACEK;;;01CE;
+01CE;LATIN SMALL LETTER A WITH CARON;Ll;0;L;0061 030C;;;;N;LATIN SMALL LETTER A HACEK;;01CD;;01CD
+01CF;LATIN CAPITAL LETTER I WITH CARON;Lu;0;L;0049 030C;;;;N;LATIN CAPITAL LETTER I HACEK;;;01D0;
+01D0;LATIN SMALL LETTER I WITH CARON;Ll;0;L;0069 030C;;;;N;LATIN SMALL LETTER I HACEK;;01CF;;01CF
+01D1;LATIN CAPITAL LETTER O WITH CARON;Lu;0;L;004F 030C;;;;N;LATIN CAPITAL LETTER O HACEK;;;01D2;
+01D2;LATIN SMALL LETTER O WITH CARON;Ll;0;L;006F 030C;;;;N;LATIN SMALL LETTER O HACEK;;01D1;;01D1
+01D3;LATIN CAPITAL LETTER U WITH CARON;Lu;0;L;0055 030C;;;;N;LATIN CAPITAL LETTER U HACEK;;;01D4;
+01D4;LATIN SMALL LETTER U WITH CARON;Ll;0;L;0075 030C;;;;N;LATIN SMALL LETTER U HACEK;;01D3;;01D3
+01D5;LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON;Lu;0;L;00DC 0304;;;;N;LATIN CAPITAL LETTER U DIAERESIS MACRON;;;01D6;
+01D6;LATIN SMALL LETTER U WITH DIAERESIS AND MACRON;Ll;0;L;00FC 0304;;;;N;LATIN SMALL LETTER U DIAERESIS MACRON;;01D5;;01D5
+01D7;LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE;Lu;0;L;00DC 0301;;;;N;LATIN CAPITAL LETTER U DIAERESIS ACUTE;;;01D8;
+01D8;LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE;Ll;0;L;00FC 0301;;;;N;LATIN SMALL LETTER U DIAERESIS ACUTE;;01D7;;01D7
+01D9;LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON;Lu;0;L;00DC 030C;;;;N;LATIN CAPITAL LETTER U DIAERESIS HACEK;;;01DA;
+01DA;LATIN SMALL LETTER U WITH DIAERESIS AND CARON;Ll;0;L;00FC 030C;;;;N;LATIN SMALL LETTER U DIAERESIS HACEK;;01D9;;01D9
+01DB;LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE;Lu;0;L;00DC 0300;;;;N;LATIN CAPITAL LETTER U DIAERESIS GRAVE;;;01DC;
+01DC;LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE;Ll;0;L;00FC 0300;;;;N;LATIN SMALL LETTER U DIAERESIS GRAVE;;01DB;;01DB
+01DD;LATIN SMALL LETTER TURNED E;Ll;0;L;;;;;N;;;018E;;018E
+01DE;LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON;Lu;0;L;00C4 0304;;;;N;LATIN CAPITAL LETTER A DIAERESIS MACRON;;;01DF;
+01DF;LATIN SMALL LETTER A WITH DIAERESIS AND MACRON;Ll;0;L;00E4 0304;;;;N;LATIN SMALL LETTER A DIAERESIS MACRON;;01DE;;01DE
+01E0;LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON;Lu;0;L;0226 0304;;;;N;LATIN CAPITAL LETTER A DOT MACRON;;;01E1;
+01E1;LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON;Ll;0;L;0227 0304;;;;N;LATIN SMALL LETTER A DOT MACRON;;01E0;;01E0
+01E2;LATIN CAPITAL LETTER AE WITH MACRON;Lu;0;L;00C6 0304;;;;N;LATIN CAPITAL LETTER A E MACRON;ash *;;01E3;
+01E3;LATIN SMALL LETTER AE WITH MACRON;Ll;0;L;00E6 0304;;;;N;LATIN SMALL LETTER A E MACRON;ash *;01E2;;01E2
+01E4;LATIN CAPITAL LETTER G WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER G BAR;;;01E5;
+01E5;LATIN SMALL LETTER G WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER G BAR;;01E4;;01E4
+01E6;LATIN CAPITAL LETTER G WITH CARON;Lu;0;L;0047 030C;;;;N;LATIN CAPITAL LETTER G HACEK;;;01E7;
+01E7;LATIN SMALL LETTER G WITH CARON;Ll;0;L;0067 030C;;;;N;LATIN SMALL LETTER G HACEK;;01E6;;01E6
+01E8;LATIN CAPITAL LETTER K WITH CARON;Lu;0;L;004B 030C;;;;N;LATIN CAPITAL LETTER K HACEK;;;01E9;
+01E9;LATIN SMALL LETTER K WITH CARON;Ll;0;L;006B 030C;;;;N;LATIN SMALL LETTER K HACEK;;01E8;;01E8
+01EA;LATIN CAPITAL LETTER O WITH OGONEK;Lu;0;L;004F 0328;;;;N;LATIN CAPITAL LETTER O OGONEK;;;01EB;
+01EB;LATIN SMALL LETTER O WITH OGONEK;Ll;0;L;006F 0328;;;;N;LATIN SMALL LETTER O OGONEK;;01EA;;01EA
+01EC;LATIN CAPITAL LETTER O WITH OGONEK AND MACRON;Lu;0;L;01EA 0304;;;;N;LATIN CAPITAL LETTER O OGONEK MACRON;;;01ED;
+01ED;LATIN SMALL LETTER O WITH OGONEK AND MACRON;Ll;0;L;01EB 0304;;;;N;LATIN SMALL LETTER O OGONEK MACRON;;01EC;;01EC
+01EE;LATIN CAPITAL LETTER EZH WITH CARON;Lu;0;L;01B7 030C;;;;N;LATIN CAPITAL LETTER YOGH HACEK;;;01EF;
+01EF;LATIN SMALL LETTER EZH WITH CARON;Ll;0;L;0292 030C;;;;N;LATIN SMALL LETTER YOGH HACEK;;01EE;;01EE
+01F0;LATIN SMALL LETTER J WITH CARON;Ll;0;L;006A 030C;;;;N;LATIN SMALL LETTER J HACEK;;;;
+01F1;LATIN CAPITAL LETTER DZ;Lu;0;L;<compat> 0044 005A;;;;N;;;;01F3;01F2
+01F2;LATIN CAPITAL LETTER D WITH SMALL LETTER Z;Lt;0;L;<compat> 0044 007A;;;;N;;;01F1;01F3;01F2
+01F3;LATIN SMALL LETTER DZ;Ll;0;L;<compat> 0064 007A;;;;N;;;01F1;;01F2
+01F4;LATIN CAPITAL LETTER G WITH ACUTE;Lu;0;L;0047 0301;;;;N;;;;01F5;
+01F5;LATIN SMALL LETTER G WITH ACUTE;Ll;0;L;0067 0301;;;;N;;;01F4;;01F4
+01F6;LATIN CAPITAL LETTER HWAIR;Lu;0;L;;;;;N;;;;0195;
+01F7;LATIN CAPITAL LETTER WYNN;Lu;0;L;;;;;N;;;;01BF;
+01F8;LATIN CAPITAL LETTER N WITH GRAVE;Lu;0;L;004E 0300;;;;N;;;;01F9;
+01F9;LATIN SMALL LETTER N WITH GRAVE;Ll;0;L;006E 0300;;;;N;;;01F8;;01F8
+01FA;LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE;Lu;0;L;00C5 0301;;;;N;;;;01FB;
+01FB;LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE;Ll;0;L;00E5 0301;;;;N;;;01FA;;01FA
+01FC;LATIN CAPITAL LETTER AE WITH ACUTE;Lu;0;L;00C6 0301;;;;N;;ash *;;01FD;
+01FD;LATIN SMALL LETTER AE WITH ACUTE;Ll;0;L;00E6 0301;;;;N;;ash *;01FC;;01FC
+01FE;LATIN CAPITAL LETTER O WITH STROKE AND ACUTE;Lu;0;L;00D8 0301;;;;N;;;;01FF;
+01FF;LATIN SMALL LETTER O WITH STROKE AND ACUTE;Ll;0;L;00F8 0301;;;;N;;;01FE;;01FE
+0200;LATIN CAPITAL LETTER A WITH DOUBLE GRAVE;Lu;0;L;0041 030F;;;;N;;;;0201;
+0201;LATIN SMALL LETTER A WITH DOUBLE GRAVE;Ll;0;L;0061 030F;;;;N;;;0200;;0200
+0202;LATIN CAPITAL LETTER A WITH INVERTED BREVE;Lu;0;L;0041 0311;;;;N;;;;0203;
+0203;LATIN SMALL LETTER A WITH INVERTED BREVE;Ll;0;L;0061 0311;;;;N;;;0202;;0202
+0204;LATIN CAPITAL LETTER E WITH DOUBLE GRAVE;Lu;0;L;0045 030F;;;;N;;;;0205;
+0205;LATIN SMALL LETTER E WITH DOUBLE GRAVE;Ll;0;L;0065 030F;;;;N;;;0204;;0204
+0206;LATIN CAPITAL LETTER E WITH INVERTED BREVE;Lu;0;L;0045 0311;;;;N;;;;0207;
+0207;LATIN SMALL LETTER E WITH INVERTED BREVE;Ll;0;L;0065 0311;;;;N;;;0206;;0206
+0208;LATIN CAPITAL LETTER I WITH DOUBLE GRAVE;Lu;0;L;0049 030F;;;;N;;;;0209;
+0209;LATIN SMALL LETTER I WITH DOUBLE GRAVE;Ll;0;L;0069 030F;;;;N;;;0208;;0208
+020A;LATIN CAPITAL LETTER I WITH INVERTED BREVE;Lu;0;L;0049 0311;;;;N;;;;020B;
+020B;LATIN SMALL LETTER I WITH INVERTED BREVE;Ll;0;L;0069 0311;;;;N;;;020A;;020A
+020C;LATIN CAPITAL LETTER O WITH DOUBLE GRAVE;Lu;0;L;004F 030F;;;;N;;;;020D;
+020D;LATIN SMALL LETTER O WITH DOUBLE GRAVE;Ll;0;L;006F 030F;;;;N;;;020C;;020C
+020E;LATIN CAPITAL LETTER O WITH INVERTED BREVE;Lu;0;L;004F 0311;;;;N;;;;020F;
+020F;LATIN SMALL LETTER O WITH INVERTED BREVE;Ll;0;L;006F 0311;;;;N;;;020E;;020E
+0210;LATIN CAPITAL LETTER R WITH DOUBLE GRAVE;Lu;0;L;0052 030F;;;;N;;;;0211;
+0211;LATIN SMALL LETTER R WITH DOUBLE GRAVE;Ll;0;L;0072 030F;;;;N;;;0210;;0210
+0212;LATIN CAPITAL LETTER R WITH INVERTED BREVE;Lu;0;L;0052 0311;;;;N;;;;0213;
+0213;LATIN SMALL LETTER R WITH INVERTED BREVE;Ll;0;L;0072 0311;;;;N;;;0212;;0212
+0214;LATIN CAPITAL LETTER U WITH DOUBLE GRAVE;Lu;0;L;0055 030F;;;;N;;;;0215;
+0215;LATIN SMALL LETTER U WITH DOUBLE GRAVE;Ll;0;L;0075 030F;;;;N;;;0214;;0214
+0216;LATIN CAPITAL LETTER U WITH INVERTED BREVE;Lu;0;L;0055 0311;;;;N;;;;0217;
+0217;LATIN SMALL LETTER U WITH INVERTED BREVE;Ll;0;L;0075 0311;;;;N;;;0216;;0216
+0218;LATIN CAPITAL LETTER S WITH COMMA BELOW;Lu;0;L;0053 0326;;;;N;;*;;0219;
+0219;LATIN SMALL LETTER S WITH COMMA BELOW;Ll;0;L;0073 0326;;;;N;;*;0218;;0218
+021A;LATIN CAPITAL LETTER T WITH COMMA BELOW;Lu;0;L;0054 0326;;;;N;;*;;021B;
+021B;LATIN SMALL LETTER T WITH COMMA BELOW;Ll;0;L;0074 0326;;;;N;;*;021A;;021A
+021C;LATIN CAPITAL LETTER YOGH;Lu;0;L;;;;;N;;;;021D;
+021D;LATIN SMALL LETTER YOGH;Ll;0;L;;;;;N;;;021C;;021C
+021E;LATIN CAPITAL LETTER H WITH CARON;Lu;0;L;0048 030C;;;;N;;;;021F;
+021F;LATIN SMALL LETTER H WITH CARON;Ll;0;L;0068 030C;;;;N;;;021E;;021E
+0220;LATIN CAPITAL LETTER N WITH LONG RIGHT LEG;Lu;0;L;;;;;N;;;;019E;
+0221;LATIN SMALL LETTER D WITH CURL;Ll;0;L;;;;;N;;;;;
+0222;LATIN CAPITAL LETTER OU;Lu;0;L;;;;;N;;;;0223;
+0223;LATIN SMALL LETTER OU;Ll;0;L;;;;;N;;;0222;;0222
+0224;LATIN CAPITAL LETTER Z WITH HOOK;Lu;0;L;;;;;N;;;;0225;
+0225;LATIN SMALL LETTER Z WITH HOOK;Ll;0;L;;;;;N;;;0224;;0224
+0226;LATIN CAPITAL LETTER A WITH DOT ABOVE;Lu;0;L;0041 0307;;;;N;;;;0227;
+0227;LATIN SMALL LETTER A WITH DOT ABOVE;Ll;0;L;0061 0307;;;;N;;;0226;;0226
+0228;LATIN CAPITAL LETTER E WITH CEDILLA;Lu;0;L;0045 0327;;;;N;;;;0229;
+0229;LATIN SMALL LETTER E WITH CEDILLA;Ll;0;L;0065 0327;;;;N;;;0228;;0228
+022A;LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON;Lu;0;L;00D6 0304;;;;N;;;;022B;
+022B;LATIN SMALL LETTER O WITH DIAERESIS AND MACRON;Ll;0;L;00F6 0304;;;;N;;;022A;;022A
+022C;LATIN CAPITAL LETTER O WITH TILDE AND MACRON;Lu;0;L;00D5 0304;;;;N;;;;022D;
+022D;LATIN SMALL LETTER O WITH TILDE AND MACRON;Ll;0;L;00F5 0304;;;;N;;;022C;;022C
+022E;LATIN CAPITAL LETTER O WITH DOT ABOVE;Lu;0;L;004F 0307;;;;N;;;;022F;
+022F;LATIN SMALL LETTER O WITH DOT ABOVE;Ll;0;L;006F 0307;;;;N;;;022E;;022E
+0230;LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON;Lu;0;L;022E 0304;;;;N;;;;0231;
+0231;LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON;Ll;0;L;022F 0304;;;;N;;;0230;;0230
+0232;LATIN CAPITAL LETTER Y WITH MACRON;Lu;0;L;0059 0304;;;;N;;;;0233;
+0233;LATIN SMALL LETTER Y WITH MACRON;Ll;0;L;0079 0304;;;;N;;;0232;;0232
+0234;LATIN SMALL LETTER L WITH CURL;Ll;0;L;;;;;N;;;;;
+0235;LATIN SMALL LETTER N WITH CURL;Ll;0;L;;;;;N;;;;;
+0236;LATIN SMALL LETTER T WITH CURL;Ll;0;L;;;;;N;;;;;
+0237;LATIN SMALL LETTER DOTLESS J;Ll;0;L;;;;;N;;;;;
+0238;LATIN SMALL LETTER DB DIGRAPH;Ll;0;L;;;;;N;;;;;
+0239;LATIN SMALL LETTER QP DIGRAPH;Ll;0;L;;;;;N;;;;;
+023A;LATIN CAPITAL LETTER A WITH STROKE;Lu;0;L;;;;;N;;;;2C65;
+023B;LATIN CAPITAL LETTER C WITH STROKE;Lu;0;L;;;;;N;;;;023C;
+023C;LATIN SMALL LETTER C WITH STROKE;Ll;0;L;;;;;N;;;023B;;023B
+023D;LATIN CAPITAL LETTER L WITH BAR;Lu;0;L;;;;;N;;;;019A;
+023E;LATIN CAPITAL LETTER T WITH DIAGONAL STROKE;Lu;0;L;;;;;N;;;;2C66;
+023F;LATIN SMALL LETTER S WITH SWASH TAIL;Ll;0;L;;;;;N;;;;;
+0240;LATIN SMALL LETTER Z WITH SWASH TAIL;Ll;0;L;;;;;N;;;;;
+0241;LATIN CAPITAL LETTER GLOTTAL STOP;Lu;0;L;;;;;N;;;;0242;
+0242;LATIN SMALL LETTER GLOTTAL STOP;Ll;0;L;;;;;N;;;0241;;0241
+0243;LATIN CAPITAL LETTER B WITH STROKE;Lu;0;L;;;;;N;;;;0180;
+0244;LATIN CAPITAL LETTER U BAR;Lu;0;L;;;;;N;;;;0289;
+0245;LATIN CAPITAL LETTER TURNED V;Lu;0;L;;;;;N;;;;028C;
+0246;LATIN CAPITAL LETTER E WITH STROKE;Lu;0;L;;;;;N;;;;0247;
+0247;LATIN SMALL LETTER E WITH STROKE;Ll;0;L;;;;;N;;;0246;;0246
+0248;LATIN CAPITAL LETTER J WITH STROKE;Lu;0;L;;;;;N;;;;0249;
+0249;LATIN SMALL LETTER J WITH STROKE;Ll;0;L;;;;;N;;;0248;;0248
+024A;LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL;Lu;0;L;;;;;N;;;;024B;
+024B;LATIN SMALL LETTER Q WITH HOOK TAIL;Ll;0;L;;;;;N;;;024A;;024A
+024C;LATIN CAPITAL LETTER R WITH STROKE;Lu;0;L;;;;;N;;;;024D;
+024D;LATIN SMALL LETTER R WITH STROKE;Ll;0;L;;;;;N;;;024C;;024C
+024E;LATIN CAPITAL LETTER Y WITH STROKE;Lu;0;L;;;;;N;;;;024F;
+024F;LATIN SMALL LETTER Y WITH STROKE;Ll;0;L;;;;;N;;;024E;;024E
+0250;LATIN SMALL LETTER TURNED A;Ll;0;L;;;;;N;;;;;
+0251;LATIN SMALL LETTER ALPHA;Ll;0;L;;;;;N;LATIN SMALL LETTER SCRIPT A;;;;
+0252;LATIN SMALL LETTER TURNED ALPHA;Ll;0;L;;;;;N;LATIN SMALL LETTER TURNED SCRIPT A;;;;
+0253;LATIN SMALL LETTER B WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER B HOOK;;0181;;0181
+0254;LATIN SMALL LETTER OPEN O;Ll;0;L;;;;;N;;;0186;;0186
+0255;LATIN SMALL LETTER C WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER C CURL;;;;
+0256;LATIN SMALL LETTER D WITH TAIL;Ll;0;L;;;;;N;LATIN SMALL LETTER D RETROFLEX HOOK;;0189;;0189
+0257;LATIN SMALL LETTER D WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER D HOOK;;018A;;018A
+0258;LATIN SMALL LETTER REVERSED E;Ll;0;L;;;;;N;;;;;
+0259;LATIN SMALL LETTER SCHWA;Ll;0;L;;;;;N;;;018F;;018F
+025A;LATIN SMALL LETTER SCHWA WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER SCHWA HOOK;;;;
+025B;LATIN SMALL LETTER OPEN E;Ll;0;L;;;;;N;LATIN SMALL LETTER EPSILON;;0190;;0190
+025C;LATIN SMALL LETTER REVERSED OPEN E;Ll;0;L;;;;;N;LATIN SMALL LETTER REVERSED EPSILON;;;;
+025D;LATIN SMALL LETTER REVERSED OPEN E WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER REVERSED EPSILON HOOK;;;;
+025E;LATIN SMALL LETTER CLOSED REVERSED OPEN E;Ll;0;L;;;;;N;LATIN SMALL LETTER CLOSED REVERSED EPSILON;;;;
+025F;LATIN SMALL LETTER DOTLESS J WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER DOTLESS J BAR;;;;
+0260;LATIN SMALL LETTER G WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER G HOOK;;0193;;0193
+0261;LATIN SMALL LETTER SCRIPT G;Ll;0;L;;;;;N;;;;;
+0262;LATIN LETTER SMALL CAPITAL G;Ll;0;L;;;;;N;;;;;
+0263;LATIN SMALL LETTER GAMMA;Ll;0;L;;;;;N;;;0194;;0194
+0264;LATIN SMALL LETTER RAMS HORN;Ll;0;L;;;;;N;LATIN SMALL LETTER BABY GAMMA;;;;
+0265;LATIN SMALL LETTER TURNED H;Ll;0;L;;;;;N;;;;;
+0266;LATIN SMALL LETTER H WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER H HOOK;;;;
+0267;LATIN SMALL LETTER HENG WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER HENG HOOK;;;;
+0268;LATIN SMALL LETTER I WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER BARRED I;;0197;;0197
+0269;LATIN SMALL LETTER IOTA;Ll;0;L;;;;;N;;;0196;;0196
+026A;LATIN LETTER SMALL CAPITAL I;Ll;0;L;;;;;N;;;;;
+026B;LATIN SMALL LETTER L WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;2C62;;2C62
+026C;LATIN SMALL LETTER L WITH BELT;Ll;0;L;;;;;N;LATIN SMALL LETTER L BELT;;;;
+026D;LATIN SMALL LETTER L WITH RETROFLEX HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER L RETROFLEX HOOK;;;;
+026E;LATIN SMALL LETTER LEZH;Ll;0;L;;;;;N;LATIN SMALL LETTER L YOGH;;;;
+026F;LATIN SMALL LETTER TURNED M;Ll;0;L;;;;;N;;;019C;;019C
+0270;LATIN SMALL LETTER TURNED M WITH LONG LEG;Ll;0;L;;;;;N;;;;;
+0271;LATIN SMALL LETTER M WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER M HOOK;;;;
+0272;LATIN SMALL LETTER N WITH LEFT HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER N HOOK;;019D;;019D
+0273;LATIN SMALL LETTER N WITH RETROFLEX HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER N RETROFLEX HOOK;;;;
+0274;LATIN LETTER SMALL CAPITAL N;Ll;0;L;;;;;N;;;;;
+0275;LATIN SMALL LETTER BARRED O;Ll;0;L;;;;;N;;;019F;;019F
+0276;LATIN LETTER SMALL CAPITAL OE;Ll;0;L;;;;;N;LATIN LETTER SMALL CAPITAL O E;;;;
+0277;LATIN SMALL LETTER CLOSED OMEGA;Ll;0;L;;;;;N;;;;;
+0278;LATIN SMALL LETTER PHI;Ll;0;L;;;;;N;;;;;
+0279;LATIN SMALL LETTER TURNED R;Ll;0;L;;;;;N;;;;;
+027A;LATIN SMALL LETTER TURNED R WITH LONG LEG;Ll;0;L;;;;;N;;;;;
+027B;LATIN SMALL LETTER TURNED R WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER TURNED R HOOK;;;;
+027C;LATIN SMALL LETTER R WITH LONG LEG;Ll;0;L;;;;;N;;;;;
+027D;LATIN SMALL LETTER R WITH TAIL;Ll;0;L;;;;;N;LATIN SMALL LETTER R HOOK;;2C64;;2C64
+027E;LATIN SMALL LETTER R WITH FISHHOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER FISHHOOK R;;;;
+027F;LATIN SMALL LETTER REVERSED R WITH FISHHOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER REVERSED FISHHOOK R;;;;
+0280;LATIN LETTER SMALL CAPITAL R;Ll;0;L;;;;;N;;*;01A6;;01A6
+0281;LATIN LETTER SMALL CAPITAL INVERTED R;Ll;0;L;;;;;N;;;;;
+0282;LATIN SMALL LETTER S WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER S HOOK;;;;
+0283;LATIN SMALL LETTER ESH;Ll;0;L;;;;;N;;;01A9;;01A9
+0284;LATIN SMALL LETTER DOTLESS J WITH STROKE AND HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER DOTLESS J BAR HOOK;;;;
+0285;LATIN SMALL LETTER SQUAT REVERSED ESH;Ll;0;L;;;;;N;;;;;
+0286;LATIN SMALL LETTER ESH WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER ESH CURL;;;;
+0287;LATIN SMALL LETTER TURNED T;Ll;0;L;;;;;N;;;;;
+0288;LATIN SMALL LETTER T WITH RETROFLEX HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER T RETROFLEX HOOK;;01AE;;01AE
+0289;LATIN SMALL LETTER U BAR;Ll;0;L;;;;;N;;;0244;;0244
+028A;LATIN SMALL LETTER UPSILON;Ll;0;L;;;;;N;;;01B1;;01B1
+028B;LATIN SMALL LETTER V WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER SCRIPT V;;01B2;;01B2
+028C;LATIN SMALL LETTER TURNED V;Ll;0;L;;;;;N;;;0245;;0245
+028D;LATIN SMALL LETTER TURNED W;Ll;0;L;;;;;N;;;;;
+028E;LATIN SMALL LETTER TURNED Y;Ll;0;L;;;;;N;;;;;
+028F;LATIN LETTER SMALL CAPITAL Y;Ll;0;L;;;;;N;;;;;
+0290;LATIN SMALL LETTER Z WITH RETROFLEX HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER Z RETROFLEX HOOK;;;;
+0291;LATIN SMALL LETTER Z WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER Z CURL;;;;
+0292;LATIN SMALL LETTER EZH;Ll;0;L;;;;;N;LATIN SMALL LETTER YOGH;;01B7;;01B7
+0293;LATIN SMALL LETTER EZH WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER YOGH CURL;;;;
+0294;LATIN LETTER GLOTTAL STOP;Lo;0;L;;;;;N;;;;;
+0295;LATIN LETTER PHARYNGEAL VOICED FRICATIVE;Ll;0;L;;;;;N;LATIN LETTER REVERSED GLOTTAL STOP;;;;
+0296;LATIN LETTER INVERTED GLOTTAL STOP;Ll;0;L;;;;;N;;;;;
+0297;LATIN LETTER STRETCHED C;Ll;0;L;;;;;N;;;;;
+0298;LATIN LETTER BILABIAL CLICK;Ll;0;L;;;;;N;LATIN LETTER BULLSEYE;;;;
+0299;LATIN LETTER SMALL CAPITAL B;Ll;0;L;;;;;N;;;;;
+029A;LATIN SMALL LETTER CLOSED OPEN E;Ll;0;L;;;;;N;LATIN SMALL LETTER CLOSED EPSILON;;;;
+029B;LATIN LETTER SMALL CAPITAL G WITH HOOK;Ll;0;L;;;;;N;LATIN LETTER SMALL CAPITAL G HOOK;;;;
+029C;LATIN LETTER SMALL CAPITAL H;Ll;0;L;;;;;N;;;;;
+029D;LATIN SMALL LETTER J WITH CROSSED-TAIL;Ll;0;L;;;;;N;LATIN SMALL LETTER CROSSED-TAIL J;;;;
+029E;LATIN SMALL LETTER TURNED K;Ll;0;L;;;;;N;;;;;
+029F;LATIN LETTER SMALL CAPITAL L;Ll;0;L;;;;;N;;;;;
+02A0;LATIN SMALL LETTER Q WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER Q HOOK;;;;
+02A1;LATIN LETTER GLOTTAL STOP WITH STROKE;Ll;0;L;;;;;N;LATIN LETTER GLOTTAL STOP BAR;;;;
+02A2;LATIN LETTER REVERSED GLOTTAL STOP WITH STROKE;Ll;0;L;;;;;N;LATIN LETTER REVERSED GLOTTAL STOP BAR;;;;
+02A3;LATIN SMALL LETTER DZ DIGRAPH;Ll;0;L;;;;;N;LATIN SMALL LETTER D Z;;;;
+02A4;LATIN SMALL LETTER DEZH DIGRAPH;Ll;0;L;;;;;N;LATIN SMALL LETTER D YOGH;;;;
+02A5;LATIN SMALL LETTER DZ DIGRAPH WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER D Z CURL;;;;
+02A6;LATIN SMALL LETTER TS DIGRAPH;Ll;0;L;;;;;N;LATIN SMALL LETTER T S;;;;
+02A7;LATIN SMALL LETTER TESH DIGRAPH;Ll;0;L;;;;;N;LATIN SMALL LETTER T ESH;;;;
+02A8;LATIN SMALL LETTER TC DIGRAPH WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER T C CURL;;;;
+02A9;LATIN SMALL LETTER FENG DIGRAPH;Ll;0;L;;;;;N;;;;;
+02AA;LATIN SMALL LETTER LS DIGRAPH;Ll;0;L;;;;;N;;;;;
+02AB;LATIN SMALL LETTER LZ DIGRAPH;Ll;0;L;;;;;N;;;;;
+02AC;LATIN LETTER BILABIAL PERCUSSIVE;Ll;0;L;;;;;N;;;;;
+02AD;LATIN LETTER BIDENTAL PERCUSSIVE;Ll;0;L;;;;;N;;;;;
+02AE;LATIN SMALL LETTER TURNED H WITH FISHHOOK;Ll;0;L;;;;;N;;;;;
+02AF;LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL;Ll;0;L;;;;;N;;;;;
+02B0;MODIFIER LETTER SMALL H;Lm;0;L;<super> 0068;;;;N;;;;;
+02B1;MODIFIER LETTER SMALL H WITH HOOK;Lm;0;L;<super> 0266;;;;N;MODIFIER LETTER SMALL H HOOK;;;;
+02B2;MODIFIER LETTER SMALL J;Lm;0;L;<super> 006A;;;;N;;;;;
+02B3;MODIFIER LETTER SMALL R;Lm;0;L;<super> 0072;;;;N;;;;;
+02B4;MODIFIER LETTER SMALL TURNED R;Lm;0;L;<super> 0279;;;;N;;;;;
+02B5;MODIFIER LETTER SMALL TURNED R WITH HOOK;Lm;0;L;<super> 027B;;;;N;MODIFIER LETTER SMALL TURNED R HOOK;;;;
+02B6;MODIFIER LETTER SMALL CAPITAL INVERTED R;Lm;0;L;<super> 0281;;;;N;;;;;
+02B7;MODIFIER LETTER SMALL W;Lm;0;L;<super> 0077;;;;N;;;;;
+02B8;MODIFIER LETTER SMALL Y;Lm;0;L;<super> 0079;;;;N;;;;;
+02B9;MODIFIER LETTER PRIME;Lm;0;ON;;;;;N;;;;;
+02BA;MODIFIER LETTER DOUBLE PRIME;Lm;0;ON;;;;;N;;;;;
+02BB;MODIFIER LETTER TURNED COMMA;Lm;0;L;;;;;N;;;;;
+02BC;MODIFIER LETTER APOSTROPHE;Lm;0;L;;;;;N;;;;;
+02BD;MODIFIER LETTER REVERSED COMMA;Lm;0;L;;;;;N;;;;;
+02BE;MODIFIER LETTER RIGHT HALF RING;Lm;0;L;;;;;N;;;;;
+02BF;MODIFIER LETTER LEFT HALF RING;Lm;0;L;;;;;N;;;;;
+02C0;MODIFIER LETTER GLOTTAL STOP;Lm;0;L;;;;;N;;;;;
+02C1;MODIFIER LETTER REVERSED GLOTTAL STOP;Lm;0;L;;;;;N;;;;;
+02C2;MODIFIER LETTER LEFT ARROWHEAD;Sk;0;ON;;;;;N;;;;;
+02C3;MODIFIER LETTER RIGHT ARROWHEAD;Sk;0;ON;;;;;N;;;;;
+02C4;MODIFIER LETTER UP ARROWHEAD;Sk;0;ON;;;;;N;;;;;
+02C5;MODIFIER LETTER DOWN ARROWHEAD;Sk;0;ON;;;;;N;;;;;
+02C6;MODIFIER LETTER CIRCUMFLEX ACCENT;Lm;0;ON;;;;;N;MODIFIER LETTER CIRCUMFLEX;;;;
+02C7;CARON;Lm;0;ON;;;;;N;MODIFIER LETTER HACEK;Mandarin Chinese third tone;;;
+02C8;MODIFIER LETTER VERTICAL LINE;Lm;0;ON;;;;;N;;;;;
+02C9;MODIFIER LETTER MACRON;Lm;0;ON;;;;;N;;Mandarin Chinese first tone;;;
+02CA;MODIFIER LETTER ACUTE ACCENT;Lm;0;ON;;;;;N;MODIFIER LETTER ACUTE;Mandarin Chinese second tone;;;
+02CB;MODIFIER LETTER GRAVE ACCENT;Lm;0;ON;;;;;N;MODIFIER LETTER GRAVE;Mandarin Chinese fourth tone;;;
+02CC;MODIFIER LETTER LOW VERTICAL LINE;Lm;0;ON;;;;;N;;;;;
+02CD;MODIFIER LETTER LOW MACRON;Lm;0;ON;;;;;N;;;;;
+02CE;MODIFIER LETTER LOW GRAVE ACCENT;Lm;0;ON;;;;;N;MODIFIER LETTER LOW GRAVE;;;;
+02CF;MODIFIER LETTER LOW ACUTE ACCENT;Lm;0;ON;;;;;N;MODIFIER LETTER LOW ACUTE;;;;
+02D0;MODIFIER LETTER TRIANGULAR COLON;Lm;0;L;;;;;N;;;;;
+02D1;MODIFIER LETTER HALF TRIANGULAR COLON;Lm;0;L;;;;;N;;;;;
+02D2;MODIFIER LETTER CENTRED RIGHT HALF RING;Sk;0;ON;;;;;N;MODIFIER LETTER CENTERED RIGHT HALF RING;;;;
+02D3;MODIFIER LETTER CENTRED LEFT HALF RING;Sk;0;ON;;;;;N;MODIFIER LETTER CENTERED LEFT HALF RING;;;;
+02D4;MODIFIER LETTER UP TACK;Sk;0;ON;;;;;N;;;;;
+02D5;MODIFIER LETTER DOWN TACK;Sk;0;ON;;;;;N;;;;;
+02D6;MODIFIER LETTER PLUS SIGN;Sk;0;ON;;;;;N;;;;;
+02D7;MODIFIER LETTER MINUS SIGN;Sk;0;ON;;;;;N;;;;;
+02D8;BREVE;Sk;0;ON;<compat> 0020 0306;;;;N;SPACING BREVE;;;;
+02D9;DOT ABOVE;Sk;0;ON;<compat> 0020 0307;;;;N;SPACING DOT ABOVE;Mandarin Chinese light tone;;;
+02DA;RING ABOVE;Sk;0;ON;<compat> 0020 030A;;;;N;SPACING RING ABOVE;;;;
+02DB;OGONEK;Sk;0;ON;<compat> 0020 0328;;;;N;SPACING OGONEK;;;;
+02DC;SMALL TILDE;Sk;0;ON;<compat> 0020 0303;;;;N;SPACING TILDE;;;;
+02DD;DOUBLE ACUTE ACCENT;Sk;0;ON;<compat> 0020 030B;;;;N;SPACING DOUBLE ACUTE;;;;
+02DE;MODIFIER LETTER RHOTIC HOOK;Sk;0;ON;;;;;N;;;;;
+02DF;MODIFIER LETTER CROSS ACCENT;Sk;0;ON;;;;;N;;;;;
+02E0;MODIFIER LETTER SMALL GAMMA;Lm;0;L;<super> 0263;;;;N;;;;;
+02E1;MODIFIER LETTER SMALL L;Lm;0;L;<super> 006C;;;;N;;;;;
+02E2;MODIFIER LETTER SMALL S;Lm;0;L;<super> 0073;;;;N;;;;;
+02E3;MODIFIER LETTER SMALL X;Lm;0;L;<super> 0078;;;;N;;;;;
+02E4;MODIFIER LETTER SMALL REVERSED GLOTTAL STOP;Lm;0;L;<super> 0295;;;;N;;;;;
+02E5;MODIFIER LETTER EXTRA-HIGH TONE BAR;Sk;0;ON;;;;;N;;;;;
+02E6;MODIFIER LETTER HIGH TONE BAR;Sk;0;ON;;;;;N;;;;;
+02E7;MODIFIER LETTER MID TONE BAR;Sk;0;ON;;;;;N;;;;;
+02E8;MODIFIER LETTER LOW TONE BAR;Sk;0;ON;;;;;N;;;;;
+02E9;MODIFIER LETTER EXTRA-LOW TONE BAR;Sk;0;ON;;;;;N;;;;;
+02EA;MODIFIER LETTER YIN DEPARTING TONE MARK;Sk;0;ON;;;;;N;;;;;
+02EB;MODIFIER LETTER YANG DEPARTING TONE MARK;Sk;0;ON;;;;;N;;;;;
+02EC;MODIFIER LETTER VOICING;Sk;0;ON;;;;;N;;;;;
+02ED;MODIFIER LETTER UNASPIRATED;Sk;0;ON;;;;;N;;;;;
+02EE;MODIFIER LETTER DOUBLE APOSTROPHE;Lm;0;L;;;;;N;;;;;
+02EF;MODIFIER LETTER LOW DOWN ARROWHEAD;Sk;0;ON;;;;;N;;;;;
+02F0;MODIFIER LETTER LOW UP ARROWHEAD;Sk;0;ON;;;;;N;;;;;
+02F1;MODIFIER LETTER LOW LEFT ARROWHEAD;Sk;0;ON;;;;;N;;;;;
+02F2;MODIFIER LETTER LOW RIGHT ARROWHEAD;Sk;0;ON;;;;;N;;;;;
+02F3;MODIFIER LETTER LOW RING;Sk;0;ON;;;;;N;;;;;
+02F4;MODIFIER LETTER MIDDLE GRAVE ACCENT;Sk;0;ON;;;;;N;;;;;
+02F5;MODIFIER LETTER MIDDLE DOUBLE GRAVE ACCENT;Sk;0;ON;;;;;N;;;;;
+02F6;MODIFIER LETTER MIDDLE DOUBLE ACUTE ACCENT;Sk;0;ON;;;;;N;;;;;
+02F7;MODIFIER LETTER LOW TILDE;Sk;0;ON;;;;;N;;;;;
+02F8;MODIFIER LETTER RAISED COLON;Sk;0;ON;;;;;N;;;;;
+02F9;MODIFIER LETTER BEGIN HIGH TONE;Sk;0;ON;;;;;N;;;;;
+02FA;MODIFIER LETTER END HIGH TONE;Sk;0;ON;;;;;N;;;;;
+02FB;MODIFIER LETTER BEGIN LOW TONE;Sk;0;ON;;;;;N;;;;;
+02FC;MODIFIER LETTER END LOW TONE;Sk;0;ON;;;;;N;;;;;
+02FD;MODIFIER LETTER SHELF;Sk;0;ON;;;;;N;;;;;
+02FE;MODIFIER LETTER OPEN SHELF;Sk;0;ON;;;;;N;;;;;
+02FF;MODIFIER LETTER LOW LEFT ARROW;Sk;0;ON;;;;;N;;;;;
+0300;COMBINING GRAVE ACCENT;Mn;230;NSM;;;;;N;NON-SPACING GRAVE;Varia;;;
+0301;COMBINING ACUTE ACCENT;Mn;230;NSM;;;;;N;NON-SPACING ACUTE;Oxia, Tonos;;;
+0302;COMBINING CIRCUMFLEX ACCENT;Mn;230;NSM;;;;;N;NON-SPACING CIRCUMFLEX;;;;
+0303;COMBINING TILDE;Mn;230;NSM;;;;;N;NON-SPACING TILDE;;;;
+0304;COMBINING MACRON;Mn;230;NSM;;;;;N;NON-SPACING MACRON;;;;
+0305;COMBINING OVERLINE;Mn;230;NSM;;;;;N;NON-SPACING OVERSCORE;;;;
+0306;COMBINING BREVE;Mn;230;NSM;;;;;N;NON-SPACING BREVE;Vrachy;;;
+0307;COMBINING DOT ABOVE;Mn;230;NSM;;;;;N;NON-SPACING DOT ABOVE;;;;
+0308;COMBINING DIAERESIS;Mn;230;NSM;;;;;N;NON-SPACING DIAERESIS;Dialytika;;;
+0309;COMBINING HOOK ABOVE;Mn;230;NSM;;;;;N;NON-SPACING HOOK ABOVE;;;;
+030A;COMBINING RING ABOVE;Mn;230;NSM;;;;;N;NON-SPACING RING ABOVE;;;;
+030B;COMBINING DOUBLE ACUTE ACCENT;Mn;230;NSM;;;;;N;NON-SPACING DOUBLE ACUTE;;;;
+030C;COMBINING CARON;Mn;230;NSM;;;;;N;NON-SPACING HACEK;;;;
+030D;COMBINING VERTICAL LINE ABOVE;Mn;230;NSM;;;;;N;NON-SPACING VERTICAL LINE ABOVE;;;;
+030E;COMBINING DOUBLE VERTICAL LINE ABOVE;Mn;230;NSM;;;;;N;NON-SPACING DOUBLE VERTICAL LINE ABOVE;;;;
+030F;COMBINING DOUBLE GRAVE ACCENT;Mn;230;NSM;;;;;N;NON-SPACING DOUBLE GRAVE;;;;
+0310;COMBINING CANDRABINDU;Mn;230;NSM;;;;;N;NON-SPACING CANDRABINDU;;;;
+0311;COMBINING INVERTED BREVE;Mn;230;NSM;;;;;N;NON-SPACING INVERTED BREVE;;;;
+0312;COMBINING TURNED COMMA ABOVE;Mn;230;NSM;;;;;N;NON-SPACING TURNED COMMA ABOVE;;;;
+0313;COMBINING COMMA ABOVE;Mn;230;NSM;;;;;N;NON-SPACING COMMA ABOVE;Psili;;;
+0314;COMBINING REVERSED COMMA ABOVE;Mn;230;NSM;;;;;N;NON-SPACING REVERSED COMMA ABOVE;Dasia;;;
+0315;COMBINING COMMA ABOVE RIGHT;Mn;232;NSM;;;;;N;NON-SPACING COMMA ABOVE RIGHT;;;;
+0316;COMBINING GRAVE ACCENT BELOW;Mn;220;NSM;;;;;N;NON-SPACING GRAVE BELOW;;;;
+0317;COMBINING ACUTE ACCENT BELOW;Mn;220;NSM;;;;;N;NON-SPACING ACUTE BELOW;;;;
+0318;COMBINING LEFT TACK BELOW;Mn;220;NSM;;;;;N;NON-SPACING LEFT TACK BELOW;;;;
+0319;COMBINING RIGHT TACK BELOW;Mn;220;NSM;;;;;N;NON-SPACING RIGHT TACK BELOW;;;;
+031A;COMBINING LEFT ANGLE ABOVE;Mn;232;NSM;;;;;N;NON-SPACING LEFT ANGLE ABOVE;;;;
+031B;COMBINING HORN;Mn;216;NSM;;;;;N;NON-SPACING HORN;;;;
+031C;COMBINING LEFT HALF RING BELOW;Mn;220;NSM;;;;;N;NON-SPACING LEFT HALF RING BELOW;;;;
+031D;COMBINING UP TACK BELOW;Mn;220;NSM;;;;;N;NON-SPACING UP TACK BELOW;;;;
+031E;COMBINING DOWN TACK BELOW;Mn;220;NSM;;;;;N;NON-SPACING DOWN TACK BELOW;;;;
+031F;COMBINING PLUS SIGN BELOW;Mn;220;NSM;;;;;N;NON-SPACING PLUS SIGN BELOW;;;;
+0320;COMBINING MINUS SIGN BELOW;Mn;220;NSM;;;;;N;NON-SPACING MINUS SIGN BELOW;;;;
+0321;COMBINING PALATALIZED HOOK BELOW;Mn;202;NSM;;;;;N;NON-SPACING PALATALIZED HOOK BELOW;;;;
+0322;COMBINING RETROFLEX HOOK BELOW;Mn;202;NSM;;;;;N;NON-SPACING RETROFLEX HOOK BELOW;;;;
+0323;COMBINING DOT BELOW;Mn;220;NSM;;;;;N;NON-SPACING DOT BELOW;;;;
+0324;COMBINING DIAERESIS BELOW;Mn;220;NSM;;;;;N;NON-SPACING DOUBLE DOT BELOW;;;;
+0325;COMBINING RING BELOW;Mn;220;NSM;;;;;N;NON-SPACING RING BELOW;;;;
+0326;COMBINING COMMA BELOW;Mn;220;NSM;;;;;N;NON-SPACING COMMA BELOW;;;;
+0327;COMBINING CEDILLA;Mn;202;NSM;;;;;N;NON-SPACING CEDILLA;;;;
+0328;COMBINING OGONEK;Mn;202;NSM;;;;;N;NON-SPACING OGONEK;;;;
+0329;COMBINING VERTICAL LINE BELOW;Mn;220;NSM;;;;;N;NON-SPACING VERTICAL LINE BELOW;;;;
+032A;COMBINING BRIDGE BELOW;Mn;220;NSM;;;;;N;NON-SPACING BRIDGE BELOW;;;;
+032B;COMBINING INVERTED DOUBLE ARCH BELOW;Mn;220;NSM;;;;;N;NON-SPACING INVERTED DOUBLE ARCH BELOW;;;;
+032C;COMBINING CARON BELOW;Mn;220;NSM;;;;;N;NON-SPACING HACEK BELOW;;;;
+032D;COMBINING CIRCUMFLEX ACCENT BELOW;Mn;220;NSM;;;;;N;NON-SPACING CIRCUMFLEX BELOW;;;;
+032E;COMBINING BREVE BELOW;Mn;220;NSM;;;;;N;NON-SPACING BREVE BELOW;;;;
+032F;COMBINING INVERTED BREVE BELOW;Mn;220;NSM;;;;;N;NON-SPACING INVERTED BREVE BELOW;;;;
+0330;COMBINING TILDE BELOW;Mn;220;NSM;;;;;N;NON-SPACING TILDE BELOW;;;;
+0331;COMBINING MACRON BELOW;Mn;220;NSM;;;;;N;NON-SPACING MACRON BELOW;;;;
+0332;COMBINING LOW LINE;Mn;220;NSM;;;;;N;NON-SPACING UNDERSCORE;;;;
+0333;COMBINING DOUBLE LOW LINE;Mn;220;NSM;;;;;N;NON-SPACING DOUBLE UNDERSCORE;;;;
+0334;COMBINING TILDE OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING TILDE OVERLAY;;;;
+0335;COMBINING SHORT STROKE OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING SHORT BAR OVERLAY;;;;
+0336;COMBINING LONG STROKE OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING LONG BAR OVERLAY;;;;
+0337;COMBINING SHORT SOLIDUS OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING SHORT SLASH OVERLAY;;;;
+0338;COMBINING LONG SOLIDUS OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING LONG SLASH OVERLAY;;;;
+0339;COMBINING RIGHT HALF RING BELOW;Mn;220;NSM;;;;;N;NON-SPACING RIGHT HALF RING BELOW;;;;
+033A;COMBINING INVERTED BRIDGE BELOW;Mn;220;NSM;;;;;N;NON-SPACING INVERTED BRIDGE BELOW;;;;
+033B;COMBINING SQUARE BELOW;Mn;220;NSM;;;;;N;NON-SPACING SQUARE BELOW;;;;
+033C;COMBINING SEAGULL BELOW;Mn;220;NSM;;;;;N;NON-SPACING SEAGULL BELOW;;;;
+033D;COMBINING X ABOVE;Mn;230;NSM;;;;;N;NON-SPACING X ABOVE;;;;
+033E;COMBINING VERTICAL TILDE;Mn;230;NSM;;;;;N;NON-SPACING VERTICAL TILDE;;;;
+033F;COMBINING DOUBLE OVERLINE;Mn;230;NSM;;;;;N;NON-SPACING DOUBLE OVERSCORE;;;;
+0340;COMBINING GRAVE TONE MARK;Mn;230;NSM;0300;;;;N;NON-SPACING GRAVE TONE MARK;Vietnamese;;;
+0341;COMBINING ACUTE TONE MARK;Mn;230;NSM;0301;;;;N;NON-SPACING ACUTE TONE MARK;Vietnamese;;;
+0342;COMBINING GREEK PERISPOMENI;Mn;230;NSM;;;;;N;;;;;
+0343;COMBINING GREEK KORONIS;Mn;230;NSM;0313;;;;N;;;;;
+0344;COMBINING GREEK DIALYTIKA TONOS;Mn;230;NSM;0308 0301;;;;N;GREEK NON-SPACING DIAERESIS TONOS;;;;
+0345;COMBINING GREEK YPOGEGRAMMENI;Mn;240;NSM;;;;;N;GREEK NON-SPACING IOTA BELOW;;0399;;0399
+0346;COMBINING BRIDGE ABOVE;Mn;230;NSM;;;;;N;;;;;
+0347;COMBINING EQUALS SIGN BELOW;Mn;220;NSM;;;;;N;;;;;
+0348;COMBINING DOUBLE VERTICAL LINE BELOW;Mn;220;NSM;;;;;N;;;;;
+0349;COMBINING LEFT ANGLE BELOW;Mn;220;NSM;;;;;N;;;;;
+034A;COMBINING NOT TILDE ABOVE;Mn;230;NSM;;;;;N;;;;;
+034B;COMBINING HOMOTHETIC ABOVE;Mn;230;NSM;;;;;N;;;;;
+034C;COMBINING ALMOST EQUAL TO ABOVE;Mn;230;NSM;;;;;N;;;;;
+034D;COMBINING LEFT RIGHT ARROW BELOW;Mn;220;NSM;;;;;N;;;;;
+034E;COMBINING UPWARDS ARROW BELOW;Mn;220;NSM;;;;;N;;;;;
+034F;COMBINING GRAPHEME JOINER;Mn;0;NSM;;;;;N;;;;;
+0350;COMBINING RIGHT ARROWHEAD ABOVE;Mn;230;NSM;;;;;N;;;;;
+0351;COMBINING LEFT HALF RING ABOVE;Mn;230;NSM;;;;;N;;;;;
+0352;COMBINING FERMATA;Mn;230;NSM;;;;;N;;;;;
+0353;COMBINING X BELOW;Mn;220;NSM;;;;;N;;;;;
+0354;COMBINING LEFT ARROWHEAD BELOW;Mn;220;NSM;;;;;N;;;;;
+0355;COMBINING RIGHT ARROWHEAD BELOW;Mn;220;NSM;;;;;N;;;;;
+0356;COMBINING RIGHT ARROWHEAD AND UP ARROWHEAD BELOW;Mn;220;NSM;;;;;N;;;;;
+0357;COMBINING RIGHT HALF RING ABOVE;Mn;230;NSM;;;;;N;;;;;
+0358;COMBINING DOT ABOVE RIGHT;Mn;232;NSM;;;;;N;;;;;
+0359;COMBINING ASTERISK BELOW;Mn;220;NSM;;;;;N;;;;;
+035A;COMBINING DOUBLE RING BELOW;Mn;220;NSM;;;;;N;;;;;
+035B;COMBINING ZIGZAG ABOVE;Mn;230;NSM;;;;;N;;;;;
+035C;COMBINING DOUBLE BREVE BELOW;Mn;233;NSM;;;;;N;;;;;
+035D;COMBINING DOUBLE BREVE;Mn;234;NSM;;;;;N;;;;;
+035E;COMBINING DOUBLE MACRON;Mn;234;NSM;;;;;N;;;;;
+035F;COMBINING DOUBLE MACRON BELOW;Mn;233;NSM;;;;;N;;;;;
+0360;COMBINING DOUBLE TILDE;Mn;234;NSM;;;;;N;;;;;
+0361;COMBINING DOUBLE INVERTED BREVE;Mn;234;NSM;;;;;N;;;;;
+0362;COMBINING DOUBLE RIGHTWARDS ARROW BELOW;Mn;233;NSM;;;;;N;;;;;
+0363;COMBINING LATIN SMALL LETTER A;Mn;230;NSM;;;;;N;;;;;
+0364;COMBINING LATIN SMALL LETTER E;Mn;230;NSM;;;;;N;;;;;
+0365;COMBINING LATIN SMALL LETTER I;Mn;230;NSM;;;;;N;;;;;
+0366;COMBINING LATIN SMALL LETTER O;Mn;230;NSM;;;;;N;;;;;
+0367;COMBINING LATIN SMALL LETTER U;Mn;230;NSM;;;;;N;;;;;
+0368;COMBINING LATIN SMALL LETTER C;Mn;230;NSM;;;;;N;;;;;
+0369;COMBINING LATIN SMALL LETTER D;Mn;230;NSM;;;;;N;;;;;
+036A;COMBINING LATIN SMALL LETTER H;Mn;230;NSM;;;;;N;;;;;
+036B;COMBINING LATIN SMALL LETTER M;Mn;230;NSM;;;;;N;;;;;
+036C;COMBINING LATIN SMALL LETTER R;Mn;230;NSM;;;;;N;;;;;
+036D;COMBINING LATIN SMALL LETTER T;Mn;230;NSM;;;;;N;;;;;
+036E;COMBINING LATIN SMALL LETTER V;Mn;230;NSM;;;;;N;;;;;
+036F;COMBINING LATIN SMALL LETTER X;Mn;230;NSM;;;;;N;;;;;
+0374;GREEK NUMERAL SIGN;Sk;0;ON;02B9;;;;N;GREEK UPPER NUMERAL SIGN;Dexia keraia;;;
+0375;GREEK LOWER NUMERAL SIGN;Sk;0;ON;;;;;N;;Aristeri keraia;;;
+037A;GREEK YPOGEGRAMMENI;Lm;0;L;<compat> 0020 0345;;;;N;GREEK SPACING IOTA BELOW;;;;
+037B;GREEK SMALL REVERSED LUNATE SIGMA SYMBOL;Ll;0;L;;;;;N;;;03FD;;03FD
+037C;GREEK SMALL DOTTED LUNATE SIGMA SYMBOL;Ll;0;L;;;;;N;;;03FE;;03FE
+037D;GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL;Ll;0;L;;;;;N;;;03FF;;03FF
+037E;GREEK QUESTION MARK;Po;0;ON;003B;;;;N;;Erotimatiko;;;
+0384;GREEK TONOS;Sk;0;ON;<compat> 0020 0301;;;;N;GREEK SPACING TONOS;;;;
+0385;GREEK DIALYTIKA TONOS;Sk;0;ON;00A8 0301;;;;N;GREEK SPACING DIAERESIS TONOS;;;;
+0386;GREEK CAPITAL LETTER ALPHA WITH TONOS;Lu;0;L;0391 0301;;;;N;GREEK CAPITAL LETTER ALPHA TONOS;;;03AC;
+0387;GREEK ANO TELEIA;Po;0;ON;00B7;;;;N;;;;;
+0388;GREEK CAPITAL LETTER EPSILON WITH TONOS;Lu;0;L;0395 0301;;;;N;GREEK CAPITAL LETTER EPSILON TONOS;;;03AD;
+0389;GREEK CAPITAL LETTER ETA WITH TONOS;Lu;0;L;0397 0301;;;;N;GREEK CAPITAL LETTER ETA TONOS;;;03AE;
+038A;GREEK CAPITAL LETTER IOTA WITH TONOS;Lu;0;L;0399 0301;;;;N;GREEK CAPITAL LETTER IOTA TONOS;;;03AF;
+038C;GREEK CAPITAL LETTER OMICRON WITH TONOS;Lu;0;L;039F 0301;;;;N;GREEK CAPITAL LETTER OMICRON TONOS;;;03CC;
+038E;GREEK CAPITAL LETTER UPSILON WITH TONOS;Lu;0;L;03A5 0301;;;;N;GREEK CAPITAL LETTER UPSILON TONOS;;;03CD;
+038F;GREEK CAPITAL LETTER OMEGA WITH TONOS;Lu;0;L;03A9 0301;;;;N;GREEK CAPITAL LETTER OMEGA TONOS;;;03CE;
+0390;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS;Ll;0;L;03CA 0301;;;;N;GREEK SMALL LETTER IOTA DIAERESIS TONOS;;;;
+0391;GREEK CAPITAL LETTER ALPHA;Lu;0;L;;;;;N;;;;03B1;
+0392;GREEK CAPITAL LETTER BETA;Lu;0;L;;;;;N;;;;03B2;
+0393;GREEK CAPITAL LETTER GAMMA;Lu;0;L;;;;;N;;;;03B3;
+0394;GREEK CAPITAL LETTER DELTA;Lu;0;L;;;;;N;;;;03B4;
+0395;GREEK CAPITAL LETTER EPSILON;Lu;0;L;;;;;N;;;;03B5;
+0396;GREEK CAPITAL LETTER ZETA;Lu;0;L;;;;;N;;;;03B6;
+0397;GREEK CAPITAL LETTER ETA;Lu;0;L;;;;;N;;;;03B7;
+0398;GREEK CAPITAL LETTER THETA;Lu;0;L;;;;;N;;;;03B8;
+0399;GREEK CAPITAL LETTER IOTA;Lu;0;L;;;;;N;;;;03B9;
+039A;GREEK CAPITAL LETTER KAPPA;Lu;0;L;;;;;N;;;;03BA;
+039B;GREEK CAPITAL LETTER LAMDA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER LAMBDA;;;03BB;
+039C;GREEK CAPITAL LETTER MU;Lu;0;L;;;;;N;;;;03BC;
+039D;GREEK CAPITAL LETTER NU;Lu;0;L;;;;;N;;;;03BD;
+039E;GREEK CAPITAL LETTER XI;Lu;0;L;;;;;N;;;;03BE;
+039F;GREEK CAPITAL LETTER OMICRON;Lu;0;L;;;;;N;;;;03BF;
+03A0;GREEK CAPITAL LETTER PI;Lu;0;L;;;;;N;;;;03C0;
+03A1;GREEK CAPITAL LETTER RHO;Lu;0;L;;;;;N;;;;03C1;
+03A3;GREEK CAPITAL LETTER SIGMA;Lu;0;L;;;;;N;;;;03C3;
+03A4;GREEK CAPITAL LETTER TAU;Lu;0;L;;;;;N;;;;03C4;
+03A5;GREEK CAPITAL LETTER UPSILON;Lu;0;L;;;;;N;;;;03C5;
+03A6;GREEK CAPITAL LETTER PHI;Lu;0;L;;;;;N;;;;03C6;
+03A7;GREEK CAPITAL LETTER CHI;Lu;0;L;;;;;N;;;;03C7;
+03A8;GREEK CAPITAL LETTER PSI;Lu;0;L;;;;;N;;;;03C8;
+03A9;GREEK CAPITAL LETTER OMEGA;Lu;0;L;;;;;N;;;;03C9;
+03AA;GREEK CAPITAL LETTER IOTA WITH DIALYTIKA;Lu;0;L;0399 0308;;;;N;GREEK CAPITAL LETTER IOTA DIAERESIS;;;03CA;
+03AB;GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA;Lu;0;L;03A5 0308;;;;N;GREEK CAPITAL LETTER UPSILON DIAERESIS;;;03CB;
+03AC;GREEK SMALL LETTER ALPHA WITH TONOS;Ll;0;L;03B1 0301;;;;N;GREEK SMALL LETTER ALPHA TONOS;;0386;;0386
+03AD;GREEK SMALL LETTER EPSILON WITH TONOS;Ll;0;L;03B5 0301;;;;N;GREEK SMALL LETTER EPSILON TONOS;;0388;;0388
+03AE;GREEK SMALL LETTER ETA WITH TONOS;Ll;0;L;03B7 0301;;;;N;GREEK SMALL LETTER ETA TONOS;;0389;;0389
+03AF;GREEK SMALL LETTER IOTA WITH TONOS;Ll;0;L;03B9 0301;;;;N;GREEK SMALL LETTER IOTA TONOS;;038A;;038A
+03B0;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS;Ll;0;L;03CB 0301;;;;N;GREEK SMALL LETTER UPSILON DIAERESIS TONOS;;;;
+03B1;GREEK SMALL LETTER ALPHA;Ll;0;L;;;;;N;;;0391;;0391
+03B2;GREEK SMALL LETTER BETA;Ll;0;L;;;;;N;;;0392;;0392
+03B3;GREEK SMALL LETTER GAMMA;Ll;0;L;;;;;N;;;0393;;0393
+03B4;GREEK SMALL LETTER DELTA;Ll;0;L;;;;;N;;;0394;;0394
+03B5;GREEK SMALL LETTER EPSILON;Ll;0;L;;;;;N;;;0395;;0395
+03B6;GREEK SMALL LETTER ZETA;Ll;0;L;;;;;N;;;0396;;0396
+03B7;GREEK SMALL LETTER ETA;Ll;0;L;;;;;N;;;0397;;0397
+03B8;GREEK SMALL LETTER THETA;Ll;0;L;;;;;N;;;0398;;0398
+03B9;GREEK SMALL LETTER IOTA;Ll;0;L;;;;;N;;;0399;;0399
+03BA;GREEK SMALL LETTER KAPPA;Ll;0;L;;;;;N;;;039A;;039A
+03BB;GREEK SMALL LETTER LAMDA;Ll;0;L;;;;;N;GREEK SMALL LETTER LAMBDA;;039B;;039B
+03BC;GREEK SMALL LETTER MU;Ll;0;L;;;;;N;;;039C;;039C
+03BD;GREEK SMALL LETTER NU;Ll;0;L;;;;;N;;;039D;;039D
+03BE;GREEK SMALL LETTER XI;Ll;0;L;;;;;N;;;039E;;039E
+03BF;GREEK SMALL LETTER OMICRON;Ll;0;L;;;;;N;;;039F;;039F
+03C0;GREEK SMALL LETTER PI;Ll;0;L;;;;;N;;;03A0;;03A0
+03C1;GREEK SMALL LETTER RHO;Ll;0;L;;;;;N;;;03A1;;03A1
+03C2;GREEK SMALL LETTER FINAL SIGMA;Ll;0;L;;;;;N;;;03A3;;03A3
+03C3;GREEK SMALL LETTER SIGMA;Ll;0;L;;;;;N;;;03A3;;03A3
+03C4;GREEK SMALL LETTER TAU;Ll;0;L;;;;;N;;;03A4;;03A4
+03C5;GREEK SMALL LETTER UPSILON;Ll;0;L;;;;;N;;;03A5;;03A5
+03C6;GREEK SMALL LETTER PHI;Ll;0;L;;;;;N;;;03A6;;03A6
+03C7;GREEK SMALL LETTER CHI;Ll;0;L;;;;;N;;;03A7;;03A7
+03C8;GREEK SMALL LETTER PSI;Ll;0;L;;;;;N;;;03A8;;03A8
+03C9;GREEK SMALL LETTER OMEGA;Ll;0;L;;;;;N;;;03A9;;03A9
+03CA;GREEK SMALL LETTER IOTA WITH DIALYTIKA;Ll;0;L;03B9 0308;;;;N;GREEK SMALL LETTER IOTA DIAERESIS;;03AA;;03AA
+03CB;GREEK SMALL LETTER UPSILON WITH DIALYTIKA;Ll;0;L;03C5 0308;;;;N;GREEK SMALL LETTER UPSILON DIAERESIS;;03AB;;03AB
+03CC;GREEK SMALL LETTER OMICRON WITH TONOS;Ll;0;L;03BF 0301;;;;N;GREEK SMALL LETTER OMICRON TONOS;;038C;;038C
+03CD;GREEK SMALL LETTER UPSILON WITH TONOS;Ll;0;L;03C5 0301;;;;N;GREEK SMALL LETTER UPSILON TONOS;;038E;;038E
+03CE;GREEK SMALL LETTER OMEGA WITH TONOS;Ll;0;L;03C9 0301;;;;N;GREEK SMALL LETTER OMEGA TONOS;;038F;;038F
+03D0;GREEK BETA SYMBOL;Ll;0;L;<compat> 03B2;;;;N;GREEK SMALL LETTER CURLED BETA;;0392;;0392
+03D1;GREEK THETA SYMBOL;Ll;0;L;<compat> 03B8;;;;N;GREEK SMALL LETTER SCRIPT THETA;;0398;;0398
+03D2;GREEK UPSILON WITH HOOK SYMBOL;Lu;0;L;<compat> 03A5;;;;N;GREEK CAPITAL LETTER UPSILON HOOK;;;;
+03D3;GREEK UPSILON WITH ACUTE AND HOOK SYMBOL;Lu;0;L;03D2 0301;;;;N;GREEK CAPITAL LETTER UPSILON HOOK TONOS;;;;
+03D4;GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL;Lu;0;L;03D2 0308;;;;N;GREEK CAPITAL LETTER UPSILON HOOK DIAERESIS;;;;
+03D5;GREEK PHI SYMBOL;Ll;0;L;<compat> 03C6;;;;N;GREEK SMALL LETTER SCRIPT PHI;;03A6;;03A6
+03D6;GREEK PI SYMBOL;Ll;0;L;<compat> 03C0;;;;N;GREEK SMALL LETTER OMEGA PI;;03A0;;03A0
+03D7;GREEK KAI SYMBOL;Ll;0;L;;;;;N;;;;;
+03D8;GREEK LETTER ARCHAIC KOPPA;Lu;0;L;;;;;N;;*;;03D9;
+03D9;GREEK SMALL LETTER ARCHAIC KOPPA;Ll;0;L;;;;;N;;*;03D8;;03D8
+03DA;GREEK LETTER STIGMA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER STIGMA;;;03DB;
+03DB;GREEK SMALL LETTER STIGMA;Ll;0;L;;;;;N;;;03DA;;03DA
+03DC;GREEK LETTER DIGAMMA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER DIGAMMA;;;03DD;
+03DD;GREEK SMALL LETTER DIGAMMA;Ll;0;L;;;;;N;;;03DC;;03DC
+03DE;GREEK LETTER KOPPA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER KOPPA;;;03DF;
+03DF;GREEK SMALL LETTER KOPPA;Ll;0;L;;;;;N;;;03DE;;03DE
+03E0;GREEK LETTER SAMPI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER SAMPI;;;03E1;
+03E1;GREEK SMALL LETTER SAMPI;Ll;0;L;;;;;N;;;03E0;;03E0
+03E2;COPTIC CAPITAL LETTER SHEI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER SHEI;;;03E3;
+03E3;COPTIC SMALL LETTER SHEI;Ll;0;L;;;;;N;GREEK SMALL LETTER SHEI;;03E2;;03E2
+03E4;COPTIC CAPITAL LETTER FEI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER FEI;;;03E5;
+03E5;COPTIC SMALL LETTER FEI;Ll;0;L;;;;;N;GREEK SMALL LETTER FEI;;03E4;;03E4
+03E6;COPTIC CAPITAL LETTER KHEI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER KHEI;;;03E7;
+03E7;COPTIC SMALL LETTER KHEI;Ll;0;L;;;;;N;GREEK SMALL LETTER KHEI;;03E6;;03E6
+03E8;COPTIC CAPITAL LETTER HORI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER HORI;;;03E9;
+03E9;COPTIC SMALL LETTER HORI;Ll;0;L;;;;;N;GREEK SMALL LETTER HORI;;03E8;;03E8
+03EA;COPTIC CAPITAL LETTER GANGIA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER GANGIA;;;03EB;
+03EB;COPTIC SMALL LETTER GANGIA;Ll;0;L;;;;;N;GREEK SMALL LETTER GANGIA;;03EA;;03EA
+03EC;COPTIC CAPITAL LETTER SHIMA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER SHIMA;;;03ED;
+03ED;COPTIC SMALL LETTER SHIMA;Ll;0;L;;;;;N;GREEK SMALL LETTER SHIMA;;03EC;;03EC
+03EE;COPTIC CAPITAL LETTER DEI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER DEI;;;03EF;
+03EF;COPTIC SMALL LETTER DEI;Ll;0;L;;;;;N;GREEK SMALL LETTER DEI;;03EE;;03EE
+03F0;GREEK KAPPA SYMBOL;Ll;0;L;<compat> 03BA;;;;N;GREEK SMALL LETTER SCRIPT KAPPA;;039A;;039A
+03F1;GREEK RHO SYMBOL;Ll;0;L;<compat> 03C1;;;;N;GREEK SMALL LETTER TAILED RHO;;03A1;;03A1
+03F2;GREEK LUNATE SIGMA SYMBOL;Ll;0;L;<compat> 03C2;;;;N;GREEK SMALL LETTER LUNATE SIGMA;;03F9;;03F9
+03F3;GREEK LETTER YOT;Ll;0;L;;;;;N;;;;;
+03F4;GREEK CAPITAL THETA SYMBOL;Lu;0;L;<compat> 0398;;;;N;;;;03B8;
+03F5;GREEK LUNATE EPSILON SYMBOL;Ll;0;L;<compat> 03B5;;;;N;;;0395;;0395
+03F6;GREEK REVERSED LUNATE EPSILON SYMBOL;Sm;0;ON;;;;;N;;;;;
+03F7;GREEK CAPITAL LETTER SHO;Lu;0;L;;;;;N;;;;03F8;
+03F8;GREEK SMALL LETTER SHO;Ll;0;L;;;;;N;;;03F7;;03F7
+03F9;GREEK CAPITAL LUNATE SIGMA SYMBOL;Lu;0;L;<compat> 03A3;;;;N;;;;03F2;
+03FA;GREEK CAPITAL LETTER SAN;Lu;0;L;;;;;N;;;;03FB;
+03FB;GREEK SMALL LETTER SAN;Ll;0;L;;;;;N;;;03FA;;03FA
+03FC;GREEK RHO WITH STROKE SYMBOL;Ll;0;L;;;;;N;;;;;
+03FD;GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL;Lu;0;L;;;;;N;;;;037B;
+03FE;GREEK CAPITAL DOTTED LUNATE SIGMA SYMBOL;Lu;0;L;;;;;N;;;;037C;
+03FF;GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL;Lu;0;L;;;;;N;;;;037D;
+0400;CYRILLIC CAPITAL LETTER IE WITH GRAVE;Lu;0;L;0415 0300;;;;N;;;;0450;
+0401;CYRILLIC CAPITAL LETTER IO;Lu;0;L;0415 0308;;;;N;;;;0451;
+0402;CYRILLIC CAPITAL LETTER DJE;Lu;0;L;;;;;N;;Serbocroatian;;0452;
+0403;CYRILLIC CAPITAL LETTER GJE;Lu;0;L;0413 0301;;;;N;;;;0453;
+0404;CYRILLIC CAPITAL LETTER UKRAINIAN IE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER E;;;0454;
+0405;CYRILLIC CAPITAL LETTER DZE;Lu;0;L;;;;;N;;;;0455;
+0406;CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER I;;;0456;
+0407;CYRILLIC CAPITAL LETTER YI;Lu;0;L;0406 0308;;;;N;;Ukrainian;;0457;
+0408;CYRILLIC CAPITAL LETTER JE;Lu;0;L;;;;;N;;;;0458;
+0409;CYRILLIC CAPITAL LETTER LJE;Lu;0;L;;;;;N;;;;0459;
+040A;CYRILLIC CAPITAL LETTER NJE;Lu;0;L;;;;;N;;;;045A;
+040B;CYRILLIC CAPITAL LETTER TSHE;Lu;0;L;;;;;N;;Serbocroatian;;045B;
+040C;CYRILLIC CAPITAL LETTER KJE;Lu;0;L;041A 0301;;;;N;;;;045C;
+040D;CYRILLIC CAPITAL LETTER I WITH GRAVE;Lu;0;L;0418 0300;;;;N;;;;045D;
+040E;CYRILLIC CAPITAL LETTER SHORT U;Lu;0;L;0423 0306;;;;N;;Byelorussian;;045E;
+040F;CYRILLIC CAPITAL LETTER DZHE;Lu;0;L;;;;;N;;;;045F;
+0410;CYRILLIC CAPITAL LETTER A;Lu;0;L;;;;;N;;;;0430;
+0411;CYRILLIC CAPITAL LETTER BE;Lu;0;L;;;;;N;;;;0431;
+0412;CYRILLIC CAPITAL LETTER VE;Lu;0;L;;;;;N;;;;0432;
+0413;CYRILLIC CAPITAL LETTER GHE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER GE;;;0433;
+0414;CYRILLIC CAPITAL LETTER DE;Lu;0;L;;;;;N;;;;0434;
+0415;CYRILLIC CAPITAL LETTER IE;Lu;0;L;;;;;N;;;;0435;
+0416;CYRILLIC CAPITAL LETTER ZHE;Lu;0;L;;;;;N;;;;0436;
+0417;CYRILLIC CAPITAL LETTER ZE;Lu;0;L;;;;;N;;;;0437;
+0418;CYRILLIC CAPITAL LETTER I;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER II;;;0438;
+0419;CYRILLIC CAPITAL LETTER SHORT I;Lu;0;L;0418 0306;;;;N;CYRILLIC CAPITAL LETTER SHORT II;;;0439;
+041A;CYRILLIC CAPITAL LETTER KA;Lu;0;L;;;;;N;;;;043A;
+041B;CYRILLIC CAPITAL LETTER EL;Lu;0;L;;;;;N;;;;043B;
+041C;CYRILLIC CAPITAL LETTER EM;Lu;0;L;;;;;N;;;;043C;
+041D;CYRILLIC CAPITAL LETTER EN;Lu;0;L;;;;;N;;;;043D;
+041E;CYRILLIC CAPITAL LETTER O;Lu;0;L;;;;;N;;;;043E;
+041F;CYRILLIC CAPITAL LETTER PE;Lu;0;L;;;;;N;;;;043F;
+0420;CYRILLIC CAPITAL LETTER ER;Lu;0;L;;;;;N;;;;0440;
+0421;CYRILLIC CAPITAL LETTER ES;Lu;0;L;;;;;N;;;;0441;
+0422;CYRILLIC CAPITAL LETTER TE;Lu;0;L;;;;;N;;;;0442;
+0423;CYRILLIC CAPITAL LETTER U;Lu;0;L;;;;;N;;;;0443;
+0424;CYRILLIC CAPITAL LETTER EF;Lu;0;L;;;;;N;;;;0444;
+0425;CYRILLIC CAPITAL LETTER HA;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KHA;;;0445;
+0426;CYRILLIC CAPITAL LETTER TSE;Lu;0;L;;;;;N;;;;0446;
+0427;CYRILLIC CAPITAL LETTER CHE;Lu;0;L;;;;;N;;;;0447;
+0428;CYRILLIC CAPITAL LETTER SHA;Lu;0;L;;;;;N;;;;0448;
+0429;CYRILLIC CAPITAL LETTER SHCHA;Lu;0;L;;;;;N;;;;0449;
+042A;CYRILLIC CAPITAL LETTER HARD SIGN;Lu;0;L;;;;;N;;;;044A;
+042B;CYRILLIC CAPITAL LETTER YERU;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER YERI;;;044B;
+042C;CYRILLIC CAPITAL LETTER SOFT SIGN;Lu;0;L;;;;;N;;;;044C;
+042D;CYRILLIC CAPITAL LETTER E;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER REVERSED E;;;044D;
+042E;CYRILLIC CAPITAL LETTER YU;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER IU;;;044E;
+042F;CYRILLIC CAPITAL LETTER YA;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER IA;;;044F;
+0430;CYRILLIC SMALL LETTER A;Ll;0;L;;;;;N;;;0410;;0410
+0431;CYRILLIC SMALL LETTER BE;Ll;0;L;;;;;N;;;0411;;0411
+0432;CYRILLIC SMALL LETTER VE;Ll;0;L;;;;;N;;;0412;;0412
+0433;CYRILLIC SMALL LETTER GHE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER GE;;0413;;0413
+0434;CYRILLIC SMALL LETTER DE;Ll;0;L;;;;;N;;;0414;;0414
+0435;CYRILLIC SMALL LETTER IE;Ll;0;L;;;;;N;;;0415;;0415
+0436;CYRILLIC SMALL LETTER ZHE;Ll;0;L;;;;;N;;;0416;;0416
+0437;CYRILLIC SMALL LETTER ZE;Ll;0;L;;;;;N;;;0417;;0417
+0438;CYRILLIC SMALL LETTER I;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER II;;0418;;0418
+0439;CYRILLIC SMALL LETTER SHORT I;Ll;0;L;0438 0306;;;;N;CYRILLIC SMALL LETTER SHORT II;;0419;;0419
+043A;CYRILLIC SMALL LETTER KA;Ll;0;L;;;;;N;;;041A;;041A
+043B;CYRILLIC SMALL LETTER EL;Ll;0;L;;;;;N;;;041B;;041B
+043C;CYRILLIC SMALL LETTER EM;Ll;0;L;;;;;N;;;041C;;041C
+043D;CYRILLIC SMALL LETTER EN;Ll;0;L;;;;;N;;;041D;;041D
+043E;CYRILLIC SMALL LETTER O;Ll;0;L;;;;;N;;;041E;;041E
+043F;CYRILLIC SMALL LETTER PE;Ll;0;L;;;;;N;;;041F;;041F
+0440;CYRILLIC SMALL LETTER ER;Ll;0;L;;;;;N;;;0420;;0420
+0441;CYRILLIC SMALL LETTER ES;Ll;0;L;;;;;N;;;0421;;0421
+0442;CYRILLIC SMALL LETTER TE;Ll;0;L;;;;;N;;;0422;;0422
+0443;CYRILLIC SMALL LETTER U;Ll;0;L;;;;;N;;;0423;;0423
+0444;CYRILLIC SMALL LETTER EF;Ll;0;L;;;;;N;;;0424;;0424
+0445;CYRILLIC SMALL LETTER HA;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KHA;;0425;;0425
+0446;CYRILLIC SMALL LETTER TSE;Ll;0;L;;;;;N;;;0426;;0426
+0447;CYRILLIC SMALL LETTER CHE;Ll;0;L;;;;;N;;;0427;;0427
+0448;CYRILLIC SMALL LETTER SHA;Ll;0;L;;;;;N;;;0428;;0428
+0449;CYRILLIC SMALL LETTER SHCHA;Ll;0;L;;;;;N;;;0429;;0429
+044A;CYRILLIC SMALL LETTER HARD SIGN;Ll;0;L;;;;;N;;;042A;;042A
+044B;CYRILLIC SMALL LETTER YERU;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER YERI;;042B;;042B
+044C;CYRILLIC SMALL LETTER SOFT SIGN;Ll;0;L;;;;;N;;;042C;;042C
+044D;CYRILLIC SMALL LETTER E;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER REVERSED E;;042D;;042D
+044E;CYRILLIC SMALL LETTER YU;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER IU;;042E;;042E
+044F;CYRILLIC SMALL LETTER YA;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER IA;;042F;;042F
+0450;CYRILLIC SMALL LETTER IE WITH GRAVE;Ll;0;L;0435 0300;;;;N;;;0400;;0400
+0451;CYRILLIC SMALL LETTER IO;Ll;0;L;0435 0308;;;;N;;;0401;;0401
+0452;CYRILLIC SMALL LETTER DJE;Ll;0;L;;;;;N;;Serbocroatian;0402;;0402
+0453;CYRILLIC SMALL LETTER GJE;Ll;0;L;0433 0301;;;;N;;;0403;;0403
+0454;CYRILLIC SMALL LETTER UKRAINIAN IE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER E;;0404;;0404
+0455;CYRILLIC SMALL LETTER DZE;Ll;0;L;;;;;N;;;0405;;0405
+0456;CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER I;;0406;;0406
+0457;CYRILLIC SMALL LETTER YI;Ll;0;L;0456 0308;;;;N;;Ukrainian;0407;;0407
+0458;CYRILLIC SMALL LETTER JE;Ll;0;L;;;;;N;;;0408;;0408
+0459;CYRILLIC SMALL LETTER LJE;Ll;0;L;;;;;N;;;0409;;0409
+045A;CYRILLIC SMALL LETTER NJE;Ll;0;L;;;;;N;;;040A;;040A
+045B;CYRILLIC SMALL LETTER TSHE;Ll;0;L;;;;;N;;Serbocroatian;040B;;040B
+045C;CYRILLIC SMALL LETTER KJE;Ll;0;L;043A 0301;;;;N;;;040C;;040C
+045D;CYRILLIC SMALL LETTER I WITH GRAVE;Ll;0;L;0438 0300;;;;N;;;040D;;040D
+045E;CYRILLIC SMALL LETTER SHORT U;Ll;0;L;0443 0306;;;;N;;Byelorussian;040E;;040E
+045F;CYRILLIC SMALL LETTER DZHE;Ll;0;L;;;;;N;;;040F;;040F
+0460;CYRILLIC CAPITAL LETTER OMEGA;Lu;0;L;;;;;N;;;;0461;
+0461;CYRILLIC SMALL LETTER OMEGA;Ll;0;L;;;;;N;;;0460;;0460
+0462;CYRILLIC CAPITAL LETTER YAT;Lu;0;L;;;;;N;;;;0463;
+0463;CYRILLIC SMALL LETTER YAT;Ll;0;L;;;;;N;;;0462;;0462
+0464;CYRILLIC CAPITAL LETTER IOTIFIED E;Lu;0;L;;;;;N;;;;0465;
+0465;CYRILLIC SMALL LETTER IOTIFIED E;Ll;0;L;;;;;N;;;0464;;0464
+0466;CYRILLIC CAPITAL LETTER LITTLE YUS;Lu;0;L;;;;;N;;;;0467;
+0467;CYRILLIC SMALL LETTER LITTLE YUS;Ll;0;L;;;;;N;;;0466;;0466
+0468;CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS;Lu;0;L;;;;;N;;;;0469;
+0469;CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS;Ll;0;L;;;;;N;;;0468;;0468
+046A;CYRILLIC CAPITAL LETTER BIG YUS;Lu;0;L;;;;;N;;;;046B;
+046B;CYRILLIC SMALL LETTER BIG YUS;Ll;0;L;;;;;N;;;046A;;046A
+046C;CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS;Lu;0;L;;;;;N;;;;046D;
+046D;CYRILLIC SMALL LETTER IOTIFIED BIG YUS;Ll;0;L;;;;;N;;;046C;;046C
+046E;CYRILLIC CAPITAL LETTER KSI;Lu;0;L;;;;;N;;;;046F;
+046F;CYRILLIC SMALL LETTER KSI;Ll;0;L;;;;;N;;;046E;;046E
+0470;CYRILLIC CAPITAL LETTER PSI;Lu;0;L;;;;;N;;;;0471;
+0471;CYRILLIC SMALL LETTER PSI;Ll;0;L;;;;;N;;;0470;;0470
+0472;CYRILLIC CAPITAL LETTER FITA;Lu;0;L;;;;;N;;;;0473;
+0473;CYRILLIC SMALL LETTER FITA;Ll;0;L;;;;;N;;;0472;;0472
+0474;CYRILLIC CAPITAL LETTER IZHITSA;Lu;0;L;;;;;N;;;;0475;
+0475;CYRILLIC SMALL LETTER IZHITSA;Ll;0;L;;;;;N;;;0474;;0474
+0476;CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT;Lu;0;L;0474 030F;;;;N;CYRILLIC CAPITAL LETTER IZHITSA DOUBLE GRAVE;;;0477;
+0477;CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT;Ll;0;L;0475 030F;;;;N;CYRILLIC SMALL LETTER IZHITSA DOUBLE GRAVE;;0476;;0476
+0478;CYRILLIC CAPITAL LETTER UK;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER UK DIGRAPH;;;0479;
+0479;CYRILLIC SMALL LETTER UK;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER UK DIGRAPH;;0478;;0478
+047A;CYRILLIC CAPITAL LETTER ROUND OMEGA;Lu;0;L;;;;;N;;;;047B;
+047B;CYRILLIC SMALL LETTER ROUND OMEGA;Ll;0;L;;;;;N;;;047A;;047A
+047C;CYRILLIC CAPITAL LETTER OMEGA WITH TITLO;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER OMEGA TITLO;;;047D;
+047D;CYRILLIC SMALL LETTER OMEGA WITH TITLO;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER OMEGA TITLO;;047C;;047C
+047E;CYRILLIC CAPITAL LETTER OT;Lu;0;L;;;;;N;;;;047F;
+047F;CYRILLIC SMALL LETTER OT;Ll;0;L;;;;;N;;;047E;;047E
+0480;CYRILLIC CAPITAL LETTER KOPPA;Lu;0;L;;;;;N;;;;0481;
+0481;CYRILLIC SMALL LETTER KOPPA;Ll;0;L;;;;;N;;;0480;;0480
+0482;CYRILLIC THOUSANDS SIGN;So;0;L;;;;;N;;;;;
+0483;COMBINING CYRILLIC TITLO;Mn;230;NSM;;;;;N;CYRILLIC NON-SPACING TITLO;;;;
+0484;COMBINING CYRILLIC PALATALIZATION;Mn;230;NSM;;;;;N;CYRILLIC NON-SPACING PALATALIZATION;;;;
+0485;COMBINING CYRILLIC DASIA PNEUMATA;Mn;230;NSM;;;;;N;CYRILLIC NON-SPACING DASIA PNEUMATA;;;;
+0486;COMBINING CYRILLIC PSILI PNEUMATA;Mn;230;NSM;;;;;N;CYRILLIC NON-SPACING PSILI PNEUMATA;;;;
+0488;COMBINING CYRILLIC HUNDRED THOUSANDS SIGN;Me;0;NSM;;;;;N;;;;;
+0489;COMBINING CYRILLIC MILLIONS SIGN;Me;0;NSM;;;;;N;;;;;
+048A;CYRILLIC CAPITAL LETTER SHORT I WITH TAIL;Lu;0;L;;;;;N;;;;048B;
+048B;CYRILLIC SMALL LETTER SHORT I WITH TAIL;Ll;0;L;;;;;N;;;048A;;048A
+048C;CYRILLIC CAPITAL LETTER SEMISOFT SIGN;Lu;0;L;;;;;N;;;;048D;
+048D;CYRILLIC SMALL LETTER SEMISOFT SIGN;Ll;0;L;;;;;N;;;048C;;048C
+048E;CYRILLIC CAPITAL LETTER ER WITH TICK;Lu;0;L;;;;;N;;;;048F;
+048F;CYRILLIC SMALL LETTER ER WITH TICK;Ll;0;L;;;;;N;;;048E;;048E
+0490;CYRILLIC CAPITAL LETTER GHE WITH UPTURN;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER GE WITH UPTURN;;;0491;
+0491;CYRILLIC SMALL LETTER GHE WITH UPTURN;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER GE WITH UPTURN;;0490;;0490
+0492;CYRILLIC CAPITAL LETTER GHE WITH STROKE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER GE BAR;;;0493;
+0493;CYRILLIC SMALL LETTER GHE WITH STROKE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER GE BAR;;0492;;0492
+0494;CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER GE HOOK;;;0495;
+0495;CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER GE HOOK;;0494;;0494
+0496;CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER ZHE WITH RIGHT DESCENDER;;;0497;
+0497;CYRILLIC SMALL LETTER ZHE WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER ZHE WITH RIGHT DESCENDER;;0496;;0496
+0498;CYRILLIC CAPITAL LETTER ZE WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER ZE CEDILLA;;;0499;
+0499;CYRILLIC SMALL LETTER ZE WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER ZE CEDILLA;;0498;;0498
+049A;CYRILLIC CAPITAL LETTER KA WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KA WITH RIGHT DESCENDER;;;049B;
+049B;CYRILLIC SMALL LETTER KA WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KA WITH RIGHT DESCENDER;;049A;;049A
+049C;CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KA VERTICAL BAR;;;049D;
+049D;CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KA VERTICAL BAR;;049C;;049C
+049E;CYRILLIC CAPITAL LETTER KA WITH STROKE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KA BAR;;;049F;
+049F;CYRILLIC SMALL LETTER KA WITH STROKE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KA BAR;;049E;;049E
+04A0;CYRILLIC CAPITAL LETTER BASHKIR KA;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER REVERSED GE KA;;;04A1;
+04A1;CYRILLIC SMALL LETTER BASHKIR KA;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER REVERSED GE KA;;04A0;;04A0
+04A2;CYRILLIC CAPITAL LETTER EN WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER EN WITH RIGHT DESCENDER;;;04A3;
+04A3;CYRILLIC SMALL LETTER EN WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER EN WITH RIGHT DESCENDER;;04A2;;04A2
+04A4;CYRILLIC CAPITAL LIGATURE EN GHE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER EN GE;;;04A5;
+04A5;CYRILLIC SMALL LIGATURE EN GHE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER EN GE;;04A4;;04A4
+04A6;CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER PE HOOK;Abkhasian;;04A7;
+04A7;CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER PE HOOK;Abkhasian;04A6;;04A6
+04A8;CYRILLIC CAPITAL LETTER ABKHASIAN HA;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER O HOOK;;;04A9;
+04A9;CYRILLIC SMALL LETTER ABKHASIAN HA;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER O HOOK;;04A8;;04A8
+04AA;CYRILLIC CAPITAL LETTER ES WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER ES CEDILLA;;;04AB;
+04AB;CYRILLIC SMALL LETTER ES WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER ES CEDILLA;;04AA;;04AA
+04AC;CYRILLIC CAPITAL LETTER TE WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER TE WITH RIGHT DESCENDER;;;04AD;
+04AD;CYRILLIC SMALL LETTER TE WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER TE WITH RIGHT DESCENDER;;04AC;;04AC
+04AE;CYRILLIC CAPITAL LETTER STRAIGHT U;Lu;0;L;;;;;N;;;;04AF;
+04AF;CYRILLIC SMALL LETTER STRAIGHT U;Ll;0;L;;;;;N;;;04AE;;04AE
+04B0;CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER STRAIGHT U BAR;;;04B1;
+04B1;CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER STRAIGHT U BAR;;04B0;;04B0
+04B2;CYRILLIC CAPITAL LETTER HA WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KHA WITH RIGHT DESCENDER;;;04B3;
+04B3;CYRILLIC SMALL LETTER HA WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KHA WITH RIGHT DESCENDER;;04B2;;04B2
+04B4;CYRILLIC CAPITAL LIGATURE TE TSE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER TE TSE;Abkhasian;;04B5;
+04B5;CYRILLIC SMALL LIGATURE TE TSE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER TE TSE;Abkhasian;04B4;;04B4
+04B6;CYRILLIC CAPITAL LETTER CHE WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER CHE WITH RIGHT DESCENDER;;;04B7;
+04B7;CYRILLIC SMALL LETTER CHE WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER CHE WITH RIGHT DESCENDER;;04B6;;04B6
+04B8;CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER CHE VERTICAL BAR;;;04B9;
+04B9;CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER CHE VERTICAL BAR;;04B8;;04B8
+04BA;CYRILLIC CAPITAL LETTER SHHA;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER H;;;04BB;
+04BB;CYRILLIC SMALL LETTER SHHA;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER H;;04BA;;04BA
+04BC;CYRILLIC CAPITAL LETTER ABKHASIAN CHE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER IE HOOK;;;04BD;
+04BD;CYRILLIC SMALL LETTER ABKHASIAN CHE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER IE HOOK;;04BC;;04BC
+04BE;CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER IE HOOK OGONEK;;;04BF;
+04BF;CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER IE HOOK OGONEK;;04BE;;04BE
+04C0;CYRILLIC LETTER PALOCHKA;Lu;0;L;;;;;N;CYRILLIC LETTER I;;;04CF;
+04C1;CYRILLIC CAPITAL LETTER ZHE WITH BREVE;Lu;0;L;0416 0306;;;;N;CYRILLIC CAPITAL LETTER SHORT ZHE;;;04C2;
+04C2;CYRILLIC SMALL LETTER ZHE WITH BREVE;Ll;0;L;0436 0306;;;;N;CYRILLIC SMALL LETTER SHORT ZHE;;04C1;;04C1
+04C3;CYRILLIC CAPITAL LETTER KA WITH HOOK;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KA HOOK;;;04C4;
+04C4;CYRILLIC SMALL LETTER KA WITH HOOK;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KA HOOK;;04C3;;04C3
+04C5;CYRILLIC CAPITAL LETTER EL WITH TAIL;Lu;0;L;;;;;N;;;;04C6;
+04C6;CYRILLIC SMALL LETTER EL WITH TAIL;Ll;0;L;;;;;N;;;04C5;;04C5
+04C7;CYRILLIC CAPITAL LETTER EN WITH HOOK;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER EN HOOK;;;04C8;
+04C8;CYRILLIC SMALL LETTER EN WITH HOOK;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER EN HOOK;;04C7;;04C7
+04C9;CYRILLIC CAPITAL LETTER EN WITH TAIL;Lu;0;L;;;;;N;;;;04CA;
+04CA;CYRILLIC SMALL LETTER EN WITH TAIL;Ll;0;L;;;;;N;;;04C9;;04C9
+04CB;CYRILLIC CAPITAL LETTER KHAKASSIAN CHE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER CHE WITH LEFT DESCENDER;;;04CC;
+04CC;CYRILLIC SMALL LETTER KHAKASSIAN CHE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER CHE WITH LEFT DESCENDER;;04CB;;04CB
+04CD;CYRILLIC CAPITAL LETTER EM WITH TAIL;Lu;0;L;;;;;N;;;;04CE;
+04CE;CYRILLIC SMALL LETTER EM WITH TAIL;Ll;0;L;;;;;N;;;04CD;;04CD
+04CF;CYRILLIC SMALL LETTER PALOCHKA;Ll;0;L;;;;;N;;;04C0;;04C0
+04D0;CYRILLIC CAPITAL LETTER A WITH BREVE;Lu;0;L;0410 0306;;;;N;;;;04D1;
+04D1;CYRILLIC SMALL LETTER A WITH BREVE;Ll;0;L;0430 0306;;;;N;;;04D0;;04D0
+04D2;CYRILLIC CAPITAL LETTER A WITH DIAERESIS;Lu;0;L;0410 0308;;;;N;;;;04D3;
+04D3;CYRILLIC SMALL LETTER A WITH DIAERESIS;Ll;0;L;0430 0308;;;;N;;;04D2;;04D2
+04D4;CYRILLIC CAPITAL LIGATURE A IE;Lu;0;L;;;;;N;;;;04D5;
+04D5;CYRILLIC SMALL LIGATURE A IE;Ll;0;L;;;;;N;;;04D4;;04D4
+04D6;CYRILLIC CAPITAL LETTER IE WITH BREVE;Lu;0;L;0415 0306;;;;N;;;;04D7;
+04D7;CYRILLIC SMALL LETTER IE WITH BREVE;Ll;0;L;0435 0306;;;;N;;;04D6;;04D6
+04D8;CYRILLIC CAPITAL LETTER SCHWA;Lu;0;L;;;;;N;;;;04D9;
+04D9;CYRILLIC SMALL LETTER SCHWA;Ll;0;L;;;;;N;;;04D8;;04D8
+04DA;CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS;Lu;0;L;04D8 0308;;;;N;;;;04DB;
+04DB;CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS;Ll;0;L;04D9 0308;;;;N;;;04DA;;04DA
+04DC;CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS;Lu;0;L;0416 0308;;;;N;;;;04DD;
+04DD;CYRILLIC SMALL LETTER ZHE WITH DIAERESIS;Ll;0;L;0436 0308;;;;N;;;04DC;;04DC
+04DE;CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS;Lu;0;L;0417 0308;;;;N;;;;04DF;
+04DF;CYRILLIC SMALL LETTER ZE WITH DIAERESIS;Ll;0;L;0437 0308;;;;N;;;04DE;;04DE
+04E0;CYRILLIC CAPITAL LETTER ABKHASIAN DZE;Lu;0;L;;;;;N;;;;04E1;
+04E1;CYRILLIC SMALL LETTER ABKHASIAN DZE;Ll;0;L;;;;;N;;;04E0;;04E0
+04E2;CYRILLIC CAPITAL LETTER I WITH MACRON;Lu;0;L;0418 0304;;;;N;;;;04E3;
+04E3;CYRILLIC SMALL LETTER I WITH MACRON;Ll;0;L;0438 0304;;;;N;;;04E2;;04E2
+04E4;CYRILLIC CAPITAL LETTER I WITH DIAERESIS;Lu;0;L;0418 0308;;;;N;;;;04E5;
+04E5;CYRILLIC SMALL LETTER I WITH DIAERESIS;Ll;0;L;0438 0308;;;;N;;;04E4;;04E4
+04E6;CYRILLIC CAPITAL LETTER O WITH DIAERESIS;Lu;0;L;041E 0308;;;;N;;;;04E7;
+04E7;CYRILLIC SMALL LETTER O WITH DIAERESIS;Ll;0;L;043E 0308;;;;N;;;04E6;;04E6
+04E8;CYRILLIC CAPITAL LETTER BARRED O;Lu;0;L;;;;;N;;;;04E9;
+04E9;CYRILLIC SMALL LETTER BARRED O;Ll;0;L;;;;;N;;;04E8;;04E8
+04EA;CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS;Lu;0;L;04E8 0308;;;;N;;;;04EB;
+04EB;CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS;Ll;0;L;04E9 0308;;;;N;;;04EA;;04EA
+04EC;CYRILLIC CAPITAL LETTER E WITH DIAERESIS;Lu;0;L;042D 0308;;;;N;;;;04ED;
+04ED;CYRILLIC SMALL LETTER E WITH DIAERESIS;Ll;0;L;044D 0308;;;;N;;;04EC;;04EC
+04EE;CYRILLIC CAPITAL LETTER U WITH MACRON;Lu;0;L;0423 0304;;;;N;;;;04EF;
+04EF;CYRILLIC SMALL LETTER U WITH MACRON;Ll;0;L;0443 0304;;;;N;;;04EE;;04EE
+04F0;CYRILLIC CAPITAL LETTER U WITH DIAERESIS;Lu;0;L;0423 0308;;;;N;;;;04F1;
+04F1;CYRILLIC SMALL LETTER U WITH DIAERESIS;Ll;0;L;0443 0308;;;;N;;;04F0;;04F0
+04F2;CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE;Lu;0;L;0423 030B;;;;N;;;;04F3;
+04F3;CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE;Ll;0;L;0443 030B;;;;N;;;04F2;;04F2
+04F4;CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS;Lu;0;L;0427 0308;;;;N;;;;04F5;
+04F5;CYRILLIC SMALL LETTER CHE WITH DIAERESIS;Ll;0;L;0447 0308;;;;N;;;04F4;;04F4
+04F6;CYRILLIC CAPITAL LETTER GHE WITH DESCENDER;Lu;0;L;;;;;N;;;;04F7;
+04F7;CYRILLIC SMALL LETTER GHE WITH DESCENDER;Ll;0;L;;;;;N;;;04F6;;04F6
+04F8;CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS;Lu;0;L;042B 0308;;;;N;;;;04F9;
+04F9;CYRILLIC SMALL LETTER YERU WITH DIAERESIS;Ll;0;L;044B 0308;;;;N;;;04F8;;04F8
+04FA;CYRILLIC CAPITAL LETTER GHE WITH STROKE AND HOOK;Lu;0;L;;;;;N;;;;04FB;
+04FB;CYRILLIC SMALL LETTER GHE WITH STROKE AND HOOK;Ll;0;L;;;;;N;;;04FA;;04FA
+04FC;CYRILLIC CAPITAL LETTER HA WITH HOOK;Lu;0;L;;;;;N;;;;04FD;
+04FD;CYRILLIC SMALL LETTER HA WITH HOOK;Ll;0;L;;;;;N;;;04FC;;04FC
+04FE;CYRILLIC CAPITAL LETTER HA WITH STROKE;Lu;0;L;;;;;N;;;;04FF;
+04FF;CYRILLIC SMALL LETTER HA WITH STROKE;Ll;0;L;;;;;N;;;04FE;;04FE
+0500;CYRILLIC CAPITAL LETTER KOMI DE;Lu;0;L;;;;;N;;;;0501;
+0501;CYRILLIC SMALL LETTER KOMI DE;Ll;0;L;;;;;N;;;0500;;0500
+0502;CYRILLIC CAPITAL LETTER KOMI DJE;Lu;0;L;;;;;N;;;;0503;
+0503;CYRILLIC SMALL LETTER KOMI DJE;Ll;0;L;;;;;N;;;0502;;0502
+0504;CYRILLIC CAPITAL LETTER KOMI ZJE;Lu;0;L;;;;;N;;;;0505;
+0505;CYRILLIC SMALL LETTER KOMI ZJE;Ll;0;L;;;;;N;;;0504;;0504
+0506;CYRILLIC CAPITAL LETTER KOMI DZJE;Lu;0;L;;;;;N;;;;0507;
+0507;CYRILLIC SMALL LETTER KOMI DZJE;Ll;0;L;;;;;N;;;0506;;0506
+0508;CYRILLIC CAPITAL LETTER KOMI LJE;Lu;0;L;;;;;N;;;;0509;
+0509;CYRILLIC SMALL LETTER KOMI LJE;Ll;0;L;;;;;N;;;0508;;0508
+050A;CYRILLIC CAPITAL LETTER KOMI NJE;Lu;0;L;;;;;N;;;;050B;
+050B;CYRILLIC SMALL LETTER KOMI NJE;Ll;0;L;;;;;N;;;050A;;050A
+050C;CYRILLIC CAPITAL LETTER KOMI SJE;Lu;0;L;;;;;N;;;;050D;
+050D;CYRILLIC SMALL LETTER KOMI SJE;Ll;0;L;;;;;N;;;050C;;050C
+050E;CYRILLIC CAPITAL LETTER KOMI TJE;Lu;0;L;;;;;N;;;;050F;
+050F;CYRILLIC SMALL LETTER KOMI TJE;Ll;0;L;;;;;N;;;050E;;050E
+0510;CYRILLIC CAPITAL LETTER REVERSED ZE;Lu;0;L;;;;;N;;;;0511;
+0511;CYRILLIC SMALL LETTER REVERSED ZE;Ll;0;L;;;;;N;;;0510;;0510
+0512;CYRILLIC CAPITAL LETTER EL WITH HOOK;Lu;0;L;;;;;N;;;;0513;
+0513;CYRILLIC SMALL LETTER EL WITH HOOK;Ll;0;L;;;;;N;;;0512;;0512
+0531;ARMENIAN CAPITAL LETTER AYB;Lu;0;L;;;;;N;;;;0561;
+0532;ARMENIAN CAPITAL LETTER BEN;Lu;0;L;;;;;N;;;;0562;
+0533;ARMENIAN CAPITAL LETTER GIM;Lu;0;L;;;;;N;;;;0563;
+0534;ARMENIAN CAPITAL LETTER DA;Lu;0;L;;;;;N;;;;0564;
+0535;ARMENIAN CAPITAL LETTER ECH;Lu;0;L;;;;;N;;;;0565;
+0536;ARMENIAN CAPITAL LETTER ZA;Lu;0;L;;;;;N;;;;0566;
+0537;ARMENIAN CAPITAL LETTER EH;Lu;0;L;;;;;N;;;;0567;
+0538;ARMENIAN CAPITAL LETTER ET;Lu;0;L;;;;;N;;;;0568;
+0539;ARMENIAN CAPITAL LETTER TO;Lu;0;L;;;;;N;;;;0569;
+053A;ARMENIAN CAPITAL LETTER ZHE;Lu;0;L;;;;;N;;;;056A;
+053B;ARMENIAN CAPITAL LETTER INI;Lu;0;L;;;;;N;;;;056B;
+053C;ARMENIAN CAPITAL LETTER LIWN;Lu;0;L;;;;;N;;;;056C;
+053D;ARMENIAN CAPITAL LETTER XEH;Lu;0;L;;;;;N;;;;056D;
+053E;ARMENIAN CAPITAL LETTER CA;Lu;0;L;;;;;N;;;;056E;
+053F;ARMENIAN CAPITAL LETTER KEN;Lu;0;L;;;;;N;;;;056F;
+0540;ARMENIAN CAPITAL LETTER HO;Lu;0;L;;;;;N;;;;0570;
+0541;ARMENIAN CAPITAL LETTER JA;Lu;0;L;;;;;N;;;;0571;
+0542;ARMENIAN CAPITAL LETTER GHAD;Lu;0;L;;;;;N;ARMENIAN CAPITAL LETTER LAD;;;0572;
+0543;ARMENIAN CAPITAL LETTER CHEH;Lu;0;L;;;;;N;;;;0573;
+0544;ARMENIAN CAPITAL LETTER MEN;Lu;0;L;;;;;N;;;;0574;
+0545;ARMENIAN CAPITAL LETTER YI;Lu;0;L;;;;;N;;;;0575;
+0546;ARMENIAN CAPITAL LETTER NOW;Lu;0;L;;;;;N;;;;0576;
+0547;ARMENIAN CAPITAL LETTER SHA;Lu;0;L;;;;;N;;;;0577;
+0548;ARMENIAN CAPITAL LETTER VO;Lu;0;L;;;;;N;;;;0578;
+0549;ARMENIAN CAPITAL LETTER CHA;Lu;0;L;;;;;N;;;;0579;
+054A;ARMENIAN CAPITAL LETTER PEH;Lu;0;L;;;;;N;;;;057A;
+054B;ARMENIAN CAPITAL LETTER JHEH;Lu;0;L;;;;;N;;;;057B;
+054C;ARMENIAN CAPITAL LETTER RA;Lu;0;L;;;;;N;;;;057C;
+054D;ARMENIAN CAPITAL LETTER SEH;Lu;0;L;;;;;N;;;;057D;
+054E;ARMENIAN CAPITAL LETTER VEW;Lu;0;L;;;;;N;;;;057E;
+054F;ARMENIAN CAPITAL LETTER TIWN;Lu;0;L;;;;;N;;;;057F;
+0550;ARMENIAN CAPITAL LETTER REH;Lu;0;L;;;;;N;;;;0580;
+0551;ARMENIAN CAPITAL LETTER CO;Lu;0;L;;;;;N;;;;0581;
+0552;ARMENIAN CAPITAL LETTER YIWN;Lu;0;L;;;;;N;;;;0582;
+0553;ARMENIAN CAPITAL LETTER PIWR;Lu;0;L;;;;;N;;;;0583;
+0554;ARMENIAN CAPITAL LETTER KEH;Lu;0;L;;;;;N;;;;0584;
+0555;ARMENIAN CAPITAL LETTER OH;Lu;0;L;;;;;N;;;;0585;
+0556;ARMENIAN CAPITAL LETTER FEH;Lu;0;L;;;;;N;;;;0586;
+0559;ARMENIAN MODIFIER LETTER LEFT HALF RING;Lm;0;L;;;;;N;;;;;
+055A;ARMENIAN APOSTROPHE;Po;0;L;;;;;N;ARMENIAN MODIFIER LETTER RIGHT HALF RING;;;;
+055B;ARMENIAN EMPHASIS MARK;Po;0;L;;;;;N;;;;;
+055C;ARMENIAN EXCLAMATION MARK;Po;0;L;;;;;N;;;;;
+055D;ARMENIAN COMMA;Po;0;L;;;;;N;;;;;
+055E;ARMENIAN QUESTION MARK;Po;0;L;;;;;N;;;;;
+055F;ARMENIAN ABBREVIATION MARK;Po;0;L;;;;;N;;;;;
+0561;ARMENIAN SMALL LETTER AYB;Ll;0;L;;;;;N;;;0531;;0531
+0562;ARMENIAN SMALL LETTER BEN;Ll;0;L;;;;;N;;;0532;;0532
+0563;ARMENIAN SMALL LETTER GIM;Ll;0;L;;;;;N;;;0533;;0533
+0564;ARMENIAN SMALL LETTER DA;Ll;0;L;;;;;N;;;0534;;0534
+0565;ARMENIAN SMALL LETTER ECH;Ll;0;L;;;;;N;;;0535;;0535
+0566;ARMENIAN SMALL LETTER ZA;Ll;0;L;;;;;N;;;0536;;0536
+0567;ARMENIAN SMALL LETTER EH;Ll;0;L;;;;;N;;;0537;;0537
+0568;ARMENIAN SMALL LETTER ET;Ll;0;L;;;;;N;;;0538;;0538
+0569;ARMENIAN SMALL LETTER TO;Ll;0;L;;;;;N;;;0539;;0539
+056A;ARMENIAN SMALL LETTER ZHE;Ll;0;L;;;;;N;;;053A;;053A
+056B;ARMENIAN SMALL LETTER INI;Ll;0;L;;;;;N;;;053B;;053B
+056C;ARMENIAN SMALL LETTER LIWN;Ll;0;L;;;;;N;;;053C;;053C
+056D;ARMENIAN SMALL LETTER XEH;Ll;0;L;;;;;N;;;053D;;053D
+056E;ARMENIAN SMALL LETTER CA;Ll;0;L;;;;;N;;;053E;;053E
+056F;ARMENIAN SMALL LETTER KEN;Ll;0;L;;;;;N;;;053F;;053F
+0570;ARMENIAN SMALL LETTER HO;Ll;0;L;;;;;N;;;0540;;0540
+0571;ARMENIAN SMALL LETTER JA;Ll;0;L;;;;;N;;;0541;;0541
+0572;ARMENIAN SMALL LETTER GHAD;Ll;0;L;;;;;N;ARMENIAN SMALL LETTER LAD;;0542;;0542
+0573;ARMENIAN SMALL LETTER CHEH;Ll;0;L;;;;;N;;;0543;;0543
+0574;ARMENIAN SMALL LETTER MEN;Ll;0;L;;;;;N;;;0544;;0544
+0575;ARMENIAN SMALL LETTER YI;Ll;0;L;;;;;N;;;0545;;0545
+0576;ARMENIAN SMALL LETTER NOW;Ll;0;L;;;;;N;;;0546;;0546
+0577;ARMENIAN SMALL LETTER SHA;Ll;0;L;;;;;N;;;0547;;0547
+0578;ARMENIAN SMALL LETTER VO;Ll;0;L;;;;;N;;;0548;;0548
+0579;ARMENIAN SMALL LETTER CHA;Ll;0;L;;;;;N;;;0549;;0549
+057A;ARMENIAN SMALL LETTER PEH;Ll;0;L;;;;;N;;;054A;;054A
+057B;ARMENIAN SMALL LETTER JHEH;Ll;0;L;;;;;N;;;054B;;054B
+057C;ARMENIAN SMALL LETTER RA;Ll;0;L;;;;;N;;;054C;;054C
+057D;ARMENIAN SMALL LETTER SEH;Ll;0;L;;;;;N;;;054D;;054D
+057E;ARMENIAN SMALL LETTER VEW;Ll;0;L;;;;;N;;;054E;;054E
+057F;ARMENIAN SMALL LETTER TIWN;Ll;0;L;;;;;N;;;054F;;054F
+0580;ARMENIAN SMALL LETTER REH;Ll;0;L;;;;;N;;;0550;;0550
+0581;ARMENIAN SMALL LETTER CO;Ll;0;L;;;;;N;;;0551;;0551
+0582;ARMENIAN SMALL LETTER YIWN;Ll;0;L;;;;;N;;;0552;;0552
+0583;ARMENIAN SMALL LETTER PIWR;Ll;0;L;;;;;N;;;0553;;0553
+0584;ARMENIAN SMALL LETTER KEH;Ll;0;L;;;;;N;;;0554;;0554
+0585;ARMENIAN SMALL LETTER OH;Ll;0;L;;;;;N;;;0555;;0555
+0586;ARMENIAN SMALL LETTER FEH;Ll;0;L;;;;;N;;;0556;;0556
+0587;ARMENIAN SMALL LIGATURE ECH YIWN;Ll;0;L;<compat> 0565 0582;;;;N;;;;;
+0589;ARMENIAN FULL STOP;Po;0;L;;;;;N;ARMENIAN PERIOD;;;;
+058A;ARMENIAN HYPHEN;Pd;0;ON;;;;;N;;;;;
+0591;HEBREW ACCENT ETNAHTA;Mn;220;NSM;;;;;N;;;;;
+0592;HEBREW ACCENT SEGOL;Mn;230;NSM;;;;;N;;;;;
+0593;HEBREW ACCENT SHALSHELET;Mn;230;NSM;;;;;N;;;;;
+0594;HEBREW ACCENT ZAQEF QATAN;Mn;230;NSM;;;;;N;;;;;
+0595;HEBREW ACCENT ZAQEF GADOL;Mn;230;NSM;;;;;N;;;;;
+0596;HEBREW ACCENT TIPEHA;Mn;220;NSM;;;;;N;;*;;;
+0597;HEBREW ACCENT REVIA;Mn;230;NSM;;;;;N;;;;;
+0598;HEBREW ACCENT ZARQA;Mn;230;NSM;;;;;N;;*;;;
+0599;HEBREW ACCENT PASHTA;Mn;230;NSM;;;;;N;;;;;
+059A;HEBREW ACCENT YETIV;Mn;222;NSM;;;;;N;;;;;
+059B;HEBREW ACCENT TEVIR;Mn;220;NSM;;;;;N;;;;;
+059C;HEBREW ACCENT GERESH;Mn;230;NSM;;;;;N;;;;;
+059D;HEBREW ACCENT GERESH MUQDAM;Mn;230;NSM;;;;;N;;;;;
+059E;HEBREW ACCENT GERSHAYIM;Mn;230;NSM;;;;;N;;;;;
+059F;HEBREW ACCENT QARNEY PARA;Mn;230;NSM;;;;;N;;;;;
+05A0;HEBREW ACCENT TELISHA GEDOLA;Mn;230;NSM;;;;;N;;;;;
+05A1;HEBREW ACCENT PAZER;Mn;230;NSM;;;;;N;;;;;
+05A2;HEBREW ACCENT ATNAH HAFUKH;Mn;220;NSM;;;;;N;;;;;
+05A3;HEBREW ACCENT MUNAH;Mn;220;NSM;;;;;N;;;;;
+05A4;HEBREW ACCENT MAHAPAKH;Mn;220;NSM;;;;;N;;;;;
+05A5;HEBREW ACCENT MERKHA;Mn;220;NSM;;;;;N;;*;;;
+05A6;HEBREW ACCENT MERKHA KEFULA;Mn;220;NSM;;;;;N;;;;;
+05A7;HEBREW ACCENT DARGA;Mn;220;NSM;;;;;N;;;;;
+05A8;HEBREW ACCENT QADMA;Mn;230;NSM;;;;;N;;*;;;
+05A9;HEBREW ACCENT TELISHA QETANA;Mn;230;NSM;;;;;N;;;;;
+05AA;HEBREW ACCENT YERAH BEN YOMO;Mn;220;NSM;;;;;N;;*;;;
+05AB;HEBREW ACCENT OLE;Mn;230;NSM;;;;;N;;;;;
+05AC;HEBREW ACCENT ILUY;Mn;230;NSM;;;;;N;;;;;
+05AD;HEBREW ACCENT DEHI;Mn;222;NSM;;;;;N;;;;;
+05AE;HEBREW ACCENT ZINOR;Mn;228;NSM;;;;;N;;;;;
+05AF;HEBREW MARK MASORA CIRCLE;Mn;230;NSM;;;;;N;;;;;
+05B0;HEBREW POINT SHEVA;Mn;10;NSM;;;;;N;;;;;
+05B1;HEBREW POINT HATAF SEGOL;Mn;11;NSM;;;;;N;;;;;
+05B2;HEBREW POINT HATAF PATAH;Mn;12;NSM;;;;;N;;;;;
+05B3;HEBREW POINT HATAF QAMATS;Mn;13;NSM;;;;;N;;;;;
+05B4;HEBREW POINT HIRIQ;Mn;14;NSM;;;;;N;;;;;
+05B5;HEBREW POINT TSERE;Mn;15;NSM;;;;;N;;;;;
+05B6;HEBREW POINT SEGOL;Mn;16;NSM;;;;;N;;;;;
+05B7;HEBREW POINT PATAH;Mn;17;NSM;;;;;N;;;;;
+05B8;HEBREW POINT QAMATS;Mn;18;NSM;;;;;N;;;;;
+05B9;HEBREW POINT HOLAM;Mn;19;NSM;;;;;N;;;;;
+05BA;HEBREW POINT HOLAM HASER FOR VAV;Mn;19;NSM;;;;;N;;;;;
+05BB;HEBREW POINT QUBUTS;Mn;20;NSM;;;;;N;;;;;
+05BC;HEBREW POINT DAGESH OR MAPIQ;Mn;21;NSM;;;;;N;HEBREW POINT DAGESH;or shuruq;;;
+05BD;HEBREW POINT METEG;Mn;22;NSM;;;;;N;;*;;;
+05BE;HEBREW PUNCTUATION MAQAF;Po;0;R;;;;;N;;;;;
+05BF;HEBREW POINT RAFE;Mn;23;NSM;;;;;N;;;;;
+05C0;HEBREW PUNCTUATION PASEQ;Po;0;R;;;;;N;HEBREW POINT PASEQ;*;;;
+05C1;HEBREW POINT SHIN DOT;Mn;24;NSM;;;;;N;;;;;
+05C2;HEBREW POINT SIN DOT;Mn;25;NSM;;;;;N;;;;;
+05C3;HEBREW PUNCTUATION SOF PASUQ;Po;0;R;;;;;N;;*;;;
+05C4;HEBREW MARK UPPER DOT;Mn;230;NSM;;;;;N;;;;;
+05C5;HEBREW MARK LOWER DOT;Mn;220;NSM;;;;;N;;;;;
+05C6;HEBREW PUNCTUATION NUN HAFUKHA;Po;0;R;;;;;N;;;;;
+05C7;HEBREW POINT QAMATS QATAN;Mn;18;NSM;;;;;N;;;;;
+05D0;HEBREW LETTER ALEF;Lo;0;R;;;;;N;;;;;
+05D1;HEBREW LETTER BET;Lo;0;R;;;;;N;;;;;
+05D2;HEBREW LETTER GIMEL;Lo;0;R;;;;;N;;;;;
+05D3;HEBREW LETTER DALET;Lo;0;R;;;;;N;;;;;
+05D4;HEBREW LETTER HE;Lo;0;R;;;;;N;;;;;
+05D5;HEBREW LETTER VAV;Lo;0;R;;;;;N;;;;;
+05D6;HEBREW LETTER ZAYIN;Lo;0;R;;;;;N;;;;;
+05D7;HEBREW LETTER HET;Lo;0;R;;;;;N;;;;;
+05D8;HEBREW LETTER TET;Lo;0;R;;;;;N;;;;;
+05D9;HEBREW LETTER YOD;Lo;0;R;;;;;N;;;;;
+05DA;HEBREW LETTER FINAL KAF;Lo;0;R;;;;;N;;;;;
+05DB;HEBREW LETTER KAF;Lo;0;R;;;;;N;;;;;
+05DC;HEBREW LETTER LAMED;Lo;0;R;;;;;N;;;;;
+05DD;HEBREW LETTER FINAL MEM;Lo;0;R;;;;;N;;;;;
+05DE;HEBREW LETTER MEM;Lo;0;R;;;;;N;;;;;
+05DF;HEBREW LETTER FINAL NUN;Lo;0;R;;;;;N;;;;;
+05E0;HEBREW LETTER NUN;Lo;0;R;;;;;N;;;;;
+05E1;HEBREW LETTER SAMEKH;Lo;0;R;;;;;N;;;;;
+05E2;HEBREW LETTER AYIN;Lo;0;R;;;;;N;;;;;
+05E3;HEBREW LETTER FINAL PE;Lo;0;R;;;;;N;;;;;
+05E4;HEBREW LETTER PE;Lo;0;R;;;;;N;;;;;
+05E5;HEBREW LETTER FINAL TSADI;Lo;0;R;;;;;N;;;;;
+05E6;HEBREW LETTER TSADI;Lo;0;R;;;;;N;;;;;
+05E7;HEBREW LETTER QOF;Lo;0;R;;;;;N;;;;;
+05E8;HEBREW LETTER RESH;Lo;0;R;;;;;N;;;;;
+05E9;HEBREW LETTER SHIN;Lo;0;R;;;;;N;;;;;
+05EA;HEBREW LETTER TAV;Lo;0;R;;;;;N;;;;;
+05F0;HEBREW LIGATURE YIDDISH DOUBLE VAV;Lo;0;R;;;;;N;HEBREW LETTER DOUBLE VAV;;;;
+05F1;HEBREW LIGATURE YIDDISH VAV YOD;Lo;0;R;;;;;N;HEBREW LETTER VAV YOD;;;;
+05F2;HEBREW LIGATURE YIDDISH DOUBLE YOD;Lo;0;R;;;;;N;HEBREW LETTER DOUBLE YOD;;;;
+05F3;HEBREW PUNCTUATION GERESH;Po;0;R;;;;;N;;;;;
+05F4;HEBREW PUNCTUATION GERSHAYIM;Po;0;R;;;;;N;;;;;
+0600;ARABIC NUMBER SIGN;Cf;0;AL;;;;;N;;;;;
+0601;ARABIC SIGN SANAH;Cf;0;AL;;;;;N;;;;;
+0602;ARABIC FOOTNOTE MARKER;Cf;0;AL;;;;;N;;;;;
+0603;ARABIC SIGN SAFHA;Cf;0;AL;;;;;N;;;;;
+060B;AFGHANI SIGN;Sc;0;AL;;;;;N;;;;;
+060C;ARABIC COMMA;Po;0;CS;;;;;N;;;;;
+060D;ARABIC DATE SEPARATOR;Po;0;AL;;;;;N;;;;;
+060E;ARABIC POETIC VERSE SIGN;So;0;ON;;;;;N;;;;;
+060F;ARABIC SIGN MISRA;So;0;ON;;;;;N;;;;;
+0610;ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM;Mn;230;NSM;;;;;N;;;;;
+0611;ARABIC SIGN ALAYHE ASSALLAM;Mn;230;NSM;;;;;N;;;;;
+0612;ARABIC SIGN RAHMATULLAH ALAYHE;Mn;230;NSM;;;;;N;;;;;
+0613;ARABIC SIGN RADI ALLAHOU ANHU;Mn;230;NSM;;;;;N;;;;;
+0614;ARABIC SIGN TAKHALLUS;Mn;230;NSM;;;;;N;;;;;
+0615;ARABIC SMALL HIGH TAH;Mn;230;NSM;;;;;N;;;;;
+061B;ARABIC SEMICOLON;Po;0;AL;;;;;N;;;;;
+061E;ARABIC TRIPLE DOT PUNCTUATION MARK;Po;0;AL;;;;;N;;;;;
+061F;ARABIC QUESTION MARK;Po;0;AL;;;;;N;;;;;
+0621;ARABIC LETTER HAMZA;Lo;0;AL;;;;;N;ARABIC LETTER HAMZAH;;;;
+0622;ARABIC LETTER ALEF WITH MADDA ABOVE;Lo;0;AL;0627 0653;;;;N;ARABIC LETTER MADDAH ON ALEF;;;;
+0623;ARABIC LETTER ALEF WITH HAMZA ABOVE;Lo;0;AL;0627 0654;;;;N;ARABIC LETTER HAMZAH ON ALEF;;;;
+0624;ARABIC LETTER WAW WITH HAMZA ABOVE;Lo;0;AL;0648 0654;;;;N;ARABIC LETTER HAMZAH ON WAW;;;;
+0625;ARABIC LETTER ALEF WITH HAMZA BELOW;Lo;0;AL;0627 0655;;;;N;ARABIC LETTER HAMZAH UNDER ALEF;;;;
+0626;ARABIC LETTER YEH WITH HAMZA ABOVE;Lo;0;AL;064A 0654;;;;N;ARABIC LETTER HAMZAH ON YA;;;;
+0627;ARABIC LETTER ALEF;Lo;0;AL;;;;;N;;;;;
+0628;ARABIC LETTER BEH;Lo;0;AL;;;;;N;ARABIC LETTER BAA;;;;
+0629;ARABIC LETTER TEH MARBUTA;Lo;0;AL;;;;;N;ARABIC LETTER TAA MARBUTAH;;;;
+062A;ARABIC LETTER TEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA;;;;
+062B;ARABIC LETTER THEH;Lo;0;AL;;;;;N;ARABIC LETTER THAA;;;;
+062C;ARABIC LETTER JEEM;Lo;0;AL;;;;;N;;;;;
+062D;ARABIC LETTER HAH;Lo;0;AL;;;;;N;ARABIC LETTER HAA;;;;
+062E;ARABIC LETTER KHAH;Lo;0;AL;;;;;N;ARABIC LETTER KHAA;;;;
+062F;ARABIC LETTER DAL;Lo;0;AL;;;;;N;;;;;
+0630;ARABIC LETTER THAL;Lo;0;AL;;;;;N;;;;;
+0631;ARABIC LETTER REH;Lo;0;AL;;;;;N;ARABIC LETTER RA;;;;
+0632;ARABIC LETTER ZAIN;Lo;0;AL;;;;;N;;;;;
+0633;ARABIC LETTER SEEN;Lo;0;AL;;;;;N;;;;;
+0634;ARABIC LETTER SHEEN;Lo;0;AL;;;;;N;;;;;
+0635;ARABIC LETTER SAD;Lo;0;AL;;;;;N;;;;;
+0636;ARABIC LETTER DAD;Lo;0;AL;;;;;N;;;;;
+0637;ARABIC LETTER TAH;Lo;0;AL;;;;;N;;;;;
+0638;ARABIC LETTER ZAH;Lo;0;AL;;;;;N;ARABIC LETTER DHAH;;;;
+0639;ARABIC LETTER AIN;Lo;0;AL;;;;;N;;;;;
+063A;ARABIC LETTER GHAIN;Lo;0;AL;;;;;N;;;;;
+0640;ARABIC TATWEEL;Lm;0;AL;;;;;N;;;;;
+0641;ARABIC LETTER FEH;Lo;0;AL;;;;;N;ARABIC LETTER FA;;;;
+0642;ARABIC LETTER QAF;Lo;0;AL;;;;;N;;;;;
+0643;ARABIC LETTER KAF;Lo;0;AL;;;;;N;ARABIC LETTER CAF;;;;
+0644;ARABIC LETTER LAM;Lo;0;AL;;;;;N;;;;;
+0645;ARABIC LETTER MEEM;Lo;0;AL;;;;;N;;;;;
+0646;ARABIC LETTER NOON;Lo;0;AL;;;;;N;;;;;
+0647;ARABIC LETTER HEH;Lo;0;AL;;;;;N;ARABIC LETTER HA;;;;
+0648;ARABIC LETTER WAW;Lo;0;AL;;;;;N;;;;;
+0649;ARABIC LETTER ALEF MAKSURA;Lo;0;AL;;;;;N;ARABIC LETTER ALEF MAQSURAH;;;;
+064A;ARABIC LETTER YEH;Lo;0;AL;;;;;N;ARABIC LETTER YA;;;;
+064B;ARABIC FATHATAN;Mn;27;NSM;;;;;N;;;;;
+064C;ARABIC DAMMATAN;Mn;28;NSM;;;;;N;;;;;
+064D;ARABIC KASRATAN;Mn;29;NSM;;;;;N;;;;;
+064E;ARABIC FATHA;Mn;30;NSM;;;;;N;ARABIC FATHAH;;;;
+064F;ARABIC DAMMA;Mn;31;NSM;;;;;N;ARABIC DAMMAH;;;;
+0650;ARABIC KASRA;Mn;32;NSM;;;;;N;ARABIC KASRAH;;;;
+0651;ARABIC SHADDA;Mn;33;NSM;;;;;N;ARABIC SHADDAH;;;;
+0652;ARABIC SUKUN;Mn;34;NSM;;;;;N;;;;;
+0653;ARABIC MADDAH ABOVE;Mn;230;NSM;;;;;N;;;;;
+0654;ARABIC HAMZA ABOVE;Mn;230;NSM;;;;;N;;;;;
+0655;ARABIC HAMZA BELOW;Mn;220;NSM;;;;;N;;;;;
+0656;ARABIC SUBSCRIPT ALEF;Mn;220;NSM;;;;;N;;;;;
+0657;ARABIC INVERTED DAMMA;Mn;230;NSM;;;;;N;;;;;
+0658;ARABIC MARK NOON GHUNNA;Mn;230;NSM;;;;;N;;;;;
+0659;ARABIC ZWARAKAY;Mn;230;NSM;;;;;N;;;;;
+065A;ARABIC VOWEL SIGN SMALL V ABOVE;Mn;230;NSM;;;;;N;;;;;
+065B;ARABIC VOWEL SIGN INVERTED SMALL V ABOVE;Mn;230;NSM;;;;;N;;;;;
+065C;ARABIC VOWEL SIGN DOT BELOW;Mn;220;NSM;;;;;N;;;;;
+065D;ARABIC REVERSED DAMMA;Mn;230;NSM;;;;;N;;;;;
+065E;ARABIC FATHA WITH TWO DOTS;Mn;230;NSM;;;;;N;;;;;
+0660;ARABIC-INDIC DIGIT ZERO;Nd;0;AN;;0;0;0;N;;;;;
+0661;ARABIC-INDIC DIGIT ONE;Nd;0;AN;;1;1;1;N;;;;;
+0662;ARABIC-INDIC DIGIT TWO;Nd;0;AN;;2;2;2;N;;;;;
+0663;ARABIC-INDIC DIGIT THREE;Nd;0;AN;;3;3;3;N;;;;;
+0664;ARABIC-INDIC DIGIT FOUR;Nd;0;AN;;4;4;4;N;;;;;
+0665;ARABIC-INDIC DIGIT FIVE;Nd;0;AN;;5;5;5;N;;;;;
+0666;ARABIC-INDIC DIGIT SIX;Nd;0;AN;;6;6;6;N;;;;;
+0667;ARABIC-INDIC DIGIT SEVEN;Nd;0;AN;;7;7;7;N;;;;;
+0668;ARABIC-INDIC DIGIT EIGHT;Nd;0;AN;;8;8;8;N;;;;;
+0669;ARABIC-INDIC DIGIT NINE;Nd;0;AN;;9;9;9;N;;;;;
+066A;ARABIC PERCENT SIGN;Po;0;ET;;;;;N;;;;;
+066B;ARABIC DECIMAL SEPARATOR;Po;0;AN;;;;;N;;;;;
+066C;ARABIC THOUSANDS SEPARATOR;Po;0;AN;;;;;N;;;;;
+066D;ARABIC FIVE POINTED STAR;Po;0;AL;;;;;N;;;;;
+066E;ARABIC LETTER DOTLESS BEH;Lo;0;AL;;;;;N;;;;;
+066F;ARABIC LETTER DOTLESS QAF;Lo;0;AL;;;;;N;;;;;
+0670;ARABIC LETTER SUPERSCRIPT ALEF;Mn;35;NSM;;;;;N;ARABIC ALEF ABOVE;;;;
+0671;ARABIC LETTER ALEF WASLA;Lo;0;AL;;;;;N;ARABIC LETTER HAMZAT WASL ON ALEF;;;;
+0672;ARABIC LETTER ALEF WITH WAVY HAMZA ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER WAVY HAMZAH ON ALEF;;;;
+0673;ARABIC LETTER ALEF WITH WAVY HAMZA BELOW;Lo;0;AL;;;;;N;ARABIC LETTER WAVY HAMZAH UNDER ALEF;;;;
+0674;ARABIC LETTER HIGH HAMZA;Lo;0;AL;;;;;N;ARABIC LETTER HIGH HAMZAH;;;;
+0675;ARABIC LETTER HIGH HAMZA ALEF;Lo;0;AL;<compat> 0627 0674;;;;N;ARABIC LETTER HIGH HAMZAH ALEF;;;;
+0676;ARABIC LETTER HIGH HAMZA WAW;Lo;0;AL;<compat> 0648 0674;;;;N;ARABIC LETTER HIGH HAMZAH WAW;;;;
+0677;ARABIC LETTER U WITH HAMZA ABOVE;Lo;0;AL;<compat> 06C7 0674;;;;N;ARABIC LETTER HIGH HAMZAH WAW WITH DAMMAH;;;;
+0678;ARABIC LETTER HIGH HAMZA YEH;Lo;0;AL;<compat> 064A 0674;;;;N;ARABIC LETTER HIGH HAMZAH YA;;;;
+0679;ARABIC LETTER TTEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH SMALL TAH;;;;
+067A;ARABIC LETTER TTEHEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH TWO DOTS VERTICAL ABOVE;;;;
+067B;ARABIC LETTER BEEH;Lo;0;AL;;;;;N;ARABIC LETTER BAA WITH TWO DOTS VERTICAL BELOW;;;;
+067C;ARABIC LETTER TEH WITH RING;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH RING;;;;
+067D;ARABIC LETTER TEH WITH THREE DOTS ABOVE DOWNWARDS;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH THREE DOTS ABOVE DOWNWARD;;;;
+067E;ARABIC LETTER PEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH THREE DOTS BELOW;;;;
+067F;ARABIC LETTER TEHEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH FOUR DOTS ABOVE;;;;
+0680;ARABIC LETTER BEHEH;Lo;0;AL;;;;;N;ARABIC LETTER BAA WITH FOUR DOTS BELOW;;;;
+0681;ARABIC LETTER HAH WITH HAMZA ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER HAMZAH ON HAA;;;;
+0682;ARABIC LETTER HAH WITH TWO DOTS VERTICAL ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH TWO DOTS VERTICAL ABOVE;;;;
+0683;ARABIC LETTER NYEH;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH MIDDLE TWO DOTS;;;;
+0684;ARABIC LETTER DYEH;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH MIDDLE TWO DOTS VERTICAL;;;;
+0685;ARABIC LETTER HAH WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH THREE DOTS ABOVE;;;;
+0686;ARABIC LETTER TCHEH;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH MIDDLE THREE DOTS DOWNWARD;;;;
+0687;ARABIC LETTER TCHEHEH;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH MIDDLE FOUR DOTS;;;;
+0688;ARABIC LETTER DDAL;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH SMALL TAH;;;;
+0689;ARABIC LETTER DAL WITH RING;Lo;0;AL;;;;;N;;;;;
+068A;ARABIC LETTER DAL WITH DOT BELOW;Lo;0;AL;;;;;N;;;;;
+068B;ARABIC LETTER DAL WITH DOT BELOW AND SMALL TAH;Lo;0;AL;;;;;N;;;;;
+068C;ARABIC LETTER DAHAL;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH TWO DOTS ABOVE;;;;
+068D;ARABIC LETTER DDAHAL;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH TWO DOTS BELOW;;;;
+068E;ARABIC LETTER DUL;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH THREE DOTS ABOVE;;;;
+068F;ARABIC LETTER DAL WITH THREE DOTS ABOVE DOWNWARDS;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH THREE DOTS ABOVE DOWNWARD;;;;
+0690;ARABIC LETTER DAL WITH FOUR DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+0691;ARABIC LETTER RREH;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH SMALL TAH;;;;
+0692;ARABIC LETTER REH WITH SMALL V;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH SMALL V;;;;
+0693;ARABIC LETTER REH WITH RING;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH RING;;;;
+0694;ARABIC LETTER REH WITH DOT BELOW;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH DOT BELOW;;;;
+0695;ARABIC LETTER REH WITH SMALL V BELOW;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH SMALL V BELOW;;;;
+0696;ARABIC LETTER REH WITH DOT BELOW AND DOT ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH DOT BELOW AND DOT ABOVE;;;;
+0697;ARABIC LETTER REH WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH TWO DOTS ABOVE;;;;
+0698;ARABIC LETTER JEH;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH THREE DOTS ABOVE;;;;
+0699;ARABIC LETTER REH WITH FOUR DOTS ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH FOUR DOTS ABOVE;;;;
+069A;ARABIC LETTER SEEN WITH DOT BELOW AND DOT ABOVE;Lo;0;AL;;;;;N;;;;;
+069B;ARABIC LETTER SEEN WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;;;;;
+069C;ARABIC LETTER SEEN WITH THREE DOTS BELOW AND THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+069D;ARABIC LETTER SAD WITH TWO DOTS BELOW;Lo;0;AL;;;;;N;;;;;
+069E;ARABIC LETTER SAD WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+069F;ARABIC LETTER TAH WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+06A0;ARABIC LETTER AIN WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+06A1;ARABIC LETTER DOTLESS FEH;Lo;0;AL;;;;;N;ARABIC LETTER DOTLESS FA;;;;
+06A2;ARABIC LETTER FEH WITH DOT MOVED BELOW;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH DOT MOVED BELOW;;;;
+06A3;ARABIC LETTER FEH WITH DOT BELOW;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH DOT BELOW;;;;
+06A4;ARABIC LETTER VEH;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH THREE DOTS ABOVE;;;;
+06A5;ARABIC LETTER FEH WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH THREE DOTS BELOW;;;;
+06A6;ARABIC LETTER PEHEH;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH FOUR DOTS ABOVE;;;;
+06A7;ARABIC LETTER QAF WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;;
+06A8;ARABIC LETTER QAF WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+06A9;ARABIC LETTER KEHEH;Lo;0;AL;;;;;N;ARABIC LETTER OPEN CAF;;;;
+06AA;ARABIC LETTER SWASH KAF;Lo;0;AL;;;;;N;ARABIC LETTER SWASH CAF;;;;
+06AB;ARABIC LETTER KAF WITH RING;Lo;0;AL;;;;;N;ARABIC LETTER CAF WITH RING;;;;
+06AC;ARABIC LETTER KAF WITH DOT ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER CAF WITH DOT ABOVE;;;;
+06AD;ARABIC LETTER NG;Lo;0;AL;;;;;N;ARABIC LETTER CAF WITH THREE DOTS ABOVE;;;;
+06AE;ARABIC LETTER KAF WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;ARABIC LETTER CAF WITH THREE DOTS BELOW;;;;
+06AF;ARABIC LETTER GAF;Lo;0;AL;;;;;N;;*;;;
+06B0;ARABIC LETTER GAF WITH RING;Lo;0;AL;;;;;N;;;;;
+06B1;ARABIC LETTER NGOEH;Lo;0;AL;;;;;N;ARABIC LETTER GAF WITH TWO DOTS ABOVE;;;;
+06B2;ARABIC LETTER GAF WITH TWO DOTS BELOW;Lo;0;AL;;;;;N;;;;;
+06B3;ARABIC LETTER GUEH;Lo;0;AL;;;;;N;ARABIC LETTER GAF WITH TWO DOTS VERTICAL BELOW;;;;
+06B4;ARABIC LETTER GAF WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+06B5;ARABIC LETTER LAM WITH SMALL V;Lo;0;AL;;;;;N;;;;;
+06B6;ARABIC LETTER LAM WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;;
+06B7;ARABIC LETTER LAM WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+06B8;ARABIC LETTER LAM WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;;;;;
+06B9;ARABIC LETTER NOON WITH DOT BELOW;Lo;0;AL;;;;;N;;;;;
+06BA;ARABIC LETTER NOON GHUNNA;Lo;0;AL;;;;;N;ARABIC LETTER DOTLESS NOON;;;;
+06BB;ARABIC LETTER RNOON;Lo;0;AL;;;;;N;ARABIC LETTER DOTLESS NOON WITH SMALL TAH;;;;
+06BC;ARABIC LETTER NOON WITH RING;Lo;0;AL;;;;;N;;;;;
+06BD;ARABIC LETTER NOON WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+06BE;ARABIC LETTER HEH DOACHASHMEE;Lo;0;AL;;;;;N;ARABIC LETTER KNOTTED HA;;;;
+06BF;ARABIC LETTER TCHEH WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;;
+06C0;ARABIC LETTER HEH WITH YEH ABOVE;Lo;0;AL;06D5 0654;;;;N;ARABIC LETTER HAMZAH ON HA;;;;
+06C1;ARABIC LETTER HEH GOAL;Lo;0;AL;;;;;N;ARABIC LETTER HA GOAL;;;;
+06C2;ARABIC LETTER HEH GOAL WITH HAMZA ABOVE;Lo;0;AL;06C1 0654;;;;N;ARABIC LETTER HAMZAH ON HA GOAL;;;;
+06C3;ARABIC LETTER TEH MARBUTA GOAL;Lo;0;AL;;;;;N;ARABIC LETTER TAA MARBUTAH GOAL;;;;
+06C4;ARABIC LETTER WAW WITH RING;Lo;0;AL;;;;;N;;;;;
+06C5;ARABIC LETTER KIRGHIZ OE;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH BAR;;;;
+06C6;ARABIC LETTER OE;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH SMALL V;;;;
+06C7;ARABIC LETTER U;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH DAMMAH;;;;
+06C8;ARABIC LETTER YU;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH ALEF ABOVE;;;;
+06C9;ARABIC LETTER KIRGHIZ YU;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH INVERTED SMALL V;;;;
+06CA;ARABIC LETTER WAW WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+06CB;ARABIC LETTER VE;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH THREE DOTS ABOVE;;;;
+06CC;ARABIC LETTER FARSI YEH;Lo;0;AL;;;;;N;ARABIC LETTER DOTLESS YA;;;;
+06CD;ARABIC LETTER YEH WITH TAIL;Lo;0;AL;;;;;N;ARABIC LETTER YA WITH TAIL;;;;
+06CE;ARABIC LETTER YEH WITH SMALL V;Lo;0;AL;;;;;N;ARABIC LETTER YA WITH SMALL V;;;;
+06CF;ARABIC LETTER WAW WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;;
+06D0;ARABIC LETTER E;Lo;0;AL;;;;;N;ARABIC LETTER YA WITH TWO DOTS VERTICAL BELOW;*;;;
+06D1;ARABIC LETTER YEH WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;ARABIC LETTER YA WITH THREE DOTS BELOW;;;;
+06D2;ARABIC LETTER YEH BARREE;Lo;0;AL;;;;;N;ARABIC LETTER YA BARREE;;;;
+06D3;ARABIC LETTER YEH BARREE WITH HAMZA ABOVE;Lo;0;AL;06D2 0654;;;;N;ARABIC LETTER HAMZAH ON YA BARREE;;;;
+06D4;ARABIC FULL STOP;Po;0;AL;;;;;N;ARABIC PERIOD;;;;
+06D5;ARABIC LETTER AE;Lo;0;AL;;;;;N;;;;;
+06D6;ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA;Mn;230;NSM;;;;;N;;;;;
+06D7;ARABIC SMALL HIGH LIGATURE QAF WITH LAM WITH ALEF MAKSURA;Mn;230;NSM;;;;;N;;;;;
+06D8;ARABIC SMALL HIGH MEEM INITIAL FORM;Mn;230;NSM;;;;;N;;;;;
+06D9;ARABIC SMALL HIGH LAM ALEF;Mn;230;NSM;;;;;N;;;;;
+06DA;ARABIC SMALL HIGH JEEM;Mn;230;NSM;;;;;N;;;;;
+06DB;ARABIC SMALL HIGH THREE DOTS;Mn;230;NSM;;;;;N;;;;;
+06DC;ARABIC SMALL HIGH SEEN;Mn;230;NSM;;;;;N;;;;;
+06DD;ARABIC END OF AYAH;Cf;0;AL;;;;;N;;;;;
+06DE;ARABIC START OF RUB EL HIZB;Me;0;NSM;;;;;N;;;;;
+06DF;ARABIC SMALL HIGH ROUNDED ZERO;Mn;230;NSM;;;;;N;;;;;
+06E0;ARABIC SMALL HIGH UPRIGHT RECTANGULAR ZERO;Mn;230;NSM;;;;;N;;;;;
+06E1;ARABIC SMALL HIGH DOTLESS HEAD OF KHAH;Mn;230;NSM;;;;;N;;;;;
+06E2;ARABIC SMALL HIGH MEEM ISOLATED FORM;Mn;230;NSM;;;;;N;;;;;
+06E3;ARABIC SMALL LOW SEEN;Mn;220;NSM;;;;;N;;;;;
+06E4;ARABIC SMALL HIGH MADDA;Mn;230;NSM;;;;;N;;;;;
+06E5;ARABIC SMALL WAW;Lm;0;AL;;;;;N;;;;;
+06E6;ARABIC SMALL YEH;Lm;0;AL;;;;;N;;;;;
+06E7;ARABIC SMALL HIGH YEH;Mn;230;NSM;;;;;N;;;;;
+06E8;ARABIC SMALL HIGH NOON;Mn;230;NSM;;;;;N;;;;;
+06E9;ARABIC PLACE OF SAJDAH;So;0;ON;;;;;N;;;;;
+06EA;ARABIC EMPTY CENTRE LOW STOP;Mn;220;NSM;;;;;N;;;;;
+06EB;ARABIC EMPTY CENTRE HIGH STOP;Mn;230;NSM;;;;;N;;;;;
+06EC;ARABIC ROUNDED HIGH STOP WITH FILLED CENTRE;Mn;230;NSM;;;;;N;;;;;
+06ED;ARABIC SMALL LOW MEEM;Mn;220;NSM;;;;;N;;;;;
+06EE;ARABIC LETTER DAL WITH INVERTED V;Lo;0;AL;;;;;N;;;;;
+06EF;ARABIC LETTER REH WITH INVERTED V;Lo;0;AL;;;;;N;;;;;
+06F0;EXTENDED ARABIC-INDIC DIGIT ZERO;Nd;0;EN;;0;0;0;N;EASTERN ARABIC-INDIC DIGIT ZERO;;;;
+06F1;EXTENDED ARABIC-INDIC DIGIT ONE;Nd;0;EN;;1;1;1;N;EASTERN ARABIC-INDIC DIGIT ONE;;;;
+06F2;EXTENDED ARABIC-INDIC DIGIT TWO;Nd;0;EN;;2;2;2;N;EASTERN ARABIC-INDIC DIGIT TWO;;;;
+06F3;EXTENDED ARABIC-INDIC DIGIT THREE;Nd;0;EN;;3;3;3;N;EASTERN ARABIC-INDIC DIGIT THREE;;;;
+06F4;EXTENDED ARABIC-INDIC DIGIT FOUR;Nd;0;EN;;4;4;4;N;EASTERN ARABIC-INDIC DIGIT FOUR;;;;
+06F5;EXTENDED ARABIC-INDIC DIGIT FIVE;Nd;0;EN;;5;5;5;N;EASTERN ARABIC-INDIC DIGIT FIVE;;;;
+06F6;EXTENDED ARABIC-INDIC DIGIT SIX;Nd;0;EN;;6;6;6;N;EASTERN ARABIC-INDIC DIGIT SIX;;;;
+06F7;EXTENDED ARABIC-INDIC DIGIT SEVEN;Nd;0;EN;;7;7;7;N;EASTERN ARABIC-INDIC DIGIT SEVEN;;;;
+06F8;EXTENDED ARABIC-INDIC DIGIT EIGHT;Nd;0;EN;;8;8;8;N;EASTERN ARABIC-INDIC DIGIT EIGHT;;;;
+06F9;EXTENDED ARABIC-INDIC DIGIT NINE;Nd;0;EN;;9;9;9;N;EASTERN ARABIC-INDIC DIGIT NINE;;;;
+06FA;ARABIC LETTER SHEEN WITH DOT BELOW;Lo;0;AL;;;;;N;;;;;
+06FB;ARABIC LETTER DAD WITH DOT BELOW;Lo;0;AL;;;;;N;;;;;
+06FC;ARABIC LETTER GHAIN WITH DOT BELOW;Lo;0;AL;;;;;N;;;;;
+06FD;ARABIC SIGN SINDHI AMPERSAND;So;0;AL;;;;;N;;;;;
+06FE;ARABIC SIGN SINDHI POSTPOSITION MEN;So;0;AL;;;;;N;;;;;
+06FF;ARABIC LETTER HEH WITH INVERTED V;Lo;0;AL;;;;;N;;;;;
+0700;SYRIAC END OF PARAGRAPH;Po;0;AL;;;;;N;;;;;
+0701;SYRIAC SUPRALINEAR FULL STOP;Po;0;AL;;;;;N;;;;;
+0702;SYRIAC SUBLINEAR FULL STOP;Po;0;AL;;;;;N;;;;;
+0703;SYRIAC SUPRALINEAR COLON;Po;0;AL;;;;;N;;;;;
+0704;SYRIAC SUBLINEAR COLON;Po;0;AL;;;;;N;;;;;
+0705;SYRIAC HORIZONTAL COLON;Po;0;AL;;;;;N;;;;;
+0706;SYRIAC COLON SKEWED LEFT;Po;0;AL;;;;;N;;;;;
+0707;SYRIAC COLON SKEWED RIGHT;Po;0;AL;;;;;N;;;;;
+0708;SYRIAC SUPRALINEAR COLON SKEWED LEFT;Po;0;AL;;;;;N;;;;;
+0709;SYRIAC SUBLINEAR COLON SKEWED RIGHT;Po;0;AL;;;;;N;;;;;
+070A;SYRIAC CONTRACTION;Po;0;AL;;;;;N;;;;;
+070B;SYRIAC HARKLEAN OBELUS;Po;0;AL;;;;;N;;;;;
+070C;SYRIAC HARKLEAN METOBELUS;Po;0;AL;;;;;N;;;;;
+070D;SYRIAC HARKLEAN ASTERISCUS;Po;0;AL;;;;;N;;;;;
+070F;SYRIAC ABBREVIATION MARK;Cf;0;BN;;;;;N;;;;;
+0710;SYRIAC LETTER ALAPH;Lo;0;AL;;;;;N;;;;;
+0711;SYRIAC LETTER SUPERSCRIPT ALAPH;Mn;36;NSM;;;;;N;;;;;
+0712;SYRIAC LETTER BETH;Lo;0;AL;;;;;N;;;;;
+0713;SYRIAC LETTER GAMAL;Lo;0;AL;;;;;N;;;;;
+0714;SYRIAC LETTER GAMAL GARSHUNI;Lo;0;AL;;;;;N;;;;;
+0715;SYRIAC LETTER DALATH;Lo;0;AL;;;;;N;;;;;
+0716;SYRIAC LETTER DOTLESS DALATH RISH;Lo;0;AL;;;;;N;;;;;
+0717;SYRIAC LETTER HE;Lo;0;AL;;;;;N;;;;;
+0718;SYRIAC LETTER WAW;Lo;0;AL;;;;;N;;;;;
+0719;SYRIAC LETTER ZAIN;Lo;0;AL;;;;;N;;;;;
+071A;SYRIAC LETTER HETH;Lo;0;AL;;;;;N;;;;;
+071B;SYRIAC LETTER TETH;Lo;0;AL;;;;;N;;;;;
+071C;SYRIAC LETTER TETH GARSHUNI;Lo;0;AL;;;;;N;;;;;
+071D;SYRIAC LETTER YUDH;Lo;0;AL;;;;;N;;;;;
+071E;SYRIAC LETTER YUDH HE;Lo;0;AL;;;;;N;;;;;
+071F;SYRIAC LETTER KAPH;Lo;0;AL;;;;;N;;;;;
+0720;SYRIAC LETTER LAMADH;Lo;0;AL;;;;;N;;;;;
+0721;SYRIAC LETTER MIM;Lo;0;AL;;;;;N;;;;;
+0722;SYRIAC LETTER NUN;Lo;0;AL;;;;;N;;;;;
+0723;SYRIAC LETTER SEMKATH;Lo;0;AL;;;;;N;;;;;
+0724;SYRIAC LETTER FINAL SEMKATH;Lo;0;AL;;;;;N;;;;;
+0725;SYRIAC LETTER E;Lo;0;AL;;;;;N;;;;;
+0726;SYRIAC LETTER PE;Lo;0;AL;;;;;N;;;;;
+0727;SYRIAC LETTER REVERSED PE;Lo;0;AL;;;;;N;;;;;
+0728;SYRIAC LETTER SADHE;Lo;0;AL;;;;;N;;;;;
+0729;SYRIAC LETTER QAPH;Lo;0;AL;;;;;N;;;;;
+072A;SYRIAC LETTER RISH;Lo;0;AL;;;;;N;;;;;
+072B;SYRIAC LETTER SHIN;Lo;0;AL;;;;;N;;;;;
+072C;SYRIAC LETTER TAW;Lo;0;AL;;;;;N;;;;;
+072D;SYRIAC LETTER PERSIAN BHETH;Lo;0;AL;;;;;N;;;;;
+072E;SYRIAC LETTER PERSIAN GHAMAL;Lo;0;AL;;;;;N;;;;;
+072F;SYRIAC LETTER PERSIAN DHALATH;Lo;0;AL;;;;;N;;;;;
+0730;SYRIAC PTHAHA ABOVE;Mn;230;NSM;;;;;N;;;;;
+0731;SYRIAC PTHAHA BELOW;Mn;220;NSM;;;;;N;;;;;
+0732;SYRIAC PTHAHA DOTTED;Mn;230;NSM;;;;;N;;;;;
+0733;SYRIAC ZQAPHA ABOVE;Mn;230;NSM;;;;;N;;;;;
+0734;SYRIAC ZQAPHA BELOW;Mn;220;NSM;;;;;N;;;;;
+0735;SYRIAC ZQAPHA DOTTED;Mn;230;NSM;;;;;N;;;;;
+0736;SYRIAC RBASA ABOVE;Mn;230;NSM;;;;;N;;;;;
+0737;SYRIAC RBASA BELOW;Mn;220;NSM;;;;;N;;;;;
+0738;SYRIAC DOTTED ZLAMA HORIZONTAL;Mn;220;NSM;;;;;N;;;;;
+0739;SYRIAC DOTTED ZLAMA ANGULAR;Mn;220;NSM;;;;;N;;;;;
+073A;SYRIAC HBASA ABOVE;Mn;230;NSM;;;;;N;;;;;
+073B;SYRIAC HBASA BELOW;Mn;220;NSM;;;;;N;;;;;
+073C;SYRIAC HBASA-ESASA DOTTED;Mn;220;NSM;;;;;N;;;;;
+073D;SYRIAC ESASA ABOVE;Mn;230;NSM;;;;;N;;;;;
+073E;SYRIAC ESASA BELOW;Mn;220;NSM;;;;;N;;;;;
+073F;SYRIAC RWAHA;Mn;230;NSM;;;;;N;;;;;
+0740;SYRIAC FEMININE DOT;Mn;230;NSM;;;;;N;;;;;
+0741;SYRIAC QUSHSHAYA;Mn;230;NSM;;;;;N;;;;;
+0742;SYRIAC RUKKAKHA;Mn;220;NSM;;;;;N;;;;;
+0743;SYRIAC TWO VERTICAL DOTS ABOVE;Mn;230;NSM;;;;;N;;;;;
+0744;SYRIAC TWO VERTICAL DOTS BELOW;Mn;220;NSM;;;;;N;;;;;
+0745;SYRIAC THREE DOTS ABOVE;Mn;230;NSM;;;;;N;;;;;
+0746;SYRIAC THREE DOTS BELOW;Mn;220;NSM;;;;;N;;;;;
+0747;SYRIAC OBLIQUE LINE ABOVE;Mn;230;NSM;;;;;N;;;;;
+0748;SYRIAC OBLIQUE LINE BELOW;Mn;220;NSM;;;;;N;;;;;
+0749;SYRIAC MUSIC;Mn;230;NSM;;;;;N;;;;;
+074A;SYRIAC BARREKH;Mn;230;NSM;;;;;N;;;;;
+074D;SYRIAC LETTER SOGDIAN ZHAIN;Lo;0;AL;;;;;N;;;;;
+074E;SYRIAC LETTER SOGDIAN KHAPH;Lo;0;AL;;;;;N;;;;;
+074F;SYRIAC LETTER SOGDIAN FE;Lo;0;AL;;;;;N;;;;;
+0750;ARABIC LETTER BEH WITH THREE DOTS HORIZONTALLY BELOW;Lo;0;AL;;;;;N;;;;;
+0751;ARABIC LETTER BEH WITH DOT BELOW AND THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+0752;ARABIC LETTER BEH WITH THREE DOTS POINTING UPWARDS BELOW;Lo;0;AL;;;;;N;;;;;
+0753;ARABIC LETTER BEH WITH THREE DOTS POINTING UPWARDS BELOW AND TWO DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+0754;ARABIC LETTER BEH WITH TWO DOTS BELOW AND DOT ABOVE;Lo;0;AL;;;;;N;;;;;
+0755;ARABIC LETTER BEH WITH INVERTED SMALL V BELOW;Lo;0;AL;;;;;N;;;;;
+0756;ARABIC LETTER BEH WITH SMALL V;Lo;0;AL;;;;;N;;;;;
+0757;ARABIC LETTER HAH WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+0758;ARABIC LETTER HAH WITH THREE DOTS POINTING UPWARDS BELOW;Lo;0;AL;;;;;N;;;;;
+0759;ARABIC LETTER DAL WITH TWO DOTS VERTICALLY BELOW AND SMALL TAH;Lo;0;AL;;;;;N;;;;;
+075A;ARABIC LETTER DAL WITH INVERTED SMALL V BELOW;Lo;0;AL;;;;;N;;;;;
+075B;ARABIC LETTER REH WITH STROKE;Lo;0;AL;;;;;N;;;;;
+075C;ARABIC LETTER SEEN WITH FOUR DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+075D;ARABIC LETTER AIN WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+075E;ARABIC LETTER AIN WITH THREE DOTS POINTING DOWNWARDS ABOVE;Lo;0;AL;;;;;N;;;;;
+075F;ARABIC LETTER AIN WITH TWO DOTS VERTICALLY ABOVE;Lo;0;AL;;;;;N;;;;;
+0760;ARABIC LETTER FEH WITH TWO DOTS BELOW;Lo;0;AL;;;;;N;;;;;
+0761;ARABIC LETTER FEH WITH THREE DOTS POINTING UPWARDS BELOW;Lo;0;AL;;;;;N;;;;;
+0762;ARABIC LETTER KEHEH WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;;
+0763;ARABIC LETTER KEHEH WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+0764;ARABIC LETTER KEHEH WITH THREE DOTS POINTING UPWARDS BELOW;Lo;0;AL;;;;;N;;;;;
+0765;ARABIC LETTER MEEM WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;;
+0766;ARABIC LETTER MEEM WITH DOT BELOW;Lo;0;AL;;;;;N;;;;;
+0767;ARABIC LETTER NOON WITH TWO DOTS BELOW;Lo;0;AL;;;;;N;;;;;
+0768;ARABIC LETTER NOON WITH SMALL TAH;Lo;0;AL;;;;;N;;;;;
+0769;ARABIC LETTER NOON WITH SMALL V;Lo;0;AL;;;;;N;;;;;
+076A;ARABIC LETTER LAM WITH BAR;Lo;0;AL;;;;;N;;;;;
+076B;ARABIC LETTER REH WITH TWO DOTS VERTICALLY ABOVE;Lo;0;AL;;;;;N;;;;;
+076C;ARABIC LETTER REH WITH HAMZA ABOVE;Lo;0;AL;;;;;N;;;;;
+076D;ARABIC LETTER SEEN WITH TWO DOTS VERTICALLY ABOVE;Lo;0;AL;;;;;N;;;;;
+0780;THAANA LETTER HAA;Lo;0;AL;;;;;N;;;;;
+0781;THAANA LETTER SHAVIYANI;Lo;0;AL;;;;;N;;;;;
+0782;THAANA LETTER NOONU;Lo;0;AL;;;;;N;;;;;
+0783;THAANA LETTER RAA;Lo;0;AL;;;;;N;;;;;
+0784;THAANA LETTER BAA;Lo;0;AL;;;;;N;;;;;
+0785;THAANA LETTER LHAVIYANI;Lo;0;AL;;;;;N;;;;;
+0786;THAANA LETTER KAAFU;Lo;0;AL;;;;;N;;;;;
+0787;THAANA LETTER ALIFU;Lo;0;AL;;;;;N;;;;;
+0788;THAANA LETTER VAAVU;Lo;0;AL;;;;;N;;;;;
+0789;THAANA LETTER MEEMU;Lo;0;AL;;;;;N;;;;;
+078A;THAANA LETTER FAAFU;Lo;0;AL;;;;;N;;;;;
+078B;THAANA LETTER DHAALU;Lo;0;AL;;;;;N;;;;;
+078C;THAANA LETTER THAA;Lo;0;AL;;;;;N;;;;;
+078D;THAANA LETTER LAAMU;Lo;0;AL;;;;;N;;;;;
+078E;THAANA LETTER GAAFU;Lo;0;AL;;;;;N;;;;;
+078F;THAANA LETTER GNAVIYANI;Lo;0;AL;;;;;N;;;;;
+0790;THAANA LETTER SEENU;Lo;0;AL;;;;;N;;;;;
+0791;THAANA LETTER DAVIYANI;Lo;0;AL;;;;;N;;;;;
+0792;THAANA LETTER ZAVIYANI;Lo;0;AL;;;;;N;;;;;
+0793;THAANA LETTER TAVIYANI;Lo;0;AL;;;;;N;;;;;
+0794;THAANA LETTER YAA;Lo;0;AL;;;;;N;;;;;
+0795;THAANA LETTER PAVIYANI;Lo;0;AL;;;;;N;;;;;
+0796;THAANA LETTER JAVIYANI;Lo;0;AL;;;;;N;;;;;
+0797;THAANA LETTER CHAVIYANI;Lo;0;AL;;;;;N;;;;;
+0798;THAANA LETTER TTAA;Lo;0;AL;;;;;N;;;;;
+0799;THAANA LETTER HHAA;Lo;0;AL;;;;;N;;;;;
+079A;THAANA LETTER KHAA;Lo;0;AL;;;;;N;;;;;
+079B;THAANA LETTER THAALU;Lo;0;AL;;;;;N;;;;;
+079C;THAANA LETTER ZAA;Lo;0;AL;;;;;N;;;;;
+079D;THAANA LETTER SHEENU;Lo;0;AL;;;;;N;;;;;
+079E;THAANA LETTER SAADHU;Lo;0;AL;;;;;N;;;;;
+079F;THAANA LETTER DAADHU;Lo;0;AL;;;;;N;;;;;
+07A0;THAANA LETTER TO;Lo;0;AL;;;;;N;;;;;
+07A1;THAANA LETTER ZO;Lo;0;AL;;;;;N;;;;;
+07A2;THAANA LETTER AINU;Lo;0;AL;;;;;N;;;;;
+07A3;THAANA LETTER GHAINU;Lo;0;AL;;;;;N;;;;;
+07A4;THAANA LETTER QAAFU;Lo;0;AL;;;;;N;;;;;
+07A5;THAANA LETTER WAAVU;Lo;0;AL;;;;;N;;;;;
+07A6;THAANA ABAFILI;Mn;0;NSM;;;;;N;;;;;
+07A7;THAANA AABAAFILI;Mn;0;NSM;;;;;N;;;;;
+07A8;THAANA IBIFILI;Mn;0;NSM;;;;;N;;;;;
+07A9;THAANA EEBEEFILI;Mn;0;NSM;;;;;N;;;;;
+07AA;THAANA UBUFILI;Mn;0;NSM;;;;;N;;;;;
+07AB;THAANA OOBOOFILI;Mn;0;NSM;;;;;N;;;;;
+07AC;THAANA EBEFILI;Mn;0;NSM;;;;;N;;;;;
+07AD;THAANA EYBEYFILI;Mn;0;NSM;;;;;N;;;;;
+07AE;THAANA OBOFILI;Mn;0;NSM;;;;;N;;;;;
+07AF;THAANA OABOAFILI;Mn;0;NSM;;;;;N;;;;;
+07B0;THAANA SUKUN;Mn;0;NSM;;;;;N;;;;;
+07B1;THAANA LETTER NAA;Lo;0;AL;;;;;N;;;;;
+07C0;NKO DIGIT ZERO;Nd;0;R;;0;0;0;N;;;;;
+07C1;NKO DIGIT ONE;Nd;0;R;;1;1;1;N;;;;;
+07C2;NKO DIGIT TWO;Nd;0;R;;2;2;2;N;;;;;
+07C3;NKO DIGIT THREE;Nd;0;R;;3;3;3;N;;;;;
+07C4;NKO DIGIT FOUR;Nd;0;R;;4;4;4;N;;;;;
+07C5;NKO DIGIT FIVE;Nd;0;R;;5;5;5;N;;;;;
+07C6;NKO DIGIT SIX;Nd;0;R;;6;6;6;N;;;;;
+07C7;NKO DIGIT SEVEN;Nd;0;R;;7;7;7;N;;;;;
+07C8;NKO DIGIT EIGHT;Nd;0;R;;8;8;8;N;;;;;
+07C9;NKO DIGIT NINE;Nd;0;R;;9;9;9;N;;;;;
+07CA;NKO LETTER A;Lo;0;R;;;;;N;;;;;
+07CB;NKO LETTER EE;Lo;0;R;;;;;N;;;;;
+07CC;NKO LETTER I;Lo;0;R;;;;;N;;;;;
+07CD;NKO LETTER E;Lo;0;R;;;;;N;;;;;
+07CE;NKO LETTER U;Lo;0;R;;;;;N;;;;;
+07CF;NKO LETTER OO;Lo;0;R;;;;;N;;;;;
+07D0;NKO LETTER O;Lo;0;R;;;;;N;;;;;
+07D1;NKO LETTER DAGBASINNA;Lo;0;R;;;;;N;;;;;
+07D2;NKO LETTER N;Lo;0;R;;;;;N;;;;;
+07D3;NKO LETTER BA;Lo;0;R;;;;;N;;;;;
+07D4;NKO LETTER PA;Lo;0;R;;;;;N;;;;;
+07D5;NKO LETTER TA;Lo;0;R;;;;;N;;;;;
+07D6;NKO LETTER JA;Lo;0;R;;;;;N;;;;;
+07D7;NKO LETTER CHA;Lo;0;R;;;;;N;;;;;
+07D8;NKO LETTER DA;Lo;0;R;;;;;N;;;;;
+07D9;NKO LETTER RA;Lo;0;R;;;;;N;;;;;
+07DA;NKO LETTER RRA;Lo;0;R;;;;;N;;;;;
+07DB;NKO LETTER SA;Lo;0;R;;;;;N;;;;;
+07DC;NKO LETTER GBA;Lo;0;R;;;;;N;;;;;
+07DD;NKO LETTER FA;Lo;0;R;;;;;N;;;;;
+07DE;NKO LETTER KA;Lo;0;R;;;;;N;;;;;
+07DF;NKO LETTER LA;Lo;0;R;;;;;N;;;;;
+07E0;NKO LETTER NA WOLOSO;Lo;0;R;;;;;N;;;;;
+07E1;NKO LETTER MA;Lo;0;R;;;;;N;;;;;
+07E2;NKO LETTER NYA;Lo;0;R;;;;;N;;;;;
+07E3;NKO LETTER NA;Lo;0;R;;;;;N;;;;;
+07E4;NKO LETTER HA;Lo;0;R;;;;;N;;;;;
+07E5;NKO LETTER WA;Lo;0;R;;;;;N;;;;;
+07E6;NKO LETTER YA;Lo;0;R;;;;;N;;;;;
+07E7;NKO LETTER NYA WOLOSO;Lo;0;R;;;;;N;;;;;
+07E8;NKO LETTER JONA JA;Lo;0;R;;;;;N;;;;;
+07E9;NKO LETTER JONA CHA;Lo;0;R;;;;;N;;;;;
+07EA;NKO LETTER JONA RA;Lo;0;R;;;;;N;;;;;
+07EB;NKO COMBINING SHORT HIGH TONE;Mn;230;NSM;;;;;N;;;;;
+07EC;NKO COMBINING SHORT LOW TONE;Mn;230;NSM;;;;;N;;;;;
+07ED;NKO COMBINING SHORT RISING TONE;Mn;230;NSM;;;;;N;;;;;
+07EE;NKO COMBINING LONG DESCENDING TONE;Mn;230;NSM;;;;;N;;;;;
+07EF;NKO COMBINING LONG HIGH TONE;Mn;230;NSM;;;;;N;;;;;
+07F0;NKO COMBINING LONG LOW TONE;Mn;230;NSM;;;;;N;;;;;
+07F1;NKO COMBINING LONG RISING TONE;Mn;230;NSM;;;;;N;;;;;
+07F2;NKO COMBINING NASALIZATION MARK;Mn;220;NSM;;;;;N;;;;;
+07F3;NKO COMBINING DOUBLE DOT ABOVE;Mn;230;NSM;;;;;N;;;;;
+07F4;NKO HIGH TONE APOSTROPHE;Lm;0;R;;;;;N;;;;;
+07F5;NKO LOW TONE APOSTROPHE;Lm;0;R;;;;;N;;;;;
+07F6;NKO SYMBOL OO DENNEN;So;0;ON;;;;;N;;;;;
+07F7;NKO SYMBOL GBAKURUNEN;Po;0;ON;;;;;N;;;;;
+07F8;NKO COMMA;Po;0;ON;;;;;N;;;;;
+07F9;NKO EXCLAMATION MARK;Po;0;ON;;;;;N;;;;;
+07FA;NKO LAJANYALAN;Lm;0;R;;;;;N;;;;;
+0901;DEVANAGARI SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
+0902;DEVANAGARI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
+0903;DEVANAGARI SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+0904;DEVANAGARI LETTER SHORT A;Lo;0;L;;;;;N;;;;;
+0905;DEVANAGARI LETTER A;Lo;0;L;;;;;N;;;;;
+0906;DEVANAGARI LETTER AA;Lo;0;L;;;;;N;;;;;
+0907;DEVANAGARI LETTER I;Lo;0;L;;;;;N;;;;;
+0908;DEVANAGARI LETTER II;Lo;0;L;;;;;N;;;;;
+0909;DEVANAGARI LETTER U;Lo;0;L;;;;;N;;;;;
+090A;DEVANAGARI LETTER UU;Lo;0;L;;;;;N;;;;;
+090B;DEVANAGARI LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
+090C;DEVANAGARI LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
+090D;DEVANAGARI LETTER CANDRA E;Lo;0;L;;;;;N;;;;;
+090E;DEVANAGARI LETTER SHORT E;Lo;0;L;;;;;N;;;;;
+090F;DEVANAGARI LETTER E;Lo;0;L;;;;;N;;;;;
+0910;DEVANAGARI LETTER AI;Lo;0;L;;;;;N;;;;;
+0911;DEVANAGARI LETTER CANDRA O;Lo;0;L;;;;;N;;;;;
+0912;DEVANAGARI LETTER SHORT O;Lo;0;L;;;;;N;;;;;
+0913;DEVANAGARI LETTER O;Lo;0;L;;;;;N;;;;;
+0914;DEVANAGARI LETTER AU;Lo;0;L;;;;;N;;;;;
+0915;DEVANAGARI LETTER KA;Lo;0;L;;;;;N;;;;;
+0916;DEVANAGARI LETTER KHA;Lo;0;L;;;;;N;;;;;
+0917;DEVANAGARI LETTER GA;Lo;0;L;;;;;N;;;;;
+0918;DEVANAGARI LETTER GHA;Lo;0;L;;;;;N;;;;;
+0919;DEVANAGARI LETTER NGA;Lo;0;L;;;;;N;;;;;
+091A;DEVANAGARI LETTER CA;Lo;0;L;;;;;N;;;;;
+091B;DEVANAGARI LETTER CHA;Lo;0;L;;;;;N;;;;;
+091C;DEVANAGARI LETTER JA;Lo;0;L;;;;;N;;;;;
+091D;DEVANAGARI LETTER JHA;Lo;0;L;;;;;N;;;;;
+091E;DEVANAGARI LETTER NYA;Lo;0;L;;;;;N;;;;;
+091F;DEVANAGARI LETTER TTA;Lo;0;L;;;;;N;;;;;
+0920;DEVANAGARI LETTER TTHA;Lo;0;L;;;;;N;;;;;
+0921;DEVANAGARI LETTER DDA;Lo;0;L;;;;;N;;;;;
+0922;DEVANAGARI LETTER DDHA;Lo;0;L;;;;;N;;;;;
+0923;DEVANAGARI LETTER NNA;Lo;0;L;;;;;N;;;;;
+0924;DEVANAGARI LETTER TA;Lo;0;L;;;;;N;;;;;
+0925;DEVANAGARI LETTER THA;Lo;0;L;;;;;N;;;;;
+0926;DEVANAGARI LETTER DA;Lo;0;L;;;;;N;;;;;
+0927;DEVANAGARI LETTER DHA;Lo;0;L;;;;;N;;;;;
+0928;DEVANAGARI LETTER NA;Lo;0;L;;;;;N;;;;;
+0929;DEVANAGARI LETTER NNNA;Lo;0;L;0928 093C;;;;N;;;;;
+092A;DEVANAGARI LETTER PA;Lo;0;L;;;;;N;;;;;
+092B;DEVANAGARI LETTER PHA;Lo;0;L;;;;;N;;;;;
+092C;DEVANAGARI LETTER BA;Lo;0;L;;;;;N;;;;;
+092D;DEVANAGARI LETTER BHA;Lo;0;L;;;;;N;;;;;
+092E;DEVANAGARI LETTER MA;Lo;0;L;;;;;N;;;;;
+092F;DEVANAGARI LETTER YA;Lo;0;L;;;;;N;;;;;
+0930;DEVANAGARI LETTER RA;Lo;0;L;;;;;N;;;;;
+0931;DEVANAGARI LETTER RRA;Lo;0;L;0930 093C;;;;N;;;;;
+0932;DEVANAGARI LETTER LA;Lo;0;L;;;;;N;;;;;
+0933;DEVANAGARI LETTER LLA;Lo;0;L;;;;;N;;;;;
+0934;DEVANAGARI LETTER LLLA;Lo;0;L;0933 093C;;;;N;;;;;
+0935;DEVANAGARI LETTER VA;Lo;0;L;;;;;N;;;;;
+0936;DEVANAGARI LETTER SHA;Lo;0;L;;;;;N;;;;;
+0937;DEVANAGARI LETTER SSA;Lo;0;L;;;;;N;;;;;
+0938;DEVANAGARI LETTER SA;Lo;0;L;;;;;N;;;;;
+0939;DEVANAGARI LETTER HA;Lo;0;L;;;;;N;;;;;
+093C;DEVANAGARI SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;
+093D;DEVANAGARI SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;;
+093E;DEVANAGARI VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+093F;DEVANAGARI VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
+0940;DEVANAGARI VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
+0941;DEVANAGARI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+0942;DEVANAGARI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
+0943;DEVANAGARI VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;;
+0944;DEVANAGARI VOWEL SIGN VOCALIC RR;Mn;0;NSM;;;;;N;;;;;
+0945;DEVANAGARI VOWEL SIGN CANDRA E;Mn;0;NSM;;;;;N;;;;;
+0946;DEVANAGARI VOWEL SIGN SHORT E;Mn;0;NSM;;;;;N;;;;;
+0947;DEVANAGARI VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;;
+0948;DEVANAGARI VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;;
+0949;DEVANAGARI VOWEL SIGN CANDRA O;Mc;0;L;;;;;N;;;;;
+094A;DEVANAGARI VOWEL SIGN SHORT O;Mc;0;L;;;;;N;;;;;
+094B;DEVANAGARI VOWEL SIGN O;Mc;0;L;;;;;N;;;;;
+094C;DEVANAGARI VOWEL SIGN AU;Mc;0;L;;;;;N;;;;;
+094D;DEVANAGARI SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+0950;DEVANAGARI OM;Lo;0;L;;;;;N;;;;;
+0951;DEVANAGARI STRESS SIGN UDATTA;Mn;230;NSM;;;;;N;;;;;
+0952;DEVANAGARI STRESS SIGN ANUDATTA;Mn;220;NSM;;;;;N;;;;;
+0953;DEVANAGARI GRAVE ACCENT;Mn;230;NSM;;;;;N;;;;;
+0954;DEVANAGARI ACUTE ACCENT;Mn;230;NSM;;;;;N;;;;;
+0958;DEVANAGARI LETTER QA;Lo;0;L;0915 093C;;;;N;;;;;
+0959;DEVANAGARI LETTER KHHA;Lo;0;L;0916 093C;;;;N;;;;;
+095A;DEVANAGARI LETTER GHHA;Lo;0;L;0917 093C;;;;N;;;;;
+095B;DEVANAGARI LETTER ZA;Lo;0;L;091C 093C;;;;N;;;;;
+095C;DEVANAGARI LETTER DDDHA;Lo;0;L;0921 093C;;;;N;;;;;
+095D;DEVANAGARI LETTER RHA;Lo;0;L;0922 093C;;;;N;;;;;
+095E;DEVANAGARI LETTER FA;Lo;0;L;092B 093C;;;;N;;;;;
+095F;DEVANAGARI LETTER YYA;Lo;0;L;092F 093C;;;;N;;;;;
+0960;DEVANAGARI LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
+0961;DEVANAGARI LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
+0962;DEVANAGARI VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;;
+0963;DEVANAGARI VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;;
+0964;DEVANAGARI DANDA;Po;0;L;;;;;N;;;;;
+0965;DEVANAGARI DOUBLE DANDA;Po;0;L;;;;;N;;;;;
+0966;DEVANAGARI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+0967;DEVANAGARI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+0968;DEVANAGARI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+0969;DEVANAGARI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+096A;DEVANAGARI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+096B;DEVANAGARI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+096C;DEVANAGARI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+096D;DEVANAGARI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+096E;DEVANAGARI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+096F;DEVANAGARI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+0970;DEVANAGARI ABBREVIATION SIGN;Po;0;L;;;;;N;;;;;
+097B;DEVANAGARI LETTER GGA;Lo;0;L;;;;;N;;;;;
+097C;DEVANAGARI LETTER JJA;Lo;0;L;;;;;N;;;;;
+097D;DEVANAGARI LETTER GLOTTAL STOP;Lo;0;L;;;;;N;;;;;
+097E;DEVANAGARI LETTER DDDA;Lo;0;L;;;;;N;;;;;
+097F;DEVANAGARI LETTER BBA;Lo;0;L;;;;;N;;;;;
+0981;BENGALI SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
+0982;BENGALI SIGN ANUSVARA;Mc;0;L;;;;;N;;;;;
+0983;BENGALI SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+0985;BENGALI LETTER A;Lo;0;L;;;;;N;;;;;
+0986;BENGALI LETTER AA;Lo;0;L;;;;;N;;;;;
+0987;BENGALI LETTER I;Lo;0;L;;;;;N;;;;;
+0988;BENGALI LETTER II;Lo;0;L;;;;;N;;;;;
+0989;BENGALI LETTER U;Lo;0;L;;;;;N;;;;;
+098A;BENGALI LETTER UU;Lo;0;L;;;;;N;;;;;
+098B;BENGALI LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
+098C;BENGALI LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
+098F;BENGALI LETTER E;Lo;0;L;;;;;N;;;;;
+0990;BENGALI LETTER AI;Lo;0;L;;;;;N;;;;;
+0993;BENGALI LETTER O;Lo;0;L;;;;;N;;;;;
+0994;BENGALI LETTER AU;Lo;0;L;;;;;N;;;;;
+0995;BENGALI LETTER KA;Lo;0;L;;;;;N;;;;;
+0996;BENGALI LETTER KHA;Lo;0;L;;;;;N;;;;;
+0997;BENGALI LETTER GA;Lo;0;L;;;;;N;;;;;
+0998;BENGALI LETTER GHA;Lo;0;L;;;;;N;;;;;
+0999;BENGALI LETTER NGA;Lo;0;L;;;;;N;;;;;
+099A;BENGALI LETTER CA;Lo;0;L;;;;;N;;;;;
+099B;BENGALI LETTER CHA;Lo;0;L;;;;;N;;;;;
+099C;BENGALI LETTER JA;Lo;0;L;;;;;N;;;;;
+099D;BENGALI LETTER JHA;Lo;0;L;;;;;N;;;;;
+099E;BENGALI LETTER NYA;Lo;0;L;;;;;N;;;;;
+099F;BENGALI LETTER TTA;Lo;0;L;;;;;N;;;;;
+09A0;BENGALI LETTER TTHA;Lo;0;L;;;;;N;;;;;
+09A1;BENGALI LETTER DDA;Lo;0;L;;;;;N;;;;;
+09A2;BENGALI LETTER DDHA;Lo;0;L;;;;;N;;;;;
+09A3;BENGALI LETTER NNA;Lo;0;L;;;;;N;;;;;
+09A4;BENGALI LETTER TA;Lo;0;L;;;;;N;;;;;
+09A5;BENGALI LETTER THA;Lo;0;L;;;;;N;;;;;
+09A6;BENGALI LETTER DA;Lo;0;L;;;;;N;;;;;
+09A7;BENGALI LETTER DHA;Lo;0;L;;;;;N;;;;;
+09A8;BENGALI LETTER NA;Lo;0;L;;;;;N;;;;;
+09AA;BENGALI LETTER PA;Lo;0;L;;;;;N;;;;;
+09AB;BENGALI LETTER PHA;Lo;0;L;;;;;N;;;;;
+09AC;BENGALI LETTER BA;Lo;0;L;;;;;N;;;;;
+09AD;BENGALI LETTER BHA;Lo;0;L;;;;;N;;;;;
+09AE;BENGALI LETTER MA;Lo;0;L;;;;;N;;;;;
+09AF;BENGALI LETTER YA;Lo;0;L;;;;;N;;;;;
+09B0;BENGALI LETTER RA;Lo;0;L;;;;;N;;;;;
+09B2;BENGALI LETTER LA;Lo;0;L;;;;;N;;;;;
+09B6;BENGALI LETTER SHA;Lo;0;L;;;;;N;;;;;
+09B7;BENGALI LETTER SSA;Lo;0;L;;;;;N;;;;;
+09B8;BENGALI LETTER SA;Lo;0;L;;;;;N;;;;;
+09B9;BENGALI LETTER HA;Lo;0;L;;;;;N;;;;;
+09BC;BENGALI SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;
+09BD;BENGALI SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;;
+09BE;BENGALI VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+09BF;BENGALI VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
+09C0;BENGALI VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
+09C1;BENGALI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+09C2;BENGALI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
+09C3;BENGALI VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;;
+09C4;BENGALI VOWEL SIGN VOCALIC RR;Mn;0;NSM;;;;;N;;;;;
+09C7;BENGALI VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
+09C8;BENGALI VOWEL SIGN AI;Mc;0;L;;;;;N;;;;;
+09CB;BENGALI VOWEL SIGN O;Mc;0;L;09C7 09BE;;;;N;;;;;
+09CC;BENGALI VOWEL SIGN AU;Mc;0;L;09C7 09D7;;;;N;;;;;
+09CD;BENGALI SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+09CE;BENGALI LETTER KHANDA TA;Lo;0;L;;;;;N;;;;;
+09D7;BENGALI AU LENGTH MARK;Mc;0;L;;;;;N;;;;;
+09DC;BENGALI LETTER RRA;Lo;0;L;09A1 09BC;;;;N;;;;;
+09DD;BENGALI LETTER RHA;Lo;0;L;09A2 09BC;;;;N;;;;;
+09DF;BENGALI LETTER YYA;Lo;0;L;09AF 09BC;;;;N;;;;;
+09E0;BENGALI LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
+09E1;BENGALI LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
+09E2;BENGALI VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;;
+09E3;BENGALI VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;;
+09E6;BENGALI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+09E7;BENGALI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+09E8;BENGALI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+09E9;BENGALI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+09EA;BENGALI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+09EB;BENGALI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+09EC;BENGALI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+09ED;BENGALI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+09EE;BENGALI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+09EF;BENGALI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+09F0;BENGALI LETTER RA WITH MIDDLE DIAGONAL;Lo;0;L;;;;;N;;Assamese;;;
+09F1;BENGALI LETTER RA WITH LOWER DIAGONAL;Lo;0;L;;;;;N;BENGALI LETTER VA WITH LOWER DIAGONAL;Assamese;;;
+09F2;BENGALI RUPEE MARK;Sc;0;ET;;;;;N;;;;;
+09F3;BENGALI RUPEE SIGN;Sc;0;ET;;;;;N;;;;;
+09F4;BENGALI CURRENCY NUMERATOR ONE;No;0;L;;;;1;N;;;;;
+09F5;BENGALI CURRENCY NUMERATOR TWO;No;0;L;;;;2;N;;;;;
+09F6;BENGALI CURRENCY NUMERATOR THREE;No;0;L;;;;3;N;;;;;
+09F7;BENGALI CURRENCY NUMERATOR FOUR;No;0;L;;;;4;N;;;;;
+09F8;BENGALI CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR;No;0;L;;;;;N;;;;;
+09F9;BENGALI CURRENCY DENOMINATOR SIXTEEN;No;0;L;;;;16;N;;;;;
+09FA;BENGALI ISSHAR;So;0;L;;;;;N;;;;;
+0A01;GURMUKHI SIGN ADAK BINDI;Mn;0;NSM;;;;;N;;;;;
+0A02;GURMUKHI SIGN BINDI;Mn;0;NSM;;;;;N;;;;;
+0A03;GURMUKHI SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+0A05;GURMUKHI LETTER A;Lo;0;L;;;;;N;;;;;
+0A06;GURMUKHI LETTER AA;Lo;0;L;;;;;N;;;;;
+0A07;GURMUKHI LETTER I;Lo;0;L;;;;;N;;;;;
+0A08;GURMUKHI LETTER II;Lo;0;L;;;;;N;;;;;
+0A09;GURMUKHI LETTER U;Lo;0;L;;;;;N;;;;;
+0A0A;GURMUKHI LETTER UU;Lo;0;L;;;;;N;;;;;
+0A0F;GURMUKHI LETTER EE;Lo;0;L;;;;;N;;;;;
+0A10;GURMUKHI LETTER AI;Lo;0;L;;;;;N;;;;;
+0A13;GURMUKHI LETTER OO;Lo;0;L;;;;;N;;;;;
+0A14;GURMUKHI LETTER AU;Lo;0;L;;;;;N;;;;;
+0A15;GURMUKHI LETTER KA;Lo;0;L;;;;;N;;;;;
+0A16;GURMUKHI LETTER KHA;Lo;0;L;;;;;N;;;;;
+0A17;GURMUKHI LETTER GA;Lo;0;L;;;;;N;;;;;
+0A18;GURMUKHI LETTER GHA;Lo;0;L;;;;;N;;;;;
+0A19;GURMUKHI LETTER NGA;Lo;0;L;;;;;N;;;;;
+0A1A;GURMUKHI LETTER CA;Lo;0;L;;;;;N;;;;;
+0A1B;GURMUKHI LETTER CHA;Lo;0;L;;;;;N;;;;;
+0A1C;GURMUKHI LETTER JA;Lo;0;L;;;;;N;;;;;
+0A1D;GURMUKHI LETTER JHA;Lo;0;L;;;;;N;;;;;
+0A1E;GURMUKHI LETTER NYA;Lo;0;L;;;;;N;;;;;
+0A1F;GURMUKHI LETTER TTA;Lo;0;L;;;;;N;;;;;
+0A20;GURMUKHI LETTER TTHA;Lo;0;L;;;;;N;;;;;
+0A21;GURMUKHI LETTER DDA;Lo;0;L;;;;;N;;;;;
+0A22;GURMUKHI LETTER DDHA;Lo;0;L;;;;;N;;;;;
+0A23;GURMUKHI LETTER NNA;Lo;0;L;;;;;N;;;;;
+0A24;GURMUKHI LETTER TA;Lo;0;L;;;;;N;;;;;
+0A25;GURMUKHI LETTER THA;Lo;0;L;;;;;N;;;;;
+0A26;GURMUKHI LETTER DA;Lo;0;L;;;;;N;;;;;
+0A27;GURMUKHI LETTER DHA;Lo;0;L;;;;;N;;;;;
+0A28;GURMUKHI LETTER NA;Lo;0;L;;;;;N;;;;;
+0A2A;GURMUKHI LETTER PA;Lo;0;L;;;;;N;;;;;
+0A2B;GURMUKHI LETTER PHA;Lo;0;L;;;;;N;;;;;
+0A2C;GURMUKHI LETTER BA;Lo;0;L;;;;;N;;;;;
+0A2D;GURMUKHI LETTER BHA;Lo;0;L;;;;;N;;;;;
+0A2E;GURMUKHI LETTER MA;Lo;0;L;;;;;N;;;;;
+0A2F;GURMUKHI LETTER YA;Lo;0;L;;;;;N;;;;;
+0A30;GURMUKHI LETTER RA;Lo;0;L;;;;;N;;;;;
+0A32;GURMUKHI LETTER LA;Lo;0;L;;;;;N;;;;;
+0A33;GURMUKHI LETTER LLA;Lo;0;L;0A32 0A3C;;;;N;;;;;
+0A35;GURMUKHI LETTER VA;Lo;0;L;;;;;N;;;;;
+0A36;GURMUKHI LETTER SHA;Lo;0;L;0A38 0A3C;;;;N;;;;;
+0A38;GURMUKHI LETTER SA;Lo;0;L;;;;;N;;;;;
+0A39;GURMUKHI LETTER HA;Lo;0;L;;;;;N;;;;;
+0A3C;GURMUKHI SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;
+0A3E;GURMUKHI VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+0A3F;GURMUKHI VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
+0A40;GURMUKHI VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
+0A41;GURMUKHI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+0A42;GURMUKHI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
+0A47;GURMUKHI VOWEL SIGN EE;Mn;0;NSM;;;;;N;;;;;
+0A48;GURMUKHI VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;;
+0A4B;GURMUKHI VOWEL SIGN OO;Mn;0;NSM;;;;;N;;;;;
+0A4C;GURMUKHI VOWEL SIGN AU;Mn;0;NSM;;;;;N;;;;;
+0A4D;GURMUKHI SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+0A59;GURMUKHI LETTER KHHA;Lo;0;L;0A16 0A3C;;;;N;;;;;
+0A5A;GURMUKHI LETTER GHHA;Lo;0;L;0A17 0A3C;;;;N;;;;;
+0A5B;GURMUKHI LETTER ZA;Lo;0;L;0A1C 0A3C;;;;N;;;;;
+0A5C;GURMUKHI LETTER RRA;Lo;0;L;;;;;N;;;;;
+0A5E;GURMUKHI LETTER FA;Lo;0;L;0A2B 0A3C;;;;N;;;;;
+0A66;GURMUKHI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+0A67;GURMUKHI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+0A68;GURMUKHI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+0A69;GURMUKHI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+0A6A;GURMUKHI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+0A6B;GURMUKHI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+0A6C;GURMUKHI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+0A6D;GURMUKHI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+0A6E;GURMUKHI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+0A6F;GURMUKHI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+0A70;GURMUKHI TIPPI;Mn;0;NSM;;;;;N;;;;;
+0A71;GURMUKHI ADDAK;Mn;0;NSM;;;;;N;;;;;
+0A72;GURMUKHI IRI;Lo;0;L;;;;;N;;;;;
+0A73;GURMUKHI URA;Lo;0;L;;;;;N;;;;;
+0A74;GURMUKHI EK ONKAR;Lo;0;L;;;;;N;;;;;
+0A81;GUJARATI SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
+0A82;GUJARATI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
+0A83;GUJARATI SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+0A85;GUJARATI LETTER A;Lo;0;L;;;;;N;;;;;
+0A86;GUJARATI LETTER AA;Lo;0;L;;;;;N;;;;;
+0A87;GUJARATI LETTER I;Lo;0;L;;;;;N;;;;;
+0A88;GUJARATI LETTER II;Lo;0;L;;;;;N;;;;;
+0A89;GUJARATI LETTER U;Lo;0;L;;;;;N;;;;;
+0A8A;GUJARATI LETTER UU;Lo;0;L;;;;;N;;;;;
+0A8B;GUJARATI LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
+0A8C;GUJARATI LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
+0A8D;GUJARATI VOWEL CANDRA E;Lo;0;L;;;;;N;;;;;
+0A8F;GUJARATI LETTER E;Lo;0;L;;;;;N;;;;;
+0A90;GUJARATI LETTER AI;Lo;0;L;;;;;N;;;;;
+0A91;GUJARATI VOWEL CANDRA O;Lo;0;L;;;;;N;;;;;
+0A93;GUJARATI LETTER O;Lo;0;L;;;;;N;;;;;
+0A94;GUJARATI LETTER AU;Lo;0;L;;;;;N;;;;;
+0A95;GUJARATI LETTER KA;Lo;0;L;;;;;N;;;;;
+0A96;GUJARATI LETTER KHA;Lo;0;L;;;;;N;;;;;
+0A97;GUJARATI LETTER GA;Lo;0;L;;;;;N;;;;;
+0A98;GUJARATI LETTER GHA;Lo;0;L;;;;;N;;;;;
+0A99;GUJARATI LETTER NGA;Lo;0;L;;;;;N;;;;;
+0A9A;GUJARATI LETTER CA;Lo;0;L;;;;;N;;;;;
+0A9B;GUJARATI LETTER CHA;Lo;0;L;;;;;N;;;;;
+0A9C;GUJARATI LETTER JA;Lo;0;L;;;;;N;;;;;
+0A9D;GUJARATI LETTER JHA;Lo;0;L;;;;;N;;;;;
+0A9E;GUJARATI LETTER NYA;Lo;0;L;;;;;N;;;;;
+0A9F;GUJARATI LETTER TTA;Lo;0;L;;;;;N;;;;;
+0AA0;GUJARATI LETTER TTHA;Lo;0;L;;;;;N;;;;;
+0AA1;GUJARATI LETTER DDA;Lo;0;L;;;;;N;;;;;
+0AA2;GUJARATI LETTER DDHA;Lo;0;L;;;;;N;;;;;
+0AA3;GUJARATI LETTER NNA;Lo;0;L;;;;;N;;;;;
+0AA4;GUJARATI LETTER TA;Lo;0;L;;;;;N;;;;;
+0AA5;GUJARATI LETTER THA;Lo;0;L;;;;;N;;;;;
+0AA6;GUJARATI LETTER DA;Lo;0;L;;;;;N;;;;;
+0AA7;GUJARATI LETTER DHA;Lo;0;L;;;;;N;;;;;
+0AA8;GUJARATI LETTER NA;Lo;0;L;;;;;N;;;;;
+0AAA;GUJARATI LETTER PA;Lo;0;L;;;;;N;;;;;
+0AAB;GUJARATI LETTER PHA;Lo;0;L;;;;;N;;;;;
+0AAC;GUJARATI LETTER BA;Lo;0;L;;;;;N;;;;;
+0AAD;GUJARATI LETTER BHA;Lo;0;L;;;;;N;;;;;
+0AAE;GUJARATI LETTER MA;Lo;0;L;;;;;N;;;;;
+0AAF;GUJARATI LETTER YA;Lo;0;L;;;;;N;;;;;
+0AB0;GUJARATI LETTER RA;Lo;0;L;;;;;N;;;;;
+0AB2;GUJARATI LETTER LA;Lo;0;L;;;;;N;;;;;
+0AB3;GUJARATI LETTER LLA;Lo;0;L;;;;;N;;;;;
+0AB5;GUJARATI LETTER VA;Lo;0;L;;;;;N;;;;;
+0AB6;GUJARATI LETTER SHA;Lo;0;L;;;;;N;;;;;
+0AB7;GUJARATI LETTER SSA;Lo;0;L;;;;;N;;;;;
+0AB8;GUJARATI LETTER SA;Lo;0;L;;;;;N;;;;;
+0AB9;GUJARATI LETTER HA;Lo;0;L;;;;;N;;;;;
+0ABC;GUJARATI SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;
+0ABD;GUJARATI SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;;
+0ABE;GUJARATI VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+0ABF;GUJARATI VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
+0AC0;GUJARATI VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
+0AC1;GUJARATI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+0AC2;GUJARATI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
+0AC3;GUJARATI VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;;
+0AC4;GUJARATI VOWEL SIGN VOCALIC RR;Mn;0;NSM;;;;;N;;;;;
+0AC5;GUJARATI VOWEL SIGN CANDRA E;Mn;0;NSM;;;;;N;;;;;
+0AC7;GUJARATI VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;;
+0AC8;GUJARATI VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;;
+0AC9;GUJARATI VOWEL SIGN CANDRA O;Mc;0;L;;;;;N;;;;;
+0ACB;GUJARATI VOWEL SIGN O;Mc;0;L;;;;;N;;;;;
+0ACC;GUJARATI VOWEL SIGN AU;Mc;0;L;;;;;N;;;;;
+0ACD;GUJARATI SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+0AD0;GUJARATI OM;Lo;0;L;;;;;N;;;;;
+0AE0;GUJARATI LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
+0AE1;GUJARATI LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
+0AE2;GUJARATI VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;;
+0AE3;GUJARATI VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;;
+0AE6;GUJARATI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+0AE7;GUJARATI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+0AE8;GUJARATI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+0AE9;GUJARATI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+0AEA;GUJARATI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+0AEB;GUJARATI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+0AEC;GUJARATI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+0AED;GUJARATI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+0AEE;GUJARATI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+0AEF;GUJARATI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+0AF1;GUJARATI RUPEE SIGN;Sc;0;ET;;;;;N;;;;;
+0B01;ORIYA SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
+0B02;ORIYA SIGN ANUSVARA;Mc;0;L;;;;;N;;;;;
+0B03;ORIYA SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+0B05;ORIYA LETTER A;Lo;0;L;;;;;N;;;;;
+0B06;ORIYA LETTER AA;Lo;0;L;;;;;N;;;;;
+0B07;ORIYA LETTER I;Lo;0;L;;;;;N;;;;;
+0B08;ORIYA LETTER II;Lo;0;L;;;;;N;;;;;
+0B09;ORIYA LETTER U;Lo;0;L;;;;;N;;;;;
+0B0A;ORIYA LETTER UU;Lo;0;L;;;;;N;;;;;
+0B0B;ORIYA LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
+0B0C;ORIYA LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
+0B0F;ORIYA LETTER E;Lo;0;L;;;;;N;;;;;
+0B10;ORIYA LETTER AI;Lo;0;L;;;;;N;;;;;
+0B13;ORIYA LETTER O;Lo;0;L;;;;;N;;;;;
+0B14;ORIYA LETTER AU;Lo;0;L;;;;;N;;;;;
+0B15;ORIYA LETTER KA;Lo;0;L;;;;;N;;;;;
+0B16;ORIYA LETTER KHA;Lo;0;L;;;;;N;;;;;
+0B17;ORIYA LETTER GA;Lo;0;L;;;;;N;;;;;
+0B18;ORIYA LETTER GHA;Lo;0;L;;;;;N;;;;;
+0B19;ORIYA LETTER NGA;Lo;0;L;;;;;N;;;;;
+0B1A;ORIYA LETTER CA;Lo;0;L;;;;;N;;;;;
+0B1B;ORIYA LETTER CHA;Lo;0;L;;;;;N;;;;;
+0B1C;ORIYA LETTER JA;Lo;0;L;;;;;N;;;;;
+0B1D;ORIYA LETTER JHA;Lo;0;L;;;;;N;;;;;
+0B1E;ORIYA LETTER NYA;Lo;0;L;;;;;N;;;;;
+0B1F;ORIYA LETTER TTA;Lo;0;L;;;;;N;;;;;
+0B20;ORIYA LETTER TTHA;Lo;0;L;;;;;N;;;;;
+0B21;ORIYA LETTER DDA;Lo;0;L;;;;;N;;;;;
+0B22;ORIYA LETTER DDHA;Lo;0;L;;;;;N;;;;;
+0B23;ORIYA LETTER NNA;Lo;0;L;;;;;N;;;;;
+0B24;ORIYA LETTER TA;Lo;0;L;;;;;N;;;;;
+0B25;ORIYA LETTER THA;Lo;0;L;;;;;N;;;;;
+0B26;ORIYA LETTER DA;Lo;0;L;;;;;N;;;;;
+0B27;ORIYA LETTER DHA;Lo;0;L;;;;;N;;;;;
+0B28;ORIYA LETTER NA;Lo;0;L;;;;;N;;;;;
+0B2A;ORIYA LETTER PA;Lo;0;L;;;;;N;;;;;
+0B2B;ORIYA LETTER PHA;Lo;0;L;;;;;N;;;;;
+0B2C;ORIYA LETTER BA;Lo;0;L;;;;;N;;;;;
+0B2D;ORIYA LETTER BHA;Lo;0;L;;;;;N;;;;;
+0B2E;ORIYA LETTER MA;Lo;0;L;;;;;N;;;;;
+0B2F;ORIYA LETTER YA;Lo;0;L;;;;;N;;;;;
+0B30;ORIYA LETTER RA;Lo;0;L;;;;;N;;;;;
+0B32;ORIYA LETTER LA;Lo;0;L;;;;;N;;;;;
+0B33;ORIYA LETTER LLA;Lo;0;L;;;;;N;;;;;
+0B35;ORIYA LETTER VA;Lo;0;L;;;;;N;;;;;
+0B36;ORIYA LETTER SHA;Lo;0;L;;;;;N;;;;;
+0B37;ORIYA LETTER SSA;Lo;0;L;;;;;N;;;;;
+0B38;ORIYA LETTER SA;Lo;0;L;;;;;N;;;;;
+0B39;ORIYA LETTER HA;Lo;0;L;;;;;N;;;;;
+0B3C;ORIYA SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;
+0B3D;ORIYA SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;;
+0B3E;ORIYA VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+0B3F;ORIYA VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
+0B40;ORIYA VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
+0B41;ORIYA VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+0B42;ORIYA VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
+0B43;ORIYA VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;;
+0B47;ORIYA VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
+0B48;ORIYA VOWEL SIGN AI;Mc;0;L;0B47 0B56;;;;N;;;;;
+0B4B;ORIYA VOWEL SIGN O;Mc;0;L;0B47 0B3E;;;;N;;;;;
+0B4C;ORIYA VOWEL SIGN AU;Mc;0;L;0B47 0B57;;;;N;;;;;
+0B4D;ORIYA SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+0B56;ORIYA AI LENGTH MARK;Mn;0;NSM;;;;;N;;;;;
+0B57;ORIYA AU LENGTH MARK;Mc;0;L;;;;;N;;;;;
+0B5C;ORIYA LETTER RRA;Lo;0;L;0B21 0B3C;;;;N;;;;;
+0B5D;ORIYA LETTER RHA;Lo;0;L;0B22 0B3C;;;;N;;;;;
+0B5F;ORIYA LETTER YYA;Lo;0;L;;;;;N;;;;;
+0B60;ORIYA LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
+0B61;ORIYA LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
+0B66;ORIYA DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+0B67;ORIYA DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+0B68;ORIYA DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+0B69;ORIYA DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+0B6A;ORIYA DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+0B6B;ORIYA DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+0B6C;ORIYA DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+0B6D;ORIYA DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+0B6E;ORIYA DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+0B6F;ORIYA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+0B70;ORIYA ISSHAR;So;0;L;;;;;N;;;;;
+0B71;ORIYA LETTER WA;Lo;0;L;;;;;N;;;;;
+0B82;TAMIL SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
+0B83;TAMIL SIGN VISARGA;Lo;0;L;;;;;N;;;;;
+0B85;TAMIL LETTER A;Lo;0;L;;;;;N;;;;;
+0B86;TAMIL LETTER AA;Lo;0;L;;;;;N;;;;;
+0B87;TAMIL LETTER I;Lo;0;L;;;;;N;;;;;
+0B88;TAMIL LETTER II;Lo;0;L;;;;;N;;;;;
+0B89;TAMIL LETTER U;Lo;0;L;;;;;N;;;;;
+0B8A;TAMIL LETTER UU;Lo;0;L;;;;;N;;;;;
+0B8E;TAMIL LETTER E;Lo;0;L;;;;;N;;;;;
+0B8F;TAMIL LETTER EE;Lo;0;L;;;;;N;;;;;
+0B90;TAMIL LETTER AI;Lo;0;L;;;;;N;;;;;
+0B92;TAMIL LETTER O;Lo;0;L;;;;;N;;;;;
+0B93;TAMIL LETTER OO;Lo;0;L;;;;;N;;;;;
+0B94;TAMIL LETTER AU;Lo;0;L;0B92 0BD7;;;;N;;;;;
+0B95;TAMIL LETTER KA;Lo;0;L;;;;;N;;;;;
+0B99;TAMIL LETTER NGA;Lo;0;L;;;;;N;;;;;
+0B9A;TAMIL LETTER CA;Lo;0;L;;;;;N;;;;;
+0B9C;TAMIL LETTER JA;Lo;0;L;;;;;N;;;;;
+0B9E;TAMIL LETTER NYA;Lo;0;L;;;;;N;;;;;
+0B9F;TAMIL LETTER TTA;Lo;0;L;;;;;N;;;;;
+0BA3;TAMIL LETTER NNA;Lo;0;L;;;;;N;;;;;
+0BA4;TAMIL LETTER TA;Lo;0;L;;;;;N;;;;;
+0BA8;TAMIL LETTER NA;Lo;0;L;;;;;N;;;;;
+0BA9;TAMIL LETTER NNNA;Lo;0;L;;;;;N;;;;;
+0BAA;TAMIL LETTER PA;Lo;0;L;;;;;N;;;;;
+0BAE;TAMIL LETTER MA;Lo;0;L;;;;;N;;;;;
+0BAF;TAMIL LETTER YA;Lo;0;L;;;;;N;;;;;
+0BB0;TAMIL LETTER RA;Lo;0;L;;;;;N;;;;;
+0BB1;TAMIL LETTER RRA;Lo;0;L;;;;;N;;;;;
+0BB2;TAMIL LETTER LA;Lo;0;L;;;;;N;;;;;
+0BB3;TAMIL LETTER LLA;Lo;0;L;;;;;N;;;;;
+0BB4;TAMIL LETTER LLLA;Lo;0;L;;;;;N;;;;;
+0BB5;TAMIL LETTER VA;Lo;0;L;;;;;N;;;;;
+0BB6;TAMIL LETTER SHA;Lo;0;L;;;;;N;;;;;
+0BB7;TAMIL LETTER SSA;Lo;0;L;;;;;N;;;;;
+0BB8;TAMIL LETTER SA;Lo;0;L;;;;;N;;;;;
+0BB9;TAMIL LETTER HA;Lo;0;L;;;;;N;;;;;
+0BBE;TAMIL VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+0BBF;TAMIL VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
+0BC0;TAMIL VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;;
+0BC1;TAMIL VOWEL SIGN U;Mc;0;L;;;;;N;;;;;
+0BC2;TAMIL VOWEL SIGN UU;Mc;0;L;;;;;N;;;;;
+0BC6;TAMIL VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
+0BC7;TAMIL VOWEL SIGN EE;Mc;0;L;;;;;N;;;;;
+0BC8;TAMIL VOWEL SIGN AI;Mc;0;L;;;;;N;;;;;
+0BCA;TAMIL VOWEL SIGN O;Mc;0;L;0BC6 0BBE;;;;N;;;;;
+0BCB;TAMIL VOWEL SIGN OO;Mc;0;L;0BC7 0BBE;;;;N;;;;;
+0BCC;TAMIL VOWEL SIGN AU;Mc;0;L;0BC6 0BD7;;;;N;;;;;
+0BCD;TAMIL SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+0BD7;TAMIL AU LENGTH MARK;Mc;0;L;;;;;N;;;;;
+0BE6;TAMIL DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+0BE7;TAMIL DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+0BE8;TAMIL DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+0BE9;TAMIL DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+0BEA;TAMIL DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+0BEB;TAMIL DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+0BEC;TAMIL DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+0BED;TAMIL DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+0BEE;TAMIL DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+0BEF;TAMIL DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+0BF0;TAMIL NUMBER TEN;No;0;L;;;;10;N;;;;;
+0BF1;TAMIL NUMBER ONE HUNDRED;No;0;L;;;;100;N;;;;;
+0BF2;TAMIL NUMBER ONE THOUSAND;No;0;L;;;;1000;N;;;;;
+0BF3;TAMIL DAY SIGN;So;0;ON;;;;;N;;Naal;;;
+0BF4;TAMIL MONTH SIGN;So;0;ON;;;;;N;;Maatham;;;
+0BF5;TAMIL YEAR SIGN;So;0;ON;;;;;N;;Varudam;;;
+0BF6;TAMIL DEBIT SIGN;So;0;ON;;;;;N;;Patru;;;
+0BF7;TAMIL CREDIT SIGN;So;0;ON;;;;;N;;Varavu;;;
+0BF8;TAMIL AS ABOVE SIGN;So;0;ON;;;;;N;;Merpadi;;;
+0BF9;TAMIL RUPEE SIGN;Sc;0;ET;;;;;N;;Rupai;;;
+0BFA;TAMIL NUMBER SIGN;So;0;ON;;;;;N;;Enn;;;
+0C01;TELUGU SIGN CANDRABINDU;Mc;0;L;;;;;N;;;;;
+0C02;TELUGU SIGN ANUSVARA;Mc;0;L;;;;;N;;;;;
+0C03;TELUGU SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+0C05;TELUGU LETTER A;Lo;0;L;;;;;N;;;;;
+0C06;TELUGU LETTER AA;Lo;0;L;;;;;N;;;;;
+0C07;TELUGU LETTER I;Lo;0;L;;;;;N;;;;;
+0C08;TELUGU LETTER II;Lo;0;L;;;;;N;;;;;
+0C09;TELUGU LETTER U;Lo;0;L;;;;;N;;;;;
+0C0A;TELUGU LETTER UU;Lo;0;L;;;;;N;;;;;
+0C0B;TELUGU LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
+0C0C;TELUGU LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
+0C0E;TELUGU LETTER E;Lo;0;L;;;;;N;;;;;
+0C0F;TELUGU LETTER EE;Lo;0;L;;;;;N;;;;;
+0C10;TELUGU LETTER AI;Lo;0;L;;;;;N;;;;;
+0C12;TELUGU LETTER O;Lo;0;L;;;;;N;;;;;
+0C13;TELUGU LETTER OO;Lo;0;L;;;;;N;;;;;
+0C14;TELUGU LETTER AU;Lo;0;L;;;;;N;;;;;
+0C15;TELUGU LETTER KA;Lo;0;L;;;;;N;;;;;
+0C16;TELUGU LETTER KHA;Lo;0;L;;;;;N;;;;;
+0C17;TELUGU LETTER GA;Lo;0;L;;;;;N;;;;;
+0C18;TELUGU LETTER GHA;Lo;0;L;;;;;N;;;;;
+0C19;TELUGU LETTER NGA;Lo;0;L;;;;;N;;;;;
+0C1A;TELUGU LETTER CA;Lo;0;L;;;;;N;;;;;
+0C1B;TELUGU LETTER CHA;Lo;0;L;;;;;N;;;;;
+0C1C;TELUGU LETTER JA;Lo;0;L;;;;;N;;;;;
+0C1D;TELUGU LETTER JHA;Lo;0;L;;;;;N;;;;;
+0C1E;TELUGU LETTER NYA;Lo;0;L;;;;;N;;;;;
+0C1F;TELUGU LETTER TTA;Lo;0;L;;;;;N;;;;;
+0C20;TELUGU LETTER TTHA;Lo;0;L;;;;;N;;;;;
+0C21;TELUGU LETTER DDA;Lo;0;L;;;;;N;;;;;
+0C22;TELUGU LETTER DDHA;Lo;0;L;;;;;N;;;;;
+0C23;TELUGU LETTER NNA;Lo;0;L;;;;;N;;;;;
+0C24;TELUGU LETTER TA;Lo;0;L;;;;;N;;;;;
+0C25;TELUGU LETTER THA;Lo;0;L;;;;;N;;;;;
+0C26;TELUGU LETTER DA;Lo;0;L;;;;;N;;;;;
+0C27;TELUGU LETTER DHA;Lo;0;L;;;;;N;;;;;
+0C28;TELUGU LETTER NA;Lo;0;L;;;;;N;;;;;
+0C2A;TELUGU LETTER PA;Lo;0;L;;;;;N;;;;;
+0C2B;TELUGU LETTER PHA;Lo;0;L;;;;;N;;;;;
+0C2C;TELUGU LETTER BA;Lo;0;L;;;;;N;;;;;
+0C2D;TELUGU LETTER BHA;Lo;0;L;;;;;N;;;;;
+0C2E;TELUGU LETTER MA;Lo;0;L;;;;;N;;;;;
+0C2F;TELUGU LETTER YA;Lo;0;L;;;;;N;;;;;
+0C30;TELUGU LETTER RA;Lo;0;L;;;;;N;;;;;
+0C31;TELUGU LETTER RRA;Lo;0;L;;;;;N;;;;;
+0C32;TELUGU LETTER LA;Lo;0;L;;;;;N;;;;;
+0C33;TELUGU LETTER LLA;Lo;0;L;;;;;N;;;;;
+0C35;TELUGU LETTER VA;Lo;0;L;;;;;N;;;;;
+0C36;TELUGU LETTER SHA;Lo;0;L;;;;;N;;;;;
+0C37;TELUGU LETTER SSA;Lo;0;L;;;;;N;;;;;
+0C38;TELUGU LETTER SA;Lo;0;L;;;;;N;;;;;
+0C39;TELUGU LETTER HA;Lo;0;L;;;;;N;;;;;
+0C3E;TELUGU VOWEL SIGN AA;Mn;0;NSM;;;;;N;;;;;
+0C3F;TELUGU VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
+0C40;TELUGU VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;;
+0C41;TELUGU VOWEL SIGN U;Mc;0;L;;;;;N;;;;;
+0C42;TELUGU VOWEL SIGN UU;Mc;0;L;;;;;N;;;;;
+0C43;TELUGU VOWEL SIGN VOCALIC R;Mc;0;L;;;;;N;;;;;
+0C44;TELUGU VOWEL SIGN VOCALIC RR;Mc;0;L;;;;;N;;;;;
+0C46;TELUGU VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;;
+0C47;TELUGU VOWEL SIGN EE;Mn;0;NSM;;;;;N;;;;;
+0C48;TELUGU VOWEL SIGN AI;Mn;0;NSM;0C46 0C56;;;;N;;;;;
+0C4A;TELUGU VOWEL SIGN O;Mn;0;NSM;;;;;N;;;;;
+0C4B;TELUGU VOWEL SIGN OO;Mn;0;NSM;;;;;N;;;;;
+0C4C;TELUGU VOWEL SIGN AU;Mn;0;NSM;;;;;N;;;;;
+0C4D;TELUGU SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+0C55;TELUGU LENGTH MARK;Mn;84;NSM;;;;;N;;;;;
+0C56;TELUGU AI LENGTH MARK;Mn;91;NSM;;;;;N;;;;;
+0C60;TELUGU LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
+0C61;TELUGU LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
+0C66;TELUGU DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+0C67;TELUGU DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+0C68;TELUGU DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+0C69;TELUGU DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+0C6A;TELUGU DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+0C6B;TELUGU DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+0C6C;TELUGU DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+0C6D;TELUGU DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+0C6E;TELUGU DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+0C6F;TELUGU DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+0C82;KANNADA SIGN ANUSVARA;Mc;0;L;;;;;N;;;;;
+0C83;KANNADA SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+0C85;KANNADA LETTER A;Lo;0;L;;;;;N;;;;;
+0C86;KANNADA LETTER AA;Lo;0;L;;;;;N;;;;;
+0C87;KANNADA LETTER I;Lo;0;L;;;;;N;;;;;
+0C88;KANNADA LETTER II;Lo;0;L;;;;;N;;;;;
+0C89;KANNADA LETTER U;Lo;0;L;;;;;N;;;;;
+0C8A;KANNADA LETTER UU;Lo;0;L;;;;;N;;;;;
+0C8B;KANNADA LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
+0C8C;KANNADA LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
+0C8E;KANNADA LETTER E;Lo;0;L;;;;;N;;;;;
+0C8F;KANNADA LETTER EE;Lo;0;L;;;;;N;;;;;
+0C90;KANNADA LETTER AI;Lo;0;L;;;;;N;;;;;
+0C92;KANNADA LETTER O;Lo;0;L;;;;;N;;;;;
+0C93;KANNADA LETTER OO;Lo;0;L;;;;;N;;;;;
+0C94;KANNADA LETTER AU;Lo;0;L;;;;;N;;;;;
+0C95;KANNADA LETTER KA;Lo;0;L;;;;;N;;;;;
+0C96;KANNADA LETTER KHA;Lo;0;L;;;;;N;;;;;
+0C97;KANNADA LETTER GA;Lo;0;L;;;;;N;;;;;
+0C98;KANNADA LETTER GHA;Lo;0;L;;;;;N;;;;;
+0C99;KANNADA LETTER NGA;Lo;0;L;;;;;N;;;;;
+0C9A;KANNADA LETTER CA;Lo;0;L;;;;;N;;;;;
+0C9B;KANNADA LETTER CHA;Lo;0;L;;;;;N;;;;;
+0C9C;KANNADA LETTER JA;Lo;0;L;;;;;N;;;;;
+0C9D;KANNADA LETTER JHA;Lo;0;L;;;;;N;;;;;
+0C9E;KANNADA LETTER NYA;Lo;0;L;;;;;N;;;;;
+0C9F;KANNADA LETTER TTA;Lo;0;L;;;;;N;;;;;
+0CA0;KANNADA LETTER TTHA;Lo;0;L;;;;;N;;;;;
+0CA1;KANNADA LETTER DDA;Lo;0;L;;;;;N;;;;;
+0CA2;KANNADA LETTER DDHA;Lo;0;L;;;;;N;;;;;
+0CA3;KANNADA LETTER NNA;Lo;0;L;;;;;N;;;;;
+0CA4;KANNADA LETTER TA;Lo;0;L;;;;;N;;;;;
+0CA5;KANNADA LETTER THA;Lo;0;L;;;;;N;;;;;
+0CA6;KANNADA LETTER DA;Lo;0;L;;;;;N;;;;;
+0CA7;KANNADA LETTER DHA;Lo;0;L;;;;;N;;;;;
+0CA8;KANNADA LETTER NA;Lo;0;L;;;;;N;;;;;
+0CAA;KANNADA LETTER PA;Lo;0;L;;;;;N;;;;;
+0CAB;KANNADA LETTER PHA;Lo;0;L;;;;;N;;;;;
+0CAC;KANNADA LETTER BA;Lo;0;L;;;;;N;;;;;
+0CAD;KANNADA LETTER BHA;Lo;0;L;;;;;N;;;;;
+0CAE;KANNADA LETTER MA;Lo;0;L;;;;;N;;;;;
+0CAF;KANNADA LETTER YA;Lo;0;L;;;;;N;;;;;
+0CB0;KANNADA LETTER RA;Lo;0;L;;;;;N;;;;;
+0CB1;KANNADA LETTER RRA;Lo;0;L;;;;;N;;;;;
+0CB2;KANNADA LETTER LA;Lo;0;L;;;;;N;;;;;
+0CB3;KANNADA LETTER LLA;Lo;0;L;;;;;N;;;;;
+0CB5;KANNADA LETTER VA;Lo;0;L;;;;;N;;;;;
+0CB6;KANNADA LETTER SHA;Lo;0;L;;;;;N;;;;;
+0CB7;KANNADA LETTER SSA;Lo;0;L;;;;;N;;;;;
+0CB8;KANNADA LETTER SA;Lo;0;L;;;;;N;;;;;
+0CB9;KANNADA LETTER HA;Lo;0;L;;;;;N;;;;;
+0CBC;KANNADA SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;
+0CBD;KANNADA SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;;
+0CBE;KANNADA VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+0CBF;KANNADA VOWEL SIGN I;Mn;0;L;;;;;N;;;;;
+0CC0;KANNADA VOWEL SIGN II;Mc;0;L;0CBF 0CD5;;;;N;;;;;
+0CC1;KANNADA VOWEL SIGN U;Mc;0;L;;;;;N;;;;;
+0CC2;KANNADA VOWEL SIGN UU;Mc;0;L;;;;;N;;;;;
+0CC3;KANNADA VOWEL SIGN VOCALIC R;Mc;0;L;;;;;N;;;;;
+0CC4;KANNADA VOWEL SIGN VOCALIC RR;Mc;0;L;;;;;N;;;;;
+0CC6;KANNADA VOWEL SIGN E;Mn;0;L;;;;;N;;;;;
+0CC7;KANNADA VOWEL SIGN EE;Mc;0;L;0CC6 0CD5;;;;N;;;;;
+0CC8;KANNADA VOWEL SIGN AI;Mc;0;L;0CC6 0CD6;;;;N;;;;;
+0CCA;KANNADA VOWEL SIGN O;Mc;0;L;0CC6 0CC2;;;;N;;;;;
+0CCB;KANNADA VOWEL SIGN OO;Mc;0;L;0CCA 0CD5;;;;N;;;;;
+0CCC;KANNADA VOWEL SIGN AU;Mn;0;NSM;;;;;N;;;;;
+0CCD;KANNADA SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+0CD5;KANNADA LENGTH MARK;Mc;0;L;;;;;N;;;;;
+0CD6;KANNADA AI LENGTH MARK;Mc;0;L;;;;;N;;;;;
+0CDE;KANNADA LETTER FA;Lo;0;L;;;;;N;;;;;
+0CE0;KANNADA LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
+0CE1;KANNADA LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
+0CE2;KANNADA VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;;
+0CE3;KANNADA VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;;
+0CE6;KANNADA DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+0CE7;KANNADA DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+0CE8;KANNADA DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+0CE9;KANNADA DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+0CEA;KANNADA DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+0CEB;KANNADA DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+0CEC;KANNADA DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+0CED;KANNADA DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+0CEE;KANNADA DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+0CEF;KANNADA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+0CF1;KANNADA SIGN JIHVAMULIYA;So;0;ON;;;;;N;;;;;
+0CF2;KANNADA SIGN UPADHMANIYA;So;0;ON;;;;;N;;;;;
+0D02;MALAYALAM SIGN ANUSVARA;Mc;0;L;;;;;N;;;;;
+0D03;MALAYALAM SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+0D05;MALAYALAM LETTER A;Lo;0;L;;;;;N;;;;;
+0D06;MALAYALAM LETTER AA;Lo;0;L;;;;;N;;;;;
+0D07;MALAYALAM LETTER I;Lo;0;L;;;;;N;;;;;
+0D08;MALAYALAM LETTER II;Lo;0;L;;;;;N;;;;;
+0D09;MALAYALAM LETTER U;Lo;0;L;;;;;N;;;;;
+0D0A;MALAYALAM LETTER UU;Lo;0;L;;;;;N;;;;;
+0D0B;MALAYALAM LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
+0D0C;MALAYALAM LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
+0D0E;MALAYALAM LETTER E;Lo;0;L;;;;;N;;;;;
+0D0F;MALAYALAM LETTER EE;Lo;0;L;;;;;N;;;;;
+0D10;MALAYALAM LETTER AI;Lo;0;L;;;;;N;;;;;
+0D12;MALAYALAM LETTER O;Lo;0;L;;;;;N;;;;;
+0D13;MALAYALAM LETTER OO;Lo;0;L;;;;;N;;;;;
+0D14;MALAYALAM LETTER AU;Lo;0;L;;;;;N;;;;;
+0D15;MALAYALAM LETTER KA;Lo;0;L;;;;;N;;;;;
+0D16;MALAYALAM LETTER KHA;Lo;0;L;;;;;N;;;;;
+0D17;MALAYALAM LETTER GA;Lo;0;L;;;;;N;;;;;
+0D18;MALAYALAM LETTER GHA;Lo;0;L;;;;;N;;;;;
+0D19;MALAYALAM LETTER NGA;Lo;0;L;;;;;N;;;;;
+0D1A;MALAYALAM LETTER CA;Lo;0;L;;;;;N;;;;;
+0D1B;MALAYALAM LETTER CHA;Lo;0;L;;;;;N;;;;;
+0D1C;MALAYALAM LETTER JA;Lo;0;L;;;;;N;;;;;
+0D1D;MALAYALAM LETTER JHA;Lo;0;L;;;;;N;;;;;
+0D1E;MALAYALAM LETTER NYA;Lo;0;L;;;;;N;;;;;
+0D1F;MALAYALAM LETTER TTA;Lo;0;L;;;;;N;;;;;
+0D20;MALAYALAM LETTER TTHA;Lo;0;L;;;;;N;;;;;
+0D21;MALAYALAM LETTER DDA;Lo;0;L;;;;;N;;;;;
+0D22;MALAYALAM LETTER DDHA;Lo;0;L;;;;;N;;;;;
+0D23;MALAYALAM LETTER NNA;Lo;0;L;;;;;N;;;;;
+0D24;MALAYALAM LETTER TA;Lo;0;L;;;;;N;;;;;
+0D25;MALAYALAM LETTER THA;Lo;0;L;;;;;N;;;;;
+0D26;MALAYALAM LETTER DA;Lo;0;L;;;;;N;;;;;
+0D27;MALAYALAM LETTER DHA;Lo;0;L;;;;;N;;;;;
+0D28;MALAYALAM LETTER NA;Lo;0;L;;;;;N;;;;;
+0D2A;MALAYALAM LETTER PA;Lo;0;L;;;;;N;;;;;
+0D2B;MALAYALAM LETTER PHA;Lo;0;L;;;;;N;;;;;
+0D2C;MALAYALAM LETTER BA;Lo;0;L;;;;;N;;;;;
+0D2D;MALAYALAM LETTER BHA;Lo;0;L;;;;;N;;;;;
+0D2E;MALAYALAM LETTER MA;Lo;0;L;;;;;N;;;;;
+0D2F;MALAYALAM LETTER YA;Lo;0;L;;;;;N;;;;;
+0D30;MALAYALAM LETTER RA;Lo;0;L;;;;;N;;;;;
+0D31;MALAYALAM LETTER RRA;Lo;0;L;;;;;N;;;;;
+0D32;MALAYALAM LETTER LA;Lo;0;L;;;;;N;;;;;
+0D33;MALAYALAM LETTER LLA;Lo;0;L;;;;;N;;;;;
+0D34;MALAYALAM LETTER LLLA;Lo;0;L;;;;;N;;;;;
+0D35;MALAYALAM LETTER VA;Lo;0;L;;;;;N;;;;;
+0D36;MALAYALAM LETTER SHA;Lo;0;L;;;;;N;;;;;
+0D37;MALAYALAM LETTER SSA;Lo;0;L;;;;;N;;;;;
+0D38;MALAYALAM LETTER SA;Lo;0;L;;;;;N;;;;;
+0D39;MALAYALAM LETTER HA;Lo;0;L;;;;;N;;;;;
+0D3E;MALAYALAM VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+0D3F;MALAYALAM VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
+0D40;MALAYALAM VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
+0D41;MALAYALAM VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+0D42;MALAYALAM VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
+0D43;MALAYALAM VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;;
+0D46;MALAYALAM VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
+0D47;MALAYALAM VOWEL SIGN EE;Mc;0;L;;;;;N;;;;;
+0D48;MALAYALAM VOWEL SIGN AI;Mc;0;L;;;;;N;;;;;
+0D4A;MALAYALAM VOWEL SIGN O;Mc;0;L;0D46 0D3E;;;;N;;;;;
+0D4B;MALAYALAM VOWEL SIGN OO;Mc;0;L;0D47 0D3E;;;;N;;;;;
+0D4C;MALAYALAM VOWEL SIGN AU;Mc;0;L;0D46 0D57;;;;N;;;;;
+0D4D;MALAYALAM SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+0D57;MALAYALAM AU LENGTH MARK;Mc;0;L;;;;;N;;;;;
+0D60;MALAYALAM LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
+0D61;MALAYALAM LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
+0D66;MALAYALAM DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+0D67;MALAYALAM DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+0D68;MALAYALAM DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+0D69;MALAYALAM DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+0D6A;MALAYALAM DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+0D6B;MALAYALAM DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+0D6C;MALAYALAM DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+0D6D;MALAYALAM DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+0D6E;MALAYALAM DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+0D6F;MALAYALAM DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+0D82;SINHALA SIGN ANUSVARAYA;Mc;0;L;;;;;N;;;;;
+0D83;SINHALA SIGN VISARGAYA;Mc;0;L;;;;;N;;;;;
+0D85;SINHALA LETTER AYANNA;Lo;0;L;;;;;N;;;;;
+0D86;SINHALA LETTER AAYANNA;Lo;0;L;;;;;N;;;;;
+0D87;SINHALA LETTER AEYANNA;Lo;0;L;;;;;N;;;;;
+0D88;SINHALA LETTER AEEYANNA;Lo;0;L;;;;;N;;;;;
+0D89;SINHALA LETTER IYANNA;Lo;0;L;;;;;N;;;;;
+0D8A;SINHALA LETTER IIYANNA;Lo;0;L;;;;;N;;;;;
+0D8B;SINHALA LETTER UYANNA;Lo;0;L;;;;;N;;;;;
+0D8C;SINHALA LETTER UUYANNA;Lo;0;L;;;;;N;;;;;
+0D8D;SINHALA LETTER IRUYANNA;Lo;0;L;;;;;N;;;;;
+0D8E;SINHALA LETTER IRUUYANNA;Lo;0;L;;;;;N;;;;;
+0D8F;SINHALA LETTER ILUYANNA;Lo;0;L;;;;;N;;;;;
+0D90;SINHALA LETTER ILUUYANNA;Lo;0;L;;;;;N;;;;;
+0D91;SINHALA LETTER EYANNA;Lo;0;L;;;;;N;;;;;
+0D92;SINHALA LETTER EEYANNA;Lo;0;L;;;;;N;;;;;
+0D93;SINHALA LETTER AIYANNA;Lo;0;L;;;;;N;;;;;
+0D94;SINHALA LETTER OYANNA;Lo;0;L;;;;;N;;;;;
+0D95;SINHALA LETTER OOYANNA;Lo;0;L;;;;;N;;;;;
+0D96;SINHALA LETTER AUYANNA;Lo;0;L;;;;;N;;;;;
+0D9A;SINHALA LETTER ALPAPRAANA KAYANNA;Lo;0;L;;;;;N;;;;;
+0D9B;SINHALA LETTER MAHAAPRAANA KAYANNA;Lo;0;L;;;;;N;;;;;
+0D9C;SINHALA LETTER ALPAPRAANA GAYANNA;Lo;0;L;;;;;N;;;;;
+0D9D;SINHALA LETTER MAHAAPRAANA GAYANNA;Lo;0;L;;;;;N;;;;;
+0D9E;SINHALA LETTER KANTAJA NAASIKYAYA;Lo;0;L;;;;;N;;;;;
+0D9F;SINHALA LETTER SANYAKA GAYANNA;Lo;0;L;;;;;N;;;;;
+0DA0;SINHALA LETTER ALPAPRAANA CAYANNA;Lo;0;L;;;;;N;;;;;
+0DA1;SINHALA LETTER MAHAAPRAANA CAYANNA;Lo;0;L;;;;;N;;;;;
+0DA2;SINHALA LETTER ALPAPRAANA JAYANNA;Lo;0;L;;;;;N;;;;;
+0DA3;SINHALA LETTER MAHAAPRAANA JAYANNA;Lo;0;L;;;;;N;;;;;
+0DA4;SINHALA LETTER TAALUJA NAASIKYAYA;Lo;0;L;;;;;N;;;;;
+0DA5;SINHALA LETTER TAALUJA SANYOOGA NAAKSIKYAYA;Lo;0;L;;;;;N;;;;;
+0DA6;SINHALA LETTER SANYAKA JAYANNA;Lo;0;L;;;;;N;;;;;
+0DA7;SINHALA LETTER ALPAPRAANA TTAYANNA;Lo;0;L;;;;;N;;;;;
+0DA8;SINHALA LETTER MAHAAPRAANA TTAYANNA;Lo;0;L;;;;;N;;;;;
+0DA9;SINHALA LETTER ALPAPRAANA DDAYANNA;Lo;0;L;;;;;N;;;;;
+0DAA;SINHALA LETTER MAHAAPRAANA DDAYANNA;Lo;0;L;;;;;N;;;;;
+0DAB;SINHALA LETTER MUURDHAJA NAYANNA;Lo;0;L;;;;;N;;;;;
+0DAC;SINHALA LETTER SANYAKA DDAYANNA;Lo;0;L;;;;;N;;;;;
+0DAD;SINHALA LETTER ALPAPRAANA TAYANNA;Lo;0;L;;;;;N;;;;;
+0DAE;SINHALA LETTER MAHAAPRAANA TAYANNA;Lo;0;L;;;;;N;;;;;
+0DAF;SINHALA LETTER ALPAPRAANA DAYANNA;Lo;0;L;;;;;N;;;;;
+0DB0;SINHALA LETTER MAHAAPRAANA DAYANNA;Lo;0;L;;;;;N;;;;;
+0DB1;SINHALA LETTER DANTAJA NAYANNA;Lo;0;L;;;;;N;;;;;
+0DB3;SINHALA LETTER SANYAKA DAYANNA;Lo;0;L;;;;;N;;;;;
+0DB4;SINHALA LETTER ALPAPRAANA PAYANNA;Lo;0;L;;;;;N;;;;;
+0DB5;SINHALA LETTER MAHAAPRAANA PAYANNA;Lo;0;L;;;;;N;;;;;
+0DB6;SINHALA LETTER ALPAPRAANA BAYANNA;Lo;0;L;;;;;N;;;;;
+0DB7;SINHALA LETTER MAHAAPRAANA BAYANNA;Lo;0;L;;;;;N;;;;;
+0DB8;SINHALA LETTER MAYANNA;Lo;0;L;;;;;N;;;;;
+0DB9;SINHALA LETTER AMBA BAYANNA;Lo;0;L;;;;;N;;;;;
+0DBA;SINHALA LETTER YAYANNA;Lo;0;L;;;;;N;;;;;
+0DBB;SINHALA LETTER RAYANNA;Lo;0;L;;;;;N;;;;;
+0DBD;SINHALA LETTER DANTAJA LAYANNA;Lo;0;L;;;;;N;;;;;
+0DC0;SINHALA LETTER VAYANNA;Lo;0;L;;;;;N;;;;;
+0DC1;SINHALA LETTER TAALUJA SAYANNA;Lo;0;L;;;;;N;;;;;
+0DC2;SINHALA LETTER MUURDHAJA SAYANNA;Lo;0;L;;;;;N;;;;;
+0DC3;SINHALA LETTER DANTAJA SAYANNA;Lo;0;L;;;;;N;;;;;
+0DC4;SINHALA LETTER HAYANNA;Lo;0;L;;;;;N;;;;;
+0DC5;SINHALA LETTER MUURDHAJA LAYANNA;Lo;0;L;;;;;N;;;;;
+0DC6;SINHALA LETTER FAYANNA;Lo;0;L;;;;;N;;;;;
+0DCA;SINHALA SIGN AL-LAKUNA;Mn;9;NSM;;;;;N;;;;;
+0DCF;SINHALA VOWEL SIGN AELA-PILLA;Mc;0;L;;;;;N;;;;;
+0DD0;SINHALA VOWEL SIGN KETTI AEDA-PILLA;Mc;0;L;;;;;N;;;;;
+0DD1;SINHALA VOWEL SIGN DIGA AEDA-PILLA;Mc;0;L;;;;;N;;;;;
+0DD2;SINHALA VOWEL SIGN KETTI IS-PILLA;Mn;0;NSM;;;;;N;;;;;
+0DD3;SINHALA VOWEL SIGN DIGA IS-PILLA;Mn;0;NSM;;;;;N;;;;;
+0DD4;SINHALA VOWEL SIGN KETTI PAA-PILLA;Mn;0;NSM;;;;;N;;;;;
+0DD6;SINHALA VOWEL SIGN DIGA PAA-PILLA;Mn;0;NSM;;;;;N;;;;;
+0DD8;SINHALA VOWEL SIGN GAETTA-PILLA;Mc;0;L;;;;;N;;;;;
+0DD9;SINHALA VOWEL SIGN KOMBUVA;Mc;0;L;;;;;N;;;;;
+0DDA;SINHALA VOWEL SIGN DIGA KOMBUVA;Mc;0;L;0DD9 0DCA;;;;N;;;;;
+0DDB;SINHALA VOWEL SIGN KOMBU DEKA;Mc;0;L;;;;;N;;;;;
+0DDC;SINHALA VOWEL SIGN KOMBUVA HAA AELA-PILLA;Mc;0;L;0DD9 0DCF;;;;N;;;;;
+0DDD;SINHALA VOWEL SIGN KOMBUVA HAA DIGA AELA-PILLA;Mc;0;L;0DDC 0DCA;;;;N;;;;;
+0DDE;SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA;Mc;0;L;0DD9 0DDF;;;;N;;;;;
+0DDF;SINHALA VOWEL SIGN GAYANUKITTA;Mc;0;L;;;;;N;;;;;
+0DF2;SINHALA VOWEL SIGN DIGA GAETTA-PILLA;Mc;0;L;;;;;N;;;;;
+0DF3;SINHALA VOWEL SIGN DIGA GAYANUKITTA;Mc;0;L;;;;;N;;;;;
+0DF4;SINHALA PUNCTUATION KUNDDALIYA;Po;0;L;;;;;N;;;;;
+0E01;THAI CHARACTER KO KAI;Lo;0;L;;;;;N;THAI LETTER KO KAI;;;;
+0E02;THAI CHARACTER KHO KHAI;Lo;0;L;;;;;N;THAI LETTER KHO KHAI;;;;
+0E03;THAI CHARACTER KHO KHUAT;Lo;0;L;;;;;N;THAI LETTER KHO KHUAT;;;;
+0E04;THAI CHARACTER KHO KHWAI;Lo;0;L;;;;;N;THAI LETTER KHO KHWAI;;;;
+0E05;THAI CHARACTER KHO KHON;Lo;0;L;;;;;N;THAI LETTER KHO KHON;;;;
+0E06;THAI CHARACTER KHO RAKHANG;Lo;0;L;;;;;N;THAI LETTER KHO RAKHANG;;;;
+0E07;THAI CHARACTER NGO NGU;Lo;0;L;;;;;N;THAI LETTER NGO NGU;;;;
+0E08;THAI CHARACTER CHO CHAN;Lo;0;L;;;;;N;THAI LETTER CHO CHAN;;;;
+0E09;THAI CHARACTER CHO CHING;Lo;0;L;;;;;N;THAI LETTER CHO CHING;;;;
+0E0A;THAI CHARACTER CHO CHANG;Lo;0;L;;;;;N;THAI LETTER CHO CHANG;;;;
+0E0B;THAI CHARACTER SO SO;Lo;0;L;;;;;N;THAI LETTER SO SO;;;;
+0E0C;THAI CHARACTER CHO CHOE;Lo;0;L;;;;;N;THAI LETTER CHO CHOE;;;;
+0E0D;THAI CHARACTER YO YING;Lo;0;L;;;;;N;THAI LETTER YO YING;;;;
+0E0E;THAI CHARACTER DO CHADA;Lo;0;L;;;;;N;THAI LETTER DO CHADA;;;;
+0E0F;THAI CHARACTER TO PATAK;Lo;0;L;;;;;N;THAI LETTER TO PATAK;;;;
+0E10;THAI CHARACTER THO THAN;Lo;0;L;;;;;N;THAI LETTER THO THAN;;;;
+0E11;THAI CHARACTER THO NANGMONTHO;Lo;0;L;;;;;N;THAI LETTER THO NANGMONTHO;;;;
+0E12;THAI CHARACTER THO PHUTHAO;Lo;0;L;;;;;N;THAI LETTER THO PHUTHAO;;;;
+0E13;THAI CHARACTER NO NEN;Lo;0;L;;;;;N;THAI LETTER NO NEN;;;;
+0E14;THAI CHARACTER DO DEK;Lo;0;L;;;;;N;THAI LETTER DO DEK;;;;
+0E15;THAI CHARACTER TO TAO;Lo;0;L;;;;;N;THAI LETTER TO TAO;;;;
+0E16;THAI CHARACTER THO THUNG;Lo;0;L;;;;;N;THAI LETTER THO THUNG;;;;
+0E17;THAI CHARACTER THO THAHAN;Lo;0;L;;;;;N;THAI LETTER THO THAHAN;;;;
+0E18;THAI CHARACTER THO THONG;Lo;0;L;;;;;N;THAI LETTER THO THONG;;;;
+0E19;THAI CHARACTER NO NU;Lo;0;L;;;;;N;THAI LETTER NO NU;;;;
+0E1A;THAI CHARACTER BO BAIMAI;Lo;0;L;;;;;N;THAI LETTER BO BAIMAI;;;;
+0E1B;THAI CHARACTER PO PLA;Lo;0;L;;;;;N;THAI LETTER PO PLA;;;;
+0E1C;THAI CHARACTER PHO PHUNG;Lo;0;L;;;;;N;THAI LETTER PHO PHUNG;;;;
+0E1D;THAI CHARACTER FO FA;Lo;0;L;;;;;N;THAI LETTER FO FA;;;;
+0E1E;THAI CHARACTER PHO PHAN;Lo;0;L;;;;;N;THAI LETTER PHO PHAN;;;;
+0E1F;THAI CHARACTER FO FAN;Lo;0;L;;;;;N;THAI LETTER FO FAN;;;;
+0E20;THAI CHARACTER PHO SAMPHAO;Lo;0;L;;;;;N;THAI LETTER PHO SAMPHAO;;;;
+0E21;THAI CHARACTER MO MA;Lo;0;L;;;;;N;THAI LETTER MO MA;;;;
+0E22;THAI CHARACTER YO YAK;Lo;0;L;;;;;N;THAI LETTER YO YAK;;;;
+0E23;THAI CHARACTER RO RUA;Lo;0;L;;;;;N;THAI LETTER RO RUA;;;;
+0E24;THAI CHARACTER RU;Lo;0;L;;;;;N;THAI LETTER RU;;;;
+0E25;THAI CHARACTER LO LING;Lo;0;L;;;;;N;THAI LETTER LO LING;;;;
+0E26;THAI CHARACTER LU;Lo;0;L;;;;;N;THAI LETTER LU;;;;
+0E27;THAI CHARACTER WO WAEN;Lo;0;L;;;;;N;THAI LETTER WO WAEN;;;;
+0E28;THAI CHARACTER SO SALA;Lo;0;L;;;;;N;THAI LETTER SO SALA;;;;
+0E29;THAI CHARACTER SO RUSI;Lo;0;L;;;;;N;THAI LETTER SO RUSI;;;;
+0E2A;THAI CHARACTER SO SUA;Lo;0;L;;;;;N;THAI LETTER SO SUA;;;;
+0E2B;THAI CHARACTER HO HIP;Lo;0;L;;;;;N;THAI LETTER HO HIP;;;;
+0E2C;THAI CHARACTER LO CHULA;Lo;0;L;;;;;N;THAI LETTER LO CHULA;;;;
+0E2D;THAI CHARACTER O ANG;Lo;0;L;;;;;N;THAI LETTER O ANG;;;;
+0E2E;THAI CHARACTER HO NOKHUK;Lo;0;L;;;;;N;THAI LETTER HO NOK HUK;;;;
+0E2F;THAI CHARACTER PAIYANNOI;Lo;0;L;;;;;N;THAI PAI YAN NOI;paiyan noi;;;
+0E30;THAI CHARACTER SARA A;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA A;;;;
+0E31;THAI CHARACTER MAI HAN-AKAT;Mn;0;NSM;;;;;N;THAI VOWEL SIGN MAI HAN-AKAT;;;;
+0E32;THAI CHARACTER SARA AA;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA AA;;;;
+0E33;THAI CHARACTER SARA AM;Lo;0;L;<compat> 0E4D 0E32;;;;N;THAI VOWEL SIGN SARA AM;;;;
+0E34;THAI CHARACTER SARA I;Mn;0;NSM;;;;;N;THAI VOWEL SIGN SARA I;;;;
+0E35;THAI CHARACTER SARA II;Mn;0;NSM;;;;;N;THAI VOWEL SIGN SARA II;;;;
+0E36;THAI CHARACTER SARA UE;Mn;0;NSM;;;;;N;THAI VOWEL SIGN SARA UE;;;;
+0E37;THAI CHARACTER SARA UEE;Mn;0;NSM;;;;;N;THAI VOWEL SIGN SARA UEE;sara uue;;;
+0E38;THAI CHARACTER SARA U;Mn;103;NSM;;;;;N;THAI VOWEL SIGN SARA U;;;;
+0E39;THAI CHARACTER SARA UU;Mn;103;NSM;;;;;N;THAI VOWEL SIGN SARA UU;;;;
+0E3A;THAI CHARACTER PHINTHU;Mn;9;NSM;;;;;N;THAI VOWEL SIGN PHINTHU;;;;
+0E3F;THAI CURRENCY SYMBOL BAHT;Sc;0;ET;;;;;N;THAI BAHT SIGN;;;;
+0E40;THAI CHARACTER SARA E;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA E;;;;
+0E41;THAI CHARACTER SARA AE;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA AE;;;;
+0E42;THAI CHARACTER SARA O;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA O;;;;
+0E43;THAI CHARACTER SARA AI MAIMUAN;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA MAI MUAN;sara ai mai muan;;;
+0E44;THAI CHARACTER SARA AI MAIMALAI;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA MAI MALAI;sara ai mai malai;;;
+0E45;THAI CHARACTER LAKKHANGYAO;Lo;0;L;;;;;N;THAI LAK KHANG YAO;lakkhang yao;;;
+0E46;THAI CHARACTER MAIYAMOK;Lm;0;L;;;;;N;THAI MAI YAMOK;mai yamok;;;
+0E47;THAI CHARACTER MAITAIKHU;Mn;0;NSM;;;;;N;THAI VOWEL SIGN MAI TAI KHU;mai taikhu;;;
+0E48;THAI CHARACTER MAI EK;Mn;107;NSM;;;;;N;THAI TONE MAI EK;;;;
+0E49;THAI CHARACTER MAI THO;Mn;107;NSM;;;;;N;THAI TONE MAI THO;;;;
+0E4A;THAI CHARACTER MAI TRI;Mn;107;NSM;;;;;N;THAI TONE MAI TRI;;;;
+0E4B;THAI CHARACTER MAI CHATTAWA;Mn;107;NSM;;;;;N;THAI TONE MAI CHATTAWA;;;;
+0E4C;THAI CHARACTER THANTHAKHAT;Mn;0;NSM;;;;;N;THAI THANTHAKHAT;;;;
+0E4D;THAI CHARACTER NIKHAHIT;Mn;0;NSM;;;;;N;THAI NIKKHAHIT;nikkhahit;;;
+0E4E;THAI CHARACTER YAMAKKAN;Mn;0;NSM;;;;;N;THAI YAMAKKAN;;;;
+0E4F;THAI CHARACTER FONGMAN;Po;0;L;;;;;N;THAI FONGMAN;;;;
+0E50;THAI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+0E51;THAI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+0E52;THAI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+0E53;THAI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+0E54;THAI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+0E55;THAI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+0E56;THAI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+0E57;THAI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+0E58;THAI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+0E59;THAI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+0E5A;THAI CHARACTER ANGKHANKHU;Po;0;L;;;;;N;THAI ANGKHANKHU;;;;
+0E5B;THAI CHARACTER KHOMUT;Po;0;L;;;;;N;THAI KHOMUT;;;;
+0E81;LAO LETTER KO;Lo;0;L;;;;;N;;;;;
+0E82;LAO LETTER KHO SUNG;Lo;0;L;;;;;N;;;;;
+0E84;LAO LETTER KHO TAM;Lo;0;L;;;;;N;;;;;
+0E87;LAO LETTER NGO;Lo;0;L;;;;;N;;;;;
+0E88;LAO LETTER CO;Lo;0;L;;;;;N;;;;;
+0E8A;LAO LETTER SO TAM;Lo;0;L;;;;;N;;;;;
+0E8D;LAO LETTER NYO;Lo;0;L;;;;;N;;;;;
+0E94;LAO LETTER DO;Lo;0;L;;;;;N;;;;;
+0E95;LAO LETTER TO;Lo;0;L;;;;;N;;;;;
+0E96;LAO LETTER THO SUNG;Lo;0;L;;;;;N;;;;;
+0E97;LAO LETTER THO TAM;Lo;0;L;;;;;N;;;;;
+0E99;LAO LETTER NO;Lo;0;L;;;;;N;;;;;
+0E9A;LAO LETTER BO;Lo;0;L;;;;;N;;;;;
+0E9B;LAO LETTER PO;Lo;0;L;;;;;N;;;;;
+0E9C;LAO LETTER PHO SUNG;Lo;0;L;;;;;N;;;;;
+0E9D;LAO LETTER FO TAM;Lo;0;L;;;;;N;;;;;
+0E9E;LAO LETTER PHO TAM;Lo;0;L;;;;;N;;;;;
+0E9F;LAO LETTER FO SUNG;Lo;0;L;;;;;N;;;;;
+0EA1;LAO LETTER MO;Lo;0;L;;;;;N;;;;;
+0EA2;LAO LETTER YO;Lo;0;L;;;;;N;;;;;
+0EA3;LAO LETTER LO LING;Lo;0;L;;;;;N;;;;;
+0EA5;LAO LETTER LO LOOT;Lo;0;L;;;;;N;;;;;
+0EA7;LAO LETTER WO;Lo;0;L;;;;;N;;;;;
+0EAA;LAO LETTER SO SUNG;Lo;0;L;;;;;N;;;;;
+0EAB;LAO LETTER HO SUNG;Lo;0;L;;;;;N;;;;;
+0EAD;LAO LETTER O;Lo;0;L;;;;;N;;;;;
+0EAE;LAO LETTER HO TAM;Lo;0;L;;;;;N;;;;;
+0EAF;LAO ELLIPSIS;Lo;0;L;;;;;N;;;;;
+0EB0;LAO VOWEL SIGN A;Lo;0;L;;;;;N;;;;;
+0EB1;LAO VOWEL SIGN MAI KAN;Mn;0;NSM;;;;;N;;;;;
+0EB2;LAO VOWEL SIGN AA;Lo;0;L;;;;;N;;;;;
+0EB3;LAO VOWEL SIGN AM;Lo;0;L;<compat> 0ECD 0EB2;;;;N;;;;;
+0EB4;LAO VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
+0EB5;LAO VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;;
+0EB6;LAO VOWEL SIGN Y;Mn;0;NSM;;;;;N;;;;;
+0EB7;LAO VOWEL SIGN YY;Mn;0;NSM;;;;;N;;;;;
+0EB8;LAO VOWEL SIGN U;Mn;118;NSM;;;;;N;;;;;
+0EB9;LAO VOWEL SIGN UU;Mn;118;NSM;;;;;N;;;;;
+0EBB;LAO VOWEL SIGN MAI KON;Mn;0;NSM;;;;;N;;;;;
+0EBC;LAO SEMIVOWEL SIGN LO;Mn;0;NSM;;;;;N;;;;;
+0EBD;LAO SEMIVOWEL SIGN NYO;Lo;0;L;;;;;N;;;;;
+0EC0;LAO VOWEL SIGN E;Lo;0;L;;;;;N;;;;;
+0EC1;LAO VOWEL SIGN EI;Lo;0;L;;;;;N;;;;;
+0EC2;LAO VOWEL SIGN O;Lo;0;L;;;;;N;;;;;
+0EC3;LAO VOWEL SIGN AY;Lo;0;L;;;;;N;;;;;
+0EC4;LAO VOWEL SIGN AI;Lo;0;L;;;;;N;;;;;
+0EC6;LAO KO LA;Lm;0;L;;;;;N;;;;;
+0EC8;LAO TONE MAI EK;Mn;122;NSM;;;;;N;;;;;
+0EC9;LAO TONE MAI THO;Mn;122;NSM;;;;;N;;;;;
+0ECA;LAO TONE MAI TI;Mn;122;NSM;;;;;N;;;;;
+0ECB;LAO TONE MAI CATAWA;Mn;122;NSM;;;;;N;;;;;
+0ECC;LAO CANCELLATION MARK;Mn;0;NSM;;;;;N;;;;;
+0ECD;LAO NIGGAHITA;Mn;0;NSM;;;;;N;;;;;
+0ED0;LAO DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+0ED1;LAO DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+0ED2;LAO DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+0ED3;LAO DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+0ED4;LAO DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+0ED5;LAO DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+0ED6;LAO DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+0ED7;LAO DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+0ED8;LAO DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+0ED9;LAO DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+0EDC;LAO HO NO;Lo;0;L;<compat> 0EAB 0E99;;;;N;;;;;
+0EDD;LAO HO MO;Lo;0;L;<compat> 0EAB 0EA1;;;;N;;;;;
+0F00;TIBETAN SYLLABLE OM;Lo;0;L;;;;;N;;;;;
+0F01;TIBETAN MARK GTER YIG MGO TRUNCATED A;So;0;L;;;;;N;;ter yik go a thung;;;
+0F02;TIBETAN MARK GTER YIG MGO -UM RNAM BCAD MA;So;0;L;;;;;N;;ter yik go wum nam chey ma;;;
+0F03;TIBETAN MARK GTER YIG MGO -UM GTER TSHEG MA;So;0;L;;;;;N;;ter yik go wum ter tsek ma;;;
+0F04;TIBETAN MARK INITIAL YIG MGO MDUN MA;Po;0;L;;;;;N;TIBETAN SINGLE ORNAMENT;yik go dun ma;;;
+0F05;TIBETAN MARK CLOSING YIG MGO SGAB MA;Po;0;L;;;;;N;;yik go kab ma;;;
+0F06;TIBETAN MARK CARET YIG MGO PHUR SHAD MA;Po;0;L;;;;;N;;yik go pur shey ma;;;
+0F07;TIBETAN MARK YIG MGO TSHEG SHAD MA;Po;0;L;;;;;N;;yik go tsek shey ma;;;
+0F08;TIBETAN MARK SBRUL SHAD;Po;0;L;;;;;N;TIBETAN RGYANSHAD;drul shey;;;
+0F09;TIBETAN MARK BSKUR YIG MGO;Po;0;L;;;;;N;;kur yik go;;;
+0F0A;TIBETAN MARK BKA- SHOG YIG MGO;Po;0;L;;;;;N;;ka sho yik go;;;
+0F0B;TIBETAN MARK INTERSYLLABIC TSHEG;Po;0;L;;;;;N;TIBETAN TSEG;tsek;;;
+0F0C;TIBETAN MARK DELIMITER TSHEG BSTAR;Po;0;L;<noBreak> 0F0B;;;;N;;tsek tar;;;
+0F0D;TIBETAN MARK SHAD;Po;0;L;;;;;N;TIBETAN SHAD;shey;;;
+0F0E;TIBETAN MARK NYIS SHAD;Po;0;L;;;;;N;TIBETAN DOUBLE SHAD;nyi shey;;;
+0F0F;TIBETAN MARK TSHEG SHAD;Po;0;L;;;;;N;;tsek shey;;;
+0F10;TIBETAN MARK NYIS TSHEG SHAD;Po;0;L;;;;;N;;nyi tsek shey;;;
+0F11;TIBETAN MARK RIN CHEN SPUNGS SHAD;Po;0;L;;;;;N;TIBETAN RINCHANPHUNGSHAD;rinchen pung shey;;;
+0F12;TIBETAN MARK RGYA GRAM SHAD;Po;0;L;;;;;N;;gya tram shey;;;
+0F13;TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN;So;0;L;;;;;N;;dzu ta me long chen;;;
+0F14;TIBETAN MARK GTER TSHEG;So;0;L;;;;;N;TIBETAN COMMA;ter tsek;;;
+0F15;TIBETAN LOGOTYPE SIGN CHAD RTAGS;So;0;L;;;;;N;;che ta;;;
+0F16;TIBETAN LOGOTYPE SIGN LHAG RTAGS;So;0;L;;;;;N;;hlak ta;;;
+0F17;TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS;So;0;L;;;;;N;;trachen char ta;;;
+0F18;TIBETAN ASTROLOGICAL SIGN -KHYUD PA;Mn;220;NSM;;;;;N;;kyu pa;;;
+0F19;TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS;Mn;220;NSM;;;;;N;;dong tsu;;;
+0F1A;TIBETAN SIGN RDEL DKAR GCIG;So;0;L;;;;;N;;deka chig;;;
+0F1B;TIBETAN SIGN RDEL DKAR GNYIS;So;0;L;;;;;N;;deka nyi;;;
+0F1C;TIBETAN SIGN RDEL DKAR GSUM;So;0;L;;;;;N;;deka sum;;;
+0F1D;TIBETAN SIGN RDEL NAG GCIG;So;0;L;;;;;N;;dena chig;;;
+0F1E;TIBETAN SIGN RDEL NAG GNYIS;So;0;L;;;;;N;;dena nyi;;;
+0F1F;TIBETAN SIGN RDEL DKAR RDEL NAG;So;0;L;;;;;N;;deka dena;;;
+0F20;TIBETAN DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+0F21;TIBETAN DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+0F22;TIBETAN DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+0F23;TIBETAN DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+0F24;TIBETAN DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+0F25;TIBETAN DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+0F26;TIBETAN DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+0F27;TIBETAN DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+0F28;TIBETAN DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+0F29;TIBETAN DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+0F2A;TIBETAN DIGIT HALF ONE;No;0;L;;;;1/2;N;;;;;
+0F2B;TIBETAN DIGIT HALF TWO;No;0;L;;;;3/2;N;;;;;
+0F2C;TIBETAN DIGIT HALF THREE;No;0;L;;;;5/2;N;;;;;
+0F2D;TIBETAN DIGIT HALF FOUR;No;0;L;;;;7/2;N;;;;;
+0F2E;TIBETAN DIGIT HALF FIVE;No;0;L;;;;9/2;N;;;;;
+0F2F;TIBETAN DIGIT HALF SIX;No;0;L;;;;11/2;N;;;;;
+0F30;TIBETAN DIGIT HALF SEVEN;No;0;L;;;;13/2;N;;;;;
+0F31;TIBETAN DIGIT HALF EIGHT;No;0;L;;;;15/2;N;;;;;
+0F32;TIBETAN DIGIT HALF NINE;No;0;L;;;;17/2;N;;;;;
+0F33;TIBETAN DIGIT HALF ZERO;No;0;L;;;;-1/2;N;;;;;
+0F34;TIBETAN MARK BSDUS RTAGS;So;0;L;;;;;N;;du ta;;;
+0F35;TIBETAN MARK NGAS BZUNG NYI ZLA;Mn;220;NSM;;;;;N;TIBETAN HONORIFIC UNDER RING;nge zung nyi da;;;
+0F36;TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN;So;0;L;;;;;N;;dzu ta shi mig chen;;;
+0F37;TIBETAN MARK NGAS BZUNG SGOR RTAGS;Mn;220;NSM;;;;;N;TIBETAN UNDER RING;nge zung gor ta;;;
+0F38;TIBETAN MARK CHE MGO;So;0;L;;;;;N;;che go;;;
+0F39;TIBETAN MARK TSA -PHRU;Mn;216;NSM;;;;;N;TIBETAN LENITION MARK;tsa tru;;;
+0F3A;TIBETAN MARK GUG RTAGS GYON;Ps;0;ON;;;;;Y;;gug ta yun;;;
+0F3B;TIBETAN MARK GUG RTAGS GYAS;Pe;0;ON;;;;;Y;;gug ta ye;;;
+0F3C;TIBETAN MARK ANG KHANG GYON;Ps;0;ON;;;;;Y;TIBETAN LEFT BRACE;ang kang yun;;;
+0F3D;TIBETAN MARK ANG KHANG GYAS;Pe;0;ON;;;;;Y;TIBETAN RIGHT BRACE;ang kang ye;;;
+0F3E;TIBETAN SIGN YAR TSHES;Mc;0;L;;;;;N;;yar tse;;;
+0F3F;TIBETAN SIGN MAR TSHES;Mc;0;L;;;;;N;;mar tse;;;
+0F40;TIBETAN LETTER KA;Lo;0;L;;;;;N;;;;;
+0F41;TIBETAN LETTER KHA;Lo;0;L;;;;;N;;;;;
+0F42;TIBETAN LETTER GA;Lo;0;L;;;;;N;;;;;
+0F43;TIBETAN LETTER GHA;Lo;0;L;0F42 0FB7;;;;N;;;;;
+0F44;TIBETAN LETTER NGA;Lo;0;L;;;;;N;;;;;
+0F45;TIBETAN LETTER CA;Lo;0;L;;;;;N;;;;;
+0F46;TIBETAN LETTER CHA;Lo;0;L;;;;;N;;;;;
+0F47;TIBETAN LETTER JA;Lo;0;L;;;;;N;;;;;
+0F49;TIBETAN LETTER NYA;Lo;0;L;;;;;N;;;;;
+0F4A;TIBETAN LETTER TTA;Lo;0;L;;;;;N;TIBETAN LETTER REVERSED TA;;;;
+0F4B;TIBETAN LETTER TTHA;Lo;0;L;;;;;N;TIBETAN LETTER REVERSED THA;;;;
+0F4C;TIBETAN LETTER DDA;Lo;0;L;;;;;N;TIBETAN LETTER REVERSED DA;;;;
+0F4D;TIBETAN LETTER DDHA;Lo;0;L;0F4C 0FB7;;;;N;;;;;
+0F4E;TIBETAN LETTER NNA;Lo;0;L;;;;;N;TIBETAN LETTER REVERSED NA;;;;
+0F4F;TIBETAN LETTER TA;Lo;0;L;;;;;N;;;;;
+0F50;TIBETAN LETTER THA;Lo;0;L;;;;;N;;;;;
+0F51;TIBETAN LETTER DA;Lo;0;L;;;;;N;;;;;
+0F52;TIBETAN LETTER DHA;Lo;0;L;0F51 0FB7;;;;N;;;;;
+0F53;TIBETAN LETTER NA;Lo;0;L;;;;;N;;;;;
+0F54;TIBETAN LETTER PA;Lo;0;L;;;;;N;;;;;
+0F55;TIBETAN LETTER PHA;Lo;0;L;;;;;N;;;;;
+0F56;TIBETAN LETTER BA;Lo;0;L;;;;;N;;;;;
+0F57;TIBETAN LETTER BHA;Lo;0;L;0F56 0FB7;;;;N;;;;;
+0F58;TIBETAN LETTER MA;Lo;0;L;;;;;N;;;;;
+0F59;TIBETAN LETTER TSA;Lo;0;L;;;;;N;;;;;
+0F5A;TIBETAN LETTER TSHA;Lo;0;L;;;;;N;;;;;
+0F5B;TIBETAN LETTER DZA;Lo;0;L;;;;;N;;;;;
+0F5C;TIBETAN LETTER DZHA;Lo;0;L;0F5B 0FB7;;;;N;;;;;
+0F5D;TIBETAN LETTER WA;Lo;0;L;;;;;N;;;;;
+0F5E;TIBETAN LETTER ZHA;Lo;0;L;;;;;N;;;;;
+0F5F;TIBETAN LETTER ZA;Lo;0;L;;;;;N;;;;;
+0F60;TIBETAN LETTER -A;Lo;0;L;;;;;N;TIBETAN LETTER AA;;;;
+0F61;TIBETAN LETTER YA;Lo;0;L;;;;;N;;;;;
+0F62;TIBETAN LETTER RA;Lo;0;L;;;;;N;;*;;;
+0F63;TIBETAN LETTER LA;Lo;0;L;;;;;N;;;;;
+0F64;TIBETAN LETTER SHA;Lo;0;L;;;;;N;;;;;
+0F65;TIBETAN LETTER SSA;Lo;0;L;;;;;N;TIBETAN LETTER REVERSED SHA;;;;
+0F66;TIBETAN LETTER SA;Lo;0;L;;;;;N;;;;;
+0F67;TIBETAN LETTER HA;Lo;0;L;;;;;N;;;;;
+0F68;TIBETAN LETTER A;Lo;0;L;;;;;N;;;;;
+0F69;TIBETAN LETTER KSSA;Lo;0;L;0F40 0FB5;;;;N;;;;;
+0F6A;TIBETAN LETTER FIXED-FORM RA;Lo;0;L;;;;;N;;*;;;
+0F71;TIBETAN VOWEL SIGN AA;Mn;129;NSM;;;;;N;;;;;
+0F72;TIBETAN VOWEL SIGN I;Mn;130;NSM;;;;;N;;;;;
+0F73;TIBETAN VOWEL SIGN II;Mn;0;NSM;0F71 0F72;;;;N;;;;;
+0F74;TIBETAN VOWEL SIGN U;Mn;132;NSM;;;;;N;;;;;
+0F75;TIBETAN VOWEL SIGN UU;Mn;0;NSM;0F71 0F74;;;;N;;;;;
+0F76;TIBETAN VOWEL SIGN VOCALIC R;Mn;0;NSM;0FB2 0F80;;;;N;;;;;
+0F77;TIBETAN VOWEL SIGN VOCALIC RR;Mn;0;NSM;<compat> 0FB2 0F81;;;;N;;;;;
+0F78;TIBETAN VOWEL SIGN VOCALIC L;Mn;0;NSM;0FB3 0F80;;;;N;;;;;
+0F79;TIBETAN VOWEL SIGN VOCALIC LL;Mn;0;NSM;<compat> 0FB3 0F81;;;;N;;;;;
+0F7A;TIBETAN VOWEL SIGN E;Mn;130;NSM;;;;;N;;;;;
+0F7B;TIBETAN VOWEL SIGN EE;Mn;130;NSM;;;;;N;TIBETAN VOWEL SIGN AI;;;;
+0F7C;TIBETAN VOWEL SIGN O;Mn;130;NSM;;;;;N;;;;;
+0F7D;TIBETAN VOWEL SIGN OO;Mn;130;NSM;;;;;N;TIBETAN VOWEL SIGN AU;;;;
+0F7E;TIBETAN SIGN RJES SU NGA RO;Mn;0;NSM;;;;;N;TIBETAN ANUSVARA;je su nga ro;;;
+0F7F;TIBETAN SIGN RNAM BCAD;Mc;0;L;;;;;N;TIBETAN VISARGA;nam chey;;;
+0F80;TIBETAN VOWEL SIGN REVERSED I;Mn;130;NSM;;;;;N;TIBETAN VOWEL SIGN SHORT I;;;;
+0F81;TIBETAN VOWEL SIGN REVERSED II;Mn;0;NSM;0F71 0F80;;;;N;;;;;
+0F82;TIBETAN SIGN NYI ZLA NAA DA;Mn;230;NSM;;;;;N;TIBETAN CANDRABINDU WITH ORNAMENT;nyi da na da;;;
+0F83;TIBETAN SIGN SNA LDAN;Mn;230;NSM;;;;;N;TIBETAN CANDRABINDU;nan de;;;
+0F84;TIBETAN MARK HALANTA;Mn;9;NSM;;;;;N;TIBETAN VIRAMA;;;;
+0F85;TIBETAN MARK PALUTA;Po;0;L;;;;;N;TIBETAN CHUCHENYIGE;;;;
+0F86;TIBETAN SIGN LCI RTAGS;Mn;230;NSM;;;;;N;;ji ta;;;
+0F87;TIBETAN SIGN YANG RTAGS;Mn;230;NSM;;;;;N;;yang ta;;;
+0F88;TIBETAN SIGN LCE TSA CAN;Lo;0;L;;;;;N;;che tsa chen;;;
+0F89;TIBETAN SIGN MCHU CAN;Lo;0;L;;;;;N;;chu chen;;;
+0F8A;TIBETAN SIGN GRU CAN RGYINGS;Lo;0;L;;;;;N;;tru chen ging;;;
+0F8B;TIBETAN SIGN GRU MED RGYINGS;Lo;0;L;;;;;N;;tru me ging;;;
+0F90;TIBETAN SUBJOINED LETTER KA;Mn;0;NSM;;;;;N;;;;;
+0F91;TIBETAN SUBJOINED LETTER KHA;Mn;0;NSM;;;;;N;;;;;
+0F92;TIBETAN SUBJOINED LETTER GA;Mn;0;NSM;;;;;N;;;;;
+0F93;TIBETAN SUBJOINED LETTER GHA;Mn;0;NSM;0F92 0FB7;;;;N;;;;;
+0F94;TIBETAN SUBJOINED LETTER NGA;Mn;0;NSM;;;;;N;;;;;
+0F95;TIBETAN SUBJOINED LETTER CA;Mn;0;NSM;;;;;N;;;;;
+0F96;TIBETAN SUBJOINED LETTER CHA;Mn;0;NSM;;;;;N;;;;;
+0F97;TIBETAN SUBJOINED LETTER JA;Mn;0;NSM;;;;;N;;;;;
+0F99;TIBETAN SUBJOINED LETTER NYA;Mn;0;NSM;;;;;N;;;;;
+0F9A;TIBETAN SUBJOINED LETTER TTA;Mn;0;NSM;;;;;N;;;;;
+0F9B;TIBETAN SUBJOINED LETTER TTHA;Mn;0;NSM;;;;;N;;;;;
+0F9C;TIBETAN SUBJOINED LETTER DDA;Mn;0;NSM;;;;;N;;;;;
+0F9D;TIBETAN SUBJOINED LETTER DDHA;Mn;0;NSM;0F9C 0FB7;;;;N;;;;;
+0F9E;TIBETAN SUBJOINED LETTER NNA;Mn;0;NSM;;;;;N;;;;;
+0F9F;TIBETAN SUBJOINED LETTER TA;Mn;0;NSM;;;;;N;;;;;
+0FA0;TIBETAN SUBJOINED LETTER THA;Mn;0;NSM;;;;;N;;;;;
+0FA1;TIBETAN SUBJOINED LETTER DA;Mn;0;NSM;;;;;N;;;;;
+0FA2;TIBETAN SUBJOINED LETTER DHA;Mn;0;NSM;0FA1 0FB7;;;;N;;;;;
+0FA3;TIBETAN SUBJOINED LETTER NA;Mn;0;NSM;;;;;N;;;;;
+0FA4;TIBETAN SUBJOINED LETTER PA;Mn;0;NSM;;;;;N;;;;;
+0FA5;TIBETAN SUBJOINED LETTER PHA;Mn;0;NSM;;;;;N;;;;;
+0FA6;TIBETAN SUBJOINED LETTER BA;Mn;0;NSM;;;;;N;;;;;
+0FA7;TIBETAN SUBJOINED LETTER BHA;Mn;0;NSM;0FA6 0FB7;;;;N;;;;;
+0FA8;TIBETAN SUBJOINED LETTER MA;Mn;0;NSM;;;;;N;;;;;
+0FA9;TIBETAN SUBJOINED LETTER TSA;Mn;0;NSM;;;;;N;;;;;
+0FAA;TIBETAN SUBJOINED LETTER TSHA;Mn;0;NSM;;;;;N;;;;;
+0FAB;TIBETAN SUBJOINED LETTER DZA;Mn;0;NSM;;;;;N;;;;;
+0FAC;TIBETAN SUBJOINED LETTER DZHA;Mn;0;NSM;0FAB 0FB7;;;;N;;;;;
+0FAD;TIBETAN SUBJOINED LETTER WA;Mn;0;NSM;;;;;N;;*;;;
+0FAE;TIBETAN SUBJOINED LETTER ZHA;Mn;0;NSM;;;;;N;;;;;
+0FAF;TIBETAN SUBJOINED LETTER ZA;Mn;0;NSM;;;;;N;;;;;
+0FB0;TIBETAN SUBJOINED LETTER -A;Mn;0;NSM;;;;;N;;;;;
+0FB1;TIBETAN SUBJOINED LETTER YA;Mn;0;NSM;;;;;N;;*;;;
+0FB2;TIBETAN SUBJOINED LETTER RA;Mn;0;NSM;;;;;N;;*;;;
+0FB3;TIBETAN SUBJOINED LETTER LA;Mn;0;NSM;;;;;N;;;;;
+0FB4;TIBETAN SUBJOINED LETTER SHA;Mn;0;NSM;;;;;N;;;;;
+0FB5;TIBETAN SUBJOINED LETTER SSA;Mn;0;NSM;;;;;N;;;;;
+0FB6;TIBETAN SUBJOINED LETTER SA;Mn;0;NSM;;;;;N;;;;;
+0FB7;TIBETAN SUBJOINED LETTER HA;Mn;0;NSM;;;;;N;;;;;
+0FB8;TIBETAN SUBJOINED LETTER A;Mn;0;NSM;;;;;N;;;;;
+0FB9;TIBETAN SUBJOINED LETTER KSSA;Mn;0;NSM;0F90 0FB5;;;;N;;;;;
+0FBA;TIBETAN SUBJOINED LETTER FIXED-FORM WA;Mn;0;NSM;;;;;N;;*;;;
+0FBB;TIBETAN SUBJOINED LETTER FIXED-FORM YA;Mn;0;NSM;;;;;N;;*;;;
+0FBC;TIBETAN SUBJOINED LETTER FIXED-FORM RA;Mn;0;NSM;;;;;N;;*;;;
+0FBE;TIBETAN KU RU KHA;So;0;L;;;;;N;;kuruka;;;
+0FBF;TIBETAN KU RU KHA BZHI MIG CAN;So;0;L;;;;;N;;kuruka shi mik chen;;;
+0FC0;TIBETAN CANTILLATION SIGN HEAVY BEAT;So;0;L;;;;;N;;;;;
+0FC1;TIBETAN CANTILLATION SIGN LIGHT BEAT;So;0;L;;;;;N;;;;;
+0FC2;TIBETAN CANTILLATION SIGN CANG TE-U;So;0;L;;;;;N;;chang tyu;;;
+0FC3;TIBETAN CANTILLATION SIGN SBUB -CHAL;So;0;L;;;;;N;;bub chey;;;
+0FC4;TIBETAN SYMBOL DRIL BU;So;0;L;;;;;N;;drilbu;;;
+0FC5;TIBETAN SYMBOL RDO RJE;So;0;L;;;;;N;;dorje;;;
+0FC6;TIBETAN SYMBOL PADMA GDAN;Mn;220;NSM;;;;;N;;pema den;;;
+0FC7;TIBETAN SYMBOL RDO RJE RGYA GRAM;So;0;L;;;;;N;;dorje gya dram;;;
+0FC8;TIBETAN SYMBOL PHUR PA;So;0;L;;;;;N;;phurba;;;
+0FC9;TIBETAN SYMBOL NOR BU;So;0;L;;;;;N;;norbu;;;
+0FCA;TIBETAN SYMBOL NOR BU NYIS -KHYIL;So;0;L;;;;;N;;norbu nyi khyi;;;
+0FCB;TIBETAN SYMBOL NOR BU GSUM -KHYIL;So;0;L;;;;;N;;norbu sum khyi;;;
+0FCC;TIBETAN SYMBOL NOR BU BZHI -KHYIL;So;0;L;;;;;N;;norbu shi khyi;;;
+0FCF;TIBETAN SIGN RDEL NAG GSUM;So;0;L;;;;;N;;dena sum;;;
+0FD0;TIBETAN MARK BSKA- SHOG GI MGO RGYAN;Po;0;L;;;;;N;;ka shog gi go gyen;;;
+0FD1;TIBETAN MARK MNYAM YIG GI MGO RGYAN;Po;0;L;;;;;N;;nyam yig gi go gyen;;;
+1000;MYANMAR LETTER KA;Lo;0;L;;;;;N;;;;;
+1001;MYANMAR LETTER KHA;Lo;0;L;;;;;N;;;;;
+1002;MYANMAR LETTER GA;Lo;0;L;;;;;N;;;;;
+1003;MYANMAR LETTER GHA;Lo;0;L;;;;;N;;;;;
+1004;MYANMAR LETTER NGA;Lo;0;L;;;;;N;;;;;
+1005;MYANMAR LETTER CA;Lo;0;L;;;;;N;;;;;
+1006;MYANMAR LETTER CHA;Lo;0;L;;;;;N;;;;;
+1007;MYANMAR LETTER JA;Lo;0;L;;;;;N;;;;;
+1008;MYANMAR LETTER JHA;Lo;0;L;;;;;N;;;;;
+1009;MYANMAR LETTER NYA;Lo;0;L;;;;;N;;;;;
+100A;MYANMAR LETTER NNYA;Lo;0;L;;;;;N;;;;;
+100B;MYANMAR LETTER TTA;Lo;0;L;;;;;N;;;;;
+100C;MYANMAR LETTER TTHA;Lo;0;L;;;;;N;;;;;
+100D;MYANMAR LETTER DDA;Lo;0;L;;;;;N;;;;;
+100E;MYANMAR LETTER DDHA;Lo;0;L;;;;;N;;;;;
+100F;MYANMAR LETTER NNA;Lo;0;L;;;;;N;;;;;
+1010;MYANMAR LETTER TA;Lo;0;L;;;;;N;;;;;
+1011;MYANMAR LETTER THA;Lo;0;L;;;;;N;;;;;
+1012;MYANMAR LETTER DA;Lo;0;L;;;;;N;;;;;
+1013;MYANMAR LETTER DHA;Lo;0;L;;;;;N;;;;;
+1014;MYANMAR LETTER NA;Lo;0;L;;;;;N;;;;;
+1015;MYANMAR LETTER PA;Lo;0;L;;;;;N;;;;;
+1016;MYANMAR LETTER PHA;Lo;0;L;;;;;N;;;;;
+1017;MYANMAR LETTER BA;Lo;0;L;;;;;N;;;;;
+1018;MYANMAR LETTER BHA;Lo;0;L;;;;;N;;;;;
+1019;MYANMAR LETTER MA;Lo;0;L;;;;;N;;;;;
+101A;MYANMAR LETTER YA;Lo;0;L;;;;;N;;;;;
+101B;MYANMAR LETTER RA;Lo;0;L;;;;;N;;;;;
+101C;MYANMAR LETTER LA;Lo;0;L;;;;;N;;;;;
+101D;MYANMAR LETTER WA;Lo;0;L;;;;;N;;;;;
+101E;MYANMAR LETTER SA;Lo;0;L;;;;;N;;;;;
+101F;MYANMAR LETTER HA;Lo;0;L;;;;;N;;;;;
+1020;MYANMAR LETTER LLA;Lo;0;L;;;;;N;;;;;
+1021;MYANMAR LETTER A;Lo;0;L;;;;;N;;;;;
+1023;MYANMAR LETTER I;Lo;0;L;;;;;N;;;;;
+1024;MYANMAR LETTER II;Lo;0;L;;;;;N;;;;;
+1025;MYANMAR LETTER U;Lo;0;L;;;;;N;;;;;
+1026;MYANMAR LETTER UU;Lo;0;L;1025 102E;;;;N;;;;;
+1027;MYANMAR LETTER E;Lo;0;L;;;;;N;;;;;
+1029;MYANMAR LETTER O;Lo;0;L;;;;;N;;;;;
+102A;MYANMAR LETTER AU;Lo;0;L;;;;;N;;;;;
+102C;MYANMAR VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+102D;MYANMAR VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
+102E;MYANMAR VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;;
+102F;MYANMAR VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+1030;MYANMAR VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
+1031;MYANMAR VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
+1032;MYANMAR VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;;
+1036;MYANMAR SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
+1037;MYANMAR SIGN DOT BELOW;Mn;7;NSM;;;;;N;;;;;
+1038;MYANMAR SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+1039;MYANMAR SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+1040;MYANMAR DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+1041;MYANMAR DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+1042;MYANMAR DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+1043;MYANMAR DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+1044;MYANMAR DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+1045;MYANMAR DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+1046;MYANMAR DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+1047;MYANMAR DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+1048;MYANMAR DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+1049;MYANMAR DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+104A;MYANMAR SIGN LITTLE SECTION;Po;0;L;;;;;N;;;;;
+104B;MYANMAR SIGN SECTION;Po;0;L;;;;;N;;;;;
+104C;MYANMAR SYMBOL LOCATIVE;Po;0;L;;;;;N;;;;;
+104D;MYANMAR SYMBOL COMPLETED;Po;0;L;;;;;N;;;;;
+104E;MYANMAR SYMBOL AFOREMENTIONED;Po;0;L;;;;;N;;;;;
+104F;MYANMAR SYMBOL GENITIVE;Po;0;L;;;;;N;;;;;
+1050;MYANMAR LETTER SHA;Lo;0;L;;;;;N;;;;;
+1051;MYANMAR LETTER SSA;Lo;0;L;;;;;N;;;;;
+1052;MYANMAR LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
+1053;MYANMAR LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
+1054;MYANMAR LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
+1055;MYANMAR LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
+1056;MYANMAR VOWEL SIGN VOCALIC R;Mc;0;L;;;;;N;;;;;
+1057;MYANMAR VOWEL SIGN VOCALIC RR;Mc;0;L;;;;;N;;;;;
+1058;MYANMAR VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;;
+1059;MYANMAR VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;;
+10A0;GEORGIAN CAPITAL LETTER AN;Lu;0;L;;;;;N;;Khutsuri;;2D00;
+10A1;GEORGIAN CAPITAL LETTER BAN;Lu;0;L;;;;;N;;Khutsuri;;2D01;
+10A2;GEORGIAN CAPITAL LETTER GAN;Lu;0;L;;;;;N;;Khutsuri;;2D02;
+10A3;GEORGIAN CAPITAL LETTER DON;Lu;0;L;;;;;N;;Khutsuri;;2D03;
+10A4;GEORGIAN CAPITAL LETTER EN;Lu;0;L;;;;;N;;Khutsuri;;2D04;
+10A5;GEORGIAN CAPITAL LETTER VIN;Lu;0;L;;;;;N;;Khutsuri;;2D05;
+10A6;GEORGIAN CAPITAL LETTER ZEN;Lu;0;L;;;;;N;;Khutsuri;;2D06;
+10A7;GEORGIAN CAPITAL LETTER TAN;Lu;0;L;;;;;N;;Khutsuri;;2D07;
+10A8;GEORGIAN CAPITAL LETTER IN;Lu;0;L;;;;;N;;Khutsuri;;2D08;
+10A9;GEORGIAN CAPITAL LETTER KAN;Lu;0;L;;;;;N;;Khutsuri;;2D09;
+10AA;GEORGIAN CAPITAL LETTER LAS;Lu;0;L;;;;;N;;Khutsuri;;2D0A;
+10AB;GEORGIAN CAPITAL LETTER MAN;Lu;0;L;;;;;N;;Khutsuri;;2D0B;
+10AC;GEORGIAN CAPITAL LETTER NAR;Lu;0;L;;;;;N;;Khutsuri;;2D0C;
+10AD;GEORGIAN CAPITAL LETTER ON;Lu;0;L;;;;;N;;Khutsuri;;2D0D;
+10AE;GEORGIAN CAPITAL LETTER PAR;Lu;0;L;;;;;N;;Khutsuri;;2D0E;
+10AF;GEORGIAN CAPITAL LETTER ZHAR;Lu;0;L;;;;;N;;Khutsuri;;2D0F;
+10B0;GEORGIAN CAPITAL LETTER RAE;Lu;0;L;;;;;N;;Khutsuri;;2D10;
+10B1;GEORGIAN CAPITAL LETTER SAN;Lu;0;L;;;;;N;;Khutsuri;;2D11;
+10B2;GEORGIAN CAPITAL LETTER TAR;Lu;0;L;;;;;N;;Khutsuri;;2D12;
+10B3;GEORGIAN CAPITAL LETTER UN;Lu;0;L;;;;;N;;Khutsuri;;2D13;
+10B4;GEORGIAN CAPITAL LETTER PHAR;Lu;0;L;;;;;N;;Khutsuri;;2D14;
+10B5;GEORGIAN CAPITAL LETTER KHAR;Lu;0;L;;;;;N;;Khutsuri;;2D15;
+10B6;GEORGIAN CAPITAL LETTER GHAN;Lu;0;L;;;;;N;;Khutsuri;;2D16;
+10B7;GEORGIAN CAPITAL LETTER QAR;Lu;0;L;;;;;N;;Khutsuri;;2D17;
+10B8;GEORGIAN CAPITAL LETTER SHIN;Lu;0;L;;;;;N;;Khutsuri;;2D18;
+10B9;GEORGIAN CAPITAL LETTER CHIN;Lu;0;L;;;;;N;;Khutsuri;;2D19;
+10BA;GEORGIAN CAPITAL LETTER CAN;Lu;0;L;;;;;N;;Khutsuri;;2D1A;
+10BB;GEORGIAN CAPITAL LETTER JIL;Lu;0;L;;;;;N;;Khutsuri;;2D1B;
+10BC;GEORGIAN CAPITAL LETTER CIL;Lu;0;L;;;;;N;;Khutsuri;;2D1C;
+10BD;GEORGIAN CAPITAL LETTER CHAR;Lu;0;L;;;;;N;;Khutsuri;;2D1D;
+10BE;GEORGIAN CAPITAL LETTER XAN;Lu;0;L;;;;;N;;Khutsuri;;2D1E;
+10BF;GEORGIAN CAPITAL LETTER JHAN;Lu;0;L;;;;;N;;Khutsuri;;2D1F;
+10C0;GEORGIAN CAPITAL LETTER HAE;Lu;0;L;;;;;N;;Khutsuri;;2D20;
+10C1;GEORGIAN CAPITAL LETTER HE;Lu;0;L;;;;;N;;Khutsuri;;2D21;
+10C2;GEORGIAN CAPITAL LETTER HIE;Lu;0;L;;;;;N;;Khutsuri;;2D22;
+10C3;GEORGIAN CAPITAL LETTER WE;Lu;0;L;;;;;N;;Khutsuri;;2D23;
+10C4;GEORGIAN CAPITAL LETTER HAR;Lu;0;L;;;;;N;;Khutsuri;;2D24;
+10C5;GEORGIAN CAPITAL LETTER HOE;Lu;0;L;;;;;N;;Khutsuri;;2D25;
+10D0;GEORGIAN LETTER AN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER AN;;;;
+10D1;GEORGIAN LETTER BAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER BAN;;;;
+10D2;GEORGIAN LETTER GAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER GAN;;;;
+10D3;GEORGIAN LETTER DON;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER DON;;;;
+10D4;GEORGIAN LETTER EN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER EN;;;;
+10D5;GEORGIAN LETTER VIN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER VIN;;;;
+10D6;GEORGIAN LETTER ZEN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER ZEN;;;;
+10D7;GEORGIAN LETTER TAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER TAN;;;;
+10D8;GEORGIAN LETTER IN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER IN;;;;
+10D9;GEORGIAN LETTER KAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER KAN;;;;
+10DA;GEORGIAN LETTER LAS;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER LAS;;;;
+10DB;GEORGIAN LETTER MAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER MAN;;;;
+10DC;GEORGIAN LETTER NAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER NAR;;;;
+10DD;GEORGIAN LETTER ON;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER ON;;;;
+10DE;GEORGIAN LETTER PAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER PAR;;;;
+10DF;GEORGIAN LETTER ZHAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER ZHAR;;;;
+10E0;GEORGIAN LETTER RAE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER RAE;;;;
+10E1;GEORGIAN LETTER SAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER SAN;;;;
+10E2;GEORGIAN LETTER TAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER TAR;;;;
+10E3;GEORGIAN LETTER UN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER UN;;;;
+10E4;GEORGIAN LETTER PHAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER PHAR;;;;
+10E5;GEORGIAN LETTER KHAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER KHAR;;;;
+10E6;GEORGIAN LETTER GHAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER GHAN;;;;
+10E7;GEORGIAN LETTER QAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER QAR;;;;
+10E8;GEORGIAN LETTER SHIN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER SHIN;;;;
+10E9;GEORGIAN LETTER CHIN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER CHIN;;;;
+10EA;GEORGIAN LETTER CAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER CAN;;;;
+10EB;GEORGIAN LETTER JIL;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER JIL;;;;
+10EC;GEORGIAN LETTER CIL;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER CIL;;;;
+10ED;GEORGIAN LETTER CHAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER CHAR;;;;
+10EE;GEORGIAN LETTER XAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER XAN;;;;
+10EF;GEORGIAN LETTER JHAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER JHAN;;;;
+10F0;GEORGIAN LETTER HAE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER HAE;;;;
+10F1;GEORGIAN LETTER HE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER HE;;;;
+10F2;GEORGIAN LETTER HIE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER HIE;;;;
+10F3;GEORGIAN LETTER WE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER WE;;;;
+10F4;GEORGIAN LETTER HAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER HAR;;;;
+10F5;GEORGIAN LETTER HOE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER HOE;;;;
+10F6;GEORGIAN LETTER FI;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER FI;;;;
+10F7;GEORGIAN LETTER YN;Lo;0;L;;;;;N;;;;;
+10F8;GEORGIAN LETTER ELIFI;Lo;0;L;;;;;N;;;;;
+10F9;GEORGIAN LETTER TURNED GAN;Lo;0;L;;;;;N;;;;;
+10FA;GEORGIAN LETTER AIN;Lo;0;L;;;;;N;;;;;
+10FB;GEORGIAN PARAGRAPH SEPARATOR;Po;0;L;;;;;N;;;;;
+10FC;MODIFIER LETTER GEORGIAN NAR;Lm;0;L;<super> 10DC;;;;N;;;;;
+1100;HANGUL CHOSEONG KIYEOK;Lo;0;L;;;;;N;;g *;;;
+1101;HANGUL CHOSEONG SSANGKIYEOK;Lo;0;L;;;;;N;;gg *;;;
+1102;HANGUL CHOSEONG NIEUN;Lo;0;L;;;;;N;;n *;;;
+1103;HANGUL CHOSEONG TIKEUT;Lo;0;L;;;;;N;;d *;;;
+1104;HANGUL CHOSEONG SSANGTIKEUT;Lo;0;L;;;;;N;;dd *;;;
+1105;HANGUL CHOSEONG RIEUL;Lo;0;L;;;;;N;;r *;;;
+1106;HANGUL CHOSEONG MIEUM;Lo;0;L;;;;;N;;m *;;;
+1107;HANGUL CHOSEONG PIEUP;Lo;0;L;;;;;N;;b *;;;
+1108;HANGUL CHOSEONG SSANGPIEUP;Lo;0;L;;;;;N;;bb *;;;
+1109;HANGUL CHOSEONG SIOS;Lo;0;L;;;;;N;;s *;;;
+110A;HANGUL CHOSEONG SSANGSIOS;Lo;0;L;;;;;N;;ss *;;;
+110B;HANGUL CHOSEONG IEUNG;Lo;0;L;;;;;N;;;;;
+110C;HANGUL CHOSEONG CIEUC;Lo;0;L;;;;;N;;j *;;;
+110D;HANGUL CHOSEONG SSANGCIEUC;Lo;0;L;;;;;N;;jj *;;;
+110E;HANGUL CHOSEONG CHIEUCH;Lo;0;L;;;;;N;;c *;;;
+110F;HANGUL CHOSEONG KHIEUKH;Lo;0;L;;;;;N;;k *;;;
+1110;HANGUL CHOSEONG THIEUTH;Lo;0;L;;;;;N;;t *;;;
+1111;HANGUL CHOSEONG PHIEUPH;Lo;0;L;;;;;N;;p *;;;
+1112;HANGUL CHOSEONG HIEUH;Lo;0;L;;;;;N;;h *;;;
+1113;HANGUL CHOSEONG NIEUN-KIYEOK;Lo;0;L;;;;;N;;;;;
+1114;HANGUL CHOSEONG SSANGNIEUN;Lo;0;L;;;;;N;;;;;
+1115;HANGUL CHOSEONG NIEUN-TIKEUT;Lo;0;L;;;;;N;;;;;
+1116;HANGUL CHOSEONG NIEUN-PIEUP;Lo;0;L;;;;;N;;;;;
+1117;HANGUL CHOSEONG TIKEUT-KIYEOK;Lo;0;L;;;;;N;;;;;
+1118;HANGUL CHOSEONG RIEUL-NIEUN;Lo;0;L;;;;;N;;;;;
+1119;HANGUL CHOSEONG SSANGRIEUL;Lo;0;L;;;;;N;;;;;
+111A;HANGUL CHOSEONG RIEUL-HIEUH;Lo;0;L;;;;;N;;;;;
+111B;HANGUL CHOSEONG KAPYEOUNRIEUL;Lo;0;L;;;;;N;;;;;
+111C;HANGUL CHOSEONG MIEUM-PIEUP;Lo;0;L;;;;;N;;;;;
+111D;HANGUL CHOSEONG KAPYEOUNMIEUM;Lo;0;L;;;;;N;;;;;
+111E;HANGUL CHOSEONG PIEUP-KIYEOK;Lo;0;L;;;;;N;;;;;
+111F;HANGUL CHOSEONG PIEUP-NIEUN;Lo;0;L;;;;;N;;;;;
+1120;HANGUL CHOSEONG PIEUP-TIKEUT;Lo;0;L;;;;;N;;;;;
+1121;HANGUL CHOSEONG PIEUP-SIOS;Lo;0;L;;;;;N;;;;;
+1122;HANGUL CHOSEONG PIEUP-SIOS-KIYEOK;Lo;0;L;;;;;N;;;;;
+1123;HANGUL CHOSEONG PIEUP-SIOS-TIKEUT;Lo;0;L;;;;;N;;;;;
+1124;HANGUL CHOSEONG PIEUP-SIOS-PIEUP;Lo;0;L;;;;;N;;;;;
+1125;HANGUL CHOSEONG PIEUP-SSANGSIOS;Lo;0;L;;;;;N;;;;;
+1126;HANGUL CHOSEONG PIEUP-SIOS-CIEUC;Lo;0;L;;;;;N;;;;;
+1127;HANGUL CHOSEONG PIEUP-CIEUC;Lo;0;L;;;;;N;;;;;
+1128;HANGUL CHOSEONG PIEUP-CHIEUCH;Lo;0;L;;;;;N;;;;;
+1129;HANGUL CHOSEONG PIEUP-THIEUTH;Lo;0;L;;;;;N;;;;;
+112A;HANGUL CHOSEONG PIEUP-PHIEUPH;Lo;0;L;;;;;N;;;;;
+112B;HANGUL CHOSEONG KAPYEOUNPIEUP;Lo;0;L;;;;;N;;;;;
+112C;HANGUL CHOSEONG KAPYEOUNSSANGPIEUP;Lo;0;L;;;;;N;;;;;
+112D;HANGUL CHOSEONG SIOS-KIYEOK;Lo;0;L;;;;;N;;;;;
+112E;HANGUL CHOSEONG SIOS-NIEUN;Lo;0;L;;;;;N;;;;;
+112F;HANGUL CHOSEONG SIOS-TIKEUT;Lo;0;L;;;;;N;;;;;
+1130;HANGUL CHOSEONG SIOS-RIEUL;Lo;0;L;;;;;N;;;;;
+1131;HANGUL CHOSEONG SIOS-MIEUM;Lo;0;L;;;;;N;;;;;
+1132;HANGUL CHOSEONG SIOS-PIEUP;Lo;0;L;;;;;N;;;;;
+1133;HANGUL CHOSEONG SIOS-PIEUP-KIYEOK;Lo;0;L;;;;;N;;;;;
+1134;HANGUL CHOSEONG SIOS-SSANGSIOS;Lo;0;L;;;;;N;;;;;
+1135;HANGUL CHOSEONG SIOS-IEUNG;Lo;0;L;;;;;N;;;;;
+1136;HANGUL CHOSEONG SIOS-CIEUC;Lo;0;L;;;;;N;;;;;
+1137;HANGUL CHOSEONG SIOS-CHIEUCH;Lo;0;L;;;;;N;;;;;
+1138;HANGUL CHOSEONG SIOS-KHIEUKH;Lo;0;L;;;;;N;;;;;
+1139;HANGUL CHOSEONG SIOS-THIEUTH;Lo;0;L;;;;;N;;;;;
+113A;HANGUL CHOSEONG SIOS-PHIEUPH;Lo;0;L;;;;;N;;;;;
+113B;HANGUL CHOSEONG SIOS-HIEUH;Lo;0;L;;;;;N;;;;;
+113C;HANGUL CHOSEONG CHITUEUMSIOS;Lo;0;L;;;;;N;;;;;
+113D;HANGUL CHOSEONG CHITUEUMSSANGSIOS;Lo;0;L;;;;;N;;;;;
+113E;HANGUL CHOSEONG CEONGCHIEUMSIOS;Lo;0;L;;;;;N;;;;;
+113F;HANGUL CHOSEONG CEONGCHIEUMSSANGSIOS;Lo;0;L;;;;;N;;;;;
+1140;HANGUL CHOSEONG PANSIOS;Lo;0;L;;;;;N;;;;;
+1141;HANGUL CHOSEONG IEUNG-KIYEOK;Lo;0;L;;;;;N;;;;;
+1142;HANGUL CHOSEONG IEUNG-TIKEUT;Lo;0;L;;;;;N;;;;;
+1143;HANGUL CHOSEONG IEUNG-MIEUM;Lo;0;L;;;;;N;;;;;
+1144;HANGUL CHOSEONG IEUNG-PIEUP;Lo;0;L;;;;;N;;;;;
+1145;HANGUL CHOSEONG IEUNG-SIOS;Lo;0;L;;;;;N;;;;;
+1146;HANGUL CHOSEONG IEUNG-PANSIOS;Lo;0;L;;;;;N;;;;;
+1147;HANGUL CHOSEONG SSANGIEUNG;Lo;0;L;;;;;N;;;;;
+1148;HANGUL CHOSEONG IEUNG-CIEUC;Lo;0;L;;;;;N;;;;;
+1149;HANGUL CHOSEONG IEUNG-CHIEUCH;Lo;0;L;;;;;N;;;;;
+114A;HANGUL CHOSEONG IEUNG-THIEUTH;Lo;0;L;;;;;N;;;;;
+114B;HANGUL CHOSEONG IEUNG-PHIEUPH;Lo;0;L;;;;;N;;;;;
+114C;HANGUL CHOSEONG YESIEUNG;Lo;0;L;;;;;N;;;;;
+114D;HANGUL CHOSEONG CIEUC-IEUNG;Lo;0;L;;;;;N;;;;;
+114E;HANGUL CHOSEONG CHITUEUMCIEUC;Lo;0;L;;;;;N;;;;;
+114F;HANGUL CHOSEONG CHITUEUMSSANGCIEUC;Lo;0;L;;;;;N;;;;;
+1150;HANGUL CHOSEONG CEONGCHIEUMCIEUC;Lo;0;L;;;;;N;;;;;
+1151;HANGUL CHOSEONG CEONGCHIEUMSSANGCIEUC;Lo;0;L;;;;;N;;;;;
+1152;HANGUL CHOSEONG CHIEUCH-KHIEUKH;Lo;0;L;;;;;N;;;;;
+1153;HANGUL CHOSEONG CHIEUCH-HIEUH;Lo;0;L;;;;;N;;;;;
+1154;HANGUL CHOSEONG CHITUEUMCHIEUCH;Lo;0;L;;;;;N;;;;;
+1155;HANGUL CHOSEONG CEONGCHIEUMCHIEUCH;Lo;0;L;;;;;N;;;;;
+1156;HANGUL CHOSEONG PHIEUPH-PIEUP;Lo;0;L;;;;;N;;;;;
+1157;HANGUL CHOSEONG KAPYEOUNPHIEUPH;Lo;0;L;;;;;N;;;;;
+1158;HANGUL CHOSEONG SSANGHIEUH;Lo;0;L;;;;;N;;;;;
+1159;HANGUL CHOSEONG YEORINHIEUH;Lo;0;L;;;;;N;;;;;
+115F;HANGUL CHOSEONG FILLER;Lo;0;L;;;;;N;;;;;
+1160;HANGUL JUNGSEONG FILLER;Lo;0;L;;;;;N;;;;;
+1161;HANGUL JUNGSEONG A;Lo;0;L;;;;;N;;;;;
+1162;HANGUL JUNGSEONG AE;Lo;0;L;;;;;N;;;;;
+1163;HANGUL JUNGSEONG YA;Lo;0;L;;;;;N;;;;;
+1164;HANGUL JUNGSEONG YAE;Lo;0;L;;;;;N;;;;;
+1165;HANGUL JUNGSEONG EO;Lo;0;L;;;;;N;;;;;
+1166;HANGUL JUNGSEONG E;Lo;0;L;;;;;N;;;;;
+1167;HANGUL JUNGSEONG YEO;Lo;0;L;;;;;N;;;;;
+1168;HANGUL JUNGSEONG YE;Lo;0;L;;;;;N;;;;;
+1169;HANGUL JUNGSEONG O;Lo;0;L;;;;;N;;;;;
+116A;HANGUL JUNGSEONG WA;Lo;0;L;;;;;N;;;;;
+116B;HANGUL JUNGSEONG WAE;Lo;0;L;;;;;N;;;;;
+116C;HANGUL JUNGSEONG OE;Lo;0;L;;;;;N;;;;;
+116D;HANGUL JUNGSEONG YO;Lo;0;L;;;;;N;;;;;
+116E;HANGUL JUNGSEONG U;Lo;0;L;;;;;N;;;;;
+116F;HANGUL JUNGSEONG WEO;Lo;0;L;;;;;N;;;;;
+1170;HANGUL JUNGSEONG WE;Lo;0;L;;;;;N;;;;;
+1171;HANGUL JUNGSEONG WI;Lo;0;L;;;;;N;;;;;
+1172;HANGUL JUNGSEONG YU;Lo;0;L;;;;;N;;;;;
+1173;HANGUL JUNGSEONG EU;Lo;0;L;;;;;N;;;;;
+1174;HANGUL JUNGSEONG YI;Lo;0;L;;;;;N;;;;;
+1175;HANGUL JUNGSEONG I;Lo;0;L;;;;;N;;;;;
+1176;HANGUL JUNGSEONG A-O;Lo;0;L;;;;;N;;;;;
+1177;HANGUL JUNGSEONG A-U;Lo;0;L;;;;;N;;;;;
+1178;HANGUL JUNGSEONG YA-O;Lo;0;L;;;;;N;;;;;
+1179;HANGUL JUNGSEONG YA-YO;Lo;0;L;;;;;N;;;;;
+117A;HANGUL JUNGSEONG EO-O;Lo;0;L;;;;;N;;;;;
+117B;HANGUL JUNGSEONG EO-U;Lo;0;L;;;;;N;;;;;
+117C;HANGUL JUNGSEONG EO-EU;Lo;0;L;;;;;N;;;;;
+117D;HANGUL JUNGSEONG YEO-O;Lo;0;L;;;;;N;;;;;
+117E;HANGUL JUNGSEONG YEO-U;Lo;0;L;;;;;N;;;;;
+117F;HANGUL JUNGSEONG O-EO;Lo;0;L;;;;;N;;;;;
+1180;HANGUL JUNGSEONG O-E;Lo;0;L;;;;;N;;;;;
+1181;HANGUL JUNGSEONG O-YE;Lo;0;L;;;;;N;;;;;
+1182;HANGUL JUNGSEONG O-O;Lo;0;L;;;;;N;;;;;
+1183;HANGUL JUNGSEONG O-U;Lo;0;L;;;;;N;;;;;
+1184;HANGUL JUNGSEONG YO-YA;Lo;0;L;;;;;N;;;;;
+1185;HANGUL JUNGSEONG YO-YAE;Lo;0;L;;;;;N;;;;;
+1186;HANGUL JUNGSEONG YO-YEO;Lo;0;L;;;;;N;;;;;
+1187;HANGUL JUNGSEONG YO-O;Lo;0;L;;;;;N;;;;;
+1188;HANGUL JUNGSEONG YO-I;Lo;0;L;;;;;N;;;;;
+1189;HANGUL JUNGSEONG U-A;Lo;0;L;;;;;N;;;;;
+118A;HANGUL JUNGSEONG U-AE;Lo;0;L;;;;;N;;;;;
+118B;HANGUL JUNGSEONG U-EO-EU;Lo;0;L;;;;;N;;;;;
+118C;HANGUL JUNGSEONG U-YE;Lo;0;L;;;;;N;;;;;
+118D;HANGUL JUNGSEONG U-U;Lo;0;L;;;;;N;;;;;
+118E;HANGUL JUNGSEONG YU-A;Lo;0;L;;;;;N;;;;;
+118F;HANGUL JUNGSEONG YU-EO;Lo;0;L;;;;;N;;;;;
+1190;HANGUL JUNGSEONG YU-E;Lo;0;L;;;;;N;;;;;
+1191;HANGUL JUNGSEONG YU-YEO;Lo;0;L;;;;;N;;;;;
+1192;HANGUL JUNGSEONG YU-YE;Lo;0;L;;;;;N;;;;;
+1193;HANGUL JUNGSEONG YU-U;Lo;0;L;;;;;N;;;;;
+1194;HANGUL JUNGSEONG YU-I;Lo;0;L;;;;;N;;;;;
+1195;HANGUL JUNGSEONG EU-U;Lo;0;L;;;;;N;;;;;
+1196;HANGUL JUNGSEONG EU-EU;Lo;0;L;;;;;N;;;;;
+1197;HANGUL JUNGSEONG YI-U;Lo;0;L;;;;;N;;;;;
+1198;HANGUL JUNGSEONG I-A;Lo;0;L;;;;;N;;;;;
+1199;HANGUL JUNGSEONG I-YA;Lo;0;L;;;;;N;;;;;
+119A;HANGUL JUNGSEONG I-O;Lo;0;L;;;;;N;;;;;
+119B;HANGUL JUNGSEONG I-U;Lo;0;L;;;;;N;;;;;
+119C;HANGUL JUNGSEONG I-EU;Lo;0;L;;;;;N;;;;;
+119D;HANGUL JUNGSEONG I-ARAEA;Lo;0;L;;;;;N;;;;;
+119E;HANGUL JUNGSEONG ARAEA;Lo;0;L;;;;;N;;;;;
+119F;HANGUL JUNGSEONG ARAEA-EO;Lo;0;L;;;;;N;;;;;
+11A0;HANGUL JUNGSEONG ARAEA-U;Lo;0;L;;;;;N;;;;;
+11A1;HANGUL JUNGSEONG ARAEA-I;Lo;0;L;;;;;N;;;;;
+11A2;HANGUL JUNGSEONG SSANGARAEA;Lo;0;L;;;;;N;;;;;
+11A8;HANGUL JONGSEONG KIYEOK;Lo;0;L;;;;;N;;g *;;;
+11A9;HANGUL JONGSEONG SSANGKIYEOK;Lo;0;L;;;;;N;;gg *;;;
+11AA;HANGUL JONGSEONG KIYEOK-SIOS;Lo;0;L;;;;;N;;gs *;;;
+11AB;HANGUL JONGSEONG NIEUN;Lo;0;L;;;;;N;;n *;;;
+11AC;HANGUL JONGSEONG NIEUN-CIEUC;Lo;0;L;;;;;N;;nj *;;;
+11AD;HANGUL JONGSEONG NIEUN-HIEUH;Lo;0;L;;;;;N;;nh *;;;
+11AE;HANGUL JONGSEONG TIKEUT;Lo;0;L;;;;;N;;d *;;;
+11AF;HANGUL JONGSEONG RIEUL;Lo;0;L;;;;;N;;l *;;;
+11B0;HANGUL JONGSEONG RIEUL-KIYEOK;Lo;0;L;;;;;N;;lg *;;;
+11B1;HANGUL JONGSEONG RIEUL-MIEUM;Lo;0;L;;;;;N;;lm *;;;
+11B2;HANGUL JONGSEONG RIEUL-PIEUP;Lo;0;L;;;;;N;;lb *;;;
+11B3;HANGUL JONGSEONG RIEUL-SIOS;Lo;0;L;;;;;N;;ls *;;;
+11B4;HANGUL JONGSEONG RIEUL-THIEUTH;Lo;0;L;;;;;N;;lt *;;;
+11B5;HANGUL JONGSEONG RIEUL-PHIEUPH;Lo;0;L;;;;;N;;lp *;;;
+11B6;HANGUL JONGSEONG RIEUL-HIEUH;Lo;0;L;;;;;N;;lh *;;;
+11B7;HANGUL JONGSEONG MIEUM;Lo;0;L;;;;;N;;m *;;;
+11B8;HANGUL JONGSEONG PIEUP;Lo;0;L;;;;;N;;b *;;;
+11B9;HANGUL JONGSEONG PIEUP-SIOS;Lo;0;L;;;;;N;;bs *;;;
+11BA;HANGUL JONGSEONG SIOS;Lo;0;L;;;;;N;;s *;;;
+11BB;HANGUL JONGSEONG SSANGSIOS;Lo;0;L;;;;;N;;ss *;;;
+11BC;HANGUL JONGSEONG IEUNG;Lo;0;L;;;;;N;;ng *;;;
+11BD;HANGUL JONGSEONG CIEUC;Lo;0;L;;;;;N;;j *;;;
+11BE;HANGUL JONGSEONG CHIEUCH;Lo;0;L;;;;;N;;c *;;;
+11BF;HANGUL JONGSEONG KHIEUKH;Lo;0;L;;;;;N;;k *;;;
+11C0;HANGUL JONGSEONG THIEUTH;Lo;0;L;;;;;N;;t *;;;
+11C1;HANGUL JONGSEONG PHIEUPH;Lo;0;L;;;;;N;;p *;;;
+11C2;HANGUL JONGSEONG HIEUH;Lo;0;L;;;;;N;;h *;;;
+11C3;HANGUL JONGSEONG KIYEOK-RIEUL;Lo;0;L;;;;;N;;;;;
+11C4;HANGUL JONGSEONG KIYEOK-SIOS-KIYEOK;Lo;0;L;;;;;N;;;;;
+11C5;HANGUL JONGSEONG NIEUN-KIYEOK;Lo;0;L;;;;;N;;;;;
+11C6;HANGUL JONGSEONG NIEUN-TIKEUT;Lo;0;L;;;;;N;;;;;
+11C7;HANGUL JONGSEONG NIEUN-SIOS;Lo;0;L;;;;;N;;;;;
+11C8;HANGUL JONGSEONG NIEUN-PANSIOS;Lo;0;L;;;;;N;;;;;
+11C9;HANGUL JONGSEONG NIEUN-THIEUTH;Lo;0;L;;;;;N;;;;;
+11CA;HANGUL JONGSEONG TIKEUT-KIYEOK;Lo;0;L;;;;;N;;;;;
+11CB;HANGUL JONGSEONG TIKEUT-RIEUL;Lo;0;L;;;;;N;;;;;
+11CC;HANGUL JONGSEONG RIEUL-KIYEOK-SIOS;Lo;0;L;;;;;N;;;;;
+11CD;HANGUL JONGSEONG RIEUL-NIEUN;Lo;0;L;;;;;N;;;;;
+11CE;HANGUL JONGSEONG RIEUL-TIKEUT;Lo;0;L;;;;;N;;;;;
+11CF;HANGUL JONGSEONG RIEUL-TIKEUT-HIEUH;Lo;0;L;;;;;N;;;;;
+11D0;HANGUL JONGSEONG SSANGRIEUL;Lo;0;L;;;;;N;;;;;
+11D1;HANGUL JONGSEONG RIEUL-MIEUM-KIYEOK;Lo;0;L;;;;;N;;;;;
+11D2;HANGUL JONGSEONG RIEUL-MIEUM-SIOS;Lo;0;L;;;;;N;;;;;
+11D3;HANGUL JONGSEONG RIEUL-PIEUP-SIOS;Lo;0;L;;;;;N;;;;;
+11D4;HANGUL JONGSEONG RIEUL-PIEUP-HIEUH;Lo;0;L;;;;;N;;;;;
+11D5;HANGUL JONGSEONG RIEUL-KAPYEOUNPIEUP;Lo;0;L;;;;;N;;;;;
+11D6;HANGUL JONGSEONG RIEUL-SSANGSIOS;Lo;0;L;;;;;N;;;;;
+11D7;HANGUL JONGSEONG RIEUL-PANSIOS;Lo;0;L;;;;;N;;;;;
+11D8;HANGUL JONGSEONG RIEUL-KHIEUKH;Lo;0;L;;;;;N;;;;;
+11D9;HANGUL JONGSEONG RIEUL-YEORINHIEUH;Lo;0;L;;;;;N;;;;;
+11DA;HANGUL JONGSEONG MIEUM-KIYEOK;Lo;0;L;;;;;N;;;;;
+11DB;HANGUL JONGSEONG MIEUM-RIEUL;Lo;0;L;;;;;N;;;;;
+11DC;HANGUL JONGSEONG MIEUM-PIEUP;Lo;0;L;;;;;N;;;;;
+11DD;HANGUL JONGSEONG MIEUM-SIOS;Lo;0;L;;;;;N;;;;;
+11DE;HANGUL JONGSEONG MIEUM-SSANGSIOS;Lo;0;L;;;;;N;;;;;
+11DF;HANGUL JONGSEONG MIEUM-PANSIOS;Lo;0;L;;;;;N;;;;;
+11E0;HANGUL JONGSEONG MIEUM-CHIEUCH;Lo;0;L;;;;;N;;;;;
+11E1;HANGUL JONGSEONG MIEUM-HIEUH;Lo;0;L;;;;;N;;;;;
+11E2;HANGUL JONGSEONG KAPYEOUNMIEUM;Lo;0;L;;;;;N;;;;;
+11E3;HANGUL JONGSEONG PIEUP-RIEUL;Lo;0;L;;;;;N;;;;;
+11E4;HANGUL JONGSEONG PIEUP-PHIEUPH;Lo;0;L;;;;;N;;;;;
+11E5;HANGUL JONGSEONG PIEUP-HIEUH;Lo;0;L;;;;;N;;;;;
+11E6;HANGUL JONGSEONG KAPYEOUNPIEUP;Lo;0;L;;;;;N;;;;;
+11E7;HANGUL JONGSEONG SIOS-KIYEOK;Lo;0;L;;;;;N;;;;;
+11E8;HANGUL JONGSEONG SIOS-TIKEUT;Lo;0;L;;;;;N;;;;;
+11E9;HANGUL JONGSEONG SIOS-RIEUL;Lo;0;L;;;;;N;;;;;
+11EA;HANGUL JONGSEONG SIOS-PIEUP;Lo;0;L;;;;;N;;;;;
+11EB;HANGUL JONGSEONG PANSIOS;Lo;0;L;;;;;N;;;;;
+11EC;HANGUL JONGSEONG IEUNG-KIYEOK;Lo;0;L;;;;;N;;;;;
+11ED;HANGUL JONGSEONG IEUNG-SSANGKIYEOK;Lo;0;L;;;;;N;;;;;
+11EE;HANGUL JONGSEONG SSANGIEUNG;Lo;0;L;;;;;N;;;;;
+11EF;HANGUL JONGSEONG IEUNG-KHIEUKH;Lo;0;L;;;;;N;;;;;
+11F0;HANGUL JONGSEONG YESIEUNG;Lo;0;L;;;;;N;;;;;
+11F1;HANGUL JONGSEONG YESIEUNG-SIOS;Lo;0;L;;;;;N;;;;;
+11F2;HANGUL JONGSEONG YESIEUNG-PANSIOS;Lo;0;L;;;;;N;;;;;
+11F3;HANGUL JONGSEONG PHIEUPH-PIEUP;Lo;0;L;;;;;N;;;;;
+11F4;HANGUL JONGSEONG KAPYEOUNPHIEUPH;Lo;0;L;;;;;N;;;;;
+11F5;HANGUL JONGSEONG HIEUH-NIEUN;Lo;0;L;;;;;N;;;;;
+11F6;HANGUL JONGSEONG HIEUH-RIEUL;Lo;0;L;;;;;N;;;;;
+11F7;HANGUL JONGSEONG HIEUH-MIEUM;Lo;0;L;;;;;N;;;;;
+11F8;HANGUL JONGSEONG HIEUH-PIEUP;Lo;0;L;;;;;N;;;;;
+11F9;HANGUL JONGSEONG YEORINHIEUH;Lo;0;L;;;;;N;;;;;
+1200;ETHIOPIC SYLLABLE HA;Lo;0;L;;;;;N;;;;;
+1201;ETHIOPIC SYLLABLE HU;Lo;0;L;;;;;N;;;;;
+1202;ETHIOPIC SYLLABLE HI;Lo;0;L;;;;;N;;;;;
+1203;ETHIOPIC SYLLABLE HAA;Lo;0;L;;;;;N;;;;;
+1204;ETHIOPIC SYLLABLE HEE;Lo;0;L;;;;;N;;;;;
+1205;ETHIOPIC SYLLABLE HE;Lo;0;L;;;;;N;;;;;
+1206;ETHIOPIC SYLLABLE HO;Lo;0;L;;;;;N;;;;;
+1207;ETHIOPIC SYLLABLE HOA;Lo;0;L;;;;;N;;;;;
+1208;ETHIOPIC SYLLABLE LA;Lo;0;L;;;;;N;;;;;
+1209;ETHIOPIC SYLLABLE LU;Lo;0;L;;;;;N;;;;;
+120A;ETHIOPIC SYLLABLE LI;Lo;0;L;;;;;N;;;;;
+120B;ETHIOPIC SYLLABLE LAA;Lo;0;L;;;;;N;;;;;
+120C;ETHIOPIC SYLLABLE LEE;Lo;0;L;;;;;N;;;;;
+120D;ETHIOPIC SYLLABLE LE;Lo;0;L;;;;;N;;;;;
+120E;ETHIOPIC SYLLABLE LO;Lo;0;L;;;;;N;;;;;
+120F;ETHIOPIC SYLLABLE LWA;Lo;0;L;;;;;N;;;;;
+1210;ETHIOPIC SYLLABLE HHA;Lo;0;L;;;;;N;;;;;
+1211;ETHIOPIC SYLLABLE HHU;Lo;0;L;;;;;N;;;;;
+1212;ETHIOPIC SYLLABLE HHI;Lo;0;L;;;;;N;;;;;
+1213;ETHIOPIC SYLLABLE HHAA;Lo;0;L;;;;;N;;;;;
+1214;ETHIOPIC SYLLABLE HHEE;Lo;0;L;;;;;N;;;;;
+1215;ETHIOPIC SYLLABLE HHE;Lo;0;L;;;;;N;;;;;
+1216;ETHIOPIC SYLLABLE HHO;Lo;0;L;;;;;N;;;;;
+1217;ETHIOPIC SYLLABLE HHWA;Lo;0;L;;;;;N;;;;;
+1218;ETHIOPIC SYLLABLE MA;Lo;0;L;;;;;N;;;;;
+1219;ETHIOPIC SYLLABLE MU;Lo;0;L;;;;;N;;;;;
+121A;ETHIOPIC SYLLABLE MI;Lo;0;L;;;;;N;;;;;
+121B;ETHIOPIC SYLLABLE MAA;Lo;0;L;;;;;N;;;;;
+121C;ETHIOPIC SYLLABLE MEE;Lo;0;L;;;;;N;;;;;
+121D;ETHIOPIC SYLLABLE ME;Lo;0;L;;;;;N;;;;;
+121E;ETHIOPIC SYLLABLE MO;Lo;0;L;;;;;N;;;;;
+121F;ETHIOPIC SYLLABLE MWA;Lo;0;L;;;;;N;;;;;
+1220;ETHIOPIC SYLLABLE SZA;Lo;0;L;;;;;N;;;;;
+1221;ETHIOPIC SYLLABLE SZU;Lo;0;L;;;;;N;;;;;
+1222;ETHIOPIC SYLLABLE SZI;Lo;0;L;;;;;N;;;;;
+1223;ETHIOPIC SYLLABLE SZAA;Lo;0;L;;;;;N;;;;;
+1224;ETHIOPIC SYLLABLE SZEE;Lo;0;L;;;;;N;;;;;
+1225;ETHIOPIC SYLLABLE SZE;Lo;0;L;;;;;N;;;;;
+1226;ETHIOPIC SYLLABLE SZO;Lo;0;L;;;;;N;;;;;
+1227;ETHIOPIC SYLLABLE SZWA;Lo;0;L;;;;;N;;;;;
+1228;ETHIOPIC SYLLABLE RA;Lo;0;L;;;;;N;;;;;
+1229;ETHIOPIC SYLLABLE RU;Lo;0;L;;;;;N;;;;;
+122A;ETHIOPIC SYLLABLE RI;Lo;0;L;;;;;N;;;;;
+122B;ETHIOPIC SYLLABLE RAA;Lo;0;L;;;;;N;;;;;
+122C;ETHIOPIC SYLLABLE REE;Lo;0;L;;;;;N;;;;;
+122D;ETHIOPIC SYLLABLE RE;Lo;0;L;;;;;N;;;;;
+122E;ETHIOPIC SYLLABLE RO;Lo;0;L;;;;;N;;;;;
+122F;ETHIOPIC SYLLABLE RWA;Lo;0;L;;;;;N;;;;;
+1230;ETHIOPIC SYLLABLE SA;Lo;0;L;;;;;N;;;;;
+1231;ETHIOPIC SYLLABLE SU;Lo;0;L;;;;;N;;;;;
+1232;ETHIOPIC SYLLABLE SI;Lo;0;L;;;;;N;;;;;
+1233;ETHIOPIC SYLLABLE SAA;Lo;0;L;;;;;N;;;;;
+1234;ETHIOPIC SYLLABLE SEE;Lo;0;L;;;;;N;;;;;
+1235;ETHIOPIC SYLLABLE SE;Lo;0;L;;;;;N;;;;;
+1236;ETHIOPIC SYLLABLE SO;Lo;0;L;;;;;N;;;;;
+1237;ETHIOPIC SYLLABLE SWA;Lo;0;L;;;;;N;;;;;
+1238;ETHIOPIC SYLLABLE SHA;Lo;0;L;;;;;N;;;;;
+1239;ETHIOPIC SYLLABLE SHU;Lo;0;L;;;;;N;;;;;
+123A;ETHIOPIC SYLLABLE SHI;Lo;0;L;;;;;N;;;;;
+123B;ETHIOPIC SYLLABLE SHAA;Lo;0;L;;;;;N;;;;;
+123C;ETHIOPIC SYLLABLE SHEE;Lo;0;L;;;;;N;;;;;
+123D;ETHIOPIC SYLLABLE SHE;Lo;0;L;;;;;N;;;;;
+123E;ETHIOPIC SYLLABLE SHO;Lo;0;L;;;;;N;;;;;
+123F;ETHIOPIC SYLLABLE SHWA;Lo;0;L;;;;;N;;;;;
+1240;ETHIOPIC SYLLABLE QA;Lo;0;L;;;;;N;;;;;
+1241;ETHIOPIC SYLLABLE QU;Lo;0;L;;;;;N;;;;;
+1242;ETHIOPIC SYLLABLE QI;Lo;0;L;;;;;N;;;;;
+1243;ETHIOPIC SYLLABLE QAA;Lo;0;L;;;;;N;;;;;
+1244;ETHIOPIC SYLLABLE QEE;Lo;0;L;;;;;N;;;;;
+1245;ETHIOPIC SYLLABLE QE;Lo;0;L;;;;;N;;;;;
+1246;ETHIOPIC SYLLABLE QO;Lo;0;L;;;;;N;;;;;
+1247;ETHIOPIC SYLLABLE QOA;Lo;0;L;;;;;N;;;;;
+1248;ETHIOPIC SYLLABLE QWA;Lo;0;L;;;;;N;;;;;
+124A;ETHIOPIC SYLLABLE QWI;Lo;0;L;;;;;N;;;;;
+124B;ETHIOPIC SYLLABLE QWAA;Lo;0;L;;;;;N;;;;;
+124C;ETHIOPIC SYLLABLE QWEE;Lo;0;L;;;;;N;;;;;
+124D;ETHIOPIC SYLLABLE QWE;Lo;0;L;;;;;N;;;;;
+1250;ETHIOPIC SYLLABLE QHA;Lo;0;L;;;;;N;;;;;
+1251;ETHIOPIC SYLLABLE QHU;Lo;0;L;;;;;N;;;;;
+1252;ETHIOPIC SYLLABLE QHI;Lo;0;L;;;;;N;;;;;
+1253;ETHIOPIC SYLLABLE QHAA;Lo;0;L;;;;;N;;;;;
+1254;ETHIOPIC SYLLABLE QHEE;Lo;0;L;;;;;N;;;;;
+1255;ETHIOPIC SYLLABLE QHE;Lo;0;L;;;;;N;;;;;
+1256;ETHIOPIC SYLLABLE QHO;Lo;0;L;;;;;N;;;;;
+1258;ETHIOPIC SYLLABLE QHWA;Lo;0;L;;;;;N;;;;;
+125A;ETHIOPIC SYLLABLE QHWI;Lo;0;L;;;;;N;;;;;
+125B;ETHIOPIC SYLLABLE QHWAA;Lo;0;L;;;;;N;;;;;
+125C;ETHIOPIC SYLLABLE QHWEE;Lo;0;L;;;;;N;;;;;
+125D;ETHIOPIC SYLLABLE QHWE;Lo;0;L;;;;;N;;;;;
+1260;ETHIOPIC SYLLABLE BA;Lo;0;L;;;;;N;;;;;
+1261;ETHIOPIC SYLLABLE BU;Lo;0;L;;;;;N;;;;;
+1262;ETHIOPIC SYLLABLE BI;Lo;0;L;;;;;N;;;;;
+1263;ETHIOPIC SYLLABLE BAA;Lo;0;L;;;;;N;;;;;
+1264;ETHIOPIC SYLLABLE BEE;Lo;0;L;;;;;N;;;;;
+1265;ETHIOPIC SYLLABLE BE;Lo;0;L;;;;;N;;;;;
+1266;ETHIOPIC SYLLABLE BO;Lo;0;L;;;;;N;;;;;
+1267;ETHIOPIC SYLLABLE BWA;Lo;0;L;;;;;N;;;;;
+1268;ETHIOPIC SYLLABLE VA;Lo;0;L;;;;;N;;;;;
+1269;ETHIOPIC SYLLABLE VU;Lo;0;L;;;;;N;;;;;
+126A;ETHIOPIC SYLLABLE VI;Lo;0;L;;;;;N;;;;;
+126B;ETHIOPIC SYLLABLE VAA;Lo;0;L;;;;;N;;;;;
+126C;ETHIOPIC SYLLABLE VEE;Lo;0;L;;;;;N;;;;;
+126D;ETHIOPIC SYLLABLE VE;Lo;0;L;;;;;N;;;;;
+126E;ETHIOPIC SYLLABLE VO;Lo;0;L;;;;;N;;;;;
+126F;ETHIOPIC SYLLABLE VWA;Lo;0;L;;;;;N;;;;;
+1270;ETHIOPIC SYLLABLE TA;Lo;0;L;;;;;N;;;;;
+1271;ETHIOPIC SYLLABLE TU;Lo;0;L;;;;;N;;;;;
+1272;ETHIOPIC SYLLABLE TI;Lo;0;L;;;;;N;;;;;
+1273;ETHIOPIC SYLLABLE TAA;Lo;0;L;;;;;N;;;;;
+1274;ETHIOPIC SYLLABLE TEE;Lo;0;L;;;;;N;;;;;
+1275;ETHIOPIC SYLLABLE TE;Lo;0;L;;;;;N;;;;;
+1276;ETHIOPIC SYLLABLE TO;Lo;0;L;;;;;N;;;;;
+1277;ETHIOPIC SYLLABLE TWA;Lo;0;L;;;;;N;;;;;
+1278;ETHIOPIC SYLLABLE CA;Lo;0;L;;;;;N;;;;;
+1279;ETHIOPIC SYLLABLE CU;Lo;0;L;;;;;N;;;;;
+127A;ETHIOPIC SYLLABLE CI;Lo;0;L;;;;;N;;;;;
+127B;ETHIOPIC SYLLABLE CAA;Lo;0;L;;;;;N;;;;;
+127C;ETHIOPIC SYLLABLE CEE;Lo;0;L;;;;;N;;;;;
+127D;ETHIOPIC SYLLABLE CE;Lo;0;L;;;;;N;;;;;
+127E;ETHIOPIC SYLLABLE CO;Lo;0;L;;;;;N;;;;;
+127F;ETHIOPIC SYLLABLE CWA;Lo;0;L;;;;;N;;;;;
+1280;ETHIOPIC SYLLABLE XA;Lo;0;L;;;;;N;;;;;
+1281;ETHIOPIC SYLLABLE XU;Lo;0;L;;;;;N;;;;;
+1282;ETHIOPIC SYLLABLE XI;Lo;0;L;;;;;N;;;;;
+1283;ETHIOPIC SYLLABLE XAA;Lo;0;L;;;;;N;;;;;
+1284;ETHIOPIC SYLLABLE XEE;Lo;0;L;;;;;N;;;;;
+1285;ETHIOPIC SYLLABLE XE;Lo;0;L;;;;;N;;;;;
+1286;ETHIOPIC SYLLABLE XO;Lo;0;L;;;;;N;;;;;
+1287;ETHIOPIC SYLLABLE XOA;Lo;0;L;;;;;N;;;;;
+1288;ETHIOPIC SYLLABLE XWA;Lo;0;L;;;;;N;;;;;
+128A;ETHIOPIC SYLLABLE XWI;Lo;0;L;;;;;N;;;;;
+128B;ETHIOPIC SYLLABLE XWAA;Lo;0;L;;;;;N;;;;;
+128C;ETHIOPIC SYLLABLE XWEE;Lo;0;L;;;;;N;;;;;
+128D;ETHIOPIC SYLLABLE XWE;Lo;0;L;;;;;N;;;;;
+1290;ETHIOPIC SYLLABLE NA;Lo;0;L;;;;;N;;;;;
+1291;ETHIOPIC SYLLABLE NU;Lo;0;L;;;;;N;;;;;
+1292;ETHIOPIC SYLLABLE NI;Lo;0;L;;;;;N;;;;;
+1293;ETHIOPIC SYLLABLE NAA;Lo;0;L;;;;;N;;;;;
+1294;ETHIOPIC SYLLABLE NEE;Lo;0;L;;;;;N;;;;;
+1295;ETHIOPIC SYLLABLE NE;Lo;0;L;;;;;N;;;;;
+1296;ETHIOPIC SYLLABLE NO;Lo;0;L;;;;;N;;;;;
+1297;ETHIOPIC SYLLABLE NWA;Lo;0;L;;;;;N;;;;;
+1298;ETHIOPIC SYLLABLE NYA;Lo;0;L;;;;;N;;;;;
+1299;ETHIOPIC SYLLABLE NYU;Lo;0;L;;;;;N;;;;;
+129A;ETHIOPIC SYLLABLE NYI;Lo;0;L;;;;;N;;;;;
+129B;ETHIOPIC SYLLABLE NYAA;Lo;0;L;;;;;N;;;;;
+129C;ETHIOPIC SYLLABLE NYEE;Lo;0;L;;;;;N;;;;;
+129D;ETHIOPIC SYLLABLE NYE;Lo;0;L;;;;;N;;;;;
+129E;ETHIOPIC SYLLABLE NYO;Lo;0;L;;;;;N;;;;;
+129F;ETHIOPIC SYLLABLE NYWA;Lo;0;L;;;;;N;;;;;
+12A0;ETHIOPIC SYLLABLE GLOTTAL A;Lo;0;L;;;;;N;;;;;
+12A1;ETHIOPIC SYLLABLE GLOTTAL U;Lo;0;L;;;;;N;;;;;
+12A2;ETHIOPIC SYLLABLE GLOTTAL I;Lo;0;L;;;;;N;;;;;
+12A3;ETHIOPIC SYLLABLE GLOTTAL AA;Lo;0;L;;;;;N;;;;;
+12A4;ETHIOPIC SYLLABLE GLOTTAL EE;Lo;0;L;;;;;N;;;;;
+12A5;ETHIOPIC SYLLABLE GLOTTAL E;Lo;0;L;;;;;N;;;;;
+12A6;ETHIOPIC SYLLABLE GLOTTAL O;Lo;0;L;;;;;N;;;;;
+12A7;ETHIOPIC SYLLABLE GLOTTAL WA;Lo;0;L;;;;;N;;;;;
+12A8;ETHIOPIC SYLLABLE KA;Lo;0;L;;;;;N;;;;;
+12A9;ETHIOPIC SYLLABLE KU;Lo;0;L;;;;;N;;;;;
+12AA;ETHIOPIC SYLLABLE KI;Lo;0;L;;;;;N;;;;;
+12AB;ETHIOPIC SYLLABLE KAA;Lo;0;L;;;;;N;;;;;
+12AC;ETHIOPIC SYLLABLE KEE;Lo;0;L;;;;;N;;;;;
+12AD;ETHIOPIC SYLLABLE KE;Lo;0;L;;;;;N;;;;;
+12AE;ETHIOPIC SYLLABLE KO;Lo;0;L;;;;;N;;;;;
+12AF;ETHIOPIC SYLLABLE KOA;Lo;0;L;;;;;N;;;;;
+12B0;ETHIOPIC SYLLABLE KWA;Lo;0;L;;;;;N;;;;;
+12B2;ETHIOPIC SYLLABLE KWI;Lo;0;L;;;;;N;;;;;
+12B3;ETHIOPIC SYLLABLE KWAA;Lo;0;L;;;;;N;;;;;
+12B4;ETHIOPIC SYLLABLE KWEE;Lo;0;L;;;;;N;;;;;
+12B5;ETHIOPIC SYLLABLE KWE;Lo;0;L;;;;;N;;;;;
+12B8;ETHIOPIC SYLLABLE KXA;Lo;0;L;;;;;N;;;;;
+12B9;ETHIOPIC SYLLABLE KXU;Lo;0;L;;;;;N;;;;;
+12BA;ETHIOPIC SYLLABLE KXI;Lo;0;L;;;;;N;;;;;
+12BB;ETHIOPIC SYLLABLE KXAA;Lo;0;L;;;;;N;;;;;
+12BC;ETHIOPIC SYLLABLE KXEE;Lo;0;L;;;;;N;;;;;
+12BD;ETHIOPIC SYLLABLE KXE;Lo;0;L;;;;;N;;;;;
+12BE;ETHIOPIC SYLLABLE KXO;Lo;0;L;;;;;N;;;;;
+12C0;ETHIOPIC SYLLABLE KXWA;Lo;0;L;;;;;N;;;;;
+12C2;ETHIOPIC SYLLABLE KXWI;Lo;0;L;;;;;N;;;;;
+12C3;ETHIOPIC SYLLABLE KXWAA;Lo;0;L;;;;;N;;;;;
+12C4;ETHIOPIC SYLLABLE KXWEE;Lo;0;L;;;;;N;;;;;
+12C5;ETHIOPIC SYLLABLE KXWE;Lo;0;L;;;;;N;;;;;
+12C8;ETHIOPIC SYLLABLE WA;Lo;0;L;;;;;N;;;;;
+12C9;ETHIOPIC SYLLABLE WU;Lo;0;L;;;;;N;;;;;
+12CA;ETHIOPIC SYLLABLE WI;Lo;0;L;;;;;N;;;;;
+12CB;ETHIOPIC SYLLABLE WAA;Lo;0;L;;;;;N;;;;;
+12CC;ETHIOPIC SYLLABLE WEE;Lo;0;L;;;;;N;;;;;
+12CD;ETHIOPIC SYLLABLE WE;Lo;0;L;;;;;N;;;;;
+12CE;ETHIOPIC SYLLABLE WO;Lo;0;L;;;;;N;;;;;
+12CF;ETHIOPIC SYLLABLE WOA;Lo;0;L;;;;;N;;;;;
+12D0;ETHIOPIC SYLLABLE PHARYNGEAL A;Lo;0;L;;;;;N;;;;;
+12D1;ETHIOPIC SYLLABLE PHARYNGEAL U;Lo;0;L;;;;;N;;;;;
+12D2;ETHIOPIC SYLLABLE PHARYNGEAL I;Lo;0;L;;;;;N;;;;;
+12D3;ETHIOPIC SYLLABLE PHARYNGEAL AA;Lo;0;L;;;;;N;;;;;
+12D4;ETHIOPIC SYLLABLE PHARYNGEAL EE;Lo;0;L;;;;;N;;;;;
+12D5;ETHIOPIC SYLLABLE PHARYNGEAL E;Lo;0;L;;;;;N;;;;;
+12D6;ETHIOPIC SYLLABLE PHARYNGEAL O;Lo;0;L;;;;;N;;;;;
+12D8;ETHIOPIC SYLLABLE ZA;Lo;0;L;;;;;N;;;;;
+12D9;ETHIOPIC SYLLABLE ZU;Lo;0;L;;;;;N;;;;;
+12DA;ETHIOPIC SYLLABLE ZI;Lo;0;L;;;;;N;;;;;
+12DB;ETHIOPIC SYLLABLE ZAA;Lo;0;L;;;;;N;;;;;
+12DC;ETHIOPIC SYLLABLE ZEE;Lo;0;L;;;;;N;;;;;
+12DD;ETHIOPIC SYLLABLE ZE;Lo;0;L;;;;;N;;;;;
+12DE;ETHIOPIC SYLLABLE ZO;Lo;0;L;;;;;N;;;;;
+12DF;ETHIOPIC SYLLABLE ZWA;Lo;0;L;;;;;N;;;;;
+12E0;ETHIOPIC SYLLABLE ZHA;Lo;0;L;;;;;N;;;;;
+12E1;ETHIOPIC SYLLABLE ZHU;Lo;0;L;;;;;N;;;;;
+12E2;ETHIOPIC SYLLABLE ZHI;Lo;0;L;;;;;N;;;;;
+12E3;ETHIOPIC SYLLABLE ZHAA;Lo;0;L;;;;;N;;;;;
+12E4;ETHIOPIC SYLLABLE ZHEE;Lo;0;L;;;;;N;;;;;
+12E5;ETHIOPIC SYLLABLE ZHE;Lo;0;L;;;;;N;;;;;
+12E6;ETHIOPIC SYLLABLE ZHO;Lo;0;L;;;;;N;;;;;
+12E7;ETHIOPIC SYLLABLE ZHWA;Lo;0;L;;;;;N;;;;;
+12E8;ETHIOPIC SYLLABLE YA;Lo;0;L;;;;;N;;;;;
+12E9;ETHIOPIC SYLLABLE YU;Lo;0;L;;;;;N;;;;;
+12EA;ETHIOPIC SYLLABLE YI;Lo;0;L;;;;;N;;;;;
+12EB;ETHIOPIC SYLLABLE YAA;Lo;0;L;;;;;N;;;;;
+12EC;ETHIOPIC SYLLABLE YEE;Lo;0;L;;;;;N;;;;;
+12ED;ETHIOPIC SYLLABLE YE;Lo;0;L;;;;;N;;;;;
+12EE;ETHIOPIC SYLLABLE YO;Lo;0;L;;;;;N;;;;;
+12EF;ETHIOPIC SYLLABLE YOA;Lo;0;L;;;;;N;;;;;
+12F0;ETHIOPIC SYLLABLE DA;Lo;0;L;;;;;N;;;;;
+12F1;ETHIOPIC SYLLABLE DU;Lo;0;L;;;;;N;;;;;
+12F2;ETHIOPIC SYLLABLE DI;Lo;0;L;;;;;N;;;;;
+12F3;ETHIOPIC SYLLABLE DAA;Lo;0;L;;;;;N;;;;;
+12F4;ETHIOPIC SYLLABLE DEE;Lo;0;L;;;;;N;;;;;
+12F5;ETHIOPIC SYLLABLE DE;Lo;0;L;;;;;N;;;;;
+12F6;ETHIOPIC SYLLABLE DO;Lo;0;L;;;;;N;;;;;
+12F7;ETHIOPIC SYLLABLE DWA;Lo;0;L;;;;;N;;;;;
+12F8;ETHIOPIC SYLLABLE DDA;Lo;0;L;;;;;N;;;;;
+12F9;ETHIOPIC SYLLABLE DDU;Lo;0;L;;;;;N;;;;;
+12FA;ETHIOPIC SYLLABLE DDI;Lo;0;L;;;;;N;;;;;
+12FB;ETHIOPIC SYLLABLE DDAA;Lo;0;L;;;;;N;;;;;
+12FC;ETHIOPIC SYLLABLE DDEE;Lo;0;L;;;;;N;;;;;
+12FD;ETHIOPIC SYLLABLE DDE;Lo;0;L;;;;;N;;;;;
+12FE;ETHIOPIC SYLLABLE DDO;Lo;0;L;;;;;N;;;;;
+12FF;ETHIOPIC SYLLABLE DDWA;Lo;0;L;;;;;N;;;;;
+1300;ETHIOPIC SYLLABLE JA;Lo;0;L;;;;;N;;;;;
+1301;ETHIOPIC SYLLABLE JU;Lo;0;L;;;;;N;;;;;
+1302;ETHIOPIC SYLLABLE JI;Lo;0;L;;;;;N;;;;;
+1303;ETHIOPIC SYLLABLE JAA;Lo;0;L;;;;;N;;;;;
+1304;ETHIOPIC SYLLABLE JEE;Lo;0;L;;;;;N;;;;;
+1305;ETHIOPIC SYLLABLE JE;Lo;0;L;;;;;N;;;;;
+1306;ETHIOPIC SYLLABLE JO;Lo;0;L;;;;;N;;;;;
+1307;ETHIOPIC SYLLABLE JWA;Lo;0;L;;;;;N;;;;;
+1308;ETHIOPIC SYLLABLE GA;Lo;0;L;;;;;N;;;;;
+1309;ETHIOPIC SYLLABLE GU;Lo;0;L;;;;;N;;;;;
+130A;ETHIOPIC SYLLABLE GI;Lo;0;L;;;;;N;;;;;
+130B;ETHIOPIC SYLLABLE GAA;Lo;0;L;;;;;N;;;;;
+130C;ETHIOPIC SYLLABLE GEE;Lo;0;L;;;;;N;;;;;
+130D;ETHIOPIC SYLLABLE GE;Lo;0;L;;;;;N;;;;;
+130E;ETHIOPIC SYLLABLE GO;Lo;0;L;;;;;N;;;;;
+130F;ETHIOPIC SYLLABLE GOA;Lo;0;L;;;;;N;;;;;
+1310;ETHIOPIC SYLLABLE GWA;Lo;0;L;;;;;N;;;;;
+1312;ETHIOPIC SYLLABLE GWI;Lo;0;L;;;;;N;;;;;
+1313;ETHIOPIC SYLLABLE GWAA;Lo;0;L;;;;;N;;;;;
+1314;ETHIOPIC SYLLABLE GWEE;Lo;0;L;;;;;N;;;;;
+1315;ETHIOPIC SYLLABLE GWE;Lo;0;L;;;;;N;;;;;
+1318;ETHIOPIC SYLLABLE GGA;Lo;0;L;;;;;N;;;;;
+1319;ETHIOPIC SYLLABLE GGU;Lo;0;L;;;;;N;;;;;
+131A;ETHIOPIC SYLLABLE GGI;Lo;0;L;;;;;N;;;;;
+131B;ETHIOPIC SYLLABLE GGAA;Lo;0;L;;;;;N;;;;;
+131C;ETHIOPIC SYLLABLE GGEE;Lo;0;L;;;;;N;;;;;
+131D;ETHIOPIC SYLLABLE GGE;Lo;0;L;;;;;N;;;;;
+131E;ETHIOPIC SYLLABLE GGO;Lo;0;L;;;;;N;;;;;
+131F;ETHIOPIC SYLLABLE GGWAA;Lo;0;L;;;;;N;;;;;
+1320;ETHIOPIC SYLLABLE THA;Lo;0;L;;;;;N;;;;;
+1321;ETHIOPIC SYLLABLE THU;Lo;0;L;;;;;N;;;;;
+1322;ETHIOPIC SYLLABLE THI;Lo;0;L;;;;;N;;;;;
+1323;ETHIOPIC SYLLABLE THAA;Lo;0;L;;;;;N;;;;;
+1324;ETHIOPIC SYLLABLE THEE;Lo;0;L;;;;;N;;;;;
+1325;ETHIOPIC SYLLABLE THE;Lo;0;L;;;;;N;;;;;
+1326;ETHIOPIC SYLLABLE THO;Lo;0;L;;;;;N;;;;;
+1327;ETHIOPIC SYLLABLE THWA;Lo;0;L;;;;;N;;;;;
+1328;ETHIOPIC SYLLABLE CHA;Lo;0;L;;;;;N;;;;;
+1329;ETHIOPIC SYLLABLE CHU;Lo;0;L;;;;;N;;;;;
+132A;ETHIOPIC SYLLABLE CHI;Lo;0;L;;;;;N;;;;;
+132B;ETHIOPIC SYLLABLE CHAA;Lo;0;L;;;;;N;;;;;
+132C;ETHIOPIC SYLLABLE CHEE;Lo;0;L;;;;;N;;;;;
+132D;ETHIOPIC SYLLABLE CHE;Lo;0;L;;;;;N;;;;;
+132E;ETHIOPIC SYLLABLE CHO;Lo;0;L;;;;;N;;;;;
+132F;ETHIOPIC SYLLABLE CHWA;Lo;0;L;;;;;N;;;;;
+1330;ETHIOPIC SYLLABLE PHA;Lo;0;L;;;;;N;;;;;
+1331;ETHIOPIC SYLLABLE PHU;Lo;0;L;;;;;N;;;;;
+1332;ETHIOPIC SYLLABLE PHI;Lo;0;L;;;;;N;;;;;
+1333;ETHIOPIC SYLLABLE PHAA;Lo;0;L;;;;;N;;;;;
+1334;ETHIOPIC SYLLABLE PHEE;Lo;0;L;;;;;N;;;;;
+1335;ETHIOPIC SYLLABLE PHE;Lo;0;L;;;;;N;;;;;
+1336;ETHIOPIC SYLLABLE PHO;Lo;0;L;;;;;N;;;;;
+1337;ETHIOPIC SYLLABLE PHWA;Lo;0;L;;;;;N;;;;;
+1338;ETHIOPIC SYLLABLE TSA;Lo;0;L;;;;;N;;;;;
+1339;ETHIOPIC SYLLABLE TSU;Lo;0;L;;;;;N;;;;;
+133A;ETHIOPIC SYLLABLE TSI;Lo;0;L;;;;;N;;;;;
+133B;ETHIOPIC SYLLABLE TSAA;Lo;0;L;;;;;N;;;;;
+133C;ETHIOPIC SYLLABLE TSEE;Lo;0;L;;;;;N;;;;;
+133D;ETHIOPIC SYLLABLE TSE;Lo;0;L;;;;;N;;;;;
+133E;ETHIOPIC SYLLABLE TSO;Lo;0;L;;;;;N;;;;;
+133F;ETHIOPIC SYLLABLE TSWA;Lo;0;L;;;;;N;;;;;
+1340;ETHIOPIC SYLLABLE TZA;Lo;0;L;;;;;N;;;;;
+1341;ETHIOPIC SYLLABLE TZU;Lo;0;L;;;;;N;;;;;
+1342;ETHIOPIC SYLLABLE TZI;Lo;0;L;;;;;N;;;;;
+1343;ETHIOPIC SYLLABLE TZAA;Lo;0;L;;;;;N;;;;;
+1344;ETHIOPIC SYLLABLE TZEE;Lo;0;L;;;;;N;;;;;
+1345;ETHIOPIC SYLLABLE TZE;Lo;0;L;;;;;N;;;;;
+1346;ETHIOPIC SYLLABLE TZO;Lo;0;L;;;;;N;;;;;
+1347;ETHIOPIC SYLLABLE TZOA;Lo;0;L;;;;;N;;;;;
+1348;ETHIOPIC SYLLABLE FA;Lo;0;L;;;;;N;;;;;
+1349;ETHIOPIC SYLLABLE FU;Lo;0;L;;;;;N;;;;;
+134A;ETHIOPIC SYLLABLE FI;Lo;0;L;;;;;N;;;;;
+134B;ETHIOPIC SYLLABLE FAA;Lo;0;L;;;;;N;;;;;
+134C;ETHIOPIC SYLLABLE FEE;Lo;0;L;;;;;N;;;;;
+134D;ETHIOPIC SYLLABLE FE;Lo;0;L;;;;;N;;;;;
+134E;ETHIOPIC SYLLABLE FO;Lo;0;L;;;;;N;;;;;
+134F;ETHIOPIC SYLLABLE FWA;Lo;0;L;;;;;N;;;;;
+1350;ETHIOPIC SYLLABLE PA;Lo;0;L;;;;;N;;;;;
+1351;ETHIOPIC SYLLABLE PU;Lo;0;L;;;;;N;;;;;
+1352;ETHIOPIC SYLLABLE PI;Lo;0;L;;;;;N;;;;;
+1353;ETHIOPIC SYLLABLE PAA;Lo;0;L;;;;;N;;;;;
+1354;ETHIOPIC SYLLABLE PEE;Lo;0;L;;;;;N;;;;;
+1355;ETHIOPIC SYLLABLE PE;Lo;0;L;;;;;N;;;;;
+1356;ETHIOPIC SYLLABLE PO;Lo;0;L;;;;;N;;;;;
+1357;ETHIOPIC SYLLABLE PWA;Lo;0;L;;;;;N;;;;;
+1358;ETHIOPIC SYLLABLE RYA;Lo;0;L;;;;;N;;;;;
+1359;ETHIOPIC SYLLABLE MYA;Lo;0;L;;;;;N;;;;;
+135A;ETHIOPIC SYLLABLE FYA;Lo;0;L;;;;;N;;;;;
+135F;ETHIOPIC COMBINING GEMINATION MARK;Mn;230;NSM;;;;;N;;;;;
+1360;ETHIOPIC SECTION MARK;So;0;L;;;;;N;;;;;
+1361;ETHIOPIC WORDSPACE;Po;0;L;;;;;N;;;;;
+1362;ETHIOPIC FULL STOP;Po;0;L;;;;;N;;;;;
+1363;ETHIOPIC COMMA;Po;0;L;;;;;N;;;;;
+1364;ETHIOPIC SEMICOLON;Po;0;L;;;;;N;;;;;
+1365;ETHIOPIC COLON;Po;0;L;;;;;N;;;;;
+1366;ETHIOPIC PREFACE COLON;Po;0;L;;;;;N;;;;;
+1367;ETHIOPIC QUESTION MARK;Po;0;L;;;;;N;;;;;
+1368;ETHIOPIC PARAGRAPH SEPARATOR;Po;0;L;;;;;N;;;;;
+1369;ETHIOPIC DIGIT ONE;No;0;L;;;1;1;N;;;;;
+136A;ETHIOPIC DIGIT TWO;No;0;L;;;2;2;N;;;;;
+136B;ETHIOPIC DIGIT THREE;No;0;L;;;3;3;N;;;;;
+136C;ETHIOPIC DIGIT FOUR;No;0;L;;;4;4;N;;;;;
+136D;ETHIOPIC DIGIT FIVE;No;0;L;;;5;5;N;;;;;
+136E;ETHIOPIC DIGIT SIX;No;0;L;;;6;6;N;;;;;
+136F;ETHIOPIC DIGIT SEVEN;No;0;L;;;7;7;N;;;;;
+1370;ETHIOPIC DIGIT EIGHT;No;0;L;;;8;8;N;;;;;
+1371;ETHIOPIC DIGIT NINE;No;0;L;;;9;9;N;;;;;
+1372;ETHIOPIC NUMBER TEN;No;0;L;;;;10;N;;;;;
+1373;ETHIOPIC NUMBER TWENTY;No;0;L;;;;20;N;;;;;
+1374;ETHIOPIC NUMBER THIRTY;No;0;L;;;;30;N;;;;;
+1375;ETHIOPIC NUMBER FORTY;No;0;L;;;;40;N;;;;;
+1376;ETHIOPIC NUMBER FIFTY;No;0;L;;;;50;N;;;;;
+1377;ETHIOPIC NUMBER SIXTY;No;0;L;;;;60;N;;;;;
+1378;ETHIOPIC NUMBER SEVENTY;No;0;L;;;;70;N;;;;;
+1379;ETHIOPIC NUMBER EIGHTY;No;0;L;;;;80;N;;;;;
+137A;ETHIOPIC NUMBER NINETY;No;0;L;;;;90;N;;;;;
+137B;ETHIOPIC NUMBER HUNDRED;No;0;L;;;;100;N;;;;;
+137C;ETHIOPIC NUMBER TEN THOUSAND;No;0;L;;;;10000;N;;;;;
+1380;ETHIOPIC SYLLABLE SEBATBEIT MWA;Lo;0;L;;;;;N;;;;;
+1381;ETHIOPIC SYLLABLE MWI;Lo;0;L;;;;;N;;;;;
+1382;ETHIOPIC SYLLABLE MWEE;Lo;0;L;;;;;N;;;;;
+1383;ETHIOPIC SYLLABLE MWE;Lo;0;L;;;;;N;;;;;
+1384;ETHIOPIC SYLLABLE SEBATBEIT BWA;Lo;0;L;;;;;N;;;;;
+1385;ETHIOPIC SYLLABLE BWI;Lo;0;L;;;;;N;;;;;
+1386;ETHIOPIC SYLLABLE BWEE;Lo;0;L;;;;;N;;;;;
+1387;ETHIOPIC SYLLABLE BWE;Lo;0;L;;;;;N;;;;;
+1388;ETHIOPIC SYLLABLE SEBATBEIT FWA;Lo;0;L;;;;;N;;;;;
+1389;ETHIOPIC SYLLABLE FWI;Lo;0;L;;;;;N;;;;;
+138A;ETHIOPIC SYLLABLE FWEE;Lo;0;L;;;;;N;;;;;
+138B;ETHIOPIC SYLLABLE FWE;Lo;0;L;;;;;N;;;;;
+138C;ETHIOPIC SYLLABLE SEBATBEIT PWA;Lo;0;L;;;;;N;;;;;
+138D;ETHIOPIC SYLLABLE PWI;Lo;0;L;;;;;N;;;;;
+138E;ETHIOPIC SYLLABLE PWEE;Lo;0;L;;;;;N;;;;;
+138F;ETHIOPIC SYLLABLE PWE;Lo;0;L;;;;;N;;;;;
+1390;ETHIOPIC TONAL MARK YIZET;So;0;ON;;;;;N;;;;;
+1391;ETHIOPIC TONAL MARK DERET;So;0;ON;;;;;N;;;;;
+1392;ETHIOPIC TONAL MARK RIKRIK;So;0;ON;;;;;N;;;;;
+1393;ETHIOPIC TONAL MARK SHORT RIKRIK;So;0;ON;;;;;N;;;;;
+1394;ETHIOPIC TONAL MARK DIFAT;So;0;ON;;;;;N;;;;;
+1395;ETHIOPIC TONAL MARK KENAT;So;0;ON;;;;;N;;;;;
+1396;ETHIOPIC TONAL MARK CHIRET;So;0;ON;;;;;N;;;;;
+1397;ETHIOPIC TONAL MARK HIDET;So;0;ON;;;;;N;;;;;
+1398;ETHIOPIC TONAL MARK DERET-HIDET;So;0;ON;;;;;N;;;;;
+1399;ETHIOPIC TONAL MARK KURT;So;0;ON;;;;;N;;;;;
+13A0;CHEROKEE LETTER A;Lo;0;L;;;;;N;;;;;
+13A1;CHEROKEE LETTER E;Lo;0;L;;;;;N;;;;;
+13A2;CHEROKEE LETTER I;Lo;0;L;;;;;N;;;;;
+13A3;CHEROKEE LETTER O;Lo;0;L;;;;;N;;;;;
+13A4;CHEROKEE LETTER U;Lo;0;L;;;;;N;;;;;
+13A5;CHEROKEE LETTER V;Lo;0;L;;;;;N;;;;;
+13A6;CHEROKEE LETTER GA;Lo;0;L;;;;;N;;;;;
+13A7;CHEROKEE LETTER KA;Lo;0;L;;;;;N;;;;;
+13A8;CHEROKEE LETTER GE;Lo;0;L;;;;;N;;;;;
+13A9;CHEROKEE LETTER GI;Lo;0;L;;;;;N;;;;;
+13AA;CHEROKEE LETTER GO;Lo;0;L;;;;;N;;;;;
+13AB;CHEROKEE LETTER GU;Lo;0;L;;;;;N;;;;;
+13AC;CHEROKEE LETTER GV;Lo;0;L;;;;;N;;;;;
+13AD;CHEROKEE LETTER HA;Lo;0;L;;;;;N;;;;;
+13AE;CHEROKEE LETTER HE;Lo;0;L;;;;;N;;;;;
+13AF;CHEROKEE LETTER HI;Lo;0;L;;;;;N;;;;;
+13B0;CHEROKEE LETTER HO;Lo;0;L;;;;;N;;;;;
+13B1;CHEROKEE LETTER HU;Lo;0;L;;;;;N;;;;;
+13B2;CHEROKEE LETTER HV;Lo;0;L;;;;;N;;;;;
+13B3;CHEROKEE LETTER LA;Lo;0;L;;;;;N;;;;;
+13B4;CHEROKEE LETTER LE;Lo;0;L;;;;;N;;;;;
+13B5;CHEROKEE LETTER LI;Lo;0;L;;;;;N;;;;;
+13B6;CHEROKEE LETTER LO;Lo;0;L;;;;;N;;;;;
+13B7;CHEROKEE LETTER LU;Lo;0;L;;;;;N;;;;;
+13B8;CHEROKEE LETTER LV;Lo;0;L;;;;;N;;;;;
+13B9;CHEROKEE LETTER MA;Lo;0;L;;;;;N;;;;;
+13BA;CHEROKEE LETTER ME;Lo;0;L;;;;;N;;;;;
+13BB;CHEROKEE LETTER MI;Lo;0;L;;;;;N;;;;;
+13BC;CHEROKEE LETTER MO;Lo;0;L;;;;;N;;;;;
+13BD;CHEROKEE LETTER MU;Lo;0;L;;;;;N;;;;;
+13BE;CHEROKEE LETTER NA;Lo;0;L;;;;;N;;;;;
+13BF;CHEROKEE LETTER HNA;Lo;0;L;;;;;N;;;;;
+13C0;CHEROKEE LETTER NAH;Lo;0;L;;;;;N;;;;;
+13C1;CHEROKEE LETTER NE;Lo;0;L;;;;;N;;;;;
+13C2;CHEROKEE LETTER NI;Lo;0;L;;;;;N;;;;;
+13C3;CHEROKEE LETTER NO;Lo;0;L;;;;;N;;;;;
+13C4;CHEROKEE LETTER NU;Lo;0;L;;;;;N;;;;;
+13C5;CHEROKEE LETTER NV;Lo;0;L;;;;;N;;;;;
+13C6;CHEROKEE LETTER QUA;Lo;0;L;;;;;N;;;;;
+13C7;CHEROKEE LETTER QUE;Lo;0;L;;;;;N;;;;;
+13C8;CHEROKEE LETTER QUI;Lo;0;L;;;;;N;;;;;
+13C9;CHEROKEE LETTER QUO;Lo;0;L;;;;;N;;;;;
+13CA;CHEROKEE LETTER QUU;Lo;0;L;;;;;N;;;;;
+13CB;CHEROKEE LETTER QUV;Lo;0;L;;;;;N;;;;;
+13CC;CHEROKEE LETTER SA;Lo;0;L;;;;;N;;;;;
+13CD;CHEROKEE LETTER S;Lo;0;L;;;;;N;;;;;
+13CE;CHEROKEE LETTER SE;Lo;0;L;;;;;N;;;;;
+13CF;CHEROKEE LETTER SI;Lo;0;L;;;;;N;;;;;
+13D0;CHEROKEE LETTER SO;Lo;0;L;;;;;N;;;;;
+13D1;CHEROKEE LETTER SU;Lo;0;L;;;;;N;;;;;
+13D2;CHEROKEE LETTER SV;Lo;0;L;;;;;N;;;;;
+13D3;CHEROKEE LETTER DA;Lo;0;L;;;;;N;;;;;
+13D4;CHEROKEE LETTER TA;Lo;0;L;;;;;N;;;;;
+13D5;CHEROKEE LETTER DE;Lo;0;L;;;;;N;;;;;
+13D6;CHEROKEE LETTER TE;Lo;0;L;;;;;N;;;;;
+13D7;CHEROKEE LETTER DI;Lo;0;L;;;;;N;;;;;
+13D8;CHEROKEE LETTER TI;Lo;0;L;;;;;N;;;;;
+13D9;CHEROKEE LETTER DO;Lo;0;L;;;;;N;;;;;
+13DA;CHEROKEE LETTER DU;Lo;0;L;;;;;N;;;;;
+13DB;CHEROKEE LETTER DV;Lo;0;L;;;;;N;;;;;
+13DC;CHEROKEE LETTER DLA;Lo;0;L;;;;;N;;;;;
+13DD;CHEROKEE LETTER TLA;Lo;0;L;;;;;N;;;;;
+13DE;CHEROKEE LETTER TLE;Lo;0;L;;;;;N;;;;;
+13DF;CHEROKEE LETTER TLI;Lo;0;L;;;;;N;;;;;
+13E0;CHEROKEE LETTER TLO;Lo;0;L;;;;;N;;;;;
+13E1;CHEROKEE LETTER TLU;Lo;0;L;;;;;N;;;;;
+13E2;CHEROKEE LETTER TLV;Lo;0;L;;;;;N;;;;;
+13E3;CHEROKEE LETTER TSA;Lo;0;L;;;;;N;;;;;
+13E4;CHEROKEE LETTER TSE;Lo;0;L;;;;;N;;;;;
+13E5;CHEROKEE LETTER TSI;Lo;0;L;;;;;N;;;;;
+13E6;CHEROKEE LETTER TSO;Lo;0;L;;;;;N;;;;;
+13E7;CHEROKEE LETTER TSU;Lo;0;L;;;;;N;;;;;
+13E8;CHEROKEE LETTER TSV;Lo;0;L;;;;;N;;;;;
+13E9;CHEROKEE LETTER WA;Lo;0;L;;;;;N;;;;;
+13EA;CHEROKEE LETTER WE;Lo;0;L;;;;;N;;;;;
+13EB;CHEROKEE LETTER WI;Lo;0;L;;;;;N;;;;;
+13EC;CHEROKEE LETTER WO;Lo;0;L;;;;;N;;;;;
+13ED;CHEROKEE LETTER WU;Lo;0;L;;;;;N;;;;;
+13EE;CHEROKEE LETTER WV;Lo;0;L;;;;;N;;;;;
+13EF;CHEROKEE LETTER YA;Lo;0;L;;;;;N;;;;;
+13F0;CHEROKEE LETTER YE;Lo;0;L;;;;;N;;;;;
+13F1;CHEROKEE LETTER YI;Lo;0;L;;;;;N;;;;;
+13F2;CHEROKEE LETTER YO;Lo;0;L;;;;;N;;;;;
+13F3;CHEROKEE LETTER YU;Lo;0;L;;;;;N;;;;;
+13F4;CHEROKEE LETTER YV;Lo;0;L;;;;;N;;;;;
+1401;CANADIAN SYLLABICS E;Lo;0;L;;;;;N;;;;;
+1402;CANADIAN SYLLABICS AAI;Lo;0;L;;;;;N;;;;;
+1403;CANADIAN SYLLABICS I;Lo;0;L;;;;;N;;;;;
+1404;CANADIAN SYLLABICS II;Lo;0;L;;;;;N;;;;;
+1405;CANADIAN SYLLABICS O;Lo;0;L;;;;;N;;;;;
+1406;CANADIAN SYLLABICS OO;Lo;0;L;;;;;N;;;;;
+1407;CANADIAN SYLLABICS Y-CREE OO;Lo;0;L;;;;;N;;;;;
+1408;CANADIAN SYLLABICS CARRIER EE;Lo;0;L;;;;;N;;;;;
+1409;CANADIAN SYLLABICS CARRIER I;Lo;0;L;;;;;N;;;;;
+140A;CANADIAN SYLLABICS A;Lo;0;L;;;;;N;;;;;
+140B;CANADIAN SYLLABICS AA;Lo;0;L;;;;;N;;;;;
+140C;CANADIAN SYLLABICS WE;Lo;0;L;;;;;N;;;;;
+140D;CANADIAN SYLLABICS WEST-CREE WE;Lo;0;L;;;;;N;;;;;
+140E;CANADIAN SYLLABICS WI;Lo;0;L;;;;;N;;;;;
+140F;CANADIAN SYLLABICS WEST-CREE WI;Lo;0;L;;;;;N;;;;;
+1410;CANADIAN SYLLABICS WII;Lo;0;L;;;;;N;;;;;
+1411;CANADIAN SYLLABICS WEST-CREE WII;Lo;0;L;;;;;N;;;;;
+1412;CANADIAN SYLLABICS WO;Lo;0;L;;;;;N;;;;;
+1413;CANADIAN SYLLABICS WEST-CREE WO;Lo;0;L;;;;;N;;;;;
+1414;CANADIAN SYLLABICS WOO;Lo;0;L;;;;;N;;;;;
+1415;CANADIAN SYLLABICS WEST-CREE WOO;Lo;0;L;;;;;N;;;;;
+1416;CANADIAN SYLLABICS NASKAPI WOO;Lo;0;L;;;;;N;;;;;
+1417;CANADIAN SYLLABICS WA;Lo;0;L;;;;;N;;;;;
+1418;CANADIAN SYLLABICS WEST-CREE WA;Lo;0;L;;;;;N;;;;;
+1419;CANADIAN SYLLABICS WAA;Lo;0;L;;;;;N;;;;;
+141A;CANADIAN SYLLABICS WEST-CREE WAA;Lo;0;L;;;;;N;;;;;
+141B;CANADIAN SYLLABICS NASKAPI WAA;Lo;0;L;;;;;N;;;;;
+141C;CANADIAN SYLLABICS AI;Lo;0;L;;;;;N;;;;;
+141D;CANADIAN SYLLABICS Y-CREE W;Lo;0;L;;;;;N;;;;;
+141E;CANADIAN SYLLABICS GLOTTAL STOP;Lo;0;L;;;;;N;;;;;
+141F;CANADIAN SYLLABICS FINAL ACUTE;Lo;0;L;;;;;N;;;;;
+1420;CANADIAN SYLLABICS FINAL GRAVE;Lo;0;L;;;;;N;;;;;
+1421;CANADIAN SYLLABICS FINAL BOTTOM HALF RING;Lo;0;L;;;;;N;;;;;
+1422;CANADIAN SYLLABICS FINAL TOP HALF RING;Lo;0;L;;;;;N;;;;;
+1423;CANADIAN SYLLABICS FINAL RIGHT HALF RING;Lo;0;L;;;;;N;;;;;
+1424;CANADIAN SYLLABICS FINAL RING;Lo;0;L;;;;;N;;;;;
+1425;CANADIAN SYLLABICS FINAL DOUBLE ACUTE;Lo;0;L;;;;;N;;;;;
+1426;CANADIAN SYLLABICS FINAL DOUBLE SHORT VERTICAL STROKES;Lo;0;L;;;;;N;;;;;
+1427;CANADIAN SYLLABICS FINAL MIDDLE DOT;Lo;0;L;;;;;N;;;;;
+1428;CANADIAN SYLLABICS FINAL SHORT HORIZONTAL STROKE;Lo;0;L;;;;;N;;;;;
+1429;CANADIAN SYLLABICS FINAL PLUS;Lo;0;L;;;;;N;;;;;
+142A;CANADIAN SYLLABICS FINAL DOWN TACK;Lo;0;L;;;;;N;;;;;
+142B;CANADIAN SYLLABICS EN;Lo;0;L;;;;;N;;;;;
+142C;CANADIAN SYLLABICS IN;Lo;0;L;;;;;N;;;;;
+142D;CANADIAN SYLLABICS ON;Lo;0;L;;;;;N;;;;;
+142E;CANADIAN SYLLABICS AN;Lo;0;L;;;;;N;;;;;
+142F;CANADIAN SYLLABICS PE;Lo;0;L;;;;;N;;;;;
+1430;CANADIAN SYLLABICS PAAI;Lo;0;L;;;;;N;;;;;
+1431;CANADIAN SYLLABICS PI;Lo;0;L;;;;;N;;;;;
+1432;CANADIAN SYLLABICS PII;Lo;0;L;;;;;N;;;;;
+1433;CANADIAN SYLLABICS PO;Lo;0;L;;;;;N;;;;;
+1434;CANADIAN SYLLABICS POO;Lo;0;L;;;;;N;;;;;
+1435;CANADIAN SYLLABICS Y-CREE POO;Lo;0;L;;;;;N;;;;;
+1436;CANADIAN SYLLABICS CARRIER HEE;Lo;0;L;;;;;N;;;;;
+1437;CANADIAN SYLLABICS CARRIER HI;Lo;0;L;;;;;N;;;;;
+1438;CANADIAN SYLLABICS PA;Lo;0;L;;;;;N;;;;;
+1439;CANADIAN SYLLABICS PAA;Lo;0;L;;;;;N;;;;;
+143A;CANADIAN SYLLABICS PWE;Lo;0;L;;;;;N;;;;;
+143B;CANADIAN SYLLABICS WEST-CREE PWE;Lo;0;L;;;;;N;;;;;
+143C;CANADIAN SYLLABICS PWI;Lo;0;L;;;;;N;;;;;
+143D;CANADIAN SYLLABICS WEST-CREE PWI;Lo;0;L;;;;;N;;;;;
+143E;CANADIAN SYLLABICS PWII;Lo;0;L;;;;;N;;;;;
+143F;CANADIAN SYLLABICS WEST-CREE PWII;Lo;0;L;;;;;N;;;;;
+1440;CANADIAN SYLLABICS PWO;Lo;0;L;;;;;N;;;;;
+1441;CANADIAN SYLLABICS WEST-CREE PWO;Lo;0;L;;;;;N;;;;;
+1442;CANADIAN SYLLABICS PWOO;Lo;0;L;;;;;N;;;;;
+1443;CANADIAN SYLLABICS WEST-CREE PWOO;Lo;0;L;;;;;N;;;;;
+1444;CANADIAN SYLLABICS PWA;Lo;0;L;;;;;N;;;;;
+1445;CANADIAN SYLLABICS WEST-CREE PWA;Lo;0;L;;;;;N;;;;;
+1446;CANADIAN SYLLABICS PWAA;Lo;0;L;;;;;N;;;;;
+1447;CANADIAN SYLLABICS WEST-CREE PWAA;Lo;0;L;;;;;N;;;;;
+1448;CANADIAN SYLLABICS Y-CREE PWAA;Lo;0;L;;;;;N;;;;;
+1449;CANADIAN SYLLABICS P;Lo;0;L;;;;;N;;;;;
+144A;CANADIAN SYLLABICS WEST-CREE P;Lo;0;L;;;;;N;;;;;
+144B;CANADIAN SYLLABICS CARRIER H;Lo;0;L;;;;;N;;;;;
+144C;CANADIAN SYLLABICS TE;Lo;0;L;;;;;N;;;;;
+144D;CANADIAN SYLLABICS TAAI;Lo;0;L;;;;;N;;;;;
+144E;CANADIAN SYLLABICS TI;Lo;0;L;;;;;N;;;;;
+144F;CANADIAN SYLLABICS TII;Lo;0;L;;;;;N;;;;;
+1450;CANADIAN SYLLABICS TO;Lo;0;L;;;;;N;;;;;
+1451;CANADIAN SYLLABICS TOO;Lo;0;L;;;;;N;;;;;
+1452;CANADIAN SYLLABICS Y-CREE TOO;Lo;0;L;;;;;N;;;;;
+1453;CANADIAN SYLLABICS CARRIER DEE;Lo;0;L;;;;;N;;;;;
+1454;CANADIAN SYLLABICS CARRIER DI;Lo;0;L;;;;;N;;;;;
+1455;CANADIAN SYLLABICS TA;Lo;0;L;;;;;N;;;;;
+1456;CANADIAN SYLLABICS TAA;Lo;0;L;;;;;N;;;;;
+1457;CANADIAN SYLLABICS TWE;Lo;0;L;;;;;N;;;;;
+1458;CANADIAN SYLLABICS WEST-CREE TWE;Lo;0;L;;;;;N;;;;;
+1459;CANADIAN SYLLABICS TWI;Lo;0;L;;;;;N;;;;;
+145A;CANADIAN SYLLABICS WEST-CREE TWI;Lo;0;L;;;;;N;;;;;
+145B;CANADIAN SYLLABICS TWII;Lo;0;L;;;;;N;;;;;
+145C;CANADIAN SYLLABICS WEST-CREE TWII;Lo;0;L;;;;;N;;;;;
+145D;CANADIAN SYLLABICS TWO;Lo;0;L;;;;;N;;;;;
+145E;CANADIAN SYLLABICS WEST-CREE TWO;Lo;0;L;;;;;N;;;;;
+145F;CANADIAN SYLLABICS TWOO;Lo;0;L;;;;;N;;;;;
+1460;CANADIAN SYLLABICS WEST-CREE TWOO;Lo;0;L;;;;;N;;;;;
+1461;CANADIAN SYLLABICS TWA;Lo;0;L;;;;;N;;;;;
+1462;CANADIAN SYLLABICS WEST-CREE TWA;Lo;0;L;;;;;N;;;;;
+1463;CANADIAN SYLLABICS TWAA;Lo;0;L;;;;;N;;;;;
+1464;CANADIAN SYLLABICS WEST-CREE TWAA;Lo;0;L;;;;;N;;;;;
+1465;CANADIAN SYLLABICS NASKAPI TWAA;Lo;0;L;;;;;N;;;;;
+1466;CANADIAN SYLLABICS T;Lo;0;L;;;;;N;;;;;
+1467;CANADIAN SYLLABICS TTE;Lo;0;L;;;;;N;;;;;
+1468;CANADIAN SYLLABICS TTI;Lo;0;L;;;;;N;;;;;
+1469;CANADIAN SYLLABICS TTO;Lo;0;L;;;;;N;;;;;
+146A;CANADIAN SYLLABICS TTA;Lo;0;L;;;;;N;;;;;
+146B;CANADIAN SYLLABICS KE;Lo;0;L;;;;;N;;;;;
+146C;CANADIAN SYLLABICS KAAI;Lo;0;L;;;;;N;;;;;
+146D;CANADIAN SYLLABICS KI;Lo;0;L;;;;;N;;;;;
+146E;CANADIAN SYLLABICS KII;Lo;0;L;;;;;N;;;;;
+146F;CANADIAN SYLLABICS KO;Lo;0;L;;;;;N;;;;;
+1470;CANADIAN SYLLABICS KOO;Lo;0;L;;;;;N;;;;;
+1471;CANADIAN SYLLABICS Y-CREE KOO;Lo;0;L;;;;;N;;;;;
+1472;CANADIAN SYLLABICS KA;Lo;0;L;;;;;N;;;;;
+1473;CANADIAN SYLLABICS KAA;Lo;0;L;;;;;N;;;;;
+1474;CANADIAN SYLLABICS KWE;Lo;0;L;;;;;N;;;;;
+1475;CANADIAN SYLLABICS WEST-CREE KWE;Lo;0;L;;;;;N;;;;;
+1476;CANADIAN SYLLABICS KWI;Lo;0;L;;;;;N;;;;;
+1477;CANADIAN SYLLABICS WEST-CREE KWI;Lo;0;L;;;;;N;;;;;
+1478;CANADIAN SYLLABICS KWII;Lo;0;L;;;;;N;;;;;
+1479;CANADIAN SYLLABICS WEST-CREE KWII;Lo;0;L;;;;;N;;;;;
+147A;CANADIAN SYLLABICS KWO;Lo;0;L;;;;;N;;;;;
+147B;CANADIAN SYLLABICS WEST-CREE KWO;Lo;0;L;;;;;N;;;;;
+147C;CANADIAN SYLLABICS KWOO;Lo;0;L;;;;;N;;;;;
+147D;CANADIAN SYLLABICS WEST-CREE KWOO;Lo;0;L;;;;;N;;;;;
+147E;CANADIAN SYLLABICS KWA;Lo;0;L;;;;;N;;;;;
+147F;CANADIAN SYLLABICS WEST-CREE KWA;Lo;0;L;;;;;N;;;;;
+1480;CANADIAN SYLLABICS KWAA;Lo;0;L;;;;;N;;;;;
+1481;CANADIAN SYLLABICS WEST-CREE KWAA;Lo;0;L;;;;;N;;;;;
+1482;CANADIAN SYLLABICS NASKAPI KWAA;Lo;0;L;;;;;N;;;;;
+1483;CANADIAN SYLLABICS K;Lo;0;L;;;;;N;;;;;
+1484;CANADIAN SYLLABICS KW;Lo;0;L;;;;;N;;;;;
+1485;CANADIAN SYLLABICS SOUTH-SLAVEY KEH;Lo;0;L;;;;;N;;;;;
+1486;CANADIAN SYLLABICS SOUTH-SLAVEY KIH;Lo;0;L;;;;;N;;;;;
+1487;CANADIAN SYLLABICS SOUTH-SLAVEY KOH;Lo;0;L;;;;;N;;;;;
+1488;CANADIAN SYLLABICS SOUTH-SLAVEY KAH;Lo;0;L;;;;;N;;;;;
+1489;CANADIAN SYLLABICS CE;Lo;0;L;;;;;N;;;;;
+148A;CANADIAN SYLLABICS CAAI;Lo;0;L;;;;;N;;;;;
+148B;CANADIAN SYLLABICS CI;Lo;0;L;;;;;N;;;;;
+148C;CANADIAN SYLLABICS CII;Lo;0;L;;;;;N;;;;;
+148D;CANADIAN SYLLABICS CO;Lo;0;L;;;;;N;;;;;
+148E;CANADIAN SYLLABICS COO;Lo;0;L;;;;;N;;;;;
+148F;CANADIAN SYLLABICS Y-CREE COO;Lo;0;L;;;;;N;;;;;
+1490;CANADIAN SYLLABICS CA;Lo;0;L;;;;;N;;;;;
+1491;CANADIAN SYLLABICS CAA;Lo;0;L;;;;;N;;;;;
+1492;CANADIAN SYLLABICS CWE;Lo;0;L;;;;;N;;;;;
+1493;CANADIAN SYLLABICS WEST-CREE CWE;Lo;0;L;;;;;N;;;;;
+1494;CANADIAN SYLLABICS CWI;Lo;0;L;;;;;N;;;;;
+1495;CANADIAN SYLLABICS WEST-CREE CWI;Lo;0;L;;;;;N;;;;;
+1496;CANADIAN SYLLABICS CWII;Lo;0;L;;;;;N;;;;;
+1497;CANADIAN SYLLABICS WEST-CREE CWII;Lo;0;L;;;;;N;;;;;
+1498;CANADIAN SYLLABICS CWO;Lo;0;L;;;;;N;;;;;
+1499;CANADIAN SYLLABICS WEST-CREE CWO;Lo;0;L;;;;;N;;;;;
+149A;CANADIAN SYLLABICS CWOO;Lo;0;L;;;;;N;;;;;
+149B;CANADIAN SYLLABICS WEST-CREE CWOO;Lo;0;L;;;;;N;;;;;
+149C;CANADIAN SYLLABICS CWA;Lo;0;L;;;;;N;;;;;
+149D;CANADIAN SYLLABICS WEST-CREE CWA;Lo;0;L;;;;;N;;;;;
+149E;CANADIAN SYLLABICS CWAA;Lo;0;L;;;;;N;;;;;
+149F;CANADIAN SYLLABICS WEST-CREE CWAA;Lo;0;L;;;;;N;;;;;
+14A0;CANADIAN SYLLABICS NASKAPI CWAA;Lo;0;L;;;;;N;;;;;
+14A1;CANADIAN SYLLABICS C;Lo;0;L;;;;;N;;;;;
+14A2;CANADIAN SYLLABICS SAYISI TH;Lo;0;L;;;;;N;;;;;
+14A3;CANADIAN SYLLABICS ME;Lo;0;L;;;;;N;;;;;
+14A4;CANADIAN SYLLABICS MAAI;Lo;0;L;;;;;N;;;;;
+14A5;CANADIAN SYLLABICS MI;Lo;0;L;;;;;N;;;;;
+14A6;CANADIAN SYLLABICS MII;Lo;0;L;;;;;N;;;;;
+14A7;CANADIAN SYLLABICS MO;Lo;0;L;;;;;N;;;;;
+14A8;CANADIAN SYLLABICS MOO;Lo;0;L;;;;;N;;;;;
+14A9;CANADIAN SYLLABICS Y-CREE MOO;Lo;0;L;;;;;N;;;;;
+14AA;CANADIAN SYLLABICS MA;Lo;0;L;;;;;N;;;;;
+14AB;CANADIAN SYLLABICS MAA;Lo;0;L;;;;;N;;;;;
+14AC;CANADIAN SYLLABICS MWE;Lo;0;L;;;;;N;;;;;
+14AD;CANADIAN SYLLABICS WEST-CREE MWE;Lo;0;L;;;;;N;;;;;
+14AE;CANADIAN SYLLABICS MWI;Lo;0;L;;;;;N;;;;;
+14AF;CANADIAN SYLLABICS WEST-CREE MWI;Lo;0;L;;;;;N;;;;;
+14B0;CANADIAN SYLLABICS MWII;Lo;0;L;;;;;N;;;;;
+14B1;CANADIAN SYLLABICS WEST-CREE MWII;Lo;0;L;;;;;N;;;;;
+14B2;CANADIAN SYLLABICS MWO;Lo;0;L;;;;;N;;;;;
+14B3;CANADIAN SYLLABICS WEST-CREE MWO;Lo;0;L;;;;;N;;;;;
+14B4;CANADIAN SYLLABICS MWOO;Lo;0;L;;;;;N;;;;;
+14B5;CANADIAN SYLLABICS WEST-CREE MWOO;Lo;0;L;;;;;N;;;;;
+14B6;CANADIAN SYLLABICS MWA;Lo;0;L;;;;;N;;;;;
+14B7;CANADIAN SYLLABICS WEST-CREE MWA;Lo;0;L;;;;;N;;;;;
+14B8;CANADIAN SYLLABICS MWAA;Lo;0;L;;;;;N;;;;;
+14B9;CANADIAN SYLLABICS WEST-CREE MWAA;Lo;0;L;;;;;N;;;;;
+14BA;CANADIAN SYLLABICS NASKAPI MWAA;Lo;0;L;;;;;N;;;;;
+14BB;CANADIAN SYLLABICS M;Lo;0;L;;;;;N;;;;;
+14BC;CANADIAN SYLLABICS WEST-CREE M;Lo;0;L;;;;;N;;;;;
+14BD;CANADIAN SYLLABICS MH;Lo;0;L;;;;;N;;;;;
+14BE;CANADIAN SYLLABICS ATHAPASCAN M;Lo;0;L;;;;;N;;;;;
+14BF;CANADIAN SYLLABICS SAYISI M;Lo;0;L;;;;;N;;;;;
+14C0;CANADIAN SYLLABICS NE;Lo;0;L;;;;;N;;;;;
+14C1;CANADIAN SYLLABICS NAAI;Lo;0;L;;;;;N;;;;;
+14C2;CANADIAN SYLLABICS NI;Lo;0;L;;;;;N;;;;;
+14C3;CANADIAN SYLLABICS NII;Lo;0;L;;;;;N;;;;;
+14C4;CANADIAN SYLLABICS NO;Lo;0;L;;;;;N;;;;;
+14C5;CANADIAN SYLLABICS NOO;Lo;0;L;;;;;N;;;;;
+14C6;CANADIAN SYLLABICS Y-CREE NOO;Lo;0;L;;;;;N;;;;;
+14C7;CANADIAN SYLLABICS NA;Lo;0;L;;;;;N;;;;;
+14C8;CANADIAN SYLLABICS NAA;Lo;0;L;;;;;N;;;;;
+14C9;CANADIAN SYLLABICS NWE;Lo;0;L;;;;;N;;;;;
+14CA;CANADIAN SYLLABICS WEST-CREE NWE;Lo;0;L;;;;;N;;;;;
+14CB;CANADIAN SYLLABICS NWA;Lo;0;L;;;;;N;;;;;
+14CC;CANADIAN SYLLABICS WEST-CREE NWA;Lo;0;L;;;;;N;;;;;
+14CD;CANADIAN SYLLABICS NWAA;Lo;0;L;;;;;N;;;;;
+14CE;CANADIAN SYLLABICS WEST-CREE NWAA;Lo;0;L;;;;;N;;;;;
+14CF;CANADIAN SYLLABICS NASKAPI NWAA;Lo;0;L;;;;;N;;;;;
+14D0;CANADIAN SYLLABICS N;Lo;0;L;;;;;N;;;;;
+14D1;CANADIAN SYLLABICS CARRIER NG;Lo;0;L;;;;;N;;;;;
+14D2;CANADIAN SYLLABICS NH;Lo;0;L;;;;;N;;;;;
+14D3;CANADIAN SYLLABICS LE;Lo;0;L;;;;;N;;;;;
+14D4;CANADIAN SYLLABICS LAAI;Lo;0;L;;;;;N;;;;;
+14D5;CANADIAN SYLLABICS LI;Lo;0;L;;;;;N;;;;;
+14D6;CANADIAN SYLLABICS LII;Lo;0;L;;;;;N;;;;;
+14D7;CANADIAN SYLLABICS LO;Lo;0;L;;;;;N;;;;;
+14D8;CANADIAN SYLLABICS LOO;Lo;0;L;;;;;N;;;;;
+14D9;CANADIAN SYLLABICS Y-CREE LOO;Lo;0;L;;;;;N;;;;;
+14DA;CANADIAN SYLLABICS LA;Lo;0;L;;;;;N;;;;;
+14DB;CANADIAN SYLLABICS LAA;Lo;0;L;;;;;N;;;;;
+14DC;CANADIAN SYLLABICS LWE;Lo;0;L;;;;;N;;;;;
+14DD;CANADIAN SYLLABICS WEST-CREE LWE;Lo;0;L;;;;;N;;;;;
+14DE;CANADIAN SYLLABICS LWI;Lo;0;L;;;;;N;;;;;
+14DF;CANADIAN SYLLABICS WEST-CREE LWI;Lo;0;L;;;;;N;;;;;
+14E0;CANADIAN SYLLABICS LWII;Lo;0;L;;;;;N;;;;;
+14E1;CANADIAN SYLLABICS WEST-CREE LWII;Lo;0;L;;;;;N;;;;;
+14E2;CANADIAN SYLLABICS LWO;Lo;0;L;;;;;N;;;;;
+14E3;CANADIAN SYLLABICS WEST-CREE LWO;Lo;0;L;;;;;N;;;;;
+14E4;CANADIAN SYLLABICS LWOO;Lo;0;L;;;;;N;;;;;
+14E5;CANADIAN SYLLABICS WEST-CREE LWOO;Lo;0;L;;;;;N;;;;;
+14E6;CANADIAN SYLLABICS LWA;Lo;0;L;;;;;N;;;;;
+14E7;CANADIAN SYLLABICS WEST-CREE LWA;Lo;0;L;;;;;N;;;;;
+14E8;CANADIAN SYLLABICS LWAA;Lo;0;L;;;;;N;;;;;
+14E9;CANADIAN SYLLABICS WEST-CREE LWAA;Lo;0;L;;;;;N;;;;;
+14EA;CANADIAN SYLLABICS L;Lo;0;L;;;;;N;;;;;
+14EB;CANADIAN SYLLABICS WEST-CREE L;Lo;0;L;;;;;N;;;;;
+14EC;CANADIAN SYLLABICS MEDIAL L;Lo;0;L;;;;;N;;;;;
+14ED;CANADIAN SYLLABICS SE;Lo;0;L;;;;;N;;;;;
+14EE;CANADIAN SYLLABICS SAAI;Lo;0;L;;;;;N;;;;;
+14EF;CANADIAN SYLLABICS SI;Lo;0;L;;;;;N;;;;;
+14F0;CANADIAN SYLLABICS SII;Lo;0;L;;;;;N;;;;;
+14F1;CANADIAN SYLLABICS SO;Lo;0;L;;;;;N;;;;;
+14F2;CANADIAN SYLLABICS SOO;Lo;0;L;;;;;N;;;;;
+14F3;CANADIAN SYLLABICS Y-CREE SOO;Lo;0;L;;;;;N;;;;;
+14F4;CANADIAN SYLLABICS SA;Lo;0;L;;;;;N;;;;;
+14F5;CANADIAN SYLLABICS SAA;Lo;0;L;;;;;N;;;;;
+14F6;CANADIAN SYLLABICS SWE;Lo;0;L;;;;;N;;;;;
+14F7;CANADIAN SYLLABICS WEST-CREE SWE;Lo;0;L;;;;;N;;;;;
+14F8;CANADIAN SYLLABICS SWI;Lo;0;L;;;;;N;;;;;
+14F9;CANADIAN SYLLABICS WEST-CREE SWI;Lo;0;L;;;;;N;;;;;
+14FA;CANADIAN SYLLABICS SWII;Lo;0;L;;;;;N;;;;;
+14FB;CANADIAN SYLLABICS WEST-CREE SWII;Lo;0;L;;;;;N;;;;;
+14FC;CANADIAN SYLLABICS SWO;Lo;0;L;;;;;N;;;;;
+14FD;CANADIAN SYLLABICS WEST-CREE SWO;Lo;0;L;;;;;N;;;;;
+14FE;CANADIAN SYLLABICS SWOO;Lo;0;L;;;;;N;;;;;
+14FF;CANADIAN SYLLABICS WEST-CREE SWOO;Lo;0;L;;;;;N;;;;;
+1500;CANADIAN SYLLABICS SWA;Lo;0;L;;;;;N;;;;;
+1501;CANADIAN SYLLABICS WEST-CREE SWA;Lo;0;L;;;;;N;;;;;
+1502;CANADIAN SYLLABICS SWAA;Lo;0;L;;;;;N;;;;;
+1503;CANADIAN SYLLABICS WEST-CREE SWAA;Lo;0;L;;;;;N;;;;;
+1504;CANADIAN SYLLABICS NASKAPI SWAA;Lo;0;L;;;;;N;;;;;
+1505;CANADIAN SYLLABICS S;Lo;0;L;;;;;N;;;;;
+1506;CANADIAN SYLLABICS ATHAPASCAN S;Lo;0;L;;;;;N;;;;;
+1507;CANADIAN SYLLABICS SW;Lo;0;L;;;;;N;;;;;
+1508;CANADIAN SYLLABICS BLACKFOOT S;Lo;0;L;;;;;N;;;;;
+1509;CANADIAN SYLLABICS MOOSE-CREE SK;Lo;0;L;;;;;N;;;;;
+150A;CANADIAN SYLLABICS NASKAPI SKW;Lo;0;L;;;;;N;;;;;
+150B;CANADIAN SYLLABICS NASKAPI S-W;Lo;0;L;;;;;N;;;;;
+150C;CANADIAN SYLLABICS NASKAPI SPWA;Lo;0;L;;;;;N;;;;;
+150D;CANADIAN SYLLABICS NASKAPI STWA;Lo;0;L;;;;;N;;;;;
+150E;CANADIAN SYLLABICS NASKAPI SKWA;Lo;0;L;;;;;N;;;;;
+150F;CANADIAN SYLLABICS NASKAPI SCWA;Lo;0;L;;;;;N;;;;;
+1510;CANADIAN SYLLABICS SHE;Lo;0;L;;;;;N;;;;;
+1511;CANADIAN SYLLABICS SHI;Lo;0;L;;;;;N;;;;;
+1512;CANADIAN SYLLABICS SHII;Lo;0;L;;;;;N;;;;;
+1513;CANADIAN SYLLABICS SHO;Lo;0;L;;;;;N;;;;;
+1514;CANADIAN SYLLABICS SHOO;Lo;0;L;;;;;N;;;;;
+1515;CANADIAN SYLLABICS SHA;Lo;0;L;;;;;N;;;;;
+1516;CANADIAN SYLLABICS SHAA;Lo;0;L;;;;;N;;;;;
+1517;CANADIAN SYLLABICS SHWE;Lo;0;L;;;;;N;;;;;
+1518;CANADIAN SYLLABICS WEST-CREE SHWE;Lo;0;L;;;;;N;;;;;
+1519;CANADIAN SYLLABICS SHWI;Lo;0;L;;;;;N;;;;;
+151A;CANADIAN SYLLABICS WEST-CREE SHWI;Lo;0;L;;;;;N;;;;;
+151B;CANADIAN SYLLABICS SHWII;Lo;0;L;;;;;N;;;;;
+151C;CANADIAN SYLLABICS WEST-CREE SHWII;Lo;0;L;;;;;N;;;;;
+151D;CANADIAN SYLLABICS SHWO;Lo;0;L;;;;;N;;;;;
+151E;CANADIAN SYLLABICS WEST-CREE SHWO;Lo;0;L;;;;;N;;;;;
+151F;CANADIAN SYLLABICS SHWOO;Lo;0;L;;;;;N;;;;;
+1520;CANADIAN SYLLABICS WEST-CREE SHWOO;Lo;0;L;;;;;N;;;;;
+1521;CANADIAN SYLLABICS SHWA;Lo;0;L;;;;;N;;;;;
+1522;CANADIAN SYLLABICS WEST-CREE SHWA;Lo;0;L;;;;;N;;;;;
+1523;CANADIAN SYLLABICS SHWAA;Lo;0;L;;;;;N;;;;;
+1524;CANADIAN SYLLABICS WEST-CREE SHWAA;Lo;0;L;;;;;N;;;;;
+1525;CANADIAN SYLLABICS SH;Lo;0;L;;;;;N;;;;;
+1526;CANADIAN SYLLABICS YE;Lo;0;L;;;;;N;;;;;
+1527;CANADIAN SYLLABICS YAAI;Lo;0;L;;;;;N;;;;;
+1528;CANADIAN SYLLABICS YI;Lo;0;L;;;;;N;;;;;
+1529;CANADIAN SYLLABICS YII;Lo;0;L;;;;;N;;;;;
+152A;CANADIAN SYLLABICS YO;Lo;0;L;;;;;N;;;;;
+152B;CANADIAN SYLLABICS YOO;Lo;0;L;;;;;N;;;;;
+152C;CANADIAN SYLLABICS Y-CREE YOO;Lo;0;L;;;;;N;;;;;
+152D;CANADIAN SYLLABICS YA;Lo;0;L;;;;;N;;;;;
+152E;CANADIAN SYLLABICS YAA;Lo;0;L;;;;;N;;;;;
+152F;CANADIAN SYLLABICS YWE;Lo;0;L;;;;;N;;;;;
+1530;CANADIAN SYLLABICS WEST-CREE YWE;Lo;0;L;;;;;N;;;;;
+1531;CANADIAN SYLLABICS YWI;Lo;0;L;;;;;N;;;;;
+1532;CANADIAN SYLLABICS WEST-CREE YWI;Lo;0;L;;;;;N;;;;;
+1533;CANADIAN SYLLABICS YWII;Lo;0;L;;;;;N;;;;;
+1534;CANADIAN SYLLABICS WEST-CREE YWII;Lo;0;L;;;;;N;;;;;
+1535;CANADIAN SYLLABICS YWO;Lo;0;L;;;;;N;;;;;
+1536;CANADIAN SYLLABICS WEST-CREE YWO;Lo;0;L;;;;;N;;;;;
+1537;CANADIAN SYLLABICS YWOO;Lo;0;L;;;;;N;;;;;
+1538;CANADIAN SYLLABICS WEST-CREE YWOO;Lo;0;L;;;;;N;;;;;
+1539;CANADIAN SYLLABICS YWA;Lo;0;L;;;;;N;;;;;
+153A;CANADIAN SYLLABICS WEST-CREE YWA;Lo;0;L;;;;;N;;;;;
+153B;CANADIAN SYLLABICS YWAA;Lo;0;L;;;;;N;;;;;
+153C;CANADIAN SYLLABICS WEST-CREE YWAA;Lo;0;L;;;;;N;;;;;
+153D;CANADIAN SYLLABICS NASKAPI YWAA;Lo;0;L;;;;;N;;;;;
+153E;CANADIAN SYLLABICS Y;Lo;0;L;;;;;N;;;;;
+153F;CANADIAN SYLLABICS BIBLE-CREE Y;Lo;0;L;;;;;N;;;;;
+1540;CANADIAN SYLLABICS WEST-CREE Y;Lo;0;L;;;;;N;;;;;
+1541;CANADIAN SYLLABICS SAYISI YI;Lo;0;L;;;;;N;;;;;
+1542;CANADIAN SYLLABICS RE;Lo;0;L;;;;;N;;;;;
+1543;CANADIAN SYLLABICS R-CREE RE;Lo;0;L;;;;;N;;;;;
+1544;CANADIAN SYLLABICS WEST-CREE LE;Lo;0;L;;;;;N;;;;;
+1545;CANADIAN SYLLABICS RAAI;Lo;0;L;;;;;N;;;;;
+1546;CANADIAN SYLLABICS RI;Lo;0;L;;;;;N;;;;;
+1547;CANADIAN SYLLABICS RII;Lo;0;L;;;;;N;;;;;
+1548;CANADIAN SYLLABICS RO;Lo;0;L;;;;;N;;;;;
+1549;CANADIAN SYLLABICS ROO;Lo;0;L;;;;;N;;;;;
+154A;CANADIAN SYLLABICS WEST-CREE LO;Lo;0;L;;;;;N;;;;;
+154B;CANADIAN SYLLABICS RA;Lo;0;L;;;;;N;;;;;
+154C;CANADIAN SYLLABICS RAA;Lo;0;L;;;;;N;;;;;
+154D;CANADIAN SYLLABICS WEST-CREE LA;Lo;0;L;;;;;N;;;;;
+154E;CANADIAN SYLLABICS RWAA;Lo;0;L;;;;;N;;;;;
+154F;CANADIAN SYLLABICS WEST-CREE RWAA;Lo;0;L;;;;;N;;;;;
+1550;CANADIAN SYLLABICS R;Lo;0;L;;;;;N;;;;;
+1551;CANADIAN SYLLABICS WEST-CREE R;Lo;0;L;;;;;N;;;;;
+1552;CANADIAN SYLLABICS MEDIAL R;Lo;0;L;;;;;N;;;;;
+1553;CANADIAN SYLLABICS FE;Lo;0;L;;;;;N;;;;;
+1554;CANADIAN SYLLABICS FAAI;Lo;0;L;;;;;N;;;;;
+1555;CANADIAN SYLLABICS FI;Lo;0;L;;;;;N;;;;;
+1556;CANADIAN SYLLABICS FII;Lo;0;L;;;;;N;;;;;
+1557;CANADIAN SYLLABICS FO;Lo;0;L;;;;;N;;;;;
+1558;CANADIAN SYLLABICS FOO;Lo;0;L;;;;;N;;;;;
+1559;CANADIAN SYLLABICS FA;Lo;0;L;;;;;N;;;;;
+155A;CANADIAN SYLLABICS FAA;Lo;0;L;;;;;N;;;;;
+155B;CANADIAN SYLLABICS FWAA;Lo;0;L;;;;;N;;;;;
+155C;CANADIAN SYLLABICS WEST-CREE FWAA;Lo;0;L;;;;;N;;;;;
+155D;CANADIAN SYLLABICS F;Lo;0;L;;;;;N;;;;;
+155E;CANADIAN SYLLABICS THE;Lo;0;L;;;;;N;;;;;
+155F;CANADIAN SYLLABICS N-CREE THE;Lo;0;L;;;;;N;;;;;
+1560;CANADIAN SYLLABICS THI;Lo;0;L;;;;;N;;;;;
+1561;CANADIAN SYLLABICS N-CREE THI;Lo;0;L;;;;;N;;;;;
+1562;CANADIAN SYLLABICS THII;Lo;0;L;;;;;N;;;;;
+1563;CANADIAN SYLLABICS N-CREE THII;Lo;0;L;;;;;N;;;;;
+1564;CANADIAN SYLLABICS THO;Lo;0;L;;;;;N;;;;;
+1565;CANADIAN SYLLABICS THOO;Lo;0;L;;;;;N;;;;;
+1566;CANADIAN SYLLABICS THA;Lo;0;L;;;;;N;;;;;
+1567;CANADIAN SYLLABICS THAA;Lo;0;L;;;;;N;;;;;
+1568;CANADIAN SYLLABICS THWAA;Lo;0;L;;;;;N;;;;;
+1569;CANADIAN SYLLABICS WEST-CREE THWAA;Lo;0;L;;;;;N;;;;;
+156A;CANADIAN SYLLABICS TH;Lo;0;L;;;;;N;;;;;
+156B;CANADIAN SYLLABICS TTHE;Lo;0;L;;;;;N;;;;;
+156C;CANADIAN SYLLABICS TTHI;Lo;0;L;;;;;N;;;;;
+156D;CANADIAN SYLLABICS TTHO;Lo;0;L;;;;;N;;;;;
+156E;CANADIAN SYLLABICS TTHA;Lo;0;L;;;;;N;;;;;
+156F;CANADIAN SYLLABICS TTH;Lo;0;L;;;;;N;;;;;
+1570;CANADIAN SYLLABICS TYE;Lo;0;L;;;;;N;;;;;
+1571;CANADIAN SYLLABICS TYI;Lo;0;L;;;;;N;;;;;
+1572;CANADIAN SYLLABICS TYO;Lo;0;L;;;;;N;;;;;
+1573;CANADIAN SYLLABICS TYA;Lo;0;L;;;;;N;;;;;
+1574;CANADIAN SYLLABICS NUNAVIK HE;Lo;0;L;;;;;N;;;;;
+1575;CANADIAN SYLLABICS NUNAVIK HI;Lo;0;L;;;;;N;;;;;
+1576;CANADIAN SYLLABICS NUNAVIK HII;Lo;0;L;;;;;N;;;;;
+1577;CANADIAN SYLLABICS NUNAVIK HO;Lo;0;L;;;;;N;;;;;
+1578;CANADIAN SYLLABICS NUNAVIK HOO;Lo;0;L;;;;;N;;;;;
+1579;CANADIAN SYLLABICS NUNAVIK HA;Lo;0;L;;;;;N;;;;;
+157A;CANADIAN SYLLABICS NUNAVIK HAA;Lo;0;L;;;;;N;;;;;
+157B;CANADIAN SYLLABICS NUNAVIK H;Lo;0;L;;;;;N;;;;;
+157C;CANADIAN SYLLABICS NUNAVUT H;Lo;0;L;;;;;N;;;;;
+157D;CANADIAN SYLLABICS HK;Lo;0;L;;;;;N;;;;;
+157E;CANADIAN SYLLABICS QAAI;Lo;0;L;;;;;N;;;;;
+157F;CANADIAN SYLLABICS QI;Lo;0;L;;;;;N;;;;;
+1580;CANADIAN SYLLABICS QII;Lo;0;L;;;;;N;;;;;
+1581;CANADIAN SYLLABICS QO;Lo;0;L;;;;;N;;;;;
+1582;CANADIAN SYLLABICS QOO;Lo;0;L;;;;;N;;;;;
+1583;CANADIAN SYLLABICS QA;Lo;0;L;;;;;N;;;;;
+1584;CANADIAN SYLLABICS QAA;Lo;0;L;;;;;N;;;;;
+1585;CANADIAN SYLLABICS Q;Lo;0;L;;;;;N;;;;;
+1586;CANADIAN SYLLABICS TLHE;Lo;0;L;;;;;N;;;;;
+1587;CANADIAN SYLLABICS TLHI;Lo;0;L;;;;;N;;;;;
+1588;CANADIAN SYLLABICS TLHO;Lo;0;L;;;;;N;;;;;
+1589;CANADIAN SYLLABICS TLHA;Lo;0;L;;;;;N;;;;;
+158A;CANADIAN SYLLABICS WEST-CREE RE;Lo;0;L;;;;;N;;;;;
+158B;CANADIAN SYLLABICS WEST-CREE RI;Lo;0;L;;;;;N;;;;;
+158C;CANADIAN SYLLABICS WEST-CREE RO;Lo;0;L;;;;;N;;;;;
+158D;CANADIAN SYLLABICS WEST-CREE RA;Lo;0;L;;;;;N;;;;;
+158E;CANADIAN SYLLABICS NGAAI;Lo;0;L;;;;;N;;;;;
+158F;CANADIAN SYLLABICS NGI;Lo;0;L;;;;;N;;;;;
+1590;CANADIAN SYLLABICS NGII;Lo;0;L;;;;;N;;;;;
+1591;CANADIAN SYLLABICS NGO;Lo;0;L;;;;;N;;;;;
+1592;CANADIAN SYLLABICS NGOO;Lo;0;L;;;;;N;;;;;
+1593;CANADIAN SYLLABICS NGA;Lo;0;L;;;;;N;;;;;
+1594;CANADIAN SYLLABICS NGAA;Lo;0;L;;;;;N;;;;;
+1595;CANADIAN SYLLABICS NG;Lo;0;L;;;;;N;;;;;
+1596;CANADIAN SYLLABICS NNG;Lo;0;L;;;;;N;;;;;
+1597;CANADIAN SYLLABICS SAYISI SHE;Lo;0;L;;;;;N;;;;;
+1598;CANADIAN SYLLABICS SAYISI SHI;Lo;0;L;;;;;N;;;;;
+1599;CANADIAN SYLLABICS SAYISI SHO;Lo;0;L;;;;;N;;;;;
+159A;CANADIAN SYLLABICS SAYISI SHA;Lo;0;L;;;;;N;;;;;
+159B;CANADIAN SYLLABICS WOODS-CREE THE;Lo;0;L;;;;;N;;;;;
+159C;CANADIAN SYLLABICS WOODS-CREE THI;Lo;0;L;;;;;N;;;;;
+159D;CANADIAN SYLLABICS WOODS-CREE THO;Lo;0;L;;;;;N;;;;;
+159E;CANADIAN SYLLABICS WOODS-CREE THA;Lo;0;L;;;;;N;;;;;
+159F;CANADIAN SYLLABICS WOODS-CREE TH;Lo;0;L;;;;;N;;;;;
+15A0;CANADIAN SYLLABICS LHI;Lo;0;L;;;;;N;;;;;
+15A1;CANADIAN SYLLABICS LHII;Lo;0;L;;;;;N;;;;;
+15A2;CANADIAN SYLLABICS LHO;Lo;0;L;;;;;N;;;;;
+15A3;CANADIAN SYLLABICS LHOO;Lo;0;L;;;;;N;;;;;
+15A4;CANADIAN SYLLABICS LHA;Lo;0;L;;;;;N;;;;;
+15A5;CANADIAN SYLLABICS LHAA;Lo;0;L;;;;;N;;;;;
+15A6;CANADIAN SYLLABICS LH;Lo;0;L;;;;;N;;;;;
+15A7;CANADIAN SYLLABICS TH-CREE THE;Lo;0;L;;;;;N;;;;;
+15A8;CANADIAN SYLLABICS TH-CREE THI;Lo;0;L;;;;;N;;;;;
+15A9;CANADIAN SYLLABICS TH-CREE THII;Lo;0;L;;;;;N;;;;;
+15AA;CANADIAN SYLLABICS TH-CREE THO;Lo;0;L;;;;;N;;;;;
+15AB;CANADIAN SYLLABICS TH-CREE THOO;Lo;0;L;;;;;N;;;;;
+15AC;CANADIAN SYLLABICS TH-CREE THA;Lo;0;L;;;;;N;;;;;
+15AD;CANADIAN SYLLABICS TH-CREE THAA;Lo;0;L;;;;;N;;;;;
+15AE;CANADIAN SYLLABICS TH-CREE TH;Lo;0;L;;;;;N;;;;;
+15AF;CANADIAN SYLLABICS AIVILIK B;Lo;0;L;;;;;N;;;;;
+15B0;CANADIAN SYLLABICS BLACKFOOT E;Lo;0;L;;;;;N;;;;;
+15B1;CANADIAN SYLLABICS BLACKFOOT I;Lo;0;L;;;;;N;;;;;
+15B2;CANADIAN SYLLABICS BLACKFOOT O;Lo;0;L;;;;;N;;;;;
+15B3;CANADIAN SYLLABICS BLACKFOOT A;Lo;0;L;;;;;N;;;;;
+15B4;CANADIAN SYLLABICS BLACKFOOT WE;Lo;0;L;;;;;N;;;;;
+15B5;CANADIAN SYLLABICS BLACKFOOT WI;Lo;0;L;;;;;N;;;;;
+15B6;CANADIAN SYLLABICS BLACKFOOT WO;Lo;0;L;;;;;N;;;;;
+15B7;CANADIAN SYLLABICS BLACKFOOT WA;Lo;0;L;;;;;N;;;;;
+15B8;CANADIAN SYLLABICS BLACKFOOT NE;Lo;0;L;;;;;N;;;;;
+15B9;CANADIAN SYLLABICS BLACKFOOT NI;Lo;0;L;;;;;N;;;;;
+15BA;CANADIAN SYLLABICS BLACKFOOT NO;Lo;0;L;;;;;N;;;;;
+15BB;CANADIAN SYLLABICS BLACKFOOT NA;Lo;0;L;;;;;N;;;;;
+15BC;CANADIAN SYLLABICS BLACKFOOT KE;Lo;0;L;;;;;N;;;;;
+15BD;CANADIAN SYLLABICS BLACKFOOT KI;Lo;0;L;;;;;N;;;;;
+15BE;CANADIAN SYLLABICS BLACKFOOT KO;Lo;0;L;;;;;N;;;;;
+15BF;CANADIAN SYLLABICS BLACKFOOT KA;Lo;0;L;;;;;N;;;;;
+15C0;CANADIAN SYLLABICS SAYISI HE;Lo;0;L;;;;;N;;;;;
+15C1;CANADIAN SYLLABICS SAYISI HI;Lo;0;L;;;;;N;;;;;
+15C2;CANADIAN SYLLABICS SAYISI HO;Lo;0;L;;;;;N;;;;;
+15C3;CANADIAN SYLLABICS SAYISI HA;Lo;0;L;;;;;N;;;;;
+15C4;CANADIAN SYLLABICS CARRIER GHU;Lo;0;L;;;;;N;;;;;
+15C5;CANADIAN SYLLABICS CARRIER GHO;Lo;0;L;;;;;N;;;;;
+15C6;CANADIAN SYLLABICS CARRIER GHE;Lo;0;L;;;;;N;;;;;
+15C7;CANADIAN SYLLABICS CARRIER GHEE;Lo;0;L;;;;;N;;;;;
+15C8;CANADIAN SYLLABICS CARRIER GHI;Lo;0;L;;;;;N;;;;;
+15C9;CANADIAN SYLLABICS CARRIER GHA;Lo;0;L;;;;;N;;;;;
+15CA;CANADIAN SYLLABICS CARRIER RU;Lo;0;L;;;;;N;;;;;
+15CB;CANADIAN SYLLABICS CARRIER RO;Lo;0;L;;;;;N;;;;;
+15CC;CANADIAN SYLLABICS CARRIER RE;Lo;0;L;;;;;N;;;;;
+15CD;CANADIAN SYLLABICS CARRIER REE;Lo;0;L;;;;;N;;;;;
+15CE;CANADIAN SYLLABICS CARRIER RI;Lo;0;L;;;;;N;;;;;
+15CF;CANADIAN SYLLABICS CARRIER RA;Lo;0;L;;;;;N;;;;;
+15D0;CANADIAN SYLLABICS CARRIER WU;Lo;0;L;;;;;N;;;;;
+15D1;CANADIAN SYLLABICS CARRIER WO;Lo;0;L;;;;;N;;;;;
+15D2;CANADIAN SYLLABICS CARRIER WE;Lo;0;L;;;;;N;;;;;
+15D3;CANADIAN SYLLABICS CARRIER WEE;Lo;0;L;;;;;N;;;;;
+15D4;CANADIAN SYLLABICS CARRIER WI;Lo;0;L;;;;;N;;;;;
+15D5;CANADIAN SYLLABICS CARRIER WA;Lo;0;L;;;;;N;;;;;
+15D6;CANADIAN SYLLABICS CARRIER HWU;Lo;0;L;;;;;N;;;;;
+15D7;CANADIAN SYLLABICS CARRIER HWO;Lo;0;L;;;;;N;;;;;
+15D8;CANADIAN SYLLABICS CARRIER HWE;Lo;0;L;;;;;N;;;;;
+15D9;CANADIAN SYLLABICS CARRIER HWEE;Lo;0;L;;;;;N;;;;;
+15DA;CANADIAN SYLLABICS CARRIER HWI;Lo;0;L;;;;;N;;;;;
+15DB;CANADIAN SYLLABICS CARRIER HWA;Lo;0;L;;;;;N;;;;;
+15DC;CANADIAN SYLLABICS CARRIER THU;Lo;0;L;;;;;N;;;;;
+15DD;CANADIAN SYLLABICS CARRIER THO;Lo;0;L;;;;;N;;;;;
+15DE;CANADIAN SYLLABICS CARRIER THE;Lo;0;L;;;;;N;;;;;
+15DF;CANADIAN SYLLABICS CARRIER THEE;Lo;0;L;;;;;N;;;;;
+15E0;CANADIAN SYLLABICS CARRIER THI;Lo;0;L;;;;;N;;;;;
+15E1;CANADIAN SYLLABICS CARRIER THA;Lo;0;L;;;;;N;;;;;
+15E2;CANADIAN SYLLABICS CARRIER TTU;Lo;0;L;;;;;N;;;;;
+15E3;CANADIAN SYLLABICS CARRIER TTO;Lo;0;L;;;;;N;;;;;
+15E4;CANADIAN SYLLABICS CARRIER TTE;Lo;0;L;;;;;N;;;;;
+15E5;CANADIAN SYLLABICS CARRIER TTEE;Lo;0;L;;;;;N;;;;;
+15E6;CANADIAN SYLLABICS CARRIER TTI;Lo;0;L;;;;;N;;;;;
+15E7;CANADIAN SYLLABICS CARRIER TTA;Lo;0;L;;;;;N;;;;;
+15E8;CANADIAN SYLLABICS CARRIER PU;Lo;0;L;;;;;N;;;;;
+15E9;CANADIAN SYLLABICS CARRIER PO;Lo;0;L;;;;;N;;;;;
+15EA;CANADIAN SYLLABICS CARRIER PE;Lo;0;L;;;;;N;;;;;
+15EB;CANADIAN SYLLABICS CARRIER PEE;Lo;0;L;;;;;N;;;;;
+15EC;CANADIAN SYLLABICS CARRIER PI;Lo;0;L;;;;;N;;;;;
+15ED;CANADIAN SYLLABICS CARRIER PA;Lo;0;L;;;;;N;;;;;
+15EE;CANADIAN SYLLABICS CARRIER P;Lo;0;L;;;;;N;;;;;
+15EF;CANADIAN SYLLABICS CARRIER GU;Lo;0;L;;;;;N;;;;;
+15F0;CANADIAN SYLLABICS CARRIER GO;Lo;0;L;;;;;N;;;;;
+15F1;CANADIAN SYLLABICS CARRIER GE;Lo;0;L;;;;;N;;;;;
+15F2;CANADIAN SYLLABICS CARRIER GEE;Lo;0;L;;;;;N;;;;;
+15F3;CANADIAN SYLLABICS CARRIER GI;Lo;0;L;;;;;N;;;;;
+15F4;CANADIAN SYLLABICS CARRIER GA;Lo;0;L;;;;;N;;;;;
+15F5;CANADIAN SYLLABICS CARRIER KHU;Lo;0;L;;;;;N;;;;;
+15F6;CANADIAN SYLLABICS CARRIER KHO;Lo;0;L;;;;;N;;;;;
+15F7;CANADIAN SYLLABICS CARRIER KHE;Lo;0;L;;;;;N;;;;;
+15F8;CANADIAN SYLLABICS CARRIER KHEE;Lo;0;L;;;;;N;;;;;
+15F9;CANADIAN SYLLABICS CARRIER KHI;Lo;0;L;;;;;N;;;;;
+15FA;CANADIAN SYLLABICS CARRIER KHA;Lo;0;L;;;;;N;;;;;
+15FB;CANADIAN SYLLABICS CARRIER KKU;Lo;0;L;;;;;N;;;;;
+15FC;CANADIAN SYLLABICS CARRIER KKO;Lo;0;L;;;;;N;;;;;
+15FD;CANADIAN SYLLABICS CARRIER KKE;Lo;0;L;;;;;N;;;;;
+15FE;CANADIAN SYLLABICS CARRIER KKEE;Lo;0;L;;;;;N;;;;;
+15FF;CANADIAN SYLLABICS CARRIER KKI;Lo;0;L;;;;;N;;;;;
+1600;CANADIAN SYLLABICS CARRIER KKA;Lo;0;L;;;;;N;;;;;
+1601;CANADIAN SYLLABICS CARRIER KK;Lo;0;L;;;;;N;;;;;
+1602;CANADIAN SYLLABICS CARRIER NU;Lo;0;L;;;;;N;;;;;
+1603;CANADIAN SYLLABICS CARRIER NO;Lo;0;L;;;;;N;;;;;
+1604;CANADIAN SYLLABICS CARRIER NE;Lo;0;L;;;;;N;;;;;
+1605;CANADIAN SYLLABICS CARRIER NEE;Lo;0;L;;;;;N;;;;;
+1606;CANADIAN SYLLABICS CARRIER NI;Lo;0;L;;;;;N;;;;;
+1607;CANADIAN SYLLABICS CARRIER NA;Lo;0;L;;;;;N;;;;;
+1608;CANADIAN SYLLABICS CARRIER MU;Lo;0;L;;;;;N;;;;;
+1609;CANADIAN SYLLABICS CARRIER MO;Lo;0;L;;;;;N;;;;;
+160A;CANADIAN SYLLABICS CARRIER ME;Lo;0;L;;;;;N;;;;;
+160B;CANADIAN SYLLABICS CARRIER MEE;Lo;0;L;;;;;N;;;;;
+160C;CANADIAN SYLLABICS CARRIER MI;Lo;0;L;;;;;N;;;;;
+160D;CANADIAN SYLLABICS CARRIER MA;Lo;0;L;;;;;N;;;;;
+160E;CANADIAN SYLLABICS CARRIER YU;Lo;0;L;;;;;N;;;;;
+160F;CANADIAN SYLLABICS CARRIER YO;Lo;0;L;;;;;N;;;;;
+1610;CANADIAN SYLLABICS CARRIER YE;Lo;0;L;;;;;N;;;;;
+1611;CANADIAN SYLLABICS CARRIER YEE;Lo;0;L;;;;;N;;;;;
+1612;CANADIAN SYLLABICS CARRIER YI;Lo;0;L;;;;;N;;;;;
+1613;CANADIAN SYLLABICS CARRIER YA;Lo;0;L;;;;;N;;;;;
+1614;CANADIAN SYLLABICS CARRIER JU;Lo;0;L;;;;;N;;;;;
+1615;CANADIAN SYLLABICS SAYISI JU;Lo;0;L;;;;;N;;;;;
+1616;CANADIAN SYLLABICS CARRIER JO;Lo;0;L;;;;;N;;;;;
+1617;CANADIAN SYLLABICS CARRIER JE;Lo;0;L;;;;;N;;;;;
+1618;CANADIAN SYLLABICS CARRIER JEE;Lo;0;L;;;;;N;;;;;
+1619;CANADIAN SYLLABICS CARRIER JI;Lo;0;L;;;;;N;;;;;
+161A;CANADIAN SYLLABICS SAYISI JI;Lo;0;L;;;;;N;;;;;
+161B;CANADIAN SYLLABICS CARRIER JA;Lo;0;L;;;;;N;;;;;
+161C;CANADIAN SYLLABICS CARRIER JJU;Lo;0;L;;;;;N;;;;;
+161D;CANADIAN SYLLABICS CARRIER JJO;Lo;0;L;;;;;N;;;;;
+161E;CANADIAN SYLLABICS CARRIER JJE;Lo;0;L;;;;;N;;;;;
+161F;CANADIAN SYLLABICS CARRIER JJEE;Lo;0;L;;;;;N;;;;;
+1620;CANADIAN SYLLABICS CARRIER JJI;Lo;0;L;;;;;N;;;;;
+1621;CANADIAN SYLLABICS CARRIER JJA;Lo;0;L;;;;;N;;;;;
+1622;CANADIAN SYLLABICS CARRIER LU;Lo;0;L;;;;;N;;;;;
+1623;CANADIAN SYLLABICS CARRIER LO;Lo;0;L;;;;;N;;;;;
+1624;CANADIAN SYLLABICS CARRIER LE;Lo;0;L;;;;;N;;;;;
+1625;CANADIAN SYLLABICS CARRIER LEE;Lo;0;L;;;;;N;;;;;
+1626;CANADIAN SYLLABICS CARRIER LI;Lo;0;L;;;;;N;;;;;
+1627;CANADIAN SYLLABICS CARRIER LA;Lo;0;L;;;;;N;;;;;
+1628;CANADIAN SYLLABICS CARRIER DLU;Lo;0;L;;;;;N;;;;;
+1629;CANADIAN SYLLABICS CARRIER DLO;Lo;0;L;;;;;N;;;;;
+162A;CANADIAN SYLLABICS CARRIER DLE;Lo;0;L;;;;;N;;;;;
+162B;CANADIAN SYLLABICS CARRIER DLEE;Lo;0;L;;;;;N;;;;;
+162C;CANADIAN SYLLABICS CARRIER DLI;Lo;0;L;;;;;N;;;;;
+162D;CANADIAN SYLLABICS CARRIER DLA;Lo;0;L;;;;;N;;;;;
+162E;CANADIAN SYLLABICS CARRIER LHU;Lo;0;L;;;;;N;;;;;
+162F;CANADIAN SYLLABICS CARRIER LHO;Lo;0;L;;;;;N;;;;;
+1630;CANADIAN SYLLABICS CARRIER LHE;Lo;0;L;;;;;N;;;;;
+1631;CANADIAN SYLLABICS CARRIER LHEE;Lo;0;L;;;;;N;;;;;
+1632;CANADIAN SYLLABICS CARRIER LHI;Lo;0;L;;;;;N;;;;;
+1633;CANADIAN SYLLABICS CARRIER LHA;Lo;0;L;;;;;N;;;;;
+1634;CANADIAN SYLLABICS CARRIER TLHU;Lo;0;L;;;;;N;;;;;
+1635;CANADIAN SYLLABICS CARRIER TLHO;Lo;0;L;;;;;N;;;;;
+1636;CANADIAN SYLLABICS CARRIER TLHE;Lo;0;L;;;;;N;;;;;
+1637;CANADIAN SYLLABICS CARRIER TLHEE;Lo;0;L;;;;;N;;;;;
+1638;CANADIAN SYLLABICS CARRIER TLHI;Lo;0;L;;;;;N;;;;;
+1639;CANADIAN SYLLABICS CARRIER TLHA;Lo;0;L;;;;;N;;;;;
+163A;CANADIAN SYLLABICS CARRIER TLU;Lo;0;L;;;;;N;;;;;
+163B;CANADIAN SYLLABICS CARRIER TLO;Lo;0;L;;;;;N;;;;;
+163C;CANADIAN SYLLABICS CARRIER TLE;Lo;0;L;;;;;N;;;;;
+163D;CANADIAN SYLLABICS CARRIER TLEE;Lo;0;L;;;;;N;;;;;
+163E;CANADIAN SYLLABICS CARRIER TLI;Lo;0;L;;;;;N;;;;;
+163F;CANADIAN SYLLABICS CARRIER TLA;Lo;0;L;;;;;N;;;;;
+1640;CANADIAN SYLLABICS CARRIER ZU;Lo;0;L;;;;;N;;;;;
+1641;CANADIAN SYLLABICS CARRIER ZO;Lo;0;L;;;;;N;;;;;
+1642;CANADIAN SYLLABICS CARRIER ZE;Lo;0;L;;;;;N;;;;;
+1643;CANADIAN SYLLABICS CARRIER ZEE;Lo;0;L;;;;;N;;;;;
+1644;CANADIAN SYLLABICS CARRIER ZI;Lo;0;L;;;;;N;;;;;
+1645;CANADIAN SYLLABICS CARRIER ZA;Lo;0;L;;;;;N;;;;;
+1646;CANADIAN SYLLABICS CARRIER Z;Lo;0;L;;;;;N;;;;;
+1647;CANADIAN SYLLABICS CARRIER INITIAL Z;Lo;0;L;;;;;N;;;;;
+1648;CANADIAN SYLLABICS CARRIER DZU;Lo;0;L;;;;;N;;;;;
+1649;CANADIAN SYLLABICS CARRIER DZO;Lo;0;L;;;;;N;;;;;
+164A;CANADIAN SYLLABICS CARRIER DZE;Lo;0;L;;;;;N;;;;;
+164B;CANADIAN SYLLABICS CARRIER DZEE;Lo;0;L;;;;;N;;;;;
+164C;CANADIAN SYLLABICS CARRIER DZI;Lo;0;L;;;;;N;;;;;
+164D;CANADIAN SYLLABICS CARRIER DZA;Lo;0;L;;;;;N;;;;;
+164E;CANADIAN SYLLABICS CARRIER SU;Lo;0;L;;;;;N;;;;;
+164F;CANADIAN SYLLABICS CARRIER SO;Lo;0;L;;;;;N;;;;;
+1650;CANADIAN SYLLABICS CARRIER SE;Lo;0;L;;;;;N;;;;;
+1651;CANADIAN SYLLABICS CARRIER SEE;Lo;0;L;;;;;N;;;;;
+1652;CANADIAN SYLLABICS CARRIER SI;Lo;0;L;;;;;N;;;;;
+1653;CANADIAN SYLLABICS CARRIER SA;Lo;0;L;;;;;N;;;;;
+1654;CANADIAN SYLLABICS CARRIER SHU;Lo;0;L;;;;;N;;;;;
+1655;CANADIAN SYLLABICS CARRIER SHO;Lo;0;L;;;;;N;;;;;
+1656;CANADIAN SYLLABICS CARRIER SHE;Lo;0;L;;;;;N;;;;;
+1657;CANADIAN SYLLABICS CARRIER SHEE;Lo;0;L;;;;;N;;;;;
+1658;CANADIAN SYLLABICS CARRIER SHI;Lo;0;L;;;;;N;;;;;
+1659;CANADIAN SYLLABICS CARRIER SHA;Lo;0;L;;;;;N;;;;;
+165A;CANADIAN SYLLABICS CARRIER SH;Lo;0;L;;;;;N;;;;;
+165B;CANADIAN SYLLABICS CARRIER TSU;Lo;0;L;;;;;N;;;;;
+165C;CANADIAN SYLLABICS CARRIER TSO;Lo;0;L;;;;;N;;;;;
+165D;CANADIAN SYLLABICS CARRIER TSE;Lo;0;L;;;;;N;;;;;
+165E;CANADIAN SYLLABICS CARRIER TSEE;Lo;0;L;;;;;N;;;;;
+165F;CANADIAN SYLLABICS CARRIER TSI;Lo;0;L;;;;;N;;;;;
+1660;CANADIAN SYLLABICS CARRIER TSA;Lo;0;L;;;;;N;;;;;
+1661;CANADIAN SYLLABICS CARRIER CHU;Lo;0;L;;;;;N;;;;;
+1662;CANADIAN SYLLABICS CARRIER CHO;Lo;0;L;;;;;N;;;;;
+1663;CANADIAN SYLLABICS CARRIER CHE;Lo;0;L;;;;;N;;;;;
+1664;CANADIAN SYLLABICS CARRIER CHEE;Lo;0;L;;;;;N;;;;;
+1665;CANADIAN SYLLABICS CARRIER CHI;Lo;0;L;;;;;N;;;;;
+1666;CANADIAN SYLLABICS CARRIER CHA;Lo;0;L;;;;;N;;;;;
+1667;CANADIAN SYLLABICS CARRIER TTSU;Lo;0;L;;;;;N;;;;;
+1668;CANADIAN SYLLABICS CARRIER TTSO;Lo;0;L;;;;;N;;;;;
+1669;CANADIAN SYLLABICS CARRIER TTSE;Lo;0;L;;;;;N;;;;;
+166A;CANADIAN SYLLABICS CARRIER TTSEE;Lo;0;L;;;;;N;;;;;
+166B;CANADIAN SYLLABICS CARRIER TTSI;Lo;0;L;;;;;N;;;;;
+166C;CANADIAN SYLLABICS CARRIER TTSA;Lo;0;L;;;;;N;;;;;
+166D;CANADIAN SYLLABICS CHI SIGN;Po;0;L;;;;;N;;;;;
+166E;CANADIAN SYLLABICS FULL STOP;Po;0;L;;;;;N;;;;;
+166F;CANADIAN SYLLABICS QAI;Lo;0;L;;;;;N;;;;;
+1670;CANADIAN SYLLABICS NGAI;Lo;0;L;;;;;N;;;;;
+1671;CANADIAN SYLLABICS NNGI;Lo;0;L;;;;;N;;;;;
+1672;CANADIAN SYLLABICS NNGII;Lo;0;L;;;;;N;;;;;
+1673;CANADIAN SYLLABICS NNGO;Lo;0;L;;;;;N;;;;;
+1674;CANADIAN SYLLABICS NNGOO;Lo;0;L;;;;;N;;;;;
+1675;CANADIAN SYLLABICS NNGA;Lo;0;L;;;;;N;;;;;
+1676;CANADIAN SYLLABICS NNGAA;Lo;0;L;;;;;N;;;;;
+1680;OGHAM SPACE MARK;Zs;0;WS;;;;;N;;;;;
+1681;OGHAM LETTER BEITH;Lo;0;L;;;;;N;;;;;
+1682;OGHAM LETTER LUIS;Lo;0;L;;;;;N;;;;;
+1683;OGHAM LETTER FEARN;Lo;0;L;;;;;N;;;;;
+1684;OGHAM LETTER SAIL;Lo;0;L;;;;;N;;;;;
+1685;OGHAM LETTER NION;Lo;0;L;;;;;N;;;;;
+1686;OGHAM LETTER UATH;Lo;0;L;;;;;N;;;;;
+1687;OGHAM LETTER DAIR;Lo;0;L;;;;;N;;;;;
+1688;OGHAM LETTER TINNE;Lo;0;L;;;;;N;;;;;
+1689;OGHAM LETTER COLL;Lo;0;L;;;;;N;;;;;
+168A;OGHAM LETTER CEIRT;Lo;0;L;;;;;N;;;;;
+168B;OGHAM LETTER MUIN;Lo;0;L;;;;;N;;;;;
+168C;OGHAM LETTER GORT;Lo;0;L;;;;;N;;;;;
+168D;OGHAM LETTER NGEADAL;Lo;0;L;;;;;N;;;;;
+168E;OGHAM LETTER STRAIF;Lo;0;L;;;;;N;;;;;
+168F;OGHAM LETTER RUIS;Lo;0;L;;;;;N;;;;;
+1690;OGHAM LETTER AILM;Lo;0;L;;;;;N;;;;;
+1691;OGHAM LETTER ONN;Lo;0;L;;;;;N;;;;;
+1692;OGHAM LETTER UR;Lo;0;L;;;;;N;;;;;
+1693;OGHAM LETTER EADHADH;Lo;0;L;;;;;N;;;;;
+1694;OGHAM LETTER IODHADH;Lo;0;L;;;;;N;;;;;
+1695;OGHAM LETTER EABHADH;Lo;0;L;;;;;N;;;;;
+1696;OGHAM LETTER OR;Lo;0;L;;;;;N;;;;;
+1697;OGHAM LETTER UILLEANN;Lo;0;L;;;;;N;;;;;
+1698;OGHAM LETTER IFIN;Lo;0;L;;;;;N;;;;;
+1699;OGHAM LETTER EAMHANCHOLL;Lo;0;L;;;;;N;;;;;
+169A;OGHAM LETTER PEITH;Lo;0;L;;;;;N;;;;;
+169B;OGHAM FEATHER MARK;Ps;0;ON;;;;;Y;;;;;
+169C;OGHAM REVERSED FEATHER MARK;Pe;0;ON;;;;;Y;;;;;
+16A0;RUNIC LETTER FEHU FEOH FE F;Lo;0;L;;;;;N;;;;;
+16A1;RUNIC LETTER V;Lo;0;L;;;;;N;;;;;
+16A2;RUNIC LETTER URUZ UR U;Lo;0;L;;;;;N;;;;;
+16A3;RUNIC LETTER YR;Lo;0;L;;;;;N;;;;;
+16A4;RUNIC LETTER Y;Lo;0;L;;;;;N;;;;;
+16A5;RUNIC LETTER W;Lo;0;L;;;;;N;;;;;
+16A6;RUNIC LETTER THURISAZ THURS THORN;Lo;0;L;;;;;N;;;;;
+16A7;RUNIC LETTER ETH;Lo;0;L;;;;;N;;;;;
+16A8;RUNIC LETTER ANSUZ A;Lo;0;L;;;;;N;;;;;
+16A9;RUNIC LETTER OS O;Lo;0;L;;;;;N;;;;;
+16AA;RUNIC LETTER AC A;Lo;0;L;;;;;N;;;;;
+16AB;RUNIC LETTER AESC;Lo;0;L;;;;;N;;;;;
+16AC;RUNIC LETTER LONG-BRANCH-OSS O;Lo;0;L;;;;;N;;;;;
+16AD;RUNIC LETTER SHORT-TWIG-OSS O;Lo;0;L;;;;;N;;;;;
+16AE;RUNIC LETTER O;Lo;0;L;;;;;N;;;;;
+16AF;RUNIC LETTER OE;Lo;0;L;;;;;N;;;;;
+16B0;RUNIC LETTER ON;Lo;0;L;;;;;N;;;;;
+16B1;RUNIC LETTER RAIDO RAD REID R;Lo;0;L;;;;;N;;;;;
+16B2;RUNIC LETTER KAUNA;Lo;0;L;;;;;N;;;;;
+16B3;RUNIC LETTER CEN;Lo;0;L;;;;;N;;;;;
+16B4;RUNIC LETTER KAUN K;Lo;0;L;;;;;N;;;;;
+16B5;RUNIC LETTER G;Lo;0;L;;;;;N;;;;;
+16B6;RUNIC LETTER ENG;Lo;0;L;;;;;N;;;;;
+16B7;RUNIC LETTER GEBO GYFU G;Lo;0;L;;;;;N;;;;;
+16B8;RUNIC LETTER GAR;Lo;0;L;;;;;N;;;;;
+16B9;RUNIC LETTER WUNJO WYNN W;Lo;0;L;;;;;N;;;;;
+16BA;RUNIC LETTER HAGLAZ H;Lo;0;L;;;;;N;;;;;
+16BB;RUNIC LETTER HAEGL H;Lo;0;L;;;;;N;;;;;
+16BC;RUNIC LETTER LONG-BRANCH-HAGALL H;Lo;0;L;;;;;N;;;;;
+16BD;RUNIC LETTER SHORT-TWIG-HAGALL H;Lo;0;L;;;;;N;;;;;
+16BE;RUNIC LETTER NAUDIZ NYD NAUD N;Lo;0;L;;;;;N;;;;;
+16BF;RUNIC LETTER SHORT-TWIG-NAUD N;Lo;0;L;;;;;N;;;;;
+16C0;RUNIC LETTER DOTTED-N;Lo;0;L;;;;;N;;;;;
+16C1;RUNIC LETTER ISAZ IS ISS I;Lo;0;L;;;;;N;;;;;
+16C2;RUNIC LETTER E;Lo;0;L;;;;;N;;;;;
+16C3;RUNIC LETTER JERAN J;Lo;0;L;;;;;N;;;;;
+16C4;RUNIC LETTER GER;Lo;0;L;;;;;N;;;;;
+16C5;RUNIC LETTER LONG-BRANCH-AR AE;Lo;0;L;;;;;N;;;;;
+16C6;RUNIC LETTER SHORT-TWIG-AR A;Lo;0;L;;;;;N;;;;;
+16C7;RUNIC LETTER IWAZ EOH;Lo;0;L;;;;;N;;;;;
+16C8;RUNIC LETTER PERTHO PEORTH P;Lo;0;L;;;;;N;;;;;
+16C9;RUNIC LETTER ALGIZ EOLHX;Lo;0;L;;;;;N;;;;;
+16CA;RUNIC LETTER SOWILO S;Lo;0;L;;;;;N;;;;;
+16CB;RUNIC LETTER SIGEL LONG-BRANCH-SOL S;Lo;0;L;;;;;N;;;;;
+16CC;RUNIC LETTER SHORT-TWIG-SOL S;Lo;0;L;;;;;N;;;;;
+16CD;RUNIC LETTER C;Lo;0;L;;;;;N;;;;;
+16CE;RUNIC LETTER Z;Lo;0;L;;;;;N;;;;;
+16CF;RUNIC LETTER TIWAZ TIR TYR T;Lo;0;L;;;;;N;;;;;
+16D0;RUNIC LETTER SHORT-TWIG-TYR T;Lo;0;L;;;;;N;;;;;
+16D1;RUNIC LETTER D;Lo;0;L;;;;;N;;;;;
+16D2;RUNIC LETTER BERKANAN BEORC BJARKAN B;Lo;0;L;;;;;N;;;;;
+16D3;RUNIC LETTER SHORT-TWIG-BJARKAN B;Lo;0;L;;;;;N;;;;;
+16D4;RUNIC LETTER DOTTED-P;Lo;0;L;;;;;N;;;;;
+16D5;RUNIC LETTER OPEN-P;Lo;0;L;;;;;N;;;;;
+16D6;RUNIC LETTER EHWAZ EH E;Lo;0;L;;;;;N;;;;;
+16D7;RUNIC LETTER MANNAZ MAN M;Lo;0;L;;;;;N;;;;;
+16D8;RUNIC LETTER LONG-BRANCH-MADR M;Lo;0;L;;;;;N;;;;;
+16D9;RUNIC LETTER SHORT-TWIG-MADR M;Lo;0;L;;;;;N;;;;;
+16DA;RUNIC LETTER LAUKAZ LAGU LOGR L;Lo;0;L;;;;;N;;;;;
+16DB;RUNIC LETTER DOTTED-L;Lo;0;L;;;;;N;;;;;
+16DC;RUNIC LETTER INGWAZ;Lo;0;L;;;;;N;;;;;
+16DD;RUNIC LETTER ING;Lo;0;L;;;;;N;;;;;
+16DE;RUNIC LETTER DAGAZ DAEG D;Lo;0;L;;;;;N;;;;;
+16DF;RUNIC LETTER OTHALAN ETHEL O;Lo;0;L;;;;;N;;;;;
+16E0;RUNIC LETTER EAR;Lo;0;L;;;;;N;;;;;
+16E1;RUNIC LETTER IOR;Lo;0;L;;;;;N;;;;;
+16E2;RUNIC LETTER CWEORTH;Lo;0;L;;;;;N;;;;;
+16E3;RUNIC LETTER CALC;Lo;0;L;;;;;N;;;;;
+16E4;RUNIC LETTER CEALC;Lo;0;L;;;;;N;;;;;
+16E5;RUNIC LETTER STAN;Lo;0;L;;;;;N;;;;;
+16E6;RUNIC LETTER LONG-BRANCH-YR;Lo;0;L;;;;;N;;;;;
+16E7;RUNIC LETTER SHORT-TWIG-YR;Lo;0;L;;;;;N;;;;;
+16E8;RUNIC LETTER ICELANDIC-YR;Lo;0;L;;;;;N;;;;;
+16E9;RUNIC LETTER Q;Lo;0;L;;;;;N;;;;;
+16EA;RUNIC LETTER X;Lo;0;L;;;;;N;;;;;
+16EB;RUNIC SINGLE PUNCTUATION;Po;0;L;;;;;N;;;;;
+16EC;RUNIC MULTIPLE PUNCTUATION;Po;0;L;;;;;N;;;;;
+16ED;RUNIC CROSS PUNCTUATION;Po;0;L;;;;;N;;;;;
+16EE;RUNIC ARLAUG SYMBOL;Nl;0;L;;;;17;N;;golden number 17;;;
+16EF;RUNIC TVIMADUR SYMBOL;Nl;0;L;;;;18;N;;golden number 18;;;
+16F0;RUNIC BELGTHOR SYMBOL;Nl;0;L;;;;19;N;;golden number 19;;;
+1700;TAGALOG LETTER A;Lo;0;L;;;;;N;;;;;
+1701;TAGALOG LETTER I;Lo;0;L;;;;;N;;;;;
+1702;TAGALOG LETTER U;Lo;0;L;;;;;N;;;;;
+1703;TAGALOG LETTER KA;Lo;0;L;;;;;N;;;;;
+1704;TAGALOG LETTER GA;Lo;0;L;;;;;N;;;;;
+1705;TAGALOG LETTER NGA;Lo;0;L;;;;;N;;;;;
+1706;TAGALOG LETTER TA;Lo;0;L;;;;;N;;;;;
+1707;TAGALOG LETTER DA;Lo;0;L;;;;;N;;;;;
+1708;TAGALOG LETTER NA;Lo;0;L;;;;;N;;;;;
+1709;TAGALOG LETTER PA;Lo;0;L;;;;;N;;;;;
+170A;TAGALOG LETTER BA;Lo;0;L;;;;;N;;;;;
+170B;TAGALOG LETTER MA;Lo;0;L;;;;;N;;;;;
+170C;TAGALOG LETTER YA;Lo;0;L;;;;;N;;;;;
+170E;TAGALOG LETTER LA;Lo;0;L;;;;;N;;;;;
+170F;TAGALOG LETTER WA;Lo;0;L;;;;;N;;;;;
+1710;TAGALOG LETTER SA;Lo;0;L;;;;;N;;;;;
+1711;TAGALOG LETTER HA;Lo;0;L;;;;;N;;;;;
+1712;TAGALOG VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
+1713;TAGALOG VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+1714;TAGALOG SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+1720;HANUNOO LETTER A;Lo;0;L;;;;;N;;;;;
+1721;HANUNOO LETTER I;Lo;0;L;;;;;N;;;;;
+1722;HANUNOO LETTER U;Lo;0;L;;;;;N;;;;;
+1723;HANUNOO LETTER KA;Lo;0;L;;;;;N;;;;;
+1724;HANUNOO LETTER GA;Lo;0;L;;;;;N;;;;;
+1725;HANUNOO LETTER NGA;Lo;0;L;;;;;N;;;;;
+1726;HANUNOO LETTER TA;Lo;0;L;;;;;N;;;;;
+1727;HANUNOO LETTER DA;Lo;0;L;;;;;N;;;;;
+1728;HANUNOO LETTER NA;Lo;0;L;;;;;N;;;;;
+1729;HANUNOO LETTER PA;Lo;0;L;;;;;N;;;;;
+172A;HANUNOO LETTER BA;Lo;0;L;;;;;N;;;;;
+172B;HANUNOO LETTER MA;Lo;0;L;;;;;N;;;;;
+172C;HANUNOO LETTER YA;Lo;0;L;;;;;N;;;;;
+172D;HANUNOO LETTER RA;Lo;0;L;;;;;N;;;;;
+172E;HANUNOO LETTER LA;Lo;0;L;;;;;N;;;;;
+172F;HANUNOO LETTER WA;Lo;0;L;;;;;N;;;;;
+1730;HANUNOO LETTER SA;Lo;0;L;;;;;N;;;;;
+1731;HANUNOO LETTER HA;Lo;0;L;;;;;N;;;;;
+1732;HANUNOO VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
+1733;HANUNOO VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+1734;HANUNOO SIGN PAMUDPOD;Mn;9;NSM;;;;;N;;;;;
+1735;PHILIPPINE SINGLE PUNCTUATION;Po;0;L;;;;;N;;;;;
+1736;PHILIPPINE DOUBLE PUNCTUATION;Po;0;L;;;;;N;;;;;
+1740;BUHID LETTER A;Lo;0;L;;;;;N;;;;;
+1741;BUHID LETTER I;Lo;0;L;;;;;N;;;;;
+1742;BUHID LETTER U;Lo;0;L;;;;;N;;;;;
+1743;BUHID LETTER KA;Lo;0;L;;;;;N;;;;;
+1744;BUHID LETTER GA;Lo;0;L;;;;;N;;;;;
+1745;BUHID LETTER NGA;Lo;0;L;;;;;N;;;;;
+1746;BUHID LETTER TA;Lo;0;L;;;;;N;;;;;
+1747;BUHID LETTER DA;Lo;0;L;;;;;N;;;;;
+1748;BUHID LETTER NA;Lo;0;L;;;;;N;;;;;
+1749;BUHID LETTER PA;Lo;0;L;;;;;N;;;;;
+174A;BUHID LETTER BA;Lo;0;L;;;;;N;;;;;
+174B;BUHID LETTER MA;Lo;0;L;;;;;N;;;;;
+174C;BUHID LETTER YA;Lo;0;L;;;;;N;;;;;
+174D;BUHID LETTER RA;Lo;0;L;;;;;N;;;;;
+174E;BUHID LETTER LA;Lo;0;L;;;;;N;;;;;
+174F;BUHID LETTER WA;Lo;0;L;;;;;N;;;;;
+1750;BUHID LETTER SA;Lo;0;L;;;;;N;;;;;
+1751;BUHID LETTER HA;Lo;0;L;;;;;N;;;;;
+1752;BUHID VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
+1753;BUHID VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+1760;TAGBANWA LETTER A;Lo;0;L;;;;;N;;;;;
+1761;TAGBANWA LETTER I;Lo;0;L;;;;;N;;;;;
+1762;TAGBANWA LETTER U;Lo;0;L;;;;;N;;;;;
+1763;TAGBANWA LETTER KA;Lo;0;L;;;;;N;;;;;
+1764;TAGBANWA LETTER GA;Lo;0;L;;;;;N;;;;;
+1765;TAGBANWA LETTER NGA;Lo;0;L;;;;;N;;;;;
+1766;TAGBANWA LETTER TA;Lo;0;L;;;;;N;;;;;
+1767;TAGBANWA LETTER DA;Lo;0;L;;;;;N;;;;;
+1768;TAGBANWA LETTER NA;Lo;0;L;;;;;N;;;;;
+1769;TAGBANWA LETTER PA;Lo;0;L;;;;;N;;;;;
+176A;TAGBANWA LETTER BA;Lo;0;L;;;;;N;;;;;
+176B;TAGBANWA LETTER MA;Lo;0;L;;;;;N;;;;;
+176C;TAGBANWA LETTER YA;Lo;0;L;;;;;N;;;;;
+176E;TAGBANWA LETTER LA;Lo;0;L;;;;;N;;;;;
+176F;TAGBANWA LETTER WA;Lo;0;L;;;;;N;;;;;
+1770;TAGBANWA LETTER SA;Lo;0;L;;;;;N;;;;;
+1772;TAGBANWA VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
+1773;TAGBANWA VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+1780;KHMER LETTER KA;Lo;0;L;;;;;N;;;;;
+1781;KHMER LETTER KHA;Lo;0;L;;;;;N;;;;;
+1782;KHMER LETTER KO;Lo;0;L;;;;;N;;;;;
+1783;KHMER LETTER KHO;Lo;0;L;;;;;N;;;;;
+1784;KHMER LETTER NGO;Lo;0;L;;;;;N;;;;;
+1785;KHMER LETTER CA;Lo;0;L;;;;;N;;;;;
+1786;KHMER LETTER CHA;Lo;0;L;;;;;N;;;;;
+1787;KHMER LETTER CO;Lo;0;L;;;;;N;;;;;
+1788;KHMER LETTER CHO;Lo;0;L;;;;;N;;;;;
+1789;KHMER LETTER NYO;Lo;0;L;;;;;N;;;;;
+178A;KHMER LETTER DA;Lo;0;L;;;;;N;;;;;
+178B;KHMER LETTER TTHA;Lo;0;L;;;;;N;;;;;
+178C;KHMER LETTER DO;Lo;0;L;;;;;N;;;;;
+178D;KHMER LETTER TTHO;Lo;0;L;;;;;N;;;;;
+178E;KHMER LETTER NNO;Lo;0;L;;;;;N;;;;;
+178F;KHMER LETTER TA;Lo;0;L;;;;;N;;;;;
+1790;KHMER LETTER THA;Lo;0;L;;;;;N;;;;;
+1791;KHMER LETTER TO;Lo;0;L;;;;;N;;;;;
+1792;KHMER LETTER THO;Lo;0;L;;;;;N;;;;;
+1793;KHMER LETTER NO;Lo;0;L;;;;;N;;;;;
+1794;KHMER LETTER BA;Lo;0;L;;;;;N;;;;;
+1795;KHMER LETTER PHA;Lo;0;L;;;;;N;;;;;
+1796;KHMER LETTER PO;Lo;0;L;;;;;N;;;;;
+1797;KHMER LETTER PHO;Lo;0;L;;;;;N;;;;;
+1798;KHMER LETTER MO;Lo;0;L;;;;;N;;;;;
+1799;KHMER LETTER YO;Lo;0;L;;;;;N;;;;;
+179A;KHMER LETTER RO;Lo;0;L;;;;;N;;;;;
+179B;KHMER LETTER LO;Lo;0;L;;;;;N;;;;;
+179C;KHMER LETTER VO;Lo;0;L;;;;;N;;;;;
+179D;KHMER LETTER SHA;Lo;0;L;;;;;N;;;;;
+179E;KHMER LETTER SSO;Lo;0;L;;;;;N;;;;;
+179F;KHMER LETTER SA;Lo;0;L;;;;;N;;;;;
+17A0;KHMER LETTER HA;Lo;0;L;;;;;N;;;;;
+17A1;KHMER LETTER LA;Lo;0;L;;;;;N;;;;;
+17A2;KHMER LETTER QA;Lo;0;L;;;;;N;;;;;
+17A3;KHMER INDEPENDENT VOWEL QAQ;Lo;0;L;;;;;N;;*;;;
+17A4;KHMER INDEPENDENT VOWEL QAA;Lo;0;L;;;;;N;;*;;;
+17A5;KHMER INDEPENDENT VOWEL QI;Lo;0;L;;;;;N;;;;;
+17A6;KHMER INDEPENDENT VOWEL QII;Lo;0;L;;;;;N;;;;;
+17A7;KHMER INDEPENDENT VOWEL QU;Lo;0;L;;;;;N;;;;;
+17A8;KHMER INDEPENDENT VOWEL QUK;Lo;0;L;;;;;N;;;;;
+17A9;KHMER INDEPENDENT VOWEL QUU;Lo;0;L;;;;;N;;;;;
+17AA;KHMER INDEPENDENT VOWEL QUUV;Lo;0;L;;;;;N;;;;;
+17AB;KHMER INDEPENDENT VOWEL RY;Lo;0;L;;;;;N;;;;;
+17AC;KHMER INDEPENDENT VOWEL RYY;Lo;0;L;;;;;N;;;;;
+17AD;KHMER INDEPENDENT VOWEL LY;Lo;0;L;;;;;N;;;;;
+17AE;KHMER INDEPENDENT VOWEL LYY;Lo;0;L;;;;;N;;;;;
+17AF;KHMER INDEPENDENT VOWEL QE;Lo;0;L;;;;;N;;;;;
+17B0;KHMER INDEPENDENT VOWEL QAI;Lo;0;L;;;;;N;;;;;
+17B1;KHMER INDEPENDENT VOWEL QOO TYPE ONE;Lo;0;L;;;;;N;;;;;
+17B2;KHMER INDEPENDENT VOWEL QOO TYPE TWO;Lo;0;L;;;;;N;;;;;
+17B3;KHMER INDEPENDENT VOWEL QAU;Lo;0;L;;;;;N;;;;;
+17B4;KHMER VOWEL INHERENT AQ;Cf;0;L;;;;;N;;*;;;
+17B5;KHMER VOWEL INHERENT AA;Cf;0;L;;;;;N;;*;;;
+17B6;KHMER VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+17B7;KHMER VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
+17B8;KHMER VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;;
+17B9;KHMER VOWEL SIGN Y;Mn;0;NSM;;;;;N;;;;;
+17BA;KHMER VOWEL SIGN YY;Mn;0;NSM;;;;;N;;;;;
+17BB;KHMER VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+17BC;KHMER VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
+17BD;KHMER VOWEL SIGN UA;Mn;0;NSM;;;;;N;;;;;
+17BE;KHMER VOWEL SIGN OE;Mc;0;L;;;;;N;;;;;
+17BF;KHMER VOWEL SIGN YA;Mc;0;L;;;;;N;;;;;
+17C0;KHMER VOWEL SIGN IE;Mc;0;L;;;;;N;;;;;
+17C1;KHMER VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
+17C2;KHMER VOWEL SIGN AE;Mc;0;L;;;;;N;;;;;
+17C3;KHMER VOWEL SIGN AI;Mc;0;L;;;;;N;;;;;
+17C4;KHMER VOWEL SIGN OO;Mc;0;L;;;;;N;;;;;
+17C5;KHMER VOWEL SIGN AU;Mc;0;L;;;;;N;;;;;
+17C6;KHMER SIGN NIKAHIT;Mn;0;NSM;;;;;N;;;;;
+17C7;KHMER SIGN REAHMUK;Mc;0;L;;;;;N;;;;;
+17C8;KHMER SIGN YUUKALEAPINTU;Mc;0;L;;;;;N;;;;;
+17C9;KHMER SIGN MUUSIKATOAN;Mn;0;NSM;;;;;N;;;;;
+17CA;KHMER SIGN TRIISAP;Mn;0;NSM;;;;;N;;;;;
+17CB;KHMER SIGN BANTOC;Mn;0;NSM;;;;;N;;;;;
+17CC;KHMER SIGN ROBAT;Mn;0;NSM;;;;;N;;;;;
+17CD;KHMER SIGN TOANDAKHIAT;Mn;0;NSM;;;;;N;;;;;
+17CE;KHMER SIGN KAKABAT;Mn;0;NSM;;;;;N;;;;;
+17CF;KHMER SIGN AHSDA;Mn;0;NSM;;;;;N;;;;;
+17D0;KHMER SIGN SAMYOK SANNYA;Mn;0;NSM;;;;;N;;;;;
+17D1;KHMER SIGN VIRIAM;Mn;0;NSM;;;;;N;;;;;
+17D2;KHMER SIGN COENG;Mn;9;NSM;;;;;N;;;;;
+17D3;KHMER SIGN BATHAMASAT;Mn;0;NSM;;;;;N;;*;;;
+17D4;KHMER SIGN KHAN;Po;0;L;;;;;N;;;;;
+17D5;KHMER SIGN BARIYOOSAN;Po;0;L;;;;;N;;;;;
+17D6;KHMER SIGN CAMNUC PII KUUH;Po;0;L;;;;;N;;;;;
+17D7;KHMER SIGN LEK TOO;Lm;0;L;;;;;N;;;;;
+17D8;KHMER SIGN BEYYAL;Po;0;L;;;;;N;;*;;;
+17D9;KHMER SIGN PHNAEK MUAN;Po;0;L;;;;;N;;;;;
+17DA;KHMER SIGN KOOMUUT;Po;0;L;;;;;N;;;;;
+17DB;KHMER CURRENCY SYMBOL RIEL;Sc;0;ET;;;;;N;;;;;
+17DC;KHMER SIGN AVAKRAHASANYA;Lo;0;L;;;;;N;;;;;
+17DD;KHMER SIGN ATTHACAN;Mn;230;NSM;;;;;N;;;;;
+17E0;KHMER DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+17E1;KHMER DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+17E2;KHMER DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+17E3;KHMER DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+17E4;KHMER DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+17E5;KHMER DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+17E6;KHMER DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+17E7;KHMER DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+17E8;KHMER DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+17E9;KHMER DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+17F0;KHMER SYMBOL LEK ATTAK SON;No;0;ON;;;;0;N;;;;;
+17F1;KHMER SYMBOL LEK ATTAK MUOY;No;0;ON;;;;1;N;;;;;
+17F2;KHMER SYMBOL LEK ATTAK PII;No;0;ON;;;;2;N;;;;;
+17F3;KHMER SYMBOL LEK ATTAK BEI;No;0;ON;;;;3;N;;;;;
+17F4;KHMER SYMBOL LEK ATTAK BUON;No;0;ON;;;;4;N;;;;;
+17F5;KHMER SYMBOL LEK ATTAK PRAM;No;0;ON;;;;5;N;;;;;
+17F6;KHMER SYMBOL LEK ATTAK PRAM-MUOY;No;0;ON;;;;6;N;;;;;
+17F7;KHMER SYMBOL LEK ATTAK PRAM-PII;No;0;ON;;;;7;N;;;;;
+17F8;KHMER SYMBOL LEK ATTAK PRAM-BEI;No;0;ON;;;;8;N;;;;;
+17F9;KHMER SYMBOL LEK ATTAK PRAM-BUON;No;0;ON;;;;9;N;;;;;
+1800;MONGOLIAN BIRGA;Po;0;ON;;;;;N;;;;;
+1801;MONGOLIAN ELLIPSIS;Po;0;ON;;;;;N;;;;;
+1802;MONGOLIAN COMMA;Po;0;ON;;;;;N;;;;;
+1803;MONGOLIAN FULL STOP;Po;0;ON;;;;;N;;;;;
+1804;MONGOLIAN COLON;Po;0;ON;;;;;N;;;;;
+1805;MONGOLIAN FOUR DOTS;Po;0;ON;;;;;N;;;;;
+1806;MONGOLIAN TODO SOFT HYPHEN;Pd;0;ON;;;;;N;;;;;
+1807;MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER;Po;0;ON;;;;;N;;;;;
+1808;MONGOLIAN MANCHU COMMA;Po;0;ON;;;;;N;;;;;
+1809;MONGOLIAN MANCHU FULL STOP;Po;0;ON;;;;;N;;;;;
+180A;MONGOLIAN NIRUGU;Po;0;ON;;;;;N;;;;;
+180B;MONGOLIAN FREE VARIATION SELECTOR ONE;Mn;0;NSM;;;;;N;;;;;
+180C;MONGOLIAN FREE VARIATION SELECTOR TWO;Mn;0;NSM;;;;;N;;;;;
+180D;MONGOLIAN FREE VARIATION SELECTOR THREE;Mn;0;NSM;;;;;N;;;;;
+180E;MONGOLIAN VOWEL SEPARATOR;Zs;0;WS;;;;;N;;;;;
+1810;MONGOLIAN DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+1811;MONGOLIAN DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+1812;MONGOLIAN DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+1813;MONGOLIAN DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+1814;MONGOLIAN DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+1815;MONGOLIAN DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+1816;MONGOLIAN DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+1817;MONGOLIAN DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+1818;MONGOLIAN DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+1819;MONGOLIAN DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+1820;MONGOLIAN LETTER A;Lo;0;L;;;;;N;;;;;
+1821;MONGOLIAN LETTER E;Lo;0;L;;;;;N;;;;;
+1822;MONGOLIAN LETTER I;Lo;0;L;;;;;N;;;;;
+1823;MONGOLIAN LETTER O;Lo;0;L;;;;;N;;;;;
+1824;MONGOLIAN LETTER U;Lo;0;L;;;;;N;;;;;
+1825;MONGOLIAN LETTER OE;Lo;0;L;;;;;N;;;;;
+1826;MONGOLIAN LETTER UE;Lo;0;L;;;;;N;;;;;
+1827;MONGOLIAN LETTER EE;Lo;0;L;;;;;N;;;;;
+1828;MONGOLIAN LETTER NA;Lo;0;L;;;;;N;;;;;
+1829;MONGOLIAN LETTER ANG;Lo;0;L;;;;;N;;;;;
+182A;MONGOLIAN LETTER BA;Lo;0;L;;;;;N;;;;;
+182B;MONGOLIAN LETTER PA;Lo;0;L;;;;;N;;;;;
+182C;MONGOLIAN LETTER QA;Lo;0;L;;;;;N;;;;;
+182D;MONGOLIAN LETTER GA;Lo;0;L;;;;;N;;;;;
+182E;MONGOLIAN LETTER MA;Lo;0;L;;;;;N;;;;;
+182F;MONGOLIAN LETTER LA;Lo;0;L;;;;;N;;;;;
+1830;MONGOLIAN LETTER SA;Lo;0;L;;;;;N;;;;;
+1831;MONGOLIAN LETTER SHA;Lo;0;L;;;;;N;;;;;
+1832;MONGOLIAN LETTER TA;Lo;0;L;;;;;N;;;;;
+1833;MONGOLIAN LETTER DA;Lo;0;L;;;;;N;;;;;
+1834;MONGOLIAN LETTER CHA;Lo;0;L;;;;;N;;;;;
+1835;MONGOLIAN LETTER JA;Lo;0;L;;;;;N;;;;;
+1836;MONGOLIAN LETTER YA;Lo;0;L;;;;;N;;;;;
+1837;MONGOLIAN LETTER RA;Lo;0;L;;;;;N;;;;;
+1838;MONGOLIAN LETTER WA;Lo;0;L;;;;;N;;;;;
+1839;MONGOLIAN LETTER FA;Lo;0;L;;;;;N;;;;;
+183A;MONGOLIAN LETTER KA;Lo;0;L;;;;;N;;;;;
+183B;MONGOLIAN LETTER KHA;Lo;0;L;;;;;N;;;;;
+183C;MONGOLIAN LETTER TSA;Lo;0;L;;;;;N;;;;;
+183D;MONGOLIAN LETTER ZA;Lo;0;L;;;;;N;;;;;
+183E;MONGOLIAN LETTER HAA;Lo;0;L;;;;;N;;;;;
+183F;MONGOLIAN LETTER ZRA;Lo;0;L;;;;;N;;;;;
+1840;MONGOLIAN LETTER LHA;Lo;0;L;;;;;N;;;;;
+1841;MONGOLIAN LETTER ZHI;Lo;0;L;;;;;N;;;;;
+1842;MONGOLIAN LETTER CHI;Lo;0;L;;;;;N;;;;;
+1843;MONGOLIAN LETTER TODO LONG VOWEL SIGN;Lm;0;L;;;;;N;;;;;
+1844;MONGOLIAN LETTER TODO E;Lo;0;L;;;;;N;;;;;
+1845;MONGOLIAN LETTER TODO I;Lo;0;L;;;;;N;;;;;
+1846;MONGOLIAN LETTER TODO O;Lo;0;L;;;;;N;;;;;
+1847;MONGOLIAN LETTER TODO U;Lo;0;L;;;;;N;;;;;
+1848;MONGOLIAN LETTER TODO OE;Lo;0;L;;;;;N;;;;;
+1849;MONGOLIAN LETTER TODO UE;Lo;0;L;;;;;N;;;;;
+184A;MONGOLIAN LETTER TODO ANG;Lo;0;L;;;;;N;;;;;
+184B;MONGOLIAN LETTER TODO BA;Lo;0;L;;;;;N;;;;;
+184C;MONGOLIAN LETTER TODO PA;Lo;0;L;;;;;N;;;;;
+184D;MONGOLIAN LETTER TODO QA;Lo;0;L;;;;;N;;;;;
+184E;MONGOLIAN LETTER TODO GA;Lo;0;L;;;;;N;;;;;
+184F;MONGOLIAN LETTER TODO MA;Lo;0;L;;;;;N;;;;;
+1850;MONGOLIAN LETTER TODO TA;Lo;0;L;;;;;N;;;;;
+1851;MONGOLIAN LETTER TODO DA;Lo;0;L;;;;;N;;;;;
+1852;MONGOLIAN LETTER TODO CHA;Lo;0;L;;;;;N;;;;;
+1853;MONGOLIAN LETTER TODO JA;Lo;0;L;;;;;N;;;;;
+1854;MONGOLIAN LETTER TODO TSA;Lo;0;L;;;;;N;;;;;
+1855;MONGOLIAN LETTER TODO YA;Lo;0;L;;;;;N;;;;;
+1856;MONGOLIAN LETTER TODO WA;Lo;0;L;;;;;N;;;;;
+1857;MONGOLIAN LETTER TODO KA;Lo;0;L;;;;;N;;;;;
+1858;MONGOLIAN LETTER TODO GAA;Lo;0;L;;;;;N;;;;;
+1859;MONGOLIAN LETTER TODO HAA;Lo;0;L;;;;;N;;;;;
+185A;MONGOLIAN LETTER TODO JIA;Lo;0;L;;;;;N;;;;;
+185B;MONGOLIAN LETTER TODO NIA;Lo;0;L;;;;;N;;;;;
+185C;MONGOLIAN LETTER TODO DZA;Lo;0;L;;;;;N;;;;;
+185D;MONGOLIAN LETTER SIBE E;Lo;0;L;;;;;N;;;;;
+185E;MONGOLIAN LETTER SIBE I;Lo;0;L;;;;;N;;;;;
+185F;MONGOLIAN LETTER SIBE IY;Lo;0;L;;;;;N;;;;;
+1860;MONGOLIAN LETTER SIBE UE;Lo;0;L;;;;;N;;;;;
+1861;MONGOLIAN LETTER SIBE U;Lo;0;L;;;;;N;;;;;
+1862;MONGOLIAN LETTER SIBE ANG;Lo;0;L;;;;;N;;;;;
+1863;MONGOLIAN LETTER SIBE KA;Lo;0;L;;;;;N;;;;;
+1864;MONGOLIAN LETTER SIBE GA;Lo;0;L;;;;;N;;;;;
+1865;MONGOLIAN LETTER SIBE HA;Lo;0;L;;;;;N;;;;;
+1866;MONGOLIAN LETTER SIBE PA;Lo;0;L;;;;;N;;;;;
+1867;MONGOLIAN LETTER SIBE SHA;Lo;0;L;;;;;N;;;;;
+1868;MONGOLIAN LETTER SIBE TA;Lo;0;L;;;;;N;;;;;
+1869;MONGOLIAN LETTER SIBE DA;Lo;0;L;;;;;N;;;;;
+186A;MONGOLIAN LETTER SIBE JA;Lo;0;L;;;;;N;;;;;
+186B;MONGOLIAN LETTER SIBE FA;Lo;0;L;;;;;N;;;;;
+186C;MONGOLIAN LETTER SIBE GAA;Lo;0;L;;;;;N;;;;;
+186D;MONGOLIAN LETTER SIBE HAA;Lo;0;L;;;;;N;;;;;
+186E;MONGOLIAN LETTER SIBE TSA;Lo;0;L;;;;;N;;;;;
+186F;MONGOLIAN LETTER SIBE ZA;Lo;0;L;;;;;N;;;;;
+1870;MONGOLIAN LETTER SIBE RAA;Lo;0;L;;;;;N;;;;;
+1871;MONGOLIAN LETTER SIBE CHA;Lo;0;L;;;;;N;;;;;
+1872;MONGOLIAN LETTER SIBE ZHA;Lo;0;L;;;;;N;;;;;
+1873;MONGOLIAN LETTER MANCHU I;Lo;0;L;;;;;N;;;;;
+1874;MONGOLIAN LETTER MANCHU KA;Lo;0;L;;;;;N;;;;;
+1875;MONGOLIAN LETTER MANCHU RA;Lo;0;L;;;;;N;;;;;
+1876;MONGOLIAN LETTER MANCHU FA;Lo;0;L;;;;;N;;;;;
+1877;MONGOLIAN LETTER MANCHU ZHA;Lo;0;L;;;;;N;;;;;
+1880;MONGOLIAN LETTER ALI GALI ANUSVARA ONE;Lo;0;L;;;;;N;;;;;
+1881;MONGOLIAN LETTER ALI GALI VISARGA ONE;Lo;0;L;;;;;N;;;;;
+1882;MONGOLIAN LETTER ALI GALI DAMARU;Lo;0;L;;;;;N;;;;;
+1883;MONGOLIAN LETTER ALI GALI UBADAMA;Lo;0;L;;;;;N;;;;;
+1884;MONGOLIAN LETTER ALI GALI INVERTED UBADAMA;Lo;0;L;;;;;N;;;;;
+1885;MONGOLIAN LETTER ALI GALI BALUDA;Lo;0;L;;;;;N;;;;;
+1886;MONGOLIAN LETTER ALI GALI THREE BALUDA;Lo;0;L;;;;;N;;;;;
+1887;MONGOLIAN LETTER ALI GALI A;Lo;0;L;;;;;N;;;;;
+1888;MONGOLIAN LETTER ALI GALI I;Lo;0;L;;;;;N;;;;;
+1889;MONGOLIAN LETTER ALI GALI KA;Lo;0;L;;;;;N;;;;;
+188A;MONGOLIAN LETTER ALI GALI NGA;Lo;0;L;;;;;N;;;;;
+188B;MONGOLIAN LETTER ALI GALI CA;Lo;0;L;;;;;N;;;;;
+188C;MONGOLIAN LETTER ALI GALI TTA;Lo;0;L;;;;;N;;;;;
+188D;MONGOLIAN LETTER ALI GALI TTHA;Lo;0;L;;;;;N;;;;;
+188E;MONGOLIAN LETTER ALI GALI DDA;Lo;0;L;;;;;N;;;;;
+188F;MONGOLIAN LETTER ALI GALI NNA;Lo;0;L;;;;;N;;;;;
+1890;MONGOLIAN LETTER ALI GALI TA;Lo;0;L;;;;;N;;;;;
+1891;MONGOLIAN LETTER ALI GALI DA;Lo;0;L;;;;;N;;;;;
+1892;MONGOLIAN LETTER ALI GALI PA;Lo;0;L;;;;;N;;;;;
+1893;MONGOLIAN LETTER ALI GALI PHA;Lo;0;L;;;;;N;;;;;
+1894;MONGOLIAN LETTER ALI GALI SSA;Lo;0;L;;;;;N;;;;;
+1895;MONGOLIAN LETTER ALI GALI ZHA;Lo;0;L;;;;;N;;;;;
+1896;MONGOLIAN LETTER ALI GALI ZA;Lo;0;L;;;;;N;;;;;
+1897;MONGOLIAN LETTER ALI GALI AH;Lo;0;L;;;;;N;;;;;
+1898;MONGOLIAN LETTER TODO ALI GALI TA;Lo;0;L;;;;;N;;;;;
+1899;MONGOLIAN LETTER TODO ALI GALI ZHA;Lo;0;L;;;;;N;;;;;
+189A;MONGOLIAN LETTER MANCHU ALI GALI GHA;Lo;0;L;;;;;N;;;;;
+189B;MONGOLIAN LETTER MANCHU ALI GALI NGA;Lo;0;L;;;;;N;;;;;
+189C;MONGOLIAN LETTER MANCHU ALI GALI CA;Lo;0;L;;;;;N;;;;;
+189D;MONGOLIAN LETTER MANCHU ALI GALI JHA;Lo;0;L;;;;;N;;;;;
+189E;MONGOLIAN LETTER MANCHU ALI GALI TTA;Lo;0;L;;;;;N;;;;;
+189F;MONGOLIAN LETTER MANCHU ALI GALI DDHA;Lo;0;L;;;;;N;;;;;
+18A0;MONGOLIAN LETTER MANCHU ALI GALI TA;Lo;0;L;;;;;N;;;;;
+18A1;MONGOLIAN LETTER MANCHU ALI GALI DHA;Lo;0;L;;;;;N;;;;;
+18A2;MONGOLIAN LETTER MANCHU ALI GALI SSA;Lo;0;L;;;;;N;;;;;
+18A3;MONGOLIAN LETTER MANCHU ALI GALI CYA;Lo;0;L;;;;;N;;;;;
+18A4;MONGOLIAN LETTER MANCHU ALI GALI ZHA;Lo;0;L;;;;;N;;;;;
+18A5;MONGOLIAN LETTER MANCHU ALI GALI ZA;Lo;0;L;;;;;N;;;;;
+18A6;MONGOLIAN LETTER ALI GALI HALF U;Lo;0;L;;;;;N;;;;;
+18A7;MONGOLIAN LETTER ALI GALI HALF YA;Lo;0;L;;;;;N;;;;;
+18A8;MONGOLIAN LETTER MANCHU ALI GALI BHA;Lo;0;L;;;;;N;;;;;
+18A9;MONGOLIAN LETTER ALI GALI DAGALGA;Mn;228;NSM;;;;;N;;;;;
+1900;LIMBU VOWEL-CARRIER LETTER;Lo;0;L;;;;;N;;;;;
+1901;LIMBU LETTER KA;Lo;0;L;;;;;N;;;;;
+1902;LIMBU LETTER KHA;Lo;0;L;;;;;N;;;;;
+1903;LIMBU LETTER GA;Lo;0;L;;;;;N;;;;;
+1904;LIMBU LETTER GHA;Lo;0;L;;;;;N;;;;;
+1905;LIMBU LETTER NGA;Lo;0;L;;;;;N;;;;;
+1906;LIMBU LETTER CA;Lo;0;L;;;;;N;;;;;
+1907;LIMBU LETTER CHA;Lo;0;L;;;;;N;;;;;
+1908;LIMBU LETTER JA;Lo;0;L;;;;;N;;;;;
+1909;LIMBU LETTER JHA;Lo;0;L;;;;;N;;;;;
+190A;LIMBU LETTER YAN;Lo;0;L;;;;;N;;;;;
+190B;LIMBU LETTER TA;Lo;0;L;;;;;N;;;;;
+190C;LIMBU LETTER THA;Lo;0;L;;;;;N;;;;;
+190D;LIMBU LETTER DA;Lo;0;L;;;;;N;;;;;
+190E;LIMBU LETTER DHA;Lo;0;L;;;;;N;;;;;
+190F;LIMBU LETTER NA;Lo;0;L;;;;;N;;;;;
+1910;LIMBU LETTER PA;Lo;0;L;;;;;N;;;;;
+1911;LIMBU LETTER PHA;Lo;0;L;;;;;N;;;;;
+1912;LIMBU LETTER BA;Lo;0;L;;;;;N;;;;;
+1913;LIMBU LETTER BHA;Lo;0;L;;;;;N;;;;;
+1914;LIMBU LETTER MA;Lo;0;L;;;;;N;;;;;
+1915;LIMBU LETTER YA;Lo;0;L;;;;;N;;;;;
+1916;LIMBU LETTER RA;Lo;0;L;;;;;N;;;;;
+1917;LIMBU LETTER LA;Lo;0;L;;;;;N;;;;;
+1918;LIMBU LETTER WA;Lo;0;L;;;;;N;;;;;
+1919;LIMBU LETTER SHA;Lo;0;L;;;;;N;;;;;
+191A;LIMBU LETTER SSA;Lo;0;L;;;;;N;;;;;
+191B;LIMBU LETTER SA;Lo;0;L;;;;;N;;;;;
+191C;LIMBU LETTER HA;Lo;0;L;;;;;N;;;;;
+1920;LIMBU VOWEL SIGN A;Mn;0;NSM;;;;;N;;;;;
+1921;LIMBU VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
+1922;LIMBU VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+1923;LIMBU VOWEL SIGN EE;Mc;0;L;;;;;N;;;;;
+1924;LIMBU VOWEL SIGN AI;Mc;0;L;;;;;N;;;;;
+1925;LIMBU VOWEL SIGN OO;Mc;0;L;;;;;N;;;;;
+1926;LIMBU VOWEL SIGN AU;Mc;0;L;;;;;N;;;;;
+1927;LIMBU VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;;
+1928;LIMBU VOWEL SIGN O;Mn;0;NSM;;;;;N;;;;;
+1929;LIMBU SUBJOINED LETTER YA;Mc;0;NSM;;;;;N;;;;;
+192A;LIMBU SUBJOINED LETTER RA;Mc;0;NSM;;;;;N;;;;;
+192B;LIMBU SUBJOINED LETTER WA;Mc;0;NSM;;;;;N;;;;;
+1930;LIMBU SMALL LETTER KA;Mc;0;L;;;;;N;;;;;
+1931;LIMBU SMALL LETTER NGA;Mc;0;L;;;;;N;;;;;
+1932;LIMBU SMALL LETTER ANUSVARA;Mn;0;NSM;;;;;N;;;;;
+1933;LIMBU SMALL LETTER TA;Mc;0;L;;;;;N;;;;;
+1934;LIMBU SMALL LETTER NA;Mc;0;L;;;;;N;;;;;
+1935;LIMBU SMALL LETTER PA;Mc;0;L;;;;;N;;;;;
+1936;LIMBU SMALL LETTER MA;Mc;0;L;;;;;N;;;;;
+1937;LIMBU SMALL LETTER RA;Mc;0;L;;;;;N;;;;;
+1938;LIMBU SMALL LETTER LA;Mc;0;L;;;;;N;;;;;
+1939;LIMBU SIGN MUKPHRENG;Mn;222;NSM;;;;;N;;;;;
+193A;LIMBU SIGN KEMPHRENG;Mn;230;NSM;;;;;N;;;;;
+193B;LIMBU SIGN SA-I;Mn;220;NSM;;;;;N;;;;;
+1940;LIMBU SIGN LOO;So;0;ON;;;;;N;;;;;
+1944;LIMBU EXCLAMATION MARK;Po;0;ON;;;;;N;;;;;
+1945;LIMBU QUESTION MARK;Po;0;ON;;;;;N;;;;;
+1946;LIMBU DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+1947;LIMBU DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+1948;LIMBU DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+1949;LIMBU DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+194A;LIMBU DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+194B;LIMBU DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+194C;LIMBU DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+194D;LIMBU DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+194E;LIMBU DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+194F;LIMBU DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+1950;TAI LE LETTER KA;Lo;0;L;;;;;N;;;;;
+1951;TAI LE LETTER XA;Lo;0;L;;;;;N;;;;;
+1952;TAI LE LETTER NGA;Lo;0;L;;;;;N;;;;;
+1953;TAI LE LETTER TSA;Lo;0;L;;;;;N;;;;;
+1954;TAI LE LETTER SA;Lo;0;L;;;;;N;;;;;
+1955;TAI LE LETTER YA;Lo;0;L;;;;;N;;;;;
+1956;TAI LE LETTER TA;Lo;0;L;;;;;N;;;;;
+1957;TAI LE LETTER THA;Lo;0;L;;;;;N;;;;;
+1958;TAI LE LETTER LA;Lo;0;L;;;;;N;;;;;
+1959;TAI LE LETTER PA;Lo;0;L;;;;;N;;;;;
+195A;TAI LE LETTER PHA;Lo;0;L;;;;;N;;;;;
+195B;TAI LE LETTER MA;Lo;0;L;;;;;N;;;;;
+195C;TAI LE LETTER FA;Lo;0;L;;;;;N;;;;;
+195D;TAI LE LETTER VA;Lo;0;L;;;;;N;;;;;
+195E;TAI LE LETTER HA;Lo;0;L;;;;;N;;;;;
+195F;TAI LE LETTER QA;Lo;0;L;;;;;N;;;;;
+1960;TAI LE LETTER KHA;Lo;0;L;;;;;N;;;;;
+1961;TAI LE LETTER TSHA;Lo;0;L;;;;;N;;;;;
+1962;TAI LE LETTER NA;Lo;0;L;;;;;N;;;;;
+1963;TAI LE LETTER A;Lo;0;L;;;;;N;;;;;
+1964;TAI LE LETTER I;Lo;0;L;;;;;N;;;;;
+1965;TAI LE LETTER EE;Lo;0;L;;;;;N;;;;;
+1966;TAI LE LETTER EH;Lo;0;L;;;;;N;;;;;
+1967;TAI LE LETTER U;Lo;0;L;;;;;N;;;;;
+1968;TAI LE LETTER OO;Lo;0;L;;;;;N;;;;;
+1969;TAI LE LETTER O;Lo;0;L;;;;;N;;;;;
+196A;TAI LE LETTER UE;Lo;0;L;;;;;N;;;;;
+196B;TAI LE LETTER E;Lo;0;L;;;;;N;;;;;
+196C;TAI LE LETTER AUE;Lo;0;L;;;;;N;;;;;
+196D;TAI LE LETTER AI;Lo;0;L;;;;;N;;;;;
+1970;TAI LE LETTER TONE-2;Lo;0;L;;;;;N;;;;;
+1971;TAI LE LETTER TONE-3;Lo;0;L;;;;;N;;;;;
+1972;TAI LE LETTER TONE-4;Lo;0;L;;;;;N;;;;;
+1973;TAI LE LETTER TONE-5;Lo;0;L;;;;;N;;;;;
+1974;TAI LE LETTER TONE-6;Lo;0;L;;;;;N;;;;;
+1980;NEW TAI LUE LETTER HIGH QA;Lo;0;L;;;;;N;;;;;
+1981;NEW TAI LUE LETTER LOW QA;Lo;0;L;;;;;N;;;;;
+1982;NEW TAI LUE LETTER HIGH KA;Lo;0;L;;;;;N;;;;;
+1983;NEW TAI LUE LETTER HIGH XA;Lo;0;L;;;;;N;;;;;
+1984;NEW TAI LUE LETTER HIGH NGA;Lo;0;L;;;;;N;;;;;
+1985;NEW TAI LUE LETTER LOW KA;Lo;0;L;;;;;N;;;;;
+1986;NEW TAI LUE LETTER LOW XA;Lo;0;L;;;;;N;;;;;
+1987;NEW TAI LUE LETTER LOW NGA;Lo;0;L;;;;;N;;;;;
+1988;NEW TAI LUE LETTER HIGH TSA;Lo;0;L;;;;;N;;;;;
+1989;NEW TAI LUE LETTER HIGH SA;Lo;0;L;;;;;N;;;;;
+198A;NEW TAI LUE LETTER HIGH YA;Lo;0;L;;;;;N;;;;;
+198B;NEW TAI LUE LETTER LOW TSA;Lo;0;L;;;;;N;;;;;
+198C;NEW TAI LUE LETTER LOW SA;Lo;0;L;;;;;N;;;;;
+198D;NEW TAI LUE LETTER LOW YA;Lo;0;L;;;;;N;;;;;
+198E;NEW TAI LUE LETTER HIGH TA;Lo;0;L;;;;;N;;;;;
+198F;NEW TAI LUE LETTER HIGH THA;Lo;0;L;;;;;N;;;;;
+1990;NEW TAI LUE LETTER HIGH NA;Lo;0;L;;;;;N;;;;;
+1991;NEW TAI LUE LETTER LOW TA;Lo;0;L;;;;;N;;;;;
+1992;NEW TAI LUE LETTER LOW THA;Lo;0;L;;;;;N;;;;;
+1993;NEW TAI LUE LETTER LOW NA;Lo;0;L;;;;;N;;;;;
+1994;NEW TAI LUE LETTER HIGH PA;Lo;0;L;;;;;N;;;;;
+1995;NEW TAI LUE LETTER HIGH PHA;Lo;0;L;;;;;N;;;;;
+1996;NEW TAI LUE LETTER HIGH MA;Lo;0;L;;;;;N;;;;;
+1997;NEW TAI LUE LETTER LOW PA;Lo;0;L;;;;;N;;;;;
+1998;NEW TAI LUE LETTER LOW PHA;Lo;0;L;;;;;N;;;;;
+1999;NEW TAI LUE LETTER LOW MA;Lo;0;L;;;;;N;;;;;
+199A;NEW TAI LUE LETTER HIGH FA;Lo;0;L;;;;;N;;;;;
+199B;NEW TAI LUE LETTER HIGH VA;Lo;0;L;;;;;N;;;;;
+199C;NEW TAI LUE LETTER HIGH LA;Lo;0;L;;;;;N;;;;;
+199D;NEW TAI LUE LETTER LOW FA;Lo;0;L;;;;;N;;;;;
+199E;NEW TAI LUE LETTER LOW VA;Lo;0;L;;;;;N;;;;;
+199F;NEW TAI LUE LETTER LOW LA;Lo;0;L;;;;;N;;;;;
+19A0;NEW TAI LUE LETTER HIGH HA;Lo;0;L;;;;;N;;;;;
+19A1;NEW TAI LUE LETTER HIGH DA;Lo;0;L;;;;;N;;;;;
+19A2;NEW TAI LUE LETTER HIGH BA;Lo;0;L;;;;;N;;;;;
+19A3;NEW TAI LUE LETTER LOW HA;Lo;0;L;;;;;N;;;;;
+19A4;NEW TAI LUE LETTER LOW DA;Lo;0;L;;;;;N;;;;;
+19A5;NEW TAI LUE LETTER LOW BA;Lo;0;L;;;;;N;;;;;
+19A6;NEW TAI LUE LETTER HIGH KVA;Lo;0;L;;;;;N;;;;;
+19A7;NEW TAI LUE LETTER HIGH XVA;Lo;0;L;;;;;N;;;;;
+19A8;NEW TAI LUE LETTER LOW KVA;Lo;0;L;;;;;N;;;;;
+19A9;NEW TAI LUE LETTER LOW XVA;Lo;0;L;;;;;N;;;;;
+19B0;NEW TAI LUE VOWEL SIGN VOWEL SHORTENER;Mc;0;L;;;;;N;;;;;
+19B1;NEW TAI LUE VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+19B2;NEW TAI LUE VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
+19B3;NEW TAI LUE VOWEL SIGN U;Mc;0;L;;;;;N;;;;;
+19B4;NEW TAI LUE VOWEL SIGN UU;Mc;0;L;;;;;N;;;;;
+19B5;NEW TAI LUE VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
+19B6;NEW TAI LUE VOWEL SIGN AE;Mc;0;L;;;;;N;;;;;
+19B7;NEW TAI LUE VOWEL SIGN O;Mc;0;L;;;;;N;;;;;
+19B8;NEW TAI LUE VOWEL SIGN OA;Mc;0;L;;;;;N;;;;;
+19B9;NEW TAI LUE VOWEL SIGN UE;Mc;0;L;;;;;N;;;;;
+19BA;NEW TAI LUE VOWEL SIGN AY;Mc;0;L;;;;;N;;;;;
+19BB;NEW TAI LUE VOWEL SIGN AAY;Mc;0;L;;;;;N;;;;;
+19BC;NEW TAI LUE VOWEL SIGN UY;Mc;0;L;;;;;N;;;;;
+19BD;NEW TAI LUE VOWEL SIGN OY;Mc;0;L;;;;;N;;;;;
+19BE;NEW TAI LUE VOWEL SIGN OAY;Mc;0;L;;;;;N;;;;;
+19BF;NEW TAI LUE VOWEL SIGN UEY;Mc;0;L;;;;;N;;;;;
+19C0;NEW TAI LUE VOWEL SIGN IY;Mc;0;L;;;;;N;;;;;
+19C1;NEW TAI LUE LETTER FINAL V;Lo;0;L;;;;;N;;;;;
+19C2;NEW TAI LUE LETTER FINAL NG;Lo;0;L;;;;;N;;;;;
+19C3;NEW TAI LUE LETTER FINAL N;Lo;0;L;;;;;N;;;;;
+19C4;NEW TAI LUE LETTER FINAL M;Lo;0;L;;;;;N;;;;;
+19C5;NEW TAI LUE LETTER FINAL K;Lo;0;L;;;;;N;;;;;
+19C6;NEW TAI LUE LETTER FINAL D;Lo;0;L;;;;;N;;;;;
+19C7;NEW TAI LUE LETTER FINAL B;Lo;0;L;;;;;N;;;;;
+19C8;NEW TAI LUE TONE MARK-1;Mc;0;L;;;;;N;;;;;
+19C9;NEW TAI LUE TONE MARK-2;Mc;0;L;;;;;N;;;;;
+19D0;NEW TAI LUE DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+19D1;NEW TAI LUE DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+19D2;NEW TAI LUE DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+19D3;NEW TAI LUE DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+19D4;NEW TAI LUE DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+19D5;NEW TAI LUE DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+19D6;NEW TAI LUE DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+19D7;NEW TAI LUE DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+19D8;NEW TAI LUE DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+19D9;NEW TAI LUE DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+19DE;NEW TAI LUE SIGN LAE;Po;0;ON;;;;;N;;;;;
+19DF;NEW TAI LUE SIGN LAEV;Po;0;ON;;;;;N;;;;;
+19E0;KHMER SYMBOL PATHAMASAT;So;0;ON;;;;;N;;;;;
+19E1;KHMER SYMBOL MUOY KOET;So;0;ON;;;;;N;;;;;
+19E2;KHMER SYMBOL PII KOET;So;0;ON;;;;;N;;;;;
+19E3;KHMER SYMBOL BEI KOET;So;0;ON;;;;;N;;;;;
+19E4;KHMER SYMBOL BUON KOET;So;0;ON;;;;;N;;;;;
+19E5;KHMER SYMBOL PRAM KOET;So;0;ON;;;;;N;;;;;
+19E6;KHMER SYMBOL PRAM-MUOY KOET;So;0;ON;;;;;N;;;;;
+19E7;KHMER SYMBOL PRAM-PII KOET;So;0;ON;;;;;N;;;;;
+19E8;KHMER SYMBOL PRAM-BEI KOET;So;0;ON;;;;;N;;;;;
+19E9;KHMER SYMBOL PRAM-BUON KOET;So;0;ON;;;;;N;;;;;
+19EA;KHMER SYMBOL DAP KOET;So;0;ON;;;;;N;;;;;
+19EB;KHMER SYMBOL DAP-MUOY KOET;So;0;ON;;;;;N;;;;;
+19EC;KHMER SYMBOL DAP-PII KOET;So;0;ON;;;;;N;;;;;
+19ED;KHMER SYMBOL DAP-BEI KOET;So;0;ON;;;;;N;;;;;
+19EE;KHMER SYMBOL DAP-BUON KOET;So;0;ON;;;;;N;;;;;
+19EF;KHMER SYMBOL DAP-PRAM KOET;So;0;ON;;;;;N;;;;;
+19F0;KHMER SYMBOL TUTEYASAT;So;0;ON;;;;;N;;;;;
+19F1;KHMER SYMBOL MUOY ROC;So;0;ON;;;;;N;;;;;
+19F2;KHMER SYMBOL PII ROC;So;0;ON;;;;;N;;;;;
+19F3;KHMER SYMBOL BEI ROC;So;0;ON;;;;;N;;;;;
+19F4;KHMER SYMBOL BUON ROC;So;0;ON;;;;;N;;;;;
+19F5;KHMER SYMBOL PRAM ROC;So;0;ON;;;;;N;;;;;
+19F6;KHMER SYMBOL PRAM-MUOY ROC;So;0;ON;;;;;N;;;;;
+19F7;KHMER SYMBOL PRAM-PII ROC;So;0;ON;;;;;N;;;;;
+19F8;KHMER SYMBOL PRAM-BEI ROC;So;0;ON;;;;;N;;;;;
+19F9;KHMER SYMBOL PRAM-BUON ROC;So;0;ON;;;;;N;;;;;
+19FA;KHMER SYMBOL DAP ROC;So;0;ON;;;;;N;;;;;
+19FB;KHMER SYMBOL DAP-MUOY ROC;So;0;ON;;;;;N;;;;;
+19FC;KHMER SYMBOL DAP-PII ROC;So;0;ON;;;;;N;;;;;
+19FD;KHMER SYMBOL DAP-BEI ROC;So;0;ON;;;;;N;;;;;
+19FE;KHMER SYMBOL DAP-BUON ROC;So;0;ON;;;;;N;;;;;
+19FF;KHMER SYMBOL DAP-PRAM ROC;So;0;ON;;;;;N;;;;;
+1A00;BUGINESE LETTER KA;Lo;0;L;;;;;N;;;;;
+1A01;BUGINESE LETTER GA;Lo;0;L;;;;;N;;;;;
+1A02;BUGINESE LETTER NGA;Lo;0;L;;;;;N;;;;;
+1A03;BUGINESE LETTER NGKA;Lo;0;L;;;;;N;;;;;
+1A04;BUGINESE LETTER PA;Lo;0;L;;;;;N;;;;;
+1A05;BUGINESE LETTER BA;Lo;0;L;;;;;N;;;;;
+1A06;BUGINESE LETTER MA;Lo;0;L;;;;;N;;;;;
+1A07;BUGINESE LETTER MPA;Lo;0;L;;;;;N;;;;;
+1A08;BUGINESE LETTER TA;Lo;0;L;;;;;N;;;;;
+1A09;BUGINESE LETTER DA;Lo;0;L;;;;;N;;;;;
+1A0A;BUGINESE LETTER NA;Lo;0;L;;;;;N;;;;;
+1A0B;BUGINESE LETTER NRA;Lo;0;L;;;;;N;;;;;
+1A0C;BUGINESE LETTER CA;Lo;0;L;;;;;N;;;;;
+1A0D;BUGINESE LETTER JA;Lo;0;L;;;;;N;;;;;
+1A0E;BUGINESE LETTER NYA;Lo;0;L;;;;;N;;;;;
+1A0F;BUGINESE LETTER NYCA;Lo;0;L;;;;;N;;;;;
+1A10;BUGINESE LETTER YA;Lo;0;L;;;;;N;;;;;
+1A11;BUGINESE LETTER RA;Lo;0;L;;;;;N;;;;;
+1A12;BUGINESE LETTER LA;Lo;0;L;;;;;N;;;;;
+1A13;BUGINESE LETTER VA;Lo;0;L;;;;;N;;;;;
+1A14;BUGINESE LETTER SA;Lo;0;L;;;;;N;;;;;
+1A15;BUGINESE LETTER A;Lo;0;L;;;;;N;;;;;
+1A16;BUGINESE LETTER HA;Lo;0;L;;;;;N;;;;;
+1A17;BUGINESE VOWEL SIGN I;Mn;230;NSM;;;;;N;;;;;
+1A18;BUGINESE VOWEL SIGN U;Mn;220;NSM;;;;;N;;;;;
+1A19;BUGINESE VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
+1A1A;BUGINESE VOWEL SIGN O;Mc;0;L;;;;;N;;;;;
+1A1B;BUGINESE VOWEL SIGN AE;Mc;0;L;;;;;N;;;;;
+1A1E;BUGINESE PALLAWA;Po;0;L;;;;;N;;;;;
+1A1F;BUGINESE END OF SECTION;Po;0;L;;;;;N;;;;;
+1B00;BALINESE SIGN ULU RICEM;Mn;0;NSM;;;;;N;;ardhacandra;;;
+1B01;BALINESE SIGN ULU CANDRA;Mn;0;NSM;;;;;N;;candrabindu;;;
+1B02;BALINESE SIGN CECEK;Mn;0;NSM;;;;;N;;anusvara;;;
+1B03;BALINESE SIGN SURANG;Mn;0;NSM;;;;;N;;repha;;;
+1B04;BALINESE SIGN BISAH;Mc;0;L;;;;;N;;visarga;;;
+1B05;BALINESE LETTER AKARA;Lo;0;L;;;;;N;;a;;;
+1B06;BALINESE LETTER AKARA TEDUNG;Lo;0;L;1B05 1B35;;;;N;;aa;;;
+1B07;BALINESE LETTER IKARA;Lo;0;L;;;;;N;;i;;;
+1B08;BALINESE LETTER IKARA TEDUNG;Lo;0;L;1B07 1B35;;;;N;;ii;;;
+1B09;BALINESE LETTER UKARA;Lo;0;L;;;;;N;;u;;;
+1B0A;BALINESE LETTER UKARA TEDUNG;Lo;0;L;1B09 1B35;;;;N;;uu;;;
+1B0B;BALINESE LETTER RA REPA;Lo;0;L;;;;;N;;vocalic r;;;
+1B0C;BALINESE LETTER RA REPA TEDUNG;Lo;0;L;1B0B 1B35;;;;N;;vocalic rr;;;
+1B0D;BALINESE LETTER LA LENGA;Lo;0;L;;;;;N;;vocalic l;;;
+1B0E;BALINESE LETTER LA LENGA TEDUNG;Lo;0;L;1B0D 1B35;;;;N;;vocalic ll;;;
+1B0F;BALINESE LETTER EKARA;Lo;0;L;;;;;N;;e;;;
+1B10;BALINESE LETTER AIKARA;Lo;0;L;;;;;N;;ai;;;
+1B11;BALINESE LETTER OKARA;Lo;0;L;;;;;N;;o;;;
+1B12;BALINESE LETTER OKARA TEDUNG;Lo;0;L;1B11 1B35;;;;N;;au;;;
+1B13;BALINESE LETTER KA;Lo;0;L;;;;;N;;;;;
+1B14;BALINESE LETTER KA MAHAPRANA;Lo;0;L;;;;;N;;kha;;;
+1B15;BALINESE LETTER GA;Lo;0;L;;;;;N;;;;;
+1B16;BALINESE LETTER GA GORA;Lo;0;L;;;;;N;;gha;;;
+1B17;BALINESE LETTER NGA;Lo;0;L;;;;;N;;;;;
+1B18;BALINESE LETTER CA;Lo;0;L;;;;;N;;;;;
+1B19;BALINESE LETTER CA LACA;Lo;0;L;;;;;N;;cha;;;
+1B1A;BALINESE LETTER JA;Lo;0;L;;;;;N;;;;;
+1B1B;BALINESE LETTER JA JERA;Lo;0;L;;;;;N;;jha;;;
+1B1C;BALINESE LETTER NYA;Lo;0;L;;;;;N;;;;;
+1B1D;BALINESE LETTER TA LATIK;Lo;0;L;;;;;N;;tta;;;
+1B1E;BALINESE LETTER TA MURDA MAHAPRANA;Lo;0;L;;;;;N;;ttha;;;
+1B1F;BALINESE LETTER DA MURDA ALPAPRANA;Lo;0;L;;;;;N;;dda;;;
+1B20;BALINESE LETTER DA MURDA MAHAPRANA;Lo;0;L;;;;;N;;ddha;;;
+1B21;BALINESE LETTER NA RAMBAT;Lo;0;L;;;;;N;;nna;;;
+1B22;BALINESE LETTER TA;Lo;0;L;;;;;N;;;;;
+1B23;BALINESE LETTER TA TAWA;Lo;0;L;;;;;N;;tha;;;
+1B24;BALINESE LETTER DA;Lo;0;L;;;;;N;;;;;
+1B25;BALINESE LETTER DA MADU;Lo;0;L;;;;;N;;dha;;;
+1B26;BALINESE LETTER NA;Lo;0;L;;;;;N;;;;;
+1B27;BALINESE LETTER PA;Lo;0;L;;;;;N;;;;;
+1B28;BALINESE LETTER PA KAPAL;Lo;0;L;;;;;N;;pha;;;
+1B29;BALINESE LETTER BA;Lo;0;L;;;;;N;;;;;
+1B2A;BALINESE LETTER BA KEMBANG;Lo;0;L;;;;;N;;bha;;;
+1B2B;BALINESE LETTER MA;Lo;0;L;;;;;N;;;;;
+1B2C;BALINESE LETTER YA;Lo;0;L;;;;;N;;;;;
+1B2D;BALINESE LETTER RA;Lo;0;L;;;;;N;;;;;
+1B2E;BALINESE LETTER LA;Lo;0;L;;;;;N;;;;;
+1B2F;BALINESE LETTER WA;Lo;0;L;;;;;N;;;;;
+1B30;BALINESE LETTER SA SAGA;Lo;0;L;;;;;N;;sha;;;
+1B31;BALINESE LETTER SA SAPA;Lo;0;L;;;;;N;;ssa;;;
+1B32;BALINESE LETTER SA;Lo;0;L;;;;;N;;;;;
+1B33;BALINESE LETTER HA;Lo;0;L;;;;;N;;;;;
+1B34;BALINESE SIGN REREKAN;Mn;7;NSM;;;;;N;;nukta;;;
+1B35;BALINESE VOWEL SIGN TEDUNG;Mc;0;L;;;;;N;;aa;;;
+1B36;BALINESE VOWEL SIGN ULU;Mn;0;NSM;;;;;N;;i;;;
+1B37;BALINESE VOWEL SIGN ULU SARI;Mn;0;NSM;;;;;N;;ii;;;
+1B38;BALINESE VOWEL SIGN SUKU;Mn;0;NSM;;;;;N;;u;;;
+1B39;BALINESE VOWEL SIGN SUKU ILUT;Mn;0;NSM;;;;;N;;uu;;;
+1B3A;BALINESE VOWEL SIGN RA REPA;Mn;0;NSM;;;;;N;;vocalic r;;;
+1B3B;BALINESE VOWEL SIGN RA REPA TEDUNG;Mc;0;L;1B3A 1B35;;;;N;;vocalic rr;;;
+1B3C;BALINESE VOWEL SIGN LA LENGA;Mn;0;NSM;;;;;N;;vocalic l;;;
+1B3D;BALINESE VOWEL SIGN LA LENGA TEDUNG;Mc;0;L;1B3C 1B35;;;;N;;vocalic ll;;;
+1B3E;BALINESE VOWEL SIGN TALING;Mc;0;L;;;;;N;;e;;;
+1B3F;BALINESE VOWEL SIGN TALING REPA;Mc;0;L;;;;;N;;ai;;;
+1B40;BALINESE VOWEL SIGN TALING TEDUNG;Mc;0;L;1B3E 1B35;;;;N;;o;;;
+1B41;BALINESE VOWEL SIGN TALING REPA TEDUNG;Mc;0;L;1B3F 1B35;;;;N;;au;;;
+1B42;BALINESE VOWEL SIGN PEPET;Mn;0;NSM;;;;;N;;ae;;;
+1B43;BALINESE VOWEL SIGN PEPET TEDUNG;Mc;0;L;1B42 1B35;;;;N;;oe;;;
+1B44;BALINESE ADEG ADEG;Mc;9;L;;;;;N;;virama;;;
+1B45;BALINESE LETTER KAF SASAK;Lo;0;L;;;;;N;;;;;
+1B46;BALINESE LETTER KHOT SASAK;Lo;0;L;;;;;N;;;;;
+1B47;BALINESE LETTER TZIR SASAK;Lo;0;L;;;;;N;;;;;
+1B48;BALINESE LETTER EF SASAK;Lo;0;L;;;;;N;;;;;
+1B49;BALINESE LETTER VE SASAK;Lo;0;L;;;;;N;;;;;
+1B4A;BALINESE LETTER ZAL SASAK;Lo;0;L;;;;;N;;;;;
+1B4B;BALINESE LETTER ASYURA SASAK;Lo;0;L;;;;;N;;;;;
+1B50;BALINESE DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+1B51;BALINESE DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+1B52;BALINESE DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+1B53;BALINESE DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+1B54;BALINESE DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+1B55;BALINESE DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+1B56;BALINESE DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+1B57;BALINESE DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+1B58;BALINESE DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+1B59;BALINESE DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+1B5A;BALINESE PANTI;Po;0;L;;;;;N;;section;;;
+1B5B;BALINESE PAMADA;Po;0;L;;;;;N;;honorific section;;;
+1B5C;BALINESE WINDU;Po;0;L;;;;;N;;punctuation ring;;;
+1B5D;BALINESE CARIK PAMUNGKAH;Po;0;L;;;;;N;;colon;;;
+1B5E;BALINESE CARIK SIKI;Po;0;L;;;;;N;;danda;;;
+1B5F;BALINESE CARIK PAREREN;Po;0;L;;;;;N;;double danda;;;
+1B60;BALINESE PAMENENG;Po;0;L;;;;;N;;line-breaking hyphen;;;
+1B61;BALINESE MUSICAL SYMBOL DONG;So;0;L;;;;;N;;;;;
+1B62;BALINESE MUSICAL SYMBOL DENG;So;0;L;;;;;N;;;;;
+1B63;BALINESE MUSICAL SYMBOL DUNG;So;0;L;;;;;N;;;;;
+1B64;BALINESE MUSICAL SYMBOL DANG;So;0;L;;;;;N;;;;;
+1B65;BALINESE MUSICAL SYMBOL DANG SURANG;So;0;L;;;;;N;;;;;
+1B66;BALINESE MUSICAL SYMBOL DING;So;0;L;;;;;N;;;;;
+1B67;BALINESE MUSICAL SYMBOL DAENG;So;0;L;;;;;N;;;;;
+1B68;BALINESE MUSICAL SYMBOL DEUNG;So;0;L;;;;;N;;;;;
+1B69;BALINESE MUSICAL SYMBOL DAING;So;0;L;;;;;N;;;;;
+1B6A;BALINESE MUSICAL SYMBOL DANG GEDE;So;0;L;;;;;N;;;;;
+1B6B;BALINESE MUSICAL SYMBOL COMBINING TEGEH;Mn;230;NSM;;;;;N;;;;;
+1B6C;BALINESE MUSICAL SYMBOL COMBINING ENDEP;Mn;220;NSM;;;;;N;;;;;
+1B6D;BALINESE MUSICAL SYMBOL COMBINING KEMPUL;Mn;230;NSM;;;;;N;;;;;
+1B6E;BALINESE MUSICAL SYMBOL COMBINING KEMPLI;Mn;230;NSM;;;;;N;;;;;
+1B6F;BALINESE MUSICAL SYMBOL COMBINING JEGOGAN;Mn;230;NSM;;;;;N;;;;;
+1B70;BALINESE MUSICAL SYMBOL COMBINING KEMPUL WITH JEGOGAN;Mn;230;NSM;;;;;N;;;;;
+1B71;BALINESE MUSICAL SYMBOL COMBINING KEMPLI WITH JEGOGAN;Mn;230;NSM;;;;;N;;;;;
+1B72;BALINESE MUSICAL SYMBOL COMBINING BENDE;Mn;230;NSM;;;;;N;;;;;
+1B73;BALINESE MUSICAL SYMBOL COMBINING GONG;Mn;230;NSM;;;;;N;;;;;
+1B74;BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DUG;So;0;L;;;;;N;;;;;
+1B75;BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DAG;So;0;L;;;;;N;;;;;
+1B76;BALINESE MUSICAL SYMBOL RIGHT-HAND CLOSED TUK;So;0;L;;;;;N;;;;;
+1B77;BALINESE MUSICAL SYMBOL RIGHT-HAND CLOSED TAK;So;0;L;;;;;N;;;;;
+1B78;BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PANG;So;0;L;;;;;N;;;;;
+1B79;BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PUNG;So;0;L;;;;;N;;;;;
+1B7A;BALINESE MUSICAL SYMBOL LEFT-HAND CLOSED PLAK;So;0;L;;;;;N;;;;;
+1B7B;BALINESE MUSICAL SYMBOL LEFT-HAND CLOSED PLUK;So;0;L;;;;;N;;;;;
+1B7C;BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PING;So;0;L;;;;;N;;;;;
+1D00;LATIN LETTER SMALL CAPITAL A;Ll;0;L;;;;;N;;;;;
+1D01;LATIN LETTER SMALL CAPITAL AE;Ll;0;L;;;;;N;;;;;
+1D02;LATIN SMALL LETTER TURNED AE;Ll;0;L;;;;;N;;;;;
+1D03;LATIN LETTER SMALL CAPITAL BARRED B;Ll;0;L;;;;;N;;;;;
+1D04;LATIN LETTER SMALL CAPITAL C;Ll;0;L;;;;;N;;;;;
+1D05;LATIN LETTER SMALL CAPITAL D;Ll;0;L;;;;;N;;;;;
+1D06;LATIN LETTER SMALL CAPITAL ETH;Ll;0;L;;;;;N;;;;;
+1D07;LATIN LETTER SMALL CAPITAL E;Ll;0;L;;;;;N;;;;;
+1D08;LATIN SMALL LETTER TURNED OPEN E;Ll;0;L;;;;;N;;;;;
+1D09;LATIN SMALL LETTER TURNED I;Ll;0;L;;;;;N;;;;;
+1D0A;LATIN LETTER SMALL CAPITAL J;Ll;0;L;;;;;N;;;;;
+1D0B;LATIN LETTER SMALL CAPITAL K;Ll;0;L;;;;;N;;;;;
+1D0C;LATIN LETTER SMALL CAPITAL L WITH STROKE;Ll;0;L;;;;;N;;;;;
+1D0D;LATIN LETTER SMALL CAPITAL M;Ll;0;L;;;;;N;;;;;
+1D0E;LATIN LETTER SMALL CAPITAL REVERSED N;Ll;0;L;;;;;N;;;;;
+1D0F;LATIN LETTER SMALL CAPITAL O;Ll;0;L;;;;;N;;;;;
+1D10;LATIN LETTER SMALL CAPITAL OPEN O;Ll;0;L;;;;;N;;;;;
+1D11;LATIN SMALL LETTER SIDEWAYS O;Ll;0;L;;;;;N;;;;;
+1D12;LATIN SMALL LETTER SIDEWAYS OPEN O;Ll;0;L;;;;;N;;;;;
+1D13;LATIN SMALL LETTER SIDEWAYS O WITH STROKE;Ll;0;L;;;;;N;;;;;
+1D14;LATIN SMALL LETTER TURNED OE;Ll;0;L;;;;;N;;;;;
+1D15;LATIN LETTER SMALL CAPITAL OU;Ll;0;L;;;;;N;;;;;
+1D16;LATIN SMALL LETTER TOP HALF O;Ll;0;L;;;;;N;;;;;
+1D17;LATIN SMALL LETTER BOTTOM HALF O;Ll;0;L;;;;;N;;;;;
+1D18;LATIN LETTER SMALL CAPITAL P;Ll;0;L;;;;;N;;;;;
+1D19;LATIN LETTER SMALL CAPITAL REVERSED R;Ll;0;L;;;;;N;;;;;
+1D1A;LATIN LETTER SMALL CAPITAL TURNED R;Ll;0;L;;;;;N;;;;;
+1D1B;LATIN LETTER SMALL CAPITAL T;Ll;0;L;;;;;N;;;;;
+1D1C;LATIN LETTER SMALL CAPITAL U;Ll;0;L;;;;;N;;;;;
+1D1D;LATIN SMALL LETTER SIDEWAYS U;Ll;0;L;;;;;N;;;;;
+1D1E;LATIN SMALL LETTER SIDEWAYS DIAERESIZED U;Ll;0;L;;;;;N;;;;;
+1D1F;LATIN SMALL LETTER SIDEWAYS TURNED M;Ll;0;L;;;;;N;;;;;
+1D20;LATIN LETTER SMALL CAPITAL V;Ll;0;L;;;;;N;;;;;
+1D21;LATIN LETTER SMALL CAPITAL W;Ll;0;L;;;;;N;;;;;
+1D22;LATIN LETTER SMALL CAPITAL Z;Ll;0;L;;;;;N;;;;;
+1D23;LATIN LETTER SMALL CAPITAL EZH;Ll;0;L;;;;;N;;;;;
+1D24;LATIN LETTER VOICED LARYNGEAL SPIRANT;Ll;0;L;;;;;N;;;;;
+1D25;LATIN LETTER AIN;Ll;0;L;;;;;N;;;;;
+1D26;GREEK LETTER SMALL CAPITAL GAMMA;Ll;0;L;;;;;N;;;;;
+1D27;GREEK LETTER SMALL CAPITAL LAMDA;Ll;0;L;;;;;N;;;;;
+1D28;GREEK LETTER SMALL CAPITAL PI;Ll;0;L;;;;;N;;;;;
+1D29;GREEK LETTER SMALL CAPITAL RHO;Ll;0;L;;;;;N;;;;;
+1D2A;GREEK LETTER SMALL CAPITAL PSI;Ll;0;L;;;;;N;;;;;
+1D2B;CYRILLIC LETTER SMALL CAPITAL EL;Ll;0;L;;;;;N;;;;;
+1D2C;MODIFIER LETTER CAPITAL A;Lm;0;L;<super> 0041;;;;N;;;;;
+1D2D;MODIFIER LETTER CAPITAL AE;Lm;0;L;<super> 00C6;;;;N;;;;;
+1D2E;MODIFIER LETTER CAPITAL B;Lm;0;L;<super> 0042;;;;N;;;;;
+1D2F;MODIFIER LETTER CAPITAL BARRED B;Lm;0;L;;;;;N;;;;;
+1D30;MODIFIER LETTER CAPITAL D;Lm;0;L;<super> 0044;;;;N;;;;;
+1D31;MODIFIER LETTER CAPITAL E;Lm;0;L;<super> 0045;;;;N;;;;;
+1D32;MODIFIER LETTER CAPITAL REVERSED E;Lm;0;L;<super> 018E;;;;N;;;;;
+1D33;MODIFIER LETTER CAPITAL G;Lm;0;L;<super> 0047;;;;N;;;;;
+1D34;MODIFIER LETTER CAPITAL H;Lm;0;L;<super> 0048;;;;N;;;;;
+1D35;MODIFIER LETTER CAPITAL I;Lm;0;L;<super> 0049;;;;N;;;;;
+1D36;MODIFIER LETTER CAPITAL J;Lm;0;L;<super> 004A;;;;N;;;;;
+1D37;MODIFIER LETTER CAPITAL K;Lm;0;L;<super> 004B;;;;N;;;;;
+1D38;MODIFIER LETTER CAPITAL L;Lm;0;L;<super> 004C;;;;N;;;;;
+1D39;MODIFIER LETTER CAPITAL M;Lm;0;L;<super> 004D;;;;N;;;;;
+1D3A;MODIFIER LETTER CAPITAL N;Lm;0;L;<super> 004E;;;;N;;;;;
+1D3B;MODIFIER LETTER CAPITAL REVERSED N;Lm;0;L;;;;;N;;;;;
+1D3C;MODIFIER LETTER CAPITAL O;Lm;0;L;<super> 004F;;;;N;;;;;
+1D3D;MODIFIER LETTER CAPITAL OU;Lm;0;L;<super> 0222;;;;N;;;;;
+1D3E;MODIFIER LETTER CAPITAL P;Lm;0;L;<super> 0050;;;;N;;;;;
+1D3F;MODIFIER LETTER CAPITAL R;Lm;0;L;<super> 0052;;;;N;;;;;
+1D40;MODIFIER LETTER CAPITAL T;Lm;0;L;<super> 0054;;;;N;;;;;
+1D41;MODIFIER LETTER CAPITAL U;Lm;0;L;<super> 0055;;;;N;;;;;
+1D42;MODIFIER LETTER CAPITAL W;Lm;0;L;<super> 0057;;;;N;;;;;
+1D43;MODIFIER LETTER SMALL A;Lm;0;L;<super> 0061;;;;N;;;;;
+1D44;MODIFIER LETTER SMALL TURNED A;Lm;0;L;<super> 0250;;;;N;;;;;
+1D45;MODIFIER LETTER SMALL ALPHA;Lm;0;L;<super> 0251;;;;N;;;;;
+1D46;MODIFIER LETTER SMALL TURNED AE;Lm;0;L;<super> 1D02;;;;N;;;;;
+1D47;MODIFIER LETTER SMALL B;Lm;0;L;<super> 0062;;;;N;;;;;
+1D48;MODIFIER LETTER SMALL D;Lm;0;L;<super> 0064;;;;N;;;;;
+1D49;MODIFIER LETTER SMALL E;Lm;0;L;<super> 0065;;;;N;;;;;
+1D4A;MODIFIER LETTER SMALL SCHWA;Lm;0;L;<super> 0259;;;;N;;;;;
+1D4B;MODIFIER LETTER SMALL OPEN E;Lm;0;L;<super> 025B;;;;N;;;;;
+1D4C;MODIFIER LETTER SMALL TURNED OPEN E;Lm;0;L;<super> 025C;;;;N;;;;;
+1D4D;MODIFIER LETTER SMALL G;Lm;0;L;<super> 0067;;;;N;;;;;
+1D4E;MODIFIER LETTER SMALL TURNED I;Lm;0;L;;;;;N;;;;;
+1D4F;MODIFIER LETTER SMALL K;Lm;0;L;<super> 006B;;;;N;;;;;
+1D50;MODIFIER LETTER SMALL M;Lm;0;L;<super> 006D;;;;N;;;;;
+1D51;MODIFIER LETTER SMALL ENG;Lm;0;L;<super> 014B;;;;N;;;;;
+1D52;MODIFIER LETTER SMALL O;Lm;0;L;<super> 006F;;;;N;;;;;
+1D53;MODIFIER LETTER SMALL OPEN O;Lm;0;L;<super> 0254;;;;N;;;;;
+1D54;MODIFIER LETTER SMALL TOP HALF O;Lm;0;L;<super> 1D16;;;;N;;;;;
+1D55;MODIFIER LETTER SMALL BOTTOM HALF O;Lm;0;L;<super> 1D17;;;;N;;;;;
+1D56;MODIFIER LETTER SMALL P;Lm;0;L;<super> 0070;;;;N;;;;;
+1D57;MODIFIER LETTER SMALL T;Lm;0;L;<super> 0074;;;;N;;;;;
+1D58;MODIFIER LETTER SMALL U;Lm;0;L;<super> 0075;;;;N;;;;;
+1D59;MODIFIER LETTER SMALL SIDEWAYS U;Lm;0;L;<super> 1D1D;;;;N;;;;;
+1D5A;MODIFIER LETTER SMALL TURNED M;Lm;0;L;<super> 026F;;;;N;;;;;
+1D5B;MODIFIER LETTER SMALL V;Lm;0;L;<super> 0076;;;;N;;;;;
+1D5C;MODIFIER LETTER SMALL AIN;Lm;0;L;<super> 1D25;;;;N;;;;;
+1D5D;MODIFIER LETTER SMALL BETA;Lm;0;L;<super> 03B2;;;;N;;;;;
+1D5E;MODIFIER LETTER SMALL GREEK GAMMA;Lm;0;L;<super> 03B3;;;;N;;;;;
+1D5F;MODIFIER LETTER SMALL DELTA;Lm;0;L;<super> 03B4;;;;N;;;;;
+1D60;MODIFIER LETTER SMALL GREEK PHI;Lm;0;L;<super> 03C6;;;;N;;;;;
+1D61;MODIFIER LETTER SMALL CHI;Lm;0;L;<super> 03C7;;;;N;;;;;
+1D62;LATIN SUBSCRIPT SMALL LETTER I;Ll;0;L;<sub> 0069;;;;N;;;;;
+1D63;LATIN SUBSCRIPT SMALL LETTER R;Ll;0;L;<sub> 0072;;;;N;;;;;
+1D64;LATIN SUBSCRIPT SMALL LETTER U;Ll;0;L;<sub> 0075;;;;N;;;;;
+1D65;LATIN SUBSCRIPT SMALL LETTER V;Ll;0;L;<sub> 0076;;;;N;;;;;
+1D66;GREEK SUBSCRIPT SMALL LETTER BETA;Ll;0;L;<sub> 03B2;;;;N;;;;;
+1D67;GREEK SUBSCRIPT SMALL LETTER GAMMA;Ll;0;L;<sub> 03B3;;;;N;;;;;
+1D68;GREEK SUBSCRIPT SMALL LETTER RHO;Ll;0;L;<sub> 03C1;;;;N;;;;;
+1D69;GREEK SUBSCRIPT SMALL LETTER PHI;Ll;0;L;<sub> 03C6;;;;N;;;;;
+1D6A;GREEK SUBSCRIPT SMALL LETTER CHI;Ll;0;L;<sub> 03C7;;;;N;;;;;
+1D6B;LATIN SMALL LETTER UE;Ll;0;L;;;;;N;;;;;
+1D6C;LATIN SMALL LETTER B WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;;
+1D6D;LATIN SMALL LETTER D WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;;
+1D6E;LATIN SMALL LETTER F WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;;
+1D6F;LATIN SMALL LETTER M WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;;
+1D70;LATIN SMALL LETTER N WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;;
+1D71;LATIN SMALL LETTER P WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;;
+1D72;LATIN SMALL LETTER R WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;;
+1D73;LATIN SMALL LETTER R WITH FISHHOOK AND MIDDLE TILDE;Ll;0;L;;;;;N;;;;;
+1D74;LATIN SMALL LETTER S WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;;
+1D75;LATIN SMALL LETTER T WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;;
+1D76;LATIN SMALL LETTER Z WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;;
+1D77;LATIN SMALL LETTER TURNED G;Ll;0;L;;;;;N;;;;;
+1D78;MODIFIER LETTER CYRILLIC EN;Lm;0;L;<super> 043D;;;;N;;;;;
+1D79;LATIN SMALL LETTER INSULAR G;Ll;0;L;;;;;N;;;;;
+1D7A;LATIN SMALL LETTER TH WITH STRIKETHROUGH;Ll;0;L;;;;;N;;;;;
+1D7B;LATIN SMALL CAPITAL LETTER I WITH STROKE;Ll;0;L;;;;;N;;;;;
+1D7C;LATIN SMALL LETTER IOTA WITH STROKE;Ll;0;L;;;;;N;;;;;
+1D7D;LATIN SMALL LETTER P WITH STROKE;Ll;0;L;;;;;N;;;2C63;;2C63
+1D7E;LATIN SMALL CAPITAL LETTER U WITH STROKE;Ll;0;L;;;;;N;;;;;
+1D7F;LATIN SMALL LETTER UPSILON WITH STROKE;Ll;0;L;;;;;N;;;;;
+1D80;LATIN SMALL LETTER B WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
+1D81;LATIN SMALL LETTER D WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
+1D82;LATIN SMALL LETTER F WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
+1D83;LATIN SMALL LETTER G WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
+1D84;LATIN SMALL LETTER K WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
+1D85;LATIN SMALL LETTER L WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
+1D86;LATIN SMALL LETTER M WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
+1D87;LATIN SMALL LETTER N WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
+1D88;LATIN SMALL LETTER P WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
+1D89;LATIN SMALL LETTER R WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
+1D8A;LATIN SMALL LETTER S WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
+1D8B;LATIN SMALL LETTER ESH WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
+1D8C;LATIN SMALL LETTER V WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
+1D8D;LATIN SMALL LETTER X WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
+1D8E;LATIN SMALL LETTER Z WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
+1D8F;LATIN SMALL LETTER A WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;
+1D90;LATIN SMALL LETTER ALPHA WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;
+1D91;LATIN SMALL LETTER D WITH HOOK AND TAIL;Ll;0;L;;;;;N;;;;;
+1D92;LATIN SMALL LETTER E WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;
+1D93;LATIN SMALL LETTER OPEN E WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;
+1D94;LATIN SMALL LETTER REVERSED OPEN E WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;
+1D95;LATIN SMALL LETTER SCHWA WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;
+1D96;LATIN SMALL LETTER I WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;
+1D97;LATIN SMALL LETTER OPEN O WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;
+1D98;LATIN SMALL LETTER ESH WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;
+1D99;LATIN SMALL LETTER U WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;
+1D9A;LATIN SMALL LETTER EZH WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;
+1D9B;MODIFIER LETTER SMALL TURNED ALPHA;Lm;0;L;<super> 0252;;;;N;;;;;
+1D9C;MODIFIER LETTER SMALL C;Lm;0;L;<super> 0063;;;;N;;;;;
+1D9D;MODIFIER LETTER SMALL C WITH CURL;Lm;0;L;<super> 0255;;;;N;;;;;
+1D9E;MODIFIER LETTER SMALL ETH;Lm;0;L;<super> 00F0;;;;N;;;;;
+1D9F;MODIFIER LETTER SMALL REVERSED OPEN E;Lm;0;L;<super> 025C;;;;N;;;;;
+1DA0;MODIFIER LETTER SMALL F;Lm;0;L;<super> 0066;;;;N;;;;;
+1DA1;MODIFIER LETTER SMALL DOTLESS J WITH STROKE;Lm;0;L;<super> 025F;;;;N;;;;;
+1DA2;MODIFIER LETTER SMALL SCRIPT G;Lm;0;L;<super> 0261;;;;N;;;;;
+1DA3;MODIFIER LETTER SMALL TURNED H;Lm;0;L;<super> 0265;;;;N;;;;;
+1DA4;MODIFIER LETTER SMALL I WITH STROKE;Lm;0;L;<super> 0268;;;;N;;;;;
+1DA5;MODIFIER LETTER SMALL IOTA;Lm;0;L;<super> 0269;;;;N;;;;;
+1DA6;MODIFIER LETTER SMALL CAPITAL I;Lm;0;L;<super> 026A;;;;N;;;;;
+1DA7;MODIFIER LETTER SMALL CAPITAL I WITH STROKE;Lm;0;L;<super> 1D7B;;;;N;;;;;
+1DA8;MODIFIER LETTER SMALL J WITH CROSSED-TAIL;Lm;0;L;<super> 029D;;;;N;;;;;
+1DA9;MODIFIER LETTER SMALL L WITH RETROFLEX HOOK;Lm;0;L;<super> 026D;;;;N;;;;;
+1DAA;MODIFIER LETTER SMALL L WITH PALATAL HOOK;Lm;0;L;<super> 1D85;;;;N;;;;;
+1DAB;MODIFIER LETTER SMALL CAPITAL L;Lm;0;L;<super> 029F;;;;N;;;;;
+1DAC;MODIFIER LETTER SMALL M WITH HOOK;Lm;0;L;<super> 0271;;;;N;;;;;
+1DAD;MODIFIER LETTER SMALL TURNED M WITH LONG LEG;Lm;0;L;<super> 0270;;;;N;;;;;
+1DAE;MODIFIER LETTER SMALL N WITH LEFT HOOK;Lm;0;L;<super> 0272;;;;N;;;;;
+1DAF;MODIFIER LETTER SMALL N WITH RETROFLEX HOOK;Lm;0;L;<super> 0273;;;;N;;;;;
+1DB0;MODIFIER LETTER SMALL CAPITAL N;Lm;0;L;<super> 0274;;;;N;;;;;
+1DB1;MODIFIER LETTER SMALL BARRED O;Lm;0;L;<super> 0275;;;;N;;;;;
+1DB2;MODIFIER LETTER SMALL PHI;Lm;0;L;<super> 0278;;;;N;;;;;
+1DB3;MODIFIER LETTER SMALL S WITH HOOK;Lm;0;L;<super> 0282;;;;N;;;;;
+1DB4;MODIFIER LETTER SMALL ESH;Lm;0;L;<super> 0283;;;;N;;;;;
+1DB5;MODIFIER LETTER SMALL T WITH PALATAL HOOK;Lm;0;L;<super> 01AB;;;;N;;;;;
+1DB6;MODIFIER LETTER SMALL U BAR;Lm;0;L;<super> 0289;;;;N;;;;;
+1DB7;MODIFIER LETTER SMALL UPSILON;Lm;0;L;<super> 028A;;;;N;;;;;
+1DB8;MODIFIER LETTER SMALL CAPITAL U;Lm;0;L;<super> 1D1C;;;;N;;;;;
+1DB9;MODIFIER LETTER SMALL V WITH HOOK;Lm;0;L;<super> 028B;;;;N;;;;;
+1DBA;MODIFIER LETTER SMALL TURNED V;Lm;0;L;<super> 028C;;;;N;;;;;
+1DBB;MODIFIER LETTER SMALL Z;Lm;0;L;<super> 007A;;;;N;;;;;
+1DBC;MODIFIER LETTER SMALL Z WITH RETROFLEX HOOK;Lm;0;L;<super> 0290;;;;N;;;;;
+1DBD;MODIFIER LETTER SMALL Z WITH CURL;Lm;0;L;<super> 0291;;;;N;;;;;
+1DBE;MODIFIER LETTER SMALL EZH;Lm;0;L;<super> 0292;;;;N;;;;;
+1DBF;MODIFIER LETTER SMALL THETA;Lm;0;L;<super> 03B8;;;;N;;;;;
+1DC0;COMBINING DOTTED GRAVE ACCENT;Mn;230;NSM;;;;;N;;;;;
+1DC1;COMBINING DOTTED ACUTE ACCENT;Mn;230;NSM;;;;;N;;;;;
+1DC2;COMBINING SNAKE BELOW;Mn;220;NSM;;;;;N;;;;;
+1DC3;COMBINING SUSPENSION MARK;Mn;230;NSM;;;;;N;;;;;
+1DC4;COMBINING MACRON-ACUTE;Mn;230;NSM;;;;;N;;;;;
+1DC5;COMBINING GRAVE-MACRON;Mn;230;NSM;;;;;N;;;;;
+1DC6;COMBINING MACRON-GRAVE;Mn;230;NSM;;;;;N;;;;;
+1DC7;COMBINING ACUTE-MACRON;Mn;230;NSM;;;;;N;;;;;
+1DC8;COMBINING GRAVE-ACUTE-GRAVE;Mn;230;NSM;;;;;N;;;;;
+1DC9;COMBINING ACUTE-GRAVE-ACUTE;Mn;230;NSM;;;;;N;;;;;
+1DCA;COMBINING LATIN SMALL LETTER R BELOW;Mn;220;NSM;;;;;N;;;;;
+1DFE;COMBINING LEFT ARROWHEAD ABOVE;Mn;230;NSM;;;;;N;;;;;
+1DFF;COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW;Mn;220;NSM;;;;;N;;;;;
+1E00;LATIN CAPITAL LETTER A WITH RING BELOW;Lu;0;L;0041 0325;;;;N;;;;1E01;
+1E01;LATIN SMALL LETTER A WITH RING BELOW;Ll;0;L;0061 0325;;;;N;;;1E00;;1E00
+1E02;LATIN CAPITAL LETTER B WITH DOT ABOVE;Lu;0;L;0042 0307;;;;N;;;;1E03;
+1E03;LATIN SMALL LETTER B WITH DOT ABOVE;Ll;0;L;0062 0307;;;;N;;;1E02;;1E02
+1E04;LATIN CAPITAL LETTER B WITH DOT BELOW;Lu;0;L;0042 0323;;;;N;;;;1E05;
+1E05;LATIN SMALL LETTER B WITH DOT BELOW;Ll;0;L;0062 0323;;;;N;;;1E04;;1E04
+1E06;LATIN CAPITAL LETTER B WITH LINE BELOW;Lu;0;L;0042 0331;;;;N;;;;1E07;
+1E07;LATIN SMALL LETTER B WITH LINE BELOW;Ll;0;L;0062 0331;;;;N;;;1E06;;1E06
+1E08;LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE;Lu;0;L;00C7 0301;;;;N;;;;1E09;
+1E09;LATIN SMALL LETTER C WITH CEDILLA AND ACUTE;Ll;0;L;00E7 0301;;;;N;;;1E08;;1E08
+1E0A;LATIN CAPITAL LETTER D WITH DOT ABOVE;Lu;0;L;0044 0307;;;;N;;;;1E0B;
+1E0B;LATIN SMALL LETTER D WITH DOT ABOVE;Ll;0;L;0064 0307;;;;N;;;1E0A;;1E0A
+1E0C;LATIN CAPITAL LETTER D WITH DOT BELOW;Lu;0;L;0044 0323;;;;N;;;;1E0D;
+1E0D;LATIN SMALL LETTER D WITH DOT BELOW;Ll;0;L;0064 0323;;;;N;;;1E0C;;1E0C
+1E0E;LATIN CAPITAL LETTER D WITH LINE BELOW;Lu;0;L;0044 0331;;;;N;;;;1E0F;
+1E0F;LATIN SMALL LETTER D WITH LINE BELOW;Ll;0;L;0064 0331;;;;N;;;1E0E;;1E0E
+1E10;LATIN CAPITAL LETTER D WITH CEDILLA;Lu;0;L;0044 0327;;;;N;;;;1E11;
+1E11;LATIN SMALL LETTER D WITH CEDILLA;Ll;0;L;0064 0327;;;;N;;;1E10;;1E10
+1E12;LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW;Lu;0;L;0044 032D;;;;N;;;;1E13;
+1E13;LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW;Ll;0;L;0064 032D;;;;N;;;1E12;;1E12
+1E14;LATIN CAPITAL LETTER E WITH MACRON AND GRAVE;Lu;0;L;0112 0300;;;;N;;;;1E15;
+1E15;LATIN SMALL LETTER E WITH MACRON AND GRAVE;Ll;0;L;0113 0300;;;;N;;;1E14;;1E14
+1E16;LATIN CAPITAL LETTER E WITH MACRON AND ACUTE;Lu;0;L;0112 0301;;;;N;;;;1E17;
+1E17;LATIN SMALL LETTER E WITH MACRON AND ACUTE;Ll;0;L;0113 0301;;;;N;;;1E16;;1E16
+1E18;LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW;Lu;0;L;0045 032D;;;;N;;;;1E19;
+1E19;LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW;Ll;0;L;0065 032D;;;;N;;;1E18;;1E18
+1E1A;LATIN CAPITAL LETTER E WITH TILDE BELOW;Lu;0;L;0045 0330;;;;N;;;;1E1B;
+1E1B;LATIN SMALL LETTER E WITH TILDE BELOW;Ll;0;L;0065 0330;;;;N;;;1E1A;;1E1A
+1E1C;LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE;Lu;0;L;0228 0306;;;;N;;;;1E1D;
+1E1D;LATIN SMALL LETTER E WITH CEDILLA AND BREVE;Ll;0;L;0229 0306;;;;N;;;1E1C;;1E1C
+1E1E;LATIN CAPITAL LETTER F WITH DOT ABOVE;Lu;0;L;0046 0307;;;;N;;;;1E1F;
+1E1F;LATIN SMALL LETTER F WITH DOT ABOVE;Ll;0;L;0066 0307;;;;N;;;1E1E;;1E1E
+1E20;LATIN CAPITAL LETTER G WITH MACRON;Lu;0;L;0047 0304;;;;N;;;;1E21;
+1E21;LATIN SMALL LETTER G WITH MACRON;Ll;0;L;0067 0304;;;;N;;;1E20;;1E20
+1E22;LATIN CAPITAL LETTER H WITH DOT ABOVE;Lu;0;L;0048 0307;;;;N;;;;1E23;
+1E23;LATIN SMALL LETTER H WITH DOT ABOVE;Ll;0;L;0068 0307;;;;N;;;1E22;;1E22
+1E24;LATIN CAPITAL LETTER H WITH DOT BELOW;Lu;0;L;0048 0323;;;;N;;;;1E25;
+1E25;LATIN SMALL LETTER H WITH DOT BELOW;Ll;0;L;0068 0323;;;;N;;;1E24;;1E24
+1E26;LATIN CAPITAL LETTER H WITH DIAERESIS;Lu;0;L;0048 0308;;;;N;;;;1E27;
+1E27;LATIN SMALL LETTER H WITH DIAERESIS;Ll;0;L;0068 0308;;;;N;;;1E26;;1E26
+1E28;LATIN CAPITAL LETTER H WITH CEDILLA;Lu;0;L;0048 0327;;;;N;;;;1E29;
+1E29;LATIN SMALL LETTER H WITH CEDILLA;Ll;0;L;0068 0327;;;;N;;;1E28;;1E28
+1E2A;LATIN CAPITAL LETTER H WITH BREVE BELOW;Lu;0;L;0048 032E;;;;N;;;;1E2B;
+1E2B;LATIN SMALL LETTER H WITH BREVE BELOW;Ll;0;L;0068 032E;;;;N;;;1E2A;;1E2A
+1E2C;LATIN CAPITAL LETTER I WITH TILDE BELOW;Lu;0;L;0049 0330;;;;N;;;;1E2D;
+1E2D;LATIN SMALL LETTER I WITH TILDE BELOW;Ll;0;L;0069 0330;;;;N;;;1E2C;;1E2C
+1E2E;LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE;Lu;0;L;00CF 0301;;;;N;;;;1E2F;
+1E2F;LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE;Ll;0;L;00EF 0301;;;;N;;;1E2E;;1E2E
+1E30;LATIN CAPITAL LETTER K WITH ACUTE;Lu;0;L;004B 0301;;;;N;;;;1E31;
+1E31;LATIN SMALL LETTER K WITH ACUTE;Ll;0;L;006B 0301;;;;N;;;1E30;;1E30
+1E32;LATIN CAPITAL LETTER K WITH DOT BELOW;Lu;0;L;004B 0323;;;;N;;;;1E33;
+1E33;LATIN SMALL LETTER K WITH DOT BELOW;Ll;0;L;006B 0323;;;;N;;;1E32;;1E32
+1E34;LATIN CAPITAL LETTER K WITH LINE BELOW;Lu;0;L;004B 0331;;;;N;;;;1E35;
+1E35;LATIN SMALL LETTER K WITH LINE BELOW;Ll;0;L;006B 0331;;;;N;;;1E34;;1E34
+1E36;LATIN CAPITAL LETTER L WITH DOT BELOW;Lu;0;L;004C 0323;;;;N;;;;1E37;
+1E37;LATIN SMALL LETTER L WITH DOT BELOW;Ll;0;L;006C 0323;;;;N;;;1E36;;1E36
+1E38;LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON;Lu;0;L;1E36 0304;;;;N;;;;1E39;
+1E39;LATIN SMALL LETTER L WITH DOT BELOW AND MACRON;Ll;0;L;1E37 0304;;;;N;;;1E38;;1E38
+1E3A;LATIN CAPITAL LETTER L WITH LINE BELOW;Lu;0;L;004C 0331;;;;N;;;;1E3B;
+1E3B;LATIN SMALL LETTER L WITH LINE BELOW;Ll;0;L;006C 0331;;;;N;;;1E3A;;1E3A
+1E3C;LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW;Lu;0;L;004C 032D;;;;N;;;;1E3D;
+1E3D;LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW;Ll;0;L;006C 032D;;;;N;;;1E3C;;1E3C
+1E3E;LATIN CAPITAL LETTER M WITH ACUTE;Lu;0;L;004D 0301;;;;N;;;;1E3F;
+1E3F;LATIN SMALL LETTER M WITH ACUTE;Ll;0;L;006D 0301;;;;N;;;1E3E;;1E3E
+1E40;LATIN CAPITAL LETTER M WITH DOT ABOVE;Lu;0;L;004D 0307;;;;N;;;;1E41;
+1E41;LATIN SMALL LETTER M WITH DOT ABOVE;Ll;0;L;006D 0307;;;;N;;;1E40;;1E40
+1E42;LATIN CAPITAL LETTER M WITH DOT BELOW;Lu;0;L;004D 0323;;;;N;;;;1E43;
+1E43;LATIN SMALL LETTER M WITH DOT BELOW;Ll;0;L;006D 0323;;;;N;;;1E42;;1E42
+1E44;LATIN CAPITAL LETTER N WITH DOT ABOVE;Lu;0;L;004E 0307;;;;N;;;;1E45;
+1E45;LATIN SMALL LETTER N WITH DOT ABOVE;Ll;0;L;006E 0307;;;;N;;;1E44;;1E44
+1E46;LATIN CAPITAL LETTER N WITH DOT BELOW;Lu;0;L;004E 0323;;;;N;;;;1E47;
+1E47;LATIN SMALL LETTER N WITH DOT BELOW;Ll;0;L;006E 0323;;;;N;;;1E46;;1E46
+1E48;LATIN CAPITAL LETTER N WITH LINE BELOW;Lu;0;L;004E 0331;;;;N;;;;1E49;
+1E49;LATIN SMALL LETTER N WITH LINE BELOW;Ll;0;L;006E 0331;;;;N;;;1E48;;1E48
+1E4A;LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW;Lu;0;L;004E 032D;;;;N;;;;1E4B;
+1E4B;LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW;Ll;0;L;006E 032D;;;;N;;;1E4A;;1E4A
+1E4C;LATIN CAPITAL LETTER O WITH TILDE AND ACUTE;Lu;0;L;00D5 0301;;;;N;;;;1E4D;
+1E4D;LATIN SMALL LETTER O WITH TILDE AND ACUTE;Ll;0;L;00F5 0301;;;;N;;;1E4C;;1E4C
+1E4E;LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS;Lu;0;L;00D5 0308;;;;N;;;;1E4F;
+1E4F;LATIN SMALL LETTER O WITH TILDE AND DIAERESIS;Ll;0;L;00F5 0308;;;;N;;;1E4E;;1E4E
+1E50;LATIN CAPITAL LETTER O WITH MACRON AND GRAVE;Lu;0;L;014C 0300;;;;N;;;;1E51;
+1E51;LATIN SMALL LETTER O WITH MACRON AND GRAVE;Ll;0;L;014D 0300;;;;N;;;1E50;;1E50
+1E52;LATIN CAPITAL LETTER O WITH MACRON AND ACUTE;Lu;0;L;014C 0301;;;;N;;;;1E53;
+1E53;LATIN SMALL LETTER O WITH MACRON AND ACUTE;Ll;0;L;014D 0301;;;;N;;;1E52;;1E52
+1E54;LATIN CAPITAL LETTER P WITH ACUTE;Lu;0;L;0050 0301;;;;N;;;;1E55;
+1E55;LATIN SMALL LETTER P WITH ACUTE;Ll;0;L;0070 0301;;;;N;;;1E54;;1E54
+1E56;LATIN CAPITAL LETTER P WITH DOT ABOVE;Lu;0;L;0050 0307;;;;N;;;;1E57;
+1E57;LATIN SMALL LETTER P WITH DOT ABOVE;Ll;0;L;0070 0307;;;;N;;;1E56;;1E56
+1E58;LATIN CAPITAL LETTER R WITH DOT ABOVE;Lu;0;L;0052 0307;;;;N;;;;1E59;
+1E59;LATIN SMALL LETTER R WITH DOT ABOVE;Ll;0;L;0072 0307;;;;N;;;1E58;;1E58
+1E5A;LATIN CAPITAL LETTER R WITH DOT BELOW;Lu;0;L;0052 0323;;;;N;;;;1E5B;
+1E5B;LATIN SMALL LETTER R WITH DOT BELOW;Ll;0;L;0072 0323;;;;N;;;1E5A;;1E5A
+1E5C;LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON;Lu;0;L;1E5A 0304;;;;N;;;;1E5D;
+1E5D;LATIN SMALL LETTER R WITH DOT BELOW AND MACRON;Ll;0;L;1E5B 0304;;;;N;;;1E5C;;1E5C
+1E5E;LATIN CAPITAL LETTER R WITH LINE BELOW;Lu;0;L;0052 0331;;;;N;;;;1E5F;
+1E5F;LATIN SMALL LETTER R WITH LINE BELOW;Ll;0;L;0072 0331;;;;N;;;1E5E;;1E5E
+1E60;LATIN CAPITAL LETTER S WITH DOT ABOVE;Lu;0;L;0053 0307;;;;N;;;;1E61;
+1E61;LATIN SMALL LETTER S WITH DOT ABOVE;Ll;0;L;0073 0307;;;;N;;;1E60;;1E60
+1E62;LATIN CAPITAL LETTER S WITH DOT BELOW;Lu;0;L;0053 0323;;;;N;;;;1E63;
+1E63;LATIN SMALL LETTER S WITH DOT BELOW;Ll;0;L;0073 0323;;;;N;;;1E62;;1E62
+1E64;LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE;Lu;0;L;015A 0307;;;;N;;;;1E65;
+1E65;LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE;Ll;0;L;015B 0307;;;;N;;;1E64;;1E64
+1E66;LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE;Lu;0;L;0160 0307;;;;N;;;;1E67;
+1E67;LATIN SMALL LETTER S WITH CARON AND DOT ABOVE;Ll;0;L;0161 0307;;;;N;;;1E66;;1E66
+1E68;LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE;Lu;0;L;1E62 0307;;;;N;;;;1E69;
+1E69;LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE;Ll;0;L;1E63 0307;;;;N;;;1E68;;1E68
+1E6A;LATIN CAPITAL LETTER T WITH DOT ABOVE;Lu;0;L;0054 0307;;;;N;;;;1E6B;
+1E6B;LATIN SMALL LETTER T WITH DOT ABOVE;Ll;0;L;0074 0307;;;;N;;;1E6A;;1E6A
+1E6C;LATIN CAPITAL LETTER T WITH DOT BELOW;Lu;0;L;0054 0323;;;;N;;;;1E6D;
+1E6D;LATIN SMALL LETTER T WITH DOT BELOW;Ll;0;L;0074 0323;;;;N;;;1E6C;;1E6C
+1E6E;LATIN CAPITAL LETTER T WITH LINE BELOW;Lu;0;L;0054 0331;;;;N;;;;1E6F;
+1E6F;LATIN SMALL LETTER T WITH LINE BELOW;Ll;0;L;0074 0331;;;;N;;;1E6E;;1E6E
+1E70;LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW;Lu;0;L;0054 032D;;;;N;;;;1E71;
+1E71;LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW;Ll;0;L;0074 032D;;;;N;;;1E70;;1E70
+1E72;LATIN CAPITAL LETTER U WITH DIAERESIS BELOW;Lu;0;L;0055 0324;;;;N;;;;1E73;
+1E73;LATIN SMALL LETTER U WITH DIAERESIS BELOW;Ll;0;L;0075 0324;;;;N;;;1E72;;1E72
+1E74;LATIN CAPITAL LETTER U WITH TILDE BELOW;Lu;0;L;0055 0330;;;;N;;;;1E75;
+1E75;LATIN SMALL LETTER U WITH TILDE BELOW;Ll;0;L;0075 0330;;;;N;;;1E74;;1E74
+1E76;LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW;Lu;0;L;0055 032D;;;;N;;;;1E77;
+1E77;LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW;Ll;0;L;0075 032D;;;;N;;;1E76;;1E76
+1E78;LATIN CAPITAL LETTER U WITH TILDE AND ACUTE;Lu;0;L;0168 0301;;;;N;;;;1E79;
+1E79;LATIN SMALL LETTER U WITH TILDE AND ACUTE;Ll;0;L;0169 0301;;;;N;;;1E78;;1E78
+1E7A;LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS;Lu;0;L;016A 0308;;;;N;;;;1E7B;
+1E7B;LATIN SMALL LETTER U WITH MACRON AND DIAERESIS;Ll;0;L;016B 0308;;;;N;;;1E7A;;1E7A
+1E7C;LATIN CAPITAL LETTER V WITH TILDE;Lu;0;L;0056 0303;;;;N;;;;1E7D;
+1E7D;LATIN SMALL LETTER V WITH TILDE;Ll;0;L;0076 0303;;;;N;;;1E7C;;1E7C
+1E7E;LATIN CAPITAL LETTER V WITH DOT BELOW;Lu;0;L;0056 0323;;;;N;;;;1E7F;
+1E7F;LATIN SMALL LETTER V WITH DOT BELOW;Ll;0;L;0076 0323;;;;N;;;1E7E;;1E7E
+1E80;LATIN CAPITAL LETTER W WITH GRAVE;Lu;0;L;0057 0300;;;;N;;;;1E81;
+1E81;LATIN SMALL LETTER W WITH GRAVE;Ll;0;L;0077 0300;;;;N;;;1E80;;1E80
+1E82;LATIN CAPITAL LETTER W WITH ACUTE;Lu;0;L;0057 0301;;;;N;;;;1E83;
+1E83;LATIN SMALL LETTER W WITH ACUTE;Ll;0;L;0077 0301;;;;N;;;1E82;;1E82
+1E84;LATIN CAPITAL LETTER W WITH DIAERESIS;Lu;0;L;0057 0308;;;;N;;;;1E85;
+1E85;LATIN SMALL LETTER W WITH DIAERESIS;Ll;0;L;0077 0308;;;;N;;;1E84;;1E84
+1E86;LATIN CAPITAL LETTER W WITH DOT ABOVE;Lu;0;L;0057 0307;;;;N;;;;1E87;
+1E87;LATIN SMALL LETTER W WITH DOT ABOVE;Ll;0;L;0077 0307;;;;N;;;1E86;;1E86
+1E88;LATIN CAPITAL LETTER W WITH DOT BELOW;Lu;0;L;0057 0323;;;;N;;;;1E89;
+1E89;LATIN SMALL LETTER W WITH DOT BELOW;Ll;0;L;0077 0323;;;;N;;;1E88;;1E88
+1E8A;LATIN CAPITAL LETTER X WITH DOT ABOVE;Lu;0;L;0058 0307;;;;N;;;;1E8B;
+1E8B;LATIN SMALL LETTER X WITH DOT ABOVE;Ll;0;L;0078 0307;;;;N;;;1E8A;;1E8A
+1E8C;LATIN CAPITAL LETTER X WITH DIAERESIS;Lu;0;L;0058 0308;;;;N;;;;1E8D;
+1E8D;LATIN SMALL LETTER X WITH DIAERESIS;Ll;0;L;0078 0308;;;;N;;;1E8C;;1E8C
+1E8E;LATIN CAPITAL LETTER Y WITH DOT ABOVE;Lu;0;L;0059 0307;;;;N;;;;1E8F;
+1E8F;LATIN SMALL LETTER Y WITH DOT ABOVE;Ll;0;L;0079 0307;;;;N;;;1E8E;;1E8E
+1E90;LATIN CAPITAL LETTER Z WITH CIRCUMFLEX;Lu;0;L;005A 0302;;;;N;;;;1E91;
+1E91;LATIN SMALL LETTER Z WITH CIRCUMFLEX;Ll;0;L;007A 0302;;;;N;;;1E90;;1E90
+1E92;LATIN CAPITAL LETTER Z WITH DOT BELOW;Lu;0;L;005A 0323;;;;N;;;;1E93;
+1E93;LATIN SMALL LETTER Z WITH DOT BELOW;Ll;0;L;007A 0323;;;;N;;;1E92;;1E92
+1E94;LATIN CAPITAL LETTER Z WITH LINE BELOW;Lu;0;L;005A 0331;;;;N;;;;1E95;
+1E95;LATIN SMALL LETTER Z WITH LINE BELOW;Ll;0;L;007A 0331;;;;N;;;1E94;;1E94
+1E96;LATIN SMALL LETTER H WITH LINE BELOW;Ll;0;L;0068 0331;;;;N;;;;;
+1E97;LATIN SMALL LETTER T WITH DIAERESIS;Ll;0;L;0074 0308;;;;N;;;;;
+1E98;LATIN SMALL LETTER W WITH RING ABOVE;Ll;0;L;0077 030A;;;;N;;;;;
+1E99;LATIN SMALL LETTER Y WITH RING ABOVE;Ll;0;L;0079 030A;;;;N;;;;;
+1E9A;LATIN SMALL LETTER A WITH RIGHT HALF RING;Ll;0;L;<compat> 0061 02BE;;;;N;;;;;
+1E9B;LATIN SMALL LETTER LONG S WITH DOT ABOVE;Ll;0;L;017F 0307;;;;N;;;1E60;;1E60
+1EA0;LATIN CAPITAL LETTER A WITH DOT BELOW;Lu;0;L;0041 0323;;;;N;;;;1EA1;
+1EA1;LATIN SMALL LETTER A WITH DOT BELOW;Ll;0;L;0061 0323;;;;N;;;1EA0;;1EA0
+1EA2;LATIN CAPITAL LETTER A WITH HOOK ABOVE;Lu;0;L;0041 0309;;;;N;;;;1EA3;
+1EA3;LATIN SMALL LETTER A WITH HOOK ABOVE;Ll;0;L;0061 0309;;;;N;;;1EA2;;1EA2
+1EA4;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE;Lu;0;L;00C2 0301;;;;N;;;;1EA5;
+1EA5;LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE;Ll;0;L;00E2 0301;;;;N;;;1EA4;;1EA4
+1EA6;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE;Lu;0;L;00C2 0300;;;;N;;;;1EA7;
+1EA7;LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE;Ll;0;L;00E2 0300;;;;N;;;1EA6;;1EA6
+1EA8;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE;Lu;0;L;00C2 0309;;;;N;;;;1EA9;
+1EA9;LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE;Ll;0;L;00E2 0309;;;;N;;;1EA8;;1EA8
+1EAA;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE;Lu;0;L;00C2 0303;;;;N;;;;1EAB;
+1EAB;LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE;Ll;0;L;00E2 0303;;;;N;;;1EAA;;1EAA
+1EAC;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW;Lu;0;L;1EA0 0302;;;;N;;;;1EAD;
+1EAD;LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW;Ll;0;L;1EA1 0302;;;;N;;;1EAC;;1EAC
+1EAE;LATIN CAPITAL LETTER A WITH BREVE AND ACUTE;Lu;0;L;0102 0301;;;;N;;;;1EAF;
+1EAF;LATIN SMALL LETTER A WITH BREVE AND ACUTE;Ll;0;L;0103 0301;;;;N;;;1EAE;;1EAE
+1EB0;LATIN CAPITAL LETTER A WITH BREVE AND GRAVE;Lu;0;L;0102 0300;;;;N;;;;1EB1;
+1EB1;LATIN SMALL LETTER A WITH BREVE AND GRAVE;Ll;0;L;0103 0300;;;;N;;;1EB0;;1EB0
+1EB2;LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE;Lu;0;L;0102 0309;;;;N;;;;1EB3;
+1EB3;LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE;Ll;0;L;0103 0309;;;;N;;;1EB2;;1EB2
+1EB4;LATIN CAPITAL LETTER A WITH BREVE AND TILDE;Lu;0;L;0102 0303;;;;N;;;;1EB5;
+1EB5;LATIN SMALL LETTER A WITH BREVE AND TILDE;Ll;0;L;0103 0303;;;;N;;;1EB4;;1EB4
+1EB6;LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW;Lu;0;L;1EA0 0306;;;;N;;;;1EB7;
+1EB7;LATIN SMALL LETTER A WITH BREVE AND DOT BELOW;Ll;0;L;1EA1 0306;;;;N;;;1EB6;;1EB6
+1EB8;LATIN CAPITAL LETTER E WITH DOT BELOW;Lu;0;L;0045 0323;;;;N;;;;1EB9;
+1EB9;LATIN SMALL LETTER E WITH DOT BELOW;Ll;0;L;0065 0323;;;;N;;;1EB8;;1EB8
+1EBA;LATIN CAPITAL LETTER E WITH HOOK ABOVE;Lu;0;L;0045 0309;;;;N;;;;1EBB;
+1EBB;LATIN SMALL LETTER E WITH HOOK ABOVE;Ll;0;L;0065 0309;;;;N;;;1EBA;;1EBA
+1EBC;LATIN CAPITAL LETTER E WITH TILDE;Lu;0;L;0045 0303;;;;N;;;;1EBD;
+1EBD;LATIN SMALL LETTER E WITH TILDE;Ll;0;L;0065 0303;;;;N;;;1EBC;;1EBC
+1EBE;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE;Lu;0;L;00CA 0301;;;;N;;;;1EBF;
+1EBF;LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE;Ll;0;L;00EA 0301;;;;N;;;1EBE;;1EBE
+1EC0;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE;Lu;0;L;00CA 0300;;;;N;;;;1EC1;
+1EC1;LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE;Ll;0;L;00EA 0300;;;;N;;;1EC0;;1EC0
+1EC2;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE;Lu;0;L;00CA 0309;;;;N;;;;1EC3;
+1EC3;LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE;Ll;0;L;00EA 0309;;;;N;;;1EC2;;1EC2
+1EC4;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE;Lu;0;L;00CA 0303;;;;N;;;;1EC5;
+1EC5;LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE;Ll;0;L;00EA 0303;;;;N;;;1EC4;;1EC4
+1EC6;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW;Lu;0;L;1EB8 0302;;;;N;;;;1EC7;
+1EC7;LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW;Ll;0;L;1EB9 0302;;;;N;;;1EC6;;1EC6
+1EC8;LATIN CAPITAL LETTER I WITH HOOK ABOVE;Lu;0;L;0049 0309;;;;N;;;;1EC9;
+1EC9;LATIN SMALL LETTER I WITH HOOK ABOVE;Ll;0;L;0069 0309;;;;N;;;1EC8;;1EC8
+1ECA;LATIN CAPITAL LETTER I WITH DOT BELOW;Lu;0;L;0049 0323;;;;N;;;;1ECB;
+1ECB;LATIN SMALL LETTER I WITH DOT BELOW;Ll;0;L;0069 0323;;;;N;;;1ECA;;1ECA
+1ECC;LATIN CAPITAL LETTER O WITH DOT BELOW;Lu;0;L;004F 0323;;;;N;;;;1ECD;
+1ECD;LATIN SMALL LETTER O WITH DOT BELOW;Ll;0;L;006F 0323;;;;N;;;1ECC;;1ECC
+1ECE;LATIN CAPITAL LETTER O WITH HOOK ABOVE;Lu;0;L;004F 0309;;;;N;;;;1ECF;
+1ECF;LATIN SMALL LETTER O WITH HOOK ABOVE;Ll;0;L;006F 0309;;;;N;;;1ECE;;1ECE
+1ED0;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE;Lu;0;L;00D4 0301;;;;N;;;;1ED1;
+1ED1;LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE;Ll;0;L;00F4 0301;;;;N;;;1ED0;;1ED0
+1ED2;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE;Lu;0;L;00D4 0300;;;;N;;;;1ED3;
+1ED3;LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE;Ll;0;L;00F4 0300;;;;N;;;1ED2;;1ED2
+1ED4;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE;Lu;0;L;00D4 0309;;;;N;;;;1ED5;
+1ED5;LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE;Ll;0;L;00F4 0309;;;;N;;;1ED4;;1ED4
+1ED6;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE;Lu;0;L;00D4 0303;;;;N;;;;1ED7;
+1ED7;LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE;Ll;0;L;00F4 0303;;;;N;;;1ED6;;1ED6
+1ED8;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW;Lu;0;L;1ECC 0302;;;;N;;;;1ED9;
+1ED9;LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW;Ll;0;L;1ECD 0302;;;;N;;;1ED8;;1ED8
+1EDA;LATIN CAPITAL LETTER O WITH HORN AND ACUTE;Lu;0;L;01A0 0301;;;;N;;;;1EDB;
+1EDB;LATIN SMALL LETTER O WITH HORN AND ACUTE;Ll;0;L;01A1 0301;;;;N;;;1EDA;;1EDA
+1EDC;LATIN CAPITAL LETTER O WITH HORN AND GRAVE;Lu;0;L;01A0 0300;;;;N;;;;1EDD;
+1EDD;LATIN SMALL LETTER O WITH HORN AND GRAVE;Ll;0;L;01A1 0300;;;;N;;;1EDC;;1EDC
+1EDE;LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE;Lu;0;L;01A0 0309;;;;N;;;;1EDF;
+1EDF;LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE;Ll;0;L;01A1 0309;;;;N;;;1EDE;;1EDE
+1EE0;LATIN CAPITAL LETTER O WITH HORN AND TILDE;Lu;0;L;01A0 0303;;;;N;;;;1EE1;
+1EE1;LATIN SMALL LETTER O WITH HORN AND TILDE;Ll;0;L;01A1 0303;;;;N;;;1EE0;;1EE0
+1EE2;LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW;Lu;0;L;01A0 0323;;;;N;;;;1EE3;
+1EE3;LATIN SMALL LETTER O WITH HORN AND DOT BELOW;Ll;0;L;01A1 0323;;;;N;;;1EE2;;1EE2
+1EE4;LATIN CAPITAL LETTER U WITH DOT BELOW;Lu;0;L;0055 0323;;;;N;;;;1EE5;
+1EE5;LATIN SMALL LETTER U WITH DOT BELOW;Ll;0;L;0075 0323;;;;N;;;1EE4;;1EE4
+1EE6;LATIN CAPITAL LETTER U WITH HOOK ABOVE;Lu;0;L;0055 0309;;;;N;;;;1EE7;
+1EE7;LATIN SMALL LETTER U WITH HOOK ABOVE;Ll;0;L;0075 0309;;;;N;;;1EE6;;1EE6
+1EE8;LATIN CAPITAL LETTER U WITH HORN AND ACUTE;Lu;0;L;01AF 0301;;;;N;;;;1EE9;
+1EE9;LATIN SMALL LETTER U WITH HORN AND ACUTE;Ll;0;L;01B0 0301;;;;N;;;1EE8;;1EE8
+1EEA;LATIN CAPITAL LETTER U WITH HORN AND GRAVE;Lu;0;L;01AF 0300;;;;N;;;;1EEB;
+1EEB;LATIN SMALL LETTER U WITH HORN AND GRAVE;Ll;0;L;01B0 0300;;;;N;;;1EEA;;1EEA
+1EEC;LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE;Lu;0;L;01AF 0309;;;;N;;;;1EED;
+1EED;LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE;Ll;0;L;01B0 0309;;;;N;;;1EEC;;1EEC
+1EEE;LATIN CAPITAL LETTER U WITH HORN AND TILDE;Lu;0;L;01AF 0303;;;;N;;;;1EEF;
+1EEF;LATIN SMALL LETTER U WITH HORN AND TILDE;Ll;0;L;01B0 0303;;;;N;;;1EEE;;1EEE
+1EF0;LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW;Lu;0;L;01AF 0323;;;;N;;;;1EF1;
+1EF1;LATIN SMALL LETTER U WITH HORN AND DOT BELOW;Ll;0;L;01B0 0323;;;;N;;;1EF0;;1EF0
+1EF2;LATIN CAPITAL LETTER Y WITH GRAVE;Lu;0;L;0059 0300;;;;N;;;;1EF3;
+1EF3;LATIN SMALL LETTER Y WITH GRAVE;Ll;0;L;0079 0300;;;;N;;;1EF2;;1EF2
+1EF4;LATIN CAPITAL LETTER Y WITH DOT BELOW;Lu;0;L;0059 0323;;;;N;;;;1EF5;
+1EF5;LATIN SMALL LETTER Y WITH DOT BELOW;Ll;0;L;0079 0323;;;;N;;;1EF4;;1EF4
+1EF6;LATIN CAPITAL LETTER Y WITH HOOK ABOVE;Lu;0;L;0059 0309;;;;N;;;;1EF7;
+1EF7;LATIN SMALL LETTER Y WITH HOOK ABOVE;Ll;0;L;0079 0309;;;;N;;;1EF6;;1EF6
+1EF8;LATIN CAPITAL LETTER Y WITH TILDE;Lu;0;L;0059 0303;;;;N;;;;1EF9;
+1EF9;LATIN SMALL LETTER Y WITH TILDE;Ll;0;L;0079 0303;;;;N;;;1EF8;;1EF8
+1F00;GREEK SMALL LETTER ALPHA WITH PSILI;Ll;0;L;03B1 0313;;;;N;;;1F08;;1F08
+1F01;GREEK SMALL LETTER ALPHA WITH DASIA;Ll;0;L;03B1 0314;;;;N;;;1F09;;1F09
+1F02;GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA;Ll;0;L;1F00 0300;;;;N;;;1F0A;;1F0A
+1F03;GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA;Ll;0;L;1F01 0300;;;;N;;;1F0B;;1F0B
+1F04;GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA;Ll;0;L;1F00 0301;;;;N;;;1F0C;;1F0C
+1F05;GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA;Ll;0;L;1F01 0301;;;;N;;;1F0D;;1F0D
+1F06;GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI;Ll;0;L;1F00 0342;;;;N;;;1F0E;;1F0E
+1F07;GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI;Ll;0;L;1F01 0342;;;;N;;;1F0F;;1F0F
+1F08;GREEK CAPITAL LETTER ALPHA WITH PSILI;Lu;0;L;0391 0313;;;;N;;;;1F00;
+1F09;GREEK CAPITAL LETTER ALPHA WITH DASIA;Lu;0;L;0391 0314;;;;N;;;;1F01;
+1F0A;GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA;Lu;0;L;1F08 0300;;;;N;;;;1F02;
+1F0B;GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA;Lu;0;L;1F09 0300;;;;N;;;;1F03;
+1F0C;GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA;Lu;0;L;1F08 0301;;;;N;;;;1F04;
+1F0D;GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA;Lu;0;L;1F09 0301;;;;N;;;;1F05;
+1F0E;GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI;Lu;0;L;1F08 0342;;;;N;;;;1F06;
+1F0F;GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI;Lu;0;L;1F09 0342;;;;N;;;;1F07;
+1F10;GREEK SMALL LETTER EPSILON WITH PSILI;Ll;0;L;03B5 0313;;;;N;;;1F18;;1F18
+1F11;GREEK SMALL LETTER EPSILON WITH DASIA;Ll;0;L;03B5 0314;;;;N;;;1F19;;1F19
+1F12;GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA;Ll;0;L;1F10 0300;;;;N;;;1F1A;;1F1A
+1F13;GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA;Ll;0;L;1F11 0300;;;;N;;;1F1B;;1F1B
+1F14;GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA;Ll;0;L;1F10 0301;;;;N;;;1F1C;;1F1C
+1F15;GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA;Ll;0;L;1F11 0301;;;;N;;;1F1D;;1F1D
+1F18;GREEK CAPITAL LETTER EPSILON WITH PSILI;Lu;0;L;0395 0313;;;;N;;;;1F10;
+1F19;GREEK CAPITAL LETTER EPSILON WITH DASIA;Lu;0;L;0395 0314;;;;N;;;;1F11;
+1F1A;GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA;Lu;0;L;1F18 0300;;;;N;;;;1F12;
+1F1B;GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA;Lu;0;L;1F19 0300;;;;N;;;;1F13;
+1F1C;GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA;Lu;0;L;1F18 0301;;;;N;;;;1F14;
+1F1D;GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA;Lu;0;L;1F19 0301;;;;N;;;;1F15;
+1F20;GREEK SMALL LETTER ETA WITH PSILI;Ll;0;L;03B7 0313;;;;N;;;1F28;;1F28
+1F21;GREEK SMALL LETTER ETA WITH DASIA;Ll;0;L;03B7 0314;;;;N;;;1F29;;1F29
+1F22;GREEK SMALL LETTER ETA WITH PSILI AND VARIA;Ll;0;L;1F20 0300;;;;N;;;1F2A;;1F2A
+1F23;GREEK SMALL LETTER ETA WITH DASIA AND VARIA;Ll;0;L;1F21 0300;;;;N;;;1F2B;;1F2B
+1F24;GREEK SMALL LETTER ETA WITH PSILI AND OXIA;Ll;0;L;1F20 0301;;;;N;;;1F2C;;1F2C
+1F25;GREEK SMALL LETTER ETA WITH DASIA AND OXIA;Ll;0;L;1F21 0301;;;;N;;;1F2D;;1F2D
+1F26;GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI;Ll;0;L;1F20 0342;;;;N;;;1F2E;;1F2E
+1F27;GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI;Ll;0;L;1F21 0342;;;;N;;;1F2F;;1F2F
+1F28;GREEK CAPITAL LETTER ETA WITH PSILI;Lu;0;L;0397 0313;;;;N;;;;1F20;
+1F29;GREEK CAPITAL LETTER ETA WITH DASIA;Lu;0;L;0397 0314;;;;N;;;;1F21;
+1F2A;GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA;Lu;0;L;1F28 0300;;;;N;;;;1F22;
+1F2B;GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA;Lu;0;L;1F29 0300;;;;N;;;;1F23;
+1F2C;GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA;Lu;0;L;1F28 0301;;;;N;;;;1F24;
+1F2D;GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA;Lu;0;L;1F29 0301;;;;N;;;;1F25;
+1F2E;GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI;Lu;0;L;1F28 0342;;;;N;;;;1F26;
+1F2F;GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI;Lu;0;L;1F29 0342;;;;N;;;;1F27;
+1F30;GREEK SMALL LETTER IOTA WITH PSILI;Ll;0;L;03B9 0313;;;;N;;;1F38;;1F38
+1F31;GREEK SMALL LETTER IOTA WITH DASIA;Ll;0;L;03B9 0314;;;;N;;;1F39;;1F39
+1F32;GREEK SMALL LETTER IOTA WITH PSILI AND VARIA;Ll;0;L;1F30 0300;;;;N;;;1F3A;;1F3A
+1F33;GREEK SMALL LETTER IOTA WITH DASIA AND VARIA;Ll;0;L;1F31 0300;;;;N;;;1F3B;;1F3B
+1F34;GREEK SMALL LETTER IOTA WITH PSILI AND OXIA;Ll;0;L;1F30 0301;;;;N;;;1F3C;;1F3C
+1F35;GREEK SMALL LETTER IOTA WITH DASIA AND OXIA;Ll;0;L;1F31 0301;;;;N;;;1F3D;;1F3D
+1F36;GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI;Ll;0;L;1F30 0342;;;;N;;;1F3E;;1F3E
+1F37;GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI;Ll;0;L;1F31 0342;;;;N;;;1F3F;;1F3F
+1F38;GREEK CAPITAL LETTER IOTA WITH PSILI;Lu;0;L;0399 0313;;;;N;;;;1F30;
+1F39;GREEK CAPITAL LETTER IOTA WITH DASIA;Lu;0;L;0399 0314;;;;N;;;;1F31;
+1F3A;GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA;Lu;0;L;1F38 0300;;;;N;;;;1F32;
+1F3B;GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA;Lu;0;L;1F39 0300;;;;N;;;;1F33;
+1F3C;GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA;Lu;0;L;1F38 0301;;;;N;;;;1F34;
+1F3D;GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA;Lu;0;L;1F39 0301;;;;N;;;;1F35;
+1F3E;GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI;Lu;0;L;1F38 0342;;;;N;;;;1F36;
+1F3F;GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI;Lu;0;L;1F39 0342;;;;N;;;;1F37;
+1F40;GREEK SMALL LETTER OMICRON WITH PSILI;Ll;0;L;03BF 0313;;;;N;;;1F48;;1F48
+1F41;GREEK SMALL LETTER OMICRON WITH DASIA;Ll;0;L;03BF 0314;;;;N;;;1F49;;1F49
+1F42;GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA;Ll;0;L;1F40 0300;;;;N;;;1F4A;;1F4A
+1F43;GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA;Ll;0;L;1F41 0300;;;;N;;;1F4B;;1F4B
+1F44;GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA;Ll;0;L;1F40 0301;;;;N;;;1F4C;;1F4C
+1F45;GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA;Ll;0;L;1F41 0301;;;;N;;;1F4D;;1F4D
+1F48;GREEK CAPITAL LETTER OMICRON WITH PSILI;Lu;0;L;039F 0313;;;;N;;;;1F40;
+1F49;GREEK CAPITAL LETTER OMICRON WITH DASIA;Lu;0;L;039F 0314;;;;N;;;;1F41;
+1F4A;GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA;Lu;0;L;1F48 0300;;;;N;;;;1F42;
+1F4B;GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA;Lu;0;L;1F49 0300;;;;N;;;;1F43;
+1F4C;GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA;Lu;0;L;1F48 0301;;;;N;;;;1F44;
+1F4D;GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA;Lu;0;L;1F49 0301;;;;N;;;;1F45;
+1F50;GREEK SMALL LETTER UPSILON WITH PSILI;Ll;0;L;03C5 0313;;;;N;;;;;
+1F51;GREEK SMALL LETTER UPSILON WITH DASIA;Ll;0;L;03C5 0314;;;;N;;;1F59;;1F59
+1F52;GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA;Ll;0;L;1F50 0300;;;;N;;;;;
+1F53;GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA;Ll;0;L;1F51 0300;;;;N;;;1F5B;;1F5B
+1F54;GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA;Ll;0;L;1F50 0301;;;;N;;;;;
+1F55;GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA;Ll;0;L;1F51 0301;;;;N;;;1F5D;;1F5D
+1F56;GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI;Ll;0;L;1F50 0342;;;;N;;;;;
+1F57;GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI;Ll;0;L;1F51 0342;;;;N;;;1F5F;;1F5F
+1F59;GREEK CAPITAL LETTER UPSILON WITH DASIA;Lu;0;L;03A5 0314;;;;N;;;;1F51;
+1F5B;GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA;Lu;0;L;1F59 0300;;;;N;;;;1F53;
+1F5D;GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA;Lu;0;L;1F59 0301;;;;N;;;;1F55;
+1F5F;GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI;Lu;0;L;1F59 0342;;;;N;;;;1F57;
+1F60;GREEK SMALL LETTER OMEGA WITH PSILI;Ll;0;L;03C9 0313;;;;N;;;1F68;;1F68
+1F61;GREEK SMALL LETTER OMEGA WITH DASIA;Ll;0;L;03C9 0314;;;;N;;;1F69;;1F69
+1F62;GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA;Ll;0;L;1F60 0300;;;;N;;;1F6A;;1F6A
+1F63;GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA;Ll;0;L;1F61 0300;;;;N;;;1F6B;;1F6B
+1F64;GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA;Ll;0;L;1F60 0301;;;;N;;;1F6C;;1F6C
+1F65;GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA;Ll;0;L;1F61 0301;;;;N;;;1F6D;;1F6D
+1F66;GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI;Ll;0;L;1F60 0342;;;;N;;;1F6E;;1F6E
+1F67;GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI;Ll;0;L;1F61 0342;;;;N;;;1F6F;;1F6F
+1F68;GREEK CAPITAL LETTER OMEGA WITH PSILI;Lu;0;L;03A9 0313;;;;N;;;;1F60;
+1F69;GREEK CAPITAL LETTER OMEGA WITH DASIA;Lu;0;L;03A9 0314;;;;N;;;;1F61;
+1F6A;GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA;Lu;0;L;1F68 0300;;;;N;;;;1F62;
+1F6B;GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA;Lu;0;L;1F69 0300;;;;N;;;;1F63;
+1F6C;GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA;Lu;0;L;1F68 0301;;;;N;;;;1F64;
+1F6D;GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA;Lu;0;L;1F69 0301;;;;N;;;;1F65;
+1F6E;GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI;Lu;0;L;1F68 0342;;;;N;;;;1F66;
+1F6F;GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI;Lu;0;L;1F69 0342;;;;N;;;;1F67;
+1F70;GREEK SMALL LETTER ALPHA WITH VARIA;Ll;0;L;03B1 0300;;;;N;;;1FBA;;1FBA
+1F71;GREEK SMALL LETTER ALPHA WITH OXIA;Ll;0;L;03AC;;;;N;;;1FBB;;1FBB
+1F72;GREEK SMALL LETTER EPSILON WITH VARIA;Ll;0;L;03B5 0300;;;;N;;;1FC8;;1FC8
+1F73;GREEK SMALL LETTER EPSILON WITH OXIA;Ll;0;L;03AD;;;;N;;;1FC9;;1FC9
+1F74;GREEK SMALL LETTER ETA WITH VARIA;Ll;0;L;03B7 0300;;;;N;;;1FCA;;1FCA
+1F75;GREEK SMALL LETTER ETA WITH OXIA;Ll;0;L;03AE;;;;N;;;1FCB;;1FCB
+1F76;GREEK SMALL LETTER IOTA WITH VARIA;Ll;0;L;03B9 0300;;;;N;;;1FDA;;1FDA
+1F77;GREEK SMALL LETTER IOTA WITH OXIA;Ll;0;L;03AF;;;;N;;;1FDB;;1FDB
+1F78;GREEK SMALL LETTER OMICRON WITH VARIA;Ll;0;L;03BF 0300;;;;N;;;1FF8;;1FF8
+1F79;GREEK SMALL LETTER OMICRON WITH OXIA;Ll;0;L;03CC;;;;N;;;1FF9;;1FF9
+1F7A;GREEK SMALL LETTER UPSILON WITH VARIA;Ll;0;L;03C5 0300;;;;N;;;1FEA;;1FEA
+1F7B;GREEK SMALL LETTER UPSILON WITH OXIA;Ll;0;L;03CD;;;;N;;;1FEB;;1FEB
+1F7C;GREEK SMALL LETTER OMEGA WITH VARIA;Ll;0;L;03C9 0300;;;;N;;;1FFA;;1FFA
+1F7D;GREEK SMALL LETTER OMEGA WITH OXIA;Ll;0;L;03CE;;;;N;;;1FFB;;1FFB
+1F80;GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI;Ll;0;L;1F00 0345;;;;N;;;1F88;;1F88
+1F81;GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI;Ll;0;L;1F01 0345;;;;N;;;1F89;;1F89
+1F82;GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F02 0345;;;;N;;;1F8A;;1F8A
+1F83;GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F03 0345;;;;N;;;1F8B;;1F8B
+1F84;GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F04 0345;;;;N;;;1F8C;;1F8C
+1F85;GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F05 0345;;;;N;;;1F8D;;1F8D
+1F86;GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F06 0345;;;;N;;;1F8E;;1F8E
+1F87;GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F07 0345;;;;N;;;1F8F;;1F8F
+1F88;GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI;Lt;0;L;1F08 0345;;;;N;;;;1F80;
+1F89;GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI;Lt;0;L;1F09 0345;;;;N;;;;1F81;
+1F8A;GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F0A 0345;;;;N;;;;1F82;
+1F8B;GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F0B 0345;;;;N;;;;1F83;
+1F8C;GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F0C 0345;;;;N;;;;1F84;
+1F8D;GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F0D 0345;;;;N;;;;1F85;
+1F8E;GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F0E 0345;;;;N;;;;1F86;
+1F8F;GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F0F 0345;;;;N;;;;1F87;
+1F90;GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI;Ll;0;L;1F20 0345;;;;N;;;1F98;;1F98
+1F91;GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI;Ll;0;L;1F21 0345;;;;N;;;1F99;;1F99
+1F92;GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F22 0345;;;;N;;;1F9A;;1F9A
+1F93;GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F23 0345;;;;N;;;1F9B;;1F9B
+1F94;GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F24 0345;;;;N;;;1F9C;;1F9C
+1F95;GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F25 0345;;;;N;;;1F9D;;1F9D
+1F96;GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F26 0345;;;;N;;;1F9E;;1F9E
+1F97;GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F27 0345;;;;N;;;1F9F;;1F9F
+1F98;GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI;Lt;0;L;1F28 0345;;;;N;;;;1F90;
+1F99;GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI;Lt;0;L;1F29 0345;;;;N;;;;1F91;
+1F9A;GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F2A 0345;;;;N;;;;1F92;
+1F9B;GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F2B 0345;;;;N;;;;1F93;
+1F9C;GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F2C 0345;;;;N;;;;1F94;
+1F9D;GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F2D 0345;;;;N;;;;1F95;
+1F9E;GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F2E 0345;;;;N;;;;1F96;
+1F9F;GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F2F 0345;;;;N;;;;1F97;
+1FA0;GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI;Ll;0;L;1F60 0345;;;;N;;;1FA8;;1FA8
+1FA1;GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI;Ll;0;L;1F61 0345;;;;N;;;1FA9;;1FA9
+1FA2;GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F62 0345;;;;N;;;1FAA;;1FAA
+1FA3;GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F63 0345;;;;N;;;1FAB;;1FAB
+1FA4;GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F64 0345;;;;N;;;1FAC;;1FAC
+1FA5;GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F65 0345;;;;N;;;1FAD;;1FAD
+1FA6;GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F66 0345;;;;N;;;1FAE;;1FAE
+1FA7;GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F67 0345;;;;N;;;1FAF;;1FAF
+1FA8;GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI;Lt;0;L;1F68 0345;;;;N;;;;1FA0;
+1FA9;GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI;Lt;0;L;1F69 0345;;;;N;;;;1FA1;
+1FAA;GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F6A 0345;;;;N;;;;1FA2;
+1FAB;GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F6B 0345;;;;N;;;;1FA3;
+1FAC;GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F6C 0345;;;;N;;;;1FA4;
+1FAD;GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F6D 0345;;;;N;;;;1FA5;
+1FAE;GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F6E 0345;;;;N;;;;1FA6;
+1FAF;GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F6F 0345;;;;N;;;;1FA7;
+1FB0;GREEK SMALL LETTER ALPHA WITH VRACHY;Ll;0;L;03B1 0306;;;;N;;;1FB8;;1FB8
+1FB1;GREEK SMALL LETTER ALPHA WITH MACRON;Ll;0;L;03B1 0304;;;;N;;;1FB9;;1FB9
+1FB2;GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI;Ll;0;L;1F70 0345;;;;N;;;;;
+1FB3;GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI;Ll;0;L;03B1 0345;;;;N;;;1FBC;;1FBC
+1FB4;GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI;Ll;0;L;03AC 0345;;;;N;;;;;
+1FB6;GREEK SMALL LETTER ALPHA WITH PERISPOMENI;Ll;0;L;03B1 0342;;;;N;;;;;
+1FB7;GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1FB6 0345;;;;N;;;;;
+1FB8;GREEK CAPITAL LETTER ALPHA WITH VRACHY;Lu;0;L;0391 0306;;;;N;;;;1FB0;
+1FB9;GREEK CAPITAL LETTER ALPHA WITH MACRON;Lu;0;L;0391 0304;;;;N;;;;1FB1;
+1FBA;GREEK CAPITAL LETTER ALPHA WITH VARIA;Lu;0;L;0391 0300;;;;N;;;;1F70;
+1FBB;GREEK CAPITAL LETTER ALPHA WITH OXIA;Lu;0;L;0386;;;;N;;;;1F71;
+1FBC;GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI;Lt;0;L;0391 0345;;;;N;;;;1FB3;
+1FBD;GREEK KORONIS;Sk;0;ON;<compat> 0020 0313;;;;N;;;;;
+1FBE;GREEK PROSGEGRAMMENI;Ll;0;L;03B9;;;;N;;;0399;;0399
+1FBF;GREEK PSILI;Sk;0;ON;<compat> 0020 0313;;;;N;;;;;
+1FC0;GREEK PERISPOMENI;Sk;0;ON;<compat> 0020 0342;;;;N;;;;;
+1FC1;GREEK DIALYTIKA AND PERISPOMENI;Sk;0;ON;00A8 0342;;;;N;;;;;
+1FC2;GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI;Ll;0;L;1F74 0345;;;;N;;;;;
+1FC3;GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI;Ll;0;L;03B7 0345;;;;N;;;1FCC;;1FCC
+1FC4;GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI;Ll;0;L;03AE 0345;;;;N;;;;;
+1FC6;GREEK SMALL LETTER ETA WITH PERISPOMENI;Ll;0;L;03B7 0342;;;;N;;;;;
+1FC7;GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1FC6 0345;;;;N;;;;;
+1FC8;GREEK CAPITAL LETTER EPSILON WITH VARIA;Lu;0;L;0395 0300;;;;N;;;;1F72;
+1FC9;GREEK CAPITAL LETTER EPSILON WITH OXIA;Lu;0;L;0388;;;;N;;;;1F73;
+1FCA;GREEK CAPITAL LETTER ETA WITH VARIA;Lu;0;L;0397 0300;;;;N;;;;1F74;
+1FCB;GREEK CAPITAL LETTER ETA WITH OXIA;Lu;0;L;0389;;;;N;;;;1F75;
+1FCC;GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI;Lt;0;L;0397 0345;;;;N;;;;1FC3;
+1FCD;GREEK PSILI AND VARIA;Sk;0;ON;1FBF 0300;;;;N;;;;;
+1FCE;GREEK PSILI AND OXIA;Sk;0;ON;1FBF 0301;;;;N;;;;;
+1FCF;GREEK PSILI AND PERISPOMENI;Sk;0;ON;1FBF 0342;;;;N;;;;;
+1FD0;GREEK SMALL LETTER IOTA WITH VRACHY;Ll;0;L;03B9 0306;;;;N;;;1FD8;;1FD8
+1FD1;GREEK SMALL LETTER IOTA WITH MACRON;Ll;0;L;03B9 0304;;;;N;;;1FD9;;1FD9
+1FD2;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA;Ll;0;L;03CA 0300;;;;N;;;;;
+1FD3;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA;Ll;0;L;0390;;;;N;;;;;
+1FD6;GREEK SMALL LETTER IOTA WITH PERISPOMENI;Ll;0;L;03B9 0342;;;;N;;;;;
+1FD7;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI;Ll;0;L;03CA 0342;;;;N;;;;;
+1FD8;GREEK CAPITAL LETTER IOTA WITH VRACHY;Lu;0;L;0399 0306;;;;N;;;;1FD0;
+1FD9;GREEK CAPITAL LETTER IOTA WITH MACRON;Lu;0;L;0399 0304;;;;N;;;;1FD1;
+1FDA;GREEK CAPITAL LETTER IOTA WITH VARIA;Lu;0;L;0399 0300;;;;N;;;;1F76;
+1FDB;GREEK CAPITAL LETTER IOTA WITH OXIA;Lu;0;L;038A;;;;N;;;;1F77;
+1FDD;GREEK DASIA AND VARIA;Sk;0;ON;1FFE 0300;;;;N;;;;;
+1FDE;GREEK DASIA AND OXIA;Sk;0;ON;1FFE 0301;;;;N;;;;;
+1FDF;GREEK DASIA AND PERISPOMENI;Sk;0;ON;1FFE 0342;;;;N;;;;;
+1FE0;GREEK SMALL LETTER UPSILON WITH VRACHY;Ll;0;L;03C5 0306;;;;N;;;1FE8;;1FE8
+1FE1;GREEK SMALL LETTER UPSILON WITH MACRON;Ll;0;L;03C5 0304;;;;N;;;1FE9;;1FE9
+1FE2;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA;Ll;0;L;03CB 0300;;;;N;;;;;
+1FE3;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA;Ll;0;L;03B0;;;;N;;;;;
+1FE4;GREEK SMALL LETTER RHO WITH PSILI;Ll;0;L;03C1 0313;;;;N;;;;;
+1FE5;GREEK SMALL LETTER RHO WITH DASIA;Ll;0;L;03C1 0314;;;;N;;;1FEC;;1FEC
+1FE6;GREEK SMALL LETTER UPSILON WITH PERISPOMENI;Ll;0;L;03C5 0342;;;;N;;;;;
+1FE7;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI;Ll;0;L;03CB 0342;;;;N;;;;;
+1FE8;GREEK CAPITAL LETTER UPSILON WITH VRACHY;Lu;0;L;03A5 0306;;;;N;;;;1FE0;
+1FE9;GREEK CAPITAL LETTER UPSILON WITH MACRON;Lu;0;L;03A5 0304;;;;N;;;;1FE1;
+1FEA;GREEK CAPITAL LETTER UPSILON WITH VARIA;Lu;0;L;03A5 0300;;;;N;;;;1F7A;
+1FEB;GREEK CAPITAL LETTER UPSILON WITH OXIA;Lu;0;L;038E;;;;N;;;;1F7B;
+1FEC;GREEK CAPITAL LETTER RHO WITH DASIA;Lu;0;L;03A1 0314;;;;N;;;;1FE5;
+1FED;GREEK DIALYTIKA AND VARIA;Sk;0;ON;00A8 0300;;;;N;;;;;
+1FEE;GREEK DIALYTIKA AND OXIA;Sk;0;ON;0385;;;;N;;;;;
+1FEF;GREEK VARIA;Sk;0;ON;0060;;;;N;;;;;
+1FF2;GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI;Ll;0;L;1F7C 0345;;;;N;;;;;
+1FF3;GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI;Ll;0;L;03C9 0345;;;;N;;;1FFC;;1FFC
+1FF4;GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI;Ll;0;L;03CE 0345;;;;N;;;;;
+1FF6;GREEK SMALL LETTER OMEGA WITH PERISPOMENI;Ll;0;L;03C9 0342;;;;N;;;;;
+1FF7;GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1FF6 0345;;;;N;;;;;
+1FF8;GREEK CAPITAL LETTER OMICRON WITH VARIA;Lu;0;L;039F 0300;;;;N;;;;1F78;
+1FF9;GREEK CAPITAL LETTER OMICRON WITH OXIA;Lu;0;L;038C;;;;N;;;;1F79;
+1FFA;GREEK CAPITAL LETTER OMEGA WITH VARIA;Lu;0;L;03A9 0300;;;;N;;;;1F7C;
+1FFB;GREEK CAPITAL LETTER OMEGA WITH OXIA;Lu;0;L;038F;;;;N;;;;1F7D;
+1FFC;GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI;Lt;0;L;03A9 0345;;;;N;;;;1FF3;
+1FFD;GREEK OXIA;Sk;0;ON;00B4;;;;N;;;;;
+1FFE;GREEK DASIA;Sk;0;ON;<compat> 0020 0314;;;;N;;;;;
+2000;EN QUAD;Zs;0;WS;2002;;;;N;;;;;
+2001;EM QUAD;Zs;0;WS;2003;;;;N;;;;;
+2002;EN SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;;
+2003;EM SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;;
+2004;THREE-PER-EM SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;;
+2005;FOUR-PER-EM SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;;
+2006;SIX-PER-EM SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;;
+2007;FIGURE SPACE;Zs;0;WS;<noBreak> 0020;;;;N;;;;;
+2008;PUNCTUATION SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;;
+2009;THIN SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;;
+200A;HAIR SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;;
+200B;ZERO WIDTH SPACE;Cf;0;BN;;;;;N;;;;;
+200C;ZERO WIDTH NON-JOINER;Cf;0;BN;;;;;N;;;;;
+200D;ZERO WIDTH JOINER;Cf;0;BN;;;;;N;;;;;
+200E;LEFT-TO-RIGHT MARK;Cf;0;L;;;;;N;;;;;
+200F;RIGHT-TO-LEFT MARK;Cf;0;R;;;;;N;;;;;
+2010;HYPHEN;Pd;0;ON;;;;;N;;;;;
+2011;NON-BREAKING HYPHEN;Pd;0;ON;<noBreak> 2010;;;;N;;;;;
+2012;FIGURE DASH;Pd;0;ON;;;;;N;;;;;
+2013;EN DASH;Pd;0;ON;;;;;N;;;;;
+2014;EM DASH;Pd;0;ON;;;;;N;;;;;
+2015;HORIZONTAL BAR;Pd;0;ON;;;;;N;QUOTATION DASH;;;;
+2016;DOUBLE VERTICAL LINE;Po;0;ON;;;;;N;DOUBLE VERTICAL BAR;;;;
+2017;DOUBLE LOW LINE;Po;0;ON;<compat> 0020 0333;;;;N;SPACING DOUBLE UNDERSCORE;;;;
+2018;LEFT SINGLE QUOTATION MARK;Pi;0;ON;;;;;Y;SINGLE TURNED COMMA QUOTATION MARK;;;;
+2019;RIGHT SINGLE QUOTATION MARK;Pf;0;ON;;;;;Y;SINGLE COMMA QUOTATION MARK;;;;
+201A;SINGLE LOW-9 QUOTATION MARK;Ps;0;ON;;;;;Y;LOW SINGLE COMMA QUOTATION MARK;;;;
+201B;SINGLE HIGH-REVERSED-9 QUOTATION MARK;Pi;0;ON;;;;;Y;SINGLE REVERSED COMMA QUOTATION MARK;;;;
+201C;LEFT DOUBLE QUOTATION MARK;Pi;0;ON;;;;;Y;DOUBLE TURNED COMMA QUOTATION MARK;;;;
+201D;RIGHT DOUBLE QUOTATION MARK;Pf;0;ON;;;;;Y;DOUBLE COMMA QUOTATION MARK;;;;
+201E;DOUBLE LOW-9 QUOTATION MARK;Ps;0;ON;;;;;Y;LOW DOUBLE COMMA QUOTATION MARK;;;;
+201F;DOUBLE HIGH-REVERSED-9 QUOTATION MARK;Pi;0;ON;;;;;Y;DOUBLE REVERSED COMMA QUOTATION MARK;;;;
+2020;DAGGER;Po;0;ON;;;;;N;;;;;
+2021;DOUBLE DAGGER;Po;0;ON;;;;;N;;;;;
+2022;BULLET;Po;0;ON;;;;;N;;;;;
+2023;TRIANGULAR BULLET;Po;0;ON;;;;;N;;;;;
+2024;ONE DOT LEADER;Po;0;ON;<compat> 002E;;;;N;;;;;
+2025;TWO DOT LEADER;Po;0;ON;<compat> 002E 002E;;;;N;;;;;
+2026;HORIZONTAL ELLIPSIS;Po;0;ON;<compat> 002E 002E 002E;;;;N;;;;;
+2027;HYPHENATION POINT;Po;0;ON;;;;;N;;;;;
+2028;LINE SEPARATOR;Zl;0;WS;;;;;N;;;;;
+2029;PARAGRAPH SEPARATOR;Zp;0;B;;;;;N;;;;;
+202A;LEFT-TO-RIGHT EMBEDDING;Cf;0;LRE;;;;;N;;;;;
+202B;RIGHT-TO-LEFT EMBEDDING;Cf;0;RLE;;;;;N;;;;;
+202C;POP DIRECTIONAL FORMATTING;Cf;0;PDF;;;;;N;;;;;
+202D;LEFT-TO-RIGHT OVERRIDE;Cf;0;LRO;;;;;N;;;;;
+202E;RIGHT-TO-LEFT OVERRIDE;Cf;0;RLO;;;;;N;;;;;
+202F;NARROW NO-BREAK SPACE;Zs;0;CS;<noBreak> 0020;;;;N;;;;;
+2030;PER MILLE SIGN;Po;0;ET;;;;;N;;;;;
+2031;PER TEN THOUSAND SIGN;Po;0;ET;;;;;N;;;;;
+2032;PRIME;Po;0;ET;;;;;N;;;;;
+2033;DOUBLE PRIME;Po;0;ET;<compat> 2032 2032;;;;N;;;;;
+2034;TRIPLE PRIME;Po;0;ET;<compat> 2032 2032 2032;;;;N;;;;;
+2035;REVERSED PRIME;Po;0;ON;;;;;N;;;;;
+2036;REVERSED DOUBLE PRIME;Po;0;ON;<compat> 2035 2035;;;;N;;;;;
+2037;REVERSED TRIPLE PRIME;Po;0;ON;<compat> 2035 2035 2035;;;;N;;;;;
+2038;CARET;Po;0;ON;;;;;N;;;;;
+2039;SINGLE LEFT-POINTING ANGLE QUOTATION MARK;Pi;0;ON;;;;;Y;LEFT POINTING SINGLE GUILLEMET;;;;
+203A;SINGLE RIGHT-POINTING ANGLE QUOTATION MARK;Pf;0;ON;;;;;Y;RIGHT POINTING SINGLE GUILLEMET;;;;
+203B;REFERENCE MARK;Po;0;ON;;;;;N;;;;;
+203C;DOUBLE EXCLAMATION MARK;Po;0;ON;<compat> 0021 0021;;;;N;;;;;
+203D;INTERROBANG;Po;0;ON;;;;;N;;;;;
+203E;OVERLINE;Po;0;ON;<compat> 0020 0305;;;;N;SPACING OVERSCORE;;;;
+203F;UNDERTIE;Pc;0;ON;;;;;N;;Enotikon;;;
+2040;CHARACTER TIE;Pc;0;ON;;;;;N;;;;;
+2041;CARET INSERTION POINT;Po;0;ON;;;;;N;;;;;
+2042;ASTERISM;Po;0;ON;;;;;N;;;;;
+2043;HYPHEN BULLET;Po;0;ON;;;;;N;;;;;
+2044;FRACTION SLASH;Sm;0;CS;;;;;N;;;;;
+2045;LEFT SQUARE BRACKET WITH QUILL;Ps;0;ON;;;;;Y;;;;;
+2046;RIGHT SQUARE BRACKET WITH QUILL;Pe;0;ON;;;;;Y;;;;;
+2047;DOUBLE QUESTION MARK;Po;0;ON;<compat> 003F 003F;;;;N;;;;;
+2048;QUESTION EXCLAMATION MARK;Po;0;ON;<compat> 003F 0021;;;;N;;;;;
+2049;EXCLAMATION QUESTION MARK;Po;0;ON;<compat> 0021 003F;;;;N;;;;;
+204A;TIRONIAN SIGN ET;Po;0;ON;;;;;N;;;;;
+204B;REVERSED PILCROW SIGN;Po;0;ON;;;;;N;;;;;
+204C;BLACK LEFTWARDS BULLET;Po;0;ON;;;;;N;;;;;
+204D;BLACK RIGHTWARDS BULLET;Po;0;ON;;;;;N;;;;;
+204E;LOW ASTERISK;Po;0;ON;;;;;N;;;;;
+204F;REVERSED SEMICOLON;Po;0;ON;;;;;N;;;;;
+2050;CLOSE UP;Po;0;ON;;;;;N;;;;;
+2051;TWO ASTERISKS ALIGNED VERTICALLY;Po;0;ON;;;;;N;;;;;
+2052;COMMERCIAL MINUS SIGN;Sm;0;ON;;;;;N;;;;;
+2053;SWUNG DASH;Po;0;ON;;;;;N;;;;;
+2054;INVERTED UNDERTIE;Pc;0;ON;;;;;N;;;;;
+2055;FLOWER PUNCTUATION MARK;Po;0;ON;;;;;N;;;;;
+2056;THREE DOT PUNCTUATION;Po;0;ON;;;;;N;;;;;
+2057;QUADRUPLE PRIME;Po;0;ON;<compat> 2032 2032 2032 2032;;;;N;;;;;
+2058;FOUR DOT PUNCTUATION;Po;0;ON;;;;;N;;;;;
+2059;FIVE DOT PUNCTUATION;Po;0;ON;;;;;N;;;;;
+205A;TWO DOT PUNCTUATION;Po;0;ON;;;;;N;;;;;
+205B;FOUR DOT MARK;Po;0;ON;;;;;N;;;;;
+205C;DOTTED CROSS;Po;0;ON;;;;;N;;;;;
+205D;TRICOLON;Po;0;ON;;;;;N;;;;;
+205E;VERTICAL FOUR DOTS;Po;0;ON;;;;;N;;;;;
+205F;MEDIUM MATHEMATICAL SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;;
+2060;WORD JOINER;Cf;0;BN;;;;;N;;;;;
+2061;FUNCTION APPLICATION;Cf;0;BN;;;;;N;;;;;
+2062;INVISIBLE TIMES;Cf;0;BN;;;;;N;;;;;
+2063;INVISIBLE SEPARATOR;Cf;0;BN;;;;;N;;;;;
+206A;INHIBIT SYMMETRIC SWAPPING;Cf;0;BN;;;;;N;;;;;
+206B;ACTIVATE SYMMETRIC SWAPPING;Cf;0;BN;;;;;N;;;;;
+206C;INHIBIT ARABIC FORM SHAPING;Cf;0;BN;;;;;N;;;;;
+206D;ACTIVATE ARABIC FORM SHAPING;Cf;0;BN;;;;;N;;;;;
+206E;NATIONAL DIGIT SHAPES;Cf;0;BN;;;;;N;;;;;
+206F;NOMINAL DIGIT SHAPES;Cf;0;BN;;;;;N;;;;;
+2070;SUPERSCRIPT ZERO;No;0;EN;<super> 0030;;0;0;N;SUPERSCRIPT DIGIT ZERO;;;;
+2071;SUPERSCRIPT LATIN SMALL LETTER I;Ll;0;L;<super> 0069;;;;N;;;;;
+2074;SUPERSCRIPT FOUR;No;0;EN;<super> 0034;;4;4;N;SUPERSCRIPT DIGIT FOUR;;;;
+2075;SUPERSCRIPT FIVE;No;0;EN;<super> 0035;;5;5;N;SUPERSCRIPT DIGIT FIVE;;;;
+2076;SUPERSCRIPT SIX;No;0;EN;<super> 0036;;6;6;N;SUPERSCRIPT DIGIT SIX;;;;
+2077;SUPERSCRIPT SEVEN;No;0;EN;<super> 0037;;7;7;N;SUPERSCRIPT DIGIT SEVEN;;;;
+2078;SUPERSCRIPT EIGHT;No;0;EN;<super> 0038;;8;8;N;SUPERSCRIPT DIGIT EIGHT;;;;
+2079;SUPERSCRIPT NINE;No;0;EN;<super> 0039;;9;9;N;SUPERSCRIPT DIGIT NINE;;;;
+207A;SUPERSCRIPT PLUS SIGN;Sm;0;ES;<super> 002B;;;;N;;;;;
+207B;SUPERSCRIPT MINUS;Sm;0;ES;<super> 2212;;;;N;SUPERSCRIPT HYPHEN-MINUS;;;;
+207C;SUPERSCRIPT EQUALS SIGN;Sm;0;ON;<super> 003D;;;;N;;;;;
+207D;SUPERSCRIPT LEFT PARENTHESIS;Ps;0;ON;<super> 0028;;;;Y;SUPERSCRIPT OPENING PARENTHESIS;;;;
+207E;SUPERSCRIPT RIGHT PARENTHESIS;Pe;0;ON;<super> 0029;;;;Y;SUPERSCRIPT CLOSING PARENTHESIS;;;;
+207F;SUPERSCRIPT LATIN SMALL LETTER N;Ll;0;L;<super> 006E;;;;N;;;;;
+2080;SUBSCRIPT ZERO;No;0;EN;<sub> 0030;;0;0;N;SUBSCRIPT DIGIT ZERO;;;;
+2081;SUBSCRIPT ONE;No;0;EN;<sub> 0031;;1;1;N;SUBSCRIPT DIGIT ONE;;;;
+2082;SUBSCRIPT TWO;No;0;EN;<sub> 0032;;2;2;N;SUBSCRIPT DIGIT TWO;;;;
+2083;SUBSCRIPT THREE;No;0;EN;<sub> 0033;;3;3;N;SUBSCRIPT DIGIT THREE;;;;
+2084;SUBSCRIPT FOUR;No;0;EN;<sub> 0034;;4;4;N;SUBSCRIPT DIGIT FOUR;;;;
+2085;SUBSCRIPT FIVE;No;0;EN;<sub> 0035;;5;5;N;SUBSCRIPT DIGIT FIVE;;;;
+2086;SUBSCRIPT SIX;No;0;EN;<sub> 0036;;6;6;N;SUBSCRIPT DIGIT SIX;;;;
+2087;SUBSCRIPT SEVEN;No;0;EN;<sub> 0037;;7;7;N;SUBSCRIPT DIGIT SEVEN;;;;
+2088;SUBSCRIPT EIGHT;No;0;EN;<sub> 0038;;8;8;N;SUBSCRIPT DIGIT EIGHT;;;;
+2089;SUBSCRIPT NINE;No;0;EN;<sub> 0039;;9;9;N;SUBSCRIPT DIGIT NINE;;;;
+208A;SUBSCRIPT PLUS SIGN;Sm;0;ES;<sub> 002B;;;;N;;;;;
+208B;SUBSCRIPT MINUS;Sm;0;ES;<sub> 2212;;;;N;SUBSCRIPT HYPHEN-MINUS;;;;
+208C;SUBSCRIPT EQUALS SIGN;Sm;0;ON;<sub> 003D;;;;N;;;;;
+208D;SUBSCRIPT LEFT PARENTHESIS;Ps;0;ON;<sub> 0028;;;;Y;SUBSCRIPT OPENING PARENTHESIS;;;;
+208E;SUBSCRIPT RIGHT PARENTHESIS;Pe;0;ON;<sub> 0029;;;;Y;SUBSCRIPT CLOSING PARENTHESIS;;;;
+2090;LATIN SUBSCRIPT SMALL LETTER A;Lm;0;L;<sub> 0061;;;;N;;;;;
+2091;LATIN SUBSCRIPT SMALL LETTER E;Lm;0;L;<sub> 0065;;;;N;;;;;
+2092;LATIN SUBSCRIPT SMALL LETTER O;Lm;0;L;<sub> 006F;;;;N;;;;;
+2093;LATIN SUBSCRIPT SMALL LETTER X;Lm;0;L;<sub> 0078;;;;N;;;;;
+2094;LATIN SUBSCRIPT SMALL LETTER SCHWA;Lm;0;L;<sub> 0259;;;;N;;;;;
+20A0;EURO-CURRENCY SIGN;Sc;0;ET;;;;;N;;;;;
+20A1;COLON SIGN;Sc;0;ET;;;;;N;;;;;
+20A2;CRUZEIRO SIGN;Sc;0;ET;;;;;N;;;;;
+20A3;FRENCH FRANC SIGN;Sc;0;ET;;;;;N;;;;;
+20A4;LIRA SIGN;Sc;0;ET;;;;;N;;;;;
+20A5;MILL SIGN;Sc;0;ET;;;;;N;;;;;
+20A6;NAIRA SIGN;Sc;0;ET;;;;;N;;;;;
+20A7;PESETA SIGN;Sc;0;ET;;;;;N;;;;;
+20A8;RUPEE SIGN;Sc;0;ET;<compat> 0052 0073;;;;N;;;;;
+20A9;WON SIGN;Sc;0;ET;;;;;N;;;;;
+20AA;NEW SHEQEL SIGN;Sc;0;ET;;;;;N;;;;;
+20AB;DONG SIGN;Sc;0;ET;;;;;N;;;;;
+20AC;EURO SIGN;Sc;0;ET;;;;;N;;;;;
+20AD;KIP SIGN;Sc;0;ET;;;;;N;;;;;
+20AE;TUGRIK SIGN;Sc;0;ET;;;;;N;;;;;
+20AF;DRACHMA SIGN;Sc;0;ET;;;;;N;;;;;
+20B0;GERMAN PENNY SIGN;Sc;0;ET;;;;;N;;;;;
+20B1;PESO SIGN;Sc;0;ET;;;;;N;;;;;
+20B2;GUARANI SIGN;Sc;0;ET;;;;;N;;;;;
+20B3;AUSTRAL SIGN;Sc;0;ET;;;;;N;;;;;
+20B4;HRYVNIA SIGN;Sc;0;ET;;;;;N;;;;;
+20B5;CEDI SIGN;Sc;0;ET;;;;;N;;;;;
+20D0;COMBINING LEFT HARPOON ABOVE;Mn;230;NSM;;;;;N;NON-SPACING LEFT HARPOON ABOVE;;;;
+20D1;COMBINING RIGHT HARPOON ABOVE;Mn;230;NSM;;;;;N;NON-SPACING RIGHT HARPOON ABOVE;;;;
+20D2;COMBINING LONG VERTICAL LINE OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING LONG VERTICAL BAR OVERLAY;;;;
+20D3;COMBINING SHORT VERTICAL LINE OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING SHORT VERTICAL BAR OVERLAY;;;;
+20D4;COMBINING ANTICLOCKWISE ARROW ABOVE;Mn;230;NSM;;;;;N;NON-SPACING ANTICLOCKWISE ARROW ABOVE;;;;
+20D5;COMBINING CLOCKWISE ARROW ABOVE;Mn;230;NSM;;;;;N;NON-SPACING CLOCKWISE ARROW ABOVE;;;;
+20D6;COMBINING LEFT ARROW ABOVE;Mn;230;NSM;;;;;N;NON-SPACING LEFT ARROW ABOVE;;;;
+20D7;COMBINING RIGHT ARROW ABOVE;Mn;230;NSM;;;;;N;NON-SPACING RIGHT ARROW ABOVE;;;;
+20D8;COMBINING RING OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING RING OVERLAY;;;;
+20D9;COMBINING CLOCKWISE RING OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING CLOCKWISE RING OVERLAY;;;;
+20DA;COMBINING ANTICLOCKWISE RING OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING ANTICLOCKWISE RING OVERLAY;;;;
+20DB;COMBINING THREE DOTS ABOVE;Mn;230;NSM;;;;;N;NON-SPACING THREE DOTS ABOVE;;;;
+20DC;COMBINING FOUR DOTS ABOVE;Mn;230;NSM;;;;;N;NON-SPACING FOUR DOTS ABOVE;;;;
+20DD;COMBINING ENCLOSING CIRCLE;Me;0;NSM;;;;;N;ENCLOSING CIRCLE;;;;
+20DE;COMBINING ENCLOSING SQUARE;Me;0;NSM;;;;;N;ENCLOSING SQUARE;;;;
+20DF;COMBINING ENCLOSING DIAMOND;Me;0;NSM;;;;;N;ENCLOSING DIAMOND;;;;
+20E0;COMBINING ENCLOSING CIRCLE BACKSLASH;Me;0;NSM;;;;;N;ENCLOSING CIRCLE SLASH;;;;
+20E1;COMBINING LEFT RIGHT ARROW ABOVE;Mn;230;NSM;;;;;N;NON-SPACING LEFT RIGHT ARROW ABOVE;;;;
+20E2;COMBINING ENCLOSING SCREEN;Me;0;NSM;;;;;N;;;;;
+20E3;COMBINING ENCLOSING KEYCAP;Me;0;NSM;;;;;N;;;;;
+20E4;COMBINING ENCLOSING UPWARD POINTING TRIANGLE;Me;0;NSM;;;;;N;;;;;
+20E5;COMBINING REVERSE SOLIDUS OVERLAY;Mn;1;NSM;;;;;N;;;;;
+20E6;COMBINING DOUBLE VERTICAL STROKE OVERLAY;Mn;1;NSM;;;;;N;;;;;
+20E7;COMBINING ANNUITY SYMBOL;Mn;230;NSM;;;;;N;;;;;
+20E8;COMBINING TRIPLE UNDERDOT;Mn;220;NSM;;;;;N;;;;;
+20E9;COMBINING WIDE BRIDGE ABOVE;Mn;230;NSM;;;;;N;;;;;
+20EA;COMBINING LEFTWARDS ARROW OVERLAY;Mn;1;NSM;;;;;N;;;;;
+20EB;COMBINING LONG DOUBLE SOLIDUS OVERLAY;Mn;1;NSM;;;;;N;;;;;
+20EC;COMBINING RIGHTWARDS HARPOON WITH BARB DOWNWARDS;Mn;220;NSM;;;;;N;;;;;
+20ED;COMBINING LEFTWARDS HARPOON WITH BARB DOWNWARDS;Mn;220;NSM;;;;;N;;;;;
+20EE;COMBINING LEFT ARROW BELOW;Mn;220;NSM;;;;;N;;;;;
+20EF;COMBINING RIGHT ARROW BELOW;Mn;220;NSM;;;;;N;;;;;
+2100;ACCOUNT OF;So;0;ON;<compat> 0061 002F 0063;;;;N;;;;;
+2101;ADDRESSED TO THE SUBJECT;So;0;ON;<compat> 0061 002F 0073;;;;N;;;;;
+2102;DOUBLE-STRUCK CAPITAL C;Lu;0;L;<font> 0043;;;;N;DOUBLE-STRUCK C;;;;
+2103;DEGREE CELSIUS;So;0;ON;<compat> 00B0 0043;;;;N;DEGREES CENTIGRADE;;;;
+2104;CENTRE LINE SYMBOL;So;0;ON;;;;;N;C L SYMBOL;;;;
+2105;CARE OF;So;0;ON;<compat> 0063 002F 006F;;;;N;;;;;
+2106;CADA UNA;So;0;ON;<compat> 0063 002F 0075;;;;N;;;;;
+2107;EULER CONSTANT;Lu;0;L;<compat> 0190;;;;N;EULERS;;;;
+2108;SCRUPLE;So;0;ON;;;;;N;;;;;
+2109;DEGREE FAHRENHEIT;So;0;ON;<compat> 00B0 0046;;;;N;DEGREES FAHRENHEIT;;;;
+210A;SCRIPT SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;
+210B;SCRIPT CAPITAL H;Lu;0;L;<font> 0048;;;;N;SCRIPT H;;;;
+210C;BLACK-LETTER CAPITAL H;Lu;0;L;<font> 0048;;;;N;BLACK-LETTER H;;;;
+210D;DOUBLE-STRUCK CAPITAL H;Lu;0;L;<font> 0048;;;;N;DOUBLE-STRUCK H;;;;
+210E;PLANCK CONSTANT;Ll;0;L;<font> 0068;;;;N;;;;;
+210F;PLANCK CONSTANT OVER TWO PI;Ll;0;L;<font> 0127;;;;N;PLANCK CONSTANT OVER 2 PI;;;;
+2110;SCRIPT CAPITAL I;Lu;0;L;<font> 0049;;;;N;SCRIPT I;;;;
+2111;BLACK-LETTER CAPITAL I;Lu;0;L;<font> 0049;;;;N;BLACK-LETTER I;;;;
+2112;SCRIPT CAPITAL L;Lu;0;L;<font> 004C;;;;N;SCRIPT L;;;;
+2113;SCRIPT SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;
+2114;L B BAR SYMBOL;So;0;ON;;;;;N;;;;;
+2115;DOUBLE-STRUCK CAPITAL N;Lu;0;L;<font> 004E;;;;N;DOUBLE-STRUCK N;;;;
+2116;NUMERO SIGN;So;0;ON;<compat> 004E 006F;;;;N;NUMERO;;;;
+2117;SOUND RECORDING COPYRIGHT;So;0;ON;;;;;N;;;;;
+2118;SCRIPT CAPITAL P;So;0;ON;;;;;N;SCRIPT P;;;;
+2119;DOUBLE-STRUCK CAPITAL P;Lu;0;L;<font> 0050;;;;N;DOUBLE-STRUCK P;;;;
+211A;DOUBLE-STRUCK CAPITAL Q;Lu;0;L;<font> 0051;;;;N;DOUBLE-STRUCK Q;;;;
+211B;SCRIPT CAPITAL R;Lu;0;L;<font> 0052;;;;N;SCRIPT R;;;;
+211C;BLACK-LETTER CAPITAL R;Lu;0;L;<font> 0052;;;;N;BLACK-LETTER R;;;;
+211D;DOUBLE-STRUCK CAPITAL R;Lu;0;L;<font> 0052;;;;N;DOUBLE-STRUCK R;;;;
+211E;PRESCRIPTION TAKE;So;0;ON;;;;;N;;;;;
+211F;RESPONSE;So;0;ON;;;;;N;;;;;
+2120;SERVICE MARK;So;0;ON;<super> 0053 004D;;;;N;;;;;
+2121;TELEPHONE SIGN;So;0;ON;<compat> 0054 0045 004C;;;;N;T E L SYMBOL;;;;
+2122;TRADE MARK SIGN;So;0;ON;<super> 0054 004D;;;;N;TRADEMARK;;;;
+2123;VERSICLE;So;0;ON;;;;;N;;;;;
+2124;DOUBLE-STRUCK CAPITAL Z;Lu;0;L;<font> 005A;;;;N;DOUBLE-STRUCK Z;;;;
+2125;OUNCE SIGN;So;0;ON;;;;;N;OUNCE;;;;
+2126;OHM SIGN;Lu;0;L;03A9;;;;N;OHM;;;03C9;
+2127;INVERTED OHM SIGN;So;0;ON;;;;;N;MHO;;;;
+2128;BLACK-LETTER CAPITAL Z;Lu;0;L;<font> 005A;;;;N;BLACK-LETTER Z;;;;
+2129;TURNED GREEK SMALL LETTER IOTA;So;0;ON;;;;;N;;;;;
+212A;KELVIN SIGN;Lu;0;L;004B;;;;N;DEGREES KELVIN;;;006B;
+212B;ANGSTROM SIGN;Lu;0;L;00C5;;;;N;ANGSTROM UNIT;;;00E5;
+212C;SCRIPT CAPITAL B;Lu;0;L;<font> 0042;;;;N;SCRIPT B;;;;
+212D;BLACK-LETTER CAPITAL C;Lu;0;L;<font> 0043;;;;N;BLACK-LETTER C;;;;
+212E;ESTIMATED SYMBOL;So;0;ET;;;;;N;;;;;
+212F;SCRIPT SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;
+2130;SCRIPT CAPITAL E;Lu;0;L;<font> 0045;;;;N;SCRIPT E;;;;
+2131;SCRIPT CAPITAL F;Lu;0;L;<font> 0046;;;;N;SCRIPT F;;;;
+2132;TURNED CAPITAL F;Lu;0;L;;;;;N;TURNED F;;;214E;
+2133;SCRIPT CAPITAL M;Lu;0;L;<font> 004D;;;;N;SCRIPT M;;;;
+2134;SCRIPT SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;
+2135;ALEF SYMBOL;Lo;0;L;<compat> 05D0;;;;N;FIRST TRANSFINITE CARDINAL;;;;
+2136;BET SYMBOL;Lo;0;L;<compat> 05D1;;;;N;SECOND TRANSFINITE CARDINAL;;;;
+2137;GIMEL SYMBOL;Lo;0;L;<compat> 05D2;;;;N;THIRD TRANSFINITE CARDINAL;;;;
+2138;DALET SYMBOL;Lo;0;L;<compat> 05D3;;;;N;FOURTH TRANSFINITE CARDINAL;;;;
+2139;INFORMATION SOURCE;Ll;0;L;<font> 0069;;;;N;;;;;
+213A;ROTATED CAPITAL Q;So;0;ON;;;;;N;;;;;
+213B;FACSIMILE SIGN;So;0;ON;<compat> 0046 0041 0058;;;;N;;;;;
+213C;DOUBLE-STRUCK SMALL PI;Ll;0;L;<font> 03C0;;;;N;;;;;
+213D;DOUBLE-STRUCK SMALL GAMMA;Ll;0;L;<font> 03B3;;;;N;;;;;
+213E;DOUBLE-STRUCK CAPITAL GAMMA;Lu;0;L;<font> 0393;;;;N;;;;;
+213F;DOUBLE-STRUCK CAPITAL PI;Lu;0;L;<font> 03A0;;;;N;;;;;
+2140;DOUBLE-STRUCK N-ARY SUMMATION;Sm;0;ON;<font> 2211;;;;Y;;;;;
+2141;TURNED SANS-SERIF CAPITAL G;Sm;0;ON;;;;;N;;;;;
+2142;TURNED SANS-SERIF CAPITAL L;Sm;0;ON;;;;;N;;;;;
+2143;REVERSED SANS-SERIF CAPITAL L;Sm;0;ON;;;;;N;;;;;
+2144;TURNED SANS-SERIF CAPITAL Y;Sm;0;ON;;;;;N;;;;;
+2145;DOUBLE-STRUCK ITALIC CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;
+2146;DOUBLE-STRUCK ITALIC SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;
+2147;DOUBLE-STRUCK ITALIC SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;
+2148;DOUBLE-STRUCK ITALIC SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;
+2149;DOUBLE-STRUCK ITALIC SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;
+214A;PROPERTY LINE;So;0;ON;;;;;N;;;;;
+214B;TURNED AMPERSAND;Sm;0;ON;;;;;N;;;;;
+214C;PER SIGN;So;0;ON;;;;;N;;;;;
+214D;AKTIESELSKAB;So;0;ON;;;;;N;;;;;
+214E;TURNED SMALL F;Ll;0;L;;;;;N;;;2132;;2132
+2153;VULGAR FRACTION ONE THIRD;No;0;ON;<fraction> 0031 2044 0033;;;1/3;N;FRACTION ONE THIRD;;;;
+2154;VULGAR FRACTION TWO THIRDS;No;0;ON;<fraction> 0032 2044 0033;;;2/3;N;FRACTION TWO THIRDS;;;;
+2155;VULGAR FRACTION ONE FIFTH;No;0;ON;<fraction> 0031 2044 0035;;;1/5;N;FRACTION ONE FIFTH;;;;
+2156;VULGAR FRACTION TWO FIFTHS;No;0;ON;<fraction> 0032 2044 0035;;;2/5;N;FRACTION TWO FIFTHS;;;;
+2157;VULGAR FRACTION THREE FIFTHS;No;0;ON;<fraction> 0033 2044 0035;;;3/5;N;FRACTION THREE FIFTHS;;;;
+2158;VULGAR FRACTION FOUR FIFTHS;No;0;ON;<fraction> 0034 2044 0035;;;4/5;N;FRACTION FOUR FIFTHS;;;;
+2159;VULGAR FRACTION ONE SIXTH;No;0;ON;<fraction> 0031 2044 0036;;;1/6;N;FRACTION ONE SIXTH;;;;
+215A;VULGAR FRACTION FIVE SIXTHS;No;0;ON;<fraction> 0035 2044 0036;;;5/6;N;FRACTION FIVE SIXTHS;;;;
+215B;VULGAR FRACTION ONE EIGHTH;No;0;ON;<fraction> 0031 2044 0038;;;1/8;N;FRACTION ONE EIGHTH;;;;
+215C;VULGAR FRACTION THREE EIGHTHS;No;0;ON;<fraction> 0033 2044 0038;;;3/8;N;FRACTION THREE EIGHTHS;;;;
+215D;VULGAR FRACTION FIVE EIGHTHS;No;0;ON;<fraction> 0035 2044 0038;;;5/8;N;FRACTION FIVE EIGHTHS;;;;
+215E;VULGAR FRACTION SEVEN EIGHTHS;No;0;ON;<fraction> 0037 2044 0038;;;7/8;N;FRACTION SEVEN EIGHTHS;;;;
+215F;FRACTION NUMERATOR ONE;No;0;ON;<fraction> 0031 2044;;;1;N;;;;;
+2160;ROMAN NUMERAL ONE;Nl;0;L;<compat> 0049;;;1;N;;;;2170;
+2161;ROMAN NUMERAL TWO;Nl;0;L;<compat> 0049 0049;;;2;N;;;;2171;
+2162;ROMAN NUMERAL THREE;Nl;0;L;<compat> 0049 0049 0049;;;3;N;;;;2172;
+2163;ROMAN NUMERAL FOUR;Nl;0;L;<compat> 0049 0056;;;4;N;;;;2173;
+2164;ROMAN NUMERAL FIVE;Nl;0;L;<compat> 0056;;;5;N;;;;2174;
+2165;ROMAN NUMERAL SIX;Nl;0;L;<compat> 0056 0049;;;6;N;;;;2175;
+2166;ROMAN NUMERAL SEVEN;Nl;0;L;<compat> 0056 0049 0049;;;7;N;;;;2176;
+2167;ROMAN NUMERAL EIGHT;Nl;0;L;<compat> 0056 0049 0049 0049;;;8;N;;;;2177;
+2168;ROMAN NUMERAL NINE;Nl;0;L;<compat> 0049 0058;;;9;N;;;;2178;
+2169;ROMAN NUMERAL TEN;Nl;0;L;<compat> 0058;;;10;N;;;;2179;
+216A;ROMAN NUMERAL ELEVEN;Nl;0;L;<compat> 0058 0049;;;11;N;;;;217A;
+216B;ROMAN NUMERAL TWELVE;Nl;0;L;<compat> 0058 0049 0049;;;12;N;;;;217B;
+216C;ROMAN NUMERAL FIFTY;Nl;0;L;<compat> 004C;;;50;N;;;;217C;
+216D;ROMAN NUMERAL ONE HUNDRED;Nl;0;L;<compat> 0043;;;100;N;;;;217D;
+216E;ROMAN NUMERAL FIVE HUNDRED;Nl;0;L;<compat> 0044;;;500;N;;;;217E;
+216F;ROMAN NUMERAL ONE THOUSAND;Nl;0;L;<compat> 004D;;;1000;N;;;;217F;
+2170;SMALL ROMAN NUMERAL ONE;Nl;0;L;<compat> 0069;;;1;N;;;2160;;2160
+2171;SMALL ROMAN NUMERAL TWO;Nl;0;L;<compat> 0069 0069;;;2;N;;;2161;;2161
+2172;SMALL ROMAN NUMERAL THREE;Nl;0;L;<compat> 0069 0069 0069;;;3;N;;;2162;;2162
+2173;SMALL ROMAN NUMERAL FOUR;Nl;0;L;<compat> 0069 0076;;;4;N;;;2163;;2163
+2174;SMALL ROMAN NUMERAL FIVE;Nl;0;L;<compat> 0076;;;5;N;;;2164;;2164
+2175;SMALL ROMAN NUMERAL SIX;Nl;0;L;<compat> 0076 0069;;;6;N;;;2165;;2165
+2176;SMALL ROMAN NUMERAL SEVEN;Nl;0;L;<compat> 0076 0069 0069;;;7;N;;;2166;;2166
+2177;SMALL ROMAN NUMERAL EIGHT;Nl;0;L;<compat> 0076 0069 0069 0069;;;8;N;;;2167;;2167
+2178;SMALL ROMAN NUMERAL NINE;Nl;0;L;<compat> 0069 0078;;;9;N;;;2168;;2168
+2179;SMALL ROMAN NUMERAL TEN;Nl;0;L;<compat> 0078;;;10;N;;;2169;;2169
+217A;SMALL ROMAN NUMERAL ELEVEN;Nl;0;L;<compat> 0078 0069;;;11;N;;;216A;;216A
+217B;SMALL ROMAN NUMERAL TWELVE;Nl;0;L;<compat> 0078 0069 0069;;;12;N;;;216B;;216B
+217C;SMALL ROMAN NUMERAL FIFTY;Nl;0;L;<compat> 006C;;;50;N;;;216C;;216C
+217D;SMALL ROMAN NUMERAL ONE HUNDRED;Nl;0;L;<compat> 0063;;;100;N;;;216D;;216D
+217E;SMALL ROMAN NUMERAL FIVE HUNDRED;Nl;0;L;<compat> 0064;;;500;N;;;216E;;216E
+217F;SMALL ROMAN NUMERAL ONE THOUSAND;Nl;0;L;<compat> 006D;;;1000;N;;;216F;;216F
+2180;ROMAN NUMERAL ONE THOUSAND C D;Nl;0;L;;;;1000;N;;;;;
+2181;ROMAN NUMERAL FIVE THOUSAND;Nl;0;L;;;;5000;N;;;;;
+2182;ROMAN NUMERAL TEN THOUSAND;Nl;0;L;;;;10000;N;;;;;
+2183;ROMAN NUMERAL REVERSED ONE HUNDRED;Lu;0;L;;;;;N;;;;2184;
+2184;LATIN SMALL LETTER REVERSED C;Ll;0;L;;;;;N;;;2183;;2183
+2190;LEFTWARDS ARROW;Sm;0;ON;;;;;N;LEFT ARROW;;;;
+2191;UPWARDS ARROW;Sm;0;ON;;;;;N;UP ARROW;;;;
+2192;RIGHTWARDS ARROW;Sm;0;ON;;;;;N;RIGHT ARROW;;;;
+2193;DOWNWARDS ARROW;Sm;0;ON;;;;;N;DOWN ARROW;;;;
+2194;LEFT RIGHT ARROW;Sm;0;ON;;;;;N;;;;;
+2195;UP DOWN ARROW;So;0;ON;;;;;N;;;;;
+2196;NORTH WEST ARROW;So;0;ON;;;;;N;UPPER LEFT ARROW;;;;
+2197;NORTH EAST ARROW;So;0;ON;;;;;N;UPPER RIGHT ARROW;;;;
+2198;SOUTH EAST ARROW;So;0;ON;;;;;N;LOWER RIGHT ARROW;;;;
+2199;SOUTH WEST ARROW;So;0;ON;;;;;N;LOWER LEFT ARROW;;;;
+219A;LEFTWARDS ARROW WITH STROKE;Sm;0;ON;2190 0338;;;;N;LEFT ARROW WITH STROKE;;;;
+219B;RIGHTWARDS ARROW WITH STROKE;Sm;0;ON;2192 0338;;;;N;RIGHT ARROW WITH STROKE;;;;
+219C;LEFTWARDS WAVE ARROW;So;0;ON;;;;;N;LEFT WAVE ARROW;;;;
+219D;RIGHTWARDS WAVE ARROW;So;0;ON;;;;;N;RIGHT WAVE ARROW;;;;
+219E;LEFTWARDS TWO HEADED ARROW;So;0;ON;;;;;N;LEFT TWO HEADED ARROW;;;;
+219F;UPWARDS TWO HEADED ARROW;So;0;ON;;;;;N;UP TWO HEADED ARROW;;;;
+21A0;RIGHTWARDS TWO HEADED ARROW;Sm;0;ON;;;;;N;RIGHT TWO HEADED ARROW;;;;
+21A1;DOWNWARDS TWO HEADED ARROW;So;0;ON;;;;;N;DOWN TWO HEADED ARROW;;;;
+21A2;LEFTWARDS ARROW WITH TAIL;So;0;ON;;;;;N;LEFT ARROW WITH TAIL;;;;
+21A3;RIGHTWARDS ARROW WITH TAIL;Sm;0;ON;;;;;N;RIGHT ARROW WITH TAIL;;;;
+21A4;LEFTWARDS ARROW FROM BAR;So;0;ON;;;;;N;LEFT ARROW FROM BAR;;;;
+21A5;UPWARDS ARROW FROM BAR;So;0;ON;;;;;N;UP ARROW FROM BAR;;;;
+21A6;RIGHTWARDS ARROW FROM BAR;Sm;0;ON;;;;;N;RIGHT ARROW FROM BAR;;;;
+21A7;DOWNWARDS ARROW FROM BAR;So;0;ON;;;;;N;DOWN ARROW FROM BAR;;;;
+21A8;UP DOWN ARROW WITH BASE;So;0;ON;;;;;N;;;;;
+21A9;LEFTWARDS ARROW WITH HOOK;So;0;ON;;;;;N;LEFT ARROW WITH HOOK;;;;
+21AA;RIGHTWARDS ARROW WITH HOOK;So;0;ON;;;;;N;RIGHT ARROW WITH HOOK;;;;
+21AB;LEFTWARDS ARROW WITH LOOP;So;0;ON;;;;;N;LEFT ARROW WITH LOOP;;;;
+21AC;RIGHTWARDS ARROW WITH LOOP;So;0;ON;;;;;N;RIGHT ARROW WITH LOOP;;;;
+21AD;LEFT RIGHT WAVE ARROW;So;0;ON;;;;;N;;;;;
+21AE;LEFT RIGHT ARROW WITH STROKE;Sm;0;ON;2194 0338;;;;N;;;;;
+21AF;DOWNWARDS ZIGZAG ARROW;So;0;ON;;;;;N;DOWN ZIGZAG ARROW;;;;
+21B0;UPWARDS ARROW WITH TIP LEFTWARDS;So;0;ON;;;;;N;UP ARROW WITH TIP LEFT;;;;
+21B1;UPWARDS ARROW WITH TIP RIGHTWARDS;So;0;ON;;;;;N;UP ARROW WITH TIP RIGHT;;;;
+21B2;DOWNWARDS ARROW WITH TIP LEFTWARDS;So;0;ON;;;;;N;DOWN ARROW WITH TIP LEFT;;;;
+21B3;DOWNWARDS ARROW WITH TIP RIGHTWARDS;So;0;ON;;;;;N;DOWN ARROW WITH TIP RIGHT;;;;
+21B4;RIGHTWARDS ARROW WITH CORNER DOWNWARDS;So;0;ON;;;;;N;RIGHT ARROW WITH CORNER DOWN;;;;
+21B5;DOWNWARDS ARROW WITH CORNER LEFTWARDS;So;0;ON;;;;;N;DOWN ARROW WITH CORNER LEFT;;;;
+21B6;ANTICLOCKWISE TOP SEMICIRCLE ARROW;So;0;ON;;;;;N;;;;;
+21B7;CLOCKWISE TOP SEMICIRCLE ARROW;So;0;ON;;;;;N;;;;;
+21B8;NORTH WEST ARROW TO LONG BAR;So;0;ON;;;;;N;UPPER LEFT ARROW TO LONG BAR;;;;
+21B9;LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR;So;0;ON;;;;;N;LEFT ARROW TO BAR OVER RIGHT ARROW TO BAR;;;;
+21BA;ANTICLOCKWISE OPEN CIRCLE ARROW;So;0;ON;;;;;N;;;;;
+21BB;CLOCKWISE OPEN CIRCLE ARROW;So;0;ON;;;;;N;;;;;
+21BC;LEFTWARDS HARPOON WITH BARB UPWARDS;So;0;ON;;;;;N;LEFT HARPOON WITH BARB UP;;;;
+21BD;LEFTWARDS HARPOON WITH BARB DOWNWARDS;So;0;ON;;;;;N;LEFT HARPOON WITH BARB DOWN;;;;
+21BE;UPWARDS HARPOON WITH BARB RIGHTWARDS;So;0;ON;;;;;N;UP HARPOON WITH BARB RIGHT;;;;
+21BF;UPWARDS HARPOON WITH BARB LEFTWARDS;So;0;ON;;;;;N;UP HARPOON WITH BARB LEFT;;;;
+21C0;RIGHTWARDS HARPOON WITH BARB UPWARDS;So;0;ON;;;;;N;RIGHT HARPOON WITH BARB UP;;;;
+21C1;RIGHTWARDS HARPOON WITH BARB DOWNWARDS;So;0;ON;;;;;N;RIGHT HARPOON WITH BARB DOWN;;;;
+21C2;DOWNWARDS HARPOON WITH BARB RIGHTWARDS;So;0;ON;;;;;N;DOWN HARPOON WITH BARB RIGHT;;;;
+21C3;DOWNWARDS HARPOON WITH BARB LEFTWARDS;So;0;ON;;;;;N;DOWN HARPOON WITH BARB LEFT;;;;
+21C4;RIGHTWARDS ARROW OVER LEFTWARDS ARROW;So;0;ON;;;;;N;RIGHT ARROW OVER LEFT ARROW;;;;
+21C5;UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW;So;0;ON;;;;;N;UP ARROW LEFT OF DOWN ARROW;;;;
+21C6;LEFTWARDS ARROW OVER RIGHTWARDS ARROW;So;0;ON;;;;;N;LEFT ARROW OVER RIGHT ARROW;;;;
+21C7;LEFTWARDS PAIRED ARROWS;So;0;ON;;;;;N;LEFT PAIRED ARROWS;;;;
+21C8;UPWARDS PAIRED ARROWS;So;0;ON;;;;;N;UP PAIRED ARROWS;;;;
+21C9;RIGHTWARDS PAIRED ARROWS;So;0;ON;;;;;N;RIGHT PAIRED ARROWS;;;;
+21CA;DOWNWARDS PAIRED ARROWS;So;0;ON;;;;;N;DOWN PAIRED ARROWS;;;;
+21CB;LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON;So;0;ON;;;;;N;LEFT HARPOON OVER RIGHT HARPOON;;;;
+21CC;RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON;So;0;ON;;;;;N;RIGHT HARPOON OVER LEFT HARPOON;;;;
+21CD;LEFTWARDS DOUBLE ARROW WITH STROKE;So;0;ON;21D0 0338;;;;N;LEFT DOUBLE ARROW WITH STROKE;;;;
+21CE;LEFT RIGHT DOUBLE ARROW WITH STROKE;Sm;0;ON;21D4 0338;;;;N;;;;;
+21CF;RIGHTWARDS DOUBLE ARROW WITH STROKE;Sm;0;ON;21D2 0338;;;;N;RIGHT DOUBLE ARROW WITH STROKE;;;;
+21D0;LEFTWARDS DOUBLE ARROW;So;0;ON;;;;;N;LEFT DOUBLE ARROW;;;;
+21D1;UPWARDS DOUBLE ARROW;So;0;ON;;;;;N;UP DOUBLE ARROW;;;;
+21D2;RIGHTWARDS DOUBLE ARROW;Sm;0;ON;;;;;N;RIGHT DOUBLE ARROW;;;;
+21D3;DOWNWARDS DOUBLE ARROW;So;0;ON;;;;;N;DOWN DOUBLE ARROW;;;;
+21D4;LEFT RIGHT DOUBLE ARROW;Sm;0;ON;;;;;N;;;;;
+21D5;UP DOWN DOUBLE ARROW;So;0;ON;;;;;N;;;;;
+21D6;NORTH WEST DOUBLE ARROW;So;0;ON;;;;;N;UPPER LEFT DOUBLE ARROW;;;;
+21D7;NORTH EAST DOUBLE ARROW;So;0;ON;;;;;N;UPPER RIGHT DOUBLE ARROW;;;;
+21D8;SOUTH EAST DOUBLE ARROW;So;0;ON;;;;;N;LOWER RIGHT DOUBLE ARROW;;;;
+21D9;SOUTH WEST DOUBLE ARROW;So;0;ON;;;;;N;LOWER LEFT DOUBLE ARROW;;;;
+21DA;LEFTWARDS TRIPLE ARROW;So;0;ON;;;;;N;LEFT TRIPLE ARROW;;;;
+21DB;RIGHTWARDS TRIPLE ARROW;So;0;ON;;;;;N;RIGHT TRIPLE ARROW;;;;
+21DC;LEFTWARDS SQUIGGLE ARROW;So;0;ON;;;;;N;LEFT SQUIGGLE ARROW;;;;
+21DD;RIGHTWARDS SQUIGGLE ARROW;So;0;ON;;;;;N;RIGHT SQUIGGLE ARROW;;;;
+21DE;UPWARDS ARROW WITH DOUBLE STROKE;So;0;ON;;;;;N;UP ARROW WITH DOUBLE STROKE;;;;
+21DF;DOWNWARDS ARROW WITH DOUBLE STROKE;So;0;ON;;;;;N;DOWN ARROW WITH DOUBLE STROKE;;;;
+21E0;LEFTWARDS DASHED ARROW;So;0;ON;;;;;N;LEFT DASHED ARROW;;;;
+21E1;UPWARDS DASHED ARROW;So;0;ON;;;;;N;UP DASHED ARROW;;;;
+21E2;RIGHTWARDS DASHED ARROW;So;0;ON;;;;;N;RIGHT DASHED ARROW;;;;
+21E3;DOWNWARDS DASHED ARROW;So;0;ON;;;;;N;DOWN DASHED ARROW;;;;
+21E4;LEFTWARDS ARROW TO BAR;So;0;ON;;;;;N;LEFT ARROW TO BAR;;;;
+21E5;RIGHTWARDS ARROW TO BAR;So;0;ON;;;;;N;RIGHT ARROW TO BAR;;;;
+21E6;LEFTWARDS WHITE ARROW;So;0;ON;;;;;N;WHITE LEFT ARROW;;;;
+21E7;UPWARDS WHITE ARROW;So;0;ON;;;;;N;WHITE UP ARROW;;;;
+21E8;RIGHTWARDS WHITE ARROW;So;0;ON;;;;;N;WHITE RIGHT ARROW;;;;
+21E9;DOWNWARDS WHITE ARROW;So;0;ON;;;;;N;WHITE DOWN ARROW;;;;
+21EA;UPWARDS WHITE ARROW FROM BAR;So;0;ON;;;;;N;WHITE UP ARROW FROM BAR;;;;
+21EB;UPWARDS WHITE ARROW ON PEDESTAL;So;0;ON;;;;;N;;;;;
+21EC;UPWARDS WHITE ARROW ON PEDESTAL WITH HORIZONTAL BAR;So;0;ON;;;;;N;;;;;
+21ED;UPWARDS WHITE ARROW ON PEDESTAL WITH VERTICAL BAR;So;0;ON;;;;;N;;;;;
+21EE;UPWARDS WHITE DOUBLE ARROW;So;0;ON;;;;;N;;;;;
+21EF;UPWARDS WHITE DOUBLE ARROW ON PEDESTAL;So;0;ON;;;;;N;;;;;
+21F0;RIGHTWARDS WHITE ARROW FROM WALL;So;0;ON;;;;;N;;;;;
+21F1;NORTH WEST ARROW TO CORNER;So;0;ON;;;;;N;;;;;
+21F2;SOUTH EAST ARROW TO CORNER;So;0;ON;;;;;N;;;;;
+21F3;UP DOWN WHITE ARROW;So;0;ON;;;;;N;;;;;
+21F4;RIGHT ARROW WITH SMALL CIRCLE;Sm;0;ON;;;;;N;;;;;
+21F5;DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW;Sm;0;ON;;;;;N;;;;;
+21F6;THREE RIGHTWARDS ARROWS;Sm;0;ON;;;;;N;;;;;
+21F7;LEFTWARDS ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+21F8;RIGHTWARDS ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+21F9;LEFT RIGHT ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+21FA;LEFTWARDS ARROW WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+21FB;RIGHTWARDS ARROW WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+21FC;LEFT RIGHT ARROW WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+21FD;LEFTWARDS OPEN-HEADED ARROW;Sm;0;ON;;;;;N;;;;;
+21FE;RIGHTWARDS OPEN-HEADED ARROW;Sm;0;ON;;;;;N;;;;;
+21FF;LEFT RIGHT OPEN-HEADED ARROW;Sm;0;ON;;;;;N;;;;;
+2200;FOR ALL;Sm;0;ON;;;;;N;;;;;
+2201;COMPLEMENT;Sm;0;ON;;;;;Y;;;;;
+2202;PARTIAL DIFFERENTIAL;Sm;0;ON;;;;;Y;;;;;
+2203;THERE EXISTS;Sm;0;ON;;;;;Y;;;;;
+2204;THERE DOES NOT EXIST;Sm;0;ON;2203 0338;;;;Y;;;;;
+2205;EMPTY SET;Sm;0;ON;;;;;N;;;;;
+2206;INCREMENT;Sm;0;ON;;;;;N;;;;;
+2207;NABLA;Sm;0;ON;;;;;N;;;;;
+2208;ELEMENT OF;Sm;0;ON;;;;;Y;;;;;
+2209;NOT AN ELEMENT OF;Sm;0;ON;2208 0338;;;;Y;;;;;
+220A;SMALL ELEMENT OF;Sm;0;ON;;;;;Y;;;;;
+220B;CONTAINS AS MEMBER;Sm;0;ON;;;;;Y;;;;;
+220C;DOES NOT CONTAIN AS MEMBER;Sm;0;ON;220B 0338;;;;Y;;;;;
+220D;SMALL CONTAINS AS MEMBER;Sm;0;ON;;;;;Y;;;;;
+220E;END OF PROOF;Sm;0;ON;;;;;N;;;;;
+220F;N-ARY PRODUCT;Sm;0;ON;;;;;N;;;;;
+2210;N-ARY COPRODUCT;Sm;0;ON;;;;;N;;;;;
+2211;N-ARY SUMMATION;Sm;0;ON;;;;;Y;;;;;
+2212;MINUS SIGN;Sm;0;ES;;;;;N;;;;;
+2213;MINUS-OR-PLUS SIGN;Sm;0;ET;;;;;N;;;;;
+2214;DOT PLUS;Sm;0;ON;;;;;N;;;;;
+2215;DIVISION SLASH;Sm;0;ON;;;;;Y;;;;;
+2216;SET MINUS;Sm;0;ON;;;;;Y;;;;;
+2217;ASTERISK OPERATOR;Sm;0;ON;;;;;N;;;;;
+2218;RING OPERATOR;Sm;0;ON;;;;;N;;;;;
+2219;BULLET OPERATOR;Sm;0;ON;;;;;N;;;;;
+221A;SQUARE ROOT;Sm;0;ON;;;;;Y;;;;;
+221B;CUBE ROOT;Sm;0;ON;;;;;Y;;;;;
+221C;FOURTH ROOT;Sm;0;ON;;;;;Y;;;;;
+221D;PROPORTIONAL TO;Sm;0;ON;;;;;Y;;;;;
+221E;INFINITY;Sm;0;ON;;;;;N;;;;;
+221F;RIGHT ANGLE;Sm;0;ON;;;;;Y;;;;;
+2220;ANGLE;Sm;0;ON;;;;;Y;;;;;
+2221;MEASURED ANGLE;Sm;0;ON;;;;;Y;;;;;
+2222;SPHERICAL ANGLE;Sm;0;ON;;;;;Y;;;;;
+2223;DIVIDES;Sm;0;ON;;;;;N;;;;;
+2224;DOES NOT DIVIDE;Sm;0;ON;2223 0338;;;;Y;;;;;
+2225;PARALLEL TO;Sm;0;ON;;;;;N;;;;;
+2226;NOT PARALLEL TO;Sm;0;ON;2225 0338;;;;Y;;;;;
+2227;LOGICAL AND;Sm;0;ON;;;;;N;;;;;
+2228;LOGICAL OR;Sm;0;ON;;;;;N;;;;;
+2229;INTERSECTION;Sm;0;ON;;;;;N;;;;;
+222A;UNION;Sm;0;ON;;;;;N;;;;;
+222B;INTEGRAL;Sm;0;ON;;;;;Y;;;;;
+222C;DOUBLE INTEGRAL;Sm;0;ON;<compat> 222B 222B;;;;Y;;;;;
+222D;TRIPLE INTEGRAL;Sm;0;ON;<compat> 222B 222B 222B;;;;Y;;;;;
+222E;CONTOUR INTEGRAL;Sm;0;ON;;;;;Y;;;;;
+222F;SURFACE INTEGRAL;Sm;0;ON;<compat> 222E 222E;;;;Y;;;;;
+2230;VOLUME INTEGRAL;Sm;0;ON;<compat> 222E 222E 222E;;;;Y;;;;;
+2231;CLOCKWISE INTEGRAL;Sm;0;ON;;;;;Y;;;;;
+2232;CLOCKWISE CONTOUR INTEGRAL;Sm;0;ON;;;;;Y;;;;;
+2233;ANTICLOCKWISE CONTOUR INTEGRAL;Sm;0;ON;;;;;Y;;;;;
+2234;THEREFORE;Sm;0;ON;;;;;N;;;;;
+2235;BECAUSE;Sm;0;ON;;;;;N;;;;;
+2236;RATIO;Sm;0;ON;;;;;N;;;;;
+2237;PROPORTION;Sm;0;ON;;;;;N;;;;;
+2238;DOT MINUS;Sm;0;ON;;;;;N;;;;;
+2239;EXCESS;Sm;0;ON;;;;;Y;;;;;
+223A;GEOMETRIC PROPORTION;Sm;0;ON;;;;;N;;;;;
+223B;HOMOTHETIC;Sm;0;ON;;;;;Y;;;;;
+223C;TILDE OPERATOR;Sm;0;ON;;;;;Y;;;;;
+223D;REVERSED TILDE;Sm;0;ON;;;;;Y;;lazy S;;;
+223E;INVERTED LAZY S;Sm;0;ON;;;;;Y;;;;;
+223F;SINE WAVE;Sm;0;ON;;;;;Y;;;;;
+2240;WREATH PRODUCT;Sm;0;ON;;;;;Y;;;;;
+2241;NOT TILDE;Sm;0;ON;223C 0338;;;;Y;;;;;
+2242;MINUS TILDE;Sm;0;ON;;;;;Y;;;;;
+2243;ASYMPTOTICALLY EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2244;NOT ASYMPTOTICALLY EQUAL TO;Sm;0;ON;2243 0338;;;;Y;;;;;
+2245;APPROXIMATELY EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2246;APPROXIMATELY BUT NOT ACTUALLY EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2247;NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO;Sm;0;ON;2245 0338;;;;Y;;;;;
+2248;ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2249;NOT ALMOST EQUAL TO;Sm;0;ON;2248 0338;;;;Y;;;;;
+224A;ALMOST EQUAL OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+224B;TRIPLE TILDE;Sm;0;ON;;;;;Y;;;;;
+224C;ALL EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+224D;EQUIVALENT TO;Sm;0;ON;;;;;N;;;;;
+224E;GEOMETRICALLY EQUIVALENT TO;Sm;0;ON;;;;;N;;;;;
+224F;DIFFERENCE BETWEEN;Sm;0;ON;;;;;N;;;;;
+2250;APPROACHES THE LIMIT;Sm;0;ON;;;;;N;;;;;
+2251;GEOMETRICALLY EQUAL TO;Sm;0;ON;;;;;N;;;;;
+2252;APPROXIMATELY EQUAL TO OR THE IMAGE OF;Sm;0;ON;;;;;Y;;;;;
+2253;IMAGE OF OR APPROXIMATELY EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2254;COLON EQUALS;Sm;0;ON;;;;;Y;COLON EQUAL;;;;
+2255;EQUALS COLON;Sm;0;ON;;;;;Y;EQUAL COLON;;;;
+2256;RING IN EQUAL TO;Sm;0;ON;;;;;N;;;;;
+2257;RING EQUAL TO;Sm;0;ON;;;;;N;;;;;
+2258;CORRESPONDS TO;Sm;0;ON;;;;;N;;;;;
+2259;ESTIMATES;Sm;0;ON;;;;;N;;;;;
+225A;EQUIANGULAR TO;Sm;0;ON;;;;;N;;;;;
+225B;STAR EQUALS;Sm;0;ON;;;;;N;;;;;
+225C;DELTA EQUAL TO;Sm;0;ON;;;;;N;;;;;
+225D;EQUAL TO BY DEFINITION;Sm;0;ON;;;;;N;;;;;
+225E;MEASURED BY;Sm;0;ON;;;;;N;;;;;
+225F;QUESTIONED EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2260;NOT EQUAL TO;Sm;0;ON;003D 0338;;;;Y;;;;;
+2261;IDENTICAL TO;Sm;0;ON;;;;;N;;;;;
+2262;NOT IDENTICAL TO;Sm;0;ON;2261 0338;;;;Y;;;;;
+2263;STRICTLY EQUIVALENT TO;Sm;0;ON;;;;;N;;;;;
+2264;LESS-THAN OR EQUAL TO;Sm;0;ON;;;;;Y;LESS THAN OR EQUAL TO;;;;
+2265;GREATER-THAN OR EQUAL TO;Sm;0;ON;;;;;Y;GREATER THAN OR EQUAL TO;;;;
+2266;LESS-THAN OVER EQUAL TO;Sm;0;ON;;;;;Y;LESS THAN OVER EQUAL TO;;;;
+2267;GREATER-THAN OVER EQUAL TO;Sm;0;ON;;;;;Y;GREATER THAN OVER EQUAL TO;;;;
+2268;LESS-THAN BUT NOT EQUAL TO;Sm;0;ON;;;;;Y;LESS THAN BUT NOT EQUAL TO;;;;
+2269;GREATER-THAN BUT NOT EQUAL TO;Sm;0;ON;;;;;Y;GREATER THAN BUT NOT EQUAL TO;;;;
+226A;MUCH LESS-THAN;Sm;0;ON;;;;;Y;MUCH LESS THAN;;;;
+226B;MUCH GREATER-THAN;Sm;0;ON;;;;;Y;MUCH GREATER THAN;;;;
+226C;BETWEEN;Sm;0;ON;;;;;N;;;;;
+226D;NOT EQUIVALENT TO;Sm;0;ON;224D 0338;;;;N;;;;;
+226E;NOT LESS-THAN;Sm;0;ON;003C 0338;;;;Y;NOT LESS THAN;;;;
+226F;NOT GREATER-THAN;Sm;0;ON;003E 0338;;;;Y;NOT GREATER THAN;;;;
+2270;NEITHER LESS-THAN NOR EQUAL TO;Sm;0;ON;2264 0338;;;;Y;NEITHER LESS THAN NOR EQUAL TO;;;;
+2271;NEITHER GREATER-THAN NOR EQUAL TO;Sm;0;ON;2265 0338;;;;Y;NEITHER GREATER THAN NOR EQUAL TO;;;;
+2272;LESS-THAN OR EQUIVALENT TO;Sm;0;ON;;;;;Y;LESS THAN OR EQUIVALENT TO;;;;
+2273;GREATER-THAN OR EQUIVALENT TO;Sm;0;ON;;;;;Y;GREATER THAN OR EQUIVALENT TO;;;;
+2274;NEITHER LESS-THAN NOR EQUIVALENT TO;Sm;0;ON;2272 0338;;;;Y;NEITHER LESS THAN NOR EQUIVALENT TO;;;;
+2275;NEITHER GREATER-THAN NOR EQUIVALENT TO;Sm;0;ON;2273 0338;;;;Y;NEITHER GREATER THAN NOR EQUIVALENT TO;;;;
+2276;LESS-THAN OR GREATER-THAN;Sm;0;ON;;;;;Y;LESS THAN OR GREATER THAN;;;;
+2277;GREATER-THAN OR LESS-THAN;Sm;0;ON;;;;;Y;GREATER THAN OR LESS THAN;;;;
+2278;NEITHER LESS-THAN NOR GREATER-THAN;Sm;0;ON;2276 0338;;;;Y;NEITHER LESS THAN NOR GREATER THAN;;;;
+2279;NEITHER GREATER-THAN NOR LESS-THAN;Sm;0;ON;2277 0338;;;;Y;NEITHER GREATER THAN NOR LESS THAN;;;;
+227A;PRECEDES;Sm;0;ON;;;;;Y;;;;;
+227B;SUCCEEDS;Sm;0;ON;;;;;Y;;;;;
+227C;PRECEDES OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+227D;SUCCEEDS OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+227E;PRECEDES OR EQUIVALENT TO;Sm;0;ON;;;;;Y;;;;;
+227F;SUCCEEDS OR EQUIVALENT TO;Sm;0;ON;;;;;Y;;;;;
+2280;DOES NOT PRECEDE;Sm;0;ON;227A 0338;;;;Y;;;;;
+2281;DOES NOT SUCCEED;Sm;0;ON;227B 0338;;;;Y;;;;;
+2282;SUBSET OF;Sm;0;ON;;;;;Y;;;;;
+2283;SUPERSET OF;Sm;0;ON;;;;;Y;;;;;
+2284;NOT A SUBSET OF;Sm;0;ON;2282 0338;;;;Y;;;;;
+2285;NOT A SUPERSET OF;Sm;0;ON;2283 0338;;;;Y;;;;;
+2286;SUBSET OF OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2287;SUPERSET OF OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2288;NEITHER A SUBSET OF NOR EQUAL TO;Sm;0;ON;2286 0338;;;;Y;;;;;
+2289;NEITHER A SUPERSET OF NOR EQUAL TO;Sm;0;ON;2287 0338;;;;Y;;;;;
+228A;SUBSET OF WITH NOT EQUAL TO;Sm;0;ON;;;;;Y;SUBSET OF OR NOT EQUAL TO;;;;
+228B;SUPERSET OF WITH NOT EQUAL TO;Sm;0;ON;;;;;Y;SUPERSET OF OR NOT EQUAL TO;;;;
+228C;MULTISET;Sm;0;ON;;;;;Y;;;;;
+228D;MULTISET MULTIPLICATION;Sm;0;ON;;;;;N;;;;;
+228E;MULTISET UNION;Sm;0;ON;;;;;N;;;;;
+228F;SQUARE IMAGE OF;Sm;0;ON;;;;;Y;;;;;
+2290;SQUARE ORIGINAL OF;Sm;0;ON;;;;;Y;;;;;
+2291;SQUARE IMAGE OF OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2292;SQUARE ORIGINAL OF OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2293;SQUARE CAP;Sm;0;ON;;;;;N;;;;;
+2294;SQUARE CUP;Sm;0;ON;;;;;N;;;;;
+2295;CIRCLED PLUS;Sm;0;ON;;;;;N;;;;;
+2296;CIRCLED MINUS;Sm;0;ON;;;;;N;;;;;
+2297;CIRCLED TIMES;Sm;0;ON;;;;;N;;;;;
+2298;CIRCLED DIVISION SLASH;Sm;0;ON;;;;;Y;;;;;
+2299;CIRCLED DOT OPERATOR;Sm;0;ON;;;;;N;;;;;
+229A;CIRCLED RING OPERATOR;Sm;0;ON;;;;;N;;;;;
+229B;CIRCLED ASTERISK OPERATOR;Sm;0;ON;;;;;N;;;;;
+229C;CIRCLED EQUALS;Sm;0;ON;;;;;N;;;;;
+229D;CIRCLED DASH;Sm;0;ON;;;;;N;;;;;
+229E;SQUARED PLUS;Sm;0;ON;;;;;N;;;;;
+229F;SQUARED MINUS;Sm;0;ON;;;;;N;;;;;
+22A0;SQUARED TIMES;Sm;0;ON;;;;;N;;;;;
+22A1;SQUARED DOT OPERATOR;Sm;0;ON;;;;;N;;;;;
+22A2;RIGHT TACK;Sm;0;ON;;;;;Y;;;;;
+22A3;LEFT TACK;Sm;0;ON;;;;;Y;;;;;
+22A4;DOWN TACK;Sm;0;ON;;;;;N;;;;;
+22A5;UP TACK;Sm;0;ON;;;;;N;;;;;
+22A6;ASSERTION;Sm;0;ON;;;;;Y;;;;;
+22A7;MODELS;Sm;0;ON;;;;;Y;;;;;
+22A8;TRUE;Sm;0;ON;;;;;Y;;;;;
+22A9;FORCES;Sm;0;ON;;;;;Y;;;;;
+22AA;TRIPLE VERTICAL BAR RIGHT TURNSTILE;Sm;0;ON;;;;;Y;;;;;
+22AB;DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE;Sm;0;ON;;;;;Y;;;;;
+22AC;DOES NOT PROVE;Sm;0;ON;22A2 0338;;;;Y;;;;;
+22AD;NOT TRUE;Sm;0;ON;22A8 0338;;;;Y;;;;;
+22AE;DOES NOT FORCE;Sm;0;ON;22A9 0338;;;;Y;;;;;
+22AF;NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE;Sm;0;ON;22AB 0338;;;;Y;;;;;
+22B0;PRECEDES UNDER RELATION;Sm;0;ON;;;;;Y;;;;;
+22B1;SUCCEEDS UNDER RELATION;Sm;0;ON;;;;;Y;;;;;
+22B2;NORMAL SUBGROUP OF;Sm;0;ON;;;;;Y;;;;;
+22B3;CONTAINS AS NORMAL SUBGROUP;Sm;0;ON;;;;;Y;;;;;
+22B4;NORMAL SUBGROUP OF OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+22B5;CONTAINS AS NORMAL SUBGROUP OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+22B6;ORIGINAL OF;Sm;0;ON;;;;;Y;;;;;
+22B7;IMAGE OF;Sm;0;ON;;;;;Y;;;;;
+22B8;MULTIMAP;Sm;0;ON;;;;;Y;;;;;
+22B9;HERMITIAN CONJUGATE MATRIX;Sm;0;ON;;;;;N;;;;;
+22BA;INTERCALATE;Sm;0;ON;;;;;N;;;;;
+22BB;XOR;Sm;0;ON;;;;;N;;;;;
+22BC;NAND;Sm;0;ON;;;;;N;;;;;
+22BD;NOR;Sm;0;ON;;;;;N;;;;;
+22BE;RIGHT ANGLE WITH ARC;Sm;0;ON;;;;;Y;;;;;
+22BF;RIGHT TRIANGLE;Sm;0;ON;;;;;Y;;;;;
+22C0;N-ARY LOGICAL AND;Sm;0;ON;;;;;N;;;;;
+22C1;N-ARY LOGICAL OR;Sm;0;ON;;;;;N;;;;;
+22C2;N-ARY INTERSECTION;Sm;0;ON;;;;;N;;;;;
+22C3;N-ARY UNION;Sm;0;ON;;;;;N;;;;;
+22C4;DIAMOND OPERATOR;Sm;0;ON;;;;;N;;;;;
+22C5;DOT OPERATOR;Sm;0;ON;;;;;N;;;;;
+22C6;STAR OPERATOR;Sm;0;ON;;;;;N;;;;;
+22C7;DIVISION TIMES;Sm;0;ON;;;;;N;;;;;
+22C8;BOWTIE;Sm;0;ON;;;;;N;;;;;
+22C9;LEFT NORMAL FACTOR SEMIDIRECT PRODUCT;Sm;0;ON;;;;;Y;;;;;
+22CA;RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT;Sm;0;ON;;;;;Y;;;;;
+22CB;LEFT SEMIDIRECT PRODUCT;Sm;0;ON;;;;;Y;;;;;
+22CC;RIGHT SEMIDIRECT PRODUCT;Sm;0;ON;;;;;Y;;;;;
+22CD;REVERSED TILDE EQUALS;Sm;0;ON;;;;;Y;;;;;
+22CE;CURLY LOGICAL OR;Sm;0;ON;;;;;N;;;;;
+22CF;CURLY LOGICAL AND;Sm;0;ON;;;;;N;;;;;
+22D0;DOUBLE SUBSET;Sm;0;ON;;;;;Y;;;;;
+22D1;DOUBLE SUPERSET;Sm;0;ON;;;;;Y;;;;;
+22D2;DOUBLE INTERSECTION;Sm;0;ON;;;;;N;;;;;
+22D3;DOUBLE UNION;Sm;0;ON;;;;;N;;;;;
+22D4;PITCHFORK;Sm;0;ON;;;;;N;;;;;
+22D5;EQUAL AND PARALLEL TO;Sm;0;ON;;;;;N;;;;;
+22D6;LESS-THAN WITH DOT;Sm;0;ON;;;;;Y;LESS THAN WITH DOT;;;;
+22D7;GREATER-THAN WITH DOT;Sm;0;ON;;;;;Y;GREATER THAN WITH DOT;;;;
+22D8;VERY MUCH LESS-THAN;Sm;0;ON;;;;;Y;VERY MUCH LESS THAN;;;;
+22D9;VERY MUCH GREATER-THAN;Sm;0;ON;;;;;Y;VERY MUCH GREATER THAN;;;;
+22DA;LESS-THAN EQUAL TO OR GREATER-THAN;Sm;0;ON;;;;;Y;LESS THAN EQUAL TO OR GREATER THAN;;;;
+22DB;GREATER-THAN EQUAL TO OR LESS-THAN;Sm;0;ON;;;;;Y;GREATER THAN EQUAL TO OR LESS THAN;;;;
+22DC;EQUAL TO OR LESS-THAN;Sm;0;ON;;;;;Y;EQUAL TO OR LESS THAN;;;;
+22DD;EQUAL TO OR GREATER-THAN;Sm;0;ON;;;;;Y;EQUAL TO OR GREATER THAN;;;;
+22DE;EQUAL TO OR PRECEDES;Sm;0;ON;;;;;Y;;;;;
+22DF;EQUAL TO OR SUCCEEDS;Sm;0;ON;;;;;Y;;;;;
+22E0;DOES NOT PRECEDE OR EQUAL;Sm;0;ON;227C 0338;;;;Y;;;;;
+22E1;DOES NOT SUCCEED OR EQUAL;Sm;0;ON;227D 0338;;;;Y;;;;;
+22E2;NOT SQUARE IMAGE OF OR EQUAL TO;Sm;0;ON;2291 0338;;;;Y;;;;;
+22E3;NOT SQUARE ORIGINAL OF OR EQUAL TO;Sm;0;ON;2292 0338;;;;Y;;;;;
+22E4;SQUARE IMAGE OF OR NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+22E5;SQUARE ORIGINAL OF OR NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+22E6;LESS-THAN BUT NOT EQUIVALENT TO;Sm;0;ON;;;;;Y;LESS THAN BUT NOT EQUIVALENT TO;;;;
+22E7;GREATER-THAN BUT NOT EQUIVALENT TO;Sm;0;ON;;;;;Y;GREATER THAN BUT NOT EQUIVALENT TO;;;;
+22E8;PRECEDES BUT NOT EQUIVALENT TO;Sm;0;ON;;;;;Y;;;;;
+22E9;SUCCEEDS BUT NOT EQUIVALENT TO;Sm;0;ON;;;;;Y;;;;;
+22EA;NOT NORMAL SUBGROUP OF;Sm;0;ON;22B2 0338;;;;Y;;;;;
+22EB;DOES NOT CONTAIN AS NORMAL SUBGROUP;Sm;0;ON;22B3 0338;;;;Y;;;;;
+22EC;NOT NORMAL SUBGROUP OF OR EQUAL TO;Sm;0;ON;22B4 0338;;;;Y;;;;;
+22ED;DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL;Sm;0;ON;22B5 0338;;;;Y;;;;;
+22EE;VERTICAL ELLIPSIS;Sm;0;ON;;;;;N;;;;;
+22EF;MIDLINE HORIZONTAL ELLIPSIS;Sm;0;ON;;;;;N;;;;;
+22F0;UP RIGHT DIAGONAL ELLIPSIS;Sm;0;ON;;;;;Y;;;;;
+22F1;DOWN RIGHT DIAGONAL ELLIPSIS;Sm;0;ON;;;;;Y;;;;;
+22F2;ELEMENT OF WITH LONG HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;;
+22F3;ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;;
+22F4;SMALL ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;;
+22F5;ELEMENT OF WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;;
+22F6;ELEMENT OF WITH OVERBAR;Sm;0;ON;;;;;Y;;;;;
+22F7;SMALL ELEMENT OF WITH OVERBAR;Sm;0;ON;;;;;Y;;;;;
+22F8;ELEMENT OF WITH UNDERBAR;Sm;0;ON;;;;;Y;;;;;
+22F9;ELEMENT OF WITH TWO HORIZONTAL STROKES;Sm;0;ON;;;;;Y;;;;;
+22FA;CONTAINS WITH LONG HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;;
+22FB;CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;;
+22FC;SMALL CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;;
+22FD;CONTAINS WITH OVERBAR;Sm;0;ON;;;;;Y;;;;;
+22FE;SMALL CONTAINS WITH OVERBAR;Sm;0;ON;;;;;Y;;;;;
+22FF;Z NOTATION BAG MEMBERSHIP;Sm;0;ON;;;;;Y;;;;;
+2300;DIAMETER SIGN;So;0;ON;;;;;N;;;;;
+2301;ELECTRIC ARROW;So;0;ON;;;;;N;;;;;
+2302;HOUSE;So;0;ON;;;;;N;;;;;
+2303;UP ARROWHEAD;So;0;ON;;;;;N;;;;;
+2304;DOWN ARROWHEAD;So;0;ON;;;;;N;;;;;
+2305;PROJECTIVE;So;0;ON;;;;;N;;;;;
+2306;PERSPECTIVE;So;0;ON;;;;;N;;;;;
+2307;WAVY LINE;So;0;ON;;;;;N;;;;;
+2308;LEFT CEILING;Sm;0;ON;;;;;Y;;;;;
+2309;RIGHT CEILING;Sm;0;ON;;;;;Y;;;;;
+230A;LEFT FLOOR;Sm;0;ON;;;;;Y;;;;;
+230B;RIGHT FLOOR;Sm;0;ON;;;;;Y;;;;;
+230C;BOTTOM RIGHT CROP;So;0;ON;;;;;N;;;;;
+230D;BOTTOM LEFT CROP;So;0;ON;;;;;N;;;;;
+230E;TOP RIGHT CROP;So;0;ON;;;;;N;;;;;
+230F;TOP LEFT CROP;So;0;ON;;;;;N;;;;;
+2310;REVERSED NOT SIGN;So;0;ON;;;;;N;;;;;
+2311;SQUARE LOZENGE;So;0;ON;;;;;N;;;;;
+2312;ARC;So;0;ON;;;;;N;;;;;
+2313;SEGMENT;So;0;ON;;;;;N;;;;;
+2314;SECTOR;So;0;ON;;;;;N;;;;;
+2315;TELEPHONE RECORDER;So;0;ON;;;;;N;;;;;
+2316;POSITION INDICATOR;So;0;ON;;;;;N;;;;;
+2317;VIEWDATA SQUARE;So;0;ON;;;;;N;;;;;
+2318;PLACE OF INTEREST SIGN;So;0;ON;;;;;N;COMMAND KEY;;;;
+2319;TURNED NOT SIGN;So;0;ON;;;;;N;;;;;
+231A;WATCH;So;0;ON;;;;;N;;;;;
+231B;HOURGLASS;So;0;ON;;;;;N;;;;;
+231C;TOP LEFT CORNER;So;0;ON;;;;;N;;;;;
+231D;TOP RIGHT CORNER;So;0;ON;;;;;N;;;;;
+231E;BOTTOM LEFT CORNER;So;0;ON;;;;;N;;;;;
+231F;BOTTOM RIGHT CORNER;So;0;ON;;;;;N;;;;;
+2320;TOP HALF INTEGRAL;Sm;0;ON;;;;;Y;;;;;
+2321;BOTTOM HALF INTEGRAL;Sm;0;ON;;;;;Y;;;;;
+2322;FROWN;So;0;ON;;;;;N;;;;;
+2323;SMILE;So;0;ON;;;;;N;;;;;
+2324;UP ARROWHEAD BETWEEN TWO HORIZONTAL BARS;So;0;ON;;;;;N;ENTER KEY;;;;
+2325;OPTION KEY;So;0;ON;;;;;N;;;;;
+2326;ERASE TO THE RIGHT;So;0;ON;;;;;N;DELETE TO THE RIGHT KEY;;;;
+2327;X IN A RECTANGLE BOX;So;0;ON;;;;;N;CLEAR KEY;;;;
+2328;KEYBOARD;So;0;ON;;;;;N;;;;;
+2329;LEFT-POINTING ANGLE BRACKET;Ps;0;ON;3008;;;;Y;BRA;;;;
+232A;RIGHT-POINTING ANGLE BRACKET;Pe;0;ON;3009;;;;Y;KET;;;;
+232B;ERASE TO THE LEFT;So;0;ON;;;;;N;DELETE TO THE LEFT KEY;;;;
+232C;BENZENE RING;So;0;ON;;;;;N;;;;;
+232D;CYLINDRICITY;So;0;ON;;;;;N;;;;;
+232E;ALL AROUND-PROFILE;So;0;ON;;;;;N;;;;;
+232F;SYMMETRY;So;0;ON;;;;;N;;;;;
+2330;TOTAL RUNOUT;So;0;ON;;;;;N;;;;;
+2331;DIMENSION ORIGIN;So;0;ON;;;;;N;;;;;
+2332;CONICAL TAPER;So;0;ON;;;;;N;;;;;
+2333;SLOPE;So;0;ON;;;;;N;;;;;
+2334;COUNTERBORE;So;0;ON;;;;;N;;;;;
+2335;COUNTERSINK;So;0;ON;;;;;N;;;;;
+2336;APL FUNCTIONAL SYMBOL I-BEAM;So;0;L;;;;;N;;;;;
+2337;APL FUNCTIONAL SYMBOL SQUISH QUAD;So;0;L;;;;;N;;;;;
+2338;APL FUNCTIONAL SYMBOL QUAD EQUAL;So;0;L;;;;;N;;;;;
+2339;APL FUNCTIONAL SYMBOL QUAD DIVIDE;So;0;L;;;;;N;;;;;
+233A;APL FUNCTIONAL SYMBOL QUAD DIAMOND;So;0;L;;;;;N;;;;;
+233B;APL FUNCTIONAL SYMBOL QUAD JOT;So;0;L;;;;;N;;;;;
+233C;APL FUNCTIONAL SYMBOL QUAD CIRCLE;So;0;L;;;;;N;;;;;
+233D;APL FUNCTIONAL SYMBOL CIRCLE STILE;So;0;L;;;;;N;;;;;
+233E;APL FUNCTIONAL SYMBOL CIRCLE JOT;So;0;L;;;;;N;;;;;
+233F;APL FUNCTIONAL SYMBOL SLASH BAR;So;0;L;;;;;N;;;;;
+2340;APL FUNCTIONAL SYMBOL BACKSLASH BAR;So;0;L;;;;;N;;;;;
+2341;APL FUNCTIONAL SYMBOL QUAD SLASH;So;0;L;;;;;N;;;;;
+2342;APL FUNCTIONAL SYMBOL QUAD BACKSLASH;So;0;L;;;;;N;;;;;
+2343;APL FUNCTIONAL SYMBOL QUAD LESS-THAN;So;0;L;;;;;N;;;;;
+2344;APL FUNCTIONAL SYMBOL QUAD GREATER-THAN;So;0;L;;;;;N;;;;;
+2345;APL FUNCTIONAL SYMBOL LEFTWARDS VANE;So;0;L;;;;;N;;;;;
+2346;APL FUNCTIONAL SYMBOL RIGHTWARDS VANE;So;0;L;;;;;N;;;;;
+2347;APL FUNCTIONAL SYMBOL QUAD LEFTWARDS ARROW;So;0;L;;;;;N;;;;;
+2348;APL FUNCTIONAL SYMBOL QUAD RIGHTWARDS ARROW;So;0;L;;;;;N;;;;;
+2349;APL FUNCTIONAL SYMBOL CIRCLE BACKSLASH;So;0;L;;;;;N;;;;;
+234A;APL FUNCTIONAL SYMBOL DOWN TACK UNDERBAR;So;0;L;;;;;N;;*;;;
+234B;APL FUNCTIONAL SYMBOL DELTA STILE;So;0;L;;;;;N;;;;;
+234C;APL FUNCTIONAL SYMBOL QUAD DOWN CARET;So;0;L;;;;;N;;;;;
+234D;APL FUNCTIONAL SYMBOL QUAD DELTA;So;0;L;;;;;N;;;;;
+234E;APL FUNCTIONAL SYMBOL DOWN TACK JOT;So;0;L;;;;;N;;*;;;
+234F;APL FUNCTIONAL SYMBOL UPWARDS VANE;So;0;L;;;;;N;;;;;
+2350;APL FUNCTIONAL SYMBOL QUAD UPWARDS ARROW;So;0;L;;;;;N;;;;;
+2351;APL FUNCTIONAL SYMBOL UP TACK OVERBAR;So;0;L;;;;;N;;*;;;
+2352;APL FUNCTIONAL SYMBOL DEL STILE;So;0;L;;;;;N;;;;;
+2353;APL FUNCTIONAL SYMBOL QUAD UP CARET;So;0;L;;;;;N;;;;;
+2354;APL FUNCTIONAL SYMBOL QUAD DEL;So;0;L;;;;;N;;;;;
+2355;APL FUNCTIONAL SYMBOL UP TACK JOT;So;0;L;;;;;N;;*;;;
+2356;APL FUNCTIONAL SYMBOL DOWNWARDS VANE;So;0;L;;;;;N;;;;;
+2357;APL FUNCTIONAL SYMBOL QUAD DOWNWARDS ARROW;So;0;L;;;;;N;;;;;
+2358;APL FUNCTIONAL SYMBOL QUOTE UNDERBAR;So;0;L;;;;;N;;;;;
+2359;APL FUNCTIONAL SYMBOL DELTA UNDERBAR;So;0;L;;;;;N;;;;;
+235A;APL FUNCTIONAL SYMBOL DIAMOND UNDERBAR;So;0;L;;;;;N;;;;;
+235B;APL FUNCTIONAL SYMBOL JOT UNDERBAR;So;0;L;;;;;N;;;;;
+235C;APL FUNCTIONAL SYMBOL CIRCLE UNDERBAR;So;0;L;;;;;N;;;;;
+235D;APL FUNCTIONAL SYMBOL UP SHOE JOT;So;0;L;;;;;N;;;;;
+235E;APL FUNCTIONAL SYMBOL QUOTE QUAD;So;0;L;;;;;N;;;;;
+235F;APL FUNCTIONAL SYMBOL CIRCLE STAR;So;0;L;;;;;N;;;;;
+2360;APL FUNCTIONAL SYMBOL QUAD COLON;So;0;L;;;;;N;;;;;
+2361;APL FUNCTIONAL SYMBOL UP TACK DIAERESIS;So;0;L;;;;;N;;*;;;
+2362;APL FUNCTIONAL SYMBOL DEL DIAERESIS;So;0;L;;;;;N;;;;;
+2363;APL FUNCTIONAL SYMBOL STAR DIAERESIS;So;0;L;;;;;N;;;;;
+2364;APL FUNCTIONAL SYMBOL JOT DIAERESIS;So;0;L;;;;;N;;;;;
+2365;APL FUNCTIONAL SYMBOL CIRCLE DIAERESIS;So;0;L;;;;;N;;;;;
+2366;APL FUNCTIONAL SYMBOL DOWN SHOE STILE;So;0;L;;;;;N;;;;;
+2367;APL FUNCTIONAL SYMBOL LEFT SHOE STILE;So;0;L;;;;;N;;;;;
+2368;APL FUNCTIONAL SYMBOL TILDE DIAERESIS;So;0;L;;;;;N;;;;;
+2369;APL FUNCTIONAL SYMBOL GREATER-THAN DIAERESIS;So;0;L;;;;;N;;;;;
+236A;APL FUNCTIONAL SYMBOL COMMA BAR;So;0;L;;;;;N;;;;;
+236B;APL FUNCTIONAL SYMBOL DEL TILDE;So;0;L;;;;;N;;;;;
+236C;APL FUNCTIONAL SYMBOL ZILDE;So;0;L;;;;;N;;;;;
+236D;APL FUNCTIONAL SYMBOL STILE TILDE;So;0;L;;;;;N;;;;;
+236E;APL FUNCTIONAL SYMBOL SEMICOLON UNDERBAR;So;0;L;;;;;N;;;;;
+236F;APL FUNCTIONAL SYMBOL QUAD NOT EQUAL;So;0;L;;;;;N;;;;;
+2370;APL FUNCTIONAL SYMBOL QUAD QUESTION;So;0;L;;;;;N;;;;;
+2371;APL FUNCTIONAL SYMBOL DOWN CARET TILDE;So;0;L;;;;;N;;;;;
+2372;APL FUNCTIONAL SYMBOL UP CARET TILDE;So;0;L;;;;;N;;;;;
+2373;APL FUNCTIONAL SYMBOL IOTA;So;0;L;;;;;N;;;;;
+2374;APL FUNCTIONAL SYMBOL RHO;So;0;L;;;;;N;;;;;
+2375;APL FUNCTIONAL SYMBOL OMEGA;So;0;L;;;;;N;;;;;
+2376;APL FUNCTIONAL SYMBOL ALPHA UNDERBAR;So;0;L;;;;;N;;;;;
+2377;APL FUNCTIONAL SYMBOL EPSILON UNDERBAR;So;0;L;;;;;N;;;;;
+2378;APL FUNCTIONAL SYMBOL IOTA UNDERBAR;So;0;L;;;;;N;;;;;
+2379;APL FUNCTIONAL SYMBOL OMEGA UNDERBAR;So;0;L;;;;;N;;;;;
+237A;APL FUNCTIONAL SYMBOL ALPHA;So;0;L;;;;;N;;;;;
+237B;NOT CHECK MARK;So;0;ON;;;;;N;;;;;
+237C;RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW;Sm;0;ON;;;;;N;;;;;
+237D;SHOULDERED OPEN BOX;So;0;ON;;;;;N;;;;;
+237E;BELL SYMBOL;So;0;ON;;;;;N;;;;;
+237F;VERTICAL LINE WITH MIDDLE DOT;So;0;ON;;;;;N;;;;;
+2380;INSERTION SYMBOL;So;0;ON;;;;;N;;;;;
+2381;CONTINUOUS UNDERLINE SYMBOL;So;0;ON;;;;;N;;;;;
+2382;DISCONTINUOUS UNDERLINE SYMBOL;So;0;ON;;;;;N;;;;;
+2383;EMPHASIS SYMBOL;So;0;ON;;;;;N;;;;;
+2384;COMPOSITION SYMBOL;So;0;ON;;;;;N;;;;;
+2385;WHITE SQUARE WITH CENTRE VERTICAL LINE;So;0;ON;;;;;N;;;;;
+2386;ENTER SYMBOL;So;0;ON;;;;;N;;;;;
+2387;ALTERNATIVE KEY SYMBOL;So;0;ON;;;;;N;;;;;
+2388;HELM SYMBOL;So;0;ON;;;;;N;;;;;
+2389;CIRCLED HORIZONTAL BAR WITH NOTCH;So;0;ON;;;;;N;;pause;;;
+238A;CIRCLED TRIANGLE DOWN;So;0;ON;;;;;N;;break;;;
+238B;BROKEN CIRCLE WITH NORTHWEST ARROW;So;0;ON;;;;;N;;escape;;;
+238C;UNDO SYMBOL;So;0;ON;;;;;N;;;;;
+238D;MONOSTABLE SYMBOL;So;0;ON;;;;;N;;;;;
+238E;HYSTERESIS SYMBOL;So;0;ON;;;;;N;;;;;
+238F;OPEN-CIRCUIT-OUTPUT H-TYPE SYMBOL;So;0;ON;;;;;N;;;;;
+2390;OPEN-CIRCUIT-OUTPUT L-TYPE SYMBOL;So;0;ON;;;;;N;;;;;
+2391;PASSIVE-PULL-DOWN-OUTPUT SYMBOL;So;0;ON;;;;;N;;;;;
+2392;PASSIVE-PULL-UP-OUTPUT SYMBOL;So;0;ON;;;;;N;;;;;
+2393;DIRECT CURRENT SYMBOL FORM TWO;So;0;ON;;;;;N;;;;;
+2394;SOFTWARE-FUNCTION SYMBOL;So;0;ON;;;;;N;;;;;
+2395;APL FUNCTIONAL SYMBOL QUAD;So;0;L;;;;;N;;;;;
+2396;DECIMAL SEPARATOR KEY SYMBOL;So;0;ON;;;;;N;;;;;
+2397;PREVIOUS PAGE;So;0;ON;;;;;N;;;;;
+2398;NEXT PAGE;So;0;ON;;;;;N;;;;;
+2399;PRINT SCREEN SYMBOL;So;0;ON;;;;;N;;;;;
+239A;CLEAR SCREEN SYMBOL;So;0;ON;;;;;N;;;;;
+239B;LEFT PARENTHESIS UPPER HOOK;Sm;0;ON;;;;;N;;;;;
+239C;LEFT PARENTHESIS EXTENSION;Sm;0;ON;;;;;N;;;;;
+239D;LEFT PARENTHESIS LOWER HOOK;Sm;0;ON;;;;;N;;;;;
+239E;RIGHT PARENTHESIS UPPER HOOK;Sm;0;ON;;;;;N;;;;;
+239F;RIGHT PARENTHESIS EXTENSION;Sm;0;ON;;;;;N;;;;;
+23A0;RIGHT PARENTHESIS LOWER HOOK;Sm;0;ON;;;;;N;;;;;
+23A1;LEFT SQUARE BRACKET UPPER CORNER;Sm;0;ON;;;;;N;;;;;
+23A2;LEFT SQUARE BRACKET EXTENSION;Sm;0;ON;;;;;N;;;;;
+23A3;LEFT SQUARE BRACKET LOWER CORNER;Sm;0;ON;;;;;N;;;;;
+23A4;RIGHT SQUARE BRACKET UPPER CORNER;Sm;0;ON;;;;;N;;;;;
+23A5;RIGHT SQUARE BRACKET EXTENSION;Sm;0;ON;;;;;N;;;;;
+23A6;RIGHT SQUARE BRACKET LOWER CORNER;Sm;0;ON;;;;;N;;;;;
+23A7;LEFT CURLY BRACKET UPPER HOOK;Sm;0;ON;;;;;N;;;;;
+23A8;LEFT CURLY BRACKET MIDDLE PIECE;Sm;0;ON;;;;;N;;;;;
+23A9;LEFT CURLY BRACKET LOWER HOOK;Sm;0;ON;;;;;N;;;;;
+23AA;CURLY BRACKET EXTENSION;Sm;0;ON;;;;;N;;;;;
+23AB;RIGHT CURLY BRACKET UPPER HOOK;Sm;0;ON;;;;;N;;;;;
+23AC;RIGHT CURLY BRACKET MIDDLE PIECE;Sm;0;ON;;;;;N;;;;;
+23AD;RIGHT CURLY BRACKET LOWER HOOK;Sm;0;ON;;;;;N;;;;;
+23AE;INTEGRAL EXTENSION;Sm;0;ON;;;;;N;;;;;
+23AF;HORIZONTAL LINE EXTENSION;Sm;0;ON;;;;;N;;;;;
+23B0;UPPER LEFT OR LOWER RIGHT CURLY BRACKET SECTION;Sm;0;ON;;;;;N;;;;;
+23B1;UPPER RIGHT OR LOWER LEFT CURLY BRACKET SECTION;Sm;0;ON;;;;;N;;;;;
+23B2;SUMMATION TOP;Sm;0;ON;;;;;N;;;;;
+23B3;SUMMATION BOTTOM;Sm;0;ON;;;;;N;;;;;
+23B4;TOP SQUARE BRACKET;So;0;ON;;;;;N;;;;;
+23B5;BOTTOM SQUARE BRACKET;So;0;ON;;;;;N;;;;;
+23B6;BOTTOM SQUARE BRACKET OVER TOP SQUARE BRACKET;So;0;ON;;;;;N;;;;;
+23B7;RADICAL SYMBOL BOTTOM;So;0;ON;;;;;N;;;;;
+23B8;LEFT VERTICAL BOX LINE;So;0;ON;;;;;N;;;;;
+23B9;RIGHT VERTICAL BOX LINE;So;0;ON;;;;;N;;;;;
+23BA;HORIZONTAL SCAN LINE-1;So;0;ON;;;;;N;;;;;
+23BB;HORIZONTAL SCAN LINE-3;So;0;ON;;;;;N;;;;;
+23BC;HORIZONTAL SCAN LINE-7;So;0;ON;;;;;N;;;;;
+23BD;HORIZONTAL SCAN LINE-9;So;0;ON;;;;;N;;;;;
+23BE;DENTISTRY SYMBOL LIGHT VERTICAL AND TOP RIGHT;So;0;ON;;;;;N;;;;;
+23BF;DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM RIGHT;So;0;ON;;;;;N;;;;;
+23C0;DENTISTRY SYMBOL LIGHT VERTICAL WITH CIRCLE;So;0;ON;;;;;N;;;;;
+23C1;DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH CIRCLE;So;0;ON;;;;;N;;;;;
+23C2;DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH CIRCLE;So;0;ON;;;;;N;;;;;
+23C3;DENTISTRY SYMBOL LIGHT VERTICAL WITH TRIANGLE;So;0;ON;;;;;N;;;;;
+23C4;DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH TRIANGLE;So;0;ON;;;;;N;;;;;
+23C5;DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH TRIANGLE;So;0;ON;;;;;N;;;;;
+23C6;DENTISTRY SYMBOL LIGHT VERTICAL AND WAVE;So;0;ON;;;;;N;;;;;
+23C7;DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH WAVE;So;0;ON;;;;;N;;;;;
+23C8;DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH WAVE;So;0;ON;;;;;N;;;;;
+23C9;DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL;So;0;ON;;;;;N;;;;;
+23CA;DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL;So;0;ON;;;;;N;;;;;
+23CB;DENTISTRY SYMBOL LIGHT VERTICAL AND TOP LEFT;So;0;ON;;;;;N;;;;;
+23CC;DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM LEFT;So;0;ON;;;;;N;;;;;
+23CD;SQUARE FOOT;So;0;ON;;;;;N;;;;;
+23CE;RETURN SYMBOL;So;0;ON;;;;;N;;;;;
+23CF;EJECT SYMBOL;So;0;ON;;;;;N;;;;;
+23D0;VERTICAL LINE EXTENSION;So;0;ON;;;;;N;;;;;
+23D1;METRICAL BREVE;So;0;ON;;;;;N;;;;;
+23D2;METRICAL LONG OVER SHORT;So;0;ON;;;;;N;;;;;
+23D3;METRICAL SHORT OVER LONG;So;0;ON;;;;;N;;;;;
+23D4;METRICAL LONG OVER TWO SHORTS;So;0;ON;;;;;N;;;;;
+23D5;METRICAL TWO SHORTS OVER LONG;So;0;ON;;;;;N;;;;;
+23D6;METRICAL TWO SHORTS JOINED;So;0;ON;;;;;N;;;;;
+23D7;METRICAL TRISEME;So;0;ON;;;;;N;;;;;
+23D8;METRICAL TETRASEME;So;0;ON;;;;;N;;;;;
+23D9;METRICAL PENTASEME;So;0;ON;;;;;N;;;;;
+23DA;EARTH GROUND;So;0;ON;;;;;N;;;;;
+23DB;FUSE;So;0;ON;;;;;N;;;;;
+23DC;TOP PARENTHESIS;Sm;0;ON;;;;;N;;mathematical use;;;
+23DD;BOTTOM PARENTHESIS;Sm;0;ON;;;;;N;;mathematical use;;;
+23DE;TOP CURLY BRACKET;Sm;0;ON;;;;;N;;mathematical use;;;
+23DF;BOTTOM CURLY BRACKET;Sm;0;ON;;;;;N;;mathematical use;;;
+23E0;TOP TORTOISE SHELL BRACKET;Sm;0;ON;;;;;N;;mathematical use;;;
+23E1;BOTTOM TORTOISE SHELL BRACKET;Sm;0;ON;;;;;N;;mathematical use;;;
+23E2;WHITE TRAPEZIUM;So;0;ON;;;;;N;;;;;
+23E3;BENZENE RING WITH CIRCLE;So;0;ON;;;;;N;;;;;
+23E4;STRAIGHTNESS;So;0;ON;;;;;N;;;;;
+23E5;FLATNESS;So;0;ON;;;;;N;;;;;
+23E6;AC CURRENT;So;0;ON;;;;;N;;;;;
+23E7;ELECTRICAL INTERSECTION;So;0;ON;;;;;N;;;;;
+2400;SYMBOL FOR NULL;So;0;ON;;;;;N;GRAPHIC FOR NULL;;;;
+2401;SYMBOL FOR START OF HEADING;So;0;ON;;;;;N;GRAPHIC FOR START OF HEADING;;;;
+2402;SYMBOL FOR START OF TEXT;So;0;ON;;;;;N;GRAPHIC FOR START OF TEXT;;;;
+2403;SYMBOL FOR END OF TEXT;So;0;ON;;;;;N;GRAPHIC FOR END OF TEXT;;;;
+2404;SYMBOL FOR END OF TRANSMISSION;So;0;ON;;;;;N;GRAPHIC FOR END OF TRANSMISSION;;;;
+2405;SYMBOL FOR ENQUIRY;So;0;ON;;;;;N;GRAPHIC FOR ENQUIRY;;;;
+2406;SYMBOL FOR ACKNOWLEDGE;So;0;ON;;;;;N;GRAPHIC FOR ACKNOWLEDGE;;;;
+2407;SYMBOL FOR BELL;So;0;ON;;;;;N;GRAPHIC FOR BELL;;;;
+2408;SYMBOL FOR BACKSPACE;So;0;ON;;;;;N;GRAPHIC FOR BACKSPACE;;;;
+2409;SYMBOL FOR HORIZONTAL TABULATION;So;0;ON;;;;;N;GRAPHIC FOR HORIZONTAL TABULATION;;;;
+240A;SYMBOL FOR LINE FEED;So;0;ON;;;;;N;GRAPHIC FOR LINE FEED;;;;
+240B;SYMBOL FOR VERTICAL TABULATION;So;0;ON;;;;;N;GRAPHIC FOR VERTICAL TABULATION;;;;
+240C;SYMBOL FOR FORM FEED;So;0;ON;;;;;N;GRAPHIC FOR FORM FEED;;;;
+240D;SYMBOL FOR CARRIAGE RETURN;So;0;ON;;;;;N;GRAPHIC FOR CARRIAGE RETURN;;;;
+240E;SYMBOL FOR SHIFT OUT;So;0;ON;;;;;N;GRAPHIC FOR SHIFT OUT;;;;
+240F;SYMBOL FOR SHIFT IN;So;0;ON;;;;;N;GRAPHIC FOR SHIFT IN;;;;
+2410;SYMBOL FOR DATA LINK ESCAPE;So;0;ON;;;;;N;GRAPHIC FOR DATA LINK ESCAPE;;;;
+2411;SYMBOL FOR DEVICE CONTROL ONE;So;0;ON;;;;;N;GRAPHIC FOR DEVICE CONTROL ONE;;;;
+2412;SYMBOL FOR DEVICE CONTROL TWO;So;0;ON;;;;;N;GRAPHIC FOR DEVICE CONTROL TWO;;;;
+2413;SYMBOL FOR DEVICE CONTROL THREE;So;0;ON;;;;;N;GRAPHIC FOR DEVICE CONTROL THREE;;;;
+2414;SYMBOL FOR DEVICE CONTROL FOUR;So;0;ON;;;;;N;GRAPHIC FOR DEVICE CONTROL FOUR;;;;
+2415;SYMBOL FOR NEGATIVE ACKNOWLEDGE;So;0;ON;;;;;N;GRAPHIC FOR NEGATIVE ACKNOWLEDGE;;;;
+2416;SYMBOL FOR SYNCHRONOUS IDLE;So;0;ON;;;;;N;GRAPHIC FOR SYNCHRONOUS IDLE;;;;
+2417;SYMBOL FOR END OF TRANSMISSION BLOCK;So;0;ON;;;;;N;GRAPHIC FOR END OF TRANSMISSION BLOCK;;;;
+2418;SYMBOL FOR CANCEL;So;0;ON;;;;;N;GRAPHIC FOR CANCEL;;;;
+2419;SYMBOL FOR END OF MEDIUM;So;0;ON;;;;;N;GRAPHIC FOR END OF MEDIUM;;;;
+241A;SYMBOL FOR SUBSTITUTE;So;0;ON;;;;;N;GRAPHIC FOR SUBSTITUTE;;;;
+241B;SYMBOL FOR ESCAPE;So;0;ON;;;;;N;GRAPHIC FOR ESCAPE;;;;
+241C;SYMBOL FOR FILE SEPARATOR;So;0;ON;;;;;N;GRAPHIC FOR FILE SEPARATOR;;;;
+241D;SYMBOL FOR GROUP SEPARATOR;So;0;ON;;;;;N;GRAPHIC FOR GROUP SEPARATOR;;;;
+241E;SYMBOL FOR RECORD SEPARATOR;So;0;ON;;;;;N;GRAPHIC FOR RECORD SEPARATOR;;;;
+241F;SYMBOL FOR UNIT SEPARATOR;So;0;ON;;;;;N;GRAPHIC FOR UNIT SEPARATOR;;;;
+2420;SYMBOL FOR SPACE;So;0;ON;;;;;N;GRAPHIC FOR SPACE;;;;
+2421;SYMBOL FOR DELETE;So;0;ON;;;;;N;GRAPHIC FOR DELETE;;;;
+2422;BLANK SYMBOL;So;0;ON;;;;;N;BLANK;;;;
+2423;OPEN BOX;So;0;ON;;;;;N;;;;;
+2424;SYMBOL FOR NEWLINE;So;0;ON;;;;;N;GRAPHIC FOR NEWLINE;;;;
+2425;SYMBOL FOR DELETE FORM TWO;So;0;ON;;;;;N;;;;;
+2426;SYMBOL FOR SUBSTITUTE FORM TWO;So;0;ON;;;;;N;;;;;
+2440;OCR HOOK;So;0;ON;;;;;N;;;;;
+2441;OCR CHAIR;So;0;ON;;;;;N;;;;;
+2442;OCR FORK;So;0;ON;;;;;N;;;;;
+2443;OCR INVERTED FORK;So;0;ON;;;;;N;;;;;
+2444;OCR BELT BUCKLE;So;0;ON;;;;;N;;;;;
+2445;OCR BOW TIE;So;0;ON;;;;;N;;;;;
+2446;OCR BRANCH BANK IDENTIFICATION;So;0;ON;;;;;N;;;;;
+2447;OCR AMOUNT OF CHECK;So;0;ON;;;;;N;;;;;
+2448;OCR DASH;So;0;ON;;;;;N;;;;;
+2449;OCR CUSTOMER ACCOUNT NUMBER;So;0;ON;;;;;N;;;;;
+244A;OCR DOUBLE BACKSLASH;So;0;ON;;;;;N;;;;;
+2460;CIRCLED DIGIT ONE;No;0;ON;<circle> 0031;;1;1;N;;;;;
+2461;CIRCLED DIGIT TWO;No;0;ON;<circle> 0032;;2;2;N;;;;;
+2462;CIRCLED DIGIT THREE;No;0;ON;<circle> 0033;;3;3;N;;;;;
+2463;CIRCLED DIGIT FOUR;No;0;ON;<circle> 0034;;4;4;N;;;;;
+2464;CIRCLED DIGIT FIVE;No;0;ON;<circle> 0035;;5;5;N;;;;;
+2465;CIRCLED DIGIT SIX;No;0;ON;<circle> 0036;;6;6;N;;;;;
+2466;CIRCLED DIGIT SEVEN;No;0;ON;<circle> 0037;;7;7;N;;;;;
+2467;CIRCLED DIGIT EIGHT;No;0;ON;<circle> 0038;;8;8;N;;;;;
+2468;CIRCLED DIGIT NINE;No;0;ON;<circle> 0039;;9;9;N;;;;;
+2469;CIRCLED NUMBER TEN;No;0;ON;<circle> 0031 0030;;;10;N;;;;;
+246A;CIRCLED NUMBER ELEVEN;No;0;ON;<circle> 0031 0031;;;11;N;;;;;
+246B;CIRCLED NUMBER TWELVE;No;0;ON;<circle> 0031 0032;;;12;N;;;;;
+246C;CIRCLED NUMBER THIRTEEN;No;0;ON;<circle> 0031 0033;;;13;N;;;;;
+246D;CIRCLED NUMBER FOURTEEN;No;0;ON;<circle> 0031 0034;;;14;N;;;;;
+246E;CIRCLED NUMBER FIFTEEN;No;0;ON;<circle> 0031 0035;;;15;N;;;;;
+246F;CIRCLED NUMBER SIXTEEN;No;0;ON;<circle> 0031 0036;;;16;N;;;;;
+2470;CIRCLED NUMBER SEVENTEEN;No;0;ON;<circle> 0031 0037;;;17;N;;;;;
+2471;CIRCLED NUMBER EIGHTEEN;No;0;ON;<circle> 0031 0038;;;18;N;;;;;
+2472;CIRCLED NUMBER NINETEEN;No;0;ON;<circle> 0031 0039;;;19;N;;;;;
+2473;CIRCLED NUMBER TWENTY;No;0;ON;<circle> 0032 0030;;;20;N;;;;;
+2474;PARENTHESIZED DIGIT ONE;No;0;ON;<compat> 0028 0031 0029;;1;1;N;;;;;
+2475;PARENTHESIZED DIGIT TWO;No;0;ON;<compat> 0028 0032 0029;;2;2;N;;;;;
+2476;PARENTHESIZED DIGIT THREE;No;0;ON;<compat> 0028 0033 0029;;3;3;N;;;;;
+2477;PARENTHESIZED DIGIT FOUR;No;0;ON;<compat> 0028 0034 0029;;4;4;N;;;;;
+2478;PARENTHESIZED DIGIT FIVE;No;0;ON;<compat> 0028 0035 0029;;5;5;N;;;;;
+2479;PARENTHESIZED DIGIT SIX;No;0;ON;<compat> 0028 0036 0029;;6;6;N;;;;;
+247A;PARENTHESIZED DIGIT SEVEN;No;0;ON;<compat> 0028 0037 0029;;7;7;N;;;;;
+247B;PARENTHESIZED DIGIT EIGHT;No;0;ON;<compat> 0028 0038 0029;;8;8;N;;;;;
+247C;PARENTHESIZED DIGIT NINE;No;0;ON;<compat> 0028 0039 0029;;9;9;N;;;;;
+247D;PARENTHESIZED NUMBER TEN;No;0;ON;<compat> 0028 0031 0030 0029;;;10;N;;;;;
+247E;PARENTHESIZED NUMBER ELEVEN;No;0;ON;<compat> 0028 0031 0031 0029;;;11;N;;;;;
+247F;PARENTHESIZED NUMBER TWELVE;No;0;ON;<compat> 0028 0031 0032 0029;;;12;N;;;;;
+2480;PARENTHESIZED NUMBER THIRTEEN;No;0;ON;<compat> 0028 0031 0033 0029;;;13;N;;;;;
+2481;PARENTHESIZED NUMBER FOURTEEN;No;0;ON;<compat> 0028 0031 0034 0029;;;14;N;;;;;
+2482;PARENTHESIZED NUMBER FIFTEEN;No;0;ON;<compat> 0028 0031 0035 0029;;;15;N;;;;;
+2483;PARENTHESIZED NUMBER SIXTEEN;No;0;ON;<compat> 0028 0031 0036 0029;;;16;N;;;;;
+2484;PARENTHESIZED NUMBER SEVENTEEN;No;0;ON;<compat> 0028 0031 0037 0029;;;17;N;;;;;
+2485;PARENTHESIZED NUMBER EIGHTEEN;No;0;ON;<compat> 0028 0031 0038 0029;;;18;N;;;;;
+2486;PARENTHESIZED NUMBER NINETEEN;No;0;ON;<compat> 0028 0031 0039 0029;;;19;N;;;;;
+2487;PARENTHESIZED NUMBER TWENTY;No;0;ON;<compat> 0028 0032 0030 0029;;;20;N;;;;;
+2488;DIGIT ONE FULL STOP;No;0;EN;<compat> 0031 002E;;1;1;N;DIGIT ONE PERIOD;;;;
+2489;DIGIT TWO FULL STOP;No;0;EN;<compat> 0032 002E;;2;2;N;DIGIT TWO PERIOD;;;;
+248A;DIGIT THREE FULL STOP;No;0;EN;<compat> 0033 002E;;3;3;N;DIGIT THREE PERIOD;;;;
+248B;DIGIT FOUR FULL STOP;No;0;EN;<compat> 0034 002E;;4;4;N;DIGIT FOUR PERIOD;;;;
+248C;DIGIT FIVE FULL STOP;No;0;EN;<compat> 0035 002E;;5;5;N;DIGIT FIVE PERIOD;;;;
+248D;DIGIT SIX FULL STOP;No;0;EN;<compat> 0036 002E;;6;6;N;DIGIT SIX PERIOD;;;;
+248E;DIGIT SEVEN FULL STOP;No;0;EN;<compat> 0037 002E;;7;7;N;DIGIT SEVEN PERIOD;;;;
+248F;DIGIT EIGHT FULL STOP;No;0;EN;<compat> 0038 002E;;8;8;N;DIGIT EIGHT PERIOD;;;;
+2490;DIGIT NINE FULL STOP;No;0;EN;<compat> 0039 002E;;9;9;N;DIGIT NINE PERIOD;;;;
+2491;NUMBER TEN FULL STOP;No;0;EN;<compat> 0031 0030 002E;;;10;N;NUMBER TEN PERIOD;;;;
+2492;NUMBER ELEVEN FULL STOP;No;0;EN;<compat> 0031 0031 002E;;;11;N;NUMBER ELEVEN PERIOD;;;;
+2493;NUMBER TWELVE FULL STOP;No;0;EN;<compat> 0031 0032 002E;;;12;N;NUMBER TWELVE PERIOD;;;;
+2494;NUMBER THIRTEEN FULL STOP;No;0;EN;<compat> 0031 0033 002E;;;13;N;NUMBER THIRTEEN PERIOD;;;;
+2495;NUMBER FOURTEEN FULL STOP;No;0;EN;<compat> 0031 0034 002E;;;14;N;NUMBER FOURTEEN PERIOD;;;;
+2496;NUMBER FIFTEEN FULL STOP;No;0;EN;<compat> 0031 0035 002E;;;15;N;NUMBER FIFTEEN PERIOD;;;;
+2497;NUMBER SIXTEEN FULL STOP;No;0;EN;<compat> 0031 0036 002E;;;16;N;NUMBER SIXTEEN PERIOD;;;;
+2498;NUMBER SEVENTEEN FULL STOP;No;0;EN;<compat> 0031 0037 002E;;;17;N;NUMBER SEVENTEEN PERIOD;;;;
+2499;NUMBER EIGHTEEN FULL STOP;No;0;EN;<compat> 0031 0038 002E;;;18;N;NUMBER EIGHTEEN PERIOD;;;;
+249A;NUMBER NINETEEN FULL STOP;No;0;EN;<compat> 0031 0039 002E;;;19;N;NUMBER NINETEEN PERIOD;;;;
+249B;NUMBER TWENTY FULL STOP;No;0;EN;<compat> 0032 0030 002E;;;20;N;NUMBER TWENTY PERIOD;;;;
+249C;PARENTHESIZED LATIN SMALL LETTER A;So;0;L;<compat> 0028 0061 0029;;;;N;;;;;
+249D;PARENTHESIZED LATIN SMALL LETTER B;So;0;L;<compat> 0028 0062 0029;;;;N;;;;;
+249E;PARENTHESIZED LATIN SMALL LETTER C;So;0;L;<compat> 0028 0063 0029;;;;N;;;;;
+249F;PARENTHESIZED LATIN SMALL LETTER D;So;0;L;<compat> 0028 0064 0029;;;;N;;;;;
+24A0;PARENTHESIZED LATIN SMALL LETTER E;So;0;L;<compat> 0028 0065 0029;;;;N;;;;;
+24A1;PARENTHESIZED LATIN SMALL LETTER F;So;0;L;<compat> 0028 0066 0029;;;;N;;;;;
+24A2;PARENTHESIZED LATIN SMALL LETTER G;So;0;L;<compat> 0028 0067 0029;;;;N;;;;;
+24A3;PARENTHESIZED LATIN SMALL LETTER H;So;0;L;<compat> 0028 0068 0029;;;;N;;;;;
+24A4;PARENTHESIZED LATIN SMALL LETTER I;So;0;L;<compat> 0028 0069 0029;;;;N;;;;;
+24A5;PARENTHESIZED LATIN SMALL LETTER J;So;0;L;<compat> 0028 006A 0029;;;;N;;;;;
+24A6;PARENTHESIZED LATIN SMALL LETTER K;So;0;L;<compat> 0028 006B 0029;;;;N;;;;;
+24A7;PARENTHESIZED LATIN SMALL LETTER L;So;0;L;<compat> 0028 006C 0029;;;;N;;;;;
+24A8;PARENTHESIZED LATIN SMALL LETTER M;So;0;L;<compat> 0028 006D 0029;;;;N;;;;;
+24A9;PARENTHESIZED LATIN SMALL LETTER N;So;0;L;<compat> 0028 006E 0029;;;;N;;;;;
+24AA;PARENTHESIZED LATIN SMALL LETTER O;So;0;L;<compat> 0028 006F 0029;;;;N;;;;;
+24AB;PARENTHESIZED LATIN SMALL LETTER P;So;0;L;<compat> 0028 0070 0029;;;;N;;;;;
+24AC;PARENTHESIZED LATIN SMALL LETTER Q;So;0;L;<compat> 0028 0071 0029;;;;N;;;;;
+24AD;PARENTHESIZED LATIN SMALL LETTER R;So;0;L;<compat> 0028 0072 0029;;;;N;;;;;
+24AE;PARENTHESIZED LATIN SMALL LETTER S;So;0;L;<compat> 0028 0073 0029;;;;N;;;;;
+24AF;PARENTHESIZED LATIN SMALL LETTER T;So;0;L;<compat> 0028 0074 0029;;;;N;;;;;
+24B0;PARENTHESIZED LATIN SMALL LETTER U;So;0;L;<compat> 0028 0075 0029;;;;N;;;;;
+24B1;PARENTHESIZED LATIN SMALL LETTER V;So;0;L;<compat> 0028 0076 0029;;;;N;;;;;
+24B2;PARENTHESIZED LATIN SMALL LETTER W;So;0;L;<compat> 0028 0077 0029;;;;N;;;;;
+24B3;PARENTHESIZED LATIN SMALL LETTER X;So;0;L;<compat> 0028 0078 0029;;;;N;;;;;
+24B4;PARENTHESIZED LATIN SMALL LETTER Y;So;0;L;<compat> 0028 0079 0029;;;;N;;;;;
+24B5;PARENTHESIZED LATIN SMALL LETTER Z;So;0;L;<compat> 0028 007A 0029;;;;N;;;;;
+24B6;CIRCLED LATIN CAPITAL LETTER A;So;0;L;<circle> 0041;;;;N;;;;24D0;
+24B7;CIRCLED LATIN CAPITAL LETTER B;So;0;L;<circle> 0042;;;;N;;;;24D1;
+24B8;CIRCLED LATIN CAPITAL LETTER C;So;0;L;<circle> 0043;;;;N;;;;24D2;
+24B9;CIRCLED LATIN CAPITAL LETTER D;So;0;L;<circle> 0044;;;;N;;;;24D3;
+24BA;CIRCLED LATIN CAPITAL LETTER E;So;0;L;<circle> 0045;;;;N;;;;24D4;
+24BB;CIRCLED LATIN CAPITAL LETTER F;So;0;L;<circle> 0046;;;;N;;;;24D5;
+24BC;CIRCLED LATIN CAPITAL LETTER G;So;0;L;<circle> 0047;;;;N;;;;24D6;
+24BD;CIRCLED LATIN CAPITAL LETTER H;So;0;L;<circle> 0048;;;;N;;;;24D7;
+24BE;CIRCLED LATIN CAPITAL LETTER I;So;0;L;<circle> 0049;;;;N;;;;24D8;
+24BF;CIRCLED LATIN CAPITAL LETTER J;So;0;L;<circle> 004A;;;;N;;;;24D9;
+24C0;CIRCLED LATIN CAPITAL LETTER K;So;0;L;<circle> 004B;;;;N;;;;24DA;
+24C1;CIRCLED LATIN CAPITAL LETTER L;So;0;L;<circle> 004C;;;;N;;;;24DB;
+24C2;CIRCLED LATIN CAPITAL LETTER M;So;0;L;<circle> 004D;;;;N;;;;24DC;
+24C3;CIRCLED LATIN CAPITAL LETTER N;So;0;L;<circle> 004E;;;;N;;;;24DD;
+24C4;CIRCLED LATIN CAPITAL LETTER O;So;0;L;<circle> 004F;;;;N;;;;24DE;
+24C5;CIRCLED LATIN CAPITAL LETTER P;So;0;L;<circle> 0050;;;;N;;;;24DF;
+24C6;CIRCLED LATIN CAPITAL LETTER Q;So;0;L;<circle> 0051;;;;N;;;;24E0;
+24C7;CIRCLED LATIN CAPITAL LETTER R;So;0;L;<circle> 0052;;;;N;;;;24E1;
+24C8;CIRCLED LATIN CAPITAL LETTER S;So;0;L;<circle> 0053;;;;N;;;;24E2;
+24C9;CIRCLED LATIN CAPITAL LETTER T;So;0;L;<circle> 0054;;;;N;;;;24E3;
+24CA;CIRCLED LATIN CAPITAL LETTER U;So;0;L;<circle> 0055;;;;N;;;;24E4;
+24CB;CIRCLED LATIN CAPITAL LETTER V;So;0;L;<circle> 0056;;;;N;;;;24E5;
+24CC;CIRCLED LATIN CAPITAL LETTER W;So;0;L;<circle> 0057;;;;N;;;;24E6;
+24CD;CIRCLED LATIN CAPITAL LETTER X;So;0;L;<circle> 0058;;;;N;;;;24E7;
+24CE;CIRCLED LATIN CAPITAL LETTER Y;So;0;L;<circle> 0059;;;;N;;;;24E8;
+24CF;CIRCLED LATIN CAPITAL LETTER Z;So;0;L;<circle> 005A;;;;N;;;;24E9;
+24D0;CIRCLED LATIN SMALL LETTER A;So;0;L;<circle> 0061;;;;N;;;24B6;;24B6
+24D1;CIRCLED LATIN SMALL LETTER B;So;0;L;<circle> 0062;;;;N;;;24B7;;24B7
+24D2;CIRCLED LATIN SMALL LETTER C;So;0;L;<circle> 0063;;;;N;;;24B8;;24B8
+24D3;CIRCLED LATIN SMALL LETTER D;So;0;L;<circle> 0064;;;;N;;;24B9;;24B9
+24D4;CIRCLED LATIN SMALL LETTER E;So;0;L;<circle> 0065;;;;N;;;24BA;;24BA
+24D5;CIRCLED LATIN SMALL LETTER F;So;0;L;<circle> 0066;;;;N;;;24BB;;24BB
+24D6;CIRCLED LATIN SMALL LETTER G;So;0;L;<circle> 0067;;;;N;;;24BC;;24BC
+24D7;CIRCLED LATIN SMALL LETTER H;So;0;L;<circle> 0068;;;;N;;;24BD;;24BD
+24D8;CIRCLED LATIN SMALL LETTER I;So;0;L;<circle> 0069;;;;N;;;24BE;;24BE
+24D9;CIRCLED LATIN SMALL LETTER J;So;0;L;<circle> 006A;;;;N;;;24BF;;24BF
+24DA;CIRCLED LATIN SMALL LETTER K;So;0;L;<circle> 006B;;;;N;;;24C0;;24C0
+24DB;CIRCLED LATIN SMALL LETTER L;So;0;L;<circle> 006C;;;;N;;;24C1;;24C1
+24DC;CIRCLED LATIN SMALL LETTER M;So;0;L;<circle> 006D;;;;N;;;24C2;;24C2
+24DD;CIRCLED LATIN SMALL LETTER N;So;0;L;<circle> 006E;;;;N;;;24C3;;24C3
+24DE;CIRCLED LATIN SMALL LETTER O;So;0;L;<circle> 006F;;;;N;;;24C4;;24C4
+24DF;CIRCLED LATIN SMALL LETTER P;So;0;L;<circle> 0070;;;;N;;;24C5;;24C5
+24E0;CIRCLED LATIN SMALL LETTER Q;So;0;L;<circle> 0071;;;;N;;;24C6;;24C6
+24E1;CIRCLED LATIN SMALL LETTER R;So;0;L;<circle> 0072;;;;N;;;24C7;;24C7
+24E2;CIRCLED LATIN SMALL LETTER S;So;0;L;<circle> 0073;;;;N;;;24C8;;24C8
+24E3;CIRCLED LATIN SMALL LETTER T;So;0;L;<circle> 0074;;;;N;;;24C9;;24C9
+24E4;CIRCLED LATIN SMALL LETTER U;So;0;L;<circle> 0075;;;;N;;;24CA;;24CA
+24E5;CIRCLED LATIN SMALL LETTER V;So;0;L;<circle> 0076;;;;N;;;24CB;;24CB
+24E6;CIRCLED LATIN SMALL LETTER W;So;0;L;<circle> 0077;;;;N;;;24CC;;24CC
+24E7;CIRCLED LATIN SMALL LETTER X;So;0;L;<circle> 0078;;;;N;;;24CD;;24CD
+24E8;CIRCLED LATIN SMALL LETTER Y;So;0;L;<circle> 0079;;;;N;;;24CE;;24CE
+24E9;CIRCLED LATIN SMALL LETTER Z;So;0;L;<circle> 007A;;;;N;;;24CF;;24CF
+24EA;CIRCLED DIGIT ZERO;No;0;ON;<circle> 0030;;0;0;N;;;;;
+24EB;NEGATIVE CIRCLED NUMBER ELEVEN;No;0;ON;;;;11;N;;;;;
+24EC;NEGATIVE CIRCLED NUMBER TWELVE;No;0;ON;;;;12;N;;;;;
+24ED;NEGATIVE CIRCLED NUMBER THIRTEEN;No;0;ON;;;;13;N;;;;;
+24EE;NEGATIVE CIRCLED NUMBER FOURTEEN;No;0;ON;;;;14;N;;;;;
+24EF;NEGATIVE CIRCLED NUMBER FIFTEEN;No;0;ON;;;;15;N;;;;;
+24F0;NEGATIVE CIRCLED NUMBER SIXTEEN;No;0;ON;;;;16;N;;;;;
+24F1;NEGATIVE CIRCLED NUMBER SEVENTEEN;No;0;ON;;;;17;N;;;;;
+24F2;NEGATIVE CIRCLED NUMBER EIGHTEEN;No;0;ON;;;;18;N;;;;;
+24F3;NEGATIVE CIRCLED NUMBER NINETEEN;No;0;ON;;;;19;N;;;;;
+24F4;NEGATIVE CIRCLED NUMBER TWENTY;No;0;ON;;;;20;N;;;;;
+24F5;DOUBLE CIRCLED DIGIT ONE;No;0;ON;;;1;1;N;;;;;
+24F6;DOUBLE CIRCLED DIGIT TWO;No;0;ON;;;2;2;N;;;;;
+24F7;DOUBLE CIRCLED DIGIT THREE;No;0;ON;;;3;3;N;;;;;
+24F8;DOUBLE CIRCLED DIGIT FOUR;No;0;ON;;;4;4;N;;;;;
+24F9;DOUBLE CIRCLED DIGIT FIVE;No;0;ON;;;5;5;N;;;;;
+24FA;DOUBLE CIRCLED DIGIT SIX;No;0;ON;;;6;6;N;;;;;
+24FB;DOUBLE CIRCLED DIGIT SEVEN;No;0;ON;;;7;7;N;;;;;
+24FC;DOUBLE CIRCLED DIGIT EIGHT;No;0;ON;;;8;8;N;;;;;
+24FD;DOUBLE CIRCLED DIGIT NINE;No;0;ON;;;9;9;N;;;;;
+24FE;DOUBLE CIRCLED NUMBER TEN;No;0;ON;;;;10;N;;;;;
+24FF;NEGATIVE CIRCLED DIGIT ZERO;No;0;ON;;;0;0;N;;;;;
+2500;BOX DRAWINGS LIGHT HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT HORIZONTAL;;;;
+2501;BOX DRAWINGS HEAVY HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY HORIZONTAL;;;;
+2502;BOX DRAWINGS LIGHT VERTICAL;So;0;ON;;;;;N;FORMS LIGHT VERTICAL;;;;
+2503;BOX DRAWINGS HEAVY VERTICAL;So;0;ON;;;;;N;FORMS HEAVY VERTICAL;;;;
+2504;BOX DRAWINGS LIGHT TRIPLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT TRIPLE DASH HORIZONTAL;;;;
+2505;BOX DRAWINGS HEAVY TRIPLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY TRIPLE DASH HORIZONTAL;;;;
+2506;BOX DRAWINGS LIGHT TRIPLE DASH VERTICAL;So;0;ON;;;;;N;FORMS LIGHT TRIPLE DASH VERTICAL;;;;
+2507;BOX DRAWINGS HEAVY TRIPLE DASH VERTICAL;So;0;ON;;;;;N;FORMS HEAVY TRIPLE DASH VERTICAL;;;;
+2508;BOX DRAWINGS LIGHT QUADRUPLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT QUADRUPLE DASH HORIZONTAL;;;;
+2509;BOX DRAWINGS HEAVY QUADRUPLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY QUADRUPLE DASH HORIZONTAL;;;;
+250A;BOX DRAWINGS LIGHT QUADRUPLE DASH VERTICAL;So;0;ON;;;;;N;FORMS LIGHT QUADRUPLE DASH VERTICAL;;;;
+250B;BOX DRAWINGS HEAVY QUADRUPLE DASH VERTICAL;So;0;ON;;;;;N;FORMS HEAVY QUADRUPLE DASH VERTICAL;;;;
+250C;BOX DRAWINGS LIGHT DOWN AND RIGHT;So;0;ON;;;;;N;FORMS LIGHT DOWN AND RIGHT;;;;
+250D;BOX DRAWINGS DOWN LIGHT AND RIGHT HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND RIGHT HEAVY;;;;
+250E;BOX DRAWINGS DOWN HEAVY AND RIGHT LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND RIGHT LIGHT;;;;
+250F;BOX DRAWINGS HEAVY DOWN AND RIGHT;So;0;ON;;;;;N;FORMS HEAVY DOWN AND RIGHT;;;;
+2510;BOX DRAWINGS LIGHT DOWN AND LEFT;So;0;ON;;;;;N;FORMS LIGHT DOWN AND LEFT;;;;
+2511;BOX DRAWINGS DOWN LIGHT AND LEFT HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND LEFT HEAVY;;;;
+2512;BOX DRAWINGS DOWN HEAVY AND LEFT LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND LEFT LIGHT;;;;
+2513;BOX DRAWINGS HEAVY DOWN AND LEFT;So;0;ON;;;;;N;FORMS HEAVY DOWN AND LEFT;;;;
+2514;BOX DRAWINGS LIGHT UP AND RIGHT;So;0;ON;;;;;N;FORMS LIGHT UP AND RIGHT;;;;
+2515;BOX DRAWINGS UP LIGHT AND RIGHT HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND RIGHT HEAVY;;;;
+2516;BOX DRAWINGS UP HEAVY AND RIGHT LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND RIGHT LIGHT;;;;
+2517;BOX DRAWINGS HEAVY UP AND RIGHT;So;0;ON;;;;;N;FORMS HEAVY UP AND RIGHT;;;;
+2518;BOX DRAWINGS LIGHT UP AND LEFT;So;0;ON;;;;;N;FORMS LIGHT UP AND LEFT;;;;
+2519;BOX DRAWINGS UP LIGHT AND LEFT HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND LEFT HEAVY;;;;
+251A;BOX DRAWINGS UP HEAVY AND LEFT LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND LEFT LIGHT;;;;
+251B;BOX DRAWINGS HEAVY UP AND LEFT;So;0;ON;;;;;N;FORMS HEAVY UP AND LEFT;;;;
+251C;BOX DRAWINGS LIGHT VERTICAL AND RIGHT;So;0;ON;;;;;N;FORMS LIGHT VERTICAL AND RIGHT;;;;
+251D;BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY;So;0;ON;;;;;N;FORMS VERTICAL LIGHT AND RIGHT HEAVY;;;;
+251E;BOX DRAWINGS UP HEAVY AND RIGHT DOWN LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND RIGHT DOWN LIGHT;;;;
+251F;BOX DRAWINGS DOWN HEAVY AND RIGHT UP LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND RIGHT UP LIGHT;;;;
+2520;BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT;So;0;ON;;;;;N;FORMS VERTICAL HEAVY AND RIGHT LIGHT;;;;
+2521;BOX DRAWINGS DOWN LIGHT AND RIGHT UP HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND RIGHT UP HEAVY;;;;
+2522;BOX DRAWINGS UP LIGHT AND RIGHT DOWN HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND RIGHT DOWN HEAVY;;;;
+2523;BOX DRAWINGS HEAVY VERTICAL AND RIGHT;So;0;ON;;;;;N;FORMS HEAVY VERTICAL AND RIGHT;;;;
+2524;BOX DRAWINGS LIGHT VERTICAL AND LEFT;So;0;ON;;;;;N;FORMS LIGHT VERTICAL AND LEFT;;;;
+2525;BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY;So;0;ON;;;;;N;FORMS VERTICAL LIGHT AND LEFT HEAVY;;;;
+2526;BOX DRAWINGS UP HEAVY AND LEFT DOWN LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND LEFT DOWN LIGHT;;;;
+2527;BOX DRAWINGS DOWN HEAVY AND LEFT UP LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND LEFT UP LIGHT;;;;
+2528;BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT;So;0;ON;;;;;N;FORMS VERTICAL HEAVY AND LEFT LIGHT;;;;
+2529;BOX DRAWINGS DOWN LIGHT AND LEFT UP HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND LEFT UP HEAVY;;;;
+252A;BOX DRAWINGS UP LIGHT AND LEFT DOWN HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND LEFT DOWN HEAVY;;;;
+252B;BOX DRAWINGS HEAVY VERTICAL AND LEFT;So;0;ON;;;;;N;FORMS HEAVY VERTICAL AND LEFT;;;;
+252C;BOX DRAWINGS LIGHT DOWN AND HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT DOWN AND HORIZONTAL;;;;
+252D;BOX DRAWINGS LEFT HEAVY AND RIGHT DOWN LIGHT;So;0;ON;;;;;N;FORMS LEFT HEAVY AND RIGHT DOWN LIGHT;;;;
+252E;BOX DRAWINGS RIGHT HEAVY AND LEFT DOWN LIGHT;So;0;ON;;;;;N;FORMS RIGHT HEAVY AND LEFT DOWN LIGHT;;;;
+252F;BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND HORIZONTAL HEAVY;;;;
+2530;BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND HORIZONTAL LIGHT;;;;
+2531;BOX DRAWINGS RIGHT LIGHT AND LEFT DOWN HEAVY;So;0;ON;;;;;N;FORMS RIGHT LIGHT AND LEFT DOWN HEAVY;;;;
+2532;BOX DRAWINGS LEFT LIGHT AND RIGHT DOWN HEAVY;So;0;ON;;;;;N;FORMS LEFT LIGHT AND RIGHT DOWN HEAVY;;;;
+2533;BOX DRAWINGS HEAVY DOWN AND HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY DOWN AND HORIZONTAL;;;;
+2534;BOX DRAWINGS LIGHT UP AND HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT UP AND HORIZONTAL;;;;
+2535;BOX DRAWINGS LEFT HEAVY AND RIGHT UP LIGHT;So;0;ON;;;;;N;FORMS LEFT HEAVY AND RIGHT UP LIGHT;;;;
+2536;BOX DRAWINGS RIGHT HEAVY AND LEFT UP LIGHT;So;0;ON;;;;;N;FORMS RIGHT HEAVY AND LEFT UP LIGHT;;;;
+2537;BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND HORIZONTAL HEAVY;;;;
+2538;BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND HORIZONTAL LIGHT;;;;
+2539;BOX DRAWINGS RIGHT LIGHT AND LEFT UP HEAVY;So;0;ON;;;;;N;FORMS RIGHT LIGHT AND LEFT UP HEAVY;;;;
+253A;BOX DRAWINGS LEFT LIGHT AND RIGHT UP HEAVY;So;0;ON;;;;;N;FORMS LEFT LIGHT AND RIGHT UP HEAVY;;;;
+253B;BOX DRAWINGS HEAVY UP AND HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY UP AND HORIZONTAL;;;;
+253C;BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT VERTICAL AND HORIZONTAL;;;;
+253D;BOX DRAWINGS LEFT HEAVY AND RIGHT VERTICAL LIGHT;So;0;ON;;;;;N;FORMS LEFT HEAVY AND RIGHT VERTICAL LIGHT;;;;
+253E;BOX DRAWINGS RIGHT HEAVY AND LEFT VERTICAL LIGHT;So;0;ON;;;;;N;FORMS RIGHT HEAVY AND LEFT VERTICAL LIGHT;;;;
+253F;BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY;So;0;ON;;;;;N;FORMS VERTICAL LIGHT AND HORIZONTAL HEAVY;;;;
+2540;BOX DRAWINGS UP HEAVY AND DOWN HORIZONTAL LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND DOWN HORIZONTAL LIGHT;;;;
+2541;BOX DRAWINGS DOWN HEAVY AND UP HORIZONTAL LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND UP HORIZONTAL LIGHT;;;;
+2542;BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT;So;0;ON;;;;;N;FORMS VERTICAL HEAVY AND HORIZONTAL LIGHT;;;;
+2543;BOX DRAWINGS LEFT UP HEAVY AND RIGHT DOWN LIGHT;So;0;ON;;;;;N;FORMS LEFT UP HEAVY AND RIGHT DOWN LIGHT;;;;
+2544;BOX DRAWINGS RIGHT UP HEAVY AND LEFT DOWN LIGHT;So;0;ON;;;;;N;FORMS RIGHT UP HEAVY AND LEFT DOWN LIGHT;;;;
+2545;BOX DRAWINGS LEFT DOWN HEAVY AND RIGHT UP LIGHT;So;0;ON;;;;;N;FORMS LEFT DOWN HEAVY AND RIGHT UP LIGHT;;;;
+2546;BOX DRAWINGS RIGHT DOWN HEAVY AND LEFT UP LIGHT;So;0;ON;;;;;N;FORMS RIGHT DOWN HEAVY AND LEFT UP LIGHT;;;;
+2547;BOX DRAWINGS DOWN LIGHT AND UP HORIZONTAL HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND UP HORIZONTAL HEAVY;;;;
+2548;BOX DRAWINGS UP LIGHT AND DOWN HORIZONTAL HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND DOWN HORIZONTAL HEAVY;;;;
+2549;BOX DRAWINGS RIGHT LIGHT AND LEFT VERTICAL HEAVY;So;0;ON;;;;;N;FORMS RIGHT LIGHT AND LEFT VERTICAL HEAVY;;;;
+254A;BOX DRAWINGS LEFT LIGHT AND RIGHT VERTICAL HEAVY;So;0;ON;;;;;N;FORMS LEFT LIGHT AND RIGHT VERTICAL HEAVY;;;;
+254B;BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY VERTICAL AND HORIZONTAL;;;;
+254C;BOX DRAWINGS LIGHT DOUBLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT DOUBLE DASH HORIZONTAL;;;;
+254D;BOX DRAWINGS HEAVY DOUBLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY DOUBLE DASH HORIZONTAL;;;;
+254E;BOX DRAWINGS LIGHT DOUBLE DASH VERTICAL;So;0;ON;;;;;N;FORMS LIGHT DOUBLE DASH VERTICAL;;;;
+254F;BOX DRAWINGS HEAVY DOUBLE DASH VERTICAL;So;0;ON;;;;;N;FORMS HEAVY DOUBLE DASH VERTICAL;;;;
+2550;BOX DRAWINGS DOUBLE HORIZONTAL;So;0;ON;;;;;N;FORMS DOUBLE HORIZONTAL;;;;
+2551;BOX DRAWINGS DOUBLE VERTICAL;So;0;ON;;;;;N;FORMS DOUBLE VERTICAL;;;;
+2552;BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE;So;0;ON;;;;;N;FORMS DOWN SINGLE AND RIGHT DOUBLE;;;;
+2553;BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE;So;0;ON;;;;;N;FORMS DOWN DOUBLE AND RIGHT SINGLE;;;;
+2554;BOX DRAWINGS DOUBLE DOWN AND RIGHT;So;0;ON;;;;;N;FORMS DOUBLE DOWN AND RIGHT;;;;
+2555;BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE;So;0;ON;;;;;N;FORMS DOWN SINGLE AND LEFT DOUBLE;;;;
+2556;BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE;So;0;ON;;;;;N;FORMS DOWN DOUBLE AND LEFT SINGLE;;;;
+2557;BOX DRAWINGS DOUBLE DOWN AND LEFT;So;0;ON;;;;;N;FORMS DOUBLE DOWN AND LEFT;;;;
+2558;BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE;So;0;ON;;;;;N;FORMS UP SINGLE AND RIGHT DOUBLE;;;;
+2559;BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE;So;0;ON;;;;;N;FORMS UP DOUBLE AND RIGHT SINGLE;;;;
+255A;BOX DRAWINGS DOUBLE UP AND RIGHT;So;0;ON;;;;;N;FORMS DOUBLE UP AND RIGHT;;;;
+255B;BOX DRAWINGS UP SINGLE AND LEFT DOUBLE;So;0;ON;;;;;N;FORMS UP SINGLE AND LEFT DOUBLE;;;;
+255C;BOX DRAWINGS UP DOUBLE AND LEFT SINGLE;So;0;ON;;;;;N;FORMS UP DOUBLE AND LEFT SINGLE;;;;
+255D;BOX DRAWINGS DOUBLE UP AND LEFT;So;0;ON;;;;;N;FORMS DOUBLE UP AND LEFT;;;;
+255E;BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE;So;0;ON;;;;;N;FORMS VERTICAL SINGLE AND RIGHT DOUBLE;;;;
+255F;BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE;So;0;ON;;;;;N;FORMS VERTICAL DOUBLE AND RIGHT SINGLE;;;;
+2560;BOX DRAWINGS DOUBLE VERTICAL AND RIGHT;So;0;ON;;;;;N;FORMS DOUBLE VERTICAL AND RIGHT;;;;
+2561;BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE;So;0;ON;;;;;N;FORMS VERTICAL SINGLE AND LEFT DOUBLE;;;;
+2562;BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE;So;0;ON;;;;;N;FORMS VERTICAL DOUBLE AND LEFT SINGLE;;;;
+2563;BOX DRAWINGS DOUBLE VERTICAL AND LEFT;So;0;ON;;;;;N;FORMS DOUBLE VERTICAL AND LEFT;;;;
+2564;BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE;So;0;ON;;;;;N;FORMS DOWN SINGLE AND HORIZONTAL DOUBLE;;;;
+2565;BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE;So;0;ON;;;;;N;FORMS DOWN DOUBLE AND HORIZONTAL SINGLE;;;;
+2566;BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL;So;0;ON;;;;;N;FORMS DOUBLE DOWN AND HORIZONTAL;;;;
+2567;BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE;So;0;ON;;;;;N;FORMS UP SINGLE AND HORIZONTAL DOUBLE;;;;
+2568;BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE;So;0;ON;;;;;N;FORMS UP DOUBLE AND HORIZONTAL SINGLE;;;;
+2569;BOX DRAWINGS DOUBLE UP AND HORIZONTAL;So;0;ON;;;;;N;FORMS DOUBLE UP AND HORIZONTAL;;;;
+256A;BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE;So;0;ON;;;;;N;FORMS VERTICAL SINGLE AND HORIZONTAL DOUBLE;;;;
+256B;BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE;So;0;ON;;;;;N;FORMS VERTICAL DOUBLE AND HORIZONTAL SINGLE;;;;
+256C;BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL;So;0;ON;;;;;N;FORMS DOUBLE VERTICAL AND HORIZONTAL;;;;
+256D;BOX DRAWINGS LIGHT ARC DOWN AND RIGHT;So;0;ON;;;;;N;FORMS LIGHT ARC DOWN AND RIGHT;;;;
+256E;BOX DRAWINGS LIGHT ARC DOWN AND LEFT;So;0;ON;;;;;N;FORMS LIGHT ARC DOWN AND LEFT;;;;
+256F;BOX DRAWINGS LIGHT ARC UP AND LEFT;So;0;ON;;;;;N;FORMS LIGHT ARC UP AND LEFT;;;;
+2570;BOX DRAWINGS LIGHT ARC UP AND RIGHT;So;0;ON;;;;;N;FORMS LIGHT ARC UP AND RIGHT;;;;
+2571;BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT;So;0;ON;;;;;N;FORMS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT;;;;
+2572;BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT;So;0;ON;;;;;N;FORMS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT;;;;
+2573;BOX DRAWINGS LIGHT DIAGONAL CROSS;So;0;ON;;;;;N;FORMS LIGHT DIAGONAL CROSS;;;;
+2574;BOX DRAWINGS LIGHT LEFT;So;0;ON;;;;;N;FORMS LIGHT LEFT;;;;
+2575;BOX DRAWINGS LIGHT UP;So;0;ON;;;;;N;FORMS LIGHT UP;;;;
+2576;BOX DRAWINGS LIGHT RIGHT;So;0;ON;;;;;N;FORMS LIGHT RIGHT;;;;
+2577;BOX DRAWINGS LIGHT DOWN;So;0;ON;;;;;N;FORMS LIGHT DOWN;;;;
+2578;BOX DRAWINGS HEAVY LEFT;So;0;ON;;;;;N;FORMS HEAVY LEFT;;;;
+2579;BOX DRAWINGS HEAVY UP;So;0;ON;;;;;N;FORMS HEAVY UP;;;;
+257A;BOX DRAWINGS HEAVY RIGHT;So;0;ON;;;;;N;FORMS HEAVY RIGHT;;;;
+257B;BOX DRAWINGS HEAVY DOWN;So;0;ON;;;;;N;FORMS HEAVY DOWN;;;;
+257C;BOX DRAWINGS LIGHT LEFT AND HEAVY RIGHT;So;0;ON;;;;;N;FORMS LIGHT LEFT AND HEAVY RIGHT;;;;
+257D;BOX DRAWINGS LIGHT UP AND HEAVY DOWN;So;0;ON;;;;;N;FORMS LIGHT UP AND HEAVY DOWN;;;;
+257E;BOX DRAWINGS HEAVY LEFT AND LIGHT RIGHT;So;0;ON;;;;;N;FORMS HEAVY LEFT AND LIGHT RIGHT;;;;
+257F;BOX DRAWINGS HEAVY UP AND LIGHT DOWN;So;0;ON;;;;;N;FORMS HEAVY UP AND LIGHT DOWN;;;;
+2580;UPPER HALF BLOCK;So;0;ON;;;;;N;;;;;
+2581;LOWER ONE EIGHTH BLOCK;So;0;ON;;;;;N;;;;;
+2582;LOWER ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;;
+2583;LOWER THREE EIGHTHS BLOCK;So;0;ON;;;;;N;;;;;
+2584;LOWER HALF BLOCK;So;0;ON;;;;;N;;;;;
+2585;LOWER FIVE EIGHTHS BLOCK;So;0;ON;;;;;N;;;;;
+2586;LOWER THREE QUARTERS BLOCK;So;0;ON;;;;;N;LOWER THREE QUARTER BLOCK;;;;
+2587;LOWER SEVEN EIGHTHS BLOCK;So;0;ON;;;;;N;;;;;
+2588;FULL BLOCK;So;0;ON;;;;;N;;;;;
+2589;LEFT SEVEN EIGHTHS BLOCK;So;0;ON;;;;;N;;;;;
+258A;LEFT THREE QUARTERS BLOCK;So;0;ON;;;;;N;LEFT THREE QUARTER BLOCK;;;;
+258B;LEFT FIVE EIGHTHS BLOCK;So;0;ON;;;;;N;;;;;
+258C;LEFT HALF BLOCK;So;0;ON;;;;;N;;;;;
+258D;LEFT THREE EIGHTHS BLOCK;So;0;ON;;;;;N;;;;;
+258E;LEFT ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;;
+258F;LEFT ONE EIGHTH BLOCK;So;0;ON;;;;;N;;;;;
+2590;RIGHT HALF BLOCK;So;0;ON;;;;;N;;;;;
+2591;LIGHT SHADE;So;0;ON;;;;;N;;;;;
+2592;MEDIUM SHADE;So;0;ON;;;;;N;;;;;
+2593;DARK SHADE;So;0;ON;;;;;N;;;;;
+2594;UPPER ONE EIGHTH BLOCK;So;0;ON;;;;;N;;;;;
+2595;RIGHT ONE EIGHTH BLOCK;So;0;ON;;;;;N;;;;;
+2596;QUADRANT LOWER LEFT;So;0;ON;;;;;N;;;;;
+2597;QUADRANT LOWER RIGHT;So;0;ON;;;;;N;;;;;
+2598;QUADRANT UPPER LEFT;So;0;ON;;;;;N;;;;;
+2599;QUADRANT UPPER LEFT AND LOWER LEFT AND LOWER RIGHT;So;0;ON;;;;;N;;;;;
+259A;QUADRANT UPPER LEFT AND LOWER RIGHT;So;0;ON;;;;;N;;;;;
+259B;QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER LEFT;So;0;ON;;;;;N;;;;;
+259C;QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER RIGHT;So;0;ON;;;;;N;;;;;
+259D;QUADRANT UPPER RIGHT;So;0;ON;;;;;N;;;;;
+259E;QUADRANT UPPER RIGHT AND LOWER LEFT;So;0;ON;;;;;N;;;;;
+259F;QUADRANT UPPER RIGHT AND LOWER LEFT AND LOWER RIGHT;So;0;ON;;;;;N;;;;;
+25A0;BLACK SQUARE;So;0;ON;;;;;N;;;;;
+25A1;WHITE SQUARE;So;0;ON;;;;;N;;;;;
+25A2;WHITE SQUARE WITH ROUNDED CORNERS;So;0;ON;;;;;N;;;;;
+25A3;WHITE SQUARE CONTAINING BLACK SMALL SQUARE;So;0;ON;;;;;N;;;;;
+25A4;SQUARE WITH HORIZONTAL FILL;So;0;ON;;;;;N;;;;;
+25A5;SQUARE WITH VERTICAL FILL;So;0;ON;;;;;N;;;;;
+25A6;SQUARE WITH ORTHOGONAL CROSSHATCH FILL;So;0;ON;;;;;N;;;;;
+25A7;SQUARE WITH UPPER LEFT TO LOWER RIGHT FILL;So;0;ON;;;;;N;;;;;
+25A8;SQUARE WITH UPPER RIGHT TO LOWER LEFT FILL;So;0;ON;;;;;N;;;;;
+25A9;SQUARE WITH DIAGONAL CROSSHATCH FILL;So;0;ON;;;;;N;;;;;
+25AA;BLACK SMALL SQUARE;So;0;ON;;;;;N;;;;;
+25AB;WHITE SMALL SQUARE;So;0;ON;;;;;N;;;;;
+25AC;BLACK RECTANGLE;So;0;ON;;;;;N;;;;;
+25AD;WHITE RECTANGLE;So;0;ON;;;;;N;;;;;
+25AE;BLACK VERTICAL RECTANGLE;So;0;ON;;;;;N;;;;;
+25AF;WHITE VERTICAL RECTANGLE;So;0;ON;;;;;N;;;;;
+25B0;BLACK PARALLELOGRAM;So;0;ON;;;;;N;;;;;
+25B1;WHITE PARALLELOGRAM;So;0;ON;;;;;N;;;;;
+25B2;BLACK UP-POINTING TRIANGLE;So;0;ON;;;;;N;BLACK UP POINTING TRIANGLE;;;;
+25B3;WHITE UP-POINTING TRIANGLE;So;0;ON;;;;;N;WHITE UP POINTING TRIANGLE;;;;
+25B4;BLACK UP-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;BLACK UP POINTING SMALL TRIANGLE;;;;
+25B5;WHITE UP-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;WHITE UP POINTING SMALL TRIANGLE;;;;
+25B6;BLACK RIGHT-POINTING TRIANGLE;So;0;ON;;;;;N;BLACK RIGHT POINTING TRIANGLE;;;;
+25B7;WHITE RIGHT-POINTING TRIANGLE;Sm;0;ON;;;;;N;WHITE RIGHT POINTING TRIANGLE;;;;
+25B8;BLACK RIGHT-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;BLACK RIGHT POINTING SMALL TRIANGLE;;;;
+25B9;WHITE RIGHT-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;WHITE RIGHT POINTING SMALL TRIANGLE;;;;
+25BA;BLACK RIGHT-POINTING POINTER;So;0;ON;;;;;N;BLACK RIGHT POINTING POINTER;;;;
+25BB;WHITE RIGHT-POINTING POINTER;So;0;ON;;;;;N;WHITE RIGHT POINTING POINTER;;;;
+25BC;BLACK DOWN-POINTING TRIANGLE;So;0;ON;;;;;N;BLACK DOWN POINTING TRIANGLE;;;;
+25BD;WHITE DOWN-POINTING TRIANGLE;So;0;ON;;;;;N;WHITE DOWN POINTING TRIANGLE;;;;
+25BE;BLACK DOWN-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;BLACK DOWN POINTING SMALL TRIANGLE;;;;
+25BF;WHITE DOWN-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;WHITE DOWN POINTING SMALL TRIANGLE;;;;
+25C0;BLACK LEFT-POINTING TRIANGLE;So;0;ON;;;;;N;BLACK LEFT POINTING TRIANGLE;;;;
+25C1;WHITE LEFT-POINTING TRIANGLE;Sm;0;ON;;;;;N;WHITE LEFT POINTING TRIANGLE;;;;
+25C2;BLACK LEFT-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;BLACK LEFT POINTING SMALL TRIANGLE;;;;
+25C3;WHITE LEFT-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;WHITE LEFT POINTING SMALL TRIANGLE;;;;
+25C4;BLACK LEFT-POINTING POINTER;So;0;ON;;;;;N;BLACK LEFT POINTING POINTER;;;;
+25C5;WHITE LEFT-POINTING POINTER;So;0;ON;;;;;N;WHITE LEFT POINTING POINTER;;;;
+25C6;BLACK DIAMOND;So;0;ON;;;;;N;;;;;
+25C7;WHITE DIAMOND;So;0;ON;;;;;N;;;;;
+25C8;WHITE DIAMOND CONTAINING BLACK SMALL DIAMOND;So;0;ON;;;;;N;;;;;
+25C9;FISHEYE;So;0;ON;;;;;N;;;;;
+25CA;LOZENGE;So;0;ON;;;;;N;;;;;
+25CB;WHITE CIRCLE;So;0;ON;;;;;N;;;;;
+25CC;DOTTED CIRCLE;So;0;ON;;;;;N;;;;;
+25CD;CIRCLE WITH VERTICAL FILL;So;0;ON;;;;;N;;;;;
+25CE;BULLSEYE;So;0;ON;;;;;N;;;;;
+25CF;BLACK CIRCLE;So;0;ON;;;;;N;;;;;
+25D0;CIRCLE WITH LEFT HALF BLACK;So;0;ON;;;;;N;;;;;
+25D1;CIRCLE WITH RIGHT HALF BLACK;So;0;ON;;;;;N;;;;;
+25D2;CIRCLE WITH LOWER HALF BLACK;So;0;ON;;;;;N;;;;;
+25D3;CIRCLE WITH UPPER HALF BLACK;So;0;ON;;;;;N;;;;;
+25D4;CIRCLE WITH UPPER RIGHT QUADRANT BLACK;So;0;ON;;;;;N;;;;;
+25D5;CIRCLE WITH ALL BUT UPPER LEFT QUADRANT BLACK;So;0;ON;;;;;N;;;;;
+25D6;LEFT HALF BLACK CIRCLE;So;0;ON;;;;;N;;;;;
+25D7;RIGHT HALF BLACK CIRCLE;So;0;ON;;;;;N;;;;;
+25D8;INVERSE BULLET;So;0;ON;;;;;N;;;;;
+25D9;INVERSE WHITE CIRCLE;So;0;ON;;;;;N;;;;;
+25DA;UPPER HALF INVERSE WHITE CIRCLE;So;0;ON;;;;;N;;;;;
+25DB;LOWER HALF INVERSE WHITE CIRCLE;So;0;ON;;;;;N;;;;;
+25DC;UPPER LEFT QUADRANT CIRCULAR ARC;So;0;ON;;;;;N;;;;;
+25DD;UPPER RIGHT QUADRANT CIRCULAR ARC;So;0;ON;;;;;N;;;;;
+25DE;LOWER RIGHT QUADRANT CIRCULAR ARC;So;0;ON;;;;;N;;;;;
+25DF;LOWER LEFT QUADRANT CIRCULAR ARC;So;0;ON;;;;;N;;;;;
+25E0;UPPER HALF CIRCLE;So;0;ON;;;;;N;;;;;
+25E1;LOWER HALF CIRCLE;So;0;ON;;;;;N;;;;;
+25E2;BLACK LOWER RIGHT TRIANGLE;So;0;ON;;;;;N;;;;;
+25E3;BLACK LOWER LEFT TRIANGLE;So;0;ON;;;;;N;;;;;
+25E4;BLACK UPPER LEFT TRIANGLE;So;0;ON;;;;;N;;;;;
+25E5;BLACK UPPER RIGHT TRIANGLE;So;0;ON;;;;;N;;;;;
+25E6;WHITE BULLET;So;0;ON;;;;;N;;;;;
+25E7;SQUARE WITH LEFT HALF BLACK;So;0;ON;;;;;N;;;;;
+25E8;SQUARE WITH RIGHT HALF BLACK;So;0;ON;;;;;N;;;;;
+25E9;SQUARE WITH UPPER LEFT DIAGONAL HALF BLACK;So;0;ON;;;;;N;;;;;
+25EA;SQUARE WITH LOWER RIGHT DIAGONAL HALF BLACK;So;0;ON;;;;;N;;;;;
+25EB;WHITE SQUARE WITH VERTICAL BISECTING LINE;So;0;ON;;;;;N;;;;;
+25EC;WHITE UP-POINTING TRIANGLE WITH DOT;So;0;ON;;;;;N;WHITE UP POINTING TRIANGLE WITH DOT;;;;
+25ED;UP-POINTING TRIANGLE WITH LEFT HALF BLACK;So;0;ON;;;;;N;UP POINTING TRIANGLE WITH LEFT HALF BLACK;;;;
+25EE;UP-POINTING TRIANGLE WITH RIGHT HALF BLACK;So;0;ON;;;;;N;UP POINTING TRIANGLE WITH RIGHT HALF BLACK;;;;
+25EF;LARGE CIRCLE;So;0;ON;;;;;N;;;;;
+25F0;WHITE SQUARE WITH UPPER LEFT QUADRANT;So;0;ON;;;;;N;;;;;
+25F1;WHITE SQUARE WITH LOWER LEFT QUADRANT;So;0;ON;;;;;N;;;;;
+25F2;WHITE SQUARE WITH LOWER RIGHT QUADRANT;So;0;ON;;;;;N;;;;;
+25F3;WHITE SQUARE WITH UPPER RIGHT QUADRANT;So;0;ON;;;;;N;;;;;
+25F4;WHITE CIRCLE WITH UPPER LEFT QUADRANT;So;0;ON;;;;;N;;;;;
+25F5;WHITE CIRCLE WITH LOWER LEFT QUADRANT;So;0;ON;;;;;N;;;;;
+25F6;WHITE CIRCLE WITH LOWER RIGHT QUADRANT;So;0;ON;;;;;N;;;;;
+25F7;WHITE CIRCLE WITH UPPER RIGHT QUADRANT;So;0;ON;;;;;N;;;;;
+25F8;UPPER LEFT TRIANGLE;Sm;0;ON;;;;;N;;;;;
+25F9;UPPER RIGHT TRIANGLE;Sm;0;ON;;;;;N;;;;;
+25FA;LOWER LEFT TRIANGLE;Sm;0;ON;;;;;N;;;;;
+25FB;WHITE MEDIUM SQUARE;Sm;0;ON;;;;;N;;;;;
+25FC;BLACK MEDIUM SQUARE;Sm;0;ON;;;;;N;;;;;
+25FD;WHITE MEDIUM SMALL SQUARE;Sm;0;ON;;;;;N;;;;;
+25FE;BLACK MEDIUM SMALL SQUARE;Sm;0;ON;;;;;N;;;;;
+25FF;LOWER RIGHT TRIANGLE;Sm;0;ON;;;;;N;;;;;
+2600;BLACK SUN WITH RAYS;So;0;ON;;;;;N;;;;;
+2601;CLOUD;So;0;ON;;;;;N;;;;;
+2602;UMBRELLA;So;0;ON;;;;;N;;;;;
+2603;SNOWMAN;So;0;ON;;;;;N;;;;;
+2604;COMET;So;0;ON;;;;;N;;;;;
+2605;BLACK STAR;So;0;ON;;;;;N;;;;;
+2606;WHITE STAR;So;0;ON;;;;;N;;;;;
+2607;LIGHTNING;So;0;ON;;;;;N;;;;;
+2608;THUNDERSTORM;So;0;ON;;;;;N;;;;;
+2609;SUN;So;0;ON;;;;;N;;;;;
+260A;ASCENDING NODE;So;0;ON;;;;;N;;;;;
+260B;DESCENDING NODE;So;0;ON;;;;;N;;;;;
+260C;CONJUNCTION;So;0;ON;;;;;N;;;;;
+260D;OPPOSITION;So;0;ON;;;;;N;;;;;
+260E;BLACK TELEPHONE;So;0;ON;;;;;N;;;;;
+260F;WHITE TELEPHONE;So;0;ON;;;;;N;;;;;
+2610;BALLOT BOX;So;0;ON;;;;;N;;;;;
+2611;BALLOT BOX WITH CHECK;So;0;ON;;;;;N;;;;;
+2612;BALLOT BOX WITH X;So;0;ON;;;;;N;;;;;
+2613;SALTIRE;So;0;ON;;;;;N;;;;;
+2614;UMBRELLA WITH RAIN DROPS;So;0;ON;;;;;N;;;;;
+2615;HOT BEVERAGE;So;0;ON;;;;;N;;;;;
+2616;WHITE SHOGI PIECE;So;0;ON;;;;;N;;;;;
+2617;BLACK SHOGI PIECE;So;0;ON;;;;;N;;;;;
+2618;SHAMROCK;So;0;ON;;;;;N;;;;;
+2619;REVERSED ROTATED FLORAL HEART BULLET;So;0;ON;;;;;N;;;;;
+261A;BLACK LEFT POINTING INDEX;So;0;ON;;;;;N;;;;;
+261B;BLACK RIGHT POINTING INDEX;So;0;ON;;;;;N;;;;;
+261C;WHITE LEFT POINTING INDEX;So;0;ON;;;;;N;;;;;
+261D;WHITE UP POINTING INDEX;So;0;ON;;;;;N;;;;;
+261E;WHITE RIGHT POINTING INDEX;So;0;ON;;;;;N;;;;;
+261F;WHITE DOWN POINTING INDEX;So;0;ON;;;;;N;;;;;
+2620;SKULL AND CROSSBONES;So;0;ON;;;;;N;;;;;
+2621;CAUTION SIGN;So;0;ON;;;;;N;;;;;
+2622;RADIOACTIVE SIGN;So;0;ON;;;;;N;;;;;
+2623;BIOHAZARD SIGN;So;0;ON;;;;;N;;;;;
+2624;CADUCEUS;So;0;ON;;;;;N;;;;;
+2625;ANKH;So;0;ON;;;;;N;;;;;
+2626;ORTHODOX CROSS;So;0;ON;;;;;N;;;;;
+2627;CHI RHO;So;0;ON;;;;;N;;;;;
+2628;CROSS OF LORRAINE;So;0;ON;;;;;N;;;;;
+2629;CROSS OF JERUSALEM;So;0;ON;;;;;N;;;;;
+262A;STAR AND CRESCENT;So;0;ON;;;;;N;;;;;
+262B;FARSI SYMBOL;So;0;ON;;;;;N;SYMBOL OF IRAN;;;;
+262C;ADI SHAKTI;So;0;ON;;;;;N;;;;;
+262D;HAMMER AND SICKLE;So;0;ON;;;;;N;;;;;
+262E;PEACE SYMBOL;So;0;ON;;;;;N;;;;;
+262F;YIN YANG;So;0;ON;;;;;N;;;;;
+2630;TRIGRAM FOR HEAVEN;So;0;ON;;;;;N;;;;;
+2631;TRIGRAM FOR LAKE;So;0;ON;;;;;N;;;;;
+2632;TRIGRAM FOR FIRE;So;0;ON;;;;;N;;;;;
+2633;TRIGRAM FOR THUNDER;So;0;ON;;;;;N;;;;;
+2634;TRIGRAM FOR WIND;So;0;ON;;;;;N;;;;;
+2635;TRIGRAM FOR WATER;So;0;ON;;;;;N;;;;;
+2636;TRIGRAM FOR MOUNTAIN;So;0;ON;;;;;N;;;;;
+2637;TRIGRAM FOR EARTH;So;0;ON;;;;;N;;;;;
+2638;WHEEL OF DHARMA;So;0;ON;;;;;N;;;;;
+2639;WHITE FROWNING FACE;So;0;ON;;;;;N;;;;;
+263A;WHITE SMILING FACE;So;0;ON;;;;;N;;;;;
+263B;BLACK SMILING FACE;So;0;ON;;;;;N;;;;;
+263C;WHITE SUN WITH RAYS;So;0;ON;;;;;N;;;;;
+263D;FIRST QUARTER MOON;So;0;ON;;;;;N;;;;;
+263E;LAST QUARTER MOON;So;0;ON;;;;;N;;;;;
+263F;MERCURY;So;0;ON;;;;;N;;;;;
+2640;FEMALE SIGN;So;0;ON;;;;;N;;;;;
+2641;EARTH;So;0;ON;;;;;N;;;;;
+2642;MALE SIGN;So;0;ON;;;;;N;;;;;
+2643;JUPITER;So;0;ON;;;;;N;;;;;
+2644;SATURN;So;0;ON;;;;;N;;;;;
+2645;URANUS;So;0;ON;;;;;N;;;;;
+2646;NEPTUNE;So;0;ON;;;;;N;;;;;
+2647;PLUTO;So;0;ON;;;;;N;;;;;
+2648;ARIES;So;0;ON;;;;;N;;;;;
+2649;TAURUS;So;0;ON;;;;;N;;;;;
+264A;GEMINI;So;0;ON;;;;;N;;;;;
+264B;CANCER;So;0;ON;;;;;N;;;;;
+264C;LEO;So;0;ON;;;;;N;;;;;
+264D;VIRGO;So;0;ON;;;;;N;;;;;
+264E;LIBRA;So;0;ON;;;;;N;;;;;
+264F;SCORPIUS;So;0;ON;;;;;N;;;;;
+2650;SAGITTARIUS;So;0;ON;;;;;N;;;;;
+2651;CAPRICORN;So;0;ON;;;;;N;;;;;
+2652;AQUARIUS;So;0;ON;;;;;N;;;;;
+2653;PISCES;So;0;ON;;;;;N;;;;;
+2654;WHITE CHESS KING;So;0;ON;;;;;N;;;;;
+2655;WHITE CHESS QUEEN;So;0;ON;;;;;N;;;;;
+2656;WHITE CHESS ROOK;So;0;ON;;;;;N;;;;;
+2657;WHITE CHESS BISHOP;So;0;ON;;;;;N;;;;;
+2658;WHITE CHESS KNIGHT;So;0;ON;;;;;N;;;;;
+2659;WHITE CHESS PAWN;So;0;ON;;;;;N;;;;;
+265A;BLACK CHESS KING;So;0;ON;;;;;N;;;;;
+265B;BLACK CHESS QUEEN;So;0;ON;;;;;N;;;;;
+265C;BLACK CHESS ROOK;So;0;ON;;;;;N;;;;;
+265D;BLACK CHESS BISHOP;So;0;ON;;;;;N;;;;;
+265E;BLACK CHESS KNIGHT;So;0;ON;;;;;N;;;;;
+265F;BLACK CHESS PAWN;So;0;ON;;;;;N;;;;;
+2660;BLACK SPADE SUIT;So;0;ON;;;;;N;;;;;
+2661;WHITE HEART SUIT;So;0;ON;;;;;N;;;;;
+2662;WHITE DIAMOND SUIT;So;0;ON;;;;;N;;;;;
+2663;BLACK CLUB SUIT;So;0;ON;;;;;N;;;;;
+2664;WHITE SPADE SUIT;So;0;ON;;;;;N;;;;;
+2665;BLACK HEART SUIT;So;0;ON;;;;;N;;;;;
+2666;BLACK DIAMOND SUIT;So;0;ON;;;;;N;;;;;
+2667;WHITE CLUB SUIT;So;0;ON;;;;;N;;;;;
+2668;HOT SPRINGS;So;0;ON;;;;;N;;;;;
+2669;QUARTER NOTE;So;0;ON;;;;;N;;;;;
+266A;EIGHTH NOTE;So;0;ON;;;;;N;;;;;
+266B;BEAMED EIGHTH NOTES;So;0;ON;;;;;N;BARRED EIGHTH NOTES;;;;
+266C;BEAMED SIXTEENTH NOTES;So;0;ON;;;;;N;BARRED SIXTEENTH NOTES;;;;
+266D;MUSIC FLAT SIGN;So;0;ON;;;;;N;FLAT;;;;
+266E;MUSIC NATURAL SIGN;So;0;ON;;;;;N;NATURAL;;;;
+266F;MUSIC SHARP SIGN;Sm;0;ON;;;;;N;SHARP;;;;
+2670;WEST SYRIAC CROSS;So;0;ON;;;;;N;;;;;
+2671;EAST SYRIAC CROSS;So;0;ON;;;;;N;;;;;
+2672;UNIVERSAL RECYCLING SYMBOL;So;0;ON;;;;;N;;;;;
+2673;RECYCLING SYMBOL FOR TYPE-1 PLASTICS;So;0;ON;;;;;N;;pete;;;
+2674;RECYCLING SYMBOL FOR TYPE-2 PLASTICS;So;0;ON;;;;;N;;hdpe;;;
+2675;RECYCLING SYMBOL FOR TYPE-3 PLASTICS;So;0;ON;;;;;N;;pvc;;;
+2676;RECYCLING SYMBOL FOR TYPE-4 PLASTICS;So;0;ON;;;;;N;;ldpe;;;
+2677;RECYCLING SYMBOL FOR TYPE-5 PLASTICS;So;0;ON;;;;;N;;pp;;;
+2678;RECYCLING SYMBOL FOR TYPE-6 PLASTICS;So;0;ON;;;;;N;;ps;;;
+2679;RECYCLING SYMBOL FOR TYPE-7 PLASTICS;So;0;ON;;;;;N;;other;;;
+267A;RECYCLING SYMBOL FOR GENERIC MATERIALS;So;0;ON;;;;;N;;;;;
+267B;BLACK UNIVERSAL RECYCLING SYMBOL;So;0;ON;;;;;N;;;;;
+267C;RECYCLED PAPER SYMBOL;So;0;ON;;;;;N;;;;;
+267D;PARTIALLY-RECYCLED PAPER SYMBOL;So;0;ON;;;;;N;;;;;
+267E;PERMANENT PAPER SIGN;So;0;ON;;;;;N;;;;;
+267F;WHEELCHAIR SYMBOL;So;0;ON;;;;;N;;;;;
+2680;DIE FACE-1;So;0;ON;;;;;N;;;;;
+2681;DIE FACE-2;So;0;ON;;;;;N;;;;;
+2682;DIE FACE-3;So;0;ON;;;;;N;;;;;
+2683;DIE FACE-4;So;0;ON;;;;;N;;;;;
+2684;DIE FACE-5;So;0;ON;;;;;N;;;;;
+2685;DIE FACE-6;So;0;ON;;;;;N;;;;;
+2686;WHITE CIRCLE WITH DOT RIGHT;So;0;ON;;;;;N;;;;;
+2687;WHITE CIRCLE WITH TWO DOTS;So;0;ON;;;;;N;;;;;
+2688;BLACK CIRCLE WITH WHITE DOT RIGHT;So;0;ON;;;;;N;;;;;
+2689;BLACK CIRCLE WITH TWO WHITE DOTS;So;0;ON;;;;;N;;;;;
+268A;MONOGRAM FOR YANG;So;0;ON;;;;;N;;;;;
+268B;MONOGRAM FOR YIN;So;0;ON;;;;;N;;;;;
+268C;DIGRAM FOR GREATER YANG;So;0;ON;;;;;N;;;;;
+268D;DIGRAM FOR LESSER YIN;So;0;ON;;;;;N;;;;;
+268E;DIGRAM FOR LESSER YANG;So;0;ON;;;;;N;;;;;
+268F;DIGRAM FOR GREATER YIN;So;0;ON;;;;;N;;;;;
+2690;WHITE FLAG;So;0;ON;;;;;N;;;;;
+2691;BLACK FLAG;So;0;ON;;;;;N;;;;;
+2692;HAMMER AND PICK;So;0;ON;;;;;N;;;;;
+2693;ANCHOR;So;0;ON;;;;;N;;;;;
+2694;CROSSED SWORDS;So;0;ON;;;;;N;;;;;
+2695;STAFF OF AESCULAPIUS;So;0;ON;;;;;N;;;;;
+2696;SCALES;So;0;ON;;;;;N;;;;;
+2697;ALEMBIC;So;0;ON;;;;;N;;;;;
+2698;FLOWER;So;0;ON;;;;;N;;;;;
+2699;GEAR;So;0;ON;;;;;N;;;;;
+269A;STAFF OF HERMES;So;0;ON;;;;;N;;;;;
+269B;ATOM SYMBOL;So;0;ON;;;;;N;;;;;
+269C;FLEUR-DE-LIS;So;0;ON;;;;;N;;;;;
+26A0;WARNING SIGN;So;0;ON;;;;;N;;;;;
+26A1;HIGH VOLTAGE SIGN;So;0;ON;;;;;N;;;;;
+26A2;DOUBLED FEMALE SIGN;So;0;ON;;;;;N;;;;;
+26A3;DOUBLED MALE SIGN;So;0;ON;;;;;N;;;;;
+26A4;INTERLOCKED FEMALE AND MALE SIGN;So;0;ON;;;;;N;;;;;
+26A5;MALE AND FEMALE SIGN;So;0;ON;;;;;N;;;;;
+26A6;MALE WITH STROKE SIGN;So;0;ON;;;;;N;;;;;
+26A7;MALE WITH STROKE AND MALE AND FEMALE SIGN;So;0;ON;;;;;N;;;;;
+26A8;VERTICAL MALE WITH STROKE SIGN;So;0;ON;;;;;N;;;;;
+26A9;HORIZONTAL MALE WITH STROKE SIGN;So;0;ON;;;;;N;;;;;
+26AA;MEDIUM WHITE CIRCLE;So;0;ON;;;;;N;;;;;
+26AB;MEDIUM BLACK CIRCLE;So;0;ON;;;;;N;;;;;
+26AC;MEDIUM SMALL WHITE CIRCLE;So;0;L;;;;;N;;;;;
+26AD;MARRIAGE SYMBOL;So;0;ON;;;;;N;;;;;
+26AE;DIVORCE SYMBOL;So;0;ON;;;;;N;;;;;
+26AF;UNMARRIED PARTNERSHIP SYMBOL;So;0;ON;;;;;N;;;;;
+26B0;COFFIN;So;0;ON;;;;;N;;;;;
+26B1;FUNERAL URN;So;0;ON;;;;;N;;;;;
+26B2;NEUTER;So;0;ON;;;;;N;;;;;
+2701;UPPER BLADE SCISSORS;So;0;ON;;;;;N;;;;;
+2702;BLACK SCISSORS;So;0;ON;;;;;N;;;;;
+2703;LOWER BLADE SCISSORS;So;0;ON;;;;;N;;;;;
+2704;WHITE SCISSORS;So;0;ON;;;;;N;;;;;
+2706;TELEPHONE LOCATION SIGN;So;0;ON;;;;;N;;;;;
+2707;TAPE DRIVE;So;0;ON;;;;;N;;;;;
+2708;AIRPLANE;So;0;ON;;;;;N;;;;;
+2709;ENVELOPE;So;0;ON;;;;;N;;;;;
+270C;VICTORY HAND;So;0;ON;;;;;N;;;;;
+270D;WRITING HAND;So;0;ON;;;;;N;;;;;
+270E;LOWER RIGHT PENCIL;So;0;ON;;;;;N;;;;;
+270F;PENCIL;So;0;ON;;;;;N;;;;;
+2710;UPPER RIGHT PENCIL;So;0;ON;;;;;N;;;;;
+2711;WHITE NIB;So;0;ON;;;;;N;;;;;
+2712;BLACK NIB;So;0;ON;;;;;N;;;;;
+2713;CHECK MARK;So;0;ON;;;;;N;;;;;
+2714;HEAVY CHECK MARK;So;0;ON;;;;;N;;;;;
+2715;MULTIPLICATION X;So;0;ON;;;;;N;;;;;
+2716;HEAVY MULTIPLICATION X;So;0;ON;;;;;N;;;;;
+2717;BALLOT X;So;0;ON;;;;;N;;;;;
+2718;HEAVY BALLOT X;So;0;ON;;;;;N;;;;;
+2719;OUTLINED GREEK CROSS;So;0;ON;;;;;N;;;;;
+271A;HEAVY GREEK CROSS;So;0;ON;;;;;N;;;;;
+271B;OPEN CENTRE CROSS;So;0;ON;;;;;N;OPEN CENTER CROSS;;;;
+271C;HEAVY OPEN CENTRE CROSS;So;0;ON;;;;;N;HEAVY OPEN CENTER CROSS;;;;
+271D;LATIN CROSS;So;0;ON;;;;;N;;;;;
+271E;SHADOWED WHITE LATIN CROSS;So;0;ON;;;;;N;;;;;
+271F;OUTLINED LATIN CROSS;So;0;ON;;;;;N;;;;;
+2720;MALTESE CROSS;So;0;ON;;;;;N;;;;;
+2721;STAR OF DAVID;So;0;ON;;;;;N;;;;;
+2722;FOUR TEARDROP-SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+2723;FOUR BALLOON-SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+2724;HEAVY FOUR BALLOON-SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+2725;FOUR CLUB-SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+2726;BLACK FOUR POINTED STAR;So;0;ON;;;;;N;;;;;
+2727;WHITE FOUR POINTED STAR;So;0;ON;;;;;N;;;;;
+2729;STRESS OUTLINED WHITE STAR;So;0;ON;;;;;N;;;;;
+272A;CIRCLED WHITE STAR;So;0;ON;;;;;N;;;;;
+272B;OPEN CENTRE BLACK STAR;So;0;ON;;;;;N;OPEN CENTER BLACK STAR;;;;
+272C;BLACK CENTRE WHITE STAR;So;0;ON;;;;;N;BLACK CENTER WHITE STAR;;;;
+272D;OUTLINED BLACK STAR;So;0;ON;;;;;N;;;;;
+272E;HEAVY OUTLINED BLACK STAR;So;0;ON;;;;;N;;;;;
+272F;PINWHEEL STAR;So;0;ON;;;;;N;;;;;
+2730;SHADOWED WHITE STAR;So;0;ON;;;;;N;;;;;
+2731;HEAVY ASTERISK;So;0;ON;;;;;N;;;;;
+2732;OPEN CENTRE ASTERISK;So;0;ON;;;;;N;OPEN CENTER ASTERISK;;;;
+2733;EIGHT SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+2734;EIGHT POINTED BLACK STAR;So;0;ON;;;;;N;;;;;
+2735;EIGHT POINTED PINWHEEL STAR;So;0;ON;;;;;N;;;;;
+2736;SIX POINTED BLACK STAR;So;0;ON;;;;;N;;;;;
+2737;EIGHT POINTED RECTILINEAR BLACK STAR;So;0;ON;;;;;N;;;;;
+2738;HEAVY EIGHT POINTED RECTILINEAR BLACK STAR;So;0;ON;;;;;N;;;;;
+2739;TWELVE POINTED BLACK STAR;So;0;ON;;;;;N;;;;;
+273A;SIXTEEN POINTED ASTERISK;So;0;ON;;;;;N;;;;;
+273B;TEARDROP-SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+273C;OPEN CENTRE TEARDROP-SPOKED ASTERISK;So;0;ON;;;;;N;OPEN CENTER TEARDROP-SPOKED ASTERISK;;;;
+273D;HEAVY TEARDROP-SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+273E;SIX PETALLED BLACK AND WHITE FLORETTE;So;0;ON;;;;;N;;;;;
+273F;BLACK FLORETTE;So;0;ON;;;;;N;;;;;
+2740;WHITE FLORETTE;So;0;ON;;;;;N;;;;;
+2741;EIGHT PETALLED OUTLINED BLACK FLORETTE;So;0;ON;;;;;N;;;;;
+2742;CIRCLED OPEN CENTRE EIGHT POINTED STAR;So;0;ON;;;;;N;CIRCLED OPEN CENTER EIGHT POINTED STAR;;;;
+2743;HEAVY TEARDROP-SPOKED PINWHEEL ASTERISK;So;0;ON;;;;;N;;;;;
+2744;SNOWFLAKE;So;0;ON;;;;;N;;;;;
+2745;TIGHT TRIFOLIATE SNOWFLAKE;So;0;ON;;;;;N;;;;;
+2746;HEAVY CHEVRON SNOWFLAKE;So;0;ON;;;;;N;;;;;
+2747;SPARKLE;So;0;ON;;;;;N;;;;;
+2748;HEAVY SPARKLE;So;0;ON;;;;;N;;;;;
+2749;BALLOON-SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+274A;EIGHT TEARDROP-SPOKED PROPELLER ASTERISK;So;0;ON;;;;;N;;;;;
+274B;HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK;So;0;ON;;;;;N;;;;;
+274D;SHADOWED WHITE CIRCLE;So;0;ON;;;;;N;;;;;
+274F;LOWER RIGHT DROP-SHADOWED WHITE SQUARE;So;0;ON;;;;;N;;;;;
+2750;UPPER RIGHT DROP-SHADOWED WHITE SQUARE;So;0;ON;;;;;N;;;;;
+2751;LOWER RIGHT SHADOWED WHITE SQUARE;So;0;ON;;;;;N;;;;;
+2752;UPPER RIGHT SHADOWED WHITE SQUARE;So;0;ON;;;;;N;;;;;
+2756;BLACK DIAMOND MINUS WHITE X;So;0;ON;;;;;N;;;;;
+2758;LIGHT VERTICAL BAR;So;0;ON;;;;;N;;;;;
+2759;MEDIUM VERTICAL BAR;So;0;ON;;;;;N;;;;;
+275A;HEAVY VERTICAL BAR;So;0;ON;;;;;N;;;;;
+275B;HEAVY SINGLE TURNED COMMA QUOTATION MARK ORNAMENT;So;0;ON;;;;;N;;;;;
+275C;HEAVY SINGLE COMMA QUOTATION MARK ORNAMENT;So;0;ON;;;;;N;;;;;
+275D;HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT;So;0;ON;;;;;N;;;;;
+275E;HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT;So;0;ON;;;;;N;;;;;
+2761;CURVED STEM PARAGRAPH SIGN ORNAMENT;So;0;ON;;;;;N;;;;;
+2762;HEAVY EXCLAMATION MARK ORNAMENT;So;0;ON;;;;;N;;;;;
+2763;HEAVY HEART EXCLAMATION MARK ORNAMENT;So;0;ON;;;;;N;;;;;
+2764;HEAVY BLACK HEART;So;0;ON;;;;;N;;;;;
+2765;ROTATED HEAVY BLACK HEART BULLET;So;0;ON;;;;;N;;;;;
+2766;FLORAL HEART;So;0;ON;;;;;N;;;;;
+2767;ROTATED FLORAL HEART BULLET;So;0;ON;;;;;N;;;;;
+2768;MEDIUM LEFT PARENTHESIS ORNAMENT;Ps;0;ON;;;;;Y;;;;;
+2769;MEDIUM RIGHT PARENTHESIS ORNAMENT;Pe;0;ON;;;;;Y;;;;;
+276A;MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT;Ps;0;ON;;;;;Y;;;;;
+276B;MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT;Pe;0;ON;;;;;Y;;;;;
+276C;MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT;Ps;0;ON;;;;;Y;;;;;
+276D;MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT;Pe;0;ON;;;;;Y;;;;;
+276E;HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT;Ps;0;ON;;;;;Y;;;;;
+276F;HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT;Pe;0;ON;;;;;Y;;;;;
+2770;HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT;Ps;0;ON;;;;;Y;;;;;
+2771;HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT;Pe;0;ON;;;;;Y;;;;;
+2772;LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT;Ps;0;ON;;;;;Y;;;;;
+2773;LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT;Pe;0;ON;;;;;Y;;;;;
+2774;MEDIUM LEFT CURLY BRACKET ORNAMENT;Ps;0;ON;;;;;Y;;;;;
+2775;MEDIUM RIGHT CURLY BRACKET ORNAMENT;Pe;0;ON;;;;;Y;;;;;
+2776;DINGBAT NEGATIVE CIRCLED DIGIT ONE;No;0;ON;;;1;1;N;INVERSE CIRCLED DIGIT ONE;;;;
+2777;DINGBAT NEGATIVE CIRCLED DIGIT TWO;No;0;ON;;;2;2;N;INVERSE CIRCLED DIGIT TWO;;;;
+2778;DINGBAT NEGATIVE CIRCLED DIGIT THREE;No;0;ON;;;3;3;N;INVERSE CIRCLED DIGIT THREE;;;;
+2779;DINGBAT NEGATIVE CIRCLED DIGIT FOUR;No;0;ON;;;4;4;N;INVERSE CIRCLED DIGIT FOUR;;;;
+277A;DINGBAT NEGATIVE CIRCLED DIGIT FIVE;No;0;ON;;;5;5;N;INVERSE CIRCLED DIGIT FIVE;;;;
+277B;DINGBAT NEGATIVE CIRCLED DIGIT SIX;No;0;ON;;;6;6;N;INVERSE CIRCLED DIGIT SIX;;;;
+277C;DINGBAT NEGATIVE CIRCLED DIGIT SEVEN;No;0;ON;;;7;7;N;INVERSE CIRCLED DIGIT SEVEN;;;;
+277D;DINGBAT NEGATIVE CIRCLED DIGIT EIGHT;No;0;ON;;;8;8;N;INVERSE CIRCLED DIGIT EIGHT;;;;
+277E;DINGBAT NEGATIVE CIRCLED DIGIT NINE;No;0;ON;;;9;9;N;INVERSE CIRCLED DIGIT NINE;;;;
+277F;DINGBAT NEGATIVE CIRCLED NUMBER TEN;No;0;ON;;;;10;N;INVERSE CIRCLED NUMBER TEN;;;;
+2780;DINGBAT CIRCLED SANS-SERIF DIGIT ONE;No;0;ON;;;1;1;N;CIRCLED SANS-SERIF DIGIT ONE;;;;
+2781;DINGBAT CIRCLED SANS-SERIF DIGIT TWO;No;0;ON;;;2;2;N;CIRCLED SANS-SERIF DIGIT TWO;;;;
+2782;DINGBAT CIRCLED SANS-SERIF DIGIT THREE;No;0;ON;;;3;3;N;CIRCLED SANS-SERIF DIGIT THREE;;;;
+2783;DINGBAT CIRCLED SANS-SERIF DIGIT FOUR;No;0;ON;;;4;4;N;CIRCLED SANS-SERIF DIGIT FOUR;;;;
+2784;DINGBAT CIRCLED SANS-SERIF DIGIT FIVE;No;0;ON;;;5;5;N;CIRCLED SANS-SERIF DIGIT FIVE;;;;
+2785;DINGBAT CIRCLED SANS-SERIF DIGIT SIX;No;0;ON;;;6;6;N;CIRCLED SANS-SERIF DIGIT SIX;;;;
+2786;DINGBAT CIRCLED SANS-SERIF DIGIT SEVEN;No;0;ON;;;7;7;N;CIRCLED SANS-SERIF DIGIT SEVEN;;;;
+2787;DINGBAT CIRCLED SANS-SERIF DIGIT EIGHT;No;0;ON;;;8;8;N;CIRCLED SANS-SERIF DIGIT EIGHT;;;;
+2788;DINGBAT CIRCLED SANS-SERIF DIGIT NINE;No;0;ON;;;9;9;N;CIRCLED SANS-SERIF DIGIT NINE;;;;
+2789;DINGBAT CIRCLED SANS-SERIF NUMBER TEN;No;0;ON;;;;10;N;CIRCLED SANS-SERIF NUMBER TEN;;;;
+278A;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ONE;No;0;ON;;;1;1;N;INVERSE CIRCLED SANS-SERIF DIGIT ONE;;;;
+278B;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT TWO;No;0;ON;;;2;2;N;INVERSE CIRCLED SANS-SERIF DIGIT TWO;;;;
+278C;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT THREE;No;0;ON;;;3;3;N;INVERSE CIRCLED SANS-SERIF DIGIT THREE;;;;
+278D;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FOUR;No;0;ON;;;4;4;N;INVERSE CIRCLED SANS-SERIF DIGIT FOUR;;;;
+278E;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FIVE;No;0;ON;;;5;5;N;INVERSE CIRCLED SANS-SERIF DIGIT FIVE;;;;
+278F;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SIX;No;0;ON;;;6;6;N;INVERSE CIRCLED SANS-SERIF DIGIT SIX;;;;
+2790;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SEVEN;No;0;ON;;;7;7;N;INVERSE CIRCLED SANS-SERIF DIGIT SEVEN;;;;
+2791;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT EIGHT;No;0;ON;;;8;8;N;INVERSE CIRCLED SANS-SERIF DIGIT EIGHT;;;;
+2792;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT NINE;No;0;ON;;;9;9;N;INVERSE CIRCLED SANS-SERIF DIGIT NINE;;;;
+2793;DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN;No;0;ON;;;;10;N;INVERSE CIRCLED SANS-SERIF NUMBER TEN;;;;
+2794;HEAVY WIDE-HEADED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY WIDE-HEADED RIGHT ARROW;;;;
+2798;HEAVY SOUTH EAST ARROW;So;0;ON;;;;;N;HEAVY LOWER RIGHT ARROW;;;;
+2799;HEAVY RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY RIGHT ARROW;;;;
+279A;HEAVY NORTH EAST ARROW;So;0;ON;;;;;N;HEAVY UPPER RIGHT ARROW;;;;
+279B;DRAFTING POINT RIGHTWARDS ARROW;So;0;ON;;;;;N;DRAFTING POINT RIGHT ARROW;;;;
+279C;HEAVY ROUND-TIPPED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY ROUND-TIPPED RIGHT ARROW;;;;
+279D;TRIANGLE-HEADED RIGHTWARDS ARROW;So;0;ON;;;;;N;TRIANGLE-HEADED RIGHT ARROW;;;;
+279E;HEAVY TRIANGLE-HEADED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY TRIANGLE-HEADED RIGHT ARROW;;;;
+279F;DASHED TRIANGLE-HEADED RIGHTWARDS ARROW;So;0;ON;;;;;N;DASHED TRIANGLE-HEADED RIGHT ARROW;;;;
+27A0;HEAVY DASHED TRIANGLE-HEADED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY DASHED TRIANGLE-HEADED RIGHT ARROW;;;;
+27A1;BLACK RIGHTWARDS ARROW;So;0;ON;;;;;N;BLACK RIGHT ARROW;;;;
+27A2;THREE-D TOP-LIGHTED RIGHTWARDS ARROWHEAD;So;0;ON;;;;;N;THREE-D TOP-LIGHTED RIGHT ARROWHEAD;;;;
+27A3;THREE-D BOTTOM-LIGHTED RIGHTWARDS ARROWHEAD;So;0;ON;;;;;N;THREE-D BOTTOM-LIGHTED RIGHT ARROWHEAD;;;;
+27A4;BLACK RIGHTWARDS ARROWHEAD;So;0;ON;;;;;N;BLACK RIGHT ARROWHEAD;;;;
+27A5;HEAVY BLACK CURVED DOWNWARDS AND RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY BLACK CURVED DOWN AND RIGHT ARROW;;;;
+27A6;HEAVY BLACK CURVED UPWARDS AND RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY BLACK CURVED UP AND RIGHT ARROW;;;;
+27A7;SQUAT BLACK RIGHTWARDS ARROW;So;0;ON;;;;;N;SQUAT BLACK RIGHT ARROW;;;;
+27A8;HEAVY CONCAVE-POINTED BLACK RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY CONCAVE-POINTED BLACK RIGHT ARROW;;;;
+27A9;RIGHT-SHADED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;RIGHT-SHADED WHITE RIGHT ARROW;;;;
+27AA;LEFT-SHADED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;LEFT-SHADED WHITE RIGHT ARROW;;;;
+27AB;BACK-TILTED SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;BACK-TILTED SHADOWED WHITE RIGHT ARROW;;;;
+27AC;FRONT-TILTED SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;FRONT-TILTED SHADOWED WHITE RIGHT ARROW;;;;
+27AD;HEAVY LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY LOWER RIGHT-SHADOWED WHITE RIGHT ARROW;;;;
+27AE;HEAVY UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY UPPER RIGHT-SHADOWED WHITE RIGHT ARROW;;;;
+27AF;NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHT ARROW;;;;
+27B1;NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHT ARROW;;;;
+27B2;CIRCLED HEAVY WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;CIRCLED HEAVY WHITE RIGHT ARROW;;;;
+27B3;WHITE-FEATHERED RIGHTWARDS ARROW;So;0;ON;;;;;N;WHITE-FEATHERED RIGHT ARROW;;;;
+27B4;BLACK-FEATHERED SOUTH EAST ARROW;So;0;ON;;;;;N;BLACK-FEATHERED LOWER RIGHT ARROW;;;;
+27B5;BLACK-FEATHERED RIGHTWARDS ARROW;So;0;ON;;;;;N;BLACK-FEATHERED RIGHT ARROW;;;;
+27B6;BLACK-FEATHERED NORTH EAST ARROW;So;0;ON;;;;;N;BLACK-FEATHERED UPPER RIGHT ARROW;;;;
+27B7;HEAVY BLACK-FEATHERED SOUTH EAST ARROW;So;0;ON;;;;;N;HEAVY BLACK-FEATHERED LOWER RIGHT ARROW;;;;
+27B8;HEAVY BLACK-FEATHERED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY BLACK-FEATHERED RIGHT ARROW;;;;
+27B9;HEAVY BLACK-FEATHERED NORTH EAST ARROW;So;0;ON;;;;;N;HEAVY BLACK-FEATHERED UPPER RIGHT ARROW;;;;
+27BA;TEARDROP-BARBED RIGHTWARDS ARROW;So;0;ON;;;;;N;TEARDROP-BARBED RIGHT ARROW;;;;
+27BB;HEAVY TEARDROP-SHANKED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY TEARDROP-SHANKED RIGHT ARROW;;;;
+27BC;WEDGE-TAILED RIGHTWARDS ARROW;So;0;ON;;;;;N;WEDGE-TAILED RIGHT ARROW;;;;
+27BD;HEAVY WEDGE-TAILED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY WEDGE-TAILED RIGHT ARROW;;;;
+27BE;OPEN-OUTLINED RIGHTWARDS ARROW;So;0;ON;;;;;N;OPEN-OUTLINED RIGHT ARROW;;;;
+27C0;THREE DIMENSIONAL ANGLE;Sm;0;ON;;;;;Y;;;;;
+27C1;WHITE TRIANGLE CONTAINING SMALL WHITE TRIANGLE;Sm;0;ON;;;;;N;;;;;
+27C2;PERPENDICULAR;Sm;0;ON;;;;;N;;;;;
+27C3;OPEN SUBSET;Sm;0;ON;;;;;Y;;;;;
+27C4;OPEN SUPERSET;Sm;0;ON;;;;;Y;;;;;
+27C5;LEFT S-SHAPED BAG DELIMITER;Ps;0;ON;;;;;Y;;;;;
+27C6;RIGHT S-SHAPED BAG DELIMITER;Pe;0;ON;;;;;Y;;;;;
+27C7;OR WITH DOT INSIDE;Sm;0;ON;;;;;N;;;;;
+27C8;REVERSE SOLIDUS PRECEDING SUBSET;Sm;0;ON;;;;;N;;;;;
+27C9;SUPERSET PRECEDING SOLIDUS;Sm;0;ON;;;;;N;;;;;
+27CA;VERTICAL BAR WITH HORIZONTAL STROKE;Sm;0;ON;;;;;N;;;;;
+27D0;WHITE DIAMOND WITH CENTRED DOT;Sm;0;ON;;;;;N;;;;;
+27D1;AND WITH DOT;Sm;0;ON;;;;;N;;;;;
+27D2;ELEMENT OF OPENING UPWARDS;Sm;0;ON;;;;;N;;;;;
+27D3;LOWER RIGHT CORNER WITH DOT;Sm;0;ON;;;;;Y;;;;;
+27D4;UPPER LEFT CORNER WITH DOT;Sm;0;ON;;;;;Y;;;;;
+27D5;LEFT OUTER JOIN;Sm;0;ON;;;;;Y;;;;;
+27D6;RIGHT OUTER JOIN;Sm;0;ON;;;;;Y;;;;;
+27D7;FULL OUTER JOIN;Sm;0;ON;;;;;N;;;;;
+27D8;LARGE UP TACK;Sm;0;ON;;;;;N;;;;;
+27D9;LARGE DOWN TACK;Sm;0;ON;;;;;N;;;;;
+27DA;LEFT AND RIGHT DOUBLE TURNSTILE;Sm;0;ON;;;;;N;;;;;
+27DB;LEFT AND RIGHT TACK;Sm;0;ON;;;;;N;;;;;
+27DC;LEFT MULTIMAP;Sm;0;ON;;;;;Y;;;;;
+27DD;LONG RIGHT TACK;Sm;0;ON;;;;;Y;;;;;
+27DE;LONG LEFT TACK;Sm;0;ON;;;;;Y;;;;;
+27DF;UP TACK WITH CIRCLE ABOVE;Sm;0;ON;;;;;N;;;;;
+27E0;LOZENGE DIVIDED BY HORIZONTAL RULE;Sm;0;ON;;;;;N;;;;;
+27E1;WHITE CONCAVE-SIDED DIAMOND;Sm;0;ON;;;;;N;;;;;
+27E2;WHITE CONCAVE-SIDED DIAMOND WITH LEFTWARDS TICK;Sm;0;ON;;;;;Y;;;;;
+27E3;WHITE CONCAVE-SIDED DIAMOND WITH RIGHTWARDS TICK;Sm;0;ON;;;;;Y;;;;;
+27E4;WHITE SQUARE WITH LEFTWARDS TICK;Sm;0;ON;;;;;Y;;;;;
+27E5;WHITE SQUARE WITH RIGHTWARDS TICK;Sm;0;ON;;;;;Y;;;;;
+27E6;MATHEMATICAL LEFT WHITE SQUARE BRACKET;Ps;0;ON;;;;;Y;;;;;
+27E7;MATHEMATICAL RIGHT WHITE SQUARE BRACKET;Pe;0;ON;;;;;Y;;;;;
+27E8;MATHEMATICAL LEFT ANGLE BRACKET;Ps;0;ON;;;;;Y;;;;;
+27E9;MATHEMATICAL RIGHT ANGLE BRACKET;Pe;0;ON;;;;;Y;;;;;
+27EA;MATHEMATICAL LEFT DOUBLE ANGLE BRACKET;Ps;0;ON;;;;;Y;;;;;
+27EB;MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET;Pe;0;ON;;;;;Y;;;;;
+27F0;UPWARDS QUADRUPLE ARROW;Sm;0;ON;;;;;N;;;;;
+27F1;DOWNWARDS QUADRUPLE ARROW;Sm;0;ON;;;;;N;;;;;
+27F2;ANTICLOCKWISE GAPPED CIRCLE ARROW;Sm;0;ON;;;;;N;;;;;
+27F3;CLOCKWISE GAPPED CIRCLE ARROW;Sm;0;ON;;;;;N;;;;;
+27F4;RIGHT ARROW WITH CIRCLED PLUS;Sm;0;ON;;;;;N;;;;;
+27F5;LONG LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
+27F6;LONG RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
+27F7;LONG LEFT RIGHT ARROW;Sm;0;ON;;;;;N;;;;;
+27F8;LONG LEFTWARDS DOUBLE ARROW;Sm;0;ON;;;;;N;;;;;
+27F9;LONG RIGHTWARDS DOUBLE ARROW;Sm;0;ON;;;;;N;;;;;
+27FA;LONG LEFT RIGHT DOUBLE ARROW;Sm;0;ON;;;;;N;;;;;
+27FB;LONG LEFTWARDS ARROW FROM BAR;Sm;0;ON;;;;;N;;;;;
+27FC;LONG RIGHTWARDS ARROW FROM BAR;Sm;0;ON;;;;;N;;;;;
+27FD;LONG LEFTWARDS DOUBLE ARROW FROM BAR;Sm;0;ON;;;;;N;;;;;
+27FE;LONG RIGHTWARDS DOUBLE ARROW FROM BAR;Sm;0;ON;;;;;N;;;;;
+27FF;LONG RIGHTWARDS SQUIGGLE ARROW;Sm;0;ON;;;;;N;;;;;
+2800;BRAILLE PATTERN BLANK;So;0;L;;;;;N;;;;;
+2801;BRAILLE PATTERN DOTS-1;So;0;L;;;;;N;;;;;
+2802;BRAILLE PATTERN DOTS-2;So;0;L;;;;;N;;;;;
+2803;BRAILLE PATTERN DOTS-12;So;0;L;;;;;N;;;;;
+2804;BRAILLE PATTERN DOTS-3;So;0;L;;;;;N;;;;;
+2805;BRAILLE PATTERN DOTS-13;So;0;L;;;;;N;;;;;
+2806;BRAILLE PATTERN DOTS-23;So;0;L;;;;;N;;;;;
+2807;BRAILLE PATTERN DOTS-123;So;0;L;;;;;N;;;;;
+2808;BRAILLE PATTERN DOTS-4;So;0;L;;;;;N;;;;;
+2809;BRAILLE PATTERN DOTS-14;So;0;L;;;;;N;;;;;
+280A;BRAILLE PATTERN DOTS-24;So;0;L;;;;;N;;;;;
+280B;BRAILLE PATTERN DOTS-124;So;0;L;;;;;N;;;;;
+280C;BRAILLE PATTERN DOTS-34;So;0;L;;;;;N;;;;;
+280D;BRAILLE PATTERN DOTS-134;So;0;L;;;;;N;;;;;
+280E;BRAILLE PATTERN DOTS-234;So;0;L;;;;;N;;;;;
+280F;BRAILLE PATTERN DOTS-1234;So;0;L;;;;;N;;;;;
+2810;BRAILLE PATTERN DOTS-5;So;0;L;;;;;N;;;;;
+2811;BRAILLE PATTERN DOTS-15;So;0;L;;;;;N;;;;;
+2812;BRAILLE PATTERN DOTS-25;So;0;L;;;;;N;;;;;
+2813;BRAILLE PATTERN DOTS-125;So;0;L;;;;;N;;;;;
+2814;BRAILLE PATTERN DOTS-35;So;0;L;;;;;N;;;;;
+2815;BRAILLE PATTERN DOTS-135;So;0;L;;;;;N;;;;;
+2816;BRAILLE PATTERN DOTS-235;So;0;L;;;;;N;;;;;
+2817;BRAILLE PATTERN DOTS-1235;So;0;L;;;;;N;;;;;
+2818;BRAILLE PATTERN DOTS-45;So;0;L;;;;;N;;;;;
+2819;BRAILLE PATTERN DOTS-145;So;0;L;;;;;N;;;;;
+281A;BRAILLE PATTERN DOTS-245;So;0;L;;;;;N;;;;;
+281B;BRAILLE PATTERN DOTS-1245;So;0;L;;;;;N;;;;;
+281C;BRAILLE PATTERN DOTS-345;So;0;L;;;;;N;;;;;
+281D;BRAILLE PATTERN DOTS-1345;So;0;L;;;;;N;;;;;
+281E;BRAILLE PATTERN DOTS-2345;So;0;L;;;;;N;;;;;
+281F;BRAILLE PATTERN DOTS-12345;So;0;L;;;;;N;;;;;
+2820;BRAILLE PATTERN DOTS-6;So;0;L;;;;;N;;;;;
+2821;BRAILLE PATTERN DOTS-16;So;0;L;;;;;N;;;;;
+2822;BRAILLE PATTERN DOTS-26;So;0;L;;;;;N;;;;;
+2823;BRAILLE PATTERN DOTS-126;So;0;L;;;;;N;;;;;
+2824;BRAILLE PATTERN DOTS-36;So;0;L;;;;;N;;;;;
+2825;BRAILLE PATTERN DOTS-136;So;0;L;;;;;N;;;;;
+2826;BRAILLE PATTERN DOTS-236;So;0;L;;;;;N;;;;;
+2827;BRAILLE PATTERN DOTS-1236;So;0;L;;;;;N;;;;;
+2828;BRAILLE PATTERN DOTS-46;So;0;L;;;;;N;;;;;
+2829;BRAILLE PATTERN DOTS-146;So;0;L;;;;;N;;;;;
+282A;BRAILLE PATTERN DOTS-246;So;0;L;;;;;N;;;;;
+282B;BRAILLE PATTERN DOTS-1246;So;0;L;;;;;N;;;;;
+282C;BRAILLE PATTERN DOTS-346;So;0;L;;;;;N;;;;;
+282D;BRAILLE PATTERN DOTS-1346;So;0;L;;;;;N;;;;;
+282E;BRAILLE PATTERN DOTS-2346;So;0;L;;;;;N;;;;;
+282F;BRAILLE PATTERN DOTS-12346;So;0;L;;;;;N;;;;;
+2830;BRAILLE PATTERN DOTS-56;So;0;L;;;;;N;;;;;
+2831;BRAILLE PATTERN DOTS-156;So;0;L;;;;;N;;;;;
+2832;BRAILLE PATTERN DOTS-256;So;0;L;;;;;N;;;;;
+2833;BRAILLE PATTERN DOTS-1256;So;0;L;;;;;N;;;;;
+2834;BRAILLE PATTERN DOTS-356;So;0;L;;;;;N;;;;;
+2835;BRAILLE PATTERN DOTS-1356;So;0;L;;;;;N;;;;;
+2836;BRAILLE PATTERN DOTS-2356;So;0;L;;;;;N;;;;;
+2837;BRAILLE PATTERN DOTS-12356;So;0;L;;;;;N;;;;;
+2838;BRAILLE PATTERN DOTS-456;So;0;L;;;;;N;;;;;
+2839;BRAILLE PATTERN DOTS-1456;So;0;L;;;;;N;;;;;
+283A;BRAILLE PATTERN DOTS-2456;So;0;L;;;;;N;;;;;
+283B;BRAILLE PATTERN DOTS-12456;So;0;L;;;;;N;;;;;
+283C;BRAILLE PATTERN DOTS-3456;So;0;L;;;;;N;;;;;
+283D;BRAILLE PATTERN DOTS-13456;So;0;L;;;;;N;;;;;
+283E;BRAILLE PATTERN DOTS-23456;So;0;L;;;;;N;;;;;
+283F;BRAILLE PATTERN DOTS-123456;So;0;L;;;;;N;;;;;
+2840;BRAILLE PATTERN DOTS-7;So;0;L;;;;;N;;;;;
+2841;BRAILLE PATTERN DOTS-17;So;0;L;;;;;N;;;;;
+2842;BRAILLE PATTERN DOTS-27;So;0;L;;;;;N;;;;;
+2843;BRAILLE PATTERN DOTS-127;So;0;L;;;;;N;;;;;
+2844;BRAILLE PATTERN DOTS-37;So;0;L;;;;;N;;;;;
+2845;BRAILLE PATTERN DOTS-137;So;0;L;;;;;N;;;;;
+2846;BRAILLE PATTERN DOTS-237;So;0;L;;;;;N;;;;;
+2847;BRAILLE PATTERN DOTS-1237;So;0;L;;;;;N;;;;;
+2848;BRAILLE PATTERN DOTS-47;So;0;L;;;;;N;;;;;
+2849;BRAILLE PATTERN DOTS-147;So;0;L;;;;;N;;;;;
+284A;BRAILLE PATTERN DOTS-247;So;0;L;;;;;N;;;;;
+284B;BRAILLE PATTERN DOTS-1247;So;0;L;;;;;N;;;;;
+284C;BRAILLE PATTERN DOTS-347;So;0;L;;;;;N;;;;;
+284D;BRAILLE PATTERN DOTS-1347;So;0;L;;;;;N;;;;;
+284E;BRAILLE PATTERN DOTS-2347;So;0;L;;;;;N;;;;;
+284F;BRAILLE PATTERN DOTS-12347;So;0;L;;;;;N;;;;;
+2850;BRAILLE PATTERN DOTS-57;So;0;L;;;;;N;;;;;
+2851;BRAILLE PATTERN DOTS-157;So;0;L;;;;;N;;;;;
+2852;BRAILLE PATTERN DOTS-257;So;0;L;;;;;N;;;;;
+2853;BRAILLE PATTERN DOTS-1257;So;0;L;;;;;N;;;;;
+2854;BRAILLE PATTERN DOTS-357;So;0;L;;;;;N;;;;;
+2855;BRAILLE PATTERN DOTS-1357;So;0;L;;;;;N;;;;;
+2856;BRAILLE PATTERN DOTS-2357;So;0;L;;;;;N;;;;;
+2857;BRAILLE PATTERN DOTS-12357;So;0;L;;;;;N;;;;;
+2858;BRAILLE PATTERN DOTS-457;So;0;L;;;;;N;;;;;
+2859;BRAILLE PATTERN DOTS-1457;So;0;L;;;;;N;;;;;
+285A;BRAILLE PATTERN DOTS-2457;So;0;L;;;;;N;;;;;
+285B;BRAILLE PATTERN DOTS-12457;So;0;L;;;;;N;;;;;
+285C;BRAILLE PATTERN DOTS-3457;So;0;L;;;;;N;;;;;
+285D;BRAILLE PATTERN DOTS-13457;So;0;L;;;;;N;;;;;
+285E;BRAILLE PATTERN DOTS-23457;So;0;L;;;;;N;;;;;
+285F;BRAILLE PATTERN DOTS-123457;So;0;L;;;;;N;;;;;
+2860;BRAILLE PATTERN DOTS-67;So;0;L;;;;;N;;;;;
+2861;BRAILLE PATTERN DOTS-167;So;0;L;;;;;N;;;;;
+2862;BRAILLE PATTERN DOTS-267;So;0;L;;;;;N;;;;;
+2863;BRAILLE PATTERN DOTS-1267;So;0;L;;;;;N;;;;;
+2864;BRAILLE PATTERN DOTS-367;So;0;L;;;;;N;;;;;
+2865;BRAILLE PATTERN DOTS-1367;So;0;L;;;;;N;;;;;
+2866;BRAILLE PATTERN DOTS-2367;So;0;L;;;;;N;;;;;
+2867;BRAILLE PATTERN DOTS-12367;So;0;L;;;;;N;;;;;
+2868;BRAILLE PATTERN DOTS-467;So;0;L;;;;;N;;;;;
+2869;BRAILLE PATTERN DOTS-1467;So;0;L;;;;;N;;;;;
+286A;BRAILLE PATTERN DOTS-2467;So;0;L;;;;;N;;;;;
+286B;BRAILLE PATTERN DOTS-12467;So;0;L;;;;;N;;;;;
+286C;BRAILLE PATTERN DOTS-3467;So;0;L;;;;;N;;;;;
+286D;BRAILLE PATTERN DOTS-13467;So;0;L;;;;;N;;;;;
+286E;BRAILLE PATTERN DOTS-23467;So;0;L;;;;;N;;;;;
+286F;BRAILLE PATTERN DOTS-123467;So;0;L;;;;;N;;;;;
+2870;BRAILLE PATTERN DOTS-567;So;0;L;;;;;N;;;;;
+2871;BRAILLE PATTERN DOTS-1567;So;0;L;;;;;N;;;;;
+2872;BRAILLE PATTERN DOTS-2567;So;0;L;;;;;N;;;;;
+2873;BRAILLE PATTERN DOTS-12567;So;0;L;;;;;N;;;;;
+2874;BRAILLE PATTERN DOTS-3567;So;0;L;;;;;N;;;;;
+2875;BRAILLE PATTERN DOTS-13567;So;0;L;;;;;N;;;;;
+2876;BRAILLE PATTERN DOTS-23567;So;0;L;;;;;N;;;;;
+2877;BRAILLE PATTERN DOTS-123567;So;0;L;;;;;N;;;;;
+2878;BRAILLE PATTERN DOTS-4567;So;0;L;;;;;N;;;;;
+2879;BRAILLE PATTERN DOTS-14567;So;0;L;;;;;N;;;;;
+287A;BRAILLE PATTERN DOTS-24567;So;0;L;;;;;N;;;;;
+287B;BRAILLE PATTERN DOTS-124567;So;0;L;;;;;N;;;;;
+287C;BRAILLE PATTERN DOTS-34567;So;0;L;;;;;N;;;;;
+287D;BRAILLE PATTERN DOTS-134567;So;0;L;;;;;N;;;;;
+287E;BRAILLE PATTERN DOTS-234567;So;0;L;;;;;N;;;;;
+287F;BRAILLE PATTERN DOTS-1234567;So;0;L;;;;;N;;;;;
+2880;BRAILLE PATTERN DOTS-8;So;0;L;;;;;N;;;;;
+2881;BRAILLE PATTERN DOTS-18;So;0;L;;;;;N;;;;;
+2882;BRAILLE PATTERN DOTS-28;So;0;L;;;;;N;;;;;
+2883;BRAILLE PATTERN DOTS-128;So;0;L;;;;;N;;;;;
+2884;BRAILLE PATTERN DOTS-38;So;0;L;;;;;N;;;;;
+2885;BRAILLE PATTERN DOTS-138;So;0;L;;;;;N;;;;;
+2886;BRAILLE PATTERN DOTS-238;So;0;L;;;;;N;;;;;
+2887;BRAILLE PATTERN DOTS-1238;So;0;L;;;;;N;;;;;
+2888;BRAILLE PATTERN DOTS-48;So;0;L;;;;;N;;;;;
+2889;BRAILLE PATTERN DOTS-148;So;0;L;;;;;N;;;;;
+288A;BRAILLE PATTERN DOTS-248;So;0;L;;;;;N;;;;;
+288B;BRAILLE PATTERN DOTS-1248;So;0;L;;;;;N;;;;;
+288C;BRAILLE PATTERN DOTS-348;So;0;L;;;;;N;;;;;
+288D;BRAILLE PATTERN DOTS-1348;So;0;L;;;;;N;;;;;
+288E;BRAILLE PATTERN DOTS-2348;So;0;L;;;;;N;;;;;
+288F;BRAILLE PATTERN DOTS-12348;So;0;L;;;;;N;;;;;
+2890;BRAILLE PATTERN DOTS-58;So;0;L;;;;;N;;;;;
+2891;BRAILLE PATTERN DOTS-158;So;0;L;;;;;N;;;;;
+2892;BRAILLE PATTERN DOTS-258;So;0;L;;;;;N;;;;;
+2893;BRAILLE PATTERN DOTS-1258;So;0;L;;;;;N;;;;;
+2894;BRAILLE PATTERN DOTS-358;So;0;L;;;;;N;;;;;
+2895;BRAILLE PATTERN DOTS-1358;So;0;L;;;;;N;;;;;
+2896;BRAILLE PATTERN DOTS-2358;So;0;L;;;;;N;;;;;
+2897;BRAILLE PATTERN DOTS-12358;So;0;L;;;;;N;;;;;
+2898;BRAILLE PATTERN DOTS-458;So;0;L;;;;;N;;;;;
+2899;BRAILLE PATTERN DOTS-1458;So;0;L;;;;;N;;;;;
+289A;BRAILLE PATTERN DOTS-2458;So;0;L;;;;;N;;;;;
+289B;BRAILLE PATTERN DOTS-12458;So;0;L;;;;;N;;;;;
+289C;BRAILLE PATTERN DOTS-3458;So;0;L;;;;;N;;;;;
+289D;BRAILLE PATTERN DOTS-13458;So;0;L;;;;;N;;;;;
+289E;BRAILLE PATTERN DOTS-23458;So;0;L;;;;;N;;;;;
+289F;BRAILLE PATTERN DOTS-123458;So;0;L;;;;;N;;;;;
+28A0;BRAILLE PATTERN DOTS-68;So;0;L;;;;;N;;;;;
+28A1;BRAILLE PATTERN DOTS-168;So;0;L;;;;;N;;;;;
+28A2;BRAILLE PATTERN DOTS-268;So;0;L;;;;;N;;;;;
+28A3;BRAILLE PATTERN DOTS-1268;So;0;L;;;;;N;;;;;
+28A4;BRAILLE PATTERN DOTS-368;So;0;L;;;;;N;;;;;
+28A5;BRAILLE PATTERN DOTS-1368;So;0;L;;;;;N;;;;;
+28A6;BRAILLE PATTERN DOTS-2368;So;0;L;;;;;N;;;;;
+28A7;BRAILLE PATTERN DOTS-12368;So;0;L;;;;;N;;;;;
+28A8;BRAILLE PATTERN DOTS-468;So;0;L;;;;;N;;;;;
+28A9;BRAILLE PATTERN DOTS-1468;So;0;L;;;;;N;;;;;
+28AA;BRAILLE PATTERN DOTS-2468;So;0;L;;;;;N;;;;;
+28AB;BRAILLE PATTERN DOTS-12468;So;0;L;;;;;N;;;;;
+28AC;BRAILLE PATTERN DOTS-3468;So;0;L;;;;;N;;;;;
+28AD;BRAILLE PATTERN DOTS-13468;So;0;L;;;;;N;;;;;
+28AE;BRAILLE PATTERN DOTS-23468;So;0;L;;;;;N;;;;;
+28AF;BRAILLE PATTERN DOTS-123468;So;0;L;;;;;N;;;;;
+28B0;BRAILLE PATTERN DOTS-568;So;0;L;;;;;N;;;;;
+28B1;BRAILLE PATTERN DOTS-1568;So;0;L;;;;;N;;;;;
+28B2;BRAILLE PATTERN DOTS-2568;So;0;L;;;;;N;;;;;
+28B3;BRAILLE PATTERN DOTS-12568;So;0;L;;;;;N;;;;;
+28B4;BRAILLE PATTERN DOTS-3568;So;0;L;;;;;N;;;;;
+28B5;BRAILLE PATTERN DOTS-13568;So;0;L;;;;;N;;;;;
+28B6;BRAILLE PATTERN DOTS-23568;So;0;L;;;;;N;;;;;
+28B7;BRAILLE PATTERN DOTS-123568;So;0;L;;;;;N;;;;;
+28B8;BRAILLE PATTERN DOTS-4568;So;0;L;;;;;N;;;;;
+28B9;BRAILLE PATTERN DOTS-14568;So;0;L;;;;;N;;;;;
+28BA;BRAILLE PATTERN DOTS-24568;So;0;L;;;;;N;;;;;
+28BB;BRAILLE PATTERN DOTS-124568;So;0;L;;;;;N;;;;;
+28BC;BRAILLE PATTERN DOTS-34568;So;0;L;;;;;N;;;;;
+28BD;BRAILLE PATTERN DOTS-134568;So;0;L;;;;;N;;;;;
+28BE;BRAILLE PATTERN DOTS-234568;So;0;L;;;;;N;;;;;
+28BF;BRAILLE PATTERN DOTS-1234568;So;0;L;;;;;N;;;;;
+28C0;BRAILLE PATTERN DOTS-78;So;0;L;;;;;N;;;;;
+28C1;BRAILLE PATTERN DOTS-178;So;0;L;;;;;N;;;;;
+28C2;BRAILLE PATTERN DOTS-278;So;0;L;;;;;N;;;;;
+28C3;BRAILLE PATTERN DOTS-1278;So;0;L;;;;;N;;;;;
+28C4;BRAILLE PATTERN DOTS-378;So;0;L;;;;;N;;;;;
+28C5;BRAILLE PATTERN DOTS-1378;So;0;L;;;;;N;;;;;
+28C6;BRAILLE PATTERN DOTS-2378;So;0;L;;;;;N;;;;;
+28C7;BRAILLE PATTERN DOTS-12378;So;0;L;;;;;N;;;;;
+28C8;BRAILLE PATTERN DOTS-478;So;0;L;;;;;N;;;;;
+28C9;BRAILLE PATTERN DOTS-1478;So;0;L;;;;;N;;;;;
+28CA;BRAILLE PATTERN DOTS-2478;So;0;L;;;;;N;;;;;
+28CB;BRAILLE PATTERN DOTS-12478;So;0;L;;;;;N;;;;;
+28CC;BRAILLE PATTERN DOTS-3478;So;0;L;;;;;N;;;;;
+28CD;BRAILLE PATTERN DOTS-13478;So;0;L;;;;;N;;;;;
+28CE;BRAILLE PATTERN DOTS-23478;So;0;L;;;;;N;;;;;
+28CF;BRAILLE PATTERN DOTS-123478;So;0;L;;;;;N;;;;;
+28D0;BRAILLE PATTERN DOTS-578;So;0;L;;;;;N;;;;;
+28D1;BRAILLE PATTERN DOTS-1578;So;0;L;;;;;N;;;;;
+28D2;BRAILLE PATTERN DOTS-2578;So;0;L;;;;;N;;;;;
+28D3;BRAILLE PATTERN DOTS-12578;So;0;L;;;;;N;;;;;
+28D4;BRAILLE PATTERN DOTS-3578;So;0;L;;;;;N;;;;;
+28D5;BRAILLE PATTERN DOTS-13578;So;0;L;;;;;N;;;;;
+28D6;BRAILLE PATTERN DOTS-23578;So;0;L;;;;;N;;;;;
+28D7;BRAILLE PATTERN DOTS-123578;So;0;L;;;;;N;;;;;
+28D8;BRAILLE PATTERN DOTS-4578;So;0;L;;;;;N;;;;;
+28D9;BRAILLE PATTERN DOTS-14578;So;0;L;;;;;N;;;;;
+28DA;BRAILLE PATTERN DOTS-24578;So;0;L;;;;;N;;;;;
+28DB;BRAILLE PATTERN DOTS-124578;So;0;L;;;;;N;;;;;
+28DC;BRAILLE PATTERN DOTS-34578;So;0;L;;;;;N;;;;;
+28DD;BRAILLE PATTERN DOTS-134578;So;0;L;;;;;N;;;;;
+28DE;BRAILLE PATTERN DOTS-234578;So;0;L;;;;;N;;;;;
+28DF;BRAILLE PATTERN DOTS-1234578;So;0;L;;;;;N;;;;;
+28E0;BRAILLE PATTERN DOTS-678;So;0;L;;;;;N;;;;;
+28E1;BRAILLE PATTERN DOTS-1678;So;0;L;;;;;N;;;;;
+28E2;BRAILLE PATTERN DOTS-2678;So;0;L;;;;;N;;;;;
+28E3;BRAILLE PATTERN DOTS-12678;So;0;L;;;;;N;;;;;
+28E4;BRAILLE PATTERN DOTS-3678;So;0;L;;;;;N;;;;;
+28E5;BRAILLE PATTERN DOTS-13678;So;0;L;;;;;N;;;;;
+28E6;BRAILLE PATTERN DOTS-23678;So;0;L;;;;;N;;;;;
+28E7;BRAILLE PATTERN DOTS-123678;So;0;L;;;;;N;;;;;
+28E8;BRAILLE PATTERN DOTS-4678;So;0;L;;;;;N;;;;;
+28E9;BRAILLE PATTERN DOTS-14678;So;0;L;;;;;N;;;;;
+28EA;BRAILLE PATTERN DOTS-24678;So;0;L;;;;;N;;;;;
+28EB;BRAILLE PATTERN DOTS-124678;So;0;L;;;;;N;;;;;
+28EC;BRAILLE PATTERN DOTS-34678;So;0;L;;;;;N;;;;;
+28ED;BRAILLE PATTERN DOTS-134678;So;0;L;;;;;N;;;;;
+28EE;BRAILLE PATTERN DOTS-234678;So;0;L;;;;;N;;;;;
+28EF;BRAILLE PATTERN DOTS-1234678;So;0;L;;;;;N;;;;;
+28F0;BRAILLE PATTERN DOTS-5678;So;0;L;;;;;N;;;;;
+28F1;BRAILLE PATTERN DOTS-15678;So;0;L;;;;;N;;;;;
+28F2;BRAILLE PATTERN DOTS-25678;So;0;L;;;;;N;;;;;
+28F3;BRAILLE PATTERN DOTS-125678;So;0;L;;;;;N;;;;;
+28F4;BRAILLE PATTERN DOTS-35678;So;0;L;;;;;N;;;;;
+28F5;BRAILLE PATTERN DOTS-135678;So;0;L;;;;;N;;;;;
+28F6;BRAILLE PATTERN DOTS-235678;So;0;L;;;;;N;;;;;
+28F7;BRAILLE PATTERN DOTS-1235678;So;0;L;;;;;N;;;;;
+28F8;BRAILLE PATTERN DOTS-45678;So;0;L;;;;;N;;;;;
+28F9;BRAILLE PATTERN DOTS-145678;So;0;L;;;;;N;;;;;
+28FA;BRAILLE PATTERN DOTS-245678;So;0;L;;;;;N;;;;;
+28FB;BRAILLE PATTERN DOTS-1245678;So;0;L;;;;;N;;;;;
+28FC;BRAILLE PATTERN DOTS-345678;So;0;L;;;;;N;;;;;
+28FD;BRAILLE PATTERN DOTS-1345678;So;0;L;;;;;N;;;;;
+28FE;BRAILLE PATTERN DOTS-2345678;So;0;L;;;;;N;;;;;
+28FF;BRAILLE PATTERN DOTS-12345678;So;0;L;;;;;N;;;;;
+2900;RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+2901;RIGHTWARDS TWO-HEADED ARROW WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+2902;LEFTWARDS DOUBLE ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+2903;RIGHTWARDS DOUBLE ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+2904;LEFT RIGHT DOUBLE ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+2905;RIGHTWARDS TWO-HEADED ARROW FROM BAR;Sm;0;ON;;;;;N;;;;;
+2906;LEFTWARDS DOUBLE ARROW FROM BAR;Sm;0;ON;;;;;N;;;;;
+2907;RIGHTWARDS DOUBLE ARROW FROM BAR;Sm;0;ON;;;;;N;;;;;
+2908;DOWNWARDS ARROW WITH HORIZONTAL STROKE;Sm;0;ON;;;;;N;;;;;
+2909;UPWARDS ARROW WITH HORIZONTAL STROKE;Sm;0;ON;;;;;N;;;;;
+290A;UPWARDS TRIPLE ARROW;Sm;0;ON;;;;;N;;;;;
+290B;DOWNWARDS TRIPLE ARROW;Sm;0;ON;;;;;N;;;;;
+290C;LEFTWARDS DOUBLE DASH ARROW;Sm;0;ON;;;;;N;;;;;
+290D;RIGHTWARDS DOUBLE DASH ARROW;Sm;0;ON;;;;;N;;;;;
+290E;LEFTWARDS TRIPLE DASH ARROW;Sm;0;ON;;;;;N;;;;;
+290F;RIGHTWARDS TRIPLE DASH ARROW;Sm;0;ON;;;;;N;;;;;
+2910;RIGHTWARDS TWO-HEADED TRIPLE DASH ARROW;Sm;0;ON;;;;;N;;;;;
+2911;RIGHTWARDS ARROW WITH DOTTED STEM;Sm;0;ON;;;;;N;;;;;
+2912;UPWARDS ARROW TO BAR;Sm;0;ON;;;;;N;;;;;
+2913;DOWNWARDS ARROW TO BAR;Sm;0;ON;;;;;N;;;;;
+2914;RIGHTWARDS ARROW WITH TAIL WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+2915;RIGHTWARDS ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+2916;RIGHTWARDS TWO-HEADED ARROW WITH TAIL;Sm;0;ON;;;;;N;;;;;
+2917;RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+2918;RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+2919;LEFTWARDS ARROW-TAIL;Sm;0;ON;;;;;N;;;;;
+291A;RIGHTWARDS ARROW-TAIL;Sm;0;ON;;;;;N;;;;;
+291B;LEFTWARDS DOUBLE ARROW-TAIL;Sm;0;ON;;;;;N;;;;;
+291C;RIGHTWARDS DOUBLE ARROW-TAIL;Sm;0;ON;;;;;N;;;;;
+291D;LEFTWARDS ARROW TO BLACK DIAMOND;Sm;0;ON;;;;;N;;;;;
+291E;RIGHTWARDS ARROW TO BLACK DIAMOND;Sm;0;ON;;;;;N;;;;;
+291F;LEFTWARDS ARROW FROM BAR TO BLACK DIAMOND;Sm;0;ON;;;;;N;;;;;
+2920;RIGHTWARDS ARROW FROM BAR TO BLACK DIAMOND;Sm;0;ON;;;;;N;;;;;
+2921;NORTH WEST AND SOUTH EAST ARROW;Sm;0;ON;;;;;N;;;;;
+2922;NORTH EAST AND SOUTH WEST ARROW;Sm;0;ON;;;;;N;;;;;
+2923;NORTH WEST ARROW WITH HOOK;Sm;0;ON;;;;;N;;;;;
+2924;NORTH EAST ARROW WITH HOOK;Sm;0;ON;;;;;N;;;;;
+2925;SOUTH EAST ARROW WITH HOOK;Sm;0;ON;;;;;N;;;;;
+2926;SOUTH WEST ARROW WITH HOOK;Sm;0;ON;;;;;N;;;;;
+2927;NORTH WEST ARROW AND NORTH EAST ARROW;Sm;0;ON;;;;;N;;;;;
+2928;NORTH EAST ARROW AND SOUTH EAST ARROW;Sm;0;ON;;;;;N;;;;;
+2929;SOUTH EAST ARROW AND SOUTH WEST ARROW;Sm;0;ON;;;;;N;;;;;
+292A;SOUTH WEST ARROW AND NORTH WEST ARROW;Sm;0;ON;;;;;N;;;;;
+292B;RISING DIAGONAL CROSSING FALLING DIAGONAL;Sm;0;ON;;;;;N;;;;;
+292C;FALLING DIAGONAL CROSSING RISING DIAGONAL;Sm;0;ON;;;;;N;;;;;
+292D;SOUTH EAST ARROW CROSSING NORTH EAST ARROW;Sm;0;ON;;;;;N;;;;;
+292E;NORTH EAST ARROW CROSSING SOUTH EAST ARROW;Sm;0;ON;;;;;N;;;;;
+292F;FALLING DIAGONAL CROSSING NORTH EAST ARROW;Sm;0;ON;;;;;N;;;;;
+2930;RISING DIAGONAL CROSSING SOUTH EAST ARROW;Sm;0;ON;;;;;N;;;;;
+2931;NORTH EAST ARROW CROSSING NORTH WEST ARROW;Sm;0;ON;;;;;N;;;;;
+2932;NORTH WEST ARROW CROSSING NORTH EAST ARROW;Sm;0;ON;;;;;N;;;;;
+2933;WAVE ARROW POINTING DIRECTLY RIGHT;Sm;0;ON;;;;;N;;;;;
+2934;ARROW POINTING RIGHTWARDS THEN CURVING UPWARDS;Sm;0;ON;;;;;N;;;;;
+2935;ARROW POINTING RIGHTWARDS THEN CURVING DOWNWARDS;Sm;0;ON;;;;;N;;;;;
+2936;ARROW POINTING DOWNWARDS THEN CURVING LEFTWARDS;Sm;0;ON;;;;;N;;;;;
+2937;ARROW POINTING DOWNWARDS THEN CURVING RIGHTWARDS;Sm;0;ON;;;;;N;;;;;
+2938;RIGHT-SIDE ARC CLOCKWISE ARROW;Sm;0;ON;;;;;N;;;;;
+2939;LEFT-SIDE ARC ANTICLOCKWISE ARROW;Sm;0;ON;;;;;N;;;;;
+293A;TOP ARC ANTICLOCKWISE ARROW;Sm;0;ON;;;;;N;;;;;
+293B;BOTTOM ARC ANTICLOCKWISE ARROW;Sm;0;ON;;;;;N;;;;;
+293C;TOP ARC CLOCKWISE ARROW WITH MINUS;Sm;0;ON;;;;;N;;;;;
+293D;TOP ARC ANTICLOCKWISE ARROW WITH PLUS;Sm;0;ON;;;;;N;;;;;
+293E;LOWER RIGHT SEMICIRCULAR CLOCKWISE ARROW;Sm;0;ON;;;;;N;;;;;
+293F;LOWER LEFT SEMICIRCULAR ANTICLOCKWISE ARROW;Sm;0;ON;;;;;N;;;;;
+2940;ANTICLOCKWISE CLOSED CIRCLE ARROW;Sm;0;ON;;;;;N;;;;;
+2941;CLOCKWISE CLOSED CIRCLE ARROW;Sm;0;ON;;;;;N;;;;;
+2942;RIGHTWARDS ARROW ABOVE SHORT LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
+2943;LEFTWARDS ARROW ABOVE SHORT RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
+2944;SHORT RIGHTWARDS ARROW ABOVE LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
+2945;RIGHTWARDS ARROW WITH PLUS BELOW;Sm;0;ON;;;;;N;;;;;
+2946;LEFTWARDS ARROW WITH PLUS BELOW;Sm;0;ON;;;;;N;;;;;
+2947;RIGHTWARDS ARROW THROUGH X;Sm;0;ON;;;;;N;;;;;
+2948;LEFT RIGHT ARROW THROUGH SMALL CIRCLE;Sm;0;ON;;;;;N;;;;;
+2949;UPWARDS TWO-HEADED ARROW FROM SMALL CIRCLE;Sm;0;ON;;;;;N;;;;;
+294A;LEFT BARB UP RIGHT BARB DOWN HARPOON;Sm;0;ON;;;;;N;;;;;
+294B;LEFT BARB DOWN RIGHT BARB UP HARPOON;Sm;0;ON;;;;;N;;;;;
+294C;UP BARB RIGHT DOWN BARB LEFT HARPOON;Sm;0;ON;;;;;N;;;;;
+294D;UP BARB LEFT DOWN BARB RIGHT HARPOON;Sm;0;ON;;;;;N;;;;;
+294E;LEFT BARB UP RIGHT BARB UP HARPOON;Sm;0;ON;;;;;N;;;;;
+294F;UP BARB RIGHT DOWN BARB RIGHT HARPOON;Sm;0;ON;;;;;N;;;;;
+2950;LEFT BARB DOWN RIGHT BARB DOWN HARPOON;Sm;0;ON;;;;;N;;;;;
+2951;UP BARB LEFT DOWN BARB LEFT HARPOON;Sm;0;ON;;;;;N;;;;;
+2952;LEFTWARDS HARPOON WITH BARB UP TO BAR;Sm;0;ON;;;;;N;;;;;
+2953;RIGHTWARDS HARPOON WITH BARB UP TO BAR;Sm;0;ON;;;;;N;;;;;
+2954;UPWARDS HARPOON WITH BARB RIGHT TO BAR;Sm;0;ON;;;;;N;;;;;
+2955;DOWNWARDS HARPOON WITH BARB RIGHT TO BAR;Sm;0;ON;;;;;N;;;;;
+2956;LEFTWARDS HARPOON WITH BARB DOWN TO BAR;Sm;0;ON;;;;;N;;;;;
+2957;RIGHTWARDS HARPOON WITH BARB DOWN TO BAR;Sm;0;ON;;;;;N;;;;;
+2958;UPWARDS HARPOON WITH BARB LEFT TO BAR;Sm;0;ON;;;;;N;;;;;
+2959;DOWNWARDS HARPOON WITH BARB LEFT TO BAR;Sm;0;ON;;;;;N;;;;;
+295A;LEFTWARDS HARPOON WITH BARB UP FROM BAR;Sm;0;ON;;;;;N;;;;;
+295B;RIGHTWARDS HARPOON WITH BARB UP FROM BAR;Sm;0;ON;;;;;N;;;;;
+295C;UPWARDS HARPOON WITH BARB RIGHT FROM BAR;Sm;0;ON;;;;;N;;;;;
+295D;DOWNWARDS HARPOON WITH BARB RIGHT FROM BAR;Sm;0;ON;;;;;N;;;;;
+295E;LEFTWARDS HARPOON WITH BARB DOWN FROM BAR;Sm;0;ON;;;;;N;;;;;
+295F;RIGHTWARDS HARPOON WITH BARB DOWN FROM BAR;Sm;0;ON;;;;;N;;;;;
+2960;UPWARDS HARPOON WITH BARB LEFT FROM BAR;Sm;0;ON;;;;;N;;;;;
+2961;DOWNWARDS HARPOON WITH BARB LEFT FROM BAR;Sm;0;ON;;;;;N;;;;;
+2962;LEFTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB DOWN;Sm;0;ON;;;;;N;;;;;
+2963;UPWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT;Sm;0;ON;;;;;N;;;;;
+2964;RIGHTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB DOWN;Sm;0;ON;;;;;N;;;;;
+2965;DOWNWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT;Sm;0;ON;;;;;N;;;;;
+2966;LEFTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB UP;Sm;0;ON;;;;;N;;;;;
+2967;LEFTWARDS HARPOON WITH BARB DOWN ABOVE RIGHTWARDS HARPOON WITH BARB DOWN;Sm;0;ON;;;;;N;;;;;
+2968;RIGHTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB UP;Sm;0;ON;;;;;N;;;;;
+2969;RIGHTWARDS HARPOON WITH BARB DOWN ABOVE LEFTWARDS HARPOON WITH BARB DOWN;Sm;0;ON;;;;;N;;;;;
+296A;LEFTWARDS HARPOON WITH BARB UP ABOVE LONG DASH;Sm;0;ON;;;;;N;;;;;
+296B;LEFTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH;Sm;0;ON;;;;;N;;;;;
+296C;RIGHTWARDS HARPOON WITH BARB UP ABOVE LONG DASH;Sm;0;ON;;;;;N;;;;;
+296D;RIGHTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH;Sm;0;ON;;;;;N;;;;;
+296E;UPWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT;Sm;0;ON;;;;;N;;;;;
+296F;DOWNWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT;Sm;0;ON;;;;;N;;;;;
+2970;RIGHT DOUBLE ARROW WITH ROUNDED HEAD;Sm;0;ON;;;;;N;;;;;
+2971;EQUALS SIGN ABOVE RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
+2972;TILDE OPERATOR ABOVE RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
+2973;LEFTWARDS ARROW ABOVE TILDE OPERATOR;Sm;0;ON;;;;;N;;;;;
+2974;RIGHTWARDS ARROW ABOVE TILDE OPERATOR;Sm;0;ON;;;;;N;;;;;
+2975;RIGHTWARDS ARROW ABOVE ALMOST EQUAL TO;Sm;0;ON;;;;;N;;;;;
+2976;LESS-THAN ABOVE LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
+2977;LEFTWARDS ARROW THROUGH LESS-THAN;Sm;0;ON;;;;;N;;;;;
+2978;GREATER-THAN ABOVE RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
+2979;SUBSET ABOVE RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
+297A;LEFTWARDS ARROW THROUGH SUBSET;Sm;0;ON;;;;;N;;;;;
+297B;SUPERSET ABOVE LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
+297C;LEFT FISH TAIL;Sm;0;ON;;;;;N;;;;;
+297D;RIGHT FISH TAIL;Sm;0;ON;;;;;N;;;;;
+297E;UP FISH TAIL;Sm;0;ON;;;;;N;;;;;
+297F;DOWN FISH TAIL;Sm;0;ON;;;;;N;;;;;
+2980;TRIPLE VERTICAL BAR DELIMITER;Sm;0;ON;;;;;N;;;;;
+2981;Z NOTATION SPOT;Sm;0;ON;;;;;N;;;;;
+2982;Z NOTATION TYPE COLON;Sm;0;ON;;;;;N;;;;;
+2983;LEFT WHITE CURLY BRACKET;Ps;0;ON;;;;;Y;;;;;
+2984;RIGHT WHITE CURLY BRACKET;Pe;0;ON;;;;;Y;;;;;
+2985;LEFT WHITE PARENTHESIS;Ps;0;ON;;;;;Y;;;;;
+2986;RIGHT WHITE PARENTHESIS;Pe;0;ON;;;;;Y;;;;;
+2987;Z NOTATION LEFT IMAGE BRACKET;Ps;0;ON;;;;;Y;;;;;
+2988;Z NOTATION RIGHT IMAGE BRACKET;Pe;0;ON;;;;;Y;;;;;
+2989;Z NOTATION LEFT BINDING BRACKET;Ps;0;ON;;;;;Y;;;;;
+298A;Z NOTATION RIGHT BINDING BRACKET;Pe;0;ON;;;;;Y;;;;;
+298B;LEFT SQUARE BRACKET WITH UNDERBAR;Ps;0;ON;;;;;Y;;;;;
+298C;RIGHT SQUARE BRACKET WITH UNDERBAR;Pe;0;ON;;;;;Y;;;;;
+298D;LEFT SQUARE BRACKET WITH TICK IN TOP CORNER;Ps;0;ON;;;;;Y;;;;;
+298E;RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER;Pe;0;ON;;;;;Y;;;;;
+298F;LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER;Ps;0;ON;;;;;Y;;;;;
+2990;RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER;Pe;0;ON;;;;;Y;;;;;
+2991;LEFT ANGLE BRACKET WITH DOT;Ps;0;ON;;;;;Y;;;;;
+2992;RIGHT ANGLE BRACKET WITH DOT;Pe;0;ON;;;;;Y;;;;;
+2993;LEFT ARC LESS-THAN BRACKET;Ps;0;ON;;;;;Y;;;;;
+2994;RIGHT ARC GREATER-THAN BRACKET;Pe;0;ON;;;;;Y;;;;;
+2995;DOUBLE LEFT ARC GREATER-THAN BRACKET;Ps;0;ON;;;;;Y;;;;;
+2996;DOUBLE RIGHT ARC LESS-THAN BRACKET;Pe;0;ON;;;;;Y;;;;;
+2997;LEFT BLACK TORTOISE SHELL BRACKET;Ps;0;ON;;;;;Y;;;;;
+2998;RIGHT BLACK TORTOISE SHELL BRACKET;Pe;0;ON;;;;;Y;;;;;
+2999;DOTTED FENCE;Sm;0;ON;;;;;N;;;;;
+299A;VERTICAL ZIGZAG LINE;Sm;0;ON;;;;;N;;;;;
+299B;MEASURED ANGLE OPENING LEFT;Sm;0;ON;;;;;Y;;;;;
+299C;RIGHT ANGLE VARIANT WITH SQUARE;Sm;0;ON;;;;;Y;;;;;
+299D;MEASURED RIGHT ANGLE WITH DOT;Sm;0;ON;;;;;Y;;;;;
+299E;ANGLE WITH S INSIDE;Sm;0;ON;;;;;Y;;;;;
+299F;ACUTE ANGLE;Sm;0;ON;;;;;Y;;;;;
+29A0;SPHERICAL ANGLE OPENING LEFT;Sm;0;ON;;;;;Y;;;;;
+29A1;SPHERICAL ANGLE OPENING UP;Sm;0;ON;;;;;Y;;;;;
+29A2;TURNED ANGLE;Sm;0;ON;;;;;Y;;;;;
+29A3;REVERSED ANGLE;Sm;0;ON;;;;;Y;;;;;
+29A4;ANGLE WITH UNDERBAR;Sm;0;ON;;;;;Y;;;;;
+29A5;REVERSED ANGLE WITH UNDERBAR;Sm;0;ON;;;;;Y;;;;;
+29A6;OBLIQUE ANGLE OPENING UP;Sm;0;ON;;;;;Y;;;;;
+29A7;OBLIQUE ANGLE OPENING DOWN;Sm;0;ON;;;;;Y;;;;;
+29A8;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND RIGHT;Sm;0;ON;;;;;Y;;;;;
+29A9;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND LEFT;Sm;0;ON;;;;;Y;;;;;
+29AA;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND RIGHT;Sm;0;ON;;;;;Y;;;;;
+29AB;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND LEFT;Sm;0;ON;;;;;Y;;;;;
+29AC;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND UP;Sm;0;ON;;;;;Y;;;;;
+29AD;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND UP;Sm;0;ON;;;;;Y;;;;;
+29AE;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND DOWN;Sm;0;ON;;;;;Y;;;;;
+29AF;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND DOWN;Sm;0;ON;;;;;Y;;;;;
+29B0;REVERSED EMPTY SET;Sm;0;ON;;;;;N;;;;;
+29B1;EMPTY SET WITH OVERBAR;Sm;0;ON;;;;;N;;;;;
+29B2;EMPTY SET WITH SMALL CIRCLE ABOVE;Sm;0;ON;;;;;N;;;;;
+29B3;EMPTY SET WITH RIGHT ARROW ABOVE;Sm;0;ON;;;;;N;;;;;
+29B4;EMPTY SET WITH LEFT ARROW ABOVE;Sm;0;ON;;;;;N;;;;;
+29B5;CIRCLE WITH HORIZONTAL BAR;Sm;0;ON;;;;;N;;;;;
+29B6;CIRCLED VERTICAL BAR;Sm;0;ON;;;;;N;;;;;
+29B7;CIRCLED PARALLEL;Sm;0;ON;;;;;N;;;;;
+29B8;CIRCLED REVERSE SOLIDUS;Sm;0;ON;;;;;Y;;;;;
+29B9;CIRCLED PERPENDICULAR;Sm;0;ON;;;;;N;;;;;
+29BA;CIRCLE DIVIDED BY HORIZONTAL BAR AND TOP HALF DIVIDED BY VERTICAL BAR;Sm;0;ON;;;;;N;;;;;
+29BB;CIRCLE WITH SUPERIMPOSED X;Sm;0;ON;;;;;N;;;;;
+29BC;CIRCLED ANTICLOCKWISE-ROTATED DIVISION SIGN;Sm;0;ON;;;;;N;;;;;
+29BD;UP ARROW THROUGH CIRCLE;Sm;0;ON;;;;;N;;;;;
+29BE;CIRCLED WHITE BULLET;Sm;0;ON;;;;;N;;;;;
+29BF;CIRCLED BULLET;Sm;0;ON;;;;;N;;;;;
+29C0;CIRCLED LESS-THAN;Sm;0;ON;;;;;Y;;;;;
+29C1;CIRCLED GREATER-THAN;Sm;0;ON;;;;;Y;;;;;
+29C2;CIRCLE WITH SMALL CIRCLE TO THE RIGHT;Sm;0;ON;;;;;Y;;;;;
+29C3;CIRCLE WITH TWO HORIZONTAL STROKES TO THE RIGHT;Sm;0;ON;;;;;Y;;;;;
+29C4;SQUARED RISING DIAGONAL SLASH;Sm;0;ON;;;;;Y;;;;;
+29C5;SQUARED FALLING DIAGONAL SLASH;Sm;0;ON;;;;;Y;;;;;
+29C6;SQUARED ASTERISK;Sm;0;ON;;;;;N;;;;;
+29C7;SQUARED SMALL CIRCLE;Sm;0;ON;;;;;N;;;;;
+29C8;SQUARED SQUARE;Sm;0;ON;;;;;N;;;;;
+29C9;TWO JOINED SQUARES;Sm;0;ON;;;;;Y;;;;;
+29CA;TRIANGLE WITH DOT ABOVE;Sm;0;ON;;;;;N;;;;;
+29CB;TRIANGLE WITH UNDERBAR;Sm;0;ON;;;;;N;;;;;
+29CC;S IN TRIANGLE;Sm;0;ON;;;;;N;;;;;
+29CD;TRIANGLE WITH SERIFS AT BOTTOM;Sm;0;ON;;;;;N;;;;;
+29CE;RIGHT TRIANGLE ABOVE LEFT TRIANGLE;Sm;0;ON;;;;;Y;;;;;
+29CF;LEFT TRIANGLE BESIDE VERTICAL BAR;Sm;0;ON;;;;;Y;;;;;
+29D0;VERTICAL BAR BESIDE RIGHT TRIANGLE;Sm;0;ON;;;;;Y;;;;;
+29D1;BOWTIE WITH LEFT HALF BLACK;Sm;0;ON;;;;;Y;;;;;
+29D2;BOWTIE WITH RIGHT HALF BLACK;Sm;0;ON;;;;;Y;;;;;
+29D3;BLACK BOWTIE;Sm;0;ON;;;;;N;;;;;
+29D4;TIMES WITH LEFT HALF BLACK;Sm;0;ON;;;;;Y;;;;;
+29D5;TIMES WITH RIGHT HALF BLACK;Sm;0;ON;;;;;Y;;;;;
+29D6;WHITE HOURGLASS;Sm;0;ON;;;;;N;;;;;
+29D7;BLACK HOURGLASS;Sm;0;ON;;;;;N;;;;;
+29D8;LEFT WIGGLY FENCE;Ps;0;ON;;;;;Y;;;;;
+29D9;RIGHT WIGGLY FENCE;Pe;0;ON;;;;;Y;;;;;
+29DA;LEFT DOUBLE WIGGLY FENCE;Ps;0;ON;;;;;Y;;;;;
+29DB;RIGHT DOUBLE WIGGLY FENCE;Pe;0;ON;;;;;Y;;;;;
+29DC;INCOMPLETE INFINITY;Sm;0;ON;;;;;Y;;;;;
+29DD;TIE OVER INFINITY;Sm;0;ON;;;;;N;;;;;
+29DE;INFINITY NEGATED WITH VERTICAL BAR;Sm;0;ON;;;;;N;;;;;
+29DF;DOUBLE-ENDED MULTIMAP;Sm;0;ON;;;;;N;;;;;
+29E0;SQUARE WITH CONTOURED OUTLINE;Sm;0;ON;;;;;N;;;;;
+29E1;INCREASES AS;Sm;0;ON;;;;;Y;;;;;
+29E2;SHUFFLE PRODUCT;Sm;0;ON;;;;;N;;;;;
+29E3;EQUALS SIGN AND SLANTED PARALLEL;Sm;0;ON;;;;;Y;;;;;
+29E4;EQUALS SIGN AND SLANTED PARALLEL WITH TILDE ABOVE;Sm;0;ON;;;;;Y;;;;;
+29E5;IDENTICAL TO AND SLANTED PARALLEL;Sm;0;ON;;;;;Y;;;;;
+29E6;GLEICH STARK;Sm;0;ON;;;;;N;;;;;
+29E7;THERMODYNAMIC;Sm;0;ON;;;;;N;;;;;
+29E8;DOWN-POINTING TRIANGLE WITH LEFT HALF BLACK;Sm;0;ON;;;;;Y;;;;;
+29E9;DOWN-POINTING TRIANGLE WITH RIGHT HALF BLACK;Sm;0;ON;;;;;Y;;;;;
+29EA;BLACK DIAMOND WITH DOWN ARROW;Sm;0;ON;;;;;N;;;;;
+29EB;BLACK LOZENGE;Sm;0;ON;;;;;N;;;;;
+29EC;WHITE CIRCLE WITH DOWN ARROW;Sm;0;ON;;;;;N;;;;;
+29ED;BLACK CIRCLE WITH DOWN ARROW;Sm;0;ON;;;;;N;;;;;
+29EE;ERROR-BARRED WHITE SQUARE;Sm;0;ON;;;;;N;;;;;
+29EF;ERROR-BARRED BLACK SQUARE;Sm;0;ON;;;;;N;;;;;
+29F0;ERROR-BARRED WHITE DIAMOND;Sm;0;ON;;;;;N;;;;;
+29F1;ERROR-BARRED BLACK DIAMOND;Sm;0;ON;;;;;N;;;;;
+29F2;ERROR-BARRED WHITE CIRCLE;Sm;0;ON;;;;;N;;;;;
+29F3;ERROR-BARRED BLACK CIRCLE;Sm;0;ON;;;;;N;;;;;
+29F4;RULE-DELAYED;Sm;0;ON;;;;;Y;;;;;
+29F5;REVERSE SOLIDUS OPERATOR;Sm;0;ON;;;;;Y;;;;;
+29F6;SOLIDUS WITH OVERBAR;Sm;0;ON;;;;;Y;;;;;
+29F7;REVERSE SOLIDUS WITH HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;;
+29F8;BIG SOLIDUS;Sm;0;ON;;;;;Y;;;;;
+29F9;BIG REVERSE SOLIDUS;Sm;0;ON;;;;;Y;;;;;
+29FA;DOUBLE PLUS;Sm;0;ON;;;;;N;;;;;
+29FB;TRIPLE PLUS;Sm;0;ON;;;;;N;;;;;
+29FC;LEFT-POINTING CURVED ANGLE BRACKET;Ps;0;ON;;;;;Y;;;;;
+29FD;RIGHT-POINTING CURVED ANGLE BRACKET;Pe;0;ON;;;;;Y;;;;;
+29FE;TINY;Sm;0;ON;;;;;N;;;;;
+29FF;MINY;Sm;0;ON;;;;;N;;;;;
+2A00;N-ARY CIRCLED DOT OPERATOR;Sm;0;ON;;;;;N;;;;;
+2A01;N-ARY CIRCLED PLUS OPERATOR;Sm;0;ON;;;;;N;;;;;
+2A02;N-ARY CIRCLED TIMES OPERATOR;Sm;0;ON;;;;;N;;;;;
+2A03;N-ARY UNION OPERATOR WITH DOT;Sm;0;ON;;;;;N;;;;;
+2A04;N-ARY UNION OPERATOR WITH PLUS;Sm;0;ON;;;;;N;;;;;
+2A05;N-ARY SQUARE INTERSECTION OPERATOR;Sm;0;ON;;;;;N;;;;;
+2A06;N-ARY SQUARE UNION OPERATOR;Sm;0;ON;;;;;N;;;;;
+2A07;TWO LOGICAL AND OPERATOR;Sm;0;ON;;;;;N;;;;;
+2A08;TWO LOGICAL OR OPERATOR;Sm;0;ON;;;;;N;;;;;
+2A09;N-ARY TIMES OPERATOR;Sm;0;ON;;;;;N;;;;;
+2A0A;MODULO TWO SUM;Sm;0;ON;;;;;Y;;;;;
+2A0B;SUMMATION WITH INTEGRAL;Sm;0;ON;;;;;Y;;;;;
+2A0C;QUADRUPLE INTEGRAL OPERATOR;Sm;0;ON;<compat> 222B 222B 222B 222B;;;;Y;;;;;
+2A0D;FINITE PART INTEGRAL;Sm;0;ON;;;;;Y;;;;;
+2A0E;INTEGRAL WITH DOUBLE STROKE;Sm;0;ON;;;;;Y;;;;;
+2A0F;INTEGRAL AVERAGE WITH SLASH;Sm;0;ON;;;;;Y;;;;;
+2A10;CIRCULATION FUNCTION;Sm;0;ON;;;;;Y;;;;;
+2A11;ANTICLOCKWISE INTEGRATION;Sm;0;ON;;;;;Y;;;;;
+2A12;LINE INTEGRATION WITH RECTANGULAR PATH AROUND POLE;Sm;0;ON;;;;;Y;;;;;
+2A13;LINE INTEGRATION WITH SEMICIRCULAR PATH AROUND POLE;Sm;0;ON;;;;;Y;;;;;
+2A14;LINE INTEGRATION NOT INCLUDING THE POLE;Sm;0;ON;;;;;Y;;;;;
+2A15;INTEGRAL AROUND A POINT OPERATOR;Sm;0;ON;;;;;Y;;;;;
+2A16;QUATERNION INTEGRAL OPERATOR;Sm;0;ON;;;;;Y;;;;;
+2A17;INTEGRAL WITH LEFTWARDS ARROW WITH HOOK;Sm;0;ON;;;;;Y;;;;;
+2A18;INTEGRAL WITH TIMES SIGN;Sm;0;ON;;;;;Y;;;;;
+2A19;INTEGRAL WITH INTERSECTION;Sm;0;ON;;;;;Y;;;;;
+2A1A;INTEGRAL WITH UNION;Sm;0;ON;;;;;Y;;;;;
+2A1B;INTEGRAL WITH OVERBAR;Sm;0;ON;;;;;Y;;;;;
+2A1C;INTEGRAL WITH UNDERBAR;Sm;0;ON;;;;;Y;;;;;
+2A1D;JOIN;Sm;0;ON;;;;;N;;;;;
+2A1E;LARGE LEFT TRIANGLE OPERATOR;Sm;0;ON;;;;;Y;;;;;
+2A1F;Z NOTATION SCHEMA COMPOSITION;Sm;0;ON;;;;;Y;;;;;
+2A20;Z NOTATION SCHEMA PIPING;Sm;0;ON;;;;;Y;;;;;
+2A21;Z NOTATION SCHEMA PROJECTION;Sm;0;ON;;;;;Y;;;;;
+2A22;PLUS SIGN WITH SMALL CIRCLE ABOVE;Sm;0;ON;;;;;N;;;;;
+2A23;PLUS SIGN WITH CIRCUMFLEX ACCENT ABOVE;Sm;0;ON;;;;;N;;;;;
+2A24;PLUS SIGN WITH TILDE ABOVE;Sm;0;ON;;;;;Y;;;;;
+2A25;PLUS SIGN WITH DOT BELOW;Sm;0;ON;;;;;N;;;;;
+2A26;PLUS SIGN WITH TILDE BELOW;Sm;0;ON;;;;;Y;;;;;
+2A27;PLUS SIGN WITH SUBSCRIPT TWO;Sm;0;ON;;;;;N;;;;;
+2A28;PLUS SIGN WITH BLACK TRIANGLE;Sm;0;ON;;;;;N;;;;;
+2A29;MINUS SIGN WITH COMMA ABOVE;Sm;0;ON;;;;;Y;;;;;
+2A2A;MINUS SIGN WITH DOT BELOW;Sm;0;ON;;;;;N;;;;;
+2A2B;MINUS SIGN WITH FALLING DOTS;Sm;0;ON;;;;;Y;;;;;
+2A2C;MINUS SIGN WITH RISING DOTS;Sm;0;ON;;;;;Y;;;;;
+2A2D;PLUS SIGN IN LEFT HALF CIRCLE;Sm;0;ON;;;;;Y;;;;;
+2A2E;PLUS SIGN IN RIGHT HALF CIRCLE;Sm;0;ON;;;;;Y;;;;;
+2A2F;VECTOR OR CROSS PRODUCT;Sm;0;ON;;;;;N;;;;;
+2A30;MULTIPLICATION SIGN WITH DOT ABOVE;Sm;0;ON;;;;;N;;;;;
+2A31;MULTIPLICATION SIGN WITH UNDERBAR;Sm;0;ON;;;;;N;;;;;
+2A32;SEMIDIRECT PRODUCT WITH BOTTOM CLOSED;Sm;0;ON;;;;;N;;;;;
+2A33;SMASH PRODUCT;Sm;0;ON;;;;;N;;;;;
+2A34;MULTIPLICATION SIGN IN LEFT HALF CIRCLE;Sm;0;ON;;;;;Y;;;;;
+2A35;MULTIPLICATION SIGN IN RIGHT HALF CIRCLE;Sm;0;ON;;;;;Y;;;;;
+2A36;CIRCLED MULTIPLICATION SIGN WITH CIRCUMFLEX ACCENT;Sm;0;ON;;;;;N;;;;;
+2A37;MULTIPLICATION SIGN IN DOUBLE CIRCLE;Sm;0;ON;;;;;N;;;;;
+2A38;CIRCLED DIVISION SIGN;Sm;0;ON;;;;;N;;;;;
+2A39;PLUS SIGN IN TRIANGLE;Sm;0;ON;;;;;N;;;;;
+2A3A;MINUS SIGN IN TRIANGLE;Sm;0;ON;;;;;N;;;;;
+2A3B;MULTIPLICATION SIGN IN TRIANGLE;Sm;0;ON;;;;;N;;;;;
+2A3C;INTERIOR PRODUCT;Sm;0;ON;;;;;Y;;;;;
+2A3D;RIGHTHAND INTERIOR PRODUCT;Sm;0;ON;;;;;Y;;;;;
+2A3E;Z NOTATION RELATIONAL COMPOSITION;Sm;0;ON;;;;;Y;;;;;
+2A3F;AMALGAMATION OR COPRODUCT;Sm;0;ON;;;;;N;;;;;
+2A40;INTERSECTION WITH DOT;Sm;0;ON;;;;;N;;;;;
+2A41;UNION WITH MINUS SIGN;Sm;0;ON;;;;;N;;;;;
+2A42;UNION WITH OVERBAR;Sm;0;ON;;;;;N;;;;;
+2A43;INTERSECTION WITH OVERBAR;Sm;0;ON;;;;;N;;;;;
+2A44;INTERSECTION WITH LOGICAL AND;Sm;0;ON;;;;;N;;;;;
+2A45;UNION WITH LOGICAL OR;Sm;0;ON;;;;;N;;;;;
+2A46;UNION ABOVE INTERSECTION;Sm;0;ON;;;;;N;;;;;
+2A47;INTERSECTION ABOVE UNION;Sm;0;ON;;;;;N;;;;;
+2A48;UNION ABOVE BAR ABOVE INTERSECTION;Sm;0;ON;;;;;N;;;;;
+2A49;INTERSECTION ABOVE BAR ABOVE UNION;Sm;0;ON;;;;;N;;;;;
+2A4A;UNION BESIDE AND JOINED WITH UNION;Sm;0;ON;;;;;N;;;;;
+2A4B;INTERSECTION BESIDE AND JOINED WITH INTERSECTION;Sm;0;ON;;;;;N;;;;;
+2A4C;CLOSED UNION WITH SERIFS;Sm;0;ON;;;;;N;;;;;
+2A4D;CLOSED INTERSECTION WITH SERIFS;Sm;0;ON;;;;;N;;;;;
+2A4E;DOUBLE SQUARE INTERSECTION;Sm;0;ON;;;;;N;;;;;
+2A4F;DOUBLE SQUARE UNION;Sm;0;ON;;;;;N;;;;;
+2A50;CLOSED UNION WITH SERIFS AND SMASH PRODUCT;Sm;0;ON;;;;;N;;;;;
+2A51;LOGICAL AND WITH DOT ABOVE;Sm;0;ON;;;;;N;;;;;
+2A52;LOGICAL OR WITH DOT ABOVE;Sm;0;ON;;;;;N;;;;;
+2A53;DOUBLE LOGICAL AND;Sm;0;ON;;;;;N;;;;;
+2A54;DOUBLE LOGICAL OR;Sm;0;ON;;;;;N;;;;;
+2A55;TWO INTERSECTING LOGICAL AND;Sm;0;ON;;;;;N;;;;;
+2A56;TWO INTERSECTING LOGICAL OR;Sm;0;ON;;;;;N;;;;;
+2A57;SLOPING LARGE OR;Sm;0;ON;;;;;Y;;;;;
+2A58;SLOPING LARGE AND;Sm;0;ON;;;;;Y;;;;;
+2A59;LOGICAL OR OVERLAPPING LOGICAL AND;Sm;0;ON;;;;;N;;;;;
+2A5A;LOGICAL AND WITH MIDDLE STEM;Sm;0;ON;;;;;N;;;;;
+2A5B;LOGICAL OR WITH MIDDLE STEM;Sm;0;ON;;;;;N;;;;;
+2A5C;LOGICAL AND WITH HORIZONTAL DASH;Sm;0;ON;;;;;N;;;;;
+2A5D;LOGICAL OR WITH HORIZONTAL DASH;Sm;0;ON;;;;;N;;;;;
+2A5E;LOGICAL AND WITH DOUBLE OVERBAR;Sm;0;ON;;;;;N;;;;;
+2A5F;LOGICAL AND WITH UNDERBAR;Sm;0;ON;;;;;N;;;;;
+2A60;LOGICAL AND WITH DOUBLE UNDERBAR;Sm;0;ON;;;;;N;;;;;
+2A61;SMALL VEE WITH UNDERBAR;Sm;0;ON;;;;;N;;;;;
+2A62;LOGICAL OR WITH DOUBLE OVERBAR;Sm;0;ON;;;;;N;;;;;
+2A63;LOGICAL OR WITH DOUBLE UNDERBAR;Sm;0;ON;;;;;N;;;;;
+2A64;Z NOTATION DOMAIN ANTIRESTRICTION;Sm;0;ON;;;;;Y;;;;;
+2A65;Z NOTATION RANGE ANTIRESTRICTION;Sm;0;ON;;;;;Y;;;;;
+2A66;EQUALS SIGN WITH DOT BELOW;Sm;0;ON;;;;;N;;;;;
+2A67;IDENTICAL WITH DOT ABOVE;Sm;0;ON;;;;;N;;;;;
+2A68;TRIPLE HORIZONTAL BAR WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+2A69;TRIPLE HORIZONTAL BAR WITH TRIPLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
+2A6A;TILDE OPERATOR WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;;
+2A6B;TILDE OPERATOR WITH RISING DOTS;Sm;0;ON;;;;;Y;;;;;
+2A6C;SIMILAR MINUS SIMILAR;Sm;0;ON;;;;;Y;;;;;
+2A6D;CONGRUENT WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;;
+2A6E;EQUALS WITH ASTERISK;Sm;0;ON;;;;;N;;;;;
+2A6F;ALMOST EQUAL TO WITH CIRCUMFLEX ACCENT;Sm;0;ON;;;;;Y;;;;;
+2A70;APPROXIMATELY EQUAL OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2A71;EQUALS SIGN ABOVE PLUS SIGN;Sm;0;ON;;;;;N;;;;;
+2A72;PLUS SIGN ABOVE EQUALS SIGN;Sm;0;ON;;;;;N;;;;;
+2A73;EQUALS SIGN ABOVE TILDE OPERATOR;Sm;0;ON;;;;;Y;;;;;
+2A74;DOUBLE COLON EQUAL;Sm;0;ON;<compat> 003A 003A 003D;;;;Y;;;;;
+2A75;TWO CONSECUTIVE EQUALS SIGNS;Sm;0;ON;<compat> 003D 003D;;;;N;;;;;
+2A76;THREE CONSECUTIVE EQUALS SIGNS;Sm;0;ON;<compat> 003D 003D 003D;;;;N;;;;;
+2A77;EQUALS SIGN WITH TWO DOTS ABOVE AND TWO DOTS BELOW;Sm;0;ON;;;;;N;;;;;
+2A78;EQUIVALENT WITH FOUR DOTS ABOVE;Sm;0;ON;;;;;N;;;;;
+2A79;LESS-THAN WITH CIRCLE INSIDE;Sm;0;ON;;;;;Y;;;;;
+2A7A;GREATER-THAN WITH CIRCLE INSIDE;Sm;0;ON;;;;;Y;;;;;
+2A7B;LESS-THAN WITH QUESTION MARK ABOVE;Sm;0;ON;;;;;Y;;;;;
+2A7C;GREATER-THAN WITH QUESTION MARK ABOVE;Sm;0;ON;;;;;Y;;;;;
+2A7D;LESS-THAN OR SLANTED EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2A7E;GREATER-THAN OR SLANTED EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2A7F;LESS-THAN OR SLANTED EQUAL TO WITH DOT INSIDE;Sm;0;ON;;;;;Y;;;;;
+2A80;GREATER-THAN OR SLANTED EQUAL TO WITH DOT INSIDE;Sm;0;ON;;;;;Y;;;;;
+2A81;LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;;
+2A82;GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;;
+2A83;LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE RIGHT;Sm;0;ON;;;;;Y;;;;;
+2A84;GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE LEFT;Sm;0;ON;;;;;Y;;;;;
+2A85;LESS-THAN OR APPROXIMATE;Sm;0;ON;;;;;Y;;;;;
+2A86;GREATER-THAN OR APPROXIMATE;Sm;0;ON;;;;;Y;;;;;
+2A87;LESS-THAN AND SINGLE-LINE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2A88;GREATER-THAN AND SINGLE-LINE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2A89;LESS-THAN AND NOT APPROXIMATE;Sm;0;ON;;;;;Y;;;;;
+2A8A;GREATER-THAN AND NOT APPROXIMATE;Sm;0;ON;;;;;Y;;;;;
+2A8B;LESS-THAN ABOVE DOUBLE-LINE EQUAL ABOVE GREATER-THAN;Sm;0;ON;;;;;Y;;;;;
+2A8C;GREATER-THAN ABOVE DOUBLE-LINE EQUAL ABOVE LESS-THAN;Sm;0;ON;;;;;Y;;;;;
+2A8D;LESS-THAN ABOVE SIMILAR OR EQUAL;Sm;0;ON;;;;;Y;;;;;
+2A8E;GREATER-THAN ABOVE SIMILAR OR EQUAL;Sm;0;ON;;;;;Y;;;;;
+2A8F;LESS-THAN ABOVE SIMILAR ABOVE GREATER-THAN;Sm;0;ON;;;;;Y;;;;;
+2A90;GREATER-THAN ABOVE SIMILAR ABOVE LESS-THAN;Sm;0;ON;;;;;Y;;;;;
+2A91;LESS-THAN ABOVE GREATER-THAN ABOVE DOUBLE-LINE EQUAL;Sm;0;ON;;;;;Y;;;;;
+2A92;GREATER-THAN ABOVE LESS-THAN ABOVE DOUBLE-LINE EQUAL;Sm;0;ON;;;;;Y;;;;;
+2A93;LESS-THAN ABOVE SLANTED EQUAL ABOVE GREATER-THAN ABOVE SLANTED EQUAL;Sm;0;ON;;;;;Y;;;;;
+2A94;GREATER-THAN ABOVE SLANTED EQUAL ABOVE LESS-THAN ABOVE SLANTED EQUAL;Sm;0;ON;;;;;Y;;;;;
+2A95;SLANTED EQUAL TO OR LESS-THAN;Sm;0;ON;;;;;Y;;;;;
+2A96;SLANTED EQUAL TO OR GREATER-THAN;Sm;0;ON;;;;;Y;;;;;
+2A97;SLANTED EQUAL TO OR LESS-THAN WITH DOT INSIDE;Sm;0;ON;;;;;Y;;;;;
+2A98;SLANTED EQUAL TO OR GREATER-THAN WITH DOT INSIDE;Sm;0;ON;;;;;Y;;;;;
+2A99;DOUBLE-LINE EQUAL TO OR LESS-THAN;Sm;0;ON;;;;;Y;;;;;
+2A9A;DOUBLE-LINE EQUAL TO OR GREATER-THAN;Sm;0;ON;;;;;Y;;;;;
+2A9B;DOUBLE-LINE SLANTED EQUAL TO OR LESS-THAN;Sm;0;ON;;;;;Y;;;;;
+2A9C;DOUBLE-LINE SLANTED EQUAL TO OR GREATER-THAN;Sm;0;ON;;;;;Y;;;;;
+2A9D;SIMILAR OR LESS-THAN;Sm;0;ON;;;;;Y;;;;;
+2A9E;SIMILAR OR GREATER-THAN;Sm;0;ON;;;;;Y;;;;;
+2A9F;SIMILAR ABOVE LESS-THAN ABOVE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;;
+2AA0;SIMILAR ABOVE GREATER-THAN ABOVE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;;
+2AA1;DOUBLE NESTED LESS-THAN;Sm;0;ON;;;;;Y;;;;;
+2AA2;DOUBLE NESTED GREATER-THAN;Sm;0;ON;;;;;Y;;;;;
+2AA3;DOUBLE NESTED LESS-THAN WITH UNDERBAR;Sm;0;ON;;;;;Y;;;;;
+2AA4;GREATER-THAN OVERLAPPING LESS-THAN;Sm;0;ON;;;;;N;;;;;
+2AA5;GREATER-THAN BESIDE LESS-THAN;Sm;0;ON;;;;;N;;;;;
+2AA6;LESS-THAN CLOSED BY CURVE;Sm;0;ON;;;;;Y;;;;;
+2AA7;GREATER-THAN CLOSED BY CURVE;Sm;0;ON;;;;;Y;;;;;
+2AA8;LESS-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL;Sm;0;ON;;;;;Y;;;;;
+2AA9;GREATER-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL;Sm;0;ON;;;;;Y;;;;;
+2AAA;SMALLER THAN;Sm;0;ON;;;;;Y;;;;;
+2AAB;LARGER THAN;Sm;0;ON;;;;;Y;;;;;
+2AAC;SMALLER THAN OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2AAD;LARGER THAN OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2AAE;EQUALS SIGN WITH BUMPY ABOVE;Sm;0;ON;;;;;N;;;;;
+2AAF;PRECEDES ABOVE SINGLE-LINE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;;
+2AB0;SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;;
+2AB1;PRECEDES ABOVE SINGLE-LINE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2AB2;SUCCEEDS ABOVE SINGLE-LINE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2AB3;PRECEDES ABOVE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;;
+2AB4;SUCCEEDS ABOVE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;;
+2AB5;PRECEDES ABOVE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2AB6;SUCCEEDS ABOVE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2AB7;PRECEDES ABOVE ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2AB8;SUCCEEDS ABOVE ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2AB9;PRECEDES ABOVE NOT ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2ABA;SUCCEEDS ABOVE NOT ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2ABB;DOUBLE PRECEDES;Sm;0;ON;;;;;Y;;;;;
+2ABC;DOUBLE SUCCEEDS;Sm;0;ON;;;;;Y;;;;;
+2ABD;SUBSET WITH DOT;Sm;0;ON;;;;;Y;;;;;
+2ABE;SUPERSET WITH DOT;Sm;0;ON;;;;;Y;;;;;
+2ABF;SUBSET WITH PLUS SIGN BELOW;Sm;0;ON;;;;;Y;;;;;
+2AC0;SUPERSET WITH PLUS SIGN BELOW;Sm;0;ON;;;;;Y;;;;;
+2AC1;SUBSET WITH MULTIPLICATION SIGN BELOW;Sm;0;ON;;;;;Y;;;;;
+2AC2;SUPERSET WITH MULTIPLICATION SIGN BELOW;Sm;0;ON;;;;;Y;;;;;
+2AC3;SUBSET OF OR EQUAL TO WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;;
+2AC4;SUPERSET OF OR EQUAL TO WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;;
+2AC5;SUBSET OF ABOVE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;;
+2AC6;SUPERSET OF ABOVE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;;
+2AC7;SUBSET OF ABOVE TILDE OPERATOR;Sm;0;ON;;;;;Y;;;;;
+2AC8;SUPERSET OF ABOVE TILDE OPERATOR;Sm;0;ON;;;;;Y;;;;;
+2AC9;SUBSET OF ABOVE ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2ACA;SUPERSET OF ABOVE ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2ACB;SUBSET OF ABOVE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2ACC;SUPERSET OF ABOVE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2ACD;SQUARE LEFT OPEN BOX OPERATOR;Sm;0;ON;;;;;Y;;;;;
+2ACE;SQUARE RIGHT OPEN BOX OPERATOR;Sm;0;ON;;;;;Y;;;;;
+2ACF;CLOSED SUBSET;Sm;0;ON;;;;;Y;;;;;
+2AD0;CLOSED SUPERSET;Sm;0;ON;;;;;Y;;;;;
+2AD1;CLOSED SUBSET OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2AD2;CLOSED SUPERSET OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2AD3;SUBSET ABOVE SUPERSET;Sm;0;ON;;;;;Y;;;;;
+2AD4;SUPERSET ABOVE SUBSET;Sm;0;ON;;;;;Y;;;;;
+2AD5;SUBSET ABOVE SUBSET;Sm;0;ON;;;;;Y;;;;;
+2AD6;SUPERSET ABOVE SUPERSET;Sm;0;ON;;;;;Y;;;;;
+2AD7;SUPERSET BESIDE SUBSET;Sm;0;ON;;;;;N;;;;;
+2AD8;SUPERSET BESIDE AND JOINED BY DASH WITH SUBSET;Sm;0;ON;;;;;N;;;;;
+2AD9;ELEMENT OF OPENING DOWNWARDS;Sm;0;ON;;;;;N;;;;;
+2ADA;PITCHFORK WITH TEE TOP;Sm;0;ON;;;;;N;;;;;
+2ADB;TRANSVERSAL INTERSECTION;Sm;0;ON;;;;;N;;;;;
+2ADC;FORKING;Sm;0;ON;2ADD 0338;;;;Y;;not independent;;;
+2ADD;NONFORKING;Sm;0;ON;;;;;N;;independent;;;
+2ADE;SHORT LEFT TACK;Sm;0;ON;;;;;Y;;;;;
+2ADF;SHORT DOWN TACK;Sm;0;ON;;;;;N;;;;;
+2AE0;SHORT UP TACK;Sm;0;ON;;;;;N;;;;;
+2AE1;PERPENDICULAR WITH S;Sm;0;ON;;;;;N;;;;;
+2AE2;VERTICAL BAR TRIPLE RIGHT TURNSTILE;Sm;0;ON;;;;;Y;;;;;
+2AE3;DOUBLE VERTICAL BAR LEFT TURNSTILE;Sm;0;ON;;;;;Y;;;;;
+2AE4;VERTICAL BAR DOUBLE LEFT TURNSTILE;Sm;0;ON;;;;;Y;;;;;
+2AE5;DOUBLE VERTICAL BAR DOUBLE LEFT TURNSTILE;Sm;0;ON;;;;;Y;;;;;
+2AE6;LONG DASH FROM LEFT MEMBER OF DOUBLE VERTICAL;Sm;0;ON;;;;;Y;;;;;
+2AE7;SHORT DOWN TACK WITH OVERBAR;Sm;0;ON;;;;;N;;;;;
+2AE8;SHORT UP TACK WITH UNDERBAR;Sm;0;ON;;;;;N;;;;;
+2AE9;SHORT UP TACK ABOVE SHORT DOWN TACK;Sm;0;ON;;;;;N;;;;;
+2AEA;DOUBLE DOWN TACK;Sm;0;ON;;;;;N;;;;;
+2AEB;DOUBLE UP TACK;Sm;0;ON;;;;;N;;;;;
+2AEC;DOUBLE STROKE NOT SIGN;Sm;0;ON;;;;;Y;;;;;
+2AED;REVERSED DOUBLE STROKE NOT SIGN;Sm;0;ON;;;;;Y;;;;;
+2AEE;DOES NOT DIVIDE WITH REVERSED NEGATION SLASH;Sm;0;ON;;;;;Y;;;;;
+2AEF;VERTICAL LINE WITH CIRCLE ABOVE;Sm;0;ON;;;;;N;;;;;
+2AF0;VERTICAL LINE WITH CIRCLE BELOW;Sm;0;ON;;;;;N;;;;;
+2AF1;DOWN TACK WITH CIRCLE BELOW;Sm;0;ON;;;;;N;;;;;
+2AF2;PARALLEL WITH HORIZONTAL STROKE;Sm;0;ON;;;;;N;;;;;
+2AF3;PARALLEL WITH TILDE OPERATOR;Sm;0;ON;;;;;Y;;;;;
+2AF4;TRIPLE VERTICAL BAR BINARY RELATION;Sm;0;ON;;;;;N;;;;;
+2AF5;TRIPLE VERTICAL BAR WITH HORIZONTAL STROKE;Sm;0;ON;;;;;N;;;;;
+2AF6;TRIPLE COLON OPERATOR;Sm;0;ON;;;;;N;;;;;
+2AF7;TRIPLE NESTED LESS-THAN;Sm;0;ON;;;;;Y;;;;;
+2AF8;TRIPLE NESTED GREATER-THAN;Sm;0;ON;;;;;Y;;;;;
+2AF9;DOUBLE-LINE SLANTED LESS-THAN OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2AFA;DOUBLE-LINE SLANTED GREATER-THAN OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2AFB;TRIPLE SOLIDUS BINARY RELATION;Sm;0;ON;;;;;Y;;;;;
+2AFC;LARGE TRIPLE VERTICAL BAR OPERATOR;Sm;0;ON;;;;;N;;;;;
+2AFD;DOUBLE SOLIDUS OPERATOR;Sm;0;ON;;;;;Y;;;;;
+2AFE;WHITE VERTICAL BAR;Sm;0;ON;;;;;N;;;;;
+2AFF;N-ARY WHITE VERTICAL BAR;Sm;0;ON;;;;;N;;;;;
+2B00;NORTH EAST WHITE ARROW;So;0;ON;;;;;N;;;;;
+2B01;NORTH WEST WHITE ARROW;So;0;ON;;;;;N;;;;;
+2B02;SOUTH EAST WHITE ARROW;So;0;ON;;;;;N;;;;;
+2B03;SOUTH WEST WHITE ARROW;So;0;ON;;;;;N;;;;;
+2B04;LEFT RIGHT WHITE ARROW;So;0;ON;;;;;N;;;;;
+2B05;LEFTWARDS BLACK ARROW;So;0;ON;;;;;N;;;;;
+2B06;UPWARDS BLACK ARROW;So;0;ON;;;;;N;;;;;
+2B07;DOWNWARDS BLACK ARROW;So;0;ON;;;;;N;;;;;
+2B08;NORTH EAST BLACK ARROW;So;0;ON;;;;;N;;;;;
+2B09;NORTH WEST BLACK ARROW;So;0;ON;;;;;N;;;;;
+2B0A;SOUTH EAST BLACK ARROW;So;0;ON;;;;;N;;;;;
+2B0B;SOUTH WEST BLACK ARROW;So;0;ON;;;;;N;;;;;
+2B0C;LEFT RIGHT BLACK ARROW;So;0;ON;;;;;N;;;;;
+2B0D;UP DOWN BLACK ARROW;So;0;ON;;;;;N;;;;;
+2B0E;RIGHTWARDS ARROW WITH TIP DOWNWARDS;So;0;ON;;;;;N;;;;;
+2B0F;RIGHTWARDS ARROW WITH TIP UPWARDS;So;0;ON;;;;;N;;;;;
+2B10;LEFTWARDS ARROW WITH TIP DOWNWARDS;So;0;ON;;;;;N;;;;;
+2B11;LEFTWARDS ARROW WITH TIP UPWARDS;So;0;ON;;;;;N;;;;;
+2B12;SQUARE WITH TOP HALF BLACK;So;0;ON;;;;;N;;;;;
+2B13;SQUARE WITH BOTTOM HALF BLACK;So;0;ON;;;;;N;;;;;
+2B14;SQUARE WITH UPPER RIGHT DIAGONAL HALF BLACK;So;0;ON;;;;;N;;;;;
+2B15;SQUARE WITH LOWER LEFT DIAGONAL HALF BLACK;So;0;ON;;;;;N;;;;;
+2B16;DIAMOND WITH LEFT HALF BLACK;So;0;ON;;;;;N;;;;;
+2B17;DIAMOND WITH RIGHT HALF BLACK;So;0;ON;;;;;N;;;;;
+2B18;DIAMOND WITH TOP HALF BLACK;So;0;ON;;;;;N;;;;;
+2B19;DIAMOND WITH BOTTOM HALF BLACK;So;0;ON;;;;;N;;;;;
+2B1A;DOTTED SQUARE;So;0;ON;;;;;N;;;;;
+2B20;WHITE PENTAGON;So;0;ON;;;;;N;;;;;
+2B21;WHITE HEXAGON;So;0;ON;;;;;N;;;;;
+2B22;BLACK HEXAGON;So;0;ON;;;;;N;;;;;
+2B23;HORIZONTAL BLACK HEXAGON;So;0;ON;;;;;N;;;;;
+2C00;GLAGOLITIC CAPITAL LETTER AZU;Lu;0;L;;;;;N;;;;2C30;
+2C01;GLAGOLITIC CAPITAL LETTER BUKY;Lu;0;L;;;;;N;;;;2C31;
+2C02;GLAGOLITIC CAPITAL LETTER VEDE;Lu;0;L;;;;;N;;;;2C32;
+2C03;GLAGOLITIC CAPITAL LETTER GLAGOLI;Lu;0;L;;;;;N;;;;2C33;
+2C04;GLAGOLITIC CAPITAL LETTER DOBRO;Lu;0;L;;;;;N;;;;2C34;
+2C05;GLAGOLITIC CAPITAL LETTER YESTU;Lu;0;L;;;;;N;;;;2C35;
+2C06;GLAGOLITIC CAPITAL LETTER ZHIVETE;Lu;0;L;;;;;N;;;;2C36;
+2C07;GLAGOLITIC CAPITAL LETTER DZELO;Lu;0;L;;;;;N;;;;2C37;
+2C08;GLAGOLITIC CAPITAL LETTER ZEMLJA;Lu;0;L;;;;;N;;;;2C38;
+2C09;GLAGOLITIC CAPITAL LETTER IZHE;Lu;0;L;;;;;N;;;;2C39;
+2C0A;GLAGOLITIC CAPITAL LETTER INITIAL IZHE;Lu;0;L;;;;;N;;;;2C3A;
+2C0B;GLAGOLITIC CAPITAL LETTER I;Lu;0;L;;;;;N;;;;2C3B;
+2C0C;GLAGOLITIC CAPITAL LETTER DJERVI;Lu;0;L;;;;;N;;;;2C3C;
+2C0D;GLAGOLITIC CAPITAL LETTER KAKO;Lu;0;L;;;;;N;;;;2C3D;
+2C0E;GLAGOLITIC CAPITAL LETTER LJUDIJE;Lu;0;L;;;;;N;;;;2C3E;
+2C0F;GLAGOLITIC CAPITAL LETTER MYSLITE;Lu;0;L;;;;;N;;;;2C3F;
+2C10;GLAGOLITIC CAPITAL LETTER NASHI;Lu;0;L;;;;;N;;;;2C40;
+2C11;GLAGOLITIC CAPITAL LETTER ONU;Lu;0;L;;;;;N;;;;2C41;
+2C12;GLAGOLITIC CAPITAL LETTER POKOJI;Lu;0;L;;;;;N;;;;2C42;
+2C13;GLAGOLITIC CAPITAL LETTER RITSI;Lu;0;L;;;;;N;;;;2C43;
+2C14;GLAGOLITIC CAPITAL LETTER SLOVO;Lu;0;L;;;;;N;;;;2C44;
+2C15;GLAGOLITIC CAPITAL LETTER TVRIDO;Lu;0;L;;;;;N;;;;2C45;
+2C16;GLAGOLITIC CAPITAL LETTER UKU;Lu;0;L;;;;;N;;;;2C46;
+2C17;GLAGOLITIC CAPITAL LETTER FRITU;Lu;0;L;;;;;N;;;;2C47;
+2C18;GLAGOLITIC CAPITAL LETTER HERU;Lu;0;L;;;;;N;;;;2C48;
+2C19;GLAGOLITIC CAPITAL LETTER OTU;Lu;0;L;;;;;N;;;;2C49;
+2C1A;GLAGOLITIC CAPITAL LETTER PE;Lu;0;L;;;;;N;;;;2C4A;
+2C1B;GLAGOLITIC CAPITAL LETTER SHTA;Lu;0;L;;;;;N;;;;2C4B;
+2C1C;GLAGOLITIC CAPITAL LETTER TSI;Lu;0;L;;;;;N;;;;2C4C;
+2C1D;GLAGOLITIC CAPITAL LETTER CHRIVI;Lu;0;L;;;;;N;;;;2C4D;
+2C1E;GLAGOLITIC CAPITAL LETTER SHA;Lu;0;L;;;;;N;;;;2C4E;
+2C1F;GLAGOLITIC CAPITAL LETTER YERU;Lu;0;L;;;;;N;;;;2C4F;
+2C20;GLAGOLITIC CAPITAL LETTER YERI;Lu;0;L;;;;;N;;;;2C50;
+2C21;GLAGOLITIC CAPITAL LETTER YATI;Lu;0;L;;;;;N;;;;2C51;
+2C22;GLAGOLITIC CAPITAL LETTER SPIDERY HA;Lu;0;L;;;;;N;;;;2C52;
+2C23;GLAGOLITIC CAPITAL LETTER YU;Lu;0;L;;;;;N;;;;2C53;
+2C24;GLAGOLITIC CAPITAL LETTER SMALL YUS;Lu;0;L;;;;;N;;;;2C54;
+2C25;GLAGOLITIC CAPITAL LETTER SMALL YUS WITH TAIL;Lu;0;L;;;;;N;;;;2C55;
+2C26;GLAGOLITIC CAPITAL LETTER YO;Lu;0;L;;;;;N;;;;2C56;
+2C27;GLAGOLITIC CAPITAL LETTER IOTATED SMALL YUS;Lu;0;L;;;;;N;;;;2C57;
+2C28;GLAGOLITIC CAPITAL LETTER BIG YUS;Lu;0;L;;;;;N;;;;2C58;
+2C29;GLAGOLITIC CAPITAL LETTER IOTATED BIG YUS;Lu;0;L;;;;;N;;;;2C59;
+2C2A;GLAGOLITIC CAPITAL LETTER FITA;Lu;0;L;;;;;N;;;;2C5A;
+2C2B;GLAGOLITIC CAPITAL LETTER IZHITSA;Lu;0;L;;;;;N;;;;2C5B;
+2C2C;GLAGOLITIC CAPITAL LETTER SHTAPIC;Lu;0;L;;;;;N;;;;2C5C;
+2C2D;GLAGOLITIC CAPITAL LETTER TROKUTASTI A;Lu;0;L;;;;;N;;;;2C5D;
+2C2E;GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE;Lu;0;L;;;;;N;;;;2C5E;
+2C30;GLAGOLITIC SMALL LETTER AZU;Ll;0;L;;;;;N;;;2C00;;2C00
+2C31;GLAGOLITIC SMALL LETTER BUKY;Ll;0;L;;;;;N;;;2C01;;2C01
+2C32;GLAGOLITIC SMALL LETTER VEDE;Ll;0;L;;;;;N;;;2C02;;2C02
+2C33;GLAGOLITIC SMALL LETTER GLAGOLI;Ll;0;L;;;;;N;;;2C03;;2C03
+2C34;GLAGOLITIC SMALL LETTER DOBRO;Ll;0;L;;;;;N;;;2C04;;2C04
+2C35;GLAGOLITIC SMALL LETTER YESTU;Ll;0;L;;;;;N;;;2C05;;2C05
+2C36;GLAGOLITIC SMALL LETTER ZHIVETE;Ll;0;L;;;;;N;;;2C06;;2C06
+2C37;GLAGOLITIC SMALL LETTER DZELO;Ll;0;L;;;;;N;;;2C07;;2C07
+2C38;GLAGOLITIC SMALL LETTER ZEMLJA;Ll;0;L;;;;;N;;;2C08;;2C08
+2C39;GLAGOLITIC SMALL LETTER IZHE;Ll;0;L;;;;;N;;;2C09;;2C09
+2C3A;GLAGOLITIC SMALL LETTER INITIAL IZHE;Ll;0;L;;;;;N;;;2C0A;;2C0A
+2C3B;GLAGOLITIC SMALL LETTER I;Ll;0;L;;;;;N;;;2C0B;;2C0B
+2C3C;GLAGOLITIC SMALL LETTER DJERVI;Ll;0;L;;;;;N;;;2C0C;;2C0C
+2C3D;GLAGOLITIC SMALL LETTER KAKO;Ll;0;L;;;;;N;;;2C0D;;2C0D
+2C3E;GLAGOLITIC SMALL LETTER LJUDIJE;Ll;0;L;;;;;N;;;2C0E;;2C0E
+2C3F;GLAGOLITIC SMALL LETTER MYSLITE;Ll;0;L;;;;;N;;;2C0F;;2C0F
+2C40;GLAGOLITIC SMALL LETTER NASHI;Ll;0;L;;;;;N;;;2C10;;2C10
+2C41;GLAGOLITIC SMALL LETTER ONU;Ll;0;L;;;;;N;;;2C11;;2C11
+2C42;GLAGOLITIC SMALL LETTER POKOJI;Ll;0;L;;;;;N;;;2C12;;2C12
+2C43;GLAGOLITIC SMALL LETTER RITSI;Ll;0;L;;;;;N;;;2C13;;2C13
+2C44;GLAGOLITIC SMALL LETTER SLOVO;Ll;0;L;;;;;N;;;2C14;;2C14
+2C45;GLAGOLITIC SMALL LETTER TVRIDO;Ll;0;L;;;;;N;;;2C15;;2C15
+2C46;GLAGOLITIC SMALL LETTER UKU;Ll;0;L;;;;;N;;;2C16;;2C16
+2C47;GLAGOLITIC SMALL LETTER FRITU;Ll;0;L;;;;;N;;;2C17;;2C17
+2C48;GLAGOLITIC SMALL LETTER HERU;Ll;0;L;;;;;N;;;2C18;;2C18
+2C49;GLAGOLITIC SMALL LETTER OTU;Ll;0;L;;;;;N;;;2C19;;2C19
+2C4A;GLAGOLITIC SMALL LETTER PE;Ll;0;L;;;;;N;;;2C1A;;2C1A
+2C4B;GLAGOLITIC SMALL LETTER SHTA;Ll;0;L;;;;;N;;;2C1B;;2C1B
+2C4C;GLAGOLITIC SMALL LETTER TSI;Ll;0;L;;;;;N;;;2C1C;;2C1C
+2C4D;GLAGOLITIC SMALL LETTER CHRIVI;Ll;0;L;;;;;N;;;2C1D;;2C1D
+2C4E;GLAGOLITIC SMALL LETTER SHA;Ll;0;L;;;;;N;;;2C1E;;2C1E
+2C4F;GLAGOLITIC SMALL LETTER YERU;Ll;0;L;;;;;N;;;2C1F;;2C1F
+2C50;GLAGOLITIC SMALL LETTER YERI;Ll;0;L;;;;;N;;;2C20;;2C20
+2C51;GLAGOLITIC SMALL LETTER YATI;Ll;0;L;;;;;N;;;2C21;;2C21
+2C52;GLAGOLITIC SMALL LETTER SPIDERY HA;Ll;0;L;;;;;N;;;2C22;;2C22
+2C53;GLAGOLITIC SMALL LETTER YU;Ll;0;L;;;;;N;;;2C23;;2C23
+2C54;GLAGOLITIC SMALL LETTER SMALL YUS;Ll;0;L;;;;;N;;;2C24;;2C24
+2C55;GLAGOLITIC SMALL LETTER SMALL YUS WITH TAIL;Ll;0;L;;;;;N;;;2C25;;2C25
+2C56;GLAGOLITIC SMALL LETTER YO;Ll;0;L;;;;;N;;;2C26;;2C26
+2C57;GLAGOLITIC SMALL LETTER IOTATED SMALL YUS;Ll;0;L;;;;;N;;;2C27;;2C27
+2C58;GLAGOLITIC SMALL LETTER BIG YUS;Ll;0;L;;;;;N;;;2C28;;2C28
+2C59;GLAGOLITIC SMALL LETTER IOTATED BIG YUS;Ll;0;L;;;;;N;;;2C29;;2C29
+2C5A;GLAGOLITIC SMALL LETTER FITA;Ll;0;L;;;;;N;;;2C2A;;2C2A
+2C5B;GLAGOLITIC SMALL LETTER IZHITSA;Ll;0;L;;;;;N;;;2C2B;;2C2B
+2C5C;GLAGOLITIC SMALL LETTER SHTAPIC;Ll;0;L;;;;;N;;;2C2C;;2C2C
+2C5D;GLAGOLITIC SMALL LETTER TROKUTASTI A;Ll;0;L;;;;;N;;;2C2D;;2C2D
+2C5E;GLAGOLITIC SMALL LETTER LATINATE MYSLITE;Ll;0;L;;;;;N;;;2C2E;;2C2E
+2C60;LATIN CAPITAL LETTER L WITH DOUBLE BAR;Lu;0;L;;;;;N;;;;2C61;
+2C61;LATIN SMALL LETTER L WITH DOUBLE BAR;Ll;0;L;;;;;N;;;2C60;;2C60
+2C62;LATIN CAPITAL LETTER L WITH MIDDLE TILDE;Lu;0;L;;;;;N;;;;026B;
+2C63;LATIN CAPITAL LETTER P WITH STROKE;Lu;0;L;;;;;N;;;;1D7D;
+2C64;LATIN CAPITAL LETTER R WITH TAIL;Lu;0;L;;;;;N;;;;027D;
+2C65;LATIN SMALL LETTER A WITH STROKE;Ll;0;L;;;;;N;;;023A;;023A
+2C66;LATIN SMALL LETTER T WITH DIAGONAL STROKE;Ll;0;L;;;;;N;;;023E;;023E
+2C67;LATIN CAPITAL LETTER H WITH DESCENDER;Lu;0;L;;;;;N;;;;2C68;
+2C68;LATIN SMALL LETTER H WITH DESCENDER;Ll;0;L;;;;;N;;;2C67;;2C67
+2C69;LATIN CAPITAL LETTER K WITH DESCENDER;Lu;0;L;;;;;N;;;;2C6A;
+2C6A;LATIN SMALL LETTER K WITH DESCENDER;Ll;0;L;;;;;N;;;2C69;;2C69
+2C6B;LATIN CAPITAL LETTER Z WITH DESCENDER;Lu;0;L;;;;;N;;;;2C6C;
+2C6C;LATIN SMALL LETTER Z WITH DESCENDER;Ll;0;L;;;;;N;;;2C6B;;2C6B
+2C74;LATIN SMALL LETTER V WITH CURL;Ll;0;L;;;;;N;;;;;
+2C75;LATIN CAPITAL LETTER HALF H;Lu;0;L;;;;;N;;;;2C76;
+2C76;LATIN SMALL LETTER HALF H;Ll;0;L;;;;;N;;;2C75;;2C75
+2C77;LATIN SMALL LETTER TAILLESS PHI;Ll;0;L;;;;;N;;;;;
+2C80;COPTIC CAPITAL LETTER ALFA;Lu;0;L;;;;;N;;;;2C81;
+2C81;COPTIC SMALL LETTER ALFA;Ll;0;L;;;;;N;;;2C80;;2C80
+2C82;COPTIC CAPITAL LETTER VIDA;Lu;0;L;;;;;N;;;;2C83;
+2C83;COPTIC SMALL LETTER VIDA;Ll;0;L;;;;;N;;;2C82;;2C82
+2C84;COPTIC CAPITAL LETTER GAMMA;Lu;0;L;;;;;N;;;;2C85;
+2C85;COPTIC SMALL LETTER GAMMA;Ll;0;L;;;;;N;;;2C84;;2C84
+2C86;COPTIC CAPITAL LETTER DALDA;Lu;0;L;;;;;N;;;;2C87;
+2C87;COPTIC SMALL LETTER DALDA;Ll;0;L;;;;;N;;;2C86;;2C86
+2C88;COPTIC CAPITAL LETTER EIE;Lu;0;L;;;;;N;;;;2C89;
+2C89;COPTIC SMALL LETTER EIE;Ll;0;L;;;;;N;;;2C88;;2C88
+2C8A;COPTIC CAPITAL LETTER SOU;Lu;0;L;;;;;N;;;;2C8B;
+2C8B;COPTIC SMALL LETTER SOU;Ll;0;L;;;;;N;;;2C8A;;2C8A
+2C8C;COPTIC CAPITAL LETTER ZATA;Lu;0;L;;;;;N;;;;2C8D;
+2C8D;COPTIC SMALL LETTER ZATA;Ll;0;L;;;;;N;;;2C8C;;2C8C
+2C8E;COPTIC CAPITAL LETTER HATE;Lu;0;L;;;;;N;;;;2C8F;
+2C8F;COPTIC SMALL LETTER HATE;Ll;0;L;;;;;N;;;2C8E;;2C8E
+2C90;COPTIC CAPITAL LETTER THETHE;Lu;0;L;;;;;N;;;;2C91;
+2C91;COPTIC SMALL LETTER THETHE;Ll;0;L;;;;;N;;;2C90;;2C90
+2C92;COPTIC CAPITAL LETTER IAUDA;Lu;0;L;;;;;N;;;;2C93;
+2C93;COPTIC SMALL LETTER IAUDA;Ll;0;L;;;;;N;;;2C92;;2C92
+2C94;COPTIC CAPITAL LETTER KAPA;Lu;0;L;;;;;N;;;;2C95;
+2C95;COPTIC SMALL LETTER KAPA;Ll;0;L;;;;;N;;;2C94;;2C94
+2C96;COPTIC CAPITAL LETTER LAULA;Lu;0;L;;;;;N;;;;2C97;
+2C97;COPTIC SMALL LETTER LAULA;Ll;0;L;;;;;N;;;2C96;;2C96
+2C98;COPTIC CAPITAL LETTER MI;Lu;0;L;;;;;N;;;;2C99;
+2C99;COPTIC SMALL LETTER MI;Ll;0;L;;;;;N;;;2C98;;2C98
+2C9A;COPTIC CAPITAL LETTER NI;Lu;0;L;;;;;N;;;;2C9B;
+2C9B;COPTIC SMALL LETTER NI;Ll;0;L;;;;;N;;;2C9A;;2C9A
+2C9C;COPTIC CAPITAL LETTER KSI;Lu;0;L;;;;;N;;;;2C9D;
+2C9D;COPTIC SMALL LETTER KSI;Ll;0;L;;;;;N;;;2C9C;;2C9C
+2C9E;COPTIC CAPITAL LETTER O;Lu;0;L;;;;;N;;;;2C9F;
+2C9F;COPTIC SMALL LETTER O;Ll;0;L;;;;;N;;;2C9E;;2C9E
+2CA0;COPTIC CAPITAL LETTER PI;Lu;0;L;;;;;N;;;;2CA1;
+2CA1;COPTIC SMALL LETTER PI;Ll;0;L;;;;;N;;;2CA0;;2CA0
+2CA2;COPTIC CAPITAL LETTER RO;Lu;0;L;;;;;N;;;;2CA3;
+2CA3;COPTIC SMALL LETTER RO;Ll;0;L;;;;;N;;;2CA2;;2CA2
+2CA4;COPTIC CAPITAL LETTER SIMA;Lu;0;L;;;;;N;;;;2CA5;
+2CA5;COPTIC SMALL LETTER SIMA;Ll;0;L;;;;;N;;;2CA4;;2CA4
+2CA6;COPTIC CAPITAL LETTER TAU;Lu;0;L;;;;;N;;;;2CA7;
+2CA7;COPTIC SMALL LETTER TAU;Ll;0;L;;;;;N;;;2CA6;;2CA6
+2CA8;COPTIC CAPITAL LETTER UA;Lu;0;L;;;;;N;;;;2CA9;
+2CA9;COPTIC SMALL LETTER UA;Ll;0;L;;;;;N;;;2CA8;;2CA8
+2CAA;COPTIC CAPITAL LETTER FI;Lu;0;L;;;;;N;;;;2CAB;
+2CAB;COPTIC SMALL LETTER FI;Ll;0;L;;;;;N;;;2CAA;;2CAA
+2CAC;COPTIC CAPITAL LETTER KHI;Lu;0;L;;;;;N;;;;2CAD;
+2CAD;COPTIC SMALL LETTER KHI;Ll;0;L;;;;;N;;;2CAC;;2CAC
+2CAE;COPTIC CAPITAL LETTER PSI;Lu;0;L;;;;;N;;;;2CAF;
+2CAF;COPTIC SMALL LETTER PSI;Ll;0;L;;;;;N;;;2CAE;;2CAE
+2CB0;COPTIC CAPITAL LETTER OOU;Lu;0;L;;;;;N;;;;2CB1;
+2CB1;COPTIC SMALL LETTER OOU;Ll;0;L;;;;;N;;;2CB0;;2CB0
+2CB2;COPTIC CAPITAL LETTER DIALECT-P ALEF;Lu;0;L;;;;;N;;;;2CB3;
+2CB3;COPTIC SMALL LETTER DIALECT-P ALEF;Ll;0;L;;;;;N;;;2CB2;;2CB2
+2CB4;COPTIC CAPITAL LETTER OLD COPTIC AIN;Lu;0;L;;;;;N;;;;2CB5;
+2CB5;COPTIC SMALL LETTER OLD COPTIC AIN;Ll;0;L;;;;;N;;;2CB4;;2CB4
+2CB6;COPTIC CAPITAL LETTER CRYPTOGRAMMIC EIE;Lu;0;L;;;;;N;;;;2CB7;
+2CB7;COPTIC SMALL LETTER CRYPTOGRAMMIC EIE;Ll;0;L;;;;;N;;;2CB6;;2CB6
+2CB8;COPTIC CAPITAL LETTER DIALECT-P KAPA;Lu;0;L;;;;;N;;;;2CB9;
+2CB9;COPTIC SMALL LETTER DIALECT-P KAPA;Ll;0;L;;;;;N;;;2CB8;;2CB8
+2CBA;COPTIC CAPITAL LETTER DIALECT-P NI;Lu;0;L;;;;;N;;;;2CBB;
+2CBB;COPTIC SMALL LETTER DIALECT-P NI;Ll;0;L;;;;;N;;;2CBA;;2CBA
+2CBC;COPTIC CAPITAL LETTER CRYPTOGRAMMIC NI;Lu;0;L;;;;;N;;;;2CBD;
+2CBD;COPTIC SMALL LETTER CRYPTOGRAMMIC NI;Ll;0;L;;;;;N;;;2CBC;;2CBC
+2CBE;COPTIC CAPITAL LETTER OLD COPTIC OOU;Lu;0;L;;;;;N;;;;2CBF;
+2CBF;COPTIC SMALL LETTER OLD COPTIC OOU;Ll;0;L;;;;;N;;;2CBE;;2CBE
+2CC0;COPTIC CAPITAL LETTER SAMPI;Lu;0;L;;;;;N;;;;2CC1;
+2CC1;COPTIC SMALL LETTER SAMPI;Ll;0;L;;;;;N;;;2CC0;;2CC0
+2CC2;COPTIC CAPITAL LETTER CROSSED SHEI;Lu;0;L;;;;;N;;;;2CC3;
+2CC3;COPTIC SMALL LETTER CROSSED SHEI;Ll;0;L;;;;;N;;;2CC2;;2CC2
+2CC4;COPTIC CAPITAL LETTER OLD COPTIC SHEI;Lu;0;L;;;;;N;;;;2CC5;
+2CC5;COPTIC SMALL LETTER OLD COPTIC SHEI;Ll;0;L;;;;;N;;;2CC4;;2CC4
+2CC6;COPTIC CAPITAL LETTER OLD COPTIC ESH;Lu;0;L;;;;;N;;;;2CC7;
+2CC7;COPTIC SMALL LETTER OLD COPTIC ESH;Ll;0;L;;;;;N;;;2CC6;;2CC6
+2CC8;COPTIC CAPITAL LETTER AKHMIMIC KHEI;Lu;0;L;;;;;N;;;;2CC9;
+2CC9;COPTIC SMALL LETTER AKHMIMIC KHEI;Ll;0;L;;;;;N;;;2CC8;;2CC8
+2CCA;COPTIC CAPITAL LETTER DIALECT-P HORI;Lu;0;L;;;;;N;;;;2CCB;
+2CCB;COPTIC SMALL LETTER DIALECT-P HORI;Ll;0;L;;;;;N;;;2CCA;;2CCA
+2CCC;COPTIC CAPITAL LETTER OLD COPTIC HORI;Lu;0;L;;;;;N;;;;2CCD;
+2CCD;COPTIC SMALL LETTER OLD COPTIC HORI;Ll;0;L;;;;;N;;;2CCC;;2CCC
+2CCE;COPTIC CAPITAL LETTER OLD COPTIC HA;Lu;0;L;;;;;N;;;;2CCF;
+2CCF;COPTIC SMALL LETTER OLD COPTIC HA;Ll;0;L;;;;;N;;;2CCE;;2CCE
+2CD0;COPTIC CAPITAL LETTER L-SHAPED HA;Lu;0;L;;;;;N;;;;2CD1;
+2CD1;COPTIC SMALL LETTER L-SHAPED HA;Ll;0;L;;;;;N;;;2CD0;;2CD0
+2CD2;COPTIC CAPITAL LETTER OLD COPTIC HEI;Lu;0;L;;;;;N;;;;2CD3;
+2CD3;COPTIC SMALL LETTER OLD COPTIC HEI;Ll;0;L;;;;;N;;;2CD2;;2CD2
+2CD4;COPTIC CAPITAL LETTER OLD COPTIC HAT;Lu;0;L;;;;;N;;;;2CD5;
+2CD5;COPTIC SMALL LETTER OLD COPTIC HAT;Ll;0;L;;;;;N;;;2CD4;;2CD4
+2CD6;COPTIC CAPITAL LETTER OLD COPTIC GANGIA;Lu;0;L;;;;;N;;;;2CD7;
+2CD7;COPTIC SMALL LETTER OLD COPTIC GANGIA;Ll;0;L;;;;;N;;;2CD6;;2CD6
+2CD8;COPTIC CAPITAL LETTER OLD COPTIC DJA;Lu;0;L;;;;;N;;;;2CD9;
+2CD9;COPTIC SMALL LETTER OLD COPTIC DJA;Ll;0;L;;;;;N;;;2CD8;;2CD8
+2CDA;COPTIC CAPITAL LETTER OLD COPTIC SHIMA;Lu;0;L;;;;;N;;;;2CDB;
+2CDB;COPTIC SMALL LETTER OLD COPTIC SHIMA;Ll;0;L;;;;;N;;;2CDA;;2CDA
+2CDC;COPTIC CAPITAL LETTER OLD NUBIAN SHIMA;Lu;0;L;;;;;N;;;;2CDD;
+2CDD;COPTIC SMALL LETTER OLD NUBIAN SHIMA;Ll;0;L;;;;;N;;;2CDC;;2CDC
+2CDE;COPTIC CAPITAL LETTER OLD NUBIAN NGI;Lu;0;L;;;;;N;;;;2CDF;
+2CDF;COPTIC SMALL LETTER OLD NUBIAN NGI;Ll;0;L;;;;;N;;;2CDE;;2CDE
+2CE0;COPTIC CAPITAL LETTER OLD NUBIAN NYI;Lu;0;L;;;;;N;;;;2CE1;
+2CE1;COPTIC SMALL LETTER OLD NUBIAN NYI;Ll;0;L;;;;;N;;;2CE0;;2CE0
+2CE2;COPTIC CAPITAL LETTER OLD NUBIAN WAU;Lu;0;L;;;;;N;;;;2CE3;
+2CE3;COPTIC SMALL LETTER OLD NUBIAN WAU;Ll;0;L;;;;;N;;;2CE2;;2CE2
+2CE4;COPTIC SYMBOL KAI;Ll;0;L;;;;;N;;;;;
+2CE5;COPTIC SYMBOL MI RO;So;0;ON;;;;;N;;;;;
+2CE6;COPTIC SYMBOL PI RO;So;0;ON;;;;;N;;;;;
+2CE7;COPTIC SYMBOL STAUROS;So;0;ON;;;;;N;;;;;
+2CE8;COPTIC SYMBOL TAU RO;So;0;ON;;;;;N;;;;;
+2CE9;COPTIC SYMBOL KHI RO;So;0;ON;;;;;N;;;;;
+2CEA;COPTIC SYMBOL SHIMA SIMA;So;0;ON;;;;;N;;;;;
+2CF9;COPTIC OLD NUBIAN FULL STOP;Po;0;ON;;;;;N;;;;;
+2CFA;COPTIC OLD NUBIAN DIRECT QUESTION MARK;Po;0;ON;;;;;N;;;;;
+2CFB;COPTIC OLD NUBIAN INDIRECT QUESTION MARK;Po;0;ON;;;;;N;;;;;
+2CFC;COPTIC OLD NUBIAN VERSE DIVIDER;Po;0;ON;;;;;N;;;;;
+2CFD;COPTIC FRACTION ONE HALF;No;0;ON;;;;1/2;N;;;;;
+2CFE;COPTIC FULL STOP;Po;0;ON;;;;;N;;;;;
+2CFF;COPTIC MORPHOLOGICAL DIVIDER;Po;0;ON;;;;;N;;;;;
+2D00;GEORGIAN SMALL LETTER AN;Ll;0;L;;;;;N;;Khutsuri;10A0;;10A0
+2D01;GEORGIAN SMALL LETTER BAN;Ll;0;L;;;;;N;;Khutsuri;10A1;;10A1
+2D02;GEORGIAN SMALL LETTER GAN;Ll;0;L;;;;;N;;Khutsuri;10A2;;10A2
+2D03;GEORGIAN SMALL LETTER DON;Ll;0;L;;;;;N;;Khutsuri;10A3;;10A3
+2D04;GEORGIAN SMALL LETTER EN;Ll;0;L;;;;;N;;Khutsuri;10A4;;10A4
+2D05;GEORGIAN SMALL LETTER VIN;Ll;0;L;;;;;N;;Khutsuri;10A5;;10A5
+2D06;GEORGIAN SMALL LETTER ZEN;Ll;0;L;;;;;N;;Khutsuri;10A6;;10A6
+2D07;GEORGIAN SMALL LETTER TAN;Ll;0;L;;;;;N;;Khutsuri;10A7;;10A7
+2D08;GEORGIAN SMALL LETTER IN;Ll;0;L;;;;;N;;Khutsuri;10A8;;10A8
+2D09;GEORGIAN SMALL LETTER KAN;Ll;0;L;;;;;N;;Khutsuri;10A9;;10A9
+2D0A;GEORGIAN SMALL LETTER LAS;Ll;0;L;;;;;N;;Khutsuri;10AA;;10AA
+2D0B;GEORGIAN SMALL LETTER MAN;Ll;0;L;;;;;N;;Khutsuri;10AB;;10AB
+2D0C;GEORGIAN SMALL LETTER NAR;Ll;0;L;;;;;N;;Khutsuri;10AC;;10AC
+2D0D;GEORGIAN SMALL LETTER ON;Ll;0;L;;;;;N;;Khutsuri;10AD;;10AD
+2D0E;GEORGIAN SMALL LETTER PAR;Ll;0;L;;;;;N;;Khutsuri;10AE;;10AE
+2D0F;GEORGIAN SMALL LETTER ZHAR;Ll;0;L;;;;;N;;Khutsuri;10AF;;10AF
+2D10;GEORGIAN SMALL LETTER RAE;Ll;0;L;;;;;N;;Khutsuri;10B0;;10B0
+2D11;GEORGIAN SMALL LETTER SAN;Ll;0;L;;;;;N;;Khutsuri;10B1;;10B1
+2D12;GEORGIAN SMALL LETTER TAR;Ll;0;L;;;;;N;;Khutsuri;10B2;;10B2
+2D13;GEORGIAN SMALL LETTER UN;Ll;0;L;;;;;N;;Khutsuri;10B3;;10B3
+2D14;GEORGIAN SMALL LETTER PHAR;Ll;0;L;;;;;N;;Khutsuri;10B4;;10B4
+2D15;GEORGIAN SMALL LETTER KHAR;Ll;0;L;;;;;N;;Khutsuri;10B5;;10B5
+2D16;GEORGIAN SMALL LETTER GHAN;Ll;0;L;;;;;N;;Khutsuri;10B6;;10B6
+2D17;GEORGIAN SMALL LETTER QAR;Ll;0;L;;;;;N;;Khutsuri;10B7;;10B7
+2D18;GEORGIAN SMALL LETTER SHIN;Ll;0;L;;;;;N;;Khutsuri;10B8;;10B8
+2D19;GEORGIAN SMALL LETTER CHIN;Ll;0;L;;;;;N;;Khutsuri;10B9;;10B9
+2D1A;GEORGIAN SMALL LETTER CAN;Ll;0;L;;;;;N;;Khutsuri;10BA;;10BA
+2D1B;GEORGIAN SMALL LETTER JIL;Ll;0;L;;;;;N;;Khutsuri;10BB;;10BB
+2D1C;GEORGIAN SMALL LETTER CIL;Ll;0;L;;;;;N;;Khutsuri;10BC;;10BC
+2D1D;GEORGIAN SMALL LETTER CHAR;Ll;0;L;;;;;N;;Khutsuri;10BD;;10BD
+2D1E;GEORGIAN SMALL LETTER XAN;Ll;0;L;;;;;N;;Khutsuri;10BE;;10BE
+2D1F;GEORGIAN SMALL LETTER JHAN;Ll;0;L;;;;;N;;Khutsuri;10BF;;10BF
+2D20;GEORGIAN SMALL LETTER HAE;Ll;0;L;;;;;N;;Khutsuri;10C0;;10C0
+2D21;GEORGIAN SMALL LETTER HE;Ll;0;L;;;;;N;;Khutsuri;10C1;;10C1
+2D22;GEORGIAN SMALL LETTER HIE;Ll;0;L;;;;;N;;Khutsuri;10C2;;10C2
+2D23;GEORGIAN SMALL LETTER WE;Ll;0;L;;;;;N;;Khutsuri;10C3;;10C3
+2D24;GEORGIAN SMALL LETTER HAR;Ll;0;L;;;;;N;;Khutsuri;10C4;;10C4
+2D25;GEORGIAN SMALL LETTER HOE;Ll;0;L;;;;;N;;Khutsuri;10C5;;10C5
+2D30;TIFINAGH LETTER YA;Lo;0;L;;;;;N;;;;;
+2D31;TIFINAGH LETTER YAB;Lo;0;L;;;;;N;;;;;
+2D32;TIFINAGH LETTER YABH;Lo;0;L;;;;;N;;;;;
+2D33;TIFINAGH LETTER YAG;Lo;0;L;;;;;N;;;;;
+2D34;TIFINAGH LETTER YAGHH;Lo;0;L;;;;;N;;;;;
+2D35;TIFINAGH LETTER BERBER ACADEMY YAJ;Lo;0;L;;;;;N;;;;;
+2D36;TIFINAGH LETTER YAJ;Lo;0;L;;;;;N;;;;;
+2D37;TIFINAGH LETTER YAD;Lo;0;L;;;;;N;;;;;
+2D38;TIFINAGH LETTER YADH;Lo;0;L;;;;;N;;;;;
+2D39;TIFINAGH LETTER YADD;Lo;0;L;;;;;N;;;;;
+2D3A;TIFINAGH LETTER YADDH;Lo;0;L;;;;;N;;;;;
+2D3B;TIFINAGH LETTER YEY;Lo;0;L;;;;;N;;;;;
+2D3C;TIFINAGH LETTER YAF;Lo;0;L;;;;;N;;;;;
+2D3D;TIFINAGH LETTER YAK;Lo;0;L;;;;;N;;;;;
+2D3E;TIFINAGH LETTER TUAREG YAK;Lo;0;L;;;;;N;;;;;
+2D3F;TIFINAGH LETTER YAKHH;Lo;0;L;;;;;N;;;;;
+2D40;TIFINAGH LETTER YAH;Lo;0;L;;;;;N;;Tuareg yab;;;
+2D41;TIFINAGH LETTER BERBER ACADEMY YAH;Lo;0;L;;;;;N;;;;;
+2D42;TIFINAGH LETTER TUAREG YAH;Lo;0;L;;;;;N;;;;;
+2D43;TIFINAGH LETTER YAHH;Lo;0;L;;;;;N;;;;;
+2D44;TIFINAGH LETTER YAA;Lo;0;L;;;;;N;;;;;
+2D45;TIFINAGH LETTER YAKH;Lo;0;L;;;;;N;;;;;
+2D46;TIFINAGH LETTER TUAREG YAKH;Lo;0;L;;;;;N;;;;;
+2D47;TIFINAGH LETTER YAQ;Lo;0;L;;;;;N;;;;;
+2D48;TIFINAGH LETTER TUAREG YAQ;Lo;0;L;;;;;N;;;;;
+2D49;TIFINAGH LETTER YI;Lo;0;L;;;;;N;;;;;
+2D4A;TIFINAGH LETTER YAZH;Lo;0;L;;;;;N;;;;;
+2D4B;TIFINAGH LETTER AHAGGAR YAZH;Lo;0;L;;;;;N;;;;;
+2D4C;TIFINAGH LETTER TUAREG YAZH;Lo;0;L;;;;;N;;;;;
+2D4D;TIFINAGH LETTER YAL;Lo;0;L;;;;;N;;;;;
+2D4E;TIFINAGH LETTER YAM;Lo;0;L;;;;;N;;;;;
+2D4F;TIFINAGH LETTER YAN;Lo;0;L;;;;;N;;;;;
+2D50;TIFINAGH LETTER TUAREG YAGN;Lo;0;L;;;;;N;;;;;
+2D51;TIFINAGH LETTER TUAREG YANG;Lo;0;L;;;;;N;;;;;
+2D52;TIFINAGH LETTER YAP;Lo;0;L;;;;;N;;;;;
+2D53;TIFINAGH LETTER YU;Lo;0;L;;;;;N;;Tuareg yaw;;;
+2D54;TIFINAGH LETTER YAR;Lo;0;L;;;;;N;;;;;
+2D55;TIFINAGH LETTER YARR;Lo;0;L;;;;;N;;;;;
+2D56;TIFINAGH LETTER YAGH;Lo;0;L;;;;;N;;;;;
+2D57;TIFINAGH LETTER TUAREG YAGH;Lo;0;L;;;;;N;;;;;
+2D58;TIFINAGH LETTER AYER YAGH;Lo;0;L;;;;;N;;Adrar yaj;;;
+2D59;TIFINAGH LETTER YAS;Lo;0;L;;;;;N;;;;;
+2D5A;TIFINAGH LETTER YASS;Lo;0;L;;;;;N;;;;;
+2D5B;TIFINAGH LETTER YASH;Lo;0;L;;;;;N;;;;;
+2D5C;TIFINAGH LETTER YAT;Lo;0;L;;;;;N;;;;;
+2D5D;TIFINAGH LETTER YATH;Lo;0;L;;;;;N;;;;;
+2D5E;TIFINAGH LETTER YACH;Lo;0;L;;;;;N;;;;;
+2D5F;TIFINAGH LETTER YATT;Lo;0;L;;;;;N;;;;;
+2D60;TIFINAGH LETTER YAV;Lo;0;L;;;;;N;;;;;
+2D61;TIFINAGH LETTER YAW;Lo;0;L;;;;;N;;;;;
+2D62;TIFINAGH LETTER YAY;Lo;0;L;;;;;N;;;;;
+2D63;TIFINAGH LETTER YAZ;Lo;0;L;;;;;N;;;;;
+2D64;TIFINAGH LETTER TAWELLEMET YAZ;Lo;0;L;;;;;N;;harpoon yaz;;;
+2D65;TIFINAGH LETTER YAZZ;Lo;0;L;;;;;N;;;;;
+2D6F;TIFINAGH MODIFIER LETTER LABIALIZATION MARK;Lm;0;L;<super> 2D61;;;;N;;tamatart;;;
+2D80;ETHIOPIC SYLLABLE LOA;Lo;0;L;;;;;N;;;;;
+2D81;ETHIOPIC SYLLABLE MOA;Lo;0;L;;;;;N;;;;;
+2D82;ETHIOPIC SYLLABLE ROA;Lo;0;L;;;;;N;;;;;
+2D83;ETHIOPIC SYLLABLE SOA;Lo;0;L;;;;;N;;;;;
+2D84;ETHIOPIC SYLLABLE SHOA;Lo;0;L;;;;;N;;;;;
+2D85;ETHIOPIC SYLLABLE BOA;Lo;0;L;;;;;N;;;;;
+2D86;ETHIOPIC SYLLABLE TOA;Lo;0;L;;;;;N;;;;;
+2D87;ETHIOPIC SYLLABLE COA;Lo;0;L;;;;;N;;;;;
+2D88;ETHIOPIC SYLLABLE NOA;Lo;0;L;;;;;N;;;;;
+2D89;ETHIOPIC SYLLABLE NYOA;Lo;0;L;;;;;N;;;;;
+2D8A;ETHIOPIC SYLLABLE GLOTTAL OA;Lo;0;L;;;;;N;;;;;
+2D8B;ETHIOPIC SYLLABLE ZOA;Lo;0;L;;;;;N;;;;;
+2D8C;ETHIOPIC SYLLABLE DOA;Lo;0;L;;;;;N;;;;;
+2D8D;ETHIOPIC SYLLABLE DDOA;Lo;0;L;;;;;N;;;;;
+2D8E;ETHIOPIC SYLLABLE JOA;Lo;0;L;;;;;N;;;;;
+2D8F;ETHIOPIC SYLLABLE THOA;Lo;0;L;;;;;N;;;;;
+2D90;ETHIOPIC SYLLABLE CHOA;Lo;0;L;;;;;N;;;;;
+2D91;ETHIOPIC SYLLABLE PHOA;Lo;0;L;;;;;N;;;;;
+2D92;ETHIOPIC SYLLABLE POA;Lo;0;L;;;;;N;;;;;
+2D93;ETHIOPIC SYLLABLE GGWA;Lo;0;L;;;;;N;;;;;
+2D94;ETHIOPIC SYLLABLE GGWI;Lo;0;L;;;;;N;;;;;
+2D95;ETHIOPIC SYLLABLE GGWEE;Lo;0;L;;;;;N;;;;;
+2D96;ETHIOPIC SYLLABLE GGWE;Lo;0;L;;;;;N;;;;;
+2DA0;ETHIOPIC SYLLABLE SSA;Lo;0;L;;;;;N;;;;;
+2DA1;ETHIOPIC SYLLABLE SSU;Lo;0;L;;;;;N;;;;;
+2DA2;ETHIOPIC SYLLABLE SSI;Lo;0;L;;;;;N;;;;;
+2DA3;ETHIOPIC SYLLABLE SSAA;Lo;0;L;;;;;N;;;;;
+2DA4;ETHIOPIC SYLLABLE SSEE;Lo;0;L;;;;;N;;;;;
+2DA5;ETHIOPIC SYLLABLE SSE;Lo;0;L;;;;;N;;;;;
+2DA6;ETHIOPIC SYLLABLE SSO;Lo;0;L;;;;;N;;;;;
+2DA8;ETHIOPIC SYLLABLE CCA;Lo;0;L;;;;;N;;;;;
+2DA9;ETHIOPIC SYLLABLE CCU;Lo;0;L;;;;;N;;;;;
+2DAA;ETHIOPIC SYLLABLE CCI;Lo;0;L;;;;;N;;;;;
+2DAB;ETHIOPIC SYLLABLE CCAA;Lo;0;L;;;;;N;;;;;
+2DAC;ETHIOPIC SYLLABLE CCEE;Lo;0;L;;;;;N;;;;;
+2DAD;ETHIOPIC SYLLABLE CCE;Lo;0;L;;;;;N;;;;;
+2DAE;ETHIOPIC SYLLABLE CCO;Lo;0;L;;;;;N;;;;;
+2DB0;ETHIOPIC SYLLABLE ZZA;Lo;0;L;;;;;N;;;;;
+2DB1;ETHIOPIC SYLLABLE ZZU;Lo;0;L;;;;;N;;;;;
+2DB2;ETHIOPIC SYLLABLE ZZI;Lo;0;L;;;;;N;;;;;
+2DB3;ETHIOPIC SYLLABLE ZZAA;Lo;0;L;;;;;N;;;;;
+2DB4;ETHIOPIC SYLLABLE ZZEE;Lo;0;L;;;;;N;;;;;
+2DB5;ETHIOPIC SYLLABLE ZZE;Lo;0;L;;;;;N;;;;;
+2DB6;ETHIOPIC SYLLABLE ZZO;Lo;0;L;;;;;N;;;;;
+2DB8;ETHIOPIC SYLLABLE CCHA;Lo;0;L;;;;;N;;;;;
+2DB9;ETHIOPIC SYLLABLE CCHU;Lo;0;L;;;;;N;;;;;
+2DBA;ETHIOPIC SYLLABLE CCHI;Lo;0;L;;;;;N;;;;;
+2DBB;ETHIOPIC SYLLABLE CCHAA;Lo;0;L;;;;;N;;;;;
+2DBC;ETHIOPIC SYLLABLE CCHEE;Lo;0;L;;;;;N;;;;;
+2DBD;ETHIOPIC SYLLABLE CCHE;Lo;0;L;;;;;N;;;;;
+2DBE;ETHIOPIC SYLLABLE CCHO;Lo;0;L;;;;;N;;;;;
+2DC0;ETHIOPIC SYLLABLE QYA;Lo;0;L;;;;;N;;;;;
+2DC1;ETHIOPIC SYLLABLE QYU;Lo;0;L;;;;;N;;;;;
+2DC2;ETHIOPIC SYLLABLE QYI;Lo;0;L;;;;;N;;;;;
+2DC3;ETHIOPIC SYLLABLE QYAA;Lo;0;L;;;;;N;;;;;
+2DC4;ETHIOPIC SYLLABLE QYEE;Lo;0;L;;;;;N;;;;;
+2DC5;ETHIOPIC SYLLABLE QYE;Lo;0;L;;;;;N;;;;;
+2DC6;ETHIOPIC SYLLABLE QYO;Lo;0;L;;;;;N;;;;;
+2DC8;ETHIOPIC SYLLABLE KYA;Lo;0;L;;;;;N;;;;;
+2DC9;ETHIOPIC SYLLABLE KYU;Lo;0;L;;;;;N;;;;;
+2DCA;ETHIOPIC SYLLABLE KYI;Lo;0;L;;;;;N;;;;;
+2DCB;ETHIOPIC SYLLABLE KYAA;Lo;0;L;;;;;N;;;;;
+2DCC;ETHIOPIC SYLLABLE KYEE;Lo;0;L;;;;;N;;;;;
+2DCD;ETHIOPIC SYLLABLE KYE;Lo;0;L;;;;;N;;;;;
+2DCE;ETHIOPIC SYLLABLE KYO;Lo;0;L;;;;;N;;;;;
+2DD0;ETHIOPIC SYLLABLE XYA;Lo;0;L;;;;;N;;;;;
+2DD1;ETHIOPIC SYLLABLE XYU;Lo;0;L;;;;;N;;;;;
+2DD2;ETHIOPIC SYLLABLE XYI;Lo;0;L;;;;;N;;;;;
+2DD3;ETHIOPIC SYLLABLE XYAA;Lo;0;L;;;;;N;;;;;
+2DD4;ETHIOPIC SYLLABLE XYEE;Lo;0;L;;;;;N;;;;;
+2DD5;ETHIOPIC SYLLABLE XYE;Lo;0;L;;;;;N;;;;;
+2DD6;ETHIOPIC SYLLABLE XYO;Lo;0;L;;;;;N;;;;;
+2DD8;ETHIOPIC SYLLABLE GYA;Lo;0;L;;;;;N;;;;;
+2DD9;ETHIOPIC SYLLABLE GYU;Lo;0;L;;;;;N;;;;;
+2DDA;ETHIOPIC SYLLABLE GYI;Lo;0;L;;;;;N;;;;;
+2DDB;ETHIOPIC SYLLABLE GYAA;Lo;0;L;;;;;N;;;;;
+2DDC;ETHIOPIC SYLLABLE GYEE;Lo;0;L;;;;;N;;;;;
+2DDD;ETHIOPIC SYLLABLE GYE;Lo;0;L;;;;;N;;;;;
+2DDE;ETHIOPIC SYLLABLE GYO;Lo;0;L;;;;;N;;;;;
+2E00;RIGHT ANGLE SUBSTITUTION MARKER;Po;0;ON;;;;;N;;;;;
+2E01;RIGHT ANGLE DOTTED SUBSTITUTION MARKER;Po;0;ON;;;;;N;;;;;
+2E02;LEFT SUBSTITUTION BRACKET;Pi;0;ON;;;;;Y;;;;;
+2E03;RIGHT SUBSTITUTION BRACKET;Pf;0;ON;;;;;Y;;;;;
+2E04;LEFT DOTTED SUBSTITUTION BRACKET;Pi;0;ON;;;;;Y;;;;;
+2E05;RIGHT DOTTED SUBSTITUTION BRACKET;Pf;0;ON;;;;;Y;;;;;
+2E06;RAISED INTERPOLATION MARKER;Po;0;ON;;;;;N;;;;;
+2E07;RAISED DOTTED INTERPOLATION MARKER;Po;0;ON;;;;;N;;;;;
+2E08;DOTTED TRANSPOSITION MARKER;Po;0;ON;;;;;N;;;;;
+2E09;LEFT TRANSPOSITION BRACKET;Pi;0;ON;;;;;Y;;;;;
+2E0A;RIGHT TRANSPOSITION BRACKET;Pf;0;ON;;;;;Y;;;;;
+2E0B;RAISED SQUARE;Po;0;ON;;;;;N;;;;;
+2E0C;LEFT RAISED OMISSION BRACKET;Pi;0;ON;;;;;Y;;;;;
+2E0D;RIGHT RAISED OMISSION BRACKET;Pf;0;ON;;;;;Y;;;;;
+2E0E;EDITORIAL CORONIS;Po;0;ON;;;;;N;;;;;
+2E0F;PARAGRAPHOS;Po;0;ON;;;;;N;;;;;
+2E10;FORKED PARAGRAPHOS;Po;0;ON;;;;;N;;;;;
+2E11;REVERSED FORKED PARAGRAPHOS;Po;0;ON;;;;;N;;;;;
+2E12;HYPODIASTOLE;Po;0;ON;;;;;N;;;;;
+2E13;DOTTED OBELOS;Po;0;ON;;;;;N;;;;;
+2E14;DOWNWARDS ANCORA;Po;0;ON;;;;;N;;;;;
+2E15;UPWARDS ANCORA;Po;0;ON;;;;;N;;;;;
+2E16;DOTTED RIGHT-POINTING ANGLE;Po;0;ON;;;;;N;;;;;
+2E17;DOUBLE OBLIQUE HYPHEN;Pd;0;ON;;;;;N;;;;;
+2E1C;LEFT LOW PARAPHRASE BRACKET;Pi;0;ON;;;;;Y;;;;;
+2E1D;RIGHT LOW PARAPHRASE BRACKET;Pf;0;ON;;;;;Y;;;;;
+2E80;CJK RADICAL REPEAT;So;0;ON;;;;;N;;;;;
+2E81;CJK RADICAL CLIFF;So;0;ON;;;;;N;;;;;
+2E82;CJK RADICAL SECOND ONE;So;0;ON;;;;;N;;;;;
+2E83;CJK RADICAL SECOND TWO;So;0;ON;;;;;N;;;;;
+2E84;CJK RADICAL SECOND THREE;So;0;ON;;;;;N;;;;;
+2E85;CJK RADICAL PERSON;So;0;ON;;;;;N;;;;;
+2E86;CJK RADICAL BOX;So;0;ON;;;;;N;;;;;
+2E87;CJK RADICAL TABLE;So;0;ON;;;;;N;;;;;
+2E88;CJK RADICAL KNIFE ONE;So;0;ON;;;;;N;;;;;
+2E89;CJK RADICAL KNIFE TWO;So;0;ON;;;;;N;;;;;
+2E8A;CJK RADICAL DIVINATION;So;0;ON;;;;;N;;;;;
+2E8B;CJK RADICAL SEAL;So;0;ON;;;;;N;;;;;
+2E8C;CJK RADICAL SMALL ONE;So;0;ON;;;;;N;;;;;
+2E8D;CJK RADICAL SMALL TWO;So;0;ON;;;;;N;;;;;
+2E8E;CJK RADICAL LAME ONE;So;0;ON;;;;;N;;;;;
+2E8F;CJK RADICAL LAME TWO;So;0;ON;;;;;N;;;;;
+2E90;CJK RADICAL LAME THREE;So;0;ON;;;;;N;;;;;
+2E91;CJK RADICAL LAME FOUR;So;0;ON;;;;;N;;;;;
+2E92;CJK RADICAL SNAKE;So;0;ON;;;;;N;;;;;
+2E93;CJK RADICAL THREAD;So;0;ON;;;;;N;;;;;
+2E94;CJK RADICAL SNOUT ONE;So;0;ON;;;;;N;;;;;
+2E95;CJK RADICAL SNOUT TWO;So;0;ON;;;;;N;;;;;
+2E96;CJK RADICAL HEART ONE;So;0;ON;;;;;N;;;;;
+2E97;CJK RADICAL HEART TWO;So;0;ON;;;;;N;;;;;
+2E98;CJK RADICAL HAND;So;0;ON;;;;;N;;;;;
+2E99;CJK RADICAL RAP;So;0;ON;;;;;N;;;;;
+2E9B;CJK RADICAL CHOKE;So;0;ON;;;;;N;;;;;
+2E9C;CJK RADICAL SUN;So;0;ON;;;;;N;;;;;
+2E9D;CJK RADICAL MOON;So;0;ON;;;;;N;;;;;
+2E9E;CJK RADICAL DEATH;So;0;ON;;;;;N;;;;;
+2E9F;CJK RADICAL MOTHER;So;0;ON;<compat> 6BCD;;;;N;;;;;
+2EA0;CJK RADICAL CIVILIAN;So;0;ON;;;;;N;;;;;
+2EA1;CJK RADICAL WATER ONE;So;0;ON;;;;;N;;;;;
+2EA2;CJK RADICAL WATER TWO;So;0;ON;;;;;N;;;;;
+2EA3;CJK RADICAL FIRE;So;0;ON;;;;;N;;;;;
+2EA4;CJK RADICAL PAW ONE;So;0;ON;;;;;N;;;;;
+2EA5;CJK RADICAL PAW TWO;So;0;ON;;;;;N;;;;;
+2EA6;CJK RADICAL SIMPLIFIED HALF TREE TRUNK;So;0;ON;;;;;N;;;;;
+2EA7;CJK RADICAL COW;So;0;ON;;;;;N;;;;;
+2EA8;CJK RADICAL DOG;So;0;ON;;;;;N;;;;;
+2EA9;CJK RADICAL JADE;So;0;ON;;;;;N;;;;;
+2EAA;CJK RADICAL BOLT OF CLOTH;So;0;ON;;;;;N;;;;;
+2EAB;CJK RADICAL EYE;So;0;ON;;;;;N;;;;;
+2EAC;CJK RADICAL SPIRIT ONE;So;0;ON;;;;;N;;;;;
+2EAD;CJK RADICAL SPIRIT TWO;So;0;ON;;;;;N;;;;;
+2EAE;CJK RADICAL BAMBOO;So;0;ON;;;;;N;;;;;
+2EAF;CJK RADICAL SILK;So;0;ON;;;;;N;;;;;
+2EB0;CJK RADICAL C-SIMPLIFIED SILK;So;0;ON;;;;;N;;;;;
+2EB1;CJK RADICAL NET ONE;So;0;ON;;;;;N;;;;;
+2EB2;CJK RADICAL NET TWO;So;0;ON;;;;;N;;;;;
+2EB3;CJK RADICAL NET THREE;So;0;ON;;;;;N;;;;;
+2EB4;CJK RADICAL NET FOUR;So;0;ON;;;;;N;;;;;
+2EB5;CJK RADICAL MESH;So;0;ON;;;;;N;;;;;
+2EB6;CJK RADICAL SHEEP;So;0;ON;;;;;N;;;;;
+2EB7;CJK RADICAL RAM;So;0;ON;;;;;N;;;;;
+2EB8;CJK RADICAL EWE;So;0;ON;;;;;N;;;;;
+2EB9;CJK RADICAL OLD;So;0;ON;;;;;N;;;;;
+2EBA;CJK RADICAL BRUSH ONE;So;0;ON;;;;;N;;;;;
+2EBB;CJK RADICAL BRUSH TWO;So;0;ON;;;;;N;;;;;
+2EBC;CJK RADICAL MEAT;So;0;ON;;;;;N;;;;;
+2EBD;CJK RADICAL MORTAR;So;0;ON;;;;;N;;;;;
+2EBE;CJK RADICAL GRASS ONE;So;0;ON;;;;;N;;;;;
+2EBF;CJK RADICAL GRASS TWO;So;0;ON;;;;;N;;;;;
+2EC0;CJK RADICAL GRASS THREE;So;0;ON;;;;;N;;;;;
+2EC1;CJK RADICAL TIGER;So;0;ON;;;;;N;;;;;
+2EC2;CJK RADICAL CLOTHES;So;0;ON;;;;;N;;;;;
+2EC3;CJK RADICAL WEST ONE;So;0;ON;;;;;N;;;;;
+2EC4;CJK RADICAL WEST TWO;So;0;ON;;;;;N;;;;;
+2EC5;CJK RADICAL C-SIMPLIFIED SEE;So;0;ON;;;;;N;;;;;
+2EC6;CJK RADICAL SIMPLIFIED HORN;So;0;ON;;;;;N;;;;;
+2EC7;CJK RADICAL HORN;So;0;ON;;;;;N;;;;;
+2EC8;CJK RADICAL C-SIMPLIFIED SPEECH;So;0;ON;;;;;N;;;;;
+2EC9;CJK RADICAL C-SIMPLIFIED SHELL;So;0;ON;;;;;N;;;;;
+2ECA;CJK RADICAL FOOT;So;0;ON;;;;;N;;;;;
+2ECB;CJK RADICAL C-SIMPLIFIED CART;So;0;ON;;;;;N;;;;;
+2ECC;CJK RADICAL SIMPLIFIED WALK;So;0;ON;;;;;N;;;;;
+2ECD;CJK RADICAL WALK ONE;So;0;ON;;;;;N;;;;;
+2ECE;CJK RADICAL WALK TWO;So;0;ON;;;;;N;;;;;
+2ECF;CJK RADICAL CITY;So;0;ON;;;;;N;;;;;
+2ED0;CJK RADICAL C-SIMPLIFIED GOLD;So;0;ON;;;;;N;;;;;
+2ED1;CJK RADICAL LONG ONE;So;0;ON;;;;;N;;;;;
+2ED2;CJK RADICAL LONG TWO;So;0;ON;;;;;N;;;;;
+2ED3;CJK RADICAL C-SIMPLIFIED LONG;So;0;ON;;;;;N;;;;;
+2ED4;CJK RADICAL C-SIMPLIFIED GATE;So;0;ON;;;;;N;;;;;
+2ED5;CJK RADICAL MOUND ONE;So;0;ON;;;;;N;;;;;
+2ED6;CJK RADICAL MOUND TWO;So;0;ON;;;;;N;;;;;
+2ED7;CJK RADICAL RAIN;So;0;ON;;;;;N;;;;;
+2ED8;CJK RADICAL BLUE;So;0;ON;;;;;N;;;;;
+2ED9;CJK RADICAL C-SIMPLIFIED TANNED LEATHER;So;0;ON;;;;;N;;;;;
+2EDA;CJK RADICAL C-SIMPLIFIED LEAF;So;0;ON;;;;;N;;;;;
+2EDB;CJK RADICAL C-SIMPLIFIED WIND;So;0;ON;;;;;N;;;;;
+2EDC;CJK RADICAL C-SIMPLIFIED FLY;So;0;ON;;;;;N;;;;;
+2EDD;CJK RADICAL EAT ONE;So;0;ON;;;;;N;;;;;
+2EDE;CJK RADICAL EAT TWO;So;0;ON;;;;;N;;;;;
+2EDF;CJK RADICAL EAT THREE;So;0;ON;;;;;N;;;;;
+2EE0;CJK RADICAL C-SIMPLIFIED EAT;So;0;ON;;;;;N;;;;;
+2EE1;CJK RADICAL HEAD;So;0;ON;;;;;N;;;;;
+2EE2;CJK RADICAL C-SIMPLIFIED HORSE;So;0;ON;;;;;N;;;;;
+2EE3;CJK RADICAL BONE;So;0;ON;;;;;N;;;;;
+2EE4;CJK RADICAL GHOST;So;0;ON;;;;;N;;;;;
+2EE5;CJK RADICAL C-SIMPLIFIED FISH;So;0;ON;;;;;N;;;;;
+2EE6;CJK RADICAL C-SIMPLIFIED BIRD;So;0;ON;;;;;N;;;;;
+2EE7;CJK RADICAL C-SIMPLIFIED SALT;So;0;ON;;;;;N;;;;;
+2EE8;CJK RADICAL SIMPLIFIED WHEAT;So;0;ON;;;;;N;;;;;
+2EE9;CJK RADICAL SIMPLIFIED YELLOW;So;0;ON;;;;;N;;;;;
+2EEA;CJK RADICAL C-SIMPLIFIED FROG;So;0;ON;;;;;N;;;;;
+2EEB;CJK RADICAL J-SIMPLIFIED EVEN;So;0;ON;;;;;N;;;;;
+2EEC;CJK RADICAL C-SIMPLIFIED EVEN;So;0;ON;;;;;N;;;;;
+2EED;CJK RADICAL J-SIMPLIFIED TOOTH;So;0;ON;;;;;N;;;;;
+2EEE;CJK RADICAL C-SIMPLIFIED TOOTH;So;0;ON;;;;;N;;;;;
+2EEF;CJK RADICAL J-SIMPLIFIED DRAGON;So;0;ON;;;;;N;;;;;
+2EF0;CJK RADICAL C-SIMPLIFIED DRAGON;So;0;ON;;;;;N;;;;;
+2EF1;CJK RADICAL TURTLE;So;0;ON;;;;;N;;;;;
+2EF2;CJK RADICAL J-SIMPLIFIED TURTLE;So;0;ON;;;;;N;;;;;
+2EF3;CJK RADICAL C-SIMPLIFIED TURTLE;So;0;ON;<compat> 9F9F;;;;N;;;;;
+2F00;KANGXI RADICAL ONE;So;0;ON;<compat> 4E00;;;;N;;;;;
+2F01;KANGXI RADICAL LINE;So;0;ON;<compat> 4E28;;;;N;;;;;
+2F02;KANGXI RADICAL DOT;So;0;ON;<compat> 4E36;;;;N;;;;;
+2F03;KANGXI RADICAL SLASH;So;0;ON;<compat> 4E3F;;;;N;;;;;
+2F04;KANGXI RADICAL SECOND;So;0;ON;<compat> 4E59;;;;N;;;;;
+2F05;KANGXI RADICAL HOOK;So;0;ON;<compat> 4E85;;;;N;;;;;
+2F06;KANGXI RADICAL TWO;So;0;ON;<compat> 4E8C;;;;N;;;;;
+2F07;KANGXI RADICAL LID;So;0;ON;<compat> 4EA0;;;;N;;;;;
+2F08;KANGXI RADICAL MAN;So;0;ON;<compat> 4EBA;;;;N;;;;;
+2F09;KANGXI RADICAL LEGS;So;0;ON;<compat> 513F;;;;N;;;;;
+2F0A;KANGXI RADICAL ENTER;So;0;ON;<compat> 5165;;;;N;;;;;
+2F0B;KANGXI RADICAL EIGHT;So;0;ON;<compat> 516B;;;;N;;;;;
+2F0C;KANGXI RADICAL DOWN BOX;So;0;ON;<compat> 5182;;;;N;;;;;
+2F0D;KANGXI RADICAL COVER;So;0;ON;<compat> 5196;;;;N;;;;;
+2F0E;KANGXI RADICAL ICE;So;0;ON;<compat> 51AB;;;;N;;;;;
+2F0F;KANGXI RADICAL TABLE;So;0;ON;<compat> 51E0;;;;N;;;;;
+2F10;KANGXI RADICAL OPEN BOX;So;0;ON;<compat> 51F5;;;;N;;;;;
+2F11;KANGXI RADICAL KNIFE;So;0;ON;<compat> 5200;;;;N;;;;;
+2F12;KANGXI RADICAL POWER;So;0;ON;<compat> 529B;;;;N;;;;;
+2F13;KANGXI RADICAL WRAP;So;0;ON;<compat> 52F9;;;;N;;;;;
+2F14;KANGXI RADICAL SPOON;So;0;ON;<compat> 5315;;;;N;;;;;
+2F15;KANGXI RADICAL RIGHT OPEN BOX;So;0;ON;<compat> 531A;;;;N;;;;;
+2F16;KANGXI RADICAL HIDING ENCLOSURE;So;0;ON;<compat> 5338;;;;N;;;;;
+2F17;KANGXI RADICAL TEN;So;0;ON;<compat> 5341;;;;N;;;;;
+2F18;KANGXI RADICAL DIVINATION;So;0;ON;<compat> 535C;;;;N;;;;;
+2F19;KANGXI RADICAL SEAL;So;0;ON;<compat> 5369;;;;N;;;;;
+2F1A;KANGXI RADICAL CLIFF;So;0;ON;<compat> 5382;;;;N;;;;;
+2F1B;KANGXI RADICAL PRIVATE;So;0;ON;<compat> 53B6;;;;N;;;;;
+2F1C;KANGXI RADICAL AGAIN;So;0;ON;<compat> 53C8;;;;N;;;;;
+2F1D;KANGXI RADICAL MOUTH;So;0;ON;<compat> 53E3;;;;N;;;;;
+2F1E;KANGXI RADICAL ENCLOSURE;So;0;ON;<compat> 56D7;;;;N;;;;;
+2F1F;KANGXI RADICAL EARTH;So;0;ON;<compat> 571F;;;;N;;;;;
+2F20;KANGXI RADICAL SCHOLAR;So;0;ON;<compat> 58EB;;;;N;;;;;
+2F21;KANGXI RADICAL GO;So;0;ON;<compat> 5902;;;;N;;;;;
+2F22;KANGXI RADICAL GO SLOWLY;So;0;ON;<compat> 590A;;;;N;;;;;
+2F23;KANGXI RADICAL EVENING;So;0;ON;<compat> 5915;;;;N;;;;;
+2F24;KANGXI RADICAL BIG;So;0;ON;<compat> 5927;;;;N;;;;;
+2F25;KANGXI RADICAL WOMAN;So;0;ON;<compat> 5973;;;;N;;;;;
+2F26;KANGXI RADICAL CHILD;So;0;ON;<compat> 5B50;;;;N;;;;;
+2F27;KANGXI RADICAL ROOF;So;0;ON;<compat> 5B80;;;;N;;;;;
+2F28;KANGXI RADICAL INCH;So;0;ON;<compat> 5BF8;;;;N;;;;;
+2F29;KANGXI RADICAL SMALL;So;0;ON;<compat> 5C0F;;;;N;;;;;
+2F2A;KANGXI RADICAL LAME;So;0;ON;<compat> 5C22;;;;N;;;;;
+2F2B;KANGXI RADICAL CORPSE;So;0;ON;<compat> 5C38;;;;N;;;;;
+2F2C;KANGXI RADICAL SPROUT;So;0;ON;<compat> 5C6E;;;;N;;;;;
+2F2D;KANGXI RADICAL MOUNTAIN;So;0;ON;<compat> 5C71;;;;N;;;;;
+2F2E;KANGXI RADICAL RIVER;So;0;ON;<compat> 5DDB;;;;N;;;;;
+2F2F;KANGXI RADICAL WORK;So;0;ON;<compat> 5DE5;;;;N;;;;;
+2F30;KANGXI RADICAL ONESELF;So;0;ON;<compat> 5DF1;;;;N;;;;;
+2F31;KANGXI RADICAL TURBAN;So;0;ON;<compat> 5DFE;;;;N;;;;;
+2F32;KANGXI RADICAL DRY;So;0;ON;<compat> 5E72;;;;N;;;;;
+2F33;KANGXI RADICAL SHORT THREAD;So;0;ON;<compat> 5E7A;;;;N;;;;;
+2F34;KANGXI RADICAL DOTTED CLIFF;So;0;ON;<compat> 5E7F;;;;N;;;;;
+2F35;KANGXI RADICAL LONG STRIDE;So;0;ON;<compat> 5EF4;;;;N;;;;;
+2F36;KANGXI RADICAL TWO HANDS;So;0;ON;<compat> 5EFE;;;;N;;;;;
+2F37;KANGXI RADICAL SHOOT;So;0;ON;<compat> 5F0B;;;;N;;;;;
+2F38;KANGXI RADICAL BOW;So;0;ON;<compat> 5F13;;;;N;;;;;
+2F39;KANGXI RADICAL SNOUT;So;0;ON;<compat> 5F50;;;;N;;;;;
+2F3A;KANGXI RADICAL BRISTLE;So;0;ON;<compat> 5F61;;;;N;;;;;
+2F3B;KANGXI RADICAL STEP;So;0;ON;<compat> 5F73;;;;N;;;;;
+2F3C;KANGXI RADICAL HEART;So;0;ON;<compat> 5FC3;;;;N;;;;;
+2F3D;KANGXI RADICAL HALBERD;So;0;ON;<compat> 6208;;;;N;;;;;
+2F3E;KANGXI RADICAL DOOR;So;0;ON;<compat> 6236;;;;N;;;;;
+2F3F;KANGXI RADICAL HAND;So;0;ON;<compat> 624B;;;;N;;;;;
+2F40;KANGXI RADICAL BRANCH;So;0;ON;<compat> 652F;;;;N;;;;;
+2F41;KANGXI RADICAL RAP;So;0;ON;<compat> 6534;;;;N;;;;;
+2F42;KANGXI RADICAL SCRIPT;So;0;ON;<compat> 6587;;;;N;;;;;
+2F43;KANGXI RADICAL DIPPER;So;0;ON;<compat> 6597;;;;N;;;;;
+2F44;KANGXI RADICAL AXE;So;0;ON;<compat> 65A4;;;;N;;;;;
+2F45;KANGXI RADICAL SQUARE;So;0;ON;<compat> 65B9;;;;N;;;;;
+2F46;KANGXI RADICAL NOT;So;0;ON;<compat> 65E0;;;;N;;;;;
+2F47;KANGXI RADICAL SUN;So;0;ON;<compat> 65E5;;;;N;;;;;
+2F48;KANGXI RADICAL SAY;So;0;ON;<compat> 66F0;;;;N;;;;;
+2F49;KANGXI RADICAL MOON;So;0;ON;<compat> 6708;;;;N;;;;;
+2F4A;KANGXI RADICAL TREE;So;0;ON;<compat> 6728;;;;N;;;;;
+2F4B;KANGXI RADICAL LACK;So;0;ON;<compat> 6B20;;;;N;;;;;
+2F4C;KANGXI RADICAL STOP;So;0;ON;<compat> 6B62;;;;N;;;;;
+2F4D;KANGXI RADICAL DEATH;So;0;ON;<compat> 6B79;;;;N;;;;;
+2F4E;KANGXI RADICAL WEAPON;So;0;ON;<compat> 6BB3;;;;N;;;;;
+2F4F;KANGXI RADICAL DO NOT;So;0;ON;<compat> 6BCB;;;;N;;;;;
+2F50;KANGXI RADICAL COMPARE;So;0;ON;<compat> 6BD4;;;;N;;;;;
+2F51;KANGXI RADICAL FUR;So;0;ON;<compat> 6BDB;;;;N;;;;;
+2F52;KANGXI RADICAL CLAN;So;0;ON;<compat> 6C0F;;;;N;;;;;
+2F53;KANGXI RADICAL STEAM;So;0;ON;<compat> 6C14;;;;N;;;;;
+2F54;KANGXI RADICAL WATER;So;0;ON;<compat> 6C34;;;;N;;;;;
+2F55;KANGXI RADICAL FIRE;So;0;ON;<compat> 706B;;;;N;;;;;
+2F56;KANGXI RADICAL CLAW;So;0;ON;<compat> 722A;;;;N;;;;;
+2F57;KANGXI RADICAL FATHER;So;0;ON;<compat> 7236;;;;N;;;;;
+2F58;KANGXI RADICAL DOUBLE X;So;0;ON;<compat> 723B;;;;N;;;;;
+2F59;KANGXI RADICAL HALF TREE TRUNK;So;0;ON;<compat> 723F;;;;N;;;;;
+2F5A;KANGXI RADICAL SLICE;So;0;ON;<compat> 7247;;;;N;;;;;
+2F5B;KANGXI RADICAL FANG;So;0;ON;<compat> 7259;;;;N;;;;;
+2F5C;KANGXI RADICAL COW;So;0;ON;<compat> 725B;;;;N;;;;;
+2F5D;KANGXI RADICAL DOG;So;0;ON;<compat> 72AC;;;;N;;;;;
+2F5E;KANGXI RADICAL PROFOUND;So;0;ON;<compat> 7384;;;;N;;;;;
+2F5F;KANGXI RADICAL JADE;So;0;ON;<compat> 7389;;;;N;;;;;
+2F60;KANGXI RADICAL MELON;So;0;ON;<compat> 74DC;;;;N;;;;;
+2F61;KANGXI RADICAL TILE;So;0;ON;<compat> 74E6;;;;N;;;;;
+2F62;KANGXI RADICAL SWEET;So;0;ON;<compat> 7518;;;;N;;;;;
+2F63;KANGXI RADICAL LIFE;So;0;ON;<compat> 751F;;;;N;;;;;
+2F64;KANGXI RADICAL USE;So;0;ON;<compat> 7528;;;;N;;;;;
+2F65;KANGXI RADICAL FIELD;So;0;ON;<compat> 7530;;;;N;;;;;
+2F66;KANGXI RADICAL BOLT OF CLOTH;So;0;ON;<compat> 758B;;;;N;;;;;
+2F67;KANGXI RADICAL SICKNESS;So;0;ON;<compat> 7592;;;;N;;;;;
+2F68;KANGXI RADICAL DOTTED TENT;So;0;ON;<compat> 7676;;;;N;;;;;
+2F69;KANGXI RADICAL WHITE;So;0;ON;<compat> 767D;;;;N;;;;;
+2F6A;KANGXI RADICAL SKIN;So;0;ON;<compat> 76AE;;;;N;;;;;
+2F6B;KANGXI RADICAL DISH;So;0;ON;<compat> 76BF;;;;N;;;;;
+2F6C;KANGXI RADICAL EYE;So;0;ON;<compat> 76EE;;;;N;;;;;
+2F6D;KANGXI RADICAL SPEAR;So;0;ON;<compat> 77DB;;;;N;;;;;
+2F6E;KANGXI RADICAL ARROW;So;0;ON;<compat> 77E2;;;;N;;;;;
+2F6F;KANGXI RADICAL STONE;So;0;ON;<compat> 77F3;;;;N;;;;;
+2F70;KANGXI RADICAL SPIRIT;So;0;ON;<compat> 793A;;;;N;;;;;
+2F71;KANGXI RADICAL TRACK;So;0;ON;<compat> 79B8;;;;N;;;;;
+2F72;KANGXI RADICAL GRAIN;So;0;ON;<compat> 79BE;;;;N;;;;;
+2F73;KANGXI RADICAL CAVE;So;0;ON;<compat> 7A74;;;;N;;;;;
+2F74;KANGXI RADICAL STAND;So;0;ON;<compat> 7ACB;;;;N;;;;;
+2F75;KANGXI RADICAL BAMBOO;So;0;ON;<compat> 7AF9;;;;N;;;;;
+2F76;KANGXI RADICAL RICE;So;0;ON;<compat> 7C73;;;;N;;;;;
+2F77;KANGXI RADICAL SILK;So;0;ON;<compat> 7CF8;;;;N;;;;;
+2F78;KANGXI RADICAL JAR;So;0;ON;<compat> 7F36;;;;N;;;;;
+2F79;KANGXI RADICAL NET;So;0;ON;<compat> 7F51;;;;N;;;;;
+2F7A;KANGXI RADICAL SHEEP;So;0;ON;<compat> 7F8A;;;;N;;;;;
+2F7B;KANGXI RADICAL FEATHER;So;0;ON;<compat> 7FBD;;;;N;;;;;
+2F7C;KANGXI RADICAL OLD;So;0;ON;<compat> 8001;;;;N;;;;;
+2F7D;KANGXI RADICAL AND;So;0;ON;<compat> 800C;;;;N;;;;;
+2F7E;KANGXI RADICAL PLOW;So;0;ON;<compat> 8012;;;;N;;;;;
+2F7F;KANGXI RADICAL EAR;So;0;ON;<compat> 8033;;;;N;;;;;
+2F80;KANGXI RADICAL BRUSH;So;0;ON;<compat> 807F;;;;N;;;;;
+2F81;KANGXI RADICAL MEAT;So;0;ON;<compat> 8089;;;;N;;;;;
+2F82;KANGXI RADICAL MINISTER;So;0;ON;<compat> 81E3;;;;N;;;;;
+2F83;KANGXI RADICAL SELF;So;0;ON;<compat> 81EA;;;;N;;;;;
+2F84;KANGXI RADICAL ARRIVE;So;0;ON;<compat> 81F3;;;;N;;;;;
+2F85;KANGXI RADICAL MORTAR;So;0;ON;<compat> 81FC;;;;N;;;;;
+2F86;KANGXI RADICAL TONGUE;So;0;ON;<compat> 820C;;;;N;;;;;
+2F87;KANGXI RADICAL OPPOSE;So;0;ON;<compat> 821B;;;;N;;;;;
+2F88;KANGXI RADICAL BOAT;So;0;ON;<compat> 821F;;;;N;;;;;
+2F89;KANGXI RADICAL STOPPING;So;0;ON;<compat> 826E;;;;N;;;;;
+2F8A;KANGXI RADICAL COLOR;So;0;ON;<compat> 8272;;;;N;;;;;
+2F8B;KANGXI RADICAL GRASS;So;0;ON;<compat> 8278;;;;N;;;;;
+2F8C;KANGXI RADICAL TIGER;So;0;ON;<compat> 864D;;;;N;;;;;
+2F8D;KANGXI RADICAL INSECT;So;0;ON;<compat> 866B;;;;N;;;;;
+2F8E;KANGXI RADICAL BLOOD;So;0;ON;<compat> 8840;;;;N;;;;;
+2F8F;KANGXI RADICAL WALK ENCLOSURE;So;0;ON;<compat> 884C;;;;N;;;;;
+2F90;KANGXI RADICAL CLOTHES;So;0;ON;<compat> 8863;;;;N;;;;;
+2F91;KANGXI RADICAL WEST;So;0;ON;<compat> 897E;;;;N;;;;;
+2F92;KANGXI RADICAL SEE;So;0;ON;<compat> 898B;;;;N;;;;;
+2F93;KANGXI RADICAL HORN;So;0;ON;<compat> 89D2;;;;N;;;;;
+2F94;KANGXI RADICAL SPEECH;So;0;ON;<compat> 8A00;;;;N;;;;;
+2F95;KANGXI RADICAL VALLEY;So;0;ON;<compat> 8C37;;;;N;;;;;
+2F96;KANGXI RADICAL BEAN;So;0;ON;<compat> 8C46;;;;N;;;;;
+2F97;KANGXI RADICAL PIG;So;0;ON;<compat> 8C55;;;;N;;;;;
+2F98;KANGXI RADICAL BADGER;So;0;ON;<compat> 8C78;;;;N;;;;;
+2F99;KANGXI RADICAL SHELL;So;0;ON;<compat> 8C9D;;;;N;;;;;
+2F9A;KANGXI RADICAL RED;So;0;ON;<compat> 8D64;;;;N;;;;;
+2F9B;KANGXI RADICAL RUN;So;0;ON;<compat> 8D70;;;;N;;;;;
+2F9C;KANGXI RADICAL FOOT;So;0;ON;<compat> 8DB3;;;;N;;;;;
+2F9D;KANGXI RADICAL BODY;So;0;ON;<compat> 8EAB;;;;N;;;;;
+2F9E;KANGXI RADICAL CART;So;0;ON;<compat> 8ECA;;;;N;;;;;
+2F9F;KANGXI RADICAL BITTER;So;0;ON;<compat> 8F9B;;;;N;;;;;
+2FA0;KANGXI RADICAL MORNING;So;0;ON;<compat> 8FB0;;;;N;;;;;
+2FA1;KANGXI RADICAL WALK;So;0;ON;<compat> 8FB5;;;;N;;;;;
+2FA2;KANGXI RADICAL CITY;So;0;ON;<compat> 9091;;;;N;;;;;
+2FA3;KANGXI RADICAL WINE;So;0;ON;<compat> 9149;;;;N;;;;;
+2FA4;KANGXI RADICAL DISTINGUISH;So;0;ON;<compat> 91C6;;;;N;;;;;
+2FA5;KANGXI RADICAL VILLAGE;So;0;ON;<compat> 91CC;;;;N;;;;;
+2FA6;KANGXI RADICAL GOLD;So;0;ON;<compat> 91D1;;;;N;;;;;
+2FA7;KANGXI RADICAL LONG;So;0;ON;<compat> 9577;;;;N;;;;;
+2FA8;KANGXI RADICAL GATE;So;0;ON;<compat> 9580;;;;N;;;;;
+2FA9;KANGXI RADICAL MOUND;So;0;ON;<compat> 961C;;;;N;;;;;
+2FAA;KANGXI RADICAL SLAVE;So;0;ON;<compat> 96B6;;;;N;;;;;
+2FAB;KANGXI RADICAL SHORT TAILED BIRD;So;0;ON;<compat> 96B9;;;;N;;;;;
+2FAC;KANGXI RADICAL RAIN;So;0;ON;<compat> 96E8;;;;N;;;;;
+2FAD;KANGXI RADICAL BLUE;So;0;ON;<compat> 9751;;;;N;;;;;
+2FAE;KANGXI RADICAL WRONG;So;0;ON;<compat> 975E;;;;N;;;;;
+2FAF;KANGXI RADICAL FACE;So;0;ON;<compat> 9762;;;;N;;;;;
+2FB0;KANGXI RADICAL LEATHER;So;0;ON;<compat> 9769;;;;N;;;;;
+2FB1;KANGXI RADICAL TANNED LEATHER;So;0;ON;<compat> 97CB;;;;N;;;;;
+2FB2;KANGXI RADICAL LEEK;So;0;ON;<compat> 97ED;;;;N;;;;;
+2FB3;KANGXI RADICAL SOUND;So;0;ON;<compat> 97F3;;;;N;;;;;
+2FB4;KANGXI RADICAL LEAF;So;0;ON;<compat> 9801;;;;N;;;;;
+2FB5;KANGXI RADICAL WIND;So;0;ON;<compat> 98A8;;;;N;;;;;
+2FB6;KANGXI RADICAL FLY;So;0;ON;<compat> 98DB;;;;N;;;;;
+2FB7;KANGXI RADICAL EAT;So;0;ON;<compat> 98DF;;;;N;;;;;
+2FB8;KANGXI RADICAL HEAD;So;0;ON;<compat> 9996;;;;N;;;;;
+2FB9;KANGXI RADICAL FRAGRANT;So;0;ON;<compat> 9999;;;;N;;;;;
+2FBA;KANGXI RADICAL HORSE;So;0;ON;<compat> 99AC;;;;N;;;;;
+2FBB;KANGXI RADICAL BONE;So;0;ON;<compat> 9AA8;;;;N;;;;;
+2FBC;KANGXI RADICAL TALL;So;0;ON;<compat> 9AD8;;;;N;;;;;
+2FBD;KANGXI RADICAL HAIR;So;0;ON;<compat> 9ADF;;;;N;;;;;
+2FBE;KANGXI RADICAL FIGHT;So;0;ON;<compat> 9B25;;;;N;;;;;
+2FBF;KANGXI RADICAL SACRIFICIAL WINE;So;0;ON;<compat> 9B2F;;;;N;;;;;
+2FC0;KANGXI RADICAL CAULDRON;So;0;ON;<compat> 9B32;;;;N;;;;;
+2FC1;KANGXI RADICAL GHOST;So;0;ON;<compat> 9B3C;;;;N;;;;;
+2FC2;KANGXI RADICAL FISH;So;0;ON;<compat> 9B5A;;;;N;;;;;
+2FC3;KANGXI RADICAL BIRD;So;0;ON;<compat> 9CE5;;;;N;;;;;
+2FC4;KANGXI RADICAL SALT;So;0;ON;<compat> 9E75;;;;N;;;;;
+2FC5;KANGXI RADICAL DEER;So;0;ON;<compat> 9E7F;;;;N;;;;;
+2FC6;KANGXI RADICAL WHEAT;So;0;ON;<compat> 9EA5;;;;N;;;;;
+2FC7;KANGXI RADICAL HEMP;So;0;ON;<compat> 9EBB;;;;N;;;;;
+2FC8;KANGXI RADICAL YELLOW;So;0;ON;<compat> 9EC3;;;;N;;;;;
+2FC9;KANGXI RADICAL MILLET;So;0;ON;<compat> 9ECD;;;;N;;;;;
+2FCA;KANGXI RADICAL BLACK;So;0;ON;<compat> 9ED1;;;;N;;;;;
+2FCB;KANGXI RADICAL EMBROIDERY;So;0;ON;<compat> 9EF9;;;;N;;;;;
+2FCC;KANGXI RADICAL FROG;So;0;ON;<compat> 9EFD;;;;N;;;;;
+2FCD;KANGXI RADICAL TRIPOD;So;0;ON;<compat> 9F0E;;;;N;;;;;
+2FCE;KANGXI RADICAL DRUM;So;0;ON;<compat> 9F13;;;;N;;;;;
+2FCF;KANGXI RADICAL RAT;So;0;ON;<compat> 9F20;;;;N;;;;;
+2FD0;KANGXI RADICAL NOSE;So;0;ON;<compat> 9F3B;;;;N;;;;;
+2FD1;KANGXI RADICAL EVEN;So;0;ON;<compat> 9F4A;;;;N;;;;;
+2FD2;KANGXI RADICAL TOOTH;So;0;ON;<compat> 9F52;;;;N;;;;;
+2FD3;KANGXI RADICAL DRAGON;So;0;ON;<compat> 9F8D;;;;N;;;;;
+2FD4;KANGXI RADICAL TURTLE;So;0;ON;<compat> 9F9C;;;;N;;;;;
+2FD5;KANGXI RADICAL FLUTE;So;0;ON;<compat> 9FA0;;;;N;;;;;
+2FF0;IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT;So;0;ON;;;;;N;;;;;
+2FF1;IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO BELOW;So;0;ON;;;;;N;;;;;
+2FF2;IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO MIDDLE AND RIGHT;So;0;ON;;;;;N;;;;;
+2FF3;IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO MIDDLE AND BELOW;So;0;ON;;;;;N;;;;;
+2FF4;IDEOGRAPHIC DESCRIPTION CHARACTER FULL SURROUND;So;0;ON;;;;;N;;;;;
+2FF5;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM ABOVE;So;0;ON;;;;;N;;;;;
+2FF6;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM BELOW;So;0;ON;;;;;N;;;;;
+2FF7;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LEFT;So;0;ON;;;;;N;;;;;
+2FF8;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER LEFT;So;0;ON;;;;;N;;;;;
+2FF9;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER RIGHT;So;0;ON;;;;;N;;;;;
+2FFA;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LOWER LEFT;So;0;ON;;;;;N;;;;;
+2FFB;IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID;So;0;ON;;;;;N;;;;;
+3000;IDEOGRAPHIC SPACE;Zs;0;WS;<wide> 0020;;;;N;;;;;
+3001;IDEOGRAPHIC COMMA;Po;0;ON;;;;;N;;;;;
+3002;IDEOGRAPHIC FULL STOP;Po;0;ON;;;;;N;IDEOGRAPHIC PERIOD;;;;
+3003;DITTO MARK;Po;0;ON;;;;;N;;;;;
+3004;JAPANESE INDUSTRIAL STANDARD SYMBOL;So;0;ON;;;;;N;;;;;
+3005;IDEOGRAPHIC ITERATION MARK;Lm;0;L;;;;;N;;;;;
+3006;IDEOGRAPHIC CLOSING MARK;Lo;0;L;;;;;N;;;;;
+3007;IDEOGRAPHIC NUMBER ZERO;Nl;0;L;;;;0;N;;;;;
+3008;LEFT ANGLE BRACKET;Ps;0;ON;;;;;Y;OPENING ANGLE BRACKET;;;;
+3009;RIGHT ANGLE BRACKET;Pe;0;ON;;;;;Y;CLOSING ANGLE BRACKET;;;;
+300A;LEFT DOUBLE ANGLE BRACKET;Ps;0;ON;;;;;Y;OPENING DOUBLE ANGLE BRACKET;;;;
+300B;RIGHT DOUBLE ANGLE BRACKET;Pe;0;ON;;;;;Y;CLOSING DOUBLE ANGLE BRACKET;;;;
+300C;LEFT CORNER BRACKET;Ps;0;ON;;;;;Y;OPENING CORNER BRACKET;;;;
+300D;RIGHT CORNER BRACKET;Pe;0;ON;;;;;Y;CLOSING CORNER BRACKET;;;;
+300E;LEFT WHITE CORNER BRACKET;Ps;0;ON;;;;;Y;OPENING WHITE CORNER BRACKET;;;;
+300F;RIGHT WHITE CORNER BRACKET;Pe;0;ON;;;;;Y;CLOSING WHITE CORNER BRACKET;;;;
+3010;LEFT BLACK LENTICULAR BRACKET;Ps;0;ON;;;;;Y;OPENING BLACK LENTICULAR BRACKET;;;;
+3011;RIGHT BLACK LENTICULAR BRACKET;Pe;0;ON;;;;;Y;CLOSING BLACK LENTICULAR BRACKET;;;;
+3012;POSTAL MARK;So;0;ON;;;;;N;;;;;
+3013;GETA MARK;So;0;ON;;;;;N;;;;;
+3014;LEFT TORTOISE SHELL BRACKET;Ps;0;ON;;;;;Y;OPENING TORTOISE SHELL BRACKET;;;;
+3015;RIGHT TORTOISE SHELL BRACKET;Pe;0;ON;;;;;Y;CLOSING TORTOISE SHELL BRACKET;;;;
+3016;LEFT WHITE LENTICULAR BRACKET;Ps;0;ON;;;;;Y;OPENING WHITE LENTICULAR BRACKET;;;;
+3017;RIGHT WHITE LENTICULAR BRACKET;Pe;0;ON;;;;;Y;CLOSING WHITE LENTICULAR BRACKET;;;;
+3018;LEFT WHITE TORTOISE SHELL BRACKET;Ps;0;ON;;;;;Y;OPENING WHITE TORTOISE SHELL BRACKET;;;;
+3019;RIGHT WHITE TORTOISE SHELL BRACKET;Pe;0;ON;;;;;Y;CLOSING WHITE TORTOISE SHELL BRACKET;;;;
+301A;LEFT WHITE SQUARE BRACKET;Ps;0;ON;;;;;Y;OPENING WHITE SQUARE BRACKET;;;;
+301B;RIGHT WHITE SQUARE BRACKET;Pe;0;ON;;;;;Y;CLOSING WHITE SQUARE BRACKET;;;;
+301C;WAVE DASH;Pd;0;ON;;;;;N;;;;;
+301D;REVERSED DOUBLE PRIME QUOTATION MARK;Ps;0;ON;;;;;Y;;;;;
+301E;DOUBLE PRIME QUOTATION MARK;Pe;0;ON;;;;;Y;;;;;
+301F;LOW DOUBLE PRIME QUOTATION MARK;Pe;0;ON;;;;;Y;;;;;
+3020;POSTAL MARK FACE;So;0;ON;;;;;N;;;;;
+3021;HANGZHOU NUMERAL ONE;Nl;0;L;;;;1;N;;;;;
+3022;HANGZHOU NUMERAL TWO;Nl;0;L;;;;2;N;;;;;
+3023;HANGZHOU NUMERAL THREE;Nl;0;L;;;;3;N;;;;;
+3024;HANGZHOU NUMERAL FOUR;Nl;0;L;;;;4;N;;;;;
+3025;HANGZHOU NUMERAL FIVE;Nl;0;L;;;;5;N;;;;;
+3026;HANGZHOU NUMERAL SIX;Nl;0;L;;;;6;N;;;;;
+3027;HANGZHOU NUMERAL SEVEN;Nl;0;L;;;;7;N;;;;;
+3028;HANGZHOU NUMERAL EIGHT;Nl;0;L;;;;8;N;;;;;
+3029;HANGZHOU NUMERAL NINE;Nl;0;L;;;;9;N;;;;;
+302A;IDEOGRAPHIC LEVEL TONE MARK;Mn;218;NSM;;;;;N;;;;;
+302B;IDEOGRAPHIC RISING TONE MARK;Mn;228;NSM;;;;;N;;;;;
+302C;IDEOGRAPHIC DEPARTING TONE MARK;Mn;232;NSM;;;;;N;;;;;
+302D;IDEOGRAPHIC ENTERING TONE MARK;Mn;222;NSM;;;;;N;;;;;
+302E;HANGUL SINGLE DOT TONE MARK;Mn;224;NSM;;;;;N;;;;;
+302F;HANGUL DOUBLE DOT TONE MARK;Mn;224;NSM;;;;;N;;;;;
+3030;WAVY DASH;Pd;0;ON;;;;;N;;;;;
+3031;VERTICAL KANA REPEAT MARK;Lm;0;L;;;;;N;;;;;
+3032;VERTICAL KANA REPEAT WITH VOICED SOUND MARK;Lm;0;L;;;;;N;;;;;
+3033;VERTICAL KANA REPEAT MARK UPPER HALF;Lm;0;L;;;;;N;;;;;
+3034;VERTICAL KANA REPEAT WITH VOICED SOUND MARK UPPER HALF;Lm;0;L;;;;;N;;;;;
+3035;VERTICAL KANA REPEAT MARK LOWER HALF;Lm;0;L;;;;;N;;;;;
+3036;CIRCLED POSTAL MARK;So;0;ON;<compat> 3012;;;;N;;;;;
+3037;IDEOGRAPHIC TELEGRAPH LINE FEED SEPARATOR SYMBOL;So;0;ON;;;;;N;;;;;
+3038;HANGZHOU NUMERAL TEN;Nl;0;L;<compat> 5341;;;10;N;;;;;
+3039;HANGZHOU NUMERAL TWENTY;Nl;0;L;<compat> 5344;;;20;N;;;;;
+303A;HANGZHOU NUMERAL THIRTY;Nl;0;L;<compat> 5345;;;30;N;;;;;
+303B;VERTICAL IDEOGRAPHIC ITERATION MARK;Lm;0;L;;;;;N;;;;;
+303C;MASU MARK;Lo;0;L;;;;;N;;;;;
+303D;PART ALTERNATION MARK;Po;0;ON;;;;;N;;;;;
+303E;IDEOGRAPHIC VARIATION INDICATOR;So;0;ON;;;;;N;;;;;
+303F;IDEOGRAPHIC HALF FILL SPACE;So;0;ON;;;;;N;;;;;
+3041;HIRAGANA LETTER SMALL A;Lo;0;L;;;;;N;;;;;
+3042;HIRAGANA LETTER A;Lo;0;L;;;;;N;;;;;
+3043;HIRAGANA LETTER SMALL I;Lo;0;L;;;;;N;;;;;
+3044;HIRAGANA LETTER I;Lo;0;L;;;;;N;;;;;
+3045;HIRAGANA LETTER SMALL U;Lo;0;L;;;;;N;;;;;
+3046;HIRAGANA LETTER U;Lo;0;L;;;;;N;;;;;
+3047;HIRAGANA LETTER SMALL E;Lo;0;L;;;;;N;;;;;
+3048;HIRAGANA LETTER E;Lo;0;L;;;;;N;;;;;
+3049;HIRAGANA LETTER SMALL O;Lo;0;L;;;;;N;;;;;
+304A;HIRAGANA LETTER O;Lo;0;L;;;;;N;;;;;
+304B;HIRAGANA LETTER KA;Lo;0;L;;;;;N;;;;;
+304C;HIRAGANA LETTER GA;Lo;0;L;304B 3099;;;;N;;;;;
+304D;HIRAGANA LETTER KI;Lo;0;L;;;;;N;;;;;
+304E;HIRAGANA LETTER GI;Lo;0;L;304D 3099;;;;N;;;;;
+304F;HIRAGANA LETTER KU;Lo;0;L;;;;;N;;;;;
+3050;HIRAGANA LETTER GU;Lo;0;L;304F 3099;;;;N;;;;;
+3051;HIRAGANA LETTER KE;Lo;0;L;;;;;N;;;;;
+3052;HIRAGANA LETTER GE;Lo;0;L;3051 3099;;;;N;;;;;
+3053;HIRAGANA LETTER KO;Lo;0;L;;;;;N;;;;;
+3054;HIRAGANA LETTER GO;Lo;0;L;3053 3099;;;;N;;;;;
+3055;HIRAGANA LETTER SA;Lo;0;L;;;;;N;;;;;
+3056;HIRAGANA LETTER ZA;Lo;0;L;3055 3099;;;;N;;;;;
+3057;HIRAGANA LETTER SI;Lo;0;L;;;;;N;;;;;
+3058;HIRAGANA LETTER ZI;Lo;0;L;3057 3099;;;;N;;;;;
+3059;HIRAGANA LETTER SU;Lo;0;L;;;;;N;;;;;
+305A;HIRAGANA LETTER ZU;Lo;0;L;3059 3099;;;;N;;;;;
+305B;HIRAGANA LETTER SE;Lo;0;L;;;;;N;;;;;
+305C;HIRAGANA LETTER ZE;Lo;0;L;305B 3099;;;;N;;;;;
+305D;HIRAGANA LETTER SO;Lo;0;L;;;;;N;;;;;
+305E;HIRAGANA LETTER ZO;Lo;0;L;305D 3099;;;;N;;;;;
+305F;HIRAGANA LETTER TA;Lo;0;L;;;;;N;;;;;
+3060;HIRAGANA LETTER DA;Lo;0;L;305F 3099;;;;N;;;;;
+3061;HIRAGANA LETTER TI;Lo;0;L;;;;;N;;;;;
+3062;HIRAGANA LETTER DI;Lo;0;L;3061 3099;;;;N;;;;;
+3063;HIRAGANA LETTER SMALL TU;Lo;0;L;;;;;N;;;;;
+3064;HIRAGANA LETTER TU;Lo;0;L;;;;;N;;;;;
+3065;HIRAGANA LETTER DU;Lo;0;L;3064 3099;;;;N;;;;;
+3066;HIRAGANA LETTER TE;Lo;0;L;;;;;N;;;;;
+3067;HIRAGANA LETTER DE;Lo;0;L;3066 3099;;;;N;;;;;
+3068;HIRAGANA LETTER TO;Lo;0;L;;;;;N;;;;;
+3069;HIRAGANA LETTER DO;Lo;0;L;3068 3099;;;;N;;;;;
+306A;HIRAGANA LETTER NA;Lo;0;L;;;;;N;;;;;
+306B;HIRAGANA LETTER NI;Lo;0;L;;;;;N;;;;;
+306C;HIRAGANA LETTER NU;Lo;0;L;;;;;N;;;;;
+306D;HIRAGANA LETTER NE;Lo;0;L;;;;;N;;;;;
+306E;HIRAGANA LETTER NO;Lo;0;L;;;;;N;;;;;
+306F;HIRAGANA LETTER HA;Lo;0;L;;;;;N;;;;;
+3070;HIRAGANA LETTER BA;Lo;0;L;306F 3099;;;;N;;;;;
+3071;HIRAGANA LETTER PA;Lo;0;L;306F 309A;;;;N;;;;;
+3072;HIRAGANA LETTER HI;Lo;0;L;;;;;N;;;;;
+3073;HIRAGANA LETTER BI;Lo;0;L;3072 3099;;;;N;;;;;
+3074;HIRAGANA LETTER PI;Lo;0;L;3072 309A;;;;N;;;;;
+3075;HIRAGANA LETTER HU;Lo;0;L;;;;;N;;;;;
+3076;HIRAGANA LETTER BU;Lo;0;L;3075 3099;;;;N;;;;;
+3077;HIRAGANA LETTER PU;Lo;0;L;3075 309A;;;;N;;;;;
+3078;HIRAGANA LETTER HE;Lo;0;L;;;;;N;;;;;
+3079;HIRAGANA LETTER BE;Lo;0;L;3078 3099;;;;N;;;;;
+307A;HIRAGANA LETTER PE;Lo;0;L;3078 309A;;;;N;;;;;
+307B;HIRAGANA LETTER HO;Lo;0;L;;;;;N;;;;;
+307C;HIRAGANA LETTER BO;Lo;0;L;307B 3099;;;;N;;;;;
+307D;HIRAGANA LETTER PO;Lo;0;L;307B 309A;;;;N;;;;;
+307E;HIRAGANA LETTER MA;Lo;0;L;;;;;N;;;;;
+307F;HIRAGANA LETTER MI;Lo;0;L;;;;;N;;;;;
+3080;HIRAGANA LETTER MU;Lo;0;L;;;;;N;;;;;
+3081;HIRAGANA LETTER ME;Lo;0;L;;;;;N;;;;;
+3082;HIRAGANA LETTER MO;Lo;0;L;;;;;N;;;;;
+3083;HIRAGANA LETTER SMALL YA;Lo;0;L;;;;;N;;;;;
+3084;HIRAGANA LETTER YA;Lo;0;L;;;;;N;;;;;
+3085;HIRAGANA LETTER SMALL YU;Lo;0;L;;;;;N;;;;;
+3086;HIRAGANA LETTER YU;Lo;0;L;;;;;N;;;;;
+3087;HIRAGANA LETTER SMALL YO;Lo;0;L;;;;;N;;;;;
+3088;HIRAGANA LETTER YO;Lo;0;L;;;;;N;;;;;
+3089;HIRAGANA LETTER RA;Lo;0;L;;;;;N;;;;;
+308A;HIRAGANA LETTER RI;Lo;0;L;;;;;N;;;;;
+308B;HIRAGANA LETTER RU;Lo;0;L;;;;;N;;;;;
+308C;HIRAGANA LETTER RE;Lo;0;L;;;;;N;;;;;
+308D;HIRAGANA LETTER RO;Lo;0;L;;;;;N;;;;;
+308E;HIRAGANA LETTER SMALL WA;Lo;0;L;;;;;N;;;;;
+308F;HIRAGANA LETTER WA;Lo;0;L;;;;;N;;;;;
+3090;HIRAGANA LETTER WI;Lo;0;L;;;;;N;;;;;
+3091;HIRAGANA LETTER WE;Lo;0;L;;;;;N;;;;;
+3092;HIRAGANA LETTER WO;Lo;0;L;;;;;N;;;;;
+3093;HIRAGANA LETTER N;Lo;0;L;;;;;N;;;;;
+3094;HIRAGANA LETTER VU;Lo;0;L;3046 3099;;;;N;;;;;
+3095;HIRAGANA LETTER SMALL KA;Lo;0;L;;;;;N;;;;;
+3096;HIRAGANA LETTER SMALL KE;Lo;0;L;;;;;N;;;;;
+3099;COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK;Mn;8;NSM;;;;;N;NON-SPACING KATAKANA-HIRAGANA VOICED SOUND MARK;;;;
+309A;COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK;Mn;8;NSM;;;;;N;NON-SPACING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK;;;;
+309B;KATAKANA-HIRAGANA VOICED SOUND MARK;Sk;0;ON;<compat> 0020 3099;;;;N;;;;;
+309C;KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK;Sk;0;ON;<compat> 0020 309A;;;;N;;;;;
+309D;HIRAGANA ITERATION MARK;Lm;0;L;;;;;N;;;;;
+309E;HIRAGANA VOICED ITERATION MARK;Lm;0;L;309D 3099;;;;N;;;;;
+309F;HIRAGANA DIGRAPH YORI;Lo;0;L;<vertical> 3088 308A;;;;N;;;;;
+30A0;KATAKANA-HIRAGANA DOUBLE HYPHEN;Pd;0;ON;;;;;N;;;;;
+30A1;KATAKANA LETTER SMALL A;Lo;0;L;;;;;N;;;;;
+30A2;KATAKANA LETTER A;Lo;0;L;;;;;N;;;;;
+30A3;KATAKANA LETTER SMALL I;Lo;0;L;;;;;N;;;;;
+30A4;KATAKANA LETTER I;Lo;0;L;;;;;N;;;;;
+30A5;KATAKANA LETTER SMALL U;Lo;0;L;;;;;N;;;;;
+30A6;KATAKANA LETTER U;Lo;0;L;;;;;N;;;;;
+30A7;KATAKANA LETTER SMALL E;Lo;0;L;;;;;N;;;;;
+30A8;KATAKANA LETTER E;Lo;0;L;;;;;N;;;;;
+30A9;KATAKANA LETTER SMALL O;Lo;0;L;;;;;N;;;;;
+30AA;KATAKANA LETTER O;Lo;0;L;;;;;N;;;;;
+30AB;KATAKANA LETTER KA;Lo;0;L;;;;;N;;;;;
+30AC;KATAKANA LETTER GA;Lo;0;L;30AB 3099;;;;N;;;;;
+30AD;KATAKANA LETTER KI;Lo;0;L;;;;;N;;;;;
+30AE;KATAKANA LETTER GI;Lo;0;L;30AD 3099;;;;N;;;;;
+30AF;KATAKANA LETTER KU;Lo;0;L;;;;;N;;;;;
+30B0;KATAKANA LETTER GU;Lo;0;L;30AF 3099;;;;N;;;;;
+30B1;KATAKANA LETTER KE;Lo;0;L;;;;;N;;;;;
+30B2;KATAKANA LETTER GE;Lo;0;L;30B1 3099;;;;N;;;;;
+30B3;KATAKANA LETTER KO;Lo;0;L;;;;;N;;;;;
+30B4;KATAKANA LETTER GO;Lo;0;L;30B3 3099;;;;N;;;;;
+30B5;KATAKANA LETTER SA;Lo;0;L;;;;;N;;;;;
+30B6;KATAKANA LETTER ZA;Lo;0;L;30B5 3099;;;;N;;;;;
+30B7;KATAKANA LETTER SI;Lo;0;L;;;;;N;;;;;
+30B8;KATAKANA LETTER ZI;Lo;0;L;30B7 3099;;;;N;;;;;
+30B9;KATAKANA LETTER SU;Lo;0;L;;;;;N;;;;;
+30BA;KATAKANA LETTER ZU;Lo;0;L;30B9 3099;;;;N;;;;;
+30BB;KATAKANA LETTER SE;Lo;0;L;;;;;N;;;;;
+30BC;KATAKANA LETTER ZE;Lo;0;L;30BB 3099;;;;N;;;;;
+30BD;KATAKANA LETTER SO;Lo;0;L;;;;;N;;;;;
+30BE;KATAKANA LETTER ZO;Lo;0;L;30BD 3099;;;;N;;;;;
+30BF;KATAKANA LETTER TA;Lo;0;L;;;;;N;;;;;
+30C0;KATAKANA LETTER DA;Lo;0;L;30BF 3099;;;;N;;;;;
+30C1;KATAKANA LETTER TI;Lo;0;L;;;;;N;;;;;
+30C2;KATAKANA LETTER DI;Lo;0;L;30C1 3099;;;;N;;;;;
+30C3;KATAKANA LETTER SMALL TU;Lo;0;L;;;;;N;;;;;
+30C4;KATAKANA LETTER TU;Lo;0;L;;;;;N;;;;;
+30C5;KATAKANA LETTER DU;Lo;0;L;30C4 3099;;;;N;;;;;
+30C6;KATAKANA LETTER TE;Lo;0;L;;;;;N;;;;;
+30C7;KATAKANA LETTER DE;Lo;0;L;30C6 3099;;;;N;;;;;
+30C8;KATAKANA LETTER TO;Lo;0;L;;;;;N;;;;;
+30C9;KATAKANA LETTER DO;Lo;0;L;30C8 3099;;;;N;;;;;
+30CA;KATAKANA LETTER NA;Lo;0;L;;;;;N;;;;;
+30CB;KATAKANA LETTER NI;Lo;0;L;;;;;N;;;;;
+30CC;KATAKANA LETTER NU;Lo;0;L;;;;;N;;;;;
+30CD;KATAKANA LETTER NE;Lo;0;L;;;;;N;;;;;
+30CE;KATAKANA LETTER NO;Lo;0;L;;;;;N;;;;;
+30CF;KATAKANA LETTER HA;Lo;0;L;;;;;N;;;;;
+30D0;KATAKANA LETTER BA;Lo;0;L;30CF 3099;;;;N;;;;;
+30D1;KATAKANA LETTER PA;Lo;0;L;30CF 309A;;;;N;;;;;
+30D2;KATAKANA LETTER HI;Lo;0;L;;;;;N;;;;;
+30D3;KATAKANA LETTER BI;Lo;0;L;30D2 3099;;;;N;;;;;
+30D4;KATAKANA LETTER PI;Lo;0;L;30D2 309A;;;;N;;;;;
+30D5;KATAKANA LETTER HU;Lo;0;L;;;;;N;;;;;
+30D6;KATAKANA LETTER BU;Lo;0;L;30D5 3099;;;;N;;;;;
+30D7;KATAKANA LETTER PU;Lo;0;L;30D5 309A;;;;N;;;;;
+30D8;KATAKANA LETTER HE;Lo;0;L;;;;;N;;;;;
+30D9;KATAKANA LETTER BE;Lo;0;L;30D8 3099;;;;N;;;;;
+30DA;KATAKANA LETTER PE;Lo;0;L;30D8 309A;;;;N;;;;;
+30DB;KATAKANA LETTER HO;Lo;0;L;;;;;N;;;;;
+30DC;KATAKANA LETTER BO;Lo;0;L;30DB 3099;;;;N;;;;;
+30DD;KATAKANA LETTER PO;Lo;0;L;30DB 309A;;;;N;;;;;
+30DE;KATAKANA LETTER MA;Lo;0;L;;;;;N;;;;;
+30DF;KATAKANA LETTER MI;Lo;0;L;;;;;N;;;;;
+30E0;KATAKANA LETTER MU;Lo;0;L;;;;;N;;;;;
+30E1;KATAKANA LETTER ME;Lo;0;L;;;;;N;;;;;
+30E2;KATAKANA LETTER MO;Lo;0;L;;;;;N;;;;;
+30E3;KATAKANA LETTER SMALL YA;Lo;0;L;;;;;N;;;;;
+30E4;KATAKANA LETTER YA;Lo;0;L;;;;;N;;;;;
+30E5;KATAKANA LETTER SMALL YU;Lo;0;L;;;;;N;;;;;
+30E6;KATAKANA LETTER YU;Lo;0;L;;;;;N;;;;;
+30E7;KATAKANA LETTER SMALL YO;Lo;0;L;;;;;N;;;;;
+30E8;KATAKANA LETTER YO;Lo;0;L;;;;;N;;;;;
+30E9;KATAKANA LETTER RA;Lo;0;L;;;;;N;;;;;
+30EA;KATAKANA LETTER RI;Lo;0;L;;;;;N;;;;;
+30EB;KATAKANA LETTER RU;Lo;0;L;;;;;N;;;;;
+30EC;KATAKANA LETTER RE;Lo;0;L;;;;;N;;;;;
+30ED;KATAKANA LETTER RO;Lo;0;L;;;;;N;;;;;
+30EE;KATAKANA LETTER SMALL WA;Lo;0;L;;;;;N;;;;;
+30EF;KATAKANA LETTER WA;Lo;0;L;;;;;N;;;;;
+30F0;KATAKANA LETTER WI;Lo;0;L;;;;;N;;;;;
+30F1;KATAKANA LETTER WE;Lo;0;L;;;;;N;;;;;
+30F2;KATAKANA LETTER WO;Lo;0;L;;;;;N;;;;;
+30F3;KATAKANA LETTER N;Lo;0;L;;;;;N;;;;;
+30F4;KATAKANA LETTER VU;Lo;0;L;30A6 3099;;;;N;;;;;
+30F5;KATAKANA LETTER SMALL KA;Lo;0;L;;;;;N;;;;;
+30F6;KATAKANA LETTER SMALL KE;Lo;0;L;;;;;N;;;;;
+30F7;KATAKANA LETTER VA;Lo;0;L;30EF 3099;;;;N;;;;;
+30F8;KATAKANA LETTER VI;Lo;0;L;30F0 3099;;;;N;;;;;
+30F9;KATAKANA LETTER VE;Lo;0;L;30F1 3099;;;;N;;;;;
+30FA;KATAKANA LETTER VO;Lo;0;L;30F2 3099;;;;N;;;;;
+30FB;KATAKANA MIDDLE DOT;Po;0;ON;;;;;N;;;;;
+30FC;KATAKANA-HIRAGANA PROLONGED SOUND MARK;Lm;0;L;;;;;N;;;;;
+30FD;KATAKANA ITERATION MARK;Lm;0;L;;;;;N;;;;;
+30FE;KATAKANA VOICED ITERATION MARK;Lm;0;L;30FD 3099;;;;N;;;;;
+30FF;KATAKANA DIGRAPH KOTO;Lo;0;L;<vertical> 30B3 30C8;;;;N;;;;;
+3105;BOPOMOFO LETTER B;Lo;0;L;;;;;N;;;;;
+3106;BOPOMOFO LETTER P;Lo;0;L;;;;;N;;;;;
+3107;BOPOMOFO LETTER M;Lo;0;L;;;;;N;;;;;
+3108;BOPOMOFO LETTER F;Lo;0;L;;;;;N;;;;;
+3109;BOPOMOFO LETTER D;Lo;0;L;;;;;N;;;;;
+310A;BOPOMOFO LETTER T;Lo;0;L;;;;;N;;;;;
+310B;BOPOMOFO LETTER N;Lo;0;L;;;;;N;;;;;
+310C;BOPOMOFO LETTER L;Lo;0;L;;;;;N;;;;;
+310D;BOPOMOFO LETTER G;Lo;0;L;;;;;N;;;;;
+310E;BOPOMOFO LETTER K;Lo;0;L;;;;;N;;;;;
+310F;BOPOMOFO LETTER H;Lo;0;L;;;;;N;;;;;
+3110;BOPOMOFO LETTER J;Lo;0;L;;;;;N;;;;;
+3111;BOPOMOFO LETTER Q;Lo;0;L;;;;;N;;;;;
+3112;BOPOMOFO LETTER X;Lo;0;L;;;;;N;;;;;
+3113;BOPOMOFO LETTER ZH;Lo;0;L;;;;;N;;;;;
+3114;BOPOMOFO LETTER CH;Lo;0;L;;;;;N;;;;;
+3115;BOPOMOFO LETTER SH;Lo;0;L;;;;;N;;;;;
+3116;BOPOMOFO LETTER R;Lo;0;L;;;;;N;;;;;
+3117;BOPOMOFO LETTER Z;Lo;0;L;;;;;N;;;;;
+3118;BOPOMOFO LETTER C;Lo;0;L;;;;;N;;;;;
+3119;BOPOMOFO LETTER S;Lo;0;L;;;;;N;;;;;
+311A;BOPOMOFO LETTER A;Lo;0;L;;;;;N;;;;;
+311B;BOPOMOFO LETTER O;Lo;0;L;;;;;N;;;;;
+311C;BOPOMOFO LETTER E;Lo;0;L;;;;;N;;;;;
+311D;BOPOMOFO LETTER EH;Lo;0;L;;;;;N;;;;;
+311E;BOPOMOFO LETTER AI;Lo;0;L;;;;;N;;;;;
+311F;BOPOMOFO LETTER EI;Lo;0;L;;;;;N;;;;;
+3120;BOPOMOFO LETTER AU;Lo;0;L;;;;;N;;;;;
+3121;BOPOMOFO LETTER OU;Lo;0;L;;;;;N;;;;;
+3122;BOPOMOFO LETTER AN;Lo;0;L;;;;;N;;;;;
+3123;BOPOMOFO LETTER EN;Lo;0;L;;;;;N;;;;;
+3124;BOPOMOFO LETTER ANG;Lo;0;L;;;;;N;;;;;
+3125;BOPOMOFO LETTER ENG;Lo;0;L;;;;;N;;;;;
+3126;BOPOMOFO LETTER ER;Lo;0;L;;;;;N;;;;;
+3127;BOPOMOFO LETTER I;Lo;0;L;;;;;N;;;;;
+3128;BOPOMOFO LETTER U;Lo;0;L;;;;;N;;;;;
+3129;BOPOMOFO LETTER IU;Lo;0;L;;;;;N;;;;;
+312A;BOPOMOFO LETTER V;Lo;0;L;;;;;N;;;;;
+312B;BOPOMOFO LETTER NG;Lo;0;L;;;;;N;;;;;
+312C;BOPOMOFO LETTER GN;Lo;0;L;;;;;N;;;;;
+3131;HANGUL LETTER KIYEOK;Lo;0;L;<compat> 1100;;;;N;HANGUL LETTER GIYEOG;;;;
+3132;HANGUL LETTER SSANGKIYEOK;Lo;0;L;<compat> 1101;;;;N;HANGUL LETTER SSANG GIYEOG;;;;
+3133;HANGUL LETTER KIYEOK-SIOS;Lo;0;L;<compat> 11AA;;;;N;HANGUL LETTER GIYEOG SIOS;;;;
+3134;HANGUL LETTER NIEUN;Lo;0;L;<compat> 1102;;;;N;;;;;
+3135;HANGUL LETTER NIEUN-CIEUC;Lo;0;L;<compat> 11AC;;;;N;HANGUL LETTER NIEUN JIEUJ;;;;
+3136;HANGUL LETTER NIEUN-HIEUH;Lo;0;L;<compat> 11AD;;;;N;HANGUL LETTER NIEUN HIEUH;;;;
+3137;HANGUL LETTER TIKEUT;Lo;0;L;<compat> 1103;;;;N;HANGUL LETTER DIGEUD;;;;
+3138;HANGUL LETTER SSANGTIKEUT;Lo;0;L;<compat> 1104;;;;N;HANGUL LETTER SSANG DIGEUD;;;;
+3139;HANGUL LETTER RIEUL;Lo;0;L;<compat> 1105;;;;N;HANGUL LETTER LIEUL;;;;
+313A;HANGUL LETTER RIEUL-KIYEOK;Lo;0;L;<compat> 11B0;;;;N;HANGUL LETTER LIEUL GIYEOG;;;;
+313B;HANGUL LETTER RIEUL-MIEUM;Lo;0;L;<compat> 11B1;;;;N;HANGUL LETTER LIEUL MIEUM;;;;
+313C;HANGUL LETTER RIEUL-PIEUP;Lo;0;L;<compat> 11B2;;;;N;HANGUL LETTER LIEUL BIEUB;;;;
+313D;HANGUL LETTER RIEUL-SIOS;Lo;0;L;<compat> 11B3;;;;N;HANGUL LETTER LIEUL SIOS;;;;
+313E;HANGUL LETTER RIEUL-THIEUTH;Lo;0;L;<compat> 11B4;;;;N;HANGUL LETTER LIEUL TIEUT;;;;
+313F;HANGUL LETTER RIEUL-PHIEUPH;Lo;0;L;<compat> 11B5;;;;N;HANGUL LETTER LIEUL PIEUP;;;;
+3140;HANGUL LETTER RIEUL-HIEUH;Lo;0;L;<compat> 111A;;;;N;HANGUL LETTER LIEUL HIEUH;;;;
+3141;HANGUL LETTER MIEUM;Lo;0;L;<compat> 1106;;;;N;;;;;
+3142;HANGUL LETTER PIEUP;Lo;0;L;<compat> 1107;;;;N;HANGUL LETTER BIEUB;;;;
+3143;HANGUL LETTER SSANGPIEUP;Lo;0;L;<compat> 1108;;;;N;HANGUL LETTER SSANG BIEUB;;;;
+3144;HANGUL LETTER PIEUP-SIOS;Lo;0;L;<compat> 1121;;;;N;HANGUL LETTER BIEUB SIOS;;;;
+3145;HANGUL LETTER SIOS;Lo;0;L;<compat> 1109;;;;N;;;;;
+3146;HANGUL LETTER SSANGSIOS;Lo;0;L;<compat> 110A;;;;N;HANGUL LETTER SSANG SIOS;;;;
+3147;HANGUL LETTER IEUNG;Lo;0;L;<compat> 110B;;;;N;;;;;
+3148;HANGUL LETTER CIEUC;Lo;0;L;<compat> 110C;;;;N;HANGUL LETTER JIEUJ;;;;
+3149;HANGUL LETTER SSANGCIEUC;Lo;0;L;<compat> 110D;;;;N;HANGUL LETTER SSANG JIEUJ;;;;
+314A;HANGUL LETTER CHIEUCH;Lo;0;L;<compat> 110E;;;;N;HANGUL LETTER CIEUC;;;;
+314B;HANGUL LETTER KHIEUKH;Lo;0;L;<compat> 110F;;;;N;HANGUL LETTER KIYEOK;;;;
+314C;HANGUL LETTER THIEUTH;Lo;0;L;<compat> 1110;;;;N;HANGUL LETTER TIEUT;;;;
+314D;HANGUL LETTER PHIEUPH;Lo;0;L;<compat> 1111;;;;N;HANGUL LETTER PIEUP;;;;
+314E;HANGUL LETTER HIEUH;Lo;0;L;<compat> 1112;;;;N;;;;;
+314F;HANGUL LETTER A;Lo;0;L;<compat> 1161;;;;N;;;;;
+3150;HANGUL LETTER AE;Lo;0;L;<compat> 1162;;;;N;;;;;
+3151;HANGUL LETTER YA;Lo;0;L;<compat> 1163;;;;N;;;;;
+3152;HANGUL LETTER YAE;Lo;0;L;<compat> 1164;;;;N;;;;;
+3153;HANGUL LETTER EO;Lo;0;L;<compat> 1165;;;;N;;;;;
+3154;HANGUL LETTER E;Lo;0;L;<compat> 1166;;;;N;;;;;
+3155;HANGUL LETTER YEO;Lo;0;L;<compat> 1167;;;;N;;;;;
+3156;HANGUL LETTER YE;Lo;0;L;<compat> 1168;;;;N;;;;;
+3157;HANGUL LETTER O;Lo;0;L;<compat> 1169;;;;N;;;;;
+3158;HANGUL LETTER WA;Lo;0;L;<compat> 116A;;;;N;;;;;
+3159;HANGUL LETTER WAE;Lo;0;L;<compat> 116B;;;;N;;;;;
+315A;HANGUL LETTER OE;Lo;0;L;<compat> 116C;;;;N;;;;;
+315B;HANGUL LETTER YO;Lo;0;L;<compat> 116D;;;;N;;;;;
+315C;HANGUL LETTER U;Lo;0;L;<compat> 116E;;;;N;;;;;
+315D;HANGUL LETTER WEO;Lo;0;L;<compat> 116F;;;;N;;;;;
+315E;HANGUL LETTER WE;Lo;0;L;<compat> 1170;;;;N;;;;;
+315F;HANGUL LETTER WI;Lo;0;L;<compat> 1171;;;;N;;;;;
+3160;HANGUL LETTER YU;Lo;0;L;<compat> 1172;;;;N;;;;;
+3161;HANGUL LETTER EU;Lo;0;L;<compat> 1173;;;;N;;;;;
+3162;HANGUL LETTER YI;Lo;0;L;<compat> 1174;;;;N;;;;;
+3163;HANGUL LETTER I;Lo;0;L;<compat> 1175;;;;N;;;;;
+3164;HANGUL FILLER;Lo;0;L;<compat> 1160;;;;N;HANGUL CAE OM;;;;
+3165;HANGUL LETTER SSANGNIEUN;Lo;0;L;<compat> 1114;;;;N;HANGUL LETTER SSANG NIEUN;;;;
+3166;HANGUL LETTER NIEUN-TIKEUT;Lo;0;L;<compat> 1115;;;;N;HANGUL LETTER NIEUN DIGEUD;;;;
+3167;HANGUL LETTER NIEUN-SIOS;Lo;0;L;<compat> 11C7;;;;N;HANGUL LETTER NIEUN SIOS;;;;
+3168;HANGUL LETTER NIEUN-PANSIOS;Lo;0;L;<compat> 11C8;;;;N;HANGUL LETTER NIEUN BAN CHI EUM;;;;
+3169;HANGUL LETTER RIEUL-KIYEOK-SIOS;Lo;0;L;<compat> 11CC;;;;N;HANGUL LETTER LIEUL GIYEOG SIOS;;;;
+316A;HANGUL LETTER RIEUL-TIKEUT;Lo;0;L;<compat> 11CE;;;;N;HANGUL LETTER LIEUL DIGEUD;;;;
+316B;HANGUL LETTER RIEUL-PIEUP-SIOS;Lo;0;L;<compat> 11D3;;;;N;HANGUL LETTER LIEUL BIEUB SIOS;;;;
+316C;HANGUL LETTER RIEUL-PANSIOS;Lo;0;L;<compat> 11D7;;;;N;HANGUL LETTER LIEUL BAN CHI EUM;;;;
+316D;HANGUL LETTER RIEUL-YEORINHIEUH;Lo;0;L;<compat> 11D9;;;;N;HANGUL LETTER LIEUL YEOLIN HIEUH;;;;
+316E;HANGUL LETTER MIEUM-PIEUP;Lo;0;L;<compat> 111C;;;;N;HANGUL LETTER MIEUM BIEUB;;;;
+316F;HANGUL LETTER MIEUM-SIOS;Lo;0;L;<compat> 11DD;;;;N;HANGUL LETTER MIEUM SIOS;;;;
+3170;HANGUL LETTER MIEUM-PANSIOS;Lo;0;L;<compat> 11DF;;;;N;HANGUL LETTER BIEUB BAN CHI EUM;;;;
+3171;HANGUL LETTER KAPYEOUNMIEUM;Lo;0;L;<compat> 111D;;;;N;HANGUL LETTER MIEUM SUN GYEONG EUM;;;;
+3172;HANGUL LETTER PIEUP-KIYEOK;Lo;0;L;<compat> 111E;;;;N;HANGUL LETTER BIEUB GIYEOG;;;;
+3173;HANGUL LETTER PIEUP-TIKEUT;Lo;0;L;<compat> 1120;;;;N;HANGUL LETTER BIEUB DIGEUD;;;;
+3174;HANGUL LETTER PIEUP-SIOS-KIYEOK;Lo;0;L;<compat> 1122;;;;N;HANGUL LETTER BIEUB SIOS GIYEOG;;;;
+3175;HANGUL LETTER PIEUP-SIOS-TIKEUT;Lo;0;L;<compat> 1123;;;;N;HANGUL LETTER BIEUB SIOS DIGEUD;;;;
+3176;HANGUL LETTER PIEUP-CIEUC;Lo;0;L;<compat> 1127;;;;N;HANGUL LETTER BIEUB JIEUJ;;;;
+3177;HANGUL LETTER PIEUP-THIEUTH;Lo;0;L;<compat> 1129;;;;N;HANGUL LETTER BIEUB TIEUT;;;;
+3178;HANGUL LETTER KAPYEOUNPIEUP;Lo;0;L;<compat> 112B;;;;N;HANGUL LETTER BIEUB SUN GYEONG EUM;;;;
+3179;HANGUL LETTER KAPYEOUNSSANGPIEUP;Lo;0;L;<compat> 112C;;;;N;HANGUL LETTER SSANG BIEUB SUN GYEONG EUM;;;;
+317A;HANGUL LETTER SIOS-KIYEOK;Lo;0;L;<compat> 112D;;;;N;HANGUL LETTER SIOS GIYEOG;;;;
+317B;HANGUL LETTER SIOS-NIEUN;Lo;0;L;<compat> 112E;;;;N;HANGUL LETTER SIOS NIEUN;;;;
+317C;HANGUL LETTER SIOS-TIKEUT;Lo;0;L;<compat> 112F;;;;N;HANGUL LETTER SIOS DIGEUD;;;;
+317D;HANGUL LETTER SIOS-PIEUP;Lo;0;L;<compat> 1132;;;;N;HANGUL LETTER SIOS BIEUB;;;;
+317E;HANGUL LETTER SIOS-CIEUC;Lo;0;L;<compat> 1136;;;;N;HANGUL LETTER SIOS JIEUJ;;;;
+317F;HANGUL LETTER PANSIOS;Lo;0;L;<compat> 1140;;;;N;HANGUL LETTER BAN CHI EUM;;;;
+3180;HANGUL LETTER SSANGIEUNG;Lo;0;L;<compat> 1147;;;;N;HANGUL LETTER SSANG IEUNG;;;;
+3181;HANGUL LETTER YESIEUNG;Lo;0;L;<compat> 114C;;;;N;HANGUL LETTER NGIEUNG;;;;
+3182;HANGUL LETTER YESIEUNG-SIOS;Lo;0;L;<compat> 11F1;;;;N;HANGUL LETTER NGIEUNG SIOS;;;;
+3183;HANGUL LETTER YESIEUNG-PANSIOS;Lo;0;L;<compat> 11F2;;;;N;HANGUL LETTER NGIEUNG BAN CHI EUM;;;;
+3184;HANGUL LETTER KAPYEOUNPHIEUPH;Lo;0;L;<compat> 1157;;;;N;HANGUL LETTER PIEUP SUN GYEONG EUM;;;;
+3185;HANGUL LETTER SSANGHIEUH;Lo;0;L;<compat> 1158;;;;N;HANGUL LETTER SSANG HIEUH;;;;
+3186;HANGUL LETTER YEORINHIEUH;Lo;0;L;<compat> 1159;;;;N;HANGUL LETTER YEOLIN HIEUH;;;;
+3187;HANGUL LETTER YO-YA;Lo;0;L;<compat> 1184;;;;N;HANGUL LETTER YOYA;;;;
+3188;HANGUL LETTER YO-YAE;Lo;0;L;<compat> 1185;;;;N;HANGUL LETTER YOYAE;;;;
+3189;HANGUL LETTER YO-I;Lo;0;L;<compat> 1188;;;;N;HANGUL LETTER YOI;;;;
+318A;HANGUL LETTER YU-YEO;Lo;0;L;<compat> 1191;;;;N;HANGUL LETTER YUYEO;;;;
+318B;HANGUL LETTER YU-YE;Lo;0;L;<compat> 1192;;;;N;HANGUL LETTER YUYE;;;;
+318C;HANGUL LETTER YU-I;Lo;0;L;<compat> 1194;;;;N;HANGUL LETTER YUI;;;;
+318D;HANGUL LETTER ARAEA;Lo;0;L;<compat> 119E;;;;N;HANGUL LETTER ALAE A;;;;
+318E;HANGUL LETTER ARAEAE;Lo;0;L;<compat> 11A1;;;;N;HANGUL LETTER ALAE AE;;;;
+3190;IDEOGRAPHIC ANNOTATION LINKING MARK;So;0;L;;;;;N;KANBUN TATETEN;Kanbun Tateten;;;
+3191;IDEOGRAPHIC ANNOTATION REVERSE MARK;So;0;L;;;;;N;KAERITEN RE;Kaeriten;;;
+3192;IDEOGRAPHIC ANNOTATION ONE MARK;No;0;L;<super> 4E00;;;1;N;KAERITEN ITI;Kaeriten;;;
+3193;IDEOGRAPHIC ANNOTATION TWO MARK;No;0;L;<super> 4E8C;;;2;N;KAERITEN NI;Kaeriten;;;
+3194;IDEOGRAPHIC ANNOTATION THREE MARK;No;0;L;<super> 4E09;;;3;N;KAERITEN SAN;Kaeriten;;;
+3195;IDEOGRAPHIC ANNOTATION FOUR MARK;No;0;L;<super> 56DB;;;4;N;KAERITEN SI;Kaeriten;;;
+3196;IDEOGRAPHIC ANNOTATION TOP MARK;So;0;L;<super> 4E0A;;;;N;KAERITEN ZYOU;Kaeriten;;;
+3197;IDEOGRAPHIC ANNOTATION MIDDLE MARK;So;0;L;<super> 4E2D;;;;N;KAERITEN TYUU;Kaeriten;;;
+3198;IDEOGRAPHIC ANNOTATION BOTTOM MARK;So;0;L;<super> 4E0B;;;;N;KAERITEN GE;Kaeriten;;;
+3199;IDEOGRAPHIC ANNOTATION FIRST MARK;So;0;L;<super> 7532;;;;N;KAERITEN KOU;Kaeriten;;;
+319A;IDEOGRAPHIC ANNOTATION SECOND MARK;So;0;L;<super> 4E59;;;;N;KAERITEN OTU;Kaeriten;;;
+319B;IDEOGRAPHIC ANNOTATION THIRD MARK;So;0;L;<super> 4E19;;;;N;KAERITEN HEI;Kaeriten;;;
+319C;IDEOGRAPHIC ANNOTATION FOURTH MARK;So;0;L;<super> 4E01;;;;N;KAERITEN TEI;Kaeriten;;;
+319D;IDEOGRAPHIC ANNOTATION HEAVEN MARK;So;0;L;<super> 5929;;;;N;KAERITEN TEN;Kaeriten;;;
+319E;IDEOGRAPHIC ANNOTATION EARTH MARK;So;0;L;<super> 5730;;;;N;KAERITEN TI;Kaeriten;;;
+319F;IDEOGRAPHIC ANNOTATION MAN MARK;So;0;L;<super> 4EBA;;;;N;KAERITEN ZIN;Kaeriten;;;
+31A0;BOPOMOFO LETTER BU;Lo;0;L;;;;;N;;;;;
+31A1;BOPOMOFO LETTER ZI;Lo;0;L;;;;;N;;;;;
+31A2;BOPOMOFO LETTER JI;Lo;0;L;;;;;N;;;;;
+31A3;BOPOMOFO LETTER GU;Lo;0;L;;;;;N;;;;;
+31A4;BOPOMOFO LETTER EE;Lo;0;L;;;;;N;;;;;
+31A5;BOPOMOFO LETTER ENN;Lo;0;L;;;;;N;;;;;
+31A6;BOPOMOFO LETTER OO;Lo;0;L;;;;;N;;;;;
+31A7;BOPOMOFO LETTER ONN;Lo;0;L;;;;;N;;;;;
+31A8;BOPOMOFO LETTER IR;Lo;0;L;;;;;N;;;;;
+31A9;BOPOMOFO LETTER ANN;Lo;0;L;;;;;N;;;;;
+31AA;BOPOMOFO LETTER INN;Lo;0;L;;;;;N;;;;;
+31AB;BOPOMOFO LETTER UNN;Lo;0;L;;;;;N;;;;;
+31AC;BOPOMOFO LETTER IM;Lo;0;L;;;;;N;;;;;
+31AD;BOPOMOFO LETTER NGG;Lo;0;L;;;;;N;;;;;
+31AE;BOPOMOFO LETTER AINN;Lo;0;L;;;;;N;;;;;
+31AF;BOPOMOFO LETTER AUNN;Lo;0;L;;;;;N;;;;;
+31B0;BOPOMOFO LETTER AM;Lo;0;L;;;;;N;;;;;
+31B1;BOPOMOFO LETTER OM;Lo;0;L;;;;;N;;;;;
+31B2;BOPOMOFO LETTER ONG;Lo;0;L;;;;;N;;;;;
+31B3;BOPOMOFO LETTER INNN;Lo;0;L;;;;;N;;;;;
+31B4;BOPOMOFO FINAL LETTER P;Lo;0;L;;;;;N;;;;;
+31B5;BOPOMOFO FINAL LETTER T;Lo;0;L;;;;;N;;;;;
+31B6;BOPOMOFO FINAL LETTER K;Lo;0;L;;;;;N;;;;;
+31B7;BOPOMOFO FINAL LETTER H;Lo;0;L;;;;;N;;;;;
+31C0;CJK STROKE T;So;0;ON;;;;;N;;;;;
+31C1;CJK STROKE WG;So;0;ON;;;;;N;;;;;
+31C2;CJK STROKE XG;So;0;ON;;;;;N;;;;;
+31C3;CJK STROKE BXG;So;0;ON;;;;;N;;;;;
+31C4;CJK STROKE SW;So;0;ON;;;;;N;;;;;
+31C5;CJK STROKE HZZ;So;0;ON;;;;;N;;;;;
+31C6;CJK STROKE HZG;So;0;ON;;;;;N;;;;;
+31C7;CJK STROKE HP;So;0;ON;;;;;N;;;;;
+31C8;CJK STROKE HZWG;So;0;ON;;;;;N;;;;;
+31C9;CJK STROKE SZWG;So;0;ON;;;;;N;;;;;
+31CA;CJK STROKE HZT;So;0;ON;;;;;N;;;;;
+31CB;CJK STROKE HZZP;So;0;ON;;;;;N;;;;;
+31CC;CJK STROKE HPWG;So;0;ON;;;;;N;;;;;
+31CD;CJK STROKE HZW;So;0;ON;;;;;N;;;;;
+31CE;CJK STROKE HZZZ;So;0;ON;;;;;N;;;;;
+31CF;CJK STROKE N;So;0;ON;;;;;N;;;;;
+31F0;KATAKANA LETTER SMALL KU;Lo;0;L;;;;;N;;;;;
+31F1;KATAKANA LETTER SMALL SI;Lo;0;L;;;;;N;;;;;
+31F2;KATAKANA LETTER SMALL SU;Lo;0;L;;;;;N;;;;;
+31F3;KATAKANA LETTER SMALL TO;Lo;0;L;;;;;N;;;;;
+31F4;KATAKANA LETTER SMALL NU;Lo;0;L;;;;;N;;;;;
+31F5;KATAKANA LETTER SMALL HA;Lo;0;L;;;;;N;;;;;
+31F6;KATAKANA LETTER SMALL HI;Lo;0;L;;;;;N;;;;;
+31F7;KATAKANA LETTER SMALL HU;Lo;0;L;;;;;N;;;;;
+31F8;KATAKANA LETTER SMALL HE;Lo;0;L;;;;;N;;;;;
+31F9;KATAKANA LETTER SMALL HO;Lo;0;L;;;;;N;;;;;
+31FA;KATAKANA LETTER SMALL MU;Lo;0;L;;;;;N;;;;;
+31FB;KATAKANA LETTER SMALL RA;Lo;0;L;;;;;N;;;;;
+31FC;KATAKANA LETTER SMALL RI;Lo;0;L;;;;;N;;;;;
+31FD;KATAKANA LETTER SMALL RU;Lo;0;L;;;;;N;;;;;
+31FE;KATAKANA LETTER SMALL RE;Lo;0;L;;;;;N;;;;;
+31FF;KATAKANA LETTER SMALL RO;Lo;0;L;;;;;N;;;;;
+3200;PARENTHESIZED HANGUL KIYEOK;So;0;L;<compat> 0028 1100 0029;;;;N;PARENTHESIZED HANGUL GIYEOG;;;;
+3201;PARENTHESIZED HANGUL NIEUN;So;0;L;<compat> 0028 1102 0029;;;;N;;;;;
+3202;PARENTHESIZED HANGUL TIKEUT;So;0;L;<compat> 0028 1103 0029;;;;N;PARENTHESIZED HANGUL DIGEUD;;;;
+3203;PARENTHESIZED HANGUL RIEUL;So;0;L;<compat> 0028 1105 0029;;;;N;PARENTHESIZED HANGUL LIEUL;;;;
+3204;PARENTHESIZED HANGUL MIEUM;So;0;L;<compat> 0028 1106 0029;;;;N;;;;;
+3205;PARENTHESIZED HANGUL PIEUP;So;0;L;<compat> 0028 1107 0029;;;;N;PARENTHESIZED HANGUL BIEUB;;;;
+3206;PARENTHESIZED HANGUL SIOS;So;0;L;<compat> 0028 1109 0029;;;;N;;;;;
+3207;PARENTHESIZED HANGUL IEUNG;So;0;L;<compat> 0028 110B 0029;;;;N;;;;;
+3208;PARENTHESIZED HANGUL CIEUC;So;0;L;<compat> 0028 110C 0029;;;;N;PARENTHESIZED HANGUL JIEUJ;;;;
+3209;PARENTHESIZED HANGUL CHIEUCH;So;0;L;<compat> 0028 110E 0029;;;;N;PARENTHESIZED HANGUL CIEUC;;;;
+320A;PARENTHESIZED HANGUL KHIEUKH;So;0;L;<compat> 0028 110F 0029;;;;N;PARENTHESIZED HANGUL KIYEOK;;;;
+320B;PARENTHESIZED HANGUL THIEUTH;So;0;L;<compat> 0028 1110 0029;;;;N;PARENTHESIZED HANGUL TIEUT;;;;
+320C;PARENTHESIZED HANGUL PHIEUPH;So;0;L;<compat> 0028 1111 0029;;;;N;PARENTHESIZED HANGUL PIEUP;;;;
+320D;PARENTHESIZED HANGUL HIEUH;So;0;L;<compat> 0028 1112 0029;;;;N;;;;;
+320E;PARENTHESIZED HANGUL KIYEOK A;So;0;L;<compat> 0028 1100 1161 0029;;;;N;PARENTHESIZED HANGUL GA;;;;
+320F;PARENTHESIZED HANGUL NIEUN A;So;0;L;<compat> 0028 1102 1161 0029;;;;N;PARENTHESIZED HANGUL NA;;;;
+3210;PARENTHESIZED HANGUL TIKEUT A;So;0;L;<compat> 0028 1103 1161 0029;;;;N;PARENTHESIZED HANGUL DA;;;;
+3211;PARENTHESIZED HANGUL RIEUL A;So;0;L;<compat> 0028 1105 1161 0029;;;;N;PARENTHESIZED HANGUL LA;;;;
+3212;PARENTHESIZED HANGUL MIEUM A;So;0;L;<compat> 0028 1106 1161 0029;;;;N;PARENTHESIZED HANGUL MA;;;;
+3213;PARENTHESIZED HANGUL PIEUP A;So;0;L;<compat> 0028 1107 1161 0029;;;;N;PARENTHESIZED HANGUL BA;;;;
+3214;PARENTHESIZED HANGUL SIOS A;So;0;L;<compat> 0028 1109 1161 0029;;;;N;PARENTHESIZED HANGUL SA;;;;
+3215;PARENTHESIZED HANGUL IEUNG A;So;0;L;<compat> 0028 110B 1161 0029;;;;N;PARENTHESIZED HANGUL A;;;;
+3216;PARENTHESIZED HANGUL CIEUC A;So;0;L;<compat> 0028 110C 1161 0029;;;;N;PARENTHESIZED HANGUL JA;;;;
+3217;PARENTHESIZED HANGUL CHIEUCH A;So;0;L;<compat> 0028 110E 1161 0029;;;;N;PARENTHESIZED HANGUL CA;;;;
+3218;PARENTHESIZED HANGUL KHIEUKH A;So;0;L;<compat> 0028 110F 1161 0029;;;;N;PARENTHESIZED HANGUL KA;;;;
+3219;PARENTHESIZED HANGUL THIEUTH A;So;0;L;<compat> 0028 1110 1161 0029;;;;N;PARENTHESIZED HANGUL TA;;;;
+321A;PARENTHESIZED HANGUL PHIEUPH A;So;0;L;<compat> 0028 1111 1161 0029;;;;N;PARENTHESIZED HANGUL PA;;;;
+321B;PARENTHESIZED HANGUL HIEUH A;So;0;L;<compat> 0028 1112 1161 0029;;;;N;PARENTHESIZED HANGUL HA;;;;
+321C;PARENTHESIZED HANGUL CIEUC U;So;0;L;<compat> 0028 110C 116E 0029;;;;N;PARENTHESIZED HANGUL JU;;;;
+321D;PARENTHESIZED KOREAN CHARACTER OJEON;So;0;ON;<compat> 0028 110B 1169 110C 1165 11AB 0029;;;;N;;;;;
+321E;PARENTHESIZED KOREAN CHARACTER O HU;So;0;ON;<compat> 0028 110B 1169 1112 116E 0029;;;;N;;;;;
+3220;PARENTHESIZED IDEOGRAPH ONE;No;0;L;<compat> 0028 4E00 0029;;;1;N;;;;;
+3221;PARENTHESIZED IDEOGRAPH TWO;No;0;L;<compat> 0028 4E8C 0029;;;2;N;;;;;
+3222;PARENTHESIZED IDEOGRAPH THREE;No;0;L;<compat> 0028 4E09 0029;;;3;N;;;;;
+3223;PARENTHESIZED IDEOGRAPH FOUR;No;0;L;<compat> 0028 56DB 0029;;;4;N;;;;;
+3224;PARENTHESIZED IDEOGRAPH FIVE;No;0;L;<compat> 0028 4E94 0029;;;5;N;;;;;
+3225;PARENTHESIZED IDEOGRAPH SIX;No;0;L;<compat> 0028 516D 0029;;;6;N;;;;;
+3226;PARENTHESIZED IDEOGRAPH SEVEN;No;0;L;<compat> 0028 4E03 0029;;;7;N;;;;;
+3227;PARENTHESIZED IDEOGRAPH EIGHT;No;0;L;<compat> 0028 516B 0029;;;8;N;;;;;
+3228;PARENTHESIZED IDEOGRAPH NINE;No;0;L;<compat> 0028 4E5D 0029;;;9;N;;;;;
+3229;PARENTHESIZED IDEOGRAPH TEN;No;0;L;<compat> 0028 5341 0029;;;10;N;;;;;
+322A;PARENTHESIZED IDEOGRAPH MOON;So;0;L;<compat> 0028 6708 0029;;;;N;;;;;
+322B;PARENTHESIZED IDEOGRAPH FIRE;So;0;L;<compat> 0028 706B 0029;;;;N;;;;;
+322C;PARENTHESIZED IDEOGRAPH WATER;So;0;L;<compat> 0028 6C34 0029;;;;N;;;;;
+322D;PARENTHESIZED IDEOGRAPH WOOD;So;0;L;<compat> 0028 6728 0029;;;;N;;;;;
+322E;PARENTHESIZED IDEOGRAPH METAL;So;0;L;<compat> 0028 91D1 0029;;;;N;;;;;
+322F;PARENTHESIZED IDEOGRAPH EARTH;So;0;L;<compat> 0028 571F 0029;;;;N;;;;;
+3230;PARENTHESIZED IDEOGRAPH SUN;So;0;L;<compat> 0028 65E5 0029;;;;N;;;;;
+3231;PARENTHESIZED IDEOGRAPH STOCK;So;0;L;<compat> 0028 682A 0029;;;;N;;;;;
+3232;PARENTHESIZED IDEOGRAPH HAVE;So;0;L;<compat> 0028 6709 0029;;;;N;;;;;
+3233;PARENTHESIZED IDEOGRAPH SOCIETY;So;0;L;<compat> 0028 793E 0029;;;;N;;;;;
+3234;PARENTHESIZED IDEOGRAPH NAME;So;0;L;<compat> 0028 540D 0029;;;;N;;;;;
+3235;PARENTHESIZED IDEOGRAPH SPECIAL;So;0;L;<compat> 0028 7279 0029;;;;N;;;;;
+3236;PARENTHESIZED IDEOGRAPH FINANCIAL;So;0;L;<compat> 0028 8CA1 0029;;;;N;;;;;
+3237;PARENTHESIZED IDEOGRAPH CONGRATULATION;So;0;L;<compat> 0028 795D 0029;;;;N;;;;;
+3238;PARENTHESIZED IDEOGRAPH LABOR;So;0;L;<compat> 0028 52B4 0029;;;;N;;;;;
+3239;PARENTHESIZED IDEOGRAPH REPRESENT;So;0;L;<compat> 0028 4EE3 0029;;;;N;;;;;
+323A;PARENTHESIZED IDEOGRAPH CALL;So;0;L;<compat> 0028 547C 0029;;;;N;;;;;
+323B;PARENTHESIZED IDEOGRAPH STUDY;So;0;L;<compat> 0028 5B66 0029;;;;N;;;;;
+323C;PARENTHESIZED IDEOGRAPH SUPERVISE;So;0;L;<compat> 0028 76E3 0029;;;;N;;;;;
+323D;PARENTHESIZED IDEOGRAPH ENTERPRISE;So;0;L;<compat> 0028 4F01 0029;;;;N;;;;;
+323E;PARENTHESIZED IDEOGRAPH RESOURCE;So;0;L;<compat> 0028 8CC7 0029;;;;N;;;;;
+323F;PARENTHESIZED IDEOGRAPH ALLIANCE;So;0;L;<compat> 0028 5354 0029;;;;N;;;;;
+3240;PARENTHESIZED IDEOGRAPH FESTIVAL;So;0;L;<compat> 0028 796D 0029;;;;N;;;;;
+3241;PARENTHESIZED IDEOGRAPH REST;So;0;L;<compat> 0028 4F11 0029;;;;N;;;;;
+3242;PARENTHESIZED IDEOGRAPH SELF;So;0;L;<compat> 0028 81EA 0029;;;;N;;;;;
+3243;PARENTHESIZED IDEOGRAPH REACH;So;0;L;<compat> 0028 81F3 0029;;;;N;;;;;
+3250;PARTNERSHIP SIGN;So;0;ON;<square> 0050 0054 0045;;;;N;;;;;
+3251;CIRCLED NUMBER TWENTY ONE;No;0;ON;<circle> 0032 0031;;;21;N;;;;;
+3252;CIRCLED NUMBER TWENTY TWO;No;0;ON;<circle> 0032 0032;;;22;N;;;;;
+3253;CIRCLED NUMBER TWENTY THREE;No;0;ON;<circle> 0032 0033;;;23;N;;;;;
+3254;CIRCLED NUMBER TWENTY FOUR;No;0;ON;<circle> 0032 0034;;;24;N;;;;;
+3255;CIRCLED NUMBER TWENTY FIVE;No;0;ON;<circle> 0032 0035;;;25;N;;;;;
+3256;CIRCLED NUMBER TWENTY SIX;No;0;ON;<circle> 0032 0036;;;26;N;;;;;
+3257;CIRCLED NUMBER TWENTY SEVEN;No;0;ON;<circle> 0032 0037;;;27;N;;;;;
+3258;CIRCLED NUMBER TWENTY EIGHT;No;0;ON;<circle> 0032 0038;;;28;N;;;;;
+3259;CIRCLED NUMBER TWENTY NINE;No;0;ON;<circle> 0032 0039;;;29;N;;;;;
+325A;CIRCLED NUMBER THIRTY;No;0;ON;<circle> 0033 0030;;;30;N;;;;;
+325B;CIRCLED NUMBER THIRTY ONE;No;0;ON;<circle> 0033 0031;;;31;N;;;;;
+325C;CIRCLED NUMBER THIRTY TWO;No;0;ON;<circle> 0033 0032;;;32;N;;;;;
+325D;CIRCLED NUMBER THIRTY THREE;No;0;ON;<circle> 0033 0033;;;33;N;;;;;
+325E;CIRCLED NUMBER THIRTY FOUR;No;0;ON;<circle> 0033 0034;;;34;N;;;;;
+325F;CIRCLED NUMBER THIRTY FIVE;No;0;ON;<circle> 0033 0035;;;35;N;;;;;
+3260;CIRCLED HANGUL KIYEOK;So;0;L;<circle> 1100;;;;N;CIRCLED HANGUL GIYEOG;;;;
+3261;CIRCLED HANGUL NIEUN;So;0;L;<circle> 1102;;;;N;;;;;
+3262;CIRCLED HANGUL TIKEUT;So;0;L;<circle> 1103;;;;N;CIRCLED HANGUL DIGEUD;;;;
+3263;CIRCLED HANGUL RIEUL;So;0;L;<circle> 1105;;;;N;CIRCLED HANGUL LIEUL;;;;
+3264;CIRCLED HANGUL MIEUM;So;0;L;<circle> 1106;;;;N;;;;;
+3265;CIRCLED HANGUL PIEUP;So;0;L;<circle> 1107;;;;N;CIRCLED HANGUL BIEUB;;;;
+3266;CIRCLED HANGUL SIOS;So;0;L;<circle> 1109;;;;N;;;;;
+3267;CIRCLED HANGUL IEUNG;So;0;L;<circle> 110B;;;;N;;;;;
+3268;CIRCLED HANGUL CIEUC;So;0;L;<circle> 110C;;;;N;CIRCLED HANGUL JIEUJ;;;;
+3269;CIRCLED HANGUL CHIEUCH;So;0;L;<circle> 110E;;;;N;CIRCLED HANGUL CIEUC;;;;
+326A;CIRCLED HANGUL KHIEUKH;So;0;L;<circle> 110F;;;;N;CIRCLED HANGUL KIYEOK;;;;
+326B;CIRCLED HANGUL THIEUTH;So;0;L;<circle> 1110;;;;N;CIRCLED HANGUL TIEUT;;;;
+326C;CIRCLED HANGUL PHIEUPH;So;0;L;<circle> 1111;;;;N;CIRCLED HANGUL PIEUP;;;;
+326D;CIRCLED HANGUL HIEUH;So;0;L;<circle> 1112;;;;N;;;;;
+326E;CIRCLED HANGUL KIYEOK A;So;0;L;<circle> 1100 1161;;;;N;CIRCLED HANGUL GA;;;;
+326F;CIRCLED HANGUL NIEUN A;So;0;L;<circle> 1102 1161;;;;N;CIRCLED HANGUL NA;;;;
+3270;CIRCLED HANGUL TIKEUT A;So;0;L;<circle> 1103 1161;;;;N;CIRCLED HANGUL DA;;;;
+3271;CIRCLED HANGUL RIEUL A;So;0;L;<circle> 1105 1161;;;;N;CIRCLED HANGUL LA;;;;
+3272;CIRCLED HANGUL MIEUM A;So;0;L;<circle> 1106 1161;;;;N;CIRCLED HANGUL MA;;;;
+3273;CIRCLED HANGUL PIEUP A;So;0;L;<circle> 1107 1161;;;;N;CIRCLED HANGUL BA;;;;
+3274;CIRCLED HANGUL SIOS A;So;0;L;<circle> 1109 1161;;;;N;CIRCLED HANGUL SA;;;;
+3275;CIRCLED HANGUL IEUNG A;So;0;L;<circle> 110B 1161;;;;N;CIRCLED HANGUL A;;;;
+3276;CIRCLED HANGUL CIEUC A;So;0;L;<circle> 110C 1161;;;;N;CIRCLED HANGUL JA;;;;
+3277;CIRCLED HANGUL CHIEUCH A;So;0;L;<circle> 110E 1161;;;;N;CIRCLED HANGUL CA;;;;
+3278;CIRCLED HANGUL KHIEUKH A;So;0;L;<circle> 110F 1161;;;;N;CIRCLED HANGUL KA;;;;
+3279;CIRCLED HANGUL THIEUTH A;So;0;L;<circle> 1110 1161;;;;N;CIRCLED HANGUL TA;;;;
+327A;CIRCLED HANGUL PHIEUPH A;So;0;L;<circle> 1111 1161;;;;N;CIRCLED HANGUL PA;;;;
+327B;CIRCLED HANGUL HIEUH A;So;0;L;<circle> 1112 1161;;;;N;CIRCLED HANGUL HA;;;;
+327C;CIRCLED KOREAN CHARACTER CHAMKO;So;0;ON;<circle> 110E 1161 11B7 1100 1169;;;;N;;;;;
+327D;CIRCLED KOREAN CHARACTER JUEUI;So;0;ON;<circle> 110C 116E 110B 1174;;;;N;;;;;
+327E;CIRCLED HANGUL IEUNG U;So;0;ON;<circle> 110B 116E;;;;N;;;;;
+327F;KOREAN STANDARD SYMBOL;So;0;L;;;;;N;;;;;
+3280;CIRCLED IDEOGRAPH ONE;No;0;L;<circle> 4E00;;;1;N;;;;;
+3281;CIRCLED IDEOGRAPH TWO;No;0;L;<circle> 4E8C;;;2;N;;;;;
+3282;CIRCLED IDEOGRAPH THREE;No;0;L;<circle> 4E09;;;3;N;;;;;
+3283;CIRCLED IDEOGRAPH FOUR;No;0;L;<circle> 56DB;;;4;N;;;;;
+3284;CIRCLED IDEOGRAPH FIVE;No;0;L;<circle> 4E94;;;5;N;;;;;
+3285;CIRCLED IDEOGRAPH SIX;No;0;L;<circle> 516D;;;6;N;;;;;
+3286;CIRCLED IDEOGRAPH SEVEN;No;0;L;<circle> 4E03;;;7;N;;;;;
+3287;CIRCLED IDEOGRAPH EIGHT;No;0;L;<circle> 516B;;;8;N;;;;;
+3288;CIRCLED IDEOGRAPH NINE;No;0;L;<circle> 4E5D;;;9;N;;;;;
+3289;CIRCLED IDEOGRAPH TEN;No;0;L;<circle> 5341;;;10;N;;;;;
+328A;CIRCLED IDEOGRAPH MOON;So;0;L;<circle> 6708;;;;N;;;;;
+328B;CIRCLED IDEOGRAPH FIRE;So;0;L;<circle> 706B;;;;N;;;;;
+328C;CIRCLED IDEOGRAPH WATER;So;0;L;<circle> 6C34;;;;N;;;;;
+328D;CIRCLED IDEOGRAPH WOOD;So;0;L;<circle> 6728;;;;N;;;;;
+328E;CIRCLED IDEOGRAPH METAL;So;0;L;<circle> 91D1;;;;N;;;;;
+328F;CIRCLED IDEOGRAPH EARTH;So;0;L;<circle> 571F;;;;N;;;;;
+3290;CIRCLED IDEOGRAPH SUN;So;0;L;<circle> 65E5;;;;N;;;;;
+3291;CIRCLED IDEOGRAPH STOCK;So;0;L;<circle> 682A;;;;N;;;;;
+3292;CIRCLED IDEOGRAPH HAVE;So;0;L;<circle> 6709;;;;N;;;;;
+3293;CIRCLED IDEOGRAPH SOCIETY;So;0;L;<circle> 793E;;;;N;;;;;
+3294;CIRCLED IDEOGRAPH NAME;So;0;L;<circle> 540D;;;;N;;;;;
+3295;CIRCLED IDEOGRAPH SPECIAL;So;0;L;<circle> 7279;;;;N;;;;;
+3296;CIRCLED IDEOGRAPH FINANCIAL;So;0;L;<circle> 8CA1;;;;N;;;;;
+3297;CIRCLED IDEOGRAPH CONGRATULATION;So;0;L;<circle> 795D;;;;N;;;;;
+3298;CIRCLED IDEOGRAPH LABOR;So;0;L;<circle> 52B4;;;;N;;;;;
+3299;CIRCLED IDEOGRAPH SECRET;So;0;L;<circle> 79D8;;;;N;;;;;
+329A;CIRCLED IDEOGRAPH MALE;So;0;L;<circle> 7537;;;;N;;;;;
+329B;CIRCLED IDEOGRAPH FEMALE;So;0;L;<circle> 5973;;;;N;;;;;
+329C;CIRCLED IDEOGRAPH SUITABLE;So;0;L;<circle> 9069;;;;N;;;;;
+329D;CIRCLED IDEOGRAPH EXCELLENT;So;0;L;<circle> 512A;;;;N;;;;;
+329E;CIRCLED IDEOGRAPH PRINT;So;0;L;<circle> 5370;;;;N;;;;;
+329F;CIRCLED IDEOGRAPH ATTENTION;So;0;L;<circle> 6CE8;;;;N;;;;;
+32A0;CIRCLED IDEOGRAPH ITEM;So;0;L;<circle> 9805;;;;N;;;;;
+32A1;CIRCLED IDEOGRAPH REST;So;0;L;<circle> 4F11;;;;N;;;;;
+32A2;CIRCLED IDEOGRAPH COPY;So;0;L;<circle> 5199;;;;N;;;;;
+32A3;CIRCLED IDEOGRAPH CORRECT;So;0;L;<circle> 6B63;;;;N;;;;;
+32A4;CIRCLED IDEOGRAPH HIGH;So;0;L;<circle> 4E0A;;;;N;;;;;
+32A5;CIRCLED IDEOGRAPH CENTRE;So;0;L;<circle> 4E2D;;;;N;CIRCLED IDEOGRAPH CENTER;;;;
+32A6;CIRCLED IDEOGRAPH LOW;So;0;L;<circle> 4E0B;;;;N;;;;;
+32A7;CIRCLED IDEOGRAPH LEFT;So;0;L;<circle> 5DE6;;;;N;;;;;
+32A8;CIRCLED IDEOGRAPH RIGHT;So;0;L;<circle> 53F3;;;;N;;;;;
+32A9;CIRCLED IDEOGRAPH MEDICINE;So;0;L;<circle> 533B;;;;N;;;;;
+32AA;CIRCLED IDEOGRAPH RELIGION;So;0;L;<circle> 5B97;;;;N;;;;;
+32AB;CIRCLED IDEOGRAPH STUDY;So;0;L;<circle> 5B66;;;;N;;;;;
+32AC;CIRCLED IDEOGRAPH SUPERVISE;So;0;L;<circle> 76E3;;;;N;;;;;
+32AD;CIRCLED IDEOGRAPH ENTERPRISE;So;0;L;<circle> 4F01;;;;N;;;;;
+32AE;CIRCLED IDEOGRAPH RESOURCE;So;0;L;<circle> 8CC7;;;;N;;;;;
+32AF;CIRCLED IDEOGRAPH ALLIANCE;So;0;L;<circle> 5354;;;;N;;;;;
+32B0;CIRCLED IDEOGRAPH NIGHT;So;0;L;<circle> 591C;;;;N;;;;;
+32B1;CIRCLED NUMBER THIRTY SIX;No;0;ON;<circle> 0033 0036;;;36;N;;;;;
+32B2;CIRCLED NUMBER THIRTY SEVEN;No;0;ON;<circle> 0033 0037;;;37;N;;;;;
+32B3;CIRCLED NUMBER THIRTY EIGHT;No;0;ON;<circle> 0033 0038;;;38;N;;;;;
+32B4;CIRCLED NUMBER THIRTY NINE;No;0;ON;<circle> 0033 0039;;;39;N;;;;;
+32B5;CIRCLED NUMBER FORTY;No;0;ON;<circle> 0034 0030;;;40;N;;;;;
+32B6;CIRCLED NUMBER FORTY ONE;No;0;ON;<circle> 0034 0031;;;41;N;;;;;
+32B7;CIRCLED NUMBER FORTY TWO;No;0;ON;<circle> 0034 0032;;;42;N;;;;;
+32B8;CIRCLED NUMBER FORTY THREE;No;0;ON;<circle> 0034 0033;;;43;N;;;;;
+32B9;CIRCLED NUMBER FORTY FOUR;No;0;ON;<circle> 0034 0034;;;44;N;;;;;
+32BA;CIRCLED NUMBER FORTY FIVE;No;0;ON;<circle> 0034 0035;;;45;N;;;;;
+32BB;CIRCLED NUMBER FORTY SIX;No;0;ON;<circle> 0034 0036;;;46;N;;;;;
+32BC;CIRCLED NUMBER FORTY SEVEN;No;0;ON;<circle> 0034 0037;;;47;N;;;;;
+32BD;CIRCLED NUMBER FORTY EIGHT;No;0;ON;<circle> 0034 0038;;;48;N;;;;;
+32BE;CIRCLED NUMBER FORTY NINE;No;0;ON;<circle> 0034 0039;;;49;N;;;;;
+32BF;CIRCLED NUMBER FIFTY;No;0;ON;<circle> 0035 0030;;;50;N;;;;;
+32C0;IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY;So;0;L;<compat> 0031 6708;;;;N;;;;;
+32C1;IDEOGRAPHIC TELEGRAPH SYMBOL FOR FEBRUARY;So;0;L;<compat> 0032 6708;;;;N;;;;;
+32C2;IDEOGRAPHIC TELEGRAPH SYMBOL FOR MARCH;So;0;L;<compat> 0033 6708;;;;N;;;;;
+32C3;IDEOGRAPHIC TELEGRAPH SYMBOL FOR APRIL;So;0;L;<compat> 0034 6708;;;;N;;;;;
+32C4;IDEOGRAPHIC TELEGRAPH SYMBOL FOR MAY;So;0;L;<compat> 0035 6708;;;;N;;;;;
+32C5;IDEOGRAPHIC TELEGRAPH SYMBOL FOR JUNE;So;0;L;<compat> 0036 6708;;;;N;;;;;
+32C6;IDEOGRAPHIC TELEGRAPH SYMBOL FOR JULY;So;0;L;<compat> 0037 6708;;;;N;;;;;
+32C7;IDEOGRAPHIC TELEGRAPH SYMBOL FOR AUGUST;So;0;L;<compat> 0038 6708;;;;N;;;;;
+32C8;IDEOGRAPHIC TELEGRAPH SYMBOL FOR SEPTEMBER;So;0;L;<compat> 0039 6708;;;;N;;;;;
+32C9;IDEOGRAPHIC TELEGRAPH SYMBOL FOR OCTOBER;So;0;L;<compat> 0031 0030 6708;;;;N;;;;;
+32CA;IDEOGRAPHIC TELEGRAPH SYMBOL FOR NOVEMBER;So;0;L;<compat> 0031 0031 6708;;;;N;;;;;
+32CB;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER;So;0;L;<compat> 0031 0032 6708;;;;N;;;;;
+32CC;SQUARE HG;So;0;ON;<square> 0048 0067;;;;N;;;;;
+32CD;SQUARE ERG;So;0;ON;<square> 0065 0072 0067;;;;N;;;;;
+32CE;SQUARE EV;So;0;ON;<square> 0065 0056;;;;N;;;;;
+32CF;LIMITED LIABILITY SIGN;So;0;ON;<square> 004C 0054 0044;;;;N;;;;;
+32D0;CIRCLED KATAKANA A;So;0;L;<circle> 30A2;;;;N;;;;;
+32D1;CIRCLED KATAKANA I;So;0;L;<circle> 30A4;;;;N;;;;;
+32D2;CIRCLED KATAKANA U;So;0;L;<circle> 30A6;;;;N;;;;;
+32D3;CIRCLED KATAKANA E;So;0;L;<circle> 30A8;;;;N;;;;;
+32D4;CIRCLED KATAKANA O;So;0;L;<circle> 30AA;;;;N;;;;;
+32D5;CIRCLED KATAKANA KA;So;0;L;<circle> 30AB;;;;N;;;;;
+32D6;CIRCLED KATAKANA KI;So;0;L;<circle> 30AD;;;;N;;;;;
+32D7;CIRCLED KATAKANA KU;So;0;L;<circle> 30AF;;;;N;;;;;
+32D8;CIRCLED KATAKANA KE;So;0;L;<circle> 30B1;;;;N;;;;;
+32D9;CIRCLED KATAKANA KO;So;0;L;<circle> 30B3;;;;N;;;;;
+32DA;CIRCLED KATAKANA SA;So;0;L;<circle> 30B5;;;;N;;;;;
+32DB;CIRCLED KATAKANA SI;So;0;L;<circle> 30B7;;;;N;;;;;
+32DC;CIRCLED KATAKANA SU;So;0;L;<circle> 30B9;;;;N;;;;;
+32DD;CIRCLED KATAKANA SE;So;0;L;<circle> 30BB;;;;N;;;;;
+32DE;CIRCLED KATAKANA SO;So;0;L;<circle> 30BD;;;;N;;;;;
+32DF;CIRCLED KATAKANA TA;So;0;L;<circle> 30BF;;;;N;;;;;
+32E0;CIRCLED KATAKANA TI;So;0;L;<circle> 30C1;;;;N;;;;;
+32E1;CIRCLED KATAKANA TU;So;0;L;<circle> 30C4;;;;N;;;;;
+32E2;CIRCLED KATAKANA TE;So;0;L;<circle> 30C6;;;;N;;;;;
+32E3;CIRCLED KATAKANA TO;So;0;L;<circle> 30C8;;;;N;;;;;
+32E4;CIRCLED KATAKANA NA;So;0;L;<circle> 30CA;;;;N;;;;;
+32E5;CIRCLED KATAKANA NI;So;0;L;<circle> 30CB;;;;N;;;;;
+32E6;CIRCLED KATAKANA NU;So;0;L;<circle> 30CC;;;;N;;;;;
+32E7;CIRCLED KATAKANA NE;So;0;L;<circle> 30CD;;;;N;;;;;
+32E8;CIRCLED KATAKANA NO;So;0;L;<circle> 30CE;;;;N;;;;;
+32E9;CIRCLED KATAKANA HA;So;0;L;<circle> 30CF;;;;N;;;;;
+32EA;CIRCLED KATAKANA HI;So;0;L;<circle> 30D2;;;;N;;;;;
+32EB;CIRCLED KATAKANA HU;So;0;L;<circle> 30D5;;;;N;;;;;
+32EC;CIRCLED KATAKANA HE;So;0;L;<circle> 30D8;;;;N;;;;;
+32ED;CIRCLED KATAKANA HO;So;0;L;<circle> 30DB;;;;N;;;;;
+32EE;CIRCLED KATAKANA MA;So;0;L;<circle> 30DE;;;;N;;;;;
+32EF;CIRCLED KATAKANA MI;So;0;L;<circle> 30DF;;;;N;;;;;
+32F0;CIRCLED KATAKANA MU;So;0;L;<circle> 30E0;;;;N;;;;;
+32F1;CIRCLED KATAKANA ME;So;0;L;<circle> 30E1;;;;N;;;;;
+32F2;CIRCLED KATAKANA MO;So;0;L;<circle> 30E2;;;;N;;;;;
+32F3;CIRCLED KATAKANA YA;So;0;L;<circle> 30E4;;;;N;;;;;
+32F4;CIRCLED KATAKANA YU;So;0;L;<circle> 30E6;;;;N;;;;;
+32F5;CIRCLED KATAKANA YO;So;0;L;<circle> 30E8;;;;N;;;;;
+32F6;CIRCLED KATAKANA RA;So;0;L;<circle> 30E9;;;;N;;;;;
+32F7;CIRCLED KATAKANA RI;So;0;L;<circle> 30EA;;;;N;;;;;
+32F8;CIRCLED KATAKANA RU;So;0;L;<circle> 30EB;;;;N;;;;;
+32F9;CIRCLED KATAKANA RE;So;0;L;<circle> 30EC;;;;N;;;;;
+32FA;CIRCLED KATAKANA RO;So;0;L;<circle> 30ED;;;;N;;;;;
+32FB;CIRCLED KATAKANA WA;So;0;L;<circle> 30EF;;;;N;;;;;
+32FC;CIRCLED KATAKANA WI;So;0;L;<circle> 30F0;;;;N;;;;;
+32FD;CIRCLED KATAKANA WE;So;0;L;<circle> 30F1;;;;N;;;;;
+32FE;CIRCLED KATAKANA WO;So;0;L;<circle> 30F2;;;;N;;;;;
+3300;SQUARE APAATO;So;0;L;<square> 30A2 30D1 30FC 30C8;;;;N;SQUARED APAATO;;;;
+3301;SQUARE ARUHUA;So;0;L;<square> 30A2 30EB 30D5 30A1;;;;N;SQUARED ARUHUA;;;;
+3302;SQUARE ANPEA;So;0;L;<square> 30A2 30F3 30DA 30A2;;;;N;SQUARED ANPEA;;;;
+3303;SQUARE AARU;So;0;L;<square> 30A2 30FC 30EB;;;;N;SQUARED AARU;;;;
+3304;SQUARE ININGU;So;0;L;<square> 30A4 30CB 30F3 30B0;;;;N;SQUARED ININGU;;;;
+3305;SQUARE INTI;So;0;L;<square> 30A4 30F3 30C1;;;;N;SQUARED INTI;;;;
+3306;SQUARE UON;So;0;L;<square> 30A6 30A9 30F3;;;;N;SQUARED UON;;;;
+3307;SQUARE ESUKUUDO;So;0;L;<square> 30A8 30B9 30AF 30FC 30C9;;;;N;SQUARED ESUKUUDO;;;;
+3308;SQUARE EEKAA;So;0;L;<square> 30A8 30FC 30AB 30FC;;;;N;SQUARED EEKAA;;;;
+3309;SQUARE ONSU;So;0;L;<square> 30AA 30F3 30B9;;;;N;SQUARED ONSU;;;;
+330A;SQUARE OOMU;So;0;L;<square> 30AA 30FC 30E0;;;;N;SQUARED OOMU;;;;
+330B;SQUARE KAIRI;So;0;L;<square> 30AB 30A4 30EA;;;;N;SQUARED KAIRI;;;;
+330C;SQUARE KARATTO;So;0;L;<square> 30AB 30E9 30C3 30C8;;;;N;SQUARED KARATTO;;;;
+330D;SQUARE KARORII;So;0;L;<square> 30AB 30ED 30EA 30FC;;;;N;SQUARED KARORII;;;;
+330E;SQUARE GARON;So;0;L;<square> 30AC 30ED 30F3;;;;N;SQUARED GARON;;;;
+330F;SQUARE GANMA;So;0;L;<square> 30AC 30F3 30DE;;;;N;SQUARED GANMA;;;;
+3310;SQUARE GIGA;So;0;L;<square> 30AE 30AC;;;;N;SQUARED GIGA;;;;
+3311;SQUARE GINII;So;0;L;<square> 30AE 30CB 30FC;;;;N;SQUARED GINII;;;;
+3312;SQUARE KYURII;So;0;L;<square> 30AD 30E5 30EA 30FC;;;;N;SQUARED KYURII;;;;
+3313;SQUARE GIRUDAA;So;0;L;<square> 30AE 30EB 30C0 30FC;;;;N;SQUARED GIRUDAA;;;;
+3314;SQUARE KIRO;So;0;L;<square> 30AD 30ED;;;;N;SQUARED KIRO;;;;
+3315;SQUARE KIROGURAMU;So;0;L;<square> 30AD 30ED 30B0 30E9 30E0;;;;N;SQUARED KIROGURAMU;;;;
+3316;SQUARE KIROMEETORU;So;0;L;<square> 30AD 30ED 30E1 30FC 30C8 30EB;;;;N;SQUARED KIROMEETORU;;;;
+3317;SQUARE KIROWATTO;So;0;L;<square> 30AD 30ED 30EF 30C3 30C8;;;;N;SQUARED KIROWATTO;;;;
+3318;SQUARE GURAMU;So;0;L;<square> 30B0 30E9 30E0;;;;N;SQUARED GURAMU;;;;
+3319;SQUARE GURAMUTON;So;0;L;<square> 30B0 30E9 30E0 30C8 30F3;;;;N;SQUARED GURAMUTON;;;;
+331A;SQUARE KURUZEIRO;So;0;L;<square> 30AF 30EB 30BC 30A4 30ED;;;;N;SQUARED KURUZEIRO;;;;
+331B;SQUARE KUROONE;So;0;L;<square> 30AF 30ED 30FC 30CD;;;;N;SQUARED KUROONE;;;;
+331C;SQUARE KEESU;So;0;L;<square> 30B1 30FC 30B9;;;;N;SQUARED KEESU;;;;
+331D;SQUARE KORUNA;So;0;L;<square> 30B3 30EB 30CA;;;;N;SQUARED KORUNA;;;;
+331E;SQUARE KOOPO;So;0;L;<square> 30B3 30FC 30DD;;;;N;SQUARED KOOPO;;;;
+331F;SQUARE SAIKURU;So;0;L;<square> 30B5 30A4 30AF 30EB;;;;N;SQUARED SAIKURU;;;;
+3320;SQUARE SANTIIMU;So;0;L;<square> 30B5 30F3 30C1 30FC 30E0;;;;N;SQUARED SANTIIMU;;;;
+3321;SQUARE SIRINGU;So;0;L;<square> 30B7 30EA 30F3 30B0;;;;N;SQUARED SIRINGU;;;;
+3322;SQUARE SENTI;So;0;L;<square> 30BB 30F3 30C1;;;;N;SQUARED SENTI;;;;
+3323;SQUARE SENTO;So;0;L;<square> 30BB 30F3 30C8;;;;N;SQUARED SENTO;;;;
+3324;SQUARE DAASU;So;0;L;<square> 30C0 30FC 30B9;;;;N;SQUARED DAASU;;;;
+3325;SQUARE DESI;So;0;L;<square> 30C7 30B7;;;;N;SQUARED DESI;;;;
+3326;SQUARE DORU;So;0;L;<square> 30C9 30EB;;;;N;SQUARED DORU;;;;
+3327;SQUARE TON;So;0;L;<square> 30C8 30F3;;;;N;SQUARED TON;;;;
+3328;SQUARE NANO;So;0;L;<square> 30CA 30CE;;;;N;SQUARED NANO;;;;
+3329;SQUARE NOTTO;So;0;L;<square> 30CE 30C3 30C8;;;;N;SQUARED NOTTO;;;;
+332A;SQUARE HAITU;So;0;L;<square> 30CF 30A4 30C4;;;;N;SQUARED HAITU;;;;
+332B;SQUARE PAASENTO;So;0;L;<square> 30D1 30FC 30BB 30F3 30C8;;;;N;SQUARED PAASENTO;;;;
+332C;SQUARE PAATU;So;0;L;<square> 30D1 30FC 30C4;;;;N;SQUARED PAATU;;;;
+332D;SQUARE BAARERU;So;0;L;<square> 30D0 30FC 30EC 30EB;;;;N;SQUARED BAARERU;;;;
+332E;SQUARE PIASUTORU;So;0;L;<square> 30D4 30A2 30B9 30C8 30EB;;;;N;SQUARED PIASUTORU;;;;
+332F;SQUARE PIKURU;So;0;L;<square> 30D4 30AF 30EB;;;;N;SQUARED PIKURU;;;;
+3330;SQUARE PIKO;So;0;L;<square> 30D4 30B3;;;;N;SQUARED PIKO;;;;
+3331;SQUARE BIRU;So;0;L;<square> 30D3 30EB;;;;N;SQUARED BIRU;;;;
+3332;SQUARE HUARADDO;So;0;L;<square> 30D5 30A1 30E9 30C3 30C9;;;;N;SQUARED HUARADDO;;;;
+3333;SQUARE HUIITO;So;0;L;<square> 30D5 30A3 30FC 30C8;;;;N;SQUARED HUIITO;;;;
+3334;SQUARE BUSSYERU;So;0;L;<square> 30D6 30C3 30B7 30A7 30EB;;;;N;SQUARED BUSSYERU;;;;
+3335;SQUARE HURAN;So;0;L;<square> 30D5 30E9 30F3;;;;N;SQUARED HURAN;;;;
+3336;SQUARE HEKUTAARU;So;0;L;<square> 30D8 30AF 30BF 30FC 30EB;;;;N;SQUARED HEKUTAARU;;;;
+3337;SQUARE PESO;So;0;L;<square> 30DA 30BD;;;;N;SQUARED PESO;;;;
+3338;SQUARE PENIHI;So;0;L;<square> 30DA 30CB 30D2;;;;N;SQUARED PENIHI;;;;
+3339;SQUARE HERUTU;So;0;L;<square> 30D8 30EB 30C4;;;;N;SQUARED HERUTU;;;;
+333A;SQUARE PENSU;So;0;L;<square> 30DA 30F3 30B9;;;;N;SQUARED PENSU;;;;
+333B;SQUARE PEEZI;So;0;L;<square> 30DA 30FC 30B8;;;;N;SQUARED PEEZI;;;;
+333C;SQUARE BEETA;So;0;L;<square> 30D9 30FC 30BF;;;;N;SQUARED BEETA;;;;
+333D;SQUARE POINTO;So;0;L;<square> 30DD 30A4 30F3 30C8;;;;N;SQUARED POINTO;;;;
+333E;SQUARE BORUTO;So;0;L;<square> 30DC 30EB 30C8;;;;N;SQUARED BORUTO;;;;
+333F;SQUARE HON;So;0;L;<square> 30DB 30F3;;;;N;SQUARED HON;;;;
+3340;SQUARE PONDO;So;0;L;<square> 30DD 30F3 30C9;;;;N;SQUARED PONDO;;;;
+3341;SQUARE HOORU;So;0;L;<square> 30DB 30FC 30EB;;;;N;SQUARED HOORU;;;;
+3342;SQUARE HOON;So;0;L;<square> 30DB 30FC 30F3;;;;N;SQUARED HOON;;;;
+3343;SQUARE MAIKURO;So;0;L;<square> 30DE 30A4 30AF 30ED;;;;N;SQUARED MAIKURO;;;;
+3344;SQUARE MAIRU;So;0;L;<square> 30DE 30A4 30EB;;;;N;SQUARED MAIRU;;;;
+3345;SQUARE MAHHA;So;0;L;<square> 30DE 30C3 30CF;;;;N;SQUARED MAHHA;;;;
+3346;SQUARE MARUKU;So;0;L;<square> 30DE 30EB 30AF;;;;N;SQUARED MARUKU;;;;
+3347;SQUARE MANSYON;So;0;L;<square> 30DE 30F3 30B7 30E7 30F3;;;;N;SQUARED MANSYON;;;;
+3348;SQUARE MIKURON;So;0;L;<square> 30DF 30AF 30ED 30F3;;;;N;SQUARED MIKURON;;;;
+3349;SQUARE MIRI;So;0;L;<square> 30DF 30EA;;;;N;SQUARED MIRI;;;;
+334A;SQUARE MIRIBAARU;So;0;L;<square> 30DF 30EA 30D0 30FC 30EB;;;;N;SQUARED MIRIBAARU;;;;
+334B;SQUARE MEGA;So;0;L;<square> 30E1 30AC;;;;N;SQUARED MEGA;;;;
+334C;SQUARE MEGATON;So;0;L;<square> 30E1 30AC 30C8 30F3;;;;N;SQUARED MEGATON;;;;
+334D;SQUARE MEETORU;So;0;L;<square> 30E1 30FC 30C8 30EB;;;;N;SQUARED MEETORU;;;;
+334E;SQUARE YAADO;So;0;L;<square> 30E4 30FC 30C9;;;;N;SQUARED YAADO;;;;
+334F;SQUARE YAARU;So;0;L;<square> 30E4 30FC 30EB;;;;N;SQUARED YAARU;;;;
+3350;SQUARE YUAN;So;0;L;<square> 30E6 30A2 30F3;;;;N;SQUARED YUAN;;;;
+3351;SQUARE RITTORU;So;0;L;<square> 30EA 30C3 30C8 30EB;;;;N;SQUARED RITTORU;;;;
+3352;SQUARE RIRA;So;0;L;<square> 30EA 30E9;;;;N;SQUARED RIRA;;;;
+3353;SQUARE RUPII;So;0;L;<square> 30EB 30D4 30FC;;;;N;SQUARED RUPII;;;;
+3354;SQUARE RUUBURU;So;0;L;<square> 30EB 30FC 30D6 30EB;;;;N;SQUARED RUUBURU;;;;
+3355;SQUARE REMU;So;0;L;<square> 30EC 30E0;;;;N;SQUARED REMU;;;;
+3356;SQUARE RENTOGEN;So;0;L;<square> 30EC 30F3 30C8 30B2 30F3;;;;N;SQUARED RENTOGEN;;;;
+3357;SQUARE WATTO;So;0;L;<square> 30EF 30C3 30C8;;;;N;SQUARED WATTO;;;;
+3358;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO;So;0;L;<compat> 0030 70B9;;;;N;;;;;
+3359;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ONE;So;0;L;<compat> 0031 70B9;;;;N;;;;;
+335A;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWO;So;0;L;<compat> 0032 70B9;;;;N;;;;;
+335B;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THREE;So;0;L;<compat> 0033 70B9;;;;N;;;;;
+335C;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOUR;So;0;L;<compat> 0034 70B9;;;;N;;;;;
+335D;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIVE;So;0;L;<compat> 0035 70B9;;;;N;;;;;
+335E;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIX;So;0;L;<compat> 0036 70B9;;;;N;;;;;
+335F;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVEN;So;0;L;<compat> 0037 70B9;;;;N;;;;;
+3360;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHT;So;0;L;<compat> 0038 70B9;;;;N;;;;;
+3361;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINE;So;0;L;<compat> 0039 70B9;;;;N;;;;;
+3362;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TEN;So;0;L;<compat> 0031 0030 70B9;;;;N;;;;;
+3363;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ELEVEN;So;0;L;<compat> 0031 0031 70B9;;;;N;;;;;
+3364;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWELVE;So;0;L;<compat> 0031 0032 70B9;;;;N;;;;;
+3365;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THIRTEEN;So;0;L;<compat> 0031 0033 70B9;;;;N;;;;;
+3366;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOURTEEN;So;0;L;<compat> 0031 0034 70B9;;;;N;;;;;
+3367;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIFTEEN;So;0;L;<compat> 0031 0035 70B9;;;;N;;;;;
+3368;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIXTEEN;So;0;L;<compat> 0031 0036 70B9;;;;N;;;;;
+3369;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVENTEEN;So;0;L;<compat> 0031 0037 70B9;;;;N;;;;;
+336A;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHTEEN;So;0;L;<compat> 0031 0038 70B9;;;;N;;;;;
+336B;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINETEEN;So;0;L;<compat> 0031 0039 70B9;;;;N;;;;;
+336C;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY;So;0;L;<compat> 0032 0030 70B9;;;;N;;;;;
+336D;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-ONE;So;0;L;<compat> 0032 0031 70B9;;;;N;;;;;
+336E;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-TWO;So;0;L;<compat> 0032 0032 70B9;;;;N;;;;;
+336F;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-THREE;So;0;L;<compat> 0032 0033 70B9;;;;N;;;;;
+3370;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR;So;0;L;<compat> 0032 0034 70B9;;;;N;;;;;
+3371;SQUARE HPA;So;0;L;<square> 0068 0050 0061;;;;N;;;;;
+3372;SQUARE DA;So;0;L;<square> 0064 0061;;;;N;;;;;
+3373;SQUARE AU;So;0;L;<square> 0041 0055;;;;N;;;;;
+3374;SQUARE BAR;So;0;L;<square> 0062 0061 0072;;;;N;;;;;
+3375;SQUARE OV;So;0;L;<square> 006F 0056;;;;N;;;;;
+3376;SQUARE PC;So;0;L;<square> 0070 0063;;;;N;;;;;
+3377;SQUARE DM;So;0;ON;<square> 0064 006D;;;;N;;;;;
+3378;SQUARE DM SQUARED;So;0;ON;<square> 0064 006D 00B2;;;;N;;;;;
+3379;SQUARE DM CUBED;So;0;ON;<square> 0064 006D 00B3;;;;N;;;;;
+337A;SQUARE IU;So;0;ON;<square> 0049 0055;;;;N;;;;;
+337B;SQUARE ERA NAME HEISEI;So;0;L;<square> 5E73 6210;;;;N;SQUARED TWO IDEOGRAPHS ERA NAME HEISEI;;;;
+337C;SQUARE ERA NAME SYOUWA;So;0;L;<square> 662D 548C;;;;N;SQUARED TWO IDEOGRAPHS ERA NAME SYOUWA;;;;
+337D;SQUARE ERA NAME TAISYOU;So;0;L;<square> 5927 6B63;;;;N;SQUARED TWO IDEOGRAPHS ERA NAME TAISYOU;;;;
+337E;SQUARE ERA NAME MEIZI;So;0;L;<square> 660E 6CBB;;;;N;SQUARED TWO IDEOGRAPHS ERA NAME MEIZI;;;;
+337F;SQUARE CORPORATION;So;0;L;<square> 682A 5F0F 4F1A 793E;;;;N;SQUARED FOUR IDEOGRAPHS CORPORATION;;;;
+3380;SQUARE PA AMPS;So;0;L;<square> 0070 0041;;;;N;SQUARED PA AMPS;;;;
+3381;SQUARE NA;So;0;L;<square> 006E 0041;;;;N;SQUARED NA;;;;
+3382;SQUARE MU A;So;0;L;<square> 03BC 0041;;;;N;SQUARED MU A;;;;
+3383;SQUARE MA;So;0;L;<square> 006D 0041;;;;N;SQUARED MA;;;;
+3384;SQUARE KA;So;0;L;<square> 006B 0041;;;;N;SQUARED KA;;;;
+3385;SQUARE KB;So;0;L;<square> 004B 0042;;;;N;SQUARED KB;;;;
+3386;SQUARE MB;So;0;L;<square> 004D 0042;;;;N;SQUARED MB;;;;
+3387;SQUARE GB;So;0;L;<square> 0047 0042;;;;N;SQUARED GB;;;;
+3388;SQUARE CAL;So;0;L;<square> 0063 0061 006C;;;;N;SQUARED CAL;;;;
+3389;SQUARE KCAL;So;0;L;<square> 006B 0063 0061 006C;;;;N;SQUARED KCAL;;;;
+338A;SQUARE PF;So;0;L;<square> 0070 0046;;;;N;SQUARED PF;;;;
+338B;SQUARE NF;So;0;L;<square> 006E 0046;;;;N;SQUARED NF;;;;
+338C;SQUARE MU F;So;0;L;<square> 03BC 0046;;;;N;SQUARED MU F;;;;
+338D;SQUARE MU G;So;0;L;<square> 03BC 0067;;;;N;SQUARED MU G;;;;
+338E;SQUARE MG;So;0;L;<square> 006D 0067;;;;N;SQUARED MG;;;;
+338F;SQUARE KG;So;0;L;<square> 006B 0067;;;;N;SQUARED KG;;;;
+3390;SQUARE HZ;So;0;L;<square> 0048 007A;;;;N;SQUARED HZ;;;;
+3391;SQUARE KHZ;So;0;L;<square> 006B 0048 007A;;;;N;SQUARED KHZ;;;;
+3392;SQUARE MHZ;So;0;L;<square> 004D 0048 007A;;;;N;SQUARED MHZ;;;;
+3393;SQUARE GHZ;So;0;L;<square> 0047 0048 007A;;;;N;SQUARED GHZ;;;;
+3394;SQUARE THZ;So;0;L;<square> 0054 0048 007A;;;;N;SQUARED THZ;;;;
+3395;SQUARE MU L;So;0;L;<square> 03BC 2113;;;;N;SQUARED MU L;;;;
+3396;SQUARE ML;So;0;L;<square> 006D 2113;;;;N;SQUARED ML;;;;
+3397;SQUARE DL;So;0;L;<square> 0064 2113;;;;N;SQUARED DL;;;;
+3398;SQUARE KL;So;0;L;<square> 006B 2113;;;;N;SQUARED KL;;;;
+3399;SQUARE FM;So;0;L;<square> 0066 006D;;;;N;SQUARED FM;;;;
+339A;SQUARE NM;So;0;L;<square> 006E 006D;;;;N;SQUARED NM;;;;
+339B;SQUARE MU M;So;0;L;<square> 03BC 006D;;;;N;SQUARED MU M;;;;
+339C;SQUARE MM;So;0;L;<square> 006D 006D;;;;N;SQUARED MM;;;;
+339D;SQUARE CM;So;0;L;<square> 0063 006D;;;;N;SQUARED CM;;;;
+339E;SQUARE KM;So;0;L;<square> 006B 006D;;;;N;SQUARED KM;;;;
+339F;SQUARE MM SQUARED;So;0;L;<square> 006D 006D 00B2;;;;N;SQUARED MM SQUARED;;;;
+33A0;SQUARE CM SQUARED;So;0;L;<square> 0063 006D 00B2;;;;N;SQUARED CM SQUARED;;;;
+33A1;SQUARE M SQUARED;So;0;L;<square> 006D 00B2;;;;N;SQUARED M SQUARED;;;;
+33A2;SQUARE KM SQUARED;So;0;L;<square> 006B 006D 00B2;;;;N;SQUARED KM SQUARED;;;;
+33A3;SQUARE MM CUBED;So;0;L;<square> 006D 006D 00B3;;;;N;SQUARED MM CUBED;;;;
+33A4;SQUARE CM CUBED;So;0;L;<square> 0063 006D 00B3;;;;N;SQUARED CM CUBED;;;;
+33A5;SQUARE M CUBED;So;0;L;<square> 006D 00B3;;;;N;SQUARED M CUBED;;;;
+33A6;SQUARE KM CUBED;So;0;L;<square> 006B 006D 00B3;;;;N;SQUARED KM CUBED;;;;
+33A7;SQUARE M OVER S;So;0;L;<square> 006D 2215 0073;;;;N;SQUARED M OVER S;;;;
+33A8;SQUARE M OVER S SQUARED;So;0;L;<square> 006D 2215 0073 00B2;;;;N;SQUARED M OVER S SQUARED;;;;
+33A9;SQUARE PA;So;0;L;<square> 0050 0061;;;;N;SQUARED PA;;;;
+33AA;SQUARE KPA;So;0;L;<square> 006B 0050 0061;;;;N;SQUARED KPA;;;;
+33AB;SQUARE MPA;So;0;L;<square> 004D 0050 0061;;;;N;SQUARED MPA;;;;
+33AC;SQUARE GPA;So;0;L;<square> 0047 0050 0061;;;;N;SQUARED GPA;;;;
+33AD;SQUARE RAD;So;0;L;<square> 0072 0061 0064;;;;N;SQUARED RAD;;;;
+33AE;SQUARE RAD OVER S;So;0;L;<square> 0072 0061 0064 2215 0073;;;;N;SQUARED RAD OVER S;;;;
+33AF;SQUARE RAD OVER S SQUARED;So;0;L;<square> 0072 0061 0064 2215 0073 00B2;;;;N;SQUARED RAD OVER S SQUARED;;;;
+33B0;SQUARE PS;So;0;L;<square> 0070 0073;;;;N;SQUARED PS;;;;
+33B1;SQUARE NS;So;0;L;<square> 006E 0073;;;;N;SQUARED NS;;;;
+33B2;SQUARE MU S;So;0;L;<square> 03BC 0073;;;;N;SQUARED MU S;;;;
+33B3;SQUARE MS;So;0;L;<square> 006D 0073;;;;N;SQUARED MS;;;;
+33B4;SQUARE PV;So;0;L;<square> 0070 0056;;;;N;SQUARED PV;;;;
+33B5;SQUARE NV;So;0;L;<square> 006E 0056;;;;N;SQUARED NV;;;;
+33B6;SQUARE MU V;So;0;L;<square> 03BC 0056;;;;N;SQUARED MU V;;;;
+33B7;SQUARE MV;So;0;L;<square> 006D 0056;;;;N;SQUARED MV;;;;
+33B8;SQUARE KV;So;0;L;<square> 006B 0056;;;;N;SQUARED KV;;;;
+33B9;SQUARE MV MEGA;So;0;L;<square> 004D 0056;;;;N;SQUARED MV MEGA;;;;
+33BA;SQUARE PW;So;0;L;<square> 0070 0057;;;;N;SQUARED PW;;;;
+33BB;SQUARE NW;So;0;L;<square> 006E 0057;;;;N;SQUARED NW;;;;
+33BC;SQUARE MU W;So;0;L;<square> 03BC 0057;;;;N;SQUARED MU W;;;;
+33BD;SQUARE MW;So;0;L;<square> 006D 0057;;;;N;SQUARED MW;;;;
+33BE;SQUARE KW;So;0;L;<square> 006B 0057;;;;N;SQUARED KW;;;;
+33BF;SQUARE MW MEGA;So;0;L;<square> 004D 0057;;;;N;SQUARED MW MEGA;;;;
+33C0;SQUARE K OHM;So;0;L;<square> 006B 03A9;;;;N;SQUARED K OHM;;;;
+33C1;SQUARE M OHM;So;0;L;<square> 004D 03A9;;;;N;SQUARED M OHM;;;;
+33C2;SQUARE AM;So;0;L;<square> 0061 002E 006D 002E;;;;N;SQUARED AM;;;;
+33C3;SQUARE BQ;So;0;L;<square> 0042 0071;;;;N;SQUARED BQ;;;;
+33C4;SQUARE CC;So;0;L;<square> 0063 0063;;;;N;SQUARED CC;;;;
+33C5;SQUARE CD;So;0;L;<square> 0063 0064;;;;N;SQUARED CD;;;;
+33C6;SQUARE C OVER KG;So;0;L;<square> 0043 2215 006B 0067;;;;N;SQUARED C OVER KG;;;;
+33C7;SQUARE CO;So;0;L;<square> 0043 006F 002E;;;;N;SQUARED CO;;;;
+33C8;SQUARE DB;So;0;L;<square> 0064 0042;;;;N;SQUARED DB;;;;
+33C9;SQUARE GY;So;0;L;<square> 0047 0079;;;;N;SQUARED GY;;;;
+33CA;SQUARE HA;So;0;L;<square> 0068 0061;;;;N;SQUARED HA;;;;
+33CB;SQUARE HP;So;0;L;<square> 0048 0050;;;;N;SQUARED HP;;;;
+33CC;SQUARE IN;So;0;L;<square> 0069 006E;;;;N;SQUARED IN;;;;
+33CD;SQUARE KK;So;0;L;<square> 004B 004B;;;;N;SQUARED KK;;;;
+33CE;SQUARE KM CAPITAL;So;0;L;<square> 004B 004D;;;;N;SQUARED KM CAPITAL;;;;
+33CF;SQUARE KT;So;0;L;<square> 006B 0074;;;;N;SQUARED KT;;;;
+33D0;SQUARE LM;So;0;L;<square> 006C 006D;;;;N;SQUARED LM;;;;
+33D1;SQUARE LN;So;0;L;<square> 006C 006E;;;;N;SQUARED LN;;;;
+33D2;SQUARE LOG;So;0;L;<square> 006C 006F 0067;;;;N;SQUARED LOG;;;;
+33D3;SQUARE LX;So;0;L;<square> 006C 0078;;;;N;SQUARED LX;;;;
+33D4;SQUARE MB SMALL;So;0;L;<square> 006D 0062;;;;N;SQUARED MB SMALL;;;;
+33D5;SQUARE MIL;So;0;L;<square> 006D 0069 006C;;;;N;SQUARED MIL;;;;
+33D6;SQUARE MOL;So;0;L;<square> 006D 006F 006C;;;;N;SQUARED MOL;;;;
+33D7;SQUARE PH;So;0;L;<square> 0050 0048;;;;N;SQUARED PH;;;;
+33D8;SQUARE PM;So;0;L;<square> 0070 002E 006D 002E;;;;N;SQUARED PM;;;;
+33D9;SQUARE PPM;So;0;L;<square> 0050 0050 004D;;;;N;SQUARED PPM;;;;
+33DA;SQUARE PR;So;0;L;<square> 0050 0052;;;;N;SQUARED PR;;;;
+33DB;SQUARE SR;So;0;L;<square> 0073 0072;;;;N;SQUARED SR;;;;
+33DC;SQUARE SV;So;0;L;<square> 0053 0076;;;;N;SQUARED SV;;;;
+33DD;SQUARE WB;So;0;L;<square> 0057 0062;;;;N;SQUARED WB;;;;
+33DE;SQUARE V OVER M;So;0;ON;<square> 0056 2215 006D;;;;N;;;;;
+33DF;SQUARE A OVER M;So;0;ON;<square> 0041 2215 006D;;;;N;;;;;
+33E0;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ONE;So;0;L;<compat> 0031 65E5;;;;N;;;;;
+33E1;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWO;So;0;L;<compat> 0032 65E5;;;;N;;;;;
+33E2;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THREE;So;0;L;<compat> 0033 65E5;;;;N;;;;;
+33E3;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOUR;So;0;L;<compat> 0034 65E5;;;;N;;;;;
+33E4;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIVE;So;0;L;<compat> 0035 65E5;;;;N;;;;;
+33E5;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIX;So;0;L;<compat> 0036 65E5;;;;N;;;;;
+33E6;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVEN;So;0;L;<compat> 0037 65E5;;;;N;;;;;
+33E7;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHT;So;0;L;<compat> 0038 65E5;;;;N;;;;;
+33E8;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINE;So;0;L;<compat> 0039 65E5;;;;N;;;;;
+33E9;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TEN;So;0;L;<compat> 0031 0030 65E5;;;;N;;;;;
+33EA;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ELEVEN;So;0;L;<compat> 0031 0031 65E5;;;;N;;;;;
+33EB;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWELVE;So;0;L;<compat> 0031 0032 65E5;;;;N;;;;;
+33EC;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTEEN;So;0;L;<compat> 0031 0033 65E5;;;;N;;;;;
+33ED;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOURTEEN;So;0;L;<compat> 0031 0034 65E5;;;;N;;;;;
+33EE;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIFTEEN;So;0;L;<compat> 0031 0035 65E5;;;;N;;;;;
+33EF;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIXTEEN;So;0;L;<compat> 0031 0036 65E5;;;;N;;;;;
+33F0;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVENTEEN;So;0;L;<compat> 0031 0037 65E5;;;;N;;;;;
+33F1;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHTEEN;So;0;L;<compat> 0031 0038 65E5;;;;N;;;;;
+33F2;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINETEEN;So;0;L;<compat> 0031 0039 65E5;;;;N;;;;;
+33F3;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY;So;0;L;<compat> 0032 0030 65E5;;;;N;;;;;
+33F4;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-ONE;So;0;L;<compat> 0032 0031 65E5;;;;N;;;;;
+33F5;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-TWO;So;0;L;<compat> 0032 0032 65E5;;;;N;;;;;
+33F6;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-THREE;So;0;L;<compat> 0032 0033 65E5;;;;N;;;;;
+33F7;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FOUR;So;0;L;<compat> 0032 0034 65E5;;;;N;;;;;
+33F8;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FIVE;So;0;L;<compat> 0032 0035 65E5;;;;N;;;;;
+33F9;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SIX;So;0;L;<compat> 0032 0036 65E5;;;;N;;;;;
+33FA;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SEVEN;So;0;L;<compat> 0032 0037 65E5;;;;N;;;;;
+33FB;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-EIGHT;So;0;L;<compat> 0032 0038 65E5;;;;N;;;;;
+33FC;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-NINE;So;0;L;<compat> 0032 0039 65E5;;;;N;;;;;
+33FD;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY;So;0;L;<compat> 0033 0030 65E5;;;;N;;;;;
+33FE;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE;So;0;L;<compat> 0033 0031 65E5;;;;N;;;;;
+33FF;SQUARE GAL;So;0;ON;<square> 0067 0061 006C;;;;N;;;;;
+3400;<CJK Ideograph Extension A, First>;Lo;0;L;;;;;N;;;;;
+4DB5;<CJK Ideograph Extension A, Last>;Lo;0;L;;;;;N;;;;;
+4DC0;HEXAGRAM FOR THE CREATIVE HEAVEN;So;0;ON;;;;;N;;;;;
+4DC1;HEXAGRAM FOR THE RECEPTIVE EARTH;So;0;ON;;;;;N;;;;;
+4DC2;HEXAGRAM FOR DIFFICULTY AT THE BEGINNING;So;0;ON;;;;;N;;;;;
+4DC3;HEXAGRAM FOR YOUTHFUL FOLLY;So;0;ON;;;;;N;;;;;
+4DC4;HEXAGRAM FOR WAITING;So;0;ON;;;;;N;;;;;
+4DC5;HEXAGRAM FOR CONFLICT;So;0;ON;;;;;N;;;;;
+4DC6;HEXAGRAM FOR THE ARMY;So;0;ON;;;;;N;;;;;
+4DC7;HEXAGRAM FOR HOLDING TOGETHER;So;0;ON;;;;;N;;;;;
+4DC8;HEXAGRAM FOR SMALL TAMING;So;0;ON;;;;;N;;;;;
+4DC9;HEXAGRAM FOR TREADING;So;0;ON;;;;;N;;;;;
+4DCA;HEXAGRAM FOR PEACE;So;0;ON;;;;;N;;;;;
+4DCB;HEXAGRAM FOR STANDSTILL;So;0;ON;;;;;N;;;;;
+4DCC;HEXAGRAM FOR FELLOWSHIP;So;0;ON;;;;;N;;;;;
+4DCD;HEXAGRAM FOR GREAT POSSESSION;So;0;ON;;;;;N;;;;;
+4DCE;HEXAGRAM FOR MODESTY;So;0;ON;;;;;N;;;;;
+4DCF;HEXAGRAM FOR ENTHUSIASM;So;0;ON;;;;;N;;;;;
+4DD0;HEXAGRAM FOR FOLLOWING;So;0;ON;;;;;N;;;;;
+4DD1;HEXAGRAM FOR WORK ON THE DECAYED;So;0;ON;;;;;N;;;;;
+4DD2;HEXAGRAM FOR APPROACH;So;0;ON;;;;;N;;;;;
+4DD3;HEXAGRAM FOR CONTEMPLATION;So;0;ON;;;;;N;;;;;
+4DD4;HEXAGRAM FOR BITING THROUGH;So;0;ON;;;;;N;;;;;
+4DD5;HEXAGRAM FOR GRACE;So;0;ON;;;;;N;;;;;
+4DD6;HEXAGRAM FOR SPLITTING APART;So;0;ON;;;;;N;;;;;
+4DD7;HEXAGRAM FOR RETURN;So;0;ON;;;;;N;;;;;
+4DD8;HEXAGRAM FOR INNOCENCE;So;0;ON;;;;;N;;;;;
+4DD9;HEXAGRAM FOR GREAT TAMING;So;0;ON;;;;;N;;;;;
+4DDA;HEXAGRAM FOR MOUTH CORNERS;So;0;ON;;;;;N;;;;;
+4DDB;HEXAGRAM FOR GREAT PREPONDERANCE;So;0;ON;;;;;N;;;;;
+4DDC;HEXAGRAM FOR THE ABYSMAL WATER;So;0;ON;;;;;N;;;;;
+4DDD;HEXAGRAM FOR THE CLINGING FIRE;So;0;ON;;;;;N;;;;;
+4DDE;HEXAGRAM FOR INFLUENCE;So;0;ON;;;;;N;;;;;
+4DDF;HEXAGRAM FOR DURATION;So;0;ON;;;;;N;;;;;
+4DE0;HEXAGRAM FOR RETREAT;So;0;ON;;;;;N;;;;;
+4DE1;HEXAGRAM FOR GREAT POWER;So;0;ON;;;;;N;;;;;
+4DE2;HEXAGRAM FOR PROGRESS;So;0;ON;;;;;N;;;;;
+4DE3;HEXAGRAM FOR DARKENING OF THE LIGHT;So;0;ON;;;;;N;;;;;
+4DE4;HEXAGRAM FOR THE FAMILY;So;0;ON;;;;;N;;;;;
+4DE5;HEXAGRAM FOR OPPOSITION;So;0;ON;;;;;N;;;;;
+4DE6;HEXAGRAM FOR OBSTRUCTION;So;0;ON;;;;;N;;;;;
+4DE7;HEXAGRAM FOR DELIVERANCE;So;0;ON;;;;;N;;;;;
+4DE8;HEXAGRAM FOR DECREASE;So;0;ON;;;;;N;;;;;
+4DE9;HEXAGRAM FOR INCREASE;So;0;ON;;;;;N;;;;;
+4DEA;HEXAGRAM FOR BREAKTHROUGH;So;0;ON;;;;;N;;;;;
+4DEB;HEXAGRAM FOR COMING TO MEET;So;0;ON;;;;;N;;;;;
+4DEC;HEXAGRAM FOR GATHERING TOGETHER;So;0;ON;;;;;N;;;;;
+4DED;HEXAGRAM FOR PUSHING UPWARD;So;0;ON;;;;;N;;;;;
+4DEE;HEXAGRAM FOR OPPRESSION;So;0;ON;;;;;N;;;;;
+4DEF;HEXAGRAM FOR THE WELL;So;0;ON;;;;;N;;;;;
+4DF0;HEXAGRAM FOR REVOLUTION;So;0;ON;;;;;N;;;;;
+4DF1;HEXAGRAM FOR THE CAULDRON;So;0;ON;;;;;N;;;;;
+4DF2;HEXAGRAM FOR THE AROUSING THUNDER;So;0;ON;;;;;N;;;;;
+4DF3;HEXAGRAM FOR THE KEEPING STILL MOUNTAIN;So;0;ON;;;;;N;;;;;
+4DF4;HEXAGRAM FOR DEVELOPMENT;So;0;ON;;;;;N;;;;;
+4DF5;HEXAGRAM FOR THE MARRYING MAIDEN;So;0;ON;;;;;N;;;;;
+4DF6;HEXAGRAM FOR ABUNDANCE;So;0;ON;;;;;N;;;;;
+4DF7;HEXAGRAM FOR THE WANDERER;So;0;ON;;;;;N;;;;;
+4DF8;HEXAGRAM FOR THE GENTLE WIND;So;0;ON;;;;;N;;;;;
+4DF9;HEXAGRAM FOR THE JOYOUS LAKE;So;0;ON;;;;;N;;;;;
+4DFA;HEXAGRAM FOR DISPERSION;So;0;ON;;;;;N;;;;;
+4DFB;HEXAGRAM FOR LIMITATION;So;0;ON;;;;;N;;;;;
+4DFC;HEXAGRAM FOR INNER TRUTH;So;0;ON;;;;;N;;;;;
+4DFD;HEXAGRAM FOR SMALL PREPONDERANCE;So;0;ON;;;;;N;;;;;
+4DFE;HEXAGRAM FOR AFTER COMPLETION;So;0;ON;;;;;N;;;;;
+4DFF;HEXAGRAM FOR BEFORE COMPLETION;So;0;ON;;;;;N;;;;;
+4E00;<CJK Ideograph, First>;Lo;0;L;;;;;N;;;;;
+9FBB;<CJK Ideograph, Last>;Lo;0;L;;;;;N;;;;;
+A000;YI SYLLABLE IT;Lo;0;L;;;;;N;;;;;
+A001;YI SYLLABLE IX;Lo;0;L;;;;;N;;;;;
+A002;YI SYLLABLE I;Lo;0;L;;;;;N;;;;;
+A003;YI SYLLABLE IP;Lo;0;L;;;;;N;;;;;
+A004;YI SYLLABLE IET;Lo;0;L;;;;;N;;;;;
+A005;YI SYLLABLE IEX;Lo;0;L;;;;;N;;;;;
+A006;YI SYLLABLE IE;Lo;0;L;;;;;N;;;;;
+A007;YI SYLLABLE IEP;Lo;0;L;;;;;N;;;;;
+A008;YI SYLLABLE AT;Lo;0;L;;;;;N;;;;;
+A009;YI SYLLABLE AX;Lo;0;L;;;;;N;;;;;
+A00A;YI SYLLABLE A;Lo;0;L;;;;;N;;;;;
+A00B;YI SYLLABLE AP;Lo;0;L;;;;;N;;;;;
+A00C;YI SYLLABLE UOX;Lo;0;L;;;;;N;;;;;
+A00D;YI SYLLABLE UO;Lo;0;L;;;;;N;;;;;
+A00E;YI SYLLABLE UOP;Lo;0;L;;;;;N;;;;;
+A00F;YI SYLLABLE OT;Lo;0;L;;;;;N;;;;;
+A010;YI SYLLABLE OX;Lo;0;L;;;;;N;;;;;
+A011;YI SYLLABLE O;Lo;0;L;;;;;N;;;;;
+A012;YI SYLLABLE OP;Lo;0;L;;;;;N;;;;;
+A013;YI SYLLABLE EX;Lo;0;L;;;;;N;;;;;
+A014;YI SYLLABLE E;Lo;0;L;;;;;N;;;;;
+A015;YI SYLLABLE WU;Lm;0;L;;;;;N;;;;;
+A016;YI SYLLABLE BIT;Lo;0;L;;;;;N;;;;;
+A017;YI SYLLABLE BIX;Lo;0;L;;;;;N;;;;;
+A018;YI SYLLABLE BI;Lo;0;L;;;;;N;;;;;
+A019;YI SYLLABLE BIP;Lo;0;L;;;;;N;;;;;
+A01A;YI SYLLABLE BIET;Lo;0;L;;;;;N;;;;;
+A01B;YI SYLLABLE BIEX;Lo;0;L;;;;;N;;;;;
+A01C;YI SYLLABLE BIE;Lo;0;L;;;;;N;;;;;
+A01D;YI SYLLABLE BIEP;Lo;0;L;;;;;N;;;;;
+A01E;YI SYLLABLE BAT;Lo;0;L;;;;;N;;;;;
+A01F;YI SYLLABLE BAX;Lo;0;L;;;;;N;;;;;
+A020;YI SYLLABLE BA;Lo;0;L;;;;;N;;;;;
+A021;YI SYLLABLE BAP;Lo;0;L;;;;;N;;;;;
+A022;YI SYLLABLE BUOX;Lo;0;L;;;;;N;;;;;
+A023;YI SYLLABLE BUO;Lo;0;L;;;;;N;;;;;
+A024;YI SYLLABLE BUOP;Lo;0;L;;;;;N;;;;;
+A025;YI SYLLABLE BOT;Lo;0;L;;;;;N;;;;;
+A026;YI SYLLABLE BOX;Lo;0;L;;;;;N;;;;;
+A027;YI SYLLABLE BO;Lo;0;L;;;;;N;;;;;
+A028;YI SYLLABLE BOP;Lo;0;L;;;;;N;;;;;
+A029;YI SYLLABLE BEX;Lo;0;L;;;;;N;;;;;
+A02A;YI SYLLABLE BE;Lo;0;L;;;;;N;;;;;
+A02B;YI SYLLABLE BEP;Lo;0;L;;;;;N;;;;;
+A02C;YI SYLLABLE BUT;Lo;0;L;;;;;N;;;;;
+A02D;YI SYLLABLE BUX;Lo;0;L;;;;;N;;;;;
+A02E;YI SYLLABLE BU;Lo;0;L;;;;;N;;;;;
+A02F;YI SYLLABLE BUP;Lo;0;L;;;;;N;;;;;
+A030;YI SYLLABLE BURX;Lo;0;L;;;;;N;;;;;
+A031;YI SYLLABLE BUR;Lo;0;L;;;;;N;;;;;
+A032;YI SYLLABLE BYT;Lo;0;L;;;;;N;;;;;
+A033;YI SYLLABLE BYX;Lo;0;L;;;;;N;;;;;
+A034;YI SYLLABLE BY;Lo;0;L;;;;;N;;;;;
+A035;YI SYLLABLE BYP;Lo;0;L;;;;;N;;;;;
+A036;YI SYLLABLE BYRX;Lo;0;L;;;;;N;;;;;
+A037;YI SYLLABLE BYR;Lo;0;L;;;;;N;;;;;
+A038;YI SYLLABLE PIT;Lo;0;L;;;;;N;;;;;
+A039;YI SYLLABLE PIX;Lo;0;L;;;;;N;;;;;
+A03A;YI SYLLABLE PI;Lo;0;L;;;;;N;;;;;
+A03B;YI SYLLABLE PIP;Lo;0;L;;;;;N;;;;;
+A03C;YI SYLLABLE PIEX;Lo;0;L;;;;;N;;;;;
+A03D;YI SYLLABLE PIE;Lo;0;L;;;;;N;;;;;
+A03E;YI SYLLABLE PIEP;Lo;0;L;;;;;N;;;;;
+A03F;YI SYLLABLE PAT;Lo;0;L;;;;;N;;;;;
+A040;YI SYLLABLE PAX;Lo;0;L;;;;;N;;;;;
+A041;YI SYLLABLE PA;Lo;0;L;;;;;N;;;;;
+A042;YI SYLLABLE PAP;Lo;0;L;;;;;N;;;;;
+A043;YI SYLLABLE PUOX;Lo;0;L;;;;;N;;;;;
+A044;YI SYLLABLE PUO;Lo;0;L;;;;;N;;;;;
+A045;YI SYLLABLE PUOP;Lo;0;L;;;;;N;;;;;
+A046;YI SYLLABLE POT;Lo;0;L;;;;;N;;;;;
+A047;YI SYLLABLE POX;Lo;0;L;;;;;N;;;;;
+A048;YI SYLLABLE PO;Lo;0;L;;;;;N;;;;;
+A049;YI SYLLABLE POP;Lo;0;L;;;;;N;;;;;
+A04A;YI SYLLABLE PUT;Lo;0;L;;;;;N;;;;;
+A04B;YI SYLLABLE PUX;Lo;0;L;;;;;N;;;;;
+A04C;YI SYLLABLE PU;Lo;0;L;;;;;N;;;;;
+A04D;YI SYLLABLE PUP;Lo;0;L;;;;;N;;;;;
+A04E;YI SYLLABLE PURX;Lo;0;L;;;;;N;;;;;
+A04F;YI SYLLABLE PUR;Lo;0;L;;;;;N;;;;;
+A050;YI SYLLABLE PYT;Lo;0;L;;;;;N;;;;;
+A051;YI SYLLABLE PYX;Lo;0;L;;;;;N;;;;;
+A052;YI SYLLABLE PY;Lo;0;L;;;;;N;;;;;
+A053;YI SYLLABLE PYP;Lo;0;L;;;;;N;;;;;
+A054;YI SYLLABLE PYRX;Lo;0;L;;;;;N;;;;;
+A055;YI SYLLABLE PYR;Lo;0;L;;;;;N;;;;;
+A056;YI SYLLABLE BBIT;Lo;0;L;;;;;N;;;;;
+A057;YI SYLLABLE BBIX;Lo;0;L;;;;;N;;;;;
+A058;YI SYLLABLE BBI;Lo;0;L;;;;;N;;;;;
+A059;YI SYLLABLE BBIP;Lo;0;L;;;;;N;;;;;
+A05A;YI SYLLABLE BBIET;Lo;0;L;;;;;N;;;;;
+A05B;YI SYLLABLE BBIEX;Lo;0;L;;;;;N;;;;;
+A05C;YI SYLLABLE BBIE;Lo;0;L;;;;;N;;;;;
+A05D;YI SYLLABLE BBIEP;Lo;0;L;;;;;N;;;;;
+A05E;YI SYLLABLE BBAT;Lo;0;L;;;;;N;;;;;
+A05F;YI SYLLABLE BBAX;Lo;0;L;;;;;N;;;;;
+A060;YI SYLLABLE BBA;Lo;0;L;;;;;N;;;;;
+A061;YI SYLLABLE BBAP;Lo;0;L;;;;;N;;;;;
+A062;YI SYLLABLE BBUOX;Lo;0;L;;;;;N;;;;;
+A063;YI SYLLABLE BBUO;Lo;0;L;;;;;N;;;;;
+A064;YI SYLLABLE BBUOP;Lo;0;L;;;;;N;;;;;
+A065;YI SYLLABLE BBOT;Lo;0;L;;;;;N;;;;;
+A066;YI SYLLABLE BBOX;Lo;0;L;;;;;N;;;;;
+A067;YI SYLLABLE BBO;Lo;0;L;;;;;N;;;;;
+A068;YI SYLLABLE BBOP;Lo;0;L;;;;;N;;;;;
+A069;YI SYLLABLE BBEX;Lo;0;L;;;;;N;;;;;
+A06A;YI SYLLABLE BBE;Lo;0;L;;;;;N;;;;;
+A06B;YI SYLLABLE BBEP;Lo;0;L;;;;;N;;;;;
+A06C;YI SYLLABLE BBUT;Lo;0;L;;;;;N;;;;;
+A06D;YI SYLLABLE BBUX;Lo;0;L;;;;;N;;;;;
+A06E;YI SYLLABLE BBU;Lo;0;L;;;;;N;;;;;
+A06F;YI SYLLABLE BBUP;Lo;0;L;;;;;N;;;;;
+A070;YI SYLLABLE BBURX;Lo;0;L;;;;;N;;;;;
+A071;YI SYLLABLE BBUR;Lo;0;L;;;;;N;;;;;
+A072;YI SYLLABLE BBYT;Lo;0;L;;;;;N;;;;;
+A073;YI SYLLABLE BBYX;Lo;0;L;;;;;N;;;;;
+A074;YI SYLLABLE BBY;Lo;0;L;;;;;N;;;;;
+A075;YI SYLLABLE BBYP;Lo;0;L;;;;;N;;;;;
+A076;YI SYLLABLE NBIT;Lo;0;L;;;;;N;;;;;
+A077;YI SYLLABLE NBIX;Lo;0;L;;;;;N;;;;;
+A078;YI SYLLABLE NBI;Lo;0;L;;;;;N;;;;;
+A079;YI SYLLABLE NBIP;Lo;0;L;;;;;N;;;;;
+A07A;YI SYLLABLE NBIEX;Lo;0;L;;;;;N;;;;;
+A07B;YI SYLLABLE NBIE;Lo;0;L;;;;;N;;;;;
+A07C;YI SYLLABLE NBIEP;Lo;0;L;;;;;N;;;;;
+A07D;YI SYLLABLE NBAT;Lo;0;L;;;;;N;;;;;
+A07E;YI SYLLABLE NBAX;Lo;0;L;;;;;N;;;;;
+A07F;YI SYLLABLE NBA;Lo;0;L;;;;;N;;;;;
+A080;YI SYLLABLE NBAP;Lo;0;L;;;;;N;;;;;
+A081;YI SYLLABLE NBOT;Lo;0;L;;;;;N;;;;;
+A082;YI SYLLABLE NBOX;Lo;0;L;;;;;N;;;;;
+A083;YI SYLLABLE NBO;Lo;0;L;;;;;N;;;;;
+A084;YI SYLLABLE NBOP;Lo;0;L;;;;;N;;;;;
+A085;YI SYLLABLE NBUT;Lo;0;L;;;;;N;;;;;
+A086;YI SYLLABLE NBUX;Lo;0;L;;;;;N;;;;;
+A087;YI SYLLABLE NBU;Lo;0;L;;;;;N;;;;;
+A088;YI SYLLABLE NBUP;Lo;0;L;;;;;N;;;;;
+A089;YI SYLLABLE NBURX;Lo;0;L;;;;;N;;;;;
+A08A;YI SYLLABLE NBUR;Lo;0;L;;;;;N;;;;;
+A08B;YI SYLLABLE NBYT;Lo;0;L;;;;;N;;;;;
+A08C;YI SYLLABLE NBYX;Lo;0;L;;;;;N;;;;;
+A08D;YI SYLLABLE NBY;Lo;0;L;;;;;N;;;;;
+A08E;YI SYLLABLE NBYP;Lo;0;L;;;;;N;;;;;
+A08F;YI SYLLABLE NBYRX;Lo;0;L;;;;;N;;;;;
+A090;YI SYLLABLE NBYR;Lo;0;L;;;;;N;;;;;
+A091;YI SYLLABLE HMIT;Lo;0;L;;;;;N;;;;;
+A092;YI SYLLABLE HMIX;Lo;0;L;;;;;N;;;;;
+A093;YI SYLLABLE HMI;Lo;0;L;;;;;N;;;;;
+A094;YI SYLLABLE HMIP;Lo;0;L;;;;;N;;;;;
+A095;YI SYLLABLE HMIEX;Lo;0;L;;;;;N;;;;;
+A096;YI SYLLABLE HMIE;Lo;0;L;;;;;N;;;;;
+A097;YI SYLLABLE HMIEP;Lo;0;L;;;;;N;;;;;
+A098;YI SYLLABLE HMAT;Lo;0;L;;;;;N;;;;;
+A099;YI SYLLABLE HMAX;Lo;0;L;;;;;N;;;;;
+A09A;YI SYLLABLE HMA;Lo;0;L;;;;;N;;;;;
+A09B;YI SYLLABLE HMAP;Lo;0;L;;;;;N;;;;;
+A09C;YI SYLLABLE HMUOX;Lo;0;L;;;;;N;;;;;
+A09D;YI SYLLABLE HMUO;Lo;0;L;;;;;N;;;;;
+A09E;YI SYLLABLE HMUOP;Lo;0;L;;;;;N;;;;;
+A09F;YI SYLLABLE HMOT;Lo;0;L;;;;;N;;;;;
+A0A0;YI SYLLABLE HMOX;Lo;0;L;;;;;N;;;;;
+A0A1;YI SYLLABLE HMO;Lo;0;L;;;;;N;;;;;
+A0A2;YI SYLLABLE HMOP;Lo;0;L;;;;;N;;;;;
+A0A3;YI SYLLABLE HMUT;Lo;0;L;;;;;N;;;;;
+A0A4;YI SYLLABLE HMUX;Lo;0;L;;;;;N;;;;;
+A0A5;YI SYLLABLE HMU;Lo;0;L;;;;;N;;;;;
+A0A6;YI SYLLABLE HMUP;Lo;0;L;;;;;N;;;;;
+A0A7;YI SYLLABLE HMURX;Lo;0;L;;;;;N;;;;;
+A0A8;YI SYLLABLE HMUR;Lo;0;L;;;;;N;;;;;
+A0A9;YI SYLLABLE HMYX;Lo;0;L;;;;;N;;;;;
+A0AA;YI SYLLABLE HMY;Lo;0;L;;;;;N;;;;;
+A0AB;YI SYLLABLE HMYP;Lo;0;L;;;;;N;;;;;
+A0AC;YI SYLLABLE HMYRX;Lo;0;L;;;;;N;;;;;
+A0AD;YI SYLLABLE HMYR;Lo;0;L;;;;;N;;;;;
+A0AE;YI SYLLABLE MIT;Lo;0;L;;;;;N;;;;;
+A0AF;YI SYLLABLE MIX;Lo;0;L;;;;;N;;;;;
+A0B0;YI SYLLABLE MI;Lo;0;L;;;;;N;;;;;
+A0B1;YI SYLLABLE MIP;Lo;0;L;;;;;N;;;;;
+A0B2;YI SYLLABLE MIEX;Lo;0;L;;;;;N;;;;;
+A0B3;YI SYLLABLE MIE;Lo;0;L;;;;;N;;;;;
+A0B4;YI SYLLABLE MIEP;Lo;0;L;;;;;N;;;;;
+A0B5;YI SYLLABLE MAT;Lo;0;L;;;;;N;;;;;
+A0B6;YI SYLLABLE MAX;Lo;0;L;;;;;N;;;;;
+A0B7;YI SYLLABLE MA;Lo;0;L;;;;;N;;;;;
+A0B8;YI SYLLABLE MAP;Lo;0;L;;;;;N;;;;;
+A0B9;YI SYLLABLE MUOT;Lo;0;L;;;;;N;;;;;
+A0BA;YI SYLLABLE MUOX;Lo;0;L;;;;;N;;;;;
+A0BB;YI SYLLABLE MUO;Lo;0;L;;;;;N;;;;;
+A0BC;YI SYLLABLE MUOP;Lo;0;L;;;;;N;;;;;
+A0BD;YI SYLLABLE MOT;Lo;0;L;;;;;N;;;;;
+A0BE;YI SYLLABLE MOX;Lo;0;L;;;;;N;;;;;
+A0BF;YI SYLLABLE MO;Lo;0;L;;;;;N;;;;;
+A0C0;YI SYLLABLE MOP;Lo;0;L;;;;;N;;;;;
+A0C1;YI SYLLABLE MEX;Lo;0;L;;;;;N;;;;;
+A0C2;YI SYLLABLE ME;Lo;0;L;;;;;N;;;;;
+A0C3;YI SYLLABLE MUT;Lo;0;L;;;;;N;;;;;
+A0C4;YI SYLLABLE MUX;Lo;0;L;;;;;N;;;;;
+A0C5;YI SYLLABLE MU;Lo;0;L;;;;;N;;;;;
+A0C6;YI SYLLABLE MUP;Lo;0;L;;;;;N;;;;;
+A0C7;YI SYLLABLE MURX;Lo;0;L;;;;;N;;;;;
+A0C8;YI SYLLABLE MUR;Lo;0;L;;;;;N;;;;;
+A0C9;YI SYLLABLE MYT;Lo;0;L;;;;;N;;;;;
+A0CA;YI SYLLABLE MYX;Lo;0;L;;;;;N;;;;;
+A0CB;YI SYLLABLE MY;Lo;0;L;;;;;N;;;;;
+A0CC;YI SYLLABLE MYP;Lo;0;L;;;;;N;;;;;
+A0CD;YI SYLLABLE FIT;Lo;0;L;;;;;N;;;;;
+A0CE;YI SYLLABLE FIX;Lo;0;L;;;;;N;;;;;
+A0CF;YI SYLLABLE FI;Lo;0;L;;;;;N;;;;;
+A0D0;YI SYLLABLE FIP;Lo;0;L;;;;;N;;;;;
+A0D1;YI SYLLABLE FAT;Lo;0;L;;;;;N;;;;;
+A0D2;YI SYLLABLE FAX;Lo;0;L;;;;;N;;;;;
+A0D3;YI SYLLABLE FA;Lo;0;L;;;;;N;;;;;
+A0D4;YI SYLLABLE FAP;Lo;0;L;;;;;N;;;;;
+A0D5;YI SYLLABLE FOX;Lo;0;L;;;;;N;;;;;
+A0D6;YI SYLLABLE FO;Lo;0;L;;;;;N;;;;;
+A0D7;YI SYLLABLE FOP;Lo;0;L;;;;;N;;;;;
+A0D8;YI SYLLABLE FUT;Lo;0;L;;;;;N;;;;;
+A0D9;YI SYLLABLE FUX;Lo;0;L;;;;;N;;;;;
+A0DA;YI SYLLABLE FU;Lo;0;L;;;;;N;;;;;
+A0DB;YI SYLLABLE FUP;Lo;0;L;;;;;N;;;;;
+A0DC;YI SYLLABLE FURX;Lo;0;L;;;;;N;;;;;
+A0DD;YI SYLLABLE FUR;Lo;0;L;;;;;N;;;;;
+A0DE;YI SYLLABLE FYT;Lo;0;L;;;;;N;;;;;
+A0DF;YI SYLLABLE FYX;Lo;0;L;;;;;N;;;;;
+A0E0;YI SYLLABLE FY;Lo;0;L;;;;;N;;;;;
+A0E1;YI SYLLABLE FYP;Lo;0;L;;;;;N;;;;;
+A0E2;YI SYLLABLE VIT;Lo;0;L;;;;;N;;;;;
+A0E3;YI SYLLABLE VIX;Lo;0;L;;;;;N;;;;;
+A0E4;YI SYLLABLE VI;Lo;0;L;;;;;N;;;;;
+A0E5;YI SYLLABLE VIP;Lo;0;L;;;;;N;;;;;
+A0E6;YI SYLLABLE VIET;Lo;0;L;;;;;N;;;;;
+A0E7;YI SYLLABLE VIEX;Lo;0;L;;;;;N;;;;;
+A0E8;YI SYLLABLE VIE;Lo;0;L;;;;;N;;;;;
+A0E9;YI SYLLABLE VIEP;Lo;0;L;;;;;N;;;;;
+A0EA;YI SYLLABLE VAT;Lo;0;L;;;;;N;;;;;
+A0EB;YI SYLLABLE VAX;Lo;0;L;;;;;N;;;;;
+A0EC;YI SYLLABLE VA;Lo;0;L;;;;;N;;;;;
+A0ED;YI SYLLABLE VAP;Lo;0;L;;;;;N;;;;;
+A0EE;YI SYLLABLE VOT;Lo;0;L;;;;;N;;;;;
+A0EF;YI SYLLABLE VOX;Lo;0;L;;;;;N;;;;;
+A0F0;YI SYLLABLE VO;Lo;0;L;;;;;N;;;;;
+A0F1;YI SYLLABLE VOP;Lo;0;L;;;;;N;;;;;
+A0F2;YI SYLLABLE VEX;Lo;0;L;;;;;N;;;;;
+A0F3;YI SYLLABLE VEP;Lo;0;L;;;;;N;;;;;
+A0F4;YI SYLLABLE VUT;Lo;0;L;;;;;N;;;;;
+A0F5;YI SYLLABLE VUX;Lo;0;L;;;;;N;;;;;
+A0F6;YI SYLLABLE VU;Lo;0;L;;;;;N;;;;;
+A0F7;YI SYLLABLE VUP;Lo;0;L;;;;;N;;;;;
+A0F8;YI SYLLABLE VURX;Lo;0;L;;;;;N;;;;;
+A0F9;YI SYLLABLE VUR;Lo;0;L;;;;;N;;;;;
+A0FA;YI SYLLABLE VYT;Lo;0;L;;;;;N;;;;;
+A0FB;YI SYLLABLE VYX;Lo;0;L;;;;;N;;;;;
+A0FC;YI SYLLABLE VY;Lo;0;L;;;;;N;;;;;
+A0FD;YI SYLLABLE VYP;Lo;0;L;;;;;N;;;;;
+A0FE;YI SYLLABLE VYRX;Lo;0;L;;;;;N;;;;;
+A0FF;YI SYLLABLE VYR;Lo;0;L;;;;;N;;;;;
+A100;YI SYLLABLE DIT;Lo;0;L;;;;;N;;;;;
+A101;YI SYLLABLE DIX;Lo;0;L;;;;;N;;;;;
+A102;YI SYLLABLE DI;Lo;0;L;;;;;N;;;;;
+A103;YI SYLLABLE DIP;Lo;0;L;;;;;N;;;;;
+A104;YI SYLLABLE DIEX;Lo;0;L;;;;;N;;;;;
+A105;YI SYLLABLE DIE;Lo;0;L;;;;;N;;;;;
+A106;YI SYLLABLE DIEP;Lo;0;L;;;;;N;;;;;
+A107;YI SYLLABLE DAT;Lo;0;L;;;;;N;;;;;
+A108;YI SYLLABLE DAX;Lo;0;L;;;;;N;;;;;
+A109;YI SYLLABLE DA;Lo;0;L;;;;;N;;;;;
+A10A;YI SYLLABLE DAP;Lo;0;L;;;;;N;;;;;
+A10B;YI SYLLABLE DUOX;Lo;0;L;;;;;N;;;;;
+A10C;YI SYLLABLE DUO;Lo;0;L;;;;;N;;;;;
+A10D;YI SYLLABLE DOT;Lo;0;L;;;;;N;;;;;
+A10E;YI SYLLABLE DOX;Lo;0;L;;;;;N;;;;;
+A10F;YI SYLLABLE DO;Lo;0;L;;;;;N;;;;;
+A110;YI SYLLABLE DOP;Lo;0;L;;;;;N;;;;;
+A111;YI SYLLABLE DEX;Lo;0;L;;;;;N;;;;;
+A112;YI SYLLABLE DE;Lo;0;L;;;;;N;;;;;
+A113;YI SYLLABLE DEP;Lo;0;L;;;;;N;;;;;
+A114;YI SYLLABLE DUT;Lo;0;L;;;;;N;;;;;
+A115;YI SYLLABLE DUX;Lo;0;L;;;;;N;;;;;
+A116;YI SYLLABLE DU;Lo;0;L;;;;;N;;;;;
+A117;YI SYLLABLE DUP;Lo;0;L;;;;;N;;;;;
+A118;YI SYLLABLE DURX;Lo;0;L;;;;;N;;;;;
+A119;YI SYLLABLE DUR;Lo;0;L;;;;;N;;;;;
+A11A;YI SYLLABLE TIT;Lo;0;L;;;;;N;;;;;
+A11B;YI SYLLABLE TIX;Lo;0;L;;;;;N;;;;;
+A11C;YI SYLLABLE TI;Lo;0;L;;;;;N;;;;;
+A11D;YI SYLLABLE TIP;Lo;0;L;;;;;N;;;;;
+A11E;YI SYLLABLE TIEX;Lo;0;L;;;;;N;;;;;
+A11F;YI SYLLABLE TIE;Lo;0;L;;;;;N;;;;;
+A120;YI SYLLABLE TIEP;Lo;0;L;;;;;N;;;;;
+A121;YI SYLLABLE TAT;Lo;0;L;;;;;N;;;;;
+A122;YI SYLLABLE TAX;Lo;0;L;;;;;N;;;;;
+A123;YI SYLLABLE TA;Lo;0;L;;;;;N;;;;;
+A124;YI SYLLABLE TAP;Lo;0;L;;;;;N;;;;;
+A125;YI SYLLABLE TUOT;Lo;0;L;;;;;N;;;;;
+A126;YI SYLLABLE TUOX;Lo;0;L;;;;;N;;;;;
+A127;YI SYLLABLE TUO;Lo;0;L;;;;;N;;;;;
+A128;YI SYLLABLE TUOP;Lo;0;L;;;;;N;;;;;
+A129;YI SYLLABLE TOT;Lo;0;L;;;;;N;;;;;
+A12A;YI SYLLABLE TOX;Lo;0;L;;;;;N;;;;;
+A12B;YI SYLLABLE TO;Lo;0;L;;;;;N;;;;;
+A12C;YI SYLLABLE TOP;Lo;0;L;;;;;N;;;;;
+A12D;YI SYLLABLE TEX;Lo;0;L;;;;;N;;;;;
+A12E;YI SYLLABLE TE;Lo;0;L;;;;;N;;;;;
+A12F;YI SYLLABLE TEP;Lo;0;L;;;;;N;;;;;
+A130;YI SYLLABLE TUT;Lo;0;L;;;;;N;;;;;
+A131;YI SYLLABLE TUX;Lo;0;L;;;;;N;;;;;
+A132;YI SYLLABLE TU;Lo;0;L;;;;;N;;;;;
+A133;YI SYLLABLE TUP;Lo;0;L;;;;;N;;;;;
+A134;YI SYLLABLE TURX;Lo;0;L;;;;;N;;;;;
+A135;YI SYLLABLE TUR;Lo;0;L;;;;;N;;;;;
+A136;YI SYLLABLE DDIT;Lo;0;L;;;;;N;;;;;
+A137;YI SYLLABLE DDIX;Lo;0;L;;;;;N;;;;;
+A138;YI SYLLABLE DDI;Lo;0;L;;;;;N;;;;;
+A139;YI SYLLABLE DDIP;Lo;0;L;;;;;N;;;;;
+A13A;YI SYLLABLE DDIEX;Lo;0;L;;;;;N;;;;;
+A13B;YI SYLLABLE DDIE;Lo;0;L;;;;;N;;;;;
+A13C;YI SYLLABLE DDIEP;Lo;0;L;;;;;N;;;;;
+A13D;YI SYLLABLE DDAT;Lo;0;L;;;;;N;;;;;
+A13E;YI SYLLABLE DDAX;Lo;0;L;;;;;N;;;;;
+A13F;YI SYLLABLE DDA;Lo;0;L;;;;;N;;;;;
+A140;YI SYLLABLE DDAP;Lo;0;L;;;;;N;;;;;
+A141;YI SYLLABLE DDUOX;Lo;0;L;;;;;N;;;;;
+A142;YI SYLLABLE DDUO;Lo;0;L;;;;;N;;;;;
+A143;YI SYLLABLE DDUOP;Lo;0;L;;;;;N;;;;;
+A144;YI SYLLABLE DDOT;Lo;0;L;;;;;N;;;;;
+A145;YI SYLLABLE DDOX;Lo;0;L;;;;;N;;;;;
+A146;YI SYLLABLE DDO;Lo;0;L;;;;;N;;;;;
+A147;YI SYLLABLE DDOP;Lo;0;L;;;;;N;;;;;
+A148;YI SYLLABLE DDEX;Lo;0;L;;;;;N;;;;;
+A149;YI SYLLABLE DDE;Lo;0;L;;;;;N;;;;;
+A14A;YI SYLLABLE DDEP;Lo;0;L;;;;;N;;;;;
+A14B;YI SYLLABLE DDUT;Lo;0;L;;;;;N;;;;;
+A14C;YI SYLLABLE DDUX;Lo;0;L;;;;;N;;;;;
+A14D;YI SYLLABLE DDU;Lo;0;L;;;;;N;;;;;
+A14E;YI SYLLABLE DDUP;Lo;0;L;;;;;N;;;;;
+A14F;YI SYLLABLE DDURX;Lo;0;L;;;;;N;;;;;
+A150;YI SYLLABLE DDUR;Lo;0;L;;;;;N;;;;;
+A151;YI SYLLABLE NDIT;Lo;0;L;;;;;N;;;;;
+A152;YI SYLLABLE NDIX;Lo;0;L;;;;;N;;;;;
+A153;YI SYLLABLE NDI;Lo;0;L;;;;;N;;;;;
+A154;YI SYLLABLE NDIP;Lo;0;L;;;;;N;;;;;
+A155;YI SYLLABLE NDIEX;Lo;0;L;;;;;N;;;;;
+A156;YI SYLLABLE NDIE;Lo;0;L;;;;;N;;;;;
+A157;YI SYLLABLE NDAT;Lo;0;L;;;;;N;;;;;
+A158;YI SYLLABLE NDAX;Lo;0;L;;;;;N;;;;;
+A159;YI SYLLABLE NDA;Lo;0;L;;;;;N;;;;;
+A15A;YI SYLLABLE NDAP;Lo;0;L;;;;;N;;;;;
+A15B;YI SYLLABLE NDOT;Lo;0;L;;;;;N;;;;;
+A15C;YI SYLLABLE NDOX;Lo;0;L;;;;;N;;;;;
+A15D;YI SYLLABLE NDO;Lo;0;L;;;;;N;;;;;
+A15E;YI SYLLABLE NDOP;Lo;0;L;;;;;N;;;;;
+A15F;YI SYLLABLE NDEX;Lo;0;L;;;;;N;;;;;
+A160;YI SYLLABLE NDE;Lo;0;L;;;;;N;;;;;
+A161;YI SYLLABLE NDEP;Lo;0;L;;;;;N;;;;;
+A162;YI SYLLABLE NDUT;Lo;0;L;;;;;N;;;;;
+A163;YI SYLLABLE NDUX;Lo;0;L;;;;;N;;;;;
+A164;YI SYLLABLE NDU;Lo;0;L;;;;;N;;;;;
+A165;YI SYLLABLE NDUP;Lo;0;L;;;;;N;;;;;
+A166;YI SYLLABLE NDURX;Lo;0;L;;;;;N;;;;;
+A167;YI SYLLABLE NDUR;Lo;0;L;;;;;N;;;;;
+A168;YI SYLLABLE HNIT;Lo;0;L;;;;;N;;;;;
+A169;YI SYLLABLE HNIX;Lo;0;L;;;;;N;;;;;
+A16A;YI SYLLABLE HNI;Lo;0;L;;;;;N;;;;;
+A16B;YI SYLLABLE HNIP;Lo;0;L;;;;;N;;;;;
+A16C;YI SYLLABLE HNIET;Lo;0;L;;;;;N;;;;;
+A16D;YI SYLLABLE HNIEX;Lo;0;L;;;;;N;;;;;
+A16E;YI SYLLABLE HNIE;Lo;0;L;;;;;N;;;;;
+A16F;YI SYLLABLE HNIEP;Lo;0;L;;;;;N;;;;;
+A170;YI SYLLABLE HNAT;Lo;0;L;;;;;N;;;;;
+A171;YI SYLLABLE HNAX;Lo;0;L;;;;;N;;;;;
+A172;YI SYLLABLE HNA;Lo;0;L;;;;;N;;;;;
+A173;YI SYLLABLE HNAP;Lo;0;L;;;;;N;;;;;
+A174;YI SYLLABLE HNUOX;Lo;0;L;;;;;N;;;;;
+A175;YI SYLLABLE HNUO;Lo;0;L;;;;;N;;;;;
+A176;YI SYLLABLE HNOT;Lo;0;L;;;;;N;;;;;
+A177;YI SYLLABLE HNOX;Lo;0;L;;;;;N;;;;;
+A178;YI SYLLABLE HNOP;Lo;0;L;;;;;N;;;;;
+A179;YI SYLLABLE HNEX;Lo;0;L;;;;;N;;;;;
+A17A;YI SYLLABLE HNE;Lo;0;L;;;;;N;;;;;
+A17B;YI SYLLABLE HNEP;Lo;0;L;;;;;N;;;;;
+A17C;YI SYLLABLE HNUT;Lo;0;L;;;;;N;;;;;
+A17D;YI SYLLABLE NIT;Lo;0;L;;;;;N;;;;;
+A17E;YI SYLLABLE NIX;Lo;0;L;;;;;N;;;;;
+A17F;YI SYLLABLE NI;Lo;0;L;;;;;N;;;;;
+A180;YI SYLLABLE NIP;Lo;0;L;;;;;N;;;;;
+A181;YI SYLLABLE NIEX;Lo;0;L;;;;;N;;;;;
+A182;YI SYLLABLE NIE;Lo;0;L;;;;;N;;;;;
+A183;YI SYLLABLE NIEP;Lo;0;L;;;;;N;;;;;
+A184;YI SYLLABLE NAX;Lo;0;L;;;;;N;;;;;
+A185;YI SYLLABLE NA;Lo;0;L;;;;;N;;;;;
+A186;YI SYLLABLE NAP;Lo;0;L;;;;;N;;;;;
+A187;YI SYLLABLE NUOX;Lo;0;L;;;;;N;;;;;
+A188;YI SYLLABLE NUO;Lo;0;L;;;;;N;;;;;
+A189;YI SYLLABLE NUOP;Lo;0;L;;;;;N;;;;;
+A18A;YI SYLLABLE NOT;Lo;0;L;;;;;N;;;;;
+A18B;YI SYLLABLE NOX;Lo;0;L;;;;;N;;;;;
+A18C;YI SYLLABLE NO;Lo;0;L;;;;;N;;;;;
+A18D;YI SYLLABLE NOP;Lo;0;L;;;;;N;;;;;
+A18E;YI SYLLABLE NEX;Lo;0;L;;;;;N;;;;;
+A18F;YI SYLLABLE NE;Lo;0;L;;;;;N;;;;;
+A190;YI SYLLABLE NEP;Lo;0;L;;;;;N;;;;;
+A191;YI SYLLABLE NUT;Lo;0;L;;;;;N;;;;;
+A192;YI SYLLABLE NUX;Lo;0;L;;;;;N;;;;;
+A193;YI SYLLABLE NU;Lo;0;L;;;;;N;;;;;
+A194;YI SYLLABLE NUP;Lo;0;L;;;;;N;;;;;
+A195;YI SYLLABLE NURX;Lo;0;L;;;;;N;;;;;
+A196;YI SYLLABLE NUR;Lo;0;L;;;;;N;;;;;
+A197;YI SYLLABLE HLIT;Lo;0;L;;;;;N;;;;;
+A198;YI SYLLABLE HLIX;Lo;0;L;;;;;N;;;;;
+A199;YI SYLLABLE HLI;Lo;0;L;;;;;N;;;;;
+A19A;YI SYLLABLE HLIP;Lo;0;L;;;;;N;;;;;
+A19B;YI SYLLABLE HLIEX;Lo;0;L;;;;;N;;;;;
+A19C;YI SYLLABLE HLIE;Lo;0;L;;;;;N;;;;;
+A19D;YI SYLLABLE HLIEP;Lo;0;L;;;;;N;;;;;
+A19E;YI SYLLABLE HLAT;Lo;0;L;;;;;N;;;;;
+A19F;YI SYLLABLE HLAX;Lo;0;L;;;;;N;;;;;
+A1A0;YI SYLLABLE HLA;Lo;0;L;;;;;N;;;;;
+A1A1;YI SYLLABLE HLAP;Lo;0;L;;;;;N;;;;;
+A1A2;YI SYLLABLE HLUOX;Lo;0;L;;;;;N;;;;;
+A1A3;YI SYLLABLE HLUO;Lo;0;L;;;;;N;;;;;
+A1A4;YI SYLLABLE HLUOP;Lo;0;L;;;;;N;;;;;
+A1A5;YI SYLLABLE HLOX;Lo;0;L;;;;;N;;;;;
+A1A6;YI SYLLABLE HLO;Lo;0;L;;;;;N;;;;;
+A1A7;YI SYLLABLE HLOP;Lo;0;L;;;;;N;;;;;
+A1A8;YI SYLLABLE HLEX;Lo;0;L;;;;;N;;;;;
+A1A9;YI SYLLABLE HLE;Lo;0;L;;;;;N;;;;;
+A1AA;YI SYLLABLE HLEP;Lo;0;L;;;;;N;;;;;
+A1AB;YI SYLLABLE HLUT;Lo;0;L;;;;;N;;;;;
+A1AC;YI SYLLABLE HLUX;Lo;0;L;;;;;N;;;;;
+A1AD;YI SYLLABLE HLU;Lo;0;L;;;;;N;;;;;
+A1AE;YI SYLLABLE HLUP;Lo;0;L;;;;;N;;;;;
+A1AF;YI SYLLABLE HLURX;Lo;0;L;;;;;N;;;;;
+A1B0;YI SYLLABLE HLUR;Lo;0;L;;;;;N;;;;;
+A1B1;YI SYLLABLE HLYT;Lo;0;L;;;;;N;;;;;
+A1B2;YI SYLLABLE HLYX;Lo;0;L;;;;;N;;;;;
+A1B3;YI SYLLABLE HLY;Lo;0;L;;;;;N;;;;;
+A1B4;YI SYLLABLE HLYP;Lo;0;L;;;;;N;;;;;
+A1B5;YI SYLLABLE HLYRX;Lo;0;L;;;;;N;;;;;
+A1B6;YI SYLLABLE HLYR;Lo;0;L;;;;;N;;;;;
+A1B7;YI SYLLABLE LIT;Lo;0;L;;;;;N;;;;;
+A1B8;YI SYLLABLE LIX;Lo;0;L;;;;;N;;;;;
+A1B9;YI SYLLABLE LI;Lo;0;L;;;;;N;;;;;
+A1BA;YI SYLLABLE LIP;Lo;0;L;;;;;N;;;;;
+A1BB;YI SYLLABLE LIET;Lo;0;L;;;;;N;;;;;
+A1BC;YI SYLLABLE LIEX;Lo;0;L;;;;;N;;;;;
+A1BD;YI SYLLABLE LIE;Lo;0;L;;;;;N;;;;;
+A1BE;YI SYLLABLE LIEP;Lo;0;L;;;;;N;;;;;
+A1BF;YI SYLLABLE LAT;Lo;0;L;;;;;N;;;;;
+A1C0;YI SYLLABLE LAX;Lo;0;L;;;;;N;;;;;
+A1C1;YI SYLLABLE LA;Lo;0;L;;;;;N;;;;;
+A1C2;YI SYLLABLE LAP;Lo;0;L;;;;;N;;;;;
+A1C3;YI SYLLABLE LUOT;Lo;0;L;;;;;N;;;;;
+A1C4;YI SYLLABLE LUOX;Lo;0;L;;;;;N;;;;;
+A1C5;YI SYLLABLE LUO;Lo;0;L;;;;;N;;;;;
+A1C6;YI SYLLABLE LUOP;Lo;0;L;;;;;N;;;;;
+A1C7;YI SYLLABLE LOT;Lo;0;L;;;;;N;;;;;
+A1C8;YI SYLLABLE LOX;Lo;0;L;;;;;N;;;;;
+A1C9;YI SYLLABLE LO;Lo;0;L;;;;;N;;;;;
+A1CA;YI SYLLABLE LOP;Lo;0;L;;;;;N;;;;;
+A1CB;YI SYLLABLE LEX;Lo;0;L;;;;;N;;;;;
+A1CC;YI SYLLABLE LE;Lo;0;L;;;;;N;;;;;
+A1CD;YI SYLLABLE LEP;Lo;0;L;;;;;N;;;;;
+A1CE;YI SYLLABLE LUT;Lo;0;L;;;;;N;;;;;
+A1CF;YI SYLLABLE LUX;Lo;0;L;;;;;N;;;;;
+A1D0;YI SYLLABLE LU;Lo;0;L;;;;;N;;;;;
+A1D1;YI SYLLABLE LUP;Lo;0;L;;;;;N;;;;;
+A1D2;YI SYLLABLE LURX;Lo;0;L;;;;;N;;;;;
+A1D3;YI SYLLABLE LUR;Lo;0;L;;;;;N;;;;;
+A1D4;YI SYLLABLE LYT;Lo;0;L;;;;;N;;;;;
+A1D5;YI SYLLABLE LYX;Lo;0;L;;;;;N;;;;;
+A1D6;YI SYLLABLE LY;Lo;0;L;;;;;N;;;;;
+A1D7;YI SYLLABLE LYP;Lo;0;L;;;;;N;;;;;
+A1D8;YI SYLLABLE LYRX;Lo;0;L;;;;;N;;;;;
+A1D9;YI SYLLABLE LYR;Lo;0;L;;;;;N;;;;;
+A1DA;YI SYLLABLE GIT;Lo;0;L;;;;;N;;;;;
+A1DB;YI SYLLABLE GIX;Lo;0;L;;;;;N;;;;;
+A1DC;YI SYLLABLE GI;Lo;0;L;;;;;N;;;;;
+A1DD;YI SYLLABLE GIP;Lo;0;L;;;;;N;;;;;
+A1DE;YI SYLLABLE GIET;Lo;0;L;;;;;N;;;;;
+A1DF;YI SYLLABLE GIEX;Lo;0;L;;;;;N;;;;;
+A1E0;YI SYLLABLE GIE;Lo;0;L;;;;;N;;;;;
+A1E1;YI SYLLABLE GIEP;Lo;0;L;;;;;N;;;;;
+A1E2;YI SYLLABLE GAT;Lo;0;L;;;;;N;;;;;
+A1E3;YI SYLLABLE GAX;Lo;0;L;;;;;N;;;;;
+A1E4;YI SYLLABLE GA;Lo;0;L;;;;;N;;;;;
+A1E5;YI SYLLABLE GAP;Lo;0;L;;;;;N;;;;;
+A1E6;YI SYLLABLE GUOT;Lo;0;L;;;;;N;;;;;
+A1E7;YI SYLLABLE GUOX;Lo;0;L;;;;;N;;;;;
+A1E8;YI SYLLABLE GUO;Lo;0;L;;;;;N;;;;;
+A1E9;YI SYLLABLE GUOP;Lo;0;L;;;;;N;;;;;
+A1EA;YI SYLLABLE GOT;Lo;0;L;;;;;N;;;;;
+A1EB;YI SYLLABLE GOX;Lo;0;L;;;;;N;;;;;
+A1EC;YI SYLLABLE GO;Lo;0;L;;;;;N;;;;;
+A1ED;YI SYLLABLE GOP;Lo;0;L;;;;;N;;;;;
+A1EE;YI SYLLABLE GET;Lo;0;L;;;;;N;;;;;
+A1EF;YI SYLLABLE GEX;Lo;0;L;;;;;N;;;;;
+A1F0;YI SYLLABLE GE;Lo;0;L;;;;;N;;;;;
+A1F1;YI SYLLABLE GEP;Lo;0;L;;;;;N;;;;;
+A1F2;YI SYLLABLE GUT;Lo;0;L;;;;;N;;;;;
+A1F3;YI SYLLABLE GUX;Lo;0;L;;;;;N;;;;;
+A1F4;YI SYLLABLE GU;Lo;0;L;;;;;N;;;;;
+A1F5;YI SYLLABLE GUP;Lo;0;L;;;;;N;;;;;
+A1F6;YI SYLLABLE GURX;Lo;0;L;;;;;N;;;;;
+A1F7;YI SYLLABLE GUR;Lo;0;L;;;;;N;;;;;
+A1F8;YI SYLLABLE KIT;Lo;0;L;;;;;N;;;;;
+A1F9;YI SYLLABLE KIX;Lo;0;L;;;;;N;;;;;
+A1FA;YI SYLLABLE KI;Lo;0;L;;;;;N;;;;;
+A1FB;YI SYLLABLE KIP;Lo;0;L;;;;;N;;;;;
+A1FC;YI SYLLABLE KIEX;Lo;0;L;;;;;N;;;;;
+A1FD;YI SYLLABLE KIE;Lo;0;L;;;;;N;;;;;
+A1FE;YI SYLLABLE KIEP;Lo;0;L;;;;;N;;;;;
+A1FF;YI SYLLABLE KAT;Lo;0;L;;;;;N;;;;;
+A200;YI SYLLABLE KAX;Lo;0;L;;;;;N;;;;;
+A201;YI SYLLABLE KA;Lo;0;L;;;;;N;;;;;
+A202;YI SYLLABLE KAP;Lo;0;L;;;;;N;;;;;
+A203;YI SYLLABLE KUOX;Lo;0;L;;;;;N;;;;;
+A204;YI SYLLABLE KUO;Lo;0;L;;;;;N;;;;;
+A205;YI SYLLABLE KUOP;Lo;0;L;;;;;N;;;;;
+A206;YI SYLLABLE KOT;Lo;0;L;;;;;N;;;;;
+A207;YI SYLLABLE KOX;Lo;0;L;;;;;N;;;;;
+A208;YI SYLLABLE KO;Lo;0;L;;;;;N;;;;;
+A209;YI SYLLABLE KOP;Lo;0;L;;;;;N;;;;;
+A20A;YI SYLLABLE KET;Lo;0;L;;;;;N;;;;;
+A20B;YI SYLLABLE KEX;Lo;0;L;;;;;N;;;;;
+A20C;YI SYLLABLE KE;Lo;0;L;;;;;N;;;;;
+A20D;YI SYLLABLE KEP;Lo;0;L;;;;;N;;;;;
+A20E;YI SYLLABLE KUT;Lo;0;L;;;;;N;;;;;
+A20F;YI SYLLABLE KUX;Lo;0;L;;;;;N;;;;;
+A210;YI SYLLABLE KU;Lo;0;L;;;;;N;;;;;
+A211;YI SYLLABLE KUP;Lo;0;L;;;;;N;;;;;
+A212;YI SYLLABLE KURX;Lo;0;L;;;;;N;;;;;
+A213;YI SYLLABLE KUR;Lo;0;L;;;;;N;;;;;
+A214;YI SYLLABLE GGIT;Lo;0;L;;;;;N;;;;;
+A215;YI SYLLABLE GGIX;Lo;0;L;;;;;N;;;;;
+A216;YI SYLLABLE GGI;Lo;0;L;;;;;N;;;;;
+A217;YI SYLLABLE GGIEX;Lo;0;L;;;;;N;;;;;
+A218;YI SYLLABLE GGIE;Lo;0;L;;;;;N;;;;;
+A219;YI SYLLABLE GGIEP;Lo;0;L;;;;;N;;;;;
+A21A;YI SYLLABLE GGAT;Lo;0;L;;;;;N;;;;;
+A21B;YI SYLLABLE GGAX;Lo;0;L;;;;;N;;;;;
+A21C;YI SYLLABLE GGA;Lo;0;L;;;;;N;;;;;
+A21D;YI SYLLABLE GGAP;Lo;0;L;;;;;N;;;;;
+A21E;YI SYLLABLE GGUOT;Lo;0;L;;;;;N;;;;;
+A21F;YI SYLLABLE GGUOX;Lo;0;L;;;;;N;;;;;
+A220;YI SYLLABLE GGUO;Lo;0;L;;;;;N;;;;;
+A221;YI SYLLABLE GGUOP;Lo;0;L;;;;;N;;;;;
+A222;YI SYLLABLE GGOT;Lo;0;L;;;;;N;;;;;
+A223;YI SYLLABLE GGOX;Lo;0;L;;;;;N;;;;;
+A224;YI SYLLABLE GGO;Lo;0;L;;;;;N;;;;;
+A225;YI SYLLABLE GGOP;Lo;0;L;;;;;N;;;;;
+A226;YI SYLLABLE GGET;Lo;0;L;;;;;N;;;;;
+A227;YI SYLLABLE GGEX;Lo;0;L;;;;;N;;;;;
+A228;YI SYLLABLE GGE;Lo;0;L;;;;;N;;;;;
+A229;YI SYLLABLE GGEP;Lo;0;L;;;;;N;;;;;
+A22A;YI SYLLABLE GGUT;Lo;0;L;;;;;N;;;;;
+A22B;YI SYLLABLE GGUX;Lo;0;L;;;;;N;;;;;
+A22C;YI SYLLABLE GGU;Lo;0;L;;;;;N;;;;;
+A22D;YI SYLLABLE GGUP;Lo;0;L;;;;;N;;;;;
+A22E;YI SYLLABLE GGURX;Lo;0;L;;;;;N;;;;;
+A22F;YI SYLLABLE GGUR;Lo;0;L;;;;;N;;;;;
+A230;YI SYLLABLE MGIEX;Lo;0;L;;;;;N;;;;;
+A231;YI SYLLABLE MGIE;Lo;0;L;;;;;N;;;;;
+A232;YI SYLLABLE MGAT;Lo;0;L;;;;;N;;;;;
+A233;YI SYLLABLE MGAX;Lo;0;L;;;;;N;;;;;
+A234;YI SYLLABLE MGA;Lo;0;L;;;;;N;;;;;
+A235;YI SYLLABLE MGAP;Lo;0;L;;;;;N;;;;;
+A236;YI SYLLABLE MGUOX;Lo;0;L;;;;;N;;;;;
+A237;YI SYLLABLE MGUO;Lo;0;L;;;;;N;;;;;
+A238;YI SYLLABLE MGUOP;Lo;0;L;;;;;N;;;;;
+A239;YI SYLLABLE MGOT;Lo;0;L;;;;;N;;;;;
+A23A;YI SYLLABLE MGOX;Lo;0;L;;;;;N;;;;;
+A23B;YI SYLLABLE MGO;Lo;0;L;;;;;N;;;;;
+A23C;YI SYLLABLE MGOP;Lo;0;L;;;;;N;;;;;
+A23D;YI SYLLABLE MGEX;Lo;0;L;;;;;N;;;;;
+A23E;YI SYLLABLE MGE;Lo;0;L;;;;;N;;;;;
+A23F;YI SYLLABLE MGEP;Lo;0;L;;;;;N;;;;;
+A240;YI SYLLABLE MGUT;Lo;0;L;;;;;N;;;;;
+A241;YI SYLLABLE MGUX;Lo;0;L;;;;;N;;;;;
+A242;YI SYLLABLE MGU;Lo;0;L;;;;;N;;;;;
+A243;YI SYLLABLE MGUP;Lo;0;L;;;;;N;;;;;
+A244;YI SYLLABLE MGURX;Lo;0;L;;;;;N;;;;;
+A245;YI SYLLABLE MGUR;Lo;0;L;;;;;N;;;;;
+A246;YI SYLLABLE HXIT;Lo;0;L;;;;;N;;;;;
+A247;YI SYLLABLE HXIX;Lo;0;L;;;;;N;;;;;
+A248;YI SYLLABLE HXI;Lo;0;L;;;;;N;;;;;
+A249;YI SYLLABLE HXIP;Lo;0;L;;;;;N;;;;;
+A24A;YI SYLLABLE HXIET;Lo;0;L;;;;;N;;;;;
+A24B;YI SYLLABLE HXIEX;Lo;0;L;;;;;N;;;;;
+A24C;YI SYLLABLE HXIE;Lo;0;L;;;;;N;;;;;
+A24D;YI SYLLABLE HXIEP;Lo;0;L;;;;;N;;;;;
+A24E;YI SYLLABLE HXAT;Lo;0;L;;;;;N;;;;;
+A24F;YI SYLLABLE HXAX;Lo;0;L;;;;;N;;;;;
+A250;YI SYLLABLE HXA;Lo;0;L;;;;;N;;;;;
+A251;YI SYLLABLE HXAP;Lo;0;L;;;;;N;;;;;
+A252;YI SYLLABLE HXUOT;Lo;0;L;;;;;N;;;;;
+A253;YI SYLLABLE HXUOX;Lo;0;L;;;;;N;;;;;
+A254;YI SYLLABLE HXUO;Lo;0;L;;;;;N;;;;;
+A255;YI SYLLABLE HXUOP;Lo;0;L;;;;;N;;;;;
+A256;YI SYLLABLE HXOT;Lo;0;L;;;;;N;;;;;
+A257;YI SYLLABLE HXOX;Lo;0;L;;;;;N;;;;;
+A258;YI SYLLABLE HXO;Lo;0;L;;;;;N;;;;;
+A259;YI SYLLABLE HXOP;Lo;0;L;;;;;N;;;;;
+A25A;YI SYLLABLE HXEX;Lo;0;L;;;;;N;;;;;
+A25B;YI SYLLABLE HXE;Lo;0;L;;;;;N;;;;;
+A25C;YI SYLLABLE HXEP;Lo;0;L;;;;;N;;;;;
+A25D;YI SYLLABLE NGIEX;Lo;0;L;;;;;N;;;;;
+A25E;YI SYLLABLE NGIE;Lo;0;L;;;;;N;;;;;
+A25F;YI SYLLABLE NGIEP;Lo;0;L;;;;;N;;;;;
+A260;YI SYLLABLE NGAT;Lo;0;L;;;;;N;;;;;
+A261;YI SYLLABLE NGAX;Lo;0;L;;;;;N;;;;;
+A262;YI SYLLABLE NGA;Lo;0;L;;;;;N;;;;;
+A263;YI SYLLABLE NGAP;Lo;0;L;;;;;N;;;;;
+A264;YI SYLLABLE NGUOT;Lo;0;L;;;;;N;;;;;
+A265;YI SYLLABLE NGUOX;Lo;0;L;;;;;N;;;;;
+A266;YI SYLLABLE NGUO;Lo;0;L;;;;;N;;;;;
+A267;YI SYLLABLE NGOT;Lo;0;L;;;;;N;;;;;
+A268;YI SYLLABLE NGOX;Lo;0;L;;;;;N;;;;;
+A269;YI SYLLABLE NGO;Lo;0;L;;;;;N;;;;;
+A26A;YI SYLLABLE NGOP;Lo;0;L;;;;;N;;;;;
+A26B;YI SYLLABLE NGEX;Lo;0;L;;;;;N;;;;;
+A26C;YI SYLLABLE NGE;Lo;0;L;;;;;N;;;;;
+A26D;YI SYLLABLE NGEP;Lo;0;L;;;;;N;;;;;
+A26E;YI SYLLABLE HIT;Lo;0;L;;;;;N;;;;;
+A26F;YI SYLLABLE HIEX;Lo;0;L;;;;;N;;;;;
+A270;YI SYLLABLE HIE;Lo;0;L;;;;;N;;;;;
+A271;YI SYLLABLE HAT;Lo;0;L;;;;;N;;;;;
+A272;YI SYLLABLE HAX;Lo;0;L;;;;;N;;;;;
+A273;YI SYLLABLE HA;Lo;0;L;;;;;N;;;;;
+A274;YI SYLLABLE HAP;Lo;0;L;;;;;N;;;;;
+A275;YI SYLLABLE HUOT;Lo;0;L;;;;;N;;;;;
+A276;YI SYLLABLE HUOX;Lo;0;L;;;;;N;;;;;
+A277;YI SYLLABLE HUO;Lo;0;L;;;;;N;;;;;
+A278;YI SYLLABLE HUOP;Lo;0;L;;;;;N;;;;;
+A279;YI SYLLABLE HOT;Lo;0;L;;;;;N;;;;;
+A27A;YI SYLLABLE HOX;Lo;0;L;;;;;N;;;;;
+A27B;YI SYLLABLE HO;Lo;0;L;;;;;N;;;;;
+A27C;YI SYLLABLE HOP;Lo;0;L;;;;;N;;;;;
+A27D;YI SYLLABLE HEX;Lo;0;L;;;;;N;;;;;
+A27E;YI SYLLABLE HE;Lo;0;L;;;;;N;;;;;
+A27F;YI SYLLABLE HEP;Lo;0;L;;;;;N;;;;;
+A280;YI SYLLABLE WAT;Lo;0;L;;;;;N;;;;;
+A281;YI SYLLABLE WAX;Lo;0;L;;;;;N;;;;;
+A282;YI SYLLABLE WA;Lo;0;L;;;;;N;;;;;
+A283;YI SYLLABLE WAP;Lo;0;L;;;;;N;;;;;
+A284;YI SYLLABLE WUOX;Lo;0;L;;;;;N;;;;;
+A285;YI SYLLABLE WUO;Lo;0;L;;;;;N;;;;;
+A286;YI SYLLABLE WUOP;Lo;0;L;;;;;N;;;;;
+A287;YI SYLLABLE WOX;Lo;0;L;;;;;N;;;;;
+A288;YI SYLLABLE WO;Lo;0;L;;;;;N;;;;;
+A289;YI SYLLABLE WOP;Lo;0;L;;;;;N;;;;;
+A28A;YI SYLLABLE WEX;Lo;0;L;;;;;N;;;;;
+A28B;YI SYLLABLE WE;Lo;0;L;;;;;N;;;;;
+A28C;YI SYLLABLE WEP;Lo;0;L;;;;;N;;;;;
+A28D;YI SYLLABLE ZIT;Lo;0;L;;;;;N;;;;;
+A28E;YI SYLLABLE ZIX;Lo;0;L;;;;;N;;;;;
+A28F;YI SYLLABLE ZI;Lo;0;L;;;;;N;;;;;
+A290;YI SYLLABLE ZIP;Lo;0;L;;;;;N;;;;;
+A291;YI SYLLABLE ZIEX;Lo;0;L;;;;;N;;;;;
+A292;YI SYLLABLE ZIE;Lo;0;L;;;;;N;;;;;
+A293;YI SYLLABLE ZIEP;Lo;0;L;;;;;N;;;;;
+A294;YI SYLLABLE ZAT;Lo;0;L;;;;;N;;;;;
+A295;YI SYLLABLE ZAX;Lo;0;L;;;;;N;;;;;
+A296;YI SYLLABLE ZA;Lo;0;L;;;;;N;;;;;
+A297;YI SYLLABLE ZAP;Lo;0;L;;;;;N;;;;;
+A298;YI SYLLABLE ZUOX;Lo;0;L;;;;;N;;;;;
+A299;YI SYLLABLE ZUO;Lo;0;L;;;;;N;;;;;
+A29A;YI SYLLABLE ZUOP;Lo;0;L;;;;;N;;;;;
+A29B;YI SYLLABLE ZOT;Lo;0;L;;;;;N;;;;;
+A29C;YI SYLLABLE ZOX;Lo;0;L;;;;;N;;;;;
+A29D;YI SYLLABLE ZO;Lo;0;L;;;;;N;;;;;
+A29E;YI SYLLABLE ZOP;Lo;0;L;;;;;N;;;;;
+A29F;YI SYLLABLE ZEX;Lo;0;L;;;;;N;;;;;
+A2A0;YI SYLLABLE ZE;Lo;0;L;;;;;N;;;;;
+A2A1;YI SYLLABLE ZEP;Lo;0;L;;;;;N;;;;;
+A2A2;YI SYLLABLE ZUT;Lo;0;L;;;;;N;;;;;
+A2A3;YI SYLLABLE ZUX;Lo;0;L;;;;;N;;;;;
+A2A4;YI SYLLABLE ZU;Lo;0;L;;;;;N;;;;;
+A2A5;YI SYLLABLE ZUP;Lo;0;L;;;;;N;;;;;
+A2A6;YI SYLLABLE ZURX;Lo;0;L;;;;;N;;;;;
+A2A7;YI SYLLABLE ZUR;Lo;0;L;;;;;N;;;;;
+A2A8;YI SYLLABLE ZYT;Lo;0;L;;;;;N;;;;;
+A2A9;YI SYLLABLE ZYX;Lo;0;L;;;;;N;;;;;
+A2AA;YI SYLLABLE ZY;Lo;0;L;;;;;N;;;;;
+A2AB;YI SYLLABLE ZYP;Lo;0;L;;;;;N;;;;;
+A2AC;YI SYLLABLE ZYRX;Lo;0;L;;;;;N;;;;;
+A2AD;YI SYLLABLE ZYR;Lo;0;L;;;;;N;;;;;
+A2AE;YI SYLLABLE CIT;Lo;0;L;;;;;N;;;;;
+A2AF;YI SYLLABLE CIX;Lo;0;L;;;;;N;;;;;
+A2B0;YI SYLLABLE CI;Lo;0;L;;;;;N;;;;;
+A2B1;YI SYLLABLE CIP;Lo;0;L;;;;;N;;;;;
+A2B2;YI SYLLABLE CIET;Lo;0;L;;;;;N;;;;;
+A2B3;YI SYLLABLE CIEX;Lo;0;L;;;;;N;;;;;
+A2B4;YI SYLLABLE CIE;Lo;0;L;;;;;N;;;;;
+A2B5;YI SYLLABLE CIEP;Lo;0;L;;;;;N;;;;;
+A2B6;YI SYLLABLE CAT;Lo;0;L;;;;;N;;;;;
+A2B7;YI SYLLABLE CAX;Lo;0;L;;;;;N;;;;;
+A2B8;YI SYLLABLE CA;Lo;0;L;;;;;N;;;;;
+A2B9;YI SYLLABLE CAP;Lo;0;L;;;;;N;;;;;
+A2BA;YI SYLLABLE CUOX;Lo;0;L;;;;;N;;;;;
+A2BB;YI SYLLABLE CUO;Lo;0;L;;;;;N;;;;;
+A2BC;YI SYLLABLE CUOP;Lo;0;L;;;;;N;;;;;
+A2BD;YI SYLLABLE COT;Lo;0;L;;;;;N;;;;;
+A2BE;YI SYLLABLE COX;Lo;0;L;;;;;N;;;;;
+A2BF;YI SYLLABLE CO;Lo;0;L;;;;;N;;;;;
+A2C0;YI SYLLABLE COP;Lo;0;L;;;;;N;;;;;
+A2C1;YI SYLLABLE CEX;Lo;0;L;;;;;N;;;;;
+A2C2;YI SYLLABLE CE;Lo;0;L;;;;;N;;;;;
+A2C3;YI SYLLABLE CEP;Lo;0;L;;;;;N;;;;;
+A2C4;YI SYLLABLE CUT;Lo;0;L;;;;;N;;;;;
+A2C5;YI SYLLABLE CUX;Lo;0;L;;;;;N;;;;;
+A2C6;YI SYLLABLE CU;Lo;0;L;;;;;N;;;;;
+A2C7;YI SYLLABLE CUP;Lo;0;L;;;;;N;;;;;
+A2C8;YI SYLLABLE CURX;Lo;0;L;;;;;N;;;;;
+A2C9;YI SYLLABLE CUR;Lo;0;L;;;;;N;;;;;
+A2CA;YI SYLLABLE CYT;Lo;0;L;;;;;N;;;;;
+A2CB;YI SYLLABLE CYX;Lo;0;L;;;;;N;;;;;
+A2CC;YI SYLLABLE CY;Lo;0;L;;;;;N;;;;;
+A2CD;YI SYLLABLE CYP;Lo;0;L;;;;;N;;;;;
+A2CE;YI SYLLABLE CYRX;Lo;0;L;;;;;N;;;;;
+A2CF;YI SYLLABLE CYR;Lo;0;L;;;;;N;;;;;
+A2D0;YI SYLLABLE ZZIT;Lo;0;L;;;;;N;;;;;
+A2D1;YI SYLLABLE ZZIX;Lo;0;L;;;;;N;;;;;
+A2D2;YI SYLLABLE ZZI;Lo;0;L;;;;;N;;;;;
+A2D3;YI SYLLABLE ZZIP;Lo;0;L;;;;;N;;;;;
+A2D4;YI SYLLABLE ZZIET;Lo;0;L;;;;;N;;;;;
+A2D5;YI SYLLABLE ZZIEX;Lo;0;L;;;;;N;;;;;
+A2D6;YI SYLLABLE ZZIE;Lo;0;L;;;;;N;;;;;
+A2D7;YI SYLLABLE ZZIEP;Lo;0;L;;;;;N;;;;;
+A2D8;YI SYLLABLE ZZAT;Lo;0;L;;;;;N;;;;;
+A2D9;YI SYLLABLE ZZAX;Lo;0;L;;;;;N;;;;;
+A2DA;YI SYLLABLE ZZA;Lo;0;L;;;;;N;;;;;
+A2DB;YI SYLLABLE ZZAP;Lo;0;L;;;;;N;;;;;
+A2DC;YI SYLLABLE ZZOX;Lo;0;L;;;;;N;;;;;
+A2DD;YI SYLLABLE ZZO;Lo;0;L;;;;;N;;;;;
+A2DE;YI SYLLABLE ZZOP;Lo;0;L;;;;;N;;;;;
+A2DF;YI SYLLABLE ZZEX;Lo;0;L;;;;;N;;;;;
+A2E0;YI SYLLABLE ZZE;Lo;0;L;;;;;N;;;;;
+A2E1;YI SYLLABLE ZZEP;Lo;0;L;;;;;N;;;;;
+A2E2;YI SYLLABLE ZZUX;Lo;0;L;;;;;N;;;;;
+A2E3;YI SYLLABLE ZZU;Lo;0;L;;;;;N;;;;;
+A2E4;YI SYLLABLE ZZUP;Lo;0;L;;;;;N;;;;;
+A2E5;YI SYLLABLE ZZURX;Lo;0;L;;;;;N;;;;;
+A2E6;YI SYLLABLE ZZUR;Lo;0;L;;;;;N;;;;;
+A2E7;YI SYLLABLE ZZYT;Lo;0;L;;;;;N;;;;;
+A2E8;YI SYLLABLE ZZYX;Lo;0;L;;;;;N;;;;;
+A2E9;YI SYLLABLE ZZY;Lo;0;L;;;;;N;;;;;
+A2EA;YI SYLLABLE ZZYP;Lo;0;L;;;;;N;;;;;
+A2EB;YI SYLLABLE ZZYRX;Lo;0;L;;;;;N;;;;;
+A2EC;YI SYLLABLE ZZYR;Lo;0;L;;;;;N;;;;;
+A2ED;YI SYLLABLE NZIT;Lo;0;L;;;;;N;;;;;
+A2EE;YI SYLLABLE NZIX;Lo;0;L;;;;;N;;;;;
+A2EF;YI SYLLABLE NZI;Lo;0;L;;;;;N;;;;;
+A2F0;YI SYLLABLE NZIP;Lo;0;L;;;;;N;;;;;
+A2F1;YI SYLLABLE NZIEX;Lo;0;L;;;;;N;;;;;
+A2F2;YI SYLLABLE NZIE;Lo;0;L;;;;;N;;;;;
+A2F3;YI SYLLABLE NZIEP;Lo;0;L;;;;;N;;;;;
+A2F4;YI SYLLABLE NZAT;Lo;0;L;;;;;N;;;;;
+A2F5;YI SYLLABLE NZAX;Lo;0;L;;;;;N;;;;;
+A2F6;YI SYLLABLE NZA;Lo;0;L;;;;;N;;;;;
+A2F7;YI SYLLABLE NZAP;Lo;0;L;;;;;N;;;;;
+A2F8;YI SYLLABLE NZUOX;Lo;0;L;;;;;N;;;;;
+A2F9;YI SYLLABLE NZUO;Lo;0;L;;;;;N;;;;;
+A2FA;YI SYLLABLE NZOX;Lo;0;L;;;;;N;;;;;
+A2FB;YI SYLLABLE NZOP;Lo;0;L;;;;;N;;;;;
+A2FC;YI SYLLABLE NZEX;Lo;0;L;;;;;N;;;;;
+A2FD;YI SYLLABLE NZE;Lo;0;L;;;;;N;;;;;
+A2FE;YI SYLLABLE NZUX;Lo;0;L;;;;;N;;;;;
+A2FF;YI SYLLABLE NZU;Lo;0;L;;;;;N;;;;;
+A300;YI SYLLABLE NZUP;Lo;0;L;;;;;N;;;;;
+A301;YI SYLLABLE NZURX;Lo;0;L;;;;;N;;;;;
+A302;YI SYLLABLE NZUR;Lo;0;L;;;;;N;;;;;
+A303;YI SYLLABLE NZYT;Lo;0;L;;;;;N;;;;;
+A304;YI SYLLABLE NZYX;Lo;0;L;;;;;N;;;;;
+A305;YI SYLLABLE NZY;Lo;0;L;;;;;N;;;;;
+A306;YI SYLLABLE NZYP;Lo;0;L;;;;;N;;;;;
+A307;YI SYLLABLE NZYRX;Lo;0;L;;;;;N;;;;;
+A308;YI SYLLABLE NZYR;Lo;0;L;;;;;N;;;;;
+A309;YI SYLLABLE SIT;Lo;0;L;;;;;N;;;;;
+A30A;YI SYLLABLE SIX;Lo;0;L;;;;;N;;;;;
+A30B;YI SYLLABLE SI;Lo;0;L;;;;;N;;;;;
+A30C;YI SYLLABLE SIP;Lo;0;L;;;;;N;;;;;
+A30D;YI SYLLABLE SIEX;Lo;0;L;;;;;N;;;;;
+A30E;YI SYLLABLE SIE;Lo;0;L;;;;;N;;;;;
+A30F;YI SYLLABLE SIEP;Lo;0;L;;;;;N;;;;;
+A310;YI SYLLABLE SAT;Lo;0;L;;;;;N;;;;;
+A311;YI SYLLABLE SAX;Lo;0;L;;;;;N;;;;;
+A312;YI SYLLABLE SA;Lo;0;L;;;;;N;;;;;
+A313;YI SYLLABLE SAP;Lo;0;L;;;;;N;;;;;
+A314;YI SYLLABLE SUOX;Lo;0;L;;;;;N;;;;;
+A315;YI SYLLABLE SUO;Lo;0;L;;;;;N;;;;;
+A316;YI SYLLABLE SUOP;Lo;0;L;;;;;N;;;;;
+A317;YI SYLLABLE SOT;Lo;0;L;;;;;N;;;;;
+A318;YI SYLLABLE SOX;Lo;0;L;;;;;N;;;;;
+A319;YI SYLLABLE SO;Lo;0;L;;;;;N;;;;;
+A31A;YI SYLLABLE SOP;Lo;0;L;;;;;N;;;;;
+A31B;YI SYLLABLE SEX;Lo;0;L;;;;;N;;;;;
+A31C;YI SYLLABLE SE;Lo;0;L;;;;;N;;;;;
+A31D;YI SYLLABLE SEP;Lo;0;L;;;;;N;;;;;
+A31E;YI SYLLABLE SUT;Lo;0;L;;;;;N;;;;;
+A31F;YI SYLLABLE SUX;Lo;0;L;;;;;N;;;;;
+A320;YI SYLLABLE SU;Lo;0;L;;;;;N;;;;;
+A321;YI SYLLABLE SUP;Lo;0;L;;;;;N;;;;;
+A322;YI SYLLABLE SURX;Lo;0;L;;;;;N;;;;;
+A323;YI SYLLABLE SUR;Lo;0;L;;;;;N;;;;;
+A324;YI SYLLABLE SYT;Lo;0;L;;;;;N;;;;;
+A325;YI SYLLABLE SYX;Lo;0;L;;;;;N;;;;;
+A326;YI SYLLABLE SY;Lo;0;L;;;;;N;;;;;
+A327;YI SYLLABLE SYP;Lo;0;L;;;;;N;;;;;
+A328;YI SYLLABLE SYRX;Lo;0;L;;;;;N;;;;;
+A329;YI SYLLABLE SYR;Lo;0;L;;;;;N;;;;;
+A32A;YI SYLLABLE SSIT;Lo;0;L;;;;;N;;;;;
+A32B;YI SYLLABLE SSIX;Lo;0;L;;;;;N;;;;;
+A32C;YI SYLLABLE SSI;Lo;0;L;;;;;N;;;;;
+A32D;YI SYLLABLE SSIP;Lo;0;L;;;;;N;;;;;
+A32E;YI SYLLABLE SSIEX;Lo;0;L;;;;;N;;;;;
+A32F;YI SYLLABLE SSIE;Lo;0;L;;;;;N;;;;;
+A330;YI SYLLABLE SSIEP;Lo;0;L;;;;;N;;;;;
+A331;YI SYLLABLE SSAT;Lo;0;L;;;;;N;;;;;
+A332;YI SYLLABLE SSAX;Lo;0;L;;;;;N;;;;;
+A333;YI SYLLABLE SSA;Lo;0;L;;;;;N;;;;;
+A334;YI SYLLABLE SSAP;Lo;0;L;;;;;N;;;;;
+A335;YI SYLLABLE SSOT;Lo;0;L;;;;;N;;;;;
+A336;YI SYLLABLE SSOX;Lo;0;L;;;;;N;;;;;
+A337;YI SYLLABLE SSO;Lo;0;L;;;;;N;;;;;
+A338;YI SYLLABLE SSOP;Lo;0;L;;;;;N;;;;;
+A339;YI SYLLABLE SSEX;Lo;0;L;;;;;N;;;;;
+A33A;YI SYLLABLE SSE;Lo;0;L;;;;;N;;;;;
+A33B;YI SYLLABLE SSEP;Lo;0;L;;;;;N;;;;;
+A33C;YI SYLLABLE SSUT;Lo;0;L;;;;;N;;;;;
+A33D;YI SYLLABLE SSUX;Lo;0;L;;;;;N;;;;;
+A33E;YI SYLLABLE SSU;Lo;0;L;;;;;N;;;;;
+A33F;YI SYLLABLE SSUP;Lo;0;L;;;;;N;;;;;
+A340;YI SYLLABLE SSYT;Lo;0;L;;;;;N;;;;;
+A341;YI SYLLABLE SSYX;Lo;0;L;;;;;N;;;;;
+A342;YI SYLLABLE SSY;Lo;0;L;;;;;N;;;;;
+A343;YI SYLLABLE SSYP;Lo;0;L;;;;;N;;;;;
+A344;YI SYLLABLE SSYRX;Lo;0;L;;;;;N;;;;;
+A345;YI SYLLABLE SSYR;Lo;0;L;;;;;N;;;;;
+A346;YI SYLLABLE ZHAT;Lo;0;L;;;;;N;;;;;
+A347;YI SYLLABLE ZHAX;Lo;0;L;;;;;N;;;;;
+A348;YI SYLLABLE ZHA;Lo;0;L;;;;;N;;;;;
+A349;YI SYLLABLE ZHAP;Lo;0;L;;;;;N;;;;;
+A34A;YI SYLLABLE ZHUOX;Lo;0;L;;;;;N;;;;;
+A34B;YI SYLLABLE ZHUO;Lo;0;L;;;;;N;;;;;
+A34C;YI SYLLABLE ZHUOP;Lo;0;L;;;;;N;;;;;
+A34D;YI SYLLABLE ZHOT;Lo;0;L;;;;;N;;;;;
+A34E;YI SYLLABLE ZHOX;Lo;0;L;;;;;N;;;;;
+A34F;YI SYLLABLE ZHO;Lo;0;L;;;;;N;;;;;
+A350;YI SYLLABLE ZHOP;Lo;0;L;;;;;N;;;;;
+A351;YI SYLLABLE ZHET;Lo;0;L;;;;;N;;;;;
+A352;YI SYLLABLE ZHEX;Lo;0;L;;;;;N;;;;;
+A353;YI SYLLABLE ZHE;Lo;0;L;;;;;N;;;;;
+A354;YI SYLLABLE ZHEP;Lo;0;L;;;;;N;;;;;
+A355;YI SYLLABLE ZHUT;Lo;0;L;;;;;N;;;;;
+A356;YI SYLLABLE ZHUX;Lo;0;L;;;;;N;;;;;
+A357;YI SYLLABLE ZHU;Lo;0;L;;;;;N;;;;;
+A358;YI SYLLABLE ZHUP;Lo;0;L;;;;;N;;;;;
+A359;YI SYLLABLE ZHURX;Lo;0;L;;;;;N;;;;;
+A35A;YI SYLLABLE ZHUR;Lo;0;L;;;;;N;;;;;
+A35B;YI SYLLABLE ZHYT;Lo;0;L;;;;;N;;;;;
+A35C;YI SYLLABLE ZHYX;Lo;0;L;;;;;N;;;;;
+A35D;YI SYLLABLE ZHY;Lo;0;L;;;;;N;;;;;
+A35E;YI SYLLABLE ZHYP;Lo;0;L;;;;;N;;;;;
+A35F;YI SYLLABLE ZHYRX;Lo;0;L;;;;;N;;;;;
+A360;YI SYLLABLE ZHYR;Lo;0;L;;;;;N;;;;;
+A361;YI SYLLABLE CHAT;Lo;0;L;;;;;N;;;;;
+A362;YI SYLLABLE CHAX;Lo;0;L;;;;;N;;;;;
+A363;YI SYLLABLE CHA;Lo;0;L;;;;;N;;;;;
+A364;YI SYLLABLE CHAP;Lo;0;L;;;;;N;;;;;
+A365;YI SYLLABLE CHUOT;Lo;0;L;;;;;N;;;;;
+A366;YI SYLLABLE CHUOX;Lo;0;L;;;;;N;;;;;
+A367;YI SYLLABLE CHUO;Lo;0;L;;;;;N;;;;;
+A368;YI SYLLABLE CHUOP;Lo;0;L;;;;;N;;;;;
+A369;YI SYLLABLE CHOT;Lo;0;L;;;;;N;;;;;
+A36A;YI SYLLABLE CHOX;Lo;0;L;;;;;N;;;;;
+A36B;YI SYLLABLE CHO;Lo;0;L;;;;;N;;;;;
+A36C;YI SYLLABLE CHOP;Lo;0;L;;;;;N;;;;;
+A36D;YI SYLLABLE CHET;Lo;0;L;;;;;N;;;;;
+A36E;YI SYLLABLE CHEX;Lo;0;L;;;;;N;;;;;
+A36F;YI SYLLABLE CHE;Lo;0;L;;;;;N;;;;;
+A370;YI SYLLABLE CHEP;Lo;0;L;;;;;N;;;;;
+A371;YI SYLLABLE CHUX;Lo;0;L;;;;;N;;;;;
+A372;YI SYLLABLE CHU;Lo;0;L;;;;;N;;;;;
+A373;YI SYLLABLE CHUP;Lo;0;L;;;;;N;;;;;
+A374;YI SYLLABLE CHURX;Lo;0;L;;;;;N;;;;;
+A375;YI SYLLABLE CHUR;Lo;0;L;;;;;N;;;;;
+A376;YI SYLLABLE CHYT;Lo;0;L;;;;;N;;;;;
+A377;YI SYLLABLE CHYX;Lo;0;L;;;;;N;;;;;
+A378;YI SYLLABLE CHY;Lo;0;L;;;;;N;;;;;
+A379;YI SYLLABLE CHYP;Lo;0;L;;;;;N;;;;;
+A37A;YI SYLLABLE CHYRX;Lo;0;L;;;;;N;;;;;
+A37B;YI SYLLABLE CHYR;Lo;0;L;;;;;N;;;;;
+A37C;YI SYLLABLE RRAX;Lo;0;L;;;;;N;;;;;
+A37D;YI SYLLABLE RRA;Lo;0;L;;;;;N;;;;;
+A37E;YI SYLLABLE RRUOX;Lo;0;L;;;;;N;;;;;
+A37F;YI SYLLABLE RRUO;Lo;0;L;;;;;N;;;;;
+A380;YI SYLLABLE RROT;Lo;0;L;;;;;N;;;;;
+A381;YI SYLLABLE RROX;Lo;0;L;;;;;N;;;;;
+A382;YI SYLLABLE RRO;Lo;0;L;;;;;N;;;;;
+A383;YI SYLLABLE RROP;Lo;0;L;;;;;N;;;;;
+A384;YI SYLLABLE RRET;Lo;0;L;;;;;N;;;;;
+A385;YI SYLLABLE RREX;Lo;0;L;;;;;N;;;;;
+A386;YI SYLLABLE RRE;Lo;0;L;;;;;N;;;;;
+A387;YI SYLLABLE RREP;Lo;0;L;;;;;N;;;;;
+A388;YI SYLLABLE RRUT;Lo;0;L;;;;;N;;;;;
+A389;YI SYLLABLE RRUX;Lo;0;L;;;;;N;;;;;
+A38A;YI SYLLABLE RRU;Lo;0;L;;;;;N;;;;;
+A38B;YI SYLLABLE RRUP;Lo;0;L;;;;;N;;;;;
+A38C;YI SYLLABLE RRURX;Lo;0;L;;;;;N;;;;;
+A38D;YI SYLLABLE RRUR;Lo;0;L;;;;;N;;;;;
+A38E;YI SYLLABLE RRYT;Lo;0;L;;;;;N;;;;;
+A38F;YI SYLLABLE RRYX;Lo;0;L;;;;;N;;;;;
+A390;YI SYLLABLE RRY;Lo;0;L;;;;;N;;;;;
+A391;YI SYLLABLE RRYP;Lo;0;L;;;;;N;;;;;
+A392;YI SYLLABLE RRYRX;Lo;0;L;;;;;N;;;;;
+A393;YI SYLLABLE RRYR;Lo;0;L;;;;;N;;;;;
+A394;YI SYLLABLE NRAT;Lo;0;L;;;;;N;;;;;
+A395;YI SYLLABLE NRAX;Lo;0;L;;;;;N;;;;;
+A396;YI SYLLABLE NRA;Lo;0;L;;;;;N;;;;;
+A397;YI SYLLABLE NRAP;Lo;0;L;;;;;N;;;;;
+A398;YI SYLLABLE NROX;Lo;0;L;;;;;N;;;;;
+A399;YI SYLLABLE NRO;Lo;0;L;;;;;N;;;;;
+A39A;YI SYLLABLE NROP;Lo;0;L;;;;;N;;;;;
+A39B;YI SYLLABLE NRET;Lo;0;L;;;;;N;;;;;
+A39C;YI SYLLABLE NREX;Lo;0;L;;;;;N;;;;;
+A39D;YI SYLLABLE NRE;Lo;0;L;;;;;N;;;;;
+A39E;YI SYLLABLE NREP;Lo;0;L;;;;;N;;;;;
+A39F;YI SYLLABLE NRUT;Lo;0;L;;;;;N;;;;;
+A3A0;YI SYLLABLE NRUX;Lo;0;L;;;;;N;;;;;
+A3A1;YI SYLLABLE NRU;Lo;0;L;;;;;N;;;;;
+A3A2;YI SYLLABLE NRUP;Lo;0;L;;;;;N;;;;;
+A3A3;YI SYLLABLE NRURX;Lo;0;L;;;;;N;;;;;
+A3A4;YI SYLLABLE NRUR;Lo;0;L;;;;;N;;;;;
+A3A5;YI SYLLABLE NRYT;Lo;0;L;;;;;N;;;;;
+A3A6;YI SYLLABLE NRYX;Lo;0;L;;;;;N;;;;;
+A3A7;YI SYLLABLE NRY;Lo;0;L;;;;;N;;;;;
+A3A8;YI SYLLABLE NRYP;Lo;0;L;;;;;N;;;;;
+A3A9;YI SYLLABLE NRYRX;Lo;0;L;;;;;N;;;;;
+A3AA;YI SYLLABLE NRYR;Lo;0;L;;;;;N;;;;;
+A3AB;YI SYLLABLE SHAT;Lo;0;L;;;;;N;;;;;
+A3AC;YI SYLLABLE SHAX;Lo;0;L;;;;;N;;;;;
+A3AD;YI SYLLABLE SHA;Lo;0;L;;;;;N;;;;;
+A3AE;YI SYLLABLE SHAP;Lo;0;L;;;;;N;;;;;
+A3AF;YI SYLLABLE SHUOX;Lo;0;L;;;;;N;;;;;
+A3B0;YI SYLLABLE SHUO;Lo;0;L;;;;;N;;;;;
+A3B1;YI SYLLABLE SHUOP;Lo;0;L;;;;;N;;;;;
+A3B2;YI SYLLABLE SHOT;Lo;0;L;;;;;N;;;;;
+A3B3;YI SYLLABLE SHOX;Lo;0;L;;;;;N;;;;;
+A3B4;YI SYLLABLE SHO;Lo;0;L;;;;;N;;;;;
+A3B5;YI SYLLABLE SHOP;Lo;0;L;;;;;N;;;;;
+A3B6;YI SYLLABLE SHET;Lo;0;L;;;;;N;;;;;
+A3B7;YI SYLLABLE SHEX;Lo;0;L;;;;;N;;;;;
+A3B8;YI SYLLABLE SHE;Lo;0;L;;;;;N;;;;;
+A3B9;YI SYLLABLE SHEP;Lo;0;L;;;;;N;;;;;
+A3BA;YI SYLLABLE SHUT;Lo;0;L;;;;;N;;;;;
+A3BB;YI SYLLABLE SHUX;Lo;0;L;;;;;N;;;;;
+A3BC;YI SYLLABLE SHU;Lo;0;L;;;;;N;;;;;
+A3BD;YI SYLLABLE SHUP;Lo;0;L;;;;;N;;;;;
+A3BE;YI SYLLABLE SHURX;Lo;0;L;;;;;N;;;;;
+A3BF;YI SYLLABLE SHUR;Lo;0;L;;;;;N;;;;;
+A3C0;YI SYLLABLE SHYT;Lo;0;L;;;;;N;;;;;
+A3C1;YI SYLLABLE SHYX;Lo;0;L;;;;;N;;;;;
+A3C2;YI SYLLABLE SHY;Lo;0;L;;;;;N;;;;;
+A3C3;YI SYLLABLE SHYP;Lo;0;L;;;;;N;;;;;
+A3C4;YI SYLLABLE SHYRX;Lo;0;L;;;;;N;;;;;
+A3C5;YI SYLLABLE SHYR;Lo;0;L;;;;;N;;;;;
+A3C6;YI SYLLABLE RAT;Lo;0;L;;;;;N;;;;;
+A3C7;YI SYLLABLE RAX;Lo;0;L;;;;;N;;;;;
+A3C8;YI SYLLABLE RA;Lo;0;L;;;;;N;;;;;
+A3C9;YI SYLLABLE RAP;Lo;0;L;;;;;N;;;;;
+A3CA;YI SYLLABLE RUOX;Lo;0;L;;;;;N;;;;;
+A3CB;YI SYLLABLE RUO;Lo;0;L;;;;;N;;;;;
+A3CC;YI SYLLABLE RUOP;Lo;0;L;;;;;N;;;;;
+A3CD;YI SYLLABLE ROT;Lo;0;L;;;;;N;;;;;
+A3CE;YI SYLLABLE ROX;Lo;0;L;;;;;N;;;;;
+A3CF;YI SYLLABLE RO;Lo;0;L;;;;;N;;;;;
+A3D0;YI SYLLABLE ROP;Lo;0;L;;;;;N;;;;;
+A3D1;YI SYLLABLE REX;Lo;0;L;;;;;N;;;;;
+A3D2;YI SYLLABLE RE;Lo;0;L;;;;;N;;;;;
+A3D3;YI SYLLABLE REP;Lo;0;L;;;;;N;;;;;
+A3D4;YI SYLLABLE RUT;Lo;0;L;;;;;N;;;;;
+A3D5;YI SYLLABLE RUX;Lo;0;L;;;;;N;;;;;
+A3D6;YI SYLLABLE RU;Lo;0;L;;;;;N;;;;;
+A3D7;YI SYLLABLE RUP;Lo;0;L;;;;;N;;;;;
+A3D8;YI SYLLABLE RURX;Lo;0;L;;;;;N;;;;;
+A3D9;YI SYLLABLE RUR;Lo;0;L;;;;;N;;;;;
+A3DA;YI SYLLABLE RYT;Lo;0;L;;;;;N;;;;;
+A3DB;YI SYLLABLE RYX;Lo;0;L;;;;;N;;;;;
+A3DC;YI SYLLABLE RY;Lo;0;L;;;;;N;;;;;
+A3DD;YI SYLLABLE RYP;Lo;0;L;;;;;N;;;;;
+A3DE;YI SYLLABLE RYRX;Lo;0;L;;;;;N;;;;;
+A3DF;YI SYLLABLE RYR;Lo;0;L;;;;;N;;;;;
+A3E0;YI SYLLABLE JIT;Lo;0;L;;;;;N;;;;;
+A3E1;YI SYLLABLE JIX;Lo;0;L;;;;;N;;;;;
+A3E2;YI SYLLABLE JI;Lo;0;L;;;;;N;;;;;
+A3E3;YI SYLLABLE JIP;Lo;0;L;;;;;N;;;;;
+A3E4;YI SYLLABLE JIET;Lo;0;L;;;;;N;;;;;
+A3E5;YI SYLLABLE JIEX;Lo;0;L;;;;;N;;;;;
+A3E6;YI SYLLABLE JIE;Lo;0;L;;;;;N;;;;;
+A3E7;YI SYLLABLE JIEP;Lo;0;L;;;;;N;;;;;
+A3E8;YI SYLLABLE JUOT;Lo;0;L;;;;;N;;;;;
+A3E9;YI SYLLABLE JUOX;Lo;0;L;;;;;N;;;;;
+A3EA;YI SYLLABLE JUO;Lo;0;L;;;;;N;;;;;
+A3EB;YI SYLLABLE JUOP;Lo;0;L;;;;;N;;;;;
+A3EC;YI SYLLABLE JOT;Lo;0;L;;;;;N;;;;;
+A3ED;YI SYLLABLE JOX;Lo;0;L;;;;;N;;;;;
+A3EE;YI SYLLABLE JO;Lo;0;L;;;;;N;;;;;
+A3EF;YI SYLLABLE JOP;Lo;0;L;;;;;N;;;;;
+A3F0;YI SYLLABLE JUT;Lo;0;L;;;;;N;;;;;
+A3F1;YI SYLLABLE JUX;Lo;0;L;;;;;N;;;;;
+A3F2;YI SYLLABLE JU;Lo;0;L;;;;;N;;;;;
+A3F3;YI SYLLABLE JUP;Lo;0;L;;;;;N;;;;;
+A3F4;YI SYLLABLE JURX;Lo;0;L;;;;;N;;;;;
+A3F5;YI SYLLABLE JUR;Lo;0;L;;;;;N;;;;;
+A3F6;YI SYLLABLE JYT;Lo;0;L;;;;;N;;;;;
+A3F7;YI SYLLABLE JYX;Lo;0;L;;;;;N;;;;;
+A3F8;YI SYLLABLE JY;Lo;0;L;;;;;N;;;;;
+A3F9;YI SYLLABLE JYP;Lo;0;L;;;;;N;;;;;
+A3FA;YI SYLLABLE JYRX;Lo;0;L;;;;;N;;;;;
+A3FB;YI SYLLABLE JYR;Lo;0;L;;;;;N;;;;;
+A3FC;YI SYLLABLE QIT;Lo;0;L;;;;;N;;;;;
+A3FD;YI SYLLABLE QIX;Lo;0;L;;;;;N;;;;;
+A3FE;YI SYLLABLE QI;Lo;0;L;;;;;N;;;;;
+A3FF;YI SYLLABLE QIP;Lo;0;L;;;;;N;;;;;
+A400;YI SYLLABLE QIET;Lo;0;L;;;;;N;;;;;
+A401;YI SYLLABLE QIEX;Lo;0;L;;;;;N;;;;;
+A402;YI SYLLABLE QIE;Lo;0;L;;;;;N;;;;;
+A403;YI SYLLABLE QIEP;Lo;0;L;;;;;N;;;;;
+A404;YI SYLLABLE QUOT;Lo;0;L;;;;;N;;;;;
+A405;YI SYLLABLE QUOX;Lo;0;L;;;;;N;;;;;
+A406;YI SYLLABLE QUO;Lo;0;L;;;;;N;;;;;
+A407;YI SYLLABLE QUOP;Lo;0;L;;;;;N;;;;;
+A408;YI SYLLABLE QOT;Lo;0;L;;;;;N;;;;;
+A409;YI SYLLABLE QOX;Lo;0;L;;;;;N;;;;;
+A40A;YI SYLLABLE QO;Lo;0;L;;;;;N;;;;;
+A40B;YI SYLLABLE QOP;Lo;0;L;;;;;N;;;;;
+A40C;YI SYLLABLE QUT;Lo;0;L;;;;;N;;;;;
+A40D;YI SYLLABLE QUX;Lo;0;L;;;;;N;;;;;
+A40E;YI SYLLABLE QU;Lo;0;L;;;;;N;;;;;
+A40F;YI SYLLABLE QUP;Lo;0;L;;;;;N;;;;;
+A410;YI SYLLABLE QURX;Lo;0;L;;;;;N;;;;;
+A411;YI SYLLABLE QUR;Lo;0;L;;;;;N;;;;;
+A412;YI SYLLABLE QYT;Lo;0;L;;;;;N;;;;;
+A413;YI SYLLABLE QYX;Lo;0;L;;;;;N;;;;;
+A414;YI SYLLABLE QY;Lo;0;L;;;;;N;;;;;
+A415;YI SYLLABLE QYP;Lo;0;L;;;;;N;;;;;
+A416;YI SYLLABLE QYRX;Lo;0;L;;;;;N;;;;;
+A417;YI SYLLABLE QYR;Lo;0;L;;;;;N;;;;;
+A418;YI SYLLABLE JJIT;Lo;0;L;;;;;N;;;;;
+A419;YI SYLLABLE JJIX;Lo;0;L;;;;;N;;;;;
+A41A;YI SYLLABLE JJI;Lo;0;L;;;;;N;;;;;
+A41B;YI SYLLABLE JJIP;Lo;0;L;;;;;N;;;;;
+A41C;YI SYLLABLE JJIET;Lo;0;L;;;;;N;;;;;
+A41D;YI SYLLABLE JJIEX;Lo;0;L;;;;;N;;;;;
+A41E;YI SYLLABLE JJIE;Lo;0;L;;;;;N;;;;;
+A41F;YI SYLLABLE JJIEP;Lo;0;L;;;;;N;;;;;
+A420;YI SYLLABLE JJUOX;Lo;0;L;;;;;N;;;;;
+A421;YI SYLLABLE JJUO;Lo;0;L;;;;;N;;;;;
+A422;YI SYLLABLE JJUOP;Lo;0;L;;;;;N;;;;;
+A423;YI SYLLABLE JJOT;Lo;0;L;;;;;N;;;;;
+A424;YI SYLLABLE JJOX;Lo;0;L;;;;;N;;;;;
+A425;YI SYLLABLE JJO;Lo;0;L;;;;;N;;;;;
+A426;YI SYLLABLE JJOP;Lo;0;L;;;;;N;;;;;
+A427;YI SYLLABLE JJUT;Lo;0;L;;;;;N;;;;;
+A428;YI SYLLABLE JJUX;Lo;0;L;;;;;N;;;;;
+A429;YI SYLLABLE JJU;Lo;0;L;;;;;N;;;;;
+A42A;YI SYLLABLE JJUP;Lo;0;L;;;;;N;;;;;
+A42B;YI SYLLABLE JJURX;Lo;0;L;;;;;N;;;;;
+A42C;YI SYLLABLE JJUR;Lo;0;L;;;;;N;;;;;
+A42D;YI SYLLABLE JJYT;Lo;0;L;;;;;N;;;;;
+A42E;YI SYLLABLE JJYX;Lo;0;L;;;;;N;;;;;
+A42F;YI SYLLABLE JJY;Lo;0;L;;;;;N;;;;;
+A430;YI SYLLABLE JJYP;Lo;0;L;;;;;N;;;;;
+A431;YI SYLLABLE NJIT;Lo;0;L;;;;;N;;;;;
+A432;YI SYLLABLE NJIX;Lo;0;L;;;;;N;;;;;
+A433;YI SYLLABLE NJI;Lo;0;L;;;;;N;;;;;
+A434;YI SYLLABLE NJIP;Lo;0;L;;;;;N;;;;;
+A435;YI SYLLABLE NJIET;Lo;0;L;;;;;N;;;;;
+A436;YI SYLLABLE NJIEX;Lo;0;L;;;;;N;;;;;
+A437;YI SYLLABLE NJIE;Lo;0;L;;;;;N;;;;;
+A438;YI SYLLABLE NJIEP;Lo;0;L;;;;;N;;;;;
+A439;YI SYLLABLE NJUOX;Lo;0;L;;;;;N;;;;;
+A43A;YI SYLLABLE NJUO;Lo;0;L;;;;;N;;;;;
+A43B;YI SYLLABLE NJOT;Lo;0;L;;;;;N;;;;;
+A43C;YI SYLLABLE NJOX;Lo;0;L;;;;;N;;;;;
+A43D;YI SYLLABLE NJO;Lo;0;L;;;;;N;;;;;
+A43E;YI SYLLABLE NJOP;Lo;0;L;;;;;N;;;;;
+A43F;YI SYLLABLE NJUX;Lo;0;L;;;;;N;;;;;
+A440;YI SYLLABLE NJU;Lo;0;L;;;;;N;;;;;
+A441;YI SYLLABLE NJUP;Lo;0;L;;;;;N;;;;;
+A442;YI SYLLABLE NJURX;Lo;0;L;;;;;N;;;;;
+A443;YI SYLLABLE NJUR;Lo;0;L;;;;;N;;;;;
+A444;YI SYLLABLE NJYT;Lo;0;L;;;;;N;;;;;
+A445;YI SYLLABLE NJYX;Lo;0;L;;;;;N;;;;;
+A446;YI SYLLABLE NJY;Lo;0;L;;;;;N;;;;;
+A447;YI SYLLABLE NJYP;Lo;0;L;;;;;N;;;;;
+A448;YI SYLLABLE NJYRX;Lo;0;L;;;;;N;;;;;
+A449;YI SYLLABLE NJYR;Lo;0;L;;;;;N;;;;;
+A44A;YI SYLLABLE NYIT;Lo;0;L;;;;;N;;;;;
+A44B;YI SYLLABLE NYIX;Lo;0;L;;;;;N;;;;;
+A44C;YI SYLLABLE NYI;Lo;0;L;;;;;N;;;;;
+A44D;YI SYLLABLE NYIP;Lo;0;L;;;;;N;;;;;
+A44E;YI SYLLABLE NYIET;Lo;0;L;;;;;N;;;;;
+A44F;YI SYLLABLE NYIEX;Lo;0;L;;;;;N;;;;;
+A450;YI SYLLABLE NYIE;Lo;0;L;;;;;N;;;;;
+A451;YI SYLLABLE NYIEP;Lo;0;L;;;;;N;;;;;
+A452;YI SYLLABLE NYUOX;Lo;0;L;;;;;N;;;;;
+A453;YI SYLLABLE NYUO;Lo;0;L;;;;;N;;;;;
+A454;YI SYLLABLE NYUOP;Lo;0;L;;;;;N;;;;;
+A455;YI SYLLABLE NYOT;Lo;0;L;;;;;N;;;;;
+A456;YI SYLLABLE NYOX;Lo;0;L;;;;;N;;;;;
+A457;YI SYLLABLE NYO;Lo;0;L;;;;;N;;;;;
+A458;YI SYLLABLE NYOP;Lo;0;L;;;;;N;;;;;
+A459;YI SYLLABLE NYUT;Lo;0;L;;;;;N;;;;;
+A45A;YI SYLLABLE NYUX;Lo;0;L;;;;;N;;;;;
+A45B;YI SYLLABLE NYU;Lo;0;L;;;;;N;;;;;
+A45C;YI SYLLABLE NYUP;Lo;0;L;;;;;N;;;;;
+A45D;YI SYLLABLE XIT;Lo;0;L;;;;;N;;;;;
+A45E;YI SYLLABLE XIX;Lo;0;L;;;;;N;;;;;
+A45F;YI SYLLABLE XI;Lo;0;L;;;;;N;;;;;
+A460;YI SYLLABLE XIP;Lo;0;L;;;;;N;;;;;
+A461;YI SYLLABLE XIET;Lo;0;L;;;;;N;;;;;
+A462;YI SYLLABLE XIEX;Lo;0;L;;;;;N;;;;;
+A463;YI SYLLABLE XIE;Lo;0;L;;;;;N;;;;;
+A464;YI SYLLABLE XIEP;Lo;0;L;;;;;N;;;;;
+A465;YI SYLLABLE XUOX;Lo;0;L;;;;;N;;;;;
+A466;YI SYLLABLE XUO;Lo;0;L;;;;;N;;;;;
+A467;YI SYLLABLE XOT;Lo;0;L;;;;;N;;;;;
+A468;YI SYLLABLE XOX;Lo;0;L;;;;;N;;;;;
+A469;YI SYLLABLE XO;Lo;0;L;;;;;N;;;;;
+A46A;YI SYLLABLE XOP;Lo;0;L;;;;;N;;;;;
+A46B;YI SYLLABLE XYT;Lo;0;L;;;;;N;;;;;
+A46C;YI SYLLABLE XYX;Lo;0;L;;;;;N;;;;;
+A46D;YI SYLLABLE XY;Lo;0;L;;;;;N;;;;;
+A46E;YI SYLLABLE XYP;Lo;0;L;;;;;N;;;;;
+A46F;YI SYLLABLE XYRX;Lo;0;L;;;;;N;;;;;
+A470;YI SYLLABLE XYR;Lo;0;L;;;;;N;;;;;
+A471;YI SYLLABLE YIT;Lo;0;L;;;;;N;;;;;
+A472;YI SYLLABLE YIX;Lo;0;L;;;;;N;;;;;
+A473;YI SYLLABLE YI;Lo;0;L;;;;;N;;;;;
+A474;YI SYLLABLE YIP;Lo;0;L;;;;;N;;;;;
+A475;YI SYLLABLE YIET;Lo;0;L;;;;;N;;;;;
+A476;YI SYLLABLE YIEX;Lo;0;L;;;;;N;;;;;
+A477;YI SYLLABLE YIE;Lo;0;L;;;;;N;;;;;
+A478;YI SYLLABLE YIEP;Lo;0;L;;;;;N;;;;;
+A479;YI SYLLABLE YUOT;Lo;0;L;;;;;N;;;;;
+A47A;YI SYLLABLE YUOX;Lo;0;L;;;;;N;;;;;
+A47B;YI SYLLABLE YUO;Lo;0;L;;;;;N;;;;;
+A47C;YI SYLLABLE YUOP;Lo;0;L;;;;;N;;;;;
+A47D;YI SYLLABLE YOT;Lo;0;L;;;;;N;;;;;
+A47E;YI SYLLABLE YOX;Lo;0;L;;;;;N;;;;;
+A47F;YI SYLLABLE YO;Lo;0;L;;;;;N;;;;;
+A480;YI SYLLABLE YOP;Lo;0;L;;;;;N;;;;;
+A481;YI SYLLABLE YUT;Lo;0;L;;;;;N;;;;;
+A482;YI SYLLABLE YUX;Lo;0;L;;;;;N;;;;;
+A483;YI SYLLABLE YU;Lo;0;L;;;;;N;;;;;
+A484;YI SYLLABLE YUP;Lo;0;L;;;;;N;;;;;
+A485;YI SYLLABLE YURX;Lo;0;L;;;;;N;;;;;
+A486;YI SYLLABLE YUR;Lo;0;L;;;;;N;;;;;
+A487;YI SYLLABLE YYT;Lo;0;L;;;;;N;;;;;
+A488;YI SYLLABLE YYX;Lo;0;L;;;;;N;;;;;
+A489;YI SYLLABLE YY;Lo;0;L;;;;;N;;;;;
+A48A;YI SYLLABLE YYP;Lo;0;L;;;;;N;;;;;
+A48B;YI SYLLABLE YYRX;Lo;0;L;;;;;N;;;;;
+A48C;YI SYLLABLE YYR;Lo;0;L;;;;;N;;;;;
+A490;YI RADICAL QOT;So;0;ON;;;;;N;;;;;
+A491;YI RADICAL LI;So;0;ON;;;;;N;;;;;
+A492;YI RADICAL KIT;So;0;ON;;;;;N;;;;;
+A493;YI RADICAL NYIP;So;0;ON;;;;;N;;;;;
+A494;YI RADICAL CYP;So;0;ON;;;;;N;;;;;
+A495;YI RADICAL SSI;So;0;ON;;;;;N;;;;;
+A496;YI RADICAL GGOP;So;0;ON;;;;;N;;;;;
+A497;YI RADICAL GEP;So;0;ON;;;;;N;;;;;
+A498;YI RADICAL MI;So;0;ON;;;;;N;;;;;
+A499;YI RADICAL HXIT;So;0;ON;;;;;N;;;;;
+A49A;YI RADICAL LYR;So;0;ON;;;;;N;;;;;
+A49B;YI RADICAL BBUT;So;0;ON;;;;;N;;;;;
+A49C;YI RADICAL MOP;So;0;ON;;;;;N;;;;;
+A49D;YI RADICAL YO;So;0;ON;;;;;N;;;;;
+A49E;YI RADICAL PUT;So;0;ON;;;;;N;;;;;
+A49F;YI RADICAL HXUO;So;0;ON;;;;;N;;;;;
+A4A0;YI RADICAL TAT;So;0;ON;;;;;N;;;;;
+A4A1;YI RADICAL GA;So;0;ON;;;;;N;;;;;
+A4A2;YI RADICAL ZUP;So;0;ON;;;;;N;;;;;
+A4A3;YI RADICAL CYT;So;0;ON;;;;;N;;;;;
+A4A4;YI RADICAL DDUR;So;0;ON;;;;;N;;;;;
+A4A5;YI RADICAL BUR;So;0;ON;;;;;N;;;;;
+A4A6;YI RADICAL GGUO;So;0;ON;;;;;N;;;;;
+A4A7;YI RADICAL NYOP;So;0;ON;;;;;N;;;;;
+A4A8;YI RADICAL TU;So;0;ON;;;;;N;;;;;
+A4A9;YI RADICAL OP;So;0;ON;;;;;N;;;;;
+A4AA;YI RADICAL JJUT;So;0;ON;;;;;N;;;;;
+A4AB;YI RADICAL ZOT;So;0;ON;;;;;N;;;;;
+A4AC;YI RADICAL PYT;So;0;ON;;;;;N;;;;;
+A4AD;YI RADICAL HMO;So;0;ON;;;;;N;;;;;
+A4AE;YI RADICAL YIT;So;0;ON;;;;;N;;;;;
+A4AF;YI RADICAL VUR;So;0;ON;;;;;N;;;;;
+A4B0;YI RADICAL SHY;So;0;ON;;;;;N;;;;;
+A4B1;YI RADICAL VEP;So;0;ON;;;;;N;;;;;
+A4B2;YI RADICAL ZA;So;0;ON;;;;;N;;;;;
+A4B3;YI RADICAL JO;So;0;ON;;;;;N;;;;;
+A4B4;YI RADICAL NZUP;So;0;ON;;;;;N;;;;;
+A4B5;YI RADICAL JJY;So;0;ON;;;;;N;;;;;
+A4B6;YI RADICAL GOT;So;0;ON;;;;;N;;;;;
+A4B7;YI RADICAL JJIE;So;0;ON;;;;;N;;;;;
+A4B8;YI RADICAL WO;So;0;ON;;;;;N;;;;;
+A4B9;YI RADICAL DU;So;0;ON;;;;;N;;;;;
+A4BA;YI RADICAL SHUR;So;0;ON;;;;;N;;;;;
+A4BB;YI RADICAL LIE;So;0;ON;;;;;N;;;;;
+A4BC;YI RADICAL CY;So;0;ON;;;;;N;;;;;
+A4BD;YI RADICAL CUOP;So;0;ON;;;;;N;;;;;
+A4BE;YI RADICAL CIP;So;0;ON;;;;;N;;;;;
+A4BF;YI RADICAL HXOP;So;0;ON;;;;;N;;;;;
+A4C0;YI RADICAL SHAT;So;0;ON;;;;;N;;;;;
+A4C1;YI RADICAL ZUR;So;0;ON;;;;;N;;;;;
+A4C2;YI RADICAL SHOP;So;0;ON;;;;;N;;;;;
+A4C3;YI RADICAL CHE;So;0;ON;;;;;N;;;;;
+A4C4;YI RADICAL ZZIET;So;0;ON;;;;;N;;;;;
+A4C5;YI RADICAL NBIE;So;0;ON;;;;;N;;;;;
+A4C6;YI RADICAL KE;So;0;ON;;;;;N;;;;;
+A700;MODIFIER LETTER CHINESE TONE YIN PING;Sk;0;ON;;;;;N;;;;;
+A701;MODIFIER LETTER CHINESE TONE YANG PING;Sk;0;ON;;;;;N;;;;;
+A702;MODIFIER LETTER CHINESE TONE YIN SHANG;Sk;0;ON;;;;;N;;;;;
+A703;MODIFIER LETTER CHINESE TONE YANG SHANG;Sk;0;ON;;;;;N;;;;;
+A704;MODIFIER LETTER CHINESE TONE YIN QU;Sk;0;ON;;;;;N;;;;;
+A705;MODIFIER LETTER CHINESE TONE YANG QU;Sk;0;ON;;;;;N;;;;;
+A706;MODIFIER LETTER CHINESE TONE YIN RU;Sk;0;ON;;;;;N;;;;;
+A707;MODIFIER LETTER CHINESE TONE YANG RU;Sk;0;ON;;;;;N;;;;;
+A708;MODIFIER LETTER EXTRA-HIGH DOTTED TONE BAR;Sk;0;ON;;;;;N;;;;;
+A709;MODIFIER LETTER HIGH DOTTED TONE BAR;Sk;0;ON;;;;;N;;;;;
+A70A;MODIFIER LETTER MID DOTTED TONE BAR;Sk;0;ON;;;;;N;;;;;
+A70B;MODIFIER LETTER LOW DOTTED TONE BAR;Sk;0;ON;;;;;N;;;;;
+A70C;MODIFIER LETTER EXTRA-LOW DOTTED TONE BAR;Sk;0;ON;;;;;N;;;;;
+A70D;MODIFIER LETTER EXTRA-HIGH DOTTED LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;;
+A70E;MODIFIER LETTER HIGH DOTTED LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;;
+A70F;MODIFIER LETTER MID DOTTED LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;;
+A710;MODIFIER LETTER LOW DOTTED LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;;
+A711;MODIFIER LETTER EXTRA-LOW DOTTED LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;;
+A712;MODIFIER LETTER EXTRA-HIGH LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;;
+A713;MODIFIER LETTER HIGH LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;;
+A714;MODIFIER LETTER MID LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;;
+A715;MODIFIER LETTER LOW LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;;
+A716;MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;;
+A717;MODIFIER LETTER DOT VERTICAL BAR;Lm;0;ON;;;;;N;;;;;
+A718;MODIFIER LETTER DOT SLASH;Lm;0;ON;;;;;N;;;;;
+A719;MODIFIER LETTER DOT HORIZONTAL BAR;Lm;0;ON;;;;;N;;;;;
+A71A;MODIFIER LETTER LOWER RIGHT CORNER ANGLE;Lm;0;ON;;;;;N;;;;;
+A720;MODIFIER LETTER STRESS AND HIGH TONE;Sk;0;ON;;;;;N;;;;;
+A721;MODIFIER LETTER STRESS AND LOW TONE;Sk;0;ON;;;;;N;;;;;
+A800;SYLOTI NAGRI LETTER A;Lo;0;L;;;;;N;;;;;
+A801;SYLOTI NAGRI LETTER I;Lo;0;L;;;;;N;;;;;
+A802;SYLOTI NAGRI SIGN DVISVARA;Mc;0;NSM;;;;;N;;;;;
+A803;SYLOTI NAGRI LETTER U;Lo;0;L;;;;;N;;;;;
+A804;SYLOTI NAGRI LETTER E;Lo;0;L;;;;;N;;;;;
+A805;SYLOTI NAGRI LETTER O;Lo;0;L;;;;;N;;;;;
+A806;SYLOTI NAGRI SIGN HASANTA;Mn;9;NSM;;;;;N;;;;;
+A807;SYLOTI NAGRI LETTER KO;Lo;0;L;;;;;N;;;;;
+A808;SYLOTI NAGRI LETTER KHO;Lo;0;L;;;;;N;;;;;
+A809;SYLOTI NAGRI LETTER GO;Lo;0;L;;;;;N;;;;;
+A80A;SYLOTI NAGRI LETTER GHO;Lo;0;L;;;;;N;;;;;
+A80B;SYLOTI NAGRI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
+A80C;SYLOTI NAGRI LETTER CO;Lo;0;L;;;;;N;;;;;
+A80D;SYLOTI NAGRI LETTER CHO;Lo;0;L;;;;;N;;;;;
+A80E;SYLOTI NAGRI LETTER JO;Lo;0;L;;;;;N;;;;;
+A80F;SYLOTI NAGRI LETTER JHO;Lo;0;L;;;;;N;;;;;
+A810;SYLOTI NAGRI LETTER TTO;Lo;0;L;;;;;N;;;;;
+A811;SYLOTI NAGRI LETTER TTHO;Lo;0;L;;;;;N;;;;;
+A812;SYLOTI NAGRI LETTER DDO;Lo;0;L;;;;;N;;;;;
+A813;SYLOTI NAGRI LETTER DDHO;Lo;0;L;;;;;N;;;;;
+A814;SYLOTI NAGRI LETTER TO;Lo;0;L;;;;;N;;;;;
+A815;SYLOTI NAGRI LETTER THO;Lo;0;L;;;;;N;;;;;
+A816;SYLOTI NAGRI LETTER DO;Lo;0;L;;;;;N;;;;;
+A817;SYLOTI NAGRI LETTER DHO;Lo;0;L;;;;;N;;;;;
+A818;SYLOTI NAGRI LETTER NO;Lo;0;L;;;;;N;;;;;
+A819;SYLOTI NAGRI LETTER PO;Lo;0;L;;;;;N;;;;;
+A81A;SYLOTI NAGRI LETTER PHO;Lo;0;L;;;;;N;;;;;
+A81B;SYLOTI NAGRI LETTER BO;Lo;0;L;;;;;N;;;;;
+A81C;SYLOTI NAGRI LETTER BHO;Lo;0;L;;;;;N;;;;;
+A81D;SYLOTI NAGRI LETTER MO;Lo;0;L;;;;;N;;;;;
+A81E;SYLOTI NAGRI LETTER RO;Lo;0;L;;;;;N;;;;;
+A81F;SYLOTI NAGRI LETTER LO;Lo;0;L;;;;;N;;;;;
+A820;SYLOTI NAGRI LETTER RRO;Lo;0;L;;;;;N;;;;;
+A821;SYLOTI NAGRI LETTER SO;Lo;0;L;;;;;N;;;;;
+A822;SYLOTI NAGRI LETTER HO;Lo;0;L;;;;;N;;;;;
+A823;SYLOTI NAGRI VOWEL SIGN A;Mc;0;L;;;;;N;;;;;
+A824;SYLOTI NAGRI VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
+A825;SYLOTI NAGRI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+A826;SYLOTI NAGRI VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;;
+A827;SYLOTI NAGRI VOWEL SIGN OO;Mc;0;L;;;;;N;;;;;
+A828;SYLOTI NAGRI POETRY MARK-1;So;0;ON;;;;;N;;;;;
+A829;SYLOTI NAGRI POETRY MARK-2;So;0;ON;;;;;N;;;;;
+A82A;SYLOTI NAGRI POETRY MARK-3;So;0;ON;;;;;N;;;;;
+A82B;SYLOTI NAGRI POETRY MARK-4;So;0;ON;;;;;N;;;;;
+A840;PHAGS-PA LETTER KA;Lo;0;L;;;;;N;;;;;
+A841;PHAGS-PA LETTER KHA;Lo;0;L;;;;;N;;;;;
+A842;PHAGS-PA LETTER GA;Lo;0;L;;;;;N;;;;;
+A843;PHAGS-PA LETTER NGA;Lo;0;L;;;;;N;;;;;
+A844;PHAGS-PA LETTER CA;Lo;0;L;;;;;N;;;;;
+A845;PHAGS-PA LETTER CHA;Lo;0;L;;;;;N;;;;;
+A846;PHAGS-PA LETTER JA;Lo;0;L;;;;;N;;;;;
+A847;PHAGS-PA LETTER NYA;Lo;0;L;;;;;N;;;;;
+A848;PHAGS-PA LETTER TA;Lo;0;L;;;;;N;;;;;
+A849;PHAGS-PA LETTER THA;Lo;0;L;;;;;N;;;;;
+A84A;PHAGS-PA LETTER DA;Lo;0;L;;;;;N;;;;;
+A84B;PHAGS-PA LETTER NA;Lo;0;L;;;;;N;;;;;
+A84C;PHAGS-PA LETTER PA;Lo;0;L;;;;;N;;;;;
+A84D;PHAGS-PA LETTER PHA;Lo;0;L;;;;;N;;;;;
+A84E;PHAGS-PA LETTER BA;Lo;0;L;;;;;N;;;;;
+A84F;PHAGS-PA LETTER MA;Lo;0;L;;;;;N;;;;;
+A850;PHAGS-PA LETTER TSA;Lo;0;L;;;;;N;;;;;
+A851;PHAGS-PA LETTER TSHA;Lo;0;L;;;;;N;;;;;
+A852;PHAGS-PA LETTER DZA;Lo;0;L;;;;;N;;;;;
+A853;PHAGS-PA LETTER WA;Lo;0;L;;;;;N;;;;;
+A854;PHAGS-PA LETTER ZHA;Lo;0;L;;;;;N;;;;;
+A855;PHAGS-PA LETTER ZA;Lo;0;L;;;;;N;;;;;
+A856;PHAGS-PA LETTER SMALL A;Lo;0;L;;;;;N;;;;;
+A857;PHAGS-PA LETTER YA;Lo;0;L;;;;;N;;;;;
+A858;PHAGS-PA LETTER RA;Lo;0;L;;;;;N;;;;;
+A859;PHAGS-PA LETTER LA;Lo;0;L;;;;;N;;;;;
+A85A;PHAGS-PA LETTER SHA;Lo;0;L;;;;;N;;;;;
+A85B;PHAGS-PA LETTER SA;Lo;0;L;;;;;N;;;;;
+A85C;PHAGS-PA LETTER HA;Lo;0;L;;;;;N;;;;;
+A85D;PHAGS-PA LETTER A;Lo;0;L;;;;;N;;;;;
+A85E;PHAGS-PA LETTER I;Lo;0;L;;;;;N;;;;;
+A85F;PHAGS-PA LETTER U;Lo;0;L;;;;;N;;;;;
+A860;PHAGS-PA LETTER E;Lo;0;L;;;;;N;;;;;
+A861;PHAGS-PA LETTER O;Lo;0;L;;;;;N;;;;;
+A862;PHAGS-PA LETTER QA;Lo;0;L;;;;;N;;;;;
+A863;PHAGS-PA LETTER XA;Lo;0;L;;;;;N;;;;;
+A864;PHAGS-PA LETTER FA;Lo;0;L;;;;;N;;;;;
+A865;PHAGS-PA LETTER GGA;Lo;0;L;;;;;N;;;;;
+A866;PHAGS-PA LETTER EE;Lo;0;L;;;;;N;;;;;
+A867;PHAGS-PA SUBJOINED LETTER WA;Lo;0;L;;;;;N;;;;;
+A868;PHAGS-PA SUBJOINED LETTER YA;Lo;0;L;;;;;N;;;;;
+A869;PHAGS-PA LETTER TTA;Lo;0;L;;;;;N;;;;;
+A86A;PHAGS-PA LETTER TTHA;Lo;0;L;;;;;N;;;;;
+A86B;PHAGS-PA LETTER DDA;Lo;0;L;;;;;N;;;;;
+A86C;PHAGS-PA LETTER NNA;Lo;0;L;;;;;N;;;;;
+A86D;PHAGS-PA LETTER ALTERNATE YA;Lo;0;L;;;;;N;;;;;
+A86E;PHAGS-PA LETTER VOICELESS SHA;Lo;0;L;;;;;N;;;;;
+A86F;PHAGS-PA LETTER VOICED HA;Lo;0;L;;;;;N;;;;;
+A870;PHAGS-PA LETTER ASPIRATED FA;Lo;0;L;;;;;N;;;;;
+A871;PHAGS-PA SUBJOINED LETTER RA;Lo;0;L;;;;;N;;;;;
+A872;PHAGS-PA SUPERFIXED LETTER RA;Lo;0;L;;;;;N;;;;;
+A873;PHAGS-PA LETTER CANDRABINDU;Lo;0;L;;;;;N;;;;;
+A874;PHAGS-PA SINGLE HEAD MARK;Po;0;ON;;;;;N;;;;;
+A875;PHAGS-PA DOUBLE HEAD MARK;Po;0;ON;;;;;N;;;;;
+A876;PHAGS-PA MARK SHAD;Po;0;ON;;;;;N;;;;;
+A877;PHAGS-PA MARK DOUBLE SHAD;Po;0;ON;;;;;N;;;;;
+AC00;<Hangul Syllable, First>;Lo;0;L;;;;;N;;;;;
+D7A3;<Hangul Syllable, Last>;Lo;0;L;;;;;N;;;;;
+D800;<Non Private Use High Surrogate, First>;Cs;0;L;;;;;N;;;;;
+DB7F;<Non Private Use High Surrogate, Last>;Cs;0;L;;;;;N;;;;;
+DB80;<Private Use High Surrogate, First>;Cs;0;L;;;;;N;;;;;
+DBFF;<Private Use High Surrogate, Last>;Cs;0;L;;;;;N;;;;;
+DC00;<Low Surrogate, First>;Cs;0;L;;;;;N;;;;;
+DFFF;<Low Surrogate, Last>;Cs;0;L;;;;;N;;;;;
+E000;<Private Use, First>;Co;0;L;;;;;N;;;;;
+F8FF;<Private Use, Last>;Co;0;L;;;;;N;;;;;
+F900;CJK COMPATIBILITY IDEOGRAPH-F900;Lo;0;L;8C48;;;;N;;;;;
+F901;CJK COMPATIBILITY IDEOGRAPH-F901;Lo;0;L;66F4;;;;N;;;;;
+F902;CJK COMPATIBILITY IDEOGRAPH-F902;Lo;0;L;8ECA;;;;N;;;;;
+F903;CJK COMPATIBILITY IDEOGRAPH-F903;Lo;0;L;8CC8;;;;N;;;;;
+F904;CJK COMPATIBILITY IDEOGRAPH-F904;Lo;0;L;6ED1;;;;N;;;;;
+F905;CJK COMPATIBILITY IDEOGRAPH-F905;Lo;0;L;4E32;;;;N;;;;;
+F906;CJK COMPATIBILITY IDEOGRAPH-F906;Lo;0;L;53E5;;;;N;;;;;
+F907;CJK COMPATIBILITY IDEOGRAPH-F907;Lo;0;L;9F9C;;;;N;;;;;
+F908;CJK COMPATIBILITY IDEOGRAPH-F908;Lo;0;L;9F9C;;;;N;;;;;
+F909;CJK COMPATIBILITY IDEOGRAPH-F909;Lo;0;L;5951;;;;N;;;;;
+F90A;CJK COMPATIBILITY IDEOGRAPH-F90A;Lo;0;L;91D1;;;;N;;;;;
+F90B;CJK COMPATIBILITY IDEOGRAPH-F90B;Lo;0;L;5587;;;;N;;;;;
+F90C;CJK COMPATIBILITY IDEOGRAPH-F90C;Lo;0;L;5948;;;;N;;;;;
+F90D;CJK COMPATIBILITY IDEOGRAPH-F90D;Lo;0;L;61F6;;;;N;;;;;
+F90E;CJK COMPATIBILITY IDEOGRAPH-F90E;Lo;0;L;7669;;;;N;;;;;
+F90F;CJK COMPATIBILITY IDEOGRAPH-F90F;Lo;0;L;7F85;;;;N;;;;;
+F910;CJK COMPATIBILITY IDEOGRAPH-F910;Lo;0;L;863F;;;;N;;;;;
+F911;CJK COMPATIBILITY IDEOGRAPH-F911;Lo;0;L;87BA;;;;N;;;;;
+F912;CJK COMPATIBILITY IDEOGRAPH-F912;Lo;0;L;88F8;;;;N;;;;;
+F913;CJK COMPATIBILITY IDEOGRAPH-F913;Lo;0;L;908F;;;;N;;;;;
+F914;CJK COMPATIBILITY IDEOGRAPH-F914;Lo;0;L;6A02;;;;N;;;;;
+F915;CJK COMPATIBILITY IDEOGRAPH-F915;Lo;0;L;6D1B;;;;N;;;;;
+F916;CJK COMPATIBILITY IDEOGRAPH-F916;Lo;0;L;70D9;;;;N;;;;;
+F917;CJK COMPATIBILITY IDEOGRAPH-F917;Lo;0;L;73DE;;;;N;;;;;
+F918;CJK COMPATIBILITY IDEOGRAPH-F918;Lo;0;L;843D;;;;N;;;;;
+F919;CJK COMPATIBILITY IDEOGRAPH-F919;Lo;0;L;916A;;;;N;;;;;
+F91A;CJK COMPATIBILITY IDEOGRAPH-F91A;Lo;0;L;99F1;;;;N;;;;;
+F91B;CJK COMPATIBILITY IDEOGRAPH-F91B;Lo;0;L;4E82;;;;N;;;;;
+F91C;CJK COMPATIBILITY IDEOGRAPH-F91C;Lo;0;L;5375;;;;N;;;;;
+F91D;CJK COMPATIBILITY IDEOGRAPH-F91D;Lo;0;L;6B04;;;;N;;;;;
+F91E;CJK COMPATIBILITY IDEOGRAPH-F91E;Lo;0;L;721B;;;;N;;;;;
+F91F;CJK COMPATIBILITY IDEOGRAPH-F91F;Lo;0;L;862D;;;;N;;;;;
+F920;CJK COMPATIBILITY IDEOGRAPH-F920;Lo;0;L;9E1E;;;;N;;;;;
+F921;CJK COMPATIBILITY IDEOGRAPH-F921;Lo;0;L;5D50;;;;N;;;;;
+F922;CJK COMPATIBILITY IDEOGRAPH-F922;Lo;0;L;6FEB;;;;N;;;;;
+F923;CJK COMPATIBILITY IDEOGRAPH-F923;Lo;0;L;85CD;;;;N;;;;;
+F924;CJK COMPATIBILITY IDEOGRAPH-F924;Lo;0;L;8964;;;;N;;;;;
+F925;CJK COMPATIBILITY IDEOGRAPH-F925;Lo;0;L;62C9;;;;N;;;;;
+F926;CJK COMPATIBILITY IDEOGRAPH-F926;Lo;0;L;81D8;;;;N;;;;;
+F927;CJK COMPATIBILITY IDEOGRAPH-F927;Lo;0;L;881F;;;;N;;;;;
+F928;CJK COMPATIBILITY IDEOGRAPH-F928;Lo;0;L;5ECA;;;;N;;;;;
+F929;CJK COMPATIBILITY IDEOGRAPH-F929;Lo;0;L;6717;;;;N;;;;;
+F92A;CJK COMPATIBILITY IDEOGRAPH-F92A;Lo;0;L;6D6A;;;;N;;;;;
+F92B;CJK COMPATIBILITY IDEOGRAPH-F92B;Lo;0;L;72FC;;;;N;;;;;
+F92C;CJK COMPATIBILITY IDEOGRAPH-F92C;Lo;0;L;90CE;;;;N;;;;;
+F92D;CJK COMPATIBILITY IDEOGRAPH-F92D;Lo;0;L;4F86;;;;N;;;;;
+F92E;CJK COMPATIBILITY IDEOGRAPH-F92E;Lo;0;L;51B7;;;;N;;;;;
+F92F;CJK COMPATIBILITY IDEOGRAPH-F92F;Lo;0;L;52DE;;;;N;;;;;
+F930;CJK COMPATIBILITY IDEOGRAPH-F930;Lo;0;L;64C4;;;;N;;;;;
+F931;CJK COMPATIBILITY IDEOGRAPH-F931;Lo;0;L;6AD3;;;;N;;;;;
+F932;CJK COMPATIBILITY IDEOGRAPH-F932;Lo;0;L;7210;;;;N;;;;;
+F933;CJK COMPATIBILITY IDEOGRAPH-F933;Lo;0;L;76E7;;;;N;;;;;
+F934;CJK COMPATIBILITY IDEOGRAPH-F934;Lo;0;L;8001;;;;N;;;;;
+F935;CJK COMPATIBILITY IDEOGRAPH-F935;Lo;0;L;8606;;;;N;;;;;
+F936;CJK COMPATIBILITY IDEOGRAPH-F936;Lo;0;L;865C;;;;N;;;;;
+F937;CJK COMPATIBILITY IDEOGRAPH-F937;Lo;0;L;8DEF;;;;N;;;;;
+F938;CJK COMPATIBILITY IDEOGRAPH-F938;Lo;0;L;9732;;;;N;;;;;
+F939;CJK COMPATIBILITY IDEOGRAPH-F939;Lo;0;L;9B6F;;;;N;;;;;
+F93A;CJK COMPATIBILITY IDEOGRAPH-F93A;Lo;0;L;9DFA;;;;N;;;;;
+F93B;CJK COMPATIBILITY IDEOGRAPH-F93B;Lo;0;L;788C;;;;N;;;;;
+F93C;CJK COMPATIBILITY IDEOGRAPH-F93C;Lo;0;L;797F;;;;N;;;;;
+F93D;CJK COMPATIBILITY IDEOGRAPH-F93D;Lo;0;L;7DA0;;;;N;;;;;
+F93E;CJK COMPATIBILITY IDEOGRAPH-F93E;Lo;0;L;83C9;;;;N;;;;;
+F93F;CJK COMPATIBILITY IDEOGRAPH-F93F;Lo;0;L;9304;;;;N;;;;;
+F940;CJK COMPATIBILITY IDEOGRAPH-F940;Lo;0;L;9E7F;;;;N;;;;;
+F941;CJK COMPATIBILITY IDEOGRAPH-F941;Lo;0;L;8AD6;;;;N;;;;;
+F942;CJK COMPATIBILITY IDEOGRAPH-F942;Lo;0;L;58DF;;;;N;;;;;
+F943;CJK COMPATIBILITY IDEOGRAPH-F943;Lo;0;L;5F04;;;;N;;;;;
+F944;CJK COMPATIBILITY IDEOGRAPH-F944;Lo;0;L;7C60;;;;N;;;;;
+F945;CJK COMPATIBILITY IDEOGRAPH-F945;Lo;0;L;807E;;;;N;;;;;
+F946;CJK COMPATIBILITY IDEOGRAPH-F946;Lo;0;L;7262;;;;N;;;;;
+F947;CJK COMPATIBILITY IDEOGRAPH-F947;Lo;0;L;78CA;;;;N;;;;;
+F948;CJK COMPATIBILITY IDEOGRAPH-F948;Lo;0;L;8CC2;;;;N;;;;;
+F949;CJK COMPATIBILITY IDEOGRAPH-F949;Lo;0;L;96F7;;;;N;;;;;
+F94A;CJK COMPATIBILITY IDEOGRAPH-F94A;Lo;0;L;58D8;;;;N;;;;;
+F94B;CJK COMPATIBILITY IDEOGRAPH-F94B;Lo;0;L;5C62;;;;N;;;;;
+F94C;CJK COMPATIBILITY IDEOGRAPH-F94C;Lo;0;L;6A13;;;;N;;;;;
+F94D;CJK COMPATIBILITY IDEOGRAPH-F94D;Lo;0;L;6DDA;;;;N;;;;;
+F94E;CJK COMPATIBILITY IDEOGRAPH-F94E;Lo;0;L;6F0F;;;;N;;;;;
+F94F;CJK COMPATIBILITY IDEOGRAPH-F94F;Lo;0;L;7D2F;;;;N;;;;;
+F950;CJK COMPATIBILITY IDEOGRAPH-F950;Lo;0;L;7E37;;;;N;;;;;
+F951;CJK COMPATIBILITY IDEOGRAPH-F951;Lo;0;L;964B;;;;N;;;;;
+F952;CJK COMPATIBILITY IDEOGRAPH-F952;Lo;0;L;52D2;;;;N;;;;;
+F953;CJK COMPATIBILITY IDEOGRAPH-F953;Lo;0;L;808B;;;;N;;;;;
+F954;CJK COMPATIBILITY IDEOGRAPH-F954;Lo;0;L;51DC;;;;N;;;;;
+F955;CJK COMPATIBILITY IDEOGRAPH-F955;Lo;0;L;51CC;;;;N;;;;;
+F956;CJK COMPATIBILITY IDEOGRAPH-F956;Lo;0;L;7A1C;;;;N;;;;;
+F957;CJK COMPATIBILITY IDEOGRAPH-F957;Lo;0;L;7DBE;;;;N;;;;;
+F958;CJK COMPATIBILITY IDEOGRAPH-F958;Lo;0;L;83F1;;;;N;;;;;
+F959;CJK COMPATIBILITY IDEOGRAPH-F959;Lo;0;L;9675;;;;N;;;;;
+F95A;CJK COMPATIBILITY IDEOGRAPH-F95A;Lo;0;L;8B80;;;;N;;;;;
+F95B;CJK COMPATIBILITY IDEOGRAPH-F95B;Lo;0;L;62CF;;;;N;;;;;
+F95C;CJK COMPATIBILITY IDEOGRAPH-F95C;Lo;0;L;6A02;;;;N;;;;;
+F95D;CJK COMPATIBILITY IDEOGRAPH-F95D;Lo;0;L;8AFE;;;;N;;;;;
+F95E;CJK COMPATIBILITY IDEOGRAPH-F95E;Lo;0;L;4E39;;;;N;;;;;
+F95F;CJK COMPATIBILITY IDEOGRAPH-F95F;Lo;0;L;5BE7;;;;N;;;;;
+F960;CJK COMPATIBILITY IDEOGRAPH-F960;Lo;0;L;6012;;;;N;;;;;
+F961;CJK COMPATIBILITY IDEOGRAPH-F961;Lo;0;L;7387;;;;N;;;;;
+F962;CJK COMPATIBILITY IDEOGRAPH-F962;Lo;0;L;7570;;;;N;;;;;
+F963;CJK COMPATIBILITY IDEOGRAPH-F963;Lo;0;L;5317;;;;N;;;;;
+F964;CJK COMPATIBILITY IDEOGRAPH-F964;Lo;0;L;78FB;;;;N;;;;;
+F965;CJK COMPATIBILITY IDEOGRAPH-F965;Lo;0;L;4FBF;;;;N;;;;;
+F966;CJK COMPATIBILITY IDEOGRAPH-F966;Lo;0;L;5FA9;;;;N;;;;;
+F967;CJK COMPATIBILITY IDEOGRAPH-F967;Lo;0;L;4E0D;;;;N;;;;;
+F968;CJK COMPATIBILITY IDEOGRAPH-F968;Lo;0;L;6CCC;;;;N;;;;;
+F969;CJK COMPATIBILITY IDEOGRAPH-F969;Lo;0;L;6578;;;;N;;;;;
+F96A;CJK COMPATIBILITY IDEOGRAPH-F96A;Lo;0;L;7D22;;;;N;;;;;
+F96B;CJK COMPATIBILITY IDEOGRAPH-F96B;Lo;0;L;53C3;;;;N;;;;;
+F96C;CJK COMPATIBILITY IDEOGRAPH-F96C;Lo;0;L;585E;;;;N;;;;;
+F96D;CJK COMPATIBILITY IDEOGRAPH-F96D;Lo;0;L;7701;;;;N;;;;;
+F96E;CJK COMPATIBILITY IDEOGRAPH-F96E;Lo;0;L;8449;;;;N;;;;;
+F96F;CJK COMPATIBILITY IDEOGRAPH-F96F;Lo;0;L;8AAA;;;;N;;;;;
+F970;CJK COMPATIBILITY IDEOGRAPH-F970;Lo;0;L;6BBA;;;;N;;;;;
+F971;CJK COMPATIBILITY IDEOGRAPH-F971;Lo;0;L;8FB0;;;;N;;;;;
+F972;CJK COMPATIBILITY IDEOGRAPH-F972;Lo;0;L;6C88;;;;N;;;;;
+F973;CJK COMPATIBILITY IDEOGRAPH-F973;Lo;0;L;62FE;;;;N;;;;;
+F974;CJK COMPATIBILITY IDEOGRAPH-F974;Lo;0;L;82E5;;;;N;;;;;
+F975;CJK COMPATIBILITY IDEOGRAPH-F975;Lo;0;L;63A0;;;;N;;;;;
+F976;CJK COMPATIBILITY IDEOGRAPH-F976;Lo;0;L;7565;;;;N;;;;;
+F977;CJK COMPATIBILITY IDEOGRAPH-F977;Lo;0;L;4EAE;;;;N;;;;;
+F978;CJK COMPATIBILITY IDEOGRAPH-F978;Lo;0;L;5169;;;;N;;;;;
+F979;CJK COMPATIBILITY IDEOGRAPH-F979;Lo;0;L;51C9;;;;N;;;;;
+F97A;CJK COMPATIBILITY IDEOGRAPH-F97A;Lo;0;L;6881;;;;N;;;;;
+F97B;CJK COMPATIBILITY IDEOGRAPH-F97B;Lo;0;L;7CE7;;;;N;;;;;
+F97C;CJK COMPATIBILITY IDEOGRAPH-F97C;Lo;0;L;826F;;;;N;;;;;
+F97D;CJK COMPATIBILITY IDEOGRAPH-F97D;Lo;0;L;8AD2;;;;N;;;;;
+F97E;CJK COMPATIBILITY IDEOGRAPH-F97E;Lo;0;L;91CF;;;;N;;;;;
+F97F;CJK COMPATIBILITY IDEOGRAPH-F97F;Lo;0;L;52F5;;;;N;;;;;
+F980;CJK COMPATIBILITY IDEOGRAPH-F980;Lo;0;L;5442;;;;N;;;;;
+F981;CJK COMPATIBILITY IDEOGRAPH-F981;Lo;0;L;5973;;;;N;;;;;
+F982;CJK COMPATIBILITY IDEOGRAPH-F982;Lo;0;L;5EEC;;;;N;;;;;
+F983;CJK COMPATIBILITY IDEOGRAPH-F983;Lo;0;L;65C5;;;;N;;;;;
+F984;CJK COMPATIBILITY IDEOGRAPH-F984;Lo;0;L;6FFE;;;;N;;;;;
+F985;CJK COMPATIBILITY IDEOGRAPH-F985;Lo;0;L;792A;;;;N;;;;;
+F986;CJK COMPATIBILITY IDEOGRAPH-F986;Lo;0;L;95AD;;;;N;;;;;
+F987;CJK COMPATIBILITY IDEOGRAPH-F987;Lo;0;L;9A6A;;;;N;;;;;
+F988;CJK COMPATIBILITY IDEOGRAPH-F988;Lo;0;L;9E97;;;;N;;;;;
+F989;CJK COMPATIBILITY IDEOGRAPH-F989;Lo;0;L;9ECE;;;;N;;;;;
+F98A;CJK COMPATIBILITY IDEOGRAPH-F98A;Lo;0;L;529B;;;;N;;;;;
+F98B;CJK COMPATIBILITY IDEOGRAPH-F98B;Lo;0;L;66C6;;;;N;;;;;
+F98C;CJK COMPATIBILITY IDEOGRAPH-F98C;Lo;0;L;6B77;;;;N;;;;;
+F98D;CJK COMPATIBILITY IDEOGRAPH-F98D;Lo;0;L;8F62;;;;N;;;;;
+F98E;CJK COMPATIBILITY IDEOGRAPH-F98E;Lo;0;L;5E74;;;;N;;;;;
+F98F;CJK COMPATIBILITY IDEOGRAPH-F98F;Lo;0;L;6190;;;;N;;;;;
+F990;CJK COMPATIBILITY IDEOGRAPH-F990;Lo;0;L;6200;;;;N;;;;;
+F991;CJK COMPATIBILITY IDEOGRAPH-F991;Lo;0;L;649A;;;;N;;;;;
+F992;CJK COMPATIBILITY IDEOGRAPH-F992;Lo;0;L;6F23;;;;N;;;;;
+F993;CJK COMPATIBILITY IDEOGRAPH-F993;Lo;0;L;7149;;;;N;;;;;
+F994;CJK COMPATIBILITY IDEOGRAPH-F994;Lo;0;L;7489;;;;N;;;;;
+F995;CJK COMPATIBILITY IDEOGRAPH-F995;Lo;0;L;79CA;;;;N;;;;;
+F996;CJK COMPATIBILITY IDEOGRAPH-F996;Lo;0;L;7DF4;;;;N;;;;;
+F997;CJK COMPATIBILITY IDEOGRAPH-F997;Lo;0;L;806F;;;;N;;;;;
+F998;CJK COMPATIBILITY IDEOGRAPH-F998;Lo;0;L;8F26;;;;N;;;;;
+F999;CJK COMPATIBILITY IDEOGRAPH-F999;Lo;0;L;84EE;;;;N;;;;;
+F99A;CJK COMPATIBILITY IDEOGRAPH-F99A;Lo;0;L;9023;;;;N;;;;;
+F99B;CJK COMPATIBILITY IDEOGRAPH-F99B;Lo;0;L;934A;;;;N;;;;;
+F99C;CJK COMPATIBILITY IDEOGRAPH-F99C;Lo;0;L;5217;;;;N;;;;;
+F99D;CJK COMPATIBILITY IDEOGRAPH-F99D;Lo;0;L;52A3;;;;N;;;;;
+F99E;CJK COMPATIBILITY IDEOGRAPH-F99E;Lo;0;L;54BD;;;;N;;;;;
+F99F;CJK COMPATIBILITY IDEOGRAPH-F99F;Lo;0;L;70C8;;;;N;;;;;
+F9A0;CJK COMPATIBILITY IDEOGRAPH-F9A0;Lo;0;L;88C2;;;;N;;;;;
+F9A1;CJK COMPATIBILITY IDEOGRAPH-F9A1;Lo;0;L;8AAA;;;;N;;;;;
+F9A2;CJK COMPATIBILITY IDEOGRAPH-F9A2;Lo;0;L;5EC9;;;;N;;;;;
+F9A3;CJK COMPATIBILITY IDEOGRAPH-F9A3;Lo;0;L;5FF5;;;;N;;;;;
+F9A4;CJK COMPATIBILITY IDEOGRAPH-F9A4;Lo;0;L;637B;;;;N;;;;;
+F9A5;CJK COMPATIBILITY IDEOGRAPH-F9A5;Lo;0;L;6BAE;;;;N;;;;;
+F9A6;CJK COMPATIBILITY IDEOGRAPH-F9A6;Lo;0;L;7C3E;;;;N;;;;;
+F9A7;CJK COMPATIBILITY IDEOGRAPH-F9A7;Lo;0;L;7375;;;;N;;;;;
+F9A8;CJK COMPATIBILITY IDEOGRAPH-F9A8;Lo;0;L;4EE4;;;;N;;;;;
+F9A9;CJK COMPATIBILITY IDEOGRAPH-F9A9;Lo;0;L;56F9;;;;N;;;;;
+F9AA;CJK COMPATIBILITY IDEOGRAPH-F9AA;Lo;0;L;5BE7;;;;N;;;;;
+F9AB;CJK COMPATIBILITY IDEOGRAPH-F9AB;Lo;0;L;5DBA;;;;N;;;;;
+F9AC;CJK COMPATIBILITY IDEOGRAPH-F9AC;Lo;0;L;601C;;;;N;;;;;
+F9AD;CJK COMPATIBILITY IDEOGRAPH-F9AD;Lo;0;L;73B2;;;;N;;;;;
+F9AE;CJK COMPATIBILITY IDEOGRAPH-F9AE;Lo;0;L;7469;;;;N;;;;;
+F9AF;CJK COMPATIBILITY IDEOGRAPH-F9AF;Lo;0;L;7F9A;;;;N;;;;;
+F9B0;CJK COMPATIBILITY IDEOGRAPH-F9B0;Lo;0;L;8046;;;;N;;;;;
+F9B1;CJK COMPATIBILITY IDEOGRAPH-F9B1;Lo;0;L;9234;;;;N;;;;;
+F9B2;CJK COMPATIBILITY IDEOGRAPH-F9B2;Lo;0;L;96F6;;;;N;;;;;
+F9B3;CJK COMPATIBILITY IDEOGRAPH-F9B3;Lo;0;L;9748;;;;N;;;;;
+F9B4;CJK COMPATIBILITY IDEOGRAPH-F9B4;Lo;0;L;9818;;;;N;;;;;
+F9B5;CJK COMPATIBILITY IDEOGRAPH-F9B5;Lo;0;L;4F8B;;;;N;;;;;
+F9B6;CJK COMPATIBILITY IDEOGRAPH-F9B6;Lo;0;L;79AE;;;;N;;;;;
+F9B7;CJK COMPATIBILITY IDEOGRAPH-F9B7;Lo;0;L;91B4;;;;N;;;;;
+F9B8;CJK COMPATIBILITY IDEOGRAPH-F9B8;Lo;0;L;96B8;;;;N;;;;;
+F9B9;CJK COMPATIBILITY IDEOGRAPH-F9B9;Lo;0;L;60E1;;;;N;;;;;
+F9BA;CJK COMPATIBILITY IDEOGRAPH-F9BA;Lo;0;L;4E86;;;;N;;;;;
+F9BB;CJK COMPATIBILITY IDEOGRAPH-F9BB;Lo;0;L;50DA;;;;N;;;;;
+F9BC;CJK COMPATIBILITY IDEOGRAPH-F9BC;Lo;0;L;5BEE;;;;N;;;;;
+F9BD;CJK COMPATIBILITY IDEOGRAPH-F9BD;Lo;0;L;5C3F;;;;N;;;;;
+F9BE;CJK COMPATIBILITY IDEOGRAPH-F9BE;Lo;0;L;6599;;;;N;;;;;
+F9BF;CJK COMPATIBILITY IDEOGRAPH-F9BF;Lo;0;L;6A02;;;;N;;;;;
+F9C0;CJK COMPATIBILITY IDEOGRAPH-F9C0;Lo;0;L;71CE;;;;N;;;;;
+F9C1;CJK COMPATIBILITY IDEOGRAPH-F9C1;Lo;0;L;7642;;;;N;;;;;
+F9C2;CJK COMPATIBILITY IDEOGRAPH-F9C2;Lo;0;L;84FC;;;;N;;;;;
+F9C3;CJK COMPATIBILITY IDEOGRAPH-F9C3;Lo;0;L;907C;;;;N;;;;;
+F9C4;CJK COMPATIBILITY IDEOGRAPH-F9C4;Lo;0;L;9F8D;;;;N;;;;;
+F9C5;CJK COMPATIBILITY IDEOGRAPH-F9C5;Lo;0;L;6688;;;;N;;;;;
+F9C6;CJK COMPATIBILITY IDEOGRAPH-F9C6;Lo;0;L;962E;;;;N;;;;;
+F9C7;CJK COMPATIBILITY IDEOGRAPH-F9C7;Lo;0;L;5289;;;;N;;;;;
+F9C8;CJK COMPATIBILITY IDEOGRAPH-F9C8;Lo;0;L;677B;;;;N;;;;;
+F9C9;CJK COMPATIBILITY IDEOGRAPH-F9C9;Lo;0;L;67F3;;;;N;;;;;
+F9CA;CJK COMPATIBILITY IDEOGRAPH-F9CA;Lo;0;L;6D41;;;;N;;;;;
+F9CB;CJK COMPATIBILITY IDEOGRAPH-F9CB;Lo;0;L;6E9C;;;;N;;;;;
+F9CC;CJK COMPATIBILITY IDEOGRAPH-F9CC;Lo;0;L;7409;;;;N;;;;;
+F9CD;CJK COMPATIBILITY IDEOGRAPH-F9CD;Lo;0;L;7559;;;;N;;;;;
+F9CE;CJK COMPATIBILITY IDEOGRAPH-F9CE;Lo;0;L;786B;;;;N;;;;;
+F9CF;CJK COMPATIBILITY IDEOGRAPH-F9CF;Lo;0;L;7D10;;;;N;;;;;
+F9D0;CJK COMPATIBILITY IDEOGRAPH-F9D0;Lo;0;L;985E;;;;N;;;;;
+F9D1;CJK COMPATIBILITY IDEOGRAPH-F9D1;Lo;0;L;516D;;;;N;;;;;
+F9D2;CJK COMPATIBILITY IDEOGRAPH-F9D2;Lo;0;L;622E;;;;N;;;;;
+F9D3;CJK COMPATIBILITY IDEOGRAPH-F9D3;Lo;0;L;9678;;;;N;;;;;
+F9D4;CJK COMPATIBILITY IDEOGRAPH-F9D4;Lo;0;L;502B;;;;N;;;;;
+F9D5;CJK COMPATIBILITY IDEOGRAPH-F9D5;Lo;0;L;5D19;;;;N;;;;;
+F9D6;CJK COMPATIBILITY IDEOGRAPH-F9D6;Lo;0;L;6DEA;;;;N;;;;;
+F9D7;CJK COMPATIBILITY IDEOGRAPH-F9D7;Lo;0;L;8F2A;;;;N;;;;;
+F9D8;CJK COMPATIBILITY IDEOGRAPH-F9D8;Lo;0;L;5F8B;;;;N;;;;;
+F9D9;CJK COMPATIBILITY IDEOGRAPH-F9D9;Lo;0;L;6144;;;;N;;;;;
+F9DA;CJK COMPATIBILITY IDEOGRAPH-F9DA;Lo;0;L;6817;;;;N;;;;;
+F9DB;CJK COMPATIBILITY IDEOGRAPH-F9DB;Lo;0;L;7387;;;;N;;;;;
+F9DC;CJK COMPATIBILITY IDEOGRAPH-F9DC;Lo;0;L;9686;;;;N;;;;;
+F9DD;CJK COMPATIBILITY IDEOGRAPH-F9DD;Lo;0;L;5229;;;;N;;;;;
+F9DE;CJK COMPATIBILITY IDEOGRAPH-F9DE;Lo;0;L;540F;;;;N;;;;;
+F9DF;CJK COMPATIBILITY IDEOGRAPH-F9DF;Lo;0;L;5C65;;;;N;;;;;
+F9E0;CJK COMPATIBILITY IDEOGRAPH-F9E0;Lo;0;L;6613;;;;N;;;;;
+F9E1;CJK COMPATIBILITY IDEOGRAPH-F9E1;Lo;0;L;674E;;;;N;;;;;
+F9E2;CJK COMPATIBILITY IDEOGRAPH-F9E2;Lo;0;L;68A8;;;;N;;;;;
+F9E3;CJK COMPATIBILITY IDEOGRAPH-F9E3;Lo;0;L;6CE5;;;;N;;;;;
+F9E4;CJK COMPATIBILITY IDEOGRAPH-F9E4;Lo;0;L;7406;;;;N;;;;;
+F9E5;CJK COMPATIBILITY IDEOGRAPH-F9E5;Lo;0;L;75E2;;;;N;;;;;
+F9E6;CJK COMPATIBILITY IDEOGRAPH-F9E6;Lo;0;L;7F79;;;;N;;;;;
+F9E7;CJK COMPATIBILITY IDEOGRAPH-F9E7;Lo;0;L;88CF;;;;N;;;;;
+F9E8;CJK COMPATIBILITY IDEOGRAPH-F9E8;Lo;0;L;88E1;;;;N;;;;;
+F9E9;CJK COMPATIBILITY IDEOGRAPH-F9E9;Lo;0;L;91CC;;;;N;;;;;
+F9EA;CJK COMPATIBILITY IDEOGRAPH-F9EA;Lo;0;L;96E2;;;;N;;;;;
+F9EB;CJK COMPATIBILITY IDEOGRAPH-F9EB;Lo;0;L;533F;;;;N;;;;;
+F9EC;CJK COMPATIBILITY IDEOGRAPH-F9EC;Lo;0;L;6EBA;;;;N;;;;;
+F9ED;CJK COMPATIBILITY IDEOGRAPH-F9ED;Lo;0;L;541D;;;;N;;;;;
+F9EE;CJK COMPATIBILITY IDEOGRAPH-F9EE;Lo;0;L;71D0;;;;N;;;;;
+F9EF;CJK COMPATIBILITY IDEOGRAPH-F9EF;Lo;0;L;7498;;;;N;;;;;
+F9F0;CJK COMPATIBILITY IDEOGRAPH-F9F0;Lo;0;L;85FA;;;;N;;;;;
+F9F1;CJK COMPATIBILITY IDEOGRAPH-F9F1;Lo;0;L;96A3;;;;N;;;;;
+F9F2;CJK COMPATIBILITY IDEOGRAPH-F9F2;Lo;0;L;9C57;;;;N;;;;;
+F9F3;CJK COMPATIBILITY IDEOGRAPH-F9F3;Lo;0;L;9E9F;;;;N;;;;;
+F9F4;CJK COMPATIBILITY IDEOGRAPH-F9F4;Lo;0;L;6797;;;;N;;;;;
+F9F5;CJK COMPATIBILITY IDEOGRAPH-F9F5;Lo;0;L;6DCB;;;;N;;;;;
+F9F6;CJK COMPATIBILITY IDEOGRAPH-F9F6;Lo;0;L;81E8;;;;N;;;;;
+F9F7;CJK COMPATIBILITY IDEOGRAPH-F9F7;Lo;0;L;7ACB;;;;N;;;;;
+F9F8;CJK COMPATIBILITY IDEOGRAPH-F9F8;Lo;0;L;7B20;;;;N;;;;;
+F9F9;CJK COMPATIBILITY IDEOGRAPH-F9F9;Lo;0;L;7C92;;;;N;;;;;
+F9FA;CJK COMPATIBILITY IDEOGRAPH-F9FA;Lo;0;L;72C0;;;;N;;;;;
+F9FB;CJK COMPATIBILITY IDEOGRAPH-F9FB;Lo;0;L;7099;;;;N;;;;;
+F9FC;CJK COMPATIBILITY IDEOGRAPH-F9FC;Lo;0;L;8B58;;;;N;;;;;
+F9FD;CJK COMPATIBILITY IDEOGRAPH-F9FD;Lo;0;L;4EC0;;;;N;;;;;
+F9FE;CJK COMPATIBILITY IDEOGRAPH-F9FE;Lo;0;L;8336;;;;N;;;;;
+F9FF;CJK COMPATIBILITY IDEOGRAPH-F9FF;Lo;0;L;523A;;;;N;;;;;
+FA00;CJK COMPATIBILITY IDEOGRAPH-FA00;Lo;0;L;5207;;;;N;;;;;
+FA01;CJK COMPATIBILITY IDEOGRAPH-FA01;Lo;0;L;5EA6;;;;N;;;;;
+FA02;CJK COMPATIBILITY IDEOGRAPH-FA02;Lo;0;L;62D3;;;;N;;;;;
+FA03;CJK COMPATIBILITY IDEOGRAPH-FA03;Lo;0;L;7CD6;;;;N;;;;;
+FA04;CJK COMPATIBILITY IDEOGRAPH-FA04;Lo;0;L;5B85;;;;N;;;;;
+FA05;CJK COMPATIBILITY IDEOGRAPH-FA05;Lo;0;L;6D1E;;;;N;;;;;
+FA06;CJK COMPATIBILITY IDEOGRAPH-FA06;Lo;0;L;66B4;;;;N;;;;;
+FA07;CJK COMPATIBILITY IDEOGRAPH-FA07;Lo;0;L;8F3B;;;;N;;;;;
+FA08;CJK COMPATIBILITY IDEOGRAPH-FA08;Lo;0;L;884C;;;;N;;;;;
+FA09;CJK COMPATIBILITY IDEOGRAPH-FA09;Lo;0;L;964D;;;;N;;;;;
+FA0A;CJK COMPATIBILITY IDEOGRAPH-FA0A;Lo;0;L;898B;;;;N;;;;;
+FA0B;CJK COMPATIBILITY IDEOGRAPH-FA0B;Lo;0;L;5ED3;;;;N;;;;;
+FA0C;CJK COMPATIBILITY IDEOGRAPH-FA0C;Lo;0;L;5140;;;;N;;;;;
+FA0D;CJK COMPATIBILITY IDEOGRAPH-FA0D;Lo;0;L;55C0;;;;N;;;;;
+FA0E;CJK COMPATIBILITY IDEOGRAPH-FA0E;Lo;0;L;;;;;N;;;;;
+FA0F;CJK COMPATIBILITY IDEOGRAPH-FA0F;Lo;0;L;;;;;N;;;;;
+FA10;CJK COMPATIBILITY IDEOGRAPH-FA10;Lo;0;L;585A;;;;N;;;;;
+FA11;CJK COMPATIBILITY IDEOGRAPH-FA11;Lo;0;L;;;;;N;;;;;
+FA12;CJK COMPATIBILITY IDEOGRAPH-FA12;Lo;0;L;6674;;;;N;;;;;
+FA13;CJK COMPATIBILITY IDEOGRAPH-FA13;Lo;0;L;;;;;N;;;;;
+FA14;CJK COMPATIBILITY IDEOGRAPH-FA14;Lo;0;L;;;;;N;;;;;
+FA15;CJK COMPATIBILITY IDEOGRAPH-FA15;Lo;0;L;51DE;;;;N;;;;;
+FA16;CJK COMPATIBILITY IDEOGRAPH-FA16;Lo;0;L;732A;;;;N;;;;;
+FA17;CJK COMPATIBILITY IDEOGRAPH-FA17;Lo;0;L;76CA;;;;N;;;;;
+FA18;CJK COMPATIBILITY IDEOGRAPH-FA18;Lo;0;L;793C;;;;N;;;;;
+FA19;CJK COMPATIBILITY IDEOGRAPH-FA19;Lo;0;L;795E;;;;N;;;;;
+FA1A;CJK COMPATIBILITY IDEOGRAPH-FA1A;Lo;0;L;7965;;;;N;;;;;
+FA1B;CJK COMPATIBILITY IDEOGRAPH-FA1B;Lo;0;L;798F;;;;N;;;;;
+FA1C;CJK COMPATIBILITY IDEOGRAPH-FA1C;Lo;0;L;9756;;;;N;;;;;
+FA1D;CJK COMPATIBILITY IDEOGRAPH-FA1D;Lo;0;L;7CBE;;;;N;;;;;
+FA1E;CJK COMPATIBILITY IDEOGRAPH-FA1E;Lo;0;L;7FBD;;;;N;;;;;
+FA1F;CJK COMPATIBILITY IDEOGRAPH-FA1F;Lo;0;L;;;;;N;;*;;;
+FA20;CJK COMPATIBILITY IDEOGRAPH-FA20;Lo;0;L;8612;;;;N;;;;;
+FA21;CJK COMPATIBILITY IDEOGRAPH-FA21;Lo;0;L;;;;;N;;;;;
+FA22;CJK COMPATIBILITY IDEOGRAPH-FA22;Lo;0;L;8AF8;;;;N;;;;;
+FA23;CJK COMPATIBILITY IDEOGRAPH-FA23;Lo;0;L;;;;;N;;*;;;
+FA24;CJK COMPATIBILITY IDEOGRAPH-FA24;Lo;0;L;;;;;N;;;;;
+FA25;CJK COMPATIBILITY IDEOGRAPH-FA25;Lo;0;L;9038;;;;N;;;;;
+FA26;CJK COMPATIBILITY IDEOGRAPH-FA26;Lo;0;L;90FD;;;;N;;;;;
+FA27;CJK COMPATIBILITY IDEOGRAPH-FA27;Lo;0;L;;;;;N;;;;;
+FA28;CJK COMPATIBILITY IDEOGRAPH-FA28;Lo;0;L;;;;;N;;;;;
+FA29;CJK COMPATIBILITY IDEOGRAPH-FA29;Lo;0;L;;;;;N;;;;;
+FA2A;CJK COMPATIBILITY IDEOGRAPH-FA2A;Lo;0;L;98EF;;;;N;;;;;
+FA2B;CJK COMPATIBILITY IDEOGRAPH-FA2B;Lo;0;L;98FC;;;;N;;;;;
+FA2C;CJK COMPATIBILITY IDEOGRAPH-FA2C;Lo;0;L;9928;;;;N;;;;;
+FA2D;CJK COMPATIBILITY IDEOGRAPH-FA2D;Lo;0;L;9DB4;;;;N;;;;;
+FA30;CJK COMPATIBILITY IDEOGRAPH-FA30;Lo;0;L;4FAE;;;;N;;;;;
+FA31;CJK COMPATIBILITY IDEOGRAPH-FA31;Lo;0;L;50E7;;;;N;;;;;
+FA32;CJK COMPATIBILITY IDEOGRAPH-FA32;Lo;0;L;514D;;;;N;;;;;
+FA33;CJK COMPATIBILITY IDEOGRAPH-FA33;Lo;0;L;52C9;;;;N;;;;;
+FA34;CJK COMPATIBILITY IDEOGRAPH-FA34;Lo;0;L;52E4;;;;N;;;;;
+FA35;CJK COMPATIBILITY IDEOGRAPH-FA35;Lo;0;L;5351;;;;N;;;;;
+FA36;CJK COMPATIBILITY IDEOGRAPH-FA36;Lo;0;L;559D;;;;N;;;;;
+FA37;CJK COMPATIBILITY IDEOGRAPH-FA37;Lo;0;L;5606;;;;N;;;;;
+FA38;CJK COMPATIBILITY IDEOGRAPH-FA38;Lo;0;L;5668;;;;N;;;;;
+FA39;CJK COMPATIBILITY IDEOGRAPH-FA39;Lo;0;L;5840;;;;N;;;;;
+FA3A;CJK COMPATIBILITY IDEOGRAPH-FA3A;Lo;0;L;58A8;;;;N;;;;;
+FA3B;CJK COMPATIBILITY IDEOGRAPH-FA3B;Lo;0;L;5C64;;;;N;;;;;
+FA3C;CJK COMPATIBILITY IDEOGRAPH-FA3C;Lo;0;L;5C6E;;;;N;;;;;
+FA3D;CJK COMPATIBILITY IDEOGRAPH-FA3D;Lo;0;L;6094;;;;N;;;;;
+FA3E;CJK COMPATIBILITY IDEOGRAPH-FA3E;Lo;0;L;6168;;;;N;;;;;
+FA3F;CJK COMPATIBILITY IDEOGRAPH-FA3F;Lo;0;L;618E;;;;N;;;;;
+FA40;CJK COMPATIBILITY IDEOGRAPH-FA40;Lo;0;L;61F2;;;;N;;;;;
+FA41;CJK COMPATIBILITY IDEOGRAPH-FA41;Lo;0;L;654F;;;;N;;;;;
+FA42;CJK COMPATIBILITY IDEOGRAPH-FA42;Lo;0;L;65E2;;;;N;;;;;
+FA43;CJK COMPATIBILITY IDEOGRAPH-FA43;Lo;0;L;6691;;;;N;;;;;
+FA44;CJK COMPATIBILITY IDEOGRAPH-FA44;Lo;0;L;6885;;;;N;;;;;
+FA45;CJK COMPATIBILITY IDEOGRAPH-FA45;Lo;0;L;6D77;;;;N;;;;;
+FA46;CJK COMPATIBILITY IDEOGRAPH-FA46;Lo;0;L;6E1A;;;;N;;;;;
+FA47;CJK COMPATIBILITY IDEOGRAPH-FA47;Lo;0;L;6F22;;;;N;;;;;
+FA48;CJK COMPATIBILITY IDEOGRAPH-FA48;Lo;0;L;716E;;;;N;;;;;
+FA49;CJK COMPATIBILITY IDEOGRAPH-FA49;Lo;0;L;722B;;;;N;;;;;
+FA4A;CJK COMPATIBILITY IDEOGRAPH-FA4A;Lo;0;L;7422;;;;N;;;;;
+FA4B;CJK COMPATIBILITY IDEOGRAPH-FA4B;Lo;0;L;7891;;;;N;;;;;
+FA4C;CJK COMPATIBILITY IDEOGRAPH-FA4C;Lo;0;L;793E;;;;N;;;;;
+FA4D;CJK COMPATIBILITY IDEOGRAPH-FA4D;Lo;0;L;7949;;;;N;;;;;
+FA4E;CJK COMPATIBILITY IDEOGRAPH-FA4E;Lo;0;L;7948;;;;N;;;;;
+FA4F;CJK COMPATIBILITY IDEOGRAPH-FA4F;Lo;0;L;7950;;;;N;;;;;
+FA50;CJK COMPATIBILITY IDEOGRAPH-FA50;Lo;0;L;7956;;;;N;;;;;
+FA51;CJK COMPATIBILITY IDEOGRAPH-FA51;Lo;0;L;795D;;;;N;;;;;
+FA52;CJK COMPATIBILITY IDEOGRAPH-FA52;Lo;0;L;798D;;;;N;;;;;
+FA53;CJK COMPATIBILITY IDEOGRAPH-FA53;Lo;0;L;798E;;;;N;;;;;
+FA54;CJK COMPATIBILITY IDEOGRAPH-FA54;Lo;0;L;7A40;;;;N;;;;;
+FA55;CJK COMPATIBILITY IDEOGRAPH-FA55;Lo;0;L;7A81;;;;N;;;;;
+FA56;CJK COMPATIBILITY IDEOGRAPH-FA56;Lo;0;L;7BC0;;;;N;;;;;
+FA57;CJK COMPATIBILITY IDEOGRAPH-FA57;Lo;0;L;7DF4;;;;N;;;;;
+FA58;CJK COMPATIBILITY IDEOGRAPH-FA58;Lo;0;L;7E09;;;;N;;;;;
+FA59;CJK COMPATIBILITY IDEOGRAPH-FA59;Lo;0;L;7E41;;;;N;;;;;
+FA5A;CJK COMPATIBILITY IDEOGRAPH-FA5A;Lo;0;L;7F72;;;;N;;;;;
+FA5B;CJK COMPATIBILITY IDEOGRAPH-FA5B;Lo;0;L;8005;;;;N;;;;;
+FA5C;CJK COMPATIBILITY IDEOGRAPH-FA5C;Lo;0;L;81ED;;;;N;;;;;
+FA5D;CJK COMPATIBILITY IDEOGRAPH-FA5D;Lo;0;L;8279;;;;N;;;;;
+FA5E;CJK COMPATIBILITY IDEOGRAPH-FA5E;Lo;0;L;8279;;;;N;;;;;
+FA5F;CJK COMPATIBILITY IDEOGRAPH-FA5F;Lo;0;L;8457;;;;N;;;;;
+FA60;CJK COMPATIBILITY IDEOGRAPH-FA60;Lo;0;L;8910;;;;N;;;;;
+FA61;CJK COMPATIBILITY IDEOGRAPH-FA61;Lo;0;L;8996;;;;N;;;;;
+FA62;CJK COMPATIBILITY IDEOGRAPH-FA62;Lo;0;L;8B01;;;;N;;;;;
+FA63;CJK COMPATIBILITY IDEOGRAPH-FA63;Lo;0;L;8B39;;;;N;;;;;
+FA64;CJK COMPATIBILITY IDEOGRAPH-FA64;Lo;0;L;8CD3;;;;N;;;;;
+FA65;CJK COMPATIBILITY IDEOGRAPH-FA65;Lo;0;L;8D08;;;;N;;;;;
+FA66;CJK COMPATIBILITY IDEOGRAPH-FA66;Lo;0;L;8FB6;;;;N;;;;;
+FA67;CJK COMPATIBILITY IDEOGRAPH-FA67;Lo;0;L;9038;;;;N;;;;;
+FA68;CJK COMPATIBILITY IDEOGRAPH-FA68;Lo;0;L;96E3;;;;N;;;;;
+FA69;CJK COMPATIBILITY IDEOGRAPH-FA69;Lo;0;L;97FF;;;;N;;;;;
+FA6A;CJK COMPATIBILITY IDEOGRAPH-FA6A;Lo;0;L;983B;;;;N;;;;;
+FA70;CJK COMPATIBILITY IDEOGRAPH-FA70;Lo;0;L;4E26;;;;N;;;;;
+FA71;CJK COMPATIBILITY IDEOGRAPH-FA71;Lo;0;L;51B5;;;;N;;;;;
+FA72;CJK COMPATIBILITY IDEOGRAPH-FA72;Lo;0;L;5168;;;;N;;;;;
+FA73;CJK COMPATIBILITY IDEOGRAPH-FA73;Lo;0;L;4F80;;;;N;;;;;
+FA74;CJK COMPATIBILITY IDEOGRAPH-FA74;Lo;0;L;5145;;;;N;;;;;
+FA75;CJK COMPATIBILITY IDEOGRAPH-FA75;Lo;0;L;5180;;;;N;;;;;
+FA76;CJK COMPATIBILITY IDEOGRAPH-FA76;Lo;0;L;52C7;;;;N;;;;;
+FA77;CJK COMPATIBILITY IDEOGRAPH-FA77;Lo;0;L;52FA;;;;N;;;;;
+FA78;CJK COMPATIBILITY IDEOGRAPH-FA78;Lo;0;L;559D;;;;N;;;;;
+FA79;CJK COMPATIBILITY IDEOGRAPH-FA79;Lo;0;L;5555;;;;N;;;;;
+FA7A;CJK COMPATIBILITY IDEOGRAPH-FA7A;Lo;0;L;5599;;;;N;;;;;
+FA7B;CJK COMPATIBILITY IDEOGRAPH-FA7B;Lo;0;L;55E2;;;;N;;;;;
+FA7C;CJK COMPATIBILITY IDEOGRAPH-FA7C;Lo;0;L;585A;;;;N;;;;;
+FA7D;CJK COMPATIBILITY IDEOGRAPH-FA7D;Lo;0;L;58B3;;;;N;;;;;
+FA7E;CJK COMPATIBILITY IDEOGRAPH-FA7E;Lo;0;L;5944;;;;N;;;;;
+FA7F;CJK COMPATIBILITY IDEOGRAPH-FA7F;Lo;0;L;5954;;;;N;;;;;
+FA80;CJK COMPATIBILITY IDEOGRAPH-FA80;Lo;0;L;5A62;;;;N;;;;;
+FA81;CJK COMPATIBILITY IDEOGRAPH-FA81;Lo;0;L;5B28;;;;N;;;;;
+FA82;CJK COMPATIBILITY IDEOGRAPH-FA82;Lo;0;L;5ED2;;;;N;;;;;
+FA83;CJK COMPATIBILITY IDEOGRAPH-FA83;Lo;0;L;5ED9;;;;N;;;;;
+FA84;CJK COMPATIBILITY IDEOGRAPH-FA84;Lo;0;L;5F69;;;;N;;;;;
+FA85;CJK COMPATIBILITY IDEOGRAPH-FA85;Lo;0;L;5FAD;;;;N;;;;;
+FA86;CJK COMPATIBILITY IDEOGRAPH-FA86;Lo;0;L;60D8;;;;N;;;;;
+FA87;CJK COMPATIBILITY IDEOGRAPH-FA87;Lo;0;L;614E;;;;N;;;;;
+FA88;CJK COMPATIBILITY IDEOGRAPH-FA88;Lo;0;L;6108;;;;N;;;;;
+FA89;CJK COMPATIBILITY IDEOGRAPH-FA89;Lo;0;L;618E;;;;N;;;;;
+FA8A;CJK COMPATIBILITY IDEOGRAPH-FA8A;Lo;0;L;6160;;;;N;;;;;
+FA8B;CJK COMPATIBILITY IDEOGRAPH-FA8B;Lo;0;L;61F2;;;;N;;;;;
+FA8C;CJK COMPATIBILITY IDEOGRAPH-FA8C;Lo;0;L;6234;;;;N;;;;;
+FA8D;CJK COMPATIBILITY IDEOGRAPH-FA8D;Lo;0;L;63C4;;;;N;;;;;
+FA8E;CJK COMPATIBILITY IDEOGRAPH-FA8E;Lo;0;L;641C;;;;N;;;;;
+FA8F;CJK COMPATIBILITY IDEOGRAPH-FA8F;Lo;0;L;6452;;;;N;;;;;
+FA90;CJK COMPATIBILITY IDEOGRAPH-FA90;Lo;0;L;6556;;;;N;;;;;
+FA91;CJK COMPATIBILITY IDEOGRAPH-FA91;Lo;0;L;6674;;;;N;;;;;
+FA92;CJK COMPATIBILITY IDEOGRAPH-FA92;Lo;0;L;6717;;;;N;;;;;
+FA93;CJK COMPATIBILITY IDEOGRAPH-FA93;Lo;0;L;671B;;;;N;;;;;
+FA94;CJK COMPATIBILITY IDEOGRAPH-FA94;Lo;0;L;6756;;;;N;;;;;
+FA95;CJK COMPATIBILITY IDEOGRAPH-FA95;Lo;0;L;6B79;;;;N;;;;;
+FA96;CJK COMPATIBILITY IDEOGRAPH-FA96;Lo;0;L;6BBA;;;;N;;;;;
+FA97;CJK COMPATIBILITY IDEOGRAPH-FA97;Lo;0;L;6D41;;;;N;;;;;
+FA98;CJK COMPATIBILITY IDEOGRAPH-FA98;Lo;0;L;6EDB;;;;N;;;;;
+FA99;CJK COMPATIBILITY IDEOGRAPH-FA99;Lo;0;L;6ECB;;;;N;;;;;
+FA9A;CJK COMPATIBILITY IDEOGRAPH-FA9A;Lo;0;L;6F22;;;;N;;;;;
+FA9B;CJK COMPATIBILITY IDEOGRAPH-FA9B;Lo;0;L;701E;;;;N;;;;;
+FA9C;CJK COMPATIBILITY IDEOGRAPH-FA9C;Lo;0;L;716E;;;;N;;;;;
+FA9D;CJK COMPATIBILITY IDEOGRAPH-FA9D;Lo;0;L;77A7;;;;N;;;;;
+FA9E;CJK COMPATIBILITY IDEOGRAPH-FA9E;Lo;0;L;7235;;;;N;;;;;
+FA9F;CJK COMPATIBILITY IDEOGRAPH-FA9F;Lo;0;L;72AF;;;;N;;;;;
+FAA0;CJK COMPATIBILITY IDEOGRAPH-FAA0;Lo;0;L;732A;;;;N;;;;;
+FAA1;CJK COMPATIBILITY IDEOGRAPH-FAA1;Lo;0;L;7471;;;;N;;;;;
+FAA2;CJK COMPATIBILITY IDEOGRAPH-FAA2;Lo;0;L;7506;;;;N;;;;;
+FAA3;CJK COMPATIBILITY IDEOGRAPH-FAA3;Lo;0;L;753B;;;;N;;;;;
+FAA4;CJK COMPATIBILITY IDEOGRAPH-FAA4;Lo;0;L;761D;;;;N;;;;;
+FAA5;CJK COMPATIBILITY IDEOGRAPH-FAA5;Lo;0;L;761F;;;;N;;;;;
+FAA6;CJK COMPATIBILITY IDEOGRAPH-FAA6;Lo;0;L;76CA;;;;N;;;;;
+FAA7;CJK COMPATIBILITY IDEOGRAPH-FAA7;Lo;0;L;76DB;;;;N;;;;;
+FAA8;CJK COMPATIBILITY IDEOGRAPH-FAA8;Lo;0;L;76F4;;;;N;;;;;
+FAA9;CJK COMPATIBILITY IDEOGRAPH-FAA9;Lo;0;L;774A;;;;N;;;;;
+FAAA;CJK COMPATIBILITY IDEOGRAPH-FAAA;Lo;0;L;7740;;;;N;;;;;
+FAAB;CJK COMPATIBILITY IDEOGRAPH-FAAB;Lo;0;L;78CC;;;;N;;;;;
+FAAC;CJK COMPATIBILITY IDEOGRAPH-FAAC;Lo;0;L;7AB1;;;;N;;;;;
+FAAD;CJK COMPATIBILITY IDEOGRAPH-FAAD;Lo;0;L;7BC0;;;;N;;;;;
+FAAE;CJK COMPATIBILITY IDEOGRAPH-FAAE;Lo;0;L;7C7B;;;;N;;;;;
+FAAF;CJK COMPATIBILITY IDEOGRAPH-FAAF;Lo;0;L;7D5B;;;;N;;;;;
+FAB0;CJK COMPATIBILITY IDEOGRAPH-FAB0;Lo;0;L;7DF4;;;;N;;;;;
+FAB1;CJK COMPATIBILITY IDEOGRAPH-FAB1;Lo;0;L;7F3E;;;;N;;;;;
+FAB2;CJK COMPATIBILITY IDEOGRAPH-FAB2;Lo;0;L;8005;;;;N;;;;;
+FAB3;CJK COMPATIBILITY IDEOGRAPH-FAB3;Lo;0;L;8352;;;;N;;;;;
+FAB4;CJK COMPATIBILITY IDEOGRAPH-FAB4;Lo;0;L;83EF;;;;N;;;;;
+FAB5;CJK COMPATIBILITY IDEOGRAPH-FAB5;Lo;0;L;8779;;;;N;;;;;
+FAB6;CJK COMPATIBILITY IDEOGRAPH-FAB6;Lo;0;L;8941;;;;N;;;;;
+FAB7;CJK COMPATIBILITY IDEOGRAPH-FAB7;Lo;0;L;8986;;;;N;;;;;
+FAB8;CJK COMPATIBILITY IDEOGRAPH-FAB8;Lo;0;L;8996;;;;N;;;;;
+FAB9;CJK COMPATIBILITY IDEOGRAPH-FAB9;Lo;0;L;8ABF;;;;N;;;;;
+FABA;CJK COMPATIBILITY IDEOGRAPH-FABA;Lo;0;L;8AF8;;;;N;;;;;
+FABB;CJK COMPATIBILITY IDEOGRAPH-FABB;Lo;0;L;8ACB;;;;N;;;;;
+FABC;CJK COMPATIBILITY IDEOGRAPH-FABC;Lo;0;L;8B01;;;;N;;;;;
+FABD;CJK COMPATIBILITY IDEOGRAPH-FABD;Lo;0;L;8AFE;;;;N;;;;;
+FABE;CJK COMPATIBILITY IDEOGRAPH-FABE;Lo;0;L;8AED;;;;N;;;;;
+FABF;CJK COMPATIBILITY IDEOGRAPH-FABF;Lo;0;L;8B39;;;;N;;;;;
+FAC0;CJK COMPATIBILITY IDEOGRAPH-FAC0;Lo;0;L;8B8A;;;;N;;;;;
+FAC1;CJK COMPATIBILITY IDEOGRAPH-FAC1;Lo;0;L;8D08;;;;N;;;;;
+FAC2;CJK COMPATIBILITY IDEOGRAPH-FAC2;Lo;0;L;8F38;;;;N;;;;;
+FAC3;CJK COMPATIBILITY IDEOGRAPH-FAC3;Lo;0;L;9072;;;;N;;;;;
+FAC4;CJK COMPATIBILITY IDEOGRAPH-FAC4;Lo;0;L;9199;;;;N;;;;;
+FAC5;CJK COMPATIBILITY IDEOGRAPH-FAC5;Lo;0;L;9276;;;;N;;;;;
+FAC6;CJK COMPATIBILITY IDEOGRAPH-FAC6;Lo;0;L;967C;;;;N;;;;;
+FAC7;CJK COMPATIBILITY IDEOGRAPH-FAC7;Lo;0;L;96E3;;;;N;;;;;
+FAC8;CJK COMPATIBILITY IDEOGRAPH-FAC8;Lo;0;L;9756;;;;N;;;;;
+FAC9;CJK COMPATIBILITY IDEOGRAPH-FAC9;Lo;0;L;97DB;;;;N;;;;;
+FACA;CJK COMPATIBILITY IDEOGRAPH-FACA;Lo;0;L;97FF;;;;N;;;;;
+FACB;CJK COMPATIBILITY IDEOGRAPH-FACB;Lo;0;L;980B;;;;N;;;;;
+FACC;CJK COMPATIBILITY IDEOGRAPH-FACC;Lo;0;L;983B;;;;N;;;;;
+FACD;CJK COMPATIBILITY IDEOGRAPH-FACD;Lo;0;L;9B12;;;;N;;;;;
+FACE;CJK COMPATIBILITY IDEOGRAPH-FACE;Lo;0;L;9F9C;;;;N;;;;;
+FACF;CJK COMPATIBILITY IDEOGRAPH-FACF;Lo;0;L;2284A;;;;N;;;;;
+FAD0;CJK COMPATIBILITY IDEOGRAPH-FAD0;Lo;0;L;22844;;;;N;;;;;
+FAD1;CJK COMPATIBILITY IDEOGRAPH-FAD1;Lo;0;L;233D5;;;;N;;;;;
+FAD2;CJK COMPATIBILITY IDEOGRAPH-FAD2;Lo;0;L;3B9D;;;;N;;;;;
+FAD3;CJK COMPATIBILITY IDEOGRAPH-FAD3;Lo;0;L;4018;;;;N;;;;;
+FAD4;CJK COMPATIBILITY IDEOGRAPH-FAD4;Lo;0;L;4039;;;;N;;;;;
+FAD5;CJK COMPATIBILITY IDEOGRAPH-FAD5;Lo;0;L;25249;;;;N;;;;;
+FAD6;CJK COMPATIBILITY IDEOGRAPH-FAD6;Lo;0;L;25CD0;;;;N;;;;;
+FAD7;CJK COMPATIBILITY IDEOGRAPH-FAD7;Lo;0;L;27ED3;;;;N;;;;;
+FAD8;CJK COMPATIBILITY IDEOGRAPH-FAD8;Lo;0;L;9F43;;;;N;;;;;
+FAD9;CJK COMPATIBILITY IDEOGRAPH-FAD9;Lo;0;L;9F8E;;;;N;;;;;
+FB00;LATIN SMALL LIGATURE FF;Ll;0;L;<compat> 0066 0066;;;;N;;;;;
+FB01;LATIN SMALL LIGATURE FI;Ll;0;L;<compat> 0066 0069;;;;N;;;;;
+FB02;LATIN SMALL LIGATURE FL;Ll;0;L;<compat> 0066 006C;;;;N;;;;;
+FB03;LATIN SMALL LIGATURE FFI;Ll;0;L;<compat> 0066 0066 0069;;;;N;;;;;
+FB04;LATIN SMALL LIGATURE FFL;Ll;0;L;<compat> 0066 0066 006C;;;;N;;;;;
+FB05;LATIN SMALL LIGATURE LONG S T;Ll;0;L;<compat> 017F 0074;;;;N;;;;;
+FB06;LATIN SMALL LIGATURE ST;Ll;0;L;<compat> 0073 0074;;;;N;;;;;
+FB13;ARMENIAN SMALL LIGATURE MEN NOW;Ll;0;L;<compat> 0574 0576;;;;N;;;;;
+FB14;ARMENIAN SMALL LIGATURE MEN ECH;Ll;0;L;<compat> 0574 0565;;;;N;;;;;
+FB15;ARMENIAN SMALL LIGATURE MEN INI;Ll;0;L;<compat> 0574 056B;;;;N;;;;;
+FB16;ARMENIAN SMALL LIGATURE VEW NOW;Ll;0;L;<compat> 057E 0576;;;;N;;;;;
+FB17;ARMENIAN SMALL LIGATURE MEN XEH;Ll;0;L;<compat> 0574 056D;;;;N;;;;;
+FB1D;HEBREW LETTER YOD WITH HIRIQ;Lo;0;R;05D9 05B4;;;;N;;;;;
+FB1E;HEBREW POINT JUDEO-SPANISH VARIKA;Mn;26;NSM;;;;;N;HEBREW POINT VARIKA;;;;
+FB1F;HEBREW LIGATURE YIDDISH YOD YOD PATAH;Lo;0;R;05F2 05B7;;;;N;;;;;
+FB20;HEBREW LETTER ALTERNATIVE AYIN;Lo;0;R;<font> 05E2;;;;N;;;;;
+FB21;HEBREW LETTER WIDE ALEF;Lo;0;R;<font> 05D0;;;;N;;;;;
+FB22;HEBREW LETTER WIDE DALET;Lo;0;R;<font> 05D3;;;;N;;;;;
+FB23;HEBREW LETTER WIDE HE;Lo;0;R;<font> 05D4;;;;N;;;;;
+FB24;HEBREW LETTER WIDE KAF;Lo;0;R;<font> 05DB;;;;N;;;;;
+FB25;HEBREW LETTER WIDE LAMED;Lo;0;R;<font> 05DC;;;;N;;;;;
+FB26;HEBREW LETTER WIDE FINAL MEM;Lo;0;R;<font> 05DD;;;;N;;;;;
+FB27;HEBREW LETTER WIDE RESH;Lo;0;R;<font> 05E8;;;;N;;;;;
+FB28;HEBREW LETTER WIDE TAV;Lo;0;R;<font> 05EA;;;;N;;;;;
+FB29;HEBREW LETTER ALTERNATIVE PLUS SIGN;Sm;0;ES;<font> 002B;;;;N;;;;;
+FB2A;HEBREW LETTER SHIN WITH SHIN DOT;Lo;0;R;05E9 05C1;;;;N;;;;;
+FB2B;HEBREW LETTER SHIN WITH SIN DOT;Lo;0;R;05E9 05C2;;;;N;;;;;
+FB2C;HEBREW LETTER SHIN WITH DAGESH AND SHIN DOT;Lo;0;R;FB49 05C1;;;;N;;;;;
+FB2D;HEBREW LETTER SHIN WITH DAGESH AND SIN DOT;Lo;0;R;FB49 05C2;;;;N;;;;;
+FB2E;HEBREW LETTER ALEF WITH PATAH;Lo;0;R;05D0 05B7;;;;N;;;;;
+FB2F;HEBREW LETTER ALEF WITH QAMATS;Lo;0;R;05D0 05B8;;;;N;;;;;
+FB30;HEBREW LETTER ALEF WITH MAPIQ;Lo;0;R;05D0 05BC;;;;N;;;;;
+FB31;HEBREW LETTER BET WITH DAGESH;Lo;0;R;05D1 05BC;;;;N;;;;;
+FB32;HEBREW LETTER GIMEL WITH DAGESH;Lo;0;R;05D2 05BC;;;;N;;;;;
+FB33;HEBREW LETTER DALET WITH DAGESH;Lo;0;R;05D3 05BC;;;;N;;;;;
+FB34;HEBREW LETTER HE WITH MAPIQ;Lo;0;R;05D4 05BC;;;;N;;;;;
+FB35;HEBREW LETTER VAV WITH DAGESH;Lo;0;R;05D5 05BC;;;;N;;;;;
+FB36;HEBREW LETTER ZAYIN WITH DAGESH;Lo;0;R;05D6 05BC;;;;N;;;;;
+FB38;HEBREW LETTER TET WITH DAGESH;Lo;0;R;05D8 05BC;;;;N;;;;;
+FB39;HEBREW LETTER YOD WITH DAGESH;Lo;0;R;05D9 05BC;;;;N;;;;;
+FB3A;HEBREW LETTER FINAL KAF WITH DAGESH;Lo;0;R;05DA 05BC;;;;N;;;;;
+FB3B;HEBREW LETTER KAF WITH DAGESH;Lo;0;R;05DB 05BC;;;;N;;;;;
+FB3C;HEBREW LETTER LAMED WITH DAGESH;Lo;0;R;05DC 05BC;;;;N;;;;;
+FB3E;HEBREW LETTER MEM WITH DAGESH;Lo;0;R;05DE 05BC;;;;N;;;;;
+FB40;HEBREW LETTER NUN WITH DAGESH;Lo;0;R;05E0 05BC;;;;N;;;;;
+FB41;HEBREW LETTER SAMEKH WITH DAGESH;Lo;0;R;05E1 05BC;;;;N;;;;;
+FB43;HEBREW LETTER FINAL PE WITH DAGESH;Lo;0;R;05E3 05BC;;;;N;;;;;
+FB44;HEBREW LETTER PE WITH DAGESH;Lo;0;R;05E4 05BC;;;;N;;;;;
+FB46;HEBREW LETTER TSADI WITH DAGESH;Lo;0;R;05E6 05BC;;;;N;;;;;
+FB47;HEBREW LETTER QOF WITH DAGESH;Lo;0;R;05E7 05BC;;;;N;;;;;
+FB48;HEBREW LETTER RESH WITH DAGESH;Lo;0;R;05E8 05BC;;;;N;;;;;
+FB49;HEBREW LETTER SHIN WITH DAGESH;Lo;0;R;05E9 05BC;;;;N;;;;;
+FB4A;HEBREW LETTER TAV WITH DAGESH;Lo;0;R;05EA 05BC;;;;N;;;;;
+FB4B;HEBREW LETTER VAV WITH HOLAM;Lo;0;R;05D5 05B9;;;;N;;;;;
+FB4C;HEBREW LETTER BET WITH RAFE;Lo;0;R;05D1 05BF;;;;N;;;;;
+FB4D;HEBREW LETTER KAF WITH RAFE;Lo;0;R;05DB 05BF;;;;N;;;;;
+FB4E;HEBREW LETTER PE WITH RAFE;Lo;0;R;05E4 05BF;;;;N;;;;;
+FB4F;HEBREW LIGATURE ALEF LAMED;Lo;0;R;<compat> 05D0 05DC;;;;N;;;;;
+FB50;ARABIC LETTER ALEF WASLA ISOLATED FORM;Lo;0;AL;<isolated> 0671;;;;N;;;;;
+FB51;ARABIC LETTER ALEF WASLA FINAL FORM;Lo;0;AL;<final> 0671;;;;N;;;;;
+FB52;ARABIC LETTER BEEH ISOLATED FORM;Lo;0;AL;<isolated> 067B;;;;N;;;;;
+FB53;ARABIC LETTER BEEH FINAL FORM;Lo;0;AL;<final> 067B;;;;N;;;;;
+FB54;ARABIC LETTER BEEH INITIAL FORM;Lo;0;AL;<initial> 067B;;;;N;;;;;
+FB55;ARABIC LETTER BEEH MEDIAL FORM;Lo;0;AL;<medial> 067B;;;;N;;;;;
+FB56;ARABIC LETTER PEH ISOLATED FORM;Lo;0;AL;<isolated> 067E;;;;N;;;;;
+FB57;ARABIC LETTER PEH FINAL FORM;Lo;0;AL;<final> 067E;;;;N;;;;;
+FB58;ARABIC LETTER PEH INITIAL FORM;Lo;0;AL;<initial> 067E;;;;N;;;;;
+FB59;ARABIC LETTER PEH MEDIAL FORM;Lo;0;AL;<medial> 067E;;;;N;;;;;
+FB5A;ARABIC LETTER BEHEH ISOLATED FORM;Lo;0;AL;<isolated> 0680;;;;N;;;;;
+FB5B;ARABIC LETTER BEHEH FINAL FORM;Lo;0;AL;<final> 0680;;;;N;;;;;
+FB5C;ARABIC LETTER BEHEH INITIAL FORM;Lo;0;AL;<initial> 0680;;;;N;;;;;
+FB5D;ARABIC LETTER BEHEH MEDIAL FORM;Lo;0;AL;<medial> 0680;;;;N;;;;;
+FB5E;ARABIC LETTER TTEHEH ISOLATED FORM;Lo;0;AL;<isolated> 067A;;;;N;;;;;
+FB5F;ARABIC LETTER TTEHEH FINAL FORM;Lo;0;AL;<final> 067A;;;;N;;;;;
+FB60;ARABIC LETTER TTEHEH INITIAL FORM;Lo;0;AL;<initial> 067A;;;;N;;;;;
+FB61;ARABIC LETTER TTEHEH MEDIAL FORM;Lo;0;AL;<medial> 067A;;;;N;;;;;
+FB62;ARABIC LETTER TEHEH ISOLATED FORM;Lo;0;AL;<isolated> 067F;;;;N;;;;;
+FB63;ARABIC LETTER TEHEH FINAL FORM;Lo;0;AL;<final> 067F;;;;N;;;;;
+FB64;ARABIC LETTER TEHEH INITIAL FORM;Lo;0;AL;<initial> 067F;;;;N;;;;;
+FB65;ARABIC LETTER TEHEH MEDIAL FORM;Lo;0;AL;<medial> 067F;;;;N;;;;;
+FB66;ARABIC LETTER TTEH ISOLATED FORM;Lo;0;AL;<isolated> 0679;;;;N;;;;;
+FB67;ARABIC LETTER TTEH FINAL FORM;Lo;0;AL;<final> 0679;;;;N;;;;;
+FB68;ARABIC LETTER TTEH INITIAL FORM;Lo;0;AL;<initial> 0679;;;;N;;;;;
+FB69;ARABIC LETTER TTEH MEDIAL FORM;Lo;0;AL;<medial> 0679;;;;N;;;;;
+FB6A;ARABIC LETTER VEH ISOLATED FORM;Lo;0;AL;<isolated> 06A4;;;;N;;;;;
+FB6B;ARABIC LETTER VEH FINAL FORM;Lo;0;AL;<final> 06A4;;;;N;;;;;
+FB6C;ARABIC LETTER VEH INITIAL FORM;Lo;0;AL;<initial> 06A4;;;;N;;;;;
+FB6D;ARABIC LETTER VEH MEDIAL FORM;Lo;0;AL;<medial> 06A4;;;;N;;;;;
+FB6E;ARABIC LETTER PEHEH ISOLATED FORM;Lo;0;AL;<isolated> 06A6;;;;N;;;;;
+FB6F;ARABIC LETTER PEHEH FINAL FORM;Lo;0;AL;<final> 06A6;;;;N;;;;;
+FB70;ARABIC LETTER PEHEH INITIAL FORM;Lo;0;AL;<initial> 06A6;;;;N;;;;;
+FB71;ARABIC LETTER PEHEH MEDIAL FORM;Lo;0;AL;<medial> 06A6;;;;N;;;;;
+FB72;ARABIC LETTER DYEH ISOLATED FORM;Lo;0;AL;<isolated> 0684;;;;N;;;;;
+FB73;ARABIC LETTER DYEH FINAL FORM;Lo;0;AL;<final> 0684;;;;N;;;;;
+FB74;ARABIC LETTER DYEH INITIAL FORM;Lo;0;AL;<initial> 0684;;;;N;;;;;
+FB75;ARABIC LETTER DYEH MEDIAL FORM;Lo;0;AL;<medial> 0684;;;;N;;;;;
+FB76;ARABIC LETTER NYEH ISOLATED FORM;Lo;0;AL;<isolated> 0683;;;;N;;;;;
+FB77;ARABIC LETTER NYEH FINAL FORM;Lo;0;AL;<final> 0683;;;;N;;;;;
+FB78;ARABIC LETTER NYEH INITIAL FORM;Lo;0;AL;<initial> 0683;;;;N;;;;;
+FB79;ARABIC LETTER NYEH MEDIAL FORM;Lo;0;AL;<medial> 0683;;;;N;;;;;
+FB7A;ARABIC LETTER TCHEH ISOLATED FORM;Lo;0;AL;<isolated> 0686;;;;N;;;;;
+FB7B;ARABIC LETTER TCHEH FINAL FORM;Lo;0;AL;<final> 0686;;;;N;;;;;
+FB7C;ARABIC LETTER TCHEH INITIAL FORM;Lo;0;AL;<initial> 0686;;;;N;;;;;
+FB7D;ARABIC LETTER TCHEH MEDIAL FORM;Lo;0;AL;<medial> 0686;;;;N;;;;;
+FB7E;ARABIC LETTER TCHEHEH ISOLATED FORM;Lo;0;AL;<isolated> 0687;;;;N;;;;;
+FB7F;ARABIC LETTER TCHEHEH FINAL FORM;Lo;0;AL;<final> 0687;;;;N;;;;;
+FB80;ARABIC LETTER TCHEHEH INITIAL FORM;Lo;0;AL;<initial> 0687;;;;N;;;;;
+FB81;ARABIC LETTER TCHEHEH MEDIAL FORM;Lo;0;AL;<medial> 0687;;;;N;;;;;
+FB82;ARABIC LETTER DDAHAL ISOLATED FORM;Lo;0;AL;<isolated> 068D;;;;N;;;;;
+FB83;ARABIC LETTER DDAHAL FINAL FORM;Lo;0;AL;<final> 068D;;;;N;;;;;
+FB84;ARABIC LETTER DAHAL ISOLATED FORM;Lo;0;AL;<isolated> 068C;;;;N;;;;;
+FB85;ARABIC LETTER DAHAL FINAL FORM;Lo;0;AL;<final> 068C;;;;N;;;;;
+FB86;ARABIC LETTER DUL ISOLATED FORM;Lo;0;AL;<isolated> 068E;;;;N;;;;;
+FB87;ARABIC LETTER DUL FINAL FORM;Lo;0;AL;<final> 068E;;;;N;;;;;
+FB88;ARABIC LETTER DDAL ISOLATED FORM;Lo;0;AL;<isolated> 0688;;;;N;;;;;
+FB89;ARABIC LETTER DDAL FINAL FORM;Lo;0;AL;<final> 0688;;;;N;;;;;
+FB8A;ARABIC LETTER JEH ISOLATED FORM;Lo;0;AL;<isolated> 0698;;;;N;;;;;
+FB8B;ARABIC LETTER JEH FINAL FORM;Lo;0;AL;<final> 0698;;;;N;;;;;
+FB8C;ARABIC LETTER RREH ISOLATED FORM;Lo;0;AL;<isolated> 0691;;;;N;;;;;
+FB8D;ARABIC LETTER RREH FINAL FORM;Lo;0;AL;<final> 0691;;;;N;;;;;
+FB8E;ARABIC LETTER KEHEH ISOLATED FORM;Lo;0;AL;<isolated> 06A9;;;;N;;;;;
+FB8F;ARABIC LETTER KEHEH FINAL FORM;Lo;0;AL;<final> 06A9;;;;N;;;;;
+FB90;ARABIC LETTER KEHEH INITIAL FORM;Lo;0;AL;<initial> 06A9;;;;N;;;;;
+FB91;ARABIC LETTER KEHEH MEDIAL FORM;Lo;0;AL;<medial> 06A9;;;;N;;;;;
+FB92;ARABIC LETTER GAF ISOLATED FORM;Lo;0;AL;<isolated> 06AF;;;;N;;;;;
+FB93;ARABIC LETTER GAF FINAL FORM;Lo;0;AL;<final> 06AF;;;;N;;;;;
+FB94;ARABIC LETTER GAF INITIAL FORM;Lo;0;AL;<initial> 06AF;;;;N;;;;;
+FB95;ARABIC LETTER GAF MEDIAL FORM;Lo;0;AL;<medial> 06AF;;;;N;;;;;
+FB96;ARABIC LETTER GUEH ISOLATED FORM;Lo;0;AL;<isolated> 06B3;;;;N;;;;;
+FB97;ARABIC LETTER GUEH FINAL FORM;Lo;0;AL;<final> 06B3;;;;N;;;;;
+FB98;ARABIC LETTER GUEH INITIAL FORM;Lo;0;AL;<initial> 06B3;;;;N;;;;;
+FB99;ARABIC LETTER GUEH MEDIAL FORM;Lo;0;AL;<medial> 06B3;;;;N;;;;;
+FB9A;ARABIC LETTER NGOEH ISOLATED FORM;Lo;0;AL;<isolated> 06B1;;;;N;;;;;
+FB9B;ARABIC LETTER NGOEH FINAL FORM;Lo;0;AL;<final> 06B1;;;;N;;;;;
+FB9C;ARABIC LETTER NGOEH INITIAL FORM;Lo;0;AL;<initial> 06B1;;;;N;;;;;
+FB9D;ARABIC LETTER NGOEH MEDIAL FORM;Lo;0;AL;<medial> 06B1;;;;N;;;;;
+FB9E;ARABIC LETTER NOON GHUNNA ISOLATED FORM;Lo;0;AL;<isolated> 06BA;;;;N;;;;;
+FB9F;ARABIC LETTER NOON GHUNNA FINAL FORM;Lo;0;AL;<final> 06BA;;;;N;;;;;
+FBA0;ARABIC LETTER RNOON ISOLATED FORM;Lo;0;AL;<isolated> 06BB;;;;N;;;;;
+FBA1;ARABIC LETTER RNOON FINAL FORM;Lo;0;AL;<final> 06BB;;;;N;;;;;
+FBA2;ARABIC LETTER RNOON INITIAL FORM;Lo;0;AL;<initial> 06BB;;;;N;;;;;
+FBA3;ARABIC LETTER RNOON MEDIAL FORM;Lo;0;AL;<medial> 06BB;;;;N;;;;;
+FBA4;ARABIC LETTER HEH WITH YEH ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 06C0;;;;N;;;;;
+FBA5;ARABIC LETTER HEH WITH YEH ABOVE FINAL FORM;Lo;0;AL;<final> 06C0;;;;N;;;;;
+FBA6;ARABIC LETTER HEH GOAL ISOLATED FORM;Lo;0;AL;<isolated> 06C1;;;;N;;;;;
+FBA7;ARABIC LETTER HEH GOAL FINAL FORM;Lo;0;AL;<final> 06C1;;;;N;;;;;
+FBA8;ARABIC LETTER HEH GOAL INITIAL FORM;Lo;0;AL;<initial> 06C1;;;;N;;;;;
+FBA9;ARABIC LETTER HEH GOAL MEDIAL FORM;Lo;0;AL;<medial> 06C1;;;;N;;;;;
+FBAA;ARABIC LETTER HEH DOACHASHMEE ISOLATED FORM;Lo;0;AL;<isolated> 06BE;;;;N;;;;;
+FBAB;ARABIC LETTER HEH DOACHASHMEE FINAL FORM;Lo;0;AL;<final> 06BE;;;;N;;;;;
+FBAC;ARABIC LETTER HEH DOACHASHMEE INITIAL FORM;Lo;0;AL;<initial> 06BE;;;;N;;;;;
+FBAD;ARABIC LETTER HEH DOACHASHMEE MEDIAL FORM;Lo;0;AL;<medial> 06BE;;;;N;;;;;
+FBAE;ARABIC LETTER YEH BARREE ISOLATED FORM;Lo;0;AL;<isolated> 06D2;;;;N;;;;;
+FBAF;ARABIC LETTER YEH BARREE FINAL FORM;Lo;0;AL;<final> 06D2;;;;N;;;;;
+FBB0;ARABIC LETTER YEH BARREE WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 06D3;;;;N;;;;;
+FBB1;ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM;Lo;0;AL;<final> 06D3;;;;N;;;;;
+FBD3;ARABIC LETTER NG ISOLATED FORM;Lo;0;AL;<isolated> 06AD;;;;N;;;;;
+FBD4;ARABIC LETTER NG FINAL FORM;Lo;0;AL;<final> 06AD;;;;N;;;;;
+FBD5;ARABIC LETTER NG INITIAL FORM;Lo;0;AL;<initial> 06AD;;;;N;;;;;
+FBD6;ARABIC LETTER NG MEDIAL FORM;Lo;0;AL;<medial> 06AD;;;;N;;;;;
+FBD7;ARABIC LETTER U ISOLATED FORM;Lo;0;AL;<isolated> 06C7;;;;N;;;;;
+FBD8;ARABIC LETTER U FINAL FORM;Lo;0;AL;<final> 06C7;;;;N;;;;;
+FBD9;ARABIC LETTER OE ISOLATED FORM;Lo;0;AL;<isolated> 06C6;;;;N;;;;;
+FBDA;ARABIC LETTER OE FINAL FORM;Lo;0;AL;<final> 06C6;;;;N;;;;;
+FBDB;ARABIC LETTER YU ISOLATED FORM;Lo;0;AL;<isolated> 06C8;;;;N;;;;;
+FBDC;ARABIC LETTER YU FINAL FORM;Lo;0;AL;<final> 06C8;;;;N;;;;;
+FBDD;ARABIC LETTER U WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 0677;;;;N;;;;;
+FBDE;ARABIC LETTER VE ISOLATED FORM;Lo;0;AL;<isolated> 06CB;;;;N;;;;;
+FBDF;ARABIC LETTER VE FINAL FORM;Lo;0;AL;<final> 06CB;;;;N;;;;;
+FBE0;ARABIC LETTER KIRGHIZ OE ISOLATED FORM;Lo;0;AL;<isolated> 06C5;;;;N;;;;;
+FBE1;ARABIC LETTER KIRGHIZ OE FINAL FORM;Lo;0;AL;<final> 06C5;;;;N;;;;;
+FBE2;ARABIC LETTER KIRGHIZ YU ISOLATED FORM;Lo;0;AL;<isolated> 06C9;;;;N;;;;;
+FBE3;ARABIC LETTER KIRGHIZ YU FINAL FORM;Lo;0;AL;<final> 06C9;;;;N;;;;;
+FBE4;ARABIC LETTER E ISOLATED FORM;Lo;0;AL;<isolated> 06D0;;;;N;;;;;
+FBE5;ARABIC LETTER E FINAL FORM;Lo;0;AL;<final> 06D0;;;;N;;;;;
+FBE6;ARABIC LETTER E INITIAL FORM;Lo;0;AL;<initial> 06D0;;;;N;;;;;
+FBE7;ARABIC LETTER E MEDIAL FORM;Lo;0;AL;<medial> 06D0;;;;N;;;;;
+FBE8;ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA INITIAL FORM;Lo;0;AL;<initial> 0649;;;;N;;;;;
+FBE9;ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA MEDIAL FORM;Lo;0;AL;<medial> 0649;;;;N;;;;;
+FBEA;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0626 0627;;;;N;;;;;
+FBEB;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF FINAL FORM;Lo;0;AL;<final> 0626 0627;;;;N;;;;;
+FBEC;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE ISOLATED FORM;Lo;0;AL;<isolated> 0626 06D5;;;;N;;;;;
+FBED;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE FINAL FORM;Lo;0;AL;<final> 0626 06D5;;;;N;;;;;
+FBEE;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW ISOLATED FORM;Lo;0;AL;<isolated> 0626 0648;;;;N;;;;;
+FBEF;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW FINAL FORM;Lo;0;AL;<final> 0626 0648;;;;N;;;;;
+FBF0;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U ISOLATED FORM;Lo;0;AL;<isolated> 0626 06C7;;;;N;;;;;
+FBF1;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U FINAL FORM;Lo;0;AL;<final> 0626 06C7;;;;N;;;;;
+FBF2;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE ISOLATED FORM;Lo;0;AL;<isolated> 0626 06C6;;;;N;;;;;
+FBF3;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE FINAL FORM;Lo;0;AL;<final> 0626 06C6;;;;N;;;;;
+FBF4;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU ISOLATED FORM;Lo;0;AL;<isolated> 0626 06C8;;;;N;;;;;
+FBF5;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU FINAL FORM;Lo;0;AL;<final> 0626 06C8;;;;N;;;;;
+FBF6;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E ISOLATED FORM;Lo;0;AL;<isolated> 0626 06D0;;;;N;;;;;
+FBF7;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E FINAL FORM;Lo;0;AL;<final> 0626 06D0;;;;N;;;;;
+FBF8;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E INITIAL FORM;Lo;0;AL;<initial> 0626 06D0;;;;N;;;;;
+FBF9;ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0626 0649;;;;N;;;;;
+FBFA;ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0626 0649;;;;N;;;;;
+FBFB;ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA INITIAL FORM;Lo;0;AL;<initial> 0626 0649;;;;N;;;;;
+FBFC;ARABIC LETTER FARSI YEH ISOLATED FORM;Lo;0;AL;<isolated> 06CC;;;;N;;;;;
+FBFD;ARABIC LETTER FARSI YEH FINAL FORM;Lo;0;AL;<final> 06CC;;;;N;;;;;
+FBFE;ARABIC LETTER FARSI YEH INITIAL FORM;Lo;0;AL;<initial> 06CC;;;;N;;;;;
+FBFF;ARABIC LETTER FARSI YEH MEDIAL FORM;Lo;0;AL;<medial> 06CC;;;;N;;;;;
+FC00;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0626 062C;;;;N;;;;;
+FC01;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0626 062D;;;;N;;;;;
+FC02;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0626 0645;;;;N;;;;;
+FC03;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0626 0649;;;;N;;;;;
+FC04;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0626 064A;;;;N;;;;;
+FC05;ARABIC LIGATURE BEH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0628 062C;;;;N;;;;;
+FC06;ARABIC LIGATURE BEH WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0628 062D;;;;N;;;;;
+FC07;ARABIC LIGATURE BEH WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0628 062E;;;;N;;;;;
+FC08;ARABIC LIGATURE BEH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0628 0645;;;;N;;;;;
+FC09;ARABIC LIGATURE BEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0628 0649;;;;N;;;;;
+FC0A;ARABIC LIGATURE BEH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0628 064A;;;;N;;;;;
+FC0B;ARABIC LIGATURE TEH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 062A 062C;;;;N;;;;;
+FC0C;ARABIC LIGATURE TEH WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 062A 062D;;;;N;;;;;
+FC0D;ARABIC LIGATURE TEH WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 062A 062E;;;;N;;;;;
+FC0E;ARABIC LIGATURE TEH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 062A 0645;;;;N;;;;;
+FC0F;ARABIC LIGATURE TEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 062A 0649;;;;N;;;;;
+FC10;ARABIC LIGATURE TEH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 062A 064A;;;;N;;;;;
+FC11;ARABIC LIGATURE THEH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 062B 062C;;;;N;;;;;
+FC12;ARABIC LIGATURE THEH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 062B 0645;;;;N;;;;;
+FC13;ARABIC LIGATURE THEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 062B 0649;;;;N;;;;;
+FC14;ARABIC LIGATURE THEH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 062B 064A;;;;N;;;;;
+FC15;ARABIC LIGATURE JEEM WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 062C 062D;;;;N;;;;;
+FC16;ARABIC LIGATURE JEEM WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 062C 0645;;;;N;;;;;
+FC17;ARABIC LIGATURE HAH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 062D 062C;;;;N;;;;;
+FC18;ARABIC LIGATURE HAH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 062D 0645;;;;N;;;;;
+FC19;ARABIC LIGATURE KHAH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 062E 062C;;;;N;;;;;
+FC1A;ARABIC LIGATURE KHAH WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 062E 062D;;;;N;;;;;
+FC1B;ARABIC LIGATURE KHAH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 062E 0645;;;;N;;;;;
+FC1C;ARABIC LIGATURE SEEN WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0633 062C;;;;N;;;;;
+FC1D;ARABIC LIGATURE SEEN WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0633 062D;;;;N;;;;;
+FC1E;ARABIC LIGATURE SEEN WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0633 062E;;;;N;;;;;
+FC1F;ARABIC LIGATURE SEEN WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0633 0645;;;;N;;;;;
+FC20;ARABIC LIGATURE SAD WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0635 062D;;;;N;;;;;
+FC21;ARABIC LIGATURE SAD WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0635 0645;;;;N;;;;;
+FC22;ARABIC LIGATURE DAD WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0636 062C;;;;N;;;;;
+FC23;ARABIC LIGATURE DAD WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0636 062D;;;;N;;;;;
+FC24;ARABIC LIGATURE DAD WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0636 062E;;;;N;;;;;
+FC25;ARABIC LIGATURE DAD WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0636 0645;;;;N;;;;;
+FC26;ARABIC LIGATURE TAH WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0637 062D;;;;N;;;;;
+FC27;ARABIC LIGATURE TAH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0637 0645;;;;N;;;;;
+FC28;ARABIC LIGATURE ZAH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0638 0645;;;;N;;;;;
+FC29;ARABIC LIGATURE AIN WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0639 062C;;;;N;;;;;
+FC2A;ARABIC LIGATURE AIN WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0639 0645;;;;N;;;;;
+FC2B;ARABIC LIGATURE GHAIN WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 063A 062C;;;;N;;;;;
+FC2C;ARABIC LIGATURE GHAIN WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 063A 0645;;;;N;;;;;
+FC2D;ARABIC LIGATURE FEH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0641 062C;;;;N;;;;;
+FC2E;ARABIC LIGATURE FEH WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0641 062D;;;;N;;;;;
+FC2F;ARABIC LIGATURE FEH WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0641 062E;;;;N;;;;;
+FC30;ARABIC LIGATURE FEH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0641 0645;;;;N;;;;;
+FC31;ARABIC LIGATURE FEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0641 0649;;;;N;;;;;
+FC32;ARABIC LIGATURE FEH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0641 064A;;;;N;;;;;
+FC33;ARABIC LIGATURE QAF WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0642 062D;;;;N;;;;;
+FC34;ARABIC LIGATURE QAF WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0642 0645;;;;N;;;;;
+FC35;ARABIC LIGATURE QAF WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0642 0649;;;;N;;;;;
+FC36;ARABIC LIGATURE QAF WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0642 064A;;;;N;;;;;
+FC37;ARABIC LIGATURE KAF WITH ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0643 0627;;;;N;;;;;
+FC38;ARABIC LIGATURE KAF WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0643 062C;;;;N;;;;;
+FC39;ARABIC LIGATURE KAF WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0643 062D;;;;N;;;;;
+FC3A;ARABIC LIGATURE KAF WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0643 062E;;;;N;;;;;
+FC3B;ARABIC LIGATURE KAF WITH LAM ISOLATED FORM;Lo;0;AL;<isolated> 0643 0644;;;;N;;;;;
+FC3C;ARABIC LIGATURE KAF WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0643 0645;;;;N;;;;;
+FC3D;ARABIC LIGATURE KAF WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0643 0649;;;;N;;;;;
+FC3E;ARABIC LIGATURE KAF WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0643 064A;;;;N;;;;;
+FC3F;ARABIC LIGATURE LAM WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0644 062C;;;;N;;;;;
+FC40;ARABIC LIGATURE LAM WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0644 062D;;;;N;;;;;
+FC41;ARABIC LIGATURE LAM WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0644 062E;;;;N;;;;;
+FC42;ARABIC LIGATURE LAM WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0644 0645;;;;N;;;;;
+FC43;ARABIC LIGATURE LAM WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0644 0649;;;;N;;;;;
+FC44;ARABIC LIGATURE LAM WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0644 064A;;;;N;;;;;
+FC45;ARABIC LIGATURE MEEM WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0645 062C;;;;N;;;;;
+FC46;ARABIC LIGATURE MEEM WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0645 062D;;;;N;;;;;
+FC47;ARABIC LIGATURE MEEM WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0645 062E;;;;N;;;;;
+FC48;ARABIC LIGATURE MEEM WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0645 0645;;;;N;;;;;
+FC49;ARABIC LIGATURE MEEM WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0645 0649;;;;N;;;;;
+FC4A;ARABIC LIGATURE MEEM WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0645 064A;;;;N;;;;;
+FC4B;ARABIC LIGATURE NOON WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0646 062C;;;;N;;;;;
+FC4C;ARABIC LIGATURE NOON WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0646 062D;;;;N;;;;;
+FC4D;ARABIC LIGATURE NOON WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0646 062E;;;;N;;;;;
+FC4E;ARABIC LIGATURE NOON WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0646 0645;;;;N;;;;;
+FC4F;ARABIC LIGATURE NOON WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0646 0649;;;;N;;;;;
+FC50;ARABIC LIGATURE NOON WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0646 064A;;;;N;;;;;
+FC51;ARABIC LIGATURE HEH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0647 062C;;;;N;;;;;
+FC52;ARABIC LIGATURE HEH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0647 0645;;;;N;;;;;
+FC53;ARABIC LIGATURE HEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0647 0649;;;;N;;;;;
+FC54;ARABIC LIGATURE HEH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0647 064A;;;;N;;;;;
+FC55;ARABIC LIGATURE YEH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 064A 062C;;;;N;;;;;
+FC56;ARABIC LIGATURE YEH WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 064A 062D;;;;N;;;;;
+FC57;ARABIC LIGATURE YEH WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 064A 062E;;;;N;;;;;
+FC58;ARABIC LIGATURE YEH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 064A 0645;;;;N;;;;;
+FC59;ARABIC LIGATURE YEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 064A 0649;;;;N;;;;;
+FC5A;ARABIC LIGATURE YEH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 064A 064A;;;;N;;;;;
+FC5B;ARABIC LIGATURE THAL WITH SUPERSCRIPT ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0630 0670;;;;N;;;;;
+FC5C;ARABIC LIGATURE REH WITH SUPERSCRIPT ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0631 0670;;;;N;;;;;
+FC5D;ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0649 0670;;;;N;;;;;
+FC5E;ARABIC LIGATURE SHADDA WITH DAMMATAN ISOLATED FORM;Lo;0;AL;<isolated> 0020 064C 0651;;;;N;;;;;
+FC5F;ARABIC LIGATURE SHADDA WITH KASRATAN ISOLATED FORM;Lo;0;AL;<isolated> 0020 064D 0651;;;;N;;;;;
+FC60;ARABIC LIGATURE SHADDA WITH FATHA ISOLATED FORM;Lo;0;AL;<isolated> 0020 064E 0651;;;;N;;;;;
+FC61;ARABIC LIGATURE SHADDA WITH DAMMA ISOLATED FORM;Lo;0;AL;<isolated> 0020 064F 0651;;;;N;;;;;
+FC62;ARABIC LIGATURE SHADDA WITH KASRA ISOLATED FORM;Lo;0;AL;<isolated> 0020 0650 0651;;;;N;;;;;
+FC63;ARABIC LIGATURE SHADDA WITH SUPERSCRIPT ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0020 0651 0670;;;;N;;;;;
+FC64;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH REH FINAL FORM;Lo;0;AL;<final> 0626 0631;;;;N;;;;;
+FC65;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ZAIN FINAL FORM;Lo;0;AL;<final> 0626 0632;;;;N;;;;;
+FC66;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM FINAL FORM;Lo;0;AL;<final> 0626 0645;;;;N;;;;;
+FC67;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH NOON FINAL FORM;Lo;0;AL;<final> 0626 0646;;;;N;;;;;
+FC68;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0626 0649;;;;N;;;;;
+FC69;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH FINAL FORM;Lo;0;AL;<final> 0626 064A;;;;N;;;;;
+FC6A;ARABIC LIGATURE BEH WITH REH FINAL FORM;Lo;0;AL;<final> 0628 0631;;;;N;;;;;
+FC6B;ARABIC LIGATURE BEH WITH ZAIN FINAL FORM;Lo;0;AL;<final> 0628 0632;;;;N;;;;;
+FC6C;ARABIC LIGATURE BEH WITH MEEM FINAL FORM;Lo;0;AL;<final> 0628 0645;;;;N;;;;;
+FC6D;ARABIC LIGATURE BEH WITH NOON FINAL FORM;Lo;0;AL;<final> 0628 0646;;;;N;;;;;
+FC6E;ARABIC LIGATURE BEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0628 0649;;;;N;;;;;
+FC6F;ARABIC LIGATURE BEH WITH YEH FINAL FORM;Lo;0;AL;<final> 0628 064A;;;;N;;;;;
+FC70;ARABIC LIGATURE TEH WITH REH FINAL FORM;Lo;0;AL;<final> 062A 0631;;;;N;;;;;
+FC71;ARABIC LIGATURE TEH WITH ZAIN FINAL FORM;Lo;0;AL;<final> 062A 0632;;;;N;;;;;
+FC72;ARABIC LIGATURE TEH WITH MEEM FINAL FORM;Lo;0;AL;<final> 062A 0645;;;;N;;;;;
+FC73;ARABIC LIGATURE TEH WITH NOON FINAL FORM;Lo;0;AL;<final> 062A 0646;;;;N;;;;;
+FC74;ARABIC LIGATURE TEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062A 0649;;;;N;;;;;
+FC75;ARABIC LIGATURE TEH WITH YEH FINAL FORM;Lo;0;AL;<final> 062A 064A;;;;N;;;;;
+FC76;ARABIC LIGATURE THEH WITH REH FINAL FORM;Lo;0;AL;<final> 062B 0631;;;;N;;;;;
+FC77;ARABIC LIGATURE THEH WITH ZAIN FINAL FORM;Lo;0;AL;<final> 062B 0632;;;;N;;;;;
+FC78;ARABIC LIGATURE THEH WITH MEEM FINAL FORM;Lo;0;AL;<final> 062B 0645;;;;N;;;;;
+FC79;ARABIC LIGATURE THEH WITH NOON FINAL FORM;Lo;0;AL;<final> 062B 0646;;;;N;;;;;
+FC7A;ARABIC LIGATURE THEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062B 0649;;;;N;;;;;
+FC7B;ARABIC LIGATURE THEH WITH YEH FINAL FORM;Lo;0;AL;<final> 062B 064A;;;;N;;;;;
+FC7C;ARABIC LIGATURE FEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0641 0649;;;;N;;;;;
+FC7D;ARABIC LIGATURE FEH WITH YEH FINAL FORM;Lo;0;AL;<final> 0641 064A;;;;N;;;;;
+FC7E;ARABIC LIGATURE QAF WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0642 0649;;;;N;;;;;
+FC7F;ARABIC LIGATURE QAF WITH YEH FINAL FORM;Lo;0;AL;<final> 0642 064A;;;;N;;;;;
+FC80;ARABIC LIGATURE KAF WITH ALEF FINAL FORM;Lo;0;AL;<final> 0643 0627;;;;N;;;;;
+FC81;ARABIC LIGATURE KAF WITH LAM FINAL FORM;Lo;0;AL;<final> 0643 0644;;;;N;;;;;
+FC82;ARABIC LIGATURE KAF WITH MEEM FINAL FORM;Lo;0;AL;<final> 0643 0645;;;;N;;;;;
+FC83;ARABIC LIGATURE KAF WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0643 0649;;;;N;;;;;
+FC84;ARABIC LIGATURE KAF WITH YEH FINAL FORM;Lo;0;AL;<final> 0643 064A;;;;N;;;;;
+FC85;ARABIC LIGATURE LAM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0644 0645;;;;N;;;;;
+FC86;ARABIC LIGATURE LAM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0644 0649;;;;N;;;;;
+FC87;ARABIC LIGATURE LAM WITH YEH FINAL FORM;Lo;0;AL;<final> 0644 064A;;;;N;;;;;
+FC88;ARABIC LIGATURE MEEM WITH ALEF FINAL FORM;Lo;0;AL;<final> 0645 0627;;;;N;;;;;
+FC89;ARABIC LIGATURE MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0645 0645;;;;N;;;;;
+FC8A;ARABIC LIGATURE NOON WITH REH FINAL FORM;Lo;0;AL;<final> 0646 0631;;;;N;;;;;
+FC8B;ARABIC LIGATURE NOON WITH ZAIN FINAL FORM;Lo;0;AL;<final> 0646 0632;;;;N;;;;;
+FC8C;ARABIC LIGATURE NOON WITH MEEM FINAL FORM;Lo;0;AL;<final> 0646 0645;;;;N;;;;;
+FC8D;ARABIC LIGATURE NOON WITH NOON FINAL FORM;Lo;0;AL;<final> 0646 0646;;;;N;;;;;
+FC8E;ARABIC LIGATURE NOON WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0646 0649;;;;N;;;;;
+FC8F;ARABIC LIGATURE NOON WITH YEH FINAL FORM;Lo;0;AL;<final> 0646 064A;;;;N;;;;;
+FC90;ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF FINAL FORM;Lo;0;AL;<final> 0649 0670;;;;N;;;;;
+FC91;ARABIC LIGATURE YEH WITH REH FINAL FORM;Lo;0;AL;<final> 064A 0631;;;;N;;;;;
+FC92;ARABIC LIGATURE YEH WITH ZAIN FINAL FORM;Lo;0;AL;<final> 064A 0632;;;;N;;;;;
+FC93;ARABIC LIGATURE YEH WITH MEEM FINAL FORM;Lo;0;AL;<final> 064A 0645;;;;N;;;;;
+FC94;ARABIC LIGATURE YEH WITH NOON FINAL FORM;Lo;0;AL;<final> 064A 0646;;;;N;;;;;
+FC95;ARABIC LIGATURE YEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 064A 0649;;;;N;;;;;
+FC96;ARABIC LIGATURE YEH WITH YEH FINAL FORM;Lo;0;AL;<final> 064A 064A;;;;N;;;;;
+FC97;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0626 062C;;;;N;;;;;
+FC98;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0626 062D;;;;N;;;;;
+FC99;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0626 062E;;;;N;;;;;
+FC9A;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0626 0645;;;;N;;;;;
+FC9B;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH INITIAL FORM;Lo;0;AL;<initial> 0626 0647;;;;N;;;;;
+FC9C;ARABIC LIGATURE BEH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0628 062C;;;;N;;;;;
+FC9D;ARABIC LIGATURE BEH WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0628 062D;;;;N;;;;;
+FC9E;ARABIC LIGATURE BEH WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0628 062E;;;;N;;;;;
+FC9F;ARABIC LIGATURE BEH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0628 0645;;;;N;;;;;
+FCA0;ARABIC LIGATURE BEH WITH HEH INITIAL FORM;Lo;0;AL;<initial> 0628 0647;;;;N;;;;;
+FCA1;ARABIC LIGATURE TEH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 062A 062C;;;;N;;;;;
+FCA2;ARABIC LIGATURE TEH WITH HAH INITIAL FORM;Lo;0;AL;<initial> 062A 062D;;;;N;;;;;
+FCA3;ARABIC LIGATURE TEH WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 062A 062E;;;;N;;;;;
+FCA4;ARABIC LIGATURE TEH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062A 0645;;;;N;;;;;
+FCA5;ARABIC LIGATURE TEH WITH HEH INITIAL FORM;Lo;0;AL;<initial> 062A 0647;;;;N;;;;;
+FCA6;ARABIC LIGATURE THEH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062B 0645;;;;N;;;;;
+FCA7;ARABIC LIGATURE JEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 062C 062D;;;;N;;;;;
+FCA8;ARABIC LIGATURE JEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062C 0645;;;;N;;;;;
+FCA9;ARABIC LIGATURE HAH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 062D 062C;;;;N;;;;;
+FCAA;ARABIC LIGATURE HAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062D 0645;;;;N;;;;;
+FCAB;ARABIC LIGATURE KHAH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 062E 062C;;;;N;;;;;
+FCAC;ARABIC LIGATURE KHAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062E 0645;;;;N;;;;;
+FCAD;ARABIC LIGATURE SEEN WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0633 062C;;;;N;;;;;
+FCAE;ARABIC LIGATURE SEEN WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0633 062D;;;;N;;;;;
+FCAF;ARABIC LIGATURE SEEN WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0633 062E;;;;N;;;;;
+FCB0;ARABIC LIGATURE SEEN WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0633 0645;;;;N;;;;;
+FCB1;ARABIC LIGATURE SAD WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0635 062D;;;;N;;;;;
+FCB2;ARABIC LIGATURE SAD WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0635 062E;;;;N;;;;;
+FCB3;ARABIC LIGATURE SAD WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0635 0645;;;;N;;;;;
+FCB4;ARABIC LIGATURE DAD WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0636 062C;;;;N;;;;;
+FCB5;ARABIC LIGATURE DAD WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0636 062D;;;;N;;;;;
+FCB6;ARABIC LIGATURE DAD WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0636 062E;;;;N;;;;;
+FCB7;ARABIC LIGATURE DAD WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0636 0645;;;;N;;;;;
+FCB8;ARABIC LIGATURE TAH WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0637 062D;;;;N;;;;;
+FCB9;ARABIC LIGATURE ZAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0638 0645;;;;N;;;;;
+FCBA;ARABIC LIGATURE AIN WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0639 062C;;;;N;;;;;
+FCBB;ARABIC LIGATURE AIN WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0639 0645;;;;N;;;;;
+FCBC;ARABIC LIGATURE GHAIN WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 063A 062C;;;;N;;;;;
+FCBD;ARABIC LIGATURE GHAIN WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 063A 0645;;;;N;;;;;
+FCBE;ARABIC LIGATURE FEH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0641 062C;;;;N;;;;;
+FCBF;ARABIC LIGATURE FEH WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0641 062D;;;;N;;;;;
+FCC0;ARABIC LIGATURE FEH WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0641 062E;;;;N;;;;;
+FCC1;ARABIC LIGATURE FEH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0641 0645;;;;N;;;;;
+FCC2;ARABIC LIGATURE QAF WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0642 062D;;;;N;;;;;
+FCC3;ARABIC LIGATURE QAF WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0642 0645;;;;N;;;;;
+FCC4;ARABIC LIGATURE KAF WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0643 062C;;;;N;;;;;
+FCC5;ARABIC LIGATURE KAF WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0643 062D;;;;N;;;;;
+FCC6;ARABIC LIGATURE KAF WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0643 062E;;;;N;;;;;
+FCC7;ARABIC LIGATURE KAF WITH LAM INITIAL FORM;Lo;0;AL;<initial> 0643 0644;;;;N;;;;;
+FCC8;ARABIC LIGATURE KAF WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0643 0645;;;;N;;;;;
+FCC9;ARABIC LIGATURE LAM WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0644 062C;;;;N;;;;;
+FCCA;ARABIC LIGATURE LAM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0644 062D;;;;N;;;;;
+FCCB;ARABIC LIGATURE LAM WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0644 062E;;;;N;;;;;
+FCCC;ARABIC LIGATURE LAM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0644 0645;;;;N;;;;;
+FCCD;ARABIC LIGATURE LAM WITH HEH INITIAL FORM;Lo;0;AL;<initial> 0644 0647;;;;N;;;;;
+FCCE;ARABIC LIGATURE MEEM WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0645 062C;;;;N;;;;;
+FCCF;ARABIC LIGATURE MEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0645 062D;;;;N;;;;;
+FCD0;ARABIC LIGATURE MEEM WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0645 062E;;;;N;;;;;
+FCD1;ARABIC LIGATURE MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0645 0645;;;;N;;;;;
+FCD2;ARABIC LIGATURE NOON WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0646 062C;;;;N;;;;;
+FCD3;ARABIC LIGATURE NOON WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0646 062D;;;;N;;;;;
+FCD4;ARABIC LIGATURE NOON WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0646 062E;;;;N;;;;;
+FCD5;ARABIC LIGATURE NOON WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0646 0645;;;;N;;;;;
+FCD6;ARABIC LIGATURE NOON WITH HEH INITIAL FORM;Lo;0;AL;<initial> 0646 0647;;;;N;;;;;
+FCD7;ARABIC LIGATURE HEH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0647 062C;;;;N;;;;;
+FCD8;ARABIC LIGATURE HEH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0647 0645;;;;N;;;;;
+FCD9;ARABIC LIGATURE HEH WITH SUPERSCRIPT ALEF INITIAL FORM;Lo;0;AL;<initial> 0647 0670;;;;N;;;;;
+FCDA;ARABIC LIGATURE YEH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 064A 062C;;;;N;;;;;
+FCDB;ARABIC LIGATURE YEH WITH HAH INITIAL FORM;Lo;0;AL;<initial> 064A 062D;;;;N;;;;;
+FCDC;ARABIC LIGATURE YEH WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 064A 062E;;;;N;;;;;
+FCDD;ARABIC LIGATURE YEH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 064A 0645;;;;N;;;;;
+FCDE;ARABIC LIGATURE YEH WITH HEH INITIAL FORM;Lo;0;AL;<initial> 064A 0647;;;;N;;;;;
+FCDF;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0626 0645;;;;N;;;;;
+FCE0;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 0626 0647;;;;N;;;;;
+FCE1;ARABIC LIGATURE BEH WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0628 0645;;;;N;;;;;
+FCE2;ARABIC LIGATURE BEH WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 0628 0647;;;;N;;;;;
+FCE3;ARABIC LIGATURE TEH WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 062A 0645;;;;N;;;;;
+FCE4;ARABIC LIGATURE TEH WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 062A 0647;;;;N;;;;;
+FCE5;ARABIC LIGATURE THEH WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 062B 0645;;;;N;;;;;
+FCE6;ARABIC LIGATURE THEH WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 062B 0647;;;;N;;;;;
+FCE7;ARABIC LIGATURE SEEN WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0633 0645;;;;N;;;;;
+FCE8;ARABIC LIGATURE SEEN WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 0633 0647;;;;N;;;;;
+FCE9;ARABIC LIGATURE SHEEN WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0634 0645;;;;N;;;;;
+FCEA;ARABIC LIGATURE SHEEN WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 0634 0647;;;;N;;;;;
+FCEB;ARABIC LIGATURE KAF WITH LAM MEDIAL FORM;Lo;0;AL;<medial> 0643 0644;;;;N;;;;;
+FCEC;ARABIC LIGATURE KAF WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0643 0645;;;;N;;;;;
+FCED;ARABIC LIGATURE LAM WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0644 0645;;;;N;;;;;
+FCEE;ARABIC LIGATURE NOON WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0646 0645;;;;N;;;;;
+FCEF;ARABIC LIGATURE NOON WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 0646 0647;;;;N;;;;;
+FCF0;ARABIC LIGATURE YEH WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 064A 0645;;;;N;;;;;
+FCF1;ARABIC LIGATURE YEH WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 064A 0647;;;;N;;;;;
+FCF2;ARABIC LIGATURE SHADDA WITH FATHA MEDIAL FORM;Lo;0;AL;<medial> 0640 064E 0651;;;;N;;;;;
+FCF3;ARABIC LIGATURE SHADDA WITH DAMMA MEDIAL FORM;Lo;0;AL;<medial> 0640 064F 0651;;;;N;;;;;
+FCF4;ARABIC LIGATURE SHADDA WITH KASRA MEDIAL FORM;Lo;0;AL;<medial> 0640 0650 0651;;;;N;;;;;
+FCF5;ARABIC LIGATURE TAH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0637 0649;;;;N;;;;;
+FCF6;ARABIC LIGATURE TAH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0637 064A;;;;N;;;;;
+FCF7;ARABIC LIGATURE AIN WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0639 0649;;;;N;;;;;
+FCF8;ARABIC LIGATURE AIN WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0639 064A;;;;N;;;;;
+FCF9;ARABIC LIGATURE GHAIN WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 063A 0649;;;;N;;;;;
+FCFA;ARABIC LIGATURE GHAIN WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 063A 064A;;;;N;;;;;
+FCFB;ARABIC LIGATURE SEEN WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0633 0649;;;;N;;;;;
+FCFC;ARABIC LIGATURE SEEN WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0633 064A;;;;N;;;;;
+FCFD;ARABIC LIGATURE SHEEN WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0634 0649;;;;N;;;;;
+FCFE;ARABIC LIGATURE SHEEN WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0634 064A;;;;N;;;;;
+FCFF;ARABIC LIGATURE HAH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 062D 0649;;;;N;;;;;
+FD00;ARABIC LIGATURE HAH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 062D 064A;;;;N;;;;;
+FD01;ARABIC LIGATURE JEEM WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 062C 0649;;;;N;;;;;
+FD02;ARABIC LIGATURE JEEM WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 062C 064A;;;;N;;;;;
+FD03;ARABIC LIGATURE KHAH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 062E 0649;;;;N;;;;;
+FD04;ARABIC LIGATURE KHAH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 062E 064A;;;;N;;;;;
+FD05;ARABIC LIGATURE SAD WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0635 0649;;;;N;;;;;
+FD06;ARABIC LIGATURE SAD WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0635 064A;;;;N;;;;;
+FD07;ARABIC LIGATURE DAD WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0636 0649;;;;N;;;;;
+FD08;ARABIC LIGATURE DAD WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0636 064A;;;;N;;;;;
+FD09;ARABIC LIGATURE SHEEN WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0634 062C;;;;N;;;;;
+FD0A;ARABIC LIGATURE SHEEN WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0634 062D;;;;N;;;;;
+FD0B;ARABIC LIGATURE SHEEN WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0634 062E;;;;N;;;;;
+FD0C;ARABIC LIGATURE SHEEN WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0634 0645;;;;N;;;;;
+FD0D;ARABIC LIGATURE SHEEN WITH REH ISOLATED FORM;Lo;0;AL;<isolated> 0634 0631;;;;N;;;;;
+FD0E;ARABIC LIGATURE SEEN WITH REH ISOLATED FORM;Lo;0;AL;<isolated> 0633 0631;;;;N;;;;;
+FD0F;ARABIC LIGATURE SAD WITH REH ISOLATED FORM;Lo;0;AL;<isolated> 0635 0631;;;;N;;;;;
+FD10;ARABIC LIGATURE DAD WITH REH ISOLATED FORM;Lo;0;AL;<isolated> 0636 0631;;;;N;;;;;
+FD11;ARABIC LIGATURE TAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0637 0649;;;;N;;;;;
+FD12;ARABIC LIGATURE TAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0637 064A;;;;N;;;;;
+FD13;ARABIC LIGATURE AIN WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0639 0649;;;;N;;;;;
+FD14;ARABIC LIGATURE AIN WITH YEH FINAL FORM;Lo;0;AL;<final> 0639 064A;;;;N;;;;;
+FD15;ARABIC LIGATURE GHAIN WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 063A 0649;;;;N;;;;;
+FD16;ARABIC LIGATURE GHAIN WITH YEH FINAL FORM;Lo;0;AL;<final> 063A 064A;;;;N;;;;;
+FD17;ARABIC LIGATURE SEEN WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0633 0649;;;;N;;;;;
+FD18;ARABIC LIGATURE SEEN WITH YEH FINAL FORM;Lo;0;AL;<final> 0633 064A;;;;N;;;;;
+FD19;ARABIC LIGATURE SHEEN WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0634 0649;;;;N;;;;;
+FD1A;ARABIC LIGATURE SHEEN WITH YEH FINAL FORM;Lo;0;AL;<final> 0634 064A;;;;N;;;;;
+FD1B;ARABIC LIGATURE HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062D 0649;;;;N;;;;;
+FD1C;ARABIC LIGATURE HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 062D 064A;;;;N;;;;;
+FD1D;ARABIC LIGATURE JEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062C 0649;;;;N;;;;;
+FD1E;ARABIC LIGATURE JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 062C 064A;;;;N;;;;;
+FD1F;ARABIC LIGATURE KHAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062E 0649;;;;N;;;;;
+FD20;ARABIC LIGATURE KHAH WITH YEH FINAL FORM;Lo;0;AL;<final> 062E 064A;;;;N;;;;;
+FD21;ARABIC LIGATURE SAD WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0635 0649;;;;N;;;;;
+FD22;ARABIC LIGATURE SAD WITH YEH FINAL FORM;Lo;0;AL;<final> 0635 064A;;;;N;;;;;
+FD23;ARABIC LIGATURE DAD WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0636 0649;;;;N;;;;;
+FD24;ARABIC LIGATURE DAD WITH YEH FINAL FORM;Lo;0;AL;<final> 0636 064A;;;;N;;;;;
+FD25;ARABIC LIGATURE SHEEN WITH JEEM FINAL FORM;Lo;0;AL;<final> 0634 062C;;;;N;;;;;
+FD26;ARABIC LIGATURE SHEEN WITH HAH FINAL FORM;Lo;0;AL;<final> 0634 062D;;;;N;;;;;
+FD27;ARABIC LIGATURE SHEEN WITH KHAH FINAL FORM;Lo;0;AL;<final> 0634 062E;;;;N;;;;;
+FD28;ARABIC LIGATURE SHEEN WITH MEEM FINAL FORM;Lo;0;AL;<final> 0634 0645;;;;N;;;;;
+FD29;ARABIC LIGATURE SHEEN WITH REH FINAL FORM;Lo;0;AL;<final> 0634 0631;;;;N;;;;;
+FD2A;ARABIC LIGATURE SEEN WITH REH FINAL FORM;Lo;0;AL;<final> 0633 0631;;;;N;;;;;
+FD2B;ARABIC LIGATURE SAD WITH REH FINAL FORM;Lo;0;AL;<final> 0635 0631;;;;N;;;;;
+FD2C;ARABIC LIGATURE DAD WITH REH FINAL FORM;Lo;0;AL;<final> 0636 0631;;;;N;;;;;
+FD2D;ARABIC LIGATURE SHEEN WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0634 062C;;;;N;;;;;
+FD2E;ARABIC LIGATURE SHEEN WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0634 062D;;;;N;;;;;
+FD2F;ARABIC LIGATURE SHEEN WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0634 062E;;;;N;;;;;
+FD30;ARABIC LIGATURE SHEEN WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0634 0645;;;;N;;;;;
+FD31;ARABIC LIGATURE SEEN WITH HEH INITIAL FORM;Lo;0;AL;<initial> 0633 0647;;;;N;;;;;
+FD32;ARABIC LIGATURE SHEEN WITH HEH INITIAL FORM;Lo;0;AL;<initial> 0634 0647;;;;N;;;;;
+FD33;ARABIC LIGATURE TAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0637 0645;;;;N;;;;;
+FD34;ARABIC LIGATURE SEEN WITH JEEM MEDIAL FORM;Lo;0;AL;<medial> 0633 062C;;;;N;;;;;
+FD35;ARABIC LIGATURE SEEN WITH HAH MEDIAL FORM;Lo;0;AL;<medial> 0633 062D;;;;N;;;;;
+FD36;ARABIC LIGATURE SEEN WITH KHAH MEDIAL FORM;Lo;0;AL;<medial> 0633 062E;;;;N;;;;;
+FD37;ARABIC LIGATURE SHEEN WITH JEEM MEDIAL FORM;Lo;0;AL;<medial> 0634 062C;;;;N;;;;;
+FD38;ARABIC LIGATURE SHEEN WITH HAH MEDIAL FORM;Lo;0;AL;<medial> 0634 062D;;;;N;;;;;
+FD39;ARABIC LIGATURE SHEEN WITH KHAH MEDIAL FORM;Lo;0;AL;<medial> 0634 062E;;;;N;;;;;
+FD3A;ARABIC LIGATURE TAH WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0637 0645;;;;N;;;;;
+FD3B;ARABIC LIGATURE ZAH WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0638 0645;;;;N;;;;;
+FD3C;ARABIC LIGATURE ALEF WITH FATHATAN FINAL FORM;Lo;0;AL;<final> 0627 064B;;;;N;;;;;
+FD3D;ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM;Lo;0;AL;<isolated> 0627 064B;;;;N;;;;;
+FD3E;ORNATE LEFT PARENTHESIS;Ps;0;ON;;;;;N;;;;;
+FD3F;ORNATE RIGHT PARENTHESIS;Pe;0;ON;;;;;N;;;;;
+FD50;ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062A 062C 0645;;;;N;;;;;
+FD51;ARABIC LIGATURE TEH WITH HAH WITH JEEM FINAL FORM;Lo;0;AL;<final> 062A 062D 062C;;;;N;;;;;
+FD52;ARABIC LIGATURE TEH WITH HAH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 062A 062D 062C;;;;N;;;;;
+FD53;ARABIC LIGATURE TEH WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062A 062D 0645;;;;N;;;;;
+FD54;ARABIC LIGATURE TEH WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062A 062E 0645;;;;N;;;;;
+FD55;ARABIC LIGATURE TEH WITH MEEM WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 062A 0645 062C;;;;N;;;;;
+FD56;ARABIC LIGATURE TEH WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 062A 0645 062D;;;;N;;;;;
+FD57;ARABIC LIGATURE TEH WITH MEEM WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 062A 0645 062E;;;;N;;;;;
+FD58;ARABIC LIGATURE JEEM WITH MEEM WITH HAH FINAL FORM;Lo;0;AL;<final> 062C 0645 062D;;;;N;;;;;
+FD59;ARABIC LIGATURE JEEM WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 062C 0645 062D;;;;N;;;;;
+FD5A;ARABIC LIGATURE HAH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 062D 0645 064A;;;;N;;;;;
+FD5B;ARABIC LIGATURE HAH WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062D 0645 0649;;;;N;;;;;
+FD5C;ARABIC LIGATURE SEEN WITH HAH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0633 062D 062C;;;;N;;;;;
+FD5D;ARABIC LIGATURE SEEN WITH JEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0633 062C 062D;;;;N;;;;;
+FD5E;ARABIC LIGATURE SEEN WITH JEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0633 062C 0649;;;;N;;;;;
+FD5F;ARABIC LIGATURE SEEN WITH MEEM WITH HAH FINAL FORM;Lo;0;AL;<final> 0633 0645 062D;;;;N;;;;;
+FD60;ARABIC LIGATURE SEEN WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0633 0645 062D;;;;N;;;;;
+FD61;ARABIC LIGATURE SEEN WITH MEEM WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0633 0645 062C;;;;N;;;;;
+FD62;ARABIC LIGATURE SEEN WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0633 0645 0645;;;;N;;;;;
+FD63;ARABIC LIGATURE SEEN WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0633 0645 0645;;;;N;;;;;
+FD64;ARABIC LIGATURE SAD WITH HAH WITH HAH FINAL FORM;Lo;0;AL;<final> 0635 062D 062D;;;;N;;;;;
+FD65;ARABIC LIGATURE SAD WITH HAH WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0635 062D 062D;;;;N;;;;;
+FD66;ARABIC LIGATURE SAD WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0635 0645 0645;;;;N;;;;;
+FD67;ARABIC LIGATURE SHEEN WITH HAH WITH MEEM FINAL FORM;Lo;0;AL;<final> 0634 062D 0645;;;;N;;;;;
+FD68;ARABIC LIGATURE SHEEN WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0634 062D 0645;;;;N;;;;;
+FD69;ARABIC LIGATURE SHEEN WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0634 062C 064A;;;;N;;;;;
+FD6A;ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH FINAL FORM;Lo;0;AL;<final> 0634 0645 062E;;;;N;;;;;
+FD6B;ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0634 0645 062E;;;;N;;;;;
+FD6C;ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0634 0645 0645;;;;N;;;;;
+FD6D;ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0634 0645 0645;;;;N;;;;;
+FD6E;ARABIC LIGATURE DAD WITH HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0636 062D 0649;;;;N;;;;;
+FD6F;ARABIC LIGATURE DAD WITH KHAH WITH MEEM FINAL FORM;Lo;0;AL;<final> 0636 062E 0645;;;;N;;;;;
+FD70;ARABIC LIGATURE DAD WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0636 062E 0645;;;;N;;;;;
+FD71;ARABIC LIGATURE TAH WITH MEEM WITH HAH FINAL FORM;Lo;0;AL;<final> 0637 0645 062D;;;;N;;;;;
+FD72;ARABIC LIGATURE TAH WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0637 0645 062D;;;;N;;;;;
+FD73;ARABIC LIGATURE TAH WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0637 0645 0645;;;;N;;;;;
+FD74;ARABIC LIGATURE TAH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0637 0645 064A;;;;N;;;;;
+FD75;ARABIC LIGATURE AIN WITH JEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0639 062C 0645;;;;N;;;;;
+FD76;ARABIC LIGATURE AIN WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0639 0645 0645;;;;N;;;;;
+FD77;ARABIC LIGATURE AIN WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0639 0645 0645;;;;N;;;;;
+FD78;ARABIC LIGATURE AIN WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0639 0645 0649;;;;N;;;;;
+FD79;ARABIC LIGATURE GHAIN WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 063A 0645 0645;;;;N;;;;;
+FD7A;ARABIC LIGATURE GHAIN WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 063A 0645 064A;;;;N;;;;;
+FD7B;ARABIC LIGATURE GHAIN WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 063A 0645 0649;;;;N;;;;;
+FD7C;ARABIC LIGATURE FEH WITH KHAH WITH MEEM FINAL FORM;Lo;0;AL;<final> 0641 062E 0645;;;;N;;;;;
+FD7D;ARABIC LIGATURE FEH WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0641 062E 0645;;;;N;;;;;
+FD7E;ARABIC LIGATURE QAF WITH MEEM WITH HAH FINAL FORM;Lo;0;AL;<final> 0642 0645 062D;;;;N;;;;;
+FD7F;ARABIC LIGATURE QAF WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0642 0645 0645;;;;N;;;;;
+FD80;ARABIC LIGATURE LAM WITH HAH WITH MEEM FINAL FORM;Lo;0;AL;<final> 0644 062D 0645;;;;N;;;;;
+FD81;ARABIC LIGATURE LAM WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0644 062D 064A;;;;N;;;;;
+FD82;ARABIC LIGATURE LAM WITH HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0644 062D 0649;;;;N;;;;;
+FD83;ARABIC LIGATURE LAM WITH JEEM WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0644 062C 062C;;;;N;;;;;
+FD84;ARABIC LIGATURE LAM WITH JEEM WITH JEEM FINAL FORM;Lo;0;AL;<final> 0644 062C 062C;;;;N;;;;;
+FD85;ARABIC LIGATURE LAM WITH KHAH WITH MEEM FINAL FORM;Lo;0;AL;<final> 0644 062E 0645;;;;N;;;;;
+FD86;ARABIC LIGATURE LAM WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0644 062E 0645;;;;N;;;;;
+FD87;ARABIC LIGATURE LAM WITH MEEM WITH HAH FINAL FORM;Lo;0;AL;<final> 0644 0645 062D;;;;N;;;;;
+FD88;ARABIC LIGATURE LAM WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0644 0645 062D;;;;N;;;;;
+FD89;ARABIC LIGATURE MEEM WITH HAH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0645 062D 062C;;;;N;;;;;
+FD8A;ARABIC LIGATURE MEEM WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0645 062D 0645;;;;N;;;;;
+FD8B;ARABIC LIGATURE MEEM WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0645 062D 064A;;;;N;;;;;
+FD8C;ARABIC LIGATURE MEEM WITH JEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0645 062C 062D;;;;N;;;;;
+FD8D;ARABIC LIGATURE MEEM WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0645 062C 0645;;;;N;;;;;
+FD8E;ARABIC LIGATURE MEEM WITH KHAH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0645 062E 062C;;;;N;;;;;
+FD8F;ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0645 062E 0645;;;;N;;;;;
+FD92;ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0645 062C 062E;;;;N;;;;;
+FD93;ARABIC LIGATURE HEH WITH MEEM WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0647 0645 062C;;;;N;;;;;
+FD94;ARABIC LIGATURE HEH WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0647 0645 0645;;;;N;;;;;
+FD95;ARABIC LIGATURE NOON WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0646 062D 0645;;;;N;;;;;
+FD96;ARABIC LIGATURE NOON WITH HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0646 062D 0649;;;;N;;;;;
+FD97;ARABIC LIGATURE NOON WITH JEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0646 062C 0645;;;;N;;;;;
+FD98;ARABIC LIGATURE NOON WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0646 062C 0645;;;;N;;;;;
+FD99;ARABIC LIGATURE NOON WITH JEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0646 062C 0649;;;;N;;;;;
+FD9A;ARABIC LIGATURE NOON WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0646 0645 064A;;;;N;;;;;
+FD9B;ARABIC LIGATURE NOON WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0646 0645 0649;;;;N;;;;;
+FD9C;ARABIC LIGATURE YEH WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 064A 0645 0645;;;;N;;;;;
+FD9D;ARABIC LIGATURE YEH WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 064A 0645 0645;;;;N;;;;;
+FD9E;ARABIC LIGATURE BEH WITH KHAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0628 062E 064A;;;;N;;;;;
+FD9F;ARABIC LIGATURE TEH WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 062A 062C 064A;;;;N;;;;;
+FDA0;ARABIC LIGATURE TEH WITH JEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062A 062C 0649;;;;N;;;;;
+FDA1;ARABIC LIGATURE TEH WITH KHAH WITH YEH FINAL FORM;Lo;0;AL;<final> 062A 062E 064A;;;;N;;;;;
+FDA2;ARABIC LIGATURE TEH WITH KHAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062A 062E 0649;;;;N;;;;;
+FDA3;ARABIC LIGATURE TEH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 062A 0645 064A;;;;N;;;;;
+FDA4;ARABIC LIGATURE TEH WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062A 0645 0649;;;;N;;;;;
+FDA5;ARABIC LIGATURE JEEM WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 062C 0645 064A;;;;N;;;;;
+FDA6;ARABIC LIGATURE JEEM WITH HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062C 062D 0649;;;;N;;;;;
+FDA7;ARABIC LIGATURE JEEM WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062C 0645 0649;;;;N;;;;;
+FDA8;ARABIC LIGATURE SEEN WITH KHAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0633 062E 0649;;;;N;;;;;
+FDA9;ARABIC LIGATURE SAD WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0635 062D 064A;;;;N;;;;;
+FDAA;ARABIC LIGATURE SHEEN WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0634 062D 064A;;;;N;;;;;
+FDAB;ARABIC LIGATURE DAD WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0636 062D 064A;;;;N;;;;;
+FDAC;ARABIC LIGATURE LAM WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0644 062C 064A;;;;N;;;;;
+FDAD;ARABIC LIGATURE LAM WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0644 0645 064A;;;;N;;;;;
+FDAE;ARABIC LIGATURE YEH WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 064A 062D 064A;;;;N;;;;;
+FDAF;ARABIC LIGATURE YEH WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 064A 062C 064A;;;;N;;;;;
+FDB0;ARABIC LIGATURE YEH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 064A 0645 064A;;;;N;;;;;
+FDB1;ARABIC LIGATURE MEEM WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0645 0645 064A;;;;N;;;;;
+FDB2;ARABIC LIGATURE QAF WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0642 0645 064A;;;;N;;;;;
+FDB3;ARABIC LIGATURE NOON WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0646 062D 064A;;;;N;;;;;
+FDB4;ARABIC LIGATURE QAF WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0642 0645 062D;;;;N;;;;;
+FDB5;ARABIC LIGATURE LAM WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0644 062D 0645;;;;N;;;;;
+FDB6;ARABIC LIGATURE AIN WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0639 0645 064A;;;;N;;;;;
+FDB7;ARABIC LIGATURE KAF WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0643 0645 064A;;;;N;;;;;
+FDB8;ARABIC LIGATURE NOON WITH JEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0646 062C 062D;;;;N;;;;;
+FDB9;ARABIC LIGATURE MEEM WITH KHAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0645 062E 064A;;;;N;;;;;
+FDBA;ARABIC LIGATURE LAM WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0644 062C 0645;;;;N;;;;;
+FDBB;ARABIC LIGATURE KAF WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0643 0645 0645;;;;N;;;;;
+FDBC;ARABIC LIGATURE LAM WITH JEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0644 062C 0645;;;;N;;;;;
+FDBD;ARABIC LIGATURE NOON WITH JEEM WITH HAH FINAL FORM;Lo;0;AL;<final> 0646 062C 062D;;;;N;;;;;
+FDBE;ARABIC LIGATURE JEEM WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 062C 062D 064A;;;;N;;;;;
+FDBF;ARABIC LIGATURE HAH WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 062D 062C 064A;;;;N;;;;;
+FDC0;ARABIC LIGATURE MEEM WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0645 062C 064A;;;;N;;;;;
+FDC1;ARABIC LIGATURE FEH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0641 0645 064A;;;;N;;;;;
+FDC2;ARABIC LIGATURE BEH WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0628 062D 064A;;;;N;;;;;
+FDC3;ARABIC LIGATURE KAF WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0643 0645 0645;;;;N;;;;;
+FDC4;ARABIC LIGATURE AIN WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0639 062C 0645;;;;N;;;;;
+FDC5;ARABIC LIGATURE SAD WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0635 0645 0645;;;;N;;;;;
+FDC6;ARABIC LIGATURE SEEN WITH KHAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0633 062E 064A;;;;N;;;;;
+FDC7;ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0646 062C 064A;;;;N;;;;;
+FDF0;ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM;Lo;0;AL;<isolated> 0635 0644 06D2;;;;N;;;;;
+FDF1;ARABIC LIGATURE QALA USED AS KORANIC STOP SIGN ISOLATED FORM;Lo;0;AL;<isolated> 0642 0644 06D2;;;;N;;;;;
+FDF2;ARABIC LIGATURE ALLAH ISOLATED FORM;Lo;0;AL;<isolated> 0627 0644 0644 0647;;;;N;;;;;
+FDF3;ARABIC LIGATURE AKBAR ISOLATED FORM;Lo;0;AL;<isolated> 0627 0643 0628 0631;;;;N;;;;;
+FDF4;ARABIC LIGATURE MOHAMMAD ISOLATED FORM;Lo;0;AL;<isolated> 0645 062D 0645 062F;;;;N;;;;;
+FDF5;ARABIC LIGATURE SALAM ISOLATED FORM;Lo;0;AL;<isolated> 0635 0644 0639 0645;;;;N;;;;;
+FDF6;ARABIC LIGATURE RASOUL ISOLATED FORM;Lo;0;AL;<isolated> 0631 0633 0648 0644;;;;N;;;;;
+FDF7;ARABIC LIGATURE ALAYHE ISOLATED FORM;Lo;0;AL;<isolated> 0639 0644 064A 0647;;;;N;;;;;
+FDF8;ARABIC LIGATURE WASALLAM ISOLATED FORM;Lo;0;AL;<isolated> 0648 0633 0644 0645;;;;N;;;;;
+FDF9;ARABIC LIGATURE SALLA ISOLATED FORM;Lo;0;AL;<isolated> 0635 0644 0649;;;;N;;;;;
+FDFA;ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM;Lo;0;AL;<isolated> 0635 0644 0649 0020 0627 0644 0644 0647 0020 0639 0644 064A 0647 0020 0648 0633 0644 0645;;;;N;ARABIC LETTER SALLALLAHOU ALAYHE WASALLAM;;;;
+FDFB;ARABIC LIGATURE JALLAJALALOUHOU;Lo;0;AL;<isolated> 062C 0644 0020 062C 0644 0627 0644 0647;;;;N;ARABIC LETTER JALLAJALALOUHOU;;;;
+FDFC;RIAL SIGN;Sc;0;AL;<isolated> 0631 06CC 0627 0644;;;;N;;;;;
+FDFD;ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM;So;0;ON;;;;;N;;;;;
+FE00;VARIATION SELECTOR-1;Mn;0;NSM;;;;;N;;;;;
+FE01;VARIATION SELECTOR-2;Mn;0;NSM;;;;;N;;;;;
+FE02;VARIATION SELECTOR-3;Mn;0;NSM;;;;;N;;;;;
+FE03;VARIATION SELECTOR-4;Mn;0;NSM;;;;;N;;;;;
+FE04;VARIATION SELECTOR-5;Mn;0;NSM;;;;;N;;;;;
+FE05;VARIATION SELECTOR-6;Mn;0;NSM;;;;;N;;;;;
+FE06;VARIATION SELECTOR-7;Mn;0;NSM;;;;;N;;;;;
+FE07;VARIATION SELECTOR-8;Mn;0;NSM;;;;;N;;;;;
+FE08;VARIATION SELECTOR-9;Mn;0;NSM;;;;;N;;;;;
+FE09;VARIATION SELECTOR-10;Mn;0;NSM;;;;;N;;;;;
+FE0A;VARIATION SELECTOR-11;Mn;0;NSM;;;;;N;;;;;
+FE0B;VARIATION SELECTOR-12;Mn;0;NSM;;;;;N;;;;;
+FE0C;VARIATION SELECTOR-13;Mn;0;NSM;;;;;N;;;;;
+FE0D;VARIATION SELECTOR-14;Mn;0;NSM;;;;;N;;;;;
+FE0E;VARIATION SELECTOR-15;Mn;0;NSM;;;;;N;;;;;
+FE0F;VARIATION SELECTOR-16;Mn;0;NSM;;;;;N;;;;;
+FE10;PRESENTATION FORM FOR VERTICAL COMMA;Po;0;ON;<vertical> 002C;;;;N;;;;;
+FE11;PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC COMMA;Po;0;ON;<vertical> 3001;;;;N;;;;;
+FE12;PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC FULL STOP;Po;0;ON;<vertical> 3002;;;;N;;;;;
+FE13;PRESENTATION FORM FOR VERTICAL COLON;Po;0;ON;<vertical> 003A;;;;N;;;;;
+FE14;PRESENTATION FORM FOR VERTICAL SEMICOLON;Po;0;ON;<vertical> 003B;;;;N;;;;;
+FE15;PRESENTATION FORM FOR VERTICAL EXCLAMATION MARK;Po;0;ON;<vertical> 0021;;;;N;;;;;
+FE16;PRESENTATION FORM FOR VERTICAL QUESTION MARK;Po;0;ON;<vertical> 003F;;;;N;;;;;
+FE17;PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET;Ps;0;ON;<vertical> 3016;;;;N;;;;;
+FE18;PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET;Pe;0;ON;<vertical> 3017;;;;N;;;;;
+FE19;PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS;Po;0;ON;<vertical> 2026;;;;N;;;;;
+FE20;COMBINING LIGATURE LEFT HALF;Mn;230;NSM;;;;;N;;;;;
+FE21;COMBINING LIGATURE RIGHT HALF;Mn;230;NSM;;;;;N;;;;;
+FE22;COMBINING DOUBLE TILDE LEFT HALF;Mn;230;NSM;;;;;N;;;;;
+FE23;COMBINING DOUBLE TILDE RIGHT HALF;Mn;230;NSM;;;;;N;;;;;
+FE30;PRESENTATION FORM FOR VERTICAL TWO DOT LEADER;Po;0;ON;<vertical> 2025;;;;N;GLYPH FOR VERTICAL TWO DOT LEADER;;;;
+FE31;PRESENTATION FORM FOR VERTICAL EM DASH;Pd;0;ON;<vertical> 2014;;;;N;GLYPH FOR VERTICAL EM DASH;;;;
+FE32;PRESENTATION FORM FOR VERTICAL EN DASH;Pd;0;ON;<vertical> 2013;;;;N;GLYPH FOR VERTICAL EN DASH;;;;
+FE33;PRESENTATION FORM FOR VERTICAL LOW LINE;Pc;0;ON;<vertical> 005F;;;;N;GLYPH FOR VERTICAL SPACING UNDERSCORE;;;;
+FE34;PRESENTATION FORM FOR VERTICAL WAVY LOW LINE;Pc;0;ON;<vertical> 005F;;;;N;GLYPH FOR VERTICAL SPACING WAVY UNDERSCORE;;;;
+FE35;PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS;Ps;0;ON;<vertical> 0028;;;;N;GLYPH FOR VERTICAL OPENING PARENTHESIS;;;;
+FE36;PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS;Pe;0;ON;<vertical> 0029;;;;N;GLYPH FOR VERTICAL CLOSING PARENTHESIS;;;;
+FE37;PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET;Ps;0;ON;<vertical> 007B;;;;N;GLYPH FOR VERTICAL OPENING CURLY BRACKET;;;;
+FE38;PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET;Pe;0;ON;<vertical> 007D;;;;N;GLYPH FOR VERTICAL CLOSING CURLY BRACKET;;;;
+FE39;PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET;Ps;0;ON;<vertical> 3014;;;;N;GLYPH FOR VERTICAL OPENING TORTOISE SHELL BRACKET;;;;
+FE3A;PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET;Pe;0;ON;<vertical> 3015;;;;N;GLYPH FOR VERTICAL CLOSING TORTOISE SHELL BRACKET;;;;
+FE3B;PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET;Ps;0;ON;<vertical> 3010;;;;N;GLYPH FOR VERTICAL OPENING BLACK LENTICULAR BRACKET;;;;
+FE3C;PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET;Pe;0;ON;<vertical> 3011;;;;N;GLYPH FOR VERTICAL CLOSING BLACK LENTICULAR BRACKET;;;;
+FE3D;PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET;Ps;0;ON;<vertical> 300A;;;;N;GLYPH FOR VERTICAL OPENING DOUBLE ANGLE BRACKET;;;;
+FE3E;PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET;Pe;0;ON;<vertical> 300B;;;;N;GLYPH FOR VERTICAL CLOSING DOUBLE ANGLE BRACKET;;;;
+FE3F;PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET;Ps;0;ON;<vertical> 3008;;;;N;GLYPH FOR VERTICAL OPENING ANGLE BRACKET;;;;
+FE40;PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET;Pe;0;ON;<vertical> 3009;;;;N;GLYPH FOR VERTICAL CLOSING ANGLE BRACKET;;;;
+FE41;PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET;Ps;0;ON;<vertical> 300C;;;;N;GLYPH FOR VERTICAL OPENING CORNER BRACKET;;;;
+FE42;PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET;Pe;0;ON;<vertical> 300D;;;;N;GLYPH FOR VERTICAL CLOSING CORNER BRACKET;;;;
+FE43;PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET;Ps;0;ON;<vertical> 300E;;;;N;GLYPH FOR VERTICAL OPENING WHITE CORNER BRACKET;;;;
+FE44;PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET;Pe;0;ON;<vertical> 300F;;;;N;GLYPH FOR VERTICAL CLOSING WHITE CORNER BRACKET;;;;
+FE45;SESAME DOT;Po;0;ON;;;;;N;;;;;
+FE46;WHITE SESAME DOT;Po;0;ON;;;;;N;;;;;
+FE47;PRESENTATION FORM FOR VERTICAL LEFT SQUARE BRACKET;Ps;0;ON;<vertical> 005B;;;;N;;;;;
+FE48;PRESENTATION FORM FOR VERTICAL RIGHT SQUARE BRACKET;Pe;0;ON;<vertical> 005D;;;;N;;;;;
+FE49;DASHED OVERLINE;Po;0;ON;<compat> 203E;;;;N;SPACING DASHED OVERSCORE;;;;
+FE4A;CENTRELINE OVERLINE;Po;0;ON;<compat> 203E;;;;N;SPACING CENTERLINE OVERSCORE;;;;
+FE4B;WAVY OVERLINE;Po;0;ON;<compat> 203E;;;;N;SPACING WAVY OVERSCORE;;;;
+FE4C;DOUBLE WAVY OVERLINE;Po;0;ON;<compat> 203E;;;;N;SPACING DOUBLE WAVY OVERSCORE;;;;
+FE4D;DASHED LOW LINE;Pc;0;ON;<compat> 005F;;;;N;SPACING DASHED UNDERSCORE;;;;
+FE4E;CENTRELINE LOW LINE;Pc;0;ON;<compat> 005F;;;;N;SPACING CENTERLINE UNDERSCORE;;;;
+FE4F;WAVY LOW LINE;Pc;0;ON;<compat> 005F;;;;N;SPACING WAVY UNDERSCORE;;;;
+FE50;SMALL COMMA;Po;0;CS;<small> 002C;;;;N;;;;;
+FE51;SMALL IDEOGRAPHIC COMMA;Po;0;ON;<small> 3001;;;;N;;;;;
+FE52;SMALL FULL STOP;Po;0;CS;<small> 002E;;;;N;SMALL PERIOD;;;;
+FE54;SMALL SEMICOLON;Po;0;ON;<small> 003B;;;;N;;;;;
+FE55;SMALL COLON;Po;0;CS;<small> 003A;;;;N;;;;;
+FE56;SMALL QUESTION MARK;Po;0;ON;<small> 003F;;;;N;;;;;
+FE57;SMALL EXCLAMATION MARK;Po;0;ON;<small> 0021;;;;N;;;;;
+FE58;SMALL EM DASH;Pd;0;ON;<small> 2014;;;;N;;;;;
+FE59;SMALL LEFT PARENTHESIS;Ps;0;ON;<small> 0028;;;;Y;SMALL OPENING PARENTHESIS;;;;
+FE5A;SMALL RIGHT PARENTHESIS;Pe;0;ON;<small> 0029;;;;Y;SMALL CLOSING PARENTHESIS;;;;
+FE5B;SMALL LEFT CURLY BRACKET;Ps;0;ON;<small> 007B;;;;Y;SMALL OPENING CURLY BRACKET;;;;
+FE5C;SMALL RIGHT CURLY BRACKET;Pe;0;ON;<small> 007D;;;;Y;SMALL CLOSING CURLY BRACKET;;;;
+FE5D;SMALL LEFT TORTOISE SHELL BRACKET;Ps;0;ON;<small> 3014;;;;Y;SMALL OPENING TORTOISE SHELL BRACKET;;;;
+FE5E;SMALL RIGHT TORTOISE SHELL BRACKET;Pe;0;ON;<small> 3015;;;;Y;SMALL CLOSING TORTOISE SHELL BRACKET;;;;
+FE5F;SMALL NUMBER SIGN;Po;0;ET;<small> 0023;;;;N;;;;;
+FE60;SMALL AMPERSAND;Po;0;ON;<small> 0026;;;;N;;;;;
+FE61;SMALL ASTERISK;Po;0;ON;<small> 002A;;;;N;;;;;
+FE62;SMALL PLUS SIGN;Sm;0;ES;<small> 002B;;;;N;;;;;
+FE63;SMALL HYPHEN-MINUS;Pd;0;ES;<small> 002D;;;;N;;;;;
+FE64;SMALL LESS-THAN SIGN;Sm;0;ON;<small> 003C;;;;Y;;;;;
+FE65;SMALL GREATER-THAN SIGN;Sm;0;ON;<small> 003E;;;;Y;;;;;
+FE66;SMALL EQUALS SIGN;Sm;0;ON;<small> 003D;;;;N;;;;;
+FE68;SMALL REVERSE SOLIDUS;Po;0;ON;<small> 005C;;;;N;SMALL BACKSLASH;;;;
+FE69;SMALL DOLLAR SIGN;Sc;0;ET;<small> 0024;;;;N;;;;;
+FE6A;SMALL PERCENT SIGN;Po;0;ET;<small> 0025;;;;N;;;;;
+FE6B;SMALL COMMERCIAL AT;Po;0;ON;<small> 0040;;;;N;;;;;
+FE70;ARABIC FATHATAN ISOLATED FORM;Lo;0;AL;<isolated> 0020 064B;;;;N;ARABIC SPACING FATHATAN;;;;
+FE71;ARABIC TATWEEL WITH FATHATAN ABOVE;Lo;0;AL;<medial> 0640 064B;;;;N;ARABIC FATHATAN ON TATWEEL;;;;
+FE72;ARABIC DAMMATAN ISOLATED FORM;Lo;0;AL;<isolated> 0020 064C;;;;N;ARABIC SPACING DAMMATAN;;;;
+FE73;ARABIC TAIL FRAGMENT;Lo;0;AL;;;;;N;;;;;
+FE74;ARABIC KASRATAN ISOLATED FORM;Lo;0;AL;<isolated> 0020 064D;;;;N;ARABIC SPACING KASRATAN;;;;
+FE76;ARABIC FATHA ISOLATED FORM;Lo;0;AL;<isolated> 0020 064E;;;;N;ARABIC SPACING FATHAH;;;;
+FE77;ARABIC FATHA MEDIAL FORM;Lo;0;AL;<medial> 0640 064E;;;;N;ARABIC FATHAH ON TATWEEL;;;;
+FE78;ARABIC DAMMA ISOLATED FORM;Lo;0;AL;<isolated> 0020 064F;;;;N;ARABIC SPACING DAMMAH;;;;
+FE79;ARABIC DAMMA MEDIAL FORM;Lo;0;AL;<medial> 0640 064F;;;;N;ARABIC DAMMAH ON TATWEEL;;;;
+FE7A;ARABIC KASRA ISOLATED FORM;Lo;0;AL;<isolated> 0020 0650;;;;N;ARABIC SPACING KASRAH;;;;
+FE7B;ARABIC KASRA MEDIAL FORM;Lo;0;AL;<medial> 0640 0650;;;;N;ARABIC KASRAH ON TATWEEL;;;;
+FE7C;ARABIC SHADDA ISOLATED FORM;Lo;0;AL;<isolated> 0020 0651;;;;N;ARABIC SPACING SHADDAH;;;;
+FE7D;ARABIC SHADDA MEDIAL FORM;Lo;0;AL;<medial> 0640 0651;;;;N;ARABIC SHADDAH ON TATWEEL;;;;
+FE7E;ARABIC SUKUN ISOLATED FORM;Lo;0;AL;<isolated> 0020 0652;;;;N;ARABIC SPACING SUKUN;;;;
+FE7F;ARABIC SUKUN MEDIAL FORM;Lo;0;AL;<medial> 0640 0652;;;;N;ARABIC SUKUN ON TATWEEL;;;;
+FE80;ARABIC LETTER HAMZA ISOLATED FORM;Lo;0;AL;<isolated> 0621;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH;;;;
+FE81;ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 0622;;;;N;GLYPH FOR ISOLATE ARABIC MADDAH ON ALEF;;;;
+FE82;ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM;Lo;0;AL;<final> 0622;;;;N;GLYPH FOR FINAL ARABIC MADDAH ON ALEF;;;;
+FE83;ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 0623;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH ON ALEF;;;;
+FE84;ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM;Lo;0;AL;<final> 0623;;;;N;GLYPH FOR FINAL ARABIC HAMZAH ON ALEF;;;;
+FE85;ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 0624;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH ON WAW;;;;
+FE86;ARABIC LETTER WAW WITH HAMZA ABOVE FINAL FORM;Lo;0;AL;<final> 0624;;;;N;GLYPH FOR FINAL ARABIC HAMZAH ON WAW;;;;
+FE87;ARABIC LETTER ALEF WITH HAMZA BELOW ISOLATED FORM;Lo;0;AL;<isolated> 0625;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH UNDER ALEF;;;;
+FE88;ARABIC LETTER ALEF WITH HAMZA BELOW FINAL FORM;Lo;0;AL;<final> 0625;;;;N;GLYPH FOR FINAL ARABIC HAMZAH UNDER ALEF;;;;
+FE89;ARABIC LETTER YEH WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 0626;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH ON YA;;;;
+FE8A;ARABIC LETTER YEH WITH HAMZA ABOVE FINAL FORM;Lo;0;AL;<final> 0626;;;;N;GLYPH FOR FINAL ARABIC HAMZAH ON YA;;;;
+FE8B;ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM;Lo;0;AL;<initial> 0626;;;;N;GLYPH FOR INITIAL ARABIC HAMZAH ON YA;;;;
+FE8C;ARABIC LETTER YEH WITH HAMZA ABOVE MEDIAL FORM;Lo;0;AL;<medial> 0626;;;;N;GLYPH FOR MEDIAL ARABIC HAMZAH ON YA;;;;
+FE8D;ARABIC LETTER ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0627;;;;N;GLYPH FOR ISOLATE ARABIC ALEF;;;;
+FE8E;ARABIC LETTER ALEF FINAL FORM;Lo;0;AL;<final> 0627;;;;N;GLYPH FOR FINAL ARABIC ALEF;;;;
+FE8F;ARABIC LETTER BEH ISOLATED FORM;Lo;0;AL;<isolated> 0628;;;;N;GLYPH FOR ISOLATE ARABIC BAA;;;;
+FE90;ARABIC LETTER BEH FINAL FORM;Lo;0;AL;<final> 0628;;;;N;GLYPH FOR FINAL ARABIC BAA;;;;
+FE91;ARABIC LETTER BEH INITIAL FORM;Lo;0;AL;<initial> 0628;;;;N;GLYPH FOR INITIAL ARABIC BAA;;;;
+FE92;ARABIC LETTER BEH MEDIAL FORM;Lo;0;AL;<medial> 0628;;;;N;GLYPH FOR MEDIAL ARABIC BAA;;;;
+FE93;ARABIC LETTER TEH MARBUTA ISOLATED FORM;Lo;0;AL;<isolated> 0629;;;;N;GLYPH FOR ISOLATE ARABIC TAA MARBUTAH;;;;
+FE94;ARABIC LETTER TEH MARBUTA FINAL FORM;Lo;0;AL;<final> 0629;;;;N;GLYPH FOR FINAL ARABIC TAA MARBUTAH;;;;
+FE95;ARABIC LETTER TEH ISOLATED FORM;Lo;0;AL;<isolated> 062A;;;;N;GLYPH FOR ISOLATE ARABIC TAA;;;;
+FE96;ARABIC LETTER TEH FINAL FORM;Lo;0;AL;<final> 062A;;;;N;GLYPH FOR FINAL ARABIC TAA;;;;
+FE97;ARABIC LETTER TEH INITIAL FORM;Lo;0;AL;<initial> 062A;;;;N;GLYPH FOR INITIAL ARABIC TAA;;;;
+FE98;ARABIC LETTER TEH MEDIAL FORM;Lo;0;AL;<medial> 062A;;;;N;GLYPH FOR MEDIAL ARABIC TAA;;;;
+FE99;ARABIC LETTER THEH ISOLATED FORM;Lo;0;AL;<isolated> 062B;;;;N;GLYPH FOR ISOLATE ARABIC THAA;;;;
+FE9A;ARABIC LETTER THEH FINAL FORM;Lo;0;AL;<final> 062B;;;;N;GLYPH FOR FINAL ARABIC THAA;;;;
+FE9B;ARABIC LETTER THEH INITIAL FORM;Lo;0;AL;<initial> 062B;;;;N;GLYPH FOR INITIAL ARABIC THAA;;;;
+FE9C;ARABIC LETTER THEH MEDIAL FORM;Lo;0;AL;<medial> 062B;;;;N;GLYPH FOR MEDIAL ARABIC THAA;;;;
+FE9D;ARABIC LETTER JEEM ISOLATED FORM;Lo;0;AL;<isolated> 062C;;;;N;GLYPH FOR ISOLATE ARABIC JEEM;;;;
+FE9E;ARABIC LETTER JEEM FINAL FORM;Lo;0;AL;<final> 062C;;;;N;GLYPH FOR FINAL ARABIC JEEM;;;;
+FE9F;ARABIC LETTER JEEM INITIAL FORM;Lo;0;AL;<initial> 062C;;;;N;GLYPH FOR INITIAL ARABIC JEEM;;;;
+FEA0;ARABIC LETTER JEEM MEDIAL FORM;Lo;0;AL;<medial> 062C;;;;N;GLYPH FOR MEDIAL ARABIC JEEM;;;;
+FEA1;ARABIC LETTER HAH ISOLATED FORM;Lo;0;AL;<isolated> 062D;;;;N;GLYPH FOR ISOLATE ARABIC HAA;;;;
+FEA2;ARABIC LETTER HAH FINAL FORM;Lo;0;AL;<final> 062D;;;;N;GLYPH FOR FINAL ARABIC HAA;;;;
+FEA3;ARABIC LETTER HAH INITIAL FORM;Lo;0;AL;<initial> 062D;;;;N;GLYPH FOR INITIAL ARABIC HAA;;;;
+FEA4;ARABIC LETTER HAH MEDIAL FORM;Lo;0;AL;<medial> 062D;;;;N;GLYPH FOR MEDIAL ARABIC HAA;;;;
+FEA5;ARABIC LETTER KHAH ISOLATED FORM;Lo;0;AL;<isolated> 062E;;;;N;GLYPH FOR ISOLATE ARABIC KHAA;;;;
+FEA6;ARABIC LETTER KHAH FINAL FORM;Lo;0;AL;<final> 062E;;;;N;GLYPH FOR FINAL ARABIC KHAA;;;;
+FEA7;ARABIC LETTER KHAH INITIAL FORM;Lo;0;AL;<initial> 062E;;;;N;GLYPH FOR INITIAL ARABIC KHAA;;;;
+FEA8;ARABIC LETTER KHAH MEDIAL FORM;Lo;0;AL;<medial> 062E;;;;N;GLYPH FOR MEDIAL ARABIC KHAA;;;;
+FEA9;ARABIC LETTER DAL ISOLATED FORM;Lo;0;AL;<isolated> 062F;;;;N;GLYPH FOR ISOLATE ARABIC DAL;;;;
+FEAA;ARABIC LETTER DAL FINAL FORM;Lo;0;AL;<final> 062F;;;;N;GLYPH FOR FINAL ARABIC DAL;;;;
+FEAB;ARABIC LETTER THAL ISOLATED FORM;Lo;0;AL;<isolated> 0630;;;;N;GLYPH FOR ISOLATE ARABIC THAL;;;;
+FEAC;ARABIC LETTER THAL FINAL FORM;Lo;0;AL;<final> 0630;;;;N;GLYPH FOR FINAL ARABIC THAL;;;;
+FEAD;ARABIC LETTER REH ISOLATED FORM;Lo;0;AL;<isolated> 0631;;;;N;GLYPH FOR ISOLATE ARABIC RA;;;;
+FEAE;ARABIC LETTER REH FINAL FORM;Lo;0;AL;<final> 0631;;;;N;GLYPH FOR FINAL ARABIC RA;;;;
+FEAF;ARABIC LETTER ZAIN ISOLATED FORM;Lo;0;AL;<isolated> 0632;;;;N;GLYPH FOR ISOLATE ARABIC ZAIN;;;;
+FEB0;ARABIC LETTER ZAIN FINAL FORM;Lo;0;AL;<final> 0632;;;;N;GLYPH FOR FINAL ARABIC ZAIN;;;;
+FEB1;ARABIC LETTER SEEN ISOLATED FORM;Lo;0;AL;<isolated> 0633;;;;N;GLYPH FOR ISOLATE ARABIC SEEN;;;;
+FEB2;ARABIC LETTER SEEN FINAL FORM;Lo;0;AL;<final> 0633;;;;N;GLYPH FOR FINAL ARABIC SEEN;;;;
+FEB3;ARABIC LETTER SEEN INITIAL FORM;Lo;0;AL;<initial> 0633;;;;N;GLYPH FOR INITIAL ARABIC SEEN;;;;
+FEB4;ARABIC LETTER SEEN MEDIAL FORM;Lo;0;AL;<medial> 0633;;;;N;GLYPH FOR MEDIAL ARABIC SEEN;;;;
+FEB5;ARABIC LETTER SHEEN ISOLATED FORM;Lo;0;AL;<isolated> 0634;;;;N;GLYPH FOR ISOLATE ARABIC SHEEN;;;;
+FEB6;ARABIC LETTER SHEEN FINAL FORM;Lo;0;AL;<final> 0634;;;;N;GLYPH FOR FINAL ARABIC SHEEN;;;;
+FEB7;ARABIC LETTER SHEEN INITIAL FORM;Lo;0;AL;<initial> 0634;;;;N;GLYPH FOR INITIAL ARABIC SHEEN;;;;
+FEB8;ARABIC LETTER SHEEN MEDIAL FORM;Lo;0;AL;<medial> 0634;;;;N;GLYPH FOR MEDIAL ARABIC SHEEN;;;;
+FEB9;ARABIC LETTER SAD ISOLATED FORM;Lo;0;AL;<isolated> 0635;;;;N;GLYPH FOR ISOLATE ARABIC SAD;;;;
+FEBA;ARABIC LETTER SAD FINAL FORM;Lo;0;AL;<final> 0635;;;;N;GLYPH FOR FINAL ARABIC SAD;;;;
+FEBB;ARABIC LETTER SAD INITIAL FORM;Lo;0;AL;<initial> 0635;;;;N;GLYPH FOR INITIAL ARABIC SAD;;;;
+FEBC;ARABIC LETTER SAD MEDIAL FORM;Lo;0;AL;<medial> 0635;;;;N;GLYPH FOR MEDIAL ARABIC SAD;;;;
+FEBD;ARABIC LETTER DAD ISOLATED FORM;Lo;0;AL;<isolated> 0636;;;;N;GLYPH FOR ISOLATE ARABIC DAD;;;;
+FEBE;ARABIC LETTER DAD FINAL FORM;Lo;0;AL;<final> 0636;;;;N;GLYPH FOR FINAL ARABIC DAD;;;;
+FEBF;ARABIC LETTER DAD INITIAL FORM;Lo;0;AL;<initial> 0636;;;;N;GLYPH FOR INITIAL ARABIC DAD;;;;
+FEC0;ARABIC LETTER DAD MEDIAL FORM;Lo;0;AL;<medial> 0636;;;;N;GLYPH FOR MEDIAL ARABIC DAD;;;;
+FEC1;ARABIC LETTER TAH ISOLATED FORM;Lo;0;AL;<isolated> 0637;;;;N;GLYPH FOR ISOLATE ARABIC TAH;;;;
+FEC2;ARABIC LETTER TAH FINAL FORM;Lo;0;AL;<final> 0637;;;;N;GLYPH FOR FINAL ARABIC TAH;;;;
+FEC3;ARABIC LETTER TAH INITIAL FORM;Lo;0;AL;<initial> 0637;;;;N;GLYPH FOR INITIAL ARABIC TAH;;;;
+FEC4;ARABIC LETTER TAH MEDIAL FORM;Lo;0;AL;<medial> 0637;;;;N;GLYPH FOR MEDIAL ARABIC TAH;;;;
+FEC5;ARABIC LETTER ZAH ISOLATED FORM;Lo;0;AL;<isolated> 0638;;;;N;GLYPH FOR ISOLATE ARABIC DHAH;;;;
+FEC6;ARABIC LETTER ZAH FINAL FORM;Lo;0;AL;<final> 0638;;;;N;GLYPH FOR FINAL ARABIC DHAH;;;;
+FEC7;ARABIC LETTER ZAH INITIAL FORM;Lo;0;AL;<initial> 0638;;;;N;GLYPH FOR INITIAL ARABIC DHAH;;;;
+FEC8;ARABIC LETTER ZAH MEDIAL FORM;Lo;0;AL;<medial> 0638;;;;N;GLYPH FOR MEDIAL ARABIC DHAH;;;;
+FEC9;ARABIC LETTER AIN ISOLATED FORM;Lo;0;AL;<isolated> 0639;;;;N;GLYPH FOR ISOLATE ARABIC AIN;;;;
+FECA;ARABIC LETTER AIN FINAL FORM;Lo;0;AL;<final> 0639;;;;N;GLYPH FOR FINAL ARABIC AIN;;;;
+FECB;ARABIC LETTER AIN INITIAL FORM;Lo;0;AL;<initial> 0639;;;;N;GLYPH FOR INITIAL ARABIC AIN;;;;
+FECC;ARABIC LETTER AIN MEDIAL FORM;Lo;0;AL;<medial> 0639;;;;N;GLYPH FOR MEDIAL ARABIC AIN;;;;
+FECD;ARABIC LETTER GHAIN ISOLATED FORM;Lo;0;AL;<isolated> 063A;;;;N;GLYPH FOR ISOLATE ARABIC GHAIN;;;;
+FECE;ARABIC LETTER GHAIN FINAL FORM;Lo;0;AL;<final> 063A;;;;N;GLYPH FOR FINAL ARABIC GHAIN;;;;
+FECF;ARABIC LETTER GHAIN INITIAL FORM;Lo;0;AL;<initial> 063A;;;;N;GLYPH FOR INITIAL ARABIC GHAIN;;;;
+FED0;ARABIC LETTER GHAIN MEDIAL FORM;Lo;0;AL;<medial> 063A;;;;N;GLYPH FOR MEDIAL ARABIC GHAIN;;;;
+FED1;ARABIC LETTER FEH ISOLATED FORM;Lo;0;AL;<isolated> 0641;;;;N;GLYPH FOR ISOLATE ARABIC FA;;;;
+FED2;ARABIC LETTER FEH FINAL FORM;Lo;0;AL;<final> 0641;;;;N;GLYPH FOR FINAL ARABIC FA;;;;
+FED3;ARABIC LETTER FEH INITIAL FORM;Lo;0;AL;<initial> 0641;;;;N;GLYPH FOR INITIAL ARABIC FA;;;;
+FED4;ARABIC LETTER FEH MEDIAL FORM;Lo;0;AL;<medial> 0641;;;;N;GLYPH FOR MEDIAL ARABIC FA;;;;
+FED5;ARABIC LETTER QAF ISOLATED FORM;Lo;0;AL;<isolated> 0642;;;;N;GLYPH FOR ISOLATE ARABIC QAF;;;;
+FED6;ARABIC LETTER QAF FINAL FORM;Lo;0;AL;<final> 0642;;;;N;GLYPH FOR FINAL ARABIC QAF;;;;
+FED7;ARABIC LETTER QAF INITIAL FORM;Lo;0;AL;<initial> 0642;;;;N;GLYPH FOR INITIAL ARABIC QAF;;;;
+FED8;ARABIC LETTER QAF MEDIAL FORM;Lo;0;AL;<medial> 0642;;;;N;GLYPH FOR MEDIAL ARABIC QAF;;;;
+FED9;ARABIC LETTER KAF ISOLATED FORM;Lo;0;AL;<isolated> 0643;;;;N;GLYPH FOR ISOLATE ARABIC CAF;;;;
+FEDA;ARABIC LETTER KAF FINAL FORM;Lo;0;AL;<final> 0643;;;;N;GLYPH FOR FINAL ARABIC CAF;;;;
+FEDB;ARABIC LETTER KAF INITIAL FORM;Lo;0;AL;<initial> 0643;;;;N;GLYPH FOR INITIAL ARABIC CAF;;;;
+FEDC;ARABIC LETTER KAF MEDIAL FORM;Lo;0;AL;<medial> 0643;;;;N;GLYPH FOR MEDIAL ARABIC CAF;;;;
+FEDD;ARABIC LETTER LAM ISOLATED FORM;Lo;0;AL;<isolated> 0644;;;;N;GLYPH FOR ISOLATE ARABIC LAM;;;;
+FEDE;ARABIC LETTER LAM FINAL FORM;Lo;0;AL;<final> 0644;;;;N;GLYPH FOR FINAL ARABIC LAM;;;;
+FEDF;ARABIC LETTER LAM INITIAL FORM;Lo;0;AL;<initial> 0644;;;;N;GLYPH FOR INITIAL ARABIC LAM;;;;
+FEE0;ARABIC LETTER LAM MEDIAL FORM;Lo;0;AL;<medial> 0644;;;;N;GLYPH FOR MEDIAL ARABIC LAM;;;;
+FEE1;ARABIC LETTER MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0645;;;;N;GLYPH FOR ISOLATE ARABIC MEEM;;;;
+FEE2;ARABIC LETTER MEEM FINAL FORM;Lo;0;AL;<final> 0645;;;;N;GLYPH FOR FINAL ARABIC MEEM;;;;
+FEE3;ARABIC LETTER MEEM INITIAL FORM;Lo;0;AL;<initial> 0645;;;;N;GLYPH FOR INITIAL ARABIC MEEM;;;;
+FEE4;ARABIC LETTER MEEM MEDIAL FORM;Lo;0;AL;<medial> 0645;;;;N;GLYPH FOR MEDIAL ARABIC MEEM;;;;
+FEE5;ARABIC LETTER NOON ISOLATED FORM;Lo;0;AL;<isolated> 0646;;;;N;GLYPH FOR ISOLATE ARABIC NOON;;;;
+FEE6;ARABIC LETTER NOON FINAL FORM;Lo;0;AL;<final> 0646;;;;N;GLYPH FOR FINAL ARABIC NOON;;;;
+FEE7;ARABIC LETTER NOON INITIAL FORM;Lo;0;AL;<initial> 0646;;;;N;GLYPH FOR INITIAL ARABIC NOON;;;;
+FEE8;ARABIC LETTER NOON MEDIAL FORM;Lo;0;AL;<medial> 0646;;;;N;GLYPH FOR MEDIAL ARABIC NOON;;;;
+FEE9;ARABIC LETTER HEH ISOLATED FORM;Lo;0;AL;<isolated> 0647;;;;N;GLYPH FOR ISOLATE ARABIC HA;;;;
+FEEA;ARABIC LETTER HEH FINAL FORM;Lo;0;AL;<final> 0647;;;;N;GLYPH FOR FINAL ARABIC HA;;;;
+FEEB;ARABIC LETTER HEH INITIAL FORM;Lo;0;AL;<initial> 0647;;;;N;GLYPH FOR INITIAL ARABIC HA;;;;
+FEEC;ARABIC LETTER HEH MEDIAL FORM;Lo;0;AL;<medial> 0647;;;;N;GLYPH FOR MEDIAL ARABIC HA;;;;
+FEED;ARABIC LETTER WAW ISOLATED FORM;Lo;0;AL;<isolated> 0648;;;;N;GLYPH FOR ISOLATE ARABIC WAW;;;;
+FEEE;ARABIC LETTER WAW FINAL FORM;Lo;0;AL;<final> 0648;;;;N;GLYPH FOR FINAL ARABIC WAW;;;;
+FEEF;ARABIC LETTER ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0649;;;;N;GLYPH FOR ISOLATE ARABIC ALEF MAQSURAH;;;;
+FEF0;ARABIC LETTER ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0649;;;;N;GLYPH FOR FINAL ARABIC ALEF MAQSURAH;;;;
+FEF1;ARABIC LETTER YEH ISOLATED FORM;Lo;0;AL;<isolated> 064A;;;;N;GLYPH FOR ISOLATE ARABIC YA;;;;
+FEF2;ARABIC LETTER YEH FINAL FORM;Lo;0;AL;<final> 064A;;;;N;GLYPH FOR FINAL ARABIC YA;;;;
+FEF3;ARABIC LETTER YEH INITIAL FORM;Lo;0;AL;<initial> 064A;;;;N;GLYPH FOR INITIAL ARABIC YA;;;;
+FEF4;ARABIC LETTER YEH MEDIAL FORM;Lo;0;AL;<medial> 064A;;;;N;GLYPH FOR MEDIAL ARABIC YA;;;;
+FEF5;ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 0644 0622;;;;N;GLYPH FOR ISOLATE ARABIC MADDAH ON LIGATURE LAM ALEF;;;;
+FEF6;ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM;Lo;0;AL;<final> 0644 0622;;;;N;GLYPH FOR FINAL ARABIC MADDAH ON LIGATURE LAM ALEF;;;;
+FEF7;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 0644 0623;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH ON LIGATURE LAM ALEF;;;;
+FEF8;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM;Lo;0;AL;<final> 0644 0623;;;;N;GLYPH FOR FINAL ARABIC HAMZAH ON LIGATURE LAM ALEF;;;;
+FEF9;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM;Lo;0;AL;<isolated> 0644 0625;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH UNDER LIGATURE LAM ALEF;;;;
+FEFA;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM;Lo;0;AL;<final> 0644 0625;;;;N;GLYPH FOR FINAL ARABIC HAMZAH UNDER LIGATURE LAM ALEF;;;;
+FEFB;ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0644 0627;;;;N;GLYPH FOR ISOLATE ARABIC LIGATURE LAM ALEF;;;;
+FEFC;ARABIC LIGATURE LAM WITH ALEF FINAL FORM;Lo;0;AL;<final> 0644 0627;;;;N;GLYPH FOR FINAL ARABIC LIGATURE LAM ALEF;;;;
+FEFF;ZERO WIDTH NO-BREAK SPACE;Cf;0;BN;;;;;N;BYTE ORDER MARK;;;;
+FF01;FULLWIDTH EXCLAMATION MARK;Po;0;ON;<wide> 0021;;;;N;;;;;
+FF02;FULLWIDTH QUOTATION MARK;Po;0;ON;<wide> 0022;;;;N;;;;;
+FF03;FULLWIDTH NUMBER SIGN;Po;0;ET;<wide> 0023;;;;N;;;;;
+FF04;FULLWIDTH DOLLAR SIGN;Sc;0;ET;<wide> 0024;;;;N;;;;;
+FF05;FULLWIDTH PERCENT SIGN;Po;0;ET;<wide> 0025;;;;N;;;;;
+FF06;FULLWIDTH AMPERSAND;Po;0;ON;<wide> 0026;;;;N;;;;;
+FF07;FULLWIDTH APOSTROPHE;Po;0;ON;<wide> 0027;;;;N;;;;;
+FF08;FULLWIDTH LEFT PARENTHESIS;Ps;0;ON;<wide> 0028;;;;Y;FULLWIDTH OPENING PARENTHESIS;;;;
+FF09;FULLWIDTH RIGHT PARENTHESIS;Pe;0;ON;<wide> 0029;;;;Y;FULLWIDTH CLOSING PARENTHESIS;;;;
+FF0A;FULLWIDTH ASTERISK;Po;0;ON;<wide> 002A;;;;N;;;;;
+FF0B;FULLWIDTH PLUS SIGN;Sm;0;ES;<wide> 002B;;;;N;;;;;
+FF0C;FULLWIDTH COMMA;Po;0;CS;<wide> 002C;;;;N;;;;;
+FF0D;FULLWIDTH HYPHEN-MINUS;Pd;0;ES;<wide> 002D;;;;N;;;;;
+FF0E;FULLWIDTH FULL STOP;Po;0;CS;<wide> 002E;;;;N;FULLWIDTH PERIOD;;;;
+FF0F;FULLWIDTH SOLIDUS;Po;0;CS;<wide> 002F;;;;N;FULLWIDTH SLASH;;;;
+FF10;FULLWIDTH DIGIT ZERO;Nd;0;EN;<wide> 0030;0;0;0;N;;;;;
+FF11;FULLWIDTH DIGIT ONE;Nd;0;EN;<wide> 0031;1;1;1;N;;;;;
+FF12;FULLWIDTH DIGIT TWO;Nd;0;EN;<wide> 0032;2;2;2;N;;;;;
+FF13;FULLWIDTH DIGIT THREE;Nd;0;EN;<wide> 0033;3;3;3;N;;;;;
+FF14;FULLWIDTH DIGIT FOUR;Nd;0;EN;<wide> 0034;4;4;4;N;;;;;
+FF15;FULLWIDTH DIGIT FIVE;Nd;0;EN;<wide> 0035;5;5;5;N;;;;;
+FF16;FULLWIDTH DIGIT SIX;Nd;0;EN;<wide> 0036;6;6;6;N;;;;;
+FF17;FULLWIDTH DIGIT SEVEN;Nd;0;EN;<wide> 0037;7;7;7;N;;;;;
+FF18;FULLWIDTH DIGIT EIGHT;Nd;0;EN;<wide> 0038;8;8;8;N;;;;;
+FF19;FULLWIDTH DIGIT NINE;Nd;0;EN;<wide> 0039;9;9;9;N;;;;;
+FF1A;FULLWIDTH COLON;Po;0;CS;<wide> 003A;;;;N;;;;;
+FF1B;FULLWIDTH SEMICOLON;Po;0;ON;<wide> 003B;;;;N;;;;;
+FF1C;FULLWIDTH LESS-THAN SIGN;Sm;0;ON;<wide> 003C;;;;Y;;;;;
+FF1D;FULLWIDTH EQUALS SIGN;Sm;0;ON;<wide> 003D;;;;N;;;;;
+FF1E;FULLWIDTH GREATER-THAN SIGN;Sm;0;ON;<wide> 003E;;;;Y;;;;;
+FF1F;FULLWIDTH QUESTION MARK;Po;0;ON;<wide> 003F;;;;N;;;;;
+FF20;FULLWIDTH COMMERCIAL AT;Po;0;ON;<wide> 0040;;;;N;;;;;
+FF21;FULLWIDTH LATIN CAPITAL LETTER A;Lu;0;L;<wide> 0041;;;;N;;;;FF41;
+FF22;FULLWIDTH LATIN CAPITAL LETTER B;Lu;0;L;<wide> 0042;;;;N;;;;FF42;
+FF23;FULLWIDTH LATIN CAPITAL LETTER C;Lu;0;L;<wide> 0043;;;;N;;;;FF43;
+FF24;FULLWIDTH LATIN CAPITAL LETTER D;Lu;0;L;<wide> 0044;;;;N;;;;FF44;
+FF25;FULLWIDTH LATIN CAPITAL LETTER E;Lu;0;L;<wide> 0045;;;;N;;;;FF45;
+FF26;FULLWIDTH LATIN CAPITAL LETTER F;Lu;0;L;<wide> 0046;;;;N;;;;FF46;
+FF27;FULLWIDTH LATIN CAPITAL LETTER G;Lu;0;L;<wide> 0047;;;;N;;;;FF47;
+FF28;FULLWIDTH LATIN CAPITAL LETTER H;Lu;0;L;<wide> 0048;;;;N;;;;FF48;
+FF29;FULLWIDTH LATIN CAPITAL LETTER I;Lu;0;L;<wide> 0049;;;;N;;;;FF49;
+FF2A;FULLWIDTH LATIN CAPITAL LETTER J;Lu;0;L;<wide> 004A;;;;N;;;;FF4A;
+FF2B;FULLWIDTH LATIN CAPITAL LETTER K;Lu;0;L;<wide> 004B;;;;N;;;;FF4B;
+FF2C;FULLWIDTH LATIN CAPITAL LETTER L;Lu;0;L;<wide> 004C;;;;N;;;;FF4C;
+FF2D;FULLWIDTH LATIN CAPITAL LETTER M;Lu;0;L;<wide> 004D;;;;N;;;;FF4D;
+FF2E;FULLWIDTH LATIN CAPITAL LETTER N;Lu;0;L;<wide> 004E;;;;N;;;;FF4E;
+FF2F;FULLWIDTH LATIN CAPITAL LETTER O;Lu;0;L;<wide> 004F;;;;N;;;;FF4F;
+FF30;FULLWIDTH LATIN CAPITAL LETTER P;Lu;0;L;<wide> 0050;;;;N;;;;FF50;
+FF31;FULLWIDTH LATIN CAPITAL LETTER Q;Lu;0;L;<wide> 0051;;;;N;;;;FF51;
+FF32;FULLWIDTH LATIN CAPITAL LETTER R;Lu;0;L;<wide> 0052;;;;N;;;;FF52;
+FF33;FULLWIDTH LATIN CAPITAL LETTER S;Lu;0;L;<wide> 0053;;;;N;;;;FF53;
+FF34;FULLWIDTH LATIN CAPITAL LETTER T;Lu;0;L;<wide> 0054;;;;N;;;;FF54;
+FF35;FULLWIDTH LATIN CAPITAL LETTER U;Lu;0;L;<wide> 0055;;;;N;;;;FF55;
+FF36;FULLWIDTH LATIN CAPITAL LETTER V;Lu;0;L;<wide> 0056;;;;N;;;;FF56;
+FF37;FULLWIDTH LATIN CAPITAL LETTER W;Lu;0;L;<wide> 0057;;;;N;;;;FF57;
+FF38;FULLWIDTH LATIN CAPITAL LETTER X;Lu;0;L;<wide> 0058;;;;N;;;;FF58;
+FF39;FULLWIDTH LATIN CAPITAL LETTER Y;Lu;0;L;<wide> 0059;;;;N;;;;FF59;
+FF3A;FULLWIDTH LATIN CAPITAL LETTER Z;Lu;0;L;<wide> 005A;;;;N;;;;FF5A;
+FF3B;FULLWIDTH LEFT SQUARE BRACKET;Ps;0;ON;<wide> 005B;;;;Y;FULLWIDTH OPENING SQUARE BRACKET;;;;
+FF3C;FULLWIDTH REVERSE SOLIDUS;Po;0;ON;<wide> 005C;;;;N;FULLWIDTH BACKSLASH;;;;
+FF3D;FULLWIDTH RIGHT SQUARE BRACKET;Pe;0;ON;<wide> 005D;;;;Y;FULLWIDTH CLOSING SQUARE BRACKET;;;;
+FF3E;FULLWIDTH CIRCUMFLEX ACCENT;Sk;0;ON;<wide> 005E;;;;N;FULLWIDTH SPACING CIRCUMFLEX;;;;
+FF3F;FULLWIDTH LOW LINE;Pc;0;ON;<wide> 005F;;;;N;FULLWIDTH SPACING UNDERSCORE;;;;
+FF40;FULLWIDTH GRAVE ACCENT;Sk;0;ON;<wide> 0060;;;;N;FULLWIDTH SPACING GRAVE;;;;
+FF41;FULLWIDTH LATIN SMALL LETTER A;Ll;0;L;<wide> 0061;;;;N;;;FF21;;FF21
+FF42;FULLWIDTH LATIN SMALL LETTER B;Ll;0;L;<wide> 0062;;;;N;;;FF22;;FF22
+FF43;FULLWIDTH LATIN SMALL LETTER C;Ll;0;L;<wide> 0063;;;;N;;;FF23;;FF23
+FF44;FULLWIDTH LATIN SMALL LETTER D;Ll;0;L;<wide> 0064;;;;N;;;FF24;;FF24
+FF45;FULLWIDTH LATIN SMALL LETTER E;Ll;0;L;<wide> 0065;;;;N;;;FF25;;FF25
+FF46;FULLWIDTH LATIN SMALL LETTER F;Ll;0;L;<wide> 0066;;;;N;;;FF26;;FF26
+FF47;FULLWIDTH LATIN SMALL LETTER G;Ll;0;L;<wide> 0067;;;;N;;;FF27;;FF27
+FF48;FULLWIDTH LATIN SMALL LETTER H;Ll;0;L;<wide> 0068;;;;N;;;FF28;;FF28
+FF49;FULLWIDTH LATIN SMALL LETTER I;Ll;0;L;<wide> 0069;;;;N;;;FF29;;FF29
+FF4A;FULLWIDTH LATIN SMALL LETTER J;Ll;0;L;<wide> 006A;;;;N;;;FF2A;;FF2A
+FF4B;FULLWIDTH LATIN SMALL LETTER K;Ll;0;L;<wide> 006B;;;;N;;;FF2B;;FF2B
+FF4C;FULLWIDTH LATIN SMALL LETTER L;Ll;0;L;<wide> 006C;;;;N;;;FF2C;;FF2C
+FF4D;FULLWIDTH LATIN SMALL LETTER M;Ll;0;L;<wide> 006D;;;;N;;;FF2D;;FF2D
+FF4E;FULLWIDTH LATIN SMALL LETTER N;Ll;0;L;<wide> 006E;;;;N;;;FF2E;;FF2E
+FF4F;FULLWIDTH LATIN SMALL LETTER O;Ll;0;L;<wide> 006F;;;;N;;;FF2F;;FF2F
+FF50;FULLWIDTH LATIN SMALL LETTER P;Ll;0;L;<wide> 0070;;;;N;;;FF30;;FF30
+FF51;FULLWIDTH LATIN SMALL LETTER Q;Ll;0;L;<wide> 0071;;;;N;;;FF31;;FF31
+FF52;FULLWIDTH LATIN SMALL LETTER R;Ll;0;L;<wide> 0072;;;;N;;;FF32;;FF32
+FF53;FULLWIDTH LATIN SMALL LETTER S;Ll;0;L;<wide> 0073;;;;N;;;FF33;;FF33
+FF54;FULLWIDTH LATIN SMALL LETTER T;Ll;0;L;<wide> 0074;;;;N;;;FF34;;FF34
+FF55;FULLWIDTH LATIN SMALL LETTER U;Ll;0;L;<wide> 0075;;;;N;;;FF35;;FF35
+FF56;FULLWIDTH LATIN SMALL LETTER V;Ll;0;L;<wide> 0076;;;;N;;;FF36;;FF36
+FF57;FULLWIDTH LATIN SMALL LETTER W;Ll;0;L;<wide> 0077;;;;N;;;FF37;;FF37
+FF58;FULLWIDTH LATIN SMALL LETTER X;Ll;0;L;<wide> 0078;;;;N;;;FF38;;FF38
+FF59;FULLWIDTH LATIN SMALL LETTER Y;Ll;0;L;<wide> 0079;;;;N;;;FF39;;FF39
+FF5A;FULLWIDTH LATIN SMALL LETTER Z;Ll;0;L;<wide> 007A;;;;N;;;FF3A;;FF3A
+FF5B;FULLWIDTH LEFT CURLY BRACKET;Ps;0;ON;<wide> 007B;;;;Y;FULLWIDTH OPENING CURLY BRACKET;;;;
+FF5C;FULLWIDTH VERTICAL LINE;Sm;0;ON;<wide> 007C;;;;N;FULLWIDTH VERTICAL BAR;;;;
+FF5D;FULLWIDTH RIGHT CURLY BRACKET;Pe;0;ON;<wide> 007D;;;;Y;FULLWIDTH CLOSING CURLY BRACKET;;;;
+FF5E;FULLWIDTH TILDE;Sm;0;ON;<wide> 007E;;;;N;FULLWIDTH SPACING TILDE;;;;
+FF5F;FULLWIDTH LEFT WHITE PARENTHESIS;Ps;0;ON;<wide> 2985;;;;Y;;*;;;
+FF60;FULLWIDTH RIGHT WHITE PARENTHESIS;Pe;0;ON;<wide> 2986;;;;Y;;*;;;
+FF61;HALFWIDTH IDEOGRAPHIC FULL STOP;Po;0;ON;<narrow> 3002;;;;N;HALFWIDTH IDEOGRAPHIC PERIOD;;;;
+FF62;HALFWIDTH LEFT CORNER BRACKET;Ps;0;ON;<narrow> 300C;;;;Y;HALFWIDTH OPENING CORNER BRACKET;;;;
+FF63;HALFWIDTH RIGHT CORNER BRACKET;Pe;0;ON;<narrow> 300D;;;;Y;HALFWIDTH CLOSING CORNER BRACKET;;;;
+FF64;HALFWIDTH IDEOGRAPHIC COMMA;Po;0;ON;<narrow> 3001;;;;N;;;;;
+FF65;HALFWIDTH KATAKANA MIDDLE DOT;Po;0;ON;<narrow> 30FB;;;;N;;;;;
+FF66;HALFWIDTH KATAKANA LETTER WO;Lo;0;L;<narrow> 30F2;;;;N;;;;;
+FF67;HALFWIDTH KATAKANA LETTER SMALL A;Lo;0;L;<narrow> 30A1;;;;N;;;;;
+FF68;HALFWIDTH KATAKANA LETTER SMALL I;Lo;0;L;<narrow> 30A3;;;;N;;;;;
+FF69;HALFWIDTH KATAKANA LETTER SMALL U;Lo;0;L;<narrow> 30A5;;;;N;;;;;
+FF6A;HALFWIDTH KATAKANA LETTER SMALL E;Lo;0;L;<narrow> 30A7;;;;N;;;;;
+FF6B;HALFWIDTH KATAKANA LETTER SMALL O;Lo;0;L;<narrow> 30A9;;;;N;;;;;
+FF6C;HALFWIDTH KATAKANA LETTER SMALL YA;Lo;0;L;<narrow> 30E3;;;;N;;;;;
+FF6D;HALFWIDTH KATAKANA LETTER SMALL YU;Lo;0;L;<narrow> 30E5;;;;N;;;;;
+FF6E;HALFWIDTH KATAKANA LETTER SMALL YO;Lo;0;L;<narrow> 30E7;;;;N;;;;;
+FF6F;HALFWIDTH KATAKANA LETTER SMALL TU;Lo;0;L;<narrow> 30C3;;;;N;;;;;
+FF70;HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK;Lm;0;L;<narrow> 30FC;;;;N;;;;;
+FF71;HALFWIDTH KATAKANA LETTER A;Lo;0;L;<narrow> 30A2;;;;N;;;;;
+FF72;HALFWIDTH KATAKANA LETTER I;Lo;0;L;<narrow> 30A4;;;;N;;;;;
+FF73;HALFWIDTH KATAKANA LETTER U;Lo;0;L;<narrow> 30A6;;;;N;;;;;
+FF74;HALFWIDTH KATAKANA LETTER E;Lo;0;L;<narrow> 30A8;;;;N;;;;;
+FF75;HALFWIDTH KATAKANA LETTER O;Lo;0;L;<narrow> 30AA;;;;N;;;;;
+FF76;HALFWIDTH KATAKANA LETTER KA;Lo;0;L;<narrow> 30AB;;;;N;;;;;
+FF77;HALFWIDTH KATAKANA LETTER KI;Lo;0;L;<narrow> 30AD;;;;N;;;;;
+FF78;HALFWIDTH KATAKANA LETTER KU;Lo;0;L;<narrow> 30AF;;;;N;;;;;
+FF79;HALFWIDTH KATAKANA LETTER KE;Lo;0;L;<narrow> 30B1;;;;N;;;;;
+FF7A;HALFWIDTH KATAKANA LETTER KO;Lo;0;L;<narrow> 30B3;;;;N;;;;;
+FF7B;HALFWIDTH KATAKANA LETTER SA;Lo;0;L;<narrow> 30B5;;;;N;;;;;
+FF7C;HALFWIDTH KATAKANA LETTER SI;Lo;0;L;<narrow> 30B7;;;;N;;;;;
+FF7D;HALFWIDTH KATAKANA LETTER SU;Lo;0;L;<narrow> 30B9;;;;N;;;;;
+FF7E;HALFWIDTH KATAKANA LETTER SE;Lo;0;L;<narrow> 30BB;;;;N;;;;;
+FF7F;HALFWIDTH KATAKANA LETTER SO;Lo;0;L;<narrow> 30BD;;;;N;;;;;
+FF80;HALFWIDTH KATAKANA LETTER TA;Lo;0;L;<narrow> 30BF;;;;N;;;;;
+FF81;HALFWIDTH KATAKANA LETTER TI;Lo;0;L;<narrow> 30C1;;;;N;;;;;
+FF82;HALFWIDTH KATAKANA LETTER TU;Lo;0;L;<narrow> 30C4;;;;N;;;;;
+FF83;HALFWIDTH KATAKANA LETTER TE;Lo;0;L;<narrow> 30C6;;;;N;;;;;
+FF84;HALFWIDTH KATAKANA LETTER TO;Lo;0;L;<narrow> 30C8;;;;N;;;;;
+FF85;HALFWIDTH KATAKANA LETTER NA;Lo;0;L;<narrow> 30CA;;;;N;;;;;
+FF86;HALFWIDTH KATAKANA LETTER NI;Lo;0;L;<narrow> 30CB;;;;N;;;;;
+FF87;HALFWIDTH KATAKANA LETTER NU;Lo;0;L;<narrow> 30CC;;;;N;;;;;
+FF88;HALFWIDTH KATAKANA LETTER NE;Lo;0;L;<narrow> 30CD;;;;N;;;;;
+FF89;HALFWIDTH KATAKANA LETTER NO;Lo;0;L;<narrow> 30CE;;;;N;;;;;
+FF8A;HALFWIDTH KATAKANA LETTER HA;Lo;0;L;<narrow> 30CF;;;;N;;;;;
+FF8B;HALFWIDTH KATAKANA LETTER HI;Lo;0;L;<narrow> 30D2;;;;N;;;;;
+FF8C;HALFWIDTH KATAKANA LETTER HU;Lo;0;L;<narrow> 30D5;;;;N;;;;;
+FF8D;HALFWIDTH KATAKANA LETTER HE;Lo;0;L;<narrow> 30D8;;;;N;;;;;
+FF8E;HALFWIDTH KATAKANA LETTER HO;Lo;0;L;<narrow> 30DB;;;;N;;;;;
+FF8F;HALFWIDTH KATAKANA LETTER MA;Lo;0;L;<narrow> 30DE;;;;N;;;;;
+FF90;HALFWIDTH KATAKANA LETTER MI;Lo;0;L;<narrow> 30DF;;;;N;;;;;
+FF91;HALFWIDTH KATAKANA LETTER MU;Lo;0;L;<narrow> 30E0;;;;N;;;;;
+FF92;HALFWIDTH KATAKANA LETTER ME;Lo;0;L;<narrow> 30E1;;;;N;;;;;
+FF93;HALFWIDTH KATAKANA LETTER MO;Lo;0;L;<narrow> 30E2;;;;N;;;;;
+FF94;HALFWIDTH KATAKANA LETTER YA;Lo;0;L;<narrow> 30E4;;;;N;;;;;
+FF95;HALFWIDTH KATAKANA LETTER YU;Lo;0;L;<narrow> 30E6;;;;N;;;;;
+FF96;HALFWIDTH KATAKANA LETTER YO;Lo;0;L;<narrow> 30E8;;;;N;;;;;
+FF97;HALFWIDTH KATAKANA LETTER RA;Lo;0;L;<narrow> 30E9;;;;N;;;;;
+FF98;HALFWIDTH KATAKANA LETTER RI;Lo;0;L;<narrow> 30EA;;;;N;;;;;
+FF99;HALFWIDTH KATAKANA LETTER RU;Lo;0;L;<narrow> 30EB;;;;N;;;;;
+FF9A;HALFWIDTH KATAKANA LETTER RE;Lo;0;L;<narrow> 30EC;;;;N;;;;;
+FF9B;HALFWIDTH KATAKANA LETTER RO;Lo;0;L;<narrow> 30ED;;;;N;;;;;
+FF9C;HALFWIDTH KATAKANA LETTER WA;Lo;0;L;<narrow> 30EF;;;;N;;;;;
+FF9D;HALFWIDTH KATAKANA LETTER N;Lo;0;L;<narrow> 30F3;;;;N;;;;;
+FF9E;HALFWIDTH KATAKANA VOICED SOUND MARK;Lm;0;L;<narrow> 3099;;;;N;;halfwidth katakana-hiragana voiced sound mark;;;
+FF9F;HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK;Lm;0;L;<narrow> 309A;;;;N;;halfwidth katakana-hiragana semi-voiced sound mark;;;
+FFA0;HALFWIDTH HANGUL FILLER;Lo;0;L;<narrow> 3164;;;;N;HALFWIDTH HANGUL CAE OM;;;;
+FFA1;HALFWIDTH HANGUL LETTER KIYEOK;Lo;0;L;<narrow> 3131;;;;N;HALFWIDTH HANGUL LETTER GIYEOG;;;;
+FFA2;HALFWIDTH HANGUL LETTER SSANGKIYEOK;Lo;0;L;<narrow> 3132;;;;N;HALFWIDTH HANGUL LETTER SSANG GIYEOG;;;;
+FFA3;HALFWIDTH HANGUL LETTER KIYEOK-SIOS;Lo;0;L;<narrow> 3133;;;;N;HALFWIDTH HANGUL LETTER GIYEOG SIOS;;;;
+FFA4;HALFWIDTH HANGUL LETTER NIEUN;Lo;0;L;<narrow> 3134;;;;N;;;;;
+FFA5;HALFWIDTH HANGUL LETTER NIEUN-CIEUC;Lo;0;L;<narrow> 3135;;;;N;HALFWIDTH HANGUL LETTER NIEUN JIEUJ;;;;
+FFA6;HALFWIDTH HANGUL LETTER NIEUN-HIEUH;Lo;0;L;<narrow> 3136;;;;N;HALFWIDTH HANGUL LETTER NIEUN HIEUH;;;;
+FFA7;HALFWIDTH HANGUL LETTER TIKEUT;Lo;0;L;<narrow> 3137;;;;N;HALFWIDTH HANGUL LETTER DIGEUD;;;;
+FFA8;HALFWIDTH HANGUL LETTER SSANGTIKEUT;Lo;0;L;<narrow> 3138;;;;N;HALFWIDTH HANGUL LETTER SSANG DIGEUD;;;;
+FFA9;HALFWIDTH HANGUL LETTER RIEUL;Lo;0;L;<narrow> 3139;;;;N;HALFWIDTH HANGUL LETTER LIEUL;;;;
+FFAA;HALFWIDTH HANGUL LETTER RIEUL-KIYEOK;Lo;0;L;<narrow> 313A;;;;N;HALFWIDTH HANGUL LETTER LIEUL GIYEOG;;;;
+FFAB;HALFWIDTH HANGUL LETTER RIEUL-MIEUM;Lo;0;L;<narrow> 313B;;;;N;HALFWIDTH HANGUL LETTER LIEUL MIEUM;;;;
+FFAC;HALFWIDTH HANGUL LETTER RIEUL-PIEUP;Lo;0;L;<narrow> 313C;;;;N;HALFWIDTH HANGUL LETTER LIEUL BIEUB;;;;
+FFAD;HALFWIDTH HANGUL LETTER RIEUL-SIOS;Lo;0;L;<narrow> 313D;;;;N;HALFWIDTH HANGUL LETTER LIEUL SIOS;;;;
+FFAE;HALFWIDTH HANGUL LETTER RIEUL-THIEUTH;Lo;0;L;<narrow> 313E;;;;N;HALFWIDTH HANGUL LETTER LIEUL TIEUT;;;;
+FFAF;HALFWIDTH HANGUL LETTER RIEUL-PHIEUPH;Lo;0;L;<narrow> 313F;;;;N;HALFWIDTH HANGUL LETTER LIEUL PIEUP;;;;
+FFB0;HALFWIDTH HANGUL LETTER RIEUL-HIEUH;Lo;0;L;<narrow> 3140;;;;N;HALFWIDTH HANGUL LETTER LIEUL HIEUH;;;;
+FFB1;HALFWIDTH HANGUL LETTER MIEUM;Lo;0;L;<narrow> 3141;;;;N;;;;;
+FFB2;HALFWIDTH HANGUL LETTER PIEUP;Lo;0;L;<narrow> 3142;;;;N;HALFWIDTH HANGUL LETTER BIEUB;;;;
+FFB3;HALFWIDTH HANGUL LETTER SSANGPIEUP;Lo;0;L;<narrow> 3143;;;;N;HALFWIDTH HANGUL LETTER SSANG BIEUB;;;;
+FFB4;HALFWIDTH HANGUL LETTER PIEUP-SIOS;Lo;0;L;<narrow> 3144;;;;N;HALFWIDTH HANGUL LETTER BIEUB SIOS;;;;
+FFB5;HALFWIDTH HANGUL LETTER SIOS;Lo;0;L;<narrow> 3145;;;;N;;;;;
+FFB6;HALFWIDTH HANGUL LETTER SSANGSIOS;Lo;0;L;<narrow> 3146;;;;N;HALFWIDTH HANGUL LETTER SSANG SIOS;;;;
+FFB7;HALFWIDTH HANGUL LETTER IEUNG;Lo;0;L;<narrow> 3147;;;;N;;;;;
+FFB8;HALFWIDTH HANGUL LETTER CIEUC;Lo;0;L;<narrow> 3148;;;;N;HALFWIDTH HANGUL LETTER JIEUJ;;;;
+FFB9;HALFWIDTH HANGUL LETTER SSANGCIEUC;Lo;0;L;<narrow> 3149;;;;N;HALFWIDTH HANGUL LETTER SSANG JIEUJ;;;;
+FFBA;HALFWIDTH HANGUL LETTER CHIEUCH;Lo;0;L;<narrow> 314A;;;;N;HALFWIDTH HANGUL LETTER CIEUC;;;;
+FFBB;HALFWIDTH HANGUL LETTER KHIEUKH;Lo;0;L;<narrow> 314B;;;;N;HALFWIDTH HANGUL LETTER KIYEOK;;;;
+FFBC;HALFWIDTH HANGUL LETTER THIEUTH;Lo;0;L;<narrow> 314C;;;;N;HALFWIDTH HANGUL LETTER TIEUT;;;;
+FFBD;HALFWIDTH HANGUL LETTER PHIEUPH;Lo;0;L;<narrow> 314D;;;;N;HALFWIDTH HANGUL LETTER PIEUP;;;;
+FFBE;HALFWIDTH HANGUL LETTER HIEUH;Lo;0;L;<narrow> 314E;;;;N;;;;;
+FFC2;HALFWIDTH HANGUL LETTER A;Lo;0;L;<narrow> 314F;;;;N;;;;;
+FFC3;HALFWIDTH HANGUL LETTER AE;Lo;0;L;<narrow> 3150;;;;N;;;;;
+FFC4;HALFWIDTH HANGUL LETTER YA;Lo;0;L;<narrow> 3151;;;;N;;;;;
+FFC5;HALFWIDTH HANGUL LETTER YAE;Lo;0;L;<narrow> 3152;;;;N;;;;;
+FFC6;HALFWIDTH HANGUL LETTER EO;Lo;0;L;<narrow> 3153;;;;N;;;;;
+FFC7;HALFWIDTH HANGUL LETTER E;Lo;0;L;<narrow> 3154;;;;N;;;;;
+FFCA;HALFWIDTH HANGUL LETTER YEO;Lo;0;L;<narrow> 3155;;;;N;;;;;
+FFCB;HALFWIDTH HANGUL LETTER YE;Lo;0;L;<narrow> 3156;;;;N;;;;;
+FFCC;HALFWIDTH HANGUL LETTER O;Lo;0;L;<narrow> 3157;;;;N;;;;;
+FFCD;HALFWIDTH HANGUL LETTER WA;Lo;0;L;<narrow> 3158;;;;N;;;;;
+FFCE;HALFWIDTH HANGUL LETTER WAE;Lo;0;L;<narrow> 3159;;;;N;;;;;
+FFCF;HALFWIDTH HANGUL LETTER OE;Lo;0;L;<narrow> 315A;;;;N;;;;;
+FFD2;HALFWIDTH HANGUL LETTER YO;Lo;0;L;<narrow> 315B;;;;N;;;;;
+FFD3;HALFWIDTH HANGUL LETTER U;Lo;0;L;<narrow> 315C;;;;N;;;;;
+FFD4;HALFWIDTH HANGUL LETTER WEO;Lo;0;L;<narrow> 315D;;;;N;;;;;
+FFD5;HALFWIDTH HANGUL LETTER WE;Lo;0;L;<narrow> 315E;;;;N;;;;;
+FFD6;HALFWIDTH HANGUL LETTER WI;Lo;0;L;<narrow> 315F;;;;N;;;;;
+FFD7;HALFWIDTH HANGUL LETTER YU;Lo;0;L;<narrow> 3160;;;;N;;;;;
+FFDA;HALFWIDTH HANGUL LETTER EU;Lo;0;L;<narrow> 3161;;;;N;;;;;
+FFDB;HALFWIDTH HANGUL LETTER YI;Lo;0;L;<narrow> 3162;;;;N;;;;;
+FFDC;HALFWIDTH HANGUL LETTER I;Lo;0;L;<narrow> 3163;;;;N;;;;;
+FFE0;FULLWIDTH CENT SIGN;Sc;0;ET;<wide> 00A2;;;;N;;;;;
+FFE1;FULLWIDTH POUND SIGN;Sc;0;ET;<wide> 00A3;;;;N;;;;;
+FFE2;FULLWIDTH NOT SIGN;Sm;0;ON;<wide> 00AC;;;;N;;;;;
+FFE3;FULLWIDTH MACRON;Sk;0;ON;<wide> 00AF;;;;N;FULLWIDTH SPACING MACRON;*;;;
+FFE4;FULLWIDTH BROKEN BAR;So;0;ON;<wide> 00A6;;;;N;FULLWIDTH BROKEN VERTICAL BAR;;;;
+FFE5;FULLWIDTH YEN SIGN;Sc;0;ET;<wide> 00A5;;;;N;;;;;
+FFE6;FULLWIDTH WON SIGN;Sc;0;ET;<wide> 20A9;;;;N;;;;;
+FFE8;HALFWIDTH FORMS LIGHT VERTICAL;So;0;ON;<narrow> 2502;;;;N;;;;;
+FFE9;HALFWIDTH LEFTWARDS ARROW;Sm;0;ON;<narrow> 2190;;;;N;;;;;
+FFEA;HALFWIDTH UPWARDS ARROW;Sm;0;ON;<narrow> 2191;;;;N;;;;;
+FFEB;HALFWIDTH RIGHTWARDS ARROW;Sm;0;ON;<narrow> 2192;;;;N;;;;;
+FFEC;HALFWIDTH DOWNWARDS ARROW;Sm;0;ON;<narrow> 2193;;;;N;;;;;
+FFED;HALFWIDTH BLACK SQUARE;So;0;ON;<narrow> 25A0;;;;N;;;;;
+FFEE;HALFWIDTH WHITE CIRCLE;So;0;ON;<narrow> 25CB;;;;N;;;;;
+FFF9;INTERLINEAR ANNOTATION ANCHOR;Cf;0;ON;;;;;N;;;;;
+FFFA;INTERLINEAR ANNOTATION SEPARATOR;Cf;0;ON;;;;;N;;;;;
+FFFB;INTERLINEAR ANNOTATION TERMINATOR;Cf;0;ON;;;;;N;;;;;
+FFFC;OBJECT REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
+FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
+10000;LINEAR B SYLLABLE B008 A;Lo;0;L;;;;;N;;;;;
+10001;LINEAR B SYLLABLE B038 E;Lo;0;L;;;;;N;;;;;
+10002;LINEAR B SYLLABLE B028 I;Lo;0;L;;;;;N;;;;;
+10003;LINEAR B SYLLABLE B061 O;Lo;0;L;;;;;N;;;;;
+10004;LINEAR B SYLLABLE B010 U;Lo;0;L;;;;;N;;;;;
+10005;LINEAR B SYLLABLE B001 DA;Lo;0;L;;;;;N;;;;;
+10006;LINEAR B SYLLABLE B045 DE;Lo;0;L;;;;;N;;;;;
+10007;LINEAR B SYLLABLE B007 DI;Lo;0;L;;;;;N;;;;;
+10008;LINEAR B SYLLABLE B014 DO;Lo;0;L;;;;;N;;;;;
+10009;LINEAR B SYLLABLE B051 DU;Lo;0;L;;;;;N;;;;;
+1000A;LINEAR B SYLLABLE B057 JA;Lo;0;L;;;;;N;;;;;
+1000B;LINEAR B SYLLABLE B046 JE;Lo;0;L;;;;;N;;;;;
+1000D;LINEAR B SYLLABLE B036 JO;Lo;0;L;;;;;N;;;;;
+1000E;LINEAR B SYLLABLE B065 JU;Lo;0;L;;;;;N;;;;;
+1000F;LINEAR B SYLLABLE B077 KA;Lo;0;L;;;;;N;;;;;
+10010;LINEAR B SYLLABLE B044 KE;Lo;0;L;;;;;N;;;;;
+10011;LINEAR B SYLLABLE B067 KI;Lo;0;L;;;;;N;;;;;
+10012;LINEAR B SYLLABLE B070 KO;Lo;0;L;;;;;N;;;;;
+10013;LINEAR B SYLLABLE B081 KU;Lo;0;L;;;;;N;;;;;
+10014;LINEAR B SYLLABLE B080 MA;Lo;0;L;;;;;N;;;;;
+10015;LINEAR B SYLLABLE B013 ME;Lo;0;L;;;;;N;;;;;
+10016;LINEAR B SYLLABLE B073 MI;Lo;0;L;;;;;N;;;;;
+10017;LINEAR B SYLLABLE B015 MO;Lo;0;L;;;;;N;;;;;
+10018;LINEAR B SYLLABLE B023 MU;Lo;0;L;;;;;N;;;;;
+10019;LINEAR B SYLLABLE B006 NA;Lo;0;L;;;;;N;;;;;
+1001A;LINEAR B SYLLABLE B024 NE;Lo;0;L;;;;;N;;;;;
+1001B;LINEAR B SYLLABLE B030 NI;Lo;0;L;;;;;N;;;;;
+1001C;LINEAR B SYLLABLE B052 NO;Lo;0;L;;;;;N;;;;;
+1001D;LINEAR B SYLLABLE B055 NU;Lo;0;L;;;;;N;;;;;
+1001E;LINEAR B SYLLABLE B003 PA;Lo;0;L;;;;;N;;;;;
+1001F;LINEAR B SYLLABLE B072 PE;Lo;0;L;;;;;N;;;;;
+10020;LINEAR B SYLLABLE B039 PI;Lo;0;L;;;;;N;;;;;
+10021;LINEAR B SYLLABLE B011 PO;Lo;0;L;;;;;N;;;;;
+10022;LINEAR B SYLLABLE B050 PU;Lo;0;L;;;;;N;;;;;
+10023;LINEAR B SYLLABLE B016 QA;Lo;0;L;;;;;N;;;;;
+10024;LINEAR B SYLLABLE B078 QE;Lo;0;L;;;;;N;;;;;
+10025;LINEAR B SYLLABLE B021 QI;Lo;0;L;;;;;N;;;;;
+10026;LINEAR B SYLLABLE B032 QO;Lo;0;L;;;;;N;;;;;
+10028;LINEAR B SYLLABLE B060 RA;Lo;0;L;;;;;N;;;;;
+10029;LINEAR B SYLLABLE B027 RE;Lo;0;L;;;;;N;;;;;
+1002A;LINEAR B SYLLABLE B053 RI;Lo;0;L;;;;;N;;;;;
+1002B;LINEAR B SYLLABLE B002 RO;Lo;0;L;;;;;N;;;;;
+1002C;LINEAR B SYLLABLE B026 RU;Lo;0;L;;;;;N;;;;;
+1002D;LINEAR B SYLLABLE B031 SA;Lo;0;L;;;;;N;;;;;
+1002E;LINEAR B SYLLABLE B009 SE;Lo;0;L;;;;;N;;;;;
+1002F;LINEAR B SYLLABLE B041 SI;Lo;0;L;;;;;N;;;;;
+10030;LINEAR B SYLLABLE B012 SO;Lo;0;L;;;;;N;;;;;
+10031;LINEAR B SYLLABLE B058 SU;Lo;0;L;;;;;N;;;;;
+10032;LINEAR B SYLLABLE B059 TA;Lo;0;L;;;;;N;;;;;
+10033;LINEAR B SYLLABLE B004 TE;Lo;0;L;;;;;N;;;;;
+10034;LINEAR B SYLLABLE B037 TI;Lo;0;L;;;;;N;;;;;
+10035;LINEAR B SYLLABLE B005 TO;Lo;0;L;;;;;N;;;;;
+10036;LINEAR B SYLLABLE B069 TU;Lo;0;L;;;;;N;;;;;
+10037;LINEAR B SYLLABLE B054 WA;Lo;0;L;;;;;N;;;;;
+10038;LINEAR B SYLLABLE B075 WE;Lo;0;L;;;;;N;;;;;
+10039;LINEAR B SYLLABLE B040 WI;Lo;0;L;;;;;N;;;;;
+1003A;LINEAR B SYLLABLE B042 WO;Lo;0;L;;;;;N;;;;;
+1003C;LINEAR B SYLLABLE B017 ZA;Lo;0;L;;;;;N;;;;;
+1003D;LINEAR B SYLLABLE B074 ZE;Lo;0;L;;;;;N;;;;;
+1003F;LINEAR B SYLLABLE B020 ZO;Lo;0;L;;;;;N;;;;;
+10040;LINEAR B SYLLABLE B025 A2;Lo;0;L;;;;;N;;;;;
+10041;LINEAR B SYLLABLE B043 A3;Lo;0;L;;;;;N;;;;;
+10042;LINEAR B SYLLABLE B085 AU;Lo;0;L;;;;;N;;;;;
+10043;LINEAR B SYLLABLE B071 DWE;Lo;0;L;;;;;N;;;;;
+10044;LINEAR B SYLLABLE B090 DWO;Lo;0;L;;;;;N;;;;;
+10045;LINEAR B SYLLABLE B048 NWA;Lo;0;L;;;;;N;;;;;
+10046;LINEAR B SYLLABLE B029 PU2;Lo;0;L;;;;;N;;;;;
+10047;LINEAR B SYLLABLE B062 PTE;Lo;0;L;;;;;N;;;;;
+10048;LINEAR B SYLLABLE B076 RA2;Lo;0;L;;;;;N;;;;;
+10049;LINEAR B SYLLABLE B033 RA3;Lo;0;L;;;;;N;;;;;
+1004A;LINEAR B SYLLABLE B068 RO2;Lo;0;L;;;;;N;;;;;
+1004B;LINEAR B SYLLABLE B066 TA2;Lo;0;L;;;;;N;;;;;
+1004C;LINEAR B SYLLABLE B087 TWE;Lo;0;L;;;;;N;;;;;
+1004D;LINEAR B SYLLABLE B091 TWO;Lo;0;L;;;;;N;;;;;
+10050;LINEAR B SYMBOL B018;Lo;0;L;;;;;N;;;;;
+10051;LINEAR B SYMBOL B019;Lo;0;L;;;;;N;;;;;
+10052;LINEAR B SYMBOL B022;Lo;0;L;;;;;N;;;;;
+10053;LINEAR B SYMBOL B034;Lo;0;L;;;;;N;;;;;
+10054;LINEAR B SYMBOL B047;Lo;0;L;;;;;N;;;;;
+10055;LINEAR B SYMBOL B049;Lo;0;L;;;;;N;;;;;
+10056;LINEAR B SYMBOL B056;Lo;0;L;;;;;N;;;;;
+10057;LINEAR B SYMBOL B063;Lo;0;L;;;;;N;;;;;
+10058;LINEAR B SYMBOL B064;Lo;0;L;;;;;N;;;;;
+10059;LINEAR B SYMBOL B079;Lo;0;L;;;;;N;;;;;
+1005A;LINEAR B SYMBOL B082;Lo;0;L;;;;;N;;;;;
+1005B;LINEAR B SYMBOL B083;Lo;0;L;;;;;N;;;;;
+1005C;LINEAR B SYMBOL B086;Lo;0;L;;;;;N;;;;;
+1005D;LINEAR B SYMBOL B089;Lo;0;L;;;;;N;;;;;
+10080;LINEAR B IDEOGRAM B100 MAN;Lo;0;L;;;;;N;;;;;
+10081;LINEAR B IDEOGRAM B102 WOMAN;Lo;0;L;;;;;N;;;;;
+10082;LINEAR B IDEOGRAM B104 DEER;Lo;0;L;;;;;N;;;;;
+10083;LINEAR B IDEOGRAM B105 EQUID;Lo;0;L;;;;;N;;;;;
+10084;LINEAR B IDEOGRAM B105F MARE;Lo;0;L;;;;;N;;;;;
+10085;LINEAR B IDEOGRAM B105M STALLION;Lo;0;L;;;;;N;;;;;
+10086;LINEAR B IDEOGRAM B106F EWE;Lo;0;L;;;;;N;;;;;
+10087;LINEAR B IDEOGRAM B106M RAM;Lo;0;L;;;;;N;;;;;
+10088;LINEAR B IDEOGRAM B107F SHE-GOAT;Lo;0;L;;;;;N;;;;;
+10089;LINEAR B IDEOGRAM B107M HE-GOAT;Lo;0;L;;;;;N;;;;;
+1008A;LINEAR B IDEOGRAM B108F SOW;Lo;0;L;;;;;N;;;;;
+1008B;LINEAR B IDEOGRAM B108M BOAR;Lo;0;L;;;;;N;;;;;
+1008C;LINEAR B IDEOGRAM B109F COW;Lo;0;L;;;;;N;;;;;
+1008D;LINEAR B IDEOGRAM B109M BULL;Lo;0;L;;;;;N;;;;;
+1008E;LINEAR B IDEOGRAM B120 WHEAT;Lo;0;L;;;;;N;;;;;
+1008F;LINEAR B IDEOGRAM B121 BARLEY;Lo;0;L;;;;;N;;;;;
+10090;LINEAR B IDEOGRAM B122 OLIVE;Lo;0;L;;;;;N;;;;;
+10091;LINEAR B IDEOGRAM B123 SPICE;Lo;0;L;;;;;N;;;;;
+10092;LINEAR B IDEOGRAM B125 CYPERUS;Lo;0;L;;;;;N;;;;;
+10093;LINEAR B MONOGRAM B127 KAPO;Lo;0;L;;;;;N;;;;;
+10094;LINEAR B MONOGRAM B128 KANAKO;Lo;0;L;;;;;N;;;;;
+10095;LINEAR B IDEOGRAM B130 OIL;Lo;0;L;;;;;N;;;;;
+10096;LINEAR B IDEOGRAM B131 WINE;Lo;0;L;;;;;N;;;;;
+10097;LINEAR B IDEOGRAM B132;Lo;0;L;;;;;N;;;;;
+10098;LINEAR B MONOGRAM B133 AREPA;Lo;0;L;;;;;N;;;;;
+10099;LINEAR B MONOGRAM B135 MERI;Lo;0;L;;;;;N;;;;;
+1009A;LINEAR B IDEOGRAM B140 BRONZE;Lo;0;L;;;;;N;;;;;
+1009B;LINEAR B IDEOGRAM B141 GOLD;Lo;0;L;;;;;N;;;;;
+1009C;LINEAR B IDEOGRAM B142;Lo;0;L;;;;;N;;;;;
+1009D;LINEAR B IDEOGRAM B145 WOOL;Lo;0;L;;;;;N;;;;;
+1009E;LINEAR B IDEOGRAM B146;Lo;0;L;;;;;N;;;;;
+1009F;LINEAR B IDEOGRAM B150;Lo;0;L;;;;;N;;;;;
+100A0;LINEAR B IDEOGRAM B151 HORN;Lo;0;L;;;;;N;;;;;
+100A1;LINEAR B IDEOGRAM B152;Lo;0;L;;;;;N;;;;;
+100A2;LINEAR B IDEOGRAM B153;Lo;0;L;;;;;N;;;;;
+100A3;LINEAR B IDEOGRAM B154;Lo;0;L;;;;;N;;;;;
+100A4;LINEAR B MONOGRAM B156 TURO2;Lo;0;L;;;;;N;;;;;
+100A5;LINEAR B IDEOGRAM B157;Lo;0;L;;;;;N;;;;;
+100A6;LINEAR B IDEOGRAM B158;Lo;0;L;;;;;N;;;;;
+100A7;LINEAR B IDEOGRAM B159 CLOTH;Lo;0;L;;;;;N;;;;;
+100A8;LINEAR B IDEOGRAM B160;Lo;0;L;;;;;N;;;;;
+100A9;LINEAR B IDEOGRAM B161;Lo;0;L;;;;;N;;;;;
+100AA;LINEAR B IDEOGRAM B162 GARMENT;Lo;0;L;;;;;N;;;;;
+100AB;LINEAR B IDEOGRAM B163 ARMOUR;Lo;0;L;;;;;N;;;;;
+100AC;LINEAR B IDEOGRAM B164;Lo;0;L;;;;;N;;;;;
+100AD;LINEAR B IDEOGRAM B165;Lo;0;L;;;;;N;;;;;
+100AE;LINEAR B IDEOGRAM B166;Lo;0;L;;;;;N;;;;;
+100AF;LINEAR B IDEOGRAM B167;Lo;0;L;;;;;N;;;;;
+100B0;LINEAR B IDEOGRAM B168;Lo;0;L;;;;;N;;;;;
+100B1;LINEAR B IDEOGRAM B169;Lo;0;L;;;;;N;;;;;
+100B2;LINEAR B IDEOGRAM B170;Lo;0;L;;;;;N;;;;;
+100B3;LINEAR B IDEOGRAM B171;Lo;0;L;;;;;N;;;;;
+100B4;LINEAR B IDEOGRAM B172;Lo;0;L;;;;;N;;;;;
+100B5;LINEAR B IDEOGRAM B173 MONTH;Lo;0;L;;;;;N;;;;;
+100B6;LINEAR B IDEOGRAM B174;Lo;0;L;;;;;N;;;;;
+100B7;LINEAR B IDEOGRAM B176 TREE;Lo;0;L;;;;;N;;;;;
+100B8;LINEAR B IDEOGRAM B177;Lo;0;L;;;;;N;;;;;
+100B9;LINEAR B IDEOGRAM B178;Lo;0;L;;;;;N;;;;;
+100BA;LINEAR B IDEOGRAM B179;Lo;0;L;;;;;N;;;;;
+100BB;LINEAR B IDEOGRAM B180;Lo;0;L;;;;;N;;;;;
+100BC;LINEAR B IDEOGRAM B181;Lo;0;L;;;;;N;;;;;
+100BD;LINEAR B IDEOGRAM B182;Lo;0;L;;;;;N;;;;;
+100BE;LINEAR B IDEOGRAM B183;Lo;0;L;;;;;N;;;;;
+100BF;LINEAR B IDEOGRAM B184;Lo;0;L;;;;;N;;;;;
+100C0;LINEAR B IDEOGRAM B185;Lo;0;L;;;;;N;;;;;
+100C1;LINEAR B IDEOGRAM B189;Lo;0;L;;;;;N;;;;;
+100C2;LINEAR B IDEOGRAM B190;Lo;0;L;;;;;N;;;;;
+100C3;LINEAR B IDEOGRAM B191 HELMET;Lo;0;L;;;;;N;;;;;
+100C4;LINEAR B IDEOGRAM B220 FOOTSTOOL;Lo;0;L;;;;;N;;;;;
+100C5;LINEAR B IDEOGRAM B225 BATHTUB;Lo;0;L;;;;;N;;;;;
+100C6;LINEAR B IDEOGRAM B230 SPEAR;Lo;0;L;;;;;N;;;;;
+100C7;LINEAR B IDEOGRAM B231 ARROW;Lo;0;L;;;;;N;;;;;
+100C8;LINEAR B IDEOGRAM B232;Lo;0;L;;;;;N;;;;;
+100C9;LINEAR B IDEOGRAM B233 SWORD;Lo;0;L;;;;;N;;pug;;;
+100CA;LINEAR B IDEOGRAM B234;Lo;0;L;;;;;N;;;;;
+100CB;LINEAR B IDEOGRAM B236;Lo;0;L;;;;;N;;gup;;;
+100CC;LINEAR B IDEOGRAM B240 WHEELED CHARIOT;Lo;0;L;;;;;N;;;;;
+100CD;LINEAR B IDEOGRAM B241 CHARIOT;Lo;0;L;;;;;N;;;;;
+100CE;LINEAR B IDEOGRAM B242 CHARIOT FRAME;Lo;0;L;;;;;N;;;;;
+100CF;LINEAR B IDEOGRAM B243 WHEEL;Lo;0;L;;;;;N;;;;;
+100D0;LINEAR B IDEOGRAM B245;Lo;0;L;;;;;N;;;;;
+100D1;LINEAR B IDEOGRAM B246;Lo;0;L;;;;;N;;;;;
+100D2;LINEAR B MONOGRAM B247 DIPTE;Lo;0;L;;;;;N;;;;;
+100D3;LINEAR B IDEOGRAM B248;Lo;0;L;;;;;N;;;;;
+100D4;LINEAR B IDEOGRAM B249;Lo;0;L;;;;;N;;;;;
+100D5;LINEAR B IDEOGRAM B251;Lo;0;L;;;;;N;;;;;
+100D6;LINEAR B IDEOGRAM B252;Lo;0;L;;;;;N;;;;;
+100D7;LINEAR B IDEOGRAM B253;Lo;0;L;;;;;N;;;;;
+100D8;LINEAR B IDEOGRAM B254 DART;Lo;0;L;;;;;N;;;;;
+100D9;LINEAR B IDEOGRAM B255;Lo;0;L;;;;;N;;;;;
+100DA;LINEAR B IDEOGRAM B256;Lo;0;L;;;;;N;;;;;
+100DB;LINEAR B IDEOGRAM B257;Lo;0;L;;;;;N;;;;;
+100DC;LINEAR B IDEOGRAM B258;Lo;0;L;;;;;N;;;;;
+100DD;LINEAR B IDEOGRAM B259;Lo;0;L;;;;;N;;;;;
+100DE;LINEAR B IDEOGRAM VESSEL B155;Lo;0;L;;;;;N;;;;;
+100DF;LINEAR B IDEOGRAM VESSEL B200;Lo;0;L;;;;;N;;;;;
+100E0;LINEAR B IDEOGRAM VESSEL B201;Lo;0;L;;;;;N;;;;;
+100E1;LINEAR B IDEOGRAM VESSEL B202;Lo;0;L;;;;;N;;;;;
+100E2;LINEAR B IDEOGRAM VESSEL B203;Lo;0;L;;;;;N;;;;;
+100E3;LINEAR B IDEOGRAM VESSEL B204;Lo;0;L;;;;;N;;;;;
+100E4;LINEAR B IDEOGRAM VESSEL B205;Lo;0;L;;;;;N;;;;;
+100E5;LINEAR B IDEOGRAM VESSEL B206;Lo;0;L;;;;;N;;;;;
+100E6;LINEAR B IDEOGRAM VESSEL B207;Lo;0;L;;;;;N;;;;;
+100E7;LINEAR B IDEOGRAM VESSEL B208;Lo;0;L;;;;;N;;;;;
+100E8;LINEAR B IDEOGRAM VESSEL B209;Lo;0;L;;;;;N;;;;;
+100E9;LINEAR B IDEOGRAM VESSEL B210;Lo;0;L;;;;;N;;;;;
+100EA;LINEAR B IDEOGRAM VESSEL B211;Lo;0;L;;;;;N;;;;;
+100EB;LINEAR B IDEOGRAM VESSEL B212;Lo;0;L;;;;;N;;;;;
+100EC;LINEAR B IDEOGRAM VESSEL B213;Lo;0;L;;;;;N;;;;;
+100ED;LINEAR B IDEOGRAM VESSEL B214;Lo;0;L;;;;;N;;;;;
+100EE;LINEAR B IDEOGRAM VESSEL B215;Lo;0;L;;;;;N;;;;;
+100EF;LINEAR B IDEOGRAM VESSEL B216;Lo;0;L;;;;;N;;;;;
+100F0;LINEAR B IDEOGRAM VESSEL B217;Lo;0;L;;;;;N;;;;;
+100F1;LINEAR B IDEOGRAM VESSEL B218;Lo;0;L;;;;;N;;;;;
+100F2;LINEAR B IDEOGRAM VESSEL B219;Lo;0;L;;;;;N;;;;;
+100F3;LINEAR B IDEOGRAM VESSEL B221;Lo;0;L;;;;;N;;;;;
+100F4;LINEAR B IDEOGRAM VESSEL B222;Lo;0;L;;;;;N;;;;;
+100F5;LINEAR B IDEOGRAM VESSEL B226;Lo;0;L;;;;;N;;;;;
+100F6;LINEAR B IDEOGRAM VESSEL B227;Lo;0;L;;;;;N;;;;;
+100F7;LINEAR B IDEOGRAM VESSEL B228;Lo;0;L;;;;;N;;;;;
+100F8;LINEAR B IDEOGRAM VESSEL B229;Lo;0;L;;;;;N;;;;;
+100F9;LINEAR B IDEOGRAM VESSEL B250;Lo;0;L;;;;;N;;;;;
+100FA;LINEAR B IDEOGRAM VESSEL B305;Lo;0;L;;;;;N;;;;;
+10100;AEGEAN WORD SEPARATOR LINE;Po;0;L;;;;;N;;;;;
+10101;AEGEAN WORD SEPARATOR DOT;Po;0;ON;;;;;N;;;;;
+10102;AEGEAN CHECK MARK;So;0;L;;;;;N;;;;;
+10107;AEGEAN NUMBER ONE;No;0;L;;;;1;N;;;;;
+10108;AEGEAN NUMBER TWO;No;0;L;;;;2;N;;;;;
+10109;AEGEAN NUMBER THREE;No;0;L;;;;3;N;;;;;
+1010A;AEGEAN NUMBER FOUR;No;0;L;;;;4;N;;;;;
+1010B;AEGEAN NUMBER FIVE;No;0;L;;;;5;N;;;;;
+1010C;AEGEAN NUMBER SIX;No;0;L;;;;6;N;;;;;
+1010D;AEGEAN NUMBER SEVEN;No;0;L;;;;7;N;;;;;
+1010E;AEGEAN NUMBER EIGHT;No;0;L;;;;8;N;;;;;
+1010F;AEGEAN NUMBER NINE;No;0;L;;;;9;N;;;;;
+10110;AEGEAN NUMBER TEN;No;0;L;;;;10;N;;;;;
+10111;AEGEAN NUMBER TWENTY;No;0;L;;;;20;N;;;;;
+10112;AEGEAN NUMBER THIRTY;No;0;L;;;;30;N;;;;;
+10113;AEGEAN NUMBER FORTY;No;0;L;;;;40;N;;;;;
+10114;AEGEAN NUMBER FIFTY;No;0;L;;;;50;N;;;;;
+10115;AEGEAN NUMBER SIXTY;No;0;L;;;;60;N;;;;;
+10116;AEGEAN NUMBER SEVENTY;No;0;L;;;;70;N;;;;;
+10117;AEGEAN NUMBER EIGHTY;No;0;L;;;;80;N;;;;;
+10118;AEGEAN NUMBER NINETY;No;0;L;;;;90;N;;;;;
+10119;AEGEAN NUMBER ONE HUNDRED;No;0;L;;;;100;N;;;;;
+1011A;AEGEAN NUMBER TWO HUNDRED;No;0;L;;;;200;N;;;;;
+1011B;AEGEAN NUMBER THREE HUNDRED;No;0;L;;;;300;N;;;;;
+1011C;AEGEAN NUMBER FOUR HUNDRED;No;0;L;;;;400;N;;;;;
+1011D;AEGEAN NUMBER FIVE HUNDRED;No;0;L;;;;500;N;;;;;
+1011E;AEGEAN NUMBER SIX HUNDRED;No;0;L;;;;600;N;;;;;
+1011F;AEGEAN NUMBER SEVEN HUNDRED;No;0;L;;;;700;N;;;;;
+10120;AEGEAN NUMBER EIGHT HUNDRED;No;0;L;;;;800;N;;;;;
+10121;AEGEAN NUMBER NINE HUNDRED;No;0;L;;;;900;N;;;;;
+10122;AEGEAN NUMBER ONE THOUSAND;No;0;L;;;;1000;N;;;;;
+10123;AEGEAN NUMBER TWO THOUSAND;No;0;L;;;;2000;N;;;;;
+10124;AEGEAN NUMBER THREE THOUSAND;No;0;L;;;;3000;N;;;;;
+10125;AEGEAN NUMBER FOUR THOUSAND;No;0;L;;;;4000;N;;;;;
+10126;AEGEAN NUMBER FIVE THOUSAND;No;0;L;;;;5000;N;;;;;
+10127;AEGEAN NUMBER SIX THOUSAND;No;0;L;;;;6000;N;;;;;
+10128;AEGEAN NUMBER SEVEN THOUSAND;No;0;L;;;;7000;N;;;;;
+10129;AEGEAN NUMBER EIGHT THOUSAND;No;0;L;;;;8000;N;;;;;
+1012A;AEGEAN NUMBER NINE THOUSAND;No;0;L;;;;9000;N;;;;;
+1012B;AEGEAN NUMBER TEN THOUSAND;No;0;L;;;;10000;N;;;;;
+1012C;AEGEAN NUMBER TWENTY THOUSAND;No;0;L;;;;20000;N;;;;;
+1012D;AEGEAN NUMBER THIRTY THOUSAND;No;0;L;;;;30000;N;;;;;
+1012E;AEGEAN NUMBER FORTY THOUSAND;No;0;L;;;;40000;N;;;;;
+1012F;AEGEAN NUMBER FIFTY THOUSAND;No;0;L;;;;50000;N;;;;;
+10130;AEGEAN NUMBER SIXTY THOUSAND;No;0;L;;;;60000;N;;;;;
+10131;AEGEAN NUMBER SEVENTY THOUSAND;No;0;L;;;;70000;N;;;;;
+10132;AEGEAN NUMBER EIGHTY THOUSAND;No;0;L;;;;80000;N;;;;;
+10133;AEGEAN NUMBER NINETY THOUSAND;No;0;L;;;;90000;N;;;;;
+10137;AEGEAN WEIGHT BASE UNIT;So;0;L;;;;;N;;;;;
+10138;AEGEAN WEIGHT FIRST SUBUNIT;So;0;L;;;;;N;;;;;
+10139;AEGEAN WEIGHT SECOND SUBUNIT;So;0;L;;;;;N;;;;;
+1013A;AEGEAN WEIGHT THIRD SUBUNIT;So;0;L;;;;;N;;;;;
+1013B;AEGEAN WEIGHT FOURTH SUBUNIT;So;0;L;;;;;N;;;;;
+1013C;AEGEAN DRY MEASURE FIRST SUBUNIT;So;0;L;;;;;N;;;;;
+1013D;AEGEAN LIQUID MEASURE FIRST SUBUNIT;So;0;L;;;;;N;;;;;
+1013E;AEGEAN MEASURE SECOND SUBUNIT;So;0;L;;;;;N;;;;;
+1013F;AEGEAN MEASURE THIRD SUBUNIT;So;0;L;;;;;N;;;;;
+10140;GREEK ACROPHONIC ATTIC ONE QUARTER;Nl;0;ON;;;;1/4;N;;;;;
+10141;GREEK ACROPHONIC ATTIC ONE HALF;Nl;0;ON;;;;1/2;N;;;;;
+10142;GREEK ACROPHONIC ATTIC ONE DRACHMA;Nl;0;ON;;;;1;N;;;;;
+10143;GREEK ACROPHONIC ATTIC FIVE;Nl;0;ON;;;;5;N;;;;;
+10144;GREEK ACROPHONIC ATTIC FIFTY;Nl;0;ON;;;;50;N;;;;;
+10145;GREEK ACROPHONIC ATTIC FIVE HUNDRED;Nl;0;ON;;;;500;N;;;;;
+10146;GREEK ACROPHONIC ATTIC FIVE THOUSAND;Nl;0;ON;;;;5000;N;;;;;
+10147;GREEK ACROPHONIC ATTIC FIFTY THOUSAND;Nl;0;ON;;;;50000;N;;;;;
+10148;GREEK ACROPHONIC ATTIC FIVE TALENTS;Nl;0;ON;;;;5;N;;;;;
+10149;GREEK ACROPHONIC ATTIC TEN TALENTS;Nl;0;ON;;;;10;N;;;;;
+1014A;GREEK ACROPHONIC ATTIC FIFTY TALENTS;Nl;0;ON;;;;50;N;;;;;
+1014B;GREEK ACROPHONIC ATTIC ONE HUNDRED TALENTS;Nl;0;ON;;;;100;N;;;;;
+1014C;GREEK ACROPHONIC ATTIC FIVE HUNDRED TALENTS;Nl;0;ON;;;;500;N;;;;;
+1014D;GREEK ACROPHONIC ATTIC ONE THOUSAND TALENTS;Nl;0;ON;;;;1000;N;;;;;
+1014E;GREEK ACROPHONIC ATTIC FIVE THOUSAND TALENTS;Nl;0;ON;;;;5000;N;;;;;
+1014F;GREEK ACROPHONIC ATTIC FIVE STATERS;Nl;0;ON;;;;5;N;;;;;
+10150;GREEK ACROPHONIC ATTIC TEN STATERS;Nl;0;ON;;;;10;N;;;;;
+10151;GREEK ACROPHONIC ATTIC FIFTY STATERS;Nl;0;ON;;;;50;N;;;;;
+10152;GREEK ACROPHONIC ATTIC ONE HUNDRED STATERS;Nl;0;ON;;;;100;N;;;;;
+10153;GREEK ACROPHONIC ATTIC FIVE HUNDRED STATERS;Nl;0;ON;;;;500;N;;;;;
+10154;GREEK ACROPHONIC ATTIC ONE THOUSAND STATERS;Nl;0;ON;;;;1000;N;;;;;
+10155;GREEK ACROPHONIC ATTIC TEN THOUSAND STATERS;Nl;0;ON;;;;10000;N;;;;;
+10156;GREEK ACROPHONIC ATTIC FIFTY THOUSAND STATERS;Nl;0;ON;;;;50000;N;;;;;
+10157;GREEK ACROPHONIC ATTIC TEN MNAS;Nl;0;ON;;;;10;N;;;;;
+10158;GREEK ACROPHONIC HERAEUM ONE PLETHRON;Nl;0;ON;;;;1;N;;;;;
+10159;GREEK ACROPHONIC THESPIAN ONE;Nl;0;ON;;;;1;N;;;;;
+1015A;GREEK ACROPHONIC HERMIONIAN ONE;Nl;0;ON;;;;1;N;;;;;
+1015B;GREEK ACROPHONIC EPIDAUREAN TWO;Nl;0;ON;;;;2;N;;;;;
+1015C;GREEK ACROPHONIC THESPIAN TWO;Nl;0;ON;;;;2;N;;;;;
+1015D;GREEK ACROPHONIC CYRENAIC TWO DRACHMAS;Nl;0;ON;;;;2;N;;;;;
+1015E;GREEK ACROPHONIC EPIDAUREAN TWO DRACHMAS;Nl;0;ON;;;;2;N;;;;;
+1015F;GREEK ACROPHONIC TROEZENIAN FIVE;Nl;0;ON;;;;5;N;;;;;
+10160;GREEK ACROPHONIC TROEZENIAN TEN;Nl;0;ON;;;;10;N;;;;;
+10161;GREEK ACROPHONIC TROEZENIAN TEN ALTERNATE FORM;Nl;0;ON;;;;10;N;;;;;
+10162;GREEK ACROPHONIC HERMIONIAN TEN;Nl;0;ON;;;;10;N;;;;;
+10163;GREEK ACROPHONIC MESSENIAN TEN;Nl;0;ON;;;;10;N;;;;;
+10164;GREEK ACROPHONIC THESPIAN TEN;Nl;0;ON;;;;10;N;;;;;
+10165;GREEK ACROPHONIC THESPIAN THIRTY;Nl;0;ON;;;;30;N;;;;;
+10166;GREEK ACROPHONIC TROEZENIAN FIFTY;Nl;0;ON;;;;50;N;;;;;
+10167;GREEK ACROPHONIC TROEZENIAN FIFTY ALTERNATE FORM;Nl;0;ON;;;;50;N;;;;;
+10168;GREEK ACROPHONIC HERMIONIAN FIFTY;Nl;0;ON;;;;50;N;;;;;
+10169;GREEK ACROPHONIC THESPIAN FIFTY;Nl;0;ON;;;;50;N;;;;;
+1016A;GREEK ACROPHONIC THESPIAN ONE HUNDRED;Nl;0;ON;;;;100;N;;;;;
+1016B;GREEK ACROPHONIC THESPIAN THREE HUNDRED;Nl;0;ON;;;;300;N;;;;;
+1016C;GREEK ACROPHONIC EPIDAUREAN FIVE HUNDRED;Nl;0;ON;;;;500;N;;;;;
+1016D;GREEK ACROPHONIC TROEZENIAN FIVE HUNDRED;Nl;0;ON;;;;500;N;;;;;
+1016E;GREEK ACROPHONIC THESPIAN FIVE HUNDRED;Nl;0;ON;;;;500;N;;;;;
+1016F;GREEK ACROPHONIC CARYSTIAN FIVE HUNDRED;Nl;0;ON;;;;500;N;;;;;
+10170;GREEK ACROPHONIC NAXIAN FIVE HUNDRED;Nl;0;ON;;;;500;N;;;;;
+10171;GREEK ACROPHONIC THESPIAN ONE THOUSAND;Nl;0;ON;;;;1000;N;;;;;
+10172;GREEK ACROPHONIC THESPIAN FIVE THOUSAND;Nl;0;ON;;;;5000;N;;;;;
+10173;GREEK ACROPHONIC DELPHIC FIVE MNAS;Nl;0;ON;;;;5;N;;;;;
+10174;GREEK ACROPHONIC STRATIAN FIFTY MNAS;Nl;0;ON;;;;50;N;;;;;
+10175;GREEK ONE HALF SIGN;No;0;ON;;;;1/2;N;;;;;
+10176;GREEK ONE HALF SIGN ALTERNATE FORM;No;0;ON;;;;1/2;N;;;;;
+10177;GREEK TWO THIRDS SIGN;No;0;ON;;;;2/3;N;;;;;
+10178;GREEK THREE QUARTERS SIGN;No;0;ON;;;;3/4;N;;;;;
+10179;GREEK YEAR SIGN;So;0;ON;;;;;N;;;;;
+1017A;GREEK TALENT SIGN;So;0;ON;;;;;N;;;;;
+1017B;GREEK DRACHMA SIGN;So;0;ON;;;;;N;;;;;
+1017C;GREEK OBOL SIGN;So;0;ON;;;;;N;;;;;
+1017D;GREEK TWO OBOLS SIGN;So;0;ON;;;;;N;;;;;
+1017E;GREEK THREE OBOLS SIGN;So;0;ON;;;;;N;;;;;
+1017F;GREEK FOUR OBOLS SIGN;So;0;ON;;;;;N;;;;;
+10180;GREEK FIVE OBOLS SIGN;So;0;ON;;;;;N;;;;;
+10181;GREEK METRETES SIGN;So;0;ON;;;;;N;;;;;
+10182;GREEK KYATHOS BASE SIGN;So;0;ON;;;;;N;;;;;
+10183;GREEK LITRA SIGN;So;0;ON;;;;;N;;;;;
+10184;GREEK OUNKIA SIGN;So;0;ON;;;;;N;;;;;
+10185;GREEK XESTES SIGN;So;0;ON;;;;;N;;;;;
+10186;GREEK ARTABE SIGN;So;0;ON;;;;;N;;;;;
+10187;GREEK AROURA SIGN;So;0;ON;;;;;N;;;;;
+10188;GREEK GRAMMA SIGN;So;0;ON;;;;;N;;;;;
+10189;GREEK TRYBLION BASE SIGN;So;0;ON;;;;;N;;;;;
+1018A;GREEK ZERO SIGN;No;0;ON;;;;0;N;;;;;
+10300;OLD ITALIC LETTER A;Lo;0;L;;;;;N;;;;;
+10301;OLD ITALIC LETTER BE;Lo;0;L;;;;;N;;;;;
+10302;OLD ITALIC LETTER KE;Lo;0;L;;;;;N;;;;;
+10303;OLD ITALIC LETTER DE;Lo;0;L;;;;;N;;;;;
+10304;OLD ITALIC LETTER E;Lo;0;L;;;;;N;;;;;
+10305;OLD ITALIC LETTER VE;Lo;0;L;;;;;N;;;;;
+10306;OLD ITALIC LETTER ZE;Lo;0;L;;;;;N;;;;;
+10307;OLD ITALIC LETTER HE;Lo;0;L;;;;;N;;;;;
+10308;OLD ITALIC LETTER THE;Lo;0;L;;;;;N;;;;;
+10309;OLD ITALIC LETTER I;Lo;0;L;;;;;N;;;;;
+1030A;OLD ITALIC LETTER KA;Lo;0;L;;;;;N;;;;;
+1030B;OLD ITALIC LETTER EL;Lo;0;L;;;;;N;;;;;
+1030C;OLD ITALIC LETTER EM;Lo;0;L;;;;;N;;;;;
+1030D;OLD ITALIC LETTER EN;Lo;0;L;;;;;N;;;;;
+1030E;OLD ITALIC LETTER ESH;Lo;0;L;;;;;N;;;;;
+1030F;OLD ITALIC LETTER O;Lo;0;L;;;;;N;;Faliscan;;;
+10310;OLD ITALIC LETTER PE;Lo;0;L;;;;;N;;;;;
+10311;OLD ITALIC LETTER SHE;Lo;0;L;;;;;N;;;;;
+10312;OLD ITALIC LETTER KU;Lo;0;L;;;;;N;;;;;
+10313;OLD ITALIC LETTER ER;Lo;0;L;;;;;N;;;;;
+10314;OLD ITALIC LETTER ES;Lo;0;L;;;;;N;;;;;
+10315;OLD ITALIC LETTER TE;Lo;0;L;;;;;N;;;;;
+10316;OLD ITALIC LETTER U;Lo;0;L;;;;;N;;;;;
+10317;OLD ITALIC LETTER EKS;Lo;0;L;;;;;N;;Faliscan;;;
+10318;OLD ITALIC LETTER PHE;Lo;0;L;;;;;N;;;;;
+10319;OLD ITALIC LETTER KHE;Lo;0;L;;;;;N;;;;;
+1031A;OLD ITALIC LETTER EF;Lo;0;L;;;;;N;;;;;
+1031B;OLD ITALIC LETTER ERS;Lo;0;L;;;;;N;;Umbrian;;;
+1031C;OLD ITALIC LETTER CHE;Lo;0;L;;;;;N;;Umbrian;;;
+1031D;OLD ITALIC LETTER II;Lo;0;L;;;;;N;;Oscan;;;
+1031E;OLD ITALIC LETTER UU;Lo;0;L;;;;;N;;Oscan;;;
+10320;OLD ITALIC NUMERAL ONE;No;0;L;;;;1;N;;;;;
+10321;OLD ITALIC NUMERAL FIVE;No;0;L;;;;5;N;;;;;
+10322;OLD ITALIC NUMERAL TEN;No;0;L;;;;10;N;;;;;
+10323;OLD ITALIC NUMERAL FIFTY;No;0;L;;;;50;N;;;;;
+10330;GOTHIC LETTER AHSA;Lo;0;L;;;;;N;;;;;
+10331;GOTHIC LETTER BAIRKAN;Lo;0;L;;;;;N;;;;;
+10332;GOTHIC LETTER GIBA;Lo;0;L;;;;;N;;;;;
+10333;GOTHIC LETTER DAGS;Lo;0;L;;;;;N;;;;;
+10334;GOTHIC LETTER AIHVUS;Lo;0;L;;;;;N;;;;;
+10335;GOTHIC LETTER QAIRTHRA;Lo;0;L;;;;;N;;;;;
+10336;GOTHIC LETTER IUJA;Lo;0;L;;;;;N;;;;;
+10337;GOTHIC LETTER HAGL;Lo;0;L;;;;;N;;;;;
+10338;GOTHIC LETTER THIUTH;Lo;0;L;;;;;N;;;;;
+10339;GOTHIC LETTER EIS;Lo;0;L;;;;;N;;;;;
+1033A;GOTHIC LETTER KUSMA;Lo;0;L;;;;;N;;;;;
+1033B;GOTHIC LETTER LAGUS;Lo;0;L;;;;;N;;;;;
+1033C;GOTHIC LETTER MANNA;Lo;0;L;;;;;N;;;;;
+1033D;GOTHIC LETTER NAUTHS;Lo;0;L;;;;;N;;;;;
+1033E;GOTHIC LETTER JER;Lo;0;L;;;;;N;;;;;
+1033F;GOTHIC LETTER URUS;Lo;0;L;;;;;N;;;;;
+10340;GOTHIC LETTER PAIRTHRA;Lo;0;L;;;;;N;;;;;
+10341;GOTHIC LETTER NINETY;Nl;0;L;;;;90;N;;;;;
+10342;GOTHIC LETTER RAIDA;Lo;0;L;;;;;N;;;;;
+10343;GOTHIC LETTER SAUIL;Lo;0;L;;;;;N;;;;;
+10344;GOTHIC LETTER TEIWS;Lo;0;L;;;;;N;;;;;
+10345;GOTHIC LETTER WINJA;Lo;0;L;;;;;N;;;;;
+10346;GOTHIC LETTER FAIHU;Lo;0;L;;;;;N;;;;;
+10347;GOTHIC LETTER IGGWS;Lo;0;L;;;;;N;;;;;
+10348;GOTHIC LETTER HWAIR;Lo;0;L;;;;;N;;;;;
+10349;GOTHIC LETTER OTHAL;Lo;0;L;;;;;N;;;;;
+1034A;GOTHIC LETTER NINE HUNDRED;Nl;0;L;;;;900;N;;;;;
+10380;UGARITIC LETTER ALPA;Lo;0;L;;;;;N;;;;;
+10381;UGARITIC LETTER BETA;Lo;0;L;;;;;N;;;;;
+10382;UGARITIC LETTER GAMLA;Lo;0;L;;;;;N;;;;;
+10383;UGARITIC LETTER KHA;Lo;0;L;;;;;N;;;;;
+10384;UGARITIC LETTER DELTA;Lo;0;L;;;;;N;;;;;
+10385;UGARITIC LETTER HO;Lo;0;L;;;;;N;;;;;
+10386;UGARITIC LETTER WO;Lo;0;L;;;;;N;;;;;
+10387;UGARITIC LETTER ZETA;Lo;0;L;;;;;N;;;;;
+10388;UGARITIC LETTER HOTA;Lo;0;L;;;;;N;;;;;
+10389;UGARITIC LETTER TET;Lo;0;L;;;;;N;;;;;
+1038A;UGARITIC LETTER YOD;Lo;0;L;;;;;N;;;;;
+1038B;UGARITIC LETTER KAF;Lo;0;L;;;;;N;;;;;
+1038C;UGARITIC LETTER SHIN;Lo;0;L;;;;;N;;;;;
+1038D;UGARITIC LETTER LAMDA;Lo;0;L;;;;;N;;;;;
+1038E;UGARITIC LETTER MEM;Lo;0;L;;;;;N;;;;;
+1038F;UGARITIC LETTER DHAL;Lo;0;L;;;;;N;;;;;
+10390;UGARITIC LETTER NUN;Lo;0;L;;;;;N;;;;;
+10391;UGARITIC LETTER ZU;Lo;0;L;;;;;N;;;;;
+10392;UGARITIC LETTER SAMKA;Lo;0;L;;;;;N;;;;;
+10393;UGARITIC LETTER AIN;Lo;0;L;;;;;N;;;;;
+10394;UGARITIC LETTER PU;Lo;0;L;;;;;N;;;;;
+10395;UGARITIC LETTER SADE;Lo;0;L;;;;;N;;;;;
+10396;UGARITIC LETTER QOPA;Lo;0;L;;;;;N;;;;;
+10397;UGARITIC LETTER RASHA;Lo;0;L;;;;;N;;;;;
+10398;UGARITIC LETTER THANNA;Lo;0;L;;;;;N;;;;;
+10399;UGARITIC LETTER GHAIN;Lo;0;L;;;;;N;;;;;
+1039A;UGARITIC LETTER TO;Lo;0;L;;;;;N;;;;;
+1039B;UGARITIC LETTER I;Lo;0;L;;;;;N;;;;;
+1039C;UGARITIC LETTER U;Lo;0;L;;;;;N;;;;;
+1039D;UGARITIC LETTER SSU;Lo;0;L;;;;;N;;;;;
+1039F;UGARITIC WORD DIVIDER;Po;0;L;;;;;N;;;;;
+103A0;OLD PERSIAN SIGN A;Lo;0;L;;;;;N;;;;;
+103A1;OLD PERSIAN SIGN I;Lo;0;L;;;;;N;;;;;
+103A2;OLD PERSIAN SIGN U;Lo;0;L;;;;;N;;;;;
+103A3;OLD PERSIAN SIGN KA;Lo;0;L;;;;;N;;;;;
+103A4;OLD PERSIAN SIGN KU;Lo;0;L;;;;;N;;;;;
+103A5;OLD PERSIAN SIGN GA;Lo;0;L;;;;;N;;;;;
+103A6;OLD PERSIAN SIGN GU;Lo;0;L;;;;;N;;;;;
+103A7;OLD PERSIAN SIGN XA;Lo;0;L;;;;;N;;;;;
+103A8;OLD PERSIAN SIGN CA;Lo;0;L;;;;;N;;;;;
+103A9;OLD PERSIAN SIGN JA;Lo;0;L;;;;;N;;;;;
+103AA;OLD PERSIAN SIGN JI;Lo;0;L;;;;;N;;;;;
+103AB;OLD PERSIAN SIGN TA;Lo;0;L;;;;;N;;;;;
+103AC;OLD PERSIAN SIGN TU;Lo;0;L;;;;;N;;;;;
+103AD;OLD PERSIAN SIGN DA;Lo;0;L;;;;;N;;;;;
+103AE;OLD PERSIAN SIGN DI;Lo;0;L;;;;;N;;;;;
+103AF;OLD PERSIAN SIGN DU;Lo;0;L;;;;;N;;;;;
+103B0;OLD PERSIAN SIGN THA;Lo;0;L;;;;;N;;;;;
+103B1;OLD PERSIAN SIGN PA;Lo;0;L;;;;;N;;;;;
+103B2;OLD PERSIAN SIGN BA;Lo;0;L;;;;;N;;;;;
+103B3;OLD PERSIAN SIGN FA;Lo;0;L;;;;;N;;;;;
+103B4;OLD PERSIAN SIGN NA;Lo;0;L;;;;;N;;;;;
+103B5;OLD PERSIAN SIGN NU;Lo;0;L;;;;;N;;;;;
+103B6;OLD PERSIAN SIGN MA;Lo;0;L;;;;;N;;;;;
+103B7;OLD PERSIAN SIGN MI;Lo;0;L;;;;;N;;;;;
+103B8;OLD PERSIAN SIGN MU;Lo;0;L;;;;;N;;;;;
+103B9;OLD PERSIAN SIGN YA;Lo;0;L;;;;;N;;;;;
+103BA;OLD PERSIAN SIGN VA;Lo;0;L;;;;;N;;;;;
+103BB;OLD PERSIAN SIGN VI;Lo;0;L;;;;;N;;;;;
+103BC;OLD PERSIAN SIGN RA;Lo;0;L;;;;;N;;;;;
+103BD;OLD PERSIAN SIGN RU;Lo;0;L;;;;;N;;;;;
+103BE;OLD PERSIAN SIGN LA;Lo;0;L;;;;;N;;;;;
+103BF;OLD PERSIAN SIGN SA;Lo;0;L;;;;;N;;;;;
+103C0;OLD PERSIAN SIGN ZA;Lo;0;L;;;;;N;;;;;
+103C1;OLD PERSIAN SIGN SHA;Lo;0;L;;;;;N;;;;;
+103C2;OLD PERSIAN SIGN SSA;Lo;0;L;;;;;N;;;;;
+103C3;OLD PERSIAN SIGN HA;Lo;0;L;;;;;N;;;;;
+103C8;OLD PERSIAN SIGN AURAMAZDAA;Lo;0;L;;;;;N;;;;;
+103C9;OLD PERSIAN SIGN AURAMAZDAA-2;Lo;0;L;;;;;N;;;;;
+103CA;OLD PERSIAN SIGN AURAMAZDAAHA;Lo;0;L;;;;;N;;;;;
+103CB;OLD PERSIAN SIGN XSHAAYATHIYA;Lo;0;L;;;;;N;;;;;
+103CC;OLD PERSIAN SIGN DAHYAAUSH;Lo;0;L;;;;;N;;;;;
+103CD;OLD PERSIAN SIGN DAHYAAUSH-2;Lo;0;L;;;;;N;;;;;
+103CE;OLD PERSIAN SIGN BAGA;Lo;0;L;;;;;N;;;;;
+103CF;OLD PERSIAN SIGN BUUMISH;Lo;0;L;;;;;N;;;;;
+103D0;OLD PERSIAN WORD DIVIDER;Po;0;L;;;;;N;;;;;
+103D1;OLD PERSIAN NUMBER ONE;Nl;0;L;;;;1;N;;;;;
+103D2;OLD PERSIAN NUMBER TWO;Nl;0;L;;;;2;N;;;;;
+103D3;OLD PERSIAN NUMBER TEN;Nl;0;L;;;;10;N;;;;;
+103D4;OLD PERSIAN NUMBER TWENTY;Nl;0;L;;;;20;N;;;;;
+103D5;OLD PERSIAN NUMBER HUNDRED;Nl;0;L;;;;100;N;;;;;
+10400;DESERET CAPITAL LETTER LONG I;Lu;0;L;;;;;N;;;;10428;
+10401;DESERET CAPITAL LETTER LONG E;Lu;0;L;;;;;N;;;;10429;
+10402;DESERET CAPITAL LETTER LONG A;Lu;0;L;;;;;N;;;;1042A;
+10403;DESERET CAPITAL LETTER LONG AH;Lu;0;L;;;;;N;;;;1042B;
+10404;DESERET CAPITAL LETTER LONG O;Lu;0;L;;;;;N;;;;1042C;
+10405;DESERET CAPITAL LETTER LONG OO;Lu;0;L;;;;;N;;;;1042D;
+10406;DESERET CAPITAL LETTER SHORT I;Lu;0;L;;;;;N;;;;1042E;
+10407;DESERET CAPITAL LETTER SHORT E;Lu;0;L;;;;;N;;;;1042F;
+10408;DESERET CAPITAL LETTER SHORT A;Lu;0;L;;;;;N;;;;10430;
+10409;DESERET CAPITAL LETTER SHORT AH;Lu;0;L;;;;;N;;;;10431;
+1040A;DESERET CAPITAL LETTER SHORT O;Lu;0;L;;;;;N;;;;10432;
+1040B;DESERET CAPITAL LETTER SHORT OO;Lu;0;L;;;;;N;;;;10433;
+1040C;DESERET CAPITAL LETTER AY;Lu;0;L;;;;;N;;;;10434;
+1040D;DESERET CAPITAL LETTER OW;Lu;0;L;;;;;N;;;;10435;
+1040E;DESERET CAPITAL LETTER WU;Lu;0;L;;;;;N;;;;10436;
+1040F;DESERET CAPITAL LETTER YEE;Lu;0;L;;;;;N;;;;10437;
+10410;DESERET CAPITAL LETTER H;Lu;0;L;;;;;N;;;;10438;
+10411;DESERET CAPITAL LETTER PEE;Lu;0;L;;;;;N;;;;10439;
+10412;DESERET CAPITAL LETTER BEE;Lu;0;L;;;;;N;;;;1043A;
+10413;DESERET CAPITAL LETTER TEE;Lu;0;L;;;;;N;;;;1043B;
+10414;DESERET CAPITAL LETTER DEE;Lu;0;L;;;;;N;;;;1043C;
+10415;DESERET CAPITAL LETTER CHEE;Lu;0;L;;;;;N;;;;1043D;
+10416;DESERET CAPITAL LETTER JEE;Lu;0;L;;;;;N;;;;1043E;
+10417;DESERET CAPITAL LETTER KAY;Lu;0;L;;;;;N;;;;1043F;
+10418;DESERET CAPITAL LETTER GAY;Lu;0;L;;;;;N;;;;10440;
+10419;DESERET CAPITAL LETTER EF;Lu;0;L;;;;;N;;;;10441;
+1041A;DESERET CAPITAL LETTER VEE;Lu;0;L;;;;;N;;;;10442;
+1041B;DESERET CAPITAL LETTER ETH;Lu;0;L;;;;;N;;;;10443;
+1041C;DESERET CAPITAL LETTER THEE;Lu;0;L;;;;;N;;;;10444;
+1041D;DESERET CAPITAL LETTER ES;Lu;0;L;;;;;N;;;;10445;
+1041E;DESERET CAPITAL LETTER ZEE;Lu;0;L;;;;;N;;;;10446;
+1041F;DESERET CAPITAL LETTER ESH;Lu;0;L;;;;;N;;;;10447;
+10420;DESERET CAPITAL LETTER ZHEE;Lu;0;L;;;;;N;;;;10448;
+10421;DESERET CAPITAL LETTER ER;Lu;0;L;;;;;N;;;;10449;
+10422;DESERET CAPITAL LETTER EL;Lu;0;L;;;;;N;;;;1044A;
+10423;DESERET CAPITAL LETTER EM;Lu;0;L;;;;;N;;;;1044B;
+10424;DESERET CAPITAL LETTER EN;Lu;0;L;;;;;N;;;;1044C;
+10425;DESERET CAPITAL LETTER ENG;Lu;0;L;;;;;N;;;;1044D;
+10426;DESERET CAPITAL LETTER OI;Lu;0;L;;;;;N;;;;1044E;
+10427;DESERET CAPITAL LETTER EW;Lu;0;L;;;;;N;;;;1044F;
+10428;DESERET SMALL LETTER LONG I;Ll;0;L;;;;;N;;;10400;;10400
+10429;DESERET SMALL LETTER LONG E;Ll;0;L;;;;;N;;;10401;;10401
+1042A;DESERET SMALL LETTER LONG A;Ll;0;L;;;;;N;;;10402;;10402
+1042B;DESERET SMALL LETTER LONG AH;Ll;0;L;;;;;N;;;10403;;10403
+1042C;DESERET SMALL LETTER LONG O;Ll;0;L;;;;;N;;;10404;;10404
+1042D;DESERET SMALL LETTER LONG OO;Ll;0;L;;;;;N;;;10405;;10405
+1042E;DESERET SMALL LETTER SHORT I;Ll;0;L;;;;;N;;;10406;;10406
+1042F;DESERET SMALL LETTER SHORT E;Ll;0;L;;;;;N;;;10407;;10407
+10430;DESERET SMALL LETTER SHORT A;Ll;0;L;;;;;N;;;10408;;10408
+10431;DESERET SMALL LETTER SHORT AH;Ll;0;L;;;;;N;;;10409;;10409
+10432;DESERET SMALL LETTER SHORT O;Ll;0;L;;;;;N;;;1040A;;1040A
+10433;DESERET SMALL LETTER SHORT OO;Ll;0;L;;;;;N;;;1040B;;1040B
+10434;DESERET SMALL LETTER AY;Ll;0;L;;;;;N;;;1040C;;1040C
+10435;DESERET SMALL LETTER OW;Ll;0;L;;;;;N;;;1040D;;1040D
+10436;DESERET SMALL LETTER WU;Ll;0;L;;;;;N;;;1040E;;1040E
+10437;DESERET SMALL LETTER YEE;Ll;0;L;;;;;N;;;1040F;;1040F
+10438;DESERET SMALL LETTER H;Ll;0;L;;;;;N;;;10410;;10410
+10439;DESERET SMALL LETTER PEE;Ll;0;L;;;;;N;;;10411;;10411
+1043A;DESERET SMALL LETTER BEE;Ll;0;L;;;;;N;;;10412;;10412
+1043B;DESERET SMALL LETTER TEE;Ll;0;L;;;;;N;;;10413;;10413
+1043C;DESERET SMALL LETTER DEE;Ll;0;L;;;;;N;;;10414;;10414
+1043D;DESERET SMALL LETTER CHEE;Ll;0;L;;;;;N;;;10415;;10415
+1043E;DESERET SMALL LETTER JEE;Ll;0;L;;;;;N;;;10416;;10416
+1043F;DESERET SMALL LETTER KAY;Ll;0;L;;;;;N;;;10417;;10417
+10440;DESERET SMALL LETTER GAY;Ll;0;L;;;;;N;;;10418;;10418
+10441;DESERET SMALL LETTER EF;Ll;0;L;;;;;N;;;10419;;10419
+10442;DESERET SMALL LETTER VEE;Ll;0;L;;;;;N;;;1041A;;1041A
+10443;DESERET SMALL LETTER ETH;Ll;0;L;;;;;N;;;1041B;;1041B
+10444;DESERET SMALL LETTER THEE;Ll;0;L;;;;;N;;;1041C;;1041C
+10445;DESERET SMALL LETTER ES;Ll;0;L;;;;;N;;;1041D;;1041D
+10446;DESERET SMALL LETTER ZEE;Ll;0;L;;;;;N;;;1041E;;1041E
+10447;DESERET SMALL LETTER ESH;Ll;0;L;;;;;N;;;1041F;;1041F
+10448;DESERET SMALL LETTER ZHEE;Ll;0;L;;;;;N;;;10420;;10420
+10449;DESERET SMALL LETTER ER;Ll;0;L;;;;;N;;;10421;;10421
+1044A;DESERET SMALL LETTER EL;Ll;0;L;;;;;N;;;10422;;10422
+1044B;DESERET SMALL LETTER EM;Ll;0;L;;;;;N;;;10423;;10423
+1044C;DESERET SMALL LETTER EN;Ll;0;L;;;;;N;;;10424;;10424
+1044D;DESERET SMALL LETTER ENG;Ll;0;L;;;;;N;;;10425;;10425
+1044E;DESERET SMALL LETTER OI;Ll;0;L;;;;;N;;;10426;;10426
+1044F;DESERET SMALL LETTER EW;Ll;0;L;;;;;N;;;10427;;10427
+10450;SHAVIAN LETTER PEEP;Lo;0;L;;;;;N;;;;;
+10451;SHAVIAN LETTER TOT;Lo;0;L;;;;;N;;;;;
+10452;SHAVIAN LETTER KICK;Lo;0;L;;;;;N;;;;;
+10453;SHAVIAN LETTER FEE;Lo;0;L;;;;;N;;;;;
+10454;SHAVIAN LETTER THIGH;Lo;0;L;;;;;N;;;;;
+10455;SHAVIAN LETTER SO;Lo;0;L;;;;;N;;;;;
+10456;SHAVIAN LETTER SURE;Lo;0;L;;;;;N;;;;;
+10457;SHAVIAN LETTER CHURCH;Lo;0;L;;;;;N;;;;;
+10458;SHAVIAN LETTER YEA;Lo;0;L;;;;;N;;;;;
+10459;SHAVIAN LETTER HUNG;Lo;0;L;;;;;N;;;;;
+1045A;SHAVIAN LETTER BIB;Lo;0;L;;;;;N;;;;;
+1045B;SHAVIAN LETTER DEAD;Lo;0;L;;;;;N;;;;;
+1045C;SHAVIAN LETTER GAG;Lo;0;L;;;;;N;;;;;
+1045D;SHAVIAN LETTER VOW;Lo;0;L;;;;;N;;;;;
+1045E;SHAVIAN LETTER THEY;Lo;0;L;;;;;N;;;;;
+1045F;SHAVIAN LETTER ZOO;Lo;0;L;;;;;N;;;;;
+10460;SHAVIAN LETTER MEASURE;Lo;0;L;;;;;N;;;;;
+10461;SHAVIAN LETTER JUDGE;Lo;0;L;;;;;N;;;;;
+10462;SHAVIAN LETTER WOE;Lo;0;L;;;;;N;;;;;
+10463;SHAVIAN LETTER HA-HA;Lo;0;L;;;;;N;;;;;
+10464;SHAVIAN LETTER LOLL;Lo;0;L;;;;;N;;;;;
+10465;SHAVIAN LETTER MIME;Lo;0;L;;;;;N;;;;;
+10466;SHAVIAN LETTER IF;Lo;0;L;;;;;N;;;;;
+10467;SHAVIAN LETTER EGG;Lo;0;L;;;;;N;;;;;
+10468;SHAVIAN LETTER ASH;Lo;0;L;;;;;N;;;;;
+10469;SHAVIAN LETTER ADO;Lo;0;L;;;;;N;;;;;
+1046A;SHAVIAN LETTER ON;Lo;0;L;;;;;N;;;;;
+1046B;SHAVIAN LETTER WOOL;Lo;0;L;;;;;N;;;;;
+1046C;SHAVIAN LETTER OUT;Lo;0;L;;;;;N;;;;;
+1046D;SHAVIAN LETTER AH;Lo;0;L;;;;;N;;;;;
+1046E;SHAVIAN LETTER ROAR;Lo;0;L;;;;;N;;;;;
+1046F;SHAVIAN LETTER NUN;Lo;0;L;;;;;N;;;;;
+10470;SHAVIAN LETTER EAT;Lo;0;L;;;;;N;;;;;
+10471;SHAVIAN LETTER AGE;Lo;0;L;;;;;N;;;;;
+10472;SHAVIAN LETTER ICE;Lo;0;L;;;;;N;;;;;
+10473;SHAVIAN LETTER UP;Lo;0;L;;;;;N;;;;;
+10474;SHAVIAN LETTER OAK;Lo;0;L;;;;;N;;;;;
+10475;SHAVIAN LETTER OOZE;Lo;0;L;;;;;N;;;;;
+10476;SHAVIAN LETTER OIL;Lo;0;L;;;;;N;;;;;
+10477;SHAVIAN LETTER AWE;Lo;0;L;;;;;N;;;;;
+10478;SHAVIAN LETTER ARE;Lo;0;L;;;;;N;;;;;
+10479;SHAVIAN LETTER OR;Lo;0;L;;;;;N;;;;;
+1047A;SHAVIAN LETTER AIR;Lo;0;L;;;;;N;;;;;
+1047B;SHAVIAN LETTER ERR;Lo;0;L;;;;;N;;;;;
+1047C;SHAVIAN LETTER ARRAY;Lo;0;L;;;;;N;;;;;
+1047D;SHAVIAN LETTER EAR;Lo;0;L;;;;;N;;;;;
+1047E;SHAVIAN LETTER IAN;Lo;0;L;;;;;N;;;;;
+1047F;SHAVIAN LETTER YEW;Lo;0;L;;;;;N;;;;;
+10480;OSMANYA LETTER ALEF;Lo;0;L;;;;;N;;;;;
+10481;OSMANYA LETTER BA;Lo;0;L;;;;;N;;;;;
+10482;OSMANYA LETTER TA;Lo;0;L;;;;;N;;;;;
+10483;OSMANYA LETTER JA;Lo;0;L;;;;;N;;;;;
+10484;OSMANYA LETTER XA;Lo;0;L;;;;;N;;;;;
+10485;OSMANYA LETTER KHA;Lo;0;L;;;;;N;;;;;
+10486;OSMANYA LETTER DEEL;Lo;0;L;;;;;N;;;;;
+10487;OSMANYA LETTER RA;Lo;0;L;;;;;N;;;;;
+10488;OSMANYA LETTER SA;Lo;0;L;;;;;N;;;;;
+10489;OSMANYA LETTER SHIIN;Lo;0;L;;;;;N;;;;;
+1048A;OSMANYA LETTER DHA;Lo;0;L;;;;;N;;;;;
+1048B;OSMANYA LETTER CAYN;Lo;0;L;;;;;N;;;;;
+1048C;OSMANYA LETTER GA;Lo;0;L;;;;;N;;;;;
+1048D;OSMANYA LETTER FA;Lo;0;L;;;;;N;;;;;
+1048E;OSMANYA LETTER QAAF;Lo;0;L;;;;;N;;;;;
+1048F;OSMANYA LETTER KAAF;Lo;0;L;;;;;N;;;;;
+10490;OSMANYA LETTER LAAN;Lo;0;L;;;;;N;;;;;
+10491;OSMANYA LETTER MIIN;Lo;0;L;;;;;N;;;;;
+10492;OSMANYA LETTER NUUN;Lo;0;L;;;;;N;;;;;
+10493;OSMANYA LETTER WAW;Lo;0;L;;;;;N;;;;;
+10494;OSMANYA LETTER HA;Lo;0;L;;;;;N;;;;;
+10495;OSMANYA LETTER YA;Lo;0;L;;;;;N;;;;;
+10496;OSMANYA LETTER A;Lo;0;L;;;;;N;;;;;
+10497;OSMANYA LETTER E;Lo;0;L;;;;;N;;;;;
+10498;OSMANYA LETTER I;Lo;0;L;;;;;N;;;;;
+10499;OSMANYA LETTER O;Lo;0;L;;;;;N;;;;;
+1049A;OSMANYA LETTER U;Lo;0;L;;;;;N;;;;;
+1049B;OSMANYA LETTER AA;Lo;0;L;;;;;N;;;;;
+1049C;OSMANYA LETTER EE;Lo;0;L;;;;;N;;;;;
+1049D;OSMANYA LETTER OO;Lo;0;L;;;;;N;;;;;
+104A0;OSMANYA DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+104A1;OSMANYA DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+104A2;OSMANYA DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+104A3;OSMANYA DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+104A4;OSMANYA DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+104A5;OSMANYA DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+104A6;OSMANYA DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+104A7;OSMANYA DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+104A8;OSMANYA DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+104A9;OSMANYA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+10800;CYPRIOT SYLLABLE A;Lo;0;R;;;;;N;;;;;
+10801;CYPRIOT SYLLABLE E;Lo;0;R;;;;;N;;;;;
+10802;CYPRIOT SYLLABLE I;Lo;0;R;;;;;N;;;;;
+10803;CYPRIOT SYLLABLE O;Lo;0;R;;;;;N;;;;;
+10804;CYPRIOT SYLLABLE U;Lo;0;R;;;;;N;;;;;
+10805;CYPRIOT SYLLABLE JA;Lo;0;R;;;;;N;;;;;
+10808;CYPRIOT SYLLABLE JO;Lo;0;R;;;;;N;;;;;
+1080A;CYPRIOT SYLLABLE KA;Lo;0;R;;;;;N;;;;;
+1080B;CYPRIOT SYLLABLE KE;Lo;0;R;;;;;N;;;;;
+1080C;CYPRIOT SYLLABLE KI;Lo;0;R;;;;;N;;;;;
+1080D;CYPRIOT SYLLABLE KO;Lo;0;R;;;;;N;;;;;
+1080E;CYPRIOT SYLLABLE KU;Lo;0;R;;;;;N;;;;;
+1080F;CYPRIOT SYLLABLE LA;Lo;0;R;;;;;N;;;;;
+10810;CYPRIOT SYLLABLE LE;Lo;0;R;;;;;N;;;;;
+10811;CYPRIOT SYLLABLE LI;Lo;0;R;;;;;N;;;;;
+10812;CYPRIOT SYLLABLE LO;Lo;0;R;;;;;N;;;;;
+10813;CYPRIOT SYLLABLE LU;Lo;0;R;;;;;N;;;;;
+10814;CYPRIOT SYLLABLE MA;Lo;0;R;;;;;N;;;;;
+10815;CYPRIOT SYLLABLE ME;Lo;0;R;;;;;N;;;;;
+10816;CYPRIOT SYLLABLE MI;Lo;0;R;;;;;N;;;;;
+10817;CYPRIOT SYLLABLE MO;Lo;0;R;;;;;N;;;;;
+10818;CYPRIOT SYLLABLE MU;Lo;0;R;;;;;N;;;;;
+10819;CYPRIOT SYLLABLE NA;Lo;0;R;;;;;N;;;;;
+1081A;CYPRIOT SYLLABLE NE;Lo;0;R;;;;;N;;;;;
+1081B;CYPRIOT SYLLABLE NI;Lo;0;R;;;;;N;;;;;
+1081C;CYPRIOT SYLLABLE NO;Lo;0;R;;;;;N;;;;;
+1081D;CYPRIOT SYLLABLE NU;Lo;0;R;;;;;N;;;;;
+1081E;CYPRIOT SYLLABLE PA;Lo;0;R;;;;;N;;;;;
+1081F;CYPRIOT SYLLABLE PE;Lo;0;R;;;;;N;;;;;
+10820;CYPRIOT SYLLABLE PI;Lo;0;R;;;;;N;;;;;
+10821;CYPRIOT SYLLABLE PO;Lo;0;R;;;;;N;;;;;
+10822;CYPRIOT SYLLABLE PU;Lo;0;R;;;;;N;;;;;
+10823;CYPRIOT SYLLABLE RA;Lo;0;R;;;;;N;;;;;
+10824;CYPRIOT SYLLABLE RE;Lo;0;R;;;;;N;;;;;
+10825;CYPRIOT SYLLABLE RI;Lo;0;R;;;;;N;;;;;
+10826;CYPRIOT SYLLABLE RO;Lo;0;R;;;;;N;;;;;
+10827;CYPRIOT SYLLABLE RU;Lo;0;R;;;;;N;;;;;
+10828;CYPRIOT SYLLABLE SA;Lo;0;R;;;;;N;;;;;
+10829;CYPRIOT SYLLABLE SE;Lo;0;R;;;;;N;;;;;
+1082A;CYPRIOT SYLLABLE SI;Lo;0;R;;;;;N;;;;;
+1082B;CYPRIOT SYLLABLE SO;Lo;0;R;;;;;N;;;;;
+1082C;CYPRIOT SYLLABLE SU;Lo;0;R;;;;;N;;;;;
+1082D;CYPRIOT SYLLABLE TA;Lo;0;R;;;;;N;;;;;
+1082E;CYPRIOT SYLLABLE TE;Lo;0;R;;;;;N;;;;;
+1082F;CYPRIOT SYLLABLE TI;Lo;0;R;;;;;N;;;;;
+10830;CYPRIOT SYLLABLE TO;Lo;0;R;;;;;N;;;;;
+10831;CYPRIOT SYLLABLE TU;Lo;0;R;;;;;N;;;;;
+10832;CYPRIOT SYLLABLE WA;Lo;0;R;;;;;N;;;;;
+10833;CYPRIOT SYLLABLE WE;Lo;0;R;;;;;N;;;;;
+10834;CYPRIOT SYLLABLE WI;Lo;0;R;;;;;N;;;;;
+10835;CYPRIOT SYLLABLE WO;Lo;0;R;;;;;N;;;;;
+10837;CYPRIOT SYLLABLE XA;Lo;0;R;;;;;N;;;;;
+10838;CYPRIOT SYLLABLE XE;Lo;0;R;;;;;N;;;;;
+1083C;CYPRIOT SYLLABLE ZA;Lo;0;R;;;;;N;;;;;
+1083F;CYPRIOT SYLLABLE ZO;Lo;0;R;;;;;N;;;;;
+10900;PHOENICIAN LETTER ALF;Lo;0;R;;;;;N;;;;;
+10901;PHOENICIAN LETTER BET;Lo;0;R;;;;;N;;;;;
+10902;PHOENICIAN LETTER GAML;Lo;0;R;;;;;N;;;;;
+10903;PHOENICIAN LETTER DELT;Lo;0;R;;;;;N;;;;;
+10904;PHOENICIAN LETTER HE;Lo;0;R;;;;;N;;;;;
+10905;PHOENICIAN LETTER WAU;Lo;0;R;;;;;N;;;;;
+10906;PHOENICIAN LETTER ZAI;Lo;0;R;;;;;N;;;;;
+10907;PHOENICIAN LETTER HET;Lo;0;R;;;;;N;;;;;
+10908;PHOENICIAN LETTER TET;Lo;0;R;;;;;N;;;;;
+10909;PHOENICIAN LETTER YOD;Lo;0;R;;;;;N;;;;;
+1090A;PHOENICIAN LETTER KAF;Lo;0;R;;;;;N;;;;;
+1090B;PHOENICIAN LETTER LAMD;Lo;0;R;;;;;N;;;;;
+1090C;PHOENICIAN LETTER MEM;Lo;0;R;;;;;N;;;;;
+1090D;PHOENICIAN LETTER NUN;Lo;0;R;;;;;N;;;;;
+1090E;PHOENICIAN LETTER SEMK;Lo;0;R;;;;;N;;;;;
+1090F;PHOENICIAN LETTER AIN;Lo;0;R;;;;;N;;;;;
+10910;PHOENICIAN LETTER PE;Lo;0;R;;;;;N;;;;;
+10911;PHOENICIAN LETTER SADE;Lo;0;R;;;;;N;;;;;
+10912;PHOENICIAN LETTER QOF;Lo;0;R;;;;;N;;;;;
+10913;PHOENICIAN LETTER ROSH;Lo;0;R;;;;;N;;;;;
+10914;PHOENICIAN LETTER SHIN;Lo;0;R;;;;;N;;;;;
+10915;PHOENICIAN LETTER TAU;Lo;0;R;;;;;N;;;;;
+10916;PHOENICIAN NUMBER ONE;No;0;R;;;;1;N;;;;;
+10917;PHOENICIAN NUMBER TEN;No;0;R;;;;10;N;;;;;
+10918;PHOENICIAN NUMBER TWENTY;No;0;R;;;;20;N;;;;;
+10919;PHOENICIAN NUMBER ONE HUNDRED;No;0;R;;;;100;N;;;;;
+1091F;PHOENICIAN WORD SEPARATOR;Po;0;ON;;;;;N;;;;;
+10A00;KHAROSHTHI LETTER A;Lo;0;R;;;;;N;;;;;
+10A01;KHAROSHTHI VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
+10A02;KHAROSHTHI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+10A03;KHAROSHTHI VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;;
+10A05;KHAROSHTHI VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;;
+10A06;KHAROSHTHI VOWEL SIGN O;Mn;0;NSM;;;;;N;;;;;
+10A0C;KHAROSHTHI VOWEL LENGTH MARK;Mn;0;NSM;;;;;N;;;;;
+10A0D;KHAROSHTHI SIGN DOUBLE RING BELOW;Mn;220;NSM;;;;;N;;;;;
+10A0E;KHAROSHTHI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
+10A0F;KHAROSHTHI SIGN VISARGA;Mn;230;NSM;;;;;N;;;;;
+10A10;KHAROSHTHI LETTER KA;Lo;0;R;;;;;N;;;;;
+10A11;KHAROSHTHI LETTER KHA;Lo;0;R;;;;;N;;;;;
+10A12;KHAROSHTHI LETTER GA;Lo;0;R;;;;;N;;;;;
+10A13;KHAROSHTHI LETTER GHA;Lo;0;R;;;;;N;;;;;
+10A15;KHAROSHTHI LETTER CA;Lo;0;R;;;;;N;;;;;
+10A16;KHAROSHTHI LETTER CHA;Lo;0;R;;;;;N;;;;;
+10A17;KHAROSHTHI LETTER JA;Lo;0;R;;;;;N;;;;;
+10A19;KHAROSHTHI LETTER NYA;Lo;0;R;;;;;N;;;;;
+10A1A;KHAROSHTHI LETTER TTA;Lo;0;R;;;;;N;;;;;
+10A1B;KHAROSHTHI LETTER TTHA;Lo;0;R;;;;;N;;;;;
+10A1C;KHAROSHTHI LETTER DDA;Lo;0;R;;;;;N;;;;;
+10A1D;KHAROSHTHI LETTER DDHA;Lo;0;R;;;;;N;;;;;
+10A1E;KHAROSHTHI LETTER NNA;Lo;0;R;;;;;N;;;;;
+10A1F;KHAROSHTHI LETTER TA;Lo;0;R;;;;;N;;;;;
+10A20;KHAROSHTHI LETTER THA;Lo;0;R;;;;;N;;;;;
+10A21;KHAROSHTHI LETTER DA;Lo;0;R;;;;;N;;;;;
+10A22;KHAROSHTHI LETTER DHA;Lo;0;R;;;;;N;;;;;
+10A23;KHAROSHTHI LETTER NA;Lo;0;R;;;;;N;;;;;
+10A24;KHAROSHTHI LETTER PA;Lo;0;R;;;;;N;;;;;
+10A25;KHAROSHTHI LETTER PHA;Lo;0;R;;;;;N;;;;;
+10A26;KHAROSHTHI LETTER BA;Lo;0;R;;;;;N;;;;;
+10A27;KHAROSHTHI LETTER BHA;Lo;0;R;;;;;N;;;;;
+10A28;KHAROSHTHI LETTER MA;Lo;0;R;;;;;N;;;;;
+10A29;KHAROSHTHI LETTER YA;Lo;0;R;;;;;N;;;;;
+10A2A;KHAROSHTHI LETTER RA;Lo;0;R;;;;;N;;;;;
+10A2B;KHAROSHTHI LETTER LA;Lo;0;R;;;;;N;;;;;
+10A2C;KHAROSHTHI LETTER VA;Lo;0;R;;;;;N;;;;;
+10A2D;KHAROSHTHI LETTER SHA;Lo;0;R;;;;;N;;;;;
+10A2E;KHAROSHTHI LETTER SSA;Lo;0;R;;;;;N;;;;;
+10A2F;KHAROSHTHI LETTER SA;Lo;0;R;;;;;N;;;;;
+10A30;KHAROSHTHI LETTER ZA;Lo;0;R;;;;;N;;;;;
+10A31;KHAROSHTHI LETTER HA;Lo;0;R;;;;;N;;;;;
+10A32;KHAROSHTHI LETTER KKA;Lo;0;R;;;;;N;;;;;
+10A33;KHAROSHTHI LETTER TTTHA;Lo;0;R;;;;;N;;;;;
+10A38;KHAROSHTHI SIGN BAR ABOVE;Mn;230;NSM;;;;;N;;;;;
+10A39;KHAROSHTHI SIGN CAUDA;Mn;1;NSM;;;;;N;;;;;
+10A3A;KHAROSHTHI SIGN DOT BELOW;Mn;220;NSM;;;;;N;;;;;
+10A3F;KHAROSHTHI VIRAMA;Mn;9;NSM;;;;;N;;;;;
+10A40;KHAROSHTHI DIGIT ONE;No;0;R;;;1;1;N;;;;;
+10A41;KHAROSHTHI DIGIT TWO;No;0;R;;;2;2;N;;;;;
+10A42;KHAROSHTHI DIGIT THREE;No;0;R;;;3;3;N;;;;;
+10A43;KHAROSHTHI DIGIT FOUR;No;0;R;;;4;4;N;;;;;
+10A44;KHAROSHTHI NUMBER TEN;No;0;R;;;;10;N;;;;;
+10A45;KHAROSHTHI NUMBER TWENTY;No;0;R;;;;20;N;;;;;
+10A46;KHAROSHTHI NUMBER ONE HUNDRED;No;0;R;;;;100;N;;;;;
+10A47;KHAROSHTHI NUMBER ONE THOUSAND;No;0;R;;;;1000;N;;;;;
+10A50;KHAROSHTHI PUNCTUATION DOT;Po;0;R;;;;;N;;;;;
+10A51;KHAROSHTHI PUNCTUATION SMALL CIRCLE;Po;0;R;;;;;N;;;;;
+10A52;KHAROSHTHI PUNCTUATION CIRCLE;Po;0;R;;;;;N;;;;;
+10A53;KHAROSHTHI PUNCTUATION CRESCENT BAR;Po;0;R;;;;;N;;;;;
+10A54;KHAROSHTHI PUNCTUATION MANGALAM;Po;0;R;;;;;N;;;;;
+10A55;KHAROSHTHI PUNCTUATION LOTUS;Po;0;R;;;;;N;;;;;
+10A56;KHAROSHTHI PUNCTUATION DANDA;Po;0;R;;;;;N;;;;;
+10A57;KHAROSHTHI PUNCTUATION DOUBLE DANDA;Po;0;R;;;;;N;;;;;
+10A58;KHAROSHTHI PUNCTUATION LINES;Po;0;R;;;;;N;;;;;
+12000;CUNEIFORM SIGN A;Lo;0;L;;;;;N;;;;;
+12001;CUNEIFORM SIGN A TIMES A;Lo;0;L;;;;;N;;;;;
+12002;CUNEIFORM SIGN A TIMES BAD;Lo;0;L;;;;;N;;;;;
+12003;CUNEIFORM SIGN A TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;
+12004;CUNEIFORM SIGN A TIMES HA;Lo;0;L;;;;;N;;;;;
+12005;CUNEIFORM SIGN A TIMES IGI;Lo;0;L;;;;;N;;;;;
+12006;CUNEIFORM SIGN A TIMES LAGAR GUNU;Lo;0;L;;;;;N;;;;;
+12007;CUNEIFORM SIGN A TIMES MUSH;Lo;0;L;;;;;N;;;;;
+12008;CUNEIFORM SIGN A TIMES SAG;Lo;0;L;;;;;N;;;;;
+12009;CUNEIFORM SIGN A2;Lo;0;L;;;;;N;;;;;
+1200A;CUNEIFORM SIGN AB;Lo;0;L;;;;;N;;;;;
+1200B;CUNEIFORM SIGN AB TIMES ASH2;Lo;0;L;;;;;N;;;;;
+1200C;CUNEIFORM SIGN AB TIMES DUN3 GUNU;Lo;0;L;;;;;N;;;;;
+1200D;CUNEIFORM SIGN AB TIMES GAL;Lo;0;L;;;;;N;;;;;
+1200E;CUNEIFORM SIGN AB TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;
+1200F;CUNEIFORM SIGN AB TIMES HA;Lo;0;L;;;;;N;;;;;
+12010;CUNEIFORM SIGN AB TIMES IGI GUNU;Lo;0;L;;;;;N;;;;;
+12011;CUNEIFORM SIGN AB TIMES IMIN;Lo;0;L;;;;;N;;;;;
+12012;CUNEIFORM SIGN AB TIMES LAGAB;Lo;0;L;;;;;N;;;;;
+12013;CUNEIFORM SIGN AB TIMES SHESH;Lo;0;L;;;;;N;;;;;
+12014;CUNEIFORM SIGN AB TIMES U PLUS U PLUS U;Lo;0;L;;;;;N;;;;;
+12015;CUNEIFORM SIGN AB GUNU;Lo;0;L;;;;;N;;;;;
+12016;CUNEIFORM SIGN AB2;Lo;0;L;;;;;N;;;;;
+12017;CUNEIFORM SIGN AB2 TIMES BALAG;Lo;0;L;;;;;N;;;;;
+12018;CUNEIFORM SIGN AB2 TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;
+12019;CUNEIFORM SIGN AB2 TIMES ME PLUS EN;Lo;0;L;;;;;N;;;;;
+1201A;CUNEIFORM SIGN AB2 TIMES SHA3;Lo;0;L;;;;;N;;;;;
+1201B;CUNEIFORM SIGN AB2 TIMES TAK4;Lo;0;L;;;;;N;;;;;
+1201C;CUNEIFORM SIGN AD;Lo;0;L;;;;;N;;;;;
+1201D;CUNEIFORM SIGN AK;Lo;0;L;;;;;N;;;;;
+1201E;CUNEIFORM SIGN AK TIMES ERIN2;Lo;0;L;;;;;N;;;;;
+1201F;CUNEIFORM SIGN AK TIMES SHITA PLUS GISH;Lo;0;L;;;;;N;;;;;
+12020;CUNEIFORM SIGN AL;Lo;0;L;;;;;N;;;;;
+12021;CUNEIFORM SIGN AL TIMES AL;Lo;0;L;;;;;N;;;;;
+12022;CUNEIFORM SIGN AL TIMES DIM2;Lo;0;L;;;;;N;;;;;
+12023;CUNEIFORM SIGN AL TIMES GISH;Lo;0;L;;;;;N;;;;;
+12024;CUNEIFORM SIGN AL TIMES HA;Lo;0;L;;;;;N;;;;;
+12025;CUNEIFORM SIGN AL TIMES KAD3;Lo;0;L;;;;;N;;;;;
+12026;CUNEIFORM SIGN AL TIMES KI;Lo;0;L;;;;;N;;;;;
+12027;CUNEIFORM SIGN AL TIMES SHE;Lo;0;L;;;;;N;;;;;
+12028;CUNEIFORM SIGN AL TIMES USH;Lo;0;L;;;;;N;;;;;
+12029;CUNEIFORM SIGN ALAN;Lo;0;L;;;;;N;;;;;
+1202A;CUNEIFORM SIGN ALEPH;Lo;0;L;;;;;N;;;;;
+1202B;CUNEIFORM SIGN AMAR;Lo;0;L;;;;;N;;;;;
+1202C;CUNEIFORM SIGN AMAR TIMES SHE;Lo;0;L;;;;;N;;;;;
+1202D;CUNEIFORM SIGN AN;Lo;0;L;;;;;N;;;;;
+1202E;CUNEIFORM SIGN AN OVER AN;Lo;0;L;;;;;N;;;;;
+1202F;CUNEIFORM SIGN AN THREE TIMES;Lo;0;L;;;;;N;;;;;
+12030;CUNEIFORM SIGN AN PLUS NAGA OPPOSING AN PLUS NAGA;Lo;0;L;;;;;N;;;;;
+12031;CUNEIFORM SIGN AN PLUS NAGA SQUARED;Lo;0;L;;;;;N;;;;;
+12032;CUNEIFORM SIGN ANSHE;Lo;0;L;;;;;N;;;;;
+12033;CUNEIFORM SIGN APIN;Lo;0;L;;;;;N;;;;;
+12034;CUNEIFORM SIGN ARAD;Lo;0;L;;;;;N;;;;;
+12035;CUNEIFORM SIGN ARAD TIMES KUR;Lo;0;L;;;;;N;;;;;
+12036;CUNEIFORM SIGN ARKAB;Lo;0;L;;;;;N;;;;;
+12037;CUNEIFORM SIGN ASAL2;Lo;0;L;;;;;N;;;;;
+12038;CUNEIFORM SIGN ASH;Lo;0;L;;;;;N;;;;;
+12039;CUNEIFORM SIGN ASH ZIDA TENU;Lo;0;L;;;;;N;;;;;
+1203A;CUNEIFORM SIGN ASH KABA TENU;Lo;0;L;;;;;N;;;;;
+1203B;CUNEIFORM SIGN ASH OVER ASH TUG2 OVER TUG2 TUG2 OVER TUG2 PAP;Lo;0;L;;;;;N;;;;;
+1203C;CUNEIFORM SIGN ASH OVER ASH OVER ASH;Lo;0;L;;;;;N;;;;;
+1203D;CUNEIFORM SIGN ASH OVER ASH OVER ASH CROSSING ASH OVER ASH OVER ASH;Lo;0;L;;;;;N;;;;;
+1203E;CUNEIFORM SIGN ASH2;Lo;0;L;;;;;N;;;;;
+1203F;CUNEIFORM SIGN ASHGAB;Lo;0;L;;;;;N;;;;;
+12040;CUNEIFORM SIGN BA;Lo;0;L;;;;;N;;;;;
+12041;CUNEIFORM SIGN BAD;Lo;0;L;;;;;N;;;;;
+12042;CUNEIFORM SIGN BAG3;Lo;0;L;;;;;N;;;;;
+12043;CUNEIFORM SIGN BAHAR2;Lo;0;L;;;;;N;;;;;
+12044;CUNEIFORM SIGN BAL;Lo;0;L;;;;;N;;;;;
+12045;CUNEIFORM SIGN BAL OVER BAL;Lo;0;L;;;;;N;;;;;
+12046;CUNEIFORM SIGN BALAG;Lo;0;L;;;;;N;;;;;
+12047;CUNEIFORM SIGN BAR;Lo;0;L;;;;;N;;;;;
+12048;CUNEIFORM SIGN BARA2;Lo;0;L;;;;;N;;;;;
+12049;CUNEIFORM SIGN BI;Lo;0;L;;;;;N;;;;;
+1204A;CUNEIFORM SIGN BI TIMES A;Lo;0;L;;;;;N;;;;;
+1204B;CUNEIFORM SIGN BI TIMES GAR;Lo;0;L;;;;;N;;;;;
+1204C;CUNEIFORM SIGN BI TIMES IGI GUNU;Lo;0;L;;;;;N;;;;;
+1204D;CUNEIFORM SIGN BU;Lo;0;L;;;;;N;;;;;
+1204E;CUNEIFORM SIGN BU OVER BU AB;Lo;0;L;;;;;N;;;;;
+1204F;CUNEIFORM SIGN BU OVER BU UN;Lo;0;L;;;;;N;;;;;
+12050;CUNEIFORM SIGN BU CROSSING BU;Lo;0;L;;;;;N;;;;;
+12051;CUNEIFORM SIGN BULUG;Lo;0;L;;;;;N;;;;;
+12052;CUNEIFORM SIGN BULUG OVER BULUG;Lo;0;L;;;;;N;;;;;
+12053;CUNEIFORM SIGN BUR;Lo;0;L;;;;;N;;;;;
+12054;CUNEIFORM SIGN BUR2;Lo;0;L;;;;;N;;;;;
+12055;CUNEIFORM SIGN DA;Lo;0;L;;;;;N;;;;;
+12056;CUNEIFORM SIGN DAG;Lo;0;L;;;;;N;;;;;
+12057;CUNEIFORM SIGN DAG KISIM5 TIMES A PLUS MASH;Lo;0;L;;;;;N;;;;;
+12058;CUNEIFORM SIGN DAG KISIM5 TIMES AMAR;Lo;0;L;;;;;N;;;;;
+12059;CUNEIFORM SIGN DAG KISIM5 TIMES BALAG;Lo;0;L;;;;;N;;;;;
+1205A;CUNEIFORM SIGN DAG KISIM5 TIMES BI;Lo;0;L;;;;;N;;;;;
+1205B;CUNEIFORM SIGN DAG KISIM5 TIMES GA;Lo;0;L;;;;;N;;;;;
+1205C;CUNEIFORM SIGN DAG KISIM5 TIMES GA PLUS MASH;Lo;0;L;;;;;N;;;;;
+1205D;CUNEIFORM SIGN DAG KISIM5 TIMES GI;Lo;0;L;;;;;N;;;;;
+1205E;CUNEIFORM SIGN DAG KISIM5 TIMES GIR2;Lo;0;L;;;;;N;;;;;
+1205F;CUNEIFORM SIGN DAG KISIM5 TIMES GUD;Lo;0;L;;;;;N;;;;;
+12060;CUNEIFORM SIGN DAG KISIM5 TIMES HA;Lo;0;L;;;;;N;;;;;
+12061;CUNEIFORM SIGN DAG KISIM5 TIMES IR;Lo;0;L;;;;;N;;;;;
+12062;CUNEIFORM SIGN DAG KISIM5 TIMES IR PLUS LU;Lo;0;L;;;;;N;;;;;
+12063;CUNEIFORM SIGN DAG KISIM5 TIMES KAK;Lo;0;L;;;;;N;;;;;
+12064;CUNEIFORM SIGN DAG KISIM5 TIMES LA;Lo;0;L;;;;;N;;;;;
+12065;CUNEIFORM SIGN DAG KISIM5 TIMES LU;Lo;0;L;;;;;N;;;;;
+12066;CUNEIFORM SIGN DAG KISIM5 TIMES LU PLUS MASH2;Lo;0;L;;;;;N;;;;;
+12067;CUNEIFORM SIGN DAG KISIM5 TIMES LUM;Lo;0;L;;;;;N;;;;;
+12068;CUNEIFORM SIGN DAG KISIM5 TIMES NE;Lo;0;L;;;;;N;;;;;
+12069;CUNEIFORM SIGN DAG KISIM5 TIMES PAP PLUS PAP;Lo;0;L;;;;;N;;;;;
+1206A;CUNEIFORM SIGN DAG KISIM5 TIMES SI;Lo;0;L;;;;;N;;;;;
+1206B;CUNEIFORM SIGN DAG KISIM5 TIMES TAK4;Lo;0;L;;;;;N;;;;;
+1206C;CUNEIFORM SIGN DAG KISIM5 TIMES U2 PLUS GIR2;Lo;0;L;;;;;N;;;;;
+1206D;CUNEIFORM SIGN DAG KISIM5 TIMES USH;Lo;0;L;;;;;N;;;;;
+1206E;CUNEIFORM SIGN DAM;Lo;0;L;;;;;N;;;;;
+1206F;CUNEIFORM SIGN DAR;Lo;0;L;;;;;N;;;;;
+12070;CUNEIFORM SIGN DARA3;Lo;0;L;;;;;N;;;;;
+12071;CUNEIFORM SIGN DARA4;Lo;0;L;;;;;N;;;;;
+12072;CUNEIFORM SIGN DI;Lo;0;L;;;;;N;;;;;
+12073;CUNEIFORM SIGN DIB;Lo;0;L;;;;;N;;;;;
+12074;CUNEIFORM SIGN DIM;Lo;0;L;;;;;N;;;;;
+12075;CUNEIFORM SIGN DIM TIMES SHE;Lo;0;L;;;;;N;;;;;
+12076;CUNEIFORM SIGN DIM2;Lo;0;L;;;;;N;;;;;
+12077;CUNEIFORM SIGN DIN;Lo;0;L;;;;;N;;;;;
+12078;CUNEIFORM SIGN DIN KASKAL U GUNU DISH;Lo;0;L;;;;;N;;;;;
+12079;CUNEIFORM SIGN DISH;Lo;0;L;;;;;N;;;;;
+1207A;CUNEIFORM SIGN DU;Lo;0;L;;;;;N;;;;;
+1207B;CUNEIFORM SIGN DU OVER DU;Lo;0;L;;;;;N;;;;;
+1207C;CUNEIFORM SIGN DU GUNU;Lo;0;L;;;;;N;;;;;
+1207D;CUNEIFORM SIGN DU SHESHIG;Lo;0;L;;;;;N;;;;;
+1207E;CUNEIFORM SIGN DUB;Lo;0;L;;;;;N;;;;;
+1207F;CUNEIFORM SIGN DUB TIMES ESH2;Lo;0;L;;;;;N;;;;;
+12080;CUNEIFORM SIGN DUB2;Lo;0;L;;;;;N;;;;;
+12081;CUNEIFORM SIGN DUG;Lo;0;L;;;;;N;;;;;
+12082;CUNEIFORM SIGN DUGUD;Lo;0;L;;;;;N;;;;;
+12083;CUNEIFORM SIGN DUH;Lo;0;L;;;;;N;;;;;
+12084;CUNEIFORM SIGN DUN;Lo;0;L;;;;;N;;;;;
+12085;CUNEIFORM SIGN DUN3;Lo;0;L;;;;;N;;;;;
+12086;CUNEIFORM SIGN DUN3 GUNU;Lo;0;L;;;;;N;;;;;
+12087;CUNEIFORM SIGN DUN3 GUNU GUNU;Lo;0;L;;;;;N;;;;;
+12088;CUNEIFORM SIGN DUN4;Lo;0;L;;;;;N;;;;;
+12089;CUNEIFORM SIGN DUR2;Lo;0;L;;;;;N;;;;;
+1208A;CUNEIFORM SIGN E;Lo;0;L;;;;;N;;;;;
+1208B;CUNEIFORM SIGN E TIMES PAP;Lo;0;L;;;;;N;;;;;
+1208C;CUNEIFORM SIGN E OVER E NUN OVER NUN;Lo;0;L;;;;;N;;;;;
+1208D;CUNEIFORM SIGN E2;Lo;0;L;;;;;N;;;;;
+1208E;CUNEIFORM SIGN E2 TIMES A PLUS HA PLUS DA;Lo;0;L;;;;;N;;;;;
+1208F;CUNEIFORM SIGN E2 TIMES GAR;Lo;0;L;;;;;N;;;;;
+12090;CUNEIFORM SIGN E2 TIMES MI;Lo;0;L;;;;;N;;;;;
+12091;CUNEIFORM SIGN E2 TIMES SAL;Lo;0;L;;;;;N;;;;;
+12092;CUNEIFORM SIGN E2 TIMES SHE;Lo;0;L;;;;;N;;;;;
+12093;CUNEIFORM SIGN E2 TIMES U;Lo;0;L;;;;;N;;;;;
+12094;CUNEIFORM SIGN EDIN;Lo;0;L;;;;;N;;;;;
+12095;CUNEIFORM SIGN EGIR;Lo;0;L;;;;;N;;;;;
+12096;CUNEIFORM SIGN EL;Lo;0;L;;;;;N;;;;;
+12097;CUNEIFORM SIGN EN;Lo;0;L;;;;;N;;;;;
+12098;CUNEIFORM SIGN EN TIMES GAN2;Lo;0;L;;;;;N;;;;;
+12099;CUNEIFORM SIGN EN TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;
+1209A;CUNEIFORM SIGN EN TIMES ME;Lo;0;L;;;;;N;;;;;
+1209B;CUNEIFORM SIGN EN CROSSING EN;Lo;0;L;;;;;N;;;;;
+1209C;CUNEIFORM SIGN EN OPPOSING EN;Lo;0;L;;;;;N;;;;;
+1209D;CUNEIFORM SIGN EN SQUARED;Lo;0;L;;;;;N;;;;;
+1209E;CUNEIFORM SIGN EREN;Lo;0;L;;;;;N;;;;;
+1209F;CUNEIFORM SIGN ERIN2;Lo;0;L;;;;;N;;;;;
+120A0;CUNEIFORM SIGN ESH2;Lo;0;L;;;;;N;;;;;
+120A1;CUNEIFORM SIGN EZEN;Lo;0;L;;;;;N;;;;;
+120A2;CUNEIFORM SIGN EZEN TIMES A;Lo;0;L;;;;;N;;;;;
+120A3;CUNEIFORM SIGN EZEN TIMES A PLUS LAL;Lo;0;L;;;;;N;;;;;
+120A4;CUNEIFORM SIGN EZEN TIMES A PLUS LAL TIMES LAL;Lo;0;L;;;;;N;;;;;
+120A5;CUNEIFORM SIGN EZEN TIMES AN;Lo;0;L;;;;;N;;;;;
+120A6;CUNEIFORM SIGN EZEN TIMES BAD;Lo;0;L;;;;;N;;;;;
+120A7;CUNEIFORM SIGN EZEN TIMES DUN3 GUNU;Lo;0;L;;;;;N;;;;;
+120A8;CUNEIFORM SIGN EZEN TIMES DUN3 GUNU GUNU;Lo;0;L;;;;;N;;;;;
+120A9;CUNEIFORM SIGN EZEN TIMES HA;Lo;0;L;;;;;N;;;;;
+120AA;CUNEIFORM SIGN EZEN TIMES HA GUNU;Lo;0;L;;;;;N;;;;;
+120AB;CUNEIFORM SIGN EZEN TIMES IGI GUNU;Lo;0;L;;;;;N;;;;;
+120AC;CUNEIFORM SIGN EZEN TIMES KASKAL;Lo;0;L;;;;;N;;;;;
+120AD;CUNEIFORM SIGN EZEN TIMES KASKAL SQUARED;Lo;0;L;;;;;N;;;;;
+120AE;CUNEIFORM SIGN EZEN TIMES KU3;Lo;0;L;;;;;N;;;;;
+120AF;CUNEIFORM SIGN EZEN TIMES LA;Lo;0;L;;;;;N;;;;;
+120B0;CUNEIFORM SIGN EZEN TIMES LAL TIMES LAL;Lo;0;L;;;;;N;;;;;
+120B1;CUNEIFORM SIGN EZEN TIMES LI;Lo;0;L;;;;;N;;;;;
+120B2;CUNEIFORM SIGN EZEN TIMES LU;Lo;0;L;;;;;N;;;;;
+120B3;CUNEIFORM SIGN EZEN TIMES U2;Lo;0;L;;;;;N;;;;;
+120B4;CUNEIFORM SIGN EZEN TIMES UD;Lo;0;L;;;;;N;;;;;
+120B5;CUNEIFORM SIGN GA;Lo;0;L;;;;;N;;;;;
+120B6;CUNEIFORM SIGN GA GUNU;Lo;0;L;;;;;N;;;;;
+120B7;CUNEIFORM SIGN GA2;Lo;0;L;;;;;N;;;;;
+120B8;CUNEIFORM SIGN GA2 TIMES A PLUS DA PLUS HA;Lo;0;L;;;;;N;;;;;
+120B9;CUNEIFORM SIGN GA2 TIMES A PLUS HA;Lo;0;L;;;;;N;;;;;
+120BA;CUNEIFORM SIGN GA2 TIMES A PLUS IGI;Lo;0;L;;;;;N;;;;;
+120BB;CUNEIFORM SIGN GA2 TIMES AB2 TENU PLUS TAB;Lo;0;L;;;;;N;;;;;
+120BC;CUNEIFORM SIGN GA2 TIMES AN;Lo;0;L;;;;;N;;;;;
+120BD;CUNEIFORM SIGN GA2 TIMES ASH;Lo;0;L;;;;;N;;;;;
+120BE;CUNEIFORM SIGN GA2 TIMES ASH2 PLUS GAL;Lo;0;L;;;;;N;;;;;
+120BF;CUNEIFORM SIGN GA2 TIMES BAD;Lo;0;L;;;;;N;;;;;
+120C0;CUNEIFORM SIGN GA2 TIMES BAR PLUS RA;Lo;0;L;;;;;N;;;;;
+120C1;CUNEIFORM SIGN GA2 TIMES BUR;Lo;0;L;;;;;N;;;;;
+120C2;CUNEIFORM SIGN GA2 TIMES BUR PLUS RA;Lo;0;L;;;;;N;;;;;
+120C3;CUNEIFORM SIGN GA2 TIMES DA;Lo;0;L;;;;;N;;;;;
+120C4;CUNEIFORM SIGN GA2 TIMES DI;Lo;0;L;;;;;N;;;;;
+120C5;CUNEIFORM SIGN GA2 TIMES DIM TIMES SHE;Lo;0;L;;;;;N;;;;;
+120C6;CUNEIFORM SIGN GA2 TIMES DUB;Lo;0;L;;;;;N;;;;;
+120C7;CUNEIFORM SIGN GA2 TIMES EL;Lo;0;L;;;;;N;;;;;
+120C8;CUNEIFORM SIGN GA2 TIMES EL PLUS LA;Lo;0;L;;;;;N;;;;;
+120C9;CUNEIFORM SIGN GA2 TIMES EN;Lo;0;L;;;;;N;;;;;
+120CA;CUNEIFORM SIGN GA2 TIMES EN TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;
+120CB;CUNEIFORM SIGN GA2 TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;
+120CC;CUNEIFORM SIGN GA2 TIMES GAR;Lo;0;L;;;;;N;;;;;
+120CD;CUNEIFORM SIGN GA2 TIMES GI;Lo;0;L;;;;;N;;;;;
+120CE;CUNEIFORM SIGN GA2 TIMES GI4;Lo;0;L;;;;;N;;;;;
+120CF;CUNEIFORM SIGN GA2 TIMES GI4 PLUS A;Lo;0;L;;;;;N;;;;;
+120D0;CUNEIFORM SIGN GA2 TIMES GIR2 PLUS SU;Lo;0;L;;;;;N;;;;;
+120D1;CUNEIFORM SIGN GA2 TIMES HA PLUS LU PLUS ESH2;Lo;0;L;;;;;N;;;;;
+120D2;CUNEIFORM SIGN GA2 TIMES HAL;Lo;0;L;;;;;N;;;;;
+120D3;CUNEIFORM SIGN GA2 TIMES HAL PLUS LA;Lo;0;L;;;;;N;;;;;
+120D4;CUNEIFORM SIGN GA2 TIMES HI PLUS LI;Lo;0;L;;;;;N;;;;;
+120D5;CUNEIFORM SIGN GA2 TIMES HUB2;Lo;0;L;;;;;N;;;;;
+120D6;CUNEIFORM SIGN GA2 TIMES IGI GUNU;Lo;0;L;;;;;N;;;;;
+120D7;CUNEIFORM SIGN GA2 TIMES ISH PLUS HU PLUS ASH;Lo;0;L;;;;;N;;;;;
+120D8;CUNEIFORM SIGN GA2 TIMES KAK;Lo;0;L;;;;;N;;;;;
+120D9;CUNEIFORM SIGN GA2 TIMES KASKAL;Lo;0;L;;;;;N;;;;;
+120DA;CUNEIFORM SIGN GA2 TIMES KID;Lo;0;L;;;;;N;;;;;
+120DB;CUNEIFORM SIGN GA2 TIMES KID PLUS LAL;Lo;0;L;;;;;N;;;;;
+120DC;CUNEIFORM SIGN GA2 TIMES KU3 PLUS AN;Lo;0;L;;;;;N;;;;;
+120DD;CUNEIFORM SIGN GA2 TIMES LA;Lo;0;L;;;;;N;;;;;
+120DE;CUNEIFORM SIGN GA2 TIMES ME PLUS EN;Lo;0;L;;;;;N;;;;;
+120DF;CUNEIFORM SIGN GA2 TIMES MI;Lo;0;L;;;;;N;;;;;
+120E0;CUNEIFORM SIGN GA2 TIMES NUN;Lo;0;L;;;;;N;;;;;
+120E1;CUNEIFORM SIGN GA2 TIMES NUN OVER NUN;Lo;0;L;;;;;N;;;;;
+120E2;CUNEIFORM SIGN GA2 TIMES PA;Lo;0;L;;;;;N;;;;;
+120E3;CUNEIFORM SIGN GA2 TIMES SAL;Lo;0;L;;;;;N;;;;;
+120E4;CUNEIFORM SIGN GA2 TIMES SAR;Lo;0;L;;;;;N;;;;;
+120E5;CUNEIFORM SIGN GA2 TIMES SHE;Lo;0;L;;;;;N;;;;;
+120E6;CUNEIFORM SIGN GA2 TIMES SHE PLUS TUR;Lo;0;L;;;;;N;;;;;
+120E7;CUNEIFORM SIGN GA2 TIMES SHID;Lo;0;L;;;;;N;;;;;
+120E8;CUNEIFORM SIGN GA2 TIMES SUM;Lo;0;L;;;;;N;;;;;
+120E9;CUNEIFORM SIGN GA2 TIMES TAK4;Lo;0;L;;;;;N;;;;;
+120EA;CUNEIFORM SIGN GA2 TIMES U;Lo;0;L;;;;;N;;;;;
+120EB;CUNEIFORM SIGN GA2 TIMES UD;Lo;0;L;;;;;N;;;;;
+120EC;CUNEIFORM SIGN GA2 TIMES UD PLUS DU;Lo;0;L;;;;;N;;;;;
+120ED;CUNEIFORM SIGN GA2 OVER GA2;Lo;0;L;;;;;N;;;;;
+120EE;CUNEIFORM SIGN GABA;Lo;0;L;;;;;N;;;;;
+120EF;CUNEIFORM SIGN GABA CROSSING GABA;Lo;0;L;;;;;N;;;;;
+120F0;CUNEIFORM SIGN GAD;Lo;0;L;;;;;N;;;;;
+120F1;CUNEIFORM SIGN GAD OVER GAD GAR OVER GAR;Lo;0;L;;;;;N;;;;;
+120F2;CUNEIFORM SIGN GAL;Lo;0;L;;;;;N;;;;;
+120F3;CUNEIFORM SIGN GAL GAD OVER GAD GAR OVER GAR;Lo;0;L;;;;;N;;;;;
+120F4;CUNEIFORM SIGN GALAM;Lo;0;L;;;;;N;;;;;
+120F5;CUNEIFORM SIGN GAM;Lo;0;L;;;;;N;;;;;
+120F6;CUNEIFORM SIGN GAN;Lo;0;L;;;;;N;;;;;
+120F7;CUNEIFORM SIGN GAN2;Lo;0;L;;;;;N;;;;;
+120F8;CUNEIFORM SIGN GAN2 TENU;Lo;0;L;;;;;N;;;;;
+120F9;CUNEIFORM SIGN GAN2 OVER GAN2;Lo;0;L;;;;;N;;;;;
+120FA;CUNEIFORM SIGN GAN2 CROSSING GAN2;Lo;0;L;;;;;N;;;;;
+120FB;CUNEIFORM SIGN GAR;Lo;0;L;;;;;N;;;;;
+120FC;CUNEIFORM SIGN GAR3;Lo;0;L;;;;;N;;;;;
+120FD;CUNEIFORM SIGN GASHAN;Lo;0;L;;;;;N;;;;;
+120FE;CUNEIFORM SIGN GESHTIN;Lo;0;L;;;;;N;;;;;
+120FF;CUNEIFORM SIGN GESHTIN TIMES KUR;Lo;0;L;;;;;N;;;;;
+12100;CUNEIFORM SIGN GI;Lo;0;L;;;;;N;;;;;
+12101;CUNEIFORM SIGN GI TIMES E;Lo;0;L;;;;;N;;;;;
+12102;CUNEIFORM SIGN GI TIMES U;Lo;0;L;;;;;N;;;;;
+12103;CUNEIFORM SIGN GI CROSSING GI;Lo;0;L;;;;;N;;;;;
+12104;CUNEIFORM SIGN GI4;Lo;0;L;;;;;N;;;;;
+12105;CUNEIFORM SIGN GI4 OVER GI4;Lo;0;L;;;;;N;;;;;
+12106;CUNEIFORM SIGN GI4 CROSSING GI4;Lo;0;L;;;;;N;;;;;
+12107;CUNEIFORM SIGN GIDIM;Lo;0;L;;;;;N;;;;;
+12108;CUNEIFORM SIGN GIR2;Lo;0;L;;;;;N;;;;;
+12109;CUNEIFORM SIGN GIR2 GUNU;Lo;0;L;;;;;N;;;;;
+1210A;CUNEIFORM SIGN GIR3;Lo;0;L;;;;;N;;;;;
+1210B;CUNEIFORM SIGN GIR3 TIMES A PLUS IGI;Lo;0;L;;;;;N;;;;;
+1210C;CUNEIFORM SIGN GIR3 TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;
+1210D;CUNEIFORM SIGN GIR3 TIMES IGI;Lo;0;L;;;;;N;;;;;
+1210E;CUNEIFORM SIGN GIR3 TIMES LU PLUS IGI;Lo;0;L;;;;;N;;;;;
+1210F;CUNEIFORM SIGN GIR3 TIMES PA;Lo;0;L;;;;;N;;;;;
+12110;CUNEIFORM SIGN GISAL;Lo;0;L;;;;;N;;;;;
+12111;CUNEIFORM SIGN GISH;Lo;0;L;;;;;N;;;;;
+12112;CUNEIFORM SIGN GISH CROSSING GISH;Lo;0;L;;;;;N;;;;;
+12113;CUNEIFORM SIGN GISH TIMES BAD;Lo;0;L;;;;;N;;;;;
+12114;CUNEIFORM SIGN GISH TIMES TAK4;Lo;0;L;;;;;N;;;;;
+12115;CUNEIFORM SIGN GISH TENU;Lo;0;L;;;;;N;;;;;
+12116;CUNEIFORM SIGN GU;Lo;0;L;;;;;N;;;;;
+12117;CUNEIFORM SIGN GU CROSSING GU;Lo;0;L;;;;;N;;;;;
+12118;CUNEIFORM SIGN GU2;Lo;0;L;;;;;N;;;;;
+12119;CUNEIFORM SIGN GU2 TIMES KAK;Lo;0;L;;;;;N;;;;;
+1211A;CUNEIFORM SIGN GU2 TIMES KAK TIMES IGI GUNU;Lo;0;L;;;;;N;;;;;
+1211B;CUNEIFORM SIGN GU2 TIMES NUN;Lo;0;L;;;;;N;;;;;
+1211C;CUNEIFORM SIGN GU2 TIMES SAL PLUS TUG2;Lo;0;L;;;;;N;;;;;
+1211D;CUNEIFORM SIGN GU2 GUNU;Lo;0;L;;;;;N;;;;;
+1211E;CUNEIFORM SIGN GUD;Lo;0;L;;;;;N;;;;;
+1211F;CUNEIFORM SIGN GUD TIMES A PLUS KUR;Lo;0;L;;;;;N;;;;;
+12120;CUNEIFORM SIGN GUD TIMES KUR;Lo;0;L;;;;;N;;;;;
+12121;CUNEIFORM SIGN GUD OVER GUD LUGAL;Lo;0;L;;;;;N;;;;;
+12122;CUNEIFORM SIGN GUL;Lo;0;L;;;;;N;;;;;
+12123;CUNEIFORM SIGN GUM;Lo;0;L;;;;;N;;;;;
+12124;CUNEIFORM SIGN GUM TIMES SHE;Lo;0;L;;;;;N;;;;;
+12125;CUNEIFORM SIGN GUR;Lo;0;L;;;;;N;;;;;
+12126;CUNEIFORM SIGN GUR7;Lo;0;L;;;;;N;;;;;
+12127;CUNEIFORM SIGN GURUN;Lo;0;L;;;;;N;;;;;
+12128;CUNEIFORM SIGN GURUSH;Lo;0;L;;;;;N;;;;;
+12129;CUNEIFORM SIGN HA;Lo;0;L;;;;;N;;;;;
+1212A;CUNEIFORM SIGN HA TENU;Lo;0;L;;;;;N;;;;;
+1212B;CUNEIFORM SIGN HA GUNU;Lo;0;L;;;;;N;;;;;
+1212C;CUNEIFORM SIGN HAL;Lo;0;L;;;;;N;;;;;
+1212D;CUNEIFORM SIGN HI;Lo;0;L;;;;;N;;;;;
+1212E;CUNEIFORM SIGN HI TIMES ASH;Lo;0;L;;;;;N;;;;;
+1212F;CUNEIFORM SIGN HI TIMES ASH2;Lo;0;L;;;;;N;;;;;
+12130;CUNEIFORM SIGN HI TIMES BAD;Lo;0;L;;;;;N;;;;;
+12131;CUNEIFORM SIGN HI TIMES DISH;Lo;0;L;;;;;N;;;;;
+12132;CUNEIFORM SIGN HI TIMES GAD;Lo;0;L;;;;;N;;;;;
+12133;CUNEIFORM SIGN HI TIMES KIN;Lo;0;L;;;;;N;;;;;
+12134;CUNEIFORM SIGN HI TIMES NUN;Lo;0;L;;;;;N;;;;;
+12135;CUNEIFORM SIGN HI TIMES SHE;Lo;0;L;;;;;N;;;;;
+12136;CUNEIFORM SIGN HI TIMES U;Lo;0;L;;;;;N;;;;;
+12137;CUNEIFORM SIGN HU;Lo;0;L;;;;;N;;;;;
+12138;CUNEIFORM SIGN HUB2;Lo;0;L;;;;;N;;;;;
+12139;CUNEIFORM SIGN HUB2 TIMES AN;Lo;0;L;;;;;N;;;;;
+1213A;CUNEIFORM SIGN HUB2 TIMES HAL;Lo;0;L;;;;;N;;;;;
+1213B;CUNEIFORM SIGN HUB2 TIMES KASKAL;Lo;0;L;;;;;N;;;;;
+1213C;CUNEIFORM SIGN HUB2 TIMES LISH;Lo;0;L;;;;;N;;;;;
+1213D;CUNEIFORM SIGN HUB2 TIMES UD;Lo;0;L;;;;;N;;;;;
+1213E;CUNEIFORM SIGN HUL2;Lo;0;L;;;;;N;;;;;
+1213F;CUNEIFORM SIGN I;Lo;0;L;;;;;N;;;;;
+12140;CUNEIFORM SIGN I A;Lo;0;L;;;;;N;;;;;
+12141;CUNEIFORM SIGN IB;Lo;0;L;;;;;N;;;;;
+12142;CUNEIFORM SIGN IDIM;Lo;0;L;;;;;N;;;;;
+12143;CUNEIFORM SIGN IDIM OVER IDIM BUR;Lo;0;L;;;;;N;;;;;
+12144;CUNEIFORM SIGN IDIM OVER IDIM SQUARED;Lo;0;L;;;;;N;;;;;
+12145;CUNEIFORM SIGN IG;Lo;0;L;;;;;N;;;;;
+12146;CUNEIFORM SIGN IGI;Lo;0;L;;;;;N;;;;;
+12147;CUNEIFORM SIGN IGI DIB;Lo;0;L;;;;;N;;;;;
+12148;CUNEIFORM SIGN IGI RI;Lo;0;L;;;;;N;;;;;
+12149;CUNEIFORM SIGN IGI OVER IGI SHIR OVER SHIR UD OVER UD;Lo;0;L;;;;;N;;;;;
+1214A;CUNEIFORM SIGN IGI GUNU;Lo;0;L;;;;;N;;;;;
+1214B;CUNEIFORM SIGN IL;Lo;0;L;;;;;N;;;;;
+1214C;CUNEIFORM SIGN IL TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;
+1214D;CUNEIFORM SIGN IL2;Lo;0;L;;;;;N;;;;;
+1214E;CUNEIFORM SIGN IM;Lo;0;L;;;;;N;;;;;
+1214F;CUNEIFORM SIGN IM TIMES TAK4;Lo;0;L;;;;;N;;;;;
+12150;CUNEIFORM SIGN IM CROSSING IM;Lo;0;L;;;;;N;;;;;
+12151;CUNEIFORM SIGN IM OPPOSING IM;Lo;0;L;;;;;N;;;;;
+12152;CUNEIFORM SIGN IM SQUARED;Lo;0;L;;;;;N;;;;;
+12153;CUNEIFORM SIGN IMIN;Lo;0;L;;;;;N;;;;;
+12154;CUNEIFORM SIGN IN;Lo;0;L;;;;;N;;;;;
+12155;CUNEIFORM SIGN IR;Lo;0;L;;;;;N;;;;;
+12156;CUNEIFORM SIGN ISH;Lo;0;L;;;;;N;;;;;
+12157;CUNEIFORM SIGN KA;Lo;0;L;;;;;N;;;;;
+12158;CUNEIFORM SIGN KA TIMES A;Lo;0;L;;;;;N;;;;;
+12159;CUNEIFORM SIGN KA TIMES AD;Lo;0;L;;;;;N;;;;;
+1215A;CUNEIFORM SIGN KA TIMES AD PLUS KU3;Lo;0;L;;;;;N;;;;;
+1215B;CUNEIFORM SIGN KA TIMES ASH2;Lo;0;L;;;;;N;;;;;
+1215C;CUNEIFORM SIGN KA TIMES BAD;Lo;0;L;;;;;N;;;;;
+1215D;CUNEIFORM SIGN KA TIMES BALAG;Lo;0;L;;;;;N;;;;;
+1215E;CUNEIFORM SIGN KA TIMES BAR;Lo;0;L;;;;;N;;;;;
+1215F;CUNEIFORM SIGN KA TIMES BI;Lo;0;L;;;;;N;;;;;
+12160;CUNEIFORM SIGN KA TIMES ERIN2;Lo;0;L;;;;;N;;;;;
+12161;CUNEIFORM SIGN KA TIMES ESH2;Lo;0;L;;;;;N;;;;;
+12162;CUNEIFORM SIGN KA TIMES GA;Lo;0;L;;;;;N;;;;;
+12163;CUNEIFORM SIGN KA TIMES GAL;Lo;0;L;;;;;N;;;;;
+12164;CUNEIFORM SIGN KA TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;
+12165;CUNEIFORM SIGN KA TIMES GAR;Lo;0;L;;;;;N;;;;;
+12166;CUNEIFORM SIGN KA TIMES GAR PLUS SHA3 PLUS A;Lo;0;L;;;;;N;;;;;
+12167;CUNEIFORM SIGN KA TIMES GI;Lo;0;L;;;;;N;;;;;
+12168;CUNEIFORM SIGN KA TIMES GIR2;Lo;0;L;;;;;N;;;;;
+12169;CUNEIFORM SIGN KA TIMES GISH PLUS SAR;Lo;0;L;;;;;N;;;;;
+1216A;CUNEIFORM SIGN KA TIMES GISH CROSSING GISH;Lo;0;L;;;;;N;;;;;
+1216B;CUNEIFORM SIGN KA TIMES GU;Lo;0;L;;;;;N;;;;;
+1216C;CUNEIFORM SIGN KA TIMES GUR7;Lo;0;L;;;;;N;;;;;
+1216D;CUNEIFORM SIGN KA TIMES IGI;Lo;0;L;;;;;N;;;;;
+1216E;CUNEIFORM SIGN KA TIMES IM;Lo;0;L;;;;;N;;;;;
+1216F;CUNEIFORM SIGN KA TIMES KAK;Lo;0;L;;;;;N;;;;;
+12170;CUNEIFORM SIGN KA TIMES KI;Lo;0;L;;;;;N;;;;;
+12171;CUNEIFORM SIGN KA TIMES KID;Lo;0;L;;;;;N;;;;;
+12172;CUNEIFORM SIGN KA TIMES LI;Lo;0;L;;;;;N;;;;;
+12173;CUNEIFORM SIGN KA TIMES LU;Lo;0;L;;;;;N;;;;;
+12174;CUNEIFORM SIGN KA TIMES ME;Lo;0;L;;;;;N;;;;;
+12175;CUNEIFORM SIGN KA TIMES ME PLUS DU;Lo;0;L;;;;;N;;;;;
+12176;CUNEIFORM SIGN KA TIMES ME PLUS GI;Lo;0;L;;;;;N;;;;;
+12177;CUNEIFORM SIGN KA TIMES ME PLUS TE;Lo;0;L;;;;;N;;;;;
+12178;CUNEIFORM SIGN KA TIMES MI;Lo;0;L;;;;;N;;;;;
+12179;CUNEIFORM SIGN KA TIMES MI PLUS NUNUZ;Lo;0;L;;;;;N;;;;;
+1217A;CUNEIFORM SIGN KA TIMES NE;Lo;0;L;;;;;N;;;;;
+1217B;CUNEIFORM SIGN KA TIMES NUN;Lo;0;L;;;;;N;;;;;
+1217C;CUNEIFORM SIGN KA TIMES PI;Lo;0;L;;;;;N;;;;;
+1217D;CUNEIFORM SIGN KA TIMES RU;Lo;0;L;;;;;N;;;;;
+1217E;CUNEIFORM SIGN KA TIMES SA;Lo;0;L;;;;;N;;;;;
+1217F;CUNEIFORM SIGN KA TIMES SAR;Lo;0;L;;;;;N;;;;;
+12180;CUNEIFORM SIGN KA TIMES SHA;Lo;0;L;;;;;N;;;;;
+12181;CUNEIFORM SIGN KA TIMES SHE;Lo;0;L;;;;;N;;;;;
+12182;CUNEIFORM SIGN KA TIMES SHID;Lo;0;L;;;;;N;;;;;
+12183;CUNEIFORM SIGN KA TIMES SHU;Lo;0;L;;;;;N;;;;;
+12184;CUNEIFORM SIGN KA TIMES SIG;Lo;0;L;;;;;N;;;;;
+12185;CUNEIFORM SIGN KA TIMES SUHUR;Lo;0;L;;;;;N;;;;;
+12186;CUNEIFORM SIGN KA TIMES TAR;Lo;0;L;;;;;N;;;;;
+12187;CUNEIFORM SIGN KA TIMES U;Lo;0;L;;;;;N;;;;;
+12188;CUNEIFORM SIGN KA TIMES U2;Lo;0;L;;;;;N;;;;;
+12189;CUNEIFORM SIGN KA TIMES UD;Lo;0;L;;;;;N;;;;;
+1218A;CUNEIFORM SIGN KA TIMES UMUM TIMES PA;Lo;0;L;;;;;N;;;;;
+1218B;CUNEIFORM SIGN KA TIMES USH;Lo;0;L;;;;;N;;;;;
+1218C;CUNEIFORM SIGN KA TIMES ZI;Lo;0;L;;;;;N;;;;;
+1218D;CUNEIFORM SIGN KA2;Lo;0;L;;;;;N;;;;;
+1218E;CUNEIFORM SIGN KA2 CROSSING KA2;Lo;0;L;;;;;N;;;;;
+1218F;CUNEIFORM SIGN KAB;Lo;0;L;;;;;N;;;;;
+12190;CUNEIFORM SIGN KAD2;Lo;0;L;;;;;N;;;;;
+12191;CUNEIFORM SIGN KAD3;Lo;0;L;;;;;N;;;;;
+12192;CUNEIFORM SIGN KAD4;Lo;0;L;;;;;N;;;;;
+12193;CUNEIFORM SIGN KAD5;Lo;0;L;;;;;N;;;;;
+12194;CUNEIFORM SIGN KAD5 OVER KAD5;Lo;0;L;;;;;N;;;;;
+12195;CUNEIFORM SIGN KAK;Lo;0;L;;;;;N;;;;;
+12196;CUNEIFORM SIGN KAK TIMES IGI GUNU;Lo;0;L;;;;;N;;;;;
+12197;CUNEIFORM SIGN KAL;Lo;0;L;;;;;N;;;;;
+12198;CUNEIFORM SIGN KAL TIMES BAD;Lo;0;L;;;;;N;;;;;
+12199;CUNEIFORM SIGN KAL CROSSING KAL;Lo;0;L;;;;;N;;;;;
+1219A;CUNEIFORM SIGN KAM2;Lo;0;L;;;;;N;;;;;
+1219B;CUNEIFORM SIGN KAM4;Lo;0;L;;;;;N;;;;;
+1219C;CUNEIFORM SIGN KASKAL;Lo;0;L;;;;;N;;;;;
+1219D;CUNEIFORM SIGN KASKAL LAGAB TIMES U OVER LAGAB TIMES U;Lo;0;L;;;;;N;;;;;
+1219E;CUNEIFORM SIGN KASKAL OVER KASKAL LAGAB TIMES U OVER LAGAB TIMES U;Lo;0;L;;;;;N;;;;;
+1219F;CUNEIFORM SIGN KESH2;Lo;0;L;;;;;N;;;;;
+121A0;CUNEIFORM SIGN KI;Lo;0;L;;;;;N;;;;;
+121A1;CUNEIFORM SIGN KI TIMES BAD;Lo;0;L;;;;;N;;;;;
+121A2;CUNEIFORM SIGN KI TIMES U;Lo;0;L;;;;;N;;;;;
+121A3;CUNEIFORM SIGN KI TIMES UD;Lo;0;L;;;;;N;;;;;
+121A4;CUNEIFORM SIGN KID;Lo;0;L;;;;;N;;;;;
+121A5;CUNEIFORM SIGN KIN;Lo;0;L;;;;;N;;;;;
+121A6;CUNEIFORM SIGN KISAL;Lo;0;L;;;;;N;;;;;
+121A7;CUNEIFORM SIGN KISH;Lo;0;L;;;;;N;;;;;
+121A8;CUNEIFORM SIGN KISIM5;Lo;0;L;;;;;N;;;;;
+121A9;CUNEIFORM SIGN KISIM5 OVER KISIM5;Lo;0;L;;;;;N;;;;;
+121AA;CUNEIFORM SIGN KU;Lo;0;L;;;;;N;;;;;
+121AB;CUNEIFORM SIGN KU OVER HI TIMES ASH2 KU OVER HI TIMES ASH2;Lo;0;L;;;;;N;;;;;
+121AC;CUNEIFORM SIGN KU3;Lo;0;L;;;;;N;;;;;
+121AD;CUNEIFORM SIGN KU4;Lo;0;L;;;;;N;;;;;
+121AE;CUNEIFORM SIGN KU4 VARIANT FORM;Lo;0;L;;;;;N;;;;;
+121AF;CUNEIFORM SIGN KU7;Lo;0;L;;;;;N;;;;;
+121B0;CUNEIFORM SIGN KUL;Lo;0;L;;;;;N;;;;;
+121B1;CUNEIFORM SIGN KUL GUNU;Lo;0;L;;;;;N;;;;;
+121B2;CUNEIFORM SIGN KUN;Lo;0;L;;;;;N;;;;;
+121B3;CUNEIFORM SIGN KUR;Lo;0;L;;;;;N;;;;;
+121B4;CUNEIFORM SIGN KUR OPPOSING KUR;Lo;0;L;;;;;N;;;;;
+121B5;CUNEIFORM SIGN KUSHU2;Lo;0;L;;;;;N;;;;;
+121B6;CUNEIFORM SIGN KWU318;Lo;0;L;;;;;N;;;;;
+121B7;CUNEIFORM SIGN LA;Lo;0;L;;;;;N;;;;;
+121B8;CUNEIFORM SIGN LAGAB;Lo;0;L;;;;;N;;;;;
+121B9;CUNEIFORM SIGN LAGAB TIMES A;Lo;0;L;;;;;N;;;;;
+121BA;CUNEIFORM SIGN LAGAB TIMES A PLUS DA PLUS HA;Lo;0;L;;;;;N;;;;;
+121BB;CUNEIFORM SIGN LAGAB TIMES A PLUS GAR;Lo;0;L;;;;;N;;;;;
+121BC;CUNEIFORM SIGN LAGAB TIMES A PLUS LAL;Lo;0;L;;;;;N;;;;;
+121BD;CUNEIFORM SIGN LAGAB TIMES AL;Lo;0;L;;;;;N;;;;;
+121BE;CUNEIFORM SIGN LAGAB TIMES AN;Lo;0;L;;;;;N;;;;;
+121BF;CUNEIFORM SIGN LAGAB TIMES ASH ZIDA TENU;Lo;0;L;;;;;N;;;;;
+121C0;CUNEIFORM SIGN LAGAB TIMES BAD;Lo;0;L;;;;;N;;;;;
+121C1;CUNEIFORM SIGN LAGAB TIMES BI;Lo;0;L;;;;;N;;;;;
+121C2;CUNEIFORM SIGN LAGAB TIMES DAR;Lo;0;L;;;;;N;;;;;
+121C3;CUNEIFORM SIGN LAGAB TIMES EN;Lo;0;L;;;;;N;;;;;
+121C4;CUNEIFORM SIGN LAGAB TIMES GA;Lo;0;L;;;;;N;;;;;
+121C5;CUNEIFORM SIGN LAGAB TIMES GAR;Lo;0;L;;;;;N;;;;;
+121C6;CUNEIFORM SIGN LAGAB TIMES GUD;Lo;0;L;;;;;N;;;;;
+121C7;CUNEIFORM SIGN LAGAB TIMES GUD PLUS GUD;Lo;0;L;;;;;N;;;;;
+121C8;CUNEIFORM SIGN LAGAB TIMES HA;Lo;0;L;;;;;N;;;;;
+121C9;CUNEIFORM SIGN LAGAB TIMES HAL;Lo;0;L;;;;;N;;;;;
+121CA;CUNEIFORM SIGN LAGAB TIMES HI TIMES NUN;Lo;0;L;;;;;N;;;;;
+121CB;CUNEIFORM SIGN LAGAB TIMES IGI GUNU;Lo;0;L;;;;;N;;;;;
+121CC;CUNEIFORM SIGN LAGAB TIMES IM;Lo;0;L;;;;;N;;;;;
+121CD;CUNEIFORM SIGN LAGAB TIMES IM PLUS HA;Lo;0;L;;;;;N;;;;;
+121CE;CUNEIFORM SIGN LAGAB TIMES IM PLUS LU;Lo;0;L;;;;;N;;;;;
+121CF;CUNEIFORM SIGN LAGAB TIMES KI;Lo;0;L;;;;;N;;;;;
+121D0;CUNEIFORM SIGN LAGAB TIMES KIN;Lo;0;L;;;;;N;;;;;
+121D1;CUNEIFORM SIGN LAGAB TIMES KU3;Lo;0;L;;;;;N;;;;;
+121D2;CUNEIFORM SIGN LAGAB TIMES KUL;Lo;0;L;;;;;N;;;;;
+121D3;CUNEIFORM SIGN LAGAB TIMES KUL PLUS HI PLUS A;Lo;0;L;;;;;N;;;;;
+121D4;CUNEIFORM SIGN LAGAB TIMES LAGAB;Lo;0;L;;;;;N;;;;;
+121D5;CUNEIFORM SIGN LAGAB TIMES LISH;Lo;0;L;;;;;N;;;;;
+121D6;CUNEIFORM SIGN LAGAB TIMES LU;Lo;0;L;;;;;N;;;;;
+121D7;CUNEIFORM SIGN LAGAB TIMES LUL;Lo;0;L;;;;;N;;;;;
+121D8;CUNEIFORM SIGN LAGAB TIMES ME;Lo;0;L;;;;;N;;;;;
+121D9;CUNEIFORM SIGN LAGAB TIMES ME PLUS EN;Lo;0;L;;;;;N;;;;;
+121DA;CUNEIFORM SIGN LAGAB TIMES MUSH;Lo;0;L;;;;;N;;;;;
+121DB;CUNEIFORM SIGN LAGAB TIMES NE;Lo;0;L;;;;;N;;;;;
+121DC;CUNEIFORM SIGN LAGAB TIMES SHE PLUS SUM;Lo;0;L;;;;;N;;;;;
+121DD;CUNEIFORM SIGN LAGAB TIMES SHITA PLUS GISH PLUS ERIN2;Lo;0;L;;;;;N;;;;;
+121DE;CUNEIFORM SIGN LAGAB TIMES SHITA PLUS GISH TENU;Lo;0;L;;;;;N;;;;;
+121DF;CUNEIFORM SIGN LAGAB TIMES SHU2;Lo;0;L;;;;;N;;;;;
+121E0;CUNEIFORM SIGN LAGAB TIMES SHU2 PLUS SHU2;Lo;0;L;;;;;N;;;;;
+121E1;CUNEIFORM SIGN LAGAB TIMES SUM;Lo;0;L;;;;;N;;;;;
+121E2;CUNEIFORM SIGN LAGAB TIMES TAG;Lo;0;L;;;;;N;;;;;
+121E3;CUNEIFORM SIGN LAGAB TIMES TAK4;Lo;0;L;;;;;N;;;;;
+121E4;CUNEIFORM SIGN LAGAB TIMES TE PLUS A PLUS SU PLUS NA;Lo;0;L;;;;;N;;;;;
+121E5;CUNEIFORM SIGN LAGAB TIMES U;Lo;0;L;;;;;N;;;;;
+121E6;CUNEIFORM SIGN LAGAB TIMES U PLUS A;Lo;0;L;;;;;N;;;;;
+121E7;CUNEIFORM SIGN LAGAB TIMES U PLUS U PLUS U;Lo;0;L;;;;;N;;;;;
+121E8;CUNEIFORM SIGN LAGAB TIMES U2 PLUS ASH;Lo;0;L;;;;;N;;;;;
+121E9;CUNEIFORM SIGN LAGAB TIMES UD;Lo;0;L;;;;;N;;;;;
+121EA;CUNEIFORM SIGN LAGAB TIMES USH;Lo;0;L;;;;;N;;;;;
+121EB;CUNEIFORM SIGN LAGAB SQUARED;Lo;0;L;;;;;N;;;;;
+121EC;CUNEIFORM SIGN LAGAR;Lo;0;L;;;;;N;;;;;
+121ED;CUNEIFORM SIGN LAGAR TIMES SHE;Lo;0;L;;;;;N;;;;;
+121EE;CUNEIFORM SIGN LAGAR TIMES SHE PLUS SUM;Lo;0;L;;;;;N;;;;;
+121EF;CUNEIFORM SIGN LAGAR GUNU;Lo;0;L;;;;;N;;;;;
+121F0;CUNEIFORM SIGN LAGAR GUNU OVER LAGAR GUNU SHE;Lo;0;L;;;;;N;;;;;
+121F1;CUNEIFORM SIGN LAHSHU;Lo;0;L;;;;;N;;;;;
+121F2;CUNEIFORM SIGN LAL;Lo;0;L;;;;;N;;;;;
+121F3;CUNEIFORM SIGN LAL TIMES LAL;Lo;0;L;;;;;N;;;;;
+121F4;CUNEIFORM SIGN LAM;Lo;0;L;;;;;N;;;;;
+121F5;CUNEIFORM SIGN LAM TIMES KUR;Lo;0;L;;;;;N;;;;;
+121F6;CUNEIFORM SIGN LAM TIMES KUR PLUS RU;Lo;0;L;;;;;N;;;;;
+121F7;CUNEIFORM SIGN LI;Lo;0;L;;;;;N;;;;;
+121F8;CUNEIFORM SIGN LIL;Lo;0;L;;;;;N;;;;;
+121F9;CUNEIFORM SIGN LIMMU2;Lo;0;L;;;;;N;;;;;
+121FA;CUNEIFORM SIGN LISH;Lo;0;L;;;;;N;;;;;
+121FB;CUNEIFORM SIGN LU;Lo;0;L;;;;;N;;;;;
+121FC;CUNEIFORM SIGN LU TIMES BAD;Lo;0;L;;;;;N;;;;;
+121FD;CUNEIFORM SIGN LU2;Lo;0;L;;;;;N;;;;;
+121FE;CUNEIFORM SIGN LU2 TIMES AL;Lo;0;L;;;;;N;;;;;
+121FF;CUNEIFORM SIGN LU2 TIMES BAD;Lo;0;L;;;;;N;;;;;
+12200;CUNEIFORM SIGN LU2 TIMES ESH2;Lo;0;L;;;;;N;;;;;
+12201;CUNEIFORM SIGN LU2 TIMES ESH2 TENU;Lo;0;L;;;;;N;;;;;
+12202;CUNEIFORM SIGN LU2 TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;
+12203;CUNEIFORM SIGN LU2 TIMES HI TIMES BAD;Lo;0;L;;;;;N;;;;;
+12204;CUNEIFORM SIGN LU2 TIMES IM;Lo;0;L;;;;;N;;;;;
+12205;CUNEIFORM SIGN LU2 TIMES KAD2;Lo;0;L;;;;;N;;;;;
+12206;CUNEIFORM SIGN LU2 TIMES KAD3;Lo;0;L;;;;;N;;;;;
+12207;CUNEIFORM SIGN LU2 TIMES KAD3 PLUS ASH;Lo;0;L;;;;;N;;;;;
+12208;CUNEIFORM SIGN LU2 TIMES KI;Lo;0;L;;;;;N;;;;;
+12209;CUNEIFORM SIGN LU2 TIMES LA PLUS ASH;Lo;0;L;;;;;N;;;;;
+1220A;CUNEIFORM SIGN LU2 TIMES LAGAB;Lo;0;L;;;;;N;;;;;
+1220B;CUNEIFORM SIGN LU2 TIMES ME PLUS EN;Lo;0;L;;;;;N;;;;;
+1220C;CUNEIFORM SIGN LU2 TIMES NE;Lo;0;L;;;;;N;;;;;
+1220D;CUNEIFORM SIGN LU2 TIMES NU;Lo;0;L;;;;;N;;;;;
+1220E;CUNEIFORM SIGN LU2 TIMES SI PLUS ASH;Lo;0;L;;;;;N;;;;;
+1220F;CUNEIFORM SIGN LU2 TIMES SIK2 PLUS BU;Lo;0;L;;;;;N;;;;;
+12210;CUNEIFORM SIGN LU2 TIMES TUG2;Lo;0;L;;;;;N;;;;;
+12211;CUNEIFORM SIGN LU2 TENU;Lo;0;L;;;;;N;;;;;
+12212;CUNEIFORM SIGN LU2 CROSSING LU2;Lo;0;L;;;;;N;;;;;
+12213;CUNEIFORM SIGN LU2 OPPOSING LU2;Lo;0;L;;;;;N;;;;;
+12214;CUNEIFORM SIGN LU2 SQUARED;Lo;0;L;;;;;N;;;;;
+12215;CUNEIFORM SIGN LU2 SHESHIG;Lo;0;L;;;;;N;;;;;
+12216;CUNEIFORM SIGN LU3;Lo;0;L;;;;;N;;;;;
+12217;CUNEIFORM SIGN LUGAL;Lo;0;L;;;;;N;;;;;
+12218;CUNEIFORM SIGN LUGAL OVER LUGAL;Lo;0;L;;;;;N;;;;;
+12219;CUNEIFORM SIGN LUGAL OPPOSING LUGAL;Lo;0;L;;;;;N;;;;;
+1221A;CUNEIFORM SIGN LUGAL SHESHIG;Lo;0;L;;;;;N;;;;;
+1221B;CUNEIFORM SIGN LUH;Lo;0;L;;;;;N;;;;;
+1221C;CUNEIFORM SIGN LUL;Lo;0;L;;;;;N;;;;;
+1221D;CUNEIFORM SIGN LUM;Lo;0;L;;;;;N;;;;;
+1221E;CUNEIFORM SIGN LUM OVER LUM;Lo;0;L;;;;;N;;;;;
+1221F;CUNEIFORM SIGN LUM OVER LUM GAR OVER GAR;Lo;0;L;;;;;N;;;;;
+12220;CUNEIFORM SIGN MA;Lo;0;L;;;;;N;;;;;
+12221;CUNEIFORM SIGN MA TIMES TAK4;Lo;0;L;;;;;N;;;;;
+12222;CUNEIFORM SIGN MA GUNU;Lo;0;L;;;;;N;;;;;
+12223;CUNEIFORM SIGN MA2;Lo;0;L;;;;;N;;;;;
+12224;CUNEIFORM SIGN MAH;Lo;0;L;;;;;N;;;;;
+12225;CUNEIFORM SIGN MAR;Lo;0;L;;;;;N;;;;;
+12226;CUNEIFORM SIGN MASH;Lo;0;L;;;;;N;;;;;
+12227;CUNEIFORM SIGN MASH2;Lo;0;L;;;;;N;;;;;
+12228;CUNEIFORM SIGN ME;Lo;0;L;;;;;N;;;;;
+12229;CUNEIFORM SIGN MES;Lo;0;L;;;;;N;;;;;
+1222A;CUNEIFORM SIGN MI;Lo;0;L;;;;;N;;;;;
+1222B;CUNEIFORM SIGN MIN;Lo;0;L;;;;;N;;;;;
+1222C;CUNEIFORM SIGN MU;Lo;0;L;;;;;N;;;;;
+1222D;CUNEIFORM SIGN MU OVER MU;Lo;0;L;;;;;N;;;;;
+1222E;CUNEIFORM SIGN MUG;Lo;0;L;;;;;N;;;;;
+1222F;CUNEIFORM SIGN MUG GUNU;Lo;0;L;;;;;N;;;;;
+12230;CUNEIFORM SIGN MUNSUB;Lo;0;L;;;;;N;;;;;
+12231;CUNEIFORM SIGN MURGU2;Lo;0;L;;;;;N;;;;;
+12232;CUNEIFORM SIGN MUSH;Lo;0;L;;;;;N;;;;;
+12233;CUNEIFORM SIGN MUSH TIMES A;Lo;0;L;;;;;N;;;;;
+12234;CUNEIFORM SIGN MUSH TIMES KUR;Lo;0;L;;;;;N;;;;;
+12235;CUNEIFORM SIGN MUSH TIMES ZA;Lo;0;L;;;;;N;;;;;
+12236;CUNEIFORM SIGN MUSH OVER MUSH;Lo;0;L;;;;;N;;;;;
+12237;CUNEIFORM SIGN MUSH OVER MUSH TIMES A PLUS NA;Lo;0;L;;;;;N;;;;;
+12238;CUNEIFORM SIGN MUSH CROSSING MUSH;Lo;0;L;;;;;N;;;;;
+12239;CUNEIFORM SIGN MUSH3;Lo;0;L;;;;;N;;;;;
+1223A;CUNEIFORM SIGN MUSH3 TIMES A;Lo;0;L;;;;;N;;;;;
+1223B;CUNEIFORM SIGN MUSH3 TIMES A PLUS DI;Lo;0;L;;;;;N;;;;;
+1223C;CUNEIFORM SIGN MUSH3 TIMES DI;Lo;0;L;;;;;N;;;;;
+1223D;CUNEIFORM SIGN MUSH3 GUNU;Lo;0;L;;;;;N;;;;;
+1223E;CUNEIFORM SIGN NA;Lo;0;L;;;;;N;;;;;
+1223F;CUNEIFORM SIGN NA2;Lo;0;L;;;;;N;;;;;
+12240;CUNEIFORM SIGN NAGA;Lo;0;L;;;;;N;;;;;
+12241;CUNEIFORM SIGN NAGA INVERTED;Lo;0;L;;;;;N;;;;;
+12242;CUNEIFORM SIGN NAGA TIMES SHU TENU;Lo;0;L;;;;;N;;;;;
+12243;CUNEIFORM SIGN NAGA OPPOSING NAGA;Lo;0;L;;;;;N;;;;;
+12244;CUNEIFORM SIGN NAGAR;Lo;0;L;;;;;N;;;;;
+12245;CUNEIFORM SIGN NAM NUTILLU;Lo;0;L;;;;;N;;;;;
+12246;CUNEIFORM SIGN NAM;Lo;0;L;;;;;N;;;;;
+12247;CUNEIFORM SIGN NAM2;Lo;0;L;;;;;N;;;;;
+12248;CUNEIFORM SIGN NE;Lo;0;L;;;;;N;;;;;
+12249;CUNEIFORM SIGN NE TIMES A;Lo;0;L;;;;;N;;;;;
+1224A;CUNEIFORM SIGN NE TIMES UD;Lo;0;L;;;;;N;;;;;
+1224B;CUNEIFORM SIGN NE SHESHIG;Lo;0;L;;;;;N;;;;;
+1224C;CUNEIFORM SIGN NI;Lo;0;L;;;;;N;;;;;
+1224D;CUNEIFORM SIGN NI TIMES E;Lo;0;L;;;;;N;;;;;
+1224E;CUNEIFORM SIGN NI2;Lo;0;L;;;;;N;;;;;
+1224F;CUNEIFORM SIGN NIM;Lo;0;L;;;;;N;;;;;
+12250;CUNEIFORM SIGN NIM TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;
+12251;CUNEIFORM SIGN NIM TIMES GAR PLUS GAN2 TENU;Lo;0;L;;;;;N;;;;;
+12252;CUNEIFORM SIGN NINDA2;Lo;0;L;;;;;N;;;;;
+12253;CUNEIFORM SIGN NINDA2 TIMES AN;Lo;0;L;;;;;N;;;;;
+12254;CUNEIFORM SIGN NINDA2 TIMES ASH;Lo;0;L;;;;;N;;;;;
+12255;CUNEIFORM SIGN NINDA2 TIMES ASH PLUS ASH;Lo;0;L;;;;;N;;;;;
+12256;CUNEIFORM SIGN NINDA2 TIMES GUD;Lo;0;L;;;;;N;;;;;
+12257;CUNEIFORM SIGN NINDA2 TIMES ME PLUS GAN2 TENU;Lo;0;L;;;;;N;;;;;
+12258;CUNEIFORM SIGN NINDA2 TIMES NE;Lo;0;L;;;;;N;;;;;
+12259;CUNEIFORM SIGN NINDA2 TIMES NUN;Lo;0;L;;;;;N;;;;;
+1225A;CUNEIFORM SIGN NINDA2 TIMES SHE;Lo;0;L;;;;;N;;;;;
+1225B;CUNEIFORM SIGN NINDA2 TIMES SHE PLUS A AN;Lo;0;L;;;;;N;;;;;
+1225C;CUNEIFORM SIGN NINDA2 TIMES SHE PLUS ASH;Lo;0;L;;;;;N;;;;;
+1225D;CUNEIFORM SIGN NINDA2 TIMES SHE PLUS ASH PLUS ASH;Lo;0;L;;;;;N;;;;;
+1225E;CUNEIFORM SIGN NINDA2 TIMES U2 PLUS ASH;Lo;0;L;;;;;N;;;;;
+1225F;CUNEIFORM SIGN NINDA2 TIMES USH;Lo;0;L;;;;;N;;;;;
+12260;CUNEIFORM SIGN NISAG;Lo;0;L;;;;;N;;;;;
+12261;CUNEIFORM SIGN NU;Lo;0;L;;;;;N;;;;;
+12262;CUNEIFORM SIGN NU11;Lo;0;L;;;;;N;;;;;
+12263;CUNEIFORM SIGN NUN;Lo;0;L;;;;;N;;;;;
+12264;CUNEIFORM SIGN NUN LAGAR TIMES GAR;Lo;0;L;;;;;N;;;;;
+12265;CUNEIFORM SIGN NUN LAGAR TIMES MASH;Lo;0;L;;;;;N;;;;;
+12266;CUNEIFORM SIGN NUN LAGAR TIMES SAL;Lo;0;L;;;;;N;;;;;
+12267;CUNEIFORM SIGN NUN LAGAR TIMES SAL OVER NUN LAGAR TIMES SAL;Lo;0;L;;;;;N;;;;;
+12268;CUNEIFORM SIGN NUN LAGAR TIMES USH;Lo;0;L;;;;;N;;;;;
+12269;CUNEIFORM SIGN NUN TENU;Lo;0;L;;;;;N;;;;;
+1226A;CUNEIFORM SIGN NUN OVER NUN;Lo;0;L;;;;;N;;;;;
+1226B;CUNEIFORM SIGN NUN CROSSING NUN;Lo;0;L;;;;;N;;;;;
+1226C;CUNEIFORM SIGN NUN CROSSING NUN LAGAR OVER LAGAR;Lo;0;L;;;;;N;;;;;
+1226D;CUNEIFORM SIGN NUNUZ;Lo;0;L;;;;;N;;;;;
+1226E;CUNEIFORM SIGN NUNUZ AB2 TIMES ASHGAB;Lo;0;L;;;;;N;;;;;
+1226F;CUNEIFORM SIGN NUNUZ AB2 TIMES BI;Lo;0;L;;;;;N;;;;;
+12270;CUNEIFORM SIGN NUNUZ AB2 TIMES DUG;Lo;0;L;;;;;N;;;;;
+12271;CUNEIFORM SIGN NUNUZ AB2 TIMES GUD;Lo;0;L;;;;;N;;;;;
+12272;CUNEIFORM SIGN NUNUZ AB2 TIMES IGI GUNU;Lo;0;L;;;;;N;;;;;
+12273;CUNEIFORM SIGN NUNUZ AB2 TIMES KAD3;Lo;0;L;;;;;N;;;;;
+12274;CUNEIFORM SIGN NUNUZ AB2 TIMES LA;Lo;0;L;;;;;N;;;;;
+12275;CUNEIFORM SIGN NUNUZ AB2 TIMES NE;Lo;0;L;;;;;N;;;;;
+12276;CUNEIFORM SIGN NUNUZ AB2 TIMES SILA3;Lo;0;L;;;;;N;;;;;
+12277;CUNEIFORM SIGN NUNUZ AB2 TIMES U2;Lo;0;L;;;;;N;;;;;
+12278;CUNEIFORM SIGN NUNUZ KISIM5 TIMES BI;Lo;0;L;;;;;N;;;;;
+12279;CUNEIFORM SIGN NUNUZ KISIM5 TIMES BI U;Lo;0;L;;;;;N;;;;;
+1227A;CUNEIFORM SIGN PA;Lo;0;L;;;;;N;;;;;
+1227B;CUNEIFORM SIGN PAD;Lo;0;L;;;;;N;;;;;
+1227C;CUNEIFORM SIGN PAN;Lo;0;L;;;;;N;;;;;
+1227D;CUNEIFORM SIGN PAP;Lo;0;L;;;;;N;;;;;
+1227E;CUNEIFORM SIGN PESH2;Lo;0;L;;;;;N;;;;;
+1227F;CUNEIFORM SIGN PI;Lo;0;L;;;;;N;;;;;
+12280;CUNEIFORM SIGN PI TIMES A;Lo;0;L;;;;;N;;;;;
+12281;CUNEIFORM SIGN PI TIMES AB;Lo;0;L;;;;;N;;;;;
+12282;CUNEIFORM SIGN PI TIMES BI;Lo;0;L;;;;;N;;;;;
+12283;CUNEIFORM SIGN PI TIMES BU;Lo;0;L;;;;;N;;;;;
+12284;CUNEIFORM SIGN PI TIMES E;Lo;0;L;;;;;N;;;;;
+12285;CUNEIFORM SIGN PI TIMES I;Lo;0;L;;;;;N;;;;;
+12286;CUNEIFORM SIGN PI TIMES IB;Lo;0;L;;;;;N;;;;;
+12287;CUNEIFORM SIGN PI TIMES U;Lo;0;L;;;;;N;;;;;
+12288;CUNEIFORM SIGN PI TIMES U2;Lo;0;L;;;;;N;;;;;
+12289;CUNEIFORM SIGN PI CROSSING PI;Lo;0;L;;;;;N;;;;;
+1228A;CUNEIFORM SIGN PIRIG;Lo;0;L;;;;;N;;;;;
+1228B;CUNEIFORM SIGN PIRIG TIMES KAL;Lo;0;L;;;;;N;;;;;
+1228C;CUNEIFORM SIGN PIRIG TIMES UD;Lo;0;L;;;;;N;;;;;
+1228D;CUNEIFORM SIGN PIRIG TIMES ZA;Lo;0;L;;;;;N;;;;;
+1228E;CUNEIFORM SIGN PIRIG OPPOSING PIRIG;Lo;0;L;;;;;N;;;;;
+1228F;CUNEIFORM SIGN RA;Lo;0;L;;;;;N;;;;;
+12290;CUNEIFORM SIGN RAB;Lo;0;L;;;;;N;;;;;
+12291;CUNEIFORM SIGN RI;Lo;0;L;;;;;N;;;;;
+12292;CUNEIFORM SIGN RU;Lo;0;L;;;;;N;;;;;
+12293;CUNEIFORM SIGN SA;Lo;0;L;;;;;N;;;;;
+12294;CUNEIFORM SIGN SAG NUTILLU;Lo;0;L;;;;;N;;;;;
+12295;CUNEIFORM SIGN SAG;Lo;0;L;;;;;N;;;;;
+12296;CUNEIFORM SIGN SAG TIMES A;Lo;0;L;;;;;N;;;;;
+12297;CUNEIFORM SIGN SAG TIMES DU;Lo;0;L;;;;;N;;;;;
+12298;CUNEIFORM SIGN SAG TIMES DUB;Lo;0;L;;;;;N;;;;;
+12299;CUNEIFORM SIGN SAG TIMES HA;Lo;0;L;;;;;N;;;;;
+1229A;CUNEIFORM SIGN SAG TIMES KAK;Lo;0;L;;;;;N;;;;;
+1229B;CUNEIFORM SIGN SAG TIMES KUR;Lo;0;L;;;;;N;;;;;
+1229C;CUNEIFORM SIGN SAG TIMES LUM;Lo;0;L;;;;;N;;;;;
+1229D;CUNEIFORM SIGN SAG TIMES MI;Lo;0;L;;;;;N;;;;;
+1229E;CUNEIFORM SIGN SAG TIMES NUN;Lo;0;L;;;;;N;;;;;
+1229F;CUNEIFORM SIGN SAG TIMES SAL;Lo;0;L;;;;;N;;;;;
+122A0;CUNEIFORM SIGN SAG TIMES SHID;Lo;0;L;;;;;N;;;;;
+122A1;CUNEIFORM SIGN SAG TIMES TAB;Lo;0;L;;;;;N;;;;;
+122A2;CUNEIFORM SIGN SAG TIMES U2;Lo;0;L;;;;;N;;;;;
+122A3;CUNEIFORM SIGN SAG TIMES UB;Lo;0;L;;;;;N;;;;;
+122A4;CUNEIFORM SIGN SAG TIMES UM;Lo;0;L;;;;;N;;;;;
+122A5;CUNEIFORM SIGN SAG TIMES UR;Lo;0;L;;;;;N;;;;;
+122A6;CUNEIFORM SIGN SAG TIMES USH;Lo;0;L;;;;;N;;;;;
+122A7;CUNEIFORM SIGN SAG OVER SAG;Lo;0;L;;;;;N;;;;;
+122A8;CUNEIFORM SIGN SAG GUNU;Lo;0;L;;;;;N;;;;;
+122A9;CUNEIFORM SIGN SAL;Lo;0;L;;;;;N;;;;;
+122AA;CUNEIFORM SIGN SAL LAGAB TIMES ASH2;Lo;0;L;;;;;N;;;;;
+122AB;CUNEIFORM SIGN SANGA2;Lo;0;L;;;;;N;;;;;
+122AC;CUNEIFORM SIGN SAR;Lo;0;L;;;;;N;;;;;
+122AD;CUNEIFORM SIGN SHA;Lo;0;L;;;;;N;;;;;
+122AE;CUNEIFORM SIGN SHA3;Lo;0;L;;;;;N;;;;;
+122AF;CUNEIFORM SIGN SHA3 TIMES A;Lo;0;L;;;;;N;;;;;
+122B0;CUNEIFORM SIGN SHA3 TIMES BAD;Lo;0;L;;;;;N;;;;;
+122B1;CUNEIFORM SIGN SHA3 TIMES GISH;Lo;0;L;;;;;N;;;;;
+122B2;CUNEIFORM SIGN SHA3 TIMES NE;Lo;0;L;;;;;N;;;;;
+122B3;CUNEIFORM SIGN SHA3 TIMES SHU2;Lo;0;L;;;;;N;;;;;
+122B4;CUNEIFORM SIGN SHA3 TIMES TUR;Lo;0;L;;;;;N;;;;;
+122B5;CUNEIFORM SIGN SHA3 TIMES U;Lo;0;L;;;;;N;;;;;
+122B6;CUNEIFORM SIGN SHA3 TIMES U PLUS A;Lo;0;L;;;;;N;;;;;
+122B7;CUNEIFORM SIGN SHA6;Lo;0;L;;;;;N;;;;;
+122B8;CUNEIFORM SIGN SHAB6;Lo;0;L;;;;;N;;;;;
+122B9;CUNEIFORM SIGN SHAR2;Lo;0;L;;;;;N;;;;;
+122BA;CUNEIFORM SIGN SHE;Lo;0;L;;;;;N;;;;;
+122BB;CUNEIFORM SIGN SHE HU;Lo;0;L;;;;;N;;;;;
+122BC;CUNEIFORM SIGN SHE OVER SHE GAD OVER GAD GAR OVER GAR;Lo;0;L;;;;;N;;;;;
+122BD;CUNEIFORM SIGN SHE OVER SHE TAB OVER TAB GAR OVER GAR;Lo;0;L;;;;;N;;;;;
+122BE;CUNEIFORM SIGN SHEG9;Lo;0;L;;;;;N;;;;;
+122BF;CUNEIFORM SIGN SHEN;Lo;0;L;;;;;N;;;;;
+122C0;CUNEIFORM SIGN SHESH;Lo;0;L;;;;;N;;;;;
+122C1;CUNEIFORM SIGN SHESH2;Lo;0;L;;;;;N;;;;;
+122C2;CUNEIFORM SIGN SHESHLAM;Lo;0;L;;;;;N;;;;;
+122C3;CUNEIFORM SIGN SHID;Lo;0;L;;;;;N;;;;;
+122C4;CUNEIFORM SIGN SHID TIMES A;Lo;0;L;;;;;N;;;;;
+122C5;CUNEIFORM SIGN SHID TIMES IM;Lo;0;L;;;;;N;;;;;
+122C6;CUNEIFORM SIGN SHIM;Lo;0;L;;;;;N;;;;;
+122C7;CUNEIFORM SIGN SHIM TIMES A;Lo;0;L;;;;;N;;;;;
+122C8;CUNEIFORM SIGN SHIM TIMES BAL;Lo;0;L;;;;;N;;;;;
+122C9;CUNEIFORM SIGN SHIM TIMES BULUG;Lo;0;L;;;;;N;;;;;
+122CA;CUNEIFORM SIGN SHIM TIMES DIN;Lo;0;L;;;;;N;;;;;
+122CB;CUNEIFORM SIGN SHIM TIMES GAR;Lo;0;L;;;;;N;;;;;
+122CC;CUNEIFORM SIGN SHIM TIMES IGI;Lo;0;L;;;;;N;;;;;
+122CD;CUNEIFORM SIGN SHIM TIMES IGI GUNU;Lo;0;L;;;;;N;;;;;
+122CE;CUNEIFORM SIGN SHIM TIMES KUSHU2;Lo;0;L;;;;;N;;;;;
+122CF;CUNEIFORM SIGN SHIM TIMES LUL;Lo;0;L;;;;;N;;;;;
+122D0;CUNEIFORM SIGN SHIM TIMES MUG;Lo;0;L;;;;;N;;;;;
+122D1;CUNEIFORM SIGN SHIM TIMES SAL;Lo;0;L;;;;;N;;;;;
+122D2;CUNEIFORM SIGN SHINIG;Lo;0;L;;;;;N;;;;;
+122D3;CUNEIFORM SIGN SHIR;Lo;0;L;;;;;N;;;;;
+122D4;CUNEIFORM SIGN SHIR TENU;Lo;0;L;;;;;N;;;;;
+122D5;CUNEIFORM SIGN SHIR OVER SHIR BUR OVER BUR;Lo;0;L;;;;;N;;;;;
+122D6;CUNEIFORM SIGN SHITA;Lo;0;L;;;;;N;;;;;
+122D7;CUNEIFORM SIGN SHU;Lo;0;L;;;;;N;;;;;
+122D8;CUNEIFORM SIGN SHU OVER INVERTED SHU;Lo;0;L;;;;;N;;;;;
+122D9;CUNEIFORM SIGN SHU2;Lo;0;L;;;;;N;;;;;
+122DA;CUNEIFORM SIGN SHUBUR;Lo;0;L;;;;;N;;;;;
+122DB;CUNEIFORM SIGN SI;Lo;0;L;;;;;N;;;;;
+122DC;CUNEIFORM SIGN SI GUNU;Lo;0;L;;;;;N;;;;;
+122DD;CUNEIFORM SIGN SIG;Lo;0;L;;;;;N;;;;;
+122DE;CUNEIFORM SIGN SIG4;Lo;0;L;;;;;N;;;;;
+122DF;CUNEIFORM SIGN SIG4 OVER SIG4 SHU2;Lo;0;L;;;;;N;;;;;
+122E0;CUNEIFORM SIGN SIK2;Lo;0;L;;;;;N;;;;;
+122E1;CUNEIFORM SIGN SILA3;Lo;0;L;;;;;N;;;;;
+122E2;CUNEIFORM SIGN SU;Lo;0;L;;;;;N;;;;;
+122E3;CUNEIFORM SIGN SU OVER SU;Lo;0;L;;;;;N;;;;;
+122E4;CUNEIFORM SIGN SUD;Lo;0;L;;;;;N;;;;;
+122E5;CUNEIFORM SIGN SUD2;Lo;0;L;;;;;N;;;;;
+122E6;CUNEIFORM SIGN SUHUR;Lo;0;L;;;;;N;;;;;
+122E7;CUNEIFORM SIGN SUM;Lo;0;L;;;;;N;;;;;
+122E8;CUNEIFORM SIGN SUMASH;Lo;0;L;;;;;N;;;;;
+122E9;CUNEIFORM SIGN SUR;Lo;0;L;;;;;N;;;;;
+122EA;CUNEIFORM SIGN SUR9;Lo;0;L;;;;;N;;;;;
+122EB;CUNEIFORM SIGN TA;Lo;0;L;;;;;N;;;;;
+122EC;CUNEIFORM SIGN TA ASTERISK;Lo;0;L;;;;;N;;;;;
+122ED;CUNEIFORM SIGN TA TIMES HI;Lo;0;L;;;;;N;;;;;
+122EE;CUNEIFORM SIGN TA TIMES MI;Lo;0;L;;;;;N;;;;;
+122EF;CUNEIFORM SIGN TA GUNU;Lo;0;L;;;;;N;;;;;
+122F0;CUNEIFORM SIGN TAB;Lo;0;L;;;;;N;;;;;
+122F1;CUNEIFORM SIGN TAB OVER TAB NI OVER NI DISH OVER DISH;Lo;0;L;;;;;N;;;;;
+122F2;CUNEIFORM SIGN TAB SQUARED;Lo;0;L;;;;;N;;;;;
+122F3;CUNEIFORM SIGN TAG;Lo;0;L;;;;;N;;;;;
+122F4;CUNEIFORM SIGN TAG TIMES BI;Lo;0;L;;;;;N;;;;;
+122F5;CUNEIFORM SIGN TAG TIMES GUD;Lo;0;L;;;;;N;;;;;
+122F6;CUNEIFORM SIGN TAG TIMES SHE;Lo;0;L;;;;;N;;;;;
+122F7;CUNEIFORM SIGN TAG TIMES SHU;Lo;0;L;;;;;N;;;;;
+122F8;CUNEIFORM SIGN TAG TIMES TUG2;Lo;0;L;;;;;N;;;;;
+122F9;CUNEIFORM SIGN TAG TIMES UD;Lo;0;L;;;;;N;;;;;
+122FA;CUNEIFORM SIGN TAK4;Lo;0;L;;;;;N;;;;;
+122FB;CUNEIFORM SIGN TAR;Lo;0;L;;;;;N;;;;;
+122FC;CUNEIFORM SIGN TE;Lo;0;L;;;;;N;;;;;
+122FD;CUNEIFORM SIGN TE GUNU;Lo;0;L;;;;;N;;;;;
+122FE;CUNEIFORM SIGN TI;Lo;0;L;;;;;N;;;;;
+122FF;CUNEIFORM SIGN TI TENU;Lo;0;L;;;;;N;;;;;
+12300;CUNEIFORM SIGN TIL;Lo;0;L;;;;;N;;;;;
+12301;CUNEIFORM SIGN TIR;Lo;0;L;;;;;N;;;;;
+12302;CUNEIFORM SIGN TIR TIMES TAK4;Lo;0;L;;;;;N;;;;;
+12303;CUNEIFORM SIGN TIR OVER TIR;Lo;0;L;;;;;N;;;;;
+12304;CUNEIFORM SIGN TIR OVER TIR GAD OVER GAD GAR OVER GAR;Lo;0;L;;;;;N;;;;;
+12305;CUNEIFORM SIGN TU;Lo;0;L;;;;;N;;;;;
+12306;CUNEIFORM SIGN TUG2;Lo;0;L;;;;;N;;;;;
+12307;CUNEIFORM SIGN TUK;Lo;0;L;;;;;N;;;;;
+12308;CUNEIFORM SIGN TUM;Lo;0;L;;;;;N;;;;;
+12309;CUNEIFORM SIGN TUR;Lo;0;L;;;;;N;;;;;
+1230A;CUNEIFORM SIGN TUR OVER TUR ZA OVER ZA;Lo;0;L;;;;;N;;;;;
+1230B;CUNEIFORM SIGN U;Lo;0;L;;;;;N;;;;;
+1230C;CUNEIFORM SIGN U GUD;Lo;0;L;;;;;N;;;;;
+1230D;CUNEIFORM SIGN U U U;Lo;0;L;;;;;N;;;;;
+1230E;CUNEIFORM SIGN U OVER U PA OVER PA GAR OVER GAR;Lo;0;L;;;;;N;;;;;
+1230F;CUNEIFORM SIGN U OVER U SUR OVER SUR;Lo;0;L;;;;;N;;;;;
+12310;CUNEIFORM SIGN U OVER U U REVERSED OVER U REVERSED;Lo;0;L;;;;;N;;;;;
+12311;CUNEIFORM SIGN U2;Lo;0;L;;;;;N;;;;;
+12312;CUNEIFORM SIGN UB;Lo;0;L;;;;;N;;;;;
+12313;CUNEIFORM SIGN UD;Lo;0;L;;;;;N;;;;;
+12314;CUNEIFORM SIGN UD KUSHU2;Lo;0;L;;;;;N;;;;;
+12315;CUNEIFORM SIGN UD TIMES BAD;Lo;0;L;;;;;N;;;;;
+12316;CUNEIFORM SIGN UD TIMES MI;Lo;0;L;;;;;N;;;;;
+12317;CUNEIFORM SIGN UD TIMES U PLUS U PLUS U;Lo;0;L;;;;;N;;;;;
+12318;CUNEIFORM SIGN UD TIMES U PLUS U PLUS U GUNU;Lo;0;L;;;;;N;;;;;
+12319;CUNEIFORM SIGN UD GUNU;Lo;0;L;;;;;N;;;;;
+1231A;CUNEIFORM SIGN UD SHESHIG;Lo;0;L;;;;;N;;;;;
+1231B;CUNEIFORM SIGN UD SHESHIG TIMES BAD;Lo;0;L;;;;;N;;;;;
+1231C;CUNEIFORM SIGN UDUG;Lo;0;L;;;;;N;;;;;
+1231D;CUNEIFORM SIGN UM;Lo;0;L;;;;;N;;;;;
+1231E;CUNEIFORM SIGN UM TIMES LAGAB;Lo;0;L;;;;;N;;;;;
+1231F;CUNEIFORM SIGN UM TIMES ME PLUS DA;Lo;0;L;;;;;N;;;;;
+12320;CUNEIFORM SIGN UM TIMES SHA3;Lo;0;L;;;;;N;;;;;
+12321;CUNEIFORM SIGN UM TIMES U;Lo;0;L;;;;;N;;;;;
+12322;CUNEIFORM SIGN UMBIN;Lo;0;L;;;;;N;;;;;
+12323;CUNEIFORM SIGN UMUM;Lo;0;L;;;;;N;;;;;
+12324;CUNEIFORM SIGN UMUM TIMES KASKAL;Lo;0;L;;;;;N;;;;;
+12325;CUNEIFORM SIGN UMUM TIMES PA;Lo;0;L;;;;;N;;;;;
+12326;CUNEIFORM SIGN UN;Lo;0;L;;;;;N;;;;;
+12327;CUNEIFORM SIGN UN GUNU;Lo;0;L;;;;;N;;;;;
+12328;CUNEIFORM SIGN UR;Lo;0;L;;;;;N;;;;;
+12329;CUNEIFORM SIGN UR CROSSING UR;Lo;0;L;;;;;N;;;;;
+1232A;CUNEIFORM SIGN UR SHESHIG;Lo;0;L;;;;;N;;;;;
+1232B;CUNEIFORM SIGN UR2;Lo;0;L;;;;;N;;;;;
+1232C;CUNEIFORM SIGN UR2 TIMES A PLUS HA;Lo;0;L;;;;;N;;;;;
+1232D;CUNEIFORM SIGN UR2 TIMES A PLUS NA;Lo;0;L;;;;;N;;;;;
+1232E;CUNEIFORM SIGN UR2 TIMES AL;Lo;0;L;;;;;N;;;;;
+1232F;CUNEIFORM SIGN UR2 TIMES HA;Lo;0;L;;;;;N;;;;;
+12330;CUNEIFORM SIGN UR2 TIMES NUN;Lo;0;L;;;;;N;;;;;
+12331;CUNEIFORM SIGN UR2 TIMES U2;Lo;0;L;;;;;N;;;;;
+12332;CUNEIFORM SIGN UR2 TIMES U2 PLUS ASH;Lo;0;L;;;;;N;;;;;
+12333;CUNEIFORM SIGN UR2 TIMES U2 PLUS BI;Lo;0;L;;;;;N;;;;;
+12334;CUNEIFORM SIGN UR4;Lo;0;L;;;;;N;;;;;
+12335;CUNEIFORM SIGN URI;Lo;0;L;;;;;N;;;;;
+12336;CUNEIFORM SIGN URI3;Lo;0;L;;;;;N;;;;;
+12337;CUNEIFORM SIGN URU;Lo;0;L;;;;;N;;;;;
+12338;CUNEIFORM SIGN URU TIMES A;Lo;0;L;;;;;N;;;;;
+12339;CUNEIFORM SIGN URU TIMES ASHGAB;Lo;0;L;;;;;N;;;;;
+1233A;CUNEIFORM SIGN URU TIMES BAR;Lo;0;L;;;;;N;;;;;
+1233B;CUNEIFORM SIGN URU TIMES DUN;Lo;0;L;;;;;N;;;;;
+1233C;CUNEIFORM SIGN URU TIMES GA;Lo;0;L;;;;;N;;;;;
+1233D;CUNEIFORM SIGN URU TIMES GAL;Lo;0;L;;;;;N;;;;;
+1233E;CUNEIFORM SIGN URU TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;
+1233F;CUNEIFORM SIGN URU TIMES GAR;Lo;0;L;;;;;N;;;;;
+12340;CUNEIFORM SIGN URU TIMES GU;Lo;0;L;;;;;N;;;;;
+12341;CUNEIFORM SIGN URU TIMES HA;Lo;0;L;;;;;N;;;;;
+12342;CUNEIFORM SIGN URU TIMES IGI;Lo;0;L;;;;;N;;;;;
+12343;CUNEIFORM SIGN URU TIMES IM;Lo;0;L;;;;;N;;;;;
+12344;CUNEIFORM SIGN URU TIMES ISH;Lo;0;L;;;;;N;;;;;
+12345;CUNEIFORM SIGN URU TIMES KI;Lo;0;L;;;;;N;;;;;
+12346;CUNEIFORM SIGN URU TIMES LUM;Lo;0;L;;;;;N;;;;;
+12347;CUNEIFORM SIGN URU TIMES MIN;Lo;0;L;;;;;N;;;;;
+12348;CUNEIFORM SIGN URU TIMES PA;Lo;0;L;;;;;N;;;;;
+12349;CUNEIFORM SIGN URU TIMES SHE;Lo;0;L;;;;;N;;;;;
+1234A;CUNEIFORM SIGN URU TIMES SIG4;Lo;0;L;;;;;N;;;;;
+1234B;CUNEIFORM SIGN URU TIMES TU;Lo;0;L;;;;;N;;;;;
+1234C;CUNEIFORM SIGN URU TIMES U PLUS GUD;Lo;0;L;;;;;N;;;;;
+1234D;CUNEIFORM SIGN URU TIMES UD;Lo;0;L;;;;;N;;;;;
+1234E;CUNEIFORM SIGN URU TIMES URUDA;Lo;0;L;;;;;N;;;;;
+1234F;CUNEIFORM SIGN URUDA;Lo;0;L;;;;;N;;;;;
+12350;CUNEIFORM SIGN URUDA TIMES U;Lo;0;L;;;;;N;;;;;
+12351;CUNEIFORM SIGN USH;Lo;0;L;;;;;N;;;;;
+12352;CUNEIFORM SIGN USH TIMES A;Lo;0;L;;;;;N;;;;;
+12353;CUNEIFORM SIGN USH TIMES KU;Lo;0;L;;;;;N;;;;;
+12354;CUNEIFORM SIGN USH TIMES KUR;Lo;0;L;;;;;N;;;;;
+12355;CUNEIFORM SIGN USH TIMES TAK4;Lo;0;L;;;;;N;;;;;
+12356;CUNEIFORM SIGN USHX;Lo;0;L;;;;;N;;;;;
+12357;CUNEIFORM SIGN USH2;Lo;0;L;;;;;N;;;;;
+12358;CUNEIFORM SIGN USHUMX;Lo;0;L;;;;;N;;;;;
+12359;CUNEIFORM SIGN UTUKI;Lo;0;L;;;;;N;;;;;
+1235A;CUNEIFORM SIGN UZ3;Lo;0;L;;;;;N;;;;;
+1235B;CUNEIFORM SIGN UZ3 TIMES KASKAL;Lo;0;L;;;;;N;;;;;
+1235C;CUNEIFORM SIGN UZU;Lo;0;L;;;;;N;;;;;
+1235D;CUNEIFORM SIGN ZA;Lo;0;L;;;;;N;;;;;
+1235E;CUNEIFORM SIGN ZA TENU;Lo;0;L;;;;;N;;;;;
+1235F;CUNEIFORM SIGN ZA SQUARED TIMES KUR;Lo;0;L;;;;;N;;;;;
+12360;CUNEIFORM SIGN ZAG;Lo;0;L;;;;;N;;;;;
+12361;CUNEIFORM SIGN ZAMX;Lo;0;L;;;;;N;;;;;
+12362;CUNEIFORM SIGN ZE2;Lo;0;L;;;;;N;;;;;
+12363;CUNEIFORM SIGN ZI;Lo;0;L;;;;;N;;;;;
+12364;CUNEIFORM SIGN ZI OVER ZI;Lo;0;L;;;;;N;;;;;
+12365;CUNEIFORM SIGN ZI3;Lo;0;L;;;;;N;;;;;
+12366;CUNEIFORM SIGN ZIB;Lo;0;L;;;;;N;;;;;
+12367;CUNEIFORM SIGN ZIB KABA TENU;Lo;0;L;;;;;N;;;;;
+12368;CUNEIFORM SIGN ZIG;Lo;0;L;;;;;N;;;;;
+12369;CUNEIFORM SIGN ZIZ2;Lo;0;L;;;;;N;;;;;
+1236A;CUNEIFORM SIGN ZU;Lo;0;L;;;;;N;;;;;
+1236B;CUNEIFORM SIGN ZU5;Lo;0;L;;;;;N;;;;;
+1236C;CUNEIFORM SIGN ZU5 TIMES A;Lo;0;L;;;;;N;;;;;
+1236D;CUNEIFORM SIGN ZUBUR;Lo;0;L;;;;;N;;;;;
+1236E;CUNEIFORM SIGN ZUM;Lo;0;L;;;;;N;;;;;
+12400;CUNEIFORM NUMERIC SIGN TWO ASH;Nl;0;L;;;;2;N;;;;;
+12401;CUNEIFORM NUMERIC SIGN THREE ASH;Nl;0;L;;;;3;N;;;;;
+12402;CUNEIFORM NUMERIC SIGN FOUR ASH;Nl;0;L;;;;4;N;;;;;
+12403;CUNEIFORM NUMERIC SIGN FIVE ASH;Nl;0;L;;;;5;N;;;;;
+12404;CUNEIFORM NUMERIC SIGN SIX ASH;Nl;0;L;;;;6;N;;;;;
+12405;CUNEIFORM NUMERIC SIGN SEVEN ASH;Nl;0;L;;;;7;N;;;;;
+12406;CUNEIFORM NUMERIC SIGN EIGHT ASH;Nl;0;L;;;;8;N;;;;;
+12407;CUNEIFORM NUMERIC SIGN NINE ASH;Nl;0;L;;;;9;N;;;;;
+12408;CUNEIFORM NUMERIC SIGN THREE DISH;Nl;0;L;;;;3;N;;;;;
+12409;CUNEIFORM NUMERIC SIGN FOUR DISH;Nl;0;L;;;;4;N;;;;;
+1240A;CUNEIFORM NUMERIC SIGN FIVE DISH;Nl;0;L;;;;5;N;;;;;
+1240B;CUNEIFORM NUMERIC SIGN SIX DISH;Nl;0;L;;;;6;N;;;;;
+1240C;CUNEIFORM NUMERIC SIGN SEVEN DISH;Nl;0;L;;;;7;N;;;;;
+1240D;CUNEIFORM NUMERIC SIGN EIGHT DISH;Nl;0;L;;;;8;N;;;;;
+1240E;CUNEIFORM NUMERIC SIGN NINE DISH;Nl;0;L;;;;9;N;;;;;
+1240F;CUNEIFORM NUMERIC SIGN FOUR U;Nl;0;L;;;;4;N;;;;;
+12410;CUNEIFORM NUMERIC SIGN FIVE U;Nl;0;L;;;;5;N;;;;;
+12411;CUNEIFORM NUMERIC SIGN SIX U;Nl;0;L;;;;6;N;;;;;
+12412;CUNEIFORM NUMERIC SIGN SEVEN U;Nl;0;L;;;;7;N;;;;;
+12413;CUNEIFORM NUMERIC SIGN EIGHT U;Nl;0;L;;;;8;N;;;;;
+12414;CUNEIFORM NUMERIC SIGN NINE U;Nl;0;L;;;;9;N;;;;;
+12415;CUNEIFORM NUMERIC SIGN ONE GESH2;Nl;0;L;;;;1;N;;;;;
+12416;CUNEIFORM NUMERIC SIGN TWO GESH2;Nl;0;L;;;;2;N;;;;;
+12417;CUNEIFORM NUMERIC SIGN THREE GESH2;Nl;0;L;;;;3;N;;;;;
+12418;CUNEIFORM NUMERIC SIGN FOUR GESH2;Nl;0;L;;;;4;N;;;;;
+12419;CUNEIFORM NUMERIC SIGN FIVE GESH2;Nl;0;L;;;;5;N;;;;;
+1241A;CUNEIFORM NUMERIC SIGN SIX GESH2;Nl;0;L;;;;6;N;;;;;
+1241B;CUNEIFORM NUMERIC SIGN SEVEN GESH2;Nl;0;L;;;;7;N;;;;;
+1241C;CUNEIFORM NUMERIC SIGN EIGHT GESH2;Nl;0;L;;;;8;N;;;;;
+1241D;CUNEIFORM NUMERIC SIGN NINE GESH2;Nl;0;L;;;;9;N;;;;;
+1241E;CUNEIFORM NUMERIC SIGN ONE GESHU;Nl;0;L;;;;1;N;;;;;
+1241F;CUNEIFORM NUMERIC SIGN TWO GESHU;Nl;0;L;;;;2;N;;;;;
+12420;CUNEIFORM NUMERIC SIGN THREE GESHU;Nl;0;L;;;;3;N;;;;;
+12421;CUNEIFORM NUMERIC SIGN FOUR GESHU;Nl;0;L;;;;4;N;;;;;
+12422;CUNEIFORM NUMERIC SIGN FIVE GESHU;Nl;0;L;;;;5;N;;;;;
+12423;CUNEIFORM NUMERIC SIGN TWO SHAR2;Nl;0;L;;;;2;N;;;;;
+12424;CUNEIFORM NUMERIC SIGN THREE SHAR2;Nl;0;L;;;;3;N;;;;;
+12425;CUNEIFORM NUMERIC SIGN THREE SHAR2 VARIANT FORM;Nl;0;L;;;;3;N;;;;;
+12426;CUNEIFORM NUMERIC SIGN FOUR SHAR2;Nl;0;L;;;;4;N;;;;;
+12427;CUNEIFORM NUMERIC SIGN FIVE SHAR2;Nl;0;L;;;;5;N;;;;;
+12428;CUNEIFORM NUMERIC SIGN SIX SHAR2;Nl;0;L;;;;6;N;;;;;
+12429;CUNEIFORM NUMERIC SIGN SEVEN SHAR2;Nl;0;L;;;;7;N;;;;;
+1242A;CUNEIFORM NUMERIC SIGN EIGHT SHAR2;Nl;0;L;;;;8;N;;;;;
+1242B;CUNEIFORM NUMERIC SIGN NINE SHAR2;Nl;0;L;;;;9;N;;;;;
+1242C;CUNEIFORM NUMERIC SIGN ONE SHARU;Nl;0;L;;;;1;N;;;;;
+1242D;CUNEIFORM NUMERIC SIGN TWO SHARU;Nl;0;L;;;;2;N;;;;;
+1242E;CUNEIFORM NUMERIC SIGN THREE SHARU;Nl;0;L;;;;3;N;;;;;
+1242F;CUNEIFORM NUMERIC SIGN THREE SHARU VARIANT FORM;Nl;0;L;;;;3;N;;;;;
+12430;CUNEIFORM NUMERIC SIGN FOUR SHARU;Nl;0;L;;;;4;N;;;;;
+12431;CUNEIFORM NUMERIC SIGN FIVE SHARU;Nl;0;L;;;;5;N;;;;;
+12432;CUNEIFORM NUMERIC SIGN SHAR2 TIMES GAL PLUS DISH;Nl;0;L;;;;;N;;;;;
+12433;CUNEIFORM NUMERIC SIGN SHAR2 TIMES GAL PLUS MIN;Nl;0;L;;;;;N;;;;;
+12434;CUNEIFORM NUMERIC SIGN ONE BURU;Nl;0;L;;;;1;N;;;;;
+12435;CUNEIFORM NUMERIC SIGN TWO BURU;Nl;0;L;;;;2;N;;;;;
+12436;CUNEIFORM NUMERIC SIGN THREE BURU;Nl;0;L;;;;3;N;;;;;
+12437;CUNEIFORM NUMERIC SIGN THREE BURU VARIANT FORM;Nl;0;L;;;;3;N;;;;;
+12438;CUNEIFORM NUMERIC SIGN FOUR BURU;Nl;0;L;;;;4;N;;;;;
+12439;CUNEIFORM NUMERIC SIGN FIVE BURU;Nl;0;L;;;;5;N;;;;;
+1243A;CUNEIFORM NUMERIC SIGN THREE VARIANT FORM ESH16;Nl;0;L;;;;3;N;;;;;
+1243B;CUNEIFORM NUMERIC SIGN THREE VARIANT FORM ESH21;Nl;0;L;;;;3;N;;;;;
+1243C;CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU;Nl;0;L;;;;4;N;;;;;
+1243D;CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU4;Nl;0;L;;;;4;N;;;;;
+1243E;CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU A;Nl;0;L;;;;4;N;;;;;
+1243F;CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU B;Nl;0;L;;;;4;N;;;;;
+12440;CUNEIFORM NUMERIC SIGN SIX VARIANT FORM ASH9;Nl;0;L;;;;6;N;;;;;
+12441;CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN3;Nl;0;L;;;;7;N;;;;;
+12442;CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN A;Nl;0;L;;;;7;N;;;;;
+12443;CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN B;Nl;0;L;;;;7;N;;;;;
+12444;CUNEIFORM NUMERIC SIGN EIGHT VARIANT FORM USSU;Nl;0;L;;;;8;N;;;;;
+12445;CUNEIFORM NUMERIC SIGN EIGHT VARIANT FORM USSU3;Nl;0;L;;;;8;N;;;;;
+12446;CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU;Nl;0;L;;;;9;N;;;;;
+12447;CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU3;Nl;0;L;;;;9;N;;;;;
+12448;CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU4;Nl;0;L;;;;9;N;;;;;
+12449;CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU A;Nl;0;L;;;;9;N;;;;;
+1244A;CUNEIFORM NUMERIC SIGN TWO ASH TENU;Nl;0;L;;;;2;N;;;;;
+1244B;CUNEIFORM NUMERIC SIGN THREE ASH TENU;Nl;0;L;;;;3;N;;;;;
+1244C;CUNEIFORM NUMERIC SIGN FOUR ASH TENU;Nl;0;L;;;;4;N;;;;;
+1244D;CUNEIFORM NUMERIC SIGN FIVE ASH TENU;Nl;0;L;;;;5;N;;;;;
+1244E;CUNEIFORM NUMERIC SIGN SIX ASH TENU;Nl;0;L;;;;6;N;;;;;
+1244F;CUNEIFORM NUMERIC SIGN ONE BAN2;Nl;0;L;;;;1;N;;;;;
+12450;CUNEIFORM NUMERIC SIGN TWO BAN2;Nl;0;L;;;;2;N;;;;;
+12451;CUNEIFORM NUMERIC SIGN THREE BAN2;Nl;0;L;;;;3;N;;;;;
+12452;CUNEIFORM NUMERIC SIGN FOUR BAN2;Nl;0;L;;;;4;N;;;;;
+12453;CUNEIFORM NUMERIC SIGN FOUR BAN2 VARIANT FORM;Nl;0;L;;;;4;N;;;;;
+12454;CUNEIFORM NUMERIC SIGN FIVE BAN2;Nl;0;L;;;;5;N;;;;;
+12455;CUNEIFORM NUMERIC SIGN FIVE BAN2 VARIANT FORM;Nl;0;L;;;;5;N;;;;;
+12456;CUNEIFORM NUMERIC SIGN NIGIDAMIN;Nl;0;L;;;;;N;;;;;
+12457;CUNEIFORM NUMERIC SIGN NIGIDAESH;Nl;0;L;;;;;N;;;;;
+12458;CUNEIFORM NUMERIC SIGN ONE ESHE3;Nl;0;L;;;;1;N;;;;;
+12459;CUNEIFORM NUMERIC SIGN TWO ESHE3;Nl;0;L;;;;2;N;;;;;
+1245A;CUNEIFORM NUMERIC SIGN ONE THIRD DISH;Nl;0;L;;;;1/3;N;;;;;
+1245B;CUNEIFORM NUMERIC SIGN TWO THIRDS DISH;Nl;0;L;;;;2/3;N;;;;;
+1245C;CUNEIFORM NUMERIC SIGN FIVE SIXTHS DISH;Nl;0;L;;;;5/6;N;;;;;
+1245D;CUNEIFORM NUMERIC SIGN ONE THIRD VARIANT FORM A;Nl;0;L;;;;1/3;N;;;;;
+1245E;CUNEIFORM NUMERIC SIGN TWO THIRDS VARIANT FORM A;Nl;0;L;;;;2/3;N;;;;;
+1245F;CUNEIFORM NUMERIC SIGN ONE EIGHTH ASH;Nl;0;L;;;;1/8;N;;;;;
+12460;CUNEIFORM NUMERIC SIGN ONE QUARTER ASH;Nl;0;L;;;;1/4;N;;;;;
+12461;CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE SIXTH;Nl;0;L;;;;1/6;N;;;;;
+12462;CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER;Nl;0;L;;;;1/4;N;;;;;
+12470;CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER;Po;0;L;;;;;N;;;;;
+12471;CUNEIFORM PUNCTUATION SIGN VERTICAL COLON;Po;0;L;;;;;N;;;;;
+12472;CUNEIFORM PUNCTUATION SIGN DIAGONAL COLON;Po;0;L;;;;;N;;;;;
+12473;CUNEIFORM PUNCTUATION SIGN DIAGONAL TRICOLON;Po;0;L;;;;;N;;;;;
+1D000;BYZANTINE MUSICAL SYMBOL PSILI;So;0;L;;;;;N;;;;;
+1D001;BYZANTINE MUSICAL SYMBOL DASEIA;So;0;L;;;;;N;;;;;
+1D002;BYZANTINE MUSICAL SYMBOL PERISPOMENI;So;0;L;;;;;N;;;;;
+1D003;BYZANTINE MUSICAL SYMBOL OXEIA EKFONITIKON;So;0;L;;;;;N;;;;;
+1D004;BYZANTINE MUSICAL SYMBOL OXEIA DIPLI;So;0;L;;;;;N;;;;;
+1D005;BYZANTINE MUSICAL SYMBOL VAREIA EKFONITIKON;So;0;L;;;;;N;;;;;
+1D006;BYZANTINE MUSICAL SYMBOL VAREIA DIPLI;So;0;L;;;;;N;;;;;
+1D007;BYZANTINE MUSICAL SYMBOL KATHISTI;So;0;L;;;;;N;;;;;
+1D008;BYZANTINE MUSICAL SYMBOL SYRMATIKI;So;0;L;;;;;N;;;;;
+1D009;BYZANTINE MUSICAL SYMBOL PARAKLITIKI;So;0;L;;;;;N;;;;;
+1D00A;BYZANTINE MUSICAL SYMBOL YPOKRISIS;So;0;L;;;;;N;;;;;
+1D00B;BYZANTINE MUSICAL SYMBOL YPOKRISIS DIPLI;So;0;L;;;;;N;;;;;
+1D00C;BYZANTINE MUSICAL SYMBOL KREMASTI;So;0;L;;;;;N;;;;;
+1D00D;BYZANTINE MUSICAL SYMBOL APESO EKFONITIKON;So;0;L;;;;;N;;;;;
+1D00E;BYZANTINE MUSICAL SYMBOL EXO EKFONITIKON;So;0;L;;;;;N;;;;;
+1D00F;BYZANTINE MUSICAL SYMBOL TELEIA;So;0;L;;;;;N;;;;;
+1D010;BYZANTINE MUSICAL SYMBOL KENTIMATA;So;0;L;;;;;N;;;;;
+1D011;BYZANTINE MUSICAL SYMBOL APOSTROFOS;So;0;L;;;;;N;;;;;
+1D012;BYZANTINE MUSICAL SYMBOL APOSTROFOS DIPLI;So;0;L;;;;;N;;;;;
+1D013;BYZANTINE MUSICAL SYMBOL SYNEVMA;So;0;L;;;;;N;;;;;
+1D014;BYZANTINE MUSICAL SYMBOL THITA;So;0;L;;;;;N;;;;;
+1D015;BYZANTINE MUSICAL SYMBOL OLIGON ARCHAION;So;0;L;;;;;N;;;;;
+1D016;BYZANTINE MUSICAL SYMBOL GORGON ARCHAION;So;0;L;;;;;N;;;;;
+1D017;BYZANTINE MUSICAL SYMBOL PSILON;So;0;L;;;;;N;;;;;
+1D018;BYZANTINE MUSICAL SYMBOL CHAMILON;So;0;L;;;;;N;;;;;
+1D019;BYZANTINE MUSICAL SYMBOL VATHY;So;0;L;;;;;N;;;;;
+1D01A;BYZANTINE MUSICAL SYMBOL ISON ARCHAION;So;0;L;;;;;N;;;;;
+1D01B;BYZANTINE MUSICAL SYMBOL KENTIMA ARCHAION;So;0;L;;;;;N;;;;;
+1D01C;BYZANTINE MUSICAL SYMBOL KENTIMATA ARCHAION;So;0;L;;;;;N;;;;;
+1D01D;BYZANTINE MUSICAL SYMBOL SAXIMATA;So;0;L;;;;;N;;;;;
+1D01E;BYZANTINE MUSICAL SYMBOL PARICHON;So;0;L;;;;;N;;;;;
+1D01F;BYZANTINE MUSICAL SYMBOL STAVROS APODEXIA;So;0;L;;;;;N;;;;;
+1D020;BYZANTINE MUSICAL SYMBOL OXEIAI ARCHAION;So;0;L;;;;;N;;;;;
+1D021;BYZANTINE MUSICAL SYMBOL VAREIAI ARCHAION;So;0;L;;;;;N;;;;;
+1D022;BYZANTINE MUSICAL SYMBOL APODERMA ARCHAION;So;0;L;;;;;N;;;;;
+1D023;BYZANTINE MUSICAL SYMBOL APOTHEMA;So;0;L;;;;;N;;;;;
+1D024;BYZANTINE MUSICAL SYMBOL KLASMA;So;0;L;;;;;N;;;;;
+1D025;BYZANTINE MUSICAL SYMBOL REVMA;So;0;L;;;;;N;;;;;
+1D026;BYZANTINE MUSICAL SYMBOL PIASMA ARCHAION;So;0;L;;;;;N;;;;;
+1D027;BYZANTINE MUSICAL SYMBOL TINAGMA;So;0;L;;;;;N;;;;;
+1D028;BYZANTINE MUSICAL SYMBOL ANATRICHISMA;So;0;L;;;;;N;;;;;
+1D029;BYZANTINE MUSICAL SYMBOL SEISMA;So;0;L;;;;;N;;;;;
+1D02A;BYZANTINE MUSICAL SYMBOL SYNAGMA ARCHAION;So;0;L;;;;;N;;;;;
+1D02B;BYZANTINE MUSICAL SYMBOL SYNAGMA META STAVROU;So;0;L;;;;;N;;;;;
+1D02C;BYZANTINE MUSICAL SYMBOL OYRANISMA ARCHAION;So;0;L;;;;;N;;;;;
+1D02D;BYZANTINE MUSICAL SYMBOL THEMA;So;0;L;;;;;N;;;;;
+1D02E;BYZANTINE MUSICAL SYMBOL LEMOI;So;0;L;;;;;N;;;;;
+1D02F;BYZANTINE MUSICAL SYMBOL DYO;So;0;L;;;;;N;;;;;
+1D030;BYZANTINE MUSICAL SYMBOL TRIA;So;0;L;;;;;N;;;;;
+1D031;BYZANTINE MUSICAL SYMBOL TESSERA;So;0;L;;;;;N;;;;;
+1D032;BYZANTINE MUSICAL SYMBOL KRATIMATA;So;0;L;;;;;N;;;;;
+1D033;BYZANTINE MUSICAL SYMBOL APESO EXO NEO;So;0;L;;;;;N;;;;;
+1D034;BYZANTINE MUSICAL SYMBOL FTHORA ARCHAION;So;0;L;;;;;N;;;;;
+1D035;BYZANTINE MUSICAL SYMBOL IMIFTHORA;So;0;L;;;;;N;;;;;
+1D036;BYZANTINE MUSICAL SYMBOL TROMIKON ARCHAION;So;0;L;;;;;N;;;;;
+1D037;BYZANTINE MUSICAL SYMBOL KATAVA TROMIKON;So;0;L;;;;;N;;;;;
+1D038;BYZANTINE MUSICAL SYMBOL PELASTON;So;0;L;;;;;N;;;;;
+1D039;BYZANTINE MUSICAL SYMBOL PSIFISTON;So;0;L;;;;;N;;;;;
+1D03A;BYZANTINE MUSICAL SYMBOL KONTEVMA;So;0;L;;;;;N;;;;;
+1D03B;BYZANTINE MUSICAL SYMBOL CHOREVMA ARCHAION;So;0;L;;;;;N;;;;;
+1D03C;BYZANTINE MUSICAL SYMBOL RAPISMA;So;0;L;;;;;N;;;;;
+1D03D;BYZANTINE MUSICAL SYMBOL PARAKALESMA ARCHAION;So;0;L;;;;;N;;;;;
+1D03E;BYZANTINE MUSICAL SYMBOL PARAKLITIKI ARCHAION;So;0;L;;;;;N;;;;;
+1D03F;BYZANTINE MUSICAL SYMBOL ICHADIN;So;0;L;;;;;N;;;;;
+1D040;BYZANTINE MUSICAL SYMBOL NANA;So;0;L;;;;;N;;;;;
+1D041;BYZANTINE MUSICAL SYMBOL PETASMA;So;0;L;;;;;N;;;;;
+1D042;BYZANTINE MUSICAL SYMBOL KONTEVMA ALLO;So;0;L;;;;;N;;;;;
+1D043;BYZANTINE MUSICAL SYMBOL TROMIKON ALLO;So;0;L;;;;;N;;;;;
+1D044;BYZANTINE MUSICAL SYMBOL STRAGGISMATA;So;0;L;;;;;N;;;;;
+1D045;BYZANTINE MUSICAL SYMBOL GRONTHISMATA;So;0;L;;;;;N;;;;;
+1D046;BYZANTINE MUSICAL SYMBOL ISON NEO;So;0;L;;;;;N;;;;;
+1D047;BYZANTINE MUSICAL SYMBOL OLIGON NEO;So;0;L;;;;;N;;;;;
+1D048;BYZANTINE MUSICAL SYMBOL OXEIA NEO;So;0;L;;;;;N;;;;;
+1D049;BYZANTINE MUSICAL SYMBOL PETASTI;So;0;L;;;;;N;;;;;
+1D04A;BYZANTINE MUSICAL SYMBOL KOUFISMA;So;0;L;;;;;N;;;;;
+1D04B;BYZANTINE MUSICAL SYMBOL PETASTOKOUFISMA;So;0;L;;;;;N;;;;;
+1D04C;BYZANTINE MUSICAL SYMBOL KRATIMOKOUFISMA;So;0;L;;;;;N;;;;;
+1D04D;BYZANTINE MUSICAL SYMBOL PELASTON NEO;So;0;L;;;;;N;;;;;
+1D04E;BYZANTINE MUSICAL SYMBOL KENTIMATA NEO ANO;So;0;L;;;;;N;;;;;
+1D04F;BYZANTINE MUSICAL SYMBOL KENTIMA NEO ANO;So;0;L;;;;;N;;;;;
+1D050;BYZANTINE MUSICAL SYMBOL YPSILI;So;0;L;;;;;N;;;;;
+1D051;BYZANTINE MUSICAL SYMBOL APOSTROFOS NEO;So;0;L;;;;;N;;;;;
+1D052;BYZANTINE MUSICAL SYMBOL APOSTROFOI SYNDESMOS NEO;So;0;L;;;;;N;;;;;
+1D053;BYZANTINE MUSICAL SYMBOL YPORROI;So;0;L;;;;;N;;;;;
+1D054;BYZANTINE MUSICAL SYMBOL KRATIMOYPORROON;So;0;L;;;;;N;;;;;
+1D055;BYZANTINE MUSICAL SYMBOL ELAFRON;So;0;L;;;;;N;;;;;
+1D056;BYZANTINE MUSICAL SYMBOL CHAMILI;So;0;L;;;;;N;;;;;
+1D057;BYZANTINE MUSICAL SYMBOL MIKRON ISON;So;0;L;;;;;N;;;;;
+1D058;BYZANTINE MUSICAL SYMBOL VAREIA NEO;So;0;L;;;;;N;;;;;
+1D059;BYZANTINE MUSICAL SYMBOL PIASMA NEO;So;0;L;;;;;N;;;;;
+1D05A;BYZANTINE MUSICAL SYMBOL PSIFISTON NEO;So;0;L;;;;;N;;;;;
+1D05B;BYZANTINE MUSICAL SYMBOL OMALON;So;0;L;;;;;N;;;;;
+1D05C;BYZANTINE MUSICAL SYMBOL ANTIKENOMA;So;0;L;;;;;N;;;;;
+1D05D;BYZANTINE MUSICAL SYMBOL LYGISMA;So;0;L;;;;;N;;;;;
+1D05E;BYZANTINE MUSICAL SYMBOL PARAKLITIKI NEO;So;0;L;;;;;N;;;;;
+1D05F;BYZANTINE MUSICAL SYMBOL PARAKALESMA NEO;So;0;L;;;;;N;;;;;
+1D060;BYZANTINE MUSICAL SYMBOL ETERON PARAKALESMA;So;0;L;;;;;N;;;;;
+1D061;BYZANTINE MUSICAL SYMBOL KYLISMA;So;0;L;;;;;N;;;;;
+1D062;BYZANTINE MUSICAL SYMBOL ANTIKENOKYLISMA;So;0;L;;;;;N;;;;;
+1D063;BYZANTINE MUSICAL SYMBOL TROMIKON NEO;So;0;L;;;;;N;;;;;
+1D064;BYZANTINE MUSICAL SYMBOL EKSTREPTON;So;0;L;;;;;N;;;;;
+1D065;BYZANTINE MUSICAL SYMBOL SYNAGMA NEO;So;0;L;;;;;N;;;;;
+1D066;BYZANTINE MUSICAL SYMBOL SYRMA;So;0;L;;;;;N;;;;;
+1D067;BYZANTINE MUSICAL SYMBOL CHOREVMA NEO;So;0;L;;;;;N;;;;;
+1D068;BYZANTINE MUSICAL SYMBOL EPEGERMA;So;0;L;;;;;N;;;;;
+1D069;BYZANTINE MUSICAL SYMBOL SEISMA NEO;So;0;L;;;;;N;;;;;
+1D06A;BYZANTINE MUSICAL SYMBOL XIRON KLASMA;So;0;L;;;;;N;;;;;
+1D06B;BYZANTINE MUSICAL SYMBOL TROMIKOPSIFISTON;So;0;L;;;;;N;;;;;
+1D06C;BYZANTINE MUSICAL SYMBOL PSIFISTOLYGISMA;So;0;L;;;;;N;;;;;
+1D06D;BYZANTINE MUSICAL SYMBOL TROMIKOLYGISMA;So;0;L;;;;;N;;;;;
+1D06E;BYZANTINE MUSICAL SYMBOL TROMIKOPARAKALESMA;So;0;L;;;;;N;;;;;
+1D06F;BYZANTINE MUSICAL SYMBOL PSIFISTOPARAKALESMA;So;0;L;;;;;N;;;;;
+1D070;BYZANTINE MUSICAL SYMBOL TROMIKOSYNAGMA;So;0;L;;;;;N;;;;;
+1D071;BYZANTINE MUSICAL SYMBOL PSIFISTOSYNAGMA;So;0;L;;;;;N;;;;;
+1D072;BYZANTINE MUSICAL SYMBOL GORGOSYNTHETON;So;0;L;;;;;N;;;;;
+1D073;BYZANTINE MUSICAL SYMBOL ARGOSYNTHETON;So;0;L;;;;;N;;;;;
+1D074;BYZANTINE MUSICAL SYMBOL ETERON ARGOSYNTHETON;So;0;L;;;;;N;;;;;
+1D075;BYZANTINE MUSICAL SYMBOL OYRANISMA NEO;So;0;L;;;;;N;;;;;
+1D076;BYZANTINE MUSICAL SYMBOL THEMATISMOS ESO;So;0;L;;;;;N;;;;;
+1D077;BYZANTINE MUSICAL SYMBOL THEMATISMOS EXO;So;0;L;;;;;N;;;;;
+1D078;BYZANTINE MUSICAL SYMBOL THEMA APLOUN;So;0;L;;;;;N;;;;;
+1D079;BYZANTINE MUSICAL SYMBOL THES KAI APOTHES;So;0;L;;;;;N;;;;;
+1D07A;BYZANTINE MUSICAL SYMBOL KATAVASMA;So;0;L;;;;;N;;;;;
+1D07B;BYZANTINE MUSICAL SYMBOL ENDOFONON;So;0;L;;;;;N;;;;;
+1D07C;BYZANTINE MUSICAL SYMBOL YFEN KATO;So;0;L;;;;;N;;;;;
+1D07D;BYZANTINE MUSICAL SYMBOL YFEN ANO;So;0;L;;;;;N;;;;;
+1D07E;BYZANTINE MUSICAL SYMBOL STAVROS;So;0;L;;;;;N;;;;;
+1D07F;BYZANTINE MUSICAL SYMBOL KLASMA ANO;So;0;L;;;;;N;;;;;
+1D080;BYZANTINE MUSICAL SYMBOL DIPLI ARCHAION;So;0;L;;;;;N;;;;;
+1D081;BYZANTINE MUSICAL SYMBOL KRATIMA ARCHAION;So;0;L;;;;;N;;;;;
+1D082;BYZANTINE MUSICAL SYMBOL KRATIMA ALLO;So;0;L;;;;;N;;;;;
+1D083;BYZANTINE MUSICAL SYMBOL KRATIMA NEO;So;0;L;;;;;N;;;;;
+1D084;BYZANTINE MUSICAL SYMBOL APODERMA NEO;So;0;L;;;;;N;;;;;
+1D085;BYZANTINE MUSICAL SYMBOL APLI;So;0;L;;;;;N;;;;;
+1D086;BYZANTINE MUSICAL SYMBOL DIPLI;So;0;L;;;;;N;;;;;
+1D087;BYZANTINE MUSICAL SYMBOL TRIPLI;So;0;L;;;;;N;;;;;
+1D088;BYZANTINE MUSICAL SYMBOL TETRAPLI;So;0;L;;;;;N;;;;;
+1D089;BYZANTINE MUSICAL SYMBOL KORONIS;So;0;L;;;;;N;;;;;
+1D08A;BYZANTINE MUSICAL SYMBOL LEIMMA ENOS CHRONOU;So;0;L;;;;;N;;;;;
+1D08B;BYZANTINE MUSICAL SYMBOL LEIMMA DYO CHRONON;So;0;L;;;;;N;;;;;
+1D08C;BYZANTINE MUSICAL SYMBOL LEIMMA TRION CHRONON;So;0;L;;;;;N;;;;;
+1D08D;BYZANTINE MUSICAL SYMBOL LEIMMA TESSARON CHRONON;So;0;L;;;;;N;;;;;
+1D08E;BYZANTINE MUSICAL SYMBOL LEIMMA IMISEOS CHRONOU;So;0;L;;;;;N;;;;;
+1D08F;BYZANTINE MUSICAL SYMBOL GORGON NEO ANO;So;0;L;;;;;N;;;;;
+1D090;BYZANTINE MUSICAL SYMBOL GORGON PARESTIGMENON ARISTERA;So;0;L;;;;;N;;;;;
+1D091;BYZANTINE MUSICAL SYMBOL GORGON PARESTIGMENON DEXIA;So;0;L;;;;;N;;;;;
+1D092;BYZANTINE MUSICAL SYMBOL DIGORGON;So;0;L;;;;;N;;;;;
+1D093;BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON ARISTERA KATO;So;0;L;;;;;N;;;;;
+1D094;BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON ARISTERA ANO;So;0;L;;;;;N;;;;;
+1D095;BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON DEXIA;So;0;L;;;;;N;;;;;
+1D096;BYZANTINE MUSICAL SYMBOL TRIGORGON;So;0;L;;;;;N;;;;;
+1D097;BYZANTINE MUSICAL SYMBOL ARGON;So;0;L;;;;;N;;;;;
+1D098;BYZANTINE MUSICAL SYMBOL IMIDIARGON;So;0;L;;;;;N;;;;;
+1D099;BYZANTINE MUSICAL SYMBOL DIARGON;So;0;L;;;;;N;;;;;
+1D09A;BYZANTINE MUSICAL SYMBOL AGOGI POLI ARGI;So;0;L;;;;;N;;;;;
+1D09B;BYZANTINE MUSICAL SYMBOL AGOGI ARGOTERI;So;0;L;;;;;N;;;;;
+1D09C;BYZANTINE MUSICAL SYMBOL AGOGI ARGI;So;0;L;;;;;N;;;;;
+1D09D;BYZANTINE MUSICAL SYMBOL AGOGI METRIA;So;0;L;;;;;N;;;;;
+1D09E;BYZANTINE MUSICAL SYMBOL AGOGI MESI;So;0;L;;;;;N;;;;;
+1D09F;BYZANTINE MUSICAL SYMBOL AGOGI GORGI;So;0;L;;;;;N;;;;;
+1D0A0;BYZANTINE MUSICAL SYMBOL AGOGI GORGOTERI;So;0;L;;;;;N;;;;;
+1D0A1;BYZANTINE MUSICAL SYMBOL AGOGI POLI GORGI;So;0;L;;;;;N;;;;;
+1D0A2;BYZANTINE MUSICAL SYMBOL MARTYRIA PROTOS ICHOS;So;0;L;;;;;N;;;;;
+1D0A3;BYZANTINE MUSICAL SYMBOL MARTYRIA ALLI PROTOS ICHOS;So;0;L;;;;;N;;;;;
+1D0A4;BYZANTINE MUSICAL SYMBOL MARTYRIA DEYTEROS ICHOS;So;0;L;;;;;N;;;;;
+1D0A5;BYZANTINE MUSICAL SYMBOL MARTYRIA ALLI DEYTEROS ICHOS;So;0;L;;;;;N;;;;;
+1D0A6;BYZANTINE MUSICAL SYMBOL MARTYRIA TRITOS ICHOS;So;0;L;;;;;N;;;;;
+1D0A7;BYZANTINE MUSICAL SYMBOL MARTYRIA TRIFONIAS;So;0;L;;;;;N;;;;;
+1D0A8;BYZANTINE MUSICAL SYMBOL MARTYRIA TETARTOS ICHOS;So;0;L;;;;;N;;;;;
+1D0A9;BYZANTINE MUSICAL SYMBOL MARTYRIA TETARTOS LEGETOS ICHOS;So;0;L;;;;;N;;;;;
+1D0AA;BYZANTINE MUSICAL SYMBOL MARTYRIA LEGETOS ICHOS;So;0;L;;;;;N;;;;;
+1D0AB;BYZANTINE MUSICAL SYMBOL MARTYRIA PLAGIOS ICHOS;So;0;L;;;;;N;;;;;
+1D0AC;BYZANTINE MUSICAL SYMBOL ISAKIA TELOUS ICHIMATOS;So;0;L;;;;;N;;;;;
+1D0AD;BYZANTINE MUSICAL SYMBOL APOSTROFOI TELOUS ICHIMATOS;So;0;L;;;;;N;;;;;
+1D0AE;BYZANTINE MUSICAL SYMBOL FANEROSIS TETRAFONIAS;So;0;L;;;;;N;;;;;
+1D0AF;BYZANTINE MUSICAL SYMBOL FANEROSIS MONOFONIAS;So;0;L;;;;;N;;;;;
+1D0B0;BYZANTINE MUSICAL SYMBOL FANEROSIS DIFONIAS;So;0;L;;;;;N;;;;;
+1D0B1;BYZANTINE MUSICAL SYMBOL MARTYRIA VARYS ICHOS;So;0;L;;;;;N;;;;;
+1D0B2;BYZANTINE MUSICAL SYMBOL MARTYRIA PROTOVARYS ICHOS;So;0;L;;;;;N;;;;;
+1D0B3;BYZANTINE MUSICAL SYMBOL MARTYRIA PLAGIOS TETARTOS ICHOS;So;0;L;;;;;N;;;;;
+1D0B4;BYZANTINE MUSICAL SYMBOL GORTHMIKON N APLOUN;So;0;L;;;;;N;;;;;
+1D0B5;BYZANTINE MUSICAL SYMBOL GORTHMIKON N DIPLOUN;So;0;L;;;;;N;;;;;
+1D0B6;BYZANTINE MUSICAL SYMBOL ENARXIS KAI FTHORA VOU;So;0;L;;;;;N;;;;;
+1D0B7;BYZANTINE MUSICAL SYMBOL IMIFONON;So;0;L;;;;;N;;;;;
+1D0B8;BYZANTINE MUSICAL SYMBOL IMIFTHORON;So;0;L;;;;;N;;;;;
+1D0B9;BYZANTINE MUSICAL SYMBOL FTHORA ARCHAION DEYTEROU ICHOU;So;0;L;;;;;N;;;;;
+1D0BA;BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI PA;So;0;L;;;;;N;;;;;
+1D0BB;BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NANA;So;0;L;;;;;N;;;;;
+1D0BC;BYZANTINE MUSICAL SYMBOL FTHORA NAOS ICHOS;So;0;L;;;;;N;;;;;
+1D0BD;BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI DI;So;0;L;;;;;N;;;;;
+1D0BE;BYZANTINE MUSICAL SYMBOL FTHORA SKLIRON DIATONON DI;So;0;L;;;;;N;;;;;
+1D0BF;BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI KE;So;0;L;;;;;N;;;;;
+1D0C0;BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI ZO;So;0;L;;;;;N;;;;;
+1D0C1;BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NI KATO;So;0;L;;;;;N;;;;;
+1D0C2;BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NI ANO;So;0;L;;;;;N;;;;;
+1D0C3;BYZANTINE MUSICAL SYMBOL FTHORA MALAKON CHROMA DIFONIAS;So;0;L;;;;;N;;;;;
+1D0C4;BYZANTINE MUSICAL SYMBOL FTHORA MALAKON CHROMA MONOFONIAS;So;0;L;;;;;N;;;;;
+1D0C5;BYZANTINE MUSICAL SYMBOL FHTORA SKLIRON CHROMA VASIS;So;0;L;;;;;N;;;;;
+1D0C6;BYZANTINE MUSICAL SYMBOL FTHORA SKLIRON CHROMA SYNAFI;So;0;L;;;;;N;;;;;
+1D0C7;BYZANTINE MUSICAL SYMBOL FTHORA NENANO;So;0;L;;;;;N;;;;;
+1D0C8;BYZANTINE MUSICAL SYMBOL CHROA ZYGOS;So;0;L;;;;;N;;;;;
+1D0C9;BYZANTINE MUSICAL SYMBOL CHROA KLITON;So;0;L;;;;;N;;;;;
+1D0CA;BYZANTINE MUSICAL SYMBOL CHROA SPATHI;So;0;L;;;;;N;;;;;
+1D0CB;BYZANTINE MUSICAL SYMBOL FTHORA I YFESIS TETARTIMORION;So;0;L;;;;;N;;;;;
+1D0CC;BYZANTINE MUSICAL SYMBOL FTHORA ENARMONIOS ANTIFONIA;So;0;L;;;;;N;;;;;
+1D0CD;BYZANTINE MUSICAL SYMBOL YFESIS TRITIMORION;So;0;L;;;;;N;;;;;
+1D0CE;BYZANTINE MUSICAL SYMBOL DIESIS TRITIMORION;So;0;L;;;;;N;;;;;
+1D0CF;BYZANTINE MUSICAL SYMBOL DIESIS TETARTIMORION;So;0;L;;;;;N;;;;;
+1D0D0;BYZANTINE MUSICAL SYMBOL DIESIS APLI DYO DODEKATA;So;0;L;;;;;N;;;;;
+1D0D1;BYZANTINE MUSICAL SYMBOL DIESIS MONOGRAMMOS TESSERA DODEKATA;So;0;L;;;;;N;;;;;
+1D0D2;BYZANTINE MUSICAL SYMBOL DIESIS DIGRAMMOS EX DODEKATA;So;0;L;;;;;N;;;;;
+1D0D3;BYZANTINE MUSICAL SYMBOL DIESIS TRIGRAMMOS OKTO DODEKATA;So;0;L;;;;;N;;;;;
+1D0D4;BYZANTINE MUSICAL SYMBOL YFESIS APLI DYO DODEKATA;So;0;L;;;;;N;;;;;
+1D0D5;BYZANTINE MUSICAL SYMBOL YFESIS MONOGRAMMOS TESSERA DODEKATA;So;0;L;;;;;N;;;;;
+1D0D6;BYZANTINE MUSICAL SYMBOL YFESIS DIGRAMMOS EX DODEKATA;So;0;L;;;;;N;;;;;
+1D0D7;BYZANTINE MUSICAL SYMBOL YFESIS TRIGRAMMOS OKTO DODEKATA;So;0;L;;;;;N;;;;;
+1D0D8;BYZANTINE MUSICAL SYMBOL GENIKI DIESIS;So;0;L;;;;;N;;;;;
+1D0D9;BYZANTINE MUSICAL SYMBOL GENIKI YFESIS;So;0;L;;;;;N;;;;;
+1D0DA;BYZANTINE MUSICAL SYMBOL DIASTOLI APLI MIKRI;So;0;L;;;;;N;;;;;
+1D0DB;BYZANTINE MUSICAL SYMBOL DIASTOLI APLI MEGALI;So;0;L;;;;;N;;;;;
+1D0DC;BYZANTINE MUSICAL SYMBOL DIASTOLI DIPLI;So;0;L;;;;;N;;;;;
+1D0DD;BYZANTINE MUSICAL SYMBOL DIASTOLI THESEOS;So;0;L;;;;;N;;;;;
+1D0DE;BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS;So;0;L;;;;;N;;;;;
+1D0DF;BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS DISIMOU;So;0;L;;;;;N;;;;;
+1D0E0;BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS TRISIMOU;So;0;L;;;;;N;;;;;
+1D0E1;BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS TETRASIMOU;So;0;L;;;;;N;;;;;
+1D0E2;BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS;So;0;L;;;;;N;;;;;
+1D0E3;BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS DISIMOU;So;0;L;;;;;N;;;;;
+1D0E4;BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS TRISIMOU;So;0;L;;;;;N;;;;;
+1D0E5;BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS TETRASIMOU;So;0;L;;;;;N;;;;;
+1D0E6;BYZANTINE MUSICAL SYMBOL DIGRAMMA GG;So;0;L;;;;;N;;;;;
+1D0E7;BYZANTINE MUSICAL SYMBOL DIFTOGGOS OU;So;0;L;;;;;N;;;;;
+1D0E8;BYZANTINE MUSICAL SYMBOL STIGMA;So;0;L;;;;;N;;;;;
+1D0E9;BYZANTINE MUSICAL SYMBOL ARKTIKO PA;So;0;L;;;;;N;;;;;
+1D0EA;BYZANTINE MUSICAL SYMBOL ARKTIKO VOU;So;0;L;;;;;N;;;;;
+1D0EB;BYZANTINE MUSICAL SYMBOL ARKTIKO GA;So;0;L;;;;;N;;;;;
+1D0EC;BYZANTINE MUSICAL SYMBOL ARKTIKO DI;So;0;L;;;;;N;;;;;
+1D0ED;BYZANTINE MUSICAL SYMBOL ARKTIKO KE;So;0;L;;;;;N;;;;;
+1D0EE;BYZANTINE MUSICAL SYMBOL ARKTIKO ZO;So;0;L;;;;;N;;;;;
+1D0EF;BYZANTINE MUSICAL SYMBOL ARKTIKO NI;So;0;L;;;;;N;;;;;
+1D0F0;BYZANTINE MUSICAL SYMBOL KENTIMATA NEO MESO;So;0;L;;;;;N;;;;;
+1D0F1;BYZANTINE MUSICAL SYMBOL KENTIMA NEO MESO;So;0;L;;;;;N;;;;;
+1D0F2;BYZANTINE MUSICAL SYMBOL KENTIMATA NEO KATO;So;0;L;;;;;N;;;;;
+1D0F3;BYZANTINE MUSICAL SYMBOL KENTIMA NEO KATO;So;0;L;;;;;N;;;;;
+1D0F4;BYZANTINE MUSICAL SYMBOL KLASMA KATO;So;0;L;;;;;N;;;;;
+1D0F5;BYZANTINE MUSICAL SYMBOL GORGON NEO KATO;So;0;L;;;;;N;;;;;
+1D100;MUSICAL SYMBOL SINGLE BARLINE;So;0;L;;;;;N;;;;;
+1D101;MUSICAL SYMBOL DOUBLE BARLINE;So;0;L;;;;;N;;;;;
+1D102;MUSICAL SYMBOL FINAL BARLINE;So;0;L;;;;;N;;;;;
+1D103;MUSICAL SYMBOL REVERSE FINAL BARLINE;So;0;L;;;;;N;;;;;
+1D104;MUSICAL SYMBOL DASHED BARLINE;So;0;L;;;;;N;;;;;
+1D105;MUSICAL SYMBOL SHORT BARLINE;So;0;L;;;;;N;;;;;
+1D106;MUSICAL SYMBOL LEFT REPEAT SIGN;So;0;L;;;;;N;;;;;
+1D107;MUSICAL SYMBOL RIGHT REPEAT SIGN;So;0;L;;;;;N;;;;;
+1D108;MUSICAL SYMBOL REPEAT DOTS;So;0;L;;;;;N;;;;;
+1D109;MUSICAL SYMBOL DAL SEGNO;So;0;L;;;;;N;;;;;
+1D10A;MUSICAL SYMBOL DA CAPO;So;0;L;;;;;N;;;;;
+1D10B;MUSICAL SYMBOL SEGNO;So;0;L;;;;;N;;;;;
+1D10C;MUSICAL SYMBOL CODA;So;0;L;;;;;N;;;;;
+1D10D;MUSICAL SYMBOL REPEATED FIGURE-1;So;0;L;;;;;N;;;;;
+1D10E;MUSICAL SYMBOL REPEATED FIGURE-2;So;0;L;;;;;N;;;;;
+1D10F;MUSICAL SYMBOL REPEATED FIGURE-3;So;0;L;;;;;N;;;;;
+1D110;MUSICAL SYMBOL FERMATA;So;0;L;;;;;N;;;;;
+1D111;MUSICAL SYMBOL FERMATA BELOW;So;0;L;;;;;N;;;;;
+1D112;MUSICAL SYMBOL BREATH MARK;So;0;L;;;;;N;;;;;
+1D113;MUSICAL SYMBOL CAESURA;So;0;L;;;;;N;;;;;
+1D114;MUSICAL SYMBOL BRACE;So;0;L;;;;;N;;;;;
+1D115;MUSICAL SYMBOL BRACKET;So;0;L;;;;;N;;;;;
+1D116;MUSICAL SYMBOL ONE-LINE STAFF;So;0;L;;;;;N;;;;;
+1D117;MUSICAL SYMBOL TWO-LINE STAFF;So;0;L;;;;;N;;;;;
+1D118;MUSICAL SYMBOL THREE-LINE STAFF;So;0;L;;;;;N;;;;;
+1D119;MUSICAL SYMBOL FOUR-LINE STAFF;So;0;L;;;;;N;;;;;
+1D11A;MUSICAL SYMBOL FIVE-LINE STAFF;So;0;L;;;;;N;;;;;
+1D11B;MUSICAL SYMBOL SIX-LINE STAFF;So;0;L;;;;;N;;;;;
+1D11C;MUSICAL SYMBOL SIX-STRING FRETBOARD;So;0;L;;;;;N;;;;;
+1D11D;MUSICAL SYMBOL FOUR-STRING FRETBOARD;So;0;L;;;;;N;;;;;
+1D11E;MUSICAL SYMBOL G CLEF;So;0;L;;;;;N;;;;;
+1D11F;MUSICAL SYMBOL G CLEF OTTAVA ALTA;So;0;L;;;;;N;;;;;
+1D120;MUSICAL SYMBOL G CLEF OTTAVA BASSA;So;0;L;;;;;N;;;;;
+1D121;MUSICAL SYMBOL C CLEF;So;0;L;;;;;N;;;;;
+1D122;MUSICAL SYMBOL F CLEF;So;0;L;;;;;N;;;;;
+1D123;MUSICAL SYMBOL F CLEF OTTAVA ALTA;So;0;L;;;;;N;;;;;
+1D124;MUSICAL SYMBOL F CLEF OTTAVA BASSA;So;0;L;;;;;N;;;;;
+1D125;MUSICAL SYMBOL DRUM CLEF-1;So;0;L;;;;;N;;;;;
+1D126;MUSICAL SYMBOL DRUM CLEF-2;So;0;L;;;;;N;;;;;
+1D12A;MUSICAL SYMBOL DOUBLE SHARP;So;0;L;;;;;N;;;;;
+1D12B;MUSICAL SYMBOL DOUBLE FLAT;So;0;L;;;;;N;;;;;
+1D12C;MUSICAL SYMBOL FLAT UP;So;0;L;;;;;N;;;;;
+1D12D;MUSICAL SYMBOL FLAT DOWN;So;0;L;;;;;N;;;;;
+1D12E;MUSICAL SYMBOL NATURAL UP;So;0;L;;;;;N;;;;;
+1D12F;MUSICAL SYMBOL NATURAL DOWN;So;0;L;;;;;N;;;;;
+1D130;MUSICAL SYMBOL SHARP UP;So;0;L;;;;;N;;;;;
+1D131;MUSICAL SYMBOL SHARP DOWN;So;0;L;;;;;N;;;;;
+1D132;MUSICAL SYMBOL QUARTER TONE SHARP;So;0;L;;;;;N;;;;;
+1D133;MUSICAL SYMBOL QUARTER TONE FLAT;So;0;L;;;;;N;;;;;
+1D134;MUSICAL SYMBOL COMMON TIME;So;0;L;;;;;N;;;;;
+1D135;MUSICAL SYMBOL CUT TIME;So;0;L;;;;;N;;;;;
+1D136;MUSICAL SYMBOL OTTAVA ALTA;So;0;L;;;;;N;;;;;
+1D137;MUSICAL SYMBOL OTTAVA BASSA;So;0;L;;;;;N;;;;;
+1D138;MUSICAL SYMBOL QUINDICESIMA ALTA;So;0;L;;;;;N;;;;;
+1D139;MUSICAL SYMBOL QUINDICESIMA BASSA;So;0;L;;;;;N;;;;;
+1D13A;MUSICAL SYMBOL MULTI REST;So;0;L;;;;;N;;;;;
+1D13B;MUSICAL SYMBOL WHOLE REST;So;0;L;;;;;N;;;;;
+1D13C;MUSICAL SYMBOL HALF REST;So;0;L;;;;;N;;;;;
+1D13D;MUSICAL SYMBOL QUARTER REST;So;0;L;;;;;N;;;;;
+1D13E;MUSICAL SYMBOL EIGHTH REST;So;0;L;;;;;N;;;;;
+1D13F;MUSICAL SYMBOL SIXTEENTH REST;So;0;L;;;;;N;;;;;
+1D140;MUSICAL SYMBOL THIRTY-SECOND REST;So;0;L;;;;;N;;;;;
+1D141;MUSICAL SYMBOL SIXTY-FOURTH REST;So;0;L;;;;;N;;;;;
+1D142;MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH REST;So;0;L;;;;;N;;;;;
+1D143;MUSICAL SYMBOL X NOTEHEAD;So;0;L;;;;;N;;;;;
+1D144;MUSICAL SYMBOL PLUS NOTEHEAD;So;0;L;;;;;N;;;;;
+1D145;MUSICAL SYMBOL CIRCLE X NOTEHEAD;So;0;L;;;;;N;;;;;
+1D146;MUSICAL SYMBOL SQUARE NOTEHEAD WHITE;So;0;L;;;;;N;;;;;
+1D147;MUSICAL SYMBOL SQUARE NOTEHEAD BLACK;So;0;L;;;;;N;;;;;
+1D148;MUSICAL SYMBOL TRIANGLE NOTEHEAD UP WHITE;So;0;L;;;;;N;;;;;
+1D149;MUSICAL SYMBOL TRIANGLE NOTEHEAD UP BLACK;So;0;L;;;;;N;;;;;
+1D14A;MUSICAL SYMBOL TRIANGLE NOTEHEAD LEFT WHITE;So;0;L;;;;;N;;;;;
+1D14B;MUSICAL SYMBOL TRIANGLE NOTEHEAD LEFT BLACK;So;0;L;;;;;N;;;;;
+1D14C;MUSICAL SYMBOL TRIANGLE NOTEHEAD RIGHT WHITE;So;0;L;;;;;N;;;;;
+1D14D;MUSICAL SYMBOL TRIANGLE NOTEHEAD RIGHT BLACK;So;0;L;;;;;N;;;;;
+1D14E;MUSICAL SYMBOL TRIANGLE NOTEHEAD DOWN WHITE;So;0;L;;;;;N;;;;;
+1D14F;MUSICAL SYMBOL TRIANGLE NOTEHEAD DOWN BLACK;So;0;L;;;;;N;;;;;
+1D150;MUSICAL SYMBOL TRIANGLE NOTEHEAD UP RIGHT WHITE;So;0;L;;;;;N;;;;;
+1D151;MUSICAL SYMBOL TRIANGLE NOTEHEAD UP RIGHT BLACK;So;0;L;;;;;N;;;;;
+1D152;MUSICAL SYMBOL MOON NOTEHEAD WHITE;So;0;L;;;;;N;;;;;
+1D153;MUSICAL SYMBOL MOON NOTEHEAD BLACK;So;0;L;;;;;N;;;;;
+1D154;MUSICAL SYMBOL TRIANGLE-ROUND NOTEHEAD DOWN WHITE;So;0;L;;;;;N;;;;;
+1D155;MUSICAL SYMBOL TRIANGLE-ROUND NOTEHEAD DOWN BLACK;So;0;L;;;;;N;;;;;
+1D156;MUSICAL SYMBOL PARENTHESIS NOTEHEAD;So;0;L;;;;;N;;;;;
+1D157;MUSICAL SYMBOL VOID NOTEHEAD;So;0;L;;;;;N;;;;;
+1D158;MUSICAL SYMBOL NOTEHEAD BLACK;So;0;L;;;;;N;;;;;
+1D159;MUSICAL SYMBOL NULL NOTEHEAD;So;0;L;;;;;N;;;;;
+1D15A;MUSICAL SYMBOL CLUSTER NOTEHEAD WHITE;So;0;L;;;;;N;;;;;
+1D15B;MUSICAL SYMBOL CLUSTER NOTEHEAD BLACK;So;0;L;;;;;N;;;;;
+1D15C;MUSICAL SYMBOL BREVE;So;0;L;;;;;N;;;;;
+1D15D;MUSICAL SYMBOL WHOLE NOTE;So;0;L;;;;;N;;;;;
+1D15E;MUSICAL SYMBOL HALF NOTE;So;0;L;1D157 1D165;;;;N;;;;;
+1D15F;MUSICAL SYMBOL QUARTER NOTE;So;0;L;1D158 1D165;;;;N;;;;;
+1D160;MUSICAL SYMBOL EIGHTH NOTE;So;0;L;1D15F 1D16E;;;;N;;;;;
+1D161;MUSICAL SYMBOL SIXTEENTH NOTE;So;0;L;1D15F 1D16F;;;;N;;;;;
+1D162;MUSICAL SYMBOL THIRTY-SECOND NOTE;So;0;L;1D15F 1D170;;;;N;;;;;
+1D163;MUSICAL SYMBOL SIXTY-FOURTH NOTE;So;0;L;1D15F 1D171;;;;N;;;;;
+1D164;MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE;So;0;L;1D15F 1D172;;;;N;;;;;
+1D165;MUSICAL SYMBOL COMBINING STEM;Mc;216;L;;;;;N;;;;;
+1D166;MUSICAL SYMBOL COMBINING SPRECHGESANG STEM;Mc;216;L;;;;;N;;;;;
+1D167;MUSICAL SYMBOL COMBINING TREMOLO-1;Mn;1;NSM;;;;;N;;;;;
+1D168;MUSICAL SYMBOL COMBINING TREMOLO-2;Mn;1;NSM;;;;;N;;;;;
+1D169;MUSICAL SYMBOL COMBINING TREMOLO-3;Mn;1;NSM;;;;;N;;;;;
+1D16A;MUSICAL SYMBOL FINGERED TREMOLO-1;So;0;L;;;;;N;;;;;
+1D16B;MUSICAL SYMBOL FINGERED TREMOLO-2;So;0;L;;;;;N;;;;;
+1D16C;MUSICAL SYMBOL FINGERED TREMOLO-3;So;0;L;;;;;N;;;;;
+1D16D;MUSICAL SYMBOL COMBINING AUGMENTATION DOT;Mc;226;L;;;;;N;;;;;
+1D16E;MUSICAL SYMBOL COMBINING FLAG-1;Mc;216;L;;;;;N;;;;;
+1D16F;MUSICAL SYMBOL COMBINING FLAG-2;Mc;216;L;;;;;N;;;;;
+1D170;MUSICAL SYMBOL COMBINING FLAG-3;Mc;216;L;;;;;N;;;;;
+1D171;MUSICAL SYMBOL COMBINING FLAG-4;Mc;216;L;;;;;N;;;;;
+1D172;MUSICAL SYMBOL COMBINING FLAG-5;Mc;216;L;;;;;N;;;;;
+1D173;MUSICAL SYMBOL BEGIN BEAM;Cf;0;BN;;;;;N;;;;;
+1D174;MUSICAL SYMBOL END BEAM;Cf;0;BN;;;;;N;;;;;
+1D175;MUSICAL SYMBOL BEGIN TIE;Cf;0;BN;;;;;N;;;;;
+1D176;MUSICAL SYMBOL END TIE;Cf;0;BN;;;;;N;;;;;
+1D177;MUSICAL SYMBOL BEGIN SLUR;Cf;0;BN;;;;;N;;;;;
+1D178;MUSICAL SYMBOL END SLUR;Cf;0;BN;;;;;N;;;;;
+1D179;MUSICAL SYMBOL BEGIN PHRASE;Cf;0;BN;;;;;N;;;;;
+1D17A;MUSICAL SYMBOL END PHRASE;Cf;0;BN;;;;;N;;;;;
+1D17B;MUSICAL SYMBOL COMBINING ACCENT;Mn;220;NSM;;;;;N;;;;;
+1D17C;MUSICAL SYMBOL COMBINING STACCATO;Mn;220;NSM;;;;;N;;;;;
+1D17D;MUSICAL SYMBOL COMBINING TENUTO;Mn;220;NSM;;;;;N;;;;;
+1D17E;MUSICAL SYMBOL COMBINING STACCATISSIMO;Mn;220;NSM;;;;;N;;;;;
+1D17F;MUSICAL SYMBOL COMBINING MARCATO;Mn;220;NSM;;;;;N;;;;;
+1D180;MUSICAL SYMBOL COMBINING MARCATO-STACCATO;Mn;220;NSM;;;;;N;;;;;
+1D181;MUSICAL SYMBOL COMBINING ACCENT-STACCATO;Mn;220;NSM;;;;;N;;;;;
+1D182;MUSICAL SYMBOL COMBINING LOURE;Mn;220;NSM;;;;;N;;;;;
+1D183;MUSICAL SYMBOL ARPEGGIATO UP;So;0;L;;;;;N;;;;;
+1D184;MUSICAL SYMBOL ARPEGGIATO DOWN;So;0;L;;;;;N;;;;;
+1D185;MUSICAL SYMBOL COMBINING DOIT;Mn;230;NSM;;;;;N;;;;;
+1D186;MUSICAL SYMBOL COMBINING RIP;Mn;230;NSM;;;;;N;;;;;
+1D187;MUSICAL SYMBOL COMBINING FLIP;Mn;230;NSM;;;;;N;;;;;
+1D188;MUSICAL SYMBOL COMBINING SMEAR;Mn;230;NSM;;;;;N;;;;;
+1D189;MUSICAL SYMBOL COMBINING BEND;Mn;230;NSM;;;;;N;;;;;
+1D18A;MUSICAL SYMBOL COMBINING DOUBLE TONGUE;Mn;220;NSM;;;;;N;;;;;
+1D18B;MUSICAL SYMBOL COMBINING TRIPLE TONGUE;Mn;220;NSM;;;;;N;;;;;
+1D18C;MUSICAL SYMBOL RINFORZANDO;So;0;L;;;;;N;;;;;
+1D18D;MUSICAL SYMBOL SUBITO;So;0;L;;;;;N;;;;;
+1D18E;MUSICAL SYMBOL Z;So;0;L;;;;;N;;;;;
+1D18F;MUSICAL SYMBOL PIANO;So;0;L;;;;;N;;;;;
+1D190;MUSICAL SYMBOL MEZZO;So;0;L;;;;;N;;;;;
+1D191;MUSICAL SYMBOL FORTE;So;0;L;;;;;N;;;;;
+1D192;MUSICAL SYMBOL CRESCENDO;So;0;L;;;;;N;;;;;
+1D193;MUSICAL SYMBOL DECRESCENDO;So;0;L;;;;;N;;;;;
+1D194;MUSICAL SYMBOL GRACE NOTE SLASH;So;0;L;;;;;N;;;;;
+1D195;MUSICAL SYMBOL GRACE NOTE NO SLASH;So;0;L;;;;;N;;;;;
+1D196;MUSICAL SYMBOL TR;So;0;L;;;;;N;;;;;
+1D197;MUSICAL SYMBOL TURN;So;0;L;;;;;N;;;;;
+1D198;MUSICAL SYMBOL INVERTED TURN;So;0;L;;;;;N;;;;;
+1D199;MUSICAL SYMBOL TURN SLASH;So;0;L;;;;;N;;;;;
+1D19A;MUSICAL SYMBOL TURN UP;So;0;L;;;;;N;;;;;
+1D19B;MUSICAL SYMBOL ORNAMENT STROKE-1;So;0;L;;;;;N;;;;;
+1D19C;MUSICAL SYMBOL ORNAMENT STROKE-2;So;0;L;;;;;N;;;;;
+1D19D;MUSICAL SYMBOL ORNAMENT STROKE-3;So;0;L;;;;;N;;;;;
+1D19E;MUSICAL SYMBOL ORNAMENT STROKE-4;So;0;L;;;;;N;;;;;
+1D19F;MUSICAL SYMBOL ORNAMENT STROKE-5;So;0;L;;;;;N;;;;;
+1D1A0;MUSICAL SYMBOL ORNAMENT STROKE-6;So;0;L;;;;;N;;;;;
+1D1A1;MUSICAL SYMBOL ORNAMENT STROKE-7;So;0;L;;;;;N;;;;;
+1D1A2;MUSICAL SYMBOL ORNAMENT STROKE-8;So;0;L;;;;;N;;;;;
+1D1A3;MUSICAL SYMBOL ORNAMENT STROKE-9;So;0;L;;;;;N;;;;;
+1D1A4;MUSICAL SYMBOL ORNAMENT STROKE-10;So;0;L;;;;;N;;;;;
+1D1A5;MUSICAL SYMBOL ORNAMENT STROKE-11;So;0;L;;;;;N;;;;;
+1D1A6;MUSICAL SYMBOL HAUPTSTIMME;So;0;L;;;;;N;;;;;
+1D1A7;MUSICAL SYMBOL NEBENSTIMME;So;0;L;;;;;N;;;;;
+1D1A8;MUSICAL SYMBOL END OF STIMME;So;0;L;;;;;N;;;;;
+1D1A9;MUSICAL SYMBOL DEGREE SLASH;So;0;L;;;;;N;;;;;
+1D1AA;MUSICAL SYMBOL COMBINING DOWN BOW;Mn;230;NSM;;;;;N;;;;;
+1D1AB;MUSICAL SYMBOL COMBINING UP BOW;Mn;230;NSM;;;;;N;;;;;
+1D1AC;MUSICAL SYMBOL COMBINING HARMONIC;Mn;230;NSM;;;;;N;;;;;
+1D1AD;MUSICAL SYMBOL COMBINING SNAP PIZZICATO;Mn;230;NSM;;;;;N;;;;;
+1D1AE;MUSICAL SYMBOL PEDAL MARK;So;0;L;;;;;N;;;;;
+1D1AF;MUSICAL SYMBOL PEDAL UP MARK;So;0;L;;;;;N;;;;;
+1D1B0;MUSICAL SYMBOL HALF PEDAL MARK;So;0;L;;;;;N;;;;;
+1D1B1;MUSICAL SYMBOL GLISSANDO UP;So;0;L;;;;;N;;;;;
+1D1B2;MUSICAL SYMBOL GLISSANDO DOWN;So;0;L;;;;;N;;;;;
+1D1B3;MUSICAL SYMBOL WITH FINGERNAILS;So;0;L;;;;;N;;;;;
+1D1B4;MUSICAL SYMBOL DAMP;So;0;L;;;;;N;;;;;
+1D1B5;MUSICAL SYMBOL DAMP ALL;So;0;L;;;;;N;;;;;
+1D1B6;MUSICAL SYMBOL MAXIMA;So;0;L;;;;;N;;;;;
+1D1B7;MUSICAL SYMBOL LONGA;So;0;L;;;;;N;;;;;
+1D1B8;MUSICAL SYMBOL BREVIS;So;0;L;;;;;N;;;;;
+1D1B9;MUSICAL SYMBOL SEMIBREVIS WHITE;So;0;L;;;;;N;;;;;
+1D1BA;MUSICAL SYMBOL SEMIBREVIS BLACK;So;0;L;;;;;N;;;;;
+1D1BB;MUSICAL SYMBOL MINIMA;So;0;L;1D1B9 1D165;;;;N;;;;;
+1D1BC;MUSICAL SYMBOL MINIMA BLACK;So;0;L;1D1BA 1D165;;;;N;;;;;
+1D1BD;MUSICAL SYMBOL SEMIMINIMA WHITE;So;0;L;1D1BB 1D16E;;;;N;;;;;
+1D1BE;MUSICAL SYMBOL SEMIMINIMA BLACK;So;0;L;1D1BC 1D16E;;;;N;;;;;
+1D1BF;MUSICAL SYMBOL FUSA WHITE;So;0;L;1D1BB 1D16F;;;;N;;;;;
+1D1C0;MUSICAL SYMBOL FUSA BLACK;So;0;L;1D1BC 1D16F;;;;N;;;;;
+1D1C1;MUSICAL SYMBOL LONGA PERFECTA REST;So;0;L;;;;;N;;;;;
+1D1C2;MUSICAL SYMBOL LONGA IMPERFECTA REST;So;0;L;;;;;N;;;;;
+1D1C3;MUSICAL SYMBOL BREVIS REST;So;0;L;;;;;N;;;;;
+1D1C4;MUSICAL SYMBOL SEMIBREVIS REST;So;0;L;;;;;N;;;;;
+1D1C5;MUSICAL SYMBOL MINIMA REST;So;0;L;;;;;N;;;;;
+1D1C6;MUSICAL SYMBOL SEMIMINIMA REST;So;0;L;;;;;N;;;;;
+1D1C7;MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE PERFECTA;So;0;L;;;;;N;;;;;
+1D1C8;MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE IMPERFECTA;So;0;L;;;;;N;;;;;
+1D1C9;MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE PERFECTA DIMINUTION-1;So;0;L;;;;;N;;;;;
+1D1CA;MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE PERFECTA;So;0;L;;;;;N;;;;;
+1D1CB;MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA;So;0;L;;;;;N;;;;;
+1D1CC;MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-1;So;0;L;;;;;N;;;;;
+1D1CD;MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-2;So;0;L;;;;;N;;;;;
+1D1CE;MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-3;So;0;L;;;;;N;;;;;
+1D1CF;MUSICAL SYMBOL CROIX;So;0;L;;;;;N;;;;;
+1D1D0;MUSICAL SYMBOL GREGORIAN C CLEF;So;0;L;;;;;N;;;;;
+1D1D1;MUSICAL SYMBOL GREGORIAN F CLEF;So;0;L;;;;;N;;;;;
+1D1D2;MUSICAL SYMBOL SQUARE B;So;0;L;;;;;N;;;;;
+1D1D3;MUSICAL SYMBOL VIRGA;So;0;L;;;;;N;;;;;
+1D1D4;MUSICAL SYMBOL PODATUS;So;0;L;;;;;N;;;;;
+1D1D5;MUSICAL SYMBOL CLIVIS;So;0;L;;;;;N;;;;;
+1D1D6;MUSICAL SYMBOL SCANDICUS;So;0;L;;;;;N;;;;;
+1D1D7;MUSICAL SYMBOL CLIMACUS;So;0;L;;;;;N;;;;;
+1D1D8;MUSICAL SYMBOL TORCULUS;So;0;L;;;;;N;;;;;
+1D1D9;MUSICAL SYMBOL PORRECTUS;So;0;L;;;;;N;;;;;
+1D1DA;MUSICAL SYMBOL PORRECTUS FLEXUS;So;0;L;;;;;N;;;;;
+1D1DB;MUSICAL SYMBOL SCANDICUS FLEXUS;So;0;L;;;;;N;;;;;
+1D1DC;MUSICAL SYMBOL TORCULUS RESUPINUS;So;0;L;;;;;N;;;;;
+1D1DD;MUSICAL SYMBOL PES SUBPUNCTIS;So;0;L;;;;;N;;;;;
+1D200;GREEK VOCAL NOTATION SYMBOL-1;So;0;ON;;;;;N;;;;;
+1D201;GREEK VOCAL NOTATION SYMBOL-2;So;0;ON;;;;;N;;;;;
+1D202;GREEK VOCAL NOTATION SYMBOL-3;So;0;ON;;;;;N;;;;;
+1D203;GREEK VOCAL NOTATION SYMBOL-4;So;0;ON;;;;;N;;;;;
+1D204;GREEK VOCAL NOTATION SYMBOL-5;So;0;ON;;;;;N;;;;;
+1D205;GREEK VOCAL NOTATION SYMBOL-6;So;0;ON;;;;;N;;;;;
+1D206;GREEK VOCAL NOTATION SYMBOL-7;So;0;ON;;;;;N;;;;;
+1D207;GREEK VOCAL NOTATION SYMBOL-8;So;0;ON;;;;;N;;;;;
+1D208;GREEK VOCAL NOTATION SYMBOL-9;So;0;ON;;;;;N;;;;;
+1D209;GREEK VOCAL NOTATION SYMBOL-10;So;0;ON;;;;;N;;;;;
+1D20A;GREEK VOCAL NOTATION SYMBOL-11;So;0;ON;;;;;N;;;;;
+1D20B;GREEK VOCAL NOTATION SYMBOL-12;So;0;ON;;;;;N;;;;;
+1D20C;GREEK VOCAL NOTATION SYMBOL-13;So;0;ON;;;;;N;;;;;
+1D20D;GREEK VOCAL NOTATION SYMBOL-14;So;0;ON;;;;;N;;;;;
+1D20E;GREEK VOCAL NOTATION SYMBOL-15;So;0;ON;;;;;N;;;;;
+1D20F;GREEK VOCAL NOTATION SYMBOL-16;So;0;ON;;;;;N;;;;;
+1D210;GREEK VOCAL NOTATION SYMBOL-17;So;0;ON;;;;;N;;;;;
+1D211;GREEK VOCAL NOTATION SYMBOL-18;So;0;ON;;;;;N;;;;;
+1D212;GREEK VOCAL NOTATION SYMBOL-19;So;0;ON;;;;;N;;;;;
+1D213;GREEK VOCAL NOTATION SYMBOL-20;So;0;ON;;;;;N;;;;;
+1D214;GREEK VOCAL NOTATION SYMBOL-21;So;0;ON;;;;;N;;;;;
+1D215;GREEK VOCAL NOTATION SYMBOL-22;So;0;ON;;;;;N;;;;;
+1D216;GREEK VOCAL NOTATION SYMBOL-23;So;0;ON;;;;;N;;;;;
+1D217;GREEK VOCAL NOTATION SYMBOL-24;So;0;ON;;;;;N;;;;;
+1D218;GREEK VOCAL NOTATION SYMBOL-50;So;0;ON;;;;;N;;;;;
+1D219;GREEK VOCAL NOTATION SYMBOL-51;So;0;ON;;;;;N;;;;;
+1D21A;GREEK VOCAL NOTATION SYMBOL-52;So;0;ON;;;;;N;;;;;
+1D21B;GREEK VOCAL NOTATION SYMBOL-53;So;0;ON;;;;;N;;;;;
+1D21C;GREEK VOCAL NOTATION SYMBOL-54;So;0;ON;;;;;N;;;;;
+1D21D;GREEK INSTRUMENTAL NOTATION SYMBOL-1;So;0;ON;;;;;N;;;;;
+1D21E;GREEK INSTRUMENTAL NOTATION SYMBOL-2;So;0;ON;;;;;N;;;;;
+1D21F;GREEK INSTRUMENTAL NOTATION SYMBOL-4;So;0;ON;;;;;N;;;;;
+1D220;GREEK INSTRUMENTAL NOTATION SYMBOL-5;So;0;ON;;;;;N;;;;;
+1D221;GREEK INSTRUMENTAL NOTATION SYMBOL-7;So;0;ON;;;;;N;;;;;
+1D222;GREEK INSTRUMENTAL NOTATION SYMBOL-8;So;0;ON;;;;;N;;;;;
+1D223;GREEK INSTRUMENTAL NOTATION SYMBOL-11;So;0;ON;;;;;N;;;;;
+1D224;GREEK INSTRUMENTAL NOTATION SYMBOL-12;So;0;ON;;;;;N;;;;;
+1D225;GREEK INSTRUMENTAL NOTATION SYMBOL-13;So;0;ON;;;;;N;;;;;
+1D226;GREEK INSTRUMENTAL NOTATION SYMBOL-14;So;0;ON;;;;;N;;;;;
+1D227;GREEK INSTRUMENTAL NOTATION SYMBOL-17;So;0;ON;;;;;N;;;;;
+1D228;GREEK INSTRUMENTAL NOTATION SYMBOL-18;So;0;ON;;;;;N;;;;;
+1D229;GREEK INSTRUMENTAL NOTATION SYMBOL-19;So;0;ON;;;;;N;;;;;
+1D22A;GREEK INSTRUMENTAL NOTATION SYMBOL-23;So;0;ON;;;;;N;;;;;
+1D22B;GREEK INSTRUMENTAL NOTATION SYMBOL-24;So;0;ON;;;;;N;;;;;
+1D22C;GREEK INSTRUMENTAL NOTATION SYMBOL-25;So;0;ON;;;;;N;;;;;
+1D22D;GREEK INSTRUMENTAL NOTATION SYMBOL-26;So;0;ON;;;;;N;;;;;
+1D22E;GREEK INSTRUMENTAL NOTATION SYMBOL-27;So;0;ON;;;;;N;;;;;
+1D22F;GREEK INSTRUMENTAL NOTATION SYMBOL-29;So;0;ON;;;;;N;;;;;
+1D230;GREEK INSTRUMENTAL NOTATION SYMBOL-30;So;0;ON;;;;;N;;;;;
+1D231;GREEK INSTRUMENTAL NOTATION SYMBOL-32;So;0;ON;;;;;N;;;;;
+1D232;GREEK INSTRUMENTAL NOTATION SYMBOL-36;So;0;ON;;;;;N;;;;;
+1D233;GREEK INSTRUMENTAL NOTATION SYMBOL-37;So;0;ON;;;;;N;;;;;
+1D234;GREEK INSTRUMENTAL NOTATION SYMBOL-38;So;0;ON;;;;;N;;;;;
+1D235;GREEK INSTRUMENTAL NOTATION SYMBOL-39;So;0;ON;;;;;N;;;;;
+1D236;GREEK INSTRUMENTAL NOTATION SYMBOL-40;So;0;ON;;;;;N;;;;;
+1D237;GREEK INSTRUMENTAL NOTATION SYMBOL-42;So;0;ON;;;;;N;;;;;
+1D238;GREEK INSTRUMENTAL NOTATION SYMBOL-43;So;0;ON;;;;;N;;;;;
+1D239;GREEK INSTRUMENTAL NOTATION SYMBOL-45;So;0;ON;;;;;N;;;;;
+1D23A;GREEK INSTRUMENTAL NOTATION SYMBOL-47;So;0;ON;;;;;N;;;;;
+1D23B;GREEK INSTRUMENTAL NOTATION SYMBOL-48;So;0;ON;;;;;N;;;;;
+1D23C;GREEK INSTRUMENTAL NOTATION SYMBOL-49;So;0;ON;;;;;N;;;;;
+1D23D;GREEK INSTRUMENTAL NOTATION SYMBOL-50;So;0;ON;;;;;N;;;;;
+1D23E;GREEK INSTRUMENTAL NOTATION SYMBOL-51;So;0;ON;;;;;N;;;;;
+1D23F;GREEK INSTRUMENTAL NOTATION SYMBOL-52;So;0;ON;;;;;N;;;;;
+1D240;GREEK INSTRUMENTAL NOTATION SYMBOL-53;So;0;ON;;;;;N;;;;;
+1D241;GREEK INSTRUMENTAL NOTATION SYMBOL-54;So;0;ON;;;;;N;;;;;
+1D242;COMBINING GREEK MUSICAL TRISEME;Mn;230;NSM;;;;;N;;;;;
+1D243;COMBINING GREEK MUSICAL TETRASEME;Mn;230;NSM;;;;;N;;;;;
+1D244;COMBINING GREEK MUSICAL PENTASEME;Mn;230;NSM;;;;;N;;;;;
+1D245;GREEK MUSICAL LEIMMA;So;0;ON;;;;;N;;;;;
+1D300;MONOGRAM FOR EARTH;So;0;ON;;;;;N;;ren *;;;
+1D301;DIGRAM FOR HEAVENLY EARTH;So;0;ON;;;;;N;;tian ren *;;;
+1D302;DIGRAM FOR HUMAN EARTH;So;0;ON;;;;;N;;di ren *;;;
+1D303;DIGRAM FOR EARTHLY HEAVEN;So;0;ON;;;;;N;;ren tian *;;;
+1D304;DIGRAM FOR EARTHLY HUMAN;So;0;ON;;;;;N;;ren di *;;;
+1D305;DIGRAM FOR EARTH;So;0;ON;;;;;N;;ren ren *;;;
+1D306;TETRAGRAM FOR CENTRE;So;0;ON;;;;;N;;;;;
+1D307;TETRAGRAM FOR FULL CIRCLE;So;0;ON;;;;;N;;;;;
+1D308;TETRAGRAM FOR MIRED;So;0;ON;;;;;N;;;;;
+1D309;TETRAGRAM FOR BARRIER;So;0;ON;;;;;N;;;;;
+1D30A;TETRAGRAM FOR KEEPING SMALL;So;0;ON;;;;;N;;;;;
+1D30B;TETRAGRAM FOR CONTRARIETY;So;0;ON;;;;;N;;;;;
+1D30C;TETRAGRAM FOR ASCENT;So;0;ON;;;;;N;;;;;
+1D30D;TETRAGRAM FOR OPPOSITION;So;0;ON;;;;;N;;;;;
+1D30E;TETRAGRAM FOR BRANCHING OUT;So;0;ON;;;;;N;;;;;
+1D30F;TETRAGRAM FOR DEFECTIVENESS OR DISTORTION;So;0;ON;;;;;N;;;;;
+1D310;TETRAGRAM FOR DIVERGENCE;So;0;ON;;;;;N;;;;;
+1D311;TETRAGRAM FOR YOUTHFULNESS;So;0;ON;;;;;N;;;;;
+1D312;TETRAGRAM FOR INCREASE;So;0;ON;;;;;N;;;;;
+1D313;TETRAGRAM FOR PENETRATION;So;0;ON;;;;;N;;;;;
+1D314;TETRAGRAM FOR REACH;So;0;ON;;;;;N;;;;;
+1D315;TETRAGRAM FOR CONTACT;So;0;ON;;;;;N;;;;;
+1D316;TETRAGRAM FOR HOLDING BACK;So;0;ON;;;;;N;;;;;
+1D317;TETRAGRAM FOR WAITING;So;0;ON;;;;;N;;;;;
+1D318;TETRAGRAM FOR FOLLOWING;So;0;ON;;;;;N;;;;;
+1D319;TETRAGRAM FOR ADVANCE;So;0;ON;;;;;N;;;;;
+1D31A;TETRAGRAM FOR RELEASE;So;0;ON;;;;;N;;;;;
+1D31B;TETRAGRAM FOR RESISTANCE;So;0;ON;;;;;N;;;;;
+1D31C;TETRAGRAM FOR EASE;So;0;ON;;;;;N;;;;;
+1D31D;TETRAGRAM FOR JOY;So;0;ON;;;;;N;;;;;
+1D31E;TETRAGRAM FOR CONTENTION;So;0;ON;;;;;N;;;;;
+1D31F;TETRAGRAM FOR ENDEAVOUR;So;0;ON;;;;;N;;;;;
+1D320;TETRAGRAM FOR DUTIES;So;0;ON;;;;;N;;;;;
+1D321;TETRAGRAM FOR CHANGE;So;0;ON;;;;;N;;;;;
+1D322;TETRAGRAM FOR DECISIVENESS;So;0;ON;;;;;N;;;;;
+1D323;TETRAGRAM FOR BOLD RESOLUTION;So;0;ON;;;;;N;;;;;
+1D324;TETRAGRAM FOR PACKING;So;0;ON;;;;;N;;;;;
+1D325;TETRAGRAM FOR LEGION;So;0;ON;;;;;N;;;;;
+1D326;TETRAGRAM FOR CLOSENESS;So;0;ON;;;;;N;;;;;
+1D327;TETRAGRAM FOR KINSHIP;So;0;ON;;;;;N;;;;;
+1D328;TETRAGRAM FOR GATHERING;So;0;ON;;;;;N;;;;;
+1D329;TETRAGRAM FOR STRENGTH;So;0;ON;;;;;N;;;;;
+1D32A;TETRAGRAM FOR PURITY;So;0;ON;;;;;N;;;;;
+1D32B;TETRAGRAM FOR FULLNESS;So;0;ON;;;;;N;;;;;
+1D32C;TETRAGRAM FOR RESIDENCE;So;0;ON;;;;;N;;;;;
+1D32D;TETRAGRAM FOR LAW OR MODEL;So;0;ON;;;;;N;;;;;
+1D32E;TETRAGRAM FOR RESPONSE;So;0;ON;;;;;N;;;;;
+1D32F;TETRAGRAM FOR GOING TO MEET;So;0;ON;;;;;N;;;;;
+1D330;TETRAGRAM FOR ENCOUNTERS;So;0;ON;;;;;N;;;;;
+1D331;TETRAGRAM FOR STOVE;So;0;ON;;;;;N;;;;;
+1D332;TETRAGRAM FOR GREATNESS;So;0;ON;;;;;N;;;;;
+1D333;TETRAGRAM FOR ENLARGEMENT;So;0;ON;;;;;N;;;;;
+1D334;TETRAGRAM FOR PATTERN;So;0;ON;;;;;N;;;;;
+1D335;TETRAGRAM FOR RITUAL;So;0;ON;;;;;N;;;;;
+1D336;TETRAGRAM FOR FLIGHT;So;0;ON;;;;;N;;;;;
+1D337;TETRAGRAM FOR VASTNESS OR WASTING;So;0;ON;;;;;N;;;;;
+1D338;TETRAGRAM FOR CONSTANCY;So;0;ON;;;;;N;;;;;
+1D339;TETRAGRAM FOR MEASURE;So;0;ON;;;;;N;;;;;
+1D33A;TETRAGRAM FOR ETERNITY;So;0;ON;;;;;N;;;;;
+1D33B;TETRAGRAM FOR UNITY;So;0;ON;;;;;N;;;;;
+1D33C;TETRAGRAM FOR DIMINISHMENT;So;0;ON;;;;;N;;;;;
+1D33D;TETRAGRAM FOR CLOSED MOUTH;So;0;ON;;;;;N;;;;;
+1D33E;TETRAGRAM FOR GUARDEDNESS;So;0;ON;;;;;N;;;;;
+1D33F;TETRAGRAM FOR GATHERING IN;So;0;ON;;;;;N;;;;;
+1D340;TETRAGRAM FOR MASSING;So;0;ON;;;;;N;;;;;
+1D341;TETRAGRAM FOR ACCUMULATION;So;0;ON;;;;;N;;;;;
+1D342;TETRAGRAM FOR EMBELLISHMENT;So;0;ON;;;;;N;;;;;
+1D343;TETRAGRAM FOR DOUBT;So;0;ON;;;;;N;;;;;
+1D344;TETRAGRAM FOR WATCH;So;0;ON;;;;;N;;;;;
+1D345;TETRAGRAM FOR SINKING;So;0;ON;;;;;N;;;;;
+1D346;TETRAGRAM FOR INNER;So;0;ON;;;;;N;;;;;
+1D347;TETRAGRAM FOR DEPARTURE;So;0;ON;;;;;N;;;;;
+1D348;TETRAGRAM FOR DARKENING;So;0;ON;;;;;N;;;;;
+1D349;TETRAGRAM FOR DIMMING;So;0;ON;;;;;N;;;;;
+1D34A;TETRAGRAM FOR EXHAUSTION;So;0;ON;;;;;N;;;;;
+1D34B;TETRAGRAM FOR SEVERANCE;So;0;ON;;;;;N;;;;;
+1D34C;TETRAGRAM FOR STOPPAGE;So;0;ON;;;;;N;;;;;
+1D34D;TETRAGRAM FOR HARDNESS;So;0;ON;;;;;N;;;;;
+1D34E;TETRAGRAM FOR COMPLETION;So;0;ON;;;;;N;;;;;
+1D34F;TETRAGRAM FOR CLOSURE;So;0;ON;;;;;N;;;;;
+1D350;TETRAGRAM FOR FAILURE;So;0;ON;;;;;N;;;;;
+1D351;TETRAGRAM FOR AGGRAVATION;So;0;ON;;;;;N;;;;;
+1D352;TETRAGRAM FOR COMPLIANCE;So;0;ON;;;;;N;;;;;
+1D353;TETRAGRAM FOR ON THE VERGE;So;0;ON;;;;;N;;;;;
+1D354;TETRAGRAM FOR DIFFICULTIES;So;0;ON;;;;;N;;;;;
+1D355;TETRAGRAM FOR LABOURING;So;0;ON;;;;;N;;;;;
+1D356;TETRAGRAM FOR FOSTERING;So;0;ON;;;;;N;;;;;
+1D360;COUNTING ROD UNIT DIGIT ONE;No;0;L;;;;1;N;;;;;
+1D361;COUNTING ROD UNIT DIGIT TWO;No;0;L;;;;2;N;;;;;
+1D362;COUNTING ROD UNIT DIGIT THREE;No;0;L;;;;3;N;;;;;
+1D363;COUNTING ROD UNIT DIGIT FOUR;No;0;L;;;;4;N;;;;;
+1D364;COUNTING ROD UNIT DIGIT FIVE;No;0;L;;;;5;N;;;;;
+1D365;COUNTING ROD UNIT DIGIT SIX;No;0;L;;;;6;N;;;;;
+1D366;COUNTING ROD UNIT DIGIT SEVEN;No;0;L;;;;7;N;;;;;
+1D367;COUNTING ROD UNIT DIGIT EIGHT;No;0;L;;;;8;N;;;;;
+1D368;COUNTING ROD UNIT DIGIT NINE;No;0;L;;;;9;N;;;;;
+1D369;COUNTING ROD TENS DIGIT ONE;No;0;L;;;;10;N;;;;;
+1D36A;COUNTING ROD TENS DIGIT TWO;No;0;L;;;;20;N;;;;;
+1D36B;COUNTING ROD TENS DIGIT THREE;No;0;L;;;;30;N;;;;;
+1D36C;COUNTING ROD TENS DIGIT FOUR;No;0;L;;;;40;N;;;;;
+1D36D;COUNTING ROD TENS DIGIT FIVE;No;0;L;;;;50;N;;;;;
+1D36E;COUNTING ROD TENS DIGIT SIX;No;0;L;;;;60;N;;;;;
+1D36F;COUNTING ROD TENS DIGIT SEVEN;No;0;L;;;;70;N;;;;;
+1D370;COUNTING ROD TENS DIGIT EIGHT;No;0;L;;;;80;N;;;;;
+1D371;COUNTING ROD TENS DIGIT NINE;No;0;L;;;;90;N;;;;;
+1D400;MATHEMATICAL BOLD CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;
+1D401;MATHEMATICAL BOLD CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;;
+1D402;MATHEMATICAL BOLD CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;;
+1D403;MATHEMATICAL BOLD CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;
+1D404;MATHEMATICAL BOLD CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;;
+1D405;MATHEMATICAL BOLD CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;;
+1D406;MATHEMATICAL BOLD CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;
+1D407;MATHEMATICAL BOLD CAPITAL H;Lu;0;L;<font> 0048;;;;N;;;;;
+1D408;MATHEMATICAL BOLD CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;;
+1D409;MATHEMATICAL BOLD CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;
+1D40A;MATHEMATICAL BOLD CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;
+1D40B;MATHEMATICAL BOLD CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;;
+1D40C;MATHEMATICAL BOLD CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;;
+1D40D;MATHEMATICAL BOLD CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;;
+1D40E;MATHEMATICAL BOLD CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;
+1D40F;MATHEMATICAL BOLD CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;;
+1D410;MATHEMATICAL BOLD CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;;
+1D411;MATHEMATICAL BOLD CAPITAL R;Lu;0;L;<font> 0052;;;;N;;;;;
+1D412;MATHEMATICAL BOLD CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;
+1D413;MATHEMATICAL BOLD CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;
+1D414;MATHEMATICAL BOLD CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;
+1D415;MATHEMATICAL BOLD CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;
+1D416;MATHEMATICAL BOLD CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;
+1D417;MATHEMATICAL BOLD CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;
+1D418;MATHEMATICAL BOLD CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;
+1D419;MATHEMATICAL BOLD CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;;
+1D41A;MATHEMATICAL BOLD SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;
+1D41B;MATHEMATICAL BOLD SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;
+1D41C;MATHEMATICAL BOLD SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;
+1D41D;MATHEMATICAL BOLD SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;
+1D41E;MATHEMATICAL BOLD SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;
+1D41F;MATHEMATICAL BOLD SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;
+1D420;MATHEMATICAL BOLD SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;
+1D421;MATHEMATICAL BOLD SMALL H;Ll;0;L;<font> 0068;;;;N;;;;;
+1D422;MATHEMATICAL BOLD SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;
+1D423;MATHEMATICAL BOLD SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;
+1D424;MATHEMATICAL BOLD SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;
+1D425;MATHEMATICAL BOLD SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;
+1D426;MATHEMATICAL BOLD SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;
+1D427;MATHEMATICAL BOLD SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;
+1D428;MATHEMATICAL BOLD SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;
+1D429;MATHEMATICAL BOLD SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;
+1D42A;MATHEMATICAL BOLD SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;
+1D42B;MATHEMATICAL BOLD SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;
+1D42C;MATHEMATICAL BOLD SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;
+1D42D;MATHEMATICAL BOLD SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;
+1D42E;MATHEMATICAL BOLD SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;
+1D42F;MATHEMATICAL BOLD SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;
+1D430;MATHEMATICAL BOLD SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;
+1D431;MATHEMATICAL BOLD SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;
+1D432;MATHEMATICAL BOLD SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;
+1D433;MATHEMATICAL BOLD SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;
+1D434;MATHEMATICAL ITALIC CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;
+1D435;MATHEMATICAL ITALIC CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;;
+1D436;MATHEMATICAL ITALIC CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;;
+1D437;MATHEMATICAL ITALIC CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;
+1D438;MATHEMATICAL ITALIC CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;;
+1D439;MATHEMATICAL ITALIC CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;;
+1D43A;MATHEMATICAL ITALIC CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;
+1D43B;MATHEMATICAL ITALIC CAPITAL H;Lu;0;L;<font> 0048;;;;N;;;;;
+1D43C;MATHEMATICAL ITALIC CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;;
+1D43D;MATHEMATICAL ITALIC CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;
+1D43E;MATHEMATICAL ITALIC CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;
+1D43F;MATHEMATICAL ITALIC CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;;
+1D440;MATHEMATICAL ITALIC CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;;
+1D441;MATHEMATICAL ITALIC CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;;
+1D442;MATHEMATICAL ITALIC CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;
+1D443;MATHEMATICAL ITALIC CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;;
+1D444;MATHEMATICAL ITALIC CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;;
+1D445;MATHEMATICAL ITALIC CAPITAL R;Lu;0;L;<font> 0052;;;;N;;;;;
+1D446;MATHEMATICAL ITALIC CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;
+1D447;MATHEMATICAL ITALIC CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;
+1D448;MATHEMATICAL ITALIC CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;
+1D449;MATHEMATICAL ITALIC CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;
+1D44A;MATHEMATICAL ITALIC CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;
+1D44B;MATHEMATICAL ITALIC CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;
+1D44C;MATHEMATICAL ITALIC CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;
+1D44D;MATHEMATICAL ITALIC CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;;
+1D44E;MATHEMATICAL ITALIC SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;
+1D44F;MATHEMATICAL ITALIC SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;
+1D450;MATHEMATICAL ITALIC SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;
+1D451;MATHEMATICAL ITALIC SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;
+1D452;MATHEMATICAL ITALIC SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;
+1D453;MATHEMATICAL ITALIC SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;
+1D454;MATHEMATICAL ITALIC SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;
+1D456;MATHEMATICAL ITALIC SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;
+1D457;MATHEMATICAL ITALIC SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;
+1D458;MATHEMATICAL ITALIC SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;
+1D459;MATHEMATICAL ITALIC SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;
+1D45A;MATHEMATICAL ITALIC SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;
+1D45B;MATHEMATICAL ITALIC SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;
+1D45C;MATHEMATICAL ITALIC SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;
+1D45D;MATHEMATICAL ITALIC SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;
+1D45E;MATHEMATICAL ITALIC SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;
+1D45F;MATHEMATICAL ITALIC SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;
+1D460;MATHEMATICAL ITALIC SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;
+1D461;MATHEMATICAL ITALIC SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;
+1D462;MATHEMATICAL ITALIC SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;
+1D463;MATHEMATICAL ITALIC SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;
+1D464;MATHEMATICAL ITALIC SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;
+1D465;MATHEMATICAL ITALIC SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;
+1D466;MATHEMATICAL ITALIC SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;
+1D467;MATHEMATICAL ITALIC SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;
+1D468;MATHEMATICAL BOLD ITALIC CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;
+1D469;MATHEMATICAL BOLD ITALIC CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;;
+1D46A;MATHEMATICAL BOLD ITALIC CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;;
+1D46B;MATHEMATICAL BOLD ITALIC CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;
+1D46C;MATHEMATICAL BOLD ITALIC CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;;
+1D46D;MATHEMATICAL BOLD ITALIC CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;;
+1D46E;MATHEMATICAL BOLD ITALIC CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;
+1D46F;MATHEMATICAL BOLD ITALIC CAPITAL H;Lu;0;L;<font> 0048;;;;N;;;;;
+1D470;MATHEMATICAL BOLD ITALIC CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;;
+1D471;MATHEMATICAL BOLD ITALIC CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;
+1D472;MATHEMATICAL BOLD ITALIC CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;
+1D473;MATHEMATICAL BOLD ITALIC CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;;
+1D474;MATHEMATICAL BOLD ITALIC CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;;
+1D475;MATHEMATICAL BOLD ITALIC CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;;
+1D476;MATHEMATICAL BOLD ITALIC CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;
+1D477;MATHEMATICAL BOLD ITALIC CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;;
+1D478;MATHEMATICAL BOLD ITALIC CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;;
+1D479;MATHEMATICAL BOLD ITALIC CAPITAL R;Lu;0;L;<font> 0052;;;;N;;;;;
+1D47A;MATHEMATICAL BOLD ITALIC CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;
+1D47B;MATHEMATICAL BOLD ITALIC CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;
+1D47C;MATHEMATICAL BOLD ITALIC CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;
+1D47D;MATHEMATICAL BOLD ITALIC CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;
+1D47E;MATHEMATICAL BOLD ITALIC CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;
+1D47F;MATHEMATICAL BOLD ITALIC CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;
+1D480;MATHEMATICAL BOLD ITALIC CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;
+1D481;MATHEMATICAL BOLD ITALIC CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;;
+1D482;MATHEMATICAL BOLD ITALIC SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;
+1D483;MATHEMATICAL BOLD ITALIC SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;
+1D484;MATHEMATICAL BOLD ITALIC SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;
+1D485;MATHEMATICAL BOLD ITALIC SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;
+1D486;MATHEMATICAL BOLD ITALIC SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;
+1D487;MATHEMATICAL BOLD ITALIC SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;
+1D488;MATHEMATICAL BOLD ITALIC SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;
+1D489;MATHEMATICAL BOLD ITALIC SMALL H;Ll;0;L;<font> 0068;;;;N;;;;;
+1D48A;MATHEMATICAL BOLD ITALIC SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;
+1D48B;MATHEMATICAL BOLD ITALIC SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;
+1D48C;MATHEMATICAL BOLD ITALIC SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;
+1D48D;MATHEMATICAL BOLD ITALIC SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;
+1D48E;MATHEMATICAL BOLD ITALIC SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;
+1D48F;MATHEMATICAL BOLD ITALIC SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;
+1D490;MATHEMATICAL BOLD ITALIC SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;
+1D491;MATHEMATICAL BOLD ITALIC SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;
+1D492;MATHEMATICAL BOLD ITALIC SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;
+1D493;MATHEMATICAL BOLD ITALIC SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;
+1D494;MATHEMATICAL BOLD ITALIC SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;
+1D495;MATHEMATICAL BOLD ITALIC SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;
+1D496;MATHEMATICAL BOLD ITALIC SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;
+1D497;MATHEMATICAL BOLD ITALIC SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;
+1D498;MATHEMATICAL BOLD ITALIC SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;
+1D499;MATHEMATICAL BOLD ITALIC SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;
+1D49A;MATHEMATICAL BOLD ITALIC SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;
+1D49B;MATHEMATICAL BOLD ITALIC SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;
+1D49C;MATHEMATICAL SCRIPT CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;
+1D49E;MATHEMATICAL SCRIPT CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;;
+1D49F;MATHEMATICAL SCRIPT CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;
+1D4A2;MATHEMATICAL SCRIPT CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;
+1D4A5;MATHEMATICAL SCRIPT CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;
+1D4A6;MATHEMATICAL SCRIPT CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;
+1D4A9;MATHEMATICAL SCRIPT CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;;
+1D4AA;MATHEMATICAL SCRIPT CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;
+1D4AB;MATHEMATICAL SCRIPT CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;;
+1D4AC;MATHEMATICAL SCRIPT CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;;
+1D4AE;MATHEMATICAL SCRIPT CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;
+1D4AF;MATHEMATICAL SCRIPT CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;
+1D4B0;MATHEMATICAL SCRIPT CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;
+1D4B1;MATHEMATICAL SCRIPT CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;
+1D4B2;MATHEMATICAL SCRIPT CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;
+1D4B3;MATHEMATICAL SCRIPT CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;
+1D4B4;MATHEMATICAL SCRIPT CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;
+1D4B5;MATHEMATICAL SCRIPT CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;;
+1D4B6;MATHEMATICAL SCRIPT SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;
+1D4B7;MATHEMATICAL SCRIPT SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;
+1D4B8;MATHEMATICAL SCRIPT SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;
+1D4B9;MATHEMATICAL SCRIPT SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;
+1D4BB;MATHEMATICAL SCRIPT SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;
+1D4BD;MATHEMATICAL SCRIPT SMALL H;Ll;0;L;<font> 0068;;;;N;;;;;
+1D4BE;MATHEMATICAL SCRIPT SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;
+1D4BF;MATHEMATICAL SCRIPT SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;
+1D4C0;MATHEMATICAL SCRIPT SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;
+1D4C1;MATHEMATICAL SCRIPT SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;
+1D4C2;MATHEMATICAL SCRIPT SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;
+1D4C3;MATHEMATICAL SCRIPT SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;
+1D4C5;MATHEMATICAL SCRIPT SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;
+1D4C6;MATHEMATICAL SCRIPT SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;
+1D4C7;MATHEMATICAL SCRIPT SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;
+1D4C8;MATHEMATICAL SCRIPT SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;
+1D4C9;MATHEMATICAL SCRIPT SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;
+1D4CA;MATHEMATICAL SCRIPT SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;
+1D4CB;MATHEMATICAL SCRIPT SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;
+1D4CC;MATHEMATICAL SCRIPT SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;
+1D4CD;MATHEMATICAL SCRIPT SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;
+1D4CE;MATHEMATICAL SCRIPT SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;
+1D4CF;MATHEMATICAL SCRIPT SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;
+1D4D0;MATHEMATICAL BOLD SCRIPT CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;
+1D4D1;MATHEMATICAL BOLD SCRIPT CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;;
+1D4D2;MATHEMATICAL BOLD SCRIPT CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;;
+1D4D3;MATHEMATICAL BOLD SCRIPT CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;
+1D4D4;MATHEMATICAL BOLD SCRIPT CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;;
+1D4D5;MATHEMATICAL BOLD SCRIPT CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;;
+1D4D6;MATHEMATICAL BOLD SCRIPT CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;
+1D4D7;MATHEMATICAL BOLD SCRIPT CAPITAL H;Lu;0;L;<font> 0048;;;;N;;;;;
+1D4D8;MATHEMATICAL BOLD SCRIPT CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;;
+1D4D9;MATHEMATICAL BOLD SCRIPT CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;
+1D4DA;MATHEMATICAL BOLD SCRIPT CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;
+1D4DB;MATHEMATICAL BOLD SCRIPT CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;;
+1D4DC;MATHEMATICAL BOLD SCRIPT CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;;
+1D4DD;MATHEMATICAL BOLD SCRIPT CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;;
+1D4DE;MATHEMATICAL BOLD SCRIPT CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;
+1D4DF;MATHEMATICAL BOLD SCRIPT CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;;
+1D4E0;MATHEMATICAL BOLD SCRIPT CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;;
+1D4E1;MATHEMATICAL BOLD SCRIPT CAPITAL R;Lu;0;L;<font> 0052;;;;N;;;;;
+1D4E2;MATHEMATICAL BOLD SCRIPT CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;
+1D4E3;MATHEMATICAL BOLD SCRIPT CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;
+1D4E4;MATHEMATICAL BOLD SCRIPT CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;
+1D4E5;MATHEMATICAL BOLD SCRIPT CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;
+1D4E6;MATHEMATICAL BOLD SCRIPT CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;
+1D4E7;MATHEMATICAL BOLD SCRIPT CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;
+1D4E8;MATHEMATICAL BOLD SCRIPT CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;
+1D4E9;MATHEMATICAL BOLD SCRIPT CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;;
+1D4EA;MATHEMATICAL BOLD SCRIPT SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;
+1D4EB;MATHEMATICAL BOLD SCRIPT SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;
+1D4EC;MATHEMATICAL BOLD SCRIPT SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;
+1D4ED;MATHEMATICAL BOLD SCRIPT SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;
+1D4EE;MATHEMATICAL BOLD SCRIPT SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;
+1D4EF;MATHEMATICAL BOLD SCRIPT SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;
+1D4F0;MATHEMATICAL BOLD SCRIPT SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;
+1D4F1;MATHEMATICAL BOLD SCRIPT SMALL H;Ll;0;L;<font> 0068;;;;N;;;;;
+1D4F2;MATHEMATICAL BOLD SCRIPT SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;
+1D4F3;MATHEMATICAL BOLD SCRIPT SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;
+1D4F4;MATHEMATICAL BOLD SCRIPT SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;
+1D4F5;MATHEMATICAL BOLD SCRIPT SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;
+1D4F6;MATHEMATICAL BOLD SCRIPT SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;
+1D4F7;MATHEMATICAL BOLD SCRIPT SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;
+1D4F8;MATHEMATICAL BOLD SCRIPT SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;
+1D4F9;MATHEMATICAL BOLD SCRIPT SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;
+1D4FA;MATHEMATICAL BOLD SCRIPT SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;
+1D4FB;MATHEMATICAL BOLD SCRIPT SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;
+1D4FC;MATHEMATICAL BOLD SCRIPT SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;
+1D4FD;MATHEMATICAL BOLD SCRIPT SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;
+1D4FE;MATHEMATICAL BOLD SCRIPT SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;
+1D4FF;MATHEMATICAL BOLD SCRIPT SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;
+1D500;MATHEMATICAL BOLD SCRIPT SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;
+1D501;MATHEMATICAL BOLD SCRIPT SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;
+1D502;MATHEMATICAL BOLD SCRIPT SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;
+1D503;MATHEMATICAL BOLD SCRIPT SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;
+1D504;MATHEMATICAL FRAKTUR CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;
+1D505;MATHEMATICAL FRAKTUR CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;;
+1D507;MATHEMATICAL FRAKTUR CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;
+1D508;MATHEMATICAL FRAKTUR CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;;
+1D509;MATHEMATICAL FRAKTUR CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;;
+1D50A;MATHEMATICAL FRAKTUR CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;
+1D50D;MATHEMATICAL FRAKTUR CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;
+1D50E;MATHEMATICAL FRAKTUR CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;
+1D50F;MATHEMATICAL FRAKTUR CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;;
+1D510;MATHEMATICAL FRAKTUR CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;;
+1D511;MATHEMATICAL FRAKTUR CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;;
+1D512;MATHEMATICAL FRAKTUR CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;
+1D513;MATHEMATICAL FRAKTUR CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;;
+1D514;MATHEMATICAL FRAKTUR CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;;
+1D516;MATHEMATICAL FRAKTUR CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;
+1D517;MATHEMATICAL FRAKTUR CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;
+1D518;MATHEMATICAL FRAKTUR CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;
+1D519;MATHEMATICAL FRAKTUR CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;
+1D51A;MATHEMATICAL FRAKTUR CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;
+1D51B;MATHEMATICAL FRAKTUR CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;
+1D51C;MATHEMATICAL FRAKTUR CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;
+1D51E;MATHEMATICAL FRAKTUR SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;
+1D51F;MATHEMATICAL FRAKTUR SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;
+1D520;MATHEMATICAL FRAKTUR SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;
+1D521;MATHEMATICAL FRAKTUR SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;
+1D522;MATHEMATICAL FRAKTUR SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;
+1D523;MATHEMATICAL FRAKTUR SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;
+1D524;MATHEMATICAL FRAKTUR SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;
+1D525;MATHEMATICAL FRAKTUR SMALL H;Ll;0;L;<font> 0068;;;;N;;;;;
+1D526;MATHEMATICAL FRAKTUR SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;
+1D527;MATHEMATICAL FRAKTUR SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;
+1D528;MATHEMATICAL FRAKTUR SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;
+1D529;MATHEMATICAL FRAKTUR SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;
+1D52A;MATHEMATICAL FRAKTUR SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;
+1D52B;MATHEMATICAL FRAKTUR SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;
+1D52C;MATHEMATICAL FRAKTUR SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;
+1D52D;MATHEMATICAL FRAKTUR SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;
+1D52E;MATHEMATICAL FRAKTUR SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;
+1D52F;MATHEMATICAL FRAKTUR SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;
+1D530;MATHEMATICAL FRAKTUR SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;
+1D531;MATHEMATICAL FRAKTUR SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;
+1D532;MATHEMATICAL FRAKTUR SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;
+1D533;MATHEMATICAL FRAKTUR SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;
+1D534;MATHEMATICAL FRAKTUR SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;
+1D535;MATHEMATICAL FRAKTUR SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;
+1D536;MATHEMATICAL FRAKTUR SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;
+1D537;MATHEMATICAL FRAKTUR SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;
+1D538;MATHEMATICAL DOUBLE-STRUCK CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;
+1D539;MATHEMATICAL DOUBLE-STRUCK CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;;
+1D53B;MATHEMATICAL DOUBLE-STRUCK CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;
+1D53C;MATHEMATICAL DOUBLE-STRUCK CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;;
+1D53D;MATHEMATICAL DOUBLE-STRUCK CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;;
+1D53E;MATHEMATICAL DOUBLE-STRUCK CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;
+1D540;MATHEMATICAL DOUBLE-STRUCK CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;;
+1D541;MATHEMATICAL DOUBLE-STRUCK CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;
+1D542;MATHEMATICAL DOUBLE-STRUCK CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;
+1D543;MATHEMATICAL DOUBLE-STRUCK CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;;
+1D544;MATHEMATICAL DOUBLE-STRUCK CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;;
+1D546;MATHEMATICAL DOUBLE-STRUCK CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;
+1D54A;MATHEMATICAL DOUBLE-STRUCK CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;
+1D54B;MATHEMATICAL DOUBLE-STRUCK CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;
+1D54C;MATHEMATICAL DOUBLE-STRUCK CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;
+1D54D;MATHEMATICAL DOUBLE-STRUCK CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;
+1D54E;MATHEMATICAL DOUBLE-STRUCK CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;
+1D54F;MATHEMATICAL DOUBLE-STRUCK CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;
+1D550;MATHEMATICAL DOUBLE-STRUCK CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;
+1D552;MATHEMATICAL DOUBLE-STRUCK SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;
+1D553;MATHEMATICAL DOUBLE-STRUCK SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;
+1D554;MATHEMATICAL DOUBLE-STRUCK SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;
+1D555;MATHEMATICAL DOUBLE-STRUCK SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;
+1D556;MATHEMATICAL DOUBLE-STRUCK SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;
+1D557;MATHEMATICAL DOUBLE-STRUCK SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;
+1D558;MATHEMATICAL DOUBLE-STRUCK SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;
+1D559;MATHEMATICAL DOUBLE-STRUCK SMALL H;Ll;0;L;<font> 0068;;;;N;;;;;
+1D55A;MATHEMATICAL DOUBLE-STRUCK SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;
+1D55B;MATHEMATICAL DOUBLE-STRUCK SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;
+1D55C;MATHEMATICAL DOUBLE-STRUCK SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;
+1D55D;MATHEMATICAL DOUBLE-STRUCK SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;
+1D55E;MATHEMATICAL DOUBLE-STRUCK SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;
+1D55F;MATHEMATICAL DOUBLE-STRUCK SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;
+1D560;MATHEMATICAL DOUBLE-STRUCK SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;
+1D561;MATHEMATICAL DOUBLE-STRUCK SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;
+1D562;MATHEMATICAL DOUBLE-STRUCK SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;
+1D563;MATHEMATICAL DOUBLE-STRUCK SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;
+1D564;MATHEMATICAL DOUBLE-STRUCK SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;
+1D565;MATHEMATICAL DOUBLE-STRUCK SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;
+1D566;MATHEMATICAL DOUBLE-STRUCK SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;
+1D567;MATHEMATICAL DOUBLE-STRUCK SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;
+1D568;MATHEMATICAL DOUBLE-STRUCK SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;
+1D569;MATHEMATICAL DOUBLE-STRUCK SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;
+1D56A;MATHEMATICAL DOUBLE-STRUCK SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;
+1D56B;MATHEMATICAL DOUBLE-STRUCK SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;
+1D56C;MATHEMATICAL BOLD FRAKTUR CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;
+1D56D;MATHEMATICAL BOLD FRAKTUR CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;;
+1D56E;MATHEMATICAL BOLD FRAKTUR CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;;
+1D56F;MATHEMATICAL BOLD FRAKTUR CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;
+1D570;MATHEMATICAL BOLD FRAKTUR CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;;
+1D571;MATHEMATICAL BOLD FRAKTUR CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;;
+1D572;MATHEMATICAL BOLD FRAKTUR CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;
+1D573;MATHEMATICAL BOLD FRAKTUR CAPITAL H;Lu;0;L;<font> 0048;;;;N;;;;;
+1D574;MATHEMATICAL BOLD FRAKTUR CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;;
+1D575;MATHEMATICAL BOLD FRAKTUR CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;
+1D576;MATHEMATICAL BOLD FRAKTUR CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;
+1D577;MATHEMATICAL BOLD FRAKTUR CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;;
+1D578;MATHEMATICAL BOLD FRAKTUR CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;;
+1D579;MATHEMATICAL BOLD FRAKTUR CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;;
+1D57A;MATHEMATICAL BOLD FRAKTUR CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;
+1D57B;MATHEMATICAL BOLD FRAKTUR CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;;
+1D57C;MATHEMATICAL BOLD FRAKTUR CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;;
+1D57D;MATHEMATICAL BOLD FRAKTUR CAPITAL R;Lu;0;L;<font> 0052;;;;N;;;;;
+1D57E;MATHEMATICAL BOLD FRAKTUR CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;
+1D57F;MATHEMATICAL BOLD FRAKTUR CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;
+1D580;MATHEMATICAL BOLD FRAKTUR CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;
+1D581;MATHEMATICAL BOLD FRAKTUR CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;
+1D582;MATHEMATICAL BOLD FRAKTUR CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;
+1D583;MATHEMATICAL BOLD FRAKTUR CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;
+1D584;MATHEMATICAL BOLD FRAKTUR CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;
+1D585;MATHEMATICAL BOLD FRAKTUR CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;;
+1D586;MATHEMATICAL BOLD FRAKTUR SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;
+1D587;MATHEMATICAL BOLD FRAKTUR SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;
+1D588;MATHEMATICAL BOLD FRAKTUR SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;
+1D589;MATHEMATICAL BOLD FRAKTUR SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;
+1D58A;MATHEMATICAL BOLD FRAKTUR SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;
+1D58B;MATHEMATICAL BOLD FRAKTUR SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;
+1D58C;MATHEMATICAL BOLD FRAKTUR SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;
+1D58D;MATHEMATICAL BOLD FRAKTUR SMALL H;Ll;0;L;<font> 0068;;;;N;;;;;
+1D58E;MATHEMATICAL BOLD FRAKTUR SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;
+1D58F;MATHEMATICAL BOLD FRAKTUR SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;
+1D590;MATHEMATICAL BOLD FRAKTUR SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;
+1D591;MATHEMATICAL BOLD FRAKTUR SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;
+1D592;MATHEMATICAL BOLD FRAKTUR SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;
+1D593;MATHEMATICAL BOLD FRAKTUR SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;
+1D594;MATHEMATICAL BOLD FRAKTUR SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;
+1D595;MATHEMATICAL BOLD FRAKTUR SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;
+1D596;MATHEMATICAL BOLD FRAKTUR SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;
+1D597;MATHEMATICAL BOLD FRAKTUR SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;
+1D598;MATHEMATICAL BOLD FRAKTUR SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;
+1D599;MATHEMATICAL BOLD FRAKTUR SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;
+1D59A;MATHEMATICAL BOLD FRAKTUR SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;
+1D59B;MATHEMATICAL BOLD FRAKTUR SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;
+1D59C;MATHEMATICAL BOLD FRAKTUR SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;
+1D59D;MATHEMATICAL BOLD FRAKTUR SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;
+1D59E;MATHEMATICAL BOLD FRAKTUR SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;
+1D59F;MATHEMATICAL BOLD FRAKTUR SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;
+1D5A0;MATHEMATICAL SANS-SERIF CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;
+1D5A1;MATHEMATICAL SANS-SERIF CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;;
+1D5A2;MATHEMATICAL SANS-SERIF CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;;
+1D5A3;MATHEMATICAL SANS-SERIF CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;
+1D5A4;MATHEMATICAL SANS-SERIF CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;;
+1D5A5;MATHEMATICAL SANS-SERIF CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;;
+1D5A6;MATHEMATICAL SANS-SERIF CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;
+1D5A7;MATHEMATICAL SANS-SERIF CAPITAL H;Lu;0;L;<font> 0048;;;;N;;;;;
+1D5A8;MATHEMATICAL SANS-SERIF CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;;
+1D5A9;MATHEMATICAL SANS-SERIF CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;
+1D5AA;MATHEMATICAL SANS-SERIF CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;
+1D5AB;MATHEMATICAL SANS-SERIF CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;;
+1D5AC;MATHEMATICAL SANS-SERIF CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;;
+1D5AD;MATHEMATICAL SANS-SERIF CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;;
+1D5AE;MATHEMATICAL SANS-SERIF CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;
+1D5AF;MATHEMATICAL SANS-SERIF CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;;
+1D5B0;MATHEMATICAL SANS-SERIF CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;;
+1D5B1;MATHEMATICAL SANS-SERIF CAPITAL R;Lu;0;L;<font> 0052;;;;N;;;;;
+1D5B2;MATHEMATICAL SANS-SERIF CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;
+1D5B3;MATHEMATICAL SANS-SERIF CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;
+1D5B4;MATHEMATICAL SANS-SERIF CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;
+1D5B5;MATHEMATICAL SANS-SERIF CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;
+1D5B6;MATHEMATICAL SANS-SERIF CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;
+1D5B7;MATHEMATICAL SANS-SERIF CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;
+1D5B8;MATHEMATICAL SANS-SERIF CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;
+1D5B9;MATHEMATICAL SANS-SERIF CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;;
+1D5BA;MATHEMATICAL SANS-SERIF SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;
+1D5BB;MATHEMATICAL SANS-SERIF SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;
+1D5BC;MATHEMATICAL SANS-SERIF SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;
+1D5BD;MATHEMATICAL SANS-SERIF SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;
+1D5BE;MATHEMATICAL SANS-SERIF SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;
+1D5BF;MATHEMATICAL SANS-SERIF SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;
+1D5C0;MATHEMATICAL SANS-SERIF SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;
+1D5C1;MATHEMATICAL SANS-SERIF SMALL H;Ll;0;L;<font> 0068;;;;N;;;;;
+1D5C2;MATHEMATICAL SANS-SERIF SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;
+1D5C3;MATHEMATICAL SANS-SERIF SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;
+1D5C4;MATHEMATICAL SANS-SERIF SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;
+1D5C5;MATHEMATICAL SANS-SERIF SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;
+1D5C6;MATHEMATICAL SANS-SERIF SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;
+1D5C7;MATHEMATICAL SANS-SERIF SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;
+1D5C8;MATHEMATICAL SANS-SERIF SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;
+1D5C9;MATHEMATICAL SANS-SERIF SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;
+1D5CA;MATHEMATICAL SANS-SERIF SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;
+1D5CB;MATHEMATICAL SANS-SERIF SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;
+1D5CC;MATHEMATICAL SANS-SERIF SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;
+1D5CD;MATHEMATICAL SANS-SERIF SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;
+1D5CE;MATHEMATICAL SANS-SERIF SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;
+1D5CF;MATHEMATICAL SANS-SERIF SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;
+1D5D0;MATHEMATICAL SANS-SERIF SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;
+1D5D1;MATHEMATICAL SANS-SERIF SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;
+1D5D2;MATHEMATICAL SANS-SERIF SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;
+1D5D3;MATHEMATICAL SANS-SERIF SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;
+1D5D4;MATHEMATICAL SANS-SERIF BOLD CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;
+1D5D5;MATHEMATICAL SANS-SERIF BOLD CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;;
+1D5D6;MATHEMATICAL SANS-SERIF BOLD CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;;
+1D5D7;MATHEMATICAL SANS-SERIF BOLD CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;
+1D5D8;MATHEMATICAL SANS-SERIF BOLD CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;;
+1D5D9;MATHEMATICAL SANS-SERIF BOLD CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;;
+1D5DA;MATHEMATICAL SANS-SERIF BOLD CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;
+1D5DB;MATHEMATICAL SANS-SERIF BOLD CAPITAL H;Lu;0;L;<font> 0048;;;;N;;;;;
+1D5DC;MATHEMATICAL SANS-SERIF BOLD CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;;
+1D5DD;MATHEMATICAL SANS-SERIF BOLD CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;
+1D5DE;MATHEMATICAL SANS-SERIF BOLD CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;
+1D5DF;MATHEMATICAL SANS-SERIF BOLD CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;;
+1D5E0;MATHEMATICAL SANS-SERIF BOLD CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;;
+1D5E1;MATHEMATICAL SANS-SERIF BOLD CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;;
+1D5E2;MATHEMATICAL SANS-SERIF BOLD CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;
+1D5E3;MATHEMATICAL SANS-SERIF BOLD CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;;
+1D5E4;MATHEMATICAL SANS-SERIF BOLD CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;;
+1D5E5;MATHEMATICAL SANS-SERIF BOLD CAPITAL R;Lu;0;L;<font> 0052;;;;N;;;;;
+1D5E6;MATHEMATICAL SANS-SERIF BOLD CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;
+1D5E7;MATHEMATICAL SANS-SERIF BOLD CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;
+1D5E8;MATHEMATICAL SANS-SERIF BOLD CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;
+1D5E9;MATHEMATICAL SANS-SERIF BOLD CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;
+1D5EA;MATHEMATICAL SANS-SERIF BOLD CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;
+1D5EB;MATHEMATICAL SANS-SERIF BOLD CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;
+1D5EC;MATHEMATICAL SANS-SERIF BOLD CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;
+1D5ED;MATHEMATICAL SANS-SERIF BOLD CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;;
+1D5EE;MATHEMATICAL SANS-SERIF BOLD SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;
+1D5EF;MATHEMATICAL SANS-SERIF BOLD SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;
+1D5F0;MATHEMATICAL SANS-SERIF BOLD SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;
+1D5F1;MATHEMATICAL SANS-SERIF BOLD SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;
+1D5F2;MATHEMATICAL SANS-SERIF BOLD SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;
+1D5F3;MATHEMATICAL SANS-SERIF BOLD SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;
+1D5F4;MATHEMATICAL SANS-SERIF BOLD SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;
+1D5F5;MATHEMATICAL SANS-SERIF BOLD SMALL H;Ll;0;L;<font> 0068;;;;N;;;;;
+1D5F6;MATHEMATICAL SANS-SERIF BOLD SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;
+1D5F7;MATHEMATICAL SANS-SERIF BOLD SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;
+1D5F8;MATHEMATICAL SANS-SERIF BOLD SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;
+1D5F9;MATHEMATICAL SANS-SERIF BOLD SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;
+1D5FA;MATHEMATICAL SANS-SERIF BOLD SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;
+1D5FB;MATHEMATICAL SANS-SERIF BOLD SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;
+1D5FC;MATHEMATICAL SANS-SERIF BOLD SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;
+1D5FD;MATHEMATICAL SANS-SERIF BOLD SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;
+1D5FE;MATHEMATICAL SANS-SERIF BOLD SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;
+1D5FF;MATHEMATICAL SANS-SERIF BOLD SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;
+1D600;MATHEMATICAL SANS-SERIF BOLD SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;
+1D601;MATHEMATICAL SANS-SERIF BOLD SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;
+1D602;MATHEMATICAL SANS-SERIF BOLD SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;
+1D603;MATHEMATICAL SANS-SERIF BOLD SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;
+1D604;MATHEMATICAL SANS-SERIF BOLD SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;
+1D605;MATHEMATICAL SANS-SERIF BOLD SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;
+1D606;MATHEMATICAL SANS-SERIF BOLD SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;
+1D607;MATHEMATICAL SANS-SERIF BOLD SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;
+1D608;MATHEMATICAL SANS-SERIF ITALIC CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;
+1D609;MATHEMATICAL SANS-SERIF ITALIC CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;;
+1D60A;MATHEMATICAL SANS-SERIF ITALIC CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;;
+1D60B;MATHEMATICAL SANS-SERIF ITALIC CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;
+1D60C;MATHEMATICAL SANS-SERIF ITALIC CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;;
+1D60D;MATHEMATICAL SANS-SERIF ITALIC CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;;
+1D60E;MATHEMATICAL SANS-SERIF ITALIC CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;
+1D60F;MATHEMATICAL SANS-SERIF ITALIC CAPITAL H;Lu;0;L;<font> 0048;;;;N;;;;;
+1D610;MATHEMATICAL SANS-SERIF ITALIC CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;;
+1D611;MATHEMATICAL SANS-SERIF ITALIC CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;
+1D612;MATHEMATICAL SANS-SERIF ITALIC CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;
+1D613;MATHEMATICAL SANS-SERIF ITALIC CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;;
+1D614;MATHEMATICAL SANS-SERIF ITALIC CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;;
+1D615;MATHEMATICAL SANS-SERIF ITALIC CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;;
+1D616;MATHEMATICAL SANS-SERIF ITALIC CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;
+1D617;MATHEMATICAL SANS-SERIF ITALIC CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;;
+1D618;MATHEMATICAL SANS-SERIF ITALIC CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;;
+1D619;MATHEMATICAL SANS-SERIF ITALIC CAPITAL R;Lu;0;L;<font> 0052;;;;N;;;;;
+1D61A;MATHEMATICAL SANS-SERIF ITALIC CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;
+1D61B;MATHEMATICAL SANS-SERIF ITALIC CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;
+1D61C;MATHEMATICAL SANS-SERIF ITALIC CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;
+1D61D;MATHEMATICAL SANS-SERIF ITALIC CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;
+1D61E;MATHEMATICAL SANS-SERIF ITALIC CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;
+1D61F;MATHEMATICAL SANS-SERIF ITALIC CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;
+1D620;MATHEMATICAL SANS-SERIF ITALIC CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;
+1D621;MATHEMATICAL SANS-SERIF ITALIC CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;;
+1D622;MATHEMATICAL SANS-SERIF ITALIC SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;
+1D623;MATHEMATICAL SANS-SERIF ITALIC SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;
+1D624;MATHEMATICAL SANS-SERIF ITALIC SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;
+1D625;MATHEMATICAL SANS-SERIF ITALIC SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;
+1D626;MATHEMATICAL SANS-SERIF ITALIC SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;
+1D627;MATHEMATICAL SANS-SERIF ITALIC SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;
+1D628;MATHEMATICAL SANS-SERIF ITALIC SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;
+1D629;MATHEMATICAL SANS-SERIF ITALIC SMALL H;Ll;0;L;<font> 0068;;;;N;;;;;
+1D62A;MATHEMATICAL SANS-SERIF ITALIC SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;
+1D62B;MATHEMATICAL SANS-SERIF ITALIC SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;
+1D62C;MATHEMATICAL SANS-SERIF ITALIC SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;
+1D62D;MATHEMATICAL SANS-SERIF ITALIC SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;
+1D62E;MATHEMATICAL SANS-SERIF ITALIC SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;
+1D62F;MATHEMATICAL SANS-SERIF ITALIC SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;
+1D630;MATHEMATICAL SANS-SERIF ITALIC SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;
+1D631;MATHEMATICAL SANS-SERIF ITALIC SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;
+1D632;MATHEMATICAL SANS-SERIF ITALIC SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;
+1D633;MATHEMATICAL SANS-SERIF ITALIC SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;
+1D634;MATHEMATICAL SANS-SERIF ITALIC SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;
+1D635;MATHEMATICAL SANS-SERIF ITALIC SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;
+1D636;MATHEMATICAL SANS-SERIF ITALIC SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;
+1D637;MATHEMATICAL SANS-SERIF ITALIC SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;
+1D638;MATHEMATICAL SANS-SERIF ITALIC SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;
+1D639;MATHEMATICAL SANS-SERIF ITALIC SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;
+1D63A;MATHEMATICAL SANS-SERIF ITALIC SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;
+1D63B;MATHEMATICAL SANS-SERIF ITALIC SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;
+1D63C;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;
+1D63D;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;;
+1D63E;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;;
+1D63F;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;
+1D640;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;;
+1D641;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;;
+1D642;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;
+1D643;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL H;Lu;0;L;<font> 0048;;;;N;;;;;
+1D644;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;;
+1D645;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;
+1D646;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;
+1D647;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;;
+1D648;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;;
+1D649;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;;
+1D64A;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;
+1D64B;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;;
+1D64C;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;;
+1D64D;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL R;Lu;0;L;<font> 0052;;;;N;;;;;
+1D64E;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;
+1D64F;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;
+1D650;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;
+1D651;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;
+1D652;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;
+1D653;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;
+1D654;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;
+1D655;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;;
+1D656;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;
+1D657;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;
+1D658;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;
+1D659;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;
+1D65A;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;
+1D65B;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;
+1D65C;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;
+1D65D;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL H;Ll;0;L;<font> 0068;;;;N;;;;;
+1D65E;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;
+1D65F;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;
+1D660;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;
+1D661;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;
+1D662;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;
+1D663;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;
+1D664;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;
+1D665;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;
+1D666;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;
+1D667;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;
+1D668;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;
+1D669;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;
+1D66A;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;
+1D66B;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;
+1D66C;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;
+1D66D;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;
+1D66E;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;
+1D66F;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;
+1D670;MATHEMATICAL MONOSPACE CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;
+1D671;MATHEMATICAL MONOSPACE CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;;
+1D672;MATHEMATICAL MONOSPACE CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;;
+1D673;MATHEMATICAL MONOSPACE CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;
+1D674;MATHEMATICAL MONOSPACE CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;;
+1D675;MATHEMATICAL MONOSPACE CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;;
+1D676;MATHEMATICAL MONOSPACE CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;
+1D677;MATHEMATICAL MONOSPACE CAPITAL H;Lu;0;L;<font> 0048;;;;N;;;;;
+1D678;MATHEMATICAL MONOSPACE CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;;
+1D679;MATHEMATICAL MONOSPACE CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;
+1D67A;MATHEMATICAL MONOSPACE CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;
+1D67B;MATHEMATICAL MONOSPACE CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;;
+1D67C;MATHEMATICAL MONOSPACE CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;;
+1D67D;MATHEMATICAL MONOSPACE CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;;
+1D67E;MATHEMATICAL MONOSPACE CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;
+1D67F;MATHEMATICAL MONOSPACE CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;;
+1D680;MATHEMATICAL MONOSPACE CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;;
+1D681;MATHEMATICAL MONOSPACE CAPITAL R;Lu;0;L;<font> 0052;;;;N;;;;;
+1D682;MATHEMATICAL MONOSPACE CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;
+1D683;MATHEMATICAL MONOSPACE CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;
+1D684;MATHEMATICAL MONOSPACE CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;
+1D685;MATHEMATICAL MONOSPACE CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;
+1D686;MATHEMATICAL MONOSPACE CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;
+1D687;MATHEMATICAL MONOSPACE CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;
+1D688;MATHEMATICAL MONOSPACE CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;
+1D689;MATHEMATICAL MONOSPACE CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;;
+1D68A;MATHEMATICAL MONOSPACE SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;
+1D68B;MATHEMATICAL MONOSPACE SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;
+1D68C;MATHEMATICAL MONOSPACE SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;
+1D68D;MATHEMATICAL MONOSPACE SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;
+1D68E;MATHEMATICAL MONOSPACE SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;
+1D68F;MATHEMATICAL MONOSPACE SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;
+1D690;MATHEMATICAL MONOSPACE SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;
+1D691;MATHEMATICAL MONOSPACE SMALL H;Ll;0;L;<font> 0068;;;;N;;;;;
+1D692;MATHEMATICAL MONOSPACE SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;
+1D693;MATHEMATICAL MONOSPACE SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;
+1D694;MATHEMATICAL MONOSPACE SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;
+1D695;MATHEMATICAL MONOSPACE SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;
+1D696;MATHEMATICAL MONOSPACE SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;
+1D697;MATHEMATICAL MONOSPACE SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;
+1D698;MATHEMATICAL MONOSPACE SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;
+1D699;MATHEMATICAL MONOSPACE SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;
+1D69A;MATHEMATICAL MONOSPACE SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;
+1D69B;MATHEMATICAL MONOSPACE SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;
+1D69C;MATHEMATICAL MONOSPACE SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;
+1D69D;MATHEMATICAL MONOSPACE SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;
+1D69E;MATHEMATICAL MONOSPACE SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;
+1D69F;MATHEMATICAL MONOSPACE SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;
+1D6A0;MATHEMATICAL MONOSPACE SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;
+1D6A1;MATHEMATICAL MONOSPACE SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;
+1D6A2;MATHEMATICAL MONOSPACE SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;
+1D6A3;MATHEMATICAL MONOSPACE SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;
+1D6A4;MATHEMATICAL ITALIC SMALL DOTLESS I;Ll;0;L;<font> 0131;;;;N;;;;;
+1D6A5;MATHEMATICAL ITALIC SMALL DOTLESS J;Ll;0;L;<font> 0237;;;;N;;;;;
+1D6A8;MATHEMATICAL BOLD CAPITAL ALPHA;Lu;0;L;<font> 0391;;;;N;;;;;
+1D6A9;MATHEMATICAL BOLD CAPITAL BETA;Lu;0;L;<font> 0392;;;;N;;;;;
+1D6AA;MATHEMATICAL BOLD CAPITAL GAMMA;Lu;0;L;<font> 0393;;;;N;;;;;
+1D6AB;MATHEMATICAL BOLD CAPITAL DELTA;Lu;0;L;<font> 0394;;;;N;;;;;
+1D6AC;MATHEMATICAL BOLD CAPITAL EPSILON;Lu;0;L;<font> 0395;;;;N;;;;;
+1D6AD;MATHEMATICAL BOLD CAPITAL ZETA;Lu;0;L;<font> 0396;;;;N;;;;;
+1D6AE;MATHEMATICAL BOLD CAPITAL ETA;Lu;0;L;<font> 0397;;;;N;;;;;
+1D6AF;MATHEMATICAL BOLD CAPITAL THETA;Lu;0;L;<font> 0398;;;;N;;;;;
+1D6B0;MATHEMATICAL BOLD CAPITAL IOTA;Lu;0;L;<font> 0399;;;;N;;;;;
+1D6B1;MATHEMATICAL BOLD CAPITAL KAPPA;Lu;0;L;<font> 039A;;;;N;;;;;
+1D6B2;MATHEMATICAL BOLD CAPITAL LAMDA;Lu;0;L;<font> 039B;;;;N;;;;;
+1D6B3;MATHEMATICAL BOLD CAPITAL MU;Lu;0;L;<font> 039C;;;;N;;;;;
+1D6B4;MATHEMATICAL BOLD CAPITAL NU;Lu;0;L;<font> 039D;;;;N;;;;;
+1D6B5;MATHEMATICAL BOLD CAPITAL XI;Lu;0;L;<font> 039E;;;;N;;;;;
+1D6B6;MATHEMATICAL BOLD CAPITAL OMICRON;Lu;0;L;<font> 039F;;;;N;;;;;
+1D6B7;MATHEMATICAL BOLD CAPITAL PI;Lu;0;L;<font> 03A0;;;;N;;;;;
+1D6B8;MATHEMATICAL BOLD CAPITAL RHO;Lu;0;L;<font> 03A1;;;;N;;;;;
+1D6B9;MATHEMATICAL BOLD CAPITAL THETA SYMBOL;Lu;0;L;<font> 03F4;;;;N;;;;;
+1D6BA;MATHEMATICAL BOLD CAPITAL SIGMA;Lu;0;L;<font> 03A3;;;;N;;;;;
+1D6BB;MATHEMATICAL BOLD CAPITAL TAU;Lu;0;L;<font> 03A4;;;;N;;;;;
+1D6BC;MATHEMATICAL BOLD CAPITAL UPSILON;Lu;0;L;<font> 03A5;;;;N;;;;;
+1D6BD;MATHEMATICAL BOLD CAPITAL PHI;Lu;0;L;<font> 03A6;;;;N;;;;;
+1D6BE;MATHEMATICAL BOLD CAPITAL CHI;Lu;0;L;<font> 03A7;;;;N;;;;;
+1D6BF;MATHEMATICAL BOLD CAPITAL PSI;Lu;0;L;<font> 03A8;;;;N;;;;;
+1D6C0;MATHEMATICAL BOLD CAPITAL OMEGA;Lu;0;L;<font> 03A9;;;;N;;;;;
+1D6C1;MATHEMATICAL BOLD NABLA;Sm;0;L;<font> 2207;;;;N;;;;;
+1D6C2;MATHEMATICAL BOLD SMALL ALPHA;Ll;0;L;<font> 03B1;;;;N;;;;;
+1D6C3;MATHEMATICAL BOLD SMALL BETA;Ll;0;L;<font> 03B2;;;;N;;;;;
+1D6C4;MATHEMATICAL BOLD SMALL GAMMA;Ll;0;L;<font> 03B3;;;;N;;;;;
+1D6C5;MATHEMATICAL BOLD SMALL DELTA;Ll;0;L;<font> 03B4;;;;N;;;;;
+1D6C6;MATHEMATICAL BOLD SMALL EPSILON;Ll;0;L;<font> 03B5;;;;N;;;;;
+1D6C7;MATHEMATICAL BOLD SMALL ZETA;Ll;0;L;<font> 03B6;;;;N;;;;;
+1D6C8;MATHEMATICAL BOLD SMALL ETA;Ll;0;L;<font> 03B7;;;;N;;;;;
+1D6C9;MATHEMATICAL BOLD SMALL THETA;Ll;0;L;<font> 03B8;;;;N;;;;;
+1D6CA;MATHEMATICAL BOLD SMALL IOTA;Ll;0;L;<font> 03B9;;;;N;;;;;
+1D6CB;MATHEMATICAL BOLD SMALL KAPPA;Ll;0;L;<font> 03BA;;;;N;;;;;
+1D6CC;MATHEMATICAL BOLD SMALL LAMDA;Ll;0;L;<font> 03BB;;;;N;;;;;
+1D6CD;MATHEMATICAL BOLD SMALL MU;Ll;0;L;<font> 03BC;;;;N;;;;;
+1D6CE;MATHEMATICAL BOLD SMALL NU;Ll;0;L;<font> 03BD;;;;N;;;;;
+1D6CF;MATHEMATICAL BOLD SMALL XI;Ll;0;L;<font> 03BE;;;;N;;;;;
+1D6D0;MATHEMATICAL BOLD SMALL OMICRON;Ll;0;L;<font> 03BF;;;;N;;;;;
+1D6D1;MATHEMATICAL BOLD SMALL PI;Ll;0;L;<font> 03C0;;;;N;;;;;
+1D6D2;MATHEMATICAL BOLD SMALL RHO;Ll;0;L;<font> 03C1;;;;N;;;;;
+1D6D3;MATHEMATICAL BOLD SMALL FINAL SIGMA;Ll;0;L;<font> 03C2;;;;N;;;;;
+1D6D4;MATHEMATICAL BOLD SMALL SIGMA;Ll;0;L;<font> 03C3;;;;N;;;;;
+1D6D5;MATHEMATICAL BOLD SMALL TAU;Ll;0;L;<font> 03C4;;;;N;;;;;
+1D6D6;MATHEMATICAL BOLD SMALL UPSILON;Ll;0;L;<font> 03C5;;;;N;;;;;
+1D6D7;MATHEMATICAL BOLD SMALL PHI;Ll;0;L;<font> 03C6;;;;N;;;;;
+1D6D8;MATHEMATICAL BOLD SMALL CHI;Ll;0;L;<font> 03C7;;;;N;;;;;
+1D6D9;MATHEMATICAL BOLD SMALL PSI;Ll;0;L;<font> 03C8;;;;N;;;;;
+1D6DA;MATHEMATICAL BOLD SMALL OMEGA;Ll;0;L;<font> 03C9;;;;N;;;;;
+1D6DB;MATHEMATICAL BOLD PARTIAL DIFFERENTIAL;Sm;0;L;<font> 2202;;;;Y;;;;;
+1D6DC;MATHEMATICAL BOLD EPSILON SYMBOL;Ll;0;L;<font> 03F5;;;;N;;;;;
+1D6DD;MATHEMATICAL BOLD THETA SYMBOL;Ll;0;L;<font> 03D1;;;;N;;;;;
+1D6DE;MATHEMATICAL BOLD KAPPA SYMBOL;Ll;0;L;<font> 03F0;;;;N;;;;;
+1D6DF;MATHEMATICAL BOLD PHI SYMBOL;Ll;0;L;<font> 03D5;;;;N;;;;;
+1D6E0;MATHEMATICAL BOLD RHO SYMBOL;Ll;0;L;<font> 03F1;;;;N;;;;;
+1D6E1;MATHEMATICAL BOLD PI SYMBOL;Ll;0;L;<font> 03D6;;;;N;;;;;
+1D6E2;MATHEMATICAL ITALIC CAPITAL ALPHA;Lu;0;L;<font> 0391;;;;N;;;;;
+1D6E3;MATHEMATICAL ITALIC CAPITAL BETA;Lu;0;L;<font> 0392;;;;N;;;;;
+1D6E4;MATHEMATICAL ITALIC CAPITAL GAMMA;Lu;0;L;<font> 0393;;;;N;;;;;
+1D6E5;MATHEMATICAL ITALIC CAPITAL DELTA;Lu;0;L;<font> 0394;;;;N;;;;;
+1D6E6;MATHEMATICAL ITALIC CAPITAL EPSILON;Lu;0;L;<font> 0395;;;;N;;;;;
+1D6E7;MATHEMATICAL ITALIC CAPITAL ZETA;Lu;0;L;<font> 0396;;;;N;;;;;
+1D6E8;MATHEMATICAL ITALIC CAPITAL ETA;Lu;0;L;<font> 0397;;;;N;;;;;
+1D6E9;MATHEMATICAL ITALIC CAPITAL THETA;Lu;0;L;<font> 0398;;;;N;;;;;
+1D6EA;MATHEMATICAL ITALIC CAPITAL IOTA;Lu;0;L;<font> 0399;;;;N;;;;;
+1D6EB;MATHEMATICAL ITALIC CAPITAL KAPPA;Lu;0;L;<font> 039A;;;;N;;;;;
+1D6EC;MATHEMATICAL ITALIC CAPITAL LAMDA;Lu;0;L;<font> 039B;;;;N;;;;;
+1D6ED;MATHEMATICAL ITALIC CAPITAL MU;Lu;0;L;<font> 039C;;;;N;;;;;
+1D6EE;MATHEMATICAL ITALIC CAPITAL NU;Lu;0;L;<font> 039D;;;;N;;;;;
+1D6EF;MATHEMATICAL ITALIC CAPITAL XI;Lu;0;L;<font> 039E;;;;N;;;;;
+1D6F0;MATHEMATICAL ITALIC CAPITAL OMICRON;Lu;0;L;<font> 039F;;;;N;;;;;
+1D6F1;MATHEMATICAL ITALIC CAPITAL PI;Lu;0;L;<font> 03A0;;;;N;;;;;
+1D6F2;MATHEMATICAL ITALIC CAPITAL RHO;Lu;0;L;<font> 03A1;;;;N;;;;;
+1D6F3;MATHEMATICAL ITALIC CAPITAL THETA SYMBOL;Lu;0;L;<font> 03F4;;;;N;;;;;
+1D6F4;MATHEMATICAL ITALIC CAPITAL SIGMA;Lu;0;L;<font> 03A3;;;;N;;;;;
+1D6F5;MATHEMATICAL ITALIC CAPITAL TAU;Lu;0;L;<font> 03A4;;;;N;;;;;
+1D6F6;MATHEMATICAL ITALIC CAPITAL UPSILON;Lu;0;L;<font> 03A5;;;;N;;;;;
+1D6F7;MATHEMATICAL ITALIC CAPITAL PHI;Lu;0;L;<font> 03A6;;;;N;;;;;
+1D6F8;MATHEMATICAL ITALIC CAPITAL CHI;Lu;0;L;<font> 03A7;;;;N;;;;;
+1D6F9;MATHEMATICAL ITALIC CAPITAL PSI;Lu;0;L;<font> 03A8;;;;N;;;;;
+1D6FA;MATHEMATICAL ITALIC CAPITAL OMEGA;Lu;0;L;<font> 03A9;;;;N;;;;;
+1D6FB;MATHEMATICAL ITALIC NABLA;Sm;0;L;<font> 2207;;;;N;;;;;
+1D6FC;MATHEMATICAL ITALIC SMALL ALPHA;Ll;0;L;<font> 03B1;;;;N;;;;;
+1D6FD;MATHEMATICAL ITALIC SMALL BETA;Ll;0;L;<font> 03B2;;;;N;;;;;
+1D6FE;MATHEMATICAL ITALIC SMALL GAMMA;Ll;0;L;<font> 03B3;;;;N;;;;;
+1D6FF;MATHEMATICAL ITALIC SMALL DELTA;Ll;0;L;<font> 03B4;;;;N;;;;;
+1D700;MATHEMATICAL ITALIC SMALL EPSILON;Ll;0;L;<font> 03B5;;;;N;;;;;
+1D701;MATHEMATICAL ITALIC SMALL ZETA;Ll;0;L;<font> 03B6;;;;N;;;;;
+1D702;MATHEMATICAL ITALIC SMALL ETA;Ll;0;L;<font> 03B7;;;;N;;;;;
+1D703;MATHEMATICAL ITALIC SMALL THETA;Ll;0;L;<font> 03B8;;;;N;;;;;
+1D704;MATHEMATICAL ITALIC SMALL IOTA;Ll;0;L;<font> 03B9;;;;N;;;;;
+1D705;MATHEMATICAL ITALIC SMALL KAPPA;Ll;0;L;<font> 03BA;;;;N;;;;;
+1D706;MATHEMATICAL ITALIC SMALL LAMDA;Ll;0;L;<font> 03BB;;;;N;;;;;
+1D707;MATHEMATICAL ITALIC SMALL MU;Ll;0;L;<font> 03BC;;;;N;;;;;
+1D708;MATHEMATICAL ITALIC SMALL NU;Ll;0;L;<font> 03BD;;;;N;;;;;
+1D709;MATHEMATICAL ITALIC SMALL XI;Ll;0;L;<font> 03BE;;;;N;;;;;
+1D70A;MATHEMATICAL ITALIC SMALL OMICRON;Ll;0;L;<font> 03BF;;;;N;;;;;
+1D70B;MATHEMATICAL ITALIC SMALL PI;Ll;0;L;<font> 03C0;;;;N;;;;;
+1D70C;MATHEMATICAL ITALIC SMALL RHO;Ll;0;L;<font> 03C1;;;;N;;;;;
+1D70D;MATHEMATICAL ITALIC SMALL FINAL SIGMA;Ll;0;L;<font> 03C2;;;;N;;;;;
+1D70E;MATHEMATICAL ITALIC SMALL SIGMA;Ll;0;L;<font> 03C3;;;;N;;;;;
+1D70F;MATHEMATICAL ITALIC SMALL TAU;Ll;0;L;<font> 03C4;;;;N;;;;;
+1D710;MATHEMATICAL ITALIC SMALL UPSILON;Ll;0;L;<font> 03C5;;;;N;;;;;
+1D711;MATHEMATICAL ITALIC SMALL PHI;Ll;0;L;<font> 03C6;;;;N;;;;;
+1D712;MATHEMATICAL ITALIC SMALL CHI;Ll;0;L;<font> 03C7;;;;N;;;;;
+1D713;MATHEMATICAL ITALIC SMALL PSI;Ll;0;L;<font> 03C8;;;;N;;;;;
+1D714;MATHEMATICAL ITALIC SMALL OMEGA;Ll;0;L;<font> 03C9;;;;N;;;;;
+1D715;MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL;Sm;0;L;<font> 2202;;;;Y;;;;;
+1D716;MATHEMATICAL ITALIC EPSILON SYMBOL;Ll;0;L;<font> 03F5;;;;N;;;;;
+1D717;MATHEMATICAL ITALIC THETA SYMBOL;Ll;0;L;<font> 03D1;;;;N;;;;;
+1D718;MATHEMATICAL ITALIC KAPPA SYMBOL;Ll;0;L;<font> 03F0;;;;N;;;;;
+1D719;MATHEMATICAL ITALIC PHI SYMBOL;Ll;0;L;<font> 03D5;;;;N;;;;;
+1D71A;MATHEMATICAL ITALIC RHO SYMBOL;Ll;0;L;<font> 03F1;;;;N;;;;;
+1D71B;MATHEMATICAL ITALIC PI SYMBOL;Ll;0;L;<font> 03D6;;;;N;;;;;
+1D71C;MATHEMATICAL BOLD ITALIC CAPITAL ALPHA;Lu;0;L;<font> 0391;;;;N;;;;;
+1D71D;MATHEMATICAL BOLD ITALIC CAPITAL BETA;Lu;0;L;<font> 0392;;;;N;;;;;
+1D71E;MATHEMATICAL BOLD ITALIC CAPITAL GAMMA;Lu;0;L;<font> 0393;;;;N;;;;;
+1D71F;MATHEMATICAL BOLD ITALIC CAPITAL DELTA;Lu;0;L;<font> 0394;;;;N;;;;;
+1D720;MATHEMATICAL BOLD ITALIC CAPITAL EPSILON;Lu;0;L;<font> 0395;;;;N;;;;;
+1D721;MATHEMATICAL BOLD ITALIC CAPITAL ZETA;Lu;0;L;<font> 0396;;;;N;;;;;
+1D722;MATHEMATICAL BOLD ITALIC CAPITAL ETA;Lu;0;L;<font> 0397;;;;N;;;;;
+1D723;MATHEMATICAL BOLD ITALIC CAPITAL THETA;Lu;0;L;<font> 0398;;;;N;;;;;
+1D724;MATHEMATICAL BOLD ITALIC CAPITAL IOTA;Lu;0;L;<font> 0399;;;;N;;;;;
+1D725;MATHEMATICAL BOLD ITALIC CAPITAL KAPPA;Lu;0;L;<font> 039A;;;;N;;;;;
+1D726;MATHEMATICAL BOLD ITALIC CAPITAL LAMDA;Lu;0;L;<font> 039B;;;;N;;;;;
+1D727;MATHEMATICAL BOLD ITALIC CAPITAL MU;Lu;0;L;<font> 039C;;;;N;;;;;
+1D728;MATHEMATICAL BOLD ITALIC CAPITAL NU;Lu;0;L;<font> 039D;;;;N;;;;;
+1D729;MATHEMATICAL BOLD ITALIC CAPITAL XI;Lu;0;L;<font> 039E;;;;N;;;;;
+1D72A;MATHEMATICAL BOLD ITALIC CAPITAL OMICRON;Lu;0;L;<font> 039F;;;;N;;;;;
+1D72B;MATHEMATICAL BOLD ITALIC CAPITAL PI;Lu;0;L;<font> 03A0;;;;N;;;;;
+1D72C;MATHEMATICAL BOLD ITALIC CAPITAL RHO;Lu;0;L;<font> 03A1;;;;N;;;;;
+1D72D;MATHEMATICAL BOLD ITALIC CAPITAL THETA SYMBOL;Lu;0;L;<font> 03F4;;;;N;;;;;
+1D72E;MATHEMATICAL BOLD ITALIC CAPITAL SIGMA;Lu;0;L;<font> 03A3;;;;N;;;;;
+1D72F;MATHEMATICAL BOLD ITALIC CAPITAL TAU;Lu;0;L;<font> 03A4;;;;N;;;;;
+1D730;MATHEMATICAL BOLD ITALIC CAPITAL UPSILON;Lu;0;L;<font> 03A5;;;;N;;;;;
+1D731;MATHEMATICAL BOLD ITALIC CAPITAL PHI;Lu;0;L;<font> 03A6;;;;N;;;;;
+1D732;MATHEMATICAL BOLD ITALIC CAPITAL CHI;Lu;0;L;<font> 03A7;;;;N;;;;;
+1D733;MATHEMATICAL BOLD ITALIC CAPITAL PSI;Lu;0;L;<font> 03A8;;;;N;;;;;
+1D734;MATHEMATICAL BOLD ITALIC CAPITAL OMEGA;Lu;0;L;<font> 03A9;;;;N;;;;;
+1D735;MATHEMATICAL BOLD ITALIC NABLA;Sm;0;L;<font> 2207;;;;N;;;;;
+1D736;MATHEMATICAL BOLD ITALIC SMALL ALPHA;Ll;0;L;<font> 03B1;;;;N;;;;;
+1D737;MATHEMATICAL BOLD ITALIC SMALL BETA;Ll;0;L;<font> 03B2;;;;N;;;;;
+1D738;MATHEMATICAL BOLD ITALIC SMALL GAMMA;Ll;0;L;<font> 03B3;;;;N;;;;;
+1D739;MATHEMATICAL BOLD ITALIC SMALL DELTA;Ll;0;L;<font> 03B4;;;;N;;;;;
+1D73A;MATHEMATICAL BOLD ITALIC SMALL EPSILON;Ll;0;L;<font> 03B5;;;;N;;;;;
+1D73B;MATHEMATICAL BOLD ITALIC SMALL ZETA;Ll;0;L;<font> 03B6;;;;N;;;;;
+1D73C;MATHEMATICAL BOLD ITALIC SMALL ETA;Ll;0;L;<font> 03B7;;;;N;;;;;
+1D73D;MATHEMATICAL BOLD ITALIC SMALL THETA;Ll;0;L;<font> 03B8;;;;N;;;;;
+1D73E;MATHEMATICAL BOLD ITALIC SMALL IOTA;Ll;0;L;<font> 03B9;;;;N;;;;;
+1D73F;MATHEMATICAL BOLD ITALIC SMALL KAPPA;Ll;0;L;<font> 03BA;;;;N;;;;;
+1D740;MATHEMATICAL BOLD ITALIC SMALL LAMDA;Ll;0;L;<font> 03BB;;;;N;;;;;
+1D741;MATHEMATICAL BOLD ITALIC SMALL MU;Ll;0;L;<font> 03BC;;;;N;;;;;
+1D742;MATHEMATICAL BOLD ITALIC SMALL NU;Ll;0;L;<font> 03BD;;;;N;;;;;
+1D743;MATHEMATICAL BOLD ITALIC SMALL XI;Ll;0;L;<font> 03BE;;;;N;;;;;
+1D744;MATHEMATICAL BOLD ITALIC SMALL OMICRON;Ll;0;L;<font> 03BF;;;;N;;;;;
+1D745;MATHEMATICAL BOLD ITALIC SMALL PI;Ll;0;L;<font> 03C0;;;;N;;;;;
+1D746;MATHEMATICAL BOLD ITALIC SMALL RHO;Ll;0;L;<font> 03C1;;;;N;;;;;
+1D747;MATHEMATICAL BOLD ITALIC SMALL FINAL SIGMA;Ll;0;L;<font> 03C2;;;;N;;;;;
+1D748;MATHEMATICAL BOLD ITALIC SMALL SIGMA;Ll;0;L;<font> 03C3;;;;N;;;;;
+1D749;MATHEMATICAL BOLD ITALIC SMALL TAU;Ll;0;L;<font> 03C4;;;;N;;;;;
+1D74A;MATHEMATICAL BOLD ITALIC SMALL UPSILON;Ll;0;L;<font> 03C5;;;;N;;;;;
+1D74B;MATHEMATICAL BOLD ITALIC SMALL PHI;Ll;0;L;<font> 03C6;;;;N;;;;;
+1D74C;MATHEMATICAL BOLD ITALIC SMALL CHI;Ll;0;L;<font> 03C7;;;;N;;;;;
+1D74D;MATHEMATICAL BOLD ITALIC SMALL PSI;Ll;0;L;<font> 03C8;;;;N;;;;;
+1D74E;MATHEMATICAL BOLD ITALIC SMALL OMEGA;Ll;0;L;<font> 03C9;;;;N;;;;;
+1D74F;MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL;Sm;0;L;<font> 2202;;;;Y;;;;;
+1D750;MATHEMATICAL BOLD ITALIC EPSILON SYMBOL;Ll;0;L;<font> 03F5;;;;N;;;;;
+1D751;MATHEMATICAL BOLD ITALIC THETA SYMBOL;Ll;0;L;<font> 03D1;;;;N;;;;;
+1D752;MATHEMATICAL BOLD ITALIC KAPPA SYMBOL;Ll;0;L;<font> 03F0;;;;N;;;;;
+1D753;MATHEMATICAL BOLD ITALIC PHI SYMBOL;Ll;0;L;<font> 03D5;;;;N;;;;;
+1D754;MATHEMATICAL BOLD ITALIC RHO SYMBOL;Ll;0;L;<font> 03F1;;;;N;;;;;
+1D755;MATHEMATICAL BOLD ITALIC PI SYMBOL;Ll;0;L;<font> 03D6;;;;N;;;;;
+1D756;MATHEMATICAL SANS-SERIF BOLD CAPITAL ALPHA;Lu;0;L;<font> 0391;;;;N;;;;;
+1D757;MATHEMATICAL SANS-SERIF BOLD CAPITAL BETA;Lu;0;L;<font> 0392;;;;N;;;;;
+1D758;MATHEMATICAL SANS-SERIF BOLD CAPITAL GAMMA;Lu;0;L;<font> 0393;;;;N;;;;;
+1D759;MATHEMATICAL SANS-SERIF BOLD CAPITAL DELTA;Lu;0;L;<font> 0394;;;;N;;;;;
+1D75A;MATHEMATICAL SANS-SERIF BOLD CAPITAL EPSILON;Lu;0;L;<font> 0395;;;;N;;;;;
+1D75B;MATHEMATICAL SANS-SERIF BOLD CAPITAL ZETA;Lu;0;L;<font> 0396;;;;N;;;;;
+1D75C;MATHEMATICAL SANS-SERIF BOLD CAPITAL ETA;Lu;0;L;<font> 0397;;;;N;;;;;
+1D75D;MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA;Lu;0;L;<font> 0398;;;;N;;;;;
+1D75E;MATHEMATICAL SANS-SERIF BOLD CAPITAL IOTA;Lu;0;L;<font> 0399;;;;N;;;;;
+1D75F;MATHEMATICAL SANS-SERIF BOLD CAPITAL KAPPA;Lu;0;L;<font> 039A;;;;N;;;;;
+1D760;MATHEMATICAL SANS-SERIF BOLD CAPITAL LAMDA;Lu;0;L;<font> 039B;;;;N;;;;;
+1D761;MATHEMATICAL SANS-SERIF BOLD CAPITAL MU;Lu;0;L;<font> 039C;;;;N;;;;;
+1D762;MATHEMATICAL SANS-SERIF BOLD CAPITAL NU;Lu;0;L;<font> 039D;;;;N;;;;;
+1D763;MATHEMATICAL SANS-SERIF BOLD CAPITAL XI;Lu;0;L;<font> 039E;;;;N;;;;;
+1D764;MATHEMATICAL SANS-SERIF BOLD CAPITAL OMICRON;Lu;0;L;<font> 039F;;;;N;;;;;
+1D765;MATHEMATICAL SANS-SERIF BOLD CAPITAL PI;Lu;0;L;<font> 03A0;;;;N;;;;;
+1D766;MATHEMATICAL SANS-SERIF BOLD CAPITAL RHO;Lu;0;L;<font> 03A1;;;;N;;;;;
+1D767;MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA SYMBOL;Lu;0;L;<font> 03F4;;;;N;;;;;
+1D768;MATHEMATICAL SANS-SERIF BOLD CAPITAL SIGMA;Lu;0;L;<font> 03A3;;;;N;;;;;
+1D769;MATHEMATICAL SANS-SERIF BOLD CAPITAL TAU;Lu;0;L;<font> 03A4;;;;N;;;;;
+1D76A;MATHEMATICAL SANS-SERIF BOLD CAPITAL UPSILON;Lu;0;L;<font> 03A5;;;;N;;;;;
+1D76B;MATHEMATICAL SANS-SERIF BOLD CAPITAL PHI;Lu;0;L;<font> 03A6;;;;N;;;;;
+1D76C;MATHEMATICAL SANS-SERIF BOLD CAPITAL CHI;Lu;0;L;<font> 03A7;;;;N;;;;;
+1D76D;MATHEMATICAL SANS-SERIF BOLD CAPITAL PSI;Lu;0;L;<font> 03A8;;;;N;;;;;
+1D76E;MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA;Lu;0;L;<font> 03A9;;;;N;;;;;
+1D76F;MATHEMATICAL SANS-SERIF BOLD NABLA;Sm;0;L;<font> 2207;;;;N;;;;;
+1D770;MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA;Ll;0;L;<font> 03B1;;;;N;;;;;
+1D771;MATHEMATICAL SANS-SERIF BOLD SMALL BETA;Ll;0;L;<font> 03B2;;;;N;;;;;
+1D772;MATHEMATICAL SANS-SERIF BOLD SMALL GAMMA;Ll;0;L;<font> 03B3;;;;N;;;;;
+1D773;MATHEMATICAL SANS-SERIF BOLD SMALL DELTA;Ll;0;L;<font> 03B4;;;;N;;;;;
+1D774;MATHEMATICAL SANS-SERIF BOLD SMALL EPSILON;Ll;0;L;<font> 03B5;;;;N;;;;;
+1D775;MATHEMATICAL SANS-SERIF BOLD SMALL ZETA;Ll;0;L;<font> 03B6;;;;N;;;;;
+1D776;MATHEMATICAL SANS-SERIF BOLD SMALL ETA;Ll;0;L;<font> 03B7;;;;N;;;;;
+1D777;MATHEMATICAL SANS-SERIF BOLD SMALL THETA;Ll;0;L;<font> 03B8;;;;N;;;;;
+1D778;MATHEMATICAL SANS-SERIF BOLD SMALL IOTA;Ll;0;L;<font> 03B9;;;;N;;;;;
+1D779;MATHEMATICAL SANS-SERIF BOLD SMALL KAPPA;Ll;0;L;<font> 03BA;;;;N;;;;;
+1D77A;MATHEMATICAL SANS-SERIF BOLD SMALL LAMDA;Ll;0;L;<font> 03BB;;;;N;;;;;
+1D77B;MATHEMATICAL SANS-SERIF BOLD SMALL MU;Ll;0;L;<font> 03BC;;;;N;;;;;
+1D77C;MATHEMATICAL SANS-SERIF BOLD SMALL NU;Ll;0;L;<font> 03BD;;;;N;;;;;
+1D77D;MATHEMATICAL SANS-SERIF BOLD SMALL XI;Ll;0;L;<font> 03BE;;;;N;;;;;
+1D77E;MATHEMATICAL SANS-SERIF BOLD SMALL OMICRON;Ll;0;L;<font> 03BF;;;;N;;;;;
+1D77F;MATHEMATICAL SANS-SERIF BOLD SMALL PI;Ll;0;L;<font> 03C0;;;;N;;;;;
+1D780;MATHEMATICAL SANS-SERIF BOLD SMALL RHO;Ll;0;L;<font> 03C1;;;;N;;;;;
+1D781;MATHEMATICAL SANS-SERIF BOLD SMALL FINAL SIGMA;Ll;0;L;<font> 03C2;;;;N;;;;;
+1D782;MATHEMATICAL SANS-SERIF BOLD SMALL SIGMA;Ll;0;L;<font> 03C3;;;;N;;;;;
+1D783;MATHEMATICAL SANS-SERIF BOLD SMALL TAU;Ll;0;L;<font> 03C4;;;;N;;;;;
+1D784;MATHEMATICAL SANS-SERIF BOLD SMALL UPSILON;Ll;0;L;<font> 03C5;;;;N;;;;;
+1D785;MATHEMATICAL SANS-SERIF BOLD SMALL PHI;Ll;0;L;<font> 03C6;;;;N;;;;;
+1D786;MATHEMATICAL SANS-SERIF BOLD SMALL CHI;Ll;0;L;<font> 03C7;;;;N;;;;;
+1D787;MATHEMATICAL SANS-SERIF BOLD SMALL PSI;Ll;0;L;<font> 03C8;;;;N;;;;;
+1D788;MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA;Ll;0;L;<font> 03C9;;;;N;;;;;
+1D789;MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL;Sm;0;L;<font> 2202;;;;Y;;;;;
+1D78A;MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL;Ll;0;L;<font> 03F5;;;;N;;;;;
+1D78B;MATHEMATICAL SANS-SERIF BOLD THETA SYMBOL;Ll;0;L;<font> 03D1;;;;N;;;;;
+1D78C;MATHEMATICAL SANS-SERIF BOLD KAPPA SYMBOL;Ll;0;L;<font> 03F0;;;;N;;;;;
+1D78D;MATHEMATICAL SANS-SERIF BOLD PHI SYMBOL;Ll;0;L;<font> 03D5;;;;N;;;;;
+1D78E;MATHEMATICAL SANS-SERIF BOLD RHO SYMBOL;Ll;0;L;<font> 03F1;;;;N;;;;;
+1D78F;MATHEMATICAL SANS-SERIF BOLD PI SYMBOL;Ll;0;L;<font> 03D6;;;;N;;;;;
+1D790;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ALPHA;Lu;0;L;<font> 0391;;;;N;;;;;
+1D791;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL BETA;Lu;0;L;<font> 0392;;;;N;;;;;
+1D792;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL GAMMA;Lu;0;L;<font> 0393;;;;N;;;;;
+1D793;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL DELTA;Lu;0;L;<font> 0394;;;;N;;;;;
+1D794;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL EPSILON;Lu;0;L;<font> 0395;;;;N;;;;;
+1D795;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ZETA;Lu;0;L;<font> 0396;;;;N;;;;;
+1D796;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ETA;Lu;0;L;<font> 0397;;;;N;;;;;
+1D797;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA;Lu;0;L;<font> 0398;;;;N;;;;;
+1D798;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL IOTA;Lu;0;L;<font> 0399;;;;N;;;;;
+1D799;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL KAPPA;Lu;0;L;<font> 039A;;;;N;;;;;
+1D79A;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL LAMDA;Lu;0;L;<font> 039B;;;;N;;;;;
+1D79B;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL MU;Lu;0;L;<font> 039C;;;;N;;;;;
+1D79C;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL NU;Lu;0;L;<font> 039D;;;;N;;;;;
+1D79D;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL XI;Lu;0;L;<font> 039E;;;;N;;;;;
+1D79E;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMICRON;Lu;0;L;<font> 039F;;;;N;;;;;
+1D79F;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PI;Lu;0;L;<font> 03A0;;;;N;;;;;
+1D7A0;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL RHO;Lu;0;L;<font> 03A1;;;;N;;;;;
+1D7A1;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA SYMBOL;Lu;0;L;<font> 03F4;;;;N;;;;;
+1D7A2;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL SIGMA;Lu;0;L;<font> 03A3;;;;N;;;;;
+1D7A3;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL TAU;Lu;0;L;<font> 03A4;;;;N;;;;;
+1D7A4;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL UPSILON;Lu;0;L;<font> 03A5;;;;N;;;;;
+1D7A5;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PHI;Lu;0;L;<font> 03A6;;;;N;;;;;
+1D7A6;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL CHI;Lu;0;L;<font> 03A7;;;;N;;;;;
+1D7A7;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PSI;Lu;0;L;<font> 03A8;;;;N;;;;;
+1D7A8;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA;Lu;0;L;<font> 03A9;;;;N;;;;;
+1D7A9;MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA;Sm;0;L;<font> 2207;;;;N;;;;;
+1D7AA;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA;Ll;0;L;<font> 03B1;;;;N;;;;;
+1D7AB;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL BETA;Ll;0;L;<font> 03B2;;;;N;;;;;
+1D7AC;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL GAMMA;Ll;0;L;<font> 03B3;;;;N;;;;;
+1D7AD;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL DELTA;Ll;0;L;<font> 03B4;;;;N;;;;;
+1D7AE;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL EPSILON;Ll;0;L;<font> 03B5;;;;N;;;;;
+1D7AF;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ZETA;Ll;0;L;<font> 03B6;;;;N;;;;;
+1D7B0;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ETA;Ll;0;L;<font> 03B7;;;;N;;;;;
+1D7B1;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL THETA;Ll;0;L;<font> 03B8;;;;N;;;;;
+1D7B2;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL IOTA;Ll;0;L;<font> 03B9;;;;N;;;;;
+1D7B3;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL KAPPA;Ll;0;L;<font> 03BA;;;;N;;;;;
+1D7B4;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL LAMDA;Ll;0;L;<font> 03BB;;;;N;;;;;
+1D7B5;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL MU;Ll;0;L;<font> 03BC;;;;N;;;;;
+1D7B6;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL NU;Ll;0;L;<font> 03BD;;;;N;;;;;
+1D7B7;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL XI;Ll;0;L;<font> 03BE;;;;N;;;;;
+1D7B8;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMICRON;Ll;0;L;<font> 03BF;;;;N;;;;;
+1D7B9;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PI;Ll;0;L;<font> 03C0;;;;N;;;;;
+1D7BA;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL RHO;Ll;0;L;<font> 03C1;;;;N;;;;;
+1D7BB;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL FINAL SIGMA;Ll;0;L;<font> 03C2;;;;N;;;;;
+1D7BC;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL SIGMA;Ll;0;L;<font> 03C3;;;;N;;;;;
+1D7BD;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL TAU;Ll;0;L;<font> 03C4;;;;N;;;;;
+1D7BE;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL UPSILON;Ll;0;L;<font> 03C5;;;;N;;;;;
+1D7BF;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PHI;Ll;0;L;<font> 03C6;;;;N;;;;;
+1D7C0;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL CHI;Ll;0;L;<font> 03C7;;;;N;;;;;
+1D7C1;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PSI;Ll;0;L;<font> 03C8;;;;N;;;;;
+1D7C2;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA;Ll;0;L;<font> 03C9;;;;N;;;;;
+1D7C3;MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL;Sm;0;L;<font> 2202;;;;Y;;;;;
+1D7C4;MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL;Ll;0;L;<font> 03F5;;;;N;;;;;
+1D7C5;MATHEMATICAL SANS-SERIF BOLD ITALIC THETA SYMBOL;Ll;0;L;<font> 03D1;;;;N;;;;;
+1D7C6;MATHEMATICAL SANS-SERIF BOLD ITALIC KAPPA SYMBOL;Ll;0;L;<font> 03F0;;;;N;;;;;
+1D7C7;MATHEMATICAL SANS-SERIF BOLD ITALIC PHI SYMBOL;Ll;0;L;<font> 03D5;;;;N;;;;;
+1D7C8;MATHEMATICAL SANS-SERIF BOLD ITALIC RHO SYMBOL;Ll;0;L;<font> 03F1;;;;N;;;;;
+1D7C9;MATHEMATICAL SANS-SERIF BOLD ITALIC PI SYMBOL;Ll;0;L;<font> 03D6;;;;N;;;;;
+1D7CA;MATHEMATICAL BOLD CAPITAL DIGAMMA;Lu;0;L;<font> 03DC;;;;N;;;;;
+1D7CB;MATHEMATICAL BOLD SMALL DIGAMMA;Ll;0;L;<font> 03DD;;;;N;;;;;
+1D7CE;MATHEMATICAL BOLD DIGIT ZERO;Nd;0;EN;<font> 0030;0;0;0;N;;;;;
+1D7CF;MATHEMATICAL BOLD DIGIT ONE;Nd;0;EN;<font> 0031;1;1;1;N;;;;;
+1D7D0;MATHEMATICAL BOLD DIGIT TWO;Nd;0;EN;<font> 0032;2;2;2;N;;;;;
+1D7D1;MATHEMATICAL BOLD DIGIT THREE;Nd;0;EN;<font> 0033;3;3;3;N;;;;;
+1D7D2;MATHEMATICAL BOLD DIGIT FOUR;Nd;0;EN;<font> 0034;4;4;4;N;;;;;
+1D7D3;MATHEMATICAL BOLD DIGIT FIVE;Nd;0;EN;<font> 0035;5;5;5;N;;;;;
+1D7D4;MATHEMATICAL BOLD DIGIT SIX;Nd;0;EN;<font> 0036;6;6;6;N;;;;;
+1D7D5;MATHEMATICAL BOLD DIGIT SEVEN;Nd;0;EN;<font> 0037;7;7;7;N;;;;;
+1D7D6;MATHEMATICAL BOLD DIGIT EIGHT;Nd;0;EN;<font> 0038;8;8;8;N;;;;;
+1D7D7;MATHEMATICAL BOLD DIGIT NINE;Nd;0;EN;<font> 0039;9;9;9;N;;;;;
+1D7D8;MATHEMATICAL DOUBLE-STRUCK DIGIT ZERO;Nd;0;EN;<font> 0030;0;0;0;N;;;;;
+1D7D9;MATHEMATICAL DOUBLE-STRUCK DIGIT ONE;Nd;0;EN;<font> 0031;1;1;1;N;;;;;
+1D7DA;MATHEMATICAL DOUBLE-STRUCK DIGIT TWO;Nd;0;EN;<font> 0032;2;2;2;N;;;;;
+1D7DB;MATHEMATICAL DOUBLE-STRUCK DIGIT THREE;Nd;0;EN;<font> 0033;3;3;3;N;;;;;
+1D7DC;MATHEMATICAL DOUBLE-STRUCK DIGIT FOUR;Nd;0;EN;<font> 0034;4;4;4;N;;;;;
+1D7DD;MATHEMATICAL DOUBLE-STRUCK DIGIT FIVE;Nd;0;EN;<font> 0035;5;5;5;N;;;;;
+1D7DE;MATHEMATICAL DOUBLE-STRUCK DIGIT SIX;Nd;0;EN;<font> 0036;6;6;6;N;;;;;
+1D7DF;MATHEMATICAL DOUBLE-STRUCK DIGIT SEVEN;Nd;0;EN;<font> 0037;7;7;7;N;;;;;
+1D7E0;MATHEMATICAL DOUBLE-STRUCK DIGIT EIGHT;Nd;0;EN;<font> 0038;8;8;8;N;;;;;
+1D7E1;MATHEMATICAL DOUBLE-STRUCK DIGIT NINE;Nd;0;EN;<font> 0039;9;9;9;N;;;;;
+1D7E2;MATHEMATICAL SANS-SERIF DIGIT ZERO;Nd;0;EN;<font> 0030;0;0;0;N;;;;;
+1D7E3;MATHEMATICAL SANS-SERIF DIGIT ONE;Nd;0;EN;<font> 0031;1;1;1;N;;;;;
+1D7E4;MATHEMATICAL SANS-SERIF DIGIT TWO;Nd;0;EN;<font> 0032;2;2;2;N;;;;;
+1D7E5;MATHEMATICAL SANS-SERIF DIGIT THREE;Nd;0;EN;<font> 0033;3;3;3;N;;;;;
+1D7E6;MATHEMATICAL SANS-SERIF DIGIT FOUR;Nd;0;EN;<font> 0034;4;4;4;N;;;;;
+1D7E7;MATHEMATICAL SANS-SERIF DIGIT FIVE;Nd;0;EN;<font> 0035;5;5;5;N;;;;;
+1D7E8;MATHEMATICAL SANS-SERIF DIGIT SIX;Nd;0;EN;<font> 0036;6;6;6;N;;;;;
+1D7E9;MATHEMATICAL SANS-SERIF DIGIT SEVEN;Nd;0;EN;<font> 0037;7;7;7;N;;;;;
+1D7EA;MATHEMATICAL SANS-SERIF DIGIT EIGHT;Nd;0;EN;<font> 0038;8;8;8;N;;;;;
+1D7EB;MATHEMATICAL SANS-SERIF DIGIT NINE;Nd;0;EN;<font> 0039;9;9;9;N;;;;;
+1D7EC;MATHEMATICAL SANS-SERIF BOLD DIGIT ZERO;Nd;0;EN;<font> 0030;0;0;0;N;;;;;
+1D7ED;MATHEMATICAL SANS-SERIF BOLD DIGIT ONE;Nd;0;EN;<font> 0031;1;1;1;N;;;;;
+1D7EE;MATHEMATICAL SANS-SERIF BOLD DIGIT TWO;Nd;0;EN;<font> 0032;2;2;2;N;;;;;
+1D7EF;MATHEMATICAL SANS-SERIF BOLD DIGIT THREE;Nd;0;EN;<font> 0033;3;3;3;N;;;;;
+1D7F0;MATHEMATICAL SANS-SERIF BOLD DIGIT FOUR;Nd;0;EN;<font> 0034;4;4;4;N;;;;;
+1D7F1;MATHEMATICAL SANS-SERIF BOLD DIGIT FIVE;Nd;0;EN;<font> 0035;5;5;5;N;;;;;
+1D7F2;MATHEMATICAL SANS-SERIF BOLD DIGIT SIX;Nd;0;EN;<font> 0036;6;6;6;N;;;;;
+1D7F3;MATHEMATICAL SANS-SERIF BOLD DIGIT SEVEN;Nd;0;EN;<font> 0037;7;7;7;N;;;;;
+1D7F4;MATHEMATICAL SANS-SERIF BOLD DIGIT EIGHT;Nd;0;EN;<font> 0038;8;8;8;N;;;;;
+1D7F5;MATHEMATICAL SANS-SERIF BOLD DIGIT NINE;Nd;0;EN;<font> 0039;9;9;9;N;;;;;
+1D7F6;MATHEMATICAL MONOSPACE DIGIT ZERO;Nd;0;EN;<font> 0030;0;0;0;N;;;;;
+1D7F7;MATHEMATICAL MONOSPACE DIGIT ONE;Nd;0;EN;<font> 0031;1;1;1;N;;;;;
+1D7F8;MATHEMATICAL MONOSPACE DIGIT TWO;Nd;0;EN;<font> 0032;2;2;2;N;;;;;
+1D7F9;MATHEMATICAL MONOSPACE DIGIT THREE;Nd;0;EN;<font> 0033;3;3;3;N;;;;;
+1D7FA;MATHEMATICAL MONOSPACE DIGIT FOUR;Nd;0;EN;<font> 0034;4;4;4;N;;;;;
+1D7FB;MATHEMATICAL MONOSPACE DIGIT FIVE;Nd;0;EN;<font> 0035;5;5;5;N;;;;;
+1D7FC;MATHEMATICAL MONOSPACE DIGIT SIX;Nd;0;EN;<font> 0036;6;6;6;N;;;;;
+1D7FD;MATHEMATICAL MONOSPACE DIGIT SEVEN;Nd;0;EN;<font> 0037;7;7;7;N;;;;;
+1D7FE;MATHEMATICAL MONOSPACE DIGIT EIGHT;Nd;0;EN;<font> 0038;8;8;8;N;;;;;
+1D7FF;MATHEMATICAL MONOSPACE DIGIT NINE;Nd;0;EN;<font> 0039;9;9;9;N;;;;;
+20000;<CJK Ideograph Extension B, First>;Lo;0;L;;;;;N;;;;;
+2A6D6;<CJK Ideograph Extension B, Last>;Lo;0;L;;;;;N;;;;;
+2F800;CJK COMPATIBILITY IDEOGRAPH-2F800;Lo;0;L;4E3D;;;;N;;;;;
+2F801;CJK COMPATIBILITY IDEOGRAPH-2F801;Lo;0;L;4E38;;;;N;;;;;
+2F802;CJK COMPATIBILITY IDEOGRAPH-2F802;Lo;0;L;4E41;;;;N;;;;;
+2F803;CJK COMPATIBILITY IDEOGRAPH-2F803;Lo;0;L;20122;;;;N;;;;;
+2F804;CJK COMPATIBILITY IDEOGRAPH-2F804;Lo;0;L;4F60;;;;N;;;;;
+2F805;CJK COMPATIBILITY IDEOGRAPH-2F805;Lo;0;L;4FAE;;;;N;;;;;
+2F806;CJK COMPATIBILITY IDEOGRAPH-2F806;Lo;0;L;4FBB;;;;N;;;;;
+2F807;CJK COMPATIBILITY IDEOGRAPH-2F807;Lo;0;L;5002;;;;N;;;;;
+2F808;CJK COMPATIBILITY IDEOGRAPH-2F808;Lo;0;L;507A;;;;N;;;;;
+2F809;CJK COMPATIBILITY IDEOGRAPH-2F809;Lo;0;L;5099;;;;N;;;;;
+2F80A;CJK COMPATIBILITY IDEOGRAPH-2F80A;Lo;0;L;50E7;;;;N;;;;;
+2F80B;CJK COMPATIBILITY IDEOGRAPH-2F80B;Lo;0;L;50CF;;;;N;;;;;
+2F80C;CJK COMPATIBILITY IDEOGRAPH-2F80C;Lo;0;L;349E;;;;N;;;;;
+2F80D;CJK COMPATIBILITY IDEOGRAPH-2F80D;Lo;0;L;2063A;;;;N;;;;;
+2F80E;CJK COMPATIBILITY IDEOGRAPH-2F80E;Lo;0;L;514D;;;;N;;;;;
+2F80F;CJK COMPATIBILITY IDEOGRAPH-2F80F;Lo;0;L;5154;;;;N;;;;;
+2F810;CJK COMPATIBILITY IDEOGRAPH-2F810;Lo;0;L;5164;;;;N;;;;;
+2F811;CJK COMPATIBILITY IDEOGRAPH-2F811;Lo;0;L;5177;;;;N;;;;;
+2F812;CJK COMPATIBILITY IDEOGRAPH-2F812;Lo;0;L;2051C;;;;N;;;;;
+2F813;CJK COMPATIBILITY IDEOGRAPH-2F813;Lo;0;L;34B9;;;;N;;;;;
+2F814;CJK COMPATIBILITY IDEOGRAPH-2F814;Lo;0;L;5167;;;;N;;;;;
+2F815;CJK COMPATIBILITY IDEOGRAPH-2F815;Lo;0;L;518D;;;;N;;;;;
+2F816;CJK COMPATIBILITY IDEOGRAPH-2F816;Lo;0;L;2054B;;;;N;;;;;
+2F817;CJK COMPATIBILITY IDEOGRAPH-2F817;Lo;0;L;5197;;;;N;;;;;
+2F818;CJK COMPATIBILITY IDEOGRAPH-2F818;Lo;0;L;51A4;;;;N;;;;;
+2F819;CJK COMPATIBILITY IDEOGRAPH-2F819;Lo;0;L;4ECC;;;;N;;;;;
+2F81A;CJK COMPATIBILITY IDEOGRAPH-2F81A;Lo;0;L;51AC;;;;N;;;;;
+2F81B;CJK COMPATIBILITY IDEOGRAPH-2F81B;Lo;0;L;51B5;;;;N;;;;;
+2F81C;CJK COMPATIBILITY IDEOGRAPH-2F81C;Lo;0;L;291DF;;;;N;;;;;
+2F81D;CJK COMPATIBILITY IDEOGRAPH-2F81D;Lo;0;L;51F5;;;;N;;;;;
+2F81E;CJK COMPATIBILITY IDEOGRAPH-2F81E;Lo;0;L;5203;;;;N;;;;;
+2F81F;CJK COMPATIBILITY IDEOGRAPH-2F81F;Lo;0;L;34DF;;;;N;;;;;
+2F820;CJK COMPATIBILITY IDEOGRAPH-2F820;Lo;0;L;523B;;;;N;;;;;
+2F821;CJK COMPATIBILITY IDEOGRAPH-2F821;Lo;0;L;5246;;;;N;;;;;
+2F822;CJK COMPATIBILITY IDEOGRAPH-2F822;Lo;0;L;5272;;;;N;;;;;
+2F823;CJK COMPATIBILITY IDEOGRAPH-2F823;Lo;0;L;5277;;;;N;;;;;
+2F824;CJK COMPATIBILITY IDEOGRAPH-2F824;Lo;0;L;3515;;;;N;;;;;
+2F825;CJK COMPATIBILITY IDEOGRAPH-2F825;Lo;0;L;52C7;;;;N;;;;;
+2F826;CJK COMPATIBILITY IDEOGRAPH-2F826;Lo;0;L;52C9;;;;N;;;;;
+2F827;CJK COMPATIBILITY IDEOGRAPH-2F827;Lo;0;L;52E4;;;;N;;;;;
+2F828;CJK COMPATIBILITY IDEOGRAPH-2F828;Lo;0;L;52FA;;;;N;;;;;
+2F829;CJK COMPATIBILITY IDEOGRAPH-2F829;Lo;0;L;5305;;;;N;;;;;
+2F82A;CJK COMPATIBILITY IDEOGRAPH-2F82A;Lo;0;L;5306;;;;N;;;;;
+2F82B;CJK COMPATIBILITY IDEOGRAPH-2F82B;Lo;0;L;5317;;;;N;;;;;
+2F82C;CJK COMPATIBILITY IDEOGRAPH-2F82C;Lo;0;L;5349;;;;N;;;;;
+2F82D;CJK COMPATIBILITY IDEOGRAPH-2F82D;Lo;0;L;5351;;;;N;;;;;
+2F82E;CJK COMPATIBILITY IDEOGRAPH-2F82E;Lo;0;L;535A;;;;N;;;;;
+2F82F;CJK COMPATIBILITY IDEOGRAPH-2F82F;Lo;0;L;5373;;;;N;;;;;
+2F830;CJK COMPATIBILITY IDEOGRAPH-2F830;Lo;0;L;537D;;;;N;;;;;
+2F831;CJK COMPATIBILITY IDEOGRAPH-2F831;Lo;0;L;537F;;;;N;;;;;
+2F832;CJK COMPATIBILITY IDEOGRAPH-2F832;Lo;0;L;537F;;;;N;;;;;
+2F833;CJK COMPATIBILITY IDEOGRAPH-2F833;Lo;0;L;537F;;;;N;;;;;
+2F834;CJK COMPATIBILITY IDEOGRAPH-2F834;Lo;0;L;20A2C;;;;N;;;;;
+2F835;CJK COMPATIBILITY IDEOGRAPH-2F835;Lo;0;L;7070;;;;N;;;;;
+2F836;CJK COMPATIBILITY IDEOGRAPH-2F836;Lo;0;L;53CA;;;;N;;;;;
+2F837;CJK COMPATIBILITY IDEOGRAPH-2F837;Lo;0;L;53DF;;;;N;;;;;
+2F838;CJK COMPATIBILITY IDEOGRAPH-2F838;Lo;0;L;20B63;;;;N;;;;;
+2F839;CJK COMPATIBILITY IDEOGRAPH-2F839;Lo;0;L;53EB;;;;N;;;;;
+2F83A;CJK COMPATIBILITY IDEOGRAPH-2F83A;Lo;0;L;53F1;;;;N;;;;;
+2F83B;CJK COMPATIBILITY IDEOGRAPH-2F83B;Lo;0;L;5406;;;;N;;;;;
+2F83C;CJK COMPATIBILITY IDEOGRAPH-2F83C;Lo;0;L;549E;;;;N;;;;;
+2F83D;CJK COMPATIBILITY IDEOGRAPH-2F83D;Lo;0;L;5438;;;;N;;;;;
+2F83E;CJK COMPATIBILITY IDEOGRAPH-2F83E;Lo;0;L;5448;;;;N;;;;;
+2F83F;CJK COMPATIBILITY IDEOGRAPH-2F83F;Lo;0;L;5468;;;;N;;;;;
+2F840;CJK COMPATIBILITY IDEOGRAPH-2F840;Lo;0;L;54A2;;;;N;;;;;
+2F841;CJK COMPATIBILITY IDEOGRAPH-2F841;Lo;0;L;54F6;;;;N;;;;;
+2F842;CJK COMPATIBILITY IDEOGRAPH-2F842;Lo;0;L;5510;;;;N;;;;;
+2F843;CJK COMPATIBILITY IDEOGRAPH-2F843;Lo;0;L;5553;;;;N;;;;;
+2F844;CJK COMPATIBILITY IDEOGRAPH-2F844;Lo;0;L;5563;;;;N;;;;;
+2F845;CJK COMPATIBILITY IDEOGRAPH-2F845;Lo;0;L;5584;;;;N;;;;;
+2F846;CJK COMPATIBILITY IDEOGRAPH-2F846;Lo;0;L;5584;;;;N;;;;;
+2F847;CJK COMPATIBILITY IDEOGRAPH-2F847;Lo;0;L;5599;;;;N;;;;;
+2F848;CJK COMPATIBILITY IDEOGRAPH-2F848;Lo;0;L;55AB;;;;N;;;;;
+2F849;CJK COMPATIBILITY IDEOGRAPH-2F849;Lo;0;L;55B3;;;;N;;;;;
+2F84A;CJK COMPATIBILITY IDEOGRAPH-2F84A;Lo;0;L;55C2;;;;N;;;;;
+2F84B;CJK COMPATIBILITY IDEOGRAPH-2F84B;Lo;0;L;5716;;;;N;;;;;
+2F84C;CJK COMPATIBILITY IDEOGRAPH-2F84C;Lo;0;L;5606;;;;N;;;;;
+2F84D;CJK COMPATIBILITY IDEOGRAPH-2F84D;Lo;0;L;5717;;;;N;;;;;
+2F84E;CJK COMPATIBILITY IDEOGRAPH-2F84E;Lo;0;L;5651;;;;N;;;;;
+2F84F;CJK COMPATIBILITY IDEOGRAPH-2F84F;Lo;0;L;5674;;;;N;;;;;
+2F850;CJK COMPATIBILITY IDEOGRAPH-2F850;Lo;0;L;5207;;;;N;;;;;
+2F851;CJK COMPATIBILITY IDEOGRAPH-2F851;Lo;0;L;58EE;;;;N;;;;;
+2F852;CJK COMPATIBILITY IDEOGRAPH-2F852;Lo;0;L;57CE;;;;N;;;;;
+2F853;CJK COMPATIBILITY IDEOGRAPH-2F853;Lo;0;L;57F4;;;;N;;;;;
+2F854;CJK COMPATIBILITY IDEOGRAPH-2F854;Lo;0;L;580D;;;;N;;;;;
+2F855;CJK COMPATIBILITY IDEOGRAPH-2F855;Lo;0;L;578B;;;;N;;;;;
+2F856;CJK COMPATIBILITY IDEOGRAPH-2F856;Lo;0;L;5832;;;;N;;;;;
+2F857;CJK COMPATIBILITY IDEOGRAPH-2F857;Lo;0;L;5831;;;;N;;;;;
+2F858;CJK COMPATIBILITY IDEOGRAPH-2F858;Lo;0;L;58AC;;;;N;;;;;
+2F859;CJK COMPATIBILITY IDEOGRAPH-2F859;Lo;0;L;214E4;;;;N;;;;;
+2F85A;CJK COMPATIBILITY IDEOGRAPH-2F85A;Lo;0;L;58F2;;;;N;;;;;
+2F85B;CJK COMPATIBILITY IDEOGRAPH-2F85B;Lo;0;L;58F7;;;;N;;;;;
+2F85C;CJK COMPATIBILITY IDEOGRAPH-2F85C;Lo;0;L;5906;;;;N;;;;;
+2F85D;CJK COMPATIBILITY IDEOGRAPH-2F85D;Lo;0;L;591A;;;;N;;;;;
+2F85E;CJK COMPATIBILITY IDEOGRAPH-2F85E;Lo;0;L;5922;;;;N;;;;;
+2F85F;CJK COMPATIBILITY IDEOGRAPH-2F85F;Lo;0;L;5962;;;;N;;;;;
+2F860;CJK COMPATIBILITY IDEOGRAPH-2F860;Lo;0;L;216A8;;;;N;;;;;
+2F861;CJK COMPATIBILITY IDEOGRAPH-2F861;Lo;0;L;216EA;;;;N;;;;;
+2F862;CJK COMPATIBILITY IDEOGRAPH-2F862;Lo;0;L;59EC;;;;N;;;;;
+2F863;CJK COMPATIBILITY IDEOGRAPH-2F863;Lo;0;L;5A1B;;;;N;;;;;
+2F864;CJK COMPATIBILITY IDEOGRAPH-2F864;Lo;0;L;5A27;;;;N;;;;;
+2F865;CJK COMPATIBILITY IDEOGRAPH-2F865;Lo;0;L;59D8;;;;N;;;;;
+2F866;CJK COMPATIBILITY IDEOGRAPH-2F866;Lo;0;L;5A66;;;;N;;;;;
+2F867;CJK COMPATIBILITY IDEOGRAPH-2F867;Lo;0;L;36EE;;;;N;;;;;
+2F868;CJK COMPATIBILITY IDEOGRAPH-2F868;Lo;0;L;36FC;;;;N;;;;;
+2F869;CJK COMPATIBILITY IDEOGRAPH-2F869;Lo;0;L;5B08;;;;N;;;;;
+2F86A;CJK COMPATIBILITY IDEOGRAPH-2F86A;Lo;0;L;5B3E;;;;N;;;;;
+2F86B;CJK COMPATIBILITY IDEOGRAPH-2F86B;Lo;0;L;5B3E;;;;N;;;;;
+2F86C;CJK COMPATIBILITY IDEOGRAPH-2F86C;Lo;0;L;219C8;;;;N;;;;;
+2F86D;CJK COMPATIBILITY IDEOGRAPH-2F86D;Lo;0;L;5BC3;;;;N;;;;;
+2F86E;CJK COMPATIBILITY IDEOGRAPH-2F86E;Lo;0;L;5BD8;;;;N;;;;;
+2F86F;CJK COMPATIBILITY IDEOGRAPH-2F86F;Lo;0;L;5BE7;;;;N;;;;;
+2F870;CJK COMPATIBILITY IDEOGRAPH-2F870;Lo;0;L;5BF3;;;;N;;;;;
+2F871;CJK COMPATIBILITY IDEOGRAPH-2F871;Lo;0;L;21B18;;;;N;;;;;
+2F872;CJK COMPATIBILITY IDEOGRAPH-2F872;Lo;0;L;5BFF;;;;N;;;;;
+2F873;CJK COMPATIBILITY IDEOGRAPH-2F873;Lo;0;L;5C06;;;;N;;;;;
+2F874;CJK COMPATIBILITY IDEOGRAPH-2F874;Lo;0;L;5F53;;;;N;;;;;
+2F875;CJK COMPATIBILITY IDEOGRAPH-2F875;Lo;0;L;5C22;;;;N;;;;;
+2F876;CJK COMPATIBILITY IDEOGRAPH-2F876;Lo;0;L;3781;;;;N;;;;;
+2F877;CJK COMPATIBILITY IDEOGRAPH-2F877;Lo;0;L;5C60;;;;N;;;;;
+2F878;CJK COMPATIBILITY IDEOGRAPH-2F878;Lo;0;L;5C6E;;;;N;;;;;
+2F879;CJK COMPATIBILITY IDEOGRAPH-2F879;Lo;0;L;5CC0;;;;N;;;;;
+2F87A;CJK COMPATIBILITY IDEOGRAPH-2F87A;Lo;0;L;5C8D;;;;N;;;;;
+2F87B;CJK COMPATIBILITY IDEOGRAPH-2F87B;Lo;0;L;21DE4;;;;N;;;;;
+2F87C;CJK COMPATIBILITY IDEOGRAPH-2F87C;Lo;0;L;5D43;;;;N;;;;;
+2F87D;CJK COMPATIBILITY IDEOGRAPH-2F87D;Lo;0;L;21DE6;;;;N;;;;;
+2F87E;CJK COMPATIBILITY IDEOGRAPH-2F87E;Lo;0;L;5D6E;;;;N;;;;;
+2F87F;CJK COMPATIBILITY IDEOGRAPH-2F87F;Lo;0;L;5D6B;;;;N;;;;;
+2F880;CJK COMPATIBILITY IDEOGRAPH-2F880;Lo;0;L;5D7C;;;;N;;;;;
+2F881;CJK COMPATIBILITY IDEOGRAPH-2F881;Lo;0;L;5DE1;;;;N;;;;;
+2F882;CJK COMPATIBILITY IDEOGRAPH-2F882;Lo;0;L;5DE2;;;;N;;;;;
+2F883;CJK COMPATIBILITY IDEOGRAPH-2F883;Lo;0;L;382F;;;;N;;;;;
+2F884;CJK COMPATIBILITY IDEOGRAPH-2F884;Lo;0;L;5DFD;;;;N;;;;;
+2F885;CJK COMPATIBILITY IDEOGRAPH-2F885;Lo;0;L;5E28;;;;N;;;;;
+2F886;CJK COMPATIBILITY IDEOGRAPH-2F886;Lo;0;L;5E3D;;;;N;;;;;
+2F887;CJK COMPATIBILITY IDEOGRAPH-2F887;Lo;0;L;5E69;;;;N;;;;;
+2F888;CJK COMPATIBILITY IDEOGRAPH-2F888;Lo;0;L;3862;;;;N;;;;;
+2F889;CJK COMPATIBILITY IDEOGRAPH-2F889;Lo;0;L;22183;;;;N;;;;;
+2F88A;CJK COMPATIBILITY IDEOGRAPH-2F88A;Lo;0;L;387C;;;;N;;;;;
+2F88B;CJK COMPATIBILITY IDEOGRAPH-2F88B;Lo;0;L;5EB0;;;;N;;;;;
+2F88C;CJK COMPATIBILITY IDEOGRAPH-2F88C;Lo;0;L;5EB3;;;;N;;;;;
+2F88D;CJK COMPATIBILITY IDEOGRAPH-2F88D;Lo;0;L;5EB6;;;;N;;;;;
+2F88E;CJK COMPATIBILITY IDEOGRAPH-2F88E;Lo;0;L;5ECA;;;;N;;;;;
+2F88F;CJK COMPATIBILITY IDEOGRAPH-2F88F;Lo;0;L;2A392;;;;N;;;;;
+2F890;CJK COMPATIBILITY IDEOGRAPH-2F890;Lo;0;L;5EFE;;;;N;;;;;
+2F891;CJK COMPATIBILITY IDEOGRAPH-2F891;Lo;0;L;22331;;;;N;;;;;
+2F892;CJK COMPATIBILITY IDEOGRAPH-2F892;Lo;0;L;22331;;;;N;;;;;
+2F893;CJK COMPATIBILITY IDEOGRAPH-2F893;Lo;0;L;8201;;;;N;;;;;
+2F894;CJK COMPATIBILITY IDEOGRAPH-2F894;Lo;0;L;5F22;;;;N;;;;;
+2F895;CJK COMPATIBILITY IDEOGRAPH-2F895;Lo;0;L;5F22;;;;N;;;;;
+2F896;CJK COMPATIBILITY IDEOGRAPH-2F896;Lo;0;L;38C7;;;;N;;;;;
+2F897;CJK COMPATIBILITY IDEOGRAPH-2F897;Lo;0;L;232B8;;;;N;;;;;
+2F898;CJK COMPATIBILITY IDEOGRAPH-2F898;Lo;0;L;261DA;;;;N;;;;;
+2F899;CJK COMPATIBILITY IDEOGRAPH-2F899;Lo;0;L;5F62;;;;N;;;;;
+2F89A;CJK COMPATIBILITY IDEOGRAPH-2F89A;Lo;0;L;5F6B;;;;N;;;;;
+2F89B;CJK COMPATIBILITY IDEOGRAPH-2F89B;Lo;0;L;38E3;;;;N;;;;;
+2F89C;CJK COMPATIBILITY IDEOGRAPH-2F89C;Lo;0;L;5F9A;;;;N;;;;;
+2F89D;CJK COMPATIBILITY IDEOGRAPH-2F89D;Lo;0;L;5FCD;;;;N;;;;;
+2F89E;CJK COMPATIBILITY IDEOGRAPH-2F89E;Lo;0;L;5FD7;;;;N;;;;;
+2F89F;CJK COMPATIBILITY IDEOGRAPH-2F89F;Lo;0;L;5FF9;;;;N;;;;;
+2F8A0;CJK COMPATIBILITY IDEOGRAPH-2F8A0;Lo;0;L;6081;;;;N;;;;;
+2F8A1;CJK COMPATIBILITY IDEOGRAPH-2F8A1;Lo;0;L;393A;;;;N;;;;;
+2F8A2;CJK COMPATIBILITY IDEOGRAPH-2F8A2;Lo;0;L;391C;;;;N;;;;;
+2F8A3;CJK COMPATIBILITY IDEOGRAPH-2F8A3;Lo;0;L;6094;;;;N;;;;;
+2F8A4;CJK COMPATIBILITY IDEOGRAPH-2F8A4;Lo;0;L;226D4;;;;N;;;;;
+2F8A5;CJK COMPATIBILITY IDEOGRAPH-2F8A5;Lo;0;L;60C7;;;;N;;;;;
+2F8A6;CJK COMPATIBILITY IDEOGRAPH-2F8A6;Lo;0;L;6148;;;;N;;;;;
+2F8A7;CJK COMPATIBILITY IDEOGRAPH-2F8A7;Lo;0;L;614C;;;;N;;;;;
+2F8A8;CJK COMPATIBILITY IDEOGRAPH-2F8A8;Lo;0;L;614E;;;;N;;;;;
+2F8A9;CJK COMPATIBILITY IDEOGRAPH-2F8A9;Lo;0;L;614C;;;;N;;;;;
+2F8AA;CJK COMPATIBILITY IDEOGRAPH-2F8AA;Lo;0;L;617A;;;;N;;;;;
+2F8AB;CJK COMPATIBILITY IDEOGRAPH-2F8AB;Lo;0;L;618E;;;;N;;;;;
+2F8AC;CJK COMPATIBILITY IDEOGRAPH-2F8AC;Lo;0;L;61B2;;;;N;;;;;
+2F8AD;CJK COMPATIBILITY IDEOGRAPH-2F8AD;Lo;0;L;61A4;;;;N;;;;;
+2F8AE;CJK COMPATIBILITY IDEOGRAPH-2F8AE;Lo;0;L;61AF;;;;N;;;;;
+2F8AF;CJK COMPATIBILITY IDEOGRAPH-2F8AF;Lo;0;L;61DE;;;;N;;;;;
+2F8B0;CJK COMPATIBILITY IDEOGRAPH-2F8B0;Lo;0;L;61F2;;;;N;;;;;
+2F8B1;CJK COMPATIBILITY IDEOGRAPH-2F8B1;Lo;0;L;61F6;;;;N;;;;;
+2F8B2;CJK COMPATIBILITY IDEOGRAPH-2F8B2;Lo;0;L;6210;;;;N;;;;;
+2F8B3;CJK COMPATIBILITY IDEOGRAPH-2F8B3;Lo;0;L;621B;;;;N;;;;;
+2F8B4;CJK COMPATIBILITY IDEOGRAPH-2F8B4;Lo;0;L;625D;;;;N;;;;;
+2F8B5;CJK COMPATIBILITY IDEOGRAPH-2F8B5;Lo;0;L;62B1;;;;N;;;;;
+2F8B6;CJK COMPATIBILITY IDEOGRAPH-2F8B6;Lo;0;L;62D4;;;;N;;;;;
+2F8B7;CJK COMPATIBILITY IDEOGRAPH-2F8B7;Lo;0;L;6350;;;;N;;;;;
+2F8B8;CJK COMPATIBILITY IDEOGRAPH-2F8B8;Lo;0;L;22B0C;;;;N;;;;;
+2F8B9;CJK COMPATIBILITY IDEOGRAPH-2F8B9;Lo;0;L;633D;;;;N;;;;;
+2F8BA;CJK COMPATIBILITY IDEOGRAPH-2F8BA;Lo;0;L;62FC;;;;N;;;;;
+2F8BB;CJK COMPATIBILITY IDEOGRAPH-2F8BB;Lo;0;L;6368;;;;N;;;;;
+2F8BC;CJK COMPATIBILITY IDEOGRAPH-2F8BC;Lo;0;L;6383;;;;N;;;;;
+2F8BD;CJK COMPATIBILITY IDEOGRAPH-2F8BD;Lo;0;L;63E4;;;;N;;;;;
+2F8BE;CJK COMPATIBILITY IDEOGRAPH-2F8BE;Lo;0;L;22BF1;;;;N;;;;;
+2F8BF;CJK COMPATIBILITY IDEOGRAPH-2F8BF;Lo;0;L;6422;;;;N;;;;;
+2F8C0;CJK COMPATIBILITY IDEOGRAPH-2F8C0;Lo;0;L;63C5;;;;N;;;;;
+2F8C1;CJK COMPATIBILITY IDEOGRAPH-2F8C1;Lo;0;L;63A9;;;;N;;;;;
+2F8C2;CJK COMPATIBILITY IDEOGRAPH-2F8C2;Lo;0;L;3A2E;;;;N;;;;;
+2F8C3;CJK COMPATIBILITY IDEOGRAPH-2F8C3;Lo;0;L;6469;;;;N;;;;;
+2F8C4;CJK COMPATIBILITY IDEOGRAPH-2F8C4;Lo;0;L;647E;;;;N;;;;;
+2F8C5;CJK COMPATIBILITY IDEOGRAPH-2F8C5;Lo;0;L;649D;;;;N;;;;;
+2F8C6;CJK COMPATIBILITY IDEOGRAPH-2F8C6;Lo;0;L;6477;;;;N;;;;;
+2F8C7;CJK COMPATIBILITY IDEOGRAPH-2F8C7;Lo;0;L;3A6C;;;;N;;;;;
+2F8C8;CJK COMPATIBILITY IDEOGRAPH-2F8C8;Lo;0;L;654F;;;;N;;;;;
+2F8C9;CJK COMPATIBILITY IDEOGRAPH-2F8C9;Lo;0;L;656C;;;;N;;;;;
+2F8CA;CJK COMPATIBILITY IDEOGRAPH-2F8CA;Lo;0;L;2300A;;;;N;;;;;
+2F8CB;CJK COMPATIBILITY IDEOGRAPH-2F8CB;Lo;0;L;65E3;;;;N;;;;;
+2F8CC;CJK COMPATIBILITY IDEOGRAPH-2F8CC;Lo;0;L;66F8;;;;N;;;;;
+2F8CD;CJK COMPATIBILITY IDEOGRAPH-2F8CD;Lo;0;L;6649;;;;N;;;;;
+2F8CE;CJK COMPATIBILITY IDEOGRAPH-2F8CE;Lo;0;L;3B19;;;;N;;;;;
+2F8CF;CJK COMPATIBILITY IDEOGRAPH-2F8CF;Lo;0;L;6691;;;;N;;;;;
+2F8D0;CJK COMPATIBILITY IDEOGRAPH-2F8D0;Lo;0;L;3B08;;;;N;;;;;
+2F8D1;CJK COMPATIBILITY IDEOGRAPH-2F8D1;Lo;0;L;3AE4;;;;N;;;;;
+2F8D2;CJK COMPATIBILITY IDEOGRAPH-2F8D2;Lo;0;L;5192;;;;N;;;;;
+2F8D3;CJK COMPATIBILITY IDEOGRAPH-2F8D3;Lo;0;L;5195;;;;N;;;;;
+2F8D4;CJK COMPATIBILITY IDEOGRAPH-2F8D4;Lo;0;L;6700;;;;N;;;;;
+2F8D5;CJK COMPATIBILITY IDEOGRAPH-2F8D5;Lo;0;L;669C;;;;N;;;;;
+2F8D6;CJK COMPATIBILITY IDEOGRAPH-2F8D6;Lo;0;L;80AD;;;;N;;;;;
+2F8D7;CJK COMPATIBILITY IDEOGRAPH-2F8D7;Lo;0;L;43D9;;;;N;;;;;
+2F8D8;CJK COMPATIBILITY IDEOGRAPH-2F8D8;Lo;0;L;6717;;;;N;;;;;
+2F8D9;CJK COMPATIBILITY IDEOGRAPH-2F8D9;Lo;0;L;671B;;;;N;;;;;
+2F8DA;CJK COMPATIBILITY IDEOGRAPH-2F8DA;Lo;0;L;6721;;;;N;;;;;
+2F8DB;CJK COMPATIBILITY IDEOGRAPH-2F8DB;Lo;0;L;675E;;;;N;;;;;
+2F8DC;CJK COMPATIBILITY IDEOGRAPH-2F8DC;Lo;0;L;6753;;;;N;;;;;
+2F8DD;CJK COMPATIBILITY IDEOGRAPH-2F8DD;Lo;0;L;233C3;;;;N;;;;;
+2F8DE;CJK COMPATIBILITY IDEOGRAPH-2F8DE;Lo;0;L;3B49;;;;N;;;;;
+2F8DF;CJK COMPATIBILITY IDEOGRAPH-2F8DF;Lo;0;L;67FA;;;;N;;;;;
+2F8E0;CJK COMPATIBILITY IDEOGRAPH-2F8E0;Lo;0;L;6785;;;;N;;;;;
+2F8E1;CJK COMPATIBILITY IDEOGRAPH-2F8E1;Lo;0;L;6852;;;;N;;;;;
+2F8E2;CJK COMPATIBILITY IDEOGRAPH-2F8E2;Lo;0;L;6885;;;;N;;;;;
+2F8E3;CJK COMPATIBILITY IDEOGRAPH-2F8E3;Lo;0;L;2346D;;;;N;;;;;
+2F8E4;CJK COMPATIBILITY IDEOGRAPH-2F8E4;Lo;0;L;688E;;;;N;;;;;
+2F8E5;CJK COMPATIBILITY IDEOGRAPH-2F8E5;Lo;0;L;681F;;;;N;;;;;
+2F8E6;CJK COMPATIBILITY IDEOGRAPH-2F8E6;Lo;0;L;6914;;;;N;;;;;
+2F8E7;CJK COMPATIBILITY IDEOGRAPH-2F8E7;Lo;0;L;3B9D;;;;N;;;;;
+2F8E8;CJK COMPATIBILITY IDEOGRAPH-2F8E8;Lo;0;L;6942;;;;N;;;;;
+2F8E9;CJK COMPATIBILITY IDEOGRAPH-2F8E9;Lo;0;L;69A3;;;;N;;;;;
+2F8EA;CJK COMPATIBILITY IDEOGRAPH-2F8EA;Lo;0;L;69EA;;;;N;;;;;
+2F8EB;CJK COMPATIBILITY IDEOGRAPH-2F8EB;Lo;0;L;6AA8;;;;N;;;;;
+2F8EC;CJK COMPATIBILITY IDEOGRAPH-2F8EC;Lo;0;L;236A3;;;;N;;;;;
+2F8ED;CJK COMPATIBILITY IDEOGRAPH-2F8ED;Lo;0;L;6ADB;;;;N;;;;;
+2F8EE;CJK COMPATIBILITY IDEOGRAPH-2F8EE;Lo;0;L;3C18;;;;N;;;;;
+2F8EF;CJK COMPATIBILITY IDEOGRAPH-2F8EF;Lo;0;L;6B21;;;;N;;;;;
+2F8F0;CJK COMPATIBILITY IDEOGRAPH-2F8F0;Lo;0;L;238A7;;;;N;;;;;
+2F8F1;CJK COMPATIBILITY IDEOGRAPH-2F8F1;Lo;0;L;6B54;;;;N;;;;;
+2F8F2;CJK COMPATIBILITY IDEOGRAPH-2F8F2;Lo;0;L;3C4E;;;;N;;;;;
+2F8F3;CJK COMPATIBILITY IDEOGRAPH-2F8F3;Lo;0;L;6B72;;;;N;;;;;
+2F8F4;CJK COMPATIBILITY IDEOGRAPH-2F8F4;Lo;0;L;6B9F;;;;N;;;;;
+2F8F5;CJK COMPATIBILITY IDEOGRAPH-2F8F5;Lo;0;L;6BBA;;;;N;;;;;
+2F8F6;CJK COMPATIBILITY IDEOGRAPH-2F8F6;Lo;0;L;6BBB;;;;N;;;;;
+2F8F7;CJK COMPATIBILITY IDEOGRAPH-2F8F7;Lo;0;L;23A8D;;;;N;;;;;
+2F8F8;CJK COMPATIBILITY IDEOGRAPH-2F8F8;Lo;0;L;21D0B;;;;N;;;;;
+2F8F9;CJK COMPATIBILITY IDEOGRAPH-2F8F9;Lo;0;L;23AFA;;;;N;;;;;
+2F8FA;CJK COMPATIBILITY IDEOGRAPH-2F8FA;Lo;0;L;6C4E;;;;N;;;;;
+2F8FB;CJK COMPATIBILITY IDEOGRAPH-2F8FB;Lo;0;L;23CBC;;;;N;;;;;
+2F8FC;CJK COMPATIBILITY IDEOGRAPH-2F8FC;Lo;0;L;6CBF;;;;N;;;;;
+2F8FD;CJK COMPATIBILITY IDEOGRAPH-2F8FD;Lo;0;L;6CCD;;;;N;;;;;
+2F8FE;CJK COMPATIBILITY IDEOGRAPH-2F8FE;Lo;0;L;6C67;;;;N;;;;;
+2F8FF;CJK COMPATIBILITY IDEOGRAPH-2F8FF;Lo;0;L;6D16;;;;N;;;;;
+2F900;CJK COMPATIBILITY IDEOGRAPH-2F900;Lo;0;L;6D3E;;;;N;;;;;
+2F901;CJK COMPATIBILITY IDEOGRAPH-2F901;Lo;0;L;6D77;;;;N;;;;;
+2F902;CJK COMPATIBILITY IDEOGRAPH-2F902;Lo;0;L;6D41;;;;N;;;;;
+2F903;CJK COMPATIBILITY IDEOGRAPH-2F903;Lo;0;L;6D69;;;;N;;;;;
+2F904;CJK COMPATIBILITY IDEOGRAPH-2F904;Lo;0;L;6D78;;;;N;;;;;
+2F905;CJK COMPATIBILITY IDEOGRAPH-2F905;Lo;0;L;6D85;;;;N;;;;;
+2F906;CJK COMPATIBILITY IDEOGRAPH-2F906;Lo;0;L;23D1E;;;;N;;;;;
+2F907;CJK COMPATIBILITY IDEOGRAPH-2F907;Lo;0;L;6D34;;;;N;;;;;
+2F908;CJK COMPATIBILITY IDEOGRAPH-2F908;Lo;0;L;6E2F;;;;N;;;;;
+2F909;CJK COMPATIBILITY IDEOGRAPH-2F909;Lo;0;L;6E6E;;;;N;;;;;
+2F90A;CJK COMPATIBILITY IDEOGRAPH-2F90A;Lo;0;L;3D33;;;;N;;;;;
+2F90B;CJK COMPATIBILITY IDEOGRAPH-2F90B;Lo;0;L;6ECB;;;;N;;;;;
+2F90C;CJK COMPATIBILITY IDEOGRAPH-2F90C;Lo;0;L;6EC7;;;;N;;;;;
+2F90D;CJK COMPATIBILITY IDEOGRAPH-2F90D;Lo;0;L;23ED1;;;;N;;;;;
+2F90E;CJK COMPATIBILITY IDEOGRAPH-2F90E;Lo;0;L;6DF9;;;;N;;;;;
+2F90F;CJK COMPATIBILITY IDEOGRAPH-2F90F;Lo;0;L;6F6E;;;;N;;;;;
+2F910;CJK COMPATIBILITY IDEOGRAPH-2F910;Lo;0;L;23F5E;;;;N;;;;;
+2F911;CJK COMPATIBILITY IDEOGRAPH-2F911;Lo;0;L;23F8E;;;;N;;;;;
+2F912;CJK COMPATIBILITY IDEOGRAPH-2F912;Lo;0;L;6FC6;;;;N;;;;;
+2F913;CJK COMPATIBILITY IDEOGRAPH-2F913;Lo;0;L;7039;;;;N;;;;;
+2F914;CJK COMPATIBILITY IDEOGRAPH-2F914;Lo;0;L;701E;;;;N;;;;;
+2F915;CJK COMPATIBILITY IDEOGRAPH-2F915;Lo;0;L;701B;;;;N;;;;;
+2F916;CJK COMPATIBILITY IDEOGRAPH-2F916;Lo;0;L;3D96;;;;N;;;;;
+2F917;CJK COMPATIBILITY IDEOGRAPH-2F917;Lo;0;L;704A;;;;N;;;;;
+2F918;CJK COMPATIBILITY IDEOGRAPH-2F918;Lo;0;L;707D;;;;N;;;;;
+2F919;CJK COMPATIBILITY IDEOGRAPH-2F919;Lo;0;L;7077;;;;N;;;;;
+2F91A;CJK COMPATIBILITY IDEOGRAPH-2F91A;Lo;0;L;70AD;;;;N;;;;;
+2F91B;CJK COMPATIBILITY IDEOGRAPH-2F91B;Lo;0;L;20525;;;;N;;;;;
+2F91C;CJK COMPATIBILITY IDEOGRAPH-2F91C;Lo;0;L;7145;;;;N;;;;;
+2F91D;CJK COMPATIBILITY IDEOGRAPH-2F91D;Lo;0;L;24263;;;;N;;;;;
+2F91E;CJK COMPATIBILITY IDEOGRAPH-2F91E;Lo;0;L;719C;;;;N;;;;;
+2F91F;CJK COMPATIBILITY IDEOGRAPH-2F91F;Lo;0;L;243AB;;;;N;;;;;
+2F920;CJK COMPATIBILITY IDEOGRAPH-2F920;Lo;0;L;7228;;;;N;;;;;
+2F921;CJK COMPATIBILITY IDEOGRAPH-2F921;Lo;0;L;7235;;;;N;;;;;
+2F922;CJK COMPATIBILITY IDEOGRAPH-2F922;Lo;0;L;7250;;;;N;;;;;
+2F923;CJK COMPATIBILITY IDEOGRAPH-2F923;Lo;0;L;24608;;;;N;;;;;
+2F924;CJK COMPATIBILITY IDEOGRAPH-2F924;Lo;0;L;7280;;;;N;;;;;
+2F925;CJK COMPATIBILITY IDEOGRAPH-2F925;Lo;0;L;7295;;;;N;;;;;
+2F926;CJK COMPATIBILITY IDEOGRAPH-2F926;Lo;0;L;24735;;;;N;;;;;
+2F927;CJK COMPATIBILITY IDEOGRAPH-2F927;Lo;0;L;24814;;;;N;;;;;
+2F928;CJK COMPATIBILITY IDEOGRAPH-2F928;Lo;0;L;737A;;;;N;;;;;
+2F929;CJK COMPATIBILITY IDEOGRAPH-2F929;Lo;0;L;738B;;;;N;;;;;
+2F92A;CJK COMPATIBILITY IDEOGRAPH-2F92A;Lo;0;L;3EAC;;;;N;;;;;
+2F92B;CJK COMPATIBILITY IDEOGRAPH-2F92B;Lo;0;L;73A5;;;;N;;;;;
+2F92C;CJK COMPATIBILITY IDEOGRAPH-2F92C;Lo;0;L;3EB8;;;;N;;;;;
+2F92D;CJK COMPATIBILITY IDEOGRAPH-2F92D;Lo;0;L;3EB8;;;;N;;;;;
+2F92E;CJK COMPATIBILITY IDEOGRAPH-2F92E;Lo;0;L;7447;;;;N;;;;;
+2F92F;CJK COMPATIBILITY IDEOGRAPH-2F92F;Lo;0;L;745C;;;;N;;;;;
+2F930;CJK COMPATIBILITY IDEOGRAPH-2F930;Lo;0;L;7471;;;;N;;;;;
+2F931;CJK COMPATIBILITY IDEOGRAPH-2F931;Lo;0;L;7485;;;;N;;;;;
+2F932;CJK COMPATIBILITY IDEOGRAPH-2F932;Lo;0;L;74CA;;;;N;;;;;
+2F933;CJK COMPATIBILITY IDEOGRAPH-2F933;Lo;0;L;3F1B;;;;N;;;;;
+2F934;CJK COMPATIBILITY IDEOGRAPH-2F934;Lo;0;L;7524;;;;N;;;;;
+2F935;CJK COMPATIBILITY IDEOGRAPH-2F935;Lo;0;L;24C36;;;;N;;;;;
+2F936;CJK COMPATIBILITY IDEOGRAPH-2F936;Lo;0;L;753E;;;;N;;;;;
+2F937;CJK COMPATIBILITY IDEOGRAPH-2F937;Lo;0;L;24C92;;;;N;;;;;
+2F938;CJK COMPATIBILITY IDEOGRAPH-2F938;Lo;0;L;7570;;;;N;;;;;
+2F939;CJK COMPATIBILITY IDEOGRAPH-2F939;Lo;0;L;2219F;;;;N;;;;;
+2F93A;CJK COMPATIBILITY IDEOGRAPH-2F93A;Lo;0;L;7610;;;;N;;;;;
+2F93B;CJK COMPATIBILITY IDEOGRAPH-2F93B;Lo;0;L;24FA1;;;;N;;;;;
+2F93C;CJK COMPATIBILITY IDEOGRAPH-2F93C;Lo;0;L;24FB8;;;;N;;;;;
+2F93D;CJK COMPATIBILITY IDEOGRAPH-2F93D;Lo;0;L;25044;;;;N;;;;;
+2F93E;CJK COMPATIBILITY IDEOGRAPH-2F93E;Lo;0;L;3FFC;;;;N;;;;;
+2F93F;CJK COMPATIBILITY IDEOGRAPH-2F93F;Lo;0;L;4008;;;;N;;;;;
+2F940;CJK COMPATIBILITY IDEOGRAPH-2F940;Lo;0;L;76F4;;;;N;;;;;
+2F941;CJK COMPATIBILITY IDEOGRAPH-2F941;Lo;0;L;250F3;;;;N;;;;;
+2F942;CJK COMPATIBILITY IDEOGRAPH-2F942;Lo;0;L;250F2;;;;N;;;;;
+2F943;CJK COMPATIBILITY IDEOGRAPH-2F943;Lo;0;L;25119;;;;N;;;;;
+2F944;CJK COMPATIBILITY IDEOGRAPH-2F944;Lo;0;L;25133;;;;N;;;;;
+2F945;CJK COMPATIBILITY IDEOGRAPH-2F945;Lo;0;L;771E;;;;N;;;;;
+2F946;CJK COMPATIBILITY IDEOGRAPH-2F946;Lo;0;L;771F;;;;N;;;;;
+2F947;CJK COMPATIBILITY IDEOGRAPH-2F947;Lo;0;L;771F;;;;N;;;;;
+2F948;CJK COMPATIBILITY IDEOGRAPH-2F948;Lo;0;L;774A;;;;N;;;;;
+2F949;CJK COMPATIBILITY IDEOGRAPH-2F949;Lo;0;L;4039;;;;N;;;;;
+2F94A;CJK COMPATIBILITY IDEOGRAPH-2F94A;Lo;0;L;778B;;;;N;;;;;
+2F94B;CJK COMPATIBILITY IDEOGRAPH-2F94B;Lo;0;L;4046;;;;N;;;;;
+2F94C;CJK COMPATIBILITY IDEOGRAPH-2F94C;Lo;0;L;4096;;;;N;;;;;
+2F94D;CJK COMPATIBILITY IDEOGRAPH-2F94D;Lo;0;L;2541D;;;;N;;;;;
+2F94E;CJK COMPATIBILITY IDEOGRAPH-2F94E;Lo;0;L;784E;;;;N;;;;;
+2F94F;CJK COMPATIBILITY IDEOGRAPH-2F94F;Lo;0;L;788C;;;;N;;;;;
+2F950;CJK COMPATIBILITY IDEOGRAPH-2F950;Lo;0;L;78CC;;;;N;;;;;
+2F951;CJK COMPATIBILITY IDEOGRAPH-2F951;Lo;0;L;40E3;;;;N;;;;;
+2F952;CJK COMPATIBILITY IDEOGRAPH-2F952;Lo;0;L;25626;;;;N;;;;;
+2F953;CJK COMPATIBILITY IDEOGRAPH-2F953;Lo;0;L;7956;;;;N;;;;;
+2F954;CJK COMPATIBILITY IDEOGRAPH-2F954;Lo;0;L;2569A;;;;N;;;;;
+2F955;CJK COMPATIBILITY IDEOGRAPH-2F955;Lo;0;L;256C5;;;;N;;;;;
+2F956;CJK COMPATIBILITY IDEOGRAPH-2F956;Lo;0;L;798F;;;;N;;;;;
+2F957;CJK COMPATIBILITY IDEOGRAPH-2F957;Lo;0;L;79EB;;;;N;;;;;
+2F958;CJK COMPATIBILITY IDEOGRAPH-2F958;Lo;0;L;412F;;;;N;;;;;
+2F959;CJK COMPATIBILITY IDEOGRAPH-2F959;Lo;0;L;7A40;;;;N;;;;;
+2F95A;CJK COMPATIBILITY IDEOGRAPH-2F95A;Lo;0;L;7A4A;;;;N;;;;;
+2F95B;CJK COMPATIBILITY IDEOGRAPH-2F95B;Lo;0;L;7A4F;;;;N;;;;;
+2F95C;CJK COMPATIBILITY IDEOGRAPH-2F95C;Lo;0;L;2597C;;;;N;;;;;
+2F95D;CJK COMPATIBILITY IDEOGRAPH-2F95D;Lo;0;L;25AA7;;;;N;;;;;
+2F95E;CJK COMPATIBILITY IDEOGRAPH-2F95E;Lo;0;L;25AA7;;;;N;;;;;
+2F95F;CJK COMPATIBILITY IDEOGRAPH-2F95F;Lo;0;L;7AEE;;;;N;;;;;
+2F960;CJK COMPATIBILITY IDEOGRAPH-2F960;Lo;0;L;4202;;;;N;;;;;
+2F961;CJK COMPATIBILITY IDEOGRAPH-2F961;Lo;0;L;25BAB;;;;N;;;;;
+2F962;CJK COMPATIBILITY IDEOGRAPH-2F962;Lo;0;L;7BC6;;;;N;;;;;
+2F963;CJK COMPATIBILITY IDEOGRAPH-2F963;Lo;0;L;7BC9;;;;N;;;;;
+2F964;CJK COMPATIBILITY IDEOGRAPH-2F964;Lo;0;L;4227;;;;N;;;;;
+2F965;CJK COMPATIBILITY IDEOGRAPH-2F965;Lo;0;L;25C80;;;;N;;;;;
+2F966;CJK COMPATIBILITY IDEOGRAPH-2F966;Lo;0;L;7CD2;;;;N;;;;;
+2F967;CJK COMPATIBILITY IDEOGRAPH-2F967;Lo;0;L;42A0;;;;N;;;;;
+2F968;CJK COMPATIBILITY IDEOGRAPH-2F968;Lo;0;L;7CE8;;;;N;;;;;
+2F969;CJK COMPATIBILITY IDEOGRAPH-2F969;Lo;0;L;7CE3;;;;N;;;;;
+2F96A;CJK COMPATIBILITY IDEOGRAPH-2F96A;Lo;0;L;7D00;;;;N;;;;;
+2F96B;CJK COMPATIBILITY IDEOGRAPH-2F96B;Lo;0;L;25F86;;;;N;;;;;
+2F96C;CJK COMPATIBILITY IDEOGRAPH-2F96C;Lo;0;L;7D63;;;;N;;;;;
+2F96D;CJK COMPATIBILITY IDEOGRAPH-2F96D;Lo;0;L;4301;;;;N;;;;;
+2F96E;CJK COMPATIBILITY IDEOGRAPH-2F96E;Lo;0;L;7DC7;;;;N;;;;;
+2F96F;CJK COMPATIBILITY IDEOGRAPH-2F96F;Lo;0;L;7E02;;;;N;;;;;
+2F970;CJK COMPATIBILITY IDEOGRAPH-2F970;Lo;0;L;7E45;;;;N;;;;;
+2F971;CJK COMPATIBILITY IDEOGRAPH-2F971;Lo;0;L;4334;;;;N;;;;;
+2F972;CJK COMPATIBILITY IDEOGRAPH-2F972;Lo;0;L;26228;;;;N;;;;;
+2F973;CJK COMPATIBILITY IDEOGRAPH-2F973;Lo;0;L;26247;;;;N;;;;;
+2F974;CJK COMPATIBILITY IDEOGRAPH-2F974;Lo;0;L;4359;;;;N;;;;;
+2F975;CJK COMPATIBILITY IDEOGRAPH-2F975;Lo;0;L;262D9;;;;N;;;;;
+2F976;CJK COMPATIBILITY IDEOGRAPH-2F976;Lo;0;L;7F7A;;;;N;;;;;
+2F977;CJK COMPATIBILITY IDEOGRAPH-2F977;Lo;0;L;2633E;;;;N;;;;;
+2F978;CJK COMPATIBILITY IDEOGRAPH-2F978;Lo;0;L;7F95;;;;N;;;;;
+2F979;CJK COMPATIBILITY IDEOGRAPH-2F979;Lo;0;L;7FFA;;;;N;;;;;
+2F97A;CJK COMPATIBILITY IDEOGRAPH-2F97A;Lo;0;L;8005;;;;N;;;;;
+2F97B;CJK COMPATIBILITY IDEOGRAPH-2F97B;Lo;0;L;264DA;;;;N;;;;;
+2F97C;CJK COMPATIBILITY IDEOGRAPH-2F97C;Lo;0;L;26523;;;;N;;;;;
+2F97D;CJK COMPATIBILITY IDEOGRAPH-2F97D;Lo;0;L;8060;;;;N;;;;;
+2F97E;CJK COMPATIBILITY IDEOGRAPH-2F97E;Lo;0;L;265A8;;;;N;;;;;
+2F97F;CJK COMPATIBILITY IDEOGRAPH-2F97F;Lo;0;L;8070;;;;N;;;;;
+2F980;CJK COMPATIBILITY IDEOGRAPH-2F980;Lo;0;L;2335F;;;;N;;;;;
+2F981;CJK COMPATIBILITY IDEOGRAPH-2F981;Lo;0;L;43D5;;;;N;;;;;
+2F982;CJK COMPATIBILITY IDEOGRAPH-2F982;Lo;0;L;80B2;;;;N;;;;;
+2F983;CJK COMPATIBILITY IDEOGRAPH-2F983;Lo;0;L;8103;;;;N;;;;;
+2F984;CJK COMPATIBILITY IDEOGRAPH-2F984;Lo;0;L;440B;;;;N;;;;;
+2F985;CJK COMPATIBILITY IDEOGRAPH-2F985;Lo;0;L;813E;;;;N;;;;;
+2F986;CJK COMPATIBILITY IDEOGRAPH-2F986;Lo;0;L;5AB5;;;;N;;;;;
+2F987;CJK COMPATIBILITY IDEOGRAPH-2F987;Lo;0;L;267A7;;;;N;;;;;
+2F988;CJK COMPATIBILITY IDEOGRAPH-2F988;Lo;0;L;267B5;;;;N;;;;;
+2F989;CJK COMPATIBILITY IDEOGRAPH-2F989;Lo;0;L;23393;;;;N;;;;;
+2F98A;CJK COMPATIBILITY IDEOGRAPH-2F98A;Lo;0;L;2339C;;;;N;;;;;
+2F98B;CJK COMPATIBILITY IDEOGRAPH-2F98B;Lo;0;L;8201;;;;N;;;;;
+2F98C;CJK COMPATIBILITY IDEOGRAPH-2F98C;Lo;0;L;8204;;;;N;;;;;
+2F98D;CJK COMPATIBILITY IDEOGRAPH-2F98D;Lo;0;L;8F9E;;;;N;;;;;
+2F98E;CJK COMPATIBILITY IDEOGRAPH-2F98E;Lo;0;L;446B;;;;N;;;;;
+2F98F;CJK COMPATIBILITY IDEOGRAPH-2F98F;Lo;0;L;8291;;;;N;;;;;
+2F990;CJK COMPATIBILITY IDEOGRAPH-2F990;Lo;0;L;828B;;;;N;;;;;
+2F991;CJK COMPATIBILITY IDEOGRAPH-2F991;Lo;0;L;829D;;;;N;;;;;
+2F992;CJK COMPATIBILITY IDEOGRAPH-2F992;Lo;0;L;52B3;;;;N;;;;;
+2F993;CJK COMPATIBILITY IDEOGRAPH-2F993;Lo;0;L;82B1;;;;N;;;;;
+2F994;CJK COMPATIBILITY IDEOGRAPH-2F994;Lo;0;L;82B3;;;;N;;;;;
+2F995;CJK COMPATIBILITY IDEOGRAPH-2F995;Lo;0;L;82BD;;;;N;;;;;
+2F996;CJK COMPATIBILITY IDEOGRAPH-2F996;Lo;0;L;82E6;;;;N;;;;;
+2F997;CJK COMPATIBILITY IDEOGRAPH-2F997;Lo;0;L;26B3C;;;;N;;;;;
+2F998;CJK COMPATIBILITY IDEOGRAPH-2F998;Lo;0;L;82E5;;;;N;;;;;
+2F999;CJK COMPATIBILITY IDEOGRAPH-2F999;Lo;0;L;831D;;;;N;;;;;
+2F99A;CJK COMPATIBILITY IDEOGRAPH-2F99A;Lo;0;L;8363;;;;N;;;;;
+2F99B;CJK COMPATIBILITY IDEOGRAPH-2F99B;Lo;0;L;83AD;;;;N;;;;;
+2F99C;CJK COMPATIBILITY IDEOGRAPH-2F99C;Lo;0;L;8323;;;;N;;;;;
+2F99D;CJK COMPATIBILITY IDEOGRAPH-2F99D;Lo;0;L;83BD;;;;N;;;;;
+2F99E;CJK COMPATIBILITY IDEOGRAPH-2F99E;Lo;0;L;83E7;;;;N;;;;;
+2F99F;CJK COMPATIBILITY IDEOGRAPH-2F99F;Lo;0;L;8457;;;;N;;;;;
+2F9A0;CJK COMPATIBILITY IDEOGRAPH-2F9A0;Lo;0;L;8353;;;;N;;;;;
+2F9A1;CJK COMPATIBILITY IDEOGRAPH-2F9A1;Lo;0;L;83CA;;;;N;;;;;
+2F9A2;CJK COMPATIBILITY IDEOGRAPH-2F9A2;Lo;0;L;83CC;;;;N;;;;;
+2F9A3;CJK COMPATIBILITY IDEOGRAPH-2F9A3;Lo;0;L;83DC;;;;N;;;;;
+2F9A4;CJK COMPATIBILITY IDEOGRAPH-2F9A4;Lo;0;L;26C36;;;;N;;;;;
+2F9A5;CJK COMPATIBILITY IDEOGRAPH-2F9A5;Lo;0;L;26D6B;;;;N;;;;;
+2F9A6;CJK COMPATIBILITY IDEOGRAPH-2F9A6;Lo;0;L;26CD5;;;;N;;;;;
+2F9A7;CJK COMPATIBILITY IDEOGRAPH-2F9A7;Lo;0;L;452B;;;;N;;;;;
+2F9A8;CJK COMPATIBILITY IDEOGRAPH-2F9A8;Lo;0;L;84F1;;;;N;;;;;
+2F9A9;CJK COMPATIBILITY IDEOGRAPH-2F9A9;Lo;0;L;84F3;;;;N;;;;;
+2F9AA;CJK COMPATIBILITY IDEOGRAPH-2F9AA;Lo;0;L;8516;;;;N;;;;;
+2F9AB;CJK COMPATIBILITY IDEOGRAPH-2F9AB;Lo;0;L;273CA;;;;N;;;;;
+2F9AC;CJK COMPATIBILITY IDEOGRAPH-2F9AC;Lo;0;L;8564;;;;N;;;;;
+2F9AD;CJK COMPATIBILITY IDEOGRAPH-2F9AD;Lo;0;L;26F2C;;;;N;;;;;
+2F9AE;CJK COMPATIBILITY IDEOGRAPH-2F9AE;Lo;0;L;455D;;;;N;;;;;
+2F9AF;CJK COMPATIBILITY IDEOGRAPH-2F9AF;Lo;0;L;4561;;;;N;;;;;
+2F9B0;CJK COMPATIBILITY IDEOGRAPH-2F9B0;Lo;0;L;26FB1;;;;N;;;;;
+2F9B1;CJK COMPATIBILITY IDEOGRAPH-2F9B1;Lo;0;L;270D2;;;;N;;;;;
+2F9B2;CJK COMPATIBILITY IDEOGRAPH-2F9B2;Lo;0;L;456B;;;;N;;;;;
+2F9B3;CJK COMPATIBILITY IDEOGRAPH-2F9B3;Lo;0;L;8650;;;;N;;;;;
+2F9B4;CJK COMPATIBILITY IDEOGRAPH-2F9B4;Lo;0;L;865C;;;;N;;;;;
+2F9B5;CJK COMPATIBILITY IDEOGRAPH-2F9B5;Lo;0;L;8667;;;;N;;;;;
+2F9B6;CJK COMPATIBILITY IDEOGRAPH-2F9B6;Lo;0;L;8669;;;;N;;;;;
+2F9B7;CJK COMPATIBILITY IDEOGRAPH-2F9B7;Lo;0;L;86A9;;;;N;;;;;
+2F9B8;CJK COMPATIBILITY IDEOGRAPH-2F9B8;Lo;0;L;8688;;;;N;;;;;
+2F9B9;CJK COMPATIBILITY IDEOGRAPH-2F9B9;Lo;0;L;870E;;;;N;;;;;
+2F9BA;CJK COMPATIBILITY IDEOGRAPH-2F9BA;Lo;0;L;86E2;;;;N;;;;;
+2F9BB;CJK COMPATIBILITY IDEOGRAPH-2F9BB;Lo;0;L;8779;;;;N;;;;;
+2F9BC;CJK COMPATIBILITY IDEOGRAPH-2F9BC;Lo;0;L;8728;;;;N;;;;;
+2F9BD;CJK COMPATIBILITY IDEOGRAPH-2F9BD;Lo;0;L;876B;;;;N;;;;;
+2F9BE;CJK COMPATIBILITY IDEOGRAPH-2F9BE;Lo;0;L;8786;;;;N;;;;;
+2F9BF;CJK COMPATIBILITY IDEOGRAPH-2F9BF;Lo;0;L;45D7;;;;N;;;;;
+2F9C0;CJK COMPATIBILITY IDEOGRAPH-2F9C0;Lo;0;L;87E1;;;;N;;;;;
+2F9C1;CJK COMPATIBILITY IDEOGRAPH-2F9C1;Lo;0;L;8801;;;;N;;;;;
+2F9C2;CJK COMPATIBILITY IDEOGRAPH-2F9C2;Lo;0;L;45F9;;;;N;;;;;
+2F9C3;CJK COMPATIBILITY IDEOGRAPH-2F9C3;Lo;0;L;8860;;;;N;;;;;
+2F9C4;CJK COMPATIBILITY IDEOGRAPH-2F9C4;Lo;0;L;8863;;;;N;;;;;
+2F9C5;CJK COMPATIBILITY IDEOGRAPH-2F9C5;Lo;0;L;27667;;;;N;;;;;
+2F9C6;CJK COMPATIBILITY IDEOGRAPH-2F9C6;Lo;0;L;88D7;;;;N;;;;;
+2F9C7;CJK COMPATIBILITY IDEOGRAPH-2F9C7;Lo;0;L;88DE;;;;N;;;;;
+2F9C8;CJK COMPATIBILITY IDEOGRAPH-2F9C8;Lo;0;L;4635;;;;N;;;;;
+2F9C9;CJK COMPATIBILITY IDEOGRAPH-2F9C9;Lo;0;L;88FA;;;;N;;;;;
+2F9CA;CJK COMPATIBILITY IDEOGRAPH-2F9CA;Lo;0;L;34BB;;;;N;;;;;
+2F9CB;CJK COMPATIBILITY IDEOGRAPH-2F9CB;Lo;0;L;278AE;;;;N;;;;;
+2F9CC;CJK COMPATIBILITY IDEOGRAPH-2F9CC;Lo;0;L;27966;;;;N;;;;;
+2F9CD;CJK COMPATIBILITY IDEOGRAPH-2F9CD;Lo;0;L;46BE;;;;N;;;;;
+2F9CE;CJK COMPATIBILITY IDEOGRAPH-2F9CE;Lo;0;L;46C7;;;;N;;;;;
+2F9CF;CJK COMPATIBILITY IDEOGRAPH-2F9CF;Lo;0;L;8AA0;;;;N;;;;;
+2F9D0;CJK COMPATIBILITY IDEOGRAPH-2F9D0;Lo;0;L;8AED;;;;N;;;;;
+2F9D1;CJK COMPATIBILITY IDEOGRAPH-2F9D1;Lo;0;L;8B8A;;;;N;;;;;
+2F9D2;CJK COMPATIBILITY IDEOGRAPH-2F9D2;Lo;0;L;8C55;;;;N;;;;;
+2F9D3;CJK COMPATIBILITY IDEOGRAPH-2F9D3;Lo;0;L;27CA8;;;;N;;;;;
+2F9D4;CJK COMPATIBILITY IDEOGRAPH-2F9D4;Lo;0;L;8CAB;;;;N;;;;;
+2F9D5;CJK COMPATIBILITY IDEOGRAPH-2F9D5;Lo;0;L;8CC1;;;;N;;;;;
+2F9D6;CJK COMPATIBILITY IDEOGRAPH-2F9D6;Lo;0;L;8D1B;;;;N;;;;;
+2F9D7;CJK COMPATIBILITY IDEOGRAPH-2F9D7;Lo;0;L;8D77;;;;N;;;;;
+2F9D8;CJK COMPATIBILITY IDEOGRAPH-2F9D8;Lo;0;L;27F2F;;;;N;;;;;
+2F9D9;CJK COMPATIBILITY IDEOGRAPH-2F9D9;Lo;0;L;20804;;;;N;;;;;
+2F9DA;CJK COMPATIBILITY IDEOGRAPH-2F9DA;Lo;0;L;8DCB;;;;N;;;;;
+2F9DB;CJK COMPATIBILITY IDEOGRAPH-2F9DB;Lo;0;L;8DBC;;;;N;;;;;
+2F9DC;CJK COMPATIBILITY IDEOGRAPH-2F9DC;Lo;0;L;8DF0;;;;N;;;;;
+2F9DD;CJK COMPATIBILITY IDEOGRAPH-2F9DD;Lo;0;L;208DE;;;;N;;;;;
+2F9DE;CJK COMPATIBILITY IDEOGRAPH-2F9DE;Lo;0;L;8ED4;;;;N;;;;;
+2F9DF;CJK COMPATIBILITY IDEOGRAPH-2F9DF;Lo;0;L;8F38;;;;N;;;;;
+2F9E0;CJK COMPATIBILITY IDEOGRAPH-2F9E0;Lo;0;L;285D2;;;;N;;;;;
+2F9E1;CJK COMPATIBILITY IDEOGRAPH-2F9E1;Lo;0;L;285ED;;;;N;;;;;
+2F9E2;CJK COMPATIBILITY IDEOGRAPH-2F9E2;Lo;0;L;9094;;;;N;;;;;
+2F9E3;CJK COMPATIBILITY IDEOGRAPH-2F9E3;Lo;0;L;90F1;;;;N;;;;;
+2F9E4;CJK COMPATIBILITY IDEOGRAPH-2F9E4;Lo;0;L;9111;;;;N;;;;;
+2F9E5;CJK COMPATIBILITY IDEOGRAPH-2F9E5;Lo;0;L;2872E;;;;N;;;;;
+2F9E6;CJK COMPATIBILITY IDEOGRAPH-2F9E6;Lo;0;L;911B;;;;N;;;;;
+2F9E7;CJK COMPATIBILITY IDEOGRAPH-2F9E7;Lo;0;L;9238;;;;N;;;;;
+2F9E8;CJK COMPATIBILITY IDEOGRAPH-2F9E8;Lo;0;L;92D7;;;;N;;;;;
+2F9E9;CJK COMPATIBILITY IDEOGRAPH-2F9E9;Lo;0;L;92D8;;;;N;;;;;
+2F9EA;CJK COMPATIBILITY IDEOGRAPH-2F9EA;Lo;0;L;927C;;;;N;;;;;
+2F9EB;CJK COMPATIBILITY IDEOGRAPH-2F9EB;Lo;0;L;93F9;;;;N;;;;;
+2F9EC;CJK COMPATIBILITY IDEOGRAPH-2F9EC;Lo;0;L;9415;;;;N;;;;;
+2F9ED;CJK COMPATIBILITY IDEOGRAPH-2F9ED;Lo;0;L;28BFA;;;;N;;;;;
+2F9EE;CJK COMPATIBILITY IDEOGRAPH-2F9EE;Lo;0;L;958B;;;;N;;;;;
+2F9EF;CJK COMPATIBILITY IDEOGRAPH-2F9EF;Lo;0;L;4995;;;;N;;;;;
+2F9F0;CJK COMPATIBILITY IDEOGRAPH-2F9F0;Lo;0;L;95B7;;;;N;;;;;
+2F9F1;CJK COMPATIBILITY IDEOGRAPH-2F9F1;Lo;0;L;28D77;;;;N;;;;;
+2F9F2;CJK COMPATIBILITY IDEOGRAPH-2F9F2;Lo;0;L;49E6;;;;N;;;;;
+2F9F3;CJK COMPATIBILITY IDEOGRAPH-2F9F3;Lo;0;L;96C3;;;;N;;;;;
+2F9F4;CJK COMPATIBILITY IDEOGRAPH-2F9F4;Lo;0;L;5DB2;;;;N;;;;;
+2F9F5;CJK COMPATIBILITY IDEOGRAPH-2F9F5;Lo;0;L;9723;;;;N;;;;;
+2F9F6;CJK COMPATIBILITY IDEOGRAPH-2F9F6;Lo;0;L;29145;;;;N;;;;;
+2F9F7;CJK COMPATIBILITY IDEOGRAPH-2F9F7;Lo;0;L;2921A;;;;N;;;;;
+2F9F8;CJK COMPATIBILITY IDEOGRAPH-2F9F8;Lo;0;L;4A6E;;;;N;;;;;
+2F9F9;CJK COMPATIBILITY IDEOGRAPH-2F9F9;Lo;0;L;4A76;;;;N;;;;;
+2F9FA;CJK COMPATIBILITY IDEOGRAPH-2F9FA;Lo;0;L;97E0;;;;N;;;;;
+2F9FB;CJK COMPATIBILITY IDEOGRAPH-2F9FB;Lo;0;L;2940A;;;;N;;;;;
+2F9FC;CJK COMPATIBILITY IDEOGRAPH-2F9FC;Lo;0;L;4AB2;;;;N;;;;;
+2F9FD;CJK COMPATIBILITY IDEOGRAPH-2F9FD;Lo;0;L;29496;;;;N;;;;;
+2F9FE;CJK COMPATIBILITY IDEOGRAPH-2F9FE;Lo;0;L;980B;;;;N;;;;;
+2F9FF;CJK COMPATIBILITY IDEOGRAPH-2F9FF;Lo;0;L;980B;;;;N;;;;;
+2FA00;CJK COMPATIBILITY IDEOGRAPH-2FA00;Lo;0;L;9829;;;;N;;;;;
+2FA01;CJK COMPATIBILITY IDEOGRAPH-2FA01;Lo;0;L;295B6;;;;N;;;;;
+2FA02;CJK COMPATIBILITY IDEOGRAPH-2FA02;Lo;0;L;98E2;;;;N;;;;;
+2FA03;CJK COMPATIBILITY IDEOGRAPH-2FA03;Lo;0;L;4B33;;;;N;;;;;
+2FA04;CJK COMPATIBILITY IDEOGRAPH-2FA04;Lo;0;L;9929;;;;N;;;;;
+2FA05;CJK COMPATIBILITY IDEOGRAPH-2FA05;Lo;0;L;99A7;;;;N;;;;;
+2FA06;CJK COMPATIBILITY IDEOGRAPH-2FA06;Lo;0;L;99C2;;;;N;;;;;
+2FA07;CJK COMPATIBILITY IDEOGRAPH-2FA07;Lo;0;L;99FE;;;;N;;;;;
+2FA08;CJK COMPATIBILITY IDEOGRAPH-2FA08;Lo;0;L;4BCE;;;;N;;;;;
+2FA09;CJK COMPATIBILITY IDEOGRAPH-2FA09;Lo;0;L;29B30;;;;N;;;;;
+2FA0A;CJK COMPATIBILITY IDEOGRAPH-2FA0A;Lo;0;L;9B12;;;;N;;;;;
+2FA0B;CJK COMPATIBILITY IDEOGRAPH-2FA0B;Lo;0;L;9C40;;;;N;;;;;
+2FA0C;CJK COMPATIBILITY IDEOGRAPH-2FA0C;Lo;0;L;9CFD;;;;N;;;;;
+2FA0D;CJK COMPATIBILITY IDEOGRAPH-2FA0D;Lo;0;L;4CCE;;;;N;;;;;
+2FA0E;CJK COMPATIBILITY IDEOGRAPH-2FA0E;Lo;0;L;4CED;;;;N;;;;;
+2FA0F;CJK COMPATIBILITY IDEOGRAPH-2FA0F;Lo;0;L;9D67;;;;N;;;;;
+2FA10;CJK COMPATIBILITY IDEOGRAPH-2FA10;Lo;0;L;2A0CE;;;;N;;;;;
+2FA11;CJK COMPATIBILITY IDEOGRAPH-2FA11;Lo;0;L;4CF8;;;;N;;;;;
+2FA12;CJK COMPATIBILITY IDEOGRAPH-2FA12;Lo;0;L;2A105;;;;N;;;;;
+2FA13;CJK COMPATIBILITY IDEOGRAPH-2FA13;Lo;0;L;2A20E;;;;N;;;;;
+2FA14;CJK COMPATIBILITY IDEOGRAPH-2FA14;Lo;0;L;2A291;;;;N;;;;;
+2FA15;CJK COMPATIBILITY IDEOGRAPH-2FA15;Lo;0;L;9EBB;;;;N;;;;;
+2FA16;CJK COMPATIBILITY IDEOGRAPH-2FA16;Lo;0;L;4D56;;;;N;;;;;
+2FA17;CJK COMPATIBILITY IDEOGRAPH-2FA17;Lo;0;L;9EF9;;;;N;;;;;
+2FA18;CJK COMPATIBILITY IDEOGRAPH-2FA18;Lo;0;L;9EFE;;;;N;;;;;
+2FA19;CJK COMPATIBILITY IDEOGRAPH-2FA19;Lo;0;L;9F05;;;;N;;;;;
+2FA1A;CJK COMPATIBILITY IDEOGRAPH-2FA1A;Lo;0;L;9F0F;;;;N;;;;;
+2FA1B;CJK COMPATIBILITY IDEOGRAPH-2FA1B;Lo;0;L;9F16;;;;N;;;;;
+2FA1C;CJK COMPATIBILITY IDEOGRAPH-2FA1C;Lo;0;L;9F3B;;;;N;;;;;
+2FA1D;CJK COMPATIBILITY IDEOGRAPH-2FA1D;Lo;0;L;2A600;;;;N;;;;;
+E0001;LANGUAGE TAG;Cf;0;BN;;;;;N;;;;;
+E0020;TAG SPACE;Cf;0;BN;;;;;N;;;;;
+E0021;TAG EXCLAMATION MARK;Cf;0;BN;;;;;N;;;;;
+E0022;TAG QUOTATION MARK;Cf;0;BN;;;;;N;;;;;
+E0023;TAG NUMBER SIGN;Cf;0;BN;;;;;N;;;;;
+E0024;TAG DOLLAR SIGN;Cf;0;BN;;;;;N;;;;;
+E0025;TAG PERCENT SIGN;Cf;0;BN;;;;;N;;;;;
+E0026;TAG AMPERSAND;Cf;0;BN;;;;;N;;;;;
+E0027;TAG APOSTROPHE;Cf;0;BN;;;;;N;;;;;
+E0028;TAG LEFT PARENTHESIS;Cf;0;BN;;;;;N;;;;;
+E0029;TAG RIGHT PARENTHESIS;Cf;0;BN;;;;;N;;;;;
+E002A;TAG ASTERISK;Cf;0;BN;;;;;N;;;;;
+E002B;TAG PLUS SIGN;Cf;0;BN;;;;;N;;;;;
+E002C;TAG COMMA;Cf;0;BN;;;;;N;;;;;
+E002D;TAG HYPHEN-MINUS;Cf;0;BN;;;;;N;;;;;
+E002E;TAG FULL STOP;Cf;0;BN;;;;;N;;;;;
+E002F;TAG SOLIDUS;Cf;0;BN;;;;;N;;;;;
+E0030;TAG DIGIT ZERO;Cf;0;BN;;;;;N;;;;;
+E0031;TAG DIGIT ONE;Cf;0;BN;;;;;N;;;;;
+E0032;TAG DIGIT TWO;Cf;0;BN;;;;;N;;;;;
+E0033;TAG DIGIT THREE;Cf;0;BN;;;;;N;;;;;
+E0034;TAG DIGIT FOUR;Cf;0;BN;;;;;N;;;;;
+E0035;TAG DIGIT FIVE;Cf;0;BN;;;;;N;;;;;
+E0036;TAG DIGIT SIX;Cf;0;BN;;;;;N;;;;;
+E0037;TAG DIGIT SEVEN;Cf;0;BN;;;;;N;;;;;
+E0038;TAG DIGIT EIGHT;Cf;0;BN;;;;;N;;;;;
+E0039;TAG DIGIT NINE;Cf;0;BN;;;;;N;;;;;
+E003A;TAG COLON;Cf;0;BN;;;;;N;;;;;
+E003B;TAG SEMICOLON;Cf;0;BN;;;;;N;;;;;
+E003C;TAG LESS-THAN SIGN;Cf;0;BN;;;;;N;;;;;
+E003D;TAG EQUALS SIGN;Cf;0;BN;;;;;N;;;;;
+E003E;TAG GREATER-THAN SIGN;Cf;0;BN;;;;;N;;;;;
+E003F;TAG QUESTION MARK;Cf;0;BN;;;;;N;;;;;
+E0040;TAG COMMERCIAL AT;Cf;0;BN;;;;;N;;;;;
+E0041;TAG LATIN CAPITAL LETTER A;Cf;0;BN;;;;;N;;;;;
+E0042;TAG LATIN CAPITAL LETTER B;Cf;0;BN;;;;;N;;;;;
+E0043;TAG LATIN CAPITAL LETTER C;Cf;0;BN;;;;;N;;;;;
+E0044;TAG LATIN CAPITAL LETTER D;Cf;0;BN;;;;;N;;;;;
+E0045;TAG LATIN CAPITAL LETTER E;Cf;0;BN;;;;;N;;;;;
+E0046;TAG LATIN CAPITAL LETTER F;Cf;0;BN;;;;;N;;;;;
+E0047;TAG LATIN CAPITAL LETTER G;Cf;0;BN;;;;;N;;;;;
+E0048;TAG LATIN CAPITAL LETTER H;Cf;0;BN;;;;;N;;;;;
+E0049;TAG LATIN CAPITAL LETTER I;Cf;0;BN;;;;;N;;;;;
+E004A;TAG LATIN CAPITAL LETTER J;Cf;0;BN;;;;;N;;;;;
+E004B;TAG LATIN CAPITAL LETTER K;Cf;0;BN;;;;;N;;;;;
+E004C;TAG LATIN CAPITAL LETTER L;Cf;0;BN;;;;;N;;;;;
+E004D;TAG LATIN CAPITAL LETTER M;Cf;0;BN;;;;;N;;;;;
+E004E;TAG LATIN CAPITAL LETTER N;Cf;0;BN;;;;;N;;;;;
+E004F;TAG LATIN CAPITAL LETTER O;Cf;0;BN;;;;;N;;;;;
+E0050;TAG LATIN CAPITAL LETTER P;Cf;0;BN;;;;;N;;;;;
+E0051;TAG LATIN CAPITAL LETTER Q;Cf;0;BN;;;;;N;;;;;
+E0052;TAG LATIN CAPITAL LETTER R;Cf;0;BN;;;;;N;;;;;
+E0053;TAG LATIN CAPITAL LETTER S;Cf;0;BN;;;;;N;;;;;
+E0054;TAG LATIN CAPITAL LETTER T;Cf;0;BN;;;;;N;;;;;
+E0055;TAG LATIN CAPITAL LETTER U;Cf;0;BN;;;;;N;;;;;
+E0056;TAG LATIN CAPITAL LETTER V;Cf;0;BN;;;;;N;;;;;
+E0057;TAG LATIN CAPITAL LETTER W;Cf;0;BN;;;;;N;;;;;
+E0058;TAG LATIN CAPITAL LETTER X;Cf;0;BN;;;;;N;;;;;
+E0059;TAG LATIN CAPITAL LETTER Y;Cf;0;BN;;;;;N;;;;;
+E005A;TAG LATIN CAPITAL LETTER Z;Cf;0;BN;;;;;N;;;;;
+E005B;TAG LEFT SQUARE BRACKET;Cf;0;BN;;;;;N;;;;;
+E005C;TAG REVERSE SOLIDUS;Cf;0;BN;;;;;N;;;;;
+E005D;TAG RIGHT SQUARE BRACKET;Cf;0;BN;;;;;N;;;;;
+E005E;TAG CIRCUMFLEX ACCENT;Cf;0;BN;;;;;N;;;;;
+E005F;TAG LOW LINE;Cf;0;BN;;;;;N;;;;;
+E0060;TAG GRAVE ACCENT;Cf;0;BN;;;;;N;;;;;
+E0061;TAG LATIN SMALL LETTER A;Cf;0;BN;;;;;N;;;;;
+E0062;TAG LATIN SMALL LETTER B;Cf;0;BN;;;;;N;;;;;
+E0063;TAG LATIN SMALL LETTER C;Cf;0;BN;;;;;N;;;;;
+E0064;TAG LATIN SMALL LETTER D;Cf;0;BN;;;;;N;;;;;
+E0065;TAG LATIN SMALL LETTER E;Cf;0;BN;;;;;N;;;;;
+E0066;TAG LATIN SMALL LETTER F;Cf;0;BN;;;;;N;;;;;
+E0067;TAG LATIN SMALL LETTER G;Cf;0;BN;;;;;N;;;;;
+E0068;TAG LATIN SMALL LETTER H;Cf;0;BN;;;;;N;;;;;
+E0069;TAG LATIN SMALL LETTER I;Cf;0;BN;;;;;N;;;;;
+E006A;TAG LATIN SMALL LETTER J;Cf;0;BN;;;;;N;;;;;
+E006B;TAG LATIN SMALL LETTER K;Cf;0;BN;;;;;N;;;;;
+E006C;TAG LATIN SMALL LETTER L;Cf;0;BN;;;;;N;;;;;
+E006D;TAG LATIN SMALL LETTER M;Cf;0;BN;;;;;N;;;;;
+E006E;TAG LATIN SMALL LETTER N;Cf;0;BN;;;;;N;;;;;
+E006F;TAG LATIN SMALL LETTER O;Cf;0;BN;;;;;N;;;;;
+E0070;TAG LATIN SMALL LETTER P;Cf;0;BN;;;;;N;;;;;
+E0071;TAG LATIN SMALL LETTER Q;Cf;0;BN;;;;;N;;;;;
+E0072;TAG LATIN SMALL LETTER R;Cf;0;BN;;;;;N;;;;;
+E0073;TAG LATIN SMALL LETTER S;Cf;0;BN;;;;;N;;;;;
+E0074;TAG LATIN SMALL LETTER T;Cf;0;BN;;;;;N;;;;;
+E0075;TAG LATIN SMALL LETTER U;Cf;0;BN;;;;;N;;;;;
+E0076;TAG LATIN SMALL LETTER V;Cf;0;BN;;;;;N;;;;;
+E0077;TAG LATIN SMALL LETTER W;Cf;0;BN;;;;;N;;;;;
+E0078;TAG LATIN SMALL LETTER X;Cf;0;BN;;;;;N;;;;;
+E0079;TAG LATIN SMALL LETTER Y;Cf;0;BN;;;;;N;;;;;
+E007A;TAG LATIN SMALL LETTER Z;Cf;0;BN;;;;;N;;;;;
+E007B;TAG LEFT CURLY BRACKET;Cf;0;BN;;;;;N;;;;;
+E007C;TAG VERTICAL LINE;Cf;0;BN;;;;;N;;;;;
+E007D;TAG RIGHT CURLY BRACKET;Cf;0;BN;;;;;N;;;;;
+E007E;TAG TILDE;Cf;0;BN;;;;;N;;;;;
+E007F;CANCEL TAG;Cf;0;BN;;;;;N;;;;;
+E0100;VARIATION SELECTOR-17;Mn;0;NSM;;;;;N;;;;;
+E0101;VARIATION SELECTOR-18;Mn;0;NSM;;;;;N;;;;;
+E0102;VARIATION SELECTOR-19;Mn;0;NSM;;;;;N;;;;;
+E0103;VARIATION SELECTOR-20;Mn;0;NSM;;;;;N;;;;;
+E0104;VARIATION SELECTOR-21;Mn;0;NSM;;;;;N;;;;;
+E0105;VARIATION SELECTOR-22;Mn;0;NSM;;;;;N;;;;;
+E0106;VARIATION SELECTOR-23;Mn;0;NSM;;;;;N;;;;;
+E0107;VARIATION SELECTOR-24;Mn;0;NSM;;;;;N;;;;;
+E0108;VARIATION SELECTOR-25;Mn;0;NSM;;;;;N;;;;;
+E0109;VARIATION SELECTOR-26;Mn;0;NSM;;;;;N;;;;;
+E010A;VARIATION SELECTOR-27;Mn;0;NSM;;;;;N;;;;;
+E010B;VARIATION SELECTOR-28;Mn;0;NSM;;;;;N;;;;;
+E010C;VARIATION SELECTOR-29;Mn;0;NSM;;;;;N;;;;;
+E010D;VARIATION SELECTOR-30;Mn;0;NSM;;;;;N;;;;;
+E010E;VARIATION SELECTOR-31;Mn;0;NSM;;;;;N;;;;;
+E010F;VARIATION SELECTOR-32;Mn;0;NSM;;;;;N;;;;;
+E0110;VARIATION SELECTOR-33;Mn;0;NSM;;;;;N;;;;;
+E0111;VARIATION SELECTOR-34;Mn;0;NSM;;;;;N;;;;;
+E0112;VARIATION SELECTOR-35;Mn;0;NSM;;;;;N;;;;;
+E0113;VARIATION SELECTOR-36;Mn;0;NSM;;;;;N;;;;;
+E0114;VARIATION SELECTOR-37;Mn;0;NSM;;;;;N;;;;;
+E0115;VARIATION SELECTOR-38;Mn;0;NSM;;;;;N;;;;;
+E0116;VARIATION SELECTOR-39;Mn;0;NSM;;;;;N;;;;;
+E0117;VARIATION SELECTOR-40;Mn;0;NSM;;;;;N;;;;;
+E0118;VARIATION SELECTOR-41;Mn;0;NSM;;;;;N;;;;;
+E0119;VARIATION SELECTOR-42;Mn;0;NSM;;;;;N;;;;;
+E011A;VARIATION SELECTOR-43;Mn;0;NSM;;;;;N;;;;;
+E011B;VARIATION SELECTOR-44;Mn;0;NSM;;;;;N;;;;;
+E011C;VARIATION SELECTOR-45;Mn;0;NSM;;;;;N;;;;;
+E011D;VARIATION SELECTOR-46;Mn;0;NSM;;;;;N;;;;;
+E011E;VARIATION SELECTOR-47;Mn;0;NSM;;;;;N;;;;;
+E011F;VARIATION SELECTOR-48;Mn;0;NSM;;;;;N;;;;;
+E0120;VARIATION SELECTOR-49;Mn;0;NSM;;;;;N;;;;;
+E0121;VARIATION SELECTOR-50;Mn;0;NSM;;;;;N;;;;;
+E0122;VARIATION SELECTOR-51;Mn;0;NSM;;;;;N;;;;;
+E0123;VARIATION SELECTOR-52;Mn;0;NSM;;;;;N;;;;;
+E0124;VARIATION SELECTOR-53;Mn;0;NSM;;;;;N;;;;;
+E0125;VARIATION SELECTOR-54;Mn;0;NSM;;;;;N;;;;;
+E0126;VARIATION SELECTOR-55;Mn;0;NSM;;;;;N;;;;;
+E0127;VARIATION SELECTOR-56;Mn;0;NSM;;;;;N;;;;;
+E0128;VARIATION SELECTOR-57;Mn;0;NSM;;;;;N;;;;;
+E0129;VARIATION SELECTOR-58;Mn;0;NSM;;;;;N;;;;;
+E012A;VARIATION SELECTOR-59;Mn;0;NSM;;;;;N;;;;;
+E012B;VARIATION SELECTOR-60;Mn;0;NSM;;;;;N;;;;;
+E012C;VARIATION SELECTOR-61;Mn;0;NSM;;;;;N;;;;;
+E012D;VARIATION SELECTOR-62;Mn;0;NSM;;;;;N;;;;;
+E012E;VARIATION SELECTOR-63;Mn;0;NSM;;;;;N;;;;;
+E012F;VARIATION SELECTOR-64;Mn;0;NSM;;;;;N;;;;;
+E0130;VARIATION SELECTOR-65;Mn;0;NSM;;;;;N;;;;;
+E0131;VARIATION SELECTOR-66;Mn;0;NSM;;;;;N;;;;;
+E0132;VARIATION SELECTOR-67;Mn;0;NSM;;;;;N;;;;;
+E0133;VARIATION SELECTOR-68;Mn;0;NSM;;;;;N;;;;;
+E0134;VARIATION SELECTOR-69;Mn;0;NSM;;;;;N;;;;;
+E0135;VARIATION SELECTOR-70;Mn;0;NSM;;;;;N;;;;;
+E0136;VARIATION SELECTOR-71;Mn;0;NSM;;;;;N;;;;;
+E0137;VARIATION SELECTOR-72;Mn;0;NSM;;;;;N;;;;;
+E0138;VARIATION SELECTOR-73;Mn;0;NSM;;;;;N;;;;;
+E0139;VARIATION SELECTOR-74;Mn;0;NSM;;;;;N;;;;;
+E013A;VARIATION SELECTOR-75;Mn;0;NSM;;;;;N;;;;;
+E013B;VARIATION SELECTOR-76;Mn;0;NSM;;;;;N;;;;;
+E013C;VARIATION SELECTOR-77;Mn;0;NSM;;;;;N;;;;;
+E013D;VARIATION SELECTOR-78;Mn;0;NSM;;;;;N;;;;;
+E013E;VARIATION SELECTOR-79;Mn;0;NSM;;;;;N;;;;;
+E013F;VARIATION SELECTOR-80;Mn;0;NSM;;;;;N;;;;;
+E0140;VARIATION SELECTOR-81;Mn;0;NSM;;;;;N;;;;;
+E0141;VARIATION SELECTOR-82;Mn;0;NSM;;;;;N;;;;;
+E0142;VARIATION SELECTOR-83;Mn;0;NSM;;;;;N;;;;;
+E0143;VARIATION SELECTOR-84;Mn;0;NSM;;;;;N;;;;;
+E0144;VARIATION SELECTOR-85;Mn;0;NSM;;;;;N;;;;;
+E0145;VARIATION SELECTOR-86;Mn;0;NSM;;;;;N;;;;;
+E0146;VARIATION SELECTOR-87;Mn;0;NSM;;;;;N;;;;;
+E0147;VARIATION SELECTOR-88;Mn;0;NSM;;;;;N;;;;;
+E0148;VARIATION SELECTOR-89;Mn;0;NSM;;;;;N;;;;;
+E0149;VARIATION SELECTOR-90;Mn;0;NSM;;;;;N;;;;;
+E014A;VARIATION SELECTOR-91;Mn;0;NSM;;;;;N;;;;;
+E014B;VARIATION SELECTOR-92;Mn;0;NSM;;;;;N;;;;;
+E014C;VARIATION SELECTOR-93;Mn;0;NSM;;;;;N;;;;;
+E014D;VARIATION SELECTOR-94;Mn;0;NSM;;;;;N;;;;;
+E014E;VARIATION SELECTOR-95;Mn;0;NSM;;;;;N;;;;;
+E014F;VARIATION SELECTOR-96;Mn;0;NSM;;;;;N;;;;;
+E0150;VARIATION SELECTOR-97;Mn;0;NSM;;;;;N;;;;;
+E0151;VARIATION SELECTOR-98;Mn;0;NSM;;;;;N;;;;;
+E0152;VARIATION SELECTOR-99;Mn;0;NSM;;;;;N;;;;;
+E0153;VARIATION SELECTOR-100;Mn;0;NSM;;;;;N;;;;;
+E0154;VARIATION SELECTOR-101;Mn;0;NSM;;;;;N;;;;;
+E0155;VARIATION SELECTOR-102;Mn;0;NSM;;;;;N;;;;;
+E0156;VARIATION SELECTOR-103;Mn;0;NSM;;;;;N;;;;;
+E0157;VARIATION SELECTOR-104;Mn;0;NSM;;;;;N;;;;;
+E0158;VARIATION SELECTOR-105;Mn;0;NSM;;;;;N;;;;;
+E0159;VARIATION SELECTOR-106;Mn;0;NSM;;;;;N;;;;;
+E015A;VARIATION SELECTOR-107;Mn;0;NSM;;;;;N;;;;;
+E015B;VARIATION SELECTOR-108;Mn;0;NSM;;;;;N;;;;;
+E015C;VARIATION SELECTOR-109;Mn;0;NSM;;;;;N;;;;;
+E015D;VARIATION SELECTOR-110;Mn;0;NSM;;;;;N;;;;;
+E015E;VARIATION SELECTOR-111;Mn;0;NSM;;;;;N;;;;;
+E015F;VARIATION SELECTOR-112;Mn;0;NSM;;;;;N;;;;;
+E0160;VARIATION SELECTOR-113;Mn;0;NSM;;;;;N;;;;;
+E0161;VARIATION SELECTOR-114;Mn;0;NSM;;;;;N;;;;;
+E0162;VARIATION SELECTOR-115;Mn;0;NSM;;;;;N;;;;;
+E0163;VARIATION SELECTOR-116;Mn;0;NSM;;;;;N;;;;;
+E0164;VARIATION SELECTOR-117;Mn;0;NSM;;;;;N;;;;;
+E0165;VARIATION SELECTOR-118;Mn;0;NSM;;;;;N;;;;;
+E0166;VARIATION SELECTOR-119;Mn;0;NSM;;;;;N;;;;;
+E0167;VARIATION SELECTOR-120;Mn;0;NSM;;;;;N;;;;;
+E0168;VARIATION SELECTOR-121;Mn;0;NSM;;;;;N;;;;;
+E0169;VARIATION SELECTOR-122;Mn;0;NSM;;;;;N;;;;;
+E016A;VARIATION SELECTOR-123;Mn;0;NSM;;;;;N;;;;;
+E016B;VARIATION SELECTOR-124;Mn;0;NSM;;;;;N;;;;;
+E016C;VARIATION SELECTOR-125;Mn;0;NSM;;;;;N;;;;;
+E016D;VARIATION SELECTOR-126;Mn;0;NSM;;;;;N;;;;;
+E016E;VARIATION SELECTOR-127;Mn;0;NSM;;;;;N;;;;;
+E016F;VARIATION SELECTOR-128;Mn;0;NSM;;;;;N;;;;;
+E0170;VARIATION SELECTOR-129;Mn;0;NSM;;;;;N;;;;;
+E0171;VARIATION SELECTOR-130;Mn;0;NSM;;;;;N;;;;;
+E0172;VARIATION SELECTOR-131;Mn;0;NSM;;;;;N;;;;;
+E0173;VARIATION SELECTOR-132;Mn;0;NSM;;;;;N;;;;;
+E0174;VARIATION SELECTOR-133;Mn;0;NSM;;;;;N;;;;;
+E0175;VARIATION SELECTOR-134;Mn;0;NSM;;;;;N;;;;;
+E0176;VARIATION SELECTOR-135;Mn;0;NSM;;;;;N;;;;;
+E0177;VARIATION SELECTOR-136;Mn;0;NSM;;;;;N;;;;;
+E0178;VARIATION SELECTOR-137;Mn;0;NSM;;;;;N;;;;;
+E0179;VARIATION SELECTOR-138;Mn;0;NSM;;;;;N;;;;;
+E017A;VARIATION SELECTOR-139;Mn;0;NSM;;;;;N;;;;;
+E017B;VARIATION SELECTOR-140;Mn;0;NSM;;;;;N;;;;;
+E017C;VARIATION SELECTOR-141;Mn;0;NSM;;;;;N;;;;;
+E017D;VARIATION SELECTOR-142;Mn;0;NSM;;;;;N;;;;;
+E017E;VARIATION SELECTOR-143;Mn;0;NSM;;;;;N;;;;;
+E017F;VARIATION SELECTOR-144;Mn;0;NSM;;;;;N;;;;;
+E0180;VARIATION SELECTOR-145;Mn;0;NSM;;;;;N;;;;;
+E0181;VARIATION SELECTOR-146;Mn;0;NSM;;;;;N;;;;;
+E0182;VARIATION SELECTOR-147;Mn;0;NSM;;;;;N;;;;;
+E0183;VARIATION SELECTOR-148;Mn;0;NSM;;;;;N;;;;;
+E0184;VARIATION SELECTOR-149;Mn;0;NSM;;;;;N;;;;;
+E0185;VARIATION SELECTOR-150;Mn;0;NSM;;;;;N;;;;;
+E0186;VARIATION SELECTOR-151;Mn;0;NSM;;;;;N;;;;;
+E0187;VARIATION SELECTOR-152;Mn;0;NSM;;;;;N;;;;;
+E0188;VARIATION SELECTOR-153;Mn;0;NSM;;;;;N;;;;;
+E0189;VARIATION SELECTOR-154;Mn;0;NSM;;;;;N;;;;;
+E018A;VARIATION SELECTOR-155;Mn;0;NSM;;;;;N;;;;;
+E018B;VARIATION SELECTOR-156;Mn;0;NSM;;;;;N;;;;;
+E018C;VARIATION SELECTOR-157;Mn;0;NSM;;;;;N;;;;;
+E018D;VARIATION SELECTOR-158;Mn;0;NSM;;;;;N;;;;;
+E018E;VARIATION SELECTOR-159;Mn;0;NSM;;;;;N;;;;;
+E018F;VARIATION SELECTOR-160;Mn;0;NSM;;;;;N;;;;;
+E0190;VARIATION SELECTOR-161;Mn;0;NSM;;;;;N;;;;;
+E0191;VARIATION SELECTOR-162;Mn;0;NSM;;;;;N;;;;;
+E0192;VARIATION SELECTOR-163;Mn;0;NSM;;;;;N;;;;;
+E0193;VARIATION SELECTOR-164;Mn;0;NSM;;;;;N;;;;;
+E0194;VARIATION SELECTOR-165;Mn;0;NSM;;;;;N;;;;;
+E0195;VARIATION SELECTOR-166;Mn;0;NSM;;;;;N;;;;;
+E0196;VARIATION SELECTOR-167;Mn;0;NSM;;;;;N;;;;;
+E0197;VARIATION SELECTOR-168;Mn;0;NSM;;;;;N;;;;;
+E0198;VARIATION SELECTOR-169;Mn;0;NSM;;;;;N;;;;;
+E0199;VARIATION SELECTOR-170;Mn;0;NSM;;;;;N;;;;;
+E019A;VARIATION SELECTOR-171;Mn;0;NSM;;;;;N;;;;;
+E019B;VARIATION SELECTOR-172;Mn;0;NSM;;;;;N;;;;;
+E019C;VARIATION SELECTOR-173;Mn;0;NSM;;;;;N;;;;;
+E019D;VARIATION SELECTOR-174;Mn;0;NSM;;;;;N;;;;;
+E019E;VARIATION SELECTOR-175;Mn;0;NSM;;;;;N;;;;;
+E019F;VARIATION SELECTOR-176;Mn;0;NSM;;;;;N;;;;;
+E01A0;VARIATION SELECTOR-177;Mn;0;NSM;;;;;N;;;;;
+E01A1;VARIATION SELECTOR-178;Mn;0;NSM;;;;;N;;;;;
+E01A2;VARIATION SELECTOR-179;Mn;0;NSM;;;;;N;;;;;
+E01A3;VARIATION SELECTOR-180;Mn;0;NSM;;;;;N;;;;;
+E01A4;VARIATION SELECTOR-181;Mn;0;NSM;;;;;N;;;;;
+E01A5;VARIATION SELECTOR-182;Mn;0;NSM;;;;;N;;;;;
+E01A6;VARIATION SELECTOR-183;Mn;0;NSM;;;;;N;;;;;
+E01A7;VARIATION SELECTOR-184;Mn;0;NSM;;;;;N;;;;;
+E01A8;VARIATION SELECTOR-185;Mn;0;NSM;;;;;N;;;;;
+E01A9;VARIATION SELECTOR-186;Mn;0;NSM;;;;;N;;;;;
+E01AA;VARIATION SELECTOR-187;Mn;0;NSM;;;;;N;;;;;
+E01AB;VARIATION SELECTOR-188;Mn;0;NSM;;;;;N;;;;;
+E01AC;VARIATION SELECTOR-189;Mn;0;NSM;;;;;N;;;;;
+E01AD;VARIATION SELECTOR-190;Mn;0;NSM;;;;;N;;;;;
+E01AE;VARIATION SELECTOR-191;Mn;0;NSM;;;;;N;;;;;
+E01AF;VARIATION SELECTOR-192;Mn;0;NSM;;;;;N;;;;;
+E01B0;VARIATION SELECTOR-193;Mn;0;NSM;;;;;N;;;;;
+E01B1;VARIATION SELECTOR-194;Mn;0;NSM;;;;;N;;;;;
+E01B2;VARIATION SELECTOR-195;Mn;0;NSM;;;;;N;;;;;
+E01B3;VARIATION SELECTOR-196;Mn;0;NSM;;;;;N;;;;;
+E01B4;VARIATION SELECTOR-197;Mn;0;NSM;;;;;N;;;;;
+E01B5;VARIATION SELECTOR-198;Mn;0;NSM;;;;;N;;;;;
+E01B6;VARIATION SELECTOR-199;Mn;0;NSM;;;;;N;;;;;
+E01B7;VARIATION SELECTOR-200;Mn;0;NSM;;;;;N;;;;;
+E01B8;VARIATION SELECTOR-201;Mn;0;NSM;;;;;N;;;;;
+E01B9;VARIATION SELECTOR-202;Mn;0;NSM;;;;;N;;;;;
+E01BA;VARIATION SELECTOR-203;Mn;0;NSM;;;;;N;;;;;
+E01BB;VARIATION SELECTOR-204;Mn;0;NSM;;;;;N;;;;;
+E01BC;VARIATION SELECTOR-205;Mn;0;NSM;;;;;N;;;;;
+E01BD;VARIATION SELECTOR-206;Mn;0;NSM;;;;;N;;;;;
+E01BE;VARIATION SELECTOR-207;Mn;0;NSM;;;;;N;;;;;
+E01BF;VARIATION SELECTOR-208;Mn;0;NSM;;;;;N;;;;;
+E01C0;VARIATION SELECTOR-209;Mn;0;NSM;;;;;N;;;;;
+E01C1;VARIATION SELECTOR-210;Mn;0;NSM;;;;;N;;;;;
+E01C2;VARIATION SELECTOR-211;Mn;0;NSM;;;;;N;;;;;
+E01C3;VARIATION SELECTOR-212;Mn;0;NSM;;;;;N;;;;;
+E01C4;VARIATION SELECTOR-213;Mn;0;NSM;;;;;N;;;;;
+E01C5;VARIATION SELECTOR-214;Mn;0;NSM;;;;;N;;;;;
+E01C6;VARIATION SELECTOR-215;Mn;0;NSM;;;;;N;;;;;
+E01C7;VARIATION SELECTOR-216;Mn;0;NSM;;;;;N;;;;;
+E01C8;VARIATION SELECTOR-217;Mn;0;NSM;;;;;N;;;;;
+E01C9;VARIATION SELECTOR-218;Mn;0;NSM;;;;;N;;;;;
+E01CA;VARIATION SELECTOR-219;Mn;0;NSM;;;;;N;;;;;
+E01CB;VARIATION SELECTOR-220;Mn;0;NSM;;;;;N;;;;;
+E01CC;VARIATION SELECTOR-221;Mn;0;NSM;;;;;N;;;;;
+E01CD;VARIATION SELECTOR-222;Mn;0;NSM;;;;;N;;;;;
+E01CE;VARIATION SELECTOR-223;Mn;0;NSM;;;;;N;;;;;
+E01CF;VARIATION SELECTOR-224;Mn;0;NSM;;;;;N;;;;;
+E01D0;VARIATION SELECTOR-225;Mn;0;NSM;;;;;N;;;;;
+E01D1;VARIATION SELECTOR-226;Mn;0;NSM;;;;;N;;;;;
+E01D2;VARIATION SELECTOR-227;Mn;0;NSM;;;;;N;;;;;
+E01D3;VARIATION SELECTOR-228;Mn;0;NSM;;;;;N;;;;;
+E01D4;VARIATION SELECTOR-229;Mn;0;NSM;;;;;N;;;;;
+E01D5;VARIATION SELECTOR-230;Mn;0;NSM;;;;;N;;;;;
+E01D6;VARIATION SELECTOR-231;Mn;0;NSM;;;;;N;;;;;
+E01D7;VARIATION SELECTOR-232;Mn;0;NSM;;;;;N;;;;;
+E01D8;VARIATION SELECTOR-233;Mn;0;NSM;;;;;N;;;;;
+E01D9;VARIATION SELECTOR-234;Mn;0;NSM;;;;;N;;;;;
+E01DA;VARIATION SELECTOR-235;Mn;0;NSM;;;;;N;;;;;
+E01DB;VARIATION SELECTOR-236;Mn;0;NSM;;;;;N;;;;;
+E01DC;VARIATION SELECTOR-237;Mn;0;NSM;;;;;N;;;;;
+E01DD;VARIATION SELECTOR-238;Mn;0;NSM;;;;;N;;;;;
+E01DE;VARIATION SELECTOR-239;Mn;0;NSM;;;;;N;;;;;
+E01DF;VARIATION SELECTOR-240;Mn;0;NSM;;;;;N;;;;;
+E01E0;VARIATION SELECTOR-241;Mn;0;NSM;;;;;N;;;;;
+E01E1;VARIATION SELECTOR-242;Mn;0;NSM;;;;;N;;;;;
+E01E2;VARIATION SELECTOR-243;Mn;0;NSM;;;;;N;;;;;
+E01E3;VARIATION SELECTOR-244;Mn;0;NSM;;;;;N;;;;;
+E01E4;VARIATION SELECTOR-245;Mn;0;NSM;;;;;N;;;;;
+E01E5;VARIATION SELECTOR-246;Mn;0;NSM;;;;;N;;;;;
+E01E6;VARIATION SELECTOR-247;Mn;0;NSM;;;;;N;;;;;
+E01E7;VARIATION SELECTOR-248;Mn;0;NSM;;;;;N;;;;;
+E01E8;VARIATION SELECTOR-249;Mn;0;NSM;;;;;N;;;;;
+E01E9;VARIATION SELECTOR-250;Mn;0;NSM;;;;;N;;;;;
+E01EA;VARIATION SELECTOR-251;Mn;0;NSM;;;;;N;;;;;
+E01EB;VARIATION SELECTOR-252;Mn;0;NSM;;;;;N;;;;;
+E01EC;VARIATION SELECTOR-253;Mn;0;NSM;;;;;N;;;;;
+E01ED;VARIATION SELECTOR-254;Mn;0;NSM;;;;;N;;;;;
+E01EE;VARIATION SELECTOR-255;Mn;0;NSM;;;;;N;;;;;
+E01EF;VARIATION SELECTOR-256;Mn;0;NSM;;;;;N;;;;;
+F0000;<Plane 15 Private Use, First>;Co;0;L;;;;;N;;;;;
+FFFFD;<Plane 15 Private Use, Last>;Co;0;L;;;;;N;;;;;
+100000;<Plane 16 Private Use, First>;Co;0;L;;;;;N;;;;;
+10FFFD;<Plane 16 Private Use, Last>;Co;0;L;;;;;N;;;;;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/readtype/readtype.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,868 @@
+// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of the License "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Reads a Unicode character type data file (such as UnicodeData-3.0.0.txt or a file containing locale-specific overrides)
+// and writes C++ definitions of tables containing the information.
+// Usage: readtype <input-file> <output-file> { <locale-name> }.
+// <input-file>: either the standard Unicode character data file (e.g., UnicodeData-3.0.0.txt) or a file containing
+// overriding information for a certain locale, in the same format as the standard file, but with ranges for which
+// there is no data given in the form:
+// 0041;;;;;;;;;;;;;;
+// 006A;<No Data First>;;;;;;;;;;;;;
+// FFFF;<No Data Last>;;;;;;;;;;;;;
+// (in this example, these entries show that there is no overriding data for the character 0041 and range
+// 006A..FFFF inclusive).
+// Both single entries with no data and ranges with no data must have nothing in the third field (category).
+// <output-file>: the C++ source file to be output: this file becomes \e32\unicode\unitable.cpp, or an overriding
+// file in \e32\lsrc; there are none of these yet.
+// <locale-name>: a an optional name to be inserted into identifiers in the output file: omit this for the standard
+// data set; use names like 'Turkish', 'Japanese', etc., for locales.
+// 
+//
+
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#ifndef _UNICODE
+#define _UNICODE
+#endif
+
+#include <unicode.h>
+
+// don't use unicode.h::TUnicodeDataRange, since its for 16-bit, and deprecated
+struct TUnicodeDataRange32	// Only used inside this cpp.
+	{
+	TUint32 iRangeStart;	// Unicode value of the start of the range of characters
+	TInt16 iIndex;			// index into an array of character information structures (-1 means data no available)
+	};
+
+const int PlaneCount = 17;
+TUnicodePlane ThePlanesInReadType[PlaneCount];
+
+// Tables to convert names used in the data file to categories defined in TChar.
+struct CatInfo
+	{
+	const char* iName;
+	TChar::TCategory iCat;
+	};
+
+static const CatInfo TheCatInfo[] =
+	{
+	{ "Lu", TChar::ELuCategory },
+	{ "Ll", TChar::ELlCategory },
+	{ "Lt", TChar::ELtCategory },
+	{ "Lo", TChar::ELoCategory },
+	{ "Lm", TChar::ELmCategory },
+	{ "Mn", TChar::EMnCategory },
+	{ "Mc", TChar::EMcCategory },
+	{ "Me", TChar::EMeCategory },
+	{ "Nd", TChar::ENdCategory },
+	{ "Nl", TChar::ENlCategory },
+	{ "No", TChar::ENoCategory },
+	{ "Pc", TChar::EPcCategory },
+	{ "Pd", TChar::EPdCategory },
+	{ "Ps", TChar::EPsCategory },
+	{ "Pe", TChar::EPeCategory },
+	{ "Pi", TChar::EPiCategory },
+	{ "Pf", TChar::EPfCategory },
+	{ "Po", TChar::EPoCategory },
+	{ "Sm", TChar::ESmCategory },
+	{ "Sc", TChar::EScCategory },
+	{ "Sk", TChar::ESkCategory },
+	{ "So", TChar::ESoCategory },
+	{ "Zs", TChar::EZsCategory },
+	{ "Zl", TChar::EZlCategory },
+	{ "Zp", TChar::EZpCategory },
+	{ "Cc", TChar::ECcCategory },
+	{ "Cf", TChar::ECfCategory },
+	{ "Cs", TChar::ECsCategory },
+	{ "Co", TChar::ECoCategory },
+	{ "Cn", TChar::ECnCategory }
+	};
+const int TheCategories = sizeof(TheCatInfo) / sizeof(TheCatInfo[0]);
+
+struct BdCatInfo
+	{
+	const char* iName;
+	TChar::TBdCategory iBdCat;
+	};
+
+static const BdCatInfo TheBdCatInfo[] =
+	{
+	{ "L", TChar::ELeftToRight },
+	{ "LRE", TChar::ELeftToRightEmbedding },
+	{ "LRO", TChar::ELeftToRightOverride },
+	{ "R", TChar::ERightToLeft },
+	{ "AL", TChar::ERightToLeftArabic }, 
+	{ "RLE", TChar::ERightToLeftEmbedding },
+	{ "RLO", TChar::ERightToLeftOverride },
+	{ "PDF", TChar::EPopDirectionalFormat },
+	{ "EN", TChar::EEuropeanNumber }, 
+	{ "ES", TChar::EEuropeanNumberSeparator }, 
+	{ "ET", TChar::EEuropeanNumberTerminator },  
+	{ "AN", TChar::EArabicNumber }, 
+	{ "CS", TChar::ECommonNumberSeparator }, 
+	{ "NSM", TChar::ENonSpacingMark },
+	{ "BN", TChar::EBoundaryNeutral }, 
+	{ "B", TChar::EParagraphSeparator },
+	{ "S", TChar::ESegmentSeparator },
+	{ "WS", TChar::EWhitespace }, 
+	{ "ON", TChar::EOtherNeutral }, 
+	};
+const int TheBdCategories = sizeof(TheBdCatInfo) / sizeof(TheBdCatInfo[0]);
+
+// Class derived from TUnicodeData to provide constructor etc.
+class Data: public TUnicodeData
+	{
+	public:
+	Data();
+	TBool operator==(const Data& c) const;
+	TBool operator!=(const Data& c) const { return !(*this == c); }
+	void Write();
+	};
+
+// The character information table.
+const int MaxDatas = 1000;
+Data TheData[MaxDatas];
+int Datas = 0;
+
+// The range table, containing indices to the character information table.
+const int MaxRanges = 4000;
+TUnicodeDataRange32 TheRange[MaxRanges];
+int Ranges = 0;
+
+// The exhaustive index table, containing indices from every 16-bit value to the character information table.
+int TheIndex[0x110000];
+
+// The special tables for characters in the range 0..255.
+TUint16 LowerCaseTable[256];
+TUint16 FoldTable[256];
+
+// The special table for characters in the range 0xFF00..0xFFFF
+TUint16 CjkWidthFoldTable[256];
+
+/*
+The composition table. The compositions are stored as a word made up from the composition tag (high byte) and
+the number of components (low byte), the Unicode value of the composed character, then the Unicode values of
+the components.
+
+Two tables are created containing the indices of compositions. One of these is sorted by
+composed character, one by decomposition. This enables quick conversions to be made in both directions.
+*/
+const int MaxCompositionWords = 14000;
+TUint32 CompositionBuffer[MaxCompositionWords];
+int CompositionWords = 0;
+const int MaxCompositions = 8000;
+TInt16 Compose[MaxCompositions];		// composition buffer indices, sorted by composed character
+TInt16 Decompose[MaxCompositions];		// composition buffer indices, sorted by decomposition
+int Compositions = 0;
+int trie_data[0x110000];					// used to build the trie
+
+FILE *input_file;
+FILE *output_file;
+const char *input_filename;
+const char *output_filename;
+
+// Convert a hex string to an integer.
+static int hex(const char *s)
+	{
+	int x = 0;
+	while (*s)
+		{
+		int n = *s;
+		if (n >= '0' && n <= '9')
+			n -= '0';
+		else if (n >= 'A' && n <= 'F')
+			n -= 'A' - 10;
+		else if (n >= 'a' && n <= 'f')
+			n -= 'a' - 10;
+		else
+			break;
+		x = x * 16 + n;
+
+		s++;
+		}
+	return x;
+	}
+
+static TChar::TCategory Category(const char* aName,bool aWarn)
+	{
+	for (int i = 0; i < TheCategories; i++)
+		if (!strcmp(aName,TheCatInfo[i].iName))
+			return TheCatInfo[i].iCat;
+	if (aWarn)
+		fprintf(stderr,"unknown category %s\n",aName);
+	return (TChar::TCategory)(-1);
+	}
+
+static TChar::TBdCategory BdCategory(const char* aName,bool aWarn)
+	{
+	for (int i = 0; i < TheBdCategories; i++)
+		if (!strcmp(aName,TheBdCatInfo[i].iName))
+			return TheBdCatInfo[i].iBdCat;
+	if (aWarn)
+		fprintf(stderr,"unknown bidirectional category %s\n",aName);
+	return (TChar::TBdCategory)(-1);
+	}
+
+// Write an aggregate initialiser for a Data object to the output file.
+void Data::Write()
+	{
+	fprintf(output_file,"{ %d, %d, %d, %d, %d, %d }",
+			(int)iCategory,
+			(int)iBdCategory,
+			(int)iCombiningClass,
+			(int)iDigitOffset,
+			(int)iCaseOffset,
+			(int)iFlags);
+	}
+
+/*
+Add a new entry to the range table. If the category is the illegal value -1 store -1 as the
+index; this feature is used when creating character data for specific locales, which mostly
+consists of ranges for which the data is held in the main table, and is marked in this way
+as unspecified in the locale table.
+*/
+void add_range(Data& info,TInt code)
+	{
+	// Get an index to the character info; add a new entry if necessary.
+	int index = -1;
+	if (info.iCategory != TChar::TCategory(0xFF))
+		{
+		for (int i = 0; i < Datas && index == -1; i++)
+			if (TheData[i] == info)
+				index = i;
+		if (index == -1)
+			{
+			if (Datas >= MaxDatas)
+				{
+				fprintf(stderr,"too many Datas: > %d\n",MaxDatas);
+				exit(1);
+				}
+			TheData[index = Datas++] = info;
+			}
+		}
+
+	// Add the entry to the range table.
+	if (Ranges >= MaxRanges)
+		{
+		fprintf(stderr,"too many Ranges: > %d, when processing U+%x\n", MaxRanges, code);
+		exit(1);
+		}
+	TheRange[Ranges].iRangeStart = code;
+	TheRange[Ranges].iIndex = (TInt16)index;
+	Ranges++;
+	}
+
+// Write a table of "entries" integers each of "entry_size" bytes.
+int write_table(const void *table,const char *name,
+				int entries,int input_entry_size,int output_entry_size,
+				int entry_signed,int entries_per_row,int write_array_size)
+	{
+	const char *type = entry_signed ? "TInt" : "TUint";
+	const int bits = output_entry_size * 8;
+
+	/*
+	There is a choice here whether or not the number of entries in the array is written:
+	either <name>[<size>] or <name>[] is written. The latter method is used where the header
+	says <name>[] so that compilers like GCC don't moan about type mismatches.
+	*/
+	if (entries == 0)
+		{
+		// In case that given plane has no character.
+		fprintf(output_file,"const %s%d * const %s = NULL;\n",type,bits,name);
+		return 0;
+		}
+	if (write_array_size)
+		fprintf(output_file,"const %s%d %s[%d] = \n\t{",type,bits,name,entries);
+	else
+		fprintf(output_file,"const %s%d %s[] = \n\t{ // %d entries",type,bits,name,entries);
+
+	const unsigned char *p = (const unsigned char *)table;
+	for (int i = 0; i < entries; i++, p += input_entry_size)
+		{
+		if (i % entries_per_row == 0)
+			fprintf(output_file,"\n\t");
+		if (output_entry_size == 1)
+			fprintf(output_file,"0x%02x",(int)(*p));
+		else if (output_entry_size == 2)
+			fprintf(output_file,"0x%04x",(int)(*((TUint16 *)p)));
+		else if (output_entry_size == 4)
+			fprintf(output_file,"0x%08x",(int)(*((TUint32 *)p)));
+		else
+			{
+			fprintf(stderr,"illegal output entry size: %d\n",output_entry_size);
+			exit(1);
+			}
+		if (i < entries - 1)
+			fputc(',',output_file);
+		// comment for easy read
+		//if ((i+1) % entries_per_row == 0)
+		//	fprintf(output_file, "\t// U+%X-U+%X (%d-%d)", i+1-entries_per_row, i, i+1-entries_per_row, i);
+		}
+	fprintf(output_file,"\n\t};\n");
+
+	return entries * output_entry_size;
+	}
+
+/*
+Create and write a trie representing the data in 'aTheIndex'
+The trie is of two levels, the first level indexed by the high 'aBlockBits' bits of the
+character code, the second by the low bits. There is one wrinkle; if the index value, which is 16 bits,
+has its top bit set, it is not an index but the actual data value for all entries in that block.
+
+Thus the way to get the value for a code is:
+
+int index = trie_index[code >> aBlockBits];
+if (index & 0x8000)
+	value = index & ~0x8000;
+else
+	value = aTrieData[code & (1 << (16 - aBlockBits))];
+
+The data size in bytes is returned.
+The argument 'aWrite' determines whether the data is written or not.
+The arguments 'aTrie1Name' and 'aTrie2Name' are used as variable names in generated unitable.cpp.
+*/
+int write_trie(int aOutputEntrySize,int aBlockBits,bool aWrite, int *aTheIndex, int *aTrieData, char *aTrie1Name, char *aTrie2Name)
+	{
+	int n = 0; // number of entries used in trie_data
+
+	int block_size = 1 << aBlockBits;
+	int blocks = 1 << (16 - aBlockBits);
+
+	int* trie_index = new int[blocks];
+	int* block = new int[block_size];
+
+	for (int block_index = 0; block_index < blocks; block_index++)
+		{
+		// Write the data for the current block.
+		int block_start = block_index * block_size;
+		bool all_the_same = true;
+		for (int code = 0; code < block_size; code++)
+			{
+			block[code] = aTheIndex[block_start + code];
+			if (block[code] != block[0])
+				all_the_same = false;
+			}
+
+		// Try to find a match for it.
+		int insert_at;
+		if (all_the_same)
+			trie_index[block_index] = block[0] | 0x8000;
+		else
+			{
+			for (insert_at = 0; insert_at < n; insert_at++)
+				{
+				int entries = n - insert_at;
+				if (entries > block_size)
+					entries = block_size;
+				int bytes = entries * sizeof(int);
+				if (memcmp(block,aTrieData + insert_at,bytes) == 0)
+					break;
+				}
+
+			memcpy(aTrieData + insert_at,block,block_size * sizeof(int));
+			if (insert_at + block_size > n)
+				n = insert_at + block_size;
+			trie_index[block_index] = insert_at;
+			}
+		}
+
+	if (aWrite)
+		{
+		write_table(trie_index,aTrie1Name,blocks,4,2,false,16,true);
+		write_table(aTrieData,aTrie2Name,n,4,aOutputEntrySize,false,32,true);
+		}
+
+	delete [] trie_index;
+	delete [] block;
+
+	return blocks * 2 + n * aOutputEntrySize;
+	}
+
+// Write the best possible 2-level trie for all planes, trying block sizes of 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096 and 8192
+// @return Data size in bytes.
+int write_trie()
+	{
+	int byteCount = 0;
+	for (int plane=0; plane<PlaneCount; plane++)
+		{
+		int best_data_size = 1 << 30;
+		int best_bits = 0;
+
+		int outputEntrySize = 2;
+		char trie1Name[255];
+		char trie2Name[255];
+		sprintf(trie1Name, "ThePlane%02dTrieIndex1", plane);
+		sprintf(trie2Name, "ThePlane%02dTrieIndex2", plane);
+		int *theIndex = TheIndex + plane * 0x10000;
+		int *trieData = trie_data + plane * 0x10000;
+
+		for (int cur_bits = 3; cur_bits < 14; cur_bits++)
+			{
+			int cur_data_size = write_trie(outputEntrySize, cur_bits, false, theIndex, trieData, trie1Name, trie2Name);
+			if (cur_data_size < best_data_size)
+				{
+				best_bits = cur_bits;
+				best_data_size = cur_data_size;
+				}
+			}
+
+		byteCount += write_trie(outputEntrySize, best_bits, true, theIndex, trieData, trie1Name, trie2Name);
+		ThePlanesInReadType[plane].iCodesPerBlock = (TUint8) best_bits;
+		ThePlanesInReadType[plane].iMaskForCodePoint = (TUint16) ((1 << (best_bits)) - 1);
+		ThePlanesInReadType[plane].iMaskForBlock = (TUint16) (~(ThePlanesInReadType[plane].iMaskForCodePoint));
+		}
+	return byteCount;
+	}
+
+/*
+Compare entries in the decompose table for the purpose of sorting them. The entries are indices
+into the starting words of compositions stored in the composition buffer.
+*/
+int compare_decompositions(const void *p,const void *q)
+	{
+	// Get the indexes.
+	TInt16 index1 = *((const TInt16 *)p);
+	TInt16 index2 = *((const TInt16 *)q);
+
+	// Compare the two composition strings.
+	return TUnicode::Compare((TUint16 *)&CompositionBuffer[index1 + 2], CompositionBuffer[index1 + 1]*2,
+							 (TUint16 *)&CompositionBuffer[index2 + 2], CompositionBuffer[index2 + 1]*2);
+	}
+
+// Write the output file.
+void write_output()
+	{
+	int data_bytes = 0;
+
+	// Write the comment at the top of the file
+	fprintf(output_file, "// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).\n");
+	fprintf(output_file, "// All rights reserved.\n");
+	fprintf(output_file, "// This component and the accompanying materials are made available\n");
+	fprintf(output_file, "// under the terms of the License \"Eclipse Public License v1.0\"\n");
+	fprintf(output_file, "// which accompanies this distribution, and is available\n");
+	fprintf(output_file, "// at the URL \"http://www.eclipse.org/legal/epl-v10.html\".\n");
+	fprintf(output_file, "//\n");
+	fprintf(output_file, "// Initial Contributors:\n");
+	fprintf(output_file, "// Nokia Corporation - initial contribution.\n");
+	fprintf(output_file, "//\n");
+	fprintf(output_file, "// Contributors:\n");
+	fprintf(output_file, "//\n");
+	fprintf(output_file, "// Description:\n");
+
+	fprintf(output_file,
+			"// Unicode character information tables.\n"
+			"// Written by the READTYPE program.\n"
+			"// Please read the 'Unicode Character Data and Line Break data Update History.doc' file for detailed history of updates to this file.\n"
+			"// This file was generated by the READTYPE tool using UCD 5.0.\n"
+			"// The contents of this file were generated automatically. Please do not edit this manually.\n"
+			"//\n"
+			"//\n"
+			"\n");
+
+	// Write the directive to include the header file.
+	fprintf(output_file,"#include <unicode.h>\n\n");
+
+	// Export two variables for unicode.cpp.
+	fprintf(output_file, "\n");
+	fprintf(output_file, "// Declarations for tables held in unitable.cpp and used by unicode.cpp.\n");
+	fprintf(output_file, "extern const TStandardUnicodeDataSet TheStandardUnicodeDataSet[];\n");
+	fprintf(output_file, "extern const TUnicodePlane ThePlanes[17];\n\n\n");
+
+	// Write the trie data.
+	data_bytes += write_trie();
+
+	// Write the character information table.
+	fprintf(output_file,"static const TUnicodeData TheUnicodeData[] =\n\t{ // %d entries\n", Datas);
+	int i;
+	for (i = 0; i < Datas; i++)
+		{
+		fputc('\t',output_file);
+		TheData[i].Write();
+		if (i < Datas - 1)
+			fputc(',',output_file);
+		fprintf(output_file, "\t// 0x%X (%d)", i, i);
+		fputc('\n',output_file);
+		}
+	fprintf(output_file,"\t};\n\n");
+	data_bytes += Datas * sizeof(Data);
+
+	// write plane properties
+	fprintf(output_file, "const TUnicodePlane ThePlanes[%d] =\n\t{\n", PlaneCount);
+	int plane;
+	for (plane=0; plane<=16; plane++)
+		{
+		fprintf(output_file, "\t{%d, 0x%04X, 0x%04X }",
+			ThePlanesInReadType[plane].iCodesPerBlock, ThePlanesInReadType[plane].iMaskForBlock, ThePlanesInReadType[plane].iMaskForCodePoint);
+		if (plane < 16)
+			fprintf(output_file, ",\n");
+		}
+	fprintf(output_file, "\n\t};\n\n");
+	data_bytes += 5*PlaneCount;
+
+	// Write a data structure referring to the trie data.
+	fprintf(output_file,"const TStandardUnicodeDataSet TheStandardUnicodeDataSet[] =\n\t{ // %d entries\n", PlaneCount);
+	for (plane=0; plane<=16; plane++)
+		{
+		fprintf(output_file,"\t{ ThePlane%02dTrieIndex1, ThePlane%02dTrieIndex2, TheUnicodeData }", plane, plane);
+		if (plane < 16)
+			fprintf(output_file, ",\n");
+		}
+	fprintf(output_file, "\n\t};\n\n");
+	data_bytes += 12*PlaneCount;
+
+	// Convert the fold table to lower case.
+	for (i = 0; i < 256; i++)
+		FoldTable[i] = LowerCaseTable[FoldTable[i]];
+
+	// Make 00A0 (non-break space) fold to space.
+	FoldTable[0xA0] = 0x20;
+
+	// Make unassigned characters in the CJK width fold table fold to themselves.
+	for (i = 0; i < 256; i++)
+		if (CjkWidthFoldTable[i] == 0)
+			CjkWidthFoldTable[i] = (TUint16)(0xFF00 + i);
+
+	// Write the special tables
+	data_bytes += write_table(FoldTable,"TUnicode::FoldTable",256,2,2,false,16,true);
+	data_bytes += write_table(CjkWidthFoldTable,"TUnicode::CjkWidthFoldTable",256,2,2,false,16,true);
+
+	// Write the number of data bytes at the end of the file.
+	fprintf(output_file,"\n// The tables and structures contain %d bytes of data.\n",data_bytes);
+	}
+
+int main(int argc,char **argv)
+	{
+	if (argc < 2)
+		{
+		fputs("usage: readtype <input-file> <output-file>",stderr);
+		exit(1);
+		}
+
+	input_filename = argv[1];
+	output_filename = argv[2];
+
+	// Locale support in previous version is deprecated.
+
+	input_file = fopen(input_filename,"r");
+	if (!input_file)
+		{
+		fprintf(stderr,"cannot open input file %s\n",input_filename);
+		exit(1);
+		}
+	output_file = fopen(output_filename,"w");
+	if (!output_file)
+		{
+		fprintf(stderr,"cannot open output file %s\n",output_filename);
+		exit(1);
+		}
+
+	Data range_info;		// attributes of the current range
+	Data unassigned_info;	// attributes used for unassigned characters; the default constructor
+							// sets the category to Cn, bidirectional category to L, everything else to 0.
+	TBool first = true;
+	
+	char line[1024];
+	const int Fields = 15;
+	char *field[Fields];
+	TInt prev_code = 0;
+	while (fgets(line,sizeof(line),input_file))
+		{
+		// Strip trailing newline if any.
+		int length = strlen(line);
+		if (length && line[length - 1] == '\n')
+			line[length - 1] = 0;
+
+		// Parse into fields.
+		int n = 1;
+		field[0] = line;
+		for (char *p = line; *p; p++)
+			if (*p == ';' && n < Fields)
+				{
+				*p = 0;
+				field[n++] = p + 1;
+				}
+
+		// Ignore the line if there is only one field.
+		if (n == 1)
+			continue;
+
+		// Extract fields of interest.
+
+		// Field 0: Unicode value in hexadecimal.
+		int code = hex(field[0]);
+
+		// Field 2: Category.
+		Data cur_info;
+		cur_info.iCategory = (TUint8)Category(field[2], true);
+
+		// Field 3: Combining class.
+		cur_info.iCombiningClass = (TUint8)atoi(field[3]);
+		
+		// Field 4: Bidirectional category.
+		cur_info.iBdCategory = (TUint8)BdCategory(field[4], true);
+
+		// Prepare to determine the folded version (converted to lower case, stripped of accents).
+		int folded_code = code;
+
+		// Field 5: Character decomposition.
+		if (field[5][0])
+			{
+			int components = 0;
+			const int MaxComponents = 18;		// FDFA; ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM has 18 components!
+			TUint32 component[MaxComponents];
+
+			// Extract the tag if any.
+			char *p = field[5];
+			const char *tag = NULL;
+			if (field[5][0] == '<')
+				{
+				tag = ++p;
+				while (*p && *p != '>')
+					p++;
+				if (!*p)
+					{
+					fprintf(stderr,"syntax error: missing > on the line for code %x\n",code);
+					exit(1);
+					}
+				*p++ = 0;
+				}
+
+			// Read the components.
+			while (*p)
+				{
+				while (*p == ' ')
+					p++;
+				if (components >= MaxComponents)
+					{
+					fprintf(stderr,"decomposition of %x has too many components: increase MaxComponents\n",code);
+					exit(1);
+					}
+				component[components++] = hex(p);
+				while (*p && *p != ' ')
+					p++;
+				}
+
+			// Store the composition if it has a null tag and is therefore canonical.
+			if (tag == NULL)
+				{
+				// Put its index into the tables.
+				if (Compositions >= MaxCompositions)
+					{
+					fprintf(stderr,"too many compositions (at code %x): increase MaxCompositions\n",code);
+					exit(1);
+					}
+				if (CompositionWords >= 65535)
+					{
+					fprintf(stderr, "too many compositions (at code %x): need 32 bit!?\n", code);
+					exit(1);
+					}
+				Compose[Compositions] = Decompose[Compositions] = (TInt16)CompositionWords;
+				Compositions++;
+
+				// Put it into the composition buffer.
+				if (CompositionWords + 2 + components >= MaxCompositionWords)
+					{
+					fprintf(stderr,"too many compositions (at code %x): increase MaxCompositionWords\n",code);
+					exit(1);
+					}
+				CompositionBuffer[CompositionWords++] = code;
+				CompositionBuffer[CompositionWords++] = components;
+				for (int i = 0; i < components; i++)
+					CompositionBuffer[CompositionWords++] = component[i];
+				}
+			
+			// Store the code used in the ordinary and CJK fold tables.
+			if (components > 0)
+				{
+				if (code < 256)
+					{
+					if (tag == NULL)
+						folded_code = component[0];
+					}
+				else if (code >= 0xFF00 && code <= 0xFFEE)	// tag will always be <wide> or <narrow>
+					folded_code = component[0];
+				}
+			}
+
+		// Field 8. Numeric value.
+		if (field[8][0])
+			{
+			if (field[8][1] == '/' || field[8][2] == '/')		// fractions
+				cur_info.iFlags |= TUnicodeData::EFraction;
+			else
+				{
+				int value = atoi(field[8]);
+				if (value >= 0 && value <= 255)
+					{
+					cur_info.iDigitOffset = (TUint8)((value - (code & 255)) & 255);
+					cur_info.iFlags |= TUnicodeData::ESmallNumeric;
+					}
+				else if (value == 500)
+					cur_info.iFlags |= TUnicodeData::EFiveHundred;
+				else if (value == 1000)
+					cur_info.iFlags |= TUnicodeData::EOneThousand;
+				else if (value == 5000)
+					cur_info.iFlags |= TUnicodeData::EFiveThousand;
+				else if (value == 10000)
+					cur_info.iFlags |= TUnicodeData::ETenThousand;
+				else if (value == 100000)
+					cur_info.iFlags |= TUnicodeData::EHundredThousand;
+				else
+					fprintf(stderr,"Warning: U+%X has a large numeric property with unrepresentable value %d. Ignored.\n",code,value);
+				}
+			}
+
+		// Field 9: Mirrored property.
+		if (field[9][0] == 'Y')
+			cur_info.iFlags |= TUnicodeData::EMirrored;
+
+		// Fields 12, 13, 14: Case variants.
+		int uc = code, lc = code, tc = code;
+		if (field[12][0])
+			{
+			uc = hex(field[12]);
+			int uc_offset = uc - code;
+			if (abs(uc_offset) > 32767)
+				{
+				fprintf(stderr, "Warning: offset to upper case is too large: code %X, upper case %X, offset %X. Ignored!\n", code, uc, uc_offset);
+				}
+			else
+				{
+				cur_info.iFlags |= TUnicodeData::EHasUpperCase;
+				cur_info.iCaseOffset = (TInt16)(-uc_offset);
+				if (code<0x10000 && uc>0x10000 || code>0x10000 && uc<0x10000)
+					fprintf(stderr, "Info: %X and its upper case %X locate at different planes.\n");
+				}
+			}
+		if (field[13][0])
+			{
+			lc = hex(field[13]);
+			int lc_offset = lc - code;
+			if (abs(lc_offset) > 32767)
+				{
+				fprintf(stderr, "Warning: offset to lower case is too large: code %X, lower case %X, offset %X. Ignored!\n", code, lc, lc_offset);
+				}
+			else
+				{
+				cur_info.iFlags |= TUnicodeData::EHasLowerCase;
+				cur_info.iCaseOffset = (TInt16)lc_offset;
+				if (code<0x10000 && lc>0x10000 || code>0x10000 && lc<0x10000)
+					fprintf(stderr, "Info: %X and its lower case %X locate at different planes.\n");
+				}
+			}
+		if (field[14][0])
+			tc = hex(field[14]);
+		if (tc != lc && tc != uc)
+			cur_info.iFlags |= TUnicodeData::EHasTitleCase;
+
+		// If this code is < 256 fill in the entries in the special tables.
+		if (code < 256)
+			{
+			LowerCaseTable[code] = (TUint16)lc;
+			FoldTable[code] = (TUint16)folded_code;
+			}
+
+		// If the code is >= 0xFF00 fill in the entry in the CJK width folding table.
+		else if (code >= 0xFF00 && code <= 0xFFFF)
+			CjkWidthFoldTable[code & 0xFF] = (TUint16)folded_code;
+
+		/*
+		If there was a gap between this code and the previous one, write an 'unassigned' range,
+		unless this character is actually the end of a range not fully listed (like the CJK ideographs
+		from 4E00 to 9FA5 inclusive), in which case the character name will end in ' Last>'.
+		*/
+		if (code - prev_code > 1)
+			{
+			TBool last_in_range = false;
+			int name_length = strlen(field[1]);
+			if (name_length >= 6 && !strcmp(field[1] + name_length - 6," Last>"))
+				last_in_range = TRUE;
+			if (!last_in_range)
+				{
+				add_range(unassigned_info,prev_code + 1);
+				range_info = unassigned_info;
+				}
+			}
+
+		// Write the range.
+		if (first || cur_info != range_info)
+			{
+			add_range(cur_info,code);
+			range_info = cur_info;
+			}
+
+		first = false;
+		prev_code = code;
+		}
+
+	/*
+	If there was a gap at the end of the encoding (there is at present; FFFE and FFFF are not Unicode characters)
+	write an 'unassigned' range.
+	*/
+	if (prev_code < 0xFFFF)
+		add_range(unassigned_info,prev_code + 1);
+
+	// Write an array of indices from Unicode character values to character data sets.
+	for (int i = 0; i < Ranges; i++)
+		{
+		TUint32 end = i < Ranges - 1 ? TheRange[i + 1].iRangeStart : 0x110000;
+		for (TUint32 j = TheRange[i].iRangeStart; j < end; j++)
+			TheIndex[j] = TheRange[i].iIndex;
+		}
+
+	// Write the output file.
+	write_output();
+	printf("\nDone.\n");
+
+	return 0;
+	}
+
+Data::Data()
+	{
+	iCategory = TChar::ECnCategory;
+	iBdCategory = TChar::ELeftToRight;
+	iCombiningClass = 0;
+	iDigitOffset = 0;
+	iCaseOffset = 0;
+	iFlags = 0;
+	}
+
+TBool Data::operator==(const Data& c) const
+	{
+	return iCategory == c.iCategory &&
+		   iBdCategory == c.iBdCategory &&
+		   iCombiningClass == c.iCombiningClass &&
+		   iDigitOffset == c.iDigitOffset &&
+		   iCaseOffset == c.iCaseOffset &&
+		   iFlags == c.iFlags;
+	}
+
+/*
+This function is copied from unicode.cpp: having it here saves me having to link in unicode.cpp and
+unitable.cpp, which is probably the file we're trying to write!
+*/
+TInt TUnicode::Compare(const TUint16 *aString1,TInt aLength1,const TUint16 *aString2,TInt aLength2)
+	{
+	for (TInt i = 0; i < aLength1 || i < aLength2; i++, aString1++, aString2++)
+		{
+		TInt x = i < aLength1 ? *aString1 : -1;
+		TInt y = i < aLength2 ? *aString2 : -1;
+		if (x != y)
+			return x - y;
+		}
+	return 0;
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/readtype/unicodedata-3.0.0.txt	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10618 @@
+0000;<control>;Cc;0;BN;;;;;N;NULL;;;;
+0001;<control>;Cc;0;BN;;;;;N;START OF HEADING;;;;
+0002;<control>;Cc;0;BN;;;;;N;START OF TEXT;;;;
+0003;<control>;Cc;0;BN;;;;;N;END OF TEXT;;;;
+0004;<control>;Cc;0;BN;;;;;N;END OF TRANSMISSION;;;;
+0005;<control>;Cc;0;BN;;;;;N;ENQUIRY;;;;
+0006;<control>;Cc;0;BN;;;;;N;ACKNOWLEDGE;;;;
+0007;<control>;Cc;0;BN;;;;;N;BELL;;;;
+0008;<control>;Cc;0;BN;;;;;N;BACKSPACE;;;;
+0009;<control>;Cc;0;S;;;;;N;HORIZONTAL TABULATION;;;;
+000A;<control>;Cc;0;B;;;;;N;LINE FEED;;;;
+000B;<control>;Cc;0;S;;;;;N;VERTICAL TABULATION;;;;
+000C;<control>;Cc;0;WS;;;;;N;FORM FEED;;;;
+000D;<control>;Cc;0;B;;;;;N;CARRIAGE RETURN;;;;
+000E;<control>;Cc;0;BN;;;;;N;SHIFT OUT;;;;
+000F;<control>;Cc;0;BN;;;;;N;SHIFT IN;;;;
+0010;<control>;Cc;0;BN;;;;;N;DATA LINK ESCAPE;;;;
+0011;<control>;Cc;0;BN;;;;;N;DEVICE CONTROL ONE;;;;
+0012;<control>;Cc;0;BN;;;;;N;DEVICE CONTROL TWO;;;;
+0013;<control>;Cc;0;BN;;;;;N;DEVICE CONTROL THREE;;;;
+0014;<control>;Cc;0;BN;;;;;N;DEVICE CONTROL FOUR;;;;
+0015;<control>;Cc;0;BN;;;;;N;NEGATIVE ACKNOWLEDGE;;;;
+0016;<control>;Cc;0;BN;;;;;N;SYNCHRONOUS IDLE;;;;
+0017;<control>;Cc;0;BN;;;;;N;END OF TRANSMISSION BLOCK;;;;
+0018;<control>;Cc;0;BN;;;;;N;CANCEL;;;;
+0019;<control>;Cc;0;BN;;;;;N;END OF MEDIUM;;;;
+001A;<control>;Cc;0;BN;;;;;N;SUBSTITUTE;;;;
+001B;<control>;Cc;0;BN;;;;;N;ESCAPE;;;;
+001C;<control>;Cc;0;B;;;;;N;FILE SEPARATOR;;;;
+001D;<control>;Cc;0;B;;;;;N;GROUP SEPARATOR;;;;
+001E;<control>;Cc;0;B;;;;;N;RECORD SEPARATOR;;;;
+001F;<control>;Cc;0;S;;;;;N;UNIT SEPARATOR;;;;
+0020;SPACE;Zs;0;WS;;;;;N;;;;;
+0021;EXCLAMATION MARK;Po;0;ON;;;;;N;;;;;
+0022;QUOTATION MARK;Po;0;ON;;;;;N;;;;;
+0023;NUMBER SIGN;Po;0;ET;;;;;N;;;;;
+0024;DOLLAR SIGN;Sc;0;ET;;;;;N;;;;;
+0025;PERCENT SIGN;Po;0;ET;;;;;N;;;;;
+0026;AMPERSAND;Po;0;ON;;;;;N;;;;;
+0027;APOSTROPHE;Po;0;ON;;;;;N;APOSTROPHE-QUOTE;;;;
+0028;LEFT PARENTHESIS;Ps;0;ON;;;;;Y;OPENING PARENTHESIS;;;;
+0029;RIGHT PARENTHESIS;Pe;0;ON;;;;;Y;CLOSING PARENTHESIS;;;;
+002A;ASTERISK;Po;0;ON;;;;;N;;;;;
+002B;PLUS SIGN;Sm;0;ET;;;;;N;;;;;
+002C;COMMA;Po;0;CS;;;;;N;;;;;
+002D;HYPHEN-MINUS;Pd;0;ET;;;;;N;;;;;
+002E;FULL STOP;Po;0;CS;;;;;N;PERIOD;;;;
+002F;SOLIDUS;Po;0;ES;;;;;N;SLASH;;;;
+0030;DIGIT ZERO;Nd;0;EN;;0;0;0;N;;;;;
+0031;DIGIT ONE;Nd;0;EN;;1;1;1;N;;;;;
+0032;DIGIT TWO;Nd;0;EN;;2;2;2;N;;;;;
+0033;DIGIT THREE;Nd;0;EN;;3;3;3;N;;;;;
+0034;DIGIT FOUR;Nd;0;EN;;4;4;4;N;;;;;
+0035;DIGIT FIVE;Nd;0;EN;;5;5;5;N;;;;;
+0036;DIGIT SIX;Nd;0;EN;;6;6;6;N;;;;;
+0037;DIGIT SEVEN;Nd;0;EN;;7;7;7;N;;;;;
+0038;DIGIT EIGHT;Nd;0;EN;;8;8;8;N;;;;;
+0039;DIGIT NINE;Nd;0;EN;;9;9;9;N;;;;;
+003A;COLON;Po;0;CS;;;;;N;;;;;
+003B;SEMICOLON;Po;0;ON;;;;;N;;;;;
+003C;LESS-THAN SIGN;Sm;0;ON;;;;;Y;;;;;
+003D;EQUALS SIGN;Sm;0;ON;;;;;N;;;;;
+003E;GREATER-THAN SIGN;Sm;0;ON;;;;;Y;;;;;
+003F;QUESTION MARK;Po;0;ON;;;;;N;;;;;
+0040;COMMERCIAL AT;Po;0;ON;;;;;N;;;;;
+0041;LATIN CAPITAL LETTER A;Lu;0;L;;;;;N;;;;0061;
+0042;LATIN CAPITAL LETTER B;Lu;0;L;;;;;N;;;;0062;
+0043;LATIN CAPITAL LETTER C;Lu;0;L;;;;;N;;;;0063;
+0044;LATIN CAPITAL LETTER D;Lu;0;L;;;;;N;;;;0064;
+0045;LATIN CAPITAL LETTER E;Lu;0;L;;;;;N;;;;0065;
+0046;LATIN CAPITAL LETTER F;Lu;0;L;;;;;N;;;;0066;
+0047;LATIN CAPITAL LETTER G;Lu;0;L;;;;;N;;;;0067;
+0048;LATIN CAPITAL LETTER H;Lu;0;L;;;;;N;;;;0068;
+0049;LATIN CAPITAL LETTER I;Lu;0;L;;;;;N;;;;0069;
+004A;LATIN CAPITAL LETTER J;Lu;0;L;;;;;N;;;;006A;
+004B;LATIN CAPITAL LETTER K;Lu;0;L;;;;;N;;;;006B;
+004C;LATIN CAPITAL LETTER L;Lu;0;L;;;;;N;;;;006C;
+004D;LATIN CAPITAL LETTER M;Lu;0;L;;;;;N;;;;006D;
+004E;LATIN CAPITAL LETTER N;Lu;0;L;;;;;N;;;;006E;
+004F;LATIN CAPITAL LETTER O;Lu;0;L;;;;;N;;;;006F;
+0050;LATIN CAPITAL LETTER P;Lu;0;L;;;;;N;;;;0070;
+0051;LATIN CAPITAL LETTER Q;Lu;0;L;;;;;N;;;;0071;
+0052;LATIN CAPITAL LETTER R;Lu;0;L;;;;;N;;;;0072;
+0053;LATIN CAPITAL LETTER S;Lu;0;L;;;;;N;;;;0073;
+0054;LATIN CAPITAL LETTER T;Lu;0;L;;;;;N;;;;0074;
+0055;LATIN CAPITAL LETTER U;Lu;0;L;;;;;N;;;;0075;
+0056;LATIN CAPITAL LETTER V;Lu;0;L;;;;;N;;;;0076;
+0057;LATIN CAPITAL LETTER W;Lu;0;L;;;;;N;;;;0077;
+0058;LATIN CAPITAL LETTER X;Lu;0;L;;;;;N;;;;0078;
+0059;LATIN CAPITAL LETTER Y;Lu;0;L;;;;;N;;;;0079;
+005A;LATIN CAPITAL LETTER Z;Lu;0;L;;;;;N;;;;007A;
+005B;LEFT SQUARE BRACKET;Ps;0;ON;;;;;Y;OPENING SQUARE BRACKET;;;;
+005C;REVERSE SOLIDUS;Po;0;ON;;;;;N;BACKSLASH;;;;
+005D;RIGHT SQUARE BRACKET;Pe;0;ON;;;;;Y;CLOSING SQUARE BRACKET;;;;
+005E;CIRCUMFLEX ACCENT;Sk;0;ON;;;;;N;SPACING CIRCUMFLEX;;;;
+005F;LOW LINE;Pc;0;ON;;;;;N;SPACING UNDERSCORE;;;;
+0060;GRAVE ACCENT;Sk;0;ON;;;;;N;SPACING GRAVE;;;;
+0061;LATIN SMALL LETTER A;Ll;0;L;;;;;N;;;0041;;0041
+0062;LATIN SMALL LETTER B;Ll;0;L;;;;;N;;;0042;;0042
+0063;LATIN SMALL LETTER C;Ll;0;L;;;;;N;;;0043;;0043
+0064;LATIN SMALL LETTER D;Ll;0;L;;;;;N;;;0044;;0044
+0065;LATIN SMALL LETTER E;Ll;0;L;;;;;N;;;0045;;0045
+0066;LATIN SMALL LETTER F;Ll;0;L;;;;;N;;;0046;;0046
+0067;LATIN SMALL LETTER G;Ll;0;L;;;;;N;;;0047;;0047
+0068;LATIN SMALL LETTER H;Ll;0;L;;;;;N;;;0048;;0048
+0069;LATIN SMALL LETTER I;Ll;0;L;;;;;N;;;0049;;0049
+006A;LATIN SMALL LETTER J;Ll;0;L;;;;;N;;;004A;;004A
+006B;LATIN SMALL LETTER K;Ll;0;L;;;;;N;;;004B;;004B
+006C;LATIN SMALL LETTER L;Ll;0;L;;;;;N;;;004C;;004C
+006D;LATIN SMALL LETTER M;Ll;0;L;;;;;N;;;004D;;004D
+006E;LATIN SMALL LETTER N;Ll;0;L;;;;;N;;;004E;;004E
+006F;LATIN SMALL LETTER O;Ll;0;L;;;;;N;;;004F;;004F
+0070;LATIN SMALL LETTER P;Ll;0;L;;;;;N;;;0050;;0050
+0071;LATIN SMALL LETTER Q;Ll;0;L;;;;;N;;;0051;;0051
+0072;LATIN SMALL LETTER R;Ll;0;L;;;;;N;;;0052;;0052
+0073;LATIN SMALL LETTER S;Ll;0;L;;;;;N;;;0053;;0053
+0074;LATIN SMALL LETTER T;Ll;0;L;;;;;N;;;0054;;0054
+0075;LATIN SMALL LETTER U;Ll;0;L;;;;;N;;;0055;;0055
+0076;LATIN SMALL LETTER V;Ll;0;L;;;;;N;;;0056;;0056
+0077;LATIN SMALL LETTER W;Ll;0;L;;;;;N;;;0057;;0057
+0078;LATIN SMALL LETTER X;Ll;0;L;;;;;N;;;0058;;0058
+0079;LATIN SMALL LETTER Y;Ll;0;L;;;;;N;;;0059;;0059
+007A;LATIN SMALL LETTER Z;Ll;0;L;;;;;N;;;005A;;005A
+007B;LEFT CURLY BRACKET;Ps;0;ON;;;;;Y;OPENING CURLY BRACKET;;;;
+007C;VERTICAL LINE;Sm;0;ON;;;;;N;VERTICAL BAR;;;;
+007D;RIGHT CURLY BRACKET;Pe;0;ON;;;;;Y;CLOSING CURLY BRACKET;;;;
+007E;TILDE;Sm;0;ON;;;;;N;;;;;
+007F;<control>;Cc;0;BN;;;;;N;DELETE;;;;
+0080;<control>;Cc;0;BN;;;;;N;;;;;
+0081;<control>;Cc;0;BN;;;;;N;;;;;
+0082;<control>;Cc;0;BN;;;;;N;BREAK PERMITTED HERE;;;;
+0083;<control>;Cc;0;BN;;;;;N;NO BREAK HERE;;;;
+0084;<control>;Cc;0;BN;;;;;N;INDEX;;;;
+0085;<control>;Cc;0;B;;;;;N;NEXT LINE;;;;
+0086;<control>;Cc;0;BN;;;;;N;START OF SELECTED AREA;;;;
+0087;<control>;Cc;0;BN;;;;;N;END OF SELECTED AREA;;;;
+0088;<control>;Cc;0;BN;;;;;N;CHARACTER TABULATION SET;;;;
+0089;<control>;Cc;0;BN;;;;;N;CHARACTER TABULATION WITH JUSTIFICATION;;;;
+008A;<control>;Cc;0;BN;;;;;N;LINE TABULATION SET;;;;
+008B;<control>;Cc;0;BN;;;;;N;PARTIAL LINE DOWN;;;;
+008C;<control>;Cc;0;BN;;;;;N;PARTIAL LINE UP;;;;
+008D;<control>;Cc;0;BN;;;;;N;REVERSE LINE FEED;;;;
+008E;<control>;Cc;0;BN;;;;;N;SINGLE SHIFT TWO;;;;
+008F;<control>;Cc;0;BN;;;;;N;SINGLE SHIFT THREE;;;;
+0090;<control>;Cc;0;BN;;;;;N;DEVICE CONTROL STRING;;;;
+0091;<control>;Cc;0;BN;;;;;N;PRIVATE USE ONE;;;;
+0092;<control>;Cc;0;BN;;;;;N;PRIVATE USE TWO;;;;
+0093;<control>;Cc;0;BN;;;;;N;SET TRANSMIT STATE;;;;
+0094;<control>;Cc;0;BN;;;;;N;CANCEL CHARACTER;;;;
+0095;<control>;Cc;0;BN;;;;;N;MESSAGE WAITING;;;;
+0096;<control>;Cc;0;BN;;;;;N;START OF GUARDED AREA;;;;
+0097;<control>;Cc;0;BN;;;;;N;END OF GUARDED AREA;;;;
+0098;<control>;Cc;0;BN;;;;;N;START OF STRING;;;;
+0099;<control>;Cc;0;BN;;;;;N;;;;;
+009A;<control>;Cc;0;BN;;;;;N;SINGLE CHARACTER INTRODUCER;;;;
+009B;<control>;Cc;0;BN;;;;;N;CONTROL SEQUENCE INTRODUCER;;;;
+009C;<control>;Cc;0;BN;;;;;N;STRING TERMINATOR;;;;
+009D;<control>;Cc;0;BN;;;;;N;OPERATING SYSTEM COMMAND;;;;
+009E;<control>;Cc;0;BN;;;;;N;PRIVACY MESSAGE;;;;
+009F;<control>;Cc;0;BN;;;;;N;APPLICATION PROGRAM COMMAND;;;;
+00A0;NO-BREAK SPACE;Zs;0;CS;<noBreak> 0020;;;;N;NON-BREAKING SPACE;;;;
+00A1;INVERTED EXCLAMATION MARK;Po;0;ON;;;;;N;;;;;
+00A2;CENT SIGN;Sc;0;ET;;;;;N;;;;;
+00A3;POUND SIGN;Sc;0;ET;;;;;N;;;;;
+00A4;CURRENCY SIGN;Sc;0;ET;;;;;N;;;;;
+00A5;YEN SIGN;Sc;0;ET;;;;;N;;;;;
+00A6;BROKEN BAR;So;0;ON;;;;;N;BROKEN VERTICAL BAR;;;;
+00A7;SECTION SIGN;So;0;ON;;;;;N;;;;;
+00A8;DIAERESIS;Sk;0;ON;<compat> 0020 0308;;;;N;SPACING DIAERESIS;;;;
+00A9;COPYRIGHT SIGN;So;0;ON;;;;;N;;;;;
+00AA;FEMININE ORDINAL INDICATOR;Ll;0;L;<super> 0061;;;;N;;;;;
+00AB;LEFT-POINTING DOUBLE ANGLE QUOTATION MARK;Pi;0;ON;;;;;Y;LEFT POINTING GUILLEMET;*;;;
+00AC;NOT SIGN;Sm;0;ON;;;;;N;;;;;
+00AD;SOFT HYPHEN;Pd;0;ON;;;;;N;;;;;
+00AE;REGISTERED SIGN;So;0;ON;;;;;N;REGISTERED TRADE MARK SIGN;;;;
+00AF;MACRON;Sk;0;ON;<compat> 0020 0304;;;;N;SPACING MACRON;;;;
+00B0;DEGREE SIGN;So;0;ET;;;;;N;;;;;
+00B1;PLUS-MINUS SIGN;Sm;0;ET;;;;;N;PLUS-OR-MINUS SIGN;;;;
+00B2;SUPERSCRIPT TWO;No;0;EN;<super> 0032;2;2;2;N;SUPERSCRIPT DIGIT TWO;;;;
+00B3;SUPERSCRIPT THREE;No;0;EN;<super> 0033;3;3;3;N;SUPERSCRIPT DIGIT THREE;;;;
+00B4;ACUTE ACCENT;Sk;0;ON;<compat> 0020 0301;;;;N;SPACING ACUTE;;;;
+00B5;MICRO SIGN;Ll;0;L;<compat> 03BC;;;;N;;;039C;;039C
+00B6;PILCROW SIGN;So;0;ON;;;;;N;PARAGRAPH SIGN;;;;
+00B7;MIDDLE DOT;Po;0;ON;;;;;N;;;;;
+00B8;CEDILLA;Sk;0;ON;<compat> 0020 0327;;;;N;SPACING CEDILLA;;;;
+00B9;SUPERSCRIPT ONE;No;0;EN;<super> 0031;1;1;1;N;SUPERSCRIPT DIGIT ONE;;;;
+00BA;MASCULINE ORDINAL INDICATOR;Ll;0;L;<super> 006F;;;;N;;;;;
+00BB;RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK;Pf;0;ON;;;;;Y;RIGHT POINTING GUILLEMET;*;;;
+00BC;VULGAR FRACTION ONE QUARTER;No;0;ON;<fraction> 0031 2044 0034;;;1/4;N;FRACTION ONE QUARTER;;;;
+00BD;VULGAR FRACTION ONE HALF;No;0;ON;<fraction> 0031 2044 0032;;;1/2;N;FRACTION ONE HALF;;;;
+00BE;VULGAR FRACTION THREE QUARTERS;No;0;ON;<fraction> 0033 2044 0034;;;3/4;N;FRACTION THREE QUARTERS;;;;
+00BF;INVERTED QUESTION MARK;Po;0;ON;;;;;N;;;;;
+00C0;LATIN CAPITAL LETTER A WITH GRAVE;Lu;0;L;0041 0300;;;;N;LATIN CAPITAL LETTER A GRAVE;;;00E0;
+00C1;LATIN CAPITAL LETTER A WITH ACUTE;Lu;0;L;0041 0301;;;;N;LATIN CAPITAL LETTER A ACUTE;;;00E1;
+00C2;LATIN CAPITAL LETTER A WITH CIRCUMFLEX;Lu;0;L;0041 0302;;;;N;LATIN CAPITAL LETTER A CIRCUMFLEX;;;00E2;
+00C3;LATIN CAPITAL LETTER A WITH TILDE;Lu;0;L;0041 0303;;;;N;LATIN CAPITAL LETTER A TILDE;;;00E3;
+00C4;LATIN CAPITAL LETTER A WITH DIAERESIS;Lu;0;L;0041 0308;;;;N;LATIN CAPITAL LETTER A DIAERESIS;;;00E4;
+00C5;LATIN CAPITAL LETTER A WITH RING ABOVE;Lu;0;L;0041 030A;;;;N;LATIN CAPITAL LETTER A RING;;;00E5;
+00C6;LATIN CAPITAL LETTER AE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER A E;ash *;;00E6;
+00C7;LATIN CAPITAL LETTER C WITH CEDILLA;Lu;0;L;0043 0327;;;;N;LATIN CAPITAL LETTER C CEDILLA;;;00E7;
+00C8;LATIN CAPITAL LETTER E WITH GRAVE;Lu;0;L;0045 0300;;;;N;LATIN CAPITAL LETTER E GRAVE;;;00E8;
+00C9;LATIN CAPITAL LETTER E WITH ACUTE;Lu;0;L;0045 0301;;;;N;LATIN CAPITAL LETTER E ACUTE;;;00E9;
+00CA;LATIN CAPITAL LETTER E WITH CIRCUMFLEX;Lu;0;L;0045 0302;;;;N;LATIN CAPITAL LETTER E CIRCUMFLEX;;;00EA;
+00CB;LATIN CAPITAL LETTER E WITH DIAERESIS;Lu;0;L;0045 0308;;;;N;LATIN CAPITAL LETTER E DIAERESIS;;;00EB;
+00CC;LATIN CAPITAL LETTER I WITH GRAVE;Lu;0;L;0049 0300;;;;N;LATIN CAPITAL LETTER I GRAVE;;;00EC;
+00CD;LATIN CAPITAL LETTER I WITH ACUTE;Lu;0;L;0049 0301;;;;N;LATIN CAPITAL LETTER I ACUTE;;;00ED;
+00CE;LATIN CAPITAL LETTER I WITH CIRCUMFLEX;Lu;0;L;0049 0302;;;;N;LATIN CAPITAL LETTER I CIRCUMFLEX;;;00EE;
+00CF;LATIN CAPITAL LETTER I WITH DIAERESIS;Lu;0;L;0049 0308;;;;N;LATIN CAPITAL LETTER I DIAERESIS;;;00EF;
+00D0;LATIN CAPITAL LETTER ETH;Lu;0;L;;;;;N;;Icelandic;;00F0;
+00D1;LATIN CAPITAL LETTER N WITH TILDE;Lu;0;L;004E 0303;;;;N;LATIN CAPITAL LETTER N TILDE;;;00F1;
+00D2;LATIN CAPITAL LETTER O WITH GRAVE;Lu;0;L;004F 0300;;;;N;LATIN CAPITAL LETTER O GRAVE;;;00F2;
+00D3;LATIN CAPITAL LETTER O WITH ACUTE;Lu;0;L;004F 0301;;;;N;LATIN CAPITAL LETTER O ACUTE;;;00F3;
+00D4;LATIN CAPITAL LETTER O WITH CIRCUMFLEX;Lu;0;L;004F 0302;;;;N;LATIN CAPITAL LETTER O CIRCUMFLEX;;;00F4;
+00D5;LATIN CAPITAL LETTER O WITH TILDE;Lu;0;L;004F 0303;;;;N;LATIN CAPITAL LETTER O TILDE;;;00F5;
+00D6;LATIN CAPITAL LETTER O WITH DIAERESIS;Lu;0;L;004F 0308;;;;N;LATIN CAPITAL LETTER O DIAERESIS;;;00F6;
+00D7;MULTIPLICATION SIGN;Sm;0;ON;;;;;N;;;;;
+00D8;LATIN CAPITAL LETTER O WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER O SLASH;;;00F8;
+00D9;LATIN CAPITAL LETTER U WITH GRAVE;Lu;0;L;0055 0300;;;;N;LATIN CAPITAL LETTER U GRAVE;;;00F9;
+00DA;LATIN CAPITAL LETTER U WITH ACUTE;Lu;0;L;0055 0301;;;;N;LATIN CAPITAL LETTER U ACUTE;;;00FA;
+00DB;LATIN CAPITAL LETTER U WITH CIRCUMFLEX;Lu;0;L;0055 0302;;;;N;LATIN CAPITAL LETTER U CIRCUMFLEX;;;00FB;
+00DC;LATIN CAPITAL LETTER U WITH DIAERESIS;Lu;0;L;0055 0308;;;;N;LATIN CAPITAL LETTER U DIAERESIS;;;00FC;
+00DD;LATIN CAPITAL LETTER Y WITH ACUTE;Lu;0;L;0059 0301;;;;N;LATIN CAPITAL LETTER Y ACUTE;;;00FD;
+00DE;LATIN CAPITAL LETTER THORN;Lu;0;L;;;;;N;;Icelandic;;00FE;
+00DF;LATIN SMALL LETTER SHARP S;Ll;0;L;;;;;N;;German;;;
+00E0;LATIN SMALL LETTER A WITH GRAVE;Ll;0;L;0061 0300;;;;N;LATIN SMALL LETTER A GRAVE;;00C0;;00C0
+00E1;LATIN SMALL LETTER A WITH ACUTE;Ll;0;L;0061 0301;;;;N;LATIN SMALL LETTER A ACUTE;;00C1;;00C1
+00E2;LATIN SMALL LETTER A WITH CIRCUMFLEX;Ll;0;L;0061 0302;;;;N;LATIN SMALL LETTER A CIRCUMFLEX;;00C2;;00C2
+00E3;LATIN SMALL LETTER A WITH TILDE;Ll;0;L;0061 0303;;;;N;LATIN SMALL LETTER A TILDE;;00C3;;00C3
+00E4;LATIN SMALL LETTER A WITH DIAERESIS;Ll;0;L;0061 0308;;;;N;LATIN SMALL LETTER A DIAERESIS;;00C4;;00C4
+00E5;LATIN SMALL LETTER A WITH RING ABOVE;Ll;0;L;0061 030A;;;;N;LATIN SMALL LETTER A RING;;00C5;;00C5
+00E6;LATIN SMALL LETTER AE;Ll;0;L;;;;;N;LATIN SMALL LETTER A E;ash *;00C6;;00C6
+00E7;LATIN SMALL LETTER C WITH CEDILLA;Ll;0;L;0063 0327;;;;N;LATIN SMALL LETTER C CEDILLA;;00C7;;00C7
+00E8;LATIN SMALL LETTER E WITH GRAVE;Ll;0;L;0065 0300;;;;N;LATIN SMALL LETTER E GRAVE;;00C8;;00C8
+00E9;LATIN SMALL LETTER E WITH ACUTE;Ll;0;L;0065 0301;;;;N;LATIN SMALL LETTER E ACUTE;;00C9;;00C9
+00EA;LATIN SMALL LETTER E WITH CIRCUMFLEX;Ll;0;L;0065 0302;;;;N;LATIN SMALL LETTER E CIRCUMFLEX;;00CA;;00CA
+00EB;LATIN SMALL LETTER E WITH DIAERESIS;Ll;0;L;0065 0308;;;;N;LATIN SMALL LETTER E DIAERESIS;;00CB;;00CB
+00EC;LATIN SMALL LETTER I WITH GRAVE;Ll;0;L;0069 0300;;;;N;LATIN SMALL LETTER I GRAVE;;00CC;;00CC
+00ED;LATIN SMALL LETTER I WITH ACUTE;Ll;0;L;0069 0301;;;;N;LATIN SMALL LETTER I ACUTE;;00CD;;00CD
+00EE;LATIN SMALL LETTER I WITH CIRCUMFLEX;Ll;0;L;0069 0302;;;;N;LATIN SMALL LETTER I CIRCUMFLEX;;00CE;;00CE
+00EF;LATIN SMALL LETTER I WITH DIAERESIS;Ll;0;L;0069 0308;;;;N;LATIN SMALL LETTER I DIAERESIS;;00CF;;00CF
+00F0;LATIN SMALL LETTER ETH;Ll;0;L;;;;;N;;Icelandic;00D0;;00D0
+00F1;LATIN SMALL LETTER N WITH TILDE;Ll;0;L;006E 0303;;;;N;LATIN SMALL LETTER N TILDE;;00D1;;00D1
+00F2;LATIN SMALL LETTER O WITH GRAVE;Ll;0;L;006F 0300;;;;N;LATIN SMALL LETTER O GRAVE;;00D2;;00D2
+00F3;LATIN SMALL LETTER O WITH ACUTE;Ll;0;L;006F 0301;;;;N;LATIN SMALL LETTER O ACUTE;;00D3;;00D3
+00F4;LATIN SMALL LETTER O WITH CIRCUMFLEX;Ll;0;L;006F 0302;;;;N;LATIN SMALL LETTER O CIRCUMFLEX;;00D4;;00D4
+00F5;LATIN SMALL LETTER O WITH TILDE;Ll;0;L;006F 0303;;;;N;LATIN SMALL LETTER O TILDE;;00D5;;00D5
+00F6;LATIN SMALL LETTER O WITH DIAERESIS;Ll;0;L;006F 0308;;;;N;LATIN SMALL LETTER O DIAERESIS;;00D6;;00D6
+00F7;DIVISION SIGN;Sm;0;ON;;;;;N;;;;;
+00F8;LATIN SMALL LETTER O WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER O SLASH;;00D8;;00D8
+00F9;LATIN SMALL LETTER U WITH GRAVE;Ll;0;L;0075 0300;;;;N;LATIN SMALL LETTER U GRAVE;;00D9;;00D9
+00FA;LATIN SMALL LETTER U WITH ACUTE;Ll;0;L;0075 0301;;;;N;LATIN SMALL LETTER U ACUTE;;00DA;;00DA
+00FB;LATIN SMALL LETTER U WITH CIRCUMFLEX;Ll;0;L;0075 0302;;;;N;LATIN SMALL LETTER U CIRCUMFLEX;;00DB;;00DB
+00FC;LATIN SMALL LETTER U WITH DIAERESIS;Ll;0;L;0075 0308;;;;N;LATIN SMALL LETTER U DIAERESIS;;00DC;;00DC
+00FD;LATIN SMALL LETTER Y WITH ACUTE;Ll;0;L;0079 0301;;;;N;LATIN SMALL LETTER Y ACUTE;;00DD;;00DD
+00FE;LATIN SMALL LETTER THORN;Ll;0;L;;;;;N;;Icelandic;00DE;;00DE
+00FF;LATIN SMALL LETTER Y WITH DIAERESIS;Ll;0;L;0079 0308;;;;N;LATIN SMALL LETTER Y DIAERESIS;;0178;;0178
+0100;LATIN CAPITAL LETTER A WITH MACRON;Lu;0;L;0041 0304;;;;N;LATIN CAPITAL LETTER A MACRON;;;0101;
+0101;LATIN SMALL LETTER A WITH MACRON;Ll;0;L;0061 0304;;;;N;LATIN SMALL LETTER A MACRON;;0100;;0100
+0102;LATIN CAPITAL LETTER A WITH BREVE;Lu;0;L;0041 0306;;;;N;LATIN CAPITAL LETTER A BREVE;;;0103;
+0103;LATIN SMALL LETTER A WITH BREVE;Ll;0;L;0061 0306;;;;N;LATIN SMALL LETTER A BREVE;;0102;;0102
+0104;LATIN CAPITAL LETTER A WITH OGONEK;Lu;0;L;0041 0328;;;;N;LATIN CAPITAL LETTER A OGONEK;;;0105;
+0105;LATIN SMALL LETTER A WITH OGONEK;Ll;0;L;0061 0328;;;;N;LATIN SMALL LETTER A OGONEK;;0104;;0104
+0106;LATIN CAPITAL LETTER C WITH ACUTE;Lu;0;L;0043 0301;;;;N;LATIN CAPITAL LETTER C ACUTE;;;0107;
+0107;LATIN SMALL LETTER C WITH ACUTE;Ll;0;L;0063 0301;;;;N;LATIN SMALL LETTER C ACUTE;;0106;;0106
+0108;LATIN CAPITAL LETTER C WITH CIRCUMFLEX;Lu;0;L;0043 0302;;;;N;LATIN CAPITAL LETTER C CIRCUMFLEX;;;0109;
+0109;LATIN SMALL LETTER C WITH CIRCUMFLEX;Ll;0;L;0063 0302;;;;N;LATIN SMALL LETTER C CIRCUMFLEX;;0108;;0108
+010A;LATIN CAPITAL LETTER C WITH DOT ABOVE;Lu;0;L;0043 0307;;;;N;LATIN CAPITAL LETTER C DOT;;;010B;
+010B;LATIN SMALL LETTER C WITH DOT ABOVE;Ll;0;L;0063 0307;;;;N;LATIN SMALL LETTER C DOT;;010A;;010A
+010C;LATIN CAPITAL LETTER C WITH CARON;Lu;0;L;0043 030C;;;;N;LATIN CAPITAL LETTER C HACEK;;;010D;
+010D;LATIN SMALL LETTER C WITH CARON;Ll;0;L;0063 030C;;;;N;LATIN SMALL LETTER C HACEK;;010C;;010C
+010E;LATIN CAPITAL LETTER D WITH CARON;Lu;0;L;0044 030C;;;;N;LATIN CAPITAL LETTER D HACEK;;;010F;
+010F;LATIN SMALL LETTER D WITH CARON;Ll;0;L;0064 030C;;;;N;LATIN SMALL LETTER D HACEK;;010E;;010E
+0110;LATIN CAPITAL LETTER D WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER D BAR;;;0111;
+0111;LATIN SMALL LETTER D WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER D BAR;;0110;;0110
+0112;LATIN CAPITAL LETTER E WITH MACRON;Lu;0;L;0045 0304;;;;N;LATIN CAPITAL LETTER E MACRON;;;0113;
+0113;LATIN SMALL LETTER E WITH MACRON;Ll;0;L;0065 0304;;;;N;LATIN SMALL LETTER E MACRON;;0112;;0112
+0114;LATIN CAPITAL LETTER E WITH BREVE;Lu;0;L;0045 0306;;;;N;LATIN CAPITAL LETTER E BREVE;;;0115;
+0115;LATIN SMALL LETTER E WITH BREVE;Ll;0;L;0065 0306;;;;N;LATIN SMALL LETTER E BREVE;;0114;;0114
+0116;LATIN CAPITAL LETTER E WITH DOT ABOVE;Lu;0;L;0045 0307;;;;N;LATIN CAPITAL LETTER E DOT;;;0117;
+0117;LATIN SMALL LETTER E WITH DOT ABOVE;Ll;0;L;0065 0307;;;;N;LATIN SMALL LETTER E DOT;;0116;;0116
+0118;LATIN CAPITAL LETTER E WITH OGONEK;Lu;0;L;0045 0328;;;;N;LATIN CAPITAL LETTER E OGONEK;;;0119;
+0119;LATIN SMALL LETTER E WITH OGONEK;Ll;0;L;0065 0328;;;;N;LATIN SMALL LETTER E OGONEK;;0118;;0118
+011A;LATIN CAPITAL LETTER E WITH CARON;Lu;0;L;0045 030C;;;;N;LATIN CAPITAL LETTER E HACEK;;;011B;
+011B;LATIN SMALL LETTER E WITH CARON;Ll;0;L;0065 030C;;;;N;LATIN SMALL LETTER E HACEK;;011A;;011A
+011C;LATIN CAPITAL LETTER G WITH CIRCUMFLEX;Lu;0;L;0047 0302;;;;N;LATIN CAPITAL LETTER G CIRCUMFLEX;;;011D;
+011D;LATIN SMALL LETTER G WITH CIRCUMFLEX;Ll;0;L;0067 0302;;;;N;LATIN SMALL LETTER G CIRCUMFLEX;;011C;;011C
+011E;LATIN CAPITAL LETTER G WITH BREVE;Lu;0;L;0047 0306;;;;N;LATIN CAPITAL LETTER G BREVE;;;011F;
+011F;LATIN SMALL LETTER G WITH BREVE;Ll;0;L;0067 0306;;;;N;LATIN SMALL LETTER G BREVE;;011E;;011E
+0120;LATIN CAPITAL LETTER G WITH DOT ABOVE;Lu;0;L;0047 0307;;;;N;LATIN CAPITAL LETTER G DOT;;;0121;
+0121;LATIN SMALL LETTER G WITH DOT ABOVE;Ll;0;L;0067 0307;;;;N;LATIN SMALL LETTER G DOT;;0120;;0120
+0122;LATIN CAPITAL LETTER G WITH CEDILLA;Lu;0;L;0047 0327;;;;N;LATIN CAPITAL LETTER G CEDILLA;;;0123;
+0123;LATIN SMALL LETTER G WITH CEDILLA;Ll;0;L;0067 0327;;;;N;LATIN SMALL LETTER G CEDILLA;;0122;;0122
+0124;LATIN CAPITAL LETTER H WITH CIRCUMFLEX;Lu;0;L;0048 0302;;;;N;LATIN CAPITAL LETTER H CIRCUMFLEX;;;0125;
+0125;LATIN SMALL LETTER H WITH CIRCUMFLEX;Ll;0;L;0068 0302;;;;N;LATIN SMALL LETTER H CIRCUMFLEX;;0124;;0124
+0126;LATIN CAPITAL LETTER H WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER H BAR;;;0127;
+0127;LATIN SMALL LETTER H WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER H BAR;;0126;;0126
+0128;LATIN CAPITAL LETTER I WITH TILDE;Lu;0;L;0049 0303;;;;N;LATIN CAPITAL LETTER I TILDE;;;0129;
+0129;LATIN SMALL LETTER I WITH TILDE;Ll;0;L;0069 0303;;;;N;LATIN SMALL LETTER I TILDE;;0128;;0128
+012A;LATIN CAPITAL LETTER I WITH MACRON;Lu;0;L;0049 0304;;;;N;LATIN CAPITAL LETTER I MACRON;;;012B;
+012B;LATIN SMALL LETTER I WITH MACRON;Ll;0;L;0069 0304;;;;N;LATIN SMALL LETTER I MACRON;;012A;;012A
+012C;LATIN CAPITAL LETTER I WITH BREVE;Lu;0;L;0049 0306;;;;N;LATIN CAPITAL LETTER I BREVE;;;012D;
+012D;LATIN SMALL LETTER I WITH BREVE;Ll;0;L;0069 0306;;;;N;LATIN SMALL LETTER I BREVE;;012C;;012C
+012E;LATIN CAPITAL LETTER I WITH OGONEK;Lu;0;L;0049 0328;;;;N;LATIN CAPITAL LETTER I OGONEK;;;012F;
+012F;LATIN SMALL LETTER I WITH OGONEK;Ll;0;L;0069 0328;;;;N;LATIN SMALL LETTER I OGONEK;;012E;;012E
+0130;LATIN CAPITAL LETTER I WITH DOT ABOVE;Lu;0;L;0049 0307;;;;N;LATIN CAPITAL LETTER I DOT;;;0069;
+0131;LATIN SMALL LETTER DOTLESS I;Ll;0;L;;;;;N;;;0049;;0049
+0132;LATIN CAPITAL LIGATURE IJ;Lu;0;L;<compat> 0049 004A;;;;N;LATIN CAPITAL LETTER I J;;;0133;
+0133;LATIN SMALL LIGATURE IJ;Ll;0;L;<compat> 0069 006A;;;;N;LATIN SMALL LETTER I J;;0132;;0132
+0134;LATIN CAPITAL LETTER J WITH CIRCUMFLEX;Lu;0;L;004A 0302;;;;N;LATIN CAPITAL LETTER J CIRCUMFLEX;;;0135;
+0135;LATIN SMALL LETTER J WITH CIRCUMFLEX;Ll;0;L;006A 0302;;;;N;LATIN SMALL LETTER J CIRCUMFLEX;;0134;;0134
+0136;LATIN CAPITAL LETTER K WITH CEDILLA;Lu;0;L;004B 0327;;;;N;LATIN CAPITAL LETTER K CEDILLA;;;0137;
+0137;LATIN SMALL LETTER K WITH CEDILLA;Ll;0;L;006B 0327;;;;N;LATIN SMALL LETTER K CEDILLA;;0136;;0136
+0138;LATIN SMALL LETTER KRA;Ll;0;L;;;;;N;;Greenlandic;;;
+0139;LATIN CAPITAL LETTER L WITH ACUTE;Lu;0;L;004C 0301;;;;N;LATIN CAPITAL LETTER L ACUTE;;;013A;
+013A;LATIN SMALL LETTER L WITH ACUTE;Ll;0;L;006C 0301;;;;N;LATIN SMALL LETTER L ACUTE;;0139;;0139
+013B;LATIN CAPITAL LETTER L WITH CEDILLA;Lu;0;L;004C 0327;;;;N;LATIN CAPITAL LETTER L CEDILLA;;;013C;
+013C;LATIN SMALL LETTER L WITH CEDILLA;Ll;0;L;006C 0327;;;;N;LATIN SMALL LETTER L CEDILLA;;013B;;013B
+013D;LATIN CAPITAL LETTER L WITH CARON;Lu;0;L;004C 030C;;;;N;LATIN CAPITAL LETTER L HACEK;;;013E;
+013E;LATIN SMALL LETTER L WITH CARON;Ll;0;L;006C 030C;;;;N;LATIN SMALL LETTER L HACEK;;013D;;013D
+013F;LATIN CAPITAL LETTER L WITH MIDDLE DOT;Lu;0;L;<compat> 004C 00B7;;;;N;;;;0140;
+0140;LATIN SMALL LETTER L WITH MIDDLE DOT;Ll;0;L;<compat> 006C 00B7;;;;N;;;013F;;013F
+0141;LATIN CAPITAL LETTER L WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER L SLASH;;;0142;
+0142;LATIN SMALL LETTER L WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER L SLASH;;0141;;0141
+0143;LATIN CAPITAL LETTER N WITH ACUTE;Lu;0;L;004E 0301;;;;N;LATIN CAPITAL LETTER N ACUTE;;;0144;
+0144;LATIN SMALL LETTER N WITH ACUTE;Ll;0;L;006E 0301;;;;N;LATIN SMALL LETTER N ACUTE;;0143;;0143
+0145;LATIN CAPITAL LETTER N WITH CEDILLA;Lu;0;L;004E 0327;;;;N;LATIN CAPITAL LETTER N CEDILLA;;;0146;
+0146;LATIN SMALL LETTER N WITH CEDILLA;Ll;0;L;006E 0327;;;;N;LATIN SMALL LETTER N CEDILLA;;0145;;0145
+0147;LATIN CAPITAL LETTER N WITH CARON;Lu;0;L;004E 030C;;;;N;LATIN CAPITAL LETTER N HACEK;;;0148;
+0148;LATIN SMALL LETTER N WITH CARON;Ll;0;L;006E 030C;;;;N;LATIN SMALL LETTER N HACEK;;0147;;0147
+0149;LATIN SMALL LETTER N PRECEDED BY APOSTROPHE;Ll;0;L;<compat> 02BC 006E;;;;N;LATIN SMALL LETTER APOSTROPHE N;;;;
+014A;LATIN CAPITAL LETTER ENG;Lu;0;L;;;;;N;;Sami;;014B;
+014B;LATIN SMALL LETTER ENG;Ll;0;L;;;;;N;;Sami;014A;;014A
+014C;LATIN CAPITAL LETTER O WITH MACRON;Lu;0;L;004F 0304;;;;N;LATIN CAPITAL LETTER O MACRON;;;014D;
+014D;LATIN SMALL LETTER O WITH MACRON;Ll;0;L;006F 0304;;;;N;LATIN SMALL LETTER O MACRON;;014C;;014C
+014E;LATIN CAPITAL LETTER O WITH BREVE;Lu;0;L;004F 0306;;;;N;LATIN CAPITAL LETTER O BREVE;;;014F;
+014F;LATIN SMALL LETTER O WITH BREVE;Ll;0;L;006F 0306;;;;N;LATIN SMALL LETTER O BREVE;;014E;;014E
+0150;LATIN CAPITAL LETTER O WITH DOUBLE ACUTE;Lu;0;L;004F 030B;;;;N;LATIN CAPITAL LETTER O DOUBLE ACUTE;;;0151;
+0151;LATIN SMALL LETTER O WITH DOUBLE ACUTE;Ll;0;L;006F 030B;;;;N;LATIN SMALL LETTER O DOUBLE ACUTE;;0150;;0150
+0152;LATIN CAPITAL LIGATURE OE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER O E;;;0153;
+0153;LATIN SMALL LIGATURE OE;Ll;0;L;;;;;N;LATIN SMALL LETTER O E;;0152;;0152
+0154;LATIN CAPITAL LETTER R WITH ACUTE;Lu;0;L;0052 0301;;;;N;LATIN CAPITAL LETTER R ACUTE;;;0155;
+0155;LATIN SMALL LETTER R WITH ACUTE;Ll;0;L;0072 0301;;;;N;LATIN SMALL LETTER R ACUTE;;0154;;0154
+0156;LATIN CAPITAL LETTER R WITH CEDILLA;Lu;0;L;0052 0327;;;;N;LATIN CAPITAL LETTER R CEDILLA;;;0157;
+0157;LATIN SMALL LETTER R WITH CEDILLA;Ll;0;L;0072 0327;;;;N;LATIN SMALL LETTER R CEDILLA;;0156;;0156
+0158;LATIN CAPITAL LETTER R WITH CARON;Lu;0;L;0052 030C;;;;N;LATIN CAPITAL LETTER R HACEK;;;0159;
+0159;LATIN SMALL LETTER R WITH CARON;Ll;0;L;0072 030C;;;;N;LATIN SMALL LETTER R HACEK;;0158;;0158
+015A;LATIN CAPITAL LETTER S WITH ACUTE;Lu;0;L;0053 0301;;;;N;LATIN CAPITAL LETTER S ACUTE;;;015B;
+015B;LATIN SMALL LETTER S WITH ACUTE;Ll;0;L;0073 0301;;;;N;LATIN SMALL LETTER S ACUTE;;015A;;015A
+015C;LATIN CAPITAL LETTER S WITH CIRCUMFLEX;Lu;0;L;0053 0302;;;;N;LATIN CAPITAL LETTER S CIRCUMFLEX;;;015D;
+015D;LATIN SMALL LETTER S WITH CIRCUMFLEX;Ll;0;L;0073 0302;;;;N;LATIN SMALL LETTER S CIRCUMFLEX;;015C;;015C
+015E;LATIN CAPITAL LETTER S WITH CEDILLA;Lu;0;L;0053 0327;;;;N;LATIN CAPITAL LETTER S CEDILLA;*;;015F;
+015F;LATIN SMALL LETTER S WITH CEDILLA;Ll;0;L;0073 0327;;;;N;LATIN SMALL LETTER S CEDILLA;*;015E;;015E
+0160;LATIN CAPITAL LETTER S WITH CARON;Lu;0;L;0053 030C;;;;N;LATIN CAPITAL LETTER S HACEK;;;0161;
+0161;LATIN SMALL LETTER S WITH CARON;Ll;0;L;0073 030C;;;;N;LATIN SMALL LETTER S HACEK;;0160;;0160
+0162;LATIN CAPITAL LETTER T WITH CEDILLA;Lu;0;L;0054 0327;;;;N;LATIN CAPITAL LETTER T CEDILLA;*;;0163;
+0163;LATIN SMALL LETTER T WITH CEDILLA;Ll;0;L;0074 0327;;;;N;LATIN SMALL LETTER T CEDILLA;*;0162;;0162
+0164;LATIN CAPITAL LETTER T WITH CARON;Lu;0;L;0054 030C;;;;N;LATIN CAPITAL LETTER T HACEK;;;0165;
+0165;LATIN SMALL LETTER T WITH CARON;Ll;0;L;0074 030C;;;;N;LATIN SMALL LETTER T HACEK;;0164;;0164
+0166;LATIN CAPITAL LETTER T WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER T BAR;;;0167;
+0167;LATIN SMALL LETTER T WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER T BAR;;0166;;0166
+0168;LATIN CAPITAL LETTER U WITH TILDE;Lu;0;L;0055 0303;;;;N;LATIN CAPITAL LETTER U TILDE;;;0169;
+0169;LATIN SMALL LETTER U WITH TILDE;Ll;0;L;0075 0303;;;;N;LATIN SMALL LETTER U TILDE;;0168;;0168
+016A;LATIN CAPITAL LETTER U WITH MACRON;Lu;0;L;0055 0304;;;;N;LATIN CAPITAL LETTER U MACRON;;;016B;
+016B;LATIN SMALL LETTER U WITH MACRON;Ll;0;L;0075 0304;;;;N;LATIN SMALL LETTER U MACRON;;016A;;016A
+016C;LATIN CAPITAL LETTER U WITH BREVE;Lu;0;L;0055 0306;;;;N;LATIN CAPITAL LETTER U BREVE;;;016D;
+016D;LATIN SMALL LETTER U WITH BREVE;Ll;0;L;0075 0306;;;;N;LATIN SMALL LETTER U BREVE;;016C;;016C
+016E;LATIN CAPITAL LETTER U WITH RING ABOVE;Lu;0;L;0055 030A;;;;N;LATIN CAPITAL LETTER U RING;;;016F;
+016F;LATIN SMALL LETTER U WITH RING ABOVE;Ll;0;L;0075 030A;;;;N;LATIN SMALL LETTER U RING;;016E;;016E
+0170;LATIN CAPITAL LETTER U WITH DOUBLE ACUTE;Lu;0;L;0055 030B;;;;N;LATIN CAPITAL LETTER U DOUBLE ACUTE;;;0171;
+0171;LATIN SMALL LETTER U WITH DOUBLE ACUTE;Ll;0;L;0075 030B;;;;N;LATIN SMALL LETTER U DOUBLE ACUTE;;0170;;0170
+0172;LATIN CAPITAL LETTER U WITH OGONEK;Lu;0;L;0055 0328;;;;N;LATIN CAPITAL LETTER U OGONEK;;;0173;
+0173;LATIN SMALL LETTER U WITH OGONEK;Ll;0;L;0075 0328;;;;N;LATIN SMALL LETTER U OGONEK;;0172;;0172
+0174;LATIN CAPITAL LETTER W WITH CIRCUMFLEX;Lu;0;L;0057 0302;;;;N;LATIN CAPITAL LETTER W CIRCUMFLEX;;;0175;
+0175;LATIN SMALL LETTER W WITH CIRCUMFLEX;Ll;0;L;0077 0302;;;;N;LATIN SMALL LETTER W CIRCUMFLEX;;0174;;0174
+0176;LATIN CAPITAL LETTER Y WITH CIRCUMFLEX;Lu;0;L;0059 0302;;;;N;LATIN CAPITAL LETTER Y CIRCUMFLEX;;;0177;
+0177;LATIN SMALL LETTER Y WITH CIRCUMFLEX;Ll;0;L;0079 0302;;;;N;LATIN SMALL LETTER Y CIRCUMFLEX;;0176;;0176
+0178;LATIN CAPITAL LETTER Y WITH DIAERESIS;Lu;0;L;0059 0308;;;;N;LATIN CAPITAL LETTER Y DIAERESIS;;;00FF;
+0179;LATIN CAPITAL LETTER Z WITH ACUTE;Lu;0;L;005A 0301;;;;N;LATIN CAPITAL LETTER Z ACUTE;;;017A;
+017A;LATIN SMALL LETTER Z WITH ACUTE;Ll;0;L;007A 0301;;;;N;LATIN SMALL LETTER Z ACUTE;;0179;;0179
+017B;LATIN CAPITAL LETTER Z WITH DOT ABOVE;Lu;0;L;005A 0307;;;;N;LATIN CAPITAL LETTER Z DOT;;;017C;
+017C;LATIN SMALL LETTER Z WITH DOT ABOVE;Ll;0;L;007A 0307;;;;N;LATIN SMALL LETTER Z DOT;;017B;;017B
+017D;LATIN CAPITAL LETTER Z WITH CARON;Lu;0;L;005A 030C;;;;N;LATIN CAPITAL LETTER Z HACEK;;;017E;
+017E;LATIN SMALL LETTER Z WITH CARON;Ll;0;L;007A 030C;;;;N;LATIN SMALL LETTER Z HACEK;;017D;;017D
+017F;LATIN SMALL LETTER LONG S;Ll;0;L;<compat> 0073;;;;N;;;0053;;0053
+0180;LATIN SMALL LETTER B WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER B BAR;;;;
+0181;LATIN CAPITAL LETTER B WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER B HOOK;;;0253;
+0182;LATIN CAPITAL LETTER B WITH TOPBAR;Lu;0;L;;;;;N;LATIN CAPITAL LETTER B TOPBAR;;;0183;
+0183;LATIN SMALL LETTER B WITH TOPBAR;Ll;0;L;;;;;N;LATIN SMALL LETTER B TOPBAR;;0182;;0182
+0184;LATIN CAPITAL LETTER TONE SIX;Lu;0;L;;;;;N;;;;0185;
+0185;LATIN SMALL LETTER TONE SIX;Ll;0;L;;;;;N;;;0184;;0184
+0186;LATIN CAPITAL LETTER OPEN O;Lu;0;L;;;;;N;;;;0254;
+0187;LATIN CAPITAL LETTER C WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER C HOOK;;;0188;
+0188;LATIN SMALL LETTER C WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER C HOOK;;0187;;0187
+0189;LATIN CAPITAL LETTER AFRICAN D;Lu;0;L;;;;;N;;*;;0256;
+018A;LATIN CAPITAL LETTER D WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER D HOOK;;;0257;
+018B;LATIN CAPITAL LETTER D WITH TOPBAR;Lu;0;L;;;;;N;LATIN CAPITAL LETTER D TOPBAR;;;018C;
+018C;LATIN SMALL LETTER D WITH TOPBAR;Ll;0;L;;;;;N;LATIN SMALL LETTER D TOPBAR;;018B;;018B
+018D;LATIN SMALL LETTER TURNED DELTA;Ll;0;L;;;;;N;;;;;
+018E;LATIN CAPITAL LETTER REVERSED E;Lu;0;L;;;;;N;LATIN CAPITAL LETTER TURNED E;;;01DD;
+018F;LATIN CAPITAL LETTER SCHWA;Lu;0;L;;;;;N;;;;0259;
+0190;LATIN CAPITAL LETTER OPEN E;Lu;0;L;;;;;N;LATIN CAPITAL LETTER EPSILON;;;025B;
+0191;LATIN CAPITAL LETTER F WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER F HOOK;;;0192;
+0192;LATIN SMALL LETTER F WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER SCRIPT F;;0191;;0191
+0193;LATIN CAPITAL LETTER G WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER G HOOK;;;0260;
+0194;LATIN CAPITAL LETTER GAMMA;Lu;0;L;;;;;N;;;;0263;
+0195;LATIN SMALL LETTER HV;Ll;0;L;;;;;N;LATIN SMALL LETTER H V;hwair;01F6;;01F6
+0196;LATIN CAPITAL LETTER IOTA;Lu;0;L;;;;;N;;;;0269;
+0197;LATIN CAPITAL LETTER I WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER BARRED I;;;0268;
+0198;LATIN CAPITAL LETTER K WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER K HOOK;;;0199;
+0199;LATIN SMALL LETTER K WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER K HOOK;;0198;;0198
+019A;LATIN SMALL LETTER L WITH BAR;Ll;0;L;;;;;N;LATIN SMALL LETTER BARRED L;;;;
+019B;LATIN SMALL LETTER LAMBDA WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER BARRED LAMBDA;;;;
+019C;LATIN CAPITAL LETTER TURNED M;Lu;0;L;;;;;N;;;;026F;
+019D;LATIN CAPITAL LETTER N WITH LEFT HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER N HOOK;;;0272;
+019E;LATIN SMALL LETTER N WITH LONG RIGHT LEG;Ll;0;L;;;;;N;;;;;
+019F;LATIN CAPITAL LETTER O WITH MIDDLE TILDE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER BARRED O;*;;0275;
+01A0;LATIN CAPITAL LETTER O WITH HORN;Lu;0;L;004F 031B;;;;N;LATIN CAPITAL LETTER O HORN;;;01A1;
+01A1;LATIN SMALL LETTER O WITH HORN;Ll;0;L;006F 031B;;;;N;LATIN SMALL LETTER O HORN;;01A0;;01A0
+01A2;LATIN CAPITAL LETTER OI;Lu;0;L;;;;;N;LATIN CAPITAL LETTER O I;gha;;01A3;
+01A3;LATIN SMALL LETTER OI;Ll;0;L;;;;;N;LATIN SMALL LETTER O I;gha;01A2;;01A2
+01A4;LATIN CAPITAL LETTER P WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER P HOOK;;;01A5;
+01A5;LATIN SMALL LETTER P WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER P HOOK;;01A4;;01A4
+01A6;LATIN LETTER YR;Lu;0;L;;;;;N;LATIN LETTER Y R;;;0280;
+01A7;LATIN CAPITAL LETTER TONE TWO;Lu;0;L;;;;;N;;;;01A8;
+01A8;LATIN SMALL LETTER TONE TWO;Ll;0;L;;;;;N;;;01A7;;01A7
+01A9;LATIN CAPITAL LETTER ESH;Lu;0;L;;;;;N;;;;0283;
+01AA;LATIN LETTER REVERSED ESH LOOP;Ll;0;L;;;;;N;;;;;
+01AB;LATIN SMALL LETTER T WITH PALATAL HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER T PALATAL HOOK;;;;
+01AC;LATIN CAPITAL LETTER T WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER T HOOK;;;01AD;
+01AD;LATIN SMALL LETTER T WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER T HOOK;;01AC;;01AC
+01AE;LATIN CAPITAL LETTER T WITH RETROFLEX HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER T RETROFLEX HOOK;;;0288;
+01AF;LATIN CAPITAL LETTER U WITH HORN;Lu;0;L;0055 031B;;;;N;LATIN CAPITAL LETTER U HORN;;;01B0;
+01B0;LATIN SMALL LETTER U WITH HORN;Ll;0;L;0075 031B;;;;N;LATIN SMALL LETTER U HORN;;01AF;;01AF
+01B1;LATIN CAPITAL LETTER UPSILON;Lu;0;L;;;;;N;;;;028A;
+01B2;LATIN CAPITAL LETTER V WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER SCRIPT V;;;028B;
+01B3;LATIN CAPITAL LETTER Y WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER Y HOOK;;;01B4;
+01B4;LATIN SMALL LETTER Y WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER Y HOOK;;01B3;;01B3
+01B5;LATIN CAPITAL LETTER Z WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER Z BAR;;;01B6;
+01B6;LATIN SMALL LETTER Z WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER Z BAR;;01B5;;01B5
+01B7;LATIN CAPITAL LETTER EZH;Lu;0;L;;;;;N;LATIN CAPITAL LETTER YOGH;;;0292;
+01B8;LATIN CAPITAL LETTER EZH REVERSED;Lu;0;L;;;;;N;LATIN CAPITAL LETTER REVERSED YOGH;;;01B9;
+01B9;LATIN SMALL LETTER EZH REVERSED;Ll;0;L;;;;;N;LATIN SMALL LETTER REVERSED YOGH;;01B8;;01B8
+01BA;LATIN SMALL LETTER EZH WITH TAIL;Ll;0;L;;;;;N;LATIN SMALL LETTER YOGH WITH TAIL;;;;
+01BB;LATIN LETTER TWO WITH STROKE;Lo;0;L;;;;;N;LATIN LETTER TWO BAR;;;;
+01BC;LATIN CAPITAL LETTER TONE FIVE;Lu;0;L;;;;;N;;;;01BD;
+01BD;LATIN SMALL LETTER TONE FIVE;Ll;0;L;;;;;N;;;01BC;;01BC
+01BE;LATIN LETTER INVERTED GLOTTAL STOP WITH STROKE;Ll;0;L;;;;;N;LATIN LETTER INVERTED GLOTTAL STOP BAR;;;;
+01BF;LATIN LETTER WYNN;Ll;0;L;;;;;N;;;01F7;;01F7
+01C0;LATIN LETTER DENTAL CLICK;Lo;0;L;;;;;N;LATIN LETTER PIPE;;;;
+01C1;LATIN LETTER LATERAL CLICK;Lo;0;L;;;;;N;LATIN LETTER DOUBLE PIPE;;;;
+01C2;LATIN LETTER ALVEOLAR CLICK;Lo;0;L;;;;;N;LATIN LETTER PIPE DOUBLE BAR;;;;
+01C3;LATIN LETTER RETROFLEX CLICK;Lo;0;L;;;;;N;LATIN LETTER EXCLAMATION MARK;;;;
+01C4;LATIN CAPITAL LETTER DZ WITH CARON;Lu;0;L;<compat> 0044 017D;;;;N;LATIN CAPITAL LETTER D Z HACEK;;;01C6;01C5
+01C5;LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON;Lt;0;L;<compat> 0044 017E;;;;N;LATIN LETTER CAPITAL D SMALL Z HACEK;;01C4;01C6;
+01C6;LATIN SMALL LETTER DZ WITH CARON;Ll;0;L;<compat> 0064 017E;;;;N;LATIN SMALL LETTER D Z HACEK;;01C4;;01C5
+01C7;LATIN CAPITAL LETTER LJ;Lu;0;L;<compat> 004C 004A;;;;N;LATIN CAPITAL LETTER L J;;;01C9;01C8
+01C8;LATIN CAPITAL LETTER L WITH SMALL LETTER J;Lt;0;L;<compat> 004C 006A;;;;N;LATIN LETTER CAPITAL L SMALL J;;01C7;01C9;
+01C9;LATIN SMALL LETTER LJ;Ll;0;L;<compat> 006C 006A;;;;N;LATIN SMALL LETTER L J;;01C7;;01C8
+01CA;LATIN CAPITAL LETTER NJ;Lu;0;L;<compat> 004E 004A;;;;N;LATIN CAPITAL LETTER N J;;;01CC;01CB
+01CB;LATIN CAPITAL LETTER N WITH SMALL LETTER J;Lt;0;L;<compat> 004E 006A;;;;N;LATIN LETTER CAPITAL N SMALL J;;01CA;01CC;
+01CC;LATIN SMALL LETTER NJ;Ll;0;L;<compat> 006E 006A;;;;N;LATIN SMALL LETTER N J;;01CA;;01CB
+01CD;LATIN CAPITAL LETTER A WITH CARON;Lu;0;L;0041 030C;;;;N;LATIN CAPITAL LETTER A HACEK;;;01CE;
+01CE;LATIN SMALL LETTER A WITH CARON;Ll;0;L;0061 030C;;;;N;LATIN SMALL LETTER A HACEK;;01CD;;01CD
+01CF;LATIN CAPITAL LETTER I WITH CARON;Lu;0;L;0049 030C;;;;N;LATIN CAPITAL LETTER I HACEK;;;01D0;
+01D0;LATIN SMALL LETTER I WITH CARON;Ll;0;L;0069 030C;;;;N;LATIN SMALL LETTER I HACEK;;01CF;;01CF
+01D1;LATIN CAPITAL LETTER O WITH CARON;Lu;0;L;004F 030C;;;;N;LATIN CAPITAL LETTER O HACEK;;;01D2;
+01D2;LATIN SMALL LETTER O WITH CARON;Ll;0;L;006F 030C;;;;N;LATIN SMALL LETTER O HACEK;;01D1;;01D1
+01D3;LATIN CAPITAL LETTER U WITH CARON;Lu;0;L;0055 030C;;;;N;LATIN CAPITAL LETTER U HACEK;;;01D4;
+01D4;LATIN SMALL LETTER U WITH CARON;Ll;0;L;0075 030C;;;;N;LATIN SMALL LETTER U HACEK;;01D3;;01D3
+01D5;LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON;Lu;0;L;00DC 0304;;;;N;LATIN CAPITAL LETTER U DIAERESIS MACRON;;;01D6;
+01D6;LATIN SMALL LETTER U WITH DIAERESIS AND MACRON;Ll;0;L;00FC 0304;;;;N;LATIN SMALL LETTER U DIAERESIS MACRON;;01D5;;01D5
+01D7;LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE;Lu;0;L;00DC 0301;;;;N;LATIN CAPITAL LETTER U DIAERESIS ACUTE;;;01D8;
+01D8;LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE;Ll;0;L;00FC 0301;;;;N;LATIN SMALL LETTER U DIAERESIS ACUTE;;01D7;;01D7
+01D9;LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON;Lu;0;L;00DC 030C;;;;N;LATIN CAPITAL LETTER U DIAERESIS HACEK;;;01DA;
+01DA;LATIN SMALL LETTER U WITH DIAERESIS AND CARON;Ll;0;L;00FC 030C;;;;N;LATIN SMALL LETTER U DIAERESIS HACEK;;01D9;;01D9
+01DB;LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE;Lu;0;L;00DC 0300;;;;N;LATIN CAPITAL LETTER U DIAERESIS GRAVE;;;01DC;
+01DC;LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE;Ll;0;L;00FC 0300;;;;N;LATIN SMALL LETTER U DIAERESIS GRAVE;;01DB;;01DB
+01DD;LATIN SMALL LETTER TURNED E;Ll;0;L;;;;;N;;;018E;;018E
+01DE;LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON;Lu;0;L;00C4 0304;;;;N;LATIN CAPITAL LETTER A DIAERESIS MACRON;;;01DF;
+01DF;LATIN SMALL LETTER A WITH DIAERESIS AND MACRON;Ll;0;L;00E4 0304;;;;N;LATIN SMALL LETTER A DIAERESIS MACRON;;01DE;;01DE
+01E0;LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON;Lu;0;L;0226 0304;;;;N;LATIN CAPITAL LETTER A DOT MACRON;;;01E1;
+01E1;LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON;Ll;0;L;0227 0304;;;;N;LATIN SMALL LETTER A DOT MACRON;;01E0;;01E0
+01E2;LATIN CAPITAL LETTER AE WITH MACRON;Lu;0;L;00C6 0304;;;;N;LATIN CAPITAL LETTER A E MACRON;ash *;;01E3;
+01E3;LATIN SMALL LETTER AE WITH MACRON;Ll;0;L;00E6 0304;;;;N;LATIN SMALL LETTER A E MACRON;ash *;01E2;;01E2
+01E4;LATIN CAPITAL LETTER G WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER G BAR;;;01E5;
+01E5;LATIN SMALL LETTER G WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER G BAR;;01E4;;01E4
+01E6;LATIN CAPITAL LETTER G WITH CARON;Lu;0;L;0047 030C;;;;N;LATIN CAPITAL LETTER G HACEK;;;01E7;
+01E7;LATIN SMALL LETTER G WITH CARON;Ll;0;L;0067 030C;;;;N;LATIN SMALL LETTER G HACEK;;01E6;;01E6
+01E8;LATIN CAPITAL LETTER K WITH CARON;Lu;0;L;004B 030C;;;;N;LATIN CAPITAL LETTER K HACEK;;;01E9;
+01E9;LATIN SMALL LETTER K WITH CARON;Ll;0;L;006B 030C;;;;N;LATIN SMALL LETTER K HACEK;;01E8;;01E8
+01EA;LATIN CAPITAL LETTER O WITH OGONEK;Lu;0;L;004F 0328;;;;N;LATIN CAPITAL LETTER O OGONEK;;;01EB;
+01EB;LATIN SMALL LETTER O WITH OGONEK;Ll;0;L;006F 0328;;;;N;LATIN SMALL LETTER O OGONEK;;01EA;;01EA
+01EC;LATIN CAPITAL LETTER O WITH OGONEK AND MACRON;Lu;0;L;01EA 0304;;;;N;LATIN CAPITAL LETTER O OGONEK MACRON;;;01ED;
+01ED;LATIN SMALL LETTER O WITH OGONEK AND MACRON;Ll;0;L;01EB 0304;;;;N;LATIN SMALL LETTER O OGONEK MACRON;;01EC;;01EC
+01EE;LATIN CAPITAL LETTER EZH WITH CARON;Lu;0;L;01B7 030C;;;;N;LATIN CAPITAL LETTER YOGH HACEK;;;01EF;
+01EF;LATIN SMALL LETTER EZH WITH CARON;Ll;0;L;0292 030C;;;;N;LATIN SMALL LETTER YOGH HACEK;;01EE;;01EE
+01F0;LATIN SMALL LETTER J WITH CARON;Ll;0;L;006A 030C;;;;N;LATIN SMALL LETTER J HACEK;;;;
+01F1;LATIN CAPITAL LETTER DZ;Lu;0;L;<compat> 0044 005A;;;;N;;;;01F3;01F2
+01F2;LATIN CAPITAL LETTER D WITH SMALL LETTER Z;Lt;0;L;<compat> 0044 007A;;;;N;;;01F1;01F3;
+01F3;LATIN SMALL LETTER DZ;Ll;0;L;<compat> 0064 007A;;;;N;;;01F1;;01F2
+01F4;LATIN CAPITAL LETTER G WITH ACUTE;Lu;0;L;0047 0301;;;;N;;;;01F5;
+01F5;LATIN SMALL LETTER G WITH ACUTE;Ll;0;L;0067 0301;;;;N;;;01F4;;01F4
+01F6;LATIN CAPITAL LETTER HWAIR;Lu;0;L;;;;;N;;;;0195;
+01F7;LATIN CAPITAL LETTER WYNN;Lu;0;L;;;;;N;;;;01BF;
+01F8;LATIN CAPITAL LETTER N WITH GRAVE;Lu;0;L;004E 0300;;;;N;;;;01F9;
+01F9;LATIN SMALL LETTER N WITH GRAVE;Ll;0;L;006E 0300;;;;N;;;01F8;;01F8
+01FA;LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE;Lu;0;L;00C5 0301;;;;N;;;;01FB;
+01FB;LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE;Ll;0;L;00E5 0301;;;;N;;;01FA;;01FA
+01FC;LATIN CAPITAL LETTER AE WITH ACUTE;Lu;0;L;00C6 0301;;;;N;;ash *;;01FD;
+01FD;LATIN SMALL LETTER AE WITH ACUTE;Ll;0;L;00E6 0301;;;;N;;ash *;01FC;;01FC
+01FE;LATIN CAPITAL LETTER O WITH STROKE AND ACUTE;Lu;0;L;00D8 0301;;;;N;;;;01FF;
+01FF;LATIN SMALL LETTER O WITH STROKE AND ACUTE;Ll;0;L;00F8 0301;;;;N;;;01FE;;01FE
+0200;LATIN CAPITAL LETTER A WITH DOUBLE GRAVE;Lu;0;L;0041 030F;;;;N;;;;0201;
+0201;LATIN SMALL LETTER A WITH DOUBLE GRAVE;Ll;0;L;0061 030F;;;;N;;;0200;;0200
+0202;LATIN CAPITAL LETTER A WITH INVERTED BREVE;Lu;0;L;0041 0311;;;;N;;;;0203;
+0203;LATIN SMALL LETTER A WITH INVERTED BREVE;Ll;0;L;0061 0311;;;;N;;;0202;;0202
+0204;LATIN CAPITAL LETTER E WITH DOUBLE GRAVE;Lu;0;L;0045 030F;;;;N;;;;0205;
+0205;LATIN SMALL LETTER E WITH DOUBLE GRAVE;Ll;0;L;0065 030F;;;;N;;;0204;;0204
+0206;LATIN CAPITAL LETTER E WITH INVERTED BREVE;Lu;0;L;0045 0311;;;;N;;;;0207;
+0207;LATIN SMALL LETTER E WITH INVERTED BREVE;Ll;0;L;0065 0311;;;;N;;;0206;;0206
+0208;LATIN CAPITAL LETTER I WITH DOUBLE GRAVE;Lu;0;L;0049 030F;;;;N;;;;0209;
+0209;LATIN SMALL LETTER I WITH DOUBLE GRAVE;Ll;0;L;0069 030F;;;;N;;;0208;;0208
+020A;LATIN CAPITAL LETTER I WITH INVERTED BREVE;Lu;0;L;0049 0311;;;;N;;;;020B;
+020B;LATIN SMALL LETTER I WITH INVERTED BREVE;Ll;0;L;0069 0311;;;;N;;;020A;;020A
+020C;LATIN CAPITAL LETTER O WITH DOUBLE GRAVE;Lu;0;L;004F 030F;;;;N;;;;020D;
+020D;LATIN SMALL LETTER O WITH DOUBLE GRAVE;Ll;0;L;006F 030F;;;;N;;;020C;;020C
+020E;LATIN CAPITAL LETTER O WITH INVERTED BREVE;Lu;0;L;004F 0311;;;;N;;;;020F;
+020F;LATIN SMALL LETTER O WITH INVERTED BREVE;Ll;0;L;006F 0311;;;;N;;;020E;;020E
+0210;LATIN CAPITAL LETTER R WITH DOUBLE GRAVE;Lu;0;L;0052 030F;;;;N;;;;0211;
+0211;LATIN SMALL LETTER R WITH DOUBLE GRAVE;Ll;0;L;0072 030F;;;;N;;;0210;;0210
+0212;LATIN CAPITAL LETTER R WITH INVERTED BREVE;Lu;0;L;0052 0311;;;;N;;;;0213;
+0213;LATIN SMALL LETTER R WITH INVERTED BREVE;Ll;0;L;0072 0311;;;;N;;;0212;;0212
+0214;LATIN CAPITAL LETTER U WITH DOUBLE GRAVE;Lu;0;L;0055 030F;;;;N;;;;0215;
+0215;LATIN SMALL LETTER U WITH DOUBLE GRAVE;Ll;0;L;0075 030F;;;;N;;;0214;;0214
+0216;LATIN CAPITAL LETTER U WITH INVERTED BREVE;Lu;0;L;0055 0311;;;;N;;;;0217;
+0217;LATIN SMALL LETTER U WITH INVERTED BREVE;Ll;0;L;0075 0311;;;;N;;;0216;;0216
+0218;LATIN CAPITAL LETTER S WITH COMMA BELOW;Lu;0;L;0053 0326;;;;N;;*;;0219;
+0219;LATIN SMALL LETTER S WITH COMMA BELOW;Ll;0;L;0073 0326;;;;N;;*;0218;;0218
+021A;LATIN CAPITAL LETTER T WITH COMMA BELOW;Lu;0;L;0054 0326;;;;N;;*;;021B;
+021B;LATIN SMALL LETTER T WITH COMMA BELOW;Ll;0;L;0074 0326;;;;N;;*;021A;;021A
+021C;LATIN CAPITAL LETTER YOGH;Lu;0;L;;;;;N;;;;021D;
+021D;LATIN SMALL LETTER YOGH;Ll;0;L;;;;;N;;;021C;;021C
+021E;LATIN CAPITAL LETTER H WITH CARON;Lu;0;L;0048 030C;;;;N;;;;021F;
+021F;LATIN SMALL LETTER H WITH CARON;Ll;0;L;0068 030C;;;;N;;;021E;;021E
+0222;LATIN CAPITAL LETTER OU;Lu;0;L;;;;;N;;;;0223;
+0223;LATIN SMALL LETTER OU;Ll;0;L;;;;;N;;;0222;;0222
+0224;LATIN CAPITAL LETTER Z WITH HOOK;Lu;0;L;;;;;N;;;;0225;
+0225;LATIN SMALL LETTER Z WITH HOOK;Ll;0;L;;;;;N;;;0224;;0224
+0226;LATIN CAPITAL LETTER A WITH DOT ABOVE;Lu;0;L;0041 0307;;;;N;;;;0227;
+0227;LATIN SMALL LETTER A WITH DOT ABOVE;Ll;0;L;0061 0307;;;;N;;;0226;;0226
+0228;LATIN CAPITAL LETTER E WITH CEDILLA;Lu;0;L;0045 0327;;;;N;;;;0229;
+0229;LATIN SMALL LETTER E WITH CEDILLA;Ll;0;L;0065 0327;;;;N;;;0228;;0228
+022A;LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON;Lu;0;L;00D6 0304;;;;N;;;;022B;
+022B;LATIN SMALL LETTER O WITH DIAERESIS AND MACRON;Ll;0;L;00F6 0304;;;;N;;;022A;;022A
+022C;LATIN CAPITAL LETTER O WITH TILDE AND MACRON;Lu;0;L;00D5 0304;;;;N;;;;022D;
+022D;LATIN SMALL LETTER O WITH TILDE AND MACRON;Ll;0;L;00F5 0304;;;;N;;;022C;;022C
+022E;LATIN CAPITAL LETTER O WITH DOT ABOVE;Lu;0;L;004F 0307;;;;N;;;;022F;
+022F;LATIN SMALL LETTER O WITH DOT ABOVE;Ll;0;L;006F 0307;;;;N;;;022E;;022E
+0230;LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON;Lu;0;L;022E 0304;;;;N;;;;0231;
+0231;LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON;Ll;0;L;022F 0304;;;;N;;;0230;;0230
+0232;LATIN CAPITAL LETTER Y WITH MACRON;Lu;0;L;0059 0304;;;;N;;;;0233;
+0233;LATIN SMALL LETTER Y WITH MACRON;Ll;0;L;0079 0304;;;;N;;;0232;;0232
+0250;LATIN SMALL LETTER TURNED A;Ll;0;L;;;;;N;;;;;
+0251;LATIN SMALL LETTER ALPHA;Ll;0;L;;;;;N;LATIN SMALL LETTER SCRIPT A;;;;
+0252;LATIN SMALL LETTER TURNED ALPHA;Ll;0;L;;;;;N;LATIN SMALL LETTER TURNED SCRIPT A;;;;
+0253;LATIN SMALL LETTER B WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER B HOOK;;0181;;0181
+0254;LATIN SMALL LETTER OPEN O;Ll;0;L;;;;;N;;;0186;;0186
+0255;LATIN SMALL LETTER C WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER C CURL;;;;
+0256;LATIN SMALL LETTER D WITH TAIL;Ll;0;L;;;;;N;LATIN SMALL LETTER D RETROFLEX HOOK;;0189;;0189
+0257;LATIN SMALL LETTER D WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER D HOOK;;018A;;018A
+0258;LATIN SMALL LETTER REVERSED E;Ll;0;L;;;;;N;;;;;
+0259;LATIN SMALL LETTER SCHWA;Ll;0;L;;;;;N;;;018F;;018F
+025A;LATIN SMALL LETTER SCHWA WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER SCHWA HOOK;;;;
+025B;LATIN SMALL LETTER OPEN E;Ll;0;L;;;;;N;LATIN SMALL LETTER EPSILON;;0190;;0190
+025C;LATIN SMALL LETTER REVERSED OPEN E;Ll;0;L;;;;;N;LATIN SMALL LETTER REVERSED EPSILON;;;;
+025D;LATIN SMALL LETTER REVERSED OPEN E WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER REVERSED EPSILON HOOK;;;;
+025E;LATIN SMALL LETTER CLOSED REVERSED OPEN E;Ll;0;L;;;;;N;LATIN SMALL LETTER CLOSED REVERSED EPSILON;;;;
+025F;LATIN SMALL LETTER DOTLESS J WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER DOTLESS J BAR;;;;
+0260;LATIN SMALL LETTER G WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER G HOOK;;0193;;0193
+0261;LATIN SMALL LETTER SCRIPT G;Ll;0;L;;;;;N;;;;;
+0262;LATIN LETTER SMALL CAPITAL G;Ll;0;L;;;;;N;;;;;
+0263;LATIN SMALL LETTER GAMMA;Ll;0;L;;;;;N;;;0194;;0194
+0264;LATIN SMALL LETTER RAMS HORN;Ll;0;L;;;;;N;LATIN SMALL LETTER BABY GAMMA;;;;
+0265;LATIN SMALL LETTER TURNED H;Ll;0;L;;;;;N;;;;;
+0266;LATIN SMALL LETTER H WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER H HOOK;;;;
+0267;LATIN SMALL LETTER HENG WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER HENG HOOK;;;;
+0268;LATIN SMALL LETTER I WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER BARRED I;;0197;;0197
+0269;LATIN SMALL LETTER IOTA;Ll;0;L;;;;;N;;;0196;;0196
+026A;LATIN LETTER SMALL CAPITAL I;Ll;0;L;;;;;N;;;;;
+026B;LATIN SMALL LETTER L WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;;
+026C;LATIN SMALL LETTER L WITH BELT;Ll;0;L;;;;;N;LATIN SMALL LETTER L BELT;;;;
+026D;LATIN SMALL LETTER L WITH RETROFLEX HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER L RETROFLEX HOOK;;;;
+026E;LATIN SMALL LETTER LEZH;Ll;0;L;;;;;N;LATIN SMALL LETTER L YOGH;;;;
+026F;LATIN SMALL LETTER TURNED M;Ll;0;L;;;;;N;;;019C;;019C
+0270;LATIN SMALL LETTER TURNED M WITH LONG LEG;Ll;0;L;;;;;N;;;;;
+0271;LATIN SMALL LETTER M WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER M HOOK;;;;
+0272;LATIN SMALL LETTER N WITH LEFT HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER N HOOK;;019D;;019D
+0273;LATIN SMALL LETTER N WITH RETROFLEX HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER N RETROFLEX HOOK;;;;
+0274;LATIN LETTER SMALL CAPITAL N;Ll;0;L;;;;;N;;;;;
+0275;LATIN SMALL LETTER BARRED O;Ll;0;L;;;;;N;;;019F;;019F
+0276;LATIN LETTER SMALL CAPITAL OE;Ll;0;L;;;;;N;LATIN LETTER SMALL CAPITAL O E;;;;
+0277;LATIN SMALL LETTER CLOSED OMEGA;Ll;0;L;;;;;N;;;;;
+0278;LATIN SMALL LETTER PHI;Ll;0;L;;;;;N;;;;;
+0279;LATIN SMALL LETTER TURNED R;Ll;0;L;;;;;N;;;;;
+027A;LATIN SMALL LETTER TURNED R WITH LONG LEG;Ll;0;L;;;;;N;;;;;
+027B;LATIN SMALL LETTER TURNED R WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER TURNED R HOOK;;;;
+027C;LATIN SMALL LETTER R WITH LONG LEG;Ll;0;L;;;;;N;;;;;
+027D;LATIN SMALL LETTER R WITH TAIL;Ll;0;L;;;;;N;LATIN SMALL LETTER R HOOK;;;;
+027E;LATIN SMALL LETTER R WITH FISHHOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER FISHHOOK R;;;;
+027F;LATIN SMALL LETTER REVERSED R WITH FISHHOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER REVERSED FISHHOOK R;;;;
+0280;LATIN LETTER SMALL CAPITAL R;Ll;0;L;;;;;N;;;01A6;;01A6
+0281;LATIN LETTER SMALL CAPITAL INVERTED R;Ll;0;L;;;;;N;;;;;
+0282;LATIN SMALL LETTER S WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER S HOOK;;;;
+0283;LATIN SMALL LETTER ESH;Ll;0;L;;;;;N;;;01A9;;01A9
+0284;LATIN SMALL LETTER DOTLESS J WITH STROKE AND HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER DOTLESS J BAR HOOK;;;;
+0285;LATIN SMALL LETTER SQUAT REVERSED ESH;Ll;0;L;;;;;N;;;;;
+0286;LATIN SMALL LETTER ESH WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER ESH CURL;;;;
+0287;LATIN SMALL LETTER TURNED T;Ll;0;L;;;;;N;;;;;
+0288;LATIN SMALL LETTER T WITH RETROFLEX HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER T RETROFLEX HOOK;;01AE;;01AE
+0289;LATIN SMALL LETTER U BAR;Ll;0;L;;;;;N;;;;;
+028A;LATIN SMALL LETTER UPSILON;Ll;0;L;;;;;N;;;01B1;;01B1
+028B;LATIN SMALL LETTER V WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER SCRIPT V;;01B2;;01B2
+028C;LATIN SMALL LETTER TURNED V;Ll;0;L;;;;;N;;;;;
+028D;LATIN SMALL LETTER TURNED W;Ll;0;L;;;;;N;;;;;
+028E;LATIN SMALL LETTER TURNED Y;Ll;0;L;;;;;N;;;;;
+028F;LATIN LETTER SMALL CAPITAL Y;Ll;0;L;;;;;N;;;;;
+0290;LATIN SMALL LETTER Z WITH RETROFLEX HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER Z RETROFLEX HOOK;;;;
+0291;LATIN SMALL LETTER Z WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER Z CURL;;;;
+0292;LATIN SMALL LETTER EZH;Ll;0;L;;;;;N;LATIN SMALL LETTER YOGH;;01B7;;01B7
+0293;LATIN SMALL LETTER EZH WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER YOGH CURL;;;;
+0294;LATIN LETTER GLOTTAL STOP;Ll;0;L;;;;;N;;;;;
+0295;LATIN LETTER PHARYNGEAL VOICED FRICATIVE;Ll;0;L;;;;;N;LATIN LETTER REVERSED GLOTTAL STOP;;;;
+0296;LATIN LETTER INVERTED GLOTTAL STOP;Ll;0;L;;;;;N;;;;;
+0297;LATIN LETTER STRETCHED C;Ll;0;L;;;;;N;;;;;
+0298;LATIN LETTER BILABIAL CLICK;Ll;0;L;;;;;N;LATIN LETTER BULLSEYE;;;;
+0299;LATIN LETTER SMALL CAPITAL B;Ll;0;L;;;;;N;;;;;
+029A;LATIN SMALL LETTER CLOSED OPEN E;Ll;0;L;;;;;N;LATIN SMALL LETTER CLOSED EPSILON;;;;
+029B;LATIN LETTER SMALL CAPITAL G WITH HOOK;Ll;0;L;;;;;N;LATIN LETTER SMALL CAPITAL G HOOK;;;;
+029C;LATIN LETTER SMALL CAPITAL H;Ll;0;L;;;;;N;;;;;
+029D;LATIN SMALL LETTER J WITH CROSSED-TAIL;Ll;0;L;;;;;N;LATIN SMALL LETTER CROSSED-TAIL J;;;;
+029E;LATIN SMALL LETTER TURNED K;Ll;0;L;;;;;N;;;;;
+029F;LATIN LETTER SMALL CAPITAL L;Ll;0;L;;;;;N;;;;;
+02A0;LATIN SMALL LETTER Q WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER Q HOOK;;;;
+02A1;LATIN LETTER GLOTTAL STOP WITH STROKE;Ll;0;L;;;;;N;LATIN LETTER GLOTTAL STOP BAR;;;;
+02A2;LATIN LETTER REVERSED GLOTTAL STOP WITH STROKE;Ll;0;L;;;;;N;LATIN LETTER REVERSED GLOTTAL STOP BAR;;;;
+02A3;LATIN SMALL LETTER DZ DIGRAPH;Ll;0;L;;;;;N;LATIN SMALL LETTER D Z;;;;
+02A4;LATIN SMALL LETTER DEZH DIGRAPH;Ll;0;L;;;;;N;LATIN SMALL LETTER D YOGH;;;;
+02A5;LATIN SMALL LETTER DZ DIGRAPH WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER D Z CURL;;;;
+02A6;LATIN SMALL LETTER TS DIGRAPH;Ll;0;L;;;;;N;LATIN SMALL LETTER T S;;;;
+02A7;LATIN SMALL LETTER TESH DIGRAPH;Ll;0;L;;;;;N;LATIN SMALL LETTER T ESH;;;;
+02A8;LATIN SMALL LETTER TC DIGRAPH WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER T C CURL;;;;
+02A9;LATIN SMALL LETTER FENG DIGRAPH;Ll;0;L;;;;;N;;;;;
+02AA;LATIN SMALL LETTER LS DIGRAPH;Ll;0;L;;;;;N;;;;;
+02AB;LATIN SMALL LETTER LZ DIGRAPH;Ll;0;L;;;;;N;;;;;
+02AC;LATIN LETTER BILABIAL PERCUSSIVE;Ll;0;L;;;;;N;;;;;
+02AD;LATIN LETTER BIDENTAL PERCUSSIVE;Ll;0;L;;;;;N;;;;;
+02B0;MODIFIER LETTER SMALL H;Lm;0;L;<super> 0068;;;;N;;;;;
+02B1;MODIFIER LETTER SMALL H WITH HOOK;Lm;0;L;<super> 0266;;;;N;MODIFIER LETTER SMALL H HOOK;;;;
+02B2;MODIFIER LETTER SMALL J;Lm;0;L;<super> 006A;;;;N;;;;;
+02B3;MODIFIER LETTER SMALL R;Lm;0;L;<super> 0072;;;;N;;;;;
+02B4;MODIFIER LETTER SMALL TURNED R;Lm;0;L;<super> 0279;;;;N;;;;;
+02B5;MODIFIER LETTER SMALL TURNED R WITH HOOK;Lm;0;L;<super> 027B;;;;N;MODIFIER LETTER SMALL TURNED R HOOK;;;;
+02B6;MODIFIER LETTER SMALL CAPITAL INVERTED R;Lm;0;L;<super> 0281;;;;N;;;;;
+02B7;MODIFIER LETTER SMALL W;Lm;0;L;<super> 0077;;;;N;;;;;
+02B8;MODIFIER LETTER SMALL Y;Lm;0;L;<super> 0079;;;;N;;;;;
+02B9;MODIFIER LETTER PRIME;Sk;0;ON;;;;;N;;;;;
+02BA;MODIFIER LETTER DOUBLE PRIME;Sk;0;ON;;;;;N;;;;;
+02BB;MODIFIER LETTER TURNED COMMA;Lm;0;L;;;;;N;;;;;
+02BC;MODIFIER LETTER APOSTROPHE;Lm;0;L;;;;;N;;;;;
+02BD;MODIFIER LETTER REVERSED COMMA;Lm;0;L;;;;;N;;;;;
+02BE;MODIFIER LETTER RIGHT HALF RING;Lm;0;L;;;;;N;;;;;
+02BF;MODIFIER LETTER LEFT HALF RING;Lm;0;L;;;;;N;;;;;
+02C0;MODIFIER LETTER GLOTTAL STOP;Lm;0;L;;;;;N;;;;;
+02C1;MODIFIER LETTER REVERSED GLOTTAL STOP;Lm;0;L;;;;;N;;;;;
+02C2;MODIFIER LETTER LEFT ARROWHEAD;Sk;0;ON;;;;;N;;;;;
+02C3;MODIFIER LETTER RIGHT ARROWHEAD;Sk;0;ON;;;;;N;;;;;
+02C4;MODIFIER LETTER UP ARROWHEAD;Sk;0;ON;;;;;N;;;;;
+02C5;MODIFIER LETTER DOWN ARROWHEAD;Sk;0;ON;;;;;N;;;;;
+02C6;MODIFIER LETTER CIRCUMFLEX ACCENT;Sk;0;ON;;;;;N;MODIFIER LETTER CIRCUMFLEX;;;;
+02C7;CARON;Sk;0;ON;;;;;N;MODIFIER LETTER HACEK;Mandarin Chinese third tone;;;
+02C8;MODIFIER LETTER VERTICAL LINE;Sk;0;ON;;;;;N;;;;;
+02C9;MODIFIER LETTER MACRON;Sk;0;ON;;;;;N;;Mandarin Chinese first tone;;;
+02CA;MODIFIER LETTER ACUTE ACCENT;Sk;0;ON;;;;;N;MODIFIER LETTER ACUTE;Mandarin Chinese second tone;;;
+02CB;MODIFIER LETTER GRAVE ACCENT;Sk;0;ON;;;;;N;MODIFIER LETTER GRAVE;Mandarin Chinese fourth tone;;;
+02CC;MODIFIER LETTER LOW VERTICAL LINE;Sk;0;ON;;;;;N;;;;;
+02CD;MODIFIER LETTER LOW MACRON;Sk;0;ON;;;;;N;;;;;
+02CE;MODIFIER LETTER LOW GRAVE ACCENT;Sk;0;ON;;;;;N;MODIFIER LETTER LOW GRAVE;;;;
+02CF;MODIFIER LETTER LOW ACUTE ACCENT;Sk;0;ON;;;;;N;MODIFIER LETTER LOW ACUTE;;;;
+02D0;MODIFIER LETTER TRIANGULAR COLON;Lm;0;L;;;;;N;;;;;
+02D1;MODIFIER LETTER HALF TRIANGULAR COLON;Lm;0;L;;;;;N;;;;;
+02D2;MODIFIER LETTER CENTRED RIGHT HALF RING;Sk;0;ON;;;;;N;MODIFIER LETTER CENTERED RIGHT HALF RING;;;;
+02D3;MODIFIER LETTER CENTRED LEFT HALF RING;Sk;0;ON;;;;;N;MODIFIER LETTER CENTERED LEFT HALF RING;;;;
+02D4;MODIFIER LETTER UP TACK;Sk;0;ON;;;;;N;;;;;
+02D5;MODIFIER LETTER DOWN TACK;Sk;0;ON;;;;;N;;;;;
+02D6;MODIFIER LETTER PLUS SIGN;Sk;0;ON;;;;;N;;;;;
+02D7;MODIFIER LETTER MINUS SIGN;Sk;0;ON;;;;;N;;;;;
+02D8;BREVE;Sk;0;ON;<compat> 0020 0306;;;;N;SPACING BREVE;;;;
+02D9;DOT ABOVE;Sk;0;ON;<compat> 0020 0307;;;;N;SPACING DOT ABOVE;Mandarin Chinese light tone;;;
+02DA;RING ABOVE;Sk;0;ON;<compat> 0020 030A;;;;N;SPACING RING ABOVE;;;;
+02DB;OGONEK;Sk;0;ON;<compat> 0020 0328;;;;N;SPACING OGONEK;;;;
+02DC;SMALL TILDE;Sk;0;ON;<compat> 0020 0303;;;;N;SPACING TILDE;;;;
+02DD;DOUBLE ACUTE ACCENT;Sk;0;ON;<compat> 0020 030B;;;;N;SPACING DOUBLE ACUTE;;;;
+02DE;MODIFIER LETTER RHOTIC HOOK;Sk;0;ON;;;;;N;;;;;
+02DF;MODIFIER LETTER CROSS ACCENT;Sk;0;ON;;;;;N;;;;;
+02E0;MODIFIER LETTER SMALL GAMMA;Lm;0;L;<super> 0263;;;;N;;;;;
+02E1;MODIFIER LETTER SMALL L;Lm;0;L;<super> 006C;;;;N;;;;;
+02E2;MODIFIER LETTER SMALL S;Lm;0;L;<super> 0073;;;;N;;;;;
+02E3;MODIFIER LETTER SMALL X;Lm;0;L;<super> 0078;;;;N;;;;;
+02E4;MODIFIER LETTER SMALL REVERSED GLOTTAL STOP;Lm;0;L;<super> 0295;;;;N;;;;;
+02E5;MODIFIER LETTER EXTRA-HIGH TONE BAR;Sk;0;ON;;;;;N;;;;;
+02E6;MODIFIER LETTER HIGH TONE BAR;Sk;0;ON;;;;;N;;;;;
+02E7;MODIFIER LETTER MID TONE BAR;Sk;0;ON;;;;;N;;;;;
+02E8;MODIFIER LETTER LOW TONE BAR;Sk;0;ON;;;;;N;;;;;
+02E9;MODIFIER LETTER EXTRA-LOW TONE BAR;Sk;0;ON;;;;;N;;;;;
+02EA;MODIFIER LETTER YIN DEPARTING TONE MARK;Sk;0;ON;;;;;N;;;;;
+02EB;MODIFIER LETTER YANG DEPARTING TONE MARK;Sk;0;ON;;;;;N;;;;;
+02EC;MODIFIER LETTER VOICING;Sk;0;ON;;;;;N;;;;;
+02ED;MODIFIER LETTER UNASPIRATED;Sk;0;ON;;;;;N;;;;;
+02EE;MODIFIER LETTER DOUBLE APOSTROPHE;Lm;0;L;;;;;N;;;;;
+0300;COMBINING GRAVE ACCENT;Mn;230;NSM;;;;;N;NON-SPACING GRAVE;Varia;;;
+0301;COMBINING ACUTE ACCENT;Mn;230;NSM;;;;;N;NON-SPACING ACUTE;Oxia;;;
+0302;COMBINING CIRCUMFLEX ACCENT;Mn;230;NSM;;;;;N;NON-SPACING CIRCUMFLEX;;;;
+0303;COMBINING TILDE;Mn;230;NSM;;;;;N;NON-SPACING TILDE;;;;
+0304;COMBINING MACRON;Mn;230;NSM;;;;;N;NON-SPACING MACRON;;;;
+0305;COMBINING OVERLINE;Mn;230;NSM;;;;;N;NON-SPACING OVERSCORE;;;;
+0306;COMBINING BREVE;Mn;230;NSM;;;;;N;NON-SPACING BREVE;Vrachy;;;
+0307;COMBINING DOT ABOVE;Mn;230;NSM;;;;;N;NON-SPACING DOT ABOVE;;;;
+0308;COMBINING DIAERESIS;Mn;230;NSM;;;;;N;NON-SPACING DIAERESIS;Dialytika;;;
+0309;COMBINING HOOK ABOVE;Mn;230;NSM;;;;;N;NON-SPACING HOOK ABOVE;;;;
+030A;COMBINING RING ABOVE;Mn;230;NSM;;;;;N;NON-SPACING RING ABOVE;;;;
+030B;COMBINING DOUBLE ACUTE ACCENT;Mn;230;NSM;;;;;N;NON-SPACING DOUBLE ACUTE;;;;
+030C;COMBINING CARON;Mn;230;NSM;;;;;N;NON-SPACING HACEK;;;;
+030D;COMBINING VERTICAL LINE ABOVE;Mn;230;NSM;;;;;N;NON-SPACING VERTICAL LINE ABOVE;Tonos;;;
+030E;COMBINING DOUBLE VERTICAL LINE ABOVE;Mn;230;NSM;;;;;N;NON-SPACING DOUBLE VERTICAL LINE ABOVE;;;;
+030F;COMBINING DOUBLE GRAVE ACCENT;Mn;230;NSM;;;;;N;NON-SPACING DOUBLE GRAVE;;;;
+0310;COMBINING CANDRABINDU;Mn;230;NSM;;;;;N;NON-SPACING CANDRABINDU;;;;
+0311;COMBINING INVERTED BREVE;Mn;230;NSM;;;;;N;NON-SPACING INVERTED BREVE;;;;
+0312;COMBINING TURNED COMMA ABOVE;Mn;230;NSM;;;;;N;NON-SPACING TURNED COMMA ABOVE;;;;
+0313;COMBINING COMMA ABOVE;Mn;230;NSM;;;;;N;NON-SPACING COMMA ABOVE;Psili;;;
+0314;COMBINING REVERSED COMMA ABOVE;Mn;230;NSM;;;;;N;NON-SPACING REVERSED COMMA ABOVE;Dasia;;;
+0315;COMBINING COMMA ABOVE RIGHT;Mn;232;NSM;;;;;N;NON-SPACING COMMA ABOVE RIGHT;;;;
+0316;COMBINING GRAVE ACCENT BELOW;Mn;220;NSM;;;;;N;NON-SPACING GRAVE BELOW;;;;
+0317;COMBINING ACUTE ACCENT BELOW;Mn;220;NSM;;;;;N;NON-SPACING ACUTE BELOW;;;;
+0318;COMBINING LEFT TACK BELOW;Mn;220;NSM;;;;;N;NON-SPACING LEFT TACK BELOW;;;;
+0319;COMBINING RIGHT TACK BELOW;Mn;220;NSM;;;;;N;NON-SPACING RIGHT TACK BELOW;;;;
+031A;COMBINING LEFT ANGLE ABOVE;Mn;232;NSM;;;;;N;NON-SPACING LEFT ANGLE ABOVE;;;;
+031B;COMBINING HORN;Mn;216;NSM;;;;;N;NON-SPACING HORN;;;;
+031C;COMBINING LEFT HALF RING BELOW;Mn;220;NSM;;;;;N;NON-SPACING LEFT HALF RING BELOW;;;;
+031D;COMBINING UP TACK BELOW;Mn;220;NSM;;;;;N;NON-SPACING UP TACK BELOW;;;;
+031E;COMBINING DOWN TACK BELOW;Mn;220;NSM;;;;;N;NON-SPACING DOWN TACK BELOW;;;;
+031F;COMBINING PLUS SIGN BELOW;Mn;220;NSM;;;;;N;NON-SPACING PLUS SIGN BELOW;;;;
+0320;COMBINING MINUS SIGN BELOW;Mn;220;NSM;;;;;N;NON-SPACING MINUS SIGN BELOW;;;;
+0321;COMBINING PALATALIZED HOOK BELOW;Mn;202;NSM;;;;;N;NON-SPACING PALATALIZED HOOK BELOW;;;;
+0322;COMBINING RETROFLEX HOOK BELOW;Mn;202;NSM;;;;;N;NON-SPACING RETROFLEX HOOK BELOW;;;;
+0323;COMBINING DOT BELOW;Mn;220;NSM;;;;;N;NON-SPACING DOT BELOW;;;;
+0324;COMBINING DIAERESIS BELOW;Mn;220;NSM;;;;;N;NON-SPACING DOUBLE DOT BELOW;;;;
+0325;COMBINING RING BELOW;Mn;220;NSM;;;;;N;NON-SPACING RING BELOW;;;;
+0326;COMBINING COMMA BELOW;Mn;220;NSM;;;;;N;NON-SPACING COMMA BELOW;;;;
+0327;COMBINING CEDILLA;Mn;202;NSM;;;;;N;NON-SPACING CEDILLA;;;;
+0328;COMBINING OGONEK;Mn;202;NSM;;;;;N;NON-SPACING OGONEK;;;;
+0329;COMBINING VERTICAL LINE BELOW;Mn;220;NSM;;;;;N;NON-SPACING VERTICAL LINE BELOW;;;;
+032A;COMBINING BRIDGE BELOW;Mn;220;NSM;;;;;N;NON-SPACING BRIDGE BELOW;;;;
+032B;COMBINING INVERTED DOUBLE ARCH BELOW;Mn;220;NSM;;;;;N;NON-SPACING INVERTED DOUBLE ARCH BELOW;;;;
+032C;COMBINING CARON BELOW;Mn;220;NSM;;;;;N;NON-SPACING HACEK BELOW;;;;
+032D;COMBINING CIRCUMFLEX ACCENT BELOW;Mn;220;NSM;;;;;N;NON-SPACING CIRCUMFLEX BELOW;;;;
+032E;COMBINING BREVE BELOW;Mn;220;NSM;;;;;N;NON-SPACING BREVE BELOW;;;;
+032F;COMBINING INVERTED BREVE BELOW;Mn;220;NSM;;;;;N;NON-SPACING INVERTED BREVE BELOW;;;;
+0330;COMBINING TILDE BELOW;Mn;220;NSM;;;;;N;NON-SPACING TILDE BELOW;;;;
+0331;COMBINING MACRON BELOW;Mn;220;NSM;;;;;N;NON-SPACING MACRON BELOW;;;;
+0332;COMBINING LOW LINE;Mn;220;NSM;;;;;N;NON-SPACING UNDERSCORE;;;;
+0333;COMBINING DOUBLE LOW LINE;Mn;220;NSM;;;;;N;NON-SPACING DOUBLE UNDERSCORE;;;;
+0334;COMBINING TILDE OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING TILDE OVERLAY;;;;
+0335;COMBINING SHORT STROKE OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING SHORT BAR OVERLAY;;;;
+0336;COMBINING LONG STROKE OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING LONG BAR OVERLAY;;;;
+0337;COMBINING SHORT SOLIDUS OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING SHORT SLASH OVERLAY;;;;
+0338;COMBINING LONG SOLIDUS OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING LONG SLASH OVERLAY;;;;
+0339;COMBINING RIGHT HALF RING BELOW;Mn;220;NSM;;;;;N;NON-SPACING RIGHT HALF RING BELOW;;;;
+033A;COMBINING INVERTED BRIDGE BELOW;Mn;220;NSM;;;;;N;NON-SPACING INVERTED BRIDGE BELOW;;;;
+033B;COMBINING SQUARE BELOW;Mn;220;NSM;;;;;N;NON-SPACING SQUARE BELOW;;;;
+033C;COMBINING SEAGULL BELOW;Mn;220;NSM;;;;;N;NON-SPACING SEAGULL BELOW;;;;
+033D;COMBINING X ABOVE;Mn;230;NSM;;;;;N;NON-SPACING X ABOVE;;;;
+033E;COMBINING VERTICAL TILDE;Mn;230;NSM;;;;;N;NON-SPACING VERTICAL TILDE;;;;
+033F;COMBINING DOUBLE OVERLINE;Mn;230;NSM;;;;;N;NON-SPACING DOUBLE OVERSCORE;;;;
+0340;COMBINING GRAVE TONE MARK;Mn;230;NSM;0300;;;;N;NON-SPACING GRAVE TONE MARK;Vietnamese;;;
+0341;COMBINING ACUTE TONE MARK;Mn;230;NSM;0301;;;;N;NON-SPACING ACUTE TONE MARK;Vietnamese;;;
+0342;COMBINING GREEK PERISPOMENI;Mn;230;NSM;;;;;N;;;;;
+0343;COMBINING GREEK KORONIS;Mn;230;NSM;0313;;;;N;;;;;
+0344;COMBINING GREEK DIALYTIKA TONOS;Mn;230;NSM;0308 0301;;;;N;GREEK NON-SPACING DIAERESIS TONOS;;;;
+0345;COMBINING GREEK YPOGEGRAMMENI;Mn;240;NSM;;;;;N;GREEK NON-SPACING IOTA BELOW;;0399;;0399
+0346;COMBINING BRIDGE ABOVE;Mn;230;NSM;;;;;N;;;;;
+0347;COMBINING EQUALS SIGN BELOW;Mn;220;NSM;;;;;N;;;;;
+0348;COMBINING DOUBLE VERTICAL LINE BELOW;Mn;220;NSM;;;;;N;;;;;
+0349;COMBINING LEFT ANGLE BELOW;Mn;220;NSM;;;;;N;;;;;
+034A;COMBINING NOT TILDE ABOVE;Mn;230;NSM;;;;;N;;;;;
+034B;COMBINING HOMOTHETIC ABOVE;Mn;230;NSM;;;;;N;;;;;
+034C;COMBINING ALMOST EQUAL TO ABOVE;Mn;230;NSM;;;;;N;;;;;
+034D;COMBINING LEFT RIGHT ARROW BELOW;Mn;220;NSM;;;;;N;;;;;
+034E;COMBINING UPWARDS ARROW BELOW;Mn;220;NSM;;;;;N;;;;;
+0360;COMBINING DOUBLE TILDE;Mn;234;NSM;;;;;N;;;;;
+0361;COMBINING DOUBLE INVERTED BREVE;Mn;234;NSM;;;;;N;;;;;
+0362;COMBINING DOUBLE RIGHTWARDS ARROW BELOW;Mn;233;NSM;;;;;N;;;;;
+0374;GREEK NUMERAL SIGN;Sk;0;ON;02B9;;;;N;GREEK UPPER NUMERAL SIGN;Dexia keraia;;;
+0375;GREEK LOWER NUMERAL SIGN;Sk;0;ON;;;;;N;;Aristeri keraia;;;
+037A;GREEK YPOGEGRAMMENI;Lm;0;L;<compat> 0020 0345;;;;N;GREEK SPACING IOTA BELOW;;;;
+037E;GREEK QUESTION MARK;Po;0;ON;003B;;;;N;;Erotimatiko;;;
+0384;GREEK TONOS;Sk;0;ON;<compat> 0020 0301;;;;N;GREEK SPACING TONOS;;;;
+0385;GREEK DIALYTIKA TONOS;Sk;0;ON;00A8 0301;;;;N;GREEK SPACING DIAERESIS TONOS;;;;
+0386;GREEK CAPITAL LETTER ALPHA WITH TONOS;Lu;0;L;0391 0301;;;;N;GREEK CAPITAL LETTER ALPHA TONOS;;;03AC;
+0387;GREEK ANO TELEIA;Po;0;ON;00B7;;;;N;;;;;
+0388;GREEK CAPITAL LETTER EPSILON WITH TONOS;Lu;0;L;0395 0301;;;;N;GREEK CAPITAL LETTER EPSILON TONOS;;;03AD;
+0389;GREEK CAPITAL LETTER ETA WITH TONOS;Lu;0;L;0397 0301;;;;N;GREEK CAPITAL LETTER ETA TONOS;;;03AE;
+038A;GREEK CAPITAL LETTER IOTA WITH TONOS;Lu;0;L;0399 0301;;;;N;GREEK CAPITAL LETTER IOTA TONOS;;;03AF;
+038C;GREEK CAPITAL LETTER OMICRON WITH TONOS;Lu;0;L;039F 0301;;;;N;GREEK CAPITAL LETTER OMICRON TONOS;;;03CC;
+038E;GREEK CAPITAL LETTER UPSILON WITH TONOS;Lu;0;L;03A5 0301;;;;N;GREEK CAPITAL LETTER UPSILON TONOS;;;03CD;
+038F;GREEK CAPITAL LETTER OMEGA WITH TONOS;Lu;0;L;03A9 0301;;;;N;GREEK CAPITAL LETTER OMEGA TONOS;;;03CE;
+0390;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS;Ll;0;L;03CA 0301;;;;N;GREEK SMALL LETTER IOTA DIAERESIS TONOS;;;;
+0391;GREEK CAPITAL LETTER ALPHA;Lu;0;L;;;;;N;;;;03B1;
+0392;GREEK CAPITAL LETTER BETA;Lu;0;L;;;;;N;;;;03B2;
+0393;GREEK CAPITAL LETTER GAMMA;Lu;0;L;;;;;N;;;;03B3;
+0394;GREEK CAPITAL LETTER DELTA;Lu;0;L;;;;;N;;;;03B4;
+0395;GREEK CAPITAL LETTER EPSILON;Lu;0;L;;;;;N;;;;03B5;
+0396;GREEK CAPITAL LETTER ZETA;Lu;0;L;;;;;N;;;;03B6;
+0397;GREEK CAPITAL LETTER ETA;Lu;0;L;;;;;N;;;;03B7;
+0398;GREEK CAPITAL LETTER THETA;Lu;0;L;;;;;N;;;;03B8;
+0399;GREEK CAPITAL LETTER IOTA;Lu;0;L;;;;;N;;;;03B9;
+039A;GREEK CAPITAL LETTER KAPPA;Lu;0;L;;;;;N;;;;03BA;
+039B;GREEK CAPITAL LETTER LAMDA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER LAMBDA;;;03BB;
+039C;GREEK CAPITAL LETTER MU;Lu;0;L;;;;;N;;;;03BC;
+039D;GREEK CAPITAL LETTER NU;Lu;0;L;;;;;N;;;;03BD;
+039E;GREEK CAPITAL LETTER XI;Lu;0;L;;;;;N;;;;03BE;
+039F;GREEK CAPITAL LETTER OMICRON;Lu;0;L;;;;;N;;;;03BF;
+03A0;GREEK CAPITAL LETTER PI;Lu;0;L;;;;;N;;;;03C0;
+03A1;GREEK CAPITAL LETTER RHO;Lu;0;L;;;;;N;;;;03C1;
+03A3;GREEK CAPITAL LETTER SIGMA;Lu;0;L;;;;;N;;;;03C3;
+03A4;GREEK CAPITAL LETTER TAU;Lu;0;L;;;;;N;;;;03C4;
+03A5;GREEK CAPITAL LETTER UPSILON;Lu;0;L;;;;;N;;;;03C5;
+03A6;GREEK CAPITAL LETTER PHI;Lu;0;L;;;;;N;;;;03C6;
+03A7;GREEK CAPITAL LETTER CHI;Lu;0;L;;;;;N;;;;03C7;
+03A8;GREEK CAPITAL LETTER PSI;Lu;0;L;;;;;N;;;;03C8;
+03A9;GREEK CAPITAL LETTER OMEGA;Lu;0;L;;;;;N;;;;03C9;
+03AA;GREEK CAPITAL LETTER IOTA WITH DIALYTIKA;Lu;0;L;0399 0308;;;;N;GREEK CAPITAL LETTER IOTA DIAERESIS;;;03CA;
+03AB;GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA;Lu;0;L;03A5 0308;;;;N;GREEK CAPITAL LETTER UPSILON DIAERESIS;;;03CB;
+03AC;GREEK SMALL LETTER ALPHA WITH TONOS;Ll;0;L;03B1 0301;;;;N;GREEK SMALL LETTER ALPHA TONOS;;0386;;0386
+03AD;GREEK SMALL LETTER EPSILON WITH TONOS;Ll;0;L;03B5 0301;;;;N;GREEK SMALL LETTER EPSILON TONOS;;0388;;0388
+03AE;GREEK SMALL LETTER ETA WITH TONOS;Ll;0;L;03B7 0301;;;;N;GREEK SMALL LETTER ETA TONOS;;0389;;0389
+03AF;GREEK SMALL LETTER IOTA WITH TONOS;Ll;0;L;03B9 0301;;;;N;GREEK SMALL LETTER IOTA TONOS;;038A;;038A
+03B0;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS;Ll;0;L;03CB 0301;;;;N;GREEK SMALL LETTER UPSILON DIAERESIS TONOS;;;;
+03B1;GREEK SMALL LETTER ALPHA;Ll;0;L;;;;;N;;;0391;;0391
+03B2;GREEK SMALL LETTER BETA;Ll;0;L;;;;;N;;;0392;;0392
+03B3;GREEK SMALL LETTER GAMMA;Ll;0;L;;;;;N;;;0393;;0393
+03B4;GREEK SMALL LETTER DELTA;Ll;0;L;;;;;N;;;0394;;0394
+03B5;GREEK SMALL LETTER EPSILON;Ll;0;L;;;;;N;;;0395;;0395
+03B6;GREEK SMALL LETTER ZETA;Ll;0;L;;;;;N;;;0396;;0396
+03B7;GREEK SMALL LETTER ETA;Ll;0;L;;;;;N;;;0397;;0397
+03B8;GREEK SMALL LETTER THETA;Ll;0;L;;;;;N;;;0398;;0398
+03B9;GREEK SMALL LETTER IOTA;Ll;0;L;;;;;N;;;0399;;0399
+03BA;GREEK SMALL LETTER KAPPA;Ll;0;L;;;;;N;;;039A;;039A
+03BB;GREEK SMALL LETTER LAMDA;Ll;0;L;;;;;N;GREEK SMALL LETTER LAMBDA;;039B;;039B
+03BC;GREEK SMALL LETTER MU;Ll;0;L;;;;;N;;;039C;;039C
+03BD;GREEK SMALL LETTER NU;Ll;0;L;;;;;N;;;039D;;039D
+03BE;GREEK SMALL LETTER XI;Ll;0;L;;;;;N;;;039E;;039E
+03BF;GREEK SMALL LETTER OMICRON;Ll;0;L;;;;;N;;;039F;;039F
+03C0;GREEK SMALL LETTER PI;Ll;0;L;;;;;N;;;03A0;;03A0
+03C1;GREEK SMALL LETTER RHO;Ll;0;L;;;;;N;;;03A1;;03A1
+03C2;GREEK SMALL LETTER FINAL SIGMA;Ll;0;L;;;;;N;;;03A3;;03A3
+03C3;GREEK SMALL LETTER SIGMA;Ll;0;L;;;;;N;;;03A3;;03A3
+03C4;GREEK SMALL LETTER TAU;Ll;0;L;;;;;N;;;03A4;;03A4
+03C5;GREEK SMALL LETTER UPSILON;Ll;0;L;;;;;N;;;03A5;;03A5
+03C6;GREEK SMALL LETTER PHI;Ll;0;L;;;;;N;;;03A6;;03A6
+03C7;GREEK SMALL LETTER CHI;Ll;0;L;;;;;N;;;03A7;;03A7
+03C8;GREEK SMALL LETTER PSI;Ll;0;L;;;;;N;;;03A8;;03A8
+03C9;GREEK SMALL LETTER OMEGA;Ll;0;L;;;;;N;;;03A9;;03A9
+03CA;GREEK SMALL LETTER IOTA WITH DIALYTIKA;Ll;0;L;03B9 0308;;;;N;GREEK SMALL LETTER IOTA DIAERESIS;;03AA;;03AA
+03CB;GREEK SMALL LETTER UPSILON WITH DIALYTIKA;Ll;0;L;03C5 0308;;;;N;GREEK SMALL LETTER UPSILON DIAERESIS;;03AB;;03AB
+03CC;GREEK SMALL LETTER OMICRON WITH TONOS;Ll;0;L;03BF 0301;;;;N;GREEK SMALL LETTER OMICRON TONOS;;038C;;038C
+03CD;GREEK SMALL LETTER UPSILON WITH TONOS;Ll;0;L;03C5 0301;;;;N;GREEK SMALL LETTER UPSILON TONOS;;038E;;038E
+03CE;GREEK SMALL LETTER OMEGA WITH TONOS;Ll;0;L;03C9 0301;;;;N;GREEK SMALL LETTER OMEGA TONOS;;038F;;038F
+03D0;GREEK BETA SYMBOL;Ll;0;L;<compat> 03B2;;;;N;GREEK SMALL LETTER CURLED BETA;;0392;;0392
+03D1;GREEK THETA SYMBOL;Ll;0;L;<compat> 03B8;;;;N;GREEK SMALL LETTER SCRIPT THETA;;0398;;0398
+03D2;GREEK UPSILON WITH HOOK SYMBOL;Lu;0;L;<compat> 03A5;;;;N;GREEK CAPITAL LETTER UPSILON HOOK;;;;
+03D3;GREEK UPSILON WITH ACUTE AND HOOK SYMBOL;Lu;0;L;03D2 0301;;;;N;GREEK CAPITAL LETTER UPSILON HOOK TONOS;;;;
+03D4;GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL;Lu;0;L;03D2 0308;;;;N;GREEK CAPITAL LETTER UPSILON HOOK DIAERESIS;;;;
+03D5;GREEK PHI SYMBOL;Ll;0;L;<compat> 03C6;;;;N;GREEK SMALL LETTER SCRIPT PHI;;03A6;;03A6
+03D6;GREEK PI SYMBOL;Ll;0;L;<compat> 03C0;;;;N;GREEK SMALL LETTER OMEGA PI;;03A0;;03A0
+03D7;GREEK KAI SYMBOL;Ll;0;L;;;;;N;;;;;
+03DA;GREEK LETTER STIGMA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER STIGMA;;;03DB;
+03DB;GREEK SMALL LETTER STIGMA;Ll;0;L;;;;;N;;;03DA;;03DA
+03DC;GREEK LETTER DIGAMMA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER DIGAMMA;;;03DD;
+03DD;GREEK SMALL LETTER DIGAMMA;Ll;0;L;;;;;N;;;03DC;;03DC
+03DE;GREEK LETTER KOPPA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER KOPPA;;;03DF;
+03DF;GREEK SMALL LETTER KOPPA;Ll;0;L;;;;;N;;;03DE;;03DE
+03E0;GREEK LETTER SAMPI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER SAMPI;;;03E1;
+03E1;GREEK SMALL LETTER SAMPI;Ll;0;L;;;;;N;;;03E0;;03E0
+03E2;COPTIC CAPITAL LETTER SHEI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER SHEI;;;03E3;
+03E3;COPTIC SMALL LETTER SHEI;Ll;0;L;;;;;N;GREEK SMALL LETTER SHEI;;03E2;;03E2
+03E4;COPTIC CAPITAL LETTER FEI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER FEI;;;03E5;
+03E5;COPTIC SMALL LETTER FEI;Ll;0;L;;;;;N;GREEK SMALL LETTER FEI;;03E4;;03E4
+03E6;COPTIC CAPITAL LETTER KHEI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER KHEI;;;03E7;
+03E7;COPTIC SMALL LETTER KHEI;Ll;0;L;;;;;N;GREEK SMALL LETTER KHEI;;03E6;;03E6
+03E8;COPTIC CAPITAL LETTER HORI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER HORI;;;03E9;
+03E9;COPTIC SMALL LETTER HORI;Ll;0;L;;;;;N;GREEK SMALL LETTER HORI;;03E8;;03E8
+03EA;COPTIC CAPITAL LETTER GANGIA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER GANGIA;;;03EB;
+03EB;COPTIC SMALL LETTER GANGIA;Ll;0;L;;;;;N;GREEK SMALL LETTER GANGIA;;03EA;;03EA
+03EC;COPTIC CAPITAL LETTER SHIMA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER SHIMA;;;03ED;
+03ED;COPTIC SMALL LETTER SHIMA;Ll;0;L;;;;;N;GREEK SMALL LETTER SHIMA;;03EC;;03EC
+03EE;COPTIC CAPITAL LETTER DEI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER DEI;;;03EF;
+03EF;COPTIC SMALL LETTER DEI;Ll;0;L;;;;;N;GREEK SMALL LETTER DEI;;03EE;;03EE
+03F0;GREEK KAPPA SYMBOL;Ll;0;L;<compat> 03BA;;;;N;GREEK SMALL LETTER SCRIPT KAPPA;;039A;;039A
+03F1;GREEK RHO SYMBOL;Ll;0;L;<compat> 03C1;;;;N;GREEK SMALL LETTER TAILED RHO;;03A1;;03A1
+03F2;GREEK LUNATE SIGMA SYMBOL;Ll;0;L;<compat> 03C2;;;;N;GREEK SMALL LETTER LUNATE SIGMA;;03A3;;03A3
+03F3;GREEK LETTER YOT;Ll;0;L;;;;;N;;;;;
+0400;CYRILLIC CAPITAL LETTER IE WITH GRAVE;Lu;0;L;0415 0300;;;;N;;;;0450;
+0401;CYRILLIC CAPITAL LETTER IO;Lu;0;L;0415 0308;;;;N;;;;0451;
+0402;CYRILLIC CAPITAL LETTER DJE;Lu;0;L;;;;;N;;Serbocroatian;;0452;
+0403;CYRILLIC CAPITAL LETTER GJE;Lu;0;L;0413 0301;;;;N;;;;0453;
+0404;CYRILLIC CAPITAL LETTER UKRAINIAN IE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER E;;;0454;
+0405;CYRILLIC CAPITAL LETTER DZE;Lu;0;L;;;;;N;;;;0455;
+0406;CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER I;;;0456;
+0407;CYRILLIC CAPITAL LETTER YI;Lu;0;L;0406 0308;;;;N;;Ukrainian;;0457;
+0408;CYRILLIC CAPITAL LETTER JE;Lu;0;L;;;;;N;;;;0458;
+0409;CYRILLIC CAPITAL LETTER LJE;Lu;0;L;;;;;N;;;;0459;
+040A;CYRILLIC CAPITAL LETTER NJE;Lu;0;L;;;;;N;;;;045A;
+040B;CYRILLIC CAPITAL LETTER TSHE;Lu;0;L;;;;;N;;Serbocroatian;;045B;
+040C;CYRILLIC CAPITAL LETTER KJE;Lu;0;L;041A 0301;;;;N;;;;045C;
+040D;CYRILLIC CAPITAL LETTER I WITH GRAVE;Lu;0;L;0418 0300;;;;N;;;;045D;
+040E;CYRILLIC CAPITAL LETTER SHORT U;Lu;0;L;0423 0306;;;;N;;Byelorussian;;045E;
+040F;CYRILLIC CAPITAL LETTER DZHE;Lu;0;L;;;;;N;;;;045F;
+0410;CYRILLIC CAPITAL LETTER A;Lu;0;L;;;;;N;;;;0430;
+0411;CYRILLIC CAPITAL LETTER BE;Lu;0;L;;;;;N;;;;0431;
+0412;CYRILLIC CAPITAL LETTER VE;Lu;0;L;;;;;N;;;;0432;
+0413;CYRILLIC CAPITAL LETTER GHE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER GE;;;0433;
+0414;CYRILLIC CAPITAL LETTER DE;Lu;0;L;;;;;N;;;;0434;
+0415;CYRILLIC CAPITAL LETTER IE;Lu;0;L;;;;;N;;;;0435;
+0416;CYRILLIC CAPITAL LETTER ZHE;Lu;0;L;;;;;N;;;;0436;
+0417;CYRILLIC CAPITAL LETTER ZE;Lu;0;L;;;;;N;;;;0437;
+0418;CYRILLIC CAPITAL LETTER I;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER II;;;0438;
+0419;CYRILLIC CAPITAL LETTER SHORT I;Lu;0;L;0418 0306;;;;N;CYRILLIC CAPITAL LETTER SHORT II;;;0439;
+041A;CYRILLIC CAPITAL LETTER KA;Lu;0;L;;;;;N;;;;043A;
+041B;CYRILLIC CAPITAL LETTER EL;Lu;0;L;;;;;N;;;;043B;
+041C;CYRILLIC CAPITAL LETTER EM;Lu;0;L;;;;;N;;;;043C;
+041D;CYRILLIC CAPITAL LETTER EN;Lu;0;L;;;;;N;;;;043D;
+041E;CYRILLIC CAPITAL LETTER O;Lu;0;L;;;;;N;;;;043E;
+041F;CYRILLIC CAPITAL LETTER PE;Lu;0;L;;;;;N;;;;043F;
+0420;CYRILLIC CAPITAL LETTER ER;Lu;0;L;;;;;N;;;;0440;
+0421;CYRILLIC CAPITAL LETTER ES;Lu;0;L;;;;;N;;;;0441;
+0422;CYRILLIC CAPITAL LETTER TE;Lu;0;L;;;;;N;;;;0442;
+0423;CYRILLIC CAPITAL LETTER U;Lu;0;L;;;;;N;;;;0443;
+0424;CYRILLIC CAPITAL LETTER EF;Lu;0;L;;;;;N;;;;0444;
+0425;CYRILLIC CAPITAL LETTER HA;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KHA;;;0445;
+0426;CYRILLIC CAPITAL LETTER TSE;Lu;0;L;;;;;N;;;;0446;
+0427;CYRILLIC CAPITAL LETTER CHE;Lu;0;L;;;;;N;;;;0447;
+0428;CYRILLIC CAPITAL LETTER SHA;Lu;0;L;;;;;N;;;;0448;
+0429;CYRILLIC CAPITAL LETTER SHCHA;Lu;0;L;;;;;N;;;;0449;
+042A;CYRILLIC CAPITAL LETTER HARD SIGN;Lu;0;L;;;;;N;;;;044A;
+042B;CYRILLIC CAPITAL LETTER YERU;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER YERI;;;044B;
+042C;CYRILLIC CAPITAL LETTER SOFT SIGN;Lu;0;L;;;;;N;;;;044C;
+042D;CYRILLIC CAPITAL LETTER E;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER REVERSED E;;;044D;
+042E;CYRILLIC CAPITAL LETTER YU;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER IU;;;044E;
+042F;CYRILLIC CAPITAL LETTER YA;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER IA;;;044F;
+0430;CYRILLIC SMALL LETTER A;Ll;0;L;;;;;N;;;0410;;0410
+0431;CYRILLIC SMALL LETTER BE;Ll;0;L;;;;;N;;;0411;;0411
+0432;CYRILLIC SMALL LETTER VE;Ll;0;L;;;;;N;;;0412;;0412
+0433;CYRILLIC SMALL LETTER GHE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER GE;;0413;;0413
+0434;CYRILLIC SMALL LETTER DE;Ll;0;L;;;;;N;;;0414;;0414
+0435;CYRILLIC SMALL LETTER IE;Ll;0;L;;;;;N;;;0415;;0415
+0436;CYRILLIC SMALL LETTER ZHE;Ll;0;L;;;;;N;;;0416;;0416
+0437;CYRILLIC SMALL LETTER ZE;Ll;0;L;;;;;N;;;0417;;0417
+0438;CYRILLIC SMALL LETTER I;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER II;;0418;;0418
+0439;CYRILLIC SMALL LETTER SHORT I;Ll;0;L;0438 0306;;;;N;CYRILLIC SMALL LETTER SHORT II;;0419;;0419
+043A;CYRILLIC SMALL LETTER KA;Ll;0;L;;;;;N;;;041A;;041A
+043B;CYRILLIC SMALL LETTER EL;Ll;0;L;;;;;N;;;041B;;041B
+043C;CYRILLIC SMALL LETTER EM;Ll;0;L;;;;;N;;;041C;;041C
+043D;CYRILLIC SMALL LETTER EN;Ll;0;L;;;;;N;;;041D;;041D
+043E;CYRILLIC SMALL LETTER O;Ll;0;L;;;;;N;;;041E;;041E
+043F;CYRILLIC SMALL LETTER PE;Ll;0;L;;;;;N;;;041F;;041F
+0440;CYRILLIC SMALL LETTER ER;Ll;0;L;;;;;N;;;0420;;0420
+0441;CYRILLIC SMALL LETTER ES;Ll;0;L;;;;;N;;;0421;;0421
+0442;CYRILLIC SMALL LETTER TE;Ll;0;L;;;;;N;;;0422;;0422
+0443;CYRILLIC SMALL LETTER U;Ll;0;L;;;;;N;;;0423;;0423
+0444;CYRILLIC SMALL LETTER EF;Ll;0;L;;;;;N;;;0424;;0424
+0445;CYRILLIC SMALL LETTER HA;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KHA;;0425;;0425
+0446;CYRILLIC SMALL LETTER TSE;Ll;0;L;;;;;N;;;0426;;0426
+0447;CYRILLIC SMALL LETTER CHE;Ll;0;L;;;;;N;;;0427;;0427
+0448;CYRILLIC SMALL LETTER SHA;Ll;0;L;;;;;N;;;0428;;0428
+0449;CYRILLIC SMALL LETTER SHCHA;Ll;0;L;;;;;N;;;0429;;0429
+044A;CYRILLIC SMALL LETTER HARD SIGN;Ll;0;L;;;;;N;;;042A;;042A
+044B;CYRILLIC SMALL LETTER YERU;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER YERI;;042B;;042B
+044C;CYRILLIC SMALL LETTER SOFT SIGN;Ll;0;L;;;;;N;;;042C;;042C
+044D;CYRILLIC SMALL LETTER E;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER REVERSED E;;042D;;042D
+044E;CYRILLIC SMALL LETTER YU;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER IU;;042E;;042E
+044F;CYRILLIC SMALL LETTER YA;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER IA;;042F;;042F
+0450;CYRILLIC SMALL LETTER IE WITH GRAVE;Ll;0;L;0435 0300;;;;N;;;0400;;0400
+0451;CYRILLIC SMALL LETTER IO;Ll;0;L;0435 0308;;;;N;;;0401;;0401
+0452;CYRILLIC SMALL LETTER DJE;Ll;0;L;;;;;N;;Serbocroatian;0402;;0402
+0453;CYRILLIC SMALL LETTER GJE;Ll;0;L;0433 0301;;;;N;;;0403;;0403
+0454;CYRILLIC SMALL LETTER UKRAINIAN IE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER E;;0404;;0404
+0455;CYRILLIC SMALL LETTER DZE;Ll;0;L;;;;;N;;;0405;;0405
+0456;CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER I;;0406;;0406
+0457;CYRILLIC SMALL LETTER YI;Ll;0;L;0456 0308;;;;N;;Ukrainian;0407;;0407
+0458;CYRILLIC SMALL LETTER JE;Ll;0;L;;;;;N;;;0408;;0408
+0459;CYRILLIC SMALL LETTER LJE;Ll;0;L;;;;;N;;;0409;;0409
+045A;CYRILLIC SMALL LETTER NJE;Ll;0;L;;;;;N;;;040A;;040A
+045B;CYRILLIC SMALL LETTER TSHE;Ll;0;L;;;;;N;;Serbocroatian;040B;;040B
+045C;CYRILLIC SMALL LETTER KJE;Ll;0;L;043A 0301;;;;N;;;040C;;040C
+045D;CYRILLIC SMALL LETTER I WITH GRAVE;Ll;0;L;0438 0300;;;;N;;;040D;;040D
+045E;CYRILLIC SMALL LETTER SHORT U;Ll;0;L;0443 0306;;;;N;;Byelorussian;040E;;040E
+045F;CYRILLIC SMALL LETTER DZHE;Ll;0;L;;;;;N;;;040F;;040F
+0460;CYRILLIC CAPITAL LETTER OMEGA;Lu;0;L;;;;;N;;;;0461;
+0461;CYRILLIC SMALL LETTER OMEGA;Ll;0;L;;;;;N;;;0460;;0460
+0462;CYRILLIC CAPITAL LETTER YAT;Lu;0;L;;;;;N;;;;0463;
+0463;CYRILLIC SMALL LETTER YAT;Ll;0;L;;;;;N;;;0462;;0462
+0464;CYRILLIC CAPITAL LETTER IOTIFIED E;Lu;0;L;;;;;N;;;;0465;
+0465;CYRILLIC SMALL LETTER IOTIFIED E;Ll;0;L;;;;;N;;;0464;;0464
+0466;CYRILLIC CAPITAL LETTER LITTLE YUS;Lu;0;L;;;;;N;;;;0467;
+0467;CYRILLIC SMALL LETTER LITTLE YUS;Ll;0;L;;;;;N;;;0466;;0466
+0468;CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS;Lu;0;L;;;;;N;;;;0469;
+0469;CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS;Ll;0;L;;;;;N;;;0468;;0468
+046A;CYRILLIC CAPITAL LETTER BIG YUS;Lu;0;L;;;;;N;;;;046B;
+046B;CYRILLIC SMALL LETTER BIG YUS;Ll;0;L;;;;;N;;;046A;;046A
+046C;CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS;Lu;0;L;;;;;N;;;;046D;
+046D;CYRILLIC SMALL LETTER IOTIFIED BIG YUS;Ll;0;L;;;;;N;;;046C;;046C
+046E;CYRILLIC CAPITAL LETTER KSI;Lu;0;L;;;;;N;;;;046F;
+046F;CYRILLIC SMALL LETTER KSI;Ll;0;L;;;;;N;;;046E;;046E
+0470;CYRILLIC CAPITAL LETTER PSI;Lu;0;L;;;;;N;;;;0471;
+0471;CYRILLIC SMALL LETTER PSI;Ll;0;L;;;;;N;;;0470;;0470
+0472;CYRILLIC CAPITAL LETTER FITA;Lu;0;L;;;;;N;;;;0473;
+0473;CYRILLIC SMALL LETTER FITA;Ll;0;L;;;;;N;;;0472;;0472
+0474;CYRILLIC CAPITAL LETTER IZHITSA;Lu;0;L;;;;;N;;;;0475;
+0475;CYRILLIC SMALL LETTER IZHITSA;Ll;0;L;;;;;N;;;0474;;0474
+0476;CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT;Lu;0;L;0474 030F;;;;N;CYRILLIC CAPITAL LETTER IZHITSA DOUBLE GRAVE;;;0477;
+0477;CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT;Ll;0;L;0475 030F;;;;N;CYRILLIC SMALL LETTER IZHITSA DOUBLE GRAVE;;0476;;0476
+0478;CYRILLIC CAPITAL LETTER UK;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER UK DIGRAPH;;;0479;
+0479;CYRILLIC SMALL LETTER UK;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER UK DIGRAPH;;0478;;0478
+047A;CYRILLIC CAPITAL LETTER ROUND OMEGA;Lu;0;L;;;;;N;;;;047B;
+047B;CYRILLIC SMALL LETTER ROUND OMEGA;Ll;0;L;;;;;N;;;047A;;047A
+047C;CYRILLIC CAPITAL LETTER OMEGA WITH TITLO;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER OMEGA TITLO;;;047D;
+047D;CYRILLIC SMALL LETTER OMEGA WITH TITLO;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER OMEGA TITLO;;047C;;047C
+047E;CYRILLIC CAPITAL LETTER OT;Lu;0;L;;;;;N;;;;047F;
+047F;CYRILLIC SMALL LETTER OT;Ll;0;L;;;;;N;;;047E;;047E
+0480;CYRILLIC CAPITAL LETTER KOPPA;Lu;0;L;;;;;N;;;;0481;
+0481;CYRILLIC SMALL LETTER KOPPA;Ll;0;L;;;;;N;;;0480;;0480
+0482;CYRILLIC THOUSANDS SIGN;So;0;L;;;;;N;;;;;
+0483;COMBINING CYRILLIC TITLO;Mn;230;NSM;;;;;N;CYRILLIC NON-SPACING TITLO;;;;
+0484;COMBINING CYRILLIC PALATALIZATION;Mn;230;NSM;;;;;N;CYRILLIC NON-SPACING PALATALIZATION;;;;
+0485;COMBINING CYRILLIC DASIA PNEUMATA;Mn;230;NSM;;;;;N;CYRILLIC NON-SPACING DASIA PNEUMATA;;;;
+0486;COMBINING CYRILLIC PSILI PNEUMATA;Mn;230;NSM;;;;;N;CYRILLIC NON-SPACING PSILI PNEUMATA;;;;
+0488;COMBINING CYRILLIC HUNDRED THOUSANDS SIGN;Me;0;NSM;;;;;N;;;;;
+0489;COMBINING CYRILLIC MILLIONS SIGN;Me;0;NSM;;;;;N;;;;;
+048C;CYRILLIC CAPITAL LETTER SEMISOFT SIGN;Lu;0;L;;;;;N;;;;048D;
+048D;CYRILLIC SMALL LETTER SEMISOFT SIGN;Ll;0;L;;;;;N;;;048C;;048C
+048E;CYRILLIC CAPITAL LETTER ER WITH TICK;Lu;0;L;;;;;N;;;;048F;
+048F;CYRILLIC SMALL LETTER ER WITH TICK;Ll;0;L;;;;;N;;;048E;;048E
+0490;CYRILLIC CAPITAL LETTER GHE WITH UPTURN;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER GE WITH UPTURN;;;0491;
+0491;CYRILLIC SMALL LETTER GHE WITH UPTURN;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER GE WITH UPTURN;;0490;;0490
+0492;CYRILLIC CAPITAL LETTER GHE WITH STROKE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER GE BAR;;;0493;
+0493;CYRILLIC SMALL LETTER GHE WITH STROKE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER GE BAR;;0492;;0492
+0494;CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER GE HOOK;;;0495;
+0495;CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER GE HOOK;;0494;;0494
+0496;CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER ZHE WITH RIGHT DESCENDER;;;0497;
+0497;CYRILLIC SMALL LETTER ZHE WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER ZHE WITH RIGHT DESCENDER;;0496;;0496
+0498;CYRILLIC CAPITAL LETTER ZE WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER ZE CEDILLA;;;0499;
+0499;CYRILLIC SMALL LETTER ZE WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER ZE CEDILLA;;0498;;0498
+049A;CYRILLIC CAPITAL LETTER KA WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KA WITH RIGHT DESCENDER;;;049B;
+049B;CYRILLIC SMALL LETTER KA WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KA WITH RIGHT DESCENDER;;049A;;049A
+049C;CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KA VERTICAL BAR;;;049D;
+049D;CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KA VERTICAL BAR;;049C;;049C
+049E;CYRILLIC CAPITAL LETTER KA WITH STROKE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KA BAR;;;049F;
+049F;CYRILLIC SMALL LETTER KA WITH STROKE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KA BAR;;049E;;049E
+04A0;CYRILLIC CAPITAL LETTER BASHKIR KA;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER REVERSED GE KA;;;04A1;
+04A1;CYRILLIC SMALL LETTER BASHKIR KA;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER REVERSED GE KA;;04A0;;04A0
+04A2;CYRILLIC CAPITAL LETTER EN WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER EN WITH RIGHT DESCENDER;;;04A3;
+04A3;CYRILLIC SMALL LETTER EN WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER EN WITH RIGHT DESCENDER;;04A2;;04A2
+04A4;CYRILLIC CAPITAL LIGATURE EN GHE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER EN GE;;;04A5;
+04A5;CYRILLIC SMALL LIGATURE EN GHE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER EN GE;;04A4;;04A4
+04A6;CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER PE HOOK;Abkhasian;;04A7;
+04A7;CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER PE HOOK;Abkhasian;04A6;;04A6
+04A8;CYRILLIC CAPITAL LETTER ABKHASIAN HA;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER O HOOK;;;04A9;
+04A9;CYRILLIC SMALL LETTER ABKHASIAN HA;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER O HOOK;;04A8;;04A8
+04AA;CYRILLIC CAPITAL LETTER ES WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER ES CEDILLA;;;04AB;
+04AB;CYRILLIC SMALL LETTER ES WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER ES CEDILLA;;04AA;;04AA
+04AC;CYRILLIC CAPITAL LETTER TE WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER TE WITH RIGHT DESCENDER;;;04AD;
+04AD;CYRILLIC SMALL LETTER TE WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER TE WITH RIGHT DESCENDER;;04AC;;04AC
+04AE;CYRILLIC CAPITAL LETTER STRAIGHT U;Lu;0;L;;;;;N;;;;04AF;
+04AF;CYRILLIC SMALL LETTER STRAIGHT U;Ll;0;L;;;;;N;;;04AE;;04AE
+04B0;CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER STRAIGHT U BAR;;;04B1;
+04B1;CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER STRAIGHT U BAR;;04B0;;04B0
+04B2;CYRILLIC CAPITAL LETTER HA WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KHA WITH RIGHT DESCENDER;;;04B3;
+04B3;CYRILLIC SMALL LETTER HA WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KHA WITH RIGHT DESCENDER;;04B2;;04B2
+04B4;CYRILLIC CAPITAL LIGATURE TE TSE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER TE TSE;Abkhasian;;04B5;
+04B5;CYRILLIC SMALL LIGATURE TE TSE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER TE TSE;Abkhasian;04B4;;04B4
+04B6;CYRILLIC CAPITAL LETTER CHE WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER CHE WITH RIGHT DESCENDER;;;04B7;
+04B7;CYRILLIC SMALL LETTER CHE WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER CHE WITH RIGHT DESCENDER;;04B6;;04B6
+04B8;CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER CHE VERTICAL BAR;;;04B9;
+04B9;CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER CHE VERTICAL BAR;;04B8;;04B8
+04BA;CYRILLIC CAPITAL LETTER SHHA;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER H;;;04BB;
+04BB;CYRILLIC SMALL LETTER SHHA;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER H;;04BA;;04BA
+04BC;CYRILLIC CAPITAL LETTER ABKHASIAN CHE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER IE HOOK;;;04BD;
+04BD;CYRILLIC SMALL LETTER ABKHASIAN CHE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER IE HOOK;;04BC;;04BC
+04BE;CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER IE HOOK OGONEK;;;04BF;
+04BF;CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER IE HOOK OGONEK;;04BE;;04BE
+04C0;CYRILLIC LETTER PALOCHKA;Lu;0;L;;;;;N;CYRILLIC LETTER I;;;;
+04C1;CYRILLIC CAPITAL LETTER ZHE WITH BREVE;Lu;0;L;0416 0306;;;;N;CYRILLIC CAPITAL LETTER SHORT ZHE;;;04C2;
+04C2;CYRILLIC SMALL LETTER ZHE WITH BREVE;Ll;0;L;0436 0306;;;;N;CYRILLIC SMALL LETTER SHORT ZHE;;04C1;;04C1
+04C3;CYRILLIC CAPITAL LETTER KA WITH HOOK;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KA HOOK;;;04C4;
+04C4;CYRILLIC SMALL LETTER KA WITH HOOK;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KA HOOK;;04C3;;04C3
+04C7;CYRILLIC CAPITAL LETTER EN WITH HOOK;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER EN HOOK;;;04C8;
+04C8;CYRILLIC SMALL LETTER EN WITH HOOK;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER EN HOOK;;04C7;;04C7
+04CB;CYRILLIC CAPITAL LETTER KHAKASSIAN CHE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER CHE WITH LEFT DESCENDER;;;04CC;
+04CC;CYRILLIC SMALL LETTER KHAKASSIAN CHE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER CHE WITH LEFT DESCENDER;;04CB;;04CB
+04D0;CYRILLIC CAPITAL LETTER A WITH BREVE;Lu;0;L;0410 0306;;;;N;;;;04D1;
+04D1;CYRILLIC SMALL LETTER A WITH BREVE;Ll;0;L;0430 0306;;;;N;;;04D0;;04D0
+04D2;CYRILLIC CAPITAL LETTER A WITH DIAERESIS;Lu;0;L;0410 0308;;;;N;;;;04D3;
+04D3;CYRILLIC SMALL LETTER A WITH DIAERESIS;Ll;0;L;0430 0308;;;;N;;;04D2;;04D2
+04D4;CYRILLIC CAPITAL LIGATURE A IE;Lu;0;L;;;;;N;;;;04D5;
+04D5;CYRILLIC SMALL LIGATURE A IE;Ll;0;L;;;;;N;;;04D4;;04D4
+04D6;CYRILLIC CAPITAL LETTER IE WITH BREVE;Lu;0;L;0415 0306;;;;N;;;;04D7;
+04D7;CYRILLIC SMALL LETTER IE WITH BREVE;Ll;0;L;0435 0306;;;;N;;;04D6;;04D6
+04D8;CYRILLIC CAPITAL LETTER SCHWA;Lu;0;L;;;;;N;;;;04D9;
+04D9;CYRILLIC SMALL LETTER SCHWA;Ll;0;L;;;;;N;;;04D8;;04D8
+04DA;CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS;Lu;0;L;04D8 0308;;;;N;;;;04DB;
+04DB;CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS;Ll;0;L;04D9 0308;;;;N;;;04DA;;04DA
+04DC;CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS;Lu;0;L;0416 0308;;;;N;;;;04DD;
+04DD;CYRILLIC SMALL LETTER ZHE WITH DIAERESIS;Ll;0;L;0436 0308;;;;N;;;04DC;;04DC
+04DE;CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS;Lu;0;L;0417 0308;;;;N;;;;04DF;
+04DF;CYRILLIC SMALL LETTER ZE WITH DIAERESIS;Ll;0;L;0437 0308;;;;N;;;04DE;;04DE
+04E0;CYRILLIC CAPITAL LETTER ABKHASIAN DZE;Lu;0;L;;;;;N;;;;04E1;
+04E1;CYRILLIC SMALL LETTER ABKHASIAN DZE;Ll;0;L;;;;;N;;;04E0;;04E0
+04E2;CYRILLIC CAPITAL LETTER I WITH MACRON;Lu;0;L;0418 0304;;;;N;;;;04E3;
+04E3;CYRILLIC SMALL LETTER I WITH MACRON;Ll;0;L;0438 0304;;;;N;;;04E2;;04E2
+04E4;CYRILLIC CAPITAL LETTER I WITH DIAERESIS;Lu;0;L;0418 0308;;;;N;;;;04E5;
+04E5;CYRILLIC SMALL LETTER I WITH DIAERESIS;Ll;0;L;0438 0308;;;;N;;;04E4;;04E4
+04E6;CYRILLIC CAPITAL LETTER O WITH DIAERESIS;Lu;0;L;041E 0308;;;;N;;;;04E7;
+04E7;CYRILLIC SMALL LETTER O WITH DIAERESIS;Ll;0;L;043E 0308;;;;N;;;04E6;;04E6
+04E8;CYRILLIC CAPITAL LETTER BARRED O;Lu;0;L;;;;;N;;;;04E9;
+04E9;CYRILLIC SMALL LETTER BARRED O;Ll;0;L;;;;;N;;;04E8;;04E8
+04EA;CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS;Lu;0;L;04E8 0308;;;;N;;;;04EB;
+04EB;CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS;Ll;0;L;04E9 0308;;;;N;;;04EA;;04EA
+04EC;CYRILLIC CAPITAL LETTER E WITH DIAERESIS;Lu;0;L;042D 0308;;;;N;;;;04ED;
+04ED;CYRILLIC SMALL LETTER E WITH DIAERESIS;Ll;0;L;044D 0308;;;;N;;;04EC;;04EC
+04EE;CYRILLIC CAPITAL LETTER U WITH MACRON;Lu;0;L;0423 0304;;;;N;;;;04EF;
+04EF;CYRILLIC SMALL LETTER U WITH MACRON;Ll;0;L;0443 0304;;;;N;;;04EE;;04EE
+04F0;CYRILLIC CAPITAL LETTER U WITH DIAERESIS;Lu;0;L;0423 0308;;;;N;;;;04F1;
+04F1;CYRILLIC SMALL LETTER U WITH DIAERESIS;Ll;0;L;0443 0308;;;;N;;;04F0;;04F0
+04F2;CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE;Lu;0;L;0423 030B;;;;N;;;;04F3;
+04F3;CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE;Ll;0;L;0443 030B;;;;N;;;04F2;;04F2
+04F4;CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS;Lu;0;L;0427 0308;;;;N;;;;04F5;
+04F5;CYRILLIC SMALL LETTER CHE WITH DIAERESIS;Ll;0;L;0447 0308;;;;N;;;04F4;;04F4
+04F8;CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS;Lu;0;L;042B 0308;;;;N;;;;04F9;
+04F9;CYRILLIC SMALL LETTER YERU WITH DIAERESIS;Ll;0;L;044B 0308;;;;N;;;04F8;;04F8
+0531;ARMENIAN CAPITAL LETTER AYB;Lu;0;L;;;;;N;;;;0561;
+0532;ARMENIAN CAPITAL LETTER BEN;Lu;0;L;;;;;N;;;;0562;
+0533;ARMENIAN CAPITAL LETTER GIM;Lu;0;L;;;;;N;;;;0563;
+0534;ARMENIAN CAPITAL LETTER DA;Lu;0;L;;;;;N;;;;0564;
+0535;ARMENIAN CAPITAL LETTER ECH;Lu;0;L;;;;;N;;;;0565;
+0536;ARMENIAN CAPITAL LETTER ZA;Lu;0;L;;;;;N;;;;0566;
+0537;ARMENIAN CAPITAL LETTER EH;Lu;0;L;;;;;N;;;;0567;
+0538;ARMENIAN CAPITAL LETTER ET;Lu;0;L;;;;;N;;;;0568;
+0539;ARMENIAN CAPITAL LETTER TO;Lu;0;L;;;;;N;;;;0569;
+053A;ARMENIAN CAPITAL LETTER ZHE;Lu;0;L;;;;;N;;;;056A;
+053B;ARMENIAN CAPITAL LETTER INI;Lu;0;L;;;;;N;;;;056B;
+053C;ARMENIAN CAPITAL LETTER LIWN;Lu;0;L;;;;;N;;;;056C;
+053D;ARMENIAN CAPITAL LETTER XEH;Lu;0;L;;;;;N;;;;056D;
+053E;ARMENIAN CAPITAL LETTER CA;Lu;0;L;;;;;N;;;;056E;
+053F;ARMENIAN CAPITAL LETTER KEN;Lu;0;L;;;;;N;;;;056F;
+0540;ARMENIAN CAPITAL LETTER HO;Lu;0;L;;;;;N;;;;0570;
+0541;ARMENIAN CAPITAL LETTER JA;Lu;0;L;;;;;N;;;;0571;
+0542;ARMENIAN CAPITAL LETTER GHAD;Lu;0;L;;;;;N;ARMENIAN CAPITAL LETTER LAD;;;0572;
+0543;ARMENIAN CAPITAL LETTER CHEH;Lu;0;L;;;;;N;;;;0573;
+0544;ARMENIAN CAPITAL LETTER MEN;Lu;0;L;;;;;N;;;;0574;
+0545;ARMENIAN CAPITAL LETTER YI;Lu;0;L;;;;;N;;;;0575;
+0546;ARMENIAN CAPITAL LETTER NOW;Lu;0;L;;;;;N;;;;0576;
+0547;ARMENIAN CAPITAL LETTER SHA;Lu;0;L;;;;;N;;;;0577;
+0548;ARMENIAN CAPITAL LETTER VO;Lu;0;L;;;;;N;;;;0578;
+0549;ARMENIAN CAPITAL LETTER CHA;Lu;0;L;;;;;N;;;;0579;
+054A;ARMENIAN CAPITAL LETTER PEH;Lu;0;L;;;;;N;;;;057A;
+054B;ARMENIAN CAPITAL LETTER JHEH;Lu;0;L;;;;;N;;;;057B;
+054C;ARMENIAN CAPITAL LETTER RA;Lu;0;L;;;;;N;;;;057C;
+054D;ARMENIAN CAPITAL LETTER SEH;Lu;0;L;;;;;N;;;;057D;
+054E;ARMENIAN CAPITAL LETTER VEW;Lu;0;L;;;;;N;;;;057E;
+054F;ARMENIAN CAPITAL LETTER TIWN;Lu;0;L;;;;;N;;;;057F;
+0550;ARMENIAN CAPITAL LETTER REH;Lu;0;L;;;;;N;;;;0580;
+0551;ARMENIAN CAPITAL LETTER CO;Lu;0;L;;;;;N;;;;0581;
+0552;ARMENIAN CAPITAL LETTER YIWN;Lu;0;L;;;;;N;;;;0582;
+0553;ARMENIAN CAPITAL LETTER PIWR;Lu;0;L;;;;;N;;;;0583;
+0554;ARMENIAN CAPITAL LETTER KEH;Lu;0;L;;;;;N;;;;0584;
+0555;ARMENIAN CAPITAL LETTER OH;Lu;0;L;;;;;N;;;;0585;
+0556;ARMENIAN CAPITAL LETTER FEH;Lu;0;L;;;;;N;;;;0586;
+0559;ARMENIAN MODIFIER LETTER LEFT HALF RING;Lm;0;L;;;;;N;;;;;
+055A;ARMENIAN APOSTROPHE;Po;0;L;;;;;N;ARMENIAN MODIFIER LETTER RIGHT HALF RING;;;;
+055B;ARMENIAN EMPHASIS MARK;Po;0;L;;;;;N;;;;;
+055C;ARMENIAN EXCLAMATION MARK;Po;0;L;;;;;N;;;;;
+055D;ARMENIAN COMMA;Po;0;L;;;;;N;;;;;
+055E;ARMENIAN QUESTION MARK;Po;0;L;;;;;N;;;;;
+055F;ARMENIAN ABBREVIATION MARK;Po;0;L;;;;;N;;;;;
+0561;ARMENIAN SMALL LETTER AYB;Ll;0;L;;;;;N;;;0531;;0531
+0562;ARMENIAN SMALL LETTER BEN;Ll;0;L;;;;;N;;;0532;;0532
+0563;ARMENIAN SMALL LETTER GIM;Ll;0;L;;;;;N;;;0533;;0533
+0564;ARMENIAN SMALL LETTER DA;Ll;0;L;;;;;N;;;0534;;0534
+0565;ARMENIAN SMALL LETTER ECH;Ll;0;L;;;;;N;;;0535;;0535
+0566;ARMENIAN SMALL LETTER ZA;Ll;0;L;;;;;N;;;0536;;0536
+0567;ARMENIAN SMALL LETTER EH;Ll;0;L;;;;;N;;;0537;;0537
+0568;ARMENIAN SMALL LETTER ET;Ll;0;L;;;;;N;;;0538;;0538
+0569;ARMENIAN SMALL LETTER TO;Ll;0;L;;;;;N;;;0539;;0539
+056A;ARMENIAN SMALL LETTER ZHE;Ll;0;L;;;;;N;;;053A;;053A
+056B;ARMENIAN SMALL LETTER INI;Ll;0;L;;;;;N;;;053B;;053B
+056C;ARMENIAN SMALL LETTER LIWN;Ll;0;L;;;;;N;;;053C;;053C
+056D;ARMENIAN SMALL LETTER XEH;Ll;0;L;;;;;N;;;053D;;053D
+056E;ARMENIAN SMALL LETTER CA;Ll;0;L;;;;;N;;;053E;;053E
+056F;ARMENIAN SMALL LETTER KEN;Ll;0;L;;;;;N;;;053F;;053F
+0570;ARMENIAN SMALL LETTER HO;Ll;0;L;;;;;N;;;0540;;0540
+0571;ARMENIAN SMALL LETTER JA;Ll;0;L;;;;;N;;;0541;;0541
+0572;ARMENIAN SMALL LETTER GHAD;Ll;0;L;;;;;N;ARMENIAN SMALL LETTER LAD;;0542;;0542
+0573;ARMENIAN SMALL LETTER CHEH;Ll;0;L;;;;;N;;;0543;;0543
+0574;ARMENIAN SMALL LETTER MEN;Ll;0;L;;;;;N;;;0544;;0544
+0575;ARMENIAN SMALL LETTER YI;Ll;0;L;;;;;N;;;0545;;0545
+0576;ARMENIAN SMALL LETTER NOW;Ll;0;L;;;;;N;;;0546;;0546
+0577;ARMENIAN SMALL LETTER SHA;Ll;0;L;;;;;N;;;0547;;0547
+0578;ARMENIAN SMALL LETTER VO;Ll;0;L;;;;;N;;;0548;;0548
+0579;ARMENIAN SMALL LETTER CHA;Ll;0;L;;;;;N;;;0549;;0549
+057A;ARMENIAN SMALL LETTER PEH;Ll;0;L;;;;;N;;;054A;;054A
+057B;ARMENIAN SMALL LETTER JHEH;Ll;0;L;;;;;N;;;054B;;054B
+057C;ARMENIAN SMALL LETTER RA;Ll;0;L;;;;;N;;;054C;;054C
+057D;ARMENIAN SMALL LETTER SEH;Ll;0;L;;;;;N;;;054D;;054D
+057E;ARMENIAN SMALL LETTER VEW;Ll;0;L;;;;;N;;;054E;;054E
+057F;ARMENIAN SMALL LETTER TIWN;Ll;0;L;;;;;N;;;054F;;054F
+0580;ARMENIAN SMALL LETTER REH;Ll;0;L;;;;;N;;;0550;;0550
+0581;ARMENIAN SMALL LETTER CO;Ll;0;L;;;;;N;;;0551;;0551
+0582;ARMENIAN SMALL LETTER YIWN;Ll;0;L;;;;;N;;;0552;;0552
+0583;ARMENIAN SMALL LETTER PIWR;Ll;0;L;;;;;N;;;0553;;0553
+0584;ARMENIAN SMALL LETTER KEH;Ll;0;L;;;;;N;;;0554;;0554
+0585;ARMENIAN SMALL LETTER OH;Ll;0;L;;;;;N;;;0555;;0555
+0586;ARMENIAN SMALL LETTER FEH;Ll;0;L;;;;;N;;;0556;;0556
+0587;ARMENIAN SMALL LIGATURE ECH YIWN;Ll;0;L;<compat> 0565 0582;;;;N;;;;;
+0589;ARMENIAN FULL STOP;Po;0;L;;;;;N;ARMENIAN PERIOD;;;;
+058A;ARMENIAN HYPHEN;Pd;0;ON;;;;;N;;;;;
+0591;HEBREW ACCENT ETNAHTA;Mn;220;NSM;;;;;N;;;;;
+0592;HEBREW ACCENT SEGOL;Mn;230;NSM;;;;;N;;;;;
+0593;HEBREW ACCENT SHALSHELET;Mn;230;NSM;;;;;N;;;;;
+0594;HEBREW ACCENT ZAQEF QATAN;Mn;230;NSM;;;;;N;;;;;
+0595;HEBREW ACCENT ZAQEF GADOL;Mn;230;NSM;;;;;N;;;;;
+0596;HEBREW ACCENT TIPEHA;Mn;220;NSM;;;;;N;;*;;;
+0597;HEBREW ACCENT REVIA;Mn;230;NSM;;;;;N;;;;;
+0598;HEBREW ACCENT ZARQA;Mn;230;NSM;;;;;N;;*;;;
+0599;HEBREW ACCENT PASHTA;Mn;230;NSM;;;;;N;;;;;
+059A;HEBREW ACCENT YETIV;Mn;222;NSM;;;;;N;;;;;
+059B;HEBREW ACCENT TEVIR;Mn;220;NSM;;;;;N;;;;;
+059C;HEBREW ACCENT GERESH;Mn;230;NSM;;;;;N;;;;;
+059D;HEBREW ACCENT GERESH MUQDAM;Mn;230;NSM;;;;;N;;;;;
+059E;HEBREW ACCENT GERSHAYIM;Mn;230;NSM;;;;;N;;;;;
+059F;HEBREW ACCENT QARNEY PARA;Mn;230;NSM;;;;;N;;;;;
+05A0;HEBREW ACCENT TELISHA GEDOLA;Mn;230;NSM;;;;;N;;;;;
+05A1;HEBREW ACCENT PAZER;Mn;230;NSM;;;;;N;;;;;
+05A3;HEBREW ACCENT MUNAH;Mn;220;NSM;;;;;N;;;;;
+05A4;HEBREW ACCENT MAHAPAKH;Mn;220;NSM;;;;;N;;;;;
+05A5;HEBREW ACCENT MERKHA;Mn;220;NSM;;;;;N;;*;;;
+05A6;HEBREW ACCENT MERKHA KEFULA;Mn;220;NSM;;;;;N;;;;;
+05A7;HEBREW ACCENT DARGA;Mn;220;NSM;;;;;N;;;;;
+05A8;HEBREW ACCENT QADMA;Mn;230;NSM;;;;;N;;*;;;
+05A9;HEBREW ACCENT TELISHA QETANA;Mn;230;NSM;;;;;N;;;;;
+05AA;HEBREW ACCENT YERAH BEN YOMO;Mn;220;NSM;;;;;N;;*;;;
+05AB;HEBREW ACCENT OLE;Mn;230;NSM;;;;;N;;;;;
+05AC;HEBREW ACCENT ILUY;Mn;230;NSM;;;;;N;;;;;
+05AD;HEBREW ACCENT DEHI;Mn;222;NSM;;;;;N;;;;;
+05AE;HEBREW ACCENT ZINOR;Mn;228;NSM;;;;;N;;;;;
+05AF;HEBREW MARK MASORA CIRCLE;Mn;230;NSM;;;;;N;;;;;
+05B0;HEBREW POINT SHEVA;Mn;10;NSM;;;;;N;;;;;
+05B1;HEBREW POINT HATAF SEGOL;Mn;11;NSM;;;;;N;;;;;
+05B2;HEBREW POINT HATAF PATAH;Mn;12;NSM;;;;;N;;;;;
+05B3;HEBREW POINT HATAF QAMATS;Mn;13;NSM;;;;;N;;;;;
+05B4;HEBREW POINT HIRIQ;Mn;14;NSM;;;;;N;;;;;
+05B5;HEBREW POINT TSERE;Mn;15;NSM;;;;;N;;;;;
+05B6;HEBREW POINT SEGOL;Mn;16;NSM;;;;;N;;;;;
+05B7;HEBREW POINT PATAH;Mn;17;NSM;;;;;N;;;;;
+05B8;HEBREW POINT QAMATS;Mn;18;NSM;;;;;N;;;;;
+05B9;HEBREW POINT HOLAM;Mn;19;NSM;;;;;N;;;;;
+05BB;HEBREW POINT QUBUTS;Mn;20;NSM;;;;;N;;;;;
+05BC;HEBREW POINT DAGESH OR MAPIQ;Mn;21;NSM;;;;;N;HEBREW POINT DAGESH;or shuruq;;;
+05BD;HEBREW POINT METEG;Mn;22;NSM;;;;;N;;*;;;
+05BE;HEBREW PUNCTUATION MAQAF;Po;0;R;;;;;N;;;;;
+05BF;HEBREW POINT RAFE;Mn;23;NSM;;;;;N;;;;;
+05C0;HEBREW PUNCTUATION PASEQ;Po;0;R;;;;;N;HEBREW POINT PASEQ;*;;;
+05C1;HEBREW POINT SHIN DOT;Mn;24;NSM;;;;;N;;;;;
+05C2;HEBREW POINT SIN DOT;Mn;25;NSM;;;;;N;;;;;
+05C3;HEBREW PUNCTUATION SOF PASUQ;Po;0;R;;;;;N;;*;;;
+05C4;HEBREW MARK UPPER DOT;Mn;230;NSM;;;;;N;;;;;
+05D0;HEBREW LETTER ALEF;Lo;0;R;;;;;N;;;;;
+05D1;HEBREW LETTER BET;Lo;0;R;;;;;N;;;;;
+05D2;HEBREW LETTER GIMEL;Lo;0;R;;;;;N;;;;;
+05D3;HEBREW LETTER DALET;Lo;0;R;;;;;N;;;;;
+05D4;HEBREW LETTER HE;Lo;0;R;;;;;N;;;;;
+05D5;HEBREW LETTER VAV;Lo;0;R;;;;;N;;;;;
+05D6;HEBREW LETTER ZAYIN;Lo;0;R;;;;;N;;;;;
+05D7;HEBREW LETTER HET;Lo;0;R;;;;;N;;;;;
+05D8;HEBREW LETTER TET;Lo;0;R;;;;;N;;;;;
+05D9;HEBREW LETTER YOD;Lo;0;R;;;;;N;;;;;
+05DA;HEBREW LETTER FINAL KAF;Lo;0;R;;;;;N;;;;;
+05DB;HEBREW LETTER KAF;Lo;0;R;;;;;N;;;;;
+05DC;HEBREW LETTER LAMED;Lo;0;R;;;;;N;;;;;
+05DD;HEBREW LETTER FINAL MEM;Lo;0;R;;;;;N;;;;;
+05DE;HEBREW LETTER MEM;Lo;0;R;;;;;N;;;;;
+05DF;HEBREW LETTER FINAL NUN;Lo;0;R;;;;;N;;;;;
+05E0;HEBREW LETTER NUN;Lo;0;R;;;;;N;;;;;
+05E1;HEBREW LETTER SAMEKH;Lo;0;R;;;;;N;;;;;
+05E2;HEBREW LETTER AYIN;Lo;0;R;;;;;N;;;;;
+05E3;HEBREW LETTER FINAL PE;Lo;0;R;;;;;N;;;;;
+05E4;HEBREW LETTER PE;Lo;0;R;;;;;N;;;;;
+05E5;HEBREW LETTER FINAL TSADI;Lo;0;R;;;;;N;;;;;
+05E6;HEBREW LETTER TSADI;Lo;0;R;;;;;N;;;;;
+05E7;HEBREW LETTER QOF;Lo;0;R;;;;;N;;;;;
+05E8;HEBREW LETTER RESH;Lo;0;R;;;;;N;;;;;
+05E9;HEBREW LETTER SHIN;Lo;0;R;;;;;N;;;;;
+05EA;HEBREW LETTER TAV;Lo;0;R;;;;;N;;;;;
+05F0;HEBREW LIGATURE YIDDISH DOUBLE VAV;Lo;0;R;;;;;N;HEBREW LETTER DOUBLE VAV;;;;
+05F1;HEBREW LIGATURE YIDDISH VAV YOD;Lo;0;R;;;;;N;HEBREW LETTER VAV YOD;;;;
+05F2;HEBREW LIGATURE YIDDISH DOUBLE YOD;Lo;0;R;;;;;N;HEBREW LETTER DOUBLE YOD;;;;
+05F3;HEBREW PUNCTUATION GERESH;Po;0;R;;;;;N;;;;;
+05F4;HEBREW PUNCTUATION GERSHAYIM;Po;0;R;;;;;N;;;;;
+060C;ARABIC COMMA;Po;0;CS;;;;;N;;;;;
+061B;ARABIC SEMICOLON;Po;0;AL;;;;;N;;;;;
+061F;ARABIC QUESTION MARK;Po;0;AL;;;;;N;;;;;
+0621;ARABIC LETTER HAMZA;Lo;0;AL;;;;;N;ARABIC LETTER HAMZAH;;;;
+0622;ARABIC LETTER ALEF WITH MADDA ABOVE;Lo;0;AL;0627 0653;;;;N;ARABIC LETTER MADDAH ON ALEF;;;;
+0623;ARABIC LETTER ALEF WITH HAMZA ABOVE;Lo;0;AL;0627 0654;;;;N;ARABIC LETTER HAMZAH ON ALEF;;;;
+0624;ARABIC LETTER WAW WITH HAMZA ABOVE;Lo;0;AL;0648 0654;;;;N;ARABIC LETTER HAMZAH ON WAW;;;;
+0625;ARABIC LETTER ALEF WITH HAMZA BELOW;Lo;0;AL;0627 0655;;;;N;ARABIC LETTER HAMZAH UNDER ALEF;;;;
+0626;ARABIC LETTER YEH WITH HAMZA ABOVE;Lo;0;AL;064A 0654;;;;N;ARABIC LETTER HAMZAH ON YA;;;;
+0627;ARABIC LETTER ALEF;Lo;0;AL;;;;;N;;;;;
+0628;ARABIC LETTER BEH;Lo;0;AL;;;;;N;ARABIC LETTER BAA;;;;
+0629;ARABIC LETTER TEH MARBUTA;Lo;0;AL;;;;;N;ARABIC LETTER TAA MARBUTAH;;;;
+062A;ARABIC LETTER TEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA;;;;
+062B;ARABIC LETTER THEH;Lo;0;AL;;;;;N;ARABIC LETTER THAA;;;;
+062C;ARABIC LETTER JEEM;Lo;0;AL;;;;;N;;;;;
+062D;ARABIC LETTER HAH;Lo;0;AL;;;;;N;ARABIC LETTER HAA;;;;
+062E;ARABIC LETTER KHAH;Lo;0;AL;;;;;N;ARABIC LETTER KHAA;;;;
+062F;ARABIC LETTER DAL;Lo;0;AL;;;;;N;;;;;
+0630;ARABIC LETTER THAL;Lo;0;AL;;;;;N;;;;;
+0631;ARABIC LETTER REH;Lo;0;AL;;;;;N;ARABIC LETTER RA;;;;
+0632;ARABIC LETTER ZAIN;Lo;0;AL;;;;;N;;;;;
+0633;ARABIC LETTER SEEN;Lo;0;AL;;;;;N;;;;;
+0634;ARABIC LETTER SHEEN;Lo;0;AL;;;;;N;;;;;
+0635;ARABIC LETTER SAD;Lo;0;AL;;;;;N;;;;;
+0636;ARABIC LETTER DAD;Lo;0;AL;;;;;N;;;;;
+0637;ARABIC LETTER TAH;Lo;0;AL;;;;;N;;;;;
+0638;ARABIC LETTER ZAH;Lo;0;AL;;;;;N;ARABIC LETTER DHAH;;;;
+0639;ARABIC LETTER AIN;Lo;0;AL;;;;;N;;;;;
+063A;ARABIC LETTER GHAIN;Lo;0;AL;;;;;N;;;;;
+0640;ARABIC TATWEEL;Lm;0;AL;;;;;N;;;;;
+0641;ARABIC LETTER FEH;Lo;0;AL;;;;;N;ARABIC LETTER FA;;;;
+0642;ARABIC LETTER QAF;Lo;0;AL;;;;;N;;;;;
+0643;ARABIC LETTER KAF;Lo;0;AL;;;;;N;ARABIC LETTER CAF;;;;
+0644;ARABIC LETTER LAM;Lo;0;AL;;;;;N;;;;;
+0645;ARABIC LETTER MEEM;Lo;0;AL;;;;;N;;;;;
+0646;ARABIC LETTER NOON;Lo;0;AL;;;;;N;;;;;
+0647;ARABIC LETTER HEH;Lo;0;AL;;;;;N;ARABIC LETTER HA;;;;
+0648;ARABIC LETTER WAW;Lo;0;AL;;;;;N;;;;;
+0649;ARABIC LETTER ALEF MAKSURA;Lo;0;AL;;;;;N;ARABIC LETTER ALEF MAQSURAH;;;;
+064A;ARABIC LETTER YEH;Lo;0;AL;;;;;N;ARABIC LETTER YA;;;;
+064B;ARABIC FATHATAN;Mn;27;NSM;;;;;N;;;;;
+064C;ARABIC DAMMATAN;Mn;28;NSM;;;;;N;;;;;
+064D;ARABIC KASRATAN;Mn;29;NSM;;;;;N;;;;;
+064E;ARABIC FATHA;Mn;30;NSM;;;;;N;ARABIC FATHAH;;;;
+064F;ARABIC DAMMA;Mn;31;NSM;;;;;N;ARABIC DAMMAH;;;;
+0650;ARABIC KASRA;Mn;32;NSM;;;;;N;ARABIC KASRAH;;;;
+0651;ARABIC SHADDA;Mn;33;NSM;;;;;N;ARABIC SHADDAH;;;;
+0652;ARABIC SUKUN;Mn;34;NSM;;;;;N;;;;;
+0653;ARABIC MADDAH ABOVE;Mn;230;NSM;;;;;N;;;;;
+0654;ARABIC HAMZA ABOVE;Mn;230;NSM;;;;;N;;;;;
+0655;ARABIC HAMZA BELOW;Mn;220;NSM;;;;;N;;;;;
+0660;ARABIC-INDIC DIGIT ZERO;Nd;0;AN;;0;0;0;N;;;;;
+0661;ARABIC-INDIC DIGIT ONE;Nd;0;AN;;1;1;1;N;;;;;
+0662;ARABIC-INDIC DIGIT TWO;Nd;0;AN;;2;2;2;N;;;;;
+0663;ARABIC-INDIC DIGIT THREE;Nd;0;AN;;3;3;3;N;;;;;
+0664;ARABIC-INDIC DIGIT FOUR;Nd;0;AN;;4;4;4;N;;;;;
+0665;ARABIC-INDIC DIGIT FIVE;Nd;0;AN;;5;5;5;N;;;;;
+0666;ARABIC-INDIC DIGIT SIX;Nd;0;AN;;6;6;6;N;;;;;
+0667;ARABIC-INDIC DIGIT SEVEN;Nd;0;AN;;7;7;7;N;;;;;
+0668;ARABIC-INDIC DIGIT EIGHT;Nd;0;AN;;8;8;8;N;;;;;
+0669;ARABIC-INDIC DIGIT NINE;Nd;0;AN;;9;9;9;N;;;;;
+066A;ARABIC PERCENT SIGN;Po;0;ET;;;;;N;;;;;
+066B;ARABIC DECIMAL SEPARATOR;Po;0;AN;;;;;N;;;;;
+066C;ARABIC THOUSANDS SEPARATOR;Po;0;AN;;;;;N;;;;;
+066D;ARABIC FIVE POINTED STAR;Po;0;AL;;;;;N;;;;;
+0670;ARABIC LETTER SUPERSCRIPT ALEF;Mn;35;NSM;;;;;N;ARABIC ALEF ABOVE;;;;
+0671;ARABIC LETTER ALEF WASLA;Lo;0;AL;;;;;N;ARABIC LETTER HAMZAT WASL ON ALEF;;;;
+0672;ARABIC LETTER ALEF WITH WAVY HAMZA ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER WAVY HAMZAH ON ALEF;;;;
+0673;ARABIC LETTER ALEF WITH WAVY HAMZA BELOW;Lo;0;AL;;;;;N;ARABIC LETTER WAVY HAMZAH UNDER ALEF;;;;
+0674;ARABIC LETTER HIGH HAMZA;Lo;0;AL;;;;;N;ARABIC LETTER HIGH HAMZAH;;;;
+0675;ARABIC LETTER HIGH HAMZA ALEF;Lo;0;AL;<compat> 0627 0674;;;;N;ARABIC LETTER HIGH HAMZAH ALEF;;;;
+0676;ARABIC LETTER HIGH HAMZA WAW;Lo;0;AL;<compat> 0648 0674;;;;N;ARABIC LETTER HIGH HAMZAH WAW;;;;
+0677;ARABIC LETTER U WITH HAMZA ABOVE;Lo;0;AL;<compat> 06C7 0674;;;;N;ARABIC LETTER HIGH HAMZAH WAW WITH DAMMAH;;;;
+0678;ARABIC LETTER HIGH HAMZA YEH;Lo;0;AL;<compat> 064A 0674;;;;N;ARABIC LETTER HIGH HAMZAH YA;;;;
+0679;ARABIC LETTER TTEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH SMALL TAH;;;;
+067A;ARABIC LETTER TTEHEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH TWO DOTS VERTICAL ABOVE;;;;
+067B;ARABIC LETTER BEEH;Lo;0;AL;;;;;N;ARABIC LETTER BAA WITH TWO DOTS VERTICAL BELOW;;;;
+067C;ARABIC LETTER TEH WITH RING;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH RING;;;;
+067D;ARABIC LETTER TEH WITH THREE DOTS ABOVE DOWNWARDS;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH THREE DOTS ABOVE DOWNWARD;;;;
+067E;ARABIC LETTER PEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH THREE DOTS BELOW;;;;
+067F;ARABIC LETTER TEHEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH FOUR DOTS ABOVE;;;;
+0680;ARABIC LETTER BEHEH;Lo;0;AL;;;;;N;ARABIC LETTER BAA WITH FOUR DOTS BELOW;;;;
+0681;ARABIC LETTER HAH WITH HAMZA ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER HAMZAH ON HAA;;;;
+0682;ARABIC LETTER HAH WITH TWO DOTS VERTICAL ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH TWO DOTS VERTICAL ABOVE;;;;
+0683;ARABIC LETTER NYEH;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH MIDDLE TWO DOTS;;;;
+0684;ARABIC LETTER DYEH;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH MIDDLE TWO DOTS VERTICAL;;;;
+0685;ARABIC LETTER HAH WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH THREE DOTS ABOVE;;;;
+0686;ARABIC LETTER TCHEH;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH MIDDLE THREE DOTS DOWNWARD;;;;
+0687;ARABIC LETTER TCHEHEH;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH MIDDLE FOUR DOTS;;;;
+0688;ARABIC LETTER DDAL;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH SMALL TAH;;;;
+0689;ARABIC LETTER DAL WITH RING;Lo;0;AL;;;;;N;;;;;
+068A;ARABIC LETTER DAL WITH DOT BELOW;Lo;0;AL;;;;;N;;;;;
+068B;ARABIC LETTER DAL WITH DOT BELOW AND SMALL TAH;Lo;0;AL;;;;;N;;;;;
+068C;ARABIC LETTER DAHAL;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH TWO DOTS ABOVE;;;;
+068D;ARABIC LETTER DDAHAL;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH TWO DOTS BELOW;;;;
+068E;ARABIC LETTER DUL;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH THREE DOTS ABOVE;;;;
+068F;ARABIC LETTER DAL WITH THREE DOTS ABOVE DOWNWARDS;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH THREE DOTS ABOVE DOWNWARD;;;;
+0690;ARABIC LETTER DAL WITH FOUR DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+0691;ARABIC LETTER RREH;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH SMALL TAH;;;;
+0692;ARABIC LETTER REH WITH SMALL V;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH SMALL V;;;;
+0693;ARABIC LETTER REH WITH RING;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH RING;;;;
+0694;ARABIC LETTER REH WITH DOT BELOW;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH DOT BELOW;;;;
+0695;ARABIC LETTER REH WITH SMALL V BELOW;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH SMALL V BELOW;;;;
+0696;ARABIC LETTER REH WITH DOT BELOW AND DOT ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH DOT BELOW AND DOT ABOVE;;;;
+0697;ARABIC LETTER REH WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH TWO DOTS ABOVE;;;;
+0698;ARABIC LETTER JEH;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH THREE DOTS ABOVE;;;;
+0699;ARABIC LETTER REH WITH FOUR DOTS ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH FOUR DOTS ABOVE;;;;
+069A;ARABIC LETTER SEEN WITH DOT BELOW AND DOT ABOVE;Lo;0;AL;;;;;N;;;;;
+069B;ARABIC LETTER SEEN WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;;;;;
+069C;ARABIC LETTER SEEN WITH THREE DOTS BELOW AND THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+069D;ARABIC LETTER SAD WITH TWO DOTS BELOW;Lo;0;AL;;;;;N;;;;;
+069E;ARABIC LETTER SAD WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+069F;ARABIC LETTER TAH WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+06A0;ARABIC LETTER AIN WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+06A1;ARABIC LETTER DOTLESS FEH;Lo;0;AL;;;;;N;ARABIC LETTER DOTLESS FA;;;;
+06A2;ARABIC LETTER FEH WITH DOT MOVED BELOW;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH DOT MOVED BELOW;;;;
+06A3;ARABIC LETTER FEH WITH DOT BELOW;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH DOT BELOW;;;;
+06A4;ARABIC LETTER VEH;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH THREE DOTS ABOVE;;;;
+06A5;ARABIC LETTER FEH WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH THREE DOTS BELOW;;;;
+06A6;ARABIC LETTER PEHEH;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH FOUR DOTS ABOVE;;;;
+06A7;ARABIC LETTER QAF WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;;
+06A8;ARABIC LETTER QAF WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+06A9;ARABIC LETTER KEHEH;Lo;0;AL;;;;;N;ARABIC LETTER OPEN CAF;;;;
+06AA;ARABIC LETTER SWASH KAF;Lo;0;AL;;;;;N;ARABIC LETTER SWASH CAF;;;;
+06AB;ARABIC LETTER KAF WITH RING;Lo;0;AL;;;;;N;ARABIC LETTER CAF WITH RING;;;;
+06AC;ARABIC LETTER KAF WITH DOT ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER CAF WITH DOT ABOVE;;;;
+06AD;ARABIC LETTER NG;Lo;0;AL;;;;;N;ARABIC LETTER CAF WITH THREE DOTS ABOVE;;;;
+06AE;ARABIC LETTER KAF WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;ARABIC LETTER CAF WITH THREE DOTS BELOW;;;;
+06AF;ARABIC LETTER GAF;Lo;0;AL;;;;;N;;*;;;
+06B0;ARABIC LETTER GAF WITH RING;Lo;0;AL;;;;;N;;;;;
+06B1;ARABIC LETTER NGOEH;Lo;0;AL;;;;;N;ARABIC LETTER GAF WITH TWO DOTS ABOVE;;;;
+06B2;ARABIC LETTER GAF WITH TWO DOTS BELOW;Lo;0;AL;;;;;N;;;;;
+06B3;ARABIC LETTER GUEH;Lo;0;AL;;;;;N;ARABIC LETTER GAF WITH TWO DOTS VERTICAL BELOW;;;;
+06B4;ARABIC LETTER GAF WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+06B5;ARABIC LETTER LAM WITH SMALL V;Lo;0;AL;;;;;N;;;;;
+06B6;ARABIC LETTER LAM WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;;
+06B7;ARABIC LETTER LAM WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+06B8;ARABIC LETTER LAM WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;;;;;
+06B9;ARABIC LETTER NOON WITH DOT BELOW;Lo;0;AL;;;;;N;;;;;
+06BA;ARABIC LETTER NOON GHUNNA;Lo;0;AL;;;;;N;ARABIC LETTER DOTLESS NOON;;;;
+06BB;ARABIC LETTER RNOON;Lo;0;AL;;;;;N;ARABIC LETTER DOTLESS NOON WITH SMALL TAH;;;;
+06BC;ARABIC LETTER NOON WITH RING;Lo;0;AL;;;;;N;;;;;
+06BD;ARABIC LETTER NOON WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+06BE;ARABIC LETTER HEH DOACHASHMEE;Lo;0;AL;;;;;N;ARABIC LETTER KNOTTED HA;;;;
+06BF;ARABIC LETTER TCHEH WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;;
+06C0;ARABIC LETTER HEH WITH YEH ABOVE;Lo;0;AL;06D5 0654;;;;N;ARABIC LETTER HAMZAH ON HA;;;;
+06C1;ARABIC LETTER HEH GOAL;Lo;0;AL;;;;;N;ARABIC LETTER HA GOAL;;;;
+06C2;ARABIC LETTER HEH GOAL WITH HAMZA ABOVE;Lo;0;AL;06C1 0654;;;;N;ARABIC LETTER HAMZAH ON HA GOAL;;;;
+06C3;ARABIC LETTER TEH MARBUTA GOAL;Lo;0;AL;;;;;N;ARABIC LETTER TAA MARBUTAH GOAL;;;;
+06C4;ARABIC LETTER WAW WITH RING;Lo;0;AL;;;;;N;;;;;
+06C5;ARABIC LETTER KIRGHIZ OE;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH BAR;;;;
+06C6;ARABIC LETTER OE;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH SMALL V;;;;
+06C7;ARABIC LETTER U;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH DAMMAH;;;;
+06C8;ARABIC LETTER YU;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH ALEF ABOVE;;;;
+06C9;ARABIC LETTER KIRGHIZ YU;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH INVERTED SMALL V;;;;
+06CA;ARABIC LETTER WAW WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+06CB;ARABIC LETTER VE;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH THREE DOTS ABOVE;;;;
+06CC;ARABIC LETTER FARSI YEH;Lo;0;AL;;;;;N;ARABIC LETTER DOTLESS YA;;;;
+06CD;ARABIC LETTER YEH WITH TAIL;Lo;0;AL;;;;;N;ARABIC LETTER YA WITH TAIL;;;;
+06CE;ARABIC LETTER YEH WITH SMALL V;Lo;0;AL;;;;;N;ARABIC LETTER YA WITH SMALL V;;;;
+06CF;ARABIC LETTER WAW WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;;
+06D0;ARABIC LETTER E;Lo;0;AL;;;;;N;ARABIC LETTER YA WITH TWO DOTS VERTICAL BELOW;*;;;
+06D1;ARABIC LETTER YEH WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;ARABIC LETTER YA WITH THREE DOTS BELOW;;;;
+06D2;ARABIC LETTER YEH BARREE;Lo;0;AL;;;;;N;ARABIC LETTER YA BARREE;;;;
+06D3;ARABIC LETTER YEH BARREE WITH HAMZA ABOVE;Lo;0;AL;06D2 0654;;;;N;ARABIC LETTER HAMZAH ON YA BARREE;;;;
+06D4;ARABIC FULL STOP;Po;0;AL;;;;;N;ARABIC PERIOD;;;;
+06D5;ARABIC LETTER AE;Lo;0;AL;;;;;N;;;;;
+06D6;ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA;Mn;230;NSM;;;;;N;;;;;
+06D7;ARABIC SMALL HIGH LIGATURE QAF WITH LAM WITH ALEF MAKSURA;Mn;230;NSM;;;;;N;;;;;
+06D8;ARABIC SMALL HIGH MEEM INITIAL FORM;Mn;230;NSM;;;;;N;;;;;
+06D9;ARABIC SMALL HIGH LAM ALEF;Mn;230;NSM;;;;;N;;;;;
+06DA;ARABIC SMALL HIGH JEEM;Mn;230;NSM;;;;;N;;;;;
+06DB;ARABIC SMALL HIGH THREE DOTS;Mn;230;NSM;;;;;N;;;;;
+06DC;ARABIC SMALL HIGH SEEN;Mn;230;NSM;;;;;N;;;;;
+06DD;ARABIC END OF AYAH;Me;0;NSM;;;;;N;;;;;
+06DE;ARABIC START OF RUB EL HIZB;Me;0;NSM;;;;;N;;;;;
+06DF;ARABIC SMALL HIGH ROUNDED ZERO;Mn;230;NSM;;;;;N;;;;;
+06E0;ARABIC SMALL HIGH UPRIGHT RECTANGULAR ZERO;Mn;230;NSM;;;;;N;;;;;
+06E1;ARABIC SMALL HIGH DOTLESS HEAD OF KHAH;Mn;230;NSM;;;;;N;;;;;
+06E2;ARABIC SMALL HIGH MEEM ISOLATED FORM;Mn;230;NSM;;;;;N;;;;;
+06E3;ARABIC SMALL LOW SEEN;Mn;220;NSM;;;;;N;;;;;
+06E4;ARABIC SMALL HIGH MADDA;Mn;230;NSM;;;;;N;;;;;
+06E5;ARABIC SMALL WAW;Lm;0;AL;;;;;N;;;;;
+06E6;ARABIC SMALL YEH;Lm;0;AL;;;;;N;;;;;
+06E7;ARABIC SMALL HIGH YEH;Mn;230;NSM;;;;;N;;;;;
+06E8;ARABIC SMALL HIGH NOON;Mn;230;NSM;;;;;N;;;;;
+06E9;ARABIC PLACE OF SAJDAH;So;0;ON;;;;;N;;;;;
+06EA;ARABIC EMPTY CENTRE LOW STOP;Mn;220;NSM;;;;;N;;;;;
+06EB;ARABIC EMPTY CENTRE HIGH STOP;Mn;230;NSM;;;;;N;;;;;
+06EC;ARABIC ROUNDED HIGH STOP WITH FILLED CENTRE;Mn;230;NSM;;;;;N;;;;;
+06ED;ARABIC SMALL LOW MEEM;Mn;220;NSM;;;;;N;;;;;
+06F0;EXTENDED ARABIC-INDIC DIGIT ZERO;Nd;0;EN;;0;0;0;N;EASTERN ARABIC-INDIC DIGIT ZERO;;;;
+06F1;EXTENDED ARABIC-INDIC DIGIT ONE;Nd;0;EN;;1;1;1;N;EASTERN ARABIC-INDIC DIGIT ONE;;;;
+06F2;EXTENDED ARABIC-INDIC DIGIT TWO;Nd;0;EN;;2;2;2;N;EASTERN ARABIC-INDIC DIGIT TWO;;;;
+06F3;EXTENDED ARABIC-INDIC DIGIT THREE;Nd;0;EN;;3;3;3;N;EASTERN ARABIC-INDIC DIGIT THREE;;;;
+06F4;EXTENDED ARABIC-INDIC DIGIT FOUR;Nd;0;EN;;4;4;4;N;EASTERN ARABIC-INDIC DIGIT FOUR;;;;
+06F5;EXTENDED ARABIC-INDIC DIGIT FIVE;Nd;0;EN;;5;5;5;N;EASTERN ARABIC-INDIC DIGIT FIVE;;;;
+06F6;EXTENDED ARABIC-INDIC DIGIT SIX;Nd;0;EN;;6;6;6;N;EASTERN ARABIC-INDIC DIGIT SIX;;;;
+06F7;EXTENDED ARABIC-INDIC DIGIT SEVEN;Nd;0;EN;;7;7;7;N;EASTERN ARABIC-INDIC DIGIT SEVEN;;;;
+06F8;EXTENDED ARABIC-INDIC DIGIT EIGHT;Nd;0;EN;;8;8;8;N;EASTERN ARABIC-INDIC DIGIT EIGHT;;;;
+06F9;EXTENDED ARABIC-INDIC DIGIT NINE;Nd;0;EN;;9;9;9;N;EASTERN ARABIC-INDIC DIGIT NINE;;;;
+06FA;ARABIC LETTER SHEEN WITH DOT BELOW;Lo;0;AL;;;;;N;;;;;
+06FB;ARABIC LETTER DAD WITH DOT BELOW;Lo;0;AL;;;;;N;;;;;
+06FC;ARABIC LETTER GHAIN WITH DOT BELOW;Lo;0;AL;;;;;N;;;;;
+06FD;ARABIC SIGN SINDHI AMPERSAND;So;0;AL;;;;;N;;;;;
+06FE;ARABIC SIGN SINDHI POSTPOSITION MEN;So;0;AL;;;;;N;;;;;
+0700;SYRIAC END OF PARAGRAPH;Po;0;AL;;;;;N;;;;;
+0701;SYRIAC SUPRALINEAR FULL STOP;Po;0;AL;;;;;N;;;;;
+0702;SYRIAC SUBLINEAR FULL STOP;Po;0;AL;;;;;N;;;;;
+0703;SYRIAC SUPRALINEAR COLON;Po;0;AL;;;;;N;;;;;
+0704;SYRIAC SUBLINEAR COLON;Po;0;AL;;;;;N;;;;;
+0705;SYRIAC HORIZONTAL COLON;Po;0;AL;;;;;N;;;;;
+0706;SYRIAC COLON SKEWED LEFT;Po;0;AL;;;;;N;;;;;
+0707;SYRIAC COLON SKEWED RIGHT;Po;0;AL;;;;;N;;;;;
+0708;SYRIAC SUPRALINEAR COLON SKEWED LEFT;Po;0;AL;;;;;N;;;;;
+0709;SYRIAC SUBLINEAR COLON SKEWED RIGHT;Po;0;AL;;;;;N;;;;;
+070A;SYRIAC CONTRACTION;Po;0;AL;;;;;N;;;;;
+070B;SYRIAC HARKLEAN OBELUS;Po;0;AL;;;;;N;;;;;
+070C;SYRIAC HARKLEAN METOBELUS;Po;0;AL;;;;;N;;;;;
+070D;SYRIAC HARKLEAN ASTERISCUS;Po;0;AL;;;;;N;;;;;
+070F;SYRIAC ABBREVIATION MARK;Cf;0;BN;;;;;N;;;;;
+0710;SYRIAC LETTER ALAPH;Lo;0;AL;;;;;N;;;;;
+0711;SYRIAC LETTER SUPERSCRIPT ALAPH;Mn;36;NSM;;;;;N;;;;;
+0712;SYRIAC LETTER BETH;Lo;0;AL;;;;;N;;;;;
+0713;SYRIAC LETTER GAMAL;Lo;0;AL;;;;;N;;;;;
+0714;SYRIAC LETTER GAMAL GARSHUNI;Lo;0;AL;;;;;N;;;;;
+0715;SYRIAC LETTER DALATH;Lo;0;AL;;;;;N;;;;;
+0716;SYRIAC LETTER DOTLESS DALATH RISH;Lo;0;AL;;;;;N;;;;;
+0717;SYRIAC LETTER HE;Lo;0;AL;;;;;N;;;;;
+0718;SYRIAC LETTER WAW;Lo;0;AL;;;;;N;;;;;
+0719;SYRIAC LETTER ZAIN;Lo;0;AL;;;;;N;;;;;
+071A;SYRIAC LETTER HETH;Lo;0;AL;;;;;N;;;;;
+071B;SYRIAC LETTER TETH;Lo;0;AL;;;;;N;;;;;
+071C;SYRIAC LETTER TETH GARSHUNI;Lo;0;AL;;;;;N;;;;;
+071D;SYRIAC LETTER YUDH;Lo;0;AL;;;;;N;;;;;
+071E;SYRIAC LETTER YUDH HE;Lo;0;AL;;;;;N;;;;;
+071F;SYRIAC LETTER KAPH;Lo;0;AL;;;;;N;;;;;
+0720;SYRIAC LETTER LAMADH;Lo;0;AL;;;;;N;;;;;
+0721;SYRIAC LETTER MIM;Lo;0;AL;;;;;N;;;;;
+0722;SYRIAC LETTER NUN;Lo;0;AL;;;;;N;;;;;
+0723;SYRIAC LETTER SEMKATH;Lo;0;AL;;;;;N;;;;;
+0724;SYRIAC LETTER FINAL SEMKATH;Lo;0;AL;;;;;N;;;;;
+0725;SYRIAC LETTER E;Lo;0;AL;;;;;N;;;;;
+0726;SYRIAC LETTER PE;Lo;0;AL;;;;;N;;;;;
+0727;SYRIAC LETTER REVERSED PE;Lo;0;AL;;;;;N;;;;;
+0728;SYRIAC LETTER SADHE;Lo;0;AL;;;;;N;;;;;
+0729;SYRIAC LETTER QAPH;Lo;0;AL;;;;;N;;;;;
+072A;SYRIAC LETTER RISH;Lo;0;AL;;;;;N;;;;;
+072B;SYRIAC LETTER SHIN;Lo;0;AL;;;;;N;;;;;
+072C;SYRIAC LETTER TAW;Lo;0;AL;;;;;N;;;;;
+0730;SYRIAC PTHAHA ABOVE;Mn;230;NSM;;;;;N;;;;;
+0731;SYRIAC PTHAHA BELOW;Mn;220;NSM;;;;;N;;;;;
+0732;SYRIAC PTHAHA DOTTED;Mn;230;NSM;;;;;N;;;;;
+0733;SYRIAC ZQAPHA ABOVE;Mn;230;NSM;;;;;N;;;;;
+0734;SYRIAC ZQAPHA BELOW;Mn;220;NSM;;;;;N;;;;;
+0735;SYRIAC ZQAPHA DOTTED;Mn;230;NSM;;;;;N;;;;;
+0736;SYRIAC RBASA ABOVE;Mn;230;NSM;;;;;N;;;;;
+0737;SYRIAC RBASA BELOW;Mn;220;NSM;;;;;N;;;;;
+0738;SYRIAC DOTTED ZLAMA HORIZONTAL;Mn;220;NSM;;;;;N;;;;;
+0739;SYRIAC DOTTED ZLAMA ANGULAR;Mn;220;NSM;;;;;N;;;;;
+073A;SYRIAC HBASA ABOVE;Mn;230;NSM;;;;;N;;;;;
+073B;SYRIAC HBASA BELOW;Mn;220;NSM;;;;;N;;;;;
+073C;SYRIAC HBASA-ESASA DOTTED;Mn;220;NSM;;;;;N;;;;;
+073D;SYRIAC ESASA ABOVE;Mn;230;NSM;;;;;N;;;;;
+073E;SYRIAC ESASA BELOW;Mn;220;NSM;;;;;N;;;;;
+073F;SYRIAC RWAHA;Mn;230;NSM;;;;;N;;;;;
+0740;SYRIAC FEMININE DOT;Mn;230;NSM;;;;;N;;;;;
+0741;SYRIAC QUSHSHAYA;Mn;230;NSM;;;;;N;;;;;
+0742;SYRIAC RUKKAKHA;Mn;220;NSM;;;;;N;;;;;
+0743;SYRIAC TWO VERTICAL DOTS ABOVE;Mn;230;NSM;;;;;N;;;;;
+0744;SYRIAC TWO VERTICAL DOTS BELOW;Mn;220;NSM;;;;;N;;;;;
+0745;SYRIAC THREE DOTS ABOVE;Mn;230;NSM;;;;;N;;;;;
+0746;SYRIAC THREE DOTS BELOW;Mn;220;NSM;;;;;N;;;;;
+0747;SYRIAC OBLIQUE LINE ABOVE;Mn;230;NSM;;;;;N;;;;;
+0748;SYRIAC OBLIQUE LINE BELOW;Mn;220;NSM;;;;;N;;;;;
+0749;SYRIAC MUSIC;Mn;230;NSM;;;;;N;;;;;
+074A;SYRIAC BARREKH;Mn;230;NSM;;;;;N;;;;;
+0780;THAANA LETTER HAA;Lo;0;AL;;;;;N;;;;;
+0781;THAANA LETTER SHAVIYANI;Lo;0;AL;;;;;N;;;;;
+0782;THAANA LETTER NOONU;Lo;0;AL;;;;;N;;;;;
+0783;THAANA LETTER RAA;Lo;0;AL;;;;;N;;;;;
+0784;THAANA LETTER BAA;Lo;0;AL;;;;;N;;;;;
+0785;THAANA LETTER LHAVIYANI;Lo;0;AL;;;;;N;;;;;
+0786;THAANA LETTER KAAFU;Lo;0;AL;;;;;N;;;;;
+0787;THAANA LETTER ALIFU;Lo;0;AL;;;;;N;;;;;
+0788;THAANA LETTER VAAVU;Lo;0;AL;;;;;N;;;;;
+0789;THAANA LETTER MEEMU;Lo;0;AL;;;;;N;;;;;
+078A;THAANA LETTER FAAFU;Lo;0;AL;;;;;N;;;;;
+078B;THAANA LETTER DHAALU;Lo;0;AL;;;;;N;;;;;
+078C;THAANA LETTER THAA;Lo;0;AL;;;;;N;;;;;
+078D;THAANA LETTER LAAMU;Lo;0;AL;;;;;N;;;;;
+078E;THAANA LETTER GAAFU;Lo;0;AL;;;;;N;;;;;
+078F;THAANA LETTER GNAVIYANI;Lo;0;AL;;;;;N;;;;;
+0790;THAANA LETTER SEENU;Lo;0;AL;;;;;N;;;;;
+0791;THAANA LETTER DAVIYANI;Lo;0;AL;;;;;N;;;;;
+0792;THAANA LETTER ZAVIYANI;Lo;0;AL;;;;;N;;;;;
+0793;THAANA LETTER TAVIYANI;Lo;0;AL;;;;;N;;;;;
+0794;THAANA LETTER YAA;Lo;0;AL;;;;;N;;;;;
+0795;THAANA LETTER PAVIYANI;Lo;0;AL;;;;;N;;;;;
+0796;THAANA LETTER JAVIYANI;Lo;0;AL;;;;;N;;;;;
+0797;THAANA LETTER CHAVIYANI;Lo;0;AL;;;;;N;;;;;
+0798;THAANA LETTER TTAA;Lo;0;AL;;;;;N;;;;;
+0799;THAANA LETTER HHAA;Lo;0;AL;;;;;N;;;;;
+079A;THAANA LETTER KHAA;Lo;0;AL;;;;;N;;;;;
+079B;THAANA LETTER THAALU;Lo;0;AL;;;;;N;;;;;
+079C;THAANA LETTER ZAA;Lo;0;AL;;;;;N;;;;;
+079D;THAANA LETTER SHEENU;Lo;0;AL;;;;;N;;;;;
+079E;THAANA LETTER SAADHU;Lo;0;AL;;;;;N;;;;;
+079F;THAANA LETTER DAADHU;Lo;0;AL;;;;;N;;;;;
+07A0;THAANA LETTER TO;Lo;0;AL;;;;;N;;;;;
+07A1;THAANA LETTER ZO;Lo;0;AL;;;;;N;;;;;
+07A2;THAANA LETTER AINU;Lo;0;AL;;;;;N;;;;;
+07A3;THAANA LETTER GHAINU;Lo;0;AL;;;;;N;;;;;
+07A4;THAANA LETTER QAAFU;Lo;0;AL;;;;;N;;;;;
+07A5;THAANA LETTER WAAVU;Lo;0;AL;;;;;N;;;;;
+07A6;THAANA ABAFILI;Mn;0;NSM;;;;;N;;;;;
+07A7;THAANA AABAAFILI;Mn;0;NSM;;;;;N;;;;;
+07A8;THAANA IBIFILI;Mn;0;NSM;;;;;N;;;;;
+07A9;THAANA EEBEEFILI;Mn;0;NSM;;;;;N;;;;;
+07AA;THAANA UBUFILI;Mn;0;NSM;;;;;N;;;;;
+07AB;THAANA OOBOOFILI;Mn;0;NSM;;;;;N;;;;;
+07AC;THAANA EBEFILI;Mn;0;NSM;;;;;N;;;;;
+07AD;THAANA EYBEYFILI;Mn;0;NSM;;;;;N;;;;;
+07AE;THAANA OBOFILI;Mn;0;NSM;;;;;N;;;;;
+07AF;THAANA OABOAFILI;Mn;0;NSM;;;;;N;;;;;
+07B0;THAANA SUKUN;Mn;0;NSM;;;;;N;;;;;
+0901;DEVANAGARI SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
+0902;DEVANAGARI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
+0903;DEVANAGARI SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+0905;DEVANAGARI LETTER A;Lo;0;L;;;;;N;;;;;
+0906;DEVANAGARI LETTER AA;Lo;0;L;;;;;N;;;;;
+0907;DEVANAGARI LETTER I;Lo;0;L;;;;;N;;;;;
+0908;DEVANAGARI LETTER II;Lo;0;L;;;;;N;;;;;
+0909;DEVANAGARI LETTER U;Lo;0;L;;;;;N;;;;;
+090A;DEVANAGARI LETTER UU;Lo;0;L;;;;;N;;;;;
+090B;DEVANAGARI LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
+090C;DEVANAGARI LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
+090D;DEVANAGARI LETTER CANDRA E;Lo;0;L;;;;;N;;;;;
+090E;DEVANAGARI LETTER SHORT E;Lo;0;L;;;;;N;;;;;
+090F;DEVANAGARI LETTER E;Lo;0;L;;;;;N;;;;;
+0910;DEVANAGARI LETTER AI;Lo;0;L;;;;;N;;;;;
+0911;DEVANAGARI LETTER CANDRA O;Lo;0;L;;;;;N;;;;;
+0912;DEVANAGARI LETTER SHORT O;Lo;0;L;;;;;N;;;;;
+0913;DEVANAGARI LETTER O;Lo;0;L;;;;;N;;;;;
+0914;DEVANAGARI LETTER AU;Lo;0;L;;;;;N;;;;;
+0915;DEVANAGARI LETTER KA;Lo;0;L;;;;;N;;;;;
+0916;DEVANAGARI LETTER KHA;Lo;0;L;;;;;N;;;;;
+0917;DEVANAGARI LETTER GA;Lo;0;L;;;;;N;;;;;
+0918;DEVANAGARI LETTER GHA;Lo;0;L;;;;;N;;;;;
+0919;DEVANAGARI LETTER NGA;Lo;0;L;;;;;N;;;;;
+091A;DEVANAGARI LETTER CA;Lo;0;L;;;;;N;;;;;
+091B;DEVANAGARI LETTER CHA;Lo;0;L;;;;;N;;;;;
+091C;DEVANAGARI LETTER JA;Lo;0;L;;;;;N;;;;;
+091D;DEVANAGARI LETTER JHA;Lo;0;L;;;;;N;;;;;
+091E;DEVANAGARI LETTER NYA;Lo;0;L;;;;;N;;;;;
+091F;DEVANAGARI LETTER TTA;Lo;0;L;;;;;N;;;;;
+0920;DEVANAGARI LETTER TTHA;Lo;0;L;;;;;N;;;;;
+0921;DEVANAGARI LETTER DDA;Lo;0;L;;;;;N;;;;;
+0922;DEVANAGARI LETTER DDHA;Lo;0;L;;;;;N;;;;;
+0923;DEVANAGARI LETTER NNA;Lo;0;L;;;;;N;;;;;
+0924;DEVANAGARI LETTER TA;Lo;0;L;;;;;N;;;;;
+0925;DEVANAGARI LETTER THA;Lo;0;L;;;;;N;;;;;
+0926;DEVANAGARI LETTER DA;Lo;0;L;;;;;N;;;;;
+0927;DEVANAGARI LETTER DHA;Lo;0;L;;;;;N;;;;;
+0928;DEVANAGARI LETTER NA;Lo;0;L;;;;;N;;;;;
+0929;DEVANAGARI LETTER NNNA;Lo;0;L;0928 093C;;;;N;;;;;
+092A;DEVANAGARI LETTER PA;Lo;0;L;;;;;N;;;;;
+092B;DEVANAGARI LETTER PHA;Lo;0;L;;;;;N;;;;;
+092C;DEVANAGARI LETTER BA;Lo;0;L;;;;;N;;;;;
+092D;DEVANAGARI LETTER BHA;Lo;0;L;;;;;N;;;;;
+092E;DEVANAGARI LETTER MA;Lo;0;L;;;;;N;;;;;
+092F;DEVANAGARI LETTER YA;Lo;0;L;;;;;N;;;;;
+0930;DEVANAGARI LETTER RA;Lo;0;L;;;;;N;;;;;
+0931;DEVANAGARI LETTER RRA;Lo;0;L;0930 093C;;;;N;;;;;
+0932;DEVANAGARI LETTER LA;Lo;0;L;;;;;N;;;;;
+0933;DEVANAGARI LETTER LLA;Lo;0;L;;;;;N;;;;;
+0934;DEVANAGARI LETTER LLLA;Lo;0;L;0933 093C;;;;N;;;;;
+0935;DEVANAGARI LETTER VA;Lo;0;L;;;;;N;;;;;
+0936;DEVANAGARI LETTER SHA;Lo;0;L;;;;;N;;;;;
+0937;DEVANAGARI LETTER SSA;Lo;0;L;;;;;N;;;;;
+0938;DEVANAGARI LETTER SA;Lo;0;L;;;;;N;;;;;
+0939;DEVANAGARI LETTER HA;Lo;0;L;;;;;N;;;;;
+093C;DEVANAGARI SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;
+093D;DEVANAGARI SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;;
+093E;DEVANAGARI VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+093F;DEVANAGARI VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
+0940;DEVANAGARI VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
+0941;DEVANAGARI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+0942;DEVANAGARI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
+0943;DEVANAGARI VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;;
+0944;DEVANAGARI VOWEL SIGN VOCALIC RR;Mn;0;NSM;;;;;N;;;;;
+0945;DEVANAGARI VOWEL SIGN CANDRA E;Mn;0;NSM;;;;;N;;;;;
+0946;DEVANAGARI VOWEL SIGN SHORT E;Mn;0;NSM;;;;;N;;;;;
+0947;DEVANAGARI VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;;
+0948;DEVANAGARI VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;;
+0949;DEVANAGARI VOWEL SIGN CANDRA O;Mc;0;L;;;;;N;;;;;
+094A;DEVANAGARI VOWEL SIGN SHORT O;Mc;0;L;;;;;N;;;;;
+094B;DEVANAGARI VOWEL SIGN O;Mc;0;L;;;;;N;;;;;
+094C;DEVANAGARI VOWEL SIGN AU;Mc;0;L;;;;;N;;;;;
+094D;DEVANAGARI SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+0950;DEVANAGARI OM;Lo;0;L;;;;;N;;;;;
+0951;DEVANAGARI STRESS SIGN UDATTA;Mn;230;NSM;;;;;N;;;;;
+0952;DEVANAGARI STRESS SIGN ANUDATTA;Mn;220;NSM;;;;;N;;;;;
+0953;DEVANAGARI GRAVE ACCENT;Mn;230;NSM;;;;;N;;;;;
+0954;DEVANAGARI ACUTE ACCENT;Mn;230;NSM;;;;;N;;;;;
+0958;DEVANAGARI LETTER QA;Lo;0;L;0915 093C;;;;N;;;;;
+0959;DEVANAGARI LETTER KHHA;Lo;0;L;0916 093C;;;;N;;;;;
+095A;DEVANAGARI LETTER GHHA;Lo;0;L;0917 093C;;;;N;;;;;
+095B;DEVANAGARI LETTER ZA;Lo;0;L;091C 093C;;;;N;;;;;
+095C;DEVANAGARI LETTER DDDHA;Lo;0;L;0921 093C;;;;N;;;;;
+095D;DEVANAGARI LETTER RHA;Lo;0;L;0922 093C;;;;N;;;;;
+095E;DEVANAGARI LETTER FA;Lo;0;L;092B 093C;;;;N;;;;;
+095F;DEVANAGARI LETTER YYA;Lo;0;L;092F 093C;;;;N;;;;;
+0960;DEVANAGARI LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
+0961;DEVANAGARI LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
+0962;DEVANAGARI VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;;
+0963;DEVANAGARI VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;;
+0964;DEVANAGARI DANDA;Po;0;L;;;;;N;;;;;
+0965;DEVANAGARI DOUBLE DANDA;Po;0;L;;;;;N;;;;;
+0966;DEVANAGARI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+0967;DEVANAGARI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+0968;DEVANAGARI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+0969;DEVANAGARI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+096A;DEVANAGARI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+096B;DEVANAGARI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+096C;DEVANAGARI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+096D;DEVANAGARI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+096E;DEVANAGARI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+096F;DEVANAGARI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+0970;DEVANAGARI ABBREVIATION SIGN;Po;0;L;;;;;N;;;;;
+0981;BENGALI SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
+0982;BENGALI SIGN ANUSVARA;Mc;0;L;;;;;N;;;;;
+0983;BENGALI SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+0985;BENGALI LETTER A;Lo;0;L;;;;;N;;;;;
+0986;BENGALI LETTER AA;Lo;0;L;;;;;N;;;;;
+0987;BENGALI LETTER I;Lo;0;L;;;;;N;;;;;
+0988;BENGALI LETTER II;Lo;0;L;;;;;N;;;;;
+0989;BENGALI LETTER U;Lo;0;L;;;;;N;;;;;
+098A;BENGALI LETTER UU;Lo;0;L;;;;;N;;;;;
+098B;BENGALI LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
+098C;BENGALI LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
+098F;BENGALI LETTER E;Lo;0;L;;;;;N;;;;;
+0990;BENGALI LETTER AI;Lo;0;L;;;;;N;;;;;
+0993;BENGALI LETTER O;Lo;0;L;;;;;N;;;;;
+0994;BENGALI LETTER AU;Lo;0;L;;;;;N;;;;;
+0995;BENGALI LETTER KA;Lo;0;L;;;;;N;;;;;
+0996;BENGALI LETTER KHA;Lo;0;L;;;;;N;;;;;
+0997;BENGALI LETTER GA;Lo;0;L;;;;;N;;;;;
+0998;BENGALI LETTER GHA;Lo;0;L;;;;;N;;;;;
+0999;BENGALI LETTER NGA;Lo;0;L;;;;;N;;;;;
+099A;BENGALI LETTER CA;Lo;0;L;;;;;N;;;;;
+099B;BENGALI LETTER CHA;Lo;0;L;;;;;N;;;;;
+099C;BENGALI LETTER JA;Lo;0;L;;;;;N;;;;;
+099D;BENGALI LETTER JHA;Lo;0;L;;;;;N;;;;;
+099E;BENGALI LETTER NYA;Lo;0;L;;;;;N;;;;;
+099F;BENGALI LETTER TTA;Lo;0;L;;;;;N;;;;;
+09A0;BENGALI LETTER TTHA;Lo;0;L;;;;;N;;;;;
+09A1;BENGALI LETTER DDA;Lo;0;L;;;;;N;;;;;
+09A2;BENGALI LETTER DDHA;Lo;0;L;;;;;N;;;;;
+09A3;BENGALI LETTER NNA;Lo;0;L;;;;;N;;;;;
+09A4;BENGALI LETTER TA;Lo;0;L;;;;;N;;;;;
+09A5;BENGALI LETTER THA;Lo;0;L;;;;;N;;;;;
+09A6;BENGALI LETTER DA;Lo;0;L;;;;;N;;;;;
+09A7;BENGALI LETTER DHA;Lo;0;L;;;;;N;;;;;
+09A8;BENGALI LETTER NA;Lo;0;L;;;;;N;;;;;
+09AA;BENGALI LETTER PA;Lo;0;L;;;;;N;;;;;
+09AB;BENGALI LETTER PHA;Lo;0;L;;;;;N;;;;;
+09AC;BENGALI LETTER BA;Lo;0;L;;;;;N;;;;;
+09AD;BENGALI LETTER BHA;Lo;0;L;;;;;N;;;;;
+09AE;BENGALI LETTER MA;Lo;0;L;;;;;N;;;;;
+09AF;BENGALI LETTER YA;Lo;0;L;;;;;N;;;;;
+09B0;BENGALI LETTER RA;Lo;0;L;;;;;N;;;;;
+09B2;BENGALI LETTER LA;Lo;0;L;;;;;N;;;;;
+09B6;BENGALI LETTER SHA;Lo;0;L;;;;;N;;;;;
+09B7;BENGALI LETTER SSA;Lo;0;L;;;;;N;;;;;
+09B8;BENGALI LETTER SA;Lo;0;L;;;;;N;;;;;
+09B9;BENGALI LETTER HA;Lo;0;L;;;;;N;;;;;
+09BC;BENGALI SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;
+09BE;BENGALI VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+09BF;BENGALI VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
+09C0;BENGALI VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
+09C1;BENGALI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+09C2;BENGALI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
+09C3;BENGALI VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;;
+09C4;BENGALI VOWEL SIGN VOCALIC RR;Mn;0;NSM;;;;;N;;;;;
+09C7;BENGALI VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
+09C8;BENGALI VOWEL SIGN AI;Mc;0;L;;;;;N;;;;;
+09CB;BENGALI VOWEL SIGN O;Mc;0;L;09C7 09BE;;;;N;;;;;
+09CC;BENGALI VOWEL SIGN AU;Mc;0;L;09C7 09D7;;;;N;;;;;
+09CD;BENGALI SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+09D7;BENGALI AU LENGTH MARK;Mc;0;L;;;;;N;;;;;
+09DC;BENGALI LETTER RRA;Lo;0;L;09A1 09BC;;;;N;;;;;
+09DD;BENGALI LETTER RHA;Lo;0;L;09A2 09BC;;;;N;;;;;
+09DF;BENGALI LETTER YYA;Lo;0;L;09AF 09BC;;;;N;;;;;
+09E0;BENGALI LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
+09E1;BENGALI LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
+09E2;BENGALI VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;;
+09E3;BENGALI VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;;
+09E6;BENGALI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+09E7;BENGALI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+09E8;BENGALI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+09E9;BENGALI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+09EA;BENGALI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+09EB;BENGALI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+09EC;BENGALI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+09ED;BENGALI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+09EE;BENGALI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+09EF;BENGALI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+09F0;BENGALI LETTER RA WITH MIDDLE DIAGONAL;Lo;0;L;;;;;N;;Assamese;;;
+09F1;BENGALI LETTER RA WITH LOWER DIAGONAL;Lo;0;L;;;;;N;BENGALI LETTER VA WITH LOWER DIAGONAL;Assamese;;;
+09F2;BENGALI RUPEE MARK;Sc;0;ET;;;;;N;;;;;
+09F3;BENGALI RUPEE SIGN;Sc;0;ET;;;;;N;;;;;
+09F4;BENGALI CURRENCY NUMERATOR ONE;No;0;L;;;;1;N;;;;;
+09F5;BENGALI CURRENCY NUMERATOR TWO;No;0;L;;;;2;N;;;;;
+09F6;BENGALI CURRENCY NUMERATOR THREE;No;0;L;;;;3;N;;;;;
+09F7;BENGALI CURRENCY NUMERATOR FOUR;No;0;L;;;;4;N;;;;;
+09F8;BENGALI CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR;No;0;L;;;;;N;;;;;
+09F9;BENGALI CURRENCY DENOMINATOR SIXTEEN;No;0;L;;;;16;N;;;;;
+09FA;BENGALI ISSHAR;So;0;L;;;;;N;;;;;
+0A02;GURMUKHI SIGN BINDI;Mn;0;NSM;;;;;N;;;;;
+0A05;GURMUKHI LETTER A;Lo;0;L;;;;;N;;;;;
+0A06;GURMUKHI LETTER AA;Lo;0;L;;;;;N;;;;;
+0A07;GURMUKHI LETTER I;Lo;0;L;;;;;N;;;;;
+0A08;GURMUKHI LETTER II;Lo;0;L;;;;;N;;;;;
+0A09;GURMUKHI LETTER U;Lo;0;L;;;;;N;;;;;
+0A0A;GURMUKHI LETTER UU;Lo;0;L;;;;;N;;;;;
+0A0F;GURMUKHI LETTER EE;Lo;0;L;;;;;N;;;;;
+0A10;GURMUKHI LETTER AI;Lo;0;L;;;;;N;;;;;
+0A13;GURMUKHI LETTER OO;Lo;0;L;;;;;N;;;;;
+0A14;GURMUKHI LETTER AU;Lo;0;L;;;;;N;;;;;
+0A15;GURMUKHI LETTER KA;Lo;0;L;;;;;N;;;;;
+0A16;GURMUKHI LETTER KHA;Lo;0;L;;;;;N;;;;;
+0A17;GURMUKHI LETTER GA;Lo;0;L;;;;;N;;;;;
+0A18;GURMUKHI LETTER GHA;Lo;0;L;;;;;N;;;;;
+0A19;GURMUKHI LETTER NGA;Lo;0;L;;;;;N;;;;;
+0A1A;GURMUKHI LETTER CA;Lo;0;L;;;;;N;;;;;
+0A1B;GURMUKHI LETTER CHA;Lo;0;L;;;;;N;;;;;
+0A1C;GURMUKHI LETTER JA;Lo;0;L;;;;;N;;;;;
+0A1D;GURMUKHI LETTER JHA;Lo;0;L;;;;;N;;;;;
+0A1E;GURMUKHI LETTER NYA;Lo;0;L;;;;;N;;;;;
+0A1F;GURMUKHI LETTER TTA;Lo;0;L;;;;;N;;;;;
+0A20;GURMUKHI LETTER TTHA;Lo;0;L;;;;;N;;;;;
+0A21;GURMUKHI LETTER DDA;Lo;0;L;;;;;N;;;;;
+0A22;GURMUKHI LETTER DDHA;Lo;0;L;;;;;N;;;;;
+0A23;GURMUKHI LETTER NNA;Lo;0;L;;;;;N;;;;;
+0A24;GURMUKHI LETTER TA;Lo;0;L;;;;;N;;;;;
+0A25;GURMUKHI LETTER THA;Lo;0;L;;;;;N;;;;;
+0A26;GURMUKHI LETTER DA;Lo;0;L;;;;;N;;;;;
+0A27;GURMUKHI LETTER DHA;Lo;0;L;;;;;N;;;;;
+0A28;GURMUKHI LETTER NA;Lo;0;L;;;;;N;;;;;
+0A2A;GURMUKHI LETTER PA;Lo;0;L;;;;;N;;;;;
+0A2B;GURMUKHI LETTER PHA;Lo;0;L;;;;;N;;;;;
+0A2C;GURMUKHI LETTER BA;Lo;0;L;;;;;N;;;;;
+0A2D;GURMUKHI LETTER BHA;Lo;0;L;;;;;N;;;;;
+0A2E;GURMUKHI LETTER MA;Lo;0;L;;;;;N;;;;;
+0A2F;GURMUKHI LETTER YA;Lo;0;L;;;;;N;;;;;
+0A30;GURMUKHI LETTER RA;Lo;0;L;;;;;N;;;;;
+0A32;GURMUKHI LETTER LA;Lo;0;L;;;;;N;;;;;
+0A33;GURMUKHI LETTER LLA;Lo;0;L;0A32 0A3C;;;;N;;;;;
+0A35;GURMUKHI LETTER VA;Lo;0;L;;;;;N;;;;;
+0A36;GURMUKHI LETTER SHA;Lo;0;L;0A38 0A3C;;;;N;;;;;
+0A38;GURMUKHI LETTER SA;Lo;0;L;;;;;N;;;;;
+0A39;GURMUKHI LETTER HA;Lo;0;L;;;;;N;;;;;
+0A3C;GURMUKHI SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;
+0A3E;GURMUKHI VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+0A3F;GURMUKHI VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
+0A40;GURMUKHI VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
+0A41;GURMUKHI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+0A42;GURMUKHI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
+0A47;GURMUKHI VOWEL SIGN EE;Mn;0;NSM;;;;;N;;;;;
+0A48;GURMUKHI VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;;
+0A4B;GURMUKHI VOWEL SIGN OO;Mn;0;NSM;;;;;N;;;;;
+0A4C;GURMUKHI VOWEL SIGN AU;Mn;0;NSM;;;;;N;;;;;
+0A4D;GURMUKHI SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+0A59;GURMUKHI LETTER KHHA;Lo;0;L;0A16 0A3C;;;;N;;;;;
+0A5A;GURMUKHI LETTER GHHA;Lo;0;L;0A17 0A3C;;;;N;;;;;
+0A5B;GURMUKHI LETTER ZA;Lo;0;L;0A1C 0A3C;;;;N;;;;;
+0A5C;GURMUKHI LETTER RRA;Lo;0;L;;;;;N;;;;;
+0A5E;GURMUKHI LETTER FA;Lo;0;L;0A2B 0A3C;;;;N;;;;;
+0A66;GURMUKHI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+0A67;GURMUKHI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+0A68;GURMUKHI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+0A69;GURMUKHI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+0A6A;GURMUKHI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+0A6B;GURMUKHI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+0A6C;GURMUKHI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+0A6D;GURMUKHI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+0A6E;GURMUKHI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+0A6F;GURMUKHI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+0A70;GURMUKHI TIPPI;Mn;0;NSM;;;;;N;;;;;
+0A71;GURMUKHI ADDAK;Mn;0;NSM;;;;;N;;;;;
+0A72;GURMUKHI IRI;Lo;0;L;;;;;N;;;;;
+0A73;GURMUKHI URA;Lo;0;L;;;;;N;;;;;
+0A74;GURMUKHI EK ONKAR;Lo;0;L;;;;;N;;;;;
+0A81;GUJARATI SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
+0A82;GUJARATI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
+0A83;GUJARATI SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+0A85;GUJARATI LETTER A;Lo;0;L;;;;;N;;;;;
+0A86;GUJARATI LETTER AA;Lo;0;L;;;;;N;;;;;
+0A87;GUJARATI LETTER I;Lo;0;L;;;;;N;;;;;
+0A88;GUJARATI LETTER II;Lo;0;L;;;;;N;;;;;
+0A89;GUJARATI LETTER U;Lo;0;L;;;;;N;;;;;
+0A8A;GUJARATI LETTER UU;Lo;0;L;;;;;N;;;;;
+0A8B;GUJARATI LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
+0A8D;GUJARATI VOWEL CANDRA E;Lo;0;L;;;;;N;;;;;
+0A8F;GUJARATI LETTER E;Lo;0;L;;;;;N;;;;;
+0A90;GUJARATI LETTER AI;Lo;0;L;;;;;N;;;;;
+0A91;GUJARATI VOWEL CANDRA O;Lo;0;L;;;;;N;;;;;
+0A93;GUJARATI LETTER O;Lo;0;L;;;;;N;;;;;
+0A94;GUJARATI LETTER AU;Lo;0;L;;;;;N;;;;;
+0A95;GUJARATI LETTER KA;Lo;0;L;;;;;N;;;;;
+0A96;GUJARATI LETTER KHA;Lo;0;L;;;;;N;;;;;
+0A97;GUJARATI LETTER GA;Lo;0;L;;;;;N;;;;;
+0A98;GUJARATI LETTER GHA;Lo;0;L;;;;;N;;;;;
+0A99;GUJARATI LETTER NGA;Lo;0;L;;;;;N;;;;;
+0A9A;GUJARATI LETTER CA;Lo;0;L;;;;;N;;;;;
+0A9B;GUJARATI LETTER CHA;Lo;0;L;;;;;N;;;;;
+0A9C;GUJARATI LETTER JA;Lo;0;L;;;;;N;;;;;
+0A9D;GUJARATI LETTER JHA;Lo;0;L;;;;;N;;;;;
+0A9E;GUJARATI LETTER NYA;Lo;0;L;;;;;N;;;;;
+0A9F;GUJARATI LETTER TTA;Lo;0;L;;;;;N;;;;;
+0AA0;GUJARATI LETTER TTHA;Lo;0;L;;;;;N;;;;;
+0AA1;GUJARATI LETTER DDA;Lo;0;L;;;;;N;;;;;
+0AA2;GUJARATI LETTER DDHA;Lo;0;L;;;;;N;;;;;
+0AA3;GUJARATI LETTER NNA;Lo;0;L;;;;;N;;;;;
+0AA4;GUJARATI LETTER TA;Lo;0;L;;;;;N;;;;;
+0AA5;GUJARATI LETTER THA;Lo;0;L;;;;;N;;;;;
+0AA6;GUJARATI LETTER DA;Lo;0;L;;;;;N;;;;;
+0AA7;GUJARATI LETTER DHA;Lo;0;L;;;;;N;;;;;
+0AA8;GUJARATI LETTER NA;Lo;0;L;;;;;N;;;;;
+0AAA;GUJARATI LETTER PA;Lo;0;L;;;;;N;;;;;
+0AAB;GUJARATI LETTER PHA;Lo;0;L;;;;;N;;;;;
+0AAC;GUJARATI LETTER BA;Lo;0;L;;;;;N;;;;;
+0AAD;GUJARATI LETTER BHA;Lo;0;L;;;;;N;;;;;
+0AAE;GUJARATI LETTER MA;Lo;0;L;;;;;N;;;;;
+0AAF;GUJARATI LETTER YA;Lo;0;L;;;;;N;;;;;
+0AB0;GUJARATI LETTER RA;Lo;0;L;;;;;N;;;;;
+0AB2;GUJARATI LETTER LA;Lo;0;L;;;;;N;;;;;
+0AB3;GUJARATI LETTER LLA;Lo;0;L;;;;;N;;;;;
+0AB5;GUJARATI LETTER VA;Lo;0;L;;;;;N;;;;;
+0AB6;GUJARATI LETTER SHA;Lo;0;L;;;;;N;;;;;
+0AB7;GUJARATI LETTER SSA;Lo;0;L;;;;;N;;;;;
+0AB8;GUJARATI LETTER SA;Lo;0;L;;;;;N;;;;;
+0AB9;GUJARATI LETTER HA;Lo;0;L;;;;;N;;;;;
+0ABC;GUJARATI SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;
+0ABD;GUJARATI SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;;
+0ABE;GUJARATI VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+0ABF;GUJARATI VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
+0AC0;GUJARATI VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
+0AC1;GUJARATI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+0AC2;GUJARATI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
+0AC3;GUJARATI VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;;
+0AC4;GUJARATI VOWEL SIGN VOCALIC RR;Mn;0;NSM;;;;;N;;;;;
+0AC5;GUJARATI VOWEL SIGN CANDRA E;Mn;0;NSM;;;;;N;;;;;
+0AC7;GUJARATI VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;;
+0AC8;GUJARATI VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;;
+0AC9;GUJARATI VOWEL SIGN CANDRA O;Mc;0;L;;;;;N;;;;;
+0ACB;GUJARATI VOWEL SIGN O;Mc;0;L;;;;;N;;;;;
+0ACC;GUJARATI VOWEL SIGN AU;Mc;0;L;;;;;N;;;;;
+0ACD;GUJARATI SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+0AD0;GUJARATI OM;Lo;0;L;;;;;N;;;;;
+0AE0;GUJARATI LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
+0AE6;GUJARATI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+0AE7;GUJARATI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+0AE8;GUJARATI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+0AE9;GUJARATI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+0AEA;GUJARATI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+0AEB;GUJARATI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+0AEC;GUJARATI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+0AED;GUJARATI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+0AEE;GUJARATI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+0AEF;GUJARATI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+0B01;ORIYA SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
+0B02;ORIYA SIGN ANUSVARA;Mc;0;L;;;;;N;;;;;
+0B03;ORIYA SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+0B05;ORIYA LETTER A;Lo;0;L;;;;;N;;;;;
+0B06;ORIYA LETTER AA;Lo;0;L;;;;;N;;;;;
+0B07;ORIYA LETTER I;Lo;0;L;;;;;N;;;;;
+0B08;ORIYA LETTER II;Lo;0;L;;;;;N;;;;;
+0B09;ORIYA LETTER U;Lo;0;L;;;;;N;;;;;
+0B0A;ORIYA LETTER UU;Lo;0;L;;;;;N;;;;;
+0B0B;ORIYA LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
+0B0C;ORIYA LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
+0B0F;ORIYA LETTER E;Lo;0;L;;;;;N;;;;;
+0B10;ORIYA LETTER AI;Lo;0;L;;;;;N;;;;;
+0B13;ORIYA LETTER O;Lo;0;L;;;;;N;;;;;
+0B14;ORIYA LETTER AU;Lo;0;L;;;;;N;;;;;
+0B15;ORIYA LETTER KA;Lo;0;L;;;;;N;;;;;
+0B16;ORIYA LETTER KHA;Lo;0;L;;;;;N;;;;;
+0B17;ORIYA LETTER GA;Lo;0;L;;;;;N;;;;;
+0B18;ORIYA LETTER GHA;Lo;0;L;;;;;N;;;;;
+0B19;ORIYA LETTER NGA;Lo;0;L;;;;;N;;;;;
+0B1A;ORIYA LETTER CA;Lo;0;L;;;;;N;;;;;
+0B1B;ORIYA LETTER CHA;Lo;0;L;;;;;N;;;;;
+0B1C;ORIYA LETTER JA;Lo;0;L;;;;;N;;;;;
+0B1D;ORIYA LETTER JHA;Lo;0;L;;;;;N;;;;;
+0B1E;ORIYA LETTER NYA;Lo;0;L;;;;;N;;;;;
+0B1F;ORIYA LETTER TTA;Lo;0;L;;;;;N;;;;;
+0B20;ORIYA LETTER TTHA;Lo;0;L;;;;;N;;;;;
+0B21;ORIYA LETTER DDA;Lo;0;L;;;;;N;;;;;
+0B22;ORIYA LETTER DDHA;Lo;0;L;;;;;N;;;;;
+0B23;ORIYA LETTER NNA;Lo;0;L;;;;;N;;;;;
+0B24;ORIYA LETTER TA;Lo;0;L;;;;;N;;;;;
+0B25;ORIYA LETTER THA;Lo;0;L;;;;;N;;;;;
+0B26;ORIYA LETTER DA;Lo;0;L;;;;;N;;;;;
+0B27;ORIYA LETTER DHA;Lo;0;L;;;;;N;;;;;
+0B28;ORIYA LETTER NA;Lo;0;L;;;;;N;;;;;
+0B2A;ORIYA LETTER PA;Lo;0;L;;;;;N;;;;;
+0B2B;ORIYA LETTER PHA;Lo;0;L;;;;;N;;;;;
+0B2C;ORIYA LETTER BA;Lo;0;L;;;;;N;;;;;
+0B2D;ORIYA LETTER BHA;Lo;0;L;;;;;N;;;;;
+0B2E;ORIYA LETTER MA;Lo;0;L;;;;;N;;;;;
+0B2F;ORIYA LETTER YA;Lo;0;L;;;;;N;;;;;
+0B30;ORIYA LETTER RA;Lo;0;L;;;;;N;;;;;
+0B32;ORIYA LETTER LA;Lo;0;L;;;;;N;;;;;
+0B33;ORIYA LETTER LLA;Lo;0;L;;;;;N;;;;;
+0B36;ORIYA LETTER SHA;Lo;0;L;;;;;N;;;;;
+0B37;ORIYA LETTER SSA;Lo;0;L;;;;;N;;;;;
+0B38;ORIYA LETTER SA;Lo;0;L;;;;;N;;;;;
+0B39;ORIYA LETTER HA;Lo;0;L;;;;;N;;;;;
+0B3C;ORIYA SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;
+0B3D;ORIYA SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;;
+0B3E;ORIYA VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+0B3F;ORIYA VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
+0B40;ORIYA VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
+0B41;ORIYA VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+0B42;ORIYA VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
+0B43;ORIYA VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;;
+0B47;ORIYA VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
+0B48;ORIYA VOWEL SIGN AI;Mc;0;L;0B47 0B56;;;;N;;;;;
+0B4B;ORIYA VOWEL SIGN O;Mc;0;L;0B47 0B3E;;;;N;;;;;
+0B4C;ORIYA VOWEL SIGN AU;Mc;0;L;0B47 0B57;;;;N;;;;;
+0B4D;ORIYA SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+0B56;ORIYA AI LENGTH MARK;Mn;0;NSM;;;;;N;;;;;
+0B57;ORIYA AU LENGTH MARK;Mc;0;L;;;;;N;;;;;
+0B5C;ORIYA LETTER RRA;Lo;0;L;0B21 0B3C;;;;N;;;;;
+0B5D;ORIYA LETTER RHA;Lo;0;L;0B22 0B3C;;;;N;;;;;
+0B5F;ORIYA LETTER YYA;Lo;0;L;;;;;N;;;;;
+0B60;ORIYA LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
+0B61;ORIYA LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
+0B66;ORIYA DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+0B67;ORIYA DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+0B68;ORIYA DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+0B69;ORIYA DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+0B6A;ORIYA DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+0B6B;ORIYA DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+0B6C;ORIYA DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+0B6D;ORIYA DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+0B6E;ORIYA DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+0B6F;ORIYA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+0B70;ORIYA ISSHAR;So;0;L;;;;;N;;;;;
+0B82;TAMIL SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
+0B83;TAMIL SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+0B85;TAMIL LETTER A;Lo;0;L;;;;;N;;;;;
+0B86;TAMIL LETTER AA;Lo;0;L;;;;;N;;;;;
+0B87;TAMIL LETTER I;Lo;0;L;;;;;N;;;;;
+0B88;TAMIL LETTER II;Lo;0;L;;;;;N;;;;;
+0B89;TAMIL LETTER U;Lo;0;L;;;;;N;;;;;
+0B8A;TAMIL LETTER UU;Lo;0;L;;;;;N;;;;;
+0B8E;TAMIL LETTER E;Lo;0;L;;;;;N;;;;;
+0B8F;TAMIL LETTER EE;Lo;0;L;;;;;N;;;;;
+0B90;TAMIL LETTER AI;Lo;0;L;;;;;N;;;;;
+0B92;TAMIL LETTER O;Lo;0;L;;;;;N;;;;;
+0B93;TAMIL LETTER OO;Lo;0;L;;;;;N;;;;;
+0B94;TAMIL LETTER AU;Lo;0;L;0B92 0BD7;;;;N;;;;;
+0B95;TAMIL LETTER KA;Lo;0;L;;;;;N;;;;;
+0B99;TAMIL LETTER NGA;Lo;0;L;;;;;N;;;;;
+0B9A;TAMIL LETTER CA;Lo;0;L;;;;;N;;;;;
+0B9C;TAMIL LETTER JA;Lo;0;L;;;;;N;;;;;
+0B9E;TAMIL LETTER NYA;Lo;0;L;;;;;N;;;;;
+0B9F;TAMIL LETTER TTA;Lo;0;L;;;;;N;;;;;
+0BA3;TAMIL LETTER NNA;Lo;0;L;;;;;N;;;;;
+0BA4;TAMIL LETTER TA;Lo;0;L;;;;;N;;;;;
+0BA8;TAMIL LETTER NA;Lo;0;L;;;;;N;;;;;
+0BA9;TAMIL LETTER NNNA;Lo;0;L;;;;;N;;;;;
+0BAA;TAMIL LETTER PA;Lo;0;L;;;;;N;;;;;
+0BAE;TAMIL LETTER MA;Lo;0;L;;;;;N;;;;;
+0BAF;TAMIL LETTER YA;Lo;0;L;;;;;N;;;;;
+0BB0;TAMIL LETTER RA;Lo;0;L;;;;;N;;;;;
+0BB1;TAMIL LETTER RRA;Lo;0;L;;;;;N;;;;;
+0BB2;TAMIL LETTER LA;Lo;0;L;;;;;N;;;;;
+0BB3;TAMIL LETTER LLA;Lo;0;L;;;;;N;;;;;
+0BB4;TAMIL LETTER LLLA;Lo;0;L;;;;;N;;;;;
+0BB5;TAMIL LETTER VA;Lo;0;L;;;;;N;;;;;
+0BB7;TAMIL LETTER SSA;Lo;0;L;;;;;N;;;;;
+0BB8;TAMIL LETTER SA;Lo;0;L;;;;;N;;;;;
+0BB9;TAMIL LETTER HA;Lo;0;L;;;;;N;;;;;
+0BBE;TAMIL VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+0BBF;TAMIL VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
+0BC0;TAMIL VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;;
+0BC1;TAMIL VOWEL SIGN U;Mc;0;L;;;;;N;;;;;
+0BC2;TAMIL VOWEL SIGN UU;Mc;0;L;;;;;N;;;;;
+0BC6;TAMIL VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
+0BC7;TAMIL VOWEL SIGN EE;Mc;0;L;;;;;N;;;;;
+0BC8;TAMIL VOWEL SIGN AI;Mc;0;L;;;;;N;;;;;
+0BCA;TAMIL VOWEL SIGN O;Mc;0;L;0BC6 0BBE;;;;N;;;;;
+0BCB;TAMIL VOWEL SIGN OO;Mc;0;L;0BC7 0BBE;;;;N;;;;;
+0BCC;TAMIL VOWEL SIGN AU;Mc;0;L;0BC6 0BD7;;;;N;;;;;
+0BCD;TAMIL SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+0BD7;TAMIL AU LENGTH MARK;Mc;0;L;;;;;N;;;;;
+0BE7;TAMIL DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+0BE8;TAMIL DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+0BE9;TAMIL DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+0BEA;TAMIL DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+0BEB;TAMIL DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+0BEC;TAMIL DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+0BED;TAMIL DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+0BEE;TAMIL DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+0BEF;TAMIL DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+0BF0;TAMIL NUMBER TEN;No;0;L;;;;10;N;;;;;
+0BF1;TAMIL NUMBER ONE HUNDRED;No;0;L;;;;100;N;;;;;
+0BF2;TAMIL NUMBER ONE THOUSAND;No;0;L;;;;1000;N;;;;;
+0C01;TELUGU SIGN CANDRABINDU;Mc;0;L;;;;;N;;;;;
+0C02;TELUGU SIGN ANUSVARA;Mc;0;L;;;;;N;;;;;
+0C03;TELUGU SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+0C05;TELUGU LETTER A;Lo;0;L;;;;;N;;;;;
+0C06;TELUGU LETTER AA;Lo;0;L;;;;;N;;;;;
+0C07;TELUGU LETTER I;Lo;0;L;;;;;N;;;;;
+0C08;TELUGU LETTER II;Lo;0;L;;;;;N;;;;;
+0C09;TELUGU LETTER U;Lo;0;L;;;;;N;;;;;
+0C0A;TELUGU LETTER UU;Lo;0;L;;;;;N;;;;;
+0C0B;TELUGU LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
+0C0C;TELUGU LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
+0C0E;TELUGU LETTER E;Lo;0;L;;;;;N;;;;;
+0C0F;TELUGU LETTER EE;Lo;0;L;;;;;N;;;;;
+0C10;TELUGU LETTER AI;Lo;0;L;;;;;N;;;;;
+0C12;TELUGU LETTER O;Lo;0;L;;;;;N;;;;;
+0C13;TELUGU LETTER OO;Lo;0;L;;;;;N;;;;;
+0C14;TELUGU LETTER AU;Lo;0;L;;;;;N;;;;;
+0C15;TELUGU LETTER KA;Lo;0;L;;;;;N;;;;;
+0C16;TELUGU LETTER KHA;Lo;0;L;;;;;N;;;;;
+0C17;TELUGU LETTER GA;Lo;0;L;;;;;N;;;;;
+0C18;TELUGU LETTER GHA;Lo;0;L;;;;;N;;;;;
+0C19;TELUGU LETTER NGA;Lo;0;L;;;;;N;;;;;
+0C1A;TELUGU LETTER CA;Lo;0;L;;;;;N;;;;;
+0C1B;TELUGU LETTER CHA;Lo;0;L;;;;;N;;;;;
+0C1C;TELUGU LETTER JA;Lo;0;L;;;;;N;;;;;
+0C1D;TELUGU LETTER JHA;Lo;0;L;;;;;N;;;;;
+0C1E;TELUGU LETTER NYA;Lo;0;L;;;;;N;;;;;
+0C1F;TELUGU LETTER TTA;Lo;0;L;;;;;N;;;;;
+0C20;TELUGU LETTER TTHA;Lo;0;L;;;;;N;;;;;
+0C21;TELUGU LETTER DDA;Lo;0;L;;;;;N;;;;;
+0C22;TELUGU LETTER DDHA;Lo;0;L;;;;;N;;;;;
+0C23;TELUGU LETTER NNA;Lo;0;L;;;;;N;;;;;
+0C24;TELUGU LETTER TA;Lo;0;L;;;;;N;;;;;
+0C25;TELUGU LETTER THA;Lo;0;L;;;;;N;;;;;
+0C26;TELUGU LETTER DA;Lo;0;L;;;;;N;;;;;
+0C27;TELUGU LETTER DHA;Lo;0;L;;;;;N;;;;;
+0C28;TELUGU LETTER NA;Lo;0;L;;;;;N;;;;;
+0C2A;TELUGU LETTER PA;Lo;0;L;;;;;N;;;;;
+0C2B;TELUGU LETTER PHA;Lo;0;L;;;;;N;;;;;
+0C2C;TELUGU LETTER BA;Lo;0;L;;;;;N;;;;;
+0C2D;TELUGU LETTER BHA;Lo;0;L;;;;;N;;;;;
+0C2E;TELUGU LETTER MA;Lo;0;L;;;;;N;;;;;
+0C2F;TELUGU LETTER YA;Lo;0;L;;;;;N;;;;;
+0C30;TELUGU LETTER RA;Lo;0;L;;;;;N;;;;;
+0C31;TELUGU LETTER RRA;Lo;0;L;;;;;N;;;;;
+0C32;TELUGU LETTER LA;Lo;0;L;;;;;N;;;;;
+0C33;TELUGU LETTER LLA;Lo;0;L;;;;;N;;;;;
+0C35;TELUGU LETTER VA;Lo;0;L;;;;;N;;;;;
+0C36;TELUGU LETTER SHA;Lo;0;L;;;;;N;;;;;
+0C37;TELUGU LETTER SSA;Lo;0;L;;;;;N;;;;;
+0C38;TELUGU LETTER SA;Lo;0;L;;;;;N;;;;;
+0C39;TELUGU LETTER HA;Lo;0;L;;;;;N;;;;;
+0C3E;TELUGU VOWEL SIGN AA;Mn;0;NSM;;;;;N;;;;;
+0C3F;TELUGU VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
+0C40;TELUGU VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;;
+0C41;TELUGU VOWEL SIGN U;Mc;0;L;;;;;N;;;;;
+0C42;TELUGU VOWEL SIGN UU;Mc;0;L;;;;;N;;;;;
+0C43;TELUGU VOWEL SIGN VOCALIC R;Mc;0;L;;;;;N;;;;;
+0C44;TELUGU VOWEL SIGN VOCALIC RR;Mc;0;L;;;;;N;;;;;
+0C46;TELUGU VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;;
+0C47;TELUGU VOWEL SIGN EE;Mn;0;NSM;;;;;N;;;;;
+0C48;TELUGU VOWEL SIGN AI;Mn;0;NSM;0C46 0C56;;;;N;;;;;
+0C4A;TELUGU VOWEL SIGN O;Mn;0;NSM;;;;;N;;;;;
+0C4B;TELUGU VOWEL SIGN OO;Mn;0;NSM;;;;;N;;;;;
+0C4C;TELUGU VOWEL SIGN AU;Mn;0;NSM;;;;;N;;;;;
+0C4D;TELUGU SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+0C55;TELUGU LENGTH MARK;Mn;84;NSM;;;;;N;;;;;
+0C56;TELUGU AI LENGTH MARK;Mn;91;NSM;;;;;N;;;;;
+0C60;TELUGU LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
+0C61;TELUGU LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
+0C66;TELUGU DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+0C67;TELUGU DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+0C68;TELUGU DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+0C69;TELUGU DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+0C6A;TELUGU DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+0C6B;TELUGU DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+0C6C;TELUGU DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+0C6D;TELUGU DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+0C6E;TELUGU DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+0C6F;TELUGU DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+0C82;KANNADA SIGN ANUSVARA;Mc;0;L;;;;;N;;;;;
+0C83;KANNADA SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+0C85;KANNADA LETTER A;Lo;0;L;;;;;N;;;;;
+0C86;KANNADA LETTER AA;Lo;0;L;;;;;N;;;;;
+0C87;KANNADA LETTER I;Lo;0;L;;;;;N;;;;;
+0C88;KANNADA LETTER II;Lo;0;L;;;;;N;;;;;
+0C89;KANNADA LETTER U;Lo;0;L;;;;;N;;;;;
+0C8A;KANNADA LETTER UU;Lo;0;L;;;;;N;;;;;
+0C8B;KANNADA LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
+0C8C;KANNADA LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
+0C8E;KANNADA LETTER E;Lo;0;L;;;;;N;;;;;
+0C8F;KANNADA LETTER EE;Lo;0;L;;;;;N;;;;;
+0C90;KANNADA LETTER AI;Lo;0;L;;;;;N;;;;;
+0C92;KANNADA LETTER O;Lo;0;L;;;;;N;;;;;
+0C93;KANNADA LETTER OO;Lo;0;L;;;;;N;;;;;
+0C94;KANNADA LETTER AU;Lo;0;L;;;;;N;;;;;
+0C95;KANNADA LETTER KA;Lo;0;L;;;;;N;;;;;
+0C96;KANNADA LETTER KHA;Lo;0;L;;;;;N;;;;;
+0C97;KANNADA LETTER GA;Lo;0;L;;;;;N;;;;;
+0C98;KANNADA LETTER GHA;Lo;0;L;;;;;N;;;;;
+0C99;KANNADA LETTER NGA;Lo;0;L;;;;;N;;;;;
+0C9A;KANNADA LETTER CA;Lo;0;L;;;;;N;;;;;
+0C9B;KANNADA LETTER CHA;Lo;0;L;;;;;N;;;;;
+0C9C;KANNADA LETTER JA;Lo;0;L;;;;;N;;;;;
+0C9D;KANNADA LETTER JHA;Lo;0;L;;;;;N;;;;;
+0C9E;KANNADA LETTER NYA;Lo;0;L;;;;;N;;;;;
+0C9F;KANNADA LETTER TTA;Lo;0;L;;;;;N;;;;;
+0CA0;KANNADA LETTER TTHA;Lo;0;L;;;;;N;;;;;
+0CA1;KANNADA LETTER DDA;Lo;0;L;;;;;N;;;;;
+0CA2;KANNADA LETTER DDHA;Lo;0;L;;;;;N;;;;;
+0CA3;KANNADA LETTER NNA;Lo;0;L;;;;;N;;;;;
+0CA4;KANNADA LETTER TA;Lo;0;L;;;;;N;;;;;
+0CA5;KANNADA LETTER THA;Lo;0;L;;;;;N;;;;;
+0CA6;KANNADA LETTER DA;Lo;0;L;;;;;N;;;;;
+0CA7;KANNADA LETTER DHA;Lo;0;L;;;;;N;;;;;
+0CA8;KANNADA LETTER NA;Lo;0;L;;;;;N;;;;;
+0CAA;KANNADA LETTER PA;Lo;0;L;;;;;N;;;;;
+0CAB;KANNADA LETTER PHA;Lo;0;L;;;;;N;;;;;
+0CAC;KANNADA LETTER BA;Lo;0;L;;;;;N;;;;;
+0CAD;KANNADA LETTER BHA;Lo;0;L;;;;;N;;;;;
+0CAE;KANNADA LETTER MA;Lo;0;L;;;;;N;;;;;
+0CAF;KANNADA LETTER YA;Lo;0;L;;;;;N;;;;;
+0CB0;KANNADA LETTER RA;Lo;0;L;;;;;N;;;;;
+0CB1;KANNADA LETTER RRA;Lo;0;L;;;;;N;;;;;
+0CB2;KANNADA LETTER LA;Lo;0;L;;;;;N;;;;;
+0CB3;KANNADA LETTER LLA;Lo;0;L;;;;;N;;;;;
+0CB5;KANNADA LETTER VA;Lo;0;L;;;;;N;;;;;
+0CB6;KANNADA LETTER SHA;Lo;0;L;;;;;N;;;;;
+0CB7;KANNADA LETTER SSA;Lo;0;L;;;;;N;;;;;
+0CB8;KANNADA LETTER SA;Lo;0;L;;;;;N;;;;;
+0CB9;KANNADA LETTER HA;Lo;0;L;;;;;N;;;;;
+0CBE;KANNADA VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+0CBF;KANNADA VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
+0CC0;KANNADA VOWEL SIGN II;Mc;0;L;0CBF 0CD5;;;;N;;;;;
+0CC1;KANNADA VOWEL SIGN U;Mc;0;L;;;;;N;;;;;
+0CC2;KANNADA VOWEL SIGN UU;Mc;0;L;;;;;N;;;;;
+0CC3;KANNADA VOWEL SIGN VOCALIC R;Mc;0;L;;;;;N;;;;;
+0CC4;KANNADA VOWEL SIGN VOCALIC RR;Mc;0;L;;;;;N;;;;;
+0CC6;KANNADA VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;;
+0CC7;KANNADA VOWEL SIGN EE;Mc;0;L;0CC6 0CD5;;;;N;;;;;
+0CC8;KANNADA VOWEL SIGN AI;Mc;0;L;0CC6 0CD6;;;;N;;;;;
+0CCA;KANNADA VOWEL SIGN O;Mc;0;L;0CC6 0CC2;;;;N;;;;;
+0CCB;KANNADA VOWEL SIGN OO;Mc;0;L;0CCA 0CD5;;;;N;;;;;
+0CCC;KANNADA VOWEL SIGN AU;Mn;0;NSM;;;;;N;;;;;
+0CCD;KANNADA SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+0CD5;KANNADA LENGTH MARK;Mc;0;L;;;;;N;;;;;
+0CD6;KANNADA AI LENGTH MARK;Mc;0;L;;;;;N;;;;;
+0CDE;KANNADA LETTER FA;Lo;0;L;;;;;N;;;;;
+0CE0;KANNADA LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
+0CE1;KANNADA LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
+0CE6;KANNADA DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+0CE7;KANNADA DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+0CE8;KANNADA DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+0CE9;KANNADA DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+0CEA;KANNADA DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+0CEB;KANNADA DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+0CEC;KANNADA DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+0CED;KANNADA DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+0CEE;KANNADA DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+0CEF;KANNADA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+0D02;MALAYALAM SIGN ANUSVARA;Mc;0;L;;;;;N;;;;;
+0D03;MALAYALAM SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+0D05;MALAYALAM LETTER A;Lo;0;L;;;;;N;;;;;
+0D06;MALAYALAM LETTER AA;Lo;0;L;;;;;N;;;;;
+0D07;MALAYALAM LETTER I;Lo;0;L;;;;;N;;;;;
+0D08;MALAYALAM LETTER II;Lo;0;L;;;;;N;;;;;
+0D09;MALAYALAM LETTER U;Lo;0;L;;;;;N;;;;;
+0D0A;MALAYALAM LETTER UU;Lo;0;L;;;;;N;;;;;
+0D0B;MALAYALAM LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
+0D0C;MALAYALAM LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
+0D0E;MALAYALAM LETTER E;Lo;0;L;;;;;N;;;;;
+0D0F;MALAYALAM LETTER EE;Lo;0;L;;;;;N;;;;;
+0D10;MALAYALAM LETTER AI;Lo;0;L;;;;;N;;;;;
+0D12;MALAYALAM LETTER O;Lo;0;L;;;;;N;;;;;
+0D13;MALAYALAM LETTER OO;Lo;0;L;;;;;N;;;;;
+0D14;MALAYALAM LETTER AU;Lo;0;L;;;;;N;;;;;
+0D15;MALAYALAM LETTER KA;Lo;0;L;;;;;N;;;;;
+0D16;MALAYALAM LETTER KHA;Lo;0;L;;;;;N;;;;;
+0D17;MALAYALAM LETTER GA;Lo;0;L;;;;;N;;;;;
+0D18;MALAYALAM LETTER GHA;Lo;0;L;;;;;N;;;;;
+0D19;MALAYALAM LETTER NGA;Lo;0;L;;;;;N;;;;;
+0D1A;MALAYALAM LETTER CA;Lo;0;L;;;;;N;;;;;
+0D1B;MALAYALAM LETTER CHA;Lo;0;L;;;;;N;;;;;
+0D1C;MALAYALAM LETTER JA;Lo;0;L;;;;;N;;;;;
+0D1D;MALAYALAM LETTER JHA;Lo;0;L;;;;;N;;;;;
+0D1E;MALAYALAM LETTER NYA;Lo;0;L;;;;;N;;;;;
+0D1F;MALAYALAM LETTER TTA;Lo;0;L;;;;;N;;;;;
+0D20;MALAYALAM LETTER TTHA;Lo;0;L;;;;;N;;;;;
+0D21;MALAYALAM LETTER DDA;Lo;0;L;;;;;N;;;;;
+0D22;MALAYALAM LETTER DDHA;Lo;0;L;;;;;N;;;;;
+0D23;MALAYALAM LETTER NNA;Lo;0;L;;;;;N;;;;;
+0D24;MALAYALAM LETTER TA;Lo;0;L;;;;;N;;;;;
+0D25;MALAYALAM LETTER THA;Lo;0;L;;;;;N;;;;;
+0D26;MALAYALAM LETTER DA;Lo;0;L;;;;;N;;;;;
+0D27;MALAYALAM LETTER DHA;Lo;0;L;;;;;N;;;;;
+0D28;MALAYALAM LETTER NA;Lo;0;L;;;;;N;;;;;
+0D2A;MALAYALAM LETTER PA;Lo;0;L;;;;;N;;;;;
+0D2B;MALAYALAM LETTER PHA;Lo;0;L;;;;;N;;;;;
+0D2C;MALAYALAM LETTER BA;Lo;0;L;;;;;N;;;;;
+0D2D;MALAYALAM LETTER BHA;Lo;0;L;;;;;N;;;;;
+0D2E;MALAYALAM LETTER MA;Lo;0;L;;;;;N;;;;;
+0D2F;MALAYALAM LETTER YA;Lo;0;L;;;;;N;;;;;
+0D30;MALAYALAM LETTER RA;Lo;0;L;;;;;N;;;;;
+0D31;MALAYALAM LETTER RRA;Lo;0;L;;;;;N;;;;;
+0D32;MALAYALAM LETTER LA;Lo;0;L;;;;;N;;;;;
+0D33;MALAYALAM LETTER LLA;Lo;0;L;;;;;N;;;;;
+0D34;MALAYALAM LETTER LLLA;Lo;0;L;;;;;N;;;;;
+0D35;MALAYALAM LETTER VA;Lo;0;L;;;;;N;;;;;
+0D36;MALAYALAM LETTER SHA;Lo;0;L;;;;;N;;;;;
+0D37;MALAYALAM LETTER SSA;Lo;0;L;;;;;N;;;;;
+0D38;MALAYALAM LETTER SA;Lo;0;L;;;;;N;;;;;
+0D39;MALAYALAM LETTER HA;Lo;0;L;;;;;N;;;;;
+0D3E;MALAYALAM VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+0D3F;MALAYALAM VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
+0D40;MALAYALAM VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
+0D41;MALAYALAM VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+0D42;MALAYALAM VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
+0D43;MALAYALAM VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;;
+0D46;MALAYALAM VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
+0D47;MALAYALAM VOWEL SIGN EE;Mc;0;L;;;;;N;;;;;
+0D48;MALAYALAM VOWEL SIGN AI;Mc;0;L;;;;;N;;;;;
+0D4A;MALAYALAM VOWEL SIGN O;Mc;0;L;0D46 0D3E;;;;N;;;;;
+0D4B;MALAYALAM VOWEL SIGN OO;Mc;0;L;0D47 0D3E;;;;N;;;;;
+0D4C;MALAYALAM VOWEL SIGN AU;Mc;0;L;0D46 0D57;;;;N;;;;;
+0D4D;MALAYALAM SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+0D57;MALAYALAM AU LENGTH MARK;Mc;0;L;;;;;N;;;;;
+0D60;MALAYALAM LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
+0D61;MALAYALAM LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
+0D66;MALAYALAM DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+0D67;MALAYALAM DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+0D68;MALAYALAM DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+0D69;MALAYALAM DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+0D6A;MALAYALAM DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+0D6B;MALAYALAM DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+0D6C;MALAYALAM DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+0D6D;MALAYALAM DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+0D6E;MALAYALAM DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+0D6F;MALAYALAM DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+0D82;SINHALA SIGN ANUSVARAYA;Mc;0;L;;;;;N;;;;;
+0D83;SINHALA SIGN VISARGAYA;Mc;0;L;;;;;N;;;;;
+0D85;SINHALA LETTER AYANNA;Lo;0;L;;;;;N;;;;;
+0D86;SINHALA LETTER AAYANNA;Lo;0;L;;;;;N;;;;;
+0D87;SINHALA LETTER AEYANNA;Lo;0;L;;;;;N;;;;;
+0D88;SINHALA LETTER AEEYANNA;Lo;0;L;;;;;N;;;;;
+0D89;SINHALA LETTER IYANNA;Lo;0;L;;;;;N;;;;;
+0D8A;SINHALA LETTER IIYANNA;Lo;0;L;;;;;N;;;;;
+0D8B;SINHALA LETTER UYANNA;Lo;0;L;;;;;N;;;;;
+0D8C;SINHALA LETTER UUYANNA;Lo;0;L;;;;;N;;;;;
+0D8D;SINHALA LETTER IRUYANNA;Lo;0;L;;;;;N;;;;;
+0D8E;SINHALA LETTER IRUUYANNA;Lo;0;L;;;;;N;;;;;
+0D8F;SINHALA LETTER ILUYANNA;Lo;0;L;;;;;N;;;;;
+0D90;SINHALA LETTER ILUUYANNA;Lo;0;L;;;;;N;;;;;
+0D91;SINHALA LETTER EYANNA;Lo;0;L;;;;;N;;;;;
+0D92;SINHALA LETTER EEYANNA;Lo;0;L;;;;;N;;;;;
+0D93;SINHALA LETTER AIYANNA;Lo;0;L;;;;;N;;;;;
+0D94;SINHALA LETTER OYANNA;Lo;0;L;;;;;N;;;;;
+0D95;SINHALA LETTER OOYANNA;Lo;0;L;;;;;N;;;;;
+0D96;SINHALA LETTER AUYANNA;Lo;0;L;;;;;N;;;;;
+0D9A;SINHALA LETTER ALPAPRAANA KAYANNA;Lo;0;L;;;;;N;;;;;
+0D9B;SINHALA LETTER MAHAAPRAANA KAYANNA;Lo;0;L;;;;;N;;;;;
+0D9C;SINHALA LETTER ALPAPRAANA GAYANNA;Lo;0;L;;;;;N;;;;;
+0D9D;SINHALA LETTER MAHAAPRAANA GAYANNA;Lo;0;L;;;;;N;;;;;
+0D9E;SINHALA LETTER KANTAJA NAASIKYAYA;Lo;0;L;;;;;N;;;;;
+0D9F;SINHALA LETTER SANYAKA GAYANNA;Lo;0;L;;;;;N;;;;;
+0DA0;SINHALA LETTER ALPAPRAANA CAYANNA;Lo;0;L;;;;;N;;;;;
+0DA1;SINHALA LETTER MAHAAPRAANA CAYANNA;Lo;0;L;;;;;N;;;;;
+0DA2;SINHALA LETTER ALPAPRAANA JAYANNA;Lo;0;L;;;;;N;;;;;
+0DA3;SINHALA LETTER MAHAAPRAANA JAYANNA;Lo;0;L;;;;;N;;;;;
+0DA4;SINHALA LETTER TAALUJA NAASIKYAYA;Lo;0;L;;;;;N;;;;;
+0DA5;SINHALA LETTER TAALUJA SANYOOGA NAAKSIKYAYA;Lo;0;L;;;;;N;;;;;
+0DA6;SINHALA LETTER SANYAKA JAYANNA;Lo;0;L;;;;;N;;;;;
+0DA7;SINHALA LETTER ALPAPRAANA TTAYANNA;Lo;0;L;;;;;N;;;;;
+0DA8;SINHALA LETTER MAHAAPRAANA TTAYANNA;Lo;0;L;;;;;N;;;;;
+0DA9;SINHALA LETTER ALPAPRAANA DDAYANNA;Lo;0;L;;;;;N;;;;;
+0DAA;SINHALA LETTER MAHAAPRAANA DDAYANNA;Lo;0;L;;;;;N;;;;;
+0DAB;SINHALA LETTER MUURDHAJA NAYANNA;Lo;0;L;;;;;N;;;;;
+0DAC;SINHALA LETTER SANYAKA DDAYANNA;Lo;0;L;;;;;N;;;;;
+0DAD;SINHALA LETTER ALPAPRAANA TAYANNA;Lo;0;L;;;;;N;;;;;
+0DAE;SINHALA LETTER MAHAAPRAANA TAYANNA;Lo;0;L;;;;;N;;;;;
+0DAF;SINHALA LETTER ALPAPRAANA DAYANNA;Lo;0;L;;;;;N;;;;;
+0DB0;SINHALA LETTER MAHAAPRAANA DAYANNA;Lo;0;L;;;;;N;;;;;
+0DB1;SINHALA LETTER DANTAJA NAYANNA;Lo;0;L;;;;;N;;;;;
+0DB3;SINHALA LETTER SANYAKA DAYANNA;Lo;0;L;;;;;N;;;;;
+0DB4;SINHALA LETTER ALPAPRAANA PAYANNA;Lo;0;L;;;;;N;;;;;
+0DB5;SINHALA LETTER MAHAAPRAANA PAYANNA;Lo;0;L;;;;;N;;;;;
+0DB6;SINHALA LETTER ALPAPRAANA BAYANNA;Lo;0;L;;;;;N;;;;;
+0DB7;SINHALA LETTER MAHAAPRAANA BAYANNA;Lo;0;L;;;;;N;;;;;
+0DB8;SINHALA LETTER MAYANNA;Lo;0;L;;;;;N;;;;;
+0DB9;SINHALA LETTER AMBA BAYANNA;Lo;0;L;;;;;N;;;;;
+0DBA;SINHALA LETTER YAYANNA;Lo;0;L;;;;;N;;;;;
+0DBB;SINHALA LETTER RAYANNA;Lo;0;L;;;;;N;;;;;
+0DBD;SINHALA LETTER DANTAJA LAYANNA;Lo;0;L;;;;;N;;;;;
+0DC0;SINHALA LETTER VAYANNA;Lo;0;L;;;;;N;;;;;
+0DC1;SINHALA LETTER TAALUJA SAYANNA;Lo;0;L;;;;;N;;;;;
+0DC2;SINHALA LETTER MUURDHAJA SAYANNA;Lo;0;L;;;;;N;;;;;
+0DC3;SINHALA LETTER DANTAJA SAYANNA;Lo;0;L;;;;;N;;;;;
+0DC4;SINHALA LETTER HAYANNA;Lo;0;L;;;;;N;;;;;
+0DC5;SINHALA LETTER MUURDHAJA LAYANNA;Lo;0;L;;;;;N;;;;;
+0DC6;SINHALA LETTER FAYANNA;Lo;0;L;;;;;N;;;;;
+0DCA;SINHALA SIGN AL-LAKUNA;Mn;9;NSM;;;;;N;;;;;
+0DCF;SINHALA VOWEL SIGN AELA-PILLA;Mc;0;L;;;;;N;;;;;
+0DD0;SINHALA VOWEL SIGN KETTI AEDA-PILLA;Mc;0;L;;;;;N;;;;;
+0DD1;SINHALA VOWEL SIGN DIGA AEDA-PILLA;Mc;0;L;;;;;N;;;;;
+0DD2;SINHALA VOWEL SIGN KETTI IS-PILLA;Mn;0;NSM;;;;;N;;;;;
+0DD3;SINHALA VOWEL SIGN DIGA IS-PILLA;Mn;0;NSM;;;;;N;;;;;
+0DD4;SINHALA VOWEL SIGN KETTI PAA-PILLA;Mn;0;NSM;;;;;N;;;;;
+0DD6;SINHALA VOWEL SIGN DIGA PAA-PILLA;Mn;0;NSM;;;;;N;;;;;
+0DD8;SINHALA VOWEL SIGN GAETTA-PILLA;Mc;0;L;;;;;N;;;;;
+0DD9;SINHALA VOWEL SIGN KOMBUVA;Mc;0;L;;;;;N;;;;;
+0DDA;SINHALA VOWEL SIGN DIGA KOMBUVA;Mc;0;L;0DD9 0DCA;;;;N;;;;;
+0DDB;SINHALA VOWEL SIGN KOMBU DEKA;Mc;0;L;;;;;N;;;;;
+0DDC;SINHALA VOWEL SIGN KOMBUVA HAA AELA-PILLA;Mc;0;L;0DD9 0DCF;;;;N;;;;;
+0DDD;SINHALA VOWEL SIGN KOMBUVA HAA DIGA AELA-PILLA;Mc;0;L;0DDC 0DCA;;;;N;;;;;
+0DDE;SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA;Mc;0;L;0DD9 0DDF;;;;N;;;;;
+0DDF;SINHALA VOWEL SIGN GAYANUKITTA;Mc;0;L;;;;;N;;;;;
+0DF2;SINHALA VOWEL SIGN DIGA GAETTA-PILLA;Mc;0;L;;;;;N;;;;;
+0DF3;SINHALA VOWEL SIGN DIGA GAYANUKITTA;Mc;0;L;;;;;N;;;;;
+0DF4;SINHALA PUNCTUATION KUNDDALIYA;Po;0;L;;;;;N;;;;;
+0E01;THAI CHARACTER KO KAI;Lo;0;L;;;;;N;THAI LETTER KO KAI;;;;
+0E02;THAI CHARACTER KHO KHAI;Lo;0;L;;;;;N;THAI LETTER KHO KHAI;;;;
+0E03;THAI CHARACTER KHO KHUAT;Lo;0;L;;;;;N;THAI LETTER KHO KHUAT;;;;
+0E04;THAI CHARACTER KHO KHWAI;Lo;0;L;;;;;N;THAI LETTER KHO KHWAI;;;;
+0E05;THAI CHARACTER KHO KHON;Lo;0;L;;;;;N;THAI LETTER KHO KHON;;;;
+0E06;THAI CHARACTER KHO RAKHANG;Lo;0;L;;;;;N;THAI LETTER KHO RAKHANG;;;;
+0E07;THAI CHARACTER NGO NGU;Lo;0;L;;;;;N;THAI LETTER NGO NGU;;;;
+0E08;THAI CHARACTER CHO CHAN;Lo;0;L;;;;;N;THAI LETTER CHO CHAN;;;;
+0E09;THAI CHARACTER CHO CHING;Lo;0;L;;;;;N;THAI LETTER CHO CHING;;;;
+0E0A;THAI CHARACTER CHO CHANG;Lo;0;L;;;;;N;THAI LETTER CHO CHANG;;;;
+0E0B;THAI CHARACTER SO SO;Lo;0;L;;;;;N;THAI LETTER SO SO;;;;
+0E0C;THAI CHARACTER CHO CHOE;Lo;0;L;;;;;N;THAI LETTER CHO CHOE;;;;
+0E0D;THAI CHARACTER YO YING;Lo;0;L;;;;;N;THAI LETTER YO YING;;;;
+0E0E;THAI CHARACTER DO CHADA;Lo;0;L;;;;;N;THAI LETTER DO CHADA;;;;
+0E0F;THAI CHARACTER TO PATAK;Lo;0;L;;;;;N;THAI LETTER TO PATAK;;;;
+0E10;THAI CHARACTER THO THAN;Lo;0;L;;;;;N;THAI LETTER THO THAN;;;;
+0E11;THAI CHARACTER THO NANGMONTHO;Lo;0;L;;;;;N;THAI LETTER THO NANGMONTHO;;;;
+0E12;THAI CHARACTER THO PHUTHAO;Lo;0;L;;;;;N;THAI LETTER THO PHUTHAO;;;;
+0E13;THAI CHARACTER NO NEN;Lo;0;L;;;;;N;THAI LETTER NO NEN;;;;
+0E14;THAI CHARACTER DO DEK;Lo;0;L;;;;;N;THAI LETTER DO DEK;;;;
+0E15;THAI CHARACTER TO TAO;Lo;0;L;;;;;N;THAI LETTER TO TAO;;;;
+0E16;THAI CHARACTER THO THUNG;Lo;0;L;;;;;N;THAI LETTER THO THUNG;;;;
+0E17;THAI CHARACTER THO THAHAN;Lo;0;L;;;;;N;THAI LETTER THO THAHAN;;;;
+0E18;THAI CHARACTER THO THONG;Lo;0;L;;;;;N;THAI LETTER THO THONG;;;;
+0E19;THAI CHARACTER NO NU;Lo;0;L;;;;;N;THAI LETTER NO NU;;;;
+0E1A;THAI CHARACTER BO BAIMAI;Lo;0;L;;;;;N;THAI LETTER BO BAIMAI;;;;
+0E1B;THAI CHARACTER PO PLA;Lo;0;L;;;;;N;THAI LETTER PO PLA;;;;
+0E1C;THAI CHARACTER PHO PHUNG;Lo;0;L;;;;;N;THAI LETTER PHO PHUNG;;;;
+0E1D;THAI CHARACTER FO FA;Lo;0;L;;;;;N;THAI LETTER FO FA;;;;
+0E1E;THAI CHARACTER PHO PHAN;Lo;0;L;;;;;N;THAI LETTER PHO PHAN;;;;
+0E1F;THAI CHARACTER FO FAN;Lo;0;L;;;;;N;THAI LETTER FO FAN;;;;
+0E20;THAI CHARACTER PHO SAMPHAO;Lo;0;L;;;;;N;THAI LETTER PHO SAMPHAO;;;;
+0E21;THAI CHARACTER MO MA;Lo;0;L;;;;;N;THAI LETTER MO MA;;;;
+0E22;THAI CHARACTER YO YAK;Lo;0;L;;;;;N;THAI LETTER YO YAK;;;;
+0E23;THAI CHARACTER RO RUA;Lo;0;L;;;;;N;THAI LETTER RO RUA;;;;
+0E24;THAI CHARACTER RU;Lo;0;L;;;;;N;THAI LETTER RU;;;;
+0E25;THAI CHARACTER LO LING;Lo;0;L;;;;;N;THAI LETTER LO LING;;;;
+0E26;THAI CHARACTER LU;Lo;0;L;;;;;N;THAI LETTER LU;;;;
+0E27;THAI CHARACTER WO WAEN;Lo;0;L;;;;;N;THAI LETTER WO WAEN;;;;
+0E28;THAI CHARACTER SO SALA;Lo;0;L;;;;;N;THAI LETTER SO SALA;;;;
+0E29;THAI CHARACTER SO RUSI;Lo;0;L;;;;;N;THAI LETTER SO RUSI;;;;
+0E2A;THAI CHARACTER SO SUA;Lo;0;L;;;;;N;THAI LETTER SO SUA;;;;
+0E2B;THAI CHARACTER HO HIP;Lo;0;L;;;;;N;THAI LETTER HO HIP;;;;
+0E2C;THAI CHARACTER LO CHULA;Lo;0;L;;;;;N;THAI LETTER LO CHULA;;;;
+0E2D;THAI CHARACTER O ANG;Lo;0;L;;;;;N;THAI LETTER O ANG;;;;
+0E2E;THAI CHARACTER HO NOKHUK;Lo;0;L;;;;;N;THAI LETTER HO NOK HUK;;;;
+0E2F;THAI CHARACTER PAIYANNOI;Lo;0;L;;;;;N;THAI PAI YAN NOI;paiyan noi;;;
+0E30;THAI CHARACTER SARA A;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA A;;;;
+0E31;THAI CHARACTER MAI HAN-AKAT;Mn;0;NSM;;;;;N;THAI VOWEL SIGN MAI HAN-AKAT;;;;
+0E32;THAI CHARACTER SARA AA;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA AA;;;;
+0E33;THAI CHARACTER SARA AM;Lo;0;L;<compat> 0E4D 0E32;;;;N;THAI VOWEL SIGN SARA AM;;;;
+0E34;THAI CHARACTER SARA I;Mn;0;NSM;;;;;N;THAI VOWEL SIGN SARA I;;;;
+0E35;THAI CHARACTER SARA II;Mn;0;NSM;;;;;N;THAI VOWEL SIGN SARA II;;;;
+0E36;THAI CHARACTER SARA UE;Mn;0;NSM;;;;;N;THAI VOWEL SIGN SARA UE;;;;
+0E37;THAI CHARACTER SARA UEE;Mn;0;NSM;;;;;N;THAI VOWEL SIGN SARA UEE;sara uue;;;
+0E38;THAI CHARACTER SARA U;Mn;103;NSM;;;;;N;THAI VOWEL SIGN SARA U;;;;
+0E39;THAI CHARACTER SARA UU;Mn;103;NSM;;;;;N;THAI VOWEL SIGN SARA UU;;;;
+0E3A;THAI CHARACTER PHINTHU;Mn;9;NSM;;;;;N;THAI VOWEL SIGN PHINTHU;;;;
+0E3F;THAI CURRENCY SYMBOL BAHT;Sc;0;ET;;;;;N;THAI BAHT SIGN;;;;
+0E40;THAI CHARACTER SARA E;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA E;;;;
+0E41;THAI CHARACTER SARA AE;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA AE;;;;
+0E42;THAI CHARACTER SARA O;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA O;;;;
+0E43;THAI CHARACTER SARA AI MAIMUAN;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA MAI MUAN;sara ai mai muan;;;
+0E44;THAI CHARACTER SARA AI MAIMALAI;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA MAI MALAI;sara ai mai malai;;;
+0E45;THAI CHARACTER LAKKHANGYAO;Lo;0;L;;;;;N;THAI LAK KHANG YAO;lakkhang yao;;;
+0E46;THAI CHARACTER MAIYAMOK;Lm;0;L;;;;;N;THAI MAI YAMOK;mai yamok;;;
+0E47;THAI CHARACTER MAITAIKHU;Mn;0;NSM;;;;;N;THAI VOWEL SIGN MAI TAI KHU;mai taikhu;;;
+0E48;THAI CHARACTER MAI EK;Mn;107;NSM;;;;;N;THAI TONE MAI EK;;;;
+0E49;THAI CHARACTER MAI THO;Mn;107;NSM;;;;;N;THAI TONE MAI THO;;;;
+0E4A;THAI CHARACTER MAI TRI;Mn;107;NSM;;;;;N;THAI TONE MAI TRI;;;;
+0E4B;THAI CHARACTER MAI CHATTAWA;Mn;107;NSM;;;;;N;THAI TONE MAI CHATTAWA;;;;
+0E4C;THAI CHARACTER THANTHAKHAT;Mn;0;NSM;;;;;N;THAI THANTHAKHAT;;;;
+0E4D;THAI CHARACTER NIKHAHIT;Mn;0;NSM;;;;;N;THAI NIKKHAHIT;nikkhahit;;;
+0E4E;THAI CHARACTER YAMAKKAN;Mn;0;NSM;;;;;N;THAI YAMAKKAN;;;;
+0E4F;THAI CHARACTER FONGMAN;Po;0;L;;;;;N;THAI FONGMAN;;;;
+0E50;THAI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+0E51;THAI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+0E52;THAI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+0E53;THAI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+0E54;THAI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+0E55;THAI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+0E56;THAI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+0E57;THAI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+0E58;THAI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+0E59;THAI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+0E5A;THAI CHARACTER ANGKHANKHU;Po;0;L;;;;;N;THAI ANGKHANKHU;;;;
+0E5B;THAI CHARACTER KHOMUT;Po;0;L;;;;;N;THAI KHOMUT;;;;
+0E81;LAO LETTER KO;Lo;0;L;;;;;N;;;;;
+0E82;LAO LETTER KHO SUNG;Lo;0;L;;;;;N;;;;;
+0E84;LAO LETTER KHO TAM;Lo;0;L;;;;;N;;;;;
+0E87;LAO LETTER NGO;Lo;0;L;;;;;N;;;;;
+0E88;LAO LETTER CO;Lo;0;L;;;;;N;;;;;
+0E8A;LAO LETTER SO TAM;Lo;0;L;;;;;N;;;;;
+0E8D;LAO LETTER NYO;Lo;0;L;;;;;N;;;;;
+0E94;LAO LETTER DO;Lo;0;L;;;;;N;;;;;
+0E95;LAO LETTER TO;Lo;0;L;;;;;N;;;;;
+0E96;LAO LETTER THO SUNG;Lo;0;L;;;;;N;;;;;
+0E97;LAO LETTER THO TAM;Lo;0;L;;;;;N;;;;;
+0E99;LAO LETTER NO;Lo;0;L;;;;;N;;;;;
+0E9A;LAO LETTER BO;Lo;0;L;;;;;N;;;;;
+0E9B;LAO LETTER PO;Lo;0;L;;;;;N;;;;;
+0E9C;LAO LETTER PHO SUNG;Lo;0;L;;;;;N;;;;;
+0E9D;LAO LETTER FO TAM;Lo;0;L;;;;;N;;;;;
+0E9E;LAO LETTER PHO TAM;Lo;0;L;;;;;N;;;;;
+0E9F;LAO LETTER FO SUNG;Lo;0;L;;;;;N;;;;;
+0EA1;LAO LETTER MO;Lo;0;L;;;;;N;;;;;
+0EA2;LAO LETTER YO;Lo;0;L;;;;;N;;;;;
+0EA3;LAO LETTER LO LING;Lo;0;L;;;;;N;;;;;
+0EA5;LAO LETTER LO LOOT;Lo;0;L;;;;;N;;;;;
+0EA7;LAO LETTER WO;Lo;0;L;;;;;N;;;;;
+0EAA;LAO LETTER SO SUNG;Lo;0;L;;;;;N;;;;;
+0EAB;LAO LETTER HO SUNG;Lo;0;L;;;;;N;;;;;
+0EAD;LAO LETTER O;Lo;0;L;;;;;N;;;;;
+0EAE;LAO LETTER HO TAM;Lo;0;L;;;;;N;;;;;
+0EAF;LAO ELLIPSIS;Lo;0;L;;;;;N;;;;;
+0EB0;LAO VOWEL SIGN A;Lo;0;L;;;;;N;;;;;
+0EB1;LAO VOWEL SIGN MAI KAN;Mn;0;NSM;;;;;N;;;;;
+0EB2;LAO VOWEL SIGN AA;Lo;0;L;;;;;N;;;;;
+0EB3;LAO VOWEL SIGN AM;Lo;0;L;<compat> 0ECD 0EB2;;;;N;;;;;
+0EB4;LAO VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
+0EB5;LAO VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;;
+0EB6;LAO VOWEL SIGN Y;Mn;0;NSM;;;;;N;;;;;
+0EB7;LAO VOWEL SIGN YY;Mn;0;NSM;;;;;N;;;;;
+0EB8;LAO VOWEL SIGN U;Mn;118;NSM;;;;;N;;;;;
+0EB9;LAO VOWEL SIGN UU;Mn;118;NSM;;;;;N;;;;;
+0EBB;LAO VOWEL SIGN MAI KON;Mn;0;NSM;;;;;N;;;;;
+0EBC;LAO SEMIVOWEL SIGN LO;Mn;0;NSM;;;;;N;;;;;
+0EBD;LAO SEMIVOWEL SIGN NYO;Lo;0;L;;;;;N;;;;;
+0EC0;LAO VOWEL SIGN E;Lo;0;L;;;;;N;;;;;
+0EC1;LAO VOWEL SIGN EI;Lo;0;L;;;;;N;;;;;
+0EC2;LAO VOWEL SIGN O;Lo;0;L;;;;;N;;;;;
+0EC3;LAO VOWEL SIGN AY;Lo;0;L;;;;;N;;;;;
+0EC4;LAO VOWEL SIGN AI;Lo;0;L;;;;;N;;;;;
+0EC6;LAO KO LA;Lm;0;L;;;;;N;;;;;
+0EC8;LAO TONE MAI EK;Mn;122;NSM;;;;;N;;;;;
+0EC9;LAO TONE MAI THO;Mn;122;NSM;;;;;N;;;;;
+0ECA;LAO TONE MAI TI;Mn;122;NSM;;;;;N;;;;;
+0ECB;LAO TONE MAI CATAWA;Mn;122;NSM;;;;;N;;;;;
+0ECC;LAO CANCELLATION MARK;Mn;0;NSM;;;;;N;;;;;
+0ECD;LAO NIGGAHITA;Mn;0;NSM;;;;;N;;;;;
+0ED0;LAO DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+0ED1;LAO DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+0ED2;LAO DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+0ED3;LAO DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+0ED4;LAO DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+0ED5;LAO DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+0ED6;LAO DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+0ED7;LAO DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+0ED8;LAO DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+0ED9;LAO DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+0EDC;LAO HO NO;Lo;0;L;<compat> 0EAB 0E99;;;;N;;;;;
+0EDD;LAO HO MO;Lo;0;L;<compat> 0EAB 0EA1;;;;N;;;;;
+0F00;TIBETAN SYLLABLE OM;Lo;0;L;;;;;N;;;;;
+0F01;TIBETAN MARK GTER YIG MGO TRUNCATED A;So;0;L;;;;;N;;ter yik go a thung;;;
+0F02;TIBETAN MARK GTER YIG MGO -UM RNAM BCAD MA;So;0;L;;;;;N;;ter yik go wum nam chey ma;;;
+0F03;TIBETAN MARK GTER YIG MGO -UM GTER TSHEG MA;So;0;L;;;;;N;;ter yik go wum ter tsek ma;;;
+0F04;TIBETAN MARK INITIAL YIG MGO MDUN MA;Po;0;L;;;;;N;TIBETAN SINGLE ORNAMENT;yik go dun ma;;;
+0F05;TIBETAN MARK CLOSING YIG MGO SGAB MA;Po;0;L;;;;;N;;yik go kab ma;;;
+0F06;TIBETAN MARK CARET YIG MGO PHUR SHAD MA;Po;0;L;;;;;N;;yik go pur shey ma;;;
+0F07;TIBETAN MARK YIG MGO TSHEG SHAD MA;Po;0;L;;;;;N;;yik go tsek shey ma;;;
+0F08;TIBETAN MARK SBRUL SHAD;Po;0;L;;;;;N;TIBETAN RGYANSHAD;drul shey;;;
+0F09;TIBETAN MARK BSKUR YIG MGO;Po;0;L;;;;;N;;kur yik go;;;
+0F0A;TIBETAN MARK BKA- SHOG YIG MGO;Po;0;L;;;;;N;;ka sho yik go;;;
+0F0B;TIBETAN MARK INTERSYLLABIC TSHEG;Po;0;L;;;;;N;TIBETAN TSEG;tsek;;;
+0F0C;TIBETAN MARK DELIMITER TSHEG BSTAR;Po;0;L;<noBreak> 0F0B;;;;N;;tsek tar;;;
+0F0D;TIBETAN MARK SHAD;Po;0;L;;;;;N;TIBETAN SHAD;shey;;;
+0F0E;TIBETAN MARK NYIS SHAD;Po;0;L;;;;;N;TIBETAN DOUBLE SHAD;nyi shey;;;
+0F0F;TIBETAN MARK TSHEG SHAD;Po;0;L;;;;;N;;tsek shey;;;
+0F10;TIBETAN MARK NYIS TSHEG SHAD;Po;0;L;;;;;N;;nyi tsek shey;;;
+0F11;TIBETAN MARK RIN CHEN SPUNGS SHAD;Po;0;L;;;;;N;TIBETAN RINCHANPHUNGSHAD;rinchen pung shey;;;
+0F12;TIBETAN MARK RGYA GRAM SHAD;Po;0;L;;;;;N;;gya tram shey;;;
+0F13;TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN;So;0;L;;;;;N;;dzu ta me long chen;;;
+0F14;TIBETAN MARK GTER TSHEG;So;0;L;;;;;N;TIBETAN COMMA;ter tsek;;;
+0F15;TIBETAN LOGOTYPE SIGN CHAD RTAGS;So;0;L;;;;;N;;che ta;;;
+0F16;TIBETAN LOGOTYPE SIGN LHAG RTAGS;So;0;L;;;;;N;;hlak ta;;;
+0F17;TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS;So;0;L;;;;;N;;trachen char ta;;;
+0F18;TIBETAN ASTROLOGICAL SIGN -KHYUD PA;Mn;220;NSM;;;;;N;;kyu pa;;;
+0F19;TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS;Mn;220;NSM;;;;;N;;dong tsu;;;
+0F1A;TIBETAN SIGN RDEL DKAR GCIG;So;0;L;;;;;N;;deka chig;;;
+0F1B;TIBETAN SIGN RDEL DKAR GNYIS;So;0;L;;;;;N;;deka nyi;;;
+0F1C;TIBETAN SIGN RDEL DKAR GSUM;So;0;L;;;;;N;;deka sum;;;
+0F1D;TIBETAN SIGN RDEL NAG GCIG;So;0;L;;;;;N;;dena chig;;;
+0F1E;TIBETAN SIGN RDEL NAG GNYIS;So;0;L;;;;;N;;dena nyi;;;
+0F1F;TIBETAN SIGN RDEL DKAR RDEL NAG;So;0;L;;;;;N;;deka dena;;;
+0F20;TIBETAN DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+0F21;TIBETAN DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+0F22;TIBETAN DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+0F23;TIBETAN DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+0F24;TIBETAN DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+0F25;TIBETAN DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+0F26;TIBETAN DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+0F27;TIBETAN DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+0F28;TIBETAN DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+0F29;TIBETAN DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+0F2A;TIBETAN DIGIT HALF ONE;No;0;L;;;;;N;;;;;
+0F2B;TIBETAN DIGIT HALF TWO;No;0;L;;;;;N;;;;;
+0F2C;TIBETAN DIGIT HALF THREE;No;0;L;;;;;N;;;;;
+0F2D;TIBETAN DIGIT HALF FOUR;No;0;L;;;;;N;;;;;
+0F2E;TIBETAN DIGIT HALF FIVE;No;0;L;;;;;N;;;;;
+0F2F;TIBETAN DIGIT HALF SIX;No;0;L;;;;;N;;;;;
+0F30;TIBETAN DIGIT HALF SEVEN;No;0;L;;;;;N;;;;;
+0F31;TIBETAN DIGIT HALF EIGHT;No;0;L;;;;;N;;;;;
+0F32;TIBETAN DIGIT HALF NINE;No;0;L;;;;;N;;;;;
+0F33;TIBETAN DIGIT HALF ZERO;No;0;L;;;;;N;;;;;
+0F34;TIBETAN MARK BSDUS RTAGS;So;0;L;;;;;N;;du ta;;;
+0F35;TIBETAN MARK NGAS BZUNG NYI ZLA;Mn;220;NSM;;;;;N;TIBETAN HONORIFIC UNDER RING;nge zung nyi da;;;
+0F36;TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN;So;0;L;;;;;N;;dzu ta shi mig chen;;;
+0F37;TIBETAN MARK NGAS BZUNG SGOR RTAGS;Mn;220;NSM;;;;;N;TIBETAN UNDER RING;nge zung gor ta;;;
+0F38;TIBETAN MARK CHE MGO;So;0;L;;;;;N;;che go;;;
+0F39;TIBETAN MARK TSA -PHRU;Mn;216;NSM;;;;;N;TIBETAN LENITION MARK;tsa tru;;;
+0F3A;TIBETAN MARK GUG RTAGS GYON;Ps;0;ON;;;;;N;;gug ta yun;;;
+0F3B;TIBETAN MARK GUG RTAGS GYAS;Pe;0;ON;;;;;N;;gug ta ye;;;
+0F3C;TIBETAN MARK ANG KHANG GYON;Ps;0;ON;;;;;N;TIBETAN LEFT BRACE;ang kang yun;;;
+0F3D;TIBETAN MARK ANG KHANG GYAS;Pe;0;ON;;;;;N;TIBETAN RIGHT BRACE;ang kang ye;;;
+0F3E;TIBETAN SIGN YAR TSHES;Mc;0;L;;;;;N;;yar tse;;;
+0F3F;TIBETAN SIGN MAR TSHES;Mc;0;L;;;;;N;;mar tse;;;
+0F40;TIBETAN LETTER KA;Lo;0;L;;;;;N;;;;;
+0F41;TIBETAN LETTER KHA;Lo;0;L;;;;;N;;;;;
+0F42;TIBETAN LETTER GA;Lo;0;L;;;;;N;;;;;
+0F43;TIBETAN LETTER GHA;Lo;0;L;0F42 0FB7;;;;N;;;;;
+0F44;TIBETAN LETTER NGA;Lo;0;L;;;;;N;;;;;
+0F45;TIBETAN LETTER CA;Lo;0;L;;;;;N;;;;;
+0F46;TIBETAN LETTER CHA;Lo;0;L;;;;;N;;;;;
+0F47;TIBETAN LETTER JA;Lo;0;L;;;;;N;;;;;
+0F49;TIBETAN LETTER NYA;Lo;0;L;;;;;N;;;;;
+0F4A;TIBETAN LETTER TTA;Lo;0;L;;;;;N;TIBETAN LETTER REVERSED TA;;;;
+0F4B;TIBETAN LETTER TTHA;Lo;0;L;;;;;N;TIBETAN LETTER REVERSED THA;;;;
+0F4C;TIBETAN LETTER DDA;Lo;0;L;;;;;N;TIBETAN LETTER REVERSED DA;;;;
+0F4D;TIBETAN LETTER DDHA;Lo;0;L;0F4C 0FB7;;;;N;;;;;
+0F4E;TIBETAN LETTER NNA;Lo;0;L;;;;;N;TIBETAN LETTER REVERSED NA;;;;
+0F4F;TIBETAN LETTER TA;Lo;0;L;;;;;N;;;;;
+0F50;TIBETAN LETTER THA;Lo;0;L;;;;;N;;;;;
+0F51;TIBETAN LETTER DA;Lo;0;L;;;;;N;;;;;
+0F52;TIBETAN LETTER DHA;Lo;0;L;0F51 0FB7;;;;N;;;;;
+0F53;TIBETAN LETTER NA;Lo;0;L;;;;;N;;;;;
+0F54;TIBETAN LETTER PA;Lo;0;L;;;;;N;;;;;
+0F55;TIBETAN LETTER PHA;Lo;0;L;;;;;N;;;;;
+0F56;TIBETAN LETTER BA;Lo;0;L;;;;;N;;;;;
+0F57;TIBETAN LETTER BHA;Lo;0;L;0F56 0FB7;;;;N;;;;;
+0F58;TIBETAN LETTER MA;Lo;0;L;;;;;N;;;;;
+0F59;TIBETAN LETTER TSA;Lo;0;L;;;;;N;;;;;
+0F5A;TIBETAN LETTER TSHA;Lo;0;L;;;;;N;;;;;
+0F5B;TIBETAN LETTER DZA;Lo;0;L;;;;;N;;;;;
+0F5C;TIBETAN LETTER DZHA;Lo;0;L;0F5B 0FB7;;;;N;;;;;
+0F5D;TIBETAN LETTER WA;Lo;0;L;;;;;N;;;;;
+0F5E;TIBETAN LETTER ZHA;Lo;0;L;;;;;N;;;;;
+0F5F;TIBETAN LETTER ZA;Lo;0;L;;;;;N;;;;;
+0F60;TIBETAN LETTER -A;Lo;0;L;;;;;N;TIBETAN LETTER AA;;;;
+0F61;TIBETAN LETTER YA;Lo;0;L;;;;;N;;;;;
+0F62;TIBETAN LETTER RA;Lo;0;L;;;;;N;;*;;;
+0F63;TIBETAN LETTER LA;Lo;0;L;;;;;N;;;;;
+0F64;TIBETAN LETTER SHA;Lo;0;L;;;;;N;;;;;
+0F65;TIBETAN LETTER SSA;Lo;0;L;;;;;N;TIBETAN LETTER REVERSED SHA;;;;
+0F66;TIBETAN LETTER SA;Lo;0;L;;;;;N;;;;;
+0F67;TIBETAN LETTER HA;Lo;0;L;;;;;N;;;;;
+0F68;TIBETAN LETTER A;Lo;0;L;;;;;N;;;;;
+0F69;TIBETAN LETTER KSSA;Lo;0;L;0F40 0FB5;;;;N;;;;;
+0F6A;TIBETAN LETTER FIXED-FORM RA;Lo;0;L;;;;;N;;*;;;
+0F71;TIBETAN VOWEL SIGN AA;Mn;129;NSM;;;;;N;;;;;
+0F72;TIBETAN VOWEL SIGN I;Mn;130;NSM;;;;;N;;;;;
+0F73;TIBETAN VOWEL SIGN II;Mn;0;NSM;0F71 0F72;;;;N;;;;;
+0F74;TIBETAN VOWEL SIGN U;Mn;132;NSM;;;;;N;;;;;
+0F75;TIBETAN VOWEL SIGN UU;Mn;0;NSM;0F71 0F74;;;;N;;;;;
+0F76;TIBETAN VOWEL SIGN VOCALIC R;Mn;0;NSM;0FB2 0F80;;;;N;;;;;
+0F77;TIBETAN VOWEL SIGN VOCALIC RR;Mn;0;NSM;<compat> 0FB2 0F81;;;;N;;;;;
+0F78;TIBETAN VOWEL SIGN VOCALIC L;Mn;0;NSM;0FB3 0F80;;;;N;;;;;
+0F79;TIBETAN VOWEL SIGN VOCALIC LL;Mn;0;NSM;<compat> 0FB3 0F81;;;;N;;;;;
+0F7A;TIBETAN VOWEL SIGN E;Mn;130;NSM;;;;;N;;;;;
+0F7B;TIBETAN VOWEL SIGN EE;Mn;130;NSM;;;;;N;TIBETAN VOWEL SIGN AI;;;;
+0F7C;TIBETAN VOWEL SIGN O;Mn;130;NSM;;;;;N;;;;;
+0F7D;TIBETAN VOWEL SIGN OO;Mn;130;NSM;;;;;N;TIBETAN VOWEL SIGN AU;;;;
+0F7E;TIBETAN SIGN RJES SU NGA RO;Mn;0;NSM;;;;;N;TIBETAN ANUSVARA;je su nga ro;;;
+0F7F;TIBETAN SIGN RNAM BCAD;Mc;0;L;;;;;N;TIBETAN VISARGA;nam chey;;;
+0F80;TIBETAN VOWEL SIGN REVERSED I;Mn;130;NSM;;;;;N;TIBETAN VOWEL SIGN SHORT I;;;;
+0F81;TIBETAN VOWEL SIGN REVERSED II;Mn;0;NSM;0F71 0F80;;;;N;;;;;
+0F82;TIBETAN SIGN NYI ZLA NAA DA;Mn;230;NSM;;;;;N;TIBETAN CANDRABINDU WITH ORNAMENT;nyi da na da;;;
+0F83;TIBETAN SIGN SNA LDAN;Mn;230;NSM;;;;;N;TIBETAN CANDRABINDU;nan de;;;
+0F84;TIBETAN MARK HALANTA;Mn;9;NSM;;;;;N;TIBETAN VIRAMA;;;;
+0F85;TIBETAN MARK PALUTA;Po;0;L;;;;;N;TIBETAN CHUCHENYIGE;;;;
+0F86;TIBETAN SIGN LCI RTAGS;Mn;230;NSM;;;;;N;;ji ta;;;
+0F87;TIBETAN SIGN YANG RTAGS;Mn;230;NSM;;;;;N;;yang ta;;;
+0F88;TIBETAN SIGN LCE TSA CAN;Lo;0;L;;;;;N;;che tsa chen;;;
+0F89;TIBETAN SIGN MCHU CAN;Lo;0;L;;;;;N;;chu chen;;;
+0F8A;TIBETAN SIGN GRU CAN RGYINGS;Lo;0;L;;;;;N;;tru chen ging;;;
+0F8B;TIBETAN SIGN GRU MED RGYINGS;Lo;0;L;;;;;N;;tru me ging;;;
+0F90;TIBETAN SUBJOINED LETTER KA;Mn;0;NSM;;;;;N;;;;;
+0F91;TIBETAN SUBJOINED LETTER KHA;Mn;0;NSM;;;;;N;;;;;
+0F92;TIBETAN SUBJOINED LETTER GA;Mn;0;NSM;;;;;N;;;;;
+0F93;TIBETAN SUBJOINED LETTER GHA;Mn;0;NSM;0F92 0FB7;;;;N;;;;;
+0F94;TIBETAN SUBJOINED LETTER NGA;Mn;0;NSM;;;;;N;;;;;
+0F95;TIBETAN SUBJOINED LETTER CA;Mn;0;NSM;;;;;N;;;;;
+0F96;TIBETAN SUBJOINED LETTER CHA;Mn;0;NSM;;;;;N;;;;;
+0F97;TIBETAN SUBJOINED LETTER JA;Mn;0;NSM;;;;;N;;;;;
+0F99;TIBETAN SUBJOINED LETTER NYA;Mn;0;NSM;;;;;N;;;;;
+0F9A;TIBETAN SUBJOINED LETTER TTA;Mn;0;NSM;;;;;N;;;;;
+0F9B;TIBETAN SUBJOINED LETTER TTHA;Mn;0;NSM;;;;;N;;;;;
+0F9C;TIBETAN SUBJOINED LETTER DDA;Mn;0;NSM;;;;;N;;;;;
+0F9D;TIBETAN SUBJOINED LETTER DDHA;Mn;0;NSM;0F9C 0FB7;;;;N;;;;;
+0F9E;TIBETAN SUBJOINED LETTER NNA;Mn;0;NSM;;;;;N;;;;;
+0F9F;TIBETAN SUBJOINED LETTER TA;Mn;0;NSM;;;;;N;;;;;
+0FA0;TIBETAN SUBJOINED LETTER THA;Mn;0;NSM;;;;;N;;;;;
+0FA1;TIBETAN SUBJOINED LETTER DA;Mn;0;NSM;;;;;N;;;;;
+0FA2;TIBETAN SUBJOINED LETTER DHA;Mn;0;NSM;0FA1 0FB7;;;;N;;;;;
+0FA3;TIBETAN SUBJOINED LETTER NA;Mn;0;NSM;;;;;N;;;;;
+0FA4;TIBETAN SUBJOINED LETTER PA;Mn;0;NSM;;;;;N;;;;;
+0FA5;TIBETAN SUBJOINED LETTER PHA;Mn;0;NSM;;;;;N;;;;;
+0FA6;TIBETAN SUBJOINED LETTER BA;Mn;0;NSM;;;;;N;;;;;
+0FA7;TIBETAN SUBJOINED LETTER BHA;Mn;0;NSM;0FA6 0FB7;;;;N;;;;;
+0FA8;TIBETAN SUBJOINED LETTER MA;Mn;0;NSM;;;;;N;;;;;
+0FA9;TIBETAN SUBJOINED LETTER TSA;Mn;0;NSM;;;;;N;;;;;
+0FAA;TIBETAN SUBJOINED LETTER TSHA;Mn;0;NSM;;;;;N;;;;;
+0FAB;TIBETAN SUBJOINED LETTER DZA;Mn;0;NSM;;;;;N;;;;;
+0FAC;TIBETAN SUBJOINED LETTER DZHA;Mn;0;NSM;0FAB 0FB7;;;;N;;;;;
+0FAD;TIBETAN SUBJOINED LETTER WA;Mn;0;NSM;;;;;N;;*;;;
+0FAE;TIBETAN SUBJOINED LETTER ZHA;Mn;0;NSM;;;;;N;;;;;
+0FAF;TIBETAN SUBJOINED LETTER ZA;Mn;0;NSM;;;;;N;;;;;
+0FB0;TIBETAN SUBJOINED LETTER -A;Mn;0;NSM;;;;;N;;;;;
+0FB1;TIBETAN SUBJOINED LETTER YA;Mn;0;NSM;;;;;N;;*;;;
+0FB2;TIBETAN SUBJOINED LETTER RA;Mn;0;NSM;;;;;N;;*;;;
+0FB3;TIBETAN SUBJOINED LETTER LA;Mn;0;NSM;;;;;N;;;;;
+0FB4;TIBETAN SUBJOINED LETTER SHA;Mn;0;NSM;;;;;N;;;;;
+0FB5;TIBETAN SUBJOINED LETTER SSA;Mn;0;NSM;;;;;N;;;;;
+0FB6;TIBETAN SUBJOINED LETTER SA;Mn;0;NSM;;;;;N;;;;;
+0FB7;TIBETAN SUBJOINED LETTER HA;Mn;0;NSM;;;;;N;;;;;
+0FB8;TIBETAN SUBJOINED LETTER A;Mn;0;NSM;;;;;N;;;;;
+0FB9;TIBETAN SUBJOINED LETTER KSSA;Mn;0;NSM;0F90 0FB5;;;;N;;;;;
+0FBA;TIBETAN SUBJOINED LETTER FIXED-FORM WA;Mn;0;NSM;;;;;N;;*;;;
+0FBB;TIBETAN SUBJOINED LETTER FIXED-FORM YA;Mn;0;NSM;;;;;N;;*;;;
+0FBC;TIBETAN SUBJOINED LETTER FIXED-FORM RA;Mn;0;NSM;;;;;N;;*;;;
+0FBE;TIBETAN KU RU KHA;So;0;L;;;;;N;;kuruka;;;
+0FBF;TIBETAN KU RU KHA BZHI MIG CAN;So;0;L;;;;;N;;kuruka shi mik chen;;;
+0FC0;TIBETAN CANTILLATION SIGN HEAVY BEAT;So;0;L;;;;;N;;;;;
+0FC1;TIBETAN CANTILLATION SIGN LIGHT BEAT;So;0;L;;;;;N;;;;;
+0FC2;TIBETAN CANTILLATION SIGN CANG TE-U;So;0;L;;;;;N;;chang tyu;;;
+0FC3;TIBETAN CANTILLATION SIGN SBUB -CHAL;So;0;L;;;;;N;;bub chey;;;
+0FC4;TIBETAN SYMBOL DRIL BU;So;0;L;;;;;N;;drilbu;;;
+0FC5;TIBETAN SYMBOL RDO RJE;So;0;L;;;;;N;;dorje;;;
+0FC6;TIBETAN SYMBOL PADMA GDAN;Mn;220;NSM;;;;;N;;pema den;;;
+0FC7;TIBETAN SYMBOL RDO RJE RGYA GRAM;So;0;L;;;;;N;;dorje gya dram;;;
+0FC8;TIBETAN SYMBOL PHUR PA;So;0;L;;;;;N;;phurba;;;
+0FC9;TIBETAN SYMBOL NOR BU;So;0;L;;;;;N;;norbu;;;
+0FCA;TIBETAN SYMBOL NOR BU NYIS -KHYIL;So;0;L;;;;;N;;norbu nyi khyi;;;
+0FCB;TIBETAN SYMBOL NOR BU GSUM -KHYIL;So;0;L;;;;;N;;norbu sum khyi;;;
+0FCC;TIBETAN SYMBOL NOR BU BZHI -KHYIL;So;0;L;;;;;N;;norbu shi khyi;;;
+0FCF;TIBETAN SIGN RDEL NAG GSUM;So;0;L;;;;;N;;;;;
+1000;MYANMAR LETTER KA;Lo;0;L;;;;;N;;;;;
+1001;MYANMAR LETTER KHA;Lo;0;L;;;;;N;;;;;
+1002;MYANMAR LETTER GA;Lo;0;L;;;;;N;;;;;
+1003;MYANMAR LETTER GHA;Lo;0;L;;;;;N;;;;;
+1004;MYANMAR LETTER NGA;Lo;0;L;;;;;N;;;;;
+1005;MYANMAR LETTER CA;Lo;0;L;;;;;N;;;;;
+1006;MYANMAR LETTER CHA;Lo;0;L;;;;;N;;;;;
+1007;MYANMAR LETTER JA;Lo;0;L;;;;;N;;;;;
+1008;MYANMAR LETTER JHA;Lo;0;L;;;;;N;;;;;
+1009;MYANMAR LETTER NYA;Lo;0;L;;;;;N;;;;;
+100A;MYANMAR LETTER NNYA;Lo;0;L;;;;;N;;;;;
+100B;MYANMAR LETTER TTA;Lo;0;L;;;;;N;;;;;
+100C;MYANMAR LETTER TTHA;Lo;0;L;;;;;N;;;;;
+100D;MYANMAR LETTER DDA;Lo;0;L;;;;;N;;;;;
+100E;MYANMAR LETTER DDHA;Lo;0;L;;;;;N;;;;;
+100F;MYANMAR LETTER NNA;Lo;0;L;;;;;N;;;;;
+1010;MYANMAR LETTER TA;Lo;0;L;;;;;N;;;;;
+1011;MYANMAR LETTER THA;Lo;0;L;;;;;N;;;;;
+1012;MYANMAR LETTER DA;Lo;0;L;;;;;N;;;;;
+1013;MYANMAR LETTER DHA;Lo;0;L;;;;;N;;;;;
+1014;MYANMAR LETTER NA;Lo;0;L;;;;;N;;;;;
+1015;MYANMAR LETTER PA;Lo;0;L;;;;;N;;;;;
+1016;MYANMAR LETTER PHA;Lo;0;L;;;;;N;;;;;
+1017;MYANMAR LETTER BA;Lo;0;L;;;;;N;;;;;
+1018;MYANMAR LETTER BHA;Lo;0;L;;;;;N;;;;;
+1019;MYANMAR LETTER MA;Lo;0;L;;;;;N;;;;;
+101A;MYANMAR LETTER YA;Lo;0;L;;;;;N;;;;;
+101B;MYANMAR LETTER RA;Lo;0;L;;;;;N;;;;;
+101C;MYANMAR LETTER LA;Lo;0;L;;;;;N;;;;;
+101D;MYANMAR LETTER WA;Lo;0;L;;;;;N;;;;;
+101E;MYANMAR LETTER SA;Lo;0;L;;;;;N;;;;;
+101F;MYANMAR LETTER HA;Lo;0;L;;;;;N;;;;;
+1020;MYANMAR LETTER LLA;Lo;0;L;;;;;N;;;;;
+1021;MYANMAR LETTER A;Lo;0;L;;;;;N;;;;;
+1023;MYANMAR LETTER I;Lo;0;L;;;;;N;;;;;
+1024;MYANMAR LETTER II;Lo;0;L;;;;;N;;;;;
+1025;MYANMAR LETTER U;Lo;0;L;;;;;N;;;;;
+1026;MYANMAR LETTER UU;Lo;0;L;1025 102E;;;;N;;;;;
+1027;MYANMAR LETTER E;Lo;0;L;;;;;N;;;;;
+1029;MYANMAR LETTER O;Lo;0;L;;;;;N;;;;;
+102A;MYANMAR LETTER AU;Lo;0;L;;;;;N;;;;;
+102C;MYANMAR VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+102D;MYANMAR VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
+102E;MYANMAR VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;;
+102F;MYANMAR VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+1030;MYANMAR VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
+1031;MYANMAR VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
+1032;MYANMAR VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;;
+1036;MYANMAR SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
+1037;MYANMAR SIGN DOT BELOW;Mn;7;NSM;;;;;N;;;;;
+1038;MYANMAR SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+1039;MYANMAR SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+1040;MYANMAR DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+1041;MYANMAR DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+1042;MYANMAR DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+1043;MYANMAR DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+1044;MYANMAR DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+1045;MYANMAR DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+1046;MYANMAR DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+1047;MYANMAR DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+1048;MYANMAR DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+1049;MYANMAR DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+104A;MYANMAR SIGN LITTLE SECTION;Po;0;L;;;;;N;;;;;
+104B;MYANMAR SIGN SECTION;Po;0;L;;;;;N;;;;;
+104C;MYANMAR SYMBOL LOCATIVE;Po;0;L;;;;;N;;;;;
+104D;MYANMAR SYMBOL COMPLETED;Po;0;L;;;;;N;;;;;
+104E;MYANMAR SYMBOL AFOREMENTIONED;Po;0;L;;;;;N;;;;;
+104F;MYANMAR SYMBOL GENITIVE;Po;0;L;;;;;N;;;;;
+1050;MYANMAR LETTER SHA;Lo;0;L;;;;;N;;;;;
+1051;MYANMAR LETTER SSA;Lo;0;L;;;;;N;;;;;
+1052;MYANMAR LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
+1053;MYANMAR LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
+1054;MYANMAR LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
+1055;MYANMAR LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
+1056;MYANMAR VOWEL SIGN VOCALIC R;Mc;0;L;;;;;N;;;;;
+1057;MYANMAR VOWEL SIGN VOCALIC RR;Mc;0;L;;;;;N;;;;;
+1058;MYANMAR VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;;
+1059;MYANMAR VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;;
+10A0;GEORGIAN CAPITAL LETTER AN;Lu;0;L;;;;;N;;Khutsuri;;;
+10A1;GEORGIAN CAPITAL LETTER BAN;Lu;0;L;;;;;N;;Khutsuri;;;
+10A2;GEORGIAN CAPITAL LETTER GAN;Lu;0;L;;;;;N;;Khutsuri;;;
+10A3;GEORGIAN CAPITAL LETTER DON;Lu;0;L;;;;;N;;Khutsuri;;;
+10A4;GEORGIAN CAPITAL LETTER EN;Lu;0;L;;;;;N;;Khutsuri;;;
+10A5;GEORGIAN CAPITAL LETTER VIN;Lu;0;L;;;;;N;;Khutsuri;;;
+10A6;GEORGIAN CAPITAL LETTER ZEN;Lu;0;L;;;;;N;;Khutsuri;;;
+10A7;GEORGIAN CAPITAL LETTER TAN;Lu;0;L;;;;;N;;Khutsuri;;;
+10A8;GEORGIAN CAPITAL LETTER IN;Lu;0;L;;;;;N;;Khutsuri;;;
+10A9;GEORGIAN CAPITAL LETTER KAN;Lu;0;L;;;;;N;;Khutsuri;;;
+10AA;GEORGIAN CAPITAL LETTER LAS;Lu;0;L;;;;;N;;Khutsuri;;;
+10AB;GEORGIAN CAPITAL LETTER MAN;Lu;0;L;;;;;N;;Khutsuri;;;
+10AC;GEORGIAN CAPITAL LETTER NAR;Lu;0;L;;;;;N;;Khutsuri;;;
+10AD;GEORGIAN CAPITAL LETTER ON;Lu;0;L;;;;;N;;Khutsuri;;;
+10AE;GEORGIAN CAPITAL LETTER PAR;Lu;0;L;;;;;N;;Khutsuri;;;
+10AF;GEORGIAN CAPITAL LETTER ZHAR;Lu;0;L;;;;;N;;Khutsuri;;;
+10B0;GEORGIAN CAPITAL LETTER RAE;Lu;0;L;;;;;N;;Khutsuri;;;
+10B1;GEORGIAN CAPITAL LETTER SAN;Lu;0;L;;;;;N;;Khutsuri;;;
+10B2;GEORGIAN CAPITAL LETTER TAR;Lu;0;L;;;;;N;;Khutsuri;;;
+10B3;GEORGIAN CAPITAL LETTER UN;Lu;0;L;;;;;N;;Khutsuri;;;
+10B4;GEORGIAN CAPITAL LETTER PHAR;Lu;0;L;;;;;N;;Khutsuri;;;
+10B5;GEORGIAN CAPITAL LETTER KHAR;Lu;0;L;;;;;N;;Khutsuri;;;
+10B6;GEORGIAN CAPITAL LETTER GHAN;Lu;0;L;;;;;N;;Khutsuri;;;
+10B7;GEORGIAN CAPITAL LETTER QAR;Lu;0;L;;;;;N;;Khutsuri;;;
+10B8;GEORGIAN CAPITAL LETTER SHIN;Lu;0;L;;;;;N;;Khutsuri;;;
+10B9;GEORGIAN CAPITAL LETTER CHIN;Lu;0;L;;;;;N;;Khutsuri;;;
+10BA;GEORGIAN CAPITAL LETTER CAN;Lu;0;L;;;;;N;;Khutsuri;;;
+10BB;GEORGIAN CAPITAL LETTER JIL;Lu;0;L;;;;;N;;Khutsuri;;;
+10BC;GEORGIAN CAPITAL LETTER CIL;Lu;0;L;;;;;N;;Khutsuri;;;
+10BD;GEORGIAN CAPITAL LETTER CHAR;Lu;0;L;;;;;N;;Khutsuri;;;
+10BE;GEORGIAN CAPITAL LETTER XAN;Lu;0;L;;;;;N;;Khutsuri;;;
+10BF;GEORGIAN CAPITAL LETTER JHAN;Lu;0;L;;;;;N;;Khutsuri;;;
+10C0;GEORGIAN CAPITAL LETTER HAE;Lu;0;L;;;;;N;;Khutsuri;;;
+10C1;GEORGIAN CAPITAL LETTER HE;Lu;0;L;;;;;N;;Khutsuri;;;
+10C2;GEORGIAN CAPITAL LETTER HIE;Lu;0;L;;;;;N;;Khutsuri;;;
+10C3;GEORGIAN CAPITAL LETTER WE;Lu;0;L;;;;;N;;Khutsuri;;;
+10C4;GEORGIAN CAPITAL LETTER HAR;Lu;0;L;;;;;N;;Khutsuri;;;
+10C5;GEORGIAN CAPITAL LETTER HOE;Lu;0;L;;;;;N;;Khutsuri;;;
+10D0;GEORGIAN LETTER AN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER AN;;;;
+10D1;GEORGIAN LETTER BAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER BAN;;;;
+10D2;GEORGIAN LETTER GAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER GAN;;;;
+10D3;GEORGIAN LETTER DON;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER DON;;;;
+10D4;GEORGIAN LETTER EN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER EN;;;;
+10D5;GEORGIAN LETTER VIN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER VIN;;;;
+10D6;GEORGIAN LETTER ZEN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER ZEN;;;;
+10D7;GEORGIAN LETTER TAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER TAN;;;;
+10D8;GEORGIAN LETTER IN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER IN;;;;
+10D9;GEORGIAN LETTER KAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER KAN;;;;
+10DA;GEORGIAN LETTER LAS;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER LAS;;;;
+10DB;GEORGIAN LETTER MAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER MAN;;;;
+10DC;GEORGIAN LETTER NAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER NAR;;;;
+10DD;GEORGIAN LETTER ON;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER ON;;;;
+10DE;GEORGIAN LETTER PAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER PAR;;;;
+10DF;GEORGIAN LETTER ZHAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER ZHAR;;;;
+10E0;GEORGIAN LETTER RAE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER RAE;;;;
+10E1;GEORGIAN LETTER SAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER SAN;;;;
+10E2;GEORGIAN LETTER TAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER TAR;;;;
+10E3;GEORGIAN LETTER UN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER UN;;;;
+10E4;GEORGIAN LETTER PHAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER PHAR;;;;
+10E5;GEORGIAN LETTER KHAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER KHAR;;;;
+10E6;GEORGIAN LETTER GHAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER GHAN;;;;
+10E7;GEORGIAN LETTER QAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER QAR;;;;
+10E8;GEORGIAN LETTER SHIN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER SHIN;;;;
+10E9;GEORGIAN LETTER CHIN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER CHIN;;;;
+10EA;GEORGIAN LETTER CAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER CAN;;;;
+10EB;GEORGIAN LETTER JIL;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER JIL;;;;
+10EC;GEORGIAN LETTER CIL;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER CIL;;;;
+10ED;GEORGIAN LETTER CHAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER CHAR;;;;
+10EE;GEORGIAN LETTER XAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER XAN;;;;
+10EF;GEORGIAN LETTER JHAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER JHAN;;;;
+10F0;GEORGIAN LETTER HAE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER HAE;;;;
+10F1;GEORGIAN LETTER HE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER HE;;;;
+10F2;GEORGIAN LETTER HIE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER HIE;;;;
+10F3;GEORGIAN LETTER WE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER WE;;;;
+10F4;GEORGIAN LETTER HAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER HAR;;;;
+10F5;GEORGIAN LETTER HOE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER HOE;;;;
+10F6;GEORGIAN LETTER FI;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER FI;;;;
+10FB;GEORGIAN PARAGRAPH SEPARATOR;Po;0;L;;;;;N;;;;;
+1100;HANGUL CHOSEONG KIYEOK;Lo;0;L;;;;;N;;g *;;;
+1101;HANGUL CHOSEONG SSANGKIYEOK;Lo;0;L;;;;;N;;gg *;;;
+1102;HANGUL CHOSEONG NIEUN;Lo;0;L;;;;;N;;n *;;;
+1103;HANGUL CHOSEONG TIKEUT;Lo;0;L;;;;;N;;d *;;;
+1104;HANGUL CHOSEONG SSANGTIKEUT;Lo;0;L;;;;;N;;dd *;;;
+1105;HANGUL CHOSEONG RIEUL;Lo;0;L;;;;;N;;r *;;;
+1106;HANGUL CHOSEONG MIEUM;Lo;0;L;;;;;N;;m *;;;
+1107;HANGUL CHOSEONG PIEUP;Lo;0;L;;;;;N;;b *;;;
+1108;HANGUL CHOSEONG SSANGPIEUP;Lo;0;L;;;;;N;;bb *;;;
+1109;HANGUL CHOSEONG SIOS;Lo;0;L;;;;;N;;s *;;;
+110A;HANGUL CHOSEONG SSANGSIOS;Lo;0;L;;;;;N;;ss *;;;
+110B;HANGUL CHOSEONG IEUNG;Lo;0;L;;;;;N;;;;;
+110C;HANGUL CHOSEONG CIEUC;Lo;0;L;;;;;N;;j *;;;
+110D;HANGUL CHOSEONG SSANGCIEUC;Lo;0;L;;;;;N;;jj *;;;
+110E;HANGUL CHOSEONG CHIEUCH;Lo;0;L;;;;;N;;c *;;;
+110F;HANGUL CHOSEONG KHIEUKH;Lo;0;L;;;;;N;;k *;;;
+1110;HANGUL CHOSEONG THIEUTH;Lo;0;L;;;;;N;;t *;;;
+1111;HANGUL CHOSEONG PHIEUPH;Lo;0;L;;;;;N;;p *;;;
+1112;HANGUL CHOSEONG HIEUH;Lo;0;L;;;;;N;;h *;;;
+1113;HANGUL CHOSEONG NIEUN-KIYEOK;Lo;0;L;;;;;N;;;;;
+1114;HANGUL CHOSEONG SSANGNIEUN;Lo;0;L;;;;;N;;;;;
+1115;HANGUL CHOSEONG NIEUN-TIKEUT;Lo;0;L;;;;;N;;;;;
+1116;HANGUL CHOSEONG NIEUN-PIEUP;Lo;0;L;;;;;N;;;;;
+1117;HANGUL CHOSEONG TIKEUT-KIYEOK;Lo;0;L;;;;;N;;;;;
+1118;HANGUL CHOSEONG RIEUL-NIEUN;Lo;0;L;;;;;N;;;;;
+1119;HANGUL CHOSEONG SSANGRIEUL;Lo;0;L;;;;;N;;;;;
+111A;HANGUL CHOSEONG RIEUL-HIEUH;Lo;0;L;;;;;N;;;;;
+111B;HANGUL CHOSEONG KAPYEOUNRIEUL;Lo;0;L;;;;;N;;;;;
+111C;HANGUL CHOSEONG MIEUM-PIEUP;Lo;0;L;;;;;N;;;;;
+111D;HANGUL CHOSEONG KAPYEOUNMIEUM;Lo;0;L;;;;;N;;;;;
+111E;HANGUL CHOSEONG PIEUP-KIYEOK;Lo;0;L;;;;;N;;;;;
+111F;HANGUL CHOSEONG PIEUP-NIEUN;Lo;0;L;;;;;N;;;;;
+1120;HANGUL CHOSEONG PIEUP-TIKEUT;Lo;0;L;;;;;N;;;;;
+1121;HANGUL CHOSEONG PIEUP-SIOS;Lo;0;L;;;;;N;;;;;
+1122;HANGUL CHOSEONG PIEUP-SIOS-KIYEOK;Lo;0;L;;;;;N;;;;;
+1123;HANGUL CHOSEONG PIEUP-SIOS-TIKEUT;Lo;0;L;;;;;N;;;;;
+1124;HANGUL CHOSEONG PIEUP-SIOS-PIEUP;Lo;0;L;;;;;N;;;;;
+1125;HANGUL CHOSEONG PIEUP-SSANGSIOS;Lo;0;L;;;;;N;;;;;
+1126;HANGUL CHOSEONG PIEUP-SIOS-CIEUC;Lo;0;L;;;;;N;;;;;
+1127;HANGUL CHOSEONG PIEUP-CIEUC;Lo;0;L;;;;;N;;;;;
+1128;HANGUL CHOSEONG PIEUP-CHIEUCH;Lo;0;L;;;;;N;;;;;
+1129;HANGUL CHOSEONG PIEUP-THIEUTH;Lo;0;L;;;;;N;;;;;
+112A;HANGUL CHOSEONG PIEUP-PHIEUPH;Lo;0;L;;;;;N;;;;;
+112B;HANGUL CHOSEONG KAPYEOUNPIEUP;Lo;0;L;;;;;N;;;;;
+112C;HANGUL CHOSEONG KAPYEOUNSSANGPIEUP;Lo;0;L;;;;;N;;;;;
+112D;HANGUL CHOSEONG SIOS-KIYEOK;Lo;0;L;;;;;N;;;;;
+112E;HANGUL CHOSEONG SIOS-NIEUN;Lo;0;L;;;;;N;;;;;
+112F;HANGUL CHOSEONG SIOS-TIKEUT;Lo;0;L;;;;;N;;;;;
+1130;HANGUL CHOSEONG SIOS-RIEUL;Lo;0;L;;;;;N;;;;;
+1131;HANGUL CHOSEONG SIOS-MIEUM;Lo;0;L;;;;;N;;;;;
+1132;HANGUL CHOSEONG SIOS-PIEUP;Lo;0;L;;;;;N;;;;;
+1133;HANGUL CHOSEONG SIOS-PIEUP-KIYEOK;Lo;0;L;;;;;N;;;;;
+1134;HANGUL CHOSEONG SIOS-SSANGSIOS;Lo;0;L;;;;;N;;;;;
+1135;HANGUL CHOSEONG SIOS-IEUNG;Lo;0;L;;;;;N;;;;;
+1136;HANGUL CHOSEONG SIOS-CIEUC;Lo;0;L;;;;;N;;;;;
+1137;HANGUL CHOSEONG SIOS-CHIEUCH;Lo;0;L;;;;;N;;;;;
+1138;HANGUL CHOSEONG SIOS-KHIEUKH;Lo;0;L;;;;;N;;;;;
+1139;HANGUL CHOSEONG SIOS-THIEUTH;Lo;0;L;;;;;N;;;;;
+113A;HANGUL CHOSEONG SIOS-PHIEUPH;Lo;0;L;;;;;N;;;;;
+113B;HANGUL CHOSEONG SIOS-HIEUH;Lo;0;L;;;;;N;;;;;
+113C;HANGUL CHOSEONG CHITUEUMSIOS;Lo;0;L;;;;;N;;;;;
+113D;HANGUL CHOSEONG CHITUEUMSSANGSIOS;Lo;0;L;;;;;N;;;;;
+113E;HANGUL CHOSEONG CEONGCHIEUMSIOS;Lo;0;L;;;;;N;;;;;
+113F;HANGUL CHOSEONG CEONGCHIEUMSSANGSIOS;Lo;0;L;;;;;N;;;;;
+1140;HANGUL CHOSEONG PANSIOS;Lo;0;L;;;;;N;;;;;
+1141;HANGUL CHOSEONG IEUNG-KIYEOK;Lo;0;L;;;;;N;;;;;
+1142;HANGUL CHOSEONG IEUNG-TIKEUT;Lo;0;L;;;;;N;;;;;
+1143;HANGUL CHOSEONG IEUNG-MIEUM;Lo;0;L;;;;;N;;;;;
+1144;HANGUL CHOSEONG IEUNG-PIEUP;Lo;0;L;;;;;N;;;;;
+1145;HANGUL CHOSEONG IEUNG-SIOS;Lo;0;L;;;;;N;;;;;
+1146;HANGUL CHOSEONG IEUNG-PANSIOS;Lo;0;L;;;;;N;;;;;
+1147;HANGUL CHOSEONG SSANGIEUNG;Lo;0;L;;;;;N;;;;;
+1148;HANGUL CHOSEONG IEUNG-CIEUC;Lo;0;L;;;;;N;;;;;
+1149;HANGUL CHOSEONG IEUNG-CHIEUCH;Lo;0;L;;;;;N;;;;;
+114A;HANGUL CHOSEONG IEUNG-THIEUTH;Lo;0;L;;;;;N;;;;;
+114B;HANGUL CHOSEONG IEUNG-PHIEUPH;Lo;0;L;;;;;N;;;;;
+114C;HANGUL CHOSEONG YESIEUNG;Lo;0;L;;;;;N;;;;;
+114D;HANGUL CHOSEONG CIEUC-IEUNG;Lo;0;L;;;;;N;;;;;
+114E;HANGUL CHOSEONG CHITUEUMCIEUC;Lo;0;L;;;;;N;;;;;
+114F;HANGUL CHOSEONG CHITUEUMSSANGCIEUC;Lo;0;L;;;;;N;;;;;
+1150;HANGUL CHOSEONG CEONGCHIEUMCIEUC;Lo;0;L;;;;;N;;;;;
+1151;HANGUL CHOSEONG CEONGCHIEUMSSANGCIEUC;Lo;0;L;;;;;N;;;;;
+1152;HANGUL CHOSEONG CHIEUCH-KHIEUKH;Lo;0;L;;;;;N;;;;;
+1153;HANGUL CHOSEONG CHIEUCH-HIEUH;Lo;0;L;;;;;N;;;;;
+1154;HANGUL CHOSEONG CHITUEUMCHIEUCH;Lo;0;L;;;;;N;;;;;
+1155;HANGUL CHOSEONG CEONGCHIEUMCHIEUCH;Lo;0;L;;;;;N;;;;;
+1156;HANGUL CHOSEONG PHIEUPH-PIEUP;Lo;0;L;;;;;N;;;;;
+1157;HANGUL CHOSEONG KAPYEOUNPHIEUPH;Lo;0;L;;;;;N;;;;;
+1158;HANGUL CHOSEONG SSANGHIEUH;Lo;0;L;;;;;N;;;;;
+1159;HANGUL CHOSEONG YEORINHIEUH;Lo;0;L;;;;;N;;;;;
+115F;HANGUL CHOSEONG FILLER;Lo;0;L;;;;;N;;;;;
+1160;HANGUL JUNGSEONG FILLER;Lo;0;L;;;;;N;;;;;
+1161;HANGUL JUNGSEONG A;Lo;0;L;;;;;N;;;;;
+1162;HANGUL JUNGSEONG AE;Lo;0;L;;;;;N;;;;;
+1163;HANGUL JUNGSEONG YA;Lo;0;L;;;;;N;;;;;
+1164;HANGUL JUNGSEONG YAE;Lo;0;L;;;;;N;;;;;
+1165;HANGUL JUNGSEONG EO;Lo;0;L;;;;;N;;;;;
+1166;HANGUL JUNGSEONG E;Lo;0;L;;;;;N;;;;;
+1167;HANGUL JUNGSEONG YEO;Lo;0;L;;;;;N;;;;;
+1168;HANGUL JUNGSEONG YE;Lo;0;L;;;;;N;;;;;
+1169;HANGUL JUNGSEONG O;Lo;0;L;;;;;N;;;;;
+116A;HANGUL JUNGSEONG WA;Lo;0;L;;;;;N;;;;;
+116B;HANGUL JUNGSEONG WAE;Lo;0;L;;;;;N;;;;;
+116C;HANGUL JUNGSEONG OE;Lo;0;L;;;;;N;;;;;
+116D;HANGUL JUNGSEONG YO;Lo;0;L;;;;;N;;;;;
+116E;HANGUL JUNGSEONG U;Lo;0;L;;;;;N;;;;;
+116F;HANGUL JUNGSEONG WEO;Lo;0;L;;;;;N;;;;;
+1170;HANGUL JUNGSEONG WE;Lo;0;L;;;;;N;;;;;
+1171;HANGUL JUNGSEONG WI;Lo;0;L;;;;;N;;;;;
+1172;HANGUL JUNGSEONG YU;Lo;0;L;;;;;N;;;;;
+1173;HANGUL JUNGSEONG EU;Lo;0;L;;;;;N;;;;;
+1174;HANGUL JUNGSEONG YI;Lo;0;L;;;;;N;;;;;
+1175;HANGUL JUNGSEONG I;Lo;0;L;;;;;N;;;;;
+1176;HANGUL JUNGSEONG A-O;Lo;0;L;;;;;N;;;;;
+1177;HANGUL JUNGSEONG A-U;Lo;0;L;;;;;N;;;;;
+1178;HANGUL JUNGSEONG YA-O;Lo;0;L;;;;;N;;;;;
+1179;HANGUL JUNGSEONG YA-YO;Lo;0;L;;;;;N;;;;;
+117A;HANGUL JUNGSEONG EO-O;Lo;0;L;;;;;N;;;;;
+117B;HANGUL JUNGSEONG EO-U;Lo;0;L;;;;;N;;;;;
+117C;HANGUL JUNGSEONG EO-EU;Lo;0;L;;;;;N;;;;;
+117D;HANGUL JUNGSEONG YEO-O;Lo;0;L;;;;;N;;;;;
+117E;HANGUL JUNGSEONG YEO-U;Lo;0;L;;;;;N;;;;;
+117F;HANGUL JUNGSEONG O-EO;Lo;0;L;;;;;N;;;;;
+1180;HANGUL JUNGSEONG O-E;Lo;0;L;;;;;N;;;;;
+1181;HANGUL JUNGSEONG O-YE;Lo;0;L;;;;;N;;;;;
+1182;HANGUL JUNGSEONG O-O;Lo;0;L;;;;;N;;;;;
+1183;HANGUL JUNGSEONG O-U;Lo;0;L;;;;;N;;;;;
+1184;HANGUL JUNGSEONG YO-YA;Lo;0;L;;;;;N;;;;;
+1185;HANGUL JUNGSEONG YO-YAE;Lo;0;L;;;;;N;;;;;
+1186;HANGUL JUNGSEONG YO-YEO;Lo;0;L;;;;;N;;;;;
+1187;HANGUL JUNGSEONG YO-O;Lo;0;L;;;;;N;;;;;
+1188;HANGUL JUNGSEONG YO-I;Lo;0;L;;;;;N;;;;;
+1189;HANGUL JUNGSEONG U-A;Lo;0;L;;;;;N;;;;;
+118A;HANGUL JUNGSEONG U-AE;Lo;0;L;;;;;N;;;;;
+118B;HANGUL JUNGSEONG U-EO-EU;Lo;0;L;;;;;N;;;;;
+118C;HANGUL JUNGSEONG U-YE;Lo;0;L;;;;;N;;;;;
+118D;HANGUL JUNGSEONG U-U;Lo;0;L;;;;;N;;;;;
+118E;HANGUL JUNGSEONG YU-A;Lo;0;L;;;;;N;;;;;
+118F;HANGUL JUNGSEONG YU-EO;Lo;0;L;;;;;N;;;;;
+1190;HANGUL JUNGSEONG YU-E;Lo;0;L;;;;;N;;;;;
+1191;HANGUL JUNGSEONG YU-YEO;Lo;0;L;;;;;N;;;;;
+1192;HANGUL JUNGSEONG YU-YE;Lo;0;L;;;;;N;;;;;
+1193;HANGUL JUNGSEONG YU-U;Lo;0;L;;;;;N;;;;;
+1194;HANGUL JUNGSEONG YU-I;Lo;0;L;;;;;N;;;;;
+1195;HANGUL JUNGSEONG EU-U;Lo;0;L;;;;;N;;;;;
+1196;HANGUL JUNGSEONG EU-EU;Lo;0;L;;;;;N;;;;;
+1197;HANGUL JUNGSEONG YI-U;Lo;0;L;;;;;N;;;;;
+1198;HANGUL JUNGSEONG I-A;Lo;0;L;;;;;N;;;;;
+1199;HANGUL JUNGSEONG I-YA;Lo;0;L;;;;;N;;;;;
+119A;HANGUL JUNGSEONG I-O;Lo;0;L;;;;;N;;;;;
+119B;HANGUL JUNGSEONG I-U;Lo;0;L;;;;;N;;;;;
+119C;HANGUL JUNGSEONG I-EU;Lo;0;L;;;;;N;;;;;
+119D;HANGUL JUNGSEONG I-ARAEA;Lo;0;L;;;;;N;;;;;
+119E;HANGUL JUNGSEONG ARAEA;Lo;0;L;;;;;N;;;;;
+119F;HANGUL JUNGSEONG ARAEA-EO;Lo;0;L;;;;;N;;;;;
+11A0;HANGUL JUNGSEONG ARAEA-U;Lo;0;L;;;;;N;;;;;
+11A1;HANGUL JUNGSEONG ARAEA-I;Lo;0;L;;;;;N;;;;;
+11A2;HANGUL JUNGSEONG SSANGARAEA;Lo;0;L;;;;;N;;;;;
+11A8;HANGUL JONGSEONG KIYEOK;Lo;0;L;;;;;N;;g *;;;
+11A9;HANGUL JONGSEONG SSANGKIYEOK;Lo;0;L;;;;;N;;gg *;;;
+11AA;HANGUL JONGSEONG KIYEOK-SIOS;Lo;0;L;;;;;N;;gs *;;;
+11AB;HANGUL JONGSEONG NIEUN;Lo;0;L;;;;;N;;n *;;;
+11AC;HANGUL JONGSEONG NIEUN-CIEUC;Lo;0;L;;;;;N;;nj *;;;
+11AD;HANGUL JONGSEONG NIEUN-HIEUH;Lo;0;L;;;;;N;;nh *;;;
+11AE;HANGUL JONGSEONG TIKEUT;Lo;0;L;;;;;N;;d *;;;
+11AF;HANGUL JONGSEONG RIEUL;Lo;0;L;;;;;N;;l *;;;
+11B0;HANGUL JONGSEONG RIEUL-KIYEOK;Lo;0;L;;;;;N;;lg *;;;
+11B1;HANGUL JONGSEONG RIEUL-MIEUM;Lo;0;L;;;;;N;;lm *;;;
+11B2;HANGUL JONGSEONG RIEUL-PIEUP;Lo;0;L;;;;;N;;lb *;;;
+11B3;HANGUL JONGSEONG RIEUL-SIOS;Lo;0;L;;;;;N;;ls *;;;
+11B4;HANGUL JONGSEONG RIEUL-THIEUTH;Lo;0;L;;;;;N;;lt *;;;
+11B5;HANGUL JONGSEONG RIEUL-PHIEUPH;Lo;0;L;;;;;N;;lp *;;;
+11B6;HANGUL JONGSEONG RIEUL-HIEUH;Lo;0;L;;;;;N;;lh *;;;
+11B7;HANGUL JONGSEONG MIEUM;Lo;0;L;;;;;N;;m *;;;
+11B8;HANGUL JONGSEONG PIEUP;Lo;0;L;;;;;N;;b *;;;
+11B9;HANGUL JONGSEONG PIEUP-SIOS;Lo;0;L;;;;;N;;bs *;;;
+11BA;HANGUL JONGSEONG SIOS;Lo;0;L;;;;;N;;s *;;;
+11BB;HANGUL JONGSEONG SSANGSIOS;Lo;0;L;;;;;N;;ss *;;;
+11BC;HANGUL JONGSEONG IEUNG;Lo;0;L;;;;;N;;ng *;;;
+11BD;HANGUL JONGSEONG CIEUC;Lo;0;L;;;;;N;;j *;;;
+11BE;HANGUL JONGSEONG CHIEUCH;Lo;0;L;;;;;N;;c *;;;
+11BF;HANGUL JONGSEONG KHIEUKH;Lo;0;L;;;;;N;;k *;;;
+11C0;HANGUL JONGSEONG THIEUTH;Lo;0;L;;;;;N;;t *;;;
+11C1;HANGUL JONGSEONG PHIEUPH;Lo;0;L;;;;;N;;p *;;;
+11C2;HANGUL JONGSEONG HIEUH;Lo;0;L;;;;;N;;h *;;;
+11C3;HANGUL JONGSEONG KIYEOK-RIEUL;Lo;0;L;;;;;N;;;;;
+11C4;HANGUL JONGSEONG KIYEOK-SIOS-KIYEOK;Lo;0;L;;;;;N;;;;;
+11C5;HANGUL JONGSEONG NIEUN-KIYEOK;Lo;0;L;;;;;N;;;;;
+11C6;HANGUL JONGSEONG NIEUN-TIKEUT;Lo;0;L;;;;;N;;;;;
+11C7;HANGUL JONGSEONG NIEUN-SIOS;Lo;0;L;;;;;N;;;;;
+11C8;HANGUL JONGSEONG NIEUN-PANSIOS;Lo;0;L;;;;;N;;;;;
+11C9;HANGUL JONGSEONG NIEUN-THIEUTH;Lo;0;L;;;;;N;;;;;
+11CA;HANGUL JONGSEONG TIKEUT-KIYEOK;Lo;0;L;;;;;N;;;;;
+11CB;HANGUL JONGSEONG TIKEUT-RIEUL;Lo;0;L;;;;;N;;;;;
+11CC;HANGUL JONGSEONG RIEUL-KIYEOK-SIOS;Lo;0;L;;;;;N;;;;;
+11CD;HANGUL JONGSEONG RIEUL-NIEUN;Lo;0;L;;;;;N;;;;;
+11CE;HANGUL JONGSEONG RIEUL-TIKEUT;Lo;0;L;;;;;N;;;;;
+11CF;HANGUL JONGSEONG RIEUL-TIKEUT-HIEUH;Lo;0;L;;;;;N;;;;;
+11D0;HANGUL JONGSEONG SSANGRIEUL;Lo;0;L;;;;;N;;;;;
+11D1;HANGUL JONGSEONG RIEUL-MIEUM-KIYEOK;Lo;0;L;;;;;N;;;;;
+11D2;HANGUL JONGSEONG RIEUL-MIEUM-SIOS;Lo;0;L;;;;;N;;;;;
+11D3;HANGUL JONGSEONG RIEUL-PIEUP-SIOS;Lo;0;L;;;;;N;;;;;
+11D4;HANGUL JONGSEONG RIEUL-PIEUP-HIEUH;Lo;0;L;;;;;N;;;;;
+11D5;HANGUL JONGSEONG RIEUL-KAPYEOUNPIEUP;Lo;0;L;;;;;N;;;;;
+11D6;HANGUL JONGSEONG RIEUL-SSANGSIOS;Lo;0;L;;;;;N;;;;;
+11D7;HANGUL JONGSEONG RIEUL-PANSIOS;Lo;0;L;;;;;N;;;;;
+11D8;HANGUL JONGSEONG RIEUL-KHIEUKH;Lo;0;L;;;;;N;;;;;
+11D9;HANGUL JONGSEONG RIEUL-YEORINHIEUH;Lo;0;L;;;;;N;;;;;
+11DA;HANGUL JONGSEONG MIEUM-KIYEOK;Lo;0;L;;;;;N;;;;;
+11DB;HANGUL JONGSEONG MIEUM-RIEUL;Lo;0;L;;;;;N;;;;;
+11DC;HANGUL JONGSEONG MIEUM-PIEUP;Lo;0;L;;;;;N;;;;;
+11DD;HANGUL JONGSEONG MIEUM-SIOS;Lo;0;L;;;;;N;;;;;
+11DE;HANGUL JONGSEONG MIEUM-SSANGSIOS;Lo;0;L;;;;;N;;;;;
+11DF;HANGUL JONGSEONG MIEUM-PANSIOS;Lo;0;L;;;;;N;;;;;
+11E0;HANGUL JONGSEONG MIEUM-CHIEUCH;Lo;0;L;;;;;N;;;;;
+11E1;HANGUL JONGSEONG MIEUM-HIEUH;Lo;0;L;;;;;N;;;;;
+11E2;HANGUL JONGSEONG KAPYEOUNMIEUM;Lo;0;L;;;;;N;;;;;
+11E3;HANGUL JONGSEONG PIEUP-RIEUL;Lo;0;L;;;;;N;;;;;
+11E4;HANGUL JONGSEONG PIEUP-PHIEUPH;Lo;0;L;;;;;N;;;;;
+11E5;HANGUL JONGSEONG PIEUP-HIEUH;Lo;0;L;;;;;N;;;;;
+11E6;HANGUL JONGSEONG KAPYEOUNPIEUP;Lo;0;L;;;;;N;;;;;
+11E7;HANGUL JONGSEONG SIOS-KIYEOK;Lo;0;L;;;;;N;;;;;
+11E8;HANGUL JONGSEONG SIOS-TIKEUT;Lo;0;L;;;;;N;;;;;
+11E9;HANGUL JONGSEONG SIOS-RIEUL;Lo;0;L;;;;;N;;;;;
+11EA;HANGUL JONGSEONG SIOS-PIEUP;Lo;0;L;;;;;N;;;;;
+11EB;HANGUL JONGSEONG PANSIOS;Lo;0;L;;;;;N;;;;;
+11EC;HANGUL JONGSEONG IEUNG-KIYEOK;Lo;0;L;;;;;N;;;;;
+11ED;HANGUL JONGSEONG IEUNG-SSANGKIYEOK;Lo;0;L;;;;;N;;;;;
+11EE;HANGUL JONGSEONG SSANGIEUNG;Lo;0;L;;;;;N;;;;;
+11EF;HANGUL JONGSEONG IEUNG-KHIEUKH;Lo;0;L;;;;;N;;;;;
+11F0;HANGUL JONGSEONG YESIEUNG;Lo;0;L;;;;;N;;;;;
+11F1;HANGUL JONGSEONG YESIEUNG-SIOS;Lo;0;L;;;;;N;;;;;
+11F2;HANGUL JONGSEONG YESIEUNG-PANSIOS;Lo;0;L;;;;;N;;;;;
+11F3;HANGUL JONGSEONG PHIEUPH-PIEUP;Lo;0;L;;;;;N;;;;;
+11F4;HANGUL JONGSEONG KAPYEOUNPHIEUPH;Lo;0;L;;;;;N;;;;;
+11F5;HANGUL JONGSEONG HIEUH-NIEUN;Lo;0;L;;;;;N;;;;;
+11F6;HANGUL JONGSEONG HIEUH-RIEUL;Lo;0;L;;;;;N;;;;;
+11F7;HANGUL JONGSEONG HIEUH-MIEUM;Lo;0;L;;;;;N;;;;;
+11F8;HANGUL JONGSEONG HIEUH-PIEUP;Lo;0;L;;;;;N;;;;;
+11F9;HANGUL JONGSEONG YEORINHIEUH;Lo;0;L;;;;;N;;;;;
+1200;ETHIOPIC SYLLABLE HA;Lo;0;L;;;;;N;;;;;
+1201;ETHIOPIC SYLLABLE HU;Lo;0;L;;;;;N;;;;;
+1202;ETHIOPIC SYLLABLE HI;Lo;0;L;;;;;N;;;;;
+1203;ETHIOPIC SYLLABLE HAA;Lo;0;L;;;;;N;;;;;
+1204;ETHIOPIC SYLLABLE HEE;Lo;0;L;;;;;N;;;;;
+1205;ETHIOPIC SYLLABLE HE;Lo;0;L;;;;;N;;;;;
+1206;ETHIOPIC SYLLABLE HO;Lo;0;L;;;;;N;;;;;
+1208;ETHIOPIC SYLLABLE LA;Lo;0;L;;;;;N;;;;;
+1209;ETHIOPIC SYLLABLE LU;Lo;0;L;;;;;N;;;;;
+120A;ETHIOPIC SYLLABLE LI;Lo;0;L;;;;;N;;;;;
+120B;ETHIOPIC SYLLABLE LAA;Lo;0;L;;;;;N;;;;;
+120C;ETHIOPIC SYLLABLE LEE;Lo;0;L;;;;;N;;;;;
+120D;ETHIOPIC SYLLABLE LE;Lo;0;L;;;;;N;;;;;
+120E;ETHIOPIC SYLLABLE LO;Lo;0;L;;;;;N;;;;;
+120F;ETHIOPIC SYLLABLE LWA;Lo;0;L;;;;;N;;;;;
+1210;ETHIOPIC SYLLABLE HHA;Lo;0;L;;;;;N;;;;;
+1211;ETHIOPIC SYLLABLE HHU;Lo;0;L;;;;;N;;;;;
+1212;ETHIOPIC SYLLABLE HHI;Lo;0;L;;;;;N;;;;;
+1213;ETHIOPIC SYLLABLE HHAA;Lo;0;L;;;;;N;;;;;
+1214;ETHIOPIC SYLLABLE HHEE;Lo;0;L;;;;;N;;;;;
+1215;ETHIOPIC SYLLABLE HHE;Lo;0;L;;;;;N;;;;;
+1216;ETHIOPIC SYLLABLE HHO;Lo;0;L;;;;;N;;;;;
+1217;ETHIOPIC SYLLABLE HHWA;Lo;0;L;;;;;N;;;;;
+1218;ETHIOPIC SYLLABLE MA;Lo;0;L;;;;;N;;;;;
+1219;ETHIOPIC SYLLABLE MU;Lo;0;L;;;;;N;;;;;
+121A;ETHIOPIC SYLLABLE MI;Lo;0;L;;;;;N;;;;;
+121B;ETHIOPIC SYLLABLE MAA;Lo;0;L;;;;;N;;;;;
+121C;ETHIOPIC SYLLABLE MEE;Lo;0;L;;;;;N;;;;;
+121D;ETHIOPIC SYLLABLE ME;Lo;0;L;;;;;N;;;;;
+121E;ETHIOPIC SYLLABLE MO;Lo;0;L;;;;;N;;;;;
+121F;ETHIOPIC SYLLABLE MWA;Lo;0;L;;;;;N;;;;;
+1220;ETHIOPIC SYLLABLE SZA;Lo;0;L;;;;;N;;;;;
+1221;ETHIOPIC SYLLABLE SZU;Lo;0;L;;;;;N;;;;;
+1222;ETHIOPIC SYLLABLE SZI;Lo;0;L;;;;;N;;;;;
+1223;ETHIOPIC SYLLABLE SZAA;Lo;0;L;;;;;N;;;;;
+1224;ETHIOPIC SYLLABLE SZEE;Lo;0;L;;;;;N;;;;;
+1225;ETHIOPIC SYLLABLE SZE;Lo;0;L;;;;;N;;;;;
+1226;ETHIOPIC SYLLABLE SZO;Lo;0;L;;;;;N;;;;;
+1227;ETHIOPIC SYLLABLE SZWA;Lo;0;L;;;;;N;;;;;
+1228;ETHIOPIC SYLLABLE RA;Lo;0;L;;;;;N;;;;;
+1229;ETHIOPIC SYLLABLE RU;Lo;0;L;;;;;N;;;;;
+122A;ETHIOPIC SYLLABLE RI;Lo;0;L;;;;;N;;;;;
+122B;ETHIOPIC SYLLABLE RAA;Lo;0;L;;;;;N;;;;;
+122C;ETHIOPIC SYLLABLE REE;Lo;0;L;;;;;N;;;;;
+122D;ETHIOPIC SYLLABLE RE;Lo;0;L;;;;;N;;;;;
+122E;ETHIOPIC SYLLABLE RO;Lo;0;L;;;;;N;;;;;
+122F;ETHIOPIC SYLLABLE RWA;Lo;0;L;;;;;N;;;;;
+1230;ETHIOPIC SYLLABLE SA;Lo;0;L;;;;;N;;;;;
+1231;ETHIOPIC SYLLABLE SU;Lo;0;L;;;;;N;;;;;
+1232;ETHIOPIC SYLLABLE SI;Lo;0;L;;;;;N;;;;;
+1233;ETHIOPIC SYLLABLE SAA;Lo;0;L;;;;;N;;;;;
+1234;ETHIOPIC SYLLABLE SEE;Lo;0;L;;;;;N;;;;;
+1235;ETHIOPIC SYLLABLE SE;Lo;0;L;;;;;N;;;;;
+1236;ETHIOPIC SYLLABLE SO;Lo;0;L;;;;;N;;;;;
+1237;ETHIOPIC SYLLABLE SWA;Lo;0;L;;;;;N;;;;;
+1238;ETHIOPIC SYLLABLE SHA;Lo;0;L;;;;;N;;;;;
+1239;ETHIOPIC SYLLABLE SHU;Lo;0;L;;;;;N;;;;;
+123A;ETHIOPIC SYLLABLE SHI;Lo;0;L;;;;;N;;;;;
+123B;ETHIOPIC SYLLABLE SHAA;Lo;0;L;;;;;N;;;;;
+123C;ETHIOPIC SYLLABLE SHEE;Lo;0;L;;;;;N;;;;;
+123D;ETHIOPIC SYLLABLE SHE;Lo;0;L;;;;;N;;;;;
+123E;ETHIOPIC SYLLABLE SHO;Lo;0;L;;;;;N;;;;;
+123F;ETHIOPIC SYLLABLE SHWA;Lo;0;L;;;;;N;;;;;
+1240;ETHIOPIC SYLLABLE QA;Lo;0;L;;;;;N;;;;;
+1241;ETHIOPIC SYLLABLE QU;Lo;0;L;;;;;N;;;;;
+1242;ETHIOPIC SYLLABLE QI;Lo;0;L;;;;;N;;;;;
+1243;ETHIOPIC SYLLABLE QAA;Lo;0;L;;;;;N;;;;;
+1244;ETHIOPIC SYLLABLE QEE;Lo;0;L;;;;;N;;;;;
+1245;ETHIOPIC SYLLABLE QE;Lo;0;L;;;;;N;;;;;
+1246;ETHIOPIC SYLLABLE QO;Lo;0;L;;;;;N;;;;;
+1248;ETHIOPIC SYLLABLE QWA;Lo;0;L;;;;;N;;;;;
+124A;ETHIOPIC SYLLABLE QWI;Lo;0;L;;;;;N;;;;;
+124B;ETHIOPIC SYLLABLE QWAA;Lo;0;L;;;;;N;;;;;
+124C;ETHIOPIC SYLLABLE QWEE;Lo;0;L;;;;;N;;;;;
+124D;ETHIOPIC SYLLABLE QWE;Lo;0;L;;;;;N;;;;;
+1250;ETHIOPIC SYLLABLE QHA;Lo;0;L;;;;;N;;;;;
+1251;ETHIOPIC SYLLABLE QHU;Lo;0;L;;;;;N;;;;;
+1252;ETHIOPIC SYLLABLE QHI;Lo;0;L;;;;;N;;;;;
+1253;ETHIOPIC SYLLABLE QHAA;Lo;0;L;;;;;N;;;;;
+1254;ETHIOPIC SYLLABLE QHEE;Lo;0;L;;;;;N;;;;;
+1255;ETHIOPIC SYLLABLE QHE;Lo;0;L;;;;;N;;;;;
+1256;ETHIOPIC SYLLABLE QHO;Lo;0;L;;;;;N;;;;;
+1258;ETHIOPIC SYLLABLE QHWA;Lo;0;L;;;;;N;;;;;
+125A;ETHIOPIC SYLLABLE QHWI;Lo;0;L;;;;;N;;;;;
+125B;ETHIOPIC SYLLABLE QHWAA;Lo;0;L;;;;;N;;;;;
+125C;ETHIOPIC SYLLABLE QHWEE;Lo;0;L;;;;;N;;;;;
+125D;ETHIOPIC SYLLABLE QHWE;Lo;0;L;;;;;N;;;;;
+1260;ETHIOPIC SYLLABLE BA;Lo;0;L;;;;;N;;;;;
+1261;ETHIOPIC SYLLABLE BU;Lo;0;L;;;;;N;;;;;
+1262;ETHIOPIC SYLLABLE BI;Lo;0;L;;;;;N;;;;;
+1263;ETHIOPIC SYLLABLE BAA;Lo;0;L;;;;;N;;;;;
+1264;ETHIOPIC SYLLABLE BEE;Lo;0;L;;;;;N;;;;;
+1265;ETHIOPIC SYLLABLE BE;Lo;0;L;;;;;N;;;;;
+1266;ETHIOPIC SYLLABLE BO;Lo;0;L;;;;;N;;;;;
+1267;ETHIOPIC SYLLABLE BWA;Lo;0;L;;;;;N;;;;;
+1268;ETHIOPIC SYLLABLE VA;Lo;0;L;;;;;N;;;;;
+1269;ETHIOPIC SYLLABLE VU;Lo;0;L;;;;;N;;;;;
+126A;ETHIOPIC SYLLABLE VI;Lo;0;L;;;;;N;;;;;
+126B;ETHIOPIC SYLLABLE VAA;Lo;0;L;;;;;N;;;;;
+126C;ETHIOPIC SYLLABLE VEE;Lo;0;L;;;;;N;;;;;
+126D;ETHIOPIC SYLLABLE VE;Lo;0;L;;;;;N;;;;;
+126E;ETHIOPIC SYLLABLE VO;Lo;0;L;;;;;N;;;;;
+126F;ETHIOPIC SYLLABLE VWA;Lo;0;L;;;;;N;;;;;
+1270;ETHIOPIC SYLLABLE TA;Lo;0;L;;;;;N;;;;;
+1271;ETHIOPIC SYLLABLE TU;Lo;0;L;;;;;N;;;;;
+1272;ETHIOPIC SYLLABLE TI;Lo;0;L;;;;;N;;;;;
+1273;ETHIOPIC SYLLABLE TAA;Lo;0;L;;;;;N;;;;;
+1274;ETHIOPIC SYLLABLE TEE;Lo;0;L;;;;;N;;;;;
+1275;ETHIOPIC SYLLABLE TE;Lo;0;L;;;;;N;;;;;
+1276;ETHIOPIC SYLLABLE TO;Lo;0;L;;;;;N;;;;;
+1277;ETHIOPIC SYLLABLE TWA;Lo;0;L;;;;;N;;;;;
+1278;ETHIOPIC SYLLABLE CA;Lo;0;L;;;;;N;;;;;
+1279;ETHIOPIC SYLLABLE CU;Lo;0;L;;;;;N;;;;;
+127A;ETHIOPIC SYLLABLE CI;Lo;0;L;;;;;N;;;;;
+127B;ETHIOPIC SYLLABLE CAA;Lo;0;L;;;;;N;;;;;
+127C;ETHIOPIC SYLLABLE CEE;Lo;0;L;;;;;N;;;;;
+127D;ETHIOPIC SYLLABLE CE;Lo;0;L;;;;;N;;;;;
+127E;ETHIOPIC SYLLABLE CO;Lo;0;L;;;;;N;;;;;
+127F;ETHIOPIC SYLLABLE CWA;Lo;0;L;;;;;N;;;;;
+1280;ETHIOPIC SYLLABLE XA;Lo;0;L;;;;;N;;;;;
+1281;ETHIOPIC SYLLABLE XU;Lo;0;L;;;;;N;;;;;
+1282;ETHIOPIC SYLLABLE XI;Lo;0;L;;;;;N;;;;;
+1283;ETHIOPIC SYLLABLE XAA;Lo;0;L;;;;;N;;;;;
+1284;ETHIOPIC SYLLABLE XEE;Lo;0;L;;;;;N;;;;;
+1285;ETHIOPIC SYLLABLE XE;Lo;0;L;;;;;N;;;;;
+1286;ETHIOPIC SYLLABLE XO;Lo;0;L;;;;;N;;;;;
+1288;ETHIOPIC SYLLABLE XWA;Lo;0;L;;;;;N;;;;;
+128A;ETHIOPIC SYLLABLE XWI;Lo;0;L;;;;;N;;;;;
+128B;ETHIOPIC SYLLABLE XWAA;Lo;0;L;;;;;N;;;;;
+128C;ETHIOPIC SYLLABLE XWEE;Lo;0;L;;;;;N;;;;;
+128D;ETHIOPIC SYLLABLE XWE;Lo;0;L;;;;;N;;;;;
+1290;ETHIOPIC SYLLABLE NA;Lo;0;L;;;;;N;;;;;
+1291;ETHIOPIC SYLLABLE NU;Lo;0;L;;;;;N;;;;;
+1292;ETHIOPIC SYLLABLE NI;Lo;0;L;;;;;N;;;;;
+1293;ETHIOPIC SYLLABLE NAA;Lo;0;L;;;;;N;;;;;
+1294;ETHIOPIC SYLLABLE NEE;Lo;0;L;;;;;N;;;;;
+1295;ETHIOPIC SYLLABLE NE;Lo;0;L;;;;;N;;;;;
+1296;ETHIOPIC SYLLABLE NO;Lo;0;L;;;;;N;;;;;
+1297;ETHIOPIC SYLLABLE NWA;Lo;0;L;;;;;N;;;;;
+1298;ETHIOPIC SYLLABLE NYA;Lo;0;L;;;;;N;;;;;
+1299;ETHIOPIC SYLLABLE NYU;Lo;0;L;;;;;N;;;;;
+129A;ETHIOPIC SYLLABLE NYI;Lo;0;L;;;;;N;;;;;
+129B;ETHIOPIC SYLLABLE NYAA;Lo;0;L;;;;;N;;;;;
+129C;ETHIOPIC SYLLABLE NYEE;Lo;0;L;;;;;N;;;;;
+129D;ETHIOPIC SYLLABLE NYE;Lo;0;L;;;;;N;;;;;
+129E;ETHIOPIC SYLLABLE NYO;Lo;0;L;;;;;N;;;;;
+129F;ETHIOPIC SYLLABLE NYWA;Lo;0;L;;;;;N;;;;;
+12A0;ETHIOPIC SYLLABLE GLOTTAL A;Lo;0;L;;;;;N;;;;;
+12A1;ETHIOPIC SYLLABLE GLOTTAL U;Lo;0;L;;;;;N;;;;;
+12A2;ETHIOPIC SYLLABLE GLOTTAL I;Lo;0;L;;;;;N;;;;;
+12A3;ETHIOPIC SYLLABLE GLOTTAL AA;Lo;0;L;;;;;N;;;;;
+12A4;ETHIOPIC SYLLABLE GLOTTAL EE;Lo;0;L;;;;;N;;;;;
+12A5;ETHIOPIC SYLLABLE GLOTTAL E;Lo;0;L;;;;;N;;;;;
+12A6;ETHIOPIC SYLLABLE GLOTTAL O;Lo;0;L;;;;;N;;;;;
+12A7;ETHIOPIC SYLLABLE GLOTTAL WA;Lo;0;L;;;;;N;;;;;
+12A8;ETHIOPIC SYLLABLE KA;Lo;0;L;;;;;N;;;;;
+12A9;ETHIOPIC SYLLABLE KU;Lo;0;L;;;;;N;;;;;
+12AA;ETHIOPIC SYLLABLE KI;Lo;0;L;;;;;N;;;;;
+12AB;ETHIOPIC SYLLABLE KAA;Lo;0;L;;;;;N;;;;;
+12AC;ETHIOPIC SYLLABLE KEE;Lo;0;L;;;;;N;;;;;
+12AD;ETHIOPIC SYLLABLE KE;Lo;0;L;;;;;N;;;;;
+12AE;ETHIOPIC SYLLABLE KO;Lo;0;L;;;;;N;;;;;
+12B0;ETHIOPIC SYLLABLE KWA;Lo;0;L;;;;;N;;;;;
+12B2;ETHIOPIC SYLLABLE KWI;Lo;0;L;;;;;N;;;;;
+12B3;ETHIOPIC SYLLABLE KWAA;Lo;0;L;;;;;N;;;;;
+12B4;ETHIOPIC SYLLABLE KWEE;Lo;0;L;;;;;N;;;;;
+12B5;ETHIOPIC SYLLABLE KWE;Lo;0;L;;;;;N;;;;;
+12B8;ETHIOPIC SYLLABLE KXA;Lo;0;L;;;;;N;;;;;
+12B9;ETHIOPIC SYLLABLE KXU;Lo;0;L;;;;;N;;;;;
+12BA;ETHIOPIC SYLLABLE KXI;Lo;0;L;;;;;N;;;;;
+12BB;ETHIOPIC SYLLABLE KXAA;Lo;0;L;;;;;N;;;;;
+12BC;ETHIOPIC SYLLABLE KXEE;Lo;0;L;;;;;N;;;;;
+12BD;ETHIOPIC SYLLABLE KXE;Lo;0;L;;;;;N;;;;;
+12BE;ETHIOPIC SYLLABLE KXO;Lo;0;L;;;;;N;;;;;
+12C0;ETHIOPIC SYLLABLE KXWA;Lo;0;L;;;;;N;;;;;
+12C2;ETHIOPIC SYLLABLE KXWI;Lo;0;L;;;;;N;;;;;
+12C3;ETHIOPIC SYLLABLE KXWAA;Lo;0;L;;;;;N;;;;;
+12C4;ETHIOPIC SYLLABLE KXWEE;Lo;0;L;;;;;N;;;;;
+12C5;ETHIOPIC SYLLABLE KXWE;Lo;0;L;;;;;N;;;;;
+12C8;ETHIOPIC SYLLABLE WA;Lo;0;L;;;;;N;;;;;
+12C9;ETHIOPIC SYLLABLE WU;Lo;0;L;;;;;N;;;;;
+12CA;ETHIOPIC SYLLABLE WI;Lo;0;L;;;;;N;;;;;
+12CB;ETHIOPIC SYLLABLE WAA;Lo;0;L;;;;;N;;;;;
+12CC;ETHIOPIC SYLLABLE WEE;Lo;0;L;;;;;N;;;;;
+12CD;ETHIOPIC SYLLABLE WE;Lo;0;L;;;;;N;;;;;
+12CE;ETHIOPIC SYLLABLE WO;Lo;0;L;;;;;N;;;;;
+12D0;ETHIOPIC SYLLABLE PHARYNGEAL A;Lo;0;L;;;;;N;;;;;
+12D1;ETHIOPIC SYLLABLE PHARYNGEAL U;Lo;0;L;;;;;N;;;;;
+12D2;ETHIOPIC SYLLABLE PHARYNGEAL I;Lo;0;L;;;;;N;;;;;
+12D3;ETHIOPIC SYLLABLE PHARYNGEAL AA;Lo;0;L;;;;;N;;;;;
+12D4;ETHIOPIC SYLLABLE PHARYNGEAL EE;Lo;0;L;;;;;N;;;;;
+12D5;ETHIOPIC SYLLABLE PHARYNGEAL E;Lo;0;L;;;;;N;;;;;
+12D6;ETHIOPIC SYLLABLE PHARYNGEAL O;Lo;0;L;;;;;N;;;;;
+12D8;ETHIOPIC SYLLABLE ZA;Lo;0;L;;;;;N;;;;;
+12D9;ETHIOPIC SYLLABLE ZU;Lo;0;L;;;;;N;;;;;
+12DA;ETHIOPIC SYLLABLE ZI;Lo;0;L;;;;;N;;;;;
+12DB;ETHIOPIC SYLLABLE ZAA;Lo;0;L;;;;;N;;;;;
+12DC;ETHIOPIC SYLLABLE ZEE;Lo;0;L;;;;;N;;;;;
+12DD;ETHIOPIC SYLLABLE ZE;Lo;0;L;;;;;N;;;;;
+12DE;ETHIOPIC SYLLABLE ZO;Lo;0;L;;;;;N;;;;;
+12DF;ETHIOPIC SYLLABLE ZWA;Lo;0;L;;;;;N;;;;;
+12E0;ETHIOPIC SYLLABLE ZHA;Lo;0;L;;;;;N;;;;;
+12E1;ETHIOPIC SYLLABLE ZHU;Lo;0;L;;;;;N;;;;;
+12E2;ETHIOPIC SYLLABLE ZHI;Lo;0;L;;;;;N;;;;;
+12E3;ETHIOPIC SYLLABLE ZHAA;Lo;0;L;;;;;N;;;;;
+12E4;ETHIOPIC SYLLABLE ZHEE;Lo;0;L;;;;;N;;;;;
+12E5;ETHIOPIC SYLLABLE ZHE;Lo;0;L;;;;;N;;;;;
+12E6;ETHIOPIC SYLLABLE ZHO;Lo;0;L;;;;;N;;;;;
+12E7;ETHIOPIC SYLLABLE ZHWA;Lo;0;L;;;;;N;;;;;
+12E8;ETHIOPIC SYLLABLE YA;Lo;0;L;;;;;N;;;;;
+12E9;ETHIOPIC SYLLABLE YU;Lo;0;L;;;;;N;;;;;
+12EA;ETHIOPIC SYLLABLE YI;Lo;0;L;;;;;N;;;;;
+12EB;ETHIOPIC SYLLABLE YAA;Lo;0;L;;;;;N;;;;;
+12EC;ETHIOPIC SYLLABLE YEE;Lo;0;L;;;;;N;;;;;
+12ED;ETHIOPIC SYLLABLE YE;Lo;0;L;;;;;N;;;;;
+12EE;ETHIOPIC SYLLABLE YO;Lo;0;L;;;;;N;;;;;
+12F0;ETHIOPIC SYLLABLE DA;Lo;0;L;;;;;N;;;;;
+12F1;ETHIOPIC SYLLABLE DU;Lo;0;L;;;;;N;;;;;
+12F2;ETHIOPIC SYLLABLE DI;Lo;0;L;;;;;N;;;;;
+12F3;ETHIOPIC SYLLABLE DAA;Lo;0;L;;;;;N;;;;;
+12F4;ETHIOPIC SYLLABLE DEE;Lo;0;L;;;;;N;;;;;
+12F5;ETHIOPIC SYLLABLE DE;Lo;0;L;;;;;N;;;;;
+12F6;ETHIOPIC SYLLABLE DO;Lo;0;L;;;;;N;;;;;
+12F7;ETHIOPIC SYLLABLE DWA;Lo;0;L;;;;;N;;;;;
+12F8;ETHIOPIC SYLLABLE DDA;Lo;0;L;;;;;N;;;;;
+12F9;ETHIOPIC SYLLABLE DDU;Lo;0;L;;;;;N;;;;;
+12FA;ETHIOPIC SYLLABLE DDI;Lo;0;L;;;;;N;;;;;
+12FB;ETHIOPIC SYLLABLE DDAA;Lo;0;L;;;;;N;;;;;
+12FC;ETHIOPIC SYLLABLE DDEE;Lo;0;L;;;;;N;;;;;
+12FD;ETHIOPIC SYLLABLE DDE;Lo;0;L;;;;;N;;;;;
+12FE;ETHIOPIC SYLLABLE DDO;Lo;0;L;;;;;N;;;;;
+12FF;ETHIOPIC SYLLABLE DDWA;Lo;0;L;;;;;N;;;;;
+1300;ETHIOPIC SYLLABLE JA;Lo;0;L;;;;;N;;;;;
+1301;ETHIOPIC SYLLABLE JU;Lo;0;L;;;;;N;;;;;
+1302;ETHIOPIC SYLLABLE JI;Lo;0;L;;;;;N;;;;;
+1303;ETHIOPIC SYLLABLE JAA;Lo;0;L;;;;;N;;;;;
+1304;ETHIOPIC SYLLABLE JEE;Lo;0;L;;;;;N;;;;;
+1305;ETHIOPIC SYLLABLE JE;Lo;0;L;;;;;N;;;;;
+1306;ETHIOPIC SYLLABLE JO;Lo;0;L;;;;;N;;;;;
+1307;ETHIOPIC SYLLABLE JWA;Lo;0;L;;;;;N;;;;;
+1308;ETHIOPIC SYLLABLE GA;Lo;0;L;;;;;N;;;;;
+1309;ETHIOPIC SYLLABLE GU;Lo;0;L;;;;;N;;;;;
+130A;ETHIOPIC SYLLABLE GI;Lo;0;L;;;;;N;;;;;
+130B;ETHIOPIC SYLLABLE GAA;Lo;0;L;;;;;N;;;;;
+130C;ETHIOPIC SYLLABLE GEE;Lo;0;L;;;;;N;;;;;
+130D;ETHIOPIC SYLLABLE GE;Lo;0;L;;;;;N;;;;;
+130E;ETHIOPIC SYLLABLE GO;Lo;0;L;;;;;N;;;;;
+1310;ETHIOPIC SYLLABLE GWA;Lo;0;L;;;;;N;;;;;
+1312;ETHIOPIC SYLLABLE GWI;Lo;0;L;;;;;N;;;;;
+1313;ETHIOPIC SYLLABLE GWAA;Lo;0;L;;;;;N;;;;;
+1314;ETHIOPIC SYLLABLE GWEE;Lo;0;L;;;;;N;;;;;
+1315;ETHIOPIC SYLLABLE GWE;Lo;0;L;;;;;N;;;;;
+1318;ETHIOPIC SYLLABLE GGA;Lo;0;L;;;;;N;;;;;
+1319;ETHIOPIC SYLLABLE GGU;Lo;0;L;;;;;N;;;;;
+131A;ETHIOPIC SYLLABLE GGI;Lo;0;L;;;;;N;;;;;
+131B;ETHIOPIC SYLLABLE GGAA;Lo;0;L;;;;;N;;;;;
+131C;ETHIOPIC SYLLABLE GGEE;Lo;0;L;;;;;N;;;;;
+131D;ETHIOPIC SYLLABLE GGE;Lo;0;L;;;;;N;;;;;
+131E;ETHIOPIC SYLLABLE GGO;Lo;0;L;;;;;N;;;;;
+1320;ETHIOPIC SYLLABLE THA;Lo;0;L;;;;;N;;;;;
+1321;ETHIOPIC SYLLABLE THU;Lo;0;L;;;;;N;;;;;
+1322;ETHIOPIC SYLLABLE THI;Lo;0;L;;;;;N;;;;;
+1323;ETHIOPIC SYLLABLE THAA;Lo;0;L;;;;;N;;;;;
+1324;ETHIOPIC SYLLABLE THEE;Lo;0;L;;;;;N;;;;;
+1325;ETHIOPIC SYLLABLE THE;Lo;0;L;;;;;N;;;;;
+1326;ETHIOPIC SYLLABLE THO;Lo;0;L;;;;;N;;;;;
+1327;ETHIOPIC SYLLABLE THWA;Lo;0;L;;;;;N;;;;;
+1328;ETHIOPIC SYLLABLE CHA;Lo;0;L;;;;;N;;;;;
+1329;ETHIOPIC SYLLABLE CHU;Lo;0;L;;;;;N;;;;;
+132A;ETHIOPIC SYLLABLE CHI;Lo;0;L;;;;;N;;;;;
+132B;ETHIOPIC SYLLABLE CHAA;Lo;0;L;;;;;N;;;;;
+132C;ETHIOPIC SYLLABLE CHEE;Lo;0;L;;;;;N;;;;;
+132D;ETHIOPIC SYLLABLE CHE;Lo;0;L;;;;;N;;;;;
+132E;ETHIOPIC SYLLABLE CHO;Lo;0;L;;;;;N;;;;;
+132F;ETHIOPIC SYLLABLE CHWA;Lo;0;L;;;;;N;;;;;
+1330;ETHIOPIC SYLLABLE PHA;Lo;0;L;;;;;N;;;;;
+1331;ETHIOPIC SYLLABLE PHU;Lo;0;L;;;;;N;;;;;
+1332;ETHIOPIC SYLLABLE PHI;Lo;0;L;;;;;N;;;;;
+1333;ETHIOPIC SYLLABLE PHAA;Lo;0;L;;;;;N;;;;;
+1334;ETHIOPIC SYLLABLE PHEE;Lo;0;L;;;;;N;;;;;
+1335;ETHIOPIC SYLLABLE PHE;Lo;0;L;;;;;N;;;;;
+1336;ETHIOPIC SYLLABLE PHO;Lo;0;L;;;;;N;;;;;
+1337;ETHIOPIC SYLLABLE PHWA;Lo;0;L;;;;;N;;;;;
+1338;ETHIOPIC SYLLABLE TSA;Lo;0;L;;;;;N;;;;;
+1339;ETHIOPIC SYLLABLE TSU;Lo;0;L;;;;;N;;;;;
+133A;ETHIOPIC SYLLABLE TSI;Lo;0;L;;;;;N;;;;;
+133B;ETHIOPIC SYLLABLE TSAA;Lo;0;L;;;;;N;;;;;
+133C;ETHIOPIC SYLLABLE TSEE;Lo;0;L;;;;;N;;;;;
+133D;ETHIOPIC SYLLABLE TSE;Lo;0;L;;;;;N;;;;;
+133E;ETHIOPIC SYLLABLE TSO;Lo;0;L;;;;;N;;;;;
+133F;ETHIOPIC SYLLABLE TSWA;Lo;0;L;;;;;N;;;;;
+1340;ETHIOPIC SYLLABLE TZA;Lo;0;L;;;;;N;;;;;
+1341;ETHIOPIC SYLLABLE TZU;Lo;0;L;;;;;N;;;;;
+1342;ETHIOPIC SYLLABLE TZI;Lo;0;L;;;;;N;;;;;
+1343;ETHIOPIC SYLLABLE TZAA;Lo;0;L;;;;;N;;;;;
+1344;ETHIOPIC SYLLABLE TZEE;Lo;0;L;;;;;N;;;;;
+1345;ETHIOPIC SYLLABLE TZE;Lo;0;L;;;;;N;;;;;
+1346;ETHIOPIC SYLLABLE TZO;Lo;0;L;;;;;N;;;;;
+1348;ETHIOPIC SYLLABLE FA;Lo;0;L;;;;;N;;;;;
+1349;ETHIOPIC SYLLABLE FU;Lo;0;L;;;;;N;;;;;
+134A;ETHIOPIC SYLLABLE FI;Lo;0;L;;;;;N;;;;;
+134B;ETHIOPIC SYLLABLE FAA;Lo;0;L;;;;;N;;;;;
+134C;ETHIOPIC SYLLABLE FEE;Lo;0;L;;;;;N;;;;;
+134D;ETHIOPIC SYLLABLE FE;Lo;0;L;;;;;N;;;;;
+134E;ETHIOPIC SYLLABLE FO;Lo;0;L;;;;;N;;;;;
+134F;ETHIOPIC SYLLABLE FWA;Lo;0;L;;;;;N;;;;;
+1350;ETHIOPIC SYLLABLE PA;Lo;0;L;;;;;N;;;;;
+1351;ETHIOPIC SYLLABLE PU;Lo;0;L;;;;;N;;;;;
+1352;ETHIOPIC SYLLABLE PI;Lo;0;L;;;;;N;;;;;
+1353;ETHIOPIC SYLLABLE PAA;Lo;0;L;;;;;N;;;;;
+1354;ETHIOPIC SYLLABLE PEE;Lo;0;L;;;;;N;;;;;
+1355;ETHIOPIC SYLLABLE PE;Lo;0;L;;;;;N;;;;;
+1356;ETHIOPIC SYLLABLE PO;Lo;0;L;;;;;N;;;;;
+1357;ETHIOPIC SYLLABLE PWA;Lo;0;L;;;;;N;;;;;
+1358;ETHIOPIC SYLLABLE RYA;Lo;0;L;;;;;N;;;;;
+1359;ETHIOPIC SYLLABLE MYA;Lo;0;L;;;;;N;;;;;
+135A;ETHIOPIC SYLLABLE FYA;Lo;0;L;;;;;N;;;;;
+1361;ETHIOPIC WORDSPACE;Po;0;L;;;;;N;;;;;
+1362;ETHIOPIC FULL STOP;Po;0;L;;;;;N;;;;;
+1363;ETHIOPIC COMMA;Po;0;L;;;;;N;;;;;
+1364;ETHIOPIC SEMICOLON;Po;0;L;;;;;N;;;;;
+1365;ETHIOPIC COLON;Po;0;L;;;;;N;;;;;
+1366;ETHIOPIC PREFACE COLON;Po;0;L;;;;;N;;;;;
+1367;ETHIOPIC QUESTION MARK;Po;0;L;;;;;N;;;;;
+1368;ETHIOPIC PARAGRAPH SEPARATOR;Po;0;L;;;;;N;;;;;
+1369;ETHIOPIC DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+136A;ETHIOPIC DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+136B;ETHIOPIC DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+136C;ETHIOPIC DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+136D;ETHIOPIC DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+136E;ETHIOPIC DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+136F;ETHIOPIC DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+1370;ETHIOPIC DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+1371;ETHIOPIC DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+1372;ETHIOPIC NUMBER TEN;No;0;L;;;;10;N;;;;;
+1373;ETHIOPIC NUMBER TWENTY;No;0;L;;;;20;N;;;;;
+1374;ETHIOPIC NUMBER THIRTY;No;0;L;;;;30;N;;;;;
+1375;ETHIOPIC NUMBER FORTY;No;0;L;;;;40;N;;;;;
+1376;ETHIOPIC NUMBER FIFTY;No;0;L;;;;50;N;;;;;
+1377;ETHIOPIC NUMBER SIXTY;No;0;L;;;;60;N;;;;;
+1378;ETHIOPIC NUMBER SEVENTY;No;0;L;;;;70;N;;;;;
+1379;ETHIOPIC NUMBER EIGHTY;No;0;L;;;;80;N;;;;;
+137A;ETHIOPIC NUMBER NINETY;No;0;L;;;;90;N;;;;;
+137B;ETHIOPIC NUMBER HUNDRED;No;0;L;;;;100;N;;;;;
+137C;ETHIOPIC NUMBER TEN THOUSAND;No;0;L;;;;10000;N;;;;;
+13A0;CHEROKEE LETTER A;Lo;0;L;;;;;N;;;;;
+13A1;CHEROKEE LETTER E;Lo;0;L;;;;;N;;;;;
+13A2;CHEROKEE LETTER I;Lo;0;L;;;;;N;;;;;
+13A3;CHEROKEE LETTER O;Lo;0;L;;;;;N;;;;;
+13A4;CHEROKEE LETTER U;Lo;0;L;;;;;N;;;;;
+13A5;CHEROKEE LETTER V;Lo;0;L;;;;;N;;;;;
+13A6;CHEROKEE LETTER GA;Lo;0;L;;;;;N;;;;;
+13A7;CHEROKEE LETTER KA;Lo;0;L;;;;;N;;;;;
+13A8;CHEROKEE LETTER GE;Lo;0;L;;;;;N;;;;;
+13A9;CHEROKEE LETTER GI;Lo;0;L;;;;;N;;;;;
+13AA;CHEROKEE LETTER GO;Lo;0;L;;;;;N;;;;;
+13AB;CHEROKEE LETTER GU;Lo;0;L;;;;;N;;;;;
+13AC;CHEROKEE LETTER GV;Lo;0;L;;;;;N;;;;;
+13AD;CHEROKEE LETTER HA;Lo;0;L;;;;;N;;;;;
+13AE;CHEROKEE LETTER HE;Lo;0;L;;;;;N;;;;;
+13AF;CHEROKEE LETTER HI;Lo;0;L;;;;;N;;;;;
+13B0;CHEROKEE LETTER HO;Lo;0;L;;;;;N;;;;;
+13B1;CHEROKEE LETTER HU;Lo;0;L;;;;;N;;;;;
+13B2;CHEROKEE LETTER HV;Lo;0;L;;;;;N;;;;;
+13B3;CHEROKEE LETTER LA;Lo;0;L;;;;;N;;;;;
+13B4;CHEROKEE LETTER LE;Lo;0;L;;;;;N;;;;;
+13B5;CHEROKEE LETTER LI;Lo;0;L;;;;;N;;;;;
+13B6;CHEROKEE LETTER LO;Lo;0;L;;;;;N;;;;;
+13B7;CHEROKEE LETTER LU;Lo;0;L;;;;;N;;;;;
+13B8;CHEROKEE LETTER LV;Lo;0;L;;;;;N;;;;;
+13B9;CHEROKEE LETTER MA;Lo;0;L;;;;;N;;;;;
+13BA;CHEROKEE LETTER ME;Lo;0;L;;;;;N;;;;;
+13BB;CHEROKEE LETTER MI;Lo;0;L;;;;;N;;;;;
+13BC;CHEROKEE LETTER MO;Lo;0;L;;;;;N;;;;;
+13BD;CHEROKEE LETTER MU;Lo;0;L;;;;;N;;;;;
+13BE;CHEROKEE LETTER NA;Lo;0;L;;;;;N;;;;;
+13BF;CHEROKEE LETTER HNA;Lo;0;L;;;;;N;;;;;
+13C0;CHEROKEE LETTER NAH;Lo;0;L;;;;;N;;;;;
+13C1;CHEROKEE LETTER NE;Lo;0;L;;;;;N;;;;;
+13C2;CHEROKEE LETTER NI;Lo;0;L;;;;;N;;;;;
+13C3;CHEROKEE LETTER NO;Lo;0;L;;;;;N;;;;;
+13C4;CHEROKEE LETTER NU;Lo;0;L;;;;;N;;;;;
+13C5;CHEROKEE LETTER NV;Lo;0;L;;;;;N;;;;;
+13C6;CHEROKEE LETTER QUA;Lo;0;L;;;;;N;;;;;
+13C7;CHEROKEE LETTER QUE;Lo;0;L;;;;;N;;;;;
+13C8;CHEROKEE LETTER QUI;Lo;0;L;;;;;N;;;;;
+13C9;CHEROKEE LETTER QUO;Lo;0;L;;;;;N;;;;;
+13CA;CHEROKEE LETTER QUU;Lo;0;L;;;;;N;;;;;
+13CB;CHEROKEE LETTER QUV;Lo;0;L;;;;;N;;;;;
+13CC;CHEROKEE LETTER SA;Lo;0;L;;;;;N;;;;;
+13CD;CHEROKEE LETTER S;Lo;0;L;;;;;N;;;;;
+13CE;CHEROKEE LETTER SE;Lo;0;L;;;;;N;;;;;
+13CF;CHEROKEE LETTER SI;Lo;0;L;;;;;N;;;;;
+13D0;CHEROKEE LETTER SO;Lo;0;L;;;;;N;;;;;
+13D1;CHEROKEE LETTER SU;Lo;0;L;;;;;N;;;;;
+13D2;CHEROKEE LETTER SV;Lo;0;L;;;;;N;;;;;
+13D3;CHEROKEE LETTER DA;Lo;0;L;;;;;N;;;;;
+13D4;CHEROKEE LETTER TA;Lo;0;L;;;;;N;;;;;
+13D5;CHEROKEE LETTER DE;Lo;0;L;;;;;N;;;;;
+13D6;CHEROKEE LETTER TE;Lo;0;L;;;;;N;;;;;
+13D7;CHEROKEE LETTER DI;Lo;0;L;;;;;N;;;;;
+13D8;CHEROKEE LETTER TI;Lo;0;L;;;;;N;;;;;
+13D9;CHEROKEE LETTER DO;Lo;0;L;;;;;N;;;;;
+13DA;CHEROKEE LETTER DU;Lo;0;L;;;;;N;;;;;
+13DB;CHEROKEE LETTER DV;Lo;0;L;;;;;N;;;;;
+13DC;CHEROKEE LETTER DLA;Lo;0;L;;;;;N;;;;;
+13DD;CHEROKEE LETTER TLA;Lo;0;L;;;;;N;;;;;
+13DE;CHEROKEE LETTER TLE;Lo;0;L;;;;;N;;;;;
+13DF;CHEROKEE LETTER TLI;Lo;0;L;;;;;N;;;;;
+13E0;CHEROKEE LETTER TLO;Lo;0;L;;;;;N;;;;;
+13E1;CHEROKEE LETTER TLU;Lo;0;L;;;;;N;;;;;
+13E2;CHEROKEE LETTER TLV;Lo;0;L;;;;;N;;;;;
+13E3;CHEROKEE LETTER TSA;Lo;0;L;;;;;N;;;;;
+13E4;CHEROKEE LETTER TSE;Lo;0;L;;;;;N;;;;;
+13E5;CHEROKEE LETTER TSI;Lo;0;L;;;;;N;;;;;
+13E6;CHEROKEE LETTER TSO;Lo;0;L;;;;;N;;;;;
+13E7;CHEROKEE LETTER TSU;Lo;0;L;;;;;N;;;;;
+13E8;CHEROKEE LETTER TSV;Lo;0;L;;;;;N;;;;;
+13E9;CHEROKEE LETTER WA;Lo;0;L;;;;;N;;;;;
+13EA;CHEROKEE LETTER WE;Lo;0;L;;;;;N;;;;;
+13EB;CHEROKEE LETTER WI;Lo;0;L;;;;;N;;;;;
+13EC;CHEROKEE LETTER WO;Lo;0;L;;;;;N;;;;;
+13ED;CHEROKEE LETTER WU;Lo;0;L;;;;;N;;;;;
+13EE;CHEROKEE LETTER WV;Lo;0;L;;;;;N;;;;;
+13EF;CHEROKEE LETTER YA;Lo;0;L;;;;;N;;;;;
+13F0;CHEROKEE LETTER YE;Lo;0;L;;;;;N;;;;;
+13F1;CHEROKEE LETTER YI;Lo;0;L;;;;;N;;;;;
+13F2;CHEROKEE LETTER YO;Lo;0;L;;;;;N;;;;;
+13F3;CHEROKEE LETTER YU;Lo;0;L;;;;;N;;;;;
+13F4;CHEROKEE LETTER YV;Lo;0;L;;;;;N;;;;;
+1401;CANADIAN SYLLABICS E;Lo;0;L;;;;;N;;;;;
+1402;CANADIAN SYLLABICS AAI;Lo;0;L;;;;;N;;;;;
+1403;CANADIAN SYLLABICS I;Lo;0;L;;;;;N;;;;;
+1404;CANADIAN SYLLABICS II;Lo;0;L;;;;;N;;;;;
+1405;CANADIAN SYLLABICS O;Lo;0;L;;;;;N;;;;;
+1406;CANADIAN SYLLABICS OO;Lo;0;L;;;;;N;;;;;
+1407;CANADIAN SYLLABICS Y-CREE OO;Lo;0;L;;;;;N;;;;;
+1408;CANADIAN SYLLABICS CARRIER EE;Lo;0;L;;;;;N;;;;;
+1409;CANADIAN SYLLABICS CARRIER I;Lo;0;L;;;;;N;;;;;
+140A;CANADIAN SYLLABICS A;Lo;0;L;;;;;N;;;;;
+140B;CANADIAN SYLLABICS AA;Lo;0;L;;;;;N;;;;;
+140C;CANADIAN SYLLABICS WE;Lo;0;L;;;;;N;;;;;
+140D;CANADIAN SYLLABICS WEST-CREE WE;Lo;0;L;;;;;N;;;;;
+140E;CANADIAN SYLLABICS WI;Lo;0;L;;;;;N;;;;;
+140F;CANADIAN SYLLABICS WEST-CREE WI;Lo;0;L;;;;;N;;;;;
+1410;CANADIAN SYLLABICS WII;Lo;0;L;;;;;N;;;;;
+1411;CANADIAN SYLLABICS WEST-CREE WII;Lo;0;L;;;;;N;;;;;
+1412;CANADIAN SYLLABICS WO;Lo;0;L;;;;;N;;;;;
+1413;CANADIAN SYLLABICS WEST-CREE WO;Lo;0;L;;;;;N;;;;;
+1414;CANADIAN SYLLABICS WOO;Lo;0;L;;;;;N;;;;;
+1415;CANADIAN SYLLABICS WEST-CREE WOO;Lo;0;L;;;;;N;;;;;
+1416;CANADIAN SYLLABICS NASKAPI WOO;Lo;0;L;;;;;N;;;;;
+1417;CANADIAN SYLLABICS WA;Lo;0;L;;;;;N;;;;;
+1418;CANADIAN SYLLABICS WEST-CREE WA;Lo;0;L;;;;;N;;;;;
+1419;CANADIAN SYLLABICS WAA;Lo;0;L;;;;;N;;;;;
+141A;CANADIAN SYLLABICS WEST-CREE WAA;Lo;0;L;;;;;N;;;;;
+141B;CANADIAN SYLLABICS NASKAPI WAA;Lo;0;L;;;;;N;;;;;
+141C;CANADIAN SYLLABICS AI;Lo;0;L;;;;;N;;;;;
+141D;CANADIAN SYLLABICS Y-CREE W;Lo;0;L;;;;;N;;;;;
+141E;CANADIAN SYLLABICS GLOTTAL STOP;Lo;0;L;;;;;N;;;;;
+141F;CANADIAN SYLLABICS FINAL ACUTE;Lo;0;L;;;;;N;;;;;
+1420;CANADIAN SYLLABICS FINAL GRAVE;Lo;0;L;;;;;N;;;;;
+1421;CANADIAN SYLLABICS FINAL BOTTOM HALF RING;Lo;0;L;;;;;N;;;;;
+1422;CANADIAN SYLLABICS FINAL TOP HALF RING;Lo;0;L;;;;;N;;;;;
+1423;CANADIAN SYLLABICS FINAL RIGHT HALF RING;Lo;0;L;;;;;N;;;;;
+1424;CANADIAN SYLLABICS FINAL RING;Lo;0;L;;;;;N;;;;;
+1425;CANADIAN SYLLABICS FINAL DOUBLE ACUTE;Lo;0;L;;;;;N;;;;;
+1426;CANADIAN SYLLABICS FINAL DOUBLE SHORT VERTICAL STROKES;Lo;0;L;;;;;N;;;;;
+1427;CANADIAN SYLLABICS FINAL MIDDLE DOT;Lo;0;L;;;;;N;;;;;
+1428;CANADIAN SYLLABICS FINAL SHORT HORIZONTAL STROKE;Lo;0;L;;;;;N;;;;;
+1429;CANADIAN SYLLABICS FINAL PLUS;Lo;0;L;;;;;N;;;;;
+142A;CANADIAN SYLLABICS FINAL DOWN TACK;Lo;0;L;;;;;N;;;;;
+142B;CANADIAN SYLLABICS EN;Lo;0;L;;;;;N;;;;;
+142C;CANADIAN SYLLABICS IN;Lo;0;L;;;;;N;;;;;
+142D;CANADIAN SYLLABICS ON;Lo;0;L;;;;;N;;;;;
+142E;CANADIAN SYLLABICS AN;Lo;0;L;;;;;N;;;;;
+142F;CANADIAN SYLLABICS PE;Lo;0;L;;;;;N;;;;;
+1430;CANADIAN SYLLABICS PAAI;Lo;0;L;;;;;N;;;;;
+1431;CANADIAN SYLLABICS PI;Lo;0;L;;;;;N;;;;;
+1432;CANADIAN SYLLABICS PII;Lo;0;L;;;;;N;;;;;
+1433;CANADIAN SYLLABICS PO;Lo;0;L;;;;;N;;;;;
+1434;CANADIAN SYLLABICS POO;Lo;0;L;;;;;N;;;;;
+1435;CANADIAN SYLLABICS Y-CREE POO;Lo;0;L;;;;;N;;;;;
+1436;CANADIAN SYLLABICS CARRIER HEE;Lo;0;L;;;;;N;;;;;
+1437;CANADIAN SYLLABICS CARRIER HI;Lo;0;L;;;;;N;;;;;
+1438;CANADIAN SYLLABICS PA;Lo;0;L;;;;;N;;;;;
+1439;CANADIAN SYLLABICS PAA;Lo;0;L;;;;;N;;;;;
+143A;CANADIAN SYLLABICS PWE;Lo;0;L;;;;;N;;;;;
+143B;CANADIAN SYLLABICS WEST-CREE PWE;Lo;0;L;;;;;N;;;;;
+143C;CANADIAN SYLLABICS PWI;Lo;0;L;;;;;N;;;;;
+143D;CANADIAN SYLLABICS WEST-CREE PWI;Lo;0;L;;;;;N;;;;;
+143E;CANADIAN SYLLABICS PWII;Lo;0;L;;;;;N;;;;;
+143F;CANADIAN SYLLABICS WEST-CREE PWII;Lo;0;L;;;;;N;;;;;
+1440;CANADIAN SYLLABICS PWO;Lo;0;L;;;;;N;;;;;
+1441;CANADIAN SYLLABICS WEST-CREE PWO;Lo;0;L;;;;;N;;;;;
+1442;CANADIAN SYLLABICS PWOO;Lo;0;L;;;;;N;;;;;
+1443;CANADIAN SYLLABICS WEST-CREE PWOO;Lo;0;L;;;;;N;;;;;
+1444;CANADIAN SYLLABICS PWA;Lo;0;L;;;;;N;;;;;
+1445;CANADIAN SYLLABICS WEST-CREE PWA;Lo;0;L;;;;;N;;;;;
+1446;CANADIAN SYLLABICS PWAA;Lo;0;L;;;;;N;;;;;
+1447;CANADIAN SYLLABICS WEST-CREE PWAA;Lo;0;L;;;;;N;;;;;
+1448;CANADIAN SYLLABICS Y-CREE PWAA;Lo;0;L;;;;;N;;;;;
+1449;CANADIAN SYLLABICS P;Lo;0;L;;;;;N;;;;;
+144A;CANADIAN SYLLABICS WEST-CREE P;Lo;0;L;;;;;N;;;;;
+144B;CANADIAN SYLLABICS CARRIER H;Lo;0;L;;;;;N;;;;;
+144C;CANADIAN SYLLABICS TE;Lo;0;L;;;;;N;;;;;
+144D;CANADIAN SYLLABICS TAAI;Lo;0;L;;;;;N;;;;;
+144E;CANADIAN SYLLABICS TI;Lo;0;L;;;;;N;;;;;
+144F;CANADIAN SYLLABICS TII;Lo;0;L;;;;;N;;;;;
+1450;CANADIAN SYLLABICS TO;Lo;0;L;;;;;N;;;;;
+1451;CANADIAN SYLLABICS TOO;Lo;0;L;;;;;N;;;;;
+1452;CANADIAN SYLLABICS Y-CREE TOO;Lo;0;L;;;;;N;;;;;
+1453;CANADIAN SYLLABICS CARRIER DEE;Lo;0;L;;;;;N;;;;;
+1454;CANADIAN SYLLABICS CARRIER DI;Lo;0;L;;;;;N;;;;;
+1455;CANADIAN SYLLABICS TA;Lo;0;L;;;;;N;;;;;
+1456;CANADIAN SYLLABICS TAA;Lo;0;L;;;;;N;;;;;
+1457;CANADIAN SYLLABICS TWE;Lo;0;L;;;;;N;;;;;
+1458;CANADIAN SYLLABICS WEST-CREE TWE;Lo;0;L;;;;;N;;;;;
+1459;CANADIAN SYLLABICS TWI;Lo;0;L;;;;;N;;;;;
+145A;CANADIAN SYLLABICS WEST-CREE TWI;Lo;0;L;;;;;N;;;;;
+145B;CANADIAN SYLLABICS TWII;Lo;0;L;;;;;N;;;;;
+145C;CANADIAN SYLLABICS WEST-CREE TWII;Lo;0;L;;;;;N;;;;;
+145D;CANADIAN SYLLABICS TWO;Lo;0;L;;;;;N;;;;;
+145E;CANADIAN SYLLABICS WEST-CREE TWO;Lo;0;L;;;;;N;;;;;
+145F;CANADIAN SYLLABICS TWOO;Lo;0;L;;;;;N;;;;;
+1460;CANADIAN SYLLABICS WEST-CREE TWOO;Lo;0;L;;;;;N;;;;;
+1461;CANADIAN SYLLABICS TWA;Lo;0;L;;;;;N;;;;;
+1462;CANADIAN SYLLABICS WEST-CREE TWA;Lo;0;L;;;;;N;;;;;
+1463;CANADIAN SYLLABICS TWAA;Lo;0;L;;;;;N;;;;;
+1464;CANADIAN SYLLABICS WEST-CREE TWAA;Lo;0;L;;;;;N;;;;;
+1465;CANADIAN SYLLABICS NASKAPI TWAA;Lo;0;L;;;;;N;;;;;
+1466;CANADIAN SYLLABICS T;Lo;0;L;;;;;N;;;;;
+1467;CANADIAN SYLLABICS TTE;Lo;0;L;;;;;N;;;;;
+1468;CANADIAN SYLLABICS TTI;Lo;0;L;;;;;N;;;;;
+1469;CANADIAN SYLLABICS TTO;Lo;0;L;;;;;N;;;;;
+146A;CANADIAN SYLLABICS TTA;Lo;0;L;;;;;N;;;;;
+146B;CANADIAN SYLLABICS KE;Lo;0;L;;;;;N;;;;;
+146C;CANADIAN SYLLABICS KAAI;Lo;0;L;;;;;N;;;;;
+146D;CANADIAN SYLLABICS KI;Lo;0;L;;;;;N;;;;;
+146E;CANADIAN SYLLABICS KII;Lo;0;L;;;;;N;;;;;
+146F;CANADIAN SYLLABICS KO;Lo;0;L;;;;;N;;;;;
+1470;CANADIAN SYLLABICS KOO;Lo;0;L;;;;;N;;;;;
+1471;CANADIAN SYLLABICS Y-CREE KOO;Lo;0;L;;;;;N;;;;;
+1472;CANADIAN SYLLABICS KA;Lo;0;L;;;;;N;;;;;
+1473;CANADIAN SYLLABICS KAA;Lo;0;L;;;;;N;;;;;
+1474;CANADIAN SYLLABICS KWE;Lo;0;L;;;;;N;;;;;
+1475;CANADIAN SYLLABICS WEST-CREE KWE;Lo;0;L;;;;;N;;;;;
+1476;CANADIAN SYLLABICS KWI;Lo;0;L;;;;;N;;;;;
+1477;CANADIAN SYLLABICS WEST-CREE KWI;Lo;0;L;;;;;N;;;;;
+1478;CANADIAN SYLLABICS KWII;Lo;0;L;;;;;N;;;;;
+1479;CANADIAN SYLLABICS WEST-CREE KWII;Lo;0;L;;;;;N;;;;;
+147A;CANADIAN SYLLABICS KWO;Lo;0;L;;;;;N;;;;;
+147B;CANADIAN SYLLABICS WEST-CREE KWO;Lo;0;L;;;;;N;;;;;
+147C;CANADIAN SYLLABICS KWOO;Lo;0;L;;;;;N;;;;;
+147D;CANADIAN SYLLABICS WEST-CREE KWOO;Lo;0;L;;;;;N;;;;;
+147E;CANADIAN SYLLABICS KWA;Lo;0;L;;;;;N;;;;;
+147F;CANADIAN SYLLABICS WEST-CREE KWA;Lo;0;L;;;;;N;;;;;
+1480;CANADIAN SYLLABICS KWAA;Lo;0;L;;;;;N;;;;;
+1481;CANADIAN SYLLABICS WEST-CREE KWAA;Lo;0;L;;;;;N;;;;;
+1482;CANADIAN SYLLABICS NASKAPI KWAA;Lo;0;L;;;;;N;;;;;
+1483;CANADIAN SYLLABICS K;Lo;0;L;;;;;N;;;;;
+1484;CANADIAN SYLLABICS KW;Lo;0;L;;;;;N;;;;;
+1485;CANADIAN SYLLABICS SOUTH-SLAVEY KEH;Lo;0;L;;;;;N;;;;;
+1486;CANADIAN SYLLABICS SOUTH-SLAVEY KIH;Lo;0;L;;;;;N;;;;;
+1487;CANADIAN SYLLABICS SOUTH-SLAVEY KOH;Lo;0;L;;;;;N;;;;;
+1488;CANADIAN SYLLABICS SOUTH-SLAVEY KAH;Lo;0;L;;;;;N;;;;;
+1489;CANADIAN SYLLABICS CE;Lo;0;L;;;;;N;;;;;
+148A;CANADIAN SYLLABICS CAAI;Lo;0;L;;;;;N;;;;;
+148B;CANADIAN SYLLABICS CI;Lo;0;L;;;;;N;;;;;
+148C;CANADIAN SYLLABICS CII;Lo;0;L;;;;;N;;;;;
+148D;CANADIAN SYLLABICS CO;Lo;0;L;;;;;N;;;;;
+148E;CANADIAN SYLLABICS COO;Lo;0;L;;;;;N;;;;;
+148F;CANADIAN SYLLABICS Y-CREE COO;Lo;0;L;;;;;N;;;;;
+1490;CANADIAN SYLLABICS CA;Lo;0;L;;;;;N;;;;;
+1491;CANADIAN SYLLABICS CAA;Lo;0;L;;;;;N;;;;;
+1492;CANADIAN SYLLABICS CWE;Lo;0;L;;;;;N;;;;;
+1493;CANADIAN SYLLABICS WEST-CREE CWE;Lo;0;L;;;;;N;;;;;
+1494;CANADIAN SYLLABICS CWI;Lo;0;L;;;;;N;;;;;
+1495;CANADIAN SYLLABICS WEST-CREE CWI;Lo;0;L;;;;;N;;;;;
+1496;CANADIAN SYLLABICS CWII;Lo;0;L;;;;;N;;;;;
+1497;CANADIAN SYLLABICS WEST-CREE CWII;Lo;0;L;;;;;N;;;;;
+1498;CANADIAN SYLLABICS CWO;Lo;0;L;;;;;N;;;;;
+1499;CANADIAN SYLLABICS WEST-CREE CWO;Lo;0;L;;;;;N;;;;;
+149A;CANADIAN SYLLABICS CWOO;Lo;0;L;;;;;N;;;;;
+149B;CANADIAN SYLLABICS WEST-CREE CWOO;Lo;0;L;;;;;N;;;;;
+149C;CANADIAN SYLLABICS CWA;Lo;0;L;;;;;N;;;;;
+149D;CANADIAN SYLLABICS WEST-CREE CWA;Lo;0;L;;;;;N;;;;;
+149E;CANADIAN SYLLABICS CWAA;Lo;0;L;;;;;N;;;;;
+149F;CANADIAN SYLLABICS WEST-CREE CWAA;Lo;0;L;;;;;N;;;;;
+14A0;CANADIAN SYLLABICS NASKAPI CWAA;Lo;0;L;;;;;N;;;;;
+14A1;CANADIAN SYLLABICS C;Lo;0;L;;;;;N;;;;;
+14A2;CANADIAN SYLLABICS SAYISI TH;Lo;0;L;;;;;N;;;;;
+14A3;CANADIAN SYLLABICS ME;Lo;0;L;;;;;N;;;;;
+14A4;CANADIAN SYLLABICS MAAI;Lo;0;L;;;;;N;;;;;
+14A5;CANADIAN SYLLABICS MI;Lo;0;L;;;;;N;;;;;
+14A6;CANADIAN SYLLABICS MII;Lo;0;L;;;;;N;;;;;
+14A7;CANADIAN SYLLABICS MO;Lo;0;L;;;;;N;;;;;
+14A8;CANADIAN SYLLABICS MOO;Lo;0;L;;;;;N;;;;;
+14A9;CANADIAN SYLLABICS Y-CREE MOO;Lo;0;L;;;;;N;;;;;
+14AA;CANADIAN SYLLABICS MA;Lo;0;L;;;;;N;;;;;
+14AB;CANADIAN SYLLABICS MAA;Lo;0;L;;;;;N;;;;;
+14AC;CANADIAN SYLLABICS MWE;Lo;0;L;;;;;N;;;;;
+14AD;CANADIAN SYLLABICS WEST-CREE MWE;Lo;0;L;;;;;N;;;;;
+14AE;CANADIAN SYLLABICS MWI;Lo;0;L;;;;;N;;;;;
+14AF;CANADIAN SYLLABICS WEST-CREE MWI;Lo;0;L;;;;;N;;;;;
+14B0;CANADIAN SYLLABICS MWII;Lo;0;L;;;;;N;;;;;
+14B1;CANADIAN SYLLABICS WEST-CREE MWII;Lo;0;L;;;;;N;;;;;
+14B2;CANADIAN SYLLABICS MWO;Lo;0;L;;;;;N;;;;;
+14B3;CANADIAN SYLLABICS WEST-CREE MWO;Lo;0;L;;;;;N;;;;;
+14B4;CANADIAN SYLLABICS MWOO;Lo;0;L;;;;;N;;;;;
+14B5;CANADIAN SYLLABICS WEST-CREE MWOO;Lo;0;L;;;;;N;;;;;
+14B6;CANADIAN SYLLABICS MWA;Lo;0;L;;;;;N;;;;;
+14B7;CANADIAN SYLLABICS WEST-CREE MWA;Lo;0;L;;;;;N;;;;;
+14B8;CANADIAN SYLLABICS MWAA;Lo;0;L;;;;;N;;;;;
+14B9;CANADIAN SYLLABICS WEST-CREE MWAA;Lo;0;L;;;;;N;;;;;
+14BA;CANADIAN SYLLABICS NASKAPI MWAA;Lo;0;L;;;;;N;;;;;
+14BB;CANADIAN SYLLABICS M;Lo;0;L;;;;;N;;;;;
+14BC;CANADIAN SYLLABICS WEST-CREE M;Lo;0;L;;;;;N;;;;;
+14BD;CANADIAN SYLLABICS MH;Lo;0;L;;;;;N;;;;;
+14BE;CANADIAN SYLLABICS ATHAPASCAN M;Lo;0;L;;;;;N;;;;;
+14BF;CANADIAN SYLLABICS SAYISI M;Lo;0;L;;;;;N;;;;;
+14C0;CANADIAN SYLLABICS NE;Lo;0;L;;;;;N;;;;;
+14C1;CANADIAN SYLLABICS NAAI;Lo;0;L;;;;;N;;;;;
+14C2;CANADIAN SYLLABICS NI;Lo;0;L;;;;;N;;;;;
+14C3;CANADIAN SYLLABICS NII;Lo;0;L;;;;;N;;;;;
+14C4;CANADIAN SYLLABICS NO;Lo;0;L;;;;;N;;;;;
+14C5;CANADIAN SYLLABICS NOO;Lo;0;L;;;;;N;;;;;
+14C6;CANADIAN SYLLABICS Y-CREE NOO;Lo;0;L;;;;;N;;;;;
+14C7;CANADIAN SYLLABICS NA;Lo;0;L;;;;;N;;;;;
+14C8;CANADIAN SYLLABICS NAA;Lo;0;L;;;;;N;;;;;
+14C9;CANADIAN SYLLABICS NWE;Lo;0;L;;;;;N;;;;;
+14CA;CANADIAN SYLLABICS WEST-CREE NWE;Lo;0;L;;;;;N;;;;;
+14CB;CANADIAN SYLLABICS NWA;Lo;0;L;;;;;N;;;;;
+14CC;CANADIAN SYLLABICS WEST-CREE NWA;Lo;0;L;;;;;N;;;;;
+14CD;CANADIAN SYLLABICS NWAA;Lo;0;L;;;;;N;;;;;
+14CE;CANADIAN SYLLABICS WEST-CREE NWAA;Lo;0;L;;;;;N;;;;;
+14CF;CANADIAN SYLLABICS NASKAPI NWAA;Lo;0;L;;;;;N;;;;;
+14D0;CANADIAN SYLLABICS N;Lo;0;L;;;;;N;;;;;
+14D1;CANADIAN SYLLABICS CARRIER NG;Lo;0;L;;;;;N;;;;;
+14D2;CANADIAN SYLLABICS NH;Lo;0;L;;;;;N;;;;;
+14D3;CANADIAN SYLLABICS LE;Lo;0;L;;;;;N;;;;;
+14D4;CANADIAN SYLLABICS LAAI;Lo;0;L;;;;;N;;;;;
+14D5;CANADIAN SYLLABICS LI;Lo;0;L;;;;;N;;;;;
+14D6;CANADIAN SYLLABICS LII;Lo;0;L;;;;;N;;;;;
+14D7;CANADIAN SYLLABICS LO;Lo;0;L;;;;;N;;;;;
+14D8;CANADIAN SYLLABICS LOO;Lo;0;L;;;;;N;;;;;
+14D9;CANADIAN SYLLABICS Y-CREE LOO;Lo;0;L;;;;;N;;;;;
+14DA;CANADIAN SYLLABICS LA;Lo;0;L;;;;;N;;;;;
+14DB;CANADIAN SYLLABICS LAA;Lo;0;L;;;;;N;;;;;
+14DC;CANADIAN SYLLABICS LWE;Lo;0;L;;;;;N;;;;;
+14DD;CANADIAN SYLLABICS WEST-CREE LWE;Lo;0;L;;;;;N;;;;;
+14DE;CANADIAN SYLLABICS LWI;Lo;0;L;;;;;N;;;;;
+14DF;CANADIAN SYLLABICS WEST-CREE LWI;Lo;0;L;;;;;N;;;;;
+14E0;CANADIAN SYLLABICS LWII;Lo;0;L;;;;;N;;;;;
+14E1;CANADIAN SYLLABICS WEST-CREE LWII;Lo;0;L;;;;;N;;;;;
+14E2;CANADIAN SYLLABICS LWO;Lo;0;L;;;;;N;;;;;
+14E3;CANADIAN SYLLABICS WEST-CREE LWO;Lo;0;L;;;;;N;;;;;
+14E4;CANADIAN SYLLABICS LWOO;Lo;0;L;;;;;N;;;;;
+14E5;CANADIAN SYLLABICS WEST-CREE LWOO;Lo;0;L;;;;;N;;;;;
+14E6;CANADIAN SYLLABICS LWA;Lo;0;L;;;;;N;;;;;
+14E7;CANADIAN SYLLABICS WEST-CREE LWA;Lo;0;L;;;;;N;;;;;
+14E8;CANADIAN SYLLABICS LWAA;Lo;0;L;;;;;N;;;;;
+14E9;CANADIAN SYLLABICS WEST-CREE LWAA;Lo;0;L;;;;;N;;;;;
+14EA;CANADIAN SYLLABICS L;Lo;0;L;;;;;N;;;;;
+14EB;CANADIAN SYLLABICS WEST-CREE L;Lo;0;L;;;;;N;;;;;
+14EC;CANADIAN SYLLABICS MEDIAL L;Lo;0;L;;;;;N;;;;;
+14ED;CANADIAN SYLLABICS SE;Lo;0;L;;;;;N;;;;;
+14EE;CANADIAN SYLLABICS SAAI;Lo;0;L;;;;;N;;;;;
+14EF;CANADIAN SYLLABICS SI;Lo;0;L;;;;;N;;;;;
+14F0;CANADIAN SYLLABICS SII;Lo;0;L;;;;;N;;;;;
+14F1;CANADIAN SYLLABICS SO;Lo;0;L;;;;;N;;;;;
+14F2;CANADIAN SYLLABICS SOO;Lo;0;L;;;;;N;;;;;
+14F3;CANADIAN SYLLABICS Y-CREE SOO;Lo;0;L;;;;;N;;;;;
+14F4;CANADIAN SYLLABICS SA;Lo;0;L;;;;;N;;;;;
+14F5;CANADIAN SYLLABICS SAA;Lo;0;L;;;;;N;;;;;
+14F6;CANADIAN SYLLABICS SWE;Lo;0;L;;;;;N;;;;;
+14F7;CANADIAN SYLLABICS WEST-CREE SWE;Lo;0;L;;;;;N;;;;;
+14F8;CANADIAN SYLLABICS SWI;Lo;0;L;;;;;N;;;;;
+14F9;CANADIAN SYLLABICS WEST-CREE SWI;Lo;0;L;;;;;N;;;;;
+14FA;CANADIAN SYLLABICS SWII;Lo;0;L;;;;;N;;;;;
+14FB;CANADIAN SYLLABICS WEST-CREE SWII;Lo;0;L;;;;;N;;;;;
+14FC;CANADIAN SYLLABICS SWO;Lo;0;L;;;;;N;;;;;
+14FD;CANADIAN SYLLABICS WEST-CREE SWO;Lo;0;L;;;;;N;;;;;
+14FE;CANADIAN SYLLABICS SWOO;Lo;0;L;;;;;N;;;;;
+14FF;CANADIAN SYLLABICS WEST-CREE SWOO;Lo;0;L;;;;;N;;;;;
+1500;CANADIAN SYLLABICS SWA;Lo;0;L;;;;;N;;;;;
+1501;CANADIAN SYLLABICS WEST-CREE SWA;Lo;0;L;;;;;N;;;;;
+1502;CANADIAN SYLLABICS SWAA;Lo;0;L;;;;;N;;;;;
+1503;CANADIAN SYLLABICS WEST-CREE SWAA;Lo;0;L;;;;;N;;;;;
+1504;CANADIAN SYLLABICS NASKAPI SWAA;Lo;0;L;;;;;N;;;;;
+1505;CANADIAN SYLLABICS S;Lo;0;L;;;;;N;;;;;
+1506;CANADIAN SYLLABICS ATHAPASCAN S;Lo;0;L;;;;;N;;;;;
+1507;CANADIAN SYLLABICS SW;Lo;0;L;;;;;N;;;;;
+1508;CANADIAN SYLLABICS BLACKFOOT S;Lo;0;L;;;;;N;;;;;
+1509;CANADIAN SYLLABICS MOOSE-CREE SK;Lo;0;L;;;;;N;;;;;
+150A;CANADIAN SYLLABICS NASKAPI SKW;Lo;0;L;;;;;N;;;;;
+150B;CANADIAN SYLLABICS NASKAPI S-W;Lo;0;L;;;;;N;;;;;
+150C;CANADIAN SYLLABICS NASKAPI SPWA;Lo;0;L;;;;;N;;;;;
+150D;CANADIAN SYLLABICS NASKAPI STWA;Lo;0;L;;;;;N;;;;;
+150E;CANADIAN SYLLABICS NASKAPI SKWA;Lo;0;L;;;;;N;;;;;
+150F;CANADIAN SYLLABICS NASKAPI SCWA;Lo;0;L;;;;;N;;;;;
+1510;CANADIAN SYLLABICS SHE;Lo;0;L;;;;;N;;;;;
+1511;CANADIAN SYLLABICS SHI;Lo;0;L;;;;;N;;;;;
+1512;CANADIAN SYLLABICS SHII;Lo;0;L;;;;;N;;;;;
+1513;CANADIAN SYLLABICS SHO;Lo;0;L;;;;;N;;;;;
+1514;CANADIAN SYLLABICS SHOO;Lo;0;L;;;;;N;;;;;
+1515;CANADIAN SYLLABICS SHA;Lo;0;L;;;;;N;;;;;
+1516;CANADIAN SYLLABICS SHAA;Lo;0;L;;;;;N;;;;;
+1517;CANADIAN SYLLABICS SHWE;Lo;0;L;;;;;N;;;;;
+1518;CANADIAN SYLLABICS WEST-CREE SHWE;Lo;0;L;;;;;N;;;;;
+1519;CANADIAN SYLLABICS SHWI;Lo;0;L;;;;;N;;;;;
+151A;CANADIAN SYLLABICS WEST-CREE SHWI;Lo;0;L;;;;;N;;;;;
+151B;CANADIAN SYLLABICS SHWII;Lo;0;L;;;;;N;;;;;
+151C;CANADIAN SYLLABICS WEST-CREE SHWII;Lo;0;L;;;;;N;;;;;
+151D;CANADIAN SYLLABICS SHWO;Lo;0;L;;;;;N;;;;;
+151E;CANADIAN SYLLABICS WEST-CREE SHWO;Lo;0;L;;;;;N;;;;;
+151F;CANADIAN SYLLABICS SHWOO;Lo;0;L;;;;;N;;;;;
+1520;CANADIAN SYLLABICS WEST-CREE SHWOO;Lo;0;L;;;;;N;;;;;
+1521;CANADIAN SYLLABICS SHWA;Lo;0;L;;;;;N;;;;;
+1522;CANADIAN SYLLABICS WEST-CREE SHWA;Lo;0;L;;;;;N;;;;;
+1523;CANADIAN SYLLABICS SHWAA;Lo;0;L;;;;;N;;;;;
+1524;CANADIAN SYLLABICS WEST-CREE SHWAA;Lo;0;L;;;;;N;;;;;
+1525;CANADIAN SYLLABICS SH;Lo;0;L;;;;;N;;;;;
+1526;CANADIAN SYLLABICS YE;Lo;0;L;;;;;N;;;;;
+1527;CANADIAN SYLLABICS YAAI;Lo;0;L;;;;;N;;;;;
+1528;CANADIAN SYLLABICS YI;Lo;0;L;;;;;N;;;;;
+1529;CANADIAN SYLLABICS YII;Lo;0;L;;;;;N;;;;;
+152A;CANADIAN SYLLABICS YO;Lo;0;L;;;;;N;;;;;
+152B;CANADIAN SYLLABICS YOO;Lo;0;L;;;;;N;;;;;
+152C;CANADIAN SYLLABICS Y-CREE YOO;Lo;0;L;;;;;N;;;;;
+152D;CANADIAN SYLLABICS YA;Lo;0;L;;;;;N;;;;;
+152E;CANADIAN SYLLABICS YAA;Lo;0;L;;;;;N;;;;;
+152F;CANADIAN SYLLABICS YWE;Lo;0;L;;;;;N;;;;;
+1530;CANADIAN SYLLABICS WEST-CREE YWE;Lo;0;L;;;;;N;;;;;
+1531;CANADIAN SYLLABICS YWI;Lo;0;L;;;;;N;;;;;
+1532;CANADIAN SYLLABICS WEST-CREE YWI;Lo;0;L;;;;;N;;;;;
+1533;CANADIAN SYLLABICS YWII;Lo;0;L;;;;;N;;;;;
+1534;CANADIAN SYLLABICS WEST-CREE YWII;Lo;0;L;;;;;N;;;;;
+1535;CANADIAN SYLLABICS YWO;Lo;0;L;;;;;N;;;;;
+1536;CANADIAN SYLLABICS WEST-CREE YWO;Lo;0;L;;;;;N;;;;;
+1537;CANADIAN SYLLABICS YWOO;Lo;0;L;;;;;N;;;;;
+1538;CANADIAN SYLLABICS WEST-CREE YWOO;Lo;0;L;;;;;N;;;;;
+1539;CANADIAN SYLLABICS YWA;Lo;0;L;;;;;N;;;;;
+153A;CANADIAN SYLLABICS WEST-CREE YWA;Lo;0;L;;;;;N;;;;;
+153B;CANADIAN SYLLABICS YWAA;Lo;0;L;;;;;N;;;;;
+153C;CANADIAN SYLLABICS WEST-CREE YWAA;Lo;0;L;;;;;N;;;;;
+153D;CANADIAN SYLLABICS NASKAPI YWAA;Lo;0;L;;;;;N;;;;;
+153E;CANADIAN SYLLABICS Y;Lo;0;L;;;;;N;;;;;
+153F;CANADIAN SYLLABICS BIBLE-CREE Y;Lo;0;L;;;;;N;;;;;
+1540;CANADIAN SYLLABICS WEST-CREE Y;Lo;0;L;;;;;N;;;;;
+1541;CANADIAN SYLLABICS SAYISI YI;Lo;0;L;;;;;N;;;;;
+1542;CANADIAN SYLLABICS RE;Lo;0;L;;;;;N;;;;;
+1543;CANADIAN SYLLABICS R-CREE RE;Lo;0;L;;;;;N;;;;;
+1544;CANADIAN SYLLABICS WEST-CREE LE;Lo;0;L;;;;;N;;;;;
+1545;CANADIAN SYLLABICS RAAI;Lo;0;L;;;;;N;;;;;
+1546;CANADIAN SYLLABICS RI;Lo;0;L;;;;;N;;;;;
+1547;CANADIAN SYLLABICS RII;Lo;0;L;;;;;N;;;;;
+1548;CANADIAN SYLLABICS RO;Lo;0;L;;;;;N;;;;;
+1549;CANADIAN SYLLABICS ROO;Lo;0;L;;;;;N;;;;;
+154A;CANADIAN SYLLABICS WEST-CREE LO;Lo;0;L;;;;;N;;;;;
+154B;CANADIAN SYLLABICS RA;Lo;0;L;;;;;N;;;;;
+154C;CANADIAN SYLLABICS RAA;Lo;0;L;;;;;N;;;;;
+154D;CANADIAN SYLLABICS WEST-CREE LA;Lo;0;L;;;;;N;;;;;
+154E;CANADIAN SYLLABICS RWAA;Lo;0;L;;;;;N;;;;;
+154F;CANADIAN SYLLABICS WEST-CREE RWAA;Lo;0;L;;;;;N;;;;;
+1550;CANADIAN SYLLABICS R;Lo;0;L;;;;;N;;;;;
+1551;CANADIAN SYLLABICS WEST-CREE R;Lo;0;L;;;;;N;;;;;
+1552;CANADIAN SYLLABICS MEDIAL R;Lo;0;L;;;;;N;;;;;
+1553;CANADIAN SYLLABICS FE;Lo;0;L;;;;;N;;;;;
+1554;CANADIAN SYLLABICS FAAI;Lo;0;L;;;;;N;;;;;
+1555;CANADIAN SYLLABICS FI;Lo;0;L;;;;;N;;;;;
+1556;CANADIAN SYLLABICS FII;Lo;0;L;;;;;N;;;;;
+1557;CANADIAN SYLLABICS FO;Lo;0;L;;;;;N;;;;;
+1558;CANADIAN SYLLABICS FOO;Lo;0;L;;;;;N;;;;;
+1559;CANADIAN SYLLABICS FA;Lo;0;L;;;;;N;;;;;
+155A;CANADIAN SYLLABICS FAA;Lo;0;L;;;;;N;;;;;
+155B;CANADIAN SYLLABICS FWAA;Lo;0;L;;;;;N;;;;;
+155C;CANADIAN SYLLABICS WEST-CREE FWAA;Lo;0;L;;;;;N;;;;;
+155D;CANADIAN SYLLABICS F;Lo;0;L;;;;;N;;;;;
+155E;CANADIAN SYLLABICS THE;Lo;0;L;;;;;N;;;;;
+155F;CANADIAN SYLLABICS N-CREE THE;Lo;0;L;;;;;N;;;;;
+1560;CANADIAN SYLLABICS THI;Lo;0;L;;;;;N;;;;;
+1561;CANADIAN SYLLABICS N-CREE THI;Lo;0;L;;;;;N;;;;;
+1562;CANADIAN SYLLABICS THII;Lo;0;L;;;;;N;;;;;
+1563;CANADIAN SYLLABICS N-CREE THII;Lo;0;L;;;;;N;;;;;
+1564;CANADIAN SYLLABICS THO;Lo;0;L;;;;;N;;;;;
+1565;CANADIAN SYLLABICS THOO;Lo;0;L;;;;;N;;;;;
+1566;CANADIAN SYLLABICS THA;Lo;0;L;;;;;N;;;;;
+1567;CANADIAN SYLLABICS THAA;Lo;0;L;;;;;N;;;;;
+1568;CANADIAN SYLLABICS THWAA;Lo;0;L;;;;;N;;;;;
+1569;CANADIAN SYLLABICS WEST-CREE THWAA;Lo;0;L;;;;;N;;;;;
+156A;CANADIAN SYLLABICS TH;Lo;0;L;;;;;N;;;;;
+156B;CANADIAN SYLLABICS TTHE;Lo;0;L;;;;;N;;;;;
+156C;CANADIAN SYLLABICS TTHI;Lo;0;L;;;;;N;;;;;
+156D;CANADIAN SYLLABICS TTHO;Lo;0;L;;;;;N;;;;;
+156E;CANADIAN SYLLABICS TTHA;Lo;0;L;;;;;N;;;;;
+156F;CANADIAN SYLLABICS TTH;Lo;0;L;;;;;N;;;;;
+1570;CANADIAN SYLLABICS TYE;Lo;0;L;;;;;N;;;;;
+1571;CANADIAN SYLLABICS TYI;Lo;0;L;;;;;N;;;;;
+1572;CANADIAN SYLLABICS TYO;Lo;0;L;;;;;N;;;;;
+1573;CANADIAN SYLLABICS TYA;Lo;0;L;;;;;N;;;;;
+1574;CANADIAN SYLLABICS NUNAVIK HE;Lo;0;L;;;;;N;;;;;
+1575;CANADIAN SYLLABICS NUNAVIK HI;Lo;0;L;;;;;N;;;;;
+1576;CANADIAN SYLLABICS NUNAVIK HII;Lo;0;L;;;;;N;;;;;
+1577;CANADIAN SYLLABICS NUNAVIK HO;Lo;0;L;;;;;N;;;;;
+1578;CANADIAN SYLLABICS NUNAVIK HOO;Lo;0;L;;;;;N;;;;;
+1579;CANADIAN SYLLABICS NUNAVIK HA;Lo;0;L;;;;;N;;;;;
+157A;CANADIAN SYLLABICS NUNAVIK HAA;Lo;0;L;;;;;N;;;;;
+157B;CANADIAN SYLLABICS NUNAVIK H;Lo;0;L;;;;;N;;;;;
+157C;CANADIAN SYLLABICS NUNAVUT H;Lo;0;L;;;;;N;;;;;
+157D;CANADIAN SYLLABICS HK;Lo;0;L;;;;;N;;;;;
+157E;CANADIAN SYLLABICS QAAI;Lo;0;L;;;;;N;;;;;
+157F;CANADIAN SYLLABICS QI;Lo;0;L;;;;;N;;;;;
+1580;CANADIAN SYLLABICS QII;Lo;0;L;;;;;N;;;;;
+1581;CANADIAN SYLLABICS QO;Lo;0;L;;;;;N;;;;;
+1582;CANADIAN SYLLABICS QOO;Lo;0;L;;;;;N;;;;;
+1583;CANADIAN SYLLABICS QA;Lo;0;L;;;;;N;;;;;
+1584;CANADIAN SYLLABICS QAA;Lo;0;L;;;;;N;;;;;
+1585;CANADIAN SYLLABICS Q;Lo;0;L;;;;;N;;;;;
+1586;CANADIAN SYLLABICS TLHE;Lo;0;L;;;;;N;;;;;
+1587;CANADIAN SYLLABICS TLHI;Lo;0;L;;;;;N;;;;;
+1588;CANADIAN SYLLABICS TLHO;Lo;0;L;;;;;N;;;;;
+1589;CANADIAN SYLLABICS TLHA;Lo;0;L;;;;;N;;;;;
+158A;CANADIAN SYLLABICS WEST-CREE RE;Lo;0;L;;;;;N;;;;;
+158B;CANADIAN SYLLABICS WEST-CREE RI;Lo;0;L;;;;;N;;;;;
+158C;CANADIAN SYLLABICS WEST-CREE RO;Lo;0;L;;;;;N;;;;;
+158D;CANADIAN SYLLABICS WEST-CREE RA;Lo;0;L;;;;;N;;;;;
+158E;CANADIAN SYLLABICS NGAAI;Lo;0;L;;;;;N;;;;;
+158F;CANADIAN SYLLABICS NGI;Lo;0;L;;;;;N;;;;;
+1590;CANADIAN SYLLABICS NGII;Lo;0;L;;;;;N;;;;;
+1591;CANADIAN SYLLABICS NGO;Lo;0;L;;;;;N;;;;;
+1592;CANADIAN SYLLABICS NGOO;Lo;0;L;;;;;N;;;;;
+1593;CANADIAN SYLLABICS NGA;Lo;0;L;;;;;N;;;;;
+1594;CANADIAN SYLLABICS NGAA;Lo;0;L;;;;;N;;;;;
+1595;CANADIAN SYLLABICS NG;Lo;0;L;;;;;N;;;;;
+1596;CANADIAN SYLLABICS NNG;Lo;0;L;;;;;N;;;;;
+1597;CANADIAN SYLLABICS SAYISI SHE;Lo;0;L;;;;;N;;;;;
+1598;CANADIAN SYLLABICS SAYISI SHI;Lo;0;L;;;;;N;;;;;
+1599;CANADIAN SYLLABICS SAYISI SHO;Lo;0;L;;;;;N;;;;;
+159A;CANADIAN SYLLABICS SAYISI SHA;Lo;0;L;;;;;N;;;;;
+159B;CANADIAN SYLLABICS WOODS-CREE THE;Lo;0;L;;;;;N;;;;;
+159C;CANADIAN SYLLABICS WOODS-CREE THI;Lo;0;L;;;;;N;;;;;
+159D;CANADIAN SYLLABICS WOODS-CREE THO;Lo;0;L;;;;;N;;;;;
+159E;CANADIAN SYLLABICS WOODS-CREE THA;Lo;0;L;;;;;N;;;;;
+159F;CANADIAN SYLLABICS WOODS-CREE TH;Lo;0;L;;;;;N;;;;;
+15A0;CANADIAN SYLLABICS LHI;Lo;0;L;;;;;N;;;;;
+15A1;CANADIAN SYLLABICS LHII;Lo;0;L;;;;;N;;;;;
+15A2;CANADIAN SYLLABICS LHO;Lo;0;L;;;;;N;;;;;
+15A3;CANADIAN SYLLABICS LHOO;Lo;0;L;;;;;N;;;;;
+15A4;CANADIAN SYLLABICS LHA;Lo;0;L;;;;;N;;;;;
+15A5;CANADIAN SYLLABICS LHAA;Lo;0;L;;;;;N;;;;;
+15A6;CANADIAN SYLLABICS LH;Lo;0;L;;;;;N;;;;;
+15A7;CANADIAN SYLLABICS TH-CREE THE;Lo;0;L;;;;;N;;;;;
+15A8;CANADIAN SYLLABICS TH-CREE THI;Lo;0;L;;;;;N;;;;;
+15A9;CANADIAN SYLLABICS TH-CREE THII;Lo;0;L;;;;;N;;;;;
+15AA;CANADIAN SYLLABICS TH-CREE THO;Lo;0;L;;;;;N;;;;;
+15AB;CANADIAN SYLLABICS TH-CREE THOO;Lo;0;L;;;;;N;;;;;
+15AC;CANADIAN SYLLABICS TH-CREE THA;Lo;0;L;;;;;N;;;;;
+15AD;CANADIAN SYLLABICS TH-CREE THAA;Lo;0;L;;;;;N;;;;;
+15AE;CANADIAN SYLLABICS TH-CREE TH;Lo;0;L;;;;;N;;;;;
+15AF;CANADIAN SYLLABICS AIVILIK B;Lo;0;L;;;;;N;;;;;
+15B0;CANADIAN SYLLABICS BLACKFOOT E;Lo;0;L;;;;;N;;;;;
+15B1;CANADIAN SYLLABICS BLACKFOOT I;Lo;0;L;;;;;N;;;;;
+15B2;CANADIAN SYLLABICS BLACKFOOT O;Lo;0;L;;;;;N;;;;;
+15B3;CANADIAN SYLLABICS BLACKFOOT A;Lo;0;L;;;;;N;;;;;
+15B4;CANADIAN SYLLABICS BLACKFOOT WE;Lo;0;L;;;;;N;;;;;
+15B5;CANADIAN SYLLABICS BLACKFOOT WI;Lo;0;L;;;;;N;;;;;
+15B6;CANADIAN SYLLABICS BLACKFOOT WO;Lo;0;L;;;;;N;;;;;
+15B7;CANADIAN SYLLABICS BLACKFOOT WA;Lo;0;L;;;;;N;;;;;
+15B8;CANADIAN SYLLABICS BLACKFOOT NE;Lo;0;L;;;;;N;;;;;
+15B9;CANADIAN SYLLABICS BLACKFOOT NI;Lo;0;L;;;;;N;;;;;
+15BA;CANADIAN SYLLABICS BLACKFOOT NO;Lo;0;L;;;;;N;;;;;
+15BB;CANADIAN SYLLABICS BLACKFOOT NA;Lo;0;L;;;;;N;;;;;
+15BC;CANADIAN SYLLABICS BLACKFOOT KE;Lo;0;L;;;;;N;;;;;
+15BD;CANADIAN SYLLABICS BLACKFOOT KI;Lo;0;L;;;;;N;;;;;
+15BE;CANADIAN SYLLABICS BLACKFOOT KO;Lo;0;L;;;;;N;;;;;
+15BF;CANADIAN SYLLABICS BLACKFOOT KA;Lo;0;L;;;;;N;;;;;
+15C0;CANADIAN SYLLABICS SAYISI HE;Lo;0;L;;;;;N;;;;;
+15C1;CANADIAN SYLLABICS SAYISI HI;Lo;0;L;;;;;N;;;;;
+15C2;CANADIAN SYLLABICS SAYISI HO;Lo;0;L;;;;;N;;;;;
+15C3;CANADIAN SYLLABICS SAYISI HA;Lo;0;L;;;;;N;;;;;
+15C4;CANADIAN SYLLABICS CARRIER GHU;Lo;0;L;;;;;N;;;;;
+15C5;CANADIAN SYLLABICS CARRIER GHO;Lo;0;L;;;;;N;;;;;
+15C6;CANADIAN SYLLABICS CARRIER GHE;Lo;0;L;;;;;N;;;;;
+15C7;CANADIAN SYLLABICS CARRIER GHEE;Lo;0;L;;;;;N;;;;;
+15C8;CANADIAN SYLLABICS CARRIER GHI;Lo;0;L;;;;;N;;;;;
+15C9;CANADIAN SYLLABICS CARRIER GHA;Lo;0;L;;;;;N;;;;;
+15CA;CANADIAN SYLLABICS CARRIER RU;Lo;0;L;;;;;N;;;;;
+15CB;CANADIAN SYLLABICS CARRIER RO;Lo;0;L;;;;;N;;;;;
+15CC;CANADIAN SYLLABICS CARRIER RE;Lo;0;L;;;;;N;;;;;
+15CD;CANADIAN SYLLABICS CARRIER REE;Lo;0;L;;;;;N;;;;;
+15CE;CANADIAN SYLLABICS CARRIER RI;Lo;0;L;;;;;N;;;;;
+15CF;CANADIAN SYLLABICS CARRIER RA;Lo;0;L;;;;;N;;;;;
+15D0;CANADIAN SYLLABICS CARRIER WU;Lo;0;L;;;;;N;;;;;
+15D1;CANADIAN SYLLABICS CARRIER WO;Lo;0;L;;;;;N;;;;;
+15D2;CANADIAN SYLLABICS CARRIER WE;Lo;0;L;;;;;N;;;;;
+15D3;CANADIAN SYLLABICS CARRIER WEE;Lo;0;L;;;;;N;;;;;
+15D4;CANADIAN SYLLABICS CARRIER WI;Lo;0;L;;;;;N;;;;;
+15D5;CANADIAN SYLLABICS CARRIER WA;Lo;0;L;;;;;N;;;;;
+15D6;CANADIAN SYLLABICS CARRIER HWU;Lo;0;L;;;;;N;;;;;
+15D7;CANADIAN SYLLABICS CARRIER HWO;Lo;0;L;;;;;N;;;;;
+15D8;CANADIAN SYLLABICS CARRIER HWE;Lo;0;L;;;;;N;;;;;
+15D9;CANADIAN SYLLABICS CARRIER HWEE;Lo;0;L;;;;;N;;;;;
+15DA;CANADIAN SYLLABICS CARRIER HWI;Lo;0;L;;;;;N;;;;;
+15DB;CANADIAN SYLLABICS CARRIER HWA;Lo;0;L;;;;;N;;;;;
+15DC;CANADIAN SYLLABICS CARRIER THU;Lo;0;L;;;;;N;;;;;
+15DD;CANADIAN SYLLABICS CARRIER THO;Lo;0;L;;;;;N;;;;;
+15DE;CANADIAN SYLLABICS CARRIER THE;Lo;0;L;;;;;N;;;;;
+15DF;CANADIAN SYLLABICS CARRIER THEE;Lo;0;L;;;;;N;;;;;
+15E0;CANADIAN SYLLABICS CARRIER THI;Lo;0;L;;;;;N;;;;;
+15E1;CANADIAN SYLLABICS CARRIER THA;Lo;0;L;;;;;N;;;;;
+15E2;CANADIAN SYLLABICS CARRIER TTU;Lo;0;L;;;;;N;;;;;
+15E3;CANADIAN SYLLABICS CARRIER TTO;Lo;0;L;;;;;N;;;;;
+15E4;CANADIAN SYLLABICS CARRIER TTE;Lo;0;L;;;;;N;;;;;
+15E5;CANADIAN SYLLABICS CARRIER TTEE;Lo;0;L;;;;;N;;;;;
+15E6;CANADIAN SYLLABICS CARRIER TTI;Lo;0;L;;;;;N;;;;;
+15E7;CANADIAN SYLLABICS CARRIER TTA;Lo;0;L;;;;;N;;;;;
+15E8;CANADIAN SYLLABICS CARRIER PU;Lo;0;L;;;;;N;;;;;
+15E9;CANADIAN SYLLABICS CARRIER PO;Lo;0;L;;;;;N;;;;;
+15EA;CANADIAN SYLLABICS CARRIER PE;Lo;0;L;;;;;N;;;;;
+15EB;CANADIAN SYLLABICS CARRIER PEE;Lo;0;L;;;;;N;;;;;
+15EC;CANADIAN SYLLABICS CARRIER PI;Lo;0;L;;;;;N;;;;;
+15ED;CANADIAN SYLLABICS CARRIER PA;Lo;0;L;;;;;N;;;;;
+15EE;CANADIAN SYLLABICS CARRIER P;Lo;0;L;;;;;N;;;;;
+15EF;CANADIAN SYLLABICS CARRIER GU;Lo;0;L;;;;;N;;;;;
+15F0;CANADIAN SYLLABICS CARRIER GO;Lo;0;L;;;;;N;;;;;
+15F1;CANADIAN SYLLABICS CARRIER GE;Lo;0;L;;;;;N;;;;;
+15F2;CANADIAN SYLLABICS CARRIER GEE;Lo;0;L;;;;;N;;;;;
+15F3;CANADIAN SYLLABICS CARRIER GI;Lo;0;L;;;;;N;;;;;
+15F4;CANADIAN SYLLABICS CARRIER GA;Lo;0;L;;;;;N;;;;;
+15F5;CANADIAN SYLLABICS CARRIER KHU;Lo;0;L;;;;;N;;;;;
+15F6;CANADIAN SYLLABICS CARRIER KHO;Lo;0;L;;;;;N;;;;;
+15F7;CANADIAN SYLLABICS CARRIER KHE;Lo;0;L;;;;;N;;;;;
+15F8;CANADIAN SYLLABICS CARRIER KHEE;Lo;0;L;;;;;N;;;;;
+15F9;CANADIAN SYLLABICS CARRIER KHI;Lo;0;L;;;;;N;;;;;
+15FA;CANADIAN SYLLABICS CARRIER KHA;Lo;0;L;;;;;N;;;;;
+15FB;CANADIAN SYLLABICS CARRIER KKU;Lo;0;L;;;;;N;;;;;
+15FC;CANADIAN SYLLABICS CARRIER KKO;Lo;0;L;;;;;N;;;;;
+15FD;CANADIAN SYLLABICS CARRIER KKE;Lo;0;L;;;;;N;;;;;
+15FE;CANADIAN SYLLABICS CARRIER KKEE;Lo;0;L;;;;;N;;;;;
+15FF;CANADIAN SYLLABICS CARRIER KKI;Lo;0;L;;;;;N;;;;;
+1600;CANADIAN SYLLABICS CARRIER KKA;Lo;0;L;;;;;N;;;;;
+1601;CANADIAN SYLLABICS CARRIER KK;Lo;0;L;;;;;N;;;;;
+1602;CANADIAN SYLLABICS CARRIER NU;Lo;0;L;;;;;N;;;;;
+1603;CANADIAN SYLLABICS CARRIER NO;Lo;0;L;;;;;N;;;;;
+1604;CANADIAN SYLLABICS CARRIER NE;Lo;0;L;;;;;N;;;;;
+1605;CANADIAN SYLLABICS CARRIER NEE;Lo;0;L;;;;;N;;;;;
+1606;CANADIAN SYLLABICS CARRIER NI;Lo;0;L;;;;;N;;;;;
+1607;CANADIAN SYLLABICS CARRIER NA;Lo;0;L;;;;;N;;;;;
+1608;CANADIAN SYLLABICS CARRIER MU;Lo;0;L;;;;;N;;;;;
+1609;CANADIAN SYLLABICS CARRIER MO;Lo;0;L;;;;;N;;;;;
+160A;CANADIAN SYLLABICS CARRIER ME;Lo;0;L;;;;;N;;;;;
+160B;CANADIAN SYLLABICS CARRIER MEE;Lo;0;L;;;;;N;;;;;
+160C;CANADIAN SYLLABICS CARRIER MI;Lo;0;L;;;;;N;;;;;
+160D;CANADIAN SYLLABICS CARRIER MA;Lo;0;L;;;;;N;;;;;
+160E;CANADIAN SYLLABICS CARRIER YU;Lo;0;L;;;;;N;;;;;
+160F;CANADIAN SYLLABICS CARRIER YO;Lo;0;L;;;;;N;;;;;
+1610;CANADIAN SYLLABICS CARRIER YE;Lo;0;L;;;;;N;;;;;
+1611;CANADIAN SYLLABICS CARRIER YEE;Lo;0;L;;;;;N;;;;;
+1612;CANADIAN SYLLABICS CARRIER YI;Lo;0;L;;;;;N;;;;;
+1613;CANADIAN SYLLABICS CARRIER YA;Lo;0;L;;;;;N;;;;;
+1614;CANADIAN SYLLABICS CARRIER JU;Lo;0;L;;;;;N;;;;;
+1615;CANADIAN SYLLABICS SAYISI JU;Lo;0;L;;;;;N;;;;;
+1616;CANADIAN SYLLABICS CARRIER JO;Lo;0;L;;;;;N;;;;;
+1617;CANADIAN SYLLABICS CARRIER JE;Lo;0;L;;;;;N;;;;;
+1618;CANADIAN SYLLABICS CARRIER JEE;Lo;0;L;;;;;N;;;;;
+1619;CANADIAN SYLLABICS CARRIER JI;Lo;0;L;;;;;N;;;;;
+161A;CANADIAN SYLLABICS SAYISI JI;Lo;0;L;;;;;N;;;;;
+161B;CANADIAN SYLLABICS CARRIER JA;Lo;0;L;;;;;N;;;;;
+161C;CANADIAN SYLLABICS CARRIER JJU;Lo;0;L;;;;;N;;;;;
+161D;CANADIAN SYLLABICS CARRIER JJO;Lo;0;L;;;;;N;;;;;
+161E;CANADIAN SYLLABICS CARRIER JJE;Lo;0;L;;;;;N;;;;;
+161F;CANADIAN SYLLABICS CARRIER JJEE;Lo;0;L;;;;;N;;;;;
+1620;CANADIAN SYLLABICS CARRIER JJI;Lo;0;L;;;;;N;;;;;
+1621;CANADIAN SYLLABICS CARRIER JJA;Lo;0;L;;;;;N;;;;;
+1622;CANADIAN SYLLABICS CARRIER LU;Lo;0;L;;;;;N;;;;;
+1623;CANADIAN SYLLABICS CARRIER LO;Lo;0;L;;;;;N;;;;;
+1624;CANADIAN SYLLABICS CARRIER LE;Lo;0;L;;;;;N;;;;;
+1625;CANADIAN SYLLABICS CARRIER LEE;Lo;0;L;;;;;N;;;;;
+1626;CANADIAN SYLLABICS CARRIER LI;Lo;0;L;;;;;N;;;;;
+1627;CANADIAN SYLLABICS CARRIER LA;Lo;0;L;;;;;N;;;;;
+1628;CANADIAN SYLLABICS CARRIER DLU;Lo;0;L;;;;;N;;;;;
+1629;CANADIAN SYLLABICS CARRIER DLO;Lo;0;L;;;;;N;;;;;
+162A;CANADIAN SYLLABICS CARRIER DLE;Lo;0;L;;;;;N;;;;;
+162B;CANADIAN SYLLABICS CARRIER DLEE;Lo;0;L;;;;;N;;;;;
+162C;CANADIAN SYLLABICS CARRIER DLI;Lo;0;L;;;;;N;;;;;
+162D;CANADIAN SYLLABICS CARRIER DLA;Lo;0;L;;;;;N;;;;;
+162E;CANADIAN SYLLABICS CARRIER LHU;Lo;0;L;;;;;N;;;;;
+162F;CANADIAN SYLLABICS CARRIER LHO;Lo;0;L;;;;;N;;;;;
+1630;CANADIAN SYLLABICS CARRIER LHE;Lo;0;L;;;;;N;;;;;
+1631;CANADIAN SYLLABICS CARRIER LHEE;Lo;0;L;;;;;N;;;;;
+1632;CANADIAN SYLLABICS CARRIER LHI;Lo;0;L;;;;;N;;;;;
+1633;CANADIAN SYLLABICS CARRIER LHA;Lo;0;L;;;;;N;;;;;
+1634;CANADIAN SYLLABICS CARRIER TLHU;Lo;0;L;;;;;N;;;;;
+1635;CANADIAN SYLLABICS CARRIER TLHO;Lo;0;L;;;;;N;;;;;
+1636;CANADIAN SYLLABICS CARRIER TLHE;Lo;0;L;;;;;N;;;;;
+1637;CANADIAN SYLLABICS CARRIER TLHEE;Lo;0;L;;;;;N;;;;;
+1638;CANADIAN SYLLABICS CARRIER TLHI;Lo;0;L;;;;;N;;;;;
+1639;CANADIAN SYLLABICS CARRIER TLHA;Lo;0;L;;;;;N;;;;;
+163A;CANADIAN SYLLABICS CARRIER TLU;Lo;0;L;;;;;N;;;;;
+163B;CANADIAN SYLLABICS CARRIER TLO;Lo;0;L;;;;;N;;;;;
+163C;CANADIAN SYLLABICS CARRIER TLE;Lo;0;L;;;;;N;;;;;
+163D;CANADIAN SYLLABICS CARRIER TLEE;Lo;0;L;;;;;N;;;;;
+163E;CANADIAN SYLLABICS CARRIER TLI;Lo;0;L;;;;;N;;;;;
+163F;CANADIAN SYLLABICS CARRIER TLA;Lo;0;L;;;;;N;;;;;
+1640;CANADIAN SYLLABICS CARRIER ZU;Lo;0;L;;;;;N;;;;;
+1641;CANADIAN SYLLABICS CARRIER ZO;Lo;0;L;;;;;N;;;;;
+1642;CANADIAN SYLLABICS CARRIER ZE;Lo;0;L;;;;;N;;;;;
+1643;CANADIAN SYLLABICS CARRIER ZEE;Lo;0;L;;;;;N;;;;;
+1644;CANADIAN SYLLABICS CARRIER ZI;Lo;0;L;;;;;N;;;;;
+1645;CANADIAN SYLLABICS CARRIER ZA;Lo;0;L;;;;;N;;;;;
+1646;CANADIAN SYLLABICS CARRIER Z;Lo;0;L;;;;;N;;;;;
+1647;CANADIAN SYLLABICS CARRIER INITIAL Z;Lo;0;L;;;;;N;;;;;
+1648;CANADIAN SYLLABICS CARRIER DZU;Lo;0;L;;;;;N;;;;;
+1649;CANADIAN SYLLABICS CARRIER DZO;Lo;0;L;;;;;N;;;;;
+164A;CANADIAN SYLLABICS CARRIER DZE;Lo;0;L;;;;;N;;;;;
+164B;CANADIAN SYLLABICS CARRIER DZEE;Lo;0;L;;;;;N;;;;;
+164C;CANADIAN SYLLABICS CARRIER DZI;Lo;0;L;;;;;N;;;;;
+164D;CANADIAN SYLLABICS CARRIER DZA;Lo;0;L;;;;;N;;;;;
+164E;CANADIAN SYLLABICS CARRIER SU;Lo;0;L;;;;;N;;;;;
+164F;CANADIAN SYLLABICS CARRIER SO;Lo;0;L;;;;;N;;;;;
+1650;CANADIAN SYLLABICS CARRIER SE;Lo;0;L;;;;;N;;;;;
+1651;CANADIAN SYLLABICS CARRIER SEE;Lo;0;L;;;;;N;;;;;
+1652;CANADIAN SYLLABICS CARRIER SI;Lo;0;L;;;;;N;;;;;
+1653;CANADIAN SYLLABICS CARRIER SA;Lo;0;L;;;;;N;;;;;
+1654;CANADIAN SYLLABICS CARRIER SHU;Lo;0;L;;;;;N;;;;;
+1655;CANADIAN SYLLABICS CARRIER SHO;Lo;0;L;;;;;N;;;;;
+1656;CANADIAN SYLLABICS CARRIER SHE;Lo;0;L;;;;;N;;;;;
+1657;CANADIAN SYLLABICS CARRIER SHEE;Lo;0;L;;;;;N;;;;;
+1658;CANADIAN SYLLABICS CARRIER SHI;Lo;0;L;;;;;N;;;;;
+1659;CANADIAN SYLLABICS CARRIER SHA;Lo;0;L;;;;;N;;;;;
+165A;CANADIAN SYLLABICS CARRIER SH;Lo;0;L;;;;;N;;;;;
+165B;CANADIAN SYLLABICS CARRIER TSU;Lo;0;L;;;;;N;;;;;
+165C;CANADIAN SYLLABICS CARRIER TSO;Lo;0;L;;;;;N;;;;;
+165D;CANADIAN SYLLABICS CARRIER TSE;Lo;0;L;;;;;N;;;;;
+165E;CANADIAN SYLLABICS CARRIER TSEE;Lo;0;L;;;;;N;;;;;
+165F;CANADIAN SYLLABICS CARRIER TSI;Lo;0;L;;;;;N;;;;;
+1660;CANADIAN SYLLABICS CARRIER TSA;Lo;0;L;;;;;N;;;;;
+1661;CANADIAN SYLLABICS CARRIER CHU;Lo;0;L;;;;;N;;;;;
+1662;CANADIAN SYLLABICS CARRIER CHO;Lo;0;L;;;;;N;;;;;
+1663;CANADIAN SYLLABICS CARRIER CHE;Lo;0;L;;;;;N;;;;;
+1664;CANADIAN SYLLABICS CARRIER CHEE;Lo;0;L;;;;;N;;;;;
+1665;CANADIAN SYLLABICS CARRIER CHI;Lo;0;L;;;;;N;;;;;
+1666;CANADIAN SYLLABICS CARRIER CHA;Lo;0;L;;;;;N;;;;;
+1667;CANADIAN SYLLABICS CARRIER TTSU;Lo;0;L;;;;;N;;;;;
+1668;CANADIAN SYLLABICS CARRIER TTSO;Lo;0;L;;;;;N;;;;;
+1669;CANADIAN SYLLABICS CARRIER TTSE;Lo;0;L;;;;;N;;;;;
+166A;CANADIAN SYLLABICS CARRIER TTSEE;Lo;0;L;;;;;N;;;;;
+166B;CANADIAN SYLLABICS CARRIER TTSI;Lo;0;L;;;;;N;;;;;
+166C;CANADIAN SYLLABICS CARRIER TTSA;Lo;0;L;;;;;N;;;;;
+166D;CANADIAN SYLLABICS CHI SIGN;Po;0;L;;;;;N;;;;;
+166E;CANADIAN SYLLABICS FULL STOP;Po;0;L;;;;;N;;;;;
+166F;CANADIAN SYLLABICS QAI;Lo;0;L;;;;;N;;;;;
+1670;CANADIAN SYLLABICS NGAI;Lo;0;L;;;;;N;;;;;
+1671;CANADIAN SYLLABICS NNGI;Lo;0;L;;;;;N;;;;;
+1672;CANADIAN SYLLABICS NNGII;Lo;0;L;;;;;N;;;;;
+1673;CANADIAN SYLLABICS NNGO;Lo;0;L;;;;;N;;;;;
+1674;CANADIAN SYLLABICS NNGOO;Lo;0;L;;;;;N;;;;;
+1675;CANADIAN SYLLABICS NNGA;Lo;0;L;;;;;N;;;;;
+1676;CANADIAN SYLLABICS NNGAA;Lo;0;L;;;;;N;;;;;
+1680;OGHAM SPACE MARK;Zs;0;WS;;;;;N;;;;;
+1681;OGHAM LETTER BEITH;Lo;0;L;;;;;N;;;;;
+1682;OGHAM LETTER LUIS;Lo;0;L;;;;;N;;;;;
+1683;OGHAM LETTER FEARN;Lo;0;L;;;;;N;;;;;
+1684;OGHAM LETTER SAIL;Lo;0;L;;;;;N;;;;;
+1685;OGHAM LETTER NION;Lo;0;L;;;;;N;;;;;
+1686;OGHAM LETTER UATH;Lo;0;L;;;;;N;;;;;
+1687;OGHAM LETTER DAIR;Lo;0;L;;;;;N;;;;;
+1688;OGHAM LETTER TINNE;Lo;0;L;;;;;N;;;;;
+1689;OGHAM LETTER COLL;Lo;0;L;;;;;N;;;;;
+168A;OGHAM LETTER CEIRT;Lo;0;L;;;;;N;;;;;
+168B;OGHAM LETTER MUIN;Lo;0;L;;;;;N;;;;;
+168C;OGHAM LETTER GORT;Lo;0;L;;;;;N;;;;;
+168D;OGHAM LETTER NGEADAL;Lo;0;L;;;;;N;;;;;
+168E;OGHAM LETTER STRAIF;Lo;0;L;;;;;N;;;;;
+168F;OGHAM LETTER RUIS;Lo;0;L;;;;;N;;;;;
+1690;OGHAM LETTER AILM;Lo;0;L;;;;;N;;;;;
+1691;OGHAM LETTER ONN;Lo;0;L;;;;;N;;;;;
+1692;OGHAM LETTER UR;Lo;0;L;;;;;N;;;;;
+1693;OGHAM LETTER EADHADH;Lo;0;L;;;;;N;;;;;
+1694;OGHAM LETTER IODHADH;Lo;0;L;;;;;N;;;;;
+1695;OGHAM LETTER EABHADH;Lo;0;L;;;;;N;;;;;
+1696;OGHAM LETTER OR;Lo;0;L;;;;;N;;;;;
+1697;OGHAM LETTER UILLEANN;Lo;0;L;;;;;N;;;;;
+1698;OGHAM LETTER IFIN;Lo;0;L;;;;;N;;;;;
+1699;OGHAM LETTER EAMHANCHOLL;Lo;0;L;;;;;N;;;;;
+169A;OGHAM LETTER PEITH;Lo;0;L;;;;;N;;;;;
+169B;OGHAM FEATHER MARK;Ps;0;ON;;;;;N;;;;;
+169C;OGHAM REVERSED FEATHER MARK;Pe;0;ON;;;;;N;;;;;
+16A0;RUNIC LETTER FEHU FEOH FE F;Lo;0;L;;;;;N;;;;;
+16A1;RUNIC LETTER V;Lo;0;L;;;;;N;;;;;
+16A2;RUNIC LETTER URUZ UR U;Lo;0;L;;;;;N;;;;;
+16A3;RUNIC LETTER YR;Lo;0;L;;;;;N;;;;;
+16A4;RUNIC LETTER Y;Lo;0;L;;;;;N;;;;;
+16A5;RUNIC LETTER W;Lo;0;L;;;;;N;;;;;
+16A6;RUNIC LETTER THURISAZ THURS THORN;Lo;0;L;;;;;N;;;;;
+16A7;RUNIC LETTER ETH;Lo;0;L;;;;;N;;;;;
+16A8;RUNIC LETTER ANSUZ A;Lo;0;L;;;;;N;;;;;
+16A9;RUNIC LETTER OS O;Lo;0;L;;;;;N;;;;;
+16AA;RUNIC LETTER AC A;Lo;0;L;;;;;N;;;;;
+16AB;RUNIC LETTER AESC;Lo;0;L;;;;;N;;;;;
+16AC;RUNIC LETTER LONG-BRANCH-OSS O;Lo;0;L;;;;;N;;;;;
+16AD;RUNIC LETTER SHORT-TWIG-OSS O;Lo;0;L;;;;;N;;;;;
+16AE;RUNIC LETTER O;Lo;0;L;;;;;N;;;;;
+16AF;RUNIC LETTER OE;Lo;0;L;;;;;N;;;;;
+16B0;RUNIC LETTER ON;Lo;0;L;;;;;N;;;;;
+16B1;RUNIC LETTER RAIDO RAD REID R;Lo;0;L;;;;;N;;;;;
+16B2;RUNIC LETTER KAUNA;Lo;0;L;;;;;N;;;;;
+16B3;RUNIC LETTER CEN;Lo;0;L;;;;;N;;;;;
+16B4;RUNIC LETTER KAUN K;Lo;0;L;;;;;N;;;;;
+16B5;RUNIC LETTER G;Lo;0;L;;;;;N;;;;;
+16B6;RUNIC LETTER ENG;Lo;0;L;;;;;N;;;;;
+16B7;RUNIC LETTER GEBO GYFU G;Lo;0;L;;;;;N;;;;;
+16B8;RUNIC LETTER GAR;Lo;0;L;;;;;N;;;;;
+16B9;RUNIC LETTER WUNJO WYNN W;Lo;0;L;;;;;N;;;;;
+16BA;RUNIC LETTER HAGLAZ H;Lo;0;L;;;;;N;;;;;
+16BB;RUNIC LETTER HAEGL H;Lo;0;L;;;;;N;;;;;
+16BC;RUNIC LETTER LONG-BRANCH-HAGALL H;Lo;0;L;;;;;N;;;;;
+16BD;RUNIC LETTER SHORT-TWIG-HAGALL H;Lo;0;L;;;;;N;;;;;
+16BE;RUNIC LETTER NAUDIZ NYD NAUD N;Lo;0;L;;;;;N;;;;;
+16BF;RUNIC LETTER SHORT-TWIG-NAUD N;Lo;0;L;;;;;N;;;;;
+16C0;RUNIC LETTER DOTTED-N;Lo;0;L;;;;;N;;;;;
+16C1;RUNIC LETTER ISAZ IS ISS I;Lo;0;L;;;;;N;;;;;
+16C2;RUNIC LETTER E;Lo;0;L;;;;;N;;;;;
+16C3;RUNIC LETTER JERAN J;Lo;0;L;;;;;N;;;;;
+16C4;RUNIC LETTER GER;Lo;0;L;;;;;N;;;;;
+16C5;RUNIC LETTER LONG-BRANCH-AR AE;Lo;0;L;;;;;N;;;;;
+16C6;RUNIC LETTER SHORT-TWIG-AR A;Lo;0;L;;;;;N;;;;;
+16C7;RUNIC LETTER IWAZ EOH;Lo;0;L;;;;;N;;;;;
+16C8;RUNIC LETTER PERTHO PEORTH P;Lo;0;L;;;;;N;;;;;
+16C9;RUNIC LETTER ALGIZ EOLHX;Lo;0;L;;;;;N;;;;;
+16CA;RUNIC LETTER SOWILO S;Lo;0;L;;;;;N;;;;;
+16CB;RUNIC LETTER SIGEL LONG-BRANCH-SOL S;Lo;0;L;;;;;N;;;;;
+16CC;RUNIC LETTER SHORT-TWIG-SOL S;Lo;0;L;;;;;N;;;;;
+16CD;RUNIC LETTER C;Lo;0;L;;;;;N;;;;;
+16CE;RUNIC LETTER Z;Lo;0;L;;;;;N;;;;;
+16CF;RUNIC LETTER TIWAZ TIR TYR T;Lo;0;L;;;;;N;;;;;
+16D0;RUNIC LETTER SHORT-TWIG-TYR T;Lo;0;L;;;;;N;;;;;
+16D1;RUNIC LETTER D;Lo;0;L;;;;;N;;;;;
+16D2;RUNIC LETTER BERKANAN BEORC BJARKAN B;Lo;0;L;;;;;N;;;;;
+16D3;RUNIC LETTER SHORT-TWIG-BJARKAN B;Lo;0;L;;;;;N;;;;;
+16D4;RUNIC LETTER DOTTED-P;Lo;0;L;;;;;N;;;;;
+16D5;RUNIC LETTER OPEN-P;Lo;0;L;;;;;N;;;;;
+16D6;RUNIC LETTER EHWAZ EH E;Lo;0;L;;;;;N;;;;;
+16D7;RUNIC LETTER MANNAZ MAN M;Lo;0;L;;;;;N;;;;;
+16D8;RUNIC LETTER LONG-BRANCH-MADR M;Lo;0;L;;;;;N;;;;;
+16D9;RUNIC LETTER SHORT-TWIG-MADR M;Lo;0;L;;;;;N;;;;;
+16DA;RUNIC LETTER LAUKAZ LAGU LOGR L;Lo;0;L;;;;;N;;;;;
+16DB;RUNIC LETTER DOTTED-L;Lo;0;L;;;;;N;;;;;
+16DC;RUNIC LETTER INGWAZ;Lo;0;L;;;;;N;;;;;
+16DD;RUNIC LETTER ING;Lo;0;L;;;;;N;;;;;
+16DE;RUNIC LETTER DAGAZ DAEG D;Lo;0;L;;;;;N;;;;;
+16DF;RUNIC LETTER OTHALAN ETHEL O;Lo;0;L;;;;;N;;;;;
+16E0;RUNIC LETTER EAR;Lo;0;L;;;;;N;;;;;
+16E1;RUNIC LETTER IOR;Lo;0;L;;;;;N;;;;;
+16E2;RUNIC LETTER CWEORTH;Lo;0;L;;;;;N;;;;;
+16E3;RUNIC LETTER CALC;Lo;0;L;;;;;N;;;;;
+16E4;RUNIC LETTER CEALC;Lo;0;L;;;;;N;;;;;
+16E5;RUNIC LETTER STAN;Lo;0;L;;;;;N;;;;;
+16E6;RUNIC LETTER LONG-BRANCH-YR;Lo;0;L;;;;;N;;;;;
+16E7;RUNIC LETTER SHORT-TWIG-YR;Lo;0;L;;;;;N;;;;;
+16E8;RUNIC LETTER ICELANDIC-YR;Lo;0;L;;;;;N;;;;;
+16E9;RUNIC LETTER Q;Lo;0;L;;;;;N;;;;;
+16EA;RUNIC LETTER X;Lo;0;L;;;;;N;;;;;
+16EB;RUNIC SINGLE PUNCTUATION;Po;0;L;;;;;N;;;;;
+16EC;RUNIC MULTIPLE PUNCTUATION;Po;0;L;;;;;N;;;;;
+16ED;RUNIC CROSS PUNCTUATION;Po;0;L;;;;;N;;;;;
+16EE;RUNIC ARLAUG SYMBOL;No;0;L;;;;17;N;;golden number 17;;;
+16EF;RUNIC TVIMADUR SYMBOL;No;0;L;;;;18;N;;golden number 18;;;
+16F0;RUNIC BELGTHOR SYMBOL;No;0;L;;;;19;N;;golden number 19;;;
+1780;KHMER LETTER KA;Lo;0;L;;;;;N;;;;;
+1781;KHMER LETTER KHA;Lo;0;L;;;;;N;;;;;
+1782;KHMER LETTER KO;Lo;0;L;;;;;N;;;;;
+1783;KHMER LETTER KHO;Lo;0;L;;;;;N;;;;;
+1784;KHMER LETTER NGO;Lo;0;L;;;;;N;;;;;
+1785;KHMER LETTER CA;Lo;0;L;;;;;N;;;;;
+1786;KHMER LETTER CHA;Lo;0;L;;;;;N;;;;;
+1787;KHMER LETTER CO;Lo;0;L;;;;;N;;;;;
+1788;KHMER LETTER CHO;Lo;0;L;;;;;N;;;;;
+1789;KHMER LETTER NYO;Lo;0;L;;;;;N;;;;;
+178A;KHMER LETTER DA;Lo;0;L;;;;;N;;;;;
+178B;KHMER LETTER TTHA;Lo;0;L;;;;;N;;;;;
+178C;KHMER LETTER DO;Lo;0;L;;;;;N;;;;;
+178D;KHMER LETTER TTHO;Lo;0;L;;;;;N;;;;;
+178E;KHMER LETTER NNO;Lo;0;L;;;;;N;;;;;
+178F;KHMER LETTER TA;Lo;0;L;;;;;N;;;;;
+1790;KHMER LETTER THA;Lo;0;L;;;;;N;;;;;
+1791;KHMER LETTER TO;Lo;0;L;;;;;N;;;;;
+1792;KHMER LETTER THO;Lo;0;L;;;;;N;;;;;
+1793;KHMER LETTER NO;Lo;0;L;;;;;N;;;;;
+1794;KHMER LETTER BA;Lo;0;L;;;;;N;;;;;
+1795;KHMER LETTER PHA;Lo;0;L;;;;;N;;;;;
+1796;KHMER LETTER PO;Lo;0;L;;;;;N;;;;;
+1797;KHMER LETTER PHO;Lo;0;L;;;;;N;;;;;
+1798;KHMER LETTER MO;Lo;0;L;;;;;N;;;;;
+1799;KHMER LETTER YO;Lo;0;L;;;;;N;;;;;
+179A;KHMER LETTER RO;Lo;0;L;;;;;N;;;;;
+179B;KHMER LETTER LO;Lo;0;L;;;;;N;;;;;
+179C;KHMER LETTER VO;Lo;0;L;;;;;N;;;;;
+179D;KHMER LETTER SHA;Lo;0;L;;;;;N;;;;;
+179E;KHMER LETTER SSO;Lo;0;L;;;;;N;;;;;
+179F;KHMER LETTER SA;Lo;0;L;;;;;N;;;;;
+17A0;KHMER LETTER HA;Lo;0;L;;;;;N;;;;;
+17A1;KHMER LETTER LA;Lo;0;L;;;;;N;;;;;
+17A2;KHMER LETTER QA;Lo;0;L;;;;;N;;;;;
+17A3;KHMER INDEPENDENT VOWEL QAQ;Lo;0;L;;;;;N;;;;;
+17A4;KHMER INDEPENDENT VOWEL QAA;Lo;0;L;;;;;N;;;;;
+17A5;KHMER INDEPENDENT VOWEL QI;Lo;0;L;;;;;N;;;;;
+17A6;KHMER INDEPENDENT VOWEL QII;Lo;0;L;;;;;N;;;;;
+17A7;KHMER INDEPENDENT VOWEL QU;Lo;0;L;;;;;N;;;;;
+17A8;KHMER INDEPENDENT VOWEL QUK;Lo;0;L;;;;;N;;;;;
+17A9;KHMER INDEPENDENT VOWEL QUU;Lo;0;L;;;;;N;;;;;
+17AA;KHMER INDEPENDENT VOWEL QUUV;Lo;0;L;;;;;N;;;;;
+17AB;KHMER INDEPENDENT VOWEL RY;Lo;0;L;;;;;N;;;;;
+17AC;KHMER INDEPENDENT VOWEL RYY;Lo;0;L;;;;;N;;;;;
+17AD;KHMER INDEPENDENT VOWEL LY;Lo;0;L;;;;;N;;;;;
+17AE;KHMER INDEPENDENT VOWEL LYY;Lo;0;L;;;;;N;;;;;
+17AF;KHMER INDEPENDENT VOWEL QE;Lo;0;L;;;;;N;;;;;
+17B0;KHMER INDEPENDENT VOWEL QAI;Lo;0;L;;;;;N;;;;;
+17B1;KHMER INDEPENDENT VOWEL QOO TYPE ONE;Lo;0;L;;;;;N;;;;;
+17B2;KHMER INDEPENDENT VOWEL QOO TYPE TWO;Lo;0;L;;;;;N;;;;;
+17B3;KHMER INDEPENDENT VOWEL QAU;Lo;0;L;;;;;N;;;;;
+17B4;KHMER VOWEL INHERENT AQ;Mc;0;L;;;;;N;;;;;
+17B5;KHMER VOWEL INHERENT AA;Mc;0;L;;;;;N;;;;;
+17B6;KHMER VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+17B7;KHMER VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
+17B8;KHMER VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;;
+17B9;KHMER VOWEL SIGN Y;Mn;0;NSM;;;;;N;;;;;
+17BA;KHMER VOWEL SIGN YY;Mn;0;NSM;;;;;N;;;;;
+17BB;KHMER VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+17BC;KHMER VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
+17BD;KHMER VOWEL SIGN UA;Mn;0;NSM;;;;;N;;;;;
+17BE;KHMER VOWEL SIGN OE;Mc;0;L;;;;;N;;;;;
+17BF;KHMER VOWEL SIGN YA;Mc;0;L;;;;;N;;;;;
+17C0;KHMER VOWEL SIGN IE;Mc;0;L;;;;;N;;;;;
+17C1;KHMER VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
+17C2;KHMER VOWEL SIGN AE;Mc;0;L;;;;;N;;;;;
+17C3;KHMER VOWEL SIGN AI;Mc;0;L;;;;;N;;;;;
+17C4;KHMER VOWEL SIGN OO;Mc;0;L;;;;;N;;;;;
+17C5;KHMER VOWEL SIGN AU;Mc;0;L;;;;;N;;;;;
+17C6;KHMER SIGN NIKAHIT;Mn;0;NSM;;;;;N;;;;;
+17C7;KHMER SIGN REAHMUK;Mc;0;L;;;;;N;;;;;
+17C8;KHMER SIGN YUUKALEAPINTU;Mc;0;L;;;;;N;;;;;
+17C9;KHMER SIGN MUUSIKATOAN;Mn;0;NSM;;;;;N;;;;;
+17CA;KHMER SIGN TRIISAP;Mn;0;NSM;;;;;N;;;;;
+17CB;KHMER SIGN BANTOC;Mn;0;NSM;;;;;N;;;;;
+17CC;KHMER SIGN ROBAT;Mn;0;NSM;;;;;N;;;;;
+17CD;KHMER SIGN TOANDAKHIAT;Mn;0;NSM;;;;;N;;;;;
+17CE;KHMER SIGN KAKABAT;Mn;0;NSM;;;;;N;;;;;
+17CF;KHMER SIGN AHSDA;Mn;0;NSM;;;;;N;;;;;
+17D0;KHMER SIGN SAMYOK SANNYA;Mn;0;NSM;;;;;N;;;;;
+17D1;KHMER SIGN VIRIAM;Mn;0;NSM;;;;;N;;;;;
+17D2;KHMER SIGN COENG;Mn;9;NSM;;;;;N;;;;;
+17D3;KHMER SIGN BATHAMASAT;Mn;0;NSM;;;;;N;;;;;
+17D4;KHMER SIGN KHAN;Po;0;L;;;;;N;;;;;
+17D5;KHMER SIGN BARIYOOSAN;Po;0;L;;;;;N;;;;;
+17D6;KHMER SIGN CAMNUC PII KUUH;Po;0;L;;;;;N;;;;;
+17D7;KHMER SIGN LEK TOO;Po;0;L;;;;;N;;;;;
+17D8;KHMER SIGN BEYYAL;Po;0;L;;;;;N;;;;;
+17D9;KHMER SIGN PHNAEK MUAN;Po;0;L;;;;;N;;;;;
+17DA;KHMER SIGN KOOMUUT;Po;0;L;;;;;N;;;;;
+17DB;KHMER CURRENCY SYMBOL RIEL;Sc;0;ET;;;;;N;;;;;
+17DC;KHMER SIGN AVAKRAHASANYA;Po;0;L;;;;;N;;;;;
+17E0;KHMER DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+17E1;KHMER DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+17E2;KHMER DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+17E3;KHMER DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+17E4;KHMER DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+17E5;KHMER DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+17E6;KHMER DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+17E7;KHMER DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+17E8;KHMER DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+17E9;KHMER DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+1800;MONGOLIAN BIRGA;Po;0;ON;;;;;N;;;;;
+1801;MONGOLIAN ELLIPSIS;Po;0;ON;;;;;N;;;;;
+1802;MONGOLIAN COMMA;Po;0;ON;;;;;N;;;;;
+1803;MONGOLIAN FULL STOP;Po;0;ON;;;;;N;;;;;
+1804;MONGOLIAN COLON;Po;0;ON;;;;;N;;;;;
+1805;MONGOLIAN FOUR DOTS;Po;0;ON;;;;;N;;;;;
+1806;MONGOLIAN TODO SOFT HYPHEN;Pd;0;ON;;;;;N;;;;;
+1807;MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER;Po;0;ON;;;;;N;;;;;
+1808;MONGOLIAN MANCHU COMMA;Po;0;ON;;;;;N;;;;;
+1809;MONGOLIAN MANCHU FULL STOP;Po;0;ON;;;;;N;;;;;
+180A;MONGOLIAN NIRUGU;Po;0;ON;;;;;N;;;;;
+180B;MONGOLIAN FREE VARIATION SELECTOR ONE;Cf;0;BN;;;;;N;;;;;
+180C;MONGOLIAN FREE VARIATION SELECTOR TWO;Cf;0;BN;;;;;N;;;;;
+180D;MONGOLIAN FREE VARIATION SELECTOR THREE;Cf;0;BN;;;;;N;;;;;
+180E;MONGOLIAN VOWEL SEPARATOR;Cf;0;BN;;;;;N;;;;;
+1810;MONGOLIAN DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+1811;MONGOLIAN DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+1812;MONGOLIAN DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+1813;MONGOLIAN DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+1814;MONGOLIAN DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+1815;MONGOLIAN DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+1816;MONGOLIAN DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+1817;MONGOLIAN DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+1818;MONGOLIAN DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+1819;MONGOLIAN DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+1820;MONGOLIAN LETTER A;Lo;0;L;;;;;N;;;;;
+1821;MONGOLIAN LETTER E;Lo;0;L;;;;;N;;;;;
+1822;MONGOLIAN LETTER I;Lo;0;L;;;;;N;;;;;
+1823;MONGOLIAN LETTER O;Lo;0;L;;;;;N;;;;;
+1824;MONGOLIAN LETTER U;Lo;0;L;;;;;N;;;;;
+1825;MONGOLIAN LETTER OE;Lo;0;L;;;;;N;;;;;
+1826;MONGOLIAN LETTER UE;Lo;0;L;;;;;N;;;;;
+1827;MONGOLIAN LETTER EE;Lo;0;L;;;;;N;;;;;
+1828;MONGOLIAN LETTER NA;Lo;0;L;;;;;N;;;;;
+1829;MONGOLIAN LETTER ANG;Lo;0;L;;;;;N;;;;;
+182A;MONGOLIAN LETTER BA;Lo;0;L;;;;;N;;;;;
+182B;MONGOLIAN LETTER PA;Lo;0;L;;;;;N;;;;;
+182C;MONGOLIAN LETTER QA;Lo;0;L;;;;;N;;;;;
+182D;MONGOLIAN LETTER GA;Lo;0;L;;;;;N;;;;;
+182E;MONGOLIAN LETTER MA;Lo;0;L;;;;;N;;;;;
+182F;MONGOLIAN LETTER LA;Lo;0;L;;;;;N;;;;;
+1830;MONGOLIAN LETTER SA;Lo;0;L;;;;;N;;;;;
+1831;MONGOLIAN LETTER SHA;Lo;0;L;;;;;N;;;;;
+1832;MONGOLIAN LETTER TA;Lo;0;L;;;;;N;;;;;
+1833;MONGOLIAN LETTER DA;Lo;0;L;;;;;N;;;;;
+1834;MONGOLIAN LETTER CHA;Lo;0;L;;;;;N;;;;;
+1835;MONGOLIAN LETTER JA;Lo;0;L;;;;;N;;;;;
+1836;MONGOLIAN LETTER YA;Lo;0;L;;;;;N;;;;;
+1837;MONGOLIAN LETTER RA;Lo;0;L;;;;;N;;;;;
+1838;MONGOLIAN LETTER WA;Lo;0;L;;;;;N;;;;;
+1839;MONGOLIAN LETTER FA;Lo;0;L;;;;;N;;;;;
+183A;MONGOLIAN LETTER KA;Lo;0;L;;;;;N;;;;;
+183B;MONGOLIAN LETTER KHA;Lo;0;L;;;;;N;;;;;
+183C;MONGOLIAN LETTER TSA;Lo;0;L;;;;;N;;;;;
+183D;MONGOLIAN LETTER ZA;Lo;0;L;;;;;N;;;;;
+183E;MONGOLIAN LETTER HAA;Lo;0;L;;;;;N;;;;;
+183F;MONGOLIAN LETTER ZRA;Lo;0;L;;;;;N;;;;;
+1840;MONGOLIAN LETTER LHA;Lo;0;L;;;;;N;;;;;
+1841;MONGOLIAN LETTER ZHI;Lo;0;L;;;;;N;;;;;
+1842;MONGOLIAN LETTER CHI;Lo;0;L;;;;;N;;;;;
+1843;MONGOLIAN LETTER TODO LONG VOWEL SIGN;Lm;0;L;;;;;N;;;;;
+1844;MONGOLIAN LETTER TODO E;Lo;0;L;;;;;N;;;;;
+1845;MONGOLIAN LETTER TODO I;Lo;0;L;;;;;N;;;;;
+1846;MONGOLIAN LETTER TODO O;Lo;0;L;;;;;N;;;;;
+1847;MONGOLIAN LETTER TODO U;Lo;0;L;;;;;N;;;;;
+1848;MONGOLIAN LETTER TODO OE;Lo;0;L;;;;;N;;;;;
+1849;MONGOLIAN LETTER TODO UE;Lo;0;L;;;;;N;;;;;
+184A;MONGOLIAN LETTER TODO ANG;Lo;0;L;;;;;N;;;;;
+184B;MONGOLIAN LETTER TODO BA;Lo;0;L;;;;;N;;;;;
+184C;MONGOLIAN LETTER TODO PA;Lo;0;L;;;;;N;;;;;
+184D;MONGOLIAN LETTER TODO QA;Lo;0;L;;;;;N;;;;;
+184E;MONGOLIAN LETTER TODO GA;Lo;0;L;;;;;N;;;;;
+184F;MONGOLIAN LETTER TODO MA;Lo;0;L;;;;;N;;;;;
+1850;MONGOLIAN LETTER TODO TA;Lo;0;L;;;;;N;;;;;
+1851;MONGOLIAN LETTER TODO DA;Lo;0;L;;;;;N;;;;;
+1852;MONGOLIAN LETTER TODO CHA;Lo;0;L;;;;;N;;;;;
+1853;MONGOLIAN LETTER TODO JA;Lo;0;L;;;;;N;;;;;
+1854;MONGOLIAN LETTER TODO TSA;Lo;0;L;;;;;N;;;;;
+1855;MONGOLIAN LETTER TODO YA;Lo;0;L;;;;;N;;;;;
+1856;MONGOLIAN LETTER TODO WA;Lo;0;L;;;;;N;;;;;
+1857;MONGOLIAN LETTER TODO KA;Lo;0;L;;;;;N;;;;;
+1858;MONGOLIAN LETTER TODO GAA;Lo;0;L;;;;;N;;;;;
+1859;MONGOLIAN LETTER TODO HAA;Lo;0;L;;;;;N;;;;;
+185A;MONGOLIAN LETTER TODO JIA;Lo;0;L;;;;;N;;;;;
+185B;MONGOLIAN LETTER TODO NIA;Lo;0;L;;;;;N;;;;;
+185C;MONGOLIAN LETTER TODO DZA;Lo;0;L;;;;;N;;;;;
+185D;MONGOLIAN LETTER SIBE E;Lo;0;L;;;;;N;;;;;
+185E;MONGOLIAN LETTER SIBE I;Lo;0;L;;;;;N;;;;;
+185F;MONGOLIAN LETTER SIBE IY;Lo;0;L;;;;;N;;;;;
+1860;MONGOLIAN LETTER SIBE UE;Lo;0;L;;;;;N;;;;;
+1861;MONGOLIAN LETTER SIBE U;Lo;0;L;;;;;N;;;;;
+1862;MONGOLIAN LETTER SIBE ANG;Lo;0;L;;;;;N;;;;;
+1863;MONGOLIAN LETTER SIBE KA;Lo;0;L;;;;;N;;;;;
+1864;MONGOLIAN LETTER SIBE GA;Lo;0;L;;;;;N;;;;;
+1865;MONGOLIAN LETTER SIBE HA;Lo;0;L;;;;;N;;;;;
+1866;MONGOLIAN LETTER SIBE PA;Lo;0;L;;;;;N;;;;;
+1867;MONGOLIAN LETTER SIBE SHA;Lo;0;L;;;;;N;;;;;
+1868;MONGOLIAN LETTER SIBE TA;Lo;0;L;;;;;N;;;;;
+1869;MONGOLIAN LETTER SIBE DA;Lo;0;L;;;;;N;;;;;
+186A;MONGOLIAN LETTER SIBE JA;Lo;0;L;;;;;N;;;;;
+186B;MONGOLIAN LETTER SIBE FA;Lo;0;L;;;;;N;;;;;
+186C;MONGOLIAN LETTER SIBE GAA;Lo;0;L;;;;;N;;;;;
+186D;MONGOLIAN LETTER SIBE HAA;Lo;0;L;;;;;N;;;;;
+186E;MONGOLIAN LETTER SIBE TSA;Lo;0;L;;;;;N;;;;;
+186F;MONGOLIAN LETTER SIBE ZA;Lo;0;L;;;;;N;;;;;
+1870;MONGOLIAN LETTER SIBE RAA;Lo;0;L;;;;;N;;;;;
+1871;MONGOLIAN LETTER SIBE CHA;Lo;0;L;;;;;N;;;;;
+1872;MONGOLIAN LETTER SIBE ZHA;Lo;0;L;;;;;N;;;;;
+1873;MONGOLIAN LETTER MANCHU I;Lo;0;L;;;;;N;;;;;
+1874;MONGOLIAN LETTER MANCHU KA;Lo;0;L;;;;;N;;;;;
+1875;MONGOLIAN LETTER MANCHU RA;Lo;0;L;;;;;N;;;;;
+1876;MONGOLIAN LETTER MANCHU FA;Lo;0;L;;;;;N;;;;;
+1877;MONGOLIAN LETTER MANCHU ZHA;Lo;0;L;;;;;N;;;;;
+1880;MONGOLIAN LETTER ALI GALI ANUSVARA ONE;Lo;0;L;;;;;N;;;;;
+1881;MONGOLIAN LETTER ALI GALI VISARGA ONE;Lo;0;L;;;;;N;;;;;
+1882;MONGOLIAN LETTER ALI GALI DAMARU;Lo;0;L;;;;;N;;;;;
+1883;MONGOLIAN LETTER ALI GALI UBADAMA;Lo;0;L;;;;;N;;;;;
+1884;MONGOLIAN LETTER ALI GALI INVERTED UBADAMA;Lo;0;L;;;;;N;;;;;
+1885;MONGOLIAN LETTER ALI GALI BALUDA;Lo;0;L;;;;;N;;;;;
+1886;MONGOLIAN LETTER ALI GALI THREE BALUDA;Lo;0;L;;;;;N;;;;;
+1887;MONGOLIAN LETTER ALI GALI A;Lo;0;L;;;;;N;;;;;
+1888;MONGOLIAN LETTER ALI GALI I;Lo;0;L;;;;;N;;;;;
+1889;MONGOLIAN LETTER ALI GALI KA;Lo;0;L;;;;;N;;;;;
+188A;MONGOLIAN LETTER ALI GALI NGA;Lo;0;L;;;;;N;;;;;
+188B;MONGOLIAN LETTER ALI GALI CA;Lo;0;L;;;;;N;;;;;
+188C;MONGOLIAN LETTER ALI GALI TTA;Lo;0;L;;;;;N;;;;;
+188D;MONGOLIAN LETTER ALI GALI TTHA;Lo;0;L;;;;;N;;;;;
+188E;MONGOLIAN LETTER ALI GALI DDA;Lo;0;L;;;;;N;;;;;
+188F;MONGOLIAN LETTER ALI GALI NNA;Lo;0;L;;;;;N;;;;;
+1890;MONGOLIAN LETTER ALI GALI TA;Lo;0;L;;;;;N;;;;;
+1891;MONGOLIAN LETTER ALI GALI DA;Lo;0;L;;;;;N;;;;;
+1892;MONGOLIAN LETTER ALI GALI PA;Lo;0;L;;;;;N;;;;;
+1893;MONGOLIAN LETTER ALI GALI PHA;Lo;0;L;;;;;N;;;;;
+1894;MONGOLIAN LETTER ALI GALI SSA;Lo;0;L;;;;;N;;;;;
+1895;MONGOLIAN LETTER ALI GALI ZHA;Lo;0;L;;;;;N;;;;;
+1896;MONGOLIAN LETTER ALI GALI ZA;Lo;0;L;;;;;N;;;;;
+1897;MONGOLIAN LETTER ALI GALI AH;Lo;0;L;;;;;N;;;;;
+1898;MONGOLIAN LETTER TODO ALI GALI TA;Lo;0;L;;;;;N;;;;;
+1899;MONGOLIAN LETTER TODO ALI GALI ZHA;Lo;0;L;;;;;N;;;;;
+189A;MONGOLIAN LETTER MANCHU ALI GALI GHA;Lo;0;L;;;;;N;;;;;
+189B;MONGOLIAN LETTER MANCHU ALI GALI NGA;Lo;0;L;;;;;N;;;;;
+189C;MONGOLIAN LETTER MANCHU ALI GALI CA;Lo;0;L;;;;;N;;;;;
+189D;MONGOLIAN LETTER MANCHU ALI GALI JHA;Lo;0;L;;;;;N;;;;;
+189E;MONGOLIAN LETTER MANCHU ALI GALI TTA;Lo;0;L;;;;;N;;;;;
+189F;MONGOLIAN LETTER MANCHU ALI GALI DDHA;Lo;0;L;;;;;N;;;;;
+18A0;MONGOLIAN LETTER MANCHU ALI GALI TA;Lo;0;L;;;;;N;;;;;
+18A1;MONGOLIAN LETTER MANCHU ALI GALI DHA;Lo;0;L;;;;;N;;;;;
+18A2;MONGOLIAN LETTER MANCHU ALI GALI SSA;Lo;0;L;;;;;N;;;;;
+18A3;MONGOLIAN LETTER MANCHU ALI GALI CYA;Lo;0;L;;;;;N;;;;;
+18A4;MONGOLIAN LETTER MANCHU ALI GALI ZHA;Lo;0;L;;;;;N;;;;;
+18A5;MONGOLIAN LETTER MANCHU ALI GALI ZA;Lo;0;L;;;;;N;;;;;
+18A6;MONGOLIAN LETTER ALI GALI HALF U;Lo;0;L;;;;;N;;;;;
+18A7;MONGOLIAN LETTER ALI GALI HALF YA;Lo;0;L;;;;;N;;;;;
+18A8;MONGOLIAN LETTER MANCHU ALI GALI BHA;Lo;0;L;;;;;N;;;;;
+18A9;MONGOLIAN LETTER ALI GALI DAGALGA;Mn;228;NSM;;;;;N;;;;;
+1E00;LATIN CAPITAL LETTER A WITH RING BELOW;Lu;0;L;0041 0325;;;;N;;;;1E01;
+1E01;LATIN SMALL LETTER A WITH RING BELOW;Ll;0;L;0061 0325;;;;N;;;1E00;;1E00
+1E02;LATIN CAPITAL LETTER B WITH DOT ABOVE;Lu;0;L;0042 0307;;;;N;;;;1E03;
+1E03;LATIN SMALL LETTER B WITH DOT ABOVE;Ll;0;L;0062 0307;;;;N;;;1E02;;1E02
+1E04;LATIN CAPITAL LETTER B WITH DOT BELOW;Lu;0;L;0042 0323;;;;N;;;;1E05;
+1E05;LATIN SMALL LETTER B WITH DOT BELOW;Ll;0;L;0062 0323;;;;N;;;1E04;;1E04
+1E06;LATIN CAPITAL LETTER B WITH LINE BELOW;Lu;0;L;0042 0331;;;;N;;;;1E07;
+1E07;LATIN SMALL LETTER B WITH LINE BELOW;Ll;0;L;0062 0331;;;;N;;;1E06;;1E06
+1E08;LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE;Lu;0;L;00C7 0301;;;;N;;;;1E09;
+1E09;LATIN SMALL LETTER C WITH CEDILLA AND ACUTE;Ll;0;L;00E7 0301;;;;N;;;1E08;;1E08
+1E0A;LATIN CAPITAL LETTER D WITH DOT ABOVE;Lu;0;L;0044 0307;;;;N;;;;1E0B;
+1E0B;LATIN SMALL LETTER D WITH DOT ABOVE;Ll;0;L;0064 0307;;;;N;;;1E0A;;1E0A
+1E0C;LATIN CAPITAL LETTER D WITH DOT BELOW;Lu;0;L;0044 0323;;;;N;;;;1E0D;
+1E0D;LATIN SMALL LETTER D WITH DOT BELOW;Ll;0;L;0064 0323;;;;N;;;1E0C;;1E0C
+1E0E;LATIN CAPITAL LETTER D WITH LINE BELOW;Lu;0;L;0044 0331;;;;N;;;;1E0F;
+1E0F;LATIN SMALL LETTER D WITH LINE BELOW;Ll;0;L;0064 0331;;;;N;;;1E0E;;1E0E
+1E10;LATIN CAPITAL LETTER D WITH CEDILLA;Lu;0;L;0044 0327;;;;N;;;;1E11;
+1E11;LATIN SMALL LETTER D WITH CEDILLA;Ll;0;L;0064 0327;;;;N;;;1E10;;1E10
+1E12;LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW;Lu;0;L;0044 032D;;;;N;;;;1E13;
+1E13;LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW;Ll;0;L;0064 032D;;;;N;;;1E12;;1E12
+1E14;LATIN CAPITAL LETTER E WITH MACRON AND GRAVE;Lu;0;L;0112 0300;;;;N;;;;1E15;
+1E15;LATIN SMALL LETTER E WITH MACRON AND GRAVE;Ll;0;L;0113 0300;;;;N;;;1E14;;1E14
+1E16;LATIN CAPITAL LETTER E WITH MACRON AND ACUTE;Lu;0;L;0112 0301;;;;N;;;;1E17;
+1E17;LATIN SMALL LETTER E WITH MACRON AND ACUTE;Ll;0;L;0113 0301;;;;N;;;1E16;;1E16
+1E18;LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW;Lu;0;L;0045 032D;;;;N;;;;1E19;
+1E19;LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW;Ll;0;L;0065 032D;;;;N;;;1E18;;1E18
+1E1A;LATIN CAPITAL LETTER E WITH TILDE BELOW;Lu;0;L;0045 0330;;;;N;;;;1E1B;
+1E1B;LATIN SMALL LETTER E WITH TILDE BELOW;Ll;0;L;0065 0330;;;;N;;;1E1A;;1E1A
+1E1C;LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE;Lu;0;L;0228 0306;;;;N;;;;1E1D;
+1E1D;LATIN SMALL LETTER E WITH CEDILLA AND BREVE;Ll;0;L;0229 0306;;;;N;;;1E1C;;1E1C
+1E1E;LATIN CAPITAL LETTER F WITH DOT ABOVE;Lu;0;L;0046 0307;;;;N;;;;1E1F;
+1E1F;LATIN SMALL LETTER F WITH DOT ABOVE;Ll;0;L;0066 0307;;;;N;;;1E1E;;1E1E
+1E20;LATIN CAPITAL LETTER G WITH MACRON;Lu;0;L;0047 0304;;;;N;;;;1E21;
+1E21;LATIN SMALL LETTER G WITH MACRON;Ll;0;L;0067 0304;;;;N;;;1E20;;1E20
+1E22;LATIN CAPITAL LETTER H WITH DOT ABOVE;Lu;0;L;0048 0307;;;;N;;;;1E23;
+1E23;LATIN SMALL LETTER H WITH DOT ABOVE;Ll;0;L;0068 0307;;;;N;;;1E22;;1E22
+1E24;LATIN CAPITAL LETTER H WITH DOT BELOW;Lu;0;L;0048 0323;;;;N;;;;1E25;
+1E25;LATIN SMALL LETTER H WITH DOT BELOW;Ll;0;L;0068 0323;;;;N;;;1E24;;1E24
+1E26;LATIN CAPITAL LETTER H WITH DIAERESIS;Lu;0;L;0048 0308;;;;N;;;;1E27;
+1E27;LATIN SMALL LETTER H WITH DIAERESIS;Ll;0;L;0068 0308;;;;N;;;1E26;;1E26
+1E28;LATIN CAPITAL LETTER H WITH CEDILLA;Lu;0;L;0048 0327;;;;N;;;;1E29;
+1E29;LATIN SMALL LETTER H WITH CEDILLA;Ll;0;L;0068 0327;;;;N;;;1E28;;1E28
+1E2A;LATIN CAPITAL LETTER H WITH BREVE BELOW;Lu;0;L;0048 032E;;;;N;;;;1E2B;
+1E2B;LATIN SMALL LETTER H WITH BREVE BELOW;Ll;0;L;0068 032E;;;;N;;;1E2A;;1E2A
+1E2C;LATIN CAPITAL LETTER I WITH TILDE BELOW;Lu;0;L;0049 0330;;;;N;;;;1E2D;
+1E2D;LATIN SMALL LETTER I WITH TILDE BELOW;Ll;0;L;0069 0330;;;;N;;;1E2C;;1E2C
+1E2E;LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE;Lu;0;L;00CF 0301;;;;N;;;;1E2F;
+1E2F;LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE;Ll;0;L;00EF 0301;;;;N;;;1E2E;;1E2E
+1E30;LATIN CAPITAL LETTER K WITH ACUTE;Lu;0;L;004B 0301;;;;N;;;;1E31;
+1E31;LATIN SMALL LETTER K WITH ACUTE;Ll;0;L;006B 0301;;;;N;;;1E30;;1E30
+1E32;LATIN CAPITAL LETTER K WITH DOT BELOW;Lu;0;L;004B 0323;;;;N;;;;1E33;
+1E33;LATIN SMALL LETTER K WITH DOT BELOW;Ll;0;L;006B 0323;;;;N;;;1E32;;1E32
+1E34;LATIN CAPITAL LETTER K WITH LINE BELOW;Lu;0;L;004B 0331;;;;N;;;;1E35;
+1E35;LATIN SMALL LETTER K WITH LINE BELOW;Ll;0;L;006B 0331;;;;N;;;1E34;;1E34
+1E36;LATIN CAPITAL LETTER L WITH DOT BELOW;Lu;0;L;004C 0323;;;;N;;;;1E37;
+1E37;LATIN SMALL LETTER L WITH DOT BELOW;Ll;0;L;006C 0323;;;;N;;;1E36;;1E36
+1E38;LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON;Lu;0;L;1E36 0304;;;;N;;;;1E39;
+1E39;LATIN SMALL LETTER L WITH DOT BELOW AND MACRON;Ll;0;L;1E37 0304;;;;N;;;1E38;;1E38
+1E3A;LATIN CAPITAL LETTER L WITH LINE BELOW;Lu;0;L;004C 0331;;;;N;;;;1E3B;
+1E3B;LATIN SMALL LETTER L WITH LINE BELOW;Ll;0;L;006C 0331;;;;N;;;1E3A;;1E3A
+1E3C;LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW;Lu;0;L;004C 032D;;;;N;;;;1E3D;
+1E3D;LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW;Ll;0;L;006C 032D;;;;N;;;1E3C;;1E3C
+1E3E;LATIN CAPITAL LETTER M WITH ACUTE;Lu;0;L;004D 0301;;;;N;;;;1E3F;
+1E3F;LATIN SMALL LETTER M WITH ACUTE;Ll;0;L;006D 0301;;;;N;;;1E3E;;1E3E
+1E40;LATIN CAPITAL LETTER M WITH DOT ABOVE;Lu;0;L;004D 0307;;;;N;;;;1E41;
+1E41;LATIN SMALL LETTER M WITH DOT ABOVE;Ll;0;L;006D 0307;;;;N;;;1E40;;1E40
+1E42;LATIN CAPITAL LETTER M WITH DOT BELOW;Lu;0;L;004D 0323;;;;N;;;;1E43;
+1E43;LATIN SMALL LETTER M WITH DOT BELOW;Ll;0;L;006D 0323;;;;N;;;1E42;;1E42
+1E44;LATIN CAPITAL LETTER N WITH DOT ABOVE;Lu;0;L;004E 0307;;;;N;;;;1E45;
+1E45;LATIN SMALL LETTER N WITH DOT ABOVE;Ll;0;L;006E 0307;;;;N;;;1E44;;1E44
+1E46;LATIN CAPITAL LETTER N WITH DOT BELOW;Lu;0;L;004E 0323;;;;N;;;;1E47;
+1E47;LATIN SMALL LETTER N WITH DOT BELOW;Ll;0;L;006E 0323;;;;N;;;1E46;;1E46
+1E48;LATIN CAPITAL LETTER N WITH LINE BELOW;Lu;0;L;004E 0331;;;;N;;;;1E49;
+1E49;LATIN SMALL LETTER N WITH LINE BELOW;Ll;0;L;006E 0331;;;;N;;;1E48;;1E48
+1E4A;LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW;Lu;0;L;004E 032D;;;;N;;;;1E4B;
+1E4B;LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW;Ll;0;L;006E 032D;;;;N;;;1E4A;;1E4A
+1E4C;LATIN CAPITAL LETTER O WITH TILDE AND ACUTE;Lu;0;L;00D5 0301;;;;N;;;;1E4D;
+1E4D;LATIN SMALL LETTER O WITH TILDE AND ACUTE;Ll;0;L;00F5 0301;;;;N;;;1E4C;;1E4C
+1E4E;LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS;Lu;0;L;00D5 0308;;;;N;;;;1E4F;
+1E4F;LATIN SMALL LETTER O WITH TILDE AND DIAERESIS;Ll;0;L;00F5 0308;;;;N;;;1E4E;;1E4E
+1E50;LATIN CAPITAL LETTER O WITH MACRON AND GRAVE;Lu;0;L;014C 0300;;;;N;;;;1E51;
+1E51;LATIN SMALL LETTER O WITH MACRON AND GRAVE;Ll;0;L;014D 0300;;;;N;;;1E50;;1E50
+1E52;LATIN CAPITAL LETTER O WITH MACRON AND ACUTE;Lu;0;L;014C 0301;;;;N;;;;1E53;
+1E53;LATIN SMALL LETTER O WITH MACRON AND ACUTE;Ll;0;L;014D 0301;;;;N;;;1E52;;1E52
+1E54;LATIN CAPITAL LETTER P WITH ACUTE;Lu;0;L;0050 0301;;;;N;;;;1E55;
+1E55;LATIN SMALL LETTER P WITH ACUTE;Ll;0;L;0070 0301;;;;N;;;1E54;;1E54
+1E56;LATIN CAPITAL LETTER P WITH DOT ABOVE;Lu;0;L;0050 0307;;;;N;;;;1E57;
+1E57;LATIN SMALL LETTER P WITH DOT ABOVE;Ll;0;L;0070 0307;;;;N;;;1E56;;1E56
+1E58;LATIN CAPITAL LETTER R WITH DOT ABOVE;Lu;0;L;0052 0307;;;;N;;;;1E59;
+1E59;LATIN SMALL LETTER R WITH DOT ABOVE;Ll;0;L;0072 0307;;;;N;;;1E58;;1E58
+1E5A;LATIN CAPITAL LETTER R WITH DOT BELOW;Lu;0;L;0052 0323;;;;N;;;;1E5B;
+1E5B;LATIN SMALL LETTER R WITH DOT BELOW;Ll;0;L;0072 0323;;;;N;;;1E5A;;1E5A
+1E5C;LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON;Lu;0;L;1E5A 0304;;;;N;;;;1E5D;
+1E5D;LATIN SMALL LETTER R WITH DOT BELOW AND MACRON;Ll;0;L;1E5B 0304;;;;N;;;1E5C;;1E5C
+1E5E;LATIN CAPITAL LETTER R WITH LINE BELOW;Lu;0;L;0052 0331;;;;N;;;;1E5F;
+1E5F;LATIN SMALL LETTER R WITH LINE BELOW;Ll;0;L;0072 0331;;;;N;;;1E5E;;1E5E
+1E60;LATIN CAPITAL LETTER S WITH DOT ABOVE;Lu;0;L;0053 0307;;;;N;;;;1E61;
+1E61;LATIN SMALL LETTER S WITH DOT ABOVE;Ll;0;L;0073 0307;;;;N;;;1E60;;1E60
+1E62;LATIN CAPITAL LETTER S WITH DOT BELOW;Lu;0;L;0053 0323;;;;N;;;;1E63;
+1E63;LATIN SMALL LETTER S WITH DOT BELOW;Ll;0;L;0073 0323;;;;N;;;1E62;;1E62
+1E64;LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE;Lu;0;L;015A 0307;;;;N;;;;1E65;
+1E65;LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE;Ll;0;L;015B 0307;;;;N;;;1E64;;1E64
+1E66;LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE;Lu;0;L;0160 0307;;;;N;;;;1E67;
+1E67;LATIN SMALL LETTER S WITH CARON AND DOT ABOVE;Ll;0;L;0161 0307;;;;N;;;1E66;;1E66
+1E68;LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE;Lu;0;L;1E62 0307;;;;N;;;;1E69;
+1E69;LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE;Ll;0;L;1E63 0307;;;;N;;;1E68;;1E68
+1E6A;LATIN CAPITAL LETTER T WITH DOT ABOVE;Lu;0;L;0054 0307;;;;N;;;;1E6B;
+1E6B;LATIN SMALL LETTER T WITH DOT ABOVE;Ll;0;L;0074 0307;;;;N;;;1E6A;;1E6A
+1E6C;LATIN CAPITAL LETTER T WITH DOT BELOW;Lu;0;L;0054 0323;;;;N;;;;1E6D;
+1E6D;LATIN SMALL LETTER T WITH DOT BELOW;Ll;0;L;0074 0323;;;;N;;;1E6C;;1E6C
+1E6E;LATIN CAPITAL LETTER T WITH LINE BELOW;Lu;0;L;0054 0331;;;;N;;;;1E6F;
+1E6F;LATIN SMALL LETTER T WITH LINE BELOW;Ll;0;L;0074 0331;;;;N;;;1E6E;;1E6E
+1E70;LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW;Lu;0;L;0054 032D;;;;N;;;;1E71;
+1E71;LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW;Ll;0;L;0074 032D;;;;N;;;1E70;;1E70
+1E72;LATIN CAPITAL LETTER U WITH DIAERESIS BELOW;Lu;0;L;0055 0324;;;;N;;;;1E73;
+1E73;LATIN SMALL LETTER U WITH DIAERESIS BELOW;Ll;0;L;0075 0324;;;;N;;;1E72;;1E72
+1E74;LATIN CAPITAL LETTER U WITH TILDE BELOW;Lu;0;L;0055 0330;;;;N;;;;1E75;
+1E75;LATIN SMALL LETTER U WITH TILDE BELOW;Ll;0;L;0075 0330;;;;N;;;1E74;;1E74
+1E76;LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW;Lu;0;L;0055 032D;;;;N;;;;1E77;
+1E77;LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW;Ll;0;L;0075 032D;;;;N;;;1E76;;1E76
+1E78;LATIN CAPITAL LETTER U WITH TILDE AND ACUTE;Lu;0;L;0168 0301;;;;N;;;;1E79;
+1E79;LATIN SMALL LETTER U WITH TILDE AND ACUTE;Ll;0;L;0169 0301;;;;N;;;1E78;;1E78
+1E7A;LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS;Lu;0;L;016A 0308;;;;N;;;;1E7B;
+1E7B;LATIN SMALL LETTER U WITH MACRON AND DIAERESIS;Ll;0;L;016B 0308;;;;N;;;1E7A;;1E7A
+1E7C;LATIN CAPITAL LETTER V WITH TILDE;Lu;0;L;0056 0303;;;;N;;;;1E7D;
+1E7D;LATIN SMALL LETTER V WITH TILDE;Ll;0;L;0076 0303;;;;N;;;1E7C;;1E7C
+1E7E;LATIN CAPITAL LETTER V WITH DOT BELOW;Lu;0;L;0056 0323;;;;N;;;;1E7F;
+1E7F;LATIN SMALL LETTER V WITH DOT BELOW;Ll;0;L;0076 0323;;;;N;;;1E7E;;1E7E
+1E80;LATIN CAPITAL LETTER W WITH GRAVE;Lu;0;L;0057 0300;;;;N;;;;1E81;
+1E81;LATIN SMALL LETTER W WITH GRAVE;Ll;0;L;0077 0300;;;;N;;;1E80;;1E80
+1E82;LATIN CAPITAL LETTER W WITH ACUTE;Lu;0;L;0057 0301;;;;N;;;;1E83;
+1E83;LATIN SMALL LETTER W WITH ACUTE;Ll;0;L;0077 0301;;;;N;;;1E82;;1E82
+1E84;LATIN CAPITAL LETTER W WITH DIAERESIS;Lu;0;L;0057 0308;;;;N;;;;1E85;
+1E85;LATIN SMALL LETTER W WITH DIAERESIS;Ll;0;L;0077 0308;;;;N;;;1E84;;1E84
+1E86;LATIN CAPITAL LETTER W WITH DOT ABOVE;Lu;0;L;0057 0307;;;;N;;;;1E87;
+1E87;LATIN SMALL LETTER W WITH DOT ABOVE;Ll;0;L;0077 0307;;;;N;;;1E86;;1E86
+1E88;LATIN CAPITAL LETTER W WITH DOT BELOW;Lu;0;L;0057 0323;;;;N;;;;1E89;
+1E89;LATIN SMALL LETTER W WITH DOT BELOW;Ll;0;L;0077 0323;;;;N;;;1E88;;1E88
+1E8A;LATIN CAPITAL LETTER X WITH DOT ABOVE;Lu;0;L;0058 0307;;;;N;;;;1E8B;
+1E8B;LATIN SMALL LETTER X WITH DOT ABOVE;Ll;0;L;0078 0307;;;;N;;;1E8A;;1E8A
+1E8C;LATIN CAPITAL LETTER X WITH DIAERESIS;Lu;0;L;0058 0308;;;;N;;;;1E8D;
+1E8D;LATIN SMALL LETTER X WITH DIAERESIS;Ll;0;L;0078 0308;;;;N;;;1E8C;;1E8C
+1E8E;LATIN CAPITAL LETTER Y WITH DOT ABOVE;Lu;0;L;0059 0307;;;;N;;;;1E8F;
+1E8F;LATIN SMALL LETTER Y WITH DOT ABOVE;Ll;0;L;0079 0307;;;;N;;;1E8E;;1E8E
+1E90;LATIN CAPITAL LETTER Z WITH CIRCUMFLEX;Lu;0;L;005A 0302;;;;N;;;;1E91;
+1E91;LATIN SMALL LETTER Z WITH CIRCUMFLEX;Ll;0;L;007A 0302;;;;N;;;1E90;;1E90
+1E92;LATIN CAPITAL LETTER Z WITH DOT BELOW;Lu;0;L;005A 0323;;;;N;;;;1E93;
+1E93;LATIN SMALL LETTER Z WITH DOT BELOW;Ll;0;L;007A 0323;;;;N;;;1E92;;1E92
+1E94;LATIN CAPITAL LETTER Z WITH LINE BELOW;Lu;0;L;005A 0331;;;;N;;;;1E95;
+1E95;LATIN SMALL LETTER Z WITH LINE BELOW;Ll;0;L;007A 0331;;;;N;;;1E94;;1E94
+1E96;LATIN SMALL LETTER H WITH LINE BELOW;Ll;0;L;0068 0331;;;;N;;;;;
+1E97;LATIN SMALL LETTER T WITH DIAERESIS;Ll;0;L;0074 0308;;;;N;;;;;
+1E98;LATIN SMALL LETTER W WITH RING ABOVE;Ll;0;L;0077 030A;;;;N;;;;;
+1E99;LATIN SMALL LETTER Y WITH RING ABOVE;Ll;0;L;0079 030A;;;;N;;;;;
+1E9A;LATIN SMALL LETTER A WITH RIGHT HALF RING;Ll;0;L;<compat> 0061 02BE;;;;N;;;;;
+1E9B;LATIN SMALL LETTER LONG S WITH DOT ABOVE;Ll;0;L;017F 0307;;;;N;;;1E60;;1E60
+1EA0;LATIN CAPITAL LETTER A WITH DOT BELOW;Lu;0;L;0041 0323;;;;N;;;;1EA1;
+1EA1;LATIN SMALL LETTER A WITH DOT BELOW;Ll;0;L;0061 0323;;;;N;;;1EA0;;1EA0
+1EA2;LATIN CAPITAL LETTER A WITH HOOK ABOVE;Lu;0;L;0041 0309;;;;N;;;;1EA3;
+1EA3;LATIN SMALL LETTER A WITH HOOK ABOVE;Ll;0;L;0061 0309;;;;N;;;1EA2;;1EA2
+1EA4;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE;Lu;0;L;00C2 0301;;;;N;;;;1EA5;
+1EA5;LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE;Ll;0;L;00E2 0301;;;;N;;;1EA4;;1EA4
+1EA6;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE;Lu;0;L;00C2 0300;;;;N;;;;1EA7;
+1EA7;LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE;Ll;0;L;00E2 0300;;;;N;;;1EA6;;1EA6
+1EA8;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE;Lu;0;L;00C2 0309;;;;N;;;;1EA9;
+1EA9;LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE;Ll;0;L;00E2 0309;;;;N;;;1EA8;;1EA8
+1EAA;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE;Lu;0;L;00C2 0303;;;;N;;;;1EAB;
+1EAB;LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE;Ll;0;L;00E2 0303;;;;N;;;1EAA;;1EAA
+1EAC;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW;Lu;0;L;1EA0 0302;;;;N;;;;1EAD;
+1EAD;LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW;Ll;0;L;1EA1 0302;;;;N;;;1EAC;;1EAC
+1EAE;LATIN CAPITAL LETTER A WITH BREVE AND ACUTE;Lu;0;L;0102 0301;;;;N;;;;1EAF;
+1EAF;LATIN SMALL LETTER A WITH BREVE AND ACUTE;Ll;0;L;0103 0301;;;;N;;;1EAE;;1EAE
+1EB0;LATIN CAPITAL LETTER A WITH BREVE AND GRAVE;Lu;0;L;0102 0300;;;;N;;;;1EB1;
+1EB1;LATIN SMALL LETTER A WITH BREVE AND GRAVE;Ll;0;L;0103 0300;;;;N;;;1EB0;;1EB0
+1EB2;LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE;Lu;0;L;0102 0309;;;;N;;;;1EB3;
+1EB3;LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE;Ll;0;L;0103 0309;;;;N;;;1EB2;;1EB2
+1EB4;LATIN CAPITAL LETTER A WITH BREVE AND TILDE;Lu;0;L;0102 0303;;;;N;;;;1EB5;
+1EB5;LATIN SMALL LETTER A WITH BREVE AND TILDE;Ll;0;L;0103 0303;;;;N;;;1EB4;;1EB4
+1EB6;LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW;Lu;0;L;1EA0 0306;;;;N;;;;1EB7;
+1EB7;LATIN SMALL LETTER A WITH BREVE AND DOT BELOW;Ll;0;L;1EA1 0306;;;;N;;;1EB6;;1EB6
+1EB8;LATIN CAPITAL LETTER E WITH DOT BELOW;Lu;0;L;0045 0323;;;;N;;;;1EB9;
+1EB9;LATIN SMALL LETTER E WITH DOT BELOW;Ll;0;L;0065 0323;;;;N;;;1EB8;;1EB8
+1EBA;LATIN CAPITAL LETTER E WITH HOOK ABOVE;Lu;0;L;0045 0309;;;;N;;;;1EBB;
+1EBB;LATIN SMALL LETTER E WITH HOOK ABOVE;Ll;0;L;0065 0309;;;;N;;;1EBA;;1EBA
+1EBC;LATIN CAPITAL LETTER E WITH TILDE;Lu;0;L;0045 0303;;;;N;;;;1EBD;
+1EBD;LATIN SMALL LETTER E WITH TILDE;Ll;0;L;0065 0303;;;;N;;;1EBC;;1EBC
+1EBE;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE;Lu;0;L;00CA 0301;;;;N;;;;1EBF;
+1EBF;LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE;Ll;0;L;00EA 0301;;;;N;;;1EBE;;1EBE
+1EC0;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE;Lu;0;L;00CA 0300;;;;N;;;;1EC1;
+1EC1;LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE;Ll;0;L;00EA 0300;;;;N;;;1EC0;;1EC0
+1EC2;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE;Lu;0;L;00CA 0309;;;;N;;;;1EC3;
+1EC3;LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE;Ll;0;L;00EA 0309;;;;N;;;1EC2;;1EC2
+1EC4;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE;Lu;0;L;00CA 0303;;;;N;;;;1EC5;
+1EC5;LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE;Ll;0;L;00EA 0303;;;;N;;;1EC4;;1EC4
+1EC6;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW;Lu;0;L;1EB8 0302;;;;N;;;;1EC7;
+1EC7;LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW;Ll;0;L;1EB9 0302;;;;N;;;1EC6;;1EC6
+1EC8;LATIN CAPITAL LETTER I WITH HOOK ABOVE;Lu;0;L;0049 0309;;;;N;;;;1EC9;
+1EC9;LATIN SMALL LETTER I WITH HOOK ABOVE;Ll;0;L;0069 0309;;;;N;;;1EC8;;1EC8
+1ECA;LATIN CAPITAL LETTER I WITH DOT BELOW;Lu;0;L;0049 0323;;;;N;;;;1ECB;
+1ECB;LATIN SMALL LETTER I WITH DOT BELOW;Ll;0;L;0069 0323;;;;N;;;1ECA;;1ECA
+1ECC;LATIN CAPITAL LETTER O WITH DOT BELOW;Lu;0;L;004F 0323;;;;N;;;;1ECD;
+1ECD;LATIN SMALL LETTER O WITH DOT BELOW;Ll;0;L;006F 0323;;;;N;;;1ECC;;1ECC
+1ECE;LATIN CAPITAL LETTER O WITH HOOK ABOVE;Lu;0;L;004F 0309;;;;N;;;;1ECF;
+1ECF;LATIN SMALL LETTER O WITH HOOK ABOVE;Ll;0;L;006F 0309;;;;N;;;1ECE;;1ECE
+1ED0;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE;Lu;0;L;00D4 0301;;;;N;;;;1ED1;
+1ED1;LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE;Ll;0;L;00F4 0301;;;;N;;;1ED0;;1ED0
+1ED2;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE;Lu;0;L;00D4 0300;;;;N;;;;1ED3;
+1ED3;LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE;Ll;0;L;00F4 0300;;;;N;;;1ED2;;1ED2
+1ED4;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE;Lu;0;L;00D4 0309;;;;N;;;;1ED5;
+1ED5;LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE;Ll;0;L;00F4 0309;;;;N;;;1ED4;;1ED4
+1ED6;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE;Lu;0;L;00D4 0303;;;;N;;;;1ED7;
+1ED7;LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE;Ll;0;L;00F4 0303;;;;N;;;1ED6;;1ED6
+1ED8;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW;Lu;0;L;1ECC 0302;;;;N;;;;1ED9;
+1ED9;LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW;Ll;0;L;1ECD 0302;;;;N;;;1ED8;;1ED8
+1EDA;LATIN CAPITAL LETTER O WITH HORN AND ACUTE;Lu;0;L;01A0 0301;;;;N;;;;1EDB;
+1EDB;LATIN SMALL LETTER O WITH HORN AND ACUTE;Ll;0;L;01A1 0301;;;;N;;;1EDA;;1EDA
+1EDC;LATIN CAPITAL LETTER O WITH HORN AND GRAVE;Lu;0;L;01A0 0300;;;;N;;;;1EDD;
+1EDD;LATIN SMALL LETTER O WITH HORN AND GRAVE;Ll;0;L;01A1 0300;;;;N;;;1EDC;;1EDC
+1EDE;LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE;Lu;0;L;01A0 0309;;;;N;;;;1EDF;
+1EDF;LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE;Ll;0;L;01A1 0309;;;;N;;;1EDE;;1EDE
+1EE0;LATIN CAPITAL LETTER O WITH HORN AND TILDE;Lu;0;L;01A0 0303;;;;N;;;;1EE1;
+1EE1;LATIN SMALL LETTER O WITH HORN AND TILDE;Ll;0;L;01A1 0303;;;;N;;;1EE0;;1EE0
+1EE2;LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW;Lu;0;L;01A0 0323;;;;N;;;;1EE3;
+1EE3;LATIN SMALL LETTER O WITH HORN AND DOT BELOW;Ll;0;L;01A1 0323;;;;N;;;1EE2;;1EE2
+1EE4;LATIN CAPITAL LETTER U WITH DOT BELOW;Lu;0;L;0055 0323;;;;N;;;;1EE5;
+1EE5;LATIN SMALL LETTER U WITH DOT BELOW;Ll;0;L;0075 0323;;;;N;;;1EE4;;1EE4
+1EE6;LATIN CAPITAL LETTER U WITH HOOK ABOVE;Lu;0;L;0055 0309;;;;N;;;;1EE7;
+1EE7;LATIN SMALL LETTER U WITH HOOK ABOVE;Ll;0;L;0075 0309;;;;N;;;1EE6;;1EE6
+1EE8;LATIN CAPITAL LETTER U WITH HORN AND ACUTE;Lu;0;L;01AF 0301;;;;N;;;;1EE9;
+1EE9;LATIN SMALL LETTER U WITH HORN AND ACUTE;Ll;0;L;01B0 0301;;;;N;;;1EE8;;1EE8
+1EEA;LATIN CAPITAL LETTER U WITH HORN AND GRAVE;Lu;0;L;01AF 0300;;;;N;;;;1EEB;
+1EEB;LATIN SMALL LETTER U WITH HORN AND GRAVE;Ll;0;L;01B0 0300;;;;N;;;1EEA;;1EEA
+1EEC;LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE;Lu;0;L;01AF 0309;;;;N;;;;1EED;
+1EED;LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE;Ll;0;L;01B0 0309;;;;N;;;1EEC;;1EEC
+1EEE;LATIN CAPITAL LETTER U WITH HORN AND TILDE;Lu;0;L;01AF 0303;;;;N;;;;1EEF;
+1EEF;LATIN SMALL LETTER U WITH HORN AND TILDE;Ll;0;L;01B0 0303;;;;N;;;1EEE;;1EEE
+1EF0;LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW;Lu;0;L;01AF 0323;;;;N;;;;1EF1;
+1EF1;LATIN SMALL LETTER U WITH HORN AND DOT BELOW;Ll;0;L;01B0 0323;;;;N;;;1EF0;;1EF0
+1EF2;LATIN CAPITAL LETTER Y WITH GRAVE;Lu;0;L;0059 0300;;;;N;;;;1EF3;
+1EF3;LATIN SMALL LETTER Y WITH GRAVE;Ll;0;L;0079 0300;;;;N;;;1EF2;;1EF2
+1EF4;LATIN CAPITAL LETTER Y WITH DOT BELOW;Lu;0;L;0059 0323;;;;N;;;;1EF5;
+1EF5;LATIN SMALL LETTER Y WITH DOT BELOW;Ll;0;L;0079 0323;;;;N;;;1EF4;;1EF4
+1EF6;LATIN CAPITAL LETTER Y WITH HOOK ABOVE;Lu;0;L;0059 0309;;;;N;;;;1EF7;
+1EF7;LATIN SMALL LETTER Y WITH HOOK ABOVE;Ll;0;L;0079 0309;;;;N;;;1EF6;;1EF6
+1EF8;LATIN CAPITAL LETTER Y WITH TILDE;Lu;0;L;0059 0303;;;;N;;;;1EF9;
+1EF9;LATIN SMALL LETTER Y WITH TILDE;Ll;0;L;0079 0303;;;;N;;;1EF8;;1EF8
+1F00;GREEK SMALL LETTER ALPHA WITH PSILI;Ll;0;L;03B1 0313;;;;N;;;1F08;;1F08
+1F01;GREEK SMALL LETTER ALPHA WITH DASIA;Ll;0;L;03B1 0314;;;;N;;;1F09;;1F09
+1F02;GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA;Ll;0;L;1F00 0300;;;;N;;;1F0A;;1F0A
+1F03;GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA;Ll;0;L;1F01 0300;;;;N;;;1F0B;;1F0B
+1F04;GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA;Ll;0;L;1F00 0301;;;;N;;;1F0C;;1F0C
+1F05;GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA;Ll;0;L;1F01 0301;;;;N;;;1F0D;;1F0D
+1F06;GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI;Ll;0;L;1F00 0342;;;;N;;;1F0E;;1F0E
+1F07;GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI;Ll;0;L;1F01 0342;;;;N;;;1F0F;;1F0F
+1F08;GREEK CAPITAL LETTER ALPHA WITH PSILI;Lu;0;L;0391 0313;;;;N;;;;1F00;
+1F09;GREEK CAPITAL LETTER ALPHA WITH DASIA;Lu;0;L;0391 0314;;;;N;;;;1F01;
+1F0A;GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA;Lu;0;L;1F08 0300;;;;N;;;;1F02;
+1F0B;GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA;Lu;0;L;1F09 0300;;;;N;;;;1F03;
+1F0C;GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA;Lu;0;L;1F08 0301;;;;N;;;;1F04;
+1F0D;GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA;Lu;0;L;1F09 0301;;;;N;;;;1F05;
+1F0E;GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI;Lu;0;L;1F08 0342;;;;N;;;;1F06;
+1F0F;GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI;Lu;0;L;1F09 0342;;;;N;;;;1F07;
+1F10;GREEK SMALL LETTER EPSILON WITH PSILI;Ll;0;L;03B5 0313;;;;N;;;1F18;;1F18
+1F11;GREEK SMALL LETTER EPSILON WITH DASIA;Ll;0;L;03B5 0314;;;;N;;;1F19;;1F19
+1F12;GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA;Ll;0;L;1F10 0300;;;;N;;;1F1A;;1F1A
+1F13;GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA;Ll;0;L;1F11 0300;;;;N;;;1F1B;;1F1B
+1F14;GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA;Ll;0;L;1F10 0301;;;;N;;;1F1C;;1F1C
+1F15;GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA;Ll;0;L;1F11 0301;;;;N;;;1F1D;;1F1D
+1F18;GREEK CAPITAL LETTER EPSILON WITH PSILI;Lu;0;L;0395 0313;;;;N;;;;1F10;
+1F19;GREEK CAPITAL LETTER EPSILON WITH DASIA;Lu;0;L;0395 0314;;;;N;;;;1F11;
+1F1A;GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA;Lu;0;L;1F18 0300;;;;N;;;;1F12;
+1F1B;GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA;Lu;0;L;1F19 0300;;;;N;;;;1F13;
+1F1C;GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA;Lu;0;L;1F18 0301;;;;N;;;;1F14;
+1F1D;GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA;Lu;0;L;1F19 0301;;;;N;;;;1F15;
+1F20;GREEK SMALL LETTER ETA WITH PSILI;Ll;0;L;03B7 0313;;;;N;;;1F28;;1F28
+1F21;GREEK SMALL LETTER ETA WITH DASIA;Ll;0;L;03B7 0314;;;;N;;;1F29;;1F29
+1F22;GREEK SMALL LETTER ETA WITH PSILI AND VARIA;Ll;0;L;1F20 0300;;;;N;;;1F2A;;1F2A
+1F23;GREEK SMALL LETTER ETA WITH DASIA AND VARIA;Ll;0;L;1F21 0300;;;;N;;;1F2B;;1F2B
+1F24;GREEK SMALL LETTER ETA WITH PSILI AND OXIA;Ll;0;L;1F20 0301;;;;N;;;1F2C;;1F2C
+1F25;GREEK SMALL LETTER ETA WITH DASIA AND OXIA;Ll;0;L;1F21 0301;;;;N;;;1F2D;;1F2D
+1F26;GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI;Ll;0;L;1F20 0342;;;;N;;;1F2E;;1F2E
+1F27;GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI;Ll;0;L;1F21 0342;;;;N;;;1F2F;;1F2F
+1F28;GREEK CAPITAL LETTER ETA WITH PSILI;Lu;0;L;0397 0313;;;;N;;;;1F20;
+1F29;GREEK CAPITAL LETTER ETA WITH DASIA;Lu;0;L;0397 0314;;;;N;;;;1F21;
+1F2A;GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA;Lu;0;L;1F28 0300;;;;N;;;;1F22;
+1F2B;GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA;Lu;0;L;1F29 0300;;;;N;;;;1F23;
+1F2C;GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA;Lu;0;L;1F28 0301;;;;N;;;;1F24;
+1F2D;GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA;Lu;0;L;1F29 0301;;;;N;;;;1F25;
+1F2E;GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI;Lu;0;L;1F28 0342;;;;N;;;;1F26;
+1F2F;GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI;Lu;0;L;1F29 0342;;;;N;;;;1F27;
+1F30;GREEK SMALL LETTER IOTA WITH PSILI;Ll;0;L;03B9 0313;;;;N;;;1F38;;1F38
+1F31;GREEK SMALL LETTER IOTA WITH DASIA;Ll;0;L;03B9 0314;;;;N;;;1F39;;1F39
+1F32;GREEK SMALL LETTER IOTA WITH PSILI AND VARIA;Ll;0;L;1F30 0300;;;;N;;;1F3A;;1F3A
+1F33;GREEK SMALL LETTER IOTA WITH DASIA AND VARIA;Ll;0;L;1F31 0300;;;;N;;;1F3B;;1F3B
+1F34;GREEK SMALL LETTER IOTA WITH PSILI AND OXIA;Ll;0;L;1F30 0301;;;;N;;;1F3C;;1F3C
+1F35;GREEK SMALL LETTER IOTA WITH DASIA AND OXIA;Ll;0;L;1F31 0301;;;;N;;;1F3D;;1F3D
+1F36;GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI;Ll;0;L;1F30 0342;;;;N;;;1F3E;;1F3E
+1F37;GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI;Ll;0;L;1F31 0342;;;;N;;;1F3F;;1F3F
+1F38;GREEK CAPITAL LETTER IOTA WITH PSILI;Lu;0;L;0399 0313;;;;N;;;;1F30;
+1F39;GREEK CAPITAL LETTER IOTA WITH DASIA;Lu;0;L;0399 0314;;;;N;;;;1F31;
+1F3A;GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA;Lu;0;L;1F38 0300;;;;N;;;;1F32;
+1F3B;GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA;Lu;0;L;1F39 0300;;;;N;;;;1F33;
+1F3C;GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA;Lu;0;L;1F38 0301;;;;N;;;;1F34;
+1F3D;GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA;Lu;0;L;1F39 0301;;;;N;;;;1F35;
+1F3E;GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI;Lu;0;L;1F38 0342;;;;N;;;;1F36;
+1F3F;GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI;Lu;0;L;1F39 0342;;;;N;;;;1F37;
+1F40;GREEK SMALL LETTER OMICRON WITH PSILI;Ll;0;L;03BF 0313;;;;N;;;1F48;;1F48
+1F41;GREEK SMALL LETTER OMICRON WITH DASIA;Ll;0;L;03BF 0314;;;;N;;;1F49;;1F49
+1F42;GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA;Ll;0;L;1F40 0300;;;;N;;;1F4A;;1F4A
+1F43;GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA;Ll;0;L;1F41 0300;;;;N;;;1F4B;;1F4B
+1F44;GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA;Ll;0;L;1F40 0301;;;;N;;;1F4C;;1F4C
+1F45;GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA;Ll;0;L;1F41 0301;;;;N;;;1F4D;;1F4D
+1F48;GREEK CAPITAL LETTER OMICRON WITH PSILI;Lu;0;L;039F 0313;;;;N;;;;1F40;
+1F49;GREEK CAPITAL LETTER OMICRON WITH DASIA;Lu;0;L;039F 0314;;;;N;;;;1F41;
+1F4A;GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA;Lu;0;L;1F48 0300;;;;N;;;;1F42;
+1F4B;GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA;Lu;0;L;1F49 0300;;;;N;;;;1F43;
+1F4C;GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA;Lu;0;L;1F48 0301;;;;N;;;;1F44;
+1F4D;GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA;Lu;0;L;1F49 0301;;;;N;;;;1F45;
+1F50;GREEK SMALL LETTER UPSILON WITH PSILI;Ll;0;L;03C5 0313;;;;N;;;;;
+1F51;GREEK SMALL LETTER UPSILON WITH DASIA;Ll;0;L;03C5 0314;;;;N;;;1F59;;1F59
+1F52;GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA;Ll;0;L;1F50 0300;;;;N;;;;;
+1F53;GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA;Ll;0;L;1F51 0300;;;;N;;;1F5B;;1F5B
+1F54;GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA;Ll;0;L;1F50 0301;;;;N;;;;;
+1F55;GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA;Ll;0;L;1F51 0301;;;;N;;;1F5D;;1F5D
+1F56;GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI;Ll;0;L;1F50 0342;;;;N;;;;;
+1F57;GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI;Ll;0;L;1F51 0342;;;;N;;;1F5F;;1F5F
+1F59;GREEK CAPITAL LETTER UPSILON WITH DASIA;Lu;0;L;03A5 0314;;;;N;;;;1F51;
+1F5B;GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA;Lu;0;L;1F59 0300;;;;N;;;;1F53;
+1F5D;GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA;Lu;0;L;1F59 0301;;;;N;;;;1F55;
+1F5F;GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI;Lu;0;L;1F59 0342;;;;N;;;;1F57;
+1F60;GREEK SMALL LETTER OMEGA WITH PSILI;Ll;0;L;03C9 0313;;;;N;;;1F68;;1F68
+1F61;GREEK SMALL LETTER OMEGA WITH DASIA;Ll;0;L;03C9 0314;;;;N;;;1F69;;1F69
+1F62;GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA;Ll;0;L;1F60 0300;;;;N;;;1F6A;;1F6A
+1F63;GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA;Ll;0;L;1F61 0300;;;;N;;;1F6B;;1F6B
+1F64;GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA;Ll;0;L;1F60 0301;;;;N;;;1F6C;;1F6C
+1F65;GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA;Ll;0;L;1F61 0301;;;;N;;;1F6D;;1F6D
+1F66;GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI;Ll;0;L;1F60 0342;;;;N;;;1F6E;;1F6E
+1F67;GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI;Ll;0;L;1F61 0342;;;;N;;;1F6F;;1F6F
+1F68;GREEK CAPITAL LETTER OMEGA WITH PSILI;Lu;0;L;03A9 0313;;;;N;;;;1F60;
+1F69;GREEK CAPITAL LETTER OMEGA WITH DASIA;Lu;0;L;03A9 0314;;;;N;;;;1F61;
+1F6A;GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA;Lu;0;L;1F68 0300;;;;N;;;;1F62;
+1F6B;GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA;Lu;0;L;1F69 0300;;;;N;;;;1F63;
+1F6C;GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA;Lu;0;L;1F68 0301;;;;N;;;;1F64;
+1F6D;GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA;Lu;0;L;1F69 0301;;;;N;;;;1F65;
+1F6E;GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI;Lu;0;L;1F68 0342;;;;N;;;;1F66;
+1F6F;GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI;Lu;0;L;1F69 0342;;;;N;;;;1F67;
+1F70;GREEK SMALL LETTER ALPHA WITH VARIA;Ll;0;L;03B1 0300;;;;N;;;1FBA;;1FBA
+1F71;GREEK SMALL LETTER ALPHA WITH OXIA;Ll;0;L;03AC;;;;N;;;1FBB;;1FBB
+1F72;GREEK SMALL LETTER EPSILON WITH VARIA;Ll;0;L;03B5 0300;;;;N;;;1FC8;;1FC8
+1F73;GREEK SMALL LETTER EPSILON WITH OXIA;Ll;0;L;03AD;;;;N;;;1FC9;;1FC9
+1F74;GREEK SMALL LETTER ETA WITH VARIA;Ll;0;L;03B7 0300;;;;N;;;1FCA;;1FCA
+1F75;GREEK SMALL LETTER ETA WITH OXIA;Ll;0;L;03AE;;;;N;;;1FCB;;1FCB
+1F76;GREEK SMALL LETTER IOTA WITH VARIA;Ll;0;L;03B9 0300;;;;N;;;1FDA;;1FDA
+1F77;GREEK SMALL LETTER IOTA WITH OXIA;Ll;0;L;03AF;;;;N;;;1FDB;;1FDB
+1F78;GREEK SMALL LETTER OMICRON WITH VARIA;Ll;0;L;03BF 0300;;;;N;;;1FF8;;1FF8
+1F79;GREEK SMALL LETTER OMICRON WITH OXIA;Ll;0;L;03CC;;;;N;;;1FF9;;1FF9
+1F7A;GREEK SMALL LETTER UPSILON WITH VARIA;Ll;0;L;03C5 0300;;;;N;;;1FEA;;1FEA
+1F7B;GREEK SMALL LETTER UPSILON WITH OXIA;Ll;0;L;03CD;;;;N;;;1FEB;;1FEB
+1F7C;GREEK SMALL LETTER OMEGA WITH VARIA;Ll;0;L;03C9 0300;;;;N;;;1FFA;;1FFA
+1F7D;GREEK SMALL LETTER OMEGA WITH OXIA;Ll;0;L;03CE;;;;N;;;1FFB;;1FFB
+1F80;GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI;Ll;0;L;1F00 0345;;;;N;;;1F88;;1F88
+1F81;GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI;Ll;0;L;1F01 0345;;;;N;;;1F89;;1F89
+1F82;GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F02 0345;;;;N;;;1F8A;;1F8A
+1F83;GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F03 0345;;;;N;;;1F8B;;1F8B
+1F84;GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F04 0345;;;;N;;;1F8C;;1F8C
+1F85;GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F05 0345;;;;N;;;1F8D;;1F8D
+1F86;GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F06 0345;;;;N;;;1F8E;;1F8E
+1F87;GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F07 0345;;;;N;;;1F8F;;1F8F
+1F88;GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI;Lt;0;L;1F08 0345;;;;N;;;;1F80;
+1F89;GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI;Lt;0;L;1F09 0345;;;;N;;;;1F81;
+1F8A;GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F0A 0345;;;;N;;;;1F82;
+1F8B;GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F0B 0345;;;;N;;;;1F83;
+1F8C;GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F0C 0345;;;;N;;;;1F84;
+1F8D;GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F0D 0345;;;;N;;;;1F85;
+1F8E;GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F0E 0345;;;;N;;;;1F86;
+1F8F;GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F0F 0345;;;;N;;;;1F87;
+1F90;GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI;Ll;0;L;1F20 0345;;;;N;;;1F98;;1F98
+1F91;GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI;Ll;0;L;1F21 0345;;;;N;;;1F99;;1F99
+1F92;GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F22 0345;;;;N;;;1F9A;;1F9A
+1F93;GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F23 0345;;;;N;;;1F9B;;1F9B
+1F94;GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F24 0345;;;;N;;;1F9C;;1F9C
+1F95;GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F25 0345;;;;N;;;1F9D;;1F9D
+1F96;GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F26 0345;;;;N;;;1F9E;;1F9E
+1F97;GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F27 0345;;;;N;;;1F9F;;1F9F
+1F98;GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI;Lt;0;L;1F28 0345;;;;N;;;;1F90;
+1F99;GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI;Lt;0;L;1F29 0345;;;;N;;;;1F91;
+1F9A;GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F2A 0345;;;;N;;;;1F92;
+1F9B;GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F2B 0345;;;;N;;;;1F93;
+1F9C;GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F2C 0345;;;;N;;;;1F94;
+1F9D;GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F2D 0345;;;;N;;;;1F95;
+1F9E;GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F2E 0345;;;;N;;;;1F96;
+1F9F;GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F2F 0345;;;;N;;;;1F97;
+1FA0;GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI;Ll;0;L;1F60 0345;;;;N;;;1FA8;;1FA8
+1FA1;GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI;Ll;0;L;1F61 0345;;;;N;;;1FA9;;1FA9
+1FA2;GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F62 0345;;;;N;;;1FAA;;1FAA
+1FA3;GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F63 0345;;;;N;;;1FAB;;1FAB
+1FA4;GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F64 0345;;;;N;;;1FAC;;1FAC
+1FA5;GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F65 0345;;;;N;;;1FAD;;1FAD
+1FA6;GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F66 0345;;;;N;;;1FAE;;1FAE
+1FA7;GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F67 0345;;;;N;;;1FAF;;1FAF
+1FA8;GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI;Lt;0;L;1F68 0345;;;;N;;;;1FA0;
+1FA9;GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI;Lt;0;L;1F69 0345;;;;N;;;;1FA1;
+1FAA;GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F6A 0345;;;;N;;;;1FA2;
+1FAB;GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F6B 0345;;;;N;;;;1FA3;
+1FAC;GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F6C 0345;;;;N;;;;1FA4;
+1FAD;GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F6D 0345;;;;N;;;;1FA5;
+1FAE;GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F6E 0345;;;;N;;;;1FA6;
+1FAF;GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F6F 0345;;;;N;;;;1FA7;
+1FB0;GREEK SMALL LETTER ALPHA WITH VRACHY;Ll;0;L;03B1 0306;;;;N;;;1FB8;;1FB8
+1FB1;GREEK SMALL LETTER ALPHA WITH MACRON;Ll;0;L;03B1 0304;;;;N;;;1FB9;;1FB9
+1FB2;GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI;Ll;0;L;1F70 0345;;;;N;;;;;
+1FB3;GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI;Ll;0;L;03B1 0345;;;;N;;;1FBC;;1FBC
+1FB4;GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI;Ll;0;L;03AC 0345;;;;N;;;;;
+1FB6;GREEK SMALL LETTER ALPHA WITH PERISPOMENI;Ll;0;L;03B1 0342;;;;N;;;;;
+1FB7;GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1FB6 0345;;;;N;;;;;
+1FB8;GREEK CAPITAL LETTER ALPHA WITH VRACHY;Lu;0;L;0391 0306;;;;N;;;;1FB0;
+1FB9;GREEK CAPITAL LETTER ALPHA WITH MACRON;Lu;0;L;0391 0304;;;;N;;;;1FB1;
+1FBA;GREEK CAPITAL LETTER ALPHA WITH VARIA;Lu;0;L;0391 0300;;;;N;;;;1F70;
+1FBB;GREEK CAPITAL LETTER ALPHA WITH OXIA;Lu;0;L;0386;;;;N;;;;1F71;
+1FBC;GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI;Lt;0;L;0391 0345;;;;N;;;;1FB3;
+1FBD;GREEK KORONIS;Sk;0;ON;<compat> 0020 0313;;;;N;;;;;
+1FBE;GREEK PROSGEGRAMMENI;Ll;0;L;03B9;;;;N;;;0399;;0399
+1FBF;GREEK PSILI;Sk;0;ON;<compat> 0020 0313;;;;N;;;;;
+1FC0;GREEK PERISPOMENI;Sk;0;ON;<compat> 0020 0342;;;;N;;;;;
+1FC1;GREEK DIALYTIKA AND PERISPOMENI;Sk;0;ON;00A8 0342;;;;N;;;;;
+1FC2;GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI;Ll;0;L;1F74 0345;;;;N;;;;;
+1FC3;GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI;Ll;0;L;03B7 0345;;;;N;;;1FCC;;1FCC
+1FC4;GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI;Ll;0;L;03AE 0345;;;;N;;;;;
+1FC6;GREEK SMALL LETTER ETA WITH PERISPOMENI;Ll;0;L;03B7 0342;;;;N;;;;;
+1FC7;GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1FC6 0345;;;;N;;;;;
+1FC8;GREEK CAPITAL LETTER EPSILON WITH VARIA;Lu;0;L;0395 0300;;;;N;;;;1F72;
+1FC9;GREEK CAPITAL LETTER EPSILON WITH OXIA;Lu;0;L;0388;;;;N;;;;1F73;
+1FCA;GREEK CAPITAL LETTER ETA WITH VARIA;Lu;0;L;0397 0300;;;;N;;;;1F74;
+1FCB;GREEK CAPITAL LETTER ETA WITH OXIA;Lu;0;L;0389;;;;N;;;;1F75;
+1FCC;GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI;Lt;0;L;0397 0345;;;;N;;;;1FC3;
+1FCD;GREEK PSILI AND VARIA;Sk;0;ON;1FBF 0300;;;;N;;;;;
+1FCE;GREEK PSILI AND OXIA;Sk;0;ON;1FBF 0301;;;;N;;;;;
+1FCF;GREEK PSILI AND PERISPOMENI;Sk;0;ON;1FBF 0342;;;;N;;;;;
+1FD0;GREEK SMALL LETTER IOTA WITH VRACHY;Ll;0;L;03B9 0306;;;;N;;;1FD8;;1FD8
+1FD1;GREEK SMALL LETTER IOTA WITH MACRON;Ll;0;L;03B9 0304;;;;N;;;1FD9;;1FD9
+1FD2;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA;Ll;0;L;03CA 0300;;;;N;;;;;
+1FD3;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA;Ll;0;L;0390;;;;N;;;;;
+1FD6;GREEK SMALL LETTER IOTA WITH PERISPOMENI;Ll;0;L;03B9 0342;;;;N;;;;;
+1FD7;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI;Ll;0;L;03CA 0342;;;;N;;;;;
+1FD8;GREEK CAPITAL LETTER IOTA WITH VRACHY;Lu;0;L;0399 0306;;;;N;;;;1FD0;
+1FD9;GREEK CAPITAL LETTER IOTA WITH MACRON;Lu;0;L;0399 0304;;;;N;;;;1FD1;
+1FDA;GREEK CAPITAL LETTER IOTA WITH VARIA;Lu;0;L;0399 0300;;;;N;;;;1F76;
+1FDB;GREEK CAPITAL LETTER IOTA WITH OXIA;Lu;0;L;038A;;;;N;;;;1F77;
+1FDD;GREEK DASIA AND VARIA;Sk;0;ON;1FFE 0300;;;;N;;;;;
+1FDE;GREEK DASIA AND OXIA;Sk;0;ON;1FFE 0301;;;;N;;;;;
+1FDF;GREEK DASIA AND PERISPOMENI;Sk;0;ON;1FFE 0342;;;;N;;;;;
+1FE0;GREEK SMALL LETTER UPSILON WITH VRACHY;Ll;0;L;03C5 0306;;;;N;;;1FE8;;1FE8
+1FE1;GREEK SMALL LETTER UPSILON WITH MACRON;Ll;0;L;03C5 0304;;;;N;;;1FE9;;1FE9
+1FE2;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA;Ll;0;L;03CB 0300;;;;N;;;;;
+1FE3;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA;Ll;0;L;03B0;;;;N;;;;;
+1FE4;GREEK SMALL LETTER RHO WITH PSILI;Ll;0;L;03C1 0313;;;;N;;;;;
+1FE5;GREEK SMALL LETTER RHO WITH DASIA;Ll;0;L;03C1 0314;;;;N;;;1FEC;;1FEC
+1FE6;GREEK SMALL LETTER UPSILON WITH PERISPOMENI;Ll;0;L;03C5 0342;;;;N;;;;;
+1FE7;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI;Ll;0;L;03CB 0342;;;;N;;;;;
+1FE8;GREEK CAPITAL LETTER UPSILON WITH VRACHY;Lu;0;L;03A5 0306;;;;N;;;;1FE0;
+1FE9;GREEK CAPITAL LETTER UPSILON WITH MACRON;Lu;0;L;03A5 0304;;;;N;;;;1FE1;
+1FEA;GREEK CAPITAL LETTER UPSILON WITH VARIA;Lu;0;L;03A5 0300;;;;N;;;;1F7A;
+1FEB;GREEK CAPITAL LETTER UPSILON WITH OXIA;Lu;0;L;038E;;;;N;;;;1F7B;
+1FEC;GREEK CAPITAL LETTER RHO WITH DASIA;Lu;0;L;03A1 0314;;;;N;;;;1FE5;
+1FED;GREEK DIALYTIKA AND VARIA;Sk;0;ON;00A8 0300;;;;N;;;;;
+1FEE;GREEK DIALYTIKA AND OXIA;Sk;0;ON;0385;;;;N;;;;;
+1FEF;GREEK VARIA;Sk;0;ON;0060;;;;N;;;;;
+1FF2;GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI;Ll;0;L;1F7C 0345;;;;N;;;;;
+1FF3;GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI;Ll;0;L;03C9 0345;;;;N;;;1FFC;;1FFC
+1FF4;GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI;Ll;0;L;03CE 0345;;;;N;;;;;
+1FF6;GREEK SMALL LETTER OMEGA WITH PERISPOMENI;Ll;0;L;03C9 0342;;;;N;;;;;
+1FF7;GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1FF6 0345;;;;N;;;;;
+1FF8;GREEK CAPITAL LETTER OMICRON WITH VARIA;Lu;0;L;039F 0300;;;;N;;;;1F78;
+1FF9;GREEK CAPITAL LETTER OMICRON WITH OXIA;Lu;0;L;038C;;;;N;;;;1F79;
+1FFA;GREEK CAPITAL LETTER OMEGA WITH VARIA;Lu;0;L;03A9 0300;;;;N;;;;1F7C;
+1FFB;GREEK CAPITAL LETTER OMEGA WITH OXIA;Lu;0;L;038F;;;;N;;;;1F7D;
+1FFC;GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI;Lt;0;L;03A9 0345;;;;N;;;;1FF3;
+1FFD;GREEK OXIA;Sk;0;ON;00B4;;;;N;;;;;
+1FFE;GREEK DASIA;Sk;0;ON;<compat> 0020 0314;;;;N;;;;;
+2000;EN QUAD;Zs;0;WS;2002;;;;N;;;;;
+2001;EM QUAD;Zs;0;WS;2003;;;;N;;;;;
+2002;EN SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;;
+2003;EM SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;;
+2004;THREE-PER-EM SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;;
+2005;FOUR-PER-EM SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;;
+2006;SIX-PER-EM SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;;
+2007;FIGURE SPACE;Zs;0;WS;<noBreak> 0020;;;;N;;;;;
+2008;PUNCTUATION SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;;
+2009;THIN SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;;
+200A;HAIR SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;;
+200B;ZERO WIDTH SPACE;Zs;0;BN;;;;;N;;;;;
+200C;ZERO WIDTH NON-JOINER;Cf;0;BN;;;;;N;;;;;
+200D;ZERO WIDTH JOINER;Cf;0;BN;;;;;N;;;;;
+200E;LEFT-TO-RIGHT MARK;Cf;0;L;;;;;N;;;;;
+200F;RIGHT-TO-LEFT MARK;Cf;0;R;;;;;N;;;;;
+2010;HYPHEN;Pd;0;ON;;;;;N;;;;;
+2011;NON-BREAKING HYPHEN;Pd;0;ON;<noBreak> 2010;;;;N;;;;;
+2012;FIGURE DASH;Pd;0;ON;;;;;N;;;;;
+2013;EN DASH;Pd;0;ON;;;;;N;;;;;
+2014;EM DASH;Pd;0;ON;;;;;N;;;;;
+2015;HORIZONTAL BAR;Pd;0;ON;;;;;N;QUOTATION DASH;;;;
+2016;DOUBLE VERTICAL LINE;Po;0;ON;;;;;N;DOUBLE VERTICAL BAR;;;;
+2017;DOUBLE LOW LINE;Po;0;ON;<compat> 0020 0333;;;;N;SPACING DOUBLE UNDERSCORE;;;;
+2018;LEFT SINGLE QUOTATION MARK;Pi;0;ON;;;;;N;SINGLE TURNED COMMA QUOTATION MARK;;;;
+2019;RIGHT SINGLE QUOTATION MARK;Pf;0;ON;;;;;N;SINGLE COMMA QUOTATION MARK;;;;
+201A;SINGLE LOW-9 QUOTATION MARK;Ps;0;ON;;;;;N;LOW SINGLE COMMA QUOTATION MARK;;;;
+201B;SINGLE HIGH-REVERSED-9 QUOTATION MARK;Pi;0;ON;;;;;N;SINGLE REVERSED COMMA QUOTATION MARK;;;;
+201C;LEFT DOUBLE QUOTATION MARK;Pi;0;ON;;;;;N;DOUBLE TURNED COMMA QUOTATION MARK;;;;
+201D;RIGHT DOUBLE QUOTATION MARK;Pf;0;ON;;;;;N;DOUBLE COMMA QUOTATION MARK;;;;
+201E;DOUBLE LOW-9 QUOTATION MARK;Ps;0;ON;;;;;N;LOW DOUBLE COMMA QUOTATION MARK;;;;
+201F;DOUBLE HIGH-REVERSED-9 QUOTATION MARK;Pi;0;ON;;;;;N;DOUBLE REVERSED COMMA QUOTATION MARK;;;;
+2020;DAGGER;Po;0;ON;;;;;N;;;;;
+2021;DOUBLE DAGGER;Po;0;ON;;;;;N;;;;;
+2022;BULLET;Po;0;ON;;;;;N;;;;;
+2023;TRIANGULAR BULLET;Po;0;ON;;;;;N;;;;;
+2024;ONE DOT LEADER;Po;0;ON;<compat> 002E;;;;N;;;;;
+2025;TWO DOT LEADER;Po;0;ON;<compat> 002E 002E;;;;N;;;;;
+2026;HORIZONTAL ELLIPSIS;Po;0;ON;<compat> 002E 002E 002E;;;;N;;;;;
+2027;HYPHENATION POINT;Po;0;ON;;;;;N;;;;;
+2028;LINE SEPARATOR;Zl;0;WS;;;;;N;;;;;
+2029;PARAGRAPH SEPARATOR;Zp;0;B;;;;;N;;;;;
+202A;LEFT-TO-RIGHT EMBEDDING;Cf;0;LRE;;;;;N;;;;;
+202B;RIGHT-TO-LEFT EMBEDDING;Cf;0;RLE;;;;;N;;;;;
+202C;POP DIRECTIONAL FORMATTING;Cf;0;PDF;;;;;N;;;;;
+202D;LEFT-TO-RIGHT OVERRIDE;Cf;0;LRO;;;;;N;;;;;
+202E;RIGHT-TO-LEFT OVERRIDE;Cf;0;RLO;;;;;N;;;;;
+202F;NARROW NO-BREAK SPACE;Zs;0;WS;<noBreak> 0020;;;;N;;;;;
+2030;PER MILLE SIGN;Po;0;ET;;;;;N;;;;;
+2031;PER TEN THOUSAND SIGN;Po;0;ET;;;;;N;;;;;
+2032;PRIME;Po;0;ET;;;;;N;;;;;
+2033;DOUBLE PRIME;Po;0;ET;<compat> 2032 2032;;;;N;;;;;
+2034;TRIPLE PRIME;Po;0;ET;<compat> 2032 2032 2032;;;;N;;;;;
+2035;REVERSED PRIME;Po;0;ON;;;;;N;;;;;
+2036;REVERSED DOUBLE PRIME;Po;0;ON;<compat> 2035 2035;;;;N;;;;;
+2037;REVERSED TRIPLE PRIME;Po;0;ON;<compat> 2035 2035 2035;;;;N;;;;;
+2038;CARET;Po;0;ON;;;;;N;;;;;
+2039;SINGLE LEFT-POINTING ANGLE QUOTATION MARK;Pi;0;ON;;;;;Y;LEFT POINTING SINGLE GUILLEMET;;;;
+203A;SINGLE RIGHT-POINTING ANGLE QUOTATION MARK;Pf;0;ON;;;;;Y;RIGHT POINTING SINGLE GUILLEMET;;;;
+203B;REFERENCE MARK;Po;0;ON;;;;;N;;;;;
+203C;DOUBLE EXCLAMATION MARK;Po;0;ON;<compat> 0021 0021;;;;N;;;;;
+203D;INTERROBANG;Po;0;ON;;;;;N;;;;;
+203E;OVERLINE;Po;0;ON;<compat> 0020 0305;;;;N;SPACING OVERSCORE;;;;
+203F;UNDERTIE;Pc;0;ON;;;;;N;;Enotikon;;;
+2040;CHARACTER TIE;Pc;0;ON;;;;;N;;;;;
+2041;CARET INSERTION POINT;Po;0;ON;;;;;N;;;;;
+2042;ASTERISM;Po;0;ON;;;;;N;;;;;
+2043;HYPHEN BULLET;Po;0;ON;;;;;N;;;;;
+2044;FRACTION SLASH;Sm;0;ON;;;;;N;;;;;
+2045;LEFT SQUARE BRACKET WITH QUILL;Ps;0;ON;;;;;Y;;;;;
+2046;RIGHT SQUARE BRACKET WITH QUILL;Pe;0;ON;;;;;Y;;;;;
+2048;QUESTION EXCLAMATION MARK;Po;0;ON;<compat> 003F 0021;;;;N;;;;;
+2049;EXCLAMATION QUESTION MARK;Po;0;ON;<compat> 0021 003F;;;;N;;;;;
+204A;TIRONIAN SIGN ET;Po;0;ON;;;;;N;;;;;
+204B;REVERSED PILCROW SIGN;Po;0;ON;;;;;N;;;;;
+204C;BLACK LEFTWARDS BULLET;Po;0;ON;;;;;N;;;;;
+204D;BLACK RIGHTWARDS BULLET;Po;0;ON;;;;;N;;;;;
+206A;INHIBIT SYMMETRIC SWAPPING;Cf;0;BN;;;;;N;;;;;
+206B;ACTIVATE SYMMETRIC SWAPPING;Cf;0;BN;;;;;N;;;;;
+206C;INHIBIT ARABIC FORM SHAPING;Cf;0;BN;;;;;N;;;;;
+206D;ACTIVATE ARABIC FORM SHAPING;Cf;0;BN;;;;;N;;;;;
+206E;NATIONAL DIGIT SHAPES;Cf;0;BN;;;;;N;;;;;
+206F;NOMINAL DIGIT SHAPES;Cf;0;BN;;;;;N;;;;;
+2070;SUPERSCRIPT ZERO;No;0;EN;<super> 0030;0;0;0;N;SUPERSCRIPT DIGIT ZERO;;;;
+2074;SUPERSCRIPT FOUR;No;0;EN;<super> 0034;4;4;4;N;SUPERSCRIPT DIGIT FOUR;;;;
+2075;SUPERSCRIPT FIVE;No;0;EN;<super> 0035;5;5;5;N;SUPERSCRIPT DIGIT FIVE;;;;
+2076;SUPERSCRIPT SIX;No;0;EN;<super> 0036;6;6;6;N;SUPERSCRIPT DIGIT SIX;;;;
+2077;SUPERSCRIPT SEVEN;No;0;EN;<super> 0037;7;7;7;N;SUPERSCRIPT DIGIT SEVEN;;;;
+2078;SUPERSCRIPT EIGHT;No;0;EN;<super> 0038;8;8;8;N;SUPERSCRIPT DIGIT EIGHT;;;;
+2079;SUPERSCRIPT NINE;No;0;EN;<super> 0039;9;9;9;N;SUPERSCRIPT DIGIT NINE;;;;
+207A;SUPERSCRIPT PLUS SIGN;Sm;0;ET;<super> 002B;;;;N;;;;;
+207B;SUPERSCRIPT MINUS;Sm;0;ET;<super> 2212;;;;N;SUPERSCRIPT HYPHEN-MINUS;;;;
+207C;SUPERSCRIPT EQUALS SIGN;Sm;0;ON;<super> 003D;;;;N;;;;;
+207D;SUPERSCRIPT LEFT PARENTHESIS;Ps;0;ON;<super> 0028;;;;Y;SUPERSCRIPT OPENING PARENTHESIS;;;;
+207E;SUPERSCRIPT RIGHT PARENTHESIS;Pe;0;ON;<super> 0029;;;;Y;SUPERSCRIPT CLOSING PARENTHESIS;;;;
+207F;SUPERSCRIPT LATIN SMALL LETTER N;Ll;0;L;<super> 006E;;;;N;;;;;
+2080;SUBSCRIPT ZERO;No;0;EN;<sub> 0030;0;0;0;N;SUBSCRIPT DIGIT ZERO;;;;
+2081;SUBSCRIPT ONE;No;0;EN;<sub> 0031;1;1;1;N;SUBSCRIPT DIGIT ONE;;;;
+2082;SUBSCRIPT TWO;No;0;EN;<sub> 0032;2;2;2;N;SUBSCRIPT DIGIT TWO;;;;
+2083;SUBSCRIPT THREE;No;0;EN;<sub> 0033;3;3;3;N;SUBSCRIPT DIGIT THREE;;;;
+2084;SUBSCRIPT FOUR;No;0;EN;<sub> 0034;4;4;4;N;SUBSCRIPT DIGIT FOUR;;;;
+2085;SUBSCRIPT FIVE;No;0;EN;<sub> 0035;5;5;5;N;SUBSCRIPT DIGIT FIVE;;;;
+2086;SUBSCRIPT SIX;No;0;EN;<sub> 0036;6;6;6;N;SUBSCRIPT DIGIT SIX;;;;
+2087;SUBSCRIPT SEVEN;No;0;EN;<sub> 0037;7;7;7;N;SUBSCRIPT DIGIT SEVEN;;;;
+2088;SUBSCRIPT EIGHT;No;0;EN;<sub> 0038;8;8;8;N;SUBSCRIPT DIGIT EIGHT;;;;
+2089;SUBSCRIPT NINE;No;0;EN;<sub> 0039;9;9;9;N;SUBSCRIPT DIGIT NINE;;;;
+208A;SUBSCRIPT PLUS SIGN;Sm;0;ET;<sub> 002B;;;;N;;;;;
+208B;SUBSCRIPT MINUS;Sm;0;ET;<sub> 2212;;;;N;SUBSCRIPT HYPHEN-MINUS;;;;
+208C;SUBSCRIPT EQUALS SIGN;Sm;0;ON;<sub> 003D;;;;N;;;;;
+208D;SUBSCRIPT LEFT PARENTHESIS;Ps;0;ON;<sub> 0028;;;;Y;SUBSCRIPT OPENING PARENTHESIS;;;;
+208E;SUBSCRIPT RIGHT PARENTHESIS;Pe;0;ON;<sub> 0029;;;;Y;SUBSCRIPT CLOSING PARENTHESIS;;;;
+20A0;EURO-CURRENCY SIGN;Sc;0;ET;;;;;N;;;;;
+20A1;COLON SIGN;Sc;0;ET;;;;;N;;;;;
+20A2;CRUZEIRO SIGN;Sc;0;ET;;;;;N;;;;;
+20A3;FRENCH FRANC SIGN;Sc;0;ET;;;;;N;;;;;
+20A4;LIRA SIGN;Sc;0;ET;;;;;N;;;;;
+20A5;MILL SIGN;Sc;0;ET;;;;;N;;;;;
+20A6;NAIRA SIGN;Sc;0;ET;;;;;N;;;;;
+20A7;PESETA SIGN;Sc;0;ET;;;;;N;;;;;
+20A8;RUPEE SIGN;Sc;0;ET;<compat> 0052 0073;;;;N;;;;;
+20A9;WON SIGN;Sc;0;ET;;;;;N;;;;;
+20AA;NEW SHEQEL SIGN;Sc;0;ET;;;;;N;;;;;
+20AB;DONG SIGN;Sc;0;ET;;;;;N;;;;;
+20AC;EURO SIGN;Sc;0;ET;;;;;N;;;;;
+20AD;KIP SIGN;Sc;0;ET;;;;;N;;;;;
+20AE;TUGRIK SIGN;Sc;0;ET;;;;;N;;;;;
+20AF;DRACHMA SIGN;Sc;0;ET;;;;;N;;;;;
+20D0;COMBINING LEFT HARPOON ABOVE;Mn;230;NSM;;;;;N;NON-SPACING LEFT HARPOON ABOVE;;;;
+20D1;COMBINING RIGHT HARPOON ABOVE;Mn;230;NSM;;;;;N;NON-SPACING RIGHT HARPOON ABOVE;;;;
+20D2;COMBINING LONG VERTICAL LINE OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING LONG VERTICAL BAR OVERLAY;;;;
+20D3;COMBINING SHORT VERTICAL LINE OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING SHORT VERTICAL BAR OVERLAY;;;;
+20D4;COMBINING ANTICLOCKWISE ARROW ABOVE;Mn;230;NSM;;;;;N;NON-SPACING ANTICLOCKWISE ARROW ABOVE;;;;
+20D5;COMBINING CLOCKWISE ARROW ABOVE;Mn;230;NSM;;;;;N;NON-SPACING CLOCKWISE ARROW ABOVE;;;;
+20D6;COMBINING LEFT ARROW ABOVE;Mn;230;NSM;;;;;N;NON-SPACING LEFT ARROW ABOVE;;;;
+20D7;COMBINING RIGHT ARROW ABOVE;Mn;230;NSM;;;;;N;NON-SPACING RIGHT ARROW ABOVE;;;;
+20D8;COMBINING RING OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING RING OVERLAY;;;;
+20D9;COMBINING CLOCKWISE RING OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING CLOCKWISE RING OVERLAY;;;;
+20DA;COMBINING ANTICLOCKWISE RING OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING ANTICLOCKWISE RING OVERLAY;;;;
+20DB;COMBINING THREE DOTS ABOVE;Mn;230;NSM;;;;;N;NON-SPACING THREE DOTS ABOVE;;;;
+20DC;COMBINING FOUR DOTS ABOVE;Mn;230;NSM;;;;;N;NON-SPACING FOUR DOTS ABOVE;;;;
+20DD;COMBINING ENCLOSING CIRCLE;Me;0;NSM;;;;;N;ENCLOSING CIRCLE;;;;
+20DE;COMBINING ENCLOSING SQUARE;Me;0;NSM;;;;;N;ENCLOSING SQUARE;;;;
+20DF;COMBINING ENCLOSING DIAMOND;Me;0;NSM;;;;;N;ENCLOSING DIAMOND;;;;
+20E0;COMBINING ENCLOSING CIRCLE BACKSLASH;Me;0;NSM;;;;;N;ENCLOSING CIRCLE SLASH;;;;
+20E1;COMBINING LEFT RIGHT ARROW ABOVE;Mn;230;NSM;;;;;N;NON-SPACING LEFT RIGHT ARROW ABOVE;;;;
+20E2;COMBINING ENCLOSING SCREEN;Me;0;NSM;;;;;N;;;;;
+20E3;COMBINING ENCLOSING KEYCAP;Me;0;NSM;;;;;N;;;;;
+2100;ACCOUNT OF;So;0;ON;<compat> 0061 002F 0063;;;;N;;;;;
+2101;ADDRESSED TO THE SUBJECT;So;0;ON;<compat> 0061 002F 0073;;;;N;;;;;
+2102;DOUBLE-STRUCK CAPITAL C;Lu;0;L;<font> 0043;;;;N;DOUBLE-STRUCK C;;;;
+2103;DEGREE CELSIUS;So;0;ON;<compat> 00B0 0043;;;;N;DEGREES CENTIGRADE;;;;
+2104;CENTRE LINE SYMBOL;So;0;ON;;;;;N;C L SYMBOL;;;;
+2105;CARE OF;So;0;ON;<compat> 0063 002F 006F;;;;N;;;;;
+2106;CADA UNA;So;0;ON;<compat> 0063 002F 0075;;;;N;;;;;
+2107;EULER CONSTANT;Lu;0;L;<compat> 0190;;;;N;EULERS;;;;
+2108;SCRUPLE;So;0;ON;;;;;N;;;;;
+2109;DEGREE FAHRENHEIT;So;0;ON;<compat> 00B0 0046;;;;N;DEGREES FAHRENHEIT;;;;
+210A;SCRIPT SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;
+210B;SCRIPT CAPITAL H;Lu;0;L;<font> 0048;;;;N;SCRIPT H;;;;
+210C;BLACK-LETTER CAPITAL H;Lu;0;L;<font> 0048;;;;N;BLACK-LETTER H;;;;
+210D;DOUBLE-STRUCK CAPITAL H;Lu;0;L;<font> 0048;;;;N;DOUBLE-STRUCK H;;;;
+210E;PLANCK CONSTANT;Ll;0;L;<font> 0068;;;;N;;;;;
+210F;PLANCK CONSTANT OVER TWO PI;Ll;0;L;<font> 0127;;;;N;PLANCK CONSTANT OVER 2 PI;;;;
+2110;SCRIPT CAPITAL I;Lu;0;L;<font> 0049;;;;N;SCRIPT I;;;;
+2111;BLACK-LETTER CAPITAL I;Lu;0;L;<font> 0049;;;;N;BLACK-LETTER I;;;;
+2112;SCRIPT CAPITAL L;Lu;0;L;<font> 004C;;;;N;SCRIPT L;;;;
+2113;SCRIPT SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;
+2114;L B BAR SYMBOL;So;0;ON;;;;;N;;;;;
+2115;DOUBLE-STRUCK CAPITAL N;Lu;0;L;<font> 004E;;;;N;DOUBLE-STRUCK N;;;;
+2116;NUMERO SIGN;So;0;ON;<compat> 004E 006F;;;;N;NUMERO;;;;
+2117;SOUND RECORDING COPYRIGHT;So;0;ON;;;;;N;;;;;
+2118;SCRIPT CAPITAL P;So;0;ON;;;;;N;SCRIPT P;;;;
+2119;DOUBLE-STRUCK CAPITAL P;Lu;0;L;<font> 0050;;;;N;DOUBLE-STRUCK P;;;;
+211A;DOUBLE-STRUCK CAPITAL Q;Lu;0;L;<font> 0051;;;;N;DOUBLE-STRUCK Q;;;;
+211B;SCRIPT CAPITAL R;Lu;0;L;<font> 0052;;;;N;SCRIPT R;;;;
+211C;BLACK-LETTER CAPITAL R;Lu;0;L;<font> 0052;;;;N;BLACK-LETTER R;;;;
+211D;DOUBLE-STRUCK CAPITAL R;Lu;0;L;<font> 0052;;;;N;DOUBLE-STRUCK R;;;;
+211E;PRESCRIPTION TAKE;So;0;ON;;;;;N;;;;;
+211F;RESPONSE;So;0;ON;;;;;N;;;;;
+2120;SERVICE MARK;So;0;ON;<super> 0053 004D;;;;N;;;;;
+2121;TELEPHONE SIGN;So;0;ON;<compat> 0054 0045 004C;;;;N;T E L SYMBOL;;;;
+2122;TRADE MARK SIGN;So;0;ON;<super> 0054 004D;;;;N;TRADEMARK;;;;
+2123;VERSICLE;So;0;ON;;;;;N;;;;;
+2124;DOUBLE-STRUCK CAPITAL Z;Lu;0;L;<font> 005A;;;;N;DOUBLE-STRUCK Z;;;;
+2125;OUNCE SIGN;So;0;ON;;;;;N;OUNCE;;;;
+2126;OHM SIGN;Lu;0;L;03A9;;;;N;OHM;;;03C9;
+2127;INVERTED OHM SIGN;So;0;ON;;;;;N;MHO;;;;
+2128;BLACK-LETTER CAPITAL Z;Lu;0;L;<font> 005A;;;;N;BLACK-LETTER Z;;;;
+2129;TURNED GREEK SMALL LETTER IOTA;So;0;ON;;;;;N;;;;;
+212A;KELVIN SIGN;Lu;0;L;004B;;;;N;DEGREES KELVIN;;;006B;
+212B;ANGSTROM SIGN;Lu;0;L;00C5;;;;N;ANGSTROM UNIT;;;00E5;
+212C;SCRIPT CAPITAL B;Lu;0;L;<font> 0042;;;;N;SCRIPT B;;;;
+212D;BLACK-LETTER CAPITAL C;Lu;0;L;<font> 0043;;;;N;BLACK-LETTER C;;;;
+212E;ESTIMATED SYMBOL;So;0;ET;;;;;N;;;;;
+212F;SCRIPT SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;
+2130;SCRIPT CAPITAL E;Lu;0;L;<font> 0045;;;;N;SCRIPT E;;;;
+2131;SCRIPT CAPITAL F;Lu;0;L;<font> 0046;;;;N;SCRIPT F;;;;
+2132;TURNED CAPITAL F;So;0;ON;;;;;N;TURNED F;;;;
+2133;SCRIPT CAPITAL M;Lu;0;L;<font> 004D;;;;N;SCRIPT M;;;;
+2134;SCRIPT SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;
+2135;ALEF SYMBOL;Lo;0;L;<compat> 05D0;;;;N;FIRST TRANSFINITE CARDINAL;;;;
+2136;BET SYMBOL;Lo;0;L;<compat> 05D1;;;;N;SECOND TRANSFINITE CARDINAL;;;;
+2137;GIMEL SYMBOL;Lo;0;L;<compat> 05D2;;;;N;THIRD TRANSFINITE CARDINAL;;;;
+2138;DALET SYMBOL;Lo;0;L;<compat> 05D3;;;;N;FOURTH TRANSFINITE CARDINAL;;;;
+2139;INFORMATION SOURCE;Ll;0;L;<font> 0069;;;;N;;;;;
+213A;ROTATED CAPITAL Q;So;0;ON;;;;;N;;;;;
+2153;VULGAR FRACTION ONE THIRD;No;0;ON;<fraction> 0031 2044 0033;;;1/3;N;FRACTION ONE THIRD;;;;
+2154;VULGAR FRACTION TWO THIRDS;No;0;ON;<fraction> 0032 2044 0033;;;2/3;N;FRACTION TWO THIRDS;;;;
+2155;VULGAR FRACTION ONE FIFTH;No;0;ON;<fraction> 0031 2044 0035;;;1/5;N;FRACTION ONE FIFTH;;;;
+2156;VULGAR FRACTION TWO FIFTHS;No;0;ON;<fraction> 0032 2044 0035;;;2/5;N;FRACTION TWO FIFTHS;;;;
+2157;VULGAR FRACTION THREE FIFTHS;No;0;ON;<fraction> 0033 2044 0035;;;3/5;N;FRACTION THREE FIFTHS;;;;
+2158;VULGAR FRACTION FOUR FIFTHS;No;0;ON;<fraction> 0034 2044 0035;;;4/5;N;FRACTION FOUR FIFTHS;;;;
+2159;VULGAR FRACTION ONE SIXTH;No;0;ON;<fraction> 0031 2044 0036;;;1/6;N;FRACTION ONE SIXTH;;;;
+215A;VULGAR FRACTION FIVE SIXTHS;No;0;ON;<fraction> 0035 2044 0036;;;5/6;N;FRACTION FIVE SIXTHS;;;;
+215B;VULGAR FRACTION ONE EIGHTH;No;0;ON;<fraction> 0031 2044 0038;;;1/8;N;FRACTION ONE EIGHTH;;;;
+215C;VULGAR FRACTION THREE EIGHTHS;No;0;ON;<fraction> 0033 2044 0038;;;3/8;N;FRACTION THREE EIGHTHS;;;;
+215D;VULGAR FRACTION FIVE EIGHTHS;No;0;ON;<fraction> 0035 2044 0038;;;5/8;N;FRACTION FIVE EIGHTHS;;;;
+215E;VULGAR FRACTION SEVEN EIGHTHS;No;0;ON;<fraction> 0037 2044 0038;;;7/8;N;FRACTION SEVEN EIGHTHS;;;;
+215F;FRACTION NUMERATOR ONE;No;0;ON;<fraction> 0031 2044;;;1;N;;;;;
+2160;ROMAN NUMERAL ONE;Nl;0;L;<compat> 0049;;;1;N;;;;2170;
+2161;ROMAN NUMERAL TWO;Nl;0;L;<compat> 0049 0049;;;2;N;;;;2171;
+2162;ROMAN NUMERAL THREE;Nl;0;L;<compat> 0049 0049 0049;;;3;N;;;;2172;
+2163;ROMAN NUMERAL FOUR;Nl;0;L;<compat> 0049 0056;;;4;N;;;;2173;
+2164;ROMAN NUMERAL FIVE;Nl;0;L;<compat> 0056;;;5;N;;;;2174;
+2165;ROMAN NUMERAL SIX;Nl;0;L;<compat> 0056 0049;;;6;N;;;;2175;
+2166;ROMAN NUMERAL SEVEN;Nl;0;L;<compat> 0056 0049 0049;;;7;N;;;;2176;
+2167;ROMAN NUMERAL EIGHT;Nl;0;L;<compat> 0056 0049 0049 0049;;;8;N;;;;2177;
+2168;ROMAN NUMERAL NINE;Nl;0;L;<compat> 0049 0058;;;9;N;;;;2178;
+2169;ROMAN NUMERAL TEN;Nl;0;L;<compat> 0058;;;10;N;;;;2179;
+216A;ROMAN NUMERAL ELEVEN;Nl;0;L;<compat> 0058 0049;;;11;N;;;;217A;
+216B;ROMAN NUMERAL TWELVE;Nl;0;L;<compat> 0058 0049 0049;;;12;N;;;;217B;
+216C;ROMAN NUMERAL FIFTY;Nl;0;L;<compat> 004C;;;50;N;;;;217C;
+216D;ROMAN NUMERAL ONE HUNDRED;Nl;0;L;<compat> 0043;;;100;N;;;;217D;
+216E;ROMAN NUMERAL FIVE HUNDRED;Nl;0;L;<compat> 0044;;;500;N;;;;217E;
+216F;ROMAN NUMERAL ONE THOUSAND;Nl;0;L;<compat> 004D;;;1000;N;;;;217F;
+2170;SMALL ROMAN NUMERAL ONE;Nl;0;L;<compat> 0069;;;1;N;;;2160;;2160
+2171;SMALL ROMAN NUMERAL TWO;Nl;0;L;<compat> 0069 0069;;;2;N;;;2161;;2161
+2172;SMALL ROMAN NUMERAL THREE;Nl;0;L;<compat> 0069 0069 0069;;;3;N;;;2162;;2162
+2173;SMALL ROMAN NUMERAL FOUR;Nl;0;L;<compat> 0069 0076;;;4;N;;;2163;;2163
+2174;SMALL ROMAN NUMERAL FIVE;Nl;0;L;<compat> 0076;;;5;N;;;2164;;2164
+2175;SMALL ROMAN NUMERAL SIX;Nl;0;L;<compat> 0076 0069;;;6;N;;;2165;;2165
+2176;SMALL ROMAN NUMERAL SEVEN;Nl;0;L;<compat> 0076 0069 0069;;;7;N;;;2166;;2166
+2177;SMALL ROMAN NUMERAL EIGHT;Nl;0;L;<compat> 0076 0069 0069 0069;;;8;N;;;2167;;2167
+2178;SMALL ROMAN NUMERAL NINE;Nl;0;L;<compat> 0069 0078;;;9;N;;;2168;;2168
+2179;SMALL ROMAN NUMERAL TEN;Nl;0;L;<compat> 0078;;;10;N;;;2169;;2169
+217A;SMALL ROMAN NUMERAL ELEVEN;Nl;0;L;<compat> 0078 0069;;;11;N;;;216A;;216A
+217B;SMALL ROMAN NUMERAL TWELVE;Nl;0;L;<compat> 0078 0069 0069;;;12;N;;;216B;;216B
+217C;SMALL ROMAN NUMERAL FIFTY;Nl;0;L;<compat> 006C;;;50;N;;;216C;;216C
+217D;SMALL ROMAN NUMERAL ONE HUNDRED;Nl;0;L;<compat> 0063;;;100;N;;;216D;;216D
+217E;SMALL ROMAN NUMERAL FIVE HUNDRED;Nl;0;L;<compat> 0064;;;500;N;;;216E;;216E
+217F;SMALL ROMAN NUMERAL ONE THOUSAND;Nl;0;L;<compat> 006D;;;1000;N;;;216F;;216F
+2180;ROMAN NUMERAL ONE THOUSAND C D;Nl;0;L;;;;1000;N;;;;;
+2181;ROMAN NUMERAL FIVE THOUSAND;Nl;0;L;;;;5000;N;;;;;
+2182;ROMAN NUMERAL TEN THOUSAND;Nl;0;L;;;;10000;N;;;;;
+2183;ROMAN NUMERAL REVERSED ONE HUNDRED;Nl;0;L;;;;;N;;;;;
+2190;LEFTWARDS ARROW;Sm;0;ON;;;;;N;LEFT ARROW;;;;
+2191;UPWARDS ARROW;Sm;0;ON;;;;;N;UP ARROW;;;;
+2192;RIGHTWARDS ARROW;Sm;0;ON;;;;;N;RIGHT ARROW;;;;
+2193;DOWNWARDS ARROW;Sm;0;ON;;;;;N;DOWN ARROW;;;;
+2194;LEFT RIGHT ARROW;Sm;0;ON;;;;;N;;;;;
+2195;UP DOWN ARROW;So;0;ON;;;;;N;;;;;
+2196;NORTH WEST ARROW;So;0;ON;;;;;N;UPPER LEFT ARROW;;;;
+2197;NORTH EAST ARROW;So;0;ON;;;;;N;UPPER RIGHT ARROW;;;;
+2198;SOUTH EAST ARROW;So;0;ON;;;;;N;LOWER RIGHT ARROW;;;;
+2199;SOUTH WEST ARROW;So;0;ON;;;;;N;LOWER LEFT ARROW;;;;
+219A;LEFTWARDS ARROW WITH STROKE;Sm;0;ON;2190 0338;;;;N;LEFT ARROW WITH STROKE;;;;
+219B;RIGHTWARDS ARROW WITH STROKE;Sm;0;ON;2192 0338;;;;N;RIGHT ARROW WITH STROKE;;;;
+219C;LEFTWARDS WAVE ARROW;So;0;ON;;;;;N;LEFT WAVE ARROW;;;;
+219D;RIGHTWARDS WAVE ARROW;So;0;ON;;;;;N;RIGHT WAVE ARROW;;;;
+219E;LEFTWARDS TWO HEADED ARROW;So;0;ON;;;;;N;LEFT TWO HEADED ARROW;;;;
+219F;UPWARDS TWO HEADED ARROW;So;0;ON;;;;;N;UP TWO HEADED ARROW;;;;
+21A0;RIGHTWARDS TWO HEADED ARROW;Sm;0;ON;;;;;N;RIGHT TWO HEADED ARROW;;;;
+21A1;DOWNWARDS TWO HEADED ARROW;So;0;ON;;;;;N;DOWN TWO HEADED ARROW;;;;
+21A2;LEFTWARDS ARROW WITH TAIL;So;0;ON;;;;;N;LEFT ARROW WITH TAIL;;;;
+21A3;RIGHTWARDS ARROW WITH TAIL;Sm;0;ON;;;;;N;RIGHT ARROW WITH TAIL;;;;
+21A4;LEFTWARDS ARROW FROM BAR;So;0;ON;;;;;N;LEFT ARROW FROM BAR;;;;
+21A5;UPWARDS ARROW FROM BAR;So;0;ON;;;;;N;UP ARROW FROM BAR;;;;
+21A6;RIGHTWARDS ARROW FROM BAR;Sm;0;ON;;;;;N;RIGHT ARROW FROM BAR;;;;
+21A7;DOWNWARDS ARROW FROM BAR;So;0;ON;;;;;N;DOWN ARROW FROM BAR;;;;
+21A8;UP DOWN ARROW WITH BASE;So;0;ON;;;;;N;;;;;
+21A9;LEFTWARDS ARROW WITH HOOK;So;0;ON;;;;;N;LEFT ARROW WITH HOOK;;;;
+21AA;RIGHTWARDS ARROW WITH HOOK;So;0;ON;;;;;N;RIGHT ARROW WITH HOOK;;;;
+21AB;LEFTWARDS ARROW WITH LOOP;So;0;ON;;;;;N;LEFT ARROW WITH LOOP;;;;
+21AC;RIGHTWARDS ARROW WITH LOOP;So;0;ON;;;;;N;RIGHT ARROW WITH LOOP;;;;
+21AD;LEFT RIGHT WAVE ARROW;So;0;ON;;;;;N;;;;;
+21AE;LEFT RIGHT ARROW WITH STROKE;Sm;0;ON;2194 0338;;;;N;;;;;
+21AF;DOWNWARDS ZIGZAG ARROW;So;0;ON;;;;;N;DOWN ZIGZAG ARROW;;;;
+21B0;UPWARDS ARROW WITH TIP LEFTWARDS;So;0;ON;;;;;N;UP ARROW WITH TIP LEFT;;;;
+21B1;UPWARDS ARROW WITH TIP RIGHTWARDS;So;0;ON;;;;;N;UP ARROW WITH TIP RIGHT;;;;
+21B2;DOWNWARDS ARROW WITH TIP LEFTWARDS;So;0;ON;;;;;N;DOWN ARROW WITH TIP LEFT;;;;
+21B3;DOWNWARDS ARROW WITH TIP RIGHTWARDS;So;0;ON;;;;;N;DOWN ARROW WITH TIP RIGHT;;;;
+21B4;RIGHTWARDS ARROW WITH CORNER DOWNWARDS;So;0;ON;;;;;N;RIGHT ARROW WITH CORNER DOWN;;;;
+21B5;DOWNWARDS ARROW WITH CORNER LEFTWARDS;So;0;ON;;;;;N;DOWN ARROW WITH CORNER LEFT;;;;
+21B6;ANTICLOCKWISE TOP SEMICIRCLE ARROW;So;0;ON;;;;;N;;;;;
+21B7;CLOCKWISE TOP SEMICIRCLE ARROW;So;0;ON;;;;;N;;;;;
+21B8;NORTH WEST ARROW TO LONG BAR;So;0;ON;;;;;N;UPPER LEFT ARROW TO LONG BAR;;;;
+21B9;LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR;So;0;ON;;;;;N;LEFT ARROW TO BAR OVER RIGHT ARROW TO BAR;;;;
+21BA;ANTICLOCKWISE OPEN CIRCLE ARROW;So;0;ON;;;;;N;;;;;
+21BB;CLOCKWISE OPEN CIRCLE ARROW;So;0;ON;;;;;N;;;;;
+21BC;LEFTWARDS HARPOON WITH BARB UPWARDS;So;0;ON;;;;;N;LEFT HARPOON WITH BARB UP;;;;
+21BD;LEFTWARDS HARPOON WITH BARB DOWNWARDS;So;0;ON;;;;;N;LEFT HARPOON WITH BARB DOWN;;;;
+21BE;UPWARDS HARPOON WITH BARB RIGHTWARDS;So;0;ON;;;;;N;UP HARPOON WITH BARB RIGHT;;;;
+21BF;UPWARDS HARPOON WITH BARB LEFTWARDS;So;0;ON;;;;;N;UP HARPOON WITH BARB LEFT;;;;
+21C0;RIGHTWARDS HARPOON WITH BARB UPWARDS;So;0;ON;;;;;N;RIGHT HARPOON WITH BARB UP;;;;
+21C1;RIGHTWARDS HARPOON WITH BARB DOWNWARDS;So;0;ON;;;;;N;RIGHT HARPOON WITH BARB DOWN;;;;
+21C2;DOWNWARDS HARPOON WITH BARB RIGHTWARDS;So;0;ON;;;;;N;DOWN HARPOON WITH BARB RIGHT;;;;
+21C3;DOWNWARDS HARPOON WITH BARB LEFTWARDS;So;0;ON;;;;;N;DOWN HARPOON WITH BARB LEFT;;;;
+21C4;RIGHTWARDS ARROW OVER LEFTWARDS ARROW;So;0;ON;;;;;N;RIGHT ARROW OVER LEFT ARROW;;;;
+21C5;UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW;So;0;ON;;;;;N;UP ARROW LEFT OF DOWN ARROW;;;;
+21C6;LEFTWARDS ARROW OVER RIGHTWARDS ARROW;So;0;ON;;;;;N;LEFT ARROW OVER RIGHT ARROW;;;;
+21C7;LEFTWARDS PAIRED ARROWS;So;0;ON;;;;;N;LEFT PAIRED ARROWS;;;;
+21C8;UPWARDS PAIRED ARROWS;So;0;ON;;;;;N;UP PAIRED ARROWS;;;;
+21C9;RIGHTWARDS PAIRED ARROWS;So;0;ON;;;;;N;RIGHT PAIRED ARROWS;;;;
+21CA;DOWNWARDS PAIRED ARROWS;So;0;ON;;;;;N;DOWN PAIRED ARROWS;;;;
+21CB;LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON;So;0;ON;;;;;N;LEFT HARPOON OVER RIGHT HARPOON;;;;
+21CC;RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON;So;0;ON;;;;;N;RIGHT HARPOON OVER LEFT HARPOON;;;;
+21CD;LEFTWARDS DOUBLE ARROW WITH STROKE;So;0;ON;21D0 0338;;;;N;LEFT DOUBLE ARROW WITH STROKE;;;;
+21CE;LEFT RIGHT DOUBLE ARROW WITH STROKE;Sm;0;ON;21D4 0338;;;;N;;;;;
+21CF;RIGHTWARDS DOUBLE ARROW WITH STROKE;Sm;0;ON;21D2 0338;;;;N;RIGHT DOUBLE ARROW WITH STROKE;;;;
+21D0;LEFTWARDS DOUBLE ARROW;So;0;ON;;;;;N;LEFT DOUBLE ARROW;;;;
+21D1;UPWARDS DOUBLE ARROW;So;0;ON;;;;;N;UP DOUBLE ARROW;;;;
+21D2;RIGHTWARDS DOUBLE ARROW;Sm;0;ON;;;;;N;RIGHT DOUBLE ARROW;;;;
+21D3;DOWNWARDS DOUBLE ARROW;So;0;ON;;;;;N;DOWN DOUBLE ARROW;;;;
+21D4;LEFT RIGHT DOUBLE ARROW;Sm;0;ON;;;;;N;;;;;
+21D5;UP DOWN DOUBLE ARROW;So;0;ON;;;;;N;;;;;
+21D6;NORTH WEST DOUBLE ARROW;So;0;ON;;;;;N;UPPER LEFT DOUBLE ARROW;;;;
+21D7;NORTH EAST DOUBLE ARROW;So;0;ON;;;;;N;UPPER RIGHT DOUBLE ARROW;;;;
+21D8;SOUTH EAST DOUBLE ARROW;So;0;ON;;;;;N;LOWER RIGHT DOUBLE ARROW;;;;
+21D9;SOUTH WEST DOUBLE ARROW;So;0;ON;;;;;N;LOWER LEFT DOUBLE ARROW;;;;
+21DA;LEFTWARDS TRIPLE ARROW;So;0;ON;;;;;N;LEFT TRIPLE ARROW;;;;
+21DB;RIGHTWARDS TRIPLE ARROW;So;0;ON;;;;;N;RIGHT TRIPLE ARROW;;;;
+21DC;LEFTWARDS SQUIGGLE ARROW;So;0;ON;;;;;N;LEFT SQUIGGLE ARROW;;;;
+21DD;RIGHTWARDS SQUIGGLE ARROW;So;0;ON;;;;;N;RIGHT SQUIGGLE ARROW;;;;
+21DE;UPWARDS ARROW WITH DOUBLE STROKE;So;0;ON;;;;;N;UP ARROW WITH DOUBLE STROKE;;;;
+21DF;DOWNWARDS ARROW WITH DOUBLE STROKE;So;0;ON;;;;;N;DOWN ARROW WITH DOUBLE STROKE;;;;
+21E0;LEFTWARDS DASHED ARROW;So;0;ON;;;;;N;LEFT DASHED ARROW;;;;
+21E1;UPWARDS DASHED ARROW;So;0;ON;;;;;N;UP DASHED ARROW;;;;
+21E2;RIGHTWARDS DASHED ARROW;So;0;ON;;;;;N;RIGHT DASHED ARROW;;;;
+21E3;DOWNWARDS DASHED ARROW;So;0;ON;;;;;N;DOWN DASHED ARROW;;;;
+21E4;LEFTWARDS ARROW TO BAR;So;0;ON;;;;;N;LEFT ARROW TO BAR;;;;
+21E5;RIGHTWARDS ARROW TO BAR;So;0;ON;;;;;N;RIGHT ARROW TO BAR;;;;
+21E6;LEFTWARDS WHITE ARROW;So;0;ON;;;;;N;WHITE LEFT ARROW;;;;
+21E7;UPWARDS WHITE ARROW;So;0;ON;;;;;N;WHITE UP ARROW;;;;
+21E8;RIGHTWARDS WHITE ARROW;So;0;ON;;;;;N;WHITE RIGHT ARROW;;;;
+21E9;DOWNWARDS WHITE ARROW;So;0;ON;;;;;N;WHITE DOWN ARROW;;;;
+21EA;UPWARDS WHITE ARROW FROM BAR;So;0;ON;;;;;N;WHITE UP ARROW FROM BAR;;;;
+21EB;UPWARDS WHITE ARROW ON PEDESTAL;So;0;ON;;;;;N;;;;;
+21EC;UPWARDS WHITE ARROW ON PEDESTAL WITH HORIZONTAL BAR;So;0;ON;;;;;N;;;;;
+21ED;UPWARDS WHITE ARROW ON PEDESTAL WITH VERTICAL BAR;So;0;ON;;;;;N;;;;;
+21EE;UPWARDS WHITE DOUBLE ARROW;So;0;ON;;;;;N;;;;;
+21EF;UPWARDS WHITE DOUBLE ARROW ON PEDESTAL;So;0;ON;;;;;N;;;;;
+21F0;RIGHTWARDS WHITE ARROW FROM WALL;So;0;ON;;;;;N;;;;;
+21F1;NORTH WEST ARROW TO CORNER;So;0;ON;;;;;N;;;;;
+21F2;SOUTH EAST ARROW TO CORNER;So;0;ON;;;;;N;;;;;
+21F3;UP DOWN WHITE ARROW;So;0;ON;;;;;N;;;;;
+2200;FOR ALL;Sm;0;ON;;;;;N;;;;;
+2201;COMPLEMENT;Sm;0;ON;;;;;Y;;;;;
+2202;PARTIAL DIFFERENTIAL;Sm;0;ON;;;;;Y;;;;;
+2203;THERE EXISTS;Sm;0;ON;;;;;Y;;;;;
+2204;THERE DOES NOT EXIST;Sm;0;ON;2203 0338;;;;Y;;;;;
+2205;EMPTY SET;Sm;0;ON;;;;;N;;;;;
+2206;INCREMENT;Sm;0;ON;;;;;N;;;;;
+2207;NABLA;Sm;0;ON;;;;;N;;;;;
+2208;ELEMENT OF;Sm;0;ON;;;;;Y;;;;;
+2209;NOT AN ELEMENT OF;Sm;0;ON;2208 0338;;;;Y;;;;;
+220A;SMALL ELEMENT OF;Sm;0;ON;;;;;Y;;;;;
+220B;CONTAINS AS MEMBER;Sm;0;ON;;;;;Y;;;;;
+220C;DOES NOT CONTAIN AS MEMBER;Sm;0;ON;220B 0338;;;;Y;;;;;
+220D;SMALL CONTAINS AS MEMBER;Sm;0;ON;;;;;Y;;;;;
+220E;END OF PROOF;Sm;0;ON;;;;;N;;;;;
+220F;N-ARY PRODUCT;Sm;0;ON;;;;;N;;;;;
+2210;N-ARY COPRODUCT;Sm;0;ON;;;;;N;;;;;
+2211;N-ARY SUMMATION;Sm;0;ON;;;;;Y;;;;;
+2212;MINUS SIGN;Sm;0;ET;;;;;N;;;;;
+2213;MINUS-OR-PLUS SIGN;Sm;0;ET;;;;;N;;;;;
+2214;DOT PLUS;Sm;0;ON;;;;;N;;;;;
+2215;DIVISION SLASH;Sm;0;ON;;;;;Y;;;;;
+2216;SET MINUS;Sm;0;ON;;;;;Y;;;;;
+2217;ASTERISK OPERATOR;Sm;0;ON;;;;;N;;;;;
+2218;RING OPERATOR;Sm;0;ON;;;;;N;;;;;
+2219;BULLET OPERATOR;Sm;0;ON;;;;;N;;;;;
+221A;SQUARE ROOT;Sm;0;ON;;;;;Y;;;;;
+221B;CUBE ROOT;Sm;0;ON;;;;;Y;;;;;
+221C;FOURTH ROOT;Sm;0;ON;;;;;Y;;;;;
+221D;PROPORTIONAL TO;Sm;0;ON;;;;;Y;;;;;
+221E;INFINITY;Sm;0;ON;;;;;N;;;;;
+221F;RIGHT ANGLE;Sm;0;ON;;;;;Y;;;;;
+2220;ANGLE;Sm;0;ON;;;;;Y;;;;;
+2221;MEASURED ANGLE;Sm;0;ON;;;;;Y;;;;;
+2222;SPHERICAL ANGLE;Sm;0;ON;;;;;Y;;;;;
+2223;DIVIDES;Sm;0;ON;;;;;N;;;;;
+2224;DOES NOT DIVIDE;Sm;0;ON;2223 0338;;;;Y;;;;;
+2225;PARALLEL TO;Sm;0;ON;;;;;N;;;;;
+2226;NOT PARALLEL TO;Sm;0;ON;2225 0338;;;;Y;;;;;
+2227;LOGICAL AND;Sm;0;ON;;;;;N;;;;;
+2228;LOGICAL OR;Sm;0;ON;;;;;N;;;;;
+2229;INTERSECTION;Sm;0;ON;;;;;N;;;;;
+222A;UNION;Sm;0;ON;;;;;N;;;;;
+222B;INTEGRAL;Sm;0;ON;;;;;Y;;;;;
+222C;DOUBLE INTEGRAL;Sm;0;ON;<compat> 222B 222B;;;;Y;;;;;
+222D;TRIPLE INTEGRAL;Sm;0;ON;<compat> 222B 222B 222B;;;;Y;;;;;
+222E;CONTOUR INTEGRAL;Sm;0;ON;;;;;Y;;;;;
+222F;SURFACE INTEGRAL;Sm;0;ON;<compat> 222E 222E;;;;Y;;;;;
+2230;VOLUME INTEGRAL;Sm;0;ON;<compat> 222E 222E 222E;;;;Y;;;;;
+2231;CLOCKWISE INTEGRAL;Sm;0;ON;;;;;Y;;;;;
+2232;CLOCKWISE CONTOUR INTEGRAL;Sm;0;ON;;;;;Y;;;;;
+2233;ANTICLOCKWISE CONTOUR INTEGRAL;Sm;0;ON;;;;;Y;;;;;
+2234;THEREFORE;Sm;0;ON;;;;;N;;;;;
+2235;BECAUSE;Sm;0;ON;;;;;N;;;;;
+2236;RATIO;Sm;0;ON;;;;;N;;;;;
+2237;PROPORTION;Sm;0;ON;;;;;N;;;;;
+2238;DOT MINUS;Sm;0;ON;;;;;N;;;;;
+2239;EXCESS;Sm;0;ON;;;;;Y;;;;;
+223A;GEOMETRIC PROPORTION;Sm;0;ON;;;;;N;;;;;
+223B;HOMOTHETIC;Sm;0;ON;;;;;Y;;;;;
+223C;TILDE OPERATOR;Sm;0;ON;;;;;Y;;;;;
+223D;REVERSED TILDE;Sm;0;ON;;;;;Y;;lazy S;;;
+223E;INVERTED LAZY S;Sm;0;ON;;;;;Y;;;;;
+223F;SINE WAVE;Sm;0;ON;;;;;Y;;;;;
+2240;WREATH PRODUCT;Sm;0;ON;;;;;Y;;;;;
+2241;NOT TILDE;Sm;0;ON;223C 0338;;;;Y;;;;;
+2242;MINUS TILDE;Sm;0;ON;;;;;Y;;;;;
+2243;ASYMPTOTICALLY EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2244;NOT ASYMPTOTICALLY EQUAL TO;Sm;0;ON;2243 0338;;;;Y;;;;;
+2245;APPROXIMATELY EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2246;APPROXIMATELY BUT NOT ACTUALLY EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2247;NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO;Sm;0;ON;2245 0338;;;;Y;;;;;
+2248;ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2249;NOT ALMOST EQUAL TO;Sm;0;ON;2248 0338;;;;Y;;;;;
+224A;ALMOST EQUAL OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+224B;TRIPLE TILDE;Sm;0;ON;;;;;Y;;;;;
+224C;ALL EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+224D;EQUIVALENT TO;Sm;0;ON;;;;;N;;;;;
+224E;GEOMETRICALLY EQUIVALENT TO;Sm;0;ON;;;;;N;;;;;
+224F;DIFFERENCE BETWEEN;Sm;0;ON;;;;;N;;;;;
+2250;APPROACHES THE LIMIT;Sm;0;ON;;;;;N;;;;;
+2251;GEOMETRICALLY EQUAL TO;Sm;0;ON;;;;;N;;;;;
+2252;APPROXIMATELY EQUAL TO OR THE IMAGE OF;Sm;0;ON;;;;;Y;;;;;
+2253;IMAGE OF OR APPROXIMATELY EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2254;COLON EQUALS;Sm;0;ON;;;;;Y;COLON EQUAL;;;;
+2255;EQUALS COLON;Sm;0;ON;;;;;Y;EQUAL COLON;;;;
+2256;RING IN EQUAL TO;Sm;0;ON;;;;;N;;;;;
+2257;RING EQUAL TO;Sm;0;ON;;;;;N;;;;;
+2258;CORRESPONDS TO;Sm;0;ON;;;;;N;;;;;
+2259;ESTIMATES;Sm;0;ON;;;;;N;;;;;
+225A;EQUIANGULAR TO;Sm;0;ON;;;;;N;;;;;
+225B;STAR EQUALS;Sm;0;ON;;;;;N;;;;;
+225C;DELTA EQUAL TO;Sm;0;ON;;;;;N;;;;;
+225D;EQUAL TO BY DEFINITION;Sm;0;ON;;;;;N;;;;;
+225E;MEASURED BY;Sm;0;ON;;;;;N;;;;;
+225F;QUESTIONED EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2260;NOT EQUAL TO;Sm;0;ON;003D 0338;;;;Y;;;;;
+2261;IDENTICAL TO;Sm;0;ON;;;;;N;;;;;
+2262;NOT IDENTICAL TO;Sm;0;ON;2261 0338;;;;Y;;;;;
+2263;STRICTLY EQUIVALENT TO;Sm;0;ON;;;;;N;;;;;
+2264;LESS-THAN OR EQUAL TO;Sm;0;ON;;;;;Y;LESS THAN OR EQUAL TO;;;;
+2265;GREATER-THAN OR EQUAL TO;Sm;0;ON;;;;;Y;GREATER THAN OR EQUAL TO;;;;
+2266;LESS-THAN OVER EQUAL TO;Sm;0;ON;;;;;Y;LESS THAN OVER EQUAL TO;;;;
+2267;GREATER-THAN OVER EQUAL TO;Sm;0;ON;;;;;Y;GREATER THAN OVER EQUAL TO;;;;
+2268;LESS-THAN BUT NOT EQUAL TO;Sm;0;ON;;;;;Y;LESS THAN BUT NOT EQUAL TO;;;;
+2269;GREATER-THAN BUT NOT EQUAL TO;Sm;0;ON;;;;;Y;GREATER THAN BUT NOT EQUAL TO;;;;
+226A;MUCH LESS-THAN;Sm;0;ON;;;;;Y;MUCH LESS THAN;;;;
+226B;MUCH GREATER-THAN;Sm;0;ON;;;;;Y;MUCH GREATER THAN;;;;
+226C;BETWEEN;Sm;0;ON;;;;;N;;;;;
+226D;NOT EQUIVALENT TO;Sm;0;ON;224D 0338;;;;N;;;;;
+226E;NOT LESS-THAN;Sm;0;ON;003C 0338;;;;Y;NOT LESS THAN;;;;
+226F;NOT GREATER-THAN;Sm;0;ON;003E 0338;;;;Y;NOT GREATER THAN;;;;
+2270;NEITHER LESS-THAN NOR EQUAL TO;Sm;0;ON;2264 0338;;;;Y;NEITHER LESS THAN NOR EQUAL TO;;;;
+2271;NEITHER GREATER-THAN NOR EQUAL TO;Sm;0;ON;2265 0338;;;;Y;NEITHER GREATER THAN NOR EQUAL TO;;;;
+2272;LESS-THAN OR EQUIVALENT TO;Sm;0;ON;;;;;Y;LESS THAN OR EQUIVALENT TO;;;;
+2273;GREATER-THAN OR EQUIVALENT TO;Sm;0;ON;;;;;Y;GREATER THAN OR EQUIVALENT TO;;;;
+2274;NEITHER LESS-THAN NOR EQUIVALENT TO;Sm;0;ON;2272 0338;;;;Y;NEITHER LESS THAN NOR EQUIVALENT TO;;;;
+2275;NEITHER GREATER-THAN NOR EQUIVALENT TO;Sm;0;ON;2273 0338;;;;Y;NEITHER GREATER THAN NOR EQUIVALENT TO;;;;
+2276;LESS-THAN OR GREATER-THAN;Sm;0;ON;;;;;Y;LESS THAN OR GREATER THAN;;;;
+2277;GREATER-THAN OR LESS-THAN;Sm;0;ON;;;;;Y;GREATER THAN OR LESS THAN;;;;
+2278;NEITHER LESS-THAN NOR GREATER-THAN;Sm;0;ON;2276 0338;;;;Y;NEITHER LESS THAN NOR GREATER THAN;;;;
+2279;NEITHER GREATER-THAN NOR LESS-THAN;Sm;0;ON;2277 0338;;;;Y;NEITHER GREATER THAN NOR LESS THAN;;;;
+227A;PRECEDES;Sm;0;ON;;;;;Y;;;;;
+227B;SUCCEEDS;Sm;0;ON;;;;;Y;;;;;
+227C;PRECEDES OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+227D;SUCCEEDS OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+227E;PRECEDES OR EQUIVALENT TO;Sm;0;ON;;;;;Y;;;;;
+227F;SUCCEEDS OR EQUIVALENT TO;Sm;0;ON;;;;;Y;;;;;
+2280;DOES NOT PRECEDE;Sm;0;ON;227A 0338;;;;Y;;;;;
+2281;DOES NOT SUCCEED;Sm;0;ON;227B 0338;;;;Y;;;;;
+2282;SUBSET OF;Sm;0;ON;;;;;Y;;;;;
+2283;SUPERSET OF;Sm;0;ON;;;;;Y;;;;;
+2284;NOT A SUBSET OF;Sm;0;ON;2282 0338;;;;Y;;;;;
+2285;NOT A SUPERSET OF;Sm;0;ON;2283 0338;;;;Y;;;;;
+2286;SUBSET OF OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2287;SUPERSET OF OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2288;NEITHER A SUBSET OF NOR EQUAL TO;Sm;0;ON;2286 0338;;;;Y;;;;;
+2289;NEITHER A SUPERSET OF NOR EQUAL TO;Sm;0;ON;2287 0338;;;;Y;;;;;
+228A;SUBSET OF WITH NOT EQUAL TO;Sm;0;ON;;;;;Y;SUBSET OF OR NOT EQUAL TO;;;;
+228B;SUPERSET OF WITH NOT EQUAL TO;Sm;0;ON;;;;;Y;SUPERSET OF OR NOT EQUAL TO;;;;
+228C;MULTISET;Sm;0;ON;;;;;Y;;;;;
+228D;MULTISET MULTIPLICATION;Sm;0;ON;;;;;N;;;;;
+228E;MULTISET UNION;Sm;0;ON;;;;;N;;;;;
+228F;SQUARE IMAGE OF;Sm;0;ON;;;;;Y;;;;;
+2290;SQUARE ORIGINAL OF;Sm;0;ON;;;;;Y;;;;;
+2291;SQUARE IMAGE OF OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2292;SQUARE ORIGINAL OF OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2293;SQUARE CAP;Sm;0;ON;;;;;N;;;;;
+2294;SQUARE CUP;Sm;0;ON;;;;;N;;;;;
+2295;CIRCLED PLUS;Sm;0;ON;;;;;N;;;;;
+2296;CIRCLED MINUS;Sm;0;ON;;;;;N;;;;;
+2297;CIRCLED TIMES;Sm;0;ON;;;;;N;;;;;
+2298;CIRCLED DIVISION SLASH;Sm;0;ON;;;;;Y;;;;;
+2299;CIRCLED DOT OPERATOR;Sm;0;ON;;;;;N;;;;;
+229A;CIRCLED RING OPERATOR;Sm;0;ON;;;;;N;;;;;
+229B;CIRCLED ASTERISK OPERATOR;Sm;0;ON;;;;;N;;;;;
+229C;CIRCLED EQUALS;Sm;0;ON;;;;;N;;;;;
+229D;CIRCLED DASH;Sm;0;ON;;;;;N;;;;;
+229E;SQUARED PLUS;Sm;0;ON;;;;;N;;;;;
+229F;SQUARED MINUS;Sm;0;ON;;;;;N;;;;;
+22A0;SQUARED TIMES;Sm;0;ON;;;;;N;;;;;
+22A1;SQUARED DOT OPERATOR;Sm;0;ON;;;;;N;;;;;
+22A2;RIGHT TACK;Sm;0;ON;;;;;Y;;;;;
+22A3;LEFT TACK;Sm;0;ON;;;;;Y;;;;;
+22A4;DOWN TACK;Sm;0;ON;;;;;N;;;;;
+22A5;UP TACK;Sm;0;ON;;;;;N;;;;;
+22A6;ASSERTION;Sm;0;ON;;;;;Y;;;;;
+22A7;MODELS;Sm;0;ON;;;;;Y;;;;;
+22A8;TRUE;Sm;0;ON;;;;;Y;;;;;
+22A9;FORCES;Sm;0;ON;;;;;Y;;;;;
+22AA;TRIPLE VERTICAL BAR RIGHT TURNSTILE;Sm;0;ON;;;;;Y;;;;;
+22AB;DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE;Sm;0;ON;;;;;Y;;;;;
+22AC;DOES NOT PROVE;Sm;0;ON;22A2 0338;;;;Y;;;;;
+22AD;NOT TRUE;Sm;0;ON;22A8 0338;;;;Y;;;;;
+22AE;DOES NOT FORCE;Sm;0;ON;22A9 0338;;;;Y;;;;;
+22AF;NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE;Sm;0;ON;22AB 0338;;;;Y;;;;;
+22B0;PRECEDES UNDER RELATION;Sm;0;ON;;;;;Y;;;;;
+22B1;SUCCEEDS UNDER RELATION;Sm;0;ON;;;;;Y;;;;;
+22B2;NORMAL SUBGROUP OF;Sm;0;ON;;;;;Y;;;;;
+22B3;CONTAINS AS NORMAL SUBGROUP;Sm;0;ON;;;;;Y;;;;;
+22B4;NORMAL SUBGROUP OF OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+22B5;CONTAINS AS NORMAL SUBGROUP OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+22B6;ORIGINAL OF;Sm;0;ON;;;;;Y;;;;;
+22B7;IMAGE OF;Sm;0;ON;;;;;Y;;;;;
+22B8;MULTIMAP;Sm;0;ON;;;;;Y;;;;;
+22B9;HERMITIAN CONJUGATE MATRIX;Sm;0;ON;;;;;N;;;;;
+22BA;INTERCALATE;Sm;0;ON;;;;;N;;;;;
+22BB;XOR;Sm;0;ON;;;;;N;;;;;
+22BC;NAND;Sm;0;ON;;;;;N;;;;;
+22BD;NOR;Sm;0;ON;;;;;N;;;;;
+22BE;RIGHT ANGLE WITH ARC;Sm;0;ON;;;;;Y;;;;;
+22BF;RIGHT TRIANGLE;Sm;0;ON;;;;;Y;;;;;
+22C0;N-ARY LOGICAL AND;Sm;0;ON;;;;;N;;;;;
+22C1;N-ARY LOGICAL OR;Sm;0;ON;;;;;N;;;;;
+22C2;N-ARY INTERSECTION;Sm;0;ON;;;;;N;;;;;
+22C3;N-ARY UNION;Sm;0;ON;;;;;N;;;;;
+22C4;DIAMOND OPERATOR;Sm;0;ON;;;;;N;;;;;
+22C5;DOT OPERATOR;Sm;0;ON;;;;;N;;;;;
+22C6;STAR OPERATOR;Sm;0;ON;;;;;N;;;;;
+22C7;DIVISION TIMES;Sm;0;ON;;;;;N;;;;;
+22C8;BOWTIE;Sm;0;ON;;;;;N;;;;;
+22C9;LEFT NORMAL FACTOR SEMIDIRECT PRODUCT;Sm;0;ON;;;;;Y;;;;;
+22CA;RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT;Sm;0;ON;;;;;Y;;;;;
+22CB;LEFT SEMIDIRECT PRODUCT;Sm;0;ON;;;;;Y;;;;;
+22CC;RIGHT SEMIDIRECT PRODUCT;Sm;0;ON;;;;;Y;;;;;
+22CD;REVERSED TILDE EQUALS;Sm;0;ON;;;;;Y;;;;;
+22CE;CURLY LOGICAL OR;Sm;0;ON;;;;;N;;;;;
+22CF;CURLY LOGICAL AND;Sm;0;ON;;;;;N;;;;;
+22D0;DOUBLE SUBSET;Sm;0;ON;;;;;Y;;;;;
+22D1;DOUBLE SUPERSET;Sm;0;ON;;;;;Y;;;;;
+22D2;DOUBLE INTERSECTION;Sm;0;ON;;;;;N;;;;;
+22D3;DOUBLE UNION;Sm;0;ON;;;;;N;;;;;
+22D4;PITCHFORK;Sm;0;ON;;;;;N;;;;;
+22D5;EQUAL AND PARALLEL TO;Sm;0;ON;;;;;N;;;;;
+22D6;LESS-THAN WITH DOT;Sm;0;ON;;;;;Y;LESS THAN WITH DOT;;;;
+22D7;GREATER-THAN WITH DOT;Sm;0;ON;;;;;Y;GREATER THAN WITH DOT;;;;
+22D8;VERY MUCH LESS-THAN;Sm;0;ON;;;;;Y;VERY MUCH LESS THAN;;;;
+22D9;VERY MUCH GREATER-THAN;Sm;0;ON;;;;;Y;VERY MUCH GREATER THAN;;;;
+22DA;LESS-THAN EQUAL TO OR GREATER-THAN;Sm;0;ON;;;;;Y;LESS THAN EQUAL TO OR GREATER THAN;;;;
+22DB;GREATER-THAN EQUAL TO OR LESS-THAN;Sm;0;ON;;;;;Y;GREATER THAN EQUAL TO OR LESS THAN;;;;
+22DC;EQUAL TO OR LESS-THAN;Sm;0;ON;;;;;Y;EQUAL TO OR LESS THAN;;;;
+22DD;EQUAL TO OR GREATER-THAN;Sm;0;ON;;;;;Y;EQUAL TO OR GREATER THAN;;;;
+22DE;EQUAL TO OR PRECEDES;Sm;0;ON;;;;;Y;;;;;
+22DF;EQUAL TO OR SUCCEEDS;Sm;0;ON;;;;;Y;;;;;
+22E0;DOES NOT PRECEDE OR EQUAL;Sm;0;ON;227C 0338;;;;Y;;;;;
+22E1;DOES NOT SUCCEED OR EQUAL;Sm;0;ON;227D 0338;;;;Y;;;;;
+22E2;NOT SQUARE IMAGE OF OR EQUAL TO;Sm;0;ON;2291 0338;;;;Y;;;;;
+22E3;NOT SQUARE ORIGINAL OF OR EQUAL TO;Sm;0;ON;2292 0338;;;;Y;;;;;
+22E4;SQUARE IMAGE OF OR NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+22E5;SQUARE ORIGINAL OF OR NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+22E6;LESS-THAN BUT NOT EQUIVALENT TO;Sm;0;ON;;;;;Y;LESS THAN BUT NOT EQUIVALENT TO;;;;
+22E7;GREATER-THAN BUT NOT EQUIVALENT TO;Sm;0;ON;;;;;Y;GREATER THAN BUT NOT EQUIVALENT TO;;;;
+22E8;PRECEDES BUT NOT EQUIVALENT TO;Sm;0;ON;;;;;Y;;;;;
+22E9;SUCCEEDS BUT NOT EQUIVALENT TO;Sm;0;ON;;;;;Y;;;;;
+22EA;NOT NORMAL SUBGROUP OF;Sm;0;ON;22B2 0338;;;;Y;;;;;
+22EB;DOES NOT CONTAIN AS NORMAL SUBGROUP;Sm;0;ON;22B3 0338;;;;Y;;;;;
+22EC;NOT NORMAL SUBGROUP OF OR EQUAL TO;Sm;0;ON;22B4 0338;;;;Y;;;;;
+22ED;DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL;Sm;0;ON;22B5 0338;;;;Y;;;;;
+22EE;VERTICAL ELLIPSIS;Sm;0;ON;;;;;N;;;;;
+22EF;MIDLINE HORIZONTAL ELLIPSIS;Sm;0;ON;;;;;N;;;;;
+22F0;UP RIGHT DIAGONAL ELLIPSIS;Sm;0;ON;;;;;Y;;;;;
+22F1;DOWN RIGHT DIAGONAL ELLIPSIS;Sm;0;ON;;;;;Y;;;;;
+2300;DIAMETER SIGN;So;0;ON;;;;;N;;;;;
+2301;ELECTRIC ARROW;So;0;ON;;;;;N;;;;;
+2302;HOUSE;So;0;ON;;;;;N;;;;;
+2303;UP ARROWHEAD;So;0;ON;;;;;N;;;;;
+2304;DOWN ARROWHEAD;So;0;ON;;;;;N;;;;;
+2305;PROJECTIVE;So;0;ON;;;;;N;;;;;
+2306;PERSPECTIVE;So;0;ON;;;;;N;;;;;
+2307;WAVY LINE;So;0;ON;;;;;N;;;;;
+2308;LEFT CEILING;Sm;0;ON;;;;;Y;;;;;
+2309;RIGHT CEILING;Sm;0;ON;;;;;Y;;;;;
+230A;LEFT FLOOR;Sm;0;ON;;;;;Y;;;;;
+230B;RIGHT FLOOR;Sm;0;ON;;;;;Y;;;;;
+230C;BOTTOM RIGHT CROP;So;0;ON;;;;;N;;;;;
+230D;BOTTOM LEFT CROP;So;0;ON;;;;;N;;;;;
+230E;TOP RIGHT CROP;So;0;ON;;;;;N;;;;;
+230F;TOP LEFT CROP;So;0;ON;;;;;N;;;;;
+2310;REVERSED NOT SIGN;So;0;ON;;;;;N;;;;;
+2311;SQUARE LOZENGE;So;0;ON;;;;;N;;;;;
+2312;ARC;So;0;ON;;;;;N;;;;;
+2313;SEGMENT;So;0;ON;;;;;N;;;;;
+2314;SECTOR;So;0;ON;;;;;N;;;;;
+2315;TELEPHONE RECORDER;So;0;ON;;;;;N;;;;;
+2316;POSITION INDICATOR;So;0;ON;;;;;N;;;;;
+2317;VIEWDATA SQUARE;So;0;ON;;;;;N;;;;;
+2318;PLACE OF INTEREST SIGN;So;0;ON;;;;;N;COMMAND KEY;;;;
+2319;TURNED NOT SIGN;So;0;ON;;;;;N;;;;;
+231A;WATCH;So;0;ON;;;;;N;;;;;
+231B;HOURGLASS;So;0;ON;;;;;N;;;;;
+231C;TOP LEFT CORNER;So;0;ON;;;;;N;;;;;
+231D;TOP RIGHT CORNER;So;0;ON;;;;;N;;;;;
+231E;BOTTOM LEFT CORNER;So;0;ON;;;;;N;;;;;
+231F;BOTTOM RIGHT CORNER;So;0;ON;;;;;N;;;;;
+2320;TOP HALF INTEGRAL;Sm;0;ON;;;;;Y;;;;;
+2321;BOTTOM HALF INTEGRAL;Sm;0;ON;;;;;Y;;;;;
+2322;FROWN;So;0;ON;;;;;N;;;;;
+2323;SMILE;So;0;ON;;;;;N;;;;;
+2324;UP ARROWHEAD BETWEEN TWO HORIZONTAL BARS;So;0;ON;;;;;N;ENTER KEY;;;;
+2325;OPTION KEY;So;0;ON;;;;;N;;;;;
+2326;ERASE TO THE RIGHT;So;0;ON;;;;;N;DELETE TO THE RIGHT KEY;;;;
+2327;X IN A RECTANGLE BOX;So;0;ON;;;;;N;CLEAR KEY;;;;
+2328;KEYBOARD;So;0;ON;;;;;N;;;;;
+2329;LEFT-POINTING ANGLE BRACKET;Ps;0;ON;3008;;;;Y;BRA;;;;
+232A;RIGHT-POINTING ANGLE BRACKET;Pe;0;ON;3009;;;;Y;KET;;;;
+232B;ERASE TO THE LEFT;So;0;ON;;;;;N;DELETE TO THE LEFT KEY;;;;
+232C;BENZENE RING;So;0;ON;;;;;N;;;;;
+232D;CYLINDRICITY;So;0;ON;;;;;N;;;;;
+232E;ALL AROUND-PROFILE;So;0;ON;;;;;N;;;;;
+232F;SYMMETRY;So;0;ON;;;;;N;;;;;
+2330;TOTAL RUNOUT;So;0;ON;;;;;N;;;;;
+2331;DIMENSION ORIGIN;So;0;ON;;;;;N;;;;;
+2332;CONICAL TAPER;So;0;ON;;;;;N;;;;;
+2333;SLOPE;So;0;ON;;;;;N;;;;;
+2334;COUNTERBORE;So;0;ON;;;;;N;;;;;
+2335;COUNTERSINK;So;0;ON;;;;;N;;;;;
+2336;APL FUNCTIONAL SYMBOL I-BEAM;So;0;L;;;;;N;;;;;
+2337;APL FUNCTIONAL SYMBOL SQUISH QUAD;So;0;L;;;;;N;;;;;
+2338;APL FUNCTIONAL SYMBOL QUAD EQUAL;So;0;L;;;;;N;;;;;
+2339;APL FUNCTIONAL SYMBOL QUAD DIVIDE;So;0;L;;;;;N;;;;;
+233A;APL FUNCTIONAL SYMBOL QUAD DIAMOND;So;0;L;;;;;N;;;;;
+233B;APL FUNCTIONAL SYMBOL QUAD JOT;So;0;L;;;;;N;;;;;
+233C;APL FUNCTIONAL SYMBOL QUAD CIRCLE;So;0;L;;;;;N;;;;;
+233D;APL FUNCTIONAL SYMBOL CIRCLE STILE;So;0;L;;;;;N;;;;;
+233E;APL FUNCTIONAL SYMBOL CIRCLE JOT;So;0;L;;;;;N;;;;;
+233F;APL FUNCTIONAL SYMBOL SLASH BAR;So;0;L;;;;;N;;;;;
+2340;APL FUNCTIONAL SYMBOL BACKSLASH BAR;So;0;L;;;;;N;;;;;
+2341;APL FUNCTIONAL SYMBOL QUAD SLASH;So;0;L;;;;;N;;;;;
+2342;APL FUNCTIONAL SYMBOL QUAD BACKSLASH;So;0;L;;;;;N;;;;;
+2343;APL FUNCTIONAL SYMBOL QUAD LESS-THAN;So;0;L;;;;;N;;;;;
+2344;APL FUNCTIONAL SYMBOL QUAD GREATER-THAN;So;0;L;;;;;N;;;;;
+2345;APL FUNCTIONAL SYMBOL LEFTWARDS VANE;So;0;L;;;;;N;;;;;
+2346;APL FUNCTIONAL SYMBOL RIGHTWARDS VANE;So;0;L;;;;;N;;;;;
+2347;APL FUNCTIONAL SYMBOL QUAD LEFTWARDS ARROW;So;0;L;;;;;N;;;;;
+2348;APL FUNCTIONAL SYMBOL QUAD RIGHTWARDS ARROW;So;0;L;;;;;N;;;;;
+2349;APL FUNCTIONAL SYMBOL CIRCLE BACKSLASH;So;0;L;;;;;N;;;;;
+234A;APL FUNCTIONAL SYMBOL DOWN TACK UNDERBAR;So;0;L;;;;;N;;*;;;
+234B;APL FUNCTIONAL SYMBOL DELTA STILE;So;0;L;;;;;N;;;;;
+234C;APL FUNCTIONAL SYMBOL QUAD DOWN CARET;So;0;L;;;;;N;;;;;
+234D;APL FUNCTIONAL SYMBOL QUAD DELTA;So;0;L;;;;;N;;;;;
+234E;APL FUNCTIONAL SYMBOL DOWN TACK JOT;So;0;L;;;;;N;;*;;;
+234F;APL FUNCTIONAL SYMBOL UPWARDS VANE;So;0;L;;;;;N;;;;;
+2350;APL FUNCTIONAL SYMBOL QUAD UPWARDS ARROW;So;0;L;;;;;N;;;;;
+2351;APL FUNCTIONAL SYMBOL UP TACK OVERBAR;So;0;L;;;;;N;;*;;;
+2352;APL FUNCTIONAL SYMBOL DEL STILE;So;0;L;;;;;N;;;;;
+2353;APL FUNCTIONAL SYMBOL QUAD UP CARET;So;0;L;;;;;N;;;;;
+2354;APL FUNCTIONAL SYMBOL QUAD DEL;So;0;L;;;;;N;;;;;
+2355;APL FUNCTIONAL SYMBOL UP TACK JOT;So;0;L;;;;;N;;*;;;
+2356;APL FUNCTIONAL SYMBOL DOWNWARDS VANE;So;0;L;;;;;N;;;;;
+2357;APL FUNCTIONAL SYMBOL QUAD DOWNWARDS ARROW;So;0;L;;;;;N;;;;;
+2358;APL FUNCTIONAL SYMBOL QUOTE UNDERBAR;So;0;L;;;;;N;;;;;
+2359;APL FUNCTIONAL SYMBOL DELTA UNDERBAR;So;0;L;;;;;N;;;;;
+235A;APL FUNCTIONAL SYMBOL DIAMOND UNDERBAR;So;0;L;;;;;N;;;;;
+235B;APL FUNCTIONAL SYMBOL JOT UNDERBAR;So;0;L;;;;;N;;;;;
+235C;APL FUNCTIONAL SYMBOL CIRCLE UNDERBAR;So;0;L;;;;;N;;;;;
+235D;APL FUNCTIONAL SYMBOL UP SHOE JOT;So;0;L;;;;;N;;;;;
+235E;APL FUNCTIONAL SYMBOL QUOTE QUAD;So;0;L;;;;;N;;;;;
+235F;APL FUNCTIONAL SYMBOL CIRCLE STAR;So;0;L;;;;;N;;;;;
+2360;APL FUNCTIONAL SYMBOL QUAD COLON;So;0;L;;;;;N;;;;;
+2361;APL FUNCTIONAL SYMBOL UP TACK DIAERESIS;So;0;L;;;;;N;;*;;;
+2362;APL FUNCTIONAL SYMBOL DEL DIAERESIS;So;0;L;;;;;N;;;;;
+2363;APL FUNCTIONAL SYMBOL STAR DIAERESIS;So;0;L;;;;;N;;;;;
+2364;APL FUNCTIONAL SYMBOL JOT DIAERESIS;So;0;L;;;;;N;;;;;
+2365;APL FUNCTIONAL SYMBOL CIRCLE DIAERESIS;So;0;L;;;;;N;;;;;
+2366;APL FUNCTIONAL SYMBOL DOWN SHOE STILE;So;0;L;;;;;N;;;;;
+2367;APL FUNCTIONAL SYMBOL LEFT SHOE STILE;So;0;L;;;;;N;;;;;
+2368;APL FUNCTIONAL SYMBOL TILDE DIAERESIS;So;0;L;;;;;N;;;;;
+2369;APL FUNCTIONAL SYMBOL GREATER-THAN DIAERESIS;So;0;L;;;;;N;;;;;
+236A;APL FUNCTIONAL SYMBOL COMMA BAR;So;0;L;;;;;N;;;;;
+236B;APL FUNCTIONAL SYMBOL DEL TILDE;So;0;L;;;;;N;;;;;
+236C;APL FUNCTIONAL SYMBOL ZILDE;So;0;L;;;;;N;;;;;
+236D;APL FUNCTIONAL SYMBOL STILE TILDE;So;0;L;;;;;N;;;;;
+236E;APL FUNCTIONAL SYMBOL SEMICOLON UNDERBAR;So;0;L;;;;;N;;;;;
+236F;APL FUNCTIONAL SYMBOL QUAD NOT EQUAL;So;0;L;;;;;N;;;;;
+2370;APL FUNCTIONAL SYMBOL QUAD QUESTION;So;0;L;;;;;N;;;;;
+2371;APL FUNCTIONAL SYMBOL DOWN CARET TILDE;So;0;L;;;;;N;;;;;
+2372;APL FUNCTIONAL SYMBOL UP CARET TILDE;So;0;L;;;;;N;;;;;
+2373;APL FUNCTIONAL SYMBOL IOTA;So;0;L;;;;;N;;;;;
+2374;APL FUNCTIONAL SYMBOL RHO;So;0;L;;;;;N;;;;;
+2375;APL FUNCTIONAL SYMBOL OMEGA;So;0;L;;;;;N;;;;;
+2376;APL FUNCTIONAL SYMBOL ALPHA UNDERBAR;So;0;L;;;;;N;;;;;
+2377;APL FUNCTIONAL SYMBOL EPSILON UNDERBAR;So;0;L;;;;;N;;;;;
+2378;APL FUNCTIONAL SYMBOL IOTA UNDERBAR;So;0;L;;;;;N;;;;;
+2379;APL FUNCTIONAL SYMBOL OMEGA UNDERBAR;So;0;L;;;;;N;;;;;
+237A;APL FUNCTIONAL SYMBOL ALPHA;So;0;L;;;;;N;;;;;
+237B;NOT CHECK MARK;So;0;ON;;;;;N;;;;;
+237D;SHOULDERED OPEN BOX;So;0;ON;;;;;N;;;;;
+237E;BELL SYMBOL;So;0;ON;;;;;N;;;;;
+237F;VERTICAL LINE WITH MIDDLE DOT;So;0;ON;;;;;N;;;;;
+2380;INSERTION SYMBOL;So;0;ON;;;;;N;;;;;
+2381;CONTINUOUS UNDERLINE SYMBOL;So;0;ON;;;;;N;;;;;
+2382;DISCONTINUOUS UNDERLINE SYMBOL;So;0;ON;;;;;N;;;;;
+2383;EMPHASIS SYMBOL;So;0;ON;;;;;N;;;;;
+2384;COMPOSITION SYMBOL;So;0;ON;;;;;N;;;;;
+2385;WHITE SQUARE WITH CENTRE VERTICAL LINE;So;0;ON;;;;;N;;;;;
+2386;ENTER SYMBOL;So;0;ON;;;;;N;;;;;
+2387;ALTERNATIVE KEY SYMBOL;So;0;ON;;;;;N;;;;;
+2388;HELM SYMBOL;So;0;ON;;;;;N;;;;;
+2389;CIRCLED HORIZONTAL BAR WITH NOTCH;So;0;ON;;;;;N;;pause;;;
+238A;CIRCLED TRIANGLE DOWN;So;0;ON;;;;;N;;break;;;
+238B;BROKEN CIRCLE WITH NORTHWEST ARROW;So;0;ON;;;;;N;;escape;;;
+238C;UNDO SYMBOL;So;0;ON;;;;;N;;;;;
+238D;MONOSTABLE SYMBOL;So;0;ON;;;;;N;;;;;
+238E;HYSTERESIS SYMBOL;So;0;ON;;;;;N;;;;;
+238F;OPEN-CIRCUIT-OUTPUT H-TYPE SYMBOL;So;0;ON;;;;;N;;;;;
+2390;OPEN-CIRCUIT-OUTPUT L-TYPE SYMBOL;So;0;ON;;;;;N;;;;;
+2391;PASSIVE-PULL-DOWN-OUTPUT SYMBOL;So;0;ON;;;;;N;;;;;
+2392;PASSIVE-PULL-UP-OUTPUT SYMBOL;So;0;ON;;;;;N;;;;;
+2393;DIRECT CURRENT SYMBOL FORM TWO;So;0;ON;;;;;N;;;;;
+2394;SOFTWARE-FUNCTION SYMBOL;So;0;ON;;;;;N;;;;;
+2395;APL FUNCTIONAL SYMBOL QUAD;So;0;L;;;;;N;;;;;
+2396;DECIMAL SEPARATOR KEY SYMBOL;So;0;ON;;;;;N;;;;;
+2397;PREVIOUS PAGE;So;0;ON;;;;;N;;;;;
+2398;NEXT PAGE;So;0;ON;;;;;N;;;;;
+2399;PRINT SCREEN SYMBOL;So;0;ON;;;;;N;;;;;
+239A;CLEAR SCREEN SYMBOL;So;0;ON;;;;;N;;;;;
+2400;SYMBOL FOR NULL;So;0;ON;;;;;N;GRAPHIC FOR NULL;;;;
+2401;SYMBOL FOR START OF HEADING;So;0;ON;;;;;N;GRAPHIC FOR START OF HEADING;;;;
+2402;SYMBOL FOR START OF TEXT;So;0;ON;;;;;N;GRAPHIC FOR START OF TEXT;;;;
+2403;SYMBOL FOR END OF TEXT;So;0;ON;;;;;N;GRAPHIC FOR END OF TEXT;;;;
+2404;SYMBOL FOR END OF TRANSMISSION;So;0;ON;;;;;N;GRAPHIC FOR END OF TRANSMISSION;;;;
+2405;SYMBOL FOR ENQUIRY;So;0;ON;;;;;N;GRAPHIC FOR ENQUIRY;;;;
+2406;SYMBOL FOR ACKNOWLEDGE;So;0;ON;;;;;N;GRAPHIC FOR ACKNOWLEDGE;;;;
+2407;SYMBOL FOR BELL;So;0;ON;;;;;N;GRAPHIC FOR BELL;;;;
+2408;SYMBOL FOR BACKSPACE;So;0;ON;;;;;N;GRAPHIC FOR BACKSPACE;;;;
+2409;SYMBOL FOR HORIZONTAL TABULATION;So;0;ON;;;;;N;GRAPHIC FOR HORIZONTAL TABULATION;;;;
+240A;SYMBOL FOR LINE FEED;So;0;ON;;;;;N;GRAPHIC FOR LINE FEED;;;;
+240B;SYMBOL FOR VERTICAL TABULATION;So;0;ON;;;;;N;GRAPHIC FOR VERTICAL TABULATION;;;;
+240C;SYMBOL FOR FORM FEED;So;0;ON;;;;;N;GRAPHIC FOR FORM FEED;;;;
+240D;SYMBOL FOR CARRIAGE RETURN;So;0;ON;;;;;N;GRAPHIC FOR CARRIAGE RETURN;;;;
+240E;SYMBOL FOR SHIFT OUT;So;0;ON;;;;;N;GRAPHIC FOR SHIFT OUT;;;;
+240F;SYMBOL FOR SHIFT IN;So;0;ON;;;;;N;GRAPHIC FOR SHIFT IN;;;;
+2410;SYMBOL FOR DATA LINK ESCAPE;So;0;ON;;;;;N;GRAPHIC FOR DATA LINK ESCAPE;;;;
+2411;SYMBOL FOR DEVICE CONTROL ONE;So;0;ON;;;;;N;GRAPHIC FOR DEVICE CONTROL ONE;;;;
+2412;SYMBOL FOR DEVICE CONTROL TWO;So;0;ON;;;;;N;GRAPHIC FOR DEVICE CONTROL TWO;;;;
+2413;SYMBOL FOR DEVICE CONTROL THREE;So;0;ON;;;;;N;GRAPHIC FOR DEVICE CONTROL THREE;;;;
+2414;SYMBOL FOR DEVICE CONTROL FOUR;So;0;ON;;;;;N;GRAPHIC FOR DEVICE CONTROL FOUR;;;;
+2415;SYMBOL FOR NEGATIVE ACKNOWLEDGE;So;0;ON;;;;;N;GRAPHIC FOR NEGATIVE ACKNOWLEDGE;;;;
+2416;SYMBOL FOR SYNCHRONOUS IDLE;So;0;ON;;;;;N;GRAPHIC FOR SYNCHRONOUS IDLE;;;;
+2417;SYMBOL FOR END OF TRANSMISSION BLOCK;So;0;ON;;;;;N;GRAPHIC FOR END OF TRANSMISSION BLOCK;;;;
+2418;SYMBOL FOR CANCEL;So;0;ON;;;;;N;GRAPHIC FOR CANCEL;;;;
+2419;SYMBOL FOR END OF MEDIUM;So;0;ON;;;;;N;GRAPHIC FOR END OF MEDIUM;;;;
+241A;SYMBOL FOR SUBSTITUTE;So;0;ON;;;;;N;GRAPHIC FOR SUBSTITUTE;;;;
+241B;SYMBOL FOR ESCAPE;So;0;ON;;;;;N;GRAPHIC FOR ESCAPE;;;;
+241C;SYMBOL FOR FILE SEPARATOR;So;0;ON;;;;;N;GRAPHIC FOR FILE SEPARATOR;;;;
+241D;SYMBOL FOR GROUP SEPARATOR;So;0;ON;;;;;N;GRAPHIC FOR GROUP SEPARATOR;;;;
+241E;SYMBOL FOR RECORD SEPARATOR;So;0;ON;;;;;N;GRAPHIC FOR RECORD SEPARATOR;;;;
+241F;SYMBOL FOR UNIT SEPARATOR;So;0;ON;;;;;N;GRAPHIC FOR UNIT SEPARATOR;;;;
+2420;SYMBOL FOR SPACE;So;0;ON;;;;;N;GRAPHIC FOR SPACE;;;;
+2421;SYMBOL FOR DELETE;So;0;ON;;;;;N;GRAPHIC FOR DELETE;;;;
+2422;BLANK SYMBOL;So;0;ON;;;;;N;BLANK;;;;
+2423;OPEN BOX;So;0;ON;;;;;N;;;;;
+2424;SYMBOL FOR NEWLINE;So;0;ON;;;;;N;GRAPHIC FOR NEWLINE;;;;
+2425;SYMBOL FOR DELETE FORM TWO;So;0;ON;;;;;N;;;;;
+2426;SYMBOL FOR SUBSTITUTE FORM TWO;So;0;ON;;;;;N;;;;;
+2440;OCR HOOK;So;0;ON;;;;;N;;;;;
+2441;OCR CHAIR;So;0;ON;;;;;N;;;;;
+2442;OCR FORK;So;0;ON;;;;;N;;;;;
+2443;OCR INVERTED FORK;So;0;ON;;;;;N;;;;;
+2444;OCR BELT BUCKLE;So;0;ON;;;;;N;;;;;
+2445;OCR BOW TIE;So;0;ON;;;;;N;;;;;
+2446;OCR BRANCH BANK IDENTIFICATION;So;0;ON;;;;;N;;;;;
+2447;OCR AMOUNT OF CHECK;So;0;ON;;;;;N;;;;;
+2448;OCR DASH;So;0;ON;;;;;N;;;;;
+2449;OCR CUSTOMER ACCOUNT NUMBER;So;0;ON;;;;;N;;;;;
+244A;OCR DOUBLE BACKSLASH;So;0;ON;;;;;N;;;;;
+2460;CIRCLED DIGIT ONE;No;0;EN;<circle> 0031;;1;1;N;;;;;
+2461;CIRCLED DIGIT TWO;No;0;EN;<circle> 0032;;2;2;N;;;;;
+2462;CIRCLED DIGIT THREE;No;0;EN;<circle> 0033;;3;3;N;;;;;
+2463;CIRCLED DIGIT FOUR;No;0;EN;<circle> 0034;;4;4;N;;;;;
+2464;CIRCLED DIGIT FIVE;No;0;EN;<circle> 0035;;5;5;N;;;;;
+2465;CIRCLED DIGIT SIX;No;0;EN;<circle> 0036;;6;6;N;;;;;
+2466;CIRCLED DIGIT SEVEN;No;0;EN;<circle> 0037;;7;7;N;;;;;
+2467;CIRCLED DIGIT EIGHT;No;0;EN;<circle> 0038;;8;8;N;;;;;
+2468;CIRCLED DIGIT NINE;No;0;EN;<circle> 0039;;9;9;N;;;;;
+2469;CIRCLED NUMBER TEN;No;0;EN;<circle> 0031 0030;;;10;N;;;;;
+246A;CIRCLED NUMBER ELEVEN;No;0;EN;<circle> 0031 0031;;;11;N;;;;;
+246B;CIRCLED NUMBER TWELVE;No;0;EN;<circle> 0031 0032;;;12;N;;;;;
+246C;CIRCLED NUMBER THIRTEEN;No;0;EN;<circle> 0031 0033;;;13;N;;;;;
+246D;CIRCLED NUMBER FOURTEEN;No;0;EN;<circle> 0031 0034;;;14;N;;;;;
+246E;CIRCLED NUMBER FIFTEEN;No;0;EN;<circle> 0031 0035;;;15;N;;;;;
+246F;CIRCLED NUMBER SIXTEEN;No;0;EN;<circle> 0031 0036;;;16;N;;;;;
+2470;CIRCLED NUMBER SEVENTEEN;No;0;EN;<circle> 0031 0037;;;17;N;;;;;
+2471;CIRCLED NUMBER EIGHTEEN;No;0;EN;<circle> 0031 0038;;;18;N;;;;;
+2472;CIRCLED NUMBER NINETEEN;No;0;EN;<circle> 0031 0039;;;19;N;;;;;
+2473;CIRCLED NUMBER TWENTY;No;0;EN;<circle> 0032 0030;;;20;N;;;;;
+2474;PARENTHESIZED DIGIT ONE;No;0;EN;<compat> 0028 0031 0029;;1;1;N;;;;;
+2475;PARENTHESIZED DIGIT TWO;No;0;EN;<compat> 0028 0032 0029;;2;2;N;;;;;
+2476;PARENTHESIZED DIGIT THREE;No;0;EN;<compat> 0028 0033 0029;;3;3;N;;;;;
+2477;PARENTHESIZED DIGIT FOUR;No;0;EN;<compat> 0028 0034 0029;;4;4;N;;;;;
+2478;PARENTHESIZED DIGIT FIVE;No;0;EN;<compat> 0028 0035 0029;;5;5;N;;;;;
+2479;PARENTHESIZED DIGIT SIX;No;0;EN;<compat> 0028 0036 0029;;6;6;N;;;;;
+247A;PARENTHESIZED DIGIT SEVEN;No;0;EN;<compat> 0028 0037 0029;;7;7;N;;;;;
+247B;PARENTHESIZED DIGIT EIGHT;No;0;EN;<compat> 0028 0038 0029;;8;8;N;;;;;
+247C;PARENTHESIZED DIGIT NINE;No;0;EN;<compat> 0028 0039 0029;;9;9;N;;;;;
+247D;PARENTHESIZED NUMBER TEN;No;0;EN;<compat> 0028 0031 0030 0029;;;10;N;;;;;
+247E;PARENTHESIZED NUMBER ELEVEN;No;0;EN;<compat> 0028 0031 0031 0029;;;11;N;;;;;
+247F;PARENTHESIZED NUMBER TWELVE;No;0;EN;<compat> 0028 0031 0032 0029;;;12;N;;;;;
+2480;PARENTHESIZED NUMBER THIRTEEN;No;0;EN;<compat> 0028 0031 0033 0029;;;13;N;;;;;
+2481;PARENTHESIZED NUMBER FOURTEEN;No;0;EN;<compat> 0028 0031 0034 0029;;;14;N;;;;;
+2482;PARENTHESIZED NUMBER FIFTEEN;No;0;EN;<compat> 0028 0031 0035 0029;;;15;N;;;;;
+2483;PARENTHESIZED NUMBER SIXTEEN;No;0;EN;<compat> 0028 0031 0036 0029;;;16;N;;;;;
+2484;PARENTHESIZED NUMBER SEVENTEEN;No;0;EN;<compat> 0028 0031 0037 0029;;;17;N;;;;;
+2485;PARENTHESIZED NUMBER EIGHTEEN;No;0;EN;<compat> 0028 0031 0038 0029;;;18;N;;;;;
+2486;PARENTHESIZED NUMBER NINETEEN;No;0;EN;<compat> 0028 0031 0039 0029;;;19;N;;;;;
+2487;PARENTHESIZED NUMBER TWENTY;No;0;EN;<compat> 0028 0032 0030 0029;;;20;N;;;;;
+2488;DIGIT ONE FULL STOP;No;0;EN;<compat> 0031 002E;;1;1;N;DIGIT ONE PERIOD;;;;
+2489;DIGIT TWO FULL STOP;No;0;EN;<compat> 0032 002E;;2;2;N;DIGIT TWO PERIOD;;;;
+248A;DIGIT THREE FULL STOP;No;0;EN;<compat> 0033 002E;;3;3;N;DIGIT THREE PERIOD;;;;
+248B;DIGIT FOUR FULL STOP;No;0;EN;<compat> 0034 002E;;4;4;N;DIGIT FOUR PERIOD;;;;
+248C;DIGIT FIVE FULL STOP;No;0;EN;<compat> 0035 002E;;5;5;N;DIGIT FIVE PERIOD;;;;
+248D;DIGIT SIX FULL STOP;No;0;EN;<compat> 0036 002E;;6;6;N;DIGIT SIX PERIOD;;;;
+248E;DIGIT SEVEN FULL STOP;No;0;EN;<compat> 0037 002E;;7;7;N;DIGIT SEVEN PERIOD;;;;
+248F;DIGIT EIGHT FULL STOP;No;0;EN;<compat> 0038 002E;;8;8;N;DIGIT EIGHT PERIOD;;;;
+2490;DIGIT NINE FULL STOP;No;0;EN;<compat> 0039 002E;;9;9;N;DIGIT NINE PERIOD;;;;
+2491;NUMBER TEN FULL STOP;No;0;EN;<compat> 0031 0030 002E;;;10;N;NUMBER TEN PERIOD;;;;
+2492;NUMBER ELEVEN FULL STOP;No;0;EN;<compat> 0031 0031 002E;;;11;N;NUMBER ELEVEN PERIOD;;;;
+2493;NUMBER TWELVE FULL STOP;No;0;EN;<compat> 0031 0032 002E;;;12;N;NUMBER TWELVE PERIOD;;;;
+2494;NUMBER THIRTEEN FULL STOP;No;0;EN;<compat> 0031 0033 002E;;;13;N;NUMBER THIRTEEN PERIOD;;;;
+2495;NUMBER FOURTEEN FULL STOP;No;0;EN;<compat> 0031 0034 002E;;;14;N;NUMBER FOURTEEN PERIOD;;;;
+2496;NUMBER FIFTEEN FULL STOP;No;0;EN;<compat> 0031 0035 002E;;;15;N;NUMBER FIFTEEN PERIOD;;;;
+2497;NUMBER SIXTEEN FULL STOP;No;0;EN;<compat> 0031 0036 002E;;;16;N;NUMBER SIXTEEN PERIOD;;;;
+2498;NUMBER SEVENTEEN FULL STOP;No;0;EN;<compat> 0031 0037 002E;;;17;N;NUMBER SEVENTEEN PERIOD;;;;
+2499;NUMBER EIGHTEEN FULL STOP;No;0;EN;<compat> 0031 0038 002E;;;18;N;NUMBER EIGHTEEN PERIOD;;;;
+249A;NUMBER NINETEEN FULL STOP;No;0;EN;<compat> 0031 0039 002E;;;19;N;NUMBER NINETEEN PERIOD;;;;
+249B;NUMBER TWENTY FULL STOP;No;0;EN;<compat> 0032 0030 002E;;;20;N;NUMBER TWENTY PERIOD;;;;
+249C;PARENTHESIZED LATIN SMALL LETTER A;So;0;L;<compat> 0028 0061 0029;;;;N;;;;;
+249D;PARENTHESIZED LATIN SMALL LETTER B;So;0;L;<compat> 0028 0062 0029;;;;N;;;;;
+249E;PARENTHESIZED LATIN SMALL LETTER C;So;0;L;<compat> 0028 0063 0029;;;;N;;;;;
+249F;PARENTHESIZED LATIN SMALL LETTER D;So;0;L;<compat> 0028 0064 0029;;;;N;;;;;
+24A0;PARENTHESIZED LATIN SMALL LETTER E;So;0;L;<compat> 0028 0065 0029;;;;N;;;;;
+24A1;PARENTHESIZED LATIN SMALL LETTER F;So;0;L;<compat> 0028 0066 0029;;;;N;;;;;
+24A2;PARENTHESIZED LATIN SMALL LETTER G;So;0;L;<compat> 0028 0067 0029;;;;N;;;;;
+24A3;PARENTHESIZED LATIN SMALL LETTER H;So;0;L;<compat> 0028 0068 0029;;;;N;;;;;
+24A4;PARENTHESIZED LATIN SMALL LETTER I;So;0;L;<compat> 0028 0069 0029;;;;N;;;;;
+24A5;PARENTHESIZED LATIN SMALL LETTER J;So;0;L;<compat> 0028 006A 0029;;;;N;;;;;
+24A6;PARENTHESIZED LATIN SMALL LETTER K;So;0;L;<compat> 0028 006B 0029;;;;N;;;;;
+24A7;PARENTHESIZED LATIN SMALL LETTER L;So;0;L;<compat> 0028 006C 0029;;;;N;;;;;
+24A8;PARENTHESIZED LATIN SMALL LETTER M;So;0;L;<compat> 0028 006D 0029;;;;N;;;;;
+24A9;PARENTHESIZED LATIN SMALL LETTER N;So;0;L;<compat> 0028 006E 0029;;;;N;;;;;
+24AA;PARENTHESIZED LATIN SMALL LETTER O;So;0;L;<compat> 0028 006F 0029;;;;N;;;;;
+24AB;PARENTHESIZED LATIN SMALL LETTER P;So;0;L;<compat> 0028 0070 0029;;;;N;;;;;
+24AC;PARENTHESIZED LATIN SMALL LETTER Q;So;0;L;<compat> 0028 0071 0029;;;;N;;;;;
+24AD;PARENTHESIZED LATIN SMALL LETTER R;So;0;L;<compat> 0028 0072 0029;;;;N;;;;;
+24AE;PARENTHESIZED LATIN SMALL LETTER S;So;0;L;<compat> 0028 0073 0029;;;;N;;;;;
+24AF;PARENTHESIZED LATIN SMALL LETTER T;So;0;L;<compat> 0028 0074 0029;;;;N;;;;;
+24B0;PARENTHESIZED LATIN SMALL LETTER U;So;0;L;<compat> 0028 0075 0029;;;;N;;;;;
+24B1;PARENTHESIZED LATIN SMALL LETTER V;So;0;L;<compat> 0028 0076 0029;;;;N;;;;;
+24B2;PARENTHESIZED LATIN SMALL LETTER W;So;0;L;<compat> 0028 0077 0029;;;;N;;;;;
+24B3;PARENTHESIZED LATIN SMALL LETTER X;So;0;L;<compat> 0028 0078 0029;;;;N;;;;;
+24B4;PARENTHESIZED LATIN SMALL LETTER Y;So;0;L;<compat> 0028 0079 0029;;;;N;;;;;
+24B5;PARENTHESIZED LATIN SMALL LETTER Z;So;0;L;<compat> 0028 007A 0029;;;;N;;;;;
+24B6;CIRCLED LATIN CAPITAL LETTER A;So;0;L;<circle> 0041;;;;N;;;;24D0;
+24B7;CIRCLED LATIN CAPITAL LETTER B;So;0;L;<circle> 0042;;;;N;;;;24D1;
+24B8;CIRCLED LATIN CAPITAL LETTER C;So;0;L;<circle> 0043;;;;N;;;;24D2;
+24B9;CIRCLED LATIN CAPITAL LETTER D;So;0;L;<circle> 0044;;;;N;;;;24D3;
+24BA;CIRCLED LATIN CAPITAL LETTER E;So;0;L;<circle> 0045;;;;N;;;;24D4;
+24BB;CIRCLED LATIN CAPITAL LETTER F;So;0;L;<circle> 0046;;;;N;;;;24D5;
+24BC;CIRCLED LATIN CAPITAL LETTER G;So;0;L;<circle> 0047;;;;N;;;;24D6;
+24BD;CIRCLED LATIN CAPITAL LETTER H;So;0;L;<circle> 0048;;;;N;;;;24D7;
+24BE;CIRCLED LATIN CAPITAL LETTER I;So;0;L;<circle> 0049;;;;N;;;;24D8;
+24BF;CIRCLED LATIN CAPITAL LETTER J;So;0;L;<circle> 004A;;;;N;;;;24D9;
+24C0;CIRCLED LATIN CAPITAL LETTER K;So;0;L;<circle> 004B;;;;N;;;;24DA;
+24C1;CIRCLED LATIN CAPITAL LETTER L;So;0;L;<circle> 004C;;;;N;;;;24DB;
+24C2;CIRCLED LATIN CAPITAL LETTER M;So;0;L;<circle> 004D;;;;N;;;;24DC;
+24C3;CIRCLED LATIN CAPITAL LETTER N;So;0;L;<circle> 004E;;;;N;;;;24DD;
+24C4;CIRCLED LATIN CAPITAL LETTER O;So;0;L;<circle> 004F;;;;N;;;;24DE;
+24C5;CIRCLED LATIN CAPITAL LETTER P;So;0;L;<circle> 0050;;;;N;;;;24DF;
+24C6;CIRCLED LATIN CAPITAL LETTER Q;So;0;L;<circle> 0051;;;;N;;;;24E0;
+24C7;CIRCLED LATIN CAPITAL LETTER R;So;0;L;<circle> 0052;;;;N;;;;24E1;
+24C8;CIRCLED LATIN CAPITAL LETTER S;So;0;L;<circle> 0053;;;;N;;;;24E2;
+24C9;CIRCLED LATIN CAPITAL LETTER T;So;0;L;<circle> 0054;;;;N;;;;24E3;
+24CA;CIRCLED LATIN CAPITAL LETTER U;So;0;L;<circle> 0055;;;;N;;;;24E4;
+24CB;CIRCLED LATIN CAPITAL LETTER V;So;0;L;<circle> 0056;;;;N;;;;24E5;
+24CC;CIRCLED LATIN CAPITAL LETTER W;So;0;L;<circle> 0057;;;;N;;;;24E6;
+24CD;CIRCLED LATIN CAPITAL LETTER X;So;0;L;<circle> 0058;;;;N;;;;24E7;
+24CE;CIRCLED LATIN CAPITAL LETTER Y;So;0;L;<circle> 0059;;;;N;;;;24E8;
+24CF;CIRCLED LATIN CAPITAL LETTER Z;So;0;L;<circle> 005A;;;;N;;;;24E9;
+24D0;CIRCLED LATIN SMALL LETTER A;So;0;L;<circle> 0061;;;;N;;;24B6;;24B6
+24D1;CIRCLED LATIN SMALL LETTER B;So;0;L;<circle> 0062;;;;N;;;24B7;;24B7
+24D2;CIRCLED LATIN SMALL LETTER C;So;0;L;<circle> 0063;;;;N;;;24B8;;24B8
+24D3;CIRCLED LATIN SMALL LETTER D;So;0;L;<circle> 0064;;;;N;;;24B9;;24B9
+24D4;CIRCLED LATIN SMALL LETTER E;So;0;L;<circle> 0065;;;;N;;;24BA;;24BA
+24D5;CIRCLED LATIN SMALL LETTER F;So;0;L;<circle> 0066;;;;N;;;24BB;;24BB
+24D6;CIRCLED LATIN SMALL LETTER G;So;0;L;<circle> 0067;;;;N;;;24BC;;24BC
+24D7;CIRCLED LATIN SMALL LETTER H;So;0;L;<circle> 0068;;;;N;;;24BD;;24BD
+24D8;CIRCLED LATIN SMALL LETTER I;So;0;L;<circle> 0069;;;;N;;;24BE;;24BE
+24D9;CIRCLED LATIN SMALL LETTER J;So;0;L;<circle> 006A;;;;N;;;24BF;;24BF
+24DA;CIRCLED LATIN SMALL LETTER K;So;0;L;<circle> 006B;;;;N;;;24C0;;24C0
+24DB;CIRCLED LATIN SMALL LETTER L;So;0;L;<circle> 006C;;;;N;;;24C1;;24C1
+24DC;CIRCLED LATIN SMALL LETTER M;So;0;L;<circle> 006D;;;;N;;;24C2;;24C2
+24DD;CIRCLED LATIN SMALL LETTER N;So;0;L;<circle> 006E;;;;N;;;24C3;;24C3
+24DE;CIRCLED LATIN SMALL LETTER O;So;0;L;<circle> 006F;;;;N;;;24C4;;24C4
+24DF;CIRCLED LATIN SMALL LETTER P;So;0;L;<circle> 0070;;;;N;;;24C5;;24C5
+24E0;CIRCLED LATIN SMALL LETTER Q;So;0;L;<circle> 0071;;;;N;;;24C6;;24C6
+24E1;CIRCLED LATIN SMALL LETTER R;So;0;L;<circle> 0072;;;;N;;;24C7;;24C7
+24E2;CIRCLED LATIN SMALL LETTER S;So;0;L;<circle> 0073;;;;N;;;24C8;;24C8
+24E3;CIRCLED LATIN SMALL LETTER T;So;0;L;<circle> 0074;;;;N;;;24C9;;24C9
+24E4;CIRCLED LATIN SMALL LETTER U;So;0;L;<circle> 0075;;;;N;;;24CA;;24CA
+24E5;CIRCLED LATIN SMALL LETTER V;So;0;L;<circle> 0076;;;;N;;;24CB;;24CB
+24E6;CIRCLED LATIN SMALL LETTER W;So;0;L;<circle> 0077;;;;N;;;24CC;;24CC
+24E7;CIRCLED LATIN SMALL LETTER X;So;0;L;<circle> 0078;;;;N;;;24CD;;24CD
+24E8;CIRCLED LATIN SMALL LETTER Y;So;0;L;<circle> 0079;;;;N;;;24CE;;24CE
+24E9;CIRCLED LATIN SMALL LETTER Z;So;0;L;<circle> 007A;;;;N;;;24CF;;24CF
+24EA;CIRCLED DIGIT ZERO;No;0;EN;<circle> 0030;;0;0;N;;;;;
+2500;BOX DRAWINGS LIGHT HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT HORIZONTAL;;;;
+2501;BOX DRAWINGS HEAVY HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY HORIZONTAL;;;;
+2502;BOX DRAWINGS LIGHT VERTICAL;So;0;ON;;;;;N;FORMS LIGHT VERTICAL;;;;
+2503;BOX DRAWINGS HEAVY VERTICAL;So;0;ON;;;;;N;FORMS HEAVY VERTICAL;;;;
+2504;BOX DRAWINGS LIGHT TRIPLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT TRIPLE DASH HORIZONTAL;;;;
+2505;BOX DRAWINGS HEAVY TRIPLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY TRIPLE DASH HORIZONTAL;;;;
+2506;BOX DRAWINGS LIGHT TRIPLE DASH VERTICAL;So;0;ON;;;;;N;FORMS LIGHT TRIPLE DASH VERTICAL;;;;
+2507;BOX DRAWINGS HEAVY TRIPLE DASH VERTICAL;So;0;ON;;;;;N;FORMS HEAVY TRIPLE DASH VERTICAL;;;;
+2508;BOX DRAWINGS LIGHT QUADRUPLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT QUADRUPLE DASH HORIZONTAL;;;;
+2509;BOX DRAWINGS HEAVY QUADRUPLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY QUADRUPLE DASH HORIZONTAL;;;;
+250A;BOX DRAWINGS LIGHT QUADRUPLE DASH VERTICAL;So;0;ON;;;;;N;FORMS LIGHT QUADRUPLE DASH VERTICAL;;;;
+250B;BOX DRAWINGS HEAVY QUADRUPLE DASH VERTICAL;So;0;ON;;;;;N;FORMS HEAVY QUADRUPLE DASH VERTICAL;;;;
+250C;BOX DRAWINGS LIGHT DOWN AND RIGHT;So;0;ON;;;;;N;FORMS LIGHT DOWN AND RIGHT;;;;
+250D;BOX DRAWINGS DOWN LIGHT AND RIGHT HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND RIGHT HEAVY;;;;
+250E;BOX DRAWINGS DOWN HEAVY AND RIGHT LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND RIGHT LIGHT;;;;
+250F;BOX DRAWINGS HEAVY DOWN AND RIGHT;So;0;ON;;;;;N;FORMS HEAVY DOWN AND RIGHT;;;;
+2510;BOX DRAWINGS LIGHT DOWN AND LEFT;So;0;ON;;;;;N;FORMS LIGHT DOWN AND LEFT;;;;
+2511;BOX DRAWINGS DOWN LIGHT AND LEFT HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND LEFT HEAVY;;;;
+2512;BOX DRAWINGS DOWN HEAVY AND LEFT LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND LEFT LIGHT;;;;
+2513;BOX DRAWINGS HEAVY DOWN AND LEFT;So;0;ON;;;;;N;FORMS HEAVY DOWN AND LEFT;;;;
+2514;BOX DRAWINGS LIGHT UP AND RIGHT;So;0;ON;;;;;N;FORMS LIGHT UP AND RIGHT;;;;
+2515;BOX DRAWINGS UP LIGHT AND RIGHT HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND RIGHT HEAVY;;;;
+2516;BOX DRAWINGS UP HEAVY AND RIGHT LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND RIGHT LIGHT;;;;
+2517;BOX DRAWINGS HEAVY UP AND RIGHT;So;0;ON;;;;;N;FORMS HEAVY UP AND RIGHT;;;;
+2518;BOX DRAWINGS LIGHT UP AND LEFT;So;0;ON;;;;;N;FORMS LIGHT UP AND LEFT;;;;
+2519;BOX DRAWINGS UP LIGHT AND LEFT HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND LEFT HEAVY;;;;
+251A;BOX DRAWINGS UP HEAVY AND LEFT LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND LEFT LIGHT;;;;
+251B;BOX DRAWINGS HEAVY UP AND LEFT;So;0;ON;;;;;N;FORMS HEAVY UP AND LEFT;;;;
+251C;BOX DRAWINGS LIGHT VERTICAL AND RIGHT;So;0;ON;;;;;N;FORMS LIGHT VERTICAL AND RIGHT;;;;
+251D;BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY;So;0;ON;;;;;N;FORMS VERTICAL LIGHT AND RIGHT HEAVY;;;;
+251E;BOX DRAWINGS UP HEAVY AND RIGHT DOWN LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND RIGHT DOWN LIGHT;;;;
+251F;BOX DRAWINGS DOWN HEAVY AND RIGHT UP LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND RIGHT UP LIGHT;;;;
+2520;BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT;So;0;ON;;;;;N;FORMS VERTICAL HEAVY AND RIGHT LIGHT;;;;
+2521;BOX DRAWINGS DOWN LIGHT AND RIGHT UP HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND RIGHT UP HEAVY;;;;
+2522;BOX DRAWINGS UP LIGHT AND RIGHT DOWN HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND RIGHT DOWN HEAVY;;;;
+2523;BOX DRAWINGS HEAVY VERTICAL AND RIGHT;So;0;ON;;;;;N;FORMS HEAVY VERTICAL AND RIGHT;;;;
+2524;BOX DRAWINGS LIGHT VERTICAL AND LEFT;So;0;ON;;;;;N;FORMS LIGHT VERTICAL AND LEFT;;;;
+2525;BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY;So;0;ON;;;;;N;FORMS VERTICAL LIGHT AND LEFT HEAVY;;;;
+2526;BOX DRAWINGS UP HEAVY AND LEFT DOWN LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND LEFT DOWN LIGHT;;;;
+2527;BOX DRAWINGS DOWN HEAVY AND LEFT UP LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND LEFT UP LIGHT;;;;
+2528;BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT;So;0;ON;;;;;N;FORMS VERTICAL HEAVY AND LEFT LIGHT;;;;
+2529;BOX DRAWINGS DOWN LIGHT AND LEFT UP HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND LEFT UP HEAVY;;;;
+252A;BOX DRAWINGS UP LIGHT AND LEFT DOWN HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND LEFT DOWN HEAVY;;;;
+252B;BOX DRAWINGS HEAVY VERTICAL AND LEFT;So;0;ON;;;;;N;FORMS HEAVY VERTICAL AND LEFT;;;;
+252C;BOX DRAWINGS LIGHT DOWN AND HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT DOWN AND HORIZONTAL;;;;
+252D;BOX DRAWINGS LEFT HEAVY AND RIGHT DOWN LIGHT;So;0;ON;;;;;N;FORMS LEFT HEAVY AND RIGHT DOWN LIGHT;;;;
+252E;BOX DRAWINGS RIGHT HEAVY AND LEFT DOWN LIGHT;So;0;ON;;;;;N;FORMS RIGHT HEAVY AND LEFT DOWN LIGHT;;;;
+252F;BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND HORIZONTAL HEAVY;;;;
+2530;BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND HORIZONTAL LIGHT;;;;
+2531;BOX DRAWINGS RIGHT LIGHT AND LEFT DOWN HEAVY;So;0;ON;;;;;N;FORMS RIGHT LIGHT AND LEFT DOWN HEAVY;;;;
+2532;BOX DRAWINGS LEFT LIGHT AND RIGHT DOWN HEAVY;So;0;ON;;;;;N;FORMS LEFT LIGHT AND RIGHT DOWN HEAVY;;;;
+2533;BOX DRAWINGS HEAVY DOWN AND HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY DOWN AND HORIZONTAL;;;;
+2534;BOX DRAWINGS LIGHT UP AND HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT UP AND HORIZONTAL;;;;
+2535;BOX DRAWINGS LEFT HEAVY AND RIGHT UP LIGHT;So;0;ON;;;;;N;FORMS LEFT HEAVY AND RIGHT UP LIGHT;;;;
+2536;BOX DRAWINGS RIGHT HEAVY AND LEFT UP LIGHT;So;0;ON;;;;;N;FORMS RIGHT HEAVY AND LEFT UP LIGHT;;;;
+2537;BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND HORIZONTAL HEAVY;;;;
+2538;BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND HORIZONTAL LIGHT;;;;
+2539;BOX DRAWINGS RIGHT LIGHT AND LEFT UP HEAVY;So;0;ON;;;;;N;FORMS RIGHT LIGHT AND LEFT UP HEAVY;;;;
+253A;BOX DRAWINGS LEFT LIGHT AND RIGHT UP HEAVY;So;0;ON;;;;;N;FORMS LEFT LIGHT AND RIGHT UP HEAVY;;;;
+253B;BOX DRAWINGS HEAVY UP AND HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY UP AND HORIZONTAL;;;;
+253C;BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT VERTICAL AND HORIZONTAL;;;;
+253D;BOX DRAWINGS LEFT HEAVY AND RIGHT VERTICAL LIGHT;So;0;ON;;;;;N;FORMS LEFT HEAVY AND RIGHT VERTICAL LIGHT;;;;
+253E;BOX DRAWINGS RIGHT HEAVY AND LEFT VERTICAL LIGHT;So;0;ON;;;;;N;FORMS RIGHT HEAVY AND LEFT VERTICAL LIGHT;;;;
+253F;BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY;So;0;ON;;;;;N;FORMS VERTICAL LIGHT AND HORIZONTAL HEAVY;;;;
+2540;BOX DRAWINGS UP HEAVY AND DOWN HORIZONTAL LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND DOWN HORIZONTAL LIGHT;;;;
+2541;BOX DRAWINGS DOWN HEAVY AND UP HORIZONTAL LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND UP HORIZONTAL LIGHT;;;;
+2542;BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT;So;0;ON;;;;;N;FORMS VERTICAL HEAVY AND HORIZONTAL LIGHT;;;;
+2543;BOX DRAWINGS LEFT UP HEAVY AND RIGHT DOWN LIGHT;So;0;ON;;;;;N;FORMS LEFT UP HEAVY AND RIGHT DOWN LIGHT;;;;
+2544;BOX DRAWINGS RIGHT UP HEAVY AND LEFT DOWN LIGHT;So;0;ON;;;;;N;FORMS RIGHT UP HEAVY AND LEFT DOWN LIGHT;;;;
+2545;BOX DRAWINGS LEFT DOWN HEAVY AND RIGHT UP LIGHT;So;0;ON;;;;;N;FORMS LEFT DOWN HEAVY AND RIGHT UP LIGHT;;;;
+2546;BOX DRAWINGS RIGHT DOWN HEAVY AND LEFT UP LIGHT;So;0;ON;;;;;N;FORMS RIGHT DOWN HEAVY AND LEFT UP LIGHT;;;;
+2547;BOX DRAWINGS DOWN LIGHT AND UP HORIZONTAL HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND UP HORIZONTAL HEAVY;;;;
+2548;BOX DRAWINGS UP LIGHT AND DOWN HORIZONTAL HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND DOWN HORIZONTAL HEAVY;;;;
+2549;BOX DRAWINGS RIGHT LIGHT AND LEFT VERTICAL HEAVY;So;0;ON;;;;;N;FORMS RIGHT LIGHT AND LEFT VERTICAL HEAVY;;;;
+254A;BOX DRAWINGS LEFT LIGHT AND RIGHT VERTICAL HEAVY;So;0;ON;;;;;N;FORMS LEFT LIGHT AND RIGHT VERTICAL HEAVY;;;;
+254B;BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY VERTICAL AND HORIZONTAL;;;;
+254C;BOX DRAWINGS LIGHT DOUBLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT DOUBLE DASH HORIZONTAL;;;;
+254D;BOX DRAWINGS HEAVY DOUBLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY DOUBLE DASH HORIZONTAL;;;;
+254E;BOX DRAWINGS LIGHT DOUBLE DASH VERTICAL;So;0;ON;;;;;N;FORMS LIGHT DOUBLE DASH VERTICAL;;;;
+254F;BOX DRAWINGS HEAVY DOUBLE DASH VERTICAL;So;0;ON;;;;;N;FORMS HEAVY DOUBLE DASH VERTICAL;;;;
+2550;BOX DRAWINGS DOUBLE HORIZONTAL;So;0;ON;;;;;N;FORMS DOUBLE HORIZONTAL;;;;
+2551;BOX DRAWINGS DOUBLE VERTICAL;So;0;ON;;;;;N;FORMS DOUBLE VERTICAL;;;;
+2552;BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE;So;0;ON;;;;;N;FORMS DOWN SINGLE AND RIGHT DOUBLE;;;;
+2553;BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE;So;0;ON;;;;;N;FORMS DOWN DOUBLE AND RIGHT SINGLE;;;;
+2554;BOX DRAWINGS DOUBLE DOWN AND RIGHT;So;0;ON;;;;;N;FORMS DOUBLE DOWN AND RIGHT;;;;
+2555;BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE;So;0;ON;;;;;N;FORMS DOWN SINGLE AND LEFT DOUBLE;;;;
+2556;BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE;So;0;ON;;;;;N;FORMS DOWN DOUBLE AND LEFT SINGLE;;;;
+2557;BOX DRAWINGS DOUBLE DOWN AND LEFT;So;0;ON;;;;;N;FORMS DOUBLE DOWN AND LEFT;;;;
+2558;BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE;So;0;ON;;;;;N;FORMS UP SINGLE AND RIGHT DOUBLE;;;;
+2559;BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE;So;0;ON;;;;;N;FORMS UP DOUBLE AND RIGHT SINGLE;;;;
+255A;BOX DRAWINGS DOUBLE UP AND RIGHT;So;0;ON;;;;;N;FORMS DOUBLE UP AND RIGHT;;;;
+255B;BOX DRAWINGS UP SINGLE AND LEFT DOUBLE;So;0;ON;;;;;N;FORMS UP SINGLE AND LEFT DOUBLE;;;;
+255C;BOX DRAWINGS UP DOUBLE AND LEFT SINGLE;So;0;ON;;;;;N;FORMS UP DOUBLE AND LEFT SINGLE;;;;
+255D;BOX DRAWINGS DOUBLE UP AND LEFT;So;0;ON;;;;;N;FORMS DOUBLE UP AND LEFT;;;;
+255E;BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE;So;0;ON;;;;;N;FORMS VERTICAL SINGLE AND RIGHT DOUBLE;;;;
+255F;BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE;So;0;ON;;;;;N;FORMS VERTICAL DOUBLE AND RIGHT SINGLE;;;;
+2560;BOX DRAWINGS DOUBLE VERTICAL AND RIGHT;So;0;ON;;;;;N;FORMS DOUBLE VERTICAL AND RIGHT;;;;
+2561;BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE;So;0;ON;;;;;N;FORMS VERTICAL SINGLE AND LEFT DOUBLE;;;;
+2562;BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE;So;0;ON;;;;;N;FORMS VERTICAL DOUBLE AND LEFT SINGLE;;;;
+2563;BOX DRAWINGS DOUBLE VERTICAL AND LEFT;So;0;ON;;;;;N;FORMS DOUBLE VERTICAL AND LEFT;;;;
+2564;BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE;So;0;ON;;;;;N;FORMS DOWN SINGLE AND HORIZONTAL DOUBLE;;;;
+2565;BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE;So;0;ON;;;;;N;FORMS DOWN DOUBLE AND HORIZONTAL SINGLE;;;;
+2566;BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL;So;0;ON;;;;;N;FORMS DOUBLE DOWN AND HORIZONTAL;;;;
+2567;BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE;So;0;ON;;;;;N;FORMS UP SINGLE AND HORIZONTAL DOUBLE;;;;
+2568;BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE;So;0;ON;;;;;N;FORMS UP DOUBLE AND HORIZONTAL SINGLE;;;;
+2569;BOX DRAWINGS DOUBLE UP AND HORIZONTAL;So;0;ON;;;;;N;FORMS DOUBLE UP AND HORIZONTAL;;;;
+256A;BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE;So;0;ON;;;;;N;FORMS VERTICAL SINGLE AND HORIZONTAL DOUBLE;;;;
+256B;BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE;So;0;ON;;;;;N;FORMS VERTICAL DOUBLE AND HORIZONTAL SINGLE;;;;
+256C;BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL;So;0;ON;;;;;N;FORMS DOUBLE VERTICAL AND HORIZONTAL;;;;
+256D;BOX DRAWINGS LIGHT ARC DOWN AND RIGHT;So;0;ON;;;;;N;FORMS LIGHT ARC DOWN AND RIGHT;;;;
+256E;BOX DRAWINGS LIGHT ARC DOWN AND LEFT;So;0;ON;;;;;N;FORMS LIGHT ARC DOWN AND LEFT;;;;
+256F;BOX DRAWINGS LIGHT ARC UP AND LEFT;So;0;ON;;;;;N;FORMS LIGHT ARC UP AND LEFT;;;;
+2570;BOX DRAWINGS LIGHT ARC UP AND RIGHT;So;0;ON;;;;;N;FORMS LIGHT ARC UP AND RIGHT;;;;
+2571;BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT;So;0;ON;;;;;N;FORMS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT;;;;
+2572;BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT;So;0;ON;;;;;N;FORMS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT;;;;
+2573;BOX DRAWINGS LIGHT DIAGONAL CROSS;So;0;ON;;;;;N;FORMS LIGHT DIAGONAL CROSS;;;;
+2574;BOX DRAWINGS LIGHT LEFT;So;0;ON;;;;;N;FORMS LIGHT LEFT;;;;
+2575;BOX DRAWINGS LIGHT UP;So;0;ON;;;;;N;FORMS LIGHT UP;;;;
+2576;BOX DRAWINGS LIGHT RIGHT;So;0;ON;;;;;N;FORMS LIGHT RIGHT;;;;
+2577;BOX DRAWINGS LIGHT DOWN;So;0;ON;;;;;N;FORMS LIGHT DOWN;;;;
+2578;BOX DRAWINGS HEAVY LEFT;So;0;ON;;;;;N;FORMS HEAVY LEFT;;;;
+2579;BOX DRAWINGS HEAVY UP;So;0;ON;;;;;N;FORMS HEAVY UP;;;;
+257A;BOX DRAWINGS HEAVY RIGHT;So;0;ON;;;;;N;FORMS HEAVY RIGHT;;;;
+257B;BOX DRAWINGS HEAVY DOWN;So;0;ON;;;;;N;FORMS HEAVY DOWN;;;;
+257C;BOX DRAWINGS LIGHT LEFT AND HEAVY RIGHT;So;0;ON;;;;;N;FORMS LIGHT LEFT AND HEAVY RIGHT;;;;
+257D;BOX DRAWINGS LIGHT UP AND HEAVY DOWN;So;0;ON;;;;;N;FORMS LIGHT UP AND HEAVY DOWN;;;;
+257E;BOX DRAWINGS HEAVY LEFT AND LIGHT RIGHT;So;0;ON;;;;;N;FORMS HEAVY LEFT AND LIGHT RIGHT;;;;
+257F;BOX DRAWINGS HEAVY UP AND LIGHT DOWN;So;0;ON;;;;;N;FORMS HEAVY UP AND LIGHT DOWN;;;;
+2580;UPPER HALF BLOCK;So;0;ON;;;;;N;;;;;
+2581;LOWER ONE EIGHTH BLOCK;So;0;ON;;;;;N;;;;;
+2582;LOWER ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;;
+2583;LOWER THREE EIGHTHS BLOCK;So;0;ON;;;;;N;;;;;
+2584;LOWER HALF BLOCK;So;0;ON;;;;;N;;;;;
+2585;LOWER FIVE EIGHTHS BLOCK;So;0;ON;;;;;N;;;;;
+2586;LOWER THREE QUARTERS BLOCK;So;0;ON;;;;;N;LOWER THREE QUARTER BLOCK;;;;
+2587;LOWER SEVEN EIGHTHS BLOCK;So;0;ON;;;;;N;;;;;
+2588;FULL BLOCK;So;0;ON;;;;;N;;;;;
+2589;LEFT SEVEN EIGHTHS BLOCK;So;0;ON;;;;;N;;;;;
+258A;LEFT THREE QUARTERS BLOCK;So;0;ON;;;;;N;LEFT THREE QUARTER BLOCK;;;;
+258B;LEFT FIVE EIGHTHS BLOCK;So;0;ON;;;;;N;;;;;
+258C;LEFT HALF BLOCK;So;0;ON;;;;;N;;;;;
+258D;LEFT THREE EIGHTHS BLOCK;So;0;ON;;;;;N;;;;;
+258E;LEFT ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;;
+258F;LEFT ONE EIGHTH BLOCK;So;0;ON;;;;;N;;;;;
+2590;RIGHT HALF BLOCK;So;0;ON;;;;;N;;;;;
+2591;LIGHT SHADE;So;0;ON;;;;;N;;;;;
+2592;MEDIUM SHADE;So;0;ON;;;;;N;;;;;
+2593;DARK SHADE;So;0;ON;;;;;N;;;;;
+2594;UPPER ONE EIGHTH BLOCK;So;0;ON;;;;;N;;;;;
+2595;RIGHT ONE EIGHTH BLOCK;So;0;ON;;;;;N;;;;;
+25A0;BLACK SQUARE;So;0;ON;;;;;N;;;;;
+25A1;WHITE SQUARE;So;0;ON;;;;;N;;;;;
+25A2;WHITE SQUARE WITH ROUNDED CORNERS;So;0;ON;;;;;N;;;;;
+25A3;WHITE SQUARE CONTAINING BLACK SMALL SQUARE;So;0;ON;;;;;N;;;;;
+25A4;SQUARE WITH HORIZONTAL FILL;So;0;ON;;;;;N;;;;;
+25A5;SQUARE WITH VERTICAL FILL;So;0;ON;;;;;N;;;;;
+25A6;SQUARE WITH ORTHOGONAL CROSSHATCH FILL;So;0;ON;;;;;N;;;;;
+25A7;SQUARE WITH UPPER LEFT TO LOWER RIGHT FILL;So;0;ON;;;;;N;;;;;
+25A8;SQUARE WITH UPPER RIGHT TO LOWER LEFT FILL;So;0;ON;;;;;N;;;;;
+25A9;SQUARE WITH DIAGONAL CROSSHATCH FILL;So;0;ON;;;;;N;;;;;
+25AA;BLACK SMALL SQUARE;So;0;ON;;;;;N;;;;;
+25AB;WHITE SMALL SQUARE;So;0;ON;;;;;N;;;;;
+25AC;BLACK RECTANGLE;So;0;ON;;;;;N;;;;;
+25AD;WHITE RECTANGLE;So;0;ON;;;;;N;;;;;
+25AE;BLACK VERTICAL RECTANGLE;So;0;ON;;;;;N;;;;;
+25AF;WHITE VERTICAL RECTANGLE;So;0;ON;;;;;N;;;;;
+25B0;BLACK PARALLELOGRAM;So;0;ON;;;;;N;;;;;
+25B1;WHITE PARALLELOGRAM;So;0;ON;;;;;N;;;;;
+25B2;BLACK UP-POINTING TRIANGLE;So;0;ON;;;;;N;BLACK UP POINTING TRIANGLE;;;;
+25B3;WHITE UP-POINTING TRIANGLE;So;0;ON;;;;;N;WHITE UP POINTING TRIANGLE;;;;
+25B4;BLACK UP-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;BLACK UP POINTING SMALL TRIANGLE;;;;
+25B5;WHITE UP-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;WHITE UP POINTING SMALL TRIANGLE;;;;
+25B6;BLACK RIGHT-POINTING TRIANGLE;So;0;ON;;;;;N;BLACK RIGHT POINTING TRIANGLE;;;;
+25B7;WHITE RIGHT-POINTING TRIANGLE;Sm;0;ON;;;;;N;WHITE RIGHT POINTING TRIANGLE;;;;
+25B8;BLACK RIGHT-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;BLACK RIGHT POINTING SMALL TRIANGLE;;;;
+25B9;WHITE RIGHT-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;WHITE RIGHT POINTING SMALL TRIANGLE;;;;
+25BA;BLACK RIGHT-POINTING POINTER;So;0;ON;;;;;N;BLACK RIGHT POINTING POINTER;;;;
+25BB;WHITE RIGHT-POINTING POINTER;So;0;ON;;;;;N;WHITE RIGHT POINTING POINTER;;;;
+25BC;BLACK DOWN-POINTING TRIANGLE;So;0;ON;;;;;N;BLACK DOWN POINTING TRIANGLE;;;;
+25BD;WHITE DOWN-POINTING TRIANGLE;So;0;ON;;;;;N;WHITE DOWN POINTING TRIANGLE;;;;
+25BE;BLACK DOWN-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;BLACK DOWN POINTING SMALL TRIANGLE;;;;
+25BF;WHITE DOWN-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;WHITE DOWN POINTING SMALL TRIANGLE;;;;
+25C0;BLACK LEFT-POINTING TRIANGLE;So;0;ON;;;;;N;BLACK LEFT POINTING TRIANGLE;;;;
+25C1;WHITE LEFT-POINTING TRIANGLE;Sm;0;ON;;;;;N;WHITE LEFT POINTING TRIANGLE;;;;
+25C2;BLACK LEFT-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;BLACK LEFT POINTING SMALL TRIANGLE;;;;
+25C3;WHITE LEFT-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;WHITE LEFT POINTING SMALL TRIANGLE;;;;
+25C4;BLACK LEFT-POINTING POINTER;So;0;ON;;;;;N;BLACK LEFT POINTING POINTER;;;;
+25C5;WHITE LEFT-POINTING POINTER;So;0;ON;;;;;N;WHITE LEFT POINTING POINTER;;;;
+25C6;BLACK DIAMOND;So;0;ON;;;;;N;;;;;
+25C7;WHITE DIAMOND;So;0;ON;;;;;N;;;;;
+25C8;WHITE DIAMOND CONTAINING BLACK SMALL DIAMOND;So;0;ON;;;;;N;;;;;
+25C9;FISHEYE;So;0;ON;;;;;N;;;;;
+25CA;LOZENGE;So;0;ON;;;;;N;;;;;
+25CB;WHITE CIRCLE;So;0;ON;;;;;N;;;;;
+25CC;DOTTED CIRCLE;So;0;ON;;;;;N;;;;;
+25CD;CIRCLE WITH VERTICAL FILL;So;0;ON;;;;;N;;;;;
+25CE;BULLSEYE;So;0;ON;;;;;N;;;;;
+25CF;BLACK CIRCLE;So;0;ON;;;;;N;;;;;
+25D0;CIRCLE WITH LEFT HALF BLACK;So;0;ON;;;;;N;;;;;
+25D1;CIRCLE WITH RIGHT HALF BLACK;So;0;ON;;;;;N;;;;;
+25D2;CIRCLE WITH LOWER HALF BLACK;So;0;ON;;;;;N;;;;;
+25D3;CIRCLE WITH UPPER HALF BLACK;So;0;ON;;;;;N;;;;;
+25D4;CIRCLE WITH UPPER RIGHT QUADRANT BLACK;So;0;ON;;;;;N;;;;;
+25D5;CIRCLE WITH ALL BUT UPPER LEFT QUADRANT BLACK;So;0;ON;;;;;N;;;;;
+25D6;LEFT HALF BLACK CIRCLE;So;0;ON;;;;;N;;;;;
+25D7;RIGHT HALF BLACK CIRCLE;So;0;ON;;;;;N;;;;;
+25D8;INVERSE BULLET;So;0;ON;;;;;N;;;;;
+25D9;INVERSE WHITE CIRCLE;So;0;ON;;;;;N;;;;;
+25DA;UPPER HALF INVERSE WHITE CIRCLE;So;0;ON;;;;;N;;;;;
+25DB;LOWER HALF INVERSE WHITE CIRCLE;So;0;ON;;;;;N;;;;;
+25DC;UPPER LEFT QUADRANT CIRCULAR ARC;So;0;ON;;;;;N;;;;;
+25DD;UPPER RIGHT QUADRANT CIRCULAR ARC;So;0;ON;;;;;N;;;;;
+25DE;LOWER RIGHT QUADRANT CIRCULAR ARC;So;0;ON;;;;;N;;;;;
+25DF;LOWER LEFT QUADRANT CIRCULAR ARC;So;0;ON;;;;;N;;;;;
+25E0;UPPER HALF CIRCLE;So;0;ON;;;;;N;;;;;
+25E1;LOWER HALF CIRCLE;So;0;ON;;;;;N;;;;;
+25E2;BLACK LOWER RIGHT TRIANGLE;So;0;ON;;;;;N;;;;;
+25E3;BLACK LOWER LEFT TRIANGLE;So;0;ON;;;;;N;;;;;
+25E4;BLACK UPPER LEFT TRIANGLE;So;0;ON;;;;;N;;;;;
+25E5;BLACK UPPER RIGHT TRIANGLE;So;0;ON;;;;;N;;;;;
+25E6;WHITE BULLET;So;0;ON;;;;;N;;;;;
+25E7;SQUARE WITH LEFT HALF BLACK;So;0;ON;;;;;N;;;;;
+25E8;SQUARE WITH RIGHT HALF BLACK;So;0;ON;;;;;N;;;;;
+25E9;SQUARE WITH UPPER LEFT DIAGONAL HALF BLACK;So;0;ON;;;;;N;;;;;
+25EA;SQUARE WITH LOWER RIGHT DIAGONAL HALF BLACK;So;0;ON;;;;;N;;;;;
+25EB;WHITE SQUARE WITH VERTICAL BISECTING LINE;So;0;ON;;;;;N;;;;;
+25EC;WHITE UP-POINTING TRIANGLE WITH DOT;So;0;ON;;;;;N;WHITE UP POINTING TRIANGLE WITH DOT;;;;
+25ED;UP-POINTING TRIANGLE WITH LEFT HALF BLACK;So;0;ON;;;;;N;UP POINTING TRIANGLE WITH LEFT HALF BLACK;;;;
+25EE;UP-POINTING TRIANGLE WITH RIGHT HALF BLACK;So;0;ON;;;;;N;UP POINTING TRIANGLE WITH RIGHT HALF BLACK;;;;
+25EF;LARGE CIRCLE;So;0;ON;;;;;N;;;;;
+25F0;WHITE SQUARE WITH UPPER LEFT QUADRANT;So;0;ON;;;;;N;;;;;
+25F1;WHITE SQUARE WITH LOWER LEFT QUADRANT;So;0;ON;;;;;N;;;;;
+25F2;WHITE SQUARE WITH LOWER RIGHT QUADRANT;So;0;ON;;;;;N;;;;;
+25F3;WHITE SQUARE WITH UPPER RIGHT QUADRANT;So;0;ON;;;;;N;;;;;
+25F4;WHITE CIRCLE WITH UPPER LEFT QUADRANT;So;0;ON;;;;;N;;;;;
+25F5;WHITE CIRCLE WITH LOWER LEFT QUADRANT;So;0;ON;;;;;N;;;;;
+25F6;WHITE CIRCLE WITH LOWER RIGHT QUADRANT;So;0;ON;;;;;N;;;;;
+25F7;WHITE CIRCLE WITH UPPER RIGHT QUADRANT;So;0;ON;;;;;N;;;;;
+2600;BLACK SUN WITH RAYS;So;0;ON;;;;;N;;;;;
+2601;CLOUD;So;0;ON;;;;;N;;;;;
+2602;UMBRELLA;So;0;ON;;;;;N;;;;;
+2603;SNOWMAN;So;0;ON;;;;;N;;;;;
+2604;COMET;So;0;ON;;;;;N;;;;;
+2605;BLACK STAR;So;0;ON;;;;;N;;;;;
+2606;WHITE STAR;So;0;ON;;;;;N;;;;;
+2607;LIGHTNING;So;0;ON;;;;;N;;;;;
+2608;THUNDERSTORM;So;0;ON;;;;;N;;;;;
+2609;SUN;So;0;ON;;;;;N;;;;;
+260A;ASCENDING NODE;So;0;ON;;;;;N;;;;;
+260B;DESCENDING NODE;So;0;ON;;;;;N;;;;;
+260C;CONJUNCTION;So;0;ON;;;;;N;;;;;
+260D;OPPOSITION;So;0;ON;;;;;N;;;;;
+260E;BLACK TELEPHONE;So;0;ON;;;;;N;;;;;
+260F;WHITE TELEPHONE;So;0;ON;;;;;N;;;;;
+2610;BALLOT BOX;So;0;ON;;;;;N;;;;;
+2611;BALLOT BOX WITH CHECK;So;0;ON;;;;;N;;;;;
+2612;BALLOT BOX WITH X;So;0;ON;;;;;N;;;;;
+2613;SALTIRE;So;0;ON;;;;;N;;;;;
+2619;REVERSED ROTATED FLORAL HEART BULLET;So;0;ON;;;;;N;;;;;
+261A;BLACK LEFT POINTING INDEX;So;0;ON;;;;;N;;;;;
+261B;BLACK RIGHT POINTING INDEX;So;0;ON;;;;;N;;;;;
+261C;WHITE LEFT POINTING INDEX;So;0;ON;;;;;N;;;;;
+261D;WHITE UP POINTING INDEX;So;0;ON;;;;;N;;;;;
+261E;WHITE RIGHT POINTING INDEX;So;0;ON;;;;;N;;;;;
+261F;WHITE DOWN POINTING INDEX;So;0;ON;;;;;N;;;;;
+2620;SKULL AND CROSSBONES;So;0;ON;;;;;N;;;;;
+2621;CAUTION SIGN;So;0;ON;;;;;N;;;;;
+2622;RADIOACTIVE SIGN;So;0;ON;;;;;N;;;;;
+2623;BIOHAZARD SIGN;So;0;ON;;;;;N;;;;;
+2624;CADUCEUS;So;0;ON;;;;;N;;;;;
+2625;ANKH;So;0;ON;;;;;N;;;;;
+2626;ORTHODOX CROSS;So;0;ON;;;;;N;;;;;
+2627;CHI RHO;So;0;ON;;;;;N;;;;;
+2628;CROSS OF LORRAINE;So;0;ON;;;;;N;;;;;
+2629;CROSS OF JERUSALEM;So;0;ON;;;;;N;;;;;
+262A;STAR AND CRESCENT;So;0;ON;;;;;N;;;;;
+262B;FARSI SYMBOL;So;0;ON;;;;;N;SYMBOL OF IRAN;;;;
+262C;ADI SHAKTI;So;0;ON;;;;;N;;;;;
+262D;HAMMER AND SICKLE;So;0;ON;;;;;N;;;;;
+262E;PEACE SYMBOL;So;0;ON;;;;;N;;;;;
+262F;YIN YANG;So;0;ON;;;;;N;;;;;
+2630;TRIGRAM FOR HEAVEN;So;0;ON;;;;;N;;;;;
+2631;TRIGRAM FOR LAKE;So;0;ON;;;;;N;;;;;
+2632;TRIGRAM FOR FIRE;So;0;ON;;;;;N;;;;;
+2633;TRIGRAM FOR THUNDER;So;0;ON;;;;;N;;;;;
+2634;TRIGRAM FOR WIND;So;0;ON;;;;;N;;;;;
+2635;TRIGRAM FOR WATER;So;0;ON;;;;;N;;;;;
+2636;TRIGRAM FOR MOUNTAIN;So;0;ON;;;;;N;;;;;
+2637;TRIGRAM FOR EARTH;So;0;ON;;;;;N;;;;;
+2638;WHEEL OF DHARMA;So;0;ON;;;;;N;;;;;
+2639;WHITE FROWNING FACE;So;0;ON;;;;;N;;;;;
+263A;WHITE SMILING FACE;So;0;ON;;;;;N;;;;;
+263B;BLACK SMILING FACE;So;0;ON;;;;;N;;;;;
+263C;WHITE SUN WITH RAYS;So;0;ON;;;;;N;;;;;
+263D;FIRST QUARTER MOON;So;0;ON;;;;;N;;;;;
+263E;LAST QUARTER MOON;So;0;ON;;;;;N;;;;;
+263F;MERCURY;So;0;ON;;;;;N;;;;;
+2640;FEMALE SIGN;So;0;ON;;;;;N;;;;;
+2641;EARTH;So;0;ON;;;;;N;;;;;
+2642;MALE SIGN;So;0;ON;;;;;N;;;;;
+2643;JUPITER;So;0;ON;;;;;N;;;;;
+2644;SATURN;So;0;ON;;;;;N;;;;;
+2645;URANUS;So;0;ON;;;;;N;;;;;
+2646;NEPTUNE;So;0;ON;;;;;N;;;;;
+2647;PLUTO;So;0;ON;;;;;N;;;;;
+2648;ARIES;So;0;ON;;;;;N;;;;;
+2649;TAURUS;So;0;ON;;;;;N;;;;;
+264A;GEMINI;So;0;ON;;;;;N;;;;;
+264B;CANCER;So;0;ON;;;;;N;;;;;
+264C;LEO;So;0;ON;;;;;N;;;;;
+264D;VIRGO;So;0;ON;;;;;N;;;;;
+264E;LIBRA;So;0;ON;;;;;N;;;;;
+264F;SCORPIUS;So;0;ON;;;;;N;;;;;
+2650;SAGITTARIUS;So;0;ON;;;;;N;;;;;
+2651;CAPRICORN;So;0;ON;;;;;N;;;;;
+2652;AQUARIUS;So;0;ON;;;;;N;;;;;
+2653;PISCES;So;0;ON;;;;;N;;;;;
+2654;WHITE CHESS KING;So;0;ON;;;;;N;;;;;
+2655;WHITE CHESS QUEEN;So;0;ON;;;;;N;;;;;
+2656;WHITE CHESS ROOK;So;0;ON;;;;;N;;;;;
+2657;WHITE CHESS BISHOP;So;0;ON;;;;;N;;;;;
+2658;WHITE CHESS KNIGHT;So;0;ON;;;;;N;;;;;
+2659;WHITE CHESS PAWN;So;0;ON;;;;;N;;;;;
+265A;BLACK CHESS KING;So;0;ON;;;;;N;;;;;
+265B;BLACK CHESS QUEEN;So;0;ON;;;;;N;;;;;
+265C;BLACK CHESS ROOK;So;0;ON;;;;;N;;;;;
+265D;BLACK CHESS BISHOP;So;0;ON;;;;;N;;;;;
+265E;BLACK CHESS KNIGHT;So;0;ON;;;;;N;;;;;
+265F;BLACK CHESS PAWN;So;0;ON;;;;;N;;;;;
+2660;BLACK SPADE SUIT;So;0;ON;;;;;N;;;;;
+2661;WHITE HEART SUIT;So;0;ON;;;;;N;;;;;
+2662;WHITE DIAMOND SUIT;So;0;ON;;;;;N;;;;;
+2663;BLACK CLUB SUIT;So;0;ON;;;;;N;;;;;
+2664;WHITE SPADE SUIT;So;0;ON;;;;;N;;;;;
+2665;BLACK HEART SUIT;So;0;ON;;;;;N;;;;;
+2666;BLACK DIAMOND SUIT;So;0;ON;;;;;N;;;;;
+2667;WHITE CLUB SUIT;So;0;ON;;;;;N;;;;;
+2668;HOT SPRINGS;So;0;ON;;;;;N;;;;;
+2669;QUARTER NOTE;So;0;ON;;;;;N;;;;;
+266A;EIGHTH NOTE;So;0;ON;;;;;N;;;;;
+266B;BEAMED EIGHTH NOTES;So;0;ON;;;;;N;BARRED EIGHTH NOTES;;;;
+266C;BEAMED SIXTEENTH NOTES;So;0;ON;;;;;N;BARRED SIXTEENTH NOTES;;;;
+266D;MUSIC FLAT SIGN;So;0;ON;;;;;N;FLAT;;;;
+266E;MUSIC NATURAL SIGN;So;0;ON;;;;;N;NATURAL;;;;
+266F;MUSIC SHARP SIGN;Sm;0;ON;;;;;N;SHARP;;;;
+2670;WEST SYRIAC CROSS;So;0;ON;;;;;N;;;;;
+2671;EAST SYRIAC CROSS;So;0;ON;;;;;N;;;;;
+2701;UPPER BLADE SCISSORS;So;0;ON;;;;;N;;;;;
+2702;BLACK SCISSORS;So;0;ON;;;;;N;;;;;
+2703;LOWER BLADE SCISSORS;So;0;ON;;;;;N;;;;;
+2704;WHITE SCISSORS;So;0;ON;;;;;N;;;;;
+2706;TELEPHONE LOCATION SIGN;So;0;ON;;;;;N;;;;;
+2707;TAPE DRIVE;So;0;ON;;;;;N;;;;;
+2708;AIRPLANE;So;0;ON;;;;;N;;;;;
+2709;ENVELOPE;So;0;ON;;;;;N;;;;;
+270C;VICTORY HAND;So;0;ON;;;;;N;;;;;
+270D;WRITING HAND;So;0;ON;;;;;N;;;;;
+270E;LOWER RIGHT PENCIL;So;0;ON;;;;;N;;;;;
+270F;PENCIL;So;0;ON;;;;;N;;;;;
+2710;UPPER RIGHT PENCIL;So;0;ON;;;;;N;;;;;
+2711;WHITE NIB;So;0;ON;;;;;N;;;;;
+2712;BLACK NIB;So;0;ON;;;;;N;;;;;
+2713;CHECK MARK;So;0;ON;;;;;N;;;;;
+2714;HEAVY CHECK MARK;So;0;ON;;;;;N;;;;;
+2715;MULTIPLICATION X;So;0;ON;;;;;N;;;;;
+2716;HEAVY MULTIPLICATION X;So;0;ON;;;;;N;;;;;
+2717;BALLOT X;So;0;ON;;;;;N;;;;;
+2718;HEAVY BALLOT X;So;0;ON;;;;;N;;;;;
+2719;OUTLINED GREEK CROSS;So;0;ON;;;;;N;;;;;
+271A;HEAVY GREEK CROSS;So;0;ON;;;;;N;;;;;
+271B;OPEN CENTRE CROSS;So;0;ON;;;;;N;OPEN CENTER CROSS;;;;
+271C;HEAVY OPEN CENTRE CROSS;So;0;ON;;;;;N;HEAVY OPEN CENTER CROSS;;;;
+271D;LATIN CROSS;So;0;ON;;;;;N;;;;;
+271E;SHADOWED WHITE LATIN CROSS;So;0;ON;;;;;N;;;;;
+271F;OUTLINED LATIN CROSS;So;0;ON;;;;;N;;;;;
+2720;MALTESE CROSS;So;0;ON;;;;;N;;;;;
+2721;STAR OF DAVID;So;0;ON;;;;;N;;;;;
+2722;FOUR TEARDROP-SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+2723;FOUR BALLOON-SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+2724;HEAVY FOUR BALLOON-SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+2725;FOUR CLUB-SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+2726;BLACK FOUR POINTED STAR;So;0;ON;;;;;N;;;;;
+2727;WHITE FOUR POINTED STAR;So;0;ON;;;;;N;;;;;
+2729;STRESS OUTLINED WHITE STAR;So;0;ON;;;;;N;;;;;
+272A;CIRCLED WHITE STAR;So;0;ON;;;;;N;;;;;
+272B;OPEN CENTRE BLACK STAR;So;0;ON;;;;;N;OPEN CENTER BLACK STAR;;;;
+272C;BLACK CENTRE WHITE STAR;So;0;ON;;;;;N;BLACK CENTER WHITE STAR;;;;
+272D;OUTLINED BLACK STAR;So;0;ON;;;;;N;;;;;
+272E;HEAVY OUTLINED BLACK STAR;So;0;ON;;;;;N;;;;;
+272F;PINWHEEL STAR;So;0;ON;;;;;N;;;;;
+2730;SHADOWED WHITE STAR;So;0;ON;;;;;N;;;;;
+2731;HEAVY ASTERISK;So;0;ON;;;;;N;;;;;
+2732;OPEN CENTRE ASTERISK;So;0;ON;;;;;N;OPEN CENTER ASTERISK;;;;
+2733;EIGHT SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+2734;EIGHT POINTED BLACK STAR;So;0;ON;;;;;N;;;;;
+2735;EIGHT POINTED PINWHEEL STAR;So;0;ON;;;;;N;;;;;
+2736;SIX POINTED BLACK STAR;So;0;ON;;;;;N;;;;;
+2737;EIGHT POINTED RECTILINEAR BLACK STAR;So;0;ON;;;;;N;;;;;
+2738;HEAVY EIGHT POINTED RECTILINEAR BLACK STAR;So;0;ON;;;;;N;;;;;
+2739;TWELVE POINTED BLACK STAR;So;0;ON;;;;;N;;;;;
+273A;SIXTEEN POINTED ASTERISK;So;0;ON;;;;;N;;;;;
+273B;TEARDROP-SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+273C;OPEN CENTRE TEARDROP-SPOKED ASTERISK;So;0;ON;;;;;N;OPEN CENTER TEARDROP-SPOKED ASTERISK;;;;
+273D;HEAVY TEARDROP-SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+273E;SIX PETALLED BLACK AND WHITE FLORETTE;So;0;ON;;;;;N;;;;;
+273F;BLACK FLORETTE;So;0;ON;;;;;N;;;;;
+2740;WHITE FLORETTE;So;0;ON;;;;;N;;;;;
+2741;EIGHT PETALLED OUTLINED BLACK FLORETTE;So;0;ON;;;;;N;;;;;
+2742;CIRCLED OPEN CENTRE EIGHT POINTED STAR;So;0;ON;;;;;N;CIRCLED OPEN CENTER EIGHT POINTED STAR;;;;
+2743;HEAVY TEARDROP-SPOKED PINWHEEL ASTERISK;So;0;ON;;;;;N;;;;;
+2744;SNOWFLAKE;So;0;ON;;;;;N;;;;;
+2745;TIGHT TRIFOLIATE SNOWFLAKE;So;0;ON;;;;;N;;;;;
+2746;HEAVY CHEVRON SNOWFLAKE;So;0;ON;;;;;N;;;;;
+2747;SPARKLE;So;0;ON;;;;;N;;;;;
+2748;HEAVY SPARKLE;So;0;ON;;;;;N;;;;;
+2749;BALLOON-SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+274A;EIGHT TEARDROP-SPOKED PROPELLER ASTERISK;So;0;ON;;;;;N;;;;;
+274B;HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK;So;0;ON;;;;;N;;;;;
+274D;SHADOWED WHITE CIRCLE;So;0;ON;;;;;N;;;;;
+274F;LOWER RIGHT DROP-SHADOWED WHITE SQUARE;So;0;ON;;;;;N;;;;;
+2750;UPPER RIGHT DROP-SHADOWED WHITE SQUARE;So;0;ON;;;;;N;;;;;
+2751;LOWER RIGHT SHADOWED WHITE SQUARE;So;0;ON;;;;;N;;;;;
+2752;UPPER RIGHT SHADOWED WHITE SQUARE;So;0;ON;;;;;N;;;;;
+2756;BLACK DIAMOND MINUS WHITE X;So;0;ON;;;;;N;;;;;
+2758;LIGHT VERTICAL BAR;So;0;ON;;;;;N;;;;;
+2759;MEDIUM VERTICAL BAR;So;0;ON;;;;;N;;;;;
+275A;HEAVY VERTICAL BAR;So;0;ON;;;;;N;;;;;
+275B;HEAVY SINGLE TURNED COMMA QUOTATION MARK ORNAMENT;So;0;ON;;;;;N;;;;;
+275C;HEAVY SINGLE COMMA QUOTATION MARK ORNAMENT;So;0;ON;;;;;N;;;;;
+275D;HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT;So;0;ON;;;;;N;;;;;
+275E;HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT;So;0;ON;;;;;N;;;;;
+2761;CURVED STEM PARAGRAPH SIGN ORNAMENT;So;0;ON;;;;;N;;;;;
+2762;HEAVY EXCLAMATION MARK ORNAMENT;So;0;ON;;;;;N;;;;;
+2763;HEAVY HEART EXCLAMATION MARK ORNAMENT;So;0;ON;;;;;N;;;;;
+2764;HEAVY BLACK HEART;So;0;ON;;;;;N;;;;;
+2765;ROTATED HEAVY BLACK HEART BULLET;So;0;ON;;;;;N;;;;;
+2766;FLORAL HEART;So;0;ON;;;;;N;;;;;
+2767;ROTATED FLORAL HEART BULLET;So;0;ON;;;;;N;;;;;
+2776;DINGBAT NEGATIVE CIRCLED DIGIT ONE;No;0;ON;;;1;1;N;INVERSE CIRCLED DIGIT ONE;;;;
+2777;DINGBAT NEGATIVE CIRCLED DIGIT TWO;No;0;ON;;;2;2;N;INVERSE CIRCLED DIGIT TWO;;;;
+2778;DINGBAT NEGATIVE CIRCLED DIGIT THREE;No;0;ON;;;3;3;N;INVERSE CIRCLED DIGIT THREE;;;;
+2779;DINGBAT NEGATIVE CIRCLED DIGIT FOUR;No;0;ON;;;4;4;N;INVERSE CIRCLED DIGIT FOUR;;;;
+277A;DINGBAT NEGATIVE CIRCLED DIGIT FIVE;No;0;ON;;;5;5;N;INVERSE CIRCLED DIGIT FIVE;;;;
+277B;DINGBAT NEGATIVE CIRCLED DIGIT SIX;No;0;ON;;;6;6;N;INVERSE CIRCLED DIGIT SIX;;;;
+277C;DINGBAT NEGATIVE CIRCLED DIGIT SEVEN;No;0;ON;;;7;7;N;INVERSE CIRCLED DIGIT SEVEN;;;;
+277D;DINGBAT NEGATIVE CIRCLED DIGIT EIGHT;No;0;ON;;;8;8;N;INVERSE CIRCLED DIGIT EIGHT;;;;
+277E;DINGBAT NEGATIVE CIRCLED DIGIT NINE;No;0;ON;;;9;9;N;INVERSE CIRCLED DIGIT NINE;;;;
+277F;DINGBAT NEGATIVE CIRCLED NUMBER TEN;No;0;ON;;;;10;N;INVERSE CIRCLED NUMBER TEN;;;;
+2780;DINGBAT CIRCLED SANS-SERIF DIGIT ONE;No;0;ON;;;1;1;N;CIRCLED SANS-SERIF DIGIT ONE;;;;
+2781;DINGBAT CIRCLED SANS-SERIF DIGIT TWO;No;0;ON;;;2;2;N;CIRCLED SANS-SERIF DIGIT TWO;;;;
+2782;DINGBAT CIRCLED SANS-SERIF DIGIT THREE;No;0;ON;;;3;3;N;CIRCLED SANS-SERIF DIGIT THREE;;;;
+2783;DINGBAT CIRCLED SANS-SERIF DIGIT FOUR;No;0;ON;;;4;4;N;CIRCLED SANS-SERIF DIGIT FOUR;;;;
+2784;DINGBAT CIRCLED SANS-SERIF DIGIT FIVE;No;0;ON;;;5;5;N;CIRCLED SANS-SERIF DIGIT FIVE;;;;
+2785;DINGBAT CIRCLED SANS-SERIF DIGIT SIX;No;0;ON;;;6;6;N;CIRCLED SANS-SERIF DIGIT SIX;;;;
+2786;DINGBAT CIRCLED SANS-SERIF DIGIT SEVEN;No;0;ON;;;7;7;N;CIRCLED SANS-SERIF DIGIT SEVEN;;;;
+2787;DINGBAT CIRCLED SANS-SERIF DIGIT EIGHT;No;0;ON;;;8;8;N;CIRCLED SANS-SERIF DIGIT EIGHT;;;;
+2788;DINGBAT CIRCLED SANS-SERIF DIGIT NINE;No;0;ON;;;9;9;N;CIRCLED SANS-SERIF DIGIT NINE;;;;
+2789;DINGBAT CIRCLED SANS-SERIF NUMBER TEN;No;0;ON;;;;10;N;CIRCLED SANS-SERIF NUMBER TEN;;;;
+278A;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ONE;No;0;ON;;;1;1;N;INVERSE CIRCLED SANS-SERIF DIGIT ONE;;;;
+278B;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT TWO;No;0;ON;;;2;2;N;INVERSE CIRCLED SANS-SERIF DIGIT TWO;;;;
+278C;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT THREE;No;0;ON;;;3;3;N;INVERSE CIRCLED SANS-SERIF DIGIT THREE;;;;
+278D;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FOUR;No;0;ON;;;4;4;N;INVERSE CIRCLED SANS-SERIF DIGIT FOUR;;;;
+278E;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FIVE;No;0;ON;;;5;5;N;INVERSE CIRCLED SANS-SERIF DIGIT FIVE;;;;
+278F;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SIX;No;0;ON;;;6;6;N;INVERSE CIRCLED SANS-SERIF DIGIT SIX;;;;
+2790;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SEVEN;No;0;ON;;;7;7;N;INVERSE CIRCLED SANS-SERIF DIGIT SEVEN;;;;
+2791;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT EIGHT;No;0;ON;;;8;8;N;INVERSE CIRCLED SANS-SERIF DIGIT EIGHT;;;;
+2792;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT NINE;No;0;ON;;;9;9;N;INVERSE CIRCLED SANS-SERIF DIGIT NINE;;;;
+2793;DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN;No;0;ON;;;;10;N;INVERSE CIRCLED SANS-SERIF NUMBER TEN;;;;
+2794;HEAVY WIDE-HEADED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY WIDE-HEADED RIGHT ARROW;;;;
+2798;HEAVY SOUTH EAST ARROW;So;0;ON;;;;;N;HEAVY LOWER RIGHT ARROW;;;;
+2799;HEAVY RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY RIGHT ARROW;;;;
+279A;HEAVY NORTH EAST ARROW;So;0;ON;;;;;N;HEAVY UPPER RIGHT ARROW;;;;
+279B;DRAFTING POINT RIGHTWARDS ARROW;So;0;ON;;;;;N;DRAFTING POINT RIGHT ARROW;;;;
+279C;HEAVY ROUND-TIPPED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY ROUND-TIPPED RIGHT ARROW;;;;
+279D;TRIANGLE-HEADED RIGHTWARDS ARROW;So;0;ON;;;;;N;TRIANGLE-HEADED RIGHT ARROW;;;;
+279E;HEAVY TRIANGLE-HEADED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY TRIANGLE-HEADED RIGHT ARROW;;;;
+279F;DASHED TRIANGLE-HEADED RIGHTWARDS ARROW;So;0;ON;;;;;N;DASHED TRIANGLE-HEADED RIGHT ARROW;;;;
+27A0;HEAVY DASHED TRIANGLE-HEADED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY DASHED TRIANGLE-HEADED RIGHT ARROW;;;;
+27A1;BLACK RIGHTWARDS ARROW;So;0;ON;;;;;N;BLACK RIGHT ARROW;;;;
+27A2;THREE-D TOP-LIGHTED RIGHTWARDS ARROWHEAD;So;0;ON;;;;;N;THREE-D TOP-LIGHTED RIGHT ARROWHEAD;;;;
+27A3;THREE-D BOTTOM-LIGHTED RIGHTWARDS ARROWHEAD;So;0;ON;;;;;N;THREE-D BOTTOM-LIGHTED RIGHT ARROWHEAD;;;;
+27A4;BLACK RIGHTWARDS ARROWHEAD;So;0;ON;;;;;N;BLACK RIGHT ARROWHEAD;;;;
+27A5;HEAVY BLACK CURVED DOWNWARDS AND RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY BLACK CURVED DOWN AND RIGHT ARROW;;;;
+27A6;HEAVY BLACK CURVED UPWARDS AND RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY BLACK CURVED UP AND RIGHT ARROW;;;;
+27A7;SQUAT BLACK RIGHTWARDS ARROW;So;0;ON;;;;;N;SQUAT BLACK RIGHT ARROW;;;;
+27A8;HEAVY CONCAVE-POINTED BLACK RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY CONCAVE-POINTED BLACK RIGHT ARROW;;;;
+27A9;RIGHT-SHADED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;RIGHT-SHADED WHITE RIGHT ARROW;;;;
+27AA;LEFT-SHADED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;LEFT-SHADED WHITE RIGHT ARROW;;;;
+27AB;BACK-TILTED SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;BACK-TILTED SHADOWED WHITE RIGHT ARROW;;;;
+27AC;FRONT-TILTED SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;FRONT-TILTED SHADOWED WHITE RIGHT ARROW;;;;
+27AD;HEAVY LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY LOWER RIGHT-SHADOWED WHITE RIGHT ARROW;;;;
+27AE;HEAVY UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY UPPER RIGHT-SHADOWED WHITE RIGHT ARROW;;;;
+27AF;NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHT ARROW;;;;
+27B1;NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHT ARROW;;;;
+27B2;CIRCLED HEAVY WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;CIRCLED HEAVY WHITE RIGHT ARROW;;;;
+27B3;WHITE-FEATHERED RIGHTWARDS ARROW;So;0;ON;;;;;N;WHITE-FEATHERED RIGHT ARROW;;;;
+27B4;BLACK-FEATHERED SOUTH EAST ARROW;So;0;ON;;;;;N;BLACK-FEATHERED LOWER RIGHT ARROW;;;;
+27B5;BLACK-FEATHERED RIGHTWARDS ARROW;So;0;ON;;;;;N;BLACK-FEATHERED RIGHT ARROW;;;;
+27B6;BLACK-FEATHERED NORTH EAST ARROW;So;0;ON;;;;;N;BLACK-FEATHERED UPPER RIGHT ARROW;;;;
+27B7;HEAVY BLACK-FEATHERED SOUTH EAST ARROW;So;0;ON;;;;;N;HEAVY BLACK-FEATHERED LOWER RIGHT ARROW;;;;
+27B8;HEAVY BLACK-FEATHERED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY BLACK-FEATHERED RIGHT ARROW;;;;
+27B9;HEAVY BLACK-FEATHERED NORTH EAST ARROW;So;0;ON;;;;;N;HEAVY BLACK-FEATHERED UPPER RIGHT ARROW;;;;
+27BA;TEARDROP-BARBED RIGHTWARDS ARROW;So;0;ON;;;;;N;TEARDROP-BARBED RIGHT ARROW;;;;
+27BB;HEAVY TEARDROP-SHANKED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY TEARDROP-SHANKED RIGHT ARROW;;;;
+27BC;WEDGE-TAILED RIGHTWARDS ARROW;So;0;ON;;;;;N;WEDGE-TAILED RIGHT ARROW;;;;
+27BD;HEAVY WEDGE-TAILED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY WEDGE-TAILED RIGHT ARROW;;;;
+27BE;OPEN-OUTLINED RIGHTWARDS ARROW;So;0;ON;;;;;N;OPEN-OUTLINED RIGHT ARROW;;;;
+2800;BRAILLE PATTERN BLANK;So;0;ON;;;;;N;;;;;
+2801;BRAILLE PATTERN DOTS-1;So;0;ON;;;;;N;;;;;
+2802;BRAILLE PATTERN DOTS-2;So;0;ON;;;;;N;;;;;
+2803;BRAILLE PATTERN DOTS-12;So;0;ON;;;;;N;;;;;
+2804;BRAILLE PATTERN DOTS-3;So;0;ON;;;;;N;;;;;
+2805;BRAILLE PATTERN DOTS-13;So;0;ON;;;;;N;;;;;
+2806;BRAILLE PATTERN DOTS-23;So;0;ON;;;;;N;;;;;
+2807;BRAILLE PATTERN DOTS-123;So;0;ON;;;;;N;;;;;
+2808;BRAILLE PATTERN DOTS-4;So;0;ON;;;;;N;;;;;
+2809;BRAILLE PATTERN DOTS-14;So;0;ON;;;;;N;;;;;
+280A;BRAILLE PATTERN DOTS-24;So;0;ON;;;;;N;;;;;
+280B;BRAILLE PATTERN DOTS-124;So;0;ON;;;;;N;;;;;
+280C;BRAILLE PATTERN DOTS-34;So;0;ON;;;;;N;;;;;
+280D;BRAILLE PATTERN DOTS-134;So;0;ON;;;;;N;;;;;
+280E;BRAILLE PATTERN DOTS-234;So;0;ON;;;;;N;;;;;
+280F;BRAILLE PATTERN DOTS-1234;So;0;ON;;;;;N;;;;;
+2810;BRAILLE PATTERN DOTS-5;So;0;ON;;;;;N;;;;;
+2811;BRAILLE PATTERN DOTS-15;So;0;ON;;;;;N;;;;;
+2812;BRAILLE PATTERN DOTS-25;So;0;ON;;;;;N;;;;;
+2813;BRAILLE PATTERN DOTS-125;So;0;ON;;;;;N;;;;;
+2814;BRAILLE PATTERN DOTS-35;So;0;ON;;;;;N;;;;;
+2815;BRAILLE PATTERN DOTS-135;So;0;ON;;;;;N;;;;;
+2816;BRAILLE PATTERN DOTS-235;So;0;ON;;;;;N;;;;;
+2817;BRAILLE PATTERN DOTS-1235;So;0;ON;;;;;N;;;;;
+2818;BRAILLE PATTERN DOTS-45;So;0;ON;;;;;N;;;;;
+2819;BRAILLE PATTERN DOTS-145;So;0;ON;;;;;N;;;;;
+281A;BRAILLE PATTERN DOTS-245;So;0;ON;;;;;N;;;;;
+281B;BRAILLE PATTERN DOTS-1245;So;0;ON;;;;;N;;;;;
+281C;BRAILLE PATTERN DOTS-345;So;0;ON;;;;;N;;;;;
+281D;BRAILLE PATTERN DOTS-1345;So;0;ON;;;;;N;;;;;
+281E;BRAILLE PATTERN DOTS-2345;So;0;ON;;;;;N;;;;;
+281F;BRAILLE PATTERN DOTS-12345;So;0;ON;;;;;N;;;;;
+2820;BRAILLE PATTERN DOTS-6;So;0;ON;;;;;N;;;;;
+2821;BRAILLE PATTERN DOTS-16;So;0;ON;;;;;N;;;;;
+2822;BRAILLE PATTERN DOTS-26;So;0;ON;;;;;N;;;;;
+2823;BRAILLE PATTERN DOTS-126;So;0;ON;;;;;N;;;;;
+2824;BRAILLE PATTERN DOTS-36;So;0;ON;;;;;N;;;;;
+2825;BRAILLE PATTERN DOTS-136;So;0;ON;;;;;N;;;;;
+2826;BRAILLE PATTERN DOTS-236;So;0;ON;;;;;N;;;;;
+2827;BRAILLE PATTERN DOTS-1236;So;0;ON;;;;;N;;;;;
+2828;BRAILLE PATTERN DOTS-46;So;0;ON;;;;;N;;;;;
+2829;BRAILLE PATTERN DOTS-146;So;0;ON;;;;;N;;;;;
+282A;BRAILLE PATTERN DOTS-246;So;0;ON;;;;;N;;;;;
+282B;BRAILLE PATTERN DOTS-1246;So;0;ON;;;;;N;;;;;
+282C;BRAILLE PATTERN DOTS-346;So;0;ON;;;;;N;;;;;
+282D;BRAILLE PATTERN DOTS-1346;So;0;ON;;;;;N;;;;;
+282E;BRAILLE PATTERN DOTS-2346;So;0;ON;;;;;N;;;;;
+282F;BRAILLE PATTERN DOTS-12346;So;0;ON;;;;;N;;;;;
+2830;BRAILLE PATTERN DOTS-56;So;0;ON;;;;;N;;;;;
+2831;BRAILLE PATTERN DOTS-156;So;0;ON;;;;;N;;;;;
+2832;BRAILLE PATTERN DOTS-256;So;0;ON;;;;;N;;;;;
+2833;BRAILLE PATTERN DOTS-1256;So;0;ON;;;;;N;;;;;
+2834;BRAILLE PATTERN DOTS-356;So;0;ON;;;;;N;;;;;
+2835;BRAILLE PATTERN DOTS-1356;So;0;ON;;;;;N;;;;;
+2836;BRAILLE PATTERN DOTS-2356;So;0;ON;;;;;N;;;;;
+2837;BRAILLE PATTERN DOTS-12356;So;0;ON;;;;;N;;;;;
+2838;BRAILLE PATTERN DOTS-456;So;0;ON;;;;;N;;;;;
+2839;BRAILLE PATTERN DOTS-1456;So;0;ON;;;;;N;;;;;
+283A;BRAILLE PATTERN DOTS-2456;So;0;ON;;;;;N;;;;;
+283B;BRAILLE PATTERN DOTS-12456;So;0;ON;;;;;N;;;;;
+283C;BRAILLE PATTERN DOTS-3456;So;0;ON;;;;;N;;;;;
+283D;BRAILLE PATTERN DOTS-13456;So;0;ON;;;;;N;;;;;
+283E;BRAILLE PATTERN DOTS-23456;So;0;ON;;;;;N;;;;;
+283F;BRAILLE PATTERN DOTS-123456;So;0;ON;;;;;N;;;;;
+2840;BRAILLE PATTERN DOTS-7;So;0;ON;;;;;N;;;;;
+2841;BRAILLE PATTERN DOTS-17;So;0;ON;;;;;N;;;;;
+2842;BRAILLE PATTERN DOTS-27;So;0;ON;;;;;N;;;;;
+2843;BRAILLE PATTERN DOTS-127;So;0;ON;;;;;N;;;;;
+2844;BRAILLE PATTERN DOTS-37;So;0;ON;;;;;N;;;;;
+2845;BRAILLE PATTERN DOTS-137;So;0;ON;;;;;N;;;;;
+2846;BRAILLE PATTERN DOTS-237;So;0;ON;;;;;N;;;;;
+2847;BRAILLE PATTERN DOTS-1237;So;0;ON;;;;;N;;;;;
+2848;BRAILLE PATTERN DOTS-47;So;0;ON;;;;;N;;;;;
+2849;BRAILLE PATTERN DOTS-147;So;0;ON;;;;;N;;;;;
+284A;BRAILLE PATTERN DOTS-247;So;0;ON;;;;;N;;;;;
+284B;BRAILLE PATTERN DOTS-1247;So;0;ON;;;;;N;;;;;
+284C;BRAILLE PATTERN DOTS-347;So;0;ON;;;;;N;;;;;
+284D;BRAILLE PATTERN DOTS-1347;So;0;ON;;;;;N;;;;;
+284E;BRAILLE PATTERN DOTS-2347;So;0;ON;;;;;N;;;;;
+284F;BRAILLE PATTERN DOTS-12347;So;0;ON;;;;;N;;;;;
+2850;BRAILLE PATTERN DOTS-57;So;0;ON;;;;;N;;;;;
+2851;BRAILLE PATTERN DOTS-157;So;0;ON;;;;;N;;;;;
+2852;BRAILLE PATTERN DOTS-257;So;0;ON;;;;;N;;;;;
+2853;BRAILLE PATTERN DOTS-1257;So;0;ON;;;;;N;;;;;
+2854;BRAILLE PATTERN DOTS-357;So;0;ON;;;;;N;;;;;
+2855;BRAILLE PATTERN DOTS-1357;So;0;ON;;;;;N;;;;;
+2856;BRAILLE PATTERN DOTS-2357;So;0;ON;;;;;N;;;;;
+2857;BRAILLE PATTERN DOTS-12357;So;0;ON;;;;;N;;;;;
+2858;BRAILLE PATTERN DOTS-457;So;0;ON;;;;;N;;;;;
+2859;BRAILLE PATTERN DOTS-1457;So;0;ON;;;;;N;;;;;
+285A;BRAILLE PATTERN DOTS-2457;So;0;ON;;;;;N;;;;;
+285B;BRAILLE PATTERN DOTS-12457;So;0;ON;;;;;N;;;;;
+285C;BRAILLE PATTERN DOTS-3457;So;0;ON;;;;;N;;;;;
+285D;BRAILLE PATTERN DOTS-13457;So;0;ON;;;;;N;;;;;
+285E;BRAILLE PATTERN DOTS-23457;So;0;ON;;;;;N;;;;;
+285F;BRAILLE PATTERN DOTS-123457;So;0;ON;;;;;N;;;;;
+2860;BRAILLE PATTERN DOTS-67;So;0;ON;;;;;N;;;;;
+2861;BRAILLE PATTERN DOTS-167;So;0;ON;;;;;N;;;;;
+2862;BRAILLE PATTERN DOTS-267;So;0;ON;;;;;N;;;;;
+2863;BRAILLE PATTERN DOTS-1267;So;0;ON;;;;;N;;;;;
+2864;BRAILLE PATTERN DOTS-367;So;0;ON;;;;;N;;;;;
+2865;BRAILLE PATTERN DOTS-1367;So;0;ON;;;;;N;;;;;
+2866;BRAILLE PATTERN DOTS-2367;So;0;ON;;;;;N;;;;;
+2867;BRAILLE PATTERN DOTS-12367;So;0;ON;;;;;N;;;;;
+2868;BRAILLE PATTERN DOTS-467;So;0;ON;;;;;N;;;;;
+2869;BRAILLE PATTERN DOTS-1467;So;0;ON;;;;;N;;;;;
+286A;BRAILLE PATTERN DOTS-2467;So;0;ON;;;;;N;;;;;
+286B;BRAILLE PATTERN DOTS-12467;So;0;ON;;;;;N;;;;;
+286C;BRAILLE PATTERN DOTS-3467;So;0;ON;;;;;N;;;;;
+286D;BRAILLE PATTERN DOTS-13467;So;0;ON;;;;;N;;;;;
+286E;BRAILLE PATTERN DOTS-23467;So;0;ON;;;;;N;;;;;
+286F;BRAILLE PATTERN DOTS-123467;So;0;ON;;;;;N;;;;;
+2870;BRAILLE PATTERN DOTS-567;So;0;ON;;;;;N;;;;;
+2871;BRAILLE PATTERN DOTS-1567;So;0;ON;;;;;N;;;;;
+2872;BRAILLE PATTERN DOTS-2567;So;0;ON;;;;;N;;;;;
+2873;BRAILLE PATTERN DOTS-12567;So;0;ON;;;;;N;;;;;
+2874;BRAILLE PATTERN DOTS-3567;So;0;ON;;;;;N;;;;;
+2875;BRAILLE PATTERN DOTS-13567;So;0;ON;;;;;N;;;;;
+2876;BRAILLE PATTERN DOTS-23567;So;0;ON;;;;;N;;;;;
+2877;BRAILLE PATTERN DOTS-123567;So;0;ON;;;;;N;;;;;
+2878;BRAILLE PATTERN DOTS-4567;So;0;ON;;;;;N;;;;;
+2879;BRAILLE PATTERN DOTS-14567;So;0;ON;;;;;N;;;;;
+287A;BRAILLE PATTERN DOTS-24567;So;0;ON;;;;;N;;;;;
+287B;BRAILLE PATTERN DOTS-124567;So;0;ON;;;;;N;;;;;
+287C;BRAILLE PATTERN DOTS-34567;So;0;ON;;;;;N;;;;;
+287D;BRAILLE PATTERN DOTS-134567;So;0;ON;;;;;N;;;;;
+287E;BRAILLE PATTERN DOTS-234567;So;0;ON;;;;;N;;;;;
+287F;BRAILLE PATTERN DOTS-1234567;So;0;ON;;;;;N;;;;;
+2880;BRAILLE PATTERN DOTS-8;So;0;ON;;;;;N;;;;;
+2881;BRAILLE PATTERN DOTS-18;So;0;ON;;;;;N;;;;;
+2882;BRAILLE PATTERN DOTS-28;So;0;ON;;;;;N;;;;;
+2883;BRAILLE PATTERN DOTS-128;So;0;ON;;;;;N;;;;;
+2884;BRAILLE PATTERN DOTS-38;So;0;ON;;;;;N;;;;;
+2885;BRAILLE PATTERN DOTS-138;So;0;ON;;;;;N;;;;;
+2886;BRAILLE PATTERN DOTS-238;So;0;ON;;;;;N;;;;;
+2887;BRAILLE PATTERN DOTS-1238;So;0;ON;;;;;N;;;;;
+2888;BRAILLE PATTERN DOTS-48;So;0;ON;;;;;N;;;;;
+2889;BRAILLE PATTERN DOTS-148;So;0;ON;;;;;N;;;;;
+288A;BRAILLE PATTERN DOTS-248;So;0;ON;;;;;N;;;;;
+288B;BRAILLE PATTERN DOTS-1248;So;0;ON;;;;;N;;;;;
+288C;BRAILLE PATTERN DOTS-348;So;0;ON;;;;;N;;;;;
+288D;BRAILLE PATTERN DOTS-1348;So;0;ON;;;;;N;;;;;
+288E;BRAILLE PATTERN DOTS-2348;So;0;ON;;;;;N;;;;;
+288F;BRAILLE PATTERN DOTS-12348;So;0;ON;;;;;N;;;;;
+2890;BRAILLE PATTERN DOTS-58;So;0;ON;;;;;N;;;;;
+2891;BRAILLE PATTERN DOTS-158;So;0;ON;;;;;N;;;;;
+2892;BRAILLE PATTERN DOTS-258;So;0;ON;;;;;N;;;;;
+2893;BRAILLE PATTERN DOTS-1258;So;0;ON;;;;;N;;;;;
+2894;BRAILLE PATTERN DOTS-358;So;0;ON;;;;;N;;;;;
+2895;BRAILLE PATTERN DOTS-1358;So;0;ON;;;;;N;;;;;
+2896;BRAILLE PATTERN DOTS-2358;So;0;ON;;;;;N;;;;;
+2897;BRAILLE PATTERN DOTS-12358;So;0;ON;;;;;N;;;;;
+2898;BRAILLE PATTERN DOTS-458;So;0;ON;;;;;N;;;;;
+2899;BRAILLE PATTERN DOTS-1458;So;0;ON;;;;;N;;;;;
+289A;BRAILLE PATTERN DOTS-2458;So;0;ON;;;;;N;;;;;
+289B;BRAILLE PATTERN DOTS-12458;So;0;ON;;;;;N;;;;;
+289C;BRAILLE PATTERN DOTS-3458;So;0;ON;;;;;N;;;;;
+289D;BRAILLE PATTERN DOTS-13458;So;0;ON;;;;;N;;;;;
+289E;BRAILLE PATTERN DOTS-23458;So;0;ON;;;;;N;;;;;
+289F;BRAILLE PATTERN DOTS-123458;So;0;ON;;;;;N;;;;;
+28A0;BRAILLE PATTERN DOTS-68;So;0;ON;;;;;N;;;;;
+28A1;BRAILLE PATTERN DOTS-168;So;0;ON;;;;;N;;;;;
+28A2;BRAILLE PATTERN DOTS-268;So;0;ON;;;;;N;;;;;
+28A3;BRAILLE PATTERN DOTS-1268;So;0;ON;;;;;N;;;;;
+28A4;BRAILLE PATTERN DOTS-368;So;0;ON;;;;;N;;;;;
+28A5;BRAILLE PATTERN DOTS-1368;So;0;ON;;;;;N;;;;;
+28A6;BRAILLE PATTERN DOTS-2368;So;0;ON;;;;;N;;;;;
+28A7;BRAILLE PATTERN DOTS-12368;So;0;ON;;;;;N;;;;;
+28A8;BRAILLE PATTERN DOTS-468;So;0;ON;;;;;N;;;;;
+28A9;BRAILLE PATTERN DOTS-1468;So;0;ON;;;;;N;;;;;
+28AA;BRAILLE PATTERN DOTS-2468;So;0;ON;;;;;N;;;;;
+28AB;BRAILLE PATTERN DOTS-12468;So;0;ON;;;;;N;;;;;
+28AC;BRAILLE PATTERN DOTS-3468;So;0;ON;;;;;N;;;;;
+28AD;BRAILLE PATTERN DOTS-13468;So;0;ON;;;;;N;;;;;
+28AE;BRAILLE PATTERN DOTS-23468;So;0;ON;;;;;N;;;;;
+28AF;BRAILLE PATTERN DOTS-123468;So;0;ON;;;;;N;;;;;
+28B0;BRAILLE PATTERN DOTS-568;So;0;ON;;;;;N;;;;;
+28B1;BRAILLE PATTERN DOTS-1568;So;0;ON;;;;;N;;;;;
+28B2;BRAILLE PATTERN DOTS-2568;So;0;ON;;;;;N;;;;;
+28B3;BRAILLE PATTERN DOTS-12568;So;0;ON;;;;;N;;;;;
+28B4;BRAILLE PATTERN DOTS-3568;So;0;ON;;;;;N;;;;;
+28B5;BRAILLE PATTERN DOTS-13568;So;0;ON;;;;;N;;;;;
+28B6;BRAILLE PATTERN DOTS-23568;So;0;ON;;;;;N;;;;;
+28B7;BRAILLE PATTERN DOTS-123568;So;0;ON;;;;;N;;;;;
+28B8;BRAILLE PATTERN DOTS-4568;So;0;ON;;;;;N;;;;;
+28B9;BRAILLE PATTERN DOTS-14568;So;0;ON;;;;;N;;;;;
+28BA;BRAILLE PATTERN DOTS-24568;So;0;ON;;;;;N;;;;;
+28BB;BRAILLE PATTERN DOTS-124568;So;0;ON;;;;;N;;;;;
+28BC;BRAILLE PATTERN DOTS-34568;So;0;ON;;;;;N;;;;;
+28BD;BRAILLE PATTERN DOTS-134568;So;0;ON;;;;;N;;;;;
+28BE;BRAILLE PATTERN DOTS-234568;So;0;ON;;;;;N;;;;;
+28BF;BRAILLE PATTERN DOTS-1234568;So;0;ON;;;;;N;;;;;
+28C0;BRAILLE PATTERN DOTS-78;So;0;ON;;;;;N;;;;;
+28C1;BRAILLE PATTERN DOTS-178;So;0;ON;;;;;N;;;;;
+28C2;BRAILLE PATTERN DOTS-278;So;0;ON;;;;;N;;;;;
+28C3;BRAILLE PATTERN DOTS-1278;So;0;ON;;;;;N;;;;;
+28C4;BRAILLE PATTERN DOTS-378;So;0;ON;;;;;N;;;;;
+28C5;BRAILLE PATTERN DOTS-1378;So;0;ON;;;;;N;;;;;
+28C6;BRAILLE PATTERN DOTS-2378;So;0;ON;;;;;N;;;;;
+28C7;BRAILLE PATTERN DOTS-12378;So;0;ON;;;;;N;;;;;
+28C8;BRAILLE PATTERN DOTS-478;So;0;ON;;;;;N;;;;;
+28C9;BRAILLE PATTERN DOTS-1478;So;0;ON;;;;;N;;;;;
+28CA;BRAILLE PATTERN DOTS-2478;So;0;ON;;;;;N;;;;;
+28CB;BRAILLE PATTERN DOTS-12478;So;0;ON;;;;;N;;;;;
+28CC;BRAILLE PATTERN DOTS-3478;So;0;ON;;;;;N;;;;;
+28CD;BRAILLE PATTERN DOTS-13478;So;0;ON;;;;;N;;;;;
+28CE;BRAILLE PATTERN DOTS-23478;So;0;ON;;;;;N;;;;;
+28CF;BRAILLE PATTERN DOTS-123478;So;0;ON;;;;;N;;;;;
+28D0;BRAILLE PATTERN DOTS-578;So;0;ON;;;;;N;;;;;
+28D1;BRAILLE PATTERN DOTS-1578;So;0;ON;;;;;N;;;;;
+28D2;BRAILLE PATTERN DOTS-2578;So;0;ON;;;;;N;;;;;
+28D3;BRAILLE PATTERN DOTS-12578;So;0;ON;;;;;N;;;;;
+28D4;BRAILLE PATTERN DOTS-3578;So;0;ON;;;;;N;;;;;
+28D5;BRAILLE PATTERN DOTS-13578;So;0;ON;;;;;N;;;;;
+28D6;BRAILLE PATTERN DOTS-23578;So;0;ON;;;;;N;;;;;
+28D7;BRAILLE PATTERN DOTS-123578;So;0;ON;;;;;N;;;;;
+28D8;BRAILLE PATTERN DOTS-4578;So;0;ON;;;;;N;;;;;
+28D9;BRAILLE PATTERN DOTS-14578;So;0;ON;;;;;N;;;;;
+28DA;BRAILLE PATTERN DOTS-24578;So;0;ON;;;;;N;;;;;
+28DB;BRAILLE PATTERN DOTS-124578;So;0;ON;;;;;N;;;;;
+28DC;BRAILLE PATTERN DOTS-34578;So;0;ON;;;;;N;;;;;
+28DD;BRAILLE PATTERN DOTS-134578;So;0;ON;;;;;N;;;;;
+28DE;BRAILLE PATTERN DOTS-234578;So;0;ON;;;;;N;;;;;
+28DF;BRAILLE PATTERN DOTS-1234578;So;0;ON;;;;;N;;;;;
+28E0;BRAILLE PATTERN DOTS-678;So;0;ON;;;;;N;;;;;
+28E1;BRAILLE PATTERN DOTS-1678;So;0;ON;;;;;N;;;;;
+28E2;BRAILLE PATTERN DOTS-2678;So;0;ON;;;;;N;;;;;
+28E3;BRAILLE PATTERN DOTS-12678;So;0;ON;;;;;N;;;;;
+28E4;BRAILLE PATTERN DOTS-3678;So;0;ON;;;;;N;;;;;
+28E5;BRAILLE PATTERN DOTS-13678;So;0;ON;;;;;N;;;;;
+28E6;BRAILLE PATTERN DOTS-23678;So;0;ON;;;;;N;;;;;
+28E7;BRAILLE PATTERN DOTS-123678;So;0;ON;;;;;N;;;;;
+28E8;BRAILLE PATTERN DOTS-4678;So;0;ON;;;;;N;;;;;
+28E9;BRAILLE PATTERN DOTS-14678;So;0;ON;;;;;N;;;;;
+28EA;BRAILLE PATTERN DOTS-24678;So;0;ON;;;;;N;;;;;
+28EB;BRAILLE PATTERN DOTS-124678;So;0;ON;;;;;N;;;;;
+28EC;BRAILLE PATTERN DOTS-34678;So;0;ON;;;;;N;;;;;
+28ED;BRAILLE PATTERN DOTS-134678;So;0;ON;;;;;N;;;;;
+28EE;BRAILLE PATTERN DOTS-234678;So;0;ON;;;;;N;;;;;
+28EF;BRAILLE PATTERN DOTS-1234678;So;0;ON;;;;;N;;;;;
+28F0;BRAILLE PATTERN DOTS-5678;So;0;ON;;;;;N;;;;;
+28F1;BRAILLE PATTERN DOTS-15678;So;0;ON;;;;;N;;;;;
+28F2;BRAILLE PATTERN DOTS-25678;So;0;ON;;;;;N;;;;;
+28F3;BRAILLE PATTERN DOTS-125678;So;0;ON;;;;;N;;;;;
+28F4;BRAILLE PATTERN DOTS-35678;So;0;ON;;;;;N;;;;;
+28F5;BRAILLE PATTERN DOTS-135678;So;0;ON;;;;;N;;;;;
+28F6;BRAILLE PATTERN DOTS-235678;So;0;ON;;;;;N;;;;;
+28F7;BRAILLE PATTERN DOTS-1235678;So;0;ON;;;;;N;;;;;
+28F8;BRAILLE PATTERN DOTS-45678;So;0;ON;;;;;N;;;;;
+28F9;BRAILLE PATTERN DOTS-145678;So;0;ON;;;;;N;;;;;
+28FA;BRAILLE PATTERN DOTS-245678;So;0;ON;;;;;N;;;;;
+28FB;BRAILLE PATTERN DOTS-1245678;So;0;ON;;;;;N;;;;;
+28FC;BRAILLE PATTERN DOTS-345678;So;0;ON;;;;;N;;;;;
+28FD;BRAILLE PATTERN DOTS-1345678;So;0;ON;;;;;N;;;;;
+28FE;BRAILLE PATTERN DOTS-2345678;So;0;ON;;;;;N;;;;;
+28FF;BRAILLE PATTERN DOTS-12345678;So;0;ON;;;;;N;;;;;
+2E80;CJK RADICAL REPEAT;So;0;ON;;;;;N;;;;;
+2E81;CJK RADICAL CLIFF;So;0;ON;;;;;N;;;;;
+2E82;CJK RADICAL SECOND ONE;So;0;ON;;;;;N;;;;;
+2E83;CJK RADICAL SECOND TWO;So;0;ON;;;;;N;;;;;
+2E84;CJK RADICAL SECOND THREE;So;0;ON;;;;;N;;;;;
+2E85;CJK RADICAL PERSON;So;0;ON;;;;;N;;;;;
+2E86;CJK RADICAL BOX;So;0;ON;;;;;N;;;;;
+2E87;CJK RADICAL TABLE;So;0;ON;;;;;N;;;;;
+2E88;CJK RADICAL KNIFE ONE;So;0;ON;;;;;N;;;;;
+2E89;CJK RADICAL KNIFE TWO;So;0;ON;;;;;N;;;;;
+2E8A;CJK RADICAL DIVINATION;So;0;ON;;;;;N;;;;;
+2E8B;CJK RADICAL SEAL;So;0;ON;;;;;N;;;;;
+2E8C;CJK RADICAL SMALL ONE;So;0;ON;;;;;N;;;;;
+2E8D;CJK RADICAL SMALL TWO;So;0;ON;;;;;N;;;;;
+2E8E;CJK RADICAL LAME ONE;So;0;ON;;;;;N;;;;;
+2E8F;CJK RADICAL LAME TWO;So;0;ON;;;;;N;;;;;
+2E90;CJK RADICAL LAME THREE;So;0;ON;;;;;N;;;;;
+2E91;CJK RADICAL LAME FOUR;So;0;ON;;;;;N;;;;;
+2E92;CJK RADICAL SNAKE;So;0;ON;;;;;N;;;;;
+2E93;CJK RADICAL THREAD;So;0;ON;;;;;N;;;;;
+2E94;CJK RADICAL SNOUT ONE;So;0;ON;;;;;N;;;;;
+2E95;CJK RADICAL SNOUT TWO;So;0;ON;;;;;N;;;;;
+2E96;CJK RADICAL HEART ONE;So;0;ON;;;;;N;;;;;
+2E97;CJK RADICAL HEART TWO;So;0;ON;;;;;N;;;;;
+2E98;CJK RADICAL HAND;So;0;ON;;;;;N;;;;;
+2E99;CJK RADICAL RAP;So;0;ON;;;;;N;;;;;
+2E9B;CJK RADICAL CHOKE;So;0;ON;;;;;N;;;;;
+2E9C;CJK RADICAL SUN;So;0;ON;;;;;N;;;;;
+2E9D;CJK RADICAL MOON;So;0;ON;;;;;N;;;;;
+2E9E;CJK RADICAL DEATH;So;0;ON;;;;;N;;;;;
+2E9F;CJK RADICAL MOTHER;So;0;ON;<compat> 6BCD;;;;N;;;;;
+2EA0;CJK RADICAL CIVILIAN;So;0;ON;;;;;N;;;;;
+2EA1;CJK RADICAL WATER ONE;So;0;ON;;;;;N;;;;;
+2EA2;CJK RADICAL WATER TWO;So;0;ON;;;;;N;;;;;
+2EA3;CJK RADICAL FIRE;So;0;ON;;;;;N;;;;;
+2EA4;CJK RADICAL PAW ONE;So;0;ON;;;;;N;;;;;
+2EA5;CJK RADICAL PAW TWO;So;0;ON;;;;;N;;;;;
+2EA6;CJK RADICAL SIMPLIFIED HALF TREE TRUNK;So;0;ON;;;;;N;;;;;
+2EA7;CJK RADICAL COW;So;0;ON;;;;;N;;;;;
+2EA8;CJK RADICAL DOG;So;0;ON;;;;;N;;;;;
+2EA9;CJK RADICAL JADE;So;0;ON;;;;;N;;;;;
+2EAA;CJK RADICAL BOLT OF CLOTH;So;0;ON;;;;;N;;;;;
+2EAB;CJK RADICAL EYE;So;0;ON;;;;;N;;;;;
+2EAC;CJK RADICAL SPIRIT ONE;So;0;ON;;;;;N;;;;;
+2EAD;CJK RADICAL SPIRIT TWO;So;0;ON;;;;;N;;;;;
+2EAE;CJK RADICAL BAMBOO;So;0;ON;;;;;N;;;;;
+2EAF;CJK RADICAL SILK;So;0;ON;;;;;N;;;;;
+2EB0;CJK RADICAL C-SIMPLIFIED SILK;So;0;ON;;;;;N;;;;;
+2EB1;CJK RADICAL NET ONE;So;0;ON;;;;;N;;;;;
+2EB2;CJK RADICAL NET TWO;So;0;ON;;;;;N;;;;;
+2EB3;CJK RADICAL NET THREE;So;0;ON;;;;;N;;;;;
+2EB4;CJK RADICAL NET FOUR;So;0;ON;;;;;N;;;;;
+2EB5;CJK RADICAL MESH;So;0;ON;;;;;N;;;;;
+2EB6;CJK RADICAL SHEEP;So;0;ON;;;;;N;;;;;
+2EB7;CJK RADICAL RAM;So;0;ON;;;;;N;;;;;
+2EB8;CJK RADICAL EWE;So;0;ON;;;;;N;;;;;
+2EB9;CJK RADICAL OLD;So;0;ON;;;;;N;;;;;
+2EBA;CJK RADICAL BRUSH ONE;So;0;ON;;;;;N;;;;;
+2EBB;CJK RADICAL BRUSH TWO;So;0;ON;;;;;N;;;;;
+2EBC;CJK RADICAL MEAT;So;0;ON;;;;;N;;;;;
+2EBD;CJK RADICAL MORTAR;So;0;ON;;;;;N;;;;;
+2EBE;CJK RADICAL GRASS ONE;So;0;ON;;;;;N;;;;;
+2EBF;CJK RADICAL GRASS TWO;So;0;ON;;;;;N;;;;;
+2EC0;CJK RADICAL GRASS THREE;So;0;ON;;;;;N;;;;;
+2EC1;CJK RADICAL TIGER;So;0;ON;;;;;N;;;;;
+2EC2;CJK RADICAL CLOTHES;So;0;ON;;;;;N;;;;;
+2EC3;CJK RADICAL WEST ONE;So;0;ON;;;;;N;;;;;
+2EC4;CJK RADICAL WEST TWO;So;0;ON;;;;;N;;;;;
+2EC5;CJK RADICAL C-SIMPLIFIED SEE;So;0;ON;;;;;N;;;;;
+2EC6;CJK RADICAL SIMPLIFIED HORN;So;0;ON;;;;;N;;;;;
+2EC7;CJK RADICAL HORN;So;0;ON;;;;;N;;;;;
+2EC8;CJK RADICAL C-SIMPLIFIED SPEECH;So;0;ON;;;;;N;;;;;
+2EC9;CJK RADICAL C-SIMPLIFIED SHELL;So;0;ON;;;;;N;;;;;
+2ECA;CJK RADICAL FOOT;So;0;ON;;;;;N;;;;;
+2ECB;CJK RADICAL C-SIMPLIFIED CART;So;0;ON;;;;;N;;;;;
+2ECC;CJK RADICAL SIMPLIFIED WALK;So;0;ON;;;;;N;;;;;
+2ECD;CJK RADICAL WALK ONE;So;0;ON;;;;;N;;;;;
+2ECE;CJK RADICAL WALK TWO;So;0;ON;;;;;N;;;;;
+2ECF;CJK RADICAL CITY;So;0;ON;;;;;N;;;;;
+2ED0;CJK RADICAL C-SIMPLIFIED GOLD;So;0;ON;;;;;N;;;;;
+2ED1;CJK RADICAL LONG ONE;So;0;ON;;;;;N;;;;;
+2ED2;CJK RADICAL LONG TWO;So;0;ON;;;;;N;;;;;
+2ED3;CJK RADICAL C-SIMPLIFIED LONG;So;0;ON;;;;;N;;;;;
+2ED4;CJK RADICAL C-SIMPLIFIED GATE;So;0;ON;;;;;N;;;;;
+2ED5;CJK RADICAL MOUND ONE;So;0;ON;;;;;N;;;;;
+2ED6;CJK RADICAL MOUND TWO;So;0;ON;;;;;N;;;;;
+2ED7;CJK RADICAL RAIN;So;0;ON;;;;;N;;;;;
+2ED8;CJK RADICAL BLUE;So;0;ON;;;;;N;;;;;
+2ED9;CJK RADICAL C-SIMPLIFIED TANNED LEATHER;So;0;ON;;;;;N;;;;;
+2EDA;CJK RADICAL C-SIMPLIFIED LEAF;So;0;ON;;;;;N;;;;;
+2EDB;CJK RADICAL C-SIMPLIFIED WIND;So;0;ON;;;;;N;;;;;
+2EDC;CJK RADICAL C-SIMPLIFIED FLY;So;0;ON;;;;;N;;;;;
+2EDD;CJK RADICAL EAT ONE;So;0;ON;;;;;N;;;;;
+2EDE;CJK RADICAL EAT TWO;So;0;ON;;;;;N;;;;;
+2EDF;CJK RADICAL EAT THREE;So;0;ON;;;;;N;;;;;
+2EE0;CJK RADICAL C-SIMPLIFIED EAT;So;0;ON;;;;;N;;;;;
+2EE1;CJK RADICAL HEAD;So;0;ON;;;;;N;;;;;
+2EE2;CJK RADICAL C-SIMPLIFIED HORSE;So;0;ON;;;;;N;;;;;
+2EE3;CJK RADICAL BONE;So;0;ON;;;;;N;;;;;
+2EE4;CJK RADICAL GHOST;So;0;ON;;;;;N;;;;;
+2EE5;CJK RADICAL C-SIMPLIFIED FISH;So;0;ON;;;;;N;;;;;
+2EE6;CJK RADICAL C-SIMPLIFIED BIRD;So;0;ON;;;;;N;;;;;
+2EE7;CJK RADICAL C-SIMPLIFIED SALT;So;0;ON;;;;;N;;;;;
+2EE8;CJK RADICAL SIMPLIFIED WHEAT;So;0;ON;;;;;N;;;;;
+2EE9;CJK RADICAL SIMPLIFIED YELLOW;So;0;ON;;;;;N;;;;;
+2EEA;CJK RADICAL C-SIMPLIFIED FROG;So;0;ON;;;;;N;;;;;
+2EEB;CJK RADICAL J-SIMPLIFIED EVEN;So;0;ON;;;;;N;;;;;
+2EEC;CJK RADICAL C-SIMPLIFIED EVEN;So;0;ON;;;;;N;;;;;
+2EED;CJK RADICAL J-SIMPLIFIED TOOTH;So;0;ON;;;;;N;;;;;
+2EEE;CJK RADICAL C-SIMPLIFIED TOOTH;So;0;ON;;;;;N;;;;;
+2EEF;CJK RADICAL J-SIMPLIFIED DRAGON;So;0;ON;;;;;N;;;;;
+2EF0;CJK RADICAL C-SIMPLIFIED DRAGON;So;0;ON;;;;;N;;;;;
+2EF1;CJK RADICAL TURTLE;So;0;ON;;;;;N;;;;;
+2EF2;CJK RADICAL J-SIMPLIFIED TURTLE;So;0;ON;;;;;N;;;;;
+2EF3;CJK RADICAL C-SIMPLIFIED TURTLE;So;0;ON;<compat> 9F9F;;;;N;;;;;
+2F00;KANGXI RADICAL ONE;So;0;ON;<compat> 4E00;;;;N;;;;;
+2F01;KANGXI RADICAL LINE;So;0;ON;<compat> 4E28;;;;N;;;;;
+2F02;KANGXI RADICAL DOT;So;0;ON;<compat> 4E36;;;;N;;;;;
+2F03;KANGXI RADICAL SLASH;So;0;ON;<compat> 4E3F;;;;N;;;;;
+2F04;KANGXI RADICAL SECOND;So;0;ON;<compat> 4E59;;;;N;;;;;
+2F05;KANGXI RADICAL HOOK;So;0;ON;<compat> 4E85;;;;N;;;;;
+2F06;KANGXI RADICAL TWO;So;0;ON;<compat> 4E8C;;;;N;;;;;
+2F07;KANGXI RADICAL LID;So;0;ON;<compat> 4EA0;;;;N;;;;;
+2F08;KANGXI RADICAL MAN;So;0;ON;<compat> 4EBA;;;;N;;;;;
+2F09;KANGXI RADICAL LEGS;So;0;ON;<compat> 513F;;;;N;;;;;
+2F0A;KANGXI RADICAL ENTER;So;0;ON;<compat> 5165;;;;N;;;;;
+2F0B;KANGXI RADICAL EIGHT;So;0;ON;<compat> 516B;;;;N;;;;;
+2F0C;KANGXI RADICAL DOWN BOX;So;0;ON;<compat> 5182;;;;N;;;;;
+2F0D;KANGXI RADICAL COVER;So;0;ON;<compat> 5196;;;;N;;;;;
+2F0E;KANGXI RADICAL ICE;So;0;ON;<compat> 51AB;;;;N;;;;;
+2F0F;KANGXI RADICAL TABLE;So;0;ON;<compat> 51E0;;;;N;;;;;
+2F10;KANGXI RADICAL OPEN BOX;So;0;ON;<compat> 51F5;;;;N;;;;;
+2F11;KANGXI RADICAL KNIFE;So;0;ON;<compat> 5200;;;;N;;;;;
+2F12;KANGXI RADICAL POWER;So;0;ON;<compat> 529B;;;;N;;;;;
+2F13;KANGXI RADICAL WRAP;So;0;ON;<compat> 52F9;;;;N;;;;;
+2F14;KANGXI RADICAL SPOON;So;0;ON;<compat> 5315;;;;N;;;;;
+2F15;KANGXI RADICAL RIGHT OPEN BOX;So;0;ON;<compat> 531A;;;;N;;;;;
+2F16;KANGXI RADICAL HIDING ENCLOSURE;So;0;ON;<compat> 5338;;;;N;;;;;
+2F17;KANGXI RADICAL TEN;So;0;ON;<compat> 5341;;;;N;;;;;
+2F18;KANGXI RADICAL DIVINATION;So;0;ON;<compat> 535C;;;;N;;;;;
+2F19;KANGXI RADICAL SEAL;So;0;ON;<compat> 5369;;;;N;;;;;
+2F1A;KANGXI RADICAL CLIFF;So;0;ON;<compat> 5382;;;;N;;;;;
+2F1B;KANGXI RADICAL PRIVATE;So;0;ON;<compat> 53B6;;;;N;;;;;
+2F1C;KANGXI RADICAL AGAIN;So;0;ON;<compat> 53C8;;;;N;;;;;
+2F1D;KANGXI RADICAL MOUTH;So;0;ON;<compat> 53E3;;;;N;;;;;
+2F1E;KANGXI RADICAL ENCLOSURE;So;0;ON;<compat> 56D7;;;;N;;;;;
+2F1F;KANGXI RADICAL EARTH;So;0;ON;<compat> 571F;;;;N;;;;;
+2F20;KANGXI RADICAL SCHOLAR;So;0;ON;<compat> 58EB;;;;N;;;;;
+2F21;KANGXI RADICAL GO;So;0;ON;<compat> 5902;;;;N;;;;;
+2F22;KANGXI RADICAL GO SLOWLY;So;0;ON;<compat> 590A;;;;N;;;;;
+2F23;KANGXI RADICAL EVENING;So;0;ON;<compat> 5915;;;;N;;;;;
+2F24;KANGXI RADICAL BIG;So;0;ON;<compat> 5927;;;;N;;;;;
+2F25;KANGXI RADICAL WOMAN;So;0;ON;<compat> 5973;;;;N;;;;;
+2F26;KANGXI RADICAL CHILD;So;0;ON;<compat> 5B50;;;;N;;;;;
+2F27;KANGXI RADICAL ROOF;So;0;ON;<compat> 5B80;;;;N;;;;;
+2F28;KANGXI RADICAL INCH;So;0;ON;<compat> 5BF8;;;;N;;;;;
+2F29;KANGXI RADICAL SMALL;So;0;ON;<compat> 5C0F;;;;N;;;;;
+2F2A;KANGXI RADICAL LAME;So;0;ON;<compat> 5C22;;;;N;;;;;
+2F2B;KANGXI RADICAL CORPSE;So;0;ON;<compat> 5C38;;;;N;;;;;
+2F2C;KANGXI RADICAL SPROUT;So;0;ON;<compat> 5C6E;;;;N;;;;;
+2F2D;KANGXI RADICAL MOUNTAIN;So;0;ON;<compat> 5C71;;;;N;;;;;
+2F2E;KANGXI RADICAL RIVER;So;0;ON;<compat> 5DDB;;;;N;;;;;
+2F2F;KANGXI RADICAL WORK;So;0;ON;<compat> 5DE5;;;;N;;;;;
+2F30;KANGXI RADICAL ONESELF;So;0;ON;<compat> 5DF1;;;;N;;;;;
+2F31;KANGXI RADICAL TURBAN;So;0;ON;<compat> 5DFE;;;;N;;;;;
+2F32;KANGXI RADICAL DRY;So;0;ON;<compat> 5E72;;;;N;;;;;
+2F33;KANGXI RADICAL SHORT THREAD;So;0;ON;<compat> 5E7A;;;;N;;;;;
+2F34;KANGXI RADICAL DOTTED CLIFF;So;0;ON;<compat> 5E7F;;;;N;;;;;
+2F35;KANGXI RADICAL LONG STRIDE;So;0;ON;<compat> 5EF4;;;;N;;;;;
+2F36;KANGXI RADICAL TWO HANDS;So;0;ON;<compat> 5EFE;;;;N;;;;;
+2F37;KANGXI RADICAL SHOOT;So;0;ON;<compat> 5F0B;;;;N;;;;;
+2F38;KANGXI RADICAL BOW;So;0;ON;<compat> 5F13;;;;N;;;;;
+2F39;KANGXI RADICAL SNOUT;So;0;ON;<compat> 5F50;;;;N;;;;;
+2F3A;KANGXI RADICAL BRISTLE;So;0;ON;<compat> 5F61;;;;N;;;;;
+2F3B;KANGXI RADICAL STEP;So;0;ON;<compat> 5F73;;;;N;;;;;
+2F3C;KANGXI RADICAL HEART;So;0;ON;<compat> 5FC3;;;;N;;;;;
+2F3D;KANGXI RADICAL HALBERD;So;0;ON;<compat> 6208;;;;N;;;;;
+2F3E;KANGXI RADICAL DOOR;So;0;ON;<compat> 6236;;;;N;;;;;
+2F3F;KANGXI RADICAL HAND;So;0;ON;<compat> 624B;;;;N;;;;;
+2F40;KANGXI RADICAL BRANCH;So;0;ON;<compat> 652F;;;;N;;;;;
+2F41;KANGXI RADICAL RAP;So;0;ON;<compat> 6534;;;;N;;;;;
+2F42;KANGXI RADICAL SCRIPT;So;0;ON;<compat> 6587;;;;N;;;;;
+2F43;KANGXI RADICAL DIPPER;So;0;ON;<compat> 6597;;;;N;;;;;
+2F44;KANGXI RADICAL AXE;So;0;ON;<compat> 65A4;;;;N;;;;;
+2F45;KANGXI RADICAL SQUARE;So;0;ON;<compat> 65B9;;;;N;;;;;
+2F46;KANGXI RADICAL NOT;So;0;ON;<compat> 65E0;;;;N;;;;;
+2F47;KANGXI RADICAL SUN;So;0;ON;<compat> 65E5;;;;N;;;;;
+2F48;KANGXI RADICAL SAY;So;0;ON;<compat> 66F0;;;;N;;;;;
+2F49;KANGXI RADICAL MOON;So;0;ON;<compat> 6708;;;;N;;;;;
+2F4A;KANGXI RADICAL TREE;So;0;ON;<compat> 6728;;;;N;;;;;
+2F4B;KANGXI RADICAL LACK;So;0;ON;<compat> 6B20;;;;N;;;;;
+2F4C;KANGXI RADICAL STOP;So;0;ON;<compat> 6B62;;;;N;;;;;
+2F4D;KANGXI RADICAL DEATH;So;0;ON;<compat> 6B79;;;;N;;;;;
+2F4E;KANGXI RADICAL WEAPON;So;0;ON;<compat> 6BB3;;;;N;;;;;
+2F4F;KANGXI RADICAL DO NOT;So;0;ON;<compat> 6BCB;;;;N;;;;;
+2F50;KANGXI RADICAL COMPARE;So;0;ON;<compat> 6BD4;;;;N;;;;;
+2F51;KANGXI RADICAL FUR;So;0;ON;<compat> 6BDB;;;;N;;;;;
+2F52;KANGXI RADICAL CLAN;So;0;ON;<compat> 6C0F;;;;N;;;;;
+2F53;KANGXI RADICAL STEAM;So;0;ON;<compat> 6C14;;;;N;;;;;
+2F54;KANGXI RADICAL WATER;So;0;ON;<compat> 6C34;;;;N;;;;;
+2F55;KANGXI RADICAL FIRE;So;0;ON;<compat> 706B;;;;N;;;;;
+2F56;KANGXI RADICAL CLAW;So;0;ON;<compat> 722A;;;;N;;;;;
+2F57;KANGXI RADICAL FATHER;So;0;ON;<compat> 7236;;;;N;;;;;
+2F58;KANGXI RADICAL DOUBLE X;So;0;ON;<compat> 723B;;;;N;;;;;
+2F59;KANGXI RADICAL HALF TREE TRUNK;So;0;ON;<compat> 723F;;;;N;;;;;
+2F5A;KANGXI RADICAL SLICE;So;0;ON;<compat> 7247;;;;N;;;;;
+2F5B;KANGXI RADICAL FANG;So;0;ON;<compat> 7259;;;;N;;;;;
+2F5C;KANGXI RADICAL COW;So;0;ON;<compat> 725B;;;;N;;;;;
+2F5D;KANGXI RADICAL DOG;So;0;ON;<compat> 72AC;;;;N;;;;;
+2F5E;KANGXI RADICAL PROFOUND;So;0;ON;<compat> 7384;;;;N;;;;;
+2F5F;KANGXI RADICAL JADE;So;0;ON;<compat> 7389;;;;N;;;;;
+2F60;KANGXI RADICAL MELON;So;0;ON;<compat> 74DC;;;;N;;;;;
+2F61;KANGXI RADICAL TILE;So;0;ON;<compat> 74E6;;;;N;;;;;
+2F62;KANGXI RADICAL SWEET;So;0;ON;<compat> 7518;;;;N;;;;;
+2F63;KANGXI RADICAL LIFE;So;0;ON;<compat> 751F;;;;N;;;;;
+2F64;KANGXI RADICAL USE;So;0;ON;<compat> 7528;;;;N;;;;;
+2F65;KANGXI RADICAL FIELD;So;0;ON;<compat> 7530;;;;N;;;;;
+2F66;KANGXI RADICAL BOLT OF CLOTH;So;0;ON;<compat> 758B;;;;N;;;;;
+2F67;KANGXI RADICAL SICKNESS;So;0;ON;<compat> 7592;;;;N;;;;;
+2F68;KANGXI RADICAL DOTTED TENT;So;0;ON;<compat> 7676;;;;N;;;;;
+2F69;KANGXI RADICAL WHITE;So;0;ON;<compat> 767D;;;;N;;;;;
+2F6A;KANGXI RADICAL SKIN;So;0;ON;<compat> 76AE;;;;N;;;;;
+2F6B;KANGXI RADICAL DISH;So;0;ON;<compat> 76BF;;;;N;;;;;
+2F6C;KANGXI RADICAL EYE;So;0;ON;<compat> 76EE;;;;N;;;;;
+2F6D;KANGXI RADICAL SPEAR;So;0;ON;<compat> 77DB;;;;N;;;;;
+2F6E;KANGXI RADICAL ARROW;So;0;ON;<compat> 77E2;;;;N;;;;;
+2F6F;KANGXI RADICAL STONE;So;0;ON;<compat> 77F3;;;;N;;;;;
+2F70;KANGXI RADICAL SPIRIT;So;0;ON;<compat> 793A;;;;N;;;;;
+2F71;KANGXI RADICAL TRACK;So;0;ON;<compat> 79B8;;;;N;;;;;
+2F72;KANGXI RADICAL GRAIN;So;0;ON;<compat> 79BE;;;;N;;;;;
+2F73;KANGXI RADICAL CAVE;So;0;ON;<compat> 7A74;;;;N;;;;;
+2F74;KANGXI RADICAL STAND;So;0;ON;<compat> 7ACB;;;;N;;;;;
+2F75;KANGXI RADICAL BAMBOO;So;0;ON;<compat> 7AF9;;;;N;;;;;
+2F76;KANGXI RADICAL RICE;So;0;ON;<compat> 7C73;;;;N;;;;;
+2F77;KANGXI RADICAL SILK;So;0;ON;<compat> 7CF8;;;;N;;;;;
+2F78;KANGXI RADICAL JAR;So;0;ON;<compat> 7F36;;;;N;;;;;
+2F79;KANGXI RADICAL NET;So;0;ON;<compat> 7F51;;;;N;;;;;
+2F7A;KANGXI RADICAL SHEEP;So;0;ON;<compat> 7F8A;;;;N;;;;;
+2F7B;KANGXI RADICAL FEATHER;So;0;ON;<compat> 7FBD;;;;N;;;;;
+2F7C;KANGXI RADICAL OLD;So;0;ON;<compat> 8001;;;;N;;;;;
+2F7D;KANGXI RADICAL AND;So;0;ON;<compat> 800C;;;;N;;;;;
+2F7E;KANGXI RADICAL PLOW;So;0;ON;<compat> 8012;;;;N;;;;;
+2F7F;KANGXI RADICAL EAR;So;0;ON;<compat> 8033;;;;N;;;;;
+2F80;KANGXI RADICAL BRUSH;So;0;ON;<compat> 807F;;;;N;;;;;
+2F81;KANGXI RADICAL MEAT;So;0;ON;<compat> 8089;;;;N;;;;;
+2F82;KANGXI RADICAL MINISTER;So;0;ON;<compat> 81E3;;;;N;;;;;
+2F83;KANGXI RADICAL SELF;So;0;ON;<compat> 81EA;;;;N;;;;;
+2F84;KANGXI RADICAL ARRIVE;So;0;ON;<compat> 81F3;;;;N;;;;;
+2F85;KANGXI RADICAL MORTAR;So;0;ON;<compat> 81FC;;;;N;;;;;
+2F86;KANGXI RADICAL TONGUE;So;0;ON;<compat> 820C;;;;N;;;;;
+2F87;KANGXI RADICAL OPPOSE;So;0;ON;<compat> 821B;;;;N;;;;;
+2F88;KANGXI RADICAL BOAT;So;0;ON;<compat> 821F;;;;N;;;;;
+2F89;KANGXI RADICAL STOPPING;So;0;ON;<compat> 826E;;;;N;;;;;
+2F8A;KANGXI RADICAL COLOR;So;0;ON;<compat> 8272;;;;N;;;;;
+2F8B;KANGXI RADICAL GRASS;So;0;ON;<compat> 8278;;;;N;;;;;
+2F8C;KANGXI RADICAL TIGER;So;0;ON;<compat> 864D;;;;N;;;;;
+2F8D;KANGXI RADICAL INSECT;So;0;ON;<compat> 866B;;;;N;;;;;
+2F8E;KANGXI RADICAL BLOOD;So;0;ON;<compat> 8840;;;;N;;;;;
+2F8F;KANGXI RADICAL WALK ENCLOSURE;So;0;ON;<compat> 884C;;;;N;;;;;
+2F90;KANGXI RADICAL CLOTHES;So;0;ON;<compat> 8863;;;;N;;;;;
+2F91;KANGXI RADICAL WEST;So;0;ON;<compat> 897E;;;;N;;;;;
+2F92;KANGXI RADICAL SEE;So;0;ON;<compat> 898B;;;;N;;;;;
+2F93;KANGXI RADICAL HORN;So;0;ON;<compat> 89D2;;;;N;;;;;
+2F94;KANGXI RADICAL SPEECH;So;0;ON;<compat> 8A00;;;;N;;;;;
+2F95;KANGXI RADICAL VALLEY;So;0;ON;<compat> 8C37;;;;N;;;;;
+2F96;KANGXI RADICAL BEAN;So;0;ON;<compat> 8C46;;;;N;;;;;
+2F97;KANGXI RADICAL PIG;So;0;ON;<compat> 8C55;;;;N;;;;;
+2F98;KANGXI RADICAL BADGER;So;0;ON;<compat> 8C78;;;;N;;;;;
+2F99;KANGXI RADICAL SHELL;So;0;ON;<compat> 8C9D;;;;N;;;;;
+2F9A;KANGXI RADICAL RED;So;0;ON;<compat> 8D64;;;;N;;;;;
+2F9B;KANGXI RADICAL RUN;So;0;ON;<compat> 8D70;;;;N;;;;;
+2F9C;KANGXI RADICAL FOOT;So;0;ON;<compat> 8DB3;;;;N;;;;;
+2F9D;KANGXI RADICAL BODY;So;0;ON;<compat> 8EAB;;;;N;;;;;
+2F9E;KANGXI RADICAL CART;So;0;ON;<compat> 8ECA;;;;N;;;;;
+2F9F;KANGXI RADICAL BITTER;So;0;ON;<compat> 8F9B;;;;N;;;;;
+2FA0;KANGXI RADICAL MORNING;So;0;ON;<compat> 8FB0;;;;N;;;;;
+2FA1;KANGXI RADICAL WALK;So;0;ON;<compat> 8FB5;;;;N;;;;;
+2FA2;KANGXI RADICAL CITY;So;0;ON;<compat> 9091;;;;N;;;;;
+2FA3;KANGXI RADICAL WINE;So;0;ON;<compat> 9149;;;;N;;;;;
+2FA4;KANGXI RADICAL DISTINGUISH;So;0;ON;<compat> 91C6;;;;N;;;;;
+2FA5;KANGXI RADICAL VILLAGE;So;0;ON;<compat> 91CC;;;;N;;;;;
+2FA6;KANGXI RADICAL GOLD;So;0;ON;<compat> 91D1;;;;N;;;;;
+2FA7;KANGXI RADICAL LONG;So;0;ON;<compat> 9577;;;;N;;;;;
+2FA8;KANGXI RADICAL GATE;So;0;ON;<compat> 9580;;;;N;;;;;
+2FA9;KANGXI RADICAL MOUND;So;0;ON;<compat> 961C;;;;N;;;;;
+2FAA;KANGXI RADICAL SLAVE;So;0;ON;<compat> 96B6;;;;N;;;;;
+2FAB;KANGXI RADICAL SHORT TAILED BIRD;So;0;ON;<compat> 96B9;;;;N;;;;;
+2FAC;KANGXI RADICAL RAIN;So;0;ON;<compat> 96E8;;;;N;;;;;
+2FAD;KANGXI RADICAL BLUE;So;0;ON;<compat> 9751;;;;N;;;;;
+2FAE;KANGXI RADICAL WRONG;So;0;ON;<compat> 975E;;;;N;;;;;
+2FAF;KANGXI RADICAL FACE;So;0;ON;<compat> 9762;;;;N;;;;;
+2FB0;KANGXI RADICAL LEATHER;So;0;ON;<compat> 9769;;;;N;;;;;
+2FB1;KANGXI RADICAL TANNED LEATHER;So;0;ON;<compat> 97CB;;;;N;;;;;
+2FB2;KANGXI RADICAL LEEK;So;0;ON;<compat> 97ED;;;;N;;;;;
+2FB3;KANGXI RADICAL SOUND;So;0;ON;<compat> 97F3;;;;N;;;;;
+2FB4;KANGXI RADICAL LEAF;So;0;ON;<compat> 9801;;;;N;;;;;
+2FB5;KANGXI RADICAL WIND;So;0;ON;<compat> 98A8;;;;N;;;;;
+2FB6;KANGXI RADICAL FLY;So;0;ON;<compat> 98DB;;;;N;;;;;
+2FB7;KANGXI RADICAL EAT;So;0;ON;<compat> 98DF;;;;N;;;;;
+2FB8;KANGXI RADICAL HEAD;So;0;ON;<compat> 9996;;;;N;;;;;
+2FB9;KANGXI RADICAL FRAGRANT;So;0;ON;<compat> 9999;;;;N;;;;;
+2FBA;KANGXI RADICAL HORSE;So;0;ON;<compat> 99AC;;;;N;;;;;
+2FBB;KANGXI RADICAL BONE;So;0;ON;<compat> 9AA8;;;;N;;;;;
+2FBC;KANGXI RADICAL TALL;So;0;ON;<compat> 9AD8;;;;N;;;;;
+2FBD;KANGXI RADICAL HAIR;So;0;ON;<compat> 9ADF;;;;N;;;;;
+2FBE;KANGXI RADICAL FIGHT;So;0;ON;<compat> 9B25;;;;N;;;;;
+2FBF;KANGXI RADICAL SACRIFICIAL WINE;So;0;ON;<compat> 9B2F;;;;N;;;;;
+2FC0;KANGXI RADICAL CAULDRON;So;0;ON;<compat> 9B32;;;;N;;;;;
+2FC1;KANGXI RADICAL GHOST;So;0;ON;<compat> 9B3C;;;;N;;;;;
+2FC2;KANGXI RADICAL FISH;So;0;ON;<compat> 9B5A;;;;N;;;;;
+2FC3;KANGXI RADICAL BIRD;So;0;ON;<compat> 9CE5;;;;N;;;;;
+2FC4;KANGXI RADICAL SALT;So;0;ON;<compat> 9E75;;;;N;;;;;
+2FC5;KANGXI RADICAL DEER;So;0;ON;<compat> 9E7F;;;;N;;;;;
+2FC6;KANGXI RADICAL WHEAT;So;0;ON;<compat> 9EA5;;;;N;;;;;
+2FC7;KANGXI RADICAL HEMP;So;0;ON;<compat> 9EBB;;;;N;;;;;
+2FC8;KANGXI RADICAL YELLOW;So;0;ON;<compat> 9EC3;;;;N;;;;;
+2FC9;KANGXI RADICAL MILLET;So;0;ON;<compat> 9ECD;;;;N;;;;;
+2FCA;KANGXI RADICAL BLACK;So;0;ON;<compat> 9ED1;;;;N;;;;;
+2FCB;KANGXI RADICAL EMBROIDERY;So;0;ON;<compat> 9EF9;;;;N;;;;;
+2FCC;KANGXI RADICAL FROG;So;0;ON;<compat> 9EFD;;;;N;;;;;
+2FCD;KANGXI RADICAL TRIPOD;So;0;ON;<compat> 9F0E;;;;N;;;;;
+2FCE;KANGXI RADICAL DRUM;So;0;ON;<compat> 9F13;;;;N;;;;;
+2FCF;KANGXI RADICAL RAT;So;0;ON;<compat> 9F20;;;;N;;;;;
+2FD0;KANGXI RADICAL NOSE;So;0;ON;<compat> 9F3B;;;;N;;;;;
+2FD1;KANGXI RADICAL EVEN;So;0;ON;<compat> 9F4A;;;;N;;;;;
+2FD2;KANGXI RADICAL TOOTH;So;0;ON;<compat> 9F52;;;;N;;;;;
+2FD3;KANGXI RADICAL DRAGON;So;0;ON;<compat> 9F8D;;;;N;;;;;
+2FD4;KANGXI RADICAL TURTLE;So;0;ON;<compat> 9F9C;;;;N;;;;;
+2FD5;KANGXI RADICAL FLUTE;So;0;ON;<compat> 9FA0;;;;N;;;;;
+2FF0;IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT;So;0;ON;;;;;N;;;;;
+2FF1;IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO BELOW;So;0;ON;;;;;N;;;;;
+2FF2;IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO MIDDLE AND RIGHT;So;0;ON;;;;;N;;;;;
+2FF3;IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO MIDDLE AND BELOW;So;0;ON;;;;;N;;;;;
+2FF4;IDEOGRAPHIC DESCRIPTION CHARACTER FULL SURROUND;So;0;ON;;;;;N;;;;;
+2FF5;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM ABOVE;So;0;ON;;;;;N;;;;;
+2FF6;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM BELOW;So;0;ON;;;;;N;;;;;
+2FF7;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LEFT;So;0;ON;;;;;N;;;;;
+2FF8;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER LEFT;So;0;ON;;;;;N;;;;;
+2FF9;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER RIGHT;So;0;ON;;;;;N;;;;;
+2FFA;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LOWER LEFT;So;0;ON;;;;;N;;;;;
+2FFB;IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID;So;0;ON;;;;;N;;;;;
+3000;IDEOGRAPHIC SPACE;Zs;0;WS;<wide> 0020;;;;N;;;;;
+3001;IDEOGRAPHIC COMMA;Po;0;ON;;;;;N;;;;;
+3002;IDEOGRAPHIC FULL STOP;Po;0;ON;;;;;N;IDEOGRAPHIC PERIOD;;;;
+3003;DITTO MARK;Po;0;ON;;;;;N;;;;;
+3004;JAPANESE INDUSTRIAL STANDARD SYMBOL;So;0;ON;;;;;N;;;;;
+3005;IDEOGRAPHIC ITERATION MARK;Lm;0;L;;;;;N;;;;;
+3006;IDEOGRAPHIC CLOSING MARK;Lo;0;L;;;;;N;;;;;
+3007;IDEOGRAPHIC NUMBER ZERO;Nl;0;L;;;;0;N;;;;;
+3008;LEFT ANGLE BRACKET;Ps;0;ON;;;;;Y;OPENING ANGLE BRACKET;;;;
+3009;RIGHT ANGLE BRACKET;Pe;0;ON;;;;;Y;CLOSING ANGLE BRACKET;;;;
+300A;LEFT DOUBLE ANGLE BRACKET;Ps;0;ON;;;;;Y;OPENING DOUBLE ANGLE BRACKET;;;;
+300B;RIGHT DOUBLE ANGLE BRACKET;Pe;0;ON;;;;;Y;CLOSING DOUBLE ANGLE BRACKET;;;;
+300C;LEFT CORNER BRACKET;Ps;0;ON;;;;;Y;OPENING CORNER BRACKET;;;;
+300D;RIGHT CORNER BRACKET;Pe;0;ON;;;;;Y;CLOSING CORNER BRACKET;;;;
+300E;LEFT WHITE CORNER BRACKET;Ps;0;ON;;;;;Y;OPENING WHITE CORNER BRACKET;;;;
+300F;RIGHT WHITE CORNER BRACKET;Pe;0;ON;;;;;Y;CLOSING WHITE CORNER BRACKET;;;;
+3010;LEFT BLACK LENTICULAR BRACKET;Ps;0;ON;;;;;Y;OPENING BLACK LENTICULAR BRACKET;;;;
+3011;RIGHT BLACK LENTICULAR BRACKET;Pe;0;ON;;;;;Y;CLOSING BLACK LENTICULAR BRACKET;;;;
+3012;POSTAL MARK;So;0;ON;;;;;N;;;;;
+3013;GETA MARK;So;0;ON;;;;;N;;;;;
+3014;LEFT TORTOISE SHELL BRACKET;Ps;0;ON;;;;;Y;OPENING TORTOISE SHELL BRACKET;;;;
+3015;RIGHT TORTOISE SHELL BRACKET;Pe;0;ON;;;;;Y;CLOSING TORTOISE SHELL BRACKET;;;;
+3016;LEFT WHITE LENTICULAR BRACKET;Ps;0;ON;;;;;Y;OPENING WHITE LENTICULAR BRACKET;;;;
+3017;RIGHT WHITE LENTICULAR BRACKET;Pe;0;ON;;;;;Y;CLOSING WHITE LENTICULAR BRACKET;;;;
+3018;LEFT WHITE TORTOISE SHELL BRACKET;Ps;0;ON;;;;;Y;OPENING WHITE TORTOISE SHELL BRACKET;;;;
+3019;RIGHT WHITE TORTOISE SHELL BRACKET;Pe;0;ON;;;;;Y;CLOSING WHITE TORTOISE SHELL BRACKET;;;;
+301A;LEFT WHITE SQUARE BRACKET;Ps;0;ON;;;;;Y;OPENING WHITE SQUARE BRACKET;;;;
+301B;RIGHT WHITE SQUARE BRACKET;Pe;0;ON;;;;;Y;CLOSING WHITE SQUARE BRACKET;;;;
+301C;WAVE DASH;Pd;0;ON;;;;;N;;;;;
+301D;REVERSED DOUBLE PRIME QUOTATION MARK;Ps;0;ON;;;;;N;;;;;
+301E;DOUBLE PRIME QUOTATION MARK;Pe;0;ON;;;;;N;;;;;
+301F;LOW DOUBLE PRIME QUOTATION MARK;Pe;0;ON;;;;;N;;;;;
+3020;POSTAL MARK FACE;So;0;ON;;;;;N;;;;;
+3021;HANGZHOU NUMERAL ONE;Nl;0;L;;;;1;N;;;;;
+3022;HANGZHOU NUMERAL TWO;Nl;0;L;;;;2;N;;;;;
+3023;HANGZHOU NUMERAL THREE;Nl;0;L;;;;3;N;;;;;
+3024;HANGZHOU NUMERAL FOUR;Nl;0;L;;;;4;N;;;;;
+3025;HANGZHOU NUMERAL FIVE;Nl;0;L;;;;5;N;;;;;
+3026;HANGZHOU NUMERAL SIX;Nl;0;L;;;;6;N;;;;;
+3027;HANGZHOU NUMERAL SEVEN;Nl;0;L;;;;7;N;;;;;
+3028;HANGZHOU NUMERAL EIGHT;Nl;0;L;;;;8;N;;;;;
+3029;HANGZHOU NUMERAL NINE;Nl;0;L;;;;9;N;;;;;
+302A;IDEOGRAPHIC LEVEL TONE MARK;Mn;218;NSM;;;;;N;;;;;
+302B;IDEOGRAPHIC RISING TONE MARK;Mn;228;NSM;;;;;N;;;;;
+302C;IDEOGRAPHIC DEPARTING TONE MARK;Mn;232;NSM;;;;;N;;;;;
+302D;IDEOGRAPHIC ENTERING TONE MARK;Mn;222;NSM;;;;;N;;;;;
+302E;HANGUL SINGLE DOT TONE MARK;Mn;224;NSM;;;;;N;;;;;
+302F;HANGUL DOUBLE DOT TONE MARK;Mn;224;NSM;;;;;N;;;;;
+3030;WAVY DASH;Pd;0;ON;;;;;N;;;;;
+3031;VERTICAL KANA REPEAT MARK;Lm;0;L;;;;;N;;;;;
+3032;VERTICAL KANA REPEAT WITH VOICED SOUND MARK;Lm;0;L;;;;;N;;;;;
+3033;VERTICAL KANA REPEAT MARK UPPER HALF;Lm;0;L;;;;;N;;;;;
+3034;VERTICAL KANA REPEAT WITH VOICED SOUND MARK UPPER HALF;Lm;0;L;;;;;N;;;;;
+3035;VERTICAL KANA REPEAT MARK LOWER HALF;Lm;0;L;;;;;N;;;;;
+3036;CIRCLED POSTAL MARK;So;0;ON;<compat> 3012;;;;N;;;;;
+3037;IDEOGRAPHIC TELEGRAPH LINE FEED SEPARATOR SYMBOL;So;0;ON;;;;;N;;;;;
+3038;HANGZHOU NUMERAL TEN;Nl;0;L;<compat> 5341;;;10;N;;;;;
+3039;HANGZHOU NUMERAL TWENTY;Nl;0;L;<compat> 5344;;;20;N;;;;;
+303A;HANGZHOU NUMERAL THIRTY;Nl;0;L;<compat> 5345;;;30;N;;;;;
+303E;IDEOGRAPHIC VARIATION INDICATOR;So;0;ON;;;;;N;;;;;
+303F;IDEOGRAPHIC HALF FILL SPACE;So;0;ON;;;;;N;;;;;
+3041;HIRAGANA LETTER SMALL A;Lo;0;L;;;;;N;;;;;
+3042;HIRAGANA LETTER A;Lo;0;L;;;;;N;;;;;
+3043;HIRAGANA LETTER SMALL I;Lo;0;L;;;;;N;;;;;
+3044;HIRAGANA LETTER I;Lo;0;L;;;;;N;;;;;
+3045;HIRAGANA LETTER SMALL U;Lo;0;L;;;;;N;;;;;
+3046;HIRAGANA LETTER U;Lo;0;L;;;;;N;;;;;
+3047;HIRAGANA LETTER SMALL E;Lo;0;L;;;;;N;;;;;
+3048;HIRAGANA LETTER E;Lo;0;L;;;;;N;;;;;
+3049;HIRAGANA LETTER SMALL O;Lo;0;L;;;;;N;;;;;
+304A;HIRAGANA LETTER O;Lo;0;L;;;;;N;;;;;
+304B;HIRAGANA LETTER KA;Lo;0;L;;;;;N;;;;;
+304C;HIRAGANA LETTER GA;Lo;0;L;304B 3099;;;;N;;;;;
+304D;HIRAGANA LETTER KI;Lo;0;L;;;;;N;;;;;
+304E;HIRAGANA LETTER GI;Lo;0;L;304D 3099;;;;N;;;;;
+304F;HIRAGANA LETTER KU;Lo;0;L;;;;;N;;;;;
+3050;HIRAGANA LETTER GU;Lo;0;L;304F 3099;;;;N;;;;;
+3051;HIRAGANA LETTER KE;Lo;0;L;;;;;N;;;;;
+3052;HIRAGANA LETTER GE;Lo;0;L;3051 3099;;;;N;;;;;
+3053;HIRAGANA LETTER KO;Lo;0;L;;;;;N;;;;;
+3054;HIRAGANA LETTER GO;Lo;0;L;3053 3099;;;;N;;;;;
+3055;HIRAGANA LETTER SA;Lo;0;L;;;;;N;;;;;
+3056;HIRAGANA LETTER ZA;Lo;0;L;3055 3099;;;;N;;;;;
+3057;HIRAGANA LETTER SI;Lo;0;L;;;;;N;;;;;
+3058;HIRAGANA LETTER ZI;Lo;0;L;3057 3099;;;;N;;;;;
+3059;HIRAGANA LETTER SU;Lo;0;L;;;;;N;;;;;
+305A;HIRAGANA LETTER ZU;Lo;0;L;3059 3099;;;;N;;;;;
+305B;HIRAGANA LETTER SE;Lo;0;L;;;;;N;;;;;
+305C;HIRAGANA LETTER ZE;Lo;0;L;305B 3099;;;;N;;;;;
+305D;HIRAGANA LETTER SO;Lo;0;L;;;;;N;;;;;
+305E;HIRAGANA LETTER ZO;Lo;0;L;305D 3099;;;;N;;;;;
+305F;HIRAGANA LETTER TA;Lo;0;L;;;;;N;;;;;
+3060;HIRAGANA LETTER DA;Lo;0;L;305F 3099;;;;N;;;;;
+3061;HIRAGANA LETTER TI;Lo;0;L;;;;;N;;;;;
+3062;HIRAGANA LETTER DI;Lo;0;L;3061 3099;;;;N;;;;;
+3063;HIRAGANA LETTER SMALL TU;Lo;0;L;;;;;N;;;;;
+3064;HIRAGANA LETTER TU;Lo;0;L;;;;;N;;;;;
+3065;HIRAGANA LETTER DU;Lo;0;L;3064 3099;;;;N;;;;;
+3066;HIRAGANA LETTER TE;Lo;0;L;;;;;N;;;;;
+3067;HIRAGANA LETTER DE;Lo;0;L;3066 3099;;;;N;;;;;
+3068;HIRAGANA LETTER TO;Lo;0;L;;;;;N;;;;;
+3069;HIRAGANA LETTER DO;Lo;0;L;3068 3099;;;;N;;;;;
+306A;HIRAGANA LETTER NA;Lo;0;L;;;;;N;;;;;
+306B;HIRAGANA LETTER NI;Lo;0;L;;;;;N;;;;;
+306C;HIRAGANA LETTER NU;Lo;0;L;;;;;N;;;;;
+306D;HIRAGANA LETTER NE;Lo;0;L;;;;;N;;;;;
+306E;HIRAGANA LETTER NO;Lo;0;L;;;;;N;;;;;
+306F;HIRAGANA LETTER HA;Lo;0;L;;;;;N;;;;;
+3070;HIRAGANA LETTER BA;Lo;0;L;306F 3099;;;;N;;;;;
+3071;HIRAGANA LETTER PA;Lo;0;L;306F 309A;;;;N;;;;;
+3072;HIRAGANA LETTER HI;Lo;0;L;;;;;N;;;;;
+3073;HIRAGANA LETTER BI;Lo;0;L;3072 3099;;;;N;;;;;
+3074;HIRAGANA LETTER PI;Lo;0;L;3072 309A;;;;N;;;;;
+3075;HIRAGANA LETTER HU;Lo;0;L;;;;;N;;;;;
+3076;HIRAGANA LETTER BU;Lo;0;L;3075 3099;;;;N;;;;;
+3077;HIRAGANA LETTER PU;Lo;0;L;3075 309A;;;;N;;;;;
+3078;HIRAGANA LETTER HE;Lo;0;L;;;;;N;;;;;
+3079;HIRAGANA LETTER BE;Lo;0;L;3078 3099;;;;N;;;;;
+307A;HIRAGANA LETTER PE;Lo;0;L;3078 309A;;;;N;;;;;
+307B;HIRAGANA LETTER HO;Lo;0;L;;;;;N;;;;;
+307C;HIRAGANA LETTER BO;Lo;0;L;307B 3099;;;;N;;;;;
+307D;HIRAGANA LETTER PO;Lo;0;L;307B 309A;;;;N;;;;;
+307E;HIRAGANA LETTER MA;Lo;0;L;;;;;N;;;;;
+307F;HIRAGANA LETTER MI;Lo;0;L;;;;;N;;;;;
+3080;HIRAGANA LETTER MU;Lo;0;L;;;;;N;;;;;
+3081;HIRAGANA LETTER ME;Lo;0;L;;;;;N;;;;;
+3082;HIRAGANA LETTER MO;Lo;0;L;;;;;N;;;;;
+3083;HIRAGANA LETTER SMALL YA;Lo;0;L;;;;;N;;;;;
+3084;HIRAGANA LETTER YA;Lo;0;L;;;;;N;;;;;
+3085;HIRAGANA LETTER SMALL YU;Lo;0;L;;;;;N;;;;;
+3086;HIRAGANA LETTER YU;Lo;0;L;;;;;N;;;;;
+3087;HIRAGANA LETTER SMALL YO;Lo;0;L;;;;;N;;;;;
+3088;HIRAGANA LETTER YO;Lo;0;L;;;;;N;;;;;
+3089;HIRAGANA LETTER RA;Lo;0;L;;;;;N;;;;;
+308A;HIRAGANA LETTER RI;Lo;0;L;;;;;N;;;;;
+308B;HIRAGANA LETTER RU;Lo;0;L;;;;;N;;;;;
+308C;HIRAGANA LETTER RE;Lo;0;L;;;;;N;;;;;
+308D;HIRAGANA LETTER RO;Lo;0;L;;;;;N;;;;;
+308E;HIRAGANA LETTER SMALL WA;Lo;0;L;;;;;N;;;;;
+308F;HIRAGANA LETTER WA;Lo;0;L;;;;;N;;;;;
+3090;HIRAGANA LETTER WI;Lo;0;L;;;;;N;;;;;
+3091;HIRAGANA LETTER WE;Lo;0;L;;;;;N;;;;;
+3092;HIRAGANA LETTER WO;Lo;0;L;;;;;N;;;;;
+3093;HIRAGANA LETTER N;Lo;0;L;;;;;N;;;;;
+3094;HIRAGANA LETTER VU;Lo;0;L;3046 3099;;;;N;;;;;
+3099;COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK;Mn;8;NSM;;;;;N;NON-SPACING KATAKANA-HIRAGANA VOICED SOUND MARK;;;;
+309A;COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK;Mn;8;NSM;;;;;N;NON-SPACING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK;;;;
+309B;KATAKANA-HIRAGANA VOICED SOUND MARK;Sk;0;ON;<compat> 0020 3099;;;;N;;;;;
+309C;KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK;Sk;0;ON;<compat> 0020 309A;;;;N;;;;;
+309D;HIRAGANA ITERATION MARK;Lm;0;L;;;;;N;;;;;
+309E;HIRAGANA VOICED ITERATION MARK;Lm;0;L;309D 3099;;;;N;;;;;
+30A1;KATAKANA LETTER SMALL A;Lo;0;L;;;;;N;;;;;
+30A2;KATAKANA LETTER A;Lo;0;L;;;;;N;;;;;
+30A3;KATAKANA LETTER SMALL I;Lo;0;L;;;;;N;;;;;
+30A4;KATAKANA LETTER I;Lo;0;L;;;;;N;;;;;
+30A5;KATAKANA LETTER SMALL U;Lo;0;L;;;;;N;;;;;
+30A6;KATAKANA LETTER U;Lo;0;L;;;;;N;;;;;
+30A7;KATAKANA LETTER SMALL E;Lo;0;L;;;;;N;;;;;
+30A8;KATAKANA LETTER E;Lo;0;L;;;;;N;;;;;
+30A9;KATAKANA LETTER SMALL O;Lo;0;L;;;;;N;;;;;
+30AA;KATAKANA LETTER O;Lo;0;L;;;;;N;;;;;
+30AB;KATAKANA LETTER KA;Lo;0;L;;;;;N;;;;;
+30AC;KATAKANA LETTER GA;Lo;0;L;30AB 3099;;;;N;;;;;
+30AD;KATAKANA LETTER KI;Lo;0;L;;;;;N;;;;;
+30AE;KATAKANA LETTER GI;Lo;0;L;30AD 3099;;;;N;;;;;
+30AF;KATAKANA LETTER KU;Lo;0;L;;;;;N;;;;;
+30B0;KATAKANA LETTER GU;Lo;0;L;30AF 3099;;;;N;;;;;
+30B1;KATAKANA LETTER KE;Lo;0;L;;;;;N;;;;;
+30B2;KATAKANA LETTER GE;Lo;0;L;30B1 3099;;;;N;;;;;
+30B3;KATAKANA LETTER KO;Lo;0;L;;;;;N;;;;;
+30B4;KATAKANA LETTER GO;Lo;0;L;30B3 3099;;;;N;;;;;
+30B5;KATAKANA LETTER SA;Lo;0;L;;;;;N;;;;;
+30B6;KATAKANA LETTER ZA;Lo;0;L;30B5 3099;;;;N;;;;;
+30B7;KATAKANA LETTER SI;Lo;0;L;;;;;N;;;;;
+30B8;KATAKANA LETTER ZI;Lo;0;L;30B7 3099;;;;N;;;;;
+30B9;KATAKANA LETTER SU;Lo;0;L;;;;;N;;;;;
+30BA;KATAKANA LETTER ZU;Lo;0;L;30B9 3099;;;;N;;;;;
+30BB;KATAKANA LETTER SE;Lo;0;L;;;;;N;;;;;
+30BC;KATAKANA LETTER ZE;Lo;0;L;30BB 3099;;;;N;;;;;
+30BD;KATAKANA LETTER SO;Lo;0;L;;;;;N;;;;;
+30BE;KATAKANA LETTER ZO;Lo;0;L;30BD 3099;;;;N;;;;;
+30BF;KATAKANA LETTER TA;Lo;0;L;;;;;N;;;;;
+30C0;KATAKANA LETTER DA;Lo;0;L;30BF 3099;;;;N;;;;;
+30C1;KATAKANA LETTER TI;Lo;0;L;;;;;N;;;;;
+30C2;KATAKANA LETTER DI;Lo;0;L;30C1 3099;;;;N;;;;;
+30C3;KATAKANA LETTER SMALL TU;Lo;0;L;;;;;N;;;;;
+30C4;KATAKANA LETTER TU;Lo;0;L;;;;;N;;;;;
+30C5;KATAKANA LETTER DU;Lo;0;L;30C4 3099;;;;N;;;;;
+30C6;KATAKANA LETTER TE;Lo;0;L;;;;;N;;;;;
+30C7;KATAKANA LETTER DE;Lo;0;L;30C6 3099;;;;N;;;;;
+30C8;KATAKANA LETTER TO;Lo;0;L;;;;;N;;;;;
+30C9;KATAKANA LETTER DO;Lo;0;L;30C8 3099;;;;N;;;;;
+30CA;KATAKANA LETTER NA;Lo;0;L;;;;;N;;;;;
+30CB;KATAKANA LETTER NI;Lo;0;L;;;;;N;;;;;
+30CC;KATAKANA LETTER NU;Lo;0;L;;;;;N;;;;;
+30CD;KATAKANA LETTER NE;Lo;0;L;;;;;N;;;;;
+30CE;KATAKANA LETTER NO;Lo;0;L;;;;;N;;;;;
+30CF;KATAKANA LETTER HA;Lo;0;L;;;;;N;;;;;
+30D0;KATAKANA LETTER BA;Lo;0;L;30CF 3099;;;;N;;;;;
+30D1;KATAKANA LETTER PA;Lo;0;L;30CF 309A;;;;N;;;;;
+30D2;KATAKANA LETTER HI;Lo;0;L;;;;;N;;;;;
+30D3;KATAKANA LETTER BI;Lo;0;L;30D2 3099;;;;N;;;;;
+30D4;KATAKANA LETTER PI;Lo;0;L;30D2 309A;;;;N;;;;;
+30D5;KATAKANA LETTER HU;Lo;0;L;;;;;N;;;;;
+30D6;KATAKANA LETTER BU;Lo;0;L;30D5 3099;;;;N;;;;;
+30D7;KATAKANA LETTER PU;Lo;0;L;30D5 309A;;;;N;;;;;
+30D8;KATAKANA LETTER HE;Lo;0;L;;;;;N;;;;;
+30D9;KATAKANA LETTER BE;Lo;0;L;30D8 3099;;;;N;;;;;
+30DA;KATAKANA LETTER PE;Lo;0;L;30D8 309A;;;;N;;;;;
+30DB;KATAKANA LETTER HO;Lo;0;L;;;;;N;;;;;
+30DC;KATAKANA LETTER BO;Lo;0;L;30DB 3099;;;;N;;;;;
+30DD;KATAKANA LETTER PO;Lo;0;L;30DB 309A;;;;N;;;;;
+30DE;KATAKANA LETTER MA;Lo;0;L;;;;;N;;;;;
+30DF;KATAKANA LETTER MI;Lo;0;L;;;;;N;;;;;
+30E0;KATAKANA LETTER MU;Lo;0;L;;;;;N;;;;;
+30E1;KATAKANA LETTER ME;Lo;0;L;;;;;N;;;;;
+30E2;KATAKANA LETTER MO;Lo;0;L;;;;;N;;;;;
+30E3;KATAKANA LETTER SMALL YA;Lo;0;L;;;;;N;;;;;
+30E4;KATAKANA LETTER YA;Lo;0;L;;;;;N;;;;;
+30E5;KATAKANA LETTER SMALL YU;Lo;0;L;;;;;N;;;;;
+30E6;KATAKANA LETTER YU;Lo;0;L;;;;;N;;;;;
+30E7;KATAKANA LETTER SMALL YO;Lo;0;L;;;;;N;;;;;
+30E8;KATAKANA LETTER YO;Lo;0;L;;;;;N;;;;;
+30E9;KATAKANA LETTER RA;Lo;0;L;;;;;N;;;;;
+30EA;KATAKANA LETTER RI;Lo;0;L;;;;;N;;;;;
+30EB;KATAKANA LETTER RU;Lo;0;L;;;;;N;;;;;
+30EC;KATAKANA LETTER RE;Lo;0;L;;;;;N;;;;;
+30ED;KATAKANA LETTER RO;Lo;0;L;;;;;N;;;;;
+30EE;KATAKANA LETTER SMALL WA;Lo;0;L;;;;;N;;;;;
+30EF;KATAKANA LETTER WA;Lo;0;L;;;;;N;;;;;
+30F0;KATAKANA LETTER WI;Lo;0;L;;;;;N;;;;;
+30F1;KATAKANA LETTER WE;Lo;0;L;;;;;N;;;;;
+30F2;KATAKANA LETTER WO;Lo;0;L;;;;;N;;;;;
+30F3;KATAKANA LETTER N;Lo;0;L;;;;;N;;;;;
+30F4;KATAKANA LETTER VU;Lo;0;L;30A6 3099;;;;N;;;;;
+30F5;KATAKANA LETTER SMALL KA;Lo;0;L;;;;;N;;;;;
+30F6;KATAKANA LETTER SMALL KE;Lo;0;L;;;;;N;;;;;
+30F7;KATAKANA LETTER VA;Lo;0;L;30EF 3099;;;;N;;;;;
+30F8;KATAKANA LETTER VI;Lo;0;L;30F0 3099;;;;N;;;;;
+30F9;KATAKANA LETTER VE;Lo;0;L;30F1 3099;;;;N;;;;;
+30FA;KATAKANA LETTER VO;Lo;0;L;30F2 3099;;;;N;;;;;
+30FB;KATAKANA MIDDLE DOT;Pc;0;ON;;;;;N;;;;;
+30FC;KATAKANA-HIRAGANA PROLONGED SOUND MARK;Lm;0;L;;;;;N;;;;;
+30FD;KATAKANA ITERATION MARK;Lm;0;L;;;;;N;;;;;
+30FE;KATAKANA VOICED ITERATION MARK;Lm;0;L;30FD 3099;;;;N;;;;;
+3105;BOPOMOFO LETTER B;Lo;0;L;;;;;N;;;;;
+3106;BOPOMOFO LETTER P;Lo;0;L;;;;;N;;;;;
+3107;BOPOMOFO LETTER M;Lo;0;L;;;;;N;;;;;
+3108;BOPOMOFO LETTER F;Lo;0;L;;;;;N;;;;;
+3109;BOPOMOFO LETTER D;Lo;0;L;;;;;N;;;;;
+310A;BOPOMOFO LETTER T;Lo;0;L;;;;;N;;;;;
+310B;BOPOMOFO LETTER N;Lo;0;L;;;;;N;;;;;
+310C;BOPOMOFO LETTER L;Lo;0;L;;;;;N;;;;;
+310D;BOPOMOFO LETTER G;Lo;0;L;;;;;N;;;;;
+310E;BOPOMOFO LETTER K;Lo;0;L;;;;;N;;;;;
+310F;BOPOMOFO LETTER H;Lo;0;L;;;;;N;;;;;
+3110;BOPOMOFO LETTER J;Lo;0;L;;;;;N;;;;;
+3111;BOPOMOFO LETTER Q;Lo;0;L;;;;;N;;;;;
+3112;BOPOMOFO LETTER X;Lo;0;L;;;;;N;;;;;
+3113;BOPOMOFO LETTER ZH;Lo;0;L;;;;;N;;;;;
+3114;BOPOMOFO LETTER CH;Lo;0;L;;;;;N;;;;;
+3115;BOPOMOFO LETTER SH;Lo;0;L;;;;;N;;;;;
+3116;BOPOMOFO LETTER R;Lo;0;L;;;;;N;;;;;
+3117;BOPOMOFO LETTER Z;Lo;0;L;;;;;N;;;;;
+3118;BOPOMOFO LETTER C;Lo;0;L;;;;;N;;;;;
+3119;BOPOMOFO LETTER S;Lo;0;L;;;;;N;;;;;
+311A;BOPOMOFO LETTER A;Lo;0;L;;;;;N;;;;;
+311B;BOPOMOFO LETTER O;Lo;0;L;;;;;N;;;;;
+311C;BOPOMOFO LETTER E;Lo;0;L;;;;;N;;;;;
+311D;BOPOMOFO LETTER EH;Lo;0;L;;;;;N;;;;;
+311E;BOPOMOFO LETTER AI;Lo;0;L;;;;;N;;;;;
+311F;BOPOMOFO LETTER EI;Lo;0;L;;;;;N;;;;;
+3120;BOPOMOFO LETTER AU;Lo;0;L;;;;;N;;;;;
+3121;BOPOMOFO LETTER OU;Lo;0;L;;;;;N;;;;;
+3122;BOPOMOFO LETTER AN;Lo;0;L;;;;;N;;;;;
+3123;BOPOMOFO LETTER EN;Lo;0;L;;;;;N;;;;;
+3124;BOPOMOFO LETTER ANG;Lo;0;L;;;;;N;;;;;
+3125;BOPOMOFO LETTER ENG;Lo;0;L;;;;;N;;;;;
+3126;BOPOMOFO LETTER ER;Lo;0;L;;;;;N;;;;;
+3127;BOPOMOFO LETTER I;Lo;0;L;;;;;N;;;;;
+3128;BOPOMOFO LETTER U;Lo;0;L;;;;;N;;;;;
+3129;BOPOMOFO LETTER IU;Lo;0;L;;;;;N;;;;;
+312A;BOPOMOFO LETTER V;Lo;0;L;;;;;N;;;;;
+312B;BOPOMOFO LETTER NG;Lo;0;L;;;;;N;;;;;
+312C;BOPOMOFO LETTER GN;Lo;0;L;;;;;N;;;;;
+3131;HANGUL LETTER KIYEOK;Lo;0;L;<compat> 1100;;;;N;HANGUL LETTER GIYEOG;;;;
+3132;HANGUL LETTER SSANGKIYEOK;Lo;0;L;<compat> 1101;;;;N;HANGUL LETTER SSANG GIYEOG;;;;
+3133;HANGUL LETTER KIYEOK-SIOS;Lo;0;L;<compat> 11AA;;;;N;HANGUL LETTER GIYEOG SIOS;;;;
+3134;HANGUL LETTER NIEUN;Lo;0;L;<compat> 1102;;;;N;;;;;
+3135;HANGUL LETTER NIEUN-CIEUC;Lo;0;L;<compat> 11AC;;;;N;HANGUL LETTER NIEUN JIEUJ;;;;
+3136;HANGUL LETTER NIEUN-HIEUH;Lo;0;L;<compat> 11AD;;;;N;HANGUL LETTER NIEUN HIEUH;;;;
+3137;HANGUL LETTER TIKEUT;Lo;0;L;<compat> 1103;;;;N;HANGUL LETTER DIGEUD;;;;
+3138;HANGUL LETTER SSANGTIKEUT;Lo;0;L;<compat> 1104;;;;N;HANGUL LETTER SSANG DIGEUD;;;;
+3139;HANGUL LETTER RIEUL;Lo;0;L;<compat> 1105;;;;N;HANGUL LETTER LIEUL;;;;
+313A;HANGUL LETTER RIEUL-KIYEOK;Lo;0;L;<compat> 11B0;;;;N;HANGUL LETTER LIEUL GIYEOG;;;;
+313B;HANGUL LETTER RIEUL-MIEUM;Lo;0;L;<compat> 11B1;;;;N;HANGUL LETTER LIEUL MIEUM;;;;
+313C;HANGUL LETTER RIEUL-PIEUP;Lo;0;L;<compat> 11B2;;;;N;HANGUL LETTER LIEUL BIEUB;;;;
+313D;HANGUL LETTER RIEUL-SIOS;Lo;0;L;<compat> 11B3;;;;N;HANGUL LETTER LIEUL SIOS;;;;
+313E;HANGUL LETTER RIEUL-THIEUTH;Lo;0;L;<compat> 11B4;;;;N;HANGUL LETTER LIEUL TIEUT;;;;
+313F;HANGUL LETTER RIEUL-PHIEUPH;Lo;0;L;<compat> 11B5;;;;N;HANGUL LETTER LIEUL PIEUP;;;;
+3140;HANGUL LETTER RIEUL-HIEUH;Lo;0;L;<compat> 111A;;;;N;HANGUL LETTER LIEUL HIEUH;;;;
+3141;HANGUL LETTER MIEUM;Lo;0;L;<compat> 1106;;;;N;;;;;
+3142;HANGUL LETTER PIEUP;Lo;0;L;<compat> 1107;;;;N;HANGUL LETTER BIEUB;;;;
+3143;HANGUL LETTER SSANGPIEUP;Lo;0;L;<compat> 1108;;;;N;HANGUL LETTER SSANG BIEUB;;;;
+3144;HANGUL LETTER PIEUP-SIOS;Lo;0;L;<compat> 1121;;;;N;HANGUL LETTER BIEUB SIOS;;;;
+3145;HANGUL LETTER SIOS;Lo;0;L;<compat> 1109;;;;N;;;;;
+3146;HANGUL LETTER SSANGSIOS;Lo;0;L;<compat> 110A;;;;N;HANGUL LETTER SSANG SIOS;;;;
+3147;HANGUL LETTER IEUNG;Lo;0;L;<compat> 110B;;;;N;;;;;
+3148;HANGUL LETTER CIEUC;Lo;0;L;<compat> 110C;;;;N;HANGUL LETTER JIEUJ;;;;
+3149;HANGUL LETTER SSANGCIEUC;Lo;0;L;<compat> 110D;;;;N;HANGUL LETTER SSANG JIEUJ;;;;
+314A;HANGUL LETTER CHIEUCH;Lo;0;L;<compat> 110E;;;;N;HANGUL LETTER CIEUC;;;;
+314B;HANGUL LETTER KHIEUKH;Lo;0;L;<compat> 110F;;;;N;HANGUL LETTER KIYEOK;;;;
+314C;HANGUL LETTER THIEUTH;Lo;0;L;<compat> 1110;;;;N;HANGUL LETTER TIEUT;;;;
+314D;HANGUL LETTER PHIEUPH;Lo;0;L;<compat> 1111;;;;N;HANGUL LETTER PIEUP;;;;
+314E;HANGUL LETTER HIEUH;Lo;0;L;<compat> 1112;;;;N;;;;;
+314F;HANGUL LETTER A;Lo;0;L;<compat> 1161;;;;N;;;;;
+3150;HANGUL LETTER AE;Lo;0;L;<compat> 1162;;;;N;;;;;
+3151;HANGUL LETTER YA;Lo;0;L;<compat> 1163;;;;N;;;;;
+3152;HANGUL LETTER YAE;Lo;0;L;<compat> 1164;;;;N;;;;;
+3153;HANGUL LETTER EO;Lo;0;L;<compat> 1165;;;;N;;;;;
+3154;HANGUL LETTER E;Lo;0;L;<compat> 1166;;;;N;;;;;
+3155;HANGUL LETTER YEO;Lo;0;L;<compat> 1167;;;;N;;;;;
+3156;HANGUL LETTER YE;Lo;0;L;<compat> 1168;;;;N;;;;;
+3157;HANGUL LETTER O;Lo;0;L;<compat> 1169;;;;N;;;;;
+3158;HANGUL LETTER WA;Lo;0;L;<compat> 116A;;;;N;;;;;
+3159;HANGUL LETTER WAE;Lo;0;L;<compat> 116B;;;;N;;;;;
+315A;HANGUL LETTER OE;Lo;0;L;<compat> 116C;;;;N;;;;;
+315B;HANGUL LETTER YO;Lo;0;L;<compat> 116D;;;;N;;;;;
+315C;HANGUL LETTER U;Lo;0;L;<compat> 116E;;;;N;;;;;
+315D;HANGUL LETTER WEO;Lo;0;L;<compat> 116F;;;;N;;;;;
+315E;HANGUL LETTER WE;Lo;0;L;<compat> 1170;;;;N;;;;;
+315F;HANGUL LETTER WI;Lo;0;L;<compat> 1171;;;;N;;;;;
+3160;HANGUL LETTER YU;Lo;0;L;<compat> 1172;;;;N;;;;;
+3161;HANGUL LETTER EU;Lo;0;L;<compat> 1173;;;;N;;;;;
+3162;HANGUL LETTER YI;Lo;0;L;<compat> 1174;;;;N;;;;;
+3163;HANGUL LETTER I;Lo;0;L;<compat> 1175;;;;N;;;;;
+3164;HANGUL FILLER;Lo;0;L;<compat> 1160;;;;N;HANGUL CAE OM;;;;
+3165;HANGUL LETTER SSANGNIEUN;Lo;0;L;<compat> 1114;;;;N;HANGUL LETTER SSANG NIEUN;;;;
+3166;HANGUL LETTER NIEUN-TIKEUT;Lo;0;L;<compat> 1115;;;;N;HANGUL LETTER NIEUN DIGEUD;;;;
+3167;HANGUL LETTER NIEUN-SIOS;Lo;0;L;<compat> 11C7;;;;N;HANGUL LETTER NIEUN SIOS;;;;
+3168;HANGUL LETTER NIEUN-PANSIOS;Lo;0;L;<compat> 11C8;;;;N;HANGUL LETTER NIEUN BAN CHI EUM;;;;
+3169;HANGUL LETTER RIEUL-KIYEOK-SIOS;Lo;0;L;<compat> 11CC;;;;N;HANGUL LETTER LIEUL GIYEOG SIOS;;;;
+316A;HANGUL LETTER RIEUL-TIKEUT;Lo;0;L;<compat> 11CE;;;;N;HANGUL LETTER LIEUL DIGEUD;;;;
+316B;HANGUL LETTER RIEUL-PIEUP-SIOS;Lo;0;L;<compat> 11D3;;;;N;HANGUL LETTER LIEUL BIEUB SIOS;;;;
+316C;HANGUL LETTER RIEUL-PANSIOS;Lo;0;L;<compat> 11D7;;;;N;HANGUL LETTER LIEUL BAN CHI EUM;;;;
+316D;HANGUL LETTER RIEUL-YEORINHIEUH;Lo;0;L;<compat> 11D9;;;;N;HANGUL LETTER LIEUL YEOLIN HIEUH;;;;
+316E;HANGUL LETTER MIEUM-PIEUP;Lo;0;L;<compat> 111C;;;;N;HANGUL LETTER MIEUM BIEUB;;;;
+316F;HANGUL LETTER MIEUM-SIOS;Lo;0;L;<compat> 11DD;;;;N;HANGUL LETTER MIEUM SIOS;;;;
+3170;HANGUL LETTER MIEUM-PANSIOS;Lo;0;L;<compat> 11DF;;;;N;HANGUL LETTER BIEUB BAN CHI EUM;;;;
+3171;HANGUL LETTER KAPYEOUNMIEUM;Lo;0;L;<compat> 111D;;;;N;HANGUL LETTER MIEUM SUN GYEONG EUM;;;;
+3172;HANGUL LETTER PIEUP-KIYEOK;Lo;0;L;<compat> 111E;;;;N;HANGUL LETTER BIEUB GIYEOG;;;;
+3173;HANGUL LETTER PIEUP-TIKEUT;Lo;0;L;<compat> 1120;;;;N;HANGUL LETTER BIEUB DIGEUD;;;;
+3174;HANGUL LETTER PIEUP-SIOS-KIYEOK;Lo;0;L;<compat> 1122;;;;N;HANGUL LETTER BIEUB SIOS GIYEOG;;;;
+3175;HANGUL LETTER PIEUP-SIOS-TIKEUT;Lo;0;L;<compat> 1123;;;;N;HANGUL LETTER BIEUB SIOS DIGEUD;;;;
+3176;HANGUL LETTER PIEUP-CIEUC;Lo;0;L;<compat> 1127;;;;N;HANGUL LETTER BIEUB JIEUJ;;;;
+3177;HANGUL LETTER PIEUP-THIEUTH;Lo;0;L;<compat> 1129;;;;N;HANGUL LETTER BIEUB TIEUT;;;;
+3178;HANGUL LETTER KAPYEOUNPIEUP;Lo;0;L;<compat> 112B;;;;N;HANGUL LETTER BIEUB SUN GYEONG EUM;;;;
+3179;HANGUL LETTER KAPYEOUNSSANGPIEUP;Lo;0;L;<compat> 112C;;;;N;HANGUL LETTER SSANG BIEUB SUN GYEONG EUM;;;;
+317A;HANGUL LETTER SIOS-KIYEOK;Lo;0;L;<compat> 112D;;;;N;HANGUL LETTER SIOS GIYEOG;;;;
+317B;HANGUL LETTER SIOS-NIEUN;Lo;0;L;<compat> 112E;;;;N;HANGUL LETTER SIOS NIEUN;;;;
+317C;HANGUL LETTER SIOS-TIKEUT;Lo;0;L;<compat> 112F;;;;N;HANGUL LETTER SIOS DIGEUD;;;;
+317D;HANGUL LETTER SIOS-PIEUP;Lo;0;L;<compat> 1132;;;;N;HANGUL LETTER SIOS BIEUB;;;;
+317E;HANGUL LETTER SIOS-CIEUC;Lo;0;L;<compat> 1136;;;;N;HANGUL LETTER SIOS JIEUJ;;;;
+317F;HANGUL LETTER PANSIOS;Lo;0;L;<compat> 1140;;;;N;HANGUL LETTER BAN CHI EUM;;;;
+3180;HANGUL LETTER SSANGIEUNG;Lo;0;L;<compat> 1147;;;;N;HANGUL LETTER SSANG IEUNG;;;;
+3181;HANGUL LETTER YESIEUNG;Lo;0;L;<compat> 114C;;;;N;HANGUL LETTER NGIEUNG;;;;
+3182;HANGUL LETTER YESIEUNG-SIOS;Lo;0;L;<compat> 11F1;;;;N;HANGUL LETTER NGIEUNG SIOS;;;;
+3183;HANGUL LETTER YESIEUNG-PANSIOS;Lo;0;L;<compat> 11F2;;;;N;HANGUL LETTER NGIEUNG BAN CHI EUM;;;;
+3184;HANGUL LETTER KAPYEOUNPHIEUPH;Lo;0;L;<compat> 1157;;;;N;HANGUL LETTER PIEUP SUN GYEONG EUM;;;;
+3185;HANGUL LETTER SSANGHIEUH;Lo;0;L;<compat> 1158;;;;N;HANGUL LETTER SSANG HIEUH;;;;
+3186;HANGUL LETTER YEORINHIEUH;Lo;0;L;<compat> 1159;;;;N;HANGUL LETTER YEOLIN HIEUH;;;;
+3187;HANGUL LETTER YO-YA;Lo;0;L;<compat> 1184;;;;N;HANGUL LETTER YOYA;;;;
+3188;HANGUL LETTER YO-YAE;Lo;0;L;<compat> 1185;;;;N;HANGUL LETTER YOYAE;;;;
+3189;HANGUL LETTER YO-I;Lo;0;L;<compat> 1188;;;;N;HANGUL LETTER YOI;;;;
+318A;HANGUL LETTER YU-YEO;Lo;0;L;<compat> 1191;;;;N;HANGUL LETTER YUYEO;;;;
+318B;HANGUL LETTER YU-YE;Lo;0;L;<compat> 1192;;;;N;HANGUL LETTER YUYE;;;;
+318C;HANGUL LETTER YU-I;Lo;0;L;<compat> 1194;;;;N;HANGUL LETTER YUI;;;;
+318D;HANGUL LETTER ARAEA;Lo;0;L;<compat> 119E;;;;N;HANGUL LETTER ALAE A;;;;
+318E;HANGUL LETTER ARAEAE;Lo;0;L;<compat> 11A1;;;;N;HANGUL LETTER ALAE AE;;;;
+3190;IDEOGRAPHIC ANNOTATION LINKING MARK;So;0;L;;;;;N;KANBUN TATETEN;Kanbun Tateten;;;
+3191;IDEOGRAPHIC ANNOTATION REVERSE MARK;So;0;L;;;;;N;KAERITEN RE;Kaeriten;;;
+3192;IDEOGRAPHIC ANNOTATION ONE MARK;No;0;L;<super> 4E00;;;;N;KAERITEN ITI;Kaeriten;;;
+3193;IDEOGRAPHIC ANNOTATION TWO MARK;No;0;L;<super> 4E8C;;;;N;KAERITEN NI;Kaeriten;;;
+3194;IDEOGRAPHIC ANNOTATION THREE MARK;No;0;L;<super> 4E09;;;;N;KAERITEN SAN;Kaeriten;;;
+3195;IDEOGRAPHIC ANNOTATION FOUR MARK;No;0;L;<super> 56DB;;;;N;KAERITEN SI;Kaeriten;;;
+3196;IDEOGRAPHIC ANNOTATION TOP MARK;So;0;L;<super> 4E0A;;;;N;KAERITEN ZYOU;Kaeriten;;;
+3197;IDEOGRAPHIC ANNOTATION MIDDLE MARK;So;0;L;<super> 4E2D;;;;N;KAERITEN TYUU;Kaeriten;;;
+3198;IDEOGRAPHIC ANNOTATION BOTTOM MARK;So;0;L;<super> 4E0B;;;;N;KAERITEN GE;Kaeriten;;;
+3199;IDEOGRAPHIC ANNOTATION FIRST MARK;So;0;L;<super> 7532;;;;N;KAERITEN KOU;Kaeriten;;;
+319A;IDEOGRAPHIC ANNOTATION SECOND MARK;So;0;L;<super> 4E59;;;;N;KAERITEN OTU;Kaeriten;;;
+319B;IDEOGRAPHIC ANNOTATION THIRD MARK;So;0;L;<super> 4E19;;;;N;KAERITEN HEI;Kaeriten;;;
+319C;IDEOGRAPHIC ANNOTATION FOURTH MARK;So;0;L;<super> 4E01;;;;N;KAERITEN TEI;Kaeriten;;;
+319D;IDEOGRAPHIC ANNOTATION HEAVEN MARK;So;0;L;<super> 5929;;;;N;KAERITEN TEN;Kaeriten;;;
+319E;IDEOGRAPHIC ANNOTATION EARTH MARK;So;0;L;<super> 5730;;;;N;KAERITEN TI;Kaeriten;;;
+319F;IDEOGRAPHIC ANNOTATION MAN MARK;So;0;L;<super> 4EBA;;;;N;KAERITEN ZIN;Kaeriten;;;
+31A0;BOPOMOFO LETTER BU;Lo;0;L;;;;;N;;;;;
+31A1;BOPOMOFO LETTER ZI;Lo;0;L;;;;;N;;;;;
+31A2;BOPOMOFO LETTER JI;Lo;0;L;;;;;N;;;;;
+31A3;BOPOMOFO LETTER GU;Lo;0;L;;;;;N;;;;;
+31A4;BOPOMOFO LETTER EE;Lo;0;L;;;;;N;;;;;
+31A5;BOPOMOFO LETTER ENN;Lo;0;L;;;;;N;;;;;
+31A6;BOPOMOFO LETTER OO;Lo;0;L;;;;;N;;;;;
+31A7;BOPOMOFO LETTER ONN;Lo;0;L;;;;;N;;;;;
+31A8;BOPOMOFO LETTER IR;Lo;0;L;;;;;N;;;;;
+31A9;BOPOMOFO LETTER ANN;Lo;0;L;;;;;N;;;;;
+31AA;BOPOMOFO LETTER INN;Lo;0;L;;;;;N;;;;;
+31AB;BOPOMOFO LETTER UNN;Lo;0;L;;;;;N;;;;;
+31AC;BOPOMOFO LETTER IM;Lo;0;L;;;;;N;;;;;
+31AD;BOPOMOFO LETTER NGG;Lo;0;L;;;;;N;;;;;
+31AE;BOPOMOFO LETTER AINN;Lo;0;L;;;;;N;;;;;
+31AF;BOPOMOFO LETTER AUNN;Lo;0;L;;;;;N;;;;;
+31B0;BOPOMOFO LETTER AM;Lo;0;L;;;;;N;;;;;
+31B1;BOPOMOFO LETTER OM;Lo;0;L;;;;;N;;;;;
+31B2;BOPOMOFO LETTER ONG;Lo;0;L;;;;;N;;;;;
+31B3;BOPOMOFO LETTER INNN;Lo;0;L;;;;;N;;;;;
+31B4;BOPOMOFO FINAL LETTER P;Lo;0;L;;;;;N;;;;;
+31B5;BOPOMOFO FINAL LETTER T;Lo;0;L;;;;;N;;;;;
+31B6;BOPOMOFO FINAL LETTER K;Lo;0;L;;;;;N;;;;;
+31B7;BOPOMOFO FINAL LETTER H;Lo;0;L;;;;;N;;;;;
+3200;PARENTHESIZED HANGUL KIYEOK;So;0;L;<compat> 0028 1100 0029;;;;N;PARENTHESIZED HANGUL GIYEOG;;;;
+3201;PARENTHESIZED HANGUL NIEUN;So;0;L;<compat> 0028 1102 0029;;;;N;;;;;
+3202;PARENTHESIZED HANGUL TIKEUT;So;0;L;<compat> 0028 1103 0029;;;;N;PARENTHESIZED HANGUL DIGEUD;;;;
+3203;PARENTHESIZED HANGUL RIEUL;So;0;L;<compat> 0028 1105 0029;;;;N;PARENTHESIZED HANGUL LIEUL;;;;
+3204;PARENTHESIZED HANGUL MIEUM;So;0;L;<compat> 0028 1106 0029;;;;N;;;;;
+3205;PARENTHESIZED HANGUL PIEUP;So;0;L;<compat> 0028 1107 0029;;;;N;PARENTHESIZED HANGUL BIEUB;;;;
+3206;PARENTHESIZED HANGUL SIOS;So;0;L;<compat> 0028 1109 0029;;;;N;;;;;
+3207;PARENTHESIZED HANGUL IEUNG;So;0;L;<compat> 0028 110B 0029;;;;N;;;;;
+3208;PARENTHESIZED HANGUL CIEUC;So;0;L;<compat> 0028 110C 0029;;;;N;PARENTHESIZED HANGUL JIEUJ;;;;
+3209;PARENTHESIZED HANGUL CHIEUCH;So;0;L;<compat> 0028 110E 0029;;;;N;PARENTHESIZED HANGUL CIEUC;;;;
+320A;PARENTHESIZED HANGUL KHIEUKH;So;0;L;<compat> 0028 110F 0029;;;;N;PARENTHESIZED HANGUL KIYEOK;;;;
+320B;PARENTHESIZED HANGUL THIEUTH;So;0;L;<compat> 0028 1110 0029;;;;N;PARENTHESIZED HANGUL TIEUT;;;;
+320C;PARENTHESIZED HANGUL PHIEUPH;So;0;L;<compat> 0028 1111 0029;;;;N;PARENTHESIZED HANGUL PIEUP;;;;
+320D;PARENTHESIZED HANGUL HIEUH;So;0;L;<compat> 0028 1112 0029;;;;N;;;;;
+320E;PARENTHESIZED HANGUL KIYEOK A;So;0;L;<compat> 0028 1100 1161 0029;;;;N;PARENTHESIZED HANGUL GA;;;;
+320F;PARENTHESIZED HANGUL NIEUN A;So;0;L;<compat> 0028 1102 1161 0029;;;;N;PARENTHESIZED HANGUL NA;;;;
+3210;PARENTHESIZED HANGUL TIKEUT A;So;0;L;<compat> 0028 1103 1161 0029;;;;N;PARENTHESIZED HANGUL DA;;;;
+3211;PARENTHESIZED HANGUL RIEUL A;So;0;L;<compat> 0028 1105 1161 0029;;;;N;PARENTHESIZED HANGUL LA;;;;
+3212;PARENTHESIZED HANGUL MIEUM A;So;0;L;<compat> 0028 1106 1161 0029;;;;N;PARENTHESIZED HANGUL MA;;;;
+3213;PARENTHESIZED HANGUL PIEUP A;So;0;L;<compat> 0028 1107 1161 0029;;;;N;PARENTHESIZED HANGUL BA;;;;
+3214;PARENTHESIZED HANGUL SIOS A;So;0;L;<compat> 0028 1109 1161 0029;;;;N;PARENTHESIZED HANGUL SA;;;;
+3215;PARENTHESIZED HANGUL IEUNG A;So;0;L;<compat> 0028 110B 1161 0029;;;;N;PARENTHESIZED HANGUL A;;;;
+3216;PARENTHESIZED HANGUL CIEUC A;So;0;L;<compat> 0028 110C 1161 0029;;;;N;PARENTHESIZED HANGUL JA;;;;
+3217;PARENTHESIZED HANGUL CHIEUCH A;So;0;L;<compat> 0028 110E 1161 0029;;;;N;PARENTHESIZED HANGUL CA;;;;
+3218;PARENTHESIZED HANGUL KHIEUKH A;So;0;L;<compat> 0028 110F 1161 0029;;;;N;PARENTHESIZED HANGUL KA;;;;
+3219;PARENTHESIZED HANGUL THIEUTH A;So;0;L;<compat> 0028 1110 1161 0029;;;;N;PARENTHESIZED HANGUL TA;;;;
+321A;PARENTHESIZED HANGUL PHIEUPH A;So;0;L;<compat> 0028 1111 1161 0029;;;;N;PARENTHESIZED HANGUL PA;;;;
+321B;PARENTHESIZED HANGUL HIEUH A;So;0;L;<compat> 0028 1112 1161 0029;;;;N;PARENTHESIZED HANGUL HA;;;;
+321C;PARENTHESIZED HANGUL CIEUC U;So;0;L;<compat> 0028 110C 116E 0029;;;;N;PARENTHESIZED HANGUL JU;;;;
+3220;PARENTHESIZED IDEOGRAPH ONE;No;0;L;<compat> 0028 4E00 0029;;;;N;;;;;
+3221;PARENTHESIZED IDEOGRAPH TWO;No;0;L;<compat> 0028 4E8C 0029;;;;N;;;;;
+3222;PARENTHESIZED IDEOGRAPH THREE;No;0;L;<compat> 0028 4E09 0029;;;;N;;;;;
+3223;PARENTHESIZED IDEOGRAPH FOUR;No;0;L;<compat> 0028 56DB 0029;;;;N;;;;;
+3224;PARENTHESIZED IDEOGRAPH FIVE;No;0;L;<compat> 0028 4E94 0029;;;;N;;;;;
+3225;PARENTHESIZED IDEOGRAPH SIX;No;0;L;<compat> 0028 516D 0029;;;;N;;;;;
+3226;PARENTHESIZED IDEOGRAPH SEVEN;No;0;L;<compat> 0028 4E03 0029;;;;N;;;;;
+3227;PARENTHESIZED IDEOGRAPH EIGHT;No;0;L;<compat> 0028 516B 0029;;;;N;;;;;
+3228;PARENTHESIZED IDEOGRAPH NINE;No;0;L;<compat> 0028 4E5D 0029;;;;N;;;;;
+3229;PARENTHESIZED IDEOGRAPH TEN;No;0;L;<compat> 0028 5341 0029;;;;N;;;;;
+322A;PARENTHESIZED IDEOGRAPH MOON;So;0;L;<compat> 0028 6708 0029;;;;N;;;;;
+322B;PARENTHESIZED IDEOGRAPH FIRE;So;0;L;<compat> 0028 706B 0029;;;;N;;;;;
+322C;PARENTHESIZED IDEOGRAPH WATER;So;0;L;<compat> 0028 6C34 0029;;;;N;;;;;
+322D;PARENTHESIZED IDEOGRAPH WOOD;So;0;L;<compat> 0028 6728 0029;;;;N;;;;;
+322E;PARENTHESIZED IDEOGRAPH METAL;So;0;L;<compat> 0028 91D1 0029;;;;N;;;;;
+322F;PARENTHESIZED IDEOGRAPH EARTH;So;0;L;<compat> 0028 571F 0029;;;;N;;;;;
+3230;PARENTHESIZED IDEOGRAPH SUN;So;0;L;<compat> 0028 65E5 0029;;;;N;;;;;
+3231;PARENTHESIZED IDEOGRAPH STOCK;So;0;L;<compat> 0028 682A 0029;;;;N;;;;;
+3232;PARENTHESIZED IDEOGRAPH HAVE;So;0;L;<compat> 0028 6709 0029;;;;N;;;;;
+3233;PARENTHESIZED IDEOGRAPH SOCIETY;So;0;L;<compat> 0028 793E 0029;;;;N;;;;;
+3234;PARENTHESIZED IDEOGRAPH NAME;So;0;L;<compat> 0028 540D 0029;;;;N;;;;;
+3235;PARENTHESIZED IDEOGRAPH SPECIAL;So;0;L;<compat> 0028 7279 0029;;;;N;;;;;
+3236;PARENTHESIZED IDEOGRAPH FINANCIAL;So;0;L;<compat> 0028 8CA1 0029;;;;N;;;;;
+3237;PARENTHESIZED IDEOGRAPH CONGRATULATION;So;0;L;<compat> 0028 795D 0029;;;;N;;;;;
+3238;PARENTHESIZED IDEOGRAPH LABOR;So;0;L;<compat> 0028 52B4 0029;;;;N;;;;;
+3239;PARENTHESIZED IDEOGRAPH REPRESENT;So;0;L;<compat> 0028 4EE3 0029;;;;N;;;;;
+323A;PARENTHESIZED IDEOGRAPH CALL;So;0;L;<compat> 0028 547C 0029;;;;N;;;;;
+323B;PARENTHESIZED IDEOGRAPH STUDY;So;0;L;<compat> 0028 5B66 0029;;;;N;;;;;
+323C;PARENTHESIZED IDEOGRAPH SUPERVISE;So;0;L;<compat> 0028 76E3 0029;;;;N;;;;;
+323D;PARENTHESIZED IDEOGRAPH ENTERPRISE;So;0;L;<compat> 0028 4F01 0029;;;;N;;;;;
+323E;PARENTHESIZED IDEOGRAPH RESOURCE;So;0;L;<compat> 0028 8CC7 0029;;;;N;;;;;
+323F;PARENTHESIZED IDEOGRAPH ALLIANCE;So;0;L;<compat> 0028 5354 0029;;;;N;;;;;
+3240;PARENTHESIZED IDEOGRAPH FESTIVAL;So;0;L;<compat> 0028 796D 0029;;;;N;;;;;
+3241;PARENTHESIZED IDEOGRAPH REST;So;0;L;<compat> 0028 4F11 0029;;;;N;;;;;
+3242;PARENTHESIZED IDEOGRAPH SELF;So;0;L;<compat> 0028 81EA 0029;;;;N;;;;;
+3243;PARENTHESIZED IDEOGRAPH REACH;So;0;L;<compat> 0028 81F3 0029;;;;N;;;;;
+3260;CIRCLED HANGUL KIYEOK;So;0;L;<circle> 1100;;;;N;CIRCLED HANGUL GIYEOG;;;;
+3261;CIRCLED HANGUL NIEUN;So;0;L;<circle> 1102;;;;N;;;;;
+3262;CIRCLED HANGUL TIKEUT;So;0;L;<circle> 1103;;;;N;CIRCLED HANGUL DIGEUD;;;;
+3263;CIRCLED HANGUL RIEUL;So;0;L;<circle> 1105;;;;N;CIRCLED HANGUL LIEUL;;;;
+3264;CIRCLED HANGUL MIEUM;So;0;L;<circle> 1106;;;;N;;;;;
+3265;CIRCLED HANGUL PIEUP;So;0;L;<circle> 1107;;;;N;CIRCLED HANGUL BIEUB;;;;
+3266;CIRCLED HANGUL SIOS;So;0;L;<circle> 1109;;;;N;;;;;
+3267;CIRCLED HANGUL IEUNG;So;0;L;<circle> 110B;;;;N;;;;;
+3268;CIRCLED HANGUL CIEUC;So;0;L;<circle> 110C;;;;N;CIRCLED HANGUL JIEUJ;;;;
+3269;CIRCLED HANGUL CHIEUCH;So;0;L;<circle> 110E;;;;N;CIRCLED HANGUL CIEUC;;;;
+326A;CIRCLED HANGUL KHIEUKH;So;0;L;<circle> 110F;;;;N;CIRCLED HANGUL KIYEOK;;;;
+326B;CIRCLED HANGUL THIEUTH;So;0;L;<circle> 1110;;;;N;CIRCLED HANGUL TIEUT;;;;
+326C;CIRCLED HANGUL PHIEUPH;So;0;L;<circle> 1111;;;;N;CIRCLED HANGUL PIEUP;;;;
+326D;CIRCLED HANGUL HIEUH;So;0;L;<circle> 1112;;;;N;;;;;
+326E;CIRCLED HANGUL KIYEOK A;So;0;L;<circle> 1100 1161;;;;N;CIRCLED HANGUL GA;;;;
+326F;CIRCLED HANGUL NIEUN A;So;0;L;<circle> 1102 1161;;;;N;CIRCLED HANGUL NA;;;;
+3270;CIRCLED HANGUL TIKEUT A;So;0;L;<circle> 1103 1161;;;;N;CIRCLED HANGUL DA;;;;
+3271;CIRCLED HANGUL RIEUL A;So;0;L;<circle> 1105 1161;;;;N;CIRCLED HANGUL LA;;;;
+3272;CIRCLED HANGUL MIEUM A;So;0;L;<circle> 1106 1161;;;;N;CIRCLED HANGUL MA;;;;
+3273;CIRCLED HANGUL PIEUP A;So;0;L;<circle> 1107 1161;;;;N;CIRCLED HANGUL BA;;;;
+3274;CIRCLED HANGUL SIOS A;So;0;L;<circle> 1109 1161;;;;N;CIRCLED HANGUL SA;;;;
+3275;CIRCLED HANGUL IEUNG A;So;0;L;<circle> 110B 1161;;;;N;CIRCLED HANGUL A;;;;
+3276;CIRCLED HANGUL CIEUC A;So;0;L;<circle> 110C 1161;;;;N;CIRCLED HANGUL JA;;;;
+3277;CIRCLED HANGUL CHIEUCH A;So;0;L;<circle> 110E 1161;;;;N;CIRCLED HANGUL CA;;;;
+3278;CIRCLED HANGUL KHIEUKH A;So;0;L;<circle> 110F 1161;;;;N;CIRCLED HANGUL KA;;;;
+3279;CIRCLED HANGUL THIEUTH A;So;0;L;<circle> 1110 1161;;;;N;CIRCLED HANGUL TA;;;;
+327A;CIRCLED HANGUL PHIEUPH A;So;0;L;<circle> 1111 1161;;;;N;CIRCLED HANGUL PA;;;;
+327B;CIRCLED HANGUL HIEUH A;So;0;L;<circle> 1112 1161;;;;N;CIRCLED HANGUL HA;;;;
+327F;KOREAN STANDARD SYMBOL;So;0;L;;;;;N;;;;;
+3280;CIRCLED IDEOGRAPH ONE;No;0;L;<circle> 4E00;;;1;N;;;;;
+3281;CIRCLED IDEOGRAPH TWO;No;0;L;<circle> 4E8C;;;2;N;;;;;
+3282;CIRCLED IDEOGRAPH THREE;No;0;L;<circle> 4E09;;;3;N;;;;;
+3283;CIRCLED IDEOGRAPH FOUR;No;0;L;<circle> 56DB;;;4;N;;;;;
+3284;CIRCLED IDEOGRAPH FIVE;No;0;L;<circle> 4E94;;;5;N;;;;;
+3285;CIRCLED IDEOGRAPH SIX;No;0;L;<circle> 516D;;;6;N;;;;;
+3286;CIRCLED IDEOGRAPH SEVEN;No;0;L;<circle> 4E03;;;7;N;;;;;
+3287;CIRCLED IDEOGRAPH EIGHT;No;0;L;<circle> 516B;;;8;N;;;;;
+3288;CIRCLED IDEOGRAPH NINE;No;0;L;<circle> 4E5D;;;9;N;;;;;
+3289;CIRCLED IDEOGRAPH TEN;No;0;L;<circle> 5341;;;10;N;;;;;
+328A;CIRCLED IDEOGRAPH MOON;So;0;L;<circle> 6708;;;;N;;;;;
+328B;CIRCLED IDEOGRAPH FIRE;So;0;L;<circle> 706B;;;;N;;;;;
+328C;CIRCLED IDEOGRAPH WATER;So;0;L;<circle> 6C34;;;;N;;;;;
+328D;CIRCLED IDEOGRAPH WOOD;So;0;L;<circle> 6728;;;;N;;;;;
+328E;CIRCLED IDEOGRAPH METAL;So;0;L;<circle> 91D1;;;;N;;;;;
+328F;CIRCLED IDEOGRAPH EARTH;So;0;L;<circle> 571F;;;;N;;;;;
+3290;CIRCLED IDEOGRAPH SUN;So;0;L;<circle> 65E5;;;;N;;;;;
+3291;CIRCLED IDEOGRAPH STOCK;So;0;L;<circle> 682A;;;;N;;;;;
+3292;CIRCLED IDEOGRAPH HAVE;So;0;L;<circle> 6709;;;;N;;;;;
+3293;CIRCLED IDEOGRAPH SOCIETY;So;0;L;<circle> 793E;;;;N;;;;;
+3294;CIRCLED IDEOGRAPH NAME;So;0;L;<circle> 540D;;;;N;;;;;
+3295;CIRCLED IDEOGRAPH SPECIAL;So;0;L;<circle> 7279;;;;N;;;;;
+3296;CIRCLED IDEOGRAPH FINANCIAL;So;0;L;<circle> 8CA1;;;;N;;;;;
+3297;CIRCLED IDEOGRAPH CONGRATULATION;So;0;L;<circle> 795D;;;;N;;;;;
+3298;CIRCLED IDEOGRAPH LABOR;So;0;L;<circle> 52B4;;;;N;;;;;
+3299;CIRCLED IDEOGRAPH SECRET;So;0;L;<circle> 79D8;;;;N;;;;;
+329A;CIRCLED IDEOGRAPH MALE;So;0;L;<circle> 7537;;;;N;;;;;
+329B;CIRCLED IDEOGRAPH FEMALE;So;0;L;<circle> 5973;;;;N;;;;;
+329C;CIRCLED IDEOGRAPH SUITABLE;So;0;L;<circle> 9069;;;;N;;;;;
+329D;CIRCLED IDEOGRAPH EXCELLENT;So;0;L;<circle> 512A;;;;N;;;;;
+329E;CIRCLED IDEOGRAPH PRINT;So;0;L;<circle> 5370;;;;N;;;;;
+329F;CIRCLED IDEOGRAPH ATTENTION;So;0;L;<circle> 6CE8;;;;N;;;;;
+32A0;CIRCLED IDEOGRAPH ITEM;So;0;L;<circle> 9805;;;;N;;;;;
+32A1;CIRCLED IDEOGRAPH REST;So;0;L;<circle> 4F11;;;;N;;;;;
+32A2;CIRCLED IDEOGRAPH COPY;So;0;L;<circle> 5199;;;;N;;;;;
+32A3;CIRCLED IDEOGRAPH CORRECT;So;0;L;<circle> 6B63;;;;N;;;;;
+32A4;CIRCLED IDEOGRAPH HIGH;So;0;L;<circle> 4E0A;;;;N;;;;;
+32A5;CIRCLED IDEOGRAPH CENTRE;So;0;L;<circle> 4E2D;;;;N;CIRCLED IDEOGRAPH CENTER;;;;
+32A6;CIRCLED IDEOGRAPH LOW;So;0;L;<circle> 4E0B;;;;N;;;;;
+32A7;CIRCLED IDEOGRAPH LEFT;So;0;L;<circle> 5DE6;;;;N;;;;;
+32A8;CIRCLED IDEOGRAPH RIGHT;So;0;L;<circle> 53F3;;;;N;;;;;
+32A9;CIRCLED IDEOGRAPH MEDICINE;So;0;L;<circle> 533B;;;;N;;;;;
+32AA;CIRCLED IDEOGRAPH RELIGION;So;0;L;<circle> 5B97;;;;N;;;;;
+32AB;CIRCLED IDEOGRAPH STUDY;So;0;L;<circle> 5B66;;;;N;;;;;
+32AC;CIRCLED IDEOGRAPH SUPERVISE;So;0;L;<circle> 76E3;;;;N;;;;;
+32AD;CIRCLED IDEOGRAPH ENTERPRISE;So;0;L;<circle> 4F01;;;;N;;;;;
+32AE;CIRCLED IDEOGRAPH RESOURCE;So;0;L;<circle> 8CC7;;;;N;;;;;
+32AF;CIRCLED IDEOGRAPH ALLIANCE;So;0;L;<circle> 5354;;;;N;;;;;
+32B0;CIRCLED IDEOGRAPH NIGHT;So;0;L;<circle> 591C;;;;N;;;;;
+32C0;IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY;So;0;L;<compat> 0031 6708;;;;N;;;;;
+32C1;IDEOGRAPHIC TELEGRAPH SYMBOL FOR FEBRUARY;So;0;L;<compat> 0032 6708;;;;N;;;;;
+32C2;IDEOGRAPHIC TELEGRAPH SYMBOL FOR MARCH;So;0;L;<compat> 0033 6708;;;;N;;;;;
+32C3;IDEOGRAPHIC TELEGRAPH SYMBOL FOR APRIL;So;0;L;<compat> 0034 6708;;;;N;;;;;
+32C4;IDEOGRAPHIC TELEGRAPH SYMBOL FOR MAY;So;0;L;<compat> 0035 6708;;;;N;;;;;
+32C5;IDEOGRAPHIC TELEGRAPH SYMBOL FOR JUNE;So;0;L;<compat> 0036 6708;;;;N;;;;;
+32C6;IDEOGRAPHIC TELEGRAPH SYMBOL FOR JULY;So;0;L;<compat> 0037 6708;;;;N;;;;;
+32C7;IDEOGRAPHIC TELEGRAPH SYMBOL FOR AUGUST;So;0;L;<compat> 0038 6708;;;;N;;;;;
+32C8;IDEOGRAPHIC TELEGRAPH SYMBOL FOR SEPTEMBER;So;0;L;<compat> 0039 6708;;;;N;;;;;
+32C9;IDEOGRAPHIC TELEGRAPH SYMBOL FOR OCTOBER;So;0;L;<compat> 0031 0030 6708;;;;N;;;;;
+32CA;IDEOGRAPHIC TELEGRAPH SYMBOL FOR NOVEMBER;So;0;L;<compat> 0031 0031 6708;;;;N;;;;;
+32CB;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER;So;0;L;<compat> 0031 0032 6708;;;;N;;;;;
+32D0;CIRCLED KATAKANA A;So;0;L;<circle> 30A2;;;;N;;;;;
+32D1;CIRCLED KATAKANA I;So;0;L;<circle> 30A4;;;;N;;;;;
+32D2;CIRCLED KATAKANA U;So;0;L;<circle> 30A6;;;;N;;;;;
+32D3;CIRCLED KATAKANA E;So;0;L;<circle> 30A8;;;;N;;;;;
+32D4;CIRCLED KATAKANA O;So;0;L;<circle> 30AA;;;;N;;;;;
+32D5;CIRCLED KATAKANA KA;So;0;L;<circle> 30AB;;;;N;;;;;
+32D6;CIRCLED KATAKANA KI;So;0;L;<circle> 30AD;;;;N;;;;;
+32D7;CIRCLED KATAKANA KU;So;0;L;<circle> 30AF;;;;N;;;;;
+32D8;CIRCLED KATAKANA KE;So;0;L;<circle> 30B1;;;;N;;;;;
+32D9;CIRCLED KATAKANA KO;So;0;L;<circle> 30B3;;;;N;;;;;
+32DA;CIRCLED KATAKANA SA;So;0;L;<circle> 30B5;;;;N;;;;;
+32DB;CIRCLED KATAKANA SI;So;0;L;<circle> 30B7;;;;N;;;;;
+32DC;CIRCLED KATAKANA SU;So;0;L;<circle> 30B9;;;;N;;;;;
+32DD;CIRCLED KATAKANA SE;So;0;L;<circle> 30BB;;;;N;;;;;
+32DE;CIRCLED KATAKANA SO;So;0;L;<circle> 30BD;;;;N;;;;;
+32DF;CIRCLED KATAKANA TA;So;0;L;<circle> 30BF;;;;N;;;;;
+32E0;CIRCLED KATAKANA TI;So;0;L;<circle> 30C1;;;;N;;;;;
+32E1;CIRCLED KATAKANA TU;So;0;L;<circle> 30C4;;;;N;;;;;
+32E2;CIRCLED KATAKANA TE;So;0;L;<circle> 30C6;;;;N;;;;;
+32E3;CIRCLED KATAKANA TO;So;0;L;<circle> 30C8;;;;N;;;;;
+32E4;CIRCLED KATAKANA NA;So;0;L;<circle> 30CA;;;;N;;;;;
+32E5;CIRCLED KATAKANA NI;So;0;L;<circle> 30CB;;;;N;;;;;
+32E6;CIRCLED KATAKANA NU;So;0;L;<circle> 30CC;;;;N;;;;;
+32E7;CIRCLED KATAKANA NE;So;0;L;<circle> 30CD;;;;N;;;;;
+32E8;CIRCLED KATAKANA NO;So;0;L;<circle> 30CE;;;;N;;;;;
+32E9;CIRCLED KATAKANA HA;So;0;L;<circle> 30CF;;;;N;;;;;
+32EA;CIRCLED KATAKANA HI;So;0;L;<circle> 30D2;;;;N;;;;;
+32EB;CIRCLED KATAKANA HU;So;0;L;<circle> 30D5;;;;N;;;;;
+32EC;CIRCLED KATAKANA HE;So;0;L;<circle> 30D8;;;;N;;;;;
+32ED;CIRCLED KATAKANA HO;So;0;L;<circle> 30DB;;;;N;;;;;
+32EE;CIRCLED KATAKANA MA;So;0;L;<circle> 30DE;;;;N;;;;;
+32EF;CIRCLED KATAKANA MI;So;0;L;<circle> 30DF;;;;N;;;;;
+32F0;CIRCLED KATAKANA MU;So;0;L;<circle> 30E0;;;;N;;;;;
+32F1;CIRCLED KATAKANA ME;So;0;L;<circle> 30E1;;;;N;;;;;
+32F2;CIRCLED KATAKANA MO;So;0;L;<circle> 30E2;;;;N;;;;;
+32F3;CIRCLED KATAKANA YA;So;0;L;<circle> 30E4;;;;N;;;;;
+32F4;CIRCLED KATAKANA YU;So;0;L;<circle> 30E6;;;;N;;;;;
+32F5;CIRCLED KATAKANA YO;So;0;L;<circle> 30E8;;;;N;;;;;
+32F6;CIRCLED KATAKANA RA;So;0;L;<circle> 30E9;;;;N;;;;;
+32F7;CIRCLED KATAKANA RI;So;0;L;<circle> 30EA;;;;N;;;;;
+32F8;CIRCLED KATAKANA RU;So;0;L;<circle> 30EB;;;;N;;;;;
+32F9;CIRCLED KATAKANA RE;So;0;L;<circle> 30EC;;;;N;;;;;
+32FA;CIRCLED KATAKANA RO;So;0;L;<circle> 30ED;;;;N;;;;;
+32FB;CIRCLED KATAKANA WA;So;0;L;<circle> 30EF;;;;N;;;;;
+32FC;CIRCLED KATAKANA WI;So;0;L;<circle> 30F0;;;;N;;;;;
+32FD;CIRCLED KATAKANA WE;So;0;L;<circle> 30F1;;;;N;;;;;
+32FE;CIRCLED KATAKANA WO;So;0;L;<circle> 30F2;;;;N;;;;;
+3300;SQUARE APAATO;So;0;L;<square> 30A2 30D1 30FC 30C8;;;;N;SQUARED APAATO;;;;
+3301;SQUARE ARUHUA;So;0;L;<square> 30A2 30EB 30D5 30A1;;;;N;SQUARED ARUHUA;;;;
+3302;SQUARE ANPEA;So;0;L;<square> 30A2 30F3 30DA 30A2;;;;N;SQUARED ANPEA;;;;
+3303;SQUARE AARU;So;0;L;<square> 30A2 30FC 30EB;;;;N;SQUARED AARU;;;;
+3304;SQUARE ININGU;So;0;L;<square> 30A4 30CB 30F3 30B0;;;;N;SQUARED ININGU;;;;
+3305;SQUARE INTI;So;0;L;<square> 30A4 30F3 30C1;;;;N;SQUARED INTI;;;;
+3306;SQUARE UON;So;0;L;<square> 30A6 30A9 30F3;;;;N;SQUARED UON;;;;
+3307;SQUARE ESUKUUDO;So;0;L;<square> 30A8 30B9 30AF 30FC 30C9;;;;N;SQUARED ESUKUUDO;;;;
+3308;SQUARE EEKAA;So;0;L;<square> 30A8 30FC 30AB 30FC;;;;N;SQUARED EEKAA;;;;
+3309;SQUARE ONSU;So;0;L;<square> 30AA 30F3 30B9;;;;N;SQUARED ONSU;;;;
+330A;SQUARE OOMU;So;0;L;<square> 30AA 30FC 30E0;;;;N;SQUARED OOMU;;;;
+330B;SQUARE KAIRI;So;0;L;<square> 30AB 30A4 30EA;;;;N;SQUARED KAIRI;;;;
+330C;SQUARE KARATTO;So;0;L;<square> 30AB 30E9 30C3 30C8;;;;N;SQUARED KARATTO;;;;
+330D;SQUARE KARORII;So;0;L;<square> 30AB 30ED 30EA 30FC;;;;N;SQUARED KARORII;;;;
+330E;SQUARE GARON;So;0;L;<square> 30AC 30ED 30F3;;;;N;SQUARED GARON;;;;
+330F;SQUARE GANMA;So;0;L;<square> 30AC 30F3 30DE;;;;N;SQUARED GANMA;;;;
+3310;SQUARE GIGA;So;0;L;<square> 30AE 30AC;;;;N;SQUARED GIGA;;;;
+3311;SQUARE GINII;So;0;L;<square> 30AE 30CB 30FC;;;;N;SQUARED GINII;;;;
+3312;SQUARE KYURII;So;0;L;<square> 30AD 30E5 30EA 30FC;;;;N;SQUARED KYURII;;;;
+3313;SQUARE GIRUDAA;So;0;L;<square> 30AE 30EB 30C0 30FC;;;;N;SQUARED GIRUDAA;;;;
+3314;SQUARE KIRO;So;0;L;<square> 30AD 30ED;;;;N;SQUARED KIRO;;;;
+3315;SQUARE KIROGURAMU;So;0;L;<square> 30AD 30ED 30B0 30E9 30E0;;;;N;SQUARED KIROGURAMU;;;;
+3316;SQUARE KIROMEETORU;So;0;L;<square> 30AD 30ED 30E1 30FC 30C8 30EB;;;;N;SQUARED KIROMEETORU;;;;
+3317;SQUARE KIROWATTO;So;0;L;<square> 30AD 30ED 30EF 30C3 30C8;;;;N;SQUARED KIROWATTO;;;;
+3318;SQUARE GURAMU;So;0;L;<square> 30B0 30E9 30E0;;;;N;SQUARED GURAMU;;;;
+3319;SQUARE GURAMUTON;So;0;L;<square> 30B0 30E9 30E0 30C8 30F3;;;;N;SQUARED GURAMUTON;;;;
+331A;SQUARE KURUZEIRO;So;0;L;<square> 30AF 30EB 30BC 30A4 30ED;;;;N;SQUARED KURUZEIRO;;;;
+331B;SQUARE KUROONE;So;0;L;<square> 30AF 30ED 30FC 30CD;;;;N;SQUARED KUROONE;;;;
+331C;SQUARE KEESU;So;0;L;<square> 30B1 30FC 30B9;;;;N;SQUARED KEESU;;;;
+331D;SQUARE KORUNA;So;0;L;<square> 30B3 30EB 30CA;;;;N;SQUARED KORUNA;;;;
+331E;SQUARE KOOPO;So;0;L;<square> 30B3 30FC 30DD;;;;N;SQUARED KOOPO;;;;
+331F;SQUARE SAIKURU;So;0;L;<square> 30B5 30A4 30AF 30EB;;;;N;SQUARED SAIKURU;;;;
+3320;SQUARE SANTIIMU;So;0;L;<square> 30B5 30F3 30C1 30FC 30E0;;;;N;SQUARED SANTIIMU;;;;
+3321;SQUARE SIRINGU;So;0;L;<square> 30B7 30EA 30F3 30B0;;;;N;SQUARED SIRINGU;;;;
+3322;SQUARE SENTI;So;0;L;<square> 30BB 30F3 30C1;;;;N;SQUARED SENTI;;;;
+3323;SQUARE SENTO;So;0;L;<square> 30BB 30F3 30C8;;;;N;SQUARED SENTO;;;;
+3324;SQUARE DAASU;So;0;L;<square> 30C0 30FC 30B9;;;;N;SQUARED DAASU;;;;
+3325;SQUARE DESI;So;0;L;<square> 30C7 30B7;;;;N;SQUARED DESI;;;;
+3326;SQUARE DORU;So;0;L;<square> 30C9 30EB;;;;N;SQUARED DORU;;;;
+3327;SQUARE TON;So;0;L;<square> 30C8 30F3;;;;N;SQUARED TON;;;;
+3328;SQUARE NANO;So;0;L;<square> 30CA 30CE;;;;N;SQUARED NANO;;;;
+3329;SQUARE NOTTO;So;0;L;<square> 30CE 30C3 30C8;;;;N;SQUARED NOTTO;;;;
+332A;SQUARE HAITU;So;0;L;<square> 30CF 30A4 30C4;;;;N;SQUARED HAITU;;;;
+332B;SQUARE PAASENTO;So;0;L;<square> 30D1 30FC 30BB 30F3 30C8;;;;N;SQUARED PAASENTO;;;;
+332C;SQUARE PAATU;So;0;L;<square> 30D1 30FC 30C4;;;;N;SQUARED PAATU;;;;
+332D;SQUARE BAARERU;So;0;L;<square> 30D0 30FC 30EC 30EB;;;;N;SQUARED BAARERU;;;;
+332E;SQUARE PIASUTORU;So;0;L;<square> 30D4 30A2 30B9 30C8 30EB;;;;N;SQUARED PIASUTORU;;;;
+332F;SQUARE PIKURU;So;0;L;<square> 30D4 30AF 30EB;;;;N;SQUARED PIKURU;;;;
+3330;SQUARE PIKO;So;0;L;<square> 30D4 30B3;;;;N;SQUARED PIKO;;;;
+3331;SQUARE BIRU;So;0;L;<square> 30D3 30EB;;;;N;SQUARED BIRU;;;;
+3332;SQUARE HUARADDO;So;0;L;<square> 30D5 30A1 30E9 30C3 30C9;;;;N;SQUARED HUARADDO;;;;
+3333;SQUARE HUIITO;So;0;L;<square> 30D5 30A3 30FC 30C8;;;;N;SQUARED HUIITO;;;;
+3334;SQUARE BUSSYERU;So;0;L;<square> 30D6 30C3 30B7 30A7 30EB;;;;N;SQUARED BUSSYERU;;;;
+3335;SQUARE HURAN;So;0;L;<square> 30D5 30E9 30F3;;;;N;SQUARED HURAN;;;;
+3336;SQUARE HEKUTAARU;So;0;L;<square> 30D8 30AF 30BF 30FC 30EB;;;;N;SQUARED HEKUTAARU;;;;
+3337;SQUARE PESO;So;0;L;<square> 30DA 30BD;;;;N;SQUARED PESO;;;;
+3338;SQUARE PENIHI;So;0;L;<square> 30DA 30CB 30D2;;;;N;SQUARED PENIHI;;;;
+3339;SQUARE HERUTU;So;0;L;<square> 30D8 30EB 30C4;;;;N;SQUARED HERUTU;;;;
+333A;SQUARE PENSU;So;0;L;<square> 30DA 30F3 30B9;;;;N;SQUARED PENSU;;;;
+333B;SQUARE PEEZI;So;0;L;<square> 30DA 30FC 30B8;;;;N;SQUARED PEEZI;;;;
+333C;SQUARE BEETA;So;0;L;<square> 30D9 30FC 30BF;;;;N;SQUARED BEETA;;;;
+333D;SQUARE POINTO;So;0;L;<square> 30DD 30A4 30F3 30C8;;;;N;SQUARED POINTO;;;;
+333E;SQUARE BORUTO;So;0;L;<square> 30DC 30EB 30C8;;;;N;SQUARED BORUTO;;;;
+333F;SQUARE HON;So;0;L;<square> 30DB 30F3;;;;N;SQUARED HON;;;;
+3340;SQUARE PONDO;So;0;L;<square> 30DD 30F3 30C9;;;;N;SQUARED PONDO;;;;
+3341;SQUARE HOORU;So;0;L;<square> 30DB 30FC 30EB;;;;N;SQUARED HOORU;;;;
+3342;SQUARE HOON;So;0;L;<square> 30DB 30FC 30F3;;;;N;SQUARED HOON;;;;
+3343;SQUARE MAIKURO;So;0;L;<square> 30DE 30A4 30AF 30ED;;;;N;SQUARED MAIKURO;;;;
+3344;SQUARE MAIRU;So;0;L;<square> 30DE 30A4 30EB;;;;N;SQUARED MAIRU;;;;
+3345;SQUARE MAHHA;So;0;L;<square> 30DE 30C3 30CF;;;;N;SQUARED MAHHA;;;;
+3346;SQUARE MARUKU;So;0;L;<square> 30DE 30EB 30AF;;;;N;SQUARED MARUKU;;;;
+3347;SQUARE MANSYON;So;0;L;<square> 30DE 30F3 30B7 30E7 30F3;;;;N;SQUARED MANSYON;;;;
+3348;SQUARE MIKURON;So;0;L;<square> 30DF 30AF 30ED 30F3;;;;N;SQUARED MIKURON;;;;
+3349;SQUARE MIRI;So;0;L;<square> 30DF 30EA;;;;N;SQUARED MIRI;;;;
+334A;SQUARE MIRIBAARU;So;0;L;<square> 30DF 30EA 30D0 30FC 30EB;;;;N;SQUARED MIRIBAARU;;;;
+334B;SQUARE MEGA;So;0;L;<square> 30E1 30AC;;;;N;SQUARED MEGA;;;;
+334C;SQUARE MEGATON;So;0;L;<square> 30E1 30AC 30C8 30F3;;;;N;SQUARED MEGATON;;;;
+334D;SQUARE MEETORU;So;0;L;<square> 30E1 30FC 30C8 30EB;;;;N;SQUARED MEETORU;;;;
+334E;SQUARE YAADO;So;0;L;<square> 30E4 30FC 30C9;;;;N;SQUARED YAADO;;;;
+334F;SQUARE YAARU;So;0;L;<square> 30E4 30FC 30EB;;;;N;SQUARED YAARU;;;;
+3350;SQUARE YUAN;So;0;L;<square> 30E6 30A2 30F3;;;;N;SQUARED YUAN;;;;
+3351;SQUARE RITTORU;So;0;L;<square> 30EA 30C3 30C8 30EB;;;;N;SQUARED RITTORU;;;;
+3352;SQUARE RIRA;So;0;L;<square> 30EA 30E9;;;;N;SQUARED RIRA;;;;
+3353;SQUARE RUPII;So;0;L;<square> 30EB 30D4 30FC;;;;N;SQUARED RUPII;;;;
+3354;SQUARE RUUBURU;So;0;L;<square> 30EB 30FC 30D6 30EB;;;;N;SQUARED RUUBURU;;;;
+3355;SQUARE REMU;So;0;L;<square> 30EC 30E0;;;;N;SQUARED REMU;;;;
+3356;SQUARE RENTOGEN;So;0;L;<square> 30EC 30F3 30C8 30B2 30F3;;;;N;SQUARED RENTOGEN;;;;
+3357;SQUARE WATTO;So;0;L;<square> 30EF 30C3 30C8;;;;N;SQUARED WATTO;;;;
+3358;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO;So;0;L;<compat> 0030 70B9;;;;N;;;;;
+3359;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ONE;So;0;L;<compat> 0031 70B9;;;;N;;;;;
+335A;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWO;So;0;L;<compat> 0032 70B9;;;;N;;;;;
+335B;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THREE;So;0;L;<compat> 0033 70B9;;;;N;;;;;
+335C;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOUR;So;0;L;<compat> 0034 70B9;;;;N;;;;;
+335D;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIVE;So;0;L;<compat> 0035 70B9;;;;N;;;;;
+335E;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIX;So;0;L;<compat> 0036 70B9;;;;N;;;;;
+335F;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVEN;So;0;L;<compat> 0037 70B9;;;;N;;;;;
+3360;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHT;So;0;L;<compat> 0038 70B9;;;;N;;;;;
+3361;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINE;So;0;L;<compat> 0039 70B9;;;;N;;;;;
+3362;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TEN;So;0;L;<compat> 0031 0030 70B9;;;;N;;;;;
+3363;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ELEVEN;So;0;L;<compat> 0031 0031 70B9;;;;N;;;;;
+3364;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWELVE;So;0;L;<compat> 0031 0032 70B9;;;;N;;;;;
+3365;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THIRTEEN;So;0;L;<compat> 0031 0033 70B9;;;;N;;;;;
+3366;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOURTEEN;So;0;L;<compat> 0031 0034 70B9;;;;N;;;;;
+3367;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIFTEEN;So;0;L;<compat> 0031 0035 70B9;;;;N;;;;;
+3368;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIXTEEN;So;0;L;<compat> 0031 0036 70B9;;;;N;;;;;
+3369;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVENTEEN;So;0;L;<compat> 0031 0037 70B9;;;;N;;;;;
+336A;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHTEEN;So;0;L;<compat> 0031 0038 70B9;;;;N;;;;;
+336B;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINETEEN;So;0;L;<compat> 0031 0039 70B9;;;;N;;;;;
+336C;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY;So;0;L;<compat> 0032 0030 70B9;;;;N;;;;;
+336D;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-ONE;So;0;L;<compat> 0032 0031 70B9;;;;N;;;;;
+336E;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-TWO;So;0;L;<compat> 0032 0032 70B9;;;;N;;;;;
+336F;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-THREE;So;0;L;<compat> 0032 0033 70B9;;;;N;;;;;
+3370;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR;So;0;L;<compat> 0032 0034 70B9;;;;N;;;;;
+3371;SQUARE HPA;So;0;L;<square> 0068 0050 0061;;;;N;;;;;
+3372;SQUARE DA;So;0;L;<square> 0064 0061;;;;N;;;;;
+3373;SQUARE AU;So;0;L;<square> 0041 0055;;;;N;;;;;
+3374;SQUARE BAR;So;0;L;<square> 0062 0061 0072;;;;N;;;;;
+3375;SQUARE OV;So;0;L;<square> 006F 0056;;;;N;;;;;
+3376;SQUARE PC;So;0;L;<square> 0070 0063;;;;N;;;;;
+337B;SQUARE ERA NAME HEISEI;So;0;L;<square> 5E73 6210;;;;N;SQUARED TWO IDEOGRAPHS ERA NAME HEISEI;;;;
+337C;SQUARE ERA NAME SYOUWA;So;0;L;<square> 662D 548C;;;;N;SQUARED TWO IDEOGRAPHS ERA NAME SYOUWA;;;;
+337D;SQUARE ERA NAME TAISYOU;So;0;L;<square> 5927 6B63;;;;N;SQUARED TWO IDEOGRAPHS ERA NAME TAISYOU;;;;
+337E;SQUARE ERA NAME MEIZI;So;0;L;<square> 660E 6CBB;;;;N;SQUARED TWO IDEOGRAPHS ERA NAME MEIZI;;;;
+337F;SQUARE CORPORATION;So;0;L;<square> 682A 5F0F 4F1A 793E;;;;N;SQUARED FOUR IDEOGRAPHS CORPORATION;;;;
+3380;SQUARE PA AMPS;So;0;L;<square> 0070 0041;;;;N;SQUARED PA AMPS;;;;
+3381;SQUARE NA;So;0;L;<square> 006E 0041;;;;N;SQUARED NA;;;;
+3382;SQUARE MU A;So;0;L;<square> 03BC 0041;;;;N;SQUARED MU A;;;;
+3383;SQUARE MA;So;0;L;<square> 006D 0041;;;;N;SQUARED MA;;;;
+3384;SQUARE KA;So;0;L;<square> 006B 0041;;;;N;SQUARED KA;;;;
+3385;SQUARE KB;So;0;L;<square> 004B 0042;;;;N;SQUARED KB;;;;
+3386;SQUARE MB;So;0;L;<square> 004D 0042;;;;N;SQUARED MB;;;;
+3387;SQUARE GB;So;0;L;<square> 0047 0042;;;;N;SQUARED GB;;;;
+3388;SQUARE CAL;So;0;L;<square> 0063 0061 006C;;;;N;SQUARED CAL;;;;
+3389;SQUARE KCAL;So;0;L;<square> 006B 0063 0061 006C;;;;N;SQUARED KCAL;;;;
+338A;SQUARE PF;So;0;L;<square> 0070 0046;;;;N;SQUARED PF;;;;
+338B;SQUARE NF;So;0;L;<square> 006E 0046;;;;N;SQUARED NF;;;;
+338C;SQUARE MU F;So;0;L;<square> 03BC 0046;;;;N;SQUARED MU F;;;;
+338D;SQUARE MU G;So;0;L;<square> 03BC 0067;;;;N;SQUARED MU G;;;;
+338E;SQUARE MG;So;0;L;<square> 006D 0067;;;;N;SQUARED MG;;;;
+338F;SQUARE KG;So;0;L;<square> 006B 0067;;;;N;SQUARED KG;;;;
+3390;SQUARE HZ;So;0;L;<square> 0048 007A;;;;N;SQUARED HZ;;;;
+3391;SQUARE KHZ;So;0;L;<square> 006B 0048 007A;;;;N;SQUARED KHZ;;;;
+3392;SQUARE MHZ;So;0;L;<square> 004D 0048 007A;;;;N;SQUARED MHZ;;;;
+3393;SQUARE GHZ;So;0;L;<square> 0047 0048 007A;;;;N;SQUARED GHZ;;;;
+3394;SQUARE THZ;So;0;L;<square> 0054 0048 007A;;;;N;SQUARED THZ;;;;
+3395;SQUARE MU L;So;0;L;<square> 03BC 2113;;;;N;SQUARED MU L;;;;
+3396;SQUARE ML;So;0;L;<square> 006D 2113;;;;N;SQUARED ML;;;;
+3397;SQUARE DL;So;0;L;<square> 0064 2113;;;;N;SQUARED DL;;;;
+3398;SQUARE KL;So;0;L;<square> 006B 2113;;;;N;SQUARED KL;;;;
+3399;SQUARE FM;So;0;L;<square> 0066 006D;;;;N;SQUARED FM;;;;
+339A;SQUARE NM;So;0;L;<square> 006E 006D;;;;N;SQUARED NM;;;;
+339B;SQUARE MU M;So;0;L;<square> 03BC 006D;;;;N;SQUARED MU M;;;;
+339C;SQUARE MM;So;0;L;<square> 006D 006D;;;;N;SQUARED MM;;;;
+339D;SQUARE CM;So;0;L;<square> 0063 006D;;;;N;SQUARED CM;;;;
+339E;SQUARE KM;So;0;L;<square> 006B 006D;;;;N;SQUARED KM;;;;
+339F;SQUARE MM SQUARED;So;0;L;<square> 006D 006D 00B2;;;;N;SQUARED MM SQUARED;;;;
+33A0;SQUARE CM SQUARED;So;0;L;<square> 0063 006D 00B2;;;;N;SQUARED CM SQUARED;;;;
+33A1;SQUARE M SQUARED;So;0;L;<square> 006D 00B2;;;;N;SQUARED M SQUARED;;;;
+33A2;SQUARE KM SQUARED;So;0;L;<square> 006B 006D 00B2;;;;N;SQUARED KM SQUARED;;;;
+33A3;SQUARE MM CUBED;So;0;L;<square> 006D 006D 00B3;;;;N;SQUARED MM CUBED;;;;
+33A4;SQUARE CM CUBED;So;0;L;<square> 0063 006D 00B3;;;;N;SQUARED CM CUBED;;;;
+33A5;SQUARE M CUBED;So;0;L;<square> 006D 00B3;;;;N;SQUARED M CUBED;;;;
+33A6;SQUARE KM CUBED;So;0;L;<square> 006B 006D 00B3;;;;N;SQUARED KM CUBED;;;;
+33A7;SQUARE M OVER S;So;0;L;<square> 006D 2215 0073;;;;N;SQUARED M OVER S;;;;
+33A8;SQUARE M OVER S SQUARED;So;0;L;<square> 006D 2215 0073 00B2;;;;N;SQUARED M OVER S SQUARED;;;;
+33A9;SQUARE PA;So;0;L;<square> 0050 0061;;;;N;SQUARED PA;;;;
+33AA;SQUARE KPA;So;0;L;<square> 006B 0050 0061;;;;N;SQUARED KPA;;;;
+33AB;SQUARE MPA;So;0;L;<square> 004D 0050 0061;;;;N;SQUARED MPA;;;;
+33AC;SQUARE GPA;So;0;L;<square> 0047 0050 0061;;;;N;SQUARED GPA;;;;
+33AD;SQUARE RAD;So;0;L;<square> 0072 0061 0064;;;;N;SQUARED RAD;;;;
+33AE;SQUARE RAD OVER S;So;0;L;<square> 0072 0061 0064 2215 0073;;;;N;SQUARED RAD OVER S;;;;
+33AF;SQUARE RAD OVER S SQUARED;So;0;L;<square> 0072 0061 0064 2215 0073 00B2;;;;N;SQUARED RAD OVER S SQUARED;;;;
+33B0;SQUARE PS;So;0;L;<square> 0070 0073;;;;N;SQUARED PS;;;;
+33B1;SQUARE NS;So;0;L;<square> 006E 0073;;;;N;SQUARED NS;;;;
+33B2;SQUARE MU S;So;0;L;<square> 03BC 0073;;;;N;SQUARED MU S;;;;
+33B3;SQUARE MS;So;0;L;<square> 006D 0073;;;;N;SQUARED MS;;;;
+33B4;SQUARE PV;So;0;L;<square> 0070 0056;;;;N;SQUARED PV;;;;
+33B5;SQUARE NV;So;0;L;<square> 006E 0056;;;;N;SQUARED NV;;;;
+33B6;SQUARE MU V;So;0;L;<square> 03BC 0056;;;;N;SQUARED MU V;;;;
+33B7;SQUARE MV;So;0;L;<square> 006D 0056;;;;N;SQUARED MV;;;;
+33B8;SQUARE KV;So;0;L;<square> 006B 0056;;;;N;SQUARED KV;;;;
+33B9;SQUARE MV MEGA;So;0;L;<square> 004D 0056;;;;N;SQUARED MV MEGA;;;;
+33BA;SQUARE PW;So;0;L;<square> 0070 0057;;;;N;SQUARED PW;;;;
+33BB;SQUARE NW;So;0;L;<square> 006E 0057;;;;N;SQUARED NW;;;;
+33BC;SQUARE MU W;So;0;L;<square> 03BC 0057;;;;N;SQUARED MU W;;;;
+33BD;SQUARE MW;So;0;L;<square> 006D 0057;;;;N;SQUARED MW;;;;
+33BE;SQUARE KW;So;0;L;<square> 006B 0057;;;;N;SQUARED KW;;;;
+33BF;SQUARE MW MEGA;So;0;L;<square> 004D 0057;;;;N;SQUARED MW MEGA;;;;
+33C0;SQUARE K OHM;So;0;L;<square> 006B 03A9;;;;N;SQUARED K OHM;;;;
+33C1;SQUARE M OHM;So;0;L;<square> 004D 03A9;;;;N;SQUARED M OHM;;;;
+33C2;SQUARE AM;So;0;L;<square> 0061 002E 006D 002E;;;;N;SQUARED AM;;;;
+33C3;SQUARE BQ;So;0;L;<square> 0042 0071;;;;N;SQUARED BQ;;;;
+33C4;SQUARE CC;So;0;L;<square> 0063 0063;;;;N;SQUARED CC;;;;
+33C5;SQUARE CD;So;0;L;<square> 0063 0064;;;;N;SQUARED CD;;;;
+33C6;SQUARE C OVER KG;So;0;L;<square> 0043 2215 006B 0067;;;;N;SQUARED C OVER KG;;;;
+33C7;SQUARE CO;So;0;L;<square> 0043 006F 002E;;;;N;SQUARED CO;;;;
+33C8;SQUARE DB;So;0;L;<square> 0064 0042;;;;N;SQUARED DB;;;;
+33C9;SQUARE GY;So;0;L;<square> 0047 0079;;;;N;SQUARED GY;;;;
+33CA;SQUARE HA;So;0;L;<square> 0068 0061;;;;N;SQUARED HA;;;;
+33CB;SQUARE HP;So;0;L;<square> 0048 0050;;;;N;SQUARED HP;;;;
+33CC;SQUARE IN;So;0;L;<square> 0069 006E;;;;N;SQUARED IN;;;;
+33CD;SQUARE KK;So;0;L;<square> 004B 004B;;;;N;SQUARED KK;;;;
+33CE;SQUARE KM CAPITAL;So;0;L;<square> 004B 004D;;;;N;SQUARED KM CAPITAL;;;;
+33CF;SQUARE KT;So;0;L;<square> 006B 0074;;;;N;SQUARED KT;;;;
+33D0;SQUARE LM;So;0;L;<square> 006C 006D;;;;N;SQUARED LM;;;;
+33D1;SQUARE LN;So;0;L;<square> 006C 006E;;;;N;SQUARED LN;;;;
+33D2;SQUARE LOG;So;0;L;<square> 006C 006F 0067;;;;N;SQUARED LOG;;;;
+33D3;SQUARE LX;So;0;L;<square> 006C 0078;;;;N;SQUARED LX;;;;
+33D4;SQUARE MB SMALL;So;0;L;<square> 006D 0062;;;;N;SQUARED MB SMALL;;;;
+33D5;SQUARE MIL;So;0;L;<square> 006D 0069 006C;;;;N;SQUARED MIL;;;;
+33D6;SQUARE MOL;So;0;L;<square> 006D 006F 006C;;;;N;SQUARED MOL;;;;
+33D7;SQUARE PH;So;0;L;<square> 0050 0048;;;;N;SQUARED PH;;;;
+33D8;SQUARE PM;So;0;L;<square> 0070 002E 006D 002E;;;;N;SQUARED PM;;;;
+33D9;SQUARE PPM;So;0;L;<square> 0050 0050 004D;;;;N;SQUARED PPM;;;;
+33DA;SQUARE PR;So;0;L;<square> 0050 0052;;;;N;SQUARED PR;;;;
+33DB;SQUARE SR;So;0;L;<square> 0073 0072;;;;N;SQUARED SR;;;;
+33DC;SQUARE SV;So;0;L;<square> 0053 0076;;;;N;SQUARED SV;;;;
+33DD;SQUARE WB;So;0;L;<square> 0057 0062;;;;N;SQUARED WB;;;;
+33E0;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ONE;So;0;L;<compat> 0031 65E5;;;;N;;;;;
+33E1;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWO;So;0;L;<compat> 0032 65E5;;;;N;;;;;
+33E2;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THREE;So;0;L;<compat> 0033 65E5;;;;N;;;;;
+33E3;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOUR;So;0;L;<compat> 0034 65E5;;;;N;;;;;
+33E4;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIVE;So;0;L;<compat> 0035 65E5;;;;N;;;;;
+33E5;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIX;So;0;L;<compat> 0036 65E5;;;;N;;;;;
+33E6;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVEN;So;0;L;<compat> 0037 65E5;;;;N;;;;;
+33E7;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHT;So;0;L;<compat> 0038 65E5;;;;N;;;;;
+33E8;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINE;So;0;L;<compat> 0039 65E5;;;;N;;;;;
+33E9;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TEN;So;0;L;<compat> 0031 0030 65E5;;;;N;;;;;
+33EA;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ELEVEN;So;0;L;<compat> 0031 0031 65E5;;;;N;;;;;
+33EB;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWELVE;So;0;L;<compat> 0031 0032 65E5;;;;N;;;;;
+33EC;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTEEN;So;0;L;<compat> 0031 0033 65E5;;;;N;;;;;
+33ED;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOURTEEN;So;0;L;<compat> 0031 0034 65E5;;;;N;;;;;
+33EE;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIFTEEN;So;0;L;<compat> 0031 0035 65E5;;;;N;;;;;
+33EF;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIXTEEN;So;0;L;<compat> 0031 0036 65E5;;;;N;;;;;
+33F0;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVENTEEN;So;0;L;<compat> 0031 0037 65E5;;;;N;;;;;
+33F1;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHTEEN;So;0;L;<compat> 0031 0038 65E5;;;;N;;;;;
+33F2;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINETEEN;So;0;L;<compat> 0031 0039 65E5;;;;N;;;;;
+33F3;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY;So;0;L;<compat> 0032 0030 65E5;;;;N;;;;;
+33F4;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-ONE;So;0;L;<compat> 0032 0031 65E5;;;;N;;;;;
+33F5;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-TWO;So;0;L;<compat> 0032 0032 65E5;;;;N;;;;;
+33F6;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-THREE;So;0;L;<compat> 0032 0033 65E5;;;;N;;;;;
+33F7;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FOUR;So;0;L;<compat> 0032 0034 65E5;;;;N;;;;;
+33F8;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FIVE;So;0;L;<compat> 0032 0035 65E5;;;;N;;;;;
+33F9;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SIX;So;0;L;<compat> 0032 0036 65E5;;;;N;;;;;
+33FA;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SEVEN;So;0;L;<compat> 0032 0037 65E5;;;;N;;;;;
+33FB;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-EIGHT;So;0;L;<compat> 0032 0038 65E5;;;;N;;;;;
+33FC;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-NINE;So;0;L;<compat> 0032 0039 65E5;;;;N;;;;;
+33FD;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY;So;0;L;<compat> 0033 0030 65E5;;;;N;;;;;
+33FE;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE;So;0;L;<compat> 0033 0031 65E5;;;;N;;;;;
+3400;<CJK Ideograph Extension A, First>;Lo;0;L;;;;;N;;;;;
+4DB5;<CJK Ideograph Extension A, Last>;Lo;0;L;;;;;N;;;;;
+4E00;<CJK Ideograph, First>;Lo;0;L;;;;;N;;;;;
+9FA5;<CJK Ideograph, Last>;Lo;0;L;;;;;N;;;;;
+A000;YI SYLLABLE IT;Lo;0;L;;;;;N;;;;;
+A001;YI SYLLABLE IX;Lo;0;L;;;;;N;;;;;
+A002;YI SYLLABLE I;Lo;0;L;;;;;N;;;;;
+A003;YI SYLLABLE IP;Lo;0;L;;;;;N;;;;;
+A004;YI SYLLABLE IET;Lo;0;L;;;;;N;;;;;
+A005;YI SYLLABLE IEX;Lo;0;L;;;;;N;;;;;
+A006;YI SYLLABLE IE;Lo;0;L;;;;;N;;;;;
+A007;YI SYLLABLE IEP;Lo;0;L;;;;;N;;;;;
+A008;YI SYLLABLE AT;Lo;0;L;;;;;N;;;;;
+A009;YI SYLLABLE AX;Lo;0;L;;;;;N;;;;;
+A00A;YI SYLLABLE A;Lo;0;L;;;;;N;;;;;
+A00B;YI SYLLABLE AP;Lo;0;L;;;;;N;;;;;
+A00C;YI SYLLABLE UOX;Lo;0;L;;;;;N;;;;;
+A00D;YI SYLLABLE UO;Lo;0;L;;;;;N;;;;;
+A00E;YI SYLLABLE UOP;Lo;0;L;;;;;N;;;;;
+A00F;YI SYLLABLE OT;Lo;0;L;;;;;N;;;;;
+A010;YI SYLLABLE OX;Lo;0;L;;;;;N;;;;;
+A011;YI SYLLABLE O;Lo;0;L;;;;;N;;;;;
+A012;YI SYLLABLE OP;Lo;0;L;;;;;N;;;;;
+A013;YI SYLLABLE EX;Lo;0;L;;;;;N;;;;;
+A014;YI SYLLABLE E;Lo;0;L;;;;;N;;;;;
+A015;YI SYLLABLE WU;Lo;0;L;;;;;N;;;;;
+A016;YI SYLLABLE BIT;Lo;0;L;;;;;N;;;;;
+A017;YI SYLLABLE BIX;Lo;0;L;;;;;N;;;;;
+A018;YI SYLLABLE BI;Lo;0;L;;;;;N;;;;;
+A019;YI SYLLABLE BIP;Lo;0;L;;;;;N;;;;;
+A01A;YI SYLLABLE BIET;Lo;0;L;;;;;N;;;;;
+A01B;YI SYLLABLE BIEX;Lo;0;L;;;;;N;;;;;
+A01C;YI SYLLABLE BIE;Lo;0;L;;;;;N;;;;;
+A01D;YI SYLLABLE BIEP;Lo;0;L;;;;;N;;;;;
+A01E;YI SYLLABLE BAT;Lo;0;L;;;;;N;;;;;
+A01F;YI SYLLABLE BAX;Lo;0;L;;;;;N;;;;;
+A020;YI SYLLABLE BA;Lo;0;L;;;;;N;;;;;
+A021;YI SYLLABLE BAP;Lo;0;L;;;;;N;;;;;
+A022;YI SYLLABLE BUOX;Lo;0;L;;;;;N;;;;;
+A023;YI SYLLABLE BUO;Lo;0;L;;;;;N;;;;;
+A024;YI SYLLABLE BUOP;Lo;0;L;;;;;N;;;;;
+A025;YI SYLLABLE BOT;Lo;0;L;;;;;N;;;;;
+A026;YI SYLLABLE BOX;Lo;0;L;;;;;N;;;;;
+A027;YI SYLLABLE BO;Lo;0;L;;;;;N;;;;;
+A028;YI SYLLABLE BOP;Lo;0;L;;;;;N;;;;;
+A029;YI SYLLABLE BEX;Lo;0;L;;;;;N;;;;;
+A02A;YI SYLLABLE BE;Lo;0;L;;;;;N;;;;;
+A02B;YI SYLLABLE BEP;Lo;0;L;;;;;N;;;;;
+A02C;YI SYLLABLE BUT;Lo;0;L;;;;;N;;;;;
+A02D;YI SYLLABLE BUX;Lo;0;L;;;;;N;;;;;
+A02E;YI SYLLABLE BU;Lo;0;L;;;;;N;;;;;
+A02F;YI SYLLABLE BUP;Lo;0;L;;;;;N;;;;;
+A030;YI SYLLABLE BURX;Lo;0;L;;;;;N;;;;;
+A031;YI SYLLABLE BUR;Lo;0;L;;;;;N;;;;;
+A032;YI SYLLABLE BYT;Lo;0;L;;;;;N;;;;;
+A033;YI SYLLABLE BYX;Lo;0;L;;;;;N;;;;;
+A034;YI SYLLABLE BY;Lo;0;L;;;;;N;;;;;
+A035;YI SYLLABLE BYP;Lo;0;L;;;;;N;;;;;
+A036;YI SYLLABLE BYRX;Lo;0;L;;;;;N;;;;;
+A037;YI SYLLABLE BYR;Lo;0;L;;;;;N;;;;;
+A038;YI SYLLABLE PIT;Lo;0;L;;;;;N;;;;;
+A039;YI SYLLABLE PIX;Lo;0;L;;;;;N;;;;;
+A03A;YI SYLLABLE PI;Lo;0;L;;;;;N;;;;;
+A03B;YI SYLLABLE PIP;Lo;0;L;;;;;N;;;;;
+A03C;YI SYLLABLE PIEX;Lo;0;L;;;;;N;;;;;
+A03D;YI SYLLABLE PIE;Lo;0;L;;;;;N;;;;;
+A03E;YI SYLLABLE PIEP;Lo;0;L;;;;;N;;;;;
+A03F;YI SYLLABLE PAT;Lo;0;L;;;;;N;;;;;
+A040;YI SYLLABLE PAX;Lo;0;L;;;;;N;;;;;
+A041;YI SYLLABLE PA;Lo;0;L;;;;;N;;;;;
+A042;YI SYLLABLE PAP;Lo;0;L;;;;;N;;;;;
+A043;YI SYLLABLE PUOX;Lo;0;L;;;;;N;;;;;
+A044;YI SYLLABLE PUO;Lo;0;L;;;;;N;;;;;
+A045;YI SYLLABLE PUOP;Lo;0;L;;;;;N;;;;;
+A046;YI SYLLABLE POT;Lo;0;L;;;;;N;;;;;
+A047;YI SYLLABLE POX;Lo;0;L;;;;;N;;;;;
+A048;YI SYLLABLE PO;Lo;0;L;;;;;N;;;;;
+A049;YI SYLLABLE POP;Lo;0;L;;;;;N;;;;;
+A04A;YI SYLLABLE PUT;Lo;0;L;;;;;N;;;;;
+A04B;YI SYLLABLE PUX;Lo;0;L;;;;;N;;;;;
+A04C;YI SYLLABLE PU;Lo;0;L;;;;;N;;;;;
+A04D;YI SYLLABLE PUP;Lo;0;L;;;;;N;;;;;
+A04E;YI SYLLABLE PURX;Lo;0;L;;;;;N;;;;;
+A04F;YI SYLLABLE PUR;Lo;0;L;;;;;N;;;;;
+A050;YI SYLLABLE PYT;Lo;0;L;;;;;N;;;;;
+A051;YI SYLLABLE PYX;Lo;0;L;;;;;N;;;;;
+A052;YI SYLLABLE PY;Lo;0;L;;;;;N;;;;;
+A053;YI SYLLABLE PYP;Lo;0;L;;;;;N;;;;;
+A054;YI SYLLABLE PYRX;Lo;0;L;;;;;N;;;;;
+A055;YI SYLLABLE PYR;Lo;0;L;;;;;N;;;;;
+A056;YI SYLLABLE BBIT;Lo;0;L;;;;;N;;;;;
+A057;YI SYLLABLE BBIX;Lo;0;L;;;;;N;;;;;
+A058;YI SYLLABLE BBI;Lo;0;L;;;;;N;;;;;
+A059;YI SYLLABLE BBIP;Lo;0;L;;;;;N;;;;;
+A05A;YI SYLLABLE BBIET;Lo;0;L;;;;;N;;;;;
+A05B;YI SYLLABLE BBIEX;Lo;0;L;;;;;N;;;;;
+A05C;YI SYLLABLE BBIE;Lo;0;L;;;;;N;;;;;
+A05D;YI SYLLABLE BBIEP;Lo;0;L;;;;;N;;;;;
+A05E;YI SYLLABLE BBAT;Lo;0;L;;;;;N;;;;;
+A05F;YI SYLLABLE BBAX;Lo;0;L;;;;;N;;;;;
+A060;YI SYLLABLE BBA;Lo;0;L;;;;;N;;;;;
+A061;YI SYLLABLE BBAP;Lo;0;L;;;;;N;;;;;
+A062;YI SYLLABLE BBUOX;Lo;0;L;;;;;N;;;;;
+A063;YI SYLLABLE BBUO;Lo;0;L;;;;;N;;;;;
+A064;YI SYLLABLE BBUOP;Lo;0;L;;;;;N;;;;;
+A065;YI SYLLABLE BBOT;Lo;0;L;;;;;N;;;;;
+A066;YI SYLLABLE BBOX;Lo;0;L;;;;;N;;;;;
+A067;YI SYLLABLE BBO;Lo;0;L;;;;;N;;;;;
+A068;YI SYLLABLE BBOP;Lo;0;L;;;;;N;;;;;
+A069;YI SYLLABLE BBEX;Lo;0;L;;;;;N;;;;;
+A06A;YI SYLLABLE BBE;Lo;0;L;;;;;N;;;;;
+A06B;YI SYLLABLE BBEP;Lo;0;L;;;;;N;;;;;
+A06C;YI SYLLABLE BBUT;Lo;0;L;;;;;N;;;;;
+A06D;YI SYLLABLE BBUX;Lo;0;L;;;;;N;;;;;
+A06E;YI SYLLABLE BBU;Lo;0;L;;;;;N;;;;;
+A06F;YI SYLLABLE BBUP;Lo;0;L;;;;;N;;;;;
+A070;YI SYLLABLE BBURX;Lo;0;L;;;;;N;;;;;
+A071;YI SYLLABLE BBUR;Lo;0;L;;;;;N;;;;;
+A072;YI SYLLABLE BBYT;Lo;0;L;;;;;N;;;;;
+A073;YI SYLLABLE BBYX;Lo;0;L;;;;;N;;;;;
+A074;YI SYLLABLE BBY;Lo;0;L;;;;;N;;;;;
+A075;YI SYLLABLE BBYP;Lo;0;L;;;;;N;;;;;
+A076;YI SYLLABLE NBIT;Lo;0;L;;;;;N;;;;;
+A077;YI SYLLABLE NBIX;Lo;0;L;;;;;N;;;;;
+A078;YI SYLLABLE NBI;Lo;0;L;;;;;N;;;;;
+A079;YI SYLLABLE NBIP;Lo;0;L;;;;;N;;;;;
+A07A;YI SYLLABLE NBIEX;Lo;0;L;;;;;N;;;;;
+A07B;YI SYLLABLE NBIE;Lo;0;L;;;;;N;;;;;
+A07C;YI SYLLABLE NBIEP;Lo;0;L;;;;;N;;;;;
+A07D;YI SYLLABLE NBAT;Lo;0;L;;;;;N;;;;;
+A07E;YI SYLLABLE NBAX;Lo;0;L;;;;;N;;;;;
+A07F;YI SYLLABLE NBA;Lo;0;L;;;;;N;;;;;
+A080;YI SYLLABLE NBAP;Lo;0;L;;;;;N;;;;;
+A081;YI SYLLABLE NBOT;Lo;0;L;;;;;N;;;;;
+A082;YI SYLLABLE NBOX;Lo;0;L;;;;;N;;;;;
+A083;YI SYLLABLE NBO;Lo;0;L;;;;;N;;;;;
+A084;YI SYLLABLE NBOP;Lo;0;L;;;;;N;;;;;
+A085;YI SYLLABLE NBUT;Lo;0;L;;;;;N;;;;;
+A086;YI SYLLABLE NBUX;Lo;0;L;;;;;N;;;;;
+A087;YI SYLLABLE NBU;Lo;0;L;;;;;N;;;;;
+A088;YI SYLLABLE NBUP;Lo;0;L;;;;;N;;;;;
+A089;YI SYLLABLE NBURX;Lo;0;L;;;;;N;;;;;
+A08A;YI SYLLABLE NBUR;Lo;0;L;;;;;N;;;;;
+A08B;YI SYLLABLE NBYT;Lo;0;L;;;;;N;;;;;
+A08C;YI SYLLABLE NBYX;Lo;0;L;;;;;N;;;;;
+A08D;YI SYLLABLE NBY;Lo;0;L;;;;;N;;;;;
+A08E;YI SYLLABLE NBYP;Lo;0;L;;;;;N;;;;;
+A08F;YI SYLLABLE NBYRX;Lo;0;L;;;;;N;;;;;
+A090;YI SYLLABLE NBYR;Lo;0;L;;;;;N;;;;;
+A091;YI SYLLABLE HMIT;Lo;0;L;;;;;N;;;;;
+A092;YI SYLLABLE HMIX;Lo;0;L;;;;;N;;;;;
+A093;YI SYLLABLE HMI;Lo;0;L;;;;;N;;;;;
+A094;YI SYLLABLE HMIP;Lo;0;L;;;;;N;;;;;
+A095;YI SYLLABLE HMIEX;Lo;0;L;;;;;N;;;;;
+A096;YI SYLLABLE HMIE;Lo;0;L;;;;;N;;;;;
+A097;YI SYLLABLE HMIEP;Lo;0;L;;;;;N;;;;;
+A098;YI SYLLABLE HMAT;Lo;0;L;;;;;N;;;;;
+A099;YI SYLLABLE HMAX;Lo;0;L;;;;;N;;;;;
+A09A;YI SYLLABLE HMA;Lo;0;L;;;;;N;;;;;
+A09B;YI SYLLABLE HMAP;Lo;0;L;;;;;N;;;;;
+A09C;YI SYLLABLE HMUOX;Lo;0;L;;;;;N;;;;;
+A09D;YI SYLLABLE HMUO;Lo;0;L;;;;;N;;;;;
+A09E;YI SYLLABLE HMUOP;Lo;0;L;;;;;N;;;;;
+A09F;YI SYLLABLE HMOT;Lo;0;L;;;;;N;;;;;
+A0A0;YI SYLLABLE HMOX;Lo;0;L;;;;;N;;;;;
+A0A1;YI SYLLABLE HMO;Lo;0;L;;;;;N;;;;;
+A0A2;YI SYLLABLE HMOP;Lo;0;L;;;;;N;;;;;
+A0A3;YI SYLLABLE HMUT;Lo;0;L;;;;;N;;;;;
+A0A4;YI SYLLABLE HMUX;Lo;0;L;;;;;N;;;;;
+A0A5;YI SYLLABLE HMU;Lo;0;L;;;;;N;;;;;
+A0A6;YI SYLLABLE HMUP;Lo;0;L;;;;;N;;;;;
+A0A7;YI SYLLABLE HMURX;Lo;0;L;;;;;N;;;;;
+A0A8;YI SYLLABLE HMUR;Lo;0;L;;;;;N;;;;;
+A0A9;YI SYLLABLE HMYX;Lo;0;L;;;;;N;;;;;
+A0AA;YI SYLLABLE HMY;Lo;0;L;;;;;N;;;;;
+A0AB;YI SYLLABLE HMYP;Lo;0;L;;;;;N;;;;;
+A0AC;YI SYLLABLE HMYRX;Lo;0;L;;;;;N;;;;;
+A0AD;YI SYLLABLE HMYR;Lo;0;L;;;;;N;;;;;
+A0AE;YI SYLLABLE MIT;Lo;0;L;;;;;N;;;;;
+A0AF;YI SYLLABLE MIX;Lo;0;L;;;;;N;;;;;
+A0B0;YI SYLLABLE MI;Lo;0;L;;;;;N;;;;;
+A0B1;YI SYLLABLE MIP;Lo;0;L;;;;;N;;;;;
+A0B2;YI SYLLABLE MIEX;Lo;0;L;;;;;N;;;;;
+A0B3;YI SYLLABLE MIE;Lo;0;L;;;;;N;;;;;
+A0B4;YI SYLLABLE MIEP;Lo;0;L;;;;;N;;;;;
+A0B5;YI SYLLABLE MAT;Lo;0;L;;;;;N;;;;;
+A0B6;YI SYLLABLE MAX;Lo;0;L;;;;;N;;;;;
+A0B7;YI SYLLABLE MA;Lo;0;L;;;;;N;;;;;
+A0B8;YI SYLLABLE MAP;Lo;0;L;;;;;N;;;;;
+A0B9;YI SYLLABLE MUOT;Lo;0;L;;;;;N;;;;;
+A0BA;YI SYLLABLE MUOX;Lo;0;L;;;;;N;;;;;
+A0BB;YI SYLLABLE MUO;Lo;0;L;;;;;N;;;;;
+A0BC;YI SYLLABLE MUOP;Lo;0;L;;;;;N;;;;;
+A0BD;YI SYLLABLE MOT;Lo;0;L;;;;;N;;;;;
+A0BE;YI SYLLABLE MOX;Lo;0;L;;;;;N;;;;;
+A0BF;YI SYLLABLE MO;Lo;0;L;;;;;N;;;;;
+A0C0;YI SYLLABLE MOP;Lo;0;L;;;;;N;;;;;
+A0C1;YI SYLLABLE MEX;Lo;0;L;;;;;N;;;;;
+A0C2;YI SYLLABLE ME;Lo;0;L;;;;;N;;;;;
+A0C3;YI SYLLABLE MUT;Lo;0;L;;;;;N;;;;;
+A0C4;YI SYLLABLE MUX;Lo;0;L;;;;;N;;;;;
+A0C5;YI SYLLABLE MU;Lo;0;L;;;;;N;;;;;
+A0C6;YI SYLLABLE MUP;Lo;0;L;;;;;N;;;;;
+A0C7;YI SYLLABLE MURX;Lo;0;L;;;;;N;;;;;
+A0C8;YI SYLLABLE MUR;Lo;0;L;;;;;N;;;;;
+A0C9;YI SYLLABLE MYT;Lo;0;L;;;;;N;;;;;
+A0CA;YI SYLLABLE MYX;Lo;0;L;;;;;N;;;;;
+A0CB;YI SYLLABLE MY;Lo;0;L;;;;;N;;;;;
+A0CC;YI SYLLABLE MYP;Lo;0;L;;;;;N;;;;;
+A0CD;YI SYLLABLE FIT;Lo;0;L;;;;;N;;;;;
+A0CE;YI SYLLABLE FIX;Lo;0;L;;;;;N;;;;;
+A0CF;YI SYLLABLE FI;Lo;0;L;;;;;N;;;;;
+A0D0;YI SYLLABLE FIP;Lo;0;L;;;;;N;;;;;
+A0D1;YI SYLLABLE FAT;Lo;0;L;;;;;N;;;;;
+A0D2;YI SYLLABLE FAX;Lo;0;L;;;;;N;;;;;
+A0D3;YI SYLLABLE FA;Lo;0;L;;;;;N;;;;;
+A0D4;YI SYLLABLE FAP;Lo;0;L;;;;;N;;;;;
+A0D5;YI SYLLABLE FOX;Lo;0;L;;;;;N;;;;;
+A0D6;YI SYLLABLE FO;Lo;0;L;;;;;N;;;;;
+A0D7;YI SYLLABLE FOP;Lo;0;L;;;;;N;;;;;
+A0D8;YI SYLLABLE FUT;Lo;0;L;;;;;N;;;;;
+A0D9;YI SYLLABLE FUX;Lo;0;L;;;;;N;;;;;
+A0DA;YI SYLLABLE FU;Lo;0;L;;;;;N;;;;;
+A0DB;YI SYLLABLE FUP;Lo;0;L;;;;;N;;;;;
+A0DC;YI SYLLABLE FURX;Lo;0;L;;;;;N;;;;;
+A0DD;YI SYLLABLE FUR;Lo;0;L;;;;;N;;;;;
+A0DE;YI SYLLABLE FYT;Lo;0;L;;;;;N;;;;;
+A0DF;YI SYLLABLE FYX;Lo;0;L;;;;;N;;;;;
+A0E0;YI SYLLABLE FY;Lo;0;L;;;;;N;;;;;
+A0E1;YI SYLLABLE FYP;Lo;0;L;;;;;N;;;;;
+A0E2;YI SYLLABLE VIT;Lo;0;L;;;;;N;;;;;
+A0E3;YI SYLLABLE VIX;Lo;0;L;;;;;N;;;;;
+A0E4;YI SYLLABLE VI;Lo;0;L;;;;;N;;;;;
+A0E5;YI SYLLABLE VIP;Lo;0;L;;;;;N;;;;;
+A0E6;YI SYLLABLE VIET;Lo;0;L;;;;;N;;;;;
+A0E7;YI SYLLABLE VIEX;Lo;0;L;;;;;N;;;;;
+A0E8;YI SYLLABLE VIE;Lo;0;L;;;;;N;;;;;
+A0E9;YI SYLLABLE VIEP;Lo;0;L;;;;;N;;;;;
+A0EA;YI SYLLABLE VAT;Lo;0;L;;;;;N;;;;;
+A0EB;YI SYLLABLE VAX;Lo;0;L;;;;;N;;;;;
+A0EC;YI SYLLABLE VA;Lo;0;L;;;;;N;;;;;
+A0ED;YI SYLLABLE VAP;Lo;0;L;;;;;N;;;;;
+A0EE;YI SYLLABLE VOT;Lo;0;L;;;;;N;;;;;
+A0EF;YI SYLLABLE VOX;Lo;0;L;;;;;N;;;;;
+A0F0;YI SYLLABLE VO;Lo;0;L;;;;;N;;;;;
+A0F1;YI SYLLABLE VOP;Lo;0;L;;;;;N;;;;;
+A0F2;YI SYLLABLE VEX;Lo;0;L;;;;;N;;;;;
+A0F3;YI SYLLABLE VEP;Lo;0;L;;;;;N;;;;;
+A0F4;YI SYLLABLE VUT;Lo;0;L;;;;;N;;;;;
+A0F5;YI SYLLABLE VUX;Lo;0;L;;;;;N;;;;;
+A0F6;YI SYLLABLE VU;Lo;0;L;;;;;N;;;;;
+A0F7;YI SYLLABLE VUP;Lo;0;L;;;;;N;;;;;
+A0F8;YI SYLLABLE VURX;Lo;0;L;;;;;N;;;;;
+A0F9;YI SYLLABLE VUR;Lo;0;L;;;;;N;;;;;
+A0FA;YI SYLLABLE VYT;Lo;0;L;;;;;N;;;;;
+A0FB;YI SYLLABLE VYX;Lo;0;L;;;;;N;;;;;
+A0FC;YI SYLLABLE VY;Lo;0;L;;;;;N;;;;;
+A0FD;YI SYLLABLE VYP;Lo;0;L;;;;;N;;;;;
+A0FE;YI SYLLABLE VYRX;Lo;0;L;;;;;N;;;;;
+A0FF;YI SYLLABLE VYR;Lo;0;L;;;;;N;;;;;
+A100;YI SYLLABLE DIT;Lo;0;L;;;;;N;;;;;
+A101;YI SYLLABLE DIX;Lo;0;L;;;;;N;;;;;
+A102;YI SYLLABLE DI;Lo;0;L;;;;;N;;;;;
+A103;YI SYLLABLE DIP;Lo;0;L;;;;;N;;;;;
+A104;YI SYLLABLE DIEX;Lo;0;L;;;;;N;;;;;
+A105;YI SYLLABLE DIE;Lo;0;L;;;;;N;;;;;
+A106;YI SYLLABLE DIEP;Lo;0;L;;;;;N;;;;;
+A107;YI SYLLABLE DAT;Lo;0;L;;;;;N;;;;;
+A108;YI SYLLABLE DAX;Lo;0;L;;;;;N;;;;;
+A109;YI SYLLABLE DA;Lo;0;L;;;;;N;;;;;
+A10A;YI SYLLABLE DAP;Lo;0;L;;;;;N;;;;;
+A10B;YI SYLLABLE DUOX;Lo;0;L;;;;;N;;;;;
+A10C;YI SYLLABLE DUO;Lo;0;L;;;;;N;;;;;
+A10D;YI SYLLABLE DOT;Lo;0;L;;;;;N;;;;;
+A10E;YI SYLLABLE DOX;Lo;0;L;;;;;N;;;;;
+A10F;YI SYLLABLE DO;Lo;0;L;;;;;N;;;;;
+A110;YI SYLLABLE DOP;Lo;0;L;;;;;N;;;;;
+A111;YI SYLLABLE DEX;Lo;0;L;;;;;N;;;;;
+A112;YI SYLLABLE DE;Lo;0;L;;;;;N;;;;;
+A113;YI SYLLABLE DEP;Lo;0;L;;;;;N;;;;;
+A114;YI SYLLABLE DUT;Lo;0;L;;;;;N;;;;;
+A115;YI SYLLABLE DUX;Lo;0;L;;;;;N;;;;;
+A116;YI SYLLABLE DU;Lo;0;L;;;;;N;;;;;
+A117;YI SYLLABLE DUP;Lo;0;L;;;;;N;;;;;
+A118;YI SYLLABLE DURX;Lo;0;L;;;;;N;;;;;
+A119;YI SYLLABLE DUR;Lo;0;L;;;;;N;;;;;
+A11A;YI SYLLABLE TIT;Lo;0;L;;;;;N;;;;;
+A11B;YI SYLLABLE TIX;Lo;0;L;;;;;N;;;;;
+A11C;YI SYLLABLE TI;Lo;0;L;;;;;N;;;;;
+A11D;YI SYLLABLE TIP;Lo;0;L;;;;;N;;;;;
+A11E;YI SYLLABLE TIEX;Lo;0;L;;;;;N;;;;;
+A11F;YI SYLLABLE TIE;Lo;0;L;;;;;N;;;;;
+A120;YI SYLLABLE TIEP;Lo;0;L;;;;;N;;;;;
+A121;YI SYLLABLE TAT;Lo;0;L;;;;;N;;;;;
+A122;YI SYLLABLE TAX;Lo;0;L;;;;;N;;;;;
+A123;YI SYLLABLE TA;Lo;0;L;;;;;N;;;;;
+A124;YI SYLLABLE TAP;Lo;0;L;;;;;N;;;;;
+A125;YI SYLLABLE TUOT;Lo;0;L;;;;;N;;;;;
+A126;YI SYLLABLE TUOX;Lo;0;L;;;;;N;;;;;
+A127;YI SYLLABLE TUO;Lo;0;L;;;;;N;;;;;
+A128;YI SYLLABLE TUOP;Lo;0;L;;;;;N;;;;;
+A129;YI SYLLABLE TOT;Lo;0;L;;;;;N;;;;;
+A12A;YI SYLLABLE TOX;Lo;0;L;;;;;N;;;;;
+A12B;YI SYLLABLE TO;Lo;0;L;;;;;N;;;;;
+A12C;YI SYLLABLE TOP;Lo;0;L;;;;;N;;;;;
+A12D;YI SYLLABLE TEX;Lo;0;L;;;;;N;;;;;
+A12E;YI SYLLABLE TE;Lo;0;L;;;;;N;;;;;
+A12F;YI SYLLABLE TEP;Lo;0;L;;;;;N;;;;;
+A130;YI SYLLABLE TUT;Lo;0;L;;;;;N;;;;;
+A131;YI SYLLABLE TUX;Lo;0;L;;;;;N;;;;;
+A132;YI SYLLABLE TU;Lo;0;L;;;;;N;;;;;
+A133;YI SYLLABLE TUP;Lo;0;L;;;;;N;;;;;
+A134;YI SYLLABLE TURX;Lo;0;L;;;;;N;;;;;
+A135;YI SYLLABLE TUR;Lo;0;L;;;;;N;;;;;
+A136;YI SYLLABLE DDIT;Lo;0;L;;;;;N;;;;;
+A137;YI SYLLABLE DDIX;Lo;0;L;;;;;N;;;;;
+A138;YI SYLLABLE DDI;Lo;0;L;;;;;N;;;;;
+A139;YI SYLLABLE DDIP;Lo;0;L;;;;;N;;;;;
+A13A;YI SYLLABLE DDIEX;Lo;0;L;;;;;N;;;;;
+A13B;YI SYLLABLE DDIE;Lo;0;L;;;;;N;;;;;
+A13C;YI SYLLABLE DDIEP;Lo;0;L;;;;;N;;;;;
+A13D;YI SYLLABLE DDAT;Lo;0;L;;;;;N;;;;;
+A13E;YI SYLLABLE DDAX;Lo;0;L;;;;;N;;;;;
+A13F;YI SYLLABLE DDA;Lo;0;L;;;;;N;;;;;
+A140;YI SYLLABLE DDAP;Lo;0;L;;;;;N;;;;;
+A141;YI SYLLABLE DDUOX;Lo;0;L;;;;;N;;;;;
+A142;YI SYLLABLE DDUO;Lo;0;L;;;;;N;;;;;
+A143;YI SYLLABLE DDUOP;Lo;0;L;;;;;N;;;;;
+A144;YI SYLLABLE DDOT;Lo;0;L;;;;;N;;;;;
+A145;YI SYLLABLE DDOX;Lo;0;L;;;;;N;;;;;
+A146;YI SYLLABLE DDO;Lo;0;L;;;;;N;;;;;
+A147;YI SYLLABLE DDOP;Lo;0;L;;;;;N;;;;;
+A148;YI SYLLABLE DDEX;Lo;0;L;;;;;N;;;;;
+A149;YI SYLLABLE DDE;Lo;0;L;;;;;N;;;;;
+A14A;YI SYLLABLE DDEP;Lo;0;L;;;;;N;;;;;
+A14B;YI SYLLABLE DDUT;Lo;0;L;;;;;N;;;;;
+A14C;YI SYLLABLE DDUX;Lo;0;L;;;;;N;;;;;
+A14D;YI SYLLABLE DDU;Lo;0;L;;;;;N;;;;;
+A14E;YI SYLLABLE DDUP;Lo;0;L;;;;;N;;;;;
+A14F;YI SYLLABLE DDURX;Lo;0;L;;;;;N;;;;;
+A150;YI SYLLABLE DDUR;Lo;0;L;;;;;N;;;;;
+A151;YI SYLLABLE NDIT;Lo;0;L;;;;;N;;;;;
+A152;YI SYLLABLE NDIX;Lo;0;L;;;;;N;;;;;
+A153;YI SYLLABLE NDI;Lo;0;L;;;;;N;;;;;
+A154;YI SYLLABLE NDIP;Lo;0;L;;;;;N;;;;;
+A155;YI SYLLABLE NDIEX;Lo;0;L;;;;;N;;;;;
+A156;YI SYLLABLE NDIE;Lo;0;L;;;;;N;;;;;
+A157;YI SYLLABLE NDAT;Lo;0;L;;;;;N;;;;;
+A158;YI SYLLABLE NDAX;Lo;0;L;;;;;N;;;;;
+A159;YI SYLLABLE NDA;Lo;0;L;;;;;N;;;;;
+A15A;YI SYLLABLE NDAP;Lo;0;L;;;;;N;;;;;
+A15B;YI SYLLABLE NDOT;Lo;0;L;;;;;N;;;;;
+A15C;YI SYLLABLE NDOX;Lo;0;L;;;;;N;;;;;
+A15D;YI SYLLABLE NDO;Lo;0;L;;;;;N;;;;;
+A15E;YI SYLLABLE NDOP;Lo;0;L;;;;;N;;;;;
+A15F;YI SYLLABLE NDEX;Lo;0;L;;;;;N;;;;;
+A160;YI SYLLABLE NDE;Lo;0;L;;;;;N;;;;;
+A161;YI SYLLABLE NDEP;Lo;0;L;;;;;N;;;;;
+A162;YI SYLLABLE NDUT;Lo;0;L;;;;;N;;;;;
+A163;YI SYLLABLE NDUX;Lo;0;L;;;;;N;;;;;
+A164;YI SYLLABLE NDU;Lo;0;L;;;;;N;;;;;
+A165;YI SYLLABLE NDUP;Lo;0;L;;;;;N;;;;;
+A166;YI SYLLABLE NDURX;Lo;0;L;;;;;N;;;;;
+A167;YI SYLLABLE NDUR;Lo;0;L;;;;;N;;;;;
+A168;YI SYLLABLE HNIT;Lo;0;L;;;;;N;;;;;
+A169;YI SYLLABLE HNIX;Lo;0;L;;;;;N;;;;;
+A16A;YI SYLLABLE HNI;Lo;0;L;;;;;N;;;;;
+A16B;YI SYLLABLE HNIP;Lo;0;L;;;;;N;;;;;
+A16C;YI SYLLABLE HNIET;Lo;0;L;;;;;N;;;;;
+A16D;YI SYLLABLE HNIEX;Lo;0;L;;;;;N;;;;;
+A16E;YI SYLLABLE HNIE;Lo;0;L;;;;;N;;;;;
+A16F;YI SYLLABLE HNIEP;Lo;0;L;;;;;N;;;;;
+A170;YI SYLLABLE HNAT;Lo;0;L;;;;;N;;;;;
+A171;YI SYLLABLE HNAX;Lo;0;L;;;;;N;;;;;
+A172;YI SYLLABLE HNA;Lo;0;L;;;;;N;;;;;
+A173;YI SYLLABLE HNAP;Lo;0;L;;;;;N;;;;;
+A174;YI SYLLABLE HNUOX;Lo;0;L;;;;;N;;;;;
+A175;YI SYLLABLE HNUO;Lo;0;L;;;;;N;;;;;
+A176;YI SYLLABLE HNOT;Lo;0;L;;;;;N;;;;;
+A177;YI SYLLABLE HNOX;Lo;0;L;;;;;N;;;;;
+A178;YI SYLLABLE HNOP;Lo;0;L;;;;;N;;;;;
+A179;YI SYLLABLE HNEX;Lo;0;L;;;;;N;;;;;
+A17A;YI SYLLABLE HNE;Lo;0;L;;;;;N;;;;;
+A17B;YI SYLLABLE HNEP;Lo;0;L;;;;;N;;;;;
+A17C;YI SYLLABLE HNUT;Lo;0;L;;;;;N;;;;;
+A17D;YI SYLLABLE NIT;Lo;0;L;;;;;N;;;;;
+A17E;YI SYLLABLE NIX;Lo;0;L;;;;;N;;;;;
+A17F;YI SYLLABLE NI;Lo;0;L;;;;;N;;;;;
+A180;YI SYLLABLE NIP;Lo;0;L;;;;;N;;;;;
+A181;YI SYLLABLE NIEX;Lo;0;L;;;;;N;;;;;
+A182;YI SYLLABLE NIE;Lo;0;L;;;;;N;;;;;
+A183;YI SYLLABLE NIEP;Lo;0;L;;;;;N;;;;;
+A184;YI SYLLABLE NAX;Lo;0;L;;;;;N;;;;;
+A185;YI SYLLABLE NA;Lo;0;L;;;;;N;;;;;
+A186;YI SYLLABLE NAP;Lo;0;L;;;;;N;;;;;
+A187;YI SYLLABLE NUOX;Lo;0;L;;;;;N;;;;;
+A188;YI SYLLABLE NUO;Lo;0;L;;;;;N;;;;;
+A189;YI SYLLABLE NUOP;Lo;0;L;;;;;N;;;;;
+A18A;YI SYLLABLE NOT;Lo;0;L;;;;;N;;;;;
+A18B;YI SYLLABLE NOX;Lo;0;L;;;;;N;;;;;
+A18C;YI SYLLABLE NO;Lo;0;L;;;;;N;;;;;
+A18D;YI SYLLABLE NOP;Lo;0;L;;;;;N;;;;;
+A18E;YI SYLLABLE NEX;Lo;0;L;;;;;N;;;;;
+A18F;YI SYLLABLE NE;Lo;0;L;;;;;N;;;;;
+A190;YI SYLLABLE NEP;Lo;0;L;;;;;N;;;;;
+A191;YI SYLLABLE NUT;Lo;0;L;;;;;N;;;;;
+A192;YI SYLLABLE NUX;Lo;0;L;;;;;N;;;;;
+A193;YI SYLLABLE NU;Lo;0;L;;;;;N;;;;;
+A194;YI SYLLABLE NUP;Lo;0;L;;;;;N;;;;;
+A195;YI SYLLABLE NURX;Lo;0;L;;;;;N;;;;;
+A196;YI SYLLABLE NUR;Lo;0;L;;;;;N;;;;;
+A197;YI SYLLABLE HLIT;Lo;0;L;;;;;N;;;;;
+A198;YI SYLLABLE HLIX;Lo;0;L;;;;;N;;;;;
+A199;YI SYLLABLE HLI;Lo;0;L;;;;;N;;;;;
+A19A;YI SYLLABLE HLIP;Lo;0;L;;;;;N;;;;;
+A19B;YI SYLLABLE HLIEX;Lo;0;L;;;;;N;;;;;
+A19C;YI SYLLABLE HLIE;Lo;0;L;;;;;N;;;;;
+A19D;YI SYLLABLE HLIEP;Lo;0;L;;;;;N;;;;;
+A19E;YI SYLLABLE HLAT;Lo;0;L;;;;;N;;;;;
+A19F;YI SYLLABLE HLAX;Lo;0;L;;;;;N;;;;;
+A1A0;YI SYLLABLE HLA;Lo;0;L;;;;;N;;;;;
+A1A1;YI SYLLABLE HLAP;Lo;0;L;;;;;N;;;;;
+A1A2;YI SYLLABLE HLUOX;Lo;0;L;;;;;N;;;;;
+A1A3;YI SYLLABLE HLUO;Lo;0;L;;;;;N;;;;;
+A1A4;YI SYLLABLE HLUOP;Lo;0;L;;;;;N;;;;;
+A1A5;YI SYLLABLE HLOX;Lo;0;L;;;;;N;;;;;
+A1A6;YI SYLLABLE HLO;Lo;0;L;;;;;N;;;;;
+A1A7;YI SYLLABLE HLOP;Lo;0;L;;;;;N;;;;;
+A1A8;YI SYLLABLE HLEX;Lo;0;L;;;;;N;;;;;
+A1A9;YI SYLLABLE HLE;Lo;0;L;;;;;N;;;;;
+A1AA;YI SYLLABLE HLEP;Lo;0;L;;;;;N;;;;;
+A1AB;YI SYLLABLE HLUT;Lo;0;L;;;;;N;;;;;
+A1AC;YI SYLLABLE HLUX;Lo;0;L;;;;;N;;;;;
+A1AD;YI SYLLABLE HLU;Lo;0;L;;;;;N;;;;;
+A1AE;YI SYLLABLE HLUP;Lo;0;L;;;;;N;;;;;
+A1AF;YI SYLLABLE HLURX;Lo;0;L;;;;;N;;;;;
+A1B0;YI SYLLABLE HLUR;Lo;0;L;;;;;N;;;;;
+A1B1;YI SYLLABLE HLYT;Lo;0;L;;;;;N;;;;;
+A1B2;YI SYLLABLE HLYX;Lo;0;L;;;;;N;;;;;
+A1B3;YI SYLLABLE HLY;Lo;0;L;;;;;N;;;;;
+A1B4;YI SYLLABLE HLYP;Lo;0;L;;;;;N;;;;;
+A1B5;YI SYLLABLE HLYRX;Lo;0;L;;;;;N;;;;;
+A1B6;YI SYLLABLE HLYR;Lo;0;L;;;;;N;;;;;
+A1B7;YI SYLLABLE LIT;Lo;0;L;;;;;N;;;;;
+A1B8;YI SYLLABLE LIX;Lo;0;L;;;;;N;;;;;
+A1B9;YI SYLLABLE LI;Lo;0;L;;;;;N;;;;;
+A1BA;YI SYLLABLE LIP;Lo;0;L;;;;;N;;;;;
+A1BB;YI SYLLABLE LIET;Lo;0;L;;;;;N;;;;;
+A1BC;YI SYLLABLE LIEX;Lo;0;L;;;;;N;;;;;
+A1BD;YI SYLLABLE LIE;Lo;0;L;;;;;N;;;;;
+A1BE;YI SYLLABLE LIEP;Lo;0;L;;;;;N;;;;;
+A1BF;YI SYLLABLE LAT;Lo;0;L;;;;;N;;;;;
+A1C0;YI SYLLABLE LAX;Lo;0;L;;;;;N;;;;;
+A1C1;YI SYLLABLE LA;Lo;0;L;;;;;N;;;;;
+A1C2;YI SYLLABLE LAP;Lo;0;L;;;;;N;;;;;
+A1C3;YI SYLLABLE LUOT;Lo;0;L;;;;;N;;;;;
+A1C4;YI SYLLABLE LUOX;Lo;0;L;;;;;N;;;;;
+A1C5;YI SYLLABLE LUO;Lo;0;L;;;;;N;;;;;
+A1C6;YI SYLLABLE LUOP;Lo;0;L;;;;;N;;;;;
+A1C7;YI SYLLABLE LOT;Lo;0;L;;;;;N;;;;;
+A1C8;YI SYLLABLE LOX;Lo;0;L;;;;;N;;;;;
+A1C9;YI SYLLABLE LO;Lo;0;L;;;;;N;;;;;
+A1CA;YI SYLLABLE LOP;Lo;0;L;;;;;N;;;;;
+A1CB;YI SYLLABLE LEX;Lo;0;L;;;;;N;;;;;
+A1CC;YI SYLLABLE LE;Lo;0;L;;;;;N;;;;;
+A1CD;YI SYLLABLE LEP;Lo;0;L;;;;;N;;;;;
+A1CE;YI SYLLABLE LUT;Lo;0;L;;;;;N;;;;;
+A1CF;YI SYLLABLE LUX;Lo;0;L;;;;;N;;;;;
+A1D0;YI SYLLABLE LU;Lo;0;L;;;;;N;;;;;
+A1D1;YI SYLLABLE LUP;Lo;0;L;;;;;N;;;;;
+A1D2;YI SYLLABLE LURX;Lo;0;L;;;;;N;;;;;
+A1D3;YI SYLLABLE LUR;Lo;0;L;;;;;N;;;;;
+A1D4;YI SYLLABLE LYT;Lo;0;L;;;;;N;;;;;
+A1D5;YI SYLLABLE LYX;Lo;0;L;;;;;N;;;;;
+A1D6;YI SYLLABLE LY;Lo;0;L;;;;;N;;;;;
+A1D7;YI SYLLABLE LYP;Lo;0;L;;;;;N;;;;;
+A1D8;YI SYLLABLE LYRX;Lo;0;L;;;;;N;;;;;
+A1D9;YI SYLLABLE LYR;Lo;0;L;;;;;N;;;;;
+A1DA;YI SYLLABLE GIT;Lo;0;L;;;;;N;;;;;
+A1DB;YI SYLLABLE GIX;Lo;0;L;;;;;N;;;;;
+A1DC;YI SYLLABLE GI;Lo;0;L;;;;;N;;;;;
+A1DD;YI SYLLABLE GIP;Lo;0;L;;;;;N;;;;;
+A1DE;YI SYLLABLE GIET;Lo;0;L;;;;;N;;;;;
+A1DF;YI SYLLABLE GIEX;Lo;0;L;;;;;N;;;;;
+A1E0;YI SYLLABLE GIE;Lo;0;L;;;;;N;;;;;
+A1E1;YI SYLLABLE GIEP;Lo;0;L;;;;;N;;;;;
+A1E2;YI SYLLABLE GAT;Lo;0;L;;;;;N;;;;;
+A1E3;YI SYLLABLE GAX;Lo;0;L;;;;;N;;;;;
+A1E4;YI SYLLABLE GA;Lo;0;L;;;;;N;;;;;
+A1E5;YI SYLLABLE GAP;Lo;0;L;;;;;N;;;;;
+A1E6;YI SYLLABLE GUOT;Lo;0;L;;;;;N;;;;;
+A1E7;YI SYLLABLE GUOX;Lo;0;L;;;;;N;;;;;
+A1E8;YI SYLLABLE GUO;Lo;0;L;;;;;N;;;;;
+A1E9;YI SYLLABLE GUOP;Lo;0;L;;;;;N;;;;;
+A1EA;YI SYLLABLE GOT;Lo;0;L;;;;;N;;;;;
+A1EB;YI SYLLABLE GOX;Lo;0;L;;;;;N;;;;;
+A1EC;YI SYLLABLE GO;Lo;0;L;;;;;N;;;;;
+A1ED;YI SYLLABLE GOP;Lo;0;L;;;;;N;;;;;
+A1EE;YI SYLLABLE GET;Lo;0;L;;;;;N;;;;;
+A1EF;YI SYLLABLE GEX;Lo;0;L;;;;;N;;;;;
+A1F0;YI SYLLABLE GE;Lo;0;L;;;;;N;;;;;
+A1F1;YI SYLLABLE GEP;Lo;0;L;;;;;N;;;;;
+A1F2;YI SYLLABLE GUT;Lo;0;L;;;;;N;;;;;
+A1F3;YI SYLLABLE GUX;Lo;0;L;;;;;N;;;;;
+A1F4;YI SYLLABLE GU;Lo;0;L;;;;;N;;;;;
+A1F5;YI SYLLABLE GUP;Lo;0;L;;;;;N;;;;;
+A1F6;YI SYLLABLE GURX;Lo;0;L;;;;;N;;;;;
+A1F7;YI SYLLABLE GUR;Lo;0;L;;;;;N;;;;;
+A1F8;YI SYLLABLE KIT;Lo;0;L;;;;;N;;;;;
+A1F9;YI SYLLABLE KIX;Lo;0;L;;;;;N;;;;;
+A1FA;YI SYLLABLE KI;Lo;0;L;;;;;N;;;;;
+A1FB;YI SYLLABLE KIP;Lo;0;L;;;;;N;;;;;
+A1FC;YI SYLLABLE KIEX;Lo;0;L;;;;;N;;;;;
+A1FD;YI SYLLABLE KIE;Lo;0;L;;;;;N;;;;;
+A1FE;YI SYLLABLE KIEP;Lo;0;L;;;;;N;;;;;
+A1FF;YI SYLLABLE KAT;Lo;0;L;;;;;N;;;;;
+A200;YI SYLLABLE KAX;Lo;0;L;;;;;N;;;;;
+A201;YI SYLLABLE KA;Lo;0;L;;;;;N;;;;;
+A202;YI SYLLABLE KAP;Lo;0;L;;;;;N;;;;;
+A203;YI SYLLABLE KUOX;Lo;0;L;;;;;N;;;;;
+A204;YI SYLLABLE KUO;Lo;0;L;;;;;N;;;;;
+A205;YI SYLLABLE KUOP;Lo;0;L;;;;;N;;;;;
+A206;YI SYLLABLE KOT;Lo;0;L;;;;;N;;;;;
+A207;YI SYLLABLE KOX;Lo;0;L;;;;;N;;;;;
+A208;YI SYLLABLE KO;Lo;0;L;;;;;N;;;;;
+A209;YI SYLLABLE KOP;Lo;0;L;;;;;N;;;;;
+A20A;YI SYLLABLE KET;Lo;0;L;;;;;N;;;;;
+A20B;YI SYLLABLE KEX;Lo;0;L;;;;;N;;;;;
+A20C;YI SYLLABLE KE;Lo;0;L;;;;;N;;;;;
+A20D;YI SYLLABLE KEP;Lo;0;L;;;;;N;;;;;
+A20E;YI SYLLABLE KUT;Lo;0;L;;;;;N;;;;;
+A20F;YI SYLLABLE KUX;Lo;0;L;;;;;N;;;;;
+A210;YI SYLLABLE KU;Lo;0;L;;;;;N;;;;;
+A211;YI SYLLABLE KUP;Lo;0;L;;;;;N;;;;;
+A212;YI SYLLABLE KURX;Lo;0;L;;;;;N;;;;;
+A213;YI SYLLABLE KUR;Lo;0;L;;;;;N;;;;;
+A214;YI SYLLABLE GGIT;Lo;0;L;;;;;N;;;;;
+A215;YI SYLLABLE GGIX;Lo;0;L;;;;;N;;;;;
+A216;YI SYLLABLE GGI;Lo;0;L;;;;;N;;;;;
+A217;YI SYLLABLE GGIEX;Lo;0;L;;;;;N;;;;;
+A218;YI SYLLABLE GGIE;Lo;0;L;;;;;N;;;;;
+A219;YI SYLLABLE GGIEP;Lo;0;L;;;;;N;;;;;
+A21A;YI SYLLABLE GGAT;Lo;0;L;;;;;N;;;;;
+A21B;YI SYLLABLE GGAX;Lo;0;L;;;;;N;;;;;
+A21C;YI SYLLABLE GGA;Lo;0;L;;;;;N;;;;;
+A21D;YI SYLLABLE GGAP;Lo;0;L;;;;;N;;;;;
+A21E;YI SYLLABLE GGUOT;Lo;0;L;;;;;N;;;;;
+A21F;YI SYLLABLE GGUOX;Lo;0;L;;;;;N;;;;;
+A220;YI SYLLABLE GGUO;Lo;0;L;;;;;N;;;;;
+A221;YI SYLLABLE GGUOP;Lo;0;L;;;;;N;;;;;
+A222;YI SYLLABLE GGOT;Lo;0;L;;;;;N;;;;;
+A223;YI SYLLABLE GGOX;Lo;0;L;;;;;N;;;;;
+A224;YI SYLLABLE GGO;Lo;0;L;;;;;N;;;;;
+A225;YI SYLLABLE GGOP;Lo;0;L;;;;;N;;;;;
+A226;YI SYLLABLE GGET;Lo;0;L;;;;;N;;;;;
+A227;YI SYLLABLE GGEX;Lo;0;L;;;;;N;;;;;
+A228;YI SYLLABLE GGE;Lo;0;L;;;;;N;;;;;
+A229;YI SYLLABLE GGEP;Lo;0;L;;;;;N;;;;;
+A22A;YI SYLLABLE GGUT;Lo;0;L;;;;;N;;;;;
+A22B;YI SYLLABLE GGUX;Lo;0;L;;;;;N;;;;;
+A22C;YI SYLLABLE GGU;Lo;0;L;;;;;N;;;;;
+A22D;YI SYLLABLE GGUP;Lo;0;L;;;;;N;;;;;
+A22E;YI SYLLABLE GGURX;Lo;0;L;;;;;N;;;;;
+A22F;YI SYLLABLE GGUR;Lo;0;L;;;;;N;;;;;
+A230;YI SYLLABLE MGIEX;Lo;0;L;;;;;N;;;;;
+A231;YI SYLLABLE MGIE;Lo;0;L;;;;;N;;;;;
+A232;YI SYLLABLE MGAT;Lo;0;L;;;;;N;;;;;
+A233;YI SYLLABLE MGAX;Lo;0;L;;;;;N;;;;;
+A234;YI SYLLABLE MGA;Lo;0;L;;;;;N;;;;;
+A235;YI SYLLABLE MGAP;Lo;0;L;;;;;N;;;;;
+A236;YI SYLLABLE MGUOX;Lo;0;L;;;;;N;;;;;
+A237;YI SYLLABLE MGUO;Lo;0;L;;;;;N;;;;;
+A238;YI SYLLABLE MGUOP;Lo;0;L;;;;;N;;;;;
+A239;YI SYLLABLE MGOT;Lo;0;L;;;;;N;;;;;
+A23A;YI SYLLABLE MGOX;Lo;0;L;;;;;N;;;;;
+A23B;YI SYLLABLE MGO;Lo;0;L;;;;;N;;;;;
+A23C;YI SYLLABLE MGOP;Lo;0;L;;;;;N;;;;;
+A23D;YI SYLLABLE MGEX;Lo;0;L;;;;;N;;;;;
+A23E;YI SYLLABLE MGE;Lo;0;L;;;;;N;;;;;
+A23F;YI SYLLABLE MGEP;Lo;0;L;;;;;N;;;;;
+A240;YI SYLLABLE MGUT;Lo;0;L;;;;;N;;;;;
+A241;YI SYLLABLE MGUX;Lo;0;L;;;;;N;;;;;
+A242;YI SYLLABLE MGU;Lo;0;L;;;;;N;;;;;
+A243;YI SYLLABLE MGUP;Lo;0;L;;;;;N;;;;;
+A244;YI SYLLABLE MGURX;Lo;0;L;;;;;N;;;;;
+A245;YI SYLLABLE MGUR;Lo;0;L;;;;;N;;;;;
+A246;YI SYLLABLE HXIT;Lo;0;L;;;;;N;;;;;
+A247;YI SYLLABLE HXIX;Lo;0;L;;;;;N;;;;;
+A248;YI SYLLABLE HXI;Lo;0;L;;;;;N;;;;;
+A249;YI SYLLABLE HXIP;Lo;0;L;;;;;N;;;;;
+A24A;YI SYLLABLE HXIET;Lo;0;L;;;;;N;;;;;
+A24B;YI SYLLABLE HXIEX;Lo;0;L;;;;;N;;;;;
+A24C;YI SYLLABLE HXIE;Lo;0;L;;;;;N;;;;;
+A24D;YI SYLLABLE HXIEP;Lo;0;L;;;;;N;;;;;
+A24E;YI SYLLABLE HXAT;Lo;0;L;;;;;N;;;;;
+A24F;YI SYLLABLE HXAX;Lo;0;L;;;;;N;;;;;
+A250;YI SYLLABLE HXA;Lo;0;L;;;;;N;;;;;
+A251;YI SYLLABLE HXAP;Lo;0;L;;;;;N;;;;;
+A252;YI SYLLABLE HXUOT;Lo;0;L;;;;;N;;;;;
+A253;YI SYLLABLE HXUOX;Lo;0;L;;;;;N;;;;;
+A254;YI SYLLABLE HXUO;Lo;0;L;;;;;N;;;;;
+A255;YI SYLLABLE HXUOP;Lo;0;L;;;;;N;;;;;
+A256;YI SYLLABLE HXOT;Lo;0;L;;;;;N;;;;;
+A257;YI SYLLABLE HXOX;Lo;0;L;;;;;N;;;;;
+A258;YI SYLLABLE HXO;Lo;0;L;;;;;N;;;;;
+A259;YI SYLLABLE HXOP;Lo;0;L;;;;;N;;;;;
+A25A;YI SYLLABLE HXEX;Lo;0;L;;;;;N;;;;;
+A25B;YI SYLLABLE HXE;Lo;0;L;;;;;N;;;;;
+A25C;YI SYLLABLE HXEP;Lo;0;L;;;;;N;;;;;
+A25D;YI SYLLABLE NGIEX;Lo;0;L;;;;;N;;;;;
+A25E;YI SYLLABLE NGIE;Lo;0;L;;;;;N;;;;;
+A25F;YI SYLLABLE NGIEP;Lo;0;L;;;;;N;;;;;
+A260;YI SYLLABLE NGAT;Lo;0;L;;;;;N;;;;;
+A261;YI SYLLABLE NGAX;Lo;0;L;;;;;N;;;;;
+A262;YI SYLLABLE NGA;Lo;0;L;;;;;N;;;;;
+A263;YI SYLLABLE NGAP;Lo;0;L;;;;;N;;;;;
+A264;YI SYLLABLE NGUOT;Lo;0;L;;;;;N;;;;;
+A265;YI SYLLABLE NGUOX;Lo;0;L;;;;;N;;;;;
+A266;YI SYLLABLE NGUO;Lo;0;L;;;;;N;;;;;
+A267;YI SYLLABLE NGOT;Lo;0;L;;;;;N;;;;;
+A268;YI SYLLABLE NGOX;Lo;0;L;;;;;N;;;;;
+A269;YI SYLLABLE NGO;Lo;0;L;;;;;N;;;;;
+A26A;YI SYLLABLE NGOP;Lo;0;L;;;;;N;;;;;
+A26B;YI SYLLABLE NGEX;Lo;0;L;;;;;N;;;;;
+A26C;YI SYLLABLE NGE;Lo;0;L;;;;;N;;;;;
+A26D;YI SYLLABLE NGEP;Lo;0;L;;;;;N;;;;;
+A26E;YI SYLLABLE HIT;Lo;0;L;;;;;N;;;;;
+A26F;YI SYLLABLE HIEX;Lo;0;L;;;;;N;;;;;
+A270;YI SYLLABLE HIE;Lo;0;L;;;;;N;;;;;
+A271;YI SYLLABLE HAT;Lo;0;L;;;;;N;;;;;
+A272;YI SYLLABLE HAX;Lo;0;L;;;;;N;;;;;
+A273;YI SYLLABLE HA;Lo;0;L;;;;;N;;;;;
+A274;YI SYLLABLE HAP;Lo;0;L;;;;;N;;;;;
+A275;YI SYLLABLE HUOT;Lo;0;L;;;;;N;;;;;
+A276;YI SYLLABLE HUOX;Lo;0;L;;;;;N;;;;;
+A277;YI SYLLABLE HUO;Lo;0;L;;;;;N;;;;;
+A278;YI SYLLABLE HUOP;Lo;0;L;;;;;N;;;;;
+A279;YI SYLLABLE HOT;Lo;0;L;;;;;N;;;;;
+A27A;YI SYLLABLE HOX;Lo;0;L;;;;;N;;;;;
+A27B;YI SYLLABLE HO;Lo;0;L;;;;;N;;;;;
+A27C;YI SYLLABLE HOP;Lo;0;L;;;;;N;;;;;
+A27D;YI SYLLABLE HEX;Lo;0;L;;;;;N;;;;;
+A27E;YI SYLLABLE HE;Lo;0;L;;;;;N;;;;;
+A27F;YI SYLLABLE HEP;Lo;0;L;;;;;N;;;;;
+A280;YI SYLLABLE WAT;Lo;0;L;;;;;N;;;;;
+A281;YI SYLLABLE WAX;Lo;0;L;;;;;N;;;;;
+A282;YI SYLLABLE WA;Lo;0;L;;;;;N;;;;;
+A283;YI SYLLABLE WAP;Lo;0;L;;;;;N;;;;;
+A284;YI SYLLABLE WUOX;Lo;0;L;;;;;N;;;;;
+A285;YI SYLLABLE WUO;Lo;0;L;;;;;N;;;;;
+A286;YI SYLLABLE WUOP;Lo;0;L;;;;;N;;;;;
+A287;YI SYLLABLE WOX;Lo;0;L;;;;;N;;;;;
+A288;YI SYLLABLE WO;Lo;0;L;;;;;N;;;;;
+A289;YI SYLLABLE WOP;Lo;0;L;;;;;N;;;;;
+A28A;YI SYLLABLE WEX;Lo;0;L;;;;;N;;;;;
+A28B;YI SYLLABLE WE;Lo;0;L;;;;;N;;;;;
+A28C;YI SYLLABLE WEP;Lo;0;L;;;;;N;;;;;
+A28D;YI SYLLABLE ZIT;Lo;0;L;;;;;N;;;;;
+A28E;YI SYLLABLE ZIX;Lo;0;L;;;;;N;;;;;
+A28F;YI SYLLABLE ZI;Lo;0;L;;;;;N;;;;;
+A290;YI SYLLABLE ZIP;Lo;0;L;;;;;N;;;;;
+A291;YI SYLLABLE ZIEX;Lo;0;L;;;;;N;;;;;
+A292;YI SYLLABLE ZIE;Lo;0;L;;;;;N;;;;;
+A293;YI SYLLABLE ZIEP;Lo;0;L;;;;;N;;;;;
+A294;YI SYLLABLE ZAT;Lo;0;L;;;;;N;;;;;
+A295;YI SYLLABLE ZAX;Lo;0;L;;;;;N;;;;;
+A296;YI SYLLABLE ZA;Lo;0;L;;;;;N;;;;;
+A297;YI SYLLABLE ZAP;Lo;0;L;;;;;N;;;;;
+A298;YI SYLLABLE ZUOX;Lo;0;L;;;;;N;;;;;
+A299;YI SYLLABLE ZUO;Lo;0;L;;;;;N;;;;;
+A29A;YI SYLLABLE ZUOP;Lo;0;L;;;;;N;;;;;
+A29B;YI SYLLABLE ZOT;Lo;0;L;;;;;N;;;;;
+A29C;YI SYLLABLE ZOX;Lo;0;L;;;;;N;;;;;
+A29D;YI SYLLABLE ZO;Lo;0;L;;;;;N;;;;;
+A29E;YI SYLLABLE ZOP;Lo;0;L;;;;;N;;;;;
+A29F;YI SYLLABLE ZEX;Lo;0;L;;;;;N;;;;;
+A2A0;YI SYLLABLE ZE;Lo;0;L;;;;;N;;;;;
+A2A1;YI SYLLABLE ZEP;Lo;0;L;;;;;N;;;;;
+A2A2;YI SYLLABLE ZUT;Lo;0;L;;;;;N;;;;;
+A2A3;YI SYLLABLE ZUX;Lo;0;L;;;;;N;;;;;
+A2A4;YI SYLLABLE ZU;Lo;0;L;;;;;N;;;;;
+A2A5;YI SYLLABLE ZUP;Lo;0;L;;;;;N;;;;;
+A2A6;YI SYLLABLE ZURX;Lo;0;L;;;;;N;;;;;
+A2A7;YI SYLLABLE ZUR;Lo;0;L;;;;;N;;;;;
+A2A8;YI SYLLABLE ZYT;Lo;0;L;;;;;N;;;;;
+A2A9;YI SYLLABLE ZYX;Lo;0;L;;;;;N;;;;;
+A2AA;YI SYLLABLE ZY;Lo;0;L;;;;;N;;;;;
+A2AB;YI SYLLABLE ZYP;Lo;0;L;;;;;N;;;;;
+A2AC;YI SYLLABLE ZYRX;Lo;0;L;;;;;N;;;;;
+A2AD;YI SYLLABLE ZYR;Lo;0;L;;;;;N;;;;;
+A2AE;YI SYLLABLE CIT;Lo;0;L;;;;;N;;;;;
+A2AF;YI SYLLABLE CIX;Lo;0;L;;;;;N;;;;;
+A2B0;YI SYLLABLE CI;Lo;0;L;;;;;N;;;;;
+A2B1;YI SYLLABLE CIP;Lo;0;L;;;;;N;;;;;
+A2B2;YI SYLLABLE CIET;Lo;0;L;;;;;N;;;;;
+A2B3;YI SYLLABLE CIEX;Lo;0;L;;;;;N;;;;;
+A2B4;YI SYLLABLE CIE;Lo;0;L;;;;;N;;;;;
+A2B5;YI SYLLABLE CIEP;Lo;0;L;;;;;N;;;;;
+A2B6;YI SYLLABLE CAT;Lo;0;L;;;;;N;;;;;
+A2B7;YI SYLLABLE CAX;Lo;0;L;;;;;N;;;;;
+A2B8;YI SYLLABLE CA;Lo;0;L;;;;;N;;;;;
+A2B9;YI SYLLABLE CAP;Lo;0;L;;;;;N;;;;;
+A2BA;YI SYLLABLE CUOX;Lo;0;L;;;;;N;;;;;
+A2BB;YI SYLLABLE CUO;Lo;0;L;;;;;N;;;;;
+A2BC;YI SYLLABLE CUOP;Lo;0;L;;;;;N;;;;;
+A2BD;YI SYLLABLE COT;Lo;0;L;;;;;N;;;;;
+A2BE;YI SYLLABLE COX;Lo;0;L;;;;;N;;;;;
+A2BF;YI SYLLABLE CO;Lo;0;L;;;;;N;;;;;
+A2C0;YI SYLLABLE COP;Lo;0;L;;;;;N;;;;;
+A2C1;YI SYLLABLE CEX;Lo;0;L;;;;;N;;;;;
+A2C2;YI SYLLABLE CE;Lo;0;L;;;;;N;;;;;
+A2C3;YI SYLLABLE CEP;Lo;0;L;;;;;N;;;;;
+A2C4;YI SYLLABLE CUT;Lo;0;L;;;;;N;;;;;
+A2C5;YI SYLLABLE CUX;Lo;0;L;;;;;N;;;;;
+A2C6;YI SYLLABLE CU;Lo;0;L;;;;;N;;;;;
+A2C7;YI SYLLABLE CUP;Lo;0;L;;;;;N;;;;;
+A2C8;YI SYLLABLE CURX;Lo;0;L;;;;;N;;;;;
+A2C9;YI SYLLABLE CUR;Lo;0;L;;;;;N;;;;;
+A2CA;YI SYLLABLE CYT;Lo;0;L;;;;;N;;;;;
+A2CB;YI SYLLABLE CYX;Lo;0;L;;;;;N;;;;;
+A2CC;YI SYLLABLE CY;Lo;0;L;;;;;N;;;;;
+A2CD;YI SYLLABLE CYP;Lo;0;L;;;;;N;;;;;
+A2CE;YI SYLLABLE CYRX;Lo;0;L;;;;;N;;;;;
+A2CF;YI SYLLABLE CYR;Lo;0;L;;;;;N;;;;;
+A2D0;YI SYLLABLE ZZIT;Lo;0;L;;;;;N;;;;;
+A2D1;YI SYLLABLE ZZIX;Lo;0;L;;;;;N;;;;;
+A2D2;YI SYLLABLE ZZI;Lo;0;L;;;;;N;;;;;
+A2D3;YI SYLLABLE ZZIP;Lo;0;L;;;;;N;;;;;
+A2D4;YI SYLLABLE ZZIET;Lo;0;L;;;;;N;;;;;
+A2D5;YI SYLLABLE ZZIEX;Lo;0;L;;;;;N;;;;;
+A2D6;YI SYLLABLE ZZIE;Lo;0;L;;;;;N;;;;;
+A2D7;YI SYLLABLE ZZIEP;Lo;0;L;;;;;N;;;;;
+A2D8;YI SYLLABLE ZZAT;Lo;0;L;;;;;N;;;;;
+A2D9;YI SYLLABLE ZZAX;Lo;0;L;;;;;N;;;;;
+A2DA;YI SYLLABLE ZZA;Lo;0;L;;;;;N;;;;;
+A2DB;YI SYLLABLE ZZAP;Lo;0;L;;;;;N;;;;;
+A2DC;YI SYLLABLE ZZOX;Lo;0;L;;;;;N;;;;;
+A2DD;YI SYLLABLE ZZO;Lo;0;L;;;;;N;;;;;
+A2DE;YI SYLLABLE ZZOP;Lo;0;L;;;;;N;;;;;
+A2DF;YI SYLLABLE ZZEX;Lo;0;L;;;;;N;;;;;
+A2E0;YI SYLLABLE ZZE;Lo;0;L;;;;;N;;;;;
+A2E1;YI SYLLABLE ZZEP;Lo;0;L;;;;;N;;;;;
+A2E2;YI SYLLABLE ZZUX;Lo;0;L;;;;;N;;;;;
+A2E3;YI SYLLABLE ZZU;Lo;0;L;;;;;N;;;;;
+A2E4;YI SYLLABLE ZZUP;Lo;0;L;;;;;N;;;;;
+A2E5;YI SYLLABLE ZZURX;Lo;0;L;;;;;N;;;;;
+A2E6;YI SYLLABLE ZZUR;Lo;0;L;;;;;N;;;;;
+A2E7;YI SYLLABLE ZZYT;Lo;0;L;;;;;N;;;;;
+A2E8;YI SYLLABLE ZZYX;Lo;0;L;;;;;N;;;;;
+A2E9;YI SYLLABLE ZZY;Lo;0;L;;;;;N;;;;;
+A2EA;YI SYLLABLE ZZYP;Lo;0;L;;;;;N;;;;;
+A2EB;YI SYLLABLE ZZYRX;Lo;0;L;;;;;N;;;;;
+A2EC;YI SYLLABLE ZZYR;Lo;0;L;;;;;N;;;;;
+A2ED;YI SYLLABLE NZIT;Lo;0;L;;;;;N;;;;;
+A2EE;YI SYLLABLE NZIX;Lo;0;L;;;;;N;;;;;
+A2EF;YI SYLLABLE NZI;Lo;0;L;;;;;N;;;;;
+A2F0;YI SYLLABLE NZIP;Lo;0;L;;;;;N;;;;;
+A2F1;YI SYLLABLE NZIEX;Lo;0;L;;;;;N;;;;;
+A2F2;YI SYLLABLE NZIE;Lo;0;L;;;;;N;;;;;
+A2F3;YI SYLLABLE NZIEP;Lo;0;L;;;;;N;;;;;
+A2F4;YI SYLLABLE NZAT;Lo;0;L;;;;;N;;;;;
+A2F5;YI SYLLABLE NZAX;Lo;0;L;;;;;N;;;;;
+A2F6;YI SYLLABLE NZA;Lo;0;L;;;;;N;;;;;
+A2F7;YI SYLLABLE NZAP;Lo;0;L;;;;;N;;;;;
+A2F8;YI SYLLABLE NZUOX;Lo;0;L;;;;;N;;;;;
+A2F9;YI SYLLABLE NZUO;Lo;0;L;;;;;N;;;;;
+A2FA;YI SYLLABLE NZOX;Lo;0;L;;;;;N;;;;;
+A2FB;YI SYLLABLE NZOP;Lo;0;L;;;;;N;;;;;
+A2FC;YI SYLLABLE NZEX;Lo;0;L;;;;;N;;;;;
+A2FD;YI SYLLABLE NZE;Lo;0;L;;;;;N;;;;;
+A2FE;YI SYLLABLE NZUX;Lo;0;L;;;;;N;;;;;
+A2FF;YI SYLLABLE NZU;Lo;0;L;;;;;N;;;;;
+A300;YI SYLLABLE NZUP;Lo;0;L;;;;;N;;;;;
+A301;YI SYLLABLE NZURX;Lo;0;L;;;;;N;;;;;
+A302;YI SYLLABLE NZUR;Lo;0;L;;;;;N;;;;;
+A303;YI SYLLABLE NZYT;Lo;0;L;;;;;N;;;;;
+A304;YI SYLLABLE NZYX;Lo;0;L;;;;;N;;;;;
+A305;YI SYLLABLE NZY;Lo;0;L;;;;;N;;;;;
+A306;YI SYLLABLE NZYP;Lo;0;L;;;;;N;;;;;
+A307;YI SYLLABLE NZYRX;Lo;0;L;;;;;N;;;;;
+A308;YI SYLLABLE NZYR;Lo;0;L;;;;;N;;;;;
+A309;YI SYLLABLE SIT;Lo;0;L;;;;;N;;;;;
+A30A;YI SYLLABLE SIX;Lo;0;L;;;;;N;;;;;
+A30B;YI SYLLABLE SI;Lo;0;L;;;;;N;;;;;
+A30C;YI SYLLABLE SIP;Lo;0;L;;;;;N;;;;;
+A30D;YI SYLLABLE SIEX;Lo;0;L;;;;;N;;;;;
+A30E;YI SYLLABLE SIE;Lo;0;L;;;;;N;;;;;
+A30F;YI SYLLABLE SIEP;Lo;0;L;;;;;N;;;;;
+A310;YI SYLLABLE SAT;Lo;0;L;;;;;N;;;;;
+A311;YI SYLLABLE SAX;Lo;0;L;;;;;N;;;;;
+A312;YI SYLLABLE SA;Lo;0;L;;;;;N;;;;;
+A313;YI SYLLABLE SAP;Lo;0;L;;;;;N;;;;;
+A314;YI SYLLABLE SUOX;Lo;0;L;;;;;N;;;;;
+A315;YI SYLLABLE SUO;Lo;0;L;;;;;N;;;;;
+A316;YI SYLLABLE SUOP;Lo;0;L;;;;;N;;;;;
+A317;YI SYLLABLE SOT;Lo;0;L;;;;;N;;;;;
+A318;YI SYLLABLE SOX;Lo;0;L;;;;;N;;;;;
+A319;YI SYLLABLE SO;Lo;0;L;;;;;N;;;;;
+A31A;YI SYLLABLE SOP;Lo;0;L;;;;;N;;;;;
+A31B;YI SYLLABLE SEX;Lo;0;L;;;;;N;;;;;
+A31C;YI SYLLABLE SE;Lo;0;L;;;;;N;;;;;
+A31D;YI SYLLABLE SEP;Lo;0;L;;;;;N;;;;;
+A31E;YI SYLLABLE SUT;Lo;0;L;;;;;N;;;;;
+A31F;YI SYLLABLE SUX;Lo;0;L;;;;;N;;;;;
+A320;YI SYLLABLE SU;Lo;0;L;;;;;N;;;;;
+A321;YI SYLLABLE SUP;Lo;0;L;;;;;N;;;;;
+A322;YI SYLLABLE SURX;Lo;0;L;;;;;N;;;;;
+A323;YI SYLLABLE SUR;Lo;0;L;;;;;N;;;;;
+A324;YI SYLLABLE SYT;Lo;0;L;;;;;N;;;;;
+A325;YI SYLLABLE SYX;Lo;0;L;;;;;N;;;;;
+A326;YI SYLLABLE SY;Lo;0;L;;;;;N;;;;;
+A327;YI SYLLABLE SYP;Lo;0;L;;;;;N;;;;;
+A328;YI SYLLABLE SYRX;Lo;0;L;;;;;N;;;;;
+A329;YI SYLLABLE SYR;Lo;0;L;;;;;N;;;;;
+A32A;YI SYLLABLE SSIT;Lo;0;L;;;;;N;;;;;
+A32B;YI SYLLABLE SSIX;Lo;0;L;;;;;N;;;;;
+A32C;YI SYLLABLE SSI;Lo;0;L;;;;;N;;;;;
+A32D;YI SYLLABLE SSIP;Lo;0;L;;;;;N;;;;;
+A32E;YI SYLLABLE SSIEX;Lo;0;L;;;;;N;;;;;
+A32F;YI SYLLABLE SSIE;Lo;0;L;;;;;N;;;;;
+A330;YI SYLLABLE SSIEP;Lo;0;L;;;;;N;;;;;
+A331;YI SYLLABLE SSAT;Lo;0;L;;;;;N;;;;;
+A332;YI SYLLABLE SSAX;Lo;0;L;;;;;N;;;;;
+A333;YI SYLLABLE SSA;Lo;0;L;;;;;N;;;;;
+A334;YI SYLLABLE SSAP;Lo;0;L;;;;;N;;;;;
+A335;YI SYLLABLE SSOT;Lo;0;L;;;;;N;;;;;
+A336;YI SYLLABLE SSOX;Lo;0;L;;;;;N;;;;;
+A337;YI SYLLABLE SSO;Lo;0;L;;;;;N;;;;;
+A338;YI SYLLABLE SSOP;Lo;0;L;;;;;N;;;;;
+A339;YI SYLLABLE SSEX;Lo;0;L;;;;;N;;;;;
+A33A;YI SYLLABLE SSE;Lo;0;L;;;;;N;;;;;
+A33B;YI SYLLABLE SSEP;Lo;0;L;;;;;N;;;;;
+A33C;YI SYLLABLE SSUT;Lo;0;L;;;;;N;;;;;
+A33D;YI SYLLABLE SSUX;Lo;0;L;;;;;N;;;;;
+A33E;YI SYLLABLE SSU;Lo;0;L;;;;;N;;;;;
+A33F;YI SYLLABLE SSUP;Lo;0;L;;;;;N;;;;;
+A340;YI SYLLABLE SSYT;Lo;0;L;;;;;N;;;;;
+A341;YI SYLLABLE SSYX;Lo;0;L;;;;;N;;;;;
+A342;YI SYLLABLE SSY;Lo;0;L;;;;;N;;;;;
+A343;YI SYLLABLE SSYP;Lo;0;L;;;;;N;;;;;
+A344;YI SYLLABLE SSYRX;Lo;0;L;;;;;N;;;;;
+A345;YI SYLLABLE SSYR;Lo;0;L;;;;;N;;;;;
+A346;YI SYLLABLE ZHAT;Lo;0;L;;;;;N;;;;;
+A347;YI SYLLABLE ZHAX;Lo;0;L;;;;;N;;;;;
+A348;YI SYLLABLE ZHA;Lo;0;L;;;;;N;;;;;
+A349;YI SYLLABLE ZHAP;Lo;0;L;;;;;N;;;;;
+A34A;YI SYLLABLE ZHUOX;Lo;0;L;;;;;N;;;;;
+A34B;YI SYLLABLE ZHUO;Lo;0;L;;;;;N;;;;;
+A34C;YI SYLLABLE ZHUOP;Lo;0;L;;;;;N;;;;;
+A34D;YI SYLLABLE ZHOT;Lo;0;L;;;;;N;;;;;
+A34E;YI SYLLABLE ZHOX;Lo;0;L;;;;;N;;;;;
+A34F;YI SYLLABLE ZHO;Lo;0;L;;;;;N;;;;;
+A350;YI SYLLABLE ZHOP;Lo;0;L;;;;;N;;;;;
+A351;YI SYLLABLE ZHET;Lo;0;L;;;;;N;;;;;
+A352;YI SYLLABLE ZHEX;Lo;0;L;;;;;N;;;;;
+A353;YI SYLLABLE ZHE;Lo;0;L;;;;;N;;;;;
+A354;YI SYLLABLE ZHEP;Lo;0;L;;;;;N;;;;;
+A355;YI SYLLABLE ZHUT;Lo;0;L;;;;;N;;;;;
+A356;YI SYLLABLE ZHUX;Lo;0;L;;;;;N;;;;;
+A357;YI SYLLABLE ZHU;Lo;0;L;;;;;N;;;;;
+A358;YI SYLLABLE ZHUP;Lo;0;L;;;;;N;;;;;
+A359;YI SYLLABLE ZHURX;Lo;0;L;;;;;N;;;;;
+A35A;YI SYLLABLE ZHUR;Lo;0;L;;;;;N;;;;;
+A35B;YI SYLLABLE ZHYT;Lo;0;L;;;;;N;;;;;
+A35C;YI SYLLABLE ZHYX;Lo;0;L;;;;;N;;;;;
+A35D;YI SYLLABLE ZHY;Lo;0;L;;;;;N;;;;;
+A35E;YI SYLLABLE ZHYP;Lo;0;L;;;;;N;;;;;
+A35F;YI SYLLABLE ZHYRX;Lo;0;L;;;;;N;;;;;
+A360;YI SYLLABLE ZHYR;Lo;0;L;;;;;N;;;;;
+A361;YI SYLLABLE CHAT;Lo;0;L;;;;;N;;;;;
+A362;YI SYLLABLE CHAX;Lo;0;L;;;;;N;;;;;
+A363;YI SYLLABLE CHA;Lo;0;L;;;;;N;;;;;
+A364;YI SYLLABLE CHAP;Lo;0;L;;;;;N;;;;;
+A365;YI SYLLABLE CHUOT;Lo;0;L;;;;;N;;;;;
+A366;YI SYLLABLE CHUOX;Lo;0;L;;;;;N;;;;;
+A367;YI SYLLABLE CHUO;Lo;0;L;;;;;N;;;;;
+A368;YI SYLLABLE CHUOP;Lo;0;L;;;;;N;;;;;
+A369;YI SYLLABLE CHOT;Lo;0;L;;;;;N;;;;;
+A36A;YI SYLLABLE CHOX;Lo;0;L;;;;;N;;;;;
+A36B;YI SYLLABLE CHO;Lo;0;L;;;;;N;;;;;
+A36C;YI SYLLABLE CHOP;Lo;0;L;;;;;N;;;;;
+A36D;YI SYLLABLE CHET;Lo;0;L;;;;;N;;;;;
+A36E;YI SYLLABLE CHEX;Lo;0;L;;;;;N;;;;;
+A36F;YI SYLLABLE CHE;Lo;0;L;;;;;N;;;;;
+A370;YI SYLLABLE CHEP;Lo;0;L;;;;;N;;;;;
+A371;YI SYLLABLE CHUX;Lo;0;L;;;;;N;;;;;
+A372;YI SYLLABLE CHU;Lo;0;L;;;;;N;;;;;
+A373;YI SYLLABLE CHUP;Lo;0;L;;;;;N;;;;;
+A374;YI SYLLABLE CHURX;Lo;0;L;;;;;N;;;;;
+A375;YI SYLLABLE CHUR;Lo;0;L;;;;;N;;;;;
+A376;YI SYLLABLE CHYT;Lo;0;L;;;;;N;;;;;
+A377;YI SYLLABLE CHYX;Lo;0;L;;;;;N;;;;;
+A378;YI SYLLABLE CHY;Lo;0;L;;;;;N;;;;;
+A379;YI SYLLABLE CHYP;Lo;0;L;;;;;N;;;;;
+A37A;YI SYLLABLE CHYRX;Lo;0;L;;;;;N;;;;;
+A37B;YI SYLLABLE CHYR;Lo;0;L;;;;;N;;;;;
+A37C;YI SYLLABLE RRAX;Lo;0;L;;;;;N;;;;;
+A37D;YI SYLLABLE RRA;Lo;0;L;;;;;N;;;;;
+A37E;YI SYLLABLE RRUOX;Lo;0;L;;;;;N;;;;;
+A37F;YI SYLLABLE RRUO;Lo;0;L;;;;;N;;;;;
+A380;YI SYLLABLE RROT;Lo;0;L;;;;;N;;;;;
+A381;YI SYLLABLE RROX;Lo;0;L;;;;;N;;;;;
+A382;YI SYLLABLE RRO;Lo;0;L;;;;;N;;;;;
+A383;YI SYLLABLE RROP;Lo;0;L;;;;;N;;;;;
+A384;YI SYLLABLE RRET;Lo;0;L;;;;;N;;;;;
+A385;YI SYLLABLE RREX;Lo;0;L;;;;;N;;;;;
+A386;YI SYLLABLE RRE;Lo;0;L;;;;;N;;;;;
+A387;YI SYLLABLE RREP;Lo;0;L;;;;;N;;;;;
+A388;YI SYLLABLE RRUT;Lo;0;L;;;;;N;;;;;
+A389;YI SYLLABLE RRUX;Lo;0;L;;;;;N;;;;;
+A38A;YI SYLLABLE RRU;Lo;0;L;;;;;N;;;;;
+A38B;YI SYLLABLE RRUP;Lo;0;L;;;;;N;;;;;
+A38C;YI SYLLABLE RRURX;Lo;0;L;;;;;N;;;;;
+A38D;YI SYLLABLE RRUR;Lo;0;L;;;;;N;;;;;
+A38E;YI SYLLABLE RRYT;Lo;0;L;;;;;N;;;;;
+A38F;YI SYLLABLE RRYX;Lo;0;L;;;;;N;;;;;
+A390;YI SYLLABLE RRY;Lo;0;L;;;;;N;;;;;
+A391;YI SYLLABLE RRYP;Lo;0;L;;;;;N;;;;;
+A392;YI SYLLABLE RRYRX;Lo;0;L;;;;;N;;;;;
+A393;YI SYLLABLE RRYR;Lo;0;L;;;;;N;;;;;
+A394;YI SYLLABLE NRAT;Lo;0;L;;;;;N;;;;;
+A395;YI SYLLABLE NRAX;Lo;0;L;;;;;N;;;;;
+A396;YI SYLLABLE NRA;Lo;0;L;;;;;N;;;;;
+A397;YI SYLLABLE NRAP;Lo;0;L;;;;;N;;;;;
+A398;YI SYLLABLE NROX;Lo;0;L;;;;;N;;;;;
+A399;YI SYLLABLE NRO;Lo;0;L;;;;;N;;;;;
+A39A;YI SYLLABLE NROP;Lo;0;L;;;;;N;;;;;
+A39B;YI SYLLABLE NRET;Lo;0;L;;;;;N;;;;;
+A39C;YI SYLLABLE NREX;Lo;0;L;;;;;N;;;;;
+A39D;YI SYLLABLE NRE;Lo;0;L;;;;;N;;;;;
+A39E;YI SYLLABLE NREP;Lo;0;L;;;;;N;;;;;
+A39F;YI SYLLABLE NRUT;Lo;0;L;;;;;N;;;;;
+A3A0;YI SYLLABLE NRUX;Lo;0;L;;;;;N;;;;;
+A3A1;YI SYLLABLE NRU;Lo;0;L;;;;;N;;;;;
+A3A2;YI SYLLABLE NRUP;Lo;0;L;;;;;N;;;;;
+A3A3;YI SYLLABLE NRURX;Lo;0;L;;;;;N;;;;;
+A3A4;YI SYLLABLE NRUR;Lo;0;L;;;;;N;;;;;
+A3A5;YI SYLLABLE NRYT;Lo;0;L;;;;;N;;;;;
+A3A6;YI SYLLABLE NRYX;Lo;0;L;;;;;N;;;;;
+A3A7;YI SYLLABLE NRY;Lo;0;L;;;;;N;;;;;
+A3A8;YI SYLLABLE NRYP;Lo;0;L;;;;;N;;;;;
+A3A9;YI SYLLABLE NRYRX;Lo;0;L;;;;;N;;;;;
+A3AA;YI SYLLABLE NRYR;Lo;0;L;;;;;N;;;;;
+A3AB;YI SYLLABLE SHAT;Lo;0;L;;;;;N;;;;;
+A3AC;YI SYLLABLE SHAX;Lo;0;L;;;;;N;;;;;
+A3AD;YI SYLLABLE SHA;Lo;0;L;;;;;N;;;;;
+A3AE;YI SYLLABLE SHAP;Lo;0;L;;;;;N;;;;;
+A3AF;YI SYLLABLE SHUOX;Lo;0;L;;;;;N;;;;;
+A3B0;YI SYLLABLE SHUO;Lo;0;L;;;;;N;;;;;
+A3B1;YI SYLLABLE SHUOP;Lo;0;L;;;;;N;;;;;
+A3B2;YI SYLLABLE SHOT;Lo;0;L;;;;;N;;;;;
+A3B3;YI SYLLABLE SHOX;Lo;0;L;;;;;N;;;;;
+A3B4;YI SYLLABLE SHO;Lo;0;L;;;;;N;;;;;
+A3B5;YI SYLLABLE SHOP;Lo;0;L;;;;;N;;;;;
+A3B6;YI SYLLABLE SHET;Lo;0;L;;;;;N;;;;;
+A3B7;YI SYLLABLE SHEX;Lo;0;L;;;;;N;;;;;
+A3B8;YI SYLLABLE SHE;Lo;0;L;;;;;N;;;;;
+A3B9;YI SYLLABLE SHEP;Lo;0;L;;;;;N;;;;;
+A3BA;YI SYLLABLE SHUT;Lo;0;L;;;;;N;;;;;
+A3BB;YI SYLLABLE SHUX;Lo;0;L;;;;;N;;;;;
+A3BC;YI SYLLABLE SHU;Lo;0;L;;;;;N;;;;;
+A3BD;YI SYLLABLE SHUP;Lo;0;L;;;;;N;;;;;
+A3BE;YI SYLLABLE SHURX;Lo;0;L;;;;;N;;;;;
+A3BF;YI SYLLABLE SHUR;Lo;0;L;;;;;N;;;;;
+A3C0;YI SYLLABLE SHYT;Lo;0;L;;;;;N;;;;;
+A3C1;YI SYLLABLE SHYX;Lo;0;L;;;;;N;;;;;
+A3C2;YI SYLLABLE SHY;Lo;0;L;;;;;N;;;;;
+A3C3;YI SYLLABLE SHYP;Lo;0;L;;;;;N;;;;;
+A3C4;YI SYLLABLE SHYRX;Lo;0;L;;;;;N;;;;;
+A3C5;YI SYLLABLE SHYR;Lo;0;L;;;;;N;;;;;
+A3C6;YI SYLLABLE RAT;Lo;0;L;;;;;N;;;;;
+A3C7;YI SYLLABLE RAX;Lo;0;L;;;;;N;;;;;
+A3C8;YI SYLLABLE RA;Lo;0;L;;;;;N;;;;;
+A3C9;YI SYLLABLE RAP;Lo;0;L;;;;;N;;;;;
+A3CA;YI SYLLABLE RUOX;Lo;0;L;;;;;N;;;;;
+A3CB;YI SYLLABLE RUO;Lo;0;L;;;;;N;;;;;
+A3CC;YI SYLLABLE RUOP;Lo;0;L;;;;;N;;;;;
+A3CD;YI SYLLABLE ROT;Lo;0;L;;;;;N;;;;;
+A3CE;YI SYLLABLE ROX;Lo;0;L;;;;;N;;;;;
+A3CF;YI SYLLABLE RO;Lo;0;L;;;;;N;;;;;
+A3D0;YI SYLLABLE ROP;Lo;0;L;;;;;N;;;;;
+A3D1;YI SYLLABLE REX;Lo;0;L;;;;;N;;;;;
+A3D2;YI SYLLABLE RE;Lo;0;L;;;;;N;;;;;
+A3D3;YI SYLLABLE REP;Lo;0;L;;;;;N;;;;;
+A3D4;YI SYLLABLE RUT;Lo;0;L;;;;;N;;;;;
+A3D5;YI SYLLABLE RUX;Lo;0;L;;;;;N;;;;;
+A3D6;YI SYLLABLE RU;Lo;0;L;;;;;N;;;;;
+A3D7;YI SYLLABLE RUP;Lo;0;L;;;;;N;;;;;
+A3D8;YI SYLLABLE RURX;Lo;0;L;;;;;N;;;;;
+A3D9;YI SYLLABLE RUR;Lo;0;L;;;;;N;;;;;
+A3DA;YI SYLLABLE RYT;Lo;0;L;;;;;N;;;;;
+A3DB;YI SYLLABLE RYX;Lo;0;L;;;;;N;;;;;
+A3DC;YI SYLLABLE RY;Lo;0;L;;;;;N;;;;;
+A3DD;YI SYLLABLE RYP;Lo;0;L;;;;;N;;;;;
+A3DE;YI SYLLABLE RYRX;Lo;0;L;;;;;N;;;;;
+A3DF;YI SYLLABLE RYR;Lo;0;L;;;;;N;;;;;
+A3E0;YI SYLLABLE JIT;Lo;0;L;;;;;N;;;;;
+A3E1;YI SYLLABLE JIX;Lo;0;L;;;;;N;;;;;
+A3E2;YI SYLLABLE JI;Lo;0;L;;;;;N;;;;;
+A3E3;YI SYLLABLE JIP;Lo;0;L;;;;;N;;;;;
+A3E4;YI SYLLABLE JIET;Lo;0;L;;;;;N;;;;;
+A3E5;YI SYLLABLE JIEX;Lo;0;L;;;;;N;;;;;
+A3E6;YI SYLLABLE JIE;Lo;0;L;;;;;N;;;;;
+A3E7;YI SYLLABLE JIEP;Lo;0;L;;;;;N;;;;;
+A3E8;YI SYLLABLE JUOT;Lo;0;L;;;;;N;;;;;
+A3E9;YI SYLLABLE JUOX;Lo;0;L;;;;;N;;;;;
+A3EA;YI SYLLABLE JUO;Lo;0;L;;;;;N;;;;;
+A3EB;YI SYLLABLE JUOP;Lo;0;L;;;;;N;;;;;
+A3EC;YI SYLLABLE JOT;Lo;0;L;;;;;N;;;;;
+A3ED;YI SYLLABLE JOX;Lo;0;L;;;;;N;;;;;
+A3EE;YI SYLLABLE JO;Lo;0;L;;;;;N;;;;;
+A3EF;YI SYLLABLE JOP;Lo;0;L;;;;;N;;;;;
+A3F0;YI SYLLABLE JUT;Lo;0;L;;;;;N;;;;;
+A3F1;YI SYLLABLE JUX;Lo;0;L;;;;;N;;;;;
+A3F2;YI SYLLABLE JU;Lo;0;L;;;;;N;;;;;
+A3F3;YI SYLLABLE JUP;Lo;0;L;;;;;N;;;;;
+A3F4;YI SYLLABLE JURX;Lo;0;L;;;;;N;;;;;
+A3F5;YI SYLLABLE JUR;Lo;0;L;;;;;N;;;;;
+A3F6;YI SYLLABLE JYT;Lo;0;L;;;;;N;;;;;
+A3F7;YI SYLLABLE JYX;Lo;0;L;;;;;N;;;;;
+A3F8;YI SYLLABLE JY;Lo;0;L;;;;;N;;;;;
+A3F9;YI SYLLABLE JYP;Lo;0;L;;;;;N;;;;;
+A3FA;YI SYLLABLE JYRX;Lo;0;L;;;;;N;;;;;
+A3FB;YI SYLLABLE JYR;Lo;0;L;;;;;N;;;;;
+A3FC;YI SYLLABLE QIT;Lo;0;L;;;;;N;;;;;
+A3FD;YI SYLLABLE QIX;Lo;0;L;;;;;N;;;;;
+A3FE;YI SYLLABLE QI;Lo;0;L;;;;;N;;;;;
+A3FF;YI SYLLABLE QIP;Lo;0;L;;;;;N;;;;;
+A400;YI SYLLABLE QIET;Lo;0;L;;;;;N;;;;;
+A401;YI SYLLABLE QIEX;Lo;0;L;;;;;N;;;;;
+A402;YI SYLLABLE QIE;Lo;0;L;;;;;N;;;;;
+A403;YI SYLLABLE QIEP;Lo;0;L;;;;;N;;;;;
+A404;YI SYLLABLE QUOT;Lo;0;L;;;;;N;;;;;
+A405;YI SYLLABLE QUOX;Lo;0;L;;;;;N;;;;;
+A406;YI SYLLABLE QUO;Lo;0;L;;;;;N;;;;;
+A407;YI SYLLABLE QUOP;Lo;0;L;;;;;N;;;;;
+A408;YI SYLLABLE QOT;Lo;0;L;;;;;N;;;;;
+A409;YI SYLLABLE QOX;Lo;0;L;;;;;N;;;;;
+A40A;YI SYLLABLE QO;Lo;0;L;;;;;N;;;;;
+A40B;YI SYLLABLE QOP;Lo;0;L;;;;;N;;;;;
+A40C;YI SYLLABLE QUT;Lo;0;L;;;;;N;;;;;
+A40D;YI SYLLABLE QUX;Lo;0;L;;;;;N;;;;;
+A40E;YI SYLLABLE QU;Lo;0;L;;;;;N;;;;;
+A40F;YI SYLLABLE QUP;Lo;0;L;;;;;N;;;;;
+A410;YI SYLLABLE QURX;Lo;0;L;;;;;N;;;;;
+A411;YI SYLLABLE QUR;Lo;0;L;;;;;N;;;;;
+A412;YI SYLLABLE QYT;Lo;0;L;;;;;N;;;;;
+A413;YI SYLLABLE QYX;Lo;0;L;;;;;N;;;;;
+A414;YI SYLLABLE QY;Lo;0;L;;;;;N;;;;;
+A415;YI SYLLABLE QYP;Lo;0;L;;;;;N;;;;;
+A416;YI SYLLABLE QYRX;Lo;0;L;;;;;N;;;;;
+A417;YI SYLLABLE QYR;Lo;0;L;;;;;N;;;;;
+A418;YI SYLLABLE JJIT;Lo;0;L;;;;;N;;;;;
+A419;YI SYLLABLE JJIX;Lo;0;L;;;;;N;;;;;
+A41A;YI SYLLABLE JJI;Lo;0;L;;;;;N;;;;;
+A41B;YI SYLLABLE JJIP;Lo;0;L;;;;;N;;;;;
+A41C;YI SYLLABLE JJIET;Lo;0;L;;;;;N;;;;;
+A41D;YI SYLLABLE JJIEX;Lo;0;L;;;;;N;;;;;
+A41E;YI SYLLABLE JJIE;Lo;0;L;;;;;N;;;;;
+A41F;YI SYLLABLE JJIEP;Lo;0;L;;;;;N;;;;;
+A420;YI SYLLABLE JJUOX;Lo;0;L;;;;;N;;;;;
+A421;YI SYLLABLE JJUO;Lo;0;L;;;;;N;;;;;
+A422;YI SYLLABLE JJUOP;Lo;0;L;;;;;N;;;;;
+A423;YI SYLLABLE JJOT;Lo;0;L;;;;;N;;;;;
+A424;YI SYLLABLE JJOX;Lo;0;L;;;;;N;;;;;
+A425;YI SYLLABLE JJO;Lo;0;L;;;;;N;;;;;
+A426;YI SYLLABLE JJOP;Lo;0;L;;;;;N;;;;;
+A427;YI SYLLABLE JJUT;Lo;0;L;;;;;N;;;;;
+A428;YI SYLLABLE JJUX;Lo;0;L;;;;;N;;;;;
+A429;YI SYLLABLE JJU;Lo;0;L;;;;;N;;;;;
+A42A;YI SYLLABLE JJUP;Lo;0;L;;;;;N;;;;;
+A42B;YI SYLLABLE JJURX;Lo;0;L;;;;;N;;;;;
+A42C;YI SYLLABLE JJUR;Lo;0;L;;;;;N;;;;;
+A42D;YI SYLLABLE JJYT;Lo;0;L;;;;;N;;;;;
+A42E;YI SYLLABLE JJYX;Lo;0;L;;;;;N;;;;;
+A42F;YI SYLLABLE JJY;Lo;0;L;;;;;N;;;;;
+A430;YI SYLLABLE JJYP;Lo;0;L;;;;;N;;;;;
+A431;YI SYLLABLE NJIT;Lo;0;L;;;;;N;;;;;
+A432;YI SYLLABLE NJIX;Lo;0;L;;;;;N;;;;;
+A433;YI SYLLABLE NJI;Lo;0;L;;;;;N;;;;;
+A434;YI SYLLABLE NJIP;Lo;0;L;;;;;N;;;;;
+A435;YI SYLLABLE NJIET;Lo;0;L;;;;;N;;;;;
+A436;YI SYLLABLE NJIEX;Lo;0;L;;;;;N;;;;;
+A437;YI SYLLABLE NJIE;Lo;0;L;;;;;N;;;;;
+A438;YI SYLLABLE NJIEP;Lo;0;L;;;;;N;;;;;
+A439;YI SYLLABLE NJUOX;Lo;0;L;;;;;N;;;;;
+A43A;YI SYLLABLE NJUO;Lo;0;L;;;;;N;;;;;
+A43B;YI SYLLABLE NJOT;Lo;0;L;;;;;N;;;;;
+A43C;YI SYLLABLE NJOX;Lo;0;L;;;;;N;;;;;
+A43D;YI SYLLABLE NJO;Lo;0;L;;;;;N;;;;;
+A43E;YI SYLLABLE NJOP;Lo;0;L;;;;;N;;;;;
+A43F;YI SYLLABLE NJUX;Lo;0;L;;;;;N;;;;;
+A440;YI SYLLABLE NJU;Lo;0;L;;;;;N;;;;;
+A441;YI SYLLABLE NJUP;Lo;0;L;;;;;N;;;;;
+A442;YI SYLLABLE NJURX;Lo;0;L;;;;;N;;;;;
+A443;YI SYLLABLE NJUR;Lo;0;L;;;;;N;;;;;
+A444;YI SYLLABLE NJYT;Lo;0;L;;;;;N;;;;;
+A445;YI SYLLABLE NJYX;Lo;0;L;;;;;N;;;;;
+A446;YI SYLLABLE NJY;Lo;0;L;;;;;N;;;;;
+A447;YI SYLLABLE NJYP;Lo;0;L;;;;;N;;;;;
+A448;YI SYLLABLE NJYRX;Lo;0;L;;;;;N;;;;;
+A449;YI SYLLABLE NJYR;Lo;0;L;;;;;N;;;;;
+A44A;YI SYLLABLE NYIT;Lo;0;L;;;;;N;;;;;
+A44B;YI SYLLABLE NYIX;Lo;0;L;;;;;N;;;;;
+A44C;YI SYLLABLE NYI;Lo;0;L;;;;;N;;;;;
+A44D;YI SYLLABLE NYIP;Lo;0;L;;;;;N;;;;;
+A44E;YI SYLLABLE NYIET;Lo;0;L;;;;;N;;;;;
+A44F;YI SYLLABLE NYIEX;Lo;0;L;;;;;N;;;;;
+A450;YI SYLLABLE NYIE;Lo;0;L;;;;;N;;;;;
+A451;YI SYLLABLE NYIEP;Lo;0;L;;;;;N;;;;;
+A452;YI SYLLABLE NYUOX;Lo;0;L;;;;;N;;;;;
+A453;YI SYLLABLE NYUO;Lo;0;L;;;;;N;;;;;
+A454;YI SYLLABLE NYUOP;Lo;0;L;;;;;N;;;;;
+A455;YI SYLLABLE NYOT;Lo;0;L;;;;;N;;;;;
+A456;YI SYLLABLE NYOX;Lo;0;L;;;;;N;;;;;
+A457;YI SYLLABLE NYO;Lo;0;L;;;;;N;;;;;
+A458;YI SYLLABLE NYOP;Lo;0;L;;;;;N;;;;;
+A459;YI SYLLABLE NYUT;Lo;0;L;;;;;N;;;;;
+A45A;YI SYLLABLE NYUX;Lo;0;L;;;;;N;;;;;
+A45B;YI SYLLABLE NYU;Lo;0;L;;;;;N;;;;;
+A45C;YI SYLLABLE NYUP;Lo;0;L;;;;;N;;;;;
+A45D;YI SYLLABLE XIT;Lo;0;L;;;;;N;;;;;
+A45E;YI SYLLABLE XIX;Lo;0;L;;;;;N;;;;;
+A45F;YI SYLLABLE XI;Lo;0;L;;;;;N;;;;;
+A460;YI SYLLABLE XIP;Lo;0;L;;;;;N;;;;;
+A461;YI SYLLABLE XIET;Lo;0;L;;;;;N;;;;;
+A462;YI SYLLABLE XIEX;Lo;0;L;;;;;N;;;;;
+A463;YI SYLLABLE XIE;Lo;0;L;;;;;N;;;;;
+A464;YI SYLLABLE XIEP;Lo;0;L;;;;;N;;;;;
+A465;YI SYLLABLE XUOX;Lo;0;L;;;;;N;;;;;
+A466;YI SYLLABLE XUO;Lo;0;L;;;;;N;;;;;
+A467;YI SYLLABLE XOT;Lo;0;L;;;;;N;;;;;
+A468;YI SYLLABLE XOX;Lo;0;L;;;;;N;;;;;
+A469;YI SYLLABLE XO;Lo;0;L;;;;;N;;;;;
+A46A;YI SYLLABLE XOP;Lo;0;L;;;;;N;;;;;
+A46B;YI SYLLABLE XYT;Lo;0;L;;;;;N;;;;;
+A46C;YI SYLLABLE XYX;Lo;0;L;;;;;N;;;;;
+A46D;YI SYLLABLE XY;Lo;0;L;;;;;N;;;;;
+A46E;YI SYLLABLE XYP;Lo;0;L;;;;;N;;;;;
+A46F;YI SYLLABLE XYRX;Lo;0;L;;;;;N;;;;;
+A470;YI SYLLABLE XYR;Lo;0;L;;;;;N;;;;;
+A471;YI SYLLABLE YIT;Lo;0;L;;;;;N;;;;;
+A472;YI SYLLABLE YIX;Lo;0;L;;;;;N;;;;;
+A473;YI SYLLABLE YI;Lo;0;L;;;;;N;;;;;
+A474;YI SYLLABLE YIP;Lo;0;L;;;;;N;;;;;
+A475;YI SYLLABLE YIET;Lo;0;L;;;;;N;;;;;
+A476;YI SYLLABLE YIEX;Lo;0;L;;;;;N;;;;;
+A477;YI SYLLABLE YIE;Lo;0;L;;;;;N;;;;;
+A478;YI SYLLABLE YIEP;Lo;0;L;;;;;N;;;;;
+A479;YI SYLLABLE YUOT;Lo;0;L;;;;;N;;;;;
+A47A;YI SYLLABLE YUOX;Lo;0;L;;;;;N;;;;;
+A47B;YI SYLLABLE YUO;Lo;0;L;;;;;N;;;;;
+A47C;YI SYLLABLE YUOP;Lo;0;L;;;;;N;;;;;
+A47D;YI SYLLABLE YOT;Lo;0;L;;;;;N;;;;;
+A47E;YI SYLLABLE YOX;Lo;0;L;;;;;N;;;;;
+A47F;YI SYLLABLE YO;Lo;0;L;;;;;N;;;;;
+A480;YI SYLLABLE YOP;Lo;0;L;;;;;N;;;;;
+A481;YI SYLLABLE YUT;Lo;0;L;;;;;N;;;;;
+A482;YI SYLLABLE YUX;Lo;0;L;;;;;N;;;;;
+A483;YI SYLLABLE YU;Lo;0;L;;;;;N;;;;;
+A484;YI SYLLABLE YUP;Lo;0;L;;;;;N;;;;;
+A485;YI SYLLABLE YURX;Lo;0;L;;;;;N;;;;;
+A486;YI SYLLABLE YUR;Lo;0;L;;;;;N;;;;;
+A487;YI SYLLABLE YYT;Lo;0;L;;;;;N;;;;;
+A488;YI SYLLABLE YYX;Lo;0;L;;;;;N;;;;;
+A489;YI SYLLABLE YY;Lo;0;L;;;;;N;;;;;
+A48A;YI SYLLABLE YYP;Lo;0;L;;;;;N;;;;;
+A48B;YI SYLLABLE YYRX;Lo;0;L;;;;;N;;;;;
+A48C;YI SYLLABLE YYR;Lo;0;L;;;;;N;;;;;
+A490;YI RADICAL QOT;So;0;ON;;;;;N;;;;;
+A491;YI RADICAL LI;So;0;ON;;;;;N;;;;;
+A492;YI RADICAL KIT;So;0;ON;;;;;N;;;;;
+A493;YI RADICAL NYIP;So;0;ON;;;;;N;;;;;
+A494;YI RADICAL CYP;So;0;ON;;;;;N;;;;;
+A495;YI RADICAL SSI;So;0;ON;;;;;N;;;;;
+A496;YI RADICAL GGOP;So;0;ON;;;;;N;;;;;
+A497;YI RADICAL GEP;So;0;ON;;;;;N;;;;;
+A498;YI RADICAL MI;So;0;ON;;;;;N;;;;;
+A499;YI RADICAL HXIT;So;0;ON;;;;;N;;;;;
+A49A;YI RADICAL LYR;So;0;ON;;;;;N;;;;;
+A49B;YI RADICAL BBUT;So;0;ON;;;;;N;;;;;
+A49C;YI RADICAL MOP;So;0;ON;;;;;N;;;;;
+A49D;YI RADICAL YO;So;0;ON;;;;;N;;;;;
+A49E;YI RADICAL PUT;So;0;ON;;;;;N;;;;;
+A49F;YI RADICAL HXUO;So;0;ON;;;;;N;;;;;
+A4A0;YI RADICAL TAT;So;0;ON;;;;;N;;;;;
+A4A1;YI RADICAL GA;So;0;ON;;;;;N;;;;;
+A4A4;YI RADICAL DDUR;So;0;ON;;;;;N;;;;;
+A4A5;YI RADICAL BUR;So;0;ON;;;;;N;;;;;
+A4A6;YI RADICAL GGUO;So;0;ON;;;;;N;;;;;
+A4A7;YI RADICAL NYOP;So;0;ON;;;;;N;;;;;
+A4A8;YI RADICAL TU;So;0;ON;;;;;N;;;;;
+A4A9;YI RADICAL OP;So;0;ON;;;;;N;;;;;
+A4AA;YI RADICAL JJUT;So;0;ON;;;;;N;;;;;
+A4AB;YI RADICAL ZOT;So;0;ON;;;;;N;;;;;
+A4AC;YI RADICAL PYT;So;0;ON;;;;;N;;;;;
+A4AD;YI RADICAL HMO;So;0;ON;;;;;N;;;;;
+A4AE;YI RADICAL YIT;So;0;ON;;;;;N;;;;;
+A4AF;YI RADICAL VUR;So;0;ON;;;;;N;;;;;
+A4B0;YI RADICAL SHY;So;0;ON;;;;;N;;;;;
+A4B1;YI RADICAL VEP;So;0;ON;;;;;N;;;;;
+A4B2;YI RADICAL ZA;So;0;ON;;;;;N;;;;;
+A4B3;YI RADICAL JO;So;0;ON;;;;;N;;;;;
+A4B5;YI RADICAL JJY;So;0;ON;;;;;N;;;;;
+A4B6;YI RADICAL GOT;So;0;ON;;;;;N;;;;;
+A4B7;YI RADICAL JJIE;So;0;ON;;;;;N;;;;;
+A4B8;YI RADICAL WO;So;0;ON;;;;;N;;;;;
+A4B9;YI RADICAL DU;So;0;ON;;;;;N;;;;;
+A4BA;YI RADICAL SHUR;So;0;ON;;;;;N;;;;;
+A4BB;YI RADICAL LIE;So;0;ON;;;;;N;;;;;
+A4BC;YI RADICAL CY;So;0;ON;;;;;N;;;;;
+A4BD;YI RADICAL CUOP;So;0;ON;;;;;N;;;;;
+A4BE;YI RADICAL CIP;So;0;ON;;;;;N;;;;;
+A4BF;YI RADICAL HXOP;So;0;ON;;;;;N;;;;;
+A4C0;YI RADICAL SHAT;So;0;ON;;;;;N;;;;;
+A4C2;YI RADICAL SHOP;So;0;ON;;;;;N;;;;;
+A4C3;YI RADICAL CHE;So;0;ON;;;;;N;;;;;
+A4C4;YI RADICAL ZZIET;So;0;ON;;;;;N;;;;;
+A4C6;YI RADICAL KE;So;0;ON;;;;;N;;;;;
+AC00;<Hangul Syllable, First>;Lo;0;L;;;;;N;;;;;
+D7A3;<Hangul Syllable, Last>;Lo;0;L;;;;;N;;;;;
+D800;<Non Private Use High Surrogate, First>;Cs;0;L;;;;;N;;;;;
+DB7F;<Non Private Use High Surrogate, Last>;Cs;0;L;;;;;N;;;;;
+DB80;<Private Use High Surrogate, First>;Cs;0;L;;;;;N;;;;;
+DBFF;<Private Use High Surrogate, Last>;Cs;0;L;;;;;N;;;;;
+DC00;<Low Surrogate, First>;Cs;0;L;;;;;N;;;;;
+DFFF;<Low Surrogate, Last>;Cs;0;L;;;;;N;;;;;
+E000;<Private Use, First>;Co;0;L;;;;;N;;;;;
+F8FF;<Private Use, Last>;Co;0;L;;;;;N;;;;;
+F900;CJK COMPATIBILITY IDEOGRAPH-F900;Lo;0;L;8C48;;;;N;;;;;
+F901;CJK COMPATIBILITY IDEOGRAPH-F901;Lo;0;L;66F4;;;;N;;;;;
+F902;CJK COMPATIBILITY IDEOGRAPH-F902;Lo;0;L;8ECA;;;;N;;;;;
+F903;CJK COMPATIBILITY IDEOGRAPH-F903;Lo;0;L;8CC8;;;;N;;;;;
+F904;CJK COMPATIBILITY IDEOGRAPH-F904;Lo;0;L;6ED1;;;;N;;;;;
+F905;CJK COMPATIBILITY IDEOGRAPH-F905;Lo;0;L;4E32;;;;N;;;;;
+F906;CJK COMPATIBILITY IDEOGRAPH-F906;Lo;0;L;53E5;;;;N;;;;;
+F907;CJK COMPATIBILITY IDEOGRAPH-F907;Lo;0;L;9F9C;;;;N;;;;;
+F908;CJK COMPATIBILITY IDEOGRAPH-F908;Lo;0;L;9F9C;;;;N;;;;;
+F909;CJK COMPATIBILITY IDEOGRAPH-F909;Lo;0;L;5951;;;;N;;;;;
+F90A;CJK COMPATIBILITY IDEOGRAPH-F90A;Lo;0;L;91D1;;;;N;;;;;
+F90B;CJK COMPATIBILITY IDEOGRAPH-F90B;Lo;0;L;5587;;;;N;;;;;
+F90C;CJK COMPATIBILITY IDEOGRAPH-F90C;Lo;0;L;5948;;;;N;;;;;
+F90D;CJK COMPATIBILITY IDEOGRAPH-F90D;Lo;0;L;61F6;;;;N;;;;;
+F90E;CJK COMPATIBILITY IDEOGRAPH-F90E;Lo;0;L;7669;;;;N;;;;;
+F90F;CJK COMPATIBILITY IDEOGRAPH-F90F;Lo;0;L;7F85;;;;N;;;;;
+F910;CJK COMPATIBILITY IDEOGRAPH-F910;Lo;0;L;863F;;;;N;;;;;
+F911;CJK COMPATIBILITY IDEOGRAPH-F911;Lo;0;L;87BA;;;;N;;;;;
+F912;CJK COMPATIBILITY IDEOGRAPH-F912;Lo;0;L;88F8;;;;N;;;;;
+F913;CJK COMPATIBILITY IDEOGRAPH-F913;Lo;0;L;908F;;;;N;;;;;
+F914;CJK COMPATIBILITY IDEOGRAPH-F914;Lo;0;L;6A02;;;;N;;;;;
+F915;CJK COMPATIBILITY IDEOGRAPH-F915;Lo;0;L;6D1B;;;;N;;;;;
+F916;CJK COMPATIBILITY IDEOGRAPH-F916;Lo;0;L;70D9;;;;N;;;;;
+F917;CJK COMPATIBILITY IDEOGRAPH-F917;Lo;0;L;73DE;;;;N;;;;;
+F918;CJK COMPATIBILITY IDEOGRAPH-F918;Lo;0;L;843D;;;;N;;;;;
+F919;CJK COMPATIBILITY IDEOGRAPH-F919;Lo;0;L;916A;;;;N;;;;;
+F91A;CJK COMPATIBILITY IDEOGRAPH-F91A;Lo;0;L;99F1;;;;N;;;;;
+F91B;CJK COMPATIBILITY IDEOGRAPH-F91B;Lo;0;L;4E82;;;;N;;;;;
+F91C;CJK COMPATIBILITY IDEOGRAPH-F91C;Lo;0;L;5375;;;;N;;;;;
+F91D;CJK COMPATIBILITY IDEOGRAPH-F91D;Lo;0;L;6B04;;;;N;;;;;
+F91E;CJK COMPATIBILITY IDEOGRAPH-F91E;Lo;0;L;721B;;;;N;;;;;
+F91F;CJK COMPATIBILITY IDEOGRAPH-F91F;Lo;0;L;862D;;;;N;;;;;
+F920;CJK COMPATIBILITY IDEOGRAPH-F920;Lo;0;L;9E1E;;;;N;;;;;
+F921;CJK COMPATIBILITY IDEOGRAPH-F921;Lo;0;L;5D50;;;;N;;;;;
+F922;CJK COMPATIBILITY IDEOGRAPH-F922;Lo;0;L;6FEB;;;;N;;;;;
+F923;CJK COMPATIBILITY IDEOGRAPH-F923;Lo;0;L;85CD;;;;N;;;;;
+F924;CJK COMPATIBILITY IDEOGRAPH-F924;Lo;0;L;8964;;;;N;;;;;
+F925;CJK COMPATIBILITY IDEOGRAPH-F925;Lo;0;L;62C9;;;;N;;;;;
+F926;CJK COMPATIBILITY IDEOGRAPH-F926;Lo;0;L;81D8;;;;N;;;;;
+F927;CJK COMPATIBILITY IDEOGRAPH-F927;Lo;0;L;881F;;;;N;;;;;
+F928;CJK COMPATIBILITY IDEOGRAPH-F928;Lo;0;L;5ECA;;;;N;;;;;
+F929;CJK COMPATIBILITY IDEOGRAPH-F929;Lo;0;L;6717;;;;N;;;;;
+F92A;CJK COMPATIBILITY IDEOGRAPH-F92A;Lo;0;L;6D6A;;;;N;;;;;
+F92B;CJK COMPATIBILITY IDEOGRAPH-F92B;Lo;0;L;72FC;;;;N;;;;;
+F92C;CJK COMPATIBILITY IDEOGRAPH-F92C;Lo;0;L;90CE;;;;N;;;;;
+F92D;CJK COMPATIBILITY IDEOGRAPH-F92D;Lo;0;L;4F86;;;;N;;;;;
+F92E;CJK COMPATIBILITY IDEOGRAPH-F92E;Lo;0;L;51B7;;;;N;;;;;
+F92F;CJK COMPATIBILITY IDEOGRAPH-F92F;Lo;0;L;52DE;;;;N;;;;;
+F930;CJK COMPATIBILITY IDEOGRAPH-F930;Lo;0;L;64C4;;;;N;;;;;
+F931;CJK COMPATIBILITY IDEOGRAPH-F931;Lo;0;L;6AD3;;;;N;;;;;
+F932;CJK COMPATIBILITY IDEOGRAPH-F932;Lo;0;L;7210;;;;N;;;;;
+F933;CJK COMPATIBILITY IDEOGRAPH-F933;Lo;0;L;76E7;;;;N;;;;;
+F934;CJK COMPATIBILITY IDEOGRAPH-F934;Lo;0;L;8001;;;;N;;;;;
+F935;CJK COMPATIBILITY IDEOGRAPH-F935;Lo;0;L;8606;;;;N;;;;;
+F936;CJK COMPATIBILITY IDEOGRAPH-F936;Lo;0;L;865C;;;;N;;;;;
+F937;CJK COMPATIBILITY IDEOGRAPH-F937;Lo;0;L;8DEF;;;;N;;;;;
+F938;CJK COMPATIBILITY IDEOGRAPH-F938;Lo;0;L;9732;;;;N;;;;;
+F939;CJK COMPATIBILITY IDEOGRAPH-F939;Lo;0;L;9B6F;;;;N;;;;;
+F93A;CJK COMPATIBILITY IDEOGRAPH-F93A;Lo;0;L;9DFA;;;;N;;;;;
+F93B;CJK COMPATIBILITY IDEOGRAPH-F93B;Lo;0;L;788C;;;;N;;;;;
+F93C;CJK COMPATIBILITY IDEOGRAPH-F93C;Lo;0;L;797F;;;;N;;;;;
+F93D;CJK COMPATIBILITY IDEOGRAPH-F93D;Lo;0;L;7DA0;;;;N;;;;;
+F93E;CJK COMPATIBILITY IDEOGRAPH-F93E;Lo;0;L;83C9;;;;N;;;;;
+F93F;CJK COMPATIBILITY IDEOGRAPH-F93F;Lo;0;L;9304;;;;N;;;;;
+F940;CJK COMPATIBILITY IDEOGRAPH-F940;Lo;0;L;9E7F;;;;N;;;;;
+F941;CJK COMPATIBILITY IDEOGRAPH-F941;Lo;0;L;8AD6;;;;N;;;;;
+F942;CJK COMPATIBILITY IDEOGRAPH-F942;Lo;0;L;58DF;;;;N;;;;;
+F943;CJK COMPATIBILITY IDEOGRAPH-F943;Lo;0;L;5F04;;;;N;;;;;
+F944;CJK COMPATIBILITY IDEOGRAPH-F944;Lo;0;L;7C60;;;;N;;;;;
+F945;CJK COMPATIBILITY IDEOGRAPH-F945;Lo;0;L;807E;;;;N;;;;;
+F946;CJK COMPATIBILITY IDEOGRAPH-F946;Lo;0;L;7262;;;;N;;;;;
+F947;CJK COMPATIBILITY IDEOGRAPH-F947;Lo;0;L;78CA;;;;N;;;;;
+F948;CJK COMPATIBILITY IDEOGRAPH-F948;Lo;0;L;8CC2;;;;N;;;;;
+F949;CJK COMPATIBILITY IDEOGRAPH-F949;Lo;0;L;96F7;;;;N;;;;;
+F94A;CJK COMPATIBILITY IDEOGRAPH-F94A;Lo;0;L;58D8;;;;N;;;;;
+F94B;CJK COMPATIBILITY IDEOGRAPH-F94B;Lo;0;L;5C62;;;;N;;;;;
+F94C;CJK COMPATIBILITY IDEOGRAPH-F94C;Lo;0;L;6A13;;;;N;;;;;
+F94D;CJK COMPATIBILITY IDEOGRAPH-F94D;Lo;0;L;6DDA;;;;N;;;;;
+F94E;CJK COMPATIBILITY IDEOGRAPH-F94E;Lo;0;L;6F0F;;;;N;;;;;
+F94F;CJK COMPATIBILITY IDEOGRAPH-F94F;Lo;0;L;7D2F;;;;N;;;;;
+F950;CJK COMPATIBILITY IDEOGRAPH-F950;Lo;0;L;7E37;;;;N;;;;;
+F951;CJK COMPATIBILITY IDEOGRAPH-F951;Lo;0;L;96FB;;;;N;;;;;
+F952;CJK COMPATIBILITY IDEOGRAPH-F952;Lo;0;L;52D2;;;;N;;;;;
+F953;CJK COMPATIBILITY IDEOGRAPH-F953;Lo;0;L;808B;;;;N;;;;;
+F954;CJK COMPATIBILITY IDEOGRAPH-F954;Lo;0;L;51DC;;;;N;;;;;
+F955;CJK COMPATIBILITY IDEOGRAPH-F955;Lo;0;L;51CC;;;;N;;;;;
+F956;CJK COMPATIBILITY IDEOGRAPH-F956;Lo;0;L;7A1C;;;;N;;;;;
+F957;CJK COMPATIBILITY IDEOGRAPH-F957;Lo;0;L;7DBE;;;;N;;;;;
+F958;CJK COMPATIBILITY IDEOGRAPH-F958;Lo;0;L;83F1;;;;N;;;;;
+F959;CJK COMPATIBILITY IDEOGRAPH-F959;Lo;0;L;9675;;;;N;;;;;
+F95A;CJK COMPATIBILITY IDEOGRAPH-F95A;Lo;0;L;8B80;;;;N;;;;;
+F95B;CJK COMPATIBILITY IDEOGRAPH-F95B;Lo;0;L;62CF;;;;N;;;;;
+F95C;CJK COMPATIBILITY IDEOGRAPH-F95C;Lo;0;L;6A02;;;;N;;;;;
+F95D;CJK COMPATIBILITY IDEOGRAPH-F95D;Lo;0;L;8AFE;;;;N;;;;;
+F95E;CJK COMPATIBILITY IDEOGRAPH-F95E;Lo;0;L;4E39;;;;N;;;;;
+F95F;CJK COMPATIBILITY IDEOGRAPH-F95F;Lo;0;L;5BE7;;;;N;;;;;
+F960;CJK COMPATIBILITY IDEOGRAPH-F960;Lo;0;L;6012;;;;N;;;;;
+F961;CJK COMPATIBILITY IDEOGRAPH-F961;Lo;0;L;7387;;;;N;;;;;
+F962;CJK COMPATIBILITY IDEOGRAPH-F962;Lo;0;L;7570;;;;N;;;;;
+F963;CJK COMPATIBILITY IDEOGRAPH-F963;Lo;0;L;5317;;;;N;;;;;
+F964;CJK COMPATIBILITY IDEOGRAPH-F964;Lo;0;L;78FB;;;;N;;;;;
+F965;CJK COMPATIBILITY IDEOGRAPH-F965;Lo;0;L;4FBF;;;;N;;;;;
+F966;CJK COMPATIBILITY IDEOGRAPH-F966;Lo;0;L;5FA9;;;;N;;;;;
+F967;CJK COMPATIBILITY IDEOGRAPH-F967;Lo;0;L;4E0D;;;;N;;;;;
+F968;CJK COMPATIBILITY IDEOGRAPH-F968;Lo;0;L;6CCC;;;;N;;;;;
+F969;CJK COMPATIBILITY IDEOGRAPH-F969;Lo;0;L;6578;;;;N;;;;;
+F96A;CJK COMPATIBILITY IDEOGRAPH-F96A;Lo;0;L;7D22;;;;N;;;;;
+F96B;CJK COMPATIBILITY IDEOGRAPH-F96B;Lo;0;L;53C3;;;;N;;;;;
+F96C;CJK COMPATIBILITY IDEOGRAPH-F96C;Lo;0;L;585E;;;;N;;;;;
+F96D;CJK COMPATIBILITY IDEOGRAPH-F96D;Lo;0;L;7701;;;;N;;;;;
+F96E;CJK COMPATIBILITY IDEOGRAPH-F96E;Lo;0;L;8449;;;;N;;;;;
+F96F;CJK COMPATIBILITY IDEOGRAPH-F96F;Lo;0;L;8AAA;;;;N;;;;;
+F970;CJK COMPATIBILITY IDEOGRAPH-F970;Lo;0;L;6BBA;;;;N;;;;;
+F971;CJK COMPATIBILITY IDEOGRAPH-F971;Lo;0;L;8FB0;;;;N;;;;;
+F972;CJK COMPATIBILITY IDEOGRAPH-F972;Lo;0;L;6C88;;;;N;;;;;
+F973;CJK COMPATIBILITY IDEOGRAPH-F973;Lo;0;L;62FE;;;;N;;;;;
+F974;CJK COMPATIBILITY IDEOGRAPH-F974;Lo;0;L;82E5;;;;N;;;;;
+F975;CJK COMPATIBILITY IDEOGRAPH-F975;Lo;0;L;63A0;;;;N;;;;;
+F976;CJK COMPATIBILITY IDEOGRAPH-F976;Lo;0;L;7565;;;;N;;;;;
+F977;CJK COMPATIBILITY IDEOGRAPH-F977;Lo;0;L;4EAE;;;;N;;;;;
+F978;CJK COMPATIBILITY IDEOGRAPH-F978;Lo;0;L;5169;;;;N;;;;;
+F979;CJK COMPATIBILITY IDEOGRAPH-F979;Lo;0;L;51C9;;;;N;;;;;
+F97A;CJK COMPATIBILITY IDEOGRAPH-F97A;Lo;0;L;6881;;;;N;;;;;
+F97B;CJK COMPATIBILITY IDEOGRAPH-F97B;Lo;0;L;7CE7;;;;N;;;;;
+F97C;CJK COMPATIBILITY IDEOGRAPH-F97C;Lo;0;L;826F;;;;N;;;;;
+F97D;CJK COMPATIBILITY IDEOGRAPH-F97D;Lo;0;L;8AD2;;;;N;;;;;
+F97E;CJK COMPATIBILITY IDEOGRAPH-F97E;Lo;0;L;91CF;;;;N;;;;;
+F97F;CJK COMPATIBILITY IDEOGRAPH-F97F;Lo;0;L;52F5;;;;N;;;;;
+F980;CJK COMPATIBILITY IDEOGRAPH-F980;Lo;0;L;5442;;;;N;;;;;
+F981;CJK COMPATIBILITY IDEOGRAPH-F981;Lo;0;L;5973;;;;N;;;;;
+F982;CJK COMPATIBILITY IDEOGRAPH-F982;Lo;0;L;5EEC;;;;N;;;;;
+F983;CJK COMPATIBILITY IDEOGRAPH-F983;Lo;0;L;65C5;;;;N;;;;;
+F984;CJK COMPATIBILITY IDEOGRAPH-F984;Lo;0;L;6FFE;;;;N;;;;;
+F985;CJK COMPATIBILITY IDEOGRAPH-F985;Lo;0;L;792A;;;;N;;;;;
+F986;CJK COMPATIBILITY IDEOGRAPH-F986;Lo;0;L;95AD;;;;N;;;;;
+F987;CJK COMPATIBILITY IDEOGRAPH-F987;Lo;0;L;9A6A;;;;N;;;;;
+F988;CJK COMPATIBILITY IDEOGRAPH-F988;Lo;0;L;9E97;;;;N;;;;;
+F989;CJK COMPATIBILITY IDEOGRAPH-F989;Lo;0;L;9ECE;;;;N;;;;;
+F98A;CJK COMPATIBILITY IDEOGRAPH-F98A;Lo;0;L;529B;;;;N;;;;;
+F98B;CJK COMPATIBILITY IDEOGRAPH-F98B;Lo;0;L;66C6;;;;N;;;;;
+F98C;CJK COMPATIBILITY IDEOGRAPH-F98C;Lo;0;L;6B77;;;;N;;;;;
+F98D;CJK COMPATIBILITY IDEOGRAPH-F98D;Lo;0;L;8F62;;;;N;;;;;
+F98E;CJK COMPATIBILITY IDEOGRAPH-F98E;Lo;0;L;5E74;;;;N;;;;;
+F98F;CJK COMPATIBILITY IDEOGRAPH-F98F;Lo;0;L;6190;;;;N;;;;;
+F990;CJK COMPATIBILITY IDEOGRAPH-F990;Lo;0;L;6200;;;;N;;;;;
+F991;CJK COMPATIBILITY IDEOGRAPH-F991;Lo;0;L;649A;;;;N;;;;;
+F992;CJK COMPATIBILITY IDEOGRAPH-F992;Lo;0;L;6F23;;;;N;;;;;
+F993;CJK COMPATIBILITY IDEOGRAPH-F993;Lo;0;L;7149;;;;N;;;;;
+F994;CJK COMPATIBILITY IDEOGRAPH-F994;Lo;0;L;7489;;;;N;;;;;
+F995;CJK COMPATIBILITY IDEOGRAPH-F995;Lo;0;L;79CA;;;;N;;;;;
+F996;CJK COMPATIBILITY IDEOGRAPH-F996;Lo;0;L;7DF4;;;;N;;;;;
+F997;CJK COMPATIBILITY IDEOGRAPH-F997;Lo;0;L;806F;;;;N;;;;;
+F998;CJK COMPATIBILITY IDEOGRAPH-F998;Lo;0;L;8F26;;;;N;;;;;
+F999;CJK COMPATIBILITY IDEOGRAPH-F999;Lo;0;L;84EE;;;;N;;;;;
+F99A;CJK COMPATIBILITY IDEOGRAPH-F99A;Lo;0;L;9023;;;;N;;;;;
+F99B;CJK COMPATIBILITY IDEOGRAPH-F99B;Lo;0;L;934A;;;;N;;;;;
+F99C;CJK COMPATIBILITY IDEOGRAPH-F99C;Lo;0;L;5217;;;;N;;;;;
+F99D;CJK COMPATIBILITY IDEOGRAPH-F99D;Lo;0;L;52A3;;;;N;;;;;
+F99E;CJK COMPATIBILITY IDEOGRAPH-F99E;Lo;0;L;54BD;;;;N;;;;;
+F99F;CJK COMPATIBILITY IDEOGRAPH-F99F;Lo;0;L;70C8;;;;N;;;;;
+F9A0;CJK COMPATIBILITY IDEOGRAPH-F9A0;Lo;0;L;88C2;;;;N;;;;;
+F9A1;CJK COMPATIBILITY IDEOGRAPH-F9A1;Lo;0;L;8AAA;;;;N;;;;;
+F9A2;CJK COMPATIBILITY IDEOGRAPH-F9A2;Lo;0;L;5EC9;;;;N;;;;;
+F9A3;CJK COMPATIBILITY IDEOGRAPH-F9A3;Lo;0;L;5FF5;;;;N;;;;;
+F9A4;CJK COMPATIBILITY IDEOGRAPH-F9A4;Lo;0;L;637B;;;;N;;;;;
+F9A5;CJK COMPATIBILITY IDEOGRAPH-F9A5;Lo;0;L;6BAE;;;;N;;;;;
+F9A6;CJK COMPATIBILITY IDEOGRAPH-F9A6;Lo;0;L;7C3E;;;;N;;;;;
+F9A7;CJK COMPATIBILITY IDEOGRAPH-F9A7;Lo;0;L;7375;;;;N;;;;;
+F9A8;CJK COMPATIBILITY IDEOGRAPH-F9A8;Lo;0;L;4EE4;;;;N;;;;;
+F9A9;CJK COMPATIBILITY IDEOGRAPH-F9A9;Lo;0;L;56F9;;;;N;;;;;
+F9AA;CJK COMPATIBILITY IDEOGRAPH-F9AA;Lo;0;L;5BE7;;;;N;;;;;
+F9AB;CJK COMPATIBILITY IDEOGRAPH-F9AB;Lo;0;L;5DBA;;;;N;;;;;
+F9AC;CJK COMPATIBILITY IDEOGRAPH-F9AC;Lo;0;L;601C;;;;N;;;;;
+F9AD;CJK COMPATIBILITY IDEOGRAPH-F9AD;Lo;0;L;73B2;;;;N;;;;;
+F9AE;CJK COMPATIBILITY IDEOGRAPH-F9AE;Lo;0;L;7469;;;;N;;;;;
+F9AF;CJK COMPATIBILITY IDEOGRAPH-F9AF;Lo;0;L;7F9A;;;;N;;;;;
+F9B0;CJK COMPATIBILITY IDEOGRAPH-F9B0;Lo;0;L;8046;;;;N;;;;;
+F9B1;CJK COMPATIBILITY IDEOGRAPH-F9B1;Lo;0;L;9234;;;;N;;;;;
+F9B2;CJK COMPATIBILITY IDEOGRAPH-F9B2;Lo;0;L;96F6;;;;N;;;;;
+F9B3;CJK COMPATIBILITY IDEOGRAPH-F9B3;Lo;0;L;9748;;;;N;;;;;
+F9B4;CJK COMPATIBILITY IDEOGRAPH-F9B4;Lo;0;L;9818;;;;N;;;;;
+F9B5;CJK COMPATIBILITY IDEOGRAPH-F9B5;Lo;0;L;4F8B;;;;N;;;;;
+F9B6;CJK COMPATIBILITY IDEOGRAPH-F9B6;Lo;0;L;79AE;;;;N;;;;;
+F9B7;CJK COMPATIBILITY IDEOGRAPH-F9B7;Lo;0;L;91B4;;;;N;;;;;
+F9B8;CJK COMPATIBILITY IDEOGRAPH-F9B8;Lo;0;L;96B8;;;;N;;;;;
+F9B9;CJK COMPATIBILITY IDEOGRAPH-F9B9;Lo;0;L;60E1;;;;N;;;;;
+F9BA;CJK COMPATIBILITY IDEOGRAPH-F9BA;Lo;0;L;4E86;;;;N;;;;;
+F9BB;CJK COMPATIBILITY IDEOGRAPH-F9BB;Lo;0;L;50DA;;;;N;;;;;
+F9BC;CJK COMPATIBILITY IDEOGRAPH-F9BC;Lo;0;L;5BEE;;;;N;;;;;
+F9BD;CJK COMPATIBILITY IDEOGRAPH-F9BD;Lo;0;L;5C3F;;;;N;;;;;
+F9BE;CJK COMPATIBILITY IDEOGRAPH-F9BE;Lo;0;L;6599;;;;N;;;;;
+F9BF;CJK COMPATIBILITY IDEOGRAPH-F9BF;Lo;0;L;6A02;;;;N;;;;;
+F9C0;CJK COMPATIBILITY IDEOGRAPH-F9C0;Lo;0;L;71CE;;;;N;;;;;
+F9C1;CJK COMPATIBILITY IDEOGRAPH-F9C1;Lo;0;L;7642;;;;N;;;;;
+F9C2;CJK COMPATIBILITY IDEOGRAPH-F9C2;Lo;0;L;84FC;;;;N;;;;;
+F9C3;CJK COMPATIBILITY IDEOGRAPH-F9C3;Lo;0;L;907C;;;;N;;;;;
+F9C4;CJK COMPATIBILITY IDEOGRAPH-F9C4;Lo;0;L;9F8D;;;;N;;;;;
+F9C5;CJK COMPATIBILITY IDEOGRAPH-F9C5;Lo;0;L;6688;;;;N;;;;;
+F9C6;CJK COMPATIBILITY IDEOGRAPH-F9C6;Lo;0;L;962E;;;;N;;;;;
+F9C7;CJK COMPATIBILITY IDEOGRAPH-F9C7;Lo;0;L;5289;;;;N;;;;;
+F9C8;CJK COMPATIBILITY IDEOGRAPH-F9C8;Lo;0;L;677B;;;;N;;;;;
+F9C9;CJK COMPATIBILITY IDEOGRAPH-F9C9;Lo;0;L;67F3;;;;N;;;;;
+F9CA;CJK COMPATIBILITY IDEOGRAPH-F9CA;Lo;0;L;6D41;;;;N;;;;;
+F9CB;CJK COMPATIBILITY IDEOGRAPH-F9CB;Lo;0;L;6E9C;;;;N;;;;;
+F9CC;CJK COMPATIBILITY IDEOGRAPH-F9CC;Lo;0;L;7409;;;;N;;;;;
+F9CD;CJK COMPATIBILITY IDEOGRAPH-F9CD;Lo;0;L;7559;;;;N;;;;;
+F9CE;CJK COMPATIBILITY IDEOGRAPH-F9CE;Lo;0;L;786B;;;;N;;;;;
+F9CF;CJK COMPATIBILITY IDEOGRAPH-F9CF;Lo;0;L;7D10;;;;N;;;;;
+F9D0;CJK COMPATIBILITY IDEOGRAPH-F9D0;Lo;0;L;985E;;;;N;;;;;
+F9D1;CJK COMPATIBILITY IDEOGRAPH-F9D1;Lo;0;L;516D;;;;N;;;;;
+F9D2;CJK COMPATIBILITY IDEOGRAPH-F9D2;Lo;0;L;622E;;;;N;;;;;
+F9D3;CJK COMPATIBILITY IDEOGRAPH-F9D3;Lo;0;L;9678;;;;N;;;;;
+F9D4;CJK COMPATIBILITY IDEOGRAPH-F9D4;Lo;0;L;502B;;;;N;;;;;
+F9D5;CJK COMPATIBILITY IDEOGRAPH-F9D5;Lo;0;L;5D19;;;;N;;;;;
+F9D6;CJK COMPATIBILITY IDEOGRAPH-F9D6;Lo;0;L;6DEA;;;;N;;;;;
+F9D7;CJK COMPATIBILITY IDEOGRAPH-F9D7;Lo;0;L;8F2A;;;;N;;;;;
+F9D8;CJK COMPATIBILITY IDEOGRAPH-F9D8;Lo;0;L;5F8B;;;;N;;;;;
+F9D9;CJK COMPATIBILITY IDEOGRAPH-F9D9;Lo;0;L;6144;;;;N;;;;;
+F9DA;CJK COMPATIBILITY IDEOGRAPH-F9DA;Lo;0;L;6817;;;;N;;;;;
+F9DB;CJK COMPATIBILITY IDEOGRAPH-F9DB;Lo;0;L;7387;;;;N;;;;;
+F9DC;CJK COMPATIBILITY IDEOGRAPH-F9DC;Lo;0;L;9686;;;;N;;;;;
+F9DD;CJK COMPATIBILITY IDEOGRAPH-F9DD;Lo;0;L;5229;;;;N;;;;;
+F9DE;CJK COMPATIBILITY IDEOGRAPH-F9DE;Lo;0;L;540F;;;;N;;;;;
+F9DF;CJK COMPATIBILITY IDEOGRAPH-F9DF;Lo;0;L;5C65;;;;N;;;;;
+F9E0;CJK COMPATIBILITY IDEOGRAPH-F9E0;Lo;0;L;6613;;;;N;;;;;
+F9E1;CJK COMPATIBILITY IDEOGRAPH-F9E1;Lo;0;L;674E;;;;N;;;;;
+F9E2;CJK COMPATIBILITY IDEOGRAPH-F9E2;Lo;0;L;68A8;;;;N;;;;;
+F9E3;CJK COMPATIBILITY IDEOGRAPH-F9E3;Lo;0;L;6CE5;;;;N;;;;;
+F9E4;CJK COMPATIBILITY IDEOGRAPH-F9E4;Lo;0;L;7406;;;;N;;;;;
+F9E5;CJK COMPATIBILITY IDEOGRAPH-F9E5;Lo;0;L;75E2;;;;N;;;;;
+F9E6;CJK COMPATIBILITY IDEOGRAPH-F9E6;Lo;0;L;7F79;;;;N;;;;;
+F9E7;CJK COMPATIBILITY IDEOGRAPH-F9E7;Lo;0;L;88CF;;;;N;;;;;
+F9E8;CJK COMPATIBILITY IDEOGRAPH-F9E8;Lo;0;L;88E1;;;;N;;;;;
+F9E9;CJK COMPATIBILITY IDEOGRAPH-F9E9;Lo;0;L;91CC;;;;N;;;;;
+F9EA;CJK COMPATIBILITY IDEOGRAPH-F9EA;Lo;0;L;96E2;;;;N;;;;;
+F9EB;CJK COMPATIBILITY IDEOGRAPH-F9EB;Lo;0;L;533F;;;;N;;;;;
+F9EC;CJK COMPATIBILITY IDEOGRAPH-F9EC;Lo;0;L;6EBA;;;;N;;;;;
+F9ED;CJK COMPATIBILITY IDEOGRAPH-F9ED;Lo;0;L;541D;;;;N;;;;;
+F9EE;CJK COMPATIBILITY IDEOGRAPH-F9EE;Lo;0;L;71D0;;;;N;;;;;
+F9EF;CJK COMPATIBILITY IDEOGRAPH-F9EF;Lo;0;L;7498;;;;N;;;;;
+F9F0;CJK COMPATIBILITY IDEOGRAPH-F9F0;Lo;0;L;85FA;;;;N;;;;;
+F9F1;CJK COMPATIBILITY IDEOGRAPH-F9F1;Lo;0;L;96A3;;;;N;;;;;
+F9F2;CJK COMPATIBILITY IDEOGRAPH-F9F2;Lo;0;L;9C57;;;;N;;;;;
+F9F3;CJK COMPATIBILITY IDEOGRAPH-F9F3;Lo;0;L;9E9F;;;;N;;;;;
+F9F4;CJK COMPATIBILITY IDEOGRAPH-F9F4;Lo;0;L;6797;;;;N;;;;;
+F9F5;CJK COMPATIBILITY IDEOGRAPH-F9F5;Lo;0;L;6DCB;;;;N;;;;;
+F9F6;CJK COMPATIBILITY IDEOGRAPH-F9F6;Lo;0;L;81E8;;;;N;;;;;
+F9F7;CJK COMPATIBILITY IDEOGRAPH-F9F7;Lo;0;L;7ACB;;;;N;;;;;
+F9F8;CJK COMPATIBILITY IDEOGRAPH-F9F8;Lo;0;L;7B20;;;;N;;;;;
+F9F9;CJK COMPATIBILITY IDEOGRAPH-F9F9;Lo;0;L;7C92;;;;N;;;;;
+F9FA;CJK COMPATIBILITY IDEOGRAPH-F9FA;Lo;0;L;72C0;;;;N;;;;;
+F9FB;CJK COMPATIBILITY IDEOGRAPH-F9FB;Lo;0;L;7099;;;;N;;;;;
+F9FC;CJK COMPATIBILITY IDEOGRAPH-F9FC;Lo;0;L;8B58;;;;N;;;;;
+F9FD;CJK COMPATIBILITY IDEOGRAPH-F9FD;Lo;0;L;4EC0;;;;N;;;;;
+F9FE;CJK COMPATIBILITY IDEOGRAPH-F9FE;Lo;0;L;8336;;;;N;;;;;
+F9FF;CJK COMPATIBILITY IDEOGRAPH-F9FF;Lo;0;L;523A;;;;N;;;;;
+FA00;CJK COMPATIBILITY IDEOGRAPH-FA00;Lo;0;L;5207;;;;N;;;;;
+FA01;CJK COMPATIBILITY IDEOGRAPH-FA01;Lo;0;L;5EA6;;;;N;;;;;
+FA02;CJK COMPATIBILITY IDEOGRAPH-FA02;Lo;0;L;62D3;;;;N;;;;;
+FA03;CJK COMPATIBILITY IDEOGRAPH-FA03;Lo;0;L;7CD6;;;;N;;;;;
+FA04;CJK COMPATIBILITY IDEOGRAPH-FA04;Lo;0;L;5B85;;;;N;;;;;
+FA05;CJK COMPATIBILITY IDEOGRAPH-FA05;Lo;0;L;6D1E;;;;N;;;;;
+FA06;CJK COMPATIBILITY IDEOGRAPH-FA06;Lo;0;L;66B4;;;;N;;;;;
+FA07;CJK COMPATIBILITY IDEOGRAPH-FA07;Lo;0;L;8F3B;;;;N;;;;;
+FA08;CJK COMPATIBILITY IDEOGRAPH-FA08;Lo;0;L;884C;;;;N;;;;;
+FA09;CJK COMPATIBILITY IDEOGRAPH-FA09;Lo;0;L;964D;;;;N;;;;;
+FA0A;CJK COMPATIBILITY IDEOGRAPH-FA0A;Lo;0;L;898B;;;;N;;;;;
+FA0B;CJK COMPATIBILITY IDEOGRAPH-FA0B;Lo;0;L;5ED3;;;;N;;;;;
+FA0C;CJK COMPATIBILITY IDEOGRAPH-FA0C;Lo;0;L;5140;;;;N;;;;;
+FA0D;CJK COMPATIBILITY IDEOGRAPH-FA0D;Lo;0;L;55C0;;;;N;;;;;
+FA0E;CJK COMPATIBILITY IDEOGRAPH-FA0E;Lo;0;L;;;;;N;;;;;
+FA0F;CJK COMPATIBILITY IDEOGRAPH-FA0F;Lo;0;L;;;;;N;;;;;
+FA10;CJK COMPATIBILITY IDEOGRAPH-FA10;Lo;0;L;585A;;;;N;;;;;
+FA11;CJK COMPATIBILITY IDEOGRAPH-FA11;Lo;0;L;;;;;N;;;;;
+FA12;CJK COMPATIBILITY IDEOGRAPH-FA12;Lo;0;L;6674;;;;N;;;;;
+FA13;CJK COMPATIBILITY IDEOGRAPH-FA13;Lo;0;L;;;;;N;;;;;
+FA14;CJK COMPATIBILITY IDEOGRAPH-FA14;Lo;0;L;;;;;N;;;;;
+FA15;CJK COMPATIBILITY IDEOGRAPH-FA15;Lo;0;L;51DE;;;;N;;;;;
+FA16;CJK COMPATIBILITY IDEOGRAPH-FA16;Lo;0;L;732A;;;;N;;;;;
+FA17;CJK COMPATIBILITY IDEOGRAPH-FA17;Lo;0;L;76CA;;;;N;;;;;
+FA18;CJK COMPATIBILITY IDEOGRAPH-FA18;Lo;0;L;793C;;;;N;;;;;
+FA19;CJK COMPATIBILITY IDEOGRAPH-FA19;Lo;0;L;795E;;;;N;;;;;
+FA1A;CJK COMPATIBILITY IDEOGRAPH-FA1A;Lo;0;L;7965;;;;N;;;;;
+FA1B;CJK COMPATIBILITY IDEOGRAPH-FA1B;Lo;0;L;798F;;;;N;;;;;
+FA1C;CJK COMPATIBILITY IDEOGRAPH-FA1C;Lo;0;L;9756;;;;N;;;;;
+FA1D;CJK COMPATIBILITY IDEOGRAPH-FA1D;Lo;0;L;7CBE;;;;N;;;;;
+FA1E;CJK COMPATIBILITY IDEOGRAPH-FA1E;Lo;0;L;7FBD;;;;N;;;;;
+FA1F;CJK COMPATIBILITY IDEOGRAPH-FA1F;Lo;0;L;;;;;N;;*;;;
+FA20;CJK COMPATIBILITY IDEOGRAPH-FA20;Lo;0;L;8612;;;;N;;;;;
+FA21;CJK COMPATIBILITY IDEOGRAPH-FA21;Lo;0;L;;;;;N;;;;;
+FA22;CJK COMPATIBILITY IDEOGRAPH-FA22;Lo;0;L;8AF8;;;;N;;;;;
+FA23;CJK COMPATIBILITY IDEOGRAPH-FA23;Lo;0;L;;;;;N;;*;;;
+FA24;CJK COMPATIBILITY IDEOGRAPH-FA24;Lo;0;L;;;;;N;;;;;
+FA25;CJK COMPATIBILITY IDEOGRAPH-FA25;Lo;0;L;9038;;;;N;;;;;
+FA26;CJK COMPATIBILITY IDEOGRAPH-FA26;Lo;0;L;90FD;;;;N;;;;;
+FA27;CJK COMPATIBILITY IDEOGRAPH-FA27;Lo;0;L;;;;;N;;;;;
+FA28;CJK COMPATIBILITY IDEOGRAPH-FA28;Lo;0;L;;;;;N;;;;;
+FA29;CJK COMPATIBILITY IDEOGRAPH-FA29;Lo;0;L;;;;;N;;;;;
+FA2A;CJK COMPATIBILITY IDEOGRAPH-FA2A;Lo;0;L;98EF;;;;N;;;;;
+FA2B;CJK COMPATIBILITY IDEOGRAPH-FA2B;Lo;0;L;98FC;;;;N;;;;;
+FA2C;CJK COMPATIBILITY IDEOGRAPH-FA2C;Lo;0;L;9928;;;;N;;;;;
+FA2D;CJK COMPATIBILITY IDEOGRAPH-FA2D;Lo;0;L;9DB4;;;;N;;;;;
+FB00;LATIN SMALL LIGATURE FF;Ll;0;L;<compat> 0066 0066;;;;N;;;;;
+FB01;LATIN SMALL LIGATURE FI;Ll;0;L;<compat> 0066 0069;;;;N;;;;;
+FB02;LATIN SMALL LIGATURE FL;Ll;0;L;<compat> 0066 006C;;;;N;;;;;
+FB03;LATIN SMALL LIGATURE FFI;Ll;0;L;<compat> 0066 0066 0069;;;;N;;;;;
+FB04;LATIN SMALL LIGATURE FFL;Ll;0;L;<compat> 0066 0066 006C;;;;N;;;;;
+FB05;LATIN SMALL LIGATURE LONG S T;Ll;0;L;<compat> 017F 0074;;;;N;;;;;
+FB06;LATIN SMALL LIGATURE ST;Ll;0;L;<compat> 0073 0074;;;;N;;;;;
+FB13;ARMENIAN SMALL LIGATURE MEN NOW;Ll;0;L;<compat> 0574 0576;;;;N;;;;;
+FB14;ARMENIAN SMALL LIGATURE MEN ECH;Ll;0;L;<compat> 0574 0565;;;;N;;;;;
+FB15;ARMENIAN SMALL LIGATURE MEN INI;Ll;0;L;<compat> 0574 056B;;;;N;;;;;
+FB16;ARMENIAN SMALL LIGATURE VEW NOW;Ll;0;L;<compat> 057E 0576;;;;N;;;;;
+FB17;ARMENIAN SMALL LIGATURE MEN XEH;Ll;0;L;<compat> 0574 056D;;;;N;;;;;
+FB1D;HEBREW LETTER YOD WITH HIRIQ;Lo;0;R;05D9 05B4;;;;N;;;;;
+FB1E;HEBREW POINT JUDEO-SPANISH VARIKA;Mn;26;NSM;;;;;N;HEBREW POINT VARIKA;;;;
+FB1F;HEBREW LIGATURE YIDDISH YOD YOD PATAH;Lo;0;R;05F2 05B7;;;;N;;;;;
+FB20;HEBREW LETTER ALTERNATIVE AYIN;Lo;0;R;<font> 05E2;;;;N;;;;;
+FB21;HEBREW LETTER WIDE ALEF;Lo;0;R;<font> 05D0;;;;N;;;;;
+FB22;HEBREW LETTER WIDE DALET;Lo;0;R;<font> 05D3;;;;N;;;;;
+FB23;HEBREW LETTER WIDE HE;Lo;0;R;<font> 05D4;;;;N;;;;;
+FB24;HEBREW LETTER WIDE KAF;Lo;0;R;<font> 05DB;;;;N;;;;;
+FB25;HEBREW LETTER WIDE LAMED;Lo;0;R;<font> 05DC;;;;N;;;;;
+FB26;HEBREW LETTER WIDE FINAL MEM;Lo;0;R;<font> 05DD;;;;N;;;;;
+FB27;HEBREW LETTER WIDE RESH;Lo;0;R;<font> 05E8;;;;N;;;;;
+FB28;HEBREW LETTER WIDE TAV;Lo;0;R;<font> 05EA;;;;N;;;;;
+FB29;HEBREW LETTER ALTERNATIVE PLUS SIGN;Sm;0;ET;<font> 002B;;;;N;;;;;
+FB2A;HEBREW LETTER SHIN WITH SHIN DOT;Lo;0;R;05E9 05C1;;;;N;;;;;
+FB2B;HEBREW LETTER SHIN WITH SIN DOT;Lo;0;R;05E9 05C2;;;;N;;;;;
+FB2C;HEBREW LETTER SHIN WITH DAGESH AND SHIN DOT;Lo;0;R;FB49 05C1;;;;N;;;;;
+FB2D;HEBREW LETTER SHIN WITH DAGESH AND SIN DOT;Lo;0;R;FB49 05C2;;;;N;;;;;
+FB2E;HEBREW LETTER ALEF WITH PATAH;Lo;0;R;05D0 05B7;;;;N;;;;;
+FB2F;HEBREW LETTER ALEF WITH QAMATS;Lo;0;R;05D0 05B8;;;;N;;;;;
+FB30;HEBREW LETTER ALEF WITH MAPIQ;Lo;0;R;05D0 05BC;;;;N;;;;;
+FB31;HEBREW LETTER BET WITH DAGESH;Lo;0;R;05D1 05BC;;;;N;;;;;
+FB32;HEBREW LETTER GIMEL WITH DAGESH;Lo;0;R;05D2 05BC;;;;N;;;;;
+FB33;HEBREW LETTER DALET WITH DAGESH;Lo;0;R;05D3 05BC;;;;N;;;;;
+FB34;HEBREW LETTER HE WITH MAPIQ;Lo;0;R;05D4 05BC;;;;N;;;;;
+FB35;HEBREW LETTER VAV WITH DAGESH;Lo;0;R;05D5 05BC;;;;N;;;;;
+FB36;HEBREW LETTER ZAYIN WITH DAGESH;Lo;0;R;05D6 05BC;;;;N;;;;;
+FB38;HEBREW LETTER TET WITH DAGESH;Lo;0;R;05D8 05BC;;;;N;;;;;
+FB39;HEBREW LETTER YOD WITH DAGESH;Lo;0;R;05D9 05BC;;;;N;;;;;
+FB3A;HEBREW LETTER FINAL KAF WITH DAGESH;Lo;0;R;05DA 05BC;;;;N;;;;;
+FB3B;HEBREW LETTER KAF WITH DAGESH;Lo;0;R;05DB 05BC;;;;N;;;;;
+FB3C;HEBREW LETTER LAMED WITH DAGESH;Lo;0;R;05DC 05BC;;;;N;;;;;
+FB3E;HEBREW LETTER MEM WITH DAGESH;Lo;0;R;05DE 05BC;;;;N;;;;;
+FB40;HEBREW LETTER NUN WITH DAGESH;Lo;0;R;05E0 05BC;;;;N;;;;;
+FB41;HEBREW LETTER SAMEKH WITH DAGESH;Lo;0;R;05E1 05BC;;;;N;;;;;
+FB43;HEBREW LETTER FINAL PE WITH DAGESH;Lo;0;R;05E3 05BC;;;;N;;;;;
+FB44;HEBREW LETTER PE WITH DAGESH;Lo;0;R;05E4 05BC;;;;N;;;;;
+FB46;HEBREW LETTER TSADI WITH DAGESH;Lo;0;R;05E6 05BC;;;;N;;;;;
+FB47;HEBREW LETTER QOF WITH DAGESH;Lo;0;R;05E7 05BC;;;;N;;;;;
+FB48;HEBREW LETTER RESH WITH DAGESH;Lo;0;R;05E8 05BC;;;;N;;;;;
+FB49;HEBREW LETTER SHIN WITH DAGESH;Lo;0;R;05E9 05BC;;;;N;;;;;
+FB4A;HEBREW LETTER TAV WITH DAGESH;Lo;0;R;05EA 05BC;;;;N;;;;;
+FB4B;HEBREW LETTER VAV WITH HOLAM;Lo;0;R;05D5 05B9;;;;N;;;;;
+FB4C;HEBREW LETTER BET WITH RAFE;Lo;0;R;05D1 05BF;;;;N;;;;;
+FB4D;HEBREW LETTER KAF WITH RAFE;Lo;0;R;05DB 05BF;;;;N;;;;;
+FB4E;HEBREW LETTER PE WITH RAFE;Lo;0;R;05E4 05BF;;;;N;;;;;
+FB4F;HEBREW LIGATURE ALEF LAMED;Lo;0;R;<compat> 05D0 05DC;;;;N;;;;;
+FB50;ARABIC LETTER ALEF WASLA ISOLATED FORM;Lo;0;AL;<isolated> 0671;;;;N;;;;;
+FB51;ARABIC LETTER ALEF WASLA FINAL FORM;Lo;0;AL;<final> 0671;;;;N;;;;;
+FB52;ARABIC LETTER BEEH ISOLATED FORM;Lo;0;AL;<isolated> 067B;;;;N;;;;;
+FB53;ARABIC LETTER BEEH FINAL FORM;Lo;0;AL;<final> 067B;;;;N;;;;;
+FB54;ARABIC LETTER BEEH INITIAL FORM;Lo;0;AL;<initial> 067B;;;;N;;;;;
+FB55;ARABIC LETTER BEEH MEDIAL FORM;Lo;0;AL;<medial> 067B;;;;N;;;;;
+FB56;ARABIC LETTER PEH ISOLATED FORM;Lo;0;AL;<isolated> 067E;;;;N;;;;;
+FB57;ARABIC LETTER PEH FINAL FORM;Lo;0;AL;<final> 067E;;;;N;;;;;
+FB58;ARABIC LETTER PEH INITIAL FORM;Lo;0;AL;<initial> 067E;;;;N;;;;;
+FB59;ARABIC LETTER PEH MEDIAL FORM;Lo;0;AL;<medial> 067E;;;;N;;;;;
+FB5A;ARABIC LETTER BEHEH ISOLATED FORM;Lo;0;AL;<isolated> 0680;;;;N;;;;;
+FB5B;ARABIC LETTER BEHEH FINAL FORM;Lo;0;AL;<final> 0680;;;;N;;;;;
+FB5C;ARABIC LETTER BEHEH INITIAL FORM;Lo;0;AL;<initial> 0680;;;;N;;;;;
+FB5D;ARABIC LETTER BEHEH MEDIAL FORM;Lo;0;AL;<medial> 0680;;;;N;;;;;
+FB5E;ARABIC LETTER TTEHEH ISOLATED FORM;Lo;0;AL;<isolated> 067A;;;;N;;;;;
+FB5F;ARABIC LETTER TTEHEH FINAL FORM;Lo;0;AL;<final> 067A;;;;N;;;;;
+FB60;ARABIC LETTER TTEHEH INITIAL FORM;Lo;0;AL;<initial> 067A;;;;N;;;;;
+FB61;ARABIC LETTER TTEHEH MEDIAL FORM;Lo;0;AL;<medial> 067A;;;;N;;;;;
+FB62;ARABIC LETTER TEHEH ISOLATED FORM;Lo;0;AL;<isolated> 067F;;;;N;;;;;
+FB63;ARABIC LETTER TEHEH FINAL FORM;Lo;0;AL;<final> 067F;;;;N;;;;;
+FB64;ARABIC LETTER TEHEH INITIAL FORM;Lo;0;AL;<initial> 067F;;;;N;;;;;
+FB65;ARABIC LETTER TEHEH MEDIAL FORM;Lo;0;AL;<medial> 067F;;;;N;;;;;
+FB66;ARABIC LETTER TTEH ISOLATED FORM;Lo;0;AL;<isolated> 0679;;;;N;;;;;
+FB67;ARABIC LETTER TTEH FINAL FORM;Lo;0;AL;<final> 0679;;;;N;;;;;
+FB68;ARABIC LETTER TTEH INITIAL FORM;Lo;0;AL;<initial> 0679;;;;N;;;;;
+FB69;ARABIC LETTER TTEH MEDIAL FORM;Lo;0;AL;<medial> 0679;;;;N;;;;;
+FB6A;ARABIC LETTER VEH ISOLATED FORM;Lo;0;AL;<isolated> 06A4;;;;N;;;;;
+FB6B;ARABIC LETTER VEH FINAL FORM;Lo;0;AL;<final> 06A4;;;;N;;;;;
+FB6C;ARABIC LETTER VEH INITIAL FORM;Lo;0;AL;<initial> 06A4;;;;N;;;;;
+FB6D;ARABIC LETTER VEH MEDIAL FORM;Lo;0;AL;<medial> 06A4;;;;N;;;;;
+FB6E;ARABIC LETTER PEHEH ISOLATED FORM;Lo;0;AL;<isolated> 06A6;;;;N;;;;;
+FB6F;ARABIC LETTER PEHEH FINAL FORM;Lo;0;AL;<final> 06A6;;;;N;;;;;
+FB70;ARABIC LETTER PEHEH INITIAL FORM;Lo;0;AL;<initial> 06A6;;;;N;;;;;
+FB71;ARABIC LETTER PEHEH MEDIAL FORM;Lo;0;AL;<medial> 06A6;;;;N;;;;;
+FB72;ARABIC LETTER DYEH ISOLATED FORM;Lo;0;AL;<isolated> 0684;;;;N;;;;;
+FB73;ARABIC LETTER DYEH FINAL FORM;Lo;0;AL;<final> 0684;;;;N;;;;;
+FB74;ARABIC LETTER DYEH INITIAL FORM;Lo;0;AL;<initial> 0684;;;;N;;;;;
+FB75;ARABIC LETTER DYEH MEDIAL FORM;Lo;0;AL;<medial> 0684;;;;N;;;;;
+FB76;ARABIC LETTER NYEH ISOLATED FORM;Lo;0;AL;<isolated> 0683;;;;N;;;;;
+FB77;ARABIC LETTER NYEH FINAL FORM;Lo;0;AL;<final> 0683;;;;N;;;;;
+FB78;ARABIC LETTER NYEH INITIAL FORM;Lo;0;AL;<initial> 0683;;;;N;;;;;
+FB79;ARABIC LETTER NYEH MEDIAL FORM;Lo;0;AL;<medial> 0683;;;;N;;;;;
+FB7A;ARABIC LETTER TCHEH ISOLATED FORM;Lo;0;AL;<isolated> 0686;;;;N;;;;;
+FB7B;ARABIC LETTER TCHEH FINAL FORM;Lo;0;AL;<final> 0686;;;;N;;;;;
+FB7C;ARABIC LETTER TCHEH INITIAL FORM;Lo;0;AL;<initial> 0686;;;;N;;;;;
+FB7D;ARABIC LETTER TCHEH MEDIAL FORM;Lo;0;AL;<medial> 0686;;;;N;;;;;
+FB7E;ARABIC LETTER TCHEHEH ISOLATED FORM;Lo;0;AL;<isolated> 0687;;;;N;;;;;
+FB7F;ARABIC LETTER TCHEHEH FINAL FORM;Lo;0;AL;<final> 0687;;;;N;;;;;
+FB80;ARABIC LETTER TCHEHEH INITIAL FORM;Lo;0;AL;<initial> 0687;;;;N;;;;;
+FB81;ARABIC LETTER TCHEHEH MEDIAL FORM;Lo;0;AL;<medial> 0687;;;;N;;;;;
+FB82;ARABIC LETTER DDAHAL ISOLATED FORM;Lo;0;AL;<isolated> 068D;;;;N;;;;;
+FB83;ARABIC LETTER DDAHAL FINAL FORM;Lo;0;AL;<final> 068D;;;;N;;;;;
+FB84;ARABIC LETTER DAHAL ISOLATED FORM;Lo;0;AL;<isolated> 068C;;;;N;;;;;
+FB85;ARABIC LETTER DAHAL FINAL FORM;Lo;0;AL;<final> 068C;;;;N;;;;;
+FB86;ARABIC LETTER DUL ISOLATED FORM;Lo;0;AL;<isolated> 068E;;;;N;;;;;
+FB87;ARABIC LETTER DUL FINAL FORM;Lo;0;AL;<final> 068E;;;;N;;;;;
+FB88;ARABIC LETTER DDAL ISOLATED FORM;Lo;0;AL;<isolated> 0688;;;;N;;;;;
+FB89;ARABIC LETTER DDAL FINAL FORM;Lo;0;AL;<final> 0688;;;;N;;;;;
+FB8A;ARABIC LETTER JEH ISOLATED FORM;Lo;0;AL;<isolated> 0698;;;;N;;;;;
+FB8B;ARABIC LETTER JEH FINAL FORM;Lo;0;AL;<final> 0698;;;;N;;;;;
+FB8C;ARABIC LETTER RREH ISOLATED FORM;Lo;0;AL;<isolated> 0691;;;;N;;;;;
+FB8D;ARABIC LETTER RREH FINAL FORM;Lo;0;AL;<final> 0691;;;;N;;;;;
+FB8E;ARABIC LETTER KEHEH ISOLATED FORM;Lo;0;AL;<isolated> 06A9;;;;N;;;;;
+FB8F;ARABIC LETTER KEHEH FINAL FORM;Lo;0;AL;<final> 06A9;;;;N;;;;;
+FB90;ARABIC LETTER KEHEH INITIAL FORM;Lo;0;AL;<initial> 06A9;;;;N;;;;;
+FB91;ARABIC LETTER KEHEH MEDIAL FORM;Lo;0;AL;<medial> 06A9;;;;N;;;;;
+FB92;ARABIC LETTER GAF ISOLATED FORM;Lo;0;AL;<isolated> 06AF;;;;N;;;;;
+FB93;ARABIC LETTER GAF FINAL FORM;Lo;0;AL;<final> 06AF;;;;N;;;;;
+FB94;ARABIC LETTER GAF INITIAL FORM;Lo;0;AL;<initial> 06AF;;;;N;;;;;
+FB95;ARABIC LETTER GAF MEDIAL FORM;Lo;0;AL;<medial> 06AF;;;;N;;;;;
+FB96;ARABIC LETTER GUEH ISOLATED FORM;Lo;0;AL;<isolated> 06B3;;;;N;;;;;
+FB97;ARABIC LETTER GUEH FINAL FORM;Lo;0;AL;<final> 06B3;;;;N;;;;;
+FB98;ARABIC LETTER GUEH INITIAL FORM;Lo;0;AL;<initial> 06B3;;;;N;;;;;
+FB99;ARABIC LETTER GUEH MEDIAL FORM;Lo;0;AL;<medial> 06B3;;;;N;;;;;
+FB9A;ARABIC LETTER NGOEH ISOLATED FORM;Lo;0;AL;<isolated> 06B1;;;;N;;;;;
+FB9B;ARABIC LETTER NGOEH FINAL FORM;Lo;0;AL;<final> 06B1;;;;N;;;;;
+FB9C;ARABIC LETTER NGOEH INITIAL FORM;Lo;0;AL;<initial> 06B1;;;;N;;;;;
+FB9D;ARABIC LETTER NGOEH MEDIAL FORM;Lo;0;AL;<medial> 06B1;;;;N;;;;;
+FB9E;ARABIC LETTER NOON GHUNNA ISOLATED FORM;Lo;0;AL;<isolated> 06BA;;;;N;;;;;
+FB9F;ARABIC LETTER NOON GHUNNA FINAL FORM;Lo;0;AL;<final> 06BA;;;;N;;;;;
+FBA0;ARABIC LETTER RNOON ISOLATED FORM;Lo;0;AL;<isolated> 06BB;;;;N;;;;;
+FBA1;ARABIC LETTER RNOON FINAL FORM;Lo;0;AL;<final> 06BB;;;;N;;;;;
+FBA2;ARABIC LETTER RNOON INITIAL FORM;Lo;0;AL;<initial> 06BB;;;;N;;;;;
+FBA3;ARABIC LETTER RNOON MEDIAL FORM;Lo;0;AL;<medial> 06BB;;;;N;;;;;
+FBA4;ARABIC LETTER HEH WITH YEH ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 06C0;;;;N;;;;;
+FBA5;ARABIC LETTER HEH WITH YEH ABOVE FINAL FORM;Lo;0;AL;<final> 06C0;;;;N;;;;;
+FBA6;ARABIC LETTER HEH GOAL ISOLATED FORM;Lo;0;AL;<isolated> 06C1;;;;N;;;;;
+FBA7;ARABIC LETTER HEH GOAL FINAL FORM;Lo;0;AL;<final> 06C1;;;;N;;;;;
+FBA8;ARABIC LETTER HEH GOAL INITIAL FORM;Lo;0;AL;<initial> 06C1;;;;N;;;;;
+FBA9;ARABIC LETTER HEH GOAL MEDIAL FORM;Lo;0;AL;<medial> 06C1;;;;N;;;;;
+FBAA;ARABIC LETTER HEH DOACHASHMEE ISOLATED FORM;Lo;0;AL;<isolated> 06BE;;;;N;;;;;
+FBAB;ARABIC LETTER HEH DOACHASHMEE FINAL FORM;Lo;0;AL;<final> 06BE;;;;N;;;;;
+FBAC;ARABIC LETTER HEH DOACHASHMEE INITIAL FORM;Lo;0;AL;<initial> 06BE;;;;N;;;;;
+FBAD;ARABIC LETTER HEH DOACHASHMEE MEDIAL FORM;Lo;0;AL;<medial> 06BE;;;;N;;;;;
+FBAE;ARABIC LETTER YEH BARREE ISOLATED FORM;Lo;0;AL;<isolated> 06D2;;;;N;;;;;
+FBAF;ARABIC LETTER YEH BARREE FINAL FORM;Lo;0;AL;<final> 06D2;;;;N;;;;;
+FBB0;ARABIC LETTER YEH BARREE WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 06D3;;;;N;;;;;
+FBB1;ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM;Lo;0;AL;<final> 06D3;;;;N;;;;;
+FBD3;ARABIC LETTER NG ISOLATED FORM;Lo;0;AL;<isolated> 06AD;;;;N;;;;;
+FBD4;ARABIC LETTER NG FINAL FORM;Lo;0;AL;<final> 06AD;;;;N;;;;;
+FBD5;ARABIC LETTER NG INITIAL FORM;Lo;0;AL;<initial> 06AD;;;;N;;;;;
+FBD6;ARABIC LETTER NG MEDIAL FORM;Lo;0;AL;<medial> 06AD;;;;N;;;;;
+FBD7;ARABIC LETTER U ISOLATED FORM;Lo;0;AL;<isolated> 06C7;;;;N;;;;;
+FBD8;ARABIC LETTER U FINAL FORM;Lo;0;AL;<final> 06C7;;;;N;;;;;
+FBD9;ARABIC LETTER OE ISOLATED FORM;Lo;0;AL;<isolated> 06C6;;;;N;;;;;
+FBDA;ARABIC LETTER OE FINAL FORM;Lo;0;AL;<final> 06C6;;;;N;;;;;
+FBDB;ARABIC LETTER YU ISOLATED FORM;Lo;0;AL;<isolated> 06C8;;;;N;;;;;
+FBDC;ARABIC LETTER YU FINAL FORM;Lo;0;AL;<final> 06C8;;;;N;;;;;
+FBDD;ARABIC LETTER U WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 0677;;;;N;;;;;
+FBDE;ARABIC LETTER VE ISOLATED FORM;Lo;0;AL;<isolated> 06CB;;;;N;;;;;
+FBDF;ARABIC LETTER VE FINAL FORM;Lo;0;AL;<final> 06CB;;;;N;;;;;
+FBE0;ARABIC LETTER KIRGHIZ OE ISOLATED FORM;Lo;0;AL;<isolated> 06C5;;;;N;;;;;
+FBE1;ARABIC LETTER KIRGHIZ OE FINAL FORM;Lo;0;AL;<final> 06C5;;;;N;;;;;
+FBE2;ARABIC LETTER KIRGHIZ YU ISOLATED FORM;Lo;0;AL;<isolated> 06C9;;;;N;;;;;
+FBE3;ARABIC LETTER KIRGHIZ YU FINAL FORM;Lo;0;AL;<final> 06C9;;;;N;;;;;
+FBE4;ARABIC LETTER E ISOLATED FORM;Lo;0;AL;<isolated> 06D0;;;;N;;;;;
+FBE5;ARABIC LETTER E FINAL FORM;Lo;0;AL;<final> 06D0;;;;N;;;;;
+FBE6;ARABIC LETTER E INITIAL FORM;Lo;0;AL;<initial> 06D0;;;;N;;;;;
+FBE7;ARABIC LETTER E MEDIAL FORM;Lo;0;AL;<medial> 06D0;;;;N;;;;;
+FBE8;ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA INITIAL FORM;Lo;0;AL;<initial> 0649;;;;N;;;;;
+FBE9;ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA MEDIAL FORM;Lo;0;AL;<medial> 0649;;;;N;;;;;
+FBEA;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0626 0627;;;;N;;;;;
+FBEB;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF FINAL FORM;Lo;0;AL;<final> 0626 0627;;;;N;;;;;
+FBEC;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE ISOLATED FORM;Lo;0;AL;<isolated> 0626 06D5;;;;N;;;;;
+FBED;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE FINAL FORM;Lo;0;AL;<final> 0626 06D5;;;;N;;;;;
+FBEE;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW ISOLATED FORM;Lo;0;AL;<isolated> 0626 0648;;;;N;;;;;
+FBEF;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW FINAL FORM;Lo;0;AL;<final> 0626 0648;;;;N;;;;;
+FBF0;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U ISOLATED FORM;Lo;0;AL;<isolated> 0626 06C7;;;;N;;;;;
+FBF1;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U FINAL FORM;Lo;0;AL;<final> 0626 06C7;;;;N;;;;;
+FBF2;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE ISOLATED FORM;Lo;0;AL;<isolated> 0626 06C6;;;;N;;;;;
+FBF3;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE FINAL FORM;Lo;0;AL;<final> 0626 06C6;;;;N;;;;;
+FBF4;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU ISOLATED FORM;Lo;0;AL;<isolated> 0626 06C8;;;;N;;;;;
+FBF5;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU FINAL FORM;Lo;0;AL;<final> 0626 06C8;;;;N;;;;;
+FBF6;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E ISOLATED FORM;Lo;0;AL;<isolated> 0626 06D0;;;;N;;;;;
+FBF7;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E FINAL FORM;Lo;0;AL;<final> 0626 06D0;;;;N;;;;;
+FBF8;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E INITIAL FORM;Lo;0;AL;<initial> 0626 06D0;;;;N;;;;;
+FBF9;ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0626 0649;;;;N;;;;;
+FBFA;ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0626 0649;;;;N;;;;;
+FBFB;ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA INITIAL FORM;Lo;0;AL;<initial> 0626 0649;;;;N;;;;;
+FBFC;ARABIC LETTER FARSI YEH ISOLATED FORM;Lo;0;AL;<isolated> 06CC;;;;N;;;;;
+FBFD;ARABIC LETTER FARSI YEH FINAL FORM;Lo;0;AL;<final> 06CC;;;;N;;;;;
+FBFE;ARABIC LETTER FARSI YEH INITIAL FORM;Lo;0;AL;<initial> 06CC;;;;N;;;;;
+FBFF;ARABIC LETTER FARSI YEH MEDIAL FORM;Lo;0;AL;<medial> 06CC;;;;N;;;;;
+FC00;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0626 062C;;;;N;;;;;
+FC01;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0626 062D;;;;N;;;;;
+FC02;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0626 0645;;;;N;;;;;
+FC03;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0626 0649;;;;N;;;;;
+FC04;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0626 064A;;;;N;;;;;
+FC05;ARABIC LIGATURE BEH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0628 062C;;;;N;;;;;
+FC06;ARABIC LIGATURE BEH WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0628 062D;;;;N;;;;;
+FC07;ARABIC LIGATURE BEH WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0628 062E;;;;N;;;;;
+FC08;ARABIC LIGATURE BEH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0628 0645;;;;N;;;;;
+FC09;ARABIC LIGATURE BEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0628 0649;;;;N;;;;;
+FC0A;ARABIC LIGATURE BEH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0628 064A;;;;N;;;;;
+FC0B;ARABIC LIGATURE TEH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 062A 062C;;;;N;;;;;
+FC0C;ARABIC LIGATURE TEH WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 062A 062D;;;;N;;;;;
+FC0D;ARABIC LIGATURE TEH WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 062A 062E;;;;N;;;;;
+FC0E;ARABIC LIGATURE TEH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 062A 0645;;;;N;;;;;
+FC0F;ARABIC LIGATURE TEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 062A 0649;;;;N;;;;;
+FC10;ARABIC LIGATURE TEH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 062A 064A;;;;N;;;;;
+FC11;ARABIC LIGATURE THEH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 062B 062C;;;;N;;;;;
+FC12;ARABIC LIGATURE THEH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 062B 0645;;;;N;;;;;
+FC13;ARABIC LIGATURE THEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 062B 0649;;;;N;;;;;
+FC14;ARABIC LIGATURE THEH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 062B 064A;;;;N;;;;;
+FC15;ARABIC LIGATURE JEEM WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 062C 062D;;;;N;;;;;
+FC16;ARABIC LIGATURE JEEM WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 062C 0645;;;;N;;;;;
+FC17;ARABIC LIGATURE HAH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 062D 062C;;;;N;;;;;
+FC18;ARABIC LIGATURE HAH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 062D 0645;;;;N;;;;;
+FC19;ARABIC LIGATURE KHAH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 062E 062C;;;;N;;;;;
+FC1A;ARABIC LIGATURE KHAH WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 062E 062D;;;;N;;;;;
+FC1B;ARABIC LIGATURE KHAH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 062E 0645;;;;N;;;;;
+FC1C;ARABIC LIGATURE SEEN WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0633 062C;;;;N;;;;;
+FC1D;ARABIC LIGATURE SEEN WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0633 062D;;;;N;;;;;
+FC1E;ARABIC LIGATURE SEEN WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0633 062E;;;;N;;;;;
+FC1F;ARABIC LIGATURE SEEN WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0633 0645;;;;N;;;;;
+FC20;ARABIC LIGATURE SAD WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0635 062D;;;;N;;;;;
+FC21;ARABIC LIGATURE SAD WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0635 0645;;;;N;;;;;
+FC22;ARABIC LIGATURE DAD WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0636 062C;;;;N;;;;;
+FC23;ARABIC LIGATURE DAD WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0636 062D;;;;N;;;;;
+FC24;ARABIC LIGATURE DAD WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0636 062E;;;;N;;;;;
+FC25;ARABIC LIGATURE DAD WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0636 0645;;;;N;;;;;
+FC26;ARABIC LIGATURE TAH WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0637 062D;;;;N;;;;;
+FC27;ARABIC LIGATURE TAH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0637 0645;;;;N;;;;;
+FC28;ARABIC LIGATURE ZAH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0638 0645;;;;N;;;;;
+FC29;ARABIC LIGATURE AIN WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0639 062C;;;;N;;;;;
+FC2A;ARABIC LIGATURE AIN WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0639 0645;;;;N;;;;;
+FC2B;ARABIC LIGATURE GHAIN WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 063A 062C;;;;N;;;;;
+FC2C;ARABIC LIGATURE GHAIN WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 063A 0645;;;;N;;;;;
+FC2D;ARABIC LIGATURE FEH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0641 062C;;;;N;;;;;
+FC2E;ARABIC LIGATURE FEH WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0641 062D;;;;N;;;;;
+FC2F;ARABIC LIGATURE FEH WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0641 062E;;;;N;;;;;
+FC30;ARABIC LIGATURE FEH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0641 0645;;;;N;;;;;
+FC31;ARABIC LIGATURE FEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0641 0649;;;;N;;;;;
+FC32;ARABIC LIGATURE FEH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0641 064A;;;;N;;;;;
+FC33;ARABIC LIGATURE QAF WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0642 062D;;;;N;;;;;
+FC34;ARABIC LIGATURE QAF WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0642 0645;;;;N;;;;;
+FC35;ARABIC LIGATURE QAF WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0642 0649;;;;N;;;;;
+FC36;ARABIC LIGATURE QAF WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0642 064A;;;;N;;;;;
+FC37;ARABIC LIGATURE KAF WITH ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0643 0627;;;;N;;;;;
+FC38;ARABIC LIGATURE KAF WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0643 062C;;;;N;;;;;
+FC39;ARABIC LIGATURE KAF WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0643 062D;;;;N;;;;;
+FC3A;ARABIC LIGATURE KAF WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0643 062E;;;;N;;;;;
+FC3B;ARABIC LIGATURE KAF WITH LAM ISOLATED FORM;Lo;0;AL;<isolated> 0643 0644;;;;N;;;;;
+FC3C;ARABIC LIGATURE KAF WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0643 0645;;;;N;;;;;
+FC3D;ARABIC LIGATURE KAF WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0643 0649;;;;N;;;;;
+FC3E;ARABIC LIGATURE KAF WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0643 064A;;;;N;;;;;
+FC3F;ARABIC LIGATURE LAM WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0644 062C;;;;N;;;;;
+FC40;ARABIC LIGATURE LAM WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0644 062D;;;;N;;;;;
+FC41;ARABIC LIGATURE LAM WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0644 062E;;;;N;;;;;
+FC42;ARABIC LIGATURE LAM WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0644 0645;;;;N;;;;;
+FC43;ARABIC LIGATURE LAM WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0644 0649;;;;N;;;;;
+FC44;ARABIC LIGATURE LAM WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0644 064A;;;;N;;;;;
+FC45;ARABIC LIGATURE MEEM WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0645 062C;;;;N;;;;;
+FC46;ARABIC LIGATURE MEEM WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0645 062D;;;;N;;;;;
+FC47;ARABIC LIGATURE MEEM WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0645 062E;;;;N;;;;;
+FC48;ARABIC LIGATURE MEEM WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0645 0645;;;;N;;;;;
+FC49;ARABIC LIGATURE MEEM WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0645 0649;;;;N;;;;;
+FC4A;ARABIC LIGATURE MEEM WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0645 064A;;;;N;;;;;
+FC4B;ARABIC LIGATURE NOON WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0646 062C;;;;N;;;;;
+FC4C;ARABIC LIGATURE NOON WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0646 062D;;;;N;;;;;
+FC4D;ARABIC LIGATURE NOON WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0646 062E;;;;N;;;;;
+FC4E;ARABIC LIGATURE NOON WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0646 0645;;;;N;;;;;
+FC4F;ARABIC LIGATURE NOON WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0646 0649;;;;N;;;;;
+FC50;ARABIC LIGATURE NOON WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0646 064A;;;;N;;;;;
+FC51;ARABIC LIGATURE HEH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0647 062C;;;;N;;;;;
+FC52;ARABIC LIGATURE HEH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0647 0645;;;;N;;;;;
+FC53;ARABIC LIGATURE HEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0647 0649;;;;N;;;;;
+FC54;ARABIC LIGATURE HEH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0647 064A;;;;N;;;;;
+FC55;ARABIC LIGATURE YEH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 064A 062C;;;;N;;;;;
+FC56;ARABIC LIGATURE YEH WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 064A 062D;;;;N;;;;;
+FC57;ARABIC LIGATURE YEH WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 064A 062E;;;;N;;;;;
+FC58;ARABIC LIGATURE YEH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 064A 0645;;;;N;;;;;
+FC59;ARABIC LIGATURE YEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 064A 0649;;;;N;;;;;
+FC5A;ARABIC LIGATURE YEH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 064A 064A;;;;N;;;;;
+FC5B;ARABIC LIGATURE THAL WITH SUPERSCRIPT ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0630 0670;;;;N;;;;;
+FC5C;ARABIC LIGATURE REH WITH SUPERSCRIPT ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0631 0670;;;;N;;;;;
+FC5D;ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0649 0670;;;;N;;;;;
+FC5E;ARABIC LIGATURE SHADDA WITH DAMMATAN ISOLATED FORM;Lo;0;AL;<isolated> 0020 064C 0651;;;;N;;;;;
+FC5F;ARABIC LIGATURE SHADDA WITH KASRATAN ISOLATED FORM;Lo;0;AL;<isolated> 0020 064D 0651;;;;N;;;;;
+FC60;ARABIC LIGATURE SHADDA WITH FATHA ISOLATED FORM;Lo;0;AL;<isolated> 0020 064E 0651;;;;N;;;;;
+FC61;ARABIC LIGATURE SHADDA WITH DAMMA ISOLATED FORM;Lo;0;AL;<isolated> 0020 064F 0651;;;;N;;;;;
+FC62;ARABIC LIGATURE SHADDA WITH KASRA ISOLATED FORM;Lo;0;AL;<isolated> 0020 0650 0651;;;;N;;;;;
+FC63;ARABIC LIGATURE SHADDA WITH SUPERSCRIPT ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0020 0651 0670;;;;N;;;;;
+FC64;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH REH FINAL FORM;Lo;0;AL;<final> 0626 0631;;;;N;;;;;
+FC65;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ZAIN FINAL FORM;Lo;0;AL;<final> 0626 0632;;;;N;;;;;
+FC66;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM FINAL FORM;Lo;0;AL;<final> 0626 0645;;;;N;;;;;
+FC67;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH NOON FINAL FORM;Lo;0;AL;<final> 0626 0646;;;;N;;;;;
+FC68;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0626 0649;;;;N;;;;;
+FC69;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH FINAL FORM;Lo;0;AL;<final> 0626 064A;;;;N;;;;;
+FC6A;ARABIC LIGATURE BEH WITH REH FINAL FORM;Lo;0;AL;<final> 0628 0631;;;;N;;;;;
+FC6B;ARABIC LIGATURE BEH WITH ZAIN FINAL FORM;Lo;0;AL;<final> 0628 0632;;;;N;;;;;
+FC6C;ARABIC LIGATURE BEH WITH MEEM FINAL FORM;Lo;0;AL;<final> 0628 0645;;;;N;;;;;
+FC6D;ARABIC LIGATURE BEH WITH NOON FINAL FORM;Lo;0;AL;<final> 0628 0646;;;;N;;;;;
+FC6E;ARABIC LIGATURE BEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0628 0649;;;;N;;;;;
+FC6F;ARABIC LIGATURE BEH WITH YEH FINAL FORM;Lo;0;AL;<final> 0628 064A;;;;N;;;;;
+FC70;ARABIC LIGATURE TEH WITH REH FINAL FORM;Lo;0;AL;<final> 062A 0631;;;;N;;;;;
+FC71;ARABIC LIGATURE TEH WITH ZAIN FINAL FORM;Lo;0;AL;<final> 062A 0632;;;;N;;;;;
+FC72;ARABIC LIGATURE TEH WITH MEEM FINAL FORM;Lo;0;AL;<final> 062A 0645;;;;N;;;;;
+FC73;ARABIC LIGATURE TEH WITH NOON FINAL FORM;Lo;0;AL;<final> 062A 0646;;;;N;;;;;
+FC74;ARABIC LIGATURE TEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062A 0649;;;;N;;;;;
+FC75;ARABIC LIGATURE TEH WITH YEH FINAL FORM;Lo;0;AL;<final> 062A 064A;;;;N;;;;;
+FC76;ARABIC LIGATURE THEH WITH REH FINAL FORM;Lo;0;AL;<final> 062B 0631;;;;N;;;;;
+FC77;ARABIC LIGATURE THEH WITH ZAIN FINAL FORM;Lo;0;AL;<final> 062B 0632;;;;N;;;;;
+FC78;ARABIC LIGATURE THEH WITH MEEM FINAL FORM;Lo;0;AL;<final> 062B 0645;;;;N;;;;;
+FC79;ARABIC LIGATURE THEH WITH NOON FINAL FORM;Lo;0;AL;<final> 062B 0646;;;;N;;;;;
+FC7A;ARABIC LIGATURE THEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062B 0649;;;;N;;;;;
+FC7B;ARABIC LIGATURE THEH WITH YEH FINAL FORM;Lo;0;AL;<final> 062B 064A;;;;N;;;;;
+FC7C;ARABIC LIGATURE FEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0641 0649;;;;N;;;;;
+FC7D;ARABIC LIGATURE FEH WITH YEH FINAL FORM;Lo;0;AL;<final> 0641 064A;;;;N;;;;;
+FC7E;ARABIC LIGATURE QAF WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0642 0649;;;;N;;;;;
+FC7F;ARABIC LIGATURE QAF WITH YEH FINAL FORM;Lo;0;AL;<final> 0642 064A;;;;N;;;;;
+FC80;ARABIC LIGATURE KAF WITH ALEF FINAL FORM;Lo;0;AL;<final> 0643 0627;;;;N;;;;;
+FC81;ARABIC LIGATURE KAF WITH LAM FINAL FORM;Lo;0;AL;<final> 0643 0644;;;;N;;;;;
+FC82;ARABIC LIGATURE KAF WITH MEEM FINAL FORM;Lo;0;AL;<final> 0643 0645;;;;N;;;;;
+FC83;ARABIC LIGATURE KAF WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0643 0649;;;;N;;;;;
+FC84;ARABIC LIGATURE KAF WITH YEH FINAL FORM;Lo;0;AL;<final> 0643 064A;;;;N;;;;;
+FC85;ARABIC LIGATURE LAM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0644 0645;;;;N;;;;;
+FC86;ARABIC LIGATURE LAM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0644 0649;;;;N;;;;;
+FC87;ARABIC LIGATURE LAM WITH YEH FINAL FORM;Lo;0;AL;<final> 0644 064A;;;;N;;;;;
+FC88;ARABIC LIGATURE MEEM WITH ALEF FINAL FORM;Lo;0;AL;<final> 0645 0627;;;;N;;;;;
+FC89;ARABIC LIGATURE MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0645 0645;;;;N;;;;;
+FC8A;ARABIC LIGATURE NOON WITH REH FINAL FORM;Lo;0;AL;<final> 0646 0631;;;;N;;;;;
+FC8B;ARABIC LIGATURE NOON WITH ZAIN FINAL FORM;Lo;0;AL;<final> 0646 0632;;;;N;;;;;
+FC8C;ARABIC LIGATURE NOON WITH MEEM FINAL FORM;Lo;0;AL;<final> 0646 0645;;;;N;;;;;
+FC8D;ARABIC LIGATURE NOON WITH NOON FINAL FORM;Lo;0;AL;<final> 0646 0646;;;;N;;;;;
+FC8E;ARABIC LIGATURE NOON WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0646 0649;;;;N;;;;;
+FC8F;ARABIC LIGATURE NOON WITH YEH FINAL FORM;Lo;0;AL;<final> 0646 064A;;;;N;;;;;
+FC90;ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF FINAL FORM;Lo;0;AL;<final> 0649 0670;;;;N;;;;;
+FC91;ARABIC LIGATURE YEH WITH REH FINAL FORM;Lo;0;AL;<final> 064A 0631;;;;N;;;;;
+FC92;ARABIC LIGATURE YEH WITH ZAIN FINAL FORM;Lo;0;AL;<final> 064A 0632;;;;N;;;;;
+FC93;ARABIC LIGATURE YEH WITH MEEM FINAL FORM;Lo;0;AL;<final> 064A 0645;;;;N;;;;;
+FC94;ARABIC LIGATURE YEH WITH NOON FINAL FORM;Lo;0;AL;<final> 064A 0646;;;;N;;;;;
+FC95;ARABIC LIGATURE YEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 064A 0649;;;;N;;;;;
+FC96;ARABIC LIGATURE YEH WITH YEH FINAL FORM;Lo;0;AL;<final> 064A 064A;;;;N;;;;;
+FC97;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0626 062C;;;;N;;;;;
+FC98;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0626 062D;;;;N;;;;;
+FC99;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0626 062E;;;;N;;;;;
+FC9A;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0626 0645;;;;N;;;;;
+FC9B;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH INITIAL FORM;Lo;0;AL;<initial> 0626 0647;;;;N;;;;;
+FC9C;ARABIC LIGATURE BEH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0628 062C;;;;N;;;;;
+FC9D;ARABIC LIGATURE BEH WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0628 062D;;;;N;;;;;
+FC9E;ARABIC LIGATURE BEH WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0628 062E;;;;N;;;;;
+FC9F;ARABIC LIGATURE BEH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0628 0645;;;;N;;;;;
+FCA0;ARABIC LIGATURE BEH WITH HEH INITIAL FORM;Lo;0;AL;<initial> 0628 0647;;;;N;;;;;
+FCA1;ARABIC LIGATURE TEH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 062A 062C;;;;N;;;;;
+FCA2;ARABIC LIGATURE TEH WITH HAH INITIAL FORM;Lo;0;AL;<initial> 062A 062D;;;;N;;;;;
+FCA3;ARABIC LIGATURE TEH WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 062A 062E;;;;N;;;;;
+FCA4;ARABIC LIGATURE TEH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062A 0645;;;;N;;;;;
+FCA5;ARABIC LIGATURE TEH WITH HEH INITIAL FORM;Lo;0;AL;<initial> 062A 0647;;;;N;;;;;
+FCA6;ARABIC LIGATURE THEH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062B 0645;;;;N;;;;;
+FCA7;ARABIC LIGATURE JEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 062C 062D;;;;N;;;;;
+FCA8;ARABIC LIGATURE JEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062C 0645;;;;N;;;;;
+FCA9;ARABIC LIGATURE HAH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 062D 062C;;;;N;;;;;
+FCAA;ARABIC LIGATURE HAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062D 0645;;;;N;;;;;
+FCAB;ARABIC LIGATURE KHAH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 062E 062C;;;;N;;;;;
+FCAC;ARABIC LIGATURE KHAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062E 0645;;;;N;;;;;
+FCAD;ARABIC LIGATURE SEEN WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0633 062C;;;;N;;;;;
+FCAE;ARABIC LIGATURE SEEN WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0633 062D;;;;N;;;;;
+FCAF;ARABIC LIGATURE SEEN WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0633 062E;;;;N;;;;;
+FCB0;ARABIC LIGATURE SEEN WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0633 0645;;;;N;;;;;
+FCB1;ARABIC LIGATURE SAD WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0635 062D;;;;N;;;;;
+FCB2;ARABIC LIGATURE SAD WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0635 062E;;;;N;;;;;
+FCB3;ARABIC LIGATURE SAD WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0635 0645;;;;N;;;;;
+FCB4;ARABIC LIGATURE DAD WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0636 062C;;;;N;;;;;
+FCB5;ARABIC LIGATURE DAD WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0636 062D;;;;N;;;;;
+FCB6;ARABIC LIGATURE DAD WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0636 062E;;;;N;;;;;
+FCB7;ARABIC LIGATURE DAD WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0636 0645;;;;N;;;;;
+FCB8;ARABIC LIGATURE TAH WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0637 062D;;;;N;;;;;
+FCB9;ARABIC LIGATURE ZAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0638 0645;;;;N;;;;;
+FCBA;ARABIC LIGATURE AIN WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0639 062C;;;;N;;;;;
+FCBB;ARABIC LIGATURE AIN WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0639 0645;;;;N;;;;;
+FCBC;ARABIC LIGATURE GHAIN WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 063A 062C;;;;N;;;;;
+FCBD;ARABIC LIGATURE GHAIN WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 063A 0645;;;;N;;;;;
+FCBE;ARABIC LIGATURE FEH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0641 062C;;;;N;;;;;
+FCBF;ARABIC LIGATURE FEH WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0641 062D;;;;N;;;;;
+FCC0;ARABIC LIGATURE FEH WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0641 062E;;;;N;;;;;
+FCC1;ARABIC LIGATURE FEH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0641 0645;;;;N;;;;;
+FCC2;ARABIC LIGATURE QAF WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0642 062D;;;;N;;;;;
+FCC3;ARABIC LIGATURE QAF WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0642 0645;;;;N;;;;;
+FCC4;ARABIC LIGATURE KAF WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0643 062C;;;;N;;;;;
+FCC5;ARABIC LIGATURE KAF WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0643 062D;;;;N;;;;;
+FCC6;ARABIC LIGATURE KAF WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0643 062E;;;;N;;;;;
+FCC7;ARABIC LIGATURE KAF WITH LAM INITIAL FORM;Lo;0;AL;<initial> 0643 0644;;;;N;;;;;
+FCC8;ARABIC LIGATURE KAF WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0643 0645;;;;N;;;;;
+FCC9;ARABIC LIGATURE LAM WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0644 062C;;;;N;;;;;
+FCCA;ARABIC LIGATURE LAM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0644 062D;;;;N;;;;;
+FCCB;ARABIC LIGATURE LAM WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0644 062E;;;;N;;;;;
+FCCC;ARABIC LIGATURE LAM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0644 0645;;;;N;;;;;
+FCCD;ARABIC LIGATURE LAM WITH HEH INITIAL FORM;Lo;0;AL;<initial> 0644 0647;;;;N;;;;;
+FCCE;ARABIC LIGATURE MEEM WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0645 062C;;;;N;;;;;
+FCCF;ARABIC LIGATURE MEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0645 062D;;;;N;;;;;
+FCD0;ARABIC LIGATURE MEEM WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0645 062E;;;;N;;;;;
+FCD1;ARABIC LIGATURE MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0645 0645;;;;N;;;;;
+FCD2;ARABIC LIGATURE NOON WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0646 062C;;;;N;;;;;
+FCD3;ARABIC LIGATURE NOON WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0646 062D;;;;N;;;;;
+FCD4;ARABIC LIGATURE NOON WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0646 062E;;;;N;;;;;
+FCD5;ARABIC LIGATURE NOON WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0646 0645;;;;N;;;;;
+FCD6;ARABIC LIGATURE NOON WITH HEH INITIAL FORM;Lo;0;AL;<initial> 0646 0647;;;;N;;;;;
+FCD7;ARABIC LIGATURE HEH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0647 062C;;;;N;;;;;
+FCD8;ARABIC LIGATURE HEH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0647 0645;;;;N;;;;;
+FCD9;ARABIC LIGATURE HEH WITH SUPERSCRIPT ALEF INITIAL FORM;Lo;0;AL;<initial> 0647 0670;;;;N;;;;;
+FCDA;ARABIC LIGATURE YEH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 064A 062C;;;;N;;;;;
+FCDB;ARABIC LIGATURE YEH WITH HAH INITIAL FORM;Lo;0;AL;<initial> 064A 062D;;;;N;;;;;
+FCDC;ARABIC LIGATURE YEH WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 064A 062E;;;;N;;;;;
+FCDD;ARABIC LIGATURE YEH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 064A 0645;;;;N;;;;;
+FCDE;ARABIC LIGATURE YEH WITH HEH INITIAL FORM;Lo;0;AL;<initial> 064A 0647;;;;N;;;;;
+FCDF;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0626 0645;;;;N;;;;;
+FCE0;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 0626 0647;;;;N;;;;;
+FCE1;ARABIC LIGATURE BEH WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0628 0645;;;;N;;;;;
+FCE2;ARABIC LIGATURE BEH WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 0628 0647;;;;N;;;;;
+FCE3;ARABIC LIGATURE TEH WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 062A 0645;;;;N;;;;;
+FCE4;ARABIC LIGATURE TEH WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 062A 0647;;;;N;;;;;
+FCE5;ARABIC LIGATURE THEH WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 062B 0645;;;;N;;;;;
+FCE6;ARABIC LIGATURE THEH WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 062B 0647;;;;N;;;;;
+FCE7;ARABIC LIGATURE SEEN WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0633 0645;;;;N;;;;;
+FCE8;ARABIC LIGATURE SEEN WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 0633 0647;;;;N;;;;;
+FCE9;ARABIC LIGATURE SHEEN WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0634 0645;;;;N;;;;;
+FCEA;ARABIC LIGATURE SHEEN WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 0634 0647;;;;N;;;;;
+FCEB;ARABIC LIGATURE KAF WITH LAM MEDIAL FORM;Lo;0;AL;<medial> 0643 0644;;;;N;;;;;
+FCEC;ARABIC LIGATURE KAF WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0643 0645;;;;N;;;;;
+FCED;ARABIC LIGATURE LAM WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0644 0645;;;;N;;;;;
+FCEE;ARABIC LIGATURE NOON WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0646 0645;;;;N;;;;;
+FCEF;ARABIC LIGATURE NOON WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 0646 0647;;;;N;;;;;
+FCF0;ARABIC LIGATURE YEH WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 064A 0645;;;;N;;;;;
+FCF1;ARABIC LIGATURE YEH WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 064A 0647;;;;N;;;;;
+FCF2;ARABIC LIGATURE SHADDA WITH FATHA MEDIAL FORM;Lo;0;AL;<medial> 0640 064E 0651;;;;N;;;;;
+FCF3;ARABIC LIGATURE SHADDA WITH DAMMA MEDIAL FORM;Lo;0;AL;<medial> 0640 064F 0651;;;;N;;;;;
+FCF4;ARABIC LIGATURE SHADDA WITH KASRA MEDIAL FORM;Lo;0;AL;<medial> 0640 0650 0651;;;;N;;;;;
+FCF5;ARABIC LIGATURE TAH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0637 0649;;;;N;;;;;
+FCF6;ARABIC LIGATURE TAH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0637 064A;;;;N;;;;;
+FCF7;ARABIC LIGATURE AIN WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0639 0649;;;;N;;;;;
+FCF8;ARABIC LIGATURE AIN WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0639 064A;;;;N;;;;;
+FCF9;ARABIC LIGATURE GHAIN WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 063A 0649;;;;N;;;;;
+FCFA;ARABIC LIGATURE GHAIN WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 063A 064A;;;;N;;;;;
+FCFB;ARABIC LIGATURE SEEN WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0633 0649;;;;N;;;;;
+FCFC;ARABIC LIGATURE SEEN WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0633 064A;;;;N;;;;;
+FCFD;ARABIC LIGATURE SHEEN WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0634 0649;;;;N;;;;;
+FCFE;ARABIC LIGATURE SHEEN WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0634 064A;;;;N;;;;;
+FCFF;ARABIC LIGATURE HAH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 062D 0649;;;;N;;;;;
+FD00;ARABIC LIGATURE HAH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 062D 064A;;;;N;;;;;
+FD01;ARABIC LIGATURE JEEM WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 062C 0649;;;;N;;;;;
+FD02;ARABIC LIGATURE JEEM WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 062C 064A;;;;N;;;;;
+FD03;ARABIC LIGATURE KHAH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 062E 0649;;;;N;;;;;
+FD04;ARABIC LIGATURE KHAH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 062E 064A;;;;N;;;;;
+FD05;ARABIC LIGATURE SAD WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0635 0649;;;;N;;;;;
+FD06;ARABIC LIGATURE SAD WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0635 064A;;;;N;;;;;
+FD07;ARABIC LIGATURE DAD WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0636 0649;;;;N;;;;;
+FD08;ARABIC LIGATURE DAD WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0636 064A;;;;N;;;;;
+FD09;ARABIC LIGATURE SHEEN WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0634 062C;;;;N;;;;;
+FD0A;ARABIC LIGATURE SHEEN WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0634 062D;;;;N;;;;;
+FD0B;ARABIC LIGATURE SHEEN WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0634 062E;;;;N;;;;;
+FD0C;ARABIC LIGATURE SHEEN WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0634 0645;;;;N;;;;;
+FD0D;ARABIC LIGATURE SHEEN WITH REH ISOLATED FORM;Lo;0;AL;<isolated> 0634 0631;;;;N;;;;;
+FD0E;ARABIC LIGATURE SEEN WITH REH ISOLATED FORM;Lo;0;AL;<isolated> 0633 0631;;;;N;;;;;
+FD0F;ARABIC LIGATURE SAD WITH REH ISOLATED FORM;Lo;0;AL;<isolated> 0635 0631;;;;N;;;;;
+FD10;ARABIC LIGATURE DAD WITH REH ISOLATED FORM;Lo;0;AL;<isolated> 0636 0631;;;;N;;;;;
+FD11;ARABIC LIGATURE TAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0637 0649;;;;N;;;;;
+FD12;ARABIC LIGATURE TAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0637 064A;;;;N;;;;;
+FD13;ARABIC LIGATURE AIN WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0639 0649;;;;N;;;;;
+FD14;ARABIC LIGATURE AIN WITH YEH FINAL FORM;Lo;0;AL;<final> 0639 064A;;;;N;;;;;
+FD15;ARABIC LIGATURE GHAIN WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 063A 0649;;;;N;;;;;
+FD16;ARABIC LIGATURE GHAIN WITH YEH FINAL FORM;Lo;0;AL;<final> 063A 064A;;;;N;;;;;
+FD17;ARABIC LIGATURE SEEN WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0633 0649;;;;N;;;;;
+FD18;ARABIC LIGATURE SEEN WITH YEH FINAL FORM;Lo;0;AL;<final> 0633 064A;;;;N;;;;;
+FD19;ARABIC LIGATURE SHEEN WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0634 0649;;;;N;;;;;
+FD1A;ARABIC LIGATURE SHEEN WITH YEH FINAL FORM;Lo;0;AL;<final> 0634 064A;;;;N;;;;;
+FD1B;ARABIC LIGATURE HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062D 0649;;;;N;;;;;
+FD1C;ARABIC LIGATURE HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 062D 064A;;;;N;;;;;
+FD1D;ARABIC LIGATURE JEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062C 0649;;;;N;;;;;
+FD1E;ARABIC LIGATURE JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 062C 064A;;;;N;;;;;
+FD1F;ARABIC LIGATURE KHAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062E 0649;;;;N;;;;;
+FD20;ARABIC LIGATURE KHAH WITH YEH FINAL FORM;Lo;0;AL;<final> 062E 064A;;;;N;;;;;
+FD21;ARABIC LIGATURE SAD WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0635 0649;;;;N;;;;;
+FD22;ARABIC LIGATURE SAD WITH YEH FINAL FORM;Lo;0;AL;<final> 0635 064A;;;;N;;;;;
+FD23;ARABIC LIGATURE DAD WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0636 0649;;;;N;;;;;
+FD24;ARABIC LIGATURE DAD WITH YEH FINAL FORM;Lo;0;AL;<final> 0636 064A;;;;N;;;;;
+FD25;ARABIC LIGATURE SHEEN WITH JEEM FINAL FORM;Lo;0;AL;<final> 0634 062C;;;;N;;;;;
+FD26;ARABIC LIGATURE SHEEN WITH HAH FINAL FORM;Lo;0;AL;<final> 0634 062D;;;;N;;;;;
+FD27;ARABIC LIGATURE SHEEN WITH KHAH FINAL FORM;Lo;0;AL;<final> 0634 062E;;;;N;;;;;
+FD28;ARABIC LIGATURE SHEEN WITH MEEM FINAL FORM;Lo;0;AL;<final> 0634 0645;;;;N;;;;;
+FD29;ARABIC LIGATURE SHEEN WITH REH FINAL FORM;Lo;0;AL;<final> 0634 0631;;;;N;;;;;
+FD2A;ARABIC LIGATURE SEEN WITH REH FINAL FORM;Lo;0;AL;<final> 0633 0631;;;;N;;;;;
+FD2B;ARABIC LIGATURE SAD WITH REH FINAL FORM;Lo;0;AL;<final> 0635 0631;;;;N;;;;;
+FD2C;ARABIC LIGATURE DAD WITH REH FINAL FORM;Lo;0;AL;<final> 0636 0631;;;;N;;;;;
+FD2D;ARABIC LIGATURE SHEEN WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0634 062C;;;;N;;;;;
+FD2E;ARABIC LIGATURE SHEEN WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0634 062D;;;;N;;;;;
+FD2F;ARABIC LIGATURE SHEEN WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0634 062E;;;;N;;;;;
+FD30;ARABIC LIGATURE SHEEN WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0634 0645;;;;N;;;;;
+FD31;ARABIC LIGATURE SEEN WITH HEH INITIAL FORM;Lo;0;AL;<initial> 0633 0647;;;;N;;;;;
+FD32;ARABIC LIGATURE SHEEN WITH HEH INITIAL FORM;Lo;0;AL;<initial> 0634 0647;;;;N;;;;;
+FD33;ARABIC LIGATURE TAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0637 0645;;;;N;;;;;
+FD34;ARABIC LIGATURE SEEN WITH JEEM MEDIAL FORM;Lo;0;AL;<medial> 0633 062C;;;;N;;;;;
+FD35;ARABIC LIGATURE SEEN WITH HAH MEDIAL FORM;Lo;0;AL;<medial> 0633 062D;;;;N;;;;;
+FD36;ARABIC LIGATURE SEEN WITH KHAH MEDIAL FORM;Lo;0;AL;<medial> 0633 062E;;;;N;;;;;
+FD37;ARABIC LIGATURE SHEEN WITH JEEM MEDIAL FORM;Lo;0;AL;<medial> 0634 062C;;;;N;;;;;
+FD38;ARABIC LIGATURE SHEEN WITH HAH MEDIAL FORM;Lo;0;AL;<medial> 0634 062D;;;;N;;;;;
+FD39;ARABIC LIGATURE SHEEN WITH KHAH MEDIAL FORM;Lo;0;AL;<medial> 0634 062E;;;;N;;;;;
+FD3A;ARABIC LIGATURE TAH WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0637 0645;;;;N;;;;;
+FD3B;ARABIC LIGATURE ZAH WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0638 0645;;;;N;;;;;
+FD3C;ARABIC LIGATURE ALEF WITH FATHATAN FINAL FORM;Lo;0;AL;<final> 0627 064B;;;;N;;;;;
+FD3D;ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM;Lo;0;AL;<isolated> 0627 064B;;;;N;;;;;
+FD3E;ORNATE LEFT PARENTHESIS;Ps;0;ON;;;;;N;;;;;
+FD3F;ORNATE RIGHT PARENTHESIS;Pe;0;ON;;;;;N;;;;;
+FD50;ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062A 062C 0645;;;;N;;;;;
+FD51;ARABIC LIGATURE TEH WITH HAH WITH JEEM FINAL FORM;Lo;0;AL;<final> 062A 062D 062C;;;;N;;;;;
+FD52;ARABIC LIGATURE TEH WITH HAH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 062A 062D 062C;;;;N;;;;;
+FD53;ARABIC LIGATURE TEH WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062A 062D 0645;;;;N;;;;;
+FD54;ARABIC LIGATURE TEH WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062A 062E 0645;;;;N;;;;;
+FD55;ARABIC LIGATURE TEH WITH MEEM WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 062A 0645 062C;;;;N;;;;;
+FD56;ARABIC LIGATURE TEH WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 062A 0645 062D;;;;N;;;;;
+FD57;ARABIC LIGATURE TEH WITH MEEM WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 062A 0645 062E;;;;N;;;;;
+FD58;ARABIC LIGATURE JEEM WITH MEEM WITH HAH FINAL FORM;Lo;0;AL;<final> 062C 0645 062D;;;;N;;;;;
+FD59;ARABIC LIGATURE JEEM WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 062C 0645 062D;;;;N;;;;;
+FD5A;ARABIC LIGATURE HAH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 062D 0645 064A;;;;N;;;;;
+FD5B;ARABIC LIGATURE HAH WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062D 0645 0649;;;;N;;;;;
+FD5C;ARABIC LIGATURE SEEN WITH HAH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0633 062D 062C;;;;N;;;;;
+FD5D;ARABIC LIGATURE SEEN WITH JEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0633 062C 062D;;;;N;;;;;
+FD5E;ARABIC LIGATURE SEEN WITH JEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0633 062C 0649;;;;N;;;;;
+FD5F;ARABIC LIGATURE SEEN WITH MEEM WITH HAH FINAL FORM;Lo;0;AL;<final> 0633 0645 062D;;;;N;;;;;
+FD60;ARABIC LIGATURE SEEN WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0633 0645 062D;;;;N;;;;;
+FD61;ARABIC LIGATURE SEEN WITH MEEM WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0633 0645 062C;;;;N;;;;;
+FD62;ARABIC LIGATURE SEEN WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0633 0645 0645;;;;N;;;;;
+FD63;ARABIC LIGATURE SEEN WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0633 0645 0645;;;;N;;;;;
+FD64;ARABIC LIGATURE SAD WITH HAH WITH HAH FINAL FORM;Lo;0;AL;<final> 0635 062D 062D;;;;N;;;;;
+FD65;ARABIC LIGATURE SAD WITH HAH WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0635 062D 062D;;;;N;;;;;
+FD66;ARABIC LIGATURE SAD WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0635 0645 0645;;;;N;;;;;
+FD67;ARABIC LIGATURE SHEEN WITH HAH WITH MEEM FINAL FORM;Lo;0;AL;<final> 0634 062D 0645;;;;N;;;;;
+FD68;ARABIC LIGATURE SHEEN WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0634 062D 0645;;;;N;;;;;
+FD69;ARABIC LIGATURE SHEEN WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0634 062C 064A;;;;N;;;;;
+FD6A;ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH FINAL FORM;Lo;0;AL;<final> 0634 0645 062E;;;;N;;;;;
+FD6B;ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0634 0645 062E;;;;N;;;;;
+FD6C;ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0634 0645 0645;;;;N;;;;;
+FD6D;ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0634 0645 0645;;;;N;;;;;
+FD6E;ARABIC LIGATURE DAD WITH HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0636 062D 0649;;;;N;;;;;
+FD6F;ARABIC LIGATURE DAD WITH KHAH WITH MEEM FINAL FORM;Lo;0;AL;<final> 0636 062E 0645;;;;N;;;;;
+FD70;ARABIC LIGATURE DAD WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0636 062E 0645;;;;N;;;;;
+FD71;ARABIC LIGATURE TAH WITH MEEM WITH HAH FINAL FORM;Lo;0;AL;<final> 0637 0645 062D;;;;N;;;;;
+FD72;ARABIC LIGATURE TAH WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0637 0645 062D;;;;N;;;;;
+FD73;ARABIC LIGATURE TAH WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0637 0645 0645;;;;N;;;;;
+FD74;ARABIC LIGATURE TAH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0637 0645 064A;;;;N;;;;;
+FD75;ARABIC LIGATURE AIN WITH JEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0639 062C 0645;;;;N;;;;;
+FD76;ARABIC LIGATURE AIN WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0639 0645 0645;;;;N;;;;;
+FD77;ARABIC LIGATURE AIN WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0639 0645 0645;;;;N;;;;;
+FD78;ARABIC LIGATURE AIN WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0639 0645 0649;;;;N;;;;;
+FD79;ARABIC LIGATURE GHAIN WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 063A 0645 0645;;;;N;;;;;
+FD7A;ARABIC LIGATURE GHAIN WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 063A 0645 064A;;;;N;;;;;
+FD7B;ARABIC LIGATURE GHAIN WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 063A 0645 0649;;;;N;;;;;
+FD7C;ARABIC LIGATURE FEH WITH KHAH WITH MEEM FINAL FORM;Lo;0;AL;<final> 0641 062E 0645;;;;N;;;;;
+FD7D;ARABIC LIGATURE FEH WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0641 062E 0645;;;;N;;;;;
+FD7E;ARABIC LIGATURE QAF WITH MEEM WITH HAH FINAL FORM;Lo;0;AL;<final> 0642 0645 062D;;;;N;;;;;
+FD7F;ARABIC LIGATURE QAF WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0642 0645 0645;;;;N;;;;;
+FD80;ARABIC LIGATURE LAM WITH HAH WITH MEEM FINAL FORM;Lo;0;AL;<final> 0644 062D 0645;;;;N;;;;;
+FD81;ARABIC LIGATURE LAM WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0644 062D 064A;;;;N;;;;;
+FD82;ARABIC LIGATURE LAM WITH HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0644 062D 0649;;;;N;;;;;
+FD83;ARABIC LIGATURE LAM WITH JEEM WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0644 062C 062C;;;;N;;;;;
+FD84;ARABIC LIGATURE LAM WITH JEEM WITH JEEM FINAL FORM;Lo;0;AL;<final> 0644 062C 062C;;;;N;;;;;
+FD85;ARABIC LIGATURE LAM WITH KHAH WITH MEEM FINAL FORM;Lo;0;AL;<final> 0644 062E 0645;;;;N;;;;;
+FD86;ARABIC LIGATURE LAM WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0644 062E 0645;;;;N;;;;;
+FD87;ARABIC LIGATURE LAM WITH MEEM WITH HAH FINAL FORM;Lo;0;AL;<final> 0644 0645 062D;;;;N;;;;;
+FD88;ARABIC LIGATURE LAM WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0644 0645 062D;;;;N;;;;;
+FD89;ARABIC LIGATURE MEEM WITH HAH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0645 062D 062C;;;;N;;;;;
+FD8A;ARABIC LIGATURE MEEM WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0645 062D 0645;;;;N;;;;;
+FD8B;ARABIC LIGATURE MEEM WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0645 062D 064A;;;;N;;;;;
+FD8C;ARABIC LIGATURE MEEM WITH JEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0645 062C 062D;;;;N;;;;;
+FD8D;ARABIC LIGATURE MEEM WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0645 062C 0645;;;;N;;;;;
+FD8E;ARABIC LIGATURE MEEM WITH KHAH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0645 062E 062C;;;;N;;;;;
+FD8F;ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0645 062E 0645;;;;N;;;;;
+FD92;ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0645 062C 062E;;;;N;;;;;
+FD93;ARABIC LIGATURE HEH WITH MEEM WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0647 0645 062C;;;;N;;;;;
+FD94;ARABIC LIGATURE HEH WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0647 0645 0645;;;;N;;;;;
+FD95;ARABIC LIGATURE NOON WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0646 062D 0645;;;;N;;;;;
+FD96;ARABIC LIGATURE NOON WITH HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0646 062D 0649;;;;N;;;;;
+FD97;ARABIC LIGATURE NOON WITH JEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0646 062C 0645;;;;N;;;;;
+FD98;ARABIC LIGATURE NOON WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0646 062C 0645;;;;N;;;;;
+FD99;ARABIC LIGATURE NOON WITH JEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0646 062C 0649;;;;N;;;;;
+FD9A;ARABIC LIGATURE NOON WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0646 0645 064A;;;;N;;;;;
+FD9B;ARABIC LIGATURE NOON WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0646 0645 0649;;;;N;;;;;
+FD9C;ARABIC LIGATURE YEH WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 064A 0645 0645;;;;N;;;;;
+FD9D;ARABIC LIGATURE YEH WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 064A 0645 0645;;;;N;;;;;
+FD9E;ARABIC LIGATURE BEH WITH KHAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0628 062E 064A;;;;N;;;;;
+FD9F;ARABIC LIGATURE TEH WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 062A 062C 064A;;;;N;;;;;
+FDA0;ARABIC LIGATURE TEH WITH JEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062A 062C 0649;;;;N;;;;;
+FDA1;ARABIC LIGATURE TEH WITH KHAH WITH YEH FINAL FORM;Lo;0;AL;<final> 062A 062E 064A;;;;N;;;;;
+FDA2;ARABIC LIGATURE TEH WITH KHAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062A 062E 0649;;;;N;;;;;
+FDA3;ARABIC LIGATURE TEH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 062A 0645 064A;;;;N;;;;;
+FDA4;ARABIC LIGATURE TEH WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062A 0645 0649;;;;N;;;;;
+FDA5;ARABIC LIGATURE JEEM WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 062C 0645 064A;;;;N;;;;;
+FDA6;ARABIC LIGATURE JEEM WITH HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062C 062D 0649;;;;N;;;;;
+FDA7;ARABIC LIGATURE JEEM WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062C 0645 0649;;;;N;;;;;
+FDA8;ARABIC LIGATURE SEEN WITH KHAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0633 062E 0649;;;;N;;;;;
+FDA9;ARABIC LIGATURE SAD WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0635 062D 064A;;;;N;;;;;
+FDAA;ARABIC LIGATURE SHEEN WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0634 062D 064A;;;;N;;;;;
+FDAB;ARABIC LIGATURE DAD WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0636 062D 064A;;;;N;;;;;
+FDAC;ARABIC LIGATURE LAM WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0644 062C 064A;;;;N;;;;;
+FDAD;ARABIC LIGATURE LAM WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0644 0645 064A;;;;N;;;;;
+FDAE;ARABIC LIGATURE YEH WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 064A 062D 064A;;;;N;;;;;
+FDAF;ARABIC LIGATURE YEH WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 064A 062C 064A;;;;N;;;;;
+FDB0;ARABIC LIGATURE YEH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 064A 0645 064A;;;;N;;;;;
+FDB1;ARABIC LIGATURE MEEM WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0645 0645 064A;;;;N;;;;;
+FDB2;ARABIC LIGATURE QAF WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0642 0645 064A;;;;N;;;;;
+FDB3;ARABIC LIGATURE NOON WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0646 062D 064A;;;;N;;;;;
+FDB4;ARABIC LIGATURE QAF WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0642 0645 062D;;;;N;;;;;
+FDB5;ARABIC LIGATURE LAM WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0644 062D 0645;;;;N;;;;;
+FDB6;ARABIC LIGATURE AIN WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0639 0645 064A;;;;N;;;;;
+FDB7;ARABIC LIGATURE KAF WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0643 0645 064A;;;;N;;;;;
+FDB8;ARABIC LIGATURE NOON WITH JEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0646 062C 062D;;;;N;;;;;
+FDB9;ARABIC LIGATURE MEEM WITH KHAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0645 062E 064A;;;;N;;;;;
+FDBA;ARABIC LIGATURE LAM WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0644 062C 0645;;;;N;;;;;
+FDBB;ARABIC LIGATURE KAF WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0643 0645 0645;;;;N;;;;;
+FDBC;ARABIC LIGATURE LAM WITH JEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0644 062C 0645;;;;N;;;;;
+FDBD;ARABIC LIGATURE NOON WITH JEEM WITH HAH FINAL FORM;Lo;0;AL;<final> 0646 062C 062D;;;;N;;;;;
+FDBE;ARABIC LIGATURE JEEM WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 062C 062D 064A;;;;N;;;;;
+FDBF;ARABIC LIGATURE HAH WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 062D 062C 064A;;;;N;;;;;
+FDC0;ARABIC LIGATURE MEEM WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0645 062C 064A;;;;N;;;;;
+FDC1;ARABIC LIGATURE FEH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0641 0645 064A;;;;N;;;;;
+FDC2;ARABIC LIGATURE BEH WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0628 062D 064A;;;;N;;;;;
+FDC3;ARABIC LIGATURE KAF WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0643 0645 0645;;;;N;;;;;
+FDC4;ARABIC LIGATURE AIN WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0639 062C 0645;;;;N;;;;;
+FDC5;ARABIC LIGATURE SAD WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0635 0645 0645;;;;N;;;;;
+FDC6;ARABIC LIGATURE SEEN WITH KHAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0633 062E 064A;;;;N;;;;;
+FDC7;ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0646 062C 064A;;;;N;;;;;
+FDF0;ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM;Lo;0;AL;<isolated> 0635 0644 06D2;;;;N;;;;;
+FDF1;ARABIC LIGATURE QALA USED AS KORANIC STOP SIGN ISOLATED FORM;Lo;0;AL;<isolated> 0642 0644 06D2;;;;N;;;;;
+FDF2;ARABIC LIGATURE ALLAH ISOLATED FORM;Lo;0;AL;<isolated> 0627 0644 0644 0647;;;;N;;;;;
+FDF3;ARABIC LIGATURE AKBAR ISOLATED FORM;Lo;0;AL;<isolated> 0627 0643 0628 0631;;;;N;;;;;
+FDF4;ARABIC LIGATURE MOHAMMAD ISOLATED FORM;Lo;0;AL;<isolated> 0645 062D 0645 062F;;;;N;;;;;
+FDF5;ARABIC LIGATURE SALAM ISOLATED FORM;Lo;0;AL;<isolated> 0635 0644 0639 0645;;;;N;;;;;
+FDF6;ARABIC LIGATURE RASOUL ISOLATED FORM;Lo;0;AL;<isolated> 0631 0633 0648 0644;;;;N;;;;;
+FDF7;ARABIC LIGATURE ALAYHE ISOLATED FORM;Lo;0;AL;<isolated> 0639 0644 064A 0647;;;;N;;;;;
+FDF8;ARABIC LIGATURE WASALLAM ISOLATED FORM;Lo;0;AL;<isolated> 0648 0633 0644 0645;;;;N;;;;;
+FDF9;ARABIC LIGATURE SALLA ISOLATED FORM;Lo;0;AL;<isolated> 0635 0644 0649;;;;N;;;;;
+FDFA;ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM;Lo;0;AL;<isolated> 0635 0644 0649 0020 0627 0644 0644 0647 0020 0639 0644 064A 0647 0020 0648 0633 0644 0645;;;;N;ARABIC LETTER SALLALLAHOU ALAYHE WASALLAM;;;;
+FDFB;ARABIC LIGATURE JALLAJALALOUHOU;Lo;0;AL;<isolated> 062C 0644 0020 062C 0644 0627 0644 0647;;;;N;ARABIC LETTER JALLAJALALOUHOU;;;;
+FE20;COMBINING LIGATURE LEFT HALF;Mn;230;NSM;;;;;N;;;;;
+FE21;COMBINING LIGATURE RIGHT HALF;Mn;230;NSM;;;;;N;;;;;
+FE22;COMBINING DOUBLE TILDE LEFT HALF;Mn;230;NSM;;;;;N;;;;;
+FE23;COMBINING DOUBLE TILDE RIGHT HALF;Mn;230;NSM;;;;;N;;;;;
+FE30;PRESENTATION FORM FOR VERTICAL TWO DOT LEADER;Po;0;ON;<vertical> 2025;;;;N;GLYPH FOR VERTICAL TWO DOT LEADER;;;;
+FE31;PRESENTATION FORM FOR VERTICAL EM DASH;Pd;0;ON;<vertical> 2014;;;;N;GLYPH FOR VERTICAL EM DASH;;;;
+FE32;PRESENTATION FORM FOR VERTICAL EN DASH;Pd;0;ON;<vertical> 2013;;;;N;GLYPH FOR VERTICAL EN DASH;;;;
+FE33;PRESENTATION FORM FOR VERTICAL LOW LINE;Pc;0;ON;<vertical> 005F;;;;N;GLYPH FOR VERTICAL SPACING UNDERSCORE;;;;
+FE34;PRESENTATION FORM FOR VERTICAL WAVY LOW LINE;Pc;0;ON;<vertical> 005F;;;;N;GLYPH FOR VERTICAL SPACING WAVY UNDERSCORE;;;;
+FE35;PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS;Ps;0;ON;<vertical> 0028;;;;N;GLYPH FOR VERTICAL OPENING PARENTHESIS;;;;
+FE36;PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS;Pe;0;ON;<vertical> 0029;;;;N;GLYPH FOR VERTICAL CLOSING PARENTHESIS;;;;
+FE37;PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET;Ps;0;ON;<vertical> 007B;;;;N;GLYPH FOR VERTICAL OPENING CURLY BRACKET;;;;
+FE38;PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET;Pe;0;ON;<vertical> 007D;;;;N;GLYPH FOR VERTICAL CLOSING CURLY BRACKET;;;;
+FE39;PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET;Ps;0;ON;<vertical> 3014;;;;N;GLYPH FOR VERTICAL OPENING TORTOISE SHELL BRACKET;;;;
+FE3A;PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET;Pe;0;ON;<vertical> 3015;;;;N;GLYPH FOR VERTICAL CLOSING TORTOISE SHELL BRACKET;;;;
+FE3B;PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET;Ps;0;ON;<vertical> 3010;;;;N;GLYPH FOR VERTICAL OPENING BLACK LENTICULAR BRACKET;;;;
+FE3C;PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET;Pe;0;ON;<vertical> 3011;;;;N;GLYPH FOR VERTICAL CLOSING BLACK LENTICULAR BRACKET;;;;
+FE3D;PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET;Ps;0;ON;<vertical> 300A;;;;N;GLYPH FOR VERTICAL OPENING DOUBLE ANGLE BRACKET;;;;
+FE3E;PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET;Pe;0;ON;<vertical> 300B;;;;N;GLYPH FOR VERTICAL CLOSING DOUBLE ANGLE BRACKET;;;;
+FE3F;PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET;Ps;0;ON;<vertical> 3008;;;;N;GLYPH FOR VERTICAL OPENING ANGLE BRACKET;;;;
+FE40;PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET;Pe;0;ON;<vertical> 3009;;;;N;GLYPH FOR VERTICAL CLOSING ANGLE BRACKET;;;;
+FE41;PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET;Ps;0;ON;<vertical> 300C;;;;N;GLYPH FOR VERTICAL OPENING CORNER BRACKET;;;;
+FE42;PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET;Pe;0;ON;<vertical> 300D;;;;N;GLYPH FOR VERTICAL CLOSING CORNER BRACKET;;;;
+FE43;PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET;Ps;0;ON;<vertical> 300E;;;;N;GLYPH FOR VERTICAL OPENING WHITE CORNER BRACKET;;;;
+FE44;PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET;Pe;0;ON;<vertical> 300F;;;;N;GLYPH FOR VERTICAL CLOSING WHITE CORNER BRACKET;;;;
+FE49;DASHED OVERLINE;Po;0;ON;<compat> 203E;;;;N;SPACING DASHED OVERSCORE;;;;
+FE4A;CENTRELINE OVERLINE;Po;0;ON;<compat> 203E;;;;N;SPACING CENTERLINE OVERSCORE;;;;
+FE4B;WAVY OVERLINE;Po;0;ON;<compat> 203E;;;;N;SPACING WAVY OVERSCORE;;;;
+FE4C;DOUBLE WAVY OVERLINE;Po;0;ON;<compat> 203E;;;;N;SPACING DOUBLE WAVY OVERSCORE;;;;
+FE4D;DASHED LOW LINE;Pc;0;ON;<compat> 005F;;;;N;SPACING DASHED UNDERSCORE;;;;
+FE4E;CENTRELINE LOW LINE;Pc;0;ON;<compat> 005F;;;;N;SPACING CENTERLINE UNDERSCORE;;;;
+FE4F;WAVY LOW LINE;Pc;0;ON;<compat> 005F;;;;N;SPACING WAVY UNDERSCORE;;;;
+FE50;SMALL COMMA;Po;0;CS;<small> 002C;;;;N;;;;;
+FE51;SMALL IDEOGRAPHIC COMMA;Po;0;ON;<small> 3001;;;;N;;;;;
+FE52;SMALL FULL STOP;Po;0;CS;<small> 002E;;;;N;SMALL PERIOD;;;;
+FE54;SMALL SEMICOLON;Po;0;ON;<small> 003B;;;;N;;;;;
+FE55;SMALL COLON;Po;0;CS;<small> 003A;;;;N;;;;;
+FE56;SMALL QUESTION MARK;Po;0;ON;<small> 003F;;;;N;;;;;
+FE57;SMALL EXCLAMATION MARK;Po;0;ON;<small> 0021;;;;N;;;;;
+FE58;SMALL EM DASH;Pd;0;ON;<small> 2014;;;;N;;;;;
+FE59;SMALL LEFT PARENTHESIS;Ps;0;ON;<small> 0028;;;;N;SMALL OPENING PARENTHESIS;;;;
+FE5A;SMALL RIGHT PARENTHESIS;Pe;0;ON;<small> 0029;;;;N;SMALL CLOSING PARENTHESIS;;;;
+FE5B;SMALL LEFT CURLY BRACKET;Ps;0;ON;<small> 007B;;;;N;SMALL OPENING CURLY BRACKET;;;;
+FE5C;SMALL RIGHT CURLY BRACKET;Pe;0;ON;<small> 007D;;;;N;SMALL CLOSING CURLY BRACKET;;;;
+FE5D;SMALL LEFT TORTOISE SHELL BRACKET;Ps;0;ON;<small> 3014;;;;N;SMALL OPENING TORTOISE SHELL BRACKET;;;;
+FE5E;SMALL RIGHT TORTOISE SHELL BRACKET;Pe;0;ON;<small> 3015;;;;N;SMALL CLOSING TORTOISE SHELL BRACKET;;;;
+FE5F;SMALL NUMBER SIGN;Po;0;ET;<small> 0023;;;;N;;;;;
+FE60;SMALL AMPERSAND;Po;0;ON;<small> 0026;;;;N;;;;;
+FE61;SMALL ASTERISK;Po;0;ON;<small> 002A;;;;N;;;;;
+FE62;SMALL PLUS SIGN;Sm;0;ET;<small> 002B;;;;N;;;;;
+FE63;SMALL HYPHEN-MINUS;Pd;0;ET;<small> 002D;;;;N;;;;;
+FE64;SMALL LESS-THAN SIGN;Sm;0;ON;<small> 003C;;;;N;;;;;
+FE65;SMALL GREATER-THAN SIGN;Sm;0;ON;<small> 003E;;;;N;;;;;
+FE66;SMALL EQUALS SIGN;Sm;0;ON;<small> 003D;;;;N;;;;;
+FE68;SMALL REVERSE SOLIDUS;Po;0;ON;<small> 005C;;;;N;SMALL BACKSLASH;;;;
+FE69;SMALL DOLLAR SIGN;Sc;0;ET;<small> 0024;;;;N;;;;;
+FE6A;SMALL PERCENT SIGN;Po;0;ET;<small> 0025;;;;N;;;;;
+FE6B;SMALL COMMERCIAL AT;Po;0;ON;<small> 0040;;;;N;;;;;
+FE70;ARABIC FATHATAN ISOLATED FORM;Lo;0;AL;<isolated> 0020 064B;;;;N;ARABIC SPACING FATHATAN;;;;
+FE71;ARABIC TATWEEL WITH FATHATAN ABOVE;Lo;0;AL;<medial> 0640 064B;;;;N;ARABIC FATHATAN ON TATWEEL;;;;
+FE72;ARABIC DAMMATAN ISOLATED FORM;Lo;0;AL;<isolated> 0020 064C;;;;N;ARABIC SPACING DAMMATAN;;;;
+FE74;ARABIC KASRATAN ISOLATED FORM;Lo;0;AL;<isolated> 0020 064D;;;;N;ARABIC SPACING KASRATAN;;;;
+FE76;ARABIC FATHA ISOLATED FORM;Lo;0;AL;<isolated> 0020 064E;;;;N;ARABIC SPACING FATHAH;;;;
+FE77;ARABIC FATHA MEDIAL FORM;Lo;0;AL;<medial> 0640 064E;;;;N;ARABIC FATHAH ON TATWEEL;;;;
+FE78;ARABIC DAMMA ISOLATED FORM;Lo;0;AL;<isolated> 0020 064F;;;;N;ARABIC SPACING DAMMAH;;;;
+FE79;ARABIC DAMMA MEDIAL FORM;Lo;0;AL;<medial> 0640 064F;;;;N;ARABIC DAMMAH ON TATWEEL;;;;
+FE7A;ARABIC KASRA ISOLATED FORM;Lo;0;AL;<isolated> 0020 0650;;;;N;ARABIC SPACING KASRAH;;;;
+FE7B;ARABIC KASRA MEDIAL FORM;Lo;0;AL;<medial> 0640 0650;;;;N;ARABIC KASRAH ON TATWEEL;;;;
+FE7C;ARABIC SHADDA ISOLATED FORM;Lo;0;AL;<isolated> 0020 0651;;;;N;ARABIC SPACING SHADDAH;;;;
+FE7D;ARABIC SHADDA MEDIAL FORM;Lo;0;AL;<medial> 0640 0651;;;;N;ARABIC SHADDAH ON TATWEEL;;;;
+FE7E;ARABIC SUKUN ISOLATED FORM;Lo;0;AL;<isolated> 0020 0652;;;;N;ARABIC SPACING SUKUN;;;;
+FE7F;ARABIC SUKUN MEDIAL FORM;Lo;0;AL;<medial> 0640 0652;;;;N;ARABIC SUKUN ON TATWEEL;;;;
+FE80;ARABIC LETTER HAMZA ISOLATED FORM;Lo;0;AL;<isolated> 0621;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH;;;;
+FE81;ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 0622;;;;N;GLYPH FOR ISOLATE ARABIC MADDAH ON ALEF;;;;
+FE82;ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM;Lo;0;AL;<final> 0622;;;;N;GLYPH FOR FINAL ARABIC MADDAH ON ALEF;;;;
+FE83;ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 0623;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH ON ALEF;;;;
+FE84;ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM;Lo;0;AL;<final> 0623;;;;N;GLYPH FOR FINAL ARABIC HAMZAH ON ALEF;;;;
+FE85;ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 0624;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH ON WAW;;;;
+FE86;ARABIC LETTER WAW WITH HAMZA ABOVE FINAL FORM;Lo;0;AL;<final> 0624;;;;N;GLYPH FOR FINAL ARABIC HAMZAH ON WAW;;;;
+FE87;ARABIC LETTER ALEF WITH HAMZA BELOW ISOLATED FORM;Lo;0;AL;<isolated> 0625;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH UNDER ALEF;;;;
+FE88;ARABIC LETTER ALEF WITH HAMZA BELOW FINAL FORM;Lo;0;AL;<final> 0625;;;;N;GLYPH FOR FINAL ARABIC HAMZAH UNDER ALEF;;;;
+FE89;ARABIC LETTER YEH WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 0626;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH ON YA;;;;
+FE8A;ARABIC LETTER YEH WITH HAMZA ABOVE FINAL FORM;Lo;0;AL;<final> 0626;;;;N;GLYPH FOR FINAL ARABIC HAMZAH ON YA;;;;
+FE8B;ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM;Lo;0;AL;<initial> 0626;;;;N;GLYPH FOR INITIAL ARABIC HAMZAH ON YA;;;;
+FE8C;ARABIC LETTER YEH WITH HAMZA ABOVE MEDIAL FORM;Lo;0;AL;<medial> 0626;;;;N;GLYPH FOR MEDIAL ARABIC HAMZAH ON YA;;;;
+FE8D;ARABIC LETTER ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0627;;;;N;GLYPH FOR ISOLATE ARABIC ALEF;;;;
+FE8E;ARABIC LETTER ALEF FINAL FORM;Lo;0;AL;<final> 0627;;;;N;GLYPH FOR FINAL ARABIC ALEF;;;;
+FE8F;ARABIC LETTER BEH ISOLATED FORM;Lo;0;AL;<isolated> 0628;;;;N;GLYPH FOR ISOLATE ARABIC BAA;;;;
+FE90;ARABIC LETTER BEH FINAL FORM;Lo;0;AL;<final> 0628;;;;N;GLYPH FOR FINAL ARABIC BAA;;;;
+FE91;ARABIC LETTER BEH INITIAL FORM;Lo;0;AL;<initial> 0628;;;;N;GLYPH FOR INITIAL ARABIC BAA;;;;
+FE92;ARABIC LETTER BEH MEDIAL FORM;Lo;0;AL;<medial> 0628;;;;N;GLYPH FOR MEDIAL ARABIC BAA;;;;
+FE93;ARABIC LETTER TEH MARBUTA ISOLATED FORM;Lo;0;AL;<isolated> 0629;;;;N;GLYPH FOR ISOLATE ARABIC TAA MARBUTAH;;;;
+FE94;ARABIC LETTER TEH MARBUTA FINAL FORM;Lo;0;AL;<final> 0629;;;;N;GLYPH FOR FINAL ARABIC TAA MARBUTAH;;;;
+FE95;ARABIC LETTER TEH ISOLATED FORM;Lo;0;AL;<isolated> 062A;;;;N;GLYPH FOR ISOLATE ARABIC TAA;;;;
+FE96;ARABIC LETTER TEH FINAL FORM;Lo;0;AL;<final> 062A;;;;N;GLYPH FOR FINAL ARABIC TAA;;;;
+FE97;ARABIC LETTER TEH INITIAL FORM;Lo;0;AL;<initial> 062A;;;;N;GLYPH FOR INITIAL ARABIC TAA;;;;
+FE98;ARABIC LETTER TEH MEDIAL FORM;Lo;0;AL;<medial> 062A;;;;N;GLYPH FOR MEDIAL ARABIC TAA;;;;
+FE99;ARABIC LETTER THEH ISOLATED FORM;Lo;0;AL;<isolated> 062B;;;;N;GLYPH FOR ISOLATE ARABIC THAA;;;;
+FE9A;ARABIC LETTER THEH FINAL FORM;Lo;0;AL;<final> 062B;;;;N;GLYPH FOR FINAL ARABIC THAA;;;;
+FE9B;ARABIC LETTER THEH INITIAL FORM;Lo;0;AL;<initial> 062B;;;;N;GLYPH FOR INITIAL ARABIC THAA;;;;
+FE9C;ARABIC LETTER THEH MEDIAL FORM;Lo;0;AL;<medial> 062B;;;;N;GLYPH FOR MEDIAL ARABIC THAA;;;;
+FE9D;ARABIC LETTER JEEM ISOLATED FORM;Lo;0;AL;<isolated> 062C;;;;N;GLYPH FOR ISOLATE ARABIC JEEM;;;;
+FE9E;ARABIC LETTER JEEM FINAL FORM;Lo;0;AL;<final> 062C;;;;N;GLYPH FOR FINAL ARABIC JEEM;;;;
+FE9F;ARABIC LETTER JEEM INITIAL FORM;Lo;0;AL;<initial> 062C;;;;N;GLYPH FOR INITIAL ARABIC JEEM;;;;
+FEA0;ARABIC LETTER JEEM MEDIAL FORM;Lo;0;AL;<medial> 062C;;;;N;GLYPH FOR MEDIAL ARABIC JEEM;;;;
+FEA1;ARABIC LETTER HAH ISOLATED FORM;Lo;0;AL;<isolated> 062D;;;;N;GLYPH FOR ISOLATE ARABIC HAA;;;;
+FEA2;ARABIC LETTER HAH FINAL FORM;Lo;0;AL;<final> 062D;;;;N;GLYPH FOR FINAL ARABIC HAA;;;;
+FEA3;ARABIC LETTER HAH INITIAL FORM;Lo;0;AL;<initial> 062D;;;;N;GLYPH FOR INITIAL ARABIC HAA;;;;
+FEA4;ARABIC LETTER HAH MEDIAL FORM;Lo;0;AL;<medial> 062D;;;;N;GLYPH FOR MEDIAL ARABIC HAA;;;;
+FEA5;ARABIC LETTER KHAH ISOLATED FORM;Lo;0;AL;<isolated> 062E;;;;N;GLYPH FOR ISOLATE ARABIC KHAA;;;;
+FEA6;ARABIC LETTER KHAH FINAL FORM;Lo;0;AL;<final> 062E;;;;N;GLYPH FOR FINAL ARABIC KHAA;;;;
+FEA7;ARABIC LETTER KHAH INITIAL FORM;Lo;0;AL;<initial> 062E;;;;N;GLYPH FOR INITIAL ARABIC KHAA;;;;
+FEA8;ARABIC LETTER KHAH MEDIAL FORM;Lo;0;AL;<medial> 062E;;;;N;GLYPH FOR MEDIAL ARABIC KHAA;;;;
+FEA9;ARABIC LETTER DAL ISOLATED FORM;Lo;0;AL;<isolated> 062F;;;;N;GLYPH FOR ISOLATE ARABIC DAL;;;;
+FEAA;ARABIC LETTER DAL FINAL FORM;Lo;0;AL;<final> 062F;;;;N;GLYPH FOR FINAL ARABIC DAL;;;;
+FEAB;ARABIC LETTER THAL ISOLATED FORM;Lo;0;AL;<isolated> 0630;;;;N;GLYPH FOR ISOLATE ARABIC THAL;;;;
+FEAC;ARABIC LETTER THAL FINAL FORM;Lo;0;AL;<final> 0630;;;;N;GLYPH FOR FINAL ARABIC THAL;;;;
+FEAD;ARABIC LETTER REH ISOLATED FORM;Lo;0;AL;<isolated> 0631;;;;N;GLYPH FOR ISOLATE ARABIC RA;;;;
+FEAE;ARABIC LETTER REH FINAL FORM;Lo;0;AL;<final> 0631;;;;N;GLYPH FOR FINAL ARABIC RA;;;;
+FEAF;ARABIC LETTER ZAIN ISOLATED FORM;Lo;0;AL;<isolated> 0632;;;;N;GLYPH FOR ISOLATE ARABIC ZAIN;;;;
+FEB0;ARABIC LETTER ZAIN FINAL FORM;Lo;0;AL;<final> 0632;;;;N;GLYPH FOR FINAL ARABIC ZAIN;;;;
+FEB1;ARABIC LETTER SEEN ISOLATED FORM;Lo;0;AL;<isolated> 0633;;;;N;GLYPH FOR ISOLATE ARABIC SEEN;;;;
+FEB2;ARABIC LETTER SEEN FINAL FORM;Lo;0;AL;<final> 0633;;;;N;GLYPH FOR FINAL ARABIC SEEN;;;;
+FEB3;ARABIC LETTER SEEN INITIAL FORM;Lo;0;AL;<initial> 0633;;;;N;GLYPH FOR INITIAL ARABIC SEEN;;;;
+FEB4;ARABIC LETTER SEEN MEDIAL FORM;Lo;0;AL;<medial> 0633;;;;N;GLYPH FOR MEDIAL ARABIC SEEN;;;;
+FEB5;ARABIC LETTER SHEEN ISOLATED FORM;Lo;0;AL;<isolated> 0634;;;;N;GLYPH FOR ISOLATE ARABIC SHEEN;;;;
+FEB6;ARABIC LETTER SHEEN FINAL FORM;Lo;0;AL;<final> 0634;;;;N;GLYPH FOR FINAL ARABIC SHEEN;;;;
+FEB7;ARABIC LETTER SHEEN INITIAL FORM;Lo;0;AL;<initial> 0634;;;;N;GLYPH FOR INITIAL ARABIC SHEEN;;;;
+FEB8;ARABIC LETTER SHEEN MEDIAL FORM;Lo;0;AL;<medial> 0634;;;;N;GLYPH FOR MEDIAL ARABIC SHEEN;;;;
+FEB9;ARABIC LETTER SAD ISOLATED FORM;Lo;0;AL;<isolated> 0635;;;;N;GLYPH FOR ISOLATE ARABIC SAD;;;;
+FEBA;ARABIC LETTER SAD FINAL FORM;Lo;0;AL;<final> 0635;;;;N;GLYPH FOR FINAL ARABIC SAD;;;;
+FEBB;ARABIC LETTER SAD INITIAL FORM;Lo;0;AL;<initial> 0635;;;;N;GLYPH FOR INITIAL ARABIC SAD;;;;
+FEBC;ARABIC LETTER SAD MEDIAL FORM;Lo;0;AL;<medial> 0635;;;;N;GLYPH FOR MEDIAL ARABIC SAD;;;;
+FEBD;ARABIC LETTER DAD ISOLATED FORM;Lo;0;AL;<isolated> 0636;;;;N;GLYPH FOR ISOLATE ARABIC DAD;;;;
+FEBE;ARABIC LETTER DAD FINAL FORM;Lo;0;AL;<final> 0636;;;;N;GLYPH FOR FINAL ARABIC DAD;;;;
+FEBF;ARABIC LETTER DAD INITIAL FORM;Lo;0;AL;<initial> 0636;;;;N;GLYPH FOR INITIAL ARABIC DAD;;;;
+FEC0;ARABIC LETTER DAD MEDIAL FORM;Lo;0;AL;<medial> 0636;;;;N;GLYPH FOR MEDIAL ARABIC DAD;;;;
+FEC1;ARABIC LETTER TAH ISOLATED FORM;Lo;0;AL;<isolated> 0637;;;;N;GLYPH FOR ISOLATE ARABIC TAH;;;;
+FEC2;ARABIC LETTER TAH FINAL FORM;Lo;0;AL;<final> 0637;;;;N;GLYPH FOR FINAL ARABIC TAH;;;;
+FEC3;ARABIC LETTER TAH INITIAL FORM;Lo;0;AL;<initial> 0637;;;;N;GLYPH FOR INITIAL ARABIC TAH;;;;
+FEC4;ARABIC LETTER TAH MEDIAL FORM;Lo;0;AL;<medial> 0637;;;;N;GLYPH FOR MEDIAL ARABIC TAH;;;;
+FEC5;ARABIC LETTER ZAH ISOLATED FORM;Lo;0;AL;<isolated> 0638;;;;N;GLYPH FOR ISOLATE ARABIC DHAH;;;;
+FEC6;ARABIC LETTER ZAH FINAL FORM;Lo;0;AL;<final> 0638;;;;N;GLYPH FOR FINAL ARABIC DHAH;;;;
+FEC7;ARABIC LETTER ZAH INITIAL FORM;Lo;0;AL;<initial> 0638;;;;N;GLYPH FOR INITIAL ARABIC DHAH;;;;
+FEC8;ARABIC LETTER ZAH MEDIAL FORM;Lo;0;AL;<medial> 0638;;;;N;GLYPH FOR MEDIAL ARABIC DHAH;;;;
+FEC9;ARABIC LETTER AIN ISOLATED FORM;Lo;0;AL;<isolated> 0639;;;;N;GLYPH FOR ISOLATE ARABIC AIN;;;;
+FECA;ARABIC LETTER AIN FINAL FORM;Lo;0;AL;<final> 0639;;;;N;GLYPH FOR FINAL ARABIC AIN;;;;
+FECB;ARABIC LETTER AIN INITIAL FORM;Lo;0;AL;<initial> 0639;;;;N;GLYPH FOR INITIAL ARABIC AIN;;;;
+FECC;ARABIC LETTER AIN MEDIAL FORM;Lo;0;AL;<medial> 0639;;;;N;GLYPH FOR MEDIAL ARABIC AIN;;;;
+FECD;ARABIC LETTER GHAIN ISOLATED FORM;Lo;0;AL;<isolated> 063A;;;;N;GLYPH FOR ISOLATE ARABIC GHAIN;;;;
+FECE;ARABIC LETTER GHAIN FINAL FORM;Lo;0;AL;<final> 063A;;;;N;GLYPH FOR FINAL ARABIC GHAIN;;;;
+FECF;ARABIC LETTER GHAIN INITIAL FORM;Lo;0;AL;<initial> 063A;;;;N;GLYPH FOR INITIAL ARABIC GHAIN;;;;
+FED0;ARABIC LETTER GHAIN MEDIAL FORM;Lo;0;AL;<medial> 063A;;;;N;GLYPH FOR MEDIAL ARABIC GHAIN;;;;
+FED1;ARABIC LETTER FEH ISOLATED FORM;Lo;0;AL;<isolated> 0641;;;;N;GLYPH FOR ISOLATE ARABIC FA;;;;
+FED2;ARABIC LETTER FEH FINAL FORM;Lo;0;AL;<final> 0641;;;;N;GLYPH FOR FINAL ARABIC FA;;;;
+FED3;ARABIC LETTER FEH INITIAL FORM;Lo;0;AL;<initial> 0641;;;;N;GLYPH FOR INITIAL ARABIC FA;;;;
+FED4;ARABIC LETTER FEH MEDIAL FORM;Lo;0;AL;<medial> 0641;;;;N;GLYPH FOR MEDIAL ARABIC FA;;;;
+FED5;ARABIC LETTER QAF ISOLATED FORM;Lo;0;AL;<isolated> 0642;;;;N;GLYPH FOR ISOLATE ARABIC QAF;;;;
+FED6;ARABIC LETTER QAF FINAL FORM;Lo;0;AL;<final> 0642;;;;N;GLYPH FOR FINAL ARABIC QAF;;;;
+FED7;ARABIC LETTER QAF INITIAL FORM;Lo;0;AL;<initial> 0642;;;;N;GLYPH FOR INITIAL ARABIC QAF;;;;
+FED8;ARABIC LETTER QAF MEDIAL FORM;Lo;0;AL;<medial> 0642;;;;N;GLYPH FOR MEDIAL ARABIC QAF;;;;
+FED9;ARABIC LETTER KAF ISOLATED FORM;Lo;0;AL;<isolated> 0643;;;;N;GLYPH FOR ISOLATE ARABIC CAF;;;;
+FEDA;ARABIC LETTER KAF FINAL FORM;Lo;0;AL;<final> 0643;;;;N;GLYPH FOR FINAL ARABIC CAF;;;;
+FEDB;ARABIC LETTER KAF INITIAL FORM;Lo;0;AL;<initial> 0643;;;;N;GLYPH FOR INITIAL ARABIC CAF;;;;
+FEDC;ARABIC LETTER KAF MEDIAL FORM;Lo;0;AL;<medial> 0643;;;;N;GLYPH FOR MEDIAL ARABIC CAF;;;;
+FEDD;ARABIC LETTER LAM ISOLATED FORM;Lo;0;AL;<isolated> 0644;;;;N;GLYPH FOR ISOLATE ARABIC LAM;;;;
+FEDE;ARABIC LETTER LAM FINAL FORM;Lo;0;AL;<final> 0644;;;;N;GLYPH FOR FINAL ARABIC LAM;;;;
+FEDF;ARABIC LETTER LAM INITIAL FORM;Lo;0;AL;<initial> 0644;;;;N;GLYPH FOR INITIAL ARABIC LAM;;;;
+FEE0;ARABIC LETTER LAM MEDIAL FORM;Lo;0;AL;<medial> 0644;;;;N;GLYPH FOR MEDIAL ARABIC LAM;;;;
+FEE1;ARABIC LETTER MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0645;;;;N;GLYPH FOR ISOLATE ARABIC MEEM;;;;
+FEE2;ARABIC LETTER MEEM FINAL FORM;Lo;0;AL;<final> 0645;;;;N;GLYPH FOR FINAL ARABIC MEEM;;;;
+FEE3;ARABIC LETTER MEEM INITIAL FORM;Lo;0;AL;<initial> 0645;;;;N;GLYPH FOR INITIAL ARABIC MEEM;;;;
+FEE4;ARABIC LETTER MEEM MEDIAL FORM;Lo;0;AL;<medial> 0645;;;;N;GLYPH FOR MEDIAL ARABIC MEEM;;;;
+FEE5;ARABIC LETTER NOON ISOLATED FORM;Lo;0;AL;<isolated> 0646;;;;N;GLYPH FOR ISOLATE ARABIC NOON;;;;
+FEE6;ARABIC LETTER NOON FINAL FORM;Lo;0;AL;<final> 0646;;;;N;GLYPH FOR FINAL ARABIC NOON;;;;
+FEE7;ARABIC LETTER NOON INITIAL FORM;Lo;0;AL;<initial> 0646;;;;N;GLYPH FOR INITIAL ARABIC NOON;;;;
+FEE8;ARABIC LETTER NOON MEDIAL FORM;Lo;0;AL;<medial> 0646;;;;N;GLYPH FOR MEDIAL ARABIC NOON;;;;
+FEE9;ARABIC LETTER HEH ISOLATED FORM;Lo;0;AL;<isolated> 0647;;;;N;GLYPH FOR ISOLATE ARABIC HA;;;;
+FEEA;ARABIC LETTER HEH FINAL FORM;Lo;0;AL;<final> 0647;;;;N;GLYPH FOR FINAL ARABIC HA;;;;
+FEEB;ARABIC LETTER HEH INITIAL FORM;Lo;0;AL;<initial> 0647;;;;N;GLYPH FOR INITIAL ARABIC HA;;;;
+FEEC;ARABIC LETTER HEH MEDIAL FORM;Lo;0;AL;<medial> 0647;;;;N;GLYPH FOR MEDIAL ARABIC HA;;;;
+FEED;ARABIC LETTER WAW ISOLATED FORM;Lo;0;AL;<isolated> 0648;;;;N;GLYPH FOR ISOLATE ARABIC WAW;;;;
+FEEE;ARABIC LETTER WAW FINAL FORM;Lo;0;AL;<final> 0648;;;;N;GLYPH FOR FINAL ARABIC WAW;;;;
+FEEF;ARABIC LETTER ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0649;;;;N;GLYPH FOR ISOLATE ARABIC ALEF MAQSURAH;;;;
+FEF0;ARABIC LETTER ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0649;;;;N;GLYPH FOR FINAL ARABIC ALEF MAQSURAH;;;;
+FEF1;ARABIC LETTER YEH ISOLATED FORM;Lo;0;AL;<isolated> 064A;;;;N;GLYPH FOR ISOLATE ARABIC YA;;;;
+FEF2;ARABIC LETTER YEH FINAL FORM;Lo;0;AL;<final> 064A;;;;N;GLYPH FOR FINAL ARABIC YA;;;;
+FEF3;ARABIC LETTER YEH INITIAL FORM;Lo;0;AL;<initial> 064A;;;;N;GLYPH FOR INITIAL ARABIC YA;;;;
+FEF4;ARABIC LETTER YEH MEDIAL FORM;Lo;0;AL;<medial> 064A;;;;N;GLYPH FOR MEDIAL ARABIC YA;;;;
+FEF5;ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 0644 0622;;;;N;GLYPH FOR ISOLATE ARABIC MADDAH ON LIGATURE LAM ALEF;;;;
+FEF6;ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM;Lo;0;AL;<final> 0644 0622;;;;N;GLYPH FOR FINAL ARABIC MADDAH ON LIGATURE LAM ALEF;;;;
+FEF7;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 0644 0623;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH ON LIGATURE LAM ALEF;;;;
+FEF8;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM;Lo;0;AL;<final> 0644 0623;;;;N;GLYPH FOR FINAL ARABIC HAMZAH ON LIGATURE LAM ALEF;;;;
+FEF9;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM;Lo;0;AL;<isolated> 0644 0625;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH UNDER LIGATURE LAM ALEF;;;;
+FEFA;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM;Lo;0;AL;<final> 0644 0625;;;;N;GLYPH FOR FINAL ARABIC HAMZAH UNDER LIGATURE LAM ALEF;;;;
+FEFB;ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0644 0627;;;;N;GLYPH FOR ISOLATE ARABIC LIGATURE LAM ALEF;;;;
+FEFC;ARABIC LIGATURE LAM WITH ALEF FINAL FORM;Lo;0;AL;<final> 0644 0627;;;;N;GLYPH FOR FINAL ARABIC LIGATURE LAM ALEF;;;;
+FEFF;ZERO WIDTH NO-BREAK SPACE;Cf;0;BN;;;;;N;BYTE ORDER MARK;;;;
+FF01;FULLWIDTH EXCLAMATION MARK;Po;0;ON;<wide> 0021;;;;N;;;;;
+FF02;FULLWIDTH QUOTATION MARK;Po;0;ON;<wide> 0022;;;;N;;;;;
+FF03;FULLWIDTH NUMBER SIGN;Po;0;ET;<wide> 0023;;;;N;;;;;
+FF04;FULLWIDTH DOLLAR SIGN;Sc;0;ET;<wide> 0024;;;;N;;;;;
+FF05;FULLWIDTH PERCENT SIGN;Po;0;ET;<wide> 0025;;;;N;;;;;
+FF06;FULLWIDTH AMPERSAND;Po;0;ON;<wide> 0026;;;;N;;;;;
+FF07;FULLWIDTH APOSTROPHE;Po;0;ON;<wide> 0027;;;;N;;;;;
+FF08;FULLWIDTH LEFT PARENTHESIS;Ps;0;ON;<wide> 0028;;;;N;FULLWIDTH OPENING PARENTHESIS;;;;
+FF09;FULLWIDTH RIGHT PARENTHESIS;Pe;0;ON;<wide> 0029;;;;N;FULLWIDTH CLOSING PARENTHESIS;;;;
+FF0A;FULLWIDTH ASTERISK;Po;0;ON;<wide> 002A;;;;N;;;;;
+FF0B;FULLWIDTH PLUS SIGN;Sm;0;ET;<wide> 002B;;;;N;;;;;
+FF0C;FULLWIDTH COMMA;Po;0;CS;<wide> 002C;;;;N;;;;;
+FF0D;FULLWIDTH HYPHEN-MINUS;Pd;0;ET;<wide> 002D;;;;N;;;;;
+FF0E;FULLWIDTH FULL STOP;Po;0;CS;<wide> 002E;;;;N;FULLWIDTH PERIOD;;;;
+FF0F;FULLWIDTH SOLIDUS;Po;0;ES;<wide> 002F;;;;N;FULLWIDTH SLASH;;;;
+FF10;FULLWIDTH DIGIT ZERO;Nd;0;EN;<wide> 0030;0;0;0;N;;;;;
+FF11;FULLWIDTH DIGIT ONE;Nd;0;EN;<wide> 0031;1;1;1;N;;;;;
+FF12;FULLWIDTH DIGIT TWO;Nd;0;EN;<wide> 0032;2;2;2;N;;;;;
+FF13;FULLWIDTH DIGIT THREE;Nd;0;EN;<wide> 0033;3;3;3;N;;;;;
+FF14;FULLWIDTH DIGIT FOUR;Nd;0;EN;<wide> 0034;4;4;4;N;;;;;
+FF15;FULLWIDTH DIGIT FIVE;Nd;0;EN;<wide> 0035;5;5;5;N;;;;;
+FF16;FULLWIDTH DIGIT SIX;Nd;0;EN;<wide> 0036;6;6;6;N;;;;;
+FF17;FULLWIDTH DIGIT SEVEN;Nd;0;EN;<wide> 0037;7;7;7;N;;;;;
+FF18;FULLWIDTH DIGIT EIGHT;Nd;0;EN;<wide> 0038;8;8;8;N;;;;;
+FF19;FULLWIDTH DIGIT NINE;Nd;0;EN;<wide> 0039;9;9;9;N;;;;;
+FF1A;FULLWIDTH COLON;Po;0;CS;<wide> 003A;;;;N;;;;;
+FF1B;FULLWIDTH SEMICOLON;Po;0;ON;<wide> 003B;;;;N;;;;;
+FF1C;FULLWIDTH LESS-THAN SIGN;Sm;0;ON;<wide> 003C;;;;N;;;;;
+FF1D;FULLWIDTH EQUALS SIGN;Sm;0;ON;<wide> 003D;;;;N;;;;;
+FF1E;FULLWIDTH GREATER-THAN SIGN;Sm;0;ON;<wide> 003E;;;;N;;;;;
+FF1F;FULLWIDTH QUESTION MARK;Po;0;ON;<wide> 003F;;;;N;;;;;
+FF20;FULLWIDTH COMMERCIAL AT;Po;0;ON;<wide> 0040;;;;N;;;;;
+FF21;FULLWIDTH LATIN CAPITAL LETTER A;Lu;0;L;<wide> 0041;;;;N;;;;FF41;
+FF22;FULLWIDTH LATIN CAPITAL LETTER B;Lu;0;L;<wide> 0042;;;;N;;;;FF42;
+FF23;FULLWIDTH LATIN CAPITAL LETTER C;Lu;0;L;<wide> 0043;;;;N;;;;FF43;
+FF24;FULLWIDTH LATIN CAPITAL LETTER D;Lu;0;L;<wide> 0044;;;;N;;;;FF44;
+FF25;FULLWIDTH LATIN CAPITAL LETTER E;Lu;0;L;<wide> 0045;;;;N;;;;FF45;
+FF26;FULLWIDTH LATIN CAPITAL LETTER F;Lu;0;L;<wide> 0046;;;;N;;;;FF46;
+FF27;FULLWIDTH LATIN CAPITAL LETTER G;Lu;0;L;<wide> 0047;;;;N;;;;FF47;
+FF28;FULLWIDTH LATIN CAPITAL LETTER H;Lu;0;L;<wide> 0048;;;;N;;;;FF48;
+FF29;FULLWIDTH LATIN CAPITAL LETTER I;Lu;0;L;<wide> 0049;;;;N;;;;FF49;
+FF2A;FULLWIDTH LATIN CAPITAL LETTER J;Lu;0;L;<wide> 004A;;;;N;;;;FF4A;
+FF2B;FULLWIDTH LATIN CAPITAL LETTER K;Lu;0;L;<wide> 004B;;;;N;;;;FF4B;
+FF2C;FULLWIDTH LATIN CAPITAL LETTER L;Lu;0;L;<wide> 004C;;;;N;;;;FF4C;
+FF2D;FULLWIDTH LATIN CAPITAL LETTER M;Lu;0;L;<wide> 004D;;;;N;;;;FF4D;
+FF2E;FULLWIDTH LATIN CAPITAL LETTER N;Lu;0;L;<wide> 004E;;;;N;;;;FF4E;
+FF2F;FULLWIDTH LATIN CAPITAL LETTER O;Lu;0;L;<wide> 004F;;;;N;;;;FF4F;
+FF30;FULLWIDTH LATIN CAPITAL LETTER P;Lu;0;L;<wide> 0050;;;;N;;;;FF50;
+FF31;FULLWIDTH LATIN CAPITAL LETTER Q;Lu;0;L;<wide> 0051;;;;N;;;;FF51;
+FF32;FULLWIDTH LATIN CAPITAL LETTER R;Lu;0;L;<wide> 0052;;;;N;;;;FF52;
+FF33;FULLWIDTH LATIN CAPITAL LETTER S;Lu;0;L;<wide> 0053;;;;N;;;;FF53;
+FF34;FULLWIDTH LATIN CAPITAL LETTER T;Lu;0;L;<wide> 0054;;;;N;;;;FF54;
+FF35;FULLWIDTH LATIN CAPITAL LETTER U;Lu;0;L;<wide> 0055;;;;N;;;;FF55;
+FF36;FULLWIDTH LATIN CAPITAL LETTER V;Lu;0;L;<wide> 0056;;;;N;;;;FF56;
+FF37;FULLWIDTH LATIN CAPITAL LETTER W;Lu;0;L;<wide> 0057;;;;N;;;;FF57;
+FF38;FULLWIDTH LATIN CAPITAL LETTER X;Lu;0;L;<wide> 0058;;;;N;;;;FF58;
+FF39;FULLWIDTH LATIN CAPITAL LETTER Y;Lu;0;L;<wide> 0059;;;;N;;;;FF59;
+FF3A;FULLWIDTH LATIN CAPITAL LETTER Z;Lu;0;L;<wide> 005A;;;;N;;;;FF5A;
+FF3B;FULLWIDTH LEFT SQUARE BRACKET;Ps;0;ON;<wide> 005B;;;;N;FULLWIDTH OPENING SQUARE BRACKET;;;;
+FF3C;FULLWIDTH REVERSE SOLIDUS;Po;0;ON;<wide> 005C;;;;N;FULLWIDTH BACKSLASH;;;;
+FF3D;FULLWIDTH RIGHT SQUARE BRACKET;Pe;0;ON;<wide> 005D;;;;N;FULLWIDTH CLOSING SQUARE BRACKET;;;;
+FF3E;FULLWIDTH CIRCUMFLEX ACCENT;Sk;0;ON;<wide> 005E;;;;N;FULLWIDTH SPACING CIRCUMFLEX;;;;
+FF3F;FULLWIDTH LOW LINE;Pc;0;ON;<wide> 005F;;;;N;FULLWIDTH SPACING UNDERSCORE;;;;
+FF40;FULLWIDTH GRAVE ACCENT;Sk;0;ON;<wide> 0060;;;;N;FULLWIDTH SPACING GRAVE;;;;
+FF41;FULLWIDTH LATIN SMALL LETTER A;Ll;0;L;<wide> 0061;;;;N;;;FF21;;FF21
+FF42;FULLWIDTH LATIN SMALL LETTER B;Ll;0;L;<wide> 0062;;;;N;;;FF22;;FF22
+FF43;FULLWIDTH LATIN SMALL LETTER C;Ll;0;L;<wide> 0063;;;;N;;;FF23;;FF23
+FF44;FULLWIDTH LATIN SMALL LETTER D;Ll;0;L;<wide> 0064;;;;N;;;FF24;;FF24
+FF45;FULLWIDTH LATIN SMALL LETTER E;Ll;0;L;<wide> 0065;;;;N;;;FF25;;FF25
+FF46;FULLWIDTH LATIN SMALL LETTER F;Ll;0;L;<wide> 0066;;;;N;;;FF26;;FF26
+FF47;FULLWIDTH LATIN SMALL LETTER G;Ll;0;L;<wide> 0067;;;;N;;;FF27;;FF27
+FF48;FULLWIDTH LATIN SMALL LETTER H;Ll;0;L;<wide> 0068;;;;N;;;FF28;;FF28
+FF49;FULLWIDTH LATIN SMALL LETTER I;Ll;0;L;<wide> 0069;;;;N;;;FF29;;FF29
+FF4A;FULLWIDTH LATIN SMALL LETTER J;Ll;0;L;<wide> 006A;;;;N;;;FF2A;;FF2A
+FF4B;FULLWIDTH LATIN SMALL LETTER K;Ll;0;L;<wide> 006B;;;;N;;;FF2B;;FF2B
+FF4C;FULLWIDTH LATIN SMALL LETTER L;Ll;0;L;<wide> 006C;;;;N;;;FF2C;;FF2C
+FF4D;FULLWIDTH LATIN SMALL LETTER M;Ll;0;L;<wide> 006D;;;;N;;;FF2D;;FF2D
+FF4E;FULLWIDTH LATIN SMALL LETTER N;Ll;0;L;<wide> 006E;;;;N;;;FF2E;;FF2E
+FF4F;FULLWIDTH LATIN SMALL LETTER O;Ll;0;L;<wide> 006F;;;;N;;;FF2F;;FF2F
+FF50;FULLWIDTH LATIN SMALL LETTER P;Ll;0;L;<wide> 0070;;;;N;;;FF30;;FF30
+FF51;FULLWIDTH LATIN SMALL LETTER Q;Ll;0;L;<wide> 0071;;;;N;;;FF31;;FF31
+FF52;FULLWIDTH LATIN SMALL LETTER R;Ll;0;L;<wide> 0072;;;;N;;;FF32;;FF32
+FF53;FULLWIDTH LATIN SMALL LETTER S;Ll;0;L;<wide> 0073;;;;N;;;FF33;;FF33
+FF54;FULLWIDTH LATIN SMALL LETTER T;Ll;0;L;<wide> 0074;;;;N;;;FF34;;FF34
+FF55;FULLWIDTH LATIN SMALL LETTER U;Ll;0;L;<wide> 0075;;;;N;;;FF35;;FF35
+FF56;FULLWIDTH LATIN SMALL LETTER V;Ll;0;L;<wide> 0076;;;;N;;;FF36;;FF36
+FF57;FULLWIDTH LATIN SMALL LETTER W;Ll;0;L;<wide> 0077;;;;N;;;FF37;;FF37
+FF58;FULLWIDTH LATIN SMALL LETTER X;Ll;0;L;<wide> 0078;;;;N;;;FF38;;FF38
+FF59;FULLWIDTH LATIN SMALL LETTER Y;Ll;0;L;<wide> 0079;;;;N;;;FF39;;FF39
+FF5A;FULLWIDTH LATIN SMALL LETTER Z;Ll;0;L;<wide> 007A;;;;N;;;FF3A;;FF3A
+FF5B;FULLWIDTH LEFT CURLY BRACKET;Ps;0;ON;<wide> 007B;;;;N;FULLWIDTH OPENING CURLY BRACKET;;;;
+FF5C;FULLWIDTH VERTICAL LINE;Sm;0;ON;<wide> 007C;;;;N;FULLWIDTH VERTICAL BAR;;;;
+FF5D;FULLWIDTH RIGHT CURLY BRACKET;Pe;0;ON;<wide> 007D;;;;N;FULLWIDTH CLOSING CURLY BRACKET;;;;
+FF5E;FULLWIDTH TILDE;Sm;0;ON;<wide> 007E;;;;N;FULLWIDTH SPACING TILDE;;;;
+FF61;HALFWIDTH IDEOGRAPHIC FULL STOP;Po;0;ON;<narrow> 3002;;;;N;HALFWIDTH IDEOGRAPHIC PERIOD;;;;
+FF62;HALFWIDTH LEFT CORNER BRACKET;Ps;0;ON;<narrow> 300C;;;;N;HALFWIDTH OPENING CORNER BRACKET;;;;
+FF63;HALFWIDTH RIGHT CORNER BRACKET;Pe;0;ON;<narrow> 300D;;;;N;HALFWIDTH CLOSING CORNER BRACKET;;;;
+FF64;HALFWIDTH IDEOGRAPHIC COMMA;Po;0;ON;<narrow> 3001;;;;N;;;;;
+FF65;HALFWIDTH KATAKANA MIDDLE DOT;Pc;0;ON;<narrow> 30FB;;;;N;;;;;
+FF66;HALFWIDTH KATAKANA LETTER WO;Lo;0;L;<narrow> 30F2;;;;N;;;;;
+FF67;HALFWIDTH KATAKANA LETTER SMALL A;Lo;0;L;<narrow> 30A1;;;;N;;;;;
+FF68;HALFWIDTH KATAKANA LETTER SMALL I;Lo;0;L;<narrow> 30A3;;;;N;;;;;
+FF69;HALFWIDTH KATAKANA LETTER SMALL U;Lo;0;L;<narrow> 30A5;;;;N;;;;;
+FF6A;HALFWIDTH KATAKANA LETTER SMALL E;Lo;0;L;<narrow> 30A7;;;;N;;;;;
+FF6B;HALFWIDTH KATAKANA LETTER SMALL O;Lo;0;L;<narrow> 30A9;;;;N;;;;;
+FF6C;HALFWIDTH KATAKANA LETTER SMALL YA;Lo;0;L;<narrow> 30E3;;;;N;;;;;
+FF6D;HALFWIDTH KATAKANA LETTER SMALL YU;Lo;0;L;<narrow> 30E5;;;;N;;;;;
+FF6E;HALFWIDTH KATAKANA LETTER SMALL YO;Lo;0;L;<narrow> 30E7;;;;N;;;;;
+FF6F;HALFWIDTH KATAKANA LETTER SMALL TU;Lo;0;L;<narrow> 30C3;;;;N;;;;;
+FF70;HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK;Lm;0;L;<narrow> 30FC;;;;N;;;;;
+FF71;HALFWIDTH KATAKANA LETTER A;Lo;0;L;<narrow> 30A2;;;;N;;;;;
+FF72;HALFWIDTH KATAKANA LETTER I;Lo;0;L;<narrow> 30A4;;;;N;;;;;
+FF73;HALFWIDTH KATAKANA LETTER U;Lo;0;L;<narrow> 30A6;;;;N;;;;;
+FF74;HALFWIDTH KATAKANA LETTER E;Lo;0;L;<narrow> 30A8;;;;N;;;;;
+FF75;HALFWIDTH KATAKANA LETTER O;Lo;0;L;<narrow> 30AA;;;;N;;;;;
+FF76;HALFWIDTH KATAKANA LETTER KA;Lo;0;L;<narrow> 30AB;;;;N;;;;;
+FF77;HALFWIDTH KATAKANA LETTER KI;Lo;0;L;<narrow> 30AD;;;;N;;;;;
+FF78;HALFWIDTH KATAKANA LETTER KU;Lo;0;L;<narrow> 30AF;;;;N;;;;;
+FF79;HALFWIDTH KATAKANA LETTER KE;Lo;0;L;<narrow> 30B1;;;;N;;;;;
+FF7A;HALFWIDTH KATAKANA LETTER KO;Lo;0;L;<narrow> 30B3;;;;N;;;;;
+FF7B;HALFWIDTH KATAKANA LETTER SA;Lo;0;L;<narrow> 30B5;;;;N;;;;;
+FF7C;HALFWIDTH KATAKANA LETTER SI;Lo;0;L;<narrow> 30B7;;;;N;;;;;
+FF7D;HALFWIDTH KATAKANA LETTER SU;Lo;0;L;<narrow> 30B9;;;;N;;;;;
+FF7E;HALFWIDTH KATAKANA LETTER SE;Lo;0;L;<narrow> 30BB;;;;N;;;;;
+FF7F;HALFWIDTH KATAKANA LETTER SO;Lo;0;L;<narrow> 30BD;;;;N;;;;;
+FF80;HALFWIDTH KATAKANA LETTER TA;Lo;0;L;<narrow> 30BF;;;;N;;;;;
+FF81;HALFWIDTH KATAKANA LETTER TI;Lo;0;L;<narrow> 30C1;;;;N;;;;;
+FF82;HALFWIDTH KATAKANA LETTER TU;Lo;0;L;<narrow> 30C4;;;;N;;;;;
+FF83;HALFWIDTH KATAKANA LETTER TE;Lo;0;L;<narrow> 30C6;;;;N;;;;;
+FF84;HALFWIDTH KATAKANA LETTER TO;Lo;0;L;<narrow> 30C8;;;;N;;;;;
+FF85;HALFWIDTH KATAKANA LETTER NA;Lo;0;L;<narrow> 30CA;;;;N;;;;;
+FF86;HALFWIDTH KATAKANA LETTER NI;Lo;0;L;<narrow> 30CB;;;;N;;;;;
+FF87;HALFWIDTH KATAKANA LETTER NU;Lo;0;L;<narrow> 30CC;;;;N;;;;;
+FF88;HALFWIDTH KATAKANA LETTER NE;Lo;0;L;<narrow> 30CD;;;;N;;;;;
+FF89;HALFWIDTH KATAKANA LETTER NO;Lo;0;L;<narrow> 30CE;;;;N;;;;;
+FF8A;HALFWIDTH KATAKANA LETTER HA;Lo;0;L;<narrow> 30CF;;;;N;;;;;
+FF8B;HALFWIDTH KATAKANA LETTER HI;Lo;0;L;<narrow> 30D2;;;;N;;;;;
+FF8C;HALFWIDTH KATAKANA LETTER HU;Lo;0;L;<narrow> 30D5;;;;N;;;;;
+FF8D;HALFWIDTH KATAKANA LETTER HE;Lo;0;L;<narrow> 30D8;;;;N;;;;;
+FF8E;HALFWIDTH KATAKANA LETTER HO;Lo;0;L;<narrow> 30DB;;;;N;;;;;
+FF8F;HALFWIDTH KATAKANA LETTER MA;Lo;0;L;<narrow> 30DE;;;;N;;;;;
+FF90;HALFWIDTH KATAKANA LETTER MI;Lo;0;L;<narrow> 30DF;;;;N;;;;;
+FF91;HALFWIDTH KATAKANA LETTER MU;Lo;0;L;<narrow> 30E0;;;;N;;;;;
+FF92;HALFWIDTH KATAKANA LETTER ME;Lo;0;L;<narrow> 30E1;;;;N;;;;;
+FF93;HALFWIDTH KATAKANA LETTER MO;Lo;0;L;<narrow> 30E2;;;;N;;;;;
+FF94;HALFWIDTH KATAKANA LETTER YA;Lo;0;L;<narrow> 30E4;;;;N;;;;;
+FF95;HALFWIDTH KATAKANA LETTER YU;Lo;0;L;<narrow> 30E6;;;;N;;;;;
+FF96;HALFWIDTH KATAKANA LETTER YO;Lo;0;L;<narrow> 30E8;;;;N;;;;;
+FF97;HALFWIDTH KATAKANA LETTER RA;Lo;0;L;<narrow> 30E9;;;;N;;;;;
+FF98;HALFWIDTH KATAKANA LETTER RI;Lo;0;L;<narrow> 30EA;;;;N;;;;;
+FF99;HALFWIDTH KATAKANA LETTER RU;Lo;0;L;<narrow> 30EB;;;;N;;;;;
+FF9A;HALFWIDTH KATAKANA LETTER RE;Lo;0;L;<narrow> 30EC;;;;N;;;;;
+FF9B;HALFWIDTH KATAKANA LETTER RO;Lo;0;L;<narrow> 30ED;;;;N;;;;;
+FF9C;HALFWIDTH KATAKANA LETTER WA;Lo;0;L;<narrow> 30EF;;;;N;;;;;
+FF9D;HALFWIDTH KATAKANA LETTER N;Lo;0;L;<narrow> 30F3;;;;N;;;;;
+FF9E;HALFWIDTH KATAKANA VOICED SOUND MARK;Lm;0;L;<narrow> 3099;;;;N;;halfwidth katakana-hiragana voiced sound mark;;;
+FF9F;HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK;Lm;0;L;<narrow> 309A;;;;N;;halfwidth katakana-hiragana semi-voiced sound mark;;;
+FFA0;HALFWIDTH HANGUL FILLER;Lo;0;L;<narrow> 3164;;;;N;HALFWIDTH HANGUL CAE OM;;;;
+FFA1;HALFWIDTH HANGUL LETTER KIYEOK;Lo;0;L;<narrow> 3131;;;;N;HALFWIDTH HANGUL LETTER GIYEOG;;;;
+FFA2;HALFWIDTH HANGUL LETTER SSANGKIYEOK;Lo;0;L;<narrow> 3132;;;;N;HALFWIDTH HANGUL LETTER SSANG GIYEOG;;;;
+FFA3;HALFWIDTH HANGUL LETTER KIYEOK-SIOS;Lo;0;L;<narrow> 3133;;;;N;HALFWIDTH HANGUL LETTER GIYEOG SIOS;;;;
+FFA4;HALFWIDTH HANGUL LETTER NIEUN;Lo;0;L;<narrow> 3134;;;;N;;;;;
+FFA5;HALFWIDTH HANGUL LETTER NIEUN-CIEUC;Lo;0;L;<narrow> 3135;;;;N;HALFWIDTH HANGUL LETTER NIEUN JIEUJ;;;;
+FFA6;HALFWIDTH HANGUL LETTER NIEUN-HIEUH;Lo;0;L;<narrow> 3136;;;;N;HALFWIDTH HANGUL LETTER NIEUN HIEUH;;;;
+FFA7;HALFWIDTH HANGUL LETTER TIKEUT;Lo;0;L;<narrow> 3137;;;;N;HALFWIDTH HANGUL LETTER DIGEUD;;;;
+FFA8;HALFWIDTH HANGUL LETTER SSANGTIKEUT;Lo;0;L;<narrow> 3138;;;;N;HALFWIDTH HANGUL LETTER SSANG DIGEUD;;;;
+FFA9;HALFWIDTH HANGUL LETTER RIEUL;Lo;0;L;<narrow> 3139;;;;N;HALFWIDTH HANGUL LETTER LIEUL;;;;
+FFAA;HALFWIDTH HANGUL LETTER RIEUL-KIYEOK;Lo;0;L;<narrow> 313A;;;;N;HALFWIDTH HANGUL LETTER LIEUL GIYEOG;;;;
+FFAB;HALFWIDTH HANGUL LETTER RIEUL-MIEUM;Lo;0;L;<narrow> 313B;;;;N;HALFWIDTH HANGUL LETTER LIEUL MIEUM;;;;
+FFAC;HALFWIDTH HANGUL LETTER RIEUL-PIEUP;Lo;0;L;<narrow> 313C;;;;N;HALFWIDTH HANGUL LETTER LIEUL BIEUB;;;;
+FFAD;HALFWIDTH HANGUL LETTER RIEUL-SIOS;Lo;0;L;<narrow> 313D;;;;N;HALFWIDTH HANGUL LETTER LIEUL SIOS;;;;
+FFAE;HALFWIDTH HANGUL LETTER RIEUL-THIEUTH;Lo;0;L;<narrow> 313E;;;;N;HALFWIDTH HANGUL LETTER LIEUL TIEUT;;;;
+FFAF;HALFWIDTH HANGUL LETTER RIEUL-PHIEUPH;Lo;0;L;<narrow> 313F;;;;N;HALFWIDTH HANGUL LETTER LIEUL PIEUP;;;;
+FFB0;HALFWIDTH HANGUL LETTER RIEUL-HIEUH;Lo;0;L;<narrow> 3140;;;;N;HALFWIDTH HANGUL LETTER LIEUL HIEUH;;;;
+FFB1;HALFWIDTH HANGUL LETTER MIEUM;Lo;0;L;<narrow> 3141;;;;N;;;;;
+FFB2;HALFWIDTH HANGUL LETTER PIEUP;Lo;0;L;<narrow> 3142;;;;N;HALFWIDTH HANGUL LETTER BIEUB;;;;
+FFB3;HALFWIDTH HANGUL LETTER SSANGPIEUP;Lo;0;L;<narrow> 3143;;;;N;HALFWIDTH HANGUL LETTER SSANG BIEUB;;;;
+FFB4;HALFWIDTH HANGUL LETTER PIEUP-SIOS;Lo;0;L;<narrow> 3144;;;;N;HALFWIDTH HANGUL LETTER BIEUB SIOS;;;;
+FFB5;HALFWIDTH HANGUL LETTER SIOS;Lo;0;L;<narrow> 3145;;;;N;;;;;
+FFB6;HALFWIDTH HANGUL LETTER SSANGSIOS;Lo;0;L;<narrow> 3146;;;;N;HALFWIDTH HANGUL LETTER SSANG SIOS;;;;
+FFB7;HALFWIDTH HANGUL LETTER IEUNG;Lo;0;L;<narrow> 3147;;;;N;;;;;
+FFB8;HALFWIDTH HANGUL LETTER CIEUC;Lo;0;L;<narrow> 3148;;;;N;HALFWIDTH HANGUL LETTER JIEUJ;;;;
+FFB9;HALFWIDTH HANGUL LETTER SSANGCIEUC;Lo;0;L;<narrow> 3149;;;;N;HALFWIDTH HANGUL LETTER SSANG JIEUJ;;;;
+FFBA;HALFWIDTH HANGUL LETTER CHIEUCH;Lo;0;L;<narrow> 314A;;;;N;HALFWIDTH HANGUL LETTER CIEUC;;;;
+FFBB;HALFWIDTH HANGUL LETTER KHIEUKH;Lo;0;L;<narrow> 314B;;;;N;HALFWIDTH HANGUL LETTER KIYEOK;;;;
+FFBC;HALFWIDTH HANGUL LETTER THIEUTH;Lo;0;L;<narrow> 314C;;;;N;HALFWIDTH HANGUL LETTER TIEUT;;;;
+FFBD;HALFWIDTH HANGUL LETTER PHIEUPH;Lo;0;L;<narrow> 314D;;;;N;HALFWIDTH HANGUL LETTER PIEUP;;;;
+FFBE;HALFWIDTH HANGUL LETTER HIEUH;Lo;0;L;<narrow> 314E;;;;N;;;;;
+FFC2;HALFWIDTH HANGUL LETTER A;Lo;0;L;<narrow> 314F;;;;N;;;;;
+FFC3;HALFWIDTH HANGUL LETTER AE;Lo;0;L;<narrow> 3150;;;;N;;;;;
+FFC4;HALFWIDTH HANGUL LETTER YA;Lo;0;L;<narrow> 3151;;;;N;;;;;
+FFC5;HALFWIDTH HANGUL LETTER YAE;Lo;0;L;<narrow> 3152;;;;N;;;;;
+FFC6;HALFWIDTH HANGUL LETTER EO;Lo;0;L;<narrow> 3153;;;;N;;;;;
+FFC7;HALFWIDTH HANGUL LETTER E;Lo;0;L;<narrow> 3154;;;;N;;;;;
+FFCA;HALFWIDTH HANGUL LETTER YEO;Lo;0;L;<narrow> 3155;;;;N;;;;;
+FFCB;HALFWIDTH HANGUL LETTER YE;Lo;0;L;<narrow> 3156;;;;N;;;;;
+FFCC;HALFWIDTH HANGUL LETTER O;Lo;0;L;<narrow> 3157;;;;N;;;;;
+FFCD;HALFWIDTH HANGUL LETTER WA;Lo;0;L;<narrow> 3158;;;;N;;;;;
+FFCE;HALFWIDTH HANGUL LETTER WAE;Lo;0;L;<narrow> 3159;;;;N;;;;;
+FFCF;HALFWIDTH HANGUL LETTER OE;Lo;0;L;<narrow> 315A;;;;N;;;;;
+FFD2;HALFWIDTH HANGUL LETTER YO;Lo;0;L;<narrow> 315B;;;;N;;;;;
+FFD3;HALFWIDTH HANGUL LETTER U;Lo;0;L;<narrow> 315C;;;;N;;;;;
+FFD4;HALFWIDTH HANGUL LETTER WEO;Lo;0;L;<narrow> 315D;;;;N;;;;;
+FFD5;HALFWIDTH HANGUL LETTER WE;Lo;0;L;<narrow> 315E;;;;N;;;;;
+FFD6;HALFWIDTH HANGUL LETTER WI;Lo;0;L;<narrow> 315F;;;;N;;;;;
+FFD7;HALFWIDTH HANGUL LETTER YU;Lo;0;L;<narrow> 3160;;;;N;;;;;
+FFDA;HALFWIDTH HANGUL LETTER EU;Lo;0;L;<narrow> 3161;;;;N;;;;;
+FFDB;HALFWIDTH HANGUL LETTER YI;Lo;0;L;<narrow> 3162;;;;N;;;;;
+FFDC;HALFWIDTH HANGUL LETTER I;Lo;0;L;<narrow> 3163;;;;N;;;;;
+FFE0;FULLWIDTH CENT SIGN;Sc;0;ET;<wide> 00A2;;;;N;;;;;
+FFE1;FULLWIDTH POUND SIGN;Sc;0;ET;<wide> 00A3;;;;N;;;;;
+FFE2;FULLWIDTH NOT SIGN;Sm;0;ON;<wide> 00AC;;;;N;;;;;
+FFE3;FULLWIDTH MACRON;Sk;0;ON;<wide> 00AF;;;;N;FULLWIDTH SPACING MACRON;*;;;
+FFE4;FULLWIDTH BROKEN BAR;So;0;ON;<wide> 00A6;;;;N;FULLWIDTH BROKEN VERTICAL BAR;;;;
+FFE5;FULLWIDTH YEN SIGN;Sc;0;ET;<wide> 00A5;;;;N;;;;;
+FFE6;FULLWIDTH WON SIGN;Sc;0;ET;<wide> 20A9;;;;N;;;;;
+FFE8;HALFWIDTH FORMS LIGHT VERTICAL;So;0;ON;<narrow> 2502;;;;N;;;;;
+FFE9;HALFWIDTH LEFTWARDS ARROW;Sm;0;ON;<narrow> 2190;;;;N;;;;;
+FFEA;HALFWIDTH UPWARDS ARROW;Sm;0;ON;<narrow> 2191;;;;N;;;;;
+FFEB;HALFWIDTH RIGHTWARDS ARROW;Sm;0;ON;<narrow> 2192;;;;N;;;;;
+FFEC;HALFWIDTH DOWNWARDS ARROW;Sm;0;ON;<narrow> 2193;;;;N;;;;;
+FFED;HALFWIDTH BLACK SQUARE;So;0;ON;<narrow> 25A0;;;;N;;;;;
+FFEE;HALFWIDTH WHITE CIRCLE;So;0;ON;<narrow> 25CB;;;;N;;;;;
+FFF9;INTERLINEAR ANNOTATION ANCHOR;Cf;0;BN;;;;;N;;;;;
+FFFA;INTERLINEAR ANNOTATION SEPARATOR;Cf;0;BN;;;;;N;;;;;
+FFFB;INTERLINEAR ANNOTATION TERMINATOR;Cf;0;BN;;;;;N;;;;;
+FFFC;OBJECT REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
+FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/readtype/unicodedata-3.0.0_IndicCharsFrom_5.0.txt	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10651 @@
+0000;<control>;Cc;0;BN;;;;;N;NULL;;;;
+0001;<control>;Cc;0;BN;;;;;N;START OF HEADING;;;;
+0002;<control>;Cc;0;BN;;;;;N;START OF TEXT;;;;
+0003;<control>;Cc;0;BN;;;;;N;END OF TEXT;;;;
+0004;<control>;Cc;0;BN;;;;;N;END OF TRANSMISSION;;;;
+0005;<control>;Cc;0;BN;;;;;N;ENQUIRY;;;;
+0006;<control>;Cc;0;BN;;;;;N;ACKNOWLEDGE;;;;
+0007;<control>;Cc;0;BN;;;;;N;BELL;;;;
+0008;<control>;Cc;0;BN;;;;;N;BACKSPACE;;;;
+0009;<control>;Cc;0;S;;;;;N;HORIZONTAL TABULATION;;;;
+000A;<control>;Cc;0;B;;;;;N;LINE FEED;;;;
+000B;<control>;Cc;0;S;;;;;N;VERTICAL TABULATION;;;;
+000C;<control>;Cc;0;WS;;;;;N;FORM FEED;;;;
+000D;<control>;Cc;0;B;;;;;N;CARRIAGE RETURN;;;;
+000E;<control>;Cc;0;BN;;;;;N;SHIFT OUT;;;;
+000F;<control>;Cc;0;BN;;;;;N;SHIFT IN;;;;
+0010;<control>;Cc;0;BN;;;;;N;DATA LINK ESCAPE;;;;
+0011;<control>;Cc;0;BN;;;;;N;DEVICE CONTROL ONE;;;;
+0012;<control>;Cc;0;BN;;;;;N;DEVICE CONTROL TWO;;;;
+0013;<control>;Cc;0;BN;;;;;N;DEVICE CONTROL THREE;;;;
+0014;<control>;Cc;0;BN;;;;;N;DEVICE CONTROL FOUR;;;;
+0015;<control>;Cc;0;BN;;;;;N;NEGATIVE ACKNOWLEDGE;;;;
+0016;<control>;Cc;0;BN;;;;;N;SYNCHRONOUS IDLE;;;;
+0017;<control>;Cc;0;BN;;;;;N;END OF TRANSMISSION BLOCK;;;;
+0018;<control>;Cc;0;BN;;;;;N;CANCEL;;;;
+0019;<control>;Cc;0;BN;;;;;N;END OF MEDIUM;;;;
+001A;<control>;Cc;0;BN;;;;;N;SUBSTITUTE;;;;
+001B;<control>;Cc;0;BN;;;;;N;ESCAPE;;;;
+001C;<control>;Cc;0;B;;;;;N;FILE SEPARATOR;;;;
+001D;<control>;Cc;0;B;;;;;N;GROUP SEPARATOR;;;;
+001E;<control>;Cc;0;B;;;;;N;RECORD SEPARATOR;;;;
+001F;<control>;Cc;0;S;;;;;N;UNIT SEPARATOR;;;;
+0020;SPACE;Zs;0;WS;;;;;N;;;;;
+0021;EXCLAMATION MARK;Po;0;ON;;;;;N;;;;;
+0022;QUOTATION MARK;Po;0;ON;;;;;N;;;;;
+0023;NUMBER SIGN;Po;0;ET;;;;;N;;;;;
+0024;DOLLAR SIGN;Sc;0;ET;;;;;N;;;;;
+0025;PERCENT SIGN;Po;0;ET;;;;;N;;;;;
+0026;AMPERSAND;Po;0;ON;;;;;N;;;;;
+0027;APOSTROPHE;Po;0;ON;;;;;N;APOSTROPHE-QUOTE;;;;
+0028;LEFT PARENTHESIS;Ps;0;ON;;;;;Y;OPENING PARENTHESIS;;;;
+0029;RIGHT PARENTHESIS;Pe;0;ON;;;;;Y;CLOSING PARENTHESIS;;;;
+002A;ASTERISK;Po;0;ON;;;;;N;;;;;
+002B;PLUS SIGN;Sm;0;ET;;;;;N;;;;;
+002C;COMMA;Po;0;CS;;;;;N;;;;;
+002D;HYPHEN-MINUS;Pd;0;ET;;;;;N;;;;;
+002E;FULL STOP;Po;0;CS;;;;;N;PERIOD;;;;
+002F;SOLIDUS;Po;0;ES;;;;;N;SLASH;;;;
+0030;DIGIT ZERO;Nd;0;EN;;0;0;0;N;;;;;
+0031;DIGIT ONE;Nd;0;EN;;1;1;1;N;;;;;
+0032;DIGIT TWO;Nd;0;EN;;2;2;2;N;;;;;
+0033;DIGIT THREE;Nd;0;EN;;3;3;3;N;;;;;
+0034;DIGIT FOUR;Nd;0;EN;;4;4;4;N;;;;;
+0035;DIGIT FIVE;Nd;0;EN;;5;5;5;N;;;;;
+0036;DIGIT SIX;Nd;0;EN;;6;6;6;N;;;;;
+0037;DIGIT SEVEN;Nd;0;EN;;7;7;7;N;;;;;
+0038;DIGIT EIGHT;Nd;0;EN;;8;8;8;N;;;;;
+0039;DIGIT NINE;Nd;0;EN;;9;9;9;N;;;;;
+003A;COLON;Po;0;CS;;;;;N;;;;;
+003B;SEMICOLON;Po;0;ON;;;;;N;;;;;
+003C;LESS-THAN SIGN;Sm;0;ON;;;;;Y;;;;;
+003D;EQUALS SIGN;Sm;0;ON;;;;;N;;;;;
+003E;GREATER-THAN SIGN;Sm;0;ON;;;;;Y;;;;;
+003F;QUESTION MARK;Po;0;ON;;;;;N;;;;;
+0040;COMMERCIAL AT;Po;0;ON;;;;;N;;;;;
+0041;LATIN CAPITAL LETTER A;Lu;0;L;;;;;N;;;;0061;
+0042;LATIN CAPITAL LETTER B;Lu;0;L;;;;;N;;;;0062;
+0043;LATIN CAPITAL LETTER C;Lu;0;L;;;;;N;;;;0063;
+0044;LATIN CAPITAL LETTER D;Lu;0;L;;;;;N;;;;0064;
+0045;LATIN CAPITAL LETTER E;Lu;0;L;;;;;N;;;;0065;
+0046;LATIN CAPITAL LETTER F;Lu;0;L;;;;;N;;;;0066;
+0047;LATIN CAPITAL LETTER G;Lu;0;L;;;;;N;;;;0067;
+0048;LATIN CAPITAL LETTER H;Lu;0;L;;;;;N;;;;0068;
+0049;LATIN CAPITAL LETTER I;Lu;0;L;;;;;N;;;;0069;
+004A;LATIN CAPITAL LETTER J;Lu;0;L;;;;;N;;;;006A;
+004B;LATIN CAPITAL LETTER K;Lu;0;L;;;;;N;;;;006B;
+004C;LATIN CAPITAL LETTER L;Lu;0;L;;;;;N;;;;006C;
+004D;LATIN CAPITAL LETTER M;Lu;0;L;;;;;N;;;;006D;
+004E;LATIN CAPITAL LETTER N;Lu;0;L;;;;;N;;;;006E;
+004F;LATIN CAPITAL LETTER O;Lu;0;L;;;;;N;;;;006F;
+0050;LATIN CAPITAL LETTER P;Lu;0;L;;;;;N;;;;0070;
+0051;LATIN CAPITAL LETTER Q;Lu;0;L;;;;;N;;;;0071;
+0052;LATIN CAPITAL LETTER R;Lu;0;L;;;;;N;;;;0072;
+0053;LATIN CAPITAL LETTER S;Lu;0;L;;;;;N;;;;0073;
+0054;LATIN CAPITAL LETTER T;Lu;0;L;;;;;N;;;;0074;
+0055;LATIN CAPITAL LETTER U;Lu;0;L;;;;;N;;;;0075;
+0056;LATIN CAPITAL LETTER V;Lu;0;L;;;;;N;;;;0076;
+0057;LATIN CAPITAL LETTER W;Lu;0;L;;;;;N;;;;0077;
+0058;LATIN CAPITAL LETTER X;Lu;0;L;;;;;N;;;;0078;
+0059;LATIN CAPITAL LETTER Y;Lu;0;L;;;;;N;;;;0079;
+005A;LATIN CAPITAL LETTER Z;Lu;0;L;;;;;N;;;;007A;
+005B;LEFT SQUARE BRACKET;Ps;0;ON;;;;;Y;OPENING SQUARE BRACKET;;;;
+005C;REVERSE SOLIDUS;Po;0;ON;;;;;N;BACKSLASH;;;;
+005D;RIGHT SQUARE BRACKET;Pe;0;ON;;;;;Y;CLOSING SQUARE BRACKET;;;;
+005E;CIRCUMFLEX ACCENT;Sk;0;ON;;;;;N;SPACING CIRCUMFLEX;;;;
+005F;LOW LINE;Pc;0;ON;;;;;N;SPACING UNDERSCORE;;;;
+0060;GRAVE ACCENT;Sk;0;ON;;;;;N;SPACING GRAVE;;;;
+0061;LATIN SMALL LETTER A;Ll;0;L;;;;;N;;;0041;;0041
+0062;LATIN SMALL LETTER B;Ll;0;L;;;;;N;;;0042;;0042
+0063;LATIN SMALL LETTER C;Ll;0;L;;;;;N;;;0043;;0043
+0064;LATIN SMALL LETTER D;Ll;0;L;;;;;N;;;0044;;0044
+0065;LATIN SMALL LETTER E;Ll;0;L;;;;;N;;;0045;;0045
+0066;LATIN SMALL LETTER F;Ll;0;L;;;;;N;;;0046;;0046
+0067;LATIN SMALL LETTER G;Ll;0;L;;;;;N;;;0047;;0047
+0068;LATIN SMALL LETTER H;Ll;0;L;;;;;N;;;0048;;0048
+0069;LATIN SMALL LETTER I;Ll;0;L;;;;;N;;;0049;;0049
+006A;LATIN SMALL LETTER J;Ll;0;L;;;;;N;;;004A;;004A
+006B;LATIN SMALL LETTER K;Ll;0;L;;;;;N;;;004B;;004B
+006C;LATIN SMALL LETTER L;Ll;0;L;;;;;N;;;004C;;004C
+006D;LATIN SMALL LETTER M;Ll;0;L;;;;;N;;;004D;;004D
+006E;LATIN SMALL LETTER N;Ll;0;L;;;;;N;;;004E;;004E
+006F;LATIN SMALL LETTER O;Ll;0;L;;;;;N;;;004F;;004F
+0070;LATIN SMALL LETTER P;Ll;0;L;;;;;N;;;0050;;0050
+0071;LATIN SMALL LETTER Q;Ll;0;L;;;;;N;;;0051;;0051
+0072;LATIN SMALL LETTER R;Ll;0;L;;;;;N;;;0052;;0052
+0073;LATIN SMALL LETTER S;Ll;0;L;;;;;N;;;0053;;0053
+0074;LATIN SMALL LETTER T;Ll;0;L;;;;;N;;;0054;;0054
+0075;LATIN SMALL LETTER U;Ll;0;L;;;;;N;;;0055;;0055
+0076;LATIN SMALL LETTER V;Ll;0;L;;;;;N;;;0056;;0056
+0077;LATIN SMALL LETTER W;Ll;0;L;;;;;N;;;0057;;0057
+0078;LATIN SMALL LETTER X;Ll;0;L;;;;;N;;;0058;;0058
+0079;LATIN SMALL LETTER Y;Ll;0;L;;;;;N;;;0059;;0059
+007A;LATIN SMALL LETTER Z;Ll;0;L;;;;;N;;;005A;;005A
+007B;LEFT CURLY BRACKET;Ps;0;ON;;;;;Y;OPENING CURLY BRACKET;;;;
+007C;VERTICAL LINE;Sm;0;ON;;;;;N;VERTICAL BAR;;;;
+007D;RIGHT CURLY BRACKET;Pe;0;ON;;;;;Y;CLOSING CURLY BRACKET;;;;
+007E;TILDE;Sm;0;ON;;;;;N;;;;;
+007F;<control>;Cc;0;BN;;;;;N;DELETE;;;;
+0080;<control>;Cc;0;BN;;;;;N;;;;;
+0081;<control>;Cc;0;BN;;;;;N;;;;;
+0082;<control>;Cc;0;BN;;;;;N;BREAK PERMITTED HERE;;;;
+0083;<control>;Cc;0;BN;;;;;N;NO BREAK HERE;;;;
+0084;<control>;Cc;0;BN;;;;;N;INDEX;;;;
+0085;<control>;Cc;0;B;;;;;N;NEXT LINE;;;;
+0086;<control>;Cc;0;BN;;;;;N;START OF SELECTED AREA;;;;
+0087;<control>;Cc;0;BN;;;;;N;END OF SELECTED AREA;;;;
+0088;<control>;Cc;0;BN;;;;;N;CHARACTER TABULATION SET;;;;
+0089;<control>;Cc;0;BN;;;;;N;CHARACTER TABULATION WITH JUSTIFICATION;;;;
+008A;<control>;Cc;0;BN;;;;;N;LINE TABULATION SET;;;;
+008B;<control>;Cc;0;BN;;;;;N;PARTIAL LINE DOWN;;;;
+008C;<control>;Cc;0;BN;;;;;N;PARTIAL LINE UP;;;;
+008D;<control>;Cc;0;BN;;;;;N;REVERSE LINE FEED;;;;
+008E;<control>;Cc;0;BN;;;;;N;SINGLE SHIFT TWO;;;;
+008F;<control>;Cc;0;BN;;;;;N;SINGLE SHIFT THREE;;;;
+0090;<control>;Cc;0;BN;;;;;N;DEVICE CONTROL STRING;;;;
+0091;<control>;Cc;0;BN;;;;;N;PRIVATE USE ONE;;;;
+0092;<control>;Cc;0;BN;;;;;N;PRIVATE USE TWO;;;;
+0093;<control>;Cc;0;BN;;;;;N;SET TRANSMIT STATE;;;;
+0094;<control>;Cc;0;BN;;;;;N;CANCEL CHARACTER;;;;
+0095;<control>;Cc;0;BN;;;;;N;MESSAGE WAITING;;;;
+0096;<control>;Cc;0;BN;;;;;N;START OF GUARDED AREA;;;;
+0097;<control>;Cc;0;BN;;;;;N;END OF GUARDED AREA;;;;
+0098;<control>;Cc;0;BN;;;;;N;START OF STRING;;;;
+0099;<control>;Cc;0;BN;;;;;N;;;;;
+009A;<control>;Cc;0;BN;;;;;N;SINGLE CHARACTER INTRODUCER;;;;
+009B;<control>;Cc;0;BN;;;;;N;CONTROL SEQUENCE INTRODUCER;;;;
+009C;<control>;Cc;0;BN;;;;;N;STRING TERMINATOR;;;;
+009D;<control>;Cc;0;BN;;;;;N;OPERATING SYSTEM COMMAND;;;;
+009E;<control>;Cc;0;BN;;;;;N;PRIVACY MESSAGE;;;;
+009F;<control>;Cc;0;BN;;;;;N;APPLICATION PROGRAM COMMAND;;;;
+00A0;NO-BREAK SPACE;Zs;0;CS;<noBreak> 0020;;;;N;NON-BREAKING SPACE;;;;
+00A1;INVERTED EXCLAMATION MARK;Po;0;ON;;;;;N;;;;;
+00A2;CENT SIGN;Sc;0;ET;;;;;N;;;;;
+00A3;POUND SIGN;Sc;0;ET;;;;;N;;;;;
+00A4;CURRENCY SIGN;Sc;0;ET;;;;;N;;;;;
+00A5;YEN SIGN;Sc;0;ET;;;;;N;;;;;
+00A6;BROKEN BAR;So;0;ON;;;;;N;BROKEN VERTICAL BAR;;;;
+00A7;SECTION SIGN;So;0;ON;;;;;N;;;;;
+00A8;DIAERESIS;Sk;0;ON;<compat> 0020 0308;;;;N;SPACING DIAERESIS;;;;
+00A9;COPYRIGHT SIGN;So;0;ON;;;;;N;;;;;
+00AA;FEMININE ORDINAL INDICATOR;Ll;0;L;<super> 0061;;;;N;;;;;
+00AB;LEFT-POINTING DOUBLE ANGLE QUOTATION MARK;Pi;0;ON;;;;;Y;LEFT POINTING GUILLEMET;*;;;
+00AC;NOT SIGN;Sm;0;ON;;;;;N;;;;;
+00AD;SOFT HYPHEN;Pd;0;ON;;;;;N;;;;;
+00AE;REGISTERED SIGN;So;0;ON;;;;;N;REGISTERED TRADE MARK SIGN;;;;
+00AF;MACRON;Sk;0;ON;<compat> 0020 0304;;;;N;SPACING MACRON;;;;
+00B0;DEGREE SIGN;So;0;ET;;;;;N;;;;;
+00B1;PLUS-MINUS SIGN;Sm;0;ET;;;;;N;PLUS-OR-MINUS SIGN;;;;
+00B2;SUPERSCRIPT TWO;No;0;EN;<super> 0032;2;2;2;N;SUPERSCRIPT DIGIT TWO;;;;
+00B3;SUPERSCRIPT THREE;No;0;EN;<super> 0033;3;3;3;N;SUPERSCRIPT DIGIT THREE;;;;
+00B4;ACUTE ACCENT;Sk;0;ON;<compat> 0020 0301;;;;N;SPACING ACUTE;;;;
+00B5;MICRO SIGN;Ll;0;L;<compat> 03BC;;;;N;;;039C;;039C
+00B6;PILCROW SIGN;So;0;ON;;;;;N;PARAGRAPH SIGN;;;;
+00B7;MIDDLE DOT;Po;0;ON;;;;;N;;;;;
+00B8;CEDILLA;Sk;0;ON;<compat> 0020 0327;;;;N;SPACING CEDILLA;;;;
+00B9;SUPERSCRIPT ONE;No;0;EN;<super> 0031;1;1;1;N;SUPERSCRIPT DIGIT ONE;;;;
+00BA;MASCULINE ORDINAL INDICATOR;Ll;0;L;<super> 006F;;;;N;;;;;
+00BB;RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK;Pf;0;ON;;;;;Y;RIGHT POINTING GUILLEMET;*;;;
+00BC;VULGAR FRACTION ONE QUARTER;No;0;ON;<fraction> 0031 2044 0034;;;1/4;N;FRACTION ONE QUARTER;;;;
+00BD;VULGAR FRACTION ONE HALF;No;0;ON;<fraction> 0031 2044 0032;;;1/2;N;FRACTION ONE HALF;;;;
+00BE;VULGAR FRACTION THREE QUARTERS;No;0;ON;<fraction> 0033 2044 0034;;;3/4;N;FRACTION THREE QUARTERS;;;;
+00BF;INVERTED QUESTION MARK;Po;0;ON;;;;;N;;;;;
+00C0;LATIN CAPITAL LETTER A WITH GRAVE;Lu;0;L;0041 0300;;;;N;LATIN CAPITAL LETTER A GRAVE;;;00E0;
+00C1;LATIN CAPITAL LETTER A WITH ACUTE;Lu;0;L;0041 0301;;;;N;LATIN CAPITAL LETTER A ACUTE;;;00E1;
+00C2;LATIN CAPITAL LETTER A WITH CIRCUMFLEX;Lu;0;L;0041 0302;;;;N;LATIN CAPITAL LETTER A CIRCUMFLEX;;;00E2;
+00C3;LATIN CAPITAL LETTER A WITH TILDE;Lu;0;L;0041 0303;;;;N;LATIN CAPITAL LETTER A TILDE;;;00E3;
+00C4;LATIN CAPITAL LETTER A WITH DIAERESIS;Lu;0;L;0041 0308;;;;N;LATIN CAPITAL LETTER A DIAERESIS;;;00E4;
+00C5;LATIN CAPITAL LETTER A WITH RING ABOVE;Lu;0;L;0041 030A;;;;N;LATIN CAPITAL LETTER A RING;;;00E5;
+00C6;LATIN CAPITAL LETTER AE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER A E;ash *;;00E6;
+00C7;LATIN CAPITAL LETTER C WITH CEDILLA;Lu;0;L;0043 0327;;;;N;LATIN CAPITAL LETTER C CEDILLA;;;00E7;
+00C8;LATIN CAPITAL LETTER E WITH GRAVE;Lu;0;L;0045 0300;;;;N;LATIN CAPITAL LETTER E GRAVE;;;00E8;
+00C9;LATIN CAPITAL LETTER E WITH ACUTE;Lu;0;L;0045 0301;;;;N;LATIN CAPITAL LETTER E ACUTE;;;00E9;
+00CA;LATIN CAPITAL LETTER E WITH CIRCUMFLEX;Lu;0;L;0045 0302;;;;N;LATIN CAPITAL LETTER E CIRCUMFLEX;;;00EA;
+00CB;LATIN CAPITAL LETTER E WITH DIAERESIS;Lu;0;L;0045 0308;;;;N;LATIN CAPITAL LETTER E DIAERESIS;;;00EB;
+00CC;LATIN CAPITAL LETTER I WITH GRAVE;Lu;0;L;0049 0300;;;;N;LATIN CAPITAL LETTER I GRAVE;;;00EC;
+00CD;LATIN CAPITAL LETTER I WITH ACUTE;Lu;0;L;0049 0301;;;;N;LATIN CAPITAL LETTER I ACUTE;;;00ED;
+00CE;LATIN CAPITAL LETTER I WITH CIRCUMFLEX;Lu;0;L;0049 0302;;;;N;LATIN CAPITAL LETTER I CIRCUMFLEX;;;00EE;
+00CF;LATIN CAPITAL LETTER I WITH DIAERESIS;Lu;0;L;0049 0308;;;;N;LATIN CAPITAL LETTER I DIAERESIS;;;00EF;
+00D0;LATIN CAPITAL LETTER ETH;Lu;0;L;;;;;N;;Icelandic;;00F0;
+00D1;LATIN CAPITAL LETTER N WITH TILDE;Lu;0;L;004E 0303;;;;N;LATIN CAPITAL LETTER N TILDE;;;00F1;
+00D2;LATIN CAPITAL LETTER O WITH GRAVE;Lu;0;L;004F 0300;;;;N;LATIN CAPITAL LETTER O GRAVE;;;00F2;
+00D3;LATIN CAPITAL LETTER O WITH ACUTE;Lu;0;L;004F 0301;;;;N;LATIN CAPITAL LETTER O ACUTE;;;00F3;
+00D4;LATIN CAPITAL LETTER O WITH CIRCUMFLEX;Lu;0;L;004F 0302;;;;N;LATIN CAPITAL LETTER O CIRCUMFLEX;;;00F4;
+00D5;LATIN CAPITAL LETTER O WITH TILDE;Lu;0;L;004F 0303;;;;N;LATIN CAPITAL LETTER O TILDE;;;00F5;
+00D6;LATIN CAPITAL LETTER O WITH DIAERESIS;Lu;0;L;004F 0308;;;;N;LATIN CAPITAL LETTER O DIAERESIS;;;00F6;
+00D7;MULTIPLICATION SIGN;Sm;0;ON;;;;;N;;;;;
+00D8;LATIN CAPITAL LETTER O WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER O SLASH;;;00F8;
+00D9;LATIN CAPITAL LETTER U WITH GRAVE;Lu;0;L;0055 0300;;;;N;LATIN CAPITAL LETTER U GRAVE;;;00F9;
+00DA;LATIN CAPITAL LETTER U WITH ACUTE;Lu;0;L;0055 0301;;;;N;LATIN CAPITAL LETTER U ACUTE;;;00FA;
+00DB;LATIN CAPITAL LETTER U WITH CIRCUMFLEX;Lu;0;L;0055 0302;;;;N;LATIN CAPITAL LETTER U CIRCUMFLEX;;;00FB;
+00DC;LATIN CAPITAL LETTER U WITH DIAERESIS;Lu;0;L;0055 0308;;;;N;LATIN CAPITAL LETTER U DIAERESIS;;;00FC;
+00DD;LATIN CAPITAL LETTER Y WITH ACUTE;Lu;0;L;0059 0301;;;;N;LATIN CAPITAL LETTER Y ACUTE;;;00FD;
+00DE;LATIN CAPITAL LETTER THORN;Lu;0;L;;;;;N;;Icelandic;;00FE;
+00DF;LATIN SMALL LETTER SHARP S;Ll;0;L;;;;;N;;German;;;
+00E0;LATIN SMALL LETTER A WITH GRAVE;Ll;0;L;0061 0300;;;;N;LATIN SMALL LETTER A GRAVE;;00C0;;00C0
+00E1;LATIN SMALL LETTER A WITH ACUTE;Ll;0;L;0061 0301;;;;N;LATIN SMALL LETTER A ACUTE;;00C1;;00C1
+00E2;LATIN SMALL LETTER A WITH CIRCUMFLEX;Ll;0;L;0061 0302;;;;N;LATIN SMALL LETTER A CIRCUMFLEX;;00C2;;00C2
+00E3;LATIN SMALL LETTER A WITH TILDE;Ll;0;L;0061 0303;;;;N;LATIN SMALL LETTER A TILDE;;00C3;;00C3
+00E4;LATIN SMALL LETTER A WITH DIAERESIS;Ll;0;L;0061 0308;;;;N;LATIN SMALL LETTER A DIAERESIS;;00C4;;00C4
+00E5;LATIN SMALL LETTER A WITH RING ABOVE;Ll;0;L;0061 030A;;;;N;LATIN SMALL LETTER A RING;;00C5;;00C5
+00E6;LATIN SMALL LETTER AE;Ll;0;L;;;;;N;LATIN SMALL LETTER A E;ash *;00C6;;00C6
+00E7;LATIN SMALL LETTER C WITH CEDILLA;Ll;0;L;0063 0327;;;;N;LATIN SMALL LETTER C CEDILLA;;00C7;;00C7
+00E8;LATIN SMALL LETTER E WITH GRAVE;Ll;0;L;0065 0300;;;;N;LATIN SMALL LETTER E GRAVE;;00C8;;00C8
+00E9;LATIN SMALL LETTER E WITH ACUTE;Ll;0;L;0065 0301;;;;N;LATIN SMALL LETTER E ACUTE;;00C9;;00C9
+00EA;LATIN SMALL LETTER E WITH CIRCUMFLEX;Ll;0;L;0065 0302;;;;N;LATIN SMALL LETTER E CIRCUMFLEX;;00CA;;00CA
+00EB;LATIN SMALL LETTER E WITH DIAERESIS;Ll;0;L;0065 0308;;;;N;LATIN SMALL LETTER E DIAERESIS;;00CB;;00CB
+00EC;LATIN SMALL LETTER I WITH GRAVE;Ll;0;L;0069 0300;;;;N;LATIN SMALL LETTER I GRAVE;;00CC;;00CC
+00ED;LATIN SMALL LETTER I WITH ACUTE;Ll;0;L;0069 0301;;;;N;LATIN SMALL LETTER I ACUTE;;00CD;;00CD
+00EE;LATIN SMALL LETTER I WITH CIRCUMFLEX;Ll;0;L;0069 0302;;;;N;LATIN SMALL LETTER I CIRCUMFLEX;;00CE;;00CE
+00EF;LATIN SMALL LETTER I WITH DIAERESIS;Ll;0;L;0069 0308;;;;N;LATIN SMALL LETTER I DIAERESIS;;00CF;;00CF
+00F0;LATIN SMALL LETTER ETH;Ll;0;L;;;;;N;;Icelandic;00D0;;00D0
+00F1;LATIN SMALL LETTER N WITH TILDE;Ll;0;L;006E 0303;;;;N;LATIN SMALL LETTER N TILDE;;00D1;;00D1
+00F2;LATIN SMALL LETTER O WITH GRAVE;Ll;0;L;006F 0300;;;;N;LATIN SMALL LETTER O GRAVE;;00D2;;00D2
+00F3;LATIN SMALL LETTER O WITH ACUTE;Ll;0;L;006F 0301;;;;N;LATIN SMALL LETTER O ACUTE;;00D3;;00D3
+00F4;LATIN SMALL LETTER O WITH CIRCUMFLEX;Ll;0;L;006F 0302;;;;N;LATIN SMALL LETTER O CIRCUMFLEX;;00D4;;00D4
+00F5;LATIN SMALL LETTER O WITH TILDE;Ll;0;L;006F 0303;;;;N;LATIN SMALL LETTER O TILDE;;00D5;;00D5
+00F6;LATIN SMALL LETTER O WITH DIAERESIS;Ll;0;L;006F 0308;;;;N;LATIN SMALL LETTER O DIAERESIS;;00D6;;00D6
+00F7;DIVISION SIGN;Sm;0;ON;;;;;N;;;;;
+00F8;LATIN SMALL LETTER O WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER O SLASH;;00D8;;00D8
+00F9;LATIN SMALL LETTER U WITH GRAVE;Ll;0;L;0075 0300;;;;N;LATIN SMALL LETTER U GRAVE;;00D9;;00D9
+00FA;LATIN SMALL LETTER U WITH ACUTE;Ll;0;L;0075 0301;;;;N;LATIN SMALL LETTER U ACUTE;;00DA;;00DA
+00FB;LATIN SMALL LETTER U WITH CIRCUMFLEX;Ll;0;L;0075 0302;;;;N;LATIN SMALL LETTER U CIRCUMFLEX;;00DB;;00DB
+00FC;LATIN SMALL LETTER U WITH DIAERESIS;Ll;0;L;0075 0308;;;;N;LATIN SMALL LETTER U DIAERESIS;;00DC;;00DC
+00FD;LATIN SMALL LETTER Y WITH ACUTE;Ll;0;L;0079 0301;;;;N;LATIN SMALL LETTER Y ACUTE;;00DD;;00DD
+00FE;LATIN SMALL LETTER THORN;Ll;0;L;;;;;N;;Icelandic;00DE;;00DE
+00FF;LATIN SMALL LETTER Y WITH DIAERESIS;Ll;0;L;0079 0308;;;;N;LATIN SMALL LETTER Y DIAERESIS;;0178;;0178
+0100;LATIN CAPITAL LETTER A WITH MACRON;Lu;0;L;0041 0304;;;;N;LATIN CAPITAL LETTER A MACRON;;;0101;
+0101;LATIN SMALL LETTER A WITH MACRON;Ll;0;L;0061 0304;;;;N;LATIN SMALL LETTER A MACRON;;0100;;0100
+0102;LATIN CAPITAL LETTER A WITH BREVE;Lu;0;L;0041 0306;;;;N;LATIN CAPITAL LETTER A BREVE;;;0103;
+0103;LATIN SMALL LETTER A WITH BREVE;Ll;0;L;0061 0306;;;;N;LATIN SMALL LETTER A BREVE;;0102;;0102
+0104;LATIN CAPITAL LETTER A WITH OGONEK;Lu;0;L;0041 0328;;;;N;LATIN CAPITAL LETTER A OGONEK;;;0105;
+0105;LATIN SMALL LETTER A WITH OGONEK;Ll;0;L;0061 0328;;;;N;LATIN SMALL LETTER A OGONEK;;0104;;0104
+0106;LATIN CAPITAL LETTER C WITH ACUTE;Lu;0;L;0043 0301;;;;N;LATIN CAPITAL LETTER C ACUTE;;;0107;
+0107;LATIN SMALL LETTER C WITH ACUTE;Ll;0;L;0063 0301;;;;N;LATIN SMALL LETTER C ACUTE;;0106;;0106
+0108;LATIN CAPITAL LETTER C WITH CIRCUMFLEX;Lu;0;L;0043 0302;;;;N;LATIN CAPITAL LETTER C CIRCUMFLEX;;;0109;
+0109;LATIN SMALL LETTER C WITH CIRCUMFLEX;Ll;0;L;0063 0302;;;;N;LATIN SMALL LETTER C CIRCUMFLEX;;0108;;0108
+010A;LATIN CAPITAL LETTER C WITH DOT ABOVE;Lu;0;L;0043 0307;;;;N;LATIN CAPITAL LETTER C DOT;;;010B;
+010B;LATIN SMALL LETTER C WITH DOT ABOVE;Ll;0;L;0063 0307;;;;N;LATIN SMALL LETTER C DOT;;010A;;010A
+010C;LATIN CAPITAL LETTER C WITH CARON;Lu;0;L;0043 030C;;;;N;LATIN CAPITAL LETTER C HACEK;;;010D;
+010D;LATIN SMALL LETTER C WITH CARON;Ll;0;L;0063 030C;;;;N;LATIN SMALL LETTER C HACEK;;010C;;010C
+010E;LATIN CAPITAL LETTER D WITH CARON;Lu;0;L;0044 030C;;;;N;LATIN CAPITAL LETTER D HACEK;;;010F;
+010F;LATIN SMALL LETTER D WITH CARON;Ll;0;L;0064 030C;;;;N;LATIN SMALL LETTER D HACEK;;010E;;010E
+0110;LATIN CAPITAL LETTER D WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER D BAR;;;0111;
+0111;LATIN SMALL LETTER D WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER D BAR;;0110;;0110
+0112;LATIN CAPITAL LETTER E WITH MACRON;Lu;0;L;0045 0304;;;;N;LATIN CAPITAL LETTER E MACRON;;;0113;
+0113;LATIN SMALL LETTER E WITH MACRON;Ll;0;L;0065 0304;;;;N;LATIN SMALL LETTER E MACRON;;0112;;0112
+0114;LATIN CAPITAL LETTER E WITH BREVE;Lu;0;L;0045 0306;;;;N;LATIN CAPITAL LETTER E BREVE;;;0115;
+0115;LATIN SMALL LETTER E WITH BREVE;Ll;0;L;0065 0306;;;;N;LATIN SMALL LETTER E BREVE;;0114;;0114
+0116;LATIN CAPITAL LETTER E WITH DOT ABOVE;Lu;0;L;0045 0307;;;;N;LATIN CAPITAL LETTER E DOT;;;0117;
+0117;LATIN SMALL LETTER E WITH DOT ABOVE;Ll;0;L;0065 0307;;;;N;LATIN SMALL LETTER E DOT;;0116;;0116
+0118;LATIN CAPITAL LETTER E WITH OGONEK;Lu;0;L;0045 0328;;;;N;LATIN CAPITAL LETTER E OGONEK;;;0119;
+0119;LATIN SMALL LETTER E WITH OGONEK;Ll;0;L;0065 0328;;;;N;LATIN SMALL LETTER E OGONEK;;0118;;0118
+011A;LATIN CAPITAL LETTER E WITH CARON;Lu;0;L;0045 030C;;;;N;LATIN CAPITAL LETTER E HACEK;;;011B;
+011B;LATIN SMALL LETTER E WITH CARON;Ll;0;L;0065 030C;;;;N;LATIN SMALL LETTER E HACEK;;011A;;011A
+011C;LATIN CAPITAL LETTER G WITH CIRCUMFLEX;Lu;0;L;0047 0302;;;;N;LATIN CAPITAL LETTER G CIRCUMFLEX;;;011D;
+011D;LATIN SMALL LETTER G WITH CIRCUMFLEX;Ll;0;L;0067 0302;;;;N;LATIN SMALL LETTER G CIRCUMFLEX;;011C;;011C
+011E;LATIN CAPITAL LETTER G WITH BREVE;Lu;0;L;0047 0306;;;;N;LATIN CAPITAL LETTER G BREVE;;;011F;
+011F;LATIN SMALL LETTER G WITH BREVE;Ll;0;L;0067 0306;;;;N;LATIN SMALL LETTER G BREVE;;011E;;011E
+0120;LATIN CAPITAL LETTER G WITH DOT ABOVE;Lu;0;L;0047 0307;;;;N;LATIN CAPITAL LETTER G DOT;;;0121;
+0121;LATIN SMALL LETTER G WITH DOT ABOVE;Ll;0;L;0067 0307;;;;N;LATIN SMALL LETTER G DOT;;0120;;0120
+0122;LATIN CAPITAL LETTER G WITH CEDILLA;Lu;0;L;0047 0327;;;;N;LATIN CAPITAL LETTER G CEDILLA;;;0123;
+0123;LATIN SMALL LETTER G WITH CEDILLA;Ll;0;L;0067 0327;;;;N;LATIN SMALL LETTER G CEDILLA;;0122;;0122
+0124;LATIN CAPITAL LETTER H WITH CIRCUMFLEX;Lu;0;L;0048 0302;;;;N;LATIN CAPITAL LETTER H CIRCUMFLEX;;;0125;
+0125;LATIN SMALL LETTER H WITH CIRCUMFLEX;Ll;0;L;0068 0302;;;;N;LATIN SMALL LETTER H CIRCUMFLEX;;0124;;0124
+0126;LATIN CAPITAL LETTER H WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER H BAR;;;0127;
+0127;LATIN SMALL LETTER H WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER H BAR;;0126;;0126
+0128;LATIN CAPITAL LETTER I WITH TILDE;Lu;0;L;0049 0303;;;;N;LATIN CAPITAL LETTER I TILDE;;;0129;
+0129;LATIN SMALL LETTER I WITH TILDE;Ll;0;L;0069 0303;;;;N;LATIN SMALL LETTER I TILDE;;0128;;0128
+012A;LATIN CAPITAL LETTER I WITH MACRON;Lu;0;L;0049 0304;;;;N;LATIN CAPITAL LETTER I MACRON;;;012B;
+012B;LATIN SMALL LETTER I WITH MACRON;Ll;0;L;0069 0304;;;;N;LATIN SMALL LETTER I MACRON;;012A;;012A
+012C;LATIN CAPITAL LETTER I WITH BREVE;Lu;0;L;0049 0306;;;;N;LATIN CAPITAL LETTER I BREVE;;;012D;
+012D;LATIN SMALL LETTER I WITH BREVE;Ll;0;L;0069 0306;;;;N;LATIN SMALL LETTER I BREVE;;012C;;012C
+012E;LATIN CAPITAL LETTER I WITH OGONEK;Lu;0;L;0049 0328;;;;N;LATIN CAPITAL LETTER I OGONEK;;;012F;
+012F;LATIN SMALL LETTER I WITH OGONEK;Ll;0;L;0069 0328;;;;N;LATIN SMALL LETTER I OGONEK;;012E;;012E
+0130;LATIN CAPITAL LETTER I WITH DOT ABOVE;Lu;0;L;0049 0307;;;;N;LATIN CAPITAL LETTER I DOT;;;0069;
+0131;LATIN SMALL LETTER DOTLESS I;Ll;0;L;;;;;N;;;0049;;0049
+0132;LATIN CAPITAL LIGATURE IJ;Lu;0;L;<compat> 0049 004A;;;;N;LATIN CAPITAL LETTER I J;;;0133;
+0133;LATIN SMALL LIGATURE IJ;Ll;0;L;<compat> 0069 006A;;;;N;LATIN SMALL LETTER I J;;0132;;0132
+0134;LATIN CAPITAL LETTER J WITH CIRCUMFLEX;Lu;0;L;004A 0302;;;;N;LATIN CAPITAL LETTER J CIRCUMFLEX;;;0135;
+0135;LATIN SMALL LETTER J WITH CIRCUMFLEX;Ll;0;L;006A 0302;;;;N;LATIN SMALL LETTER J CIRCUMFLEX;;0134;;0134
+0136;LATIN CAPITAL LETTER K WITH CEDILLA;Lu;0;L;004B 0327;;;;N;LATIN CAPITAL LETTER K CEDILLA;;;0137;
+0137;LATIN SMALL LETTER K WITH CEDILLA;Ll;0;L;006B 0327;;;;N;LATIN SMALL LETTER K CEDILLA;;0136;;0136
+0138;LATIN SMALL LETTER KRA;Ll;0;L;;;;;N;;Greenlandic;;;
+0139;LATIN CAPITAL LETTER L WITH ACUTE;Lu;0;L;004C 0301;;;;N;LATIN CAPITAL LETTER L ACUTE;;;013A;
+013A;LATIN SMALL LETTER L WITH ACUTE;Ll;0;L;006C 0301;;;;N;LATIN SMALL LETTER L ACUTE;;0139;;0139
+013B;LATIN CAPITAL LETTER L WITH CEDILLA;Lu;0;L;004C 0327;;;;N;LATIN CAPITAL LETTER L CEDILLA;;;013C;
+013C;LATIN SMALL LETTER L WITH CEDILLA;Ll;0;L;006C 0327;;;;N;LATIN SMALL LETTER L CEDILLA;;013B;;013B
+013D;LATIN CAPITAL LETTER L WITH CARON;Lu;0;L;004C 030C;;;;N;LATIN CAPITAL LETTER L HACEK;;;013E;
+013E;LATIN SMALL LETTER L WITH CARON;Ll;0;L;006C 030C;;;;N;LATIN SMALL LETTER L HACEK;;013D;;013D
+013F;LATIN CAPITAL LETTER L WITH MIDDLE DOT;Lu;0;L;<compat> 004C 00B7;;;;N;;;;0140;
+0140;LATIN SMALL LETTER L WITH MIDDLE DOT;Ll;0;L;<compat> 006C 00B7;;;;N;;;013F;;013F
+0141;LATIN CAPITAL LETTER L WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER L SLASH;;;0142;
+0142;LATIN SMALL LETTER L WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER L SLASH;;0141;;0141
+0143;LATIN CAPITAL LETTER N WITH ACUTE;Lu;0;L;004E 0301;;;;N;LATIN CAPITAL LETTER N ACUTE;;;0144;
+0144;LATIN SMALL LETTER N WITH ACUTE;Ll;0;L;006E 0301;;;;N;LATIN SMALL LETTER N ACUTE;;0143;;0143
+0145;LATIN CAPITAL LETTER N WITH CEDILLA;Lu;0;L;004E 0327;;;;N;LATIN CAPITAL LETTER N CEDILLA;;;0146;
+0146;LATIN SMALL LETTER N WITH CEDILLA;Ll;0;L;006E 0327;;;;N;LATIN SMALL LETTER N CEDILLA;;0145;;0145
+0147;LATIN CAPITAL LETTER N WITH CARON;Lu;0;L;004E 030C;;;;N;LATIN CAPITAL LETTER N HACEK;;;0148;
+0148;LATIN SMALL LETTER N WITH CARON;Ll;0;L;006E 030C;;;;N;LATIN SMALL LETTER N HACEK;;0147;;0147
+0149;LATIN SMALL LETTER N PRECEDED BY APOSTROPHE;Ll;0;L;<compat> 02BC 006E;;;;N;LATIN SMALL LETTER APOSTROPHE N;;;;
+014A;LATIN CAPITAL LETTER ENG;Lu;0;L;;;;;N;;Sami;;014B;
+014B;LATIN SMALL LETTER ENG;Ll;0;L;;;;;N;;Sami;014A;;014A
+014C;LATIN CAPITAL LETTER O WITH MACRON;Lu;0;L;004F 0304;;;;N;LATIN CAPITAL LETTER O MACRON;;;014D;
+014D;LATIN SMALL LETTER O WITH MACRON;Ll;0;L;006F 0304;;;;N;LATIN SMALL LETTER O MACRON;;014C;;014C
+014E;LATIN CAPITAL LETTER O WITH BREVE;Lu;0;L;004F 0306;;;;N;LATIN CAPITAL LETTER O BREVE;;;014F;
+014F;LATIN SMALL LETTER O WITH BREVE;Ll;0;L;006F 0306;;;;N;LATIN SMALL LETTER O BREVE;;014E;;014E
+0150;LATIN CAPITAL LETTER O WITH DOUBLE ACUTE;Lu;0;L;004F 030B;;;;N;LATIN CAPITAL LETTER O DOUBLE ACUTE;;;0151;
+0151;LATIN SMALL LETTER O WITH DOUBLE ACUTE;Ll;0;L;006F 030B;;;;N;LATIN SMALL LETTER O DOUBLE ACUTE;;0150;;0150
+0152;LATIN CAPITAL LIGATURE OE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER O E;;;0153;
+0153;LATIN SMALL LIGATURE OE;Ll;0;L;;;;;N;LATIN SMALL LETTER O E;;0152;;0152
+0154;LATIN CAPITAL LETTER R WITH ACUTE;Lu;0;L;0052 0301;;;;N;LATIN CAPITAL LETTER R ACUTE;;;0155;
+0155;LATIN SMALL LETTER R WITH ACUTE;Ll;0;L;0072 0301;;;;N;LATIN SMALL LETTER R ACUTE;;0154;;0154
+0156;LATIN CAPITAL LETTER R WITH CEDILLA;Lu;0;L;0052 0327;;;;N;LATIN CAPITAL LETTER R CEDILLA;;;0157;
+0157;LATIN SMALL LETTER R WITH CEDILLA;Ll;0;L;0072 0327;;;;N;LATIN SMALL LETTER R CEDILLA;;0156;;0156
+0158;LATIN CAPITAL LETTER R WITH CARON;Lu;0;L;0052 030C;;;;N;LATIN CAPITAL LETTER R HACEK;;;0159;
+0159;LATIN SMALL LETTER R WITH CARON;Ll;0;L;0072 030C;;;;N;LATIN SMALL LETTER R HACEK;;0158;;0158
+015A;LATIN CAPITAL LETTER S WITH ACUTE;Lu;0;L;0053 0301;;;;N;LATIN CAPITAL LETTER S ACUTE;;;015B;
+015B;LATIN SMALL LETTER S WITH ACUTE;Ll;0;L;0073 0301;;;;N;LATIN SMALL LETTER S ACUTE;;015A;;015A
+015C;LATIN CAPITAL LETTER S WITH CIRCUMFLEX;Lu;0;L;0053 0302;;;;N;LATIN CAPITAL LETTER S CIRCUMFLEX;;;015D;
+015D;LATIN SMALL LETTER S WITH CIRCUMFLEX;Ll;0;L;0073 0302;;;;N;LATIN SMALL LETTER S CIRCUMFLEX;;015C;;015C
+015E;LATIN CAPITAL LETTER S WITH CEDILLA;Lu;0;L;0053 0327;;;;N;LATIN CAPITAL LETTER S CEDILLA;*;;015F;
+015F;LATIN SMALL LETTER S WITH CEDILLA;Ll;0;L;0073 0327;;;;N;LATIN SMALL LETTER S CEDILLA;*;015E;;015E
+0160;LATIN CAPITAL LETTER S WITH CARON;Lu;0;L;0053 030C;;;;N;LATIN CAPITAL LETTER S HACEK;;;0161;
+0161;LATIN SMALL LETTER S WITH CARON;Ll;0;L;0073 030C;;;;N;LATIN SMALL LETTER S HACEK;;0160;;0160
+0162;LATIN CAPITAL LETTER T WITH CEDILLA;Lu;0;L;0054 0327;;;;N;LATIN CAPITAL LETTER T CEDILLA;*;;0163;
+0163;LATIN SMALL LETTER T WITH CEDILLA;Ll;0;L;0074 0327;;;;N;LATIN SMALL LETTER T CEDILLA;*;0162;;0162
+0164;LATIN CAPITAL LETTER T WITH CARON;Lu;0;L;0054 030C;;;;N;LATIN CAPITAL LETTER T HACEK;;;0165;
+0165;LATIN SMALL LETTER T WITH CARON;Ll;0;L;0074 030C;;;;N;LATIN SMALL LETTER T HACEK;;0164;;0164
+0166;LATIN CAPITAL LETTER T WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER T BAR;;;0167;
+0167;LATIN SMALL LETTER T WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER T BAR;;0166;;0166
+0168;LATIN CAPITAL LETTER U WITH TILDE;Lu;0;L;0055 0303;;;;N;LATIN CAPITAL LETTER U TILDE;;;0169;
+0169;LATIN SMALL LETTER U WITH TILDE;Ll;0;L;0075 0303;;;;N;LATIN SMALL LETTER U TILDE;;0168;;0168
+016A;LATIN CAPITAL LETTER U WITH MACRON;Lu;0;L;0055 0304;;;;N;LATIN CAPITAL LETTER U MACRON;;;016B;
+016B;LATIN SMALL LETTER U WITH MACRON;Ll;0;L;0075 0304;;;;N;LATIN SMALL LETTER U MACRON;;016A;;016A
+016C;LATIN CAPITAL LETTER U WITH BREVE;Lu;0;L;0055 0306;;;;N;LATIN CAPITAL LETTER U BREVE;;;016D;
+016D;LATIN SMALL LETTER U WITH BREVE;Ll;0;L;0075 0306;;;;N;LATIN SMALL LETTER U BREVE;;016C;;016C
+016E;LATIN CAPITAL LETTER U WITH RING ABOVE;Lu;0;L;0055 030A;;;;N;LATIN CAPITAL LETTER U RING;;;016F;
+016F;LATIN SMALL LETTER U WITH RING ABOVE;Ll;0;L;0075 030A;;;;N;LATIN SMALL LETTER U RING;;016E;;016E
+0170;LATIN CAPITAL LETTER U WITH DOUBLE ACUTE;Lu;0;L;0055 030B;;;;N;LATIN CAPITAL LETTER U DOUBLE ACUTE;;;0171;
+0171;LATIN SMALL LETTER U WITH DOUBLE ACUTE;Ll;0;L;0075 030B;;;;N;LATIN SMALL LETTER U DOUBLE ACUTE;;0170;;0170
+0172;LATIN CAPITAL LETTER U WITH OGONEK;Lu;0;L;0055 0328;;;;N;LATIN CAPITAL LETTER U OGONEK;;;0173;
+0173;LATIN SMALL LETTER U WITH OGONEK;Ll;0;L;0075 0328;;;;N;LATIN SMALL LETTER U OGONEK;;0172;;0172
+0174;LATIN CAPITAL LETTER W WITH CIRCUMFLEX;Lu;0;L;0057 0302;;;;N;LATIN CAPITAL LETTER W CIRCUMFLEX;;;0175;
+0175;LATIN SMALL LETTER W WITH CIRCUMFLEX;Ll;0;L;0077 0302;;;;N;LATIN SMALL LETTER W CIRCUMFLEX;;0174;;0174
+0176;LATIN CAPITAL LETTER Y WITH CIRCUMFLEX;Lu;0;L;0059 0302;;;;N;LATIN CAPITAL LETTER Y CIRCUMFLEX;;;0177;
+0177;LATIN SMALL LETTER Y WITH CIRCUMFLEX;Ll;0;L;0079 0302;;;;N;LATIN SMALL LETTER Y CIRCUMFLEX;;0176;;0176
+0178;LATIN CAPITAL LETTER Y WITH DIAERESIS;Lu;0;L;0059 0308;;;;N;LATIN CAPITAL LETTER Y DIAERESIS;;;00FF;
+0179;LATIN CAPITAL LETTER Z WITH ACUTE;Lu;0;L;005A 0301;;;;N;LATIN CAPITAL LETTER Z ACUTE;;;017A;
+017A;LATIN SMALL LETTER Z WITH ACUTE;Ll;0;L;007A 0301;;;;N;LATIN SMALL LETTER Z ACUTE;;0179;;0179
+017B;LATIN CAPITAL LETTER Z WITH DOT ABOVE;Lu;0;L;005A 0307;;;;N;LATIN CAPITAL LETTER Z DOT;;;017C;
+017C;LATIN SMALL LETTER Z WITH DOT ABOVE;Ll;0;L;007A 0307;;;;N;LATIN SMALL LETTER Z DOT;;017B;;017B
+017D;LATIN CAPITAL LETTER Z WITH CARON;Lu;0;L;005A 030C;;;;N;LATIN CAPITAL LETTER Z HACEK;;;017E;
+017E;LATIN SMALL LETTER Z WITH CARON;Ll;0;L;007A 030C;;;;N;LATIN SMALL LETTER Z HACEK;;017D;;017D
+017F;LATIN SMALL LETTER LONG S;Ll;0;L;<compat> 0073;;;;N;;;0053;;0053
+0180;LATIN SMALL LETTER B WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER B BAR;;;;
+0181;LATIN CAPITAL LETTER B WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER B HOOK;;;0253;
+0182;LATIN CAPITAL LETTER B WITH TOPBAR;Lu;0;L;;;;;N;LATIN CAPITAL LETTER B TOPBAR;;;0183;
+0183;LATIN SMALL LETTER B WITH TOPBAR;Ll;0;L;;;;;N;LATIN SMALL LETTER B TOPBAR;;0182;;0182
+0184;LATIN CAPITAL LETTER TONE SIX;Lu;0;L;;;;;N;;;;0185;
+0185;LATIN SMALL LETTER TONE SIX;Ll;0;L;;;;;N;;;0184;;0184
+0186;LATIN CAPITAL LETTER OPEN O;Lu;0;L;;;;;N;;;;0254;
+0187;LATIN CAPITAL LETTER C WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER C HOOK;;;0188;
+0188;LATIN SMALL LETTER C WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER C HOOK;;0187;;0187
+0189;LATIN CAPITAL LETTER AFRICAN D;Lu;0;L;;;;;N;;*;;0256;
+018A;LATIN CAPITAL LETTER D WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER D HOOK;;;0257;
+018B;LATIN CAPITAL LETTER D WITH TOPBAR;Lu;0;L;;;;;N;LATIN CAPITAL LETTER D TOPBAR;;;018C;
+018C;LATIN SMALL LETTER D WITH TOPBAR;Ll;0;L;;;;;N;LATIN SMALL LETTER D TOPBAR;;018B;;018B
+018D;LATIN SMALL LETTER TURNED DELTA;Ll;0;L;;;;;N;;;;;
+018E;LATIN CAPITAL LETTER REVERSED E;Lu;0;L;;;;;N;LATIN CAPITAL LETTER TURNED E;;;01DD;
+018F;LATIN CAPITAL LETTER SCHWA;Lu;0;L;;;;;N;;;;0259;
+0190;LATIN CAPITAL LETTER OPEN E;Lu;0;L;;;;;N;LATIN CAPITAL LETTER EPSILON;;;025B;
+0191;LATIN CAPITAL LETTER F WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER F HOOK;;;0192;
+0192;LATIN SMALL LETTER F WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER SCRIPT F;;0191;;0191
+0193;LATIN CAPITAL LETTER G WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER G HOOK;;;0260;
+0194;LATIN CAPITAL LETTER GAMMA;Lu;0;L;;;;;N;;;;0263;
+0195;LATIN SMALL LETTER HV;Ll;0;L;;;;;N;LATIN SMALL LETTER H V;hwair;01F6;;01F6
+0196;LATIN CAPITAL LETTER IOTA;Lu;0;L;;;;;N;;;;0269;
+0197;LATIN CAPITAL LETTER I WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER BARRED I;;;0268;
+0198;LATIN CAPITAL LETTER K WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER K HOOK;;;0199;
+0199;LATIN SMALL LETTER K WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER K HOOK;;0198;;0198
+019A;LATIN SMALL LETTER L WITH BAR;Ll;0;L;;;;;N;LATIN SMALL LETTER BARRED L;;;;
+019B;LATIN SMALL LETTER LAMBDA WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER BARRED LAMBDA;;;;
+019C;LATIN CAPITAL LETTER TURNED M;Lu;0;L;;;;;N;;;;026F;
+019D;LATIN CAPITAL LETTER N WITH LEFT HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER N HOOK;;;0272;
+019E;LATIN SMALL LETTER N WITH LONG RIGHT LEG;Ll;0;L;;;;;N;;;;;
+019F;LATIN CAPITAL LETTER O WITH MIDDLE TILDE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER BARRED O;*;;0275;
+01A0;LATIN CAPITAL LETTER O WITH HORN;Lu;0;L;004F 031B;;;;N;LATIN CAPITAL LETTER O HORN;;;01A1;
+01A1;LATIN SMALL LETTER O WITH HORN;Ll;0;L;006F 031B;;;;N;LATIN SMALL LETTER O HORN;;01A0;;01A0
+01A2;LATIN CAPITAL LETTER OI;Lu;0;L;;;;;N;LATIN CAPITAL LETTER O I;gha;;01A3;
+01A3;LATIN SMALL LETTER OI;Ll;0;L;;;;;N;LATIN SMALL LETTER O I;gha;01A2;;01A2
+01A4;LATIN CAPITAL LETTER P WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER P HOOK;;;01A5;
+01A5;LATIN SMALL LETTER P WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER P HOOK;;01A4;;01A4
+01A6;LATIN LETTER YR;Lu;0;L;;;;;N;LATIN LETTER Y R;;;0280;
+01A7;LATIN CAPITAL LETTER TONE TWO;Lu;0;L;;;;;N;;;;01A8;
+01A8;LATIN SMALL LETTER TONE TWO;Ll;0;L;;;;;N;;;01A7;;01A7
+01A9;LATIN CAPITAL LETTER ESH;Lu;0;L;;;;;N;;;;0283;
+01AA;LATIN LETTER REVERSED ESH LOOP;Ll;0;L;;;;;N;;;;;
+01AB;LATIN SMALL LETTER T WITH PALATAL HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER T PALATAL HOOK;;;;
+01AC;LATIN CAPITAL LETTER T WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER T HOOK;;;01AD;
+01AD;LATIN SMALL LETTER T WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER T HOOK;;01AC;;01AC
+01AE;LATIN CAPITAL LETTER T WITH RETROFLEX HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER T RETROFLEX HOOK;;;0288;
+01AF;LATIN CAPITAL LETTER U WITH HORN;Lu;0;L;0055 031B;;;;N;LATIN CAPITAL LETTER U HORN;;;01B0;
+01B0;LATIN SMALL LETTER U WITH HORN;Ll;0;L;0075 031B;;;;N;LATIN SMALL LETTER U HORN;;01AF;;01AF
+01B1;LATIN CAPITAL LETTER UPSILON;Lu;0;L;;;;;N;;;;028A;
+01B2;LATIN CAPITAL LETTER V WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER SCRIPT V;;;028B;
+01B3;LATIN CAPITAL LETTER Y WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER Y HOOK;;;01B4;
+01B4;LATIN SMALL LETTER Y WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER Y HOOK;;01B3;;01B3
+01B5;LATIN CAPITAL LETTER Z WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER Z BAR;;;01B6;
+01B6;LATIN SMALL LETTER Z WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER Z BAR;;01B5;;01B5
+01B7;LATIN CAPITAL LETTER EZH;Lu;0;L;;;;;N;LATIN CAPITAL LETTER YOGH;;;0292;
+01B8;LATIN CAPITAL LETTER EZH REVERSED;Lu;0;L;;;;;N;LATIN CAPITAL LETTER REVERSED YOGH;;;01B9;
+01B9;LATIN SMALL LETTER EZH REVERSED;Ll;0;L;;;;;N;LATIN SMALL LETTER REVERSED YOGH;;01B8;;01B8
+01BA;LATIN SMALL LETTER EZH WITH TAIL;Ll;0;L;;;;;N;LATIN SMALL LETTER YOGH WITH TAIL;;;;
+01BB;LATIN LETTER TWO WITH STROKE;Lo;0;L;;;;;N;LATIN LETTER TWO BAR;;;;
+01BC;LATIN CAPITAL LETTER TONE FIVE;Lu;0;L;;;;;N;;;;01BD;
+01BD;LATIN SMALL LETTER TONE FIVE;Ll;0;L;;;;;N;;;01BC;;01BC
+01BE;LATIN LETTER INVERTED GLOTTAL STOP WITH STROKE;Ll;0;L;;;;;N;LATIN LETTER INVERTED GLOTTAL STOP BAR;;;;
+01BF;LATIN LETTER WYNN;Ll;0;L;;;;;N;;;01F7;;01F7
+01C0;LATIN LETTER DENTAL CLICK;Lo;0;L;;;;;N;LATIN LETTER PIPE;;;;
+01C1;LATIN LETTER LATERAL CLICK;Lo;0;L;;;;;N;LATIN LETTER DOUBLE PIPE;;;;
+01C2;LATIN LETTER ALVEOLAR CLICK;Lo;0;L;;;;;N;LATIN LETTER PIPE DOUBLE BAR;;;;
+01C3;LATIN LETTER RETROFLEX CLICK;Lo;0;L;;;;;N;LATIN LETTER EXCLAMATION MARK;;;;
+01C4;LATIN CAPITAL LETTER DZ WITH CARON;Lu;0;L;<compat> 0044 017D;;;;N;LATIN CAPITAL LETTER D Z HACEK;;;01C6;01C5
+01C5;LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON;Lt;0;L;<compat> 0044 017E;;;;N;LATIN LETTER CAPITAL D SMALL Z HACEK;;01C4;01C6;
+01C6;LATIN SMALL LETTER DZ WITH CARON;Ll;0;L;<compat> 0064 017E;;;;N;LATIN SMALL LETTER D Z HACEK;;01C4;;01C5
+01C7;LATIN CAPITAL LETTER LJ;Lu;0;L;<compat> 004C 004A;;;;N;LATIN CAPITAL LETTER L J;;;01C9;01C8
+01C8;LATIN CAPITAL LETTER L WITH SMALL LETTER J;Lt;0;L;<compat> 004C 006A;;;;N;LATIN LETTER CAPITAL L SMALL J;;01C7;01C9;
+01C9;LATIN SMALL LETTER LJ;Ll;0;L;<compat> 006C 006A;;;;N;LATIN SMALL LETTER L J;;01C7;;01C8
+01CA;LATIN CAPITAL LETTER NJ;Lu;0;L;<compat> 004E 004A;;;;N;LATIN CAPITAL LETTER N J;;;01CC;01CB
+01CB;LATIN CAPITAL LETTER N WITH SMALL LETTER J;Lt;0;L;<compat> 004E 006A;;;;N;LATIN LETTER CAPITAL N SMALL J;;01CA;01CC;
+01CC;LATIN SMALL LETTER NJ;Ll;0;L;<compat> 006E 006A;;;;N;LATIN SMALL LETTER N J;;01CA;;01CB
+01CD;LATIN CAPITAL LETTER A WITH CARON;Lu;0;L;0041 030C;;;;N;LATIN CAPITAL LETTER A HACEK;;;01CE;
+01CE;LATIN SMALL LETTER A WITH CARON;Ll;0;L;0061 030C;;;;N;LATIN SMALL LETTER A HACEK;;01CD;;01CD
+01CF;LATIN CAPITAL LETTER I WITH CARON;Lu;0;L;0049 030C;;;;N;LATIN CAPITAL LETTER I HACEK;;;01D0;
+01D0;LATIN SMALL LETTER I WITH CARON;Ll;0;L;0069 030C;;;;N;LATIN SMALL LETTER I HACEK;;01CF;;01CF
+01D1;LATIN CAPITAL LETTER O WITH CARON;Lu;0;L;004F 030C;;;;N;LATIN CAPITAL LETTER O HACEK;;;01D2;
+01D2;LATIN SMALL LETTER O WITH CARON;Ll;0;L;006F 030C;;;;N;LATIN SMALL LETTER O HACEK;;01D1;;01D1
+01D3;LATIN CAPITAL LETTER U WITH CARON;Lu;0;L;0055 030C;;;;N;LATIN CAPITAL LETTER U HACEK;;;01D4;
+01D4;LATIN SMALL LETTER U WITH CARON;Ll;0;L;0075 030C;;;;N;LATIN SMALL LETTER U HACEK;;01D3;;01D3
+01D5;LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON;Lu;0;L;00DC 0304;;;;N;LATIN CAPITAL LETTER U DIAERESIS MACRON;;;01D6;
+01D6;LATIN SMALL LETTER U WITH DIAERESIS AND MACRON;Ll;0;L;00FC 0304;;;;N;LATIN SMALL LETTER U DIAERESIS MACRON;;01D5;;01D5
+01D7;LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE;Lu;0;L;00DC 0301;;;;N;LATIN CAPITAL LETTER U DIAERESIS ACUTE;;;01D8;
+01D8;LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE;Ll;0;L;00FC 0301;;;;N;LATIN SMALL LETTER U DIAERESIS ACUTE;;01D7;;01D7
+01D9;LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON;Lu;0;L;00DC 030C;;;;N;LATIN CAPITAL LETTER U DIAERESIS HACEK;;;01DA;
+01DA;LATIN SMALL LETTER U WITH DIAERESIS AND CARON;Ll;0;L;00FC 030C;;;;N;LATIN SMALL LETTER U DIAERESIS HACEK;;01D9;;01D9
+01DB;LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE;Lu;0;L;00DC 0300;;;;N;LATIN CAPITAL LETTER U DIAERESIS GRAVE;;;01DC;
+01DC;LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE;Ll;0;L;00FC 0300;;;;N;LATIN SMALL LETTER U DIAERESIS GRAVE;;01DB;;01DB
+01DD;LATIN SMALL LETTER TURNED E;Ll;0;L;;;;;N;;;018E;;018E
+01DE;LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON;Lu;0;L;00C4 0304;;;;N;LATIN CAPITAL LETTER A DIAERESIS MACRON;;;01DF;
+01DF;LATIN SMALL LETTER A WITH DIAERESIS AND MACRON;Ll;0;L;00E4 0304;;;;N;LATIN SMALL LETTER A DIAERESIS MACRON;;01DE;;01DE
+01E0;LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON;Lu;0;L;0226 0304;;;;N;LATIN CAPITAL LETTER A DOT MACRON;;;01E1;
+01E1;LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON;Ll;0;L;0227 0304;;;;N;LATIN SMALL LETTER A DOT MACRON;;01E0;;01E0
+01E2;LATIN CAPITAL LETTER AE WITH MACRON;Lu;0;L;00C6 0304;;;;N;LATIN CAPITAL LETTER A E MACRON;ash *;;01E3;
+01E3;LATIN SMALL LETTER AE WITH MACRON;Ll;0;L;00E6 0304;;;;N;LATIN SMALL LETTER A E MACRON;ash *;01E2;;01E2
+01E4;LATIN CAPITAL LETTER G WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER G BAR;;;01E5;
+01E5;LATIN SMALL LETTER G WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER G BAR;;01E4;;01E4
+01E6;LATIN CAPITAL LETTER G WITH CARON;Lu;0;L;0047 030C;;;;N;LATIN CAPITAL LETTER G HACEK;;;01E7;
+01E7;LATIN SMALL LETTER G WITH CARON;Ll;0;L;0067 030C;;;;N;LATIN SMALL LETTER G HACEK;;01E6;;01E6
+01E8;LATIN CAPITAL LETTER K WITH CARON;Lu;0;L;004B 030C;;;;N;LATIN CAPITAL LETTER K HACEK;;;01E9;
+01E9;LATIN SMALL LETTER K WITH CARON;Ll;0;L;006B 030C;;;;N;LATIN SMALL LETTER K HACEK;;01E8;;01E8
+01EA;LATIN CAPITAL LETTER O WITH OGONEK;Lu;0;L;004F 0328;;;;N;LATIN CAPITAL LETTER O OGONEK;;;01EB;
+01EB;LATIN SMALL LETTER O WITH OGONEK;Ll;0;L;006F 0328;;;;N;LATIN SMALL LETTER O OGONEK;;01EA;;01EA
+01EC;LATIN CAPITAL LETTER O WITH OGONEK AND MACRON;Lu;0;L;01EA 0304;;;;N;LATIN CAPITAL LETTER O OGONEK MACRON;;;01ED;
+01ED;LATIN SMALL LETTER O WITH OGONEK AND MACRON;Ll;0;L;01EB 0304;;;;N;LATIN SMALL LETTER O OGONEK MACRON;;01EC;;01EC
+01EE;LATIN CAPITAL LETTER EZH WITH CARON;Lu;0;L;01B7 030C;;;;N;LATIN CAPITAL LETTER YOGH HACEK;;;01EF;
+01EF;LATIN SMALL LETTER EZH WITH CARON;Ll;0;L;0292 030C;;;;N;LATIN SMALL LETTER YOGH HACEK;;01EE;;01EE
+01F0;LATIN SMALL LETTER J WITH CARON;Ll;0;L;006A 030C;;;;N;LATIN SMALL LETTER J HACEK;;;;
+01F1;LATIN CAPITAL LETTER DZ;Lu;0;L;<compat> 0044 005A;;;;N;;;;01F3;01F2
+01F2;LATIN CAPITAL LETTER D WITH SMALL LETTER Z;Lt;0;L;<compat> 0044 007A;;;;N;;;01F1;01F3;
+01F3;LATIN SMALL LETTER DZ;Ll;0;L;<compat> 0064 007A;;;;N;;;01F1;;01F2
+01F4;LATIN CAPITAL LETTER G WITH ACUTE;Lu;0;L;0047 0301;;;;N;;;;01F5;
+01F5;LATIN SMALL LETTER G WITH ACUTE;Ll;0;L;0067 0301;;;;N;;;01F4;;01F4
+01F6;LATIN CAPITAL LETTER HWAIR;Lu;0;L;;;;;N;;;;0195;
+01F7;LATIN CAPITAL LETTER WYNN;Lu;0;L;;;;;N;;;;01BF;
+01F8;LATIN CAPITAL LETTER N WITH GRAVE;Lu;0;L;004E 0300;;;;N;;;;01F9;
+01F9;LATIN SMALL LETTER N WITH GRAVE;Ll;0;L;006E 0300;;;;N;;;01F8;;01F8
+01FA;LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE;Lu;0;L;00C5 0301;;;;N;;;;01FB;
+01FB;LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE;Ll;0;L;00E5 0301;;;;N;;;01FA;;01FA
+01FC;LATIN CAPITAL LETTER AE WITH ACUTE;Lu;0;L;00C6 0301;;;;N;;ash *;;01FD;
+01FD;LATIN SMALL LETTER AE WITH ACUTE;Ll;0;L;00E6 0301;;;;N;;ash *;01FC;;01FC
+01FE;LATIN CAPITAL LETTER O WITH STROKE AND ACUTE;Lu;0;L;00D8 0301;;;;N;;;;01FF;
+01FF;LATIN SMALL LETTER O WITH STROKE AND ACUTE;Ll;0;L;00F8 0301;;;;N;;;01FE;;01FE
+0200;LATIN CAPITAL LETTER A WITH DOUBLE GRAVE;Lu;0;L;0041 030F;;;;N;;;;0201;
+0201;LATIN SMALL LETTER A WITH DOUBLE GRAVE;Ll;0;L;0061 030F;;;;N;;;0200;;0200
+0202;LATIN CAPITAL LETTER A WITH INVERTED BREVE;Lu;0;L;0041 0311;;;;N;;;;0203;
+0203;LATIN SMALL LETTER A WITH INVERTED BREVE;Ll;0;L;0061 0311;;;;N;;;0202;;0202
+0204;LATIN CAPITAL LETTER E WITH DOUBLE GRAVE;Lu;0;L;0045 030F;;;;N;;;;0205;
+0205;LATIN SMALL LETTER E WITH DOUBLE GRAVE;Ll;0;L;0065 030F;;;;N;;;0204;;0204
+0206;LATIN CAPITAL LETTER E WITH INVERTED BREVE;Lu;0;L;0045 0311;;;;N;;;;0207;
+0207;LATIN SMALL LETTER E WITH INVERTED BREVE;Ll;0;L;0065 0311;;;;N;;;0206;;0206
+0208;LATIN CAPITAL LETTER I WITH DOUBLE GRAVE;Lu;0;L;0049 030F;;;;N;;;;0209;
+0209;LATIN SMALL LETTER I WITH DOUBLE GRAVE;Ll;0;L;0069 030F;;;;N;;;0208;;0208
+020A;LATIN CAPITAL LETTER I WITH INVERTED BREVE;Lu;0;L;0049 0311;;;;N;;;;020B;
+020B;LATIN SMALL LETTER I WITH INVERTED BREVE;Ll;0;L;0069 0311;;;;N;;;020A;;020A
+020C;LATIN CAPITAL LETTER O WITH DOUBLE GRAVE;Lu;0;L;004F 030F;;;;N;;;;020D;
+020D;LATIN SMALL LETTER O WITH DOUBLE GRAVE;Ll;0;L;006F 030F;;;;N;;;020C;;020C
+020E;LATIN CAPITAL LETTER O WITH INVERTED BREVE;Lu;0;L;004F 0311;;;;N;;;;020F;
+020F;LATIN SMALL LETTER O WITH INVERTED BREVE;Ll;0;L;006F 0311;;;;N;;;020E;;020E
+0210;LATIN CAPITAL LETTER R WITH DOUBLE GRAVE;Lu;0;L;0052 030F;;;;N;;;;0211;
+0211;LATIN SMALL LETTER R WITH DOUBLE GRAVE;Ll;0;L;0072 030F;;;;N;;;0210;;0210
+0212;LATIN CAPITAL LETTER R WITH INVERTED BREVE;Lu;0;L;0052 0311;;;;N;;;;0213;
+0213;LATIN SMALL LETTER R WITH INVERTED BREVE;Ll;0;L;0072 0311;;;;N;;;0212;;0212
+0214;LATIN CAPITAL LETTER U WITH DOUBLE GRAVE;Lu;0;L;0055 030F;;;;N;;;;0215;
+0215;LATIN SMALL LETTER U WITH DOUBLE GRAVE;Ll;0;L;0075 030F;;;;N;;;0214;;0214
+0216;LATIN CAPITAL LETTER U WITH INVERTED BREVE;Lu;0;L;0055 0311;;;;N;;;;0217;
+0217;LATIN SMALL LETTER U WITH INVERTED BREVE;Ll;0;L;0075 0311;;;;N;;;0216;;0216
+0218;LATIN CAPITAL LETTER S WITH COMMA BELOW;Lu;0;L;0053 0326;;;;N;;*;;0219;
+0219;LATIN SMALL LETTER S WITH COMMA BELOW;Ll;0;L;0073 0326;;;;N;;*;0218;;0218
+021A;LATIN CAPITAL LETTER T WITH COMMA BELOW;Lu;0;L;0054 0326;;;;N;;*;;021B;
+021B;LATIN SMALL LETTER T WITH COMMA BELOW;Ll;0;L;0074 0326;;;;N;;*;021A;;021A
+021C;LATIN CAPITAL LETTER YOGH;Lu;0;L;;;;;N;;;;021D;
+021D;LATIN SMALL LETTER YOGH;Ll;0;L;;;;;N;;;021C;;021C
+021E;LATIN CAPITAL LETTER H WITH CARON;Lu;0;L;0048 030C;;;;N;;;;021F;
+021F;LATIN SMALL LETTER H WITH CARON;Ll;0;L;0068 030C;;;;N;;;021E;;021E
+0222;LATIN CAPITAL LETTER OU;Lu;0;L;;;;;N;;;;0223;
+0223;LATIN SMALL LETTER OU;Ll;0;L;;;;;N;;;0222;;0222
+0224;LATIN CAPITAL LETTER Z WITH HOOK;Lu;0;L;;;;;N;;;;0225;
+0225;LATIN SMALL LETTER Z WITH HOOK;Ll;0;L;;;;;N;;;0224;;0224
+0226;LATIN CAPITAL LETTER A WITH DOT ABOVE;Lu;0;L;0041 0307;;;;N;;;;0227;
+0227;LATIN SMALL LETTER A WITH DOT ABOVE;Ll;0;L;0061 0307;;;;N;;;0226;;0226
+0228;LATIN CAPITAL LETTER E WITH CEDILLA;Lu;0;L;0045 0327;;;;N;;;;0229;
+0229;LATIN SMALL LETTER E WITH CEDILLA;Ll;0;L;0065 0327;;;;N;;;0228;;0228
+022A;LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON;Lu;0;L;00D6 0304;;;;N;;;;022B;
+022B;LATIN SMALL LETTER O WITH DIAERESIS AND MACRON;Ll;0;L;00F6 0304;;;;N;;;022A;;022A
+022C;LATIN CAPITAL LETTER O WITH TILDE AND MACRON;Lu;0;L;00D5 0304;;;;N;;;;022D;
+022D;LATIN SMALL LETTER O WITH TILDE AND MACRON;Ll;0;L;00F5 0304;;;;N;;;022C;;022C
+022E;LATIN CAPITAL LETTER O WITH DOT ABOVE;Lu;0;L;004F 0307;;;;N;;;;022F;
+022F;LATIN SMALL LETTER O WITH DOT ABOVE;Ll;0;L;006F 0307;;;;N;;;022E;;022E
+0230;LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON;Lu;0;L;022E 0304;;;;N;;;;0231;
+0231;LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON;Ll;0;L;022F 0304;;;;N;;;0230;;0230
+0232;LATIN CAPITAL LETTER Y WITH MACRON;Lu;0;L;0059 0304;;;;N;;;;0233;
+0233;LATIN SMALL LETTER Y WITH MACRON;Ll;0;L;0079 0304;;;;N;;;0232;;0232
+0250;LATIN SMALL LETTER TURNED A;Ll;0;L;;;;;N;;;;;
+0251;LATIN SMALL LETTER ALPHA;Ll;0;L;;;;;N;LATIN SMALL LETTER SCRIPT A;;;;
+0252;LATIN SMALL LETTER TURNED ALPHA;Ll;0;L;;;;;N;LATIN SMALL LETTER TURNED SCRIPT A;;;;
+0253;LATIN SMALL LETTER B WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER B HOOK;;0181;;0181
+0254;LATIN SMALL LETTER OPEN O;Ll;0;L;;;;;N;;;0186;;0186
+0255;LATIN SMALL LETTER C WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER C CURL;;;;
+0256;LATIN SMALL LETTER D WITH TAIL;Ll;0;L;;;;;N;LATIN SMALL LETTER D RETROFLEX HOOK;;0189;;0189
+0257;LATIN SMALL LETTER D WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER D HOOK;;018A;;018A
+0258;LATIN SMALL LETTER REVERSED E;Ll;0;L;;;;;N;;;;;
+0259;LATIN SMALL LETTER SCHWA;Ll;0;L;;;;;N;;;018F;;018F
+025A;LATIN SMALL LETTER SCHWA WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER SCHWA HOOK;;;;
+025B;LATIN SMALL LETTER OPEN E;Ll;0;L;;;;;N;LATIN SMALL LETTER EPSILON;;0190;;0190
+025C;LATIN SMALL LETTER REVERSED OPEN E;Ll;0;L;;;;;N;LATIN SMALL LETTER REVERSED EPSILON;;;;
+025D;LATIN SMALL LETTER REVERSED OPEN E WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER REVERSED EPSILON HOOK;;;;
+025E;LATIN SMALL LETTER CLOSED REVERSED OPEN E;Ll;0;L;;;;;N;LATIN SMALL LETTER CLOSED REVERSED EPSILON;;;;
+025F;LATIN SMALL LETTER DOTLESS J WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER DOTLESS J BAR;;;;
+0260;LATIN SMALL LETTER G WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER G HOOK;;0193;;0193
+0261;LATIN SMALL LETTER SCRIPT G;Ll;0;L;;;;;N;;;;;
+0262;LATIN LETTER SMALL CAPITAL G;Ll;0;L;;;;;N;;;;;
+0263;LATIN SMALL LETTER GAMMA;Ll;0;L;;;;;N;;;0194;;0194
+0264;LATIN SMALL LETTER RAMS HORN;Ll;0;L;;;;;N;LATIN SMALL LETTER BABY GAMMA;;;;
+0265;LATIN SMALL LETTER TURNED H;Ll;0;L;;;;;N;;;;;
+0266;LATIN SMALL LETTER H WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER H HOOK;;;;
+0267;LATIN SMALL LETTER HENG WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER HENG HOOK;;;;
+0268;LATIN SMALL LETTER I WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER BARRED I;;0197;;0197
+0269;LATIN SMALL LETTER IOTA;Ll;0;L;;;;;N;;;0196;;0196
+026A;LATIN LETTER SMALL CAPITAL I;Ll;0;L;;;;;N;;;;;
+026B;LATIN SMALL LETTER L WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;;
+026C;LATIN SMALL LETTER L WITH BELT;Ll;0;L;;;;;N;LATIN SMALL LETTER L BELT;;;;
+026D;LATIN SMALL LETTER L WITH RETROFLEX HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER L RETROFLEX HOOK;;;;
+026E;LATIN SMALL LETTER LEZH;Ll;0;L;;;;;N;LATIN SMALL LETTER L YOGH;;;;
+026F;LATIN SMALL LETTER TURNED M;Ll;0;L;;;;;N;;;019C;;019C
+0270;LATIN SMALL LETTER TURNED M WITH LONG LEG;Ll;0;L;;;;;N;;;;;
+0271;LATIN SMALL LETTER M WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER M HOOK;;;;
+0272;LATIN SMALL LETTER N WITH LEFT HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER N HOOK;;019D;;019D
+0273;LATIN SMALL LETTER N WITH RETROFLEX HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER N RETROFLEX HOOK;;;;
+0274;LATIN LETTER SMALL CAPITAL N;Ll;0;L;;;;;N;;;;;
+0275;LATIN SMALL LETTER BARRED O;Ll;0;L;;;;;N;;;019F;;019F
+0276;LATIN LETTER SMALL CAPITAL OE;Ll;0;L;;;;;N;LATIN LETTER SMALL CAPITAL O E;;;;
+0277;LATIN SMALL LETTER CLOSED OMEGA;Ll;0;L;;;;;N;;;;;
+0278;LATIN SMALL LETTER PHI;Ll;0;L;;;;;N;;;;;
+0279;LATIN SMALL LETTER TURNED R;Ll;0;L;;;;;N;;;;;
+027A;LATIN SMALL LETTER TURNED R WITH LONG LEG;Ll;0;L;;;;;N;;;;;
+027B;LATIN SMALL LETTER TURNED R WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER TURNED R HOOK;;;;
+027C;LATIN SMALL LETTER R WITH LONG LEG;Ll;0;L;;;;;N;;;;;
+027D;LATIN SMALL LETTER R WITH TAIL;Ll;0;L;;;;;N;LATIN SMALL LETTER R HOOK;;;;
+027E;LATIN SMALL LETTER R WITH FISHHOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER FISHHOOK R;;;;
+027F;LATIN SMALL LETTER REVERSED R WITH FISHHOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER REVERSED FISHHOOK R;;;;
+0280;LATIN LETTER SMALL CAPITAL R;Ll;0;L;;;;;N;;;01A6;;01A6
+0281;LATIN LETTER SMALL CAPITAL INVERTED R;Ll;0;L;;;;;N;;;;;
+0282;LATIN SMALL LETTER S WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER S HOOK;;;;
+0283;LATIN SMALL LETTER ESH;Ll;0;L;;;;;N;;;01A9;;01A9
+0284;LATIN SMALL LETTER DOTLESS J WITH STROKE AND HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER DOTLESS J BAR HOOK;;;;
+0285;LATIN SMALL LETTER SQUAT REVERSED ESH;Ll;0;L;;;;;N;;;;;
+0286;LATIN SMALL LETTER ESH WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER ESH CURL;;;;
+0287;LATIN SMALL LETTER TURNED T;Ll;0;L;;;;;N;;;;;
+0288;LATIN SMALL LETTER T WITH RETROFLEX HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER T RETROFLEX HOOK;;01AE;;01AE
+0289;LATIN SMALL LETTER U BAR;Ll;0;L;;;;;N;;;;;
+028A;LATIN SMALL LETTER UPSILON;Ll;0;L;;;;;N;;;01B1;;01B1
+028B;LATIN SMALL LETTER V WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER SCRIPT V;;01B2;;01B2
+028C;LATIN SMALL LETTER TURNED V;Ll;0;L;;;;;N;;;;;
+028D;LATIN SMALL LETTER TURNED W;Ll;0;L;;;;;N;;;;;
+028E;LATIN SMALL LETTER TURNED Y;Ll;0;L;;;;;N;;;;;
+028F;LATIN LETTER SMALL CAPITAL Y;Ll;0;L;;;;;N;;;;;
+0290;LATIN SMALL LETTER Z WITH RETROFLEX HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER Z RETROFLEX HOOK;;;;
+0291;LATIN SMALL LETTER Z WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER Z CURL;;;;
+0292;LATIN SMALL LETTER EZH;Ll;0;L;;;;;N;LATIN SMALL LETTER YOGH;;01B7;;01B7
+0293;LATIN SMALL LETTER EZH WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER YOGH CURL;;;;
+0294;LATIN LETTER GLOTTAL STOP;Ll;0;L;;;;;N;;;;;
+0295;LATIN LETTER PHARYNGEAL VOICED FRICATIVE;Ll;0;L;;;;;N;LATIN LETTER REVERSED GLOTTAL STOP;;;;
+0296;LATIN LETTER INVERTED GLOTTAL STOP;Ll;0;L;;;;;N;;;;;
+0297;LATIN LETTER STRETCHED C;Ll;0;L;;;;;N;;;;;
+0298;LATIN LETTER BILABIAL CLICK;Ll;0;L;;;;;N;LATIN LETTER BULLSEYE;;;;
+0299;LATIN LETTER SMALL CAPITAL B;Ll;0;L;;;;;N;;;;;
+029A;LATIN SMALL LETTER CLOSED OPEN E;Ll;0;L;;;;;N;LATIN SMALL LETTER CLOSED EPSILON;;;;
+029B;LATIN LETTER SMALL CAPITAL G WITH HOOK;Ll;0;L;;;;;N;LATIN LETTER SMALL CAPITAL G HOOK;;;;
+029C;LATIN LETTER SMALL CAPITAL H;Ll;0;L;;;;;N;;;;;
+029D;LATIN SMALL LETTER J WITH CROSSED-TAIL;Ll;0;L;;;;;N;LATIN SMALL LETTER CROSSED-TAIL J;;;;
+029E;LATIN SMALL LETTER TURNED K;Ll;0;L;;;;;N;;;;;
+029F;LATIN LETTER SMALL CAPITAL L;Ll;0;L;;;;;N;;;;;
+02A0;LATIN SMALL LETTER Q WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER Q HOOK;;;;
+02A1;LATIN LETTER GLOTTAL STOP WITH STROKE;Ll;0;L;;;;;N;LATIN LETTER GLOTTAL STOP BAR;;;;
+02A2;LATIN LETTER REVERSED GLOTTAL STOP WITH STROKE;Ll;0;L;;;;;N;LATIN LETTER REVERSED GLOTTAL STOP BAR;;;;
+02A3;LATIN SMALL LETTER DZ DIGRAPH;Ll;0;L;;;;;N;LATIN SMALL LETTER D Z;;;;
+02A4;LATIN SMALL LETTER DEZH DIGRAPH;Ll;0;L;;;;;N;LATIN SMALL LETTER D YOGH;;;;
+02A5;LATIN SMALL LETTER DZ DIGRAPH WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER D Z CURL;;;;
+02A6;LATIN SMALL LETTER TS DIGRAPH;Ll;0;L;;;;;N;LATIN SMALL LETTER T S;;;;
+02A7;LATIN SMALL LETTER TESH DIGRAPH;Ll;0;L;;;;;N;LATIN SMALL LETTER T ESH;;;;
+02A8;LATIN SMALL LETTER TC DIGRAPH WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER T C CURL;;;;
+02A9;LATIN SMALL LETTER FENG DIGRAPH;Ll;0;L;;;;;N;;;;;
+02AA;LATIN SMALL LETTER LS DIGRAPH;Ll;0;L;;;;;N;;;;;
+02AB;LATIN SMALL LETTER LZ DIGRAPH;Ll;0;L;;;;;N;;;;;
+02AC;LATIN LETTER BILABIAL PERCUSSIVE;Ll;0;L;;;;;N;;;;;
+02AD;LATIN LETTER BIDENTAL PERCUSSIVE;Ll;0;L;;;;;N;;;;;
+02B0;MODIFIER LETTER SMALL H;Lm;0;L;<super> 0068;;;;N;;;;;
+02B1;MODIFIER LETTER SMALL H WITH HOOK;Lm;0;L;<super> 0266;;;;N;MODIFIER LETTER SMALL H HOOK;;;;
+02B2;MODIFIER LETTER SMALL J;Lm;0;L;<super> 006A;;;;N;;;;;
+02B3;MODIFIER LETTER SMALL R;Lm;0;L;<super> 0072;;;;N;;;;;
+02B4;MODIFIER LETTER SMALL TURNED R;Lm;0;L;<super> 0279;;;;N;;;;;
+02B5;MODIFIER LETTER SMALL TURNED R WITH HOOK;Lm;0;L;<super> 027B;;;;N;MODIFIER LETTER SMALL TURNED R HOOK;;;;
+02B6;MODIFIER LETTER SMALL CAPITAL INVERTED R;Lm;0;L;<super> 0281;;;;N;;;;;
+02B7;MODIFIER LETTER SMALL W;Lm;0;L;<super> 0077;;;;N;;;;;
+02B8;MODIFIER LETTER SMALL Y;Lm;0;L;<super> 0079;;;;N;;;;;
+02B9;MODIFIER LETTER PRIME;Sk;0;ON;;;;;N;;;;;
+02BA;MODIFIER LETTER DOUBLE PRIME;Sk;0;ON;;;;;N;;;;;
+02BB;MODIFIER LETTER TURNED COMMA;Lm;0;L;;;;;N;;;;;
+02BC;MODIFIER LETTER APOSTROPHE;Lm;0;L;;;;;N;;;;;
+02BD;MODIFIER LETTER REVERSED COMMA;Lm;0;L;;;;;N;;;;;
+02BE;MODIFIER LETTER RIGHT HALF RING;Lm;0;L;;;;;N;;;;;
+02BF;MODIFIER LETTER LEFT HALF RING;Lm;0;L;;;;;N;;;;;
+02C0;MODIFIER LETTER GLOTTAL STOP;Lm;0;L;;;;;N;;;;;
+02C1;MODIFIER LETTER REVERSED GLOTTAL STOP;Lm;0;L;;;;;N;;;;;
+02C2;MODIFIER LETTER LEFT ARROWHEAD;Sk;0;ON;;;;;N;;;;;
+02C3;MODIFIER LETTER RIGHT ARROWHEAD;Sk;0;ON;;;;;N;;;;;
+02C4;MODIFIER LETTER UP ARROWHEAD;Sk;0;ON;;;;;N;;;;;
+02C5;MODIFIER LETTER DOWN ARROWHEAD;Sk;0;ON;;;;;N;;;;;
+02C6;MODIFIER LETTER CIRCUMFLEX ACCENT;Sk;0;ON;;;;;N;MODIFIER LETTER CIRCUMFLEX;;;;
+02C7;CARON;Sk;0;ON;;;;;N;MODIFIER LETTER HACEK;Mandarin Chinese third tone;;;
+02C8;MODIFIER LETTER VERTICAL LINE;Sk;0;ON;;;;;N;;;;;
+02C9;MODIFIER LETTER MACRON;Sk;0;ON;;;;;N;;Mandarin Chinese first tone;;;
+02CA;MODIFIER LETTER ACUTE ACCENT;Sk;0;ON;;;;;N;MODIFIER LETTER ACUTE;Mandarin Chinese second tone;;;
+02CB;MODIFIER LETTER GRAVE ACCENT;Sk;0;ON;;;;;N;MODIFIER LETTER GRAVE;Mandarin Chinese fourth tone;;;
+02CC;MODIFIER LETTER LOW VERTICAL LINE;Sk;0;ON;;;;;N;;;;;
+02CD;MODIFIER LETTER LOW MACRON;Sk;0;ON;;;;;N;;;;;
+02CE;MODIFIER LETTER LOW GRAVE ACCENT;Sk;0;ON;;;;;N;MODIFIER LETTER LOW GRAVE;;;;
+02CF;MODIFIER LETTER LOW ACUTE ACCENT;Sk;0;ON;;;;;N;MODIFIER LETTER LOW ACUTE;;;;
+02D0;MODIFIER LETTER TRIANGULAR COLON;Lm;0;L;;;;;N;;;;;
+02D1;MODIFIER LETTER HALF TRIANGULAR COLON;Lm;0;L;;;;;N;;;;;
+02D2;MODIFIER LETTER CENTRED RIGHT HALF RING;Sk;0;ON;;;;;N;MODIFIER LETTER CENTERED RIGHT HALF RING;;;;
+02D3;MODIFIER LETTER CENTRED LEFT HALF RING;Sk;0;ON;;;;;N;MODIFIER LETTER CENTERED LEFT HALF RING;;;;
+02D4;MODIFIER LETTER UP TACK;Sk;0;ON;;;;;N;;;;;
+02D5;MODIFIER LETTER DOWN TACK;Sk;0;ON;;;;;N;;;;;
+02D6;MODIFIER LETTER PLUS SIGN;Sk;0;ON;;;;;N;;;;;
+02D7;MODIFIER LETTER MINUS SIGN;Sk;0;ON;;;;;N;;;;;
+02D8;BREVE;Sk;0;ON;<compat> 0020 0306;;;;N;SPACING BREVE;;;;
+02D9;DOT ABOVE;Sk;0;ON;<compat> 0020 0307;;;;N;SPACING DOT ABOVE;Mandarin Chinese light tone;;;
+02DA;RING ABOVE;Sk;0;ON;<compat> 0020 030A;;;;N;SPACING RING ABOVE;;;;
+02DB;OGONEK;Sk;0;ON;<compat> 0020 0328;;;;N;SPACING OGONEK;;;;
+02DC;SMALL TILDE;Sk;0;ON;<compat> 0020 0303;;;;N;SPACING TILDE;;;;
+02DD;DOUBLE ACUTE ACCENT;Sk;0;ON;<compat> 0020 030B;;;;N;SPACING DOUBLE ACUTE;;;;
+02DE;MODIFIER LETTER RHOTIC HOOK;Sk;0;ON;;;;;N;;;;;
+02DF;MODIFIER LETTER CROSS ACCENT;Sk;0;ON;;;;;N;;;;;
+02E0;MODIFIER LETTER SMALL GAMMA;Lm;0;L;<super> 0263;;;;N;;;;;
+02E1;MODIFIER LETTER SMALL L;Lm;0;L;<super> 006C;;;;N;;;;;
+02E2;MODIFIER LETTER SMALL S;Lm;0;L;<super> 0073;;;;N;;;;;
+02E3;MODIFIER LETTER SMALL X;Lm;0;L;<super> 0078;;;;N;;;;;
+02E4;MODIFIER LETTER SMALL REVERSED GLOTTAL STOP;Lm;0;L;<super> 0295;;;;N;;;;;
+02E5;MODIFIER LETTER EXTRA-HIGH TONE BAR;Sk;0;ON;;;;;N;;;;;
+02E6;MODIFIER LETTER HIGH TONE BAR;Sk;0;ON;;;;;N;;;;;
+02E7;MODIFIER LETTER MID TONE BAR;Sk;0;ON;;;;;N;;;;;
+02E8;MODIFIER LETTER LOW TONE BAR;Sk;0;ON;;;;;N;;;;;
+02E9;MODIFIER LETTER EXTRA-LOW TONE BAR;Sk;0;ON;;;;;N;;;;;
+02EA;MODIFIER LETTER YIN DEPARTING TONE MARK;Sk;0;ON;;;;;N;;;;;
+02EB;MODIFIER LETTER YANG DEPARTING TONE MARK;Sk;0;ON;;;;;N;;;;;
+02EC;MODIFIER LETTER VOICING;Sk;0;ON;;;;;N;;;;;
+02ED;MODIFIER LETTER UNASPIRATED;Sk;0;ON;;;;;N;;;;;
+02EE;MODIFIER LETTER DOUBLE APOSTROPHE;Lm;0;L;;;;;N;;;;;
+0300;COMBINING GRAVE ACCENT;Mn;230;NSM;;;;;N;NON-SPACING GRAVE;Varia;;;
+0301;COMBINING ACUTE ACCENT;Mn;230;NSM;;;;;N;NON-SPACING ACUTE;Oxia;;;
+0302;COMBINING CIRCUMFLEX ACCENT;Mn;230;NSM;;;;;N;NON-SPACING CIRCUMFLEX;;;;
+0303;COMBINING TILDE;Mn;230;NSM;;;;;N;NON-SPACING TILDE;;;;
+0304;COMBINING MACRON;Mn;230;NSM;;;;;N;NON-SPACING MACRON;;;;
+0305;COMBINING OVERLINE;Mn;230;NSM;;;;;N;NON-SPACING OVERSCORE;;;;
+0306;COMBINING BREVE;Mn;230;NSM;;;;;N;NON-SPACING BREVE;Vrachy;;;
+0307;COMBINING DOT ABOVE;Mn;230;NSM;;;;;N;NON-SPACING DOT ABOVE;;;;
+0308;COMBINING DIAERESIS;Mn;230;NSM;;;;;N;NON-SPACING DIAERESIS;Dialytika;;;
+0309;COMBINING HOOK ABOVE;Mn;230;NSM;;;;;N;NON-SPACING HOOK ABOVE;;;;
+030A;COMBINING RING ABOVE;Mn;230;NSM;;;;;N;NON-SPACING RING ABOVE;;;;
+030B;COMBINING DOUBLE ACUTE ACCENT;Mn;230;NSM;;;;;N;NON-SPACING DOUBLE ACUTE;;;;
+030C;COMBINING CARON;Mn;230;NSM;;;;;N;NON-SPACING HACEK;;;;
+030D;COMBINING VERTICAL LINE ABOVE;Mn;230;NSM;;;;;N;NON-SPACING VERTICAL LINE ABOVE;Tonos;;;
+030E;COMBINING DOUBLE VERTICAL LINE ABOVE;Mn;230;NSM;;;;;N;NON-SPACING DOUBLE VERTICAL LINE ABOVE;;;;
+030F;COMBINING DOUBLE GRAVE ACCENT;Mn;230;NSM;;;;;N;NON-SPACING DOUBLE GRAVE;;;;
+0310;COMBINING CANDRABINDU;Mn;230;NSM;;;;;N;NON-SPACING CANDRABINDU;;;;
+0311;COMBINING INVERTED BREVE;Mn;230;NSM;;;;;N;NON-SPACING INVERTED BREVE;;;;
+0312;COMBINING TURNED COMMA ABOVE;Mn;230;NSM;;;;;N;NON-SPACING TURNED COMMA ABOVE;;;;
+0313;COMBINING COMMA ABOVE;Mn;230;NSM;;;;;N;NON-SPACING COMMA ABOVE;Psili;;;
+0314;COMBINING REVERSED COMMA ABOVE;Mn;230;NSM;;;;;N;NON-SPACING REVERSED COMMA ABOVE;Dasia;;;
+0315;COMBINING COMMA ABOVE RIGHT;Mn;232;NSM;;;;;N;NON-SPACING COMMA ABOVE RIGHT;;;;
+0316;COMBINING GRAVE ACCENT BELOW;Mn;220;NSM;;;;;N;NON-SPACING GRAVE BELOW;;;;
+0317;COMBINING ACUTE ACCENT BELOW;Mn;220;NSM;;;;;N;NON-SPACING ACUTE BELOW;;;;
+0318;COMBINING LEFT TACK BELOW;Mn;220;NSM;;;;;N;NON-SPACING LEFT TACK BELOW;;;;
+0319;COMBINING RIGHT TACK BELOW;Mn;220;NSM;;;;;N;NON-SPACING RIGHT TACK BELOW;;;;
+031A;COMBINING LEFT ANGLE ABOVE;Mn;232;NSM;;;;;N;NON-SPACING LEFT ANGLE ABOVE;;;;
+031B;COMBINING HORN;Mn;216;NSM;;;;;N;NON-SPACING HORN;;;;
+031C;COMBINING LEFT HALF RING BELOW;Mn;220;NSM;;;;;N;NON-SPACING LEFT HALF RING BELOW;;;;
+031D;COMBINING UP TACK BELOW;Mn;220;NSM;;;;;N;NON-SPACING UP TACK BELOW;;;;
+031E;COMBINING DOWN TACK BELOW;Mn;220;NSM;;;;;N;NON-SPACING DOWN TACK BELOW;;;;
+031F;COMBINING PLUS SIGN BELOW;Mn;220;NSM;;;;;N;NON-SPACING PLUS SIGN BELOW;;;;
+0320;COMBINING MINUS SIGN BELOW;Mn;220;NSM;;;;;N;NON-SPACING MINUS SIGN BELOW;;;;
+0321;COMBINING PALATALIZED HOOK BELOW;Mn;202;NSM;;;;;N;NON-SPACING PALATALIZED HOOK BELOW;;;;
+0322;COMBINING RETROFLEX HOOK BELOW;Mn;202;NSM;;;;;N;NON-SPACING RETROFLEX HOOK BELOW;;;;
+0323;COMBINING DOT BELOW;Mn;220;NSM;;;;;N;NON-SPACING DOT BELOW;;;;
+0324;COMBINING DIAERESIS BELOW;Mn;220;NSM;;;;;N;NON-SPACING DOUBLE DOT BELOW;;;;
+0325;COMBINING RING BELOW;Mn;220;NSM;;;;;N;NON-SPACING RING BELOW;;;;
+0326;COMBINING COMMA BELOW;Mn;220;NSM;;;;;N;NON-SPACING COMMA BELOW;;;;
+0327;COMBINING CEDILLA;Mn;202;NSM;;;;;N;NON-SPACING CEDILLA;;;;
+0328;COMBINING OGONEK;Mn;202;NSM;;;;;N;NON-SPACING OGONEK;;;;
+0329;COMBINING VERTICAL LINE BELOW;Mn;220;NSM;;;;;N;NON-SPACING VERTICAL LINE BELOW;;;;
+032A;COMBINING BRIDGE BELOW;Mn;220;NSM;;;;;N;NON-SPACING BRIDGE BELOW;;;;
+032B;COMBINING INVERTED DOUBLE ARCH BELOW;Mn;220;NSM;;;;;N;NON-SPACING INVERTED DOUBLE ARCH BELOW;;;;
+032C;COMBINING CARON BELOW;Mn;220;NSM;;;;;N;NON-SPACING HACEK BELOW;;;;
+032D;COMBINING CIRCUMFLEX ACCENT BELOW;Mn;220;NSM;;;;;N;NON-SPACING CIRCUMFLEX BELOW;;;;
+032E;COMBINING BREVE BELOW;Mn;220;NSM;;;;;N;NON-SPACING BREVE BELOW;;;;
+032F;COMBINING INVERTED BREVE BELOW;Mn;220;NSM;;;;;N;NON-SPACING INVERTED BREVE BELOW;;;;
+0330;COMBINING TILDE BELOW;Mn;220;NSM;;;;;N;NON-SPACING TILDE BELOW;;;;
+0331;COMBINING MACRON BELOW;Mn;220;NSM;;;;;N;NON-SPACING MACRON BELOW;;;;
+0332;COMBINING LOW LINE;Mn;220;NSM;;;;;N;NON-SPACING UNDERSCORE;;;;
+0333;COMBINING DOUBLE LOW LINE;Mn;220;NSM;;;;;N;NON-SPACING DOUBLE UNDERSCORE;;;;
+0334;COMBINING TILDE OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING TILDE OVERLAY;;;;
+0335;COMBINING SHORT STROKE OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING SHORT BAR OVERLAY;;;;
+0336;COMBINING LONG STROKE OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING LONG BAR OVERLAY;;;;
+0337;COMBINING SHORT SOLIDUS OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING SHORT SLASH OVERLAY;;;;
+0338;COMBINING LONG SOLIDUS OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING LONG SLASH OVERLAY;;;;
+0339;COMBINING RIGHT HALF RING BELOW;Mn;220;NSM;;;;;N;NON-SPACING RIGHT HALF RING BELOW;;;;
+033A;COMBINING INVERTED BRIDGE BELOW;Mn;220;NSM;;;;;N;NON-SPACING INVERTED BRIDGE BELOW;;;;
+033B;COMBINING SQUARE BELOW;Mn;220;NSM;;;;;N;NON-SPACING SQUARE BELOW;;;;
+033C;COMBINING SEAGULL BELOW;Mn;220;NSM;;;;;N;NON-SPACING SEAGULL BELOW;;;;
+033D;COMBINING X ABOVE;Mn;230;NSM;;;;;N;NON-SPACING X ABOVE;;;;
+033E;COMBINING VERTICAL TILDE;Mn;230;NSM;;;;;N;NON-SPACING VERTICAL TILDE;;;;
+033F;COMBINING DOUBLE OVERLINE;Mn;230;NSM;;;;;N;NON-SPACING DOUBLE OVERSCORE;;;;
+0340;COMBINING GRAVE TONE MARK;Mn;230;NSM;0300;;;;N;NON-SPACING GRAVE TONE MARK;Vietnamese;;;
+0341;COMBINING ACUTE TONE MARK;Mn;230;NSM;0301;;;;N;NON-SPACING ACUTE TONE MARK;Vietnamese;;;
+0342;COMBINING GREEK PERISPOMENI;Mn;230;NSM;;;;;N;;;;;
+0343;COMBINING GREEK KORONIS;Mn;230;NSM;0313;;;;N;;;;;
+0344;COMBINING GREEK DIALYTIKA TONOS;Mn;230;NSM;0308 0301;;;;N;GREEK NON-SPACING DIAERESIS TONOS;;;;
+0345;COMBINING GREEK YPOGEGRAMMENI;Mn;240;NSM;;;;;N;GREEK NON-SPACING IOTA BELOW;;0399;;0399
+0346;COMBINING BRIDGE ABOVE;Mn;230;NSM;;;;;N;;;;;
+0347;COMBINING EQUALS SIGN BELOW;Mn;220;NSM;;;;;N;;;;;
+0348;COMBINING DOUBLE VERTICAL LINE BELOW;Mn;220;NSM;;;;;N;;;;;
+0349;COMBINING LEFT ANGLE BELOW;Mn;220;NSM;;;;;N;;;;;
+034A;COMBINING NOT TILDE ABOVE;Mn;230;NSM;;;;;N;;;;;
+034B;COMBINING HOMOTHETIC ABOVE;Mn;230;NSM;;;;;N;;;;;
+034C;COMBINING ALMOST EQUAL TO ABOVE;Mn;230;NSM;;;;;N;;;;;
+034D;COMBINING LEFT RIGHT ARROW BELOW;Mn;220;NSM;;;;;N;;;;;
+034E;COMBINING UPWARDS ARROW BELOW;Mn;220;NSM;;;;;N;;;;;
+0360;COMBINING DOUBLE TILDE;Mn;234;NSM;;;;;N;;;;;
+0361;COMBINING DOUBLE INVERTED BREVE;Mn;234;NSM;;;;;N;;;;;
+0362;COMBINING DOUBLE RIGHTWARDS ARROW BELOW;Mn;233;NSM;;;;;N;;;;;
+0374;GREEK NUMERAL SIGN;Sk;0;ON;02B9;;;;N;GREEK UPPER NUMERAL SIGN;Dexia keraia;;;
+0375;GREEK LOWER NUMERAL SIGN;Sk;0;ON;;;;;N;;Aristeri keraia;;;
+037A;GREEK YPOGEGRAMMENI;Lm;0;L;<compat> 0020 0345;;;;N;GREEK SPACING IOTA BELOW;;;;
+037E;GREEK QUESTION MARK;Po;0;ON;003B;;;;N;;Erotimatiko;;;
+0384;GREEK TONOS;Sk;0;ON;<compat> 0020 0301;;;;N;GREEK SPACING TONOS;;;;
+0385;GREEK DIALYTIKA TONOS;Sk;0;ON;00A8 0301;;;;N;GREEK SPACING DIAERESIS TONOS;;;;
+0386;GREEK CAPITAL LETTER ALPHA WITH TONOS;Lu;0;L;0391 0301;;;;N;GREEK CAPITAL LETTER ALPHA TONOS;;;03AC;
+0387;GREEK ANO TELEIA;Po;0;ON;00B7;;;;N;;;;;
+0388;GREEK CAPITAL LETTER EPSILON WITH TONOS;Lu;0;L;0395 0301;;;;N;GREEK CAPITAL LETTER EPSILON TONOS;;;03AD;
+0389;GREEK CAPITAL LETTER ETA WITH TONOS;Lu;0;L;0397 0301;;;;N;GREEK CAPITAL LETTER ETA TONOS;;;03AE;
+038A;GREEK CAPITAL LETTER IOTA WITH TONOS;Lu;0;L;0399 0301;;;;N;GREEK CAPITAL LETTER IOTA TONOS;;;03AF;
+038C;GREEK CAPITAL LETTER OMICRON WITH TONOS;Lu;0;L;039F 0301;;;;N;GREEK CAPITAL LETTER OMICRON TONOS;;;03CC;
+038E;GREEK CAPITAL LETTER UPSILON WITH TONOS;Lu;0;L;03A5 0301;;;;N;GREEK CAPITAL LETTER UPSILON TONOS;;;03CD;
+038F;GREEK CAPITAL LETTER OMEGA WITH TONOS;Lu;0;L;03A9 0301;;;;N;GREEK CAPITAL LETTER OMEGA TONOS;;;03CE;
+0390;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS;Ll;0;L;03CA 0301;;;;N;GREEK SMALL LETTER IOTA DIAERESIS TONOS;;;;
+0391;GREEK CAPITAL LETTER ALPHA;Lu;0;L;;;;;N;;;;03B1;
+0392;GREEK CAPITAL LETTER BETA;Lu;0;L;;;;;N;;;;03B2;
+0393;GREEK CAPITAL LETTER GAMMA;Lu;0;L;;;;;N;;;;03B3;
+0394;GREEK CAPITAL LETTER DELTA;Lu;0;L;;;;;N;;;;03B4;
+0395;GREEK CAPITAL LETTER EPSILON;Lu;0;L;;;;;N;;;;03B5;
+0396;GREEK CAPITAL LETTER ZETA;Lu;0;L;;;;;N;;;;03B6;
+0397;GREEK CAPITAL LETTER ETA;Lu;0;L;;;;;N;;;;03B7;
+0398;GREEK CAPITAL LETTER THETA;Lu;0;L;;;;;N;;;;03B8;
+0399;GREEK CAPITAL LETTER IOTA;Lu;0;L;;;;;N;;;;03B9;
+039A;GREEK CAPITAL LETTER KAPPA;Lu;0;L;;;;;N;;;;03BA;
+039B;GREEK CAPITAL LETTER LAMDA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER LAMBDA;;;03BB;
+039C;GREEK CAPITAL LETTER MU;Lu;0;L;;;;;N;;;;03BC;
+039D;GREEK CAPITAL LETTER NU;Lu;0;L;;;;;N;;;;03BD;
+039E;GREEK CAPITAL LETTER XI;Lu;0;L;;;;;N;;;;03BE;
+039F;GREEK CAPITAL LETTER OMICRON;Lu;0;L;;;;;N;;;;03BF;
+03A0;GREEK CAPITAL LETTER PI;Lu;0;L;;;;;N;;;;03C0;
+03A1;GREEK CAPITAL LETTER RHO;Lu;0;L;;;;;N;;;;03C1;
+03A3;GREEK CAPITAL LETTER SIGMA;Lu;0;L;;;;;N;;;;03C3;
+03A4;GREEK CAPITAL LETTER TAU;Lu;0;L;;;;;N;;;;03C4;
+03A5;GREEK CAPITAL LETTER UPSILON;Lu;0;L;;;;;N;;;;03C5;
+03A6;GREEK CAPITAL LETTER PHI;Lu;0;L;;;;;N;;;;03C6;
+03A7;GREEK CAPITAL LETTER CHI;Lu;0;L;;;;;N;;;;03C7;
+03A8;GREEK CAPITAL LETTER PSI;Lu;0;L;;;;;N;;;;03C8;
+03A9;GREEK CAPITAL LETTER OMEGA;Lu;0;L;;;;;N;;;;03C9;
+03AA;GREEK CAPITAL LETTER IOTA WITH DIALYTIKA;Lu;0;L;0399 0308;;;;N;GREEK CAPITAL LETTER IOTA DIAERESIS;;;03CA;
+03AB;GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA;Lu;0;L;03A5 0308;;;;N;GREEK CAPITAL LETTER UPSILON DIAERESIS;;;03CB;
+03AC;GREEK SMALL LETTER ALPHA WITH TONOS;Ll;0;L;03B1 0301;;;;N;GREEK SMALL LETTER ALPHA TONOS;;0386;;0386
+03AD;GREEK SMALL LETTER EPSILON WITH TONOS;Ll;0;L;03B5 0301;;;;N;GREEK SMALL LETTER EPSILON TONOS;;0388;;0388
+03AE;GREEK SMALL LETTER ETA WITH TONOS;Ll;0;L;03B7 0301;;;;N;GREEK SMALL LETTER ETA TONOS;;0389;;0389
+03AF;GREEK SMALL LETTER IOTA WITH TONOS;Ll;0;L;03B9 0301;;;;N;GREEK SMALL LETTER IOTA TONOS;;038A;;038A
+03B0;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS;Ll;0;L;03CB 0301;;;;N;GREEK SMALL LETTER UPSILON DIAERESIS TONOS;;;;
+03B1;GREEK SMALL LETTER ALPHA;Ll;0;L;;;;;N;;;0391;;0391
+03B2;GREEK SMALL LETTER BETA;Ll;0;L;;;;;N;;;0392;;0392
+03B3;GREEK SMALL LETTER GAMMA;Ll;0;L;;;;;N;;;0393;;0393
+03B4;GREEK SMALL LETTER DELTA;Ll;0;L;;;;;N;;;0394;;0394
+03B5;GREEK SMALL LETTER EPSILON;Ll;0;L;;;;;N;;;0395;;0395
+03B6;GREEK SMALL LETTER ZETA;Ll;0;L;;;;;N;;;0396;;0396
+03B7;GREEK SMALL LETTER ETA;Ll;0;L;;;;;N;;;0397;;0397
+03B8;GREEK SMALL LETTER THETA;Ll;0;L;;;;;N;;;0398;;0398
+03B9;GREEK SMALL LETTER IOTA;Ll;0;L;;;;;N;;;0399;;0399
+03BA;GREEK SMALL LETTER KAPPA;Ll;0;L;;;;;N;;;039A;;039A
+03BB;GREEK SMALL LETTER LAMDA;Ll;0;L;;;;;N;GREEK SMALL LETTER LAMBDA;;039B;;039B
+03BC;GREEK SMALL LETTER MU;Ll;0;L;;;;;N;;;039C;;039C
+03BD;GREEK SMALL LETTER NU;Ll;0;L;;;;;N;;;039D;;039D
+03BE;GREEK SMALL LETTER XI;Ll;0;L;;;;;N;;;039E;;039E
+03BF;GREEK SMALL LETTER OMICRON;Ll;0;L;;;;;N;;;039F;;039F
+03C0;GREEK SMALL LETTER PI;Ll;0;L;;;;;N;;;03A0;;03A0
+03C1;GREEK SMALL LETTER RHO;Ll;0;L;;;;;N;;;03A1;;03A1
+03C2;GREEK SMALL LETTER FINAL SIGMA;Ll;0;L;;;;;N;;;03A3;;03A3
+03C3;GREEK SMALL LETTER SIGMA;Ll;0;L;;;;;N;;;03A3;;03A3
+03C4;GREEK SMALL LETTER TAU;Ll;0;L;;;;;N;;;03A4;;03A4
+03C5;GREEK SMALL LETTER UPSILON;Ll;0;L;;;;;N;;;03A5;;03A5
+03C6;GREEK SMALL LETTER PHI;Ll;0;L;;;;;N;;;03A6;;03A6
+03C7;GREEK SMALL LETTER CHI;Ll;0;L;;;;;N;;;03A7;;03A7
+03C8;GREEK SMALL LETTER PSI;Ll;0;L;;;;;N;;;03A8;;03A8
+03C9;GREEK SMALL LETTER OMEGA;Ll;0;L;;;;;N;;;03A9;;03A9
+03CA;GREEK SMALL LETTER IOTA WITH DIALYTIKA;Ll;0;L;03B9 0308;;;;N;GREEK SMALL LETTER IOTA DIAERESIS;;03AA;;03AA
+03CB;GREEK SMALL LETTER UPSILON WITH DIALYTIKA;Ll;0;L;03C5 0308;;;;N;GREEK SMALL LETTER UPSILON DIAERESIS;;03AB;;03AB
+03CC;GREEK SMALL LETTER OMICRON WITH TONOS;Ll;0;L;03BF 0301;;;;N;GREEK SMALL LETTER OMICRON TONOS;;038C;;038C
+03CD;GREEK SMALL LETTER UPSILON WITH TONOS;Ll;0;L;03C5 0301;;;;N;GREEK SMALL LETTER UPSILON TONOS;;038E;;038E
+03CE;GREEK SMALL LETTER OMEGA WITH TONOS;Ll;0;L;03C9 0301;;;;N;GREEK SMALL LETTER OMEGA TONOS;;038F;;038F
+03D0;GREEK BETA SYMBOL;Ll;0;L;<compat> 03B2;;;;N;GREEK SMALL LETTER CURLED BETA;;0392;;0392
+03D1;GREEK THETA SYMBOL;Ll;0;L;<compat> 03B8;;;;N;GREEK SMALL LETTER SCRIPT THETA;;0398;;0398
+03D2;GREEK UPSILON WITH HOOK SYMBOL;Lu;0;L;<compat> 03A5;;;;N;GREEK CAPITAL LETTER UPSILON HOOK;;;;
+03D3;GREEK UPSILON WITH ACUTE AND HOOK SYMBOL;Lu;0;L;03D2 0301;;;;N;GREEK CAPITAL LETTER UPSILON HOOK TONOS;;;;
+03D4;GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL;Lu;0;L;03D2 0308;;;;N;GREEK CAPITAL LETTER UPSILON HOOK DIAERESIS;;;;
+03D5;GREEK PHI SYMBOL;Ll;0;L;<compat> 03C6;;;;N;GREEK SMALL LETTER SCRIPT PHI;;03A6;;03A6
+03D6;GREEK PI SYMBOL;Ll;0;L;<compat> 03C0;;;;N;GREEK SMALL LETTER OMEGA PI;;03A0;;03A0
+03D7;GREEK KAI SYMBOL;Ll;0;L;;;;;N;;;;;
+03DA;GREEK LETTER STIGMA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER STIGMA;;;03DB;
+03DB;GREEK SMALL LETTER STIGMA;Ll;0;L;;;;;N;;;03DA;;03DA
+03DC;GREEK LETTER DIGAMMA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER DIGAMMA;;;03DD;
+03DD;GREEK SMALL LETTER DIGAMMA;Ll;0;L;;;;;N;;;03DC;;03DC
+03DE;GREEK LETTER KOPPA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER KOPPA;;;03DF;
+03DF;GREEK SMALL LETTER KOPPA;Ll;0;L;;;;;N;;;03DE;;03DE
+03E0;GREEK LETTER SAMPI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER SAMPI;;;03E1;
+03E1;GREEK SMALL LETTER SAMPI;Ll;0;L;;;;;N;;;03E0;;03E0
+03E2;COPTIC CAPITAL LETTER SHEI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER SHEI;;;03E3;
+03E3;COPTIC SMALL LETTER SHEI;Ll;0;L;;;;;N;GREEK SMALL LETTER SHEI;;03E2;;03E2
+03E4;COPTIC CAPITAL LETTER FEI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER FEI;;;03E5;
+03E5;COPTIC SMALL LETTER FEI;Ll;0;L;;;;;N;GREEK SMALL LETTER FEI;;03E4;;03E4
+03E6;COPTIC CAPITAL LETTER KHEI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER KHEI;;;03E7;
+03E7;COPTIC SMALL LETTER KHEI;Ll;0;L;;;;;N;GREEK SMALL LETTER KHEI;;03E6;;03E6
+03E8;COPTIC CAPITAL LETTER HORI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER HORI;;;03E9;
+03E9;COPTIC SMALL LETTER HORI;Ll;0;L;;;;;N;GREEK SMALL LETTER HORI;;03E8;;03E8
+03EA;COPTIC CAPITAL LETTER GANGIA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER GANGIA;;;03EB;
+03EB;COPTIC SMALL LETTER GANGIA;Ll;0;L;;;;;N;GREEK SMALL LETTER GANGIA;;03EA;;03EA
+03EC;COPTIC CAPITAL LETTER SHIMA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER SHIMA;;;03ED;
+03ED;COPTIC SMALL LETTER SHIMA;Ll;0;L;;;;;N;GREEK SMALL LETTER SHIMA;;03EC;;03EC
+03EE;COPTIC CAPITAL LETTER DEI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER DEI;;;03EF;
+03EF;COPTIC SMALL LETTER DEI;Ll;0;L;;;;;N;GREEK SMALL LETTER DEI;;03EE;;03EE
+03F0;GREEK KAPPA SYMBOL;Ll;0;L;<compat> 03BA;;;;N;GREEK SMALL LETTER SCRIPT KAPPA;;039A;;039A
+03F1;GREEK RHO SYMBOL;Ll;0;L;<compat> 03C1;;;;N;GREEK SMALL LETTER TAILED RHO;;03A1;;03A1
+03F2;GREEK LUNATE SIGMA SYMBOL;Ll;0;L;<compat> 03C2;;;;N;GREEK SMALL LETTER LUNATE SIGMA;;03A3;;03A3
+03F3;GREEK LETTER YOT;Ll;0;L;;;;;N;;;;;
+0400;CYRILLIC CAPITAL LETTER IE WITH GRAVE;Lu;0;L;0415 0300;;;;N;;;;0450;
+0401;CYRILLIC CAPITAL LETTER IO;Lu;0;L;0415 0308;;;;N;;;;0451;
+0402;CYRILLIC CAPITAL LETTER DJE;Lu;0;L;;;;;N;;Serbocroatian;;0452;
+0403;CYRILLIC CAPITAL LETTER GJE;Lu;0;L;0413 0301;;;;N;;;;0453;
+0404;CYRILLIC CAPITAL LETTER UKRAINIAN IE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER E;;;0454;
+0405;CYRILLIC CAPITAL LETTER DZE;Lu;0;L;;;;;N;;;;0455;
+0406;CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER I;;;0456;
+0407;CYRILLIC CAPITAL LETTER YI;Lu;0;L;0406 0308;;;;N;;Ukrainian;;0457;
+0408;CYRILLIC CAPITAL LETTER JE;Lu;0;L;;;;;N;;;;0458;
+0409;CYRILLIC CAPITAL LETTER LJE;Lu;0;L;;;;;N;;;;0459;
+040A;CYRILLIC CAPITAL LETTER NJE;Lu;0;L;;;;;N;;;;045A;
+040B;CYRILLIC CAPITAL LETTER TSHE;Lu;0;L;;;;;N;;Serbocroatian;;045B;
+040C;CYRILLIC CAPITAL LETTER KJE;Lu;0;L;041A 0301;;;;N;;;;045C;
+040D;CYRILLIC CAPITAL LETTER I WITH GRAVE;Lu;0;L;0418 0300;;;;N;;;;045D;
+040E;CYRILLIC CAPITAL LETTER SHORT U;Lu;0;L;0423 0306;;;;N;;Byelorussian;;045E;
+040F;CYRILLIC CAPITAL LETTER DZHE;Lu;0;L;;;;;N;;;;045F;
+0410;CYRILLIC CAPITAL LETTER A;Lu;0;L;;;;;N;;;;0430;
+0411;CYRILLIC CAPITAL LETTER BE;Lu;0;L;;;;;N;;;;0431;
+0412;CYRILLIC CAPITAL LETTER VE;Lu;0;L;;;;;N;;;;0432;
+0413;CYRILLIC CAPITAL LETTER GHE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER GE;;;0433;
+0414;CYRILLIC CAPITAL LETTER DE;Lu;0;L;;;;;N;;;;0434;
+0415;CYRILLIC CAPITAL LETTER IE;Lu;0;L;;;;;N;;;;0435;
+0416;CYRILLIC CAPITAL LETTER ZHE;Lu;0;L;;;;;N;;;;0436;
+0417;CYRILLIC CAPITAL LETTER ZE;Lu;0;L;;;;;N;;;;0437;
+0418;CYRILLIC CAPITAL LETTER I;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER II;;;0438;
+0419;CYRILLIC CAPITAL LETTER SHORT I;Lu;0;L;0418 0306;;;;N;CYRILLIC CAPITAL LETTER SHORT II;;;0439;
+041A;CYRILLIC CAPITAL LETTER KA;Lu;0;L;;;;;N;;;;043A;
+041B;CYRILLIC CAPITAL LETTER EL;Lu;0;L;;;;;N;;;;043B;
+041C;CYRILLIC CAPITAL LETTER EM;Lu;0;L;;;;;N;;;;043C;
+041D;CYRILLIC CAPITAL LETTER EN;Lu;0;L;;;;;N;;;;043D;
+041E;CYRILLIC CAPITAL LETTER O;Lu;0;L;;;;;N;;;;043E;
+041F;CYRILLIC CAPITAL LETTER PE;Lu;0;L;;;;;N;;;;043F;
+0420;CYRILLIC CAPITAL LETTER ER;Lu;0;L;;;;;N;;;;0440;
+0421;CYRILLIC CAPITAL LETTER ES;Lu;0;L;;;;;N;;;;0441;
+0422;CYRILLIC CAPITAL LETTER TE;Lu;0;L;;;;;N;;;;0442;
+0423;CYRILLIC CAPITAL LETTER U;Lu;0;L;;;;;N;;;;0443;
+0424;CYRILLIC CAPITAL LETTER EF;Lu;0;L;;;;;N;;;;0444;
+0425;CYRILLIC CAPITAL LETTER HA;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KHA;;;0445;
+0426;CYRILLIC CAPITAL LETTER TSE;Lu;0;L;;;;;N;;;;0446;
+0427;CYRILLIC CAPITAL LETTER CHE;Lu;0;L;;;;;N;;;;0447;
+0428;CYRILLIC CAPITAL LETTER SHA;Lu;0;L;;;;;N;;;;0448;
+0429;CYRILLIC CAPITAL LETTER SHCHA;Lu;0;L;;;;;N;;;;0449;
+042A;CYRILLIC CAPITAL LETTER HARD SIGN;Lu;0;L;;;;;N;;;;044A;
+042B;CYRILLIC CAPITAL LETTER YERU;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER YERI;;;044B;
+042C;CYRILLIC CAPITAL LETTER SOFT SIGN;Lu;0;L;;;;;N;;;;044C;
+042D;CYRILLIC CAPITAL LETTER E;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER REVERSED E;;;044D;
+042E;CYRILLIC CAPITAL LETTER YU;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER IU;;;044E;
+042F;CYRILLIC CAPITAL LETTER YA;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER IA;;;044F;
+0430;CYRILLIC SMALL LETTER A;Ll;0;L;;;;;N;;;0410;;0410
+0431;CYRILLIC SMALL LETTER BE;Ll;0;L;;;;;N;;;0411;;0411
+0432;CYRILLIC SMALL LETTER VE;Ll;0;L;;;;;N;;;0412;;0412
+0433;CYRILLIC SMALL LETTER GHE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER GE;;0413;;0413
+0434;CYRILLIC SMALL LETTER DE;Ll;0;L;;;;;N;;;0414;;0414
+0435;CYRILLIC SMALL LETTER IE;Ll;0;L;;;;;N;;;0415;;0415
+0436;CYRILLIC SMALL LETTER ZHE;Ll;0;L;;;;;N;;;0416;;0416
+0437;CYRILLIC SMALL LETTER ZE;Ll;0;L;;;;;N;;;0417;;0417
+0438;CYRILLIC SMALL LETTER I;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER II;;0418;;0418
+0439;CYRILLIC SMALL LETTER SHORT I;Ll;0;L;0438 0306;;;;N;CYRILLIC SMALL LETTER SHORT II;;0419;;0419
+043A;CYRILLIC SMALL LETTER KA;Ll;0;L;;;;;N;;;041A;;041A
+043B;CYRILLIC SMALL LETTER EL;Ll;0;L;;;;;N;;;041B;;041B
+043C;CYRILLIC SMALL LETTER EM;Ll;0;L;;;;;N;;;041C;;041C
+043D;CYRILLIC SMALL LETTER EN;Ll;0;L;;;;;N;;;041D;;041D
+043E;CYRILLIC SMALL LETTER O;Ll;0;L;;;;;N;;;041E;;041E
+043F;CYRILLIC SMALL LETTER PE;Ll;0;L;;;;;N;;;041F;;041F
+0440;CYRILLIC SMALL LETTER ER;Ll;0;L;;;;;N;;;0420;;0420
+0441;CYRILLIC SMALL LETTER ES;Ll;0;L;;;;;N;;;0421;;0421
+0442;CYRILLIC SMALL LETTER TE;Ll;0;L;;;;;N;;;0422;;0422
+0443;CYRILLIC SMALL LETTER U;Ll;0;L;;;;;N;;;0423;;0423
+0444;CYRILLIC SMALL LETTER EF;Ll;0;L;;;;;N;;;0424;;0424
+0445;CYRILLIC SMALL LETTER HA;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KHA;;0425;;0425
+0446;CYRILLIC SMALL LETTER TSE;Ll;0;L;;;;;N;;;0426;;0426
+0447;CYRILLIC SMALL LETTER CHE;Ll;0;L;;;;;N;;;0427;;0427
+0448;CYRILLIC SMALL LETTER SHA;Ll;0;L;;;;;N;;;0428;;0428
+0449;CYRILLIC SMALL LETTER SHCHA;Ll;0;L;;;;;N;;;0429;;0429
+044A;CYRILLIC SMALL LETTER HARD SIGN;Ll;0;L;;;;;N;;;042A;;042A
+044B;CYRILLIC SMALL LETTER YERU;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER YERI;;042B;;042B
+044C;CYRILLIC SMALL LETTER SOFT SIGN;Ll;0;L;;;;;N;;;042C;;042C
+044D;CYRILLIC SMALL LETTER E;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER REVERSED E;;042D;;042D
+044E;CYRILLIC SMALL LETTER YU;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER IU;;042E;;042E
+044F;CYRILLIC SMALL LETTER YA;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER IA;;042F;;042F
+0450;CYRILLIC SMALL LETTER IE WITH GRAVE;Ll;0;L;0435 0300;;;;N;;;0400;;0400
+0451;CYRILLIC SMALL LETTER IO;Ll;0;L;0435 0308;;;;N;;;0401;;0401
+0452;CYRILLIC SMALL LETTER DJE;Ll;0;L;;;;;N;;Serbocroatian;0402;;0402
+0453;CYRILLIC SMALL LETTER GJE;Ll;0;L;0433 0301;;;;N;;;0403;;0403
+0454;CYRILLIC SMALL LETTER UKRAINIAN IE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER E;;0404;;0404
+0455;CYRILLIC SMALL LETTER DZE;Ll;0;L;;;;;N;;;0405;;0405
+0456;CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER I;;0406;;0406
+0457;CYRILLIC SMALL LETTER YI;Ll;0;L;0456 0308;;;;N;;Ukrainian;0407;;0407
+0458;CYRILLIC SMALL LETTER JE;Ll;0;L;;;;;N;;;0408;;0408
+0459;CYRILLIC SMALL LETTER LJE;Ll;0;L;;;;;N;;;0409;;0409
+045A;CYRILLIC SMALL LETTER NJE;Ll;0;L;;;;;N;;;040A;;040A
+045B;CYRILLIC SMALL LETTER TSHE;Ll;0;L;;;;;N;;Serbocroatian;040B;;040B
+045C;CYRILLIC SMALL LETTER KJE;Ll;0;L;043A 0301;;;;N;;;040C;;040C
+045D;CYRILLIC SMALL LETTER I WITH GRAVE;Ll;0;L;0438 0300;;;;N;;;040D;;040D
+045E;CYRILLIC SMALL LETTER SHORT U;Ll;0;L;0443 0306;;;;N;;Byelorussian;040E;;040E
+045F;CYRILLIC SMALL LETTER DZHE;Ll;0;L;;;;;N;;;040F;;040F
+0460;CYRILLIC CAPITAL LETTER OMEGA;Lu;0;L;;;;;N;;;;0461;
+0461;CYRILLIC SMALL LETTER OMEGA;Ll;0;L;;;;;N;;;0460;;0460
+0462;CYRILLIC CAPITAL LETTER YAT;Lu;0;L;;;;;N;;;;0463;
+0463;CYRILLIC SMALL LETTER YAT;Ll;0;L;;;;;N;;;0462;;0462
+0464;CYRILLIC CAPITAL LETTER IOTIFIED E;Lu;0;L;;;;;N;;;;0465;
+0465;CYRILLIC SMALL LETTER IOTIFIED E;Ll;0;L;;;;;N;;;0464;;0464
+0466;CYRILLIC CAPITAL LETTER LITTLE YUS;Lu;0;L;;;;;N;;;;0467;
+0467;CYRILLIC SMALL LETTER LITTLE YUS;Ll;0;L;;;;;N;;;0466;;0466
+0468;CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS;Lu;0;L;;;;;N;;;;0469;
+0469;CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS;Ll;0;L;;;;;N;;;0468;;0468
+046A;CYRILLIC CAPITAL LETTER BIG YUS;Lu;0;L;;;;;N;;;;046B;
+046B;CYRILLIC SMALL LETTER BIG YUS;Ll;0;L;;;;;N;;;046A;;046A
+046C;CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS;Lu;0;L;;;;;N;;;;046D;
+046D;CYRILLIC SMALL LETTER IOTIFIED BIG YUS;Ll;0;L;;;;;N;;;046C;;046C
+046E;CYRILLIC CAPITAL LETTER KSI;Lu;0;L;;;;;N;;;;046F;
+046F;CYRILLIC SMALL LETTER KSI;Ll;0;L;;;;;N;;;046E;;046E
+0470;CYRILLIC CAPITAL LETTER PSI;Lu;0;L;;;;;N;;;;0471;
+0471;CYRILLIC SMALL LETTER PSI;Ll;0;L;;;;;N;;;0470;;0470
+0472;CYRILLIC CAPITAL LETTER FITA;Lu;0;L;;;;;N;;;;0473;
+0473;CYRILLIC SMALL LETTER FITA;Ll;0;L;;;;;N;;;0472;;0472
+0474;CYRILLIC CAPITAL LETTER IZHITSA;Lu;0;L;;;;;N;;;;0475;
+0475;CYRILLIC SMALL LETTER IZHITSA;Ll;0;L;;;;;N;;;0474;;0474
+0476;CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT;Lu;0;L;0474 030F;;;;N;CYRILLIC CAPITAL LETTER IZHITSA DOUBLE GRAVE;;;0477;
+0477;CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT;Ll;0;L;0475 030F;;;;N;CYRILLIC SMALL LETTER IZHITSA DOUBLE GRAVE;;0476;;0476
+0478;CYRILLIC CAPITAL LETTER UK;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER UK DIGRAPH;;;0479;
+0479;CYRILLIC SMALL LETTER UK;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER UK DIGRAPH;;0478;;0478
+047A;CYRILLIC CAPITAL LETTER ROUND OMEGA;Lu;0;L;;;;;N;;;;047B;
+047B;CYRILLIC SMALL LETTER ROUND OMEGA;Ll;0;L;;;;;N;;;047A;;047A
+047C;CYRILLIC CAPITAL LETTER OMEGA WITH TITLO;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER OMEGA TITLO;;;047D;
+047D;CYRILLIC SMALL LETTER OMEGA WITH TITLO;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER OMEGA TITLO;;047C;;047C
+047E;CYRILLIC CAPITAL LETTER OT;Lu;0;L;;;;;N;;;;047F;
+047F;CYRILLIC SMALL LETTER OT;Ll;0;L;;;;;N;;;047E;;047E
+0480;CYRILLIC CAPITAL LETTER KOPPA;Lu;0;L;;;;;N;;;;0481;
+0481;CYRILLIC SMALL LETTER KOPPA;Ll;0;L;;;;;N;;;0480;;0480
+0482;CYRILLIC THOUSANDS SIGN;So;0;L;;;;;N;;;;;
+0483;COMBINING CYRILLIC TITLO;Mn;230;NSM;;;;;N;CYRILLIC NON-SPACING TITLO;;;;
+0484;COMBINING CYRILLIC PALATALIZATION;Mn;230;NSM;;;;;N;CYRILLIC NON-SPACING PALATALIZATION;;;;
+0485;COMBINING CYRILLIC DASIA PNEUMATA;Mn;230;NSM;;;;;N;CYRILLIC NON-SPACING DASIA PNEUMATA;;;;
+0486;COMBINING CYRILLIC PSILI PNEUMATA;Mn;230;NSM;;;;;N;CYRILLIC NON-SPACING PSILI PNEUMATA;;;;
+0488;COMBINING CYRILLIC HUNDRED THOUSANDS SIGN;Me;0;NSM;;;;;N;;;;;
+0489;COMBINING CYRILLIC MILLIONS SIGN;Me;0;NSM;;;;;N;;;;;
+048C;CYRILLIC CAPITAL LETTER SEMISOFT SIGN;Lu;0;L;;;;;N;;;;048D;
+048D;CYRILLIC SMALL LETTER SEMISOFT SIGN;Ll;0;L;;;;;N;;;048C;;048C
+048E;CYRILLIC CAPITAL LETTER ER WITH TICK;Lu;0;L;;;;;N;;;;048F;
+048F;CYRILLIC SMALL LETTER ER WITH TICK;Ll;0;L;;;;;N;;;048E;;048E
+0490;CYRILLIC CAPITAL LETTER GHE WITH UPTURN;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER GE WITH UPTURN;;;0491;
+0491;CYRILLIC SMALL LETTER GHE WITH UPTURN;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER GE WITH UPTURN;;0490;;0490
+0492;CYRILLIC CAPITAL LETTER GHE WITH STROKE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER GE BAR;;;0493;
+0493;CYRILLIC SMALL LETTER GHE WITH STROKE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER GE BAR;;0492;;0492
+0494;CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER GE HOOK;;;0495;
+0495;CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER GE HOOK;;0494;;0494
+0496;CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER ZHE WITH RIGHT DESCENDER;;;0497;
+0497;CYRILLIC SMALL LETTER ZHE WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER ZHE WITH RIGHT DESCENDER;;0496;;0496
+0498;CYRILLIC CAPITAL LETTER ZE WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER ZE CEDILLA;;;0499;
+0499;CYRILLIC SMALL LETTER ZE WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER ZE CEDILLA;;0498;;0498
+049A;CYRILLIC CAPITAL LETTER KA WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KA WITH RIGHT DESCENDER;;;049B;
+049B;CYRILLIC SMALL LETTER KA WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KA WITH RIGHT DESCENDER;;049A;;049A
+049C;CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KA VERTICAL BAR;;;049D;
+049D;CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KA VERTICAL BAR;;049C;;049C
+049E;CYRILLIC CAPITAL LETTER KA WITH STROKE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KA BAR;;;049F;
+049F;CYRILLIC SMALL LETTER KA WITH STROKE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KA BAR;;049E;;049E
+04A0;CYRILLIC CAPITAL LETTER BASHKIR KA;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER REVERSED GE KA;;;04A1;
+04A1;CYRILLIC SMALL LETTER BASHKIR KA;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER REVERSED GE KA;;04A0;;04A0
+04A2;CYRILLIC CAPITAL LETTER EN WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER EN WITH RIGHT DESCENDER;;;04A3;
+04A3;CYRILLIC SMALL LETTER EN WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER EN WITH RIGHT DESCENDER;;04A2;;04A2
+04A4;CYRILLIC CAPITAL LIGATURE EN GHE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER EN GE;;;04A5;
+04A5;CYRILLIC SMALL LIGATURE EN GHE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER EN GE;;04A4;;04A4
+04A6;CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER PE HOOK;Abkhasian;;04A7;
+04A7;CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER PE HOOK;Abkhasian;04A6;;04A6
+04A8;CYRILLIC CAPITAL LETTER ABKHASIAN HA;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER O HOOK;;;04A9;
+04A9;CYRILLIC SMALL LETTER ABKHASIAN HA;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER O HOOK;;04A8;;04A8
+04AA;CYRILLIC CAPITAL LETTER ES WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER ES CEDILLA;;;04AB;
+04AB;CYRILLIC SMALL LETTER ES WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER ES CEDILLA;;04AA;;04AA
+04AC;CYRILLIC CAPITAL LETTER TE WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER TE WITH RIGHT DESCENDER;;;04AD;
+04AD;CYRILLIC SMALL LETTER TE WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER TE WITH RIGHT DESCENDER;;04AC;;04AC
+04AE;CYRILLIC CAPITAL LETTER STRAIGHT U;Lu;0;L;;;;;N;;;;04AF;
+04AF;CYRILLIC SMALL LETTER STRAIGHT U;Ll;0;L;;;;;N;;;04AE;;04AE
+04B0;CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER STRAIGHT U BAR;;;04B1;
+04B1;CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER STRAIGHT U BAR;;04B0;;04B0
+04B2;CYRILLIC CAPITAL LETTER HA WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KHA WITH RIGHT DESCENDER;;;04B3;
+04B3;CYRILLIC SMALL LETTER HA WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KHA WITH RIGHT DESCENDER;;04B2;;04B2
+04B4;CYRILLIC CAPITAL LIGATURE TE TSE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER TE TSE;Abkhasian;;04B5;
+04B5;CYRILLIC SMALL LIGATURE TE TSE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER TE TSE;Abkhasian;04B4;;04B4
+04B6;CYRILLIC CAPITAL LETTER CHE WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER CHE WITH RIGHT DESCENDER;;;04B7;
+04B7;CYRILLIC SMALL LETTER CHE WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER CHE WITH RIGHT DESCENDER;;04B6;;04B6
+04B8;CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER CHE VERTICAL BAR;;;04B9;
+04B9;CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER CHE VERTICAL BAR;;04B8;;04B8
+04BA;CYRILLIC CAPITAL LETTER SHHA;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER H;;;04BB;
+04BB;CYRILLIC SMALL LETTER SHHA;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER H;;04BA;;04BA
+04BC;CYRILLIC CAPITAL LETTER ABKHASIAN CHE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER IE HOOK;;;04BD;
+04BD;CYRILLIC SMALL LETTER ABKHASIAN CHE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER IE HOOK;;04BC;;04BC
+04BE;CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER IE HOOK OGONEK;;;04BF;
+04BF;CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER IE HOOK OGONEK;;04BE;;04BE
+04C0;CYRILLIC LETTER PALOCHKA;Lu;0;L;;;;;N;CYRILLIC LETTER I;;;;
+04C1;CYRILLIC CAPITAL LETTER ZHE WITH BREVE;Lu;0;L;0416 0306;;;;N;CYRILLIC CAPITAL LETTER SHORT ZHE;;;04C2;
+04C2;CYRILLIC SMALL LETTER ZHE WITH BREVE;Ll;0;L;0436 0306;;;;N;CYRILLIC SMALL LETTER SHORT ZHE;;04C1;;04C1
+04C3;CYRILLIC CAPITAL LETTER KA WITH HOOK;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KA HOOK;;;04C4;
+04C4;CYRILLIC SMALL LETTER KA WITH HOOK;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KA HOOK;;04C3;;04C3
+04C7;CYRILLIC CAPITAL LETTER EN WITH HOOK;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER EN HOOK;;;04C8;
+04C8;CYRILLIC SMALL LETTER EN WITH HOOK;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER EN HOOK;;04C7;;04C7
+04CB;CYRILLIC CAPITAL LETTER KHAKASSIAN CHE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER CHE WITH LEFT DESCENDER;;;04CC;
+04CC;CYRILLIC SMALL LETTER KHAKASSIAN CHE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER CHE WITH LEFT DESCENDER;;04CB;;04CB
+04D0;CYRILLIC CAPITAL LETTER A WITH BREVE;Lu;0;L;0410 0306;;;;N;;;;04D1;
+04D1;CYRILLIC SMALL LETTER A WITH BREVE;Ll;0;L;0430 0306;;;;N;;;04D0;;04D0
+04D2;CYRILLIC CAPITAL LETTER A WITH DIAERESIS;Lu;0;L;0410 0308;;;;N;;;;04D3;
+04D3;CYRILLIC SMALL LETTER A WITH DIAERESIS;Ll;0;L;0430 0308;;;;N;;;04D2;;04D2
+04D4;CYRILLIC CAPITAL LIGATURE A IE;Lu;0;L;;;;;N;;;;04D5;
+04D5;CYRILLIC SMALL LIGATURE A IE;Ll;0;L;;;;;N;;;04D4;;04D4
+04D6;CYRILLIC CAPITAL LETTER IE WITH BREVE;Lu;0;L;0415 0306;;;;N;;;;04D7;
+04D7;CYRILLIC SMALL LETTER IE WITH BREVE;Ll;0;L;0435 0306;;;;N;;;04D6;;04D6
+04D8;CYRILLIC CAPITAL LETTER SCHWA;Lu;0;L;;;;;N;;;;04D9;
+04D9;CYRILLIC SMALL LETTER SCHWA;Ll;0;L;;;;;N;;;04D8;;04D8
+04DA;CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS;Lu;0;L;04D8 0308;;;;N;;;;04DB;
+04DB;CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS;Ll;0;L;04D9 0308;;;;N;;;04DA;;04DA
+04DC;CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS;Lu;0;L;0416 0308;;;;N;;;;04DD;
+04DD;CYRILLIC SMALL LETTER ZHE WITH DIAERESIS;Ll;0;L;0436 0308;;;;N;;;04DC;;04DC
+04DE;CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS;Lu;0;L;0417 0308;;;;N;;;;04DF;
+04DF;CYRILLIC SMALL LETTER ZE WITH DIAERESIS;Ll;0;L;0437 0308;;;;N;;;04DE;;04DE
+04E0;CYRILLIC CAPITAL LETTER ABKHASIAN DZE;Lu;0;L;;;;;N;;;;04E1;
+04E1;CYRILLIC SMALL LETTER ABKHASIAN DZE;Ll;0;L;;;;;N;;;04E0;;04E0
+04E2;CYRILLIC CAPITAL LETTER I WITH MACRON;Lu;0;L;0418 0304;;;;N;;;;04E3;
+04E3;CYRILLIC SMALL LETTER I WITH MACRON;Ll;0;L;0438 0304;;;;N;;;04E2;;04E2
+04E4;CYRILLIC CAPITAL LETTER I WITH DIAERESIS;Lu;0;L;0418 0308;;;;N;;;;04E5;
+04E5;CYRILLIC SMALL LETTER I WITH DIAERESIS;Ll;0;L;0438 0308;;;;N;;;04E4;;04E4
+04E6;CYRILLIC CAPITAL LETTER O WITH DIAERESIS;Lu;0;L;041E 0308;;;;N;;;;04E7;
+04E7;CYRILLIC SMALL LETTER O WITH DIAERESIS;Ll;0;L;043E 0308;;;;N;;;04E6;;04E6
+04E8;CYRILLIC CAPITAL LETTER BARRED O;Lu;0;L;;;;;N;;;;04E9;
+04E9;CYRILLIC SMALL LETTER BARRED O;Ll;0;L;;;;;N;;;04E8;;04E8
+04EA;CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS;Lu;0;L;04E8 0308;;;;N;;;;04EB;
+04EB;CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS;Ll;0;L;04E9 0308;;;;N;;;04EA;;04EA
+04EC;CYRILLIC CAPITAL LETTER E WITH DIAERESIS;Lu;0;L;042D 0308;;;;N;;;;04ED;
+04ED;CYRILLIC SMALL LETTER E WITH DIAERESIS;Ll;0;L;044D 0308;;;;N;;;04EC;;04EC
+04EE;CYRILLIC CAPITAL LETTER U WITH MACRON;Lu;0;L;0423 0304;;;;N;;;;04EF;
+04EF;CYRILLIC SMALL LETTER U WITH MACRON;Ll;0;L;0443 0304;;;;N;;;04EE;;04EE
+04F0;CYRILLIC CAPITAL LETTER U WITH DIAERESIS;Lu;0;L;0423 0308;;;;N;;;;04F1;
+04F1;CYRILLIC SMALL LETTER U WITH DIAERESIS;Ll;0;L;0443 0308;;;;N;;;04F0;;04F0
+04F2;CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE;Lu;0;L;0423 030B;;;;N;;;;04F3;
+04F3;CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE;Ll;0;L;0443 030B;;;;N;;;04F2;;04F2
+04F4;CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS;Lu;0;L;0427 0308;;;;N;;;;04F5;
+04F5;CYRILLIC SMALL LETTER CHE WITH DIAERESIS;Ll;0;L;0447 0308;;;;N;;;04F4;;04F4
+04F8;CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS;Lu;0;L;042B 0308;;;;N;;;;04F9;
+04F9;CYRILLIC SMALL LETTER YERU WITH DIAERESIS;Ll;0;L;044B 0308;;;;N;;;04F8;;04F8
+0531;ARMENIAN CAPITAL LETTER AYB;Lu;0;L;;;;;N;;;;0561;
+0532;ARMENIAN CAPITAL LETTER BEN;Lu;0;L;;;;;N;;;;0562;
+0533;ARMENIAN CAPITAL LETTER GIM;Lu;0;L;;;;;N;;;;0563;
+0534;ARMENIAN CAPITAL LETTER DA;Lu;0;L;;;;;N;;;;0564;
+0535;ARMENIAN CAPITAL LETTER ECH;Lu;0;L;;;;;N;;;;0565;
+0536;ARMENIAN CAPITAL LETTER ZA;Lu;0;L;;;;;N;;;;0566;
+0537;ARMENIAN CAPITAL LETTER EH;Lu;0;L;;;;;N;;;;0567;
+0538;ARMENIAN CAPITAL LETTER ET;Lu;0;L;;;;;N;;;;0568;
+0539;ARMENIAN CAPITAL LETTER TO;Lu;0;L;;;;;N;;;;0569;
+053A;ARMENIAN CAPITAL LETTER ZHE;Lu;0;L;;;;;N;;;;056A;
+053B;ARMENIAN CAPITAL LETTER INI;Lu;0;L;;;;;N;;;;056B;
+053C;ARMENIAN CAPITAL LETTER LIWN;Lu;0;L;;;;;N;;;;056C;
+053D;ARMENIAN CAPITAL LETTER XEH;Lu;0;L;;;;;N;;;;056D;
+053E;ARMENIAN CAPITAL LETTER CA;Lu;0;L;;;;;N;;;;056E;
+053F;ARMENIAN CAPITAL LETTER KEN;Lu;0;L;;;;;N;;;;056F;
+0540;ARMENIAN CAPITAL LETTER HO;Lu;0;L;;;;;N;;;;0570;
+0541;ARMENIAN CAPITAL LETTER JA;Lu;0;L;;;;;N;;;;0571;
+0542;ARMENIAN CAPITAL LETTER GHAD;Lu;0;L;;;;;N;ARMENIAN CAPITAL LETTER LAD;;;0572;
+0543;ARMENIAN CAPITAL LETTER CHEH;Lu;0;L;;;;;N;;;;0573;
+0544;ARMENIAN CAPITAL LETTER MEN;Lu;0;L;;;;;N;;;;0574;
+0545;ARMENIAN CAPITAL LETTER YI;Lu;0;L;;;;;N;;;;0575;
+0546;ARMENIAN CAPITAL LETTER NOW;Lu;0;L;;;;;N;;;;0576;
+0547;ARMENIAN CAPITAL LETTER SHA;Lu;0;L;;;;;N;;;;0577;
+0548;ARMENIAN CAPITAL LETTER VO;Lu;0;L;;;;;N;;;;0578;
+0549;ARMENIAN CAPITAL LETTER CHA;Lu;0;L;;;;;N;;;;0579;
+054A;ARMENIAN CAPITAL LETTER PEH;Lu;0;L;;;;;N;;;;057A;
+054B;ARMENIAN CAPITAL LETTER JHEH;Lu;0;L;;;;;N;;;;057B;
+054C;ARMENIAN CAPITAL LETTER RA;Lu;0;L;;;;;N;;;;057C;
+054D;ARMENIAN CAPITAL LETTER SEH;Lu;0;L;;;;;N;;;;057D;
+054E;ARMENIAN CAPITAL LETTER VEW;Lu;0;L;;;;;N;;;;057E;
+054F;ARMENIAN CAPITAL LETTER TIWN;Lu;0;L;;;;;N;;;;057F;
+0550;ARMENIAN CAPITAL LETTER REH;Lu;0;L;;;;;N;;;;0580;
+0551;ARMENIAN CAPITAL LETTER CO;Lu;0;L;;;;;N;;;;0581;
+0552;ARMENIAN CAPITAL LETTER YIWN;Lu;0;L;;;;;N;;;;0582;
+0553;ARMENIAN CAPITAL LETTER PIWR;Lu;0;L;;;;;N;;;;0583;
+0554;ARMENIAN CAPITAL LETTER KEH;Lu;0;L;;;;;N;;;;0584;
+0555;ARMENIAN CAPITAL LETTER OH;Lu;0;L;;;;;N;;;;0585;
+0556;ARMENIAN CAPITAL LETTER FEH;Lu;0;L;;;;;N;;;;0586;
+0559;ARMENIAN MODIFIER LETTER LEFT HALF RING;Lm;0;L;;;;;N;;;;;
+055A;ARMENIAN APOSTROPHE;Po;0;L;;;;;N;ARMENIAN MODIFIER LETTER RIGHT HALF RING;;;;
+055B;ARMENIAN EMPHASIS MARK;Po;0;L;;;;;N;;;;;
+055C;ARMENIAN EXCLAMATION MARK;Po;0;L;;;;;N;;;;;
+055D;ARMENIAN COMMA;Po;0;L;;;;;N;;;;;
+055E;ARMENIAN QUESTION MARK;Po;0;L;;;;;N;;;;;
+055F;ARMENIAN ABBREVIATION MARK;Po;0;L;;;;;N;;;;;
+0561;ARMENIAN SMALL LETTER AYB;Ll;0;L;;;;;N;;;0531;;0531
+0562;ARMENIAN SMALL LETTER BEN;Ll;0;L;;;;;N;;;0532;;0532
+0563;ARMENIAN SMALL LETTER GIM;Ll;0;L;;;;;N;;;0533;;0533
+0564;ARMENIAN SMALL LETTER DA;Ll;0;L;;;;;N;;;0534;;0534
+0565;ARMENIAN SMALL LETTER ECH;Ll;0;L;;;;;N;;;0535;;0535
+0566;ARMENIAN SMALL LETTER ZA;Ll;0;L;;;;;N;;;0536;;0536
+0567;ARMENIAN SMALL LETTER EH;Ll;0;L;;;;;N;;;0537;;0537
+0568;ARMENIAN SMALL LETTER ET;Ll;0;L;;;;;N;;;0538;;0538
+0569;ARMENIAN SMALL LETTER TO;Ll;0;L;;;;;N;;;0539;;0539
+056A;ARMENIAN SMALL LETTER ZHE;Ll;0;L;;;;;N;;;053A;;053A
+056B;ARMENIAN SMALL LETTER INI;Ll;0;L;;;;;N;;;053B;;053B
+056C;ARMENIAN SMALL LETTER LIWN;Ll;0;L;;;;;N;;;053C;;053C
+056D;ARMENIAN SMALL LETTER XEH;Ll;0;L;;;;;N;;;053D;;053D
+056E;ARMENIAN SMALL LETTER CA;Ll;0;L;;;;;N;;;053E;;053E
+056F;ARMENIAN SMALL LETTER KEN;Ll;0;L;;;;;N;;;053F;;053F
+0570;ARMENIAN SMALL LETTER HO;Ll;0;L;;;;;N;;;0540;;0540
+0571;ARMENIAN SMALL LETTER JA;Ll;0;L;;;;;N;;;0541;;0541
+0572;ARMENIAN SMALL LETTER GHAD;Ll;0;L;;;;;N;ARMENIAN SMALL LETTER LAD;;0542;;0542
+0573;ARMENIAN SMALL LETTER CHEH;Ll;0;L;;;;;N;;;0543;;0543
+0574;ARMENIAN SMALL LETTER MEN;Ll;0;L;;;;;N;;;0544;;0544
+0575;ARMENIAN SMALL LETTER YI;Ll;0;L;;;;;N;;;0545;;0545
+0576;ARMENIAN SMALL LETTER NOW;Ll;0;L;;;;;N;;;0546;;0546
+0577;ARMENIAN SMALL LETTER SHA;Ll;0;L;;;;;N;;;0547;;0547
+0578;ARMENIAN SMALL LETTER VO;Ll;0;L;;;;;N;;;0548;;0548
+0579;ARMENIAN SMALL LETTER CHA;Ll;0;L;;;;;N;;;0549;;0549
+057A;ARMENIAN SMALL LETTER PEH;Ll;0;L;;;;;N;;;054A;;054A
+057B;ARMENIAN SMALL LETTER JHEH;Ll;0;L;;;;;N;;;054B;;054B
+057C;ARMENIAN SMALL LETTER RA;Ll;0;L;;;;;N;;;054C;;054C
+057D;ARMENIAN SMALL LETTER SEH;Ll;0;L;;;;;N;;;054D;;054D
+057E;ARMENIAN SMALL LETTER VEW;Ll;0;L;;;;;N;;;054E;;054E
+057F;ARMENIAN SMALL LETTER TIWN;Ll;0;L;;;;;N;;;054F;;054F
+0580;ARMENIAN SMALL LETTER REH;Ll;0;L;;;;;N;;;0550;;0550
+0581;ARMENIAN SMALL LETTER CO;Ll;0;L;;;;;N;;;0551;;0551
+0582;ARMENIAN SMALL LETTER YIWN;Ll;0;L;;;;;N;;;0552;;0552
+0583;ARMENIAN SMALL LETTER PIWR;Ll;0;L;;;;;N;;;0553;;0553
+0584;ARMENIAN SMALL LETTER KEH;Ll;0;L;;;;;N;;;0554;;0554
+0585;ARMENIAN SMALL LETTER OH;Ll;0;L;;;;;N;;;0555;;0555
+0586;ARMENIAN SMALL LETTER FEH;Ll;0;L;;;;;N;;;0556;;0556
+0587;ARMENIAN SMALL LIGATURE ECH YIWN;Ll;0;L;<compat> 0565 0582;;;;N;;;;;
+0589;ARMENIAN FULL STOP;Po;0;L;;;;;N;ARMENIAN PERIOD;;;;
+058A;ARMENIAN HYPHEN;Pd;0;ON;;;;;N;;;;;
+0591;HEBREW ACCENT ETNAHTA;Mn;220;NSM;;;;;N;;;;;
+0592;HEBREW ACCENT SEGOL;Mn;230;NSM;;;;;N;;;;;
+0593;HEBREW ACCENT SHALSHELET;Mn;230;NSM;;;;;N;;;;;
+0594;HEBREW ACCENT ZAQEF QATAN;Mn;230;NSM;;;;;N;;;;;
+0595;HEBREW ACCENT ZAQEF GADOL;Mn;230;NSM;;;;;N;;;;;
+0596;HEBREW ACCENT TIPEHA;Mn;220;NSM;;;;;N;;*;;;
+0597;HEBREW ACCENT REVIA;Mn;230;NSM;;;;;N;;;;;
+0598;HEBREW ACCENT ZARQA;Mn;230;NSM;;;;;N;;*;;;
+0599;HEBREW ACCENT PASHTA;Mn;230;NSM;;;;;N;;;;;
+059A;HEBREW ACCENT YETIV;Mn;222;NSM;;;;;N;;;;;
+059B;HEBREW ACCENT TEVIR;Mn;220;NSM;;;;;N;;;;;
+059C;HEBREW ACCENT GERESH;Mn;230;NSM;;;;;N;;;;;
+059D;HEBREW ACCENT GERESH MUQDAM;Mn;230;NSM;;;;;N;;;;;
+059E;HEBREW ACCENT GERSHAYIM;Mn;230;NSM;;;;;N;;;;;
+059F;HEBREW ACCENT QARNEY PARA;Mn;230;NSM;;;;;N;;;;;
+05A0;HEBREW ACCENT TELISHA GEDOLA;Mn;230;NSM;;;;;N;;;;;
+05A1;HEBREW ACCENT PAZER;Mn;230;NSM;;;;;N;;;;;
+05A3;HEBREW ACCENT MUNAH;Mn;220;NSM;;;;;N;;;;;
+05A4;HEBREW ACCENT MAHAPAKH;Mn;220;NSM;;;;;N;;;;;
+05A5;HEBREW ACCENT MERKHA;Mn;220;NSM;;;;;N;;*;;;
+05A6;HEBREW ACCENT MERKHA KEFULA;Mn;220;NSM;;;;;N;;;;;
+05A7;HEBREW ACCENT DARGA;Mn;220;NSM;;;;;N;;;;;
+05A8;HEBREW ACCENT QADMA;Mn;230;NSM;;;;;N;;*;;;
+05A9;HEBREW ACCENT TELISHA QETANA;Mn;230;NSM;;;;;N;;;;;
+05AA;HEBREW ACCENT YERAH BEN YOMO;Mn;220;NSM;;;;;N;;*;;;
+05AB;HEBREW ACCENT OLE;Mn;230;NSM;;;;;N;;;;;
+05AC;HEBREW ACCENT ILUY;Mn;230;NSM;;;;;N;;;;;
+05AD;HEBREW ACCENT DEHI;Mn;222;NSM;;;;;N;;;;;
+05AE;HEBREW ACCENT ZINOR;Mn;228;NSM;;;;;N;;;;;
+05AF;HEBREW MARK MASORA CIRCLE;Mn;230;NSM;;;;;N;;;;;
+05B0;HEBREW POINT SHEVA;Mn;10;NSM;;;;;N;;;;;
+05B1;HEBREW POINT HATAF SEGOL;Mn;11;NSM;;;;;N;;;;;
+05B2;HEBREW POINT HATAF PATAH;Mn;12;NSM;;;;;N;;;;;
+05B3;HEBREW POINT HATAF QAMATS;Mn;13;NSM;;;;;N;;;;;
+05B4;HEBREW POINT HIRIQ;Mn;14;NSM;;;;;N;;;;;
+05B5;HEBREW POINT TSERE;Mn;15;NSM;;;;;N;;;;;
+05B6;HEBREW POINT SEGOL;Mn;16;NSM;;;;;N;;;;;
+05B7;HEBREW POINT PATAH;Mn;17;NSM;;;;;N;;;;;
+05B8;HEBREW POINT QAMATS;Mn;18;NSM;;;;;N;;;;;
+05B9;HEBREW POINT HOLAM;Mn;19;NSM;;;;;N;;;;;
+05BB;HEBREW POINT QUBUTS;Mn;20;NSM;;;;;N;;;;;
+05BC;HEBREW POINT DAGESH OR MAPIQ;Mn;21;NSM;;;;;N;HEBREW POINT DAGESH;or shuruq;;;
+05BD;HEBREW POINT METEG;Mn;22;NSM;;;;;N;;*;;;
+05BE;HEBREW PUNCTUATION MAQAF;Po;0;R;;;;;N;;;;;
+05BF;HEBREW POINT RAFE;Mn;23;NSM;;;;;N;;;;;
+05C0;HEBREW PUNCTUATION PASEQ;Po;0;R;;;;;N;HEBREW POINT PASEQ;*;;;
+05C1;HEBREW POINT SHIN DOT;Mn;24;NSM;;;;;N;;;;;
+05C2;HEBREW POINT SIN DOT;Mn;25;NSM;;;;;N;;;;;
+05C3;HEBREW PUNCTUATION SOF PASUQ;Po;0;R;;;;;N;;*;;;
+05C4;HEBREW MARK UPPER DOT;Mn;230;NSM;;;;;N;;;;;
+05D0;HEBREW LETTER ALEF;Lo;0;R;;;;;N;;;;;
+05D1;HEBREW LETTER BET;Lo;0;R;;;;;N;;;;;
+05D2;HEBREW LETTER GIMEL;Lo;0;R;;;;;N;;;;;
+05D3;HEBREW LETTER DALET;Lo;0;R;;;;;N;;;;;
+05D4;HEBREW LETTER HE;Lo;0;R;;;;;N;;;;;
+05D5;HEBREW LETTER VAV;Lo;0;R;;;;;N;;;;;
+05D6;HEBREW LETTER ZAYIN;Lo;0;R;;;;;N;;;;;
+05D7;HEBREW LETTER HET;Lo;0;R;;;;;N;;;;;
+05D8;HEBREW LETTER TET;Lo;0;R;;;;;N;;;;;
+05D9;HEBREW LETTER YOD;Lo;0;R;;;;;N;;;;;
+05DA;HEBREW LETTER FINAL KAF;Lo;0;R;;;;;N;;;;;
+05DB;HEBREW LETTER KAF;Lo;0;R;;;;;N;;;;;
+05DC;HEBREW LETTER LAMED;Lo;0;R;;;;;N;;;;;
+05DD;HEBREW LETTER FINAL MEM;Lo;0;R;;;;;N;;;;;
+05DE;HEBREW LETTER MEM;Lo;0;R;;;;;N;;;;;
+05DF;HEBREW LETTER FINAL NUN;Lo;0;R;;;;;N;;;;;
+05E0;HEBREW LETTER NUN;Lo;0;R;;;;;N;;;;;
+05E1;HEBREW LETTER SAMEKH;Lo;0;R;;;;;N;;;;;
+05E2;HEBREW LETTER AYIN;Lo;0;R;;;;;N;;;;;
+05E3;HEBREW LETTER FINAL PE;Lo;0;R;;;;;N;;;;;
+05E4;HEBREW LETTER PE;Lo;0;R;;;;;N;;;;;
+05E5;HEBREW LETTER FINAL TSADI;Lo;0;R;;;;;N;;;;;
+05E6;HEBREW LETTER TSADI;Lo;0;R;;;;;N;;;;;
+05E7;HEBREW LETTER QOF;Lo;0;R;;;;;N;;;;;
+05E8;HEBREW LETTER RESH;Lo;0;R;;;;;N;;;;;
+05E9;HEBREW LETTER SHIN;Lo;0;R;;;;;N;;;;;
+05EA;HEBREW LETTER TAV;Lo;0;R;;;;;N;;;;;
+05F0;HEBREW LIGATURE YIDDISH DOUBLE VAV;Lo;0;R;;;;;N;HEBREW LETTER DOUBLE VAV;;;;
+05F1;HEBREW LIGATURE YIDDISH VAV YOD;Lo;0;R;;;;;N;HEBREW LETTER VAV YOD;;;;
+05F2;HEBREW LIGATURE YIDDISH DOUBLE YOD;Lo;0;R;;;;;N;HEBREW LETTER DOUBLE YOD;;;;
+05F3;HEBREW PUNCTUATION GERESH;Po;0;R;;;;;N;;;;;
+05F4;HEBREW PUNCTUATION GERSHAYIM;Po;0;R;;;;;N;;;;;
+060C;ARABIC COMMA;Po;0;CS;;;;;N;;;;;
+061B;ARABIC SEMICOLON;Po;0;AL;;;;;N;;;;;
+061F;ARABIC QUESTION MARK;Po;0;AL;;;;;N;;;;;
+0621;ARABIC LETTER HAMZA;Lo;0;AL;;;;;N;ARABIC LETTER HAMZAH;;;;
+0622;ARABIC LETTER ALEF WITH MADDA ABOVE;Lo;0;AL;0627 0653;;;;N;ARABIC LETTER MADDAH ON ALEF;;;;
+0623;ARABIC LETTER ALEF WITH HAMZA ABOVE;Lo;0;AL;0627 0654;;;;N;ARABIC LETTER HAMZAH ON ALEF;;;;
+0624;ARABIC LETTER WAW WITH HAMZA ABOVE;Lo;0;AL;0648 0654;;;;N;ARABIC LETTER HAMZAH ON WAW;;;;
+0625;ARABIC LETTER ALEF WITH HAMZA BELOW;Lo;0;AL;0627 0655;;;;N;ARABIC LETTER HAMZAH UNDER ALEF;;;;
+0626;ARABIC LETTER YEH WITH HAMZA ABOVE;Lo;0;AL;064A 0654;;;;N;ARABIC LETTER HAMZAH ON YA;;;;
+0627;ARABIC LETTER ALEF;Lo;0;AL;;;;;N;;;;;
+0628;ARABIC LETTER BEH;Lo;0;AL;;;;;N;ARABIC LETTER BAA;;;;
+0629;ARABIC LETTER TEH MARBUTA;Lo;0;AL;;;;;N;ARABIC LETTER TAA MARBUTAH;;;;
+062A;ARABIC LETTER TEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA;;;;
+062B;ARABIC LETTER THEH;Lo;0;AL;;;;;N;ARABIC LETTER THAA;;;;
+062C;ARABIC LETTER JEEM;Lo;0;AL;;;;;N;;;;;
+062D;ARABIC LETTER HAH;Lo;0;AL;;;;;N;ARABIC LETTER HAA;;;;
+062E;ARABIC LETTER KHAH;Lo;0;AL;;;;;N;ARABIC LETTER KHAA;;;;
+062F;ARABIC LETTER DAL;Lo;0;AL;;;;;N;;;;;
+0630;ARABIC LETTER THAL;Lo;0;AL;;;;;N;;;;;
+0631;ARABIC LETTER REH;Lo;0;AL;;;;;N;ARABIC LETTER RA;;;;
+0632;ARABIC LETTER ZAIN;Lo;0;AL;;;;;N;;;;;
+0633;ARABIC LETTER SEEN;Lo;0;AL;;;;;N;;;;;
+0634;ARABIC LETTER SHEEN;Lo;0;AL;;;;;N;;;;;
+0635;ARABIC LETTER SAD;Lo;0;AL;;;;;N;;;;;
+0636;ARABIC LETTER DAD;Lo;0;AL;;;;;N;;;;;
+0637;ARABIC LETTER TAH;Lo;0;AL;;;;;N;;;;;
+0638;ARABIC LETTER ZAH;Lo;0;AL;;;;;N;ARABIC LETTER DHAH;;;;
+0639;ARABIC LETTER AIN;Lo;0;AL;;;;;N;;;;;
+063A;ARABIC LETTER GHAIN;Lo;0;AL;;;;;N;;;;;
+0640;ARABIC TATWEEL;Lm;0;AL;;;;;N;;;;;
+0641;ARABIC LETTER FEH;Lo;0;AL;;;;;N;ARABIC LETTER FA;;;;
+0642;ARABIC LETTER QAF;Lo;0;AL;;;;;N;;;;;
+0643;ARABIC LETTER KAF;Lo;0;AL;;;;;N;ARABIC LETTER CAF;;;;
+0644;ARABIC LETTER LAM;Lo;0;AL;;;;;N;;;;;
+0645;ARABIC LETTER MEEM;Lo;0;AL;;;;;N;;;;;
+0646;ARABIC LETTER NOON;Lo;0;AL;;;;;N;;;;;
+0647;ARABIC LETTER HEH;Lo;0;AL;;;;;N;ARABIC LETTER HA;;;;
+0648;ARABIC LETTER WAW;Lo;0;AL;;;;;N;;;;;
+0649;ARABIC LETTER ALEF MAKSURA;Lo;0;AL;;;;;N;ARABIC LETTER ALEF MAQSURAH;;;;
+064A;ARABIC LETTER YEH;Lo;0;AL;;;;;N;ARABIC LETTER YA;;;;
+064B;ARABIC FATHATAN;Mn;27;NSM;;;;;N;;;;;
+064C;ARABIC DAMMATAN;Mn;28;NSM;;;;;N;;;;;
+064D;ARABIC KASRATAN;Mn;29;NSM;;;;;N;;;;;
+064E;ARABIC FATHA;Mn;30;NSM;;;;;N;ARABIC FATHAH;;;;
+064F;ARABIC DAMMA;Mn;31;NSM;;;;;N;ARABIC DAMMAH;;;;
+0650;ARABIC KASRA;Mn;32;NSM;;;;;N;ARABIC KASRAH;;;;
+0651;ARABIC SHADDA;Mn;33;NSM;;;;;N;ARABIC SHADDAH;;;;
+0652;ARABIC SUKUN;Mn;34;NSM;;;;;N;;;;;
+0653;ARABIC MADDAH ABOVE;Mn;230;NSM;;;;;N;;;;;
+0654;ARABIC HAMZA ABOVE;Mn;230;NSM;;;;;N;;;;;
+0655;ARABIC HAMZA BELOW;Mn;220;NSM;;;;;N;;;;;
+0660;ARABIC-INDIC DIGIT ZERO;Nd;0;AN;;0;0;0;N;;;;;
+0661;ARABIC-INDIC DIGIT ONE;Nd;0;AN;;1;1;1;N;;;;;
+0662;ARABIC-INDIC DIGIT TWO;Nd;0;AN;;2;2;2;N;;;;;
+0663;ARABIC-INDIC DIGIT THREE;Nd;0;AN;;3;3;3;N;;;;;
+0664;ARABIC-INDIC DIGIT FOUR;Nd;0;AN;;4;4;4;N;;;;;
+0665;ARABIC-INDIC DIGIT FIVE;Nd;0;AN;;5;5;5;N;;;;;
+0666;ARABIC-INDIC DIGIT SIX;Nd;0;AN;;6;6;6;N;;;;;
+0667;ARABIC-INDIC DIGIT SEVEN;Nd;0;AN;;7;7;7;N;;;;;
+0668;ARABIC-INDIC DIGIT EIGHT;Nd;0;AN;;8;8;8;N;;;;;
+0669;ARABIC-INDIC DIGIT NINE;Nd;0;AN;;9;9;9;N;;;;;
+066A;ARABIC PERCENT SIGN;Po;0;ET;;;;;N;;;;;
+066B;ARABIC DECIMAL SEPARATOR;Po;0;AN;;;;;N;;;;;
+066C;ARABIC THOUSANDS SEPARATOR;Po;0;AN;;;;;N;;;;;
+066D;ARABIC FIVE POINTED STAR;Po;0;AL;;;;;N;;;;;
+0670;ARABIC LETTER SUPERSCRIPT ALEF;Mn;35;NSM;;;;;N;ARABIC ALEF ABOVE;;;;
+0671;ARABIC LETTER ALEF WASLA;Lo;0;AL;;;;;N;ARABIC LETTER HAMZAT WASL ON ALEF;;;;
+0672;ARABIC LETTER ALEF WITH WAVY HAMZA ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER WAVY HAMZAH ON ALEF;;;;
+0673;ARABIC LETTER ALEF WITH WAVY HAMZA BELOW;Lo;0;AL;;;;;N;ARABIC LETTER WAVY HAMZAH UNDER ALEF;;;;
+0674;ARABIC LETTER HIGH HAMZA;Lo;0;AL;;;;;N;ARABIC LETTER HIGH HAMZAH;;;;
+0675;ARABIC LETTER HIGH HAMZA ALEF;Lo;0;AL;<compat> 0627 0674;;;;N;ARABIC LETTER HIGH HAMZAH ALEF;;;;
+0676;ARABIC LETTER HIGH HAMZA WAW;Lo;0;AL;<compat> 0648 0674;;;;N;ARABIC LETTER HIGH HAMZAH WAW;;;;
+0677;ARABIC LETTER U WITH HAMZA ABOVE;Lo;0;AL;<compat> 06C7 0674;;;;N;ARABIC LETTER HIGH HAMZAH WAW WITH DAMMAH;;;;
+0678;ARABIC LETTER HIGH HAMZA YEH;Lo;0;AL;<compat> 064A 0674;;;;N;ARABIC LETTER HIGH HAMZAH YA;;;;
+0679;ARABIC LETTER TTEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH SMALL TAH;;;;
+067A;ARABIC LETTER TTEHEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH TWO DOTS VERTICAL ABOVE;;;;
+067B;ARABIC LETTER BEEH;Lo;0;AL;;;;;N;ARABIC LETTER BAA WITH TWO DOTS VERTICAL BELOW;;;;
+067C;ARABIC LETTER TEH WITH RING;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH RING;;;;
+067D;ARABIC LETTER TEH WITH THREE DOTS ABOVE DOWNWARDS;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH THREE DOTS ABOVE DOWNWARD;;;;
+067E;ARABIC LETTER PEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH THREE DOTS BELOW;;;;
+067F;ARABIC LETTER TEHEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH FOUR DOTS ABOVE;;;;
+0680;ARABIC LETTER BEHEH;Lo;0;AL;;;;;N;ARABIC LETTER BAA WITH FOUR DOTS BELOW;;;;
+0681;ARABIC LETTER HAH WITH HAMZA ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER HAMZAH ON HAA;;;;
+0682;ARABIC LETTER HAH WITH TWO DOTS VERTICAL ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH TWO DOTS VERTICAL ABOVE;;;;
+0683;ARABIC LETTER NYEH;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH MIDDLE TWO DOTS;;;;
+0684;ARABIC LETTER DYEH;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH MIDDLE TWO DOTS VERTICAL;;;;
+0685;ARABIC LETTER HAH WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH THREE DOTS ABOVE;;;;
+0686;ARABIC LETTER TCHEH;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH MIDDLE THREE DOTS DOWNWARD;;;;
+0687;ARABIC LETTER TCHEHEH;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH MIDDLE FOUR DOTS;;;;
+0688;ARABIC LETTER DDAL;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH SMALL TAH;;;;
+0689;ARABIC LETTER DAL WITH RING;Lo;0;AL;;;;;N;;;;;
+068A;ARABIC LETTER DAL WITH DOT BELOW;Lo;0;AL;;;;;N;;;;;
+068B;ARABIC LETTER DAL WITH DOT BELOW AND SMALL TAH;Lo;0;AL;;;;;N;;;;;
+068C;ARABIC LETTER DAHAL;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH TWO DOTS ABOVE;;;;
+068D;ARABIC LETTER DDAHAL;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH TWO DOTS BELOW;;;;
+068E;ARABIC LETTER DUL;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH THREE DOTS ABOVE;;;;
+068F;ARABIC LETTER DAL WITH THREE DOTS ABOVE DOWNWARDS;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH THREE DOTS ABOVE DOWNWARD;;;;
+0690;ARABIC LETTER DAL WITH FOUR DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+0691;ARABIC LETTER RREH;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH SMALL TAH;;;;
+0692;ARABIC LETTER REH WITH SMALL V;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH SMALL V;;;;
+0693;ARABIC LETTER REH WITH RING;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH RING;;;;
+0694;ARABIC LETTER REH WITH DOT BELOW;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH DOT BELOW;;;;
+0695;ARABIC LETTER REH WITH SMALL V BELOW;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH SMALL V BELOW;;;;
+0696;ARABIC LETTER REH WITH DOT BELOW AND DOT ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH DOT BELOW AND DOT ABOVE;;;;
+0697;ARABIC LETTER REH WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH TWO DOTS ABOVE;;;;
+0698;ARABIC LETTER JEH;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH THREE DOTS ABOVE;;;;
+0699;ARABIC LETTER REH WITH FOUR DOTS ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH FOUR DOTS ABOVE;;;;
+069A;ARABIC LETTER SEEN WITH DOT BELOW AND DOT ABOVE;Lo;0;AL;;;;;N;;;;;
+069B;ARABIC LETTER SEEN WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;;;;;
+069C;ARABIC LETTER SEEN WITH THREE DOTS BELOW AND THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+069D;ARABIC LETTER SAD WITH TWO DOTS BELOW;Lo;0;AL;;;;;N;;;;;
+069E;ARABIC LETTER SAD WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+069F;ARABIC LETTER TAH WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+06A0;ARABIC LETTER AIN WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+06A1;ARABIC LETTER DOTLESS FEH;Lo;0;AL;;;;;N;ARABIC LETTER DOTLESS FA;;;;
+06A2;ARABIC LETTER FEH WITH DOT MOVED BELOW;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH DOT MOVED BELOW;;;;
+06A3;ARABIC LETTER FEH WITH DOT BELOW;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH DOT BELOW;;;;
+06A4;ARABIC LETTER VEH;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH THREE DOTS ABOVE;;;;
+06A5;ARABIC LETTER FEH WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH THREE DOTS BELOW;;;;
+06A6;ARABIC LETTER PEHEH;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH FOUR DOTS ABOVE;;;;
+06A7;ARABIC LETTER QAF WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;;
+06A8;ARABIC LETTER QAF WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+06A9;ARABIC LETTER KEHEH;Lo;0;AL;;;;;N;ARABIC LETTER OPEN CAF;;;;
+06AA;ARABIC LETTER SWASH KAF;Lo;0;AL;;;;;N;ARABIC LETTER SWASH CAF;;;;
+06AB;ARABIC LETTER KAF WITH RING;Lo;0;AL;;;;;N;ARABIC LETTER CAF WITH RING;;;;
+06AC;ARABIC LETTER KAF WITH DOT ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER CAF WITH DOT ABOVE;;;;
+06AD;ARABIC LETTER NG;Lo;0;AL;;;;;N;ARABIC LETTER CAF WITH THREE DOTS ABOVE;;;;
+06AE;ARABIC LETTER KAF WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;ARABIC LETTER CAF WITH THREE DOTS BELOW;;;;
+06AF;ARABIC LETTER GAF;Lo;0;AL;;;;;N;;*;;;
+06B0;ARABIC LETTER GAF WITH RING;Lo;0;AL;;;;;N;;;;;
+06B1;ARABIC LETTER NGOEH;Lo;0;AL;;;;;N;ARABIC LETTER GAF WITH TWO DOTS ABOVE;;;;
+06B2;ARABIC LETTER GAF WITH TWO DOTS BELOW;Lo;0;AL;;;;;N;;;;;
+06B3;ARABIC LETTER GUEH;Lo;0;AL;;;;;N;ARABIC LETTER GAF WITH TWO DOTS VERTICAL BELOW;;;;
+06B4;ARABIC LETTER GAF WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+06B5;ARABIC LETTER LAM WITH SMALL V;Lo;0;AL;;;;;N;;;;;
+06B6;ARABIC LETTER LAM WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;;
+06B7;ARABIC LETTER LAM WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+06B8;ARABIC LETTER LAM WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;;;;;
+06B9;ARABIC LETTER NOON WITH DOT BELOW;Lo;0;AL;;;;;N;;;;;
+06BA;ARABIC LETTER NOON GHUNNA;Lo;0;AL;;;;;N;ARABIC LETTER DOTLESS NOON;;;;
+06BB;ARABIC LETTER RNOON;Lo;0;AL;;;;;N;ARABIC LETTER DOTLESS NOON WITH SMALL TAH;;;;
+06BC;ARABIC LETTER NOON WITH RING;Lo;0;AL;;;;;N;;;;;
+06BD;ARABIC LETTER NOON WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+06BE;ARABIC LETTER HEH DOACHASHMEE;Lo;0;AL;;;;;N;ARABIC LETTER KNOTTED HA;;;;
+06BF;ARABIC LETTER TCHEH WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;;
+06C0;ARABIC LETTER HEH WITH YEH ABOVE;Lo;0;AL;06D5 0654;;;;N;ARABIC LETTER HAMZAH ON HA;;;;
+06C1;ARABIC LETTER HEH GOAL;Lo;0;AL;;;;;N;ARABIC LETTER HA GOAL;;;;
+06C2;ARABIC LETTER HEH GOAL WITH HAMZA ABOVE;Lo;0;AL;06C1 0654;;;;N;ARABIC LETTER HAMZAH ON HA GOAL;;;;
+06C3;ARABIC LETTER TEH MARBUTA GOAL;Lo;0;AL;;;;;N;ARABIC LETTER TAA MARBUTAH GOAL;;;;
+06C4;ARABIC LETTER WAW WITH RING;Lo;0;AL;;;;;N;;;;;
+06C5;ARABIC LETTER KIRGHIZ OE;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH BAR;;;;
+06C6;ARABIC LETTER OE;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH SMALL V;;;;
+06C7;ARABIC LETTER U;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH DAMMAH;;;;
+06C8;ARABIC LETTER YU;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH ALEF ABOVE;;;;
+06C9;ARABIC LETTER KIRGHIZ YU;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH INVERTED SMALL V;;;;
+06CA;ARABIC LETTER WAW WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+06CB;ARABIC LETTER VE;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH THREE DOTS ABOVE;;;;
+06CC;ARABIC LETTER FARSI YEH;Lo;0;AL;;;;;N;ARABIC LETTER DOTLESS YA;;;;
+06CD;ARABIC LETTER YEH WITH TAIL;Lo;0;AL;;;;;N;ARABIC LETTER YA WITH TAIL;;;;
+06CE;ARABIC LETTER YEH WITH SMALL V;Lo;0;AL;;;;;N;ARABIC LETTER YA WITH SMALL V;;;;
+06CF;ARABIC LETTER WAW WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;;
+06D0;ARABIC LETTER E;Lo;0;AL;;;;;N;ARABIC LETTER YA WITH TWO DOTS VERTICAL BELOW;*;;;
+06D1;ARABIC LETTER YEH WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;ARABIC LETTER YA WITH THREE DOTS BELOW;;;;
+06D2;ARABIC LETTER YEH BARREE;Lo;0;AL;;;;;N;ARABIC LETTER YA BARREE;;;;
+06D3;ARABIC LETTER YEH BARREE WITH HAMZA ABOVE;Lo;0;AL;06D2 0654;;;;N;ARABIC LETTER HAMZAH ON YA BARREE;;;;
+06D4;ARABIC FULL STOP;Po;0;AL;;;;;N;ARABIC PERIOD;;;;
+06D5;ARABIC LETTER AE;Lo;0;AL;;;;;N;;;;;
+06D6;ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA;Mn;230;NSM;;;;;N;;;;;
+06D7;ARABIC SMALL HIGH LIGATURE QAF WITH LAM WITH ALEF MAKSURA;Mn;230;NSM;;;;;N;;;;;
+06D8;ARABIC SMALL HIGH MEEM INITIAL FORM;Mn;230;NSM;;;;;N;;;;;
+06D9;ARABIC SMALL HIGH LAM ALEF;Mn;230;NSM;;;;;N;;;;;
+06DA;ARABIC SMALL HIGH JEEM;Mn;230;NSM;;;;;N;;;;;
+06DB;ARABIC SMALL HIGH THREE DOTS;Mn;230;NSM;;;;;N;;;;;
+06DC;ARABIC SMALL HIGH SEEN;Mn;230;NSM;;;;;N;;;;;
+06DD;ARABIC END OF AYAH;Me;0;NSM;;;;;N;;;;;
+06DE;ARABIC START OF RUB EL HIZB;Me;0;NSM;;;;;N;;;;;
+06DF;ARABIC SMALL HIGH ROUNDED ZERO;Mn;230;NSM;;;;;N;;;;;
+06E0;ARABIC SMALL HIGH UPRIGHT RECTANGULAR ZERO;Mn;230;NSM;;;;;N;;;;;
+06E1;ARABIC SMALL HIGH DOTLESS HEAD OF KHAH;Mn;230;NSM;;;;;N;;;;;
+06E2;ARABIC SMALL HIGH MEEM ISOLATED FORM;Mn;230;NSM;;;;;N;;;;;
+06E3;ARABIC SMALL LOW SEEN;Mn;220;NSM;;;;;N;;;;;
+06E4;ARABIC SMALL HIGH MADDA;Mn;230;NSM;;;;;N;;;;;
+06E5;ARABIC SMALL WAW;Lm;0;AL;;;;;N;;;;;
+06E6;ARABIC SMALL YEH;Lm;0;AL;;;;;N;;;;;
+06E7;ARABIC SMALL HIGH YEH;Mn;230;NSM;;;;;N;;;;;
+06E8;ARABIC SMALL HIGH NOON;Mn;230;NSM;;;;;N;;;;;
+06E9;ARABIC PLACE OF SAJDAH;So;0;ON;;;;;N;;;;;
+06EA;ARABIC EMPTY CENTRE LOW STOP;Mn;220;NSM;;;;;N;;;;;
+06EB;ARABIC EMPTY CENTRE HIGH STOP;Mn;230;NSM;;;;;N;;;;;
+06EC;ARABIC ROUNDED HIGH STOP WITH FILLED CENTRE;Mn;230;NSM;;;;;N;;;;;
+06ED;ARABIC SMALL LOW MEEM;Mn;220;NSM;;;;;N;;;;;
+06F0;EXTENDED ARABIC-INDIC DIGIT ZERO;Nd;0;EN;;0;0;0;N;EASTERN ARABIC-INDIC DIGIT ZERO;;;;
+06F1;EXTENDED ARABIC-INDIC DIGIT ONE;Nd;0;EN;;1;1;1;N;EASTERN ARABIC-INDIC DIGIT ONE;;;;
+06F2;EXTENDED ARABIC-INDIC DIGIT TWO;Nd;0;EN;;2;2;2;N;EASTERN ARABIC-INDIC DIGIT TWO;;;;
+06F3;EXTENDED ARABIC-INDIC DIGIT THREE;Nd;0;EN;;3;3;3;N;EASTERN ARABIC-INDIC DIGIT THREE;;;;
+06F4;EXTENDED ARABIC-INDIC DIGIT FOUR;Nd;0;EN;;4;4;4;N;EASTERN ARABIC-INDIC DIGIT FOUR;;;;
+06F5;EXTENDED ARABIC-INDIC DIGIT FIVE;Nd;0;EN;;5;5;5;N;EASTERN ARABIC-INDIC DIGIT FIVE;;;;
+06F6;EXTENDED ARABIC-INDIC DIGIT SIX;Nd;0;EN;;6;6;6;N;EASTERN ARABIC-INDIC DIGIT SIX;;;;
+06F7;EXTENDED ARABIC-INDIC DIGIT SEVEN;Nd;0;EN;;7;7;7;N;EASTERN ARABIC-INDIC DIGIT SEVEN;;;;
+06F8;EXTENDED ARABIC-INDIC DIGIT EIGHT;Nd;0;EN;;8;8;8;N;EASTERN ARABIC-INDIC DIGIT EIGHT;;;;
+06F9;EXTENDED ARABIC-INDIC DIGIT NINE;Nd;0;EN;;9;9;9;N;EASTERN ARABIC-INDIC DIGIT NINE;;;;
+06FA;ARABIC LETTER SHEEN WITH DOT BELOW;Lo;0;AL;;;;;N;;;;;
+06FB;ARABIC LETTER DAD WITH DOT BELOW;Lo;0;AL;;;;;N;;;;;
+06FC;ARABIC LETTER GHAIN WITH DOT BELOW;Lo;0;AL;;;;;N;;;;;
+06FD;ARABIC SIGN SINDHI AMPERSAND;So;0;AL;;;;;N;;;;;
+06FE;ARABIC SIGN SINDHI POSTPOSITION MEN;So;0;AL;;;;;N;;;;;
+0700;SYRIAC END OF PARAGRAPH;Po;0;AL;;;;;N;;;;;
+0701;SYRIAC SUPRALINEAR FULL STOP;Po;0;AL;;;;;N;;;;;
+0702;SYRIAC SUBLINEAR FULL STOP;Po;0;AL;;;;;N;;;;;
+0703;SYRIAC SUPRALINEAR COLON;Po;0;AL;;;;;N;;;;;
+0704;SYRIAC SUBLINEAR COLON;Po;0;AL;;;;;N;;;;;
+0705;SYRIAC HORIZONTAL COLON;Po;0;AL;;;;;N;;;;;
+0706;SYRIAC COLON SKEWED LEFT;Po;0;AL;;;;;N;;;;;
+0707;SYRIAC COLON SKEWED RIGHT;Po;0;AL;;;;;N;;;;;
+0708;SYRIAC SUPRALINEAR COLON SKEWED LEFT;Po;0;AL;;;;;N;;;;;
+0709;SYRIAC SUBLINEAR COLON SKEWED RIGHT;Po;0;AL;;;;;N;;;;;
+070A;SYRIAC CONTRACTION;Po;0;AL;;;;;N;;;;;
+070B;SYRIAC HARKLEAN OBELUS;Po;0;AL;;;;;N;;;;;
+070C;SYRIAC HARKLEAN METOBELUS;Po;0;AL;;;;;N;;;;;
+070D;SYRIAC HARKLEAN ASTERISCUS;Po;0;AL;;;;;N;;;;;
+070F;SYRIAC ABBREVIATION MARK;Cf;0;BN;;;;;N;;;;;
+0710;SYRIAC LETTER ALAPH;Lo;0;AL;;;;;N;;;;;
+0711;SYRIAC LETTER SUPERSCRIPT ALAPH;Mn;36;NSM;;;;;N;;;;;
+0712;SYRIAC LETTER BETH;Lo;0;AL;;;;;N;;;;;
+0713;SYRIAC LETTER GAMAL;Lo;0;AL;;;;;N;;;;;
+0714;SYRIAC LETTER GAMAL GARSHUNI;Lo;0;AL;;;;;N;;;;;
+0715;SYRIAC LETTER DALATH;Lo;0;AL;;;;;N;;;;;
+0716;SYRIAC LETTER DOTLESS DALATH RISH;Lo;0;AL;;;;;N;;;;;
+0717;SYRIAC LETTER HE;Lo;0;AL;;;;;N;;;;;
+0718;SYRIAC LETTER WAW;Lo;0;AL;;;;;N;;;;;
+0719;SYRIAC LETTER ZAIN;Lo;0;AL;;;;;N;;;;;
+071A;SYRIAC LETTER HETH;Lo;0;AL;;;;;N;;;;;
+071B;SYRIAC LETTER TETH;Lo;0;AL;;;;;N;;;;;
+071C;SYRIAC LETTER TETH GARSHUNI;Lo;0;AL;;;;;N;;;;;
+071D;SYRIAC LETTER YUDH;Lo;0;AL;;;;;N;;;;;
+071E;SYRIAC LETTER YUDH HE;Lo;0;AL;;;;;N;;;;;
+071F;SYRIAC LETTER KAPH;Lo;0;AL;;;;;N;;;;;
+0720;SYRIAC LETTER LAMADH;Lo;0;AL;;;;;N;;;;;
+0721;SYRIAC LETTER MIM;Lo;0;AL;;;;;N;;;;;
+0722;SYRIAC LETTER NUN;Lo;0;AL;;;;;N;;;;;
+0723;SYRIAC LETTER SEMKATH;Lo;0;AL;;;;;N;;;;;
+0724;SYRIAC LETTER FINAL SEMKATH;Lo;0;AL;;;;;N;;;;;
+0725;SYRIAC LETTER E;Lo;0;AL;;;;;N;;;;;
+0726;SYRIAC LETTER PE;Lo;0;AL;;;;;N;;;;;
+0727;SYRIAC LETTER REVERSED PE;Lo;0;AL;;;;;N;;;;;
+0728;SYRIAC LETTER SADHE;Lo;0;AL;;;;;N;;;;;
+0729;SYRIAC LETTER QAPH;Lo;0;AL;;;;;N;;;;;
+072A;SYRIAC LETTER RISH;Lo;0;AL;;;;;N;;;;;
+072B;SYRIAC LETTER SHIN;Lo;0;AL;;;;;N;;;;;
+072C;SYRIAC LETTER TAW;Lo;0;AL;;;;;N;;;;;
+0730;SYRIAC PTHAHA ABOVE;Mn;230;NSM;;;;;N;;;;;
+0731;SYRIAC PTHAHA BELOW;Mn;220;NSM;;;;;N;;;;;
+0732;SYRIAC PTHAHA DOTTED;Mn;230;NSM;;;;;N;;;;;
+0733;SYRIAC ZQAPHA ABOVE;Mn;230;NSM;;;;;N;;;;;
+0734;SYRIAC ZQAPHA BELOW;Mn;220;NSM;;;;;N;;;;;
+0735;SYRIAC ZQAPHA DOTTED;Mn;230;NSM;;;;;N;;;;;
+0736;SYRIAC RBASA ABOVE;Mn;230;NSM;;;;;N;;;;;
+0737;SYRIAC RBASA BELOW;Mn;220;NSM;;;;;N;;;;;
+0738;SYRIAC DOTTED ZLAMA HORIZONTAL;Mn;220;NSM;;;;;N;;;;;
+0739;SYRIAC DOTTED ZLAMA ANGULAR;Mn;220;NSM;;;;;N;;;;;
+073A;SYRIAC HBASA ABOVE;Mn;230;NSM;;;;;N;;;;;
+073B;SYRIAC HBASA BELOW;Mn;220;NSM;;;;;N;;;;;
+073C;SYRIAC HBASA-ESASA DOTTED;Mn;220;NSM;;;;;N;;;;;
+073D;SYRIAC ESASA ABOVE;Mn;230;NSM;;;;;N;;;;;
+073E;SYRIAC ESASA BELOW;Mn;220;NSM;;;;;N;;;;;
+073F;SYRIAC RWAHA;Mn;230;NSM;;;;;N;;;;;
+0740;SYRIAC FEMININE DOT;Mn;230;NSM;;;;;N;;;;;
+0741;SYRIAC QUSHSHAYA;Mn;230;NSM;;;;;N;;;;;
+0742;SYRIAC RUKKAKHA;Mn;220;NSM;;;;;N;;;;;
+0743;SYRIAC TWO VERTICAL DOTS ABOVE;Mn;230;NSM;;;;;N;;;;;
+0744;SYRIAC TWO VERTICAL DOTS BELOW;Mn;220;NSM;;;;;N;;;;;
+0745;SYRIAC THREE DOTS ABOVE;Mn;230;NSM;;;;;N;;;;;
+0746;SYRIAC THREE DOTS BELOW;Mn;220;NSM;;;;;N;;;;;
+0747;SYRIAC OBLIQUE LINE ABOVE;Mn;230;NSM;;;;;N;;;;;
+0748;SYRIAC OBLIQUE LINE BELOW;Mn;220;NSM;;;;;N;;;;;
+0749;SYRIAC MUSIC;Mn;230;NSM;;;;;N;;;;;
+074A;SYRIAC BARREKH;Mn;230;NSM;;;;;N;;;;;
+0780;THAANA LETTER HAA;Lo;0;AL;;;;;N;;;;;
+0781;THAANA LETTER SHAVIYANI;Lo;0;AL;;;;;N;;;;;
+0782;THAANA LETTER NOONU;Lo;0;AL;;;;;N;;;;;
+0783;THAANA LETTER RAA;Lo;0;AL;;;;;N;;;;;
+0784;THAANA LETTER BAA;Lo;0;AL;;;;;N;;;;;
+0785;THAANA LETTER LHAVIYANI;Lo;0;AL;;;;;N;;;;;
+0786;THAANA LETTER KAAFU;Lo;0;AL;;;;;N;;;;;
+0787;THAANA LETTER ALIFU;Lo;0;AL;;;;;N;;;;;
+0788;THAANA LETTER VAAVU;Lo;0;AL;;;;;N;;;;;
+0789;THAANA LETTER MEEMU;Lo;0;AL;;;;;N;;;;;
+078A;THAANA LETTER FAAFU;Lo;0;AL;;;;;N;;;;;
+078B;THAANA LETTER DHAALU;Lo;0;AL;;;;;N;;;;;
+078C;THAANA LETTER THAA;Lo;0;AL;;;;;N;;;;;
+078D;THAANA LETTER LAAMU;Lo;0;AL;;;;;N;;;;;
+078E;THAANA LETTER GAAFU;Lo;0;AL;;;;;N;;;;;
+078F;THAANA LETTER GNAVIYANI;Lo;0;AL;;;;;N;;;;;
+0790;THAANA LETTER SEENU;Lo;0;AL;;;;;N;;;;;
+0791;THAANA LETTER DAVIYANI;Lo;0;AL;;;;;N;;;;;
+0792;THAANA LETTER ZAVIYANI;Lo;0;AL;;;;;N;;;;;
+0793;THAANA LETTER TAVIYANI;Lo;0;AL;;;;;N;;;;;
+0794;THAANA LETTER YAA;Lo;0;AL;;;;;N;;;;;
+0795;THAANA LETTER PAVIYANI;Lo;0;AL;;;;;N;;;;;
+0796;THAANA LETTER JAVIYANI;Lo;0;AL;;;;;N;;;;;
+0797;THAANA LETTER CHAVIYANI;Lo;0;AL;;;;;N;;;;;
+0798;THAANA LETTER TTAA;Lo;0;AL;;;;;N;;;;;
+0799;THAANA LETTER HHAA;Lo;0;AL;;;;;N;;;;;
+079A;THAANA LETTER KHAA;Lo;0;AL;;;;;N;;;;;
+079B;THAANA LETTER THAALU;Lo;0;AL;;;;;N;;;;;
+079C;THAANA LETTER ZAA;Lo;0;AL;;;;;N;;;;;
+079D;THAANA LETTER SHEENU;Lo;0;AL;;;;;N;;;;;
+079E;THAANA LETTER SAADHU;Lo;0;AL;;;;;N;;;;;
+079F;THAANA LETTER DAADHU;Lo;0;AL;;;;;N;;;;;
+07A0;THAANA LETTER TO;Lo;0;AL;;;;;N;;;;;
+07A1;THAANA LETTER ZO;Lo;0;AL;;;;;N;;;;;
+07A2;THAANA LETTER AINU;Lo;0;AL;;;;;N;;;;;
+07A3;THAANA LETTER GHAINU;Lo;0;AL;;;;;N;;;;;
+07A4;THAANA LETTER QAAFU;Lo;0;AL;;;;;N;;;;;
+07A5;THAANA LETTER WAAVU;Lo;0;AL;;;;;N;;;;;
+07A6;THAANA ABAFILI;Mn;0;NSM;;;;;N;;;;;
+07A7;THAANA AABAAFILI;Mn;0;NSM;;;;;N;;;;;
+07A8;THAANA IBIFILI;Mn;0;NSM;;;;;N;;;;;
+07A9;THAANA EEBEEFILI;Mn;0;NSM;;;;;N;;;;;
+07AA;THAANA UBUFILI;Mn;0;NSM;;;;;N;;;;;
+07AB;THAANA OOBOOFILI;Mn;0;NSM;;;;;N;;;;;
+07AC;THAANA EBEFILI;Mn;0;NSM;;;;;N;;;;;
+07AD;THAANA EYBEYFILI;Mn;0;NSM;;;;;N;;;;;
+07AE;THAANA OBOFILI;Mn;0;NSM;;;;;N;;;;;
+07AF;THAANA OABOAFILI;Mn;0;NSM;;;;;N;;;;;
+07B0;THAANA SUKUN;Mn;0;NSM;;;;;N;;;;;
+0901;DEVANAGARI SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
+0902;DEVANAGARI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
+0903;DEVANAGARI SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+0904;DEVANAGARI LETTER SHORT A;Lo;0;L;;;;;N;;;;;
+0905;DEVANAGARI LETTER A;Lo;0;L;;;;;N;;;;;
+0906;DEVANAGARI LETTER AA;Lo;0;L;;;;;N;;;;;
+0907;DEVANAGARI LETTER I;Lo;0;L;;;;;N;;;;;
+0908;DEVANAGARI LETTER II;Lo;0;L;;;;;N;;;;;
+0909;DEVANAGARI LETTER U;Lo;0;L;;;;;N;;;;;
+090A;DEVANAGARI LETTER UU;Lo;0;L;;;;;N;;;;;
+090B;DEVANAGARI LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
+090C;DEVANAGARI LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
+090D;DEVANAGARI LETTER CANDRA E;Lo;0;L;;;;;N;;;;;
+090E;DEVANAGARI LETTER SHORT E;Lo;0;L;;;;;N;;;;;
+090F;DEVANAGARI LETTER E;Lo;0;L;;;;;N;;;;;
+0910;DEVANAGARI LETTER AI;Lo;0;L;;;;;N;;;;;
+0911;DEVANAGARI LETTER CANDRA O;Lo;0;L;;;;;N;;;;;
+0912;DEVANAGARI LETTER SHORT O;Lo;0;L;;;;;N;;;;;
+0913;DEVANAGARI LETTER O;Lo;0;L;;;;;N;;;;;
+0914;DEVANAGARI LETTER AU;Lo;0;L;;;;;N;;;;;
+0915;DEVANAGARI LETTER KA;Lo;0;L;;;;;N;;;;;
+0916;DEVANAGARI LETTER KHA;Lo;0;L;;;;;N;;;;;
+0917;DEVANAGARI LETTER GA;Lo;0;L;;;;;N;;;;;
+0918;DEVANAGARI LETTER GHA;Lo;0;L;;;;;N;;;;;
+0919;DEVANAGARI LETTER NGA;Lo;0;L;;;;;N;;;;;
+091A;DEVANAGARI LETTER CA;Lo;0;L;;;;;N;;;;;
+091B;DEVANAGARI LETTER CHA;Lo;0;L;;;;;N;;;;;
+091C;DEVANAGARI LETTER JA;Lo;0;L;;;;;N;;;;;
+091D;DEVANAGARI LETTER JHA;Lo;0;L;;;;;N;;;;;
+091E;DEVANAGARI LETTER NYA;Lo;0;L;;;;;N;;;;;
+091F;DEVANAGARI LETTER TTA;Lo;0;L;;;;;N;;;;;
+0920;DEVANAGARI LETTER TTHA;Lo;0;L;;;;;N;;;;;
+0921;DEVANAGARI LETTER DDA;Lo;0;L;;;;;N;;;;;
+0922;DEVANAGARI LETTER DDHA;Lo;0;L;;;;;N;;;;;
+0923;DEVANAGARI LETTER NNA;Lo;0;L;;;;;N;;;;;
+0924;DEVANAGARI LETTER TA;Lo;0;L;;;;;N;;;;;
+0925;DEVANAGARI LETTER THA;Lo;0;L;;;;;N;;;;;
+0926;DEVANAGARI LETTER DA;Lo;0;L;;;;;N;;;;;
+0927;DEVANAGARI LETTER DHA;Lo;0;L;;;;;N;;;;;
+0928;DEVANAGARI LETTER NA;Lo;0;L;;;;;N;;;;;
+0929;DEVANAGARI LETTER NNNA;Lo;0;L;0928 093C;;;;N;;;;;
+092A;DEVANAGARI LETTER PA;Lo;0;L;;;;;N;;;;;
+092B;DEVANAGARI LETTER PHA;Lo;0;L;;;;;N;;;;;
+092C;DEVANAGARI LETTER BA;Lo;0;L;;;;;N;;;;;
+092D;DEVANAGARI LETTER BHA;Lo;0;L;;;;;N;;;;;
+092E;DEVANAGARI LETTER MA;Lo;0;L;;;;;N;;;;;
+092F;DEVANAGARI LETTER YA;Lo;0;L;;;;;N;;;;;
+0930;DEVANAGARI LETTER RA;Lo;0;L;;;;;N;;;;;
+0931;DEVANAGARI LETTER RRA;Lo;0;L;0930 093C;;;;N;;;;;
+0932;DEVANAGARI LETTER LA;Lo;0;L;;;;;N;;;;;
+0933;DEVANAGARI LETTER LLA;Lo;0;L;;;;;N;;;;;
+0934;DEVANAGARI LETTER LLLA;Lo;0;L;0933 093C;;;;N;;;;;
+0935;DEVANAGARI LETTER VA;Lo;0;L;;;;;N;;;;;
+0936;DEVANAGARI LETTER SHA;Lo;0;L;;;;;N;;;;;
+0937;DEVANAGARI LETTER SSA;Lo;0;L;;;;;N;;;;;
+0938;DEVANAGARI LETTER SA;Lo;0;L;;;;;N;;;;;
+0939;DEVANAGARI LETTER HA;Lo;0;L;;;;;N;;;;;
+093C;DEVANAGARI SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;
+093D;DEVANAGARI SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;;
+093E;DEVANAGARI VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+093F;DEVANAGARI VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
+0940;DEVANAGARI VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
+0941;DEVANAGARI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+0942;DEVANAGARI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
+0943;DEVANAGARI VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;;
+0944;DEVANAGARI VOWEL SIGN VOCALIC RR;Mn;0;NSM;;;;;N;;;;;
+0945;DEVANAGARI VOWEL SIGN CANDRA E;Mn;0;NSM;;;;;N;;;;;
+0946;DEVANAGARI VOWEL SIGN SHORT E;Mn;0;NSM;;;;;N;;;;;
+0947;DEVANAGARI VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;;
+0948;DEVANAGARI VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;;
+0949;DEVANAGARI VOWEL SIGN CANDRA O;Mc;0;L;;;;;N;;;;;
+094A;DEVANAGARI VOWEL SIGN SHORT O;Mc;0;L;;;;;N;;;;;
+094B;DEVANAGARI VOWEL SIGN O;Mc;0;L;;;;;N;;;;;
+094C;DEVANAGARI VOWEL SIGN AU;Mc;0;L;;;;;N;;;;;
+094D;DEVANAGARI SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+0950;DEVANAGARI OM;Lo;0;L;;;;;N;;;;;
+0951;DEVANAGARI STRESS SIGN UDATTA;Mn;230;NSM;;;;;N;;;;;
+0952;DEVANAGARI STRESS SIGN ANUDATTA;Mn;220;NSM;;;;;N;;;;;
+0953;DEVANAGARI GRAVE ACCENT;Mn;230;NSM;;;;;N;;;;;
+0954;DEVANAGARI ACUTE ACCENT;Mn;230;NSM;;;;;N;;;;;
+0958;DEVANAGARI LETTER QA;Lo;0;L;0915 093C;;;;N;;;;;
+0959;DEVANAGARI LETTER KHHA;Lo;0;L;0916 093C;;;;N;;;;;
+095A;DEVANAGARI LETTER GHHA;Lo;0;L;0917 093C;;;;N;;;;;
+095B;DEVANAGARI LETTER ZA;Lo;0;L;091C 093C;;;;N;;;;;
+095C;DEVANAGARI LETTER DDDHA;Lo;0;L;0921 093C;;;;N;;;;;
+095D;DEVANAGARI LETTER RHA;Lo;0;L;0922 093C;;;;N;;;;;
+095E;DEVANAGARI LETTER FA;Lo;0;L;092B 093C;;;;N;;;;;
+095F;DEVANAGARI LETTER YYA;Lo;0;L;092F 093C;;;;N;;;;;
+0960;DEVANAGARI LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
+0961;DEVANAGARI LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
+0962;DEVANAGARI VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;;
+0963;DEVANAGARI VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;;
+0964;DEVANAGARI DANDA;Po;0;L;;;;;N;;;;;
+0965;DEVANAGARI DOUBLE DANDA;Po;0;L;;;;;N;;;;;
+0966;DEVANAGARI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+0967;DEVANAGARI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+0968;DEVANAGARI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+0969;DEVANAGARI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+096A;DEVANAGARI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+096B;DEVANAGARI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+096C;DEVANAGARI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+096D;DEVANAGARI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+096E;DEVANAGARI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+096F;DEVANAGARI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+0970;DEVANAGARI ABBREVIATION SIGN;Po;0;L;;;;;N;;;;;
+097B;DEVANAGARI LETTER GGA;Lo;0;L;;;;;N;;;;;
+097C;DEVANAGARI LETTER JJA;Lo;0;L;;;;;N;;;;;
+097D;DEVANAGARI LETTER GLOTTAL STOP;Lo;0;L;;;;;N;;;;;
+097E;DEVANAGARI LETTER DDDA;Lo;0;L;;;;;N;;;;;
+097F;DEVANAGARI LETTER BBA;Lo;0;L;;;;;N;;;;;
+0981;BENGALI SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
+0982;BENGALI SIGN ANUSVARA;Mc;0;L;;;;;N;;;;;
+0983;BENGALI SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+0985;BENGALI LETTER A;Lo;0;L;;;;;N;;;;;
+0986;BENGALI LETTER AA;Lo;0;L;;;;;N;;;;;
+0987;BENGALI LETTER I;Lo;0;L;;;;;N;;;;;
+0988;BENGALI LETTER II;Lo;0;L;;;;;N;;;;;
+0989;BENGALI LETTER U;Lo;0;L;;;;;N;;;;;
+098A;BENGALI LETTER UU;Lo;0;L;;;;;N;;;;;
+098B;BENGALI LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
+098C;BENGALI LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
+098F;BENGALI LETTER E;Lo;0;L;;;;;N;;;;;
+0990;BENGALI LETTER AI;Lo;0;L;;;;;N;;;;;
+0993;BENGALI LETTER O;Lo;0;L;;;;;N;;;;;
+0994;BENGALI LETTER AU;Lo;0;L;;;;;N;;;;;
+0995;BENGALI LETTER KA;Lo;0;L;;;;;N;;;;;
+0996;BENGALI LETTER KHA;Lo;0;L;;;;;N;;;;;
+0997;BENGALI LETTER GA;Lo;0;L;;;;;N;;;;;
+0998;BENGALI LETTER GHA;Lo;0;L;;;;;N;;;;;
+0999;BENGALI LETTER NGA;Lo;0;L;;;;;N;;;;;
+099A;BENGALI LETTER CA;Lo;0;L;;;;;N;;;;;
+099B;BENGALI LETTER CHA;Lo;0;L;;;;;N;;;;;
+099C;BENGALI LETTER JA;Lo;0;L;;;;;N;;;;;
+099D;BENGALI LETTER JHA;Lo;0;L;;;;;N;;;;;
+099E;BENGALI LETTER NYA;Lo;0;L;;;;;N;;;;;
+099F;BENGALI LETTER TTA;Lo;0;L;;;;;N;;;;;
+09A0;BENGALI LETTER TTHA;Lo;0;L;;;;;N;;;;;
+09A1;BENGALI LETTER DDA;Lo;0;L;;;;;N;;;;;
+09A2;BENGALI LETTER DDHA;Lo;0;L;;;;;N;;;;;
+09A3;BENGALI LETTER NNA;Lo;0;L;;;;;N;;;;;
+09A4;BENGALI LETTER TA;Lo;0;L;;;;;N;;;;;
+09A5;BENGALI LETTER THA;Lo;0;L;;;;;N;;;;;
+09A6;BENGALI LETTER DA;Lo;0;L;;;;;N;;;;;
+09A7;BENGALI LETTER DHA;Lo;0;L;;;;;N;;;;;
+09A8;BENGALI LETTER NA;Lo;0;L;;;;;N;;;;;
+09AA;BENGALI LETTER PA;Lo;0;L;;;;;N;;;;;
+09AB;BENGALI LETTER PHA;Lo;0;L;;;;;N;;;;;
+09AC;BENGALI LETTER BA;Lo;0;L;;;;;N;;;;;
+09AD;BENGALI LETTER BHA;Lo;0;L;;;;;N;;;;;
+09AE;BENGALI LETTER MA;Lo;0;L;;;;;N;;;;;
+09AF;BENGALI LETTER YA;Lo;0;L;;;;;N;;;;;
+09B0;BENGALI LETTER RA;Lo;0;L;;;;;N;;;;;
+09B2;BENGALI LETTER LA;Lo;0;L;;;;;N;;;;;
+09B6;BENGALI LETTER SHA;Lo;0;L;;;;;N;;;;;
+09B7;BENGALI LETTER SSA;Lo;0;L;;;;;N;;;;;
+09B8;BENGALI LETTER SA;Lo;0;L;;;;;N;;;;;
+09B9;BENGALI LETTER HA;Lo;0;L;;;;;N;;;;;
+09BC;BENGALI SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;
+09BD;BENGALI SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;;
+09BE;BENGALI VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+09BF;BENGALI VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
+09C0;BENGALI VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
+09C1;BENGALI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+09C2;BENGALI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
+09C3;BENGALI VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;;
+09C4;BENGALI VOWEL SIGN VOCALIC RR;Mn;0;NSM;;;;;N;;;;;
+09C7;BENGALI VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
+09C8;BENGALI VOWEL SIGN AI;Mc;0;L;;;;;N;;;;;
+09CB;BENGALI VOWEL SIGN O;Mc;0;L;09C7 09BE;;;;N;;;;;
+09CC;BENGALI VOWEL SIGN AU;Mc;0;L;09C7 09D7;;;;N;;;;;
+09CD;BENGALI SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+09CE;BENGALI LETTER KHANDA TA;Lo;0;L;;;;;N;;;;;
+09D7;BENGALI AU LENGTH MARK;Mc;0;L;;;;;N;;;;;
+09DC;BENGALI LETTER RRA;Lo;0;L;09A1 09BC;;;;N;;;;;
+09DD;BENGALI LETTER RHA;Lo;0;L;09A2 09BC;;;;N;;;;;
+09DF;BENGALI LETTER YYA;Lo;0;L;09AF 09BC;;;;N;;;;;
+09E0;BENGALI LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
+09E1;BENGALI LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
+09E2;BENGALI VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;;
+09E3;BENGALI VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;;
+09E6;BENGALI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+09E7;BENGALI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+09E8;BENGALI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+09E9;BENGALI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+09EA;BENGALI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+09EB;BENGALI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+09EC;BENGALI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+09ED;BENGALI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+09EE;BENGALI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+09EF;BENGALI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+09F0;BENGALI LETTER RA WITH MIDDLE DIAGONAL;Lo;0;L;;;;;N;;Assamese;;;
+09F1;BENGALI LETTER RA WITH LOWER DIAGONAL;Lo;0;L;;;;;N;BENGALI LETTER VA WITH LOWER DIAGONAL;Assamese;;;
+09F2;BENGALI RUPEE MARK;Sc;0;ET;;;;;N;;;;;
+09F3;BENGALI RUPEE SIGN;Sc;0;ET;;;;;N;;;;;
+09F4;BENGALI CURRENCY NUMERATOR ONE;No;0;L;;;;1;N;;;;;
+09F5;BENGALI CURRENCY NUMERATOR TWO;No;0;L;;;;2;N;;;;;
+09F6;BENGALI CURRENCY NUMERATOR THREE;No;0;L;;;;3;N;;;;;
+09F7;BENGALI CURRENCY NUMERATOR FOUR;No;0;L;;;;4;N;;;;;
+09F8;BENGALI CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR;No;0;L;;;;;N;;;;;
+09F9;BENGALI CURRENCY DENOMINATOR SIXTEEN;No;0;L;;;;16;N;;;;;
+09FA;BENGALI ISSHAR;So;0;L;;;;;N;;;;;
+0A01;GURMUKHI SIGN ADAK BINDI;Mn;0;NSM;;;;;N;;;;;
+0A02;GURMUKHI SIGN BINDI;Mn;0;NSM;;;;;N;;;;;
+0A03;GURMUKHI SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+0A05;GURMUKHI LETTER A;Lo;0;L;;;;;N;;;;;
+0A06;GURMUKHI LETTER AA;Lo;0;L;;;;;N;;;;;
+0A07;GURMUKHI LETTER I;Lo;0;L;;;;;N;;;;;
+0A08;GURMUKHI LETTER II;Lo;0;L;;;;;N;;;;;
+0A09;GURMUKHI LETTER U;Lo;0;L;;;;;N;;;;;
+0A0A;GURMUKHI LETTER UU;Lo;0;L;;;;;N;;;;;
+0A0F;GURMUKHI LETTER EE;Lo;0;L;;;;;N;;;;;
+0A10;GURMUKHI LETTER AI;Lo;0;L;;;;;N;;;;;
+0A13;GURMUKHI LETTER OO;Lo;0;L;;;;;N;;;;;
+0A14;GURMUKHI LETTER AU;Lo;0;L;;;;;N;;;;;
+0A15;GURMUKHI LETTER KA;Lo;0;L;;;;;N;;;;;
+0A16;GURMUKHI LETTER KHA;Lo;0;L;;;;;N;;;;;
+0A17;GURMUKHI LETTER GA;Lo;0;L;;;;;N;;;;;
+0A18;GURMUKHI LETTER GHA;Lo;0;L;;;;;N;;;;;
+0A19;GURMUKHI LETTER NGA;Lo;0;L;;;;;N;;;;;
+0A1A;GURMUKHI LETTER CA;Lo;0;L;;;;;N;;;;;
+0A1B;GURMUKHI LETTER CHA;Lo;0;L;;;;;N;;;;;
+0A1C;GURMUKHI LETTER JA;Lo;0;L;;;;;N;;;;;
+0A1D;GURMUKHI LETTER JHA;Lo;0;L;;;;;N;;;;;
+0A1E;GURMUKHI LETTER NYA;Lo;0;L;;;;;N;;;;;
+0A1F;GURMUKHI LETTER TTA;Lo;0;L;;;;;N;;;;;
+0A20;GURMUKHI LETTER TTHA;Lo;0;L;;;;;N;;;;;
+0A21;GURMUKHI LETTER DDA;Lo;0;L;;;;;N;;;;;
+0A22;GURMUKHI LETTER DDHA;Lo;0;L;;;;;N;;;;;
+0A23;GURMUKHI LETTER NNA;Lo;0;L;;;;;N;;;;;
+0A24;GURMUKHI LETTER TA;Lo;0;L;;;;;N;;;;;
+0A25;GURMUKHI LETTER THA;Lo;0;L;;;;;N;;;;;
+0A26;GURMUKHI LETTER DA;Lo;0;L;;;;;N;;;;;
+0A27;GURMUKHI LETTER DHA;Lo;0;L;;;;;N;;;;;
+0A28;GURMUKHI LETTER NA;Lo;0;L;;;;;N;;;;;
+0A2A;GURMUKHI LETTER PA;Lo;0;L;;;;;N;;;;;
+0A2B;GURMUKHI LETTER PHA;Lo;0;L;;;;;N;;;;;
+0A2C;GURMUKHI LETTER BA;Lo;0;L;;;;;N;;;;;
+0A2D;GURMUKHI LETTER BHA;Lo;0;L;;;;;N;;;;;
+0A2E;GURMUKHI LETTER MA;Lo;0;L;;;;;N;;;;;
+0A2F;GURMUKHI LETTER YA;Lo;0;L;;;;;N;;;;;
+0A30;GURMUKHI LETTER RA;Lo;0;L;;;;;N;;;;;
+0A32;GURMUKHI LETTER LA;Lo;0;L;;;;;N;;;;;
+0A33;GURMUKHI LETTER LLA;Lo;0;L;0A32 0A3C;;;;N;;;;;
+0A35;GURMUKHI LETTER VA;Lo;0;L;;;;;N;;;;;
+0A36;GURMUKHI LETTER SHA;Lo;0;L;0A38 0A3C;;;;N;;;;;
+0A38;GURMUKHI LETTER SA;Lo;0;L;;;;;N;;;;;
+0A39;GURMUKHI LETTER HA;Lo;0;L;;;;;N;;;;;
+0A3C;GURMUKHI SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;
+0A3E;GURMUKHI VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+0A3F;GURMUKHI VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
+0A40;GURMUKHI VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
+0A41;GURMUKHI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+0A42;GURMUKHI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
+0A47;GURMUKHI VOWEL SIGN EE;Mn;0;NSM;;;;;N;;;;;
+0A48;GURMUKHI VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;;
+0A4B;GURMUKHI VOWEL SIGN OO;Mn;0;NSM;;;;;N;;;;;
+0A4C;GURMUKHI VOWEL SIGN AU;Mn;0;NSM;;;;;N;;;;;
+0A4D;GURMUKHI SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+0A59;GURMUKHI LETTER KHHA;Lo;0;L;0A16 0A3C;;;;N;;;;;
+0A5A;GURMUKHI LETTER GHHA;Lo;0;L;0A17 0A3C;;;;N;;;;;
+0A5B;GURMUKHI LETTER ZA;Lo;0;L;0A1C 0A3C;;;;N;;;;;
+0A5C;GURMUKHI LETTER RRA;Lo;0;L;;;;;N;;;;;
+0A5E;GURMUKHI LETTER FA;Lo;0;L;0A2B 0A3C;;;;N;;;;;
+0A66;GURMUKHI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+0A67;GURMUKHI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+0A68;GURMUKHI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+0A69;GURMUKHI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+0A6A;GURMUKHI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+0A6B;GURMUKHI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+0A6C;GURMUKHI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+0A6D;GURMUKHI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+0A6E;GURMUKHI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+0A6F;GURMUKHI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+0A70;GURMUKHI TIPPI;Mn;0;NSM;;;;;N;;;;;
+0A71;GURMUKHI ADDAK;Mn;0;NSM;;;;;N;;;;;
+0A72;GURMUKHI IRI;Lo;0;L;;;;;N;;;;;
+0A73;GURMUKHI URA;Lo;0;L;;;;;N;;;;;
+0A74;GURMUKHI EK ONKAR;Lo;0;L;;;;;N;;;;;
+0A81;GUJARATI SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
+0A82;GUJARATI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
+0A83;GUJARATI SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+0A85;GUJARATI LETTER A;Lo;0;L;;;;;N;;;;;
+0A86;GUJARATI LETTER AA;Lo;0;L;;;;;N;;;;;
+0A87;GUJARATI LETTER I;Lo;0;L;;;;;N;;;;;
+0A88;GUJARATI LETTER II;Lo;0;L;;;;;N;;;;;
+0A89;GUJARATI LETTER U;Lo;0;L;;;;;N;;;;;
+0A8A;GUJARATI LETTER UU;Lo;0;L;;;;;N;;;;;
+0A8B;GUJARATI LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
+0A8C;GUJARATI LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
+0A8D;GUJARATI VOWEL CANDRA E;Lo;0;L;;;;;N;;;;;
+0A8F;GUJARATI LETTER E;Lo;0;L;;;;;N;;;;;
+0A90;GUJARATI LETTER AI;Lo;0;L;;;;;N;;;;;
+0A91;GUJARATI VOWEL CANDRA O;Lo;0;L;;;;;N;;;;;
+0A93;GUJARATI LETTER O;Lo;0;L;;;;;N;;;;;
+0A94;GUJARATI LETTER AU;Lo;0;L;;;;;N;;;;;
+0A95;GUJARATI LETTER KA;Lo;0;L;;;;;N;;;;;
+0A96;GUJARATI LETTER KHA;Lo;0;L;;;;;N;;;;;
+0A97;GUJARATI LETTER GA;Lo;0;L;;;;;N;;;;;
+0A98;GUJARATI LETTER GHA;Lo;0;L;;;;;N;;;;;
+0A99;GUJARATI LETTER NGA;Lo;0;L;;;;;N;;;;;
+0A9A;GUJARATI LETTER CA;Lo;0;L;;;;;N;;;;;
+0A9B;GUJARATI LETTER CHA;Lo;0;L;;;;;N;;;;;
+0A9C;GUJARATI LETTER JA;Lo;0;L;;;;;N;;;;;
+0A9D;GUJARATI LETTER JHA;Lo;0;L;;;;;N;;;;;
+0A9E;GUJARATI LETTER NYA;Lo;0;L;;;;;N;;;;;
+0A9F;GUJARATI LETTER TTA;Lo;0;L;;;;;N;;;;;
+0AA0;GUJARATI LETTER TTHA;Lo;0;L;;;;;N;;;;;
+0AA1;GUJARATI LETTER DDA;Lo;0;L;;;;;N;;;;;
+0AA2;GUJARATI LETTER DDHA;Lo;0;L;;;;;N;;;;;
+0AA3;GUJARATI LETTER NNA;Lo;0;L;;;;;N;;;;;
+0AA4;GUJARATI LETTER TA;Lo;0;L;;;;;N;;;;;
+0AA5;GUJARATI LETTER THA;Lo;0;L;;;;;N;;;;;
+0AA6;GUJARATI LETTER DA;Lo;0;L;;;;;N;;;;;
+0AA7;GUJARATI LETTER DHA;Lo;0;L;;;;;N;;;;;
+0AA8;GUJARATI LETTER NA;Lo;0;L;;;;;N;;;;;
+0AAA;GUJARATI LETTER PA;Lo;0;L;;;;;N;;;;;
+0AAB;GUJARATI LETTER PHA;Lo;0;L;;;;;N;;;;;
+0AAC;GUJARATI LETTER BA;Lo;0;L;;;;;N;;;;;
+0AAD;GUJARATI LETTER BHA;Lo;0;L;;;;;N;;;;;
+0AAE;GUJARATI LETTER MA;Lo;0;L;;;;;N;;;;;
+0AAF;GUJARATI LETTER YA;Lo;0;L;;;;;N;;;;;
+0AB0;GUJARATI LETTER RA;Lo;0;L;;;;;N;;;;;
+0AB2;GUJARATI LETTER LA;Lo;0;L;;;;;N;;;;;
+0AB3;GUJARATI LETTER LLA;Lo;0;L;;;;;N;;;;;
+0AB5;GUJARATI LETTER VA;Lo;0;L;;;;;N;;;;;
+0AB6;GUJARATI LETTER SHA;Lo;0;L;;;;;N;;;;;
+0AB7;GUJARATI LETTER SSA;Lo;0;L;;;;;N;;;;;
+0AB8;GUJARATI LETTER SA;Lo;0;L;;;;;N;;;;;
+0AB9;GUJARATI LETTER HA;Lo;0;L;;;;;N;;;;;
+0ABC;GUJARATI SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;
+0ABD;GUJARATI SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;;
+0ABE;GUJARATI VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+0ABF;GUJARATI VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
+0AC0;GUJARATI VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
+0AC1;GUJARATI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+0AC2;GUJARATI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
+0AC3;GUJARATI VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;;
+0AC4;GUJARATI VOWEL SIGN VOCALIC RR;Mn;0;NSM;;;;;N;;;;;
+0AC5;GUJARATI VOWEL SIGN CANDRA E;Mn;0;NSM;;;;;N;;;;;
+0AC7;GUJARATI VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;;
+0AC8;GUJARATI VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;;
+0AC9;GUJARATI VOWEL SIGN CANDRA O;Mc;0;L;;;;;N;;;;;
+0ACB;GUJARATI VOWEL SIGN O;Mc;0;L;;;;;N;;;;;
+0ACC;GUJARATI VOWEL SIGN AU;Mc;0;L;;;;;N;;;;;
+0ACD;GUJARATI SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+0AD0;GUJARATI OM;Lo;0;L;;;;;N;;;;;
+0AE0;GUJARATI LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
+0AE1;GUJARATI LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
+0AE2;GUJARATI VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;;
+0AE3;GUJARATI VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;;
+0AE6;GUJARATI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+0AE7;GUJARATI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+0AE8;GUJARATI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+0AE9;GUJARATI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+0AEA;GUJARATI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+0AEB;GUJARATI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+0AEC;GUJARATI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+0AED;GUJARATI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+0AEE;GUJARATI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+0AEF;GUJARATI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+0AF1;GUJARATI RUPEE SIGN;Sc;0;ET;;;;;N;;;;;
+0B01;ORIYA SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
+0B02;ORIYA SIGN ANUSVARA;Mc;0;L;;;;;N;;;;;
+0B03;ORIYA SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+0B05;ORIYA LETTER A;Lo;0;L;;;;;N;;;;;
+0B06;ORIYA LETTER AA;Lo;0;L;;;;;N;;;;;
+0B07;ORIYA LETTER I;Lo;0;L;;;;;N;;;;;
+0B08;ORIYA LETTER II;Lo;0;L;;;;;N;;;;;
+0B09;ORIYA LETTER U;Lo;0;L;;;;;N;;;;;
+0B0A;ORIYA LETTER UU;Lo;0;L;;;;;N;;;;;
+0B0B;ORIYA LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
+0B0C;ORIYA LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
+0B0F;ORIYA LETTER E;Lo;0;L;;;;;N;;;;;
+0B10;ORIYA LETTER AI;Lo;0;L;;;;;N;;;;;
+0B13;ORIYA LETTER O;Lo;0;L;;;;;N;;;;;
+0B14;ORIYA LETTER AU;Lo;0;L;;;;;N;;;;;
+0B15;ORIYA LETTER KA;Lo;0;L;;;;;N;;;;;
+0B16;ORIYA LETTER KHA;Lo;0;L;;;;;N;;;;;
+0B17;ORIYA LETTER GA;Lo;0;L;;;;;N;;;;;
+0B18;ORIYA LETTER GHA;Lo;0;L;;;;;N;;;;;
+0B19;ORIYA LETTER NGA;Lo;0;L;;;;;N;;;;;
+0B1A;ORIYA LETTER CA;Lo;0;L;;;;;N;;;;;
+0B1B;ORIYA LETTER CHA;Lo;0;L;;;;;N;;;;;
+0B1C;ORIYA LETTER JA;Lo;0;L;;;;;N;;;;;
+0B1D;ORIYA LETTER JHA;Lo;0;L;;;;;N;;;;;
+0B1E;ORIYA LETTER NYA;Lo;0;L;;;;;N;;;;;
+0B1F;ORIYA LETTER TTA;Lo;0;L;;;;;N;;;;;
+0B20;ORIYA LETTER TTHA;Lo;0;L;;;;;N;;;;;
+0B21;ORIYA LETTER DDA;Lo;0;L;;;;;N;;;;;
+0B22;ORIYA LETTER DDHA;Lo;0;L;;;;;N;;;;;
+0B23;ORIYA LETTER NNA;Lo;0;L;;;;;N;;;;;
+0B24;ORIYA LETTER TA;Lo;0;L;;;;;N;;;;;
+0B25;ORIYA LETTER THA;Lo;0;L;;;;;N;;;;;
+0B26;ORIYA LETTER DA;Lo;0;L;;;;;N;;;;;
+0B27;ORIYA LETTER DHA;Lo;0;L;;;;;N;;;;;
+0B28;ORIYA LETTER NA;Lo;0;L;;;;;N;;;;;
+0B2A;ORIYA LETTER PA;Lo;0;L;;;;;N;;;;;
+0B2B;ORIYA LETTER PHA;Lo;0;L;;;;;N;;;;;
+0B2C;ORIYA LETTER BA;Lo;0;L;;;;;N;;;;;
+0B2D;ORIYA LETTER BHA;Lo;0;L;;;;;N;;;;;
+0B2E;ORIYA LETTER MA;Lo;0;L;;;;;N;;;;;
+0B2F;ORIYA LETTER YA;Lo;0;L;;;;;N;;;;;
+0B30;ORIYA LETTER RA;Lo;0;L;;;;;N;;;;;
+0B32;ORIYA LETTER LA;Lo;0;L;;;;;N;;;;;
+0B33;ORIYA LETTER LLA;Lo;0;L;;;;;N;;;;;
+0B35;ORIYA LETTER VA;Lo;0;L;;;;;N;;;;;
+0B36;ORIYA LETTER SHA;Lo;0;L;;;;;N;;;;;
+0B37;ORIYA LETTER SSA;Lo;0;L;;;;;N;;;;;
+0B38;ORIYA LETTER SA;Lo;0;L;;;;;N;;;;;
+0B39;ORIYA LETTER HA;Lo;0;L;;;;;N;;;;;
+0B3C;ORIYA SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;
+0B3D;ORIYA SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;;
+0B3E;ORIYA VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+0B3F;ORIYA VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
+0B40;ORIYA VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
+0B41;ORIYA VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+0B42;ORIYA VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
+0B43;ORIYA VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;;
+0B47;ORIYA VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
+0B48;ORIYA VOWEL SIGN AI;Mc;0;L;0B47 0B56;;;;N;;;;;
+0B4B;ORIYA VOWEL SIGN O;Mc;0;L;0B47 0B3E;;;;N;;;;;
+0B4C;ORIYA VOWEL SIGN AU;Mc;0;L;0B47 0B57;;;;N;;;;;
+0B4D;ORIYA SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+0B56;ORIYA AI LENGTH MARK;Mn;0;NSM;;;;;N;;;;;
+0B57;ORIYA AU LENGTH MARK;Mc;0;L;;;;;N;;;;;
+0B5C;ORIYA LETTER RRA;Lo;0;L;0B21 0B3C;;;;N;;;;;
+0B5D;ORIYA LETTER RHA;Lo;0;L;0B22 0B3C;;;;N;;;;;
+0B5F;ORIYA LETTER YYA;Lo;0;L;;;;;N;;;;;
+0B60;ORIYA LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
+0B61;ORIYA LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
+0B66;ORIYA DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+0B67;ORIYA DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+0B68;ORIYA DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+0B69;ORIYA DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+0B6A;ORIYA DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+0B6B;ORIYA DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+0B6C;ORIYA DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+0B6D;ORIYA DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+0B6E;ORIYA DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+0B6F;ORIYA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+0B70;ORIYA ISSHAR;So;0;L;;;;;N;;;;;
+0B71;ORIYA LETTER WA;Lo;0;L;;;;;N;;;;;
+0B82;TAMIL SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
+0B83;TAMIL SIGN VISARGA;Lo;0;L;;;;;N;;;;;
+0B85;TAMIL LETTER A;Lo;0;L;;;;;N;;;;;
+0B86;TAMIL LETTER AA;Lo;0;L;;;;;N;;;;;
+0B87;TAMIL LETTER I;Lo;0;L;;;;;N;;;;;
+0B88;TAMIL LETTER II;Lo;0;L;;;;;N;;;;;
+0B89;TAMIL LETTER U;Lo;0;L;;;;;N;;;;;
+0B8A;TAMIL LETTER UU;Lo;0;L;;;;;N;;;;;
+0B8E;TAMIL LETTER E;Lo;0;L;;;;;N;;;;;
+0B8F;TAMIL LETTER EE;Lo;0;L;;;;;N;;;;;
+0B90;TAMIL LETTER AI;Lo;0;L;;;;;N;;;;;
+0B92;TAMIL LETTER O;Lo;0;L;;;;;N;;;;;
+0B93;TAMIL LETTER OO;Lo;0;L;;;;;N;;;;;
+0B94;TAMIL LETTER AU;Lo;0;L;0B92 0BD7;;;;N;;;;;
+0B95;TAMIL LETTER KA;Lo;0;L;;;;;N;;;;;
+0B99;TAMIL LETTER NGA;Lo;0;L;;;;;N;;;;;
+0B9A;TAMIL LETTER CA;Lo;0;L;;;;;N;;;;;
+0B9C;TAMIL LETTER JA;Lo;0;L;;;;;N;;;;;
+0B9E;TAMIL LETTER NYA;Lo;0;L;;;;;N;;;;;
+0B9F;TAMIL LETTER TTA;Lo;0;L;;;;;N;;;;;
+0BA3;TAMIL LETTER NNA;Lo;0;L;;;;;N;;;;;
+0BA4;TAMIL LETTER TA;Lo;0;L;;;;;N;;;;;
+0BA8;TAMIL LETTER NA;Lo;0;L;;;;;N;;;;;
+0BA9;TAMIL LETTER NNNA;Lo;0;L;;;;;N;;;;;
+0BAA;TAMIL LETTER PA;Lo;0;L;;;;;N;;;;;
+0BAE;TAMIL LETTER MA;Lo;0;L;;;;;N;;;;;
+0BAF;TAMIL LETTER YA;Lo;0;L;;;;;N;;;;;
+0BB0;TAMIL LETTER RA;Lo;0;L;;;;;N;;;;;
+0BB1;TAMIL LETTER RRA;Lo;0;L;;;;;N;;;;;
+0BB2;TAMIL LETTER LA;Lo;0;L;;;;;N;;;;;
+0BB3;TAMIL LETTER LLA;Lo;0;L;;;;;N;;;;;
+0BB4;TAMIL LETTER LLLA;Lo;0;L;;;;;N;;;;;
+0BB5;TAMIL LETTER VA;Lo;0;L;;;;;N;;;;;
+0BB6;TAMIL LETTER SHA;Lo;0;L;;;;;N;;;;;
+0BB7;TAMIL LETTER SSA;Lo;0;L;;;;;N;;;;;
+0BB8;TAMIL LETTER SA;Lo;0;L;;;;;N;;;;;
+0BB9;TAMIL LETTER HA;Lo;0;L;;;;;N;;;;;
+0BBE;TAMIL VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+0BBF;TAMIL VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
+0BC0;TAMIL VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;;
+0BC1;TAMIL VOWEL SIGN U;Mc;0;L;;;;;N;;;;;
+0BC2;TAMIL VOWEL SIGN UU;Mc;0;L;;;;;N;;;;;
+0BC6;TAMIL VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
+0BC7;TAMIL VOWEL SIGN EE;Mc;0;L;;;;;N;;;;;
+0BC8;TAMIL VOWEL SIGN AI;Mc;0;L;;;;;N;;;;;
+0BCA;TAMIL VOWEL SIGN O;Mc;0;L;0BC6 0BBE;;;;N;;;;;
+0BCB;TAMIL VOWEL SIGN OO;Mc;0;L;0BC7 0BBE;;;;N;;;;;
+0BCC;TAMIL VOWEL SIGN AU;Mc;0;L;0BC6 0BD7;;;;N;;;;;
+0BCD;TAMIL SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+0BD7;TAMIL AU LENGTH MARK;Mc;0;L;;;;;N;;;;;
+0BE6;TAMIL DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+0BE7;TAMIL DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+0BE8;TAMIL DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+0BE9;TAMIL DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+0BEA;TAMIL DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+0BEB;TAMIL DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+0BEC;TAMIL DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+0BED;TAMIL DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+0BEE;TAMIL DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+0BEF;TAMIL DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+0BF0;TAMIL NUMBER TEN;No;0;L;;;;10;N;;;;;
+0BF1;TAMIL NUMBER ONE HUNDRED;No;0;L;;;;100;N;;;;;
+0BF2;TAMIL NUMBER ONE THOUSAND;No;0;L;;;;1000;N;;;;;
+0BF3;TAMIL DAY SIGN;So;0;ON;;;;;N;;Naal;;;
+0BF4;TAMIL MONTH SIGN;So;0;ON;;;;;N;;Maatham;;;
+0BF5;TAMIL YEAR SIGN;So;0;ON;;;;;N;;Varudam;;;
+0BF6;TAMIL DEBIT SIGN;So;0;ON;;;;;N;;Patru;;;
+0BF7;TAMIL CREDIT SIGN;So;0;ON;;;;;N;;Varavu;;;
+0BF8;TAMIL AS ABOVE SIGN;So;0;ON;;;;;N;;Merpadi;;;
+0BF9;TAMIL RUPEE SIGN;Sc;0;ET;;;;;N;;Rupai;;;
+0BFA;TAMIL NUMBER SIGN;So;0;ON;;;;;N;;Enn;;;
+0C01;TELUGU SIGN CANDRABINDU;Mc;0;L;;;;;N;;;;;
+0C02;TELUGU SIGN ANUSVARA;Mc;0;L;;;;;N;;;;;
+0C03;TELUGU SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+0C05;TELUGU LETTER A;Lo;0;L;;;;;N;;;;;
+0C06;TELUGU LETTER AA;Lo;0;L;;;;;N;;;;;
+0C07;TELUGU LETTER I;Lo;0;L;;;;;N;;;;;
+0C08;TELUGU LETTER II;Lo;0;L;;;;;N;;;;;
+0C09;TELUGU LETTER U;Lo;0;L;;;;;N;;;;;
+0C0A;TELUGU LETTER UU;Lo;0;L;;;;;N;;;;;
+0C0B;TELUGU LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
+0C0C;TELUGU LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
+0C0E;TELUGU LETTER E;Lo;0;L;;;;;N;;;;;
+0C0F;TELUGU LETTER EE;Lo;0;L;;;;;N;;;;;
+0C10;TELUGU LETTER AI;Lo;0;L;;;;;N;;;;;
+0C12;TELUGU LETTER O;Lo;0;L;;;;;N;;;;;
+0C13;TELUGU LETTER OO;Lo;0;L;;;;;N;;;;;
+0C14;TELUGU LETTER AU;Lo;0;L;;;;;N;;;;;
+0C15;TELUGU LETTER KA;Lo;0;L;;;;;N;;;;;
+0C16;TELUGU LETTER KHA;Lo;0;L;;;;;N;;;;;
+0C17;TELUGU LETTER GA;Lo;0;L;;;;;N;;;;;
+0C18;TELUGU LETTER GHA;Lo;0;L;;;;;N;;;;;
+0C19;TELUGU LETTER NGA;Lo;0;L;;;;;N;;;;;
+0C1A;TELUGU LETTER CA;Lo;0;L;;;;;N;;;;;
+0C1B;TELUGU LETTER CHA;Lo;0;L;;;;;N;;;;;
+0C1C;TELUGU LETTER JA;Lo;0;L;;;;;N;;;;;
+0C1D;TELUGU LETTER JHA;Lo;0;L;;;;;N;;;;;
+0C1E;TELUGU LETTER NYA;Lo;0;L;;;;;N;;;;;
+0C1F;TELUGU LETTER TTA;Lo;0;L;;;;;N;;;;;
+0C20;TELUGU LETTER TTHA;Lo;0;L;;;;;N;;;;;
+0C21;TELUGU LETTER DDA;Lo;0;L;;;;;N;;;;;
+0C22;TELUGU LETTER DDHA;Lo;0;L;;;;;N;;;;;
+0C23;TELUGU LETTER NNA;Lo;0;L;;;;;N;;;;;
+0C24;TELUGU LETTER TA;Lo;0;L;;;;;N;;;;;
+0C25;TELUGU LETTER THA;Lo;0;L;;;;;N;;;;;
+0C26;TELUGU LETTER DA;Lo;0;L;;;;;N;;;;;
+0C27;TELUGU LETTER DHA;Lo;0;L;;;;;N;;;;;
+0C28;TELUGU LETTER NA;Lo;0;L;;;;;N;;;;;
+0C2A;TELUGU LETTER PA;Lo;0;L;;;;;N;;;;;
+0C2B;TELUGU LETTER PHA;Lo;0;L;;;;;N;;;;;
+0C2C;TELUGU LETTER BA;Lo;0;L;;;;;N;;;;;
+0C2D;TELUGU LETTER BHA;Lo;0;L;;;;;N;;;;;
+0C2E;TELUGU LETTER MA;Lo;0;L;;;;;N;;;;;
+0C2F;TELUGU LETTER YA;Lo;0;L;;;;;N;;;;;
+0C30;TELUGU LETTER RA;Lo;0;L;;;;;N;;;;;
+0C31;TELUGU LETTER RRA;Lo;0;L;;;;;N;;;;;
+0C32;TELUGU LETTER LA;Lo;0;L;;;;;N;;;;;
+0C33;TELUGU LETTER LLA;Lo;0;L;;;;;N;;;;;
+0C35;TELUGU LETTER VA;Lo;0;L;;;;;N;;;;;
+0C36;TELUGU LETTER SHA;Lo;0;L;;;;;N;;;;;
+0C37;TELUGU LETTER SSA;Lo;0;L;;;;;N;;;;;
+0C38;TELUGU LETTER SA;Lo;0;L;;;;;N;;;;;
+0C39;TELUGU LETTER HA;Lo;0;L;;;;;N;;;;;
+0C3E;TELUGU VOWEL SIGN AA;Mn;0;NSM;;;;;N;;;;;
+0C3F;TELUGU VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
+0C40;TELUGU VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;;
+0C41;TELUGU VOWEL SIGN U;Mc;0;L;;;;;N;;;;;
+0C42;TELUGU VOWEL SIGN UU;Mc;0;L;;;;;N;;;;;
+0C43;TELUGU VOWEL SIGN VOCALIC R;Mc;0;L;;;;;N;;;;;
+0C44;TELUGU VOWEL SIGN VOCALIC RR;Mc;0;L;;;;;N;;;;;
+0C46;TELUGU VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;;
+0C47;TELUGU VOWEL SIGN EE;Mn;0;NSM;;;;;N;;;;;
+0C48;TELUGU VOWEL SIGN AI;Mn;0;NSM;0C46 0C56;;;;N;;;;;
+0C4A;TELUGU VOWEL SIGN O;Mn;0;NSM;;;;;N;;;;;
+0C4B;TELUGU VOWEL SIGN OO;Mn;0;NSM;;;;;N;;;;;
+0C4C;TELUGU VOWEL SIGN AU;Mn;0;NSM;;;;;N;;;;;
+0C4D;TELUGU SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+0C55;TELUGU LENGTH MARK;Mn;84;NSM;;;;;N;;;;;
+0C56;TELUGU AI LENGTH MARK;Mn;91;NSM;;;;;N;;;;;
+0C60;TELUGU LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
+0C61;TELUGU LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
+0C66;TELUGU DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+0C67;TELUGU DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+0C68;TELUGU DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+0C69;TELUGU DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+0C6A;TELUGU DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+0C6B;TELUGU DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+0C6C;TELUGU DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+0C6D;TELUGU DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+0C6E;TELUGU DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+0C6F;TELUGU DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+0C82;KANNADA SIGN ANUSVARA;Mc;0;L;;;;;N;;;;;
+0C83;KANNADA SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+0C85;KANNADA LETTER A;Lo;0;L;;;;;N;;;;;
+0C86;KANNADA LETTER AA;Lo;0;L;;;;;N;;;;;
+0C87;KANNADA LETTER I;Lo;0;L;;;;;N;;;;;
+0C88;KANNADA LETTER II;Lo;0;L;;;;;N;;;;;
+0C89;KANNADA LETTER U;Lo;0;L;;;;;N;;;;;
+0C8A;KANNADA LETTER UU;Lo;0;L;;;;;N;;;;;
+0C8B;KANNADA LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
+0C8C;KANNADA LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
+0C8E;KANNADA LETTER E;Lo;0;L;;;;;N;;;;;
+0C8F;KANNADA LETTER EE;Lo;0;L;;;;;N;;;;;
+0C90;KANNADA LETTER AI;Lo;0;L;;;;;N;;;;;
+0C92;KANNADA LETTER O;Lo;0;L;;;;;N;;;;;
+0C93;KANNADA LETTER OO;Lo;0;L;;;;;N;;;;;
+0C94;KANNADA LETTER AU;Lo;0;L;;;;;N;;;;;
+0C95;KANNADA LETTER KA;Lo;0;L;;;;;N;;;;;
+0C96;KANNADA LETTER KHA;Lo;0;L;;;;;N;;;;;
+0C97;KANNADA LETTER GA;Lo;0;L;;;;;N;;;;;
+0C98;KANNADA LETTER GHA;Lo;0;L;;;;;N;;;;;
+0C99;KANNADA LETTER NGA;Lo;0;L;;;;;N;;;;;
+0C9A;KANNADA LETTER CA;Lo;0;L;;;;;N;;;;;
+0C9B;KANNADA LETTER CHA;Lo;0;L;;;;;N;;;;;
+0C9C;KANNADA LETTER JA;Lo;0;L;;;;;N;;;;;
+0C9D;KANNADA LETTER JHA;Lo;0;L;;;;;N;;;;;
+0C9E;KANNADA LETTER NYA;Lo;0;L;;;;;N;;;;;
+0C9F;KANNADA LETTER TTA;Lo;0;L;;;;;N;;;;;
+0CA0;KANNADA LETTER TTHA;Lo;0;L;;;;;N;;;;;
+0CA1;KANNADA LETTER DDA;Lo;0;L;;;;;N;;;;;
+0CA2;KANNADA LETTER DDHA;Lo;0;L;;;;;N;;;;;
+0CA3;KANNADA LETTER NNA;Lo;0;L;;;;;N;;;;;
+0CA4;KANNADA LETTER TA;Lo;0;L;;;;;N;;;;;
+0CA5;KANNADA LETTER THA;Lo;0;L;;;;;N;;;;;
+0CA6;KANNADA LETTER DA;Lo;0;L;;;;;N;;;;;
+0CA7;KANNADA LETTER DHA;Lo;0;L;;;;;N;;;;;
+0CA8;KANNADA LETTER NA;Lo;0;L;;;;;N;;;;;
+0CAA;KANNADA LETTER PA;Lo;0;L;;;;;N;;;;;
+0CAB;KANNADA LETTER PHA;Lo;0;L;;;;;N;;;;;
+0CAC;KANNADA LETTER BA;Lo;0;L;;;;;N;;;;;
+0CAD;KANNADA LETTER BHA;Lo;0;L;;;;;N;;;;;
+0CAE;KANNADA LETTER MA;Lo;0;L;;;;;N;;;;;
+0CAF;KANNADA LETTER YA;Lo;0;L;;;;;N;;;;;
+0CB0;KANNADA LETTER RA;Lo;0;L;;;;;N;;;;;
+0CB1;KANNADA LETTER RRA;Lo;0;L;;;;;N;;;;;
+0CB2;KANNADA LETTER LA;Lo;0;L;;;;;N;;;;;
+0CB3;KANNADA LETTER LLA;Lo;0;L;;;;;N;;;;;
+0CB5;KANNADA LETTER VA;Lo;0;L;;;;;N;;;;;
+0CB6;KANNADA LETTER SHA;Lo;0;L;;;;;N;;;;;
+0CB7;KANNADA LETTER SSA;Lo;0;L;;;;;N;;;;;
+0CB8;KANNADA LETTER SA;Lo;0;L;;;;;N;;;;;
+0CB9;KANNADA LETTER HA;Lo;0;L;;;;;N;;;;;
+0CBC;KANNADA SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;
+0CBD;KANNADA SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;;
+0CBE;KANNADA VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+0CBF;KANNADA VOWEL SIGN I;Mn;0;L;;;;;N;;;;;
+0CC0;KANNADA VOWEL SIGN II;Mc;0;L;0CBF 0CD5;;;;N;;;;;
+0CC1;KANNADA VOWEL SIGN U;Mc;0;L;;;;;N;;;;;
+0CC2;KANNADA VOWEL SIGN UU;Mc;0;L;;;;;N;;;;;
+0CC3;KANNADA VOWEL SIGN VOCALIC R;Mc;0;L;;;;;N;;;;;
+0CC4;KANNADA VOWEL SIGN VOCALIC RR;Mc;0;L;;;;;N;;;;;
+0CC6;KANNADA VOWEL SIGN E;Mn;0;L;;;;;N;;;;;
+0CC7;KANNADA VOWEL SIGN EE;Mc;0;L;0CC6 0CD5;;;;N;;;;;
+0CC8;KANNADA VOWEL SIGN AI;Mc;0;L;0CC6 0CD6;;;;N;;;;;
+0CCA;KANNADA VOWEL SIGN O;Mc;0;L;0CC6 0CC2;;;;N;;;;;
+0CCB;KANNADA VOWEL SIGN OO;Mc;0;L;0CCA 0CD5;;;;N;;;;;
+0CCC;KANNADA VOWEL SIGN AU;Mn;0;NSM;;;;;N;;;;;
+0CCD;KANNADA SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+0CD5;KANNADA LENGTH MARK;Mc;0;L;;;;;N;;;;;
+0CD6;KANNADA AI LENGTH MARK;Mc;0;L;;;;;N;;;;;
+0CDE;KANNADA LETTER FA;Lo;0;L;;;;;N;;;;;
+0CE0;KANNADA LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
+0CE1;KANNADA LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
+0CE2;KANNADA VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;;
+0CE3;KANNADA VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;;
+0CE6;KANNADA DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+0CE7;KANNADA DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+0CE8;KANNADA DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+0CE9;KANNADA DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+0CEA;KANNADA DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+0CEB;KANNADA DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+0CEC;KANNADA DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+0CED;KANNADA DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+0CEE;KANNADA DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+0CEF;KANNADA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+0CF1;KANNADA SIGN JIHVAMULIYA;So;0;ON;;;;;N;;;;;
+0CF2;KANNADA SIGN UPADHMANIYA;So;0;ON;;;;;N;;;;;
+0D02;MALAYALAM SIGN ANUSVARA;Mc;0;L;;;;;N;;;;;
+0D03;MALAYALAM SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+0D05;MALAYALAM LETTER A;Lo;0;L;;;;;N;;;;;
+0D06;MALAYALAM LETTER AA;Lo;0;L;;;;;N;;;;;
+0D07;MALAYALAM LETTER I;Lo;0;L;;;;;N;;;;;
+0D08;MALAYALAM LETTER II;Lo;0;L;;;;;N;;;;;
+0D09;MALAYALAM LETTER U;Lo;0;L;;;;;N;;;;;
+0D0A;MALAYALAM LETTER UU;Lo;0;L;;;;;N;;;;;
+0D0B;MALAYALAM LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
+0D0C;MALAYALAM LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
+0D0E;MALAYALAM LETTER E;Lo;0;L;;;;;N;;;;;
+0D0F;MALAYALAM LETTER EE;Lo;0;L;;;;;N;;;;;
+0D10;MALAYALAM LETTER AI;Lo;0;L;;;;;N;;;;;
+0D12;MALAYALAM LETTER O;Lo;0;L;;;;;N;;;;;
+0D13;MALAYALAM LETTER OO;Lo;0;L;;;;;N;;;;;
+0D14;MALAYALAM LETTER AU;Lo;0;L;;;;;N;;;;;
+0D15;MALAYALAM LETTER KA;Lo;0;L;;;;;N;;;;;
+0D16;MALAYALAM LETTER KHA;Lo;0;L;;;;;N;;;;;
+0D17;MALAYALAM LETTER GA;Lo;0;L;;;;;N;;;;;
+0D18;MALAYALAM LETTER GHA;Lo;0;L;;;;;N;;;;;
+0D19;MALAYALAM LETTER NGA;Lo;0;L;;;;;N;;;;;
+0D1A;MALAYALAM LETTER CA;Lo;0;L;;;;;N;;;;;
+0D1B;MALAYALAM LETTER CHA;Lo;0;L;;;;;N;;;;;
+0D1C;MALAYALAM LETTER JA;Lo;0;L;;;;;N;;;;;
+0D1D;MALAYALAM LETTER JHA;Lo;0;L;;;;;N;;;;;
+0D1E;MALAYALAM LETTER NYA;Lo;0;L;;;;;N;;;;;
+0D1F;MALAYALAM LETTER TTA;Lo;0;L;;;;;N;;;;;
+0D20;MALAYALAM LETTER TTHA;Lo;0;L;;;;;N;;;;;
+0D21;MALAYALAM LETTER DDA;Lo;0;L;;;;;N;;;;;
+0D22;MALAYALAM LETTER DDHA;Lo;0;L;;;;;N;;;;;
+0D23;MALAYALAM LETTER NNA;Lo;0;L;;;;;N;;;;;
+0D24;MALAYALAM LETTER TA;Lo;0;L;;;;;N;;;;;
+0D25;MALAYALAM LETTER THA;Lo;0;L;;;;;N;;;;;
+0D26;MALAYALAM LETTER DA;Lo;0;L;;;;;N;;;;;
+0D27;MALAYALAM LETTER DHA;Lo;0;L;;;;;N;;;;;
+0D28;MALAYALAM LETTER NA;Lo;0;L;;;;;N;;;;;
+0D2A;MALAYALAM LETTER PA;Lo;0;L;;;;;N;;;;;
+0D2B;MALAYALAM LETTER PHA;Lo;0;L;;;;;N;;;;;
+0D2C;MALAYALAM LETTER BA;Lo;0;L;;;;;N;;;;;
+0D2D;MALAYALAM LETTER BHA;Lo;0;L;;;;;N;;;;;
+0D2E;MALAYALAM LETTER MA;Lo;0;L;;;;;N;;;;;
+0D2F;MALAYALAM LETTER YA;Lo;0;L;;;;;N;;;;;
+0D30;MALAYALAM LETTER RA;Lo;0;L;;;;;N;;;;;
+0D31;MALAYALAM LETTER RRA;Lo;0;L;;;;;N;;;;;
+0D32;MALAYALAM LETTER LA;Lo;0;L;;;;;N;;;;;
+0D33;MALAYALAM LETTER LLA;Lo;0;L;;;;;N;;;;;
+0D34;MALAYALAM LETTER LLLA;Lo;0;L;;;;;N;;;;;
+0D35;MALAYALAM LETTER VA;Lo;0;L;;;;;N;;;;;
+0D36;MALAYALAM LETTER SHA;Lo;0;L;;;;;N;;;;;
+0D37;MALAYALAM LETTER SSA;Lo;0;L;;;;;N;;;;;
+0D38;MALAYALAM LETTER SA;Lo;0;L;;;;;N;;;;;
+0D39;MALAYALAM LETTER HA;Lo;0;L;;;;;N;;;;;
+0D3E;MALAYALAM VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+0D3F;MALAYALAM VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
+0D40;MALAYALAM VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
+0D41;MALAYALAM VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+0D42;MALAYALAM VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
+0D43;MALAYALAM VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;;
+0D46;MALAYALAM VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
+0D47;MALAYALAM VOWEL SIGN EE;Mc;0;L;;;;;N;;;;;
+0D48;MALAYALAM VOWEL SIGN AI;Mc;0;L;;;;;N;;;;;
+0D4A;MALAYALAM VOWEL SIGN O;Mc;0;L;0D46 0D3E;;;;N;;;;;
+0D4B;MALAYALAM VOWEL SIGN OO;Mc;0;L;0D47 0D3E;;;;N;;;;;
+0D4C;MALAYALAM VOWEL SIGN AU;Mc;0;L;0D46 0D57;;;;N;;;;;
+0D4D;MALAYALAM SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+0D57;MALAYALAM AU LENGTH MARK;Mc;0;L;;;;;N;;;;;
+0D60;MALAYALAM LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
+0D61;MALAYALAM LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
+0D66;MALAYALAM DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+0D67;MALAYALAM DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+0D68;MALAYALAM DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+0D69;MALAYALAM DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+0D6A;MALAYALAM DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+0D6B;MALAYALAM DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+0D6C;MALAYALAM DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+0D6D;MALAYALAM DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+0D6E;MALAYALAM DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+0D6F;MALAYALAM DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+0D82;SINHALA SIGN ANUSVARAYA;Mc;0;L;;;;;N;;;;;
+0D83;SINHALA SIGN VISARGAYA;Mc;0;L;;;;;N;;;;;
+0D85;SINHALA LETTER AYANNA;Lo;0;L;;;;;N;;;;;
+0D86;SINHALA LETTER AAYANNA;Lo;0;L;;;;;N;;;;;
+0D87;SINHALA LETTER AEYANNA;Lo;0;L;;;;;N;;;;;
+0D88;SINHALA LETTER AEEYANNA;Lo;0;L;;;;;N;;;;;
+0D89;SINHALA LETTER IYANNA;Lo;0;L;;;;;N;;;;;
+0D8A;SINHALA LETTER IIYANNA;Lo;0;L;;;;;N;;;;;
+0D8B;SINHALA LETTER UYANNA;Lo;0;L;;;;;N;;;;;
+0D8C;SINHALA LETTER UUYANNA;Lo;0;L;;;;;N;;;;;
+0D8D;SINHALA LETTER IRUYANNA;Lo;0;L;;;;;N;;;;;
+0D8E;SINHALA LETTER IRUUYANNA;Lo;0;L;;;;;N;;;;;
+0D8F;SINHALA LETTER ILUYANNA;Lo;0;L;;;;;N;;;;;
+0D90;SINHALA LETTER ILUUYANNA;Lo;0;L;;;;;N;;;;;
+0D91;SINHALA LETTER EYANNA;Lo;0;L;;;;;N;;;;;
+0D92;SINHALA LETTER EEYANNA;Lo;0;L;;;;;N;;;;;
+0D93;SINHALA LETTER AIYANNA;Lo;0;L;;;;;N;;;;;
+0D94;SINHALA LETTER OYANNA;Lo;0;L;;;;;N;;;;;
+0D95;SINHALA LETTER OOYANNA;Lo;0;L;;;;;N;;;;;
+0D96;SINHALA LETTER AUYANNA;Lo;0;L;;;;;N;;;;;
+0D9A;SINHALA LETTER ALPAPRAANA KAYANNA;Lo;0;L;;;;;N;;;;;
+0D9B;SINHALA LETTER MAHAAPRAANA KAYANNA;Lo;0;L;;;;;N;;;;;
+0D9C;SINHALA LETTER ALPAPRAANA GAYANNA;Lo;0;L;;;;;N;;;;;
+0D9D;SINHALA LETTER MAHAAPRAANA GAYANNA;Lo;0;L;;;;;N;;;;;
+0D9E;SINHALA LETTER KANTAJA NAASIKYAYA;Lo;0;L;;;;;N;;;;;
+0D9F;SINHALA LETTER SANYAKA GAYANNA;Lo;0;L;;;;;N;;;;;
+0DA0;SINHALA LETTER ALPAPRAANA CAYANNA;Lo;0;L;;;;;N;;;;;
+0DA1;SINHALA LETTER MAHAAPRAANA CAYANNA;Lo;0;L;;;;;N;;;;;
+0DA2;SINHALA LETTER ALPAPRAANA JAYANNA;Lo;0;L;;;;;N;;;;;
+0DA3;SINHALA LETTER MAHAAPRAANA JAYANNA;Lo;0;L;;;;;N;;;;;
+0DA4;SINHALA LETTER TAALUJA NAASIKYAYA;Lo;0;L;;;;;N;;;;;
+0DA5;SINHALA LETTER TAALUJA SANYOOGA NAAKSIKYAYA;Lo;0;L;;;;;N;;;;;
+0DA6;SINHALA LETTER SANYAKA JAYANNA;Lo;0;L;;;;;N;;;;;
+0DA7;SINHALA LETTER ALPAPRAANA TTAYANNA;Lo;0;L;;;;;N;;;;;
+0DA8;SINHALA LETTER MAHAAPRAANA TTAYANNA;Lo;0;L;;;;;N;;;;;
+0DA9;SINHALA LETTER ALPAPRAANA DDAYANNA;Lo;0;L;;;;;N;;;;;
+0DAA;SINHALA LETTER MAHAAPRAANA DDAYANNA;Lo;0;L;;;;;N;;;;;
+0DAB;SINHALA LETTER MUURDHAJA NAYANNA;Lo;0;L;;;;;N;;;;;
+0DAC;SINHALA LETTER SANYAKA DDAYANNA;Lo;0;L;;;;;N;;;;;
+0DAD;SINHALA LETTER ALPAPRAANA TAYANNA;Lo;0;L;;;;;N;;;;;
+0DAE;SINHALA LETTER MAHAAPRAANA TAYANNA;Lo;0;L;;;;;N;;;;;
+0DAF;SINHALA LETTER ALPAPRAANA DAYANNA;Lo;0;L;;;;;N;;;;;
+0DB0;SINHALA LETTER MAHAAPRAANA DAYANNA;Lo;0;L;;;;;N;;;;;
+0DB1;SINHALA LETTER DANTAJA NAYANNA;Lo;0;L;;;;;N;;;;;
+0DB3;SINHALA LETTER SANYAKA DAYANNA;Lo;0;L;;;;;N;;;;;
+0DB4;SINHALA LETTER ALPAPRAANA PAYANNA;Lo;0;L;;;;;N;;;;;
+0DB5;SINHALA LETTER MAHAAPRAANA PAYANNA;Lo;0;L;;;;;N;;;;;
+0DB6;SINHALA LETTER ALPAPRAANA BAYANNA;Lo;0;L;;;;;N;;;;;
+0DB7;SINHALA LETTER MAHAAPRAANA BAYANNA;Lo;0;L;;;;;N;;;;;
+0DB8;SINHALA LETTER MAYANNA;Lo;0;L;;;;;N;;;;;
+0DB9;SINHALA LETTER AMBA BAYANNA;Lo;0;L;;;;;N;;;;;
+0DBA;SINHALA LETTER YAYANNA;Lo;0;L;;;;;N;;;;;
+0DBB;SINHALA LETTER RAYANNA;Lo;0;L;;;;;N;;;;;
+0DBD;SINHALA LETTER DANTAJA LAYANNA;Lo;0;L;;;;;N;;;;;
+0DC0;SINHALA LETTER VAYANNA;Lo;0;L;;;;;N;;;;;
+0DC1;SINHALA LETTER TAALUJA SAYANNA;Lo;0;L;;;;;N;;;;;
+0DC2;SINHALA LETTER MUURDHAJA SAYANNA;Lo;0;L;;;;;N;;;;;
+0DC3;SINHALA LETTER DANTAJA SAYANNA;Lo;0;L;;;;;N;;;;;
+0DC4;SINHALA LETTER HAYANNA;Lo;0;L;;;;;N;;;;;
+0DC5;SINHALA LETTER MUURDHAJA LAYANNA;Lo;0;L;;;;;N;;;;;
+0DC6;SINHALA LETTER FAYANNA;Lo;0;L;;;;;N;;;;;
+0DCA;SINHALA SIGN AL-LAKUNA;Mn;9;NSM;;;;;N;;;;;
+0DCF;SINHALA VOWEL SIGN AELA-PILLA;Mc;0;L;;;;;N;;;;;
+0DD0;SINHALA VOWEL SIGN KETTI AEDA-PILLA;Mc;0;L;;;;;N;;;;;
+0DD1;SINHALA VOWEL SIGN DIGA AEDA-PILLA;Mc;0;L;;;;;N;;;;;
+0DD2;SINHALA VOWEL SIGN KETTI IS-PILLA;Mn;0;NSM;;;;;N;;;;;
+0DD3;SINHALA VOWEL SIGN DIGA IS-PILLA;Mn;0;NSM;;;;;N;;;;;
+0DD4;SINHALA VOWEL SIGN KETTI PAA-PILLA;Mn;0;NSM;;;;;N;;;;;
+0DD6;SINHALA VOWEL SIGN DIGA PAA-PILLA;Mn;0;NSM;;;;;N;;;;;
+0DD8;SINHALA VOWEL SIGN GAETTA-PILLA;Mc;0;L;;;;;N;;;;;
+0DD9;SINHALA VOWEL SIGN KOMBUVA;Mc;0;L;;;;;N;;;;;
+0DDA;SINHALA VOWEL SIGN DIGA KOMBUVA;Mc;0;L;0DD9 0DCA;;;;N;;;;;
+0DDB;SINHALA VOWEL SIGN KOMBU DEKA;Mc;0;L;;;;;N;;;;;
+0DDC;SINHALA VOWEL SIGN KOMBUVA HAA AELA-PILLA;Mc;0;L;0DD9 0DCF;;;;N;;;;;
+0DDD;SINHALA VOWEL SIGN KOMBUVA HAA DIGA AELA-PILLA;Mc;0;L;0DDC 0DCA;;;;N;;;;;
+0DDE;SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA;Mc;0;L;0DD9 0DDF;;;;N;;;;;
+0DDF;SINHALA VOWEL SIGN GAYANUKITTA;Mc;0;L;;;;;N;;;;;
+0DF2;SINHALA VOWEL SIGN DIGA GAETTA-PILLA;Mc;0;L;;;;;N;;;;;
+0DF3;SINHALA VOWEL SIGN DIGA GAYANUKITTA;Mc;0;L;;;;;N;;;;;
+0DF4;SINHALA PUNCTUATION KUNDDALIYA;Po;0;L;;;;;N;;;;;
+0E01;THAI CHARACTER KO KAI;Lo;0;L;;;;;N;THAI LETTER KO KAI;;;;
+0E02;THAI CHARACTER KHO KHAI;Lo;0;L;;;;;N;THAI LETTER KHO KHAI;;;;
+0E03;THAI CHARACTER KHO KHUAT;Lo;0;L;;;;;N;THAI LETTER KHO KHUAT;;;;
+0E04;THAI CHARACTER KHO KHWAI;Lo;0;L;;;;;N;THAI LETTER KHO KHWAI;;;;
+0E05;THAI CHARACTER KHO KHON;Lo;0;L;;;;;N;THAI LETTER KHO KHON;;;;
+0E06;THAI CHARACTER KHO RAKHANG;Lo;0;L;;;;;N;THAI LETTER KHO RAKHANG;;;;
+0E07;THAI CHARACTER NGO NGU;Lo;0;L;;;;;N;THAI LETTER NGO NGU;;;;
+0E08;THAI CHARACTER CHO CHAN;Lo;0;L;;;;;N;THAI LETTER CHO CHAN;;;;
+0E09;THAI CHARACTER CHO CHING;Lo;0;L;;;;;N;THAI LETTER CHO CHING;;;;
+0E0A;THAI CHARACTER CHO CHANG;Lo;0;L;;;;;N;THAI LETTER CHO CHANG;;;;
+0E0B;THAI CHARACTER SO SO;Lo;0;L;;;;;N;THAI LETTER SO SO;;;;
+0E0C;THAI CHARACTER CHO CHOE;Lo;0;L;;;;;N;THAI LETTER CHO CHOE;;;;
+0E0D;THAI CHARACTER YO YING;Lo;0;L;;;;;N;THAI LETTER YO YING;;;;
+0E0E;THAI CHARACTER DO CHADA;Lo;0;L;;;;;N;THAI LETTER DO CHADA;;;;
+0E0F;THAI CHARACTER TO PATAK;Lo;0;L;;;;;N;THAI LETTER TO PATAK;;;;
+0E10;THAI CHARACTER THO THAN;Lo;0;L;;;;;N;THAI LETTER THO THAN;;;;
+0E11;THAI CHARACTER THO NANGMONTHO;Lo;0;L;;;;;N;THAI LETTER THO NANGMONTHO;;;;
+0E12;THAI CHARACTER THO PHUTHAO;Lo;0;L;;;;;N;THAI LETTER THO PHUTHAO;;;;
+0E13;THAI CHARACTER NO NEN;Lo;0;L;;;;;N;THAI LETTER NO NEN;;;;
+0E14;THAI CHARACTER DO DEK;Lo;0;L;;;;;N;THAI LETTER DO DEK;;;;
+0E15;THAI CHARACTER TO TAO;Lo;0;L;;;;;N;THAI LETTER TO TAO;;;;
+0E16;THAI CHARACTER THO THUNG;Lo;0;L;;;;;N;THAI LETTER THO THUNG;;;;
+0E17;THAI CHARACTER THO THAHAN;Lo;0;L;;;;;N;THAI LETTER THO THAHAN;;;;
+0E18;THAI CHARACTER THO THONG;Lo;0;L;;;;;N;THAI LETTER THO THONG;;;;
+0E19;THAI CHARACTER NO NU;Lo;0;L;;;;;N;THAI LETTER NO NU;;;;
+0E1A;THAI CHARACTER BO BAIMAI;Lo;0;L;;;;;N;THAI LETTER BO BAIMAI;;;;
+0E1B;THAI CHARACTER PO PLA;Lo;0;L;;;;;N;THAI LETTER PO PLA;;;;
+0E1C;THAI CHARACTER PHO PHUNG;Lo;0;L;;;;;N;THAI LETTER PHO PHUNG;;;;
+0E1D;THAI CHARACTER FO FA;Lo;0;L;;;;;N;THAI LETTER FO FA;;;;
+0E1E;THAI CHARACTER PHO PHAN;Lo;0;L;;;;;N;THAI LETTER PHO PHAN;;;;
+0E1F;THAI CHARACTER FO FAN;Lo;0;L;;;;;N;THAI LETTER FO FAN;;;;
+0E20;THAI CHARACTER PHO SAMPHAO;Lo;0;L;;;;;N;THAI LETTER PHO SAMPHAO;;;;
+0E21;THAI CHARACTER MO MA;Lo;0;L;;;;;N;THAI LETTER MO MA;;;;
+0E22;THAI CHARACTER YO YAK;Lo;0;L;;;;;N;THAI LETTER YO YAK;;;;
+0E23;THAI CHARACTER RO RUA;Lo;0;L;;;;;N;THAI LETTER RO RUA;;;;
+0E24;THAI CHARACTER RU;Lo;0;L;;;;;N;THAI LETTER RU;;;;
+0E25;THAI CHARACTER LO LING;Lo;0;L;;;;;N;THAI LETTER LO LING;;;;
+0E26;THAI CHARACTER LU;Lo;0;L;;;;;N;THAI LETTER LU;;;;
+0E27;THAI CHARACTER WO WAEN;Lo;0;L;;;;;N;THAI LETTER WO WAEN;;;;
+0E28;THAI CHARACTER SO SALA;Lo;0;L;;;;;N;THAI LETTER SO SALA;;;;
+0E29;THAI CHARACTER SO RUSI;Lo;0;L;;;;;N;THAI LETTER SO RUSI;;;;
+0E2A;THAI CHARACTER SO SUA;Lo;0;L;;;;;N;THAI LETTER SO SUA;;;;
+0E2B;THAI CHARACTER HO HIP;Lo;0;L;;;;;N;THAI LETTER HO HIP;;;;
+0E2C;THAI CHARACTER LO CHULA;Lo;0;L;;;;;N;THAI LETTER LO CHULA;;;;
+0E2D;THAI CHARACTER O ANG;Lo;0;L;;;;;N;THAI LETTER O ANG;;;;
+0E2E;THAI CHARACTER HO NOKHUK;Lo;0;L;;;;;N;THAI LETTER HO NOK HUK;;;;
+0E2F;THAI CHARACTER PAIYANNOI;Lo;0;L;;;;;N;THAI PAI YAN NOI;paiyan noi;;;
+0E30;THAI CHARACTER SARA A;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA A;;;;
+0E31;THAI CHARACTER MAI HAN-AKAT;Mn;0;NSM;;;;;N;THAI VOWEL SIGN MAI HAN-AKAT;;;;
+0E32;THAI CHARACTER SARA AA;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA AA;;;;
+0E33;THAI CHARACTER SARA AM;Lo;0;L;<compat> 0E4D 0E32;;;;N;THAI VOWEL SIGN SARA AM;;;;
+0E34;THAI CHARACTER SARA I;Mn;0;NSM;;;;;N;THAI VOWEL SIGN SARA I;;;;
+0E35;THAI CHARACTER SARA II;Mn;0;NSM;;;;;N;THAI VOWEL SIGN SARA II;;;;
+0E36;THAI CHARACTER SARA UE;Mn;0;NSM;;;;;N;THAI VOWEL SIGN SARA UE;;;;
+0E37;THAI CHARACTER SARA UEE;Mn;0;NSM;;;;;N;THAI VOWEL SIGN SARA UEE;sara uue;;;
+0E38;THAI CHARACTER SARA U;Mn;103;NSM;;;;;N;THAI VOWEL SIGN SARA U;;;;
+0E39;THAI CHARACTER SARA UU;Mn;103;NSM;;;;;N;THAI VOWEL SIGN SARA UU;;;;
+0E3A;THAI CHARACTER PHINTHU;Mn;9;NSM;;;;;N;THAI VOWEL SIGN PHINTHU;;;;
+0E3F;THAI CURRENCY SYMBOL BAHT;Sc;0;ET;;;;;N;THAI BAHT SIGN;;;;
+0E40;THAI CHARACTER SARA E;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA E;;;;
+0E41;THAI CHARACTER SARA AE;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA AE;;;;
+0E42;THAI CHARACTER SARA O;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA O;;;;
+0E43;THAI CHARACTER SARA AI MAIMUAN;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA MAI MUAN;sara ai mai muan;;;
+0E44;THAI CHARACTER SARA AI MAIMALAI;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA MAI MALAI;sara ai mai malai;;;
+0E45;THAI CHARACTER LAKKHANGYAO;Lo;0;L;;;;;N;THAI LAK KHANG YAO;lakkhang yao;;;
+0E46;THAI CHARACTER MAIYAMOK;Lm;0;L;;;;;N;THAI MAI YAMOK;mai yamok;;;
+0E47;THAI CHARACTER MAITAIKHU;Mn;0;NSM;;;;;N;THAI VOWEL SIGN MAI TAI KHU;mai taikhu;;;
+0E48;THAI CHARACTER MAI EK;Mn;107;NSM;;;;;N;THAI TONE MAI EK;;;;
+0E49;THAI CHARACTER MAI THO;Mn;107;NSM;;;;;N;THAI TONE MAI THO;;;;
+0E4A;THAI CHARACTER MAI TRI;Mn;107;NSM;;;;;N;THAI TONE MAI TRI;;;;
+0E4B;THAI CHARACTER MAI CHATTAWA;Mn;107;NSM;;;;;N;THAI TONE MAI CHATTAWA;;;;
+0E4C;THAI CHARACTER THANTHAKHAT;Mn;0;NSM;;;;;N;THAI THANTHAKHAT;;;;
+0E4D;THAI CHARACTER NIKHAHIT;Mn;0;NSM;;;;;N;THAI NIKKHAHIT;nikkhahit;;;
+0E4E;THAI CHARACTER YAMAKKAN;Mn;0;NSM;;;;;N;THAI YAMAKKAN;;;;
+0E4F;THAI CHARACTER FONGMAN;Po;0;L;;;;;N;THAI FONGMAN;;;;
+0E50;THAI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+0E51;THAI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+0E52;THAI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+0E53;THAI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+0E54;THAI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+0E55;THAI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+0E56;THAI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+0E57;THAI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+0E58;THAI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+0E59;THAI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+0E5A;THAI CHARACTER ANGKHANKHU;Po;0;L;;;;;N;THAI ANGKHANKHU;;;;
+0E5B;THAI CHARACTER KHOMUT;Po;0;L;;;;;N;THAI KHOMUT;;;;
+0E81;LAO LETTER KO;Lo;0;L;;;;;N;;;;;
+0E82;LAO LETTER KHO SUNG;Lo;0;L;;;;;N;;;;;
+0E84;LAO LETTER KHO TAM;Lo;0;L;;;;;N;;;;;
+0E87;LAO LETTER NGO;Lo;0;L;;;;;N;;;;;
+0E88;LAO LETTER CO;Lo;0;L;;;;;N;;;;;
+0E8A;LAO LETTER SO TAM;Lo;0;L;;;;;N;;;;;
+0E8D;LAO LETTER NYO;Lo;0;L;;;;;N;;;;;
+0E94;LAO LETTER DO;Lo;0;L;;;;;N;;;;;
+0E95;LAO LETTER TO;Lo;0;L;;;;;N;;;;;
+0E96;LAO LETTER THO SUNG;Lo;0;L;;;;;N;;;;;
+0E97;LAO LETTER THO TAM;Lo;0;L;;;;;N;;;;;
+0E99;LAO LETTER NO;Lo;0;L;;;;;N;;;;;
+0E9A;LAO LETTER BO;Lo;0;L;;;;;N;;;;;
+0E9B;LAO LETTER PO;Lo;0;L;;;;;N;;;;;
+0E9C;LAO LETTER PHO SUNG;Lo;0;L;;;;;N;;;;;
+0E9D;LAO LETTER FO TAM;Lo;0;L;;;;;N;;;;;
+0E9E;LAO LETTER PHO TAM;Lo;0;L;;;;;N;;;;;
+0E9F;LAO LETTER FO SUNG;Lo;0;L;;;;;N;;;;;
+0EA1;LAO LETTER MO;Lo;0;L;;;;;N;;;;;
+0EA2;LAO LETTER YO;Lo;0;L;;;;;N;;;;;
+0EA3;LAO LETTER LO LING;Lo;0;L;;;;;N;;;;;
+0EA5;LAO LETTER LO LOOT;Lo;0;L;;;;;N;;;;;
+0EA7;LAO LETTER WO;Lo;0;L;;;;;N;;;;;
+0EAA;LAO LETTER SO SUNG;Lo;0;L;;;;;N;;;;;
+0EAB;LAO LETTER HO SUNG;Lo;0;L;;;;;N;;;;;
+0EAD;LAO LETTER O;Lo;0;L;;;;;N;;;;;
+0EAE;LAO LETTER HO TAM;Lo;0;L;;;;;N;;;;;
+0EAF;LAO ELLIPSIS;Lo;0;L;;;;;N;;;;;
+0EB0;LAO VOWEL SIGN A;Lo;0;L;;;;;N;;;;;
+0EB1;LAO VOWEL SIGN MAI KAN;Mn;0;NSM;;;;;N;;;;;
+0EB2;LAO VOWEL SIGN AA;Lo;0;L;;;;;N;;;;;
+0EB3;LAO VOWEL SIGN AM;Lo;0;L;<compat> 0ECD 0EB2;;;;N;;;;;
+0EB4;LAO VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
+0EB5;LAO VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;;
+0EB6;LAO VOWEL SIGN Y;Mn;0;NSM;;;;;N;;;;;
+0EB7;LAO VOWEL SIGN YY;Mn;0;NSM;;;;;N;;;;;
+0EB8;LAO VOWEL SIGN U;Mn;118;NSM;;;;;N;;;;;
+0EB9;LAO VOWEL SIGN UU;Mn;118;NSM;;;;;N;;;;;
+0EBB;LAO VOWEL SIGN MAI KON;Mn;0;NSM;;;;;N;;;;;
+0EBC;LAO SEMIVOWEL SIGN LO;Mn;0;NSM;;;;;N;;;;;
+0EBD;LAO SEMIVOWEL SIGN NYO;Lo;0;L;;;;;N;;;;;
+0EC0;LAO VOWEL SIGN E;Lo;0;L;;;;;N;;;;;
+0EC1;LAO VOWEL SIGN EI;Lo;0;L;;;;;N;;;;;
+0EC2;LAO VOWEL SIGN O;Lo;0;L;;;;;N;;;;;
+0EC3;LAO VOWEL SIGN AY;Lo;0;L;;;;;N;;;;;
+0EC4;LAO VOWEL SIGN AI;Lo;0;L;;;;;N;;;;;
+0EC6;LAO KO LA;Lm;0;L;;;;;N;;;;;
+0EC8;LAO TONE MAI EK;Mn;122;NSM;;;;;N;;;;;
+0EC9;LAO TONE MAI THO;Mn;122;NSM;;;;;N;;;;;
+0ECA;LAO TONE MAI TI;Mn;122;NSM;;;;;N;;;;;
+0ECB;LAO TONE MAI CATAWA;Mn;122;NSM;;;;;N;;;;;
+0ECC;LAO CANCELLATION MARK;Mn;0;NSM;;;;;N;;;;;
+0ECD;LAO NIGGAHITA;Mn;0;NSM;;;;;N;;;;;
+0ED0;LAO DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+0ED1;LAO DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+0ED2;LAO DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+0ED3;LAO DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+0ED4;LAO DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+0ED5;LAO DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+0ED6;LAO DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+0ED7;LAO DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+0ED8;LAO DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+0ED9;LAO DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+0EDC;LAO HO NO;Lo;0;L;<compat> 0EAB 0E99;;;;N;;;;;
+0EDD;LAO HO MO;Lo;0;L;<compat> 0EAB 0EA1;;;;N;;;;;
+0F00;TIBETAN SYLLABLE OM;Lo;0;L;;;;;N;;;;;
+0F01;TIBETAN MARK GTER YIG MGO TRUNCATED A;So;0;L;;;;;N;;ter yik go a thung;;;
+0F02;TIBETAN MARK GTER YIG MGO -UM RNAM BCAD MA;So;0;L;;;;;N;;ter yik go wum nam chey ma;;;
+0F03;TIBETAN MARK GTER YIG MGO -UM GTER TSHEG MA;So;0;L;;;;;N;;ter yik go wum ter tsek ma;;;
+0F04;TIBETAN MARK INITIAL YIG MGO MDUN MA;Po;0;L;;;;;N;TIBETAN SINGLE ORNAMENT;yik go dun ma;;;
+0F05;TIBETAN MARK CLOSING YIG MGO SGAB MA;Po;0;L;;;;;N;;yik go kab ma;;;
+0F06;TIBETAN MARK CARET YIG MGO PHUR SHAD MA;Po;0;L;;;;;N;;yik go pur shey ma;;;
+0F07;TIBETAN MARK YIG MGO TSHEG SHAD MA;Po;0;L;;;;;N;;yik go tsek shey ma;;;
+0F08;TIBETAN MARK SBRUL SHAD;Po;0;L;;;;;N;TIBETAN RGYANSHAD;drul shey;;;
+0F09;TIBETAN MARK BSKUR YIG MGO;Po;0;L;;;;;N;;kur yik go;;;
+0F0A;TIBETAN MARK BKA- SHOG YIG MGO;Po;0;L;;;;;N;;ka sho yik go;;;
+0F0B;TIBETAN MARK INTERSYLLABIC TSHEG;Po;0;L;;;;;N;TIBETAN TSEG;tsek;;;
+0F0C;TIBETAN MARK DELIMITER TSHEG BSTAR;Po;0;L;<noBreak> 0F0B;;;;N;;tsek tar;;;
+0F0D;TIBETAN MARK SHAD;Po;0;L;;;;;N;TIBETAN SHAD;shey;;;
+0F0E;TIBETAN MARK NYIS SHAD;Po;0;L;;;;;N;TIBETAN DOUBLE SHAD;nyi shey;;;
+0F0F;TIBETAN MARK TSHEG SHAD;Po;0;L;;;;;N;;tsek shey;;;
+0F10;TIBETAN MARK NYIS TSHEG SHAD;Po;0;L;;;;;N;;nyi tsek shey;;;
+0F11;TIBETAN MARK RIN CHEN SPUNGS SHAD;Po;0;L;;;;;N;TIBETAN RINCHANPHUNGSHAD;rinchen pung shey;;;
+0F12;TIBETAN MARK RGYA GRAM SHAD;Po;0;L;;;;;N;;gya tram shey;;;
+0F13;TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN;So;0;L;;;;;N;;dzu ta me long chen;;;
+0F14;TIBETAN MARK GTER TSHEG;So;0;L;;;;;N;TIBETAN COMMA;ter tsek;;;
+0F15;TIBETAN LOGOTYPE SIGN CHAD RTAGS;So;0;L;;;;;N;;che ta;;;
+0F16;TIBETAN LOGOTYPE SIGN LHAG RTAGS;So;0;L;;;;;N;;hlak ta;;;
+0F17;TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS;So;0;L;;;;;N;;trachen char ta;;;
+0F18;TIBETAN ASTROLOGICAL SIGN -KHYUD PA;Mn;220;NSM;;;;;N;;kyu pa;;;
+0F19;TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS;Mn;220;NSM;;;;;N;;dong tsu;;;
+0F1A;TIBETAN SIGN RDEL DKAR GCIG;So;0;L;;;;;N;;deka chig;;;
+0F1B;TIBETAN SIGN RDEL DKAR GNYIS;So;0;L;;;;;N;;deka nyi;;;
+0F1C;TIBETAN SIGN RDEL DKAR GSUM;So;0;L;;;;;N;;deka sum;;;
+0F1D;TIBETAN SIGN RDEL NAG GCIG;So;0;L;;;;;N;;dena chig;;;
+0F1E;TIBETAN SIGN RDEL NAG GNYIS;So;0;L;;;;;N;;dena nyi;;;
+0F1F;TIBETAN SIGN RDEL DKAR RDEL NAG;So;0;L;;;;;N;;deka dena;;;
+0F20;TIBETAN DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+0F21;TIBETAN DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+0F22;TIBETAN DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+0F23;TIBETAN DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+0F24;TIBETAN DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+0F25;TIBETAN DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+0F26;TIBETAN DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+0F27;TIBETAN DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+0F28;TIBETAN DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+0F29;TIBETAN DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+0F2A;TIBETAN DIGIT HALF ONE;No;0;L;;;;;N;;;;;
+0F2B;TIBETAN DIGIT HALF TWO;No;0;L;;;;;N;;;;;
+0F2C;TIBETAN DIGIT HALF THREE;No;0;L;;;;;N;;;;;
+0F2D;TIBETAN DIGIT HALF FOUR;No;0;L;;;;;N;;;;;
+0F2E;TIBETAN DIGIT HALF FIVE;No;0;L;;;;;N;;;;;
+0F2F;TIBETAN DIGIT HALF SIX;No;0;L;;;;;N;;;;;
+0F30;TIBETAN DIGIT HALF SEVEN;No;0;L;;;;;N;;;;;
+0F31;TIBETAN DIGIT HALF EIGHT;No;0;L;;;;;N;;;;;
+0F32;TIBETAN DIGIT HALF NINE;No;0;L;;;;;N;;;;;
+0F33;TIBETAN DIGIT HALF ZERO;No;0;L;;;;;N;;;;;
+0F34;TIBETAN MARK BSDUS RTAGS;So;0;L;;;;;N;;du ta;;;
+0F35;TIBETAN MARK NGAS BZUNG NYI ZLA;Mn;220;NSM;;;;;N;TIBETAN HONORIFIC UNDER RING;nge zung nyi da;;;
+0F36;TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN;So;0;L;;;;;N;;dzu ta shi mig chen;;;
+0F37;TIBETAN MARK NGAS BZUNG SGOR RTAGS;Mn;220;NSM;;;;;N;TIBETAN UNDER RING;nge zung gor ta;;;
+0F38;TIBETAN MARK CHE MGO;So;0;L;;;;;N;;che go;;;
+0F39;TIBETAN MARK TSA -PHRU;Mn;216;NSM;;;;;N;TIBETAN LENITION MARK;tsa tru;;;
+0F3A;TIBETAN MARK GUG RTAGS GYON;Ps;0;ON;;;;;N;;gug ta yun;;;
+0F3B;TIBETAN MARK GUG RTAGS GYAS;Pe;0;ON;;;;;N;;gug ta ye;;;
+0F3C;TIBETAN MARK ANG KHANG GYON;Ps;0;ON;;;;;N;TIBETAN LEFT BRACE;ang kang yun;;;
+0F3D;TIBETAN MARK ANG KHANG GYAS;Pe;0;ON;;;;;N;TIBETAN RIGHT BRACE;ang kang ye;;;
+0F3E;TIBETAN SIGN YAR TSHES;Mc;0;L;;;;;N;;yar tse;;;
+0F3F;TIBETAN SIGN MAR TSHES;Mc;0;L;;;;;N;;mar tse;;;
+0F40;TIBETAN LETTER KA;Lo;0;L;;;;;N;;;;;
+0F41;TIBETAN LETTER KHA;Lo;0;L;;;;;N;;;;;
+0F42;TIBETAN LETTER GA;Lo;0;L;;;;;N;;;;;
+0F43;TIBETAN LETTER GHA;Lo;0;L;0F42 0FB7;;;;N;;;;;
+0F44;TIBETAN LETTER NGA;Lo;0;L;;;;;N;;;;;
+0F45;TIBETAN LETTER CA;Lo;0;L;;;;;N;;;;;
+0F46;TIBETAN LETTER CHA;Lo;0;L;;;;;N;;;;;
+0F47;TIBETAN LETTER JA;Lo;0;L;;;;;N;;;;;
+0F49;TIBETAN LETTER NYA;Lo;0;L;;;;;N;;;;;
+0F4A;TIBETAN LETTER TTA;Lo;0;L;;;;;N;TIBETAN LETTER REVERSED TA;;;;
+0F4B;TIBETAN LETTER TTHA;Lo;0;L;;;;;N;TIBETAN LETTER REVERSED THA;;;;
+0F4C;TIBETAN LETTER DDA;Lo;0;L;;;;;N;TIBETAN LETTER REVERSED DA;;;;
+0F4D;TIBETAN LETTER DDHA;Lo;0;L;0F4C 0FB7;;;;N;;;;;
+0F4E;TIBETAN LETTER NNA;Lo;0;L;;;;;N;TIBETAN LETTER REVERSED NA;;;;
+0F4F;TIBETAN LETTER TA;Lo;0;L;;;;;N;;;;;
+0F50;TIBETAN LETTER THA;Lo;0;L;;;;;N;;;;;
+0F51;TIBETAN LETTER DA;Lo;0;L;;;;;N;;;;;
+0F52;TIBETAN LETTER DHA;Lo;0;L;0F51 0FB7;;;;N;;;;;
+0F53;TIBETAN LETTER NA;Lo;0;L;;;;;N;;;;;
+0F54;TIBETAN LETTER PA;Lo;0;L;;;;;N;;;;;
+0F55;TIBETAN LETTER PHA;Lo;0;L;;;;;N;;;;;
+0F56;TIBETAN LETTER BA;Lo;0;L;;;;;N;;;;;
+0F57;TIBETAN LETTER BHA;Lo;0;L;0F56 0FB7;;;;N;;;;;
+0F58;TIBETAN LETTER MA;Lo;0;L;;;;;N;;;;;
+0F59;TIBETAN LETTER TSA;Lo;0;L;;;;;N;;;;;
+0F5A;TIBETAN LETTER TSHA;Lo;0;L;;;;;N;;;;;
+0F5B;TIBETAN LETTER DZA;Lo;0;L;;;;;N;;;;;
+0F5C;TIBETAN LETTER DZHA;Lo;0;L;0F5B 0FB7;;;;N;;;;;
+0F5D;TIBETAN LETTER WA;Lo;0;L;;;;;N;;;;;
+0F5E;TIBETAN LETTER ZHA;Lo;0;L;;;;;N;;;;;
+0F5F;TIBETAN LETTER ZA;Lo;0;L;;;;;N;;;;;
+0F60;TIBETAN LETTER -A;Lo;0;L;;;;;N;TIBETAN LETTER AA;;;;
+0F61;TIBETAN LETTER YA;Lo;0;L;;;;;N;;;;;
+0F62;TIBETAN LETTER RA;Lo;0;L;;;;;N;;*;;;
+0F63;TIBETAN LETTER LA;Lo;0;L;;;;;N;;;;;
+0F64;TIBETAN LETTER SHA;Lo;0;L;;;;;N;;;;;
+0F65;TIBETAN LETTER SSA;Lo;0;L;;;;;N;TIBETAN LETTER REVERSED SHA;;;;
+0F66;TIBETAN LETTER SA;Lo;0;L;;;;;N;;;;;
+0F67;TIBETAN LETTER HA;Lo;0;L;;;;;N;;;;;
+0F68;TIBETAN LETTER A;Lo;0;L;;;;;N;;;;;
+0F69;TIBETAN LETTER KSSA;Lo;0;L;0F40 0FB5;;;;N;;;;;
+0F6A;TIBETAN LETTER FIXED-FORM RA;Lo;0;L;;;;;N;;*;;;
+0F71;TIBETAN VOWEL SIGN AA;Mn;129;NSM;;;;;N;;;;;
+0F72;TIBETAN VOWEL SIGN I;Mn;130;NSM;;;;;N;;;;;
+0F73;TIBETAN VOWEL SIGN II;Mn;0;NSM;0F71 0F72;;;;N;;;;;
+0F74;TIBETAN VOWEL SIGN U;Mn;132;NSM;;;;;N;;;;;
+0F75;TIBETAN VOWEL SIGN UU;Mn;0;NSM;0F71 0F74;;;;N;;;;;
+0F76;TIBETAN VOWEL SIGN VOCALIC R;Mn;0;NSM;0FB2 0F80;;;;N;;;;;
+0F77;TIBETAN VOWEL SIGN VOCALIC RR;Mn;0;NSM;<compat> 0FB2 0F81;;;;N;;;;;
+0F78;TIBETAN VOWEL SIGN VOCALIC L;Mn;0;NSM;0FB3 0F80;;;;N;;;;;
+0F79;TIBETAN VOWEL SIGN VOCALIC LL;Mn;0;NSM;<compat> 0FB3 0F81;;;;N;;;;;
+0F7A;TIBETAN VOWEL SIGN E;Mn;130;NSM;;;;;N;;;;;
+0F7B;TIBETAN VOWEL SIGN EE;Mn;130;NSM;;;;;N;TIBETAN VOWEL SIGN AI;;;;
+0F7C;TIBETAN VOWEL SIGN O;Mn;130;NSM;;;;;N;;;;;
+0F7D;TIBETAN VOWEL SIGN OO;Mn;130;NSM;;;;;N;TIBETAN VOWEL SIGN AU;;;;
+0F7E;TIBETAN SIGN RJES SU NGA RO;Mn;0;NSM;;;;;N;TIBETAN ANUSVARA;je su nga ro;;;
+0F7F;TIBETAN SIGN RNAM BCAD;Mc;0;L;;;;;N;TIBETAN VISARGA;nam chey;;;
+0F80;TIBETAN VOWEL SIGN REVERSED I;Mn;130;NSM;;;;;N;TIBETAN VOWEL SIGN SHORT I;;;;
+0F81;TIBETAN VOWEL SIGN REVERSED II;Mn;0;NSM;0F71 0F80;;;;N;;;;;
+0F82;TIBETAN SIGN NYI ZLA NAA DA;Mn;230;NSM;;;;;N;TIBETAN CANDRABINDU WITH ORNAMENT;nyi da na da;;;
+0F83;TIBETAN SIGN SNA LDAN;Mn;230;NSM;;;;;N;TIBETAN CANDRABINDU;nan de;;;
+0F84;TIBETAN MARK HALANTA;Mn;9;NSM;;;;;N;TIBETAN VIRAMA;;;;
+0F85;TIBETAN MARK PALUTA;Po;0;L;;;;;N;TIBETAN CHUCHENYIGE;;;;
+0F86;TIBETAN SIGN LCI RTAGS;Mn;230;NSM;;;;;N;;ji ta;;;
+0F87;TIBETAN SIGN YANG RTAGS;Mn;230;NSM;;;;;N;;yang ta;;;
+0F88;TIBETAN SIGN LCE TSA CAN;Lo;0;L;;;;;N;;che tsa chen;;;
+0F89;TIBETAN SIGN MCHU CAN;Lo;0;L;;;;;N;;chu chen;;;
+0F8A;TIBETAN SIGN GRU CAN RGYINGS;Lo;0;L;;;;;N;;tru chen ging;;;
+0F8B;TIBETAN SIGN GRU MED RGYINGS;Lo;0;L;;;;;N;;tru me ging;;;
+0F90;TIBETAN SUBJOINED LETTER KA;Mn;0;NSM;;;;;N;;;;;
+0F91;TIBETAN SUBJOINED LETTER KHA;Mn;0;NSM;;;;;N;;;;;
+0F92;TIBETAN SUBJOINED LETTER GA;Mn;0;NSM;;;;;N;;;;;
+0F93;TIBETAN SUBJOINED LETTER GHA;Mn;0;NSM;0F92 0FB7;;;;N;;;;;
+0F94;TIBETAN SUBJOINED LETTER NGA;Mn;0;NSM;;;;;N;;;;;
+0F95;TIBETAN SUBJOINED LETTER CA;Mn;0;NSM;;;;;N;;;;;
+0F96;TIBETAN SUBJOINED LETTER CHA;Mn;0;NSM;;;;;N;;;;;
+0F97;TIBETAN SUBJOINED LETTER JA;Mn;0;NSM;;;;;N;;;;;
+0F99;TIBETAN SUBJOINED LETTER NYA;Mn;0;NSM;;;;;N;;;;;
+0F9A;TIBETAN SUBJOINED LETTER TTA;Mn;0;NSM;;;;;N;;;;;
+0F9B;TIBETAN SUBJOINED LETTER TTHA;Mn;0;NSM;;;;;N;;;;;
+0F9C;TIBETAN SUBJOINED LETTER DDA;Mn;0;NSM;;;;;N;;;;;
+0F9D;TIBETAN SUBJOINED LETTER DDHA;Mn;0;NSM;0F9C 0FB7;;;;N;;;;;
+0F9E;TIBETAN SUBJOINED LETTER NNA;Mn;0;NSM;;;;;N;;;;;
+0F9F;TIBETAN SUBJOINED LETTER TA;Mn;0;NSM;;;;;N;;;;;
+0FA0;TIBETAN SUBJOINED LETTER THA;Mn;0;NSM;;;;;N;;;;;
+0FA1;TIBETAN SUBJOINED LETTER DA;Mn;0;NSM;;;;;N;;;;;
+0FA2;TIBETAN SUBJOINED LETTER DHA;Mn;0;NSM;0FA1 0FB7;;;;N;;;;;
+0FA3;TIBETAN SUBJOINED LETTER NA;Mn;0;NSM;;;;;N;;;;;
+0FA4;TIBETAN SUBJOINED LETTER PA;Mn;0;NSM;;;;;N;;;;;
+0FA5;TIBETAN SUBJOINED LETTER PHA;Mn;0;NSM;;;;;N;;;;;
+0FA6;TIBETAN SUBJOINED LETTER BA;Mn;0;NSM;;;;;N;;;;;
+0FA7;TIBETAN SUBJOINED LETTER BHA;Mn;0;NSM;0FA6 0FB7;;;;N;;;;;
+0FA8;TIBETAN SUBJOINED LETTER MA;Mn;0;NSM;;;;;N;;;;;
+0FA9;TIBETAN SUBJOINED LETTER TSA;Mn;0;NSM;;;;;N;;;;;
+0FAA;TIBETAN SUBJOINED LETTER TSHA;Mn;0;NSM;;;;;N;;;;;
+0FAB;TIBETAN SUBJOINED LETTER DZA;Mn;0;NSM;;;;;N;;;;;
+0FAC;TIBETAN SUBJOINED LETTER DZHA;Mn;0;NSM;0FAB 0FB7;;;;N;;;;;
+0FAD;TIBETAN SUBJOINED LETTER WA;Mn;0;NSM;;;;;N;;*;;;
+0FAE;TIBETAN SUBJOINED LETTER ZHA;Mn;0;NSM;;;;;N;;;;;
+0FAF;TIBETAN SUBJOINED LETTER ZA;Mn;0;NSM;;;;;N;;;;;
+0FB0;TIBETAN SUBJOINED LETTER -A;Mn;0;NSM;;;;;N;;;;;
+0FB1;TIBETAN SUBJOINED LETTER YA;Mn;0;NSM;;;;;N;;*;;;
+0FB2;TIBETAN SUBJOINED LETTER RA;Mn;0;NSM;;;;;N;;*;;;
+0FB3;TIBETAN SUBJOINED LETTER LA;Mn;0;NSM;;;;;N;;;;;
+0FB4;TIBETAN SUBJOINED LETTER SHA;Mn;0;NSM;;;;;N;;;;;
+0FB5;TIBETAN SUBJOINED LETTER SSA;Mn;0;NSM;;;;;N;;;;;
+0FB6;TIBETAN SUBJOINED LETTER SA;Mn;0;NSM;;;;;N;;;;;
+0FB7;TIBETAN SUBJOINED LETTER HA;Mn;0;NSM;;;;;N;;;;;
+0FB8;TIBETAN SUBJOINED LETTER A;Mn;0;NSM;;;;;N;;;;;
+0FB9;TIBETAN SUBJOINED LETTER KSSA;Mn;0;NSM;0F90 0FB5;;;;N;;;;;
+0FBA;TIBETAN SUBJOINED LETTER FIXED-FORM WA;Mn;0;NSM;;;;;N;;*;;;
+0FBB;TIBETAN SUBJOINED LETTER FIXED-FORM YA;Mn;0;NSM;;;;;N;;*;;;
+0FBC;TIBETAN SUBJOINED LETTER FIXED-FORM RA;Mn;0;NSM;;;;;N;;*;;;
+0FBE;TIBETAN KU RU KHA;So;0;L;;;;;N;;kuruka;;;
+0FBF;TIBETAN KU RU KHA BZHI MIG CAN;So;0;L;;;;;N;;kuruka shi mik chen;;;
+0FC0;TIBETAN CANTILLATION SIGN HEAVY BEAT;So;0;L;;;;;N;;;;;
+0FC1;TIBETAN CANTILLATION SIGN LIGHT BEAT;So;0;L;;;;;N;;;;;
+0FC2;TIBETAN CANTILLATION SIGN CANG TE-U;So;0;L;;;;;N;;chang tyu;;;
+0FC3;TIBETAN CANTILLATION SIGN SBUB -CHAL;So;0;L;;;;;N;;bub chey;;;
+0FC4;TIBETAN SYMBOL DRIL BU;So;0;L;;;;;N;;drilbu;;;
+0FC5;TIBETAN SYMBOL RDO RJE;So;0;L;;;;;N;;dorje;;;
+0FC6;TIBETAN SYMBOL PADMA GDAN;Mn;220;NSM;;;;;N;;pema den;;;
+0FC7;TIBETAN SYMBOL RDO RJE RGYA GRAM;So;0;L;;;;;N;;dorje gya dram;;;
+0FC8;TIBETAN SYMBOL PHUR PA;So;0;L;;;;;N;;phurba;;;
+0FC9;TIBETAN SYMBOL NOR BU;So;0;L;;;;;N;;norbu;;;
+0FCA;TIBETAN SYMBOL NOR BU NYIS -KHYIL;So;0;L;;;;;N;;norbu nyi khyi;;;
+0FCB;TIBETAN SYMBOL NOR BU GSUM -KHYIL;So;0;L;;;;;N;;norbu sum khyi;;;
+0FCC;TIBETAN SYMBOL NOR BU BZHI -KHYIL;So;0;L;;;;;N;;norbu shi khyi;;;
+0FCF;TIBETAN SIGN RDEL NAG GSUM;So;0;L;;;;;N;;;;;
+1000;MYANMAR LETTER KA;Lo;0;L;;;;;N;;;;;
+1001;MYANMAR LETTER KHA;Lo;0;L;;;;;N;;;;;
+1002;MYANMAR LETTER GA;Lo;0;L;;;;;N;;;;;
+1003;MYANMAR LETTER GHA;Lo;0;L;;;;;N;;;;;
+1004;MYANMAR LETTER NGA;Lo;0;L;;;;;N;;;;;
+1005;MYANMAR LETTER CA;Lo;0;L;;;;;N;;;;;
+1006;MYANMAR LETTER CHA;Lo;0;L;;;;;N;;;;;
+1007;MYANMAR LETTER JA;Lo;0;L;;;;;N;;;;;
+1008;MYANMAR LETTER JHA;Lo;0;L;;;;;N;;;;;
+1009;MYANMAR LETTER NYA;Lo;0;L;;;;;N;;;;;
+100A;MYANMAR LETTER NNYA;Lo;0;L;;;;;N;;;;;
+100B;MYANMAR LETTER TTA;Lo;0;L;;;;;N;;;;;
+100C;MYANMAR LETTER TTHA;Lo;0;L;;;;;N;;;;;
+100D;MYANMAR LETTER DDA;Lo;0;L;;;;;N;;;;;
+100E;MYANMAR LETTER DDHA;Lo;0;L;;;;;N;;;;;
+100F;MYANMAR LETTER NNA;Lo;0;L;;;;;N;;;;;
+1010;MYANMAR LETTER TA;Lo;0;L;;;;;N;;;;;
+1011;MYANMAR LETTER THA;Lo;0;L;;;;;N;;;;;
+1012;MYANMAR LETTER DA;Lo;0;L;;;;;N;;;;;
+1013;MYANMAR LETTER DHA;Lo;0;L;;;;;N;;;;;
+1014;MYANMAR LETTER NA;Lo;0;L;;;;;N;;;;;
+1015;MYANMAR LETTER PA;Lo;0;L;;;;;N;;;;;
+1016;MYANMAR LETTER PHA;Lo;0;L;;;;;N;;;;;
+1017;MYANMAR LETTER BA;Lo;0;L;;;;;N;;;;;
+1018;MYANMAR LETTER BHA;Lo;0;L;;;;;N;;;;;
+1019;MYANMAR LETTER MA;Lo;0;L;;;;;N;;;;;
+101A;MYANMAR LETTER YA;Lo;0;L;;;;;N;;;;;
+101B;MYANMAR LETTER RA;Lo;0;L;;;;;N;;;;;
+101C;MYANMAR LETTER LA;Lo;0;L;;;;;N;;;;;
+101D;MYANMAR LETTER WA;Lo;0;L;;;;;N;;;;;
+101E;MYANMAR LETTER SA;Lo;0;L;;;;;N;;;;;
+101F;MYANMAR LETTER HA;Lo;0;L;;;;;N;;;;;
+1020;MYANMAR LETTER LLA;Lo;0;L;;;;;N;;;;;
+1021;MYANMAR LETTER A;Lo;0;L;;;;;N;;;;;
+1023;MYANMAR LETTER I;Lo;0;L;;;;;N;;;;;
+1024;MYANMAR LETTER II;Lo;0;L;;;;;N;;;;;
+1025;MYANMAR LETTER U;Lo;0;L;;;;;N;;;;;
+1026;MYANMAR LETTER UU;Lo;0;L;1025 102E;;;;N;;;;;
+1027;MYANMAR LETTER E;Lo;0;L;;;;;N;;;;;
+1029;MYANMAR LETTER O;Lo;0;L;;;;;N;;;;;
+102A;MYANMAR LETTER AU;Lo;0;L;;;;;N;;;;;
+102C;MYANMAR VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+102D;MYANMAR VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
+102E;MYANMAR VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;;
+102F;MYANMAR VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+1030;MYANMAR VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
+1031;MYANMAR VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
+1032;MYANMAR VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;;
+1036;MYANMAR SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
+1037;MYANMAR SIGN DOT BELOW;Mn;7;NSM;;;;;N;;;;;
+1038;MYANMAR SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+1039;MYANMAR SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+1040;MYANMAR DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+1041;MYANMAR DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+1042;MYANMAR DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+1043;MYANMAR DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+1044;MYANMAR DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+1045;MYANMAR DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+1046;MYANMAR DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+1047;MYANMAR DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+1048;MYANMAR DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+1049;MYANMAR DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+104A;MYANMAR SIGN LITTLE SECTION;Po;0;L;;;;;N;;;;;
+104B;MYANMAR SIGN SECTION;Po;0;L;;;;;N;;;;;
+104C;MYANMAR SYMBOL LOCATIVE;Po;0;L;;;;;N;;;;;
+104D;MYANMAR SYMBOL COMPLETED;Po;0;L;;;;;N;;;;;
+104E;MYANMAR SYMBOL AFOREMENTIONED;Po;0;L;;;;;N;;;;;
+104F;MYANMAR SYMBOL GENITIVE;Po;0;L;;;;;N;;;;;
+1050;MYANMAR LETTER SHA;Lo;0;L;;;;;N;;;;;
+1051;MYANMAR LETTER SSA;Lo;0;L;;;;;N;;;;;
+1052;MYANMAR LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
+1053;MYANMAR LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
+1054;MYANMAR LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
+1055;MYANMAR LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
+1056;MYANMAR VOWEL SIGN VOCALIC R;Mc;0;L;;;;;N;;;;;
+1057;MYANMAR VOWEL SIGN VOCALIC RR;Mc;0;L;;;;;N;;;;;
+1058;MYANMAR VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;;
+1059;MYANMAR VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;;
+10A0;GEORGIAN CAPITAL LETTER AN;Lu;0;L;;;;;N;;Khutsuri;;;
+10A1;GEORGIAN CAPITAL LETTER BAN;Lu;0;L;;;;;N;;Khutsuri;;;
+10A2;GEORGIAN CAPITAL LETTER GAN;Lu;0;L;;;;;N;;Khutsuri;;;
+10A3;GEORGIAN CAPITAL LETTER DON;Lu;0;L;;;;;N;;Khutsuri;;;
+10A4;GEORGIAN CAPITAL LETTER EN;Lu;0;L;;;;;N;;Khutsuri;;;
+10A5;GEORGIAN CAPITAL LETTER VIN;Lu;0;L;;;;;N;;Khutsuri;;;
+10A6;GEORGIAN CAPITAL LETTER ZEN;Lu;0;L;;;;;N;;Khutsuri;;;
+10A7;GEORGIAN CAPITAL LETTER TAN;Lu;0;L;;;;;N;;Khutsuri;;;
+10A8;GEORGIAN CAPITAL LETTER IN;Lu;0;L;;;;;N;;Khutsuri;;;
+10A9;GEORGIAN CAPITAL LETTER KAN;Lu;0;L;;;;;N;;Khutsuri;;;
+10AA;GEORGIAN CAPITAL LETTER LAS;Lu;0;L;;;;;N;;Khutsuri;;;
+10AB;GEORGIAN CAPITAL LETTER MAN;Lu;0;L;;;;;N;;Khutsuri;;;
+10AC;GEORGIAN CAPITAL LETTER NAR;Lu;0;L;;;;;N;;Khutsuri;;;
+10AD;GEORGIAN CAPITAL LETTER ON;Lu;0;L;;;;;N;;Khutsuri;;;
+10AE;GEORGIAN CAPITAL LETTER PAR;Lu;0;L;;;;;N;;Khutsuri;;;
+10AF;GEORGIAN CAPITAL LETTER ZHAR;Lu;0;L;;;;;N;;Khutsuri;;;
+10B0;GEORGIAN CAPITAL LETTER RAE;Lu;0;L;;;;;N;;Khutsuri;;;
+10B1;GEORGIAN CAPITAL LETTER SAN;Lu;0;L;;;;;N;;Khutsuri;;;
+10B2;GEORGIAN CAPITAL LETTER TAR;Lu;0;L;;;;;N;;Khutsuri;;;
+10B3;GEORGIAN CAPITAL LETTER UN;Lu;0;L;;;;;N;;Khutsuri;;;
+10B4;GEORGIAN CAPITAL LETTER PHAR;Lu;0;L;;;;;N;;Khutsuri;;;
+10B5;GEORGIAN CAPITAL LETTER KHAR;Lu;0;L;;;;;N;;Khutsuri;;;
+10B6;GEORGIAN CAPITAL LETTER GHAN;Lu;0;L;;;;;N;;Khutsuri;;;
+10B7;GEORGIAN CAPITAL LETTER QAR;Lu;0;L;;;;;N;;Khutsuri;;;
+10B8;GEORGIAN CAPITAL LETTER SHIN;Lu;0;L;;;;;N;;Khutsuri;;;
+10B9;GEORGIAN CAPITAL LETTER CHIN;Lu;0;L;;;;;N;;Khutsuri;;;
+10BA;GEORGIAN CAPITAL LETTER CAN;Lu;0;L;;;;;N;;Khutsuri;;;
+10BB;GEORGIAN CAPITAL LETTER JIL;Lu;0;L;;;;;N;;Khutsuri;;;
+10BC;GEORGIAN CAPITAL LETTER CIL;Lu;0;L;;;;;N;;Khutsuri;;;
+10BD;GEORGIAN CAPITAL LETTER CHAR;Lu;0;L;;;;;N;;Khutsuri;;;
+10BE;GEORGIAN CAPITAL LETTER XAN;Lu;0;L;;;;;N;;Khutsuri;;;
+10BF;GEORGIAN CAPITAL LETTER JHAN;Lu;0;L;;;;;N;;Khutsuri;;;
+10C0;GEORGIAN CAPITAL LETTER HAE;Lu;0;L;;;;;N;;Khutsuri;;;
+10C1;GEORGIAN CAPITAL LETTER HE;Lu;0;L;;;;;N;;Khutsuri;;;
+10C2;GEORGIAN CAPITAL LETTER HIE;Lu;0;L;;;;;N;;Khutsuri;;;
+10C3;GEORGIAN CAPITAL LETTER WE;Lu;0;L;;;;;N;;Khutsuri;;;
+10C4;GEORGIAN CAPITAL LETTER HAR;Lu;0;L;;;;;N;;Khutsuri;;;
+10C5;GEORGIAN CAPITAL LETTER HOE;Lu;0;L;;;;;N;;Khutsuri;;;
+10D0;GEORGIAN LETTER AN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER AN;;;;
+10D1;GEORGIAN LETTER BAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER BAN;;;;
+10D2;GEORGIAN LETTER GAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER GAN;;;;
+10D3;GEORGIAN LETTER DON;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER DON;;;;
+10D4;GEORGIAN LETTER EN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER EN;;;;
+10D5;GEORGIAN LETTER VIN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER VIN;;;;
+10D6;GEORGIAN LETTER ZEN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER ZEN;;;;
+10D7;GEORGIAN LETTER TAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER TAN;;;;
+10D8;GEORGIAN LETTER IN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER IN;;;;
+10D9;GEORGIAN LETTER KAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER KAN;;;;
+10DA;GEORGIAN LETTER LAS;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER LAS;;;;
+10DB;GEORGIAN LETTER MAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER MAN;;;;
+10DC;GEORGIAN LETTER NAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER NAR;;;;
+10DD;GEORGIAN LETTER ON;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER ON;;;;
+10DE;GEORGIAN LETTER PAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER PAR;;;;
+10DF;GEORGIAN LETTER ZHAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER ZHAR;;;;
+10E0;GEORGIAN LETTER RAE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER RAE;;;;
+10E1;GEORGIAN LETTER SAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER SAN;;;;
+10E2;GEORGIAN LETTER TAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER TAR;;;;
+10E3;GEORGIAN LETTER UN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER UN;;;;
+10E4;GEORGIAN LETTER PHAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER PHAR;;;;
+10E5;GEORGIAN LETTER KHAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER KHAR;;;;
+10E6;GEORGIAN LETTER GHAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER GHAN;;;;
+10E7;GEORGIAN LETTER QAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER QAR;;;;
+10E8;GEORGIAN LETTER SHIN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER SHIN;;;;
+10E9;GEORGIAN LETTER CHIN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER CHIN;;;;
+10EA;GEORGIAN LETTER CAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER CAN;;;;
+10EB;GEORGIAN LETTER JIL;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER JIL;;;;
+10EC;GEORGIAN LETTER CIL;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER CIL;;;;
+10ED;GEORGIAN LETTER CHAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER CHAR;;;;
+10EE;GEORGIAN LETTER XAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER XAN;;;;
+10EF;GEORGIAN LETTER JHAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER JHAN;;;;
+10F0;GEORGIAN LETTER HAE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER HAE;;;;
+10F1;GEORGIAN LETTER HE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER HE;;;;
+10F2;GEORGIAN LETTER HIE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER HIE;;;;
+10F3;GEORGIAN LETTER WE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER WE;;;;
+10F4;GEORGIAN LETTER HAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER HAR;;;;
+10F5;GEORGIAN LETTER HOE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER HOE;;;;
+10F6;GEORGIAN LETTER FI;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER FI;;;;
+10FB;GEORGIAN PARAGRAPH SEPARATOR;Po;0;L;;;;;N;;;;;
+1100;HANGUL CHOSEONG KIYEOK;Lo;0;L;;;;;N;;g *;;;
+1101;HANGUL CHOSEONG SSANGKIYEOK;Lo;0;L;;;;;N;;gg *;;;
+1102;HANGUL CHOSEONG NIEUN;Lo;0;L;;;;;N;;n *;;;
+1103;HANGUL CHOSEONG TIKEUT;Lo;0;L;;;;;N;;d *;;;
+1104;HANGUL CHOSEONG SSANGTIKEUT;Lo;0;L;;;;;N;;dd *;;;
+1105;HANGUL CHOSEONG RIEUL;Lo;0;L;;;;;N;;r *;;;
+1106;HANGUL CHOSEONG MIEUM;Lo;0;L;;;;;N;;m *;;;
+1107;HANGUL CHOSEONG PIEUP;Lo;0;L;;;;;N;;b *;;;
+1108;HANGUL CHOSEONG SSANGPIEUP;Lo;0;L;;;;;N;;bb *;;;
+1109;HANGUL CHOSEONG SIOS;Lo;0;L;;;;;N;;s *;;;
+110A;HANGUL CHOSEONG SSANGSIOS;Lo;0;L;;;;;N;;ss *;;;
+110B;HANGUL CHOSEONG IEUNG;Lo;0;L;;;;;N;;;;;
+110C;HANGUL CHOSEONG CIEUC;Lo;0;L;;;;;N;;j *;;;
+110D;HANGUL CHOSEONG SSANGCIEUC;Lo;0;L;;;;;N;;jj *;;;
+110E;HANGUL CHOSEONG CHIEUCH;Lo;0;L;;;;;N;;c *;;;
+110F;HANGUL CHOSEONG KHIEUKH;Lo;0;L;;;;;N;;k *;;;
+1110;HANGUL CHOSEONG THIEUTH;Lo;0;L;;;;;N;;t *;;;
+1111;HANGUL CHOSEONG PHIEUPH;Lo;0;L;;;;;N;;p *;;;
+1112;HANGUL CHOSEONG HIEUH;Lo;0;L;;;;;N;;h *;;;
+1113;HANGUL CHOSEONG NIEUN-KIYEOK;Lo;0;L;;;;;N;;;;;
+1114;HANGUL CHOSEONG SSANGNIEUN;Lo;0;L;;;;;N;;;;;
+1115;HANGUL CHOSEONG NIEUN-TIKEUT;Lo;0;L;;;;;N;;;;;
+1116;HANGUL CHOSEONG NIEUN-PIEUP;Lo;0;L;;;;;N;;;;;
+1117;HANGUL CHOSEONG TIKEUT-KIYEOK;Lo;0;L;;;;;N;;;;;
+1118;HANGUL CHOSEONG RIEUL-NIEUN;Lo;0;L;;;;;N;;;;;
+1119;HANGUL CHOSEONG SSANGRIEUL;Lo;0;L;;;;;N;;;;;
+111A;HANGUL CHOSEONG RIEUL-HIEUH;Lo;0;L;;;;;N;;;;;
+111B;HANGUL CHOSEONG KAPYEOUNRIEUL;Lo;0;L;;;;;N;;;;;
+111C;HANGUL CHOSEONG MIEUM-PIEUP;Lo;0;L;;;;;N;;;;;
+111D;HANGUL CHOSEONG KAPYEOUNMIEUM;Lo;0;L;;;;;N;;;;;
+111E;HANGUL CHOSEONG PIEUP-KIYEOK;Lo;0;L;;;;;N;;;;;
+111F;HANGUL CHOSEONG PIEUP-NIEUN;Lo;0;L;;;;;N;;;;;
+1120;HANGUL CHOSEONG PIEUP-TIKEUT;Lo;0;L;;;;;N;;;;;
+1121;HANGUL CHOSEONG PIEUP-SIOS;Lo;0;L;;;;;N;;;;;
+1122;HANGUL CHOSEONG PIEUP-SIOS-KIYEOK;Lo;0;L;;;;;N;;;;;
+1123;HANGUL CHOSEONG PIEUP-SIOS-TIKEUT;Lo;0;L;;;;;N;;;;;
+1124;HANGUL CHOSEONG PIEUP-SIOS-PIEUP;Lo;0;L;;;;;N;;;;;
+1125;HANGUL CHOSEONG PIEUP-SSANGSIOS;Lo;0;L;;;;;N;;;;;
+1126;HANGUL CHOSEONG PIEUP-SIOS-CIEUC;Lo;0;L;;;;;N;;;;;
+1127;HANGUL CHOSEONG PIEUP-CIEUC;Lo;0;L;;;;;N;;;;;
+1128;HANGUL CHOSEONG PIEUP-CHIEUCH;Lo;0;L;;;;;N;;;;;
+1129;HANGUL CHOSEONG PIEUP-THIEUTH;Lo;0;L;;;;;N;;;;;
+112A;HANGUL CHOSEONG PIEUP-PHIEUPH;Lo;0;L;;;;;N;;;;;
+112B;HANGUL CHOSEONG KAPYEOUNPIEUP;Lo;0;L;;;;;N;;;;;
+112C;HANGUL CHOSEONG KAPYEOUNSSANGPIEUP;Lo;0;L;;;;;N;;;;;
+112D;HANGUL CHOSEONG SIOS-KIYEOK;Lo;0;L;;;;;N;;;;;
+112E;HANGUL CHOSEONG SIOS-NIEUN;Lo;0;L;;;;;N;;;;;
+112F;HANGUL CHOSEONG SIOS-TIKEUT;Lo;0;L;;;;;N;;;;;
+1130;HANGUL CHOSEONG SIOS-RIEUL;Lo;0;L;;;;;N;;;;;
+1131;HANGUL CHOSEONG SIOS-MIEUM;Lo;0;L;;;;;N;;;;;
+1132;HANGUL CHOSEONG SIOS-PIEUP;Lo;0;L;;;;;N;;;;;
+1133;HANGUL CHOSEONG SIOS-PIEUP-KIYEOK;Lo;0;L;;;;;N;;;;;
+1134;HANGUL CHOSEONG SIOS-SSANGSIOS;Lo;0;L;;;;;N;;;;;
+1135;HANGUL CHOSEONG SIOS-IEUNG;Lo;0;L;;;;;N;;;;;
+1136;HANGUL CHOSEONG SIOS-CIEUC;Lo;0;L;;;;;N;;;;;
+1137;HANGUL CHOSEONG SIOS-CHIEUCH;Lo;0;L;;;;;N;;;;;
+1138;HANGUL CHOSEONG SIOS-KHIEUKH;Lo;0;L;;;;;N;;;;;
+1139;HANGUL CHOSEONG SIOS-THIEUTH;Lo;0;L;;;;;N;;;;;
+113A;HANGUL CHOSEONG SIOS-PHIEUPH;Lo;0;L;;;;;N;;;;;
+113B;HANGUL CHOSEONG SIOS-HIEUH;Lo;0;L;;;;;N;;;;;
+113C;HANGUL CHOSEONG CHITUEUMSIOS;Lo;0;L;;;;;N;;;;;
+113D;HANGUL CHOSEONG CHITUEUMSSANGSIOS;Lo;0;L;;;;;N;;;;;
+113E;HANGUL CHOSEONG CEONGCHIEUMSIOS;Lo;0;L;;;;;N;;;;;
+113F;HANGUL CHOSEONG CEONGCHIEUMSSANGSIOS;Lo;0;L;;;;;N;;;;;
+1140;HANGUL CHOSEONG PANSIOS;Lo;0;L;;;;;N;;;;;
+1141;HANGUL CHOSEONG IEUNG-KIYEOK;Lo;0;L;;;;;N;;;;;
+1142;HANGUL CHOSEONG IEUNG-TIKEUT;Lo;0;L;;;;;N;;;;;
+1143;HANGUL CHOSEONG IEUNG-MIEUM;Lo;0;L;;;;;N;;;;;
+1144;HANGUL CHOSEONG IEUNG-PIEUP;Lo;0;L;;;;;N;;;;;
+1145;HANGUL CHOSEONG IEUNG-SIOS;Lo;0;L;;;;;N;;;;;
+1146;HANGUL CHOSEONG IEUNG-PANSIOS;Lo;0;L;;;;;N;;;;;
+1147;HANGUL CHOSEONG SSANGIEUNG;Lo;0;L;;;;;N;;;;;
+1148;HANGUL CHOSEONG IEUNG-CIEUC;Lo;0;L;;;;;N;;;;;
+1149;HANGUL CHOSEONG IEUNG-CHIEUCH;Lo;0;L;;;;;N;;;;;
+114A;HANGUL CHOSEONG IEUNG-THIEUTH;Lo;0;L;;;;;N;;;;;
+114B;HANGUL CHOSEONG IEUNG-PHIEUPH;Lo;0;L;;;;;N;;;;;
+114C;HANGUL CHOSEONG YESIEUNG;Lo;0;L;;;;;N;;;;;
+114D;HANGUL CHOSEONG CIEUC-IEUNG;Lo;0;L;;;;;N;;;;;
+114E;HANGUL CHOSEONG CHITUEUMCIEUC;Lo;0;L;;;;;N;;;;;
+114F;HANGUL CHOSEONG CHITUEUMSSANGCIEUC;Lo;0;L;;;;;N;;;;;
+1150;HANGUL CHOSEONG CEONGCHIEUMCIEUC;Lo;0;L;;;;;N;;;;;
+1151;HANGUL CHOSEONG CEONGCHIEUMSSANGCIEUC;Lo;0;L;;;;;N;;;;;
+1152;HANGUL CHOSEONG CHIEUCH-KHIEUKH;Lo;0;L;;;;;N;;;;;
+1153;HANGUL CHOSEONG CHIEUCH-HIEUH;Lo;0;L;;;;;N;;;;;
+1154;HANGUL CHOSEONG CHITUEUMCHIEUCH;Lo;0;L;;;;;N;;;;;
+1155;HANGUL CHOSEONG CEONGCHIEUMCHIEUCH;Lo;0;L;;;;;N;;;;;
+1156;HANGUL CHOSEONG PHIEUPH-PIEUP;Lo;0;L;;;;;N;;;;;
+1157;HANGUL CHOSEONG KAPYEOUNPHIEUPH;Lo;0;L;;;;;N;;;;;
+1158;HANGUL CHOSEONG SSANGHIEUH;Lo;0;L;;;;;N;;;;;
+1159;HANGUL CHOSEONG YEORINHIEUH;Lo;0;L;;;;;N;;;;;
+115F;HANGUL CHOSEONG FILLER;Lo;0;L;;;;;N;;;;;
+1160;HANGUL JUNGSEONG FILLER;Lo;0;L;;;;;N;;;;;
+1161;HANGUL JUNGSEONG A;Lo;0;L;;;;;N;;;;;
+1162;HANGUL JUNGSEONG AE;Lo;0;L;;;;;N;;;;;
+1163;HANGUL JUNGSEONG YA;Lo;0;L;;;;;N;;;;;
+1164;HANGUL JUNGSEONG YAE;Lo;0;L;;;;;N;;;;;
+1165;HANGUL JUNGSEONG EO;Lo;0;L;;;;;N;;;;;
+1166;HANGUL JUNGSEONG E;Lo;0;L;;;;;N;;;;;
+1167;HANGUL JUNGSEONG YEO;Lo;0;L;;;;;N;;;;;
+1168;HANGUL JUNGSEONG YE;Lo;0;L;;;;;N;;;;;
+1169;HANGUL JUNGSEONG O;Lo;0;L;;;;;N;;;;;
+116A;HANGUL JUNGSEONG WA;Lo;0;L;;;;;N;;;;;
+116B;HANGUL JUNGSEONG WAE;Lo;0;L;;;;;N;;;;;
+116C;HANGUL JUNGSEONG OE;Lo;0;L;;;;;N;;;;;
+116D;HANGUL JUNGSEONG YO;Lo;0;L;;;;;N;;;;;
+116E;HANGUL JUNGSEONG U;Lo;0;L;;;;;N;;;;;
+116F;HANGUL JUNGSEONG WEO;Lo;0;L;;;;;N;;;;;
+1170;HANGUL JUNGSEONG WE;Lo;0;L;;;;;N;;;;;
+1171;HANGUL JUNGSEONG WI;Lo;0;L;;;;;N;;;;;
+1172;HANGUL JUNGSEONG YU;Lo;0;L;;;;;N;;;;;
+1173;HANGUL JUNGSEONG EU;Lo;0;L;;;;;N;;;;;
+1174;HANGUL JUNGSEONG YI;Lo;0;L;;;;;N;;;;;
+1175;HANGUL JUNGSEONG I;Lo;0;L;;;;;N;;;;;
+1176;HANGUL JUNGSEONG A-O;Lo;0;L;;;;;N;;;;;
+1177;HANGUL JUNGSEONG A-U;Lo;0;L;;;;;N;;;;;
+1178;HANGUL JUNGSEONG YA-O;Lo;0;L;;;;;N;;;;;
+1179;HANGUL JUNGSEONG YA-YO;Lo;0;L;;;;;N;;;;;
+117A;HANGUL JUNGSEONG EO-O;Lo;0;L;;;;;N;;;;;
+117B;HANGUL JUNGSEONG EO-U;Lo;0;L;;;;;N;;;;;
+117C;HANGUL JUNGSEONG EO-EU;Lo;0;L;;;;;N;;;;;
+117D;HANGUL JUNGSEONG YEO-O;Lo;0;L;;;;;N;;;;;
+117E;HANGUL JUNGSEONG YEO-U;Lo;0;L;;;;;N;;;;;
+117F;HANGUL JUNGSEONG O-EO;Lo;0;L;;;;;N;;;;;
+1180;HANGUL JUNGSEONG O-E;Lo;0;L;;;;;N;;;;;
+1181;HANGUL JUNGSEONG O-YE;Lo;0;L;;;;;N;;;;;
+1182;HANGUL JUNGSEONG O-O;Lo;0;L;;;;;N;;;;;
+1183;HANGUL JUNGSEONG O-U;Lo;0;L;;;;;N;;;;;
+1184;HANGUL JUNGSEONG YO-YA;Lo;0;L;;;;;N;;;;;
+1185;HANGUL JUNGSEONG YO-YAE;Lo;0;L;;;;;N;;;;;
+1186;HANGUL JUNGSEONG YO-YEO;Lo;0;L;;;;;N;;;;;
+1187;HANGUL JUNGSEONG YO-O;Lo;0;L;;;;;N;;;;;
+1188;HANGUL JUNGSEONG YO-I;Lo;0;L;;;;;N;;;;;
+1189;HANGUL JUNGSEONG U-A;Lo;0;L;;;;;N;;;;;
+118A;HANGUL JUNGSEONG U-AE;Lo;0;L;;;;;N;;;;;
+118B;HANGUL JUNGSEONG U-EO-EU;Lo;0;L;;;;;N;;;;;
+118C;HANGUL JUNGSEONG U-YE;Lo;0;L;;;;;N;;;;;
+118D;HANGUL JUNGSEONG U-U;Lo;0;L;;;;;N;;;;;
+118E;HANGUL JUNGSEONG YU-A;Lo;0;L;;;;;N;;;;;
+118F;HANGUL JUNGSEONG YU-EO;Lo;0;L;;;;;N;;;;;
+1190;HANGUL JUNGSEONG YU-E;Lo;0;L;;;;;N;;;;;
+1191;HANGUL JUNGSEONG YU-YEO;Lo;0;L;;;;;N;;;;;
+1192;HANGUL JUNGSEONG YU-YE;Lo;0;L;;;;;N;;;;;
+1193;HANGUL JUNGSEONG YU-U;Lo;0;L;;;;;N;;;;;
+1194;HANGUL JUNGSEONG YU-I;Lo;0;L;;;;;N;;;;;
+1195;HANGUL JUNGSEONG EU-U;Lo;0;L;;;;;N;;;;;
+1196;HANGUL JUNGSEONG EU-EU;Lo;0;L;;;;;N;;;;;
+1197;HANGUL JUNGSEONG YI-U;Lo;0;L;;;;;N;;;;;
+1198;HANGUL JUNGSEONG I-A;Lo;0;L;;;;;N;;;;;
+1199;HANGUL JUNGSEONG I-YA;Lo;0;L;;;;;N;;;;;
+119A;HANGUL JUNGSEONG I-O;Lo;0;L;;;;;N;;;;;
+119B;HANGUL JUNGSEONG I-U;Lo;0;L;;;;;N;;;;;
+119C;HANGUL JUNGSEONG I-EU;Lo;0;L;;;;;N;;;;;
+119D;HANGUL JUNGSEONG I-ARAEA;Lo;0;L;;;;;N;;;;;
+119E;HANGUL JUNGSEONG ARAEA;Lo;0;L;;;;;N;;;;;
+119F;HANGUL JUNGSEONG ARAEA-EO;Lo;0;L;;;;;N;;;;;
+11A0;HANGUL JUNGSEONG ARAEA-U;Lo;0;L;;;;;N;;;;;
+11A1;HANGUL JUNGSEONG ARAEA-I;Lo;0;L;;;;;N;;;;;
+11A2;HANGUL JUNGSEONG SSANGARAEA;Lo;0;L;;;;;N;;;;;
+11A8;HANGUL JONGSEONG KIYEOK;Lo;0;L;;;;;N;;g *;;;
+11A9;HANGUL JONGSEONG SSANGKIYEOK;Lo;0;L;;;;;N;;gg *;;;
+11AA;HANGUL JONGSEONG KIYEOK-SIOS;Lo;0;L;;;;;N;;gs *;;;
+11AB;HANGUL JONGSEONG NIEUN;Lo;0;L;;;;;N;;n *;;;
+11AC;HANGUL JONGSEONG NIEUN-CIEUC;Lo;0;L;;;;;N;;nj *;;;
+11AD;HANGUL JONGSEONG NIEUN-HIEUH;Lo;0;L;;;;;N;;nh *;;;
+11AE;HANGUL JONGSEONG TIKEUT;Lo;0;L;;;;;N;;d *;;;
+11AF;HANGUL JONGSEONG RIEUL;Lo;0;L;;;;;N;;l *;;;
+11B0;HANGUL JONGSEONG RIEUL-KIYEOK;Lo;0;L;;;;;N;;lg *;;;
+11B1;HANGUL JONGSEONG RIEUL-MIEUM;Lo;0;L;;;;;N;;lm *;;;
+11B2;HANGUL JONGSEONG RIEUL-PIEUP;Lo;0;L;;;;;N;;lb *;;;
+11B3;HANGUL JONGSEONG RIEUL-SIOS;Lo;0;L;;;;;N;;ls *;;;
+11B4;HANGUL JONGSEONG RIEUL-THIEUTH;Lo;0;L;;;;;N;;lt *;;;
+11B5;HANGUL JONGSEONG RIEUL-PHIEUPH;Lo;0;L;;;;;N;;lp *;;;
+11B6;HANGUL JONGSEONG RIEUL-HIEUH;Lo;0;L;;;;;N;;lh *;;;
+11B7;HANGUL JONGSEONG MIEUM;Lo;0;L;;;;;N;;m *;;;
+11B8;HANGUL JONGSEONG PIEUP;Lo;0;L;;;;;N;;b *;;;
+11B9;HANGUL JONGSEONG PIEUP-SIOS;Lo;0;L;;;;;N;;bs *;;;
+11BA;HANGUL JONGSEONG SIOS;Lo;0;L;;;;;N;;s *;;;
+11BB;HANGUL JONGSEONG SSANGSIOS;Lo;0;L;;;;;N;;ss *;;;
+11BC;HANGUL JONGSEONG IEUNG;Lo;0;L;;;;;N;;ng *;;;
+11BD;HANGUL JONGSEONG CIEUC;Lo;0;L;;;;;N;;j *;;;
+11BE;HANGUL JONGSEONG CHIEUCH;Lo;0;L;;;;;N;;c *;;;
+11BF;HANGUL JONGSEONG KHIEUKH;Lo;0;L;;;;;N;;k *;;;
+11C0;HANGUL JONGSEONG THIEUTH;Lo;0;L;;;;;N;;t *;;;
+11C1;HANGUL JONGSEONG PHIEUPH;Lo;0;L;;;;;N;;p *;;;
+11C2;HANGUL JONGSEONG HIEUH;Lo;0;L;;;;;N;;h *;;;
+11C3;HANGUL JONGSEONG KIYEOK-RIEUL;Lo;0;L;;;;;N;;;;;
+11C4;HANGUL JONGSEONG KIYEOK-SIOS-KIYEOK;Lo;0;L;;;;;N;;;;;
+11C5;HANGUL JONGSEONG NIEUN-KIYEOK;Lo;0;L;;;;;N;;;;;
+11C6;HANGUL JONGSEONG NIEUN-TIKEUT;Lo;0;L;;;;;N;;;;;
+11C7;HANGUL JONGSEONG NIEUN-SIOS;Lo;0;L;;;;;N;;;;;
+11C8;HANGUL JONGSEONG NIEUN-PANSIOS;Lo;0;L;;;;;N;;;;;
+11C9;HANGUL JONGSEONG NIEUN-THIEUTH;Lo;0;L;;;;;N;;;;;
+11CA;HANGUL JONGSEONG TIKEUT-KIYEOK;Lo;0;L;;;;;N;;;;;
+11CB;HANGUL JONGSEONG TIKEUT-RIEUL;Lo;0;L;;;;;N;;;;;
+11CC;HANGUL JONGSEONG RIEUL-KIYEOK-SIOS;Lo;0;L;;;;;N;;;;;
+11CD;HANGUL JONGSEONG RIEUL-NIEUN;Lo;0;L;;;;;N;;;;;
+11CE;HANGUL JONGSEONG RIEUL-TIKEUT;Lo;0;L;;;;;N;;;;;
+11CF;HANGUL JONGSEONG RIEUL-TIKEUT-HIEUH;Lo;0;L;;;;;N;;;;;
+11D0;HANGUL JONGSEONG SSANGRIEUL;Lo;0;L;;;;;N;;;;;
+11D1;HANGUL JONGSEONG RIEUL-MIEUM-KIYEOK;Lo;0;L;;;;;N;;;;;
+11D2;HANGUL JONGSEONG RIEUL-MIEUM-SIOS;Lo;0;L;;;;;N;;;;;
+11D3;HANGUL JONGSEONG RIEUL-PIEUP-SIOS;Lo;0;L;;;;;N;;;;;
+11D4;HANGUL JONGSEONG RIEUL-PIEUP-HIEUH;Lo;0;L;;;;;N;;;;;
+11D5;HANGUL JONGSEONG RIEUL-KAPYEOUNPIEUP;Lo;0;L;;;;;N;;;;;
+11D6;HANGUL JONGSEONG RIEUL-SSANGSIOS;Lo;0;L;;;;;N;;;;;
+11D7;HANGUL JONGSEONG RIEUL-PANSIOS;Lo;0;L;;;;;N;;;;;
+11D8;HANGUL JONGSEONG RIEUL-KHIEUKH;Lo;0;L;;;;;N;;;;;
+11D9;HANGUL JONGSEONG RIEUL-YEORINHIEUH;Lo;0;L;;;;;N;;;;;
+11DA;HANGUL JONGSEONG MIEUM-KIYEOK;Lo;0;L;;;;;N;;;;;
+11DB;HANGUL JONGSEONG MIEUM-RIEUL;Lo;0;L;;;;;N;;;;;
+11DC;HANGUL JONGSEONG MIEUM-PIEUP;Lo;0;L;;;;;N;;;;;
+11DD;HANGUL JONGSEONG MIEUM-SIOS;Lo;0;L;;;;;N;;;;;
+11DE;HANGUL JONGSEONG MIEUM-SSANGSIOS;Lo;0;L;;;;;N;;;;;
+11DF;HANGUL JONGSEONG MIEUM-PANSIOS;Lo;0;L;;;;;N;;;;;
+11E0;HANGUL JONGSEONG MIEUM-CHIEUCH;Lo;0;L;;;;;N;;;;;
+11E1;HANGUL JONGSEONG MIEUM-HIEUH;Lo;0;L;;;;;N;;;;;
+11E2;HANGUL JONGSEONG KAPYEOUNMIEUM;Lo;0;L;;;;;N;;;;;
+11E3;HANGUL JONGSEONG PIEUP-RIEUL;Lo;0;L;;;;;N;;;;;
+11E4;HANGUL JONGSEONG PIEUP-PHIEUPH;Lo;0;L;;;;;N;;;;;
+11E5;HANGUL JONGSEONG PIEUP-HIEUH;Lo;0;L;;;;;N;;;;;
+11E6;HANGUL JONGSEONG KAPYEOUNPIEUP;Lo;0;L;;;;;N;;;;;
+11E7;HANGUL JONGSEONG SIOS-KIYEOK;Lo;0;L;;;;;N;;;;;
+11E8;HANGUL JONGSEONG SIOS-TIKEUT;Lo;0;L;;;;;N;;;;;
+11E9;HANGUL JONGSEONG SIOS-RIEUL;Lo;0;L;;;;;N;;;;;
+11EA;HANGUL JONGSEONG SIOS-PIEUP;Lo;0;L;;;;;N;;;;;
+11EB;HANGUL JONGSEONG PANSIOS;Lo;0;L;;;;;N;;;;;
+11EC;HANGUL JONGSEONG IEUNG-KIYEOK;Lo;0;L;;;;;N;;;;;
+11ED;HANGUL JONGSEONG IEUNG-SSANGKIYEOK;Lo;0;L;;;;;N;;;;;
+11EE;HANGUL JONGSEONG SSANGIEUNG;Lo;0;L;;;;;N;;;;;
+11EF;HANGUL JONGSEONG IEUNG-KHIEUKH;Lo;0;L;;;;;N;;;;;
+11F0;HANGUL JONGSEONG YESIEUNG;Lo;0;L;;;;;N;;;;;
+11F1;HANGUL JONGSEONG YESIEUNG-SIOS;Lo;0;L;;;;;N;;;;;
+11F2;HANGUL JONGSEONG YESIEUNG-PANSIOS;Lo;0;L;;;;;N;;;;;
+11F3;HANGUL JONGSEONG PHIEUPH-PIEUP;Lo;0;L;;;;;N;;;;;
+11F4;HANGUL JONGSEONG KAPYEOUNPHIEUPH;Lo;0;L;;;;;N;;;;;
+11F5;HANGUL JONGSEONG HIEUH-NIEUN;Lo;0;L;;;;;N;;;;;
+11F6;HANGUL JONGSEONG HIEUH-RIEUL;Lo;0;L;;;;;N;;;;;
+11F7;HANGUL JONGSEONG HIEUH-MIEUM;Lo;0;L;;;;;N;;;;;
+11F8;HANGUL JONGSEONG HIEUH-PIEUP;Lo;0;L;;;;;N;;;;;
+11F9;HANGUL JONGSEONG YEORINHIEUH;Lo;0;L;;;;;N;;;;;
+1200;ETHIOPIC SYLLABLE HA;Lo;0;L;;;;;N;;;;;
+1201;ETHIOPIC SYLLABLE HU;Lo;0;L;;;;;N;;;;;
+1202;ETHIOPIC SYLLABLE HI;Lo;0;L;;;;;N;;;;;
+1203;ETHIOPIC SYLLABLE HAA;Lo;0;L;;;;;N;;;;;
+1204;ETHIOPIC SYLLABLE HEE;Lo;0;L;;;;;N;;;;;
+1205;ETHIOPIC SYLLABLE HE;Lo;0;L;;;;;N;;;;;
+1206;ETHIOPIC SYLLABLE HO;Lo;0;L;;;;;N;;;;;
+1208;ETHIOPIC SYLLABLE LA;Lo;0;L;;;;;N;;;;;
+1209;ETHIOPIC SYLLABLE LU;Lo;0;L;;;;;N;;;;;
+120A;ETHIOPIC SYLLABLE LI;Lo;0;L;;;;;N;;;;;
+120B;ETHIOPIC SYLLABLE LAA;Lo;0;L;;;;;N;;;;;
+120C;ETHIOPIC SYLLABLE LEE;Lo;0;L;;;;;N;;;;;
+120D;ETHIOPIC SYLLABLE LE;Lo;0;L;;;;;N;;;;;
+120E;ETHIOPIC SYLLABLE LO;Lo;0;L;;;;;N;;;;;
+120F;ETHIOPIC SYLLABLE LWA;Lo;0;L;;;;;N;;;;;
+1210;ETHIOPIC SYLLABLE HHA;Lo;0;L;;;;;N;;;;;
+1211;ETHIOPIC SYLLABLE HHU;Lo;0;L;;;;;N;;;;;
+1212;ETHIOPIC SYLLABLE HHI;Lo;0;L;;;;;N;;;;;
+1213;ETHIOPIC SYLLABLE HHAA;Lo;0;L;;;;;N;;;;;
+1214;ETHIOPIC SYLLABLE HHEE;Lo;0;L;;;;;N;;;;;
+1215;ETHIOPIC SYLLABLE HHE;Lo;0;L;;;;;N;;;;;
+1216;ETHIOPIC SYLLABLE HHO;Lo;0;L;;;;;N;;;;;
+1217;ETHIOPIC SYLLABLE HHWA;Lo;0;L;;;;;N;;;;;
+1218;ETHIOPIC SYLLABLE MA;Lo;0;L;;;;;N;;;;;
+1219;ETHIOPIC SYLLABLE MU;Lo;0;L;;;;;N;;;;;
+121A;ETHIOPIC SYLLABLE MI;Lo;0;L;;;;;N;;;;;
+121B;ETHIOPIC SYLLABLE MAA;Lo;0;L;;;;;N;;;;;
+121C;ETHIOPIC SYLLABLE MEE;Lo;0;L;;;;;N;;;;;
+121D;ETHIOPIC SYLLABLE ME;Lo;0;L;;;;;N;;;;;
+121E;ETHIOPIC SYLLABLE MO;Lo;0;L;;;;;N;;;;;
+121F;ETHIOPIC SYLLABLE MWA;Lo;0;L;;;;;N;;;;;
+1220;ETHIOPIC SYLLABLE SZA;Lo;0;L;;;;;N;;;;;
+1221;ETHIOPIC SYLLABLE SZU;Lo;0;L;;;;;N;;;;;
+1222;ETHIOPIC SYLLABLE SZI;Lo;0;L;;;;;N;;;;;
+1223;ETHIOPIC SYLLABLE SZAA;Lo;0;L;;;;;N;;;;;
+1224;ETHIOPIC SYLLABLE SZEE;Lo;0;L;;;;;N;;;;;
+1225;ETHIOPIC SYLLABLE SZE;Lo;0;L;;;;;N;;;;;
+1226;ETHIOPIC SYLLABLE SZO;Lo;0;L;;;;;N;;;;;
+1227;ETHIOPIC SYLLABLE SZWA;Lo;0;L;;;;;N;;;;;
+1228;ETHIOPIC SYLLABLE RA;Lo;0;L;;;;;N;;;;;
+1229;ETHIOPIC SYLLABLE RU;Lo;0;L;;;;;N;;;;;
+122A;ETHIOPIC SYLLABLE RI;Lo;0;L;;;;;N;;;;;
+122B;ETHIOPIC SYLLABLE RAA;Lo;0;L;;;;;N;;;;;
+122C;ETHIOPIC SYLLABLE REE;Lo;0;L;;;;;N;;;;;
+122D;ETHIOPIC SYLLABLE RE;Lo;0;L;;;;;N;;;;;
+122E;ETHIOPIC SYLLABLE RO;Lo;0;L;;;;;N;;;;;
+122F;ETHIOPIC SYLLABLE RWA;Lo;0;L;;;;;N;;;;;
+1230;ETHIOPIC SYLLABLE SA;Lo;0;L;;;;;N;;;;;
+1231;ETHIOPIC SYLLABLE SU;Lo;0;L;;;;;N;;;;;
+1232;ETHIOPIC SYLLABLE SI;Lo;0;L;;;;;N;;;;;
+1233;ETHIOPIC SYLLABLE SAA;Lo;0;L;;;;;N;;;;;
+1234;ETHIOPIC SYLLABLE SEE;Lo;0;L;;;;;N;;;;;
+1235;ETHIOPIC SYLLABLE SE;Lo;0;L;;;;;N;;;;;
+1236;ETHIOPIC SYLLABLE SO;Lo;0;L;;;;;N;;;;;
+1237;ETHIOPIC SYLLABLE SWA;Lo;0;L;;;;;N;;;;;
+1238;ETHIOPIC SYLLABLE SHA;Lo;0;L;;;;;N;;;;;
+1239;ETHIOPIC SYLLABLE SHU;Lo;0;L;;;;;N;;;;;
+123A;ETHIOPIC SYLLABLE SHI;Lo;0;L;;;;;N;;;;;
+123B;ETHIOPIC SYLLABLE SHAA;Lo;0;L;;;;;N;;;;;
+123C;ETHIOPIC SYLLABLE SHEE;Lo;0;L;;;;;N;;;;;
+123D;ETHIOPIC SYLLABLE SHE;Lo;0;L;;;;;N;;;;;
+123E;ETHIOPIC SYLLABLE SHO;Lo;0;L;;;;;N;;;;;
+123F;ETHIOPIC SYLLABLE SHWA;Lo;0;L;;;;;N;;;;;
+1240;ETHIOPIC SYLLABLE QA;Lo;0;L;;;;;N;;;;;
+1241;ETHIOPIC SYLLABLE QU;Lo;0;L;;;;;N;;;;;
+1242;ETHIOPIC SYLLABLE QI;Lo;0;L;;;;;N;;;;;
+1243;ETHIOPIC SYLLABLE QAA;Lo;0;L;;;;;N;;;;;
+1244;ETHIOPIC SYLLABLE QEE;Lo;0;L;;;;;N;;;;;
+1245;ETHIOPIC SYLLABLE QE;Lo;0;L;;;;;N;;;;;
+1246;ETHIOPIC SYLLABLE QO;Lo;0;L;;;;;N;;;;;
+1248;ETHIOPIC SYLLABLE QWA;Lo;0;L;;;;;N;;;;;
+124A;ETHIOPIC SYLLABLE QWI;Lo;0;L;;;;;N;;;;;
+124B;ETHIOPIC SYLLABLE QWAA;Lo;0;L;;;;;N;;;;;
+124C;ETHIOPIC SYLLABLE QWEE;Lo;0;L;;;;;N;;;;;
+124D;ETHIOPIC SYLLABLE QWE;Lo;0;L;;;;;N;;;;;
+1250;ETHIOPIC SYLLABLE QHA;Lo;0;L;;;;;N;;;;;
+1251;ETHIOPIC SYLLABLE QHU;Lo;0;L;;;;;N;;;;;
+1252;ETHIOPIC SYLLABLE QHI;Lo;0;L;;;;;N;;;;;
+1253;ETHIOPIC SYLLABLE QHAA;Lo;0;L;;;;;N;;;;;
+1254;ETHIOPIC SYLLABLE QHEE;Lo;0;L;;;;;N;;;;;
+1255;ETHIOPIC SYLLABLE QHE;Lo;0;L;;;;;N;;;;;
+1256;ETHIOPIC SYLLABLE QHO;Lo;0;L;;;;;N;;;;;
+1258;ETHIOPIC SYLLABLE QHWA;Lo;0;L;;;;;N;;;;;
+125A;ETHIOPIC SYLLABLE QHWI;Lo;0;L;;;;;N;;;;;
+125B;ETHIOPIC SYLLABLE QHWAA;Lo;0;L;;;;;N;;;;;
+125C;ETHIOPIC SYLLABLE QHWEE;Lo;0;L;;;;;N;;;;;
+125D;ETHIOPIC SYLLABLE QHWE;Lo;0;L;;;;;N;;;;;
+1260;ETHIOPIC SYLLABLE BA;Lo;0;L;;;;;N;;;;;
+1261;ETHIOPIC SYLLABLE BU;Lo;0;L;;;;;N;;;;;
+1262;ETHIOPIC SYLLABLE BI;Lo;0;L;;;;;N;;;;;
+1263;ETHIOPIC SYLLABLE BAA;Lo;0;L;;;;;N;;;;;
+1264;ETHIOPIC SYLLABLE BEE;Lo;0;L;;;;;N;;;;;
+1265;ETHIOPIC SYLLABLE BE;Lo;0;L;;;;;N;;;;;
+1266;ETHIOPIC SYLLABLE BO;Lo;0;L;;;;;N;;;;;
+1267;ETHIOPIC SYLLABLE BWA;Lo;0;L;;;;;N;;;;;
+1268;ETHIOPIC SYLLABLE VA;Lo;0;L;;;;;N;;;;;
+1269;ETHIOPIC SYLLABLE VU;Lo;0;L;;;;;N;;;;;
+126A;ETHIOPIC SYLLABLE VI;Lo;0;L;;;;;N;;;;;
+126B;ETHIOPIC SYLLABLE VAA;Lo;0;L;;;;;N;;;;;
+126C;ETHIOPIC SYLLABLE VEE;Lo;0;L;;;;;N;;;;;
+126D;ETHIOPIC SYLLABLE VE;Lo;0;L;;;;;N;;;;;
+126E;ETHIOPIC SYLLABLE VO;Lo;0;L;;;;;N;;;;;
+126F;ETHIOPIC SYLLABLE VWA;Lo;0;L;;;;;N;;;;;
+1270;ETHIOPIC SYLLABLE TA;Lo;0;L;;;;;N;;;;;
+1271;ETHIOPIC SYLLABLE TU;Lo;0;L;;;;;N;;;;;
+1272;ETHIOPIC SYLLABLE TI;Lo;0;L;;;;;N;;;;;
+1273;ETHIOPIC SYLLABLE TAA;Lo;0;L;;;;;N;;;;;
+1274;ETHIOPIC SYLLABLE TEE;Lo;0;L;;;;;N;;;;;
+1275;ETHIOPIC SYLLABLE TE;Lo;0;L;;;;;N;;;;;
+1276;ETHIOPIC SYLLABLE TO;Lo;0;L;;;;;N;;;;;
+1277;ETHIOPIC SYLLABLE TWA;Lo;0;L;;;;;N;;;;;
+1278;ETHIOPIC SYLLABLE CA;Lo;0;L;;;;;N;;;;;
+1279;ETHIOPIC SYLLABLE CU;Lo;0;L;;;;;N;;;;;
+127A;ETHIOPIC SYLLABLE CI;Lo;0;L;;;;;N;;;;;
+127B;ETHIOPIC SYLLABLE CAA;Lo;0;L;;;;;N;;;;;
+127C;ETHIOPIC SYLLABLE CEE;Lo;0;L;;;;;N;;;;;
+127D;ETHIOPIC SYLLABLE CE;Lo;0;L;;;;;N;;;;;
+127E;ETHIOPIC SYLLABLE CO;Lo;0;L;;;;;N;;;;;
+127F;ETHIOPIC SYLLABLE CWA;Lo;0;L;;;;;N;;;;;
+1280;ETHIOPIC SYLLABLE XA;Lo;0;L;;;;;N;;;;;
+1281;ETHIOPIC SYLLABLE XU;Lo;0;L;;;;;N;;;;;
+1282;ETHIOPIC SYLLABLE XI;Lo;0;L;;;;;N;;;;;
+1283;ETHIOPIC SYLLABLE XAA;Lo;0;L;;;;;N;;;;;
+1284;ETHIOPIC SYLLABLE XEE;Lo;0;L;;;;;N;;;;;
+1285;ETHIOPIC SYLLABLE XE;Lo;0;L;;;;;N;;;;;
+1286;ETHIOPIC SYLLABLE XO;Lo;0;L;;;;;N;;;;;
+1288;ETHIOPIC SYLLABLE XWA;Lo;0;L;;;;;N;;;;;
+128A;ETHIOPIC SYLLABLE XWI;Lo;0;L;;;;;N;;;;;
+128B;ETHIOPIC SYLLABLE XWAA;Lo;0;L;;;;;N;;;;;
+128C;ETHIOPIC SYLLABLE XWEE;Lo;0;L;;;;;N;;;;;
+128D;ETHIOPIC SYLLABLE XWE;Lo;0;L;;;;;N;;;;;
+1290;ETHIOPIC SYLLABLE NA;Lo;0;L;;;;;N;;;;;
+1291;ETHIOPIC SYLLABLE NU;Lo;0;L;;;;;N;;;;;
+1292;ETHIOPIC SYLLABLE NI;Lo;0;L;;;;;N;;;;;
+1293;ETHIOPIC SYLLABLE NAA;Lo;0;L;;;;;N;;;;;
+1294;ETHIOPIC SYLLABLE NEE;Lo;0;L;;;;;N;;;;;
+1295;ETHIOPIC SYLLABLE NE;Lo;0;L;;;;;N;;;;;
+1296;ETHIOPIC SYLLABLE NO;Lo;0;L;;;;;N;;;;;
+1297;ETHIOPIC SYLLABLE NWA;Lo;0;L;;;;;N;;;;;
+1298;ETHIOPIC SYLLABLE NYA;Lo;0;L;;;;;N;;;;;
+1299;ETHIOPIC SYLLABLE NYU;Lo;0;L;;;;;N;;;;;
+129A;ETHIOPIC SYLLABLE NYI;Lo;0;L;;;;;N;;;;;
+129B;ETHIOPIC SYLLABLE NYAA;Lo;0;L;;;;;N;;;;;
+129C;ETHIOPIC SYLLABLE NYEE;Lo;0;L;;;;;N;;;;;
+129D;ETHIOPIC SYLLABLE NYE;Lo;0;L;;;;;N;;;;;
+129E;ETHIOPIC SYLLABLE NYO;Lo;0;L;;;;;N;;;;;
+129F;ETHIOPIC SYLLABLE NYWA;Lo;0;L;;;;;N;;;;;
+12A0;ETHIOPIC SYLLABLE GLOTTAL A;Lo;0;L;;;;;N;;;;;
+12A1;ETHIOPIC SYLLABLE GLOTTAL U;Lo;0;L;;;;;N;;;;;
+12A2;ETHIOPIC SYLLABLE GLOTTAL I;Lo;0;L;;;;;N;;;;;
+12A3;ETHIOPIC SYLLABLE GLOTTAL AA;Lo;0;L;;;;;N;;;;;
+12A4;ETHIOPIC SYLLABLE GLOTTAL EE;Lo;0;L;;;;;N;;;;;
+12A5;ETHIOPIC SYLLABLE GLOTTAL E;Lo;0;L;;;;;N;;;;;
+12A6;ETHIOPIC SYLLABLE GLOTTAL O;Lo;0;L;;;;;N;;;;;
+12A7;ETHIOPIC SYLLABLE GLOTTAL WA;Lo;0;L;;;;;N;;;;;
+12A8;ETHIOPIC SYLLABLE KA;Lo;0;L;;;;;N;;;;;
+12A9;ETHIOPIC SYLLABLE KU;Lo;0;L;;;;;N;;;;;
+12AA;ETHIOPIC SYLLABLE KI;Lo;0;L;;;;;N;;;;;
+12AB;ETHIOPIC SYLLABLE KAA;Lo;0;L;;;;;N;;;;;
+12AC;ETHIOPIC SYLLABLE KEE;Lo;0;L;;;;;N;;;;;
+12AD;ETHIOPIC SYLLABLE KE;Lo;0;L;;;;;N;;;;;
+12AE;ETHIOPIC SYLLABLE KO;Lo;0;L;;;;;N;;;;;
+12B0;ETHIOPIC SYLLABLE KWA;Lo;0;L;;;;;N;;;;;
+12B2;ETHIOPIC SYLLABLE KWI;Lo;0;L;;;;;N;;;;;
+12B3;ETHIOPIC SYLLABLE KWAA;Lo;0;L;;;;;N;;;;;
+12B4;ETHIOPIC SYLLABLE KWEE;Lo;0;L;;;;;N;;;;;
+12B5;ETHIOPIC SYLLABLE KWE;Lo;0;L;;;;;N;;;;;
+12B8;ETHIOPIC SYLLABLE KXA;Lo;0;L;;;;;N;;;;;
+12B9;ETHIOPIC SYLLABLE KXU;Lo;0;L;;;;;N;;;;;
+12BA;ETHIOPIC SYLLABLE KXI;Lo;0;L;;;;;N;;;;;
+12BB;ETHIOPIC SYLLABLE KXAA;Lo;0;L;;;;;N;;;;;
+12BC;ETHIOPIC SYLLABLE KXEE;Lo;0;L;;;;;N;;;;;
+12BD;ETHIOPIC SYLLABLE KXE;Lo;0;L;;;;;N;;;;;
+12BE;ETHIOPIC SYLLABLE KXO;Lo;0;L;;;;;N;;;;;
+12C0;ETHIOPIC SYLLABLE KXWA;Lo;0;L;;;;;N;;;;;
+12C2;ETHIOPIC SYLLABLE KXWI;Lo;0;L;;;;;N;;;;;
+12C3;ETHIOPIC SYLLABLE KXWAA;Lo;0;L;;;;;N;;;;;
+12C4;ETHIOPIC SYLLABLE KXWEE;Lo;0;L;;;;;N;;;;;
+12C5;ETHIOPIC SYLLABLE KXWE;Lo;0;L;;;;;N;;;;;
+12C8;ETHIOPIC SYLLABLE WA;Lo;0;L;;;;;N;;;;;
+12C9;ETHIOPIC SYLLABLE WU;Lo;0;L;;;;;N;;;;;
+12CA;ETHIOPIC SYLLABLE WI;Lo;0;L;;;;;N;;;;;
+12CB;ETHIOPIC SYLLABLE WAA;Lo;0;L;;;;;N;;;;;
+12CC;ETHIOPIC SYLLABLE WEE;Lo;0;L;;;;;N;;;;;
+12CD;ETHIOPIC SYLLABLE WE;Lo;0;L;;;;;N;;;;;
+12CE;ETHIOPIC SYLLABLE WO;Lo;0;L;;;;;N;;;;;
+12D0;ETHIOPIC SYLLABLE PHARYNGEAL A;Lo;0;L;;;;;N;;;;;
+12D1;ETHIOPIC SYLLABLE PHARYNGEAL U;Lo;0;L;;;;;N;;;;;
+12D2;ETHIOPIC SYLLABLE PHARYNGEAL I;Lo;0;L;;;;;N;;;;;
+12D3;ETHIOPIC SYLLABLE PHARYNGEAL AA;Lo;0;L;;;;;N;;;;;
+12D4;ETHIOPIC SYLLABLE PHARYNGEAL EE;Lo;0;L;;;;;N;;;;;
+12D5;ETHIOPIC SYLLABLE PHARYNGEAL E;Lo;0;L;;;;;N;;;;;
+12D6;ETHIOPIC SYLLABLE PHARYNGEAL O;Lo;0;L;;;;;N;;;;;
+12D8;ETHIOPIC SYLLABLE ZA;Lo;0;L;;;;;N;;;;;
+12D9;ETHIOPIC SYLLABLE ZU;Lo;0;L;;;;;N;;;;;
+12DA;ETHIOPIC SYLLABLE ZI;Lo;0;L;;;;;N;;;;;
+12DB;ETHIOPIC SYLLABLE ZAA;Lo;0;L;;;;;N;;;;;
+12DC;ETHIOPIC SYLLABLE ZEE;Lo;0;L;;;;;N;;;;;
+12DD;ETHIOPIC SYLLABLE ZE;Lo;0;L;;;;;N;;;;;
+12DE;ETHIOPIC SYLLABLE ZO;Lo;0;L;;;;;N;;;;;
+12DF;ETHIOPIC SYLLABLE ZWA;Lo;0;L;;;;;N;;;;;
+12E0;ETHIOPIC SYLLABLE ZHA;Lo;0;L;;;;;N;;;;;
+12E1;ETHIOPIC SYLLABLE ZHU;Lo;0;L;;;;;N;;;;;
+12E2;ETHIOPIC SYLLABLE ZHI;Lo;0;L;;;;;N;;;;;
+12E3;ETHIOPIC SYLLABLE ZHAA;Lo;0;L;;;;;N;;;;;
+12E4;ETHIOPIC SYLLABLE ZHEE;Lo;0;L;;;;;N;;;;;
+12E5;ETHIOPIC SYLLABLE ZHE;Lo;0;L;;;;;N;;;;;
+12E6;ETHIOPIC SYLLABLE ZHO;Lo;0;L;;;;;N;;;;;
+12E7;ETHIOPIC SYLLABLE ZHWA;Lo;0;L;;;;;N;;;;;
+12E8;ETHIOPIC SYLLABLE YA;Lo;0;L;;;;;N;;;;;
+12E9;ETHIOPIC SYLLABLE YU;Lo;0;L;;;;;N;;;;;
+12EA;ETHIOPIC SYLLABLE YI;Lo;0;L;;;;;N;;;;;
+12EB;ETHIOPIC SYLLABLE YAA;Lo;0;L;;;;;N;;;;;
+12EC;ETHIOPIC SYLLABLE YEE;Lo;0;L;;;;;N;;;;;
+12ED;ETHIOPIC SYLLABLE YE;Lo;0;L;;;;;N;;;;;
+12EE;ETHIOPIC SYLLABLE YO;Lo;0;L;;;;;N;;;;;
+12F0;ETHIOPIC SYLLABLE DA;Lo;0;L;;;;;N;;;;;
+12F1;ETHIOPIC SYLLABLE DU;Lo;0;L;;;;;N;;;;;
+12F2;ETHIOPIC SYLLABLE DI;Lo;0;L;;;;;N;;;;;
+12F3;ETHIOPIC SYLLABLE DAA;Lo;0;L;;;;;N;;;;;
+12F4;ETHIOPIC SYLLABLE DEE;Lo;0;L;;;;;N;;;;;
+12F5;ETHIOPIC SYLLABLE DE;Lo;0;L;;;;;N;;;;;
+12F6;ETHIOPIC SYLLABLE DO;Lo;0;L;;;;;N;;;;;
+12F7;ETHIOPIC SYLLABLE DWA;Lo;0;L;;;;;N;;;;;
+12F8;ETHIOPIC SYLLABLE DDA;Lo;0;L;;;;;N;;;;;
+12F9;ETHIOPIC SYLLABLE DDU;Lo;0;L;;;;;N;;;;;
+12FA;ETHIOPIC SYLLABLE DDI;Lo;0;L;;;;;N;;;;;
+12FB;ETHIOPIC SYLLABLE DDAA;Lo;0;L;;;;;N;;;;;
+12FC;ETHIOPIC SYLLABLE DDEE;Lo;0;L;;;;;N;;;;;
+12FD;ETHIOPIC SYLLABLE DDE;Lo;0;L;;;;;N;;;;;
+12FE;ETHIOPIC SYLLABLE DDO;Lo;0;L;;;;;N;;;;;
+12FF;ETHIOPIC SYLLABLE DDWA;Lo;0;L;;;;;N;;;;;
+1300;ETHIOPIC SYLLABLE JA;Lo;0;L;;;;;N;;;;;
+1301;ETHIOPIC SYLLABLE JU;Lo;0;L;;;;;N;;;;;
+1302;ETHIOPIC SYLLABLE JI;Lo;0;L;;;;;N;;;;;
+1303;ETHIOPIC SYLLABLE JAA;Lo;0;L;;;;;N;;;;;
+1304;ETHIOPIC SYLLABLE JEE;Lo;0;L;;;;;N;;;;;
+1305;ETHIOPIC SYLLABLE JE;Lo;0;L;;;;;N;;;;;
+1306;ETHIOPIC SYLLABLE JO;Lo;0;L;;;;;N;;;;;
+1307;ETHIOPIC SYLLABLE JWA;Lo;0;L;;;;;N;;;;;
+1308;ETHIOPIC SYLLABLE GA;Lo;0;L;;;;;N;;;;;
+1309;ETHIOPIC SYLLABLE GU;Lo;0;L;;;;;N;;;;;
+130A;ETHIOPIC SYLLABLE GI;Lo;0;L;;;;;N;;;;;
+130B;ETHIOPIC SYLLABLE GAA;Lo;0;L;;;;;N;;;;;
+130C;ETHIOPIC SYLLABLE GEE;Lo;0;L;;;;;N;;;;;
+130D;ETHIOPIC SYLLABLE GE;Lo;0;L;;;;;N;;;;;
+130E;ETHIOPIC SYLLABLE GO;Lo;0;L;;;;;N;;;;;
+1310;ETHIOPIC SYLLABLE GWA;Lo;0;L;;;;;N;;;;;
+1312;ETHIOPIC SYLLABLE GWI;Lo;0;L;;;;;N;;;;;
+1313;ETHIOPIC SYLLABLE GWAA;Lo;0;L;;;;;N;;;;;
+1314;ETHIOPIC SYLLABLE GWEE;Lo;0;L;;;;;N;;;;;
+1315;ETHIOPIC SYLLABLE GWE;Lo;0;L;;;;;N;;;;;
+1318;ETHIOPIC SYLLABLE GGA;Lo;0;L;;;;;N;;;;;
+1319;ETHIOPIC SYLLABLE GGU;Lo;0;L;;;;;N;;;;;
+131A;ETHIOPIC SYLLABLE GGI;Lo;0;L;;;;;N;;;;;
+131B;ETHIOPIC SYLLABLE GGAA;Lo;0;L;;;;;N;;;;;
+131C;ETHIOPIC SYLLABLE GGEE;Lo;0;L;;;;;N;;;;;
+131D;ETHIOPIC SYLLABLE GGE;Lo;0;L;;;;;N;;;;;
+131E;ETHIOPIC SYLLABLE GGO;Lo;0;L;;;;;N;;;;;
+1320;ETHIOPIC SYLLABLE THA;Lo;0;L;;;;;N;;;;;
+1321;ETHIOPIC SYLLABLE THU;Lo;0;L;;;;;N;;;;;
+1322;ETHIOPIC SYLLABLE THI;Lo;0;L;;;;;N;;;;;
+1323;ETHIOPIC SYLLABLE THAA;Lo;0;L;;;;;N;;;;;
+1324;ETHIOPIC SYLLABLE THEE;Lo;0;L;;;;;N;;;;;
+1325;ETHIOPIC SYLLABLE THE;Lo;0;L;;;;;N;;;;;
+1326;ETHIOPIC SYLLABLE THO;Lo;0;L;;;;;N;;;;;
+1327;ETHIOPIC SYLLABLE THWA;Lo;0;L;;;;;N;;;;;
+1328;ETHIOPIC SYLLABLE CHA;Lo;0;L;;;;;N;;;;;
+1329;ETHIOPIC SYLLABLE CHU;Lo;0;L;;;;;N;;;;;
+132A;ETHIOPIC SYLLABLE CHI;Lo;0;L;;;;;N;;;;;
+132B;ETHIOPIC SYLLABLE CHAA;Lo;0;L;;;;;N;;;;;
+132C;ETHIOPIC SYLLABLE CHEE;Lo;0;L;;;;;N;;;;;
+132D;ETHIOPIC SYLLABLE CHE;Lo;0;L;;;;;N;;;;;
+132E;ETHIOPIC SYLLABLE CHO;Lo;0;L;;;;;N;;;;;
+132F;ETHIOPIC SYLLABLE CHWA;Lo;0;L;;;;;N;;;;;
+1330;ETHIOPIC SYLLABLE PHA;Lo;0;L;;;;;N;;;;;
+1331;ETHIOPIC SYLLABLE PHU;Lo;0;L;;;;;N;;;;;
+1332;ETHIOPIC SYLLABLE PHI;Lo;0;L;;;;;N;;;;;
+1333;ETHIOPIC SYLLABLE PHAA;Lo;0;L;;;;;N;;;;;
+1334;ETHIOPIC SYLLABLE PHEE;Lo;0;L;;;;;N;;;;;
+1335;ETHIOPIC SYLLABLE PHE;Lo;0;L;;;;;N;;;;;
+1336;ETHIOPIC SYLLABLE PHO;Lo;0;L;;;;;N;;;;;
+1337;ETHIOPIC SYLLABLE PHWA;Lo;0;L;;;;;N;;;;;
+1338;ETHIOPIC SYLLABLE TSA;Lo;0;L;;;;;N;;;;;
+1339;ETHIOPIC SYLLABLE TSU;Lo;0;L;;;;;N;;;;;
+133A;ETHIOPIC SYLLABLE TSI;Lo;0;L;;;;;N;;;;;
+133B;ETHIOPIC SYLLABLE TSAA;Lo;0;L;;;;;N;;;;;
+133C;ETHIOPIC SYLLABLE TSEE;Lo;0;L;;;;;N;;;;;
+133D;ETHIOPIC SYLLABLE TSE;Lo;0;L;;;;;N;;;;;
+133E;ETHIOPIC SYLLABLE TSO;Lo;0;L;;;;;N;;;;;
+133F;ETHIOPIC SYLLABLE TSWA;Lo;0;L;;;;;N;;;;;
+1340;ETHIOPIC SYLLABLE TZA;Lo;0;L;;;;;N;;;;;
+1341;ETHIOPIC SYLLABLE TZU;Lo;0;L;;;;;N;;;;;
+1342;ETHIOPIC SYLLABLE TZI;Lo;0;L;;;;;N;;;;;
+1343;ETHIOPIC SYLLABLE TZAA;Lo;0;L;;;;;N;;;;;
+1344;ETHIOPIC SYLLABLE TZEE;Lo;0;L;;;;;N;;;;;
+1345;ETHIOPIC SYLLABLE TZE;Lo;0;L;;;;;N;;;;;
+1346;ETHIOPIC SYLLABLE TZO;Lo;0;L;;;;;N;;;;;
+1348;ETHIOPIC SYLLABLE FA;Lo;0;L;;;;;N;;;;;
+1349;ETHIOPIC SYLLABLE FU;Lo;0;L;;;;;N;;;;;
+134A;ETHIOPIC SYLLABLE FI;Lo;0;L;;;;;N;;;;;
+134B;ETHIOPIC SYLLABLE FAA;Lo;0;L;;;;;N;;;;;
+134C;ETHIOPIC SYLLABLE FEE;Lo;0;L;;;;;N;;;;;
+134D;ETHIOPIC SYLLABLE FE;Lo;0;L;;;;;N;;;;;
+134E;ETHIOPIC SYLLABLE FO;Lo;0;L;;;;;N;;;;;
+134F;ETHIOPIC SYLLABLE FWA;Lo;0;L;;;;;N;;;;;
+1350;ETHIOPIC SYLLABLE PA;Lo;0;L;;;;;N;;;;;
+1351;ETHIOPIC SYLLABLE PU;Lo;0;L;;;;;N;;;;;
+1352;ETHIOPIC SYLLABLE PI;Lo;0;L;;;;;N;;;;;
+1353;ETHIOPIC SYLLABLE PAA;Lo;0;L;;;;;N;;;;;
+1354;ETHIOPIC SYLLABLE PEE;Lo;0;L;;;;;N;;;;;
+1355;ETHIOPIC SYLLABLE PE;Lo;0;L;;;;;N;;;;;
+1356;ETHIOPIC SYLLABLE PO;Lo;0;L;;;;;N;;;;;
+1357;ETHIOPIC SYLLABLE PWA;Lo;0;L;;;;;N;;;;;
+1358;ETHIOPIC SYLLABLE RYA;Lo;0;L;;;;;N;;;;;
+1359;ETHIOPIC SYLLABLE MYA;Lo;0;L;;;;;N;;;;;
+135A;ETHIOPIC SYLLABLE FYA;Lo;0;L;;;;;N;;;;;
+1361;ETHIOPIC WORDSPACE;Po;0;L;;;;;N;;;;;
+1362;ETHIOPIC FULL STOP;Po;0;L;;;;;N;;;;;
+1363;ETHIOPIC COMMA;Po;0;L;;;;;N;;;;;
+1364;ETHIOPIC SEMICOLON;Po;0;L;;;;;N;;;;;
+1365;ETHIOPIC COLON;Po;0;L;;;;;N;;;;;
+1366;ETHIOPIC PREFACE COLON;Po;0;L;;;;;N;;;;;
+1367;ETHIOPIC QUESTION MARK;Po;0;L;;;;;N;;;;;
+1368;ETHIOPIC PARAGRAPH SEPARATOR;Po;0;L;;;;;N;;;;;
+1369;ETHIOPIC DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+136A;ETHIOPIC DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+136B;ETHIOPIC DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+136C;ETHIOPIC DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+136D;ETHIOPIC DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+136E;ETHIOPIC DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+136F;ETHIOPIC DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+1370;ETHIOPIC DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+1371;ETHIOPIC DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+1372;ETHIOPIC NUMBER TEN;No;0;L;;;;10;N;;;;;
+1373;ETHIOPIC NUMBER TWENTY;No;0;L;;;;20;N;;;;;
+1374;ETHIOPIC NUMBER THIRTY;No;0;L;;;;30;N;;;;;
+1375;ETHIOPIC NUMBER FORTY;No;0;L;;;;40;N;;;;;
+1376;ETHIOPIC NUMBER FIFTY;No;0;L;;;;50;N;;;;;
+1377;ETHIOPIC NUMBER SIXTY;No;0;L;;;;60;N;;;;;
+1378;ETHIOPIC NUMBER SEVENTY;No;0;L;;;;70;N;;;;;
+1379;ETHIOPIC NUMBER EIGHTY;No;0;L;;;;80;N;;;;;
+137A;ETHIOPIC NUMBER NINETY;No;0;L;;;;90;N;;;;;
+137B;ETHIOPIC NUMBER HUNDRED;No;0;L;;;;100;N;;;;;
+137C;ETHIOPIC NUMBER TEN THOUSAND;No;0;L;;;;10000;N;;;;;
+13A0;CHEROKEE LETTER A;Lo;0;L;;;;;N;;;;;
+13A1;CHEROKEE LETTER E;Lo;0;L;;;;;N;;;;;
+13A2;CHEROKEE LETTER I;Lo;0;L;;;;;N;;;;;
+13A3;CHEROKEE LETTER O;Lo;0;L;;;;;N;;;;;
+13A4;CHEROKEE LETTER U;Lo;0;L;;;;;N;;;;;
+13A5;CHEROKEE LETTER V;Lo;0;L;;;;;N;;;;;
+13A6;CHEROKEE LETTER GA;Lo;0;L;;;;;N;;;;;
+13A7;CHEROKEE LETTER KA;Lo;0;L;;;;;N;;;;;
+13A8;CHEROKEE LETTER GE;Lo;0;L;;;;;N;;;;;
+13A9;CHEROKEE LETTER GI;Lo;0;L;;;;;N;;;;;
+13AA;CHEROKEE LETTER GO;Lo;0;L;;;;;N;;;;;
+13AB;CHEROKEE LETTER GU;Lo;0;L;;;;;N;;;;;
+13AC;CHEROKEE LETTER GV;Lo;0;L;;;;;N;;;;;
+13AD;CHEROKEE LETTER HA;Lo;0;L;;;;;N;;;;;
+13AE;CHEROKEE LETTER HE;Lo;0;L;;;;;N;;;;;
+13AF;CHEROKEE LETTER HI;Lo;0;L;;;;;N;;;;;
+13B0;CHEROKEE LETTER HO;Lo;0;L;;;;;N;;;;;
+13B1;CHEROKEE LETTER HU;Lo;0;L;;;;;N;;;;;
+13B2;CHEROKEE LETTER HV;Lo;0;L;;;;;N;;;;;
+13B3;CHEROKEE LETTER LA;Lo;0;L;;;;;N;;;;;
+13B4;CHEROKEE LETTER LE;Lo;0;L;;;;;N;;;;;
+13B5;CHEROKEE LETTER LI;Lo;0;L;;;;;N;;;;;
+13B6;CHEROKEE LETTER LO;Lo;0;L;;;;;N;;;;;
+13B7;CHEROKEE LETTER LU;Lo;0;L;;;;;N;;;;;
+13B8;CHEROKEE LETTER LV;Lo;0;L;;;;;N;;;;;
+13B9;CHEROKEE LETTER MA;Lo;0;L;;;;;N;;;;;
+13BA;CHEROKEE LETTER ME;Lo;0;L;;;;;N;;;;;
+13BB;CHEROKEE LETTER MI;Lo;0;L;;;;;N;;;;;
+13BC;CHEROKEE LETTER MO;Lo;0;L;;;;;N;;;;;
+13BD;CHEROKEE LETTER MU;Lo;0;L;;;;;N;;;;;
+13BE;CHEROKEE LETTER NA;Lo;0;L;;;;;N;;;;;
+13BF;CHEROKEE LETTER HNA;Lo;0;L;;;;;N;;;;;
+13C0;CHEROKEE LETTER NAH;Lo;0;L;;;;;N;;;;;
+13C1;CHEROKEE LETTER NE;Lo;0;L;;;;;N;;;;;
+13C2;CHEROKEE LETTER NI;Lo;0;L;;;;;N;;;;;
+13C3;CHEROKEE LETTER NO;Lo;0;L;;;;;N;;;;;
+13C4;CHEROKEE LETTER NU;Lo;0;L;;;;;N;;;;;
+13C5;CHEROKEE LETTER NV;Lo;0;L;;;;;N;;;;;
+13C6;CHEROKEE LETTER QUA;Lo;0;L;;;;;N;;;;;
+13C7;CHEROKEE LETTER QUE;Lo;0;L;;;;;N;;;;;
+13C8;CHEROKEE LETTER QUI;Lo;0;L;;;;;N;;;;;
+13C9;CHEROKEE LETTER QUO;Lo;0;L;;;;;N;;;;;
+13CA;CHEROKEE LETTER QUU;Lo;0;L;;;;;N;;;;;
+13CB;CHEROKEE LETTER QUV;Lo;0;L;;;;;N;;;;;
+13CC;CHEROKEE LETTER SA;Lo;0;L;;;;;N;;;;;
+13CD;CHEROKEE LETTER S;Lo;0;L;;;;;N;;;;;
+13CE;CHEROKEE LETTER SE;Lo;0;L;;;;;N;;;;;
+13CF;CHEROKEE LETTER SI;Lo;0;L;;;;;N;;;;;
+13D0;CHEROKEE LETTER SO;Lo;0;L;;;;;N;;;;;
+13D1;CHEROKEE LETTER SU;Lo;0;L;;;;;N;;;;;
+13D2;CHEROKEE LETTER SV;Lo;0;L;;;;;N;;;;;
+13D3;CHEROKEE LETTER DA;Lo;0;L;;;;;N;;;;;
+13D4;CHEROKEE LETTER TA;Lo;0;L;;;;;N;;;;;
+13D5;CHEROKEE LETTER DE;Lo;0;L;;;;;N;;;;;
+13D6;CHEROKEE LETTER TE;Lo;0;L;;;;;N;;;;;
+13D7;CHEROKEE LETTER DI;Lo;0;L;;;;;N;;;;;
+13D8;CHEROKEE LETTER TI;Lo;0;L;;;;;N;;;;;
+13D9;CHEROKEE LETTER DO;Lo;0;L;;;;;N;;;;;
+13DA;CHEROKEE LETTER DU;Lo;0;L;;;;;N;;;;;
+13DB;CHEROKEE LETTER DV;Lo;0;L;;;;;N;;;;;
+13DC;CHEROKEE LETTER DLA;Lo;0;L;;;;;N;;;;;
+13DD;CHEROKEE LETTER TLA;Lo;0;L;;;;;N;;;;;
+13DE;CHEROKEE LETTER TLE;Lo;0;L;;;;;N;;;;;
+13DF;CHEROKEE LETTER TLI;Lo;0;L;;;;;N;;;;;
+13E0;CHEROKEE LETTER TLO;Lo;0;L;;;;;N;;;;;
+13E1;CHEROKEE LETTER TLU;Lo;0;L;;;;;N;;;;;
+13E2;CHEROKEE LETTER TLV;Lo;0;L;;;;;N;;;;;
+13E3;CHEROKEE LETTER TSA;Lo;0;L;;;;;N;;;;;
+13E4;CHEROKEE LETTER TSE;Lo;0;L;;;;;N;;;;;
+13E5;CHEROKEE LETTER TSI;Lo;0;L;;;;;N;;;;;
+13E6;CHEROKEE LETTER TSO;Lo;0;L;;;;;N;;;;;
+13E7;CHEROKEE LETTER TSU;Lo;0;L;;;;;N;;;;;
+13E8;CHEROKEE LETTER TSV;Lo;0;L;;;;;N;;;;;
+13E9;CHEROKEE LETTER WA;Lo;0;L;;;;;N;;;;;
+13EA;CHEROKEE LETTER WE;Lo;0;L;;;;;N;;;;;
+13EB;CHEROKEE LETTER WI;Lo;0;L;;;;;N;;;;;
+13EC;CHEROKEE LETTER WO;Lo;0;L;;;;;N;;;;;
+13ED;CHEROKEE LETTER WU;Lo;0;L;;;;;N;;;;;
+13EE;CHEROKEE LETTER WV;Lo;0;L;;;;;N;;;;;
+13EF;CHEROKEE LETTER YA;Lo;0;L;;;;;N;;;;;
+13F0;CHEROKEE LETTER YE;Lo;0;L;;;;;N;;;;;
+13F1;CHEROKEE LETTER YI;Lo;0;L;;;;;N;;;;;
+13F2;CHEROKEE LETTER YO;Lo;0;L;;;;;N;;;;;
+13F3;CHEROKEE LETTER YU;Lo;0;L;;;;;N;;;;;
+13F4;CHEROKEE LETTER YV;Lo;0;L;;;;;N;;;;;
+1401;CANADIAN SYLLABICS E;Lo;0;L;;;;;N;;;;;
+1402;CANADIAN SYLLABICS AAI;Lo;0;L;;;;;N;;;;;
+1403;CANADIAN SYLLABICS I;Lo;0;L;;;;;N;;;;;
+1404;CANADIAN SYLLABICS II;Lo;0;L;;;;;N;;;;;
+1405;CANADIAN SYLLABICS O;Lo;0;L;;;;;N;;;;;
+1406;CANADIAN SYLLABICS OO;Lo;0;L;;;;;N;;;;;
+1407;CANADIAN SYLLABICS Y-CREE OO;Lo;0;L;;;;;N;;;;;
+1408;CANADIAN SYLLABICS CARRIER EE;Lo;0;L;;;;;N;;;;;
+1409;CANADIAN SYLLABICS CARRIER I;Lo;0;L;;;;;N;;;;;
+140A;CANADIAN SYLLABICS A;Lo;0;L;;;;;N;;;;;
+140B;CANADIAN SYLLABICS AA;Lo;0;L;;;;;N;;;;;
+140C;CANADIAN SYLLABICS WE;Lo;0;L;;;;;N;;;;;
+140D;CANADIAN SYLLABICS WEST-CREE WE;Lo;0;L;;;;;N;;;;;
+140E;CANADIAN SYLLABICS WI;Lo;0;L;;;;;N;;;;;
+140F;CANADIAN SYLLABICS WEST-CREE WI;Lo;0;L;;;;;N;;;;;
+1410;CANADIAN SYLLABICS WII;Lo;0;L;;;;;N;;;;;
+1411;CANADIAN SYLLABICS WEST-CREE WII;Lo;0;L;;;;;N;;;;;
+1412;CANADIAN SYLLABICS WO;Lo;0;L;;;;;N;;;;;
+1413;CANADIAN SYLLABICS WEST-CREE WO;Lo;0;L;;;;;N;;;;;
+1414;CANADIAN SYLLABICS WOO;Lo;0;L;;;;;N;;;;;
+1415;CANADIAN SYLLABICS WEST-CREE WOO;Lo;0;L;;;;;N;;;;;
+1416;CANADIAN SYLLABICS NASKAPI WOO;Lo;0;L;;;;;N;;;;;
+1417;CANADIAN SYLLABICS WA;Lo;0;L;;;;;N;;;;;
+1418;CANADIAN SYLLABICS WEST-CREE WA;Lo;0;L;;;;;N;;;;;
+1419;CANADIAN SYLLABICS WAA;Lo;0;L;;;;;N;;;;;
+141A;CANADIAN SYLLABICS WEST-CREE WAA;Lo;0;L;;;;;N;;;;;
+141B;CANADIAN SYLLABICS NASKAPI WAA;Lo;0;L;;;;;N;;;;;
+141C;CANADIAN SYLLABICS AI;Lo;0;L;;;;;N;;;;;
+141D;CANADIAN SYLLABICS Y-CREE W;Lo;0;L;;;;;N;;;;;
+141E;CANADIAN SYLLABICS GLOTTAL STOP;Lo;0;L;;;;;N;;;;;
+141F;CANADIAN SYLLABICS FINAL ACUTE;Lo;0;L;;;;;N;;;;;
+1420;CANADIAN SYLLABICS FINAL GRAVE;Lo;0;L;;;;;N;;;;;
+1421;CANADIAN SYLLABICS FINAL BOTTOM HALF RING;Lo;0;L;;;;;N;;;;;
+1422;CANADIAN SYLLABICS FINAL TOP HALF RING;Lo;0;L;;;;;N;;;;;
+1423;CANADIAN SYLLABICS FINAL RIGHT HALF RING;Lo;0;L;;;;;N;;;;;
+1424;CANADIAN SYLLABICS FINAL RING;Lo;0;L;;;;;N;;;;;
+1425;CANADIAN SYLLABICS FINAL DOUBLE ACUTE;Lo;0;L;;;;;N;;;;;
+1426;CANADIAN SYLLABICS FINAL DOUBLE SHORT VERTICAL STROKES;Lo;0;L;;;;;N;;;;;
+1427;CANADIAN SYLLABICS FINAL MIDDLE DOT;Lo;0;L;;;;;N;;;;;
+1428;CANADIAN SYLLABICS FINAL SHORT HORIZONTAL STROKE;Lo;0;L;;;;;N;;;;;
+1429;CANADIAN SYLLABICS FINAL PLUS;Lo;0;L;;;;;N;;;;;
+142A;CANADIAN SYLLABICS FINAL DOWN TACK;Lo;0;L;;;;;N;;;;;
+142B;CANADIAN SYLLABICS EN;Lo;0;L;;;;;N;;;;;
+142C;CANADIAN SYLLABICS IN;Lo;0;L;;;;;N;;;;;
+142D;CANADIAN SYLLABICS ON;Lo;0;L;;;;;N;;;;;
+142E;CANADIAN SYLLABICS AN;Lo;0;L;;;;;N;;;;;
+142F;CANADIAN SYLLABICS PE;Lo;0;L;;;;;N;;;;;
+1430;CANADIAN SYLLABICS PAAI;Lo;0;L;;;;;N;;;;;
+1431;CANADIAN SYLLABICS PI;Lo;0;L;;;;;N;;;;;
+1432;CANADIAN SYLLABICS PII;Lo;0;L;;;;;N;;;;;
+1433;CANADIAN SYLLABICS PO;Lo;0;L;;;;;N;;;;;
+1434;CANADIAN SYLLABICS POO;Lo;0;L;;;;;N;;;;;
+1435;CANADIAN SYLLABICS Y-CREE POO;Lo;0;L;;;;;N;;;;;
+1436;CANADIAN SYLLABICS CARRIER HEE;Lo;0;L;;;;;N;;;;;
+1437;CANADIAN SYLLABICS CARRIER HI;Lo;0;L;;;;;N;;;;;
+1438;CANADIAN SYLLABICS PA;Lo;0;L;;;;;N;;;;;
+1439;CANADIAN SYLLABICS PAA;Lo;0;L;;;;;N;;;;;
+143A;CANADIAN SYLLABICS PWE;Lo;0;L;;;;;N;;;;;
+143B;CANADIAN SYLLABICS WEST-CREE PWE;Lo;0;L;;;;;N;;;;;
+143C;CANADIAN SYLLABICS PWI;Lo;0;L;;;;;N;;;;;
+143D;CANADIAN SYLLABICS WEST-CREE PWI;Lo;0;L;;;;;N;;;;;
+143E;CANADIAN SYLLABICS PWII;Lo;0;L;;;;;N;;;;;
+143F;CANADIAN SYLLABICS WEST-CREE PWII;Lo;0;L;;;;;N;;;;;
+1440;CANADIAN SYLLABICS PWO;Lo;0;L;;;;;N;;;;;
+1441;CANADIAN SYLLABICS WEST-CREE PWO;Lo;0;L;;;;;N;;;;;
+1442;CANADIAN SYLLABICS PWOO;Lo;0;L;;;;;N;;;;;
+1443;CANADIAN SYLLABICS WEST-CREE PWOO;Lo;0;L;;;;;N;;;;;
+1444;CANADIAN SYLLABICS PWA;Lo;0;L;;;;;N;;;;;
+1445;CANADIAN SYLLABICS WEST-CREE PWA;Lo;0;L;;;;;N;;;;;
+1446;CANADIAN SYLLABICS PWAA;Lo;0;L;;;;;N;;;;;
+1447;CANADIAN SYLLABICS WEST-CREE PWAA;Lo;0;L;;;;;N;;;;;
+1448;CANADIAN SYLLABICS Y-CREE PWAA;Lo;0;L;;;;;N;;;;;
+1449;CANADIAN SYLLABICS P;Lo;0;L;;;;;N;;;;;
+144A;CANADIAN SYLLABICS WEST-CREE P;Lo;0;L;;;;;N;;;;;
+144B;CANADIAN SYLLABICS CARRIER H;Lo;0;L;;;;;N;;;;;
+144C;CANADIAN SYLLABICS TE;Lo;0;L;;;;;N;;;;;
+144D;CANADIAN SYLLABICS TAAI;Lo;0;L;;;;;N;;;;;
+144E;CANADIAN SYLLABICS TI;Lo;0;L;;;;;N;;;;;
+144F;CANADIAN SYLLABICS TII;Lo;0;L;;;;;N;;;;;
+1450;CANADIAN SYLLABICS TO;Lo;0;L;;;;;N;;;;;
+1451;CANADIAN SYLLABICS TOO;Lo;0;L;;;;;N;;;;;
+1452;CANADIAN SYLLABICS Y-CREE TOO;Lo;0;L;;;;;N;;;;;
+1453;CANADIAN SYLLABICS CARRIER DEE;Lo;0;L;;;;;N;;;;;
+1454;CANADIAN SYLLABICS CARRIER DI;Lo;0;L;;;;;N;;;;;
+1455;CANADIAN SYLLABICS TA;Lo;0;L;;;;;N;;;;;
+1456;CANADIAN SYLLABICS TAA;Lo;0;L;;;;;N;;;;;
+1457;CANADIAN SYLLABICS TWE;Lo;0;L;;;;;N;;;;;
+1458;CANADIAN SYLLABICS WEST-CREE TWE;Lo;0;L;;;;;N;;;;;
+1459;CANADIAN SYLLABICS TWI;Lo;0;L;;;;;N;;;;;
+145A;CANADIAN SYLLABICS WEST-CREE TWI;Lo;0;L;;;;;N;;;;;
+145B;CANADIAN SYLLABICS TWII;Lo;0;L;;;;;N;;;;;
+145C;CANADIAN SYLLABICS WEST-CREE TWII;Lo;0;L;;;;;N;;;;;
+145D;CANADIAN SYLLABICS TWO;Lo;0;L;;;;;N;;;;;
+145E;CANADIAN SYLLABICS WEST-CREE TWO;Lo;0;L;;;;;N;;;;;
+145F;CANADIAN SYLLABICS TWOO;Lo;0;L;;;;;N;;;;;
+1460;CANADIAN SYLLABICS WEST-CREE TWOO;Lo;0;L;;;;;N;;;;;
+1461;CANADIAN SYLLABICS TWA;Lo;0;L;;;;;N;;;;;
+1462;CANADIAN SYLLABICS WEST-CREE TWA;Lo;0;L;;;;;N;;;;;
+1463;CANADIAN SYLLABICS TWAA;Lo;0;L;;;;;N;;;;;
+1464;CANADIAN SYLLABICS WEST-CREE TWAA;Lo;0;L;;;;;N;;;;;
+1465;CANADIAN SYLLABICS NASKAPI TWAA;Lo;0;L;;;;;N;;;;;
+1466;CANADIAN SYLLABICS T;Lo;0;L;;;;;N;;;;;
+1467;CANADIAN SYLLABICS TTE;Lo;0;L;;;;;N;;;;;
+1468;CANADIAN SYLLABICS TTI;Lo;0;L;;;;;N;;;;;
+1469;CANADIAN SYLLABICS TTO;Lo;0;L;;;;;N;;;;;
+146A;CANADIAN SYLLABICS TTA;Lo;0;L;;;;;N;;;;;
+146B;CANADIAN SYLLABICS KE;Lo;0;L;;;;;N;;;;;
+146C;CANADIAN SYLLABICS KAAI;Lo;0;L;;;;;N;;;;;
+146D;CANADIAN SYLLABICS KI;Lo;0;L;;;;;N;;;;;
+146E;CANADIAN SYLLABICS KII;Lo;0;L;;;;;N;;;;;
+146F;CANADIAN SYLLABICS KO;Lo;0;L;;;;;N;;;;;
+1470;CANADIAN SYLLABICS KOO;Lo;0;L;;;;;N;;;;;
+1471;CANADIAN SYLLABICS Y-CREE KOO;Lo;0;L;;;;;N;;;;;
+1472;CANADIAN SYLLABICS KA;Lo;0;L;;;;;N;;;;;
+1473;CANADIAN SYLLABICS KAA;Lo;0;L;;;;;N;;;;;
+1474;CANADIAN SYLLABICS KWE;Lo;0;L;;;;;N;;;;;
+1475;CANADIAN SYLLABICS WEST-CREE KWE;Lo;0;L;;;;;N;;;;;
+1476;CANADIAN SYLLABICS KWI;Lo;0;L;;;;;N;;;;;
+1477;CANADIAN SYLLABICS WEST-CREE KWI;Lo;0;L;;;;;N;;;;;
+1478;CANADIAN SYLLABICS KWII;Lo;0;L;;;;;N;;;;;
+1479;CANADIAN SYLLABICS WEST-CREE KWII;Lo;0;L;;;;;N;;;;;
+147A;CANADIAN SYLLABICS KWO;Lo;0;L;;;;;N;;;;;
+147B;CANADIAN SYLLABICS WEST-CREE KWO;Lo;0;L;;;;;N;;;;;
+147C;CANADIAN SYLLABICS KWOO;Lo;0;L;;;;;N;;;;;
+147D;CANADIAN SYLLABICS WEST-CREE KWOO;Lo;0;L;;;;;N;;;;;
+147E;CANADIAN SYLLABICS KWA;Lo;0;L;;;;;N;;;;;
+147F;CANADIAN SYLLABICS WEST-CREE KWA;Lo;0;L;;;;;N;;;;;
+1480;CANADIAN SYLLABICS KWAA;Lo;0;L;;;;;N;;;;;
+1481;CANADIAN SYLLABICS WEST-CREE KWAA;Lo;0;L;;;;;N;;;;;
+1482;CANADIAN SYLLABICS NASKAPI KWAA;Lo;0;L;;;;;N;;;;;
+1483;CANADIAN SYLLABICS K;Lo;0;L;;;;;N;;;;;
+1484;CANADIAN SYLLABICS KW;Lo;0;L;;;;;N;;;;;
+1485;CANADIAN SYLLABICS SOUTH-SLAVEY KEH;Lo;0;L;;;;;N;;;;;
+1486;CANADIAN SYLLABICS SOUTH-SLAVEY KIH;Lo;0;L;;;;;N;;;;;
+1487;CANADIAN SYLLABICS SOUTH-SLAVEY KOH;Lo;0;L;;;;;N;;;;;
+1488;CANADIAN SYLLABICS SOUTH-SLAVEY KAH;Lo;0;L;;;;;N;;;;;
+1489;CANADIAN SYLLABICS CE;Lo;0;L;;;;;N;;;;;
+148A;CANADIAN SYLLABICS CAAI;Lo;0;L;;;;;N;;;;;
+148B;CANADIAN SYLLABICS CI;Lo;0;L;;;;;N;;;;;
+148C;CANADIAN SYLLABICS CII;Lo;0;L;;;;;N;;;;;
+148D;CANADIAN SYLLABICS CO;Lo;0;L;;;;;N;;;;;
+148E;CANADIAN SYLLABICS COO;Lo;0;L;;;;;N;;;;;
+148F;CANADIAN SYLLABICS Y-CREE COO;Lo;0;L;;;;;N;;;;;
+1490;CANADIAN SYLLABICS CA;Lo;0;L;;;;;N;;;;;
+1491;CANADIAN SYLLABICS CAA;Lo;0;L;;;;;N;;;;;
+1492;CANADIAN SYLLABICS CWE;Lo;0;L;;;;;N;;;;;
+1493;CANADIAN SYLLABICS WEST-CREE CWE;Lo;0;L;;;;;N;;;;;
+1494;CANADIAN SYLLABICS CWI;Lo;0;L;;;;;N;;;;;
+1495;CANADIAN SYLLABICS WEST-CREE CWI;Lo;0;L;;;;;N;;;;;
+1496;CANADIAN SYLLABICS CWII;Lo;0;L;;;;;N;;;;;
+1497;CANADIAN SYLLABICS WEST-CREE CWII;Lo;0;L;;;;;N;;;;;
+1498;CANADIAN SYLLABICS CWO;Lo;0;L;;;;;N;;;;;
+1499;CANADIAN SYLLABICS WEST-CREE CWO;Lo;0;L;;;;;N;;;;;
+149A;CANADIAN SYLLABICS CWOO;Lo;0;L;;;;;N;;;;;
+149B;CANADIAN SYLLABICS WEST-CREE CWOO;Lo;0;L;;;;;N;;;;;
+149C;CANADIAN SYLLABICS CWA;Lo;0;L;;;;;N;;;;;
+149D;CANADIAN SYLLABICS WEST-CREE CWA;Lo;0;L;;;;;N;;;;;
+149E;CANADIAN SYLLABICS CWAA;Lo;0;L;;;;;N;;;;;
+149F;CANADIAN SYLLABICS WEST-CREE CWAA;Lo;0;L;;;;;N;;;;;
+14A0;CANADIAN SYLLABICS NASKAPI CWAA;Lo;0;L;;;;;N;;;;;
+14A1;CANADIAN SYLLABICS C;Lo;0;L;;;;;N;;;;;
+14A2;CANADIAN SYLLABICS SAYISI TH;Lo;0;L;;;;;N;;;;;
+14A3;CANADIAN SYLLABICS ME;Lo;0;L;;;;;N;;;;;
+14A4;CANADIAN SYLLABICS MAAI;Lo;0;L;;;;;N;;;;;
+14A5;CANADIAN SYLLABICS MI;Lo;0;L;;;;;N;;;;;
+14A6;CANADIAN SYLLABICS MII;Lo;0;L;;;;;N;;;;;
+14A7;CANADIAN SYLLABICS MO;Lo;0;L;;;;;N;;;;;
+14A8;CANADIAN SYLLABICS MOO;Lo;0;L;;;;;N;;;;;
+14A9;CANADIAN SYLLABICS Y-CREE MOO;Lo;0;L;;;;;N;;;;;
+14AA;CANADIAN SYLLABICS MA;Lo;0;L;;;;;N;;;;;
+14AB;CANADIAN SYLLABICS MAA;Lo;0;L;;;;;N;;;;;
+14AC;CANADIAN SYLLABICS MWE;Lo;0;L;;;;;N;;;;;
+14AD;CANADIAN SYLLABICS WEST-CREE MWE;Lo;0;L;;;;;N;;;;;
+14AE;CANADIAN SYLLABICS MWI;Lo;0;L;;;;;N;;;;;
+14AF;CANADIAN SYLLABICS WEST-CREE MWI;Lo;0;L;;;;;N;;;;;
+14B0;CANADIAN SYLLABICS MWII;Lo;0;L;;;;;N;;;;;
+14B1;CANADIAN SYLLABICS WEST-CREE MWII;Lo;0;L;;;;;N;;;;;
+14B2;CANADIAN SYLLABICS MWO;Lo;0;L;;;;;N;;;;;
+14B3;CANADIAN SYLLABICS WEST-CREE MWO;Lo;0;L;;;;;N;;;;;
+14B4;CANADIAN SYLLABICS MWOO;Lo;0;L;;;;;N;;;;;
+14B5;CANADIAN SYLLABICS WEST-CREE MWOO;Lo;0;L;;;;;N;;;;;
+14B6;CANADIAN SYLLABICS MWA;Lo;0;L;;;;;N;;;;;
+14B7;CANADIAN SYLLABICS WEST-CREE MWA;Lo;0;L;;;;;N;;;;;
+14B8;CANADIAN SYLLABICS MWAA;Lo;0;L;;;;;N;;;;;
+14B9;CANADIAN SYLLABICS WEST-CREE MWAA;Lo;0;L;;;;;N;;;;;
+14BA;CANADIAN SYLLABICS NASKAPI MWAA;Lo;0;L;;;;;N;;;;;
+14BB;CANADIAN SYLLABICS M;Lo;0;L;;;;;N;;;;;
+14BC;CANADIAN SYLLABICS WEST-CREE M;Lo;0;L;;;;;N;;;;;
+14BD;CANADIAN SYLLABICS MH;Lo;0;L;;;;;N;;;;;
+14BE;CANADIAN SYLLABICS ATHAPASCAN M;Lo;0;L;;;;;N;;;;;
+14BF;CANADIAN SYLLABICS SAYISI M;Lo;0;L;;;;;N;;;;;
+14C0;CANADIAN SYLLABICS NE;Lo;0;L;;;;;N;;;;;
+14C1;CANADIAN SYLLABICS NAAI;Lo;0;L;;;;;N;;;;;
+14C2;CANADIAN SYLLABICS NI;Lo;0;L;;;;;N;;;;;
+14C3;CANADIAN SYLLABICS NII;Lo;0;L;;;;;N;;;;;
+14C4;CANADIAN SYLLABICS NO;Lo;0;L;;;;;N;;;;;
+14C5;CANADIAN SYLLABICS NOO;Lo;0;L;;;;;N;;;;;
+14C6;CANADIAN SYLLABICS Y-CREE NOO;Lo;0;L;;;;;N;;;;;
+14C7;CANADIAN SYLLABICS NA;Lo;0;L;;;;;N;;;;;
+14C8;CANADIAN SYLLABICS NAA;Lo;0;L;;;;;N;;;;;
+14C9;CANADIAN SYLLABICS NWE;Lo;0;L;;;;;N;;;;;
+14CA;CANADIAN SYLLABICS WEST-CREE NWE;Lo;0;L;;;;;N;;;;;
+14CB;CANADIAN SYLLABICS NWA;Lo;0;L;;;;;N;;;;;
+14CC;CANADIAN SYLLABICS WEST-CREE NWA;Lo;0;L;;;;;N;;;;;
+14CD;CANADIAN SYLLABICS NWAA;Lo;0;L;;;;;N;;;;;
+14CE;CANADIAN SYLLABICS WEST-CREE NWAA;Lo;0;L;;;;;N;;;;;
+14CF;CANADIAN SYLLABICS NASKAPI NWAA;Lo;0;L;;;;;N;;;;;
+14D0;CANADIAN SYLLABICS N;Lo;0;L;;;;;N;;;;;
+14D1;CANADIAN SYLLABICS CARRIER NG;Lo;0;L;;;;;N;;;;;
+14D2;CANADIAN SYLLABICS NH;Lo;0;L;;;;;N;;;;;
+14D3;CANADIAN SYLLABICS LE;Lo;0;L;;;;;N;;;;;
+14D4;CANADIAN SYLLABICS LAAI;Lo;0;L;;;;;N;;;;;
+14D5;CANADIAN SYLLABICS LI;Lo;0;L;;;;;N;;;;;
+14D6;CANADIAN SYLLABICS LII;Lo;0;L;;;;;N;;;;;
+14D7;CANADIAN SYLLABICS LO;Lo;0;L;;;;;N;;;;;
+14D8;CANADIAN SYLLABICS LOO;Lo;0;L;;;;;N;;;;;
+14D9;CANADIAN SYLLABICS Y-CREE LOO;Lo;0;L;;;;;N;;;;;
+14DA;CANADIAN SYLLABICS LA;Lo;0;L;;;;;N;;;;;
+14DB;CANADIAN SYLLABICS LAA;Lo;0;L;;;;;N;;;;;
+14DC;CANADIAN SYLLABICS LWE;Lo;0;L;;;;;N;;;;;
+14DD;CANADIAN SYLLABICS WEST-CREE LWE;Lo;0;L;;;;;N;;;;;
+14DE;CANADIAN SYLLABICS LWI;Lo;0;L;;;;;N;;;;;
+14DF;CANADIAN SYLLABICS WEST-CREE LWI;Lo;0;L;;;;;N;;;;;
+14E0;CANADIAN SYLLABICS LWII;Lo;0;L;;;;;N;;;;;
+14E1;CANADIAN SYLLABICS WEST-CREE LWII;Lo;0;L;;;;;N;;;;;
+14E2;CANADIAN SYLLABICS LWO;Lo;0;L;;;;;N;;;;;
+14E3;CANADIAN SYLLABICS WEST-CREE LWO;Lo;0;L;;;;;N;;;;;
+14E4;CANADIAN SYLLABICS LWOO;Lo;0;L;;;;;N;;;;;
+14E5;CANADIAN SYLLABICS WEST-CREE LWOO;Lo;0;L;;;;;N;;;;;
+14E6;CANADIAN SYLLABICS LWA;Lo;0;L;;;;;N;;;;;
+14E7;CANADIAN SYLLABICS WEST-CREE LWA;Lo;0;L;;;;;N;;;;;
+14E8;CANADIAN SYLLABICS LWAA;Lo;0;L;;;;;N;;;;;
+14E9;CANADIAN SYLLABICS WEST-CREE LWAA;Lo;0;L;;;;;N;;;;;
+14EA;CANADIAN SYLLABICS L;Lo;0;L;;;;;N;;;;;
+14EB;CANADIAN SYLLABICS WEST-CREE L;Lo;0;L;;;;;N;;;;;
+14EC;CANADIAN SYLLABICS MEDIAL L;Lo;0;L;;;;;N;;;;;
+14ED;CANADIAN SYLLABICS SE;Lo;0;L;;;;;N;;;;;
+14EE;CANADIAN SYLLABICS SAAI;Lo;0;L;;;;;N;;;;;
+14EF;CANADIAN SYLLABICS SI;Lo;0;L;;;;;N;;;;;
+14F0;CANADIAN SYLLABICS SII;Lo;0;L;;;;;N;;;;;
+14F1;CANADIAN SYLLABICS SO;Lo;0;L;;;;;N;;;;;
+14F2;CANADIAN SYLLABICS SOO;Lo;0;L;;;;;N;;;;;
+14F3;CANADIAN SYLLABICS Y-CREE SOO;Lo;0;L;;;;;N;;;;;
+14F4;CANADIAN SYLLABICS SA;Lo;0;L;;;;;N;;;;;
+14F5;CANADIAN SYLLABICS SAA;Lo;0;L;;;;;N;;;;;
+14F6;CANADIAN SYLLABICS SWE;Lo;0;L;;;;;N;;;;;
+14F7;CANADIAN SYLLABICS WEST-CREE SWE;Lo;0;L;;;;;N;;;;;
+14F8;CANADIAN SYLLABICS SWI;Lo;0;L;;;;;N;;;;;
+14F9;CANADIAN SYLLABICS WEST-CREE SWI;Lo;0;L;;;;;N;;;;;
+14FA;CANADIAN SYLLABICS SWII;Lo;0;L;;;;;N;;;;;
+14FB;CANADIAN SYLLABICS WEST-CREE SWII;Lo;0;L;;;;;N;;;;;
+14FC;CANADIAN SYLLABICS SWO;Lo;0;L;;;;;N;;;;;
+14FD;CANADIAN SYLLABICS WEST-CREE SWO;Lo;0;L;;;;;N;;;;;
+14FE;CANADIAN SYLLABICS SWOO;Lo;0;L;;;;;N;;;;;
+14FF;CANADIAN SYLLABICS WEST-CREE SWOO;Lo;0;L;;;;;N;;;;;
+1500;CANADIAN SYLLABICS SWA;Lo;0;L;;;;;N;;;;;
+1501;CANADIAN SYLLABICS WEST-CREE SWA;Lo;0;L;;;;;N;;;;;
+1502;CANADIAN SYLLABICS SWAA;Lo;0;L;;;;;N;;;;;
+1503;CANADIAN SYLLABICS WEST-CREE SWAA;Lo;0;L;;;;;N;;;;;
+1504;CANADIAN SYLLABICS NASKAPI SWAA;Lo;0;L;;;;;N;;;;;
+1505;CANADIAN SYLLABICS S;Lo;0;L;;;;;N;;;;;
+1506;CANADIAN SYLLABICS ATHAPASCAN S;Lo;0;L;;;;;N;;;;;
+1507;CANADIAN SYLLABICS SW;Lo;0;L;;;;;N;;;;;
+1508;CANADIAN SYLLABICS BLACKFOOT S;Lo;0;L;;;;;N;;;;;
+1509;CANADIAN SYLLABICS MOOSE-CREE SK;Lo;0;L;;;;;N;;;;;
+150A;CANADIAN SYLLABICS NASKAPI SKW;Lo;0;L;;;;;N;;;;;
+150B;CANADIAN SYLLABICS NASKAPI S-W;Lo;0;L;;;;;N;;;;;
+150C;CANADIAN SYLLABICS NASKAPI SPWA;Lo;0;L;;;;;N;;;;;
+150D;CANADIAN SYLLABICS NASKAPI STWA;Lo;0;L;;;;;N;;;;;
+150E;CANADIAN SYLLABICS NASKAPI SKWA;Lo;0;L;;;;;N;;;;;
+150F;CANADIAN SYLLABICS NASKAPI SCWA;Lo;0;L;;;;;N;;;;;
+1510;CANADIAN SYLLABICS SHE;Lo;0;L;;;;;N;;;;;
+1511;CANADIAN SYLLABICS SHI;Lo;0;L;;;;;N;;;;;
+1512;CANADIAN SYLLABICS SHII;Lo;0;L;;;;;N;;;;;
+1513;CANADIAN SYLLABICS SHO;Lo;0;L;;;;;N;;;;;
+1514;CANADIAN SYLLABICS SHOO;Lo;0;L;;;;;N;;;;;
+1515;CANADIAN SYLLABICS SHA;Lo;0;L;;;;;N;;;;;
+1516;CANADIAN SYLLABICS SHAA;Lo;0;L;;;;;N;;;;;
+1517;CANADIAN SYLLABICS SHWE;Lo;0;L;;;;;N;;;;;
+1518;CANADIAN SYLLABICS WEST-CREE SHWE;Lo;0;L;;;;;N;;;;;
+1519;CANADIAN SYLLABICS SHWI;Lo;0;L;;;;;N;;;;;
+151A;CANADIAN SYLLABICS WEST-CREE SHWI;Lo;0;L;;;;;N;;;;;
+151B;CANADIAN SYLLABICS SHWII;Lo;0;L;;;;;N;;;;;
+151C;CANADIAN SYLLABICS WEST-CREE SHWII;Lo;0;L;;;;;N;;;;;
+151D;CANADIAN SYLLABICS SHWO;Lo;0;L;;;;;N;;;;;
+151E;CANADIAN SYLLABICS WEST-CREE SHWO;Lo;0;L;;;;;N;;;;;
+151F;CANADIAN SYLLABICS SHWOO;Lo;0;L;;;;;N;;;;;
+1520;CANADIAN SYLLABICS WEST-CREE SHWOO;Lo;0;L;;;;;N;;;;;
+1521;CANADIAN SYLLABICS SHWA;Lo;0;L;;;;;N;;;;;
+1522;CANADIAN SYLLABICS WEST-CREE SHWA;Lo;0;L;;;;;N;;;;;
+1523;CANADIAN SYLLABICS SHWAA;Lo;0;L;;;;;N;;;;;
+1524;CANADIAN SYLLABICS WEST-CREE SHWAA;Lo;0;L;;;;;N;;;;;
+1525;CANADIAN SYLLABICS SH;Lo;0;L;;;;;N;;;;;
+1526;CANADIAN SYLLABICS YE;Lo;0;L;;;;;N;;;;;
+1527;CANADIAN SYLLABICS YAAI;Lo;0;L;;;;;N;;;;;
+1528;CANADIAN SYLLABICS YI;Lo;0;L;;;;;N;;;;;
+1529;CANADIAN SYLLABICS YII;Lo;0;L;;;;;N;;;;;
+152A;CANADIAN SYLLABICS YO;Lo;0;L;;;;;N;;;;;
+152B;CANADIAN SYLLABICS YOO;Lo;0;L;;;;;N;;;;;
+152C;CANADIAN SYLLABICS Y-CREE YOO;Lo;0;L;;;;;N;;;;;
+152D;CANADIAN SYLLABICS YA;Lo;0;L;;;;;N;;;;;
+152E;CANADIAN SYLLABICS YAA;Lo;0;L;;;;;N;;;;;
+152F;CANADIAN SYLLABICS YWE;Lo;0;L;;;;;N;;;;;
+1530;CANADIAN SYLLABICS WEST-CREE YWE;Lo;0;L;;;;;N;;;;;
+1531;CANADIAN SYLLABICS YWI;Lo;0;L;;;;;N;;;;;
+1532;CANADIAN SYLLABICS WEST-CREE YWI;Lo;0;L;;;;;N;;;;;
+1533;CANADIAN SYLLABICS YWII;Lo;0;L;;;;;N;;;;;
+1534;CANADIAN SYLLABICS WEST-CREE YWII;Lo;0;L;;;;;N;;;;;
+1535;CANADIAN SYLLABICS YWO;Lo;0;L;;;;;N;;;;;
+1536;CANADIAN SYLLABICS WEST-CREE YWO;Lo;0;L;;;;;N;;;;;
+1537;CANADIAN SYLLABICS YWOO;Lo;0;L;;;;;N;;;;;
+1538;CANADIAN SYLLABICS WEST-CREE YWOO;Lo;0;L;;;;;N;;;;;
+1539;CANADIAN SYLLABICS YWA;Lo;0;L;;;;;N;;;;;
+153A;CANADIAN SYLLABICS WEST-CREE YWA;Lo;0;L;;;;;N;;;;;
+153B;CANADIAN SYLLABICS YWAA;Lo;0;L;;;;;N;;;;;
+153C;CANADIAN SYLLABICS WEST-CREE YWAA;Lo;0;L;;;;;N;;;;;
+153D;CANADIAN SYLLABICS NASKAPI YWAA;Lo;0;L;;;;;N;;;;;
+153E;CANADIAN SYLLABICS Y;Lo;0;L;;;;;N;;;;;
+153F;CANADIAN SYLLABICS BIBLE-CREE Y;Lo;0;L;;;;;N;;;;;
+1540;CANADIAN SYLLABICS WEST-CREE Y;Lo;0;L;;;;;N;;;;;
+1541;CANADIAN SYLLABICS SAYISI YI;Lo;0;L;;;;;N;;;;;
+1542;CANADIAN SYLLABICS RE;Lo;0;L;;;;;N;;;;;
+1543;CANADIAN SYLLABICS R-CREE RE;Lo;0;L;;;;;N;;;;;
+1544;CANADIAN SYLLABICS WEST-CREE LE;Lo;0;L;;;;;N;;;;;
+1545;CANADIAN SYLLABICS RAAI;Lo;0;L;;;;;N;;;;;
+1546;CANADIAN SYLLABICS RI;Lo;0;L;;;;;N;;;;;
+1547;CANADIAN SYLLABICS RII;Lo;0;L;;;;;N;;;;;
+1548;CANADIAN SYLLABICS RO;Lo;0;L;;;;;N;;;;;
+1549;CANADIAN SYLLABICS ROO;Lo;0;L;;;;;N;;;;;
+154A;CANADIAN SYLLABICS WEST-CREE LO;Lo;0;L;;;;;N;;;;;
+154B;CANADIAN SYLLABICS RA;Lo;0;L;;;;;N;;;;;
+154C;CANADIAN SYLLABICS RAA;Lo;0;L;;;;;N;;;;;
+154D;CANADIAN SYLLABICS WEST-CREE LA;Lo;0;L;;;;;N;;;;;
+154E;CANADIAN SYLLABICS RWAA;Lo;0;L;;;;;N;;;;;
+154F;CANADIAN SYLLABICS WEST-CREE RWAA;Lo;0;L;;;;;N;;;;;
+1550;CANADIAN SYLLABICS R;Lo;0;L;;;;;N;;;;;
+1551;CANADIAN SYLLABICS WEST-CREE R;Lo;0;L;;;;;N;;;;;
+1552;CANADIAN SYLLABICS MEDIAL R;Lo;0;L;;;;;N;;;;;
+1553;CANADIAN SYLLABICS FE;Lo;0;L;;;;;N;;;;;
+1554;CANADIAN SYLLABICS FAAI;Lo;0;L;;;;;N;;;;;
+1555;CANADIAN SYLLABICS FI;Lo;0;L;;;;;N;;;;;
+1556;CANADIAN SYLLABICS FII;Lo;0;L;;;;;N;;;;;
+1557;CANADIAN SYLLABICS FO;Lo;0;L;;;;;N;;;;;
+1558;CANADIAN SYLLABICS FOO;Lo;0;L;;;;;N;;;;;
+1559;CANADIAN SYLLABICS FA;Lo;0;L;;;;;N;;;;;
+155A;CANADIAN SYLLABICS FAA;Lo;0;L;;;;;N;;;;;
+155B;CANADIAN SYLLABICS FWAA;Lo;0;L;;;;;N;;;;;
+155C;CANADIAN SYLLABICS WEST-CREE FWAA;Lo;0;L;;;;;N;;;;;
+155D;CANADIAN SYLLABICS F;Lo;0;L;;;;;N;;;;;
+155E;CANADIAN SYLLABICS THE;Lo;0;L;;;;;N;;;;;
+155F;CANADIAN SYLLABICS N-CREE THE;Lo;0;L;;;;;N;;;;;
+1560;CANADIAN SYLLABICS THI;Lo;0;L;;;;;N;;;;;
+1561;CANADIAN SYLLABICS N-CREE THI;Lo;0;L;;;;;N;;;;;
+1562;CANADIAN SYLLABICS THII;Lo;0;L;;;;;N;;;;;
+1563;CANADIAN SYLLABICS N-CREE THII;Lo;0;L;;;;;N;;;;;
+1564;CANADIAN SYLLABICS THO;Lo;0;L;;;;;N;;;;;
+1565;CANADIAN SYLLABICS THOO;Lo;0;L;;;;;N;;;;;
+1566;CANADIAN SYLLABICS THA;Lo;0;L;;;;;N;;;;;
+1567;CANADIAN SYLLABICS THAA;Lo;0;L;;;;;N;;;;;
+1568;CANADIAN SYLLABICS THWAA;Lo;0;L;;;;;N;;;;;
+1569;CANADIAN SYLLABICS WEST-CREE THWAA;Lo;0;L;;;;;N;;;;;
+156A;CANADIAN SYLLABICS TH;Lo;0;L;;;;;N;;;;;
+156B;CANADIAN SYLLABICS TTHE;Lo;0;L;;;;;N;;;;;
+156C;CANADIAN SYLLABICS TTHI;Lo;0;L;;;;;N;;;;;
+156D;CANADIAN SYLLABICS TTHO;Lo;0;L;;;;;N;;;;;
+156E;CANADIAN SYLLABICS TTHA;Lo;0;L;;;;;N;;;;;
+156F;CANADIAN SYLLABICS TTH;Lo;0;L;;;;;N;;;;;
+1570;CANADIAN SYLLABICS TYE;Lo;0;L;;;;;N;;;;;
+1571;CANADIAN SYLLABICS TYI;Lo;0;L;;;;;N;;;;;
+1572;CANADIAN SYLLABICS TYO;Lo;0;L;;;;;N;;;;;
+1573;CANADIAN SYLLABICS TYA;Lo;0;L;;;;;N;;;;;
+1574;CANADIAN SYLLABICS NUNAVIK HE;Lo;0;L;;;;;N;;;;;
+1575;CANADIAN SYLLABICS NUNAVIK HI;Lo;0;L;;;;;N;;;;;
+1576;CANADIAN SYLLABICS NUNAVIK HII;Lo;0;L;;;;;N;;;;;
+1577;CANADIAN SYLLABICS NUNAVIK HO;Lo;0;L;;;;;N;;;;;
+1578;CANADIAN SYLLABICS NUNAVIK HOO;Lo;0;L;;;;;N;;;;;
+1579;CANADIAN SYLLABICS NUNAVIK HA;Lo;0;L;;;;;N;;;;;
+157A;CANADIAN SYLLABICS NUNAVIK HAA;Lo;0;L;;;;;N;;;;;
+157B;CANADIAN SYLLABICS NUNAVIK H;Lo;0;L;;;;;N;;;;;
+157C;CANADIAN SYLLABICS NUNAVUT H;Lo;0;L;;;;;N;;;;;
+157D;CANADIAN SYLLABICS HK;Lo;0;L;;;;;N;;;;;
+157E;CANADIAN SYLLABICS QAAI;Lo;0;L;;;;;N;;;;;
+157F;CANADIAN SYLLABICS QI;Lo;0;L;;;;;N;;;;;
+1580;CANADIAN SYLLABICS QII;Lo;0;L;;;;;N;;;;;
+1581;CANADIAN SYLLABICS QO;Lo;0;L;;;;;N;;;;;
+1582;CANADIAN SYLLABICS QOO;Lo;0;L;;;;;N;;;;;
+1583;CANADIAN SYLLABICS QA;Lo;0;L;;;;;N;;;;;
+1584;CANADIAN SYLLABICS QAA;Lo;0;L;;;;;N;;;;;
+1585;CANADIAN SYLLABICS Q;Lo;0;L;;;;;N;;;;;
+1586;CANADIAN SYLLABICS TLHE;Lo;0;L;;;;;N;;;;;
+1587;CANADIAN SYLLABICS TLHI;Lo;0;L;;;;;N;;;;;
+1588;CANADIAN SYLLABICS TLHO;Lo;0;L;;;;;N;;;;;
+1589;CANADIAN SYLLABICS TLHA;Lo;0;L;;;;;N;;;;;
+158A;CANADIAN SYLLABICS WEST-CREE RE;Lo;0;L;;;;;N;;;;;
+158B;CANADIAN SYLLABICS WEST-CREE RI;Lo;0;L;;;;;N;;;;;
+158C;CANADIAN SYLLABICS WEST-CREE RO;Lo;0;L;;;;;N;;;;;
+158D;CANADIAN SYLLABICS WEST-CREE RA;Lo;0;L;;;;;N;;;;;
+158E;CANADIAN SYLLABICS NGAAI;Lo;0;L;;;;;N;;;;;
+158F;CANADIAN SYLLABICS NGI;Lo;0;L;;;;;N;;;;;
+1590;CANADIAN SYLLABICS NGII;Lo;0;L;;;;;N;;;;;
+1591;CANADIAN SYLLABICS NGO;Lo;0;L;;;;;N;;;;;
+1592;CANADIAN SYLLABICS NGOO;Lo;0;L;;;;;N;;;;;
+1593;CANADIAN SYLLABICS NGA;Lo;0;L;;;;;N;;;;;
+1594;CANADIAN SYLLABICS NGAA;Lo;0;L;;;;;N;;;;;
+1595;CANADIAN SYLLABICS NG;Lo;0;L;;;;;N;;;;;
+1596;CANADIAN SYLLABICS NNG;Lo;0;L;;;;;N;;;;;
+1597;CANADIAN SYLLABICS SAYISI SHE;Lo;0;L;;;;;N;;;;;
+1598;CANADIAN SYLLABICS SAYISI SHI;Lo;0;L;;;;;N;;;;;
+1599;CANADIAN SYLLABICS SAYISI SHO;Lo;0;L;;;;;N;;;;;
+159A;CANADIAN SYLLABICS SAYISI SHA;Lo;0;L;;;;;N;;;;;
+159B;CANADIAN SYLLABICS WOODS-CREE THE;Lo;0;L;;;;;N;;;;;
+159C;CANADIAN SYLLABICS WOODS-CREE THI;Lo;0;L;;;;;N;;;;;
+159D;CANADIAN SYLLABICS WOODS-CREE THO;Lo;0;L;;;;;N;;;;;
+159E;CANADIAN SYLLABICS WOODS-CREE THA;Lo;0;L;;;;;N;;;;;
+159F;CANADIAN SYLLABICS WOODS-CREE TH;Lo;0;L;;;;;N;;;;;
+15A0;CANADIAN SYLLABICS LHI;Lo;0;L;;;;;N;;;;;
+15A1;CANADIAN SYLLABICS LHII;Lo;0;L;;;;;N;;;;;
+15A2;CANADIAN SYLLABICS LHO;Lo;0;L;;;;;N;;;;;
+15A3;CANADIAN SYLLABICS LHOO;Lo;0;L;;;;;N;;;;;
+15A4;CANADIAN SYLLABICS LHA;Lo;0;L;;;;;N;;;;;
+15A5;CANADIAN SYLLABICS LHAA;Lo;0;L;;;;;N;;;;;
+15A6;CANADIAN SYLLABICS LH;Lo;0;L;;;;;N;;;;;
+15A7;CANADIAN SYLLABICS TH-CREE THE;Lo;0;L;;;;;N;;;;;
+15A8;CANADIAN SYLLABICS TH-CREE THI;Lo;0;L;;;;;N;;;;;
+15A9;CANADIAN SYLLABICS TH-CREE THII;Lo;0;L;;;;;N;;;;;
+15AA;CANADIAN SYLLABICS TH-CREE THO;Lo;0;L;;;;;N;;;;;
+15AB;CANADIAN SYLLABICS TH-CREE THOO;Lo;0;L;;;;;N;;;;;
+15AC;CANADIAN SYLLABICS TH-CREE THA;Lo;0;L;;;;;N;;;;;
+15AD;CANADIAN SYLLABICS TH-CREE THAA;Lo;0;L;;;;;N;;;;;
+15AE;CANADIAN SYLLABICS TH-CREE TH;Lo;0;L;;;;;N;;;;;
+15AF;CANADIAN SYLLABICS AIVILIK B;Lo;0;L;;;;;N;;;;;
+15B0;CANADIAN SYLLABICS BLACKFOOT E;Lo;0;L;;;;;N;;;;;
+15B1;CANADIAN SYLLABICS BLACKFOOT I;Lo;0;L;;;;;N;;;;;
+15B2;CANADIAN SYLLABICS BLACKFOOT O;Lo;0;L;;;;;N;;;;;
+15B3;CANADIAN SYLLABICS BLACKFOOT A;Lo;0;L;;;;;N;;;;;
+15B4;CANADIAN SYLLABICS BLACKFOOT WE;Lo;0;L;;;;;N;;;;;
+15B5;CANADIAN SYLLABICS BLACKFOOT WI;Lo;0;L;;;;;N;;;;;
+15B6;CANADIAN SYLLABICS BLACKFOOT WO;Lo;0;L;;;;;N;;;;;
+15B7;CANADIAN SYLLABICS BLACKFOOT WA;Lo;0;L;;;;;N;;;;;
+15B8;CANADIAN SYLLABICS BLACKFOOT NE;Lo;0;L;;;;;N;;;;;
+15B9;CANADIAN SYLLABICS BLACKFOOT NI;Lo;0;L;;;;;N;;;;;
+15BA;CANADIAN SYLLABICS BLACKFOOT NO;Lo;0;L;;;;;N;;;;;
+15BB;CANADIAN SYLLABICS BLACKFOOT NA;Lo;0;L;;;;;N;;;;;
+15BC;CANADIAN SYLLABICS BLACKFOOT KE;Lo;0;L;;;;;N;;;;;
+15BD;CANADIAN SYLLABICS BLACKFOOT KI;Lo;0;L;;;;;N;;;;;
+15BE;CANADIAN SYLLABICS BLACKFOOT KO;Lo;0;L;;;;;N;;;;;
+15BF;CANADIAN SYLLABICS BLACKFOOT KA;Lo;0;L;;;;;N;;;;;
+15C0;CANADIAN SYLLABICS SAYISI HE;Lo;0;L;;;;;N;;;;;
+15C1;CANADIAN SYLLABICS SAYISI HI;Lo;0;L;;;;;N;;;;;
+15C2;CANADIAN SYLLABICS SAYISI HO;Lo;0;L;;;;;N;;;;;
+15C3;CANADIAN SYLLABICS SAYISI HA;Lo;0;L;;;;;N;;;;;
+15C4;CANADIAN SYLLABICS CARRIER GHU;Lo;0;L;;;;;N;;;;;
+15C5;CANADIAN SYLLABICS CARRIER GHO;Lo;0;L;;;;;N;;;;;
+15C6;CANADIAN SYLLABICS CARRIER GHE;Lo;0;L;;;;;N;;;;;
+15C7;CANADIAN SYLLABICS CARRIER GHEE;Lo;0;L;;;;;N;;;;;
+15C8;CANADIAN SYLLABICS CARRIER GHI;Lo;0;L;;;;;N;;;;;
+15C9;CANADIAN SYLLABICS CARRIER GHA;Lo;0;L;;;;;N;;;;;
+15CA;CANADIAN SYLLABICS CARRIER RU;Lo;0;L;;;;;N;;;;;
+15CB;CANADIAN SYLLABICS CARRIER RO;Lo;0;L;;;;;N;;;;;
+15CC;CANADIAN SYLLABICS CARRIER RE;Lo;0;L;;;;;N;;;;;
+15CD;CANADIAN SYLLABICS CARRIER REE;Lo;0;L;;;;;N;;;;;
+15CE;CANADIAN SYLLABICS CARRIER RI;Lo;0;L;;;;;N;;;;;
+15CF;CANADIAN SYLLABICS CARRIER RA;Lo;0;L;;;;;N;;;;;
+15D0;CANADIAN SYLLABICS CARRIER WU;Lo;0;L;;;;;N;;;;;
+15D1;CANADIAN SYLLABICS CARRIER WO;Lo;0;L;;;;;N;;;;;
+15D2;CANADIAN SYLLABICS CARRIER WE;Lo;0;L;;;;;N;;;;;
+15D3;CANADIAN SYLLABICS CARRIER WEE;Lo;0;L;;;;;N;;;;;
+15D4;CANADIAN SYLLABICS CARRIER WI;Lo;0;L;;;;;N;;;;;
+15D5;CANADIAN SYLLABICS CARRIER WA;Lo;0;L;;;;;N;;;;;
+15D6;CANADIAN SYLLABICS CARRIER HWU;Lo;0;L;;;;;N;;;;;
+15D7;CANADIAN SYLLABICS CARRIER HWO;Lo;0;L;;;;;N;;;;;
+15D8;CANADIAN SYLLABICS CARRIER HWE;Lo;0;L;;;;;N;;;;;
+15D9;CANADIAN SYLLABICS CARRIER HWEE;Lo;0;L;;;;;N;;;;;
+15DA;CANADIAN SYLLABICS CARRIER HWI;Lo;0;L;;;;;N;;;;;
+15DB;CANADIAN SYLLABICS CARRIER HWA;Lo;0;L;;;;;N;;;;;
+15DC;CANADIAN SYLLABICS CARRIER THU;Lo;0;L;;;;;N;;;;;
+15DD;CANADIAN SYLLABICS CARRIER THO;Lo;0;L;;;;;N;;;;;
+15DE;CANADIAN SYLLABICS CARRIER THE;Lo;0;L;;;;;N;;;;;
+15DF;CANADIAN SYLLABICS CARRIER THEE;Lo;0;L;;;;;N;;;;;
+15E0;CANADIAN SYLLABICS CARRIER THI;Lo;0;L;;;;;N;;;;;
+15E1;CANADIAN SYLLABICS CARRIER THA;Lo;0;L;;;;;N;;;;;
+15E2;CANADIAN SYLLABICS CARRIER TTU;Lo;0;L;;;;;N;;;;;
+15E3;CANADIAN SYLLABICS CARRIER TTO;Lo;0;L;;;;;N;;;;;
+15E4;CANADIAN SYLLABICS CARRIER TTE;Lo;0;L;;;;;N;;;;;
+15E5;CANADIAN SYLLABICS CARRIER TTEE;Lo;0;L;;;;;N;;;;;
+15E6;CANADIAN SYLLABICS CARRIER TTI;Lo;0;L;;;;;N;;;;;
+15E7;CANADIAN SYLLABICS CARRIER TTA;Lo;0;L;;;;;N;;;;;
+15E8;CANADIAN SYLLABICS CARRIER PU;Lo;0;L;;;;;N;;;;;
+15E9;CANADIAN SYLLABICS CARRIER PO;Lo;0;L;;;;;N;;;;;
+15EA;CANADIAN SYLLABICS CARRIER PE;Lo;0;L;;;;;N;;;;;
+15EB;CANADIAN SYLLABICS CARRIER PEE;Lo;0;L;;;;;N;;;;;
+15EC;CANADIAN SYLLABICS CARRIER PI;Lo;0;L;;;;;N;;;;;
+15ED;CANADIAN SYLLABICS CARRIER PA;Lo;0;L;;;;;N;;;;;
+15EE;CANADIAN SYLLABICS CARRIER P;Lo;0;L;;;;;N;;;;;
+15EF;CANADIAN SYLLABICS CARRIER GU;Lo;0;L;;;;;N;;;;;
+15F0;CANADIAN SYLLABICS CARRIER GO;Lo;0;L;;;;;N;;;;;
+15F1;CANADIAN SYLLABICS CARRIER GE;Lo;0;L;;;;;N;;;;;
+15F2;CANADIAN SYLLABICS CARRIER GEE;Lo;0;L;;;;;N;;;;;
+15F3;CANADIAN SYLLABICS CARRIER GI;Lo;0;L;;;;;N;;;;;
+15F4;CANADIAN SYLLABICS CARRIER GA;Lo;0;L;;;;;N;;;;;
+15F5;CANADIAN SYLLABICS CARRIER KHU;Lo;0;L;;;;;N;;;;;
+15F6;CANADIAN SYLLABICS CARRIER KHO;Lo;0;L;;;;;N;;;;;
+15F7;CANADIAN SYLLABICS CARRIER KHE;Lo;0;L;;;;;N;;;;;
+15F8;CANADIAN SYLLABICS CARRIER KHEE;Lo;0;L;;;;;N;;;;;
+15F9;CANADIAN SYLLABICS CARRIER KHI;Lo;0;L;;;;;N;;;;;
+15FA;CANADIAN SYLLABICS CARRIER KHA;Lo;0;L;;;;;N;;;;;
+15FB;CANADIAN SYLLABICS CARRIER KKU;Lo;0;L;;;;;N;;;;;
+15FC;CANADIAN SYLLABICS CARRIER KKO;Lo;0;L;;;;;N;;;;;
+15FD;CANADIAN SYLLABICS CARRIER KKE;Lo;0;L;;;;;N;;;;;
+15FE;CANADIAN SYLLABICS CARRIER KKEE;Lo;0;L;;;;;N;;;;;
+15FF;CANADIAN SYLLABICS CARRIER KKI;Lo;0;L;;;;;N;;;;;
+1600;CANADIAN SYLLABICS CARRIER KKA;Lo;0;L;;;;;N;;;;;
+1601;CANADIAN SYLLABICS CARRIER KK;Lo;0;L;;;;;N;;;;;
+1602;CANADIAN SYLLABICS CARRIER NU;Lo;0;L;;;;;N;;;;;
+1603;CANADIAN SYLLABICS CARRIER NO;Lo;0;L;;;;;N;;;;;
+1604;CANADIAN SYLLABICS CARRIER NE;Lo;0;L;;;;;N;;;;;
+1605;CANADIAN SYLLABICS CARRIER NEE;Lo;0;L;;;;;N;;;;;
+1606;CANADIAN SYLLABICS CARRIER NI;Lo;0;L;;;;;N;;;;;
+1607;CANADIAN SYLLABICS CARRIER NA;Lo;0;L;;;;;N;;;;;
+1608;CANADIAN SYLLABICS CARRIER MU;Lo;0;L;;;;;N;;;;;
+1609;CANADIAN SYLLABICS CARRIER MO;Lo;0;L;;;;;N;;;;;
+160A;CANADIAN SYLLABICS CARRIER ME;Lo;0;L;;;;;N;;;;;
+160B;CANADIAN SYLLABICS CARRIER MEE;Lo;0;L;;;;;N;;;;;
+160C;CANADIAN SYLLABICS CARRIER MI;Lo;0;L;;;;;N;;;;;
+160D;CANADIAN SYLLABICS CARRIER MA;Lo;0;L;;;;;N;;;;;
+160E;CANADIAN SYLLABICS CARRIER YU;Lo;0;L;;;;;N;;;;;
+160F;CANADIAN SYLLABICS CARRIER YO;Lo;0;L;;;;;N;;;;;
+1610;CANADIAN SYLLABICS CARRIER YE;Lo;0;L;;;;;N;;;;;
+1611;CANADIAN SYLLABICS CARRIER YEE;Lo;0;L;;;;;N;;;;;
+1612;CANADIAN SYLLABICS CARRIER YI;Lo;0;L;;;;;N;;;;;
+1613;CANADIAN SYLLABICS CARRIER YA;Lo;0;L;;;;;N;;;;;
+1614;CANADIAN SYLLABICS CARRIER JU;Lo;0;L;;;;;N;;;;;
+1615;CANADIAN SYLLABICS SAYISI JU;Lo;0;L;;;;;N;;;;;
+1616;CANADIAN SYLLABICS CARRIER JO;Lo;0;L;;;;;N;;;;;
+1617;CANADIAN SYLLABICS CARRIER JE;Lo;0;L;;;;;N;;;;;
+1618;CANADIAN SYLLABICS CARRIER JEE;Lo;0;L;;;;;N;;;;;
+1619;CANADIAN SYLLABICS CARRIER JI;Lo;0;L;;;;;N;;;;;
+161A;CANADIAN SYLLABICS SAYISI JI;Lo;0;L;;;;;N;;;;;
+161B;CANADIAN SYLLABICS CARRIER JA;Lo;0;L;;;;;N;;;;;
+161C;CANADIAN SYLLABICS CARRIER JJU;Lo;0;L;;;;;N;;;;;
+161D;CANADIAN SYLLABICS CARRIER JJO;Lo;0;L;;;;;N;;;;;
+161E;CANADIAN SYLLABICS CARRIER JJE;Lo;0;L;;;;;N;;;;;
+161F;CANADIAN SYLLABICS CARRIER JJEE;Lo;0;L;;;;;N;;;;;
+1620;CANADIAN SYLLABICS CARRIER JJI;Lo;0;L;;;;;N;;;;;
+1621;CANADIAN SYLLABICS CARRIER JJA;Lo;0;L;;;;;N;;;;;
+1622;CANADIAN SYLLABICS CARRIER LU;Lo;0;L;;;;;N;;;;;
+1623;CANADIAN SYLLABICS CARRIER LO;Lo;0;L;;;;;N;;;;;
+1624;CANADIAN SYLLABICS CARRIER LE;Lo;0;L;;;;;N;;;;;
+1625;CANADIAN SYLLABICS CARRIER LEE;Lo;0;L;;;;;N;;;;;
+1626;CANADIAN SYLLABICS CARRIER LI;Lo;0;L;;;;;N;;;;;
+1627;CANADIAN SYLLABICS CARRIER LA;Lo;0;L;;;;;N;;;;;
+1628;CANADIAN SYLLABICS CARRIER DLU;Lo;0;L;;;;;N;;;;;
+1629;CANADIAN SYLLABICS CARRIER DLO;Lo;0;L;;;;;N;;;;;
+162A;CANADIAN SYLLABICS CARRIER DLE;Lo;0;L;;;;;N;;;;;
+162B;CANADIAN SYLLABICS CARRIER DLEE;Lo;0;L;;;;;N;;;;;
+162C;CANADIAN SYLLABICS CARRIER DLI;Lo;0;L;;;;;N;;;;;
+162D;CANADIAN SYLLABICS CARRIER DLA;Lo;0;L;;;;;N;;;;;
+162E;CANADIAN SYLLABICS CARRIER LHU;Lo;0;L;;;;;N;;;;;
+162F;CANADIAN SYLLABICS CARRIER LHO;Lo;0;L;;;;;N;;;;;
+1630;CANADIAN SYLLABICS CARRIER LHE;Lo;0;L;;;;;N;;;;;
+1631;CANADIAN SYLLABICS CARRIER LHEE;Lo;0;L;;;;;N;;;;;
+1632;CANADIAN SYLLABICS CARRIER LHI;Lo;0;L;;;;;N;;;;;
+1633;CANADIAN SYLLABICS CARRIER LHA;Lo;0;L;;;;;N;;;;;
+1634;CANADIAN SYLLABICS CARRIER TLHU;Lo;0;L;;;;;N;;;;;
+1635;CANADIAN SYLLABICS CARRIER TLHO;Lo;0;L;;;;;N;;;;;
+1636;CANADIAN SYLLABICS CARRIER TLHE;Lo;0;L;;;;;N;;;;;
+1637;CANADIAN SYLLABICS CARRIER TLHEE;Lo;0;L;;;;;N;;;;;
+1638;CANADIAN SYLLABICS CARRIER TLHI;Lo;0;L;;;;;N;;;;;
+1639;CANADIAN SYLLABICS CARRIER TLHA;Lo;0;L;;;;;N;;;;;
+163A;CANADIAN SYLLABICS CARRIER TLU;Lo;0;L;;;;;N;;;;;
+163B;CANADIAN SYLLABICS CARRIER TLO;Lo;0;L;;;;;N;;;;;
+163C;CANADIAN SYLLABICS CARRIER TLE;Lo;0;L;;;;;N;;;;;
+163D;CANADIAN SYLLABICS CARRIER TLEE;Lo;0;L;;;;;N;;;;;
+163E;CANADIAN SYLLABICS CARRIER TLI;Lo;0;L;;;;;N;;;;;
+163F;CANADIAN SYLLABICS CARRIER TLA;Lo;0;L;;;;;N;;;;;
+1640;CANADIAN SYLLABICS CARRIER ZU;Lo;0;L;;;;;N;;;;;
+1641;CANADIAN SYLLABICS CARRIER ZO;Lo;0;L;;;;;N;;;;;
+1642;CANADIAN SYLLABICS CARRIER ZE;Lo;0;L;;;;;N;;;;;
+1643;CANADIAN SYLLABICS CARRIER ZEE;Lo;0;L;;;;;N;;;;;
+1644;CANADIAN SYLLABICS CARRIER ZI;Lo;0;L;;;;;N;;;;;
+1645;CANADIAN SYLLABICS CARRIER ZA;Lo;0;L;;;;;N;;;;;
+1646;CANADIAN SYLLABICS CARRIER Z;Lo;0;L;;;;;N;;;;;
+1647;CANADIAN SYLLABICS CARRIER INITIAL Z;Lo;0;L;;;;;N;;;;;
+1648;CANADIAN SYLLABICS CARRIER DZU;Lo;0;L;;;;;N;;;;;
+1649;CANADIAN SYLLABICS CARRIER DZO;Lo;0;L;;;;;N;;;;;
+164A;CANADIAN SYLLABICS CARRIER DZE;Lo;0;L;;;;;N;;;;;
+164B;CANADIAN SYLLABICS CARRIER DZEE;Lo;0;L;;;;;N;;;;;
+164C;CANADIAN SYLLABICS CARRIER DZI;Lo;0;L;;;;;N;;;;;
+164D;CANADIAN SYLLABICS CARRIER DZA;Lo;0;L;;;;;N;;;;;
+164E;CANADIAN SYLLABICS CARRIER SU;Lo;0;L;;;;;N;;;;;
+164F;CANADIAN SYLLABICS CARRIER SO;Lo;0;L;;;;;N;;;;;
+1650;CANADIAN SYLLABICS CARRIER SE;Lo;0;L;;;;;N;;;;;
+1651;CANADIAN SYLLABICS CARRIER SEE;Lo;0;L;;;;;N;;;;;
+1652;CANADIAN SYLLABICS CARRIER SI;Lo;0;L;;;;;N;;;;;
+1653;CANADIAN SYLLABICS CARRIER SA;Lo;0;L;;;;;N;;;;;
+1654;CANADIAN SYLLABICS CARRIER SHU;Lo;0;L;;;;;N;;;;;
+1655;CANADIAN SYLLABICS CARRIER SHO;Lo;0;L;;;;;N;;;;;
+1656;CANADIAN SYLLABICS CARRIER SHE;Lo;0;L;;;;;N;;;;;
+1657;CANADIAN SYLLABICS CARRIER SHEE;Lo;0;L;;;;;N;;;;;
+1658;CANADIAN SYLLABICS CARRIER SHI;Lo;0;L;;;;;N;;;;;
+1659;CANADIAN SYLLABICS CARRIER SHA;Lo;0;L;;;;;N;;;;;
+165A;CANADIAN SYLLABICS CARRIER SH;Lo;0;L;;;;;N;;;;;
+165B;CANADIAN SYLLABICS CARRIER TSU;Lo;0;L;;;;;N;;;;;
+165C;CANADIAN SYLLABICS CARRIER TSO;Lo;0;L;;;;;N;;;;;
+165D;CANADIAN SYLLABICS CARRIER TSE;Lo;0;L;;;;;N;;;;;
+165E;CANADIAN SYLLABICS CARRIER TSEE;Lo;0;L;;;;;N;;;;;
+165F;CANADIAN SYLLABICS CARRIER TSI;Lo;0;L;;;;;N;;;;;
+1660;CANADIAN SYLLABICS CARRIER TSA;Lo;0;L;;;;;N;;;;;
+1661;CANADIAN SYLLABICS CARRIER CHU;Lo;0;L;;;;;N;;;;;
+1662;CANADIAN SYLLABICS CARRIER CHO;Lo;0;L;;;;;N;;;;;
+1663;CANADIAN SYLLABICS CARRIER CHE;Lo;0;L;;;;;N;;;;;
+1664;CANADIAN SYLLABICS CARRIER CHEE;Lo;0;L;;;;;N;;;;;
+1665;CANADIAN SYLLABICS CARRIER CHI;Lo;0;L;;;;;N;;;;;
+1666;CANADIAN SYLLABICS CARRIER CHA;Lo;0;L;;;;;N;;;;;
+1667;CANADIAN SYLLABICS CARRIER TTSU;Lo;0;L;;;;;N;;;;;
+1668;CANADIAN SYLLABICS CARRIER TTSO;Lo;0;L;;;;;N;;;;;
+1669;CANADIAN SYLLABICS CARRIER TTSE;Lo;0;L;;;;;N;;;;;
+166A;CANADIAN SYLLABICS CARRIER TTSEE;Lo;0;L;;;;;N;;;;;
+166B;CANADIAN SYLLABICS CARRIER TTSI;Lo;0;L;;;;;N;;;;;
+166C;CANADIAN SYLLABICS CARRIER TTSA;Lo;0;L;;;;;N;;;;;
+166D;CANADIAN SYLLABICS CHI SIGN;Po;0;L;;;;;N;;;;;
+166E;CANADIAN SYLLABICS FULL STOP;Po;0;L;;;;;N;;;;;
+166F;CANADIAN SYLLABICS QAI;Lo;0;L;;;;;N;;;;;
+1670;CANADIAN SYLLABICS NGAI;Lo;0;L;;;;;N;;;;;
+1671;CANADIAN SYLLABICS NNGI;Lo;0;L;;;;;N;;;;;
+1672;CANADIAN SYLLABICS NNGII;Lo;0;L;;;;;N;;;;;
+1673;CANADIAN SYLLABICS NNGO;Lo;0;L;;;;;N;;;;;
+1674;CANADIAN SYLLABICS NNGOO;Lo;0;L;;;;;N;;;;;
+1675;CANADIAN SYLLABICS NNGA;Lo;0;L;;;;;N;;;;;
+1676;CANADIAN SYLLABICS NNGAA;Lo;0;L;;;;;N;;;;;
+1680;OGHAM SPACE MARK;Zs;0;WS;;;;;N;;;;;
+1681;OGHAM LETTER BEITH;Lo;0;L;;;;;N;;;;;
+1682;OGHAM LETTER LUIS;Lo;0;L;;;;;N;;;;;
+1683;OGHAM LETTER FEARN;Lo;0;L;;;;;N;;;;;
+1684;OGHAM LETTER SAIL;Lo;0;L;;;;;N;;;;;
+1685;OGHAM LETTER NION;Lo;0;L;;;;;N;;;;;
+1686;OGHAM LETTER UATH;Lo;0;L;;;;;N;;;;;
+1687;OGHAM LETTER DAIR;Lo;0;L;;;;;N;;;;;
+1688;OGHAM LETTER TINNE;Lo;0;L;;;;;N;;;;;
+1689;OGHAM LETTER COLL;Lo;0;L;;;;;N;;;;;
+168A;OGHAM LETTER CEIRT;Lo;0;L;;;;;N;;;;;
+168B;OGHAM LETTER MUIN;Lo;0;L;;;;;N;;;;;
+168C;OGHAM LETTER GORT;Lo;0;L;;;;;N;;;;;
+168D;OGHAM LETTER NGEADAL;Lo;0;L;;;;;N;;;;;
+168E;OGHAM LETTER STRAIF;Lo;0;L;;;;;N;;;;;
+168F;OGHAM LETTER RUIS;Lo;0;L;;;;;N;;;;;
+1690;OGHAM LETTER AILM;Lo;0;L;;;;;N;;;;;
+1691;OGHAM LETTER ONN;Lo;0;L;;;;;N;;;;;
+1692;OGHAM LETTER UR;Lo;0;L;;;;;N;;;;;
+1693;OGHAM LETTER EADHADH;Lo;0;L;;;;;N;;;;;
+1694;OGHAM LETTER IODHADH;Lo;0;L;;;;;N;;;;;
+1695;OGHAM LETTER EABHADH;Lo;0;L;;;;;N;;;;;
+1696;OGHAM LETTER OR;Lo;0;L;;;;;N;;;;;
+1697;OGHAM LETTER UILLEANN;Lo;0;L;;;;;N;;;;;
+1698;OGHAM LETTER IFIN;Lo;0;L;;;;;N;;;;;
+1699;OGHAM LETTER EAMHANCHOLL;Lo;0;L;;;;;N;;;;;
+169A;OGHAM LETTER PEITH;Lo;0;L;;;;;N;;;;;
+169B;OGHAM FEATHER MARK;Ps;0;ON;;;;;N;;;;;
+169C;OGHAM REVERSED FEATHER MARK;Pe;0;ON;;;;;N;;;;;
+16A0;RUNIC LETTER FEHU FEOH FE F;Lo;0;L;;;;;N;;;;;
+16A1;RUNIC LETTER V;Lo;0;L;;;;;N;;;;;
+16A2;RUNIC LETTER URUZ UR U;Lo;0;L;;;;;N;;;;;
+16A3;RUNIC LETTER YR;Lo;0;L;;;;;N;;;;;
+16A4;RUNIC LETTER Y;Lo;0;L;;;;;N;;;;;
+16A5;RUNIC LETTER W;Lo;0;L;;;;;N;;;;;
+16A6;RUNIC LETTER THURISAZ THURS THORN;Lo;0;L;;;;;N;;;;;
+16A7;RUNIC LETTER ETH;Lo;0;L;;;;;N;;;;;
+16A8;RUNIC LETTER ANSUZ A;Lo;0;L;;;;;N;;;;;
+16A9;RUNIC LETTER OS O;Lo;0;L;;;;;N;;;;;
+16AA;RUNIC LETTER AC A;Lo;0;L;;;;;N;;;;;
+16AB;RUNIC LETTER AESC;Lo;0;L;;;;;N;;;;;
+16AC;RUNIC LETTER LONG-BRANCH-OSS O;Lo;0;L;;;;;N;;;;;
+16AD;RUNIC LETTER SHORT-TWIG-OSS O;Lo;0;L;;;;;N;;;;;
+16AE;RUNIC LETTER O;Lo;0;L;;;;;N;;;;;
+16AF;RUNIC LETTER OE;Lo;0;L;;;;;N;;;;;
+16B0;RUNIC LETTER ON;Lo;0;L;;;;;N;;;;;
+16B1;RUNIC LETTER RAIDO RAD REID R;Lo;0;L;;;;;N;;;;;
+16B2;RUNIC LETTER KAUNA;Lo;0;L;;;;;N;;;;;
+16B3;RUNIC LETTER CEN;Lo;0;L;;;;;N;;;;;
+16B4;RUNIC LETTER KAUN K;Lo;0;L;;;;;N;;;;;
+16B5;RUNIC LETTER G;Lo;0;L;;;;;N;;;;;
+16B6;RUNIC LETTER ENG;Lo;0;L;;;;;N;;;;;
+16B7;RUNIC LETTER GEBO GYFU G;Lo;0;L;;;;;N;;;;;
+16B8;RUNIC LETTER GAR;Lo;0;L;;;;;N;;;;;
+16B9;RUNIC LETTER WUNJO WYNN W;Lo;0;L;;;;;N;;;;;
+16BA;RUNIC LETTER HAGLAZ H;Lo;0;L;;;;;N;;;;;
+16BB;RUNIC LETTER HAEGL H;Lo;0;L;;;;;N;;;;;
+16BC;RUNIC LETTER LONG-BRANCH-HAGALL H;Lo;0;L;;;;;N;;;;;
+16BD;RUNIC LETTER SHORT-TWIG-HAGALL H;Lo;0;L;;;;;N;;;;;
+16BE;RUNIC LETTER NAUDIZ NYD NAUD N;Lo;0;L;;;;;N;;;;;
+16BF;RUNIC LETTER SHORT-TWIG-NAUD N;Lo;0;L;;;;;N;;;;;
+16C0;RUNIC LETTER DOTTED-N;Lo;0;L;;;;;N;;;;;
+16C1;RUNIC LETTER ISAZ IS ISS I;Lo;0;L;;;;;N;;;;;
+16C2;RUNIC LETTER E;Lo;0;L;;;;;N;;;;;
+16C3;RUNIC LETTER JERAN J;Lo;0;L;;;;;N;;;;;
+16C4;RUNIC LETTER GER;Lo;0;L;;;;;N;;;;;
+16C5;RUNIC LETTER LONG-BRANCH-AR AE;Lo;0;L;;;;;N;;;;;
+16C6;RUNIC LETTER SHORT-TWIG-AR A;Lo;0;L;;;;;N;;;;;
+16C7;RUNIC LETTER IWAZ EOH;Lo;0;L;;;;;N;;;;;
+16C8;RUNIC LETTER PERTHO PEORTH P;Lo;0;L;;;;;N;;;;;
+16C9;RUNIC LETTER ALGIZ EOLHX;Lo;0;L;;;;;N;;;;;
+16CA;RUNIC LETTER SOWILO S;Lo;0;L;;;;;N;;;;;
+16CB;RUNIC LETTER SIGEL LONG-BRANCH-SOL S;Lo;0;L;;;;;N;;;;;
+16CC;RUNIC LETTER SHORT-TWIG-SOL S;Lo;0;L;;;;;N;;;;;
+16CD;RUNIC LETTER C;Lo;0;L;;;;;N;;;;;
+16CE;RUNIC LETTER Z;Lo;0;L;;;;;N;;;;;
+16CF;RUNIC LETTER TIWAZ TIR TYR T;Lo;0;L;;;;;N;;;;;
+16D0;RUNIC LETTER SHORT-TWIG-TYR T;Lo;0;L;;;;;N;;;;;
+16D1;RUNIC LETTER D;Lo;0;L;;;;;N;;;;;
+16D2;RUNIC LETTER BERKANAN BEORC BJARKAN B;Lo;0;L;;;;;N;;;;;
+16D3;RUNIC LETTER SHORT-TWIG-BJARKAN B;Lo;0;L;;;;;N;;;;;
+16D4;RUNIC LETTER DOTTED-P;Lo;0;L;;;;;N;;;;;
+16D5;RUNIC LETTER OPEN-P;Lo;0;L;;;;;N;;;;;
+16D6;RUNIC LETTER EHWAZ EH E;Lo;0;L;;;;;N;;;;;
+16D7;RUNIC LETTER MANNAZ MAN M;Lo;0;L;;;;;N;;;;;
+16D8;RUNIC LETTER LONG-BRANCH-MADR M;Lo;0;L;;;;;N;;;;;
+16D9;RUNIC LETTER SHORT-TWIG-MADR M;Lo;0;L;;;;;N;;;;;
+16DA;RUNIC LETTER LAUKAZ LAGU LOGR L;Lo;0;L;;;;;N;;;;;
+16DB;RUNIC LETTER DOTTED-L;Lo;0;L;;;;;N;;;;;
+16DC;RUNIC LETTER INGWAZ;Lo;0;L;;;;;N;;;;;
+16DD;RUNIC LETTER ING;Lo;0;L;;;;;N;;;;;
+16DE;RUNIC LETTER DAGAZ DAEG D;Lo;0;L;;;;;N;;;;;
+16DF;RUNIC LETTER OTHALAN ETHEL O;Lo;0;L;;;;;N;;;;;
+16E0;RUNIC LETTER EAR;Lo;0;L;;;;;N;;;;;
+16E1;RUNIC LETTER IOR;Lo;0;L;;;;;N;;;;;
+16E2;RUNIC LETTER CWEORTH;Lo;0;L;;;;;N;;;;;
+16E3;RUNIC LETTER CALC;Lo;0;L;;;;;N;;;;;
+16E4;RUNIC LETTER CEALC;Lo;0;L;;;;;N;;;;;
+16E5;RUNIC LETTER STAN;Lo;0;L;;;;;N;;;;;
+16E6;RUNIC LETTER LONG-BRANCH-YR;Lo;0;L;;;;;N;;;;;
+16E7;RUNIC LETTER SHORT-TWIG-YR;Lo;0;L;;;;;N;;;;;
+16E8;RUNIC LETTER ICELANDIC-YR;Lo;0;L;;;;;N;;;;;
+16E9;RUNIC LETTER Q;Lo;0;L;;;;;N;;;;;
+16EA;RUNIC LETTER X;Lo;0;L;;;;;N;;;;;
+16EB;RUNIC SINGLE PUNCTUATION;Po;0;L;;;;;N;;;;;
+16EC;RUNIC MULTIPLE PUNCTUATION;Po;0;L;;;;;N;;;;;
+16ED;RUNIC CROSS PUNCTUATION;Po;0;L;;;;;N;;;;;
+16EE;RUNIC ARLAUG SYMBOL;No;0;L;;;;17;N;;golden number 17;;;
+16EF;RUNIC TVIMADUR SYMBOL;No;0;L;;;;18;N;;golden number 18;;;
+16F0;RUNIC BELGTHOR SYMBOL;No;0;L;;;;19;N;;golden number 19;;;
+1780;KHMER LETTER KA;Lo;0;L;;;;;N;;;;;
+1781;KHMER LETTER KHA;Lo;0;L;;;;;N;;;;;
+1782;KHMER LETTER KO;Lo;0;L;;;;;N;;;;;
+1783;KHMER LETTER KHO;Lo;0;L;;;;;N;;;;;
+1784;KHMER LETTER NGO;Lo;0;L;;;;;N;;;;;
+1785;KHMER LETTER CA;Lo;0;L;;;;;N;;;;;
+1786;KHMER LETTER CHA;Lo;0;L;;;;;N;;;;;
+1787;KHMER LETTER CO;Lo;0;L;;;;;N;;;;;
+1788;KHMER LETTER CHO;Lo;0;L;;;;;N;;;;;
+1789;KHMER LETTER NYO;Lo;0;L;;;;;N;;;;;
+178A;KHMER LETTER DA;Lo;0;L;;;;;N;;;;;
+178B;KHMER LETTER TTHA;Lo;0;L;;;;;N;;;;;
+178C;KHMER LETTER DO;Lo;0;L;;;;;N;;;;;
+178D;KHMER LETTER TTHO;Lo;0;L;;;;;N;;;;;
+178E;KHMER LETTER NNO;Lo;0;L;;;;;N;;;;;
+178F;KHMER LETTER TA;Lo;0;L;;;;;N;;;;;
+1790;KHMER LETTER THA;Lo;0;L;;;;;N;;;;;
+1791;KHMER LETTER TO;Lo;0;L;;;;;N;;;;;
+1792;KHMER LETTER THO;Lo;0;L;;;;;N;;;;;
+1793;KHMER LETTER NO;Lo;0;L;;;;;N;;;;;
+1794;KHMER LETTER BA;Lo;0;L;;;;;N;;;;;
+1795;KHMER LETTER PHA;Lo;0;L;;;;;N;;;;;
+1796;KHMER LETTER PO;Lo;0;L;;;;;N;;;;;
+1797;KHMER LETTER PHO;Lo;0;L;;;;;N;;;;;
+1798;KHMER LETTER MO;Lo;0;L;;;;;N;;;;;
+1799;KHMER LETTER YO;Lo;0;L;;;;;N;;;;;
+179A;KHMER LETTER RO;Lo;0;L;;;;;N;;;;;
+179B;KHMER LETTER LO;Lo;0;L;;;;;N;;;;;
+179C;KHMER LETTER VO;Lo;0;L;;;;;N;;;;;
+179D;KHMER LETTER SHA;Lo;0;L;;;;;N;;;;;
+179E;KHMER LETTER SSO;Lo;0;L;;;;;N;;;;;
+179F;KHMER LETTER SA;Lo;0;L;;;;;N;;;;;
+17A0;KHMER LETTER HA;Lo;0;L;;;;;N;;;;;
+17A1;KHMER LETTER LA;Lo;0;L;;;;;N;;;;;
+17A2;KHMER LETTER QA;Lo;0;L;;;;;N;;;;;
+17A3;KHMER INDEPENDENT VOWEL QAQ;Lo;0;L;;;;;N;;;;;
+17A4;KHMER INDEPENDENT VOWEL QAA;Lo;0;L;;;;;N;;;;;
+17A5;KHMER INDEPENDENT VOWEL QI;Lo;0;L;;;;;N;;;;;
+17A6;KHMER INDEPENDENT VOWEL QII;Lo;0;L;;;;;N;;;;;
+17A7;KHMER INDEPENDENT VOWEL QU;Lo;0;L;;;;;N;;;;;
+17A8;KHMER INDEPENDENT VOWEL QUK;Lo;0;L;;;;;N;;;;;
+17A9;KHMER INDEPENDENT VOWEL QUU;Lo;0;L;;;;;N;;;;;
+17AA;KHMER INDEPENDENT VOWEL QUUV;Lo;0;L;;;;;N;;;;;
+17AB;KHMER INDEPENDENT VOWEL RY;Lo;0;L;;;;;N;;;;;
+17AC;KHMER INDEPENDENT VOWEL RYY;Lo;0;L;;;;;N;;;;;
+17AD;KHMER INDEPENDENT VOWEL LY;Lo;0;L;;;;;N;;;;;
+17AE;KHMER INDEPENDENT VOWEL LYY;Lo;0;L;;;;;N;;;;;
+17AF;KHMER INDEPENDENT VOWEL QE;Lo;0;L;;;;;N;;;;;
+17B0;KHMER INDEPENDENT VOWEL QAI;Lo;0;L;;;;;N;;;;;
+17B1;KHMER INDEPENDENT VOWEL QOO TYPE ONE;Lo;0;L;;;;;N;;;;;
+17B2;KHMER INDEPENDENT VOWEL QOO TYPE TWO;Lo;0;L;;;;;N;;;;;
+17B3;KHMER INDEPENDENT VOWEL QAU;Lo;0;L;;;;;N;;;;;
+17B4;KHMER VOWEL INHERENT AQ;Mc;0;L;;;;;N;;;;;
+17B5;KHMER VOWEL INHERENT AA;Mc;0;L;;;;;N;;;;;
+17B6;KHMER VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+17B7;KHMER VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
+17B8;KHMER VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;;
+17B9;KHMER VOWEL SIGN Y;Mn;0;NSM;;;;;N;;;;;
+17BA;KHMER VOWEL SIGN YY;Mn;0;NSM;;;;;N;;;;;
+17BB;KHMER VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+17BC;KHMER VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
+17BD;KHMER VOWEL SIGN UA;Mn;0;NSM;;;;;N;;;;;
+17BE;KHMER VOWEL SIGN OE;Mc;0;L;;;;;N;;;;;
+17BF;KHMER VOWEL SIGN YA;Mc;0;L;;;;;N;;;;;
+17C0;KHMER VOWEL SIGN IE;Mc;0;L;;;;;N;;;;;
+17C1;KHMER VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
+17C2;KHMER VOWEL SIGN AE;Mc;0;L;;;;;N;;;;;
+17C3;KHMER VOWEL SIGN AI;Mc;0;L;;;;;N;;;;;
+17C4;KHMER VOWEL SIGN OO;Mc;0;L;;;;;N;;;;;
+17C5;KHMER VOWEL SIGN AU;Mc;0;L;;;;;N;;;;;
+17C6;KHMER SIGN NIKAHIT;Mn;0;NSM;;;;;N;;;;;
+17C7;KHMER SIGN REAHMUK;Mc;0;L;;;;;N;;;;;
+17C8;KHMER SIGN YUUKALEAPINTU;Mc;0;L;;;;;N;;;;;
+17C9;KHMER SIGN MUUSIKATOAN;Mn;0;NSM;;;;;N;;;;;
+17CA;KHMER SIGN TRIISAP;Mn;0;NSM;;;;;N;;;;;
+17CB;KHMER SIGN BANTOC;Mn;0;NSM;;;;;N;;;;;
+17CC;KHMER SIGN ROBAT;Mn;0;NSM;;;;;N;;;;;
+17CD;KHMER SIGN TOANDAKHIAT;Mn;0;NSM;;;;;N;;;;;
+17CE;KHMER SIGN KAKABAT;Mn;0;NSM;;;;;N;;;;;
+17CF;KHMER SIGN AHSDA;Mn;0;NSM;;;;;N;;;;;
+17D0;KHMER SIGN SAMYOK SANNYA;Mn;0;NSM;;;;;N;;;;;
+17D1;KHMER SIGN VIRIAM;Mn;0;NSM;;;;;N;;;;;
+17D2;KHMER SIGN COENG;Mn;9;NSM;;;;;N;;;;;
+17D3;KHMER SIGN BATHAMASAT;Mn;0;NSM;;;;;N;;;;;
+17D4;KHMER SIGN KHAN;Po;0;L;;;;;N;;;;;
+17D5;KHMER SIGN BARIYOOSAN;Po;0;L;;;;;N;;;;;
+17D6;KHMER SIGN CAMNUC PII KUUH;Po;0;L;;;;;N;;;;;
+17D7;KHMER SIGN LEK TOO;Po;0;L;;;;;N;;;;;
+17D8;KHMER SIGN BEYYAL;Po;0;L;;;;;N;;;;;
+17D9;KHMER SIGN PHNAEK MUAN;Po;0;L;;;;;N;;;;;
+17DA;KHMER SIGN KOOMUUT;Po;0;L;;;;;N;;;;;
+17DB;KHMER CURRENCY SYMBOL RIEL;Sc;0;ET;;;;;N;;;;;
+17DC;KHMER SIGN AVAKRAHASANYA;Po;0;L;;;;;N;;;;;
+17E0;KHMER DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+17E1;KHMER DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+17E2;KHMER DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+17E3;KHMER DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+17E4;KHMER DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+17E5;KHMER DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+17E6;KHMER DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+17E7;KHMER DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+17E8;KHMER DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+17E9;KHMER DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+1800;MONGOLIAN BIRGA;Po;0;ON;;;;;N;;;;;
+1801;MONGOLIAN ELLIPSIS;Po;0;ON;;;;;N;;;;;
+1802;MONGOLIAN COMMA;Po;0;ON;;;;;N;;;;;
+1803;MONGOLIAN FULL STOP;Po;0;ON;;;;;N;;;;;
+1804;MONGOLIAN COLON;Po;0;ON;;;;;N;;;;;
+1805;MONGOLIAN FOUR DOTS;Po;0;ON;;;;;N;;;;;
+1806;MONGOLIAN TODO SOFT HYPHEN;Pd;0;ON;;;;;N;;;;;
+1807;MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER;Po;0;ON;;;;;N;;;;;
+1808;MONGOLIAN MANCHU COMMA;Po;0;ON;;;;;N;;;;;
+1809;MONGOLIAN MANCHU FULL STOP;Po;0;ON;;;;;N;;;;;
+180A;MONGOLIAN NIRUGU;Po;0;ON;;;;;N;;;;;
+180B;MONGOLIAN FREE VARIATION SELECTOR ONE;Cf;0;BN;;;;;N;;;;;
+180C;MONGOLIAN FREE VARIATION SELECTOR TWO;Cf;0;BN;;;;;N;;;;;
+180D;MONGOLIAN FREE VARIATION SELECTOR THREE;Cf;0;BN;;;;;N;;;;;
+180E;MONGOLIAN VOWEL SEPARATOR;Cf;0;BN;;;;;N;;;;;
+1810;MONGOLIAN DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+1811;MONGOLIAN DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+1812;MONGOLIAN DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+1813;MONGOLIAN DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+1814;MONGOLIAN DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+1815;MONGOLIAN DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+1816;MONGOLIAN DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+1817;MONGOLIAN DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+1818;MONGOLIAN DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+1819;MONGOLIAN DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+1820;MONGOLIAN LETTER A;Lo;0;L;;;;;N;;;;;
+1821;MONGOLIAN LETTER E;Lo;0;L;;;;;N;;;;;
+1822;MONGOLIAN LETTER I;Lo;0;L;;;;;N;;;;;
+1823;MONGOLIAN LETTER O;Lo;0;L;;;;;N;;;;;
+1824;MONGOLIAN LETTER U;Lo;0;L;;;;;N;;;;;
+1825;MONGOLIAN LETTER OE;Lo;0;L;;;;;N;;;;;
+1826;MONGOLIAN LETTER UE;Lo;0;L;;;;;N;;;;;
+1827;MONGOLIAN LETTER EE;Lo;0;L;;;;;N;;;;;
+1828;MONGOLIAN LETTER NA;Lo;0;L;;;;;N;;;;;
+1829;MONGOLIAN LETTER ANG;Lo;0;L;;;;;N;;;;;
+182A;MONGOLIAN LETTER BA;Lo;0;L;;;;;N;;;;;
+182B;MONGOLIAN LETTER PA;Lo;0;L;;;;;N;;;;;
+182C;MONGOLIAN LETTER QA;Lo;0;L;;;;;N;;;;;
+182D;MONGOLIAN LETTER GA;Lo;0;L;;;;;N;;;;;
+182E;MONGOLIAN LETTER MA;Lo;0;L;;;;;N;;;;;
+182F;MONGOLIAN LETTER LA;Lo;0;L;;;;;N;;;;;
+1830;MONGOLIAN LETTER SA;Lo;0;L;;;;;N;;;;;
+1831;MONGOLIAN LETTER SHA;Lo;0;L;;;;;N;;;;;
+1832;MONGOLIAN LETTER TA;Lo;0;L;;;;;N;;;;;
+1833;MONGOLIAN LETTER DA;Lo;0;L;;;;;N;;;;;
+1834;MONGOLIAN LETTER CHA;Lo;0;L;;;;;N;;;;;
+1835;MONGOLIAN LETTER JA;Lo;0;L;;;;;N;;;;;
+1836;MONGOLIAN LETTER YA;Lo;0;L;;;;;N;;;;;
+1837;MONGOLIAN LETTER RA;Lo;0;L;;;;;N;;;;;
+1838;MONGOLIAN LETTER WA;Lo;0;L;;;;;N;;;;;
+1839;MONGOLIAN LETTER FA;Lo;0;L;;;;;N;;;;;
+183A;MONGOLIAN LETTER KA;Lo;0;L;;;;;N;;;;;
+183B;MONGOLIAN LETTER KHA;Lo;0;L;;;;;N;;;;;
+183C;MONGOLIAN LETTER TSA;Lo;0;L;;;;;N;;;;;
+183D;MONGOLIAN LETTER ZA;Lo;0;L;;;;;N;;;;;
+183E;MONGOLIAN LETTER HAA;Lo;0;L;;;;;N;;;;;
+183F;MONGOLIAN LETTER ZRA;Lo;0;L;;;;;N;;;;;
+1840;MONGOLIAN LETTER LHA;Lo;0;L;;;;;N;;;;;
+1841;MONGOLIAN LETTER ZHI;Lo;0;L;;;;;N;;;;;
+1842;MONGOLIAN LETTER CHI;Lo;0;L;;;;;N;;;;;
+1843;MONGOLIAN LETTER TODO LONG VOWEL SIGN;Lm;0;L;;;;;N;;;;;
+1844;MONGOLIAN LETTER TODO E;Lo;0;L;;;;;N;;;;;
+1845;MONGOLIAN LETTER TODO I;Lo;0;L;;;;;N;;;;;
+1846;MONGOLIAN LETTER TODO O;Lo;0;L;;;;;N;;;;;
+1847;MONGOLIAN LETTER TODO U;Lo;0;L;;;;;N;;;;;
+1848;MONGOLIAN LETTER TODO OE;Lo;0;L;;;;;N;;;;;
+1849;MONGOLIAN LETTER TODO UE;Lo;0;L;;;;;N;;;;;
+184A;MONGOLIAN LETTER TODO ANG;Lo;0;L;;;;;N;;;;;
+184B;MONGOLIAN LETTER TODO BA;Lo;0;L;;;;;N;;;;;
+184C;MONGOLIAN LETTER TODO PA;Lo;0;L;;;;;N;;;;;
+184D;MONGOLIAN LETTER TODO QA;Lo;0;L;;;;;N;;;;;
+184E;MONGOLIAN LETTER TODO GA;Lo;0;L;;;;;N;;;;;
+184F;MONGOLIAN LETTER TODO MA;Lo;0;L;;;;;N;;;;;
+1850;MONGOLIAN LETTER TODO TA;Lo;0;L;;;;;N;;;;;
+1851;MONGOLIAN LETTER TODO DA;Lo;0;L;;;;;N;;;;;
+1852;MONGOLIAN LETTER TODO CHA;Lo;0;L;;;;;N;;;;;
+1853;MONGOLIAN LETTER TODO JA;Lo;0;L;;;;;N;;;;;
+1854;MONGOLIAN LETTER TODO TSA;Lo;0;L;;;;;N;;;;;
+1855;MONGOLIAN LETTER TODO YA;Lo;0;L;;;;;N;;;;;
+1856;MONGOLIAN LETTER TODO WA;Lo;0;L;;;;;N;;;;;
+1857;MONGOLIAN LETTER TODO KA;Lo;0;L;;;;;N;;;;;
+1858;MONGOLIAN LETTER TODO GAA;Lo;0;L;;;;;N;;;;;
+1859;MONGOLIAN LETTER TODO HAA;Lo;0;L;;;;;N;;;;;
+185A;MONGOLIAN LETTER TODO JIA;Lo;0;L;;;;;N;;;;;
+185B;MONGOLIAN LETTER TODO NIA;Lo;0;L;;;;;N;;;;;
+185C;MONGOLIAN LETTER TODO DZA;Lo;0;L;;;;;N;;;;;
+185D;MONGOLIAN LETTER SIBE E;Lo;0;L;;;;;N;;;;;
+185E;MONGOLIAN LETTER SIBE I;Lo;0;L;;;;;N;;;;;
+185F;MONGOLIAN LETTER SIBE IY;Lo;0;L;;;;;N;;;;;
+1860;MONGOLIAN LETTER SIBE UE;Lo;0;L;;;;;N;;;;;
+1861;MONGOLIAN LETTER SIBE U;Lo;0;L;;;;;N;;;;;
+1862;MONGOLIAN LETTER SIBE ANG;Lo;0;L;;;;;N;;;;;
+1863;MONGOLIAN LETTER SIBE KA;Lo;0;L;;;;;N;;;;;
+1864;MONGOLIAN LETTER SIBE GA;Lo;0;L;;;;;N;;;;;
+1865;MONGOLIAN LETTER SIBE HA;Lo;0;L;;;;;N;;;;;
+1866;MONGOLIAN LETTER SIBE PA;Lo;0;L;;;;;N;;;;;
+1867;MONGOLIAN LETTER SIBE SHA;Lo;0;L;;;;;N;;;;;
+1868;MONGOLIAN LETTER SIBE TA;Lo;0;L;;;;;N;;;;;
+1869;MONGOLIAN LETTER SIBE DA;Lo;0;L;;;;;N;;;;;
+186A;MONGOLIAN LETTER SIBE JA;Lo;0;L;;;;;N;;;;;
+186B;MONGOLIAN LETTER SIBE FA;Lo;0;L;;;;;N;;;;;
+186C;MONGOLIAN LETTER SIBE GAA;Lo;0;L;;;;;N;;;;;
+186D;MONGOLIAN LETTER SIBE HAA;Lo;0;L;;;;;N;;;;;
+186E;MONGOLIAN LETTER SIBE TSA;Lo;0;L;;;;;N;;;;;
+186F;MONGOLIAN LETTER SIBE ZA;Lo;0;L;;;;;N;;;;;
+1870;MONGOLIAN LETTER SIBE RAA;Lo;0;L;;;;;N;;;;;
+1871;MONGOLIAN LETTER SIBE CHA;Lo;0;L;;;;;N;;;;;
+1872;MONGOLIAN LETTER SIBE ZHA;Lo;0;L;;;;;N;;;;;
+1873;MONGOLIAN LETTER MANCHU I;Lo;0;L;;;;;N;;;;;
+1874;MONGOLIAN LETTER MANCHU KA;Lo;0;L;;;;;N;;;;;
+1875;MONGOLIAN LETTER MANCHU RA;Lo;0;L;;;;;N;;;;;
+1876;MONGOLIAN LETTER MANCHU FA;Lo;0;L;;;;;N;;;;;
+1877;MONGOLIAN LETTER MANCHU ZHA;Lo;0;L;;;;;N;;;;;
+1880;MONGOLIAN LETTER ALI GALI ANUSVARA ONE;Lo;0;L;;;;;N;;;;;
+1881;MONGOLIAN LETTER ALI GALI VISARGA ONE;Lo;0;L;;;;;N;;;;;
+1882;MONGOLIAN LETTER ALI GALI DAMARU;Lo;0;L;;;;;N;;;;;
+1883;MONGOLIAN LETTER ALI GALI UBADAMA;Lo;0;L;;;;;N;;;;;
+1884;MONGOLIAN LETTER ALI GALI INVERTED UBADAMA;Lo;0;L;;;;;N;;;;;
+1885;MONGOLIAN LETTER ALI GALI BALUDA;Lo;0;L;;;;;N;;;;;
+1886;MONGOLIAN LETTER ALI GALI THREE BALUDA;Lo;0;L;;;;;N;;;;;
+1887;MONGOLIAN LETTER ALI GALI A;Lo;0;L;;;;;N;;;;;
+1888;MONGOLIAN LETTER ALI GALI I;Lo;0;L;;;;;N;;;;;
+1889;MONGOLIAN LETTER ALI GALI KA;Lo;0;L;;;;;N;;;;;
+188A;MONGOLIAN LETTER ALI GALI NGA;Lo;0;L;;;;;N;;;;;
+188B;MONGOLIAN LETTER ALI GALI CA;Lo;0;L;;;;;N;;;;;
+188C;MONGOLIAN LETTER ALI GALI TTA;Lo;0;L;;;;;N;;;;;
+188D;MONGOLIAN LETTER ALI GALI TTHA;Lo;0;L;;;;;N;;;;;
+188E;MONGOLIAN LETTER ALI GALI DDA;Lo;0;L;;;;;N;;;;;
+188F;MONGOLIAN LETTER ALI GALI NNA;Lo;0;L;;;;;N;;;;;
+1890;MONGOLIAN LETTER ALI GALI TA;Lo;0;L;;;;;N;;;;;
+1891;MONGOLIAN LETTER ALI GALI DA;Lo;0;L;;;;;N;;;;;
+1892;MONGOLIAN LETTER ALI GALI PA;Lo;0;L;;;;;N;;;;;
+1893;MONGOLIAN LETTER ALI GALI PHA;Lo;0;L;;;;;N;;;;;
+1894;MONGOLIAN LETTER ALI GALI SSA;Lo;0;L;;;;;N;;;;;
+1895;MONGOLIAN LETTER ALI GALI ZHA;Lo;0;L;;;;;N;;;;;
+1896;MONGOLIAN LETTER ALI GALI ZA;Lo;0;L;;;;;N;;;;;
+1897;MONGOLIAN LETTER ALI GALI AH;Lo;0;L;;;;;N;;;;;
+1898;MONGOLIAN LETTER TODO ALI GALI TA;Lo;0;L;;;;;N;;;;;
+1899;MONGOLIAN LETTER TODO ALI GALI ZHA;Lo;0;L;;;;;N;;;;;
+189A;MONGOLIAN LETTER MANCHU ALI GALI GHA;Lo;0;L;;;;;N;;;;;
+189B;MONGOLIAN LETTER MANCHU ALI GALI NGA;Lo;0;L;;;;;N;;;;;
+189C;MONGOLIAN LETTER MANCHU ALI GALI CA;Lo;0;L;;;;;N;;;;;
+189D;MONGOLIAN LETTER MANCHU ALI GALI JHA;Lo;0;L;;;;;N;;;;;
+189E;MONGOLIAN LETTER MANCHU ALI GALI TTA;Lo;0;L;;;;;N;;;;;
+189F;MONGOLIAN LETTER MANCHU ALI GALI DDHA;Lo;0;L;;;;;N;;;;;
+18A0;MONGOLIAN LETTER MANCHU ALI GALI TA;Lo;0;L;;;;;N;;;;;
+18A1;MONGOLIAN LETTER MANCHU ALI GALI DHA;Lo;0;L;;;;;N;;;;;
+18A2;MONGOLIAN LETTER MANCHU ALI GALI SSA;Lo;0;L;;;;;N;;;;;
+18A3;MONGOLIAN LETTER MANCHU ALI GALI CYA;Lo;0;L;;;;;N;;;;;
+18A4;MONGOLIAN LETTER MANCHU ALI GALI ZHA;Lo;0;L;;;;;N;;;;;
+18A5;MONGOLIAN LETTER MANCHU ALI GALI ZA;Lo;0;L;;;;;N;;;;;
+18A6;MONGOLIAN LETTER ALI GALI HALF U;Lo;0;L;;;;;N;;;;;
+18A7;MONGOLIAN LETTER ALI GALI HALF YA;Lo;0;L;;;;;N;;;;;
+18A8;MONGOLIAN LETTER MANCHU ALI GALI BHA;Lo;0;L;;;;;N;;;;;
+18A9;MONGOLIAN LETTER ALI GALI DAGALGA;Mn;228;NSM;;;;;N;;;;;
+1E00;LATIN CAPITAL LETTER A WITH RING BELOW;Lu;0;L;0041 0325;;;;N;;;;1E01;
+1E01;LATIN SMALL LETTER A WITH RING BELOW;Ll;0;L;0061 0325;;;;N;;;1E00;;1E00
+1E02;LATIN CAPITAL LETTER B WITH DOT ABOVE;Lu;0;L;0042 0307;;;;N;;;;1E03;
+1E03;LATIN SMALL LETTER B WITH DOT ABOVE;Ll;0;L;0062 0307;;;;N;;;1E02;;1E02
+1E04;LATIN CAPITAL LETTER B WITH DOT BELOW;Lu;0;L;0042 0323;;;;N;;;;1E05;
+1E05;LATIN SMALL LETTER B WITH DOT BELOW;Ll;0;L;0062 0323;;;;N;;;1E04;;1E04
+1E06;LATIN CAPITAL LETTER B WITH LINE BELOW;Lu;0;L;0042 0331;;;;N;;;;1E07;
+1E07;LATIN SMALL LETTER B WITH LINE BELOW;Ll;0;L;0062 0331;;;;N;;;1E06;;1E06
+1E08;LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE;Lu;0;L;00C7 0301;;;;N;;;;1E09;
+1E09;LATIN SMALL LETTER C WITH CEDILLA AND ACUTE;Ll;0;L;00E7 0301;;;;N;;;1E08;;1E08
+1E0A;LATIN CAPITAL LETTER D WITH DOT ABOVE;Lu;0;L;0044 0307;;;;N;;;;1E0B;
+1E0B;LATIN SMALL LETTER D WITH DOT ABOVE;Ll;0;L;0064 0307;;;;N;;;1E0A;;1E0A
+1E0C;LATIN CAPITAL LETTER D WITH DOT BELOW;Lu;0;L;0044 0323;;;;N;;;;1E0D;
+1E0D;LATIN SMALL LETTER D WITH DOT BELOW;Ll;0;L;0064 0323;;;;N;;;1E0C;;1E0C
+1E0E;LATIN CAPITAL LETTER D WITH LINE BELOW;Lu;0;L;0044 0331;;;;N;;;;1E0F;
+1E0F;LATIN SMALL LETTER D WITH LINE BELOW;Ll;0;L;0064 0331;;;;N;;;1E0E;;1E0E
+1E10;LATIN CAPITAL LETTER D WITH CEDILLA;Lu;0;L;0044 0327;;;;N;;;;1E11;
+1E11;LATIN SMALL LETTER D WITH CEDILLA;Ll;0;L;0064 0327;;;;N;;;1E10;;1E10
+1E12;LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW;Lu;0;L;0044 032D;;;;N;;;;1E13;
+1E13;LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW;Ll;0;L;0064 032D;;;;N;;;1E12;;1E12
+1E14;LATIN CAPITAL LETTER E WITH MACRON AND GRAVE;Lu;0;L;0112 0300;;;;N;;;;1E15;
+1E15;LATIN SMALL LETTER E WITH MACRON AND GRAVE;Ll;0;L;0113 0300;;;;N;;;1E14;;1E14
+1E16;LATIN CAPITAL LETTER E WITH MACRON AND ACUTE;Lu;0;L;0112 0301;;;;N;;;;1E17;
+1E17;LATIN SMALL LETTER E WITH MACRON AND ACUTE;Ll;0;L;0113 0301;;;;N;;;1E16;;1E16
+1E18;LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW;Lu;0;L;0045 032D;;;;N;;;;1E19;
+1E19;LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW;Ll;0;L;0065 032D;;;;N;;;1E18;;1E18
+1E1A;LATIN CAPITAL LETTER E WITH TILDE BELOW;Lu;0;L;0045 0330;;;;N;;;;1E1B;
+1E1B;LATIN SMALL LETTER E WITH TILDE BELOW;Ll;0;L;0065 0330;;;;N;;;1E1A;;1E1A
+1E1C;LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE;Lu;0;L;0228 0306;;;;N;;;;1E1D;
+1E1D;LATIN SMALL LETTER E WITH CEDILLA AND BREVE;Ll;0;L;0229 0306;;;;N;;;1E1C;;1E1C
+1E1E;LATIN CAPITAL LETTER F WITH DOT ABOVE;Lu;0;L;0046 0307;;;;N;;;;1E1F;
+1E1F;LATIN SMALL LETTER F WITH DOT ABOVE;Ll;0;L;0066 0307;;;;N;;;1E1E;;1E1E
+1E20;LATIN CAPITAL LETTER G WITH MACRON;Lu;0;L;0047 0304;;;;N;;;;1E21;
+1E21;LATIN SMALL LETTER G WITH MACRON;Ll;0;L;0067 0304;;;;N;;;1E20;;1E20
+1E22;LATIN CAPITAL LETTER H WITH DOT ABOVE;Lu;0;L;0048 0307;;;;N;;;;1E23;
+1E23;LATIN SMALL LETTER H WITH DOT ABOVE;Ll;0;L;0068 0307;;;;N;;;1E22;;1E22
+1E24;LATIN CAPITAL LETTER H WITH DOT BELOW;Lu;0;L;0048 0323;;;;N;;;;1E25;
+1E25;LATIN SMALL LETTER H WITH DOT BELOW;Ll;0;L;0068 0323;;;;N;;;1E24;;1E24
+1E26;LATIN CAPITAL LETTER H WITH DIAERESIS;Lu;0;L;0048 0308;;;;N;;;;1E27;
+1E27;LATIN SMALL LETTER H WITH DIAERESIS;Ll;0;L;0068 0308;;;;N;;;1E26;;1E26
+1E28;LATIN CAPITAL LETTER H WITH CEDILLA;Lu;0;L;0048 0327;;;;N;;;;1E29;
+1E29;LATIN SMALL LETTER H WITH CEDILLA;Ll;0;L;0068 0327;;;;N;;;1E28;;1E28
+1E2A;LATIN CAPITAL LETTER H WITH BREVE BELOW;Lu;0;L;0048 032E;;;;N;;;;1E2B;
+1E2B;LATIN SMALL LETTER H WITH BREVE BELOW;Ll;0;L;0068 032E;;;;N;;;1E2A;;1E2A
+1E2C;LATIN CAPITAL LETTER I WITH TILDE BELOW;Lu;0;L;0049 0330;;;;N;;;;1E2D;
+1E2D;LATIN SMALL LETTER I WITH TILDE BELOW;Ll;0;L;0069 0330;;;;N;;;1E2C;;1E2C
+1E2E;LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE;Lu;0;L;00CF 0301;;;;N;;;;1E2F;
+1E2F;LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE;Ll;0;L;00EF 0301;;;;N;;;1E2E;;1E2E
+1E30;LATIN CAPITAL LETTER K WITH ACUTE;Lu;0;L;004B 0301;;;;N;;;;1E31;
+1E31;LATIN SMALL LETTER K WITH ACUTE;Ll;0;L;006B 0301;;;;N;;;1E30;;1E30
+1E32;LATIN CAPITAL LETTER K WITH DOT BELOW;Lu;0;L;004B 0323;;;;N;;;;1E33;
+1E33;LATIN SMALL LETTER K WITH DOT BELOW;Ll;0;L;006B 0323;;;;N;;;1E32;;1E32
+1E34;LATIN CAPITAL LETTER K WITH LINE BELOW;Lu;0;L;004B 0331;;;;N;;;;1E35;
+1E35;LATIN SMALL LETTER K WITH LINE BELOW;Ll;0;L;006B 0331;;;;N;;;1E34;;1E34
+1E36;LATIN CAPITAL LETTER L WITH DOT BELOW;Lu;0;L;004C 0323;;;;N;;;;1E37;
+1E37;LATIN SMALL LETTER L WITH DOT BELOW;Ll;0;L;006C 0323;;;;N;;;1E36;;1E36
+1E38;LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON;Lu;0;L;1E36 0304;;;;N;;;;1E39;
+1E39;LATIN SMALL LETTER L WITH DOT BELOW AND MACRON;Ll;0;L;1E37 0304;;;;N;;;1E38;;1E38
+1E3A;LATIN CAPITAL LETTER L WITH LINE BELOW;Lu;0;L;004C 0331;;;;N;;;;1E3B;
+1E3B;LATIN SMALL LETTER L WITH LINE BELOW;Ll;0;L;006C 0331;;;;N;;;1E3A;;1E3A
+1E3C;LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW;Lu;0;L;004C 032D;;;;N;;;;1E3D;
+1E3D;LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW;Ll;0;L;006C 032D;;;;N;;;1E3C;;1E3C
+1E3E;LATIN CAPITAL LETTER M WITH ACUTE;Lu;0;L;004D 0301;;;;N;;;;1E3F;
+1E3F;LATIN SMALL LETTER M WITH ACUTE;Ll;0;L;006D 0301;;;;N;;;1E3E;;1E3E
+1E40;LATIN CAPITAL LETTER M WITH DOT ABOVE;Lu;0;L;004D 0307;;;;N;;;;1E41;
+1E41;LATIN SMALL LETTER M WITH DOT ABOVE;Ll;0;L;006D 0307;;;;N;;;1E40;;1E40
+1E42;LATIN CAPITAL LETTER M WITH DOT BELOW;Lu;0;L;004D 0323;;;;N;;;;1E43;
+1E43;LATIN SMALL LETTER M WITH DOT BELOW;Ll;0;L;006D 0323;;;;N;;;1E42;;1E42
+1E44;LATIN CAPITAL LETTER N WITH DOT ABOVE;Lu;0;L;004E 0307;;;;N;;;;1E45;
+1E45;LATIN SMALL LETTER N WITH DOT ABOVE;Ll;0;L;006E 0307;;;;N;;;1E44;;1E44
+1E46;LATIN CAPITAL LETTER N WITH DOT BELOW;Lu;0;L;004E 0323;;;;N;;;;1E47;
+1E47;LATIN SMALL LETTER N WITH DOT BELOW;Ll;0;L;006E 0323;;;;N;;;1E46;;1E46
+1E48;LATIN CAPITAL LETTER N WITH LINE BELOW;Lu;0;L;004E 0331;;;;N;;;;1E49;
+1E49;LATIN SMALL LETTER N WITH LINE BELOW;Ll;0;L;006E 0331;;;;N;;;1E48;;1E48
+1E4A;LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW;Lu;0;L;004E 032D;;;;N;;;;1E4B;
+1E4B;LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW;Ll;0;L;006E 032D;;;;N;;;1E4A;;1E4A
+1E4C;LATIN CAPITAL LETTER O WITH TILDE AND ACUTE;Lu;0;L;00D5 0301;;;;N;;;;1E4D;
+1E4D;LATIN SMALL LETTER O WITH TILDE AND ACUTE;Ll;0;L;00F5 0301;;;;N;;;1E4C;;1E4C
+1E4E;LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS;Lu;0;L;00D5 0308;;;;N;;;;1E4F;
+1E4F;LATIN SMALL LETTER O WITH TILDE AND DIAERESIS;Ll;0;L;00F5 0308;;;;N;;;1E4E;;1E4E
+1E50;LATIN CAPITAL LETTER O WITH MACRON AND GRAVE;Lu;0;L;014C 0300;;;;N;;;;1E51;
+1E51;LATIN SMALL LETTER O WITH MACRON AND GRAVE;Ll;0;L;014D 0300;;;;N;;;1E50;;1E50
+1E52;LATIN CAPITAL LETTER O WITH MACRON AND ACUTE;Lu;0;L;014C 0301;;;;N;;;;1E53;
+1E53;LATIN SMALL LETTER O WITH MACRON AND ACUTE;Ll;0;L;014D 0301;;;;N;;;1E52;;1E52
+1E54;LATIN CAPITAL LETTER P WITH ACUTE;Lu;0;L;0050 0301;;;;N;;;;1E55;
+1E55;LATIN SMALL LETTER P WITH ACUTE;Ll;0;L;0070 0301;;;;N;;;1E54;;1E54
+1E56;LATIN CAPITAL LETTER P WITH DOT ABOVE;Lu;0;L;0050 0307;;;;N;;;;1E57;
+1E57;LATIN SMALL LETTER P WITH DOT ABOVE;Ll;0;L;0070 0307;;;;N;;;1E56;;1E56
+1E58;LATIN CAPITAL LETTER R WITH DOT ABOVE;Lu;0;L;0052 0307;;;;N;;;;1E59;
+1E59;LATIN SMALL LETTER R WITH DOT ABOVE;Ll;0;L;0072 0307;;;;N;;;1E58;;1E58
+1E5A;LATIN CAPITAL LETTER R WITH DOT BELOW;Lu;0;L;0052 0323;;;;N;;;;1E5B;
+1E5B;LATIN SMALL LETTER R WITH DOT BELOW;Ll;0;L;0072 0323;;;;N;;;1E5A;;1E5A
+1E5C;LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON;Lu;0;L;1E5A 0304;;;;N;;;;1E5D;
+1E5D;LATIN SMALL LETTER R WITH DOT BELOW AND MACRON;Ll;0;L;1E5B 0304;;;;N;;;1E5C;;1E5C
+1E5E;LATIN CAPITAL LETTER R WITH LINE BELOW;Lu;0;L;0052 0331;;;;N;;;;1E5F;
+1E5F;LATIN SMALL LETTER R WITH LINE BELOW;Ll;0;L;0072 0331;;;;N;;;1E5E;;1E5E
+1E60;LATIN CAPITAL LETTER S WITH DOT ABOVE;Lu;0;L;0053 0307;;;;N;;;;1E61;
+1E61;LATIN SMALL LETTER S WITH DOT ABOVE;Ll;0;L;0073 0307;;;;N;;;1E60;;1E60
+1E62;LATIN CAPITAL LETTER S WITH DOT BELOW;Lu;0;L;0053 0323;;;;N;;;;1E63;
+1E63;LATIN SMALL LETTER S WITH DOT BELOW;Ll;0;L;0073 0323;;;;N;;;1E62;;1E62
+1E64;LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE;Lu;0;L;015A 0307;;;;N;;;;1E65;
+1E65;LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE;Ll;0;L;015B 0307;;;;N;;;1E64;;1E64
+1E66;LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE;Lu;0;L;0160 0307;;;;N;;;;1E67;
+1E67;LATIN SMALL LETTER S WITH CARON AND DOT ABOVE;Ll;0;L;0161 0307;;;;N;;;1E66;;1E66
+1E68;LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE;Lu;0;L;1E62 0307;;;;N;;;;1E69;
+1E69;LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE;Ll;0;L;1E63 0307;;;;N;;;1E68;;1E68
+1E6A;LATIN CAPITAL LETTER T WITH DOT ABOVE;Lu;0;L;0054 0307;;;;N;;;;1E6B;
+1E6B;LATIN SMALL LETTER T WITH DOT ABOVE;Ll;0;L;0074 0307;;;;N;;;1E6A;;1E6A
+1E6C;LATIN CAPITAL LETTER T WITH DOT BELOW;Lu;0;L;0054 0323;;;;N;;;;1E6D;
+1E6D;LATIN SMALL LETTER T WITH DOT BELOW;Ll;0;L;0074 0323;;;;N;;;1E6C;;1E6C
+1E6E;LATIN CAPITAL LETTER T WITH LINE BELOW;Lu;0;L;0054 0331;;;;N;;;;1E6F;
+1E6F;LATIN SMALL LETTER T WITH LINE BELOW;Ll;0;L;0074 0331;;;;N;;;1E6E;;1E6E
+1E70;LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW;Lu;0;L;0054 032D;;;;N;;;;1E71;
+1E71;LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW;Ll;0;L;0074 032D;;;;N;;;1E70;;1E70
+1E72;LATIN CAPITAL LETTER U WITH DIAERESIS BELOW;Lu;0;L;0055 0324;;;;N;;;;1E73;
+1E73;LATIN SMALL LETTER U WITH DIAERESIS BELOW;Ll;0;L;0075 0324;;;;N;;;1E72;;1E72
+1E74;LATIN CAPITAL LETTER U WITH TILDE BELOW;Lu;0;L;0055 0330;;;;N;;;;1E75;
+1E75;LATIN SMALL LETTER U WITH TILDE BELOW;Ll;0;L;0075 0330;;;;N;;;1E74;;1E74
+1E76;LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW;Lu;0;L;0055 032D;;;;N;;;;1E77;
+1E77;LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW;Ll;0;L;0075 032D;;;;N;;;1E76;;1E76
+1E78;LATIN CAPITAL LETTER U WITH TILDE AND ACUTE;Lu;0;L;0168 0301;;;;N;;;;1E79;
+1E79;LATIN SMALL LETTER U WITH TILDE AND ACUTE;Ll;0;L;0169 0301;;;;N;;;1E78;;1E78
+1E7A;LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS;Lu;0;L;016A 0308;;;;N;;;;1E7B;
+1E7B;LATIN SMALL LETTER U WITH MACRON AND DIAERESIS;Ll;0;L;016B 0308;;;;N;;;1E7A;;1E7A
+1E7C;LATIN CAPITAL LETTER V WITH TILDE;Lu;0;L;0056 0303;;;;N;;;;1E7D;
+1E7D;LATIN SMALL LETTER V WITH TILDE;Ll;0;L;0076 0303;;;;N;;;1E7C;;1E7C
+1E7E;LATIN CAPITAL LETTER V WITH DOT BELOW;Lu;0;L;0056 0323;;;;N;;;;1E7F;
+1E7F;LATIN SMALL LETTER V WITH DOT BELOW;Ll;0;L;0076 0323;;;;N;;;1E7E;;1E7E
+1E80;LATIN CAPITAL LETTER W WITH GRAVE;Lu;0;L;0057 0300;;;;N;;;;1E81;
+1E81;LATIN SMALL LETTER W WITH GRAVE;Ll;0;L;0077 0300;;;;N;;;1E80;;1E80
+1E82;LATIN CAPITAL LETTER W WITH ACUTE;Lu;0;L;0057 0301;;;;N;;;;1E83;
+1E83;LATIN SMALL LETTER W WITH ACUTE;Ll;0;L;0077 0301;;;;N;;;1E82;;1E82
+1E84;LATIN CAPITAL LETTER W WITH DIAERESIS;Lu;0;L;0057 0308;;;;N;;;;1E85;
+1E85;LATIN SMALL LETTER W WITH DIAERESIS;Ll;0;L;0077 0308;;;;N;;;1E84;;1E84
+1E86;LATIN CAPITAL LETTER W WITH DOT ABOVE;Lu;0;L;0057 0307;;;;N;;;;1E87;
+1E87;LATIN SMALL LETTER W WITH DOT ABOVE;Ll;0;L;0077 0307;;;;N;;;1E86;;1E86
+1E88;LATIN CAPITAL LETTER W WITH DOT BELOW;Lu;0;L;0057 0323;;;;N;;;;1E89;
+1E89;LATIN SMALL LETTER W WITH DOT BELOW;Ll;0;L;0077 0323;;;;N;;;1E88;;1E88
+1E8A;LATIN CAPITAL LETTER X WITH DOT ABOVE;Lu;0;L;0058 0307;;;;N;;;;1E8B;
+1E8B;LATIN SMALL LETTER X WITH DOT ABOVE;Ll;0;L;0078 0307;;;;N;;;1E8A;;1E8A
+1E8C;LATIN CAPITAL LETTER X WITH DIAERESIS;Lu;0;L;0058 0308;;;;N;;;;1E8D;
+1E8D;LATIN SMALL LETTER X WITH DIAERESIS;Ll;0;L;0078 0308;;;;N;;;1E8C;;1E8C
+1E8E;LATIN CAPITAL LETTER Y WITH DOT ABOVE;Lu;0;L;0059 0307;;;;N;;;;1E8F;
+1E8F;LATIN SMALL LETTER Y WITH DOT ABOVE;Ll;0;L;0079 0307;;;;N;;;1E8E;;1E8E
+1E90;LATIN CAPITAL LETTER Z WITH CIRCUMFLEX;Lu;0;L;005A 0302;;;;N;;;;1E91;
+1E91;LATIN SMALL LETTER Z WITH CIRCUMFLEX;Ll;0;L;007A 0302;;;;N;;;1E90;;1E90
+1E92;LATIN CAPITAL LETTER Z WITH DOT BELOW;Lu;0;L;005A 0323;;;;N;;;;1E93;
+1E93;LATIN SMALL LETTER Z WITH DOT BELOW;Ll;0;L;007A 0323;;;;N;;;1E92;;1E92
+1E94;LATIN CAPITAL LETTER Z WITH LINE BELOW;Lu;0;L;005A 0331;;;;N;;;;1E95;
+1E95;LATIN SMALL LETTER Z WITH LINE BELOW;Ll;0;L;007A 0331;;;;N;;;1E94;;1E94
+1E96;LATIN SMALL LETTER H WITH LINE BELOW;Ll;0;L;0068 0331;;;;N;;;;;
+1E97;LATIN SMALL LETTER T WITH DIAERESIS;Ll;0;L;0074 0308;;;;N;;;;;
+1E98;LATIN SMALL LETTER W WITH RING ABOVE;Ll;0;L;0077 030A;;;;N;;;;;
+1E99;LATIN SMALL LETTER Y WITH RING ABOVE;Ll;0;L;0079 030A;;;;N;;;;;
+1E9A;LATIN SMALL LETTER A WITH RIGHT HALF RING;Ll;0;L;<compat> 0061 02BE;;;;N;;;;;
+1E9B;LATIN SMALL LETTER LONG S WITH DOT ABOVE;Ll;0;L;017F 0307;;;;N;;;1E60;;1E60
+1EA0;LATIN CAPITAL LETTER A WITH DOT BELOW;Lu;0;L;0041 0323;;;;N;;;;1EA1;
+1EA1;LATIN SMALL LETTER A WITH DOT BELOW;Ll;0;L;0061 0323;;;;N;;;1EA0;;1EA0
+1EA2;LATIN CAPITAL LETTER A WITH HOOK ABOVE;Lu;0;L;0041 0309;;;;N;;;;1EA3;
+1EA3;LATIN SMALL LETTER A WITH HOOK ABOVE;Ll;0;L;0061 0309;;;;N;;;1EA2;;1EA2
+1EA4;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE;Lu;0;L;00C2 0301;;;;N;;;;1EA5;
+1EA5;LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE;Ll;0;L;00E2 0301;;;;N;;;1EA4;;1EA4
+1EA6;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE;Lu;0;L;00C2 0300;;;;N;;;;1EA7;
+1EA7;LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE;Ll;0;L;00E2 0300;;;;N;;;1EA6;;1EA6
+1EA8;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE;Lu;0;L;00C2 0309;;;;N;;;;1EA9;
+1EA9;LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE;Ll;0;L;00E2 0309;;;;N;;;1EA8;;1EA8
+1EAA;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE;Lu;0;L;00C2 0303;;;;N;;;;1EAB;
+1EAB;LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE;Ll;0;L;00E2 0303;;;;N;;;1EAA;;1EAA
+1EAC;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW;Lu;0;L;1EA0 0302;;;;N;;;;1EAD;
+1EAD;LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW;Ll;0;L;1EA1 0302;;;;N;;;1EAC;;1EAC
+1EAE;LATIN CAPITAL LETTER A WITH BREVE AND ACUTE;Lu;0;L;0102 0301;;;;N;;;;1EAF;
+1EAF;LATIN SMALL LETTER A WITH BREVE AND ACUTE;Ll;0;L;0103 0301;;;;N;;;1EAE;;1EAE
+1EB0;LATIN CAPITAL LETTER A WITH BREVE AND GRAVE;Lu;0;L;0102 0300;;;;N;;;;1EB1;
+1EB1;LATIN SMALL LETTER A WITH BREVE AND GRAVE;Ll;0;L;0103 0300;;;;N;;;1EB0;;1EB0
+1EB2;LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE;Lu;0;L;0102 0309;;;;N;;;;1EB3;
+1EB3;LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE;Ll;0;L;0103 0309;;;;N;;;1EB2;;1EB2
+1EB4;LATIN CAPITAL LETTER A WITH BREVE AND TILDE;Lu;0;L;0102 0303;;;;N;;;;1EB5;
+1EB5;LATIN SMALL LETTER A WITH BREVE AND TILDE;Ll;0;L;0103 0303;;;;N;;;1EB4;;1EB4
+1EB6;LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW;Lu;0;L;1EA0 0306;;;;N;;;;1EB7;
+1EB7;LATIN SMALL LETTER A WITH BREVE AND DOT BELOW;Ll;0;L;1EA1 0306;;;;N;;;1EB6;;1EB6
+1EB8;LATIN CAPITAL LETTER E WITH DOT BELOW;Lu;0;L;0045 0323;;;;N;;;;1EB9;
+1EB9;LATIN SMALL LETTER E WITH DOT BELOW;Ll;0;L;0065 0323;;;;N;;;1EB8;;1EB8
+1EBA;LATIN CAPITAL LETTER E WITH HOOK ABOVE;Lu;0;L;0045 0309;;;;N;;;;1EBB;
+1EBB;LATIN SMALL LETTER E WITH HOOK ABOVE;Ll;0;L;0065 0309;;;;N;;;1EBA;;1EBA
+1EBC;LATIN CAPITAL LETTER E WITH TILDE;Lu;0;L;0045 0303;;;;N;;;;1EBD;
+1EBD;LATIN SMALL LETTER E WITH TILDE;Ll;0;L;0065 0303;;;;N;;;1EBC;;1EBC
+1EBE;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE;Lu;0;L;00CA 0301;;;;N;;;;1EBF;
+1EBF;LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE;Ll;0;L;00EA 0301;;;;N;;;1EBE;;1EBE
+1EC0;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE;Lu;0;L;00CA 0300;;;;N;;;;1EC1;
+1EC1;LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE;Ll;0;L;00EA 0300;;;;N;;;1EC0;;1EC0
+1EC2;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE;Lu;0;L;00CA 0309;;;;N;;;;1EC3;
+1EC3;LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE;Ll;0;L;00EA 0309;;;;N;;;1EC2;;1EC2
+1EC4;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE;Lu;0;L;00CA 0303;;;;N;;;;1EC5;
+1EC5;LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE;Ll;0;L;00EA 0303;;;;N;;;1EC4;;1EC4
+1EC6;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW;Lu;0;L;1EB8 0302;;;;N;;;;1EC7;
+1EC7;LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW;Ll;0;L;1EB9 0302;;;;N;;;1EC6;;1EC6
+1EC8;LATIN CAPITAL LETTER I WITH HOOK ABOVE;Lu;0;L;0049 0309;;;;N;;;;1EC9;
+1EC9;LATIN SMALL LETTER I WITH HOOK ABOVE;Ll;0;L;0069 0309;;;;N;;;1EC8;;1EC8
+1ECA;LATIN CAPITAL LETTER I WITH DOT BELOW;Lu;0;L;0049 0323;;;;N;;;;1ECB;
+1ECB;LATIN SMALL LETTER I WITH DOT BELOW;Ll;0;L;0069 0323;;;;N;;;1ECA;;1ECA
+1ECC;LATIN CAPITAL LETTER O WITH DOT BELOW;Lu;0;L;004F 0323;;;;N;;;;1ECD;
+1ECD;LATIN SMALL LETTER O WITH DOT BELOW;Ll;0;L;006F 0323;;;;N;;;1ECC;;1ECC
+1ECE;LATIN CAPITAL LETTER O WITH HOOK ABOVE;Lu;0;L;004F 0309;;;;N;;;;1ECF;
+1ECF;LATIN SMALL LETTER O WITH HOOK ABOVE;Ll;0;L;006F 0309;;;;N;;;1ECE;;1ECE
+1ED0;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE;Lu;0;L;00D4 0301;;;;N;;;;1ED1;
+1ED1;LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE;Ll;0;L;00F4 0301;;;;N;;;1ED0;;1ED0
+1ED2;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE;Lu;0;L;00D4 0300;;;;N;;;;1ED3;
+1ED3;LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE;Ll;0;L;00F4 0300;;;;N;;;1ED2;;1ED2
+1ED4;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE;Lu;0;L;00D4 0309;;;;N;;;;1ED5;
+1ED5;LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE;Ll;0;L;00F4 0309;;;;N;;;1ED4;;1ED4
+1ED6;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE;Lu;0;L;00D4 0303;;;;N;;;;1ED7;
+1ED7;LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE;Ll;0;L;00F4 0303;;;;N;;;1ED6;;1ED6
+1ED8;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW;Lu;0;L;1ECC 0302;;;;N;;;;1ED9;
+1ED9;LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW;Ll;0;L;1ECD 0302;;;;N;;;1ED8;;1ED8
+1EDA;LATIN CAPITAL LETTER O WITH HORN AND ACUTE;Lu;0;L;01A0 0301;;;;N;;;;1EDB;
+1EDB;LATIN SMALL LETTER O WITH HORN AND ACUTE;Ll;0;L;01A1 0301;;;;N;;;1EDA;;1EDA
+1EDC;LATIN CAPITAL LETTER O WITH HORN AND GRAVE;Lu;0;L;01A0 0300;;;;N;;;;1EDD;
+1EDD;LATIN SMALL LETTER O WITH HORN AND GRAVE;Ll;0;L;01A1 0300;;;;N;;;1EDC;;1EDC
+1EDE;LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE;Lu;0;L;01A0 0309;;;;N;;;;1EDF;
+1EDF;LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE;Ll;0;L;01A1 0309;;;;N;;;1EDE;;1EDE
+1EE0;LATIN CAPITAL LETTER O WITH HORN AND TILDE;Lu;0;L;01A0 0303;;;;N;;;;1EE1;
+1EE1;LATIN SMALL LETTER O WITH HORN AND TILDE;Ll;0;L;01A1 0303;;;;N;;;1EE0;;1EE0
+1EE2;LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW;Lu;0;L;01A0 0323;;;;N;;;;1EE3;
+1EE3;LATIN SMALL LETTER O WITH HORN AND DOT BELOW;Ll;0;L;01A1 0323;;;;N;;;1EE2;;1EE2
+1EE4;LATIN CAPITAL LETTER U WITH DOT BELOW;Lu;0;L;0055 0323;;;;N;;;;1EE5;
+1EE5;LATIN SMALL LETTER U WITH DOT BELOW;Ll;0;L;0075 0323;;;;N;;;1EE4;;1EE4
+1EE6;LATIN CAPITAL LETTER U WITH HOOK ABOVE;Lu;0;L;0055 0309;;;;N;;;;1EE7;
+1EE7;LATIN SMALL LETTER U WITH HOOK ABOVE;Ll;0;L;0075 0309;;;;N;;;1EE6;;1EE6
+1EE8;LATIN CAPITAL LETTER U WITH HORN AND ACUTE;Lu;0;L;01AF 0301;;;;N;;;;1EE9;
+1EE9;LATIN SMALL LETTER U WITH HORN AND ACUTE;Ll;0;L;01B0 0301;;;;N;;;1EE8;;1EE8
+1EEA;LATIN CAPITAL LETTER U WITH HORN AND GRAVE;Lu;0;L;01AF 0300;;;;N;;;;1EEB;
+1EEB;LATIN SMALL LETTER U WITH HORN AND GRAVE;Ll;0;L;01B0 0300;;;;N;;;1EEA;;1EEA
+1EEC;LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE;Lu;0;L;01AF 0309;;;;N;;;;1EED;
+1EED;LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE;Ll;0;L;01B0 0309;;;;N;;;1EEC;;1EEC
+1EEE;LATIN CAPITAL LETTER U WITH HORN AND TILDE;Lu;0;L;01AF 0303;;;;N;;;;1EEF;
+1EEF;LATIN SMALL LETTER U WITH HORN AND TILDE;Ll;0;L;01B0 0303;;;;N;;;1EEE;;1EEE
+1EF0;LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW;Lu;0;L;01AF 0323;;;;N;;;;1EF1;
+1EF1;LATIN SMALL LETTER U WITH HORN AND DOT BELOW;Ll;0;L;01B0 0323;;;;N;;;1EF0;;1EF0
+1EF2;LATIN CAPITAL LETTER Y WITH GRAVE;Lu;0;L;0059 0300;;;;N;;;;1EF3;
+1EF3;LATIN SMALL LETTER Y WITH GRAVE;Ll;0;L;0079 0300;;;;N;;;1EF2;;1EF2
+1EF4;LATIN CAPITAL LETTER Y WITH DOT BELOW;Lu;0;L;0059 0323;;;;N;;;;1EF5;
+1EF5;LATIN SMALL LETTER Y WITH DOT BELOW;Ll;0;L;0079 0323;;;;N;;;1EF4;;1EF4
+1EF6;LATIN CAPITAL LETTER Y WITH HOOK ABOVE;Lu;0;L;0059 0309;;;;N;;;;1EF7;
+1EF7;LATIN SMALL LETTER Y WITH HOOK ABOVE;Ll;0;L;0079 0309;;;;N;;;1EF6;;1EF6
+1EF8;LATIN CAPITAL LETTER Y WITH TILDE;Lu;0;L;0059 0303;;;;N;;;;1EF9;
+1EF9;LATIN SMALL LETTER Y WITH TILDE;Ll;0;L;0079 0303;;;;N;;;1EF8;;1EF8
+1F00;GREEK SMALL LETTER ALPHA WITH PSILI;Ll;0;L;03B1 0313;;;;N;;;1F08;;1F08
+1F01;GREEK SMALL LETTER ALPHA WITH DASIA;Ll;0;L;03B1 0314;;;;N;;;1F09;;1F09
+1F02;GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA;Ll;0;L;1F00 0300;;;;N;;;1F0A;;1F0A
+1F03;GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA;Ll;0;L;1F01 0300;;;;N;;;1F0B;;1F0B
+1F04;GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA;Ll;0;L;1F00 0301;;;;N;;;1F0C;;1F0C
+1F05;GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA;Ll;0;L;1F01 0301;;;;N;;;1F0D;;1F0D
+1F06;GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI;Ll;0;L;1F00 0342;;;;N;;;1F0E;;1F0E
+1F07;GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI;Ll;0;L;1F01 0342;;;;N;;;1F0F;;1F0F
+1F08;GREEK CAPITAL LETTER ALPHA WITH PSILI;Lu;0;L;0391 0313;;;;N;;;;1F00;
+1F09;GREEK CAPITAL LETTER ALPHA WITH DASIA;Lu;0;L;0391 0314;;;;N;;;;1F01;
+1F0A;GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA;Lu;0;L;1F08 0300;;;;N;;;;1F02;
+1F0B;GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA;Lu;0;L;1F09 0300;;;;N;;;;1F03;
+1F0C;GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA;Lu;0;L;1F08 0301;;;;N;;;;1F04;
+1F0D;GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA;Lu;0;L;1F09 0301;;;;N;;;;1F05;
+1F0E;GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI;Lu;0;L;1F08 0342;;;;N;;;;1F06;
+1F0F;GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI;Lu;0;L;1F09 0342;;;;N;;;;1F07;
+1F10;GREEK SMALL LETTER EPSILON WITH PSILI;Ll;0;L;03B5 0313;;;;N;;;1F18;;1F18
+1F11;GREEK SMALL LETTER EPSILON WITH DASIA;Ll;0;L;03B5 0314;;;;N;;;1F19;;1F19
+1F12;GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA;Ll;0;L;1F10 0300;;;;N;;;1F1A;;1F1A
+1F13;GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA;Ll;0;L;1F11 0300;;;;N;;;1F1B;;1F1B
+1F14;GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA;Ll;0;L;1F10 0301;;;;N;;;1F1C;;1F1C
+1F15;GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA;Ll;0;L;1F11 0301;;;;N;;;1F1D;;1F1D
+1F18;GREEK CAPITAL LETTER EPSILON WITH PSILI;Lu;0;L;0395 0313;;;;N;;;;1F10;
+1F19;GREEK CAPITAL LETTER EPSILON WITH DASIA;Lu;0;L;0395 0314;;;;N;;;;1F11;
+1F1A;GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA;Lu;0;L;1F18 0300;;;;N;;;;1F12;
+1F1B;GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA;Lu;0;L;1F19 0300;;;;N;;;;1F13;
+1F1C;GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA;Lu;0;L;1F18 0301;;;;N;;;;1F14;
+1F1D;GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA;Lu;0;L;1F19 0301;;;;N;;;;1F15;
+1F20;GREEK SMALL LETTER ETA WITH PSILI;Ll;0;L;03B7 0313;;;;N;;;1F28;;1F28
+1F21;GREEK SMALL LETTER ETA WITH DASIA;Ll;0;L;03B7 0314;;;;N;;;1F29;;1F29
+1F22;GREEK SMALL LETTER ETA WITH PSILI AND VARIA;Ll;0;L;1F20 0300;;;;N;;;1F2A;;1F2A
+1F23;GREEK SMALL LETTER ETA WITH DASIA AND VARIA;Ll;0;L;1F21 0300;;;;N;;;1F2B;;1F2B
+1F24;GREEK SMALL LETTER ETA WITH PSILI AND OXIA;Ll;0;L;1F20 0301;;;;N;;;1F2C;;1F2C
+1F25;GREEK SMALL LETTER ETA WITH DASIA AND OXIA;Ll;0;L;1F21 0301;;;;N;;;1F2D;;1F2D
+1F26;GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI;Ll;0;L;1F20 0342;;;;N;;;1F2E;;1F2E
+1F27;GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI;Ll;0;L;1F21 0342;;;;N;;;1F2F;;1F2F
+1F28;GREEK CAPITAL LETTER ETA WITH PSILI;Lu;0;L;0397 0313;;;;N;;;;1F20;
+1F29;GREEK CAPITAL LETTER ETA WITH DASIA;Lu;0;L;0397 0314;;;;N;;;;1F21;
+1F2A;GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA;Lu;0;L;1F28 0300;;;;N;;;;1F22;
+1F2B;GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA;Lu;0;L;1F29 0300;;;;N;;;;1F23;
+1F2C;GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA;Lu;0;L;1F28 0301;;;;N;;;;1F24;
+1F2D;GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA;Lu;0;L;1F29 0301;;;;N;;;;1F25;
+1F2E;GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI;Lu;0;L;1F28 0342;;;;N;;;;1F26;
+1F2F;GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI;Lu;0;L;1F29 0342;;;;N;;;;1F27;
+1F30;GREEK SMALL LETTER IOTA WITH PSILI;Ll;0;L;03B9 0313;;;;N;;;1F38;;1F38
+1F31;GREEK SMALL LETTER IOTA WITH DASIA;Ll;0;L;03B9 0314;;;;N;;;1F39;;1F39
+1F32;GREEK SMALL LETTER IOTA WITH PSILI AND VARIA;Ll;0;L;1F30 0300;;;;N;;;1F3A;;1F3A
+1F33;GREEK SMALL LETTER IOTA WITH DASIA AND VARIA;Ll;0;L;1F31 0300;;;;N;;;1F3B;;1F3B
+1F34;GREEK SMALL LETTER IOTA WITH PSILI AND OXIA;Ll;0;L;1F30 0301;;;;N;;;1F3C;;1F3C
+1F35;GREEK SMALL LETTER IOTA WITH DASIA AND OXIA;Ll;0;L;1F31 0301;;;;N;;;1F3D;;1F3D
+1F36;GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI;Ll;0;L;1F30 0342;;;;N;;;1F3E;;1F3E
+1F37;GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI;Ll;0;L;1F31 0342;;;;N;;;1F3F;;1F3F
+1F38;GREEK CAPITAL LETTER IOTA WITH PSILI;Lu;0;L;0399 0313;;;;N;;;;1F30;
+1F39;GREEK CAPITAL LETTER IOTA WITH DASIA;Lu;0;L;0399 0314;;;;N;;;;1F31;
+1F3A;GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA;Lu;0;L;1F38 0300;;;;N;;;;1F32;
+1F3B;GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA;Lu;0;L;1F39 0300;;;;N;;;;1F33;
+1F3C;GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA;Lu;0;L;1F38 0301;;;;N;;;;1F34;
+1F3D;GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA;Lu;0;L;1F39 0301;;;;N;;;;1F35;
+1F3E;GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI;Lu;0;L;1F38 0342;;;;N;;;;1F36;
+1F3F;GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI;Lu;0;L;1F39 0342;;;;N;;;;1F37;
+1F40;GREEK SMALL LETTER OMICRON WITH PSILI;Ll;0;L;03BF 0313;;;;N;;;1F48;;1F48
+1F41;GREEK SMALL LETTER OMICRON WITH DASIA;Ll;0;L;03BF 0314;;;;N;;;1F49;;1F49
+1F42;GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA;Ll;0;L;1F40 0300;;;;N;;;1F4A;;1F4A
+1F43;GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA;Ll;0;L;1F41 0300;;;;N;;;1F4B;;1F4B
+1F44;GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA;Ll;0;L;1F40 0301;;;;N;;;1F4C;;1F4C
+1F45;GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA;Ll;0;L;1F41 0301;;;;N;;;1F4D;;1F4D
+1F48;GREEK CAPITAL LETTER OMICRON WITH PSILI;Lu;0;L;039F 0313;;;;N;;;;1F40;
+1F49;GREEK CAPITAL LETTER OMICRON WITH DASIA;Lu;0;L;039F 0314;;;;N;;;;1F41;
+1F4A;GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA;Lu;0;L;1F48 0300;;;;N;;;;1F42;
+1F4B;GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA;Lu;0;L;1F49 0300;;;;N;;;;1F43;
+1F4C;GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA;Lu;0;L;1F48 0301;;;;N;;;;1F44;
+1F4D;GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA;Lu;0;L;1F49 0301;;;;N;;;;1F45;
+1F50;GREEK SMALL LETTER UPSILON WITH PSILI;Ll;0;L;03C5 0313;;;;N;;;;;
+1F51;GREEK SMALL LETTER UPSILON WITH DASIA;Ll;0;L;03C5 0314;;;;N;;;1F59;;1F59
+1F52;GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA;Ll;0;L;1F50 0300;;;;N;;;;;
+1F53;GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA;Ll;0;L;1F51 0300;;;;N;;;1F5B;;1F5B
+1F54;GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA;Ll;0;L;1F50 0301;;;;N;;;;;
+1F55;GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA;Ll;0;L;1F51 0301;;;;N;;;1F5D;;1F5D
+1F56;GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI;Ll;0;L;1F50 0342;;;;N;;;;;
+1F57;GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI;Ll;0;L;1F51 0342;;;;N;;;1F5F;;1F5F
+1F59;GREEK CAPITAL LETTER UPSILON WITH DASIA;Lu;0;L;03A5 0314;;;;N;;;;1F51;
+1F5B;GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA;Lu;0;L;1F59 0300;;;;N;;;;1F53;
+1F5D;GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA;Lu;0;L;1F59 0301;;;;N;;;;1F55;
+1F5F;GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI;Lu;0;L;1F59 0342;;;;N;;;;1F57;
+1F60;GREEK SMALL LETTER OMEGA WITH PSILI;Ll;0;L;03C9 0313;;;;N;;;1F68;;1F68
+1F61;GREEK SMALL LETTER OMEGA WITH DASIA;Ll;0;L;03C9 0314;;;;N;;;1F69;;1F69
+1F62;GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA;Ll;0;L;1F60 0300;;;;N;;;1F6A;;1F6A
+1F63;GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA;Ll;0;L;1F61 0300;;;;N;;;1F6B;;1F6B
+1F64;GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA;Ll;0;L;1F60 0301;;;;N;;;1F6C;;1F6C
+1F65;GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA;Ll;0;L;1F61 0301;;;;N;;;1F6D;;1F6D
+1F66;GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI;Ll;0;L;1F60 0342;;;;N;;;1F6E;;1F6E
+1F67;GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI;Ll;0;L;1F61 0342;;;;N;;;1F6F;;1F6F
+1F68;GREEK CAPITAL LETTER OMEGA WITH PSILI;Lu;0;L;03A9 0313;;;;N;;;;1F60;
+1F69;GREEK CAPITAL LETTER OMEGA WITH DASIA;Lu;0;L;03A9 0314;;;;N;;;;1F61;
+1F6A;GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA;Lu;0;L;1F68 0300;;;;N;;;;1F62;
+1F6B;GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA;Lu;0;L;1F69 0300;;;;N;;;;1F63;
+1F6C;GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA;Lu;0;L;1F68 0301;;;;N;;;;1F64;
+1F6D;GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA;Lu;0;L;1F69 0301;;;;N;;;;1F65;
+1F6E;GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI;Lu;0;L;1F68 0342;;;;N;;;;1F66;
+1F6F;GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI;Lu;0;L;1F69 0342;;;;N;;;;1F67;
+1F70;GREEK SMALL LETTER ALPHA WITH VARIA;Ll;0;L;03B1 0300;;;;N;;;1FBA;;1FBA
+1F71;GREEK SMALL LETTER ALPHA WITH OXIA;Ll;0;L;03AC;;;;N;;;1FBB;;1FBB
+1F72;GREEK SMALL LETTER EPSILON WITH VARIA;Ll;0;L;03B5 0300;;;;N;;;1FC8;;1FC8
+1F73;GREEK SMALL LETTER EPSILON WITH OXIA;Ll;0;L;03AD;;;;N;;;1FC9;;1FC9
+1F74;GREEK SMALL LETTER ETA WITH VARIA;Ll;0;L;03B7 0300;;;;N;;;1FCA;;1FCA
+1F75;GREEK SMALL LETTER ETA WITH OXIA;Ll;0;L;03AE;;;;N;;;1FCB;;1FCB
+1F76;GREEK SMALL LETTER IOTA WITH VARIA;Ll;0;L;03B9 0300;;;;N;;;1FDA;;1FDA
+1F77;GREEK SMALL LETTER IOTA WITH OXIA;Ll;0;L;03AF;;;;N;;;1FDB;;1FDB
+1F78;GREEK SMALL LETTER OMICRON WITH VARIA;Ll;0;L;03BF 0300;;;;N;;;1FF8;;1FF8
+1F79;GREEK SMALL LETTER OMICRON WITH OXIA;Ll;0;L;03CC;;;;N;;;1FF9;;1FF9
+1F7A;GREEK SMALL LETTER UPSILON WITH VARIA;Ll;0;L;03C5 0300;;;;N;;;1FEA;;1FEA
+1F7B;GREEK SMALL LETTER UPSILON WITH OXIA;Ll;0;L;03CD;;;;N;;;1FEB;;1FEB
+1F7C;GREEK SMALL LETTER OMEGA WITH VARIA;Ll;0;L;03C9 0300;;;;N;;;1FFA;;1FFA
+1F7D;GREEK SMALL LETTER OMEGA WITH OXIA;Ll;0;L;03CE;;;;N;;;1FFB;;1FFB
+1F80;GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI;Ll;0;L;1F00 0345;;;;N;;;1F88;;1F88
+1F81;GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI;Ll;0;L;1F01 0345;;;;N;;;1F89;;1F89
+1F82;GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F02 0345;;;;N;;;1F8A;;1F8A
+1F83;GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F03 0345;;;;N;;;1F8B;;1F8B
+1F84;GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F04 0345;;;;N;;;1F8C;;1F8C
+1F85;GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F05 0345;;;;N;;;1F8D;;1F8D
+1F86;GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F06 0345;;;;N;;;1F8E;;1F8E
+1F87;GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F07 0345;;;;N;;;1F8F;;1F8F
+1F88;GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI;Lt;0;L;1F08 0345;;;;N;;;;1F80;
+1F89;GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI;Lt;0;L;1F09 0345;;;;N;;;;1F81;
+1F8A;GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F0A 0345;;;;N;;;;1F82;
+1F8B;GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F0B 0345;;;;N;;;;1F83;
+1F8C;GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F0C 0345;;;;N;;;;1F84;
+1F8D;GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F0D 0345;;;;N;;;;1F85;
+1F8E;GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F0E 0345;;;;N;;;;1F86;
+1F8F;GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F0F 0345;;;;N;;;;1F87;
+1F90;GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI;Ll;0;L;1F20 0345;;;;N;;;1F98;;1F98
+1F91;GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI;Ll;0;L;1F21 0345;;;;N;;;1F99;;1F99
+1F92;GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F22 0345;;;;N;;;1F9A;;1F9A
+1F93;GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F23 0345;;;;N;;;1F9B;;1F9B
+1F94;GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F24 0345;;;;N;;;1F9C;;1F9C
+1F95;GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F25 0345;;;;N;;;1F9D;;1F9D
+1F96;GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F26 0345;;;;N;;;1F9E;;1F9E
+1F97;GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F27 0345;;;;N;;;1F9F;;1F9F
+1F98;GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI;Lt;0;L;1F28 0345;;;;N;;;;1F90;
+1F99;GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI;Lt;0;L;1F29 0345;;;;N;;;;1F91;
+1F9A;GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F2A 0345;;;;N;;;;1F92;
+1F9B;GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F2B 0345;;;;N;;;;1F93;
+1F9C;GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F2C 0345;;;;N;;;;1F94;
+1F9D;GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F2D 0345;;;;N;;;;1F95;
+1F9E;GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F2E 0345;;;;N;;;;1F96;
+1F9F;GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F2F 0345;;;;N;;;;1F97;
+1FA0;GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI;Ll;0;L;1F60 0345;;;;N;;;1FA8;;1FA8
+1FA1;GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI;Ll;0;L;1F61 0345;;;;N;;;1FA9;;1FA9
+1FA2;GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F62 0345;;;;N;;;1FAA;;1FAA
+1FA3;GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F63 0345;;;;N;;;1FAB;;1FAB
+1FA4;GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F64 0345;;;;N;;;1FAC;;1FAC
+1FA5;GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F65 0345;;;;N;;;1FAD;;1FAD
+1FA6;GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F66 0345;;;;N;;;1FAE;;1FAE
+1FA7;GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F67 0345;;;;N;;;1FAF;;1FAF
+1FA8;GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI;Lt;0;L;1F68 0345;;;;N;;;;1FA0;
+1FA9;GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI;Lt;0;L;1F69 0345;;;;N;;;;1FA1;
+1FAA;GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F6A 0345;;;;N;;;;1FA2;
+1FAB;GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F6B 0345;;;;N;;;;1FA3;
+1FAC;GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F6C 0345;;;;N;;;;1FA4;
+1FAD;GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F6D 0345;;;;N;;;;1FA5;
+1FAE;GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F6E 0345;;;;N;;;;1FA6;
+1FAF;GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F6F 0345;;;;N;;;;1FA7;
+1FB0;GREEK SMALL LETTER ALPHA WITH VRACHY;Ll;0;L;03B1 0306;;;;N;;;1FB8;;1FB8
+1FB1;GREEK SMALL LETTER ALPHA WITH MACRON;Ll;0;L;03B1 0304;;;;N;;;1FB9;;1FB9
+1FB2;GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI;Ll;0;L;1F70 0345;;;;N;;;;;
+1FB3;GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI;Ll;0;L;03B1 0345;;;;N;;;1FBC;;1FBC
+1FB4;GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI;Ll;0;L;03AC 0345;;;;N;;;;;
+1FB6;GREEK SMALL LETTER ALPHA WITH PERISPOMENI;Ll;0;L;03B1 0342;;;;N;;;;;
+1FB7;GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1FB6 0345;;;;N;;;;;
+1FB8;GREEK CAPITAL LETTER ALPHA WITH VRACHY;Lu;0;L;0391 0306;;;;N;;;;1FB0;
+1FB9;GREEK CAPITAL LETTER ALPHA WITH MACRON;Lu;0;L;0391 0304;;;;N;;;;1FB1;
+1FBA;GREEK CAPITAL LETTER ALPHA WITH VARIA;Lu;0;L;0391 0300;;;;N;;;;1F70;
+1FBB;GREEK CAPITAL LETTER ALPHA WITH OXIA;Lu;0;L;0386;;;;N;;;;1F71;
+1FBC;GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI;Lt;0;L;0391 0345;;;;N;;;;1FB3;
+1FBD;GREEK KORONIS;Sk;0;ON;<compat> 0020 0313;;;;N;;;;;
+1FBE;GREEK PROSGEGRAMMENI;Ll;0;L;03B9;;;;N;;;0399;;0399
+1FBF;GREEK PSILI;Sk;0;ON;<compat> 0020 0313;;;;N;;;;;
+1FC0;GREEK PERISPOMENI;Sk;0;ON;<compat> 0020 0342;;;;N;;;;;
+1FC1;GREEK DIALYTIKA AND PERISPOMENI;Sk;0;ON;00A8 0342;;;;N;;;;;
+1FC2;GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI;Ll;0;L;1F74 0345;;;;N;;;;;
+1FC3;GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI;Ll;0;L;03B7 0345;;;;N;;;1FCC;;1FCC
+1FC4;GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI;Ll;0;L;03AE 0345;;;;N;;;;;
+1FC6;GREEK SMALL LETTER ETA WITH PERISPOMENI;Ll;0;L;03B7 0342;;;;N;;;;;
+1FC7;GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1FC6 0345;;;;N;;;;;
+1FC8;GREEK CAPITAL LETTER EPSILON WITH VARIA;Lu;0;L;0395 0300;;;;N;;;;1F72;
+1FC9;GREEK CAPITAL LETTER EPSILON WITH OXIA;Lu;0;L;0388;;;;N;;;;1F73;
+1FCA;GREEK CAPITAL LETTER ETA WITH VARIA;Lu;0;L;0397 0300;;;;N;;;;1F74;
+1FCB;GREEK CAPITAL LETTER ETA WITH OXIA;Lu;0;L;0389;;;;N;;;;1F75;
+1FCC;GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI;Lt;0;L;0397 0345;;;;N;;;;1FC3;
+1FCD;GREEK PSILI AND VARIA;Sk;0;ON;1FBF 0300;;;;N;;;;;
+1FCE;GREEK PSILI AND OXIA;Sk;0;ON;1FBF 0301;;;;N;;;;;
+1FCF;GREEK PSILI AND PERISPOMENI;Sk;0;ON;1FBF 0342;;;;N;;;;;
+1FD0;GREEK SMALL LETTER IOTA WITH VRACHY;Ll;0;L;03B9 0306;;;;N;;;1FD8;;1FD8
+1FD1;GREEK SMALL LETTER IOTA WITH MACRON;Ll;0;L;03B9 0304;;;;N;;;1FD9;;1FD9
+1FD2;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA;Ll;0;L;03CA 0300;;;;N;;;;;
+1FD3;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA;Ll;0;L;0390;;;;N;;;;;
+1FD6;GREEK SMALL LETTER IOTA WITH PERISPOMENI;Ll;0;L;03B9 0342;;;;N;;;;;
+1FD7;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI;Ll;0;L;03CA 0342;;;;N;;;;;
+1FD8;GREEK CAPITAL LETTER IOTA WITH VRACHY;Lu;0;L;0399 0306;;;;N;;;;1FD0;
+1FD9;GREEK CAPITAL LETTER IOTA WITH MACRON;Lu;0;L;0399 0304;;;;N;;;;1FD1;
+1FDA;GREEK CAPITAL LETTER IOTA WITH VARIA;Lu;0;L;0399 0300;;;;N;;;;1F76;
+1FDB;GREEK CAPITAL LETTER IOTA WITH OXIA;Lu;0;L;038A;;;;N;;;;1F77;
+1FDD;GREEK DASIA AND VARIA;Sk;0;ON;1FFE 0300;;;;N;;;;;
+1FDE;GREEK DASIA AND OXIA;Sk;0;ON;1FFE 0301;;;;N;;;;;
+1FDF;GREEK DASIA AND PERISPOMENI;Sk;0;ON;1FFE 0342;;;;N;;;;;
+1FE0;GREEK SMALL LETTER UPSILON WITH VRACHY;Ll;0;L;03C5 0306;;;;N;;;1FE8;;1FE8
+1FE1;GREEK SMALL LETTER UPSILON WITH MACRON;Ll;0;L;03C5 0304;;;;N;;;1FE9;;1FE9
+1FE2;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA;Ll;0;L;03CB 0300;;;;N;;;;;
+1FE3;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA;Ll;0;L;03B0;;;;N;;;;;
+1FE4;GREEK SMALL LETTER RHO WITH PSILI;Ll;0;L;03C1 0313;;;;N;;;;;
+1FE5;GREEK SMALL LETTER RHO WITH DASIA;Ll;0;L;03C1 0314;;;;N;;;1FEC;;1FEC
+1FE6;GREEK SMALL LETTER UPSILON WITH PERISPOMENI;Ll;0;L;03C5 0342;;;;N;;;;;
+1FE7;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI;Ll;0;L;03CB 0342;;;;N;;;;;
+1FE8;GREEK CAPITAL LETTER UPSILON WITH VRACHY;Lu;0;L;03A5 0306;;;;N;;;;1FE0;
+1FE9;GREEK CAPITAL LETTER UPSILON WITH MACRON;Lu;0;L;03A5 0304;;;;N;;;;1FE1;
+1FEA;GREEK CAPITAL LETTER UPSILON WITH VARIA;Lu;0;L;03A5 0300;;;;N;;;;1F7A;
+1FEB;GREEK CAPITAL LETTER UPSILON WITH OXIA;Lu;0;L;038E;;;;N;;;;1F7B;
+1FEC;GREEK CAPITAL LETTER RHO WITH DASIA;Lu;0;L;03A1 0314;;;;N;;;;1FE5;
+1FED;GREEK DIALYTIKA AND VARIA;Sk;0;ON;00A8 0300;;;;N;;;;;
+1FEE;GREEK DIALYTIKA AND OXIA;Sk;0;ON;0385;;;;N;;;;;
+1FEF;GREEK VARIA;Sk;0;ON;0060;;;;N;;;;;
+1FF2;GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI;Ll;0;L;1F7C 0345;;;;N;;;;;
+1FF3;GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI;Ll;0;L;03C9 0345;;;;N;;;1FFC;;1FFC
+1FF4;GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI;Ll;0;L;03CE 0345;;;;N;;;;;
+1FF6;GREEK SMALL LETTER OMEGA WITH PERISPOMENI;Ll;0;L;03C9 0342;;;;N;;;;;
+1FF7;GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1FF6 0345;;;;N;;;;;
+1FF8;GREEK CAPITAL LETTER OMICRON WITH VARIA;Lu;0;L;039F 0300;;;;N;;;;1F78;
+1FF9;GREEK CAPITAL LETTER OMICRON WITH OXIA;Lu;0;L;038C;;;;N;;;;1F79;
+1FFA;GREEK CAPITAL LETTER OMEGA WITH VARIA;Lu;0;L;03A9 0300;;;;N;;;;1F7C;
+1FFB;GREEK CAPITAL LETTER OMEGA WITH OXIA;Lu;0;L;038F;;;;N;;;;1F7D;
+1FFC;GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI;Lt;0;L;03A9 0345;;;;N;;;;1FF3;
+1FFD;GREEK OXIA;Sk;0;ON;00B4;;;;N;;;;;
+1FFE;GREEK DASIA;Sk;0;ON;<compat> 0020 0314;;;;N;;;;;
+2000;EN QUAD;Zs;0;WS;2002;;;;N;;;;;
+2001;EM QUAD;Zs;0;WS;2003;;;;N;;;;;
+2002;EN SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;;
+2003;EM SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;;
+2004;THREE-PER-EM SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;;
+2005;FOUR-PER-EM SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;;
+2006;SIX-PER-EM SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;;
+2007;FIGURE SPACE;Zs;0;WS;<noBreak> 0020;;;;N;;;;;
+2008;PUNCTUATION SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;;
+2009;THIN SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;;
+200A;HAIR SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;;
+200B;ZERO WIDTH SPACE;Zs;0;BN;;;;;N;;;;;
+200C;ZERO WIDTH NON-JOINER;Cf;0;BN;;;;;N;;;;;
+200D;ZERO WIDTH JOINER;Cf;0;BN;;;;;N;;;;;
+200E;LEFT-TO-RIGHT MARK;Cf;0;L;;;;;N;;;;;
+200F;RIGHT-TO-LEFT MARK;Cf;0;R;;;;;N;;;;;
+2010;HYPHEN;Pd;0;ON;;;;;N;;;;;
+2011;NON-BREAKING HYPHEN;Pd;0;ON;<noBreak> 2010;;;;N;;;;;
+2012;FIGURE DASH;Pd;0;ON;;;;;N;;;;;
+2013;EN DASH;Pd;0;ON;;;;;N;;;;;
+2014;EM DASH;Pd;0;ON;;;;;N;;;;;
+2015;HORIZONTAL BAR;Pd;0;ON;;;;;N;QUOTATION DASH;;;;
+2016;DOUBLE VERTICAL LINE;Po;0;ON;;;;;N;DOUBLE VERTICAL BAR;;;;
+2017;DOUBLE LOW LINE;Po;0;ON;<compat> 0020 0333;;;;N;SPACING DOUBLE UNDERSCORE;;;;
+2018;LEFT SINGLE QUOTATION MARK;Pi;0;ON;;;;;N;SINGLE TURNED COMMA QUOTATION MARK;;;;
+2019;RIGHT SINGLE QUOTATION MARK;Pf;0;ON;;;;;N;SINGLE COMMA QUOTATION MARK;;;;
+201A;SINGLE LOW-9 QUOTATION MARK;Ps;0;ON;;;;;N;LOW SINGLE COMMA QUOTATION MARK;;;;
+201B;SINGLE HIGH-REVERSED-9 QUOTATION MARK;Pi;0;ON;;;;;N;SINGLE REVERSED COMMA QUOTATION MARK;;;;
+201C;LEFT DOUBLE QUOTATION MARK;Pi;0;ON;;;;;N;DOUBLE TURNED COMMA QUOTATION MARK;;;;
+201D;RIGHT DOUBLE QUOTATION MARK;Pf;0;ON;;;;;N;DOUBLE COMMA QUOTATION MARK;;;;
+201E;DOUBLE LOW-9 QUOTATION MARK;Ps;0;ON;;;;;N;LOW DOUBLE COMMA QUOTATION MARK;;;;
+201F;DOUBLE HIGH-REVERSED-9 QUOTATION MARK;Pi;0;ON;;;;;N;DOUBLE REVERSED COMMA QUOTATION MARK;;;;
+2020;DAGGER;Po;0;ON;;;;;N;;;;;
+2021;DOUBLE DAGGER;Po;0;ON;;;;;N;;;;;
+2022;BULLET;Po;0;ON;;;;;N;;;;;
+2023;TRIANGULAR BULLET;Po;0;ON;;;;;N;;;;;
+2024;ONE DOT LEADER;Po;0;ON;<compat> 002E;;;;N;;;;;
+2025;TWO DOT LEADER;Po;0;ON;<compat> 002E 002E;;;;N;;;;;
+2026;HORIZONTAL ELLIPSIS;Po;0;ON;<compat> 002E 002E 002E;;;;N;;;;;
+2027;HYPHENATION POINT;Po;0;ON;;;;;N;;;;;
+2028;LINE SEPARATOR;Zl;0;WS;;;;;N;;;;;
+2029;PARAGRAPH SEPARATOR;Zp;0;B;;;;;N;;;;;
+202A;LEFT-TO-RIGHT EMBEDDING;Cf;0;LRE;;;;;N;;;;;
+202B;RIGHT-TO-LEFT EMBEDDING;Cf;0;RLE;;;;;N;;;;;
+202C;POP DIRECTIONAL FORMATTING;Cf;0;PDF;;;;;N;;;;;
+202D;LEFT-TO-RIGHT OVERRIDE;Cf;0;LRO;;;;;N;;;;;
+202E;RIGHT-TO-LEFT OVERRIDE;Cf;0;RLO;;;;;N;;;;;
+202F;NARROW NO-BREAK SPACE;Zs;0;WS;<noBreak> 0020;;;;N;;;;;
+2030;PER MILLE SIGN;Po;0;ET;;;;;N;;;;;
+2031;PER TEN THOUSAND SIGN;Po;0;ET;;;;;N;;;;;
+2032;PRIME;Po;0;ET;;;;;N;;;;;
+2033;DOUBLE PRIME;Po;0;ET;<compat> 2032 2032;;;;N;;;;;
+2034;TRIPLE PRIME;Po;0;ET;<compat> 2032 2032 2032;;;;N;;;;;
+2035;REVERSED PRIME;Po;0;ON;;;;;N;;;;;
+2036;REVERSED DOUBLE PRIME;Po;0;ON;<compat> 2035 2035;;;;N;;;;;
+2037;REVERSED TRIPLE PRIME;Po;0;ON;<compat> 2035 2035 2035;;;;N;;;;;
+2038;CARET;Po;0;ON;;;;;N;;;;;
+2039;SINGLE LEFT-POINTING ANGLE QUOTATION MARK;Pi;0;ON;;;;;Y;LEFT POINTING SINGLE GUILLEMET;;;;
+203A;SINGLE RIGHT-POINTING ANGLE QUOTATION MARK;Pf;0;ON;;;;;Y;RIGHT POINTING SINGLE GUILLEMET;;;;
+203B;REFERENCE MARK;Po;0;ON;;;;;N;;;;;
+203C;DOUBLE EXCLAMATION MARK;Po;0;ON;<compat> 0021 0021;;;;N;;;;;
+203D;INTERROBANG;Po;0;ON;;;;;N;;;;;
+203E;OVERLINE;Po;0;ON;<compat> 0020 0305;;;;N;SPACING OVERSCORE;;;;
+203F;UNDERTIE;Pc;0;ON;;;;;N;;Enotikon;;;
+2040;CHARACTER TIE;Pc;0;ON;;;;;N;;;;;
+2041;CARET INSERTION POINT;Po;0;ON;;;;;N;;;;;
+2042;ASTERISM;Po;0;ON;;;;;N;;;;;
+2043;HYPHEN BULLET;Po;0;ON;;;;;N;;;;;
+2044;FRACTION SLASH;Sm;0;ON;;;;;N;;;;;
+2045;LEFT SQUARE BRACKET WITH QUILL;Ps;0;ON;;;;;Y;;;;;
+2046;RIGHT SQUARE BRACKET WITH QUILL;Pe;0;ON;;;;;Y;;;;;
+2048;QUESTION EXCLAMATION MARK;Po;0;ON;<compat> 003F 0021;;;;N;;;;;
+2049;EXCLAMATION QUESTION MARK;Po;0;ON;<compat> 0021 003F;;;;N;;;;;
+204A;TIRONIAN SIGN ET;Po;0;ON;;;;;N;;;;;
+204B;REVERSED PILCROW SIGN;Po;0;ON;;;;;N;;;;;
+204C;BLACK LEFTWARDS BULLET;Po;0;ON;;;;;N;;;;;
+204D;BLACK RIGHTWARDS BULLET;Po;0;ON;;;;;N;;;;;
+206A;INHIBIT SYMMETRIC SWAPPING;Cf;0;BN;;;;;N;;;;;
+206B;ACTIVATE SYMMETRIC SWAPPING;Cf;0;BN;;;;;N;;;;;
+206C;INHIBIT ARABIC FORM SHAPING;Cf;0;BN;;;;;N;;;;;
+206D;ACTIVATE ARABIC FORM SHAPING;Cf;0;BN;;;;;N;;;;;
+206E;NATIONAL DIGIT SHAPES;Cf;0;BN;;;;;N;;;;;
+206F;NOMINAL DIGIT SHAPES;Cf;0;BN;;;;;N;;;;;
+2070;SUPERSCRIPT ZERO;No;0;EN;<super> 0030;0;0;0;N;SUPERSCRIPT DIGIT ZERO;;;;
+2074;SUPERSCRIPT FOUR;No;0;EN;<super> 0034;4;4;4;N;SUPERSCRIPT DIGIT FOUR;;;;
+2075;SUPERSCRIPT FIVE;No;0;EN;<super> 0035;5;5;5;N;SUPERSCRIPT DIGIT FIVE;;;;
+2076;SUPERSCRIPT SIX;No;0;EN;<super> 0036;6;6;6;N;SUPERSCRIPT DIGIT SIX;;;;
+2077;SUPERSCRIPT SEVEN;No;0;EN;<super> 0037;7;7;7;N;SUPERSCRIPT DIGIT SEVEN;;;;
+2078;SUPERSCRIPT EIGHT;No;0;EN;<super> 0038;8;8;8;N;SUPERSCRIPT DIGIT EIGHT;;;;
+2079;SUPERSCRIPT NINE;No;0;EN;<super> 0039;9;9;9;N;SUPERSCRIPT DIGIT NINE;;;;
+207A;SUPERSCRIPT PLUS SIGN;Sm;0;ET;<super> 002B;;;;N;;;;;
+207B;SUPERSCRIPT MINUS;Sm;0;ET;<super> 2212;;;;N;SUPERSCRIPT HYPHEN-MINUS;;;;
+207C;SUPERSCRIPT EQUALS SIGN;Sm;0;ON;<super> 003D;;;;N;;;;;
+207D;SUPERSCRIPT LEFT PARENTHESIS;Ps;0;ON;<super> 0028;;;;Y;SUPERSCRIPT OPENING PARENTHESIS;;;;
+207E;SUPERSCRIPT RIGHT PARENTHESIS;Pe;0;ON;<super> 0029;;;;Y;SUPERSCRIPT CLOSING PARENTHESIS;;;;
+207F;SUPERSCRIPT LATIN SMALL LETTER N;Ll;0;L;<super> 006E;;;;N;;;;;
+2080;SUBSCRIPT ZERO;No;0;EN;<sub> 0030;0;0;0;N;SUBSCRIPT DIGIT ZERO;;;;
+2081;SUBSCRIPT ONE;No;0;EN;<sub> 0031;1;1;1;N;SUBSCRIPT DIGIT ONE;;;;
+2082;SUBSCRIPT TWO;No;0;EN;<sub> 0032;2;2;2;N;SUBSCRIPT DIGIT TWO;;;;
+2083;SUBSCRIPT THREE;No;0;EN;<sub> 0033;3;3;3;N;SUBSCRIPT DIGIT THREE;;;;
+2084;SUBSCRIPT FOUR;No;0;EN;<sub> 0034;4;4;4;N;SUBSCRIPT DIGIT FOUR;;;;
+2085;SUBSCRIPT FIVE;No;0;EN;<sub> 0035;5;5;5;N;SUBSCRIPT DIGIT FIVE;;;;
+2086;SUBSCRIPT SIX;No;0;EN;<sub> 0036;6;6;6;N;SUBSCRIPT DIGIT SIX;;;;
+2087;SUBSCRIPT SEVEN;No;0;EN;<sub> 0037;7;7;7;N;SUBSCRIPT DIGIT SEVEN;;;;
+2088;SUBSCRIPT EIGHT;No;0;EN;<sub> 0038;8;8;8;N;SUBSCRIPT DIGIT EIGHT;;;;
+2089;SUBSCRIPT NINE;No;0;EN;<sub> 0039;9;9;9;N;SUBSCRIPT DIGIT NINE;;;;
+208A;SUBSCRIPT PLUS SIGN;Sm;0;ET;<sub> 002B;;;;N;;;;;
+208B;SUBSCRIPT MINUS;Sm;0;ET;<sub> 2212;;;;N;SUBSCRIPT HYPHEN-MINUS;;;;
+208C;SUBSCRIPT EQUALS SIGN;Sm;0;ON;<sub> 003D;;;;N;;;;;
+208D;SUBSCRIPT LEFT PARENTHESIS;Ps;0;ON;<sub> 0028;;;;Y;SUBSCRIPT OPENING PARENTHESIS;;;;
+208E;SUBSCRIPT RIGHT PARENTHESIS;Pe;0;ON;<sub> 0029;;;;Y;SUBSCRIPT CLOSING PARENTHESIS;;;;
+20A0;EURO-CURRENCY SIGN;Sc;0;ET;;;;;N;;;;;
+20A1;COLON SIGN;Sc;0;ET;;;;;N;;;;;
+20A2;CRUZEIRO SIGN;Sc;0;ET;;;;;N;;;;;
+20A3;FRENCH FRANC SIGN;Sc;0;ET;;;;;N;;;;;
+20A4;LIRA SIGN;Sc;0;ET;;;;;N;;;;;
+20A5;MILL SIGN;Sc;0;ET;;;;;N;;;;;
+20A6;NAIRA SIGN;Sc;0;ET;;;;;N;;;;;
+20A7;PESETA SIGN;Sc;0;ET;;;;;N;;;;;
+20A8;RUPEE SIGN;Sc;0;ET;<compat> 0052 0073;;;;N;;;;;
+20A9;WON SIGN;Sc;0;ET;;;;;N;;;;;
+20AA;NEW SHEQEL SIGN;Sc;0;ET;;;;;N;;;;;
+20AB;DONG SIGN;Sc;0;ET;;;;;N;;;;;
+20AC;EURO SIGN;Sc;0;ET;;;;;N;;;;;
+20AD;KIP SIGN;Sc;0;ET;;;;;N;;;;;
+20AE;TUGRIK SIGN;Sc;0;ET;;;;;N;;;;;
+20AF;DRACHMA SIGN;Sc;0;ET;;;;;N;;;;;
+20D0;COMBINING LEFT HARPOON ABOVE;Mn;230;NSM;;;;;N;NON-SPACING LEFT HARPOON ABOVE;;;;
+20D1;COMBINING RIGHT HARPOON ABOVE;Mn;230;NSM;;;;;N;NON-SPACING RIGHT HARPOON ABOVE;;;;
+20D2;COMBINING LONG VERTICAL LINE OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING LONG VERTICAL BAR OVERLAY;;;;
+20D3;COMBINING SHORT VERTICAL LINE OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING SHORT VERTICAL BAR OVERLAY;;;;
+20D4;COMBINING ANTICLOCKWISE ARROW ABOVE;Mn;230;NSM;;;;;N;NON-SPACING ANTICLOCKWISE ARROW ABOVE;;;;
+20D5;COMBINING CLOCKWISE ARROW ABOVE;Mn;230;NSM;;;;;N;NON-SPACING CLOCKWISE ARROW ABOVE;;;;
+20D6;COMBINING LEFT ARROW ABOVE;Mn;230;NSM;;;;;N;NON-SPACING LEFT ARROW ABOVE;;;;
+20D7;COMBINING RIGHT ARROW ABOVE;Mn;230;NSM;;;;;N;NON-SPACING RIGHT ARROW ABOVE;;;;
+20D8;COMBINING RING OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING RING OVERLAY;;;;
+20D9;COMBINING CLOCKWISE RING OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING CLOCKWISE RING OVERLAY;;;;
+20DA;COMBINING ANTICLOCKWISE RING OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING ANTICLOCKWISE RING OVERLAY;;;;
+20DB;COMBINING THREE DOTS ABOVE;Mn;230;NSM;;;;;N;NON-SPACING THREE DOTS ABOVE;;;;
+20DC;COMBINING FOUR DOTS ABOVE;Mn;230;NSM;;;;;N;NON-SPACING FOUR DOTS ABOVE;;;;
+20DD;COMBINING ENCLOSING CIRCLE;Me;0;NSM;;;;;N;ENCLOSING CIRCLE;;;;
+20DE;COMBINING ENCLOSING SQUARE;Me;0;NSM;;;;;N;ENCLOSING SQUARE;;;;
+20DF;COMBINING ENCLOSING DIAMOND;Me;0;NSM;;;;;N;ENCLOSING DIAMOND;;;;
+20E0;COMBINING ENCLOSING CIRCLE BACKSLASH;Me;0;NSM;;;;;N;ENCLOSING CIRCLE SLASH;;;;
+20E1;COMBINING LEFT RIGHT ARROW ABOVE;Mn;230;NSM;;;;;N;NON-SPACING LEFT RIGHT ARROW ABOVE;;;;
+20E2;COMBINING ENCLOSING SCREEN;Me;0;NSM;;;;;N;;;;;
+20E3;COMBINING ENCLOSING KEYCAP;Me;0;NSM;;;;;N;;;;;
+2100;ACCOUNT OF;So;0;ON;<compat> 0061 002F 0063;;;;N;;;;;
+2101;ADDRESSED TO THE SUBJECT;So;0;ON;<compat> 0061 002F 0073;;;;N;;;;;
+2102;DOUBLE-STRUCK CAPITAL C;Lu;0;L;<font> 0043;;;;N;DOUBLE-STRUCK C;;;;
+2103;DEGREE CELSIUS;So;0;ON;<compat> 00B0 0043;;;;N;DEGREES CENTIGRADE;;;;
+2104;CENTRE LINE SYMBOL;So;0;ON;;;;;N;C L SYMBOL;;;;
+2105;CARE OF;So;0;ON;<compat> 0063 002F 006F;;;;N;;;;;
+2106;CADA UNA;So;0;ON;<compat> 0063 002F 0075;;;;N;;;;;
+2107;EULER CONSTANT;Lu;0;L;<compat> 0190;;;;N;EULERS;;;;
+2108;SCRUPLE;So;0;ON;;;;;N;;;;;
+2109;DEGREE FAHRENHEIT;So;0;ON;<compat> 00B0 0046;;;;N;DEGREES FAHRENHEIT;;;;
+210A;SCRIPT SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;
+210B;SCRIPT CAPITAL H;Lu;0;L;<font> 0048;;;;N;SCRIPT H;;;;
+210C;BLACK-LETTER CAPITAL H;Lu;0;L;<font> 0048;;;;N;BLACK-LETTER H;;;;
+210D;DOUBLE-STRUCK CAPITAL H;Lu;0;L;<font> 0048;;;;N;DOUBLE-STRUCK H;;;;
+210E;PLANCK CONSTANT;Ll;0;L;<font> 0068;;;;N;;;;;
+210F;PLANCK CONSTANT OVER TWO PI;Ll;0;L;<font> 0127;;;;N;PLANCK CONSTANT OVER 2 PI;;;;
+2110;SCRIPT CAPITAL I;Lu;0;L;<font> 0049;;;;N;SCRIPT I;;;;
+2111;BLACK-LETTER CAPITAL I;Lu;0;L;<font> 0049;;;;N;BLACK-LETTER I;;;;
+2112;SCRIPT CAPITAL L;Lu;0;L;<font> 004C;;;;N;SCRIPT L;;;;
+2113;SCRIPT SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;
+2114;L B BAR SYMBOL;So;0;ON;;;;;N;;;;;
+2115;DOUBLE-STRUCK CAPITAL N;Lu;0;L;<font> 004E;;;;N;DOUBLE-STRUCK N;;;;
+2116;NUMERO SIGN;So;0;ON;<compat> 004E 006F;;;;N;NUMERO;;;;
+2117;SOUND RECORDING COPYRIGHT;So;0;ON;;;;;N;;;;;
+2118;SCRIPT CAPITAL P;So;0;ON;;;;;N;SCRIPT P;;;;
+2119;DOUBLE-STRUCK CAPITAL P;Lu;0;L;<font> 0050;;;;N;DOUBLE-STRUCK P;;;;
+211A;DOUBLE-STRUCK CAPITAL Q;Lu;0;L;<font> 0051;;;;N;DOUBLE-STRUCK Q;;;;
+211B;SCRIPT CAPITAL R;Lu;0;L;<font> 0052;;;;N;SCRIPT R;;;;
+211C;BLACK-LETTER CAPITAL R;Lu;0;L;<font> 0052;;;;N;BLACK-LETTER R;;;;
+211D;DOUBLE-STRUCK CAPITAL R;Lu;0;L;<font> 0052;;;;N;DOUBLE-STRUCK R;;;;
+211E;PRESCRIPTION TAKE;So;0;ON;;;;;N;;;;;
+211F;RESPONSE;So;0;ON;;;;;N;;;;;
+2120;SERVICE MARK;So;0;ON;<super> 0053 004D;;;;N;;;;;
+2121;TELEPHONE SIGN;So;0;ON;<compat> 0054 0045 004C;;;;N;T E L SYMBOL;;;;
+2122;TRADE MARK SIGN;So;0;ON;<super> 0054 004D;;;;N;TRADEMARK;;;;
+2123;VERSICLE;So;0;ON;;;;;N;;;;;
+2124;DOUBLE-STRUCK CAPITAL Z;Lu;0;L;<font> 005A;;;;N;DOUBLE-STRUCK Z;;;;
+2125;OUNCE SIGN;So;0;ON;;;;;N;OUNCE;;;;
+2126;OHM SIGN;Lu;0;L;03A9;;;;N;OHM;;;03C9;
+2127;INVERTED OHM SIGN;So;0;ON;;;;;N;MHO;;;;
+2128;BLACK-LETTER CAPITAL Z;Lu;0;L;<font> 005A;;;;N;BLACK-LETTER Z;;;;
+2129;TURNED GREEK SMALL LETTER IOTA;So;0;ON;;;;;N;;;;;
+212A;KELVIN SIGN;Lu;0;L;004B;;;;N;DEGREES KELVIN;;;006B;
+212B;ANGSTROM SIGN;Lu;0;L;00C5;;;;N;ANGSTROM UNIT;;;00E5;
+212C;SCRIPT CAPITAL B;Lu;0;L;<font> 0042;;;;N;SCRIPT B;;;;
+212D;BLACK-LETTER CAPITAL C;Lu;0;L;<font> 0043;;;;N;BLACK-LETTER C;;;;
+212E;ESTIMATED SYMBOL;So;0;ET;;;;;N;;;;;
+212F;SCRIPT SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;
+2130;SCRIPT CAPITAL E;Lu;0;L;<font> 0045;;;;N;SCRIPT E;;;;
+2131;SCRIPT CAPITAL F;Lu;0;L;<font> 0046;;;;N;SCRIPT F;;;;
+2132;TURNED CAPITAL F;So;0;ON;;;;;N;TURNED F;;;;
+2133;SCRIPT CAPITAL M;Lu;0;L;<font> 004D;;;;N;SCRIPT M;;;;
+2134;SCRIPT SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;
+2135;ALEF SYMBOL;Lo;0;L;<compat> 05D0;;;;N;FIRST TRANSFINITE CARDINAL;;;;
+2136;BET SYMBOL;Lo;0;L;<compat> 05D1;;;;N;SECOND TRANSFINITE CARDINAL;;;;
+2137;GIMEL SYMBOL;Lo;0;L;<compat> 05D2;;;;N;THIRD TRANSFINITE CARDINAL;;;;
+2138;DALET SYMBOL;Lo;0;L;<compat> 05D3;;;;N;FOURTH TRANSFINITE CARDINAL;;;;
+2139;INFORMATION SOURCE;Ll;0;L;<font> 0069;;;;N;;;;;
+213A;ROTATED CAPITAL Q;So;0;ON;;;;;N;;;;;
+2153;VULGAR FRACTION ONE THIRD;No;0;ON;<fraction> 0031 2044 0033;;;1/3;N;FRACTION ONE THIRD;;;;
+2154;VULGAR FRACTION TWO THIRDS;No;0;ON;<fraction> 0032 2044 0033;;;2/3;N;FRACTION TWO THIRDS;;;;
+2155;VULGAR FRACTION ONE FIFTH;No;0;ON;<fraction> 0031 2044 0035;;;1/5;N;FRACTION ONE FIFTH;;;;
+2156;VULGAR FRACTION TWO FIFTHS;No;0;ON;<fraction> 0032 2044 0035;;;2/5;N;FRACTION TWO FIFTHS;;;;
+2157;VULGAR FRACTION THREE FIFTHS;No;0;ON;<fraction> 0033 2044 0035;;;3/5;N;FRACTION THREE FIFTHS;;;;
+2158;VULGAR FRACTION FOUR FIFTHS;No;0;ON;<fraction> 0034 2044 0035;;;4/5;N;FRACTION FOUR FIFTHS;;;;
+2159;VULGAR FRACTION ONE SIXTH;No;0;ON;<fraction> 0031 2044 0036;;;1/6;N;FRACTION ONE SIXTH;;;;
+215A;VULGAR FRACTION FIVE SIXTHS;No;0;ON;<fraction> 0035 2044 0036;;;5/6;N;FRACTION FIVE SIXTHS;;;;
+215B;VULGAR FRACTION ONE EIGHTH;No;0;ON;<fraction> 0031 2044 0038;;;1/8;N;FRACTION ONE EIGHTH;;;;
+215C;VULGAR FRACTION THREE EIGHTHS;No;0;ON;<fraction> 0033 2044 0038;;;3/8;N;FRACTION THREE EIGHTHS;;;;
+215D;VULGAR FRACTION FIVE EIGHTHS;No;0;ON;<fraction> 0035 2044 0038;;;5/8;N;FRACTION FIVE EIGHTHS;;;;
+215E;VULGAR FRACTION SEVEN EIGHTHS;No;0;ON;<fraction> 0037 2044 0038;;;7/8;N;FRACTION SEVEN EIGHTHS;;;;
+215F;FRACTION NUMERATOR ONE;No;0;ON;<fraction> 0031 2044;;;1;N;;;;;
+2160;ROMAN NUMERAL ONE;Nl;0;L;<compat> 0049;;;1;N;;;;2170;
+2161;ROMAN NUMERAL TWO;Nl;0;L;<compat> 0049 0049;;;2;N;;;;2171;
+2162;ROMAN NUMERAL THREE;Nl;0;L;<compat> 0049 0049 0049;;;3;N;;;;2172;
+2163;ROMAN NUMERAL FOUR;Nl;0;L;<compat> 0049 0056;;;4;N;;;;2173;
+2164;ROMAN NUMERAL FIVE;Nl;0;L;<compat> 0056;;;5;N;;;;2174;
+2165;ROMAN NUMERAL SIX;Nl;0;L;<compat> 0056 0049;;;6;N;;;;2175;
+2166;ROMAN NUMERAL SEVEN;Nl;0;L;<compat> 0056 0049 0049;;;7;N;;;;2176;
+2167;ROMAN NUMERAL EIGHT;Nl;0;L;<compat> 0056 0049 0049 0049;;;8;N;;;;2177;
+2168;ROMAN NUMERAL NINE;Nl;0;L;<compat> 0049 0058;;;9;N;;;;2178;
+2169;ROMAN NUMERAL TEN;Nl;0;L;<compat> 0058;;;10;N;;;;2179;
+216A;ROMAN NUMERAL ELEVEN;Nl;0;L;<compat> 0058 0049;;;11;N;;;;217A;
+216B;ROMAN NUMERAL TWELVE;Nl;0;L;<compat> 0058 0049 0049;;;12;N;;;;217B;
+216C;ROMAN NUMERAL FIFTY;Nl;0;L;<compat> 004C;;;50;N;;;;217C;
+216D;ROMAN NUMERAL ONE HUNDRED;Nl;0;L;<compat> 0043;;;100;N;;;;217D;
+216E;ROMAN NUMERAL FIVE HUNDRED;Nl;0;L;<compat> 0044;;;500;N;;;;217E;
+216F;ROMAN NUMERAL ONE THOUSAND;Nl;0;L;<compat> 004D;;;1000;N;;;;217F;
+2170;SMALL ROMAN NUMERAL ONE;Nl;0;L;<compat> 0069;;;1;N;;;2160;;2160
+2171;SMALL ROMAN NUMERAL TWO;Nl;0;L;<compat> 0069 0069;;;2;N;;;2161;;2161
+2172;SMALL ROMAN NUMERAL THREE;Nl;0;L;<compat> 0069 0069 0069;;;3;N;;;2162;;2162
+2173;SMALL ROMAN NUMERAL FOUR;Nl;0;L;<compat> 0069 0076;;;4;N;;;2163;;2163
+2174;SMALL ROMAN NUMERAL FIVE;Nl;0;L;<compat> 0076;;;5;N;;;2164;;2164
+2175;SMALL ROMAN NUMERAL SIX;Nl;0;L;<compat> 0076 0069;;;6;N;;;2165;;2165
+2176;SMALL ROMAN NUMERAL SEVEN;Nl;0;L;<compat> 0076 0069 0069;;;7;N;;;2166;;2166
+2177;SMALL ROMAN NUMERAL EIGHT;Nl;0;L;<compat> 0076 0069 0069 0069;;;8;N;;;2167;;2167
+2178;SMALL ROMAN NUMERAL NINE;Nl;0;L;<compat> 0069 0078;;;9;N;;;2168;;2168
+2179;SMALL ROMAN NUMERAL TEN;Nl;0;L;<compat> 0078;;;10;N;;;2169;;2169
+217A;SMALL ROMAN NUMERAL ELEVEN;Nl;0;L;<compat> 0078 0069;;;11;N;;;216A;;216A
+217B;SMALL ROMAN NUMERAL TWELVE;Nl;0;L;<compat> 0078 0069 0069;;;12;N;;;216B;;216B
+217C;SMALL ROMAN NUMERAL FIFTY;Nl;0;L;<compat> 006C;;;50;N;;;216C;;216C
+217D;SMALL ROMAN NUMERAL ONE HUNDRED;Nl;0;L;<compat> 0063;;;100;N;;;216D;;216D
+217E;SMALL ROMAN NUMERAL FIVE HUNDRED;Nl;0;L;<compat> 0064;;;500;N;;;216E;;216E
+217F;SMALL ROMAN NUMERAL ONE THOUSAND;Nl;0;L;<compat> 006D;;;1000;N;;;216F;;216F
+2180;ROMAN NUMERAL ONE THOUSAND C D;Nl;0;L;;;;1000;N;;;;;
+2181;ROMAN NUMERAL FIVE THOUSAND;Nl;0;L;;;;5000;N;;;;;
+2182;ROMAN NUMERAL TEN THOUSAND;Nl;0;L;;;;10000;N;;;;;
+2183;ROMAN NUMERAL REVERSED ONE HUNDRED;Nl;0;L;;;;;N;;;;;
+2190;LEFTWARDS ARROW;Sm;0;ON;;;;;N;LEFT ARROW;;;;
+2191;UPWARDS ARROW;Sm;0;ON;;;;;N;UP ARROW;;;;
+2192;RIGHTWARDS ARROW;Sm;0;ON;;;;;N;RIGHT ARROW;;;;
+2193;DOWNWARDS ARROW;Sm;0;ON;;;;;N;DOWN ARROW;;;;
+2194;LEFT RIGHT ARROW;Sm;0;ON;;;;;N;;;;;
+2195;UP DOWN ARROW;So;0;ON;;;;;N;;;;;
+2196;NORTH WEST ARROW;So;0;ON;;;;;N;UPPER LEFT ARROW;;;;
+2197;NORTH EAST ARROW;So;0;ON;;;;;N;UPPER RIGHT ARROW;;;;
+2198;SOUTH EAST ARROW;So;0;ON;;;;;N;LOWER RIGHT ARROW;;;;
+2199;SOUTH WEST ARROW;So;0;ON;;;;;N;LOWER LEFT ARROW;;;;
+219A;LEFTWARDS ARROW WITH STROKE;Sm;0;ON;2190 0338;;;;N;LEFT ARROW WITH STROKE;;;;
+219B;RIGHTWARDS ARROW WITH STROKE;Sm;0;ON;2192 0338;;;;N;RIGHT ARROW WITH STROKE;;;;
+219C;LEFTWARDS WAVE ARROW;So;0;ON;;;;;N;LEFT WAVE ARROW;;;;
+219D;RIGHTWARDS WAVE ARROW;So;0;ON;;;;;N;RIGHT WAVE ARROW;;;;
+219E;LEFTWARDS TWO HEADED ARROW;So;0;ON;;;;;N;LEFT TWO HEADED ARROW;;;;
+219F;UPWARDS TWO HEADED ARROW;So;0;ON;;;;;N;UP TWO HEADED ARROW;;;;
+21A0;RIGHTWARDS TWO HEADED ARROW;Sm;0;ON;;;;;N;RIGHT TWO HEADED ARROW;;;;
+21A1;DOWNWARDS TWO HEADED ARROW;So;0;ON;;;;;N;DOWN TWO HEADED ARROW;;;;
+21A2;LEFTWARDS ARROW WITH TAIL;So;0;ON;;;;;N;LEFT ARROW WITH TAIL;;;;
+21A3;RIGHTWARDS ARROW WITH TAIL;Sm;0;ON;;;;;N;RIGHT ARROW WITH TAIL;;;;
+21A4;LEFTWARDS ARROW FROM BAR;So;0;ON;;;;;N;LEFT ARROW FROM BAR;;;;
+21A5;UPWARDS ARROW FROM BAR;So;0;ON;;;;;N;UP ARROW FROM BAR;;;;
+21A6;RIGHTWARDS ARROW FROM BAR;Sm;0;ON;;;;;N;RIGHT ARROW FROM BAR;;;;
+21A7;DOWNWARDS ARROW FROM BAR;So;0;ON;;;;;N;DOWN ARROW FROM BAR;;;;
+21A8;UP DOWN ARROW WITH BASE;So;0;ON;;;;;N;;;;;
+21A9;LEFTWARDS ARROW WITH HOOK;So;0;ON;;;;;N;LEFT ARROW WITH HOOK;;;;
+21AA;RIGHTWARDS ARROW WITH HOOK;So;0;ON;;;;;N;RIGHT ARROW WITH HOOK;;;;
+21AB;LEFTWARDS ARROW WITH LOOP;So;0;ON;;;;;N;LEFT ARROW WITH LOOP;;;;
+21AC;RIGHTWARDS ARROW WITH LOOP;So;0;ON;;;;;N;RIGHT ARROW WITH LOOP;;;;
+21AD;LEFT RIGHT WAVE ARROW;So;0;ON;;;;;N;;;;;
+21AE;LEFT RIGHT ARROW WITH STROKE;Sm;0;ON;2194 0338;;;;N;;;;;
+21AF;DOWNWARDS ZIGZAG ARROW;So;0;ON;;;;;N;DOWN ZIGZAG ARROW;;;;
+21B0;UPWARDS ARROW WITH TIP LEFTWARDS;So;0;ON;;;;;N;UP ARROW WITH TIP LEFT;;;;
+21B1;UPWARDS ARROW WITH TIP RIGHTWARDS;So;0;ON;;;;;N;UP ARROW WITH TIP RIGHT;;;;
+21B2;DOWNWARDS ARROW WITH TIP LEFTWARDS;So;0;ON;;;;;N;DOWN ARROW WITH TIP LEFT;;;;
+21B3;DOWNWARDS ARROW WITH TIP RIGHTWARDS;So;0;ON;;;;;N;DOWN ARROW WITH TIP RIGHT;;;;
+21B4;RIGHTWARDS ARROW WITH CORNER DOWNWARDS;So;0;ON;;;;;N;RIGHT ARROW WITH CORNER DOWN;;;;
+21B5;DOWNWARDS ARROW WITH CORNER LEFTWARDS;So;0;ON;;;;;N;DOWN ARROW WITH CORNER LEFT;;;;
+21B6;ANTICLOCKWISE TOP SEMICIRCLE ARROW;So;0;ON;;;;;N;;;;;
+21B7;CLOCKWISE TOP SEMICIRCLE ARROW;So;0;ON;;;;;N;;;;;
+21B8;NORTH WEST ARROW TO LONG BAR;So;0;ON;;;;;N;UPPER LEFT ARROW TO LONG BAR;;;;
+21B9;LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR;So;0;ON;;;;;N;LEFT ARROW TO BAR OVER RIGHT ARROW TO BAR;;;;
+21BA;ANTICLOCKWISE OPEN CIRCLE ARROW;So;0;ON;;;;;N;;;;;
+21BB;CLOCKWISE OPEN CIRCLE ARROW;So;0;ON;;;;;N;;;;;
+21BC;LEFTWARDS HARPOON WITH BARB UPWARDS;So;0;ON;;;;;N;LEFT HARPOON WITH BARB UP;;;;
+21BD;LEFTWARDS HARPOON WITH BARB DOWNWARDS;So;0;ON;;;;;N;LEFT HARPOON WITH BARB DOWN;;;;
+21BE;UPWARDS HARPOON WITH BARB RIGHTWARDS;So;0;ON;;;;;N;UP HARPOON WITH BARB RIGHT;;;;
+21BF;UPWARDS HARPOON WITH BARB LEFTWARDS;So;0;ON;;;;;N;UP HARPOON WITH BARB LEFT;;;;
+21C0;RIGHTWARDS HARPOON WITH BARB UPWARDS;So;0;ON;;;;;N;RIGHT HARPOON WITH BARB UP;;;;
+21C1;RIGHTWARDS HARPOON WITH BARB DOWNWARDS;So;0;ON;;;;;N;RIGHT HARPOON WITH BARB DOWN;;;;
+21C2;DOWNWARDS HARPOON WITH BARB RIGHTWARDS;So;0;ON;;;;;N;DOWN HARPOON WITH BARB RIGHT;;;;
+21C3;DOWNWARDS HARPOON WITH BARB LEFTWARDS;So;0;ON;;;;;N;DOWN HARPOON WITH BARB LEFT;;;;
+21C4;RIGHTWARDS ARROW OVER LEFTWARDS ARROW;So;0;ON;;;;;N;RIGHT ARROW OVER LEFT ARROW;;;;
+21C5;UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW;So;0;ON;;;;;N;UP ARROW LEFT OF DOWN ARROW;;;;
+21C6;LEFTWARDS ARROW OVER RIGHTWARDS ARROW;So;0;ON;;;;;N;LEFT ARROW OVER RIGHT ARROW;;;;
+21C7;LEFTWARDS PAIRED ARROWS;So;0;ON;;;;;N;LEFT PAIRED ARROWS;;;;
+21C8;UPWARDS PAIRED ARROWS;So;0;ON;;;;;N;UP PAIRED ARROWS;;;;
+21C9;RIGHTWARDS PAIRED ARROWS;So;0;ON;;;;;N;RIGHT PAIRED ARROWS;;;;
+21CA;DOWNWARDS PAIRED ARROWS;So;0;ON;;;;;N;DOWN PAIRED ARROWS;;;;
+21CB;LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON;So;0;ON;;;;;N;LEFT HARPOON OVER RIGHT HARPOON;;;;
+21CC;RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON;So;0;ON;;;;;N;RIGHT HARPOON OVER LEFT HARPOON;;;;
+21CD;LEFTWARDS DOUBLE ARROW WITH STROKE;So;0;ON;21D0 0338;;;;N;LEFT DOUBLE ARROW WITH STROKE;;;;
+21CE;LEFT RIGHT DOUBLE ARROW WITH STROKE;Sm;0;ON;21D4 0338;;;;N;;;;;
+21CF;RIGHTWARDS DOUBLE ARROW WITH STROKE;Sm;0;ON;21D2 0338;;;;N;RIGHT DOUBLE ARROW WITH STROKE;;;;
+21D0;LEFTWARDS DOUBLE ARROW;So;0;ON;;;;;N;LEFT DOUBLE ARROW;;;;
+21D1;UPWARDS DOUBLE ARROW;So;0;ON;;;;;N;UP DOUBLE ARROW;;;;
+21D2;RIGHTWARDS DOUBLE ARROW;Sm;0;ON;;;;;N;RIGHT DOUBLE ARROW;;;;
+21D3;DOWNWARDS DOUBLE ARROW;So;0;ON;;;;;N;DOWN DOUBLE ARROW;;;;
+21D4;LEFT RIGHT DOUBLE ARROW;Sm;0;ON;;;;;N;;;;;
+21D5;UP DOWN DOUBLE ARROW;So;0;ON;;;;;N;;;;;
+21D6;NORTH WEST DOUBLE ARROW;So;0;ON;;;;;N;UPPER LEFT DOUBLE ARROW;;;;
+21D7;NORTH EAST DOUBLE ARROW;So;0;ON;;;;;N;UPPER RIGHT DOUBLE ARROW;;;;
+21D8;SOUTH EAST DOUBLE ARROW;So;0;ON;;;;;N;LOWER RIGHT DOUBLE ARROW;;;;
+21D9;SOUTH WEST DOUBLE ARROW;So;0;ON;;;;;N;LOWER LEFT DOUBLE ARROW;;;;
+21DA;LEFTWARDS TRIPLE ARROW;So;0;ON;;;;;N;LEFT TRIPLE ARROW;;;;
+21DB;RIGHTWARDS TRIPLE ARROW;So;0;ON;;;;;N;RIGHT TRIPLE ARROW;;;;
+21DC;LEFTWARDS SQUIGGLE ARROW;So;0;ON;;;;;N;LEFT SQUIGGLE ARROW;;;;
+21DD;RIGHTWARDS SQUIGGLE ARROW;So;0;ON;;;;;N;RIGHT SQUIGGLE ARROW;;;;
+21DE;UPWARDS ARROW WITH DOUBLE STROKE;So;0;ON;;;;;N;UP ARROW WITH DOUBLE STROKE;;;;
+21DF;DOWNWARDS ARROW WITH DOUBLE STROKE;So;0;ON;;;;;N;DOWN ARROW WITH DOUBLE STROKE;;;;
+21E0;LEFTWARDS DASHED ARROW;So;0;ON;;;;;N;LEFT DASHED ARROW;;;;
+21E1;UPWARDS DASHED ARROW;So;0;ON;;;;;N;UP DASHED ARROW;;;;
+21E2;RIGHTWARDS DASHED ARROW;So;0;ON;;;;;N;RIGHT DASHED ARROW;;;;
+21E3;DOWNWARDS DASHED ARROW;So;0;ON;;;;;N;DOWN DASHED ARROW;;;;
+21E4;LEFTWARDS ARROW TO BAR;So;0;ON;;;;;N;LEFT ARROW TO BAR;;;;
+21E5;RIGHTWARDS ARROW TO BAR;So;0;ON;;;;;N;RIGHT ARROW TO BAR;;;;
+21E6;LEFTWARDS WHITE ARROW;So;0;ON;;;;;N;WHITE LEFT ARROW;;;;
+21E7;UPWARDS WHITE ARROW;So;0;ON;;;;;N;WHITE UP ARROW;;;;
+21E8;RIGHTWARDS WHITE ARROW;So;0;ON;;;;;N;WHITE RIGHT ARROW;;;;
+21E9;DOWNWARDS WHITE ARROW;So;0;ON;;;;;N;WHITE DOWN ARROW;;;;
+21EA;UPWARDS WHITE ARROW FROM BAR;So;0;ON;;;;;N;WHITE UP ARROW FROM BAR;;;;
+21EB;UPWARDS WHITE ARROW ON PEDESTAL;So;0;ON;;;;;N;;;;;
+21EC;UPWARDS WHITE ARROW ON PEDESTAL WITH HORIZONTAL BAR;So;0;ON;;;;;N;;;;;
+21ED;UPWARDS WHITE ARROW ON PEDESTAL WITH VERTICAL BAR;So;0;ON;;;;;N;;;;;
+21EE;UPWARDS WHITE DOUBLE ARROW;So;0;ON;;;;;N;;;;;
+21EF;UPWARDS WHITE DOUBLE ARROW ON PEDESTAL;So;0;ON;;;;;N;;;;;
+21F0;RIGHTWARDS WHITE ARROW FROM WALL;So;0;ON;;;;;N;;;;;
+21F1;NORTH WEST ARROW TO CORNER;So;0;ON;;;;;N;;;;;
+21F2;SOUTH EAST ARROW TO CORNER;So;0;ON;;;;;N;;;;;
+21F3;UP DOWN WHITE ARROW;So;0;ON;;;;;N;;;;;
+2200;FOR ALL;Sm;0;ON;;;;;N;;;;;
+2201;COMPLEMENT;Sm;0;ON;;;;;Y;;;;;
+2202;PARTIAL DIFFERENTIAL;Sm;0;ON;;;;;Y;;;;;
+2203;THERE EXISTS;Sm;0;ON;;;;;Y;;;;;
+2204;THERE DOES NOT EXIST;Sm;0;ON;2203 0338;;;;Y;;;;;
+2205;EMPTY SET;Sm;0;ON;;;;;N;;;;;
+2206;INCREMENT;Sm;0;ON;;;;;N;;;;;
+2207;NABLA;Sm;0;ON;;;;;N;;;;;
+2208;ELEMENT OF;Sm;0;ON;;;;;Y;;;;;
+2209;NOT AN ELEMENT OF;Sm;0;ON;2208 0338;;;;Y;;;;;
+220A;SMALL ELEMENT OF;Sm;0;ON;;;;;Y;;;;;
+220B;CONTAINS AS MEMBER;Sm;0;ON;;;;;Y;;;;;
+220C;DOES NOT CONTAIN AS MEMBER;Sm;0;ON;220B 0338;;;;Y;;;;;
+220D;SMALL CONTAINS AS MEMBER;Sm;0;ON;;;;;Y;;;;;
+220E;END OF PROOF;Sm;0;ON;;;;;N;;;;;
+220F;N-ARY PRODUCT;Sm;0;ON;;;;;N;;;;;
+2210;N-ARY COPRODUCT;Sm;0;ON;;;;;N;;;;;
+2211;N-ARY SUMMATION;Sm;0;ON;;;;;Y;;;;;
+2212;MINUS SIGN;Sm;0;ET;;;;;N;;;;;
+2213;MINUS-OR-PLUS SIGN;Sm;0;ET;;;;;N;;;;;
+2214;DOT PLUS;Sm;0;ON;;;;;N;;;;;
+2215;DIVISION SLASH;Sm;0;ON;;;;;Y;;;;;
+2216;SET MINUS;Sm;0;ON;;;;;Y;;;;;
+2217;ASTERISK OPERATOR;Sm;0;ON;;;;;N;;;;;
+2218;RING OPERATOR;Sm;0;ON;;;;;N;;;;;
+2219;BULLET OPERATOR;Sm;0;ON;;;;;N;;;;;
+221A;SQUARE ROOT;Sm;0;ON;;;;;Y;;;;;
+221B;CUBE ROOT;Sm;0;ON;;;;;Y;;;;;
+221C;FOURTH ROOT;Sm;0;ON;;;;;Y;;;;;
+221D;PROPORTIONAL TO;Sm;0;ON;;;;;Y;;;;;
+221E;INFINITY;Sm;0;ON;;;;;N;;;;;
+221F;RIGHT ANGLE;Sm;0;ON;;;;;Y;;;;;
+2220;ANGLE;Sm;0;ON;;;;;Y;;;;;
+2221;MEASURED ANGLE;Sm;0;ON;;;;;Y;;;;;
+2222;SPHERICAL ANGLE;Sm;0;ON;;;;;Y;;;;;
+2223;DIVIDES;Sm;0;ON;;;;;N;;;;;
+2224;DOES NOT DIVIDE;Sm;0;ON;2223 0338;;;;Y;;;;;
+2225;PARALLEL TO;Sm;0;ON;;;;;N;;;;;
+2226;NOT PARALLEL TO;Sm;0;ON;2225 0338;;;;Y;;;;;
+2227;LOGICAL AND;Sm;0;ON;;;;;N;;;;;
+2228;LOGICAL OR;Sm;0;ON;;;;;N;;;;;
+2229;INTERSECTION;Sm;0;ON;;;;;N;;;;;
+222A;UNION;Sm;0;ON;;;;;N;;;;;
+222B;INTEGRAL;Sm;0;ON;;;;;Y;;;;;
+222C;DOUBLE INTEGRAL;Sm;0;ON;<compat> 222B 222B;;;;Y;;;;;
+222D;TRIPLE INTEGRAL;Sm;0;ON;<compat> 222B 222B 222B;;;;Y;;;;;
+222E;CONTOUR INTEGRAL;Sm;0;ON;;;;;Y;;;;;
+222F;SURFACE INTEGRAL;Sm;0;ON;<compat> 222E 222E;;;;Y;;;;;
+2230;VOLUME INTEGRAL;Sm;0;ON;<compat> 222E 222E 222E;;;;Y;;;;;
+2231;CLOCKWISE INTEGRAL;Sm;0;ON;;;;;Y;;;;;
+2232;CLOCKWISE CONTOUR INTEGRAL;Sm;0;ON;;;;;Y;;;;;
+2233;ANTICLOCKWISE CONTOUR INTEGRAL;Sm;0;ON;;;;;Y;;;;;
+2234;THEREFORE;Sm;0;ON;;;;;N;;;;;
+2235;BECAUSE;Sm;0;ON;;;;;N;;;;;
+2236;RATIO;Sm;0;ON;;;;;N;;;;;
+2237;PROPORTION;Sm;0;ON;;;;;N;;;;;
+2238;DOT MINUS;Sm;0;ON;;;;;N;;;;;
+2239;EXCESS;Sm;0;ON;;;;;Y;;;;;
+223A;GEOMETRIC PROPORTION;Sm;0;ON;;;;;N;;;;;
+223B;HOMOTHETIC;Sm;0;ON;;;;;Y;;;;;
+223C;TILDE OPERATOR;Sm;0;ON;;;;;Y;;;;;
+223D;REVERSED TILDE;Sm;0;ON;;;;;Y;;lazy S;;;
+223E;INVERTED LAZY S;Sm;0;ON;;;;;Y;;;;;
+223F;SINE WAVE;Sm;0;ON;;;;;Y;;;;;
+2240;WREATH PRODUCT;Sm;0;ON;;;;;Y;;;;;
+2241;NOT TILDE;Sm;0;ON;223C 0338;;;;Y;;;;;
+2242;MINUS TILDE;Sm;0;ON;;;;;Y;;;;;
+2243;ASYMPTOTICALLY EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2244;NOT ASYMPTOTICALLY EQUAL TO;Sm;0;ON;2243 0338;;;;Y;;;;;
+2245;APPROXIMATELY EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2246;APPROXIMATELY BUT NOT ACTUALLY EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2247;NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO;Sm;0;ON;2245 0338;;;;Y;;;;;
+2248;ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2249;NOT ALMOST EQUAL TO;Sm;0;ON;2248 0338;;;;Y;;;;;
+224A;ALMOST EQUAL OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+224B;TRIPLE TILDE;Sm;0;ON;;;;;Y;;;;;
+224C;ALL EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+224D;EQUIVALENT TO;Sm;0;ON;;;;;N;;;;;
+224E;GEOMETRICALLY EQUIVALENT TO;Sm;0;ON;;;;;N;;;;;
+224F;DIFFERENCE BETWEEN;Sm;0;ON;;;;;N;;;;;
+2250;APPROACHES THE LIMIT;Sm;0;ON;;;;;N;;;;;
+2251;GEOMETRICALLY EQUAL TO;Sm;0;ON;;;;;N;;;;;
+2252;APPROXIMATELY EQUAL TO OR THE IMAGE OF;Sm;0;ON;;;;;Y;;;;;
+2253;IMAGE OF OR APPROXIMATELY EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2254;COLON EQUALS;Sm;0;ON;;;;;Y;COLON EQUAL;;;;
+2255;EQUALS COLON;Sm;0;ON;;;;;Y;EQUAL COLON;;;;
+2256;RING IN EQUAL TO;Sm;0;ON;;;;;N;;;;;
+2257;RING EQUAL TO;Sm;0;ON;;;;;N;;;;;
+2258;CORRESPONDS TO;Sm;0;ON;;;;;N;;;;;
+2259;ESTIMATES;Sm;0;ON;;;;;N;;;;;
+225A;EQUIANGULAR TO;Sm;0;ON;;;;;N;;;;;
+225B;STAR EQUALS;Sm;0;ON;;;;;N;;;;;
+225C;DELTA EQUAL TO;Sm;0;ON;;;;;N;;;;;
+225D;EQUAL TO BY DEFINITION;Sm;0;ON;;;;;N;;;;;
+225E;MEASURED BY;Sm;0;ON;;;;;N;;;;;
+225F;QUESTIONED EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2260;NOT EQUAL TO;Sm;0;ON;003D 0338;;;;Y;;;;;
+2261;IDENTICAL TO;Sm;0;ON;;;;;N;;;;;
+2262;NOT IDENTICAL TO;Sm;0;ON;2261 0338;;;;Y;;;;;
+2263;STRICTLY EQUIVALENT TO;Sm;0;ON;;;;;N;;;;;
+2264;LESS-THAN OR EQUAL TO;Sm;0;ON;;;;;Y;LESS THAN OR EQUAL TO;;;;
+2265;GREATER-THAN OR EQUAL TO;Sm;0;ON;;;;;Y;GREATER THAN OR EQUAL TO;;;;
+2266;LESS-THAN OVER EQUAL TO;Sm;0;ON;;;;;Y;LESS THAN OVER EQUAL TO;;;;
+2267;GREATER-THAN OVER EQUAL TO;Sm;0;ON;;;;;Y;GREATER THAN OVER EQUAL TO;;;;
+2268;LESS-THAN BUT NOT EQUAL TO;Sm;0;ON;;;;;Y;LESS THAN BUT NOT EQUAL TO;;;;
+2269;GREATER-THAN BUT NOT EQUAL TO;Sm;0;ON;;;;;Y;GREATER THAN BUT NOT EQUAL TO;;;;
+226A;MUCH LESS-THAN;Sm;0;ON;;;;;Y;MUCH LESS THAN;;;;
+226B;MUCH GREATER-THAN;Sm;0;ON;;;;;Y;MUCH GREATER THAN;;;;
+226C;BETWEEN;Sm;0;ON;;;;;N;;;;;
+226D;NOT EQUIVALENT TO;Sm;0;ON;224D 0338;;;;N;;;;;
+226E;NOT LESS-THAN;Sm;0;ON;003C 0338;;;;Y;NOT LESS THAN;;;;
+226F;NOT GREATER-THAN;Sm;0;ON;003E 0338;;;;Y;NOT GREATER THAN;;;;
+2270;NEITHER LESS-THAN NOR EQUAL TO;Sm;0;ON;2264 0338;;;;Y;NEITHER LESS THAN NOR EQUAL TO;;;;
+2271;NEITHER GREATER-THAN NOR EQUAL TO;Sm;0;ON;2265 0338;;;;Y;NEITHER GREATER THAN NOR EQUAL TO;;;;
+2272;LESS-THAN OR EQUIVALENT TO;Sm;0;ON;;;;;Y;LESS THAN OR EQUIVALENT TO;;;;
+2273;GREATER-THAN OR EQUIVALENT TO;Sm;0;ON;;;;;Y;GREATER THAN OR EQUIVALENT TO;;;;
+2274;NEITHER LESS-THAN NOR EQUIVALENT TO;Sm;0;ON;2272 0338;;;;Y;NEITHER LESS THAN NOR EQUIVALENT TO;;;;
+2275;NEITHER GREATER-THAN NOR EQUIVALENT TO;Sm;0;ON;2273 0338;;;;Y;NEITHER GREATER THAN NOR EQUIVALENT TO;;;;
+2276;LESS-THAN OR GREATER-THAN;Sm;0;ON;;;;;Y;LESS THAN OR GREATER THAN;;;;
+2277;GREATER-THAN OR LESS-THAN;Sm;0;ON;;;;;Y;GREATER THAN OR LESS THAN;;;;
+2278;NEITHER LESS-THAN NOR GREATER-THAN;Sm;0;ON;2276 0338;;;;Y;NEITHER LESS THAN NOR GREATER THAN;;;;
+2279;NEITHER GREATER-THAN NOR LESS-THAN;Sm;0;ON;2277 0338;;;;Y;NEITHER GREATER THAN NOR LESS THAN;;;;
+227A;PRECEDES;Sm;0;ON;;;;;Y;;;;;
+227B;SUCCEEDS;Sm;0;ON;;;;;Y;;;;;
+227C;PRECEDES OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+227D;SUCCEEDS OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+227E;PRECEDES OR EQUIVALENT TO;Sm;0;ON;;;;;Y;;;;;
+227F;SUCCEEDS OR EQUIVALENT TO;Sm;0;ON;;;;;Y;;;;;
+2280;DOES NOT PRECEDE;Sm;0;ON;227A 0338;;;;Y;;;;;
+2281;DOES NOT SUCCEED;Sm;0;ON;227B 0338;;;;Y;;;;;
+2282;SUBSET OF;Sm;0;ON;;;;;Y;;;;;
+2283;SUPERSET OF;Sm;0;ON;;;;;Y;;;;;
+2284;NOT A SUBSET OF;Sm;0;ON;2282 0338;;;;Y;;;;;
+2285;NOT A SUPERSET OF;Sm;0;ON;2283 0338;;;;Y;;;;;
+2286;SUBSET OF OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2287;SUPERSET OF OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2288;NEITHER A SUBSET OF NOR EQUAL TO;Sm;0;ON;2286 0338;;;;Y;;;;;
+2289;NEITHER A SUPERSET OF NOR EQUAL TO;Sm;0;ON;2287 0338;;;;Y;;;;;
+228A;SUBSET OF WITH NOT EQUAL TO;Sm;0;ON;;;;;Y;SUBSET OF OR NOT EQUAL TO;;;;
+228B;SUPERSET OF WITH NOT EQUAL TO;Sm;0;ON;;;;;Y;SUPERSET OF OR NOT EQUAL TO;;;;
+228C;MULTISET;Sm;0;ON;;;;;Y;;;;;
+228D;MULTISET MULTIPLICATION;Sm;0;ON;;;;;N;;;;;
+228E;MULTISET UNION;Sm;0;ON;;;;;N;;;;;
+228F;SQUARE IMAGE OF;Sm;0;ON;;;;;Y;;;;;
+2290;SQUARE ORIGINAL OF;Sm;0;ON;;;;;Y;;;;;
+2291;SQUARE IMAGE OF OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2292;SQUARE ORIGINAL OF OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+2293;SQUARE CAP;Sm;0;ON;;;;;N;;;;;
+2294;SQUARE CUP;Sm;0;ON;;;;;N;;;;;
+2295;CIRCLED PLUS;Sm;0;ON;;;;;N;;;;;
+2296;CIRCLED MINUS;Sm;0;ON;;;;;N;;;;;
+2297;CIRCLED TIMES;Sm;0;ON;;;;;N;;;;;
+2298;CIRCLED DIVISION SLASH;Sm;0;ON;;;;;Y;;;;;
+2299;CIRCLED DOT OPERATOR;Sm;0;ON;;;;;N;;;;;
+229A;CIRCLED RING OPERATOR;Sm;0;ON;;;;;N;;;;;
+229B;CIRCLED ASTERISK OPERATOR;Sm;0;ON;;;;;N;;;;;
+229C;CIRCLED EQUALS;Sm;0;ON;;;;;N;;;;;
+229D;CIRCLED DASH;Sm;0;ON;;;;;N;;;;;
+229E;SQUARED PLUS;Sm;0;ON;;;;;N;;;;;
+229F;SQUARED MINUS;Sm;0;ON;;;;;N;;;;;
+22A0;SQUARED TIMES;Sm;0;ON;;;;;N;;;;;
+22A1;SQUARED DOT OPERATOR;Sm;0;ON;;;;;N;;;;;
+22A2;RIGHT TACK;Sm;0;ON;;;;;Y;;;;;
+22A3;LEFT TACK;Sm;0;ON;;;;;Y;;;;;
+22A4;DOWN TACK;Sm;0;ON;;;;;N;;;;;
+22A5;UP TACK;Sm;0;ON;;;;;N;;;;;
+22A6;ASSERTION;Sm;0;ON;;;;;Y;;;;;
+22A7;MODELS;Sm;0;ON;;;;;Y;;;;;
+22A8;TRUE;Sm;0;ON;;;;;Y;;;;;
+22A9;FORCES;Sm;0;ON;;;;;Y;;;;;
+22AA;TRIPLE VERTICAL BAR RIGHT TURNSTILE;Sm;0;ON;;;;;Y;;;;;
+22AB;DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE;Sm;0;ON;;;;;Y;;;;;
+22AC;DOES NOT PROVE;Sm;0;ON;22A2 0338;;;;Y;;;;;
+22AD;NOT TRUE;Sm;0;ON;22A8 0338;;;;Y;;;;;
+22AE;DOES NOT FORCE;Sm;0;ON;22A9 0338;;;;Y;;;;;
+22AF;NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE;Sm;0;ON;22AB 0338;;;;Y;;;;;
+22B0;PRECEDES UNDER RELATION;Sm;0;ON;;;;;Y;;;;;
+22B1;SUCCEEDS UNDER RELATION;Sm;0;ON;;;;;Y;;;;;
+22B2;NORMAL SUBGROUP OF;Sm;0;ON;;;;;Y;;;;;
+22B3;CONTAINS AS NORMAL SUBGROUP;Sm;0;ON;;;;;Y;;;;;
+22B4;NORMAL SUBGROUP OF OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+22B5;CONTAINS AS NORMAL SUBGROUP OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+22B6;ORIGINAL OF;Sm;0;ON;;;;;Y;;;;;
+22B7;IMAGE OF;Sm;0;ON;;;;;Y;;;;;
+22B8;MULTIMAP;Sm;0;ON;;;;;Y;;;;;
+22B9;HERMITIAN CONJUGATE MATRIX;Sm;0;ON;;;;;N;;;;;
+22BA;INTERCALATE;Sm;0;ON;;;;;N;;;;;
+22BB;XOR;Sm;0;ON;;;;;N;;;;;
+22BC;NAND;Sm;0;ON;;;;;N;;;;;
+22BD;NOR;Sm;0;ON;;;;;N;;;;;
+22BE;RIGHT ANGLE WITH ARC;Sm;0;ON;;;;;Y;;;;;
+22BF;RIGHT TRIANGLE;Sm;0;ON;;;;;Y;;;;;
+22C0;N-ARY LOGICAL AND;Sm;0;ON;;;;;N;;;;;
+22C1;N-ARY LOGICAL OR;Sm;0;ON;;;;;N;;;;;
+22C2;N-ARY INTERSECTION;Sm;0;ON;;;;;N;;;;;
+22C3;N-ARY UNION;Sm;0;ON;;;;;N;;;;;
+22C4;DIAMOND OPERATOR;Sm;0;ON;;;;;N;;;;;
+22C5;DOT OPERATOR;Sm;0;ON;;;;;N;;;;;
+22C6;STAR OPERATOR;Sm;0;ON;;;;;N;;;;;
+22C7;DIVISION TIMES;Sm;0;ON;;;;;N;;;;;
+22C8;BOWTIE;Sm;0;ON;;;;;N;;;;;
+22C9;LEFT NORMAL FACTOR SEMIDIRECT PRODUCT;Sm;0;ON;;;;;Y;;;;;
+22CA;RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT;Sm;0;ON;;;;;Y;;;;;
+22CB;LEFT SEMIDIRECT PRODUCT;Sm;0;ON;;;;;Y;;;;;
+22CC;RIGHT SEMIDIRECT PRODUCT;Sm;0;ON;;;;;Y;;;;;
+22CD;REVERSED TILDE EQUALS;Sm;0;ON;;;;;Y;;;;;
+22CE;CURLY LOGICAL OR;Sm;0;ON;;;;;N;;;;;
+22CF;CURLY LOGICAL AND;Sm;0;ON;;;;;N;;;;;
+22D0;DOUBLE SUBSET;Sm;0;ON;;;;;Y;;;;;
+22D1;DOUBLE SUPERSET;Sm;0;ON;;;;;Y;;;;;
+22D2;DOUBLE INTERSECTION;Sm;0;ON;;;;;N;;;;;
+22D3;DOUBLE UNION;Sm;0;ON;;;;;N;;;;;
+22D4;PITCHFORK;Sm;0;ON;;;;;N;;;;;
+22D5;EQUAL AND PARALLEL TO;Sm;0;ON;;;;;N;;;;;
+22D6;LESS-THAN WITH DOT;Sm;0;ON;;;;;Y;LESS THAN WITH DOT;;;;
+22D7;GREATER-THAN WITH DOT;Sm;0;ON;;;;;Y;GREATER THAN WITH DOT;;;;
+22D8;VERY MUCH LESS-THAN;Sm;0;ON;;;;;Y;VERY MUCH LESS THAN;;;;
+22D9;VERY MUCH GREATER-THAN;Sm;0;ON;;;;;Y;VERY MUCH GREATER THAN;;;;
+22DA;LESS-THAN EQUAL TO OR GREATER-THAN;Sm;0;ON;;;;;Y;LESS THAN EQUAL TO OR GREATER THAN;;;;
+22DB;GREATER-THAN EQUAL TO OR LESS-THAN;Sm;0;ON;;;;;Y;GREATER THAN EQUAL TO OR LESS THAN;;;;
+22DC;EQUAL TO OR LESS-THAN;Sm;0;ON;;;;;Y;EQUAL TO OR LESS THAN;;;;
+22DD;EQUAL TO OR GREATER-THAN;Sm;0;ON;;;;;Y;EQUAL TO OR GREATER THAN;;;;
+22DE;EQUAL TO OR PRECEDES;Sm;0;ON;;;;;Y;;;;;
+22DF;EQUAL TO OR SUCCEEDS;Sm;0;ON;;;;;Y;;;;;
+22E0;DOES NOT PRECEDE OR EQUAL;Sm;0;ON;227C 0338;;;;Y;;;;;
+22E1;DOES NOT SUCCEED OR EQUAL;Sm;0;ON;227D 0338;;;;Y;;;;;
+22E2;NOT SQUARE IMAGE OF OR EQUAL TO;Sm;0;ON;2291 0338;;;;Y;;;;;
+22E3;NOT SQUARE ORIGINAL OF OR EQUAL TO;Sm;0;ON;2292 0338;;;;Y;;;;;
+22E4;SQUARE IMAGE OF OR NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+22E5;SQUARE ORIGINAL OF OR NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;;
+22E6;LESS-THAN BUT NOT EQUIVALENT TO;Sm;0;ON;;;;;Y;LESS THAN BUT NOT EQUIVALENT TO;;;;
+22E7;GREATER-THAN BUT NOT EQUIVALENT TO;Sm;0;ON;;;;;Y;GREATER THAN BUT NOT EQUIVALENT TO;;;;
+22E8;PRECEDES BUT NOT EQUIVALENT TO;Sm;0;ON;;;;;Y;;;;;
+22E9;SUCCEEDS BUT NOT EQUIVALENT TO;Sm;0;ON;;;;;Y;;;;;
+22EA;NOT NORMAL SUBGROUP OF;Sm;0;ON;22B2 0338;;;;Y;;;;;
+22EB;DOES NOT CONTAIN AS NORMAL SUBGROUP;Sm;0;ON;22B3 0338;;;;Y;;;;;
+22EC;NOT NORMAL SUBGROUP OF OR EQUAL TO;Sm;0;ON;22B4 0338;;;;Y;;;;;
+22ED;DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL;Sm;0;ON;22B5 0338;;;;Y;;;;;
+22EE;VERTICAL ELLIPSIS;Sm;0;ON;;;;;N;;;;;
+22EF;MIDLINE HORIZONTAL ELLIPSIS;Sm;0;ON;;;;;N;;;;;
+22F0;UP RIGHT DIAGONAL ELLIPSIS;Sm;0;ON;;;;;Y;;;;;
+22F1;DOWN RIGHT DIAGONAL ELLIPSIS;Sm;0;ON;;;;;Y;;;;;
+2300;DIAMETER SIGN;So;0;ON;;;;;N;;;;;
+2301;ELECTRIC ARROW;So;0;ON;;;;;N;;;;;
+2302;HOUSE;So;0;ON;;;;;N;;;;;
+2303;UP ARROWHEAD;So;0;ON;;;;;N;;;;;
+2304;DOWN ARROWHEAD;So;0;ON;;;;;N;;;;;
+2305;PROJECTIVE;So;0;ON;;;;;N;;;;;
+2306;PERSPECTIVE;So;0;ON;;;;;N;;;;;
+2307;WAVY LINE;So;0;ON;;;;;N;;;;;
+2308;LEFT CEILING;Sm;0;ON;;;;;Y;;;;;
+2309;RIGHT CEILING;Sm;0;ON;;;;;Y;;;;;
+230A;LEFT FLOOR;Sm;0;ON;;;;;Y;;;;;
+230B;RIGHT FLOOR;Sm;0;ON;;;;;Y;;;;;
+230C;BOTTOM RIGHT CROP;So;0;ON;;;;;N;;;;;
+230D;BOTTOM LEFT CROP;So;0;ON;;;;;N;;;;;
+230E;TOP RIGHT CROP;So;0;ON;;;;;N;;;;;
+230F;TOP LEFT CROP;So;0;ON;;;;;N;;;;;
+2310;REVERSED NOT SIGN;So;0;ON;;;;;N;;;;;
+2311;SQUARE LOZENGE;So;0;ON;;;;;N;;;;;
+2312;ARC;So;0;ON;;;;;N;;;;;
+2313;SEGMENT;So;0;ON;;;;;N;;;;;
+2314;SECTOR;So;0;ON;;;;;N;;;;;
+2315;TELEPHONE RECORDER;So;0;ON;;;;;N;;;;;
+2316;POSITION INDICATOR;So;0;ON;;;;;N;;;;;
+2317;VIEWDATA SQUARE;So;0;ON;;;;;N;;;;;
+2318;PLACE OF INTEREST SIGN;So;0;ON;;;;;N;COMMAND KEY;;;;
+2319;TURNED NOT SIGN;So;0;ON;;;;;N;;;;;
+231A;WATCH;So;0;ON;;;;;N;;;;;
+231B;HOURGLASS;So;0;ON;;;;;N;;;;;
+231C;TOP LEFT CORNER;So;0;ON;;;;;N;;;;;
+231D;TOP RIGHT CORNER;So;0;ON;;;;;N;;;;;
+231E;BOTTOM LEFT CORNER;So;0;ON;;;;;N;;;;;
+231F;BOTTOM RIGHT CORNER;So;0;ON;;;;;N;;;;;
+2320;TOP HALF INTEGRAL;Sm;0;ON;;;;;Y;;;;;
+2321;BOTTOM HALF INTEGRAL;Sm;0;ON;;;;;Y;;;;;
+2322;FROWN;So;0;ON;;;;;N;;;;;
+2323;SMILE;So;0;ON;;;;;N;;;;;
+2324;UP ARROWHEAD BETWEEN TWO HORIZONTAL BARS;So;0;ON;;;;;N;ENTER KEY;;;;
+2325;OPTION KEY;So;0;ON;;;;;N;;;;;
+2326;ERASE TO THE RIGHT;So;0;ON;;;;;N;DELETE TO THE RIGHT KEY;;;;
+2327;X IN A RECTANGLE BOX;So;0;ON;;;;;N;CLEAR KEY;;;;
+2328;KEYBOARD;So;0;ON;;;;;N;;;;;
+2329;LEFT-POINTING ANGLE BRACKET;Ps;0;ON;3008;;;;Y;BRA;;;;
+232A;RIGHT-POINTING ANGLE BRACKET;Pe;0;ON;3009;;;;Y;KET;;;;
+232B;ERASE TO THE LEFT;So;0;ON;;;;;N;DELETE TO THE LEFT KEY;;;;
+232C;BENZENE RING;So;0;ON;;;;;N;;;;;
+232D;CYLINDRICITY;So;0;ON;;;;;N;;;;;
+232E;ALL AROUND-PROFILE;So;0;ON;;;;;N;;;;;
+232F;SYMMETRY;So;0;ON;;;;;N;;;;;
+2330;TOTAL RUNOUT;So;0;ON;;;;;N;;;;;
+2331;DIMENSION ORIGIN;So;0;ON;;;;;N;;;;;
+2332;CONICAL TAPER;So;0;ON;;;;;N;;;;;
+2333;SLOPE;So;0;ON;;;;;N;;;;;
+2334;COUNTERBORE;So;0;ON;;;;;N;;;;;
+2335;COUNTERSINK;So;0;ON;;;;;N;;;;;
+2336;APL FUNCTIONAL SYMBOL I-BEAM;So;0;L;;;;;N;;;;;
+2337;APL FUNCTIONAL SYMBOL SQUISH QUAD;So;0;L;;;;;N;;;;;
+2338;APL FUNCTIONAL SYMBOL QUAD EQUAL;So;0;L;;;;;N;;;;;
+2339;APL FUNCTIONAL SYMBOL QUAD DIVIDE;So;0;L;;;;;N;;;;;
+233A;APL FUNCTIONAL SYMBOL QUAD DIAMOND;So;0;L;;;;;N;;;;;
+233B;APL FUNCTIONAL SYMBOL QUAD JOT;So;0;L;;;;;N;;;;;
+233C;APL FUNCTIONAL SYMBOL QUAD CIRCLE;So;0;L;;;;;N;;;;;
+233D;APL FUNCTIONAL SYMBOL CIRCLE STILE;So;0;L;;;;;N;;;;;
+233E;APL FUNCTIONAL SYMBOL CIRCLE JOT;So;0;L;;;;;N;;;;;
+233F;APL FUNCTIONAL SYMBOL SLASH BAR;So;0;L;;;;;N;;;;;
+2340;APL FUNCTIONAL SYMBOL BACKSLASH BAR;So;0;L;;;;;N;;;;;
+2341;APL FUNCTIONAL SYMBOL QUAD SLASH;So;0;L;;;;;N;;;;;
+2342;APL FUNCTIONAL SYMBOL QUAD BACKSLASH;So;0;L;;;;;N;;;;;
+2343;APL FUNCTIONAL SYMBOL QUAD LESS-THAN;So;0;L;;;;;N;;;;;
+2344;APL FUNCTIONAL SYMBOL QUAD GREATER-THAN;So;0;L;;;;;N;;;;;
+2345;APL FUNCTIONAL SYMBOL LEFTWARDS VANE;So;0;L;;;;;N;;;;;
+2346;APL FUNCTIONAL SYMBOL RIGHTWARDS VANE;So;0;L;;;;;N;;;;;
+2347;APL FUNCTIONAL SYMBOL QUAD LEFTWARDS ARROW;So;0;L;;;;;N;;;;;
+2348;APL FUNCTIONAL SYMBOL QUAD RIGHTWARDS ARROW;So;0;L;;;;;N;;;;;
+2349;APL FUNCTIONAL SYMBOL CIRCLE BACKSLASH;So;0;L;;;;;N;;;;;
+234A;APL FUNCTIONAL SYMBOL DOWN TACK UNDERBAR;So;0;L;;;;;N;;*;;;
+234B;APL FUNCTIONAL SYMBOL DELTA STILE;So;0;L;;;;;N;;;;;
+234C;APL FUNCTIONAL SYMBOL QUAD DOWN CARET;So;0;L;;;;;N;;;;;
+234D;APL FUNCTIONAL SYMBOL QUAD DELTA;So;0;L;;;;;N;;;;;
+234E;APL FUNCTIONAL SYMBOL DOWN TACK JOT;So;0;L;;;;;N;;*;;;
+234F;APL FUNCTIONAL SYMBOL UPWARDS VANE;So;0;L;;;;;N;;;;;
+2350;APL FUNCTIONAL SYMBOL QUAD UPWARDS ARROW;So;0;L;;;;;N;;;;;
+2351;APL FUNCTIONAL SYMBOL UP TACK OVERBAR;So;0;L;;;;;N;;*;;;
+2352;APL FUNCTIONAL SYMBOL DEL STILE;So;0;L;;;;;N;;;;;
+2353;APL FUNCTIONAL SYMBOL QUAD UP CARET;So;0;L;;;;;N;;;;;
+2354;APL FUNCTIONAL SYMBOL QUAD DEL;So;0;L;;;;;N;;;;;
+2355;APL FUNCTIONAL SYMBOL UP TACK JOT;So;0;L;;;;;N;;*;;;
+2356;APL FUNCTIONAL SYMBOL DOWNWARDS VANE;So;0;L;;;;;N;;;;;
+2357;APL FUNCTIONAL SYMBOL QUAD DOWNWARDS ARROW;So;0;L;;;;;N;;;;;
+2358;APL FUNCTIONAL SYMBOL QUOTE UNDERBAR;So;0;L;;;;;N;;;;;
+2359;APL FUNCTIONAL SYMBOL DELTA UNDERBAR;So;0;L;;;;;N;;;;;
+235A;APL FUNCTIONAL SYMBOL DIAMOND UNDERBAR;So;0;L;;;;;N;;;;;
+235B;APL FUNCTIONAL SYMBOL JOT UNDERBAR;So;0;L;;;;;N;;;;;
+235C;APL FUNCTIONAL SYMBOL CIRCLE UNDERBAR;So;0;L;;;;;N;;;;;
+235D;APL FUNCTIONAL SYMBOL UP SHOE JOT;So;0;L;;;;;N;;;;;
+235E;APL FUNCTIONAL SYMBOL QUOTE QUAD;So;0;L;;;;;N;;;;;
+235F;APL FUNCTIONAL SYMBOL CIRCLE STAR;So;0;L;;;;;N;;;;;
+2360;APL FUNCTIONAL SYMBOL QUAD COLON;So;0;L;;;;;N;;;;;
+2361;APL FUNCTIONAL SYMBOL UP TACK DIAERESIS;So;0;L;;;;;N;;*;;;
+2362;APL FUNCTIONAL SYMBOL DEL DIAERESIS;So;0;L;;;;;N;;;;;
+2363;APL FUNCTIONAL SYMBOL STAR DIAERESIS;So;0;L;;;;;N;;;;;
+2364;APL FUNCTIONAL SYMBOL JOT DIAERESIS;So;0;L;;;;;N;;;;;
+2365;APL FUNCTIONAL SYMBOL CIRCLE DIAERESIS;So;0;L;;;;;N;;;;;
+2366;APL FUNCTIONAL SYMBOL DOWN SHOE STILE;So;0;L;;;;;N;;;;;
+2367;APL FUNCTIONAL SYMBOL LEFT SHOE STILE;So;0;L;;;;;N;;;;;
+2368;APL FUNCTIONAL SYMBOL TILDE DIAERESIS;So;0;L;;;;;N;;;;;
+2369;APL FUNCTIONAL SYMBOL GREATER-THAN DIAERESIS;So;0;L;;;;;N;;;;;
+236A;APL FUNCTIONAL SYMBOL COMMA BAR;So;0;L;;;;;N;;;;;
+236B;APL FUNCTIONAL SYMBOL DEL TILDE;So;0;L;;;;;N;;;;;
+236C;APL FUNCTIONAL SYMBOL ZILDE;So;0;L;;;;;N;;;;;
+236D;APL FUNCTIONAL SYMBOL STILE TILDE;So;0;L;;;;;N;;;;;
+236E;APL FUNCTIONAL SYMBOL SEMICOLON UNDERBAR;So;0;L;;;;;N;;;;;
+236F;APL FUNCTIONAL SYMBOL QUAD NOT EQUAL;So;0;L;;;;;N;;;;;
+2370;APL FUNCTIONAL SYMBOL QUAD QUESTION;So;0;L;;;;;N;;;;;
+2371;APL FUNCTIONAL SYMBOL DOWN CARET TILDE;So;0;L;;;;;N;;;;;
+2372;APL FUNCTIONAL SYMBOL UP CARET TILDE;So;0;L;;;;;N;;;;;
+2373;APL FUNCTIONAL SYMBOL IOTA;So;0;L;;;;;N;;;;;
+2374;APL FUNCTIONAL SYMBOL RHO;So;0;L;;;;;N;;;;;
+2375;APL FUNCTIONAL SYMBOL OMEGA;So;0;L;;;;;N;;;;;
+2376;APL FUNCTIONAL SYMBOL ALPHA UNDERBAR;So;0;L;;;;;N;;;;;
+2377;APL FUNCTIONAL SYMBOL EPSILON UNDERBAR;So;0;L;;;;;N;;;;;
+2378;APL FUNCTIONAL SYMBOL IOTA UNDERBAR;So;0;L;;;;;N;;;;;
+2379;APL FUNCTIONAL SYMBOL OMEGA UNDERBAR;So;0;L;;;;;N;;;;;
+237A;APL FUNCTIONAL SYMBOL ALPHA;So;0;L;;;;;N;;;;;
+237B;NOT CHECK MARK;So;0;ON;;;;;N;;;;;
+237D;SHOULDERED OPEN BOX;So;0;ON;;;;;N;;;;;
+237E;BELL SYMBOL;So;0;ON;;;;;N;;;;;
+237F;VERTICAL LINE WITH MIDDLE DOT;So;0;ON;;;;;N;;;;;
+2380;INSERTION SYMBOL;So;0;ON;;;;;N;;;;;
+2381;CONTINUOUS UNDERLINE SYMBOL;So;0;ON;;;;;N;;;;;
+2382;DISCONTINUOUS UNDERLINE SYMBOL;So;0;ON;;;;;N;;;;;
+2383;EMPHASIS SYMBOL;So;0;ON;;;;;N;;;;;
+2384;COMPOSITION SYMBOL;So;0;ON;;;;;N;;;;;
+2385;WHITE SQUARE WITH CENTRE VERTICAL LINE;So;0;ON;;;;;N;;;;;
+2386;ENTER SYMBOL;So;0;ON;;;;;N;;;;;
+2387;ALTERNATIVE KEY SYMBOL;So;0;ON;;;;;N;;;;;
+2388;HELM SYMBOL;So;0;ON;;;;;N;;;;;
+2389;CIRCLED HORIZONTAL BAR WITH NOTCH;So;0;ON;;;;;N;;pause;;;
+238A;CIRCLED TRIANGLE DOWN;So;0;ON;;;;;N;;break;;;
+238B;BROKEN CIRCLE WITH NORTHWEST ARROW;So;0;ON;;;;;N;;escape;;;
+238C;UNDO SYMBOL;So;0;ON;;;;;N;;;;;
+238D;MONOSTABLE SYMBOL;So;0;ON;;;;;N;;;;;
+238E;HYSTERESIS SYMBOL;So;0;ON;;;;;N;;;;;
+238F;OPEN-CIRCUIT-OUTPUT H-TYPE SYMBOL;So;0;ON;;;;;N;;;;;
+2390;OPEN-CIRCUIT-OUTPUT L-TYPE SYMBOL;So;0;ON;;;;;N;;;;;
+2391;PASSIVE-PULL-DOWN-OUTPUT SYMBOL;So;0;ON;;;;;N;;;;;
+2392;PASSIVE-PULL-UP-OUTPUT SYMBOL;So;0;ON;;;;;N;;;;;
+2393;DIRECT CURRENT SYMBOL FORM TWO;So;0;ON;;;;;N;;;;;
+2394;SOFTWARE-FUNCTION SYMBOL;So;0;ON;;;;;N;;;;;
+2395;APL FUNCTIONAL SYMBOL QUAD;So;0;L;;;;;N;;;;;
+2396;DECIMAL SEPARATOR KEY SYMBOL;So;0;ON;;;;;N;;;;;
+2397;PREVIOUS PAGE;So;0;ON;;;;;N;;;;;
+2398;NEXT PAGE;So;0;ON;;;;;N;;;;;
+2399;PRINT SCREEN SYMBOL;So;0;ON;;;;;N;;;;;
+239A;CLEAR SCREEN SYMBOL;So;0;ON;;;;;N;;;;;
+2400;SYMBOL FOR NULL;So;0;ON;;;;;N;GRAPHIC FOR NULL;;;;
+2401;SYMBOL FOR START OF HEADING;So;0;ON;;;;;N;GRAPHIC FOR START OF HEADING;;;;
+2402;SYMBOL FOR START OF TEXT;So;0;ON;;;;;N;GRAPHIC FOR START OF TEXT;;;;
+2403;SYMBOL FOR END OF TEXT;So;0;ON;;;;;N;GRAPHIC FOR END OF TEXT;;;;
+2404;SYMBOL FOR END OF TRANSMISSION;So;0;ON;;;;;N;GRAPHIC FOR END OF TRANSMISSION;;;;
+2405;SYMBOL FOR ENQUIRY;So;0;ON;;;;;N;GRAPHIC FOR ENQUIRY;;;;
+2406;SYMBOL FOR ACKNOWLEDGE;So;0;ON;;;;;N;GRAPHIC FOR ACKNOWLEDGE;;;;
+2407;SYMBOL FOR BELL;So;0;ON;;;;;N;GRAPHIC FOR BELL;;;;
+2408;SYMBOL FOR BACKSPACE;So;0;ON;;;;;N;GRAPHIC FOR BACKSPACE;;;;
+2409;SYMBOL FOR HORIZONTAL TABULATION;So;0;ON;;;;;N;GRAPHIC FOR HORIZONTAL TABULATION;;;;
+240A;SYMBOL FOR LINE FEED;So;0;ON;;;;;N;GRAPHIC FOR LINE FEED;;;;
+240B;SYMBOL FOR VERTICAL TABULATION;So;0;ON;;;;;N;GRAPHIC FOR VERTICAL TABULATION;;;;
+240C;SYMBOL FOR FORM FEED;So;0;ON;;;;;N;GRAPHIC FOR FORM FEED;;;;
+240D;SYMBOL FOR CARRIAGE RETURN;So;0;ON;;;;;N;GRAPHIC FOR CARRIAGE RETURN;;;;
+240E;SYMBOL FOR SHIFT OUT;So;0;ON;;;;;N;GRAPHIC FOR SHIFT OUT;;;;
+240F;SYMBOL FOR SHIFT IN;So;0;ON;;;;;N;GRAPHIC FOR SHIFT IN;;;;
+2410;SYMBOL FOR DATA LINK ESCAPE;So;0;ON;;;;;N;GRAPHIC FOR DATA LINK ESCAPE;;;;
+2411;SYMBOL FOR DEVICE CONTROL ONE;So;0;ON;;;;;N;GRAPHIC FOR DEVICE CONTROL ONE;;;;
+2412;SYMBOL FOR DEVICE CONTROL TWO;So;0;ON;;;;;N;GRAPHIC FOR DEVICE CONTROL TWO;;;;
+2413;SYMBOL FOR DEVICE CONTROL THREE;So;0;ON;;;;;N;GRAPHIC FOR DEVICE CONTROL THREE;;;;
+2414;SYMBOL FOR DEVICE CONTROL FOUR;So;0;ON;;;;;N;GRAPHIC FOR DEVICE CONTROL FOUR;;;;
+2415;SYMBOL FOR NEGATIVE ACKNOWLEDGE;So;0;ON;;;;;N;GRAPHIC FOR NEGATIVE ACKNOWLEDGE;;;;
+2416;SYMBOL FOR SYNCHRONOUS IDLE;So;0;ON;;;;;N;GRAPHIC FOR SYNCHRONOUS IDLE;;;;
+2417;SYMBOL FOR END OF TRANSMISSION BLOCK;So;0;ON;;;;;N;GRAPHIC FOR END OF TRANSMISSION BLOCK;;;;
+2418;SYMBOL FOR CANCEL;So;0;ON;;;;;N;GRAPHIC FOR CANCEL;;;;
+2419;SYMBOL FOR END OF MEDIUM;So;0;ON;;;;;N;GRAPHIC FOR END OF MEDIUM;;;;
+241A;SYMBOL FOR SUBSTITUTE;So;0;ON;;;;;N;GRAPHIC FOR SUBSTITUTE;;;;
+241B;SYMBOL FOR ESCAPE;So;0;ON;;;;;N;GRAPHIC FOR ESCAPE;;;;
+241C;SYMBOL FOR FILE SEPARATOR;So;0;ON;;;;;N;GRAPHIC FOR FILE SEPARATOR;;;;
+241D;SYMBOL FOR GROUP SEPARATOR;So;0;ON;;;;;N;GRAPHIC FOR GROUP SEPARATOR;;;;
+241E;SYMBOL FOR RECORD SEPARATOR;So;0;ON;;;;;N;GRAPHIC FOR RECORD SEPARATOR;;;;
+241F;SYMBOL FOR UNIT SEPARATOR;So;0;ON;;;;;N;GRAPHIC FOR UNIT SEPARATOR;;;;
+2420;SYMBOL FOR SPACE;So;0;ON;;;;;N;GRAPHIC FOR SPACE;;;;
+2421;SYMBOL FOR DELETE;So;0;ON;;;;;N;GRAPHIC FOR DELETE;;;;
+2422;BLANK SYMBOL;So;0;ON;;;;;N;BLANK;;;;
+2423;OPEN BOX;So;0;ON;;;;;N;;;;;
+2424;SYMBOL FOR NEWLINE;So;0;ON;;;;;N;GRAPHIC FOR NEWLINE;;;;
+2425;SYMBOL FOR DELETE FORM TWO;So;0;ON;;;;;N;;;;;
+2426;SYMBOL FOR SUBSTITUTE FORM TWO;So;0;ON;;;;;N;;;;;
+2440;OCR HOOK;So;0;ON;;;;;N;;;;;
+2441;OCR CHAIR;So;0;ON;;;;;N;;;;;
+2442;OCR FORK;So;0;ON;;;;;N;;;;;
+2443;OCR INVERTED FORK;So;0;ON;;;;;N;;;;;
+2444;OCR BELT BUCKLE;So;0;ON;;;;;N;;;;;
+2445;OCR BOW TIE;So;0;ON;;;;;N;;;;;
+2446;OCR BRANCH BANK IDENTIFICATION;So;0;ON;;;;;N;;;;;
+2447;OCR AMOUNT OF CHECK;So;0;ON;;;;;N;;;;;
+2448;OCR DASH;So;0;ON;;;;;N;;;;;
+2449;OCR CUSTOMER ACCOUNT NUMBER;So;0;ON;;;;;N;;;;;
+244A;OCR DOUBLE BACKSLASH;So;0;ON;;;;;N;;;;;
+2460;CIRCLED DIGIT ONE;No;0;EN;<circle> 0031;;1;1;N;;;;;
+2461;CIRCLED DIGIT TWO;No;0;EN;<circle> 0032;;2;2;N;;;;;
+2462;CIRCLED DIGIT THREE;No;0;EN;<circle> 0033;;3;3;N;;;;;
+2463;CIRCLED DIGIT FOUR;No;0;EN;<circle> 0034;;4;4;N;;;;;
+2464;CIRCLED DIGIT FIVE;No;0;EN;<circle> 0035;;5;5;N;;;;;
+2465;CIRCLED DIGIT SIX;No;0;EN;<circle> 0036;;6;6;N;;;;;
+2466;CIRCLED DIGIT SEVEN;No;0;EN;<circle> 0037;;7;7;N;;;;;
+2467;CIRCLED DIGIT EIGHT;No;0;EN;<circle> 0038;;8;8;N;;;;;
+2468;CIRCLED DIGIT NINE;No;0;EN;<circle> 0039;;9;9;N;;;;;
+2469;CIRCLED NUMBER TEN;No;0;EN;<circle> 0031 0030;;;10;N;;;;;
+246A;CIRCLED NUMBER ELEVEN;No;0;EN;<circle> 0031 0031;;;11;N;;;;;
+246B;CIRCLED NUMBER TWELVE;No;0;EN;<circle> 0031 0032;;;12;N;;;;;
+246C;CIRCLED NUMBER THIRTEEN;No;0;EN;<circle> 0031 0033;;;13;N;;;;;
+246D;CIRCLED NUMBER FOURTEEN;No;0;EN;<circle> 0031 0034;;;14;N;;;;;
+246E;CIRCLED NUMBER FIFTEEN;No;0;EN;<circle> 0031 0035;;;15;N;;;;;
+246F;CIRCLED NUMBER SIXTEEN;No;0;EN;<circle> 0031 0036;;;16;N;;;;;
+2470;CIRCLED NUMBER SEVENTEEN;No;0;EN;<circle> 0031 0037;;;17;N;;;;;
+2471;CIRCLED NUMBER EIGHTEEN;No;0;EN;<circle> 0031 0038;;;18;N;;;;;
+2472;CIRCLED NUMBER NINETEEN;No;0;EN;<circle> 0031 0039;;;19;N;;;;;
+2473;CIRCLED NUMBER TWENTY;No;0;EN;<circle> 0032 0030;;;20;N;;;;;
+2474;PARENTHESIZED DIGIT ONE;No;0;EN;<compat> 0028 0031 0029;;1;1;N;;;;;
+2475;PARENTHESIZED DIGIT TWO;No;0;EN;<compat> 0028 0032 0029;;2;2;N;;;;;
+2476;PARENTHESIZED DIGIT THREE;No;0;EN;<compat> 0028 0033 0029;;3;3;N;;;;;
+2477;PARENTHESIZED DIGIT FOUR;No;0;EN;<compat> 0028 0034 0029;;4;4;N;;;;;
+2478;PARENTHESIZED DIGIT FIVE;No;0;EN;<compat> 0028 0035 0029;;5;5;N;;;;;
+2479;PARENTHESIZED DIGIT SIX;No;0;EN;<compat> 0028 0036 0029;;6;6;N;;;;;
+247A;PARENTHESIZED DIGIT SEVEN;No;0;EN;<compat> 0028 0037 0029;;7;7;N;;;;;
+247B;PARENTHESIZED DIGIT EIGHT;No;0;EN;<compat> 0028 0038 0029;;8;8;N;;;;;
+247C;PARENTHESIZED DIGIT NINE;No;0;EN;<compat> 0028 0039 0029;;9;9;N;;;;;
+247D;PARENTHESIZED NUMBER TEN;No;0;EN;<compat> 0028 0031 0030 0029;;;10;N;;;;;
+247E;PARENTHESIZED NUMBER ELEVEN;No;0;EN;<compat> 0028 0031 0031 0029;;;11;N;;;;;
+247F;PARENTHESIZED NUMBER TWELVE;No;0;EN;<compat> 0028 0031 0032 0029;;;12;N;;;;;
+2480;PARENTHESIZED NUMBER THIRTEEN;No;0;EN;<compat> 0028 0031 0033 0029;;;13;N;;;;;
+2481;PARENTHESIZED NUMBER FOURTEEN;No;0;EN;<compat> 0028 0031 0034 0029;;;14;N;;;;;
+2482;PARENTHESIZED NUMBER FIFTEEN;No;0;EN;<compat> 0028 0031 0035 0029;;;15;N;;;;;
+2483;PARENTHESIZED NUMBER SIXTEEN;No;0;EN;<compat> 0028 0031 0036 0029;;;16;N;;;;;
+2484;PARENTHESIZED NUMBER SEVENTEEN;No;0;EN;<compat> 0028 0031 0037 0029;;;17;N;;;;;
+2485;PARENTHESIZED NUMBER EIGHTEEN;No;0;EN;<compat> 0028 0031 0038 0029;;;18;N;;;;;
+2486;PARENTHESIZED NUMBER NINETEEN;No;0;EN;<compat> 0028 0031 0039 0029;;;19;N;;;;;
+2487;PARENTHESIZED NUMBER TWENTY;No;0;EN;<compat> 0028 0032 0030 0029;;;20;N;;;;;
+2488;DIGIT ONE FULL STOP;No;0;EN;<compat> 0031 002E;;1;1;N;DIGIT ONE PERIOD;;;;
+2489;DIGIT TWO FULL STOP;No;0;EN;<compat> 0032 002E;;2;2;N;DIGIT TWO PERIOD;;;;
+248A;DIGIT THREE FULL STOP;No;0;EN;<compat> 0033 002E;;3;3;N;DIGIT THREE PERIOD;;;;
+248B;DIGIT FOUR FULL STOP;No;0;EN;<compat> 0034 002E;;4;4;N;DIGIT FOUR PERIOD;;;;
+248C;DIGIT FIVE FULL STOP;No;0;EN;<compat> 0035 002E;;5;5;N;DIGIT FIVE PERIOD;;;;
+248D;DIGIT SIX FULL STOP;No;0;EN;<compat> 0036 002E;;6;6;N;DIGIT SIX PERIOD;;;;
+248E;DIGIT SEVEN FULL STOP;No;0;EN;<compat> 0037 002E;;7;7;N;DIGIT SEVEN PERIOD;;;;
+248F;DIGIT EIGHT FULL STOP;No;0;EN;<compat> 0038 002E;;8;8;N;DIGIT EIGHT PERIOD;;;;
+2490;DIGIT NINE FULL STOP;No;0;EN;<compat> 0039 002E;;9;9;N;DIGIT NINE PERIOD;;;;
+2491;NUMBER TEN FULL STOP;No;0;EN;<compat> 0031 0030 002E;;;10;N;NUMBER TEN PERIOD;;;;
+2492;NUMBER ELEVEN FULL STOP;No;0;EN;<compat> 0031 0031 002E;;;11;N;NUMBER ELEVEN PERIOD;;;;
+2493;NUMBER TWELVE FULL STOP;No;0;EN;<compat> 0031 0032 002E;;;12;N;NUMBER TWELVE PERIOD;;;;
+2494;NUMBER THIRTEEN FULL STOP;No;0;EN;<compat> 0031 0033 002E;;;13;N;NUMBER THIRTEEN PERIOD;;;;
+2495;NUMBER FOURTEEN FULL STOP;No;0;EN;<compat> 0031 0034 002E;;;14;N;NUMBER FOURTEEN PERIOD;;;;
+2496;NUMBER FIFTEEN FULL STOP;No;0;EN;<compat> 0031 0035 002E;;;15;N;NUMBER FIFTEEN PERIOD;;;;
+2497;NUMBER SIXTEEN FULL STOP;No;0;EN;<compat> 0031 0036 002E;;;16;N;NUMBER SIXTEEN PERIOD;;;;
+2498;NUMBER SEVENTEEN FULL STOP;No;0;EN;<compat> 0031 0037 002E;;;17;N;NUMBER SEVENTEEN PERIOD;;;;
+2499;NUMBER EIGHTEEN FULL STOP;No;0;EN;<compat> 0031 0038 002E;;;18;N;NUMBER EIGHTEEN PERIOD;;;;
+249A;NUMBER NINETEEN FULL STOP;No;0;EN;<compat> 0031 0039 002E;;;19;N;NUMBER NINETEEN PERIOD;;;;
+249B;NUMBER TWENTY FULL STOP;No;0;EN;<compat> 0032 0030 002E;;;20;N;NUMBER TWENTY PERIOD;;;;
+249C;PARENTHESIZED LATIN SMALL LETTER A;So;0;L;<compat> 0028 0061 0029;;;;N;;;;;
+249D;PARENTHESIZED LATIN SMALL LETTER B;So;0;L;<compat> 0028 0062 0029;;;;N;;;;;
+249E;PARENTHESIZED LATIN SMALL LETTER C;So;0;L;<compat> 0028 0063 0029;;;;N;;;;;
+249F;PARENTHESIZED LATIN SMALL LETTER D;So;0;L;<compat> 0028 0064 0029;;;;N;;;;;
+24A0;PARENTHESIZED LATIN SMALL LETTER E;So;0;L;<compat> 0028 0065 0029;;;;N;;;;;
+24A1;PARENTHESIZED LATIN SMALL LETTER F;So;0;L;<compat> 0028 0066 0029;;;;N;;;;;
+24A2;PARENTHESIZED LATIN SMALL LETTER G;So;0;L;<compat> 0028 0067 0029;;;;N;;;;;
+24A3;PARENTHESIZED LATIN SMALL LETTER H;So;0;L;<compat> 0028 0068 0029;;;;N;;;;;
+24A4;PARENTHESIZED LATIN SMALL LETTER I;So;0;L;<compat> 0028 0069 0029;;;;N;;;;;
+24A5;PARENTHESIZED LATIN SMALL LETTER J;So;0;L;<compat> 0028 006A 0029;;;;N;;;;;
+24A6;PARENTHESIZED LATIN SMALL LETTER K;So;0;L;<compat> 0028 006B 0029;;;;N;;;;;
+24A7;PARENTHESIZED LATIN SMALL LETTER L;So;0;L;<compat> 0028 006C 0029;;;;N;;;;;
+24A8;PARENTHESIZED LATIN SMALL LETTER M;So;0;L;<compat> 0028 006D 0029;;;;N;;;;;
+24A9;PARENTHESIZED LATIN SMALL LETTER N;So;0;L;<compat> 0028 006E 0029;;;;N;;;;;
+24AA;PARENTHESIZED LATIN SMALL LETTER O;So;0;L;<compat> 0028 006F 0029;;;;N;;;;;
+24AB;PARENTHESIZED LATIN SMALL LETTER P;So;0;L;<compat> 0028 0070 0029;;;;N;;;;;
+24AC;PARENTHESIZED LATIN SMALL LETTER Q;So;0;L;<compat> 0028 0071 0029;;;;N;;;;;
+24AD;PARENTHESIZED LATIN SMALL LETTER R;So;0;L;<compat> 0028 0072 0029;;;;N;;;;;
+24AE;PARENTHESIZED LATIN SMALL LETTER S;So;0;L;<compat> 0028 0073 0029;;;;N;;;;;
+24AF;PARENTHESIZED LATIN SMALL LETTER T;So;0;L;<compat> 0028 0074 0029;;;;N;;;;;
+24B0;PARENTHESIZED LATIN SMALL LETTER U;So;0;L;<compat> 0028 0075 0029;;;;N;;;;;
+24B1;PARENTHESIZED LATIN SMALL LETTER V;So;0;L;<compat> 0028 0076 0029;;;;N;;;;;
+24B2;PARENTHESIZED LATIN SMALL LETTER W;So;0;L;<compat> 0028 0077 0029;;;;N;;;;;
+24B3;PARENTHESIZED LATIN SMALL LETTER X;So;0;L;<compat> 0028 0078 0029;;;;N;;;;;
+24B4;PARENTHESIZED LATIN SMALL LETTER Y;So;0;L;<compat> 0028 0079 0029;;;;N;;;;;
+24B5;PARENTHESIZED LATIN SMALL LETTER Z;So;0;L;<compat> 0028 007A 0029;;;;N;;;;;
+24B6;CIRCLED LATIN CAPITAL LETTER A;So;0;L;<circle> 0041;;;;N;;;;24D0;
+24B7;CIRCLED LATIN CAPITAL LETTER B;So;0;L;<circle> 0042;;;;N;;;;24D1;
+24B8;CIRCLED LATIN CAPITAL LETTER C;So;0;L;<circle> 0043;;;;N;;;;24D2;
+24B9;CIRCLED LATIN CAPITAL LETTER D;So;0;L;<circle> 0044;;;;N;;;;24D3;
+24BA;CIRCLED LATIN CAPITAL LETTER E;So;0;L;<circle> 0045;;;;N;;;;24D4;
+24BB;CIRCLED LATIN CAPITAL LETTER F;So;0;L;<circle> 0046;;;;N;;;;24D5;
+24BC;CIRCLED LATIN CAPITAL LETTER G;So;0;L;<circle> 0047;;;;N;;;;24D6;
+24BD;CIRCLED LATIN CAPITAL LETTER H;So;0;L;<circle> 0048;;;;N;;;;24D7;
+24BE;CIRCLED LATIN CAPITAL LETTER I;So;0;L;<circle> 0049;;;;N;;;;24D8;
+24BF;CIRCLED LATIN CAPITAL LETTER J;So;0;L;<circle> 004A;;;;N;;;;24D9;
+24C0;CIRCLED LATIN CAPITAL LETTER K;So;0;L;<circle> 004B;;;;N;;;;24DA;
+24C1;CIRCLED LATIN CAPITAL LETTER L;So;0;L;<circle> 004C;;;;N;;;;24DB;
+24C2;CIRCLED LATIN CAPITAL LETTER M;So;0;L;<circle> 004D;;;;N;;;;24DC;
+24C3;CIRCLED LATIN CAPITAL LETTER N;So;0;L;<circle> 004E;;;;N;;;;24DD;
+24C4;CIRCLED LATIN CAPITAL LETTER O;So;0;L;<circle> 004F;;;;N;;;;24DE;
+24C5;CIRCLED LATIN CAPITAL LETTER P;So;0;L;<circle> 0050;;;;N;;;;24DF;
+24C6;CIRCLED LATIN CAPITAL LETTER Q;So;0;L;<circle> 0051;;;;N;;;;24E0;
+24C7;CIRCLED LATIN CAPITAL LETTER R;So;0;L;<circle> 0052;;;;N;;;;24E1;
+24C8;CIRCLED LATIN CAPITAL LETTER S;So;0;L;<circle> 0053;;;;N;;;;24E2;
+24C9;CIRCLED LATIN CAPITAL LETTER T;So;0;L;<circle> 0054;;;;N;;;;24E3;
+24CA;CIRCLED LATIN CAPITAL LETTER U;So;0;L;<circle> 0055;;;;N;;;;24E4;
+24CB;CIRCLED LATIN CAPITAL LETTER V;So;0;L;<circle> 0056;;;;N;;;;24E5;
+24CC;CIRCLED LATIN CAPITAL LETTER W;So;0;L;<circle> 0057;;;;N;;;;24E6;
+24CD;CIRCLED LATIN CAPITAL LETTER X;So;0;L;<circle> 0058;;;;N;;;;24E7;
+24CE;CIRCLED LATIN CAPITAL LETTER Y;So;0;L;<circle> 0059;;;;N;;;;24E8;
+24CF;CIRCLED LATIN CAPITAL LETTER Z;So;0;L;<circle> 005A;;;;N;;;;24E9;
+24D0;CIRCLED LATIN SMALL LETTER A;So;0;L;<circle> 0061;;;;N;;;24B6;;24B6
+24D1;CIRCLED LATIN SMALL LETTER B;So;0;L;<circle> 0062;;;;N;;;24B7;;24B7
+24D2;CIRCLED LATIN SMALL LETTER C;So;0;L;<circle> 0063;;;;N;;;24B8;;24B8
+24D3;CIRCLED LATIN SMALL LETTER D;So;0;L;<circle> 0064;;;;N;;;24B9;;24B9
+24D4;CIRCLED LATIN SMALL LETTER E;So;0;L;<circle> 0065;;;;N;;;24BA;;24BA
+24D5;CIRCLED LATIN SMALL LETTER F;So;0;L;<circle> 0066;;;;N;;;24BB;;24BB
+24D6;CIRCLED LATIN SMALL LETTER G;So;0;L;<circle> 0067;;;;N;;;24BC;;24BC
+24D7;CIRCLED LATIN SMALL LETTER H;So;0;L;<circle> 0068;;;;N;;;24BD;;24BD
+24D8;CIRCLED LATIN SMALL LETTER I;So;0;L;<circle> 0069;;;;N;;;24BE;;24BE
+24D9;CIRCLED LATIN SMALL LETTER J;So;0;L;<circle> 006A;;;;N;;;24BF;;24BF
+24DA;CIRCLED LATIN SMALL LETTER K;So;0;L;<circle> 006B;;;;N;;;24C0;;24C0
+24DB;CIRCLED LATIN SMALL LETTER L;So;0;L;<circle> 006C;;;;N;;;24C1;;24C1
+24DC;CIRCLED LATIN SMALL LETTER M;So;0;L;<circle> 006D;;;;N;;;24C2;;24C2
+24DD;CIRCLED LATIN SMALL LETTER N;So;0;L;<circle> 006E;;;;N;;;24C3;;24C3
+24DE;CIRCLED LATIN SMALL LETTER O;So;0;L;<circle> 006F;;;;N;;;24C4;;24C4
+24DF;CIRCLED LATIN SMALL LETTER P;So;0;L;<circle> 0070;;;;N;;;24C5;;24C5
+24E0;CIRCLED LATIN SMALL LETTER Q;So;0;L;<circle> 0071;;;;N;;;24C6;;24C6
+24E1;CIRCLED LATIN SMALL LETTER R;So;0;L;<circle> 0072;;;;N;;;24C7;;24C7
+24E2;CIRCLED LATIN SMALL LETTER S;So;0;L;<circle> 0073;;;;N;;;24C8;;24C8
+24E3;CIRCLED LATIN SMALL LETTER T;So;0;L;<circle> 0074;;;;N;;;24C9;;24C9
+24E4;CIRCLED LATIN SMALL LETTER U;So;0;L;<circle> 0075;;;;N;;;24CA;;24CA
+24E5;CIRCLED LATIN SMALL LETTER V;So;0;L;<circle> 0076;;;;N;;;24CB;;24CB
+24E6;CIRCLED LATIN SMALL LETTER W;So;0;L;<circle> 0077;;;;N;;;24CC;;24CC
+24E7;CIRCLED LATIN SMALL LETTER X;So;0;L;<circle> 0078;;;;N;;;24CD;;24CD
+24E8;CIRCLED LATIN SMALL LETTER Y;So;0;L;<circle> 0079;;;;N;;;24CE;;24CE
+24E9;CIRCLED LATIN SMALL LETTER Z;So;0;L;<circle> 007A;;;;N;;;24CF;;24CF
+24EA;CIRCLED DIGIT ZERO;No;0;EN;<circle> 0030;;0;0;N;;;;;
+2500;BOX DRAWINGS LIGHT HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT HORIZONTAL;;;;
+2501;BOX DRAWINGS HEAVY HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY HORIZONTAL;;;;
+2502;BOX DRAWINGS LIGHT VERTICAL;So;0;ON;;;;;N;FORMS LIGHT VERTICAL;;;;
+2503;BOX DRAWINGS HEAVY VERTICAL;So;0;ON;;;;;N;FORMS HEAVY VERTICAL;;;;
+2504;BOX DRAWINGS LIGHT TRIPLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT TRIPLE DASH HORIZONTAL;;;;
+2505;BOX DRAWINGS HEAVY TRIPLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY TRIPLE DASH HORIZONTAL;;;;
+2506;BOX DRAWINGS LIGHT TRIPLE DASH VERTICAL;So;0;ON;;;;;N;FORMS LIGHT TRIPLE DASH VERTICAL;;;;
+2507;BOX DRAWINGS HEAVY TRIPLE DASH VERTICAL;So;0;ON;;;;;N;FORMS HEAVY TRIPLE DASH VERTICAL;;;;
+2508;BOX DRAWINGS LIGHT QUADRUPLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT QUADRUPLE DASH HORIZONTAL;;;;
+2509;BOX DRAWINGS HEAVY QUADRUPLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY QUADRUPLE DASH HORIZONTAL;;;;
+250A;BOX DRAWINGS LIGHT QUADRUPLE DASH VERTICAL;So;0;ON;;;;;N;FORMS LIGHT QUADRUPLE DASH VERTICAL;;;;
+250B;BOX DRAWINGS HEAVY QUADRUPLE DASH VERTICAL;So;0;ON;;;;;N;FORMS HEAVY QUADRUPLE DASH VERTICAL;;;;
+250C;BOX DRAWINGS LIGHT DOWN AND RIGHT;So;0;ON;;;;;N;FORMS LIGHT DOWN AND RIGHT;;;;
+250D;BOX DRAWINGS DOWN LIGHT AND RIGHT HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND RIGHT HEAVY;;;;
+250E;BOX DRAWINGS DOWN HEAVY AND RIGHT LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND RIGHT LIGHT;;;;
+250F;BOX DRAWINGS HEAVY DOWN AND RIGHT;So;0;ON;;;;;N;FORMS HEAVY DOWN AND RIGHT;;;;
+2510;BOX DRAWINGS LIGHT DOWN AND LEFT;So;0;ON;;;;;N;FORMS LIGHT DOWN AND LEFT;;;;
+2511;BOX DRAWINGS DOWN LIGHT AND LEFT HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND LEFT HEAVY;;;;
+2512;BOX DRAWINGS DOWN HEAVY AND LEFT LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND LEFT LIGHT;;;;
+2513;BOX DRAWINGS HEAVY DOWN AND LEFT;So;0;ON;;;;;N;FORMS HEAVY DOWN AND LEFT;;;;
+2514;BOX DRAWINGS LIGHT UP AND RIGHT;So;0;ON;;;;;N;FORMS LIGHT UP AND RIGHT;;;;
+2515;BOX DRAWINGS UP LIGHT AND RIGHT HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND RIGHT HEAVY;;;;
+2516;BOX DRAWINGS UP HEAVY AND RIGHT LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND RIGHT LIGHT;;;;
+2517;BOX DRAWINGS HEAVY UP AND RIGHT;So;0;ON;;;;;N;FORMS HEAVY UP AND RIGHT;;;;
+2518;BOX DRAWINGS LIGHT UP AND LEFT;So;0;ON;;;;;N;FORMS LIGHT UP AND LEFT;;;;
+2519;BOX DRAWINGS UP LIGHT AND LEFT HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND LEFT HEAVY;;;;
+251A;BOX DRAWINGS UP HEAVY AND LEFT LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND LEFT LIGHT;;;;
+251B;BOX DRAWINGS HEAVY UP AND LEFT;So;0;ON;;;;;N;FORMS HEAVY UP AND LEFT;;;;
+251C;BOX DRAWINGS LIGHT VERTICAL AND RIGHT;So;0;ON;;;;;N;FORMS LIGHT VERTICAL AND RIGHT;;;;
+251D;BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY;So;0;ON;;;;;N;FORMS VERTICAL LIGHT AND RIGHT HEAVY;;;;
+251E;BOX DRAWINGS UP HEAVY AND RIGHT DOWN LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND RIGHT DOWN LIGHT;;;;
+251F;BOX DRAWINGS DOWN HEAVY AND RIGHT UP LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND RIGHT UP LIGHT;;;;
+2520;BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT;So;0;ON;;;;;N;FORMS VERTICAL HEAVY AND RIGHT LIGHT;;;;
+2521;BOX DRAWINGS DOWN LIGHT AND RIGHT UP HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND RIGHT UP HEAVY;;;;
+2522;BOX DRAWINGS UP LIGHT AND RIGHT DOWN HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND RIGHT DOWN HEAVY;;;;
+2523;BOX DRAWINGS HEAVY VERTICAL AND RIGHT;So;0;ON;;;;;N;FORMS HEAVY VERTICAL AND RIGHT;;;;
+2524;BOX DRAWINGS LIGHT VERTICAL AND LEFT;So;0;ON;;;;;N;FORMS LIGHT VERTICAL AND LEFT;;;;
+2525;BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY;So;0;ON;;;;;N;FORMS VERTICAL LIGHT AND LEFT HEAVY;;;;
+2526;BOX DRAWINGS UP HEAVY AND LEFT DOWN LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND LEFT DOWN LIGHT;;;;
+2527;BOX DRAWINGS DOWN HEAVY AND LEFT UP LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND LEFT UP LIGHT;;;;
+2528;BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT;So;0;ON;;;;;N;FORMS VERTICAL HEAVY AND LEFT LIGHT;;;;
+2529;BOX DRAWINGS DOWN LIGHT AND LEFT UP HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND LEFT UP HEAVY;;;;
+252A;BOX DRAWINGS UP LIGHT AND LEFT DOWN HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND LEFT DOWN HEAVY;;;;
+252B;BOX DRAWINGS HEAVY VERTICAL AND LEFT;So;0;ON;;;;;N;FORMS HEAVY VERTICAL AND LEFT;;;;
+252C;BOX DRAWINGS LIGHT DOWN AND HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT DOWN AND HORIZONTAL;;;;
+252D;BOX DRAWINGS LEFT HEAVY AND RIGHT DOWN LIGHT;So;0;ON;;;;;N;FORMS LEFT HEAVY AND RIGHT DOWN LIGHT;;;;
+252E;BOX DRAWINGS RIGHT HEAVY AND LEFT DOWN LIGHT;So;0;ON;;;;;N;FORMS RIGHT HEAVY AND LEFT DOWN LIGHT;;;;
+252F;BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND HORIZONTAL HEAVY;;;;
+2530;BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND HORIZONTAL LIGHT;;;;
+2531;BOX DRAWINGS RIGHT LIGHT AND LEFT DOWN HEAVY;So;0;ON;;;;;N;FORMS RIGHT LIGHT AND LEFT DOWN HEAVY;;;;
+2532;BOX DRAWINGS LEFT LIGHT AND RIGHT DOWN HEAVY;So;0;ON;;;;;N;FORMS LEFT LIGHT AND RIGHT DOWN HEAVY;;;;
+2533;BOX DRAWINGS HEAVY DOWN AND HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY DOWN AND HORIZONTAL;;;;
+2534;BOX DRAWINGS LIGHT UP AND HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT UP AND HORIZONTAL;;;;
+2535;BOX DRAWINGS LEFT HEAVY AND RIGHT UP LIGHT;So;0;ON;;;;;N;FORMS LEFT HEAVY AND RIGHT UP LIGHT;;;;
+2536;BOX DRAWINGS RIGHT HEAVY AND LEFT UP LIGHT;So;0;ON;;;;;N;FORMS RIGHT HEAVY AND LEFT UP LIGHT;;;;
+2537;BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND HORIZONTAL HEAVY;;;;
+2538;BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND HORIZONTAL LIGHT;;;;
+2539;BOX DRAWINGS RIGHT LIGHT AND LEFT UP HEAVY;So;0;ON;;;;;N;FORMS RIGHT LIGHT AND LEFT UP HEAVY;;;;
+253A;BOX DRAWINGS LEFT LIGHT AND RIGHT UP HEAVY;So;0;ON;;;;;N;FORMS LEFT LIGHT AND RIGHT UP HEAVY;;;;
+253B;BOX DRAWINGS HEAVY UP AND HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY UP AND HORIZONTAL;;;;
+253C;BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT VERTICAL AND HORIZONTAL;;;;
+253D;BOX DRAWINGS LEFT HEAVY AND RIGHT VERTICAL LIGHT;So;0;ON;;;;;N;FORMS LEFT HEAVY AND RIGHT VERTICAL LIGHT;;;;
+253E;BOX DRAWINGS RIGHT HEAVY AND LEFT VERTICAL LIGHT;So;0;ON;;;;;N;FORMS RIGHT HEAVY AND LEFT VERTICAL LIGHT;;;;
+253F;BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY;So;0;ON;;;;;N;FORMS VERTICAL LIGHT AND HORIZONTAL HEAVY;;;;
+2540;BOX DRAWINGS UP HEAVY AND DOWN HORIZONTAL LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND DOWN HORIZONTAL LIGHT;;;;
+2541;BOX DRAWINGS DOWN HEAVY AND UP HORIZONTAL LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND UP HORIZONTAL LIGHT;;;;
+2542;BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT;So;0;ON;;;;;N;FORMS VERTICAL HEAVY AND HORIZONTAL LIGHT;;;;
+2543;BOX DRAWINGS LEFT UP HEAVY AND RIGHT DOWN LIGHT;So;0;ON;;;;;N;FORMS LEFT UP HEAVY AND RIGHT DOWN LIGHT;;;;
+2544;BOX DRAWINGS RIGHT UP HEAVY AND LEFT DOWN LIGHT;So;0;ON;;;;;N;FORMS RIGHT UP HEAVY AND LEFT DOWN LIGHT;;;;
+2545;BOX DRAWINGS LEFT DOWN HEAVY AND RIGHT UP LIGHT;So;0;ON;;;;;N;FORMS LEFT DOWN HEAVY AND RIGHT UP LIGHT;;;;
+2546;BOX DRAWINGS RIGHT DOWN HEAVY AND LEFT UP LIGHT;So;0;ON;;;;;N;FORMS RIGHT DOWN HEAVY AND LEFT UP LIGHT;;;;
+2547;BOX DRAWINGS DOWN LIGHT AND UP HORIZONTAL HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND UP HORIZONTAL HEAVY;;;;
+2548;BOX DRAWINGS UP LIGHT AND DOWN HORIZONTAL HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND DOWN HORIZONTAL HEAVY;;;;
+2549;BOX DRAWINGS RIGHT LIGHT AND LEFT VERTICAL HEAVY;So;0;ON;;;;;N;FORMS RIGHT LIGHT AND LEFT VERTICAL HEAVY;;;;
+254A;BOX DRAWINGS LEFT LIGHT AND RIGHT VERTICAL HEAVY;So;0;ON;;;;;N;FORMS LEFT LIGHT AND RIGHT VERTICAL HEAVY;;;;
+254B;BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY VERTICAL AND HORIZONTAL;;;;
+254C;BOX DRAWINGS LIGHT DOUBLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT DOUBLE DASH HORIZONTAL;;;;
+254D;BOX DRAWINGS HEAVY DOUBLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY DOUBLE DASH HORIZONTAL;;;;
+254E;BOX DRAWINGS LIGHT DOUBLE DASH VERTICAL;So;0;ON;;;;;N;FORMS LIGHT DOUBLE DASH VERTICAL;;;;
+254F;BOX DRAWINGS HEAVY DOUBLE DASH VERTICAL;So;0;ON;;;;;N;FORMS HEAVY DOUBLE DASH VERTICAL;;;;
+2550;BOX DRAWINGS DOUBLE HORIZONTAL;So;0;ON;;;;;N;FORMS DOUBLE HORIZONTAL;;;;
+2551;BOX DRAWINGS DOUBLE VERTICAL;So;0;ON;;;;;N;FORMS DOUBLE VERTICAL;;;;
+2552;BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE;So;0;ON;;;;;N;FORMS DOWN SINGLE AND RIGHT DOUBLE;;;;
+2553;BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE;So;0;ON;;;;;N;FORMS DOWN DOUBLE AND RIGHT SINGLE;;;;
+2554;BOX DRAWINGS DOUBLE DOWN AND RIGHT;So;0;ON;;;;;N;FORMS DOUBLE DOWN AND RIGHT;;;;
+2555;BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE;So;0;ON;;;;;N;FORMS DOWN SINGLE AND LEFT DOUBLE;;;;
+2556;BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE;So;0;ON;;;;;N;FORMS DOWN DOUBLE AND LEFT SINGLE;;;;
+2557;BOX DRAWINGS DOUBLE DOWN AND LEFT;So;0;ON;;;;;N;FORMS DOUBLE DOWN AND LEFT;;;;
+2558;BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE;So;0;ON;;;;;N;FORMS UP SINGLE AND RIGHT DOUBLE;;;;
+2559;BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE;So;0;ON;;;;;N;FORMS UP DOUBLE AND RIGHT SINGLE;;;;
+255A;BOX DRAWINGS DOUBLE UP AND RIGHT;So;0;ON;;;;;N;FORMS DOUBLE UP AND RIGHT;;;;
+255B;BOX DRAWINGS UP SINGLE AND LEFT DOUBLE;So;0;ON;;;;;N;FORMS UP SINGLE AND LEFT DOUBLE;;;;
+255C;BOX DRAWINGS UP DOUBLE AND LEFT SINGLE;So;0;ON;;;;;N;FORMS UP DOUBLE AND LEFT SINGLE;;;;
+255D;BOX DRAWINGS DOUBLE UP AND LEFT;So;0;ON;;;;;N;FORMS DOUBLE UP AND LEFT;;;;
+255E;BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE;So;0;ON;;;;;N;FORMS VERTICAL SINGLE AND RIGHT DOUBLE;;;;
+255F;BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE;So;0;ON;;;;;N;FORMS VERTICAL DOUBLE AND RIGHT SINGLE;;;;
+2560;BOX DRAWINGS DOUBLE VERTICAL AND RIGHT;So;0;ON;;;;;N;FORMS DOUBLE VERTICAL AND RIGHT;;;;
+2561;BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE;So;0;ON;;;;;N;FORMS VERTICAL SINGLE AND LEFT DOUBLE;;;;
+2562;BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE;So;0;ON;;;;;N;FORMS VERTICAL DOUBLE AND LEFT SINGLE;;;;
+2563;BOX DRAWINGS DOUBLE VERTICAL AND LEFT;So;0;ON;;;;;N;FORMS DOUBLE VERTICAL AND LEFT;;;;
+2564;BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE;So;0;ON;;;;;N;FORMS DOWN SINGLE AND HORIZONTAL DOUBLE;;;;
+2565;BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE;So;0;ON;;;;;N;FORMS DOWN DOUBLE AND HORIZONTAL SINGLE;;;;
+2566;BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL;So;0;ON;;;;;N;FORMS DOUBLE DOWN AND HORIZONTAL;;;;
+2567;BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE;So;0;ON;;;;;N;FORMS UP SINGLE AND HORIZONTAL DOUBLE;;;;
+2568;BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE;So;0;ON;;;;;N;FORMS UP DOUBLE AND HORIZONTAL SINGLE;;;;
+2569;BOX DRAWINGS DOUBLE UP AND HORIZONTAL;So;0;ON;;;;;N;FORMS DOUBLE UP AND HORIZONTAL;;;;
+256A;BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE;So;0;ON;;;;;N;FORMS VERTICAL SINGLE AND HORIZONTAL DOUBLE;;;;
+256B;BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE;So;0;ON;;;;;N;FORMS VERTICAL DOUBLE AND HORIZONTAL SINGLE;;;;
+256C;BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL;So;0;ON;;;;;N;FORMS DOUBLE VERTICAL AND HORIZONTAL;;;;
+256D;BOX DRAWINGS LIGHT ARC DOWN AND RIGHT;So;0;ON;;;;;N;FORMS LIGHT ARC DOWN AND RIGHT;;;;
+256E;BOX DRAWINGS LIGHT ARC DOWN AND LEFT;So;0;ON;;;;;N;FORMS LIGHT ARC DOWN AND LEFT;;;;
+256F;BOX DRAWINGS LIGHT ARC UP AND LEFT;So;0;ON;;;;;N;FORMS LIGHT ARC UP AND LEFT;;;;
+2570;BOX DRAWINGS LIGHT ARC UP AND RIGHT;So;0;ON;;;;;N;FORMS LIGHT ARC UP AND RIGHT;;;;
+2571;BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT;So;0;ON;;;;;N;FORMS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT;;;;
+2572;BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT;So;0;ON;;;;;N;FORMS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT;;;;
+2573;BOX DRAWINGS LIGHT DIAGONAL CROSS;So;0;ON;;;;;N;FORMS LIGHT DIAGONAL CROSS;;;;
+2574;BOX DRAWINGS LIGHT LEFT;So;0;ON;;;;;N;FORMS LIGHT LEFT;;;;
+2575;BOX DRAWINGS LIGHT UP;So;0;ON;;;;;N;FORMS LIGHT UP;;;;
+2576;BOX DRAWINGS LIGHT RIGHT;So;0;ON;;;;;N;FORMS LIGHT RIGHT;;;;
+2577;BOX DRAWINGS LIGHT DOWN;So;0;ON;;;;;N;FORMS LIGHT DOWN;;;;
+2578;BOX DRAWINGS HEAVY LEFT;So;0;ON;;;;;N;FORMS HEAVY LEFT;;;;
+2579;BOX DRAWINGS HEAVY UP;So;0;ON;;;;;N;FORMS HEAVY UP;;;;
+257A;BOX DRAWINGS HEAVY RIGHT;So;0;ON;;;;;N;FORMS HEAVY RIGHT;;;;
+257B;BOX DRAWINGS HEAVY DOWN;So;0;ON;;;;;N;FORMS HEAVY DOWN;;;;
+257C;BOX DRAWINGS LIGHT LEFT AND HEAVY RIGHT;So;0;ON;;;;;N;FORMS LIGHT LEFT AND HEAVY RIGHT;;;;
+257D;BOX DRAWINGS LIGHT UP AND HEAVY DOWN;So;0;ON;;;;;N;FORMS LIGHT UP AND HEAVY DOWN;;;;
+257E;BOX DRAWINGS HEAVY LEFT AND LIGHT RIGHT;So;0;ON;;;;;N;FORMS HEAVY LEFT AND LIGHT RIGHT;;;;
+257F;BOX DRAWINGS HEAVY UP AND LIGHT DOWN;So;0;ON;;;;;N;FORMS HEAVY UP AND LIGHT DOWN;;;;
+2580;UPPER HALF BLOCK;So;0;ON;;;;;N;;;;;
+2581;LOWER ONE EIGHTH BLOCK;So;0;ON;;;;;N;;;;;
+2582;LOWER ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;;
+2583;LOWER THREE EIGHTHS BLOCK;So;0;ON;;;;;N;;;;;
+2584;LOWER HALF BLOCK;So;0;ON;;;;;N;;;;;
+2585;LOWER FIVE EIGHTHS BLOCK;So;0;ON;;;;;N;;;;;
+2586;LOWER THREE QUARTERS BLOCK;So;0;ON;;;;;N;LOWER THREE QUARTER BLOCK;;;;
+2587;LOWER SEVEN EIGHTHS BLOCK;So;0;ON;;;;;N;;;;;
+2588;FULL BLOCK;So;0;ON;;;;;N;;;;;
+2589;LEFT SEVEN EIGHTHS BLOCK;So;0;ON;;;;;N;;;;;
+258A;LEFT THREE QUARTERS BLOCK;So;0;ON;;;;;N;LEFT THREE QUARTER BLOCK;;;;
+258B;LEFT FIVE EIGHTHS BLOCK;So;0;ON;;;;;N;;;;;
+258C;LEFT HALF BLOCK;So;0;ON;;;;;N;;;;;
+258D;LEFT THREE EIGHTHS BLOCK;So;0;ON;;;;;N;;;;;
+258E;LEFT ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;;
+258F;LEFT ONE EIGHTH BLOCK;So;0;ON;;;;;N;;;;;
+2590;RIGHT HALF BLOCK;So;0;ON;;;;;N;;;;;
+2591;LIGHT SHADE;So;0;ON;;;;;N;;;;;
+2592;MEDIUM SHADE;So;0;ON;;;;;N;;;;;
+2593;DARK SHADE;So;0;ON;;;;;N;;;;;
+2594;UPPER ONE EIGHTH BLOCK;So;0;ON;;;;;N;;;;;
+2595;RIGHT ONE EIGHTH BLOCK;So;0;ON;;;;;N;;;;;
+25A0;BLACK SQUARE;So;0;ON;;;;;N;;;;;
+25A1;WHITE SQUARE;So;0;ON;;;;;N;;;;;
+25A2;WHITE SQUARE WITH ROUNDED CORNERS;So;0;ON;;;;;N;;;;;
+25A3;WHITE SQUARE CONTAINING BLACK SMALL SQUARE;So;0;ON;;;;;N;;;;;
+25A4;SQUARE WITH HORIZONTAL FILL;So;0;ON;;;;;N;;;;;
+25A5;SQUARE WITH VERTICAL FILL;So;0;ON;;;;;N;;;;;
+25A6;SQUARE WITH ORTHOGONAL CROSSHATCH FILL;So;0;ON;;;;;N;;;;;
+25A7;SQUARE WITH UPPER LEFT TO LOWER RIGHT FILL;So;0;ON;;;;;N;;;;;
+25A8;SQUARE WITH UPPER RIGHT TO LOWER LEFT FILL;So;0;ON;;;;;N;;;;;
+25A9;SQUARE WITH DIAGONAL CROSSHATCH FILL;So;0;ON;;;;;N;;;;;
+25AA;BLACK SMALL SQUARE;So;0;ON;;;;;N;;;;;
+25AB;WHITE SMALL SQUARE;So;0;ON;;;;;N;;;;;
+25AC;BLACK RECTANGLE;So;0;ON;;;;;N;;;;;
+25AD;WHITE RECTANGLE;So;0;ON;;;;;N;;;;;
+25AE;BLACK VERTICAL RECTANGLE;So;0;ON;;;;;N;;;;;
+25AF;WHITE VERTICAL RECTANGLE;So;0;ON;;;;;N;;;;;
+25B0;BLACK PARALLELOGRAM;So;0;ON;;;;;N;;;;;
+25B1;WHITE PARALLELOGRAM;So;0;ON;;;;;N;;;;;
+25B2;BLACK UP-POINTING TRIANGLE;So;0;ON;;;;;N;BLACK UP POINTING TRIANGLE;;;;
+25B3;WHITE UP-POINTING TRIANGLE;So;0;ON;;;;;N;WHITE UP POINTING TRIANGLE;;;;
+25B4;BLACK UP-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;BLACK UP POINTING SMALL TRIANGLE;;;;
+25B5;WHITE UP-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;WHITE UP POINTING SMALL TRIANGLE;;;;
+25B6;BLACK RIGHT-POINTING TRIANGLE;So;0;ON;;;;;N;BLACK RIGHT POINTING TRIANGLE;;;;
+25B7;WHITE RIGHT-POINTING TRIANGLE;Sm;0;ON;;;;;N;WHITE RIGHT POINTING TRIANGLE;;;;
+25B8;BLACK RIGHT-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;BLACK RIGHT POINTING SMALL TRIANGLE;;;;
+25B9;WHITE RIGHT-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;WHITE RIGHT POINTING SMALL TRIANGLE;;;;
+25BA;BLACK RIGHT-POINTING POINTER;So;0;ON;;;;;N;BLACK RIGHT POINTING POINTER;;;;
+25BB;WHITE RIGHT-POINTING POINTER;So;0;ON;;;;;N;WHITE RIGHT POINTING POINTER;;;;
+25BC;BLACK DOWN-POINTING TRIANGLE;So;0;ON;;;;;N;BLACK DOWN POINTING TRIANGLE;;;;
+25BD;WHITE DOWN-POINTING TRIANGLE;So;0;ON;;;;;N;WHITE DOWN POINTING TRIANGLE;;;;
+25BE;BLACK DOWN-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;BLACK DOWN POINTING SMALL TRIANGLE;;;;
+25BF;WHITE DOWN-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;WHITE DOWN POINTING SMALL TRIANGLE;;;;
+25C0;BLACK LEFT-POINTING TRIANGLE;So;0;ON;;;;;N;BLACK LEFT POINTING TRIANGLE;;;;
+25C1;WHITE LEFT-POINTING TRIANGLE;Sm;0;ON;;;;;N;WHITE LEFT POINTING TRIANGLE;;;;
+25C2;BLACK LEFT-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;BLACK LEFT POINTING SMALL TRIANGLE;;;;
+25C3;WHITE LEFT-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;WHITE LEFT POINTING SMALL TRIANGLE;;;;
+25C4;BLACK LEFT-POINTING POINTER;So;0;ON;;;;;N;BLACK LEFT POINTING POINTER;;;;
+25C5;WHITE LEFT-POINTING POINTER;So;0;ON;;;;;N;WHITE LEFT POINTING POINTER;;;;
+25C6;BLACK DIAMOND;So;0;ON;;;;;N;;;;;
+25C7;WHITE DIAMOND;So;0;ON;;;;;N;;;;;
+25C8;WHITE DIAMOND CONTAINING BLACK SMALL DIAMOND;So;0;ON;;;;;N;;;;;
+25C9;FISHEYE;So;0;ON;;;;;N;;;;;
+25CA;LOZENGE;So;0;ON;;;;;N;;;;;
+25CB;WHITE CIRCLE;So;0;ON;;;;;N;;;;;
+25CC;DOTTED CIRCLE;So;0;ON;;;;;N;;;;;
+25CD;CIRCLE WITH VERTICAL FILL;So;0;ON;;;;;N;;;;;
+25CE;BULLSEYE;So;0;ON;;;;;N;;;;;
+25CF;BLACK CIRCLE;So;0;ON;;;;;N;;;;;
+25D0;CIRCLE WITH LEFT HALF BLACK;So;0;ON;;;;;N;;;;;
+25D1;CIRCLE WITH RIGHT HALF BLACK;So;0;ON;;;;;N;;;;;
+25D2;CIRCLE WITH LOWER HALF BLACK;So;0;ON;;;;;N;;;;;
+25D3;CIRCLE WITH UPPER HALF BLACK;So;0;ON;;;;;N;;;;;
+25D4;CIRCLE WITH UPPER RIGHT QUADRANT BLACK;So;0;ON;;;;;N;;;;;
+25D5;CIRCLE WITH ALL BUT UPPER LEFT QUADRANT BLACK;So;0;ON;;;;;N;;;;;
+25D6;LEFT HALF BLACK CIRCLE;So;0;ON;;;;;N;;;;;
+25D7;RIGHT HALF BLACK CIRCLE;So;0;ON;;;;;N;;;;;
+25D8;INVERSE BULLET;So;0;ON;;;;;N;;;;;
+25D9;INVERSE WHITE CIRCLE;So;0;ON;;;;;N;;;;;
+25DA;UPPER HALF INVERSE WHITE CIRCLE;So;0;ON;;;;;N;;;;;
+25DB;LOWER HALF INVERSE WHITE CIRCLE;So;0;ON;;;;;N;;;;;
+25DC;UPPER LEFT QUADRANT CIRCULAR ARC;So;0;ON;;;;;N;;;;;
+25DD;UPPER RIGHT QUADRANT CIRCULAR ARC;So;0;ON;;;;;N;;;;;
+25DE;LOWER RIGHT QUADRANT CIRCULAR ARC;So;0;ON;;;;;N;;;;;
+25DF;LOWER LEFT QUADRANT CIRCULAR ARC;So;0;ON;;;;;N;;;;;
+25E0;UPPER HALF CIRCLE;So;0;ON;;;;;N;;;;;
+25E1;LOWER HALF CIRCLE;So;0;ON;;;;;N;;;;;
+25E2;BLACK LOWER RIGHT TRIANGLE;So;0;ON;;;;;N;;;;;
+25E3;BLACK LOWER LEFT TRIANGLE;So;0;ON;;;;;N;;;;;
+25E4;BLACK UPPER LEFT TRIANGLE;So;0;ON;;;;;N;;;;;
+25E5;BLACK UPPER RIGHT TRIANGLE;So;0;ON;;;;;N;;;;;
+25E6;WHITE BULLET;So;0;ON;;;;;N;;;;;
+25E7;SQUARE WITH LEFT HALF BLACK;So;0;ON;;;;;N;;;;;
+25E8;SQUARE WITH RIGHT HALF BLACK;So;0;ON;;;;;N;;;;;
+25E9;SQUARE WITH UPPER LEFT DIAGONAL HALF BLACK;So;0;ON;;;;;N;;;;;
+25EA;SQUARE WITH LOWER RIGHT DIAGONAL HALF BLACK;So;0;ON;;;;;N;;;;;
+25EB;WHITE SQUARE WITH VERTICAL BISECTING LINE;So;0;ON;;;;;N;;;;;
+25EC;WHITE UP-POINTING TRIANGLE WITH DOT;So;0;ON;;;;;N;WHITE UP POINTING TRIANGLE WITH DOT;;;;
+25ED;UP-POINTING TRIANGLE WITH LEFT HALF BLACK;So;0;ON;;;;;N;UP POINTING TRIANGLE WITH LEFT HALF BLACK;;;;
+25EE;UP-POINTING TRIANGLE WITH RIGHT HALF BLACK;So;0;ON;;;;;N;UP POINTING TRIANGLE WITH RIGHT HALF BLACK;;;;
+25EF;LARGE CIRCLE;So;0;ON;;;;;N;;;;;
+25F0;WHITE SQUARE WITH UPPER LEFT QUADRANT;So;0;ON;;;;;N;;;;;
+25F1;WHITE SQUARE WITH LOWER LEFT QUADRANT;So;0;ON;;;;;N;;;;;
+25F2;WHITE SQUARE WITH LOWER RIGHT QUADRANT;So;0;ON;;;;;N;;;;;
+25F3;WHITE SQUARE WITH UPPER RIGHT QUADRANT;So;0;ON;;;;;N;;;;;
+25F4;WHITE CIRCLE WITH UPPER LEFT QUADRANT;So;0;ON;;;;;N;;;;;
+25F5;WHITE CIRCLE WITH LOWER LEFT QUADRANT;So;0;ON;;;;;N;;;;;
+25F6;WHITE CIRCLE WITH LOWER RIGHT QUADRANT;So;0;ON;;;;;N;;;;;
+25F7;WHITE CIRCLE WITH UPPER RIGHT QUADRANT;So;0;ON;;;;;N;;;;;
+2600;BLACK SUN WITH RAYS;So;0;ON;;;;;N;;;;;
+2601;CLOUD;So;0;ON;;;;;N;;;;;
+2602;UMBRELLA;So;0;ON;;;;;N;;;;;
+2603;SNOWMAN;So;0;ON;;;;;N;;;;;
+2604;COMET;So;0;ON;;;;;N;;;;;
+2605;BLACK STAR;So;0;ON;;;;;N;;;;;
+2606;WHITE STAR;So;0;ON;;;;;N;;;;;
+2607;LIGHTNING;So;0;ON;;;;;N;;;;;
+2608;THUNDERSTORM;So;0;ON;;;;;N;;;;;
+2609;SUN;So;0;ON;;;;;N;;;;;
+260A;ASCENDING NODE;So;0;ON;;;;;N;;;;;
+260B;DESCENDING NODE;So;0;ON;;;;;N;;;;;
+260C;CONJUNCTION;So;0;ON;;;;;N;;;;;
+260D;OPPOSITION;So;0;ON;;;;;N;;;;;
+260E;BLACK TELEPHONE;So;0;ON;;;;;N;;;;;
+260F;WHITE TELEPHONE;So;0;ON;;;;;N;;;;;
+2610;BALLOT BOX;So;0;ON;;;;;N;;;;;
+2611;BALLOT BOX WITH CHECK;So;0;ON;;;;;N;;;;;
+2612;BALLOT BOX WITH X;So;0;ON;;;;;N;;;;;
+2613;SALTIRE;So;0;ON;;;;;N;;;;;
+2619;REVERSED ROTATED FLORAL HEART BULLET;So;0;ON;;;;;N;;;;;
+261A;BLACK LEFT POINTING INDEX;So;0;ON;;;;;N;;;;;
+261B;BLACK RIGHT POINTING INDEX;So;0;ON;;;;;N;;;;;
+261C;WHITE LEFT POINTING INDEX;So;0;ON;;;;;N;;;;;
+261D;WHITE UP POINTING INDEX;So;0;ON;;;;;N;;;;;
+261E;WHITE RIGHT POINTING INDEX;So;0;ON;;;;;N;;;;;
+261F;WHITE DOWN POINTING INDEX;So;0;ON;;;;;N;;;;;
+2620;SKULL AND CROSSBONES;So;0;ON;;;;;N;;;;;
+2621;CAUTION SIGN;So;0;ON;;;;;N;;;;;
+2622;RADIOACTIVE SIGN;So;0;ON;;;;;N;;;;;
+2623;BIOHAZARD SIGN;So;0;ON;;;;;N;;;;;
+2624;CADUCEUS;So;0;ON;;;;;N;;;;;
+2625;ANKH;So;0;ON;;;;;N;;;;;
+2626;ORTHODOX CROSS;So;0;ON;;;;;N;;;;;
+2627;CHI RHO;So;0;ON;;;;;N;;;;;
+2628;CROSS OF LORRAINE;So;0;ON;;;;;N;;;;;
+2629;CROSS OF JERUSALEM;So;0;ON;;;;;N;;;;;
+262A;STAR AND CRESCENT;So;0;ON;;;;;N;;;;;
+262B;FARSI SYMBOL;So;0;ON;;;;;N;SYMBOL OF IRAN;;;;
+262C;ADI SHAKTI;So;0;ON;;;;;N;;;;;
+262D;HAMMER AND SICKLE;So;0;ON;;;;;N;;;;;
+262E;PEACE SYMBOL;So;0;ON;;;;;N;;;;;
+262F;YIN YANG;So;0;ON;;;;;N;;;;;
+2630;TRIGRAM FOR HEAVEN;So;0;ON;;;;;N;;;;;
+2631;TRIGRAM FOR LAKE;So;0;ON;;;;;N;;;;;
+2632;TRIGRAM FOR FIRE;So;0;ON;;;;;N;;;;;
+2633;TRIGRAM FOR THUNDER;So;0;ON;;;;;N;;;;;
+2634;TRIGRAM FOR WIND;So;0;ON;;;;;N;;;;;
+2635;TRIGRAM FOR WATER;So;0;ON;;;;;N;;;;;
+2636;TRIGRAM FOR MOUNTAIN;So;0;ON;;;;;N;;;;;
+2637;TRIGRAM FOR EARTH;So;0;ON;;;;;N;;;;;
+2638;WHEEL OF DHARMA;So;0;ON;;;;;N;;;;;
+2639;WHITE FROWNING FACE;So;0;ON;;;;;N;;;;;
+263A;WHITE SMILING FACE;So;0;ON;;;;;N;;;;;
+263B;BLACK SMILING FACE;So;0;ON;;;;;N;;;;;
+263C;WHITE SUN WITH RAYS;So;0;ON;;;;;N;;;;;
+263D;FIRST QUARTER MOON;So;0;ON;;;;;N;;;;;
+263E;LAST QUARTER MOON;So;0;ON;;;;;N;;;;;
+263F;MERCURY;So;0;ON;;;;;N;;;;;
+2640;FEMALE SIGN;So;0;ON;;;;;N;;;;;
+2641;EARTH;So;0;ON;;;;;N;;;;;
+2642;MALE SIGN;So;0;ON;;;;;N;;;;;
+2643;JUPITER;So;0;ON;;;;;N;;;;;
+2644;SATURN;So;0;ON;;;;;N;;;;;
+2645;URANUS;So;0;ON;;;;;N;;;;;
+2646;NEPTUNE;So;0;ON;;;;;N;;;;;
+2647;PLUTO;So;0;ON;;;;;N;;;;;
+2648;ARIES;So;0;ON;;;;;N;;;;;
+2649;TAURUS;So;0;ON;;;;;N;;;;;
+264A;GEMINI;So;0;ON;;;;;N;;;;;
+264B;CANCER;So;0;ON;;;;;N;;;;;
+264C;LEO;So;0;ON;;;;;N;;;;;
+264D;VIRGO;So;0;ON;;;;;N;;;;;
+264E;LIBRA;So;0;ON;;;;;N;;;;;
+264F;SCORPIUS;So;0;ON;;;;;N;;;;;
+2650;SAGITTARIUS;So;0;ON;;;;;N;;;;;
+2651;CAPRICORN;So;0;ON;;;;;N;;;;;
+2652;AQUARIUS;So;0;ON;;;;;N;;;;;
+2653;PISCES;So;0;ON;;;;;N;;;;;
+2654;WHITE CHESS KING;So;0;ON;;;;;N;;;;;
+2655;WHITE CHESS QUEEN;So;0;ON;;;;;N;;;;;
+2656;WHITE CHESS ROOK;So;0;ON;;;;;N;;;;;
+2657;WHITE CHESS BISHOP;So;0;ON;;;;;N;;;;;
+2658;WHITE CHESS KNIGHT;So;0;ON;;;;;N;;;;;
+2659;WHITE CHESS PAWN;So;0;ON;;;;;N;;;;;
+265A;BLACK CHESS KING;So;0;ON;;;;;N;;;;;
+265B;BLACK CHESS QUEEN;So;0;ON;;;;;N;;;;;
+265C;BLACK CHESS ROOK;So;0;ON;;;;;N;;;;;
+265D;BLACK CHESS BISHOP;So;0;ON;;;;;N;;;;;
+265E;BLACK CHESS KNIGHT;So;0;ON;;;;;N;;;;;
+265F;BLACK CHESS PAWN;So;0;ON;;;;;N;;;;;
+2660;BLACK SPADE SUIT;So;0;ON;;;;;N;;;;;
+2661;WHITE HEART SUIT;So;0;ON;;;;;N;;;;;
+2662;WHITE DIAMOND SUIT;So;0;ON;;;;;N;;;;;
+2663;BLACK CLUB SUIT;So;0;ON;;;;;N;;;;;
+2664;WHITE SPADE SUIT;So;0;ON;;;;;N;;;;;
+2665;BLACK HEART SUIT;So;0;ON;;;;;N;;;;;
+2666;BLACK DIAMOND SUIT;So;0;ON;;;;;N;;;;;
+2667;WHITE CLUB SUIT;So;0;ON;;;;;N;;;;;
+2668;HOT SPRINGS;So;0;ON;;;;;N;;;;;
+2669;QUARTER NOTE;So;0;ON;;;;;N;;;;;
+266A;EIGHTH NOTE;So;0;ON;;;;;N;;;;;
+266B;BEAMED EIGHTH NOTES;So;0;ON;;;;;N;BARRED EIGHTH NOTES;;;;
+266C;BEAMED SIXTEENTH NOTES;So;0;ON;;;;;N;BARRED SIXTEENTH NOTES;;;;
+266D;MUSIC FLAT SIGN;So;0;ON;;;;;N;FLAT;;;;
+266E;MUSIC NATURAL SIGN;So;0;ON;;;;;N;NATURAL;;;;
+266F;MUSIC SHARP SIGN;Sm;0;ON;;;;;N;SHARP;;;;
+2670;WEST SYRIAC CROSS;So;0;ON;;;;;N;;;;;
+2671;EAST SYRIAC CROSS;So;0;ON;;;;;N;;;;;
+2701;UPPER BLADE SCISSORS;So;0;ON;;;;;N;;;;;
+2702;BLACK SCISSORS;So;0;ON;;;;;N;;;;;
+2703;LOWER BLADE SCISSORS;So;0;ON;;;;;N;;;;;
+2704;WHITE SCISSORS;So;0;ON;;;;;N;;;;;
+2706;TELEPHONE LOCATION SIGN;So;0;ON;;;;;N;;;;;
+2707;TAPE DRIVE;So;0;ON;;;;;N;;;;;
+2708;AIRPLANE;So;0;ON;;;;;N;;;;;
+2709;ENVELOPE;So;0;ON;;;;;N;;;;;
+270C;VICTORY HAND;So;0;ON;;;;;N;;;;;
+270D;WRITING HAND;So;0;ON;;;;;N;;;;;
+270E;LOWER RIGHT PENCIL;So;0;ON;;;;;N;;;;;
+270F;PENCIL;So;0;ON;;;;;N;;;;;
+2710;UPPER RIGHT PENCIL;So;0;ON;;;;;N;;;;;
+2711;WHITE NIB;So;0;ON;;;;;N;;;;;
+2712;BLACK NIB;So;0;ON;;;;;N;;;;;
+2713;CHECK MARK;So;0;ON;;;;;N;;;;;
+2714;HEAVY CHECK MARK;So;0;ON;;;;;N;;;;;
+2715;MULTIPLICATION X;So;0;ON;;;;;N;;;;;
+2716;HEAVY MULTIPLICATION X;So;0;ON;;;;;N;;;;;
+2717;BALLOT X;So;0;ON;;;;;N;;;;;
+2718;HEAVY BALLOT X;So;0;ON;;;;;N;;;;;
+2719;OUTLINED GREEK CROSS;So;0;ON;;;;;N;;;;;
+271A;HEAVY GREEK CROSS;So;0;ON;;;;;N;;;;;
+271B;OPEN CENTRE CROSS;So;0;ON;;;;;N;OPEN CENTER CROSS;;;;
+271C;HEAVY OPEN CENTRE CROSS;So;0;ON;;;;;N;HEAVY OPEN CENTER CROSS;;;;
+271D;LATIN CROSS;So;0;ON;;;;;N;;;;;
+271E;SHADOWED WHITE LATIN CROSS;So;0;ON;;;;;N;;;;;
+271F;OUTLINED LATIN CROSS;So;0;ON;;;;;N;;;;;
+2720;MALTESE CROSS;So;0;ON;;;;;N;;;;;
+2721;STAR OF DAVID;So;0;ON;;;;;N;;;;;
+2722;FOUR TEARDROP-SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+2723;FOUR BALLOON-SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+2724;HEAVY FOUR BALLOON-SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+2725;FOUR CLUB-SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+2726;BLACK FOUR POINTED STAR;So;0;ON;;;;;N;;;;;
+2727;WHITE FOUR POINTED STAR;So;0;ON;;;;;N;;;;;
+2729;STRESS OUTLINED WHITE STAR;So;0;ON;;;;;N;;;;;
+272A;CIRCLED WHITE STAR;So;0;ON;;;;;N;;;;;
+272B;OPEN CENTRE BLACK STAR;So;0;ON;;;;;N;OPEN CENTER BLACK STAR;;;;
+272C;BLACK CENTRE WHITE STAR;So;0;ON;;;;;N;BLACK CENTER WHITE STAR;;;;
+272D;OUTLINED BLACK STAR;So;0;ON;;;;;N;;;;;
+272E;HEAVY OUTLINED BLACK STAR;So;0;ON;;;;;N;;;;;
+272F;PINWHEEL STAR;So;0;ON;;;;;N;;;;;
+2730;SHADOWED WHITE STAR;So;0;ON;;;;;N;;;;;
+2731;HEAVY ASTERISK;So;0;ON;;;;;N;;;;;
+2732;OPEN CENTRE ASTERISK;So;0;ON;;;;;N;OPEN CENTER ASTERISK;;;;
+2733;EIGHT SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+2734;EIGHT POINTED BLACK STAR;So;0;ON;;;;;N;;;;;
+2735;EIGHT POINTED PINWHEEL STAR;So;0;ON;;;;;N;;;;;
+2736;SIX POINTED BLACK STAR;So;0;ON;;;;;N;;;;;
+2737;EIGHT POINTED RECTILINEAR BLACK STAR;So;0;ON;;;;;N;;;;;
+2738;HEAVY EIGHT POINTED RECTILINEAR BLACK STAR;So;0;ON;;;;;N;;;;;
+2739;TWELVE POINTED BLACK STAR;So;0;ON;;;;;N;;;;;
+273A;SIXTEEN POINTED ASTERISK;So;0;ON;;;;;N;;;;;
+273B;TEARDROP-SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+273C;OPEN CENTRE TEARDROP-SPOKED ASTERISK;So;0;ON;;;;;N;OPEN CENTER TEARDROP-SPOKED ASTERISK;;;;
+273D;HEAVY TEARDROP-SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+273E;SIX PETALLED BLACK AND WHITE FLORETTE;So;0;ON;;;;;N;;;;;
+273F;BLACK FLORETTE;So;0;ON;;;;;N;;;;;
+2740;WHITE FLORETTE;So;0;ON;;;;;N;;;;;
+2741;EIGHT PETALLED OUTLINED BLACK FLORETTE;So;0;ON;;;;;N;;;;;
+2742;CIRCLED OPEN CENTRE EIGHT POINTED STAR;So;0;ON;;;;;N;CIRCLED OPEN CENTER EIGHT POINTED STAR;;;;
+2743;HEAVY TEARDROP-SPOKED PINWHEEL ASTERISK;So;0;ON;;;;;N;;;;;
+2744;SNOWFLAKE;So;0;ON;;;;;N;;;;;
+2745;TIGHT TRIFOLIATE SNOWFLAKE;So;0;ON;;;;;N;;;;;
+2746;HEAVY CHEVRON SNOWFLAKE;So;0;ON;;;;;N;;;;;
+2747;SPARKLE;So;0;ON;;;;;N;;;;;
+2748;HEAVY SPARKLE;So;0;ON;;;;;N;;;;;
+2749;BALLOON-SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
+274A;EIGHT TEARDROP-SPOKED PROPELLER ASTERISK;So;0;ON;;;;;N;;;;;
+274B;HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK;So;0;ON;;;;;N;;;;;
+274D;SHADOWED WHITE CIRCLE;So;0;ON;;;;;N;;;;;
+274F;LOWER RIGHT DROP-SHADOWED WHITE SQUARE;So;0;ON;;;;;N;;;;;
+2750;UPPER RIGHT DROP-SHADOWED WHITE SQUARE;So;0;ON;;;;;N;;;;;
+2751;LOWER RIGHT SHADOWED WHITE SQUARE;So;0;ON;;;;;N;;;;;
+2752;UPPER RIGHT SHADOWED WHITE SQUARE;So;0;ON;;;;;N;;;;;
+2756;BLACK DIAMOND MINUS WHITE X;So;0;ON;;;;;N;;;;;
+2758;LIGHT VERTICAL BAR;So;0;ON;;;;;N;;;;;
+2759;MEDIUM VERTICAL BAR;So;0;ON;;;;;N;;;;;
+275A;HEAVY VERTICAL BAR;So;0;ON;;;;;N;;;;;
+275B;HEAVY SINGLE TURNED COMMA QUOTATION MARK ORNAMENT;So;0;ON;;;;;N;;;;;
+275C;HEAVY SINGLE COMMA QUOTATION MARK ORNAMENT;So;0;ON;;;;;N;;;;;
+275D;HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT;So;0;ON;;;;;N;;;;;
+275E;HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT;So;0;ON;;;;;N;;;;;
+2761;CURVED STEM PARAGRAPH SIGN ORNAMENT;So;0;ON;;;;;N;;;;;
+2762;HEAVY EXCLAMATION MARK ORNAMENT;So;0;ON;;;;;N;;;;;
+2763;HEAVY HEART EXCLAMATION MARK ORNAMENT;So;0;ON;;;;;N;;;;;
+2764;HEAVY BLACK HEART;So;0;ON;;;;;N;;;;;
+2765;ROTATED HEAVY BLACK HEART BULLET;So;0;ON;;;;;N;;;;;
+2766;FLORAL HEART;So;0;ON;;;;;N;;;;;
+2767;ROTATED FLORAL HEART BULLET;So;0;ON;;;;;N;;;;;
+2776;DINGBAT NEGATIVE CIRCLED DIGIT ONE;No;0;ON;;;1;1;N;INVERSE CIRCLED DIGIT ONE;;;;
+2777;DINGBAT NEGATIVE CIRCLED DIGIT TWO;No;0;ON;;;2;2;N;INVERSE CIRCLED DIGIT TWO;;;;
+2778;DINGBAT NEGATIVE CIRCLED DIGIT THREE;No;0;ON;;;3;3;N;INVERSE CIRCLED DIGIT THREE;;;;
+2779;DINGBAT NEGATIVE CIRCLED DIGIT FOUR;No;0;ON;;;4;4;N;INVERSE CIRCLED DIGIT FOUR;;;;
+277A;DINGBAT NEGATIVE CIRCLED DIGIT FIVE;No;0;ON;;;5;5;N;INVERSE CIRCLED DIGIT FIVE;;;;
+277B;DINGBAT NEGATIVE CIRCLED DIGIT SIX;No;0;ON;;;6;6;N;INVERSE CIRCLED DIGIT SIX;;;;
+277C;DINGBAT NEGATIVE CIRCLED DIGIT SEVEN;No;0;ON;;;7;7;N;INVERSE CIRCLED DIGIT SEVEN;;;;
+277D;DINGBAT NEGATIVE CIRCLED DIGIT EIGHT;No;0;ON;;;8;8;N;INVERSE CIRCLED DIGIT EIGHT;;;;
+277E;DINGBAT NEGATIVE CIRCLED DIGIT NINE;No;0;ON;;;9;9;N;INVERSE CIRCLED DIGIT NINE;;;;
+277F;DINGBAT NEGATIVE CIRCLED NUMBER TEN;No;0;ON;;;;10;N;INVERSE CIRCLED NUMBER TEN;;;;
+2780;DINGBAT CIRCLED SANS-SERIF DIGIT ONE;No;0;ON;;;1;1;N;CIRCLED SANS-SERIF DIGIT ONE;;;;
+2781;DINGBAT CIRCLED SANS-SERIF DIGIT TWO;No;0;ON;;;2;2;N;CIRCLED SANS-SERIF DIGIT TWO;;;;
+2782;DINGBAT CIRCLED SANS-SERIF DIGIT THREE;No;0;ON;;;3;3;N;CIRCLED SANS-SERIF DIGIT THREE;;;;
+2783;DINGBAT CIRCLED SANS-SERIF DIGIT FOUR;No;0;ON;;;4;4;N;CIRCLED SANS-SERIF DIGIT FOUR;;;;
+2784;DINGBAT CIRCLED SANS-SERIF DIGIT FIVE;No;0;ON;;;5;5;N;CIRCLED SANS-SERIF DIGIT FIVE;;;;
+2785;DINGBAT CIRCLED SANS-SERIF DIGIT SIX;No;0;ON;;;6;6;N;CIRCLED SANS-SERIF DIGIT SIX;;;;
+2786;DINGBAT CIRCLED SANS-SERIF DIGIT SEVEN;No;0;ON;;;7;7;N;CIRCLED SANS-SERIF DIGIT SEVEN;;;;
+2787;DINGBAT CIRCLED SANS-SERIF DIGIT EIGHT;No;0;ON;;;8;8;N;CIRCLED SANS-SERIF DIGIT EIGHT;;;;
+2788;DINGBAT CIRCLED SANS-SERIF DIGIT NINE;No;0;ON;;;9;9;N;CIRCLED SANS-SERIF DIGIT NINE;;;;
+2789;DINGBAT CIRCLED SANS-SERIF NUMBER TEN;No;0;ON;;;;10;N;CIRCLED SANS-SERIF NUMBER TEN;;;;
+278A;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ONE;No;0;ON;;;1;1;N;INVERSE CIRCLED SANS-SERIF DIGIT ONE;;;;
+278B;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT TWO;No;0;ON;;;2;2;N;INVERSE CIRCLED SANS-SERIF DIGIT TWO;;;;
+278C;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT THREE;No;0;ON;;;3;3;N;INVERSE CIRCLED SANS-SERIF DIGIT THREE;;;;
+278D;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FOUR;No;0;ON;;;4;4;N;INVERSE CIRCLED SANS-SERIF DIGIT FOUR;;;;
+278E;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FIVE;No;0;ON;;;5;5;N;INVERSE CIRCLED SANS-SERIF DIGIT FIVE;;;;
+278F;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SIX;No;0;ON;;;6;6;N;INVERSE CIRCLED SANS-SERIF DIGIT SIX;;;;
+2790;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SEVEN;No;0;ON;;;7;7;N;INVERSE CIRCLED SANS-SERIF DIGIT SEVEN;;;;
+2791;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT EIGHT;No;0;ON;;;8;8;N;INVERSE CIRCLED SANS-SERIF DIGIT EIGHT;;;;
+2792;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT NINE;No;0;ON;;;9;9;N;INVERSE CIRCLED SANS-SERIF DIGIT NINE;;;;
+2793;DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN;No;0;ON;;;;10;N;INVERSE CIRCLED SANS-SERIF NUMBER TEN;;;;
+2794;HEAVY WIDE-HEADED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY WIDE-HEADED RIGHT ARROW;;;;
+2798;HEAVY SOUTH EAST ARROW;So;0;ON;;;;;N;HEAVY LOWER RIGHT ARROW;;;;
+2799;HEAVY RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY RIGHT ARROW;;;;
+279A;HEAVY NORTH EAST ARROW;So;0;ON;;;;;N;HEAVY UPPER RIGHT ARROW;;;;
+279B;DRAFTING POINT RIGHTWARDS ARROW;So;0;ON;;;;;N;DRAFTING POINT RIGHT ARROW;;;;
+279C;HEAVY ROUND-TIPPED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY ROUND-TIPPED RIGHT ARROW;;;;
+279D;TRIANGLE-HEADED RIGHTWARDS ARROW;So;0;ON;;;;;N;TRIANGLE-HEADED RIGHT ARROW;;;;
+279E;HEAVY TRIANGLE-HEADED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY TRIANGLE-HEADED RIGHT ARROW;;;;
+279F;DASHED TRIANGLE-HEADED RIGHTWARDS ARROW;So;0;ON;;;;;N;DASHED TRIANGLE-HEADED RIGHT ARROW;;;;
+27A0;HEAVY DASHED TRIANGLE-HEADED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY DASHED TRIANGLE-HEADED RIGHT ARROW;;;;
+27A1;BLACK RIGHTWARDS ARROW;So;0;ON;;;;;N;BLACK RIGHT ARROW;;;;
+27A2;THREE-D TOP-LIGHTED RIGHTWARDS ARROWHEAD;So;0;ON;;;;;N;THREE-D TOP-LIGHTED RIGHT ARROWHEAD;;;;
+27A3;THREE-D BOTTOM-LIGHTED RIGHTWARDS ARROWHEAD;So;0;ON;;;;;N;THREE-D BOTTOM-LIGHTED RIGHT ARROWHEAD;;;;
+27A4;BLACK RIGHTWARDS ARROWHEAD;So;0;ON;;;;;N;BLACK RIGHT ARROWHEAD;;;;
+27A5;HEAVY BLACK CURVED DOWNWARDS AND RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY BLACK CURVED DOWN AND RIGHT ARROW;;;;
+27A6;HEAVY BLACK CURVED UPWARDS AND RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY BLACK CURVED UP AND RIGHT ARROW;;;;
+27A7;SQUAT BLACK RIGHTWARDS ARROW;So;0;ON;;;;;N;SQUAT BLACK RIGHT ARROW;;;;
+27A8;HEAVY CONCAVE-POINTED BLACK RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY CONCAVE-POINTED BLACK RIGHT ARROW;;;;
+27A9;RIGHT-SHADED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;RIGHT-SHADED WHITE RIGHT ARROW;;;;
+27AA;LEFT-SHADED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;LEFT-SHADED WHITE RIGHT ARROW;;;;
+27AB;BACK-TILTED SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;BACK-TILTED SHADOWED WHITE RIGHT ARROW;;;;
+27AC;FRONT-TILTED SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;FRONT-TILTED SHADOWED WHITE RIGHT ARROW;;;;
+27AD;HEAVY LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY LOWER RIGHT-SHADOWED WHITE RIGHT ARROW;;;;
+27AE;HEAVY UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY UPPER RIGHT-SHADOWED WHITE RIGHT ARROW;;;;
+27AF;NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHT ARROW;;;;
+27B1;NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHT ARROW;;;;
+27B2;CIRCLED HEAVY WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;CIRCLED HEAVY WHITE RIGHT ARROW;;;;
+27B3;WHITE-FEATHERED RIGHTWARDS ARROW;So;0;ON;;;;;N;WHITE-FEATHERED RIGHT ARROW;;;;
+27B4;BLACK-FEATHERED SOUTH EAST ARROW;So;0;ON;;;;;N;BLACK-FEATHERED LOWER RIGHT ARROW;;;;
+27B5;BLACK-FEATHERED RIGHTWARDS ARROW;So;0;ON;;;;;N;BLACK-FEATHERED RIGHT ARROW;;;;
+27B6;BLACK-FEATHERED NORTH EAST ARROW;So;0;ON;;;;;N;BLACK-FEATHERED UPPER RIGHT ARROW;;;;
+27B7;HEAVY BLACK-FEATHERED SOUTH EAST ARROW;So;0;ON;;;;;N;HEAVY BLACK-FEATHERED LOWER RIGHT ARROW;;;;
+27B8;HEAVY BLACK-FEATHERED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY BLACK-FEATHERED RIGHT ARROW;;;;
+27B9;HEAVY BLACK-FEATHERED NORTH EAST ARROW;So;0;ON;;;;;N;HEAVY BLACK-FEATHERED UPPER RIGHT ARROW;;;;
+27BA;TEARDROP-BARBED RIGHTWARDS ARROW;So;0;ON;;;;;N;TEARDROP-BARBED RIGHT ARROW;;;;
+27BB;HEAVY TEARDROP-SHANKED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY TEARDROP-SHANKED RIGHT ARROW;;;;
+27BC;WEDGE-TAILED RIGHTWARDS ARROW;So;0;ON;;;;;N;WEDGE-TAILED RIGHT ARROW;;;;
+27BD;HEAVY WEDGE-TAILED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY WEDGE-TAILED RIGHT ARROW;;;;
+27BE;OPEN-OUTLINED RIGHTWARDS ARROW;So;0;ON;;;;;N;OPEN-OUTLINED RIGHT ARROW;;;;
+2800;BRAILLE PATTERN BLANK;So;0;ON;;;;;N;;;;;
+2801;BRAILLE PATTERN DOTS-1;So;0;ON;;;;;N;;;;;
+2802;BRAILLE PATTERN DOTS-2;So;0;ON;;;;;N;;;;;
+2803;BRAILLE PATTERN DOTS-12;So;0;ON;;;;;N;;;;;
+2804;BRAILLE PATTERN DOTS-3;So;0;ON;;;;;N;;;;;
+2805;BRAILLE PATTERN DOTS-13;So;0;ON;;;;;N;;;;;
+2806;BRAILLE PATTERN DOTS-23;So;0;ON;;;;;N;;;;;
+2807;BRAILLE PATTERN DOTS-123;So;0;ON;;;;;N;;;;;
+2808;BRAILLE PATTERN DOTS-4;So;0;ON;;;;;N;;;;;
+2809;BRAILLE PATTERN DOTS-14;So;0;ON;;;;;N;;;;;
+280A;BRAILLE PATTERN DOTS-24;So;0;ON;;;;;N;;;;;
+280B;BRAILLE PATTERN DOTS-124;So;0;ON;;;;;N;;;;;
+280C;BRAILLE PATTERN DOTS-34;So;0;ON;;;;;N;;;;;
+280D;BRAILLE PATTERN DOTS-134;So;0;ON;;;;;N;;;;;
+280E;BRAILLE PATTERN DOTS-234;So;0;ON;;;;;N;;;;;
+280F;BRAILLE PATTERN DOTS-1234;So;0;ON;;;;;N;;;;;
+2810;BRAILLE PATTERN DOTS-5;So;0;ON;;;;;N;;;;;
+2811;BRAILLE PATTERN DOTS-15;So;0;ON;;;;;N;;;;;
+2812;BRAILLE PATTERN DOTS-25;So;0;ON;;;;;N;;;;;
+2813;BRAILLE PATTERN DOTS-125;So;0;ON;;;;;N;;;;;
+2814;BRAILLE PATTERN DOTS-35;So;0;ON;;;;;N;;;;;
+2815;BRAILLE PATTERN DOTS-135;So;0;ON;;;;;N;;;;;
+2816;BRAILLE PATTERN DOTS-235;So;0;ON;;;;;N;;;;;
+2817;BRAILLE PATTERN DOTS-1235;So;0;ON;;;;;N;;;;;
+2818;BRAILLE PATTERN DOTS-45;So;0;ON;;;;;N;;;;;
+2819;BRAILLE PATTERN DOTS-145;So;0;ON;;;;;N;;;;;
+281A;BRAILLE PATTERN DOTS-245;So;0;ON;;;;;N;;;;;
+281B;BRAILLE PATTERN DOTS-1245;So;0;ON;;;;;N;;;;;
+281C;BRAILLE PATTERN DOTS-345;So;0;ON;;;;;N;;;;;
+281D;BRAILLE PATTERN DOTS-1345;So;0;ON;;;;;N;;;;;
+281E;BRAILLE PATTERN DOTS-2345;So;0;ON;;;;;N;;;;;
+281F;BRAILLE PATTERN DOTS-12345;So;0;ON;;;;;N;;;;;
+2820;BRAILLE PATTERN DOTS-6;So;0;ON;;;;;N;;;;;
+2821;BRAILLE PATTERN DOTS-16;So;0;ON;;;;;N;;;;;
+2822;BRAILLE PATTERN DOTS-26;So;0;ON;;;;;N;;;;;
+2823;BRAILLE PATTERN DOTS-126;So;0;ON;;;;;N;;;;;
+2824;BRAILLE PATTERN DOTS-36;So;0;ON;;;;;N;;;;;
+2825;BRAILLE PATTERN DOTS-136;So;0;ON;;;;;N;;;;;
+2826;BRAILLE PATTERN DOTS-236;So;0;ON;;;;;N;;;;;
+2827;BRAILLE PATTERN DOTS-1236;So;0;ON;;;;;N;;;;;
+2828;BRAILLE PATTERN DOTS-46;So;0;ON;;;;;N;;;;;
+2829;BRAILLE PATTERN DOTS-146;So;0;ON;;;;;N;;;;;
+282A;BRAILLE PATTERN DOTS-246;So;0;ON;;;;;N;;;;;
+282B;BRAILLE PATTERN DOTS-1246;So;0;ON;;;;;N;;;;;
+282C;BRAILLE PATTERN DOTS-346;So;0;ON;;;;;N;;;;;
+282D;BRAILLE PATTERN DOTS-1346;So;0;ON;;;;;N;;;;;
+282E;BRAILLE PATTERN DOTS-2346;So;0;ON;;;;;N;;;;;
+282F;BRAILLE PATTERN DOTS-12346;So;0;ON;;;;;N;;;;;
+2830;BRAILLE PATTERN DOTS-56;So;0;ON;;;;;N;;;;;
+2831;BRAILLE PATTERN DOTS-156;So;0;ON;;;;;N;;;;;
+2832;BRAILLE PATTERN DOTS-256;So;0;ON;;;;;N;;;;;
+2833;BRAILLE PATTERN DOTS-1256;So;0;ON;;;;;N;;;;;
+2834;BRAILLE PATTERN DOTS-356;So;0;ON;;;;;N;;;;;
+2835;BRAILLE PATTERN DOTS-1356;So;0;ON;;;;;N;;;;;
+2836;BRAILLE PATTERN DOTS-2356;So;0;ON;;;;;N;;;;;
+2837;BRAILLE PATTERN DOTS-12356;So;0;ON;;;;;N;;;;;
+2838;BRAILLE PATTERN DOTS-456;So;0;ON;;;;;N;;;;;
+2839;BRAILLE PATTERN DOTS-1456;So;0;ON;;;;;N;;;;;
+283A;BRAILLE PATTERN DOTS-2456;So;0;ON;;;;;N;;;;;
+283B;BRAILLE PATTERN DOTS-12456;So;0;ON;;;;;N;;;;;
+283C;BRAILLE PATTERN DOTS-3456;So;0;ON;;;;;N;;;;;
+283D;BRAILLE PATTERN DOTS-13456;So;0;ON;;;;;N;;;;;
+283E;BRAILLE PATTERN DOTS-23456;So;0;ON;;;;;N;;;;;
+283F;BRAILLE PATTERN DOTS-123456;So;0;ON;;;;;N;;;;;
+2840;BRAILLE PATTERN DOTS-7;So;0;ON;;;;;N;;;;;
+2841;BRAILLE PATTERN DOTS-17;So;0;ON;;;;;N;;;;;
+2842;BRAILLE PATTERN DOTS-27;So;0;ON;;;;;N;;;;;
+2843;BRAILLE PATTERN DOTS-127;So;0;ON;;;;;N;;;;;
+2844;BRAILLE PATTERN DOTS-37;So;0;ON;;;;;N;;;;;
+2845;BRAILLE PATTERN DOTS-137;So;0;ON;;;;;N;;;;;
+2846;BRAILLE PATTERN DOTS-237;So;0;ON;;;;;N;;;;;
+2847;BRAILLE PATTERN DOTS-1237;So;0;ON;;;;;N;;;;;
+2848;BRAILLE PATTERN DOTS-47;So;0;ON;;;;;N;;;;;
+2849;BRAILLE PATTERN DOTS-147;So;0;ON;;;;;N;;;;;
+284A;BRAILLE PATTERN DOTS-247;So;0;ON;;;;;N;;;;;
+284B;BRAILLE PATTERN DOTS-1247;So;0;ON;;;;;N;;;;;
+284C;BRAILLE PATTERN DOTS-347;So;0;ON;;;;;N;;;;;
+284D;BRAILLE PATTERN DOTS-1347;So;0;ON;;;;;N;;;;;
+284E;BRAILLE PATTERN DOTS-2347;So;0;ON;;;;;N;;;;;
+284F;BRAILLE PATTERN DOTS-12347;So;0;ON;;;;;N;;;;;
+2850;BRAILLE PATTERN DOTS-57;So;0;ON;;;;;N;;;;;
+2851;BRAILLE PATTERN DOTS-157;So;0;ON;;;;;N;;;;;
+2852;BRAILLE PATTERN DOTS-257;So;0;ON;;;;;N;;;;;
+2853;BRAILLE PATTERN DOTS-1257;So;0;ON;;;;;N;;;;;
+2854;BRAILLE PATTERN DOTS-357;So;0;ON;;;;;N;;;;;
+2855;BRAILLE PATTERN DOTS-1357;So;0;ON;;;;;N;;;;;
+2856;BRAILLE PATTERN DOTS-2357;So;0;ON;;;;;N;;;;;
+2857;BRAILLE PATTERN DOTS-12357;So;0;ON;;;;;N;;;;;
+2858;BRAILLE PATTERN DOTS-457;So;0;ON;;;;;N;;;;;
+2859;BRAILLE PATTERN DOTS-1457;So;0;ON;;;;;N;;;;;
+285A;BRAILLE PATTERN DOTS-2457;So;0;ON;;;;;N;;;;;
+285B;BRAILLE PATTERN DOTS-12457;So;0;ON;;;;;N;;;;;
+285C;BRAILLE PATTERN DOTS-3457;So;0;ON;;;;;N;;;;;
+285D;BRAILLE PATTERN DOTS-13457;So;0;ON;;;;;N;;;;;
+285E;BRAILLE PATTERN DOTS-23457;So;0;ON;;;;;N;;;;;
+285F;BRAILLE PATTERN DOTS-123457;So;0;ON;;;;;N;;;;;
+2860;BRAILLE PATTERN DOTS-67;So;0;ON;;;;;N;;;;;
+2861;BRAILLE PATTERN DOTS-167;So;0;ON;;;;;N;;;;;
+2862;BRAILLE PATTERN DOTS-267;So;0;ON;;;;;N;;;;;
+2863;BRAILLE PATTERN DOTS-1267;So;0;ON;;;;;N;;;;;
+2864;BRAILLE PATTERN DOTS-367;So;0;ON;;;;;N;;;;;
+2865;BRAILLE PATTERN DOTS-1367;So;0;ON;;;;;N;;;;;
+2866;BRAILLE PATTERN DOTS-2367;So;0;ON;;;;;N;;;;;
+2867;BRAILLE PATTERN DOTS-12367;So;0;ON;;;;;N;;;;;
+2868;BRAILLE PATTERN DOTS-467;So;0;ON;;;;;N;;;;;
+2869;BRAILLE PATTERN DOTS-1467;So;0;ON;;;;;N;;;;;
+286A;BRAILLE PATTERN DOTS-2467;So;0;ON;;;;;N;;;;;
+286B;BRAILLE PATTERN DOTS-12467;So;0;ON;;;;;N;;;;;
+286C;BRAILLE PATTERN DOTS-3467;So;0;ON;;;;;N;;;;;
+286D;BRAILLE PATTERN DOTS-13467;So;0;ON;;;;;N;;;;;
+286E;BRAILLE PATTERN DOTS-23467;So;0;ON;;;;;N;;;;;
+286F;BRAILLE PATTERN DOTS-123467;So;0;ON;;;;;N;;;;;
+2870;BRAILLE PATTERN DOTS-567;So;0;ON;;;;;N;;;;;
+2871;BRAILLE PATTERN DOTS-1567;So;0;ON;;;;;N;;;;;
+2872;BRAILLE PATTERN DOTS-2567;So;0;ON;;;;;N;;;;;
+2873;BRAILLE PATTERN DOTS-12567;So;0;ON;;;;;N;;;;;
+2874;BRAILLE PATTERN DOTS-3567;So;0;ON;;;;;N;;;;;
+2875;BRAILLE PATTERN DOTS-13567;So;0;ON;;;;;N;;;;;
+2876;BRAILLE PATTERN DOTS-23567;So;0;ON;;;;;N;;;;;
+2877;BRAILLE PATTERN DOTS-123567;So;0;ON;;;;;N;;;;;
+2878;BRAILLE PATTERN DOTS-4567;So;0;ON;;;;;N;;;;;
+2879;BRAILLE PATTERN DOTS-14567;So;0;ON;;;;;N;;;;;
+287A;BRAILLE PATTERN DOTS-24567;So;0;ON;;;;;N;;;;;
+287B;BRAILLE PATTERN DOTS-124567;So;0;ON;;;;;N;;;;;
+287C;BRAILLE PATTERN DOTS-34567;So;0;ON;;;;;N;;;;;
+287D;BRAILLE PATTERN DOTS-134567;So;0;ON;;;;;N;;;;;
+287E;BRAILLE PATTERN DOTS-234567;So;0;ON;;;;;N;;;;;
+287F;BRAILLE PATTERN DOTS-1234567;So;0;ON;;;;;N;;;;;
+2880;BRAILLE PATTERN DOTS-8;So;0;ON;;;;;N;;;;;
+2881;BRAILLE PATTERN DOTS-18;So;0;ON;;;;;N;;;;;
+2882;BRAILLE PATTERN DOTS-28;So;0;ON;;;;;N;;;;;
+2883;BRAILLE PATTERN DOTS-128;So;0;ON;;;;;N;;;;;
+2884;BRAILLE PATTERN DOTS-38;So;0;ON;;;;;N;;;;;
+2885;BRAILLE PATTERN DOTS-138;So;0;ON;;;;;N;;;;;
+2886;BRAILLE PATTERN DOTS-238;So;0;ON;;;;;N;;;;;
+2887;BRAILLE PATTERN DOTS-1238;So;0;ON;;;;;N;;;;;
+2888;BRAILLE PATTERN DOTS-48;So;0;ON;;;;;N;;;;;
+2889;BRAILLE PATTERN DOTS-148;So;0;ON;;;;;N;;;;;
+288A;BRAILLE PATTERN DOTS-248;So;0;ON;;;;;N;;;;;
+288B;BRAILLE PATTERN DOTS-1248;So;0;ON;;;;;N;;;;;
+288C;BRAILLE PATTERN DOTS-348;So;0;ON;;;;;N;;;;;
+288D;BRAILLE PATTERN DOTS-1348;So;0;ON;;;;;N;;;;;
+288E;BRAILLE PATTERN DOTS-2348;So;0;ON;;;;;N;;;;;
+288F;BRAILLE PATTERN DOTS-12348;So;0;ON;;;;;N;;;;;
+2890;BRAILLE PATTERN DOTS-58;So;0;ON;;;;;N;;;;;
+2891;BRAILLE PATTERN DOTS-158;So;0;ON;;;;;N;;;;;
+2892;BRAILLE PATTERN DOTS-258;So;0;ON;;;;;N;;;;;
+2893;BRAILLE PATTERN DOTS-1258;So;0;ON;;;;;N;;;;;
+2894;BRAILLE PATTERN DOTS-358;So;0;ON;;;;;N;;;;;
+2895;BRAILLE PATTERN DOTS-1358;So;0;ON;;;;;N;;;;;
+2896;BRAILLE PATTERN DOTS-2358;So;0;ON;;;;;N;;;;;
+2897;BRAILLE PATTERN DOTS-12358;So;0;ON;;;;;N;;;;;
+2898;BRAILLE PATTERN DOTS-458;So;0;ON;;;;;N;;;;;
+2899;BRAILLE PATTERN DOTS-1458;So;0;ON;;;;;N;;;;;
+289A;BRAILLE PATTERN DOTS-2458;So;0;ON;;;;;N;;;;;
+289B;BRAILLE PATTERN DOTS-12458;So;0;ON;;;;;N;;;;;
+289C;BRAILLE PATTERN DOTS-3458;So;0;ON;;;;;N;;;;;
+289D;BRAILLE PATTERN DOTS-13458;So;0;ON;;;;;N;;;;;
+289E;BRAILLE PATTERN DOTS-23458;So;0;ON;;;;;N;;;;;
+289F;BRAILLE PATTERN DOTS-123458;So;0;ON;;;;;N;;;;;
+28A0;BRAILLE PATTERN DOTS-68;So;0;ON;;;;;N;;;;;
+28A1;BRAILLE PATTERN DOTS-168;So;0;ON;;;;;N;;;;;
+28A2;BRAILLE PATTERN DOTS-268;So;0;ON;;;;;N;;;;;
+28A3;BRAILLE PATTERN DOTS-1268;So;0;ON;;;;;N;;;;;
+28A4;BRAILLE PATTERN DOTS-368;So;0;ON;;;;;N;;;;;
+28A5;BRAILLE PATTERN DOTS-1368;So;0;ON;;;;;N;;;;;
+28A6;BRAILLE PATTERN DOTS-2368;So;0;ON;;;;;N;;;;;
+28A7;BRAILLE PATTERN DOTS-12368;So;0;ON;;;;;N;;;;;
+28A8;BRAILLE PATTERN DOTS-468;So;0;ON;;;;;N;;;;;
+28A9;BRAILLE PATTERN DOTS-1468;So;0;ON;;;;;N;;;;;
+28AA;BRAILLE PATTERN DOTS-2468;So;0;ON;;;;;N;;;;;
+28AB;BRAILLE PATTERN DOTS-12468;So;0;ON;;;;;N;;;;;
+28AC;BRAILLE PATTERN DOTS-3468;So;0;ON;;;;;N;;;;;
+28AD;BRAILLE PATTERN DOTS-13468;So;0;ON;;;;;N;;;;;
+28AE;BRAILLE PATTERN DOTS-23468;So;0;ON;;;;;N;;;;;
+28AF;BRAILLE PATTERN DOTS-123468;So;0;ON;;;;;N;;;;;
+28B0;BRAILLE PATTERN DOTS-568;So;0;ON;;;;;N;;;;;
+28B1;BRAILLE PATTERN DOTS-1568;So;0;ON;;;;;N;;;;;
+28B2;BRAILLE PATTERN DOTS-2568;So;0;ON;;;;;N;;;;;
+28B3;BRAILLE PATTERN DOTS-12568;So;0;ON;;;;;N;;;;;
+28B4;BRAILLE PATTERN DOTS-3568;So;0;ON;;;;;N;;;;;
+28B5;BRAILLE PATTERN DOTS-13568;So;0;ON;;;;;N;;;;;
+28B6;BRAILLE PATTERN DOTS-23568;So;0;ON;;;;;N;;;;;
+28B7;BRAILLE PATTERN DOTS-123568;So;0;ON;;;;;N;;;;;
+28B8;BRAILLE PATTERN DOTS-4568;So;0;ON;;;;;N;;;;;
+28B9;BRAILLE PATTERN DOTS-14568;So;0;ON;;;;;N;;;;;
+28BA;BRAILLE PATTERN DOTS-24568;So;0;ON;;;;;N;;;;;
+28BB;BRAILLE PATTERN DOTS-124568;So;0;ON;;;;;N;;;;;
+28BC;BRAILLE PATTERN DOTS-34568;So;0;ON;;;;;N;;;;;
+28BD;BRAILLE PATTERN DOTS-134568;So;0;ON;;;;;N;;;;;
+28BE;BRAILLE PATTERN DOTS-234568;So;0;ON;;;;;N;;;;;
+28BF;BRAILLE PATTERN DOTS-1234568;So;0;ON;;;;;N;;;;;
+28C0;BRAILLE PATTERN DOTS-78;So;0;ON;;;;;N;;;;;
+28C1;BRAILLE PATTERN DOTS-178;So;0;ON;;;;;N;;;;;
+28C2;BRAILLE PATTERN DOTS-278;So;0;ON;;;;;N;;;;;
+28C3;BRAILLE PATTERN DOTS-1278;So;0;ON;;;;;N;;;;;
+28C4;BRAILLE PATTERN DOTS-378;So;0;ON;;;;;N;;;;;
+28C5;BRAILLE PATTERN DOTS-1378;So;0;ON;;;;;N;;;;;
+28C6;BRAILLE PATTERN DOTS-2378;So;0;ON;;;;;N;;;;;
+28C7;BRAILLE PATTERN DOTS-12378;So;0;ON;;;;;N;;;;;
+28C8;BRAILLE PATTERN DOTS-478;So;0;ON;;;;;N;;;;;
+28C9;BRAILLE PATTERN DOTS-1478;So;0;ON;;;;;N;;;;;
+28CA;BRAILLE PATTERN DOTS-2478;So;0;ON;;;;;N;;;;;
+28CB;BRAILLE PATTERN DOTS-12478;So;0;ON;;;;;N;;;;;
+28CC;BRAILLE PATTERN DOTS-3478;So;0;ON;;;;;N;;;;;
+28CD;BRAILLE PATTERN DOTS-13478;So;0;ON;;;;;N;;;;;
+28CE;BRAILLE PATTERN DOTS-23478;So;0;ON;;;;;N;;;;;
+28CF;BRAILLE PATTERN DOTS-123478;So;0;ON;;;;;N;;;;;
+28D0;BRAILLE PATTERN DOTS-578;So;0;ON;;;;;N;;;;;
+28D1;BRAILLE PATTERN DOTS-1578;So;0;ON;;;;;N;;;;;
+28D2;BRAILLE PATTERN DOTS-2578;So;0;ON;;;;;N;;;;;
+28D3;BRAILLE PATTERN DOTS-12578;So;0;ON;;;;;N;;;;;
+28D4;BRAILLE PATTERN DOTS-3578;So;0;ON;;;;;N;;;;;
+28D5;BRAILLE PATTERN DOTS-13578;So;0;ON;;;;;N;;;;;
+28D6;BRAILLE PATTERN DOTS-23578;So;0;ON;;;;;N;;;;;
+28D7;BRAILLE PATTERN DOTS-123578;So;0;ON;;;;;N;;;;;
+28D8;BRAILLE PATTERN DOTS-4578;So;0;ON;;;;;N;;;;;
+28D9;BRAILLE PATTERN DOTS-14578;So;0;ON;;;;;N;;;;;
+28DA;BRAILLE PATTERN DOTS-24578;So;0;ON;;;;;N;;;;;
+28DB;BRAILLE PATTERN DOTS-124578;So;0;ON;;;;;N;;;;;
+28DC;BRAILLE PATTERN DOTS-34578;So;0;ON;;;;;N;;;;;
+28DD;BRAILLE PATTERN DOTS-134578;So;0;ON;;;;;N;;;;;
+28DE;BRAILLE PATTERN DOTS-234578;So;0;ON;;;;;N;;;;;
+28DF;BRAILLE PATTERN DOTS-1234578;So;0;ON;;;;;N;;;;;
+28E0;BRAILLE PATTERN DOTS-678;So;0;ON;;;;;N;;;;;
+28E1;BRAILLE PATTERN DOTS-1678;So;0;ON;;;;;N;;;;;
+28E2;BRAILLE PATTERN DOTS-2678;So;0;ON;;;;;N;;;;;
+28E3;BRAILLE PATTERN DOTS-12678;So;0;ON;;;;;N;;;;;
+28E4;BRAILLE PATTERN DOTS-3678;So;0;ON;;;;;N;;;;;
+28E5;BRAILLE PATTERN DOTS-13678;So;0;ON;;;;;N;;;;;
+28E6;BRAILLE PATTERN DOTS-23678;So;0;ON;;;;;N;;;;;
+28E7;BRAILLE PATTERN DOTS-123678;So;0;ON;;;;;N;;;;;
+28E8;BRAILLE PATTERN DOTS-4678;So;0;ON;;;;;N;;;;;
+28E9;BRAILLE PATTERN DOTS-14678;So;0;ON;;;;;N;;;;;
+28EA;BRAILLE PATTERN DOTS-24678;So;0;ON;;;;;N;;;;;
+28EB;BRAILLE PATTERN DOTS-124678;So;0;ON;;;;;N;;;;;
+28EC;BRAILLE PATTERN DOTS-34678;So;0;ON;;;;;N;;;;;
+28ED;BRAILLE PATTERN DOTS-134678;So;0;ON;;;;;N;;;;;
+28EE;BRAILLE PATTERN DOTS-234678;So;0;ON;;;;;N;;;;;
+28EF;BRAILLE PATTERN DOTS-1234678;So;0;ON;;;;;N;;;;;
+28F0;BRAILLE PATTERN DOTS-5678;So;0;ON;;;;;N;;;;;
+28F1;BRAILLE PATTERN DOTS-15678;So;0;ON;;;;;N;;;;;
+28F2;BRAILLE PATTERN DOTS-25678;So;0;ON;;;;;N;;;;;
+28F3;BRAILLE PATTERN DOTS-125678;So;0;ON;;;;;N;;;;;
+28F4;BRAILLE PATTERN DOTS-35678;So;0;ON;;;;;N;;;;;
+28F5;BRAILLE PATTERN DOTS-135678;So;0;ON;;;;;N;;;;;
+28F6;BRAILLE PATTERN DOTS-235678;So;0;ON;;;;;N;;;;;
+28F7;BRAILLE PATTERN DOTS-1235678;So;0;ON;;;;;N;;;;;
+28F8;BRAILLE PATTERN DOTS-45678;So;0;ON;;;;;N;;;;;
+28F9;BRAILLE PATTERN DOTS-145678;So;0;ON;;;;;N;;;;;
+28FA;BRAILLE PATTERN DOTS-245678;So;0;ON;;;;;N;;;;;
+28FB;BRAILLE PATTERN DOTS-1245678;So;0;ON;;;;;N;;;;;
+28FC;BRAILLE PATTERN DOTS-345678;So;0;ON;;;;;N;;;;;
+28FD;BRAILLE PATTERN DOTS-1345678;So;0;ON;;;;;N;;;;;
+28FE;BRAILLE PATTERN DOTS-2345678;So;0;ON;;;;;N;;;;;
+28FF;BRAILLE PATTERN DOTS-12345678;So;0;ON;;;;;N;;;;;
+2E80;CJK RADICAL REPEAT;So;0;ON;;;;;N;;;;;
+2E81;CJK RADICAL CLIFF;So;0;ON;;;;;N;;;;;
+2E82;CJK RADICAL SECOND ONE;So;0;ON;;;;;N;;;;;
+2E83;CJK RADICAL SECOND TWO;So;0;ON;;;;;N;;;;;
+2E84;CJK RADICAL SECOND THREE;So;0;ON;;;;;N;;;;;
+2E85;CJK RADICAL PERSON;So;0;ON;;;;;N;;;;;
+2E86;CJK RADICAL BOX;So;0;ON;;;;;N;;;;;
+2E87;CJK RADICAL TABLE;So;0;ON;;;;;N;;;;;
+2E88;CJK RADICAL KNIFE ONE;So;0;ON;;;;;N;;;;;
+2E89;CJK RADICAL KNIFE TWO;So;0;ON;;;;;N;;;;;
+2E8A;CJK RADICAL DIVINATION;So;0;ON;;;;;N;;;;;
+2E8B;CJK RADICAL SEAL;So;0;ON;;;;;N;;;;;
+2E8C;CJK RADICAL SMALL ONE;So;0;ON;;;;;N;;;;;
+2E8D;CJK RADICAL SMALL TWO;So;0;ON;;;;;N;;;;;
+2E8E;CJK RADICAL LAME ONE;So;0;ON;;;;;N;;;;;
+2E8F;CJK RADICAL LAME TWO;So;0;ON;;;;;N;;;;;
+2E90;CJK RADICAL LAME THREE;So;0;ON;;;;;N;;;;;
+2E91;CJK RADICAL LAME FOUR;So;0;ON;;;;;N;;;;;
+2E92;CJK RADICAL SNAKE;So;0;ON;;;;;N;;;;;
+2E93;CJK RADICAL THREAD;So;0;ON;;;;;N;;;;;
+2E94;CJK RADICAL SNOUT ONE;So;0;ON;;;;;N;;;;;
+2E95;CJK RADICAL SNOUT TWO;So;0;ON;;;;;N;;;;;
+2E96;CJK RADICAL HEART ONE;So;0;ON;;;;;N;;;;;
+2E97;CJK RADICAL HEART TWO;So;0;ON;;;;;N;;;;;
+2E98;CJK RADICAL HAND;So;0;ON;;;;;N;;;;;
+2E99;CJK RADICAL RAP;So;0;ON;;;;;N;;;;;
+2E9B;CJK RADICAL CHOKE;So;0;ON;;;;;N;;;;;
+2E9C;CJK RADICAL SUN;So;0;ON;;;;;N;;;;;
+2E9D;CJK RADICAL MOON;So;0;ON;;;;;N;;;;;
+2E9E;CJK RADICAL DEATH;So;0;ON;;;;;N;;;;;
+2E9F;CJK RADICAL MOTHER;So;0;ON;<compat> 6BCD;;;;N;;;;;
+2EA0;CJK RADICAL CIVILIAN;So;0;ON;;;;;N;;;;;
+2EA1;CJK RADICAL WATER ONE;So;0;ON;;;;;N;;;;;
+2EA2;CJK RADICAL WATER TWO;So;0;ON;;;;;N;;;;;
+2EA3;CJK RADICAL FIRE;So;0;ON;;;;;N;;;;;
+2EA4;CJK RADICAL PAW ONE;So;0;ON;;;;;N;;;;;
+2EA5;CJK RADICAL PAW TWO;So;0;ON;;;;;N;;;;;
+2EA6;CJK RADICAL SIMPLIFIED HALF TREE TRUNK;So;0;ON;;;;;N;;;;;
+2EA7;CJK RADICAL COW;So;0;ON;;;;;N;;;;;
+2EA8;CJK RADICAL DOG;So;0;ON;;;;;N;;;;;
+2EA9;CJK RADICAL JADE;So;0;ON;;;;;N;;;;;
+2EAA;CJK RADICAL BOLT OF CLOTH;So;0;ON;;;;;N;;;;;
+2EAB;CJK RADICAL EYE;So;0;ON;;;;;N;;;;;
+2EAC;CJK RADICAL SPIRIT ONE;So;0;ON;;;;;N;;;;;
+2EAD;CJK RADICAL SPIRIT TWO;So;0;ON;;;;;N;;;;;
+2EAE;CJK RADICAL BAMBOO;So;0;ON;;;;;N;;;;;
+2EAF;CJK RADICAL SILK;So;0;ON;;;;;N;;;;;
+2EB0;CJK RADICAL C-SIMPLIFIED SILK;So;0;ON;;;;;N;;;;;
+2EB1;CJK RADICAL NET ONE;So;0;ON;;;;;N;;;;;
+2EB2;CJK RADICAL NET TWO;So;0;ON;;;;;N;;;;;
+2EB3;CJK RADICAL NET THREE;So;0;ON;;;;;N;;;;;
+2EB4;CJK RADICAL NET FOUR;So;0;ON;;;;;N;;;;;
+2EB5;CJK RADICAL MESH;So;0;ON;;;;;N;;;;;
+2EB6;CJK RADICAL SHEEP;So;0;ON;;;;;N;;;;;
+2EB7;CJK RADICAL RAM;So;0;ON;;;;;N;;;;;
+2EB8;CJK RADICAL EWE;So;0;ON;;;;;N;;;;;
+2EB9;CJK RADICAL OLD;So;0;ON;;;;;N;;;;;
+2EBA;CJK RADICAL BRUSH ONE;So;0;ON;;;;;N;;;;;
+2EBB;CJK RADICAL BRUSH TWO;So;0;ON;;;;;N;;;;;
+2EBC;CJK RADICAL MEAT;So;0;ON;;;;;N;;;;;
+2EBD;CJK RADICAL MORTAR;So;0;ON;;;;;N;;;;;
+2EBE;CJK RADICAL GRASS ONE;So;0;ON;;;;;N;;;;;
+2EBF;CJK RADICAL GRASS TWO;So;0;ON;;;;;N;;;;;
+2EC0;CJK RADICAL GRASS THREE;So;0;ON;;;;;N;;;;;
+2EC1;CJK RADICAL TIGER;So;0;ON;;;;;N;;;;;
+2EC2;CJK RADICAL CLOTHES;So;0;ON;;;;;N;;;;;
+2EC3;CJK RADICAL WEST ONE;So;0;ON;;;;;N;;;;;
+2EC4;CJK RADICAL WEST TWO;So;0;ON;;;;;N;;;;;
+2EC5;CJK RADICAL C-SIMPLIFIED SEE;So;0;ON;;;;;N;;;;;
+2EC6;CJK RADICAL SIMPLIFIED HORN;So;0;ON;;;;;N;;;;;
+2EC7;CJK RADICAL HORN;So;0;ON;;;;;N;;;;;
+2EC8;CJK RADICAL C-SIMPLIFIED SPEECH;So;0;ON;;;;;N;;;;;
+2EC9;CJK RADICAL C-SIMPLIFIED SHELL;So;0;ON;;;;;N;;;;;
+2ECA;CJK RADICAL FOOT;So;0;ON;;;;;N;;;;;
+2ECB;CJK RADICAL C-SIMPLIFIED CART;So;0;ON;;;;;N;;;;;
+2ECC;CJK RADICAL SIMPLIFIED WALK;So;0;ON;;;;;N;;;;;
+2ECD;CJK RADICAL WALK ONE;So;0;ON;;;;;N;;;;;
+2ECE;CJK RADICAL WALK TWO;So;0;ON;;;;;N;;;;;
+2ECF;CJK RADICAL CITY;So;0;ON;;;;;N;;;;;
+2ED0;CJK RADICAL C-SIMPLIFIED GOLD;So;0;ON;;;;;N;;;;;
+2ED1;CJK RADICAL LONG ONE;So;0;ON;;;;;N;;;;;
+2ED2;CJK RADICAL LONG TWO;So;0;ON;;;;;N;;;;;
+2ED3;CJK RADICAL C-SIMPLIFIED LONG;So;0;ON;;;;;N;;;;;
+2ED4;CJK RADICAL C-SIMPLIFIED GATE;So;0;ON;;;;;N;;;;;
+2ED5;CJK RADICAL MOUND ONE;So;0;ON;;;;;N;;;;;
+2ED6;CJK RADICAL MOUND TWO;So;0;ON;;;;;N;;;;;
+2ED7;CJK RADICAL RAIN;So;0;ON;;;;;N;;;;;
+2ED8;CJK RADICAL BLUE;So;0;ON;;;;;N;;;;;
+2ED9;CJK RADICAL C-SIMPLIFIED TANNED LEATHER;So;0;ON;;;;;N;;;;;
+2EDA;CJK RADICAL C-SIMPLIFIED LEAF;So;0;ON;;;;;N;;;;;
+2EDB;CJK RADICAL C-SIMPLIFIED WIND;So;0;ON;;;;;N;;;;;
+2EDC;CJK RADICAL C-SIMPLIFIED FLY;So;0;ON;;;;;N;;;;;
+2EDD;CJK RADICAL EAT ONE;So;0;ON;;;;;N;;;;;
+2EDE;CJK RADICAL EAT TWO;So;0;ON;;;;;N;;;;;
+2EDF;CJK RADICAL EAT THREE;So;0;ON;;;;;N;;;;;
+2EE0;CJK RADICAL C-SIMPLIFIED EAT;So;0;ON;;;;;N;;;;;
+2EE1;CJK RADICAL HEAD;So;0;ON;;;;;N;;;;;
+2EE2;CJK RADICAL C-SIMPLIFIED HORSE;So;0;ON;;;;;N;;;;;
+2EE3;CJK RADICAL BONE;So;0;ON;;;;;N;;;;;
+2EE4;CJK RADICAL GHOST;So;0;ON;;;;;N;;;;;
+2EE5;CJK RADICAL C-SIMPLIFIED FISH;So;0;ON;;;;;N;;;;;
+2EE6;CJK RADICAL C-SIMPLIFIED BIRD;So;0;ON;;;;;N;;;;;
+2EE7;CJK RADICAL C-SIMPLIFIED SALT;So;0;ON;;;;;N;;;;;
+2EE8;CJK RADICAL SIMPLIFIED WHEAT;So;0;ON;;;;;N;;;;;
+2EE9;CJK RADICAL SIMPLIFIED YELLOW;So;0;ON;;;;;N;;;;;
+2EEA;CJK RADICAL C-SIMPLIFIED FROG;So;0;ON;;;;;N;;;;;
+2EEB;CJK RADICAL J-SIMPLIFIED EVEN;So;0;ON;;;;;N;;;;;
+2EEC;CJK RADICAL C-SIMPLIFIED EVEN;So;0;ON;;;;;N;;;;;
+2EED;CJK RADICAL J-SIMPLIFIED TOOTH;So;0;ON;;;;;N;;;;;
+2EEE;CJK RADICAL C-SIMPLIFIED TOOTH;So;0;ON;;;;;N;;;;;
+2EEF;CJK RADICAL J-SIMPLIFIED DRAGON;So;0;ON;;;;;N;;;;;
+2EF0;CJK RADICAL C-SIMPLIFIED DRAGON;So;0;ON;;;;;N;;;;;
+2EF1;CJK RADICAL TURTLE;So;0;ON;;;;;N;;;;;
+2EF2;CJK RADICAL J-SIMPLIFIED TURTLE;So;0;ON;;;;;N;;;;;
+2EF3;CJK RADICAL C-SIMPLIFIED TURTLE;So;0;ON;<compat> 9F9F;;;;N;;;;;
+2F00;KANGXI RADICAL ONE;So;0;ON;<compat> 4E00;;;;N;;;;;
+2F01;KANGXI RADICAL LINE;So;0;ON;<compat> 4E28;;;;N;;;;;
+2F02;KANGXI RADICAL DOT;So;0;ON;<compat> 4E36;;;;N;;;;;
+2F03;KANGXI RADICAL SLASH;So;0;ON;<compat> 4E3F;;;;N;;;;;
+2F04;KANGXI RADICAL SECOND;So;0;ON;<compat> 4E59;;;;N;;;;;
+2F05;KANGXI RADICAL HOOK;So;0;ON;<compat> 4E85;;;;N;;;;;
+2F06;KANGXI RADICAL TWO;So;0;ON;<compat> 4E8C;;;;N;;;;;
+2F07;KANGXI RADICAL LID;So;0;ON;<compat> 4EA0;;;;N;;;;;
+2F08;KANGXI RADICAL MAN;So;0;ON;<compat> 4EBA;;;;N;;;;;
+2F09;KANGXI RADICAL LEGS;So;0;ON;<compat> 513F;;;;N;;;;;
+2F0A;KANGXI RADICAL ENTER;So;0;ON;<compat> 5165;;;;N;;;;;
+2F0B;KANGXI RADICAL EIGHT;So;0;ON;<compat> 516B;;;;N;;;;;
+2F0C;KANGXI RADICAL DOWN BOX;So;0;ON;<compat> 5182;;;;N;;;;;
+2F0D;KANGXI RADICAL COVER;So;0;ON;<compat> 5196;;;;N;;;;;
+2F0E;KANGXI RADICAL ICE;So;0;ON;<compat> 51AB;;;;N;;;;;
+2F0F;KANGXI RADICAL TABLE;So;0;ON;<compat> 51E0;;;;N;;;;;
+2F10;KANGXI RADICAL OPEN BOX;So;0;ON;<compat> 51F5;;;;N;;;;;
+2F11;KANGXI RADICAL KNIFE;So;0;ON;<compat> 5200;;;;N;;;;;
+2F12;KANGXI RADICAL POWER;So;0;ON;<compat> 529B;;;;N;;;;;
+2F13;KANGXI RADICAL WRAP;So;0;ON;<compat> 52F9;;;;N;;;;;
+2F14;KANGXI RADICAL SPOON;So;0;ON;<compat> 5315;;;;N;;;;;
+2F15;KANGXI RADICAL RIGHT OPEN BOX;So;0;ON;<compat> 531A;;;;N;;;;;
+2F16;KANGXI RADICAL HIDING ENCLOSURE;So;0;ON;<compat> 5338;;;;N;;;;;
+2F17;KANGXI RADICAL TEN;So;0;ON;<compat> 5341;;;;N;;;;;
+2F18;KANGXI RADICAL DIVINATION;So;0;ON;<compat> 535C;;;;N;;;;;
+2F19;KANGXI RADICAL SEAL;So;0;ON;<compat> 5369;;;;N;;;;;
+2F1A;KANGXI RADICAL CLIFF;So;0;ON;<compat> 5382;;;;N;;;;;
+2F1B;KANGXI RADICAL PRIVATE;So;0;ON;<compat> 53B6;;;;N;;;;;
+2F1C;KANGXI RADICAL AGAIN;So;0;ON;<compat> 53C8;;;;N;;;;;
+2F1D;KANGXI RADICAL MOUTH;So;0;ON;<compat> 53E3;;;;N;;;;;
+2F1E;KANGXI RADICAL ENCLOSURE;So;0;ON;<compat> 56D7;;;;N;;;;;
+2F1F;KANGXI RADICAL EARTH;So;0;ON;<compat> 571F;;;;N;;;;;
+2F20;KANGXI RADICAL SCHOLAR;So;0;ON;<compat> 58EB;;;;N;;;;;
+2F21;KANGXI RADICAL GO;So;0;ON;<compat> 5902;;;;N;;;;;
+2F22;KANGXI RADICAL GO SLOWLY;So;0;ON;<compat> 590A;;;;N;;;;;
+2F23;KANGXI RADICAL EVENING;So;0;ON;<compat> 5915;;;;N;;;;;
+2F24;KANGXI RADICAL BIG;So;0;ON;<compat> 5927;;;;N;;;;;
+2F25;KANGXI RADICAL WOMAN;So;0;ON;<compat> 5973;;;;N;;;;;
+2F26;KANGXI RADICAL CHILD;So;0;ON;<compat> 5B50;;;;N;;;;;
+2F27;KANGXI RADICAL ROOF;So;0;ON;<compat> 5B80;;;;N;;;;;
+2F28;KANGXI RADICAL INCH;So;0;ON;<compat> 5BF8;;;;N;;;;;
+2F29;KANGXI RADICAL SMALL;So;0;ON;<compat> 5C0F;;;;N;;;;;
+2F2A;KANGXI RADICAL LAME;So;0;ON;<compat> 5C22;;;;N;;;;;
+2F2B;KANGXI RADICAL CORPSE;So;0;ON;<compat> 5C38;;;;N;;;;;
+2F2C;KANGXI RADICAL SPROUT;So;0;ON;<compat> 5C6E;;;;N;;;;;
+2F2D;KANGXI RADICAL MOUNTAIN;So;0;ON;<compat> 5C71;;;;N;;;;;
+2F2E;KANGXI RADICAL RIVER;So;0;ON;<compat> 5DDB;;;;N;;;;;
+2F2F;KANGXI RADICAL WORK;So;0;ON;<compat> 5DE5;;;;N;;;;;
+2F30;KANGXI RADICAL ONESELF;So;0;ON;<compat> 5DF1;;;;N;;;;;
+2F31;KANGXI RADICAL TURBAN;So;0;ON;<compat> 5DFE;;;;N;;;;;
+2F32;KANGXI RADICAL DRY;So;0;ON;<compat> 5E72;;;;N;;;;;
+2F33;KANGXI RADICAL SHORT THREAD;So;0;ON;<compat> 5E7A;;;;N;;;;;
+2F34;KANGXI RADICAL DOTTED CLIFF;So;0;ON;<compat> 5E7F;;;;N;;;;;
+2F35;KANGXI RADICAL LONG STRIDE;So;0;ON;<compat> 5EF4;;;;N;;;;;
+2F36;KANGXI RADICAL TWO HANDS;So;0;ON;<compat> 5EFE;;;;N;;;;;
+2F37;KANGXI RADICAL SHOOT;So;0;ON;<compat> 5F0B;;;;N;;;;;
+2F38;KANGXI RADICAL BOW;So;0;ON;<compat> 5F13;;;;N;;;;;
+2F39;KANGXI RADICAL SNOUT;So;0;ON;<compat> 5F50;;;;N;;;;;
+2F3A;KANGXI RADICAL BRISTLE;So;0;ON;<compat> 5F61;;;;N;;;;;
+2F3B;KANGXI RADICAL STEP;So;0;ON;<compat> 5F73;;;;N;;;;;
+2F3C;KANGXI RADICAL HEART;So;0;ON;<compat> 5FC3;;;;N;;;;;
+2F3D;KANGXI RADICAL HALBERD;So;0;ON;<compat> 6208;;;;N;;;;;
+2F3E;KANGXI RADICAL DOOR;So;0;ON;<compat> 6236;;;;N;;;;;
+2F3F;KANGXI RADICAL HAND;So;0;ON;<compat> 624B;;;;N;;;;;
+2F40;KANGXI RADICAL BRANCH;So;0;ON;<compat> 652F;;;;N;;;;;
+2F41;KANGXI RADICAL RAP;So;0;ON;<compat> 6534;;;;N;;;;;
+2F42;KANGXI RADICAL SCRIPT;So;0;ON;<compat> 6587;;;;N;;;;;
+2F43;KANGXI RADICAL DIPPER;So;0;ON;<compat> 6597;;;;N;;;;;
+2F44;KANGXI RADICAL AXE;So;0;ON;<compat> 65A4;;;;N;;;;;
+2F45;KANGXI RADICAL SQUARE;So;0;ON;<compat> 65B9;;;;N;;;;;
+2F46;KANGXI RADICAL NOT;So;0;ON;<compat> 65E0;;;;N;;;;;
+2F47;KANGXI RADICAL SUN;So;0;ON;<compat> 65E5;;;;N;;;;;
+2F48;KANGXI RADICAL SAY;So;0;ON;<compat> 66F0;;;;N;;;;;
+2F49;KANGXI RADICAL MOON;So;0;ON;<compat> 6708;;;;N;;;;;
+2F4A;KANGXI RADICAL TREE;So;0;ON;<compat> 6728;;;;N;;;;;
+2F4B;KANGXI RADICAL LACK;So;0;ON;<compat> 6B20;;;;N;;;;;
+2F4C;KANGXI RADICAL STOP;So;0;ON;<compat> 6B62;;;;N;;;;;
+2F4D;KANGXI RADICAL DEATH;So;0;ON;<compat> 6B79;;;;N;;;;;
+2F4E;KANGXI RADICAL WEAPON;So;0;ON;<compat> 6BB3;;;;N;;;;;
+2F4F;KANGXI RADICAL DO NOT;So;0;ON;<compat> 6BCB;;;;N;;;;;
+2F50;KANGXI RADICAL COMPARE;So;0;ON;<compat> 6BD4;;;;N;;;;;
+2F51;KANGXI RADICAL FUR;So;0;ON;<compat> 6BDB;;;;N;;;;;
+2F52;KANGXI RADICAL CLAN;So;0;ON;<compat> 6C0F;;;;N;;;;;
+2F53;KANGXI RADICAL STEAM;So;0;ON;<compat> 6C14;;;;N;;;;;
+2F54;KANGXI RADICAL WATER;So;0;ON;<compat> 6C34;;;;N;;;;;
+2F55;KANGXI RADICAL FIRE;So;0;ON;<compat> 706B;;;;N;;;;;
+2F56;KANGXI RADICAL CLAW;So;0;ON;<compat> 722A;;;;N;;;;;
+2F57;KANGXI RADICAL FATHER;So;0;ON;<compat> 7236;;;;N;;;;;
+2F58;KANGXI RADICAL DOUBLE X;So;0;ON;<compat> 723B;;;;N;;;;;
+2F59;KANGXI RADICAL HALF TREE TRUNK;So;0;ON;<compat> 723F;;;;N;;;;;
+2F5A;KANGXI RADICAL SLICE;So;0;ON;<compat> 7247;;;;N;;;;;
+2F5B;KANGXI RADICAL FANG;So;0;ON;<compat> 7259;;;;N;;;;;
+2F5C;KANGXI RADICAL COW;So;0;ON;<compat> 725B;;;;N;;;;;
+2F5D;KANGXI RADICAL DOG;So;0;ON;<compat> 72AC;;;;N;;;;;
+2F5E;KANGXI RADICAL PROFOUND;So;0;ON;<compat> 7384;;;;N;;;;;
+2F5F;KANGXI RADICAL JADE;So;0;ON;<compat> 7389;;;;N;;;;;
+2F60;KANGXI RADICAL MELON;So;0;ON;<compat> 74DC;;;;N;;;;;
+2F61;KANGXI RADICAL TILE;So;0;ON;<compat> 74E6;;;;N;;;;;
+2F62;KANGXI RADICAL SWEET;So;0;ON;<compat> 7518;;;;N;;;;;
+2F63;KANGXI RADICAL LIFE;So;0;ON;<compat> 751F;;;;N;;;;;
+2F64;KANGXI RADICAL USE;So;0;ON;<compat> 7528;;;;N;;;;;
+2F65;KANGXI RADICAL FIELD;So;0;ON;<compat> 7530;;;;N;;;;;
+2F66;KANGXI RADICAL BOLT OF CLOTH;So;0;ON;<compat> 758B;;;;N;;;;;
+2F67;KANGXI RADICAL SICKNESS;So;0;ON;<compat> 7592;;;;N;;;;;
+2F68;KANGXI RADICAL DOTTED TENT;So;0;ON;<compat> 7676;;;;N;;;;;
+2F69;KANGXI RADICAL WHITE;So;0;ON;<compat> 767D;;;;N;;;;;
+2F6A;KANGXI RADICAL SKIN;So;0;ON;<compat> 76AE;;;;N;;;;;
+2F6B;KANGXI RADICAL DISH;So;0;ON;<compat> 76BF;;;;N;;;;;
+2F6C;KANGXI RADICAL EYE;So;0;ON;<compat> 76EE;;;;N;;;;;
+2F6D;KANGXI RADICAL SPEAR;So;0;ON;<compat> 77DB;;;;N;;;;;
+2F6E;KANGXI RADICAL ARROW;So;0;ON;<compat> 77E2;;;;N;;;;;
+2F6F;KANGXI RADICAL STONE;So;0;ON;<compat> 77F3;;;;N;;;;;
+2F70;KANGXI RADICAL SPIRIT;So;0;ON;<compat> 793A;;;;N;;;;;
+2F71;KANGXI RADICAL TRACK;So;0;ON;<compat> 79B8;;;;N;;;;;
+2F72;KANGXI RADICAL GRAIN;So;0;ON;<compat> 79BE;;;;N;;;;;
+2F73;KANGXI RADICAL CAVE;So;0;ON;<compat> 7A74;;;;N;;;;;
+2F74;KANGXI RADICAL STAND;So;0;ON;<compat> 7ACB;;;;N;;;;;
+2F75;KANGXI RADICAL BAMBOO;So;0;ON;<compat> 7AF9;;;;N;;;;;
+2F76;KANGXI RADICAL RICE;So;0;ON;<compat> 7C73;;;;N;;;;;
+2F77;KANGXI RADICAL SILK;So;0;ON;<compat> 7CF8;;;;N;;;;;
+2F78;KANGXI RADICAL JAR;So;0;ON;<compat> 7F36;;;;N;;;;;
+2F79;KANGXI RADICAL NET;So;0;ON;<compat> 7F51;;;;N;;;;;
+2F7A;KANGXI RADICAL SHEEP;So;0;ON;<compat> 7F8A;;;;N;;;;;
+2F7B;KANGXI RADICAL FEATHER;So;0;ON;<compat> 7FBD;;;;N;;;;;
+2F7C;KANGXI RADICAL OLD;So;0;ON;<compat> 8001;;;;N;;;;;
+2F7D;KANGXI RADICAL AND;So;0;ON;<compat> 800C;;;;N;;;;;
+2F7E;KANGXI RADICAL PLOW;So;0;ON;<compat> 8012;;;;N;;;;;
+2F7F;KANGXI RADICAL EAR;So;0;ON;<compat> 8033;;;;N;;;;;
+2F80;KANGXI RADICAL BRUSH;So;0;ON;<compat> 807F;;;;N;;;;;
+2F81;KANGXI RADICAL MEAT;So;0;ON;<compat> 8089;;;;N;;;;;
+2F82;KANGXI RADICAL MINISTER;So;0;ON;<compat> 81E3;;;;N;;;;;
+2F83;KANGXI RADICAL SELF;So;0;ON;<compat> 81EA;;;;N;;;;;
+2F84;KANGXI RADICAL ARRIVE;So;0;ON;<compat> 81F3;;;;N;;;;;
+2F85;KANGXI RADICAL MORTAR;So;0;ON;<compat> 81FC;;;;N;;;;;
+2F86;KANGXI RADICAL TONGUE;So;0;ON;<compat> 820C;;;;N;;;;;
+2F87;KANGXI RADICAL OPPOSE;So;0;ON;<compat> 821B;;;;N;;;;;
+2F88;KANGXI RADICAL BOAT;So;0;ON;<compat> 821F;;;;N;;;;;
+2F89;KANGXI RADICAL STOPPING;So;0;ON;<compat> 826E;;;;N;;;;;
+2F8A;KANGXI RADICAL COLOR;So;0;ON;<compat> 8272;;;;N;;;;;
+2F8B;KANGXI RADICAL GRASS;So;0;ON;<compat> 8278;;;;N;;;;;
+2F8C;KANGXI RADICAL TIGER;So;0;ON;<compat> 864D;;;;N;;;;;
+2F8D;KANGXI RADICAL INSECT;So;0;ON;<compat> 866B;;;;N;;;;;
+2F8E;KANGXI RADICAL BLOOD;So;0;ON;<compat> 8840;;;;N;;;;;
+2F8F;KANGXI RADICAL WALK ENCLOSURE;So;0;ON;<compat> 884C;;;;N;;;;;
+2F90;KANGXI RADICAL CLOTHES;So;0;ON;<compat> 8863;;;;N;;;;;
+2F91;KANGXI RADICAL WEST;So;0;ON;<compat> 897E;;;;N;;;;;
+2F92;KANGXI RADICAL SEE;So;0;ON;<compat> 898B;;;;N;;;;;
+2F93;KANGXI RADICAL HORN;So;0;ON;<compat> 89D2;;;;N;;;;;
+2F94;KANGXI RADICAL SPEECH;So;0;ON;<compat> 8A00;;;;N;;;;;
+2F95;KANGXI RADICAL VALLEY;So;0;ON;<compat> 8C37;;;;N;;;;;
+2F96;KANGXI RADICAL BEAN;So;0;ON;<compat> 8C46;;;;N;;;;;
+2F97;KANGXI RADICAL PIG;So;0;ON;<compat> 8C55;;;;N;;;;;
+2F98;KANGXI RADICAL BADGER;So;0;ON;<compat> 8C78;;;;N;;;;;
+2F99;KANGXI RADICAL SHELL;So;0;ON;<compat> 8C9D;;;;N;;;;;
+2F9A;KANGXI RADICAL RED;So;0;ON;<compat> 8D64;;;;N;;;;;
+2F9B;KANGXI RADICAL RUN;So;0;ON;<compat> 8D70;;;;N;;;;;
+2F9C;KANGXI RADICAL FOOT;So;0;ON;<compat> 8DB3;;;;N;;;;;
+2F9D;KANGXI RADICAL BODY;So;0;ON;<compat> 8EAB;;;;N;;;;;
+2F9E;KANGXI RADICAL CART;So;0;ON;<compat> 8ECA;;;;N;;;;;
+2F9F;KANGXI RADICAL BITTER;So;0;ON;<compat> 8F9B;;;;N;;;;;
+2FA0;KANGXI RADICAL MORNING;So;0;ON;<compat> 8FB0;;;;N;;;;;
+2FA1;KANGXI RADICAL WALK;So;0;ON;<compat> 8FB5;;;;N;;;;;
+2FA2;KANGXI RADICAL CITY;So;0;ON;<compat> 9091;;;;N;;;;;
+2FA3;KANGXI RADICAL WINE;So;0;ON;<compat> 9149;;;;N;;;;;
+2FA4;KANGXI RADICAL DISTINGUISH;So;0;ON;<compat> 91C6;;;;N;;;;;
+2FA5;KANGXI RADICAL VILLAGE;So;0;ON;<compat> 91CC;;;;N;;;;;
+2FA6;KANGXI RADICAL GOLD;So;0;ON;<compat> 91D1;;;;N;;;;;
+2FA7;KANGXI RADICAL LONG;So;0;ON;<compat> 9577;;;;N;;;;;
+2FA8;KANGXI RADICAL GATE;So;0;ON;<compat> 9580;;;;N;;;;;
+2FA9;KANGXI RADICAL MOUND;So;0;ON;<compat> 961C;;;;N;;;;;
+2FAA;KANGXI RADICAL SLAVE;So;0;ON;<compat> 96B6;;;;N;;;;;
+2FAB;KANGXI RADICAL SHORT TAILED BIRD;So;0;ON;<compat> 96B9;;;;N;;;;;
+2FAC;KANGXI RADICAL RAIN;So;0;ON;<compat> 96E8;;;;N;;;;;
+2FAD;KANGXI RADICAL BLUE;So;0;ON;<compat> 9751;;;;N;;;;;
+2FAE;KANGXI RADICAL WRONG;So;0;ON;<compat> 975E;;;;N;;;;;
+2FAF;KANGXI RADICAL FACE;So;0;ON;<compat> 9762;;;;N;;;;;
+2FB0;KANGXI RADICAL LEATHER;So;0;ON;<compat> 9769;;;;N;;;;;
+2FB1;KANGXI RADICAL TANNED LEATHER;So;0;ON;<compat> 97CB;;;;N;;;;;
+2FB2;KANGXI RADICAL LEEK;So;0;ON;<compat> 97ED;;;;N;;;;;
+2FB3;KANGXI RADICAL SOUND;So;0;ON;<compat> 97F3;;;;N;;;;;
+2FB4;KANGXI RADICAL LEAF;So;0;ON;<compat> 9801;;;;N;;;;;
+2FB5;KANGXI RADICAL WIND;So;0;ON;<compat> 98A8;;;;N;;;;;
+2FB6;KANGXI RADICAL FLY;So;0;ON;<compat> 98DB;;;;N;;;;;
+2FB7;KANGXI RADICAL EAT;So;0;ON;<compat> 98DF;;;;N;;;;;
+2FB8;KANGXI RADICAL HEAD;So;0;ON;<compat> 9996;;;;N;;;;;
+2FB9;KANGXI RADICAL FRAGRANT;So;0;ON;<compat> 9999;;;;N;;;;;
+2FBA;KANGXI RADICAL HORSE;So;0;ON;<compat> 99AC;;;;N;;;;;
+2FBB;KANGXI RADICAL BONE;So;0;ON;<compat> 9AA8;;;;N;;;;;
+2FBC;KANGXI RADICAL TALL;So;0;ON;<compat> 9AD8;;;;N;;;;;
+2FBD;KANGXI RADICAL HAIR;So;0;ON;<compat> 9ADF;;;;N;;;;;
+2FBE;KANGXI RADICAL FIGHT;So;0;ON;<compat> 9B25;;;;N;;;;;
+2FBF;KANGXI RADICAL SACRIFICIAL WINE;So;0;ON;<compat> 9B2F;;;;N;;;;;
+2FC0;KANGXI RADICAL CAULDRON;So;0;ON;<compat> 9B32;;;;N;;;;;
+2FC1;KANGXI RADICAL GHOST;So;0;ON;<compat> 9B3C;;;;N;;;;;
+2FC2;KANGXI RADICAL FISH;So;0;ON;<compat> 9B5A;;;;N;;;;;
+2FC3;KANGXI RADICAL BIRD;So;0;ON;<compat> 9CE5;;;;N;;;;;
+2FC4;KANGXI RADICAL SALT;So;0;ON;<compat> 9E75;;;;N;;;;;
+2FC5;KANGXI RADICAL DEER;So;0;ON;<compat> 9E7F;;;;N;;;;;
+2FC6;KANGXI RADICAL WHEAT;So;0;ON;<compat> 9EA5;;;;N;;;;;
+2FC7;KANGXI RADICAL HEMP;So;0;ON;<compat> 9EBB;;;;N;;;;;
+2FC8;KANGXI RADICAL YELLOW;So;0;ON;<compat> 9EC3;;;;N;;;;;
+2FC9;KANGXI RADICAL MILLET;So;0;ON;<compat> 9ECD;;;;N;;;;;
+2FCA;KANGXI RADICAL BLACK;So;0;ON;<compat> 9ED1;;;;N;;;;;
+2FCB;KANGXI RADICAL EMBROIDERY;So;0;ON;<compat> 9EF9;;;;N;;;;;
+2FCC;KANGXI RADICAL FROG;So;0;ON;<compat> 9EFD;;;;N;;;;;
+2FCD;KANGXI RADICAL TRIPOD;So;0;ON;<compat> 9F0E;;;;N;;;;;
+2FCE;KANGXI RADICAL DRUM;So;0;ON;<compat> 9F13;;;;N;;;;;
+2FCF;KANGXI RADICAL RAT;So;0;ON;<compat> 9F20;;;;N;;;;;
+2FD0;KANGXI RADICAL NOSE;So;0;ON;<compat> 9F3B;;;;N;;;;;
+2FD1;KANGXI RADICAL EVEN;So;0;ON;<compat> 9F4A;;;;N;;;;;
+2FD2;KANGXI RADICAL TOOTH;So;0;ON;<compat> 9F52;;;;N;;;;;
+2FD3;KANGXI RADICAL DRAGON;So;0;ON;<compat> 9F8D;;;;N;;;;;
+2FD4;KANGXI RADICAL TURTLE;So;0;ON;<compat> 9F9C;;;;N;;;;;
+2FD5;KANGXI RADICAL FLUTE;So;0;ON;<compat> 9FA0;;;;N;;;;;
+2FF0;IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT;So;0;ON;;;;;N;;;;;
+2FF1;IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO BELOW;So;0;ON;;;;;N;;;;;
+2FF2;IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO MIDDLE AND RIGHT;So;0;ON;;;;;N;;;;;
+2FF3;IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO MIDDLE AND BELOW;So;0;ON;;;;;N;;;;;
+2FF4;IDEOGRAPHIC DESCRIPTION CHARACTER FULL SURROUND;So;0;ON;;;;;N;;;;;
+2FF5;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM ABOVE;So;0;ON;;;;;N;;;;;
+2FF6;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM BELOW;So;0;ON;;;;;N;;;;;
+2FF7;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LEFT;So;0;ON;;;;;N;;;;;
+2FF8;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER LEFT;So;0;ON;;;;;N;;;;;
+2FF9;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER RIGHT;So;0;ON;;;;;N;;;;;
+2FFA;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LOWER LEFT;So;0;ON;;;;;N;;;;;
+2FFB;IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID;So;0;ON;;;;;N;;;;;
+3000;IDEOGRAPHIC SPACE;Zs;0;WS;<wide> 0020;;;;N;;;;;
+3001;IDEOGRAPHIC COMMA;Po;0;ON;;;;;N;;;;;
+3002;IDEOGRAPHIC FULL STOP;Po;0;ON;;;;;N;IDEOGRAPHIC PERIOD;;;;
+3003;DITTO MARK;Po;0;ON;;;;;N;;;;;
+3004;JAPANESE INDUSTRIAL STANDARD SYMBOL;So;0;ON;;;;;N;;;;;
+3005;IDEOGRAPHIC ITERATION MARK;Lm;0;L;;;;;N;;;;;
+3006;IDEOGRAPHIC CLOSING MARK;Lo;0;L;;;;;N;;;;;
+3007;IDEOGRAPHIC NUMBER ZERO;Nl;0;L;;;;0;N;;;;;
+3008;LEFT ANGLE BRACKET;Ps;0;ON;;;;;Y;OPENING ANGLE BRACKET;;;;
+3009;RIGHT ANGLE BRACKET;Pe;0;ON;;;;;Y;CLOSING ANGLE BRACKET;;;;
+300A;LEFT DOUBLE ANGLE BRACKET;Ps;0;ON;;;;;Y;OPENING DOUBLE ANGLE BRACKET;;;;
+300B;RIGHT DOUBLE ANGLE BRACKET;Pe;0;ON;;;;;Y;CLOSING DOUBLE ANGLE BRACKET;;;;
+300C;LEFT CORNER BRACKET;Ps;0;ON;;;;;Y;OPENING CORNER BRACKET;;;;
+300D;RIGHT CORNER BRACKET;Pe;0;ON;;;;;Y;CLOSING CORNER BRACKET;;;;
+300E;LEFT WHITE CORNER BRACKET;Ps;0;ON;;;;;Y;OPENING WHITE CORNER BRACKET;;;;
+300F;RIGHT WHITE CORNER BRACKET;Pe;0;ON;;;;;Y;CLOSING WHITE CORNER BRACKET;;;;
+3010;LEFT BLACK LENTICULAR BRACKET;Ps;0;ON;;;;;Y;OPENING BLACK LENTICULAR BRACKET;;;;
+3011;RIGHT BLACK LENTICULAR BRACKET;Pe;0;ON;;;;;Y;CLOSING BLACK LENTICULAR BRACKET;;;;
+3012;POSTAL MARK;So;0;ON;;;;;N;;;;;
+3013;GETA MARK;So;0;ON;;;;;N;;;;;
+3014;LEFT TORTOISE SHELL BRACKET;Ps;0;ON;;;;;Y;OPENING TORTOISE SHELL BRACKET;;;;
+3015;RIGHT TORTOISE SHELL BRACKET;Pe;0;ON;;;;;Y;CLOSING TORTOISE SHELL BRACKET;;;;
+3016;LEFT WHITE LENTICULAR BRACKET;Ps;0;ON;;;;;Y;OPENING WHITE LENTICULAR BRACKET;;;;
+3017;RIGHT WHITE LENTICULAR BRACKET;Pe;0;ON;;;;;Y;CLOSING WHITE LENTICULAR BRACKET;;;;
+3018;LEFT WHITE TORTOISE SHELL BRACKET;Ps;0;ON;;;;;Y;OPENING WHITE TORTOISE SHELL BRACKET;;;;
+3019;RIGHT WHITE TORTOISE SHELL BRACKET;Pe;0;ON;;;;;Y;CLOSING WHITE TORTOISE SHELL BRACKET;;;;
+301A;LEFT WHITE SQUARE BRACKET;Ps;0;ON;;;;;Y;OPENING WHITE SQUARE BRACKET;;;;
+301B;RIGHT WHITE SQUARE BRACKET;Pe;0;ON;;;;;Y;CLOSING WHITE SQUARE BRACKET;;;;
+301C;WAVE DASH;Pd;0;ON;;;;;N;;;;;
+301D;REVERSED DOUBLE PRIME QUOTATION MARK;Ps;0;ON;;;;;N;;;;;
+301E;DOUBLE PRIME QUOTATION MARK;Pe;0;ON;;;;;N;;;;;
+301F;LOW DOUBLE PRIME QUOTATION MARK;Pe;0;ON;;;;;N;;;;;
+3020;POSTAL MARK FACE;So;0;ON;;;;;N;;;;;
+3021;HANGZHOU NUMERAL ONE;Nl;0;L;;;;1;N;;;;;
+3022;HANGZHOU NUMERAL TWO;Nl;0;L;;;;2;N;;;;;
+3023;HANGZHOU NUMERAL THREE;Nl;0;L;;;;3;N;;;;;
+3024;HANGZHOU NUMERAL FOUR;Nl;0;L;;;;4;N;;;;;
+3025;HANGZHOU NUMERAL FIVE;Nl;0;L;;;;5;N;;;;;
+3026;HANGZHOU NUMERAL SIX;Nl;0;L;;;;6;N;;;;;
+3027;HANGZHOU NUMERAL SEVEN;Nl;0;L;;;;7;N;;;;;
+3028;HANGZHOU NUMERAL EIGHT;Nl;0;L;;;;8;N;;;;;
+3029;HANGZHOU NUMERAL NINE;Nl;0;L;;;;9;N;;;;;
+302A;IDEOGRAPHIC LEVEL TONE MARK;Mn;218;NSM;;;;;N;;;;;
+302B;IDEOGRAPHIC RISING TONE MARK;Mn;228;NSM;;;;;N;;;;;
+302C;IDEOGRAPHIC DEPARTING TONE MARK;Mn;232;NSM;;;;;N;;;;;
+302D;IDEOGRAPHIC ENTERING TONE MARK;Mn;222;NSM;;;;;N;;;;;
+302E;HANGUL SINGLE DOT TONE MARK;Mn;224;NSM;;;;;N;;;;;
+302F;HANGUL DOUBLE DOT TONE MARK;Mn;224;NSM;;;;;N;;;;;
+3030;WAVY DASH;Pd;0;ON;;;;;N;;;;;
+3031;VERTICAL KANA REPEAT MARK;Lm;0;L;;;;;N;;;;;
+3032;VERTICAL KANA REPEAT WITH VOICED SOUND MARK;Lm;0;L;;;;;N;;;;;
+3033;VERTICAL KANA REPEAT MARK UPPER HALF;Lm;0;L;;;;;N;;;;;
+3034;VERTICAL KANA REPEAT WITH VOICED SOUND MARK UPPER HALF;Lm;0;L;;;;;N;;;;;
+3035;VERTICAL KANA REPEAT MARK LOWER HALF;Lm;0;L;;;;;N;;;;;
+3036;CIRCLED POSTAL MARK;So;0;ON;<compat> 3012;;;;N;;;;;
+3037;IDEOGRAPHIC TELEGRAPH LINE FEED SEPARATOR SYMBOL;So;0;ON;;;;;N;;;;;
+3038;HANGZHOU NUMERAL TEN;Nl;0;L;<compat> 5341;;;10;N;;;;;
+3039;HANGZHOU NUMERAL TWENTY;Nl;0;L;<compat> 5344;;;20;N;;;;;
+303A;HANGZHOU NUMERAL THIRTY;Nl;0;L;<compat> 5345;;;30;N;;;;;
+303E;IDEOGRAPHIC VARIATION INDICATOR;So;0;ON;;;;;N;;;;;
+303F;IDEOGRAPHIC HALF FILL SPACE;So;0;ON;;;;;N;;;;;
+3041;HIRAGANA LETTER SMALL A;Lo;0;L;;;;;N;;;;;
+3042;HIRAGANA LETTER A;Lo;0;L;;;;;N;;;;;
+3043;HIRAGANA LETTER SMALL I;Lo;0;L;;;;;N;;;;;
+3044;HIRAGANA LETTER I;Lo;0;L;;;;;N;;;;;
+3045;HIRAGANA LETTER SMALL U;Lo;0;L;;;;;N;;;;;
+3046;HIRAGANA LETTER U;Lo;0;L;;;;;N;;;;;
+3047;HIRAGANA LETTER SMALL E;Lo;0;L;;;;;N;;;;;
+3048;HIRAGANA LETTER E;Lo;0;L;;;;;N;;;;;
+3049;HIRAGANA LETTER SMALL O;Lo;0;L;;;;;N;;;;;
+304A;HIRAGANA LETTER O;Lo;0;L;;;;;N;;;;;
+304B;HIRAGANA LETTER KA;Lo;0;L;;;;;N;;;;;
+304C;HIRAGANA LETTER GA;Lo;0;L;304B 3099;;;;N;;;;;
+304D;HIRAGANA LETTER KI;Lo;0;L;;;;;N;;;;;
+304E;HIRAGANA LETTER GI;Lo;0;L;304D 3099;;;;N;;;;;
+304F;HIRAGANA LETTER KU;Lo;0;L;;;;;N;;;;;
+3050;HIRAGANA LETTER GU;Lo;0;L;304F 3099;;;;N;;;;;
+3051;HIRAGANA LETTER KE;Lo;0;L;;;;;N;;;;;
+3052;HIRAGANA LETTER GE;Lo;0;L;3051 3099;;;;N;;;;;
+3053;HIRAGANA LETTER KO;Lo;0;L;;;;;N;;;;;
+3054;HIRAGANA LETTER GO;Lo;0;L;3053 3099;;;;N;;;;;
+3055;HIRAGANA LETTER SA;Lo;0;L;;;;;N;;;;;
+3056;HIRAGANA LETTER ZA;Lo;0;L;3055 3099;;;;N;;;;;
+3057;HIRAGANA LETTER SI;Lo;0;L;;;;;N;;;;;
+3058;HIRAGANA LETTER ZI;Lo;0;L;3057 3099;;;;N;;;;;
+3059;HIRAGANA LETTER SU;Lo;0;L;;;;;N;;;;;
+305A;HIRAGANA LETTER ZU;Lo;0;L;3059 3099;;;;N;;;;;
+305B;HIRAGANA LETTER SE;Lo;0;L;;;;;N;;;;;
+305C;HIRAGANA LETTER ZE;Lo;0;L;305B 3099;;;;N;;;;;
+305D;HIRAGANA LETTER SO;Lo;0;L;;;;;N;;;;;
+305E;HIRAGANA LETTER ZO;Lo;0;L;305D 3099;;;;N;;;;;
+305F;HIRAGANA LETTER TA;Lo;0;L;;;;;N;;;;;
+3060;HIRAGANA LETTER DA;Lo;0;L;305F 3099;;;;N;;;;;
+3061;HIRAGANA LETTER TI;Lo;0;L;;;;;N;;;;;
+3062;HIRAGANA LETTER DI;Lo;0;L;3061 3099;;;;N;;;;;
+3063;HIRAGANA LETTER SMALL TU;Lo;0;L;;;;;N;;;;;
+3064;HIRAGANA LETTER TU;Lo;0;L;;;;;N;;;;;
+3065;HIRAGANA LETTER DU;Lo;0;L;3064 3099;;;;N;;;;;
+3066;HIRAGANA LETTER TE;Lo;0;L;;;;;N;;;;;
+3067;HIRAGANA LETTER DE;Lo;0;L;3066 3099;;;;N;;;;;
+3068;HIRAGANA LETTER TO;Lo;0;L;;;;;N;;;;;
+3069;HIRAGANA LETTER DO;Lo;0;L;3068 3099;;;;N;;;;;
+306A;HIRAGANA LETTER NA;Lo;0;L;;;;;N;;;;;
+306B;HIRAGANA LETTER NI;Lo;0;L;;;;;N;;;;;
+306C;HIRAGANA LETTER NU;Lo;0;L;;;;;N;;;;;
+306D;HIRAGANA LETTER NE;Lo;0;L;;;;;N;;;;;
+306E;HIRAGANA LETTER NO;Lo;0;L;;;;;N;;;;;
+306F;HIRAGANA LETTER HA;Lo;0;L;;;;;N;;;;;
+3070;HIRAGANA LETTER BA;Lo;0;L;306F 3099;;;;N;;;;;
+3071;HIRAGANA LETTER PA;Lo;0;L;306F 309A;;;;N;;;;;
+3072;HIRAGANA LETTER HI;Lo;0;L;;;;;N;;;;;
+3073;HIRAGANA LETTER BI;Lo;0;L;3072 3099;;;;N;;;;;
+3074;HIRAGANA LETTER PI;Lo;0;L;3072 309A;;;;N;;;;;
+3075;HIRAGANA LETTER HU;Lo;0;L;;;;;N;;;;;
+3076;HIRAGANA LETTER BU;Lo;0;L;3075 3099;;;;N;;;;;
+3077;HIRAGANA LETTER PU;Lo;0;L;3075 309A;;;;N;;;;;
+3078;HIRAGANA LETTER HE;Lo;0;L;;;;;N;;;;;
+3079;HIRAGANA LETTER BE;Lo;0;L;3078 3099;;;;N;;;;;
+307A;HIRAGANA LETTER PE;Lo;0;L;3078 309A;;;;N;;;;;
+307B;HIRAGANA LETTER HO;Lo;0;L;;;;;N;;;;;
+307C;HIRAGANA LETTER BO;Lo;0;L;307B 3099;;;;N;;;;;
+307D;HIRAGANA LETTER PO;Lo;0;L;307B 309A;;;;N;;;;;
+307E;HIRAGANA LETTER MA;Lo;0;L;;;;;N;;;;;
+307F;HIRAGANA LETTER MI;Lo;0;L;;;;;N;;;;;
+3080;HIRAGANA LETTER MU;Lo;0;L;;;;;N;;;;;
+3081;HIRAGANA LETTER ME;Lo;0;L;;;;;N;;;;;
+3082;HIRAGANA LETTER MO;Lo;0;L;;;;;N;;;;;
+3083;HIRAGANA LETTER SMALL YA;Lo;0;L;;;;;N;;;;;
+3084;HIRAGANA LETTER YA;Lo;0;L;;;;;N;;;;;
+3085;HIRAGANA LETTER SMALL YU;Lo;0;L;;;;;N;;;;;
+3086;HIRAGANA LETTER YU;Lo;0;L;;;;;N;;;;;
+3087;HIRAGANA LETTER SMALL YO;Lo;0;L;;;;;N;;;;;
+3088;HIRAGANA LETTER YO;Lo;0;L;;;;;N;;;;;
+3089;HIRAGANA LETTER RA;Lo;0;L;;;;;N;;;;;
+308A;HIRAGANA LETTER RI;Lo;0;L;;;;;N;;;;;
+308B;HIRAGANA LETTER RU;Lo;0;L;;;;;N;;;;;
+308C;HIRAGANA LETTER RE;Lo;0;L;;;;;N;;;;;
+308D;HIRAGANA LETTER RO;Lo;0;L;;;;;N;;;;;
+308E;HIRAGANA LETTER SMALL WA;Lo;0;L;;;;;N;;;;;
+308F;HIRAGANA LETTER WA;Lo;0;L;;;;;N;;;;;
+3090;HIRAGANA LETTER WI;Lo;0;L;;;;;N;;;;;
+3091;HIRAGANA LETTER WE;Lo;0;L;;;;;N;;;;;
+3092;HIRAGANA LETTER WO;Lo;0;L;;;;;N;;;;;
+3093;HIRAGANA LETTER N;Lo;0;L;;;;;N;;;;;
+3094;HIRAGANA LETTER VU;Lo;0;L;3046 3099;;;;N;;;;;
+3099;COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK;Mn;8;NSM;;;;;N;NON-SPACING KATAKANA-HIRAGANA VOICED SOUND MARK;;;;
+309A;COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK;Mn;8;NSM;;;;;N;NON-SPACING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK;;;;
+309B;KATAKANA-HIRAGANA VOICED SOUND MARK;Sk;0;ON;<compat> 0020 3099;;;;N;;;;;
+309C;KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK;Sk;0;ON;<compat> 0020 309A;;;;N;;;;;
+309D;HIRAGANA ITERATION MARK;Lm;0;L;;;;;N;;;;;
+309E;HIRAGANA VOICED ITERATION MARK;Lm;0;L;309D 3099;;;;N;;;;;
+30A1;KATAKANA LETTER SMALL A;Lo;0;L;;;;;N;;;;;
+30A2;KATAKANA LETTER A;Lo;0;L;;;;;N;;;;;
+30A3;KATAKANA LETTER SMALL I;Lo;0;L;;;;;N;;;;;
+30A4;KATAKANA LETTER I;Lo;0;L;;;;;N;;;;;
+30A5;KATAKANA LETTER SMALL U;Lo;0;L;;;;;N;;;;;
+30A6;KATAKANA LETTER U;Lo;0;L;;;;;N;;;;;
+30A7;KATAKANA LETTER SMALL E;Lo;0;L;;;;;N;;;;;
+30A8;KATAKANA LETTER E;Lo;0;L;;;;;N;;;;;
+30A9;KATAKANA LETTER SMALL O;Lo;0;L;;;;;N;;;;;
+30AA;KATAKANA LETTER O;Lo;0;L;;;;;N;;;;;
+30AB;KATAKANA LETTER KA;Lo;0;L;;;;;N;;;;;
+30AC;KATAKANA LETTER GA;Lo;0;L;30AB 3099;;;;N;;;;;
+30AD;KATAKANA LETTER KI;Lo;0;L;;;;;N;;;;;
+30AE;KATAKANA LETTER GI;Lo;0;L;30AD 3099;;;;N;;;;;
+30AF;KATAKANA LETTER KU;Lo;0;L;;;;;N;;;;;
+30B0;KATAKANA LETTER GU;Lo;0;L;30AF 3099;;;;N;;;;;
+30B1;KATAKANA LETTER KE;Lo;0;L;;;;;N;;;;;
+30B2;KATAKANA LETTER GE;Lo;0;L;30B1 3099;;;;N;;;;;
+30B3;KATAKANA LETTER KO;Lo;0;L;;;;;N;;;;;
+30B4;KATAKANA LETTER GO;Lo;0;L;30B3 3099;;;;N;;;;;
+30B5;KATAKANA LETTER SA;Lo;0;L;;;;;N;;;;;
+30B6;KATAKANA LETTER ZA;Lo;0;L;30B5 3099;;;;N;;;;;
+30B7;KATAKANA LETTER SI;Lo;0;L;;;;;N;;;;;
+30B8;KATAKANA LETTER ZI;Lo;0;L;30B7 3099;;;;N;;;;;
+30B9;KATAKANA LETTER SU;Lo;0;L;;;;;N;;;;;
+30BA;KATAKANA LETTER ZU;Lo;0;L;30B9 3099;;;;N;;;;;
+30BB;KATAKANA LETTER SE;Lo;0;L;;;;;N;;;;;
+30BC;KATAKANA LETTER ZE;Lo;0;L;30BB 3099;;;;N;;;;;
+30BD;KATAKANA LETTER SO;Lo;0;L;;;;;N;;;;;
+30BE;KATAKANA LETTER ZO;Lo;0;L;30BD 3099;;;;N;;;;;
+30BF;KATAKANA LETTER TA;Lo;0;L;;;;;N;;;;;
+30C0;KATAKANA LETTER DA;Lo;0;L;30BF 3099;;;;N;;;;;
+30C1;KATAKANA LETTER TI;Lo;0;L;;;;;N;;;;;
+30C2;KATAKANA LETTER DI;Lo;0;L;30C1 3099;;;;N;;;;;
+30C3;KATAKANA LETTER SMALL TU;Lo;0;L;;;;;N;;;;;
+30C4;KATAKANA LETTER TU;Lo;0;L;;;;;N;;;;;
+30C5;KATAKANA LETTER DU;Lo;0;L;30C4 3099;;;;N;;;;;
+30C6;KATAKANA LETTER TE;Lo;0;L;;;;;N;;;;;
+30C7;KATAKANA LETTER DE;Lo;0;L;30C6 3099;;;;N;;;;;
+30C8;KATAKANA LETTER TO;Lo;0;L;;;;;N;;;;;
+30C9;KATAKANA LETTER DO;Lo;0;L;30C8 3099;;;;N;;;;;
+30CA;KATAKANA LETTER NA;Lo;0;L;;;;;N;;;;;
+30CB;KATAKANA LETTER NI;Lo;0;L;;;;;N;;;;;
+30CC;KATAKANA LETTER NU;Lo;0;L;;;;;N;;;;;
+30CD;KATAKANA LETTER NE;Lo;0;L;;;;;N;;;;;
+30CE;KATAKANA LETTER NO;Lo;0;L;;;;;N;;;;;
+30CF;KATAKANA LETTER HA;Lo;0;L;;;;;N;;;;;
+30D0;KATAKANA LETTER BA;Lo;0;L;30CF 3099;;;;N;;;;;
+30D1;KATAKANA LETTER PA;Lo;0;L;30CF 309A;;;;N;;;;;
+30D2;KATAKANA LETTER HI;Lo;0;L;;;;;N;;;;;
+30D3;KATAKANA LETTER BI;Lo;0;L;30D2 3099;;;;N;;;;;
+30D4;KATAKANA LETTER PI;Lo;0;L;30D2 309A;;;;N;;;;;
+30D5;KATAKANA LETTER HU;Lo;0;L;;;;;N;;;;;
+30D6;KATAKANA LETTER BU;Lo;0;L;30D5 3099;;;;N;;;;;
+30D7;KATAKANA LETTER PU;Lo;0;L;30D5 309A;;;;N;;;;;
+30D8;KATAKANA LETTER HE;Lo;0;L;;;;;N;;;;;
+30D9;KATAKANA LETTER BE;Lo;0;L;30D8 3099;;;;N;;;;;
+30DA;KATAKANA LETTER PE;Lo;0;L;30D8 309A;;;;N;;;;;
+30DB;KATAKANA LETTER HO;Lo;0;L;;;;;N;;;;;
+30DC;KATAKANA LETTER BO;Lo;0;L;30DB 3099;;;;N;;;;;
+30DD;KATAKANA LETTER PO;Lo;0;L;30DB 309A;;;;N;;;;;
+30DE;KATAKANA LETTER MA;Lo;0;L;;;;;N;;;;;
+30DF;KATAKANA LETTER MI;Lo;0;L;;;;;N;;;;;
+30E0;KATAKANA LETTER MU;Lo;0;L;;;;;N;;;;;
+30E1;KATAKANA LETTER ME;Lo;0;L;;;;;N;;;;;
+30E2;KATAKANA LETTER MO;Lo;0;L;;;;;N;;;;;
+30E3;KATAKANA LETTER SMALL YA;Lo;0;L;;;;;N;;;;;
+30E4;KATAKANA LETTER YA;Lo;0;L;;;;;N;;;;;
+30E5;KATAKANA LETTER SMALL YU;Lo;0;L;;;;;N;;;;;
+30E6;KATAKANA LETTER YU;Lo;0;L;;;;;N;;;;;
+30E7;KATAKANA LETTER SMALL YO;Lo;0;L;;;;;N;;;;;
+30E8;KATAKANA LETTER YO;Lo;0;L;;;;;N;;;;;
+30E9;KATAKANA LETTER RA;Lo;0;L;;;;;N;;;;;
+30EA;KATAKANA LETTER RI;Lo;0;L;;;;;N;;;;;
+30EB;KATAKANA LETTER RU;Lo;0;L;;;;;N;;;;;
+30EC;KATAKANA LETTER RE;Lo;0;L;;;;;N;;;;;
+30ED;KATAKANA LETTER RO;Lo;0;L;;;;;N;;;;;
+30EE;KATAKANA LETTER SMALL WA;Lo;0;L;;;;;N;;;;;
+30EF;KATAKANA LETTER WA;Lo;0;L;;;;;N;;;;;
+30F0;KATAKANA LETTER WI;Lo;0;L;;;;;N;;;;;
+30F1;KATAKANA LETTER WE;Lo;0;L;;;;;N;;;;;
+30F2;KATAKANA LETTER WO;Lo;0;L;;;;;N;;;;;
+30F3;KATAKANA LETTER N;Lo;0;L;;;;;N;;;;;
+30F4;KATAKANA LETTER VU;Lo;0;L;30A6 3099;;;;N;;;;;
+30F5;KATAKANA LETTER SMALL KA;Lo;0;L;;;;;N;;;;;
+30F6;KATAKANA LETTER SMALL KE;Lo;0;L;;;;;N;;;;;
+30F7;KATAKANA LETTER VA;Lo;0;L;30EF 3099;;;;N;;;;;
+30F8;KATAKANA LETTER VI;Lo;0;L;30F0 3099;;;;N;;;;;
+30F9;KATAKANA LETTER VE;Lo;0;L;30F1 3099;;;;N;;;;;
+30FA;KATAKANA LETTER VO;Lo;0;L;30F2 3099;;;;N;;;;;
+30FB;KATAKANA MIDDLE DOT;Pc;0;ON;;;;;N;;;;;
+30FC;KATAKANA-HIRAGANA PROLONGED SOUND MARK;Lm;0;L;;;;;N;;;;;
+30FD;KATAKANA ITERATION MARK;Lm;0;L;;;;;N;;;;;
+30FE;KATAKANA VOICED ITERATION MARK;Lm;0;L;30FD 3099;;;;N;;;;;
+3105;BOPOMOFO LETTER B;Lo;0;L;;;;;N;;;;;
+3106;BOPOMOFO LETTER P;Lo;0;L;;;;;N;;;;;
+3107;BOPOMOFO LETTER M;Lo;0;L;;;;;N;;;;;
+3108;BOPOMOFO LETTER F;Lo;0;L;;;;;N;;;;;
+3109;BOPOMOFO LETTER D;Lo;0;L;;;;;N;;;;;
+310A;BOPOMOFO LETTER T;Lo;0;L;;;;;N;;;;;
+310B;BOPOMOFO LETTER N;Lo;0;L;;;;;N;;;;;
+310C;BOPOMOFO LETTER L;Lo;0;L;;;;;N;;;;;
+310D;BOPOMOFO LETTER G;Lo;0;L;;;;;N;;;;;
+310E;BOPOMOFO LETTER K;Lo;0;L;;;;;N;;;;;
+310F;BOPOMOFO LETTER H;Lo;0;L;;;;;N;;;;;
+3110;BOPOMOFO LETTER J;Lo;0;L;;;;;N;;;;;
+3111;BOPOMOFO LETTER Q;Lo;0;L;;;;;N;;;;;
+3112;BOPOMOFO LETTER X;Lo;0;L;;;;;N;;;;;
+3113;BOPOMOFO LETTER ZH;Lo;0;L;;;;;N;;;;;
+3114;BOPOMOFO LETTER CH;Lo;0;L;;;;;N;;;;;
+3115;BOPOMOFO LETTER SH;Lo;0;L;;;;;N;;;;;
+3116;BOPOMOFO LETTER R;Lo;0;L;;;;;N;;;;;
+3117;BOPOMOFO LETTER Z;Lo;0;L;;;;;N;;;;;
+3118;BOPOMOFO LETTER C;Lo;0;L;;;;;N;;;;;
+3119;BOPOMOFO LETTER S;Lo;0;L;;;;;N;;;;;
+311A;BOPOMOFO LETTER A;Lo;0;L;;;;;N;;;;;
+311B;BOPOMOFO LETTER O;Lo;0;L;;;;;N;;;;;
+311C;BOPOMOFO LETTER E;Lo;0;L;;;;;N;;;;;
+311D;BOPOMOFO LETTER EH;Lo;0;L;;;;;N;;;;;
+311E;BOPOMOFO LETTER AI;Lo;0;L;;;;;N;;;;;
+311F;BOPOMOFO LETTER EI;Lo;0;L;;;;;N;;;;;
+3120;BOPOMOFO LETTER AU;Lo;0;L;;;;;N;;;;;
+3121;BOPOMOFO LETTER OU;Lo;0;L;;;;;N;;;;;
+3122;BOPOMOFO LETTER AN;Lo;0;L;;;;;N;;;;;
+3123;BOPOMOFO LETTER EN;Lo;0;L;;;;;N;;;;;
+3124;BOPOMOFO LETTER ANG;Lo;0;L;;;;;N;;;;;
+3125;BOPOMOFO LETTER ENG;Lo;0;L;;;;;N;;;;;
+3126;BOPOMOFO LETTER ER;Lo;0;L;;;;;N;;;;;
+3127;BOPOMOFO LETTER I;Lo;0;L;;;;;N;;;;;
+3128;BOPOMOFO LETTER U;Lo;0;L;;;;;N;;;;;
+3129;BOPOMOFO LETTER IU;Lo;0;L;;;;;N;;;;;
+312A;BOPOMOFO LETTER V;Lo;0;L;;;;;N;;;;;
+312B;BOPOMOFO LETTER NG;Lo;0;L;;;;;N;;;;;
+312C;BOPOMOFO LETTER GN;Lo;0;L;;;;;N;;;;;
+3131;HANGUL LETTER KIYEOK;Lo;0;L;<compat> 1100;;;;N;HANGUL LETTER GIYEOG;;;;
+3132;HANGUL LETTER SSANGKIYEOK;Lo;0;L;<compat> 1101;;;;N;HANGUL LETTER SSANG GIYEOG;;;;
+3133;HANGUL LETTER KIYEOK-SIOS;Lo;0;L;<compat> 11AA;;;;N;HANGUL LETTER GIYEOG SIOS;;;;
+3134;HANGUL LETTER NIEUN;Lo;0;L;<compat> 1102;;;;N;;;;;
+3135;HANGUL LETTER NIEUN-CIEUC;Lo;0;L;<compat> 11AC;;;;N;HANGUL LETTER NIEUN JIEUJ;;;;
+3136;HANGUL LETTER NIEUN-HIEUH;Lo;0;L;<compat> 11AD;;;;N;HANGUL LETTER NIEUN HIEUH;;;;
+3137;HANGUL LETTER TIKEUT;Lo;0;L;<compat> 1103;;;;N;HANGUL LETTER DIGEUD;;;;
+3138;HANGUL LETTER SSANGTIKEUT;Lo;0;L;<compat> 1104;;;;N;HANGUL LETTER SSANG DIGEUD;;;;
+3139;HANGUL LETTER RIEUL;Lo;0;L;<compat> 1105;;;;N;HANGUL LETTER LIEUL;;;;
+313A;HANGUL LETTER RIEUL-KIYEOK;Lo;0;L;<compat> 11B0;;;;N;HANGUL LETTER LIEUL GIYEOG;;;;
+313B;HANGUL LETTER RIEUL-MIEUM;Lo;0;L;<compat> 11B1;;;;N;HANGUL LETTER LIEUL MIEUM;;;;
+313C;HANGUL LETTER RIEUL-PIEUP;Lo;0;L;<compat> 11B2;;;;N;HANGUL LETTER LIEUL BIEUB;;;;
+313D;HANGUL LETTER RIEUL-SIOS;Lo;0;L;<compat> 11B3;;;;N;HANGUL LETTER LIEUL SIOS;;;;
+313E;HANGUL LETTER RIEUL-THIEUTH;Lo;0;L;<compat> 11B4;;;;N;HANGUL LETTER LIEUL TIEUT;;;;
+313F;HANGUL LETTER RIEUL-PHIEUPH;Lo;0;L;<compat> 11B5;;;;N;HANGUL LETTER LIEUL PIEUP;;;;
+3140;HANGUL LETTER RIEUL-HIEUH;Lo;0;L;<compat> 111A;;;;N;HANGUL LETTER LIEUL HIEUH;;;;
+3141;HANGUL LETTER MIEUM;Lo;0;L;<compat> 1106;;;;N;;;;;
+3142;HANGUL LETTER PIEUP;Lo;0;L;<compat> 1107;;;;N;HANGUL LETTER BIEUB;;;;
+3143;HANGUL LETTER SSANGPIEUP;Lo;0;L;<compat> 1108;;;;N;HANGUL LETTER SSANG BIEUB;;;;
+3144;HANGUL LETTER PIEUP-SIOS;Lo;0;L;<compat> 1121;;;;N;HANGUL LETTER BIEUB SIOS;;;;
+3145;HANGUL LETTER SIOS;Lo;0;L;<compat> 1109;;;;N;;;;;
+3146;HANGUL LETTER SSANGSIOS;Lo;0;L;<compat> 110A;;;;N;HANGUL LETTER SSANG SIOS;;;;
+3147;HANGUL LETTER IEUNG;Lo;0;L;<compat> 110B;;;;N;;;;;
+3148;HANGUL LETTER CIEUC;Lo;0;L;<compat> 110C;;;;N;HANGUL LETTER JIEUJ;;;;
+3149;HANGUL LETTER SSANGCIEUC;Lo;0;L;<compat> 110D;;;;N;HANGUL LETTER SSANG JIEUJ;;;;
+314A;HANGUL LETTER CHIEUCH;Lo;0;L;<compat> 110E;;;;N;HANGUL LETTER CIEUC;;;;
+314B;HANGUL LETTER KHIEUKH;Lo;0;L;<compat> 110F;;;;N;HANGUL LETTER KIYEOK;;;;
+314C;HANGUL LETTER THIEUTH;Lo;0;L;<compat> 1110;;;;N;HANGUL LETTER TIEUT;;;;
+314D;HANGUL LETTER PHIEUPH;Lo;0;L;<compat> 1111;;;;N;HANGUL LETTER PIEUP;;;;
+314E;HANGUL LETTER HIEUH;Lo;0;L;<compat> 1112;;;;N;;;;;
+314F;HANGUL LETTER A;Lo;0;L;<compat> 1161;;;;N;;;;;
+3150;HANGUL LETTER AE;Lo;0;L;<compat> 1162;;;;N;;;;;
+3151;HANGUL LETTER YA;Lo;0;L;<compat> 1163;;;;N;;;;;
+3152;HANGUL LETTER YAE;Lo;0;L;<compat> 1164;;;;N;;;;;
+3153;HANGUL LETTER EO;Lo;0;L;<compat> 1165;;;;N;;;;;
+3154;HANGUL LETTER E;Lo;0;L;<compat> 1166;;;;N;;;;;
+3155;HANGUL LETTER YEO;Lo;0;L;<compat> 1167;;;;N;;;;;
+3156;HANGUL LETTER YE;Lo;0;L;<compat> 1168;;;;N;;;;;
+3157;HANGUL LETTER O;Lo;0;L;<compat> 1169;;;;N;;;;;
+3158;HANGUL LETTER WA;Lo;0;L;<compat> 116A;;;;N;;;;;
+3159;HANGUL LETTER WAE;Lo;0;L;<compat> 116B;;;;N;;;;;
+315A;HANGUL LETTER OE;Lo;0;L;<compat> 116C;;;;N;;;;;
+315B;HANGUL LETTER YO;Lo;0;L;<compat> 116D;;;;N;;;;;
+315C;HANGUL LETTER U;Lo;0;L;<compat> 116E;;;;N;;;;;
+315D;HANGUL LETTER WEO;Lo;0;L;<compat> 116F;;;;N;;;;;
+315E;HANGUL LETTER WE;Lo;0;L;<compat> 1170;;;;N;;;;;
+315F;HANGUL LETTER WI;Lo;0;L;<compat> 1171;;;;N;;;;;
+3160;HANGUL LETTER YU;Lo;0;L;<compat> 1172;;;;N;;;;;
+3161;HANGUL LETTER EU;Lo;0;L;<compat> 1173;;;;N;;;;;
+3162;HANGUL LETTER YI;Lo;0;L;<compat> 1174;;;;N;;;;;
+3163;HANGUL LETTER I;Lo;0;L;<compat> 1175;;;;N;;;;;
+3164;HANGUL FILLER;Lo;0;L;<compat> 1160;;;;N;HANGUL CAE OM;;;;
+3165;HANGUL LETTER SSANGNIEUN;Lo;0;L;<compat> 1114;;;;N;HANGUL LETTER SSANG NIEUN;;;;
+3166;HANGUL LETTER NIEUN-TIKEUT;Lo;0;L;<compat> 1115;;;;N;HANGUL LETTER NIEUN DIGEUD;;;;
+3167;HANGUL LETTER NIEUN-SIOS;Lo;0;L;<compat> 11C7;;;;N;HANGUL LETTER NIEUN SIOS;;;;
+3168;HANGUL LETTER NIEUN-PANSIOS;Lo;0;L;<compat> 11C8;;;;N;HANGUL LETTER NIEUN BAN CHI EUM;;;;
+3169;HANGUL LETTER RIEUL-KIYEOK-SIOS;Lo;0;L;<compat> 11CC;;;;N;HANGUL LETTER LIEUL GIYEOG SIOS;;;;
+316A;HANGUL LETTER RIEUL-TIKEUT;Lo;0;L;<compat> 11CE;;;;N;HANGUL LETTER LIEUL DIGEUD;;;;
+316B;HANGUL LETTER RIEUL-PIEUP-SIOS;Lo;0;L;<compat> 11D3;;;;N;HANGUL LETTER LIEUL BIEUB SIOS;;;;
+316C;HANGUL LETTER RIEUL-PANSIOS;Lo;0;L;<compat> 11D7;;;;N;HANGUL LETTER LIEUL BAN CHI EUM;;;;
+316D;HANGUL LETTER RIEUL-YEORINHIEUH;Lo;0;L;<compat> 11D9;;;;N;HANGUL LETTER LIEUL YEOLIN HIEUH;;;;
+316E;HANGUL LETTER MIEUM-PIEUP;Lo;0;L;<compat> 111C;;;;N;HANGUL LETTER MIEUM BIEUB;;;;
+316F;HANGUL LETTER MIEUM-SIOS;Lo;0;L;<compat> 11DD;;;;N;HANGUL LETTER MIEUM SIOS;;;;
+3170;HANGUL LETTER MIEUM-PANSIOS;Lo;0;L;<compat> 11DF;;;;N;HANGUL LETTER BIEUB BAN CHI EUM;;;;
+3171;HANGUL LETTER KAPYEOUNMIEUM;Lo;0;L;<compat> 111D;;;;N;HANGUL LETTER MIEUM SUN GYEONG EUM;;;;
+3172;HANGUL LETTER PIEUP-KIYEOK;Lo;0;L;<compat> 111E;;;;N;HANGUL LETTER BIEUB GIYEOG;;;;
+3173;HANGUL LETTER PIEUP-TIKEUT;Lo;0;L;<compat> 1120;;;;N;HANGUL LETTER BIEUB DIGEUD;;;;
+3174;HANGUL LETTER PIEUP-SIOS-KIYEOK;Lo;0;L;<compat> 1122;;;;N;HANGUL LETTER BIEUB SIOS GIYEOG;;;;
+3175;HANGUL LETTER PIEUP-SIOS-TIKEUT;Lo;0;L;<compat> 1123;;;;N;HANGUL LETTER BIEUB SIOS DIGEUD;;;;
+3176;HANGUL LETTER PIEUP-CIEUC;Lo;0;L;<compat> 1127;;;;N;HANGUL LETTER BIEUB JIEUJ;;;;
+3177;HANGUL LETTER PIEUP-THIEUTH;Lo;0;L;<compat> 1129;;;;N;HANGUL LETTER BIEUB TIEUT;;;;
+3178;HANGUL LETTER KAPYEOUNPIEUP;Lo;0;L;<compat> 112B;;;;N;HANGUL LETTER BIEUB SUN GYEONG EUM;;;;
+3179;HANGUL LETTER KAPYEOUNSSANGPIEUP;Lo;0;L;<compat> 112C;;;;N;HANGUL LETTER SSANG BIEUB SUN GYEONG EUM;;;;
+317A;HANGUL LETTER SIOS-KIYEOK;Lo;0;L;<compat> 112D;;;;N;HANGUL LETTER SIOS GIYEOG;;;;
+317B;HANGUL LETTER SIOS-NIEUN;Lo;0;L;<compat> 112E;;;;N;HANGUL LETTER SIOS NIEUN;;;;
+317C;HANGUL LETTER SIOS-TIKEUT;Lo;0;L;<compat> 112F;;;;N;HANGUL LETTER SIOS DIGEUD;;;;
+317D;HANGUL LETTER SIOS-PIEUP;Lo;0;L;<compat> 1132;;;;N;HANGUL LETTER SIOS BIEUB;;;;
+317E;HANGUL LETTER SIOS-CIEUC;Lo;0;L;<compat> 1136;;;;N;HANGUL LETTER SIOS JIEUJ;;;;
+317F;HANGUL LETTER PANSIOS;Lo;0;L;<compat> 1140;;;;N;HANGUL LETTER BAN CHI EUM;;;;
+3180;HANGUL LETTER SSANGIEUNG;Lo;0;L;<compat> 1147;;;;N;HANGUL LETTER SSANG IEUNG;;;;
+3181;HANGUL LETTER YESIEUNG;Lo;0;L;<compat> 114C;;;;N;HANGUL LETTER NGIEUNG;;;;
+3182;HANGUL LETTER YESIEUNG-SIOS;Lo;0;L;<compat> 11F1;;;;N;HANGUL LETTER NGIEUNG SIOS;;;;
+3183;HANGUL LETTER YESIEUNG-PANSIOS;Lo;0;L;<compat> 11F2;;;;N;HANGUL LETTER NGIEUNG BAN CHI EUM;;;;
+3184;HANGUL LETTER KAPYEOUNPHIEUPH;Lo;0;L;<compat> 1157;;;;N;HANGUL LETTER PIEUP SUN GYEONG EUM;;;;
+3185;HANGUL LETTER SSANGHIEUH;Lo;0;L;<compat> 1158;;;;N;HANGUL LETTER SSANG HIEUH;;;;
+3186;HANGUL LETTER YEORINHIEUH;Lo;0;L;<compat> 1159;;;;N;HANGUL LETTER YEOLIN HIEUH;;;;
+3187;HANGUL LETTER YO-YA;Lo;0;L;<compat> 1184;;;;N;HANGUL LETTER YOYA;;;;
+3188;HANGUL LETTER YO-YAE;Lo;0;L;<compat> 1185;;;;N;HANGUL LETTER YOYAE;;;;
+3189;HANGUL LETTER YO-I;Lo;0;L;<compat> 1188;;;;N;HANGUL LETTER YOI;;;;
+318A;HANGUL LETTER YU-YEO;Lo;0;L;<compat> 1191;;;;N;HANGUL LETTER YUYEO;;;;
+318B;HANGUL LETTER YU-YE;Lo;0;L;<compat> 1192;;;;N;HANGUL LETTER YUYE;;;;
+318C;HANGUL LETTER YU-I;Lo;0;L;<compat> 1194;;;;N;HANGUL LETTER YUI;;;;
+318D;HANGUL LETTER ARAEA;Lo;0;L;<compat> 119E;;;;N;HANGUL LETTER ALAE A;;;;
+318E;HANGUL LETTER ARAEAE;Lo;0;L;<compat> 11A1;;;;N;HANGUL LETTER ALAE AE;;;;
+3190;IDEOGRAPHIC ANNOTATION LINKING MARK;So;0;L;;;;;N;KANBUN TATETEN;Kanbun Tateten;;;
+3191;IDEOGRAPHIC ANNOTATION REVERSE MARK;So;0;L;;;;;N;KAERITEN RE;Kaeriten;;;
+3192;IDEOGRAPHIC ANNOTATION ONE MARK;No;0;L;<super> 4E00;;;;N;KAERITEN ITI;Kaeriten;;;
+3193;IDEOGRAPHIC ANNOTATION TWO MARK;No;0;L;<super> 4E8C;;;;N;KAERITEN NI;Kaeriten;;;
+3194;IDEOGRAPHIC ANNOTATION THREE MARK;No;0;L;<super> 4E09;;;;N;KAERITEN SAN;Kaeriten;;;
+3195;IDEOGRAPHIC ANNOTATION FOUR MARK;No;0;L;<super> 56DB;;;;N;KAERITEN SI;Kaeriten;;;
+3196;IDEOGRAPHIC ANNOTATION TOP MARK;So;0;L;<super> 4E0A;;;;N;KAERITEN ZYOU;Kaeriten;;;
+3197;IDEOGRAPHIC ANNOTATION MIDDLE MARK;So;0;L;<super> 4E2D;;;;N;KAERITEN TYUU;Kaeriten;;;
+3198;IDEOGRAPHIC ANNOTATION BOTTOM MARK;So;0;L;<super> 4E0B;;;;N;KAERITEN GE;Kaeriten;;;
+3199;IDEOGRAPHIC ANNOTATION FIRST MARK;So;0;L;<super> 7532;;;;N;KAERITEN KOU;Kaeriten;;;
+319A;IDEOGRAPHIC ANNOTATION SECOND MARK;So;0;L;<super> 4E59;;;;N;KAERITEN OTU;Kaeriten;;;
+319B;IDEOGRAPHIC ANNOTATION THIRD MARK;So;0;L;<super> 4E19;;;;N;KAERITEN HEI;Kaeriten;;;
+319C;IDEOGRAPHIC ANNOTATION FOURTH MARK;So;0;L;<super> 4E01;;;;N;KAERITEN TEI;Kaeriten;;;
+319D;IDEOGRAPHIC ANNOTATION HEAVEN MARK;So;0;L;<super> 5929;;;;N;KAERITEN TEN;Kaeriten;;;
+319E;IDEOGRAPHIC ANNOTATION EARTH MARK;So;0;L;<super> 5730;;;;N;KAERITEN TI;Kaeriten;;;
+319F;IDEOGRAPHIC ANNOTATION MAN MARK;So;0;L;<super> 4EBA;;;;N;KAERITEN ZIN;Kaeriten;;;
+31A0;BOPOMOFO LETTER BU;Lo;0;L;;;;;N;;;;;
+31A1;BOPOMOFO LETTER ZI;Lo;0;L;;;;;N;;;;;
+31A2;BOPOMOFO LETTER JI;Lo;0;L;;;;;N;;;;;
+31A3;BOPOMOFO LETTER GU;Lo;0;L;;;;;N;;;;;
+31A4;BOPOMOFO LETTER EE;Lo;0;L;;;;;N;;;;;
+31A5;BOPOMOFO LETTER ENN;Lo;0;L;;;;;N;;;;;
+31A6;BOPOMOFO LETTER OO;Lo;0;L;;;;;N;;;;;
+31A7;BOPOMOFO LETTER ONN;Lo;0;L;;;;;N;;;;;
+31A8;BOPOMOFO LETTER IR;Lo;0;L;;;;;N;;;;;
+31A9;BOPOMOFO LETTER ANN;Lo;0;L;;;;;N;;;;;
+31AA;BOPOMOFO LETTER INN;Lo;0;L;;;;;N;;;;;
+31AB;BOPOMOFO LETTER UNN;Lo;0;L;;;;;N;;;;;
+31AC;BOPOMOFO LETTER IM;Lo;0;L;;;;;N;;;;;
+31AD;BOPOMOFO LETTER NGG;Lo;0;L;;;;;N;;;;;
+31AE;BOPOMOFO LETTER AINN;Lo;0;L;;;;;N;;;;;
+31AF;BOPOMOFO LETTER AUNN;Lo;0;L;;;;;N;;;;;
+31B0;BOPOMOFO LETTER AM;Lo;0;L;;;;;N;;;;;
+31B1;BOPOMOFO LETTER OM;Lo;0;L;;;;;N;;;;;
+31B2;BOPOMOFO LETTER ONG;Lo;0;L;;;;;N;;;;;
+31B3;BOPOMOFO LETTER INNN;Lo;0;L;;;;;N;;;;;
+31B4;BOPOMOFO FINAL LETTER P;Lo;0;L;;;;;N;;;;;
+31B5;BOPOMOFO FINAL LETTER T;Lo;0;L;;;;;N;;;;;
+31B6;BOPOMOFO FINAL LETTER K;Lo;0;L;;;;;N;;;;;
+31B7;BOPOMOFO FINAL LETTER H;Lo;0;L;;;;;N;;;;;
+3200;PARENTHESIZED HANGUL KIYEOK;So;0;L;<compat> 0028 1100 0029;;;;N;PARENTHESIZED HANGUL GIYEOG;;;;
+3201;PARENTHESIZED HANGUL NIEUN;So;0;L;<compat> 0028 1102 0029;;;;N;;;;;
+3202;PARENTHESIZED HANGUL TIKEUT;So;0;L;<compat> 0028 1103 0029;;;;N;PARENTHESIZED HANGUL DIGEUD;;;;
+3203;PARENTHESIZED HANGUL RIEUL;So;0;L;<compat> 0028 1105 0029;;;;N;PARENTHESIZED HANGUL LIEUL;;;;
+3204;PARENTHESIZED HANGUL MIEUM;So;0;L;<compat> 0028 1106 0029;;;;N;;;;;
+3205;PARENTHESIZED HANGUL PIEUP;So;0;L;<compat> 0028 1107 0029;;;;N;PARENTHESIZED HANGUL BIEUB;;;;
+3206;PARENTHESIZED HANGUL SIOS;So;0;L;<compat> 0028 1109 0029;;;;N;;;;;
+3207;PARENTHESIZED HANGUL IEUNG;So;0;L;<compat> 0028 110B 0029;;;;N;;;;;
+3208;PARENTHESIZED HANGUL CIEUC;So;0;L;<compat> 0028 110C 0029;;;;N;PARENTHESIZED HANGUL JIEUJ;;;;
+3209;PARENTHESIZED HANGUL CHIEUCH;So;0;L;<compat> 0028 110E 0029;;;;N;PARENTHESIZED HANGUL CIEUC;;;;
+320A;PARENTHESIZED HANGUL KHIEUKH;So;0;L;<compat> 0028 110F 0029;;;;N;PARENTHESIZED HANGUL KIYEOK;;;;
+320B;PARENTHESIZED HANGUL THIEUTH;So;0;L;<compat> 0028 1110 0029;;;;N;PARENTHESIZED HANGUL TIEUT;;;;
+320C;PARENTHESIZED HANGUL PHIEUPH;So;0;L;<compat> 0028 1111 0029;;;;N;PARENTHESIZED HANGUL PIEUP;;;;
+320D;PARENTHESIZED HANGUL HIEUH;So;0;L;<compat> 0028 1112 0029;;;;N;;;;;
+320E;PARENTHESIZED HANGUL KIYEOK A;So;0;L;<compat> 0028 1100 1161 0029;;;;N;PARENTHESIZED HANGUL GA;;;;
+320F;PARENTHESIZED HANGUL NIEUN A;So;0;L;<compat> 0028 1102 1161 0029;;;;N;PARENTHESIZED HANGUL NA;;;;
+3210;PARENTHESIZED HANGUL TIKEUT A;So;0;L;<compat> 0028 1103 1161 0029;;;;N;PARENTHESIZED HANGUL DA;;;;
+3211;PARENTHESIZED HANGUL RIEUL A;So;0;L;<compat> 0028 1105 1161 0029;;;;N;PARENTHESIZED HANGUL LA;;;;
+3212;PARENTHESIZED HANGUL MIEUM A;So;0;L;<compat> 0028 1106 1161 0029;;;;N;PARENTHESIZED HANGUL MA;;;;
+3213;PARENTHESIZED HANGUL PIEUP A;So;0;L;<compat> 0028 1107 1161 0029;;;;N;PARENTHESIZED HANGUL BA;;;;
+3214;PARENTHESIZED HANGUL SIOS A;So;0;L;<compat> 0028 1109 1161 0029;;;;N;PARENTHESIZED HANGUL SA;;;;
+3215;PARENTHESIZED HANGUL IEUNG A;So;0;L;<compat> 0028 110B 1161 0029;;;;N;PARENTHESIZED HANGUL A;;;;
+3216;PARENTHESIZED HANGUL CIEUC A;So;0;L;<compat> 0028 110C 1161 0029;;;;N;PARENTHESIZED HANGUL JA;;;;
+3217;PARENTHESIZED HANGUL CHIEUCH A;So;0;L;<compat> 0028 110E 1161 0029;;;;N;PARENTHESIZED HANGUL CA;;;;
+3218;PARENTHESIZED HANGUL KHIEUKH A;So;0;L;<compat> 0028 110F 1161 0029;;;;N;PARENTHESIZED HANGUL KA;;;;
+3219;PARENTHESIZED HANGUL THIEUTH A;So;0;L;<compat> 0028 1110 1161 0029;;;;N;PARENTHESIZED HANGUL TA;;;;
+321A;PARENTHESIZED HANGUL PHIEUPH A;So;0;L;<compat> 0028 1111 1161 0029;;;;N;PARENTHESIZED HANGUL PA;;;;
+321B;PARENTHESIZED HANGUL HIEUH A;So;0;L;<compat> 0028 1112 1161 0029;;;;N;PARENTHESIZED HANGUL HA;;;;
+321C;PARENTHESIZED HANGUL CIEUC U;So;0;L;<compat> 0028 110C 116E 0029;;;;N;PARENTHESIZED HANGUL JU;;;;
+3220;PARENTHESIZED IDEOGRAPH ONE;No;0;L;<compat> 0028 4E00 0029;;;;N;;;;;
+3221;PARENTHESIZED IDEOGRAPH TWO;No;0;L;<compat> 0028 4E8C 0029;;;;N;;;;;
+3222;PARENTHESIZED IDEOGRAPH THREE;No;0;L;<compat> 0028 4E09 0029;;;;N;;;;;
+3223;PARENTHESIZED IDEOGRAPH FOUR;No;0;L;<compat> 0028 56DB 0029;;;;N;;;;;
+3224;PARENTHESIZED IDEOGRAPH FIVE;No;0;L;<compat> 0028 4E94 0029;;;;N;;;;;
+3225;PARENTHESIZED IDEOGRAPH SIX;No;0;L;<compat> 0028 516D 0029;;;;N;;;;;
+3226;PARENTHESIZED IDEOGRAPH SEVEN;No;0;L;<compat> 0028 4E03 0029;;;;N;;;;;
+3227;PARENTHESIZED IDEOGRAPH EIGHT;No;0;L;<compat> 0028 516B 0029;;;;N;;;;;
+3228;PARENTHESIZED IDEOGRAPH NINE;No;0;L;<compat> 0028 4E5D 0029;;;;N;;;;;
+3229;PARENTHESIZED IDEOGRAPH TEN;No;0;L;<compat> 0028 5341 0029;;;;N;;;;;
+322A;PARENTHESIZED IDEOGRAPH MOON;So;0;L;<compat> 0028 6708 0029;;;;N;;;;;
+322B;PARENTHESIZED IDEOGRAPH FIRE;So;0;L;<compat> 0028 706B 0029;;;;N;;;;;
+322C;PARENTHESIZED IDEOGRAPH WATER;So;0;L;<compat> 0028 6C34 0029;;;;N;;;;;
+322D;PARENTHESIZED IDEOGRAPH WOOD;So;0;L;<compat> 0028 6728 0029;;;;N;;;;;
+322E;PARENTHESIZED IDEOGRAPH METAL;So;0;L;<compat> 0028 91D1 0029;;;;N;;;;;
+322F;PARENTHESIZED IDEOGRAPH EARTH;So;0;L;<compat> 0028 571F 0029;;;;N;;;;;
+3230;PARENTHESIZED IDEOGRAPH SUN;So;0;L;<compat> 0028 65E5 0029;;;;N;;;;;
+3231;PARENTHESIZED IDEOGRAPH STOCK;So;0;L;<compat> 0028 682A 0029;;;;N;;;;;
+3232;PARENTHESIZED IDEOGRAPH HAVE;So;0;L;<compat> 0028 6709 0029;;;;N;;;;;
+3233;PARENTHESIZED IDEOGRAPH SOCIETY;So;0;L;<compat> 0028 793E 0029;;;;N;;;;;
+3234;PARENTHESIZED IDEOGRAPH NAME;So;0;L;<compat> 0028 540D 0029;;;;N;;;;;
+3235;PARENTHESIZED IDEOGRAPH SPECIAL;So;0;L;<compat> 0028 7279 0029;;;;N;;;;;
+3236;PARENTHESIZED IDEOGRAPH FINANCIAL;So;0;L;<compat> 0028 8CA1 0029;;;;N;;;;;
+3237;PARENTHESIZED IDEOGRAPH CONGRATULATION;So;0;L;<compat> 0028 795D 0029;;;;N;;;;;
+3238;PARENTHESIZED IDEOGRAPH LABOR;So;0;L;<compat> 0028 52B4 0029;;;;N;;;;;
+3239;PARENTHESIZED IDEOGRAPH REPRESENT;So;0;L;<compat> 0028 4EE3 0029;;;;N;;;;;
+323A;PARENTHESIZED IDEOGRAPH CALL;So;0;L;<compat> 0028 547C 0029;;;;N;;;;;
+323B;PARENTHESIZED IDEOGRAPH STUDY;So;0;L;<compat> 0028 5B66 0029;;;;N;;;;;
+323C;PARENTHESIZED IDEOGRAPH SUPERVISE;So;0;L;<compat> 0028 76E3 0029;;;;N;;;;;
+323D;PARENTHESIZED IDEOGRAPH ENTERPRISE;So;0;L;<compat> 0028 4F01 0029;;;;N;;;;;
+323E;PARENTHESIZED IDEOGRAPH RESOURCE;So;0;L;<compat> 0028 8CC7 0029;;;;N;;;;;
+323F;PARENTHESIZED IDEOGRAPH ALLIANCE;So;0;L;<compat> 0028 5354 0029;;;;N;;;;;
+3240;PARENTHESIZED IDEOGRAPH FESTIVAL;So;0;L;<compat> 0028 796D 0029;;;;N;;;;;
+3241;PARENTHESIZED IDEOGRAPH REST;So;0;L;<compat> 0028 4F11 0029;;;;N;;;;;
+3242;PARENTHESIZED IDEOGRAPH SELF;So;0;L;<compat> 0028 81EA 0029;;;;N;;;;;
+3243;PARENTHESIZED IDEOGRAPH REACH;So;0;L;<compat> 0028 81F3 0029;;;;N;;;;;
+3260;CIRCLED HANGUL KIYEOK;So;0;L;<circle> 1100;;;;N;CIRCLED HANGUL GIYEOG;;;;
+3261;CIRCLED HANGUL NIEUN;So;0;L;<circle> 1102;;;;N;;;;;
+3262;CIRCLED HANGUL TIKEUT;So;0;L;<circle> 1103;;;;N;CIRCLED HANGUL DIGEUD;;;;
+3263;CIRCLED HANGUL RIEUL;So;0;L;<circle> 1105;;;;N;CIRCLED HANGUL LIEUL;;;;
+3264;CIRCLED HANGUL MIEUM;So;0;L;<circle> 1106;;;;N;;;;;
+3265;CIRCLED HANGUL PIEUP;So;0;L;<circle> 1107;;;;N;CIRCLED HANGUL BIEUB;;;;
+3266;CIRCLED HANGUL SIOS;So;0;L;<circle> 1109;;;;N;;;;;
+3267;CIRCLED HANGUL IEUNG;So;0;L;<circle> 110B;;;;N;;;;;
+3268;CIRCLED HANGUL CIEUC;So;0;L;<circle> 110C;;;;N;CIRCLED HANGUL JIEUJ;;;;
+3269;CIRCLED HANGUL CHIEUCH;So;0;L;<circle> 110E;;;;N;CIRCLED HANGUL CIEUC;;;;
+326A;CIRCLED HANGUL KHIEUKH;So;0;L;<circle> 110F;;;;N;CIRCLED HANGUL KIYEOK;;;;
+326B;CIRCLED HANGUL THIEUTH;So;0;L;<circle> 1110;;;;N;CIRCLED HANGUL TIEUT;;;;
+326C;CIRCLED HANGUL PHIEUPH;So;0;L;<circle> 1111;;;;N;CIRCLED HANGUL PIEUP;;;;
+326D;CIRCLED HANGUL HIEUH;So;0;L;<circle> 1112;;;;N;;;;;
+326E;CIRCLED HANGUL KIYEOK A;So;0;L;<circle> 1100 1161;;;;N;CIRCLED HANGUL GA;;;;
+326F;CIRCLED HANGUL NIEUN A;So;0;L;<circle> 1102 1161;;;;N;CIRCLED HANGUL NA;;;;
+3270;CIRCLED HANGUL TIKEUT A;So;0;L;<circle> 1103 1161;;;;N;CIRCLED HANGUL DA;;;;
+3271;CIRCLED HANGUL RIEUL A;So;0;L;<circle> 1105 1161;;;;N;CIRCLED HANGUL LA;;;;
+3272;CIRCLED HANGUL MIEUM A;So;0;L;<circle> 1106 1161;;;;N;CIRCLED HANGUL MA;;;;
+3273;CIRCLED HANGUL PIEUP A;So;0;L;<circle> 1107 1161;;;;N;CIRCLED HANGUL BA;;;;
+3274;CIRCLED HANGUL SIOS A;So;0;L;<circle> 1109 1161;;;;N;CIRCLED HANGUL SA;;;;
+3275;CIRCLED HANGUL IEUNG A;So;0;L;<circle> 110B 1161;;;;N;CIRCLED HANGUL A;;;;
+3276;CIRCLED HANGUL CIEUC A;So;0;L;<circle> 110C 1161;;;;N;CIRCLED HANGUL JA;;;;
+3277;CIRCLED HANGUL CHIEUCH A;So;0;L;<circle> 110E 1161;;;;N;CIRCLED HANGUL CA;;;;
+3278;CIRCLED HANGUL KHIEUKH A;So;0;L;<circle> 110F 1161;;;;N;CIRCLED HANGUL KA;;;;
+3279;CIRCLED HANGUL THIEUTH A;So;0;L;<circle> 1110 1161;;;;N;CIRCLED HANGUL TA;;;;
+327A;CIRCLED HANGUL PHIEUPH A;So;0;L;<circle> 1111 1161;;;;N;CIRCLED HANGUL PA;;;;
+327B;CIRCLED HANGUL HIEUH A;So;0;L;<circle> 1112 1161;;;;N;CIRCLED HANGUL HA;;;;
+327F;KOREAN STANDARD SYMBOL;So;0;L;;;;;N;;;;;
+3280;CIRCLED IDEOGRAPH ONE;No;0;L;<circle> 4E00;;;1;N;;;;;
+3281;CIRCLED IDEOGRAPH TWO;No;0;L;<circle> 4E8C;;;2;N;;;;;
+3282;CIRCLED IDEOGRAPH THREE;No;0;L;<circle> 4E09;;;3;N;;;;;
+3283;CIRCLED IDEOGRAPH FOUR;No;0;L;<circle> 56DB;;;4;N;;;;;
+3284;CIRCLED IDEOGRAPH FIVE;No;0;L;<circle> 4E94;;;5;N;;;;;
+3285;CIRCLED IDEOGRAPH SIX;No;0;L;<circle> 516D;;;6;N;;;;;
+3286;CIRCLED IDEOGRAPH SEVEN;No;0;L;<circle> 4E03;;;7;N;;;;;
+3287;CIRCLED IDEOGRAPH EIGHT;No;0;L;<circle> 516B;;;8;N;;;;;
+3288;CIRCLED IDEOGRAPH NINE;No;0;L;<circle> 4E5D;;;9;N;;;;;
+3289;CIRCLED IDEOGRAPH TEN;No;0;L;<circle> 5341;;;10;N;;;;;
+328A;CIRCLED IDEOGRAPH MOON;So;0;L;<circle> 6708;;;;N;;;;;
+328B;CIRCLED IDEOGRAPH FIRE;So;0;L;<circle> 706B;;;;N;;;;;
+328C;CIRCLED IDEOGRAPH WATER;So;0;L;<circle> 6C34;;;;N;;;;;
+328D;CIRCLED IDEOGRAPH WOOD;So;0;L;<circle> 6728;;;;N;;;;;
+328E;CIRCLED IDEOGRAPH METAL;So;0;L;<circle> 91D1;;;;N;;;;;
+328F;CIRCLED IDEOGRAPH EARTH;So;0;L;<circle> 571F;;;;N;;;;;
+3290;CIRCLED IDEOGRAPH SUN;So;0;L;<circle> 65E5;;;;N;;;;;
+3291;CIRCLED IDEOGRAPH STOCK;So;0;L;<circle> 682A;;;;N;;;;;
+3292;CIRCLED IDEOGRAPH HAVE;So;0;L;<circle> 6709;;;;N;;;;;
+3293;CIRCLED IDEOGRAPH SOCIETY;So;0;L;<circle> 793E;;;;N;;;;;
+3294;CIRCLED IDEOGRAPH NAME;So;0;L;<circle> 540D;;;;N;;;;;
+3295;CIRCLED IDEOGRAPH SPECIAL;So;0;L;<circle> 7279;;;;N;;;;;
+3296;CIRCLED IDEOGRAPH FINANCIAL;So;0;L;<circle> 8CA1;;;;N;;;;;
+3297;CIRCLED IDEOGRAPH CONGRATULATION;So;0;L;<circle> 795D;;;;N;;;;;
+3298;CIRCLED IDEOGRAPH LABOR;So;0;L;<circle> 52B4;;;;N;;;;;
+3299;CIRCLED IDEOGRAPH SECRET;So;0;L;<circle> 79D8;;;;N;;;;;
+329A;CIRCLED IDEOGRAPH MALE;So;0;L;<circle> 7537;;;;N;;;;;
+329B;CIRCLED IDEOGRAPH FEMALE;So;0;L;<circle> 5973;;;;N;;;;;
+329C;CIRCLED IDEOGRAPH SUITABLE;So;0;L;<circle> 9069;;;;N;;;;;
+329D;CIRCLED IDEOGRAPH EXCELLENT;So;0;L;<circle> 512A;;;;N;;;;;
+329E;CIRCLED IDEOGRAPH PRINT;So;0;L;<circle> 5370;;;;N;;;;;
+329F;CIRCLED IDEOGRAPH ATTENTION;So;0;L;<circle> 6CE8;;;;N;;;;;
+32A0;CIRCLED IDEOGRAPH ITEM;So;0;L;<circle> 9805;;;;N;;;;;
+32A1;CIRCLED IDEOGRAPH REST;So;0;L;<circle> 4F11;;;;N;;;;;
+32A2;CIRCLED IDEOGRAPH COPY;So;0;L;<circle> 5199;;;;N;;;;;
+32A3;CIRCLED IDEOGRAPH CORRECT;So;0;L;<circle> 6B63;;;;N;;;;;
+32A4;CIRCLED IDEOGRAPH HIGH;So;0;L;<circle> 4E0A;;;;N;;;;;
+32A5;CIRCLED IDEOGRAPH CENTRE;So;0;L;<circle> 4E2D;;;;N;CIRCLED IDEOGRAPH CENTER;;;;
+32A6;CIRCLED IDEOGRAPH LOW;So;0;L;<circle> 4E0B;;;;N;;;;;
+32A7;CIRCLED IDEOGRAPH LEFT;So;0;L;<circle> 5DE6;;;;N;;;;;
+32A8;CIRCLED IDEOGRAPH RIGHT;So;0;L;<circle> 53F3;;;;N;;;;;
+32A9;CIRCLED IDEOGRAPH MEDICINE;So;0;L;<circle> 533B;;;;N;;;;;
+32AA;CIRCLED IDEOGRAPH RELIGION;So;0;L;<circle> 5B97;;;;N;;;;;
+32AB;CIRCLED IDEOGRAPH STUDY;So;0;L;<circle> 5B66;;;;N;;;;;
+32AC;CIRCLED IDEOGRAPH SUPERVISE;So;0;L;<circle> 76E3;;;;N;;;;;
+32AD;CIRCLED IDEOGRAPH ENTERPRISE;So;0;L;<circle> 4F01;;;;N;;;;;
+32AE;CIRCLED IDEOGRAPH RESOURCE;So;0;L;<circle> 8CC7;;;;N;;;;;
+32AF;CIRCLED IDEOGRAPH ALLIANCE;So;0;L;<circle> 5354;;;;N;;;;;
+32B0;CIRCLED IDEOGRAPH NIGHT;So;0;L;<circle> 591C;;;;N;;;;;
+32C0;IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY;So;0;L;<compat> 0031 6708;;;;N;;;;;
+32C1;IDEOGRAPHIC TELEGRAPH SYMBOL FOR FEBRUARY;So;0;L;<compat> 0032 6708;;;;N;;;;;
+32C2;IDEOGRAPHIC TELEGRAPH SYMBOL FOR MARCH;So;0;L;<compat> 0033 6708;;;;N;;;;;
+32C3;IDEOGRAPHIC TELEGRAPH SYMBOL FOR APRIL;So;0;L;<compat> 0034 6708;;;;N;;;;;
+32C4;IDEOGRAPHIC TELEGRAPH SYMBOL FOR MAY;So;0;L;<compat> 0035 6708;;;;N;;;;;
+32C5;IDEOGRAPHIC TELEGRAPH SYMBOL FOR JUNE;So;0;L;<compat> 0036 6708;;;;N;;;;;
+32C6;IDEOGRAPHIC TELEGRAPH SYMBOL FOR JULY;So;0;L;<compat> 0037 6708;;;;N;;;;;
+32C7;IDEOGRAPHIC TELEGRAPH SYMBOL FOR AUGUST;So;0;L;<compat> 0038 6708;;;;N;;;;;
+32C8;IDEOGRAPHIC TELEGRAPH SYMBOL FOR SEPTEMBER;So;0;L;<compat> 0039 6708;;;;N;;;;;
+32C9;IDEOGRAPHIC TELEGRAPH SYMBOL FOR OCTOBER;So;0;L;<compat> 0031 0030 6708;;;;N;;;;;
+32CA;IDEOGRAPHIC TELEGRAPH SYMBOL FOR NOVEMBER;So;0;L;<compat> 0031 0031 6708;;;;N;;;;;
+32CB;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER;So;0;L;<compat> 0031 0032 6708;;;;N;;;;;
+32D0;CIRCLED KATAKANA A;So;0;L;<circle> 30A2;;;;N;;;;;
+32D1;CIRCLED KATAKANA I;So;0;L;<circle> 30A4;;;;N;;;;;
+32D2;CIRCLED KATAKANA U;So;0;L;<circle> 30A6;;;;N;;;;;
+32D3;CIRCLED KATAKANA E;So;0;L;<circle> 30A8;;;;N;;;;;
+32D4;CIRCLED KATAKANA O;So;0;L;<circle> 30AA;;;;N;;;;;
+32D5;CIRCLED KATAKANA KA;So;0;L;<circle> 30AB;;;;N;;;;;
+32D6;CIRCLED KATAKANA KI;So;0;L;<circle> 30AD;;;;N;;;;;
+32D7;CIRCLED KATAKANA KU;So;0;L;<circle> 30AF;;;;N;;;;;
+32D8;CIRCLED KATAKANA KE;So;0;L;<circle> 30B1;;;;N;;;;;
+32D9;CIRCLED KATAKANA KO;So;0;L;<circle> 30B3;;;;N;;;;;
+32DA;CIRCLED KATAKANA SA;So;0;L;<circle> 30B5;;;;N;;;;;
+32DB;CIRCLED KATAKANA SI;So;0;L;<circle> 30B7;;;;N;;;;;
+32DC;CIRCLED KATAKANA SU;So;0;L;<circle> 30B9;;;;N;;;;;
+32DD;CIRCLED KATAKANA SE;So;0;L;<circle> 30BB;;;;N;;;;;
+32DE;CIRCLED KATAKANA SO;So;0;L;<circle> 30BD;;;;N;;;;;
+32DF;CIRCLED KATAKANA TA;So;0;L;<circle> 30BF;;;;N;;;;;
+32E0;CIRCLED KATAKANA TI;So;0;L;<circle> 30C1;;;;N;;;;;
+32E1;CIRCLED KATAKANA TU;So;0;L;<circle> 30C4;;;;N;;;;;
+32E2;CIRCLED KATAKANA TE;So;0;L;<circle> 30C6;;;;N;;;;;
+32E3;CIRCLED KATAKANA TO;So;0;L;<circle> 30C8;;;;N;;;;;
+32E4;CIRCLED KATAKANA NA;So;0;L;<circle> 30CA;;;;N;;;;;
+32E5;CIRCLED KATAKANA NI;So;0;L;<circle> 30CB;;;;N;;;;;
+32E6;CIRCLED KATAKANA NU;So;0;L;<circle> 30CC;;;;N;;;;;
+32E7;CIRCLED KATAKANA NE;So;0;L;<circle> 30CD;;;;N;;;;;
+32E8;CIRCLED KATAKANA NO;So;0;L;<circle> 30CE;;;;N;;;;;
+32E9;CIRCLED KATAKANA HA;So;0;L;<circle> 30CF;;;;N;;;;;
+32EA;CIRCLED KATAKANA HI;So;0;L;<circle> 30D2;;;;N;;;;;
+32EB;CIRCLED KATAKANA HU;So;0;L;<circle> 30D5;;;;N;;;;;
+32EC;CIRCLED KATAKANA HE;So;0;L;<circle> 30D8;;;;N;;;;;
+32ED;CIRCLED KATAKANA HO;So;0;L;<circle> 30DB;;;;N;;;;;
+32EE;CIRCLED KATAKANA MA;So;0;L;<circle> 30DE;;;;N;;;;;
+32EF;CIRCLED KATAKANA MI;So;0;L;<circle> 30DF;;;;N;;;;;
+32F0;CIRCLED KATAKANA MU;So;0;L;<circle> 30E0;;;;N;;;;;
+32F1;CIRCLED KATAKANA ME;So;0;L;<circle> 30E1;;;;N;;;;;
+32F2;CIRCLED KATAKANA MO;So;0;L;<circle> 30E2;;;;N;;;;;
+32F3;CIRCLED KATAKANA YA;So;0;L;<circle> 30E4;;;;N;;;;;
+32F4;CIRCLED KATAKANA YU;So;0;L;<circle> 30E6;;;;N;;;;;
+32F5;CIRCLED KATAKANA YO;So;0;L;<circle> 30E8;;;;N;;;;;
+32F6;CIRCLED KATAKANA RA;So;0;L;<circle> 30E9;;;;N;;;;;
+32F7;CIRCLED KATAKANA RI;So;0;L;<circle> 30EA;;;;N;;;;;
+32F8;CIRCLED KATAKANA RU;So;0;L;<circle> 30EB;;;;N;;;;;
+32F9;CIRCLED KATAKANA RE;So;0;L;<circle> 30EC;;;;N;;;;;
+32FA;CIRCLED KATAKANA RO;So;0;L;<circle> 30ED;;;;N;;;;;
+32FB;CIRCLED KATAKANA WA;So;0;L;<circle> 30EF;;;;N;;;;;
+32FC;CIRCLED KATAKANA WI;So;0;L;<circle> 30F0;;;;N;;;;;
+32FD;CIRCLED KATAKANA WE;So;0;L;<circle> 30F1;;;;N;;;;;
+32FE;CIRCLED KATAKANA WO;So;0;L;<circle> 30F2;;;;N;;;;;
+3300;SQUARE APAATO;So;0;L;<square> 30A2 30D1 30FC 30C8;;;;N;SQUARED APAATO;;;;
+3301;SQUARE ARUHUA;So;0;L;<square> 30A2 30EB 30D5 30A1;;;;N;SQUARED ARUHUA;;;;
+3302;SQUARE ANPEA;So;0;L;<square> 30A2 30F3 30DA 30A2;;;;N;SQUARED ANPEA;;;;
+3303;SQUARE AARU;So;0;L;<square> 30A2 30FC 30EB;;;;N;SQUARED AARU;;;;
+3304;SQUARE ININGU;So;0;L;<square> 30A4 30CB 30F3 30B0;;;;N;SQUARED ININGU;;;;
+3305;SQUARE INTI;So;0;L;<square> 30A4 30F3 30C1;;;;N;SQUARED INTI;;;;
+3306;SQUARE UON;So;0;L;<square> 30A6 30A9 30F3;;;;N;SQUARED UON;;;;
+3307;SQUARE ESUKUUDO;So;0;L;<square> 30A8 30B9 30AF 30FC 30C9;;;;N;SQUARED ESUKUUDO;;;;
+3308;SQUARE EEKAA;So;0;L;<square> 30A8 30FC 30AB 30FC;;;;N;SQUARED EEKAA;;;;
+3309;SQUARE ONSU;So;0;L;<square> 30AA 30F3 30B9;;;;N;SQUARED ONSU;;;;
+330A;SQUARE OOMU;So;0;L;<square> 30AA 30FC 30E0;;;;N;SQUARED OOMU;;;;
+330B;SQUARE KAIRI;So;0;L;<square> 30AB 30A4 30EA;;;;N;SQUARED KAIRI;;;;
+330C;SQUARE KARATTO;So;0;L;<square> 30AB 30E9 30C3 30C8;;;;N;SQUARED KARATTO;;;;
+330D;SQUARE KARORII;So;0;L;<square> 30AB 30ED 30EA 30FC;;;;N;SQUARED KARORII;;;;
+330E;SQUARE GARON;So;0;L;<square> 30AC 30ED 30F3;;;;N;SQUARED GARON;;;;
+330F;SQUARE GANMA;So;0;L;<square> 30AC 30F3 30DE;;;;N;SQUARED GANMA;;;;
+3310;SQUARE GIGA;So;0;L;<square> 30AE 30AC;;;;N;SQUARED GIGA;;;;
+3311;SQUARE GINII;So;0;L;<square> 30AE 30CB 30FC;;;;N;SQUARED GINII;;;;
+3312;SQUARE KYURII;So;0;L;<square> 30AD 30E5 30EA 30FC;;;;N;SQUARED KYURII;;;;
+3313;SQUARE GIRUDAA;So;0;L;<square> 30AE 30EB 30C0 30FC;;;;N;SQUARED GIRUDAA;;;;
+3314;SQUARE KIRO;So;0;L;<square> 30AD 30ED;;;;N;SQUARED KIRO;;;;
+3315;SQUARE KIROGURAMU;So;0;L;<square> 30AD 30ED 30B0 30E9 30E0;;;;N;SQUARED KIROGURAMU;;;;
+3316;SQUARE KIROMEETORU;So;0;L;<square> 30AD 30ED 30E1 30FC 30C8 30EB;;;;N;SQUARED KIROMEETORU;;;;
+3317;SQUARE KIROWATTO;So;0;L;<square> 30AD 30ED 30EF 30C3 30C8;;;;N;SQUARED KIROWATTO;;;;
+3318;SQUARE GURAMU;So;0;L;<square> 30B0 30E9 30E0;;;;N;SQUARED GURAMU;;;;
+3319;SQUARE GURAMUTON;So;0;L;<square> 30B0 30E9 30E0 30C8 30F3;;;;N;SQUARED GURAMUTON;;;;
+331A;SQUARE KURUZEIRO;So;0;L;<square> 30AF 30EB 30BC 30A4 30ED;;;;N;SQUARED KURUZEIRO;;;;
+331B;SQUARE KUROONE;So;0;L;<square> 30AF 30ED 30FC 30CD;;;;N;SQUARED KUROONE;;;;
+331C;SQUARE KEESU;So;0;L;<square> 30B1 30FC 30B9;;;;N;SQUARED KEESU;;;;
+331D;SQUARE KORUNA;So;0;L;<square> 30B3 30EB 30CA;;;;N;SQUARED KORUNA;;;;
+331E;SQUARE KOOPO;So;0;L;<square> 30B3 30FC 30DD;;;;N;SQUARED KOOPO;;;;
+331F;SQUARE SAIKURU;So;0;L;<square> 30B5 30A4 30AF 30EB;;;;N;SQUARED SAIKURU;;;;
+3320;SQUARE SANTIIMU;So;0;L;<square> 30B5 30F3 30C1 30FC 30E0;;;;N;SQUARED SANTIIMU;;;;
+3321;SQUARE SIRINGU;So;0;L;<square> 30B7 30EA 30F3 30B0;;;;N;SQUARED SIRINGU;;;;
+3322;SQUARE SENTI;So;0;L;<square> 30BB 30F3 30C1;;;;N;SQUARED SENTI;;;;
+3323;SQUARE SENTO;So;0;L;<square> 30BB 30F3 30C8;;;;N;SQUARED SENTO;;;;
+3324;SQUARE DAASU;So;0;L;<square> 30C0 30FC 30B9;;;;N;SQUARED DAASU;;;;
+3325;SQUARE DESI;So;0;L;<square> 30C7 30B7;;;;N;SQUARED DESI;;;;
+3326;SQUARE DORU;So;0;L;<square> 30C9 30EB;;;;N;SQUARED DORU;;;;
+3327;SQUARE TON;So;0;L;<square> 30C8 30F3;;;;N;SQUARED TON;;;;
+3328;SQUARE NANO;So;0;L;<square> 30CA 30CE;;;;N;SQUARED NANO;;;;
+3329;SQUARE NOTTO;So;0;L;<square> 30CE 30C3 30C8;;;;N;SQUARED NOTTO;;;;
+332A;SQUARE HAITU;So;0;L;<square> 30CF 30A4 30C4;;;;N;SQUARED HAITU;;;;
+332B;SQUARE PAASENTO;So;0;L;<square> 30D1 30FC 30BB 30F3 30C8;;;;N;SQUARED PAASENTO;;;;
+332C;SQUARE PAATU;So;0;L;<square> 30D1 30FC 30C4;;;;N;SQUARED PAATU;;;;
+332D;SQUARE BAARERU;So;0;L;<square> 30D0 30FC 30EC 30EB;;;;N;SQUARED BAARERU;;;;
+332E;SQUARE PIASUTORU;So;0;L;<square> 30D4 30A2 30B9 30C8 30EB;;;;N;SQUARED PIASUTORU;;;;
+332F;SQUARE PIKURU;So;0;L;<square> 30D4 30AF 30EB;;;;N;SQUARED PIKURU;;;;
+3330;SQUARE PIKO;So;0;L;<square> 30D4 30B3;;;;N;SQUARED PIKO;;;;
+3331;SQUARE BIRU;So;0;L;<square> 30D3 30EB;;;;N;SQUARED BIRU;;;;
+3332;SQUARE HUARADDO;So;0;L;<square> 30D5 30A1 30E9 30C3 30C9;;;;N;SQUARED HUARADDO;;;;
+3333;SQUARE HUIITO;So;0;L;<square> 30D5 30A3 30FC 30C8;;;;N;SQUARED HUIITO;;;;
+3334;SQUARE BUSSYERU;So;0;L;<square> 30D6 30C3 30B7 30A7 30EB;;;;N;SQUARED BUSSYERU;;;;
+3335;SQUARE HURAN;So;0;L;<square> 30D5 30E9 30F3;;;;N;SQUARED HURAN;;;;
+3336;SQUARE HEKUTAARU;So;0;L;<square> 30D8 30AF 30BF 30FC 30EB;;;;N;SQUARED HEKUTAARU;;;;
+3337;SQUARE PESO;So;0;L;<square> 30DA 30BD;;;;N;SQUARED PESO;;;;
+3338;SQUARE PENIHI;So;0;L;<square> 30DA 30CB 30D2;;;;N;SQUARED PENIHI;;;;
+3339;SQUARE HERUTU;So;0;L;<square> 30D8 30EB 30C4;;;;N;SQUARED HERUTU;;;;
+333A;SQUARE PENSU;So;0;L;<square> 30DA 30F3 30B9;;;;N;SQUARED PENSU;;;;
+333B;SQUARE PEEZI;So;0;L;<square> 30DA 30FC 30B8;;;;N;SQUARED PEEZI;;;;
+333C;SQUARE BEETA;So;0;L;<square> 30D9 30FC 30BF;;;;N;SQUARED BEETA;;;;
+333D;SQUARE POINTO;So;0;L;<square> 30DD 30A4 30F3 30C8;;;;N;SQUARED POINTO;;;;
+333E;SQUARE BORUTO;So;0;L;<square> 30DC 30EB 30C8;;;;N;SQUARED BORUTO;;;;
+333F;SQUARE HON;So;0;L;<square> 30DB 30F3;;;;N;SQUARED HON;;;;
+3340;SQUARE PONDO;So;0;L;<square> 30DD 30F3 30C9;;;;N;SQUARED PONDO;;;;
+3341;SQUARE HOORU;So;0;L;<square> 30DB 30FC 30EB;;;;N;SQUARED HOORU;;;;
+3342;SQUARE HOON;So;0;L;<square> 30DB 30FC 30F3;;;;N;SQUARED HOON;;;;
+3343;SQUARE MAIKURO;So;0;L;<square> 30DE 30A4 30AF 30ED;;;;N;SQUARED MAIKURO;;;;
+3344;SQUARE MAIRU;So;0;L;<square> 30DE 30A4 30EB;;;;N;SQUARED MAIRU;;;;
+3345;SQUARE MAHHA;So;0;L;<square> 30DE 30C3 30CF;;;;N;SQUARED MAHHA;;;;
+3346;SQUARE MARUKU;So;0;L;<square> 30DE 30EB 30AF;;;;N;SQUARED MARUKU;;;;
+3347;SQUARE MANSYON;So;0;L;<square> 30DE 30F3 30B7 30E7 30F3;;;;N;SQUARED MANSYON;;;;
+3348;SQUARE MIKURON;So;0;L;<square> 30DF 30AF 30ED 30F3;;;;N;SQUARED MIKURON;;;;
+3349;SQUARE MIRI;So;0;L;<square> 30DF 30EA;;;;N;SQUARED MIRI;;;;
+334A;SQUARE MIRIBAARU;So;0;L;<square> 30DF 30EA 30D0 30FC 30EB;;;;N;SQUARED MIRIBAARU;;;;
+334B;SQUARE MEGA;So;0;L;<square> 30E1 30AC;;;;N;SQUARED MEGA;;;;
+334C;SQUARE MEGATON;So;0;L;<square> 30E1 30AC 30C8 30F3;;;;N;SQUARED MEGATON;;;;
+334D;SQUARE MEETORU;So;0;L;<square> 30E1 30FC 30C8 30EB;;;;N;SQUARED MEETORU;;;;
+334E;SQUARE YAADO;So;0;L;<square> 30E4 30FC 30C9;;;;N;SQUARED YAADO;;;;
+334F;SQUARE YAARU;So;0;L;<square> 30E4 30FC 30EB;;;;N;SQUARED YAARU;;;;
+3350;SQUARE YUAN;So;0;L;<square> 30E6 30A2 30F3;;;;N;SQUARED YUAN;;;;
+3351;SQUARE RITTORU;So;0;L;<square> 30EA 30C3 30C8 30EB;;;;N;SQUARED RITTORU;;;;
+3352;SQUARE RIRA;So;0;L;<square> 30EA 30E9;;;;N;SQUARED RIRA;;;;
+3353;SQUARE RUPII;So;0;L;<square> 30EB 30D4 30FC;;;;N;SQUARED RUPII;;;;
+3354;SQUARE RUUBURU;So;0;L;<square> 30EB 30FC 30D6 30EB;;;;N;SQUARED RUUBURU;;;;
+3355;SQUARE REMU;So;0;L;<square> 30EC 30E0;;;;N;SQUARED REMU;;;;
+3356;SQUARE RENTOGEN;So;0;L;<square> 30EC 30F3 30C8 30B2 30F3;;;;N;SQUARED RENTOGEN;;;;
+3357;SQUARE WATTO;So;0;L;<square> 30EF 30C3 30C8;;;;N;SQUARED WATTO;;;;
+3358;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO;So;0;L;<compat> 0030 70B9;;;;N;;;;;
+3359;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ONE;So;0;L;<compat> 0031 70B9;;;;N;;;;;
+335A;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWO;So;0;L;<compat> 0032 70B9;;;;N;;;;;
+335B;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THREE;So;0;L;<compat> 0033 70B9;;;;N;;;;;
+335C;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOUR;So;0;L;<compat> 0034 70B9;;;;N;;;;;
+335D;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIVE;So;0;L;<compat> 0035 70B9;;;;N;;;;;
+335E;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIX;So;0;L;<compat> 0036 70B9;;;;N;;;;;
+335F;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVEN;So;0;L;<compat> 0037 70B9;;;;N;;;;;
+3360;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHT;So;0;L;<compat> 0038 70B9;;;;N;;;;;
+3361;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINE;So;0;L;<compat> 0039 70B9;;;;N;;;;;
+3362;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TEN;So;0;L;<compat> 0031 0030 70B9;;;;N;;;;;
+3363;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ELEVEN;So;0;L;<compat> 0031 0031 70B9;;;;N;;;;;
+3364;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWELVE;So;0;L;<compat> 0031 0032 70B9;;;;N;;;;;
+3365;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THIRTEEN;So;0;L;<compat> 0031 0033 70B9;;;;N;;;;;
+3366;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOURTEEN;So;0;L;<compat> 0031 0034 70B9;;;;N;;;;;
+3367;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIFTEEN;So;0;L;<compat> 0031 0035 70B9;;;;N;;;;;
+3368;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIXTEEN;So;0;L;<compat> 0031 0036 70B9;;;;N;;;;;
+3369;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVENTEEN;So;0;L;<compat> 0031 0037 70B9;;;;N;;;;;
+336A;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHTEEN;So;0;L;<compat> 0031 0038 70B9;;;;N;;;;;
+336B;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINETEEN;So;0;L;<compat> 0031 0039 70B9;;;;N;;;;;
+336C;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY;So;0;L;<compat> 0032 0030 70B9;;;;N;;;;;
+336D;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-ONE;So;0;L;<compat> 0032 0031 70B9;;;;N;;;;;
+336E;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-TWO;So;0;L;<compat> 0032 0032 70B9;;;;N;;;;;
+336F;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-THREE;So;0;L;<compat> 0032 0033 70B9;;;;N;;;;;
+3370;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR;So;0;L;<compat> 0032 0034 70B9;;;;N;;;;;
+3371;SQUARE HPA;So;0;L;<square> 0068 0050 0061;;;;N;;;;;
+3372;SQUARE DA;So;0;L;<square> 0064 0061;;;;N;;;;;
+3373;SQUARE AU;So;0;L;<square> 0041 0055;;;;N;;;;;
+3374;SQUARE BAR;So;0;L;<square> 0062 0061 0072;;;;N;;;;;
+3375;SQUARE OV;So;0;L;<square> 006F 0056;;;;N;;;;;
+3376;SQUARE PC;So;0;L;<square> 0070 0063;;;;N;;;;;
+337B;SQUARE ERA NAME HEISEI;So;0;L;<square> 5E73 6210;;;;N;SQUARED TWO IDEOGRAPHS ERA NAME HEISEI;;;;
+337C;SQUARE ERA NAME SYOUWA;So;0;L;<square> 662D 548C;;;;N;SQUARED TWO IDEOGRAPHS ERA NAME SYOUWA;;;;
+337D;SQUARE ERA NAME TAISYOU;So;0;L;<square> 5927 6B63;;;;N;SQUARED TWO IDEOGRAPHS ERA NAME TAISYOU;;;;
+337E;SQUARE ERA NAME MEIZI;So;0;L;<square> 660E 6CBB;;;;N;SQUARED TWO IDEOGRAPHS ERA NAME MEIZI;;;;
+337F;SQUARE CORPORATION;So;0;L;<square> 682A 5F0F 4F1A 793E;;;;N;SQUARED FOUR IDEOGRAPHS CORPORATION;;;;
+3380;SQUARE PA AMPS;So;0;L;<square> 0070 0041;;;;N;SQUARED PA AMPS;;;;
+3381;SQUARE NA;So;0;L;<square> 006E 0041;;;;N;SQUARED NA;;;;
+3382;SQUARE MU A;So;0;L;<square> 03BC 0041;;;;N;SQUARED MU A;;;;
+3383;SQUARE MA;So;0;L;<square> 006D 0041;;;;N;SQUARED MA;;;;
+3384;SQUARE KA;So;0;L;<square> 006B 0041;;;;N;SQUARED KA;;;;
+3385;SQUARE KB;So;0;L;<square> 004B 0042;;;;N;SQUARED KB;;;;
+3386;SQUARE MB;So;0;L;<square> 004D 0042;;;;N;SQUARED MB;;;;
+3387;SQUARE GB;So;0;L;<square> 0047 0042;;;;N;SQUARED GB;;;;
+3388;SQUARE CAL;So;0;L;<square> 0063 0061 006C;;;;N;SQUARED CAL;;;;
+3389;SQUARE KCAL;So;0;L;<square> 006B 0063 0061 006C;;;;N;SQUARED KCAL;;;;
+338A;SQUARE PF;So;0;L;<square> 0070 0046;;;;N;SQUARED PF;;;;
+338B;SQUARE NF;So;0;L;<square> 006E 0046;;;;N;SQUARED NF;;;;
+338C;SQUARE MU F;So;0;L;<square> 03BC 0046;;;;N;SQUARED MU F;;;;
+338D;SQUARE MU G;So;0;L;<square> 03BC 0067;;;;N;SQUARED MU G;;;;
+338E;SQUARE MG;So;0;L;<square> 006D 0067;;;;N;SQUARED MG;;;;
+338F;SQUARE KG;So;0;L;<square> 006B 0067;;;;N;SQUARED KG;;;;
+3390;SQUARE HZ;So;0;L;<square> 0048 007A;;;;N;SQUARED HZ;;;;
+3391;SQUARE KHZ;So;0;L;<square> 006B 0048 007A;;;;N;SQUARED KHZ;;;;
+3392;SQUARE MHZ;So;0;L;<square> 004D 0048 007A;;;;N;SQUARED MHZ;;;;
+3393;SQUARE GHZ;So;0;L;<square> 0047 0048 007A;;;;N;SQUARED GHZ;;;;
+3394;SQUARE THZ;So;0;L;<square> 0054 0048 007A;;;;N;SQUARED THZ;;;;
+3395;SQUARE MU L;So;0;L;<square> 03BC 2113;;;;N;SQUARED MU L;;;;
+3396;SQUARE ML;So;0;L;<square> 006D 2113;;;;N;SQUARED ML;;;;
+3397;SQUARE DL;So;0;L;<square> 0064 2113;;;;N;SQUARED DL;;;;
+3398;SQUARE KL;So;0;L;<square> 006B 2113;;;;N;SQUARED KL;;;;
+3399;SQUARE FM;So;0;L;<square> 0066 006D;;;;N;SQUARED FM;;;;
+339A;SQUARE NM;So;0;L;<square> 006E 006D;;;;N;SQUARED NM;;;;
+339B;SQUARE MU M;So;0;L;<square> 03BC 006D;;;;N;SQUARED MU M;;;;
+339C;SQUARE MM;So;0;L;<square> 006D 006D;;;;N;SQUARED MM;;;;
+339D;SQUARE CM;So;0;L;<square> 0063 006D;;;;N;SQUARED CM;;;;
+339E;SQUARE KM;So;0;L;<square> 006B 006D;;;;N;SQUARED KM;;;;
+339F;SQUARE MM SQUARED;So;0;L;<square> 006D 006D 00B2;;;;N;SQUARED MM SQUARED;;;;
+33A0;SQUARE CM SQUARED;So;0;L;<square> 0063 006D 00B2;;;;N;SQUARED CM SQUARED;;;;
+33A1;SQUARE M SQUARED;So;0;L;<square> 006D 00B2;;;;N;SQUARED M SQUARED;;;;
+33A2;SQUARE KM SQUARED;So;0;L;<square> 006B 006D 00B2;;;;N;SQUARED KM SQUARED;;;;
+33A3;SQUARE MM CUBED;So;0;L;<square> 006D 006D 00B3;;;;N;SQUARED MM CUBED;;;;
+33A4;SQUARE CM CUBED;So;0;L;<square> 0063 006D 00B3;;;;N;SQUARED CM CUBED;;;;
+33A5;SQUARE M CUBED;So;0;L;<square> 006D 00B3;;;;N;SQUARED M CUBED;;;;
+33A6;SQUARE KM CUBED;So;0;L;<square> 006B 006D 00B3;;;;N;SQUARED KM CUBED;;;;
+33A7;SQUARE M OVER S;So;0;L;<square> 006D 2215 0073;;;;N;SQUARED M OVER S;;;;
+33A8;SQUARE M OVER S SQUARED;So;0;L;<square> 006D 2215 0073 00B2;;;;N;SQUARED M OVER S SQUARED;;;;
+33A9;SQUARE PA;So;0;L;<square> 0050 0061;;;;N;SQUARED PA;;;;
+33AA;SQUARE KPA;So;0;L;<square> 006B 0050 0061;;;;N;SQUARED KPA;;;;
+33AB;SQUARE MPA;So;0;L;<square> 004D 0050 0061;;;;N;SQUARED MPA;;;;
+33AC;SQUARE GPA;So;0;L;<square> 0047 0050 0061;;;;N;SQUARED GPA;;;;
+33AD;SQUARE RAD;So;0;L;<square> 0072 0061 0064;;;;N;SQUARED RAD;;;;
+33AE;SQUARE RAD OVER S;So;0;L;<square> 0072 0061 0064 2215 0073;;;;N;SQUARED RAD OVER S;;;;
+33AF;SQUARE RAD OVER S SQUARED;So;0;L;<square> 0072 0061 0064 2215 0073 00B2;;;;N;SQUARED RAD OVER S SQUARED;;;;
+33B0;SQUARE PS;So;0;L;<square> 0070 0073;;;;N;SQUARED PS;;;;
+33B1;SQUARE NS;So;0;L;<square> 006E 0073;;;;N;SQUARED NS;;;;
+33B2;SQUARE MU S;So;0;L;<square> 03BC 0073;;;;N;SQUARED MU S;;;;
+33B3;SQUARE MS;So;0;L;<square> 006D 0073;;;;N;SQUARED MS;;;;
+33B4;SQUARE PV;So;0;L;<square> 0070 0056;;;;N;SQUARED PV;;;;
+33B5;SQUARE NV;So;0;L;<square> 006E 0056;;;;N;SQUARED NV;;;;
+33B6;SQUARE MU V;So;0;L;<square> 03BC 0056;;;;N;SQUARED MU V;;;;
+33B7;SQUARE MV;So;0;L;<square> 006D 0056;;;;N;SQUARED MV;;;;
+33B8;SQUARE KV;So;0;L;<square> 006B 0056;;;;N;SQUARED KV;;;;
+33B9;SQUARE MV MEGA;So;0;L;<square> 004D 0056;;;;N;SQUARED MV MEGA;;;;
+33BA;SQUARE PW;So;0;L;<square> 0070 0057;;;;N;SQUARED PW;;;;
+33BB;SQUARE NW;So;0;L;<square> 006E 0057;;;;N;SQUARED NW;;;;
+33BC;SQUARE MU W;So;0;L;<square> 03BC 0057;;;;N;SQUARED MU W;;;;
+33BD;SQUARE MW;So;0;L;<square> 006D 0057;;;;N;SQUARED MW;;;;
+33BE;SQUARE KW;So;0;L;<square> 006B 0057;;;;N;SQUARED KW;;;;
+33BF;SQUARE MW MEGA;So;0;L;<square> 004D 0057;;;;N;SQUARED MW MEGA;;;;
+33C0;SQUARE K OHM;So;0;L;<square> 006B 03A9;;;;N;SQUARED K OHM;;;;
+33C1;SQUARE M OHM;So;0;L;<square> 004D 03A9;;;;N;SQUARED M OHM;;;;
+33C2;SQUARE AM;So;0;L;<square> 0061 002E 006D 002E;;;;N;SQUARED AM;;;;
+33C3;SQUARE BQ;So;0;L;<square> 0042 0071;;;;N;SQUARED BQ;;;;
+33C4;SQUARE CC;So;0;L;<square> 0063 0063;;;;N;SQUARED CC;;;;
+33C5;SQUARE CD;So;0;L;<square> 0063 0064;;;;N;SQUARED CD;;;;
+33C6;SQUARE C OVER KG;So;0;L;<square> 0043 2215 006B 0067;;;;N;SQUARED C OVER KG;;;;
+33C7;SQUARE CO;So;0;L;<square> 0043 006F 002E;;;;N;SQUARED CO;;;;
+33C8;SQUARE DB;So;0;L;<square> 0064 0042;;;;N;SQUARED DB;;;;
+33C9;SQUARE GY;So;0;L;<square> 0047 0079;;;;N;SQUARED GY;;;;
+33CA;SQUARE HA;So;0;L;<square> 0068 0061;;;;N;SQUARED HA;;;;
+33CB;SQUARE HP;So;0;L;<square> 0048 0050;;;;N;SQUARED HP;;;;
+33CC;SQUARE IN;So;0;L;<square> 0069 006E;;;;N;SQUARED IN;;;;
+33CD;SQUARE KK;So;0;L;<square> 004B 004B;;;;N;SQUARED KK;;;;
+33CE;SQUARE KM CAPITAL;So;0;L;<square> 004B 004D;;;;N;SQUARED KM CAPITAL;;;;
+33CF;SQUARE KT;So;0;L;<square> 006B 0074;;;;N;SQUARED KT;;;;
+33D0;SQUARE LM;So;0;L;<square> 006C 006D;;;;N;SQUARED LM;;;;
+33D1;SQUARE LN;So;0;L;<square> 006C 006E;;;;N;SQUARED LN;;;;
+33D2;SQUARE LOG;So;0;L;<square> 006C 006F 0067;;;;N;SQUARED LOG;;;;
+33D3;SQUARE LX;So;0;L;<square> 006C 0078;;;;N;SQUARED LX;;;;
+33D4;SQUARE MB SMALL;So;0;L;<square> 006D 0062;;;;N;SQUARED MB SMALL;;;;
+33D5;SQUARE MIL;So;0;L;<square> 006D 0069 006C;;;;N;SQUARED MIL;;;;
+33D6;SQUARE MOL;So;0;L;<square> 006D 006F 006C;;;;N;SQUARED MOL;;;;
+33D7;SQUARE PH;So;0;L;<square> 0050 0048;;;;N;SQUARED PH;;;;
+33D8;SQUARE PM;So;0;L;<square> 0070 002E 006D 002E;;;;N;SQUARED PM;;;;
+33D9;SQUARE PPM;So;0;L;<square> 0050 0050 004D;;;;N;SQUARED PPM;;;;
+33DA;SQUARE PR;So;0;L;<square> 0050 0052;;;;N;SQUARED PR;;;;
+33DB;SQUARE SR;So;0;L;<square> 0073 0072;;;;N;SQUARED SR;;;;
+33DC;SQUARE SV;So;0;L;<square> 0053 0076;;;;N;SQUARED SV;;;;
+33DD;SQUARE WB;So;0;L;<square> 0057 0062;;;;N;SQUARED WB;;;;
+33E0;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ONE;So;0;L;<compat> 0031 65E5;;;;N;;;;;
+33E1;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWO;So;0;L;<compat> 0032 65E5;;;;N;;;;;
+33E2;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THREE;So;0;L;<compat> 0033 65E5;;;;N;;;;;
+33E3;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOUR;So;0;L;<compat> 0034 65E5;;;;N;;;;;
+33E4;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIVE;So;0;L;<compat> 0035 65E5;;;;N;;;;;
+33E5;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIX;So;0;L;<compat> 0036 65E5;;;;N;;;;;
+33E6;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVEN;So;0;L;<compat> 0037 65E5;;;;N;;;;;
+33E7;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHT;So;0;L;<compat> 0038 65E5;;;;N;;;;;
+33E8;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINE;So;0;L;<compat> 0039 65E5;;;;N;;;;;
+33E9;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TEN;So;0;L;<compat> 0031 0030 65E5;;;;N;;;;;
+33EA;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ELEVEN;So;0;L;<compat> 0031 0031 65E5;;;;N;;;;;
+33EB;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWELVE;So;0;L;<compat> 0031 0032 65E5;;;;N;;;;;
+33EC;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTEEN;So;0;L;<compat> 0031 0033 65E5;;;;N;;;;;
+33ED;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOURTEEN;So;0;L;<compat> 0031 0034 65E5;;;;N;;;;;
+33EE;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIFTEEN;So;0;L;<compat> 0031 0035 65E5;;;;N;;;;;
+33EF;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIXTEEN;So;0;L;<compat> 0031 0036 65E5;;;;N;;;;;
+33F0;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVENTEEN;So;0;L;<compat> 0031 0037 65E5;;;;N;;;;;
+33F1;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHTEEN;So;0;L;<compat> 0031 0038 65E5;;;;N;;;;;
+33F2;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINETEEN;So;0;L;<compat> 0031 0039 65E5;;;;N;;;;;
+33F3;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY;So;0;L;<compat> 0032 0030 65E5;;;;N;;;;;
+33F4;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-ONE;So;0;L;<compat> 0032 0031 65E5;;;;N;;;;;
+33F5;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-TWO;So;0;L;<compat> 0032 0032 65E5;;;;N;;;;;
+33F6;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-THREE;So;0;L;<compat> 0032 0033 65E5;;;;N;;;;;
+33F7;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FOUR;So;0;L;<compat> 0032 0034 65E5;;;;N;;;;;
+33F8;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FIVE;So;0;L;<compat> 0032 0035 65E5;;;;N;;;;;
+33F9;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SIX;So;0;L;<compat> 0032 0036 65E5;;;;N;;;;;
+33FA;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SEVEN;So;0;L;<compat> 0032 0037 65E5;;;;N;;;;;
+33FB;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-EIGHT;So;0;L;<compat> 0032 0038 65E5;;;;N;;;;;
+33FC;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-NINE;So;0;L;<compat> 0032 0039 65E5;;;;N;;;;;
+33FD;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY;So;0;L;<compat> 0033 0030 65E5;;;;N;;;;;
+33FE;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE;So;0;L;<compat> 0033 0031 65E5;;;;N;;;;;
+3400;<CJK Ideograph Extension A, First>;Lo;0;L;;;;;N;;;;;
+4DB5;<CJK Ideograph Extension A, Last>;Lo;0;L;;;;;N;;;;;
+4E00;<CJK Ideograph, First>;Lo;0;L;;;;;N;;;;;
+9FA5;<CJK Ideograph, Last>;Lo;0;L;;;;;N;;;;;
+A000;YI SYLLABLE IT;Lo;0;L;;;;;N;;;;;
+A001;YI SYLLABLE IX;Lo;0;L;;;;;N;;;;;
+A002;YI SYLLABLE I;Lo;0;L;;;;;N;;;;;
+A003;YI SYLLABLE IP;Lo;0;L;;;;;N;;;;;
+A004;YI SYLLABLE IET;Lo;0;L;;;;;N;;;;;
+A005;YI SYLLABLE IEX;Lo;0;L;;;;;N;;;;;
+A006;YI SYLLABLE IE;Lo;0;L;;;;;N;;;;;
+A007;YI SYLLABLE IEP;Lo;0;L;;;;;N;;;;;
+A008;YI SYLLABLE AT;Lo;0;L;;;;;N;;;;;
+A009;YI SYLLABLE AX;Lo;0;L;;;;;N;;;;;
+A00A;YI SYLLABLE A;Lo;0;L;;;;;N;;;;;
+A00B;YI SYLLABLE AP;Lo;0;L;;;;;N;;;;;
+A00C;YI SYLLABLE UOX;Lo;0;L;;;;;N;;;;;
+A00D;YI SYLLABLE UO;Lo;0;L;;;;;N;;;;;
+A00E;YI SYLLABLE UOP;Lo;0;L;;;;;N;;;;;
+A00F;YI SYLLABLE OT;Lo;0;L;;;;;N;;;;;
+A010;YI SYLLABLE OX;Lo;0;L;;;;;N;;;;;
+A011;YI SYLLABLE O;Lo;0;L;;;;;N;;;;;
+A012;YI SYLLABLE OP;Lo;0;L;;;;;N;;;;;
+A013;YI SYLLABLE EX;Lo;0;L;;;;;N;;;;;
+A014;YI SYLLABLE E;Lo;0;L;;;;;N;;;;;
+A015;YI SYLLABLE WU;Lo;0;L;;;;;N;;;;;
+A016;YI SYLLABLE BIT;Lo;0;L;;;;;N;;;;;
+A017;YI SYLLABLE BIX;Lo;0;L;;;;;N;;;;;
+A018;YI SYLLABLE BI;Lo;0;L;;;;;N;;;;;
+A019;YI SYLLABLE BIP;Lo;0;L;;;;;N;;;;;
+A01A;YI SYLLABLE BIET;Lo;0;L;;;;;N;;;;;
+A01B;YI SYLLABLE BIEX;Lo;0;L;;;;;N;;;;;
+A01C;YI SYLLABLE BIE;Lo;0;L;;;;;N;;;;;
+A01D;YI SYLLABLE BIEP;Lo;0;L;;;;;N;;;;;
+A01E;YI SYLLABLE BAT;Lo;0;L;;;;;N;;;;;
+A01F;YI SYLLABLE BAX;Lo;0;L;;;;;N;;;;;
+A020;YI SYLLABLE BA;Lo;0;L;;;;;N;;;;;
+A021;YI SYLLABLE BAP;Lo;0;L;;;;;N;;;;;
+A022;YI SYLLABLE BUOX;Lo;0;L;;;;;N;;;;;
+A023;YI SYLLABLE BUO;Lo;0;L;;;;;N;;;;;
+A024;YI SYLLABLE BUOP;Lo;0;L;;;;;N;;;;;
+A025;YI SYLLABLE BOT;Lo;0;L;;;;;N;;;;;
+A026;YI SYLLABLE BOX;Lo;0;L;;;;;N;;;;;
+A027;YI SYLLABLE BO;Lo;0;L;;;;;N;;;;;
+A028;YI SYLLABLE BOP;Lo;0;L;;;;;N;;;;;
+A029;YI SYLLABLE BEX;Lo;0;L;;;;;N;;;;;
+A02A;YI SYLLABLE BE;Lo;0;L;;;;;N;;;;;
+A02B;YI SYLLABLE BEP;Lo;0;L;;;;;N;;;;;
+A02C;YI SYLLABLE BUT;Lo;0;L;;;;;N;;;;;
+A02D;YI SYLLABLE BUX;Lo;0;L;;;;;N;;;;;
+A02E;YI SYLLABLE BU;Lo;0;L;;;;;N;;;;;
+A02F;YI SYLLABLE BUP;Lo;0;L;;;;;N;;;;;
+A030;YI SYLLABLE BURX;Lo;0;L;;;;;N;;;;;
+A031;YI SYLLABLE BUR;Lo;0;L;;;;;N;;;;;
+A032;YI SYLLABLE BYT;Lo;0;L;;;;;N;;;;;
+A033;YI SYLLABLE BYX;Lo;0;L;;;;;N;;;;;
+A034;YI SYLLABLE BY;Lo;0;L;;;;;N;;;;;
+A035;YI SYLLABLE BYP;Lo;0;L;;;;;N;;;;;
+A036;YI SYLLABLE BYRX;Lo;0;L;;;;;N;;;;;
+A037;YI SYLLABLE BYR;Lo;0;L;;;;;N;;;;;
+A038;YI SYLLABLE PIT;Lo;0;L;;;;;N;;;;;
+A039;YI SYLLABLE PIX;Lo;0;L;;;;;N;;;;;
+A03A;YI SYLLABLE PI;Lo;0;L;;;;;N;;;;;
+A03B;YI SYLLABLE PIP;Lo;0;L;;;;;N;;;;;
+A03C;YI SYLLABLE PIEX;Lo;0;L;;;;;N;;;;;
+A03D;YI SYLLABLE PIE;Lo;0;L;;;;;N;;;;;
+A03E;YI SYLLABLE PIEP;Lo;0;L;;;;;N;;;;;
+A03F;YI SYLLABLE PAT;Lo;0;L;;;;;N;;;;;
+A040;YI SYLLABLE PAX;Lo;0;L;;;;;N;;;;;
+A041;YI SYLLABLE PA;Lo;0;L;;;;;N;;;;;
+A042;YI SYLLABLE PAP;Lo;0;L;;;;;N;;;;;
+A043;YI SYLLABLE PUOX;Lo;0;L;;;;;N;;;;;
+A044;YI SYLLABLE PUO;Lo;0;L;;;;;N;;;;;
+A045;YI SYLLABLE PUOP;Lo;0;L;;;;;N;;;;;
+A046;YI SYLLABLE POT;Lo;0;L;;;;;N;;;;;
+A047;YI SYLLABLE POX;Lo;0;L;;;;;N;;;;;
+A048;YI SYLLABLE PO;Lo;0;L;;;;;N;;;;;
+A049;YI SYLLABLE POP;Lo;0;L;;;;;N;;;;;
+A04A;YI SYLLABLE PUT;Lo;0;L;;;;;N;;;;;
+A04B;YI SYLLABLE PUX;Lo;0;L;;;;;N;;;;;
+A04C;YI SYLLABLE PU;Lo;0;L;;;;;N;;;;;
+A04D;YI SYLLABLE PUP;Lo;0;L;;;;;N;;;;;
+A04E;YI SYLLABLE PURX;Lo;0;L;;;;;N;;;;;
+A04F;YI SYLLABLE PUR;Lo;0;L;;;;;N;;;;;
+A050;YI SYLLABLE PYT;Lo;0;L;;;;;N;;;;;
+A051;YI SYLLABLE PYX;Lo;0;L;;;;;N;;;;;
+A052;YI SYLLABLE PY;Lo;0;L;;;;;N;;;;;
+A053;YI SYLLABLE PYP;Lo;0;L;;;;;N;;;;;
+A054;YI SYLLABLE PYRX;Lo;0;L;;;;;N;;;;;
+A055;YI SYLLABLE PYR;Lo;0;L;;;;;N;;;;;
+A056;YI SYLLABLE BBIT;Lo;0;L;;;;;N;;;;;
+A057;YI SYLLABLE BBIX;Lo;0;L;;;;;N;;;;;
+A058;YI SYLLABLE BBI;Lo;0;L;;;;;N;;;;;
+A059;YI SYLLABLE BBIP;Lo;0;L;;;;;N;;;;;
+A05A;YI SYLLABLE BBIET;Lo;0;L;;;;;N;;;;;
+A05B;YI SYLLABLE BBIEX;Lo;0;L;;;;;N;;;;;
+A05C;YI SYLLABLE BBIE;Lo;0;L;;;;;N;;;;;
+A05D;YI SYLLABLE BBIEP;Lo;0;L;;;;;N;;;;;
+A05E;YI SYLLABLE BBAT;Lo;0;L;;;;;N;;;;;
+A05F;YI SYLLABLE BBAX;Lo;0;L;;;;;N;;;;;
+A060;YI SYLLABLE BBA;Lo;0;L;;;;;N;;;;;
+A061;YI SYLLABLE BBAP;Lo;0;L;;;;;N;;;;;
+A062;YI SYLLABLE BBUOX;Lo;0;L;;;;;N;;;;;
+A063;YI SYLLABLE BBUO;Lo;0;L;;;;;N;;;;;
+A064;YI SYLLABLE BBUOP;Lo;0;L;;;;;N;;;;;
+A065;YI SYLLABLE BBOT;Lo;0;L;;;;;N;;;;;
+A066;YI SYLLABLE BBOX;Lo;0;L;;;;;N;;;;;
+A067;YI SYLLABLE BBO;Lo;0;L;;;;;N;;;;;
+A068;YI SYLLABLE BBOP;Lo;0;L;;;;;N;;;;;
+A069;YI SYLLABLE BBEX;Lo;0;L;;;;;N;;;;;
+A06A;YI SYLLABLE BBE;Lo;0;L;;;;;N;;;;;
+A06B;YI SYLLABLE BBEP;Lo;0;L;;;;;N;;;;;
+A06C;YI SYLLABLE BBUT;Lo;0;L;;;;;N;;;;;
+A06D;YI SYLLABLE BBUX;Lo;0;L;;;;;N;;;;;
+A06E;YI SYLLABLE BBU;Lo;0;L;;;;;N;;;;;
+A06F;YI SYLLABLE BBUP;Lo;0;L;;;;;N;;;;;
+A070;YI SYLLABLE BBURX;Lo;0;L;;;;;N;;;;;
+A071;YI SYLLABLE BBUR;Lo;0;L;;;;;N;;;;;
+A072;YI SYLLABLE BBYT;Lo;0;L;;;;;N;;;;;
+A073;YI SYLLABLE BBYX;Lo;0;L;;;;;N;;;;;
+A074;YI SYLLABLE BBY;Lo;0;L;;;;;N;;;;;
+A075;YI SYLLABLE BBYP;Lo;0;L;;;;;N;;;;;
+A076;YI SYLLABLE NBIT;Lo;0;L;;;;;N;;;;;
+A077;YI SYLLABLE NBIX;Lo;0;L;;;;;N;;;;;
+A078;YI SYLLABLE NBI;Lo;0;L;;;;;N;;;;;
+A079;YI SYLLABLE NBIP;Lo;0;L;;;;;N;;;;;
+A07A;YI SYLLABLE NBIEX;Lo;0;L;;;;;N;;;;;
+A07B;YI SYLLABLE NBIE;Lo;0;L;;;;;N;;;;;
+A07C;YI SYLLABLE NBIEP;Lo;0;L;;;;;N;;;;;
+A07D;YI SYLLABLE NBAT;Lo;0;L;;;;;N;;;;;
+A07E;YI SYLLABLE NBAX;Lo;0;L;;;;;N;;;;;
+A07F;YI SYLLABLE NBA;Lo;0;L;;;;;N;;;;;
+A080;YI SYLLABLE NBAP;Lo;0;L;;;;;N;;;;;
+A081;YI SYLLABLE NBOT;Lo;0;L;;;;;N;;;;;
+A082;YI SYLLABLE NBOX;Lo;0;L;;;;;N;;;;;
+A083;YI SYLLABLE NBO;Lo;0;L;;;;;N;;;;;
+A084;YI SYLLABLE NBOP;Lo;0;L;;;;;N;;;;;
+A085;YI SYLLABLE NBUT;Lo;0;L;;;;;N;;;;;
+A086;YI SYLLABLE NBUX;Lo;0;L;;;;;N;;;;;
+A087;YI SYLLABLE NBU;Lo;0;L;;;;;N;;;;;
+A088;YI SYLLABLE NBUP;Lo;0;L;;;;;N;;;;;
+A089;YI SYLLABLE NBURX;Lo;0;L;;;;;N;;;;;
+A08A;YI SYLLABLE NBUR;Lo;0;L;;;;;N;;;;;
+A08B;YI SYLLABLE NBYT;Lo;0;L;;;;;N;;;;;
+A08C;YI SYLLABLE NBYX;Lo;0;L;;;;;N;;;;;
+A08D;YI SYLLABLE NBY;Lo;0;L;;;;;N;;;;;
+A08E;YI SYLLABLE NBYP;Lo;0;L;;;;;N;;;;;
+A08F;YI SYLLABLE NBYRX;Lo;0;L;;;;;N;;;;;
+A090;YI SYLLABLE NBYR;Lo;0;L;;;;;N;;;;;
+A091;YI SYLLABLE HMIT;Lo;0;L;;;;;N;;;;;
+A092;YI SYLLABLE HMIX;Lo;0;L;;;;;N;;;;;
+A093;YI SYLLABLE HMI;Lo;0;L;;;;;N;;;;;
+A094;YI SYLLABLE HMIP;Lo;0;L;;;;;N;;;;;
+A095;YI SYLLABLE HMIEX;Lo;0;L;;;;;N;;;;;
+A096;YI SYLLABLE HMIE;Lo;0;L;;;;;N;;;;;
+A097;YI SYLLABLE HMIEP;Lo;0;L;;;;;N;;;;;
+A098;YI SYLLABLE HMAT;Lo;0;L;;;;;N;;;;;
+A099;YI SYLLABLE HMAX;Lo;0;L;;;;;N;;;;;
+A09A;YI SYLLABLE HMA;Lo;0;L;;;;;N;;;;;
+A09B;YI SYLLABLE HMAP;Lo;0;L;;;;;N;;;;;
+A09C;YI SYLLABLE HMUOX;Lo;0;L;;;;;N;;;;;
+A09D;YI SYLLABLE HMUO;Lo;0;L;;;;;N;;;;;
+A09E;YI SYLLABLE HMUOP;Lo;0;L;;;;;N;;;;;
+A09F;YI SYLLABLE HMOT;Lo;0;L;;;;;N;;;;;
+A0A0;YI SYLLABLE HMOX;Lo;0;L;;;;;N;;;;;
+A0A1;YI SYLLABLE HMO;Lo;0;L;;;;;N;;;;;
+A0A2;YI SYLLABLE HMOP;Lo;0;L;;;;;N;;;;;
+A0A3;YI SYLLABLE HMUT;Lo;0;L;;;;;N;;;;;
+A0A4;YI SYLLABLE HMUX;Lo;0;L;;;;;N;;;;;
+A0A5;YI SYLLABLE HMU;Lo;0;L;;;;;N;;;;;
+A0A6;YI SYLLABLE HMUP;Lo;0;L;;;;;N;;;;;
+A0A7;YI SYLLABLE HMURX;Lo;0;L;;;;;N;;;;;
+A0A8;YI SYLLABLE HMUR;Lo;0;L;;;;;N;;;;;
+A0A9;YI SYLLABLE HMYX;Lo;0;L;;;;;N;;;;;
+A0AA;YI SYLLABLE HMY;Lo;0;L;;;;;N;;;;;
+A0AB;YI SYLLABLE HMYP;Lo;0;L;;;;;N;;;;;
+A0AC;YI SYLLABLE HMYRX;Lo;0;L;;;;;N;;;;;
+A0AD;YI SYLLABLE HMYR;Lo;0;L;;;;;N;;;;;
+A0AE;YI SYLLABLE MIT;Lo;0;L;;;;;N;;;;;
+A0AF;YI SYLLABLE MIX;Lo;0;L;;;;;N;;;;;
+A0B0;YI SYLLABLE MI;Lo;0;L;;;;;N;;;;;
+A0B1;YI SYLLABLE MIP;Lo;0;L;;;;;N;;;;;
+A0B2;YI SYLLABLE MIEX;Lo;0;L;;;;;N;;;;;
+A0B3;YI SYLLABLE MIE;Lo;0;L;;;;;N;;;;;
+A0B4;YI SYLLABLE MIEP;Lo;0;L;;;;;N;;;;;
+A0B5;YI SYLLABLE MAT;Lo;0;L;;;;;N;;;;;
+A0B6;YI SYLLABLE MAX;Lo;0;L;;;;;N;;;;;
+A0B7;YI SYLLABLE MA;Lo;0;L;;;;;N;;;;;
+A0B8;YI SYLLABLE MAP;Lo;0;L;;;;;N;;;;;
+A0B9;YI SYLLABLE MUOT;Lo;0;L;;;;;N;;;;;
+A0BA;YI SYLLABLE MUOX;Lo;0;L;;;;;N;;;;;
+A0BB;YI SYLLABLE MUO;Lo;0;L;;;;;N;;;;;
+A0BC;YI SYLLABLE MUOP;Lo;0;L;;;;;N;;;;;
+A0BD;YI SYLLABLE MOT;Lo;0;L;;;;;N;;;;;
+A0BE;YI SYLLABLE MOX;Lo;0;L;;;;;N;;;;;
+A0BF;YI SYLLABLE MO;Lo;0;L;;;;;N;;;;;
+A0C0;YI SYLLABLE MOP;Lo;0;L;;;;;N;;;;;
+A0C1;YI SYLLABLE MEX;Lo;0;L;;;;;N;;;;;
+A0C2;YI SYLLABLE ME;Lo;0;L;;;;;N;;;;;
+A0C3;YI SYLLABLE MUT;Lo;0;L;;;;;N;;;;;
+A0C4;YI SYLLABLE MUX;Lo;0;L;;;;;N;;;;;
+A0C5;YI SYLLABLE MU;Lo;0;L;;;;;N;;;;;
+A0C6;YI SYLLABLE MUP;Lo;0;L;;;;;N;;;;;
+A0C7;YI SYLLABLE MURX;Lo;0;L;;;;;N;;;;;
+A0C8;YI SYLLABLE MUR;Lo;0;L;;;;;N;;;;;
+A0C9;YI SYLLABLE MYT;Lo;0;L;;;;;N;;;;;
+A0CA;YI SYLLABLE MYX;Lo;0;L;;;;;N;;;;;
+A0CB;YI SYLLABLE MY;Lo;0;L;;;;;N;;;;;
+A0CC;YI SYLLABLE MYP;Lo;0;L;;;;;N;;;;;
+A0CD;YI SYLLABLE FIT;Lo;0;L;;;;;N;;;;;
+A0CE;YI SYLLABLE FIX;Lo;0;L;;;;;N;;;;;
+A0CF;YI SYLLABLE FI;Lo;0;L;;;;;N;;;;;
+A0D0;YI SYLLABLE FIP;Lo;0;L;;;;;N;;;;;
+A0D1;YI SYLLABLE FAT;Lo;0;L;;;;;N;;;;;
+A0D2;YI SYLLABLE FAX;Lo;0;L;;;;;N;;;;;
+A0D3;YI SYLLABLE FA;Lo;0;L;;;;;N;;;;;
+A0D4;YI SYLLABLE FAP;Lo;0;L;;;;;N;;;;;
+A0D5;YI SYLLABLE FOX;Lo;0;L;;;;;N;;;;;
+A0D6;YI SYLLABLE FO;Lo;0;L;;;;;N;;;;;
+A0D7;YI SYLLABLE FOP;Lo;0;L;;;;;N;;;;;
+A0D8;YI SYLLABLE FUT;Lo;0;L;;;;;N;;;;;
+A0D9;YI SYLLABLE FUX;Lo;0;L;;;;;N;;;;;
+A0DA;YI SYLLABLE FU;Lo;0;L;;;;;N;;;;;
+A0DB;YI SYLLABLE FUP;Lo;0;L;;;;;N;;;;;
+A0DC;YI SYLLABLE FURX;Lo;0;L;;;;;N;;;;;
+A0DD;YI SYLLABLE FUR;Lo;0;L;;;;;N;;;;;
+A0DE;YI SYLLABLE FYT;Lo;0;L;;;;;N;;;;;
+A0DF;YI SYLLABLE FYX;Lo;0;L;;;;;N;;;;;
+A0E0;YI SYLLABLE FY;Lo;0;L;;;;;N;;;;;
+A0E1;YI SYLLABLE FYP;Lo;0;L;;;;;N;;;;;
+A0E2;YI SYLLABLE VIT;Lo;0;L;;;;;N;;;;;
+A0E3;YI SYLLABLE VIX;Lo;0;L;;;;;N;;;;;
+A0E4;YI SYLLABLE VI;Lo;0;L;;;;;N;;;;;
+A0E5;YI SYLLABLE VIP;Lo;0;L;;;;;N;;;;;
+A0E6;YI SYLLABLE VIET;Lo;0;L;;;;;N;;;;;
+A0E7;YI SYLLABLE VIEX;Lo;0;L;;;;;N;;;;;
+A0E8;YI SYLLABLE VIE;Lo;0;L;;;;;N;;;;;
+A0E9;YI SYLLABLE VIEP;Lo;0;L;;;;;N;;;;;
+A0EA;YI SYLLABLE VAT;Lo;0;L;;;;;N;;;;;
+A0EB;YI SYLLABLE VAX;Lo;0;L;;;;;N;;;;;
+A0EC;YI SYLLABLE VA;Lo;0;L;;;;;N;;;;;
+A0ED;YI SYLLABLE VAP;Lo;0;L;;;;;N;;;;;
+A0EE;YI SYLLABLE VOT;Lo;0;L;;;;;N;;;;;
+A0EF;YI SYLLABLE VOX;Lo;0;L;;;;;N;;;;;
+A0F0;YI SYLLABLE VO;Lo;0;L;;;;;N;;;;;
+A0F1;YI SYLLABLE VOP;Lo;0;L;;;;;N;;;;;
+A0F2;YI SYLLABLE VEX;Lo;0;L;;;;;N;;;;;
+A0F3;YI SYLLABLE VEP;Lo;0;L;;;;;N;;;;;
+A0F4;YI SYLLABLE VUT;Lo;0;L;;;;;N;;;;;
+A0F5;YI SYLLABLE VUX;Lo;0;L;;;;;N;;;;;
+A0F6;YI SYLLABLE VU;Lo;0;L;;;;;N;;;;;
+A0F7;YI SYLLABLE VUP;Lo;0;L;;;;;N;;;;;
+A0F8;YI SYLLABLE VURX;Lo;0;L;;;;;N;;;;;
+A0F9;YI SYLLABLE VUR;Lo;0;L;;;;;N;;;;;
+A0FA;YI SYLLABLE VYT;Lo;0;L;;;;;N;;;;;
+A0FB;YI SYLLABLE VYX;Lo;0;L;;;;;N;;;;;
+A0FC;YI SYLLABLE VY;Lo;0;L;;;;;N;;;;;
+A0FD;YI SYLLABLE VYP;Lo;0;L;;;;;N;;;;;
+A0FE;YI SYLLABLE VYRX;Lo;0;L;;;;;N;;;;;
+A0FF;YI SYLLABLE VYR;Lo;0;L;;;;;N;;;;;
+A100;YI SYLLABLE DIT;Lo;0;L;;;;;N;;;;;
+A101;YI SYLLABLE DIX;Lo;0;L;;;;;N;;;;;
+A102;YI SYLLABLE DI;Lo;0;L;;;;;N;;;;;
+A103;YI SYLLABLE DIP;Lo;0;L;;;;;N;;;;;
+A104;YI SYLLABLE DIEX;Lo;0;L;;;;;N;;;;;
+A105;YI SYLLABLE DIE;Lo;0;L;;;;;N;;;;;
+A106;YI SYLLABLE DIEP;Lo;0;L;;;;;N;;;;;
+A107;YI SYLLABLE DAT;Lo;0;L;;;;;N;;;;;
+A108;YI SYLLABLE DAX;Lo;0;L;;;;;N;;;;;
+A109;YI SYLLABLE DA;Lo;0;L;;;;;N;;;;;
+A10A;YI SYLLABLE DAP;Lo;0;L;;;;;N;;;;;
+A10B;YI SYLLABLE DUOX;Lo;0;L;;;;;N;;;;;
+A10C;YI SYLLABLE DUO;Lo;0;L;;;;;N;;;;;
+A10D;YI SYLLABLE DOT;Lo;0;L;;;;;N;;;;;
+A10E;YI SYLLABLE DOX;Lo;0;L;;;;;N;;;;;
+A10F;YI SYLLABLE DO;Lo;0;L;;;;;N;;;;;
+A110;YI SYLLABLE DOP;Lo;0;L;;;;;N;;;;;
+A111;YI SYLLABLE DEX;Lo;0;L;;;;;N;;;;;
+A112;YI SYLLABLE DE;Lo;0;L;;;;;N;;;;;
+A113;YI SYLLABLE DEP;Lo;0;L;;;;;N;;;;;
+A114;YI SYLLABLE DUT;Lo;0;L;;;;;N;;;;;
+A115;YI SYLLABLE DUX;Lo;0;L;;;;;N;;;;;
+A116;YI SYLLABLE DU;Lo;0;L;;;;;N;;;;;
+A117;YI SYLLABLE DUP;Lo;0;L;;;;;N;;;;;
+A118;YI SYLLABLE DURX;Lo;0;L;;;;;N;;;;;
+A119;YI SYLLABLE DUR;Lo;0;L;;;;;N;;;;;
+A11A;YI SYLLABLE TIT;Lo;0;L;;;;;N;;;;;
+A11B;YI SYLLABLE TIX;Lo;0;L;;;;;N;;;;;
+A11C;YI SYLLABLE TI;Lo;0;L;;;;;N;;;;;
+A11D;YI SYLLABLE TIP;Lo;0;L;;;;;N;;;;;
+A11E;YI SYLLABLE TIEX;Lo;0;L;;;;;N;;;;;
+A11F;YI SYLLABLE TIE;Lo;0;L;;;;;N;;;;;
+A120;YI SYLLABLE TIEP;Lo;0;L;;;;;N;;;;;
+A121;YI SYLLABLE TAT;Lo;0;L;;;;;N;;;;;
+A122;YI SYLLABLE TAX;Lo;0;L;;;;;N;;;;;
+A123;YI SYLLABLE TA;Lo;0;L;;;;;N;;;;;
+A124;YI SYLLABLE TAP;Lo;0;L;;;;;N;;;;;
+A125;YI SYLLABLE TUOT;Lo;0;L;;;;;N;;;;;
+A126;YI SYLLABLE TUOX;Lo;0;L;;;;;N;;;;;
+A127;YI SYLLABLE TUO;Lo;0;L;;;;;N;;;;;
+A128;YI SYLLABLE TUOP;Lo;0;L;;;;;N;;;;;
+A129;YI SYLLABLE TOT;Lo;0;L;;;;;N;;;;;
+A12A;YI SYLLABLE TOX;Lo;0;L;;;;;N;;;;;
+A12B;YI SYLLABLE TO;Lo;0;L;;;;;N;;;;;
+A12C;YI SYLLABLE TOP;Lo;0;L;;;;;N;;;;;
+A12D;YI SYLLABLE TEX;Lo;0;L;;;;;N;;;;;
+A12E;YI SYLLABLE TE;Lo;0;L;;;;;N;;;;;
+A12F;YI SYLLABLE TEP;Lo;0;L;;;;;N;;;;;
+A130;YI SYLLABLE TUT;Lo;0;L;;;;;N;;;;;
+A131;YI SYLLABLE TUX;Lo;0;L;;;;;N;;;;;
+A132;YI SYLLABLE TU;Lo;0;L;;;;;N;;;;;
+A133;YI SYLLABLE TUP;Lo;0;L;;;;;N;;;;;
+A134;YI SYLLABLE TURX;Lo;0;L;;;;;N;;;;;
+A135;YI SYLLABLE TUR;Lo;0;L;;;;;N;;;;;
+A136;YI SYLLABLE DDIT;Lo;0;L;;;;;N;;;;;
+A137;YI SYLLABLE DDIX;Lo;0;L;;;;;N;;;;;
+A138;YI SYLLABLE DDI;Lo;0;L;;;;;N;;;;;
+A139;YI SYLLABLE DDIP;Lo;0;L;;;;;N;;;;;
+A13A;YI SYLLABLE DDIEX;Lo;0;L;;;;;N;;;;;
+A13B;YI SYLLABLE DDIE;Lo;0;L;;;;;N;;;;;
+A13C;YI SYLLABLE DDIEP;Lo;0;L;;;;;N;;;;;
+A13D;YI SYLLABLE DDAT;Lo;0;L;;;;;N;;;;;
+A13E;YI SYLLABLE DDAX;Lo;0;L;;;;;N;;;;;
+A13F;YI SYLLABLE DDA;Lo;0;L;;;;;N;;;;;
+A140;YI SYLLABLE DDAP;Lo;0;L;;;;;N;;;;;
+A141;YI SYLLABLE DDUOX;Lo;0;L;;;;;N;;;;;
+A142;YI SYLLABLE DDUO;Lo;0;L;;;;;N;;;;;
+A143;YI SYLLABLE DDUOP;Lo;0;L;;;;;N;;;;;
+A144;YI SYLLABLE DDOT;Lo;0;L;;;;;N;;;;;
+A145;YI SYLLABLE DDOX;Lo;0;L;;;;;N;;;;;
+A146;YI SYLLABLE DDO;Lo;0;L;;;;;N;;;;;
+A147;YI SYLLABLE DDOP;Lo;0;L;;;;;N;;;;;
+A148;YI SYLLABLE DDEX;Lo;0;L;;;;;N;;;;;
+A149;YI SYLLABLE DDE;Lo;0;L;;;;;N;;;;;
+A14A;YI SYLLABLE DDEP;Lo;0;L;;;;;N;;;;;
+A14B;YI SYLLABLE DDUT;Lo;0;L;;;;;N;;;;;
+A14C;YI SYLLABLE DDUX;Lo;0;L;;;;;N;;;;;
+A14D;YI SYLLABLE DDU;Lo;0;L;;;;;N;;;;;
+A14E;YI SYLLABLE DDUP;Lo;0;L;;;;;N;;;;;
+A14F;YI SYLLABLE DDURX;Lo;0;L;;;;;N;;;;;
+A150;YI SYLLABLE DDUR;Lo;0;L;;;;;N;;;;;
+A151;YI SYLLABLE NDIT;Lo;0;L;;;;;N;;;;;
+A152;YI SYLLABLE NDIX;Lo;0;L;;;;;N;;;;;
+A153;YI SYLLABLE NDI;Lo;0;L;;;;;N;;;;;
+A154;YI SYLLABLE NDIP;Lo;0;L;;;;;N;;;;;
+A155;YI SYLLABLE NDIEX;Lo;0;L;;;;;N;;;;;
+A156;YI SYLLABLE NDIE;Lo;0;L;;;;;N;;;;;
+A157;YI SYLLABLE NDAT;Lo;0;L;;;;;N;;;;;
+A158;YI SYLLABLE NDAX;Lo;0;L;;;;;N;;;;;
+A159;YI SYLLABLE NDA;Lo;0;L;;;;;N;;;;;
+A15A;YI SYLLABLE NDAP;Lo;0;L;;;;;N;;;;;
+A15B;YI SYLLABLE NDOT;Lo;0;L;;;;;N;;;;;
+A15C;YI SYLLABLE NDOX;Lo;0;L;;;;;N;;;;;
+A15D;YI SYLLABLE NDO;Lo;0;L;;;;;N;;;;;
+A15E;YI SYLLABLE NDOP;Lo;0;L;;;;;N;;;;;
+A15F;YI SYLLABLE NDEX;Lo;0;L;;;;;N;;;;;
+A160;YI SYLLABLE NDE;Lo;0;L;;;;;N;;;;;
+A161;YI SYLLABLE NDEP;Lo;0;L;;;;;N;;;;;
+A162;YI SYLLABLE NDUT;Lo;0;L;;;;;N;;;;;
+A163;YI SYLLABLE NDUX;Lo;0;L;;;;;N;;;;;
+A164;YI SYLLABLE NDU;Lo;0;L;;;;;N;;;;;
+A165;YI SYLLABLE NDUP;Lo;0;L;;;;;N;;;;;
+A166;YI SYLLABLE NDURX;Lo;0;L;;;;;N;;;;;
+A167;YI SYLLABLE NDUR;Lo;0;L;;;;;N;;;;;
+A168;YI SYLLABLE HNIT;Lo;0;L;;;;;N;;;;;
+A169;YI SYLLABLE HNIX;Lo;0;L;;;;;N;;;;;
+A16A;YI SYLLABLE HNI;Lo;0;L;;;;;N;;;;;
+A16B;YI SYLLABLE HNIP;Lo;0;L;;;;;N;;;;;
+A16C;YI SYLLABLE HNIET;Lo;0;L;;;;;N;;;;;
+A16D;YI SYLLABLE HNIEX;Lo;0;L;;;;;N;;;;;
+A16E;YI SYLLABLE HNIE;Lo;0;L;;;;;N;;;;;
+A16F;YI SYLLABLE HNIEP;Lo;0;L;;;;;N;;;;;
+A170;YI SYLLABLE HNAT;Lo;0;L;;;;;N;;;;;
+A171;YI SYLLABLE HNAX;Lo;0;L;;;;;N;;;;;
+A172;YI SYLLABLE HNA;Lo;0;L;;;;;N;;;;;
+A173;YI SYLLABLE HNAP;Lo;0;L;;;;;N;;;;;
+A174;YI SYLLABLE HNUOX;Lo;0;L;;;;;N;;;;;
+A175;YI SYLLABLE HNUO;Lo;0;L;;;;;N;;;;;
+A176;YI SYLLABLE HNOT;Lo;0;L;;;;;N;;;;;
+A177;YI SYLLABLE HNOX;Lo;0;L;;;;;N;;;;;
+A178;YI SYLLABLE HNOP;Lo;0;L;;;;;N;;;;;
+A179;YI SYLLABLE HNEX;Lo;0;L;;;;;N;;;;;
+A17A;YI SYLLABLE HNE;Lo;0;L;;;;;N;;;;;
+A17B;YI SYLLABLE HNEP;Lo;0;L;;;;;N;;;;;
+A17C;YI SYLLABLE HNUT;Lo;0;L;;;;;N;;;;;
+A17D;YI SYLLABLE NIT;Lo;0;L;;;;;N;;;;;
+A17E;YI SYLLABLE NIX;Lo;0;L;;;;;N;;;;;
+A17F;YI SYLLABLE NI;Lo;0;L;;;;;N;;;;;
+A180;YI SYLLABLE NIP;Lo;0;L;;;;;N;;;;;
+A181;YI SYLLABLE NIEX;Lo;0;L;;;;;N;;;;;
+A182;YI SYLLABLE NIE;Lo;0;L;;;;;N;;;;;
+A183;YI SYLLABLE NIEP;Lo;0;L;;;;;N;;;;;
+A184;YI SYLLABLE NAX;Lo;0;L;;;;;N;;;;;
+A185;YI SYLLABLE NA;Lo;0;L;;;;;N;;;;;
+A186;YI SYLLABLE NAP;Lo;0;L;;;;;N;;;;;
+A187;YI SYLLABLE NUOX;Lo;0;L;;;;;N;;;;;
+A188;YI SYLLABLE NUO;Lo;0;L;;;;;N;;;;;
+A189;YI SYLLABLE NUOP;Lo;0;L;;;;;N;;;;;
+A18A;YI SYLLABLE NOT;Lo;0;L;;;;;N;;;;;
+A18B;YI SYLLABLE NOX;Lo;0;L;;;;;N;;;;;
+A18C;YI SYLLABLE NO;Lo;0;L;;;;;N;;;;;
+A18D;YI SYLLABLE NOP;Lo;0;L;;;;;N;;;;;
+A18E;YI SYLLABLE NEX;Lo;0;L;;;;;N;;;;;
+A18F;YI SYLLABLE NE;Lo;0;L;;;;;N;;;;;
+A190;YI SYLLABLE NEP;Lo;0;L;;;;;N;;;;;
+A191;YI SYLLABLE NUT;Lo;0;L;;;;;N;;;;;
+A192;YI SYLLABLE NUX;Lo;0;L;;;;;N;;;;;
+A193;YI SYLLABLE NU;Lo;0;L;;;;;N;;;;;
+A194;YI SYLLABLE NUP;Lo;0;L;;;;;N;;;;;
+A195;YI SYLLABLE NURX;Lo;0;L;;;;;N;;;;;
+A196;YI SYLLABLE NUR;Lo;0;L;;;;;N;;;;;
+A197;YI SYLLABLE HLIT;Lo;0;L;;;;;N;;;;;
+A198;YI SYLLABLE HLIX;Lo;0;L;;;;;N;;;;;
+A199;YI SYLLABLE HLI;Lo;0;L;;;;;N;;;;;
+A19A;YI SYLLABLE HLIP;Lo;0;L;;;;;N;;;;;
+A19B;YI SYLLABLE HLIEX;Lo;0;L;;;;;N;;;;;
+A19C;YI SYLLABLE HLIE;Lo;0;L;;;;;N;;;;;
+A19D;YI SYLLABLE HLIEP;Lo;0;L;;;;;N;;;;;
+A19E;YI SYLLABLE HLAT;Lo;0;L;;;;;N;;;;;
+A19F;YI SYLLABLE HLAX;Lo;0;L;;;;;N;;;;;
+A1A0;YI SYLLABLE HLA;Lo;0;L;;;;;N;;;;;
+A1A1;YI SYLLABLE HLAP;Lo;0;L;;;;;N;;;;;
+A1A2;YI SYLLABLE HLUOX;Lo;0;L;;;;;N;;;;;
+A1A3;YI SYLLABLE HLUO;Lo;0;L;;;;;N;;;;;
+A1A4;YI SYLLABLE HLUOP;Lo;0;L;;;;;N;;;;;
+A1A5;YI SYLLABLE HLOX;Lo;0;L;;;;;N;;;;;
+A1A6;YI SYLLABLE HLO;Lo;0;L;;;;;N;;;;;
+A1A7;YI SYLLABLE HLOP;Lo;0;L;;;;;N;;;;;
+A1A8;YI SYLLABLE HLEX;Lo;0;L;;;;;N;;;;;
+A1A9;YI SYLLABLE HLE;Lo;0;L;;;;;N;;;;;
+A1AA;YI SYLLABLE HLEP;Lo;0;L;;;;;N;;;;;
+A1AB;YI SYLLABLE HLUT;Lo;0;L;;;;;N;;;;;
+A1AC;YI SYLLABLE HLUX;Lo;0;L;;;;;N;;;;;
+A1AD;YI SYLLABLE HLU;Lo;0;L;;;;;N;;;;;
+A1AE;YI SYLLABLE HLUP;Lo;0;L;;;;;N;;;;;
+A1AF;YI SYLLABLE HLURX;Lo;0;L;;;;;N;;;;;
+A1B0;YI SYLLABLE HLUR;Lo;0;L;;;;;N;;;;;
+A1B1;YI SYLLABLE HLYT;Lo;0;L;;;;;N;;;;;
+A1B2;YI SYLLABLE HLYX;Lo;0;L;;;;;N;;;;;
+A1B3;YI SYLLABLE HLY;Lo;0;L;;;;;N;;;;;
+A1B4;YI SYLLABLE HLYP;Lo;0;L;;;;;N;;;;;
+A1B5;YI SYLLABLE HLYRX;Lo;0;L;;;;;N;;;;;
+A1B6;YI SYLLABLE HLYR;Lo;0;L;;;;;N;;;;;
+A1B7;YI SYLLABLE LIT;Lo;0;L;;;;;N;;;;;
+A1B8;YI SYLLABLE LIX;Lo;0;L;;;;;N;;;;;
+A1B9;YI SYLLABLE LI;Lo;0;L;;;;;N;;;;;
+A1BA;YI SYLLABLE LIP;Lo;0;L;;;;;N;;;;;
+A1BB;YI SYLLABLE LIET;Lo;0;L;;;;;N;;;;;
+A1BC;YI SYLLABLE LIEX;Lo;0;L;;;;;N;;;;;
+A1BD;YI SYLLABLE LIE;Lo;0;L;;;;;N;;;;;
+A1BE;YI SYLLABLE LIEP;Lo;0;L;;;;;N;;;;;
+A1BF;YI SYLLABLE LAT;Lo;0;L;;;;;N;;;;;
+A1C0;YI SYLLABLE LAX;Lo;0;L;;;;;N;;;;;
+A1C1;YI SYLLABLE LA;Lo;0;L;;;;;N;;;;;
+A1C2;YI SYLLABLE LAP;Lo;0;L;;;;;N;;;;;
+A1C3;YI SYLLABLE LUOT;Lo;0;L;;;;;N;;;;;
+A1C4;YI SYLLABLE LUOX;Lo;0;L;;;;;N;;;;;
+A1C5;YI SYLLABLE LUO;Lo;0;L;;;;;N;;;;;
+A1C6;YI SYLLABLE LUOP;Lo;0;L;;;;;N;;;;;
+A1C7;YI SYLLABLE LOT;Lo;0;L;;;;;N;;;;;
+A1C8;YI SYLLABLE LOX;Lo;0;L;;;;;N;;;;;
+A1C9;YI SYLLABLE LO;Lo;0;L;;;;;N;;;;;
+A1CA;YI SYLLABLE LOP;Lo;0;L;;;;;N;;;;;
+A1CB;YI SYLLABLE LEX;Lo;0;L;;;;;N;;;;;
+A1CC;YI SYLLABLE LE;Lo;0;L;;;;;N;;;;;
+A1CD;YI SYLLABLE LEP;Lo;0;L;;;;;N;;;;;
+A1CE;YI SYLLABLE LUT;Lo;0;L;;;;;N;;;;;
+A1CF;YI SYLLABLE LUX;Lo;0;L;;;;;N;;;;;
+A1D0;YI SYLLABLE LU;Lo;0;L;;;;;N;;;;;
+A1D1;YI SYLLABLE LUP;Lo;0;L;;;;;N;;;;;
+A1D2;YI SYLLABLE LURX;Lo;0;L;;;;;N;;;;;
+A1D3;YI SYLLABLE LUR;Lo;0;L;;;;;N;;;;;
+A1D4;YI SYLLABLE LYT;Lo;0;L;;;;;N;;;;;
+A1D5;YI SYLLABLE LYX;Lo;0;L;;;;;N;;;;;
+A1D6;YI SYLLABLE LY;Lo;0;L;;;;;N;;;;;
+A1D7;YI SYLLABLE LYP;Lo;0;L;;;;;N;;;;;
+A1D8;YI SYLLABLE LYRX;Lo;0;L;;;;;N;;;;;
+A1D9;YI SYLLABLE LYR;Lo;0;L;;;;;N;;;;;
+A1DA;YI SYLLABLE GIT;Lo;0;L;;;;;N;;;;;
+A1DB;YI SYLLABLE GIX;Lo;0;L;;;;;N;;;;;
+A1DC;YI SYLLABLE GI;Lo;0;L;;;;;N;;;;;
+A1DD;YI SYLLABLE GIP;Lo;0;L;;;;;N;;;;;
+A1DE;YI SYLLABLE GIET;Lo;0;L;;;;;N;;;;;
+A1DF;YI SYLLABLE GIEX;Lo;0;L;;;;;N;;;;;
+A1E0;YI SYLLABLE GIE;Lo;0;L;;;;;N;;;;;
+A1E1;YI SYLLABLE GIEP;Lo;0;L;;;;;N;;;;;
+A1E2;YI SYLLABLE GAT;Lo;0;L;;;;;N;;;;;
+A1E3;YI SYLLABLE GAX;Lo;0;L;;;;;N;;;;;
+A1E4;YI SYLLABLE GA;Lo;0;L;;;;;N;;;;;
+A1E5;YI SYLLABLE GAP;Lo;0;L;;;;;N;;;;;
+A1E6;YI SYLLABLE GUOT;Lo;0;L;;;;;N;;;;;
+A1E7;YI SYLLABLE GUOX;Lo;0;L;;;;;N;;;;;
+A1E8;YI SYLLABLE GUO;Lo;0;L;;;;;N;;;;;
+A1E9;YI SYLLABLE GUOP;Lo;0;L;;;;;N;;;;;
+A1EA;YI SYLLABLE GOT;Lo;0;L;;;;;N;;;;;
+A1EB;YI SYLLABLE GOX;Lo;0;L;;;;;N;;;;;
+A1EC;YI SYLLABLE GO;Lo;0;L;;;;;N;;;;;
+A1ED;YI SYLLABLE GOP;Lo;0;L;;;;;N;;;;;
+A1EE;YI SYLLABLE GET;Lo;0;L;;;;;N;;;;;
+A1EF;YI SYLLABLE GEX;Lo;0;L;;;;;N;;;;;
+A1F0;YI SYLLABLE GE;Lo;0;L;;;;;N;;;;;
+A1F1;YI SYLLABLE GEP;Lo;0;L;;;;;N;;;;;
+A1F2;YI SYLLABLE GUT;Lo;0;L;;;;;N;;;;;
+A1F3;YI SYLLABLE GUX;Lo;0;L;;;;;N;;;;;
+A1F4;YI SYLLABLE GU;Lo;0;L;;;;;N;;;;;
+A1F5;YI SYLLABLE GUP;Lo;0;L;;;;;N;;;;;
+A1F6;YI SYLLABLE GURX;Lo;0;L;;;;;N;;;;;
+A1F7;YI SYLLABLE GUR;Lo;0;L;;;;;N;;;;;
+A1F8;YI SYLLABLE KIT;Lo;0;L;;;;;N;;;;;
+A1F9;YI SYLLABLE KIX;Lo;0;L;;;;;N;;;;;
+A1FA;YI SYLLABLE KI;Lo;0;L;;;;;N;;;;;
+A1FB;YI SYLLABLE KIP;Lo;0;L;;;;;N;;;;;
+A1FC;YI SYLLABLE KIEX;Lo;0;L;;;;;N;;;;;
+A1FD;YI SYLLABLE KIE;Lo;0;L;;;;;N;;;;;
+A1FE;YI SYLLABLE KIEP;Lo;0;L;;;;;N;;;;;
+A1FF;YI SYLLABLE KAT;Lo;0;L;;;;;N;;;;;
+A200;YI SYLLABLE KAX;Lo;0;L;;;;;N;;;;;
+A201;YI SYLLABLE KA;Lo;0;L;;;;;N;;;;;
+A202;YI SYLLABLE KAP;Lo;0;L;;;;;N;;;;;
+A203;YI SYLLABLE KUOX;Lo;0;L;;;;;N;;;;;
+A204;YI SYLLABLE KUO;Lo;0;L;;;;;N;;;;;
+A205;YI SYLLABLE KUOP;Lo;0;L;;;;;N;;;;;
+A206;YI SYLLABLE KOT;Lo;0;L;;;;;N;;;;;
+A207;YI SYLLABLE KOX;Lo;0;L;;;;;N;;;;;
+A208;YI SYLLABLE KO;Lo;0;L;;;;;N;;;;;
+A209;YI SYLLABLE KOP;Lo;0;L;;;;;N;;;;;
+A20A;YI SYLLABLE KET;Lo;0;L;;;;;N;;;;;
+A20B;YI SYLLABLE KEX;Lo;0;L;;;;;N;;;;;
+A20C;YI SYLLABLE KE;Lo;0;L;;;;;N;;;;;
+A20D;YI SYLLABLE KEP;Lo;0;L;;;;;N;;;;;
+A20E;YI SYLLABLE KUT;Lo;0;L;;;;;N;;;;;
+A20F;YI SYLLABLE KUX;Lo;0;L;;;;;N;;;;;
+A210;YI SYLLABLE KU;Lo;0;L;;;;;N;;;;;
+A211;YI SYLLABLE KUP;Lo;0;L;;;;;N;;;;;
+A212;YI SYLLABLE KURX;Lo;0;L;;;;;N;;;;;
+A213;YI SYLLABLE KUR;Lo;0;L;;;;;N;;;;;
+A214;YI SYLLABLE GGIT;Lo;0;L;;;;;N;;;;;
+A215;YI SYLLABLE GGIX;Lo;0;L;;;;;N;;;;;
+A216;YI SYLLABLE GGI;Lo;0;L;;;;;N;;;;;
+A217;YI SYLLABLE GGIEX;Lo;0;L;;;;;N;;;;;
+A218;YI SYLLABLE GGIE;Lo;0;L;;;;;N;;;;;
+A219;YI SYLLABLE GGIEP;Lo;0;L;;;;;N;;;;;
+A21A;YI SYLLABLE GGAT;Lo;0;L;;;;;N;;;;;
+A21B;YI SYLLABLE GGAX;Lo;0;L;;;;;N;;;;;
+A21C;YI SYLLABLE GGA;Lo;0;L;;;;;N;;;;;
+A21D;YI SYLLABLE GGAP;Lo;0;L;;;;;N;;;;;
+A21E;YI SYLLABLE GGUOT;Lo;0;L;;;;;N;;;;;
+A21F;YI SYLLABLE GGUOX;Lo;0;L;;;;;N;;;;;
+A220;YI SYLLABLE GGUO;Lo;0;L;;;;;N;;;;;
+A221;YI SYLLABLE GGUOP;Lo;0;L;;;;;N;;;;;
+A222;YI SYLLABLE GGOT;Lo;0;L;;;;;N;;;;;
+A223;YI SYLLABLE GGOX;Lo;0;L;;;;;N;;;;;
+A224;YI SYLLABLE GGO;Lo;0;L;;;;;N;;;;;
+A225;YI SYLLABLE GGOP;Lo;0;L;;;;;N;;;;;
+A226;YI SYLLABLE GGET;Lo;0;L;;;;;N;;;;;
+A227;YI SYLLABLE GGEX;Lo;0;L;;;;;N;;;;;
+A228;YI SYLLABLE GGE;Lo;0;L;;;;;N;;;;;
+A229;YI SYLLABLE GGEP;Lo;0;L;;;;;N;;;;;
+A22A;YI SYLLABLE GGUT;Lo;0;L;;;;;N;;;;;
+A22B;YI SYLLABLE GGUX;Lo;0;L;;;;;N;;;;;
+A22C;YI SYLLABLE GGU;Lo;0;L;;;;;N;;;;;
+A22D;YI SYLLABLE GGUP;Lo;0;L;;;;;N;;;;;
+A22E;YI SYLLABLE GGURX;Lo;0;L;;;;;N;;;;;
+A22F;YI SYLLABLE GGUR;Lo;0;L;;;;;N;;;;;
+A230;YI SYLLABLE MGIEX;Lo;0;L;;;;;N;;;;;
+A231;YI SYLLABLE MGIE;Lo;0;L;;;;;N;;;;;
+A232;YI SYLLABLE MGAT;Lo;0;L;;;;;N;;;;;
+A233;YI SYLLABLE MGAX;Lo;0;L;;;;;N;;;;;
+A234;YI SYLLABLE MGA;Lo;0;L;;;;;N;;;;;
+A235;YI SYLLABLE MGAP;Lo;0;L;;;;;N;;;;;
+A236;YI SYLLABLE MGUOX;Lo;0;L;;;;;N;;;;;
+A237;YI SYLLABLE MGUO;Lo;0;L;;;;;N;;;;;
+A238;YI SYLLABLE MGUOP;Lo;0;L;;;;;N;;;;;
+A239;YI SYLLABLE MGOT;Lo;0;L;;;;;N;;;;;
+A23A;YI SYLLABLE MGOX;Lo;0;L;;;;;N;;;;;
+A23B;YI SYLLABLE MGO;Lo;0;L;;;;;N;;;;;
+A23C;YI SYLLABLE MGOP;Lo;0;L;;;;;N;;;;;
+A23D;YI SYLLABLE MGEX;Lo;0;L;;;;;N;;;;;
+A23E;YI SYLLABLE MGE;Lo;0;L;;;;;N;;;;;
+A23F;YI SYLLABLE MGEP;Lo;0;L;;;;;N;;;;;
+A240;YI SYLLABLE MGUT;Lo;0;L;;;;;N;;;;;
+A241;YI SYLLABLE MGUX;Lo;0;L;;;;;N;;;;;
+A242;YI SYLLABLE MGU;Lo;0;L;;;;;N;;;;;
+A243;YI SYLLABLE MGUP;Lo;0;L;;;;;N;;;;;
+A244;YI SYLLABLE MGURX;Lo;0;L;;;;;N;;;;;
+A245;YI SYLLABLE MGUR;Lo;0;L;;;;;N;;;;;
+A246;YI SYLLABLE HXIT;Lo;0;L;;;;;N;;;;;
+A247;YI SYLLABLE HXIX;Lo;0;L;;;;;N;;;;;
+A248;YI SYLLABLE HXI;Lo;0;L;;;;;N;;;;;
+A249;YI SYLLABLE HXIP;Lo;0;L;;;;;N;;;;;
+A24A;YI SYLLABLE HXIET;Lo;0;L;;;;;N;;;;;
+A24B;YI SYLLABLE HXIEX;Lo;0;L;;;;;N;;;;;
+A24C;YI SYLLABLE HXIE;Lo;0;L;;;;;N;;;;;
+A24D;YI SYLLABLE HXIEP;Lo;0;L;;;;;N;;;;;
+A24E;YI SYLLABLE HXAT;Lo;0;L;;;;;N;;;;;
+A24F;YI SYLLABLE HXAX;Lo;0;L;;;;;N;;;;;
+A250;YI SYLLABLE HXA;Lo;0;L;;;;;N;;;;;
+A251;YI SYLLABLE HXAP;Lo;0;L;;;;;N;;;;;
+A252;YI SYLLABLE HXUOT;Lo;0;L;;;;;N;;;;;
+A253;YI SYLLABLE HXUOX;Lo;0;L;;;;;N;;;;;
+A254;YI SYLLABLE HXUO;Lo;0;L;;;;;N;;;;;
+A255;YI SYLLABLE HXUOP;Lo;0;L;;;;;N;;;;;
+A256;YI SYLLABLE HXOT;Lo;0;L;;;;;N;;;;;
+A257;YI SYLLABLE HXOX;Lo;0;L;;;;;N;;;;;
+A258;YI SYLLABLE HXO;Lo;0;L;;;;;N;;;;;
+A259;YI SYLLABLE HXOP;Lo;0;L;;;;;N;;;;;
+A25A;YI SYLLABLE HXEX;Lo;0;L;;;;;N;;;;;
+A25B;YI SYLLABLE HXE;Lo;0;L;;;;;N;;;;;
+A25C;YI SYLLABLE HXEP;Lo;0;L;;;;;N;;;;;
+A25D;YI SYLLABLE NGIEX;Lo;0;L;;;;;N;;;;;
+A25E;YI SYLLABLE NGIE;Lo;0;L;;;;;N;;;;;
+A25F;YI SYLLABLE NGIEP;Lo;0;L;;;;;N;;;;;
+A260;YI SYLLABLE NGAT;Lo;0;L;;;;;N;;;;;
+A261;YI SYLLABLE NGAX;Lo;0;L;;;;;N;;;;;
+A262;YI SYLLABLE NGA;Lo;0;L;;;;;N;;;;;
+A263;YI SYLLABLE NGAP;Lo;0;L;;;;;N;;;;;
+A264;YI SYLLABLE NGUOT;Lo;0;L;;;;;N;;;;;
+A265;YI SYLLABLE NGUOX;Lo;0;L;;;;;N;;;;;
+A266;YI SYLLABLE NGUO;Lo;0;L;;;;;N;;;;;
+A267;YI SYLLABLE NGOT;Lo;0;L;;;;;N;;;;;
+A268;YI SYLLABLE NGOX;Lo;0;L;;;;;N;;;;;
+A269;YI SYLLABLE NGO;Lo;0;L;;;;;N;;;;;
+A26A;YI SYLLABLE NGOP;Lo;0;L;;;;;N;;;;;
+A26B;YI SYLLABLE NGEX;Lo;0;L;;;;;N;;;;;
+A26C;YI SYLLABLE NGE;Lo;0;L;;;;;N;;;;;
+A26D;YI SYLLABLE NGEP;Lo;0;L;;;;;N;;;;;
+A26E;YI SYLLABLE HIT;Lo;0;L;;;;;N;;;;;
+A26F;YI SYLLABLE HIEX;Lo;0;L;;;;;N;;;;;
+A270;YI SYLLABLE HIE;Lo;0;L;;;;;N;;;;;
+A271;YI SYLLABLE HAT;Lo;0;L;;;;;N;;;;;
+A272;YI SYLLABLE HAX;Lo;0;L;;;;;N;;;;;
+A273;YI SYLLABLE HA;Lo;0;L;;;;;N;;;;;
+A274;YI SYLLABLE HAP;Lo;0;L;;;;;N;;;;;
+A275;YI SYLLABLE HUOT;Lo;0;L;;;;;N;;;;;
+A276;YI SYLLABLE HUOX;Lo;0;L;;;;;N;;;;;
+A277;YI SYLLABLE HUO;Lo;0;L;;;;;N;;;;;
+A278;YI SYLLABLE HUOP;Lo;0;L;;;;;N;;;;;
+A279;YI SYLLABLE HOT;Lo;0;L;;;;;N;;;;;
+A27A;YI SYLLABLE HOX;Lo;0;L;;;;;N;;;;;
+A27B;YI SYLLABLE HO;Lo;0;L;;;;;N;;;;;
+A27C;YI SYLLABLE HOP;Lo;0;L;;;;;N;;;;;
+A27D;YI SYLLABLE HEX;Lo;0;L;;;;;N;;;;;
+A27E;YI SYLLABLE HE;Lo;0;L;;;;;N;;;;;
+A27F;YI SYLLABLE HEP;Lo;0;L;;;;;N;;;;;
+A280;YI SYLLABLE WAT;Lo;0;L;;;;;N;;;;;
+A281;YI SYLLABLE WAX;Lo;0;L;;;;;N;;;;;
+A282;YI SYLLABLE WA;Lo;0;L;;;;;N;;;;;
+A283;YI SYLLABLE WAP;Lo;0;L;;;;;N;;;;;
+A284;YI SYLLABLE WUOX;Lo;0;L;;;;;N;;;;;
+A285;YI SYLLABLE WUO;Lo;0;L;;;;;N;;;;;
+A286;YI SYLLABLE WUOP;Lo;0;L;;;;;N;;;;;
+A287;YI SYLLABLE WOX;Lo;0;L;;;;;N;;;;;
+A288;YI SYLLABLE WO;Lo;0;L;;;;;N;;;;;
+A289;YI SYLLABLE WOP;Lo;0;L;;;;;N;;;;;
+A28A;YI SYLLABLE WEX;Lo;0;L;;;;;N;;;;;
+A28B;YI SYLLABLE WE;Lo;0;L;;;;;N;;;;;
+A28C;YI SYLLABLE WEP;Lo;0;L;;;;;N;;;;;
+A28D;YI SYLLABLE ZIT;Lo;0;L;;;;;N;;;;;
+A28E;YI SYLLABLE ZIX;Lo;0;L;;;;;N;;;;;
+A28F;YI SYLLABLE ZI;Lo;0;L;;;;;N;;;;;
+A290;YI SYLLABLE ZIP;Lo;0;L;;;;;N;;;;;
+A291;YI SYLLABLE ZIEX;Lo;0;L;;;;;N;;;;;
+A292;YI SYLLABLE ZIE;Lo;0;L;;;;;N;;;;;
+A293;YI SYLLABLE ZIEP;Lo;0;L;;;;;N;;;;;
+A294;YI SYLLABLE ZAT;Lo;0;L;;;;;N;;;;;
+A295;YI SYLLABLE ZAX;Lo;0;L;;;;;N;;;;;
+A296;YI SYLLABLE ZA;Lo;0;L;;;;;N;;;;;
+A297;YI SYLLABLE ZAP;Lo;0;L;;;;;N;;;;;
+A298;YI SYLLABLE ZUOX;Lo;0;L;;;;;N;;;;;
+A299;YI SYLLABLE ZUO;Lo;0;L;;;;;N;;;;;
+A29A;YI SYLLABLE ZUOP;Lo;0;L;;;;;N;;;;;
+A29B;YI SYLLABLE ZOT;Lo;0;L;;;;;N;;;;;
+A29C;YI SYLLABLE ZOX;Lo;0;L;;;;;N;;;;;
+A29D;YI SYLLABLE ZO;Lo;0;L;;;;;N;;;;;
+A29E;YI SYLLABLE ZOP;Lo;0;L;;;;;N;;;;;
+A29F;YI SYLLABLE ZEX;Lo;0;L;;;;;N;;;;;
+A2A0;YI SYLLABLE ZE;Lo;0;L;;;;;N;;;;;
+A2A1;YI SYLLABLE ZEP;Lo;0;L;;;;;N;;;;;
+A2A2;YI SYLLABLE ZUT;Lo;0;L;;;;;N;;;;;
+A2A3;YI SYLLABLE ZUX;Lo;0;L;;;;;N;;;;;
+A2A4;YI SYLLABLE ZU;Lo;0;L;;;;;N;;;;;
+A2A5;YI SYLLABLE ZUP;Lo;0;L;;;;;N;;;;;
+A2A6;YI SYLLABLE ZURX;Lo;0;L;;;;;N;;;;;
+A2A7;YI SYLLABLE ZUR;Lo;0;L;;;;;N;;;;;
+A2A8;YI SYLLABLE ZYT;Lo;0;L;;;;;N;;;;;
+A2A9;YI SYLLABLE ZYX;Lo;0;L;;;;;N;;;;;
+A2AA;YI SYLLABLE ZY;Lo;0;L;;;;;N;;;;;
+A2AB;YI SYLLABLE ZYP;Lo;0;L;;;;;N;;;;;
+A2AC;YI SYLLABLE ZYRX;Lo;0;L;;;;;N;;;;;
+A2AD;YI SYLLABLE ZYR;Lo;0;L;;;;;N;;;;;
+A2AE;YI SYLLABLE CIT;Lo;0;L;;;;;N;;;;;
+A2AF;YI SYLLABLE CIX;Lo;0;L;;;;;N;;;;;
+A2B0;YI SYLLABLE CI;Lo;0;L;;;;;N;;;;;
+A2B1;YI SYLLABLE CIP;Lo;0;L;;;;;N;;;;;
+A2B2;YI SYLLABLE CIET;Lo;0;L;;;;;N;;;;;
+A2B3;YI SYLLABLE CIEX;Lo;0;L;;;;;N;;;;;
+A2B4;YI SYLLABLE CIE;Lo;0;L;;;;;N;;;;;
+A2B5;YI SYLLABLE CIEP;Lo;0;L;;;;;N;;;;;
+A2B6;YI SYLLABLE CAT;Lo;0;L;;;;;N;;;;;
+A2B7;YI SYLLABLE CAX;Lo;0;L;;;;;N;;;;;
+A2B8;YI SYLLABLE CA;Lo;0;L;;;;;N;;;;;
+A2B9;YI SYLLABLE CAP;Lo;0;L;;;;;N;;;;;
+A2BA;YI SYLLABLE CUOX;Lo;0;L;;;;;N;;;;;
+A2BB;YI SYLLABLE CUO;Lo;0;L;;;;;N;;;;;
+A2BC;YI SYLLABLE CUOP;Lo;0;L;;;;;N;;;;;
+A2BD;YI SYLLABLE COT;Lo;0;L;;;;;N;;;;;
+A2BE;YI SYLLABLE COX;Lo;0;L;;;;;N;;;;;
+A2BF;YI SYLLABLE CO;Lo;0;L;;;;;N;;;;;
+A2C0;YI SYLLABLE COP;Lo;0;L;;;;;N;;;;;
+A2C1;YI SYLLABLE CEX;Lo;0;L;;;;;N;;;;;
+A2C2;YI SYLLABLE CE;Lo;0;L;;;;;N;;;;;
+A2C3;YI SYLLABLE CEP;Lo;0;L;;;;;N;;;;;
+A2C4;YI SYLLABLE CUT;Lo;0;L;;;;;N;;;;;
+A2C5;YI SYLLABLE CUX;Lo;0;L;;;;;N;;;;;
+A2C6;YI SYLLABLE CU;Lo;0;L;;;;;N;;;;;
+A2C7;YI SYLLABLE CUP;Lo;0;L;;;;;N;;;;;
+A2C8;YI SYLLABLE CURX;Lo;0;L;;;;;N;;;;;
+A2C9;YI SYLLABLE CUR;Lo;0;L;;;;;N;;;;;
+A2CA;YI SYLLABLE CYT;Lo;0;L;;;;;N;;;;;
+A2CB;YI SYLLABLE CYX;Lo;0;L;;;;;N;;;;;
+A2CC;YI SYLLABLE CY;Lo;0;L;;;;;N;;;;;
+A2CD;YI SYLLABLE CYP;Lo;0;L;;;;;N;;;;;
+A2CE;YI SYLLABLE CYRX;Lo;0;L;;;;;N;;;;;
+A2CF;YI SYLLABLE CYR;Lo;0;L;;;;;N;;;;;
+A2D0;YI SYLLABLE ZZIT;Lo;0;L;;;;;N;;;;;
+A2D1;YI SYLLABLE ZZIX;Lo;0;L;;;;;N;;;;;
+A2D2;YI SYLLABLE ZZI;Lo;0;L;;;;;N;;;;;
+A2D3;YI SYLLABLE ZZIP;Lo;0;L;;;;;N;;;;;
+A2D4;YI SYLLABLE ZZIET;Lo;0;L;;;;;N;;;;;
+A2D5;YI SYLLABLE ZZIEX;Lo;0;L;;;;;N;;;;;
+A2D6;YI SYLLABLE ZZIE;Lo;0;L;;;;;N;;;;;
+A2D7;YI SYLLABLE ZZIEP;Lo;0;L;;;;;N;;;;;
+A2D8;YI SYLLABLE ZZAT;Lo;0;L;;;;;N;;;;;
+A2D9;YI SYLLABLE ZZAX;Lo;0;L;;;;;N;;;;;
+A2DA;YI SYLLABLE ZZA;Lo;0;L;;;;;N;;;;;
+A2DB;YI SYLLABLE ZZAP;Lo;0;L;;;;;N;;;;;
+A2DC;YI SYLLABLE ZZOX;Lo;0;L;;;;;N;;;;;
+A2DD;YI SYLLABLE ZZO;Lo;0;L;;;;;N;;;;;
+A2DE;YI SYLLABLE ZZOP;Lo;0;L;;;;;N;;;;;
+A2DF;YI SYLLABLE ZZEX;Lo;0;L;;;;;N;;;;;
+A2E0;YI SYLLABLE ZZE;Lo;0;L;;;;;N;;;;;
+A2E1;YI SYLLABLE ZZEP;Lo;0;L;;;;;N;;;;;
+A2E2;YI SYLLABLE ZZUX;Lo;0;L;;;;;N;;;;;
+A2E3;YI SYLLABLE ZZU;Lo;0;L;;;;;N;;;;;
+A2E4;YI SYLLABLE ZZUP;Lo;0;L;;;;;N;;;;;
+A2E5;YI SYLLABLE ZZURX;Lo;0;L;;;;;N;;;;;
+A2E6;YI SYLLABLE ZZUR;Lo;0;L;;;;;N;;;;;
+A2E7;YI SYLLABLE ZZYT;Lo;0;L;;;;;N;;;;;
+A2E8;YI SYLLABLE ZZYX;Lo;0;L;;;;;N;;;;;
+A2E9;YI SYLLABLE ZZY;Lo;0;L;;;;;N;;;;;
+A2EA;YI SYLLABLE ZZYP;Lo;0;L;;;;;N;;;;;
+A2EB;YI SYLLABLE ZZYRX;Lo;0;L;;;;;N;;;;;
+A2EC;YI SYLLABLE ZZYR;Lo;0;L;;;;;N;;;;;
+A2ED;YI SYLLABLE NZIT;Lo;0;L;;;;;N;;;;;
+A2EE;YI SYLLABLE NZIX;Lo;0;L;;;;;N;;;;;
+A2EF;YI SYLLABLE NZI;Lo;0;L;;;;;N;;;;;
+A2F0;YI SYLLABLE NZIP;Lo;0;L;;;;;N;;;;;
+A2F1;YI SYLLABLE NZIEX;Lo;0;L;;;;;N;;;;;
+A2F2;YI SYLLABLE NZIE;Lo;0;L;;;;;N;;;;;
+A2F3;YI SYLLABLE NZIEP;Lo;0;L;;;;;N;;;;;
+A2F4;YI SYLLABLE NZAT;Lo;0;L;;;;;N;;;;;
+A2F5;YI SYLLABLE NZAX;Lo;0;L;;;;;N;;;;;
+A2F6;YI SYLLABLE NZA;Lo;0;L;;;;;N;;;;;
+A2F7;YI SYLLABLE NZAP;Lo;0;L;;;;;N;;;;;
+A2F8;YI SYLLABLE NZUOX;Lo;0;L;;;;;N;;;;;
+A2F9;YI SYLLABLE NZUO;Lo;0;L;;;;;N;;;;;
+A2FA;YI SYLLABLE NZOX;Lo;0;L;;;;;N;;;;;
+A2FB;YI SYLLABLE NZOP;Lo;0;L;;;;;N;;;;;
+A2FC;YI SYLLABLE NZEX;Lo;0;L;;;;;N;;;;;
+A2FD;YI SYLLABLE NZE;Lo;0;L;;;;;N;;;;;
+A2FE;YI SYLLABLE NZUX;Lo;0;L;;;;;N;;;;;
+A2FF;YI SYLLABLE NZU;Lo;0;L;;;;;N;;;;;
+A300;YI SYLLABLE NZUP;Lo;0;L;;;;;N;;;;;
+A301;YI SYLLABLE NZURX;Lo;0;L;;;;;N;;;;;
+A302;YI SYLLABLE NZUR;Lo;0;L;;;;;N;;;;;
+A303;YI SYLLABLE NZYT;Lo;0;L;;;;;N;;;;;
+A304;YI SYLLABLE NZYX;Lo;0;L;;;;;N;;;;;
+A305;YI SYLLABLE NZY;Lo;0;L;;;;;N;;;;;
+A306;YI SYLLABLE NZYP;Lo;0;L;;;;;N;;;;;
+A307;YI SYLLABLE NZYRX;Lo;0;L;;;;;N;;;;;
+A308;YI SYLLABLE NZYR;Lo;0;L;;;;;N;;;;;
+A309;YI SYLLABLE SIT;Lo;0;L;;;;;N;;;;;
+A30A;YI SYLLABLE SIX;Lo;0;L;;;;;N;;;;;
+A30B;YI SYLLABLE SI;Lo;0;L;;;;;N;;;;;
+A30C;YI SYLLABLE SIP;Lo;0;L;;;;;N;;;;;
+A30D;YI SYLLABLE SIEX;Lo;0;L;;;;;N;;;;;
+A30E;YI SYLLABLE SIE;Lo;0;L;;;;;N;;;;;
+A30F;YI SYLLABLE SIEP;Lo;0;L;;;;;N;;;;;
+A310;YI SYLLABLE SAT;Lo;0;L;;;;;N;;;;;
+A311;YI SYLLABLE SAX;Lo;0;L;;;;;N;;;;;
+A312;YI SYLLABLE SA;Lo;0;L;;;;;N;;;;;
+A313;YI SYLLABLE SAP;Lo;0;L;;;;;N;;;;;
+A314;YI SYLLABLE SUOX;Lo;0;L;;;;;N;;;;;
+A315;YI SYLLABLE SUO;Lo;0;L;;;;;N;;;;;
+A316;YI SYLLABLE SUOP;Lo;0;L;;;;;N;;;;;
+A317;YI SYLLABLE SOT;Lo;0;L;;;;;N;;;;;
+A318;YI SYLLABLE SOX;Lo;0;L;;;;;N;;;;;
+A319;YI SYLLABLE SO;Lo;0;L;;;;;N;;;;;
+A31A;YI SYLLABLE SOP;Lo;0;L;;;;;N;;;;;
+A31B;YI SYLLABLE SEX;Lo;0;L;;;;;N;;;;;
+A31C;YI SYLLABLE SE;Lo;0;L;;;;;N;;;;;
+A31D;YI SYLLABLE SEP;Lo;0;L;;;;;N;;;;;
+A31E;YI SYLLABLE SUT;Lo;0;L;;;;;N;;;;;
+A31F;YI SYLLABLE SUX;Lo;0;L;;;;;N;;;;;
+A320;YI SYLLABLE SU;Lo;0;L;;;;;N;;;;;
+A321;YI SYLLABLE SUP;Lo;0;L;;;;;N;;;;;
+A322;YI SYLLABLE SURX;Lo;0;L;;;;;N;;;;;
+A323;YI SYLLABLE SUR;Lo;0;L;;;;;N;;;;;
+A324;YI SYLLABLE SYT;Lo;0;L;;;;;N;;;;;
+A325;YI SYLLABLE SYX;Lo;0;L;;;;;N;;;;;
+A326;YI SYLLABLE SY;Lo;0;L;;;;;N;;;;;
+A327;YI SYLLABLE SYP;Lo;0;L;;;;;N;;;;;
+A328;YI SYLLABLE SYRX;Lo;0;L;;;;;N;;;;;
+A329;YI SYLLABLE SYR;Lo;0;L;;;;;N;;;;;
+A32A;YI SYLLABLE SSIT;Lo;0;L;;;;;N;;;;;
+A32B;YI SYLLABLE SSIX;Lo;0;L;;;;;N;;;;;
+A32C;YI SYLLABLE SSI;Lo;0;L;;;;;N;;;;;
+A32D;YI SYLLABLE SSIP;Lo;0;L;;;;;N;;;;;
+A32E;YI SYLLABLE SSIEX;Lo;0;L;;;;;N;;;;;
+A32F;YI SYLLABLE SSIE;Lo;0;L;;;;;N;;;;;
+A330;YI SYLLABLE SSIEP;Lo;0;L;;;;;N;;;;;
+A331;YI SYLLABLE SSAT;Lo;0;L;;;;;N;;;;;
+A332;YI SYLLABLE SSAX;Lo;0;L;;;;;N;;;;;
+A333;YI SYLLABLE SSA;Lo;0;L;;;;;N;;;;;
+A334;YI SYLLABLE SSAP;Lo;0;L;;;;;N;;;;;
+A335;YI SYLLABLE SSOT;Lo;0;L;;;;;N;;;;;
+A336;YI SYLLABLE SSOX;Lo;0;L;;;;;N;;;;;
+A337;YI SYLLABLE SSO;Lo;0;L;;;;;N;;;;;
+A338;YI SYLLABLE SSOP;Lo;0;L;;;;;N;;;;;
+A339;YI SYLLABLE SSEX;Lo;0;L;;;;;N;;;;;
+A33A;YI SYLLABLE SSE;Lo;0;L;;;;;N;;;;;
+A33B;YI SYLLABLE SSEP;Lo;0;L;;;;;N;;;;;
+A33C;YI SYLLABLE SSUT;Lo;0;L;;;;;N;;;;;
+A33D;YI SYLLABLE SSUX;Lo;0;L;;;;;N;;;;;
+A33E;YI SYLLABLE SSU;Lo;0;L;;;;;N;;;;;
+A33F;YI SYLLABLE SSUP;Lo;0;L;;;;;N;;;;;
+A340;YI SYLLABLE SSYT;Lo;0;L;;;;;N;;;;;
+A341;YI SYLLABLE SSYX;Lo;0;L;;;;;N;;;;;
+A342;YI SYLLABLE SSY;Lo;0;L;;;;;N;;;;;
+A343;YI SYLLABLE SSYP;Lo;0;L;;;;;N;;;;;
+A344;YI SYLLABLE SSYRX;Lo;0;L;;;;;N;;;;;
+A345;YI SYLLABLE SSYR;Lo;0;L;;;;;N;;;;;
+A346;YI SYLLABLE ZHAT;Lo;0;L;;;;;N;;;;;
+A347;YI SYLLABLE ZHAX;Lo;0;L;;;;;N;;;;;
+A348;YI SYLLABLE ZHA;Lo;0;L;;;;;N;;;;;
+A349;YI SYLLABLE ZHAP;Lo;0;L;;;;;N;;;;;
+A34A;YI SYLLABLE ZHUOX;Lo;0;L;;;;;N;;;;;
+A34B;YI SYLLABLE ZHUO;Lo;0;L;;;;;N;;;;;
+A34C;YI SYLLABLE ZHUOP;Lo;0;L;;;;;N;;;;;
+A34D;YI SYLLABLE ZHOT;Lo;0;L;;;;;N;;;;;
+A34E;YI SYLLABLE ZHOX;Lo;0;L;;;;;N;;;;;
+A34F;YI SYLLABLE ZHO;Lo;0;L;;;;;N;;;;;
+A350;YI SYLLABLE ZHOP;Lo;0;L;;;;;N;;;;;
+A351;YI SYLLABLE ZHET;Lo;0;L;;;;;N;;;;;
+A352;YI SYLLABLE ZHEX;Lo;0;L;;;;;N;;;;;
+A353;YI SYLLABLE ZHE;Lo;0;L;;;;;N;;;;;
+A354;YI SYLLABLE ZHEP;Lo;0;L;;;;;N;;;;;
+A355;YI SYLLABLE ZHUT;Lo;0;L;;;;;N;;;;;
+A356;YI SYLLABLE ZHUX;Lo;0;L;;;;;N;;;;;
+A357;YI SYLLABLE ZHU;Lo;0;L;;;;;N;;;;;
+A358;YI SYLLABLE ZHUP;Lo;0;L;;;;;N;;;;;
+A359;YI SYLLABLE ZHURX;Lo;0;L;;;;;N;;;;;
+A35A;YI SYLLABLE ZHUR;Lo;0;L;;;;;N;;;;;
+A35B;YI SYLLABLE ZHYT;Lo;0;L;;;;;N;;;;;
+A35C;YI SYLLABLE ZHYX;Lo;0;L;;;;;N;;;;;
+A35D;YI SYLLABLE ZHY;Lo;0;L;;;;;N;;;;;
+A35E;YI SYLLABLE ZHYP;Lo;0;L;;;;;N;;;;;
+A35F;YI SYLLABLE ZHYRX;Lo;0;L;;;;;N;;;;;
+A360;YI SYLLABLE ZHYR;Lo;0;L;;;;;N;;;;;
+A361;YI SYLLABLE CHAT;Lo;0;L;;;;;N;;;;;
+A362;YI SYLLABLE CHAX;Lo;0;L;;;;;N;;;;;
+A363;YI SYLLABLE CHA;Lo;0;L;;;;;N;;;;;
+A364;YI SYLLABLE CHAP;Lo;0;L;;;;;N;;;;;
+A365;YI SYLLABLE CHUOT;Lo;0;L;;;;;N;;;;;
+A366;YI SYLLABLE CHUOX;Lo;0;L;;;;;N;;;;;
+A367;YI SYLLABLE CHUO;Lo;0;L;;;;;N;;;;;
+A368;YI SYLLABLE CHUOP;Lo;0;L;;;;;N;;;;;
+A369;YI SYLLABLE CHOT;Lo;0;L;;;;;N;;;;;
+A36A;YI SYLLABLE CHOX;Lo;0;L;;;;;N;;;;;
+A36B;YI SYLLABLE CHO;Lo;0;L;;;;;N;;;;;
+A36C;YI SYLLABLE CHOP;Lo;0;L;;;;;N;;;;;
+A36D;YI SYLLABLE CHET;Lo;0;L;;;;;N;;;;;
+A36E;YI SYLLABLE CHEX;Lo;0;L;;;;;N;;;;;
+A36F;YI SYLLABLE CHE;Lo;0;L;;;;;N;;;;;
+A370;YI SYLLABLE CHEP;Lo;0;L;;;;;N;;;;;
+A371;YI SYLLABLE CHUX;Lo;0;L;;;;;N;;;;;
+A372;YI SYLLABLE CHU;Lo;0;L;;;;;N;;;;;
+A373;YI SYLLABLE CHUP;Lo;0;L;;;;;N;;;;;
+A374;YI SYLLABLE CHURX;Lo;0;L;;;;;N;;;;;
+A375;YI SYLLABLE CHUR;Lo;0;L;;;;;N;;;;;
+A376;YI SYLLABLE CHYT;Lo;0;L;;;;;N;;;;;
+A377;YI SYLLABLE CHYX;Lo;0;L;;;;;N;;;;;
+A378;YI SYLLABLE CHY;Lo;0;L;;;;;N;;;;;
+A379;YI SYLLABLE CHYP;Lo;0;L;;;;;N;;;;;
+A37A;YI SYLLABLE CHYRX;Lo;0;L;;;;;N;;;;;
+A37B;YI SYLLABLE CHYR;Lo;0;L;;;;;N;;;;;
+A37C;YI SYLLABLE RRAX;Lo;0;L;;;;;N;;;;;
+A37D;YI SYLLABLE RRA;Lo;0;L;;;;;N;;;;;
+A37E;YI SYLLABLE RRUOX;Lo;0;L;;;;;N;;;;;
+A37F;YI SYLLABLE RRUO;Lo;0;L;;;;;N;;;;;
+A380;YI SYLLABLE RROT;Lo;0;L;;;;;N;;;;;
+A381;YI SYLLABLE RROX;Lo;0;L;;;;;N;;;;;
+A382;YI SYLLABLE RRO;Lo;0;L;;;;;N;;;;;
+A383;YI SYLLABLE RROP;Lo;0;L;;;;;N;;;;;
+A384;YI SYLLABLE RRET;Lo;0;L;;;;;N;;;;;
+A385;YI SYLLABLE RREX;Lo;0;L;;;;;N;;;;;
+A386;YI SYLLABLE RRE;Lo;0;L;;;;;N;;;;;
+A387;YI SYLLABLE RREP;Lo;0;L;;;;;N;;;;;
+A388;YI SYLLABLE RRUT;Lo;0;L;;;;;N;;;;;
+A389;YI SYLLABLE RRUX;Lo;0;L;;;;;N;;;;;
+A38A;YI SYLLABLE RRU;Lo;0;L;;;;;N;;;;;
+A38B;YI SYLLABLE RRUP;Lo;0;L;;;;;N;;;;;
+A38C;YI SYLLABLE RRURX;Lo;0;L;;;;;N;;;;;
+A38D;YI SYLLABLE RRUR;Lo;0;L;;;;;N;;;;;
+A38E;YI SYLLABLE RRYT;Lo;0;L;;;;;N;;;;;
+A38F;YI SYLLABLE RRYX;Lo;0;L;;;;;N;;;;;
+A390;YI SYLLABLE RRY;Lo;0;L;;;;;N;;;;;
+A391;YI SYLLABLE RRYP;Lo;0;L;;;;;N;;;;;
+A392;YI SYLLABLE RRYRX;Lo;0;L;;;;;N;;;;;
+A393;YI SYLLABLE RRYR;Lo;0;L;;;;;N;;;;;
+A394;YI SYLLABLE NRAT;Lo;0;L;;;;;N;;;;;
+A395;YI SYLLABLE NRAX;Lo;0;L;;;;;N;;;;;
+A396;YI SYLLABLE NRA;Lo;0;L;;;;;N;;;;;
+A397;YI SYLLABLE NRAP;Lo;0;L;;;;;N;;;;;
+A398;YI SYLLABLE NROX;Lo;0;L;;;;;N;;;;;
+A399;YI SYLLABLE NRO;Lo;0;L;;;;;N;;;;;
+A39A;YI SYLLABLE NROP;Lo;0;L;;;;;N;;;;;
+A39B;YI SYLLABLE NRET;Lo;0;L;;;;;N;;;;;
+A39C;YI SYLLABLE NREX;Lo;0;L;;;;;N;;;;;
+A39D;YI SYLLABLE NRE;Lo;0;L;;;;;N;;;;;
+A39E;YI SYLLABLE NREP;Lo;0;L;;;;;N;;;;;
+A39F;YI SYLLABLE NRUT;Lo;0;L;;;;;N;;;;;
+A3A0;YI SYLLABLE NRUX;Lo;0;L;;;;;N;;;;;
+A3A1;YI SYLLABLE NRU;Lo;0;L;;;;;N;;;;;
+A3A2;YI SYLLABLE NRUP;Lo;0;L;;;;;N;;;;;
+A3A3;YI SYLLABLE NRURX;Lo;0;L;;;;;N;;;;;
+A3A4;YI SYLLABLE NRUR;Lo;0;L;;;;;N;;;;;
+A3A5;YI SYLLABLE NRYT;Lo;0;L;;;;;N;;;;;
+A3A6;YI SYLLABLE NRYX;Lo;0;L;;;;;N;;;;;
+A3A7;YI SYLLABLE NRY;Lo;0;L;;;;;N;;;;;
+A3A8;YI SYLLABLE NRYP;Lo;0;L;;;;;N;;;;;
+A3A9;YI SYLLABLE NRYRX;Lo;0;L;;;;;N;;;;;
+A3AA;YI SYLLABLE NRYR;Lo;0;L;;;;;N;;;;;
+A3AB;YI SYLLABLE SHAT;Lo;0;L;;;;;N;;;;;
+A3AC;YI SYLLABLE SHAX;Lo;0;L;;;;;N;;;;;
+A3AD;YI SYLLABLE SHA;Lo;0;L;;;;;N;;;;;
+A3AE;YI SYLLABLE SHAP;Lo;0;L;;;;;N;;;;;
+A3AF;YI SYLLABLE SHUOX;Lo;0;L;;;;;N;;;;;
+A3B0;YI SYLLABLE SHUO;Lo;0;L;;;;;N;;;;;
+A3B1;YI SYLLABLE SHUOP;Lo;0;L;;;;;N;;;;;
+A3B2;YI SYLLABLE SHOT;Lo;0;L;;;;;N;;;;;
+A3B3;YI SYLLABLE SHOX;Lo;0;L;;;;;N;;;;;
+A3B4;YI SYLLABLE SHO;Lo;0;L;;;;;N;;;;;
+A3B5;YI SYLLABLE SHOP;Lo;0;L;;;;;N;;;;;
+A3B6;YI SYLLABLE SHET;Lo;0;L;;;;;N;;;;;
+A3B7;YI SYLLABLE SHEX;Lo;0;L;;;;;N;;;;;
+A3B8;YI SYLLABLE SHE;Lo;0;L;;;;;N;;;;;
+A3B9;YI SYLLABLE SHEP;Lo;0;L;;;;;N;;;;;
+A3BA;YI SYLLABLE SHUT;Lo;0;L;;;;;N;;;;;
+A3BB;YI SYLLABLE SHUX;Lo;0;L;;;;;N;;;;;
+A3BC;YI SYLLABLE SHU;Lo;0;L;;;;;N;;;;;
+A3BD;YI SYLLABLE SHUP;Lo;0;L;;;;;N;;;;;
+A3BE;YI SYLLABLE SHURX;Lo;0;L;;;;;N;;;;;
+A3BF;YI SYLLABLE SHUR;Lo;0;L;;;;;N;;;;;
+A3C0;YI SYLLABLE SHYT;Lo;0;L;;;;;N;;;;;
+A3C1;YI SYLLABLE SHYX;Lo;0;L;;;;;N;;;;;
+A3C2;YI SYLLABLE SHY;Lo;0;L;;;;;N;;;;;
+A3C3;YI SYLLABLE SHYP;Lo;0;L;;;;;N;;;;;
+A3C4;YI SYLLABLE SHYRX;Lo;0;L;;;;;N;;;;;
+A3C5;YI SYLLABLE SHYR;Lo;0;L;;;;;N;;;;;
+A3C6;YI SYLLABLE RAT;Lo;0;L;;;;;N;;;;;
+A3C7;YI SYLLABLE RAX;Lo;0;L;;;;;N;;;;;
+A3C8;YI SYLLABLE RA;Lo;0;L;;;;;N;;;;;
+A3C9;YI SYLLABLE RAP;Lo;0;L;;;;;N;;;;;
+A3CA;YI SYLLABLE RUOX;Lo;0;L;;;;;N;;;;;
+A3CB;YI SYLLABLE RUO;Lo;0;L;;;;;N;;;;;
+A3CC;YI SYLLABLE RUOP;Lo;0;L;;;;;N;;;;;
+A3CD;YI SYLLABLE ROT;Lo;0;L;;;;;N;;;;;
+A3CE;YI SYLLABLE ROX;Lo;0;L;;;;;N;;;;;
+A3CF;YI SYLLABLE RO;Lo;0;L;;;;;N;;;;;
+A3D0;YI SYLLABLE ROP;Lo;0;L;;;;;N;;;;;
+A3D1;YI SYLLABLE REX;Lo;0;L;;;;;N;;;;;
+A3D2;YI SYLLABLE RE;Lo;0;L;;;;;N;;;;;
+A3D3;YI SYLLABLE REP;Lo;0;L;;;;;N;;;;;
+A3D4;YI SYLLABLE RUT;Lo;0;L;;;;;N;;;;;
+A3D5;YI SYLLABLE RUX;Lo;0;L;;;;;N;;;;;
+A3D6;YI SYLLABLE RU;Lo;0;L;;;;;N;;;;;
+A3D7;YI SYLLABLE RUP;Lo;0;L;;;;;N;;;;;
+A3D8;YI SYLLABLE RURX;Lo;0;L;;;;;N;;;;;
+A3D9;YI SYLLABLE RUR;Lo;0;L;;;;;N;;;;;
+A3DA;YI SYLLABLE RYT;Lo;0;L;;;;;N;;;;;
+A3DB;YI SYLLABLE RYX;Lo;0;L;;;;;N;;;;;
+A3DC;YI SYLLABLE RY;Lo;0;L;;;;;N;;;;;
+A3DD;YI SYLLABLE RYP;Lo;0;L;;;;;N;;;;;
+A3DE;YI SYLLABLE RYRX;Lo;0;L;;;;;N;;;;;
+A3DF;YI SYLLABLE RYR;Lo;0;L;;;;;N;;;;;
+A3E0;YI SYLLABLE JIT;Lo;0;L;;;;;N;;;;;
+A3E1;YI SYLLABLE JIX;Lo;0;L;;;;;N;;;;;
+A3E2;YI SYLLABLE JI;Lo;0;L;;;;;N;;;;;
+A3E3;YI SYLLABLE JIP;Lo;0;L;;;;;N;;;;;
+A3E4;YI SYLLABLE JIET;Lo;0;L;;;;;N;;;;;
+A3E5;YI SYLLABLE JIEX;Lo;0;L;;;;;N;;;;;
+A3E6;YI SYLLABLE JIE;Lo;0;L;;;;;N;;;;;
+A3E7;YI SYLLABLE JIEP;Lo;0;L;;;;;N;;;;;
+A3E8;YI SYLLABLE JUOT;Lo;0;L;;;;;N;;;;;
+A3E9;YI SYLLABLE JUOX;Lo;0;L;;;;;N;;;;;
+A3EA;YI SYLLABLE JUO;Lo;0;L;;;;;N;;;;;
+A3EB;YI SYLLABLE JUOP;Lo;0;L;;;;;N;;;;;
+A3EC;YI SYLLABLE JOT;Lo;0;L;;;;;N;;;;;
+A3ED;YI SYLLABLE JOX;Lo;0;L;;;;;N;;;;;
+A3EE;YI SYLLABLE JO;Lo;0;L;;;;;N;;;;;
+A3EF;YI SYLLABLE JOP;Lo;0;L;;;;;N;;;;;
+A3F0;YI SYLLABLE JUT;Lo;0;L;;;;;N;;;;;
+A3F1;YI SYLLABLE JUX;Lo;0;L;;;;;N;;;;;
+A3F2;YI SYLLABLE JU;Lo;0;L;;;;;N;;;;;
+A3F3;YI SYLLABLE JUP;Lo;0;L;;;;;N;;;;;
+A3F4;YI SYLLABLE JURX;Lo;0;L;;;;;N;;;;;
+A3F5;YI SYLLABLE JUR;Lo;0;L;;;;;N;;;;;
+A3F6;YI SYLLABLE JYT;Lo;0;L;;;;;N;;;;;
+A3F7;YI SYLLABLE JYX;Lo;0;L;;;;;N;;;;;
+A3F8;YI SYLLABLE JY;Lo;0;L;;;;;N;;;;;
+A3F9;YI SYLLABLE JYP;Lo;0;L;;;;;N;;;;;
+A3FA;YI SYLLABLE JYRX;Lo;0;L;;;;;N;;;;;
+A3FB;YI SYLLABLE JYR;Lo;0;L;;;;;N;;;;;
+A3FC;YI SYLLABLE QIT;Lo;0;L;;;;;N;;;;;
+A3FD;YI SYLLABLE QIX;Lo;0;L;;;;;N;;;;;
+A3FE;YI SYLLABLE QI;Lo;0;L;;;;;N;;;;;
+A3FF;YI SYLLABLE QIP;Lo;0;L;;;;;N;;;;;
+A400;YI SYLLABLE QIET;Lo;0;L;;;;;N;;;;;
+A401;YI SYLLABLE QIEX;Lo;0;L;;;;;N;;;;;
+A402;YI SYLLABLE QIE;Lo;0;L;;;;;N;;;;;
+A403;YI SYLLABLE QIEP;Lo;0;L;;;;;N;;;;;
+A404;YI SYLLABLE QUOT;Lo;0;L;;;;;N;;;;;
+A405;YI SYLLABLE QUOX;Lo;0;L;;;;;N;;;;;
+A406;YI SYLLABLE QUO;Lo;0;L;;;;;N;;;;;
+A407;YI SYLLABLE QUOP;Lo;0;L;;;;;N;;;;;
+A408;YI SYLLABLE QOT;Lo;0;L;;;;;N;;;;;
+A409;YI SYLLABLE QOX;Lo;0;L;;;;;N;;;;;
+A40A;YI SYLLABLE QO;Lo;0;L;;;;;N;;;;;
+A40B;YI SYLLABLE QOP;Lo;0;L;;;;;N;;;;;
+A40C;YI SYLLABLE QUT;Lo;0;L;;;;;N;;;;;
+A40D;YI SYLLABLE QUX;Lo;0;L;;;;;N;;;;;
+A40E;YI SYLLABLE QU;Lo;0;L;;;;;N;;;;;
+A40F;YI SYLLABLE QUP;Lo;0;L;;;;;N;;;;;
+A410;YI SYLLABLE QURX;Lo;0;L;;;;;N;;;;;
+A411;YI SYLLABLE QUR;Lo;0;L;;;;;N;;;;;
+A412;YI SYLLABLE QYT;Lo;0;L;;;;;N;;;;;
+A413;YI SYLLABLE QYX;Lo;0;L;;;;;N;;;;;
+A414;YI SYLLABLE QY;Lo;0;L;;;;;N;;;;;
+A415;YI SYLLABLE QYP;Lo;0;L;;;;;N;;;;;
+A416;YI SYLLABLE QYRX;Lo;0;L;;;;;N;;;;;
+A417;YI SYLLABLE QYR;Lo;0;L;;;;;N;;;;;
+A418;YI SYLLABLE JJIT;Lo;0;L;;;;;N;;;;;
+A419;YI SYLLABLE JJIX;Lo;0;L;;;;;N;;;;;
+A41A;YI SYLLABLE JJI;Lo;0;L;;;;;N;;;;;
+A41B;YI SYLLABLE JJIP;Lo;0;L;;;;;N;;;;;
+A41C;YI SYLLABLE JJIET;Lo;0;L;;;;;N;;;;;
+A41D;YI SYLLABLE JJIEX;Lo;0;L;;;;;N;;;;;
+A41E;YI SYLLABLE JJIE;Lo;0;L;;;;;N;;;;;
+A41F;YI SYLLABLE JJIEP;Lo;0;L;;;;;N;;;;;
+A420;YI SYLLABLE JJUOX;Lo;0;L;;;;;N;;;;;
+A421;YI SYLLABLE JJUO;Lo;0;L;;;;;N;;;;;
+A422;YI SYLLABLE JJUOP;Lo;0;L;;;;;N;;;;;
+A423;YI SYLLABLE JJOT;Lo;0;L;;;;;N;;;;;
+A424;YI SYLLABLE JJOX;Lo;0;L;;;;;N;;;;;
+A425;YI SYLLABLE JJO;Lo;0;L;;;;;N;;;;;
+A426;YI SYLLABLE JJOP;Lo;0;L;;;;;N;;;;;
+A427;YI SYLLABLE JJUT;Lo;0;L;;;;;N;;;;;
+A428;YI SYLLABLE JJUX;Lo;0;L;;;;;N;;;;;
+A429;YI SYLLABLE JJU;Lo;0;L;;;;;N;;;;;
+A42A;YI SYLLABLE JJUP;Lo;0;L;;;;;N;;;;;
+A42B;YI SYLLABLE JJURX;Lo;0;L;;;;;N;;;;;
+A42C;YI SYLLABLE JJUR;Lo;0;L;;;;;N;;;;;
+A42D;YI SYLLABLE JJYT;Lo;0;L;;;;;N;;;;;
+A42E;YI SYLLABLE JJYX;Lo;0;L;;;;;N;;;;;
+A42F;YI SYLLABLE JJY;Lo;0;L;;;;;N;;;;;
+A430;YI SYLLABLE JJYP;Lo;0;L;;;;;N;;;;;
+A431;YI SYLLABLE NJIT;Lo;0;L;;;;;N;;;;;
+A432;YI SYLLABLE NJIX;Lo;0;L;;;;;N;;;;;
+A433;YI SYLLABLE NJI;Lo;0;L;;;;;N;;;;;
+A434;YI SYLLABLE NJIP;Lo;0;L;;;;;N;;;;;
+A435;YI SYLLABLE NJIET;Lo;0;L;;;;;N;;;;;
+A436;YI SYLLABLE NJIEX;Lo;0;L;;;;;N;;;;;
+A437;YI SYLLABLE NJIE;Lo;0;L;;;;;N;;;;;
+A438;YI SYLLABLE NJIEP;Lo;0;L;;;;;N;;;;;
+A439;YI SYLLABLE NJUOX;Lo;0;L;;;;;N;;;;;
+A43A;YI SYLLABLE NJUO;Lo;0;L;;;;;N;;;;;
+A43B;YI SYLLABLE NJOT;Lo;0;L;;;;;N;;;;;
+A43C;YI SYLLABLE NJOX;Lo;0;L;;;;;N;;;;;
+A43D;YI SYLLABLE NJO;Lo;0;L;;;;;N;;;;;
+A43E;YI SYLLABLE NJOP;Lo;0;L;;;;;N;;;;;
+A43F;YI SYLLABLE NJUX;Lo;0;L;;;;;N;;;;;
+A440;YI SYLLABLE NJU;Lo;0;L;;;;;N;;;;;
+A441;YI SYLLABLE NJUP;Lo;0;L;;;;;N;;;;;
+A442;YI SYLLABLE NJURX;Lo;0;L;;;;;N;;;;;
+A443;YI SYLLABLE NJUR;Lo;0;L;;;;;N;;;;;
+A444;YI SYLLABLE NJYT;Lo;0;L;;;;;N;;;;;
+A445;YI SYLLABLE NJYX;Lo;0;L;;;;;N;;;;;
+A446;YI SYLLABLE NJY;Lo;0;L;;;;;N;;;;;
+A447;YI SYLLABLE NJYP;Lo;0;L;;;;;N;;;;;
+A448;YI SYLLABLE NJYRX;Lo;0;L;;;;;N;;;;;
+A449;YI SYLLABLE NJYR;Lo;0;L;;;;;N;;;;;
+A44A;YI SYLLABLE NYIT;Lo;0;L;;;;;N;;;;;
+A44B;YI SYLLABLE NYIX;Lo;0;L;;;;;N;;;;;
+A44C;YI SYLLABLE NYI;Lo;0;L;;;;;N;;;;;
+A44D;YI SYLLABLE NYIP;Lo;0;L;;;;;N;;;;;
+A44E;YI SYLLABLE NYIET;Lo;0;L;;;;;N;;;;;
+A44F;YI SYLLABLE NYIEX;Lo;0;L;;;;;N;;;;;
+A450;YI SYLLABLE NYIE;Lo;0;L;;;;;N;;;;;
+A451;YI SYLLABLE NYIEP;Lo;0;L;;;;;N;;;;;
+A452;YI SYLLABLE NYUOX;Lo;0;L;;;;;N;;;;;
+A453;YI SYLLABLE NYUO;Lo;0;L;;;;;N;;;;;
+A454;YI SYLLABLE NYUOP;Lo;0;L;;;;;N;;;;;
+A455;YI SYLLABLE NYOT;Lo;0;L;;;;;N;;;;;
+A456;YI SYLLABLE NYOX;Lo;0;L;;;;;N;;;;;
+A457;YI SYLLABLE NYO;Lo;0;L;;;;;N;;;;;
+A458;YI SYLLABLE NYOP;Lo;0;L;;;;;N;;;;;
+A459;YI SYLLABLE NYUT;Lo;0;L;;;;;N;;;;;
+A45A;YI SYLLABLE NYUX;Lo;0;L;;;;;N;;;;;
+A45B;YI SYLLABLE NYU;Lo;0;L;;;;;N;;;;;
+A45C;YI SYLLABLE NYUP;Lo;0;L;;;;;N;;;;;
+A45D;YI SYLLABLE XIT;Lo;0;L;;;;;N;;;;;
+A45E;YI SYLLABLE XIX;Lo;0;L;;;;;N;;;;;
+A45F;YI SYLLABLE XI;Lo;0;L;;;;;N;;;;;
+A460;YI SYLLABLE XIP;Lo;0;L;;;;;N;;;;;
+A461;YI SYLLABLE XIET;Lo;0;L;;;;;N;;;;;
+A462;YI SYLLABLE XIEX;Lo;0;L;;;;;N;;;;;
+A463;YI SYLLABLE XIE;Lo;0;L;;;;;N;;;;;
+A464;YI SYLLABLE XIEP;Lo;0;L;;;;;N;;;;;
+A465;YI SYLLABLE XUOX;Lo;0;L;;;;;N;;;;;
+A466;YI SYLLABLE XUO;Lo;0;L;;;;;N;;;;;
+A467;YI SYLLABLE XOT;Lo;0;L;;;;;N;;;;;
+A468;YI SYLLABLE XOX;Lo;0;L;;;;;N;;;;;
+A469;YI SYLLABLE XO;Lo;0;L;;;;;N;;;;;
+A46A;YI SYLLABLE XOP;Lo;0;L;;;;;N;;;;;
+A46B;YI SYLLABLE XYT;Lo;0;L;;;;;N;;;;;
+A46C;YI SYLLABLE XYX;Lo;0;L;;;;;N;;;;;
+A46D;YI SYLLABLE XY;Lo;0;L;;;;;N;;;;;
+A46E;YI SYLLABLE XYP;Lo;0;L;;;;;N;;;;;
+A46F;YI SYLLABLE XYRX;Lo;0;L;;;;;N;;;;;
+A470;YI SYLLABLE XYR;Lo;0;L;;;;;N;;;;;
+A471;YI SYLLABLE YIT;Lo;0;L;;;;;N;;;;;
+A472;YI SYLLABLE YIX;Lo;0;L;;;;;N;;;;;
+A473;YI SYLLABLE YI;Lo;0;L;;;;;N;;;;;
+A474;YI SYLLABLE YIP;Lo;0;L;;;;;N;;;;;
+A475;YI SYLLABLE YIET;Lo;0;L;;;;;N;;;;;
+A476;YI SYLLABLE YIEX;Lo;0;L;;;;;N;;;;;
+A477;YI SYLLABLE YIE;Lo;0;L;;;;;N;;;;;
+A478;YI SYLLABLE YIEP;Lo;0;L;;;;;N;;;;;
+A479;YI SYLLABLE YUOT;Lo;0;L;;;;;N;;;;;
+A47A;YI SYLLABLE YUOX;Lo;0;L;;;;;N;;;;;
+A47B;YI SYLLABLE YUO;Lo;0;L;;;;;N;;;;;
+A47C;YI SYLLABLE YUOP;Lo;0;L;;;;;N;;;;;
+A47D;YI SYLLABLE YOT;Lo;0;L;;;;;N;;;;;
+A47E;YI SYLLABLE YOX;Lo;0;L;;;;;N;;;;;
+A47F;YI SYLLABLE YO;Lo;0;L;;;;;N;;;;;
+A480;YI SYLLABLE YOP;Lo;0;L;;;;;N;;;;;
+A481;YI SYLLABLE YUT;Lo;0;L;;;;;N;;;;;
+A482;YI SYLLABLE YUX;Lo;0;L;;;;;N;;;;;
+A483;YI SYLLABLE YU;Lo;0;L;;;;;N;;;;;
+A484;YI SYLLABLE YUP;Lo;0;L;;;;;N;;;;;
+A485;YI SYLLABLE YURX;Lo;0;L;;;;;N;;;;;
+A486;YI SYLLABLE YUR;Lo;0;L;;;;;N;;;;;
+A487;YI SYLLABLE YYT;Lo;0;L;;;;;N;;;;;
+A488;YI SYLLABLE YYX;Lo;0;L;;;;;N;;;;;
+A489;YI SYLLABLE YY;Lo;0;L;;;;;N;;;;;
+A48A;YI SYLLABLE YYP;Lo;0;L;;;;;N;;;;;
+A48B;YI SYLLABLE YYRX;Lo;0;L;;;;;N;;;;;
+A48C;YI SYLLABLE YYR;Lo;0;L;;;;;N;;;;;
+A490;YI RADICAL QOT;So;0;ON;;;;;N;;;;;
+A491;YI RADICAL LI;So;0;ON;;;;;N;;;;;
+A492;YI RADICAL KIT;So;0;ON;;;;;N;;;;;
+A493;YI RADICAL NYIP;So;0;ON;;;;;N;;;;;
+A494;YI RADICAL CYP;So;0;ON;;;;;N;;;;;
+A495;YI RADICAL SSI;So;0;ON;;;;;N;;;;;
+A496;YI RADICAL GGOP;So;0;ON;;;;;N;;;;;
+A497;YI RADICAL GEP;So;0;ON;;;;;N;;;;;
+A498;YI RADICAL MI;So;0;ON;;;;;N;;;;;
+A499;YI RADICAL HXIT;So;0;ON;;;;;N;;;;;
+A49A;YI RADICAL LYR;So;0;ON;;;;;N;;;;;
+A49B;YI RADICAL BBUT;So;0;ON;;;;;N;;;;;
+A49C;YI RADICAL MOP;So;0;ON;;;;;N;;;;;
+A49D;YI RADICAL YO;So;0;ON;;;;;N;;;;;
+A49E;YI RADICAL PUT;So;0;ON;;;;;N;;;;;
+A49F;YI RADICAL HXUO;So;0;ON;;;;;N;;;;;
+A4A0;YI RADICAL TAT;So;0;ON;;;;;N;;;;;
+A4A1;YI RADICAL GA;So;0;ON;;;;;N;;;;;
+A4A4;YI RADICAL DDUR;So;0;ON;;;;;N;;;;;
+A4A5;YI RADICAL BUR;So;0;ON;;;;;N;;;;;
+A4A6;YI RADICAL GGUO;So;0;ON;;;;;N;;;;;
+A4A7;YI RADICAL NYOP;So;0;ON;;;;;N;;;;;
+A4A8;YI RADICAL TU;So;0;ON;;;;;N;;;;;
+A4A9;YI RADICAL OP;So;0;ON;;;;;N;;;;;
+A4AA;YI RADICAL JJUT;So;0;ON;;;;;N;;;;;
+A4AB;YI RADICAL ZOT;So;0;ON;;;;;N;;;;;
+A4AC;YI RADICAL PYT;So;0;ON;;;;;N;;;;;
+A4AD;YI RADICAL HMO;So;0;ON;;;;;N;;;;;
+A4AE;YI RADICAL YIT;So;0;ON;;;;;N;;;;;
+A4AF;YI RADICAL VUR;So;0;ON;;;;;N;;;;;
+A4B0;YI RADICAL SHY;So;0;ON;;;;;N;;;;;
+A4B1;YI RADICAL VEP;So;0;ON;;;;;N;;;;;
+A4B2;YI RADICAL ZA;So;0;ON;;;;;N;;;;;
+A4B3;YI RADICAL JO;So;0;ON;;;;;N;;;;;
+A4B5;YI RADICAL JJY;So;0;ON;;;;;N;;;;;
+A4B6;YI RADICAL GOT;So;0;ON;;;;;N;;;;;
+A4B7;YI RADICAL JJIE;So;0;ON;;;;;N;;;;;
+A4B8;YI RADICAL WO;So;0;ON;;;;;N;;;;;
+A4B9;YI RADICAL DU;So;0;ON;;;;;N;;;;;
+A4BA;YI RADICAL SHUR;So;0;ON;;;;;N;;;;;
+A4BB;YI RADICAL LIE;So;0;ON;;;;;N;;;;;
+A4BC;YI RADICAL CY;So;0;ON;;;;;N;;;;;
+A4BD;YI RADICAL CUOP;So;0;ON;;;;;N;;;;;
+A4BE;YI RADICAL CIP;So;0;ON;;;;;N;;;;;
+A4BF;YI RADICAL HXOP;So;0;ON;;;;;N;;;;;
+A4C0;YI RADICAL SHAT;So;0;ON;;;;;N;;;;;
+A4C2;YI RADICAL SHOP;So;0;ON;;;;;N;;;;;
+A4C3;YI RADICAL CHE;So;0;ON;;;;;N;;;;;
+A4C4;YI RADICAL ZZIET;So;0;ON;;;;;N;;;;;
+A4C6;YI RADICAL KE;So;0;ON;;;;;N;;;;;
+AC00;<Hangul Syllable, First>;Lo;0;L;;;;;N;;;;;
+D7A3;<Hangul Syllable, Last>;Lo;0;L;;;;;N;;;;;
+D800;<Non Private Use High Surrogate, First>;Cs;0;L;;;;;N;;;;;
+DB7F;<Non Private Use High Surrogate, Last>;Cs;0;L;;;;;N;;;;;
+DB80;<Private Use High Surrogate, First>;Cs;0;L;;;;;N;;;;;
+DBFF;<Private Use High Surrogate, Last>;Cs;0;L;;;;;N;;;;;
+DC00;<Low Surrogate, First>;Cs;0;L;;;;;N;;;;;
+DFFF;<Low Surrogate, Last>;Cs;0;L;;;;;N;;;;;
+E000;<Private Use, First>;Co;0;L;;;;;N;;;;;
+F8FF;<Private Use, Last>;Co;0;L;;;;;N;;;;;
+F900;CJK COMPATIBILITY IDEOGRAPH-F900;Lo;0;L;8C48;;;;N;;;;;
+F901;CJK COMPATIBILITY IDEOGRAPH-F901;Lo;0;L;66F4;;;;N;;;;;
+F902;CJK COMPATIBILITY IDEOGRAPH-F902;Lo;0;L;8ECA;;;;N;;;;;
+F903;CJK COMPATIBILITY IDEOGRAPH-F903;Lo;0;L;8CC8;;;;N;;;;;
+F904;CJK COMPATIBILITY IDEOGRAPH-F904;Lo;0;L;6ED1;;;;N;;;;;
+F905;CJK COMPATIBILITY IDEOGRAPH-F905;Lo;0;L;4E32;;;;N;;;;;
+F906;CJK COMPATIBILITY IDEOGRAPH-F906;Lo;0;L;53E5;;;;N;;;;;
+F907;CJK COMPATIBILITY IDEOGRAPH-F907;Lo;0;L;9F9C;;;;N;;;;;
+F908;CJK COMPATIBILITY IDEOGRAPH-F908;Lo;0;L;9F9C;;;;N;;;;;
+F909;CJK COMPATIBILITY IDEOGRAPH-F909;Lo;0;L;5951;;;;N;;;;;
+F90A;CJK COMPATIBILITY IDEOGRAPH-F90A;Lo;0;L;91D1;;;;N;;;;;
+F90B;CJK COMPATIBILITY IDEOGRAPH-F90B;Lo;0;L;5587;;;;N;;;;;
+F90C;CJK COMPATIBILITY IDEOGRAPH-F90C;Lo;0;L;5948;;;;N;;;;;
+F90D;CJK COMPATIBILITY IDEOGRAPH-F90D;Lo;0;L;61F6;;;;N;;;;;
+F90E;CJK COMPATIBILITY IDEOGRAPH-F90E;Lo;0;L;7669;;;;N;;;;;
+F90F;CJK COMPATIBILITY IDEOGRAPH-F90F;Lo;0;L;7F85;;;;N;;;;;
+F910;CJK COMPATIBILITY IDEOGRAPH-F910;Lo;0;L;863F;;;;N;;;;;
+F911;CJK COMPATIBILITY IDEOGRAPH-F911;Lo;0;L;87BA;;;;N;;;;;
+F912;CJK COMPATIBILITY IDEOGRAPH-F912;Lo;0;L;88F8;;;;N;;;;;
+F913;CJK COMPATIBILITY IDEOGRAPH-F913;Lo;0;L;908F;;;;N;;;;;
+F914;CJK COMPATIBILITY IDEOGRAPH-F914;Lo;0;L;6A02;;;;N;;;;;
+F915;CJK COMPATIBILITY IDEOGRAPH-F915;Lo;0;L;6D1B;;;;N;;;;;
+F916;CJK COMPATIBILITY IDEOGRAPH-F916;Lo;0;L;70D9;;;;N;;;;;
+F917;CJK COMPATIBILITY IDEOGRAPH-F917;Lo;0;L;73DE;;;;N;;;;;
+F918;CJK COMPATIBILITY IDEOGRAPH-F918;Lo;0;L;843D;;;;N;;;;;
+F919;CJK COMPATIBILITY IDEOGRAPH-F919;Lo;0;L;916A;;;;N;;;;;
+F91A;CJK COMPATIBILITY IDEOGRAPH-F91A;Lo;0;L;99F1;;;;N;;;;;
+F91B;CJK COMPATIBILITY IDEOGRAPH-F91B;Lo;0;L;4E82;;;;N;;;;;
+F91C;CJK COMPATIBILITY IDEOGRAPH-F91C;Lo;0;L;5375;;;;N;;;;;
+F91D;CJK COMPATIBILITY IDEOGRAPH-F91D;Lo;0;L;6B04;;;;N;;;;;
+F91E;CJK COMPATIBILITY IDEOGRAPH-F91E;Lo;0;L;721B;;;;N;;;;;
+F91F;CJK COMPATIBILITY IDEOGRAPH-F91F;Lo;0;L;862D;;;;N;;;;;
+F920;CJK COMPATIBILITY IDEOGRAPH-F920;Lo;0;L;9E1E;;;;N;;;;;
+F921;CJK COMPATIBILITY IDEOGRAPH-F921;Lo;0;L;5D50;;;;N;;;;;
+F922;CJK COMPATIBILITY IDEOGRAPH-F922;Lo;0;L;6FEB;;;;N;;;;;
+F923;CJK COMPATIBILITY IDEOGRAPH-F923;Lo;0;L;85CD;;;;N;;;;;
+F924;CJK COMPATIBILITY IDEOGRAPH-F924;Lo;0;L;8964;;;;N;;;;;
+F925;CJK COMPATIBILITY IDEOGRAPH-F925;Lo;0;L;62C9;;;;N;;;;;
+F926;CJK COMPATIBILITY IDEOGRAPH-F926;Lo;0;L;81D8;;;;N;;;;;
+F927;CJK COMPATIBILITY IDEOGRAPH-F927;Lo;0;L;881F;;;;N;;;;;
+F928;CJK COMPATIBILITY IDEOGRAPH-F928;Lo;0;L;5ECA;;;;N;;;;;
+F929;CJK COMPATIBILITY IDEOGRAPH-F929;Lo;0;L;6717;;;;N;;;;;
+F92A;CJK COMPATIBILITY IDEOGRAPH-F92A;Lo;0;L;6D6A;;;;N;;;;;
+F92B;CJK COMPATIBILITY IDEOGRAPH-F92B;Lo;0;L;72FC;;;;N;;;;;
+F92C;CJK COMPATIBILITY IDEOGRAPH-F92C;Lo;0;L;90CE;;;;N;;;;;
+F92D;CJK COMPATIBILITY IDEOGRAPH-F92D;Lo;0;L;4F86;;;;N;;;;;
+F92E;CJK COMPATIBILITY IDEOGRAPH-F92E;Lo;0;L;51B7;;;;N;;;;;
+F92F;CJK COMPATIBILITY IDEOGRAPH-F92F;Lo;0;L;52DE;;;;N;;;;;
+F930;CJK COMPATIBILITY IDEOGRAPH-F930;Lo;0;L;64C4;;;;N;;;;;
+F931;CJK COMPATIBILITY IDEOGRAPH-F931;Lo;0;L;6AD3;;;;N;;;;;
+F932;CJK COMPATIBILITY IDEOGRAPH-F932;Lo;0;L;7210;;;;N;;;;;
+F933;CJK COMPATIBILITY IDEOGRAPH-F933;Lo;0;L;76E7;;;;N;;;;;
+F934;CJK COMPATIBILITY IDEOGRAPH-F934;Lo;0;L;8001;;;;N;;;;;
+F935;CJK COMPATIBILITY IDEOGRAPH-F935;Lo;0;L;8606;;;;N;;;;;
+F936;CJK COMPATIBILITY IDEOGRAPH-F936;Lo;0;L;865C;;;;N;;;;;
+F937;CJK COMPATIBILITY IDEOGRAPH-F937;Lo;0;L;8DEF;;;;N;;;;;
+F938;CJK COMPATIBILITY IDEOGRAPH-F938;Lo;0;L;9732;;;;N;;;;;
+F939;CJK COMPATIBILITY IDEOGRAPH-F939;Lo;0;L;9B6F;;;;N;;;;;
+F93A;CJK COMPATIBILITY IDEOGRAPH-F93A;Lo;0;L;9DFA;;;;N;;;;;
+F93B;CJK COMPATIBILITY IDEOGRAPH-F93B;Lo;0;L;788C;;;;N;;;;;
+F93C;CJK COMPATIBILITY IDEOGRAPH-F93C;Lo;0;L;797F;;;;N;;;;;
+F93D;CJK COMPATIBILITY IDEOGRAPH-F93D;Lo;0;L;7DA0;;;;N;;;;;
+F93E;CJK COMPATIBILITY IDEOGRAPH-F93E;Lo;0;L;83C9;;;;N;;;;;
+F93F;CJK COMPATIBILITY IDEOGRAPH-F93F;Lo;0;L;9304;;;;N;;;;;
+F940;CJK COMPATIBILITY IDEOGRAPH-F940;Lo;0;L;9E7F;;;;N;;;;;
+F941;CJK COMPATIBILITY IDEOGRAPH-F941;Lo;0;L;8AD6;;;;N;;;;;
+F942;CJK COMPATIBILITY IDEOGRAPH-F942;Lo;0;L;58DF;;;;N;;;;;
+F943;CJK COMPATIBILITY IDEOGRAPH-F943;Lo;0;L;5F04;;;;N;;;;;
+F944;CJK COMPATIBILITY IDEOGRAPH-F944;Lo;0;L;7C60;;;;N;;;;;
+F945;CJK COMPATIBILITY IDEOGRAPH-F945;Lo;0;L;807E;;;;N;;;;;
+F946;CJK COMPATIBILITY IDEOGRAPH-F946;Lo;0;L;7262;;;;N;;;;;
+F947;CJK COMPATIBILITY IDEOGRAPH-F947;Lo;0;L;78CA;;;;N;;;;;
+F948;CJK COMPATIBILITY IDEOGRAPH-F948;Lo;0;L;8CC2;;;;N;;;;;
+F949;CJK COMPATIBILITY IDEOGRAPH-F949;Lo;0;L;96F7;;;;N;;;;;
+F94A;CJK COMPATIBILITY IDEOGRAPH-F94A;Lo;0;L;58D8;;;;N;;;;;
+F94B;CJK COMPATIBILITY IDEOGRAPH-F94B;Lo;0;L;5C62;;;;N;;;;;
+F94C;CJK COMPATIBILITY IDEOGRAPH-F94C;Lo;0;L;6A13;;;;N;;;;;
+F94D;CJK COMPATIBILITY IDEOGRAPH-F94D;Lo;0;L;6DDA;;;;N;;;;;
+F94E;CJK COMPATIBILITY IDEOGRAPH-F94E;Lo;0;L;6F0F;;;;N;;;;;
+F94F;CJK COMPATIBILITY IDEOGRAPH-F94F;Lo;0;L;7D2F;;;;N;;;;;
+F950;CJK COMPATIBILITY IDEOGRAPH-F950;Lo;0;L;7E37;;;;N;;;;;
+F951;CJK COMPATIBILITY IDEOGRAPH-F951;Lo;0;L;96FB;;;;N;;;;;
+F952;CJK COMPATIBILITY IDEOGRAPH-F952;Lo;0;L;52D2;;;;N;;;;;
+F953;CJK COMPATIBILITY IDEOGRAPH-F953;Lo;0;L;808B;;;;N;;;;;
+F954;CJK COMPATIBILITY IDEOGRAPH-F954;Lo;0;L;51DC;;;;N;;;;;
+F955;CJK COMPATIBILITY IDEOGRAPH-F955;Lo;0;L;51CC;;;;N;;;;;
+F956;CJK COMPATIBILITY IDEOGRAPH-F956;Lo;0;L;7A1C;;;;N;;;;;
+F957;CJK COMPATIBILITY IDEOGRAPH-F957;Lo;0;L;7DBE;;;;N;;;;;
+F958;CJK COMPATIBILITY IDEOGRAPH-F958;Lo;0;L;83F1;;;;N;;;;;
+F959;CJK COMPATIBILITY IDEOGRAPH-F959;Lo;0;L;9675;;;;N;;;;;
+F95A;CJK COMPATIBILITY IDEOGRAPH-F95A;Lo;0;L;8B80;;;;N;;;;;
+F95B;CJK COMPATIBILITY IDEOGRAPH-F95B;Lo;0;L;62CF;;;;N;;;;;
+F95C;CJK COMPATIBILITY IDEOGRAPH-F95C;Lo;0;L;6A02;;;;N;;;;;
+F95D;CJK COMPATIBILITY IDEOGRAPH-F95D;Lo;0;L;8AFE;;;;N;;;;;
+F95E;CJK COMPATIBILITY IDEOGRAPH-F95E;Lo;0;L;4E39;;;;N;;;;;
+F95F;CJK COMPATIBILITY IDEOGRAPH-F95F;Lo;0;L;5BE7;;;;N;;;;;
+F960;CJK COMPATIBILITY IDEOGRAPH-F960;Lo;0;L;6012;;;;N;;;;;
+F961;CJK COMPATIBILITY IDEOGRAPH-F961;Lo;0;L;7387;;;;N;;;;;
+F962;CJK COMPATIBILITY IDEOGRAPH-F962;Lo;0;L;7570;;;;N;;;;;
+F963;CJK COMPATIBILITY IDEOGRAPH-F963;Lo;0;L;5317;;;;N;;;;;
+F964;CJK COMPATIBILITY IDEOGRAPH-F964;Lo;0;L;78FB;;;;N;;;;;
+F965;CJK COMPATIBILITY IDEOGRAPH-F965;Lo;0;L;4FBF;;;;N;;;;;
+F966;CJK COMPATIBILITY IDEOGRAPH-F966;Lo;0;L;5FA9;;;;N;;;;;
+F967;CJK COMPATIBILITY IDEOGRAPH-F967;Lo;0;L;4E0D;;;;N;;;;;
+F968;CJK COMPATIBILITY IDEOGRAPH-F968;Lo;0;L;6CCC;;;;N;;;;;
+F969;CJK COMPATIBILITY IDEOGRAPH-F969;Lo;0;L;6578;;;;N;;;;;
+F96A;CJK COMPATIBILITY IDEOGRAPH-F96A;Lo;0;L;7D22;;;;N;;;;;
+F96B;CJK COMPATIBILITY IDEOGRAPH-F96B;Lo;0;L;53C3;;;;N;;;;;
+F96C;CJK COMPATIBILITY IDEOGRAPH-F96C;Lo;0;L;585E;;;;N;;;;;
+F96D;CJK COMPATIBILITY IDEOGRAPH-F96D;Lo;0;L;7701;;;;N;;;;;
+F96E;CJK COMPATIBILITY IDEOGRAPH-F96E;Lo;0;L;8449;;;;N;;;;;
+F96F;CJK COMPATIBILITY IDEOGRAPH-F96F;Lo;0;L;8AAA;;;;N;;;;;
+F970;CJK COMPATIBILITY IDEOGRAPH-F970;Lo;0;L;6BBA;;;;N;;;;;
+F971;CJK COMPATIBILITY IDEOGRAPH-F971;Lo;0;L;8FB0;;;;N;;;;;
+F972;CJK COMPATIBILITY IDEOGRAPH-F972;Lo;0;L;6C88;;;;N;;;;;
+F973;CJK COMPATIBILITY IDEOGRAPH-F973;Lo;0;L;62FE;;;;N;;;;;
+F974;CJK COMPATIBILITY IDEOGRAPH-F974;Lo;0;L;82E5;;;;N;;;;;
+F975;CJK COMPATIBILITY IDEOGRAPH-F975;Lo;0;L;63A0;;;;N;;;;;
+F976;CJK COMPATIBILITY IDEOGRAPH-F976;Lo;0;L;7565;;;;N;;;;;
+F977;CJK COMPATIBILITY IDEOGRAPH-F977;Lo;0;L;4EAE;;;;N;;;;;
+F978;CJK COMPATIBILITY IDEOGRAPH-F978;Lo;0;L;5169;;;;N;;;;;
+F979;CJK COMPATIBILITY IDEOGRAPH-F979;Lo;0;L;51C9;;;;N;;;;;
+F97A;CJK COMPATIBILITY IDEOGRAPH-F97A;Lo;0;L;6881;;;;N;;;;;
+F97B;CJK COMPATIBILITY IDEOGRAPH-F97B;Lo;0;L;7CE7;;;;N;;;;;
+F97C;CJK COMPATIBILITY IDEOGRAPH-F97C;Lo;0;L;826F;;;;N;;;;;
+F97D;CJK COMPATIBILITY IDEOGRAPH-F97D;Lo;0;L;8AD2;;;;N;;;;;
+F97E;CJK COMPATIBILITY IDEOGRAPH-F97E;Lo;0;L;91CF;;;;N;;;;;
+F97F;CJK COMPATIBILITY IDEOGRAPH-F97F;Lo;0;L;52F5;;;;N;;;;;
+F980;CJK COMPATIBILITY IDEOGRAPH-F980;Lo;0;L;5442;;;;N;;;;;
+F981;CJK COMPATIBILITY IDEOGRAPH-F981;Lo;0;L;5973;;;;N;;;;;
+F982;CJK COMPATIBILITY IDEOGRAPH-F982;Lo;0;L;5EEC;;;;N;;;;;
+F983;CJK COMPATIBILITY IDEOGRAPH-F983;Lo;0;L;65C5;;;;N;;;;;
+F984;CJK COMPATIBILITY IDEOGRAPH-F984;Lo;0;L;6FFE;;;;N;;;;;
+F985;CJK COMPATIBILITY IDEOGRAPH-F985;Lo;0;L;792A;;;;N;;;;;
+F986;CJK COMPATIBILITY IDEOGRAPH-F986;Lo;0;L;95AD;;;;N;;;;;
+F987;CJK COMPATIBILITY IDEOGRAPH-F987;Lo;0;L;9A6A;;;;N;;;;;
+F988;CJK COMPATIBILITY IDEOGRAPH-F988;Lo;0;L;9E97;;;;N;;;;;
+F989;CJK COMPATIBILITY IDEOGRAPH-F989;Lo;0;L;9ECE;;;;N;;;;;
+F98A;CJK COMPATIBILITY IDEOGRAPH-F98A;Lo;0;L;529B;;;;N;;;;;
+F98B;CJK COMPATIBILITY IDEOGRAPH-F98B;Lo;0;L;66C6;;;;N;;;;;
+F98C;CJK COMPATIBILITY IDEOGRAPH-F98C;Lo;0;L;6B77;;;;N;;;;;
+F98D;CJK COMPATIBILITY IDEOGRAPH-F98D;Lo;0;L;8F62;;;;N;;;;;
+F98E;CJK COMPATIBILITY IDEOGRAPH-F98E;Lo;0;L;5E74;;;;N;;;;;
+F98F;CJK COMPATIBILITY IDEOGRAPH-F98F;Lo;0;L;6190;;;;N;;;;;
+F990;CJK COMPATIBILITY IDEOGRAPH-F990;Lo;0;L;6200;;;;N;;;;;
+F991;CJK COMPATIBILITY IDEOGRAPH-F991;Lo;0;L;649A;;;;N;;;;;
+F992;CJK COMPATIBILITY IDEOGRAPH-F992;Lo;0;L;6F23;;;;N;;;;;
+F993;CJK COMPATIBILITY IDEOGRAPH-F993;Lo;0;L;7149;;;;N;;;;;
+F994;CJK COMPATIBILITY IDEOGRAPH-F994;Lo;0;L;7489;;;;N;;;;;
+F995;CJK COMPATIBILITY IDEOGRAPH-F995;Lo;0;L;79CA;;;;N;;;;;
+F996;CJK COMPATIBILITY IDEOGRAPH-F996;Lo;0;L;7DF4;;;;N;;;;;
+F997;CJK COMPATIBILITY IDEOGRAPH-F997;Lo;0;L;806F;;;;N;;;;;
+F998;CJK COMPATIBILITY IDEOGRAPH-F998;Lo;0;L;8F26;;;;N;;;;;
+F999;CJK COMPATIBILITY IDEOGRAPH-F999;Lo;0;L;84EE;;;;N;;;;;
+F99A;CJK COMPATIBILITY IDEOGRAPH-F99A;Lo;0;L;9023;;;;N;;;;;
+F99B;CJK COMPATIBILITY IDEOGRAPH-F99B;Lo;0;L;934A;;;;N;;;;;
+F99C;CJK COMPATIBILITY IDEOGRAPH-F99C;Lo;0;L;5217;;;;N;;;;;
+F99D;CJK COMPATIBILITY IDEOGRAPH-F99D;Lo;0;L;52A3;;;;N;;;;;
+F99E;CJK COMPATIBILITY IDEOGRAPH-F99E;Lo;0;L;54BD;;;;N;;;;;
+F99F;CJK COMPATIBILITY IDEOGRAPH-F99F;Lo;0;L;70C8;;;;N;;;;;
+F9A0;CJK COMPATIBILITY IDEOGRAPH-F9A0;Lo;0;L;88C2;;;;N;;;;;
+F9A1;CJK COMPATIBILITY IDEOGRAPH-F9A1;Lo;0;L;8AAA;;;;N;;;;;
+F9A2;CJK COMPATIBILITY IDEOGRAPH-F9A2;Lo;0;L;5EC9;;;;N;;;;;
+F9A3;CJK COMPATIBILITY IDEOGRAPH-F9A3;Lo;0;L;5FF5;;;;N;;;;;
+F9A4;CJK COMPATIBILITY IDEOGRAPH-F9A4;Lo;0;L;637B;;;;N;;;;;
+F9A5;CJK COMPATIBILITY IDEOGRAPH-F9A5;Lo;0;L;6BAE;;;;N;;;;;
+F9A6;CJK COMPATIBILITY IDEOGRAPH-F9A6;Lo;0;L;7C3E;;;;N;;;;;
+F9A7;CJK COMPATIBILITY IDEOGRAPH-F9A7;Lo;0;L;7375;;;;N;;;;;
+F9A8;CJK COMPATIBILITY IDEOGRAPH-F9A8;Lo;0;L;4EE4;;;;N;;;;;
+F9A9;CJK COMPATIBILITY IDEOGRAPH-F9A9;Lo;0;L;56F9;;;;N;;;;;
+F9AA;CJK COMPATIBILITY IDEOGRAPH-F9AA;Lo;0;L;5BE7;;;;N;;;;;
+F9AB;CJK COMPATIBILITY IDEOGRAPH-F9AB;Lo;0;L;5DBA;;;;N;;;;;
+F9AC;CJK COMPATIBILITY IDEOGRAPH-F9AC;Lo;0;L;601C;;;;N;;;;;
+F9AD;CJK COMPATIBILITY IDEOGRAPH-F9AD;Lo;0;L;73B2;;;;N;;;;;
+F9AE;CJK COMPATIBILITY IDEOGRAPH-F9AE;Lo;0;L;7469;;;;N;;;;;
+F9AF;CJK COMPATIBILITY IDEOGRAPH-F9AF;Lo;0;L;7F9A;;;;N;;;;;
+F9B0;CJK COMPATIBILITY IDEOGRAPH-F9B0;Lo;0;L;8046;;;;N;;;;;
+F9B1;CJK COMPATIBILITY IDEOGRAPH-F9B1;Lo;0;L;9234;;;;N;;;;;
+F9B2;CJK COMPATIBILITY IDEOGRAPH-F9B2;Lo;0;L;96F6;;;;N;;;;;
+F9B3;CJK COMPATIBILITY IDEOGRAPH-F9B3;Lo;0;L;9748;;;;N;;;;;
+F9B4;CJK COMPATIBILITY IDEOGRAPH-F9B4;Lo;0;L;9818;;;;N;;;;;
+F9B5;CJK COMPATIBILITY IDEOGRAPH-F9B5;Lo;0;L;4F8B;;;;N;;;;;
+F9B6;CJK COMPATIBILITY IDEOGRAPH-F9B6;Lo;0;L;79AE;;;;N;;;;;
+F9B7;CJK COMPATIBILITY IDEOGRAPH-F9B7;Lo;0;L;91B4;;;;N;;;;;
+F9B8;CJK COMPATIBILITY IDEOGRAPH-F9B8;Lo;0;L;96B8;;;;N;;;;;
+F9B9;CJK COMPATIBILITY IDEOGRAPH-F9B9;Lo;0;L;60E1;;;;N;;;;;
+F9BA;CJK COMPATIBILITY IDEOGRAPH-F9BA;Lo;0;L;4E86;;;;N;;;;;
+F9BB;CJK COMPATIBILITY IDEOGRAPH-F9BB;Lo;0;L;50DA;;;;N;;;;;
+F9BC;CJK COMPATIBILITY IDEOGRAPH-F9BC;Lo;0;L;5BEE;;;;N;;;;;
+F9BD;CJK COMPATIBILITY IDEOGRAPH-F9BD;Lo;0;L;5C3F;;;;N;;;;;
+F9BE;CJK COMPATIBILITY IDEOGRAPH-F9BE;Lo;0;L;6599;;;;N;;;;;
+F9BF;CJK COMPATIBILITY IDEOGRAPH-F9BF;Lo;0;L;6A02;;;;N;;;;;
+F9C0;CJK COMPATIBILITY IDEOGRAPH-F9C0;Lo;0;L;71CE;;;;N;;;;;
+F9C1;CJK COMPATIBILITY IDEOGRAPH-F9C1;Lo;0;L;7642;;;;N;;;;;
+F9C2;CJK COMPATIBILITY IDEOGRAPH-F9C2;Lo;0;L;84FC;;;;N;;;;;
+F9C3;CJK COMPATIBILITY IDEOGRAPH-F9C3;Lo;0;L;907C;;;;N;;;;;
+F9C4;CJK COMPATIBILITY IDEOGRAPH-F9C4;Lo;0;L;9F8D;;;;N;;;;;
+F9C5;CJK COMPATIBILITY IDEOGRAPH-F9C5;Lo;0;L;6688;;;;N;;;;;
+F9C6;CJK COMPATIBILITY IDEOGRAPH-F9C6;Lo;0;L;962E;;;;N;;;;;
+F9C7;CJK COMPATIBILITY IDEOGRAPH-F9C7;Lo;0;L;5289;;;;N;;;;;
+F9C8;CJK COMPATIBILITY IDEOGRAPH-F9C8;Lo;0;L;677B;;;;N;;;;;
+F9C9;CJK COMPATIBILITY IDEOGRAPH-F9C9;Lo;0;L;67F3;;;;N;;;;;
+F9CA;CJK COMPATIBILITY IDEOGRAPH-F9CA;Lo;0;L;6D41;;;;N;;;;;
+F9CB;CJK COMPATIBILITY IDEOGRAPH-F9CB;Lo;0;L;6E9C;;;;N;;;;;
+F9CC;CJK COMPATIBILITY IDEOGRAPH-F9CC;Lo;0;L;7409;;;;N;;;;;
+F9CD;CJK COMPATIBILITY IDEOGRAPH-F9CD;Lo;0;L;7559;;;;N;;;;;
+F9CE;CJK COMPATIBILITY IDEOGRAPH-F9CE;Lo;0;L;786B;;;;N;;;;;
+F9CF;CJK COMPATIBILITY IDEOGRAPH-F9CF;Lo;0;L;7D10;;;;N;;;;;
+F9D0;CJK COMPATIBILITY IDEOGRAPH-F9D0;Lo;0;L;985E;;;;N;;;;;
+F9D1;CJK COMPATIBILITY IDEOGRAPH-F9D1;Lo;0;L;516D;;;;N;;;;;
+F9D2;CJK COMPATIBILITY IDEOGRAPH-F9D2;Lo;0;L;622E;;;;N;;;;;
+F9D3;CJK COMPATIBILITY IDEOGRAPH-F9D3;Lo;0;L;9678;;;;N;;;;;
+F9D4;CJK COMPATIBILITY IDEOGRAPH-F9D4;Lo;0;L;502B;;;;N;;;;;
+F9D5;CJK COMPATIBILITY IDEOGRAPH-F9D5;Lo;0;L;5D19;;;;N;;;;;
+F9D6;CJK COMPATIBILITY IDEOGRAPH-F9D6;Lo;0;L;6DEA;;;;N;;;;;
+F9D7;CJK COMPATIBILITY IDEOGRAPH-F9D7;Lo;0;L;8F2A;;;;N;;;;;
+F9D8;CJK COMPATIBILITY IDEOGRAPH-F9D8;Lo;0;L;5F8B;;;;N;;;;;
+F9D9;CJK COMPATIBILITY IDEOGRAPH-F9D9;Lo;0;L;6144;;;;N;;;;;
+F9DA;CJK COMPATIBILITY IDEOGRAPH-F9DA;Lo;0;L;6817;;;;N;;;;;
+F9DB;CJK COMPATIBILITY IDEOGRAPH-F9DB;Lo;0;L;7387;;;;N;;;;;
+F9DC;CJK COMPATIBILITY IDEOGRAPH-F9DC;Lo;0;L;9686;;;;N;;;;;
+F9DD;CJK COMPATIBILITY IDEOGRAPH-F9DD;Lo;0;L;5229;;;;N;;;;;
+F9DE;CJK COMPATIBILITY IDEOGRAPH-F9DE;Lo;0;L;540F;;;;N;;;;;
+F9DF;CJK COMPATIBILITY IDEOGRAPH-F9DF;Lo;0;L;5C65;;;;N;;;;;
+F9E0;CJK COMPATIBILITY IDEOGRAPH-F9E0;Lo;0;L;6613;;;;N;;;;;
+F9E1;CJK COMPATIBILITY IDEOGRAPH-F9E1;Lo;0;L;674E;;;;N;;;;;
+F9E2;CJK COMPATIBILITY IDEOGRAPH-F9E2;Lo;0;L;68A8;;;;N;;;;;
+F9E3;CJK COMPATIBILITY IDEOGRAPH-F9E3;Lo;0;L;6CE5;;;;N;;;;;
+F9E4;CJK COMPATIBILITY IDEOGRAPH-F9E4;Lo;0;L;7406;;;;N;;;;;
+F9E5;CJK COMPATIBILITY IDEOGRAPH-F9E5;Lo;0;L;75E2;;;;N;;;;;
+F9E6;CJK COMPATIBILITY IDEOGRAPH-F9E6;Lo;0;L;7F79;;;;N;;;;;
+F9E7;CJK COMPATIBILITY IDEOGRAPH-F9E7;Lo;0;L;88CF;;;;N;;;;;
+F9E8;CJK COMPATIBILITY IDEOGRAPH-F9E8;Lo;0;L;88E1;;;;N;;;;;
+F9E9;CJK COMPATIBILITY IDEOGRAPH-F9E9;Lo;0;L;91CC;;;;N;;;;;
+F9EA;CJK COMPATIBILITY IDEOGRAPH-F9EA;Lo;0;L;96E2;;;;N;;;;;
+F9EB;CJK COMPATIBILITY IDEOGRAPH-F9EB;Lo;0;L;533F;;;;N;;;;;
+F9EC;CJK COMPATIBILITY IDEOGRAPH-F9EC;Lo;0;L;6EBA;;;;N;;;;;
+F9ED;CJK COMPATIBILITY IDEOGRAPH-F9ED;Lo;0;L;541D;;;;N;;;;;
+F9EE;CJK COMPATIBILITY IDEOGRAPH-F9EE;Lo;0;L;71D0;;;;N;;;;;
+F9EF;CJK COMPATIBILITY IDEOGRAPH-F9EF;Lo;0;L;7498;;;;N;;;;;
+F9F0;CJK COMPATIBILITY IDEOGRAPH-F9F0;Lo;0;L;85FA;;;;N;;;;;
+F9F1;CJK COMPATIBILITY IDEOGRAPH-F9F1;Lo;0;L;96A3;;;;N;;;;;
+F9F2;CJK COMPATIBILITY IDEOGRAPH-F9F2;Lo;0;L;9C57;;;;N;;;;;
+F9F3;CJK COMPATIBILITY IDEOGRAPH-F9F3;Lo;0;L;9E9F;;;;N;;;;;
+F9F4;CJK COMPATIBILITY IDEOGRAPH-F9F4;Lo;0;L;6797;;;;N;;;;;
+F9F5;CJK COMPATIBILITY IDEOGRAPH-F9F5;Lo;0;L;6DCB;;;;N;;;;;
+F9F6;CJK COMPATIBILITY IDEOGRAPH-F9F6;Lo;0;L;81E8;;;;N;;;;;
+F9F7;CJK COMPATIBILITY IDEOGRAPH-F9F7;Lo;0;L;7ACB;;;;N;;;;;
+F9F8;CJK COMPATIBILITY IDEOGRAPH-F9F8;Lo;0;L;7B20;;;;N;;;;;
+F9F9;CJK COMPATIBILITY IDEOGRAPH-F9F9;Lo;0;L;7C92;;;;N;;;;;
+F9FA;CJK COMPATIBILITY IDEOGRAPH-F9FA;Lo;0;L;72C0;;;;N;;;;;
+F9FB;CJK COMPATIBILITY IDEOGRAPH-F9FB;Lo;0;L;7099;;;;N;;;;;
+F9FC;CJK COMPATIBILITY IDEOGRAPH-F9FC;Lo;0;L;8B58;;;;N;;;;;
+F9FD;CJK COMPATIBILITY IDEOGRAPH-F9FD;Lo;0;L;4EC0;;;;N;;;;;
+F9FE;CJK COMPATIBILITY IDEOGRAPH-F9FE;Lo;0;L;8336;;;;N;;;;;
+F9FF;CJK COMPATIBILITY IDEOGRAPH-F9FF;Lo;0;L;523A;;;;N;;;;;
+FA00;CJK COMPATIBILITY IDEOGRAPH-FA00;Lo;0;L;5207;;;;N;;;;;
+FA01;CJK COMPATIBILITY IDEOGRAPH-FA01;Lo;0;L;5EA6;;;;N;;;;;
+FA02;CJK COMPATIBILITY IDEOGRAPH-FA02;Lo;0;L;62D3;;;;N;;;;;
+FA03;CJK COMPATIBILITY IDEOGRAPH-FA03;Lo;0;L;7CD6;;;;N;;;;;
+FA04;CJK COMPATIBILITY IDEOGRAPH-FA04;Lo;0;L;5B85;;;;N;;;;;
+FA05;CJK COMPATIBILITY IDEOGRAPH-FA05;Lo;0;L;6D1E;;;;N;;;;;
+FA06;CJK COMPATIBILITY IDEOGRAPH-FA06;Lo;0;L;66B4;;;;N;;;;;
+FA07;CJK COMPATIBILITY IDEOGRAPH-FA07;Lo;0;L;8F3B;;;;N;;;;;
+FA08;CJK COMPATIBILITY IDEOGRAPH-FA08;Lo;0;L;884C;;;;N;;;;;
+FA09;CJK COMPATIBILITY IDEOGRAPH-FA09;Lo;0;L;964D;;;;N;;;;;
+FA0A;CJK COMPATIBILITY IDEOGRAPH-FA0A;Lo;0;L;898B;;;;N;;;;;
+FA0B;CJK COMPATIBILITY IDEOGRAPH-FA0B;Lo;0;L;5ED3;;;;N;;;;;
+FA0C;CJK COMPATIBILITY IDEOGRAPH-FA0C;Lo;0;L;5140;;;;N;;;;;
+FA0D;CJK COMPATIBILITY IDEOGRAPH-FA0D;Lo;0;L;55C0;;;;N;;;;;
+FA0E;CJK COMPATIBILITY IDEOGRAPH-FA0E;Lo;0;L;;;;;N;;;;;
+FA0F;CJK COMPATIBILITY IDEOGRAPH-FA0F;Lo;0;L;;;;;N;;;;;
+FA10;CJK COMPATIBILITY IDEOGRAPH-FA10;Lo;0;L;585A;;;;N;;;;;
+FA11;CJK COMPATIBILITY IDEOGRAPH-FA11;Lo;0;L;;;;;N;;;;;
+FA12;CJK COMPATIBILITY IDEOGRAPH-FA12;Lo;0;L;6674;;;;N;;;;;
+FA13;CJK COMPATIBILITY IDEOGRAPH-FA13;Lo;0;L;;;;;N;;;;;
+FA14;CJK COMPATIBILITY IDEOGRAPH-FA14;Lo;0;L;;;;;N;;;;;
+FA15;CJK COMPATIBILITY IDEOGRAPH-FA15;Lo;0;L;51DE;;;;N;;;;;
+FA16;CJK COMPATIBILITY IDEOGRAPH-FA16;Lo;0;L;732A;;;;N;;;;;
+FA17;CJK COMPATIBILITY IDEOGRAPH-FA17;Lo;0;L;76CA;;;;N;;;;;
+FA18;CJK COMPATIBILITY IDEOGRAPH-FA18;Lo;0;L;793C;;;;N;;;;;
+FA19;CJK COMPATIBILITY IDEOGRAPH-FA19;Lo;0;L;795E;;;;N;;;;;
+FA1A;CJK COMPATIBILITY IDEOGRAPH-FA1A;Lo;0;L;7965;;;;N;;;;;
+FA1B;CJK COMPATIBILITY IDEOGRAPH-FA1B;Lo;0;L;798F;;;;N;;;;;
+FA1C;CJK COMPATIBILITY IDEOGRAPH-FA1C;Lo;0;L;9756;;;;N;;;;;
+FA1D;CJK COMPATIBILITY IDEOGRAPH-FA1D;Lo;0;L;7CBE;;;;N;;;;;
+FA1E;CJK COMPATIBILITY IDEOGRAPH-FA1E;Lo;0;L;7FBD;;;;N;;;;;
+FA1F;CJK COMPATIBILITY IDEOGRAPH-FA1F;Lo;0;L;;;;;N;;*;;;
+FA20;CJK COMPATIBILITY IDEOGRAPH-FA20;Lo;0;L;8612;;;;N;;;;;
+FA21;CJK COMPATIBILITY IDEOGRAPH-FA21;Lo;0;L;;;;;N;;;;;
+FA22;CJK COMPATIBILITY IDEOGRAPH-FA22;Lo;0;L;8AF8;;;;N;;;;;
+FA23;CJK COMPATIBILITY IDEOGRAPH-FA23;Lo;0;L;;;;;N;;*;;;
+FA24;CJK COMPATIBILITY IDEOGRAPH-FA24;Lo;0;L;;;;;N;;;;;
+FA25;CJK COMPATIBILITY IDEOGRAPH-FA25;Lo;0;L;9038;;;;N;;;;;
+FA26;CJK COMPATIBILITY IDEOGRAPH-FA26;Lo;0;L;90FD;;;;N;;;;;
+FA27;CJK COMPATIBILITY IDEOGRAPH-FA27;Lo;0;L;;;;;N;;;;;
+FA28;CJK COMPATIBILITY IDEOGRAPH-FA28;Lo;0;L;;;;;N;;;;;
+FA29;CJK COMPATIBILITY IDEOGRAPH-FA29;Lo;0;L;;;;;N;;;;;
+FA2A;CJK COMPATIBILITY IDEOGRAPH-FA2A;Lo;0;L;98EF;;;;N;;;;;
+FA2B;CJK COMPATIBILITY IDEOGRAPH-FA2B;Lo;0;L;98FC;;;;N;;;;;
+FA2C;CJK COMPATIBILITY IDEOGRAPH-FA2C;Lo;0;L;9928;;;;N;;;;;
+FA2D;CJK COMPATIBILITY IDEOGRAPH-FA2D;Lo;0;L;9DB4;;;;N;;;;;
+FB00;LATIN SMALL LIGATURE FF;Ll;0;L;<compat> 0066 0066;;;;N;;;;;
+FB01;LATIN SMALL LIGATURE FI;Ll;0;L;<compat> 0066 0069;;;;N;;;;;
+FB02;LATIN SMALL LIGATURE FL;Ll;0;L;<compat> 0066 006C;;;;N;;;;;
+FB03;LATIN SMALL LIGATURE FFI;Ll;0;L;<compat> 0066 0066 0069;;;;N;;;;;
+FB04;LATIN SMALL LIGATURE FFL;Ll;0;L;<compat> 0066 0066 006C;;;;N;;;;;
+FB05;LATIN SMALL LIGATURE LONG S T;Ll;0;L;<compat> 017F 0074;;;;N;;;;;
+FB06;LATIN SMALL LIGATURE ST;Ll;0;L;<compat> 0073 0074;;;;N;;;;;
+FB13;ARMENIAN SMALL LIGATURE MEN NOW;Ll;0;L;<compat> 0574 0576;;;;N;;;;;
+FB14;ARMENIAN SMALL LIGATURE MEN ECH;Ll;0;L;<compat> 0574 0565;;;;N;;;;;
+FB15;ARMENIAN SMALL LIGATURE MEN INI;Ll;0;L;<compat> 0574 056B;;;;N;;;;;
+FB16;ARMENIAN SMALL LIGATURE VEW NOW;Ll;0;L;<compat> 057E 0576;;;;N;;;;;
+FB17;ARMENIAN SMALL LIGATURE MEN XEH;Ll;0;L;<compat> 0574 056D;;;;N;;;;;
+FB1D;HEBREW LETTER YOD WITH HIRIQ;Lo;0;R;05D9 05B4;;;;N;;;;;
+FB1E;HEBREW POINT JUDEO-SPANISH VARIKA;Mn;26;NSM;;;;;N;HEBREW POINT VARIKA;;;;
+FB1F;HEBREW LIGATURE YIDDISH YOD YOD PATAH;Lo;0;R;05F2 05B7;;;;N;;;;;
+FB20;HEBREW LETTER ALTERNATIVE AYIN;Lo;0;R;<font> 05E2;;;;N;;;;;
+FB21;HEBREW LETTER WIDE ALEF;Lo;0;R;<font> 05D0;;;;N;;;;;
+FB22;HEBREW LETTER WIDE DALET;Lo;0;R;<font> 05D3;;;;N;;;;;
+FB23;HEBREW LETTER WIDE HE;Lo;0;R;<font> 05D4;;;;N;;;;;
+FB24;HEBREW LETTER WIDE KAF;Lo;0;R;<font> 05DB;;;;N;;;;;
+FB25;HEBREW LETTER WIDE LAMED;Lo;0;R;<font> 05DC;;;;N;;;;;
+FB26;HEBREW LETTER WIDE FINAL MEM;Lo;0;R;<font> 05DD;;;;N;;;;;
+FB27;HEBREW LETTER WIDE RESH;Lo;0;R;<font> 05E8;;;;N;;;;;
+FB28;HEBREW LETTER WIDE TAV;Lo;0;R;<font> 05EA;;;;N;;;;;
+FB29;HEBREW LETTER ALTERNATIVE PLUS SIGN;Sm;0;ET;<font> 002B;;;;N;;;;;
+FB2A;HEBREW LETTER SHIN WITH SHIN DOT;Lo;0;R;05E9 05C1;;;;N;;;;;
+FB2B;HEBREW LETTER SHIN WITH SIN DOT;Lo;0;R;05E9 05C2;;;;N;;;;;
+FB2C;HEBREW LETTER SHIN WITH DAGESH AND SHIN DOT;Lo;0;R;FB49 05C1;;;;N;;;;;
+FB2D;HEBREW LETTER SHIN WITH DAGESH AND SIN DOT;Lo;0;R;FB49 05C2;;;;N;;;;;
+FB2E;HEBREW LETTER ALEF WITH PATAH;Lo;0;R;05D0 05B7;;;;N;;;;;
+FB2F;HEBREW LETTER ALEF WITH QAMATS;Lo;0;R;05D0 05B8;;;;N;;;;;
+FB30;HEBREW LETTER ALEF WITH MAPIQ;Lo;0;R;05D0 05BC;;;;N;;;;;
+FB31;HEBREW LETTER BET WITH DAGESH;Lo;0;R;05D1 05BC;;;;N;;;;;
+FB32;HEBREW LETTER GIMEL WITH DAGESH;Lo;0;R;05D2 05BC;;;;N;;;;;
+FB33;HEBREW LETTER DALET WITH DAGESH;Lo;0;R;05D3 05BC;;;;N;;;;;
+FB34;HEBREW LETTER HE WITH MAPIQ;Lo;0;R;05D4 05BC;;;;N;;;;;
+FB35;HEBREW LETTER VAV WITH DAGESH;Lo;0;R;05D5 05BC;;;;N;;;;;
+FB36;HEBREW LETTER ZAYIN WITH DAGESH;Lo;0;R;05D6 05BC;;;;N;;;;;
+FB38;HEBREW LETTER TET WITH DAGESH;Lo;0;R;05D8 05BC;;;;N;;;;;
+FB39;HEBREW LETTER YOD WITH DAGESH;Lo;0;R;05D9 05BC;;;;N;;;;;
+FB3A;HEBREW LETTER FINAL KAF WITH DAGESH;Lo;0;R;05DA 05BC;;;;N;;;;;
+FB3B;HEBREW LETTER KAF WITH DAGESH;Lo;0;R;05DB 05BC;;;;N;;;;;
+FB3C;HEBREW LETTER LAMED WITH DAGESH;Lo;0;R;05DC 05BC;;;;N;;;;;
+FB3E;HEBREW LETTER MEM WITH DAGESH;Lo;0;R;05DE 05BC;;;;N;;;;;
+FB40;HEBREW LETTER NUN WITH DAGESH;Lo;0;R;05E0 05BC;;;;N;;;;;
+FB41;HEBREW LETTER SAMEKH WITH DAGESH;Lo;0;R;05E1 05BC;;;;N;;;;;
+FB43;HEBREW LETTER FINAL PE WITH DAGESH;Lo;0;R;05E3 05BC;;;;N;;;;;
+FB44;HEBREW LETTER PE WITH DAGESH;Lo;0;R;05E4 05BC;;;;N;;;;;
+FB46;HEBREW LETTER TSADI WITH DAGESH;Lo;0;R;05E6 05BC;;;;N;;;;;
+FB47;HEBREW LETTER QOF WITH DAGESH;Lo;0;R;05E7 05BC;;;;N;;;;;
+FB48;HEBREW LETTER RESH WITH DAGESH;Lo;0;R;05E8 05BC;;;;N;;;;;
+FB49;HEBREW LETTER SHIN WITH DAGESH;Lo;0;R;05E9 05BC;;;;N;;;;;
+FB4A;HEBREW LETTER TAV WITH DAGESH;Lo;0;R;05EA 05BC;;;;N;;;;;
+FB4B;HEBREW LETTER VAV WITH HOLAM;Lo;0;R;05D5 05B9;;;;N;;;;;
+FB4C;HEBREW LETTER BET WITH RAFE;Lo;0;R;05D1 05BF;;;;N;;;;;
+FB4D;HEBREW LETTER KAF WITH RAFE;Lo;0;R;05DB 05BF;;;;N;;;;;
+FB4E;HEBREW LETTER PE WITH RAFE;Lo;0;R;05E4 05BF;;;;N;;;;;
+FB4F;HEBREW LIGATURE ALEF LAMED;Lo;0;R;<compat> 05D0 05DC;;;;N;;;;;
+FB50;ARABIC LETTER ALEF WASLA ISOLATED FORM;Lo;0;AL;<isolated> 0671;;;;N;;;;;
+FB51;ARABIC LETTER ALEF WASLA FINAL FORM;Lo;0;AL;<final> 0671;;;;N;;;;;
+FB52;ARABIC LETTER BEEH ISOLATED FORM;Lo;0;AL;<isolated> 067B;;;;N;;;;;
+FB53;ARABIC LETTER BEEH FINAL FORM;Lo;0;AL;<final> 067B;;;;N;;;;;
+FB54;ARABIC LETTER BEEH INITIAL FORM;Lo;0;AL;<initial> 067B;;;;N;;;;;
+FB55;ARABIC LETTER BEEH MEDIAL FORM;Lo;0;AL;<medial> 067B;;;;N;;;;;
+FB56;ARABIC LETTER PEH ISOLATED FORM;Lo;0;AL;<isolated> 067E;;;;N;;;;;
+FB57;ARABIC LETTER PEH FINAL FORM;Lo;0;AL;<final> 067E;;;;N;;;;;
+FB58;ARABIC LETTER PEH INITIAL FORM;Lo;0;AL;<initial> 067E;;;;N;;;;;
+FB59;ARABIC LETTER PEH MEDIAL FORM;Lo;0;AL;<medial> 067E;;;;N;;;;;
+FB5A;ARABIC LETTER BEHEH ISOLATED FORM;Lo;0;AL;<isolated> 0680;;;;N;;;;;
+FB5B;ARABIC LETTER BEHEH FINAL FORM;Lo;0;AL;<final> 0680;;;;N;;;;;
+FB5C;ARABIC LETTER BEHEH INITIAL FORM;Lo;0;AL;<initial> 0680;;;;N;;;;;
+FB5D;ARABIC LETTER BEHEH MEDIAL FORM;Lo;0;AL;<medial> 0680;;;;N;;;;;
+FB5E;ARABIC LETTER TTEHEH ISOLATED FORM;Lo;0;AL;<isolated> 067A;;;;N;;;;;
+FB5F;ARABIC LETTER TTEHEH FINAL FORM;Lo;0;AL;<final> 067A;;;;N;;;;;
+FB60;ARABIC LETTER TTEHEH INITIAL FORM;Lo;0;AL;<initial> 067A;;;;N;;;;;
+FB61;ARABIC LETTER TTEHEH MEDIAL FORM;Lo;0;AL;<medial> 067A;;;;N;;;;;
+FB62;ARABIC LETTER TEHEH ISOLATED FORM;Lo;0;AL;<isolated> 067F;;;;N;;;;;
+FB63;ARABIC LETTER TEHEH FINAL FORM;Lo;0;AL;<final> 067F;;;;N;;;;;
+FB64;ARABIC LETTER TEHEH INITIAL FORM;Lo;0;AL;<initial> 067F;;;;N;;;;;
+FB65;ARABIC LETTER TEHEH MEDIAL FORM;Lo;0;AL;<medial> 067F;;;;N;;;;;
+FB66;ARABIC LETTER TTEH ISOLATED FORM;Lo;0;AL;<isolated> 0679;;;;N;;;;;
+FB67;ARABIC LETTER TTEH FINAL FORM;Lo;0;AL;<final> 0679;;;;N;;;;;
+FB68;ARABIC LETTER TTEH INITIAL FORM;Lo;0;AL;<initial> 0679;;;;N;;;;;
+FB69;ARABIC LETTER TTEH MEDIAL FORM;Lo;0;AL;<medial> 0679;;;;N;;;;;
+FB6A;ARABIC LETTER VEH ISOLATED FORM;Lo;0;AL;<isolated> 06A4;;;;N;;;;;
+FB6B;ARABIC LETTER VEH FINAL FORM;Lo;0;AL;<final> 06A4;;;;N;;;;;
+FB6C;ARABIC LETTER VEH INITIAL FORM;Lo;0;AL;<initial> 06A4;;;;N;;;;;
+FB6D;ARABIC LETTER VEH MEDIAL FORM;Lo;0;AL;<medial> 06A4;;;;N;;;;;
+FB6E;ARABIC LETTER PEHEH ISOLATED FORM;Lo;0;AL;<isolated> 06A6;;;;N;;;;;
+FB6F;ARABIC LETTER PEHEH FINAL FORM;Lo;0;AL;<final> 06A6;;;;N;;;;;
+FB70;ARABIC LETTER PEHEH INITIAL FORM;Lo;0;AL;<initial> 06A6;;;;N;;;;;
+FB71;ARABIC LETTER PEHEH MEDIAL FORM;Lo;0;AL;<medial> 06A6;;;;N;;;;;
+FB72;ARABIC LETTER DYEH ISOLATED FORM;Lo;0;AL;<isolated> 0684;;;;N;;;;;
+FB73;ARABIC LETTER DYEH FINAL FORM;Lo;0;AL;<final> 0684;;;;N;;;;;
+FB74;ARABIC LETTER DYEH INITIAL FORM;Lo;0;AL;<initial> 0684;;;;N;;;;;
+FB75;ARABIC LETTER DYEH MEDIAL FORM;Lo;0;AL;<medial> 0684;;;;N;;;;;
+FB76;ARABIC LETTER NYEH ISOLATED FORM;Lo;0;AL;<isolated> 0683;;;;N;;;;;
+FB77;ARABIC LETTER NYEH FINAL FORM;Lo;0;AL;<final> 0683;;;;N;;;;;
+FB78;ARABIC LETTER NYEH INITIAL FORM;Lo;0;AL;<initial> 0683;;;;N;;;;;
+FB79;ARABIC LETTER NYEH MEDIAL FORM;Lo;0;AL;<medial> 0683;;;;N;;;;;
+FB7A;ARABIC LETTER TCHEH ISOLATED FORM;Lo;0;AL;<isolated> 0686;;;;N;;;;;
+FB7B;ARABIC LETTER TCHEH FINAL FORM;Lo;0;AL;<final> 0686;;;;N;;;;;
+FB7C;ARABIC LETTER TCHEH INITIAL FORM;Lo;0;AL;<initial> 0686;;;;N;;;;;
+FB7D;ARABIC LETTER TCHEH MEDIAL FORM;Lo;0;AL;<medial> 0686;;;;N;;;;;
+FB7E;ARABIC LETTER TCHEHEH ISOLATED FORM;Lo;0;AL;<isolated> 0687;;;;N;;;;;
+FB7F;ARABIC LETTER TCHEHEH FINAL FORM;Lo;0;AL;<final> 0687;;;;N;;;;;
+FB80;ARABIC LETTER TCHEHEH INITIAL FORM;Lo;0;AL;<initial> 0687;;;;N;;;;;
+FB81;ARABIC LETTER TCHEHEH MEDIAL FORM;Lo;0;AL;<medial> 0687;;;;N;;;;;
+FB82;ARABIC LETTER DDAHAL ISOLATED FORM;Lo;0;AL;<isolated> 068D;;;;N;;;;;
+FB83;ARABIC LETTER DDAHAL FINAL FORM;Lo;0;AL;<final> 068D;;;;N;;;;;
+FB84;ARABIC LETTER DAHAL ISOLATED FORM;Lo;0;AL;<isolated> 068C;;;;N;;;;;
+FB85;ARABIC LETTER DAHAL FINAL FORM;Lo;0;AL;<final> 068C;;;;N;;;;;
+FB86;ARABIC LETTER DUL ISOLATED FORM;Lo;0;AL;<isolated> 068E;;;;N;;;;;
+FB87;ARABIC LETTER DUL FINAL FORM;Lo;0;AL;<final> 068E;;;;N;;;;;
+FB88;ARABIC LETTER DDAL ISOLATED FORM;Lo;0;AL;<isolated> 0688;;;;N;;;;;
+FB89;ARABIC LETTER DDAL FINAL FORM;Lo;0;AL;<final> 0688;;;;N;;;;;
+FB8A;ARABIC LETTER JEH ISOLATED FORM;Lo;0;AL;<isolated> 0698;;;;N;;;;;
+FB8B;ARABIC LETTER JEH FINAL FORM;Lo;0;AL;<final> 0698;;;;N;;;;;
+FB8C;ARABIC LETTER RREH ISOLATED FORM;Lo;0;AL;<isolated> 0691;;;;N;;;;;
+FB8D;ARABIC LETTER RREH FINAL FORM;Lo;0;AL;<final> 0691;;;;N;;;;;
+FB8E;ARABIC LETTER KEHEH ISOLATED FORM;Lo;0;AL;<isolated> 06A9;;;;N;;;;;
+FB8F;ARABIC LETTER KEHEH FINAL FORM;Lo;0;AL;<final> 06A9;;;;N;;;;;
+FB90;ARABIC LETTER KEHEH INITIAL FORM;Lo;0;AL;<initial> 06A9;;;;N;;;;;
+FB91;ARABIC LETTER KEHEH MEDIAL FORM;Lo;0;AL;<medial> 06A9;;;;N;;;;;
+FB92;ARABIC LETTER GAF ISOLATED FORM;Lo;0;AL;<isolated> 06AF;;;;N;;;;;
+FB93;ARABIC LETTER GAF FINAL FORM;Lo;0;AL;<final> 06AF;;;;N;;;;;
+FB94;ARABIC LETTER GAF INITIAL FORM;Lo;0;AL;<initial> 06AF;;;;N;;;;;
+FB95;ARABIC LETTER GAF MEDIAL FORM;Lo;0;AL;<medial> 06AF;;;;N;;;;;
+FB96;ARABIC LETTER GUEH ISOLATED FORM;Lo;0;AL;<isolated> 06B3;;;;N;;;;;
+FB97;ARABIC LETTER GUEH FINAL FORM;Lo;0;AL;<final> 06B3;;;;N;;;;;
+FB98;ARABIC LETTER GUEH INITIAL FORM;Lo;0;AL;<initial> 06B3;;;;N;;;;;
+FB99;ARABIC LETTER GUEH MEDIAL FORM;Lo;0;AL;<medial> 06B3;;;;N;;;;;
+FB9A;ARABIC LETTER NGOEH ISOLATED FORM;Lo;0;AL;<isolated> 06B1;;;;N;;;;;
+FB9B;ARABIC LETTER NGOEH FINAL FORM;Lo;0;AL;<final> 06B1;;;;N;;;;;
+FB9C;ARABIC LETTER NGOEH INITIAL FORM;Lo;0;AL;<initial> 06B1;;;;N;;;;;
+FB9D;ARABIC LETTER NGOEH MEDIAL FORM;Lo;0;AL;<medial> 06B1;;;;N;;;;;
+FB9E;ARABIC LETTER NOON GHUNNA ISOLATED FORM;Lo;0;AL;<isolated> 06BA;;;;N;;;;;
+FB9F;ARABIC LETTER NOON GHUNNA FINAL FORM;Lo;0;AL;<final> 06BA;;;;N;;;;;
+FBA0;ARABIC LETTER RNOON ISOLATED FORM;Lo;0;AL;<isolated> 06BB;;;;N;;;;;
+FBA1;ARABIC LETTER RNOON FINAL FORM;Lo;0;AL;<final> 06BB;;;;N;;;;;
+FBA2;ARABIC LETTER RNOON INITIAL FORM;Lo;0;AL;<initial> 06BB;;;;N;;;;;
+FBA3;ARABIC LETTER RNOON MEDIAL FORM;Lo;0;AL;<medial> 06BB;;;;N;;;;;
+FBA4;ARABIC LETTER HEH WITH YEH ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 06C0;;;;N;;;;;
+FBA5;ARABIC LETTER HEH WITH YEH ABOVE FINAL FORM;Lo;0;AL;<final> 06C0;;;;N;;;;;
+FBA6;ARABIC LETTER HEH GOAL ISOLATED FORM;Lo;0;AL;<isolated> 06C1;;;;N;;;;;
+FBA7;ARABIC LETTER HEH GOAL FINAL FORM;Lo;0;AL;<final> 06C1;;;;N;;;;;
+FBA8;ARABIC LETTER HEH GOAL INITIAL FORM;Lo;0;AL;<initial> 06C1;;;;N;;;;;
+FBA9;ARABIC LETTER HEH GOAL MEDIAL FORM;Lo;0;AL;<medial> 06C1;;;;N;;;;;
+FBAA;ARABIC LETTER HEH DOACHASHMEE ISOLATED FORM;Lo;0;AL;<isolated> 06BE;;;;N;;;;;
+FBAB;ARABIC LETTER HEH DOACHASHMEE FINAL FORM;Lo;0;AL;<final> 06BE;;;;N;;;;;
+FBAC;ARABIC LETTER HEH DOACHASHMEE INITIAL FORM;Lo;0;AL;<initial> 06BE;;;;N;;;;;
+FBAD;ARABIC LETTER HEH DOACHASHMEE MEDIAL FORM;Lo;0;AL;<medial> 06BE;;;;N;;;;;
+FBAE;ARABIC LETTER YEH BARREE ISOLATED FORM;Lo;0;AL;<isolated> 06D2;;;;N;;;;;
+FBAF;ARABIC LETTER YEH BARREE FINAL FORM;Lo;0;AL;<final> 06D2;;;;N;;;;;
+FBB0;ARABIC LETTER YEH BARREE WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 06D3;;;;N;;;;;
+FBB1;ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM;Lo;0;AL;<final> 06D3;;;;N;;;;;
+FBD3;ARABIC LETTER NG ISOLATED FORM;Lo;0;AL;<isolated> 06AD;;;;N;;;;;
+FBD4;ARABIC LETTER NG FINAL FORM;Lo;0;AL;<final> 06AD;;;;N;;;;;
+FBD5;ARABIC LETTER NG INITIAL FORM;Lo;0;AL;<initial> 06AD;;;;N;;;;;
+FBD6;ARABIC LETTER NG MEDIAL FORM;Lo;0;AL;<medial> 06AD;;;;N;;;;;
+FBD7;ARABIC LETTER U ISOLATED FORM;Lo;0;AL;<isolated> 06C7;;;;N;;;;;
+FBD8;ARABIC LETTER U FINAL FORM;Lo;0;AL;<final> 06C7;;;;N;;;;;
+FBD9;ARABIC LETTER OE ISOLATED FORM;Lo;0;AL;<isolated> 06C6;;;;N;;;;;
+FBDA;ARABIC LETTER OE FINAL FORM;Lo;0;AL;<final> 06C6;;;;N;;;;;
+FBDB;ARABIC LETTER YU ISOLATED FORM;Lo;0;AL;<isolated> 06C8;;;;N;;;;;
+FBDC;ARABIC LETTER YU FINAL FORM;Lo;0;AL;<final> 06C8;;;;N;;;;;
+FBDD;ARABIC LETTER U WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 0677;;;;N;;;;;
+FBDE;ARABIC LETTER VE ISOLATED FORM;Lo;0;AL;<isolated> 06CB;;;;N;;;;;
+FBDF;ARABIC LETTER VE FINAL FORM;Lo;0;AL;<final> 06CB;;;;N;;;;;
+FBE0;ARABIC LETTER KIRGHIZ OE ISOLATED FORM;Lo;0;AL;<isolated> 06C5;;;;N;;;;;
+FBE1;ARABIC LETTER KIRGHIZ OE FINAL FORM;Lo;0;AL;<final> 06C5;;;;N;;;;;
+FBE2;ARABIC LETTER KIRGHIZ YU ISOLATED FORM;Lo;0;AL;<isolated> 06C9;;;;N;;;;;
+FBE3;ARABIC LETTER KIRGHIZ YU FINAL FORM;Lo;0;AL;<final> 06C9;;;;N;;;;;
+FBE4;ARABIC LETTER E ISOLATED FORM;Lo;0;AL;<isolated> 06D0;;;;N;;;;;
+FBE5;ARABIC LETTER E FINAL FORM;Lo;0;AL;<final> 06D0;;;;N;;;;;
+FBE6;ARABIC LETTER E INITIAL FORM;Lo;0;AL;<initial> 06D0;;;;N;;;;;
+FBE7;ARABIC LETTER E MEDIAL FORM;Lo;0;AL;<medial> 06D0;;;;N;;;;;
+FBE8;ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA INITIAL FORM;Lo;0;AL;<initial> 0649;;;;N;;;;;
+FBE9;ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA MEDIAL FORM;Lo;0;AL;<medial> 0649;;;;N;;;;;
+FBEA;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0626 0627;;;;N;;;;;
+FBEB;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF FINAL FORM;Lo;0;AL;<final> 0626 0627;;;;N;;;;;
+FBEC;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE ISOLATED FORM;Lo;0;AL;<isolated> 0626 06D5;;;;N;;;;;
+FBED;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE FINAL FORM;Lo;0;AL;<final> 0626 06D5;;;;N;;;;;
+FBEE;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW ISOLATED FORM;Lo;0;AL;<isolated> 0626 0648;;;;N;;;;;
+FBEF;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW FINAL FORM;Lo;0;AL;<final> 0626 0648;;;;N;;;;;
+FBF0;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U ISOLATED FORM;Lo;0;AL;<isolated> 0626 06C7;;;;N;;;;;
+FBF1;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U FINAL FORM;Lo;0;AL;<final> 0626 06C7;;;;N;;;;;
+FBF2;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE ISOLATED FORM;Lo;0;AL;<isolated> 0626 06C6;;;;N;;;;;
+FBF3;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE FINAL FORM;Lo;0;AL;<final> 0626 06C6;;;;N;;;;;
+FBF4;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU ISOLATED FORM;Lo;0;AL;<isolated> 0626 06C8;;;;N;;;;;
+FBF5;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU FINAL FORM;Lo;0;AL;<final> 0626 06C8;;;;N;;;;;
+FBF6;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E ISOLATED FORM;Lo;0;AL;<isolated> 0626 06D0;;;;N;;;;;
+FBF7;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E FINAL FORM;Lo;0;AL;<final> 0626 06D0;;;;N;;;;;
+FBF8;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E INITIAL FORM;Lo;0;AL;<initial> 0626 06D0;;;;N;;;;;
+FBF9;ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0626 0649;;;;N;;;;;
+FBFA;ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0626 0649;;;;N;;;;;
+FBFB;ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA INITIAL FORM;Lo;0;AL;<initial> 0626 0649;;;;N;;;;;
+FBFC;ARABIC LETTER FARSI YEH ISOLATED FORM;Lo;0;AL;<isolated> 06CC;;;;N;;;;;
+FBFD;ARABIC LETTER FARSI YEH FINAL FORM;Lo;0;AL;<final> 06CC;;;;N;;;;;
+FBFE;ARABIC LETTER FARSI YEH INITIAL FORM;Lo;0;AL;<initial> 06CC;;;;N;;;;;
+FBFF;ARABIC LETTER FARSI YEH MEDIAL FORM;Lo;0;AL;<medial> 06CC;;;;N;;;;;
+FC00;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0626 062C;;;;N;;;;;
+FC01;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0626 062D;;;;N;;;;;
+FC02;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0626 0645;;;;N;;;;;
+FC03;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0626 0649;;;;N;;;;;
+FC04;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0626 064A;;;;N;;;;;
+FC05;ARABIC LIGATURE BEH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0628 062C;;;;N;;;;;
+FC06;ARABIC LIGATURE BEH WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0628 062D;;;;N;;;;;
+FC07;ARABIC LIGATURE BEH WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0628 062E;;;;N;;;;;
+FC08;ARABIC LIGATURE BEH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0628 0645;;;;N;;;;;
+FC09;ARABIC LIGATURE BEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0628 0649;;;;N;;;;;
+FC0A;ARABIC LIGATURE BEH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0628 064A;;;;N;;;;;
+FC0B;ARABIC LIGATURE TEH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 062A 062C;;;;N;;;;;
+FC0C;ARABIC LIGATURE TEH WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 062A 062D;;;;N;;;;;
+FC0D;ARABIC LIGATURE TEH WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 062A 062E;;;;N;;;;;
+FC0E;ARABIC LIGATURE TEH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 062A 0645;;;;N;;;;;
+FC0F;ARABIC LIGATURE TEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 062A 0649;;;;N;;;;;
+FC10;ARABIC LIGATURE TEH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 062A 064A;;;;N;;;;;
+FC11;ARABIC LIGATURE THEH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 062B 062C;;;;N;;;;;
+FC12;ARABIC LIGATURE THEH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 062B 0645;;;;N;;;;;
+FC13;ARABIC LIGATURE THEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 062B 0649;;;;N;;;;;
+FC14;ARABIC LIGATURE THEH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 062B 064A;;;;N;;;;;
+FC15;ARABIC LIGATURE JEEM WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 062C 062D;;;;N;;;;;
+FC16;ARABIC LIGATURE JEEM WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 062C 0645;;;;N;;;;;
+FC17;ARABIC LIGATURE HAH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 062D 062C;;;;N;;;;;
+FC18;ARABIC LIGATURE HAH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 062D 0645;;;;N;;;;;
+FC19;ARABIC LIGATURE KHAH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 062E 062C;;;;N;;;;;
+FC1A;ARABIC LIGATURE KHAH WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 062E 062D;;;;N;;;;;
+FC1B;ARABIC LIGATURE KHAH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 062E 0645;;;;N;;;;;
+FC1C;ARABIC LIGATURE SEEN WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0633 062C;;;;N;;;;;
+FC1D;ARABIC LIGATURE SEEN WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0633 062D;;;;N;;;;;
+FC1E;ARABIC LIGATURE SEEN WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0633 062E;;;;N;;;;;
+FC1F;ARABIC LIGATURE SEEN WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0633 0645;;;;N;;;;;
+FC20;ARABIC LIGATURE SAD WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0635 062D;;;;N;;;;;
+FC21;ARABIC LIGATURE SAD WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0635 0645;;;;N;;;;;
+FC22;ARABIC LIGATURE DAD WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0636 062C;;;;N;;;;;
+FC23;ARABIC LIGATURE DAD WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0636 062D;;;;N;;;;;
+FC24;ARABIC LIGATURE DAD WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0636 062E;;;;N;;;;;
+FC25;ARABIC LIGATURE DAD WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0636 0645;;;;N;;;;;
+FC26;ARABIC LIGATURE TAH WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0637 062D;;;;N;;;;;
+FC27;ARABIC LIGATURE TAH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0637 0645;;;;N;;;;;
+FC28;ARABIC LIGATURE ZAH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0638 0645;;;;N;;;;;
+FC29;ARABIC LIGATURE AIN WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0639 062C;;;;N;;;;;
+FC2A;ARABIC LIGATURE AIN WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0639 0645;;;;N;;;;;
+FC2B;ARABIC LIGATURE GHAIN WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 063A 062C;;;;N;;;;;
+FC2C;ARABIC LIGATURE GHAIN WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 063A 0645;;;;N;;;;;
+FC2D;ARABIC LIGATURE FEH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0641 062C;;;;N;;;;;
+FC2E;ARABIC LIGATURE FEH WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0641 062D;;;;N;;;;;
+FC2F;ARABIC LIGATURE FEH WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0641 062E;;;;N;;;;;
+FC30;ARABIC LIGATURE FEH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0641 0645;;;;N;;;;;
+FC31;ARABIC LIGATURE FEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0641 0649;;;;N;;;;;
+FC32;ARABIC LIGATURE FEH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0641 064A;;;;N;;;;;
+FC33;ARABIC LIGATURE QAF WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0642 062D;;;;N;;;;;
+FC34;ARABIC LIGATURE QAF WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0642 0645;;;;N;;;;;
+FC35;ARABIC LIGATURE QAF WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0642 0649;;;;N;;;;;
+FC36;ARABIC LIGATURE QAF WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0642 064A;;;;N;;;;;
+FC37;ARABIC LIGATURE KAF WITH ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0643 0627;;;;N;;;;;
+FC38;ARABIC LIGATURE KAF WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0643 062C;;;;N;;;;;
+FC39;ARABIC LIGATURE KAF WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0643 062D;;;;N;;;;;
+FC3A;ARABIC LIGATURE KAF WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0643 062E;;;;N;;;;;
+FC3B;ARABIC LIGATURE KAF WITH LAM ISOLATED FORM;Lo;0;AL;<isolated> 0643 0644;;;;N;;;;;
+FC3C;ARABIC LIGATURE KAF WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0643 0645;;;;N;;;;;
+FC3D;ARABIC LIGATURE KAF WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0643 0649;;;;N;;;;;
+FC3E;ARABIC LIGATURE KAF WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0643 064A;;;;N;;;;;
+FC3F;ARABIC LIGATURE LAM WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0644 062C;;;;N;;;;;
+FC40;ARABIC LIGATURE LAM WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0644 062D;;;;N;;;;;
+FC41;ARABIC LIGATURE LAM WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0644 062E;;;;N;;;;;
+FC42;ARABIC LIGATURE LAM WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0644 0645;;;;N;;;;;
+FC43;ARABIC LIGATURE LAM WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0644 0649;;;;N;;;;;
+FC44;ARABIC LIGATURE LAM WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0644 064A;;;;N;;;;;
+FC45;ARABIC LIGATURE MEEM WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0645 062C;;;;N;;;;;
+FC46;ARABIC LIGATURE MEEM WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0645 062D;;;;N;;;;;
+FC47;ARABIC LIGATURE MEEM WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0645 062E;;;;N;;;;;
+FC48;ARABIC LIGATURE MEEM WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0645 0645;;;;N;;;;;
+FC49;ARABIC LIGATURE MEEM WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0645 0649;;;;N;;;;;
+FC4A;ARABIC LIGATURE MEEM WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0645 064A;;;;N;;;;;
+FC4B;ARABIC LIGATURE NOON WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0646 062C;;;;N;;;;;
+FC4C;ARABIC LIGATURE NOON WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0646 062D;;;;N;;;;;
+FC4D;ARABIC LIGATURE NOON WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0646 062E;;;;N;;;;;
+FC4E;ARABIC LIGATURE NOON WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0646 0645;;;;N;;;;;
+FC4F;ARABIC LIGATURE NOON WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0646 0649;;;;N;;;;;
+FC50;ARABIC LIGATURE NOON WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0646 064A;;;;N;;;;;
+FC51;ARABIC LIGATURE HEH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0647 062C;;;;N;;;;;
+FC52;ARABIC LIGATURE HEH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0647 0645;;;;N;;;;;
+FC53;ARABIC LIGATURE HEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0647 0649;;;;N;;;;;
+FC54;ARABIC LIGATURE HEH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0647 064A;;;;N;;;;;
+FC55;ARABIC LIGATURE YEH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 064A 062C;;;;N;;;;;
+FC56;ARABIC LIGATURE YEH WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 064A 062D;;;;N;;;;;
+FC57;ARABIC LIGATURE YEH WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 064A 062E;;;;N;;;;;
+FC58;ARABIC LIGATURE YEH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 064A 0645;;;;N;;;;;
+FC59;ARABIC LIGATURE YEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 064A 0649;;;;N;;;;;
+FC5A;ARABIC LIGATURE YEH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 064A 064A;;;;N;;;;;
+FC5B;ARABIC LIGATURE THAL WITH SUPERSCRIPT ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0630 0670;;;;N;;;;;
+FC5C;ARABIC LIGATURE REH WITH SUPERSCRIPT ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0631 0670;;;;N;;;;;
+FC5D;ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0649 0670;;;;N;;;;;
+FC5E;ARABIC LIGATURE SHADDA WITH DAMMATAN ISOLATED FORM;Lo;0;AL;<isolated> 0020 064C 0651;;;;N;;;;;
+FC5F;ARABIC LIGATURE SHADDA WITH KASRATAN ISOLATED FORM;Lo;0;AL;<isolated> 0020 064D 0651;;;;N;;;;;
+FC60;ARABIC LIGATURE SHADDA WITH FATHA ISOLATED FORM;Lo;0;AL;<isolated> 0020 064E 0651;;;;N;;;;;
+FC61;ARABIC LIGATURE SHADDA WITH DAMMA ISOLATED FORM;Lo;0;AL;<isolated> 0020 064F 0651;;;;N;;;;;
+FC62;ARABIC LIGATURE SHADDA WITH KASRA ISOLATED FORM;Lo;0;AL;<isolated> 0020 0650 0651;;;;N;;;;;
+FC63;ARABIC LIGATURE SHADDA WITH SUPERSCRIPT ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0020 0651 0670;;;;N;;;;;
+FC64;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH REH FINAL FORM;Lo;0;AL;<final> 0626 0631;;;;N;;;;;
+FC65;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ZAIN FINAL FORM;Lo;0;AL;<final> 0626 0632;;;;N;;;;;
+FC66;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM FINAL FORM;Lo;0;AL;<final> 0626 0645;;;;N;;;;;
+FC67;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH NOON FINAL FORM;Lo;0;AL;<final> 0626 0646;;;;N;;;;;
+FC68;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0626 0649;;;;N;;;;;
+FC69;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH FINAL FORM;Lo;0;AL;<final> 0626 064A;;;;N;;;;;
+FC6A;ARABIC LIGATURE BEH WITH REH FINAL FORM;Lo;0;AL;<final> 0628 0631;;;;N;;;;;
+FC6B;ARABIC LIGATURE BEH WITH ZAIN FINAL FORM;Lo;0;AL;<final> 0628 0632;;;;N;;;;;
+FC6C;ARABIC LIGATURE BEH WITH MEEM FINAL FORM;Lo;0;AL;<final> 0628 0645;;;;N;;;;;
+FC6D;ARABIC LIGATURE BEH WITH NOON FINAL FORM;Lo;0;AL;<final> 0628 0646;;;;N;;;;;
+FC6E;ARABIC LIGATURE BEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0628 0649;;;;N;;;;;
+FC6F;ARABIC LIGATURE BEH WITH YEH FINAL FORM;Lo;0;AL;<final> 0628 064A;;;;N;;;;;
+FC70;ARABIC LIGATURE TEH WITH REH FINAL FORM;Lo;0;AL;<final> 062A 0631;;;;N;;;;;
+FC71;ARABIC LIGATURE TEH WITH ZAIN FINAL FORM;Lo;0;AL;<final> 062A 0632;;;;N;;;;;
+FC72;ARABIC LIGATURE TEH WITH MEEM FINAL FORM;Lo;0;AL;<final> 062A 0645;;;;N;;;;;
+FC73;ARABIC LIGATURE TEH WITH NOON FINAL FORM;Lo;0;AL;<final> 062A 0646;;;;N;;;;;
+FC74;ARABIC LIGATURE TEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062A 0649;;;;N;;;;;
+FC75;ARABIC LIGATURE TEH WITH YEH FINAL FORM;Lo;0;AL;<final> 062A 064A;;;;N;;;;;
+FC76;ARABIC LIGATURE THEH WITH REH FINAL FORM;Lo;0;AL;<final> 062B 0631;;;;N;;;;;
+FC77;ARABIC LIGATURE THEH WITH ZAIN FINAL FORM;Lo;0;AL;<final> 062B 0632;;;;N;;;;;
+FC78;ARABIC LIGATURE THEH WITH MEEM FINAL FORM;Lo;0;AL;<final> 062B 0645;;;;N;;;;;
+FC79;ARABIC LIGATURE THEH WITH NOON FINAL FORM;Lo;0;AL;<final> 062B 0646;;;;N;;;;;
+FC7A;ARABIC LIGATURE THEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062B 0649;;;;N;;;;;
+FC7B;ARABIC LIGATURE THEH WITH YEH FINAL FORM;Lo;0;AL;<final> 062B 064A;;;;N;;;;;
+FC7C;ARABIC LIGATURE FEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0641 0649;;;;N;;;;;
+FC7D;ARABIC LIGATURE FEH WITH YEH FINAL FORM;Lo;0;AL;<final> 0641 064A;;;;N;;;;;
+FC7E;ARABIC LIGATURE QAF WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0642 0649;;;;N;;;;;
+FC7F;ARABIC LIGATURE QAF WITH YEH FINAL FORM;Lo;0;AL;<final> 0642 064A;;;;N;;;;;
+FC80;ARABIC LIGATURE KAF WITH ALEF FINAL FORM;Lo;0;AL;<final> 0643 0627;;;;N;;;;;
+FC81;ARABIC LIGATURE KAF WITH LAM FINAL FORM;Lo;0;AL;<final> 0643 0644;;;;N;;;;;
+FC82;ARABIC LIGATURE KAF WITH MEEM FINAL FORM;Lo;0;AL;<final> 0643 0645;;;;N;;;;;
+FC83;ARABIC LIGATURE KAF WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0643 0649;;;;N;;;;;
+FC84;ARABIC LIGATURE KAF WITH YEH FINAL FORM;Lo;0;AL;<final> 0643 064A;;;;N;;;;;
+FC85;ARABIC LIGATURE LAM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0644 0645;;;;N;;;;;
+FC86;ARABIC LIGATURE LAM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0644 0649;;;;N;;;;;
+FC87;ARABIC LIGATURE LAM WITH YEH FINAL FORM;Lo;0;AL;<final> 0644 064A;;;;N;;;;;
+FC88;ARABIC LIGATURE MEEM WITH ALEF FINAL FORM;Lo;0;AL;<final> 0645 0627;;;;N;;;;;
+FC89;ARABIC LIGATURE MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0645 0645;;;;N;;;;;
+FC8A;ARABIC LIGATURE NOON WITH REH FINAL FORM;Lo;0;AL;<final> 0646 0631;;;;N;;;;;
+FC8B;ARABIC LIGATURE NOON WITH ZAIN FINAL FORM;Lo;0;AL;<final> 0646 0632;;;;N;;;;;
+FC8C;ARABIC LIGATURE NOON WITH MEEM FINAL FORM;Lo;0;AL;<final> 0646 0645;;;;N;;;;;
+FC8D;ARABIC LIGATURE NOON WITH NOON FINAL FORM;Lo;0;AL;<final> 0646 0646;;;;N;;;;;
+FC8E;ARABIC LIGATURE NOON WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0646 0649;;;;N;;;;;
+FC8F;ARABIC LIGATURE NOON WITH YEH FINAL FORM;Lo;0;AL;<final> 0646 064A;;;;N;;;;;
+FC90;ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF FINAL FORM;Lo;0;AL;<final> 0649 0670;;;;N;;;;;
+FC91;ARABIC LIGATURE YEH WITH REH FINAL FORM;Lo;0;AL;<final> 064A 0631;;;;N;;;;;
+FC92;ARABIC LIGATURE YEH WITH ZAIN FINAL FORM;Lo;0;AL;<final> 064A 0632;;;;N;;;;;
+FC93;ARABIC LIGATURE YEH WITH MEEM FINAL FORM;Lo;0;AL;<final> 064A 0645;;;;N;;;;;
+FC94;ARABIC LIGATURE YEH WITH NOON FINAL FORM;Lo;0;AL;<final> 064A 0646;;;;N;;;;;
+FC95;ARABIC LIGATURE YEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 064A 0649;;;;N;;;;;
+FC96;ARABIC LIGATURE YEH WITH YEH FINAL FORM;Lo;0;AL;<final> 064A 064A;;;;N;;;;;
+FC97;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0626 062C;;;;N;;;;;
+FC98;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0626 062D;;;;N;;;;;
+FC99;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0626 062E;;;;N;;;;;
+FC9A;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0626 0645;;;;N;;;;;
+FC9B;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH INITIAL FORM;Lo;0;AL;<initial> 0626 0647;;;;N;;;;;
+FC9C;ARABIC LIGATURE BEH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0628 062C;;;;N;;;;;
+FC9D;ARABIC LIGATURE BEH WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0628 062D;;;;N;;;;;
+FC9E;ARABIC LIGATURE BEH WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0628 062E;;;;N;;;;;
+FC9F;ARABIC LIGATURE BEH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0628 0645;;;;N;;;;;
+FCA0;ARABIC LIGATURE BEH WITH HEH INITIAL FORM;Lo;0;AL;<initial> 0628 0647;;;;N;;;;;
+FCA1;ARABIC LIGATURE TEH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 062A 062C;;;;N;;;;;
+FCA2;ARABIC LIGATURE TEH WITH HAH INITIAL FORM;Lo;0;AL;<initial> 062A 062D;;;;N;;;;;
+FCA3;ARABIC LIGATURE TEH WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 062A 062E;;;;N;;;;;
+FCA4;ARABIC LIGATURE TEH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062A 0645;;;;N;;;;;
+FCA5;ARABIC LIGATURE TEH WITH HEH INITIAL FORM;Lo;0;AL;<initial> 062A 0647;;;;N;;;;;
+FCA6;ARABIC LIGATURE THEH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062B 0645;;;;N;;;;;
+FCA7;ARABIC LIGATURE JEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 062C 062D;;;;N;;;;;
+FCA8;ARABIC LIGATURE JEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062C 0645;;;;N;;;;;
+FCA9;ARABIC LIGATURE HAH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 062D 062C;;;;N;;;;;
+FCAA;ARABIC LIGATURE HAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062D 0645;;;;N;;;;;
+FCAB;ARABIC LIGATURE KHAH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 062E 062C;;;;N;;;;;
+FCAC;ARABIC LIGATURE KHAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062E 0645;;;;N;;;;;
+FCAD;ARABIC LIGATURE SEEN WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0633 062C;;;;N;;;;;
+FCAE;ARABIC LIGATURE SEEN WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0633 062D;;;;N;;;;;
+FCAF;ARABIC LIGATURE SEEN WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0633 062E;;;;N;;;;;
+FCB0;ARABIC LIGATURE SEEN WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0633 0645;;;;N;;;;;
+FCB1;ARABIC LIGATURE SAD WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0635 062D;;;;N;;;;;
+FCB2;ARABIC LIGATURE SAD WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0635 062E;;;;N;;;;;
+FCB3;ARABIC LIGATURE SAD WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0635 0645;;;;N;;;;;
+FCB4;ARABIC LIGATURE DAD WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0636 062C;;;;N;;;;;
+FCB5;ARABIC LIGATURE DAD WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0636 062D;;;;N;;;;;
+FCB6;ARABIC LIGATURE DAD WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0636 062E;;;;N;;;;;
+FCB7;ARABIC LIGATURE DAD WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0636 0645;;;;N;;;;;
+FCB8;ARABIC LIGATURE TAH WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0637 062D;;;;N;;;;;
+FCB9;ARABIC LIGATURE ZAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0638 0645;;;;N;;;;;
+FCBA;ARABIC LIGATURE AIN WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0639 062C;;;;N;;;;;
+FCBB;ARABIC LIGATURE AIN WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0639 0645;;;;N;;;;;
+FCBC;ARABIC LIGATURE GHAIN WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 063A 062C;;;;N;;;;;
+FCBD;ARABIC LIGATURE GHAIN WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 063A 0645;;;;N;;;;;
+FCBE;ARABIC LIGATURE FEH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0641 062C;;;;N;;;;;
+FCBF;ARABIC LIGATURE FEH WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0641 062D;;;;N;;;;;
+FCC0;ARABIC LIGATURE FEH WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0641 062E;;;;N;;;;;
+FCC1;ARABIC LIGATURE FEH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0641 0645;;;;N;;;;;
+FCC2;ARABIC LIGATURE QAF WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0642 062D;;;;N;;;;;
+FCC3;ARABIC LIGATURE QAF WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0642 0645;;;;N;;;;;
+FCC4;ARABIC LIGATURE KAF WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0643 062C;;;;N;;;;;
+FCC5;ARABIC LIGATURE KAF WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0643 062D;;;;N;;;;;
+FCC6;ARABIC LIGATURE KAF WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0643 062E;;;;N;;;;;
+FCC7;ARABIC LIGATURE KAF WITH LAM INITIAL FORM;Lo;0;AL;<initial> 0643 0644;;;;N;;;;;
+FCC8;ARABIC LIGATURE KAF WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0643 0645;;;;N;;;;;
+FCC9;ARABIC LIGATURE LAM WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0644 062C;;;;N;;;;;
+FCCA;ARABIC LIGATURE LAM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0644 062D;;;;N;;;;;
+FCCB;ARABIC LIGATURE LAM WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0644 062E;;;;N;;;;;
+FCCC;ARABIC LIGATURE LAM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0644 0645;;;;N;;;;;
+FCCD;ARABIC LIGATURE LAM WITH HEH INITIAL FORM;Lo;0;AL;<initial> 0644 0647;;;;N;;;;;
+FCCE;ARABIC LIGATURE MEEM WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0645 062C;;;;N;;;;;
+FCCF;ARABIC LIGATURE MEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0645 062D;;;;N;;;;;
+FCD0;ARABIC LIGATURE MEEM WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0645 062E;;;;N;;;;;
+FCD1;ARABIC LIGATURE MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0645 0645;;;;N;;;;;
+FCD2;ARABIC LIGATURE NOON WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0646 062C;;;;N;;;;;
+FCD3;ARABIC LIGATURE NOON WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0646 062D;;;;N;;;;;
+FCD4;ARABIC LIGATURE NOON WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0646 062E;;;;N;;;;;
+FCD5;ARABIC LIGATURE NOON WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0646 0645;;;;N;;;;;
+FCD6;ARABIC LIGATURE NOON WITH HEH INITIAL FORM;Lo;0;AL;<initial> 0646 0647;;;;N;;;;;
+FCD7;ARABIC LIGATURE HEH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0647 062C;;;;N;;;;;
+FCD8;ARABIC LIGATURE HEH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0647 0645;;;;N;;;;;
+FCD9;ARABIC LIGATURE HEH WITH SUPERSCRIPT ALEF INITIAL FORM;Lo;0;AL;<initial> 0647 0670;;;;N;;;;;
+FCDA;ARABIC LIGATURE YEH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 064A 062C;;;;N;;;;;
+FCDB;ARABIC LIGATURE YEH WITH HAH INITIAL FORM;Lo;0;AL;<initial> 064A 062D;;;;N;;;;;
+FCDC;ARABIC LIGATURE YEH WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 064A 062E;;;;N;;;;;
+FCDD;ARABIC LIGATURE YEH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 064A 0645;;;;N;;;;;
+FCDE;ARABIC LIGATURE YEH WITH HEH INITIAL FORM;Lo;0;AL;<initial> 064A 0647;;;;N;;;;;
+FCDF;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0626 0645;;;;N;;;;;
+FCE0;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 0626 0647;;;;N;;;;;
+FCE1;ARABIC LIGATURE BEH WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0628 0645;;;;N;;;;;
+FCE2;ARABIC LIGATURE BEH WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 0628 0647;;;;N;;;;;
+FCE3;ARABIC LIGATURE TEH WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 062A 0645;;;;N;;;;;
+FCE4;ARABIC LIGATURE TEH WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 062A 0647;;;;N;;;;;
+FCE5;ARABIC LIGATURE THEH WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 062B 0645;;;;N;;;;;
+FCE6;ARABIC LIGATURE THEH WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 062B 0647;;;;N;;;;;
+FCE7;ARABIC LIGATURE SEEN WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0633 0645;;;;N;;;;;
+FCE8;ARABIC LIGATURE SEEN WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 0633 0647;;;;N;;;;;
+FCE9;ARABIC LIGATURE SHEEN WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0634 0645;;;;N;;;;;
+FCEA;ARABIC LIGATURE SHEEN WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 0634 0647;;;;N;;;;;
+FCEB;ARABIC LIGATURE KAF WITH LAM MEDIAL FORM;Lo;0;AL;<medial> 0643 0644;;;;N;;;;;
+FCEC;ARABIC LIGATURE KAF WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0643 0645;;;;N;;;;;
+FCED;ARABIC LIGATURE LAM WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0644 0645;;;;N;;;;;
+FCEE;ARABIC LIGATURE NOON WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0646 0645;;;;N;;;;;
+FCEF;ARABIC LIGATURE NOON WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 0646 0647;;;;N;;;;;
+FCF0;ARABIC LIGATURE YEH WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 064A 0645;;;;N;;;;;
+FCF1;ARABIC LIGATURE YEH WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 064A 0647;;;;N;;;;;
+FCF2;ARABIC LIGATURE SHADDA WITH FATHA MEDIAL FORM;Lo;0;AL;<medial> 0640 064E 0651;;;;N;;;;;
+FCF3;ARABIC LIGATURE SHADDA WITH DAMMA MEDIAL FORM;Lo;0;AL;<medial> 0640 064F 0651;;;;N;;;;;
+FCF4;ARABIC LIGATURE SHADDA WITH KASRA MEDIAL FORM;Lo;0;AL;<medial> 0640 0650 0651;;;;N;;;;;
+FCF5;ARABIC LIGATURE TAH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0637 0649;;;;N;;;;;
+FCF6;ARABIC LIGATURE TAH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0637 064A;;;;N;;;;;
+FCF7;ARABIC LIGATURE AIN WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0639 0649;;;;N;;;;;
+FCF8;ARABIC LIGATURE AIN WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0639 064A;;;;N;;;;;
+FCF9;ARABIC LIGATURE GHAIN WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 063A 0649;;;;N;;;;;
+FCFA;ARABIC LIGATURE GHAIN WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 063A 064A;;;;N;;;;;
+FCFB;ARABIC LIGATURE SEEN WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0633 0649;;;;N;;;;;
+FCFC;ARABIC LIGATURE SEEN WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0633 064A;;;;N;;;;;
+FCFD;ARABIC LIGATURE SHEEN WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0634 0649;;;;N;;;;;
+FCFE;ARABIC LIGATURE SHEEN WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0634 064A;;;;N;;;;;
+FCFF;ARABIC LIGATURE HAH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 062D 0649;;;;N;;;;;
+FD00;ARABIC LIGATURE HAH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 062D 064A;;;;N;;;;;
+FD01;ARABIC LIGATURE JEEM WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 062C 0649;;;;N;;;;;
+FD02;ARABIC LIGATURE JEEM WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 062C 064A;;;;N;;;;;
+FD03;ARABIC LIGATURE KHAH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 062E 0649;;;;N;;;;;
+FD04;ARABIC LIGATURE KHAH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 062E 064A;;;;N;;;;;
+FD05;ARABIC LIGATURE SAD WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0635 0649;;;;N;;;;;
+FD06;ARABIC LIGATURE SAD WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0635 064A;;;;N;;;;;
+FD07;ARABIC LIGATURE DAD WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0636 0649;;;;N;;;;;
+FD08;ARABIC LIGATURE DAD WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0636 064A;;;;N;;;;;
+FD09;ARABIC LIGATURE SHEEN WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0634 062C;;;;N;;;;;
+FD0A;ARABIC LIGATURE SHEEN WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0634 062D;;;;N;;;;;
+FD0B;ARABIC LIGATURE SHEEN WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0634 062E;;;;N;;;;;
+FD0C;ARABIC LIGATURE SHEEN WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0634 0645;;;;N;;;;;
+FD0D;ARABIC LIGATURE SHEEN WITH REH ISOLATED FORM;Lo;0;AL;<isolated> 0634 0631;;;;N;;;;;
+FD0E;ARABIC LIGATURE SEEN WITH REH ISOLATED FORM;Lo;0;AL;<isolated> 0633 0631;;;;N;;;;;
+FD0F;ARABIC LIGATURE SAD WITH REH ISOLATED FORM;Lo;0;AL;<isolated> 0635 0631;;;;N;;;;;
+FD10;ARABIC LIGATURE DAD WITH REH ISOLATED FORM;Lo;0;AL;<isolated> 0636 0631;;;;N;;;;;
+FD11;ARABIC LIGATURE TAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0637 0649;;;;N;;;;;
+FD12;ARABIC LIGATURE TAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0637 064A;;;;N;;;;;
+FD13;ARABIC LIGATURE AIN WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0639 0649;;;;N;;;;;
+FD14;ARABIC LIGATURE AIN WITH YEH FINAL FORM;Lo;0;AL;<final> 0639 064A;;;;N;;;;;
+FD15;ARABIC LIGATURE GHAIN WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 063A 0649;;;;N;;;;;
+FD16;ARABIC LIGATURE GHAIN WITH YEH FINAL FORM;Lo;0;AL;<final> 063A 064A;;;;N;;;;;
+FD17;ARABIC LIGATURE SEEN WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0633 0649;;;;N;;;;;
+FD18;ARABIC LIGATURE SEEN WITH YEH FINAL FORM;Lo;0;AL;<final> 0633 064A;;;;N;;;;;
+FD19;ARABIC LIGATURE SHEEN WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0634 0649;;;;N;;;;;
+FD1A;ARABIC LIGATURE SHEEN WITH YEH FINAL FORM;Lo;0;AL;<final> 0634 064A;;;;N;;;;;
+FD1B;ARABIC LIGATURE HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062D 0649;;;;N;;;;;
+FD1C;ARABIC LIGATURE HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 062D 064A;;;;N;;;;;
+FD1D;ARABIC LIGATURE JEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062C 0649;;;;N;;;;;
+FD1E;ARABIC LIGATURE JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 062C 064A;;;;N;;;;;
+FD1F;ARABIC LIGATURE KHAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062E 0649;;;;N;;;;;
+FD20;ARABIC LIGATURE KHAH WITH YEH FINAL FORM;Lo;0;AL;<final> 062E 064A;;;;N;;;;;
+FD21;ARABIC LIGATURE SAD WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0635 0649;;;;N;;;;;
+FD22;ARABIC LIGATURE SAD WITH YEH FINAL FORM;Lo;0;AL;<final> 0635 064A;;;;N;;;;;
+FD23;ARABIC LIGATURE DAD WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0636 0649;;;;N;;;;;
+FD24;ARABIC LIGATURE DAD WITH YEH FINAL FORM;Lo;0;AL;<final> 0636 064A;;;;N;;;;;
+FD25;ARABIC LIGATURE SHEEN WITH JEEM FINAL FORM;Lo;0;AL;<final> 0634 062C;;;;N;;;;;
+FD26;ARABIC LIGATURE SHEEN WITH HAH FINAL FORM;Lo;0;AL;<final> 0634 062D;;;;N;;;;;
+FD27;ARABIC LIGATURE SHEEN WITH KHAH FINAL FORM;Lo;0;AL;<final> 0634 062E;;;;N;;;;;
+FD28;ARABIC LIGATURE SHEEN WITH MEEM FINAL FORM;Lo;0;AL;<final> 0634 0645;;;;N;;;;;
+FD29;ARABIC LIGATURE SHEEN WITH REH FINAL FORM;Lo;0;AL;<final> 0634 0631;;;;N;;;;;
+FD2A;ARABIC LIGATURE SEEN WITH REH FINAL FORM;Lo;0;AL;<final> 0633 0631;;;;N;;;;;
+FD2B;ARABIC LIGATURE SAD WITH REH FINAL FORM;Lo;0;AL;<final> 0635 0631;;;;N;;;;;
+FD2C;ARABIC LIGATURE DAD WITH REH FINAL FORM;Lo;0;AL;<final> 0636 0631;;;;N;;;;;
+FD2D;ARABIC LIGATURE SHEEN WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0634 062C;;;;N;;;;;
+FD2E;ARABIC LIGATURE SHEEN WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0634 062D;;;;N;;;;;
+FD2F;ARABIC LIGATURE SHEEN WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0634 062E;;;;N;;;;;
+FD30;ARABIC LIGATURE SHEEN WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0634 0645;;;;N;;;;;
+FD31;ARABIC LIGATURE SEEN WITH HEH INITIAL FORM;Lo;0;AL;<initial> 0633 0647;;;;N;;;;;
+FD32;ARABIC LIGATURE SHEEN WITH HEH INITIAL FORM;Lo;0;AL;<initial> 0634 0647;;;;N;;;;;
+FD33;ARABIC LIGATURE TAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0637 0645;;;;N;;;;;
+FD34;ARABIC LIGATURE SEEN WITH JEEM MEDIAL FORM;Lo;0;AL;<medial> 0633 062C;;;;N;;;;;
+FD35;ARABIC LIGATURE SEEN WITH HAH MEDIAL FORM;Lo;0;AL;<medial> 0633 062D;;;;N;;;;;
+FD36;ARABIC LIGATURE SEEN WITH KHAH MEDIAL FORM;Lo;0;AL;<medial> 0633 062E;;;;N;;;;;
+FD37;ARABIC LIGATURE SHEEN WITH JEEM MEDIAL FORM;Lo;0;AL;<medial> 0634 062C;;;;N;;;;;
+FD38;ARABIC LIGATURE SHEEN WITH HAH MEDIAL FORM;Lo;0;AL;<medial> 0634 062D;;;;N;;;;;
+FD39;ARABIC LIGATURE SHEEN WITH KHAH MEDIAL FORM;Lo;0;AL;<medial> 0634 062E;;;;N;;;;;
+FD3A;ARABIC LIGATURE TAH WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0637 0645;;;;N;;;;;
+FD3B;ARABIC LIGATURE ZAH WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0638 0645;;;;N;;;;;
+FD3C;ARABIC LIGATURE ALEF WITH FATHATAN FINAL FORM;Lo;0;AL;<final> 0627 064B;;;;N;;;;;
+FD3D;ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM;Lo;0;AL;<isolated> 0627 064B;;;;N;;;;;
+FD3E;ORNATE LEFT PARENTHESIS;Ps;0;ON;;;;;N;;;;;
+FD3F;ORNATE RIGHT PARENTHESIS;Pe;0;ON;;;;;N;;;;;
+FD50;ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062A 062C 0645;;;;N;;;;;
+FD51;ARABIC LIGATURE TEH WITH HAH WITH JEEM FINAL FORM;Lo;0;AL;<final> 062A 062D 062C;;;;N;;;;;
+FD52;ARABIC LIGATURE TEH WITH HAH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 062A 062D 062C;;;;N;;;;;
+FD53;ARABIC LIGATURE TEH WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062A 062D 0645;;;;N;;;;;
+FD54;ARABIC LIGATURE TEH WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062A 062E 0645;;;;N;;;;;
+FD55;ARABIC LIGATURE TEH WITH MEEM WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 062A 0645 062C;;;;N;;;;;
+FD56;ARABIC LIGATURE TEH WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 062A 0645 062D;;;;N;;;;;
+FD57;ARABIC LIGATURE TEH WITH MEEM WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 062A 0645 062E;;;;N;;;;;
+FD58;ARABIC LIGATURE JEEM WITH MEEM WITH HAH FINAL FORM;Lo;0;AL;<final> 062C 0645 062D;;;;N;;;;;
+FD59;ARABIC LIGATURE JEEM WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 062C 0645 062D;;;;N;;;;;
+FD5A;ARABIC LIGATURE HAH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 062D 0645 064A;;;;N;;;;;
+FD5B;ARABIC LIGATURE HAH WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062D 0645 0649;;;;N;;;;;
+FD5C;ARABIC LIGATURE SEEN WITH HAH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0633 062D 062C;;;;N;;;;;
+FD5D;ARABIC LIGATURE SEEN WITH JEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0633 062C 062D;;;;N;;;;;
+FD5E;ARABIC LIGATURE SEEN WITH JEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0633 062C 0649;;;;N;;;;;
+FD5F;ARABIC LIGATURE SEEN WITH MEEM WITH HAH FINAL FORM;Lo;0;AL;<final> 0633 0645 062D;;;;N;;;;;
+FD60;ARABIC LIGATURE SEEN WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0633 0645 062D;;;;N;;;;;
+FD61;ARABIC LIGATURE SEEN WITH MEEM WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0633 0645 062C;;;;N;;;;;
+FD62;ARABIC LIGATURE SEEN WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0633 0645 0645;;;;N;;;;;
+FD63;ARABIC LIGATURE SEEN WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0633 0645 0645;;;;N;;;;;
+FD64;ARABIC LIGATURE SAD WITH HAH WITH HAH FINAL FORM;Lo;0;AL;<final> 0635 062D 062D;;;;N;;;;;
+FD65;ARABIC LIGATURE SAD WITH HAH WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0635 062D 062D;;;;N;;;;;
+FD66;ARABIC LIGATURE SAD WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0635 0645 0645;;;;N;;;;;
+FD67;ARABIC LIGATURE SHEEN WITH HAH WITH MEEM FINAL FORM;Lo;0;AL;<final> 0634 062D 0645;;;;N;;;;;
+FD68;ARABIC LIGATURE SHEEN WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0634 062D 0645;;;;N;;;;;
+FD69;ARABIC LIGATURE SHEEN WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0634 062C 064A;;;;N;;;;;
+FD6A;ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH FINAL FORM;Lo;0;AL;<final> 0634 0645 062E;;;;N;;;;;
+FD6B;ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0634 0645 062E;;;;N;;;;;
+FD6C;ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0634 0645 0645;;;;N;;;;;
+FD6D;ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0634 0645 0645;;;;N;;;;;
+FD6E;ARABIC LIGATURE DAD WITH HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0636 062D 0649;;;;N;;;;;
+FD6F;ARABIC LIGATURE DAD WITH KHAH WITH MEEM FINAL FORM;Lo;0;AL;<final> 0636 062E 0645;;;;N;;;;;
+FD70;ARABIC LIGATURE DAD WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0636 062E 0645;;;;N;;;;;
+FD71;ARABIC LIGATURE TAH WITH MEEM WITH HAH FINAL FORM;Lo;0;AL;<final> 0637 0645 062D;;;;N;;;;;
+FD72;ARABIC LIGATURE TAH WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0637 0645 062D;;;;N;;;;;
+FD73;ARABIC LIGATURE TAH WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0637 0645 0645;;;;N;;;;;
+FD74;ARABIC LIGATURE TAH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0637 0645 064A;;;;N;;;;;
+FD75;ARABIC LIGATURE AIN WITH JEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0639 062C 0645;;;;N;;;;;
+FD76;ARABIC LIGATURE AIN WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0639 0645 0645;;;;N;;;;;
+FD77;ARABIC LIGATURE AIN WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0639 0645 0645;;;;N;;;;;
+FD78;ARABIC LIGATURE AIN WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0639 0645 0649;;;;N;;;;;
+FD79;ARABIC LIGATURE GHAIN WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 063A 0645 0645;;;;N;;;;;
+FD7A;ARABIC LIGATURE GHAIN WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 063A 0645 064A;;;;N;;;;;
+FD7B;ARABIC LIGATURE GHAIN WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 063A 0645 0649;;;;N;;;;;
+FD7C;ARABIC LIGATURE FEH WITH KHAH WITH MEEM FINAL FORM;Lo;0;AL;<final> 0641 062E 0645;;;;N;;;;;
+FD7D;ARABIC LIGATURE FEH WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0641 062E 0645;;;;N;;;;;
+FD7E;ARABIC LIGATURE QAF WITH MEEM WITH HAH FINAL FORM;Lo;0;AL;<final> 0642 0645 062D;;;;N;;;;;
+FD7F;ARABIC LIGATURE QAF WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0642 0645 0645;;;;N;;;;;
+FD80;ARABIC LIGATURE LAM WITH HAH WITH MEEM FINAL FORM;Lo;0;AL;<final> 0644 062D 0645;;;;N;;;;;
+FD81;ARABIC LIGATURE LAM WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0644 062D 064A;;;;N;;;;;
+FD82;ARABIC LIGATURE LAM WITH HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0644 062D 0649;;;;N;;;;;
+FD83;ARABIC LIGATURE LAM WITH JEEM WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0644 062C 062C;;;;N;;;;;
+FD84;ARABIC LIGATURE LAM WITH JEEM WITH JEEM FINAL FORM;Lo;0;AL;<final> 0644 062C 062C;;;;N;;;;;
+FD85;ARABIC LIGATURE LAM WITH KHAH WITH MEEM FINAL FORM;Lo;0;AL;<final> 0644 062E 0645;;;;N;;;;;
+FD86;ARABIC LIGATURE LAM WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0644 062E 0645;;;;N;;;;;
+FD87;ARABIC LIGATURE LAM WITH MEEM WITH HAH FINAL FORM;Lo;0;AL;<final> 0644 0645 062D;;;;N;;;;;
+FD88;ARABIC LIGATURE LAM WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0644 0645 062D;;;;N;;;;;
+FD89;ARABIC LIGATURE MEEM WITH HAH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0645 062D 062C;;;;N;;;;;
+FD8A;ARABIC LIGATURE MEEM WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0645 062D 0645;;;;N;;;;;
+FD8B;ARABIC LIGATURE MEEM WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0645 062D 064A;;;;N;;;;;
+FD8C;ARABIC LIGATURE MEEM WITH JEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0645 062C 062D;;;;N;;;;;
+FD8D;ARABIC LIGATURE MEEM WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0645 062C 0645;;;;N;;;;;
+FD8E;ARABIC LIGATURE MEEM WITH KHAH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0645 062E 062C;;;;N;;;;;
+FD8F;ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0645 062E 0645;;;;N;;;;;
+FD92;ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0645 062C 062E;;;;N;;;;;
+FD93;ARABIC LIGATURE HEH WITH MEEM WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0647 0645 062C;;;;N;;;;;
+FD94;ARABIC LIGATURE HEH WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0647 0645 0645;;;;N;;;;;
+FD95;ARABIC LIGATURE NOON WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0646 062D 0645;;;;N;;;;;
+FD96;ARABIC LIGATURE NOON WITH HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0646 062D 0649;;;;N;;;;;
+FD97;ARABIC LIGATURE NOON WITH JEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0646 062C 0645;;;;N;;;;;
+FD98;ARABIC LIGATURE NOON WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0646 062C 0645;;;;N;;;;;
+FD99;ARABIC LIGATURE NOON WITH JEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0646 062C 0649;;;;N;;;;;
+FD9A;ARABIC LIGATURE NOON WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0646 0645 064A;;;;N;;;;;
+FD9B;ARABIC LIGATURE NOON WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0646 0645 0649;;;;N;;;;;
+FD9C;ARABIC LIGATURE YEH WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 064A 0645 0645;;;;N;;;;;
+FD9D;ARABIC LIGATURE YEH WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 064A 0645 0645;;;;N;;;;;
+FD9E;ARABIC LIGATURE BEH WITH KHAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0628 062E 064A;;;;N;;;;;
+FD9F;ARABIC LIGATURE TEH WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 062A 062C 064A;;;;N;;;;;
+FDA0;ARABIC LIGATURE TEH WITH JEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062A 062C 0649;;;;N;;;;;
+FDA1;ARABIC LIGATURE TEH WITH KHAH WITH YEH FINAL FORM;Lo;0;AL;<final> 062A 062E 064A;;;;N;;;;;
+FDA2;ARABIC LIGATURE TEH WITH KHAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062A 062E 0649;;;;N;;;;;
+FDA3;ARABIC LIGATURE TEH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 062A 0645 064A;;;;N;;;;;
+FDA4;ARABIC LIGATURE TEH WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062A 0645 0649;;;;N;;;;;
+FDA5;ARABIC LIGATURE JEEM WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 062C 0645 064A;;;;N;;;;;
+FDA6;ARABIC LIGATURE JEEM WITH HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062C 062D 0649;;;;N;;;;;
+FDA7;ARABIC LIGATURE JEEM WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062C 0645 0649;;;;N;;;;;
+FDA8;ARABIC LIGATURE SEEN WITH KHAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0633 062E 0649;;;;N;;;;;
+FDA9;ARABIC LIGATURE SAD WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0635 062D 064A;;;;N;;;;;
+FDAA;ARABIC LIGATURE SHEEN WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0634 062D 064A;;;;N;;;;;
+FDAB;ARABIC LIGATURE DAD WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0636 062D 064A;;;;N;;;;;
+FDAC;ARABIC LIGATURE LAM WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0644 062C 064A;;;;N;;;;;
+FDAD;ARABIC LIGATURE LAM WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0644 0645 064A;;;;N;;;;;
+FDAE;ARABIC LIGATURE YEH WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 064A 062D 064A;;;;N;;;;;
+FDAF;ARABIC LIGATURE YEH WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 064A 062C 064A;;;;N;;;;;
+FDB0;ARABIC LIGATURE YEH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 064A 0645 064A;;;;N;;;;;
+FDB1;ARABIC LIGATURE MEEM WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0645 0645 064A;;;;N;;;;;
+FDB2;ARABIC LIGATURE QAF WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0642 0645 064A;;;;N;;;;;
+FDB3;ARABIC LIGATURE NOON WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0646 062D 064A;;;;N;;;;;
+FDB4;ARABIC LIGATURE QAF WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0642 0645 062D;;;;N;;;;;
+FDB5;ARABIC LIGATURE LAM WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0644 062D 0645;;;;N;;;;;
+FDB6;ARABIC LIGATURE AIN WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0639 0645 064A;;;;N;;;;;
+FDB7;ARABIC LIGATURE KAF WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0643 0645 064A;;;;N;;;;;
+FDB8;ARABIC LIGATURE NOON WITH JEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0646 062C 062D;;;;N;;;;;
+FDB9;ARABIC LIGATURE MEEM WITH KHAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0645 062E 064A;;;;N;;;;;
+FDBA;ARABIC LIGATURE LAM WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0644 062C 0645;;;;N;;;;;
+FDBB;ARABIC LIGATURE KAF WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0643 0645 0645;;;;N;;;;;
+FDBC;ARABIC LIGATURE LAM WITH JEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0644 062C 0645;;;;N;;;;;
+FDBD;ARABIC LIGATURE NOON WITH JEEM WITH HAH FINAL FORM;Lo;0;AL;<final> 0646 062C 062D;;;;N;;;;;
+FDBE;ARABIC LIGATURE JEEM WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 062C 062D 064A;;;;N;;;;;
+FDBF;ARABIC LIGATURE HAH WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 062D 062C 064A;;;;N;;;;;
+FDC0;ARABIC LIGATURE MEEM WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0645 062C 064A;;;;N;;;;;
+FDC1;ARABIC LIGATURE FEH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0641 0645 064A;;;;N;;;;;
+FDC2;ARABIC LIGATURE BEH WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0628 062D 064A;;;;N;;;;;
+FDC3;ARABIC LIGATURE KAF WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0643 0645 0645;;;;N;;;;;
+FDC4;ARABIC LIGATURE AIN WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0639 062C 0645;;;;N;;;;;
+FDC5;ARABIC LIGATURE SAD WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0635 0645 0645;;;;N;;;;;
+FDC6;ARABIC LIGATURE SEEN WITH KHAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0633 062E 064A;;;;N;;;;;
+FDC7;ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0646 062C 064A;;;;N;;;;;
+FDF0;ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM;Lo;0;AL;<isolated> 0635 0644 06D2;;;;N;;;;;
+FDF1;ARABIC LIGATURE QALA USED AS KORANIC STOP SIGN ISOLATED FORM;Lo;0;AL;<isolated> 0642 0644 06D2;;;;N;;;;;
+FDF2;ARABIC LIGATURE ALLAH ISOLATED FORM;Lo;0;AL;<isolated> 0627 0644 0644 0647;;;;N;;;;;
+FDF3;ARABIC LIGATURE AKBAR ISOLATED FORM;Lo;0;AL;<isolated> 0627 0643 0628 0631;;;;N;;;;;
+FDF4;ARABIC LIGATURE MOHAMMAD ISOLATED FORM;Lo;0;AL;<isolated> 0645 062D 0645 062F;;;;N;;;;;
+FDF5;ARABIC LIGATURE SALAM ISOLATED FORM;Lo;0;AL;<isolated> 0635 0644 0639 0645;;;;N;;;;;
+FDF6;ARABIC LIGATURE RASOUL ISOLATED FORM;Lo;0;AL;<isolated> 0631 0633 0648 0644;;;;N;;;;;
+FDF7;ARABIC LIGATURE ALAYHE ISOLATED FORM;Lo;0;AL;<isolated> 0639 0644 064A 0647;;;;N;;;;;
+FDF8;ARABIC LIGATURE WASALLAM ISOLATED FORM;Lo;0;AL;<isolated> 0648 0633 0644 0645;;;;N;;;;;
+FDF9;ARABIC LIGATURE SALLA ISOLATED FORM;Lo;0;AL;<isolated> 0635 0644 0649;;;;N;;;;;
+FDFA;ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM;Lo;0;AL;<isolated> 0635 0644 0649 0020 0627 0644 0644 0647 0020 0639 0644 064A 0647 0020 0648 0633 0644 0645;;;;N;ARABIC LETTER SALLALLAHOU ALAYHE WASALLAM;;;;
+FDFB;ARABIC LIGATURE JALLAJALALOUHOU;Lo;0;AL;<isolated> 062C 0644 0020 062C 0644 0627 0644 0647;;;;N;ARABIC LETTER JALLAJALALOUHOU;;;;
+FE20;COMBINING LIGATURE LEFT HALF;Mn;230;NSM;;;;;N;;;;;
+FE21;COMBINING LIGATURE RIGHT HALF;Mn;230;NSM;;;;;N;;;;;
+FE22;COMBINING DOUBLE TILDE LEFT HALF;Mn;230;NSM;;;;;N;;;;;
+FE23;COMBINING DOUBLE TILDE RIGHT HALF;Mn;230;NSM;;;;;N;;;;;
+FE30;PRESENTATION FORM FOR VERTICAL TWO DOT LEADER;Po;0;ON;<vertical> 2025;;;;N;GLYPH FOR VERTICAL TWO DOT LEADER;;;;
+FE31;PRESENTATION FORM FOR VERTICAL EM DASH;Pd;0;ON;<vertical> 2014;;;;N;GLYPH FOR VERTICAL EM DASH;;;;
+FE32;PRESENTATION FORM FOR VERTICAL EN DASH;Pd;0;ON;<vertical> 2013;;;;N;GLYPH FOR VERTICAL EN DASH;;;;
+FE33;PRESENTATION FORM FOR VERTICAL LOW LINE;Pc;0;ON;<vertical> 005F;;;;N;GLYPH FOR VERTICAL SPACING UNDERSCORE;;;;
+FE34;PRESENTATION FORM FOR VERTICAL WAVY LOW LINE;Pc;0;ON;<vertical> 005F;;;;N;GLYPH FOR VERTICAL SPACING WAVY UNDERSCORE;;;;
+FE35;PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS;Ps;0;ON;<vertical> 0028;;;;N;GLYPH FOR VERTICAL OPENING PARENTHESIS;;;;
+FE36;PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS;Pe;0;ON;<vertical> 0029;;;;N;GLYPH FOR VERTICAL CLOSING PARENTHESIS;;;;
+FE37;PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET;Ps;0;ON;<vertical> 007B;;;;N;GLYPH FOR VERTICAL OPENING CURLY BRACKET;;;;
+FE38;PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET;Pe;0;ON;<vertical> 007D;;;;N;GLYPH FOR VERTICAL CLOSING CURLY BRACKET;;;;
+FE39;PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET;Ps;0;ON;<vertical> 3014;;;;N;GLYPH FOR VERTICAL OPENING TORTOISE SHELL BRACKET;;;;
+FE3A;PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET;Pe;0;ON;<vertical> 3015;;;;N;GLYPH FOR VERTICAL CLOSING TORTOISE SHELL BRACKET;;;;
+FE3B;PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET;Ps;0;ON;<vertical> 3010;;;;N;GLYPH FOR VERTICAL OPENING BLACK LENTICULAR BRACKET;;;;
+FE3C;PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET;Pe;0;ON;<vertical> 3011;;;;N;GLYPH FOR VERTICAL CLOSING BLACK LENTICULAR BRACKET;;;;
+FE3D;PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET;Ps;0;ON;<vertical> 300A;;;;N;GLYPH FOR VERTICAL OPENING DOUBLE ANGLE BRACKET;;;;
+FE3E;PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET;Pe;0;ON;<vertical> 300B;;;;N;GLYPH FOR VERTICAL CLOSING DOUBLE ANGLE BRACKET;;;;
+FE3F;PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET;Ps;0;ON;<vertical> 3008;;;;N;GLYPH FOR VERTICAL OPENING ANGLE BRACKET;;;;
+FE40;PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET;Pe;0;ON;<vertical> 3009;;;;N;GLYPH FOR VERTICAL CLOSING ANGLE BRACKET;;;;
+FE41;PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET;Ps;0;ON;<vertical> 300C;;;;N;GLYPH FOR VERTICAL OPENING CORNER BRACKET;;;;
+FE42;PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET;Pe;0;ON;<vertical> 300D;;;;N;GLYPH FOR VERTICAL CLOSING CORNER BRACKET;;;;
+FE43;PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET;Ps;0;ON;<vertical> 300E;;;;N;GLYPH FOR VERTICAL OPENING WHITE CORNER BRACKET;;;;
+FE44;PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET;Pe;0;ON;<vertical> 300F;;;;N;GLYPH FOR VERTICAL CLOSING WHITE CORNER BRACKET;;;;
+FE49;DASHED OVERLINE;Po;0;ON;<compat> 203E;;;;N;SPACING DASHED OVERSCORE;;;;
+FE4A;CENTRELINE OVERLINE;Po;0;ON;<compat> 203E;;;;N;SPACING CENTERLINE OVERSCORE;;;;
+FE4B;WAVY OVERLINE;Po;0;ON;<compat> 203E;;;;N;SPACING WAVY OVERSCORE;;;;
+FE4C;DOUBLE WAVY OVERLINE;Po;0;ON;<compat> 203E;;;;N;SPACING DOUBLE WAVY OVERSCORE;;;;
+FE4D;DASHED LOW LINE;Pc;0;ON;<compat> 005F;;;;N;SPACING DASHED UNDERSCORE;;;;
+FE4E;CENTRELINE LOW LINE;Pc;0;ON;<compat> 005F;;;;N;SPACING CENTERLINE UNDERSCORE;;;;
+FE4F;WAVY LOW LINE;Pc;0;ON;<compat> 005F;;;;N;SPACING WAVY UNDERSCORE;;;;
+FE50;SMALL COMMA;Po;0;CS;<small> 002C;;;;N;;;;;
+FE51;SMALL IDEOGRAPHIC COMMA;Po;0;ON;<small> 3001;;;;N;;;;;
+FE52;SMALL FULL STOP;Po;0;CS;<small> 002E;;;;N;SMALL PERIOD;;;;
+FE54;SMALL SEMICOLON;Po;0;ON;<small> 003B;;;;N;;;;;
+FE55;SMALL COLON;Po;0;CS;<small> 003A;;;;N;;;;;
+FE56;SMALL QUESTION MARK;Po;0;ON;<small> 003F;;;;N;;;;;
+FE57;SMALL EXCLAMATION MARK;Po;0;ON;<small> 0021;;;;N;;;;;
+FE58;SMALL EM DASH;Pd;0;ON;<small> 2014;;;;N;;;;;
+FE59;SMALL LEFT PARENTHESIS;Ps;0;ON;<small> 0028;;;;N;SMALL OPENING PARENTHESIS;;;;
+FE5A;SMALL RIGHT PARENTHESIS;Pe;0;ON;<small> 0029;;;;N;SMALL CLOSING PARENTHESIS;;;;
+FE5B;SMALL LEFT CURLY BRACKET;Ps;0;ON;<small> 007B;;;;N;SMALL OPENING CURLY BRACKET;;;;
+FE5C;SMALL RIGHT CURLY BRACKET;Pe;0;ON;<small> 007D;;;;N;SMALL CLOSING CURLY BRACKET;;;;
+FE5D;SMALL LEFT TORTOISE SHELL BRACKET;Ps;0;ON;<small> 3014;;;;N;SMALL OPENING TORTOISE SHELL BRACKET;;;;
+FE5E;SMALL RIGHT TORTOISE SHELL BRACKET;Pe;0;ON;<small> 3015;;;;N;SMALL CLOSING TORTOISE SHELL BRACKET;;;;
+FE5F;SMALL NUMBER SIGN;Po;0;ET;<small> 0023;;;;N;;;;;
+FE60;SMALL AMPERSAND;Po;0;ON;<small> 0026;;;;N;;;;;
+FE61;SMALL ASTERISK;Po;0;ON;<small> 002A;;;;N;;;;;
+FE62;SMALL PLUS SIGN;Sm;0;ET;<small> 002B;;;;N;;;;;
+FE63;SMALL HYPHEN-MINUS;Pd;0;ET;<small> 002D;;;;N;;;;;
+FE64;SMALL LESS-THAN SIGN;Sm;0;ON;<small> 003C;;;;N;;;;;
+FE65;SMALL GREATER-THAN SIGN;Sm;0;ON;<small> 003E;;;;N;;;;;
+FE66;SMALL EQUALS SIGN;Sm;0;ON;<small> 003D;;;;N;;;;;
+FE68;SMALL REVERSE SOLIDUS;Po;0;ON;<small> 005C;;;;N;SMALL BACKSLASH;;;;
+FE69;SMALL DOLLAR SIGN;Sc;0;ET;<small> 0024;;;;N;;;;;
+FE6A;SMALL PERCENT SIGN;Po;0;ET;<small> 0025;;;;N;;;;;
+FE6B;SMALL COMMERCIAL AT;Po;0;ON;<small> 0040;;;;N;;;;;
+FE70;ARABIC FATHATAN ISOLATED FORM;Lo;0;AL;<isolated> 0020 064B;;;;N;ARABIC SPACING FATHATAN;;;;
+FE71;ARABIC TATWEEL WITH FATHATAN ABOVE;Lo;0;AL;<medial> 0640 064B;;;;N;ARABIC FATHATAN ON TATWEEL;;;;
+FE72;ARABIC DAMMATAN ISOLATED FORM;Lo;0;AL;<isolated> 0020 064C;;;;N;ARABIC SPACING DAMMATAN;;;;
+FE74;ARABIC KASRATAN ISOLATED FORM;Lo;0;AL;<isolated> 0020 064D;;;;N;ARABIC SPACING KASRATAN;;;;
+FE76;ARABIC FATHA ISOLATED FORM;Lo;0;AL;<isolated> 0020 064E;;;;N;ARABIC SPACING FATHAH;;;;
+FE77;ARABIC FATHA MEDIAL FORM;Lo;0;AL;<medial> 0640 064E;;;;N;ARABIC FATHAH ON TATWEEL;;;;
+FE78;ARABIC DAMMA ISOLATED FORM;Lo;0;AL;<isolated> 0020 064F;;;;N;ARABIC SPACING DAMMAH;;;;
+FE79;ARABIC DAMMA MEDIAL FORM;Lo;0;AL;<medial> 0640 064F;;;;N;ARABIC DAMMAH ON TATWEEL;;;;
+FE7A;ARABIC KASRA ISOLATED FORM;Lo;0;AL;<isolated> 0020 0650;;;;N;ARABIC SPACING KASRAH;;;;
+FE7B;ARABIC KASRA MEDIAL FORM;Lo;0;AL;<medial> 0640 0650;;;;N;ARABIC KASRAH ON TATWEEL;;;;
+FE7C;ARABIC SHADDA ISOLATED FORM;Lo;0;AL;<isolated> 0020 0651;;;;N;ARABIC SPACING SHADDAH;;;;
+FE7D;ARABIC SHADDA MEDIAL FORM;Lo;0;AL;<medial> 0640 0651;;;;N;ARABIC SHADDAH ON TATWEEL;;;;
+FE7E;ARABIC SUKUN ISOLATED FORM;Lo;0;AL;<isolated> 0020 0652;;;;N;ARABIC SPACING SUKUN;;;;
+FE7F;ARABIC SUKUN MEDIAL FORM;Lo;0;AL;<medial> 0640 0652;;;;N;ARABIC SUKUN ON TATWEEL;;;;
+FE80;ARABIC LETTER HAMZA ISOLATED FORM;Lo;0;AL;<isolated> 0621;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH;;;;
+FE81;ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 0622;;;;N;GLYPH FOR ISOLATE ARABIC MADDAH ON ALEF;;;;
+FE82;ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM;Lo;0;AL;<final> 0622;;;;N;GLYPH FOR FINAL ARABIC MADDAH ON ALEF;;;;
+FE83;ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 0623;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH ON ALEF;;;;
+FE84;ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM;Lo;0;AL;<final> 0623;;;;N;GLYPH FOR FINAL ARABIC HAMZAH ON ALEF;;;;
+FE85;ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 0624;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH ON WAW;;;;
+FE86;ARABIC LETTER WAW WITH HAMZA ABOVE FINAL FORM;Lo;0;AL;<final> 0624;;;;N;GLYPH FOR FINAL ARABIC HAMZAH ON WAW;;;;
+FE87;ARABIC LETTER ALEF WITH HAMZA BELOW ISOLATED FORM;Lo;0;AL;<isolated> 0625;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH UNDER ALEF;;;;
+FE88;ARABIC LETTER ALEF WITH HAMZA BELOW FINAL FORM;Lo;0;AL;<final> 0625;;;;N;GLYPH FOR FINAL ARABIC HAMZAH UNDER ALEF;;;;
+FE89;ARABIC LETTER YEH WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 0626;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH ON YA;;;;
+FE8A;ARABIC LETTER YEH WITH HAMZA ABOVE FINAL FORM;Lo;0;AL;<final> 0626;;;;N;GLYPH FOR FINAL ARABIC HAMZAH ON YA;;;;
+FE8B;ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM;Lo;0;AL;<initial> 0626;;;;N;GLYPH FOR INITIAL ARABIC HAMZAH ON YA;;;;
+FE8C;ARABIC LETTER YEH WITH HAMZA ABOVE MEDIAL FORM;Lo;0;AL;<medial> 0626;;;;N;GLYPH FOR MEDIAL ARABIC HAMZAH ON YA;;;;
+FE8D;ARABIC LETTER ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0627;;;;N;GLYPH FOR ISOLATE ARABIC ALEF;;;;
+FE8E;ARABIC LETTER ALEF FINAL FORM;Lo;0;AL;<final> 0627;;;;N;GLYPH FOR FINAL ARABIC ALEF;;;;
+FE8F;ARABIC LETTER BEH ISOLATED FORM;Lo;0;AL;<isolated> 0628;;;;N;GLYPH FOR ISOLATE ARABIC BAA;;;;
+FE90;ARABIC LETTER BEH FINAL FORM;Lo;0;AL;<final> 0628;;;;N;GLYPH FOR FINAL ARABIC BAA;;;;
+FE91;ARABIC LETTER BEH INITIAL FORM;Lo;0;AL;<initial> 0628;;;;N;GLYPH FOR INITIAL ARABIC BAA;;;;
+FE92;ARABIC LETTER BEH MEDIAL FORM;Lo;0;AL;<medial> 0628;;;;N;GLYPH FOR MEDIAL ARABIC BAA;;;;
+FE93;ARABIC LETTER TEH MARBUTA ISOLATED FORM;Lo;0;AL;<isolated> 0629;;;;N;GLYPH FOR ISOLATE ARABIC TAA MARBUTAH;;;;
+FE94;ARABIC LETTER TEH MARBUTA FINAL FORM;Lo;0;AL;<final> 0629;;;;N;GLYPH FOR FINAL ARABIC TAA MARBUTAH;;;;
+FE95;ARABIC LETTER TEH ISOLATED FORM;Lo;0;AL;<isolated> 062A;;;;N;GLYPH FOR ISOLATE ARABIC TAA;;;;
+FE96;ARABIC LETTER TEH FINAL FORM;Lo;0;AL;<final> 062A;;;;N;GLYPH FOR FINAL ARABIC TAA;;;;
+FE97;ARABIC LETTER TEH INITIAL FORM;Lo;0;AL;<initial> 062A;;;;N;GLYPH FOR INITIAL ARABIC TAA;;;;
+FE98;ARABIC LETTER TEH MEDIAL FORM;Lo;0;AL;<medial> 062A;;;;N;GLYPH FOR MEDIAL ARABIC TAA;;;;
+FE99;ARABIC LETTER THEH ISOLATED FORM;Lo;0;AL;<isolated> 062B;;;;N;GLYPH FOR ISOLATE ARABIC THAA;;;;
+FE9A;ARABIC LETTER THEH FINAL FORM;Lo;0;AL;<final> 062B;;;;N;GLYPH FOR FINAL ARABIC THAA;;;;
+FE9B;ARABIC LETTER THEH INITIAL FORM;Lo;0;AL;<initial> 062B;;;;N;GLYPH FOR INITIAL ARABIC THAA;;;;
+FE9C;ARABIC LETTER THEH MEDIAL FORM;Lo;0;AL;<medial> 062B;;;;N;GLYPH FOR MEDIAL ARABIC THAA;;;;
+FE9D;ARABIC LETTER JEEM ISOLATED FORM;Lo;0;AL;<isolated> 062C;;;;N;GLYPH FOR ISOLATE ARABIC JEEM;;;;
+FE9E;ARABIC LETTER JEEM FINAL FORM;Lo;0;AL;<final> 062C;;;;N;GLYPH FOR FINAL ARABIC JEEM;;;;
+FE9F;ARABIC LETTER JEEM INITIAL FORM;Lo;0;AL;<initial> 062C;;;;N;GLYPH FOR INITIAL ARABIC JEEM;;;;
+FEA0;ARABIC LETTER JEEM MEDIAL FORM;Lo;0;AL;<medial> 062C;;;;N;GLYPH FOR MEDIAL ARABIC JEEM;;;;
+FEA1;ARABIC LETTER HAH ISOLATED FORM;Lo;0;AL;<isolated> 062D;;;;N;GLYPH FOR ISOLATE ARABIC HAA;;;;
+FEA2;ARABIC LETTER HAH FINAL FORM;Lo;0;AL;<final> 062D;;;;N;GLYPH FOR FINAL ARABIC HAA;;;;
+FEA3;ARABIC LETTER HAH INITIAL FORM;Lo;0;AL;<initial> 062D;;;;N;GLYPH FOR INITIAL ARABIC HAA;;;;
+FEA4;ARABIC LETTER HAH MEDIAL FORM;Lo;0;AL;<medial> 062D;;;;N;GLYPH FOR MEDIAL ARABIC HAA;;;;
+FEA5;ARABIC LETTER KHAH ISOLATED FORM;Lo;0;AL;<isolated> 062E;;;;N;GLYPH FOR ISOLATE ARABIC KHAA;;;;
+FEA6;ARABIC LETTER KHAH FINAL FORM;Lo;0;AL;<final> 062E;;;;N;GLYPH FOR FINAL ARABIC KHAA;;;;
+FEA7;ARABIC LETTER KHAH INITIAL FORM;Lo;0;AL;<initial> 062E;;;;N;GLYPH FOR INITIAL ARABIC KHAA;;;;
+FEA8;ARABIC LETTER KHAH MEDIAL FORM;Lo;0;AL;<medial> 062E;;;;N;GLYPH FOR MEDIAL ARABIC KHAA;;;;
+FEA9;ARABIC LETTER DAL ISOLATED FORM;Lo;0;AL;<isolated> 062F;;;;N;GLYPH FOR ISOLATE ARABIC DAL;;;;
+FEAA;ARABIC LETTER DAL FINAL FORM;Lo;0;AL;<final> 062F;;;;N;GLYPH FOR FINAL ARABIC DAL;;;;
+FEAB;ARABIC LETTER THAL ISOLATED FORM;Lo;0;AL;<isolated> 0630;;;;N;GLYPH FOR ISOLATE ARABIC THAL;;;;
+FEAC;ARABIC LETTER THAL FINAL FORM;Lo;0;AL;<final> 0630;;;;N;GLYPH FOR FINAL ARABIC THAL;;;;
+FEAD;ARABIC LETTER REH ISOLATED FORM;Lo;0;AL;<isolated> 0631;;;;N;GLYPH FOR ISOLATE ARABIC RA;;;;
+FEAE;ARABIC LETTER REH FINAL FORM;Lo;0;AL;<final> 0631;;;;N;GLYPH FOR FINAL ARABIC RA;;;;
+FEAF;ARABIC LETTER ZAIN ISOLATED FORM;Lo;0;AL;<isolated> 0632;;;;N;GLYPH FOR ISOLATE ARABIC ZAIN;;;;
+FEB0;ARABIC LETTER ZAIN FINAL FORM;Lo;0;AL;<final> 0632;;;;N;GLYPH FOR FINAL ARABIC ZAIN;;;;
+FEB1;ARABIC LETTER SEEN ISOLATED FORM;Lo;0;AL;<isolated> 0633;;;;N;GLYPH FOR ISOLATE ARABIC SEEN;;;;
+FEB2;ARABIC LETTER SEEN FINAL FORM;Lo;0;AL;<final> 0633;;;;N;GLYPH FOR FINAL ARABIC SEEN;;;;
+FEB3;ARABIC LETTER SEEN INITIAL FORM;Lo;0;AL;<initial> 0633;;;;N;GLYPH FOR INITIAL ARABIC SEEN;;;;
+FEB4;ARABIC LETTER SEEN MEDIAL FORM;Lo;0;AL;<medial> 0633;;;;N;GLYPH FOR MEDIAL ARABIC SEEN;;;;
+FEB5;ARABIC LETTER SHEEN ISOLATED FORM;Lo;0;AL;<isolated> 0634;;;;N;GLYPH FOR ISOLATE ARABIC SHEEN;;;;
+FEB6;ARABIC LETTER SHEEN FINAL FORM;Lo;0;AL;<final> 0634;;;;N;GLYPH FOR FINAL ARABIC SHEEN;;;;
+FEB7;ARABIC LETTER SHEEN INITIAL FORM;Lo;0;AL;<initial> 0634;;;;N;GLYPH FOR INITIAL ARABIC SHEEN;;;;
+FEB8;ARABIC LETTER SHEEN MEDIAL FORM;Lo;0;AL;<medial> 0634;;;;N;GLYPH FOR MEDIAL ARABIC SHEEN;;;;
+FEB9;ARABIC LETTER SAD ISOLATED FORM;Lo;0;AL;<isolated> 0635;;;;N;GLYPH FOR ISOLATE ARABIC SAD;;;;
+FEBA;ARABIC LETTER SAD FINAL FORM;Lo;0;AL;<final> 0635;;;;N;GLYPH FOR FINAL ARABIC SAD;;;;
+FEBB;ARABIC LETTER SAD INITIAL FORM;Lo;0;AL;<initial> 0635;;;;N;GLYPH FOR INITIAL ARABIC SAD;;;;
+FEBC;ARABIC LETTER SAD MEDIAL FORM;Lo;0;AL;<medial> 0635;;;;N;GLYPH FOR MEDIAL ARABIC SAD;;;;
+FEBD;ARABIC LETTER DAD ISOLATED FORM;Lo;0;AL;<isolated> 0636;;;;N;GLYPH FOR ISOLATE ARABIC DAD;;;;
+FEBE;ARABIC LETTER DAD FINAL FORM;Lo;0;AL;<final> 0636;;;;N;GLYPH FOR FINAL ARABIC DAD;;;;
+FEBF;ARABIC LETTER DAD INITIAL FORM;Lo;0;AL;<initial> 0636;;;;N;GLYPH FOR INITIAL ARABIC DAD;;;;
+FEC0;ARABIC LETTER DAD MEDIAL FORM;Lo;0;AL;<medial> 0636;;;;N;GLYPH FOR MEDIAL ARABIC DAD;;;;
+FEC1;ARABIC LETTER TAH ISOLATED FORM;Lo;0;AL;<isolated> 0637;;;;N;GLYPH FOR ISOLATE ARABIC TAH;;;;
+FEC2;ARABIC LETTER TAH FINAL FORM;Lo;0;AL;<final> 0637;;;;N;GLYPH FOR FINAL ARABIC TAH;;;;
+FEC3;ARABIC LETTER TAH INITIAL FORM;Lo;0;AL;<initial> 0637;;;;N;GLYPH FOR INITIAL ARABIC TAH;;;;
+FEC4;ARABIC LETTER TAH MEDIAL FORM;Lo;0;AL;<medial> 0637;;;;N;GLYPH FOR MEDIAL ARABIC TAH;;;;
+FEC5;ARABIC LETTER ZAH ISOLATED FORM;Lo;0;AL;<isolated> 0638;;;;N;GLYPH FOR ISOLATE ARABIC DHAH;;;;
+FEC6;ARABIC LETTER ZAH FINAL FORM;Lo;0;AL;<final> 0638;;;;N;GLYPH FOR FINAL ARABIC DHAH;;;;
+FEC7;ARABIC LETTER ZAH INITIAL FORM;Lo;0;AL;<initial> 0638;;;;N;GLYPH FOR INITIAL ARABIC DHAH;;;;
+FEC8;ARABIC LETTER ZAH MEDIAL FORM;Lo;0;AL;<medial> 0638;;;;N;GLYPH FOR MEDIAL ARABIC DHAH;;;;
+FEC9;ARABIC LETTER AIN ISOLATED FORM;Lo;0;AL;<isolated> 0639;;;;N;GLYPH FOR ISOLATE ARABIC AIN;;;;
+FECA;ARABIC LETTER AIN FINAL FORM;Lo;0;AL;<final> 0639;;;;N;GLYPH FOR FINAL ARABIC AIN;;;;
+FECB;ARABIC LETTER AIN INITIAL FORM;Lo;0;AL;<initial> 0639;;;;N;GLYPH FOR INITIAL ARABIC AIN;;;;
+FECC;ARABIC LETTER AIN MEDIAL FORM;Lo;0;AL;<medial> 0639;;;;N;GLYPH FOR MEDIAL ARABIC AIN;;;;
+FECD;ARABIC LETTER GHAIN ISOLATED FORM;Lo;0;AL;<isolated> 063A;;;;N;GLYPH FOR ISOLATE ARABIC GHAIN;;;;
+FECE;ARABIC LETTER GHAIN FINAL FORM;Lo;0;AL;<final> 063A;;;;N;GLYPH FOR FINAL ARABIC GHAIN;;;;
+FECF;ARABIC LETTER GHAIN INITIAL FORM;Lo;0;AL;<initial> 063A;;;;N;GLYPH FOR INITIAL ARABIC GHAIN;;;;
+FED0;ARABIC LETTER GHAIN MEDIAL FORM;Lo;0;AL;<medial> 063A;;;;N;GLYPH FOR MEDIAL ARABIC GHAIN;;;;
+FED1;ARABIC LETTER FEH ISOLATED FORM;Lo;0;AL;<isolated> 0641;;;;N;GLYPH FOR ISOLATE ARABIC FA;;;;
+FED2;ARABIC LETTER FEH FINAL FORM;Lo;0;AL;<final> 0641;;;;N;GLYPH FOR FINAL ARABIC FA;;;;
+FED3;ARABIC LETTER FEH INITIAL FORM;Lo;0;AL;<initial> 0641;;;;N;GLYPH FOR INITIAL ARABIC FA;;;;
+FED4;ARABIC LETTER FEH MEDIAL FORM;Lo;0;AL;<medial> 0641;;;;N;GLYPH FOR MEDIAL ARABIC FA;;;;
+FED5;ARABIC LETTER QAF ISOLATED FORM;Lo;0;AL;<isolated> 0642;;;;N;GLYPH FOR ISOLATE ARABIC QAF;;;;
+FED6;ARABIC LETTER QAF FINAL FORM;Lo;0;AL;<final> 0642;;;;N;GLYPH FOR FINAL ARABIC QAF;;;;
+FED7;ARABIC LETTER QAF INITIAL FORM;Lo;0;AL;<initial> 0642;;;;N;GLYPH FOR INITIAL ARABIC QAF;;;;
+FED8;ARABIC LETTER QAF MEDIAL FORM;Lo;0;AL;<medial> 0642;;;;N;GLYPH FOR MEDIAL ARABIC QAF;;;;
+FED9;ARABIC LETTER KAF ISOLATED FORM;Lo;0;AL;<isolated> 0643;;;;N;GLYPH FOR ISOLATE ARABIC CAF;;;;
+FEDA;ARABIC LETTER KAF FINAL FORM;Lo;0;AL;<final> 0643;;;;N;GLYPH FOR FINAL ARABIC CAF;;;;
+FEDB;ARABIC LETTER KAF INITIAL FORM;Lo;0;AL;<initial> 0643;;;;N;GLYPH FOR INITIAL ARABIC CAF;;;;
+FEDC;ARABIC LETTER KAF MEDIAL FORM;Lo;0;AL;<medial> 0643;;;;N;GLYPH FOR MEDIAL ARABIC CAF;;;;
+FEDD;ARABIC LETTER LAM ISOLATED FORM;Lo;0;AL;<isolated> 0644;;;;N;GLYPH FOR ISOLATE ARABIC LAM;;;;
+FEDE;ARABIC LETTER LAM FINAL FORM;Lo;0;AL;<final> 0644;;;;N;GLYPH FOR FINAL ARABIC LAM;;;;
+FEDF;ARABIC LETTER LAM INITIAL FORM;Lo;0;AL;<initial> 0644;;;;N;GLYPH FOR INITIAL ARABIC LAM;;;;
+FEE0;ARABIC LETTER LAM MEDIAL FORM;Lo;0;AL;<medial> 0644;;;;N;GLYPH FOR MEDIAL ARABIC LAM;;;;
+FEE1;ARABIC LETTER MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0645;;;;N;GLYPH FOR ISOLATE ARABIC MEEM;;;;
+FEE2;ARABIC LETTER MEEM FINAL FORM;Lo;0;AL;<final> 0645;;;;N;GLYPH FOR FINAL ARABIC MEEM;;;;
+FEE3;ARABIC LETTER MEEM INITIAL FORM;Lo;0;AL;<initial> 0645;;;;N;GLYPH FOR INITIAL ARABIC MEEM;;;;
+FEE4;ARABIC LETTER MEEM MEDIAL FORM;Lo;0;AL;<medial> 0645;;;;N;GLYPH FOR MEDIAL ARABIC MEEM;;;;
+FEE5;ARABIC LETTER NOON ISOLATED FORM;Lo;0;AL;<isolated> 0646;;;;N;GLYPH FOR ISOLATE ARABIC NOON;;;;
+FEE6;ARABIC LETTER NOON FINAL FORM;Lo;0;AL;<final> 0646;;;;N;GLYPH FOR FINAL ARABIC NOON;;;;
+FEE7;ARABIC LETTER NOON INITIAL FORM;Lo;0;AL;<initial> 0646;;;;N;GLYPH FOR INITIAL ARABIC NOON;;;;
+FEE8;ARABIC LETTER NOON MEDIAL FORM;Lo;0;AL;<medial> 0646;;;;N;GLYPH FOR MEDIAL ARABIC NOON;;;;
+FEE9;ARABIC LETTER HEH ISOLATED FORM;Lo;0;AL;<isolated> 0647;;;;N;GLYPH FOR ISOLATE ARABIC HA;;;;
+FEEA;ARABIC LETTER HEH FINAL FORM;Lo;0;AL;<final> 0647;;;;N;GLYPH FOR FINAL ARABIC HA;;;;
+FEEB;ARABIC LETTER HEH INITIAL FORM;Lo;0;AL;<initial> 0647;;;;N;GLYPH FOR INITIAL ARABIC HA;;;;
+FEEC;ARABIC LETTER HEH MEDIAL FORM;Lo;0;AL;<medial> 0647;;;;N;GLYPH FOR MEDIAL ARABIC HA;;;;
+FEED;ARABIC LETTER WAW ISOLATED FORM;Lo;0;AL;<isolated> 0648;;;;N;GLYPH FOR ISOLATE ARABIC WAW;;;;
+FEEE;ARABIC LETTER WAW FINAL FORM;Lo;0;AL;<final> 0648;;;;N;GLYPH FOR FINAL ARABIC WAW;;;;
+FEEF;ARABIC LETTER ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0649;;;;N;GLYPH FOR ISOLATE ARABIC ALEF MAQSURAH;;;;
+FEF0;ARABIC LETTER ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0649;;;;N;GLYPH FOR FINAL ARABIC ALEF MAQSURAH;;;;
+FEF1;ARABIC LETTER YEH ISOLATED FORM;Lo;0;AL;<isolated> 064A;;;;N;GLYPH FOR ISOLATE ARABIC YA;;;;
+FEF2;ARABIC LETTER YEH FINAL FORM;Lo;0;AL;<final> 064A;;;;N;GLYPH FOR FINAL ARABIC YA;;;;
+FEF3;ARABIC LETTER YEH INITIAL FORM;Lo;0;AL;<initial> 064A;;;;N;GLYPH FOR INITIAL ARABIC YA;;;;
+FEF4;ARABIC LETTER YEH MEDIAL FORM;Lo;0;AL;<medial> 064A;;;;N;GLYPH FOR MEDIAL ARABIC YA;;;;
+FEF5;ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 0644 0622;;;;N;GLYPH FOR ISOLATE ARABIC MADDAH ON LIGATURE LAM ALEF;;;;
+FEF6;ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM;Lo;0;AL;<final> 0644 0622;;;;N;GLYPH FOR FINAL ARABIC MADDAH ON LIGATURE LAM ALEF;;;;
+FEF7;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 0644 0623;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH ON LIGATURE LAM ALEF;;;;
+FEF8;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM;Lo;0;AL;<final> 0644 0623;;;;N;GLYPH FOR FINAL ARABIC HAMZAH ON LIGATURE LAM ALEF;;;;
+FEF9;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM;Lo;0;AL;<isolated> 0644 0625;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH UNDER LIGATURE LAM ALEF;;;;
+FEFA;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM;Lo;0;AL;<final> 0644 0625;;;;N;GLYPH FOR FINAL ARABIC HAMZAH UNDER LIGATURE LAM ALEF;;;;
+FEFB;ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0644 0627;;;;N;GLYPH FOR ISOLATE ARABIC LIGATURE LAM ALEF;;;;
+FEFC;ARABIC LIGATURE LAM WITH ALEF FINAL FORM;Lo;0;AL;<final> 0644 0627;;;;N;GLYPH FOR FINAL ARABIC LIGATURE LAM ALEF;;;;
+FEFF;ZERO WIDTH NO-BREAK SPACE;Cf;0;BN;;;;;N;BYTE ORDER MARK;;;;
+FF01;FULLWIDTH EXCLAMATION MARK;Po;0;ON;<wide> 0021;;;;N;;;;;
+FF02;FULLWIDTH QUOTATION MARK;Po;0;ON;<wide> 0022;;;;N;;;;;
+FF03;FULLWIDTH NUMBER SIGN;Po;0;ET;<wide> 0023;;;;N;;;;;
+FF04;FULLWIDTH DOLLAR SIGN;Sc;0;ET;<wide> 0024;;;;N;;;;;
+FF05;FULLWIDTH PERCENT SIGN;Po;0;ET;<wide> 0025;;;;N;;;;;
+FF06;FULLWIDTH AMPERSAND;Po;0;ON;<wide> 0026;;;;N;;;;;
+FF07;FULLWIDTH APOSTROPHE;Po;0;ON;<wide> 0027;;;;N;;;;;
+FF08;FULLWIDTH LEFT PARENTHESIS;Ps;0;ON;<wide> 0028;;;;N;FULLWIDTH OPENING PARENTHESIS;;;;
+FF09;FULLWIDTH RIGHT PARENTHESIS;Pe;0;ON;<wide> 0029;;;;N;FULLWIDTH CLOSING PARENTHESIS;;;;
+FF0A;FULLWIDTH ASTERISK;Po;0;ON;<wide> 002A;;;;N;;;;;
+FF0B;FULLWIDTH PLUS SIGN;Sm;0;ET;<wide> 002B;;;;N;;;;;
+FF0C;FULLWIDTH COMMA;Po;0;CS;<wide> 002C;;;;N;;;;;
+FF0D;FULLWIDTH HYPHEN-MINUS;Pd;0;ET;<wide> 002D;;;;N;;;;;
+FF0E;FULLWIDTH FULL STOP;Po;0;CS;<wide> 002E;;;;N;FULLWIDTH PERIOD;;;;
+FF0F;FULLWIDTH SOLIDUS;Po;0;ES;<wide> 002F;;;;N;FULLWIDTH SLASH;;;;
+FF10;FULLWIDTH DIGIT ZERO;Nd;0;EN;<wide> 0030;0;0;0;N;;;;;
+FF11;FULLWIDTH DIGIT ONE;Nd;0;EN;<wide> 0031;1;1;1;N;;;;;
+FF12;FULLWIDTH DIGIT TWO;Nd;0;EN;<wide> 0032;2;2;2;N;;;;;
+FF13;FULLWIDTH DIGIT THREE;Nd;0;EN;<wide> 0033;3;3;3;N;;;;;
+FF14;FULLWIDTH DIGIT FOUR;Nd;0;EN;<wide> 0034;4;4;4;N;;;;;
+FF15;FULLWIDTH DIGIT FIVE;Nd;0;EN;<wide> 0035;5;5;5;N;;;;;
+FF16;FULLWIDTH DIGIT SIX;Nd;0;EN;<wide> 0036;6;6;6;N;;;;;
+FF17;FULLWIDTH DIGIT SEVEN;Nd;0;EN;<wide> 0037;7;7;7;N;;;;;
+FF18;FULLWIDTH DIGIT EIGHT;Nd;0;EN;<wide> 0038;8;8;8;N;;;;;
+FF19;FULLWIDTH DIGIT NINE;Nd;0;EN;<wide> 0039;9;9;9;N;;;;;
+FF1A;FULLWIDTH COLON;Po;0;CS;<wide> 003A;;;;N;;;;;
+FF1B;FULLWIDTH SEMICOLON;Po;0;ON;<wide> 003B;;;;N;;;;;
+FF1C;FULLWIDTH LESS-THAN SIGN;Sm;0;ON;<wide> 003C;;;;N;;;;;
+FF1D;FULLWIDTH EQUALS SIGN;Sm;0;ON;<wide> 003D;;;;N;;;;;
+FF1E;FULLWIDTH GREATER-THAN SIGN;Sm;0;ON;<wide> 003E;;;;N;;;;;
+FF1F;FULLWIDTH QUESTION MARK;Po;0;ON;<wide> 003F;;;;N;;;;;
+FF20;FULLWIDTH COMMERCIAL AT;Po;0;ON;<wide> 0040;;;;N;;;;;
+FF21;FULLWIDTH LATIN CAPITAL LETTER A;Lu;0;L;<wide> 0041;;;;N;;;;FF41;
+FF22;FULLWIDTH LATIN CAPITAL LETTER B;Lu;0;L;<wide> 0042;;;;N;;;;FF42;
+FF23;FULLWIDTH LATIN CAPITAL LETTER C;Lu;0;L;<wide> 0043;;;;N;;;;FF43;
+FF24;FULLWIDTH LATIN CAPITAL LETTER D;Lu;0;L;<wide> 0044;;;;N;;;;FF44;
+FF25;FULLWIDTH LATIN CAPITAL LETTER E;Lu;0;L;<wide> 0045;;;;N;;;;FF45;
+FF26;FULLWIDTH LATIN CAPITAL LETTER F;Lu;0;L;<wide> 0046;;;;N;;;;FF46;
+FF27;FULLWIDTH LATIN CAPITAL LETTER G;Lu;0;L;<wide> 0047;;;;N;;;;FF47;
+FF28;FULLWIDTH LATIN CAPITAL LETTER H;Lu;0;L;<wide> 0048;;;;N;;;;FF48;
+FF29;FULLWIDTH LATIN CAPITAL LETTER I;Lu;0;L;<wide> 0049;;;;N;;;;FF49;
+FF2A;FULLWIDTH LATIN CAPITAL LETTER J;Lu;0;L;<wide> 004A;;;;N;;;;FF4A;
+FF2B;FULLWIDTH LATIN CAPITAL LETTER K;Lu;0;L;<wide> 004B;;;;N;;;;FF4B;
+FF2C;FULLWIDTH LATIN CAPITAL LETTER L;Lu;0;L;<wide> 004C;;;;N;;;;FF4C;
+FF2D;FULLWIDTH LATIN CAPITAL LETTER M;Lu;0;L;<wide> 004D;;;;N;;;;FF4D;
+FF2E;FULLWIDTH LATIN CAPITAL LETTER N;Lu;0;L;<wide> 004E;;;;N;;;;FF4E;
+FF2F;FULLWIDTH LATIN CAPITAL LETTER O;Lu;0;L;<wide> 004F;;;;N;;;;FF4F;
+FF30;FULLWIDTH LATIN CAPITAL LETTER P;Lu;0;L;<wide> 0050;;;;N;;;;FF50;
+FF31;FULLWIDTH LATIN CAPITAL LETTER Q;Lu;0;L;<wide> 0051;;;;N;;;;FF51;
+FF32;FULLWIDTH LATIN CAPITAL LETTER R;Lu;0;L;<wide> 0052;;;;N;;;;FF52;
+FF33;FULLWIDTH LATIN CAPITAL LETTER S;Lu;0;L;<wide> 0053;;;;N;;;;FF53;
+FF34;FULLWIDTH LATIN CAPITAL LETTER T;Lu;0;L;<wide> 0054;;;;N;;;;FF54;
+FF35;FULLWIDTH LATIN CAPITAL LETTER U;Lu;0;L;<wide> 0055;;;;N;;;;FF55;
+FF36;FULLWIDTH LATIN CAPITAL LETTER V;Lu;0;L;<wide> 0056;;;;N;;;;FF56;
+FF37;FULLWIDTH LATIN CAPITAL LETTER W;Lu;0;L;<wide> 0057;;;;N;;;;FF57;
+FF38;FULLWIDTH LATIN CAPITAL LETTER X;Lu;0;L;<wide> 0058;;;;N;;;;FF58;
+FF39;FULLWIDTH LATIN CAPITAL LETTER Y;Lu;0;L;<wide> 0059;;;;N;;;;FF59;
+FF3A;FULLWIDTH LATIN CAPITAL LETTER Z;Lu;0;L;<wide> 005A;;;;N;;;;FF5A;
+FF3B;FULLWIDTH LEFT SQUARE BRACKET;Ps;0;ON;<wide> 005B;;;;N;FULLWIDTH OPENING SQUARE BRACKET;;;;
+FF3C;FULLWIDTH REVERSE SOLIDUS;Po;0;ON;<wide> 005C;;;;N;FULLWIDTH BACKSLASH;;;;
+FF3D;FULLWIDTH RIGHT SQUARE BRACKET;Pe;0;ON;<wide> 005D;;;;N;FULLWIDTH CLOSING SQUARE BRACKET;;;;
+FF3E;FULLWIDTH CIRCUMFLEX ACCENT;Sk;0;ON;<wide> 005E;;;;N;FULLWIDTH SPACING CIRCUMFLEX;;;;
+FF3F;FULLWIDTH LOW LINE;Pc;0;ON;<wide> 005F;;;;N;FULLWIDTH SPACING UNDERSCORE;;;;
+FF40;FULLWIDTH GRAVE ACCENT;Sk;0;ON;<wide> 0060;;;;N;FULLWIDTH SPACING GRAVE;;;;
+FF41;FULLWIDTH LATIN SMALL LETTER A;Ll;0;L;<wide> 0061;;;;N;;;FF21;;FF21
+FF42;FULLWIDTH LATIN SMALL LETTER B;Ll;0;L;<wide> 0062;;;;N;;;FF22;;FF22
+FF43;FULLWIDTH LATIN SMALL LETTER C;Ll;0;L;<wide> 0063;;;;N;;;FF23;;FF23
+FF44;FULLWIDTH LATIN SMALL LETTER D;Ll;0;L;<wide> 0064;;;;N;;;FF24;;FF24
+FF45;FULLWIDTH LATIN SMALL LETTER E;Ll;0;L;<wide> 0065;;;;N;;;FF25;;FF25
+FF46;FULLWIDTH LATIN SMALL LETTER F;Ll;0;L;<wide> 0066;;;;N;;;FF26;;FF26
+FF47;FULLWIDTH LATIN SMALL LETTER G;Ll;0;L;<wide> 0067;;;;N;;;FF27;;FF27
+FF48;FULLWIDTH LATIN SMALL LETTER H;Ll;0;L;<wide> 0068;;;;N;;;FF28;;FF28
+FF49;FULLWIDTH LATIN SMALL LETTER I;Ll;0;L;<wide> 0069;;;;N;;;FF29;;FF29
+FF4A;FULLWIDTH LATIN SMALL LETTER J;Ll;0;L;<wide> 006A;;;;N;;;FF2A;;FF2A
+FF4B;FULLWIDTH LATIN SMALL LETTER K;Ll;0;L;<wide> 006B;;;;N;;;FF2B;;FF2B
+FF4C;FULLWIDTH LATIN SMALL LETTER L;Ll;0;L;<wide> 006C;;;;N;;;FF2C;;FF2C
+FF4D;FULLWIDTH LATIN SMALL LETTER M;Ll;0;L;<wide> 006D;;;;N;;;FF2D;;FF2D
+FF4E;FULLWIDTH LATIN SMALL LETTER N;Ll;0;L;<wide> 006E;;;;N;;;FF2E;;FF2E
+FF4F;FULLWIDTH LATIN SMALL LETTER O;Ll;0;L;<wide> 006F;;;;N;;;FF2F;;FF2F
+FF50;FULLWIDTH LATIN SMALL LETTER P;Ll;0;L;<wide> 0070;;;;N;;;FF30;;FF30
+FF51;FULLWIDTH LATIN SMALL LETTER Q;Ll;0;L;<wide> 0071;;;;N;;;FF31;;FF31
+FF52;FULLWIDTH LATIN SMALL LETTER R;Ll;0;L;<wide> 0072;;;;N;;;FF32;;FF32
+FF53;FULLWIDTH LATIN SMALL LETTER S;Ll;0;L;<wide> 0073;;;;N;;;FF33;;FF33
+FF54;FULLWIDTH LATIN SMALL LETTER T;Ll;0;L;<wide> 0074;;;;N;;;FF34;;FF34
+FF55;FULLWIDTH LATIN SMALL LETTER U;Ll;0;L;<wide> 0075;;;;N;;;FF35;;FF35
+FF56;FULLWIDTH LATIN SMALL LETTER V;Ll;0;L;<wide> 0076;;;;N;;;FF36;;FF36
+FF57;FULLWIDTH LATIN SMALL LETTER W;Ll;0;L;<wide> 0077;;;;N;;;FF37;;FF37
+FF58;FULLWIDTH LATIN SMALL LETTER X;Ll;0;L;<wide> 0078;;;;N;;;FF38;;FF38
+FF59;FULLWIDTH LATIN SMALL LETTER Y;Ll;0;L;<wide> 0079;;;;N;;;FF39;;FF39
+FF5A;FULLWIDTH LATIN SMALL LETTER Z;Ll;0;L;<wide> 007A;;;;N;;;FF3A;;FF3A
+FF5B;FULLWIDTH LEFT CURLY BRACKET;Ps;0;ON;<wide> 007B;;;;N;FULLWIDTH OPENING CURLY BRACKET;;;;
+FF5C;FULLWIDTH VERTICAL LINE;Sm;0;ON;<wide> 007C;;;;N;FULLWIDTH VERTICAL BAR;;;;
+FF5D;FULLWIDTH RIGHT CURLY BRACKET;Pe;0;ON;<wide> 007D;;;;N;FULLWIDTH CLOSING CURLY BRACKET;;;;
+FF5E;FULLWIDTH TILDE;Sm;0;ON;<wide> 007E;;;;N;FULLWIDTH SPACING TILDE;;;;
+FF61;HALFWIDTH IDEOGRAPHIC FULL STOP;Po;0;ON;<narrow> 3002;;;;N;HALFWIDTH IDEOGRAPHIC PERIOD;;;;
+FF62;HALFWIDTH LEFT CORNER BRACKET;Ps;0;ON;<narrow> 300C;;;;N;HALFWIDTH OPENING CORNER BRACKET;;;;
+FF63;HALFWIDTH RIGHT CORNER BRACKET;Pe;0;ON;<narrow> 300D;;;;N;HALFWIDTH CLOSING CORNER BRACKET;;;;
+FF64;HALFWIDTH IDEOGRAPHIC COMMA;Po;0;ON;<narrow> 3001;;;;N;;;;;
+FF65;HALFWIDTH KATAKANA MIDDLE DOT;Pc;0;ON;<narrow> 30FB;;;;N;;;;;
+FF66;HALFWIDTH KATAKANA LETTER WO;Lo;0;L;<narrow> 30F2;;;;N;;;;;
+FF67;HALFWIDTH KATAKANA LETTER SMALL A;Lo;0;L;<narrow> 30A1;;;;N;;;;;
+FF68;HALFWIDTH KATAKANA LETTER SMALL I;Lo;0;L;<narrow> 30A3;;;;N;;;;;
+FF69;HALFWIDTH KATAKANA LETTER SMALL U;Lo;0;L;<narrow> 30A5;;;;N;;;;;
+FF6A;HALFWIDTH KATAKANA LETTER SMALL E;Lo;0;L;<narrow> 30A7;;;;N;;;;;
+FF6B;HALFWIDTH KATAKANA LETTER SMALL O;Lo;0;L;<narrow> 30A9;;;;N;;;;;
+FF6C;HALFWIDTH KATAKANA LETTER SMALL YA;Lo;0;L;<narrow> 30E3;;;;N;;;;;
+FF6D;HALFWIDTH KATAKANA LETTER SMALL YU;Lo;0;L;<narrow> 30E5;;;;N;;;;;
+FF6E;HALFWIDTH KATAKANA LETTER SMALL YO;Lo;0;L;<narrow> 30E7;;;;N;;;;;
+FF6F;HALFWIDTH KATAKANA LETTER SMALL TU;Lo;0;L;<narrow> 30C3;;;;N;;;;;
+FF70;HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK;Lm;0;L;<narrow> 30FC;;;;N;;;;;
+FF71;HALFWIDTH KATAKANA LETTER A;Lo;0;L;<narrow> 30A2;;;;N;;;;;
+FF72;HALFWIDTH KATAKANA LETTER I;Lo;0;L;<narrow> 30A4;;;;N;;;;;
+FF73;HALFWIDTH KATAKANA LETTER U;Lo;0;L;<narrow> 30A6;;;;N;;;;;
+FF74;HALFWIDTH KATAKANA LETTER E;Lo;0;L;<narrow> 30A8;;;;N;;;;;
+FF75;HALFWIDTH KATAKANA LETTER O;Lo;0;L;<narrow> 30AA;;;;N;;;;;
+FF76;HALFWIDTH KATAKANA LETTER KA;Lo;0;L;<narrow> 30AB;;;;N;;;;;
+FF77;HALFWIDTH KATAKANA LETTER KI;Lo;0;L;<narrow> 30AD;;;;N;;;;;
+FF78;HALFWIDTH KATAKANA LETTER KU;Lo;0;L;<narrow> 30AF;;;;N;;;;;
+FF79;HALFWIDTH KATAKANA LETTER KE;Lo;0;L;<narrow> 30B1;;;;N;;;;;
+FF7A;HALFWIDTH KATAKANA LETTER KO;Lo;0;L;<narrow> 30B3;;;;N;;;;;
+FF7B;HALFWIDTH KATAKANA LETTER SA;Lo;0;L;<narrow> 30B5;;;;N;;;;;
+FF7C;HALFWIDTH KATAKANA LETTER SI;Lo;0;L;<narrow> 30B7;;;;N;;;;;
+FF7D;HALFWIDTH KATAKANA LETTER SU;Lo;0;L;<narrow> 30B9;;;;N;;;;;
+FF7E;HALFWIDTH KATAKANA LETTER SE;Lo;0;L;<narrow> 30BB;;;;N;;;;;
+FF7F;HALFWIDTH KATAKANA LETTER SO;Lo;0;L;<narrow> 30BD;;;;N;;;;;
+FF80;HALFWIDTH KATAKANA LETTER TA;Lo;0;L;<narrow> 30BF;;;;N;;;;;
+FF81;HALFWIDTH KATAKANA LETTER TI;Lo;0;L;<narrow> 30C1;;;;N;;;;;
+FF82;HALFWIDTH KATAKANA LETTER TU;Lo;0;L;<narrow> 30C4;;;;N;;;;;
+FF83;HALFWIDTH KATAKANA LETTER TE;Lo;0;L;<narrow> 30C6;;;;N;;;;;
+FF84;HALFWIDTH KATAKANA LETTER TO;Lo;0;L;<narrow> 30C8;;;;N;;;;;
+FF85;HALFWIDTH KATAKANA LETTER NA;Lo;0;L;<narrow> 30CA;;;;N;;;;;
+FF86;HALFWIDTH KATAKANA LETTER NI;Lo;0;L;<narrow> 30CB;;;;N;;;;;
+FF87;HALFWIDTH KATAKANA LETTER NU;Lo;0;L;<narrow> 30CC;;;;N;;;;;
+FF88;HALFWIDTH KATAKANA LETTER NE;Lo;0;L;<narrow> 30CD;;;;N;;;;;
+FF89;HALFWIDTH KATAKANA LETTER NO;Lo;0;L;<narrow> 30CE;;;;N;;;;;
+FF8A;HALFWIDTH KATAKANA LETTER HA;Lo;0;L;<narrow> 30CF;;;;N;;;;;
+FF8B;HALFWIDTH KATAKANA LETTER HI;Lo;0;L;<narrow> 30D2;;;;N;;;;;
+FF8C;HALFWIDTH KATAKANA LETTER HU;Lo;0;L;<narrow> 30D5;;;;N;;;;;
+FF8D;HALFWIDTH KATAKANA LETTER HE;Lo;0;L;<narrow> 30D8;;;;N;;;;;
+FF8E;HALFWIDTH KATAKANA LETTER HO;Lo;0;L;<narrow> 30DB;;;;N;;;;;
+FF8F;HALFWIDTH KATAKANA LETTER MA;Lo;0;L;<narrow> 30DE;;;;N;;;;;
+FF90;HALFWIDTH KATAKANA LETTER MI;Lo;0;L;<narrow> 30DF;;;;N;;;;;
+FF91;HALFWIDTH KATAKANA LETTER MU;Lo;0;L;<narrow> 30E0;;;;N;;;;;
+FF92;HALFWIDTH KATAKANA LETTER ME;Lo;0;L;<narrow> 30E1;;;;N;;;;;
+FF93;HALFWIDTH KATAKANA LETTER MO;Lo;0;L;<narrow> 30E2;;;;N;;;;;
+FF94;HALFWIDTH KATAKANA LETTER YA;Lo;0;L;<narrow> 30E4;;;;N;;;;;
+FF95;HALFWIDTH KATAKANA LETTER YU;Lo;0;L;<narrow> 30E6;;;;N;;;;;
+FF96;HALFWIDTH KATAKANA LETTER YO;Lo;0;L;<narrow> 30E8;;;;N;;;;;
+FF97;HALFWIDTH KATAKANA LETTER RA;Lo;0;L;<narrow> 30E9;;;;N;;;;;
+FF98;HALFWIDTH KATAKANA LETTER RI;Lo;0;L;<narrow> 30EA;;;;N;;;;;
+FF99;HALFWIDTH KATAKANA LETTER RU;Lo;0;L;<narrow> 30EB;;;;N;;;;;
+FF9A;HALFWIDTH KATAKANA LETTER RE;Lo;0;L;<narrow> 30EC;;;;N;;;;;
+FF9B;HALFWIDTH KATAKANA LETTER RO;Lo;0;L;<narrow> 30ED;;;;N;;;;;
+FF9C;HALFWIDTH KATAKANA LETTER WA;Lo;0;L;<narrow> 30EF;;;;N;;;;;
+FF9D;HALFWIDTH KATAKANA LETTER N;Lo;0;L;<narrow> 30F3;;;;N;;;;;
+FF9E;HALFWIDTH KATAKANA VOICED SOUND MARK;Lm;0;L;<narrow> 3099;;;;N;;halfwidth katakana-hiragana voiced sound mark;;;
+FF9F;HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK;Lm;0;L;<narrow> 309A;;;;N;;halfwidth katakana-hiragana semi-voiced sound mark;;;
+FFA0;HALFWIDTH HANGUL FILLER;Lo;0;L;<narrow> 3164;;;;N;HALFWIDTH HANGUL CAE OM;;;;
+FFA1;HALFWIDTH HANGUL LETTER KIYEOK;Lo;0;L;<narrow> 3131;;;;N;HALFWIDTH HANGUL LETTER GIYEOG;;;;
+FFA2;HALFWIDTH HANGUL LETTER SSANGKIYEOK;Lo;0;L;<narrow> 3132;;;;N;HALFWIDTH HANGUL LETTER SSANG GIYEOG;;;;
+FFA3;HALFWIDTH HANGUL LETTER KIYEOK-SIOS;Lo;0;L;<narrow> 3133;;;;N;HALFWIDTH HANGUL LETTER GIYEOG SIOS;;;;
+FFA4;HALFWIDTH HANGUL LETTER NIEUN;Lo;0;L;<narrow> 3134;;;;N;;;;;
+FFA5;HALFWIDTH HANGUL LETTER NIEUN-CIEUC;Lo;0;L;<narrow> 3135;;;;N;HALFWIDTH HANGUL LETTER NIEUN JIEUJ;;;;
+FFA6;HALFWIDTH HANGUL LETTER NIEUN-HIEUH;Lo;0;L;<narrow> 3136;;;;N;HALFWIDTH HANGUL LETTER NIEUN HIEUH;;;;
+FFA7;HALFWIDTH HANGUL LETTER TIKEUT;Lo;0;L;<narrow> 3137;;;;N;HALFWIDTH HANGUL LETTER DIGEUD;;;;
+FFA8;HALFWIDTH HANGUL LETTER SSANGTIKEUT;Lo;0;L;<narrow> 3138;;;;N;HALFWIDTH HANGUL LETTER SSANG DIGEUD;;;;
+FFA9;HALFWIDTH HANGUL LETTER RIEUL;Lo;0;L;<narrow> 3139;;;;N;HALFWIDTH HANGUL LETTER LIEUL;;;;
+FFAA;HALFWIDTH HANGUL LETTER RIEUL-KIYEOK;Lo;0;L;<narrow> 313A;;;;N;HALFWIDTH HANGUL LETTER LIEUL GIYEOG;;;;
+FFAB;HALFWIDTH HANGUL LETTER RIEUL-MIEUM;Lo;0;L;<narrow> 313B;;;;N;HALFWIDTH HANGUL LETTER LIEUL MIEUM;;;;
+FFAC;HALFWIDTH HANGUL LETTER RIEUL-PIEUP;Lo;0;L;<narrow> 313C;;;;N;HALFWIDTH HANGUL LETTER LIEUL BIEUB;;;;
+FFAD;HALFWIDTH HANGUL LETTER RIEUL-SIOS;Lo;0;L;<narrow> 313D;;;;N;HALFWIDTH HANGUL LETTER LIEUL SIOS;;;;
+FFAE;HALFWIDTH HANGUL LETTER RIEUL-THIEUTH;Lo;0;L;<narrow> 313E;;;;N;HALFWIDTH HANGUL LETTER LIEUL TIEUT;;;;
+FFAF;HALFWIDTH HANGUL LETTER RIEUL-PHIEUPH;Lo;0;L;<narrow> 313F;;;;N;HALFWIDTH HANGUL LETTER LIEUL PIEUP;;;;
+FFB0;HALFWIDTH HANGUL LETTER RIEUL-HIEUH;Lo;0;L;<narrow> 3140;;;;N;HALFWIDTH HANGUL LETTER LIEUL HIEUH;;;;
+FFB1;HALFWIDTH HANGUL LETTER MIEUM;Lo;0;L;<narrow> 3141;;;;N;;;;;
+FFB2;HALFWIDTH HANGUL LETTER PIEUP;Lo;0;L;<narrow> 3142;;;;N;HALFWIDTH HANGUL LETTER BIEUB;;;;
+FFB3;HALFWIDTH HANGUL LETTER SSANGPIEUP;Lo;0;L;<narrow> 3143;;;;N;HALFWIDTH HANGUL LETTER SSANG BIEUB;;;;
+FFB4;HALFWIDTH HANGUL LETTER PIEUP-SIOS;Lo;0;L;<narrow> 3144;;;;N;HALFWIDTH HANGUL LETTER BIEUB SIOS;;;;
+FFB5;HALFWIDTH HANGUL LETTER SIOS;Lo;0;L;<narrow> 3145;;;;N;;;;;
+FFB6;HALFWIDTH HANGUL LETTER SSANGSIOS;Lo;0;L;<narrow> 3146;;;;N;HALFWIDTH HANGUL LETTER SSANG SIOS;;;;
+FFB7;HALFWIDTH HANGUL LETTER IEUNG;Lo;0;L;<narrow> 3147;;;;N;;;;;
+FFB8;HALFWIDTH HANGUL LETTER CIEUC;Lo;0;L;<narrow> 3148;;;;N;HALFWIDTH HANGUL LETTER JIEUJ;;;;
+FFB9;HALFWIDTH HANGUL LETTER SSANGCIEUC;Lo;0;L;<narrow> 3149;;;;N;HALFWIDTH HANGUL LETTER SSANG JIEUJ;;;;
+FFBA;HALFWIDTH HANGUL LETTER CHIEUCH;Lo;0;L;<narrow> 314A;;;;N;HALFWIDTH HANGUL LETTER CIEUC;;;;
+FFBB;HALFWIDTH HANGUL LETTER KHIEUKH;Lo;0;L;<narrow> 314B;;;;N;HALFWIDTH HANGUL LETTER KIYEOK;;;;
+FFBC;HALFWIDTH HANGUL LETTER THIEUTH;Lo;0;L;<narrow> 314C;;;;N;HALFWIDTH HANGUL LETTER TIEUT;;;;
+FFBD;HALFWIDTH HANGUL LETTER PHIEUPH;Lo;0;L;<narrow> 314D;;;;N;HALFWIDTH HANGUL LETTER PIEUP;;;;
+FFBE;HALFWIDTH HANGUL LETTER HIEUH;Lo;0;L;<narrow> 314E;;;;N;;;;;
+FFC2;HALFWIDTH HANGUL LETTER A;Lo;0;L;<narrow> 314F;;;;N;;;;;
+FFC3;HALFWIDTH HANGUL LETTER AE;Lo;0;L;<narrow> 3150;;;;N;;;;;
+FFC4;HALFWIDTH HANGUL LETTER YA;Lo;0;L;<narrow> 3151;;;;N;;;;;
+FFC5;HALFWIDTH HANGUL LETTER YAE;Lo;0;L;<narrow> 3152;;;;N;;;;;
+FFC6;HALFWIDTH HANGUL LETTER EO;Lo;0;L;<narrow> 3153;;;;N;;;;;
+FFC7;HALFWIDTH HANGUL LETTER E;Lo;0;L;<narrow> 3154;;;;N;;;;;
+FFCA;HALFWIDTH HANGUL LETTER YEO;Lo;0;L;<narrow> 3155;;;;N;;;;;
+FFCB;HALFWIDTH HANGUL LETTER YE;Lo;0;L;<narrow> 3156;;;;N;;;;;
+FFCC;HALFWIDTH HANGUL LETTER O;Lo;0;L;<narrow> 3157;;;;N;;;;;
+FFCD;HALFWIDTH HANGUL LETTER WA;Lo;0;L;<narrow> 3158;;;;N;;;;;
+FFCE;HALFWIDTH HANGUL LETTER WAE;Lo;0;L;<narrow> 3159;;;;N;;;;;
+FFCF;HALFWIDTH HANGUL LETTER OE;Lo;0;L;<narrow> 315A;;;;N;;;;;
+FFD2;HALFWIDTH HANGUL LETTER YO;Lo;0;L;<narrow> 315B;;;;N;;;;;
+FFD3;HALFWIDTH HANGUL LETTER U;Lo;0;L;<narrow> 315C;;;;N;;;;;
+FFD4;HALFWIDTH HANGUL LETTER WEO;Lo;0;L;<narrow> 315D;;;;N;;;;;
+FFD5;HALFWIDTH HANGUL LETTER WE;Lo;0;L;<narrow> 315E;;;;N;;;;;
+FFD6;HALFWIDTH HANGUL LETTER WI;Lo;0;L;<narrow> 315F;;;;N;;;;;
+FFD7;HALFWIDTH HANGUL LETTER YU;Lo;0;L;<narrow> 3160;;;;N;;;;;
+FFDA;HALFWIDTH HANGUL LETTER EU;Lo;0;L;<narrow> 3161;;;;N;;;;;
+FFDB;HALFWIDTH HANGUL LETTER YI;Lo;0;L;<narrow> 3162;;;;N;;;;;
+FFDC;HALFWIDTH HANGUL LETTER I;Lo;0;L;<narrow> 3163;;;;N;;;;;
+FFE0;FULLWIDTH CENT SIGN;Sc;0;ET;<wide> 00A2;;;;N;;;;;
+FFE1;FULLWIDTH POUND SIGN;Sc;0;ET;<wide> 00A3;;;;N;;;;;
+FFE2;FULLWIDTH NOT SIGN;Sm;0;ON;<wide> 00AC;;;;N;;;;;
+FFE3;FULLWIDTH MACRON;Sk;0;ON;<wide> 00AF;;;;N;FULLWIDTH SPACING MACRON;*;;;
+FFE4;FULLWIDTH BROKEN BAR;So;0;ON;<wide> 00A6;;;;N;FULLWIDTH BROKEN VERTICAL BAR;;;;
+FFE5;FULLWIDTH YEN SIGN;Sc;0;ET;<wide> 00A5;;;;N;;;;;
+FFE6;FULLWIDTH WON SIGN;Sc;0;ET;<wide> 20A9;;;;N;;;;;
+FFE8;HALFWIDTH FORMS LIGHT VERTICAL;So;0;ON;<narrow> 2502;;;;N;;;;;
+FFE9;HALFWIDTH LEFTWARDS ARROW;Sm;0;ON;<narrow> 2190;;;;N;;;;;
+FFEA;HALFWIDTH UPWARDS ARROW;Sm;0;ON;<narrow> 2191;;;;N;;;;;
+FFEB;HALFWIDTH RIGHTWARDS ARROW;Sm;0;ON;<narrow> 2192;;;;N;;;;;
+FFEC;HALFWIDTH DOWNWARDS ARROW;Sm;0;ON;<narrow> 2193;;;;N;;;;;
+FFED;HALFWIDTH BLACK SQUARE;So;0;ON;<narrow> 25A0;;;;N;;;;;
+FFEE;HALFWIDTH WHITE CIRCLE;So;0;ON;<narrow> 25CB;;;;N;;;;;
+FFF9;INTERLINEAR ANNOTATION ANCHOR;Cf;0;BN;;;;;N;;;;;
+FFFA;INTERLINEAR ANNOTATION SEPARATOR;Cf;0;BN;;;;;N;;;;;
+FFFB;INTERLINEAR ANNOTATION TERMINATOR;Cf;0;BN;;;;;N;;;;;
+FFFC;OBJECT REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
+FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/readtype/unicodedata.html	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,1988 @@
+<html>
+
+
+
+<head>
+
+<meta NAME="GENERATOR" CONTENT="Microsoft FrontPage 4.0">
+
+<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
+
+<link REL="stylesheet" HREF="http://www.unicode.org/unicode.css" TYPE="text/css">
+
+<title>UnicodeData File Format</title>
+
+</head>
+
+
+
+<body>
+
+
+
+<h1>UnicodeData File Format<br> 
+Version 3.0.0</h1>
+
+
+
+<table BORDER="1" CELLSPACING="2" CELLPADDING="0" HEIGHT="87" WIDTH="100%">
+
+  <tr>
+
+    <td VALIGN="TOP" width="144">Revision</td>
+
+    <td VALIGN="TOP">3.0.0</td>
+
+  </tr>
+
+  <tr>
+
+    <td VALIGN="TOP" width="144">Authors</td>
+
+    <td VALIGN="TOP">Mark Davis and Ken Whistler</td>
+
+  </tr>
+
+  <tr>
+
+    <td VALIGN="TOP" width="144">Date</td>
+
+    <td VALIGN="TOP">1999-09-12</td>
+
+  </tr>
+
+  <tr>
+
+    <td VALIGN="TOP" width="144">This Version</td>
+
+    <td VALIGN="TOP"><a href="ftp://ftp.unicode.org/Public/3.0-Update/UnicodeData-3.0.0.html">ftp://ftp.unicode.org/Public/3.0-Update/UnicodeData-3.0.0.html</a></td>
+
+  </tr>
+
+  <tr>
+
+    <td VALIGN="TOP" width="144">Previous Version</td>
+
+    <td VALIGN="TOP">n/a</td>
+
+  </tr>
+
+  <tr>
+
+    <td VALIGN="TOP" width="144">Latest Version</td>
+
+    <td VALIGN="TOP"><a href="ftp://ftp.unicode.org/Public/3.0-Update/UnicodeData-3.0.0.html">ftp://ftp.unicode.org/Public/3.0-Update/UnicodeData-3.0.0.html</a></td>
+
+  </tr>
+
+</table>
+
+
+
+<p align="center">Copyright © 1995-1999 Unicode, Inc. All Rights reserved.<br>    
+    
+<i>For more information, including Disclamer and Limitations, see <a HREF="UnicodeCharacterDatabase-3.0.0.html">UnicodeCharacterDatabase-3.0.0.html</a> </i></p>   
+   
+   
+   
+<p>This document describes the format of the UnicodeData.txt file, which is one of the    
+   
+files in the Unicode Character Database. The document is divided into the following    
+   
+sections:    
+   
+   
+   
+<ul>   
+   
+  <li><a HREF="#Field Formats">Field Formats</a> <ul>   
+   
+      <li><a HREF="#General Category">General Category</a> </li>   
+   
+      <li><a HREF="#Bidirectional Category">Bidirectional Category</a> </li>   
+   
+      <li><a HREF="#Character Decomposition">Character Decomposition Mapping</a> </li>  
+  
+      <li><a HREF="#Canonical Combining Classes">Canonical Combining Classes</a> </li>  
+  
+      <li><a HREF="#Decompositions and Normalization">Decompositions and Normalization</a> </li>  
+  
+      <li><a HREF="#Case Mappings">Case Mappings</a> </li>  
+  
+    </ul>  
+  
+  </li>  
+  
+  <li><a HREF="#Property Invariants">Property Invariants</a> </li>  
+  
+  <li><a HREF="#Modification History">Modification History</a> </li>  
+  
+</ul>  
+  
+  
+  
+<p><b>Warning: </b>the information in this file does not completely describe the use and   
+  
+interpretation of Unicode character properties and behavior. It must be used in   
+  
+conjunction with the data in the other files in the Unicode Character Database, and relies   
+  
+on the notation and definitions supplied in <i><a href="http://www.unicode.org/unicode/standard/versions/Unicode3.0.html"> The Unicode 
+Standard</a></i>. All chapter references   
+  
+are to Version 3.0 of the standard.</p>  
+  
+  
+  
+<h2><a NAME="Field Formats"></a>Field Formats</h2>    
+    
+    
+    
+<p>The file consists of lines containing fields terminated by semicolons. Each line     
+    
+represents the data for one encoded character in the Unicode Standard. Every encoded     
+    
+character has a data entry, with the exception of certain special ranges, as detailed     
+    
+below.     
+    
+    
+    
+<ul>    
+    
+  <li>There are six special ranges of characters that are represented only by their start and     
+    
+    end characters, since the properties in the file are uniform, except for code values     
+    
+    (which are all sequential and assigned). </li>    
+    
+  <li>The names of CJK ideograph characters and the names and decompositions of Hangul     
+    
+    syllable characters are algorithmically derivable. (See the Unicode Standard and <a    
+    
+    HREF="http://www.unicode.org/unicode/reports/tr15/">Unicode Technical Report #15</a> for     
+    
+    more information). </li>    
+    
+  <li>Surrogate code values and private use characters have no names. </li>    
+    
+  <li>The Private Use character outside of the BMP (U+F0000..U+FFFFD, U+100000..U+10FFFD) are     
+    
+    not listed. These correspond to surrogate pairs where the first surrogate is in the High     
+    
+    Surrogate Private Use section. </li>    
+    
+</ul>    
+    
+    
+    
+<p>The exact ranges represented by start and end characters are:     
+    
+    
+    
+<ul>    
+    
+  <li>CJK Ideographs Extension A (U+3400 - U+4DB5) </li>    
+    
+  <li>CJK Ideographs (U+4E00 - U+9FA5) </li>    
+    
+  <li>Hangul Syllables (U+AC00 - U+D7A3) </li>    
+    
+  <li>Non-Private Use High Surrogates (U+D800 - U+DB7F) </li>    
+    
+  <li>Private Use High Surrogates (U+DB80 - U+DBFF) </li>    
+    
+  <li>Low Surrogates (U+DC00 - U+DFFF) </li>    
+    
+  <li>The Private Use Area (U+E000 - U+F8FF) </li>    
+    
+</ul>    
+    
+    
+    
+<p>The following table describes the format and meaning of each field in a data entry in     
+    
+the UnicodeData file. Fields which contain normative information are so indicated.</p>    
+    
+    
+    
+<table BORDER="1" CELLSPACING="2" CELLPADDING="2">    
+    
+  <tr>    
+    
+    <th VALIGN="top" ALIGN="LEFT"><p ALIGN="LEFT">Field</th>    
+    
+    <th VALIGN="top" ALIGN="LEFT"><p ALIGN="LEFT">Name</th>    
+    
+    <th VALIGN="top" ALIGN="LEFT"><p ALIGN="LEFT">Status</th>    
+    
+    <th VALIGN="top" ALIGN="LEFT"><p ALIGN="LEFT">Explanation</th>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <th VALIGN="top">0</th>    
+    
+    <td VALIGN="top">Code value</td>    
+    
+    <td VALIGN="top">normative</td>    
+    
+    <td VALIGN="top">Code value in 4-digit hexadecimal format.</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <th VALIGN="top">1</th>    
+    
+    <td VALIGN="top">Character name</td>    
+    
+    <td VALIGN="top">normative</td>    
+    
+    <td VALIGN="top">These names match exactly the names published in Chapter 14 of the     
+    
+    Unicode Standard, Version 3.0.</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <th VALIGN="top">2</th>    
+    
+    <td VALIGN="top"><a HREF="#General Category">General Category</a> </td>    
+    
+    <td VALIGN="top">normative / informative<br>    
+    
+    (see below)</td>    
+    
+    <td VALIGN="top">This is a useful breakdown into various &quot;character types&quot; which     
+    
+    can be used as a default categorization in implementations. See below for a brief     
+    
+    explanation.</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <th VALIGN="top">3</th>    
+    
+    <td VALIGN="top"><a HREF="#Canonical Combining Classes">Canonical Combining Classes</a> </td>    
+    
+    <td VALIGN="top">normative</td>    
+    
+    <td VALIGN="top">The classes used for the Canonical Ordering Algorithm in the Unicode     
+    
+    Standard. These classes are also printed in Chapter 4 of the Unicode Standard.</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <th VALIGN="top">4</th>    
+    
+    <td VALIGN="top"><a HREF="#Bidirectional Category">Bidirectional Category</a> </td>    
+    
+    <td VALIGN="top">normative</td>    
+    
+    <td VALIGN="top">See the list below for an explanation of the abbreviations used in this     
+    
+    field. These are the categories required by the Bidirectional Behavior Algorithm in the     
+    
+    Unicode Standard. These categories are summarized in Chapter 3 of the Unicode Standard.</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <th VALIGN="top">5</th>    
+    
+    <td VALIGN="top"><a HREF="#Character Decomposition">Character Decomposition  
+      Mapping</a></td>   
+   
+    <td VALIGN="top">normative</td>   
+   
+    <td VALIGN="top">In the Unicode Standard, not all of the mappings are full (maximal)    
+   
+    decompositions. Recursive application of look-up for decompositions will, in all cases,    
+   
+    lead to a maximal decomposition. The decomposition mappings match exactly the    
+   
+    decomposition mappings published with the character names in the Unicode Standard.</td>   
+   
+  </tr>   
+   
+  <tr>   
+   
+    <th VALIGN="top">6</th>   
+   
+    <td VALIGN="top">Decimal digit value</td>   
+   
+    <td VALIGN="top">normative</td>   
+   
+    <td VALIGN="top">This is a numeric field. If the character has the decimal digit property,    
+   
+    as specified in Chapter 4 of the Unicode Standard, the value of that digit is represented    
+   
+    with an integer value in this field</td>   
+   
+  </tr>   
+   
+  <tr>   
+   
+    <th VALIGN="top">7</th>   
+   
+    <td VALIGN="top">Digit value</td>   
+   
+    <td VALIGN="top">normative</td>   
+   
+    <td VALIGN="top">This is a numeric field. If the character represents a digit, not    
+   
+    necessarily a decimal digit, the value is here. This covers digits which do not form    
+   
+    decimal radix forms, such as the compatibility superscript digits</td>   
+   
+  </tr>   
+   
+  <tr>   
+   
+    <th VALIGN="top">8</th>   
+   
+    <td VALIGN="top">Numeric value</td>   
+   
+    <td VALIGN="top">normative</td>   
+   
+    <td VALIGN="top">This is a numeric field. If the character has the numeric property, as    
+   
+    specified in Chapter 4 of the Unicode Standard, the value of that character is represented    
+   
+    with an integer or rational number in this field. This includes fractions as, e.g.,    
+   
+    &quot;1/5&quot; for U+2155 VULGAR FRACTION ONE FIFTH Also included are numerical values    
+   
+    for compatibility characters such as circled numbers.</td>   
+   
+  </tr>   
+   
+  <tr>   
+   
+    <th VALIGN="top">8</th>   
+   
+    <td VALIGN="top">Mirrored</td>   
+   
+    <td VALIGN="top">normative</td>   
+   
+    <td VALIGN="top">If the character has been identified as a &quot;mirrored&quot; character    
+   
+    in bidirectional text, this field has the value &quot;Y&quot;; otherwise &quot;N&quot;.    
+   
+    The list of mirrored characters is also printed in Chapter 4 of the Unicode Standard.</td>   
+   
+  </tr>   
+   
+  <tr>   
+   
+    <th VALIGN="top">10</th>   
+   
+    <td VALIGN="top">Unicode 1.0 Name</td>   
+   
+    <td VALIGN="top">informative</td>   
+   
+    <td VALIGN="top">This is the old name as published in Unicode 1.0. This name is only    
+   
+    provided when it is significantly different from the Unicode 3.0 name for the character.</td>   
+   
+  </tr>   
+   
+  <tr>   
+   
+    <th VALIGN="top">11</th>   
+   
+    <td VALIGN="top">10646 comment field</td>   
+   
+    <td VALIGN="top">informative</td>   
+   
+    <td VALIGN="top">This is the ISO 10646 comment field. It is in parantheses in the 10646    
+   
+    names list.</td>   
+   
+  </tr>   
+   
+  <tr>   
+   
+    <th VALIGN="top">12</th>   
+   
+    <td VALIGN="top"><a HREF="#Case Mappings">Uppercase Mapping</a></td>   
+   
+    <td VALIGN="top">informative</td>   
+   
+    <td VALIGN="top">Upper case equivalent mapping. If a character is part of an alphabet with    
+   
+    case distinctions, and has an upper case equivalent, then the upper case equivalent is in    
+   
+    this field. See the explanation below on case distinctions. These mappings are always    
+   
+    one-to-one, not one-to-many or many-to-one. This field is informative.</td>   
+   
+  </tr>   
+   
+  <tr>   
+   
+    <th VALIGN="top">13</th>   
+   
+    <td VALIGN="top"><a HREF="#Case Mappings">Lowercase Mapping</a></td>   
+   
+    <td VALIGN="top">informative</td>   
+   
+    <td VALIGN="top">Similar to Uppercase mapping</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <th VALIGN="top">14</th>    
+    
+    <td VALIGN="top"><a HREF="#Case Mappings">Titlecase Mapping</a></td>   
+   
+    <td VALIGN="top">informative</td>   
+   
+    <td VALIGN="top">Similar to Uppercase mapping</td>    
+    
+  </tr>    
+    
+</table>    
+    
+    
+    
+<h3><a NAME="General Category"></a>General Category</h3>    
+    
+    
+    
+<p>The values in this field are abbreviations for the following. Some of the values are     
+    
+normative, and some are informative. For more information, see the Unicode Standard.</p>    
+    
+    
+    
+<p><b>Note:</b> the standard does not assign information to control characters (except for     
+    
+certain cases in the Bidirectional Algorithm). Implementations will generally also assign     
+    
+categories to certain control characters, notably CR and LF, according to platform     
+    
+conventions.</p>    
+    
+    
+    
+<h4>Normative Categories</h4>    
+    
+    
+    
+<table BORDER="0" CELLSPACING="2" CELLPADDING="0">    
+    
+  <tr>    
+    
+    <th><p ALIGN="LEFT">Abbr.</th>    
+    
+    <th><p ALIGN="LEFT">Description</th>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="CENTER">Lu</td>    
+    
+    <td>Letter, Uppercase</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="CENTER">Ll</td>    
+    
+    <td>Letter, Lowercase</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="CENTER">Lt</td>    
+    
+    <td>Letter, Titlecase</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="CENTER">Mn</td>    
+    
+    <td>Mark, Non-Spacing</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="CENTER">Mc</td>    
+    
+    <td>Mark, Spacing Combining</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="CENTER">Me</td>    
+    
+    <td>Mark, Enclosing</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="CENTER">Nd</td>    
+    
+    <td>Number, Decimal Digit</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="CENTER">Nl</td>    
+    
+    <td>Number, Letter</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="CENTER">No</td>    
+    
+    <td>Number, Other</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="CENTER">Zs</td>    
+    
+    <td>Separator, Space</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="CENTER">Zl</td>    
+    
+    <td>Separator, Line</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="CENTER">Zp</td>    
+    
+    <td>Separator, Paragraph</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="CENTER">Cc</td>    
+    
+    <td>Other, Control</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="CENTER">Cf</td>    
+    
+    <td>Other, Format</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="CENTER">Cs</td>    
+    
+    <td>Other, Surrogate</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="CENTER">Co</td>    
+    
+    <td>Other, Private Use</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="CENTER">Cn</td>    
+    
+    <td>Other, Not Assigned (no characters in the file have this property)</td>    
+    
+  </tr>    
+    
+</table>    
+    
+    
+    
+<h4>Informative Categories</h4>    
+    
+    
+    
+<table BORDER="0" CELLSPACING="2" CELLPADDING="0">    
+    
+  <tr>    
+    
+    <th><p ALIGN="LEFT">Abbr.</th>    
+    
+    <th><p ALIGN="LEFT">Description</th>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="CENTER">Lm</td>    
+    
+    <td>Letter, Modifier</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="CENTER">Lo</td>    
+    
+    <td>Letter, Other</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="CENTER">Pc</td>    
+    
+    <td>Punctuation, Connector</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="CENTER">Pd</td>    
+    
+    <td>Punctuation, Dash</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="CENTER">Ps</td>    
+    
+    <td>Punctuation, Open</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="CENTER">Pe</td>    
+    
+    <td>Punctuation, Close</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="CENTER">Pi</td>    
+    
+    <td>Punctuation, Initial quote (may behave like Ps or Pe depending on usage)</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="CENTER">Pf</td>    
+    
+    <td>Punctuation, Final quote (may behave like Ps or Pe depending on usage)</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="CENTER">Po</td>    
+    
+    <td>Punctuation, Other</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="CENTER">Sm</td>    
+    
+    <td>Symbol, Math</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="CENTER">Sc</td>    
+    
+    <td>Symbol, Currency</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="CENTER">Sk</td>    
+    
+    <td>Symbol, Modifier</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="CENTER">So</td>    
+    
+    <td>Symbol, Other</td>    
+    
+  </tr>    
+    
+</table>    
+    
+    
+    
+<h3><a NAME="Bidirectional Category"></a>Bidirectional Category</h3>    
+    
+    
+    
+<p>Please refer to Chapter 3 for an explanation of the algorithm for Bidirectional     
+    
+Behavior and an explanation of the significance of these categories. An up-to-date version     
+    
+can be found on <a HREF="http://www.unicode.org/unicode/reports/tr9/">Unicode Technical     
+    
+Report #9: The Bidirectional Algorithm</a>. These values are normative.</p>    
+    
+    
+    
+<table BORDER="0" CELLPADDING="2">    
+    
+  <tr>    
+    
+    <th VALIGN="TOP" ALIGN="LEFT"><p ALIGN="LEFT">Type</th>    
+    
+    <th VALIGN="TOP" ALIGN="LEFT"><p ALIGN="LEFT">Description</th>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td VALIGN="TOP"><b>L</b></td>    
+    
+    <td VALIGN="TOP">Left-to-Right</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td VALIGN="TOP"><b>LRE</b></td>    
+    
+    <td VALIGN="TOP">Left-to-Right Embedding</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td VALIGN="TOP"><b>LRO</b></td>    
+    
+    <td VALIGN="TOP">Left-to-Right Override</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td VALIGN="TOP"><b>R</b></td>    
+    
+    <td VALIGN="TOP">Right-to-Left</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td VALIGN="TOP"><b>AL</b></td>    
+    
+    <td VALIGN="TOP">Right-to-Left Arabic</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td VALIGN="TOP"><b>RLE</b></td>    
+    
+    <td VALIGN="TOP">Right-to-Left Embedding</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td VALIGN="TOP"><b>RLO</b></td>    
+    
+    <td VALIGN="TOP">Right-to-Left Override</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td VALIGN="TOP"><b>PDF</b></td>    
+    
+    <td VALIGN="TOP">Pop Directional Format</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td VALIGN="TOP"><b>EN</b></td>    
+    
+    <td VALIGN="TOP">European Number</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td VALIGN="TOP"><b>ES</b></td>    
+    
+    <td VALIGN="TOP">European Number Separator</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td VALIGN="TOP"><b>ET</b></td>    
+    
+    <td VALIGN="TOP">European Number Terminator</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td VALIGN="TOP"><b>AN</b></td>    
+    
+    <td VALIGN="TOP">Arabic Number</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td VALIGN="TOP"><b>CS</b></td>    
+    
+    <td VALIGN="TOP">Common Number Separator</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td VALIGN="TOP"><b>NSM</b></td>    
+    
+    <td VALIGN="TOP">Non-Spacing Mark</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td VALIGN="TOP"><b>BN</b></td>    
+    
+    <td VALIGN="TOP">Boundary Neutral</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td VALIGN="TOP"><b>B</b></td>    
+    
+    <td VALIGN="TOP">Paragraph Separator</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td VALIGN="TOP"><b>S</b></td>    
+    
+    <td VALIGN="TOP">Segment Separator</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td VALIGN="TOP"><b>WS</b></td>    
+    
+    <td VALIGN="TOP">Whitespace</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td VALIGN="TOP"><b>ON</b></td>    
+    
+    <td VALIGN="TOP">Other Neutrals</td>    
+    
+  </tr>    
+    
+</table>    
+    
+    
+    
+<h3><a NAME="Character Decomposition"></a>Character Decomposition Mapping</h3>   
+   
+   
+   
+<p>The decomposition is a normative property of a character. The tags supplied with    
+   
+certain decomposition mappings generally indicate formatting information. Where no such    
+   
+tag is given, the mapping is designated as canonical. Conversely, the presence of a    
+   
+formatting tag also indicates that the mapping is a compatibility mapping and not a    
+   
+canonical mapping. In the absence of other formatting information in a compatibility    
+   
+mapping, the tag is used to distinguish it from canonical mappings.</p>   
+   
+   
+   
+<p>In some instances a canonical mapping or a compatibility mapping may consist of a    
+   
+single character. For a canonical mapping, this indicates that the character is a    
+   
+canonical equivalent of another single character. For a compatibility mapping, this    
+   
+indicates that the character is a compatibility equivalent of another single character.    
+   
+The compatibility formatting tags used are:</p>   
+   
+   
+   
+<table BORDER="0" CELLSPACING="2" CELLPADDING="0">   
+   
+  <tr>   
+   
+    <th>Tag</th>   
+   
+    <th><p ALIGN="LEFT">Description</th>   
+   
+  </tr>   
+   
+  <tr>   
+   
+    <td ALIGN="CENTER">&lt;font&gt;&nbsp;&nbsp;</td>   
+   
+    <td>A font variant (e.g. a blackletter form).</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="CENTER">&lt;noBreak&gt;&nbsp;&nbsp;</td>    
+    
+    <td>A no-break version of a space or hyphen.</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="CENTER">&lt;initial&gt;&nbsp;&nbsp;</td>    
+    
+    <td>An initial presentation form (Arabic).</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="CENTER">&lt;medial&gt;&nbsp;&nbsp;</td>    
+    
+    <td>A medial presentation form (Arabic).</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="CENTER">&lt;final&gt;&nbsp;&nbsp;</td>    
+    
+    <td>A final presentation form (Arabic).</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="CENTER">&lt;isolated&gt;&nbsp;&nbsp;</td>    
+    
+    <td>An isolated presentation form (Arabic).</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="CENTER">&lt;circle&gt;&nbsp;&nbsp;</td>    
+    
+    <td>An encircled form.</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="CENTER">&lt;super&gt;&nbsp;&nbsp;</td>    
+    
+    <td>A superscript form.</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="CENTER">&lt;sub&gt;&nbsp;&nbsp;</td>    
+    
+    <td>A subscript form.</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="CENTER">&lt;vertical&gt;&nbsp;&nbsp;</td>    
+    
+    <td>A vertical layout presentation form.</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="CENTER">&lt;wide&gt;&nbsp;&nbsp;</td>    
+    
+    <td>A wide (or zenkaku) compatibility character.</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="CENTER">&lt;narrow&gt;&nbsp;&nbsp;</td>    
+    
+    <td>A narrow (or hankaku) compatibility character.</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="CENTER">&lt;small&gt;&nbsp;&nbsp;</td>    
+    
+    <td>A small variant form (CNS compatibility).</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="CENTER">&lt;square&gt;&nbsp;&nbsp;</td>    
+    
+    <td>A CJK squared font variant.</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="CENTER">&lt;fraction&gt;&nbsp;&nbsp;</td>    
+    
+    <td>A vulgar fraction form.</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="CENTER">&lt;compat&gt;&nbsp;&nbsp;</td>    
+    
+    <td>Otherwise unspecified compatibility character.</td>    
+    
+  </tr>    
+    
+</table>    
+    
+    
+    
+<p><b>Reminder: </b>There is a difference between decomposition and decomposition mapping.     
+    
+The decomposition mappings are defined in the UnicodeData, while the decomposition (also     
+    
+termed &quot;full decomposition&quot;) is defined in Chapter 3 to use those mappings  
+<i>    
+   
+recursively.</i>    
+   
+   
+   
+<ul>   
+   
+  <li>The canonical decomposition is formed by recursively applying the canonical mappings,    
+   
+    then applying the canonical reordering algorithm. </li>   
+   
+  <li>The compatibility decomposition is formed by recursively applying the canonical <em>and</em>    
+   
+    compatibility mappings, then applying the canonical reordering algorithm. </li>   
+   
+</ul>   
+   
+   
+   
+<h3><a NAME="Canonical Combining Classes"></a>Canonical Combining Classes</h3>    
+    
+    
+    
+<table BORDER="0" CELLSPACING="2" CELLPADDING="0">    
+    
+  <tr>    
+    
+    <th><p ALIGN="LEFT">Value</th>    
+    
+    <th><p ALIGN="LEFT">Description</th>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="RIGHT">0:</td>    
+    
+    <td>Spacing, split, enclosing, reordrant, and Tibetan subjoined</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="RIGHT">1:</td>    
+    
+    <td>Overlays and interior</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="RIGHT">7:</td>    
+    
+    <td>Nuktas</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="RIGHT">8:</td>    
+    
+    <td>Hiragana/Katakana voicing marks</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="RIGHT">9:</td>    
+    
+    <td>Viramas</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="RIGHT">10:</td>    
+    
+    <td>Start of fixed position classes</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="RIGHT">199:</td>    
+    
+    <td>End of fixed position classes</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="RIGHT">200:</td>    
+    
+    <td>Below left attached</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="RIGHT">202:</td>    
+    
+    <td>Below attached</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="RIGHT">204:</td>    
+    
+    <td>Below right attached</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="RIGHT">208:</td>    
+    
+    <td>Left attached (reordrant around single base character)</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="RIGHT">210:</td>    
+    
+    <td>Right attached</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="RIGHT">212:</td>    
+    
+    <td>Above left attached</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="RIGHT">214:</td>    
+    
+    <td>Above attached</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="RIGHT">216:</td>    
+    
+    <td>Above right attached</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="RIGHT">218:</td>    
+    
+    <td>Below left</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="RIGHT">220:</td>    
+    
+    <td>Below</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="RIGHT">222:</td>    
+    
+    <td>Below right</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="RIGHT">224:</td>    
+    
+    <td>Left (reordrant around single base character)</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="RIGHT">226:</td>    
+    
+    <td>Right</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="RIGHT">228:</td>    
+    
+    <td>Above left</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="RIGHT">230:</td>    
+    
+    <td>Above</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="RIGHT">232:</td>    
+    
+    <td>Above right</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="RIGHT">233:</td>    
+    
+    <td>Double below</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="RIGHT">234:</td>    
+    
+    <td>Double above</td>    
+    
+  </tr>    
+    
+  <tr>    
+    
+    <td ALIGN="RIGHT">240:</td>    
+    
+    <td>Below (iota subscript)</td>    
+    
+  </tr>    
+    
+</table>    
+    
+    
+    
+<p><strong>Note: </strong>some of the combining classes in this list do not currently have     
+    
+members but are specified here for completeness.</p>    
+    
+    
+    
+<h3><a NAME="Decompositions and Normalization"></a>Decompositions and Normalization</h3>    
+    
+    
+    
+<p>Decomposition is specified in Chapter 3. <a href="http://www.unicode.org/unicode/reports/tr15/"><i>Unicode Technical Report #15:     
+    
+Normalization Forms</i></a> specifies the interaction between decomposition and normalization. The     
+    
+most up-to-date version is found on <a HREF="http://www.unicode.org/unicode/reports/tr15/">http://www.unicode.org/unicode/reports/tr15/</a>.     
+    
+That report specifies how the decompositions defined in UnicodeData.txt are used to derive     
+    
+normalized forms of Unicode text.</p>    
+    
+    
+    
+<p>Note that as of the 2.1.9 update of the Unicode Character Database, the decompositions     
+    
+in the UnicodeData.txt file can be used to recursively derive the full decomposition in     
+    
+canonical order, without the need to separately apply canonical reordering. However,     
+    
+canonical reordering of combining character sequences must still be applied in     
+    
+decomposition when normalizing source text which contains any combining marks.</p>    
+    
+    
+    
+<h3><a NAME="Case Mappings"></a>Case Mappings</h3>    
+    
+    
+    
+<p>The case mapping is an informative, default mapping. Case itself, on the other hand,     
+    
+has normative status. Thus, for example, 0041 LATIN CAPITAL LETTER A is normatively     
+    
+uppercase, but its lowercase mapping the 0061 LATIN SMALL LETTER A is informative. The     
+    
+reason for this is that case can be considered to be an inherent property of a particular     
+    
+character (and is usually, but not always, derivable from the presence of the terms     
+    
+&quot;CAPITAL&quot; or &quot;SMALL&quot; in the character name), but case mappings between     
+    
+characters are occasionally influenced by local conventions. For example, certain     
+    
+languages, such as Turkish, German, French, or Greek may have small deviations from the     
+    
+default mappings listed in UnicodeData.</p>    
+    
+    
+    
+<p>In addition to uppercase and lowercase, because of the inclusion of certain composite     
+    
+characters for compatibility, such as 01F1 LATIN CAPITAL LETTER DZ, there is a third case,     
+    
+called <i>titlecase</i>, which is used where the first letter of a word is to be     
+    
+capitalized (e.g. UPPERCASE, Titlecase, lowercase). An example of such a titlecase letter     
+    
+is 01F2 LATIN CAPITAL LETTER D WITH SMALL LETTER Z.</p>    
+    
+    
+    
+<p>The uppercase, titlecase and lowercase fields are only included for characters that     
+    
+have a single corresponding character of that type. Composite characters (such as     
+    
+&quot;339D SQUARE CM&quot;) that do not have a single corresponding character of that type     
+    
+can be cased by decomposition.</p>    
+    
+    
+    
+<p>For compatibility with existing parsers, UnicodeData only contains case mappings for     
+    
+characters where they are one-to-one mappings; it also omits information about     
+    
+context-sensitive case mappings. Information about these special cases can be found in a     
+    
+separate data file, SpecialCasing.txt,     
+    
+which has been added starting with the 2.1.8 update to the Unicode data files.     
+    
+SpecialCasing.txt contains additional informative case mappings that are either not     
+    
+one-to-one or which are context-sensitive.</p>    
+    
+    
+    
+<h2><a NAME="Property Invariants"></a>Property Invariants</h2>    
+    
+    
+    
+<p>Values in UnicodeData.txt are subject to correction as errors are found; however, some     
+    
+characteristics of the categories themselves can be considered invariants. Applications     
+    
+may wish to take these invariants into account when choosing how to implement character     
+    
+properties. The following is a partial list of known invariants for the Unicode Character     
+    
+Database.</p>    
+    
+    
+    
+<h4>Database Fields</h4>    
+    
+    
+    
+<ul>    
+    
+  <li>The number of fields in UnicodeData.txt is fixed. </li>    
+    
+  <li>The order of the fields is also fixed. <ul>    
+    
+      <li>Any additional information about character properties to be added in the future will     
+    
+        appear in separate data tables, rather than being added on to the existing table or by     
+    
+        subdivision or reinterpretation of existing fields. </li>    
+    
+    </ul>    
+    
+  </li>    
+    
+</ul>    
+    
+    
+    
+<h4>General Category</h4>    
+    
+    
+    
+<ul>    
+    
+  <li>There will never be more than 32 General Category values. <ul>    
+    
+      <li>It is very unlikely that the Unicode Technical Committee will subdivide the General     
+    
+        Category partition any further, since that can cause implementations to misbehave. Because     
+    
+        the General Category is limited to 32 values, 5 bits can be used to represent the     
+    
+        information, and a 32-bit integer can be used as a bitmask to represent arbitrary sets of     
+    
+        categories. </li>    
+    
+    </ul>    
+    
+  </li>    
+    
+</ul>    
+    
+    
+    
+<h4>Combining Classes</h4>    
+    
+    
+    
+<ul>    
+    
+  <li>Combining classes are limited to the values 0 to 255. <ul>    
+    
+      <li>In practice, there are far fewer than 256 values used. Implementations may take     
+    
+        advantage of this fact for compression, since only the ordering of the non-zero values     
+    
+        matters for the Canonical Reordering Algorithm. It is possible for up to 256 values to be     
+    
+        used in the future; however, UTC decisions in the future may restrict the number of values     
+    
+        to 128, since this has implementation advantages. [Signed bytes can be used without     
+    
+        widening to ints in Java, for example.] </li>    
+    
+    </ul>    
+    
+  </li>    
+    
+  <li>All characters other than those of General Category M* have the combining class 0. <ul>    
+    
+      <li>Currently, all characters other than those of General Category Mn have the value 0.     
+    
+        However, some characters of General Category Me or Mc may be given non-zero values in the     
+    
+        future. </li>    
+    
+      <li>The precise values above the value 0 are not invariant--only the relative ordering is     
+    
+        considered normative. For example, it is not guaranteed in future versions that the class     
+    
+        of U+05B4 will be precisely 14. </li>    
+    
+    </ul>    
+    
+  </li>    
+    
+</ul>    
+    
+    
+    
+<h4>Case</h4>    
+    
+    
+    
+<ul>    
+    
+  <li>Characters of type Lu, Lt, or Ll are called <i>cased</i>. All characters with an Upper,     
+    
+    Lower, or Titlecase mapping are cased characters. <ul>    
+    
+      <li>However, characters with the General Categories of Lu, Ll, or Lt may not always have     
+    
+        case mappings, and case mappings may vary by locale. (See     
+    
+        ftp://ftp.unicode.org/Public/UNIDATA/SpecialCasing.txt). </li>    
+    
+    </ul>    
+    
+  </li>    
+    
+</ul>    
+    
+    
+    
+<h4>Canonical Decomposition</h4>    
+    
+    
+    
+<ul>    
+    
+  <li>Canonical mappings are always in canonical order. </li>    
+    
+  <li>Canonical mappings have only the first of a pair possibly further decomposing. </li>    
+    
+  <li>Canonical decompositions are &quot;transparent&quot; to other character data: <ul>    
+    
+      <li><tt>BIDI(a) = BIDI(principal(canonicalDecomposition(a))</tt> </li>    
+    
+      <li><tt>Category(a) = Category(principal(canonicalDecomposition(a))</tt> </li>    
+    
+      <li><tt>CombiningClass(a) = CombiningClass(principal(canonicalDecomposition(a))</tt><br>    
+    
+        where principal(a) is the first character not of type Mn, or the first character if all     
+    
+        characters are of type Mn. </li>    
+    
+    </ul>    
+    
+  </li>    
+    
+  <li>However, because there are sometimes missing case pairs, and because of some legacy     
+    
+    characters, it is only generally true that: <ul>    
+    
+      <li><tt>upper(canonicalDecomposition(a)) = canonicalDecomposition(upper(a))</tt> </li>    
+    
+      <li><tt>lower(canonicalDecomposition(a)) = canonicalDecomposition(lower(a))</tt> </li>    
+    
+      <li><tt>title(canonicalDecomposition(a)) = canonicalDecomposition(title(a))</tt> </li>    
+    
+    </ul>    
+    
+  </li>    
+    
+</ul>    
+    
+    
+    
+<h2><a NAME="Modification History"></a>Modification History</h2>    
+    
+    
+    
+<p>This section provides a summary of the changes between update versions of the Unicode     
+    
+Standard.</p>    
+    
+    
+    
+<h3><a href="http://www.unicode.org/unicode/standard/versions/enumeratedversions.html#Unicode 3.0.0"> Unicode 3.0.0</a></h3>    
+    
+    
+    
+<p>Modifications made for Version 3.0.0 of UnicodeData.txt include many new characters and     
+    
+a number of property changes. These are summarized in Appendex D of <em>The Unicode     
+    
+Standard, Version 3.0.</em></p>    
+    
+    
+    
+<h3><a HREF="http://www.unicode.org/unicode/standard/versions/enumeratedversions.html#Unicode 2.1.9">Unicode 2.1.9</a> </h3>    
+    
+    
+    
+<p>Modifications made for Version 2.1.9 of UnicodeData.txt include:     
+    
+    
+    
+<ul>    
+    
+  <li>Corrected combining class for U+05AE HEBREW ACCENT ZINOR. </li>    
+    
+  <li>Corrected combining class for U+20E1 COMBINING LEFT RIGHT ARROW ABOVE </li>    
+    
+  <li>Corrected combining class for U+0F35 and U+0F37 to 220. </li>    
+    
+  <li>Corrected combining class for U+0F71 to 129. </li>    
+    
+  <li>Added a decomposition for U+0F0C TIBETAN MARK DELIMITER TSHEG BSTAR. </li>    
+    
+  <li>Added&nbsp; decompositions for several Greek symbol letters: U+03D0..U+03D2, U+03D5,     
+    
+    U+03D6, U+03F0..U+03F2. </li>    
+    
+  <li>Removed&nbsp; decompositions from the conjoining jamo block: U+1100..U+11F8. </li>    
+    
+  <li>Changes to decomposition mappings for some Tibetan vowels for consistency in     
+    
+    normalization. (U+0F71, U+0F73, U+0F77, U+0F79, U+0F81) </li>    
+    
+  <li>Updated the decomposition mappings for several Vietnamese characters with two diacritics     
+    
+    (U+1EAC, U+1EAD, U+1EB6, U+1EB7, U+1EC6, U+1EC7, U+1ED8, U+1ED9), so that the recursive     
+    
+    decomposition can be generated directly in canonically reordered form (not a normative     
+    
+    change). </li>    
+    
+  <li>Updated the decomposition mappings for several Arabic compatibility characters involving     
+    
+    shadda (U+FC5E..U+FC62, U+FCF2..U+FCF4), and two Latin characters (U+1E1C, U+1E1D), so     
+    
+    that the decompositions are generated directly in canonically reordered form (not a     
+    
+    normative change). </li>    
+    
+  <li>Changed BIDI category for: U+00A0 NO-BREAK SPACE, U+2007 FIGURE SPACE, U+2028 LINE     
+    
+    SEPARATOR. </li>    
+    
+  <li>Changed BIDI category for extenders of General Category Lm: U+3005, U+3021..U+3035,     
+    
+    U+FF9E, U+FF9F. </li>    
+    
+  <li>Changed General Category and BIDI category for the Greek numeral signs: U+0374, U+0375. </li>    
+    
+  <li>Corrected General Category for U+FFE8 HALFWIDTH FORMS LIGHT VERTICAL. </li>    
+    
+  <li>Added Unicode 1.0 names for many Tibetan characters (informative). </li>    
+    
+</ul>    
+    
+    
+    
+<h3><a HREF="http://www.unicode.org/unicode/standard/versions/enumeratedversions.html#Unicode 2.1.8">Unicode 2.1.8</a> </h3>    
+    
+    
+    
+<p>Modifications made for Version 2.1.8 of UnicodeData.txt include:     
+    
+    
+    
+<ul>    
+    
+  <li>Added combining class 240 for U+0345 COMBINING GREEK YPOGEGRAMMENI so that     
+    
+    decompositions involving iota subscript are derivable directly in canonically reordered     
+    
+    form; this also has a bearing on simplification of casing of polytonic Greek. </li>    
+    
+  <li>Changes in decompositions related to Greek tonos. These result from the clarification     
+    
+    that monotonic Greek &quot;tonos&quot; should be equated with U+0301 COMBINING ACUTE,     
+    
+    rather than with U+030D COMBINING VERTICAL LINE ABOVE. (All Greek characters in the Greek     
+    
+    block involving &quot;tonos&quot;; some Greek characters in the polytonic Greek in the     
+    
+    1FXX block.) </li>    
+    
+  <li>Changed decompositions involving dialytika tonos. (U+0390, U+03B0) </li>    
+    
+  <li>Changed ternary decompositions to binary. (U+0CCB, U+FB2C, U+FB2D) These changes     
+    
+    simplify normalization. </li>    
+    
+  <li>Removed canonical decomposition for Latin Candrabindu. (U+0310) </li>    
+    
+  <li>Corrected error in canonical decomposition for U+1FF4. </li>    
+    
+  <li>Added compatibility decompositions to clarify collation tables. (U+2100, U+2101, U+2105,     
+    
+    U+2106, U+1E9A) </li>    
+    
+  <li>A series of general category changes to assist the convergence of of Unicode definition     
+    
+    of identifier with ISO TR 10176: <ul>    
+    
+      <li>So &gt; Lo: U+0950, U+0AD0, U+0F00, U+0F88..U+0F8B </li>    
+    
+      <li>Po &gt; Lo: U+0E2F, U+0EAF, U+3006 </li>    
+    
+      <li>Lm &gt; Sk: U+309B, U+309C </li>    
+    
+      <li>Po &gt; Pc: U+30FB, U+FF65 </li>    
+    
+      <li>Ps/Pe &gt; Mn: U+0F3E, U+0F3F </li>    
+    
+    </ul>    
+    
+  </li>    
+    
+  <li>A series of bidi property changes for consistency. <ul>    
+    
+      <li>L &gt; ET: U+09F2, U+09F3 </li>    
+    
+      <li>ON &gt; L: U+3007 </li>    
+    
+      <li>L &gt; ON: U+0F3A..U+0F3D, U+037E, U+0387 </li>    
+    
+    </ul>    
+    
+  </li>    
+    
+  <li>Add case mapping: U+01A6 &lt;-&gt; U+0280 </li>    
+    
+  <li>Updated symmetric swapping value for guillemets: U+00AB, U+00BB, U+2039, U+203A. </li>    
+    
+  <li>Changes to combining class values. Most Indic fixed position class non-spacing marks     
+    
+    were changed to combining class 0. This fixes some inconsistencies in how canonical     
+    
+    reordering would apply to Indic scripts, including Tibetan. Indic interacting top/bottom     
+    
+    fixed position classes were merged into single (non-zero) classes as part of this change.     
+    
+    Tibetan subjoined consonants are changed from combining class 6 to combining class 0. Thai     
+    
+    pinthu (U+0E3A) moved to combining class 9. Moved two Devanagari stress marks into generic     
+    
+    above and below combining classes (U+0951, U+0952). </li>    
+    
+  <li>Corrected placement of semicolon near symmetric swapping field. (U+FA0E, etc., scattered     
+    
+    positions to U+FA29) </li>    
+    
+</ul>    
+    
+    
+    
+<h3>Version 2.1.7</h3>    
+    
+    
+    
+<p><i>This version was for internal change tracking only, and never publicly released.</i></p>    
+    
+    
+    
+<h3>Version 2.1.6</h3>    
+    
+    
+    
+<p><i>This version was for internal change tracking only, and never publicly released.</i></p>    
+    
+    
+    
+<h3><a HREF="http://www.unicode.org/unicode/standard/versions/enumeratedversions.html#Unicode 2.1.5">Unicode 2.1.5</a> </h3>    
+    
+    
+    
+<p>Modifications made for Version 2.1.5 of UnicodeData.txt include:     
+    
+    
+    
+<ul>    
+    
+  <li>Changed decomposition for U+FF9E and U+FF9F so that correct collation weighting will     
+    
+    automatically result from the canonical equivalences. </li>    
+    
+  <li>Removed canonical decompositions for U+04D4, U+04D5, U+04D8, U+04D9, U+04E0, U+04E1,     
+    
+    U+04E8, U+04E9 (the implication being that no canonical equivalence is claimed between     
+    
+    these 8 characters and similar Latin letters), and updated 4 canonical decompositions for     
+    
+    U+04DB, U+04DC, U+04EA, U+04EB to reflect the implied difference in the base character. </li>    
+    
+  <li>Added Pi, and Pf categories and assigned the relevant quotation marks to those     
+    
+    categories, based on the Unicode Technical Corrigendum on Quotation Characters. </li>    
+    
+  <li>Updating of many bidi properties, following the advice of the ad hoc committee on bidi,     
+    
+    and to make the bidi properties of compatibility characters more consistent. </li>    
+    
+  <li>Changed category of several Tibetan characters: U+0F3E, U+0F3F, U+0F88..U+0F8B to make     
+    
+    them non-combining, reflecting the combined opinion of Tibetan experts. </li>    
+    
+  <li>Added case mapping for U+03F2. </li>    
+    
+  <li>Corrected case mapping for U+0275. </li>    
+    
+  <li>Added titlecase mappings for U+03D0, U+03D1, U+03D5, U+03D6, U+03F0.. U+03F2. </li>    
+    
+  <li>Corrected compatibility label for U+2121. </li>    
+    
+  <li>Add specific entries for all the CJK compatibility ideographs, U+F900..U+FA2D, so the     
+    
+    canonical decomposition for each (the URO character it is equivalent to) can be carried in     
+    
+    the database. </li>    
+    
+</ul>    
+    
+    
+    
+<h3>Version 2.1.4</h3>    
+    
+    
+    
+<p><i>This version was for internal change tracking only, and never publicly released.</i></p>    
+    
+    
+    
+<h3>Version 2.1.3</h3>    
+    
+    
+    
+<p><i>This version was for internal change tracking only, and never publicly released.</i></p>    
+    
+    
+    
+<h3><a HREF="http://www.unicode.org/unicode/standard/versions/enumeratedversions.html#Unicode 2.1.2">Unicode 2.1.2</a> </h3>    
+    
+    
+    
+<p>Modifications made in updating UnicodeData.txt to Version 2.1.2 for the Unicode     
+    
+Standard, Version 2.1 (from Version 2.0) include:     
+    
+    
+    
+<ul>    
+    
+  <li>Added two characters (U+20AC and U+FFFC). </li>    
+    
+  <li>Amended bidi properties for U+0026, U+002E, U+0040, U+2007. </li>    
+    
+  <li>Corrected case mappings for U+018E, U+019F, U+01DD, U+0258, U+0275, U+03C2, U+1E9B. </li>    
+    
+  <li>Changed combining order class for U+0F71. </li>    
+    
+  <li>Corrected canonical decompositions for U+0F73, U+1FBE. </li>    
+    
+  <li>Changed decomposition for U+FB1F from compatibility to canonical. </li>    
+    
+  <li>Added compatibility decompositions for U+FBE8, U+FBE9, U+FBF9..U+FBFB. </li>    
+    
+  <li>Corrected compatibility decompositions for U+2469, U+246A, U+3358. </li>    
+    
+</ul>    
+    
+    
+    
+<h3>Version 2.1.1</h3>    
+    
+    
+    
+<p><i>This version was for internal change tracking only, and never publicly released.</i></p>    
+    
+    
+    
+<h3><a HREF="http://www.unicode.org/unicode/standard/versions/enumeratedversions.html#Unicode 2.0.0">Unicode 2.0.0</a> </h3>    
+    
+    
+    
+<p>The modifications made in updating UnicodeData.txt for the Unicode     
+    
+Standard, Version 2.0 include:     
+    
+    
+    
+<ul>    
+    
+  <li>Fixed decompositions with TONOS to use correct NSM: 030D. </li>    
+    
+  <li>Removed old Hangul Syllables; mapping to new characters are in a separate table. </li>    
+    
+  <li>Marked compatibility decompositions with additional tags. </li>    
+    
+  <li>Changed old tag names for clarity. </li>    
+    
+  <li>Revision of decompositions to use first-level decomposition, instead of maximal     
+    
+    decomposition. </li>    
+    
+  <li>Correction of all known errors in decompositions from earlier versions. </li>    
+    
+  <li>Added control code names (as old Unicode names). </li>    
+    
+  <li>Added Hangul Jamo decompositions. </li>    
+    
+  <li>Added Number category to match properties list in book. </li>    
+    
+  <li>Fixed categories of Koranic Arabic marks. </li>    
+    
+  <li>Fixed categories of precomposed characters to match decomposition where possible. </li>    
+    
+  <li>Added Hebrew cantillation marks and the Tibetan script. </li>    
+    
+  <li>Added place holders for ranges such as CJK Ideographic Area and the Private Use Area. </li>    
+    
+  <li>Added categories Me, Sk, Pc, Nl, Cs, Cf, and rectified a number of mistakes in the     
+    
+    database. </li>    
+    
+</ul>    
+    
+</body>    
+    
+</html>    
+    
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/rombuild/r_build.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,2099 @@
+// Copyright (c) 1995-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#define __REFERENCE_CAPABILITY_NAMES__
+#include <stdlib.h>
+#include <string.h>
+#include <ctype.h>
+#include <e32std.h>
+#include <e32std_private.h>
+#include <e32rom.h>
+#include "u32std.h"
+#include <e32uid.h>
+#include <f32file.h>
+#include "h_utl.h"
+
+#define USE_IAT_FOR_IMPORTS (iOverrideFlags&KOverrideKeepIAT || (iHdr->iCpuIdentifier & 0x1000))
+
+#if defined(__MSVCDOTNET__) || defined(__TOOLS2__)
+#include <iomanip>
+#else //!__MSVCDOTNET__
+#include <iomanip.h>
+#endif
+
+#if defined(__MSVCDOTNET__) || defined(__TOOLS2__)
+#include <iomanip>
+#else //!__MSVCDOTNET__
+#include <iomanip.h>
+#endif
+
+#include "r_obey.h"
+#include "r_global.h"
+#include "r_dir.h"
+
+TInt NumRootDirs;
+
+inline TLinAddr ActualToRomAddress(TAny* anAddr)
+	{ return TLinAddr(anAddr)-TheRomMem+TheRomLinearAddress; }
+
+TBool THardwareVariant::MutuallyExclusive(THardwareVariant a) const
+	{
+	if (Layer()<=3 || a.Layer()<=3)
+		return EFalse;
+	if (Parent()==3 && a.Parent()==3)
+		return(Layer()!=a.Layer());
+	if (Parent()==3 && a.Parent()!=Layer())
+		return ETrue;
+	if (a.Parent()==3 && Parent()!=a.Layer())
+		return ETrue;
+	if (Layer()!=a.Layer())
+		return ETrue;
+	return((VMask()&a.VMask())==0);
+	}
+
+TBool THardwareVariant::IsVariant() const
+	{
+	if (Layer()<=3 || Parent()==3)
+		return EFalse;
+	TUint v=VMask();
+	TInt i;
+	for (i=0; i<16; i++)
+		{
+		if (v==TUint(1<<i))
+			return ETrue;
+		}
+	return EFalse;
+	}
+
+TInt THardwareVariant::Compare(THardwareVariant a) const
+	{
+	TUint l1=Layer();
+	TUint p1=Parent();
+	TUint v1=VMask();
+	TUint l2=a.Layer();
+	TUint p2=a.Parent();
+	TUint v2=a.VMask();
+
+	if (l1<=3)
+		{
+		if (l2<=3)
+			{
+			return EEqual;
+			}
+		return EGreater;
+		}
+	if (l2<=3)
+		return ELess;
+	if (p1==3)
+		{
+		if (p2==3)
+			{
+			if (l1==l2)
+				return EEqual;
+			return EUnordered;
+			}
+		if (p2==l1)
+			return EGreater;
+		return EUnordered;
+		}
+	if (p2==3)
+		{
+		if (p1==l2)
+			return ELess;
+		return EUnordered;
+		}
+	if (l1!=l2)
+		return EUnordered;
+	if ((v1&v2)==v1)
+		return ELess;
+	if ((v1&v2)==v2)
+		return EGreater;
+	return EUnordered;
+	}
+//
+TInt TRomNode::Count=0;
+TRomNode::TRomNode(const TText* aName, TRomBuilderEntry* aEntry)
+//
+// Constructor from TRomBuilderEntry, i.e. for new file or directory
+//
+	{
+	memset(this, 0, sizeof(TRomNode));
+	iAtt = (TUint8)KEntryAttReadOnly;
+	iName = (TText*)NormaliseFileName((const char*)aName);
+	iIdentifier=TRomNode::Count++;
+	iRomFile = new TRomFile;
+	if (aEntry)
+		{
+		iRomFile->iRbEntry = aEntry;
+		aEntry->SetRomNode(this);
+		iBareName = strdup(aEntry->iBareName);
+		iRomFile->iHwvd = aEntry->iHardwareVariant;
+		}
+	else
+		{
+		iRomFile->iDir = ETrue;
+		iAtt |= (TUint8)KEntryAttDir;
+		iBareName = strdup((const char*)iName);
+		iRomFile->iHwvd = KVariantIndependent;
+		}
+	TRACE(TROMNODE,Print(ELog, "TRomNode %d name %s bare %s att %02x romfile %08x\n", iIdentifier,
+			iName, iBareName, iAtt, iRomFile));
+	}
+
+TRomNode::TRomNode(const TText* aName, TRomNode* aNode)
+//
+// Constructor from TRomNode, i.e. for aliased file
+//
+	{
+	memset(this, 0, sizeof(TRomNode));
+	iAtt = aNode->iAtt;
+	iIdentifier=TRomNode::Count++;
+	iName = (TText*)NormaliseFileName((const char*)aName);
+	iHidden = aNode->iHidden;
+	iRomFile = aNode->iRomFile;
+	if (iRomFile)
+		{
+		iRomFile->Open();
+		}
+	TRACE(TROMNODE,Print(ELog, "TRomNode %d DUP name %s romfile %08x\n", iIdentifier, iName, iRomFile));
+	}
+
+TRomNode::TRomNode(const TRomNode& aNode)
+//
+// Copy constructor - only used in deep copy function
+//
+	{
+	memset(this, 0, sizeof(TRomNode));
+	iAtt = aNode.iAtt;
+	iIdentifier=TRomNode::Count++;
+	iName = (TText*)strdup((const char*)aNode.iName);
+	iBareName = strdup(aNode.iBareName);
+	iHidden = aNode.iHidden;
+	iRomFile = aNode.iRomFile;
+	if (iRomFile)
+		{
+		iRomFile->Open();
+		}
+	TRACE(TROMNODE,Print(ELog, "TRomNode %d COPY name %s bare %s att %02x romfile %08x\n", iIdentifier,
+			iName, iBareName, iAtt, iRomFile));
+	}
+
+TRomNode::~TRomNode()
+	{
+	free(iName);
+	free(iBareName);
+	if (iRomFile)
+		iRomFile->Close();
+	}
+
+TRomNode* TRomNode::FindInDirectory(const TText* aName)
+//
+// Check if the TRomNode for aName exists in aDir, and if so, return it.
+//
+	{
+
+	TRomNode *entry=iChild; // first subdirectory or file
+	while (entry)
+		{
+		if (!entry->iHidden && (stricmp((const char *)aName, (const char *)entry->iName))==0) 
+			return entry;
+		else
+			entry=entry->iSibling;
+		}
+	return 0;
+	}
+
+TRomNode* TRomNode::FindInDirectory(const TText* aName, THardwareVariant aVariant, TBool aPatchDataFlag)
+//
+// Check for a file with same name and a compatible hardware variant
+//
+	{
+
+	TRomNode *entry=iChild; // first subdirectory or file
+	while (entry)
+		{
+		if (((!entry->iHidden)||aPatchDataFlag) && entry->iRomFile && (stricmp((const char *)aName, (const char *)entry->iName))==0) 
+			{
+			if (!aVariant.MutuallyExclusive(entry->HardwareVariant()))
+				return entry;
+			}
+		entry=entry->iSibling;
+		}
+	return 0;
+	}
+
+void TRomNode::AddFile(TRomNode* aChild)
+	{
+	if (!(iAtt & KEntryAttDir))
+		{
+		Print(EError, "Adding subdirectory to a file!!!\n");
+		return;
+		}
+	Add(aChild);
+	}
+
+TRomNode* TRomNode::NewSubDir(const TText* aName)
+	{
+	if (!(iAtt & KEntryAttDir))
+		{
+		Print(EError, "Adding subdirectory to a file!!!\n");
+		return 0;
+		}
+
+	TRomNode* node = new TRomNode(aName);
+	if (node==0)
+		{
+		Print(EError, "TRomNode::NewNode: Out of memory\n");
+		return 0;
+		}
+	Add(node);
+	return node;
+	}
+
+void TRomNode::Add(TRomNode* aChild)
+	{
+	if (iChild) // this node is a non-empty directory
+		{
+		TRomNode* dir = iChild; // find where to link in the new node
+		while (dir->iSibling)
+			dir = dir->iSibling;
+		dir->iSibling = aChild;
+		}
+	else
+		iChild = aChild; // else just set it up as the child of the dir
+	aChild->iSibling = 0;
+	aChild->iParent = this;
+	}
+
+void TRomNode::Remove(TRomNode* aChild)
+	{
+	if (iChild==0)
+		{
+		Print(EError, "Removing file from a file!!!\n");
+		return;
+		}
+	if (iChild==aChild) // first child in this directory
+		{
+		iChild = aChild->iSibling;
+		aChild->iSibling = 0;
+		aChild->iParent = 0;
+		return;
+		}
+	TRomNode* prev = iChild;
+	while (prev->iSibling && prev->iSibling != aChild)
+		prev = prev->iSibling;
+	if (prev==0)
+		{
+		Print(EError, "Attempting to remove file not in this directory!!!\n");
+		return;
+		}
+	prev->iSibling = aChild->iSibling;
+	aChild->iSibling = 0;
+	aChild->iParent = 0;
+	}
+
+void TRomNode::CountDirectory(TInt& aFileCount, TInt& aDirCount)
+	{
+	TRomNode *current=iChild;
+	while(current)
+		{
+		if (current->iChild)
+			aDirCount++;
+		else if (!current->iHidden)
+			aFileCount++;
+		current=current->iSibling;
+		}
+	}
+
+/**
+ * Walk the contents of the directory, accumulating the
+ * files as FileEntry objects in the specified RomFileStructure
+ * and recursively handling the sub-directories
+ *
+ * TRomNode::ProcessDirectory is a pair with
+ * RomFileStructure::ProcessDirectory
+ */
+int TRomNode::ProcessDirectory(RomFileStructure* aRFS)
+	{
+	TInt r=KErrNone;
+	TRomNode *current=iChild;
+	while(current)
+		{
+		if (current->iAtt & (TUint8)KEntryAttDir)
+			{
+			r=aRFS->ProcessDirectory(current);
+			if (r!=KErrNone)
+				return r;
+			}
+		else if (!current->iHidden)
+			{
+			FileEntry *pE=FileEntry::New(current);
+			if (!pE)
+				return KErrNoMemory;
+			r=aRFS->Add(*pE);
+			if (r==KErrOverflow)
+				return r;
+			}
+		current=current->iSibling;
+		}
+	return r;
+	}
+
+void TRomNode::AddExecutableFile(TRomNode*& aLast, TRomNode* aNode)
+	{
+	aLast->iNextExecutable = aNode;
+	aLast = aNode;
+	aNode->iAtt |= KEntryAttXIP;
+	}
+
+char* TRomNode::BareName() const
+	{
+	return iBareName;
+	}
+
+TUint32 TRomNode::Uid3() const
+	{
+	return iRomFile->Uid3();
+	}
+
+TUint32 TRomNode::ModuleVersion() const
+	{
+	return iRomFile->ModuleVersion();
+	}
+
+THardwareVariant TRomNode::HardwareVariant() const
+	{
+	return iRomFile->HardwareVariant();
+	}
+
+TUint32 TRomNode::ABI() const
+	{
+	return iRomFile->ABI();
+	}
+
+TUint32 TRomFile::Uid3() const
+	{
+	assert(!iDir);
+	if (iRbEntry)
+	{
+		if(iRbEntry->iHdr)
+			return iRbEntry->iHdr->iUid3;
+	}
+	return RomImgHdr()->iUid3;
+	}
+
+TUint32 TRomFile::ModuleVersion() const
+	{
+	assert(!iDir);
+	if (iRbEntry)
+	{
+		if(iRbEntry->iHdr)
+			return iRbEntry->iHdr->ModuleVersion();
+	}
+	return RomImgHdr()->iModuleVersion;
+	}
+
+THardwareVariant TRomFile::HardwareVariant() const
+	{
+	return iHwvd;
+	}
+
+TUint32 TRomFile::ABI() const
+	{
+	assert(!iDir);
+	if (iRbEntry)
+	{
+		if(iRbEntry->iHdr)
+			return iRbEntry->iHdr->ABI();
+	}
+	return RomImgHdr()->iFlags & KRomImageABIMask;
+	}
+
+TInt TRomFile::ExportDirCount() const
+	{
+	assert(!iDir);
+	if (iRbEntry)
+	{
+		if(iRbEntry->iHdr)
+			return iRbEntry->iHdr->iExportDirCount;
+	}
+	return RomImgHdr()->iExportDirCount;
+	}
+
+TUint32 TRomFile::RomImageFlags() const
+	{
+	assert(!iDir);
+	if (iRbEntry)
+		{
+		if(iRbEntry->iHdr)
+		{
+		const TUint KRomFlagMask = KImageDll | KImageNoCallEntryPoint | KImageFixedAddressExe | KImageNmdExpData;
+		TUint romflags = iRbEntry->iHdr->iFlags & KRomFlagMask;
+		return iRbEntry->iRomImageFlags | romflags;
+		}
+		}
+	return RomImgHdr()->iFlags;
+	}
+
+TLinAddr TRomFile::DataBssLinearBase() const
+	{
+	assert(!iDir);
+	if (iRbEntry)
+		return iRbEntry->iDataBssLinearBase;
+	return RomImgHdr()->iDataBssLinearBase;
+	}
+
+const SSecurityInfo& TRomFile::SecurityInfo() const
+	{
+	assert(!iDir);
+	if (iRbEntry)
+		return iRbEntry->iS;
+	return RomImgHdr()->iS;
+	}
+
+TInt TRomNode::FullNameLength(TBool aIgnoreHiddenAttrib) const
+	{
+	TInt l = 0;
+	// aIgnoreHiddenAttrib is used to find the complete file name length as
+	// in ROM of a hidden file.
+	if (iParent && ( !iHidden || aIgnoreHiddenAttrib))
+		l = iParent->FullNameLength() + 1;
+	l += strlen((const char*)iName);
+	return l;
+	}
+
+TInt TRomNode::GetFullName(char* aBuf, TBool aIgnoreHiddenAttrib) const
+	{
+	TInt l = 0;
+	TInt nl = strlen((const char*)iName);
+	// aIgnoreHiddenAttrib is used to find the complete file name as in ROM of a hidden file.
+	if (iParent && ( !iHidden || aIgnoreHiddenAttrib))
+		l = iParent->GetFullName(aBuf);
+	char* b = aBuf + l;
+	if (l)
+		*b++ = '\\', ++l;
+	memcpy(b, iName, nl);
+	b += nl;
+	*b = 0;
+	l += nl;
+	return l;
+	}
+
+TInt CompareCapabilities(const SCapabilitySet& aSubCaps, const SCapabilitySet& aSuperCaps, const char* aSubName, const char* aSuperName)
+//
+//	Check that a aSubCaps are a subset of aSuperCaps
+//
+	{
+	if ((!gPlatSecEnforcement)&&(!gPlatSecDiagnostics))
+		return KErrNone;
+	TInt i;
+	TUint32 c = 0;
+	for (i=0; i<SCapabilitySet::ENCapW; ++i)
+		c |= (aSubCaps[i] &~ aSuperCaps[i]);
+	TInt r = c ? KErrPermissionDenied : KErrNone;
+	if (r && aSubName && aSuperName)
+		{
+		TPrintType printType;
+		if(gPlatSecEnforcement)
+			printType = EError;
+		else
+			{
+			printType = EWarning;
+			r = KErrNone;
+			}
+		char* buf = (char*)malloc(2);
+		if(!buf)
+			return KErrNoMemory;
+		TInt len = 0;
+		for(i=0; i<ECapability_Limit; i++)
+			{
+			if( (aSubCaps[i>>5] &~ aSuperCaps[i>>5]) & (1<<(i&31)) )
+				{
+				// append capability name to buf
+				const char* name = CapabilityNames[i];
+				if(!name)
+					continue;
+				if(len)
+					{
+					buf[len++] = ' ';
+					}
+				int nameLen=strlen(name);
+				buf = (char*)realloc(buf,len+nameLen+2);
+				if(!buf)
+					return KErrNoMemory;
+				memcpy(buf+len,CapabilityNames[i],nameLen);
+				len += nameLen;
+				}
+			}
+		buf[len]=0;
+		Print(printType, "*PlatSec* %s - Capability check failed. Can't load %s because it links to %s which has the following capabilities missing: %s\n",gPlatSecEnforcement?"ERROR":"WARNING",aSubName, aSuperName, buf);
+		free(buf);
+		}
+	return r;
+	}
+
+TDllFindInfo::TDllFindInfo(const char* aImportName, const TRomBuilderEntry* aEntry)
+	{
+	TUint32 flags;
+	iBareName = SplitFileName(aImportName, iUid3, iModuleVersion, flags);
+	assert(iBareName != 0);
+	iHwVariant = aEntry->iHardwareVariant.ReturnVariant(); 
+	}
+
+TDllFindInfo::~TDllFindInfo()
+	{
+	free((void*)iBareName);
+	}
+
+// Generate name as follows:
+// PC filename (UID3:xxxxxxxx HWVD:xxxxxxxx VER:M.m)
+TModuleName::TModuleName(const TRomBuilderEntry* a)
+	{
+	TInt l = strlen(a->iFileName) + strlen(" (UID3:xxxxxxxx HWVD:xxxxxxxx VER:MMMMM.mmmmm)");
+	iName = (char*)malloc(l + 1);
+	assert(iName != 0);
+	sprintf(iName, "%s (UID3:%08lx HWVD:%08lx VER:%ld.%ld)", a->iFileName, a->iHdr->iUid3,
+		a->iHardwareVariant.ReturnVariant(), a->iHdr->ModuleVersion()>>16, a->iHdr->ModuleVersion()&0x0000ffffu);
+	}
+
+// Generate name as follows:
+// Bare name (UID3:xxxxxxxx HWVD:xxxxxxxx VER:M.m)
+TModuleName::TModuleName(const TDllFindInfo& a)
+	{
+	TInt l = strlen(a.iBareName) + strlen(" (UID3:xxxxxxxx HWVD:xxxxxxxx VER:MMMMM.mmmmm)");
+	iName = (char*)malloc(l + 1);
+	assert(iName != 0);
+	sprintf(iName, "%s (UID3:%08lx HWVD:%08lx VER:%ld.%ld)", a.iBareName, a.iUid3,
+		a.iHwVariant, a.iModuleVersion>>16, a.iModuleVersion&0x0000ffffu);
+	}
+
+// Generate name as follows:
+// Name (UID3:xxxxxxxx HWVD:xxxxxxxx VER:M.m)
+TModuleName::TModuleName(const TRomNode& a)
+	{
+	TBool xip = (a.iAtt & KEntryAttXIP);
+	TUint32 uid3 = xip ? a.Uid3() : 0;
+	TUint32 hwvd = (TUint)a.HardwareVariant();
+	TUint32 ver = xip ? a.ModuleVersion() : 0;
+	TInt l = a.FullNameLength() + strlen(" (UID3:xxxxxxxx HWVD:xxxxxxxx VER:MMMMM.mmmmm)");
+	iName = (char*)malloc(l + 1);
+	assert(iName != 0);
+	char* b = iName + a.GetFullName(iName);
+	sprintf(b, " (UID3:%08lx HWVD:%08lx VER:%ld.%ld)", uid3, hwvd, ver>>16, ver&0x0000ffffu);
+	}
+
+TModuleName::TModuleName(const TRomFile& a, const TRomNode* aRootDir)
+	{
+	iName = 0;
+	if (a.iRbEntry)
+		{
+		new (this) TModuleName(a.iRbEntry);
+		return;
+		}
+	TRomNode* x = aRootDir->iNextExecutable;
+	for(; x; x=x->iNextExecutable)
+		{
+		if (x->iRomFile == &a)
+			{
+			new (this) TModuleName(*x);
+			return;
+			}
+		}
+	}
+
+TModuleName::~TModuleName()
+	{
+	free(iName);
+	}
+
+
+/**
+ * TRomNode::FindImageFileByName is always called on the root TRomNode, so
+ * it doesn't consider the current TRomNode, just the linked items in the
+ * iNextExecutable list.
+ */
+TRomNode* TRomNode::FindImageFileByName(const TDllFindInfo& aInfo, TBool aPrintDiag, TBool& aFallBack)
+	{
+	TUint r_major = aInfo.iModuleVersion >> 16;
+	TUint r_minor = aInfo.iModuleVersion & 0x0000ffffu;
+	TRomNode* fallback = NULL;
+	aFallBack = EFalse;
+	for (TRomNode* x=iNextExecutable; x!=0; x=x->iNextExecutable)
+		{
+		if (stricmp(x->BareName(), aInfo.iBareName))
+			continue;	// name doesn't match
+		if (aPrintDiag)
+			Print(ELog, "Candidate: %s ", (const char*)TModuleName(*x) );
+		if ( !(THardwareVariant(aInfo.iHwVariant) <= x->HardwareVariant()) )
+			{
+			if (aPrintDiag)
+				Print(ELog, "HWVD mismatch - requested %08x\n", aInfo.iHwVariant);
+			continue;
+			}
+		if (aInfo.iUid3 && (aInfo.iUid3 != x->Uid3()))
+			{
+			if (aPrintDiag)
+				Print(ELog, "UID3 mismatch - requested %08x\n", aInfo.iUid3);
+			continue;
+			}
+		TUint x_major = x->ModuleVersion() >> 16;
+		TUint x_minor = x->ModuleVersion() & 0x0000ffffu;
+		if ( x->ModuleVersion() == 0x00010000 && aInfo.iModuleVersion == 0 )
+			{
+			// allow requested version 0.0 to link to 1.0 with a warning
+			fallback = x;
+			}
+		if ( x_major != r_major )
+			{
+			if (aPrintDiag)
+				Print(ELog, "Major version mismatch - requested %d\n", r_major);
+			continue;
+			}
+		if ( x_minor < r_minor )
+			{
+			if (aPrintDiag)
+				Print(ELog, "??? Minor version mismatch - requested %d\n", r_minor);
+			continue;
+			}
+		if (aPrintDiag)
+			Print(ELog, "OK\n");
+		return x;
+		}
+	if (fallback)
+		{
+		aFallBack = ETrue;
+		return fallback;
+		}
+	return 0;
+	}
+
+TInt TRomNode::CheckForVersionConflicts(const TRomBuilderEntry* a)
+	{
+	TUint r_major = a->iHdr->ModuleVersion() >> 16;
+	TUint r_minor = a->iHdr->ModuleVersion() & 0x0000ffffu;
+	TInt errors = 0;
+	for (TRomNode* x=iNextExecutable; x!=0; x=x->iNextExecutable)
+		{
+		if (x->iRomFile->iRbEntry == a)
+			continue;	// don't compare a with itself
+		if (stricmp(x->BareName(), a->iBareName))
+			continue;	// name doesn't match
+		if ( a->iHardwareVariant.MutuallyExclusive(x->HardwareVariant()) )
+			continue;	// HWVDs are mutually exclusive
+		if ( a->iHdr->iUid3 && x->Uid3() && (a->iHdr->iUid3 != x->Uid3()) )
+			continue;	// UID3's don't match
+		TUint x_major = x->ModuleVersion() >> 16;
+		TUint x_minor = x->ModuleVersion() & 0x0000ffffu;
+		if (x_major == r_major && x_minor != r_minor)	// allow two copies of same file
+			{
+			Print(EError, "Version Conflict %s with %s\n", (const char*)TModuleName(a), (const char*)TModuleName(*x) );
+			++errors;
+			}
+		}
+	return errors;
+	}
+
+TInt E32Rom::WriteHeadersToRom(char *anAddr)
+//
+// Follow the TRomBuilderEntry tree, writing TRomEntry headers to the rom.
+//
+	{
+	TRACE(TTIMING,Print(EAlways,"0\n"));
+	TRACE(TDIR,Print(EAlways,"WriteHeadersToRom()\n"));
+	char* start=anAddr;
+	TRomRootDirectoryList* dirPointers=(TRomRootDirectoryList*)anAddr;
+	anAddr+=NumberOfVariants*sizeof(TRootDirInfo)+sizeof(TInt);
+	RomFileStructure* pS=RomFileStructure::New(NumberOfVariants);
+	if (!pS)
+		Print(EError,"Error creating RomFileStructure\n");
+	TInt r=pS->ProcessDirectory(iObey->iRootDirectory);
+	if (r!=KErrNone)
+		Print(EError,"Error %d processing directory tree\n",r);
+	TInt c=pS->Count();
+	NumRootDirs=c;
+	if (c!=NumberOfVariants)
+		Print(EError,"Error processing directory tree NR=%d NV=%d\n",c,NumberOfVariants);
+	dirPointers->iNumRootDirs=c;
+	TInt i;
+	TRACE(TDIR,Print(EAlways,"Count=%d\n",c));
+	TRACE(TDIR,pS->DebugPrint());
+	for(i=0; i<c; i++)
+		{
+		DirEntry* pD=(DirEntry*)&(*pS)[i];
+		TRomDir* pR=pD->CreateRomEntries(anAddr);
+		dirPointers->iRootDir[i].iHardwareVariant=TUint(pD->Variants().Lookup());
+		dirPointers->iRootDir[i].iAddressLin=ActualToRomAddress(pR);
+		}
+	TRACE(TDIR,Print(EAlways,"Beginning final cleanup\n"));
+	delete pS;
+	TRACE(TTIMING,Print(EAlways,"1\n"));
+	return anAddr-start;
+	}
+
+ void TRomNode::Destroy()
+//
+// Follow the TRomNode tree, destroying it
+//
+	{
+
+ 	TRomNode *current = this; // root has no siblings
+	while (current)
+		{
+		if (current->iChild)
+			current->iChild->Destroy();
+		TRomNode* prev=current;
+		current=current->iSibling;
+		delete prev;
+		}
+ 	}
+
+
+TInt TRomNode::SetAtt(TText *anAttWord)
+//
+// Set the file attribute byte from the letters passed
+//
+	{
+	iAtt=0;
+	if (anAttWord==0 || anAttWord[0]=='\0')
+		return Print(EError, "Missing argument for keyword 'attrib'.\n");
+	for (TText *letter=anAttWord;*letter!=0;letter++)
+		{
+		switch (*letter)
+			{
+		case 'R':
+		case 'w':
+			iAtt |= KEntryAttReadOnly;
+			break;
+		case 'r':
+		case 'W':
+			iAtt &= ~KEntryAttReadOnly;
+			break;
+		case 'H':
+			iAtt |= KEntryAttHidden;
+			break;
+		case 'h':
+			iAtt &= ~KEntryAttHidden;
+			break;
+		case 'S':
+			iAtt |= KEntryAttSystem;
+			break;
+		case 's':
+			iAtt &= ~KEntryAttSystem;
+			break;
+		default:
+			return Print(EError, "Unrecognised attrib - '%c'.\n", *letter);
+			break;
+			}
+		}
+	return KErrNone;
+	}
+
+TRomBuilderEntry::TRomBuilderEntry(const char *aFileName,TText *aName)
+//
+// Constructor
+//
+	:
+	E32ImageFile(),
+	iName(0),
+	iResource(EFalse), iNonXIP(EFalse), iPreferred(EFalse), iCompression(0), iPatched(EFalse),iArea(0),
+	iOverrideFlags(0),iCodeAlignment(0),iDataAlignment(0),iUid1(0), iUid2(0), iUid3(0),iBareName(0), 
+	iHardwareVariant(KVariantIndependent),iDataBssOffset(0xffffffff), 
+	iStackReserve(0),iIATRefs(0), iNext(0), iNextInArea(0), 
+	iRomImageFlags(0),iProcessName(0), iRomNode(NULL)
+	{
+	if (aFileName)
+   		iFileName = NormaliseFileName((const char*)aFileName);
+	if (aName)
+		iName = (TText*)NormaliseFileName((const char*)aName);
+	}
+
+TRomBuilderEntry::~TRomBuilderEntry()
+//
+// Destructor
+//
+	{
+
+	free(iFileName);
+	iFileName = 0;
+	free(iName);
+	iName = 0;
+	delete[] iProcessName;
+	free(iBareName);
+	iBareName = 0;
+	delete[] iIATRefs;
+	}
+
+TInt isNumber(TText *aString)
+	{
+	if (aString==NULL)
+		return 0;
+	if (strlen((char *)aString)==0)
+		return 0;
+	return isdigit(aString[0]);
+	}
+
+TInt getNumber(TText *aStr)
+	{
+	TUint a;
+	#ifdef __TOOLS2__
+	istringstream val((char *)aStr);
+	#else
+	istrstream val((char *)aStr,strlen((char *)aStr));
+	#endif
+
+#if defined(__MSVCDOTNET__) || defined(__TOOLS2__)
+	val >> setbase(0);
+#endif //__MSVCDOTNET__
+
+	val >> a;
+	return a;
+	}
+
+TInt TRomBuilderEntry::SetCodeAlignment(TText* aStr)
+	{
+    if (!aStr || (aStr && isNumber(aStr)==0))
+		return Print(EError, "Number required as argument for keyword 'code-align'.\n");
+    iCodeAlignment=getNumber(aStr);
+    return KErrNone;
+	}
+
+TInt TRomBuilderEntry::SetDataAlignment(TText* aStr)
+	{
+    if (!isNumber(aStr))
+		return Print(EError, "Number required as argument for keyword 'data-align'.\n");
+    TInt align=getNumber(aStr);
+	if (align<0 || (align&0x0F) != 0)
+		return Print(EError, "Positive multiple of 16 required for 'data-align'.\n");
+	iDataAlignment=align;
+    return KErrNone;
+	}
+
+TInt TRomBuilderEntry::SetRelocationAddress(TText *aStr)
+	{
+	if (aStr && isNumber(aStr)==0)
+		return Print(EError, "Number required as argument for keyword 'reloc'.\n");
+	iOverrideFlags |= KOverrideAddress;
+	iRelocationAddress=aStr ? getNumber(aStr) : 0xFFFFFFFF;
+	return KErrNone;
+	}
+
+TInt TRomBuilderEntry::SetStackReserve(TText *aStr)
+	{
+	if (isNumber(aStr)==0)
+		return Print(EError, "Number required as argument for keyword 'stackreserve'.\n");
+	iOverrideFlags |= KOverrideStackReserve;
+	iStackReserve=getNumber(aStr);
+	return KErrNone;
+	}
+
+TInt TRomBuilderEntry::SetStackSize(TText *aStr)
+	{
+	if (isNumber(aStr)==0)
+		return Print(EError, "Number required as argument for keyword 'stack'.\n");
+	iOverrideFlags |= KOverrideStack;
+	iStackSize=getNumber(aStr);
+	return KErrNone;
+	}
+
+TInt TRomBuilderEntry::SetHeapSizeMin(TText *aStr)
+	{
+	if (isNumber(aStr)==0)
+		return Print(EError, "Number required as argument for keyword 'heapmin'.\n");
+	iOverrideFlags |= KOverrideHeapMin;
+	iHeapSizeMin=getNumber(aStr);
+	return KErrNone;
+	}
+
+TInt TRomBuilderEntry::SetHeapSizeMax(TText *aStr)
+	{
+	if (isNumber(aStr)==0)
+		return Print(EError, "Number required as argument for keyword 'heapmax'.\n");
+	iOverrideFlags |= KOverrideHeapMax;
+	iHeapSizeMax=getNumber(aStr);
+	return KErrNone;
+	}
+
+TInt TRomBuilderEntry::SetCapability(TText *aStr)
+	{
+	iOverrideFlags |= KOverrideCapability;
+	if (isNumber(aStr))
+		{
+		Print(EDiagnostic,"Old style numeric CAPABILTY specification ignored.\n");
+		return KErrNone;
+		}
+	return ParseCapabilitiesArg(iS.iCaps, (char*)aStr);
+	}
+
+TInt TRomBuilderEntry::SetPriority(TText *aStr)
+	{
+	if (isNumber(aStr))
+		iPriority=(TProcessPriority)getNumber(aStr);
+	else
+		{
+		char *str=(char *)aStr;
+		if (stricmp(str, "low")==0)
+			iPriority=EPriorityLow;
+		else if (strnicmp(str, "background", 4)==0)
+			iPriority=EPriorityBackground;
+		else if (strnicmp(str, "foreground", 4)==0)
+			iPriority=EPriorityForeground;
+		else if (stricmp(str, "high")==0)
+			iPriority=EPriorityHigh;
+		else if (strnicmp(str, "windowserver",3)==0)
+			iPriority=EPriorityWindowServer;
+		else if (strnicmp(str, "fileserver",4)==0)
+			iPriority=EPriorityFileServer;
+		else if (strnicmp(str, "realtimeserver",4)==0)
+			iPriority=EPriorityRealTimeServer;
+		else if (strnicmp(str, "supervisor",3)==0)
+			iPriority=EPrioritySupervisor;
+		else
+			return Print(EError, "Unrecognised priority keyword.\n");
+		}
+	if (iPriority<EPriorityLow || iPriority>EPrioritySupervisor)
+		return Print(EError, "Priority out of range.\n");
+	iOverrideFlags |= KOverridePriority;
+	return KErrNone;
+	}
+
+TInt TRomBuilderEntry::SetUid1(TText *aStr)
+	{
+	if (isNumber(aStr)==0)
+		return Print(EError, "Number required as argument for keyword 'uid1'.\n");
+	iOverrideFlags |= KOverrideUid1;
+	iUid1=getNumber(aStr);
+	return KErrNone;
+	}
+TInt TRomBuilderEntry::SetUid2(TText *aStr)
+	{
+	if (isNumber(aStr)==0)
+		return Print(EError, "Number required as argument for keyword 'uid2'.\n");
+	iOverrideFlags |= KOverrideUid2;
+	iUid2=getNumber(aStr);
+	return KErrNone;
+	}
+TInt TRomBuilderEntry::SetUid3(TText *aStr)
+	{
+	if (isNumber(aStr)==0)
+		return Print(EError, "Number required as argument for keyword 'uid3'.\n");
+	iOverrideFlags |= KOverrideUid3;
+	iUid3=getNumber(aStr);
+	return KErrNone;
+	}
+TInt TRomBuilderEntry::SetCallEntryPoint(TBool aState)
+	{
+	if (aState)
+		iOverrideFlags|=KOverrideCallEntryPoint;
+	else
+		iOverrideFlags|=KOverrideNoCallEntryPoint;
+	return KErrNone;
+	}
+
+TInt TRomBuilderEntry::SetAttachProcess(TText *aStr)
+	{
+	const char* s=(const char*)aStr;
+	TInt nd=0;
+	if (*s=='\\')
+		{
+		++s;
+		++nd;
+		}
+	TInt l=strlen(s);
+	if (l==0)
+		return KErrGeneral;
+	const char* ss=s;
+	while(*ss!=0 && *ss!='.') ++ss;
+	int ext=*ss;	// 0 if no extension
+	iProcessName=new TText[l+2+(ext?0:4)];
+	char* d=(char *)iProcessName;
+	strcpy(d+1, s);
+	if (!ext)
+		{
+		char* t=d+1+l;
+		*t++='.';
+		*t++='e';
+		*t++='x';
+		*t++='e';
+		*t++=0;
+		}
+	char* dd=d;
+	int ind=nd;
+	while(*dd)
+		{
+		while(*dd && *dd!='\\') ++dd;
+		if (*dd=='\\')
+			{
+			*dd++=0;	// change \ to NUL
+			++nd;		// count path elements
+			}
+		}
+	if (!ind && nd)
+		++nd;			// add initial \ if not present
+	*d=(char)nd;
+	return 0;
+	}
+
+TInt TRomBuilderEntry::OpenImageFile()
+	{
+	Print(ELog,"Loading E32Image file %s \n", iFileName);
+	TInt err = Open(iFileName);
+	if (err != KErrNone)
+		{
+		Print(EError,"File %s is not a valid E32Image file (error %d)\n", iFileName, err);
+		return err;
+		}
+	TUint hdrfmt = iHdr->HeaderFormat();
+	if (hdrfmt != KImageHdrFmt_V)
+		{
+		Print(EError,"%s: Can't load old format binary\n", iFileName);
+		return KErrNotSupported;
+		}
+	E32ImageHeaderV* h = iHdr;
+	
+	// Overide any settings in the image file with those in the obey file
+	if (iOverrideFlags & (KOverrideUid1|KOverrideUid2|KOverrideUid3))
+		{
+		TUint uid1 = h->iUid1;
+		TUint uid2 = h->iUid2;
+		TUint uid3 = h->iUid3;
+		if (iOverrideFlags & KOverrideUid1)
+			uid1 = iUid1;
+		if (iOverrideFlags & KOverrideUid2)
+			uid2 = iUid2;
+		if (iOverrideFlags & KOverrideUid3)
+			uid3 = iUid3;
+		SetUids(TUid::Uid(uid1), TUid::Uid(uid2), TUid::Uid(uid3));
+		}
+	if (iOverrideFlags & KOverrideStack)
+		h->iStackSize = iStackSize;
+	if (iOverrideFlags & KOverrideHeapMax)
+		h->iHeapSizeMax = iHeapSizeMax;
+	if (iOverrideFlags & KOverrideHeapMin)
+		h->iHeapSizeMin = iHeapSizeMin;
+	if (iOverrideFlags & KOverridePriority)
+		h->iProcessPriority = (TUint16)iPriority;
+	if (iOverrideFlags & KOverrideCapability)
+		h->iS.iCaps = iS.iCaps;
+	for (TInt i=0; i<SCapabilitySet::ENCapW; ++i)
+		{
+		h->iS.iCaps[i] |= gPlatSecDisabledCaps[i];
+		h->iS.iCaps[i] &= gPlatSecAllCaps[i];
+		}
+
+	if (iOverrideFlags & KOverrideCodePaged)
+		{
+		h->iFlags &= ~KImageCodeUnpaged;
+		h->iFlags |= KImageCodePaged;
+		}
+	if (iOverrideFlags & KOverrideCodeUnpaged)
+		{
+		h->iFlags |= KImageCodeUnpaged;
+		h->iFlags &= ~KImageCodePaged;
+		}
+
+	if ((TInt)h->iUid1 == KExecutableImageUidValue)
+		{
+		if (iOverrideFlags & KOverrideDataPaged)
+			{
+			h->iFlags &= ~KImageDataUnpaged;
+			h->iFlags |= KImageDataPaged;
+			}
+		if (iOverrideFlags & KOverrideDataUnpaged)
+			{
+			h->iFlags |= KImageDataUnpaged;
+			h->iFlags &= ~KImageDataPaged;
+			}
+		}
+
+	switch(gCodePagingOverride)
+		{
+	case EKernelConfigPagingPolicyNoPaging:
+		h->iFlags |= KImageCodeUnpaged;
+		h->iFlags &= ~KImageCodePaged;
+		break;
+	case EKernelConfigPagingPolicyAlwaysPage:
+		h->iFlags |= KImageCodePaged;
+		h->iFlags &= ~KImageCodeUnpaged;
+		break;
+	case EKernelConfigPagingPolicyDefaultUnpaged:
+		if(!(h->iFlags&(KImageCodeUnpaged|KImageCodePaged)))
+			h->iFlags |= KImageCodeUnpaged;
+		break;
+	case EKernelConfigPagingPolicyDefaultPaged:
+		if(!(h->iFlags&(KImageCodeUnpaged|KImageCodePaged)))
+			h->iFlags |= KImageCodePaged;
+		break;
+		}
+	switch(gDataPagingOverride)
+		{
+	case EKernelConfigPagingPolicyNoPaging:
+		h->iFlags |= KImageDataUnpaged;
+		h->iFlags &= ~KImageDataPaged;
+		break;
+	case EKernelConfigPagingPolicyAlwaysPage:
+		h->iFlags |= KImageDataPaged;
+		h->iFlags &= ~KImageDataUnpaged;
+		break;
+	case EKernelConfigPagingPolicyDefaultUnpaged:
+		if(!(h->iFlags&(KImageDataUnpaged|KImageDataPaged)))
+			h->iFlags |= KImageDataUnpaged;
+		break;
+	case EKernelConfigPagingPolicyDefaultPaged:
+		if(!(h->iFlags&(KImageDataUnpaged|KImageDataPaged)))
+			h->iFlags |= KImageDataPaged;
+		break;
+		}
+	
+	h->iCompressionType=KUidCompressionDeflate; // XIP images are always uncompressed
+	
+	Print(ELog,"\t\tcompression format:0x%08x \n", h->iCompressionType);
+	if (gLogLevel & LOG_LEVEL_COMPRESSION_INFO)
+		Print(ELog,"\t\tgCompress:%d, gCompressionMethod: 0x%08x \n", gCompress , gCompressionMethod);
+
+
+	// Check the uids
+
+	if ((TInt)h->iUid1 != KExecutableImageUidValue && (TInt)h->iUid1 != KDynamicLibraryUidValue) 
+		return Print(EError, "First Uid for %s is not KExecutableImageUid or KDynamicLibraryUid\n", iFileName);
+
+	// Set up the sizes and location of the distinct areas
+
+	iHeaderRange.iSize = sizeof(TRomImageHeader);
+
+	iCodeSection.iSize    = h->iTextSize;
+	iCodeSection.iFilePtr = iData + iOrigHdr->iCodeOffset;
+
+	TUint impfmt = h->ImportFormat();
+
+	if (impfmt==KImageImpFmt_PE || impfmt==KImageImpFmt_PE2)
+		{
+		TInt nimports = NumberOfImports();
+		if (nimports)
+			{
+			iImportAddressTableSection.iSize    = (nimports+1)*4;
+			iImportAddressTableSection.iFilePtr = iData + iOrigHdr->iCodeOffset + iOrigHdr->iTextSize;
+			iIATRefs = new TLinAddr*[nimports+1];
+			memcpy(iIATRefs, iImportAddressTableSection.iFilePtr, (nimports+1)*sizeof(TLinAddr*));
+			}
+
+		if (h->iExportDirCount)
+			{
+			iExportDirSection.iSize    = h->iExportDirCount*4;
+			iExportDirSection.iFilePtr = iData + iOrigHdr->iExportDirOffset;
+			}
+
+		// assertion - there's no rdata between IAT and Export Directory
+		TInt rdatasize = h->iCodeSize;		// overall "readonly" size
+		rdatasize -= iCodeSection.iSize;				// text
+		rdatasize -= iImportAddressTableSection.iSize;	// IAT plus trailing 0
+		rdatasize -= iExportDirSection.iSize;			// export data
+
+		if (rdatasize != 0)
+			{
+			Print(EWarning, "Unexpected code in %s: %d bytes unexplained\n", iFileName, rdatasize);
+			// expand the code to cover text+IAT+rdata
+			iCodeSection.iSize = h->iCodeSize - iExportDirSection.iSize;
+			}
+		else
+			{
+			if (USE_IAT_FOR_IMPORTS)
+				iCodeSection.iSize += iImportAddressTableSection.iSize;	// include IAT
+			}
+		}
+	else
+		{
+		// ELF-derived images have no IAT and the export directory is included in the code section
+		iImportAddressTableSection.iSize    = 0;
+		iImportAddressTableSection.iFilePtr = NULL;
+		iExportDirSection.iSize    = 0;
+		iExportDirSection.iFilePtr = NULL;
+		}
+
+	if (h->iDataSize)
+		{
+		iDataSection.iSize    = h->iDataSize;
+		iDataSection.iFilePtr = iData + iOrigHdr->iDataOffset;
+		}
+
+	iRomNode->iRomFile->iTotalDataBss = h->iDataSize + h->iBssSize;
+	iS = h->iS;
+	if (iVersionPresentInName && iVersionInName != h->ModuleVersion())
+		{
+		Print(EError,"%s: Version in name (%d.%d) does not match version in header (%d.%d)\n", iFileName,
+			iVersionInName>>16, iVersionInName&0x0000ffffu, h->ModuleVersion()>>16, h->ModuleVersion()&0x0000ffffu);
+		return KErrGeneral;
+		}
+	return KErrNone;
+	}
+
+TInt TRomNode::NameCpy(char* aDest)
+//
+// Safely copy a file name in the rom entry
+//
+	{
+
+	if ((aDest==NULL) || (iName==NULL))
+		return 0;
+	if (Unicode)
+		{
+		const unsigned char* pSourceByte=iName;
+		unsigned char* pTargetByte=(unsigned char*)aDest;
+		for (;;)
+			{
+			const TUint sourceByte=*pSourceByte;
+			if (sourceByte==0)
+				{
+				*pTargetByte=0;
+				*(pTargetByte+1)=0;
+				break;
+				}
+			if ((sourceByte&0x80)==0)
+				{
+				*pTargetByte=(unsigned char)sourceByte;
+				++pTargetByte;
+				*pTargetByte=0;
+				++pTargetByte;
+				++pSourceByte;
+				}
+			else if ((sourceByte&0xe0)==0xc0)
+				{
+				++pSourceByte;
+				const TUint secondSourceByte=*pSourceByte;
+				if ((secondSourceByte&0xc0)!=0x80)
+					{
+					Print(EError, "Bad UTF-8 '%s'", iName);
+					exit(671);
+					}
+				*pTargetByte=(unsigned char)((secondSourceByte&0x3f)|((sourceByte&0x03)<<6));
+				++pTargetByte;
+				*pTargetByte=(unsigned char)((sourceByte>>2)&0x07);
+				++pTargetByte;
+				++pSourceByte;
+				}
+			else if ((sourceByte&0xf0)==0xe0)
+				{
+				++pSourceByte;
+				const TUint secondSourceByte=*pSourceByte;
+				if ((secondSourceByte&0xc0)!=0x80)
+					{
+					Print(EError, "Bad UTF-8 '%s'", iName);
+					exit(672);
+					}
+				++pSourceByte;
+				const TUint thirdSourceByte=*pSourceByte;
+				if ((thirdSourceByte&0xc0)!=0x80)
+					{
+					Print(EError, "Bad UTF-8 '%s'", iName);
+					exit(673);
+					}
+				*pTargetByte=(unsigned char)((thirdSourceByte&0x3f)|((secondSourceByte&0x03)<<6));
+				++pTargetByte;
+				*pTargetByte=(unsigned char)(((secondSourceByte>>2)&0x0f)|((sourceByte&0x0f)<<4));
+				++pTargetByte;
+				++pSourceByte;
+				}
+			else
+				{
+				Print(EError, "Bad UTF-8 '%s'", iName);
+				exit(674);
+				}
+			}
+		const TInt numberOfBytesInTarget=(pTargetByte-(unsigned char*)aDest); // this number excludes the trailing null-terminator
+		if (numberOfBytesInTarget%2!=0)
+			{
+			Print(EError, "Internal error");
+			exit(675);
+			}
+		return numberOfBytesInTarget/2; // returns the length of aDest (in UTF-16 characters for Unicode, not bytes)
+		}
+	strcpy(aDest,(const char*)iName);
+	return strlen((const char*)iName);
+	}
+
+TInt TRomBuilderEntry::SizeInRom()
+//
+// Approximate the required size of the file when rommed
+//
+	{
+
+	TInt size1, size2;
+	SizeInSections(size1,size2);
+	return size1+size2;
+	}
+
+void TRomBuilderEntry::LoadToRom()
+//
+//
+//
+	{
+	// Copy fixed stuff into iRomImageHeader
+	E32ImageHeaderV* h = iHdr;
+	const TUint KRomFlagMask = KImageDll | KImageNoCallEntryPoint | KImageFixedAddressExe | KImageNmdExpData | KImageDataPagingMask;
+	TUint romflags = h->iFlags & KRomFlagMask;
+	TUint abi = h->ABI();
+	TUint ept = h->EntryPointFormat();
+	TUint impfmt = h->ImportFormat();
+	romflags |= (abi | ept);
+
+	iRomImageHeader = (TRomImageHeader*)iHeaderRange.iImagePtr;
+
+	iRomImageHeader->iUid1              = h->iUid1;
+	iRomImageHeader->iUid2              = h->iUid2;
+	iRomImageHeader->iUid3              = h->iUid3;
+	iRomImageHeader->iUidChecksum       = h->iUidChecksum;
+	iRomImageHeader->iEntryPoint        = iCodeSection.iRunAddr + h->iEntryPoint;
+	iRomImageHeader->iCodeAddress       = iCodeSection.iRunAddr;
+	iRomImageHeader->iDataAddress       = iDataSection.iRunAddr;
+	iRomImageHeader->iCodeSize          = iCodeSection.iSize+iExportDirSection.iSize;
+	iRomImageHeader->iTextSize          = iCodeSection.iSize;
+	iRomImageHeader->iDataSize          = iDataSection.iSize;
+	iRomImageHeader->iBssSize           = h->iBssSize;
+	iRomImageHeader->iTotalDataSize		= iRomNode->iRomFile->iTotalDataBss;
+	iRomImageHeader->iHeapSizeMin       = h->iHeapSizeMin;
+	iRomImageHeader->iHeapSizeMax       = h->iHeapSizeMax;
+	iRomImageHeader->iStackSize         = h->iStackSize;
+	iRomImageHeader->iDllRefTable       = (TDllRefTable*)(iDllRefTableRange.iImageAddr);
+	iRomImageHeader->iExportDirCount    = h->iExportDirCount;
+	iRomImageHeader->iExportDir         = (impfmt==KImageImpFmt_ELF) ?
+											iCodeSection.iRunAddr + (h->iExportDirOffset - h->iCodeOffset)
+											: iExportDirSection.iRunAddr;
+	iRomImageHeader->iS					= h->iS;
+	iRomImageHeader->iToolsVersion		= h->iToolsVersion;
+	iRomImageHeader->iModuleVersion		= h->ModuleVersion();
+	iRomImageHeader->iFlags             = romflags | iRomImageFlags;
+	iRomImageHeader->iPriority          = h->ProcessPriority();
+	iRomImageHeader->iDataBssLinearBase = iDataBssLinearBase;
+	iRomImageHeader->iNextExtension     = 0;
+	iRomImageHeader->iHardwareVariant   = iHardwareVariant;
+	iRomImageHeader->iExceptionDescriptor = 0;
+	TUint32 xd = h->iExceptionDescriptor;
+	if ((xd & 1) && (xd != 0xffffffffu))
+		iRomImageHeader->iExceptionDescriptor = (xd & ~1) + iRomImageHeader->iCodeAddress;
+
+	if (iPreferred)
+		{
+		iRomImageHeader->iModuleVersion	&= ~0xffffu;
+		iRomImageHeader->iModuleVersion	|= 0x8000u;
+		}
+
+	// Relocate the file to reflect the new addresses
+	Relocate();
+
+	// Copy the sections
+	iCodeSection.Load();
+	iExportDirSection.Load();
+	iDataSection.Load();
+	}
+
+void TRomBuilderEntry::Relocate()
+//
+// Relocates the iData to new Code and Data addresses
+//	
+	{
+	TUint codeDelta=iRomImageHeader->iCodeAddress       - iHdr->iCodeBase;
+	TUint dataDelta=iRomImageHeader->iDataBssLinearBase - iHdr->iDataBase;
+
+	// code section (text, IAT, export directory)
+
+	if (iOrigHdr->iCodeRelocOffset)
+		RelocateSection(iData + iOrigHdr->iCodeOffset, iData + iOrigHdr->iCodeRelocOffset,
+			codeDelta, dataDelta, (char*)iCodeSection.iImagePtr, iIATRefs);
+
+	// data section 
+
+	if (iOrigHdr->iDataRelocOffset)
+		RelocateSection(iData + iOrigHdr->iDataOffset, iData + iOrigHdr->iDataRelocOffset, 
+			codeDelta, dataDelta, (char*)iDataSection.iImagePtr, iIATRefs);
+
+	// export directory (only for PE-derived files)
+	if (iExportDirSection.iSize)
+		{
+		TLinAddr* ptr=(TLinAddr*)(iData + iOrigHdr->iExportDirOffset);
+
+		TLinAddr textStart = iHdr->iCodeBase;
+		TLinAddr textFinish = textStart + iHdr->iTextSize;
+		TLinAddr dataStart = textStart + iHdr->iCodeSize;
+		TLinAddr dataFinish = dataStart + iHdr->iDataSize + iHdr->iBssSize;
+	 
+		TInt i;
+		for (i=0; i<iHdr->iExportDirCount; i++, ptr++)
+			{
+			TLinAddr data=*ptr+textStart;
+			if ((data>=textStart) && (data<textFinish))
+				*ptr=data+codeDelta; // export something from the text/rdata section
+			else if ((data>=dataStart) && (data<dataFinish))
+				*ptr=data+dataDelta; // export some data or bss item
+			else
+				{
+				Print(EWarning, "Export directory in %s: item %d -> %08x, which is not text or data!\n", iFileName, i, data);
+				*ptr=0x13;	// unlucky for some
+				}
+			}
+		}
+
+	// Replace absent exports with 0
+	TLinAddr* ptr = (TLinAddr*)(iData + iOrigHdr->iExportDirOffset);
+	TInt i;
+	for (i=0; i<iHdr->iExportDirCount; i++, ptr++)
+		{
+		if ( !( iExportBitMap[i>>3] & (1u << (i&7)) ) )
+			*ptr = 0;
+		}
+
+	// Update E32ImageHeader, in case we want to do this process again later
+
+	iHdr->iCodeBase += codeDelta;
+	iHdr->iDataBase += dataDelta;
+	}
+
+
+
+
+TInt TRomBuilderEntry::FixupImports(E32Rom& aRom)
+//
+// Modify the import stubs to point directly into the export directory of the corresponding DLLs
+// using the back pointers captured by detecting relocations referring to the Import Address Table
+// The old-style Import Address Table behaviour can be retained by specifying the "keepIAT" attribute.
+//
+	{
+	if (iHdr->iImportOffset == 0)
+		return KErrNone;	// nothing to do
+
+	
+
+	TUint impfmt = iHdr->ImportFormat();
+	TUint my_abi = iHdr->ABI();
+	TRACE(TIMPORT,Print(ELog,"%40s[%08x] flags %08x\n",iFileName,(TUint)iHardwareVariant,iHdr->iFlags));
+	const E32ImportSection* importsection = (const E32ImportSection*)(iData + iOrigHdr->iImportOffset);
+	TLinAddr **iatRef=iIATRefs;
+	TAddressRange iatRange = iCodeSection;
+	iatRange.Move(iHdr->iTextSize);
+	if (USE_IAT_FOR_IMPORTS)
+		{
+		if (impfmt == KImageImpFmt_ELF)
+			return Print(EError, "Can't retain IAT for %s since it never existed\n", iFileName);
+		if (iRomSectionNumber==0 && aRom.iObey->iSectionPosition!=-1)
+			return Print(EError, "Can't retain IAT for %s in first section - not yet implemented\n", iFileName);
+		Print(ELog, "%s has IAT at %08x\n", iFileName, iatRange.iRunAddr);
+		}
+	const E32ImportBlock* b = (const E32ImportBlock*)(importsection + 1);
+	TInt i = iHdr->iDllRefTableCount;
+	TInt numberOfImports=0;
+	TUint *impOrdinalP = (TUint*)iImportAddressTableSection.iFilePtr;	// points to original IAT in file
+	while (i-->0)
+		{
+		char* dllname = (char*)importsection + b->iOffsetOfDllName;
+		TDllFindInfo find_info(dllname, this);
+		TBool fallback;
+		TRomNode* romnode = aRom.FindImageFileByName(find_info, EFalse, fallback);
+		if (!romnode)
+			{
+			Print(EError, "Can't fixup imports for\n\t%s\nbecause\n\t%s\nis not in rom.\n",
+						 (const char*)TModuleName(this), (const char*)TModuleName(find_info));
+			aRom.FindImageFileByName(find_info, ETrue, fallback);
+			return KErrGeneral;
+			}
+		TRomFile* dll=romnode->iRomFile;
+		TRACE(TIMPORT,Print(ELog,"%s importing from %s\n", (const char*)TModuleName(this), (const char*)TModuleName(find_info)));
+		if (romnode->ABI() != my_abi)
+			{
+			Print(EWarning, "File %s links to %s with different ABI\n", (const char*)TModuleName(this), (const char*)TModuleName(find_info));
+			}
+		TInt j;
+		numberOfImports += b->iNumberOfImports;
+		if (impfmt==KImageImpFmt_ELF)
+			impOrdinalP = (TUint*)(b->Imports());	// for ELF must look in import block
+		char* codeBase = (char*)iCodeSection.iImagePtr;
+		for (j=0; j<b->iNumberOfImports; j++)
+			{
+			TLinAddr exportAddr = 0xdeadbeef;
+			TLinAddr exporter = 0xdeadbeef;
+			TUint impOrdinal = *impOrdinalP;
+			TUint impOffset = 0;
+			if (impfmt==KImageImpFmt_ELF)
+				{
+				TUint impd = *(TUint*)(codeBase + impOrdinal);
+				impOrdinal = impd & 0xffff;
+				impOffset = impd >> 16;
+				}
+			TRACE(TIMPORT,Print(ELog,"Ordinal %d\n", impOrdinal));
+			TInt ret=dll->AddressFromOrdinal(exporter, exportAddr, impOrdinal);
+			TRACE(TIMPORT,Print(ELog,"export %08x exporter %08x\n",exportAddr,exporter));
+			if (ret!=KErrNone)
+				{
+				Print(EError, "%s wants ordinal %d from %s which only exports %d functions\n",
+					iFileName, impOrdinal, 	(const char*)TModuleName(find_info), dll->ExportDirCount());
+				exporter=0x13;	// unlucky for some...
+				exportAddr=0x13;
+				}
+			else if (exportAddr == 0 && impOrdinal != 0)
+				{
+				Print(EError, "%s wants ordinal %d from %s which is absent\n",
+					iFileName, impOrdinal, 	(const char*)TModuleName(find_info));
+				exporter=0x13;	// unlucky for some...
+				exportAddr=0x13;
+				}
+			if (USE_IAT_FOR_IMPORTS)
+				{
+				// must be PE-derived
+				*iatRef=(unsigned long*)exportAddr; //iatRange.iRunAddr;					// point into IAT ...
+				*(TLinAddr*)(iatRange.iImagePtr)=exportAddr;	// ... which has a copy of the export
+				iatRange.Move(sizeof(TLinAddr));
+				iatRef++;
+				}
+			else if (impfmt==KImageImpFmt_PE || impfmt==KImageImpFmt_PE2)
+				{
+				**iatRef=exporter;	// point directly into export directory
+				iatRef++;
+				}
+			else
+				{
+				// ELF-derived
+				*(TUint*)(codeBase + *impOrdinalP) = exportAddr + impOffset;
+				}
+			impOrdinalP++;
+			}
+		b = b->NextBlock(impfmt);
+		}
+	iImportCount=numberOfImports;
+	return KErrNone;
+	}
+
+const char* KF32ProcessName="efile.exe";
+const char* KWservProcessName="ewsrv.exe";
+const char* KFbservProcessName="fbserv.exe";
+const char* KMdaSvrProcessName="mediaserverstub.exe";
+const char* KC32ProcessName="c32exe.exe";
+
+const char* TRomBuilderEntry::GetDefaultAttachProcess()
+//
+// Work out the attach process from the file extension
+//
+// Only need to handle DLLs which run in F32, WSERV, FBSERV, MEDIASVR, C32
+// F32:		FSY FXT
+// WSERV:	ANI
+// FBSERV:
+// MDASVR:	MDA
+// C32:		CSY, PRT, TSY, AGT, AGX
+//
+	{
+	const char* s=(const char*)iName;
+	TInt l=strlen(s);
+	if (l<4 || s[l-4]!='.')
+		return NULL;
+	s+=(l-3);
+	if (stricmp(s,"fsy")==0)
+		return KF32ProcessName;
+	if (stricmp(s,"fxt")==0)
+		return KF32ProcessName;
+	if (stricmp(s,"ani")==0)
+		return KWservProcessName;
+	if (stricmp(s,"mda")==0)
+		return KMdaSvrProcessName;
+	if (stricmp(s,"csy")==0)
+		return KC32ProcessName;
+	if (stricmp(s,"prt")==0)
+		return KC32ProcessName;
+	if (stricmp(s,"tsy")==0)
+		return KC32ProcessName;
+	if (stricmp(s,"agt")==0)
+		return KC32ProcessName;
+	if (stricmp(s,"agx")==0)
+		return KC32ProcessName;
+	return NULL;
+	}
+
+TInt TRomBuilderEntry::FindAttachProcess(E32Rom& aRom)
+	{
+	if (iRomImageFlags & (KRomImageFlagVariant|KRomImageFlagExtension|KRomImageFlagDevice))
+		return KErrNone;
+	const char* attp_name=(const char*)iProcessName;
+	int nd=0;
+	if (attp_name)
+		nd=*attp_name++;
+	else
+		attp_name=GetDefaultAttachProcess();
+	if (!attp_name)
+		return KErrNone;
+	TInt i;
+	TUint my_abi = iHdr->ABI();
+	TUint abi = 0;
+	if (nd)
+		{
+		// path search
+		TRomNode* rn=aRom.iObey->iRootDirectory;
+		for (; nd; --nd)
+			{
+			rn=rn->FindInDirectory((TText*)attp_name);
+			if (!rn)
+				{
+				Print(EError, "Invalid attach process name element %s\n", attp_name);
+				return KErrGeneral;
+				}
+			attp_name+=(strlen(attp_name)+1);
+			}
+		iRomNode->iRomFile->iAttachProcess=rn->iRomFile;
+		abi = iRomNode->iRomFile->iAttachProcess->ABI();
+		}
+	else
+		{
+		// filename only search
+		for (i=0; i<aRom.iObey->iNumberOfPeFiles; i++)
+			{
+			TRomBuilderEntry* e=aRom.iPeFiles[i];
+			abi = e->iHdr->ABI();
+			if (stricmp((const char*)e->iName, attp_name)==0)
+				{
+				if (iRomNode->iRomFile->iAttachProcess)
+					{
+					Print(EError, "Ambiguous attach process name %s\n", attp_name);
+					return KErrGeneral;
+					}
+				iRomNode->iRomFile->iAttachProcess=e->iRomNode->iRomFile;
+				}
+			}
+		}
+	if (abi != my_abi)
+		{
+		Print(EWarning, "File %s: Attach process has different ABI\n", (const char*)TModuleName(this));
+		}
+	return KErrNone;
+	}
+
+TInt TRomBuilderEntry::BuildDependenceGraph(E32Rom& aRom)
+//
+// Fill in the iDeps
+//
+	{
+	TBool is_kernel = ((iRomImageFlags & KRomImageFlagsKernelMask) != 0);
+	TRomNode* rn = iRomNode;
+	TRomFile* rf = rn->iRomFile;
+	TUint my_abi = iHdr->ABI();
+	TUint impfmt = iHdr->ImportFormat();
+	rf->iNumDeps = iHdr->iDllRefTableCount;
+	if (IsDll() && aRom.iObey->iMemModel!=E_MM_Flexible && aRom.iObey->iMemModel!=E_MM_Multiple && (iHdr->iDataSize!=0 || iHdr->iBssSize!=0))
+		{
+		TInt r=FindAttachProcess(aRom);
+		if (r!=KErrNone)
+			return r;
+		if (aRom.iObey->iMemModel==E_MM_Moving)
+			{
+			if (rf->iAttachProcess && !(rf->iAttachProcess->RomImageFlags() & KRomImageFlagFixedAddressExe))
+				rf->iAttachProcess=NULL;	// ignore attach process if not fixed
+			}
+		}
+	TRomFile* attp=rf->iAttachProcess;
+	if (attp)
+		++rf->iNumDeps;		// extra implicit dependence on process
+	if (rf->iNumDeps)
+		{
+		rf->iDeps=new TRomFile* [rf->iNumDeps];
+		memset(rf->iDeps, 0, rf->iNumDeps*sizeof(TRomFile*));
+		}
+
+	TInt err = KErrNone;
+	const E32ImportSection* importSection = (const E32ImportSection*)(iData + iOrigHdr->iImportOffset);
+	const E32ImportBlock* block = (const E32ImportBlock*)(importSection + 1);
+	TInt i;
+	for (i=0; i<iHdr->iDllRefTableCount; i++, block = block->NextBlock(impfmt), TRACE(TIMPORT,Print(ELog,"DllRef/dll done\n")) )
+		{
+		char* dllname = (char*)importSection + block->iOffsetOfDllName;
+		TDllFindInfo find_info(dllname, this);
+		TBool fallback;
+		TRomNode* romnode = aRom.FindImageFileByName(find_info, EFalse, fallback);
+		if (!romnode)
+			{
+			Print(EError, "Can't build dependence graph for\n\t%s\nbecause\n\t%s\nis not in rom.\n",
+						 (const char*)TModuleName(this), (const char*)TModuleName(find_info));
+			aRom.FindImageFileByName(find_info, ETrue, fallback);
+			err = KErrNotFound;
+			continue;
+			}
+		if (fallback)
+			{
+			Print(EWarning, "File %s links to %s\n\twhich is not in ROM. Version 1.0 of latter used instead.\n",
+					 (const char*)TModuleName(this), (const char*)TModuleName(find_info));
+			}
+		TRACE(TIMPORT,Print(ELog,"%s links to %s\n", (const char*)TModuleName(this), (const char*)TModuleName(find_info)));
+		TRACE(TIMPORT,Print(ELog,"Resolves to %s\n", (const char*)TModuleName(*romnode)));
+		TBool dep_is_kernel = ((romnode->iRomFile->RomImageFlags() & KRomImageFlagsKernelMask) != 0);
+		if (dep_is_kernel != is_kernel)
+			{
+			if (is_kernel)
+				{
+				Print(EError, "Kernel side executable\n\t%s\nlinks to user side executable\n\t%s\n",
+									 (const char*)TModuleName(this), (const char*)TModuleName(find_info));
+				}
+			else
+				{
+				Print(EError, "User side executable\n\t%s\nlinks to kernel side executable\n\t%s\n",
+									 (const char*)TModuleName(this), (const char*)TModuleName(find_info));
+				}
+			err = KErrGeneral;
+			continue;
+			} 
+		// prevent the situiation which importer is primary, variant or extension, exporter is device
+		if (is_kernel && !Device() && romnode->iRomFile->iRbEntry->Device())	
+			{
+			Print(EError, "Kernel/variant/extension\n\t%s\nlinks to non-extension LDD/PDD\n\t%s\n",
+							(const char*)TModuleName(this), (const char*)TModuleName(find_info));
+			err = KErrGeneral;
+			continue;
+			}
+		if (romnode->ABI() != my_abi)
+			{
+			Print(EWarning, "File %s links to %s with different ABI\n", (const char*)TModuleName(this), (const char*)TModuleName(find_info));
+			}
+		rf->iDeps[i]=romnode->iRomFile;
+		const SSecurityInfo& s1 = iHdr->iS;
+		const SSecurityInfo& s2 = romnode->iRomFile->SecurityInfo();
+		TInt r = CompareCapabilities(s1.iCaps, s2.iCaps, iFileName, dllname);
+		if (r != KErrNone)
+			err = r;
+		if (romnode->iRomFile==attp)
+			attp=NULL;
+		}
+
+	if (attp)
+		rf->iDeps[rf->iNumDeps-1]=attp;
+	TRACE(TIMPORT,Print(ELog,"BuildDep done all\n"));
+	return err;
+	}
+
+TInt TRomBuilderEntry::ResolveDllRefTable(E32Rom& aRom)
+//
+// Fill in the DLLRefTable
+//
+	{
+	TRomNode* rn = iRomNode;
+	TRomFile* rf = rn->iRomFile;
+	(void)aRom;
+	if (rf->iNumPDeps==0)
+		return KErrNone;	// nothing to do
+
+	TDllRefTable* dllRefTable=(TDllRefTable*)(iDllRefTableRange.iImagePtr);
+
+	TUint16 flags=0;
+
+	dllRefTable->iFlags=flags;
+	dllRefTable->iNumberOfEntries=(TUint16)rf->iNumPDeps;
+
+	TInt err = KErrNone;
+	TInt i;
+	for (i=0; i<rf->iNumPDeps; i++)
+		{
+		dllRefTable->iEntry[i]=(TRomImageHeader*)rf->iPDeps[i]->iAddresses.iRunAddr;
+		}
+	TRACE(TIMPORT,Print(ELog,"DllRef done all\n"));
+	return err;
+	}
+
+void TRomBuilderEntry::DisplaySize(TPrintType aWhere)
+	{
+	if(gLogLevel > DEFAULT_LOG_LEVEL){
+
+		if(gLogLevel & LOG_LEVEL_FILE_DETAILS)
+		{
+			// More detailed information about file name in .
+			TBool aIgnoreHiddenAttrib = ETrue;
+			TInt aLen = iRomNode->FullNameLength(aIgnoreHiddenAttrib);
+			char * aBuf = new char[aLen+1];
+			iRomNode->GetFullName(aBuf, aIgnoreHiddenAttrib);
+			if (iPatched|iRomNode->iHidden)
+				Print(aWhere, "%s\t%d\t%s\t%s\n", iFileName, SizeInRom(), iPatched?"patched":"hidden", aBuf);
+			else
+				Print(aWhere, "%s\t%d\t%s\n", iFileName, SizeInRom(), aBuf);
+			delete[] aBuf;
+		}
+	}
+	else{
+		if (iPatched|iRomNode->iHidden)
+			Print(aWhere, "%s\t%d\t%s\n", iFileName, SizeInRom(), iPatched?"patched":"hidden");
+		else
+			Print(aWhere, "%s\t%d\n", iFileName, SizeInRom());
+	}
+	}
+
+/**
+ * TRomFile iRomEntry is a linked list through the various
+ * distinct TRomEntry objects which may exist for the associated file
+ * due to variant processing / aliasing
+ */
+
+void TRomFile::SetRomEntry(TRomEntry* aEntry)
+	{
+	// Need to add to the tail of the list, for backwards compatibility
+	// Adding to the front of the list changes the iPrimary and iSecondary
+	// values in the TRomHeader when multiple variants are present
+
+	if (iFinal)
+		return;			// address already established so no fixup required
+	if (iRomEntry==0)
+		{
+		iRomEntry = aEntry;
+		return;
+		}
+	TRomEntry* entry = iRomEntry;
+	while (entry->iAddressLin != 0)
+		entry = (TRomEntry*)entry->iAddressLin;
+	entry->iAddressLin = (TLinAddr)aEntry;
+	}
+
+void TRomBuilderEntry::FixupRomEntries(TInt aSize)
+	{
+	if (iPatched)
+		return;		// patched files don't appear in the ROM file system
+
+	iRomNode->Finalise(aSize);
+	}
+
+/**
+ * TRomNode::Finalise updates the associated TRomEntry objects with the final size and
+ * linear address information supplied by the TRomBuilderEntry. It also stores the
+ * summary information for resolving static linkages to this executable (if appropriate)
+ * and adjusts the TRomNodes so that they are identical to the ones which would be 
+ * obtained by walking the directory structure in an existing ROM.
+ */
+void TRomNode::Finalise(TInt aSize)
+	{
+	TRACE(TIMPORT,Print(ELog,"TRomNode %s Finalise %08x %d\n", (const char*)TModuleName(*this), iRomFile->iFinal));
+	iRomFile->Finalise(aSize);
+	}
+
+/**
+ * TRomFile::Finalise updates the associated TRomEntry objects with the final size and
+ * linear address information supplied by the TRomBuilderEntry. It also stores the
+ * summary information for resolving static linkages to this executable (if appropriate)
+ * and adjusts the TRomFiles so that they are identical to the ones which would be 
+ * obtained by walking the directory structure in an existing ROM.
+ */
+void TRomFile::Finalise(TInt aSize)
+	{
+	if (iFinal)
+		return;
+	TLinAddr ra = iRbEntry->iHeaderRange.iImageAddr;
+	TRomEntry* entry = iRomEntry;
+	while (entry)
+		{
+		TRomEntry* next = (TRomEntry*)entry->iAddressLin;
+		entry->iSize = aSize;
+		entry->iAddressLin = ra;
+		entry = next;
+		}
+	iAddresses = iRbEntry->iHeaderRange;
+	iAddresses.iSize = aSize;
+	if ((!iRbEntry->iResource) && (!iRbEntry->HCRDataFile()))
+		{
+		iExportDir = iAddresses;
+		iExportDir.iSize = iRbEntry->iHdr->iExportDirCount * sizeof(TLinAddr);
+		iExportDir.Move(RomImgHdr()->iExportDir - iAddresses.iRunAddr);
+		}
+	iRbEntry = 0;
+	iFinal = ETrue;
+	}
+
+void TRomBuilderEntry::SetRomNode(TRomNode* aNode)
+	{
+	iRomNode = aNode;
+	}
+
+
+void TImageSection::Load() const
+	{ 
+	if (iSize && iImagePtr && iFilePtr) 
+		memcpy(iImagePtr,iFilePtr,iSize); 
+	}
+
+/**
+ * TDllExportInfo is the information about a DLL which is necessary to
+ * resolve a static link to that DLL. It all comes from the TRomImageHeader,
+ * as it would with a static linkage resolved at runtime.
+ */
+TRomFile::TRomFile()
+	{
+	memset(this, 0, sizeof(TRomFile));
+	iRefCount = 1;
+	iHwvd = KVariantIndependent;
+	iDataBssOffsetInExe = -1;
+	}
+
+TRomFile::~TRomFile()
+	{
+	delete[] iDeps;
+	delete[] iPDeps;
+	}
+
+TInt TRomFile::AddressFromOrdinal(TLinAddr& aEDataAddr, TLinAddr& aExport, TUint aOrdinal)
+//
+// Get the export address of symbol aOrdinal
+//
+	{
+	if(aOrdinal == 0)
+	{
+		aEDataAddr = iExportDir.iRunAddr -1 ;
+		aExport = *(TLinAddr*)((TLinAddr*)iExportDir.iImagePtr - 1);
+		if((TInt)aExport == ExportDirCount()) {
+			aEDataAddr = 0;
+			aExport = 0;
+		}
+		return KErrNone;
+	}
+	
+	TUint index = aOrdinal - KOrdinalBase;
+	if (index >= (TUint)ExportDirCount())
+		return KErrNotFound;
+	aEDataAddr = iExportDir.iRunAddr + index * sizeof(TLinAddr);
+	aExport = ((TLinAddr*)iExportDir.iImagePtr)[index];
+	return KErrNone;
+	}
+
+
+bool TRomFile::ComputeSmpSafe(const TRomBuilderEntry* aRbEntry)
+	{
+	// A component is SMP safe if:
+	//
+	// 1. It's E32 image file is marked as SMP safe (MMP keyword SMPSAFE).
+	// 2. All components it links to are SMP safe.
+	//
+	// This implies a recursive dependency structure.
+
+	if (iSmpInfo.isInit)
+		{
+		// We have already visited this node.
+		return iSmpInfo.isSafe;
+		}
+
+	// Mark this node as "active," meaning that we are currently evaluating it. We
+	// use this to detect cycles in the dependency graph.
+	iSmpInfo.isActive = 1;
+
+	iSmpInfo.isSafe = 1;
+
+	// Have we found any cycle in the graph?
+	bool is_cycle = 0;
+
+	if ( aRbEntry->iOrigHdr->iFlags & KImageSMPSafe )
+		{
+		// OK, the E32 file for this node is marked as SMPSAFE. Now we need to check
+		// that all nodes we depend on are SMP safe.
+
+		for (int i = 0; i < iNumDeps; i++)
+			{
+			TRomFile* e = iDeps[i];
+
+			assert(this != e);
+
+			if (e->iSmpInfo.isActive)
+				{
+				is_cycle = 1;
+				}
+			else if ( ! e->ComputeSmpSafe(e->iRbEntry) )
+				{
+				if (gLogLevel & LOG_LEVEL_SMP_INFO)
+					{
+					Print(ELog,"SMP-unsafe: %s: links to unsafe component %s.\n",
+							aRbEntry->iBareName , e->iRbEntry->iBareName);
+					}
+
+				iSmpInfo.isSafe = 0;
+				break;
+				}
+			}
+		}
+	else
+		{
+		if (gLogLevel & LOG_LEVEL_SMP_INFO)
+			{
+			Print(ELog,"SMP-unsafe: %s: MMP keyword SMPSAFE not used.\n", aRbEntry->iBareName);
+			}
+
+		iSmpInfo.isSafe = 0;
+		}
+
+	iSmpInfo.isActive = 0;
+
+	if (!iSmpInfo.isSafe || !is_cycle)
+		{
+		iSmpInfo.isInit = 1;
+		}
+
+	return iSmpInfo.isSafe;
+	}
+
+/**
+ * TRomNode::CopyDirectory performs a deep copy of the TRomNode structure
+ */
+TRomNode* TRomNode::CopyDirectory(TRomNode*& aLastExecutable, TRomNode* aParent)
+	{
+	if (iHidden && iChild==0)
+		{
+		// Hidden file - do not copy (as it wouldn't be visible in the ROM filestructure)
+		if (iSibling)
+			return iSibling->CopyDirectory(aLastExecutable, aParent);
+		else
+			return 0;
+		}
+
+	TRomNode* copy = new TRomNode(*this);
+	copy->iParent = aParent;
+	if(aLastExecutable==0)
+		aLastExecutable = copy;		// this must be the root of the structure
+
+	// recursively copy the sub-structures
+	if (iChild)
+		copy->iChild = iChild->CopyDirectory(aLastExecutable, copy);
+	if (iSibling)
+		copy->iSibling = iSibling->CopyDirectory(aLastExecutable, aParent);
+
+	if (copy->iAtt & KEntryAttXIP)
+		AddExecutableFile(aLastExecutable,copy);
+	return copy;
+	}
+
+TInt TRomNode::Alias(TRomNode* aNode, TRomNode*& aLastExecutable)
+	{
+	if (aNode->iAtt & KEntryAttXIP)
+		AddExecutableFile(aLastExecutable,this);
+	return SetBareName();
+	}
+
+TInt TRomNode::Rename(TRomNode *aOldParent, TRomNode* aNewParent, TText* aNewName)
+	{
+	aOldParent->Remove(this);
+	aNewParent->Add(this);
+	free(iName);
+	iName = (TText*)NormaliseFileName((const char*)aNewName);
+	return SetBareName();
+	}
+
+TInt TRomNode::SetBareName()
+	{
+	free(iBareName);
+	TUint32 uid;
+	TUint32 vin;
+	TUint32 flg;
+	iBareName = SplitFileName((const char*)iName, uid, vin, flg);
+	if (uid || (flg & EUidPresent))
+		return KErrBadName;
+	if (strchr(iBareName, '{') || strchr(iBareName, '}'))
+		return KErrBadName;
+	if ((iAtt & KEntryAttXIP) && (flg & EVerPresent))
+		{
+		TUint32 ver = iRomFile->ModuleVersion();
+		if (ver != vin)
+			return KErrArgument;
+		}
+	return KErrNone;
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/rombuild/r_mromimage.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,47 @@
+// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#ifndef __R_MROMIMAGE_H__
+#define __R_MROMIMAGE_H__
+
+class TRomNode;
+
+/**
+class MRomImage
+MRofsImage is the interface used to access information held within an Core ROM image.
+This interface used to remove the dependency between processing of 
+extensions and kernel commands in the obey file
+
+@internalComponent
+@released
+*/
+class MRomImage
+{
+public:
+	virtual TRomNode* RootDirectory() = 0;
+	virtual TRomNode* CopyDirectory(TRomNode*& aSourceDirectory)=0;
+	virtual TText* RomFileName() = 0;
+	virtual TUint32 RomBase() = 0;
+	virtual TUint32 RomSize() = 0;
+	virtual TVersion Version() = 0;
+	virtual TInt64 Time() = 0;
+	virtual TUint32 CheckSum() = 0;
+	virtual TUint32 DataRunAddress() = 0;
+	virtual TUint32 RomAlign() = 0;
+
+	virtual ~MRomImage() { };
+};
+
+#endif //__R_MROMIMAGE_H__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/rombuild/r_rom.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,588 @@
+// Copyright (c) 1995-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#ifndef __R_ROM_H__
+#define __R_ROM_H__
+
+#include "e32image.h"
+#include <e32rom.h>
+
+#if defined(__MSVCDOTNET__) || defined(__TOOLS2__)
+#include <fstream>
+#else //!__MSVCDOTNET__
+#include <fstream.h>
+#endif //__MSVCDOTNET__
+
+#include "h_utl.h"
+#include "r_mromimage.h"
+#include <malloc.h>
+
+
+//
+const TUint KRomWrapperSize = 0x100;
+const TUint KRomNameSize = 16;
+//
+const TUint KOverrideStack = 0x01;
+const TUint KOverrideHeapMin = 0x02;
+const TUint KOverrideHeapMax = 0x04;
+const TUint KOverrideAddress = 0x08;
+const TUint KOverrideUid1 = 0x10;
+const TUint KOverrideUid2 = 0x20;
+const TUint KOverrideUid3 = 0x40;
+const TUint KOverrideCallEntryPoint = 0x80;
+const TUint KOverrideNoCallEntryPoint = 0x100;
+const TUint KOverridePriority = 0x200;
+const TUint KOverrideStackReserve = 0x400;
+const TUint KOverrideKeepIAT = 0x800;
+const TUint KOverrideCapability = 0x1000;
+const TUint KOverrideCodeUnpaged = 0x2000;
+const TUint KOverrideCodePaged = 0x4000;
+const TUint KOverrideDataUnpaged = 0x8000;
+const TUint KOverrideDataPaged = 0x10000;
+const TUint KOverrideHCRData = 0x20000 ;
+
+enum TKernelModel {ESingleKernel, EMultipleKernels};
+enum TMemModel {E_MM_Moving, E_MM_Direct, E_MM_Multiple, E_MM_Flexible};
+
+const TUint KVariantIndependent = 0x01000000;
+
+extern TInt CompareCapabilities(const TUint32* aSubCaps, const TUint32* aSuperCaps, const char* aSubName, const char* aSuperName);
+
+class THardwareVariant
+	{
+public:
+	enum THardwareVariantOrder
+		{
+		EUnordered=0,
+		ELess=1,
+		EEqual=2,
+		EGreater=4,
+		};
+public:
+	THardwareVariant() {iVariant=KVariantIndependent;}
+	THardwareVariant(TUint aVariant) {iVariant=aVariant;}
+	operator TUint() const {return iVariant;}
+	TBool MutuallyExclusive(THardwareVariant aHardwareVariant) const;
+	TInt Compare(THardwareVariant aHardwareVariant) const;
+	TBool operator<(THardwareVariant a) const { return ((Compare(a)&ELess)!=0); }
+	TBool operator==(THardwareVariant a) const { return ((Compare(a)&EEqual)!=0); }
+	TBool operator>(THardwareVariant a) const { return ((Compare(a)&EGreater)!=0); }
+	TBool operator<=(THardwareVariant a) const { return ((Compare(a)&(ELess|EEqual))!=0); }
+	TBool operator>=(THardwareVariant a) const { return ((Compare(a)&(EGreater|EEqual))!=0); }
+	TBool IsIndependent() const {return Layer()<=3;}
+	TBool IsCpu() const {return Parent()==3; }
+	TBool IsVariant() const;
+	TUint32 ReturnVariant() const {return iVariant;} 
+	TUint Layer() const {return iVariant>>24;}
+	TUint Parent() const {return (iVariant>>16)&0xff;}
+	TUint VMask() const {return iVariant&0xffff;}
+private:
+	TUint32 iVariant;
+	};
+
+class TRomLoad
+	{
+public:
+	TText name[KRomNameSize];
+	TText versionStr[4];
+	TText buildNumStr[4];
+	TUint romSize;
+	TUint wrapSize;
+	};
+//
+
+// representation of a relocation record for areas.
+class TReloc
+	{
+public:
+	TInt iLength;
+	TUint iSrc;
+	TUint iDest;
+	};
+
+// thing for tracking the various addresses at which to find something
+
+class TAddressRange
+	{
+public:
+	TAddressRange();
+
+	void Append(TAddressRange& aRange);
+	void Extend(TInt aOffset);
+	void Move(TInt aOffset);
+
+public:
+	TAny*	iImagePtr;			// data in the ROM image buffer
+	TUint32	iImageAddr;			// address in the ROM image 
+	TUint32 iRunAddr;			// runtime address, usually the same as the iImageAddr
+	TUint   iSize;				// size of this section
+	};
+
+
+class TImageSection : public TAddressRange
+	{
+public:
+	TImageSection() : TAddressRange(), iFilePtr(0) {}
+
+	TAny* iFilePtr;		// original data in the E32Image file
+
+	void Load() const;	// copy the file data into the image, if needed
+	};
+
+//
+const TUint KFillSize = KRomWrapperSize-sizeof(TRomLoad);
+class CObeyFile;
+class TRomLoaderHeader
+	{
+public:
+	void SetUp(CObeyFile *aObey);
+private:
+	TRomLoad r;
+	TUint8 filler[KFillSize];
+	};
+//
+class TRomBuilderEntry;
+class TRomNode;
+class TRomFile;
+class TDllFindInfo
+	{
+public:
+	TDllFindInfo(const char* aImportName, const TRomBuilderEntry* aEntry);
+	~TDllFindInfo();
+public:
+	const char* iBareName;		// filename+extension to find, not including path UID or version
+	TUint32 iUid3;				// requested UID3 - 0 if don't care
+	TUint32 iModuleVersion;		// requested version
+	TUint32 iHwVariant;			// requested hardware variant
+	};
+
+class TAutoFree
+	{
+public:
+	TAutoFree(void* aPtr) {iPtr=aPtr;}
+	~TAutoFree() {free(iPtr);}
+private:
+	void* iPtr;
+	};
+
+#define AUTO_FREE(p)	TAutoFree _auto_free_##p(p)
+
+class TModuleName
+	{
+public:
+	TModuleName(const TRomBuilderEntry* aEntry);
+	TModuleName(const TDllFindInfo& aInfo);
+	TModuleName(const TRomNode& aNode);
+	TModuleName(const TRomFile& aFile, const TRomNode* aRootDir);
+	~TModuleName();
+	operator const char* () {return iName;}
+private:
+	char* iName;
+	};
+
+// class representing a file (or directory) in the ROM
+class TRomFile
+	{
+public:
+	TRomFile();
+	~TRomFile();
+	TInt AddressFromOrdinal(TLinAddr& aEDataAddr,TLinAddr& aExport, TUint aOrdinal);
+	void Finalise(TInt aSize);
+
+	void Close() { if (--iRefCount<=0) delete this; };
+	void Open() {iRefCount++; };
+
+	TInt MarkDeps();
+	TInt FindRouteTo(TRomFile* aDest, TRomFile** aStack, TInt aIndex);
+	TRomEntry* RomEntry() const {return iRomEntry;}
+	void SetRomEntry(TRomEntry* aEntry);
+
+	TAddressRange iAddresses;
+
+	inline TRomImageHeader* RomImgHdr() const
+		{return (TRomImageHeader*)iAddresses.iImagePtr;}
+
+	TAddressRange iExportDir;
+	TRomBuilderEntry* iRbEntry;	// only until Layout stage
+	TBool iDir;
+	TBool iFinal;
+	THardwareVariant iHwvd;
+	TRomEntry* iRomEntry;		// in ROM image buffer
+	friend class FileEntry;
+
+	TInt iDataBssOffsetInExe;	// for allocating DLL data in process data section
+
+	// dependence graph
+	TInt iNumDeps;
+	TRomFile** iDeps;
+	TInt iNumPDeps;
+	TRomFile** iPDeps;
+	TInt iMark;
+	TRomFile* iAttachProcess;
+	TInt iTotalDataBss;
+
+	// Data used when computing SMP properties.
+	struct TSmpInfo
+		{
+		TSmpInfo() : isInit(0), isActive(0), isSafe(0) {}
+		bool isInit;
+		bool isActive;
+		bool isSafe;
+		} iSmpInfo;
+
+	bool ComputeSmpSafe(const TRomBuilderEntry*);
+public:
+	TUint32 Uid3() const;
+	TUint32 ModuleVersion() const;
+	THardwareVariant HardwareVariant() const;
+	TUint32 ABI() const;
+	TInt ExportDirCount() const;
+	TUint32 RomImageFlags() const;
+	TLinAddr DataBssLinearBase() const;
+	const SSecurityInfo& SecurityInfo() const;
+private:
+	TInt iRefCount;
+	};
+//
+class TRomBuilderEntry;
+class RomFileStructure;
+
+// class representing a directory entry in the ROM file system
+class TRomNode
+	{
+public:
+	TRomNode(const TText* aName, TRomBuilderEntry* aEntry=0);
+	TRomNode(const TText* aName, TRomNode* aNode);
+private:
+	TRomNode(const TRomNode& aNode);
+public:
+	~TRomNode();
+	void Destroy();
+
+	TInt SetAtt(TText *anAttWord);
+	TInt NameCpy(char* aDest); // returns the length of aDest (in UTF-16 characters for Unicode, not bytes)
+	TInt SetBareName();
+
+	TRomNode* NewSubDir(const TText* aName);
+	void AddFile(TRomNode *aChild);
+	TInt Rename(TRomNode *aOldParent, TRomNode* aNewParent, TText* aNewName);
+	TRomNode* FindInDirectory(const TText* aName);
+	TRomNode* FindInDirectory(const TText* aName, THardwareVariant aVariant , TBool aPatchDataFlag=FALSE);
+
+	TRomEntry* RomEntry() const {return iRomFile->RomEntry();}
+	void Finalise(TInt aSize);
+
+	void CountDirectory(TInt& aFileCount, TInt& aDirCount);
+	TInt ProcessDirectory(RomFileStructure* aRFS);
+
+	static void AddExecutableFile(TRomNode*& aLast, TRomNode* aNode);
+	TRomNode* FindImageFileByName(const TDllFindInfo& aInfo, TBool aPrintDiag, TBool& aFallBack);
+	TInt CheckForVersionConflicts(const TRomBuilderEntry* a);
+
+	TRomNode* CopyDirectory(TRomNode*& aLastExecutable, TRomNode* aParent);
+	TInt Alias(TRomNode* aNode, TRomNode*& aLastExecutable);
+public:
+	char* BareName() const;
+	TUint32 Uid3() const;
+	TUint32 ModuleVersion() const;
+	THardwareVariant HardwareVariant() const;
+	TUint32 ABI() const;
+	TInt FullNameLength(TBool aIgnoreHiddenAttrib = EFalse) const;
+	TInt GetFullName(char* aBuf, TBool aIgnoreHiddenAttrib = EFalse) const;
+
+	void Add(TRomNode* aChild);
+	void Remove(TRomNode* aChild);
+
+	static TInt Count;			// seed for unique identifiers
+
+	TRomNode* iSibling;
+	TRomNode* iChild;
+	TRomNode* iParent;
+	TRomNode* iNextExecutable;
+
+protected:
+	TInt iIdentifier;
+	friend class FileEntry;
+
+public:
+	TRomFile* iRomFile;
+	TText* iName;
+	char* iBareName;		// name including extension but without UID or version
+	TUint8 iAtt;
+	TBool iHidden;
+	};
+
+class E32Rom;
+class Area;
+class TRomBuilderEntry : public E32ImageFile
+	{
+public:
+	TRomBuilderEntry(const char *aFileName, TText *aName);
+	~TRomBuilderEntry();
+	TInt SetCodeAlignment(TText *aStr);
+	TInt SetDataAlignment(TText *aStr);
+	TInt SetRelocationAddress(TText *aStr);
+	TInt SetStackReserve(TText *aStr);
+	TInt SetStackSize(TText *aStr);
+	TInt SetHeapSizeMin(TText *aStr);
+	TInt SetHeapSizeMax(TText *aStr);
+	TInt SetCapability(TText *aStr);
+	TInt SetUid1(TText *aStr);
+	TInt SetUid2(TText *aStr);
+	TInt SetUid3(TText *aStr);
+	TInt SetCallEntryPoint(TBool aState);
+	TInt SetPriority(TText *aStr);
+	TInt SetAttachProcess(TText *aStr);
+	TInt OpenImageFile();
+	TInt SizeInRom();
+	void SizeInSections(TInt& aSize1, TInt& aSize2);
+	void LoadToRom();
+	TInt FixupImports(E32Rom& aRom);
+	TInt ResolveDllRefTable(E32Rom& aRom);
+	TInt BuildDependenceGraph(E32Rom& aRom);
+	TInt FindAttachProcess(E32Rom& aRom);
+	const char* GetDefaultAttachProcess();
+	void SetRomNode(TRomNode* aNode);
+	void FixupRomEntries(TInt aSize);
+	TRomEntry* RomEntry() const {return iRomNode->RomEntry(); };
+	void DisplaySize(TPrintType aWhere);
+public:
+	inline TBool Primary() const
+		{return iRomImageFlags & KRomImageFlagPrimary;}
+	inline TBool Variant() const
+		{return iRomImageFlags & KRomImageFlagVariant;}
+	inline TBool Extension() const
+		{return iRomImageFlags & KRomImageFlagExtension;}
+	inline TBool Device() const
+		{return iRomImageFlags & KRomImageFlagDevice;}
+	inline TBool Secondary() const
+		{return iRomImageFlags & KRomImageFlagSecondary;}
+	inline TBool HCRDataFile() const 
+		{ return iOverrideFlags & KOverrideHCRData ;}
+private:
+	TRomBuilderEntry();
+	TRomBuilderEntry(const TRomBuilderEntry&);
+	const TRomBuilderEntry& operator=(const TRomBuilderEntry &);
+	void Relocate();
+public:
+	TText *iName;
+	TBool iResource;
+	TBool iNonXIP;
+	TBool iPreferred;
+	TUint iCompression;
+	TBool iPatched;
+	Area* iArea;
+	TInt  iRomSectionNumber;
+	TUint iOverrideFlags;
+	TUint32 iRelocationAddress;
+	TInt iAlignment;
+	TInt iCodeAlignment;
+	TInt iDataAlignment;
+	TInt iStackSize;
+	TInt iHeapSizeMin;
+	TInt iHeapSizeMax;
+	TProcessPriority iPriority;
+	TUint iUid1;
+	TUint iUid2;
+	TUint iUid3;
+	TLinAddr iDataBssLinearBase;
+	SSecurityInfo iS;
+	char* iBareName;			// EPOC name+extension but without path or version
+	TUint32 iVersionInName;
+	TUint32 iVersionPresentInName;
+
+	THardwareVariant iHardwareVariant;
+	TUint iDataBssOffset;
+	TInt iStackReserve;
+
+	TRomImageHeader* iRomImageHeader;
+
+	TAddressRange iHeaderRange;
+	TImageSection iCodeSection;
+	TImageSection iImportAddressTableSection;
+	TImageSection iExportDirSection;
+	TImageSection iDataSection;
+	TAddressRange iDllRefTableRange;
+
+	TLinAddr**  iIATRefs;	// image addresses of pointers to IAT
+
+	TRomBuilderEntry* iNext;
+	TRomBuilderEntry* iNextInArea;
+
+	TUint32 iRomImageFlags;
+	TText* iProcessName;
+
+	// Used by the collapse routines
+	TInt iImportCount;
+	TUint32 iImportBlockStartAddress;
+	TUint32 iImportBlockEndAddress;
+	TRomNode *iRomNode;
+	};
+//
+class ImpTRomHeader	: public TRomHeader
+	{
+public:
+	void Display();
+	void SetUp(CObeyFile *aObey);
+	void CheckSum(TUint32 aTargetValue);
+	};
+//
+class COrderedFileList
+	{
+public:
+	static COrderedFileList* New(TInt aMaxFiles);
+	~COrderedFileList();
+	void Add(TRomBuilderEntry* anEntry);
+	TInt Count() {return iCount;}
+	TRomBuilderEntry* operator[](TInt anIndex) {return iOrderedFiles[anIndex];}
+private:
+	COrderedFileList(TInt aMaxFiles);
+private:
+	TInt iCount;
+	TInt iMaxFiles;
+	TRomBuilderEntry **iOrderedFiles;
+	};
+//
+class CObeyFile;
+class Area;
+class Memmap;
+class E32Rom : public MRomImage
+	{
+public:
+	E32Rom(CObeyFile *aObey);
+	~E32Rom();
+	TInt Create();
+	TInt CreateExtension(MRomImage* aKernelRom);
+	TInt Align(TInt aVal);
+	void DisplaySizes(TPrintType aWhere);
+	TInt WriteImages(TInt aHeaderType);
+	TInt Compare(char* anImage, TInt aHeaderType);
+	//
+	//
+	char *RomToActualAddress(TUint aPtr);
+	TUint ActualToRomAddress(TAny *aPtr);
+	void Display(TRomImageHeader *aHdr);
+	TRomNode* FindImageFileByName(const TDllFindInfo& aInfo, TBool aPrintDiag, TBool& aFallBack);
+	TInt CheckForVersionConflicts(const TRomBuilderEntry* a);
+	TRomNode* CopyDirectory(TRomNode*& aLastExecutable);
+
+	TRomNode* RootDirectory();
+	TText* RomFileName();
+	TUint32 RomBase();
+	TUint32 RomSize();
+	TVersion Version();
+	TInt64 Time();
+	TUint32 CheckSum();
+	TUint32 DataRunAddress();
+	TUint32 RomAlign();
+
+private:
+	void CalculateDataAddresses();
+	void CalculateDataAddress(TRomBuilderEntry *aFile);
+	char *LayoutRom(char *anAddr);
+	char *ReserveRomExceptionSearchTable(char *anAddr, TRomExceptionSearchTable*& exceptionSearchTable);
+	void ConstructRomExceptionSearchTable(TRomExceptionSearchTable* exceptionSearchTable);
+	void LayoutFile(TRomBuilderEntry*, TAddressRange& aMain, TAddressRange* aSecond, CBytePair* aBPE);
+	void NextRom(TAddressRange* aFirst, TAddressRange* aSecond);
+	TInt TranslateFiles();
+	void EnumerateVariants();
+	TUint32 AlignToChunk(TUint32 anAddr);
+	TUint32 AlignToPage(TUint32 anAddr);
+	TUint32 AllocVirtual(TUint32 aAddr,TUint aSize);
+	TInt LoadDataToRom(TRomBuilderEntry *aFile, TAddressRange& aAddress, CBytePair* aBPE);
+	void LoadFileToRom(TRomBuilderEntry *aFile);
+
+	void Write(ofstream &of, TInt aHeaderType);		// main ROM image
+	void WriteOdd(ofstream &of);					// odd halfwords
+	void WriteEven(ofstream &of);					// even halfwords
+	void WriteSRecord(ofstream &of);				// SREC or S19 format
+
+	TInt LoadContents(char*& anAddr, TRomHeader* aHeader);
+	TInt BuildDependenceGraph();
+	TInt ResolveDllRefTables();
+	TInt ResolveImports();
+	TInt CreateExportDirectory();
+	char *WriteDirectory(char *aAddr, TRomHeader* aHeader);
+	TInt WriteHeadersToRom(char *anAddr);
+	TInt RequiredSize();
+	void SetCompressionInfo(TUint aCompressionType, TUint aCompressedSize, TUint aUncompressedSize);
+	void FinaliseSectionHeader();
+	void FinaliseExtensionHeader(MRomImage* aKernelRom);
+	void DisplayExtensionHeader();
+	void SetImageAddr(TAddressRange& aSet, TAny* aPtr, TUint32 aRunOffset=0);
+	void SetImageAddr(TAddressRange& aSet, TUint aAddr, TUint32 aRunOffset=0);
+	TInt CollapseImportThunks();
+	TInt CollapseImportThunks(TRomBuilderEntry* aFile);
+	TInt CollapseBranches();
+	TInt CollapseBranches(TRomBuilderEntry* aFile);
+	TUint32 FindFinalJumpDestination(TUint32 ja);
+
+	char* AllocateRelocationTable(char* aAddr, TReloc*& aRelocTable);
+	void FillInRelocationTable(TReloc* aRelocTable);
+
+	void LinkKernelExtensions(TRomBuilderEntry* aExtArray[], TInt aExtCount);
+	void FillInCrcs();
+	void ProcessDllData();
+
+	void CreatePageIndex(char*& aAddr);
+	TInt CompressPages();
+	TInt CompressPage(SRomPageInfo& aPageInfo, TInt aOutOffset, CBytePair * aBPE);
+
+	// dependence graph
+	void UnmarkGraph(TInt aMark=0xffffffff);
+	void FindMarked(TInt aMarkMask, TInt aMark, TRomFile**& aList);
+	TInt ProcessDependencies();
+	void ListRouteTo(TRomFile* aStart, TRomFile* aDest, TInt aNDeps);
+
+	void SetSmpFlags();
+	
+	// Check if the unpaged memory size overflows. For page enabled ROM only.
+	TInt CheckUnpagedMemSize();
+	
+	// Initialize the page info prior to compression
+	TInt SetupPages();
+
+	Memmap *iImageMap;
+public:
+	char* iData;
+	TInt iSize;
+	TRomLoaderHeader *iLoaderHeader;
+	TRomHeader *iHeader;
+	TExtensionRomHeader *iExtensionRomHeader;		// NULL if not extension ROM
+	//
+	CObeyFile *iObey;
+
+	char *iSectionPtr;
+	
+	//
+	TInt iSizeUsed;
+	TInt iUncompressedSize;
+	TInt iOverhead;
+	TInt iDirectorySize;
+	TInt iImportsFixedUp;
+	TInt iBranchesFixedUp;
+	TInt iVtableEntriesFixedUp;
+	//
+	TUint32 iNextDataChunkBase;
+	TUint32 iTotalSvDataSize;
+	TUint32 iNextDllDataAddr;
+	char* iPrevPrimaryAddress;
+	char* iPrevVariantAddress;
+	COrderedFileList** iVariantFileLists;
+	TRomBuilderEntry** iPeFiles;
+	};
+
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/rommask/rommask.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,395 @@
+// Copyright (c) 1996-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of the License "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#include <string.h>
+#include <io.h>
+
+#if defined(__MSVCDOTNET__) || defined(__TOOLS2__)
+#include <iomanip>
+#else //!__MSVCDOTNET__
+#include <iomanip.h>
+#endif //__MSVCDOTNET__
+
+#include "h_utl.h"
+#include "h_ver.h"
+
+// ROMMASK.EXE cl parameters
+char *gRomImage=NULL;
+char *gOutputRom=NULL;
+int	gRomSize=0;
+char gFormat='P';
+const int KMaxSections=8;
+int gNumberOfSections=0;
+int gSectionSize[KMaxSections];
+int gHeader=ETrue;
+int gVerbose=EFalse;
+
+
+TInt MaskPlain(TInt aRomSize,ifstream& aPsionImageFile,ofstream& aMaskRomImageFile)
+//
+// Create a plain mask rom image file
+//
+	{
+
+	const char KMaskRomFillCharacter='\377';
+	const TInt KBufferSize=1024;
+	char empty[KBufferSize];
+	for (TInt y=0;y<KBufferSize;y++)
+		empty[y]=KMaskRomFillCharacter;
+	char buffer[KBufferSize];
+	TUint checksum32=0;
+	TUint checksum8=0;
+	for (TInt x=0;x<aRomSize;x+=KBufferSize)
+		{
+		memcpy(buffer,empty,KBufferSize);
+		aPsionImageFile.read(buffer,KBufferSize);
+		aMaskRomImageFile.write(buffer,KBufferSize);
+		TInt z;
+		for (z=0;z<KBufferSize;z+=4)
+			checksum32+=*(TUint32*)&buffer[z];
+		for (z=0;z<KBufferSize;z++)
+			checksum8+=(TUint8)buffer[z];
+		}
+
+	if (gVerbose)
+		{
+		cout << dec;
+		cout << aRomSize << " byte PLAIN\r\n";
+		cout << "32 bit checksum 0x";
+		cout << setw(8);
+		cout << hex;
+		cout << setfill('0');
+		cout << checksum32 << "\r\n";
+		cout << " 8 bit checksum 0x";
+		cout << setw(8);
+		cout << hex;
+		cout << setfill('0');
+		cout << checksum8 << "\r\n";
+		}
+	return(KErrNone);
+	}
+
+TInt MaskMotorola(TInt /*aRomSize*/,ifstream& /*aPsionImageFile*/,ofstream& /*aMaskRomImageFile*/)
+//
+// Create a motorola s-record mask rom image file
+//
+	{
+	return(KErrNone);
+	}
+
+TInt MaskRom(TInt aRomSize,ifstream& aPsionImageFile,const char* aMaskRomImageFileName,const char* aMaskRomFormat)
+	{
+	ofstream MaskRomImageFile;
+
+	TInt r;
+	if (!MaskRomImageFile)
+		{
+		cout << "Error:  Cannot create mask rom image file (" << aMaskRomImageFileName << ")\r\n";
+		r=KErrArgument;
+		}
+	else
+		{
+		if (gVerbose)
+			{
+			cout << "\r\nMask ROM image file: ";
+			cout << aMaskRomImageFileName << "\r\n"; 
+			}
+		switch (aMaskRomFormat[0])
+			{
+		case 'P':
+			MaskRomImageFile.open(aMaskRomImageFileName, ios::in | ios::binary);
+			r=MaskPlain(aRomSize,aPsionImageFile,MaskRomImageFile);
+			break;
+		case 'M':
+			MaskRomImageFile.open(aMaskRomImageFileName, ios::in);
+			r=MaskMotorola(aRomSize,aPsionImageFile,MaskRomImageFile);
+			break;
+		default:
+			cerr << "Error:  Rom format not recognised\r\n";
+			r=KErrGeneral;
+			break;
+			}
+		MaskRomImageFile.close();
+		}
+	return r;
+	}
+
+
+TInt getIntegerArg(int argc, char *argv[], int param)
+	{
+
+	int error=KErrNone;
+	if (param>=argc)
+		error=KErrArgument;
+	if (error==KErrNone)
+		{
+		int val;
+//		if (!isNumber(argv[param]))
+//			return KErrArgument;
+
+#ifdef __TOOLS2__
+istringstream s(argv[param]);
+#else
+istrstream s(argv[param], strlen(argv[param]));
+#endif
+
+#if defined(__MSVCDOTNET__) || defined(__TOOLS2__)
+		s >> setbase(0);
+#endif //__MSVCDOTNET__
+
+		s>>val;
+		if (!s.fail())
+			return val;
+		}
+	cerr << "Error:  Integer argument required for ";
+	cerr << argv[param-1];
+	cerr << "\r\n";
+	return -1;
+	}
+
+char *getStringArg(int argc, char *argv[], int param)
+	{
+
+	if (param>=argc)
+		{
+		cerr << "Error:  String argument required for ";
+		cerr << argv[param-1];
+		cerr << "\r\n";
+		return NULL;
+		}
+	return argv[param];
+	}
+
+char getCharArg(int argc, char *argv[], int param)
+	{
+	
+	char *p=getStringArg(argc,argv,param);
+	if (p!=NULL)
+		return p[0];
+	return '\000';
+	}
+
+TInt processCommandLine(int argc, char *argv[])
+	{
+
+	if (argc==1)
+		return KErrArgument;
+	int param=1;
+	while (param<argc)
+		{
+		switch (argv[param][1])
+			{
+		case 'r':
+		case 'R':
+			// rom name
+			param++;
+			gRomImage=getStringArg(argc, argv, param);
+			break;
+		case 's':
+		case 'S':
+			if (argv[param][2]=='i')
+				{
+				// rom size
+				param++;
+				gRomSize=getIntegerArg(argc, argv, param);
+				if (gRomSize==-1)
+					return KErrGeneral;
+				}
+			else
+				{
+				// section
+				if (gNumberOfSections>=KMaxSections)
+					{
+					cerr << "Error:  Too many sections\r\n";
+					return KErrGeneral;
+					}
+				param++;
+				gSectionSize[gNumberOfSections]=getIntegerArg(argc, argv, param);
+				if (gSectionSize[gNumberOfSections]==-1)
+					return KErrGeneral;
+				if (gSectionSize[gNumberOfSections]==0)
+					{
+					cerr << "Error:  Section is zero bytes long\r\n";
+					return KErrGeneral;
+					}
+				if (gSectionSize[gNumberOfSections]>64)
+					{
+					cerr << "Error: Section too big\r\n";
+					return KErrGeneral;
+					}
+				gNumberOfSections++;
+				}
+				break;
+			case 'f':
+			case 'F':
+				param++;
+				gRomSize=getCharArg(argc, argv, param);
+				break;
+			case 'l':
+			case 'L':
+				cerr << "Error:  Use -verbose instead of -log";
+				break;
+			case 'v':
+			case 'V':
+				gVerbose=ETrue;
+				break;
+			case 'o':
+			case 'O':
+				param++;
+				gOutputRom=getStringArg(argc, argv, param);
+				break;
+			case 'n':
+			case 'N':
+				// -no-header
+				gHeader=EFalse;
+				break;
+			default:
+				cout << "Error:  Unrecognised switch '"<<argv[param]<<"'\r\n";
+				return KErrArgument;
+			}
+		param++;
+		}
+	if (gRomImage==NULL)
+		{
+		cerr << "Error:  No rom image specified\r\n";
+		return KErrArgument;
+		}
+	if (gOutputRom==NULL)
+		{
+		cerr << "Error:  No output rom file specified\r\n";
+		return KErrArgument;
+		}
+	if (gRomSize>64)
+		{
+		cerr << "Error:  Rom too big\r\n";
+		return KErrGeneral;
+		}
+	if (gRomSize==0)
+		{
+		cerr << "Error: No rom size specified\r\n";
+		return KErrArgument;
+		}
+	if (gFormat!='P' && gFormat!='M')
+		{
+		cerr << "Error:  Invalid mask rom format specified\r\n";
+		return KErrArgument;
+		}
+
+	return KErrNone;
+	}
+
+TInt Align1M(TInt aVal)
+	{
+	return (aVal+0xfffff) & 0x7ff00000;
+	}
+
+TInt main(int argc, char *argv[])
+	{
+
+	const TInt KPsionImageFileHeaderSize=0x100;
+
+	cout << "\r\nROMMASK - Rom masker V" << MajorVersion << "." << MinorVersion << "(Build " << Build << ")\r\n";
+	cout << Copyright;
+
+	char HelpText[] = 
+		"Syntax: ROMMASK -romimage <psion img file> -output <rom img name>\r\n"
+		"                [-verbose] [-size <total rom size>]\r\n"
+		"                [-no-header] [-format <format>] [-section <size>]*\r\n"
+		"Format: MOTOROLA (ascii s-record format)\r\n"
+		"        PLAIN (plain binary format) default\r\n";
+	int r=processCommandLine(argc, argv);
+	if (r==KErrArgument)
+		{
+		cout << HelpText;
+		return(KErrArgument);
+		}
+
+// Open the psion image file
+
+	ifstream PsionImageFile;
+	char*& PsionImageFileName=gRomImage;
+
+#if defined(__MSVCDOTNET__) || defined(__TOOLS2__)
+	PsionImageFile.open(PsionImageFileName, ios::in | ios::binary);
+#else //!__MSVCDOTNET__
+	PsionImageFile.open(PsionImageFileName, ios::nocreate | ios::binary);
+#endif //__MSVCDOTNET__
+
+	if (!PsionImageFile)
+		{
+		cerr << "Error:  Cannot open psion image file (" << PsionImageFileName << ")\r\n";
+		return(KErrArgument);
+		}
+	
+	gRomSize*=1024*1024; // in Mb
+	// resolve sections to cover whole rom
+	int size=0;
+	int i;
+	for (i=0; i<gNumberOfSections; i++)
+		{
+		gSectionSize[i]*=1024*1024; // in Mb
+		size+=gSectionSize[i];
+		}
+	if (size<gRomSize)
+		gSectionSize[gNumberOfSections++]=gRomSize-size;
+	if (size>gRomSize)
+		{
+		cerr << "Error:  Sections too big for rom";
+		return KErrGeneral;
+		}
+
+// Create the mask rom image file
+
+	ofstream MaskRomImageFile;
+	char*& MaskRomImageFileName=gOutputRom;
+
+ 	MaskRomImageFile.open(MaskRomImageFileName);
+	if (!MaskRomImageFile)
+		{
+		cerr << "Error:  Cannot create mask rom image file (" << MaskRomImageFileName << ")\r\n";
+		PsionImageFile.close();
+		return(KErrArgument);
+		}
+
+	if (gHeader)
+		{
+		PsionImageFile.ignore(KPsionImageFileHeaderSize);
+		int count=PsionImageFile.gcount();
+		if (count!=KPsionImageFileHeaderSize)
+			{
+			cerr << "Error:  Corrupt Psion image file\r\n";
+			return(KErrGeneral);
+			}
+		}
+
+	r=KErrNone;
+	for (i=0; i<gNumberOfSections; i++)
+		{
+		r=MaskRom(gSectionSize[i],PsionImageFile,MaskRomImageFileName,&gFormat);
+		if (r!=KErrNone)
+			{
+			cerr << "Error:  An error occured while processing Rom image\r\n";
+			return r;
+			}
+		// next section
+		char* ptr=MaskRomImageFileName;
+		while (*++ptr!=0)
+			;
+		*--ptr=(char)(i+'2');
+		}
+
+	PsionImageFile.close();
+	return(r);
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/seclib/secdump.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,64 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of the License "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// e32tools/seclib/secdump.cpp
+// Exercise seclib
+// 
+//
+
+#include "h_utl.h"
+#include "h_ver.h"
+
+#include <e32def.h>
+#include <e32def_private.h>
+#include "seclib.h"
+
+#include <stdio.h>
+
+int main(int argc, char *argv[])
+	{
+	Print(EAlways,"secdump");
+  	Print(EAlways," V%02d.%02d (Build %03d)\n",MajorVersion,MinorVersion,Build);
+  	Print(EAlways,Copyright);
+
+	if (argc < 1  || !argv[1])
+		{
+		Print(EAlways, "Usage: %s filename\n\n", argv[0]);
+		Print(EAlways, "Dumps the capabilites in the file filename\n\n");
+		return KErrNotFound;
+		}
+
+	SBinarySecurityInfo info;
+
+	TInt err = GetSecurityInfo(argv[1], info);
+
+	if (!err)
+		{
+		for (TInt count = 0; count < KCapabilitySetMaxSize; ++count)
+			{
+			Print(EAlways, "Byte #%d\t0x%02x\n", count, info.iCapabilities[count]);
+			}
+
+		Print(EAlways, "Secure ID:\t0x%08x.\n", info.iSecureId);
+
+		Print(EAlways, "Vendor ID:\t0x%08x.\n", info.iVendorId);
+
+		Print(EAlways, "Input file is%s an E32Image file.\n", (info.iE32Image ? "" : " not"));
+		}
+	else
+		{
+		Print(EAlways, "ERROR: %s failed with %d.\n", argv[0], err);
+		}
+
+	return err;
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/seclib/seclib.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,137 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// e32tools/seclib/seclib.cpp
+// Get the capabilities of an emulator / e32image.
+// 
+//
+
+#include <e32cmn.h>
+#include <e32ldr.h>
+#include "seclib.h"
+
+#include "e32image.h"
+#include "h_utl.h"
+
+#define __E32DEBUG_H__
+#include "setcap.h"
+
+
+GLDEF_C TInt GetSecurityInfo(const char* aFileName, SBinarySecurityInfo& aInfo)
+	{
+	// Check we have a filename
+	if (!aFileName)
+		{
+		return KErrNotFound;
+		}
+
+	// Zero the capabilities
+	memset(aInfo.iCapabilities, 0, KCapabilitySetMaxSize);
+
+	// We don't want to update the image's capabilities
+	CapabilitySet = EFalse;
+
+	// Try opening the file as an E32Image
+	E32ImageFile f;
+	TInt r = f.Open(aFileName);
+
+	if (r==KErrCorrupt || r==KErrNotSupported || r==1)
+		{
+#ifndef __LINUX__
+		// Try emulator format
+		aInfo.iE32Image = EFalse;
+
+		HANDLE file = CreateFileA(aFileName, 
+		                          GENERIC_READ|GENERIC_WRITE, 
+								  FILE_SHARE_READ|FILE_SHARE_WRITE, 
+								  NULL, 
+								  OPEN_EXISTING, 
+								  0, 
+								  NULL);
+		if (file == INVALID_HANDLE_VALUE)
+			{
+			return GetLastError();
+			}
+
+		r = SetCap(file);
+#endif
+		}
+	else
+		{
+		// Extract caps from E32Image
+		aInfo.iE32Image = ETrue;
+
+		r = SetCap(f.iOrigHdr);
+		}
+
+	if (r == KErrNone)
+		{
+		aInfo.iSecureId = SecureId.iId;
+		aInfo.iVendorId = VendorId.iId;
+		*(SCapabilitySet*)(aInfo.iCapabilities) = Capability;
+		}
+
+	return r;
+	}
+
+
+#ifndef __LINUX__
+GLDEF_C TInt GetSecurityInfo(const wchar_t* aFileName, SBinarySecurityInfo& aInfo)
+	{
+	// Check we have a filename
+	if (!aFileName)
+		{
+		return KErrNotFound;
+		}
+
+	// Zero the capabilities
+	memset(aInfo.iCapabilities, 0, KCapabilitySetMaxSize);
+
+	// We don't want to update the image's capabilities
+	CapabilitySet = EFalse;
+
+	// Try opening the file as an E32Image
+	E32ImageFile f;
+	TInt r = f.Open(aFileName);
+
+	if (r==KErrCorrupt || r==KErrNotSupported)
+		{
+		// Try emulator format
+		aInfo.iE32Image = EFalse;
+
+		HANDLE file = CreateFileW(aFileName, GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);
+		if (file == INVALID_HANDLE_VALUE)
+			{
+			return GetLastError();
+			}
+
+		r = SetCap(file);
+		}
+	else
+		{
+		// Extract caps from E32Image
+		aInfo.iE32Image = ETrue;
+
+		r = SetCap(f.iOrigHdr);
+		}
+
+	if (r == KErrNone)
+		{
+		aInfo.iSecureId = SecureId.iId;
+		aInfo.iVendorId = VendorId.iId;
+		*(SCapabilitySet*)(aInfo.iCapabilities) = Capability;
+		}
+
+	return r;
+	}
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/setcap/setcap.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,185 @@
+// Copyright (c) 1998-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// e32utils\setcap\setcap.cpp
+// 
+//
+
+#include "setcap.h"
+
+#include <e32std.h>
+#include <e32std_private.h>
+
+GLDEF_D TBool CapabilitySet;
+GLDEF_D SCapabilitySet Capability;
+GLDEF_D TBool SecureIdSet;
+GLDEF_D TSecureId SecureId;
+GLDEF_D TBool VendorIdSet;
+GLDEF_D TVendorId VendorId;
+
+#ifdef __TOOLS__
+#define		Mem		HMem
+#include "h_utl.h"
+#endif //__TOOLS__
+
+#if !defined(__EPOC32__) && !defined(__LINUX__)
+
+GLDEF_C TInt SetCap(HANDLE hFile)
+	{
+	DWORD ret;
+	TText8 checkedUidBuf[sizeof(TCheckedUid)];
+	ReadFile(hFile,checkedUidBuf,sizeof(TCheckedUid),&ret,NULL);
+	if (ret!=sizeof(TCheckedUid))
+		goto close;
+
+	//Look at PE file for UID section
+	{
+	const TInt KPeHeaderAddrAddr=0x3c;
+	const TInt KPeHeaderAddrSize=0x01;
+	const TInt KNumberOfSectionsOffset=0x06;
+	const TInt KNumberOfSectionsSize=0x02;
+	const TInt KSectionTableOffset=0xf8;
+	const TInt KSectionHeaderSize=0x28;
+	const TInt KSectionNameLength=0x08;
+	const TInt KPtrToRawDataOffset=0x14;
+	const TInt KPtrToRawDataSize=0x04;
+	const TText8 peText[4]={'P','E',0,0};
+	const TText8 uidText[8]={'.','S','Y','M','B','I','A','N'};
+		
+	//Read address of start of PE header
+	if (SetFilePointer(hFile,KPeHeaderAddrAddr,0,FILE_BEGIN)==0xFFFFFFFF)
+		goto close;
+	TInt peAddr=0;
+	ReadFile(hFile,&peAddr,KPeHeaderAddrSize,&ret,NULL);
+	if (ret!=KPeHeaderAddrSize)
+		goto close;
+		
+	//Check it really is the start of PE header
+	if (SetFilePointer(hFile,peAddr,0,FILE_BEGIN)==0xFFFFFFFF)
+		goto close;
+	TText8 text[4];
+	ReadFile(hFile,text,4,&ret,NULL);
+	if (*(TInt32*)text!=*(TInt32*)peText)
+		goto close;
+		
+	//Read number of sections
+	if (SetFilePointer(hFile,peAddr+KNumberOfSectionsOffset,0,FILE_BEGIN)==0xFFFFFFFF)
+		goto close;
+	TInt sections=0;
+	ReadFile(hFile,&sections,KNumberOfSectionsSize,&ret,NULL);
+	if (ret!=KNumberOfSectionsSize)
+		goto close;
+
+	//Go through section headers looking for UID section
+	if (SetFilePointer(hFile,peAddr+KSectionTableOffset,0,FILE_BEGIN)==0xFFFFFFFF)
+		goto close;
+	TInt i=0;
+	for(;i<sections;i++)
+		{
+		TText8 name[KSectionNameLength];
+		ReadFile(hFile,name,KSectionNameLength,&ret,NULL);
+		if (ret!=KSectionNameLength)
+			goto close;
+		if (*(TInt64*)name==*(TInt64*)uidText)
+			break;
+		if (SetFilePointer(hFile,KSectionHeaderSize-KSectionNameLength,0,FILE_CURRENT)==0xFFFFFFFF)
+			goto close;
+		}
+	if (i==sections)
+		goto close;
+
+	//Read RVA/Offset
+	if (SetFilePointer(hFile,KPtrToRawDataOffset-KSectionNameLength,0,FILE_CURRENT)==0xFFFFFFFF)
+		goto close;
+	TInt uidOffset;
+	ReadFile(hFile,&uidOffset,KPtrToRawDataSize,&ret,NULL);
+	if (ret!=KPtrToRawDataSize)
+		goto close;
+
+	//SYMBIAN Header
+	if (SetFilePointer(hFile,uidOffset,0,FILE_BEGIN)==0xFFFFFFFF)
+		goto close;
+
+	TEmulatorImageHeader header;
+
+	ReadFile(hFile,&header,sizeof(header),&ret,NULL);
+	if (ret!=sizeof(header))
+		goto close;
+
+	// set new capabilities
+	if (CapabilitySet)
+		{
+		header.iS.iCaps = Capability;
+		}
+
+	// set new secure id and vendor id if specified
+	if (SecureIdSet)
+		{
+		header.iS.iSecureId = SecureId.iId;
+		}
+	if (VendorIdSet)
+		{
+		header.iS.iVendorId = VendorId.iId;
+		}
+
+	// save header values
+	Capability = header.iS.iCaps;
+	SecureId.iId = header.iS.iSecureId;
+	VendorId.iId = header.iS.iVendorId;
+
+	if (SetFilePointer(hFile,uidOffset,0,FILE_BEGIN)==0xFFFFFFFF)
+		goto close;
+
+	BOOL b = WriteFile(hFile,&header,sizeof(header),&ret,NULL);
+	if (b==FALSE)
+		goto close;
+
+	CloseHandle(hFile);
+	return KErrNone;
+	}
+close:
+	CloseHandle(hFile);
+	return KErrGeneral;
+	}
+
+#endif //__EPOC32__
+
+#ifndef __WINS__
+
+GLDEF_C TInt SetCap(E32ImageHeader* h)
+	{
+	TUint hdrfmt = h->HeaderFormat();
+	if (hdrfmt < KImageHdrFmt_V)
+		return KErrNotSupported;
+	E32ImageHeaderV* v = (E32ImageHeaderV*)h;
+	if (CapabilitySet)
+		v->iS.iCaps = Capability;
+	if (SecureIdSet)
+		v->iS.iSecureId = SecureId.iId;
+	if (VendorIdSet)
+		v->iS.iVendorId = VendorId.iId;	
+
+	// save header values
+	Capability = v->iS.iCaps;
+	SecureId.iId = v->iS.iSecureId;
+	VendorId.iId = v->iS.iVendorId;
+
+	// regenerate CRC
+	v->iHeaderCrc = KImageCrcInitialiser;
+	TUint32 crc = 0;
+	Mem::Crc32(crc, v, v->TotalSize());
+	v->iHeaderCrc = crc;
+	return KErrNone;
+	}
+
+#endif //__WINS__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/setcap/setcap.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,49 @@
+// Copyright (c) 1998-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// e32utils\setcap\setcap.h
+// 
+//
+
+#ifndef __SETCAP_H__
+// We need to build for both TOOLS2 and TOOLS for the moment
+#if !defined(__TOOLS2_LINUX__)
+#include <e32wins.h>
+#include <emulator.h>
+#endif
+#include <stdlib.h>
+
+#ifndef __WINS__
+#include <f32image.h>
+#endif
+
+
+__ASSERT_COMPILE(sizeof(SCapabilitySet)==sizeof(TInt64));  // When parsing capabilities we assume that it's a 64bit quantity
+
+GLREF_D TBool CapabilitySet;
+GLREF_D SCapabilitySet Capability;
+GLREF_D TBool SecureIdSet;
+GLREF_D TSecureId SecureId;
+GLREF_D TBool VendorIdSet;
+GLREF_D TVendorId VendorId;
+
+#if !defined(__EPOC32__) && !defined(__LINUX__)
+GLREF_C TInt SetCap(HANDLE hFile);
+#endif //!__EPOC32__
+
+#ifndef __WINS__
+GLREF_C TInt SetCap(E32ImageHeader* h);
+#endif //!__WINS__
+
+#endif //__SETCAP_H__
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/tranasm/tranasm.bat	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,27 @@
+:: Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+:: All rights reserved.
+:: This component and the accompanying materials are made available
+:: under the terms of "Eclipse Public License v1.0"
+:: which accompanies this distribution, and is available
+:: at the URL "http://www.eclipse.org/legal/epl-v10.html".
+::
+:: Initial Contributors:
+:: Nokia Corporation - initial contribution.
+::
+:: Contributors:
+::
+:: Description:
+::
+
+@ECHO OFF
+
+perl -S tranasm.pl %1 %2 %3 %4 %5 %6 %7 %8 %9
+if errorlevel==1 goto CheckPerl
+goto End
+
+:CheckPerl
+perl -v >NUL
+if errorlevel==1 echo Is Perl, version 5.6.1 or later, installed?
+goto End
+
+:End
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/tranasm/tranasm.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,1439 @@
+#!/usr/bin/perl
+# Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+use strict;
+use Getopt::Long;
+use Cwd;
+
+my $Pwd = cwd;
+
+my $incroot = $Pwd;
+if ($Pwd =~ /.\:(.*)$/) {
+	$incroot = $1;
+	$incroot =~ s/\//\\/go;
+	$incroot = "$incroot"."\\";
+}
+
+if ($^O == "MSWin32" ) {
+	my $PATHSEP='\\'
+} else {
+	my $PATHSEP='/'
+}
+
+
+my $commentToken = "//";
+
+my $emitUnimplemented = 1;
+
+my %opts = ();
+
+my $result = GetOptions(\%opts,
+						"record-emitter",
+						"suppress-check",
+						"no-original",
+						"output:s",
+						"error-string:s",
+						"autoflush",
+						"help",
+						"lineno",
+						);
+
+Usage() if(!$result || $opts{'help'} || @ARGV < 1);
+
+my $errorString = "\t>>> CHECK THIS <<<";
+
+my $recordEmitter = $opts{"record-emitter"};
+my $plineno = $opts{"lineno"};
+my $forceCheck = !$opts{"suppress-check"};
+my $printOriginal = !$opts{"no-original"};
+my $outfile = $opts{"output"} if $opts{"output"};
+my $infile = @ARGV[0];
+$errorString = $opts{"error-string"} if $opts{"error-string"};
+
+#my $symbolsfile = "tranasm-symbols.log";
+my $symbolsfile = "";
+my $savedOut;
+# set to false to prevent recording files in \tranlated-files.log
+#my $recordFile = 0;
+
+#system "echo $infile >> \\translated-files.log" if $recordFile;
+my @unmangledSymbols;
+my $recordUnmangledSymbols = $symbolsfile;
+
+if ($outfile) {
+	open OUT, ">$outfile";
+	$savedOut = select OUT;
+}
+
+$| = $opts{"autoflush"};
+
+
+my $labelN = 0;
+my $labelRoot = "Label";
+
+my $lineno = 0;
+my @knownLabels = ();
+
+sub Croak($)
+{
+	my ($msg) = @_;
+    die  "\nERROR: line $.: $msg";
+}
+
+sub PrintComment($)
+{
+	my ($comment) = @_;
+    printf "\t$commentToken$comment" if $comment;
+}
+
+sub PrintCheck() { printf "\t$errorString\n" if $forceCheck; }
+
+sub Nl () { printf "\n"; }
+
+# cache for results of unmangling....
+my %unmangledSymbols = ();
+# cache to say whether symbol was mangled
+my %mangledSymbols = ();
+
+my $sourcefile = "\"$infile\"";
+
+my @IncFiles;
+
+
+sub Unmangle ($)
+{
+	my ($str) = @_;
+	return $str if ($str =~ /\s*__cpp\(/); # these don't need unmangling
+	my $res = $unmangledSymbols{$str};
+	if ($res) {
+		my $l = $lineno;
+		if ($mangledSymbols{$str}) {
+			my $sfile = $sourcefile;
+			$sfile =~ s/\"//go;
+			$sfile =~ s/\\\\/${main::PATHSEP}/go;
+			push @unmangledSymbols, "$incroot$sfile $l: Symbol = $str : Result = $res : Filt = \?\?\? : @IncFiles"
+			}
+		return $res;
+	} else {
+		return $unmangledSymbols{$str} = UnmangleX($str);
+	}
+}
+
+sub UnmangleX ($)
+{
+	my ($str) = @_;
+
+	my $sfile = $sourcefile;
+	$sfile =~ s/\"//go;
+	$sfile =~ s/\\\\/${main::PATHSEP}/go;
+
+	# recognize non-c++ derived symbols/labels
+	if ($str =~ /^\s*(__.*)\s*$/) {
+	    $str =~ s/\./_/;
+	    return $str;
+	} 
+
+	my $cppfilt = $ENV{CPPFILT} ? $ENV{CPPFILT} : "c++filt";
+	open UNM, "$cppfilt -s gnu $str|" or die "Error: Tranasm problem running $cppfilt to unmangle symbols.\n";
+	my $result = <UNM> ;
+	chop $result;
+
+	my $pat = "\^\\s*$result\\s*\$";
+	if ($str =~ $pat) {
+	    return $str;
+	}
+
+	close UNM;
+	#strip of any args
+	if ($result =~ /([^\(]*)\s*\(/) {
+		my $res = $1;
+		if ($recordUnmangledSymbols) {
+			my $l = $lineno;
+			$mangledSymbols{$str} = 1;
+			push @unmangledSymbols, "$incroot$sfile $l: Symbol = $str : Result = $res : Filt = $result : @IncFiles";
+		}
+		$result = $res;
+	} else {
+		# didn't have args so try as a (static) var
+		my $res = "\&$result";
+		if ($recordUnmangledSymbols) {
+			my $l = $lineno;
+			$mangledSymbols{$str} = 1;
+			push @unmangledSymbols, "$incroot$sfile $l: Symbol = $str : Result = $res : Filt = $result : @IncFiles";
+		}
+		$result = $res;
+	}		
+	return $result;
+}
+
+sub EmitOriginal($$)
+{
+	my ($orig , $emitter) = @_;
+	$orig =~ /\s*(.*)/;
+	printf "\t$commentToken Original - $1\n" if ($printOriginal);
+	printf "\t$commentToken emitted by $emitter\n" if ($recordEmitter);
+}
+
+sub EmitUnimplementedOpcode ($$$$)
+{
+    my ($original, $asm) = @_;
+    if ($emitUnimplemented) {
+		EmitOriginal ($original, "EmitUnimplementedOpcode");
+		if ($asm =~ /(\S+)\s+/ or $asm =~ /\.*(\S+)/){
+			my $opcode = uc $1;
+			printf "\t$commentToken Translation of opcode $opcode not implemented\n";
+			printf "\t**** Insert translation here ****\n";
+		}
+		else { 
+			UnrecognisedAsmWarning("EmitUnimplementedOpcode", $original);
+		}
+    }
+}
+
+sub SimpleEmit ($$$$)
+{
+	my ($original, $str, $emitter, $comment) = @_;
+	PrintCheck();
+    EmitOriginal ($original, $emitter);
+    printf "$str";
+    PrintComment($comment);
+    Nl();
+}
+
+sub UnrecognisedAsmWarning ($$)
+{
+    my ($where, $what) = @_;
+    printf STDERR "WARNING: line $. unrecognised asm format in $where: $what";
+}
+
+sub Count ($$$$) {
+	my ($str, $c, $start, $end) = @_;
+	my $total = 0;
+	my @a = split //, $str;
+	for (;$start < $end; $start++) {
+		$total++ if ($a[$start] eq $c);
+	}
+	return $total;
+}
+
+sub TranslateConstrainedArgs($$) {
+	my ($args, $constraints) = @_;
+	my $ins = GetInputConstraints($constraints) if ($constraints);
+	my @arglist;
+	my @rl;
+	my $start = 0;
+	my $end = length $args;
+	my $cpos = index $args, ",", $start;
+	if ($cpos > -1) {
+		while ($cpos > -1) {
+			#make sure we got a match number of '('s and ')' $start and $cpos
+			my $nl = Count($args, '(', $start, $cpos);
+			my $nr = Count($args, ')', $start, $cpos);
+			if ($nl == $nr) {
+				my $arg = substr($args, $start, $cpos - $start);
+				push @arglist, $arg;
+				$start = $cpos + 1;
+				$cpos = index $args, ",", $start;
+			} else {
+				$cpos = index $args, ",", $cpos + 1;
+			}
+		}
+		push @arglist, substr($args, $start, $end);
+
+	} else {
+		push @arglist, ChopWhiteSpace($args);
+	}
+	foreach (@arglist) {
+		push @rl, SubstituteConstraint($_, $ins);
+	}
+	return join ", ", @rl;
+}
+
+sub GetInputConstraints($) {
+	my ($cs) = @_;
+	if ($cs =~ /\:\s+\:\s*(.*)/) {
+		return join "", split '\"i\" ', $1;
+	} else {
+		Croak("unrecognized contraints format: $cs\n");
+	}
+}
+
+sub ChopWhiteSpace ($) {
+	my ($str) = @_;
+	my @a = split //, $str;
+	my $n = length($str);
+	return $str if $n == 0;
+	while (--$n) {
+	    if ($a[$n] eq ' ') {
+		next;
+	    } else {
+		last;
+	    }
+	}
+	$n++ unless $a[$n] eq ' ';
+	return substr $str, 0, $n;
+}
+
+sub SubstituteConstraint($$) {
+    my ($arg, $cs) = @_;
+    my $u;
+	$arg = ChopWhiteSpace($arg);
+	unless ($cs) {
+		if ($arg =~ /\s*(.*)\s*$/ ) {
+			$u = $1;
+		} else {
+			Croak("Arg not supplied in SubstituteConstraint\n");
+		}
+	} elsif ($arg =~ /\%\S+(\d+)/ ) {
+		my $i = $1;
+		my @c = split '\,', $cs;
+        $u = $c[$i];
+    } elsif ($arg =~ /\s*(.*)\s*$/ ) {
+		$u = $1;
+    } else {
+		Croak("Arg not supplied in SubstituteConstraint\n");
+	}
+	my $metau = quotemeta "$u";
+	if (NeedsImporting($u)) {
+		print "\timport $u ";
+		PrintComment("Added by Substitute Constraint");
+		Nl();
+		AssertSourceFile();
+		return "$u";
+	} elsif ($u =~ /\s*__cpp/) {
+		return $u;
+	} elsif (grep /^$metau/, @knownLabels) {
+		return $u;
+	} else {
+		return "__cpp($u)";
+	}
+}
+
+sub RegisterSymbol($)
+{
+	my ($sym) = @_;
+	return 1 if ($sym =~ /^r1[0-5]\s*$/i);
+	return 1 if ($sym =~ /^r[0-9]\s*$/i);
+	return 1 if ($sym =~ /^lr\s*$/i);
+	return 1 if ($sym =~ /^pc\s*$/i);
+	return 1 if ($sym =~ /^ip\s*$/i);
+	return 1 if ($sym =~ /^sp\s*$/i);
+	return 0;
+}	
+
+
+sub NeedsImporting($)
+{
+	my ($sym) = @_;
+	return 0 if ($sym =~ /\s*0x/i );
+	return 0 if ($sym =~ /^\s*0\s*/ );
+	return 0 if ($sym =~ /^\s*\d+\s*/ );
+	return 0 if ($sym =~ /\s*\(/ );
+	return 0 if ($sym =~ /\s*__cpp\(/ );
+	return 0 if RegisterSymbol($sym);
+
+	my $unms = Unmangle($sym);
+	my $pat = quotemeta($unms);
+	unless ($sym =~ /$pat/) {
+		return 0;
+	}
+	if (($sym =~ /(\w*)/) && (grep /^$1/, @knownLabels) ) {
+		return 0;
+	} else {
+		return 1;
+	}
+}
+	
+sub MaybeImportArgs($)
+{
+	my ($args) = @_;
+	my $arg;
+	foreach $arg (split /\,/, $args) {
+		MaybeEmitImport($arg);
+	}
+}
+sub GetInputConstraint($$$)
+{
+    # It would have been nice if we could have used split to get at the constraints
+    # but we can't coz ':' can obviously appear as part of a qualified name. So we have to do it
+    # by hand.
+
+    my ($constraints, $index, $noError) = @_;
+    # assume constraints look like " : output : input [: sideffects"]
+    my $i1 = index($constraints, ":"); # output field after this index
+    Croak("unrecognized contraints format: $constraints\n") if (!$noError and $i1 < 0);
+    my $i2 = index($constraints, ":", $i1 + 1); # input field after this index
+    Croak("unrecognized contraints format: $constraints\n") if !$noError and $i2 < 0;
+
+    Croak("can't deal with output constraints: $constraints\n") 
+		if !$noError and (substr($constraints, $i1 + 1, $i2 - $i1 - 1) =~ /\S+/);
+
+    Croak("can't deal with side effect constraints: $constraints\n") 
+		if (substr($constraints, $i2 + 1) =~ /(\s*\".+\".*\(.*\))\s*\:+/);
+
+    if ($i2 > 0 
+		and (length($constraints) - 1) > $i2 
+		and substr($constraints, $i2 + 1) =~ /(\s*\".+\".*\(.*\S+.*\))\s*\:*/) {
+        return $1;
+    } else {
+		return 0;
+    }
+}
+
+sub GetOutputConstraint($$)
+{
+    # It would have been nice if we could have used split to get at the constraints
+    # but we can't coz ':' can obviously appear as part of a qualified name. So we have to do it
+    # by hand.
+    my ($constraints, $index) = @_;
+    # assume constraints look like " : output : input [: sideffects"]
+    my $i1 = index($constraints, ":"); # output field after this index
+    my $i2 = index($constraints, ":", $i1 + 1); # output field after this index
+
+	if ($i2 != -1) {
+		if ( substr($constraints, $i1 + 1, $i2 - $i1 - 1) =~ /\s*(\".*\"\s*\S*.*\))\s*\:*/) {
+			return $1;
+		} else {
+			return 0;
+		}
+	} elsif ( substr($constraints, $i1 + 1) =~ /\s*(\".*\"\s*\S*.*\))\s*\:*/) {
+		return $1;
+    } else {
+		return 0;
+    }
+}
+
+# NB: assumes no mangled symbols in constraint expr.
+sub CppExprFromConstraint ($)
+{
+    my ($constraints) = @_;
+	return $constraints if ($constraints =~ /\s*__cpp/);
+    my $inputExpr;
+    if ($constraints =~ /\s*\".*\"\s+(.*)/) {
+		$inputExpr = $1;
+    } else {
+		Croak( "Unrecognized constraint pattern @ $lineno: $constraints");
+    }
+
+    unless ($inputExpr =~ /^\(/) {
+		$inputExpr = "($inputExpr)";
+    }
+
+    my $result = "__cpp$inputExpr";
+
+    return $result;
+}
+
+sub TranslateConstrainedInputAsmDefault ($$$$)
+{
+    my ($original, $asm, $constraints, $comment) = @_;
+
+    # we make some gross assumptions here which appear to hold for the majority of 
+    # our code base namely:
+    # 1. there is normally only one input operand and 
+    # 2. it is named 'a0'
+    # This allows us to carry out the simple minded substitution seen below.
+    my $cppExpr0 = CppExprFromConstraint(GetInputConstraint($constraints, 0, 0));
+
+    $asm =~ s/\%a0/$cppExpr0/;
+    if ($asm =~ /(\w+)\s+(\S+)\s*\,\s*(.+)\s*,?(.+)?/) {
+	PrintCheck();
+	EmitOriginal($original, "TranslateConstrainedInputAsmDefault");
+	EmitAsm($1, $2, $3, $4, $comment);
+    } else {
+	UnrecognisedAsmWarning("TranslateConstrainedInputAsmDefault", $original);
+    }
+}
+
+sub TranslateAsmDefault ($$$$)
+{
+    my ($original, $asm, $constraints, $comment) = @_;
+    if ($constraints) {
+		TranslateConstrainedInputAsmDefault($original, $asm, $constraints, $comment);
+    } elsif (@_[1] =~ /(\w+)\s+([^\,]+)\s*\,\s*([^\,]+)\s*,?(.+)?/) {
+		my $opcode = uc $1;
+		my $op1 = $2;
+		my $op2 = $3;
+		my $op3 = $4;
+		# deal with hand introduced labels that correspond to a mangled C++ name
+		if ($op2 =~ /\s*\[[^\,]+\,\s*\#([^\-]+)/) {
+			my $adr = $1;
+			my $pattern = quotemeta($adr);
+			my $unmangledAdr = Unmangle($adr);
+			$op2 =~ s/$adr/$unmangledAdr/i unless $unmangledAdr =~ /$pattern/;
+		}
+		if ($opcode =~ /ldr/i) {
+			if ($op2 =~ /^(\d+)([fFbB])/) {
+				my $id = $1;
+				my $dir = uc $2;
+				$op2 = "%$dir$id";
+			} 
+		}
+		# rename obsolete shift ASL -> LSL
+		if ($op3 =~ /([^\,]*)\,\s*asl (.*)/i) {
+			$op3 = "$1, lsl $2";
+		}
+		# deal with the likes of #___2PP.KernCSLocked-.-8
+		if ($op3 =~ /([^\-\s]\.[^\s\-])/ ) {
+			my $s = "$1";
+			my $p = quotemeta($1);
+			$s =~ s/\./\_/;
+			$op3 =~ s/$p/$s/;
+		}
+		PrintCheck();
+		EmitOriginal ($original, "TranslateAsmDefault");
+		EmitAsm($opcode, $op1, $op2, $op3, $comment);
+    } else {
+		UnrecognisedAsmWarning("TranslateAsmDefault", $original);
+    }
+}
+
+
+# Work around 'feature' in embedded assembler stemming from the fact that
+# 'and' is both asm and a C++ keyword.
+sub TranslateConstrainedAnd ($$$$)
+{
+    my ($original, $asm, $constraints, $comment) = @_;
+
+    # we make some gross assumptions here which appear to hold for the majority of 
+    # our code base namely:
+    # 1. there is normally only one input operand and 
+    # 2. it is named 'a0'
+    # This allows us to carry out the simple minded substitution seen below.
+    my $cppExpr0 = CppExprFromConstraint(GetInputConstraint($constraints, 0, 0));
+
+	$asm =~ s/\%a0/$cppExpr0/;
+    if ($asm =~ /(\w+)\s+(.+)\s*\,\s*(.+)\s*,?(.+)?/) {
+	my $opcode = uc $1;
+	my $op1 = $2;
+	my $op2 = $3;
+	my $op3 = $4;
+		# rename obsolete shift ASL -> LSL
+		if ($op3 =~ /([^\,]*)\,\s*asl (.*)/) {
+			$op3 = "$1, lsl $2";
+		}
+		PrintCheck();
+		EmitOriginal ($original, "TranslateConstrainedAnd");
+
+		printf "\t$opcode $op1, $op2";
+		printf ", $op3" if $op3;
+		PrintComment($comment);
+		Nl();
+    } else {
+	UnrecognisedAsmWarning("TranslateConstrainedAnd", $original);
+    }
+}
+
+sub TranslateAnd ($$$$)
+{
+    my ($original, $asm, $constraints, $comment) = @_;
+    if ($constraints) {
+		TranslateConstrainedAnd($original, $asm, $constraints, $comment);
+    } elsif (@_[1] =~ /(\w+)\s+([^\,]+)\s*\,\s*([^\,]+)\s*,?(.+)?/) {
+		my $opcode = uc $1;
+		my $op1 = $2;
+		my $op2 = $3;
+		my $op3 = $4;
+		# rename obsolete shift ASL -> LSL
+		if ($op3 =~ /([^\,]*)\,\s*asl (.*)/) {
+			$op3 = "$1, lsl $2";
+		}
+		PrintCheck();
+		EmitOriginal ($original, "TranslateAnd");
+
+		printf "\t$opcode $op1, $op2";
+		printf ", $op3" if $op3;
+		PrintComment($comment);
+		Nl();
+    } else {
+		UnrecognisedAsmWarning("TranslateAnd", $original);
+    }
+}
+
+
+# based on TranslateConstrainedInputAsmDefault
+sub TranslateConstrainedCoprocessorInsn ($$$$)
+{
+    my ($original, $asm, $constraints, $comment) = @_;
+
+    # we make some gross assumptions here which appear to hold for the majority of 
+    # our code base namely:
+    # 1. there is normally only one input operand and 
+    # 2. it is named 'a0'
+    # This allows us to carry out the simple minded substitution seen below.
+    my $cppExpr0 = CppExprFromConstraint(GetInputConstraint($constraints, 0, 0));
+
+	$asm =~ s/\%a0/$cppExpr0/;
+    if ($asm =~ /(\w+)\s+(.+)\s*\,\s*(.+)\s*,?(.+)?/) {
+	my $opcode = $1;
+	my $coproc = lc $2;
+	my $op1 = $3;
+	my $op2 = $4;
+	$coproc = "p$coproc" unless $coproc =~ /^p.+/;
+	PrintCheck();
+	EmitOriginal($original, "TranslateConstrainedCoprocessorInsn");
+	EmitAsm($opcode, $coproc, $op1, $op2, $comment);
+    } else {
+	UnrecognisedAsmWarning("TranslateConstrainedCoprocessorInsn", $original);
+    }
+}
+
+# based on TranslateAsmDefault
+sub TranslateCoprocessorInsn ($$$$)
+{
+    my ($original, $asm, $constraints, $comment) = @_;
+    if ($constraints) {
+	TranslateConstrainedCoprocessorInsn($original, $asm, $constraints, $comment);
+    } elsif (@_[1] =~ /(\w+)\s+(.+)\s*\,\s*(.+)\s*,?(.+)?/) {
+	my $opcode = $1;
+	my $coproc = lc $2;
+	my $op1 = $3;
+	my $op2 = $4;
+	$coproc = "p$coproc" unless $coproc =~ /^p.+/;
+	PrintCheck();
+	EmitOriginal ($original, "TranslateCoprocessorInsn");
+	EmitAsm($opcode, $coproc, $op1, $op2, $comment);
+    } else {
+	UnrecognisedAsmWarning("TranslateCoprocessorInsn", $original);
+    }
+}
+
+sub TranslateConstrainedSWI ($$$$)
+{
+    my ($original, $asm, $constraints, $comment) = @_;
+
+    # we make some gross assumptions here which appear to hold for the majority of 
+    # our code base namely:
+    # 1. there is normally only one input operand and 
+    # 2. it is named 'a0'
+    # This allows us to carry out the simple minded substitution seen below.
+    my $cppExpr0 = CppExprFromConstraint(GetInputConstraint($constraints, 0, 0));
+
+	$asm =~ s/\%a0/$cppExpr0/;
+    if ($asm =~ /(\w+)\s+(.+)/) {
+	my $opcode = $1;
+	my $op1 = $2;
+	PrintCheck();
+	EmitOriginal($original, "TranslateConstrainedSWI");
+	$opcode = RequiredCase($opcode);
+    printf "\t$opcode $op1";
+    PrintComment($comment);
+    Nl();
+    } else {
+	UnrecognisedAsmWarning("TranslateConstrainedSWI", $original);
+    }
+}
+
+sub TranslateSWI ($$$$)
+{
+    my ($original, $asm, $constraints, $comment) = @_;
+    if ($constraints) {
+		TranslateConstrainedSWI($original, $asm, $constraints, $comment);
+    } elsif (@_[1] =~ /(\w+)\s+(.+)/) {
+	my $opcode = $1;
+	my $op1 = $2;
+	PrintCheck();
+	EmitOriginal ($original, "TranslateSWI");
+	$opcode = RequiredCase($opcode);
+    printf "\t$opcode $op1";
+    PrintComment($comment);
+    Nl();
+    } else {
+	UnrecognisedAsmWarning("TranslateSWI", $original);
+    }
+}
+
+
+sub TranslateLabel ($$$$)
+{
+    my ($original, $asm, $constraints, $comment) = @_;
+	if ( $asm =~ /\s*(\S+)\:/) {
+		my $label = $1;
+		$label = Unmangle($label) unless ($label =~ /^(\d+)/);
+		SimpleEmit($original, $label, "TranslateLabel", $comment);
+    } else { 
+		UnrecognisedAsmWarning("TranslateLabel", $original);
+    }
+}
+
+sub TranslateConstrainedAdr ($$$$)
+{
+    my ($original, $asm, $constraints, $comment) = @_;
+
+    # we make some gross assumptions here which appear to hold for the majority of 
+    # our code base namely:
+    # 1. there is normally only one input operand and 
+    # 2. it is named 'a0'
+    # This allows us to carry out the simple minded substitution seen below.
+    my $cppExpr0 = CppExprFromConstraint(GetInputConstraint($constraints, 0, 0));
+
+    $asm =~ s/\%a0/$cppExpr0/;
+    if ($asm =~ /(\w+)\s+(\S+)\s*\,\s*(.+)\s*,?(.+)?/) {
+	PrintCheck();
+	EmitOriginal($original, "TranslateConstrainedAdr");
+	EmitAsm($1, $2, $3, $4, $comment);
+    } else {
+	UnrecognisedAsmWarning("TranslateConstrainedAdr", $original);
+    }
+}
+
+sub TranslateAdr ($$$$)
+{
+    my ($original, $asm, $constraints, $comment) = @_;
+    if ($constraints) {
+		TranslateConstrainedAdr($original, $asm, $constraints, $comment);
+    } elsif (@_[1] =~ /(\w+)\s+([^\,]+)\s*\,\s*([^\,]+)/) {
+		my $opcode = uc $1;
+		my $op1 = $2;
+		my $eadr = $3;
+		my $op3;
+		
+		if ($eadr =~ /^(\d+)([fFbB])/) {
+				my $id = $1;
+				my $dir = uc $2;
+				$eadr = "%$dir$id";
+		} else {
+			my $unmangledEadr = Unmangle($eadr);
+			my $pattern = quotemeta($eadr);
+			$eadr = "__cpp($unmangledEadr)" unless $unmangledEadr =~ /$pattern/;
+		}
+		MaybeEmitImport($eadr);
+		PrintCheck();
+		EmitOriginal ($original, "TranslateAdr");
+		EmitAsm($opcode, $op1, $eadr, $op3, $comment);
+    } else {
+		UnrecognisedAsmWarning("TranslateAdr", $original);
+    }
+}
+
+sub RequiredCase($)
+{
+	my ($s) = @_;
+	lc $s;
+}
+
+sub TranslateAlign ($$$$)
+{
+    my ($original, $asm, $constraints, $comment) = @_;
+    if ( $asm =~ /\s*\.align\s+(\S+)/i) {
+		my $alignment = $1;
+		my $boundary = "1:SHL:$1";
+#		my $boundary = "";
+		my $boundary = "" if ($alignment =~ /\s*0\s*/);
+		
+		my $directive = RequiredCase("ALIGN");
+		SimpleEmit($original, "\t$directive $boundary", "TranslateAlign", $comment);
+    }
+    else { 
+		UnrecognisedAsmWarning("TranslateAlign", $original);
+    }
+}
+
+sub TranslateSpace ($$$$)
+{
+    my ($original, $asm, $constraints, $comment) = @_;
+    if ( $asm =~ /\s*\.space\s+(\S+)/i) {
+		my $directive = RequiredCase("SPACE");
+		SimpleEmit($original, "\t$directive $1", "TranslateSpace", $comment);
+    }
+    else { 
+		UnrecognisedAsmWarning("TranslateSpace", $original);
+    }
+}
+
+sub TranslateByte ($$$$)
+{
+    my ($original, $asm, $constraints, $comment) = @_;
+	my $directive = RequiredCase("DCB");
+	$asm =~ /\s*.byte\s+(.*)/i;
+	my $args = $1;
+	if ($constraints) {
+		$args = TranslateConstrainedArgs($args, $constraints);
+		SimpleEmit($original, "\t$directive $args", "TranslateByte", $comment);
+	} else {
+		MaybeImportArgs($args);
+		SimpleEmit($original, "\t$directive $args", "TranslateByte", $comment);
+	}
+}
+
+sub CppExprList($)
+{
+    my ($arg) = @_;
+	return $arg if ($arg =~ /\s*__cpp/);
+
+    if ($arg =~ /(.*)\,\s*([^\s]*)/) {
+		my $result = CppExprList($1);
+		my $expr = $2;
+		if ($expr =~ /\s*0x\d+/) {
+			return $result .= ", __cpp($expr)";
+		} elsif ($expr =~ /\s*(\d+)/) {
+			my $hex = sprintf("%#.8x", $1);
+			return $result .= ", __cpp($hex)";
+		} else {
+			my $pattern = quotemeta($expr);
+			my $unmangledExpr = Unmangle($expr);
+			return ($unmangledExpr =~ /$pattern/) ? $expr : "__cpp(\&$unmangledExpr)";
+		}
+    } else {
+		if ($arg =~ /\s*0x\d+/) {
+			return " __cpp($arg)";
+		} elsif ($arg =~ /\s*(\d+)/) {
+			my $hex = sprintf("%#.8x", $1);
+			return " __cpp($hex)";
+		} else {
+			if ($arg =~ /\s*([^\s]*)/) {
+				$arg = $1;
+				my $pattern = quotemeta($arg);
+				my $unmangledArg = Unmangle($arg);
+				return ($unmangledArg =~ /$pattern/) ? $arg : "__cpp(\&$unmangledArg)";
+			}
+		}
+    }
+}
+
+# Add symbols here that aren't imported if they're 'special'.
+my %recognizedSymbols = 
+	(
+	 Followers => 1,
+	 TheScheduler => 1,
+	 TheMonitor => 1,
+	 MonitorStack => 1,
+	 ServerAccept => 1,
+	 ServerReceive => 1,
+	 wordmove => 1,
+	 memcpy => 1,
+	 memcompare => 1,
+	 memclr => 1,
+	 memset => 1,
+	 memmove => 1,
+	 );
+
+sub EmitRecognizedSymbol ($$$$)
+{
+	my ($original, $directive, $sym, $comment) = @_;
+	return 0 if ($sym =~ /\s*0x/i );
+	return 0 if ($sym =~ /^\s*0\s*/ );
+	return 0 if ($sym =~ /^\s*\d+\s*/ );
+	return 0 if ($sym =~ /\s*__cpp\(/ );
+	my $unms = Unmangle($sym);
+	my $pat = quotemeta($unms);
+	unless ($sym =~ /$pat/) {
+		SimpleEmit($original, "\t$directive __cpp($unms)", "TranslateWord", $comment);
+		return 1;
+	}
+	if (($sym =~ /(\S*)/) && !(grep /^$1$/, @knownLabels) ) {
+		SimpleEmit($original, "\timport $sym", "TranslateWord", "// added by Tranasm");
+		AssertSourceFile();
+		SimpleEmit($original, "\t$directive $sym", "TranslateWord", $comment);
+		return 1;
+	} else {
+		return 0;
+	}
+}
+
+sub TranslateWord ($$$$)
+{
+    my ($original, $asm, $constraints, $comment) = @_;
+	my $directive = RequiredCase("DCD");
+	$asm =~ /\s*.word\s+(.*)/i;
+	my $args = $1;
+	if ($constraints) {
+		$args = TranslateConstrainedArgs($args, $constraints);
+		SimpleEmit($original, "\t$directive $args", "TranslateWord", $comment);
+	} else {
+		MaybeImportArgs($args);
+		SimpleEmit($original, "\t$directive $args", "TranslateWord", $comment);
+	}
+}
+
+sub TranslateCode ($$$$)
+{
+    my ($original, $asm, $constraints, $comment) = @_;
+	my $directive = RequiredCase("CODE");
+    if ( $asm =~ /\s*\.code\s+(\d+)\s*/i) {
+		SimpleEmit($original, "\t$directive$1", "TranslateCode", $comment);
+    }
+    else { 
+		UnrecognisedAsmWarning("TranslateCode", $original);
+    }
+}
+
+sub TranslateGlobal ($$$$)
+{
+    my ($original, $asm, $constraints, $comment) = @_;
+	my $directive = RequiredCase("EXPORT");
+    if ( $asm =~ /\s*\.global\s+(\S+)/i) {
+		SimpleEmit($original, "\t$directive $1", "TranslateGlobal", $comment);
+    }
+    else { 
+		UnrecognisedAsmWarning("TranslateGlobal", $original);
+    }
+}
+
+sub TranslateExtern ($$$$)
+{
+    my ($original, $asm, $constraints, $comment) = @_;
+	my $directive = RequiredCase("IMPORT");
+    if ( $asm =~ /\s*\.extern\s+(\S+)/i) {
+		SimpleEmit($original, "\t$directive $1", "TranslateExtern", $comment);
+    }
+    else { 
+		UnrecognisedAsmWarning("TranslateExtern", $original);
+    }
+}
+
+sub TranslateNop ($$$$)
+{
+    my ($original, $asm, $constraints, $comment) = @_;
+	my $directive = RequiredCase("NOP");
+    SimpleEmit($original, "\t$directive", "TranslateNop", $comment);
+}
+
+sub EmitAsm($$$$$)
+{
+	my ($opcode, $op1, $op2, $op3, $comment) = @_;
+	$opcode = RequiredCase($opcode);
+    printf "\t%s %s, %s", $opcode, $op1, $op2;
+    printf(", %s", $op3) if $op3;
+    PrintComment($comment);
+    Nl();
+}
+
+sub TranslateBranchDefault ($$$$)
+{
+    my ($original, $asm, $constraints, $comment) = @_;    
+	if ($constraints) {
+		Croak( "TranslateBranchDefault can't deal with Constraint instructions\n E.G. - $original");
+	} elsif ($asm =~ /(\w+)\s+(.+)\s*$/) {
+		my $opcode = RequiredCase($1);
+		my $target = $2;
+
+		if ($target =~ /^(\d+)([fFbB])/) {
+			my $id = $1;
+			my $dir = uc $2;
+			$target = "%$dir$id";
+		} else {
+			my $unmangledTarget = Unmangle($target);
+			my $pattern = quotemeta($target);
+			$target = "__cpp($unmangledTarget)" unless $unmangledTarget =~ /$pattern/;
+		}
+		EmitOriginal ($original, "TranslateBranchDefault");
+		MaybeEmitImport($target);
+		printf("\t%s %s", $opcode, $target);
+		PrintComment($comment);
+		Nl();
+    } else {
+		UnrecognisedAsmWarning("TranslateBranchDefault", $original);
+    }
+}
+
+sub TranslatePushPop ($$$$)
+{
+    my ($original, $asm, $constraints, $comment) = @_;    
+    if ($asm =~ /(\w+)\s+(.+)\s*$/) {
+		my $opcode = RequiredCase($1);
+		my $registers = $2;
+
+		if ($constraints) {
+			Croak( "TranslatePushPop can't deal with constrained instructions\n E.G. - $original\n");
+		} else {
+			EmitOriginal ($original, "TranslatePushPop");
+			printf "\t$opcode $registers";
+			PrintComment($comment);
+			Nl();
+		}
+    }
+    else {
+		UnrecognisedAsmWarning("TranslatePushPop", $comment);
+    }
+}
+
+sub TranslateConstrainedAsmDefault ($$$$)
+{
+    # Here we assume:
+    # 1. at most one output constraint
+    # 2. the output constraint is named '%0'
+    # 3. at most one input constraint
+    # 4. the input constraint is named '%a0'
+
+    my ($original, $asm, $constraints, $comment) = @_;    
+	my $outputConstraint;
+    my $inputConstraint;
+    if ($outputConstraint = GetOutputConstraint($constraints, 0)) {
+		my $outputCppExpr = CppExprFromConstraint($outputConstraint);
+		$asm =~ s/\%0/$outputCppExpr/;
+    }
+    if ($inputConstraint = GetInputConstraint($constraints, 0, 1)) {
+		my $inputCppExpr = CppExprFromConstraint($inputConstraint);
+		$asm =~ s/\%a0/$inputCppExpr/;
+    }
+    if ($asm =~ /^\s*(\w+)\s+([^\,]+)\s*\,\s*(.+)\s*,?(.+)?/) {
+		my $opcode = uc $1;
+		my $op1 = $2;
+		my $op2 = $3;
+		my $op3 = $4;
+		if ($outputConstraint) {
+			printf "\t>>> CHECK THIS - output constraints need special attention <<<\n";
+		} else {
+			PrintCheck();
+		}
+		EmitOriginal($original, "TranslateConstrainedAsmDefault");
+		$op1 =~ s/cpsr_flg/cpsr_f/i;
+		$op2 =~ s/asl /lsl /i if $op2;
+		$op3 =~ s/asl /lsl /i if $op3;
+		EmitAsm($opcode, $op1, $op2, $op3, $comment);
+    } else {
+		UnrecognisedAsmWarning("TranslateConstrainedAsmDefault", $original);
+    }
+}
+
+sub TranslatePotentialOutputConstrainedAsm ($$$$)
+{
+	
+    my ($original, $asm, $constraints, $comment) = @_;
+
+    if ($constraints) {
+		TranslateConstrainedAsmDefault($original, $asm, $constraints, $comment);
+    } elsif ($asm =~ /(\w+)\s+([^\,]+)\s*\,\s*(.+)\s*,?(.+)?/) {
+		my $opcode = uc $1;
+		my $op1 = $2;
+		my $op2 = $3;
+		my $op3 = $4;
+		PrintCheck();
+		EmitOriginal ($original, "TranslatePotentialOutputConstrainedAsm");
+
+		# MSR cpsr,...
+		$op1 .= "_cxsf" if ($opcode =~ /msr/i and $op1 =~ /[cs]psr\s*$/);
+		$op1 =~ s/cpsr_flg/cpsr_f/i;
+		$op2 =~ s/asl /lsl /i if $op2;
+		$op3 =~ s/asl /lsl /i if $op3;
+		EmitAsm($opcode, $op1, $op2, $op3, $comment);
+    } else {
+		UnrecognisedAsmWarning("TranslatePotentialOutputConstrainedAsm", $original);
+    }
+}
+
+
+# Here's the table of translator functions
+my %opcodeTranslatorMapping = 
+	(
+	 "LABEL:"=>\&TranslateLabel,
+
+	 ".ALIGN"=>\&TranslateAlign,
+	 ".BSS"=>\&EmitUnimplementedOpcode,
+	 ".BYTE"=>\&TranslateByte,
+	 ".CODE"=>\&TranslateCode,
+	 ".DATA"=>\&EmitUnimplementedOpcode,
+	 ".GLOBAL"=>\&TranslateGlobal,
+	 ".EXTERN"=>\&TranslateExtern,
+	 ".HWORD"=>\&EmitUnimplementedOpcode,
+	 ".LONG"=>\&EmitUnimplementedOpcode,
+	 ".SECTION"=>\&EmitUnimplementedOpcode,
+	 ".SPACE"=>\&TranslateSpace,
+	 ".TEXT"=>\&EmitUnimplementedOpcode,
+	 ".WORD"=>\&TranslateWord,
+	 "ADC"=>\&TranslateAsmDefault,
+	 "ADD"=>\&TranslateAsmDefault,
+	 "ADR"=>\&TranslateAdr,
+	 "AND"=>\&TranslateAnd,
+
+	 "B"=>\&TranslateBranchDefault,
+	 "BEQ"=>\&TranslateBranchDefault,
+	 "BNE"=>\&TranslateBranchDefault,
+	 "BHS"=>\&TranslateBranchDefault,
+	 "BCS"=>\&TranslateBranchDefault,
+	 "BCC"=>\&TranslateBranchDefault,
+	 "BLO"=>\&TranslateBranchDefault,
+	 "BMI"=>\&TranslateBranchDefault,
+	 "BPL"=>\&TranslateBranchDefault,
+	 "BVS"=>\&TranslateBranchDefault,
+	 "BVC"=>\&TranslateBranchDefault,
+	 "BHI"=>\&TranslateBranchDefault,
+	 "BLS"=>\&TranslateBranchDefault,
+	 "BGE"=>\&TranslateBranchDefault,
+	 "BLT"=>\&TranslateBranchDefault,
+	 "BGT"=>\&TranslateBranchDefault,
+	 "BLE"=>\&TranslateBranchDefault,
+	 "BCLR"=>\&TranslateBranchDefault,
+	 "BIC"=>\&TranslateAsmDefault,
+	 "BKPT"=>\&TranslateBranchDefault, # not really a branch but can reuse translator
+
+	 "BL"=>\&TranslateBranchDefault,
+	 "BLEQ"=>\&TranslateBranchDefault,
+	 "BLNE"=>\&TranslateBranchDefault,
+	 "BLHS"=>\&TranslateBranchDefault,
+	 "BLCS"=>\&TranslateBranchDefault,
+	 "BLCC"=>\&TranslateBranchDefault,
+	 "BLLO"=>\&TranslateBranchDefault,
+	 "BLMI"=>\&TranslateBranchDefault,
+	 "BLPL"=>\&TranslateBranchDefault,
+	 "BLVS"=>\&TranslateBranchDefault,
+	 "BLVC"=>\&TranslateBranchDefault,
+	 "BLHI"=>\&TranslateBranchDefault,
+	 "BLLS"=>\&TranslateBranchDefault,
+	 "BLGE"=>\&TranslateBranchDefault,
+	 "BLLT"=>\&TranslateBranchDefault,
+	 "BLGT"=>\&TranslateBranchDefault,
+	 "BLLE"=>\&TranslateBranchDefault,
+
+	 "BLX"=>\&TranslateBranchDefault,
+	 "BLXEQ"=>\&TranslateBranchDefault,
+	 "BLXNE"=>\&TranslateBranchDefault,
+	 "BLXHS"=>\&TranslateBranchDefault,
+	 "BLXCS"=>\&TranslateBranchDefault,
+	 "BLXCC"=>\&TranslateBranchDefault,
+	 "BLXLO"=>\&TranslateBranchDefault,
+	 "BLXMI"=>\&TranslateBranchDefault,
+	 "BLXPL"=>\&TranslateBranchDefault,
+	 "BLXVS"=>\&TranslateBranchDefault,
+	 "BLXVC"=>\&TranslateBranchDefault,
+	 "BLXHI"=>\&TranslateBranchDefault,
+	 "BLXLS"=>\&TranslateBranchDefault,
+	 "BLXGE"=>\&TranslateBranchDefault,
+	 "BLXLT"=>\&TranslateBranchDefault,
+	 "BLXGT"=>\&TranslateBranchDefault,
+	 "BLXLE"=>\&TranslateBranchDefault,
+
+	 "BSET"=>\&EmitUnimplementedOpcode,
+
+	 "BX"=>\&TranslateBranchDefault,
+	 "BXEQ"=>\&TranslateBranchDefault,
+	 "BXNE"=>\&TranslateBranchDefault,
+	 "BXHS"=>\&TranslateBranchDefault,
+	 "BXCS"=>\&TranslateBranchDefault,
+	 "BXCC"=>\&TranslateBranchDefault,
+	 "BXLO"=>\&TranslateBranchDefault,
+	 "BXMI"=>\&TranslateBranchDefault,
+	 "BXPL"=>\&TranslateBranchDefault,
+	 "BXVS"=>\&TranslateBranchDefault,
+	 "BXVC"=>\&TranslateBranchDefault,
+	 "BXHI"=>\&TranslateBranchDefault,
+	 "BXLS"=>\&TranslateBranchDefault,
+	 "BXGE"=>\&TranslateBranchDefault,
+	 "BXLT"=>\&TranslateBranchDefault,
+	 "BXGT"=>\&TranslateBranchDefault,
+	 "BXLE"=>\&TranslateBranchDefault,
+	 "CDP"=>\&TranslateAsmDefault,
+	 "CLZ"=>\&TranslateAsmDefault,
+	 "CMN"=>\&TranslateAsmDefault,
+	 "CMP"=>\&TranslateAsmDefault,
+	 "EOR"=>\&TranslateAsmDefault,
+	 "LDC"=>\&TranslateAsmDefault,
+	 "LDM"=>\&TranslateAsmDefault,
+	 "LDR"=>\&TranslateAsmDefault,
+	 "LDRB"=>\&TranslateAsmDefault,
+	 "LSL"=>\&EmitUnimplementedOpcode,
+	 "LSR"=>\&EmitUnimplementedOpcode,
+	 "MCR"=>\&TranslateCoprocessorInsn,
+	 "MLA"=>\&TranslateAsmDefault,
+	 "MOV"=>\&TranslatePotentialOutputConstrainedAsm,
+	 "MRC"=>\&TranslateCoprocessorInsn,
+	 "MRS"=>\&TranslatePotentialOutputConstrainedAsm,
+	 "MSR"=>\&TranslatePotentialOutputConstrainedAsm,
+	 "MUL"=>\&TranslateAsmDefault,
+	 "MVN"=>\&TranslateAsmDefault,
+	 "NOP"=>\&TranslateNop,
+	 "ORR"=>\&TranslateAsmDefault,
+	 "POP"=>\&TranslatePushPop,
+	 "PUSH"=>\&TranslatePushPop,
+	 "RSB"=>\&TranslateAsmDefault,
+	 "RSC"=>\&TranslateAsmDefault,
+	 "SBC"=>\&TranslateAsmDefault,
+	 "SMLAL"=>\&TranslateAsmDefault,
+	 "STC"=>\&TranslateAsmDefault,
+	 "STM"=>\&TranslateAsmDefault,
+	 "STR"=>\&TranslateAsmDefault,
+	 "SUB"=>\&TranslateAsmDefault,
+	 "SWI"=>\&TranslateSWI,
+	 "SWP"=>\&TranslateAsmDefault,
+	 "TEQ"=>\&TranslateAsmDefault,
+	 "TST"=>\&TranslateAsmDefault,
+	 "UMLAL"=>\&TranslateAsmDefault,
+	 "UMULL"=>\&TranslateAsmDefault,
+	 "UMULLEQ"=>\&TranslateAsmDefault,
+	 "UMULLNE"=>\&TranslateAsmDefault,
+	 "UMULLCS"=>\&TranslateAsmDefault,
+	 "UMULLCC"=>\&TranslateAsmDefault,
+	 "UMULLHS"=>\&TranslateAsmDefault,
+	 "UMULLLO"=>\&TranslateAsmDefault,
+	 "UMULLMI"=>\&TranslateAsmDefault,
+	 "UMULLPL"=>\&TranslateAsmDefault,
+	 "UMULLVS"=>\&TranslateAsmDefault,
+	 "UMULLVC"=>\&TranslateAsmDefault,
+	 "UMULLHI"=>\&TranslateAsmDefault,
+	 "UMULLLS"=>\&TranslateAsmDefault,
+	 "UMULLGE"=>\&TranslateAsmDefault,
+	 "UMULLLT"=>\&TranslateAsmDefault,
+	 "UMULLGT"=>\&TranslateAsmDefault,
+	 "UMULLLE"=>\&TranslateAsmDefault,
+	 );
+
+my @unknownOpcodes;
+
+sub GetTranslator ($)
+{
+    my $opcode = shift;
+
+    # see if opcode looks like a label
+    return $opcodeTranslatorMapping{"LABEL:"} if ($opcode =~ /\w+\:$/);
+
+    # just look it up
+    my $translator = $opcodeTranslatorMapping{$opcode};
+    return $translator if $translator;
+
+    # see if we know the 'root' of the opcode
+    return $opcodeTranslatorMapping{substr($opcode, 0, 3)};
+}
+
+
+my %seenIncFiles = ();
+
+sub trackSourceLine($)
+{
+	my ($line) = @_;
+	if ($line =~ /\#line (\d+)\s*(.*)$/ ) {
+		$lineno = $1-1;
+		$sourcefile = $2;
+		if ($sourcefile =~ /.*\.h/i) {
+			unless ($seenIncFiles{$sourcefile}) {
+				$seenIncFiles{$sourcefile} = 1;
+				my $incfile = "$sourcefile";
+				$incfile =~ s/\"//go;
+				$incfile =~ s/\\\\/${main::PATHSEP}/go;
+				$incfile = "$incroot"."$incfile" unless ($incfile =~ /^${main::PATHSEP}/);
+				push @IncFiles, $incfile;
+			}
+		}
+	}
+}
+
+sub AssertSourceFile()
+{
+	printf "#line %d %s\n", $lineno, $sourcefile;
+}
+
+my @contents;
+
+sub AddLabel($) {
+	my ($label) = @_;
+	if ($label =~ /\s*(\S+)\s*/ ) {
+		$label = $1;
+	}
+	push @knownLabels, $label;
+}
+
+sub MaybeEmitImport ($) {
+	my ($l) = @_;
+	print "\timport $l\[DYNAMIC\]\n" if NeedsImporting($l);
+}
+
+sub Pass1()
+{
+	die "ERROR: Couldn't open $infile\n" unless open INP, "<$infile";
+	my $line;
+	MAINBLOCK: while ($line = <INP>) {
+		# strip off comment if present
+		my $statement;
+		my $comment = 0;
+		
+		push @contents, $line;
+
+		if ($line =~ /^\s*$/) {
+			next MAINBLOCK;
+		}
+		if ($line =~ /(.*)\/\/(.+)/) {
+			$statement = $1;
+			$comment = $2;
+		} else {
+			$statement = $line;
+		}
+
+		if ($statement =~ /^((.*;\s*)|(\s*))asm\s*\(/) {
+			foreach $statement ( split /\;/, $statement ) {
+			  TRANSLATE_ASM:
+				if ($statement =~ /^\s*asm\s*\(\s*\"(.*)\"\s*(:.*)*\)/) {
+					my $asm = $1;
+					my $constraints = $2;
+					$asm =~ s/\"\s*\"//g;
+					$asm =~ /\s*(\S+)/;
+					my $opcode = $1;
+
+					# if its a label record it
+					if ($opcode =~ /(\w+)\:$/) {
+						AddLabel($1);
+					}
+				} 
+			}
+		}
+	}
+	close INP;
+}
+
+sub CanonicalizeAsm($) {
+    my ($s) = @_;
+    if ($s =~ /(asm\([^\)]+\))\s*\;(.*)/o) {
+	my $start = "$`";
+	my $subst = $1;
+	my $rem = $2;
+	$subst =~ s/\;/ \"\)\; asm\(\"/g;
+	return "$start"."$subst; ".CanonicalizeAsm($rem);
+    } else {
+	return $s;
+    }
+}
+
+sub Pass2()
+{
+	$lineno = 0;
+
+	my $startingBody = 0;
+	my $line;
+  MAINBLOCK: foreach $line ( @contents ) {
+	  # strip off comment if present
+	  my $statement;
+	  my $comment = 0;
+
+	  warn "$lineno\n" if $plineno;
+	  $lineno++;
+	  if ($line =~ /^\s*$/) {
+		  print "$line";
+		  next MAINBLOCK;
+	  }
+	  if ($line =~ /(.*)\/\/(.+)/) {
+		  $statement = $1;
+		  $comment = $2;
+	  } else {
+		  $statement = $line;
+	  }
+
+	  if ($statement =~ /^((.*;\s*)|(\s*))asm\s*\(/) {
+		  # unfortunately we get things like:
+		  # asm("mcr"#cc" p15, 0, "#r", c7, c5, 0; sub"#cc" pc, pc, #4 ");
+		  # we need to turn this into asm("mcr"#cc" p15, 0, "#r", c7, c5, 0"); asm("sub"#cc" pc, pc, #4 ");
+		  $statement = CanonicalizeAsm($statement);
+		  foreach $statement ( split /\;/, $statement ) {
+			TRANSLATE_ASM:
+			  if ($statement =~ /^\s*asm\s*\(\s*\"(.*)\"\s*(:.*)*\)/) {
+				  my $asm = $1;
+				  my $constraints = $2;
+				  $asm =~ s/\"\s*\"//g;
+				  $asm =~ /\s*(\S+)/;
+				  my $opcode = uc $1;
+
+				  AssertSourceFile();
+				  my $translator = GetTranslator($opcode);
+				  if ($translator) {
+					  $translator->($line, $asm, $constraints, $comment);
+				  } else {
+					  push @unknownOpcodes, $opcode ;
+					  EmitUnimplementedOpcode($line, $asm, $constraints, $comment);
+				  }
+			  } elsif ($statement =~ /^\s*(__declspec.*\s* __asm .*\)\s*\{)(.*)$/) {
+				  AssertSourceFile();
+				  print "$1\n";
+				  print "\tPRESERVE8\n\tCODE32\n";
+				  $statement = $2;
+				  goto TRANSLATE_ASM;
+			  } elsif ($statement =~ /^\s*(__asm .*\)\s*\{)(.*)$/) {
+				  AssertSourceFile();
+				  print "$1\n";
+				  print "\tPRESERVE8\n\tCODE32\n";
+				  $statement = $2;
+				  goto TRANSLATE_ASM;
+			  } elsif (($statement =~ /^\s*.*\s+__asm [^\{]*$/) || ($statement =~ /^\s*__asm [^\{]*$/)) {
+				  AssertSourceFile();
+				  print "$statement";
+				  $startingBody = 1;
+			  } elsif ($startingBody && ($statement =~ /^\s*\{\s*$/) ) {
+				  AssertSourceFile();
+				  print "$statement";
+				  print "\tPRESERVE8\n\tCODE32\n";
+				  $startingBody = 0;
+			  } elsif ($statement =~ /\s*(\S.*)$/) {
+				  print "\t$1;\n";
+			  }
+		  }
+	  } elsif (($statement =~ /^\s*.*\s+__asm [^\{]*$/) || ($statement =~ /^\s*__asm [^\{]*$/)) {
+		  AssertSourceFile();
+		  print "$statement";
+		  $startingBody = 1;
+	  } elsif ($startingBody && ($statement =~ /^\s*\{\s*$/) ) {
+		  AssertSourceFile();
+		  print "$statement";
+		  print "\tPRESERVE8\n\tCODE32\n";
+		  $startingBody = 0;
+	  } else {
+		  trackSourceLine($line);
+		  print "$line";
+	  }
+  }
+}
+
+sub Main () {
+	Pass1();
+	Pass2();
+}
+
+Main();
+
+if ($outfile) {
+	select $savedOut;
+	close OUT;
+}
+
+if (@unknownOpcodes > 0){
+    printf STDERR "WARNING: The following opcodes were unrecognised:\n";
+	my $op;
+    foreach $op (sort @unknownOpcodes) { printf STDERR "\t$op\n";}
+}
+
+
+if ($recordUnmangledSymbols){
+    open US, ">>$symbolsfile";
+    foreach (@unmangledSymbols) { print US "$_ \n";}
+    close US;
+}
+
+
+sub Usage
+{
+	print <<EOT;
+
+tranasm
+
+	Translate GCC inline assembler into ARM embedded assembler
+
+Usage:
+	tranasm [options] file
+
+Where:
+	[file]     The file to be translated.
+
+Options:
+	--record-emitter    each translation annotated with name of translation function
+	--suppress-check    omit deliberate errors inserted to force human checking
+	--no-original       do not emit the original gcc inline assembler as comment
+	--error-string      the string to emit as the deliberate error
+	--output            the name of the output file
+	--help              this message
+
+	Options may also be specified as a short abbreviation, ie -h or -o=foo.tr.
+	The default deliberate error is indicated thus />>> CHECK THIS .*<<</.
+EOT
+	exit 1;
+}
+
+__END__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/tranasm/tranasm_x86.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,75 @@
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Small Perl script for converting GCC inline X86 assembly instructions 
+# into a format acceptable to the MSVC compiler.
+# 
+#
+
+
+	# Read the input .cia file
+	open (INPUT_FILE,"$ARGV[0]") or
+		die "Couldn't open input file $!";
+	my @lines = <INPUT_FILE>;
+	close INPUT_FILE;
+
+	# Open the output file (somewhere under \epoc32\build)
+	open (OUTPUT_FILE,">$ARGV[1]") or
+		die "Couldn't open output file  $!";
+
+	# Iterate each line of the input .cia
+	foreach my $line (@lines) {
+
+		# Filter GCC inline assembly lines
+		$line=~s/\/\*(.*?)\*\///g;
+		my $output_line=$line;
+		if ($line=~m/^\s*asm\("(.*?)"(.*)\)(.*)/) {
+
+			# The above regexp seperates the asm declaration into the instruction part, and
+			# optionally a C expression as an operand
+			my $instr=$1;
+			my $c_arg=$2;
+			my $eol=$3;
+
+			# If a C operand is used, strip the weird GCC-specific syntax from it and paste
+			# it into the '%0' or '%a0' operand in the assembly instruction
+			if ($c_arg =~m/^\s*:\s*:\s*"i"\s*(.*)/) {
+				$c_arg = $1;
+				$output_line=$instr;
+
+				# Use of _FOFF has to be converted to MSVC syntax
+				if ($c_arg =~m/^_FOFF\((.*)\s*,\s*(.*)\)/) {
+					my $classname=$1;
+					my $member=$2;
+					$output_line=~s/\+%0]/]$classname.$member/;
+					$output_line=~s/\%0/$classname.$member/;
+				}
+				else {
+
+					$c_arg=~s/&//;			# strip the '&' used for address-of global code/data
+					$output_line=~s/%0/$c_arg/;
+					$output_line=~s/%a0/$c_arg/;
+				}
+			}
+			else {
+				$output_line="$instr$c_arg";
+			}
+
+			# Prefix the MSVC __asm keyword
+			$output_line = "__asm $output_line $eol\n";
+		}
+		print OUTPUT_FILE "$output_line";
+	}
+
+	close OUTPUT_FILE;
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/w32repro/w32repro.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,428 @@
+// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of the License "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Based on PREPRO.CPP and ROMBUILD.CPP
+// 
+//
+
+#define WIN32_LEAN_AND_MEAN
+#pragma warning( disable : 4201 ) // nonstandard extension used : nameless struct/union
+#include <windows.h>
+#include <winbase.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include "h_utl.h"
+#include "h_ver.h"
+
+// need to pretend we've done e32image.h, to avoid clashes with winnt.h
+#define __E32IMAGE_H__
+struct E32ImageFile
+	{
+	};
+class CBytePair;
+#include "r_rom.h"
+
+#define READ_BUFFER_SIZE 0x1000		// allows for exuberant T_REPRO without delays in it
+#define WRITE_BUFFER_SIZE 0x1000
+
+TRomLoad TheRomHeader;
+TUint ImageDataSize=0;
+TUint FileSize=0;
+TText PortNumber='1';
+TUint BaudRate=115200;
+TBool Kick=EFalse;
+TBool UseHex=EFalse;
+TBool Verbose=EFalse;
+TBool RawImage=EFalse;
+TText* BootstrapName=NULL;
+
+const TUint KReproWrapperSize = 0x100;	// REPRO protocol assumes a wrapper size of 256 bytes
+
+HANDLE comPort;
+TUint32 BytesWritten;
+
+TText *processCommandLine(int argc, char *argv[])
+//
+// Process the command line arguments, printing a helpful message if none are supplied
+//
+	{
+
+	char HelpText[] = 
+		"* Syntax: W32REPRO [options] filename[.bin]\n"
+		"* \n"
+		"* Option: -P<n>        port number, defaults to COM1,\n"
+		"* Option: -K           kick the other end, to force another repro attempt\n"
+		"* Option: -B<rate>     baud rate, minimum 9600, defaults to 115200\n"
+		"* Option: -RAW         raw image with no header\n"
+		"* Option: -BOOT <file> bootstrap with <file> transmitted at 9600 baud\n"
+		"* Option: -HEX         use base 16 (for use with ReproC)\n"
+		"* Option: -V           display raw protocol messages\n"
+		"* \n"
+		"* All messages from W32REPRO begin with '*', every thing else comes from the\n"
+		"* machine being reprogrammed.\n";
+
+	TText *filename=NULL;
+	if (argc == 1)
+		{
+		cout << HelpText;
+		return NULL;
+		}
+	for (int i=1; i<argc; i++)
+		{
+		strupr(argv[i]);
+		if ((argv[i][0] == '-') || (argv[i][0] == '/'))
+			{
+			if (strcmp(argv[i],"-RAW")==0)
+				{
+				RawImage=ETrue;
+				}
+			else if (strcmp(argv[i],"-HEX")==0)
+				{
+				UseHex=ETrue;
+				}
+			else if (strcmp(argv[i],"-BOOT")==0)
+				{
+				if (++i==argc)
+					{
+					cout << "**** Missing argument for -BOOT\n*\n";
+					cout << HelpText;
+					return NULL;
+					}
+				BootstrapName=(TText*)argv[i];
+				}
+			else if (argv[i][1] == 'P')
+				{
+				PortNumber=argv[i][2];
+				}
+			else if (argv[i][1] == 'K')
+				{
+				Kick=ETrue;
+				}
+			else if (argv[i][1] == 'V')
+				{
+				Verbose=ETrue;
+				}
+			else if (argv[i][1] == 'B')
+				{
+				TInt rate=atoi(argv[i]+2);
+				if (rate>=9600)
+					{
+					BaudRate=rate;
+					}
+				else
+					{
+					cout << "**** Invalid baud rate: " << argv[i] << "\n*\n";
+					cout << HelpText;
+					return NULL;
+					}
+				}
+			else if (argv[i][1] == '?')
+				{
+				cout << HelpText;
+				return NULL;
+				}
+			else
+				{
+				cout << "**** Unrecognised argument " << argv[i] << "\n*\n";
+				cout << HelpText;
+				return NULL;
+				}
+			}
+		else // Must be the image filename
+			filename=(TText *)argv[i];
+		}
+	if (filename==NULL)
+		{
+		cout << "**** Missing image filename\n*\n";
+		cout << HelpText;
+		}
+	return filename;
+	}
+
+TInt openComPort()
+//
+// Open the com port and configure it
+//
+	{
+	char port[5]="COM1";
+	port[3]=PortNumber;
+	comPort=CreateFile(port,GENERIC_READ+GENERIC_WRITE,0,0,OPEN_EXISTING,0,NULL);
+	if (comPort==INVALID_HANDLE_VALUE)
+		return Print(EError,"* Cannot open %s\n",port);
+
+	DCB settings;
+	if (!GetCommState(comPort,&settings))
+		return Print(EError,"* Cannot read settings for %s\n",port);
+
+	if (!SetupComm(comPort,READ_BUFFER_SIZE,WRITE_BUFFER_SIZE))
+		return Print(EError,"* Cannot set buffer sizes for %s\n",port);
+
+	settings.fBinary=TRUE;
+	settings.fParity=FALSE;
+	settings.fAbortOnError=TRUE;	// overrides EV_ERR
+	settings.BaudRate=BaudRate;
+	settings.ByteSize=8;
+	settings.Parity=NOPARITY;
+	settings.StopBits=ONESTOPBIT;
+	settings.fRtsControl=RTS_CONTROL_ENABLE;
+	settings.fDtrControl=DTR_CONTROL_ENABLE;
+	settings.fOutxCtsFlow=FALSE;
+	settings.fOutxDsrFlow=FALSE;
+	settings.fDsrSensitivity=FALSE;
+	settings.fOutX=FALSE;		// no XON/XOFF for transmission
+	settings.fInX=FALSE;		// no XON/XOFF for reception
+	settings.fNull=FALSE;		// don't discard null bytes
+
+	settings.EvtChar='\001';	// REPRO command separator
+
+	if (!SetCommState(comPort,&settings))
+		return Print(EError,"* Cannot configure %s\n",port);
+	
+	if (!SetCommMask(comPort,EV_RXFLAG+EV_ERR))
+		return Print(EError,"* Cannot set CommMask for %s\n",port);
+
+	COMMTIMEOUTS timeouts = {
+		//20,0,0,	// allow up to 20 milliseconds between characters, i.e. buffer them properly
+		MAXDWORD,0,0,	// return immediately
+		0,0	// no write timeouts
+		};
+	if (!SetCommTimeouts(comPort,&timeouts))
+		return Print(EError,"* Cannot set timeouts for %s\n",port);
+
+	if (!SetThreadPriority(GetCurrentThread(),THREAD_PRIORITY_HIGHEST))
+		Print(EError,"* Failed to raise priority of this thread err=%d\n",GetLastError());
+	if (!SetPriorityClass(GetCurrentProcess(),HIGH_PRIORITY_CLASS))
+		Print(EError,"* Failed to raise priority of this process err=%d\n",GetLastError());
+
+	Print(EScreen,"* Using %s at %d baud\n\n",port,BaudRate);
+	return KErrNone;
+	}
+
+BOOL WriteToComPort(char* data, DWORD length, char* comment)
+	{
+	if (Verbose)
+		{
+		if (comment==NULL)
+			Print(EScreen, "* TX=%*s\n", length, data);
+		else
+			Print(EScreen, "* TX <%d bytes of %s>\n", length, comment);
+		}
+	return WriteFile(comPort, data, length, &BytesWritten, NULL);
+	}
+
+TInt Bootstrap9600()
+	{
+	DCB settings;
+	if (!GetCommState(comPort,&settings))
+		return Print(EError,"* Cannot read COM settings\n");
+
+	settings.BaudRate=9600;
+	if (!SetCommState(comPort,&settings))
+		return Print(EError,"* Cannot reconfigure to 9600 baud\n");
+	
+	FILE* bootstrapFile=fopen((const char*)BootstrapName,"rb");
+	if (bootstrapFile==NULL)
+		return Print(EError,"* Cannot open bootstrap file %s for input (errno=%d)\n",BootstrapName,errno);
+
+	Print(EScreen,"* Sending bootstrap %s at 9600 baud\n",BootstrapName,BaudRate);
+
+	char bootdata[WRITE_BUFFER_SIZE];
+	TUint32 imageBytes=0;
+
+	while (!feof(bootstrapFile))
+		{
+		imageBytes=fread(bootdata,1,WRITE_BUFFER_SIZE,bootstrapFile);
+		if (imageBytes==0 && feof(bootstrapFile))
+			break;
+		if (imageBytes!=WRITE_BUFFER_SIZE && ferror(bootstrapFile))
+			{
+			return Print(ESevereError,"* Read only %d bytes of bootstrap err=%d\n",imageBytes,ferror(bootstrapFile));
+			}
+		if (!WriteToComPort(bootdata,imageBytes,"bootstrap data"))
+			return Print(ESevereError,"* Wrote only %d of %d bytes of bootstrap err=%d\n",
+				BytesWritten,imageBytes,GetLastError());
+		}
+	fclose(bootstrapFile);
+
+	settings.BaudRate=BaudRate;
+	if (!SetCommState(comPort,&settings))
+		return Print(EError,"* Cannot reconfigure to %d baud\n",BaudRate);
+	
+	Print(EScreen,"* Bootstrap downloaded\n\n");
+
+	return KErrNone;
+	}
+
+TInt main(int argc, char *argv[])
+	{
+	TInt err=KErrNone;
+
+	Print(EScreen,"\n* W32REPRO - Win32 version of PREPRO");
+  	Print(EScreen," V%02d.%02d (Build %03d)\n",MajorVersion,MinorVersion,Build);
+  	Print(EScreen,"* %s",Copyright);
+
+	TText *imageFileName = processCommandLine(argc, argv);
+	if (imageFileName==NULL)
+		return KErrGeneral;
+
+	FILE* romFile=fopen((const char*)imageFileName,"rb");
+	if (romFile==NULL)
+		return Print(EError,"* Cannot open ROM Image file %s for input (errno=%d)\n",imageFileName,errno);
+
+	if (RawImage)
+		TheRomHeader.wrapSize=0;
+	else
+		{
+		if (fread(&TheRomHeader,sizeof(TheRomHeader),1,romFile)!=1)
+			return Print(EError,"* Cannot read ROM Image header\n");
+		if (TheRomHeader.wrapSize!=KRomWrapperSize)
+			return Print(EError,"* Incorrect ROM header - wrong wrapper size\n");
+		}
+	if (fseek(romFile,0,SEEK_END)!=0)
+		return Print(EError,"* Cannot seek in ROM Image file\n");
+	FileSize=ftell(romFile);
+	ImageDataSize=FileSize-TheRomHeader.wrapSize;
+
+	Print(EAlways,"\n* ROM Image %s - 0x%06x bytes\n",imageFileName,ImageDataSize);
+
+	err=openComPort();
+	if (err!=KErrNone)
+		return err;
+
+	if (BootstrapName != NULL)
+		{
+		err=Bootstrap9600();
+		if (err!=KErrNone)
+			return err;
+		}
+
+	char romdata[WRITE_BUFFER_SIZE];
+	if (Kick)
+		{
+		memset(romdata,'!',64);		// string of non-numeric characters, won't harm old REPRO
+		WriteToComPort(romdata,64,NULL);
+		}
+	//
+	// Wait around for REPRO on the other end to send us commands
+	//
+	char command[READ_BUFFER_SIZE+1];
+	char* cp=command;
+	TInt length=READ_BUFFER_SIZE;
+	TUint expectedOffset=0;
+	TInt done=0;
+	while (!done)
+		{
+		TUint32 bytesRead=0,imageBytes=0,offset=0;
+
+		TUint32 event;
+		if (!WaitCommEvent(comPort,&event,NULL))
+			{
+			if (GetLastError()!=ERROR_OPERATION_ABORTED)
+				Print(EAlways,"\n* Unexpected WaitCommEvent failure %d event %x\n",GetLastError(),event);
+			TUint32 commError;
+			if (!ClearCommError(comPort,&commError,NULL))
+				{
+				Print(ESevereError,"\n* Failed to clear CommError - give up now!\n");
+				return KErrGeneral;
+				}
+			if (commError!=CE_OVERRUN)
+				Print(EAlways,"\n* Unexpected comms error %x\n",commError);
+			}
+		if (!ReadFile(comPort,cp,length,&bytesRead,NULL))
+			{
+			if (GetLastError()!=ERROR_OPERATION_ABORTED)
+				Print(EAlways,"\n* Unexpected ReadFile failure %d bytes %d\n",GetLastError(),bytesRead);
+			}
+		if (bytesRead==0)
+			continue;
+
+		char* next;
+		char* end = cp+bytesRead;
+		*end='\0';	// stick a terminator on the end, just in case
+
+		for (cp=(char*)command; (next=(char*)memchr(cp,'\001',end-cp))!=NULL ;cp=next+1)
+			{
+			*next='\0';	// drop the terminator
+			if (Verbose)
+				Print(EScreen, " * RX=%s\n", cp);
+			switch (cp[0])
+				{
+			case 'D':	// disconnect after successful REPRO
+				Print(EScreen,"* Disconnect\n");
+				done=1;
+				break;
+			case 'M':	// print message
+				Print(EScreen,"%s",cp+1);
+				break;
+			case 'P':	// panic
+				Print(ESevereError,"%s",cp+1);
+				break;
+			case 'R':	// request for data from the image at specified address
+				if (end-next>1)
+					break;	// must be the last command in the buffer
+				offset=strtoul(cp+1,NULL,UseHex?16:10)-KReproWrapperSize; // REPRO assumes wrapSize=256	
+				if ((offset&4095)!=0)
+					{
+					Print(ESevereError,"* Image offset %x not a multiple of 4k (%s)\n", offset,cp);
+					break;
+					}
+				if (offset>expectedOffset)
+					{
+					Print(ESevereError,"* Image offset %x should have been %x\n", offset,expectedOffset);
+					break;
+					}
+				Print(EScreen,"%x       \r",offset);		// in case we lost the message
+				expectedOffset=offset+WRITE_BUFFER_SIZE;	// what we expect next time
+				offset+=TheRomHeader.wrapSize;	// offset into the file
+				if (fseek(romFile,offset,SEEK_SET)!=0)
+					{
+					Print(ESevereError,"* Can't seek to file offset %x", offset);
+					break;
+					}
+
+				memset(romdata,0xff,WRITE_BUFFER_SIZE);
+				imageBytes=fread(romdata,1,WRITE_BUFFER_SIZE,romFile);
+				if (imageBytes!=WRITE_BUFFER_SIZE && offset+imageBytes!=FileSize)
+					{
+					Print(ESevereError,"* Read only %d bytes of image data err=%d\n",imageBytes,ferror(romFile));
+					break;
+					}
+				if (!WriteToComPort(romdata,WRITE_BUFFER_SIZE,"image data"))
+					Print(ESevereError,"* Wrote only %d bytes of image data err=%x\n",BytesWritten,GetLastError());
+				break;
+			case 'S':	// request for the size of the image
+				if (end-next>1)
+					break;	// must be the last command in the buffer
+				if (next-cp==1)
+					{
+					sprintf((char*)romdata,"%010d\n",ImageDataSize+KReproWrapperSize);
+					if (!WriteToComPort(romdata,strlen(romdata),NULL) 
+							|| BytesWritten!=strlen(romdata))
+						Print(ESevereError,"* Failed to write file size\n");
+					expectedOffset=0;	// because we are starting again
+					break;
+					}
+				// otherwise fall through
+			default:
+				Print(EAlways,"\n* Unrecognised command >%s<\n", cp);
+				}
+			}
+		if (cp<end)	// copy trailing characters back to the start of the buffer
+			memmove(command,cp,end-cp);
+		cp=command+(end-cp);
+		length=command+READ_BUFFER_SIZE-cp;
+		}
+	return KErrNone;
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/e32tools/wveconv/wveconv.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,250 @@
+// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Psion3a WVE to Series5 sound file convertor
+// 
+//
+
+#if defined(__MSVCDOTNET__) || defined(__TOOLS2__)
+#include <iostream>
+#include <fstream>
+using namespace std;
+#else  //!__MSVCDOTNET__
+#include <iostream.h>
+#include <fstream.h>
+#ifdef __CW32__
+using std::streampos;
+#endif //__CW32__
+#endif //__MSVCDOTNET__
+
+#include <string.h>
+
+#if defined(__VC32__) && !defined(__MSVCDOTNET__)
+#pragma warning( disable : 4710 )	// 'fn': function not inlined
+#endif // old MSVC
+
+#define KUidRecordApp 0x1000007e
+
+#define KUid1 0x10000037
+#define KUid2 0x1000006d
+#define KUid3 KUidRecordApp
+#define KUidCheckSum 0x5508accf
+
+#define KUidAppStream 0x10000089
+#define KUidSampleStream 0x10000052
+
+
+int ErrorNotWveFile()
+	{
+	cout << "The specified input file is not a Series 3a WVE file" << endl ;
+	return(0);
+	}
+
+int ErrorNotFound()
+	{
+	cout << "Unable to open input file" << endl ;
+	return(0);
+	}
+
+int ReadInt32(ifstream& inStream)
+	{
+    char ch[4];
+    inStream.read(&ch[0],4);
+    return *(int*)&ch[0];
+	}
+
+int ReadInt16(ifstream& inStream)
+	{
+    char ch[4];
+    inStream.read(&ch[0],2);
+    ch[2]=0;
+    ch[3]=0;
+    return *(int*)&ch[0];
+	}
+
+int WriteWord(ofstream& outStream,unsigned int aWord)
+	{
+    outStream.write((char*)&aWord,4);
+	return 0;
+	}
+
+int WriteByte(ofstream& outStream,const char aByte)
+	{
+    outStream.write((char*)&aByte,1);
+	return 0;
+	}
+
+int WriteText(ofstream& outStream,const char* aText)
+	{
+	char ch;
+	while((ch=*aText++)!=0)
+		outStream << ch;
+	return 0;
+	}
+
+void ShowHelp()
+	{
+	cout << "WveConv 0.04";
+	cout << endl ;
+	cout << "Converts a Psion 3a WVE file to an EPOC sound file" << endl ;
+	cout << endl ;
+	cout << "Usage: WVECONV S3AFILE.WVE [EPOCFILE]" << endl ;
+	cout << endl ;
+	cout << "If [EPOCFILE] is omitted, the input filename" << endl ;
+    cout << "without the extension will be used" << endl ;
+	}
+
+int ConvertFile(const char* inputFile,const char* outputFile)
+	{
+	ifstream inStream(inputFile,ios::in|ios::binary);
+	ofstream outStream(outputFile,ios::out|ios::binary);
+
+	if(!inStream.is_open())
+		return(ErrorNotFound());
+
+	const char* appName="Record.app";
+	char header[16];
+	
+	inStream.read(&header[0],16);
+
+	if(strcmp(header,"ALawSoundFile**")!=0)
+		return(ErrorNotWveFile());
+
+	int compressedLength=0;
+	int trailingSilence=0;
+	int compressorUid=0;
+	int sampleLength=0;
+	int repeatCount=0;
+    int versionNumber=0;
+//
+// extract the sample length, repeat count and trailing silence...
+//
+	versionNumber=ReadInt16(inStream);
+	sampleLength=ReadInt32(inStream);
+	trailingSilence=ReadInt16(inStream);
+	repeatCount=ReadInt16(inStream);
+    if(repeatCount==0) // 0 and 1 are the same on Series 3 
+        repeatCount=1; 
+
+	trailingSilence*=31250;
+
+	compressedLength=sampleLength;
+
+	cout << "Converting " << inputFile << " to " << outputFile << endl << endl;
+    cout << "Version number  :" << versionNumber << endl ;
+	cout << "Sample length   :" << sampleLength << " bytes" << endl ;
+	cout << "Repeat count    :" << repeatCount << endl ;
+	cout << "Trailing silence:" << trailingSilence << " uS" << endl ;
+
+	inStream.seekg((streampos)0x20);
+//
+// Write out the header...
+//
+	unsigned int rootstreamid=0x14;
+	unsigned int appstreamid=0x25;
+	unsigned int samplestreamid=0x34;
+
+// checked uid header
+
+	WriteWord(outStream,KUid1);
+	WriteWord(outStream,KUid2);
+	WriteWord(outStream,KUidRecordApp);
+	WriteWord(outStream,KUidCheckSum);
+
+// root stream id
+
+	WriteWord(outStream,rootstreamid);
+
+//stream dictionary @ 0x14 root stream
+
+	WriteByte(outStream,4);		// two entries in dictionary
+	WriteWord(outStream,KUidSampleStream);	// sample stream
+	WriteWord(outStream,samplestreamid);
+	WriteWord(outStream,KUidAppStream);	// appid stream
+	WriteWord(outStream,appstreamid);
+
+// record app identifier stream @ 0x25
+
+	WriteWord(outStream,KUidRecordApp);
+	WriteByte(outStream,42);
+	WriteText(outStream,appName);
+
+//  sample header @ 0x34
+
+	WriteWord(outStream,sampleLength);
+	WriteWord(outStream,compressorUid);
+	WriteWord(outStream,repeatCount-1); // repeats are zero based on Series 5 
+	WriteWord(outStream,trailingSilence);
+	WriteWord(outStream,compressedLength);
+//
+// Copy the sample data...
+//
+	streampos newPos=0x20; // start of sample data in 3a file...
+	inStream.seekg(newPos);
+
+	char buffer[256];
+	int count;
+	int actualLength=0;
+	do
+		{
+		inStream.read(&buffer[0],256);
+		if((count=inStream.gcount())!=0)
+			{
+			outStream.write(&buffer[0],count);
+			actualLength+=count;
+			}
+		} while(count);
+//
+// should check actualLength==sampleLength...but what the heck
+//
+	outStream.close();
+	inStream.close();
+	return 0;
+	}
+
+int main(int aNumArgs,char* aArgs[])
+	{
+	if(aNumArgs<=1 || aArgs[1][0]=='?' || aArgs[1][0]=='/')
+		{
+		ShowHelp();
+		return 0;
+		}
+	char inputFile[255];
+	char outputFile[255];
+
+	strcpy(inputFile,aArgs[1]);
+
+	if(aNumArgs==3)
+		strcpy(outputFile,aArgs[2]);
+
+	if(aNumArgs==2 || outputFile[0]==0)
+		{
+		strcpy(outputFile,inputFile);
+//
+// remove the extension
+//
+		int len=strlen(outputFile);
+		for(;;)
+			{
+			if(--len<0)
+				break;
+			if(outputFile[len]=='.')
+				{
+				outputFile[len]=0;
+				break;
+				}
+			}
+		}
+	return(ConvertFile(inputFile,outputFile));
+	}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/AllKitsRebaseline.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,379 @@
+#!perl
+
+# AllKitsRebaseline.pm
+
+# Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Version Info:
+# Run with the substed build drive as the current directory.
+# e.g.	subst m: <mapped drive to build machine>/04640/output> 
+# m:
+# <location of tool>\AllKitsRebaseline.pl <absolute target directory of new packages>  <codeline-tree>
+# 
+#
+
+
+use Win32::Registry;
+
+
+package AllKitsRebaseline;
+
+use Win32::Process;
+use Win32::Registry;
+use File::Path;
+use File::Copy;
+
+use KitStandardLocations;
+use ZipLog2Pkg;
+
+
+
+# ------------------------------------- Global variables -----------------------------------
+
+# Drive/directory for new packages
+my $SaveToDir  = "";
+my $iprTool    = "$SourceDir\\os\\buildtools\\bldsystemtools\\commonbldutils\\iprtool.pl";
+my $commonToolsDirectory = "";
+
+
+# --------------------------------- Start of CreatePackages() ----------------------------------
+#
+#
+sub CreateFileLists()
+{
+
+	# main array: within each entry is:
+	#		file name
+	#		IPR category to filter on
+	#		directory to filter on
+        #		a flag to indicate if warnings should be ignored if the directory does not exist
+	#		additional flags for CreateProcess call
+	my @RequiredLists =
+	(
+		# common generic
+		["GT-common-A", 	"A", 	"$SourceDir\\common\\generic"],	
+		["GT-common-B", 	"B", 	"$SourceDir\\common\\generic"],	
+		["GT-common-I", 	"I", 	"$SourceDir\\common\\generic"],
+		["GT-common-O", 	"O", 	"$SourceDir\\common\\generic"],
+		["GT-common-C", 	"C", 	"$SourceDir\\common\\generic"],	
+		["GT-common-DET", 	"DET", 	"$SourceDir\\common\\generic", "", "-e"],	
+		["GT-common-FG", 	"FG", 	"$SourceDir\\common\\generic"],	
+
+		# tree generic
+		["GT-$Platform-A", 		"A", 	"$SourceDir\\$Platform\\generic"],	
+		["GT-$Platform-B", 		"B", 	"$SourceDir\\$Platform\\generic"],
+		["GT-$Platform-I", 		"I", 	"$SourceDir\\$Platform\\generic"],
+		["GT-$Platform-O", 		"O", 	"$SourceDir\\$Platform\\generic"],
+		["GT-$Platform-C", 		"C", 	"$SourceDir\\$Platform\\generic"],	
+		["GT-$Platform-DET", 	"DET", 	"$SourceDir\\$Platform\\generic", "", "-e"],	
+		["GT-$Platform-FG", 	"FG", 	"$SourceDir\\$Platform\\generic"],	
+
+		# common UI
+		["UI-common-A", 	"A", 	"$SourceDir\\common\\techview"],	
+		["UI-common-B", 	"B", 	"$SourceDir\\common\\techview"],
+		["UI-common-I", 	"I", 	"$SourceDir\\common\\techview"],	
+		["UI-common-O", 	"O", 	"$SourceDir\\common\\techview"],	
+		["UI-common-C", 	"C", 	"$SourceDir\\common\\techview"],	
+		["UI-common-DET", 	"DET", 	"$SourceDir\\common\\techview"],	
+		["UI-common-FG", 	"FG", 	"$SourceDir\\common\\techview"],	
+
+		# tree UI
+		["UI-$Platform-A", 	"A", 	"$SourceDir\\$Platform\\techview", "nowarn"],	
+		["UI-$Platform-B", 	"B", 	"$SourceDir\\$Platform\\techview", "nowarn"],
+		["UI-$Platform-I", 	"I", 	"$SourceDir\\$Platform\\techview", "nowarn"],	
+		["UI-$Platform-O", 	"O", 	"$SourceDir\\$Platform\\techview", "nowarn"],	
+		["UI-$Platform-C", 	"C", 	"$SourceDir\\$Platform\\techview", "nowarn"],	
+		["UI-$Platform-DET", 	"DET", 	"$SourceDir\\$Platform\\techview", "nowarn"],	
+		["UI-$Platform-FG", 	"FG", 	"$SourceDir\\$Platform\\techview", "nowarn"],
+                
+ 		# testtools
+		["TestTools",		"DEFGT",	"$SourceDir\\os\\unref\\orphan\\comtt"],	
+ 
+   		# docs
+		["Doc-DET", 		"DET", 	"$OutputDir\\documentation"],	
+		["Doc-FGX",		"FGX", 	"$OutputDir\\documentation"],
+		["Doc-common-DET", 	"DET", 	"$SourceDir\\common\\developerlibrary"],	
+		["Doc-common-FGX",	"FGX", 	"$SourceDir\\common\\developerlibrary"],
+		["Doc-common-system-FGX",	"FGX", 	"$SourceDir\\common\\system"],
+
+		["Conn-common-Src",	"DEFGT",	"$SourceDir\\common\\epocconnect", "nowarn"],	
+		["Conn-$Platform-Src",	"DEFGT",	"$SourceDir\\$Platform\\epocconnect", "nowarn"],	
+		["Conn-Bin",		"DEFGXT",	"$OutputDir\\symbianconnect", "nowarn"],
+
+		["TechViewExampleSDK",	"DEFGXT","$SourceDir\\$Platform\\product\\TechViewExampleSDK"]
+	) ;
+
+
+
+
+	sub ErrorReport
+	{
+		print "Error: ".Win32::FormatMessage( Win32::GetLastError() );
+	}
+
+
+	# get Perl bin directory
+	if ( ( $main::HKEY_LOCAL_MACHINE->Open("SOFTWARE\\Perl", $RegObj) ) && ( $RegObj->QueryValueEx("bindir", my $Type, $Value) ) )
+	{
+		# fix problem where Perl 5.6's bindir registry variable contains the exe, but 5.005's doesn't; remove exe name
+		$Value =~ s|\\perl\.exe$||i;
+	}
+	else
+	{
+		print "Unable to find Perl key\n";
+		exit;
+	}
+	$RegObj->Close();
+
+
+	# preserve STDOUT, STDERR
+	open(OLDOUT, ">&STDOUT") or die $!; # backup filehandles 
+	open(OLDERR, ">&STDERR") or die $!; 
+	open(STDERR, ">NUL") or die $!; 
+
+
+	# start the processes 
+	my @Processes ;
+	my $ProcessObj;
+	foreach $entry (@RequiredLists)
+	{
+		my $FileName  = $entry->[0];
+		my $Category  = $entry->[1];
+		my $Directory = $entry->[2];
+                my $noWarn    = $entry->[3];
+		my $ExtraFlag = $entry->[4];
+		
+		if (-d "$Directory")
+		{
+			# direct STDOUT to output file
+			open(STDOUT,">$SaveToDir\\$FileName");
+			select(STDOUT);  # force a flush on stdout so that any output will be in sync.
+		
+			# create process and inherit STDOUT
+			Win32::Process::Create($ProcessObj, "$Value\\perl.exe", "perl.exe ".$iprTool." -c $Category  -f -1  -s  $ExtraFlag", 1, NORMAL_PRIORITY_CLASS, "$Directory") || die ErrorReport();
+			push @Processes, $ProcessObj;
+		}
+		else
+		{
+			print OLDOUT "INFO:  Directory not found: $Directory\n" if ($noWarn !~ /nowarn/i);
+			open(FILE,">$SaveToDir\\$FileName");
+			print FILE "\n";	# force all output files to exist, even if no content found by iprtool
+			close FILE;
+		}
+	};
+	
+
+	
+	# wait for them to complete
+	while (scalar(@Processes) > 0)
+	{
+		$ProcessObj = pop @Processes;
+		$ProcessObj->Wait(INFINITE);
+		print ".";
+	} print "\n";
+
+
+	open(STDOUT, ">&OLDOUT") or die $!; # restore filehandle
+	open(STDERR, ">&OLDERR") or die $!; 
+
+	my $SourceDirWithoutDrive = $SourceDir;
+	$SourceDirWithoutDrive =~ s/^\w://;			# remove initial drive letter
+	$SourceDirWithoutDrive =~ s#\\#\\\\#g;		# ensure slash is escaped
+
+	my $OutputDirWithoutDrive = $OutputDir;
+	$OutputDirWithoutDrive =~ s/^\w://;			# remove initial drive letter
+	$OutputDirWithoutDrive =~ s#\\#\\\\#g;		# ensure slash is escaped
+
+	# remove IPR status info and the initial directory (\src, \bin etc.)
+
+	foreach $entry (@RequiredLists)
+	{
+		my $FileName  = $entry->[0];
+
+		# read in file
+		if (open (FILE, "<$SaveToDir\\$FileName"))
+		{
+			my @file = <FILE>;
+			close(FILE);
+
+			unlink("$SaveToDir\\$FileName");
+
+			if (open (FILE, ">$SaveToDir\\$FileName")) 
+			{
+
+				foreach $line (@file)
+				{
+					chomp($line);
+					if ($line =~ m/^\s*([\\\/].+[^\/\\]$)/)
+					{
+						# remove whitespace at start of line
+						$line =~ s/^\s*//i;	
+						
+						# if file name includes "common", replace preceeding part with ''
+						$line =~ s/^$SourceDirWithoutDrive([\\\/]common[\\\/].*$)/$1/i;
+
+						# if file name includes $Platform, replace preceeding part with ''
+						$line =~ s/^$SourceDirWithoutDrive([\\\/]$Platform[\\\/].*$)/$1/i;
+
+						# if file name includes bin\$Platform\<build_type>\epoc32, replace with 'epoc32'
+						$line =~ s/^$OutputDirWithoutDrive[\\\/][^\\\/]*([\\\/]epoc32[\\\/].*$)/$1/i;
+						
+						# if file name includes bin\$Platform\, delete (for bin.connect, docs)
+						$line =~ s/^$OutputDirWithoutDrive//i;
+
+						# replace & with &amp;
+						$line =~ s/&/&amp;/i;	
+						
+						print FILE "$line\n" ;
+					}
+				}
+				close(FILE);
+			}
+			else
+			{
+				print "ERROR:  Couldn't create file $SaveToDir\\$FileName\n";
+			}
+		}
+		else
+		{
+			print "ERROR:  Couldn't open file $SaveToDir\\$FileName\n";
+		}
+	}
+	return 0;
+	
+}
+
+
+
+# --------------------------------- Start of ProcessPackageDefinitions() ----------------------------------------
+
+sub ProcessPackageDefinitions()
+{
+
+	my $PackageName = "com.symbian.src.package-definitions" ;
+
+	my $header1 = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<packagedef version=\"1.0\">\n   <package name=\"";
+	my $header2 = "\" major-version=\"0\" minor-version=\"0\">\n     <supplier>Symbian Ltd<\/supplier>\n     <sdk-version>7.0s<\/sdk-version>\n";
+	my $depends = "     <dependencies>\n       <dependency name=\"$dependency\" major-version=\"0\" minor-version=\"0\" build-number=\"0\"\/>\n     <\/dependencies>\n";
+	my $header3 = "   <\/package>\n\n   <manifest>\n";
+	my $footer  = "   <\/manifest>\n<\/packagedef>";
+
+	chdir ($commonToolsDirectory);  # ensure correct drive
+	chdir $CustKitPath."\\".$PkgDefDir or die "Failed to change directory to ".$CustKitPath."\\".$PkgDefDir;
+	
+	# open pkgdef file here so it's included in it's own list!
+	open (FILE, ">$PackageName.pkgdef") or die "Couldn't open file $PackageName.pkgdef";
+	print FILE $header1.$PackageName.$header2.$header3;
+
+	# CustKit packages first
+	my @Packages = <com.symbian.*.pkgdef>; 
+	foreach $package (@Packages)
+	{
+		print FILE "      <item src=\"\\$CustKitDir\\$PkgDefDir\\$package\" dest=\"[sdkroot]\\src\\$Platform\\$ProductDir\\$CustKitDir\\$PkgDefDir\\$package\"/>\n";
+	}
+	print FILE "      <item src=\"\\$CustKitDir\\$PkgDefDir\\distribution.policy\" dest=\"[sdkroot]\\src\\$Platform\\$ProductDir\\$CustKitDir\\$PkgDefDir\\distribution.policy\"/>\n" if (-e "$CustKitPath\\$PkgDefDir\\distribution.policy");
+	# single srcdef file & IPR
+	print FILE "      <item src=\"\\$CustKitDir\\$SrcDefDir\\CustKit.srcdef\" dest=\"[sdkroot]\\src\\$Platform\\$ProductDir\\$CustKitDir\\$SrcDefDir\\CustKit.srcdef\"/>\n";
+	print FILE "      <item src=\"\\$CustKitDir\\$SrcDefDir\\distribution.policy\" dest=\"[sdkroot]\\src\\$Platform\\$ProductDir\\$CustKitDir\\$SrcDefDir\\distribution.policy\"/>\n" if (-e "$CustKitPath\\$SrcDefDir\\distribution.policy");
+	
+	
+	# DevKit packages
+	chdir $DevKitPath."\\".$PkgDefDir or die "Failed to change directory to $DevKitPath\\$PkgDefDir" ;
+	@Packages = <com.symbian.*pkgdef>; 
+	foreach $package (@Packages)
+	{
+		print FILE "      <item src=\"\\$DevKitDir\\$PkgDefDir\\$package\" dest=\"[sdkroot]\\src\\$Platform\\$ProductDir\\$DevKitDir\\$PkgDefDir\\$package\"/>\n";
+	}
+	print FILE "      <item src=\"\\$DevKitDir\\$PkgDefDir\\distribution.policy\" dest=\"[sdkroot]\\src\\$Platform\\$ProductDir\\$DevKitDir\\$PkgDefDir\\distribution.policy\"/>\n" if (-e "$DevKitPath\\$PkgDefDir\\distribution.policy");
+	# single srcdef file & IPR
+	print FILE "      <item src=\"\\$DevKitDir\\$SrcDefDir\\DevKit.srcdef\" dest=\"[sdkroot]\\src\\$Platform\\$ProductDir\\$DevKitDir\\$SrcDefDir\\DevKit.srcdef\"/>\n";
+	print FILE "      <item src=\"\\$DevKitDir\\$SrcDefDir\\distribution.policy\" dest=\"[sdkroot]\\src\\$Platform\\$ProductDir\\$DevKitDir\\$SrcDefDir\\distribution.policy\"/>\n" if (-e "$DevKitPath\\$SrcDefDir\\distribution.policy");
+	
+	print FILE $footer;
+	close(FILE);
+}
+
+
+
+
+# --------------------------------- Start of AllKitsRebaseline() ----------------------------------------
+
+sub AllKitsRebaseline($)
+{
+	$SaveToDir = shift;
+
+	# get initial directory so other tools/scripts in this directory can be found
+	$commonToolsDirectory = $FindBin::Bin;
+	my $platformToolsDirectory = $commonToolsDirectory;
+	$platformToolsDirectory =~ s/common/$Platform/i;
+
+
+	if ($SaveToDir eq "")
+	{
+		die "Parameter (SaveToDir) is required - please run with parameter\n";
+	}
+	
+	# Create directory for saving temporary packages
+	if (! -e $SaveToDir)
+	{
+		mkpath $SaveToDir or die "Unable to create directory $SaveToDir - $!";
+	}
+
+
+	# Create the categorised lists of files
+	print "** CreateFileLists()\n";
+	CreateFileLists();
+
+
+	# prepare special file lists for static packages - assumes supplementary packages will build correctly
+	open (FILE,">$SaveToDir\\static");
+	my $OutputDirWithoutDrive = $OutputDir;
+	$OutputDirWithoutDrive =~ s/^\w:[\/\\]//;			# remove initial drive letter and slash
+	print FILE "$OutputDirWithoutDrive\\techview\\epoc32\\tools\\productinstaller\\License.txt\n" if (-e "$SourceDir\\common\\generic\\tools\\custkits\\ProductInstaller\\pkgdef\\License.txt");
+	print FILE "lockit.zip\n" if (-e "$ZipDir\\lockit.zip");
+	close(FILE);
+
+
+	# copy package definition files from source code control system to build directories
+	(mkpath $DevKitPath  or print "WARNING: Unable to create directory $DevKitPath - $!\n") if (! -d $DevKitPath);
+	(mkpath $SuppKitPath or print "WARNING: Unable to create directory $SuppKitPath - $!\n") if (! -d $SuppKitPath);
+
+
+	system ("xcopy $SourceDir\\$Platform\\$ProductDir\\$DevKitDir  $DevKitPath /E /Z /I /Q");
+	system ("xcopy $SourceDir\\$Platform\\$ProductDir\\$SuppKitDir $SuppKitPath /E /Z /I /Q");
+
+
+	# generate the package definition files
+	chdir ("$SaveToDir") or print "Unable to change to directory $SaveToDir\n";
+	print "** Source packages\n";
+	ZipLog2Pkg::ZipLog2Pkg ("$platformToolsDirectory\\".$BuildBaseName."_src", "-batch");
+
+	print "** Static packages\n";
+	ZipLog2Pkg::ZipLog2Pkg ("$platformToolsDirectory\\".$BuildBaseName."_static", "-batch");
+
+	# change to directory of new files and generate the non-source files
+	chdir($FindBin::Bin) or print "Unable to change to directory $FindBin::Bin\n";
+
+	print "** NonSourceRebaseline - generating logs\n";
+	$ENV{"ProductDir"}=$ProductDir;		# required by exports.bat
+	system ("call $commonToolsDirectory\\exports.bat");
+
+	print "** NonSourceRebaseline - generating non source packages\n";
+	ZipLog2Pkg::ZipLog2Pkg ("$platformToolsDirectory\\".$BuildBaseName."_bin", "-batch");
+
+
+}
+
+
+return 1;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/BAK/BuildBAK.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,382 @@
+#!perl
+
+# BuildBAK.pl
+
+# Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Version Info:
+# Version 001: initial version
+# 
+#
+
+use strict;
+use File::Copy; 
+use Getopt::Long;
+use Cwd;
+
+
+# ------------------------------------- Global variables -----------------------------------
+
+
+my $DevKitPackagesDirectory = "";
+my $TargetDirectory = "";
+my $SrcDefFile = "";
+my $KitBuildID = "";
+my $Version="";
+my $oldLayoutIntroPages = 0; # FALSE
+
+# start the program
+main();
+
+
+
+
+
+# --------------------------------- Start of SearchAndReplace() ----------------------------
+#
+# Parameters: <search string> <replace string> <old file name> <new file name>
+sub SearchAndReplace($$$$)
+{
+	# read in file
+	open (FILE, "<$_[2]") or die "Couldn't open file $_[2]";
+	my @file = <FILE>;
+	close(FILE);
+
+	if ($_[3] eq $_[2])
+	{
+		unlink($_[2]);
+	}
+		
+
+	open (FILE, ">$_[3]") or die "Couldn't create file $_[3]";
+	
+	foreach my $line (@file)
+	{
+		$line =~ s/$_[0]/$_[1]/gi ;
+    		print FILE $line ;
+	}
+	close(FILE);
+}
+
+
+# --------------------------------- CommandLineInterface() ----------------------------------------
+
+
+sub CommandLineInterface()
+{
+	my $help;
+	if ( (GetOptions( "devkit|d=s" => \$DevKitPackagesDirectory,
+			  "target|t=s" => \$TargetDirectory,
+			  "help|h|?" => \$help,
+			  "srcdef|s=s" => \$SrcDefFile,
+			  "version|v=s" => \$Version,
+			  "kitbuildid|k=s" => \$KitBuildID ) == 0 ) || ($help == 1) )
+	{
+		Usage();
+		exit; 
+	}
+
+
+	# check values received
+
+	# check that DevKit is in stated directory, exit if not found
+	my @Packages = <$DevKitPackagesDirectory/com.symbian.devkit.*.sdkpkg>;
+	if ( scalar(@Packages) == 0 )
+	{
+		die "DevKit packages not found in directory: $DevKitPackagesDirectory\n";
+	}
+
+
+	# check that target location to write extracted files to exists
+	while ( (substr($TargetDirectory, -1, 1) eq '\\') || (substr($TargetDirectory, -1, 1) eq '/') )
+	{
+		chop($TargetDirectory); 		# remove final backslashes
+	}	
+	if (! -e $TargetDirectory) 
+	{
+		mkdir $TargetDirectory;
+	}
+	
+	
+	# check that srcdef (*.srcdef) file exists
+	if ( ($SrcDefFile ne "") && (! -e $SrcDefFile) )
+	{
+		die ".srcdef file not found at: $SrcDefFile\n";
+	}
+
+
+	# check that version has been specified
+	if ($Version eq "") 
+	{
+		die "Version number undefined\n";
+	}
+
+}
+
+# --------------------------------- Usage() ----------------------------------------
+
+sub Usage()
+{
+	print <<ENDOFUSAGETEXT;
+	
+BUILDBAK.PL    Version 1.0    Copyright (c) 2005 Symbian Software Ltd
+                              All rights reserved
+                                  
+Usage:
+  perl BuildBAK.pl  [options]
+ 
+where options are:
+  -d[evkit] <path>        path to directory containing DevKit packages
+  -k[itbuildID] <ID>      Kit build ID (e.g. 03651b_Symbian_OS_v9.1 or 02407 (v7.0s))
+  -s[rcdef] <path>        full path and file name for the .srcdef file
+  -t[arget] <path>        path to directory to build BAK into
+  -v[ersion] <number>     Symbian OS version number (e.g. 7.0s or 9.1)
+   
+ENDOFUSAGETEXT
+}
+
+# --------------------------------- Start of CopyPreBuiltPackagesAndInstaller() ----------------------------------------
+
+sub CopyPreBuiltPackagesAndInstaller($$)
+{
+	# underscore required at end of filenames which may be ambiguous (i.e.  com.symbian.bin.GT-arm_ and  com.symbian.bin.GT-arm-data_)
+	my @Files=(	"com.symbian.api.GT-arm_",
+			"com.symbian.api.GT-restricted_",
+			"com.symbian.api.GT-shared_",
+			"com.symbian.api.GT-winscw_",
+			"com.symbian.api.GT-wins_",
+			"com.symbian.api.TechView-arm_",
+			"com.symbian.api.TechView-restricted_",
+			"com.symbian.api.TechView-shared_",
+			"com.symbian.api.TechView-winscw_",
+			"com.symbian.api.TechView-wins_",
+			"com.symbian.bin.GT-arm-data_",
+			"com.symbian.bin.GT-arm_",
+			"com.symbian.bin.GT-restricted-data_",
+			"com.symbian.bin.GT-restricted_",
+			"com.symbian.bin.GT-shared-data_",
+			"com.symbian.bin.GT-shared_",
+			"com.symbian.bin.GT-wins-shared_",
+			"com.symbian.bin.GT-wins-udeb_",
+			"com.symbian.bin.GT-wins-urel_",
+			"com.symbian.bin.GT-winscw-shared_",
+			"com.symbian.bin.GT-winscw-udeb_",
+			"com.symbian.bin.GT-winscw-urel_",
+			"com.symbian.bin.TechView-arm-data_",
+			"com.symbian.bin.TechView-arm_",
+			"com.symbian.bin.TechView-restricted-data_",
+			"com.symbian.bin.TechView-restricted_",
+			"com.symbian.bin.TechView-shared-data_",
+			"com.symbian.bin.TechView-shared_",
+			"com.symbian.bin.TechView-wins-shared_",
+			"com.symbian.bin.TechView-wins-udeb_",
+			"com.symbian.bin.TechView-wins-urel_",
+			"com.symbian.bin.TechView-winscw-shared_",
+			"com.symbian.bin.TechView-winscw-udeb_",
+			"com.symbian.bin.TechView-winscw-urel_",
+			"com.symbian.bin.TechView-winscw_",
+			"com.symbian.bin.TechView-wins_",
+			"com.symbian.debug.GT-winscw_",
+			"com.symbian.debug.GT-wins_",
+			"com.symbian.debug.TechView-winscw_",
+			"com.symbian.debug.TechView-wins_",
+			"com.symbian.doc.intro-pages_",
+			"com.symbian.doc.sdl-cpp-examples_",
+			"com.symbian.doc.sdl-java-examples_",
+			"com.symbian.doc.sdl-shared-examples_",
+			"com.symbian.src.GT-general_",
+			"com.symbian.src.open_",
+			"com.symbian.tools.all-arm_",
+			"com.symbian.tools.all-shared_",
+			"com.symbian.tools.all-winscw_",
+			"com.symbian.tools.all-wins_",
+			"com.symbian.tools.arm_",
+			"com.symbian.tools.boardsupport_",
+			"com.symbian.tools.cpp-custom_",
+			"com.symbian.tools.cpp_",
+			"com.symbian.tools.java_",
+			"com.symbian.tools.libraries_",
+			"com.symbian.tools.shared-custom_",
+			"com.symbian.tools.shared_",
+			"com.symbian.tools.winscw_",
+			"com.symbian.tools.wins_",
+	# installer
+			"autorun.inf",
+			"data1.cab",
+			"data1.hdr",
+			"data2.cab",
+			"ikernel.ex_",
+			"layout.bin",
+			"Setup.exe",
+			"setup.inx",
+			"ReadMe.html");
+
+	print "Checking to see what files need copying...\n";
+
+	foreach my $file (@Files)
+	{
+		my @fullfilename = <$DevKitPackagesDirectory\\$file*>;
+		$fullfilename[0] =~ m/([^\\\/]*)$/i;
+		my $filename = $1;
+
+		if (! -e "$TargetDirectory\\$filename") 
+		{
+			copy "$DevKitPackagesDirectory\\$filename",  "$TargetDirectory\\$filename";
+			print "  copied:  $filename\n";
+		}
+	}
+
+}
+
+
+# --------------------------------- Start of WriteSetupIni() ----------------------------------------
+
+
+sub WriteSetupIni()
+{
+	# write setup.ini with current KitID
+
+	print "Writing setup.ini...\n";
+
+
+	open (FILE, ">$TargetDirectory\\setup.ini") or die "Couldn't open file $TargetDirectory\\setup.ini";
+
+	print FILE "[Startup]\n";
+	print FILE "FreeDiskSpace=0\n";
+	print FILE "AppName=Symbian OS Kit Installer\n";
+	print FILE "[Languages]\n";
+	print FILE "Default=0x0009\n";
+	print FILE "count=1\n";
+	print FILE "key0=0x0009\n";
+	print FILE "[Symbian]\n";
+	print FILE "KitID=$KitBuildID\n";
+	print FILE "TargetDirectory=Symbian\n";
+	print FILE "DiskSpaceRequirementMessage=Please note that a full installation of the Kit may require up to 2.0Gb of disk space on an NTFS partition or 2.5Gb on a FAT32 partition, in addition to around 500Mb of space in the system Temporary directory.\n";
+
+	close(FILE);
+}
+
+# --------------------------------- BuildChangedPackages() ----------------------------------------
+sub BuildChangedPackages()
+{
+	print "Building new packages...\n";
+
+	SearchAndReplace("X.X", $Version, "com.symbian.api.StrongCrypto.template", "com.symbian.api.StrongCrypto.pkgdef");
+	SearchAndReplace("X.X", $Version, "com.symbian.bak.bin.template", "com.symbian.bak.bin.pkgdef");
+	SearchAndReplace("X.X", $Version, "com.symbian.bak.doc-old.layout.template", "com.symbian.bak.doc.pkgdef") if ($oldLayoutIntroPages);
+	SearchAndReplace("X.X", $Version, "com.symbian.bak.doc.template", "com.symbian.bak.doc.pkgdef") if (!$oldLayoutIntroPages);
+	SearchAndReplace("X.X", $Version, "com.symbian.bak.src.template", "com.symbian.bak.src.pkgdef");
+	SearchAndReplace("X.X", $Version, "com.symbian.bak.tool.template", "com.symbian.bak.tool.pkgdef");
+
+	system ("buildpkg.exe -v -f -b $KitBuildID -k $KitBuildID com.symbian.api.StrongCrypto.pkgdef");
+	system ("buildpkg.exe -v -f -b $KitBuildID -k $KitBuildID com.symbian.bak.bin.pkgdef");
+	system ("buildpkg.exe -v -f -b $KitBuildID -k $KitBuildID com.symbian.bak.doc.pkgdef");
+	system ("buildpkg.exe -v -f -b $KitBuildID -k $KitBuildID com.symbian.bak.src.pkgdef");
+	system ("buildpkg.exe -v -f -b $KitBuildID -k $KitBuildID com.symbian.bak.tool.pkgdef");
+}
+
+
+# --------------------------------- BuildNewNavigationPages() ----------------------------------------
+
+
+sub BuildNewNavigationPages()
+{
+	print "Building new navigation pages...\n";
+
+	system ("rd [sdkroot] /s/q");
+
+	system ("unzip -q -o $DevKitPackagesDirectory\\com.symbian.doc.intro-pages_0_0* -x package.xml");
+	system ("copy start.html [sdkroot]\\doc");
+	system ("copy readme.html [sdkroot]\\doc\\documents") if (($Version !~ /^7\./) && ($Version !~ /^8\./)); # for v9 and later
+	system ("copy aboutdevkit*.gif [sdkroot]\\doc\\Graphics");
+	SearchAndReplace("X.X", $Version, "com.symbian.doc.intro-pages.template", "com.symbian.doc.intro-pages.pkgdef");
+	system ("buildpkg.exe -v -f -b $KitBuildID -k $KitBuildID com.symbian.doc.intro-pages.pkgdef");
+}
+
+
+
+# --------------------------------- BuildNewSrcDefFile() ----------------------------------------
+
+
+sub BuildNewSrcDefFile()
+{
+	SearchAndReplace("%version%", $KitBuildID, "DevKit.srcdef.template", "$KitBuildID.srcdef");
+}
+
+
+
+
+# --------------------------------- Main() ----------------------------------------
+
+sub main()
+{
+	# N.B. ensure path contains \epoc32\tools;\epoc32\gcc\bin;
+
+	CommandLineInterface();
+
+
+	$oldLayoutIntroPages = 1 if ($Version =~ /^7\./) || ($Version =~ /^8\.0/); # set TRUE for v8.0 and previous
+
+
+	# get required pre-built package definitions and installer
+	CopyPreBuiltPackagesAndInstaller($DevKitPackagesDirectory, $TargetDirectory);
+
+
+	# write the new setup.ini file
+	WriteSetupIni();
+
+
+	# build changed packages and move to target directory
+	BuildChangedPackages();
+
+
+	# build new navigation pages 
+	BuildNewNavigationPages() if (!$oldLayoutIntroPages);
+
+
+	# move changed packages to target directory
+	foreach my $sdkpkg (<*.sdkpkg>)
+	{
+		if (move ($sdkpkg, $TargetDirectory) == 0)
+		{	print $!; }
+	}
+	unlink <*.pkgdef>;
+
+
+	# build srcdef file for this Kit if necessary
+	my $SrcDefFilePreExisted = 1;
+	if ($SrcDefFile eq "") 
+	{
+		BuildNewSrcDefFile();
+		my $dir = cwd;
+		$SrcDefFile = "$dir\\$KitBuildID.srcdef";
+		$SrcDefFilePreExisted = 0;
+	}
+	
+
+	# copy the readme.html file and licence text to root of BAK
+	system ("copy [sdkroot]\\doc\\documents\\readme.html $TargetDirectory") if (!$oldLayoutIntroPages);
+	system ("copy [sdkroot]\\doc\\packages\\sdl7.0\\intro_pages\\readme.html $TargetDirectory") if ($oldLayoutIntroPages);
+	system ("copy licence.txt $TargetDirectory");
+
+
+	# create XML package source file
+	print "Creating XML source file...\n";
+	chdir $TargetDirectory;
+	system("createpkgsrc -s \"$SrcDefFile\"");
+	unlink $SrcDefFile if ($SrcDefFilePreExisted == 0);
+
+}
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/BAK/DevKit.srcdef.template	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<packagesrcdef version="1.0">
+
+  <manifest>
+    <item src="com.symbian.bak.bin_0_0_%version%.sdkpkg" dest="com.symbian.bak.bin_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.bak.doc_0_0_%version%.sdkpkg" dest="com.symbian.bak.doc_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.bak.src_0_0_%version%.sdkpkg" dest="com.symbian.bak.src_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.bak.tool_0_0_%version%.sdkpkg" dest="com.symbian.bak.tool_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.api.GT-arm_0_0_%version%.sdkpkg" dest="com.symbian.api.GT-arm_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.api.GT-restricted_0_0_%version%.sdkpkg" dest="com.symbian.api.GT-restricted_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.api.GT-shared_0_0_%version%.sdkpkg" dest="com.symbian.api.GT-shared_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.api.GT-winscw_0_0_%version%.sdkpkg" dest="com.symbian.api.GT-winscw_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.api.GT-wins_0_0_%version%.sdkpkg" dest="com.symbian.api.GT-wins_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.api.StrongCrypto_0_0_%version%.sdkpkg" dest="com.symbian.api.StrongCrypto_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.api.TechView-arm_0_0_%version%.sdkpkg" dest="com.symbian.api.TechView-arm_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.api.TechView-restricted_0_0_%version%.sdkpkg" dest="com.symbian.api.TechView-restricted_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.api.TechView-shared_0_0_%version%.sdkpkg" dest="com.symbian.api.TechView-shared_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.api.TechView-winscw_0_0_%version%.sdkpkg" dest="com.symbian.api.TechView-winscw_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.api.TechView-wins_0_0_%version%.sdkpkg" dest="com.symbian.api.TechView-wins_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.bin.GT-arm_0_0_%version%.sdkpkg" dest="com.symbian.bin.GT-arm_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.bin.GT-arm-data_0_0_%version%.sdkpkg" dest="com.symbian.bin.GT-arm-data_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.bin.GT-restricted_0_0_%version%.sdkpkg" dest="com.symbian.bin.GT-restricted_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.bin.GT-restricted-data_0_0_%version%.sdkpkg" dest="com.symbian.bin.GT-restricted-data_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.bin.GT-shared_0_0_%version%.sdkpkg" dest="com.symbian.bin.GT-shared_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.bin.GT-shared-data_0_0_%version%.sdkpkg" dest="com.symbian.bin.GT-shared-data_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.bin.GT-wins-shared_0_0_%version%.sdkpkg" dest="com.symbian.bin.GT-wins-shared_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.bin.GT-wins-udeb_0_0_%version%.sdkpkg" dest="com.symbian.bin.GT-wins-udeb_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.bin.GT-wins-urel_0_0_%version%.sdkpkg" dest="com.symbian.bin.GT-wins-urel_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.bin.GT-winscw-shared_0_0_%version%.sdkpkg" dest="com.symbian.bin.GT-winscw-shared_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.bin.GT-winscw-udeb_0_0_%version%.sdkpkg" dest="com.symbian.bin.GT-winscw-udeb_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.bin.GT-winscw-urel_0_0_%version%.sdkpkg" dest="com.symbian.bin.GT-winscw-urel_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.bin.TechView-arm_0_0_%version%.sdkpkg" dest="com.symbian.bin.TechView-arm_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.bin.TechView-arm-data_0_0_%version%.sdkpkg" dest="com.symbian.bin.TechView-arm-data_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.bin.TechView-restricted_0_0_%version%.sdkpkg" dest="com.symbian.bin.TechView-restricted_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.bin.TechView-restricted-data_0_0_%version%.sdkpkg" dest="com.symbian.bin.TechView-restricted-data_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.bin.TechView-shared_0_0_%version%.sdkpkg" dest="com.symbian.bin.TechView-shared_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.bin.TechView-shared-data_0_0_%version%.sdkpkg" dest="com.symbian.bin.TechView-shared-data_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.bin.TechView-wins-shared_0_0_%version%.sdkpkg" dest="com.symbian.bin.TechView-wins-shared_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.bin.TechView-wins-udeb_0_0_%version%.sdkpkg" dest="com.symbian.bin.TechView-wins-udeb_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.bin.TechView-wins-urel_0_0_%version%.sdkpkg" dest="com.symbian.bin.TechView-wins-urel_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.bin.TechView-winscw-shared_0_0_%version%.sdkpkg" dest="com.symbian.bin.TechView-winscw-shared_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.bin.TechView-winscw-udeb_0_0_%version%.sdkpkg" dest="com.symbian.bin.TechView-winscw-udeb_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.bin.TechView-winscw-urel_0_0_%version%.sdkpkg" dest="com.symbian.bin.TechView-winscw-urel_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.bin.TechView-winscw_0_0_%version%.sdkpkg" dest="com.symbian.bin.TechView-winscw_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.bin.TechView-wins_0_0_%version%.sdkpkg" dest="com.symbian.bin.TechView-wins_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.debug.GT-winscw_0_0_%version%.sdkpkg" dest="com.symbian.debug.GT-winscw_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.debug.GT-wins_0_0_%version%.sdkpkg" dest="com.symbian.debug.GT-wins_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.debug.TechView-winscw_0_0_%version%.sdkpkg" dest="com.symbian.debug.TechView-winscw_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.debug.TechView-wins_0_0_%version%.sdkpkg" dest="com.symbian.debug.TechView-wins_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.doc.intro-pages_0_0_%version%.sdkpkg" dest="com.symbian.doc.intro-pages_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.doc.sdl-cpp-examples_0_0_%version%.sdkpkg" dest="com.symbian.doc.sdl-cpp-examples_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.doc.sdl-java-examples_0_0_%version%.sdkpkg" dest="com.symbian.doc.sdl-java-examples_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.doc.sdl-shared-examples_0_0_%version%.sdkpkg" dest="com.symbian.doc.sdl-shared-examples_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.src.GT-general_0_0_%version%.sdkpkg" dest="com.symbian.src.GT-general_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.src.open_0_0_%version%.sdkpkg" dest="com.symbian.src.open_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.tools.all-arm_0_0_%version%.sdkpkg" dest="com.symbian.tools.all-arm_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.tools.all-shared_0_0_%version%.sdkpkg" dest="com.symbian.tools.all-shared_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.tools.all-winscw_0_0_%version%.sdkpkg" dest="com.symbian.tools.all-winscw_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.tools.all-wins_0_0_%version%.sdkpkg" dest="com.symbian.tools.all-wins_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.tools.arm_0_0_%version%.sdkpkg" dest="com.symbian.tools.arm_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.tools.boardsupport_0_0_%version%.sdkpkg" dest="com.symbian.tools.boardsupport_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.tools.cpp_0_0_%version%.sdkpkg" dest="com.symbian.tools.cpp_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.tools.cpp-custom_0_0_%version%.sdkpkg" dest="com.symbian.tools.cpp-custom_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.tools.java_0_0_%version%.sdkpkg" dest="com.symbian.tools.java_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.tools.libraries_0_0_%version%.sdkpkg" dest="com.symbian.tools.libraries_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.tools.shared_0_0_%version%.sdkpkg" dest="com.symbian.tools.shared_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.tools.shared-custom_0_0_%version%.sdkpkg" dest="com.symbian.tools.shared-custom_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.tools.winscw_0_0_%version%.sdkpkg" dest="com.symbian.tools.winscw_0_0_%version%.sdkpkg"/>
+    <item src="com.symbian.tools.wins_0_0_%version%.sdkpkg" dest="com.symbian.tools.wins_0_0_%version%.sdkpkg"/>
+  </manifest>
+</packagesrcdef>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/BAK/ReadMe.html	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,244 @@
+<HTML>
+	<TITLE>README and RELEASE NOTES for Symbian OS Binary Access Kits</TITLE>
+
+	<H1>README for Symbian OS Binary Access Kits</H1>
+	<H2>Copyright (c) Symbian Software Ltd 2002 - 2008.  All rights reserved.</H2>
+
+	<H3>Introduction</H3>
+  	<P>This file provides a pre-installation point of reference for
+  	Symbian OS Kit installation and configuration information.</P>
+
+	<H3>System Requirements</H3> 
+
+	<UL>
+		<H4>Hardware</H4>
+
+		<P>A PC with the minimum of a Pentium 1GHz processor (or
+		equivalent) and 512MB of RAM running Microsoft Windows
+		2000 or Windows XP.  Drive space requirements 
+		depend on the number and size of Kit packages selected for
+		installation.  However, the following can be considered
+		as a guide :</P>
+
+		<UL>
+			<H5>Symbian OS Development Kit Drive Space Requirements</H5>
+
+			<P>500 MB in Temp directory for installation runtime,
+			in addition to the following for a full installation :</P>
+
+			<P>-Windows 2000/XP : 1.5 GB</P>
+		</UL>
+
+		<P>NOTE: Although a Symbian OS Kit may install and run on a
+		system that is less powerful than the recommended
+		specification, performance may be unacceptable for
+		development purposes.</P>
+
+		<P>To run and debug OS components and applications on target
+		hardware a compatible reference board or target device
+		is required.</P>
+
+		<P>The following hardware reference boards are currently
+		supported :</P>
+		
+		<UL>
+		<LI>Intel DBPXA255</LI>
+		<LI>Intel DBPXA250</LI>
+		</UL>
+	</UL>
+
+ 	<UL>      
+		<H4>Software</H4>
+
+		<P>For OS component and application development using an
+		emulator, Metrowerks CodeWarrior Development Tools for
+		Symbian OS Professional Edition is required.</P>
+
+		<P>To browse the Symbian Developer Library, a web browser
+		supporting tables is needed.</P>
+	</UL>
+
+
+	<H3>Starting Kit Installation</H3>
+
+	<UL>
+		<P>Symbian OS Kits have a comprehensive installation mechanism.
+		If installing from CD-ROM, this should run automatically on
+		disc insertion.  However, if installation fails to begin :</P>
+
+		<UL>
+			<LI>ensure you have administrative privileges if running Windows NT or 2000<BR><BR></LI>
+
+			<LI>select "Start|Run"</LI>
+			<LI>enter "&lt;CD-ROM DRIVE&gt\setup.exe " into the "Open" field</LI>
+			<LI>click "OK"</LI>
+		</UL>
+
+		<P>If installing from a network, the root location of the Kit
+		image must first be mapped to a drive on the target system -
+		double-clicking the "setup.exe" on this drive will invoke
+		the installation process.</P>
+
+	</UL>
+
+
+	<H3>Kit Installation Process</H3>
+
+	<UL>
+		<H4>Destination Location</H4>
+
+		<P>On acceptance of the Kit license agreement, the
+		installation mechanism will prompt for a destination folder
+		- this is the root location to where the main Kit contents
+		will eventually be copied via the Symbian OS Kit Installer.<P>
+
+		<H4>Select Components</H4>
+
+		<P>There are two mandatory, and two optional, installations
+		that are made prior to selecting specific Symbian OS Kit
+		components to install.</P>
+
+		<UL>
+
+			<H5>Symbian OS Kit Installer (mandatory)</H5>
+
+			<P>A utility for managing the installation of Symbian Kit
+			components - launched automatically as part of the
+			initial installation process.  This is the means by which
+			the various component packages that form a Symbian OS Kit
+			can be selected, installed, maintained and removed.</P>
+
+			<H5>Java Runtime Environment (mandatory)</H5>
+
+			<P>The Sun Java runtime required to run both the Symbian OS
+			Kit Installer and a range of GUI developer tools that may
+			be offered for installation.  This Java runtime is of a
+			specific version to support the installer and these tools
+			- it is a mandatory requirement of Kit installation that
+			this version is installed.</P>
+
+			<P>NOTE: The Java Runtime Environment will not install and
+			run successfully on a system running at less than a 256
+			colour depth.</P>
+
+			<P>NOTE: The version currently specified and supplied is 
+			1.3.1 build 01. This is detected in the registry as key
+			"HKLM\SOFTWARE\JavaSoft\Java Runtime Environment\1.3.1".</P>
+
+			<H5>Perl (optional)</H5>
+
+			<P>ActiveState Perl is required by the majority of Symbian
+			developer tools.  This interpreter is of a specific
+			version to support these developer tools.  If the Kit
+			installation is for development, and the required version
+			of Perl (or later) is not installed, it is recommended 
+			that this option is left checked.</P>
+
+			<P>NOTE: Perl is supplied as a Microsoft Installer package; 
+			if the Microsoft Installer system is not present on the 
+			machine, this part of the installation may fail. (The 
+			Microsoft Installer is available from the Microsoft web 
+			site.)
+
+			<P>NOTE: On completion of Perl and Java installations, the
+			ActiveState and Sun installers may prompt for a system
+			reboot in order to complete configuration - this should
+			not be performed until the whole Kit has been installed.</P>
+
+			<H5>CodeWarrior plug-ins (optional)</H5>
+
+			<P>If a CodeWarrior IDE for Symbian OS development is
+			installed, the option to update its development plug-ins
+			with Kit supplied versions will be offered.  It is advised
+			that this option is left checked - if the Kit is supplying
+			newer versions than those already present they will be
+			installed - if the Kit is supplying older versions, the
+			existing plug-ins will be left untouched.</P>
+		</UL>
+
+		<P>NOTE: The "Space Required" and "Space Available" figures
+		displayed at this point only refer to the space requirements
+		of the Symbian OS Kit Installer and, if selected, the
+		installers for the Java Runtime Environment and Perl.  The
+		install locations and space requirements for the Java
+		Runtime Environment and Perl are determined by their own
+		installers.  The space requirements for the actual content
+		of the Kit are dealt with by the Symbian OS Kit Installer.</P>
+
+
+		<H4>Symbian OS Kit Installer</H4>
+
+		<P>After the initial installation process, the Symbian OS Kit
+		Installer will be invoked to manage the selection and
+		installation of the component packages that form the Kit's
+		contents.</P>
+
+		<UL>
+
+			<H5>Package Selection</H5>
+    
+			<P>After clicking "Next" from the Kit Installer splash screen,
+			a selectable list of the Kit's available installation
+			packages will be displayed.  Packages are ordered in a
+			hierarchical fashion with 0 or more packages attached to
+			high level categories.  It is possible to select and
+			de-select packages and whole categories at will - the OS
+			Kit Installer will warn of any package dependency issues
+			when "Next" is clicked.</P>
+
+			<H5>Package Confirmation and Space Requirements</H5>
+
+			<P>The OS Kit Installer will provide a list of the dependency
+			compliant packages that have been selected for
+			installation, together with an estimate of both the
+			current space available on the destination folder's drive
+			and the space available post-package installation.</P>
+
+			<P>NOTE: Due to differences in the files systems used by
+			different variants of Windows, it is only possible to
+			supply an estimate of the space available after
+			installation.  The actual figure may vary from that
+			displayed.</P>
+
+			<H5>Package Retrieval, License Agreements and Installation</H5>
+
+			<P>After confirmation of package selection and
+			acknowledgement of space requirements, the OS Kit
+			Installer will retrieve the selected packages from the
+			installation media.  Should any of the selected packages
+			have specific license requirements, these will be
+			displayed post-retrieval and must be acknowledged for
+			installation to continue.  On license acknowledgement,
+			the selected packages will be installed to the destination
+			folder, and the OS Kit Installer will undertake any system
+			configuration (menu items, environment variables etc.)
+			they require.</P>
+		</UL>
+	</UL>
+
+
+	<H3>Kit Modification, Removal and Repair Process</H3>
+
+	<UL>
+		<P>The installed packages of a Symbian OS Kit can be modified by
+		re-invoking the Symbian OS Kit Installer.  To do this, go to
+		"Start|Settings|Control Panel|Add/Remove Programs" and
+		double-click the Kit's entry on the list.  From the resultant
+		dialog, select "Modify" and "Next >".  The Symbian OS Kit
+		Installer will be displayed and the same process used during
+		installation can be repeated.</P>
+
+		<P>NOTE: When adding packages to a previously installed kit, the
+		original media must be used from the same location i.e. if
+		the base install was from a CD-ROM, subsequent package
+		additions should be made using this CD-ROM from the original
+		install drive.</P>
+  
+		<P>To remove an entire Symbian OS Kit, follow the procedure for
+		modification but select "Remove" from the dialog.</P>
+
+		<P>NOTE: The "Repair" option is currently not supported.</P>
+	</UL>
+
+</HTML>
+
Binary file toolsandutils/productionbldtools/BAK/aboutdevkit.gif has changed
Binary file toolsandutils/productionbldtools/BAK/aboutdevkit_b.gif has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/BAK/com.symbian.api.StrongCrypto.template	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<packagedef version="1.0">
+  <package name="com.symbian.api.StrongCrypto" major-version="0" minor-version="0">
+    <supplier>Symbian Ltd</supplier>
+    <sdk-version>X.X</sdk-version>
+  </package>
+
+  <manifest>
+  </manifest>
+</packagedef>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/BAK/com.symbian.bak.bin.template	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<packagedef version="1.0">
+  <package name="com.symbian.bak.bin" major-version="0" minor-version="0">
+    <supplier>Symbian Ltd</supplier>
+    <sdk-version>X.X</sdk-version>
+    <category>Binary code</category>
+    <description>Binary code for Symbian OS vX.X Binary Access Kit</description>
+
+    <attributes>
+      <device name="com.symbian.bak"/>
+    </attributes>
+    <install-path-tags>
+      <tag tag="[emul]">[sdkroot]\bin\bak</tag>
+    </install-path-tags>
+    <dependencies>
+      <dependency name="com.symbian.debug.TechView-wins" major-version="0" minor-version="0" build-number="0"/>
+      <dependency name="com.symbian.debug.TechView-winscw" major-version="0" minor-version="0" build-number="0"/>
+
+      <dependency name="com.symbian.bin.TechView-arm" major-version="0" minor-version="0" build-number="0"/>
+      <dependency name="com.symbian.bin.TechView-shared" major-version="0" minor-version="0" build-number="0"/>
+      <dependency name="com.symbian.bin.TechView-restricted" major-version="0" minor-version="0" build-number="0"/>
+
+      <dependency name="com.symbian.bin.TechView-wins" major-version="0" minor-version="0" build-number="0"/>
+      <dependency name="com.symbian.bin.TechView-shared" major-version="0" minor-version="0" build-number="0"/>
+      <dependency name="com.symbian.bin.TechView-restricted" major-version="0" minor-version="0" build-number="0"/>
+
+      <dependency name="com.symbian.bin.TechView-winscw" major-version="0" minor-version="0" build-number="0"/>
+      <dependency name="com.symbian.bin.TechView-shared" major-version="0" minor-version="0" build-number="0"/>
+      <dependency name="com.symbian.bin.TechView-restricted" major-version="0" minor-version="0" build-number="0"/>
+    </dependencies>
+
+    <shortcuts>
+      <shortcut shortcut-path="Symbian" file-path="[sdkroot]\bin\bak\epoc32\release\winscw\urel\epoc.exe" description="Symbian OS emulator (winscw urel)">
+        <shortcut-name xml:lang="en-US" name="Symbian OS Kits\Symbian OS vX.X Binary Access Kit\Emulator\CodeWarrior release emulator "/>
+      </shortcut>
+      <shortcut shortcut-path="Symbian" file-path="[sdkroot]\bin\bak\epoc32\release\winscw\udeb\epoc.exe" description="Symbian OS emulator (winscw udeb)">
+        <shortcut-name xml:lang="en-US" name="Symbian OS Kits\Symbian OS vX.X Binary Access Kit\Emulator\CodeWarrior debug emulator "/>
+      </shortcut>
+    </shortcuts>
+
+
+  </package>
+
+  <manifest>
+  </manifest>
+</packagedef>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/BAK/com.symbian.bak.doc-old.layout.template	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<packagedef version="1.0">
+  <package name="com.symbian.bak.doc" major-version="0" minor-version="0">
+    <supplier>Symbian Ltd</supplier>
+    <sdk-version>X.X</sdk-version>
+    <category>Examples and Documentation</category>
+    <description>Code Examples and Product Documentation for Symbian OS vX.X Binary Access Kit</description>
+
+    <attributes>
+      <device name="com.symbian.bak"/>
+    </attributes>
+    <dependencies>
+      <dependency name="com.symbian.doc.sdl-cpp-examples" major-version="0" minor-version="0" build-number="0"/>
+      <dependency name="com.symbian.doc.sdl-java-examples" major-version="0" minor-version="0" build-number="0"/>
+      <dependency name="com.symbian.doc.intro-pages" major-version="0" minor-version="0" build-number="0"/>
+    </dependencies>
+    <shortcuts>
+      <shortcut shortcut-path="Symbian" file-path="[sdkroot]\doc\packages\sdl7.0s\start.html" description="Product Documentation">
+        <shortcut-name xml:lang="en-US" name="Symbian OS Kits\Symbian OS vX.X Binary Access Kit\Product Documentation "/>
+      </shortcut>
+    </shortcuts>
+  </package>
+
+  <manifest>
+  </manifest>
+</packagedef>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/BAK/com.symbian.bak.doc.template	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<packagedef version="1.0">
+  <package name="com.symbian.bak.doc" major-version="0" minor-version="0">
+    <supplier>Symbian Ltd</supplier>
+    <sdk-version>X.X</sdk-version>
+    <category>Examples and Documentation</category>
+    <description>Code Examples and Product Documentation for Symbian OS vX.X Binary Access Kit</description>
+
+    <attributes>
+      <device name="com.symbian.bak"/>
+    </attributes>
+    <dependencies>
+      <dependency name="com.symbian.doc.sdl-cpp-examples" major-version="0" minor-version="0" build-number="0"/>
+      <dependency name="com.symbian.doc.sdl-java-examples" major-version="0" minor-version="0" build-number="0"/>
+      <dependency name="com.symbian.doc.intro-pages" major-version="0" minor-version="0" build-number="0"/>
+    </dependencies>
+    <shortcuts>
+      <shortcut shortcut-path="Symbian" file-path="[sdkroot]\doc\start.html" description="Product Documentation">
+        <shortcut-name xml:lang="en-US" name="Symbian OS Kits\Symbian OS vX.X Binary Access Kit\Product Documentation "/>
+      </shortcut>
+    </shortcuts>
+  </package>
+
+  <manifest>
+  </manifest>
+</packagedef>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/BAK/com.symbian.bak.src.template	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<packagedef version="1.0">
+  <package name="com.symbian.bak.src" major-version="0" minor-version="0">
+    <supplier>Symbian Ltd</supplier>
+    <sdk-version>X.X</sdk-version>
+    <category>Test and reference source code</category>
+    <description>Test and reference source code for Symbian OS vX.X Binary Access Kit</description>
+
+    <attributes>
+      <device name="com.symbian.bak.vX.X"/>
+    </attributes>
+    <dependencies>
+      <dependency name="com.symbian.src.GT-general" major-version="0" minor-version="0" build-number="0"/>
+      <dependency name="com.symbian.src.open" major-version="0" minor-version="0" build-number="0"/>
+    </dependencies>
+  </package>
+
+  <manifest>
+  </manifest>
+</packagedef>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/BAK/com.symbian.bak.tool.template	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<packagedef version="1.0">
+  <package name="com.symbian.bak.tool" major-version="0" minor-version="0">
+    <supplier>Symbian Ltd</supplier>
+    <sdk-version>X.X</sdk-version>
+    <category>Tools</category>
+    <description>Tools for Symbian OS vX.X Binary Access Kit</description>
+
+    <attributes>
+      <device name="com.symbian.bak"/>
+    </attributes>
+
+    <install-path-tags>
+      <tag tag="[emul]">[sdkroot]\bin\bak</tag>
+    </install-path-tags>
+  
+
+    <dependencies>
+      <dependency name="com.symbian.tools.all-arm" major-version="0" minor-version="0" build-number="0"/>
+      <dependency name="com.symbian.tools.all-winscw" major-version="0" minor-version="0" build-number="0"/>
+      <dependency name="com.symbian.tools.all-wins" major-version="0" minor-version="0" build-number="0"/>
+      <dependency name="com.symbian.tools.boardsupport" major-version="0" minor-version="0" build-number="0"/>
+    </dependencies>
+
+    <shortcuts>
+      <shortcut shortcut-path="Symbian" file-path="[registry[HKEY_LOCAL_MACHINE][SOFTWARE\Perl][bindir]]\perl.exe" description="AIFBuilder" arguments='"[registry[HKEY_LOCAL_MACHINE][SOFTWARE\Symbian\EPOC SDKs][CommonPath]]\tools\splash.pl" "AIFBuilder\AIFBuilder.jar" @[kitid]:com.symbian.bak @:override:'>
+        <shortcut-name xml:lang="en-US" name="Symbian OS Kits\Symbian OS vX.X Binary Access Kit\Tools\AIFBuilder"/>
+        <shortcut-icon path="[sdkroot]\bin\bak\epoc32\tools\AIFBuilder\Builder.ico"/>
+      </shortcut>
+      <shortcut shortcut-path="Symbian" file-path="[registry[HKEY_LOCAL_MACHINE][SOFTWARE\Perl][bindir]]\perl.exe" description="Sisar" arguments='"[registry[HKEY_LOCAL_MACHINE][SOFTWARE\Symbian\EPOC SDKs][CommonPath]]\tools\splash.pl" "sisar\sisar.jar" @[kitid]:com.symbian.bak @:override:'>
+        <shortcut-name xml:lang="en-US" name="Symbian OS Kits\Symbian OS vX.X Binary Access Kit\Tools\Sisar"/>
+        <shortcut-icon path="[sdkroot]\bin\bak\epoc32\tools\Sisar\Sisar.ico"/>
+      </shortcut>
+   </shortcuts>
+
+  </package>
+
+  <manifest>
+  </manifest>
+</packagedef>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/BAK/com.symbian.doc.intro-pages.template	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<packagedef version="1.0">
+  <package name="com.symbian.doc.intro-pages" major-version="0" minor-version="0">
+    <supplier>Symbian Ltd</supplier>
+    <sdk-version>X.X</sdk-version>
+  </package>
+
+  <manifest>
+    <item src="[sdkroot]\doc\DISTRIBUTION.POLICY" dest="[sdkroot]\doc\DISTRIBUTION.POLICY"/>
+    <item src="[sdkroot]\doc\Documents\ActiveState_licence.html" dest="[sdkroot]\doc\Documents\ActiveState_licence.html"/>
+    <item src="[sdkroot]\doc\Documents\CIC_licence.html" dest="[sdkroot]\doc\Documents\CIC_licence.html"/>
+    <item src="[sdkroot]\doc\Documents\Contacts.html" dest="[sdkroot]\doc\Documents\Contacts.html"/>
+    <item src="[sdkroot]\doc\Documents\Copyrights_Trademarks.html" dest="[sdkroot]\doc\Documents\Copyrights_Trademarks.html"/>
+    <item src="[sdkroot]\doc\Documents\DISTRIBUTION.POLICY" dest="[sdkroot]\doc\Documents\DISTRIBUTION.POLICY"/>
+    <item src="[sdkroot]\doc\Documents\DigitalEquiCorp_licence.html" dest="[sdkroot]\doc\Documents\DigitalEquiCorp_licence.html"/>
+    <item src="[sdkroot]\doc\Documents\FreeBSD_licence.html" dest="[sdkroot]\doc\Documents\FreeBSD_licence.html"/>
+    <item src="[sdkroot]\doc\Documents\Unisys_licence.html" dest="[sdkroot]\doc\Documents\Unisys_licence.html"/>
+    <item src="[sdkroot]\doc\Documents\gnu_licence.html" dest="[sdkroot]\doc\Documents\gnu_licence.html"/>
+    <item src="[sdkroot]\doc\Documents\nodocs.html" dest="[sdkroot]\doc\Documents\nodocs.html"/>
+    <item src="[sdkroot]\doc\Documents\readme.html" dest="[sdkroot]\doc\Documents\readme.html"/>
+    <item src="[sdkroot]\doc\Graphics\DISTRIBUTION.POLICY" dest="[sdkroot]\doc\Graphics\DISTRIBUTION.POLICY"/>
+    <item src="[sdkroot]\doc\Graphics\aboutdevkit.gif" dest="[sdkroot]\doc\Graphics\aboutdevkit.gif"/>
+    <item src="[sdkroot]\doc\Graphics\aboutdevkit_b.gif" dest="[sdkroot]\doc\Graphics\aboutdevkit_b.gif"/>
+    <item src="[sdkroot]\doc\Graphics\acknow1.gif" dest="[sdkroot]\doc\Graphics\acknow1.gif"/>
+    <item src="[sdkroot]\doc\Graphics\acknow2.gif" dest="[sdkroot]\doc\Graphics\acknow2.gif"/>
+    <item src="[sdkroot]\doc\Graphics\backgr_green_solid.jpg" dest="[sdkroot]\doc\Graphics\backgr_green_solid.jpg"/>
+    <item src="[sdkroot]\doc\Graphics\bluegraphic.jpg" dest="[sdkroot]\doc\Graphics\bluegraphic.jpg"/>
+    <item src="[sdkroot]\doc\Graphics\bluewall.jpg" dest="[sdkroot]\doc\Graphics\bluewall.jpg"/>
+    <item src="[sdkroot]\doc\Graphics\contacts1.gif" dest="[sdkroot]\doc\Graphics\contacts1.gif"/>
+    <item src="[sdkroot]\doc\Graphics\contacts2.gif" dest="[sdkroot]\doc\Graphics\contacts2.gif"/>
+    <item src="[sdkroot]\doc\Graphics\development.gif" dest="[sdkroot]\doc\Graphics\development.gif"/>
+    <item src="[sdkroot]\doc\Graphics\devlib.gif" dest="[sdkroot]\doc\Graphics\devlib.gif"/>
+    <item src="[sdkroot]\doc\Graphics\devlib_b.gif" dest="[sdkroot]\doc\Graphics\devlib_b.gif"/>
+    <item src="[sdkroot]\doc\Graphics\devnet-logo120.gif" dest="[sdkroot]\doc\Graphics\devnet-logo120.gif"/>
+    <item src="[sdkroot]\doc\Graphics\doc.gif" dest="[sdkroot]\doc\Graphics\doc.gif"/>
+    <item src="[sdkroot]\doc\Graphics\exprojects.gif" dest="[sdkroot]\doc\Graphics\exprojects.gif"/>
+    <item src="[sdkroot]\doc\Graphics\exprojects_b.gif" dest="[sdkroot]\doc\Graphics\exprojects_b.gif"/>
+    <item src="[sdkroot]\doc\Graphics\glossary.gif" dest="[sdkroot]\doc\Graphics\glossary.gif"/>
+    <item src="[sdkroot]\doc\Graphics\glossary_b.gif" dest="[sdkroot]\doc\Graphics\glossary_b.gif"/>
+    <item src="[sdkroot]\doc\Graphics\home.gif" dest="[sdkroot]\doc\Graphics\home.gif"/>
+    <item src="[sdkroot]\doc\Graphics\logo_black.gif" dest="[sdkroot]\doc\Graphics\logo_black.gif"/>
+    <item src="[sdkroot]\doc\Graphics\relnotes1.gif" dest="[sdkroot]\doc\Graphics\relnotes1.gif"/>
+    <item src="[sdkroot]\doc\Graphics\relnotes2.gif" dest="[sdkroot]\doc\Graphics\relnotes2.gif"/>
+    <item src="[sdkroot]\doc\Graphics\start.gif" dest="[sdkroot]\doc\Graphics\start.gif"/>
+    <item src="[sdkroot]\doc\Graphics\symbianos70s.gif" dest="[sdkroot]\doc\Graphics\symbianos70s.gif"/>
+    <item src="[sdkroot]\doc\Graphics\symbianos71.gif" dest="[sdkroot]\doc\Graphics\symbianos71.gif"/>
+    <item src="[sdkroot]\doc\Graphics\tutorial.gif" dest="[sdkroot]\doc\Graphics\tutorial.gif"/>
+    <item src="[sdkroot]\doc\Graphics\tutorial_b.gif" dest="[sdkroot]\doc\Graphics\tutorial_b.gif"/>
+    <item src="[sdkroot]\doc\start.html" dest="[sdkroot]\doc\start.html"/>
+    <item src="[sdkroot]\doc\tools_sdk_eng_NavigationPages.mrp" dest="[sdkroot]\doc\tools_sdk_eng_NavigationPages.mrp"/>
+  </manifest>
+</packagedef>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/BAK/distribution.policy	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,2 @@
+Category T
+OSD:	Reference/Test	Tools
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/BAK/licence.txt	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,7 @@
+BINARY ACCESS KIT
+
+Copyright (c) Symbian Software Ltd 1998-2008.  All Rights Reserved. 
+
+To be used under and subject to the terms of a prior written licence agreement between Symbian Software Ltd. and your company; and solely under which agreement with Symbian, you are entitled to receive these files.
+
+Your use of this software must be in accordance with the terms of your licensing agreement(s) with Symbian and any third party licensors. By downloading and / or using this software, you are bound by your licence agreement with Symbian. Symbian does not accept responsibility for the accuracy of the contents of this release or any files or materials. The content of this release is subject to copyright and/or other intellectual property laws and any unauthorised use of the contents of this may violate such laws. 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/BAK/start.html	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,238 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Symbian OS Binary Access Kit</title>
+
+
+  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
+  <script language="JavaScript">
+<!--
+function MM_swapImgRestore() { //v3.0
+var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
+}
+function MM_preloadImages() { //v3.0
+var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
+var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
+if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
+}
+function MM_findObj(n, d) { //v3.0
+var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
+d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
+if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
+for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); return x;
+}
+function MM_swapImage() { //v3.0
+var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
+if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
+}
+//-->
+  </script>
+  <script language="JavaScript">
+<!--
+function LinkDocs(url) {location.href="documents/nodocs.html";}
+//-->
+  </script>
+  <script src="doc_source/doc.js">
+  </script>
+  <style type="text/css">
+<!--
+A { color: #FF9900;text-decoration:none }
+A:hover {color: #000000
+;font-weight:none;text-decoration:none}
+-->
+  </style>
+</head>
+
+
+<body onload="MM_preloadImages('Graphics/acknow2.gif','Graphics/contacts2.gif','Graphics/relnotes2.gif','Graphics/aboutdevkit_b.gif','Graphics/exprojects_b.gif','Graphics/devlib_b.gif','Graphics/glossary_b.gif','Graphics/tutorial_b.gif')" style="background-color: rgb(0, 102, 153);" alink="#000000" link="#006699" vlink="#006699">
+
+<div align="left">
+<table align="center" bgcolor="#ffffff" border="0" bordercolor="#009999" cellpadding="0" cellspacing="0" width="780">
+
+  <tbody>
+
+    <tr bordercolor="#99FFFF" background="Graphics/backgr_green_solid.jpg" bgcolor="#009999">
+
+      <td colspan="2" align="center" height="30" valign="middle">
+      <table background="Graphics/backgr_green_solid.jpg" bgcolor="#009999" border="0" cellpadding="0" cellspacing="0" width="100%">
+
+        <tbody>
+
+          <tr>
+
+            <td background="Graphics/backgr_green_solid.jpg" bgcolor="#009999" height="31" width="16%">
+            <div align="left"><a href="http://www.symbian.com"><img src="graphics/logo_black.gif" align="middle" border="0" height="39" width="125"></a></div>
+
+            </td>
+
+            <td background="Graphics/backgr_green_solid.jpg" bgcolor="#99ffff" height="31" width="84%">
+            <div align="right"><img src="Graphics/symbianos70s.gif" height="40" width="345"></div>
+
+            </td>
+
+          </tr>
+
+        </tbody>
+      </table>
+
+      <div align="left"></div>
+
+      </td>
+
+    </tr>
+
+    <tr bordercolor="#009999">
+
+      <td colspan="2" align="center" valign="middle">
+      <table align="center" border="0" width="93%">
+
+        <tbody>
+
+          <tr bordercolor="#FFFFFF" align="left" valign="top">
+
+            <td colspan="5" bordercolor="#FFFFFF" height="220" valign="top">
+            <p align="left"> <font color="#006699" face="Arial, Helvetica, sans-serif" size="4"> <b><font color="#000000"><br>
+
+Welcome to the Symbian OS Binary Access Kit</font></b></font><br>
+
+            <font color="#006699" face="Arial, Helvetica, sans-serif" size="2">The
+OS Binary Access Kit is for companies making hardware and software
+products for Symbian OS. It enables the development of driver,
+middleware and prototype application software for Symbian OS. It can be
+used to extend and modify Symbian OS source code, and rebuild
+components to be supplied to Symbian or to Symbian OS licensees for
+integration into products. The OS Binary Access Kit contains:</font>
+            </p>
+            <ul>
+
+              <li><font color="#006699" face="Arial, Helvetica, sans-serif" size="2">documented
+application and system development APIs </font></li>
+
+              <li><font color="#006699" face="Arial, Helvetica, sans-serif" size="2">build
+tools for emulators, target hardware and ROM building tools </font></li>
+
+              <li><font color="#006699" face="Arial, Helvetica, sans-serif" size="2">the
+TechView UI for launching and controlling programs and enabling
+GUI-based testing.</font></li>
+
+            </ul>
+
+            </td>
+
+          </tr>
+
+
+
+          <tr>
+            <td>
+              <p><font color="#000000" face="Arial, Helvetica, sans-serif" size="3"><b>Symbian OS Developer Library</font></b>
+              <br>
+              <font color="#006699" face="Arial, Helvetica, sans-serif" size="2">Please download the Developer Library from the Platinum Partners' web site.</font>
+              <br> <br>
+
+            </td>
+          </tr>
+
+
+ 
+          <tr>
+
+            <td colspan="2" align="left" height="88" valign="top">
+            <div align="left">
+            <p><font color="#006699" face="Arial, Helvetica, sans-serif" size="3"><b><font color="#000000">Symbian OS developer products and support</font></b></font>
+            <br>
+
+            <font color="#006699" face="Arial, Helvetica, sans-serif" size="2"> The <a href="http://developer.symbian.com"><b>Symbian
+Developer Network</b></a> provides a range of support for
+Symbian OS developers, from the Symbian OS knowledgebase to developer
+and white papers and the annual <a href="http://www.smartphoneshow.com"><b>Symbian
+Smartphone Show</b></a>. With support for C++, Java and OPL
+development, Symbian Developer Network offers developers the training
+and resources needed to understand and develop for Symbian OS phones.
+Registering with Symbian Developer Network gives developers access to: </font><font color="#006699" face="Arial, Helvetica, sans-serif" size="2"> </font></p>
+
+            </div>
+
+            </td>
+
+          </tr>
+
+          <tr>
+
+            <td align="left" height="96" valign="top" width="65%">
+            <ul>
+
+              <li><font color="#006699" face="Arial, Helvetica, sans-serif" size="2">free
+developer and white papers </font></li>
+
+              <li><font color="#006699" face="Arial, Helvetica, sans-serif" size="2">Symbian
+OS knowledgebase</font></li>
+
+              <li><font color="#006699" face="Arial, Helvetica, sans-serif" size="2">software
+downloads </font></li>
+
+              <li><font color="#006699" face="Arial, Helvetica, sans-serif" size="2">technology
+newsgroups and newsletters </font></li>
+
+              <li><font color="#006699" face="Arial, Helvetica, sans-serif" size="2">membership
+packages.</font></li>
+
+            </ul>
+
+            </td>
+
+            <td align="left" height="96" valign="top" width="35%">
+            <div align="right">
+            <p>&nbsp;</p>
+
+            <p><a href="http://www.symbian.com/developer/index.html"><img src="Graphics/devnet-logo120.gif" align="bottom" border="0" height="53" width="120"></a></p>
+
+            </div>
+
+            </td>
+
+          </tr>
+
+        </tbody>
+      </table>
+
+      </div>
+
+      </td>
+
+    </tr>
+
+    <tr bordercolor="#009999">
+
+      <td colspan="2" align="center" background="Graphics/backgr_green_solid.jpg" height="2" valign="middle">
+      <table background="Graphics/backgr_green_solid.jpg" border="0" cellpadding="0" cellspacing="0" width="100%">
+
+        <tbody>
+
+          <tr align="center" bgcolor="#009999" valign="middle">
+
+            <td colspan="2">
+            <div align="center">
+            <p><font face="Arial, Helvetica, sans-serif"><a href="Documents/Copyrights_Trademarks.html" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('acknow','','Graphics/acknow2.gif',1)"><img name="acknow" src="Graphics/acknow1.gif" align="middle" border="0" height="30" width="144"></a><font color="#ffffff" face="Arial Black, Arial, Helvetica, sans-serif" size="1"><a href="Documents/Contacts.html" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('contacts','','Graphics/contacts2.gif',1)"><img name="contacts" src="Graphics/contacts1.gif" align="middle" border="0" height="30" width="84"></a></font><font color="#ffffff" face="Arial Black, Arial, Helvetica, sans-serif" size="1"><a href="Documents/readme.html" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('relnotes','','Graphics/relnotes2.gif',1)"><img name="relnotes" src="Graphics/relnotes1.gif" align="middle" border="0" height="30" width="264"></a></font></font></p>
+
+            </div>
+
+            </td>
+
+          </tr>
+
+        </tbody>
+      </table>
+
+      </td>
+
+    </tr>
+
+  </tbody>
+</table>
+
+</div>
+
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/BFrC/diffold.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,218 @@
+#!/usr/bin/perl
+
+# Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# diffold.pl - Takes the output of testold.pl (or multiple concatenated outputs) and removed
+# entries from it which are present in a second output of testold.pl (or multiple
+# concatenated outputs).
+# 
+#
+
+my ($file, $basefile) = readOpts(@ARGV);
+
+diffOld($file, $basefile);
+
+exit 0;
+
+sub readOpts(@)
+	{
+	my (@args) = @_;
+
+	my @paths = ();
+
+	foreach my $arg (@args)
+		{
+		if ($arg =~ /^-/)
+			{
+			if ((lc($arg) eq "--help")
+			  ||(lc($arg) eq "-h")
+			   )
+			   	{
+				showHelp();
+				exit 0;
+				}
+			else
+				{
+				print STDERR "Option '$arg' not recognised.\n\n";
+				print STDERR "Try 'mergeold.pl --help' for help.\n";
+				exit 1;
+				}
+			}
+		else
+			{
+			if (scalar(@paths)>=2)
+				{
+				print STDERR "Diffold accepts only two arguments.\n\n";
+				print STDERR "Try 'mergeold.pl --help' for help.\n";
+				exit 1;
+				}
+			else
+				{
+				push @paths, $arg;
+				}
+			}
+		}
+	
+	if (scalar(@paths)<2)
+		{
+		print STDERR "Diffold must be given two files to compare.\n\n";
+		print STDERR "Try 'diffold.pl --help' for help.\n";
+		exit 1;
+		}
+	
+	return ($paths[0], $paths[1]);
+	}
+
+sub diffOld($$)
+	{
+	my ($file, $base) = @_;
+
+	# Load $file
+
+	my %files = ();
+
+	open(FILE, $file);
+
+	my $dir = undef;
+
+	foreach my $line (<FILE>)
+		{
+		chomp($line);
+
+		if ($line =~ /^\*/)
+			{
+			if ($line =~ /^\*DIR:/)
+				{
+				$dir = $line;
+				$dir =~ s/^\*DIR:\s*//;
+
+				$dir =~ s/[\/\\]*$//; # Remove trailing \/
+				}
+			else
+				{
+				close(FILE);
+				die "'$file' is not a valid input.\n('$line' not recognised)\n";
+				}
+			}
+		else
+			{
+			if (defined($dir))
+				{
+				$line =~ s/^[\/\\]*//; # Remove preceding \/
+
+				$files{$dir."\\".$line}=1;
+				}
+			else
+				{
+				close(FILE);
+				die "'$file' is not a valid input.\n(DIR must be set before '$line')\n";
+				}
+			}
+		}
+	
+	close(FILE);
+
+	# Compare against $base
+	
+	open (BASE, $base);
+
+	$dir = undef;
+
+	foreach my $line (<BASE>)
+		{
+		chomp($line);
+
+		if ($line =~ /^\*/)
+			{
+			if ($line =~ /^\*DIR:/)
+				{
+				$dir = $line;
+				$dir =~ s/^\*DIR:\s*//;
+
+				$dir =~ s/[\/\\]*$//; # Remove trailing \/
+				}
+			else
+				{
+				close(BASE);
+				die "'$base' is not a valid input.\n('$line' not recognised)\n";
+				}
+			}
+		else
+			{
+			if (defined($dir))
+				{
+				$line =~ s/^[\/\\]*//; # Remove preceding \/
+
+				delete $files{$dir."\\".$line};
+				}
+			else
+				{
+				close(BASE);
+				die "'$base' is not a valid input.\n(DIR must be set before '$line')\n";
+				}
+			}
+		}
+	
+	close(BASE);
+
+	# Output comparison
+
+	my $root = undef;
+
+	foreach my $file (keys(%files))
+		{
+		if (defined($root))
+			{
+			do
+				{
+				$file =~ s/[^\/\\]*[\/\\]?$//; # Remove last dir/filename
+				}
+			until ((index($root, $file) == 0) || ($file !~ /[\/\\]/));
+			
+			if (index($root, $file) == 0)
+				{
+				$root = $file;
+				}
+			else
+				{
+				$root = "";
+				}
+			}
+		else
+			{
+			$root = $file;
+			$root =~ s/[^\/\\]*$// # Remove filename to leave path
+			}
+		}
+
+	print "*DIR:$root\n";
+
+	my $lenroot = length($root);
+
+	foreach my $file (sort(keys(%files)))
+		{
+		print substr($file, $lenroot)."\n";
+		}
+	}
+
+sub showHelp()
+	{
+	print "diffold.pl [options] File Base-file\n";
+	print " - Takes file and removes any entries which are also\n";
+	print "   in the base-file. Both files are assumed to be\n";
+	print "   the output (or a concatenation of outputs) of testold.pl\n\n";
+	print "Options:\n";
+	print "  --help or -h - Display this message\n\n";
+	}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/BFrC/distribution.policy	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,2 @@
+Category T
+OSD:	Reference/Test	Tools
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/BFrC/listdir.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,122 @@
+#!/usr/bin/perl
+
+# Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# listdir.pl - displays the contents of a directory and all its subdirectories
+# 
+#
+
+my ($path, $files) = readOpts(@ARGV);
+
+list($path, $files);
+
+exit 0;
+
+sub readOpts(@)
+	{
+	my (@args) = @_;
+
+	my $path = undef;
+	my $files = 0;
+
+	foreach my $arg (@args)
+		{
+		if ($arg =~ /^-/)
+			{
+			if ((lc($arg) eq "--help")
+			  ||(lc($arg) eq "-h")
+			   )
+			   	{
+				showHelp();
+				exit 0;
+				}
+			if ((lc($arg) eq "--files")
+			  ||(lc($arg) eq "-f")
+			  )
+			  	{
+				$files = 1;
+				}
+			else
+				{
+				print STDERR "Option '$arg' not recognised.\n\n";
+				print STDERR "Try 'listdir.pl --help' for help.\n";
+				exit 1;
+				}
+			}
+		else
+			{
+			if (defined($path))
+				{
+				print STDERR "Listdir accepts only one argument.\n\n";
+				print STDERR "Try 'listdir.pl --help' for help.\n";
+				exit 1;
+				}
+			else
+				{
+				$path = $arg;
+				}
+			}
+		}
+	
+	if (!defined($path))
+		{
+		print STDERR "Listdir must be given a path to list.\n\n";
+		print STDERR "Try 'listdir.pl --help' for help.\n";
+		exit 1;
+		}
+	
+	return ($path, $files);
+	}
+
+sub list($)
+	{
+	my ($path, $files) = @_;
+	
+	opendir(PATH, $path);
+	my @dir = readdir(PATH);
+	closedir(PATH);
+
+	foreach $entry (@dir)
+		{
+		if ($entry =~ /^\.\.?$/)
+			{
+			}
+		elsif (-d $path."\\".$entry)
+			{
+			if (!$files)
+				{
+				print $path."\\".$entry."\\\n";
+				}
+			list($path."\\".$entry, $files);
+			}
+		else
+			{
+			print $path."\\".$entry."\n";
+			}
+		}
+	}
+
+sub showHelp()
+	{
+	my ($date) = @_;
+	
+	print "listdir.pl [options] Path\n";
+	print " - displays the contents of a directory and all its subdirectories\n\n";
+	print "   As dir /S /B, except only the path below the current dir is given\n\n";
+	print "  Path - The path to the root of the files to be modified\n";
+	print "Options:\n";
+	print "  --files or -f - Only list the files in each subdir, not the dirs themselves\n";
+	print "  --help or -h - Display this message\n\n";
+	}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/BFrC/setold.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,132 @@
+#!/usr/bin/perl
+
+# Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# setold.pl - sets the last modified date of all files under a path to 1970
+# 
+#
+
+$date = 500000000; # e.g 0 = 00:00 1st Jan 1970, 1000000000 (10^9) = 01:46 9th Sep 2001 
+
+my ($path, $batch) = readOpts(@ARGV);
+
+if (!$batch)
+	{
+	print "Setting all files under path '$path' to be last modified at ".localtime($date).".\nAre you sure (Y/N)?\n";
+
+	if (lc(getc(STDIN)) ne "y")
+		{
+		print "Aborting.\n";
+		exit 0;
+		}
+	}
+
+setOld($path,$date);
+
+exit 0;
+
+sub readOpts(@)
+	{
+	my (@args) = @_;
+
+	my $path = undef;
+	my $batch = 0;
+
+	foreach my $arg (@args)
+		{
+		if ($arg =~ /^-/)
+			{
+			if ((lc($arg) eq "--help")
+			  ||(lc($arg) eq "-h")
+			   )
+			   	{
+				showHelp();
+				exit 0;
+				}
+			elsif (lc($arg) eq "--batch")
+				{
+				$batch = 1;
+				}
+			else
+				{
+				print STDERR "Option '$arg' not recognised.\n\n";
+				print STDERR "Try 'setold.pl --help' for help.\n";
+				exit 1;
+				}
+			}
+		else
+			{
+			if (defined($path))
+				{
+				print STDERR "Setold accepts only one argument.\n\n";
+				print STDERR "Try 'setold.pl --help' for help.\n";
+				exit 1;
+				}
+			else
+				{
+				$path = $arg;
+				}
+			}
+		}
+	
+	if (!defined($path))
+		{
+		print STDERR "Setold must be given a path to set.\n\n";
+		print STDERR "Try 'setold.pl --help' for help.\n";
+		exit 1;
+		}
+	
+	return ($path, $batch);
+	}
+
+sub setOld($$)
+	{
+	my ($path,$date) = @_;
+	
+	opendir(PATH, $path);
+	my @dir = readdir(PATH);
+	closedir(PATH);
+
+	foreach $entry (@dir)
+		{
+		if ($entry =~ /^\.\.?$/)
+			{
+			}
+		elsif (-d $path."\\".$entry)
+			{
+			setOld($path."\\".$entry,$date);
+			}
+		else
+			{
+			# Set file's last modified stamp
+			my ($dev, $ino, $mode, $nlink, $uid, $gid, $rdev, $size, $atime, $mtime, $ctime, $blksize, $blocks) = stat($path."\\".$entry);
+
+			utime $atime, $date, ($path."\\".$entry) or print "Failed to set $path\\$entry\n";
+			}
+		}
+	}
+
+sub showHelp()
+	{
+	my ($date) = @_;
+	
+	print "setold.pl [options] Path\n";
+	print " - sets the last modified date of all files under a path to ".localtime($date)."\n\n";
+	print "  Path - The path to the root of the files to be modified\n";
+	print "Options:\n";
+	print "  --batch - Don't prompt for confirmation (use with care)\n";
+	print "  --help or -h - Display this message\n\n";
+	print "Note that this tool always operates on all subdirectories of the given path\n";
+	}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/BFrC/testold.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,119 @@
+#!/usr/bin/perl
+
+# Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# testold.pl - check the last modified date of all files under a path to see if
+# the last modified date is after 00:00 1 Jan 1970
+# 
+#
+
+$date = 500000000;
+
+my ($path) = readOpts(@ARGV);
+
+print "*DIR:$path\n";
+
+testOld($path, "", $date);
+
+exit 0;
+
+sub readOpts(@)
+	{
+	my (@args) = @_;
+
+	my $path = undef;
+
+	foreach my $arg (@args)
+		{
+		if ($arg =~ /^-/)
+			{
+			if ((lc($arg) eq "--help")
+			  ||(lc($arg) eq "-h")
+			   )
+			   	{
+				showHelp();
+				exit 0;
+				}
+			else
+				{
+				print STDERR "Option '$arg' not recognised.\n\n";
+				print STDERR "Try 'testold.pl --help' for help.\n";
+				exit 1;
+				}
+			}
+		else
+			{
+			if (defined($path))
+				{
+				print STDERR "Testold accepts only one argument.\n\n";
+				print STDERR "Try 'testold.pl --help' for help.\n";
+				exit 1;
+				}
+			else
+				{
+				$path = $arg;
+				}
+			}
+		}
+	
+	if (!defined($path))
+		{
+		print STDERR "Testold must be given a path to set.\n\n";
+		print STDERR "Try 'testold.pl --help' for help.\n";
+		exit 1;
+		}
+	
+	return ($path);
+	}
+
+sub testOld($$$)
+	{
+	my ($root, $path, $date) = @_;
+	
+	opendir(PATH, $root."\\".$path);
+	my @dir = readdir(PATH);
+	closedir(PATH);
+
+	foreach $entry (@dir)
+		{
+		if ($entry =~ /^\.\.?$/)
+			{
+			}
+		elsif (-d $root."\\".$path."\\".$entry)
+			{
+			testOld($root, $path."\\".$entry, $date);
+			}
+		else
+			{
+			# Check file's last modified stamp
+			my ($dev, $ino, $mode, $nlink, $uid, $gid, $rdev, $size, $atime, $mtime, $ctime, $blksize, $blocks) = stat($root."\\".$path."\\".$entry);
+
+			if ($mtime > $date)
+				{
+				print $path."\\".$entry."\n";
+				}
+			}
+		}
+	}
+
+sub showHelp()
+	{
+	print "testold.pl [options] Path\n";
+	print " - checks the last modified date of all files under a path to see\n";
+	print "   if it's newer than ".localtime($date)."\n\n";
+	print "  Path - The path to the root of the files to be modified\n";
+	print "Options:\n";
+	print "  --help or -h - Display this message\n\n";
+	}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/BuildKit.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,210 @@
+#!perl
+
+# package.pl
+
+# Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Version Info:
+# Version 001: initial version
+# Version 002: Typhoon: InstallCustKit.pl added for CustKit 
+# Version 003: Typhoon: calls GenerateLicenseeBuild.exe before building
+# Version 004: Typhoon: auto-generates packages before building; 
+# produces differences between this report & previous build's
+# calls script to produce CustKit as ZIPs
+# Version 005: Typhoon: calls docplugintool script 
+# Version 006: Typhoon: Master Codeline
+# Version 007: Master Codeline
+# 
+#
+
+package BuildKit;
+
+use Cwd;
+use File::Basename;
+use File::Path;
+
+use KitStandardLocations;
+use KitPlatformSpecific;
+use SupplementalKits;
+
+
+
+# ------------------------------ Global variables ----------------------------
+
+my $Company = "Symbian";
+
+
+my $BuildNumber = $ARGV[0];
+$Kit_ID = $BuildNumber;
+
+my $pkgSrcDefDevKitDir = "$DevKitPath\\$SrcDefDir";
+my $pkgSrcDefCustKitDir ="$CustKitPath\\$SrcDefDir";
+
+my $outputDevKitDir =       "$ProductPath\\_PACKAGES\\DevKit_CD";
+my $outputCustKitDir =      "$ProductPath\\_PACKAGES\\CustKit_Extra_CD";
+my $outputCustKitZipsDir =  "$ProductPath\\_PACKAGES\\CustKit_Zips";
+my $outputInternalZipsDir = "$ProductPath\\generated";
+
+my $sourceListDevKit =  "DevKit.srcdef";
+my $sourceListCustKit = "CustKit.srcdef";
+
+my $buildPkg =     "$OutputDir\\generic\\epoc32\\tools\\buildpkg";
+my $createPkgSrc = "$OutputDir\\generic\\epoc32\\tools\\createpkgsrc";
+my $diff =         "$OutputDir\\generic\\epoc32\\gcc\\bin\\diff";
+
+my $scriptFile =     "InstallCustKit.pl";
+my $scriptHelpFile = "ReadMe_First.txt";
+
+# ----------------- Start of main() ------------------------
+
+sub BuildKit()
+{
+	# build the Symbian supplied packages
+	buildPkgSet(\@KitPlatformSpecific::SymbianPkgs);
+
+	# create the packages etc. for the DevKit
+	createDistrib($outputDevKitDir, $pkgSrcDefDevKitDir."\\".$sourceListDevKit);
+
+	SupplementalKits::SupplementalKits();
+}
+
+
+
+# function builds a set of packages
+# function returns true if all the packages in the set were built correctly
+sub buildPkgSet()
+{
+    my ($packageSet)=@_ ;
+    my $success = 1;
+
+    # loop through all the packages in the package set
+    foreach my $packageDef (@$packageSet)
+    {
+		# build this package using the buildpkg tool
+
+		print "Building package ".$packageDef->[1]."\n";
+
+		my $srcRootArg = "";
+		my $srcroot = $packageDef->[0];
+
+		#check if the source root is empty
+		if(!($srcroot eq ""))
+		{
+		    # the source root argument
+		    $srcRootArg = " -s ".$srcroot;
+		}
+
+		my $command = $buildPkg." -v -f -o ".$packageDef->[2]." -b ".$BuildNumber." -k ".$Kit_ID.$srcRootArg." ".$packageDef->[1];
+		$success &= !system($command);
+	}
+	return $success;
+}
+
+
+
+
+# function collates the distribution directory contents
+sub createDistrib()
+{
+    my $DistribDir = $_[0] ;
+    my $PkgSrcList = $_[1];
+    print "Creating distribution directory in $DistribDir\n";
+
+    # create the package source for the CustKit
+    createSrc($DistribDir, $PkgSrcList);
+
+    # add the KSA files to make the kit installable
+    addKSA($DistribDir);
+
+    # create the setup.ini file for the kit
+    createSetupIni($DistribDir);
+}
+
+
+
+
+
+# function creates a package source
+sub createSrc()
+{
+    chdir($_[0]);
+    
+    my $pkgSrcDefFile = $_[1] ;
+
+    print "  creating package source using list in $pkgSrcDefFile \n";
+
+    # read source definition file
+    open (FILE, "<$pkgSrcDefFile") or die "Couldn't open file $pkgSrcDefFile ";
+    my @pkgList = <FILE>;
+    close(FILE);
+    
+    # remove previous copy
+    unlink ($pkgSrcDefFile);
+    
+    # write file with build number
+    open (FILE, ">$pkgSrcDefFile") or die "Couldn't open file $pkgSrcDefFile";
+    foreach $file (@pkgList)
+    {
+    	$file =~ s/%version%/$BuildNumber/g ;
+    	print FILE $file ;
+    }
+    close(FILE);
+
+    # build the package source XML
+    my $command = $createPkgSrc." -s ".$pkgSrcDefFile ;
+    system($command);
+}
+
+
+
+
+# function amends setup.ini file created by the KSA
+sub createSetupIni()
+{
+    chdir($_[0]);
+    print "  amending setup.ini file\n";
+
+
+    # create setup.ini file
+    open (FILE, ">>setup.ini") or die "Couldn't open setup.ini";
+
+    print FILE "[Symbian]\n";
+    print FILE "KitID=$Kit_ID\n";
+    print FILE "TargetDirectory=Symbian";
+
+    close(FILE);
+}
+
+
+
+
+# function creates adds the KSA files to the Kit
+sub addKSA()
+{
+    chdir($_[0]);
+    print "  copying KSA\n";
+
+    system("copy $OutputDir\\generic\\epoc32\\ksa\\autorun.inf");
+    system("copy $OutputDir\\generic\\epoc32\\ksa\\data1.cab");
+    system("copy $OutputDir\\generic\\epoc32\\ksa\\data1.hdr");
+    system("copy $OutputDir\\generic\\epoc32\\ksa\\data2.cab");
+    system("copy $OutputDir\\generic\\epoc32\\ksa\\ikernel.ex_");
+    system("copy $OutputDir\\generic\\epoc32\\ksa\\layout.bin");
+    system("copy $OutputDir\\generic\\epoc32\\ksa\\Setup.exe");
+    system("copy $OutputDir\\generic\\epoc32\\ksa\\setup.inx");
+    system("copy $OutputDir\\generic\\epoc32\\ksa\\setup.ini");
+    system("copy $OutputDir\\generic\\epoc32\\ksa\\ReadMe.*");
+}
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/CProgressLog.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,170 @@
+#!perl
+
+# CProgressLog
+
+# Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+package CProgressLog;
+
+# Constructor
+#
+# Parameters: Verbosity - 0 for batch operation (no progress reports)
+#				- 1 for interactive operation (no missing lists by default)
+#				- 2 for fully verbose operation (including detailed progress)
+sub New($)
+	{
+	my $class = shift;
+	my $self = {};
+
+	bless $self, $class;
+
+	$self->{VERBOSITY}=shift;
+	$self->{ERRORCODE}=0;
+	$self->{PROGRESSING}=0;
+
+	return $self;
+	}
+
+# isBatch
+#
+# Tests verbosity setting
+sub isBatch()
+	{
+	my $self = shift;
+
+	return ($self->getVerbosity() == 0);
+	}
+
+# isVerbose
+#
+# Tests verbosity setting
+sub isVerbose()
+	{
+	my $self = shift;
+
+	return ($self->getVerbosity() == 2);
+	}
+
+# getVerbosity
+#
+# Verbosity getter
+sub getVerbosity()
+	{
+	my $self = shift;
+
+	return $self->{VERBOSITY};
+	}
+
+# getErrorCode
+#
+# ErrorCode getter. For use in determining exit value when terminating script.
+sub getErrorCode()
+	{
+	my $self = shift;
+
+	return $self->{ERRORCODE};
+	}
+
+# Warn
+#
+# Print warning
+sub Warn($)
+	{
+	my $self = shift;
+	my ($warning) = @_;
+
+	$self->_NewMessage();
+
+	print "$warning\n";
+	}
+
+# Error
+#
+# Print fatal error
+sub Error($)
+	{
+	my $self = shift;
+	my ($error) = @_;
+
+	$self->_NewMessage();
+	
+	print "$error\n";
+	$self->{ERRORCODE}=1;
+	}
+
+# Progress
+#
+# Display progress report
+sub Progress($)
+	{
+	my $self = shift;
+	my ($report) = @_;
+
+	if (!($self->isBatch()))
+		{
+		if ($self->isVerbose())
+			{
+			if ($report ne "")
+				{
+				$self->_NewMessage();
+
+				print STDOUT "$report\n";
+				}
+			}
+		else
+			{
+			print STDOUT ".";
+
+			$self->{PROGRESSING}=1;
+			}
+		}
+	}
+
+# ListMissing
+#
+# Display a list of files expected but missing
+sub ListMissing(@)
+	{
+	my $self = shift;
+	my @files = @_;
+
+	if (($self->isVerbose()) || ($self->isBatch()))
+		{
+		$self->_NewMessage();
+		print STDOUT "The following files were not found:\n";
+		
+		foreach my $file (@files)
+			{
+			print STDOUT "$file\n";
+			}
+		}
+	}
+
+# New message
+# 
+# Prepare a new line if the previous output was progress dots
+sub _NewMessage()
+	{
+	my $self = shift;
+	
+	if ($self->{PROGRESSING})
+		{
+		print STDOUT "\n";
+		$self->{PROGRESSING}=0;
+		}
+	}
+
+return 1;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/CheckDistributionFiles.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,95 @@
+#
+# CheckDistributionFiles.pl
+# Aug 3rd 2009. Written for use during the SOS production build.
+# Parameter 1 : Directory to search
+# The script will search through the directory provided. (This is \clean-src in the current SOS production build.)
+# It will produce an advisory note for any missing distribution.policy.s60 files.
+# It will produce a migration note for any unnecessary distribution.policy.s60 files.
+#
+
+use File::Find;
+
+my $dirToSearch = shift;
+
+# Iterate through all sub-directories checking the distribution.policy.s60 status.
+finddepth(sub{if ($_ !~ /^\.\.?$/ ) {$entry = Cwd::cwd."\\"."$_"; if (-d $entry) {checkDir($entry)}}}, $dirToSearch);
+
+# A directory is considered empty for this purpose if it contains no files (it may contain other directories)
+sub dirIsEmpty($)
+{
+    my $currentDir = shift;
+    opendir DIR, $currentDir;
+	
+    while(my $entry = readdir DIR) {    
+        next if(($entry =~ /^\.\.?$/) || (-d "$currentDir"."\\"."$entry")); # ignore all directory entries (including . and ..)
+        closedir DIR;
+        return 0; # first file has been found
+    }
+    closedir DIR;
+    return 1; # no files found
+}
+
+# Checks if a directory contains files other than an S60 distribution policy file.
+sub onlyPolicyFileExists($)
+{
+    my $currentDir = shift;
+    my $file = "distribution.policy.s60";
+ 
+    opendir DIR, $currentDir;
+    while(my $entry = readdir DIR) {
+	 
+	    # ignore directories (including . and ..) and S60 distribution file
+        next if(($entry =~ /^\.\.?$/) || (-d "$currentDir"."\\"."$entry") || ($entry =~ /^$file$/i));  
+        closedir DIR;
+        return 0; # first file (except distribution.policy.s60) has been found
+    }
+    closedir DIR;
+    return 1; # no extra files found 
+}
+
+# checkDir
+# Check the distribution.policy.s60 status of the directory passed as parameter.
+# 4 cases are checked for
+# Case 1: Empty directory , no policy file - this is fine
+# Case 2: The directory is empty except for the distribution.policy.s60 file - produce migration note
+# Case 3: Non-empty directory with policy file in place - this is fine
+# Case 4: Directory is not empty and does not contain a distribution.policy.s60 file - produce an advisory note
+#
+sub checkDir($) {
+
+	my $currentDir = shift;
+	my $file = "distribution.policy.s60";
+ 
+	# An empty directory should not have a policy file.
+	if (dirIsEmpty($currentDir) )
+		{ # Case 1: Empty directory , no policy file - this is fine
+		  # print "\nok, $currentDir has no files so no distribution.policy.s60 file is necessary \n";
+		}
+
+	else # Directory is not empty
+		{
+		# Check if a policy file exists
+		if (-e "$currentDir"."\\"."$file")
+			{
+			# Check that it is necessary i.e. that there are other files in the directory
+			if (onlyPolicyFileExists($currentDir))
+				{
+				# Case 2: The directory is empty except for the distribution.policy.s60 file - produce migration note
+				print "MIGRATION_NOTE: Unnecessary distribution.policy.s60 file in $currentDir\n";
+				}
+			else
+				{
+				# Case 3: Non-empty directory with policy file in place.
+				# print "\nok, distribution.policy.s60 and other files exist in $currentDir\n";
+				}
+
+			}
+		else # no policy file exists in a non-empty directory
+			{
+			#  Case 4: Directory is not empty and does not contain a distribution.policy.s60 file - produce an advisory note
+			print "ADVISORY NOTE: Missing distribution.policy.s60 file in $currentDir \n";
+			}
+
+		} # end directory is not empty
+
+} # end checkDir;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/Documentation/distribution.policy	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,2 @@
+Category T
+OSD:	Reference/Test	Tools
Binary file toolsandutils/productionbldtools/GenerateLicenseeBuild.exe has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/InstallSupplementaryKit.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,350 @@
+#!perl
+
+# InstallSupplementaryKit.pl - Source Code Integration Script
+
+# Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Versions:
+# 1.0  Initial
+# 1.1  No warnings about pre-existing directories
+# 1.2  MCL version, adds -buildfromclean flag to move epoc32 directory and -platform flag
+# 
+#
+
+
+use Getopt::Long;
+use File::Path;
+use File::CheckTree;
+
+
+# ---------------------------- Global variables -------------------------------
+
+my $JarFile = "";
+my $TargetDirectory = "";
+my $BuildFromClean = 0;
+my $Platform = "";
+my $Options = "";
+
+# start the program
+main();
+
+
+
+
+# ---------------------------- Start of Main() --------------------------------
+sub main()
+{
+	if (@ARGV)
+	{
+		CommandLineInterface();
+	}
+	else
+	{
+		UserInterface();
+	}
+
+
+	# extract any *.sdkpkg files from the Jar file into the target directory
+	system("unzip -o  \"$JarFile\"  \"*.sdkpkg\"  -d \"$TargetDirectory\"");
+
+	print "\n";
+
+	# install each Jar file and delete it when done
+	foreach my $Package (<$TargetDirectory\\*.sdkpkg>)
+	{
+		# if -o specified, only install the required options
+		# (if -b specified, combine up into \bin\generic and \bin\techview)
+
+		if ( ($Options ne "") )
+		{	
+			if ( ($Package =~ /bin\.GT-/i) && ($Options =~ /G/i) )
+			{
+				# GT binaries
+				print "  installing $Package\n";
+				if ($BuildFromClean == 1)
+				{
+					system("unzip -o -q \"$Package\"  -x \"package.xml\"  -d \"$TargetDirectory\"");
+				}
+				else
+				{
+					# install to temporary location then move
+					system("unzip -o -q \"$Package\"  -x \"package.xml\"  -d \"$TargetDirectory\\tmp\"");
+			 		MoveDirectory("$TargetDirectory\\tmp\\bin\\techview", "$TargetDirectory\\bin\\TechView\\generic");
+					rmtree "$TargetDirectory\\tmp" or print "Unable to remove \"$TargetDirectory\\tmp\" - $!\n";
+				}
+			}
+			elsif ( ($Package =~ /bin\.GT-/i) && ($Options !~ /G/i) )
+			{
+				print "  excluded   $Package\n";
+			}
+
+			elsif ( ($Package =~ /bin\.TechView-/i) && ($Options =~ /U/i) )
+			{
+				# TechView binaries
+				print "  installing $Package\n";
+				if ($BuildFromClean == 1)
+				{
+					system("unzip -o -q \"$Package\"  -x \"package.xml\"  -d \"$TargetDirectory\"");
+				}
+				else
+				{
+					# install to temporary location then move
+					system("unzip -o -q \"$Package\"  -x \"package.xml\"  -d \"$TargetDirectory\\tmp\"");
+			 		MoveDirectory("$TargetDirectory\\tmp\\bin\\techview", "$TargetDirectory\\bin\\TechView\\TechView");
+					rmtree "$TargetDirectory\\tmp" or print "Unable to remove \"$TargetDirectory\\tmp\" - $!\n";
+				}
+			}
+			elsif ( ($Package =~ /bin\.TechView-/i) && ($Options !~ /U/i) )
+			{
+				print "  excluded   $Package\n";
+			}
+
+			elsif ( ($Package =~ /doc\./i) && ($Options =~ /D/i) )
+			{
+				# documentation - install to 'doc' location then move
+				print "  installing $Package\n";
+				system("unzip -o -q \"$Package\"  -x \"package.xml\"  -d \"$TargetDirectory\"");
+			}
+			elsif ( ($Package =~ /doc/i) && ($Options !~ /D/i) )
+			{
+				print "  excluded   $Package\n";
+			}
+
+			elsif ( ( ($Package =~ /\.bin\./i) && ($Options =~ /(G|U)/i) ) ||
+				( ($Package =~ /\.src\./i) && ($Options =~ /S/i) ) ||
+				( ($Package !~ /\.src\./i) && ($Package !~ /\.bin\./i) ) )
+			{
+				# non-specific binaries or sources or non-binaries, non-sources
+				system("unzip -o -q \"$Package\"  -x \"package.xml\"  -d \"$TargetDirectory\"");
+				print "  installing $Package\n";
+			}
+			elsif ( ( ($Package =~ /\.src\./i) && ($Options !~ /S/i) ) ||
+				( ($Package =~ /\.bin\./i) && ($Options !~ /(G|U)/i) ) )
+			{
+				print "  excluded   $Package\n";
+			}
+			else
+			{
+				print "Failed to install $Package\n";
+			}
+		}
+	
+		# otherwise install everything else regardless (non-BFC or no options specified)
+		else
+		{
+			# sources in BuildFromClean installation, everything if BFC with no options, or non-BFC
+			print "  installing $Package\n";
+			system("unzip -o -q \"$Package\"  -x \"package.xml\"  -d \"$TargetDirectory\"");
+		}
+		unlink $Package or print "Unable to delete $Package file from \"$TargetDirectory\"\n";
+	}
+	
+
+	# move files from [sdkroot]\src to src\, delete [sdkroot] directory
+	if ( -e "$TargetDirectory\\\[sdkroot\]" )
+	{
+ 		MoveDirectory("$TargetDirectory\\\[sdkroot\]", "$TargetDirectory");
+		rmdir "$TargetDirectory\\\[sdkroot\]" or print "Unable to remove \"$TargetDirectory\\\[sdkroot\]\" - $!\n";
+	}
+
+
+	# rename 'doc' directory to 'documentation' 
+	if ( -e "$TargetDirectory\\doc") 
+	{
+ 		MoveDirectory("$TargetDirectory\\doc", "$TargetDirectory\\documentation");
+		rmdir "$TargetDirectory\\doc" or print "Unable to remove \"$TargetDirectory\\doc\" - $!\n";
+	}
+
+
+	# move binary directories if platform defined for BuildFromClean - moves epoc32 tree from bin\TechView to \bin\%platform%
+	if ( ($BuildFromClean == 1) && (-e "$TargetDirectory\\bin\\TechView") && ($Platform ne "") )
+	{
+	 	MoveDirectory("$TargetDirectory\\bin\\TechView", "$TargetDirectory\\bin\\$Platform");
+		rmdir "$TargetDirectory\\bin\\TechView" or print "Unable to remove \"$TargetDirectory\\bin\\TechView\" - $!\n";
+	}
+
+
+	# remove the [meta] tree (usually only contains licence text)
+	rmtree ("$TargetDirectory\\\[meta\]", 0, 1);
+}
+
+# ------------------- Start ofCommandLineInterface() -------------------------
+
+
+sub CommandLineInterface()
+{
+	%CmdLineOptions = ();
+	my $help;
+	if ( (GetOptions( \%CmdLineOptions, "jarfile|j=s" => \$JarFile, "target|t=s" => \$TargetDirectory, "help|h|?" => \$help, "buildfromclean|b" => \$BuildFromClean, "platform|p=s" => \$Platform, "options|o=s" => \$Options) == 0) || ($JarFile eq "") || ($TargetDirectory eq "") || ($help == 1) )
+	{
+		Usage();
+		exit; 
+	}
+
+
+	if ( ($BuildFromClean == 1) && ($Platform eq "") && ($ENV{'Platform'} eq "") )
+	{
+		Usage();
+		print "\nN.B. -platform required if -b specified\n";
+		exit; 
+	}
+	elsif ( ($BuildFromClean == 1) && ($Platform eq "") )
+	{
+		$Platform = $ENV{'Platform'} ;
+	}
+
+	# NAHEED --- Prevent stopping of the scripts if the Suplementary
+	# product is not present. Rather than die just display a 
+	# WARNING ....
+	# check that Kit zips are in stated directory
+	if (! -e $JarFile)
+	{
+		print "Warning: Jar file $JarFile not found.\n";
+		exit;
+	}
+	
+	
+	# ensure target directory exists or can be created
+	if (! -d $TargetDirectory)
+	{
+		mkpath ($TargetDirectory) or die "Could not find or create $TargetDirectory\n";
+	}
+	
+}
+
+
+# ------------------------ Start of UserInterface() ---------------------------
+
+
+sub UserInterface()
+{
+	# get name of Supplementary Kit to install
+	do	# ensure file exists
+	{
+		print "Enter name of Supplementary Kit (*.jar) : ";
+		chomp( $JarFile = <STDIN> );
+	} while (! -e $JarFile) ;
+
+
+	# get location to write extracted files to
+	do	# ensure directory exists or can be created
+	{
+		print "Enter directory to extract files to : ";
+		chomp( $TargetDirectory = <STDIN> );
+	} while ( (! -d $TargetDirectory) and (! mkpath ($TargetDirectory)) ) ;
+
+
+	# get Platform name - try environment, else ask user
+	if ($ENV{'Platform'} eq "")
+	{
+		print "Enter platform name  : ";
+		chomp( $Platform = <STDIN> );
+	}
+	else
+	{
+		$Platform = $ENV{'Platform'} ;
+	}
+	
+	
+	# get build from clean flag
+	my $answer = "";
+	do
+	{
+		print "Build from clean (epoc32 tree combination) (Y/N) ? ";
+		chomp ($answer = <STDIN>);
+	} while ($answer !~ /[YN]/i);
+	if ($answer =~ /Y/i)
+	{
+		$BuildFromClean = 1;
+	}
+	
+	
+	# get installation options
+	print "Enter installation options : ";
+	chomp($Options = <STDIN>);
+}
+
+
+# ------------------------ Start of MoveDirectory() ---------------------------
+
+
+# Recursively moves directory tree
+
+sub MoveDirectory($$)
+{
+	my ($aFrom, $aTo) = @_;
+
+	opendir(DIR, $aFrom) or die "Path $aFrom not found!\n";
+
+	foreach my $entry (readdir(DIR))
+	{
+		if (($entry ne ".") and ($entry ne ".."))
+		{
+			if (-d $aFrom."/".$entry)
+			{ 
+				if (!(makepath ($aTo."/".$entry)))
+				{
+					print "Warning: Could not create $aTo/$entry - $!\n";
+				}
+				MoveDirectory($aFrom."/".$entry, $aTo."/".$entry);
+				rmdir $aFrom."/".$entry or print "Warning: Unable to remove $aFrom/$entry - $!\n";
+			}
+			else
+			{
+				rename $aFrom."/".$entry, $aTo."/".$entry or print "Warning: Unable to move $aFrom/$entry - $!\n";
+			}
+		}
+	}
+
+	closedir(DIR);
+}
+
+# -------------------------- Start of makepath() ------------------------------
+
+sub makepath($)
+	{
+	my ($path) = @_;
+
+	if (-d $path)
+		{
+		return -1;
+		}
+	else
+		{
+		return mkpath($path);
+		}
+	}
+
+# ---------------------------- Start of Usage() -------------------------------
+
+sub Usage()
+{
+	print <<ENDOFUSAGETEXT;
+	
+INSTALLSUPPLEMENTARYKIT.PL    Version 1.2    Copyright (c) 2003 Symbian Ltd
+                                             All Rights Reserved
+                                  
+Usage:
+  perl InstallSupplementaryKit.pl  [options]
+ 
+where options are:
+  -b[uildfromclean]       combines unpacked files into build from clean locations
+  -j[arfile] <path>       fully qualified file name of Kit's .jar
+  -o[ptions] DGUS         installation options ( D=documentation,  G=GT, U=UI(TechView),  S=source )
+  -p[latform] <platform>  build platform - used with -b to create binaries installation directory path
+                          (moves epoc32 tree from \\bin\TechView into \\bin\\<platform>)
+  -t[arget] <path>        path to directory to unpack Kit into
+   
+ENDOFUSAGETEXT
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/KitStandardLocations.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,58 @@
+#!perl
+
+# Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+package KitStandardLocations;
+require Exporter;
+@ISA = qw(Exporter);
+@EXPORT = qw($SourceDir $BuildDir $OutputDir $Platform $ToolsDir $LogsDir $ZipDir $PublishLocation $ProductPath $BuildBaseName $ProductDir $CustKitDir $DevKitDir $SuppKitDir $SrcDefDir $PkgDefDir $CustKitPath $DevKitPath $SuppKitPath $pkgDefDevKitDir $pkgDefCustKitDir $outputDevKitDir $outputCustKitDir);
+
+
+# Standard locations from environment variables
+$SourceDir       = $ENV{'CleanSourceDir'};      # path to clean source 
+$BuildDir        = $ENV{'BuildDir'};            # path to build directory ([substed drive]\)
+$OutputDir       = $ENV{'OutputDir'};           # path to where the binaries are put ([substed drive]\bin\platform)
+$Platform        = $ENV{'Platform'};            # beech, cedar etc. 
+$ToolsDir        = $ENV{'ToolsDir'};            # path to main tools (IPR tool)
+$LogsDir         = $ENV{'LogsDir'};             # path to main build logs direrctory 
+$ZipDir          = $ENV{'ZipDir'};              # path to ZIPs directory (for lockit)
+$PublishLocation = $ENV{'PublishLocation'};     # path to DevBuilds publish location
+$ProductPath     = $ENV{'ProductPath'};         # path to output directory for Kits	
+$BuildBaseName   = $ENV{'BuildBaseName'};       # name of the build (e.g. "Symbian_OS_v8.0a")    
+
+
+# Kit-specific locations
+$ProductDir   = "Product";
+$CustKitDir   = "CustKit";
+$DevKitDir    = "DevKit";
+$SuppKitDir   = "SuppKit";
+$SrcDefDir    = "SourceDefinitions";
+$PkgDefDir    = "PackageDefinitions";
+$CustKitPath  = "$ProductPath\\$CustKitDir";
+$DevKitPath   = "$ProductPath\\$DevKitDir";
+$SuppKitPath  = "$ProductPath\\$SuppKitDir";
+$pkgDefDevKitDir  = "$DevKitPath\\$PkgDefDir";
+$pkgDefCustKitDir = "$CustKitPath\\$PkgDefDir";
+$outputDevKitDir  = "$ProductPath\\_PACKAGES\\DevKit_CD";
+$outputCustKitDir = "$ProductPath\\_PACKAGES\\CustKit_Extra_CD";
+
+
+
+# set environment variables for non source rebaseline batch files
+$ENV{'ProductDir'} = $ProductDir ;
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/MakeISOs.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,225 @@
+#!perl
+
+# MakeISOs.pl
+
+# Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Version Info:
+# Version 001: initial version
+# Command: MakeISOs.pl [<TargetDirectory>] [<Build number>]
+# 
+#
+
+
+use File::Copy;
+
+
+# ------------------------------------- Global variables -----------------------------------
+
+
+my $TargetDirectory = $ARGV[0];
+my $TargetDirectoryDefault = "\\_PACKAGES";
+my $BuildNumber = $ARGV[1];
+my $BuildNumberDefault = $ENV{'Buildnumber'};
+
+
+
+my $DevKitDir  = "\\_PACKAGES\\DevKit_CD";
+my $CustKitDir = "\\_PACKAGES\\CustKit_Extra_CD";
+
+my $pkgSrcDefDevKitDir = "\\Product\\DevKit\\SourceDefinitions";
+my $sourceListDevKit = "DevKit.srcdef_EDITED";
+
+my $sourceListDevKit1 = "DevKit1.srcdef";
+my $sourceListDevKit2 = "DevKit2.srcdef";
+
+my $createPkgSrc = "\\generic\\epoc32\\tools\\createpkgsrc";
+my $createISO   = "c:\\apps\\dao\\makeiso";
+
+
+my @PackagesToSplitOut = (
+
+		"com.symbian.src.connect",
+		"com.symbian.src.GT-general",
+		"com.symbian.src.GT-restricted-part1",
+		"com.symbian.src.GT-restricted-part2",
+		"com.symbian.src.GT-restricted-part3",
+		"com.symbian.src.GT-restricted-part4",
+		"com.symbian.src.GT-restricted-part5",
+		"com.symbian.src.GT-restricted-part6",
+
+		"com.symbian.src.TechView-general",
+		"com.symbian.src.TechView-restricted",
+
+		"com.symbian.devkit.src"  );
+
+
+
+
+# --------------------------------- Start of Main() ----------------------------------------
+
+
+# set up target directory.
+$TargetDirectory = EstablishTargetDirectory($ARGV[0]);
+
+
+my $outputDevKitDir1 = "$TargetDirectory\\DevKit_CD_1";
+my $outputDevKitDir2 = "$TargetDirectory\\DevKit_CD_2";
+
+
+# create sub-directories
+mkdir $outputDevKitDir1, 0777 if (! -e $outputDevKitDir1);
+mkdir $outputDevKitDir2, 0777 if (! -e $outputDevKitDir2);
+
+
+# split the .srcdef and copy required .sdkpkg files
+SplitSrcdefAndCopyPackages();
+
+
+# copy non-packages (KSA etc.) files for the DevKits
+CopyKSA($DevKitDir, $outputDevKitDir1);
+CopyKSA($DevKitDir, $outputDevKitDir2);
+
+
+# create the package source (package-list.xml.zip) for the DevKits
+CreateSrc($outputDevKitDir1, "$TargetDirectory\\$sourceListDevKit1");
+CreateSrc($outputDevKitDir2, "$TargetDirectory\\$sourceListDevKit2");
+
+
+# check build number parameter
+if ($BuildNumber eq "")
+{
+	$BuildNumber = $BuildNumberDefault;
+}
+
+
+# create the ISO images for the Kits (CustKit and DevKits)
+system ("call $createISO $outputDevKitDir1 $TargetDirectory\\DevKit_CD_".$BuildNumber."_Source.ISO /BATCH /JOLIET /VOLUME=DevKit_Source");
+system ("call $createISO $outputDevKitDir2 $TargetDirectory\\DevKit_CD_$BuildNumber.ISO /BATCH /JOLIET /VOLUME=DevKit");
+system ("call $createISO $CustKitDir       $TargetDirectory\\CustKit_Extra_CD_$BuildNumber.ISO /BATCH /JOLIET /VOLUME=CustKiT");
+
+
+
+
+# --------------------------------- Start of EstablishTargetDirectory() ----------------------------------------
+# set up target directory. If supplied, create dir if non-existant. If this fails or was not supplied, use default.
+
+sub EstablishTargetDirectory($)
+{
+	$CommandLineTargetDirectory = $_[0];        # target directory for the ISOs
+
+	if ($CommandLineTargetDirectory ne "")
+	{    
+	    if ((-d $CommandLineTargetDirectory) or (mkdir $CommandLineTargetDirectory, 0777))     # exists or created OK
+		{
+			return $CommandLineTargetDirectory;
+		}
+	}
+
+	# target not given or unable to create it, so try to use default, or set to "."
+	if (-d $TargetDirectoryDefault)
+	{
+		return $TargetDirectoryDefault;     # returns default 
+	}
+	else
+	{
+		return ".";
+	}
+}
+
+
+
+# --------------------------------- Start of SplitSrcdefAndCopyPackages() ----------------------------------------
+# split the .srcdef and copy required .sdkpkg files
+
+sub SplitSrcdefAndCopyPackages()
+{
+	# read in original .srcdef file
+	open (FILE, "<$pkgSrcDefDevKitDir\\$sourceListDevKit") or die "Couldn't open file $pkgSrcDefDevKitDir\\$sourceListDevKit";
+	my @srcList = <FILE>;
+	close(FILE);
+
+	# open up two .srcdef files for new Kits
+	open (FILE1, ">$TargetDirectory\\$sourceListDevKit1") or die "Couldn't open file $TargetDirectory\\$sourceListDevKit1";
+	open (FILE2, ">$TargetDirectory\\$sourceListDevKit2") or die "Couldn't open file $TargetDirectory\\$sourceListDevKit2";
+
+
+	foreach my $line (@srcList)
+	{
+		if ($line !~ /<item/)     # line doesn't specify a source file;  must be header or footer, so copy across
+		{
+			print FILE1 $line;
+			print FILE2 $line;
+		}	
+		else                      # line specifies a source file; copy line across and copy file too
+		{
+			$line =~ /(com.*?sdkpkg)/ ;
+			my $fileName = $1 ;
+
+			if ( grep { $line =~ /$_/ } @PackagesToSplitOut )	          # packages listed in @PackagesToSplitOut
+			{
+				print FILE1 $line;
+				copy ("$DevKitDir\\$fileName", "$outputDevKitDir1\\$fileName") or die "Unable to copy $DevKitDir\\$fileName to $outputDevKitDir1\\$fileName - $!" ;
+			}
+			else	                                                      # packages not listed in @PackagesToSplitOut
+			{
+				print FILE2 $line;
+				copy ("$DevKitDir\\$fileName", "$outputDevKitDir2\\$fileName") or die "Unable to copy $DevKitDir\\$fileName to $outputDevKitDir2\\$fileName - $!" ;
+			}
+		}	
+	}
+	close (FILE1);
+	close (FILE2);
+}
+
+
+
+
+# --------------------------------- Start of CopyKSA() ----------------------------------------
+# copies non-*.sdkpkg files from source to distribution directory
+
+sub CopyKSA($$)
+{
+	my $SourceDir = $_[0];      # where non-*.sdkpkg files are (usually original DevKit directory)
+	my $DistribDir = $_[1];     # where they should be copied to (usually new DevKit directory)
+	
+	print "Copying KSA from $SourceDir to $DistribDir\n";	
+	
+	my @Files = <$SourceDir\\*>;
+	
+	foreach my $FileName (@Files)
+	{
+		if ($FileName !~m/sdkpkg/i)
+		{
+			copy($FileName, $DistribDir) or die "Unable to copy $FileName into $DistribDir" ;
+		}
+	}
+}
+
+
+
+# --------------------------------- Start of CreateSrc() ----------------------------------------
+# creates a package source (package-list.xml.zip)
+ 
+sub CreateSrc($$)
+{
+	chdir($_[0]) or die "Unable to change directory to $_[0]";                   # directory to put file in to
+
+	my $pkgSrcDefFile = $_[1] ;     # full path location to the *.srcdef file
+
+	# build the package source XML
+	my $command = $createPkgSrc." -s ".$pkgSrcDefFile ;
+	system($command) ;
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/SupplementalKits.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,192 @@
+#!perl
+
+# SupplementalKits.pl
+
+# Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+
+package SupplementalKits;
+
+
+use File::Path;
+use FindBin;                # where does this script live?
+#use lib $FindBin::Bin;      # use this directory for libraries, to find...
+use KitStandardLocations;
+
+
+
+my $PlatformProductToolsDir = $FindBin::Bin;
+$PlatformProductToolsDir =~ s/common/$Platform/i;    # change "common" to platform name in path to tools directory
+unshift (@INC, $PlatformProductToolsDir);            # add this to the @INC list of library paths
+require KitPlatformSpecific;                         # and read the platform-specific definitions
+require $BuildBaseName."_supplementary";
+
+my $scriptFileSupplementaryKits = "InstallSupplementaryKit.pl";
+
+
+
+# ------------------------------------- main routine -----------------------------------
+
+sub SupplementalKits()
+{
+	# set up environment & preserve old values
+	my $OutputDirWithoutDrive = $OutputDir;
+	$OutputDirWithoutDrive =~ s/^\w:(.*)$/$1/i;
+	my $oldEpocRoot = $ENV{EPOCROOT};
+	my $oldPath = $ENV{path};
+	my $oldOutputDir = $ENV{OUTPUTDIR};
+	$ENV{EPOCROOT} ="$OutputDirWithoutDrive\\techview\\";
+	$ENV{path} = "$ENV{EPOCROOT}epoc32\\tools\\;$ENV{EPOCROOT}epoc32\\gcc\\bin\\;".$ENV{path};
+	$ENV{OUTPUTDIR} = "$ProductPath\\SupplementaryProducts";
+
+
+
+	# read [emul] tag and replace it in the files
+	foreach my $package (@replaceEmulPackage)
+	{
+		replaceEmul($package);
+	}
+
+
+	# set up the source directory path for .bin packages
+	foreach my $package (@addSourcePackage)
+	{
+		addSource($package->[0], eval $package->[1]);
+	}
+
+
+	# create Supplementary products directory
+	(mkpath ($ENV{OUTPUTDIR}) or print "WARNING: Unable to create directory $ENV{OUTPUTDIR} - $!\n") if (! -d $ENV{OUTPUTDIR});
+
+
+
+	# main build procedure
+	foreach my $directory (@requiredSupplementaryKits)
+	{
+	print "** Supplemental Kit:  building from $directory\n";
+		# set up the source directory path for .src packages in this product
+		chdir ("$SuppKitPath\\$directory\\pkgdef");
+		foreach my $sourcePackage (<$SuppKitPath\\$directory\\pkgdef\\com.symbian.src.*>)
+		{
+			addSource($sourcePackage, $SourceDir);
+		}
+		chdir ("$SuppKitPath\\$directory\\group");
+		system ("bldmake bldfiles");
+		system ("abld makefile");
+		system ("abld target tools");
+	}
+
+
+	# copy Supplementary Products installation script into the right directory
+	my $ProductToolsDir = $FindBin::Bin;
+	$ProductToolsDir =~ s|/|\\|g;
+	system("copy ".$ProductToolsDir."\\".$scriptFileSupplementaryKits." ".$ENV{OUTPUTDIR});
+
+
+
+	# restore environment & finish
+	$ENV{EPOCROOT} =  $oldEpocRoot;
+	$ENV{path} = $oldPath;
+	$ENV{OUTPUTDIR} = $oldOutputDir;
+
+}
+
+
+
+
+# ------------------------------------- Sub procedures -----------------------------------
+
+
+# function inserts the leading directory in the src= statement
+sub addSource()
+{
+    my $pkgDefFile = $_[0] ;
+    my $srcDir = $_[1] ;
+
+
+    # read source definition file
+    open (FILE, "<$pkgDefFile") or print "WARNING: Supplementary Kits: Couldn't read file $pkgDefFile\n";
+    my @pkgList = <FILE>;
+    close(FILE);
+    unlink($pkgDefFile);
+
+    # write file with replaced src=
+    open (FILE, ">$pkgDefFile") or print "WARNING: Supplementary Kits: Couldn't write file $pkgDefFile\n";
+    foreach $line (@pkgList)
+    {
+		# insert source directory at start
+		$line =~ s|src="(\\){0,1}|src="$srcDir\\|gi;
+
+		# remove double slashes if present
+		$line =~ s|\\\\|\\|gi ;
+        
+    	print FILE $line ;
+    }
+    close(FILE);
+}
+
+
+
+
+# function reads [emul] tag and replaces it in the file specified as the parameter
+sub replaceEmul()
+{
+    my $emul = "" ;
+    my $pkgDefFile = $_[0] ;
+
+    # read source definition file
+    open (FILE, "<$pkgDefFile") or print "WARNING: Supplementary Kits: Couldn't read file $pkgDefFile\n";
+    my @pkgList = <FILE>;
+    close(FILE);
+    
+
+    # look for definition of [emul]
+    foreach $line (@pkgList)
+    {
+        if ( $line =~ m|emul\]\">(.*?)<|i )
+        {
+            $emul = $1;
+
+            # remove [sdkroot] if present
+            if ( $emul =~ m|\[sdkroot\](.*)|i )
+            {
+                $emul = $1;
+            }
+            
+            last;
+        }
+    }
+
+
+    # if [emul] not defined, enter a default
+    if ($emul EQ "")
+    {
+        $emul = "bin\\TechView";
+    }
+
+   
+    # write file with replaced emul
+    open (FILE, ">$pkgDefFile") or print "WARNING: Supplementary Kits: Couldn't write file $pkgDefFile\n";
+    foreach $line (@pkgList)
+    {
+        if ($line =~ m|<item|gi)
+        {
+    	    $line =~ s|\[emul\]|$emul|g ;
+        }
+    	print FILE $line ;
+    }
+    close(FILE);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/ZipLog2Pkg.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,870 @@
+#!perl
+
+# ziplog2pkg.pm
+
+# Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+use strict;
+
+
+package ZipLog2Pkg;
+
+use File::Path;
+use CProgressLog;
+use KitStandardLocations;
+
+my $log;
+my %stdVars = ();
+
+
+# --------------------------------- Start of ZipLog2Pkg() ----------------------------
+sub ZipLog2Pkg($$)
+{
+	my $cmdfile = shift;
+
+	my $parameters = shift;
+	my @options = grep(/^-/,$parameters);
+
+	my $verbose = 1;
+	foreach my $option (@options)
+		{
+		if ($option eq "-v")
+			{
+			$verbose = 2;
+			}
+		elsif (($option eq "-batch") || ($option eq "-b"))
+			{
+			$verbose = 0;
+			}
+		else
+			{
+			print "WARNING: Option '$option' not understood; ignoring\n";
+			}
+		}
+
+	# set up hash containing variables defined in KitStandardLocations.pm
+	foreach my $var (@KitStandardLocations::EXPORT)
+		{
+		$var =~ s/\$//;
+		eval{
+			no strict 'refs';
+			$stdVars{"%".$var."%"} = "$$var";
+			};
+		} 
+
+	my $PlatformProductToolsDir = $FindBin::Bin;
+	$PlatformProductToolsDir =~ s/common/$KitStandardLocations::Platform/i;    # change "common" to platform name in path to tools directory
+	$stdVars{"%baseline%"} = "$PlatformProductToolsDir\\baseline";
+
+	$log = New CProgressLog($verbose);
+	open (CMDFILE, "<$cmdfile") or print "Unable to open $cmdfile - $!\n" ;
+
+	my $packages = {};
+	my @files;
+	my @usedFiles;
+	my $version;
+	my @global_map;
+
+	$global_map[0] = "";				# global map from
+	$global_map[1] = "[emul]\\";		# global map to
+
+
+	foreach my $line (<CMDFILE>)
+		{
+		chomp($line);
+		
+		if ($line =~ /^#/)
+			{
+			print "\n$line\n" # Printable comment
+			}
+		elsif (($line =~ /^\/\//) || ($line =~ /^\s*$/))
+			{
+			# Nonprintable comment or blank line
+			}
+		else
+			{
+			# replace standard variables in @params
+			if ($line =~ /%/)
+			{
+				$line = replaceStdVars ($line)
+			}		
+			
+			my @parms = split(" ", $line);
+			# Recombine quoted entries
+			for (my $index=0; $index < scalar(@parms); $index++)
+				{
+				if ($parms[$index] =~ /^\"/)
+					{
+					# If double quoted
+					my $entry = $parms[$index];
+
+					while ( ($entry !~ /\"$/) && ( ($index+1) < scalar(@parms) ) )
+						{
+						# If end quote not found, merge following entry 
+						$entry = $entry." ".$parms[$index+1];
+						
+						splice @parms, $index+1, 1;
+						}
+
+					if ($entry !~ /\"$/)
+						{
+						if ($entry =~ /^\"[^\"]*$/)
+							{
+							die "'$line' invalid: Opening quote must have corresponding close quote\n";
+							}
+						else
+							{
+							die "'$line' invalid: Close quote must come at end of parameter\n";
+							}
+						}
+					
+					# Store combined quoted entries
+					$entry =~ s/^\"//;
+					$entry =~ s/\"$//;
+					splice @parms, $index, 1, $entry;
+					}
+				elsif ($parms[$index] =~ /^'/)
+					{
+					# If single quoted
+					my $entry = $parms[$index];
+
+					while ( ($entry !~ /'$/) && ( ($index+1) < scalar(@parms) ) )
+						{
+						# If end quote not found, merge following entry 
+						$entry = $entry." ".$parms[$index+1];
+						
+						splice @parms, $index+1, 1;
+						}
+
+					if ($entry !~ /'$/)
+						{
+						if ($entry =~ /^'[^']*$/)
+							{
+							die "'$line' invalid: Opening quote must have corresponding close quote\n";
+							}
+						else
+							{
+							die "'$line' invalid: Close quote must come at end of parameter\n";
+							}
+						}
+					
+					# Store combined quoted entries
+					$entry =~ s/^'//;
+					$entry =~ s/'$//;
+					splice @parms, $index, 1, $entry;
+					}
+				}
+				
+				
+			my $command = shift @parms;
+			$command = lc($command);
+
+			if (($command eq "load") or ($command eq "add"))
+				{
+				if ($command eq "load")
+					{
+					# Don't append this; clear first
+					if (scalar(@files)>0)
+						{
+						$log->Warn("WARNING: ".scalar(@files)." files discarded.");
+						}
+					@files = ();
+					}
+					
+				if (scalar(@parms) != 1)
+					{
+					die "'$line' invalid:\nExpected only one parameter (ziplog filename)\n";
+					}
+				
+				my @new;
+				
+				if ($parms[0] =~ /^#/)
+					{
+					my $file = $parms[0];
+					$file =~ s/^#//;
+					@new = @{readFileList($file)};
+					}
+				else
+					{
+					@new = @{readZiplog($parms[0])};
+					}
+
+				$log->Progress("");
+					
+				my $orig = scalar(@files);
+				@files = (@files, @new);
+
+				# Clear any additional duplicated items
+				@files = @{removeDuplicates(\@files, 1)};
+
+				# Don't load in any lines that were previously loaded
+				# (add in @usedFiles twice, remove all duplicates)
+				@files = (@usedFiles, @usedFiles, @files);
+				@files = @{removeDuplicates(\@files, 0)}; # Removes all
+				        # of the @used files added, plus any of those which
+						# matched the original @files too
+						
+				$log->Progress("Loaded $parms[0]. ".scalar(@new)." files (".(scalar(@new)+$orig-scalar(@files))." duplicates)");
+				}
+			elsif ($command eq "patch")
+				{
+				if (scalar(@parms) != 1)
+					{
+					die "'$line' invalid:\nExpected only one parameter (file list filename)\n";
+					}
+
+				my $file = $parms[0];
+				if ($file =~ /^#/)
+					{
+					$file=~s/^#//;
+					}
+				else
+					{
+					$log->Error("ERROR: Patch file should be prefixed with a '#' to specify filelist.\nAttempting default of filelist.");
+					}
+
+				# Read file list in
+				my @filelist = @{readFileList($file)};
+
+				# Add them back in to files to match
+				my $orig = scalar(@files);
+				@files = (@files, @filelist);
+				@files = @{removeDuplicates(\@files, 1)};
+
+				# Take them out of files already matched
+				# (so a load containing one of them won't eliminate it)
+				@usedFiles = (@usedFiles, @filelist, @filelist);
+				@usedFiles = @{removeDuplicates(\@usedFiles, 0)};
+
+				$log->Progress("Loaded $parms[0]. ".scalar(@filelist)." files (".(scalar(@filelist)+$orig-scalar(@files))." duplicates)");
+				}
+			elsif ($command eq "create")
+				{
+				# Create package list
+				if (scalar(@parms) < 2)
+					{
+					die "'$line' invalid:\nExpected at least 2 parameters (package name, device name, [dependencies ...])\n";
+					}
+
+				# Parms: packagePath, device, dependencies...
+				my $packagePath = shift @parms;
+				my $device = shift @parms;
+
+				my $packageName = $packagePath;
+				$packageName =~ s/^.*[\/\\]//;
+				$packagePath =~ s/[\/\\][^\/\\]+$/\\/ or $packagePath = "";
+
+				if ($packageName eq "null")
+					{
+					die "'$line' invalid:\nCannot create package named 'null'. This name is reserved for files not to be written\n";
+					}
+				
+				$packages->{$packageName} = [$packagePath, $device, [], \@parms, [], [], \@global_map, "", "", "", []];
+				}
+			elsif ($command eq "path")
+				{
+				# Parms: packageName, path to add
+				if (scalar(@parms) != 2)
+					{
+					die "'$line' invalid:\nExpected 2 parameters (package name, path to add)\n";
+					}
+				my $packageName = shift @parms;
+				my $path = shift @parms;
+
+				my ($packagePath, $device, $files, $dependencies, $paths, $menu, $map, $category, $description, $licence, $tags) = @{$packages->{$packageName}};
+				push @$paths, $path;
+
+				$packages->{$packageName} = [$packagePath, $device, $files, $dependencies, $paths, $menu, $map, $category, $description, $licence, $tags];
+				}
+			elsif ($command eq "menu")
+				{
+				# Parms: package name, menu entry, description, working path, file path [arguments, icon path]
+				if (scalar(@parms) < 5)
+					{
+					die "'$line' invalid:\nExpected at least 5 parameters (package name, menu entry, description, working path, file path, arguments, icon path)\n";
+					}
+				my ($packageName,$entry,$desc,$path,$file,$args,$icon) = @parms;
+
+				my ($packagePath, $device, $files, $dependencies, $paths, $menu, $map, $category, $description, $licence, $tags) = @{$packages->{$packageName}};
+				push @$menu, [$entry, $desc, $path, $file, $args, $icon];
+
+				$packages->{$packageName} = [$packagePath, $device, $files, $dependencies, $paths, $menu, $map, $category, $description, $licence, $tags];
+				}
+			elsif ($command eq "map_global")
+				{
+				# Parms: global map from, global map to
+				if (scalar(@parms) != 2)
+					{
+					die "'$line' invalid:\nExpected 2 parameters (global map from, global map to)\n";
+					}
+				@global_map = @parms;
+				}
+			elsif ($command eq "map")
+				{
+				# Parms: packageName, map from, map to
+				if (scalar(@parms) != 3)
+					{
+					die "'$line' invalid:\nExpected 3 parameters (package name, map from, map to)\n";
+					}
+				my ($packageName, $from, $to) = @parms;
+
+				my ($packagePath, $device, $files, $dependencies, $paths, $menu, $map, $category, $description, $licence, $tags) = @{$packages->{$packageName}};
+				$packages->{$packageName} = [$packagePath, $device, $files, $dependencies, $paths, $menu, [$from, $to], $category, $description, $licence, $tags];
+				}
+			elsif ($command eq "category")
+				{	
+				# Parms: packageName, category
+				if (scalar(@parms) < 2)
+					{
+					die "'$line' invalid:\nExpected 2 parameters (package name, category)\n";
+					}
+				my $packageName = shift @parms;
+				my ($packagePath, $device, $files, $dependencies, $paths, $menu, $map, $category, $description, $licence, $tags) = @{$packages->{$packageName}};
+				my $category = shift @parms;
+				$packages->{$packageName} = [$packagePath, $device, $files, $dependencies, $paths, $menu, $map, $category, $description, $licence, $tags];
+				}
+			elsif ($command eq "description")
+				{
+				# Parms: packageName, description
+				if (scalar(@parms) < 2)
+					{
+					die "'$line' invalid:\nExpected 2 parameters (package name, description)\n";
+					}
+				my $packageName = shift @parms;
+				my ($packagePath, $device, $files, $dependencies, $paths, $menu, $map, $category, $description, $licence, $tags) = @{$packages->{$packageName}};
+				my $description = shift @parms;
+				$packages->{$packageName} = [$packagePath, $device, $files, $dependencies, $paths, $menu, $map, $category, $description, $licence, $tags];
+				}
+			elsif ($command eq "licence")
+				{
+				# Parms: packageName, licence file
+				if (scalar(@parms) != 2)
+					{
+					die "'$line' invalid:\nExpected 2 parameters (package name, licence file)\n";
+					}
+				my $packageName = shift @parms;
+				my ($packagePath, $device, $files, $dependencies, $paths, $menu, $map, $category, $description, $licence, $tags) = @{$packages->{$packageName}};
+				my $licence = shift @parms;
+				$packages->{$packageName} = [$packagePath, $device, $files, $dependencies, $paths, $menu, $map, $category, $description, $licence, $tags];
+				}
+			elsif ($command eq "tag")
+				{
+				# Parms: packageName, tag name, tag value
+				if (scalar(@parms) != 3)
+					{
+					die "'$line' invalid:\nExpected 3 parameters (package name, tag name, tag value)\n";
+					}
+				my ($packageName, $tagName, $tagValue) = @parms;
+
+				my ($packagePath, $device, $files, $dependencies, $paths, $menu, $map, $category, $description, $licence, $tags) = @{$packages->{$packageName}};
+				$packages->{$packageName} = [$packagePath, $device, $files, $dependencies, $paths, $menu, $map, $category, $description, $licence, [$tagName, $tagValue]];
+				}
+			elsif ($command eq "test")
+				{
+				# Warn if any files match
+				if (scalar(@parms) < 1)
+					{
+					die "'$line' invalid:\nExpected >1 parameter (expressions to match)\n";
+					}
+
+				my @files = @{ match(\@files, \@parms, [0], $cmdfile) };
+
+				foreach my $file (@files)
+					{
+					$log->Warn("WARNING: '$file' matched tests '".join(", ",@parms)."'");
+					}
+				}
+			elsif ($command eq "write")
+				{
+				# Write out to a package list
+				my @options = grep(/^-/,@parms);
+				my @parms = grep(!/^-/,@parms);
+
+				if (scalar(@parms) < 2)
+					{
+					die "'$line' invalid:\nExpected >2 parameters (expressions..., package name)\n";
+					}
+
+				my $warn = 1;
+				foreach my $option (@options)
+					{
+					if ($option eq "-nowarn")
+						{
+						$warn = 0;
+						}
+					else
+						{
+						die "'$line' invalid:\nOption $option not understood\n";
+						}
+					}
+		
+				my $packageName = pop @parms;
+
+				# Perform the matching
+				my @package = @{ match(\@files,\@parms, [$warn], $cmdfile) };
+
+				# Get list of the files that are still to be matched
+				@files = (@files, @package, @package);
+				@files = @{removeDuplicates(\@files,0)};
+				
+				# Record the matched files as used
+				@usedFiles = (@usedFiles, @package);
+
+				$log->Progress("Matched ".scalar(@package)." files for $packageName");
+
+				if (defined($packages->{$packageName}))
+					{	
+					my ($packagePath, $device, $merge, $dependencies, $paths, $menu, $map, $category, $description, $licence, $tags) = @{$packages->{$packageName}};
+
+					$merge = [@package, @$merge];
+					$packages->{$packageName} = [$packagePath, $device, $merge, $dependencies, $paths, $menu, $map, $category, $description, $licence, $tags];
+					}
+				else
+					{
+					if ($packageName ne "null")
+						{
+						die "\nIn line '$line':\nAttempt to add to non-existent package '$packageName'.\nUse 'create $packageName [device name]' to create the package definition first\n";
+						}
+					}
+				}
+			elsif ($command eq "version")
+				{
+				if (defined($version))
+					{
+					die "\nIn line '$line':\nVersion has already been defined. One script can only have one version\n";
+					}
+				else
+					{
+					if (scalar(@parms) > 1)
+						{
+						die "\nIn line '$line':\nExpected only one parameter (spaces must be quoted)\n";
+						}
+					else
+						{
+						$version = shift @parms;
+						}
+					}
+				}
+			else
+				{
+				$log->Error("ERROR: Command not understood; ignoring: $line");
+				}
+			}
+		}
+	close(CMDFILE);
+
+	# Write out $packages
+	my $device;
+	my $files;
+	my $dependencies;
+	my $paths;
+	my $menu;
+	my $map;
+	my $category;
+	my $description;
+	my $licence;
+	my $tags;
+	my $packagePath;
+	foreach my $pkgName (keys(%$packages))
+		{
+		($packagePath, $device, $files, $dependencies, $paths, $menu, $map, $category, $description, $licence, $tags) = @{$packages->{$pkgName}};
+		writePkg($packagePath, $pkgName, $files, $device, $dependencies, $paths, $menu, $map, $version, $category, $description, $licence, $tags);
+		}
+}
+
+sub readZiplog($)
+	{
+	my ($zipLog)=@_;
+	my @package;
+
+	# read in file
+	open (FILE, "<$zipLog") or die "Couldn't open file $zipLog";
+
+	# parse for elements we want
+	foreach my $line (<FILE>)
+		{
+		$line =~ s/^\s+// ;
+
+		if ($line =~ m/^adding: (.*)$/ )
+			{
+			# found line with file on - need to parse
+			my $fileline = $1;
+
+			# remove (deflated... or (stored... or ( anything   bit at end
+
+			$fileline=~s/ \(.*\)$//;
+
+			$fileline =~ s/\s+$// ;
+
+			# ignore lines ending in slash - probably a directory
+
+			if ($fileline =~ /\/$/ )
+				{
+				print "Directory?? - $fileline\n" ;
+				}
+			else
+				{
+				$fileline =~ s,/,\\,g;
+				$fileline =~ s/^[\/\\]//;
+				push (@package, $fileline);
+				}
+			}
+		}
+
+	close(FILE);
+
+	return \@package;
+	}
+
+sub readFileList($)
+	{
+	my ($file) = @_;
+
+	my @filelist;
+		
+	# Read file list in
+	open (FILELIST, $file) or die "File '$file' not found\n";
+	while (my $filename=<FILELIST>)
+		{
+		chomp($filename);
+		$filename =~ s,/,\\,g ;
+		$filename =~ s/^[\/\\]//;  # remove initial slash
+		push @filelist, $filename;
+		}
+	
+	close(FILELIST);
+	
+	return \@filelist;
+	}
+
+sub writePkg($$$$$$$$$$$$)
+	{
+	my ($pkgPath, $pkgName, $fileList, $device, $dependencies, $paths, $menu, $map, $version, $category, $description, $licence, $tags) = @_;
+	my $from;
+	my $to;
+
+	if ($map != 0)
+		{
+		($from, $to) = @$map;
+		}
+	if ($pkgPath ne "")
+		{
+		mkpath($pkgPath);
+
+		if (-e $pkgPath)
+			{
+			if (!(-d $pkgPath))
+				{
+				die "Couldn't open output dir $pkgPath (file of the same name already exists)\n";
+				}
+			}
+		else
+			{
+			die "Couldn't open output dir $pkgPath\n";
+			}
+		}
+	
+	open (FILE, ">$pkgPath$pkgName.pkgdef") or die "Couldn't open output file $pkgPath$pkgName.pkgdef";
+	print (FILE "<?xml version=\"1.0\" encoding=\"ISO8859-1\"?>\n");
+	print (FILE "\n");
+
+	print (FILE "<packagedef version=\"1.0\">\n");
+	print (FILE "  <package name=\"$pkgName\" major-version=\"0\" minor-version=\"0\">\n");
+	print (FILE "    <supplier>Symbian Ltd</supplier>\n");
+	print (FILE "    <sdk-version>$version</sdk-version>\n");
+	print (FILE "    <category>$category</category>\n") if ($category ne "");
+	print (FILE "    <description>$description</description>\n\n") if ($description ne "");
+	
+	print (FILE "    <licensing-agreement xml:lang=\"en_US\" document-root=\"".$licence."\"  mime-type=\"text\/plain\"/>\n") if ($licence ne "");
+	print (FILE "    <attributes>\n      <device name=\"".$device."\"/>\n    </attributes>\n") if ($device ne "device");
+		
+	if (scalar(@$tags) > 0)
+	{
+		print (FILE "    <install-path-tags>\n");
+		(my $tagName, my $tagValue) = @$tags;
+		print (FILE "      <tag tag=\"$tagName\">$tagValue</tag>\n");
+		print (FILE "    </install-path-tags>\n");
+	}
+	if (scalar(@$dependencies) > 0)
+		{
+		print (FILE "    <dependencies>\n");
+		foreach my $dependency (@$dependencies)
+			{
+			print (FILE "      <dependency name=\"$dependency\" major-version=\"0\" minor-version=\"0\" build-number=\"0\"/>\n");
+			}
+		print (FILE "    </dependencies>\n");
+		}
+	if (scalar(@$paths) > 0)
+		{
+		print (FILE "    <environment-changes>\n");
+		foreach my $path (@$paths)
+			{
+			print (FILE "      <add-to-variable name=\"Path\" value=\"$path\" how=\"append\" separator=\";\"/>\n");
+			}
+		print (FILE "    </environment-changes>\n");
+		}
+	if (scalar(@$menu) > 0)
+		{
+		print (FILE "    <shortcuts>\n");
+		foreach my $entry (@$menu)
+			{
+			my ($name, $description, $workingDirectory, $filePath, $arguments, $iconPath) = @$entry;
+			
+			print (FILE "      <shortcut shortcut-path=\"Symbian\" file-path=\"".$filePath."\"");
+			print (FILE " description=\"".$description."\"") unless ($description eq "");
+			print (FILE " arguments=\'".$arguments."\'") unless ($arguments eq "");
+			print (FILE " working-directory=\"".$workingDirectory."\"") unless ($workingDirectory eq "");
+			print (FILE ">\n");
+			print (FILE "        <shortcut-name xml:lang=\"en-US\" name=\"".$name."\"/>\n");
+			print (FILE "        <shortcut-icon path=\"".$iconPath."\"/>\n") unless ($iconPath eq "");
+			print (FILE "      </shortcut>\n");
+			}
+		print (FILE "    </shortcuts>\n");
+		}
+	print (FILE "  </package>\n");
+	print (FILE "\n");
+	print (FILE "  <manifest>\n");
+
+	$fileList=[sort(@$fileList)];
+	$fileList=removeDuplicates($fileList,1); # Remove additional duplicates (may happen with 'patch'ed files)
+
+	foreach my $line (@$fileList)
+		{
+		print FILE "    <item src=\"\\$line\"";
+		$line =~ s/^$from(.*)$/$1/i;
+		print FILE " dest=\"$to$line\"/>\n";
+		} 
+	print FILE "  <\/manifest>\n</packagedef>\n";
+	close(FILE);
+	}
+
+sub removeDuplicates($$)
+	{
+	# NB: Case insensitive matching
+	my ($aListRef, $aLeave) = @_;
+	my @list = @$aListRef;
+
+	if ($aLeave>1)
+		{
+		die "removeDuplicates(\$\$): Cannot leave more than 1 duplicate\n";
+		}
+
+	my $prevEntry = undef;
+	my $entry;
+
+	my $index=0;
+
+	@list=sort(@list);
+
+	while ($index < scalar(@list))
+		{
+		$entry = lc($list[$index]);
+
+		if ($entry eq $prevEntry)
+			{
+			if ($aLeave == 0)
+				{
+				# Get rid of the prevEntry as well if we need
+				splice(@list, $index-1, 1);
+				$index--;
+				}
+
+			while ($entry eq $prevEntry)
+				{
+				# If there's a duplicate, remove the duplicate
+				splice(@list, $index, 1);
+				# then get the next entry to check	
+				$entry = lc($list[$index]);
+				}
+			}
+
+		$prevEntry = $entry;
+
+		$index++;
+		}
+	
+	return \@list;
+	}
+
+# Keep only duplicated entries - and then only keep one of them
+sub keepDuplicates($)
+	{
+	my ($listRef) = @_;
+	
+	my @list = sort(@$listRef);
+	
+	my $index=0;
+
+	while ($index < scalar(@list))
+		{
+		if (($index<(scalar(@list)-1)) && (lc($list[$index]) eq lc($list[$index+1])))
+			{
+			# Remove all other duplicates except the last one
+			while ((lc($list[$index]) eq lc($list[$index+1])) && $index < (scalar(@list)-1))
+				{
+				splice(@list, $index, 1);
+				}
+			$index++;
+			}
+		else
+			{
+			# Not a duplicate; remove it
+			splice(@list, $index, 1);
+			}
+		}
+	
+	return \@list;
+	}
+
+sub match($$$$)
+	{
+	my @package = @{(shift)}; # Files available for matching
+	my @patterns = @{(shift)}; # List of patterns to match
+	my @options = @{(shift)}; # Options ($warn)
+	my $filename = shift; # This is only used for error messages
+
+	my ($warn) = @options;
+
+	my @regexp = grep(/^\/.*\/$/, @patterns);
+	my @leftpatterns = grep(!/^\/.*\/$/, @patterns);
+	my @filelist = grep(/^#/, @leftpatterns);
+	@leftpatterns = grep(!/^#/, @leftpatterns);
+
+	if (scalar(@leftpatterns) > 0)
+		{
+		foreach my $expression (@leftpatterns)
+			{
+			$log->Error("ERROR: Expression '$expression' not understood (must be /regexp/ or #filename)");
+			}
+		exit($log->getErrorCode());
+		}
+
+	if (scalar(@filelist)>0)
+		{
+		# Prepare list of files to match
+		my $file = shift @filelist;
+		$file =~ s/^#//;
+		my @tomatch = @{readFileList($file) };
+
+		@tomatch = @{removeDuplicates(\@tomatch, 1)}; # Remove extra duplicates
+
+		foreach my $file (@filelist)
+			{
+			$file =~ s/^#//;
+			my @list = @{readFileList($file)};
+
+			@list = @{removeDuplicates(\@list, 1)}; # Remove extra duplicates
+			
+			@tomatch = @tomatch, @list;
+			@tomatch = @{keepDuplicates(\@tomatch)}; # Keep only matching files
+			}
+
+		foreach my $regexp (@regexp)
+			{
+			$regexp =~ s/^\/(.*)\/$/\1/;
+			@tomatch = grep(/$regexp/i, @tomatch); # Filter list of files to match
+			}
+
+		# Match files
+		my @match = ();
+		my @nomatch = ();
+		my $lcentry;
+		
+		foreach my $entry (@tomatch)
+			{
+			$lcentry = lc($entry);
+			my @matches = grep((lc($_) eq $lcentry), @package);
+
+			if (scalar(@matches) == 0)
+				{
+				push @nomatch, $entry;
+				}
+			elsif (scalar(@matches) == 1)
+				{
+				push @match, $matches[0];
+				}
+			else
+				{
+				die "Fatal error: Failure to clear duplicates\n";
+				}
+			}
+		@package = @match;
+				
+		if ($warn)
+			{
+			if (scalar(@nomatch)>0)
+				{
+				my $object;
+
+				if (scalar(@patterns) == 1)
+					{
+					$object="file";
+					}
+				else
+					{
+					$object="rule";
+					}
+				
+				$log->Warn("WARNING: ".scalar(@nomatch)." files not matched from $object '".join(" ",@patterns)."'.");
+				
+				$log->ListMissing(@nomatch);
+				}
+			}
+			
+		if ((scalar(@package) == 0) && (scalar(@tomatch) > 0))
+			{
+			if ($warn)
+				{
+				$log->Warn("WARNING: 0 files matched against rule '".join(" ",@patterns)."' [$filename:$.]");
+				}
+			}
+		}
+	else
+		{
+		# Regexps only
+		foreach my $regexp (@regexp)
+			{
+			$regexp =~ s/^\/(.*)\/$/\1/;
+			@package = grep(/$regexp/i, @package );
+	
+			if (scalar(@package) == 0)
+				{
+				last;
+				}
+			}
+		if (scalar(@package) == 0)
+			{
+			if ($warn)
+				{
+				$log->Warn("WARNING: 0 files matched against rule '".join(" ",@patterns)."' [$filename:$.]");
+				}
+			}
+		}
+
+	return \@package;
+	}				
+
+
+sub replaceStdVars($)
+	{
+	my $line = $_[0];
+	$line =~ s/(%[^%]*?%)/$stdVars{$1}/gi;
+	return $line;
+	}
+		
+
+
+1;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/compare_kit_content.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,264 @@
+#! perl
+
+# Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Compare the sdkpkg lists for corresponding packages in two kits.
+# 
+#
+
+use strict;
+use Getopt::Long;
+
+my $toolVersion = "0.1";
+
+sub usage($)
+	{
+	my ($errmsg) = @_;
+	print STDERR "\ncompare_kit_content.pl - Version $toolVersion\n";
+
+	print "$errmsg\n" if ($errmsg);
+	
+	print STDERR << 'END_OF_HELP';
+
+Usage: compare_kit_content [-subset exp] [-temp dir] [-123] kit1 kit2
+
+Compare the two kits, by matching the sdkpkg files in each kit and comparing the
+list of contents for each package. Each kit can be specified either as a zip file
+or an unpacked directory.
+
+Options:
+-subset exp        Compare only packages with names matching exp
+-temp dir          Use dir as the location for temporary files
+-123               Controls the output: 1 = left only, 2= right only, 3= both (default 12)
+
+END_OF_HELP
+
+	exit(1);
+	}
+
+
+my $subset = "";
+my $temp = "";
+my $verbose = 0;
+my $help = 0;
+my $leftonly = 0;
+my $rightonly = 0;
+my $both = 0;
+
+# 1. Check arguments, output help etc.
+
+GetOptions (
+	'h|help' => \$help,				# print help message
+	'v+' => \$verbose,				# print extra diagnostic info
+	's|subset=s' => \$subset,		# pattern to match 
+	't|temp=s' => \$temp,	        # temporary directory
+	'1' => \$leftonly,	            # display files only in kit1
+	'2' => \$rightonly,	        # display files only in kit2
+	'3' => \$both,	                # display files present in both kits
+	);
+
+usage("") if ($help);
+usage("must specify two kits") if (@ARGV != 2);
+
+usage ("temp directory $temp does not exist") if ($temp ne "" && ! -d $temp);
+
+if ($leftonly==0 && $rightonly==0 && $both==0)
+	{
+	$leftonly = 1;
+	$rightonly = 1;
+	}
+
+sub leftfiles(@)
+	{
+	return if ($leftonly == 0 || scalar @_ == 0);
+	print "left:\t",join("\nleft:\t",sort @_), "\n";
+	}
+sub rightfiles(@)
+	{
+	return if ($rightonly == 0 || scalar @_ == 0);
+	print "right:\t",join("\nright:\t",sort @_), "\n";
+	}
+sub bothfiles(@)
+	{
+	return if ($both == 0 || scalar @_ == 0);
+	print "both:\t",join("\nboth:\t",sort @_), "\n";
+	}
+
+my ($kit1, $kit2) = @ARGV;
+
+# 2. Get the kit content list for both kits
+
+sub kit_content($)
+	{
+	my ($kit) = @_;
+	
+	if (-f "$kit\\package-list.xml.zip")
+		{
+		opendir DIR, $kit or usage("cannot read $kit directory: $!");
+		my @contents = grep /\.sdkpkg$/, readdir DIR;
+		closedir DIR;
+		
+		return "dir", @contents;
+		}
+	
+	usage("$kit is not a valid kit directory") if (!-f $kit);
+	
+	open UNZIP, "unzip -l $kit |" or usage("cannot read $kit as zip archive");
+	my @lines = <UNZIP>;
+	close UNZIP;
+	
+	#  36836436  07-12-08 02:59   com.symbian.api.GT-arm_0_0_M04604_Symbian_OS_v9.5.sdkpkg
+	my @contents;
+	foreach my $line (@lines)
+		{
+		if ($line =~ /\s(\S+\.sdkpkg)$/)
+			{
+			push @contents, $1;
+			}
+		}
+	return "zip", @contents;
+	}
+
+my ($kit1_type,@kit1_contents) = kit_content($kit1);
+my ($kit2_type,@kit2_contents) = kit_content($kit2);
+
+sub compare_package_files($$)
+	{
+	my ($zip1,$zip2) = @_;
+
+	open UNZIP, "unzip -l $zip1 |" or usage("cannot read $zip1 as zip archive");
+	my @lines1 = <UNZIP>;
+	close UNZIP;
+
+	open UNZIP, "unzip -l $zip2 |" or usage("cannot read $zip2 as zip archive");
+	my @lines2 = <UNZIP>;
+	close UNZIP;
+
+	#     699790  12-20-07 00:14   [emul]/epoc32/release/ARMV5/LIB/SipCodec.lib
+	my %zip1_files;
+	foreach my $line (@lines1)
+		{
+		next if ($line !~ /\s\d\d:\d\d\s+(\S.*)$/);
+		$zip1_files{$1} = 1;
+		}
+
+	my @mismatches;
+	my @bothlist;
+	foreach my $line (@lines2)
+		{
+		next if ($line !~ /\s\d\d:\d\d\s+(\S.*)$/);
+		my $file = $1;
+		
+		if (!defined $zip1_files{$file})
+			{
+			push @mismatches, $file;
+			next;
+			}
+		push @bothlist, $file;
+		delete $zip1_files{$file};	# matched - remove from the hash 
+		}
+	
+	bothfiles(@bothlist);
+	rightfiles(@mismatches);
+	leftfiles(keys %zip1_files);
+	}
+
+sub compare_packages($$$$)
+	{
+	my ($type1,$package1,$type2,$package2) = @_;
+	my @unzip = ("unzip", "-j");
+	my $tempdir = ".\\";
+	if ($temp ne "")
+		{
+		push @unzip, ("-d", "$temp");
+		$tempdir = "$temp\\";
+		}
+	
+	my @unlink_temporaries = ();
+	if ($type1 eq "zip")
+		{
+		my $expected_file = $tempdir.$package1;
+		system @unzip,$kit1,$package1;
+		usage ("failed to read $package1 from $kit1") if (! -f $expected_file);
+		push @unlink_temporaries, $expected_file;
+		$package1 = $expected_file;
+		}
+	else
+		{
+		$package1 = $kit1."\\".$package1;
+		}
+	if ($type2 eq "zip")
+		{
+		my $expected_file = $tempdir.$package2;
+		system @unzip,$kit2,$package2;
+		usage ("failed to read $package2 from $kit2") if (! -f $expected_file);
+		push @unlink_temporaries, $expected_file;
+		$package2 = $expected_file;
+		}
+	else
+		{
+		$package2 = $kit2."\\".$package2;
+		}
+	compare_package_files($package1, $package2);
+	
+	unlink @unlink_temporaries if (scalar @unlink_temporaries != 0);
+	}
+
+# 3. sort the lists, eliminating the version information
+
+print "left  ($kit1_type) = $kit1\n";
+print "right ($kit2_type) = $kit2\n";
+
+my %kit1_lookup;
+foreach my $package (sort @kit1_contents)
+	{
+	my $rootname = $package;
+	if ($package =~ /^([^_]*_)\d+_\d+_\S+\.sdkpkg$/)
+		{
+		$rootname = $1;
+		next if ($subset ne "" && $rootname !~ /$subset/i);
+		}
+	$kit1_lookup{$rootname} = $package;
+	}
+
+my @missing_packages;
+
+foreach my $package (sort @kit2_contents)
+	{
+	my $rootname = $package;
+	if ($package =~ /^([^_]*_)\d+_\d+_\S+\.sdkpkg$/)
+		{
+		$rootname = $1;
+		next if ($subset ne "" && $rootname !~ /$subset/i);
+		}
+	my $kit1_package = $kit1_lookup{$rootname};
+	
+	if (!defined $kit1_package)
+		{
+		push @missing_packages, "* $package is only in $kit2\n" if ($rightonly);
+		next;
+		}
+	
+	print "Comparing $rootname...\n";
+	compare_packages($kit1_type, $kit1_package, $kit2_type, $package);
+	delete $kit1_lookup{$rootname};
+	}
+
+foreach my $rootname (sort keys %kit1_lookup)
+	{
+	my $kit1_package = $kit1_lookup{$rootname};
+	push @missing_packages, "* $kit1_package is only in $kit1\n" if ($leftonly);
+	}
+	
+print sort @missing_packages;
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/differ.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,55 @@
+#!\usr\bin\perl
+# Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Treates the output of diff -q to list common parts of filenames of differing
+# files
+# 
+#
+
+while (my $line=<STDIN>)
+	{
+	chomp($line);
+	
+	if ($line =~ /^Files .* differ$/)
+		{
+		if ($line =~ /^Files ([^\s]+) and ([^\s]+) differ$/)
+			{
+			# Files present but differing
+			my @one = reverse(split(/[\/\\]/,$1));
+			my @two = reverse(split(/[\/\\]/,$2));
+			my @common; # Shared RHS of path/filename
+
+			my $index = 0;
+
+			while
+			  (  ($index < scalar(@one))
+			  && ($index < scalar(@two))
+			  )
+				{
+				# If path section is identical, copy to @common
+				if ($one[$index] eq $two[$index])
+					{ unshift @common, $one[$index]; }
+				else
+					{ last; }
+				$index++;
+				}
+
+			print join("\\",@common)."\n";
+			}
+		else
+			{
+			die "Could not parse \"$line\"\n";
+			}
+		}
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/distillsrc/distillsrc.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,99 @@
+#!/bin/perl -w
+# Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# distillsrc.pl - compiles a list of source used in .mrp files, and deletes
+# any unused source
+# 
+#
+
+use strict;
+use FindBin;
+use Getopt::Long;
+use File::Spec;
+
+use lib $FindBin::Bin;
+use distillsrc;
+
+my $errorLevel = 0;
+
+# Distillsrc is to continue on error rather than die.  A warning handler is used
+# so that we can still exit with an error level.
+$SIG{__WARN__} = sub {warn @_;
+                      $errorLevel = 1};
+
+sub dieHelp()
+	{
+	print <<HELP_EOF;
+
+  Usage: perl distillsrc.pl [-f file] [-m file] [-c file] -r src_root
+    -s source_path [-p src_prefix] -l platform [-n] [-d] [-h help];
+	
+  Options in detail:
+    -file|f file : components.txt file to read (may be more than one)
+    -mrp|m file : additional .mrp file to read (may be more than one)
+    -config|c file : a configuration file to use containing .mrp files to use
+    -r src_root : The root from which all src statements are based
+    -s source_path : The path under src_root to the source tree to be processed
+    -p src_prefix : An optional prefix which can be stripped from all src
+      statements
+    -l platform : The platform (beech etc), needed in order to locate the
+      correct product directory
+    -n : don't check the case of files in the config file and in .mrps against
+      the file system
+    -d : dummy mode
+      
+  Note that the src_prefix in combination with the src_root can be used to
+  displace the source tree, if it isn't in it's final location.
+HELP_EOF
+	exit 1;
+	}
+
+# Read command line options to find out if we're doing a dummy run, and where the options are
+my @files = ();
+my @mrps = ();
+my $srcroot;
+my $srcprefix;
+my $dummy = 0;
+my $srcpath;
+my $config;
+my $platform;
+my $help;
+my $nocheckcase;
+GetOptions("config=s" => \$config, "file=s" => \@files, "mrp=s" => \@mrps, "srcroot|r=s" => \$srcroot, "srcpath|s=s" => \$srcpath, "srcprefix|p=s" => \$srcprefix, "platform|l=s" => \$platform, "dummy" => \$dummy, "help" => \$help, "nocheck|n" => \$nocheckcase);
+
+if ($help)
+	{
+	dieHelp();
+	}
+
+
+my $distiller=New CDistillSrc($srcroot, $srcpath, $srcprefix, $platform, !$nocheckcase);
+
+if (!defined($distiller))
+	{
+	dieHelp();
+	}
+
+if (!($distiller->LoadMrps($config, \@files, \@mrps)))
+	{
+	exit 1; # Couldn't read all the mrps - don't start deleting source based on incomplete data
+	}
+
+$distiller->Print(0);
+
+# Run through the source tree, matching every file against the source items. Anything that doesn't, delete it (or warn, if we're doing a dummy run).
+	
+$distiller->DistillSrc($dummy);
+
+exit $errorLevel;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/distillsrc/distillsrc.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,898 @@
+#!/bin/perl -w
+
+# Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# distillsrc.pm - compiles a list of source used in .mrp files, and deletes
+# any unused source
+# 
+#
+
+package CDistillSrc;
+
+use strict;
+use File::Spec;
+use File::Path;
+use File::Basename;
+use FindBin;
+use lib $FindBin::Bin;
+use ReadMrp;
+
+use lib File::Spec->catdir($FindBin::Bin, '..', 'makecbr');
+use CConfig;
+
+
+
+# Constructor
+#
+# Parameters:
+#
+# $aSrcRoot : The root from which all src statements are based
+# $aSrcPath : The path under aSrcRoot to the source tree to be processed
+# $aSrcPrefix : An optional prefix which can be stripped from all src statements
+# $aPlatform : e.g 'beech' - used to locate the platform specific product directory
+#
+# Returns: The object (or undef if there was a problem)
+#
+sub New($$$$)
+	{
+	my $proto = shift;
+	my ($aSrcRoot, $aSrcPath, $aSrcPrefix, $aPlatform, $aCheckCase) = @_;
+
+	my $class = ref($proto) || $proto;
+
+	my $self = {};
+	bless($self, $class);
+
+	my $error = 0;
+
+	if (!defined($aSrcRoot))
+		{
+		print "ERROR: RealTimeBuild: A srcroot must be given, to specify where all 'source' declarations originate from\n";
+		$error = 1;
+		}
+		
+	if (!defined($aSrcPath))
+		{
+		print "ERROR: RealTimeBuild: A srcpath must be given, to specify which source under the srcroot is to be filtered. Use '\\' to filter the entire srcroot\n";
+		$error = 1;
+		}
+
+	if (!defined($aPlatform))
+		{
+		print "ERROR: RealTimeBuild: A platform must be given, to locate the product directory\n";
+		$error = 1;
+		}
+		
+	if ($error)
+		{
+		print "\n";
+		}
+	else
+		{
+		if ($aSrcPath =~ /\.\./)
+			{
+			print "ERROR: RealTimeBuild: The source path must be relative to the srcroot, and must not contain '..'\n";
+			$error = 1;
+			}
+	
+		$self->iSrcRoot($aSrcRoot);
+		$self->iSrcPath($aSrcPath);
+		$self->iSrcPrefix($aSrcPrefix);
+		$self->iPlatform($aPlatform);
+		$self->iSrcItems({});
+		$self->iCheckCase(!!$aCheckCase);
+
+		$self->AddSrcItem("os/buildtools/toolsandutils/productionbldtools/unref/orphan/cedprd/SuppKit", "non-shipped");
+		$self->AddSrcItem("os/buildtools/toolsandutils/productionbldtools/unref/orphan/cedprd/tools", "non-shipped");
+		$self->AddSrcItem("os/buildtools/toolsandutils/productionbldtools/unref/orphan/cedprd/DevKit", "non-shipped");
+		$self->AddSrcItem("os/buildtools/toolsandutils/productionbldtools", "non-shipped");
+		}
+
+	if ($error)
+		{
+		$self = undef;
+		}
+
+	return $self;
+	}
+
+# Object data
+#
+sub iSrcRoot()
+	{
+	my $self = shift;
+	if (@_) { $self->{iSRCROOT} = shift; }
+	return $self->{iSRCROOT};
+	}
+
+sub iSrcPath()
+	{
+	my $self = shift;
+	if (@_) { $self->{iSRCPATH} = shift; }
+	return $self->{iSRCPATH};
+	}
+
+sub iSrcPrefix()
+	{
+	my $self = shift;
+	if (@_) { $self->{iSRCPREFIX} = shift; }
+	return $self->{iSRCPREFIX};
+	}
+
+sub iPlatform()
+	{
+	my $self = shift;
+	if (@_) { $self->{iPLATFORM} = shift; }
+	return $self->{iPLATFORM};
+	}
+	
+sub iSrcItems()
+	{
+	my $self = shift;
+	if (@_) { $self->{iSRCITEMS} = shift; }
+	return $self->{iSRCITEMS};
+	}
+
+sub iCheckCase()
+	{
+	my $self = shift;
+	if (@_) { $self->{iCHECKCASE} = shift; }
+	return $self->{iCHECKCASE};
+	}
+
+sub iCorrectedCase()
+	{
+	my $self = shift;
+	if (@_) { $self->{iCORRECTEDCASE} = shift; }
+	return $self->{iCORRECTEDCASE};
+	}
+
+# LoadMrps - Records the source lines out of all .mrp files
+#
+# Parameters:
+# $aConfig - optional configuration file, as used by makecbr
+# $aLists - optional component lists, as used by makecbr
+# $aMrps - optional .mrp files
+#
+# Returns: True, if the load was successful. False otherwise
+#
+sub LoadMrps($$$)
+	{
+	my $self = shift;
+	my ($aConfig, $aLists, $aMrps) = @_;
+	# Load in config file
+
+	my @lists = @$aLists;
+	my @mrps;
+	foreach my $mrp (@$aMrps){
+		{
+		push @mrps, [$mrp, ''];
+		}
+	}
+	my @configMrps = ();
+    if (defined($aConfig))
+		{
+		my @configs = $self->_LoadConfig($aConfig);
+
+		# Add mrps and lists (after planting them in srcroot)
+		push @lists, map($self->_PlantFile($_), @{$configs[0]});
+		@configMrps = map($self->_PlantFile($_), @{$configs[1]});
+		foreach my $mrp (@configMrps)
+			{
+			push @mrps, [$mrp, ''];
+			}
+		}
+	
+	# Load in mrp lists
+	foreach my $file (@lists)
+		{
+		if (open (MRPLIST, $file))
+			{
+			foreach my $line (<MRPLIST>)
+				{
+				chomp $line;
+				$line =~ s/#.*$//; # Remove comments
+				$line =~ s/^\s*//; # Remove extraneous spaces
+				$line =~ s/\s*$//;
+	
+				if ($line ne "")
+					{
+					my @parms = split(/\s+/, $line);
+	
+					if (scalar(@parms) != 2)
+						{
+						warn "ERROR: RealTimeBuild: Entries in component list '$file' should be of the form 'name mrp_location'. Problem in line: $line\n";
+						next;
+						}
+					else
+						{
+						# Ignore *nosource* entries
+						next if ($parms[1] eq '*nosource*');
+						
+						push @mrps, [$self->_PlantFile($parms[1]), $parms[0]];
+						}
+					}
+				}
+			close MRPLIST or warn "ERROR: RealTimeBuild: Couldn't close '$file' : $!\n";
+			}
+		else
+			{
+			warn "Couldn't open '$file' : $!\n";	
+			}
+		}
+
+	# Load all .mrp files
+	if (scalar(@mrps) == 0)
+		{
+		die "ERROR: RealTimeBuild: No .mrp files were specified\n";
+		}
+
+	my $loaded = 1;
+	
+	foreach my $mrp (@mrps)
+		{
+		# Get path of mrp file (from here)
+		my ($name, $path) = fileparse($mrp->[0]);
+		# Convert to path from source root
+		if (!($self->_RemoveBaseFromPath($self->iSrcRoot(), \$path)))
+			{
+			warn "ERROR: Mrp file $mrp->[0] isn't under the source root (".$self->iSrcRoot().")\n";
+			next;
+			}
+		
+		my $mrpobj;
+        
+        # To indicate the correct case and where the .mrp file comes from if failed to check letter case
+        if (!($self->_CheckCase($mrp->[0]))) {
+            my $mrp_error_source = "optional component list(by -f) or optional .mrp list(by -m)";
+            foreach my $myName (@configMrps) {
+                if ($myName eq $mrp->[0]) {
+                    $mrp_error_source = "config file '".$aConfig."'";
+                    last;
+                }
+            } 
+            print "WARNING: Case of '".$mrp->[0]."' supplied in ".$mrp_error_source." does not match the file system. Should be ".$self->iCorrectedCase()."\n";
+        }
+        
+		if (!eval { $mrpobj = New ReadMrp($mrp->[0]) })
+			{
+			$loaded = 0;
+			my $message = $@;
+			$message =~ s/^(ERROR:\s*)?/ERROR: RealTimeBuild: /i;
+			print $message;
+			}
+		else
+			{
+			my $selfowned = 0;
+			my $mrpComponentName = $mrpobj->GetComponent();
+			if( ($mrp->[1] ne '') && (lc($mrp->[1]) ne lc($mrpComponentName)))
+				{
+				print "ERROR: RealTimeBuild: Component name \'$mrp->[1]\' does not match \'$mrpComponentName\' in $mrp->[0]\n";
+				}
+			foreach my $srcitem (@{$mrpobj->GetSrcItems()})
+				{
+				if ($srcitem =~ /^[\/\\]/)
+					{
+					# Remove source prefix
+					$srcitem = $self->_StripFile($srcitem);
+					}
+				else
+					{
+					# Relative source item
+					$srcitem = File::Spec->catdir($path, $srcitem);
+					}
+
+				my $rootedmrp = $path.$name;
+				if ($self->_RemoveBaseFromPath($srcitem, \$rootedmrp))
+					{
+					$selfowned = 1;
+					}
+
+				$self->AddSrcItem($srcitem, $mrpComponentName);
+				}
+			if ($self->iCheckCase())
+				{
+				foreach my $binexpitem (@{$mrpobj->GetBinExpItems()})
+					{
+					# Check lower case
+					if ($binexpitem =~ /[A-Z]/)
+						{
+						print "REMARK: [$mrpComponentName] Binary/export file $binexpitem should be lower case\n";
+						}
+					}
+				}
+
+			if (!$selfowned)
+				{
+				print "REMARK: .mrp file '$mrp->[0]' does not include itself as source\n"; 
+				}
+			}
+		}
+	return $loaded;
+	}
+	
+# AddSrcItem - Records a source file, usually taken from an .mrp file
+#
+# Parameters:
+# $aItem - the source file name
+# $aComponent - the name of the component which claimed the file
+#
+# Returns: None
+# Dies: Not normally; only if the source hash data structure gets corrupted
+sub AddSrcItem($$)
+	{
+	my $self = shift;
+	my ($aItem, $aComponent) = @_;
+
+	my $item = $aItem;
+
+	# Worth checking that the file exists
+	my $truePath = File::Spec->catdir($self->iSrcRoot(), $item);
+	if (($item !~ /^\\component_defs/i) && (!-e $truePath))
+		{
+		print "ERROR: RealTimeBuild: '$aComponent' owns $item, but that path doesn't exist\n";
+		$item = ""; # No point adding this path to the tree	
+		}
+	else
+		{
+		# Check case consistency
+		$self->_CheckCase($truePath) or print "WARNING: [$aComponent] Case of '".$truePath."' does not match the file system. Should be ".$self->iCorrectedCase()."\n";
+		}
+	
+	$item =~ s/^[\/\\]*//; # Remove preceding slashes
+
+	my @path = split(/[\/\\]+/,$item);
+
+	my $dir = $self->iSrcItems();
+	while ((scalar @path) > 0)
+		{
+		my $subdir = lc(shift @path);
+	
+		if (scalar(@path) == 0)
+			{
+			# Just enter the final path segment
+			if (exists($dir->{$subdir}))
+				{
+				# Someone already owns at least part of this path
+				if (!ref($dir->{$subdir}))
+					{
+					# Someone owns the whole of this path
+					my $conflict = $dir->{$subdir};
+
+					print "REMARK: $aComponent and $conflict both own $item\n";
+					}
+				else
+					{
+					if (ref($dir->{$subdir}) ne "HASH")
+						{
+						die "ERROR: Source hash is corrupted\n";
+						}
+					else
+						{
+						# Someone owns a child of this path
+						my $childtree = $dir->{$subdir};
+
+						my @conflicts = $self->_GetTreeComps($childtree);
+						print "REMARK: $aComponent owns $item, which is already owned by the following component(s): ".join(", ",@conflicts)."\n";
+						}
+					}
+				}
+			$dir->{$subdir} = $aComponent;
+			}
+		else
+			{
+			# Need to enter another subdirectory
+			
+			if (exists($dir->{$subdir}))
+				{
+				if (ref($dir->{$subdir}))
+					{
+					# Someone already has - just do a quick integrity check
+					
+					if (ref($dir->{$subdir}) ne "HASH")
+						{
+						die "ERROR: Source hash is corrupted\n";
+						}
+					}
+				else
+					{
+					# The path from this point on is already owned by a component
+					my $conflict = $dir->{$subdir};
+					
+					print "REMARK: $aComponent and $conflict both own $item\n";
+					last;
+					}
+				}
+			else
+				{
+				$dir->{$subdir} = {};
+				}
+			}
+
+		$dir = $dir->{$subdir};
+		}
+	}
+
+# DistillSrc - Compare the recorded source lines against the source path. Delete anything which doesn't match.
+#
+# Parameters:
+# $aDummy - A flag - non-zero means don't actually delete
+#
+# Returns: None
+sub DistillSrc($$)
+	{
+	my $self = shift;
+	my ($aDummy) = @_;
+
+	my $tree = $self->iSrcItems();
+	my $path = File::Spec->catdir($self->iSrcRoot(), $self->iSrcPath());
+
+	$path=~s/[\/\\]+/\\/; # Remove multiple slashes
+
+	# Pop the srcpath off the front of the tree
+	my @path = split(/[\/\\]/,$self->iSrcPath());
+
+	foreach my $dir (@path)
+		{
+		if ($dir eq ".")
+			{
+			next;
+			}
+		elsif (exists($tree->{lc($dir)}))
+			{
+			$tree = $tree->{lc($dir)};
+		
+			if (!ref($tree))
+				{
+				# Some component owns all of the srcpath
+				last;
+				}
+			}
+		else
+			{
+			# No mrp files claimed any of the source
+			$tree = undef;
+			last;
+			}
+		}
+
+	# Now recurse into the tree and delete files
+	if (defined($tree))
+		{
+		if (ref($tree))
+			{
+			$self->_DistillTree($tree, $path, $aDummy);
+			}
+		else
+			{
+			print "REMARK: All source owned by component '$tree'; no action\n";
+			}
+		}
+	else
+		{
+		print "WARNING: No .mrp files claim any source; removing $path\n";
+		$self->_DeletePath($path, $aDummy);
+		}
+	}
+
+# Print - Display the source tree
+#
+# Parameters:
+# $aDepth - The number of levels of the tree to show. 0 = all levels
+#
+# Returns: None
+sub Print($$)
+	{
+	my $self = shift;
+
+	my ($aDepth) = @_;
+
+	$self->_PrintTree("", $self->iSrcItems(), $aDepth);
+	}
+	
+# *** Private methods ***
+# *** 
+
+# _LoadConfig - (private) Reads a configuration file, as used by makecbr
+#
+# Parameters:
+# $aConfig - filename of the configuration file
+#
+# Returns:
+# (files, mrps) - where files and mrps are listrefs containing component lists and
+# mrp files respectively
+#
+sub _LoadConfig($)
+	{
+	my $self = shift;
+	my ($aConfig) = @_;
+	
+	my @files = ();
+	my @mrps = ();
+	
+	my $config = New CConfig($aConfig);
+
+	if (!defined $config)
+		{
+		die "Couldn't load config file '$aConfig'\n";
+		}
+		
+	# Extract the interesting items into our lists
+	push @mrps, $config->Get("gt+techview baseline mrp location");
+	push @mrps, $config->Get("gt only baseline mrp location");
+	push @files, $config->Get("techview component list");
+	push @files, $config->Get("gt component list");
+	
+	# Remove any items we couldn't find
+	@mrps = grep(defined($_), @mrps);
+	@files = grep(defined($_), @files);
+	
+	return (\@files, \@mrps);
+	}
+
+# _StripFile - (private) Remover of src prefix. Also maps product directories
+#
+# Parameters:
+# $aFile - Filename to process
+#
+# Returns: The processed filename
+#
+sub _StripFile($)
+	{
+	my $self = shift;
+	my ($aFile) = @_;
+
+	my $file = $aFile;
+
+	# Map the product dirs
+	my $platform = $self->iPlatform();
+	$file =~ s#^[\/\\]?product[\/\\]#/sf/os/unref/orphan/cedprd/#i;
+
+	# Remove the prefix
+	my $prefix = $self->iSrcPrefix();
+	
+	if (defined $prefix)
+		{
+		my $mapped = $file; # Keep a copy in case we can't remove the prefix
+		
+		if (!$self->_RemoveBaseFromPath($prefix, \$file))
+			{
+			$file = $mapped;
+			}
+		}
+	
+	return $file;
+	}
+	
+# _PlantFile - (private) Add src root to file. Also take off src prefix
+#
+# Parameters:
+# $aFile - Filename to process
+#
+# Returns: The processed filename
+#
+sub _PlantFile($)
+	{
+	my $self = shift;
+	my ($aFile) = @_;
+
+	my $file = $aFile;
+
+	# Remove the prefix
+	$file = $self->_StripFile($file);
+
+	# Plant the file in the src root
+	$file = File::Spec->catdir($self->iSrcRoot(), $file);
+	
+	# Ensure all slashes are normalised to a single backslash
+	$file =~ s/[\/\\]+/\\/; 
+	
+	return $file;
+	}
+
+# _RemoveBaseFromPath - (private) Remove a base path from the root of a filename.
+#
+# Parameters:
+# $aBase - The base path to remove
+# $$aFile - Filename to process (scalar reference)
+#
+# Returns: True if the file was under the base path, false otherwise
+#   $$aFile may be corrupted if the return is false
+sub _RemoveBaseFromPath($)
+	{
+	my $self = shift;
+	my ($aBase, $aFile) = @_;
+
+	my $base = $aBase;
+	$base =~ s/^[\/\\]*//; # Remove extra slashes
+	$base =~ s/[\/\\]*$//;
+
+	my @base = split(/[\/\\]+/, $base);
+
+	$$aFile =~ s/^[\/\\]*//; # Remove preceding slashes
+	
+	my $matched = 1;
+	my $filedir;
+	
+	foreach my $dir (@base)
+		{
+		if ($$aFile =~ /[\/\\]/)
+			{
+			# Split off the bottom dir
+			$$aFile =~ /([^\/\\]*)[\/\\]+(.*)$/;
+			($filedir, $$aFile) = ($1, $2, $3);
+			}
+		else
+			{
+			# Special case - no more dirs
+			$filedir = $$aFile;
+			$$aFile = "";
+			}
+		if (lc($filedir) ne lc($dir))
+			{
+			# Base doesn't match
+			$matched = 0;
+			last;
+			}
+		}
+	
+	return $matched;
+	}
+
+# _CheckCase - (private) Given a literal filename, compares the case of the
+#                        file on the filesystem against the filename i.e. it
+#                        can be used to enforce case sensitivity
+#
+# Parameters:
+# $aFilename - The literal filename
+#
+# Returns: True if the file matches the supplied case.
+#          True if the file doesn't exist at all (user is expected to check that separately)
+#          True if case checking has been disabled.
+#          False otherwise (if the file exists but under a differing case).
+#
+# If false, the correctly cased name is present through $self->iCorrectedCase()
+sub _CheckCase($)
+{
+	my $self = shift;
+	my ($aFile) = @_;
+
+	return 1 if !($self->iCheckCase()); # checking disabled
+	return 1 if ($^O !~ /win32/i); # only works on Windows anyway
+	
+	return 1 if (!-e $aFile); # file not found (under case-insensitive checking)
+	
+	$self->iCorrectedCase(Win32::GetLongPathName($aFile));
+	return ($aFile eq $self->iCorrectedCase());
+}
+
+# _DistillTree - (private) Given a src tree and a dir, clean out any unowned files
+#
+# Parameters:
+# %$aTree - The source tree (hash ref containing nested hash refs and string leaves)
+# $aDir - The directory to compare against
+# $aDummy - A flag - non-zero means don't do the actual deletion
+#
+# Returns: A flag - non-zero if there were any owned files present
+sub _DistillTree($$$)
+	{
+	my $self = shift;
+	my ($aTree, $aDir, $aDummy) = @_;
+
+
+	my $keptsome = 0;
+
+	if (opendir(DIR, $aDir))
+	{	
+		my $dir = $aDir;
+		$dir =~ s/[\/\\]*$//; # Remove trailing / from dir
+	
+		foreach my $entry (readdir(DIR))
+			{
+			my $path = $dir."\\".$entry;
+	
+			if ($entry =~ /^\.\.?$/)
+				{
+				next;
+				}
+			elsif (exists $aTree->{lc($entry)})
+				{
+				my $treeentry = $aTree->{lc($entry)};
+				if (ref($treeentry) eq "HASH")
+					{
+					# Part of this path is owned
+					if (-d $path)
+						{
+						# Recurse into path
+						my $keep = $self->_DistillTree($treeentry, $path, $aDummy);
+						if ($keep)
+							{
+							$keptsome = 1;
+							}
+						else
+							{
+							# Correction; none of this path was owned
+							$self->_DeletePath($path, $aDummy);
+							}
+						}
+					elsif (-f $path)
+						{
+						my @comps = $self->_GetTreeComps($treeentry);
+						print "ERROR: RealTimeBuild: $path is a file, yet is used as a directory in components: ".join(", ",@comps)."\n";
+						}
+					else
+						{
+						print "ERROR: $path has disappeared while it was being examined\n";
+						}
+					}
+				elsif (!ref($treeentry))
+					{
+					# This path is completely owned
+					$keptsome = 1;
+					next;
+					}
+				else
+					{
+					die "ERROR: Source hash is corrupted\n";
+					}
+				}
+			else
+				{
+				$self->_DeletePath($path, $aDummy);
+				}
+			}
+		
+		closedir(DIR);
+		}
+	else
+		{
+			warn "ERROR: RealTimeBuild: Couldn't open directory '$aDir' for reading\n";
+		}
+
+	return $keptsome;
+	}
+
+# _GetTreeComps - (private) Get all the leaves out of a tree (or component
+#                           names out of a source tree)
+# Parameters:
+# %$aTree - The source tree (hash ref containing nested hash refs and string leaves)
+# 
+# Returns: A list of strings found at the leaves (or component names)
+sub _GetTreeComps($)
+	{
+	my $self = shift;
+	my ($aTree) = @_;
+
+	my @comps = ();
+
+	foreach my $entry (keys(%$aTree))
+		{
+		if (ref($aTree->{$entry}) eq "HASH")
+			{
+			push @comps, $self->_GetTreeComps($aTree->{$entry});
+			}
+		elsif (!ref($aTree->{$entry}))
+			{
+			push @comps, $aTree->{$entry};
+			}
+		else
+			{
+			die "ERROR: Source hash is corrupted\n";
+			}
+		}
+		
+	return @comps;
+	}
+
+# _DeletePath - (private) Safe path deletion (file or dir)
+#
+# $aPath - The path to delet
+# $aDummy  - A flag - non-zero means don't actually delete
+#
+# Returns: None. Prints warnings if deletion fails. Dies only in exceptional circumstances
+sub _DeletePath($$)
+	{
+	my $self = shift;
+
+	my ($aPath, $aDummy) = @_;
+
+	if (-d $aPath)
+		{
+		if ($aDummy)
+			{
+			print "DUMMY: Directory $aPath is not specified in any .mrp file\n";
+			}
+		else
+			{
+			print "REMARK: Deleting directory $aPath; ";
+			my $files = rmtree($aPath);
+			if ($files)
+				{
+				print "$files items removed\n";
+				}
+			else
+				{
+				print "\nWARNING: Problem removing directory $aPath\n";
+				}
+			}
+		}
+	elsif (-f $aPath)
+		{
+		if ($aDummy)
+			{
+			print "DUMMY: File $aPath is not specified in any .mrp file\n";
+			}
+		else
+			{
+				unless($aPath =~ /distribution.policy.s60/i)
+				{
+					print "REMARK: Deleting file $aPath\n";
+					unlink $aPath or print "WARNING: Problem deleting file $aPath\n";
+				}
+			}
+		}
+	else
+		{
+		warn "ERROR: Can't delete path $aPath; not a file or directory\n";
+		}
+	}
+
+# _PrintTree - Display a subset of the source tree
+#
+# Parameters:
+# $aPrefix - The string to prefix all paths
+# $aDepth - The number of levels of the tree to show. 0 = all levels
+#
+# Returns: None
+sub _PrintTree($$$)
+        {
+	my $self = shift;
+	
+        my ($aPrefix, $aTree, $aDepth) = @_;
+
+	my $prefix = "";
+	
+	if ($aPrefix ne "")
+		{
+		$prefix = $aPrefix."\\";
+		}
+
+        foreach my $key (sort(keys(%$aTree)))
+                {
+                if (ref($aTree->{$key}))
+                        {
+			if ($aDepth!=1)
+				{
+				my $newprefix = $prefix.$key;
+				
+				if ($key eq "")
+					{
+					$newprefix.="{empty}";
+					}
+
+                        	$self->_PrintTree($newprefix, $aTree->{$key}, $aDepth-1);
+				}
+			else
+				{
+				print $prefix.$key."\\...\n";
+				}
+                        }
+                else
+                        {
+                        print $prefix.$key." = ".$aTree->{$key}."\n";
+                        }
+                }
+        }
+
+1;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/distillsrc/distribution.policy	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,2 @@
+Category T
+OSD:	Reference/Test	Tools
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/distillsrc/readmrp.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,267 @@
+#! /bin/perl
+# Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# readmrp - API to parse mrp files (but do no further processing)
+# 
+#
+
+package ReadMrp;
+
+sub New($)
+	{
+	my $proto = shift;
+	my $class = ref($proto) || $proto;
+	my $self = {};
+	bless $self, $class;
+
+	my ($fileName) = @_;
+	$self->{filename} = $fileName;
+	$self->Read();
+
+	return $self;
+	}
+
+sub Read()
+	{
+	my $self = shift;
+	my $fileName = $self->{filename};
+
+	die "ERROR: MRP file '$fileName' does not exist\n" unless (-e $fileName);
+
+	my $srcitems = [];
+	my $binexpitems = [];
+	my $component;
+	my $notes;
+
+	open MRP, "$fileName" or die "ERROR: Couldn't open '$fileName' for reading: $!\n";
+	
+	while (my $line = <MRP>)
+		{
+		chomp $line;
+
+		$line =~ s/(?<!\\)#.*$//;  # remove comments
+		$line =~ s/^\s+//;
+		next if (!$line); # blank lines
+
+		my @operands;
+
+		my $string = $line;
+		while ($string)
+		{
+			if ($string =~ s/^\"(.*?)\"// # Match and remove next quoted string
+			or $string =~ s/^(.*?)\s+//   # or, match and remove next (but not last) unquoted string
+		 	or $string =~ s/^(.*)\s*$//)  # or, match and remove last unquoted string.
+			{
+				push (@operands, $1);
+				$string =~ s/^\s+//; # Remove delimiter if present.
+			}
+		}
+
+		my $keyword = shift @operands;
+
+		my $minus = ($keyword =~ s/^-//);
+
+		if ($keyword eq "component")
+			{
+			die "-component is not a valid command in file '$fileName'\n" if $minus;
+			$component = shift @operands;
+			}
+		elsif ($keyword eq "notes_source")
+			{
+			die "-notes_source is not a valid command in file '$fileName'\n" if $minus;
+			$notes = shift @operands
+			# N.B. This may require source mapping, so we don't check for existence here
+			}
+		elsif ($keyword eq "source")
+			{
+			die "-source is not supported by this parser yet in file '$fileName'\n" if $minus;
+			my $srcItem = join ' ', @operands;
+			push @$srcitems, $srcItem;
+			}
+		elsif ($keyword eq "binary")
+			{
+			if (scalar @operands == 1)
+				{
+				push @$binexpitems, shift @operands;
+				}
+			else
+				{
+				# This release doesn't handle bld.inf binary lines; no parsing here
+				}
+			}
+		elsif ($keyword eq "testbinary")
+			{
+			if (scalar @operands == 1)
+				{
+				push @$binexpitems, shift @operands;
+				}
+			else
+				{
+				# This release doesn't handle bld.inf binary lines; no parsing here
+				}
+			}
+		elsif ($keyword eq "exports")
+			{
+			# This release doesn't handle bld.inf exports lines; no parsing here
+			}
+		elsif ($keyword eq "testexports")
+			{
+			# This release doesn't handle bld.inf exports lines; no parsing here
+			}
+		elsif ($keyword eq "export_file")
+			{
+			push @$binexpitems, $operands[1];
+			}
+		elsif ($keyword eq "ipr")
+			{
+			# This release doesn't handle ipr lines; no parsing here
+			}
+		else
+			{
+			die "ERROR: In file '$fileName', command not understood in line: $line\n";
+			}
+		}
+	die "ERROR: Component not specified in file '$fileName'\n" unless defined($component);
+	die "ERROR: Notes_source not specified in file '$fileName'\n" unless defined($notes);
+	$self->{srcitems} = $srcitems;
+	$self->{component} = $component;
+	$self->{binexpitems} = $binexpitems;
+	$self->{notes} = $notes;
+	}
+
+sub GetComponent()
+	{
+	my $self = shift;
+	return $self->{component};
+	}
+
+sub GetSrcItems()
+	{
+	my $self = shift;
+	return $self->{srcitems};
+	}
+
+sub GetBinExpItems()
+	{
+	my $self = shift;
+	return $self->{binexpitems};
+	}
+
+sub GetNotes()
+	{
+	my $self = shift;
+	return $self->{notes};
+	}
+
+sub _SplitOnSpaces($)
+	{
+	my $self = shift;
+	my ($operands) = (@_);
+	
+	# Break down operands
+	my @operands = ();
+	my $operand = "";
+	my $first;
+	while ($operands =~ /\S/)
+		{
+		$operands =~ /^(\s*\S+)(\s+.*)?$/ or die "Semantic error (broken regexp)";
+
+		($first, $operands) = ($1, $2);
+		$operand .= $first;
+
+		$operand =~ s/^\s*//; # Remove preceding whitespace
+
+		if (substr($operand,0,1) ne '"')
+			{
+			# Not quoted
+			push @operands, $operand;
+			$operand = "";
+			}
+		else
+			{
+			# Quoted
+			if (substr($operand,scalar($operand-1),1) eq '"')
+				{
+				# Complete quoted operand
+				$operand = substr ($operand, 1, scalar($operand-1));
+				push @operands, $operand;
+				$operand = "";
+				}
+			# Else leave the operand to have the next word added
+			}
+		}
+
+	if ($operand ne "")
+		{
+		die "ERROR: Missing end quote from '$operand'\n";
+		}
+	
+	return @operands;	
+	}
+1;
+
+__END__
+
+=pod
+
+=head1 NAME
+
+readmrp - Simple parser for MRP fils
+
+=head1 SYNOPSIS
+
+ use readmrp;
+
+ my $mrpFile = '\someFolder\anMrpFile.mrp';
+
+ # Create an instance of a readmrp object
+ my $mrp = new readmrp($mrpFile);
+
+ # Get data out
+ my $name = $mrp->GetComponent();
+ my @srcitems = @{$mrp->GetSrcItems()};
+ my @binexpitems = @{$mrp->GetBinExpItems()};
+ my $notessrc = $mrp->GetNotes();
+
+=head1 DESCRIPTION
+
+This module is used to parse MRP files and to store the basic data.  It does not do any further processing of the data, and so it deliberately does not depend on the referenced files being present.  It records source statements, as well as simple binary statements and the target of export_file statements.  It ignores exports and complex binary statements, which refer to a group directory and would require further processing to determine their targets.
+
+=head1 METHODS
+
+=head2 New (mrpFile)
+
+Constructor.  Takes an MRP filename, and immediately parses it.  Dies if there is a syntax error in the MRP file.
+
+=head2 GetComponent ()
+
+Returns the parsed component name.
+
+=head2 GetSrcItems ()
+
+Returns an array ref of the source paths of the 'source' statements in the MRP file.
+
+=head2 GetBinExpItems ()
+
+Returns an array ref of the target paths of the simple 'binary' and 'export_file' statements in the MRP file.  It does not distringuish between binary files and exports.
+
+=head2 GetNotes ()
+
+Returns the path of the 'notes_source' file.
+
+=head1 COPYRIGHT
+
+Copyright (c) 2004-2007 Symbian Software Ltd. All Rights Reserved.
+
+=cut
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/distillsrc/test/base.txt	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,2 @@
+comPlete	sOurce/complete\complete.mrp
+    whole   source\\\\\\\whOLe/whole.mrp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/distillsrc/test/bincase.mrp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,8 @@
+component	binCase
+binary	\epoc32\thisonesfine
+binary  \epoc32\thisOneIsnt
+binary  \epoc32\andNorIs/thisone
+export_file \prefix\source\bincase\bincase.mrp \epoc32\thisonesokay
+export_file \prefix\source\bincase\bincase.mrp \epoc32\thisonesNot
+export_file \prefix\source\bincase\bincase.mrp \epoc32\norThis\one
+notes_source dummy
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/distillsrc/test/distribution.policy	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,2 @@
+Category T
+OSD:	Reference/Test	Tools
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/distillsrc/test/duffer.mrp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,5 @@
+component duffer
+
+source duffer.mrp
+
+-notes_source can't do this
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/distillsrc/test/naughty.mrp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,3 @@
+component naughty
+source nothing_important
+notes_source relnotes
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/distillsrc/test/options.txt	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,23 @@
+GT+Techview baseline component name:gt_techview_baseline
+GT+Techview baseline mrp location:\Source\miSSinG\miSsINg.mRp
+GT only baseline component name:gt_only_baseline
+GT only baseline mrp location:sourcE\spAcey\spaCEY.mrP
+
+Techview component list:BAse.TxT
+
+Components to export:[\sf\os\unref\orphan\comgen\application-protocols\http\group, \sf\os\unref\orphan\comgen\syslibs\charconv\version1\group, \sf\app\messaging\messagingappbase\smilparser\group, \sf\mw\messagingmw\messagingfw\msgtests\mms\group, \sf\os\unref\orphan\comgen\syncml\group]
+Components to make:[\sf\os\unref\orphan\comgen\syslibs\charconv\version1\group, \sf\mw\messagingmw\messagingfw\msgtests\GMXML\group, \sf\mw\messagingmw\messagingfw\msgtests\mms\group, \sf\os\unref\orphan\comtv\messagingUi\group, \sf\app\java\midpprofile\midpmidlet\j2me\group\8.1]
+Platforms to make:[arm4, winscw, tools, armv5]
+
+GT conflicts mrp location:\sf\os\buildtools\packaging\additionalutils\GT_overwritten.mrp
+GT conflicts component name:GT_overwritten
+Conflicting files log:\product\cedar\generated\logs\techview_dups.log
+
+Release notes template location:\sf\os\buildtools\toolsandutils\productionbldtools\makecbr\files\release.src
+Release notes location:\component_defs\release.src
+Reltools.ini location:\sf\os\deviceplatformrelease\symbianosbld\productionbldcbrconfig\8.1b\Reltools.ini
+Spare drive letter:C*
+Techview directory:\CBRTV
+GT directory:\CBRGT
+Source directories:[\src\]
+Release archive: 8.1bDaily
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/distillsrc/test/source/complete/complete.mrp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,8 @@
+component	complete
+source	\prefix\source\complete
+binary	\prefix/source\complete all
+exports	/prefix\source\complete
+export_file	\epoc32\include\complete	\prefix/source\complete\complete
+source	\prefix\source\shared\complete
+source	\PREFIX\source\shared\DISTRIBUTION.POLICY
+notes_source	dummy
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/distillsrc/test/source/complete/distribution.policy	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,2 @@
+Category T
+OSD:	Reference/Test	Tools
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/distillsrc/test/source/complete/file	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,1 @@
+dummy
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/distillsrc/test/source/distribution.policy	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,2 @@
+Category T
+OSD:	Reference/Test	Tools
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/distillsrc/test/source/fixer.mrp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,5 @@
+component	fixer
+source	fixer.mrp
+source	/prefix/soUrce/DIStribuTION.poliCY
+source	\prefix\soUrce\missing\unowned
+notes_source	dummy
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/distillsrc/test/source/missing/distribution.policy	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,2 @@
+Category T
+OSD:	Reference/Test	Tools
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/distillsrc/test/source/missing/file	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,2 @@
+dummy
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/distillsrc/test/source/missing/missing.mrp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,6 @@
+component	missing
+source	\preFIX\source\missing\file
+source	DISTRIBUTION.POLICY
+source	/prefix\source\missing\missing.mrp
+source	\prefix\source\shared\missing
+notes_source	dummy
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/distillsrc/test/source/missing/unowned	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,1 @@
+dummy
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/distillsrc/test/source/shared/complete	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,1 @@
+dummy
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/distillsrc/test/source/shared/distribution.policy	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,2 @@
+Category T
+OSD:	Reference/Test	Tools
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/distillsrc/test/source/shared/missing	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,1 @@
+dummy
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/distillsrc/test/source/spacey/distribution.policy	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,2 @@
+Category T
+OSD:	Reference/Test	Tools
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/distillsrc/test/source/spacey/spa cey.txt	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,1 @@
+Dum my
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/distillsrc/test/source/spacey/spacey.mrp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,5 @@
+component spacey
+source \source//spacey\\spacey.mrp
+source \source//spacey\\DISTRIBUTION.POLICY
+source \source\spacey\spa cey.txt
+notes_source	dummy     
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/distillsrc/test/source/whole/distribution.policy	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,2 @@
+Category T
+OSD:	Reference/Test	Tools
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/distillsrc/test/source/whole/file	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,1 @@
+dummy
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/distillsrc/test/source/whole/whole.mrp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,4 @@
+component	whole
+source	\\prefix//source\whole
+binary	/prefix/source\whole	all
+notes_source dummy
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/distillsrc/test/test.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,226 @@
+#!\bin\perl -w
+# Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# distillsrc.pl test script
+# 
+#
+
+use FindBin;
+use Cwd ('chdir','abs_path');
+
+my $cwd = abs_path($FindBin::Bin."\\..");
+chdir($cwd) or die "Couldn't change directory to $cwd\n";
+
+# Test cases
+#
+# Entry format: [parameters, [[pass regexps],[fail regexps]]]
+# 
+# [pass regexps] and [fail regexps] are lists of regular expressions, each
+# as a string. All pass regexps must match. No fail regexps may match.
+# If a line matches both, it is said to have passed (hence a generic failure
+# rule can be written to match any output which wasn't expected)
+my @testcases =
+	(
+	['-r fred -l beech' ,
+		[
+			['^ERROR: RealTimeBuild:.*srcpath must be given'],
+			['^ERROR: RealTimeBuild:']
+		]
+	],
+	['-s fred -l beech' ,
+		[
+			['^ERROR: RealTimeBuild:.*srcroot must be given'],
+			['^ERROR: RealTimeBuild:']
+		]
+	],
+	['-r fred -s src' ,
+		[
+			['^ERROR: RealTimeBuild:.*platform'],
+			['^ERROR: RealTimeBuild:']
+		]
+	],
+	['-d -r test -s source -p prefix -l fred -c test\options.txt -N' ,
+		[
+			[
+			'= spacey$',
+			'= whole$',
+			'^DUMMY: File test\\\\source\\\\fixer.mrp',
+			'^DUMMY: File test\\\\source\\\\DISTRIBUTION\\.POLICY',
+			'^DUMMY: File test\\\\source\\\\missing\\\\unowned'
+			],
+			[
+			'^DUMMY:.*is not specified in any \\.mrp file',
+			'does not include itself'
+			]
+		]
+	],
+	['-d -r test -s source -p prefix -l fred -c test\options.txt -m test\source\fixer.mrp' ,
+		[
+			[
+			'= spacey$',
+			'= whole$',
+			'= fixer$',
+			'WARNING: \[fixer\] Case of .test\\\\soUrce\\\\DIStribuTION.poliCY. does not match.* Should be test\\\\source\\\\DISTRIBUTION.POLICY$',
+			'WARNING: \[fixer\] Case of .test\\\\soUrce\\\\missing.* does not match.* Should be test\\\\source\\\\missing',
+			'source\\\\spacey\\\\spa cey.txt = spacey$',
+			],
+			[
+			'^DUMMY:.*is not specified in any \\.mrp file',
+			'does not include itself'
+			]
+		]
+	],
+	['-d -r test -s source -p prefix -l fred -f test\base.txt' ,
+		[
+			[
+			'= whole$',
+			'^DUMMY: File test\\\\source\\\\fixer\\.mrp',
+			'^DUMMY: File test\\\\source\\\\DISTRIBUTION\\.POLICY',
+			'^DUMMY: Directory test\\\\source\\\\missing',
+			'^DUMMY: File test\\\\source\\\\shared\\\\missing',
+			'^DUMMY: Directory test\\\\source\\\\spacey'
+			],
+			[
+			'^DUMMY:.*is not specified in any \\.mrp file',
+			'does not include itself'
+			]
+		]
+	],
+	['-d -r test -s nowt -l fred -m test\naughty.mrp' ,
+		[
+			[
+			'nothing_important.* doesn\'t exist',
+			'No \.mrp files claim any source',
+			'naughty\.mrp.*does not include itself'
+			],
+			['^DUMMY:.*is not specified in any \\.mrp file']
+		]
+	],
+	['-r test -s source -l fred -m test\not_present.mrp' ,
+		[
+			['^ERROR: RealTimeBuild:.*not_present\\.mrp.*does not exist'],
+			[]
+		]
+	],
+	['-r test -s source -l fred -m test\duffer.mrp',
+		[
+			['^ERROR: RealTimeBuild:.*not a valid command.*test\\\\duffer\\.mrp'],
+			['= duffer$']
+		]
+	],
+	['-d -r test -s source -p prefix -l fred -f test\base.txt',
+		[
+			[
+			'^WARNING:.*Case of \'.*complete.mrp\' does not match.* Should be.*source.*$',
+			'^WARNING:.*Case of \'.*whole.mrp\' does not match.* Should be.*whole.whole.*$',
+			],
+			['^WARNING:.*Case of .* does not match.* Should be.*$']
+		]
+	],
+	['-d -r test -s source -p prefix -l fred -m test\bincase.mrp',
+		[
+			[
+			'^REMARK:.*\\\\epoc32\\\\thisOneIsnt should be lower case',
+			'^REMARK:.*\\\\epoc32\\\\andNorIs\/thisone should be lower case',
+			'^REMARK:.*\\\\epoc32\\\\thisonesNot should be lower case',
+			'^REMARK:.*\\\\epoc32\\\\norThis\\\\one should be lower case'
+			],
+			['^REMARK:.*should be lower case.*$']
+		]
+	]
+	);
+
+my $passes = 0;
+my $tests = 0;
+
+foreach my $testcase (@testcases)
+	{
+	my $cmd = "distillsrc.pl ".$testcase->[0];
+	print "\nRunning $cmd\n";
+	my @output = `perl $cmd 2>&1`;
+	my @passregexps = @{$testcase->[1]->[0]};
+	my @failregexps = @{$testcase->[1]->[1]};
+
+	my $testpass = -1; # (unset)
+
+	foreach my $line (@output)
+		{
+		chomp ($line);
+		my $pass = 0;
+		my $fail = 0;
+		
+		foreach my $passregexp (@passregexps)
+			{
+			if ($line =~ /$passregexp/)
+				{
+				$pass = 1;
+
+				# Remove rule from list
+				@passregexps = grep($_ ne $passregexp, @passregexps);
+				}
+			}
+
+		if (!$pass)
+			{
+			foreach my $failregexp (@failregexps)
+				{
+				if ($line =~ /$failregexp/)
+					{
+					$fail = 1;
+					}
+				}
+			}
+
+		if ($pass)
+			{
+			print "GOOD:$line\n";
+			if ($testpass == -1)
+				{
+				$testpass = 1; # Passed (so far)
+				}
+			}
+		elsif ($fail)
+			{
+			print "BAD:$line\n";
+			$testpass = 0; # Failed
+			}
+		else { print "OKEH:$line\n"; }
+		}
+	
+	if ($testpass == 1)
+		{
+		if ((scalar @passregexps) == 0)
+			{
+			print "*** PASS\n";
+			$passes ++;
+			}
+		else
+			{
+			print "*** FAIL - tests not matched:\n> ";
+			print join("\n> ", @passregexps)."\n";
+			}
+		}
+	elsif ($testpass == 0)
+		{
+		print "*** FAIL - hard fail\n";
+		}
+	else
+		{
+		print "*** FAIL - no tests matched\n";
+		}
+
+	$tests ++;
+	}
+
+print "*** Out of $tests tests, $passes passed\n";
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/distribution.policy	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,2 @@
+Category T
+OSD:	Reference/Test	Tools
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/exportipr.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,537 @@
+#! /usr/bin/perl
+# Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# This script scans a directory and determines the category of all exported
+# files which would be produced if all bld.inf files present were built.
+# Note that EPOCROOT needs to be set for this to resolve the destination of
+# the exports correctly in most cases.
+# 
+#
+
+use KitStandardLocations;
+my $localEpocRoot = "$OutputDir\\generic\\";
+$pathToE32Variant = $localEpocRoot."epoc32\\tools";
+unshift (@INC, $pathToE32Variant);            # add this to the @INC list of library paths
+
+# set up environment for E32Variant initialisation & preserve old value
+my $oldEpocRoot = $ENV{EPOCROOT};
+$ENV{EPOCROOT} = $localEpocRoot;
+require E32Variant;
+# restore environment
+$ENV{EPOCROOT} =  $oldEpocRoot;
+
+
+$noSource = 0; # Set to 1 to run with only .inf files and DISTRIBUTION.POLICY files present
+$noMissing = 0; # Set to 1 to ignore errors about missing source files (only valid if $noSource is 0, obviously) - to ignore broken bld.inf files
+
+# Discriminate between '-options' and 'parameters'
+my @parms = grep(!/^-/,@ARGV);
+my @options = grep(/^-/,@ARGV);
+
+$bldinf = 0;
+$restrict = 0;
+$cats = {};
+$export = 0;
+$zorcdrive = 0;
+my $sourceRoot;
+my $option;
+my $path;
+my $script;
+
+# Parse options first
+my $index=0;
+while ($index < scalar(@ARGV))
+	{
+	$option = $ARGV[$index];
+	
+	if (lc($option) =~ /^-c/)
+		{
+		# Categories - record each category entered
+		if (lc($option) eq "-c")
+			{
+			$index++;
+			if ($index < scalar(@ARGV))
+				{
+				$option = $ARGV[$index];
+				}
+			else
+				{
+				die "Option '-c' has missing parameters\n";
+				}
+
+			if ($option =~ /^-/)
+				{
+				die "Option '-c' has missing parameters\n";
+				}
+			}
+		else
+			{
+			$option =~ s/^-c//i;
+			}
+
+		foreach my $char (split(//,$option))
+			{
+			if ($char =~ /[ABCDEFGXIOT]/)
+				{
+				$cats->{lc($char)} = 1;
+				}
+			else
+				{
+				die "Category $char from '$option' is not a valid IPR category\n";
+				}
+			}
+		}
+	elsif (lc($option) eq "-bldinf")
+		{
+		# Report bldinfs
+		$bldinf = 1;
+		}
+	elsif (lc($option) eq "-export")
+		{
+		# Include export restricted files
+		$export = 1;
+		}
+	elsif (lc($option) eq "-restricted")
+		{
+		# Include only export restricted files
+		$restrict = 1;
+		}
+	elsif (lc($option) =~ /^-src/)
+		{
+		# Source path
+		if (lc($option) eq "-src")
+			{
+			$index++;
+			if ($index < scalar(@ARGV))
+				{
+				$option = $ARGV[$index];
+				}
+			else
+				{
+				die "Option '-src' is missing its parameter\n";
+				}
+
+			if ($option =~ /^-/)
+				{
+				die "Option '-src' is missing its parameter\n";
+				}
+			}
+		else
+			{
+			$option =~ s/^-src//i;
+			}
+
+		$sourceRoot = $option;
+		}
+	elsif (lc($option) =~ /^-genbuild/)
+		{
+		# Genbuild compatible script
+		if (lc($option) eq "-genbuild")
+			{
+			$index++;
+			if ($index < scalar(@ARGV))
+				{
+				$option = $ARGV[$index];
+				}
+			else
+				{
+				die "Option '-genbuild' is missing its parameter\n";
+				}
+
+			if ($option =~ /^-/)
+				{
+				die "Option '-genbuild' is missing its parameter\n";
+				}
+			}
+		else
+			{
+			$option =~ s/^-genbuild//i;
+			}
+
+		$script = $option;
+		}
+	elsif (lc($option) =~ /^-/)
+		{
+		help();
+		print "\nOption \"$option\" not recognised.\n";
+		exit(0);
+		}
+	else
+		{
+		if (defined($path))
+			{
+			die "Only one path can be scanned at a time (not '$path' and '$option')\n";
+			}
+		else
+			{
+			$path = $option;
+			}
+		}
+	
+	$index++;
+	}
+
+if ($export && $restrict)
+	{
+	# -restricted overrides -export
+	$export = 0;
+	}
+
+if (!defined ($sourceRoot))
+	{
+	help();
+	print "\nexportipr.pl expects a source path to the source tree as a parameter\n";
+	exit(0);
+	}
+
+if (defined($path) && defined($script))
+	{
+	help();
+	print "\nexportipr.pl can only scan a path or parse a script, not both\n";
+	exit(0);
+	}
+
+# read in macros defined in this build
+my $variantMacros = "";
+foreach my $macro (E32Variant::Variant_GetMacroList())
+	{
+	$macro =~ s/\s+$//;	# strip trailing spaces
+	$variantMacros = $variantMacros . " -D" . $macro ;
+	}
+
+if (defined($script))
+	{
+	parse($script, $sourceRoot, $variantMacros);
+	}
+else
+	{
+	$path =~ s/[\/\\]+$//;
+
+	scan($path, $sourceRoot, $variantMacros);
+	}
+
+exit(1);
+
+# Recursively check a path for bld.inf files and process them.
+sub scan($$$)
+	{
+	my ($aPath, $aRoot, $variantMacros) = @_;
+
+	opendir(DIR, $aRoot."/".$aPath) or die "Path $aRoot/$aPath not found!\n";
+
+	foreach my $entry (readdir(DIR))
+		{
+		if (($entry ne ".") and ($entry ne ".."))
+			{
+			if (-d $aRoot."/".$aPath."/".$entry)
+				{ scan($aPath."/".$entry, $aRoot, $variantMacros); }
+			elsif (lc($entry) eq "bld.inf")
+				{
+				getExports($aPath."/".$entry, $aRoot, $variantMacros);
+				}
+			}
+		}
+
+	closedir(DIR);
+	}
+
+# Scan a genbuild script file for bld.inf files and process them.
+sub parse($$$)
+	{
+	my ($aScript, $aRoot, $variantMacros) = @_;
+
+	open(SCRIPT, $aScript) or die "Genbuild script '$aScript' not found\n";
+
+	foreach my $line (<SCRIPT>)
+		{
+		chomp($line);
+
+		$line =~ s/#.*$//; # Remove comments
+		$line =~ s/^\s+//; # Remove preceding space
+		
+		if ($line ne "")
+			{
+			if ($line =~ /^</)
+				{
+				# Ignore <option> or <special>
+				}
+			elsif ($line =~ /^\s*([\S]+)\s+([\S]+)\s*$/)
+				{
+				my ($component,$path) = ($1,$2);
+				
+				getExports($path."\\bld.inf", $aRoot, $variantMacros);
+				}
+			else
+				{
+				die "Line '$line' not recognised in script.\n";
+				}
+			}
+		}
+
+	close(SCRIPT);
+	}
+
+# Process a bld.inf file to get all exported files and their category
+sub getExports($)
+	{
+	my ($aFile, $aSourceRoot, $variantMacros) = @_;
+
+	my $sourceRoot = $aSourceRoot;
+	$sourceRoot =~ s/[\/\\]+$//;
+
+	# There are lots of references to this so put it in a variable.
+	my $bifile = $ENV{TEMP}."/bld.inf";
+
+	# Remove cpp output file in case cpp fails and an old one is left
+	unlink $bifile if -e $bifile ;
+
+	# Preprocess (via cpp), die if there are problems. System has negative
+	# logic so 'and die' is correct.
+	system("cpp ".$variantMacros." -undef $sourceRoot/$aFile $bifile") and die "Error: 'cpp ".$variantMacros." $sourceRoot/$aFile $bifile' failed.\n";
+	# The macro 'arm' is automatically defined by gcc.  This replaces 'arm' in the bld.inf with ' 1 ', hence use of -undef when calling cpp.
+
+	open(FILE, $bifile ) or die "Error: CPP output not accessible\n";
+	
+	my $exports = 0;
+
+	# Pretend the cwd (working dir) is the location of the original bld.inf
+	my $cwd = $aFile;
+	$cwd =~ s/[^\/\\]+$//; # Remove any preceding slashes
+
+	foreach my $line (<FILE>)
+		{
+		chomp $line;
+		$line =~ s/^\s+//; # Strip spaces, before,
+		$line =~ s/\s+$//; # and after.
+		
+		if (lc($line) eq "prj_exports")
+			{
+			# Start of exports declaration
+			$exports = 1;
+			}
+		elsif (lc($line) =~ /^prj/)
+			{
+			# Start of any other section (end of exports decl)
+			$exports = 0;
+			}
+		elsif ($line=~/^# (\d+) "(.*)"( \d+)?/o)
+			{
+			# Included bld.inf file; paths now relative to this
+				{
+				$cwd=$2;
+				$cwd=~s-\\\\-\\-go; # Reduce escaped backslashes
+				$cwd=~s/[^\/\\]+$//; # Strip preceding slashes
+				}
+			}
+		elsif ($exports)
+			{
+			# Line is in PRJ_EXPORTS declaration
+			if ($line ne "")
+				{
+				my ($source, $dest) = split_parms($line);
+
+				# Parse destination path
+				if (($dest =~ /[\/\\]$/) || (!defined($dest)))
+					{
+					# Filename omitted
+					my $file = $source; # Take source filename
+					$file =~ s/^.*[\/\\]//; # Strip path
+					$dest = $dest.$file; # Put in epoc32\include
+					}
+				
+				if ($dest =~ /^[ZC]:[\/\\]/i)
+					{
+					# This export is using the emulated C: or Z: drive,
+					# replace [C/Z]: by \epoc32\data\[C/Z]
+					$dest =~ s/^([ZC]):/\\epoc32\\data\\$1/i;
+					$zorcdrive = 1;
+					}
+				elsif ($dest =~ /^[^\/\\]/)
+					{
+					# if target starts by +\ or +/ replace + by \epoc32
+					if ($dest =~ /^\+[\/\\]/)
+					{
+						$dest =~ s/^\+/\\epoc32/;
+					}
+					else 
+					{
+					# Path relative (to epoc32\include)
+					$dest = "\\epoc32\\include\\$dest";
+					}
+					}
+				if ($dest =~ /^[\/\\]epoc32/)
+					{
+					# Destination under epoc32
+					$dest =~ s/^[\/\\]//;
+					$dest = $ENV{EPOCROOT}.$dest; # Put under EPOCROOT
+					}
+
+				# Parse source path
+				if ($source =~ /^[\/\\]/)
+					{
+					# Source relative to source root
+					$source =~ s/^[\/\\]+//;
+					$source = $sourceRoot."\\".$source;
+					}
+				else
+					{
+					# Truly relative source path
+					$source = $cwd.$source;
+					}
+				
+				if (-e $source || $noSource)
+					{
+					# Get source category
+					my ($cat, $restricted) = getExportCategory($source);
+					
+					if ( $export # Include irrespective of export restrictions
+					  || ($restrict && $restricted) # Include only if restricted
+					  || ((!$restrict) && (!$restricted)) # Include only if not restricted
+					  )
+						{
+						if ((scalar(keys(%$cats)) == 0) || ($cats->{lc($cat)}))
+							{
+							if( $export && $zorcdrive && ($cat =~ /^[ABCI]$/))
+								{
+								print STDERR "WARNING: cat $cat resource file not categorised : $dest \n";
+								}
+							if (scalar(keys(%$cats)) == 0)
+								{
+								# No category specified - display category
+								print STDOUT $cat." ";
+								if ($export && $restricted)
+									{
+									print STDOUT "(export restricted) ";
+									}
+								}
+
+							print STDOUT "$dest";
+
+							if ($bldinf)
+								{
+								# Display bld.inf file
+								print STDOUT " ".$aFile;
+								}
+
+							print STDOUT "\n";
+							}
+						}
+					}
+				elsif (!$noMissing)
+					{
+					print "Error: $aFile: Export file '$source' not found\n";
+					}
+				}
+			}
+			$zorcdrive = 0;
+		}
+	close(FILE);
+	# Remove cpp output file so nothing else can try to use it.
+	unlink $bifile or die "Error: Could not delete $bifile.\n";
+	}
+
+# Identify IPR category for a given file
+sub getExportCategory($)
+	{
+	my ($aSource) = @_;
+
+	my $sdir = $aSource;
+	$sdir =~ s/[\/\\][^\/\\]+$//;
+	my $cat = "X"; # Default if no DISTRIBUTION.POLICY
+	my $restricted = 0;
+	
+	if (open(DISTPOL,"$sdir/DISTRIBUTION.POLICY"))
+		{
+		foreach my $line (<DISTPOL>)
+			{
+			chomp($line);
+			if ($line =~ /^\s*CATEGORY\s+(\w)\s*$/i)
+				{
+				$cat = $1;
+				}
+			elsif ($line =~ /^\s*export\s+restricted\s*$/i)
+				{
+				$restricted = 1;
+				}
+			}
+		close(DISTPOL);
+		}
+	return ($cat, $restricted);
+	}
+
+# Takes a space separated list of parameters (spaces may be double quoted) and
+# returns a perl list.
+sub split_parms($)
+	{
+	my ($aLine) = @_;
+	
+	my $line = $aLine;
+	my @parms;
+	my $parm;
+
+	while ($line !~ /^\s*$/)
+		{
+		#Remove preceding spaces
+		$line =~ s/^\s+//;
+
+		if ($line =~ /^"/)
+			{
+			# Split on quote
+			if ($line =~ m/^"([^"]*)"(.*)$/)
+				{
+				push @parms, $1;
+				$line = $2;
+				}
+			}
+		else
+			{
+			# Split on space
+			if ($line =~ m/^([^\s]*)\s+(.*)$/)
+				{
+				push @parms, $1;
+				$line = $2;
+				}
+			else
+				{
+				# No spaces present
+				push @parms, $line;
+				$line = "";
+				}
+			}
+		}
+
+	return @parms;
+	}
+
+sub help()
+	{
+	print "Syntax: [perl ]exportipr.pl -src sourcepath [-bldinf] [-c...] [path | -genbuild filename]\n";
+	print "\n  sourcepath is a path to a source tree\n";
+	print "\n  EPOCROOT must be set for the destination of the exports to be\n";
+	print "  reported accurately.\n";
+	print "\n  Options:\n";
+	print "   path : is a path (within the source tree) used if the whole source tree\n";
+	print "   is not to be scanned\n";
+	print "  -genbuild filename : points to a genbuild compatible file, used if the whole";
+	print "   source tree is not to be scanned\n";
+	print "  -bldinf : reports the bld.inf file which exports each file\n";
+	print "  -c... : restricts the output to specific categories (e.g. -cFG)\n";
+	print "  -export : includes files irrespective of export restrictions\n";
+	print "  -restricted : only includes files with export restrictions\n";
+	print "By default export restricted files are not reported\n";
+	print "\nWith no -c option the category of each file is reported\n";
+	print "With the -export option additionally applied, export restricted files are indicated\n";
+	print "If a -c option is applied and -bldinf is not, a plain list of\n";
+	print "exports will be produced.\n";
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/exports.bat	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,69 @@
+@echo off
+
+@set generic_source=%CleanSourceDir%
+@set techview_source=%CleanSourceDir%
+@set platform_source=%CleanSourceDir%\%Platform%
+@set KitToolsCommonDir=%CleanSourceDir%\common\%ProductDir%\tools
+@set KitToolsPlatformDir=%CleanSourceDir%\%Platform%\%ProductDir%\tools
+
+@set results=%ProductPath%\generated\logs
+
+@set tool=%KitToolsCommonDir%\exportipr.pl
+@set etel_script=%KitToolsPlatformDir%\etel.bld
+@set ipv6_script=%KitToolsPlatformDir%\ipv6.bld
+@set java_script=%KitToolsPlatformDir%\java.bld
+@set midp81_script=%KitToolsPlatformDir%\midp81.bld
+@set midp91_script=%KitToolsPlatformDir%\midp91.bld
+@set midp92_script=%KitToolsPlatformDir%\midp92.bld
+@set midp93_script=%KitToolsPlatformDir%\midp93.bld
+@set midpFuture_script=%KitToolsPlatformDir%\midpFuture.bld
+@set midp94_script=%KitToolsPlatformDir%\midp94.bld
+@set midp95_script=%KitToolsPlatformDir%\midp95.bld
+@set midp96_script=%KitToolsPlatformDir%\midp96.bld
+@set midptb92_script=%KitToolsPlatformDir%\midptb92.bld
+@set midptb101sf_script=%KitToolsPlatformDir%\midptb101sf.bld
+@set crypto_script=%KitToolsPlatformDir%\crypto.bld
+@set systemtest_script=%KitToolsPlatformDir%\systemtest.bld
+
+@set path=%path%;%OutputDir%\generic\epoc32\gcc\bin\
+@set EPOCROOT=\
+@mkdir %results% 2> nul
+
+@set gt_script=%OutputDir%\generic\epoc32\data\GT.txt
+@set techview_script=%OutputDir%\generic\epoc32\data\TV.txt
+
+perl %tool% -export -bldinf -src %generic_source% -genbuild %gt_script% > %results%\GTipr.log 2> %results%\GTerr.log
+perl %tool% -restricted -cABCDEFGT -src %generic_source% -genbuild %gt_script% > %results%\GTrestrict.log 2> nul
+perl %tool% -export -CA -src %generic_source% -genbuild %gt_script% > %results%\GTAexports.log 2> nul
+perl %tool% -export -CB -src %generic_source% -genbuild %gt_script% > %results%\GTBexports.log 2> nul
+perl %tool% -export -CI -src %generic_source% -genbuild %gt_script% > %results%\GTIexports.log 2> nul
+perl %tool% -export -CO -src %generic_source% -genbuild %gt_script% > %results%\GTOexports.log 2> nul
+perl %tool% -export -CC -src %generic_source% -genbuild %gt_script% > %results%\GTCexports.log 2> nul
+perl %tool% -export -CDET -src %generic_source% -genbuild %gt_script% > %results%\GTDETexports.log 2> nul
+perl %tool% -export -CFG -src %generic_source% -genbuild %gt_script% > %results%\GTFGexports.log 2> nul
+perl %tool% -export -CX -src %generic_source% -genbuild %gt_script% > %results%\GTXexports.log 2> nul
+perl %tool% -export -cABCDEFGT -src %generic_source% -genbuild %etel_script% > %results%\Etel.log 2> %results%\Etelerr.log
+perl %tool% -export -cABCDEFGT -src %generic_source% -genbuild %crypto_script% > %results%\crypto.log 2> %results%\cryptoerr.log
+perl %tool% -export -cABI -src %generic_source% -genbuild %ipv6_script% > %results%\ipv6ABIexports.log 2> %results%\ipv6err.log
+perl %tool% -export -cABCDEFGT -src %platform_source% -genbuild %java_script% > %results%\javaexports.log 2> %results%\javaerr.log
+perl %tool% -export -cABCDEFGT -src %generic_source% -genbuild %midp81_script% > %results%\midp81exports.log 2> %results%\midp81err.log
+perl %tool% -export -cABCDEFGT -src %generic_source% -genbuild %midp91_script% > %results%\midp91exports.log 2> %results%\midp91err.log
+perl %tool% -export -cABCDEFGT -src %generic_source% -genbuild %midp92_script% > %results%\midp92exports.log 2> %results%\midp92err.log
+perl %tool% -export -cABCDEFGT -src %generic_source% -genbuild %midp93_script% > %results%\midp93exports.log 2> %results%\midp93err.log
+perl %tool% -export -cABCDEFGT -src %generic_source% -genbuild %midpFuture_script% > %results%\midpFutureexports.log 2> %results%\midpFutureerr.log
+perl %tool% -export -cABCDEFGT -src %generic_source% -genbuild %midp94_script% > %results%\midp94exports.log 2> %results%\midp94err.log
+perl %tool% -export -cABCDEFGT -src %generic_source% -genbuild %midp95_script% > %results%\midp95exports.log 2> %results%\midp95err.log
+perl %tool% -export -cABCDEFGT -src %generic_source% -genbuild %midp96_script% > %results%\midp96exports.log 2> %results%\midp96err.log
+perl %tool% -export -cABCDEFGT -src %generic_source% -genbuild %midptb92_script% > %results%\midptb92exports.log 2> %results%\midptb92err.log
+perl %tool% -export -cABCDEFGT -src %generic_source% -genbuild %midptb101sf_script% > %results%\midptb101sfexports.log 2> %results%\midptb101sferr.log
+perl %tool% -export -bldinf -src %techview_source% -genbuild %techview_script% > %results%\TVipr.log 2> %results%\TVerr.log
+perl %tool% -restricted -cABCDEFGT -src %techview_source% -genbuild %techview_script% > %results%\TVrestrict.log 2> nul
+perl %tool% -export -CA -src %techview_source% -genbuild %techview_script% > %results%\TVAexports.log 2> nul
+perl %tool% -export -CB -src %techview_source% -genbuild %techview_script% > %results%\TVBexports.log 2> nul
+perl %tool% -export -CI -src %techview_source% -genbuild %techview_script% > %results%\TVIexports.log 2> nul
+perl %tool% -export -CO -src %techview_source% -genbuild %techview_script% > %results%\TVOexports.log 2> nul
+perl %tool% -export -CC -src %techview_source% -genbuild %techview_script% > %results%\TVCexports.log 2> nul
+perl %tool% -export -CDET -src %techview_source% -genbuild %techview_script% > %results%\TVDETexports.log 2> nul
+perl %tool% -export -CDET -src %techview_source% -genbuild %systemtest_script% > %results%\systemtestDETexports.log 2> nul
+perl %tool% -export -CFG -src %techview_source% -genbuild %techview_script% > %results%\TVFGexports.log 2> nul
+perl %tool% -export -CX -src %techview_source% -genbuild %techview_script% > %results%\TVXexports.log 2> nul
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/package.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,183 @@
+#!perl
+
+# package.pl
+
+# Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Version Info:
+# Version 001: initial version
+# Version 002: Typhoon: InstallCustKit.pl added for CustKit 
+# Version 003: Typhoon: calls GenerateLicenseeBuild.exe before building
+# Version 004: Typhoon: auto-generates packages before building; 
+# produces differences between this report & previous build's
+# calls script to produce CustKit as ZIPs
+# Version 005: Typhoon: calls docplugintool script 
+# Version 006: Typhoon: Master Codeline
+# Version 007: Master Codeline
+# Version 007: Master Codeline - beech/cedar split & DocPlugInTool removed
+# Version 008: Master Codeline - custkit.txt generation removed
+# 
+#
+
+
+
+use Cwd;
+use File::Basename;
+use File::Path;
+
+use FindBin;                # where does this script live?
+use lib $FindBin::Bin;      # use this directory for libraries, to find...
+use KitStandardLocations;
+
+my $PlatformProductToolsDir = $FindBin::Bin;
+$PlatformProductToolsDir =~ s/common/$Platform/i;    # change "common" to platform name in path to tools directory
+unshift (@INC, $PlatformProductToolsDir);            # add this to the @INC list of library paths
+require KitPlatformSpecific;                         # and read the platform-specific definitions
+require AllKitsRebaseline;
+require BuildKit;
+require TestKit;
+require MakeCustKitZips;
+
+# ------------------------------ Global variables ----------------------------
+
+my $Company = "Symbian";
+
+
+my $BuildNumber = $ARGV[0];
+$Kit_ID = $BuildNumber;
+
+my $pkgSrcDefDevKitDir = "$DevKitPath\\$SrcDefDir";
+my $pkgSrcDefCustKitDir ="$CustKitPath\\$SrcDefDir";
+
+my $outputCustKitZipsDir =  "$ProductPath\\_PACKAGES\\CustKit_Zips";
+my $outputInternalZipsDir = "$ProductPath\\generated";
+
+
+my $KitBuilderSrcDir =    "$SourceDir\\common\\generic\\tools\\CustKits\\KitBuilder";
+my $KitBuilderBldDir =    "$OutputDir\\techview\\epoc32\\tools\\CustKits\\KitBuilder";
+my $NavigationPagesDir =  "$SourceDir\\common\\generic\\tools\\CustKits\\NavigationPages";
+
+
+my $sourceListDevKit =  "DevKit.srcdef";
+my $sourceListCustKit = "CustKit.srcdef";
+
+
+my $buildPkg =     "$OutputDir\\generic\\epoc32\\tools\\buildpkg";
+my $createPkgSrc = "$OutputDir\\generic\\epoc32\\tools\\createpkgsrc";
+my $diff =         "$OutputDir\\generic\\epoc32\\gcc\\bin\\diff";
+
+my $scriptFile =     "InstallCustKit.pl";
+my $scriptFileZips = "InstallCustKitZIPs.pl";
+my $scriptHelpFile = "ReadMe_First.txt";
+
+
+
+# ----------------- Start of main() ------------------------
+
+open STDERR, ">&STDOUT" ;
+select STDOUT; $| = 1;
+select STDERR; $| = 1;
+
+my $time=localtime;
+print "===  Build process for Kit $Kit_ID started at $time\n";
+
+
+# get the drive we're running on - use for various parameters later on
+my $initialDir = cwd();
+$initialDir =~ m/^(\w:)/ ;
+my $initialDrive = $1;
+
+
+my $CommonProductToolsDir = $FindBin::Bin;
+$CommonProductToolsDir =~ s|/|\\|g;
+$PlatformProductToolsDir =~ s|/|\\|g;
+
+
+# Generate a list of available files
+print "** generate .lis files\n";
+my $logsPath = "$ProductPath\\generated\\logs";		# ensure we can create log files
+(mkpath $logsPath or print "WARNING:  Couldn't create directory for logs\n") if (! -d $logsPath);
+chdir("$OutputDir\\generic");
+system("perl $CommonProductToolsDir\\bfrc\\listdir.pl --files epoc32 > $logsPath\\GT.lis");
+chdir("$OutputDir\\techview");
+system("perl $CommonProductToolsDir\\bfrc\\listdir.pl --files epoc32 > $logsPath\\TechView.lis");
+
+
+
+# run tools to produce up-to-date packages and compare to previous build's package definitions
+print "** RebaselineAndCompare()\n";
+RebaselineAndCompare();
+
+
+
+# generate the licencee list of restricted files
+print "** LicenceeRestrictionsList\n";
+LicenceeRestrictionsList();
+
+
+
+# build the packages into Kits
+print "** BuildKits()\n";
+BuildKit::BuildKit();
+
+
+
+# produce CustKit as a set of ZIPs, with script and HTML navigation pages
+# print "** CustKit as ZIPs\n";
+# CustKitAsZips();
+
+
+
+# produce kit report and difference between this report & previous build's
+TestKit::TestKit();
+system ("$diff --text --speed-large-files $ENV{'PublishLocation'}\\$ENV{'Type'}\\$ENV{'Previousbuildnumber'}\\logs\\KitReport.txt $ENV{'LogsDir'}\\KitReport.txt > $ENV{'LogsDir'}\\KitReportDiffs.txt");
+
+
+
+$time=localtime;
+print "===  Build process for Kit $Kit_ID ended at $time\n";
+
+
+
+
+
+# ----------------- Start of LicenceeRestrictionsList() ------------------------
+sub LicenceeRestrictionsList()
+{
+	my $PackageDefs_copy = "\\PackageDefinitions_copy";
+	mkdir $KitBuilderBldDir."\\".$PackageDefs_copy, 0777 ;
+	system("xcopy  $pkgDefDevKitDir  $KitBuilderBldDir$PackageDefs_copy /E /Z /I /Q"); 
+	system("del $KitBuilderBldDir\\$PackageDefs_copy /F /Q");
+}
+
+
+
+# ----------------- Start of RebaselineAndCompare() ------------------------
+sub RebaselineAndCompare()
+{
+	chdir($CommonProductToolsDir) or die "Unable to change to $CommonProductToolsDir\n";
+	AllKitsRebaseline::AllKitsRebaseline("$ProductPath\\generated");
+
+}
+
+
+# ----------------- Start of CustKitAsZips() ------------------------
+sub CustKitAsZips()
+{
+	chdir($PlatformProductToolsDir) or die "Unable to change to $PlatformProductToolsDir\n";
+	MakeCustKitZIPs::MakeCustKitZIPs ($pkgDefCustKitDir, $pkgDefDevKitDir, $outputCustKitZipsDir, "$ProductPath\\generated", $outputInternalZipsDir);
+	system("copy ".$PlatformProductToolsDir."\\".$scriptFileZips." ".$outputCustKitZipsDir);
+	system("xcopy ".$NavigationPagesDir." ".$outputCustKitZipsDir." /S /I /Q") ;
+	system("del ".$outputCustKitZipsDir."\\distribution.policy /F /Q") ;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/productionbldtools/product_tools.mrp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,7 @@
+# Tools for generating Symbian production builds
+component	product_tools
+
+source	\sf\os\buildtools\toolsandutils\productionbldtools
+
+notes_source	\component_defs\release.src
+ipr T 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/wintunnel/exports/dcomm.ini	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,18 @@
+# DComm.ini
+# WINS emulator Comm port configuation file
+# (c) Symbian 2001
+
+# Remember, this works at DCommWins device driver level, so only
+# has affect on users of this device driver, but including ECUART CSY. 
+# This file will have no affect on other CSY ports, e.g. IRCOMM, 
+# BTCOMM, LOOPBACK. However, it *can* be used to redirect Bluetooth
+# HCI or even IrDA SIR traffic.
+
+# Map COMM::3 to remote PPP server, rather than to COM4
+COMM::0      10.35.2.53:110
+COMM::1      127.0.0.1:8698
+
+# You can also re-patch comm ports. E.g. uncomment the next
+# line to  send EPOC COMM::6, to PC COM1, rather than COM7
+#COMM::6      COM1
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/wintunnel/group/bld.inf	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,46 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// PLATFORMS
+//
+
+//
+PRJ_PLATFORMS
+WINSCW
+
+
+//
+//
+// EXPORTS
+//
+//
+PRJ_EXPORTS
+
+
+//
+//
+// MMPFILES
+//
+//
+PRJ_MMPFILES
+serialldd
+serialpdd
+
+
+//
+//
+// TEST MMPFILES
+//
+//
+PRJ_TESTMMPFILES
+../testcode/client/wintunnel_test_client.mmp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/wintunnel/group/ecdrv.mmp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,38 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+TARGET			ecdrv_wt.pdd
+
+TARGETTYPE		pdd
+
+
+SOURCEPATH		..\src_beech
+SOURCE			 d_cdrv.cpp
+
+SYSTEMINCLUDE	\epoc32\include
+SYSTEMINCLUDE	\epoc32\include\kernel
+
+LIBRARY			 euser.lib
+ASSPLIBRARY		ekern.lib
+
+START WINS
+BASEADDRESS		0x59000000
+WIN32_LIBRARY	kernel32.lib
+WIN32_LIBRARY	ws2_32.lib
+//WIN32_LIBRARY	MSVCRTD.LIB
+
+END
+
+UID		0x100039d0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/wintunnel/group/serialldd.mmp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,36 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// wins/winscomm.mmp
+// 
+//
+
+#include "kernel/kern_ext.mmh"
+systeminclude /epoc32/include/drivers
+
+target			ecomm_wt.ldd
+targettype		ldd
+
+sourcepath	../src_cedar
+source		serialldd.cpp
+
+library 		ekern.lib
+
+start wins
+baseaddress	0x59000000
+win32_library	kernel32.lib
+end
+
+epocallowdlldata
+
+capability		all
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/wintunnel/group/serialpdd.mmp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,48 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// wins/ecdrv.mmp
+// 
+//
+
+
+OPTION CW -w off
+
+#include "kernel/kern_ext.mmh"
+systeminclude /epoc32/include/drivers
+
+
+target		ecdrv_wt.pdd
+
+targettype		pdd
+
+sourcepath	../src_cedar
+source		serialpdd.cpp
+
+library		ekern.lib emulator.lib
+
+start wins
+baseaddress	0x59000000
+
+win32_library	kernel32.lib
+WIN32_LIBRARY	ws2_32.lib
+
+//WIN32_LIBRARY	MSVCRTD.LIB
+
+end
+
+uid		0x100039d0
+
+epocallowdlldata
+
+capability		all
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/wintunnel/group/testtools_WinTunnel.mrp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,10 @@
+component  testtools_wintunnel
+source \sf\os\buildtools\toolsandutils\wintunnel
+binary \sf\os\buildtools\toolsandutils\wintunnel\group all
+exports \sf\os\buildtools\toolsandutils\wintunnel\group
+
+notes_source \component_defs\release.src
+
+
+ipr T 
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/wintunnel/group/testtools_WinTunnel_srconly.mrp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,8 @@
+component  testtools_wintunnel
+source \sf\os\buildtools\toolsandutils\wintunnel
+
+notes_source \component_defs\release.src
+
+
+ipr T 
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/wintunnel/group/testtools_wintunnel_srconly.history.xml	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<relnotes name="TESTTOOLS_DESKTOP">
+  <purpose>
+  </purpose>
+</relnotes>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/wintunnel/src_beech/d_cbuf.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,425 @@
+// Copyright (c) 1996-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of the License "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+
+#include "d_comm.h"
+
+CCommTxBuf::CCommTxBuf()
+	: CCirBuffer()
+	{}
+
+
+TInt CCommTxBuf::ClientRead(DComm* aDriver, DThread* aThread, const TAny* aPtr, TInt& aTxLength, TInt& aTxOffset, TInt aMode)
+//
+// Copy from client to buffer.
+//
+	{
+	TInt offset = aTxOffset;
+	TInt length = aTxLength;
+	if (length==0)
+		return KErrNone;
+
+	TPtr8 des(NULL,0);
+
+	aDriver->DisableInterrupts();
+	TInt count = iCount;
+	TInt space = iLength-count;
+	if (space==0)
+		{
+		aDriver->EnableInterrupts();
+		return KErrOverflow;
+		}
+	TInt maxcopy = Min(space,length);
+	aDriver->EnableInterrupts();
+	
+	TInt copylen = Min(maxcopy, iPtrE-iHead);
+	des.Set(iHead, copylen, copylen);
+	aThread->Read(aPtr, &des, offset, aMode);
+	length -= copylen;
+	offset += copylen;
+
+	copylen = maxcopy-copylen;
+	if (copylen>0)
+		{
+		des.Set(iPtr, copylen, copylen);
+		aThread->Read(aPtr, &des, offset, aMode);
+		length -= copylen;
+		offset += copylen;
+		}
+
+	iHead += maxcopy;
+	if (iHead>=iPtrE)
+		iHead -= iLength;
+
+	aDriver->DisableInterrupts();
+	iCount += maxcopy;
+	aDriver->EnableInterrupts();
+
+	aTxLength = length;
+	aTxOffset = offset;
+	return KErrNone;
+	}
+
+
+CCommRxBuf::CCommRxBuf()
+//
+//
+//
+	{
+	__DECLARE_NAME(_S("CCommRxBuf"));
+	}
+
+CCommRxBuf::~CCommRxBuf()
+//
+//
+//
+	{
+	User::Free(iCharPtr);
+	}
+
+void CCommRxBuf::SetLengthL(TInt aLength)
+//
+// ReAlloc - Resets all the buffer pointers
+//
+	{
+	__ASSERT_ALWAYS(aLength>0,User::Panic(_L("DCOMBUF"),0/*ECircSetLengthNegative*/));
+	aLength = Align4(aLength);
+	iCharPtr=(TUint8 *)User::ReAllocL(iCharPtr, aLength<<1);
+	iLength = aLength;
+	iInfoPtr = iCharPtr+aLength;
+	Reset();
+	}
+
+void CCommRxBuf::Reset()
+//
+// Reset the buffer pointers
+//
+	{
+	iCount = 0;
+	iInsP = 0;
+	iRemP = 0;
+	iInsSeqNum = 0;
+	iRemSeqNum = iInsSeqNum;
+	iLastSeqNum = iInsSeqNum;
+	}
+
+
+TInt CCommRxBuf::ClientWrite(TUint& aStatus, DComm* aDriver, DThread* aThread, const TAny* aPtr, TInt& aRxLength, TInt& aRxOffset, TInt aMode)
+//
+// Copy to client's buffer
+// if aCount==0 then do as much as possible, and only return completed
+// if the clients buffer is full. Normally, aCount would be the count
+// returned by GetInfo().
+//
+	{
+	if (iCount==0)
+		return KErrUnderflow;
+
+	TInt blocksz;
+	TUint state = iInfoPtr[iRemP];
+
+	TInt p;
+	if ((state & 0x0f)==0x0f)
+		{
+		p = (iRemP+0x4)&~0x3;
+		if (p>=iLength)
+			p = 0;
+		blocksz = *((TInt*)(iInfoPtr+p));
+		}
+	else
+		blocksz = state & 0x0f;
+
+	p = iRemP+blocksz;
+	if (blocksz>0)
+		p -= 1;
+	if (p>=iLength)
+		p-=iLength;
+	aStatus = (iInfoPtr[p] << KReceiveIsrShift) & KReceiveIsrMaskComplete;
+
+	TInt length = aRxLength;
+	TInt offset = aRxOffset;
+
+	if (blocksz>0 && blocksz<length)
+		length = blocksz;
+
+	aDriver->DisableInterrupts();
+	TInt count = iCount;
+	// The number of bytes will will extract in total
+	TInt maxcopy = Min(length, count);
+	// Pre-empt the recv int handler so that the sequence
+	// spaces dont clash
+	iRemSeqNum += maxcopy;
+	if (iRemSeqNum > iLastSeqNum)
+		iLastSeqNum = iRemSeqNum;
+	aDriver->EnableInterrupts();
+	
+	TInt copylen;
+	TPtrC8 des;
+	copylen = Min(maxcopy, iLength-iRemP);
+	des.Set(iCharPtr+iRemP, copylen);
+	aThread->Write(aPtr, &des, offset, aMode);
+	offset += copylen;
+	length -= copylen;
+	count -= copylen;	
+	
+	copylen = Min(length, count);
+	if (copylen>0)
+		{
+		des.Set(iCharPtr, copylen);
+		aThread->Write(aPtr, &des, offset, aMode);
+		length -= copylen;
+		count -= copylen;
+		offset += copylen;
+		}
+
+	aDriver->DisableInterrupts();
+	iRemP += maxcopy;
+
+	if (iRemP >= iLength)
+		iRemP -= iLength;
+
+	iCount -= maxcopy;
+
+	aDriver->EnableInterrupts();
+
+	if (blocksz>maxcopy)
+		{
+		TInt ptr = iRemP;
+		TInt count = blocksz-maxcopy;
+		if (count<0x0f)
+			iInfoPtr[ptr] = (TUint8)((iInfoPtr[ptr] & 0xf0) | count);
+		else
+			{
+			iInfoPtr[ptr] = (TUint8)((iInfoPtr[ptr] & 0xf0) | 0x0f);
+			// Word align buffer offset and wrap if needed
+			// so a full count can be written
+			ptr = (ptr+0x4)&~0x3;
+			if (ptr>=iLength)
+				ptr = 0;
+			*((TInt*)(iInfoPtr+ptr)) = count;
+			}
+		}
+		
+	aRxOffset = offset;
+	aRxLength = length;
+	
+	if (blocksz>0)
+		return (blocksz-maxcopy)==0 || aRxLength==0;
+
+	return aRxLength==0;
+	}
+
+
+TInt CCommRxBuf::PutChar(TUint aChar)
+//
+// Add char to receive buffer
+// Return true if this character should complete
+// a Read().
+//
+	{
+	if (iCount>=iLength)
+		return KErrOverflow;
+
+	iCharPtr[iInsP] = (TUint8)(aChar & 0xff);
+	iInfoPtr[iInsP] = (TUint8)(aChar >> KReceiveIsrShift);
+	if (++iInsP >= iLength)
+		iInsP = 0;
+	++iCount;
+	++iInsSeqNum; // Pre-Inc is more efficient for a C++ object
+
+	// Check if we have to write a new event offset into
+	// the info buffer
+	if (aChar & KReceiveIsrMaskComplete)
+		{
+		TInt count = iInsSeqNum - iLastSeqNum;
+		TInt ptr = iInsP-count;
+		if (ptr<0)
+			ptr += iLength;
+		
+		if (count<0x0f)
+			iInfoPtr[ptr] = (TUint8)((iInfoPtr[ptr] & 0xf0) | count);
+		else
+			{
+			iInfoPtr[ptr] = (TUint8)((iInfoPtr[ptr] & 0xf0) | 0x0f);
+			// Word align buffer offset and wrap if needed
+			// so a full count can be written
+			ptr = (ptr+0x4)&~0x3;
+			if (ptr>=iLength)
+				ptr = 0;
+			*((TInt*)(iInfoPtr+ptr)) = count;
+			}
+		iLastSeqNum = iInsSeqNum;
+		return 1;
+		}
+		
+	return 0;
+	}
+
+
+TBool CCommRxBuf::RescanTerminators(DComm* aDriver, TInt aTermCount, TText8* aTermChars)
+	{
+	aDriver->DisableInterrupts();
+
+	TCommSeqNum	_rem = iRemSeqNum;
+	
+	// 1. Move last event point to the current insert pointer
+	// This protects from interrupts
+	iLastSeqNum = iInsSeqNum;
+	TCommSeqNum endseq = iLastSeqNum;
+	
+	// 2. Remove all count information, and terminator flags
+
+	TInt ptr = iRemP;	
+	TCommSeqNum seq = iRemSeqNum;
+	
+	while (seq<endseq)
+		{
+		TInt p = ptr;
+		TInt len;
+		TUint s = iInfoPtr[p];
+
+		if (s==0)
+			len = endseq-seq;
+		else if ((s & 0x0f)==0x0f)
+			{
+			p = (ptr+0x4)&~0x3;
+			if (p>=iLength)
+				p = 0;
+			len = *((TInt*)(iInfoPtr+p));
+			*((TInt*)(iInfoPtr+p)) = 0;
+			}
+		else
+			{
+			iInfoPtr[p] &= 0xf0;
+			len = s & 0x0f;
+			}
+		
+		ptr += len;
+		p = ptr;
+
+		if (len>0)
+			p -= 1;
+		if (p>=iLength)
+			p-=iLength;
+
+		iInfoPtr[p] &= ~(KReceiveIsrTermChar>>KReceiveIsrShift);
+		
+		if (ptr>=iLength)
+			ptr -= iLength;
+		seq += len;				
+		}
+
+	// 3. Now create a new set of counts and events exactly as if inserting the
+	// characters for the first time.
+
+	TBool complete = EFalse;
+	TInt lstptr;
+	TCommSeqNum lstseq;
+
+	ptr = iRemP;	
+	seq = iRemSeqNum;
+
+	lstseq = seq;
+	lstptr = ptr;
+
+	while (seq<endseq)
+		{
+		++seq;
+		TText8 c = iCharPtr[ptr];
+		for (TInt i=0; i<aTermCount; i++)
+			{
+			if (c==aTermChars[i])
+				{
+				iInfoPtr[ptr] |= (KReceiveIsrTermChar>>KReceiveIsrShift);
+				break;
+				}
+			}
+
+		if (iInfoPtr[ptr] & (KReceiveIsrMaskComplete>>KReceiveIsrShift))
+			{
+			TInt len = seq-lstseq;
+			if (len<0x0f)
+				iInfoPtr[lstptr] = (TUint8)((iInfoPtr[lstptr] & 0xf0) | len);
+			else
+				{
+				iInfoPtr[lstptr] = (TUint8)((iInfoPtr[lstptr] & 0xf0) | 0x0f);
+				// Word align buffer offset and wrap if needed
+				// so a full count can be written
+				TInt p = (lstptr+0x4)&~0x3;
+				if (p>=iLength)
+					p = 0;
+				*((TInt*)(iInfoPtr+p)) = len;
+				}
+			lstptr = ptr+1;
+			if (lstptr>=iLength)
+				lstptr -= iLength;
+			lstseq = seq;
+			complete = ETrue;
+			}
+		if (++ptr>=iLength)
+			ptr -= iLength;
+		}
+
+	// 4. Tie into new location of event seq pointer that may have been moved
+	//    as a result of receive interrupts inserting new events
+	if (iLastSeqNum==endseq)
+		{
+		// No interrupts have occurred that resulted in a new event.
+		iLastSeqNum = lstseq;
+		}
+	else
+		{
+		// New event was generated by the interrupt handler
+		// So extract and zero the inserted count
+		TInt p = ptr;
+		TInt len;
+		TUint s = iInfoPtr[p];
+
+		if (s==0)
+			len = endseq-seq;
+		else if ((s & 0x0f)==0x0f)
+			{
+			p = (ptr+0x4)&~0x3;
+			if (p>=iLength)
+				p = 0;
+			len = *((TInt*)(iInfoPtr+p));
+			*((TInt*)(iInfoPtr+p)) = 0;
+			}
+		else
+			{
+			iInfoPtr[p] &= 0xf0;
+			len = s & 0x0f;
+			}
+		// And in the offset for the last event in the re-scan
+		len += seq-lstseq;
+		// Insert the count into the re-scanned section
+		if (len<0x0f)
+			iInfoPtr[lstptr] = (TUint8)((iInfoPtr[lstptr] & 0xf0) | len);
+		else
+			{
+			iInfoPtr[lstptr] = (TUint8)((iInfoPtr[lstptr] & 0xf0) | 0x0f);
+			// Word align buffer offset and wrap if needed
+			// so a full count can be written
+			p = (lstptr+0x4)&~0x3;
+			if (p>=iLength)
+				p = 0;
+			*((TInt*)(iInfoPtr+p)) = len;
+			}
+		complete = ETrue;
+		}
+
+	aDriver->EnableInterrupts();
+	return complete;
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/wintunnel/src_beech/d_cdrv.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,1890 @@
+// Copyright (c) 1995-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Modified serial pdd that supports IP tunneling data from the emulator to  socket.
+// Beech specific version.
+// 
+//
+
+/**
+ @file
+*/
+
+#if defined(_UNICODE)
+#if !defined(UNICODE)
+#define UNICODE
+#endif
+#endif
+#define _WIN32_WINDOWS 0x0410 // Need NT4 / 98 or higher for the timer
+#define WIN32_LEAN_AND_MEAN
+#pragma warning( disable : 4201 ) // nonstandard extension used : nameless struct/union
+#include <windows.h>
+#include <winsock2.h>
+#pragma warning( default : 4201 ) // nonstandard extension used : nameless struct/union
+#include <k32std.h>
+#include <e32wins.h>
+#include "uansi.h"
+#include "d_comm.h"
+
+//#include "iostream.h"
+
+// Dumps everything written to the serial port to temp files.
+//#define _LOG_OUTPUT
+
+
+//----------------------------------------------------------------
+//  logging macros. Just define WINTUN_PDD_LOGGING to enable debug trace
+//  require MSVCRTD.LIB
+#include <crtdbg.h>
+
+//#define WINTUN_PDD_LOGGING 
+
+#ifdef WINTUN_PDD_LOGGING 
+    
+    #pragma warning( disable : 4127 ) 
+
+    #define _Log(a)         _RPT0(_CRT_WARN,a)
+    #define _Log2(a,b)      _RPT1(_CRT_WARN,a,b)
+    #define _Log3(a,b,c)    _RPT2(_CRT_WARN,a,b,c)
+    #define _Log4(a,b,c,d)  _RPT3(_CRT_WARN,a,b,c,d)
+
+#else
+    #define _Log(a)       
+    #define _Log2(a,b)    
+    #define _Log3(a,b,c)  
+    #define _Log4(a,b,c,d)
+
+#endif
+
+const TInt KReadBufSize = 1024;
+const TInt KWriteBufSize = 16;
+//const TInt KWinNTReadBufSize = 1024;
+const TInt KWinNTReadBufSize = 1500;
+const TInt KWinNTWriteBufSize = KWriteBufSize;
+static DWORD dummyLen=0;
+
+enum TDCommWinsFault 
+	{
+	EWindowsUnexpectedError,
+	EUnknownCommand,
+	EBadIOLen,
+	EEofOnSerial,
+	EWriteEarlyCompletion,
+	ELineErrorNotReported,
+	};
+
+class DDriverComm : public DPhysicalDevice
+	{
+public:
+	DDriverComm();
+	virtual TInt Install();
+	virtual TInt Remove();
+	virtual void GetCaps(TDes8 &aDes) const;
+	virtual CBase *CreateL(TInt aUnit,const TDesC *anInfo,const TVersion &aVer);
+	};
+
+class DCommWins : public DComm
+	{
+public:
+	enum TDriverCommand {ESetBreak,EClearBreak,ETransmit,
+						EGetSignals,ESetSignals,EConfigure,
+						EStop,EStopNoDrain,EStart,EDie,EInvalidCommand};
+public:
+	DCommWins();
+	~DCommWins();
+	virtual TInt Start();
+	virtual void Stop(TStopMode aMode);
+	virtual void Break(TBool aState);
+	virtual void EnableTransmit();
+	virtual TUint Signals() const;
+	virtual void SetSignals(TUint aSetMask,TUint aClearMask);
+	virtual TInt Validate(const TCommConfigV01 &aConfig) const;
+	virtual void Configure(TCommConfigV01 &aConfig);
+	virtual void DoConfigure();
+	virtual void CheckConfig(TCommConfigV01& aConfig);
+	virtual void Caps(TDes8 &aCaps) const;
+	virtual void EnableInterrupts();
+	virtual void DisableInterrupts();
+	TInt CompleteSlowOpen(DThread *aThread,TRequestStatus *aReqStat);
+	void EnterCritical();
+	void LeaveCritical();
+	TInt DoCreate(TInt aUnit,const TDesC *anInfo);
+	void WaitForEvent();
+	void DriverCommand(TDriverCommand aCommand);
+	void DoTransmit(TInt aByteCount);
+	void DoReceive(TInt aByteCount);
+	void RunCommThread(TDriverCommand aCommand);
+	inline void SignalDriverThread();
+	TInt DoTransmitIsr(TInt anOffset);
+	void DoReceiveIsr(TUint aCharAndMask);
+	void DoStateIsr();
+	
+    void SetTimer(const TUint aTimeOut); 
+    void CancelTimer(); 
+	
+	
+private:
+	TBool iWritePending;
+	TBool iReadPending;
+
+    TBool iStopping;
+	// TBool iReading;
+	TBool iRunning;
+	TDriverCommand iCommand;
+	TCommConfigV01 *iConfig;
+	TUint iSignals;
+	TUint8 iInBuf[KReadBufSize];
+	DWORD iNumInChars;
+	TUint8 iOutBuf[KWriteBufSize];
+	DWORD iNumOutChars;
+	HANDLE iThread;
+	HANDLE iCommThreadSem;
+	HANDLE iDriverThreadSem;
+	HANDLE iCommPort;
+    HANDLE iWaitableTimer; 
+    LARGE_INTEGER iTimeOut; 
+	DWORD iThreadID;
+	DWORD iSignalStatus;
+	OVERLAPPED iReadOverLapped;
+	OVERLAPPED iWriteOverLapped;
+	OVERLAPPED iSignalOverLapped;
+#if defined (_DEBUG)
+	TInt iUnit;
+	HANDLE iLogFile;
+#endif
+#if defined (_LOG_OUTPUT)
+	HANDLE iWritesHandle;
+	HANDLE iReadsHandle;
+#endif
+	CRITICAL_SECTION iCriticalSection;
+	TInt iIntRefCount;
+	TBool iSkipTransmitIsrNextTime;
+
+	SOCKET iSocket;
+	
+
+    /** @return ETrue if we use socket instead of a real COM port */
+    TBool inline UseSocket(void) const
+        {return  (iSocket != INVALID_SOCKET) && (iSocket != NULL); }
+    
+    TInt QueSocketRead();
+    
+    TBool GetComPortMapping(LPCSTR aFileName, TInt aPortNum, TDes8& aPortMapStr);
+
+	};
+
+void Panic(TDCommWinsFault aFault)
+//
+// Panic the driver 
+//
+	{
+
+	Plat::Panic(_L("DCommWins"),aFault);
+	}
+
+
+TInt MapWinError(TInt aErrCode)
+{
+	switch (aErrCode)
+	{
+	case ERROR_INVALID_USER_BUFFER:
+	case ERROR_NOT_ENOUGH_MEMORY:
+	case ERROR_INSUFFICIENT_BUFFER:
+		return(KErrNoMemory);
+	case ERROR_ACCESS_DENIED:
+		return(KErrAccessDenied);
+	case ERROR_NOT_SUPPORTED:
+		return(KErrNotSupported);
+	default:
+		return(KErrGeneral);
+	} 
+}
+
+TInt MapWinError()
+//
+// Make an E32 error from the dodgy old thing windows tells us
+//
+{
+	DWORD winErr=GetLastError();
+    return MapWinError(winErr);
+}
+
+TUint commThread(DCommWins *comm)
+//
+// Comm thread entry point
+//
+	{
+
+	comm->WaitForEvent();
+	return 0;
+	}
+
+//VOID WINAPI ReadComplete(DWORD anErr,DWORD numBytes,LPOVERLAPPED anOverLapped)
+//
+// Windows read completion routine
+//
+//	{
+//
+//	if (numBytes>KReadBufSize)
+//		Panic(EBadIOLen); 
+//	if (anErr==ERROR_HANDLE_EOF)
+//		Panic(EEofOnSerial);
+//	((DCommWins *)(anOverLapped->hEvent))->DoReceive(numBytes);
+//	}
+
+VOID WINAPI WriteCompletion(DCommWins *aDrv, DWORD anErr,DWORD numBytes)
+//
+// Windows read completion routine
+//
+	{
+
+	if (numBytes>KWriteBufSize+1)	// May have written an Xon
+		Panic(EBadIOLen); 
+	if (anErr==ERROR_HANDLE_EOF)
+		Panic(EEofOnSerial);
+	aDrv->DoTransmit(numBytes);
+	}
+
+BOOL WINAPI EscapeCommFunctionP(HANDLE hFile,DWORD dwFunc, BOOL bUseSocket)
+//
+// Protected Set/Clear modem control signals: protects against this operation being cancelled by another thread
+//
+    {
+	if(bUseSocket)
+        return TRUE;
+
+    DWORD err,res,res1;
+	COMSTAT s;
+	BOOL result;
+
+	result=FALSE;
+	do
+		{
+		ClearCommError(hFile,&err,&s);
+		if((res1=EscapeCommFunction(hFile,dwFunc))==FALSE)
+			res=GetLastError();
+		else
+			{
+			result=TRUE;
+			break;
+			}
+		}
+	while((res1==FALSE) && (res==ERROR_OPERATION_ABORTED));
+	return(result);
+	}
+
+BOOL WINAPI GetCommModemStatusP(HANDLE hFile,LPDWORD lpModemStat, BOOL bUseSocket)
+//
+// Protected read modem control signals: protects against this operation being cancelled by another thread
+//
+	{
+	if(bUseSocket)
+        return TRUE;
+
+	DWORD err,res,res1;
+	COMSTAT s;
+	BOOL result;
+
+	result=FALSE;
+	do
+		{
+		ClearCommError(hFile,&err,&s);
+		if((res1=GetCommModemStatus(hFile,lpModemStat))==FALSE)
+			res=GetLastError();
+		else
+			{
+			result=TRUE;
+			break;
+			}
+		}
+	while((res1==FALSE) && (res==ERROR_OPERATION_ABORTED));
+	return(result);
+	}
+
+BOOL WINAPI GetCommStateP(HANDLE hFile,LPDCB lpDCB, BOOL bUseSocket)
+//
+// Retrieves the current control settings for a specified communications device: protected against
+// this operation being cancelled by another thread
+//
+	{
+	if(bUseSocket)
+        return TRUE;
+
+	DWORD err,res,res1;
+	COMSTAT s;
+	BOOL result;
+
+	result=FALSE;
+	do
+		{
+		ClearCommError(hFile,&err,&s);
+		if((res1=GetCommState(hFile,lpDCB))==FALSE)
+			res=GetLastError();
+		else
+			{
+			result=TRUE;
+			break;
+			}
+		}
+	while((res1==FALSE) && (res==ERROR_OPERATION_ABORTED));
+	return(result);
+	}
+
+BOOL WINAPI SetCommStateP(HANDLE hFile,LPDCB lpDCB, BOOL bUseSocket)
+//
+// Configures a communications device according to the specifications in a device-control block: protected against
+// this operation being cancelled by another thread
+//
+	{
+	if(bUseSocket)
+        return TRUE;
+
+	DWORD err,res,res1;
+	COMSTAT s;
+	BOOL result;
+
+	result=FALSE;
+	do
+		{
+		ClearCommError(hFile,&err,&s);
+		if((res1=SetCommState(hFile,lpDCB))==FALSE)
+			res=GetLastError();
+		else
+			{
+			result=TRUE;
+			break;
+			}
+		}
+	while((res1==FALSE) && (res==ERROR_OPERATION_ABORTED));
+	return(result);
+	}
+
+BOOL WINAPI SetCommMaskP(HANDLE hFile,DWORD dwEvtMask, BOOL bUseSocket)
+//
+// Specifies a set of events to be monitored for a communications device: protected against
+// this operation being cancelled by another thread
+//
+	{
+	if(bUseSocket)
+        return TRUE;
+
+	DWORD err,res,res1;
+	COMSTAT s;
+	BOOL result;
+
+	result=FALSE;
+	do
+		{
+		ClearCommError(hFile,&err,&s);
+		if((res1=SetCommMask(hFile,dwEvtMask))==FALSE)
+			res=GetLastError();
+		else
+			{
+			result=TRUE;
+			break;
+			}
+		}
+	while((res1==FALSE) && (res==ERROR_OPERATION_ABORTED));
+	return(result);
+	}
+
+BOOL WINAPI WriteFileP(HANDLE hFile,LPCVOID lpBuffer,DWORD nNumberOfBytesToWrite,LPDWORD lpNumberOfBytesWritten,LPOVERLAPPED lpOverlapped)
+//
+// Writes data to device pointed by hFile: protected against
+// this operation being cancelled by another thread
+//
+	{
+	DWORD err,res,res1;
+	COMSTAT s;
+	BOOL result;
+
+	result=FALSE;
+	do
+		{
+		ClearCommError(hFile,&err,&s);
+		if((res1=WriteFile(hFile,lpBuffer,nNumberOfBytesToWrite,lpNumberOfBytesWritten,lpOverlapped))==FALSE)
+			res=GetLastError();
+		else
+			{
+			result=TRUE;
+			break;
+			}
+		}
+	while((res1==FALSE) && (res==ERROR_OPERATION_ABORTED));
+	return(result);
+	}
+
+BOOL WINAPI ReadFileP(HANDLE hFile,LPVOID lpBuffer,DWORD nNumberOfBytesToRead,LPDWORD lpNumberOfBytesRead,LPOVERLAPPED lpOverlapped)
+//
+// Writes data to device pointed by hFile: protected against
+// this operation being cancelled by another thread
+//
+	{
+	DWORD err,res,res1;
+	COMSTAT s;
+	BOOL result;
+
+	result=FALSE;
+	do
+		{
+		ClearCommError(hFile,&err,&s);
+		if((res1=ReadFile(hFile,lpBuffer,nNumberOfBytesToRead,lpNumberOfBytesRead,lpOverlapped))==FALSE)
+			res=GetLastError();
+		else
+			{
+			result=TRUE;
+			break;
+			}
+		}
+	while((res1==FALSE) && (res==ERROR_OPERATION_ABORTED));
+	return(result);
+	}
+
+DDriverComm::DDriverComm()
+//
+// Constructor
+//
+	{
+
+#if defined (__COM_ONE_ONLY__)
+	iUnitsMask=0x1; // Support units 0
+#elif defined (__COM_TWO_ONLY__)
+	iUnitsMask=0x2; // Support units 1
+#else
+	iUnitsMask=0x3ff; // Support units 0 to 9
+#endif
+
+	iVersion=TVersion(KCommsMajorVersionNumber,KCommsMinorVersionNumber,KCommsBuildVersionNumber);
+	}
+
+TInt DDriverComm::Install()
+//
+// Install the device driver.
+//
+	{
+#if defined (__COM_ONE_ONLY__)
+	TPtrC buf=_L("Comm.Wins1");
+	return(SetName(&buf));
+#elif defined (__COM_TWO_ONLY__)
+	TPtrC buf=_L("Comm.Wins2");
+	return(SetName(&buf));
+#else
+	TPtrC buf=_L("Comm.Wins");
+	return(SetName(&buf));
+#endif
+	}
+
+TInt DDriverComm::Remove()
+//
+// Remove the device driver.
+//
+	{
+	return(KErrNone);
+	}
+
+void GetWinsCommsCaps(TDes8 &aCaps)
+	{
+
+	TCommCaps2 capsBuf;
+	TCommCapsV02 &c=capsBuf();
+//
+// All rates except 50,2000, 3600 and special
+//
+	c.iRate=KCapsBps75|KCapsBps110|KCapsBps134|KCapsBps150|KCapsBps300|KCapsBps600|KCapsBps1200|KCapsBps1800|KCapsBps2400|KCapsBps4800|KCapsBps7200|KCapsBps9600|KCapsBps19200|KCapsBps38400|KCapsBps57600|KCapsBps115200;
+
+	c.iDataBits=0xf; // All data sizes
+	c.iStopBits=0x3; // 1 and 2 stop bits
+	c.iParity=0x7; // None, Even and Odd
+	c.iHandshake=0x1ff; // All handshakes
+	c.iSignals=0x3f; // All signals
+	c.iSIR=0;//No Ir
+	c.iNotificationCaps=KNotifySignalsChangeSupported|KNotifyDataAvailableSupported;
+	c.iRoleCaps=0;
+	c.iFlowControlCaps=0;
+	aCaps.FillZ(aCaps.MaxLength());
+	aCaps=capsBuf.Left(Min(capsBuf.Length(),aCaps.MaxLength()));
+	}
+
+void DDriverComm::GetCaps(TDes8 &aDes) const
+//
+// Return the drivers capabilities.
+//
+	{
+
+	GetWinsCommsCaps(aDes);
+	}
+
+CBase *DDriverComm::CreateL(TInt aUnit,const TDesC *anInfo,const TVersion &aVer)
+//
+// Create a channel on the device.
+//
+	{
+
+	if (!User::QueryVersionSupported(iVersion,aVer))
+		User::Leave(KErrNotSupported);
+	DCommWins *pD=new(ELeave) DCommWins;
+	TInt ret=pD->DoCreate(aUnit,anInfo);
+	if (ret!=KErrNone)
+		{
+		delete pD;
+		User::Leave(ret);
+		}
+	return(pD);
+	}
+
+
+
+void DCommWins::DoTransmit(TInt aByteCount)
+//
+// Called from write completion routine
+//
+	{
+
+	if(aByteCount==0)
+		{
+		DWORD err,res;
+		COMSTAT s;
+		if (!UseSocket() && ClearCommError(iCommPort,&err,&s)==FALSE)
+			res=GetLastError();
+		}
+	__ASSERT_ALWAYS(iNumOutChars-aByteCount<=KWriteBufSize,Panic(EWriteEarlyCompletion));
+#if defined (_LOG_WRITES)
+		TBuf<0x40> buf;
+		DWORD dummy;
+		buf.Format(_L("write complete %d\r\n"),aByteCount);
+		WriteFile(iLogFile,buf.PtrZ(),buf.Length(),&dummy,NULL);
+#endif
+//
+	iNumOutChars-=aByteCount;
+	if (iCommand==EStop)
+		return;
+	if (iSkipTransmitIsrNextTime)
+		{
+		iSkipTransmitIsrNextTime=EFalse;
+		}
+	else
+		{
+		while (iNumOutChars<KWriteBufSize)
+			{
+			iSkipTransmitIsrNextTime=!DoTransmitIsr(iNumOutChars);
+			if (iSkipTransmitIsrNextTime)
+				break;
+			iNumOutChars++;
+			}
+		}
+	if(iNumOutChars>0)
+		{
+//		WriteFileEx(iCommPort,iOutBuf,iNumOutChars,&iWriteOverLapped,WriteComplete);
+		WriteFile(iCommPort,iOutBuf,iNumOutChars, &dummyLen, &iWriteOverLapped);
+		iWritePending=ETrue;
+
+#if defined (_LOG_OUTPUT)
+		DWORD dummy;
+		WriteFile(iWritesHandle,iOutBuf,iNumOutChars,&dummy,NULL);
+#endif
+#if defined (_LOG_WRITES)
+		buf.Format(_L("Writing %d\r\n"),iNumOutChars);
+		WriteFile(iLogFile,buf.PtrZ(),buf.Length(),&dummy,NULL);
+#endif
+
+		}
+	else
+		iWritePending=EFalse;
+	}
+
+/*
+For reference only:
+Returned from 2nd param to ClearCommError (err below)
+#define CE_RXOVER           0x0001  // Receive Queue overflow
+#define CE_OVERRUN          0x0002  // Receive Overrun Error
+#define CE_RXPARITY         0x0004  // Receive Parity Error
+#define CE_FRAME            0x0008  // Receive Framing error
+#define CE_BREAK            0x0010  // Break Detected
+#define CE_TXFULL           0x0100  // TX Queue is full
+#define CE_PTO              0x0200  // LPTx Timeout
+#define CE_IOE              0x0400  // LPTx I/O Error
+#define CE_DNS              0x0800  // LPTx Device not selected
+#define CE_OOP              0x1000  // LPTx Out-Of-Paper
+#define CE_MODE             0x8000  // Requested mode unsupported
+
+#define IE_BADID            (-1)    // Invalid or unsupported id
+#define IE_OPEN             (-2)    // Device Already Open
+#define IE_NOPEN            (-3)    // Device Not Open
+#define IE_MEMORY           (-4)    // Unable to allocate queues
+#define IE_DEFAULT          (-5)    // Error in default parameters
+#define IE_HARDWARE         (-10)   // Hardware Not Present
+#define IE_BYTESIZE         (-11)   // Illegal Byte Size
+#define IE_BAUDRATE         (-12)   // Unsupported BaudRate
+*/
+
+//void DCommWins::DoReceive(TInt aByteCount)
+//
+// Called from read completion routine 
+//
+//	{
+//	if(aByteCount==0)
+//		{
+//		DWORD err=0,res;
+//		COMSTAT s;
+//		if (iCommPort && ClearCommError(iCommPort,&err,&s)==FALSE)
+//			res=GetLastError();
+//		if(err)
+//			{
+//			Panic(ELineErrorNotReported);
+//			}
+//		}
+//	TInt i=0;
+//	
+//	while(i<aByteCount)
+//		{
+//		DoReceiveIsr(iInBuf[i]);
+//		i++;
+//		}
+//#if defined (_LOG_OUTPUT)
+//		DWORD dummy;
+//		WriteFile(iReadsHandle,iInBuf,aByteCount,&dummy,NULL);
+//#endif 
+//	if(iStopping)
+//		{
+//		iStopping=EFalse;
+//		return;
+//		}
+//
+//	if (!ReadFileEx(iCommPort,iInBuf,KReadBufSize,&iReadOverLapped,ReadComplete))
+//		{
+//		TInt r=GetLastError();
+//		Panic(EWindowsUnexpectedError);
+//		}
+//	}
+
+void DCommWins::RunCommThread(TDriverCommand aCommand)
+//
+// Wake up the comms thread
+//
+	{
+    _Log2("# DCommWins::RunCommThread, command=%d\n", aCommand);
+
+	__ASSERT_DEBUG(aCommand!=EInvalidCommand,Panic(EUnknownCommand));
+	iCommand=aCommand;
+//
+// Are we about to go re-entrant?
+//
+	if(GetCurrentThreadId()==iThreadID)
+		{
+		DriverCommand(aCommand);
+		WaitForSingleObject(iDriverThreadSem,INFINITE);
+		}
+	else
+		{
+		Sleep(0); // Possible deadlock solution - see MSDN Knowledge Base Article Q173260
+		
+		if (ReleaseSemaphore(iCommThreadSem,1,NULL)==FALSE)
+			{
+			DWORD ret=GetLastError();
+			ret=ret;
+			Panic(EWindowsUnexpectedError);
+			}
+		WaitForSingleObject(iDriverThreadSem,INFINITE);
+		}
+	}
+
+inline void DCommWins::SignalDriverThread()
+//
+// Wake up the comms thread
+//
+	{
+	_Log("# DCommWins::SignalDriverThread(), release iDriverThreadSem\n");
+	Sleep(0); // Possible deadlock solution - see MSDN Knowledge Base Article Q173260
+	if (ReleaseSemaphore(iDriverThreadSem,1,NULL)==FALSE)
+		{
+		DWORD ret=GetLastError();
+		ret=ret;
+		Panic(EWindowsUnexpectedError);
+		}
+	}
+
+
+
+//
+#pragma warning( disable : 4705 )	// statement has no effect
+DCommWins::DCommWins()
+//
+// Constructor
+//
+	{
+//	iRunning=EFalse;
+//	iCommand=ESetBreak;
+//	iSignals=0;
+//	iInBuf=0;
+//	iOutBuf=0;
+//	iThread=NULL;
+//	iCommThreadSem=NULL;
+//	iCommPort=NULL;
+//	iThreadID=0;
+	iWritePending = EFalse;
+	iReadPending  = EFalse;
+
+	Mem::FillZ(&iReadOverLapped,sizeof(OVERLAPPED));
+	Mem::FillZ(&iWriteOverLapped,sizeof(OVERLAPPED));
+	__DECLARE_NAME(_S("DCommWins"));
+#ifdef _DEBUG_DEVCOMM
+	iTxIntCount = 0;
+	iRxIntCount = 0;
+	iTxErrCount = 0;
+	iRxErrCount = 0;
+#endif
+	iIntRefCount = 0;
+	iSocket = INVALID_SOCKET;
+
+    _Log("# ------------------------------------------------\n");
+	_Log("# DCommWins::DCommWins()\n");
+    
+	}
+#pragma warning( default : 4705 )
+
+/**
+*   Read serial port mapping from ini file (dComm.ini usually)
+*
+*   @param  aFileName   ini full file path descriptor
+*   @param  aPortNum    serial port number (e.g. 0 for COMM::0)
+*   @param  aPortMapStr descriptor for returned port mapping (e.g. "10.35.2.53:110)
+*   
+*   @return ETrue if the parameter found and everything is OK.
+*/
+TBool DCommWins::GetComPortMapping(LPCSTR aFileName, TInt aPortNum, TDes8& aPortMapStr)
+{
+    TBool   bRes = ETrue;
+	TInt    fileSize;
+    LPVOID	pFileData=NULL;
+
+    //--  open dcomm.ini file
+    HANDLE hFile=CreateFileA(aFileName, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
+	if (!hFile || hFile == INVALID_HANDLE_VALUE)
+	{//-- can't open file, maybe it is just not present
+		bRes = EFalse;
+		goto CleanUp;
+	}
+
+    //-- get file size
+    fileSize = GetFileSize(hFile, NULL);
+    if (fileSize == INVALID_FILE_SIZE || !fileSize)
+    {//-- something is wrong with file size
+		bRes = EFalse;
+		goto CleanUp;
+    }
+    
+    //-- allocate data for buffer 
+	// fileSize+1 to ensure zero-termination of file, since Windows98 might use
+	// a dirty page of memory.  VirtualAlloc initializes memory to zero
+    pFileData = VirtualAlloc(NULL, fileSize+1, MEM_COMMIT, PAGE_READWRITE);
+    if(! pFileData)
+    {//-- something is wrong with memory allocation
+		bRes = EFalse;
+		goto CleanUp;
+    }
+
+    //-- read whole file into buffer
+    DWORD bytesRead;    
+
+    if (! ReadFile(hFile, pFileData, fileSize, &bytesRead, NULL))
+        bRes = EFalse;
+    else
+    {//-- parse file line by line looking for the appropriate port 
+	    LPSTR linePtr=(LPSTR)pFileData;
+		_LIT8(KCommToken, "COMM::");
+        bRes = EFalse;
+
+
+        while(linePtr && *linePtr)
+		{
+			//-- skip spaces at the beginning of the current line
+            while (*linePtr && (*linePtr == '\r' || *linePtr == '\n' || *linePtr == ' ' || *linePtr =='\t'))
+			{
+				++linePtr;
+				--bytesRead;
+			}
+
+            //-- find the end of the line
+			TPtrC8 line((unsigned char*)linePtr, bytesRead);
+            TInt len;
+			for (len = 0; len < line.Length() && (line[len] != '\r' && line[len] != '\n'); ++len)
+				;
+
+			line.Set(line.Left(len));
+			bytesRead -= line.Length();
+			linePtr += line.Length();
+
+            //-- parse the line
+			TLex8   lex(line);
+			TPtrC8  commname (lex.NextToken());
+			if(commname.Length() <= KCommToken().Size())
+				continue; // not enough chars
+			if(commname[0] == '#')
+				continue; // comment line
+
+			if (commname.Left(KCommToken().Size()).CompareF(KCommToken) != 0)
+				continue; // unreconised option. Should log?!?
+    
+            //-- extract comm port number
+    		TLex8 numLex(commname.Mid(KCommToken().Size()));
+			TInt commNum;
+			if(numLex.Val(commNum) != KErrNone || commNum != aPortNum)
+				continue;
+
+			//-- extract comm port mapping substring
+            lex.SkipSpace();
+            aPortMapStr.Copy(lex.Remainder());
+            aPortMapStr.PtrZ();
+            bRes = ETrue;
+
+            break;
+        }//while(linePtr && *linePtr)
+    }
+
+    
+  CleanUp:
+
+    CloseHandle(hFile);
+    VirtualFree(pFileData, 0, MEM_RELEASE);
+
+    return bRes;
+}
+
+
+TInt DCommWins::DoCreate(TInt aUnit,const TDesC * /*anInfo*/)
+//
+// Create the comms driver.
+//
+	{
+    _Log("# DCommWins::DoCreate()\n");
+
+	InitializeCriticalSection(&iCriticalSection);
+
+#if defined (__COM_ONE_ONLY__)
+	if (aUnit!=0)
+		return KErrNotSupported;
+#elif defined (__COM_TWO_ONLY__)
+	if (aUnit!=1)
+		return KErrNotSupported;
+#endif
+
+    //-- get full path for the DComm.ini configuration file
+	TBuf8<MAX_PATH> iniFileName;
+    iniFileName.Copy(EmulatorDataPath());
+	iniFileName.Append(_L8("DComm.ini"));
+    LPCSTR  pszIniFle = (LPCSTR)iniFileName.PtrZ();
+
+    //-- get com port mapping string
+	TBuf8<MAX_PATH> strPortMapping;
+    TBool bFound = GetComPortMapping(pszIniFle, aUnit, strPortMapping);
+
+    if(bFound)
+    {//-- comm port mapping string is found in cofiguration file, we are dealing with sockets now
+    
+        //-- try to locate port number after colon
+        TInt nColonPos = strPortMapping.Locate(':');
+        if(nColonPos != KErrNotFound)
+        {// Found a ':' ... must be a TCP name & port no.
+            TPtrC8 hostAddr(strPortMapping.Left(nColonPos));
+
+            ((char*)strPortMapping.Ptr())[nColonPos] = 0; // replace : with a null term
+
+		    TLex8 portLex (strPortMapping.Mid(nColonPos + 1));
+		    TInt port = 0;
+		    portLex.Val(port);
+
+
+            //-- initialize socket
+
+		    WORD    wVersionRequested;
+		    WSADATA wsaData;
+		    int err; 
+		    wVersionRequested = MAKEWORD(2, 0); 
+		    err = WSAStartup(wVersionRequested, &wsaData);
+		    if (err != 0)
+                return MapWinError(WSAGetLastError());
+
+		    iSocket = WSASocket(AF_INET, SOCK_STREAM, IPPROTO_TCP, 0, 0, WSA_FLAG_OVERLAPPED);
+		    if(iSocket == INVALID_SOCKET)
+                return MapWinError(WSAGetLastError());
+            
+            _Log2("# DCommWins: created socket id: %d\n", iSocket );
+		    
+            sockaddr_in sin;
+
+		    char* devname = (char*)(strPortMapping.Ptr());
+		    u_long nRemoteAddr = inet_addr(devname);
+		    
+            if (nRemoteAddr != INADDR_NONE)
+			{
+			    sin.sin_addr.s_addr = nRemoteAddr;
+			}
+		    else
+			{
+			    struct hostent FAR * hostaddr = gethostbyname (devname);
+			    if(hostaddr == NULL)
+				    return MapWinError(WSAGetLastError());
+			    
+                sin.sin_addr.s_addr = *((u_long*)hostaddr->h_addr_list[0]);
+			}
+
+		    sin.sin_family = AF_INET;
+		    sin.sin_port = htons(TUint16(port));
+
+		    err = WSAConnect(iSocket, (sockaddr*)&sin, sizeof(sin), 0, 0, 0, 0);
+		    if(err)
+                return MapWinError(WSAGetLastError());
+
+            _Log2("# DCommWins: socket connected to the port: %d\n", port);
+
+		    iCommPort = (void*)iSocket;
+            
+        }
+    }
+   
+                        
+    //-----------------------------------------
+
+    if(! UseSocket())
+    {//-- use PC serial port as usual
+        //-- open Windows serial port
+	    TBuf8<0x10> n;
+	    n.Format(_L8("\\\\.\\COM%d"),aUnit+1);
+	    iCommPort=CreateFileA((LPCSTR)n.PtrZ(),GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_FLAG_OVERLAPPED,NULL);
+	    if (iCommPort==INVALID_HANDLE_VALUE)	
+		    {	
+	    //	Reused code from MapWinError() rather than adding an extra case 
+	    //	to MapWinError() because mapping KErrNotSupported to the returned
+	    //	FILE_NOT_FOUND is non-intuitive and special to this case only
+		    DWORD winErr=GetLastError();
+		    switch (winErr)
+			    {
+			    case ERROR_INVALID_USER_BUFFER:
+			    case ERROR_NOT_ENOUGH_MEMORY:
+			    case ERROR_INSUFFICIENT_BUFFER:
+				    return(KErrNoMemory);
+			    case ERROR_ACCESS_DENIED:
+				    return(KErrAccessDenied);
+			    case ERROR_FILE_NOT_FOUND:		//	Reflects value returned by
+				    return(KErrNotSupported);	//	corresponding MARM Pdd  
+			    case ERROR_NOT_SUPPORTED:
+				    return(KErrNotSupported);
+			    default:
+				    return(KErrGeneral);
+			    }
+		    }
+	    
+	    DCB dcb;
+	    if (!GetCommStateP(iCommPort,&dcb,UseSocket()))
+		    return MapWinError();
+
+	    dcb.fDtrControl=DTR_CONTROL_DISABLE;
+	    dcb.fRtsControl=RTS_CONTROL_DISABLE;
+	    dcb.fAbortOnError=TRUE;	// Tell me about your parity problems luvvy
+	    dcb.fParity=TRUE;
+	    dcb.fBinary=TRUE;
+	    dcb.fOutxCtsFlow=FALSE;
+	    dcb.fOutxDsrFlow=FALSE;  
+	    dcb.fDsrSensitivity=FALSE;
+	    dcb.fTXContinueOnXoff=TRUE;
+	    dcb.fOutX=FALSE;
+	    dcb.fInX=FALSE;
+	    dcb.fErrorChar=FALSE;
+	    dcb.fNull=FALSE;
+    //
+    //	dcb.ByteSize;		// number of bits/byte, 4-8
+    //	dcb.Parity;			// 0-4=no,odd,even,mark,space
+    //	dcb.StopBits;		// 0,1,2 = 1, 1.5, 2
+    //	dcb.XonChar;		// Tx and Rx XON character
+    //	dcb.XoffChar;		// Tx and Rx XOFF character
+    //	dcb.ErrorChar;		// error replacement character
+    //	dcb.EofChar;		// end of input character
+    //	dcb.EvtChar;
+    //
+	    if (!SetCommStateP(iCommPort,&dcb, UseSocket()))
+		    return MapWinError();
+
+	    EscapeCommFunctionP(iCommPort,0,UseSocket());
+
+    //
+    // Could add EV_RXCHAR|EV_RXFLAG|EV_TXEMPTY to the following
+    // mask too and get all chars through the call to WaitForAnyObject
+    // rather then the completion routine followed by a manual read
+    //
+	    if (!SetCommMaskP(iCommPort,EV_CTS|EV_ERR|EV_DSR|EV_RLSD|EV_RXCHAR,UseSocket()))
+		    return MapWinError();
+
+	    if(!SetupComm(iCommPort,KWinNTReadBufSize,KWinNTWriteBufSize))
+		    return MapWinError();
+
+    //
+    // The serial port seems to open with the error condition set
+    //
+
+	    DWORD err,res;
+	    COMSTAT s;
+	    if (ClearCommError(iCommPort,&err,&s)==FALSE)
+		    res=GetLastError();
+    }//if(! UseSocket())
+
+	if ((iCommThreadSem=CreateSemaphoreA(NULL,0,0x7fffffff,NULL))==NULL)
+	    return MapWinError();
+    
+    if ((iDriverThreadSem=CreateSemaphoreA(NULL,0,0x7fffffff,NULL))==NULL)
+	    return MapWinError();
+
+    if ((iWaitableTimer=CreateWaitableTimer(NULL, FALSE, NULL))==NULL)
+        return MapWinError();
+
+	if ((iThread=CreateThread(NULL,0x4000,(LPTHREAD_START_ROUTINE)commThread,(void *)this,CREATE_SUSPENDED,&iThreadID))==NULL)
+	    return MapWinError();
+
+    
+
+#if defined (_LOG_WRITES)
+	TBuf8<0x40> logName;
+	logName.Format(_L8("C:\\tmp\\log%d.tmp"),iUnit);
+	DWORD fileErr;
+	if((iLogFile=CreateFileA((char *)logName.PtrZ(),GENERIC_WRITE,FILE_SHARE_WRITE,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL))==INVALID_HANDLE_VALUE)
+		fileErr=GetLastError();
+#endif
+#if defined (_LOG_OUTPUT)
+	TBuf8<0x40> fileName;
+	DWORD fileErr;
+	fileName.Format(_L8("C:\\tmp\\Writes%d.tmp"),iUnit);
+	if((iWritesHandle=CreateFileA((char *)fileName.PtrZ(),GENERIC_WRITE,FILE_SHARE_WRITE,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL))==INVALID_HANDLE_VALUE)
+		fileErr=GetLastError();
+	fileName.Format(_L8("C:\\tmp\\Reads%d.tmp"),iUnit);
+	if((iReadsHandle=CreateFileA((char *)fileName.PtrZ(),GENERIC_WRITE,FILE_SHARE_WRITE,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL))==INVALID_HANDLE_VALUE)
+		fileErr=GetLastError();
+#endif
+	
+	SetThreadPriority(iThread,THREAD_PRIORITY_HIGHEST);
+	return(KErrNone);
+	}
+
+DCommWins::~DCommWins()
+//
+// Destruct
+//
+	{
+	if (iThread)
+		{
+		if (! iRunning)
+			{
+			__ASSERT_ALWAYS(
+				ResumeThread(iThread) != 0xffffffff,
+				User::Panic(_L("Wins comm error"), 0));
+			}
+
+		iRunning=ETrue;
+		RunCommThread(EDie);
+		}
+
+	if(UseSocket())
+	{
+	    closesocket(iSocket);
+	    WSACleanup();
+		iCommPort = (HANDLE) NULL;
+		iSocket   = NULL;
+	}
+
+	if (iCommPort)
+		CloseHandle(iCommPort);
+
+	if (iDriverThreadSem)
+		CloseHandle(iDriverThreadSem);
+
+	if (iCommThreadSem)
+		CloseHandle(iCommThreadSem);
+
+    if (iWaitableTimer)
+        CloseHandle(iWaitableTimer);
+
+	if (iReadOverLapped.hEvent)
+		CloseHandle(iReadOverLapped.hEvent);
+
+	if (iWriteOverLapped.hEvent)
+		CloseHandle(iWriteOverLapped.hEvent);
+
+	if (iSignalOverLapped.hEvent)
+		CloseHandle(iSignalOverLapped.hEvent);
+
+	if (iThread)
+		CloseHandle(iThread);
+
+	DeleteCriticalSection(&iCriticalSection);
+	}
+
+TInt DCommWins::Start()
+//
+// Start receiving characters
+//
+	{
+
+	__ASSERT_ALWAYS(ResumeThread(iThread)!=0xffffffff,User::Panic(_L("Wins comm error"),0));
+//	if (ResumeThread(iThread)==0xffffffff)
+//		return(MapWinError());
+	iRunning=ETrue;
+	RunCommThread(EStart);
+	return(KErrNone);
+	}
+
+void DCommWins::Stop(TStopMode aMode)
+//
+// Stop receiving characters
+//
+	{
+
+	iSkipTransmitIsrNextTime=EFalse;
+	RunCommThread((aMode==EStopEmergency) ? EStopNoDrain : EStop);
+	SuspendThread(iThread);
+	iRunning=EFalse;
+	iNumInChars=iNumOutChars=0;
+	}
+
+void DCommWins::Break(TBool aState)
+//
+// Assert a break signal
+//
+	{
+
+	if (aState)
+		RunCommThread(ESetBreak);
+	else
+		RunCommThread(EClearBreak);
+	}
+
+void DCommWins::EnableTransmit()
+//
+// Start transmitting characters
+//
+	{
+	RunCommThread(ETransmit);
+	}
+
+
+TUint DCommWins::Signals() const
+//
+// Return the current signals state
+//
+	{
+	if(UseSocket()) 
+		{
+		return MS_CTS_ON|MS_DSR_ON|KSignalCTS|KSignalDSR;
+		}
+	
+    ULONG signals=0;
+	GetCommModemStatusP(iCommPort,&signals, UseSocket());
+	TUint status=0;
+	if (signals&MS_CTS_ON)
+		status|=KSignalCTS;
+	if (signals&MS_DSR_ON)
+		status|=KSignalDSR;
+	if (signals&MS_RING_ON)
+		status|=KSignalRNG;
+	if (signals&MS_RLSD_ON)
+		status|=KSignalDCD;
+	CONST_CAST(DCommWins*,this)->iSkipTransmitIsrNextTime=EFalse;
+	return(status|iSignals);
+	}
+
+void DCommWins::SetSignals(TUint aSetMask,TUint aClearMask)
+//
+// Set the state of the output signals
+//
+	{
+
+    if (aSetMask&KSignalRTS)
+		{
+		iSignals|=KSignalRTS;
+		EscapeCommFunctionP(iCommPort,SETRTS, UseSocket());
+		}
+	if (aSetMask&KSignalDTR)
+		{
+		iSignals|=KSignalDTR;
+		EscapeCommFunctionP(iCommPort,SETDTR, UseSocket());
+		}
+	if (aClearMask&KSignalRTS)
+		{
+		iSignals&=(~KSignalRTS);
+		EscapeCommFunctionP(iCommPort,CLRRTS, UseSocket());
+		}
+	if (aClearMask&KSignalDTR)
+		{
+		iSignals&=(~KSignalDTR);
+		EscapeCommFunctionP(iCommPort,CLRDTR, UseSocket());
+		}
+        
+        _Log2("#~DCommWins::SetSignals, iSignals has become=0x%x\n", iSignals);
+	}
+
+void DCommWins::CheckConfig(TCommConfigV01& /*aConfig*/)
+	{
+	// Do nothing
+	}
+
+
+TInt DCommWins::CompleteSlowOpen(DThread *aThread,TRequestStatus *aReqStat)
+	{
+	// Should never be called
+	aThread->RequestComplete(aReqStat,KErrNone);
+	return(KErrNone);
+	}
+
+TInt DCommWins::Validate(const TCommConfigV01 &aConfig) const
+//
+// Confirm that aConfig is a valid configuration.
+//
+	{
+
+	if (aConfig.iSIREnable==ESIREnable)
+		return KErrNotSupported;
+
+	if (aConfig.iRate&KCapsBpsSpecial)
+		return(KErrNotSupported);
+	switch (aConfig.iRate)
+		{
+	case EBps50:
+	case EBps2000:
+	case EBps3600:
+		return(KErrNotSupported);
+		};
+	return(KErrNone);
+	}
+
+void DCommWins::Configure(TCommConfigV01 &aConfig)
+//
+// Ask comm thread to set up the serial port
+//
+	{
+
+	iConfig=&aConfig;
+	if (iRunning)
+		{
+		RunCommThread(EConfigure);
+		}
+	else
+		{
+//		iCommand=EConfigure;
+		DoConfigure();
+		}
+	}
+
+void DCommWins::DoConfigure()
+//
+// Set up the serial port
+//
+	{
+
+
+
+	DCB dcb;
+	if (!GetCommStateP(iCommPort,&dcb, UseSocket()))
+		return;
+
+    if(iRunning)
+        {
+        SetCommMaskP(iCommPort,EV_CTS|EV_ERR|EV_DSR|EV_RLSD|EV_RXCHAR, UseSocket());
+        WaitForSingleObject(iSignalOverLapped.hEvent, INFINITE);
+        }
+
+//	
+// Need only worry about the framing and speed.
+//				   
+	switch (iConfig->iRate)
+		{
+	case EBps75:
+		dcb.BaudRate=75;
+		break;
+	case EBps110:
+		dcb.BaudRate=110;
+		break;
+	case EBps134:
+		dcb.BaudRate=134;
+		break;
+	case EBps150:
+		dcb.BaudRate=150;
+		break;
+	case EBps300:
+		dcb.BaudRate=300;
+		break;
+	case EBps600:
+		dcb.BaudRate=600;
+		break;
+	case EBps1200:
+		dcb.BaudRate=1200;
+		break;
+	case EBps1800:
+		dcb.BaudRate=1800;
+		break;
+	case EBps2400:
+		dcb.BaudRate=2400;
+		break;
+	case EBps4800:
+		dcb.BaudRate=4800;
+		break;
+	case EBps7200:
+		dcb.BaudRate=7200;
+		break;
+	case EBps9600:
+		dcb.BaudRate=9600;
+		break;
+	case EBps19200:
+		dcb.BaudRate=19200;
+		break;
+	case EBps38400:
+		dcb.BaudRate=38400;
+		break;
+	case EBps57600:
+		dcb.BaudRate=57600;
+		break;
+	case EBps115200:
+		dcb.BaudRate=115200;
+		break;
+		}
+   
+   	switch(iConfig->iDataBits)
+		{
+	case EData5:
+		dcb.ByteSize=5;
+		break;
+	case EData6:
+		dcb.ByteSize=6;
+		break;
+	case EData7:
+		dcb.ByteSize=7;
+		break;
+	case EData8:
+		dcb.ByteSize=8;
+		break;
+		}
+
+	switch(iConfig->iStopBits)
+		{
+	case EStop1:
+		dcb.StopBits=ONESTOPBIT;
+		break;
+	case EStop2:
+		dcb.StopBits=TWOSTOPBITS;
+		break;
+		}
+
+	switch (iConfig->iParity)
+		{
+	case EParityNone:
+		dcb.Parity=NOPARITY;
+		break;
+	case EParityEven:
+		dcb.Parity=EVENPARITY;
+		break;
+	case EParityOdd:
+		dcb.Parity=ODDPARITY;
+		break;
+		}
+
+	// make sure that SetCommState won't change the state of the Modem signals
+	TUint prov=iSignals&KSignalRTS;
+	if(prov)
+		dcb.fRtsControl=RTS_CONTROL_ENABLE;
+	else
+		dcb.fRtsControl=RTS_CONTROL_DISABLE;
+
+	prov=iSignals&KSignalDTR;
+	if(prov)
+		dcb.fDtrControl=DTR_CONTROL_ENABLE;
+	else
+		dcb.fDtrControl=DTR_CONTROL_DISABLE;
+		
+	TInt error_r=KErrNone;
+	if(!SetCommStateP(iCommPort,&dcb, UseSocket()))
+		error_r=GetLastError();
+//	SetSignals(iSignals, ~iSignals);	// For NT 4 -> redundant (see above comments on preserving Modem control signals)
+//
+// Clear any error we may have caused
+//
+	DWORD err,res;
+	COMSTAT s;
+	if (ClearCommError(iCommPort,&err,&s)==FALSE)
+		res=GetLastError();
+
+    if(iRunning)
+        {
+        if(!WaitCommEvent(iCommPort,&iSignalStatus,&iSignalOverLapped))
+            {
+            TInt i=50;
+            while(--i)
+                {
+                if(WaitCommEvent(iCommPort,&iSignalStatus,&iSignalOverLapped))
+                    break;
+                }
+            }
+        }
+	}
+
+void DCommWins::Caps(TDes8 &aCaps) const
+//
+// Return the current capabilities
+//
+	{
+
+	GetWinsCommsCaps(aCaps);
+	}
+
+void DCommWins::EnableInterrupts()
+//
+// Wake the comms thread up
+//
+	{
+	LeaveCritical();
+//	if (ResumeThread(iThread)==0xFFFFFFFF)
+//		{
+//		DWORD err=GetLastError();
+//		Panic(EWindowsUnexpectedError);
+//		}
+	iSkipTransmitIsrNextTime=EFalse;
+	}
+
+void DCommWins::DisableInterrupts()
+//
+// Suspend the thread (assuming we're not it...)
+//
+	{
+	EnterCritical();
+//	if(GetCurrentThreadId()!=iThreadID)
+//		if (SuspendThread(iThread)==0xFFFFFFFF)
+//			{
+//			DWORD err=GetLastError();
+//			Panic(EWindowsUnexpectedError);
+//			}
+	}
+
+/**
+    Associate event with our socket
+*/
+TInt DCommWins::QueSocketRead()
+	{
+	if(WSAEventSelect(iSocket, iReadOverLapped.hEvent, FD_READ))
+		{// Some error?!?
+		DWORD res = WSAGetLastError();
+		return res;
+		}
+	return KErrNone;
+
+	}
+
+
+void DCommWins::WaitForEvent()
+//
+// Comm port thread - wait for serial port and semaphore
+//
+	{
+
+	HANDLE objects[5];
+
+
+	iReadOverLapped.hEvent=CreateEventA(NULL,FALSE,FALSE,NULL); 
+	iWriteOverLapped.hEvent=CreateEventA(NULL,FALSE,FALSE,NULL);
+	iSignalOverLapped.hEvent=CreateEventA(NULL,FALSE,FALSE,NULL);
+	objects[0]=iSignalOverLapped.hEvent; // iCommPort;
+	objects[1]=iCommThreadSem;
+	objects[2]=iWriteOverLapped.hEvent;
+	objects[3]=iReadOverLapped.hEvent;
+    objects[4]=iWaitableTimer;
+
+	FOREVER
+		{
+		DWORD waitTimeout = INFINITE; // Default timeout 
+		if(iReadPending) // If we have a queued read event, we need to check periodically if it can be carried out.
+			{
+			waitTimeout = 150; 
+			}
+		
+		// Once an event is signalled and WaitFor.. returns, it is reset by WaitFor.. just before it returns.
+		// This means that once a read on the socket is signalled. we absolutely must read from it (eventually).
+		// Otherwise, the read event remains reset and no further reads are signalled, even if data arrives. 
+		// This means that if we cannot read immediately,we MUST queue the read, and carry it out sometimes in the future.
+		DWORD ret=WaitForMultipleObjectsEx(5,objects,FALSE,waitTimeout,TRUE);
+				
+		// If the wait for an event has timed out, AND we have a queued read, try to carry out the read.
+		// If we have not timed out, carry out the operation as usual:
+		// it cannot be a read, but it may be something which enables us to read later.
+		if(ret == WAIT_TIMEOUT && iReadPending)
+			{			
+			ret = WAIT_OBJECT_0 + 3; // Fall through to the read. 			
+			}
+		
+		switch (ret)
+			{
+		case WAIT_OBJECT_0:
+			ASSERT(iCommPort);
+			EnterCritical();
+			DWORD commErrors;
+			COMSTAT cstat;
+//	
+// iCommPort has completed other than read/write - could be either error or line status change
+//
+			if ((iSignalStatus&EV_ERR) || (iSignalStatus&EV_RXCHAR))
+				{ 
+				ClearCommError(iCommPort,&commErrors,&cstat);
+				if (cstat.cbInQue)
+					{
+//
+// Drain the input buffer
+//				
+					while (cstat.cbInQue>0)
+						{
+                        _Log2("#~ WAIT_OBJECT_0 cstat.cbInQue=%d\n",cstat.cbInQue);//
+
+                        TInt min = Min((TInt)cstat.cbInQue, (TInt)KReadBufSize); 
+                        TInt i;
+						ReadFile(iCommPort,iInBuf,min,(LPDWORD)&i,&iReadOverLapped);
+						WaitForSingleObject(iReadOverLapped.hEvent,INFINITE);
+						GetOverlappedResult(iCommPort, &iReadOverLapped, (LPDWORD)&i, FALSE);
+                        __ASSERT_ALWAYS(i==min,Panic(EBadIOLen)); 
+
+                        cstat.cbInQue-=min;
+						i=0;
+						while (i<min)
+                            {
+
+                            if(i==(min-1) && !cstat.cbInQue)
+                                {
+                                //
+                                // Mark the final byte with the parity error
+                                //
+
+
+                                TInt temp=0;
+					            if (commErrors&CE_RXPARITY)
+						            temp|=KReceiveIsrParityError;
+					            if (commErrors&CE_FRAME)
+						            temp|=KReceiveIsrFrameError;
+					            if (commErrors&CE_OVERRUN)
+						            temp|=KReceiveIsrOverrunError;
+                                DoReceiveIsr(iInBuf[i++]|temp);
+                                }
+                            else
+							    DoReceiveIsr(iInBuf[i++]);
+                            }
+						}
+                    
+
+					}
+				}
+			if (iSignalStatus&(EV_DSR|EV_CTS|EV_RLSD))
+				DoStateIsr();
+			iSignalStatus=0;
+			WaitCommEvent(iCommPort,&iSignalStatus,&iSignalOverLapped);
+			LeaveCritical();
+			break;
+		case WAIT_OBJECT_0+1:
+//
+// iCommThreadSemaphore has been signalled
+//
+			DriverCommand(iCommand);
+			break;
+		case WAIT_OBJECT_0+2:
+			//
+			//	Write completion
+			//
+			{
+			DWORD len=iWriteOverLapped.InternalHigh;
+//			GetOverlappedResult(iCommPort, &iWriteOverLapped, &len, FALSE);
+
+			EnterCritical();
+			WriteCompletion(this, 0, len);
+			LeaveCritical();
+			break;
+			}
+
+	    case WAIT_OBJECT_0+3:
+			//
+			// Read completion
+			//
+			{
+            ASSERT(iSocket);
+			EnterCritical();
+			if(iConfig->iHandshake & KConfigFreeRTS || iSignals & KSignalRTS)
+				{// Only read when RTS is freed or asserted
+
+                int num = recv(iSocket, (char*)iInBuf, 16, 0); // Only read 16 bytes at a go, to give LDD plenty of chance to flow off
+                
+                if(num == 0 ||  (num == SOCKET_ERROR && WSAGetLastError() != WSAEWOULDBLOCK) || num < 0)
+					{
+					DoReceiveIsr(KReceiveIsrFrameError);
+					num = 0;
+					}
+
+				for(int i = 0; i<num; ++i)
+					{
+					DoReceiveIsr(iInBuf[i]);
+					}
+				// We'll automatically be re-signalled if there's more data waiting
+
+				iSignalStatus=0;
+	//			if(QueSocketRead() != KErrNone)
+	//				{
+	//				DoReceiveIsr(KReceiveIsrFrameError);
+	//				iNumInChars = 0;
+	//				}
+					
+				iReadPending = EFalse; // Make sure read is not queued
+				}
+			else // We cannot read at this time. 
+                {
+				// We have skipped the read, and the read event is reset at this point.
+				iReadPending = ETrue; // Queue the read event
+                _Log3("#~ ReadCompletion FC, iSignals=0x%x, iConfig->iHandshake=%d\n", iSignals, iConfig->iHandshake);
+                }
+			LeaveCritical();
+			break;
+			}		
+      
+
+        case WAIT_OBJECT_0+4:
+            //
+            //    Timer completion
+            //
+            {
+            Comm().TurnaroundStartDfcImplementation();
+            break;
+            }
+		
+		case WAIT_IO_COMPLETION:
+//
+// A read or write completion routine has been queued - why would we care?
+// Do nothing?
+            _Log("#~ WAIT_IO_COMPLETION\n");//
+
+		break;
+		
+		case WAIT_TIMEOUT: // Ignore the timeout.
+			// Just in case we timed out and no read is queued. 
+			// This is impossible, because we can time out only when a read is queued, 
+			// so we'll try to read rather than end up here. 
+			// This code is just in case there are further modifications to the event handling code.			
+			break;
+		
+		default:
+			MapWinError();
+			Panic(EWindowsUnexpectedError);
+			}
+		}
+	}
+
+void DCommWins::DriverCommand(TDriverCommand aCommand)
+//
+// Do a driver command - executed when the semaphore has been signalled in the comm port thread
+//
+	{
+	switch (aCommand)
+		{
+	case ESetBreak:
+		if(!UseSocket()) SetCommBreak(iCommPort);
+		break;
+	case EClearBreak:
+		if(!UseSocket()) ClearCommBreak(iCommPort);
+		break;
+	case ETransmit:
+		// Only Transmit one character to get the driver transmit cycle going
+		// otherwise we can empty the buffer and get double starts and re-write death
+		if (!iWritePending)
+			{
+			if(DoTransmitIsr(iNumOutChars))
+				iNumOutChars++;
+#if defined (_LOG_OUTPUT)
+			DWORD dummy;
+			WriteFile(iWritesHandle,iOutBuf,iNumOutChars,&dummy,NULL);
+#endif 
+			if (iNumOutChars>0)
+				{
+				iWritePending=ETrue;
+//				WriteFileEx(iCommPort,iOutBuf,iNumOutChars,&iWriteOverLapped,WriteComplete);
+				WriteFile(iCommPort,iOutBuf,iNumOutChars, NULL, &iWriteOverLapped);
+
+#if defined (_LOG_WRITES)
+					TBuf<0x40> buf;
+					DWORD dummy;
+					buf.Format(_L("writing %d\r\n"),iNumOutChars);
+					WriteFile(iLogFile,buf.PtrZ(),buf.Length(),&dummy,NULL);
+#endif
+
+				}
+			}
+		break;
+	case EStart:
+
+		if(UseSocket())
+		{
+			if(QueSocketRead() != KErrNone)
+				{// Couldn't que initial read :-(
+				__DEBUGGER();
+				}
+		}
+		else
+        {
+            DWORD err,res;
+		    COMSTAT s;
+		    if (iCommPort && ClearCommError(iCommPort,&err,&s)==FALSE)
+			    res=GetLastError();
+		    PurgeComm(iCommPort ,PURGE_RXCLEAR);
+		    iSignalStatus=0;
+		    WaitCommEvent(iCommPort,&iSignalStatus,&iSignalOverLapped);
+        }
+
+	//	if (ReadFileEx(iCommPort,iInBuf,1,&iReadOverLapped,ReadComplete)==FALSE)
+	//		DWORD res=GetLastError();
+		break;
+	case EStop:
+		if(!UseSocket() && iNumOutChars)
+			{
+#if defined (_LOG_OUTPUT)
+			DWORD dummy;
+			WriteFile(iWritesHandle,iOutBuf,iNumOutChars,&dummy,NULL);
+#endif 
+            // Flush last write
+			if(iWritePending)
+			    {
+			    WaitForSingleObject(iWriteOverLapped.hEvent, INFINITE);
+			    FlushFileBuffers(iCommPort);
+                iWritePending=EFalse;
+				}
+			}
+		// Fall through
+	case EStopNoDrain:
+		if(UseSocket())
+			{
+			CancelIo(iCommPort); // cancels read & write (see below)
+			}
+		// Cancel any pending writes
+        if(iWritePending)
+		{
+			if(!UseSocket()) 
+            {
+                PurgeComm(iCommPort, PURGE_TXABORT|PURGE_TXCLEAR);
+                WaitForSingleObject(iWriteOverLapped.hEvent, INFINITE);
+            }
+			iWritePending=EFalse;
+		}   
+
+		iStopping=ETrue;
+        if(iRunning)
+		{
+			if(!UseSocket())
+			{
+				SetCommMask(iCommPort,EV_CTS|EV_ERR|EV_DSR|EV_RLSD|EV_RXCHAR);
+				WaitForSingleObject(iSignalOverLapped.hEvent, INFINITE);
+			}
+        }
+		break;
+	case EDie:	
+		SignalDriverThread();
+		ExitThread(1);
+		break;
+	case EConfigure:
+		DoConfigure();
+		break;
+	default:
+		// Panic(EUnknownCommand);
+		break;
+		}
+	iCommand=EInvalidCommand;
+	SignalDriverThread();
+	}
+
+TInt DCommWins::DoTransmitIsr(TInt anOffset)
+//
+// Call the transmit Isr in the LDD to get the next character
+//
+	{
+
+	TInt ret;
+	ret=Comm().TransmitIsr();
+	iOutBuf[anOffset]=(*(char *)&ret);
+#ifdef _DEBUG_DEVCOMM
+	iTxIntCount += (ret!=KTransmitIrqEmpty);
+#endif
+	return(ret!=KTransmitIrqEmpty);
+	}
+
+void DCommWins::DoReceiveIsr(TUint anCharAndMask)
+//
+// Call the Isr in the LDD to process this character
+//
+	{
+#ifdef _DEBUG_DEVCOMM
+	iRxIntCount++;
+	if (anCharAndMask & ~0xff)
+		iRxErrCount++;
+#endif
+	Comm().ReceiveIsr(anCharAndMask);
+	}
+
+void DCommWins::DoStateIsr()
+//
+// Call the Isr in the device to handle a line status change.
+//
+	{
+	Comm().StateIsr(Signals());
+	}
+
+void DCommWins::EnterCritical()
+//
+// Call the Isr in the device to handle a line status change.
+//
+	{
+	EnterCriticalSection(&iCriticalSection);
+	iIntRefCount++;
+	}
+
+void DCommWins::LeaveCritical()
+//
+// Call the Isr in the device to handle a line status change.
+//
+	{
+	--iIntRefCount;
+	LeaveCriticalSection(&iCriticalSection);
+	}
+ 
+void DCommWins::SetTimer(const TUint aTimeOut) 
+    { 
+    TInt timeout = aTimeOut; 
+    timeout *= 10; // to 100ns units 
+    timeout = -timeout; // make relative to current time 
+    iTimeOut.QuadPart = timeout; 
+    SetWaitableTimer(iWaitableTimer, &iTimeOut, 0, NULL, NULL, 0); 
+    } 
+ 
+void DCommWins::CancelTimer() 
+    { 
+    CancelWaitableTimer(iWaitableTimer); 
+    } 
+
+EXPORT_C DPhysicalDevice *CreatePhysicalDevice()
+//
+// Create a new physical device driver
+//
+	{
+
+	return(new DDriverComm);
+	}
+
+GLDEF_C TInt E32Dll(TDllReason /*aReason*/)
+//
+// DLL entry point
+//
+	{
+
+	return(KErrNone);
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/wintunnel/src_beech/d_comm.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,1355 @@
+// Copyright (c) 1995-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Evil communications corrupt good manners. 
+// 1 corinthians  xv. 33.
+// 
+//
+
+
+#include <k32std.h>
+#include "d_comm.h"
+#include <e32hal.h>
+
+const TInt KIdleTimeoutPeriod=20*1000000;  // 20 seconds
+const TUint KXoffSignal=0x80000000;
+//
+const TInt KInputHeldFree=(-1);
+const TInt KInputHeld=(-2);
+//
+const TUint KTransmitting=0x01;
+const TUint KBreaking=0x02;
+const TUint KBreakPending=0x04;
+//
+enum TPanic
+	{
+	ESetConfigWhileRequestPending,
+	ESetSignalsSetAndClear,
+	EResetBuffers,
+	ESetReceiveBufferLength,
+//	EDoubleTxBufFill,
+	};
+
+EXPORT_C DLogicalDevice *CreateLogicalDevice()
+//
+// Create a new device
+//
+	{
+	return(new DDeviceComm);
+	}
+
+DDeviceComm::DDeviceComm()
+//
+// Constructor
+//
+	{
+	iParseMask=KDeviceAllowAll;
+	iUnitsMask=0xffffffff; // Leave units decision to the driver
+	iVersion=TVersion(KCommsMajorVersionNumber,KCommsMinorVersionNumber,KCommsBuildVersionNumber);
+	}
+
+TInt DDeviceComm::Install()
+//
+// Install the device driver.
+//
+	{
+    TPtrC name=_L("Comm");
+	return(SetName(&name));
+	}
+
+void DDeviceComm::GetCaps(TDes8 &aDes) const
+//
+// Return the Comm capabilities.
+//
+	{
+
+	TCapsDevCommV01 b;
+	b.version=iVersion;
+	aDes.FillZ(aDes.MaxLength());
+	aDes.Copy((TUint8 *)&b,Min(aDes.MaxLength(),sizeof(b)));
+	}
+
+DLogicalChannel *DDeviceComm::CreateL()
+//
+// Create a channel on the device.
+//
+	{
+
+	return(new(ELeave) DChannelComm(this));
+	}
+
+TInt DChannelComm::CallDfc(TAny* aDChannelComm)
+//
+// Dfc call back - cast the pointer to a DChannel comm and call DoDfc
+//
+	{
+	((DChannelComm *)aDChannelComm)->DfcHandler();
+	return KErrNone;
+	}
+
+//
+// Comms power handler
+//
+// Active tx requests keep power requirement up.
+// Completed tx requests keep power requirement up for KIdleTimeoutPeriod.
+// Rx requests don't effect power requirement
+// 
+DCommPowerHandler::DCommPowerHandler(DChannelComm *aLdd) : iLdd(aLdd)
+	{}
+
+void DCommPowerHandler::RequestPending()
+//
+// Tx request made
+//
+	{
+	iTimer.Cancel();
+	if (iRequirement == 0)
+		SetRequirement(1); /* EPowerCpu */
+	}
+
+void DCommPowerHandler::RequestComplete()
+//
+// Tx request completed, set the timer
+//
+	{
+	iTimer.Cancel();
+	iTimer.OneShotInMicroSeconds(TTimeIntervalMicroSeconds32(KIdleTimeoutPeriod), DCommPowerHandler::Timeout, this);
+	}
+
+void DCommPowerHandler::Timeout(TAny *aHandler, TInt)
+//
+// Timeout following last Tx request (in DFC)
+//
+	{
+
+	DCommPowerHandler& handler=*(DCommPowerHandler*)aHandler;
+	handler.SetRequirement(0);  // EPowerNone
+	handler.iLdd->DoPowerDown(); 
+	handler.iLdd->ResetDevice();
+	handler.iLdd->CompleteAll(KErrAbort); // Complete all outstanding client requests
+	}
+
+TInt DCommPowerHandler::DoPowerOn()
+//
+// Machine power up event
+// Serial driver ignores machine power up events and instead powers up the
+// device in response to user requests 
+//
+	{
+	return(KErrNone);
+	}
+
+void DCommPowerHandler::DoPowerEmergencyStandby()
+//
+// Machine emergency power down event
+// Can't ignore these events - need to power down the device
+//
+	{
+	iLdd->DoEmergencyPowerDown();
+	}
+
+void DCommPowerHandler::DoPowerStandby()
+//
+// Machine normal power down event
+// Serial driver ignores machine normal power down events and instead uses an
+// inactivity timer on Tx requests to control power down.
+//
+	{
+	}
+
+#pragma warning( disable : 4705 )	// statement has no effect
+#pragma warning( disable : 4355 )	// this used in intializer list
+DChannelComm::DChannelComm(DLogicalDevice *aDevice)
+//
+// Constructor
+//
+: DLogicalChannel(aDevice), iDfc(TCallBack(DChannelComm::CallDfc,this))
+	{
+
+//
+// Require power notifications and 3 valid requests
+//
+	SetBehaviour(RBusDevComm::ERequestReadCancel|RBusDevComm::ERequestWriteCancel|RBusDevComm::ERequestBreakCancel|RBusDevComm::ERequestNotifySignalChangeCancel);
+//
+// Setup the default config
+//
+	iConfig.iRate=EBps9600;
+	iConfig.iDataBits=EData8;
+	iConfig.iStopBits=EStop1;
+	iConfig.iParity=EParityNone;
+	iConfig.iFifo=EFifoEnable;
+	iConfig.iHandshake=KConfigObeyCTS;
+	iConfig.iParityError=KConfigParityErrorFail;
+	iConfig.iSIREnable=ESIRDisable;
+//	iConfig.iTerminatorCount=0;
+//	iConfig.iTerminator[0]=0;
+//	iConfig.iTerminator[1]=0;
+//	iConfig.iTerminator[2]=0;
+//	iConfig.iTerminator[3]=0;
+	iConfig.iXonChar=0x11; // XON
+	iConfig.iXoffChar=0x13; // XOFF
+//	iConfig.iSpecialRate=0;
+//	iConfig.iParityErrorChar=0;
+//	iDriver=NULL;
+	iStatus=ENotActive;
+	iInputHeld=KInputHeldFree;
+//	iOutputHeld=0;
+//	iReceiveOneOrMore=0;
+//	iReceiveError=0;
+//	iReceiveErrorLength=0;
+//	iReceiveLength=0;
+//	iReceiveOffset=0;
+//	iTransmitLength=0;
+//	iTransmitOffset=0;
+//	iFlags=0;
+//	iSignals=0;
+//	iLowWaterMark=0;
+//	iHighWaterMark=0;
+//	iHalfFullMark=0;
+//	iReceivePtr=NULL;
+//	iTransmitPtr=NULL;
+//	iRxBuf=NULL;
+//	iTxBuf=NULL;
+//	iIsReading=EFalse;
+//	iIsWriting=EFalse;
+//	iDrainingRxBuf=EFalse;
+//	iFillingTxBuf=EFalse;
+//	iRunningDfc=EFalse;
+//	iSignalChangeNotification=EFalse;
+//	iSignalChangePtr=NULL;
+//	iSignalMask=0;
+//  iSignalChangeInfo=0;
+//	iDataAvailableNotification=EFalse;
+	}
+#pragma warning( default : 4705 )
+#pragma warning( disable : 4355 )
+
+DChannelComm::~DChannelComm()
+//
+// Destructor
+//
+	{
+	// Complete any outstanding requests
+	CompleteAll(KErrAbort);
+
+	// Power down h/w, disable interrupts
+	iPowerHandler->iTimer.Cancel();
+	iPowerHandler->PowerStandby();  	// Doesn't do anything in inactivity power policy case, hence DoPowerDown() call below.
+	DoPowerDown(); 
+
+	// clean up the power handler
+//	iPowerHandler->SetRequirement(0);	// No need for this, done in DoPowerDown().
+	Power::RemovePowerHandler(*iPowerHandler);
+	delete iPowerHandler;
+
+	TInt clearMask=0;
+	if (!(iConfig.iHandshake&KConfigFreeRTS))
+		clearMask|=KSignalRTS;
+	if (!(iConfig.iHandshake&KConfigFreeDTR))
+		clearMask|=KSignalDTR;
+	iDriver->SetSignals(0,clearMask);
+
+	delete iDriver;
+
+	delete iRxBuf;
+	delete iTxBuf;
+	}
+
+void DChannelComm::DoCreateL(TInt /*aUnit*/,CBase *aDriver,const TDesC * /*anInfo*/,const TVersion &aVer)
+//
+// Create the channel from the passed info.
+//
+	{
+	iDriver=(DComm *)aDriver; // Must do this to ensure the driver is destroyed by the destructor
+	if (!User::QueryVersionSupported(TVersion(KCommsMajorVersionNumber,KCommsMinorVersionNumber,KCommsBuildVersionNumber),aVer))
+		User::Leave(KErrNotSupported);
+	// get power managed
+	iPowerHandler=new (ELeave) DCommPowerHandler(this);
+	User::LeaveIfError(Power::AddPowerHandler(*iPowerHandler));
+//	iRxBuf=new(ELeave) CCirBuf<TInt>;
+//	iTxBuf=new(ELeave) CCirBuffer;
+	iTxBuf=new(ELeave) CCommTxBuf;
+	iRxBuf=new(ELeave) CCommRxBuf;
+	User::LeaveIfError(SetRxBufferSize(KDefaultRxBufferSize));
+	iTxBuf->SetLengthL(KTxBufferSize);
+	((DComm *)aDriver)->SetComm(this); // Rog
+	iDriver->CheckConfig(iConfig);
+	StateIsr(iDriver->Signals());
+
+	iPowerHandler->PowerOn();	// Ask the PowerManager to power us up
+	}
+
+void DChannelComm::DfcHandler()
+//
+// Called as a Dfc. Handles all buffer draining and filling and message completions.
+//
+	{	
+	iDriver->DisableInterrupts();
+	while (iDfcRequest!=0)
+		{
+		if (iDfcRequest & EDrainRxBufferRequired)
+			{
+#ifdef _DEBUG_DEVCOMM
+			iDfcHandlerSeq = iRxBuf->iRemSeqNum.Int();
+#endif
+			iDfcRequest &= ~EDrainRxBufferRequired;
+			iDriver->EnableInterrupts();
+			if (!iDrainingRxBuf)
+				DoDrainRxBuffer();
+			iDriver->DisableInterrupts();
+			continue;
+			}
+		if (iDfcRequest & ECompleteWrite)
+			{
+			iDfcRequest &= ~ECompleteWrite;
+			iDriver->EnableInterrupts();
+			if (iIsWriting)
+				{
+				iIsWriting = EFalse;
+				iWriteZero = EFalse;
+				if (iIsClientWriting)
+					Complete(RBusDevComm::ERequestWrite,iWriteError);
+				iIsClientWriting = EFalse;
+				iWriteError = KErrNone;
+				}
+			iDriver->DisableInterrupts();
+			continue;
+			}
+		else if (iDfcRequest & EEarlyCompleteWrite)
+			{
+			iDfcRequest &= ~EEarlyCompleteWrite;
+			iDriver->EnableInterrupts();
+			if (iIsClientWriting)
+				{
+				iIsClientWriting = EFalse;
+				Complete(RBusDevComm::ERequestWrite,iWriteError);
+				iWriteError = KErrNone;
+				}
+			iDriver->DisableInterrupts();
+			continue;
+			}
+		if (iDfcRequest & ECompleteEmergency)
+			{
+			iDfcRequest &= ~ECompleteEmergency;
+			ResetDevice();
+			CompleteAll(KErrBadPower);
+			continue;
+			}
+		if (iDfcRequest & EFillTxBufferRequired)
+			{
+			iDfcRequest &= ~EFillTxBufferRequired;
+			iDriver->EnableInterrupts();
+			if (!iFillingTxBuf)
+				DoFillTxBuffer();
+			iDriver->DisableInterrupts();
+			continue;
+			}
+		if (iDfcRequest & ECompleteSignalChange)
+			{
+			iDfcRequest &= ~ECompleteSignalChange;
+    		iThread->Write(iSignalChangePtr,(TUint8*)&iSignalChangeInfo,(TInt)sizeof(TUint));
+			iSignalChangeNotification=EFalse;
+			Complete(RBusDevComm::ERequestNotifySignalChange);
+			continue;
+			}
+		if (iDfcRequest & ECompleteDataAvailable)
+			{
+			iDfcRequest &= ~ECompleteDataAvailable;
+			iDataAvailableNotification=EFalse;
+			Complete(RBusDevComm::ERequestRead);
+			continue;
+			}
+		}
+#ifdef _DEBUG_DEVCOMM
+	--iDfcCount;
+#endif
+	iRunningDfc=EFalse;
+	iPowerHandler->RequestComplete();
+	iDriver->EnableInterrupts();
+	}
+
+void DChannelComm::RestoreDtrRrs()
+//
+// Check if driver is configured not to auto control RTS/DTR and restore state
+// of these signals acording to current config. (as specified by driver
+// client) if necessary
+//
+	{
+
+	TUint hand=iConfig.iHandshake;
+	if ((hand&KConfigFreeRTS))
+		{
+		if (iSignals&KSignalRTS)
+			iDriver->SetSignals(KSignalRTS,0);
+		else
+			iDriver->SetSignals(0,KSignalRTS);
+		}
+	if (!iPowerHandler->PowerGood())
+		return;
+	if (hand&KConfigFreeDTR)
+		{
+		if (iSignals&KSignalDTR)
+			iDriver->SetSignals(KSignalDTR,0);
+		else
+			iDriver->SetSignals(0,KSignalDTR);
+		}
+	}
+
+void DChannelComm::Start()
+//
+// Start the driver receiving.
+//
+	{
+
+	// If waiting for driver to be closed then just return
+	if (iStatus==EClosed)
+		return;
+
+	if (iStatus!=EActive)
+		ResetBuffers();	// Reset RX/TX buffers
+
+	iDriver->Configure(iConfig);
+	iDriver->Start();
+	if (iConfig.iHandshake & KConfigSendXoff && iInputHeld>=0)
+		EnableTransmit(); // Send XOn if there is one
+
+	if (iStatus!=EActive)
+		{
+		// If driver configured not to auto control RTS/DTR then restore state of
+		// these signals acording to current config. (as specified by driver client).
+		TUint hand=iConfig.iHandshake;
+		if (hand&(KConfigFreeRTS|KConfigFreeDTR))
+			RestoreDtrRrs();
+		}
+	iStatus=EActive;
+	}
+
+void DChannelComm::Stop(TStopMode aMode)
+//
+// Stop the driver.
+//
+	{
+	iDriver->Stop(aMode);
+	}
+
+void DChannelComm::BreakOn()
+//
+// Start the driver breaking.
+//
+	{
+
+	if (iFlags&KTransmitting)
+		iFlags|=KBreakPending;
+	else
+		{
+		iFlags&=(~KBreakPending);
+		iFlags|=KBreaking;
+		iDriver->Break(ETrue);
+		}
+	}
+
+void DChannelComm::BreakOff()
+//
+// Stop the driver breaking.
+//
+	{
+
+	iDriver->Break(EFalse);
+	iFlags&=(~(KBreakPending|KBreaking));
+	}
+
+void DChannelComm::EnableTransmit()
+//
+// Make sure we are transmitting
+//
+	{
+
+	if ((iFlags & KTransmitting)==0)
+		{
+		iFlags |= KTransmitting; // Signal the fact the we are transmitting
+		iDriver->EnableTransmit(); // Start transmitting
+		}
+	}
+
+TInt DChannelComm::SetRxBufferSize(TInt aSize)
+//
+// Set the receive buffer size.
+//
+	{
+
+	TRAPD(r,iRxBuf->SetLengthL(aSize));
+	if (r==KErrNone)
+		{
+		iLowWaterMark=(aSize>>2); // 25 %
+		iHalfFullMark=(aSize>>1); // 50 %
+		if (iConfig.iParityError & KConfigXonXoffDebug)
+			{
+			iHighWaterMark=iHalfFullMark-5;
+			}
+		else
+			iHighWaterMark=aSize-iLowWaterMark; // 75%
+		}
+	return(r);
+	}
+
+void DChannelComm::ResetBuffers()
+//
+// Reset the receive and transmit buffers.
+//
+	{
+
+	iIsWriting=EFalse;
+	iRxBuf->Reset();
+	iTxBuf->Reset();
+
+	iReceiveError=KErrNone;
+	if (iStatus==EActive)
+		{
+		if ((iConfig.iHandshake & KConfigFreeRTS)==0)
+            iDriver->SetSignals(KSignalRTS,0); // Assert RTS
+		if ((iConfig.iHandshake & KConfigFreeDTR)==0)
+            iDriver->SetSignals(KSignalDTR,0); // Assert DTR
+        if (iConfig.iHandshake&KConfigSendXoff) // Doing input XON/XOFF
+            {
+            iInputHeld=iConfig.iXonChar; // set up to send Xon
+			EnableTransmit(); // Make sure we are transmitting
+            }
+		else
+			iInputHeld=KInputHeldFree;
+		}
+	iReceiveErrorLength=0;
+	}
+
+TBool DChannelComm::IsLineFail(TUint aHandshake)
+//
+// True if any line fail errors occured.
+//
+    {
+
+	if ((iSignals&KSignalCTS)==0 &&
+		(aHandshake&(KConfigObeyCTS|KConfigFailCTS))==(KConfigObeyCTS|KConfigFailCTS) ||
+		(iSignals&KSignalDSR)==0 &&
+		(aHandshake&(KConfigObeyDSR|KConfigFailDSR))==(KConfigObeyDSR|KConfigFailDSR) ||
+		(iSignals&KSignalDCD)==0 &&
+		(aHandshake&(KConfigObeyDCD|KConfigFailDCD))==(KConfigObeyDCD|KConfigFailDCD))
+		return(TRUE);
+	return(FALSE);
+    }
+
+
+void DChannelComm::DoDrainRxBuffer()
+//
+// Drain the receive buffer
+//
+	{
+	iDriver->DisableInterrupts();
+	if (!IsReading())
+		{
+		iDriver->EnableInterrupts();
+		return;
+		}
+	if (iDrainingRxBuf)
+		{
+		iDriver->EnableInterrupts();
+		return;
+		}
+	iDrainingRxBuf = ETrue;
+
+#ifdef _DEBUG_DEVCOMM
+	iDoDrainSeq = iRxBuf->iRemSeqNum.Int();
+#endif
+
+	TUint status;
+	TInt res = iRxBuf->ClientWrite(status, iDriver, iThread, iReceivePtr, iReceiveLength, iReceiveOffset, KChunkShiftBy0);
+	if (res<0 && iReceiveError==KErrNone) // Buffer empty
+		{
+		iDrainingRxBuf = EFalse;
+		iDriver->EnableInterrupts();
+		return;
+		}
+
+	if (res>0 || (status & KReceiveIsrMaskComplete) || iReceiveError!=KErrNone) // Complete client op
+		{
+		if (iReceiveError==KErrNone && (status & KReceiveIsrMaskError))
+			{
+			if (status & KReceiveIsrOverrunError)
+				iReceiveError = KErrCommsOverrun;
+			else if (status & KReceiveIsrFrameError)
+				iReceiveError = KErrCommsFrame;
+			else if ((status & KReceiveIsrParityError) && !(iConfig.iParityError & KConfigParityErrorIgnore))
+				iReceiveError = KErrCommsParity;
+			}
+		
+		Complete(RBusDevComm::ERequestRead, iReceiveError);
+		iReceiveError = KErrNone;
+		iIsReading=EFalse;
+		}
+
+	if (iRxBuf->Count()<=iLowWaterMark && iInputHeld==KInputHeld) // At or below the low water mark and input held
+        {
+		if ((iConfig.iHandshake & KConfigFreeRTS)==0)
+            iDriver->SetSignals(KSignalRTS,0); // Assert RTS
+		if ((iConfig.iHandshake & KConfigFreeDTR)==0)
+            iDriver->SetSignals(KSignalDTR,0); // Assert DTR
+        if (iConfig.iHandshake&KConfigSendXoff) // Doing input XON/XOFF
+            {
+            iInputHeld=iConfig.iXonChar; // set up to send Xon
+			EnableTransmit(); // Make sure we are transmitting
+            }
+        else
+            iInputHeld=KInputHeldFree; // Mark input free 
+		}
+	iDrainingRxBuf = EFalse;
+	iDriver->EnableInterrupts();
+	}
+
+
+void DChannelComm::DoFillTxBuffer()
+//
+// Fill the transmit buffer
+//
+	{
+	iDriver->DisableInterrupts();
+	if (iFillingTxBuf)
+		{
+		iDriver->EnableInterrupts();
+		return;
+		}
+	iFillingTxBuf=ETrue;
+	iDriver->EnableInterrupts();
+
+	if (iTxBuf->ClientRead(iDriver, iThread, iTransmitPtr, iTransmitLength, iTransmitOffset, KChunkShiftBy0)==KErrNone)
+		EnableTransmit();
+
+	if (iIsClientWriting && (iTransmitPtr==NULL || iTransmitLength==0) && (iConfig.iHandshake & KConfigWriteBufferedComplete))
+		EarlyCompleteWrite();
+	iFillingTxBuf=EFalse;
+	}
+
+void DChannelComm::ReceiveIsr(TUint aChar)
+//
+// Handle a received character from the ISR.
+//
+	{
+
+	if (iDataAvailableNotification)
+		CompleteDataAvailable();
+
+	if (iConfig.iHandshake & KConfigObeyXoff) // Doing output XON/XOFF
+        {
+        if (aChar==iConfig.iXonChar) // Output now allowed
+            { // May get multiple XON's in quick succession
+            iOutputHeld &= ~KXoffSignal; // Mark output ok. for XON/XOFF
+#ifdef _DEBUG_DEVCOMM
+			iRxXon++;
+#endif
+			EnableTransmit();
+			return;
+            }
+        if (aChar==iConfig.iXoffChar) // Output now disallowed
+            {
+#ifdef _DEBUG_DEVCOMM
+			iRxXoff++;
+#endif
+            iOutputHeld |= KXoffSignal; // Mark output held for XON/XOFF
+			DrainRxBuffer();
+			return;
+            }
+        }
+
+#ifdef _DEBUG_DEVCOMM
+	iRxChars++;
+#endif
+
+	TBool doDrainRxBuffer=EFalse;
+
+	TInt count = iRxBuf->Count();
+
+    if (count>=iHighWaterMark && (count & 1)) // At or above the high water mark send xoff every other character
+        {
+		// Copes with the S/W and H/W handshaking
+        if ((iConfig.iHandshake & KConfigFreeRTS)==0) // RTS enabled
+			iDriver->SetSignals(0,KSignalRTS); // Drop RTS
+		else if ((iConfig.iHandshake & KConfigFreeDTR)==0) // DTR enabled, but not RTS
+			iDriver->SetSignals(0,KSignalDTR); // Drop DTR
+        
+		if (iConfig.iHandshake & KConfigSendXoff) // Doing input XON/XOFF
+			{
+			iInputHeld=iConfig.iXoffChar; // Mark input held
+			EnableTransmit(); // Make sure we are transmitting
+            }
+		else
+			iInputHeld=KInputHeld; // Mark input held
+
+		doDrainRxBuffer=ETrue;
+        }
+
+	// Check for parity errors and replace char if so configured.
+	if (aChar & KReceiveIsrParityError)
+		{
+		// Replace bad character
+		if (iConfig.iParityError==KConfigParityErrorReplaceChar)
+			aChar = aChar & ~(0xff|KReceiveIsrParityError) | iConfig.iParityErrorChar;
+		// Ignore parity error
+		if (iConfig.iParityError==KConfigParityErrorIgnore)
+			aChar = aChar & ~KReceiveIsrParityError;
+		}
+	
+	// Check for terminating character
+	for (TInt i=0; i<iConfig.iTerminatorCount; i++)
+		{
+		if (iConfig.iTerminator[i]==aChar)
+			{
+			aChar |= KReceiveIsrTermChar;
+			doDrainRxBuffer=ETrue;
+			break;
+			}
+		}
+
+	TInt e;
+	if (e = iRxBuf->PutChar(aChar), e!=0)
+		{
+		if (e<0)
+			{
+			if (e==KErrOverflow)
+				e = KErrCommsOverrun;
+			iReceiveError = e;
+			}
+		doDrainRxBuffer = ETrue;
+		}
+
+	// Determine if the request will be completed by the arrival of the character
+    if (IsReading() && iReceiveLength>0)
+        {
+		// If the buffer is full enough to complete the request
+		// or over the half full mark the drain the buffer
+		TInt count=iRxBuf->Count();
+        if (iReceiveLength<=count || count>=iHalfFullMark || (aChar & KReceiveIsrMaskComplete))
+            doDrainRxBuffer=ETrue;
+        }
+
+	if (doDrainRxBuffer)
+		DrainRxBuffer();
+	}
+
+	
+TInt DChannelComm::TransmitIsr()
+//
+// Return the next character to be transmitted to the ISR
+//
+	{
+
+	TInt tChar=KTransmitIrqEmpty; // No character to be sent
+    if (iInputHeld>=0) // Control character to send
+        {
+        tChar=iInputHeld; // Send the control character
+#ifdef _DEBUG_DEVCOMM
+		if (tChar==iConfig.iXonChar)
+			iTxXon++;
+		else
+			iTxXoff++;
+#endif
+        iInputHeld=(tChar==iConfig.iXonChar ? KInputHeldFree : KInputHeld);        
+		}
+    else if (iOutputHeld==0) // Is the output free
+        {
+        if (IsWriting()) // Anything to be transmitted
+            {
+			tChar=iTxBuf->Get();
+		    if (tChar<0 && iTransmitLength==0) // No characters left to send
+				{
+				tChar=KTransmitIrqEmpty;
+				if (iWriteZero)
+					{
+					TUint stat = iDriver->Signals();
+					stat &= (KSignalCTS|KSignalDSR|KSignalDCD|KXoffSignal);
+					stat ^= (KSignalCTS|KSignalDSR|KSignalDCD);
+					if (!(iConfig.iHandshake & KConfigObeyCTS)) // If ignoring CTS
+						stat &= (~KSignalCTS);
+					if (!(iConfig.iHandshake & KConfigObeyDSR)) // If ignoring DSR
+						stat &= (~KSignalDSR);
+					if (!(iConfig.iHandshake & KConfigObeyDCD)) // If ignoring DCD
+						stat &= (~KSignalDCD);
+					if (iOutputHeld & KXoffSignal)
+						stat |= KXoffSignal; // Leave the xon/xoff handshake bit
+					if ((stat & ~KXoffSignal)==0)
+						CompleteWrite();
+					}
+				else
+					{
+					if (!(iConfig.iHandshake&KConfigWriteBufferedComplete))
+						CompleteWrite();
+					}
+				}
+			else if (iTransmitLength!=0 && iTxBuf->Count()<(KTxBufferSize>>1)) // Less than half full
+				FillTxBuffer();
+#ifdef _DEBUG_DEVCOMM
+			if (tChar!=KTransmitIrqEmpty)
+				iTxChars++;
+#endif
+            }
+        }
+
+    if (tChar!=KTransmitIrqEmpty) // Character to be sent
+        iFlags|=KTransmitting;
+	else
+		iFlags&=(~KTransmitting);
+
+    return(tChar);
+	}
+
+void DChannelComm::StateIsr(TUint aStatus)
+//
+// Handle a state change from the ISR
+//
+	{
+	if (iSignalChangeNotification && ((iSignals^aStatus)&iSignalMask))
+		{
+        iSignalChangeInfo=(((iSignals^aStatus)&iSignalMask)<<12)|(aStatus&iSignalMask);
+		CompleteSignalChange();
+		}
+    iSignals=aStatus; // Update the status
+    TUint handshake=iConfig.iHandshake; // Get the handshake characteristic
+
+    if (IsLineFail(handshake))
+		{
+//		CompleteAll(KErrCommsLineFail);	// Can't just complete reads from interrupts.
+//		iIsReading=EFalse;
+		iReceiveError=KErrCommsLineFail;
+		DrainRxBuffer();
+
+		if (IsWriting())
+			{
+			iWriteError = KErrCommsLineFail;
+			CompleteWrite();
+			}
+		}
+		
+//
+// Now we must determine if output is to be held
+//
+	aStatus &= (KSignalCTS|KSignalDSR|KSignalDCD|KXoffSignal);
+    aStatus ^= (KSignalCTS|KSignalDSR|KSignalDCD);
+
+    if (!(handshake & KConfigObeyCTS)) // If ignoring CTS
+        aStatus &= (~KSignalCTS);
+
+    if (!(handshake & KConfigObeyDSR)) // If ignoring DSR
+        aStatus &= (~KSignalDSR);
+
+    if (!(handshake & KConfigObeyDCD)) // If ignoring DCD
+        aStatus &= (~KSignalDCD);
+
+    if (iOutputHeld & KXoffSignal)
+        aStatus |= KXoffSignal; // Leave the xon/xoff handshake bit
+
+//
+// For write zero, we complete if the lines indicate we could write....
+//
+	if (iWriteZero && (aStatus & ~KXoffSignal)==0)
+		{
+		if (iIsClientWriting && iTxBuf->Count()==0)
+			{
+			CompleteWrite();
+			return;
+			}
+		}
+
+//
+// If request outstanding AND we were holding AND not held anymore
+//
+    if (aStatus==0 && /*iTransmitPtr!=0*/ IsWriting() /*&& iOutputHeld!=0*/) 
+        {
+        iOutputHeld=0; // Not holding any more
+        EnableTransmit(); // Start transmitting again
+        }
+    else
+        iOutputHeld=aStatus; // Set the held bits
+	}
+
+
+void DChannelComm::DoCancel(TInt aReqNo)
+//
+// Cancel an outstanding request.
+//
+	{
+
+	switch (aReqNo)
+		{
+	case RBusDevComm::ERequestRead:
+		iIsReading=EFalse;
+		iDataAvailableNotification=EFalse;
+		break;
+	case RBusDevComm::ERequestWrite:
+		iIsClientWriting=EFalse;
+		iWriteZero=EFalse;
+		iIsWriting=EFalse;
+		iTxBuf->Reset();
+		break;
+	case RBusDevComm::ERequestBreak:
+		BreakOff();
+		break;
+	case RBusDevComm::ERequestNotifySignalChange:
+		iSignalChangeNotification=EFalse;
+		break;
+		}
+	}
+
+void DChannelComm::DoRequest(TInt aReqNo,TAny *a1,TAny *a2)
+//
+// Async requests.
+//
+	{
+
+	TBool dataAvailReq=aReqNo&KDataAvailableNotifyFlag;
+	aReqNo&=(~KChanRequestNoReservedMask); // Mask off device specific flags
+
+	//
+	// First check if we have started
+	//
+	if (iStatus==ENotActive)
+		{
+		Start();
+		if (!(iConfig.iHandshake & KConfigFreeDTR))
+			iDriver->SetSignals(KSignalDTR,0); // Assert DTR
+		if (!(iConfig.iHandshake & KConfigFreeRTS))
+			iDriver->SetSignals(KSignalRTS,0); // Assert RTS
+		if (iConfig.iHandshake & KConfigSendXoff)
+			iInputHeld = iConfig.iXonChar;
+		else
+			iInputHeld = KInputHeldFree;
+		}
+
+	//
+	// Next we check for a line fail
+	//
+	if (IsLineFail(iConfig.iHandshake))
+		{
+		Complete(aReqNo,KErrCommsLineFail);
+		return;
+		}
+
+	//
+	// Now we can dispatch the request
+	//
+	TInt len;
+	switch (aReqNo)
+		{
+	case RBusDevComm::ERequestRead:
+		{
+		if (dataAvailReq)
+			{
+			iPowerHandler->RequestPending();
+			iDataAvailableNotification=ETrue;
+			}
+		else
+			{
+			iDriver->DisableInterrupts();
+			iReceivePtr=(TUint8 *)a1;
+			len=(*((TInt *)a2));
+			if (len<0)
+				{
+				iReceiveOneOrMore=TRUE;
+				iReceiveLength=Min(-len,iRxBuf->Count());
+				if (iReceiveLength==0)
+					iReceiveLength=1;
+				}
+			else
+				{
+				TInt maxLength=iThread->GetDesMaxLength(a1);
+				if(len>maxLength || maxLength<0)
+					{
+					iDriver->EnableInterrupts();
+					Complete(RBusDevComm::ERequestRead,KErrGeneral);
+					break;
+					}
+				iReceiveOneOrMore=FALSE;
+				iReceiveLength=len;
+				if (iReceiveLength==0)
+					{
+					iDriver->EnableInterrupts();
+					Complete(RBusDevComm::ERequestRead);
+					break;
+					}
+				}
+			if (iReceiveError && iReceiveLength>iReceiveErrorLength)
+				iReceiveLength=iReceiveErrorLength;
+			iReceiveOffset=0;
+			iIsReading=ETrue;
+			iPowerHandler->RequestPending();
+			iDriver->EnableInterrupts();
+			if(iConfig.iHandshake&KConfigSendXoff)
+				{
+				iInputHeld=iConfig.iXonChar;
+				EnableTransmit();
+				}
+			
+			DoDrainRxBuffer();
+			}
+		}
+		break;
+	case RBusDevComm::ERequestWrite:
+		if (iStatus==EClosed)
+			{
+			Complete(aReqNo,KErrNotReady);
+			iPowerHandler->RequestComplete();
+			break;
+			}
+		iPowerHandler->RequestPending();
+		iDriver->DisableInterrupts();
+		if ((iTransmitLength=(*((TInt *)a2)))==0)
+			{
+			iWriteZero=ETrue;
+			iIsWriting=ETrue;
+			iIsClientWriting=ETrue;
+			iDriver->EnableInterrupts();
+			}
+		else
+			{
+			iTransmitPtr=(TUint8 *)a1;
+			iTransmitOffset=0;
+			iIsClientWriting=ETrue;
+			if((iFlags&KTransmitting) && iIsWriting) // let the transmit isr deal with it
+			    {
+				iDriver->EnableInterrupts();
+				StateIsr(iDriver->Signals());
+				break;
+			    }
+			iIsWriting=EFalse;
+			iDriver->EnableInterrupts();
+			DoFillTxBuffer();
+			iIsWriting=ETrue;
+			}
+		StateIsr(iDriver->Signals());
+		break;
+	case RBusDevComm::ERequestBreak:
+		Complete(aReqNo,KErrNotSupported);
+		break;
+	case RBusDevComm::ERequestNotifySignalChange:
+		iSignalChangePtr=(TUint*)a1;
+		iSignalMask=*(TUint*)a2;
+		iSignalChangeNotification=ETrue;
+		break;
+		}
+	}
+
+TInt DChannelComm::DoControl(TInt aFunction,TAny *a1,TAny *a2)
+//
+// Sync requests.
+//
+	{
+
+	TCommConfigV01 c;
+	TInt len;
+	TInt r=KErrNone;
+
+	TBool restart = EFalse;
+	TBool purge = EFalse;
+	TBool rescan = EFalse;
+
+	switch (aFunction)
+		{
+	case RBusDevComm::EControlConfig:
+		((TDes8 *)a1)->FillZ(((TDes8 *)a1)->MaxLength());
+		len=Min(((TDes8 *)a1)->MaxLength(),sizeof(iConfig));
+		((TDes8 *)a1)->Copy((TUint8 *)&iConfig,len);
+		break;
+	case RBusDevComm::EControlSetConfig:
+		if (AreAnyPending())
+//			iThread->Panic(_L("D32COMM"),ESetConfigWhileRequestPending);
+			Kern::PanicCurrentThread(_L("D32COMM"), ESetConfigWhileRequestPending);
+		else
+			{
+			Mem::FillZ(&c,sizeof(c));
+			len=Min(((TDesC8 *)a1)->Length(),sizeof(c));
+			Mem::Copy(&c,((TDesC8 *)a1)->Ptr(),len);
+			if(c.iTerminatorCount>KConfigMaxTerminators)
+				{
+				r=KErrNotSupported;
+				break;
+				}
+			if (c.iRate==EBpsAutobaud)
+				{
+				r=KErrNotSupported;
+				break;
+				}
+			if ((r=iDriver->Validate(c))!=KErrNone)
+				break;
+			if (IsLineFail(c.iHandshake))
+				{
+				r=KErrCommsLineFail;
+				break;
+				}
+			if (c.iSIREnable==ESIREnable)
+				{
+				c.iHandshake=0;
+				c.iStopBits=EStop1;
+				c.iDataBits=EData8;
+				}
+			if (iConfig.iRate != c.iRate
+				|| iConfig.iDataBits != c.iDataBits
+				|| iConfig.iStopBits != c.iStopBits
+				|| iConfig.iParity != c.iParity
+				|| iConfig.iFifo != c.iFifo
+				|| iConfig.iSpecialRate != c.iSpecialRate
+				|| iConfig.iSIREnable != c.iSIREnable
+				|| iConfig.iSIRSettings != c.iSIRSettings)
+				{
+				restart = ETrue;
+				}
+			else if (iConfig.iParityErrorChar != c.iParityErrorChar
+				|| iConfig.iParityError != c.iParityError
+				|| iConfig.iXonChar != c.iXonChar
+				|| iConfig.iXoffChar != c.iXoffChar
+				|| (iConfig.iHandshake&(KConfigObeyXoff|KConfigSendXoff))
+					!= (c.iHandshake&(KConfigObeyXoff|KConfigSendXoff)))
+				{
+				purge = ETrue;
+				}
+			else
+				{
+				if (iConfig.iTerminatorCount==c.iTerminatorCount)
+					{
+					for (TInt i=0; i<iConfig.iTerminatorCount; i++)
+						{
+						if (iConfig.iTerminator[i]!=c.iTerminator[i])
+							{
+							rescan=ETrue;
+							break;
+							}
+						}
+					}
+				else
+					rescan=ETrue;
+				
+				if (!rescan && c.iHandshake == iConfig.iHandshake)
+					break;	// nothing to do.
+				}
+			if (iStatus==EActive && (restart || purge))
+				{
+				if (!(iConfig.iHandshake&KConfigFreeRTS))
+					iDriver->SetSignals(0,KSignalRTS); // Drop RTS
+				Stop(EStopNormal);
+				if(purge)
+					ResetBuffers();
+				iConfig=c;
+				Start();
+				if (!(iConfig.iHandshake&KConfigFreeRTS))
+					iDriver->SetSignals(KSignalRTS,0); // Assert RTS
+				iDriver->DisableInterrupts();
+				}
+			else
+				{
+				iDriver->DisableInterrupts();
+				if(purge)
+					ResetBuffers();
+				iConfig=c;
+				}				
+			if(!(iConfig.iHandshake&KConfigObeyXoff))
+				iOutputHeld&=~KXoffSignal;
+			if(iConfig.iHandshake&KConfigSendXoff)
+				{
+				iInputHeld=iConfig.iXonChar;
+				iHighWaterMark=iHalfFullMark-5;
+				}
+			else
+				{
+				iInputHeld=KInputHeldFree;
+				iHighWaterMark=iRxBuf->Length()-iLowWaterMark; // 75%
+				}
+			if(iConfig.iHandshake&KConfigObeyCTS || iConfig.iHandshake&KConfigObeyDSR)
+				iInputHeld=KInputHeld;
+			iDriver->EnableInterrupts();
+
+			if (rescan)
+				iRxBuf->RescanTerminators(iDriver, iConfig.iTerminatorCount, iConfig.iTerminator);
+			}
+		break;
+	case RBusDevComm::EControlCaps:
+		iDriver->Caps(*((TDes8 *)a1));
+		break;
+	case RBusDevComm::EControlSignals:
+		r=iDriver->Signals();
+		break;
+	case RBusDevComm::EControlSetSignals:
+		if (((TUint)a1)&((TUint)a2))
+//			iThread->Panic(_L("D32COMM"),ESetSignalsSetAndClear);
+			Kern::PanicCurrentThread(_L("D32COMM"), ESetSignalsSetAndClear);
+		else
+			{
+			TUint set=(TUint)a1;
+			if (iStatus==ENotActive)
+				{
+				Start();
+				if (!(iConfig.iHandshake & KConfigFreeDTR) && !((TUint)a2 & KSignalDTR))
+					set|=KSignalDTR; // Assert DTR
+				if (!(iConfig.iHandshake & KConfigFreeRTS) && !((TUint)a2 & KSignalRTS))
+					set|=KSignalRTS; // Assert RTS
+				if (iConfig.iHandshake & KConfigSendXoff)
+					iInputHeld = iConfig.iXonChar;
+				else
+					iInputHeld = KInputHeldFree;
+				}
+			iDriver->SetSignals(set,(TUint)a2);
+			iSignals=(iSignals|set)&(~(TUint)a2);
+			}
+		break;
+	case RBusDevComm::EControlQueryReceiveBuffer:
+		r=iRxBuf->Count();
+		break;
+	case RBusDevComm::EControlResetBuffers:
+		if (AreAnyPending())
+//			iThread->Panic(_L("D32COMM"),EResetBuffers);
+			Kern::PanicCurrentThread(_L("D32COMM"), EResetBuffers);
+		else
+			ResetBuffers();
+		break;
+	case RBusDevComm::EControlReceiveBufferLength:
+		r=iRxBuf->Length();
+		break;
+
+	// ***************************************
+	// This one runs in the supervisor context
+	// ***************************************
+	case RBusDevComm::EControlSetReceiveBufferLength:
+		if (AreAnyPending())
+			iThread->Panic(_L("D32COMM"),ESetReceiveBufferLength);
+		else
+			r=SetRxBufferSize((TInt)a1);
+		break;
+	// ***************************************
+
+	case KChannelControlLateOpen:
+		r=iDriver->CompleteSlowOpen((DThread*)a1,(TRequestStatus*)a2);
+		break;
+#ifdef _DEBUG_DEVCOMM
+	case RBusDevComm::EControlDebugInfo:
+		{
+		TCommDebugInfo info;
+		iDriver->DisableInterrupts();
+		info.iRxBusy = iIsReading;
+		info.iRxHeld = iOutputHeld!=0;
+		info.iRxLength = iReceiveLength;
+		info.iRxOffset = iReceiveOffset;
+		info.iRxIntCount = iDriver->iRxIntCount;
+		info.iRxErrCount = iDriver->iRxErrCount;
+		info.iRxBufCount = iRxBuf->Count();
+		info.iTxBusy = iIsWriting;
+		info.iTxHeld = iInputHeld!=KInputHeldFree;
+		info.iTxLength = iTransmitLength;
+		info.iTxOffset = iTransmitOffset;
+		info.iTxIntCount = iDriver->iTxIntCount;
+		info.iTxErrCount = iDriver->iTxErrCount;
+		info.iTxBufCount = iTxBuf->Count();
+		info.iDrainingRxBuf = iDrainingRxBuf!=0;
+		info.iFillingTxBuf = iFillingTxBuf!=0;
+		info.iRunningDfc = iRunningDfc!=0;
+		info.iDfcCount = iDfcCount;
+		info.iDfcReqSeq = iDfcReqSeq;
+		info.iDfcHandlerSeq = iDfcHandlerSeq;
+		info.iRxXon = iRxXon;
+		info.iRxXoff = iRxXoff;
+		info.iTxXon = iTxXon;
+		info.iTxXoff = iTxXoff;
+		info.iRxChars = iRxChars;
+		info.iTxChars = iTxChars;
+		info.iDoDrainSeq = iDoDrainSeq;
+		info.iTxDfcPend = (iDfcRequest&EFillTxBufferRequired)!=0;
+		info.iRxDfcPend = (iDfcRequest&EDrainRxBufferRequired)!=0;
+		iDriver->EnableInterrupts();
+		((TDes8 *)a1)->FillZ(((TDes8 *)a1)->MaxLength());
+		len=Min(((TDes8 *)a1)->MaxLength(),sizeof(TCommDebugInfo));
+		((TDes8 *)a1)->Copy((TUint8 *)&info,len);
+		}
+#endif
+	default:
+		r=KErrNotSupported;
+		}
+	return(r);
+	}
+
+void DChannelComm::QueueDfc(TUint aRequestMask)
+//
+// Set the flag to drain RX Buffer and queue the DFC if required.
+//
+	{
+    if (aRequestMask!=ECompleteEmergency)
+        iDriver->DisableInterrupts();
+
+	iDfcRequest |= aRequestMask;
+
+	if (!iRunningDfc)
+		{
+#ifdef _DEBUG_DEVCOMM
+		if (aRequestMask & EDrainRxBufferRequired)
+			{
+			iDfcReqSeq = iRxBuf->iRemSeqNum.Int();
+			++iDfcCount;
+			}
+#endif
+		iRunningDfc=ETrue;
+		Kern::Add(iDfc);
+		}
+
+    if (aRequestMask!=ECompleteEmergency)
+	    iDriver->EnableInterrupts();
+	}
+
+void DChannelComm::ResetDevice()
+//
+// Reset driver variables following device power down.
+//
+    {
+
+	iIsClientWriting=EFalse;
+//
+// Must leave iDfcRunning set as the Dfc may remain pending
+// This is no problem as the DfcHandler is happy if it finds
+// it has nothing to do
+//
+	iIsReading=iIsWriting=iDrainingRxBuf=iFillingTxBuf=EFalse;
+	iFlags=iDfcRequest=0;
+
+	iStatus=ENotActive;
+	}
+
+void DChannelComm::DoPowerDown()
+//
+// Called at switch off and on Closing.
+//
+    {
+
+	if (iStatus==EActive)
+		Stop(EStopPwrDown);
+	iPowerHandler->SetRequirement(0);
+	}
+
+void DChannelComm::DoEmergencyPowerDown()
+//
+// Called when the batteries run out or fall out.
+//
+    {
+
+	if (iStatus==EActive)
+		Stop(EStopEmergency);
+	QueueDfc(ECompleteEmergency);
+    }
+
+GLDEF_C TInt E32Dll(TDllReason /*aReason*/)
+//
+// DLL entry point
+//
+	{
+
+	return KErrNone;
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/wintunnel/src_beech/d_comm.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,302 @@
+// Copyright (c) 1995-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+
+#if !defined(__D_COMM_H__)
+#define __D_COMM_H__
+#if !defined(__K32STD_H__)
+#include <k32std.h>
+#endif
+#if !defined(__D32COMM_H__)
+#include <d32comm.h>
+#endif
+#if !defined(__E32VER_H__)
+#include <e32ver.h>
+#endif
+//
+const TInt KCommsMajorVersionNumber=1;
+const TInt KCommsMinorVersionNumber=0;
+const TInt KCommsBuildVersionNumber=KE32BuildVersionNumber;
+//
+const TInt KDefaultRxBufferSize=0x400;
+const TInt KTxBufferSize=0x400;
+const TInt KMaxHighWaterMark=0x080;
+//
+const TUint KReceiveIsrParityError=0x10000000;
+const TUint KReceiveIsrFrameError=0x20000000;
+const TUint KReceiveIsrOverrunError=0x40000000;
+const TUint KReceiveIsrMaskError=0x70000000;
+//
+const TInt KTransmitIrqEmpty=KErrGeneral;
+//
+const TUint KReceiveIsrTermChar=0x80000000;
+const TUint KReceiveIsrMaskComplete=0xf0000000;
+const TUint KReceiveIsrShift=24;
+const TUint KReceiveIsrShiftedMask=0x0f;
+//
+//
+enum TStopMode {EStopNormal,EStopPwrDown,EStopEmergency};
+//
+//
+class DChannelComm;
+class DComm : public CBase
+	{
+public:
+	virtual TInt Start() =0;
+	virtual void Stop(TStopMode aMode) =0;
+	virtual void Break(TBool aState) =0;
+	virtual void EnableTransmit() =0;
+	virtual TUint Signals() const =0;
+	virtual void SetSignals(TUint aSetMask,TUint aClearMask) =0;
+	virtual TInt Validate(const TCommConfigV01 &aConfig) const =0;
+	virtual void Configure(TCommConfigV01 &aConfig) =0;
+	virtual void Caps(TDes8 &aCaps) const =0;
+	virtual void CheckConfig(TCommConfigV01& aConfig)=0;
+	virtual void EnableInterrupts() =0;
+	virtual void DisableInterrupts() =0;
+	virtual TInt CompleteSlowOpen(DThread *aThread,TRequestStatus *aReqStat) =0;
+	inline DChannelComm &Comm() {return(*iComm);}
+	inline void SetComm(DChannelComm *aComm) {iComm=aComm;}
+	virtual void SetTimer(const TUint aTimeOut) =0;
+	virtual void CancelTimer() =0;
+private:
+	DChannelComm *iComm;
+#ifdef _DEBUG_DEVCOMM
+public:
+	TInt iRxIntCount;
+	TInt iTxIntCount;
+	TInt iRxErrCount;
+	TInt iTxErrCount;
+#endif
+	};
+//
+// 32 bit sequence number space
+//
+class TCommSeqNum
+	{
+public:
+	inline TCommSeqNum& operator++();
+	inline TCommSeqNum& operator++(TInt);
+	inline TCommSeqNum& operator--();
+	inline TCommSeqNum& operator--(TInt);
+	inline TCommSeqNum& operator=(TUint aVal);
+	inline TCommSeqNum& operator=(const TCommSeqNum& aVal);
+	inline TCommSeqNum& operator+=(TInt aVal);
+	inline TCommSeqNum& operator-=(TInt aVal);
+	inline TBool operator==(const TCommSeqNum& aVal) const;
+	inline TBool operator!=(const TCommSeqNum& aVal) const;
+	inline TBool operator<(const TCommSeqNum& aVal) const;
+	inline TBool operator<=(const TCommSeqNum& aVal) const;
+	inline TBool operator>(const TCommSeqNum& aVal) const;
+	inline TBool operator>=(const TCommSeqNum& aVal) const;
+	inline TCommSeqNum operator+(TInt aVal);
+	inline TCommSeqNum operator-(TInt aVal);
+	inline TInt operator-(const TCommSeqNum& aVal);
+	inline TUint Int() const;
+private:
+	TUint iNum;
+	};
+//
+class CCommRxBuf : public CBase
+	{
+public:
+	CCommRxBuf();
+	~CCommRxBuf();
+	void SetLengthL(TInt aLength);
+	void Reset();
+	inline TInt Count() { return iCount; }
+	inline TInt Length()  { return iLength; }
+	TInt PutChar(TUint aChar);
+	TInt ClientWrite(TUint& aStatus, DComm* aDriver, DThread* aThread, const TAny* aPtr, TInt& aRxLength, TInt& aRxOffset, TInt aMode);
+	TInt TestTerm(TInt aCount, TInt aTermCount, TUint8* aTermList);
+	TBool RescanTerminators(DComm* aDriver, TInt aTermCount, TText8* aTermChars);
+public:
+	TInt iLength;
+	TInt iCount;
+	TInt iInsP;
+	TInt iRemP;
+	TUint8* iCharPtr;
+	TUint8* iInfoPtr;
+	TCommSeqNum iInsSeqNum;
+	TCommSeqNum iRemSeqNum;
+	TCommSeqNum iLastSeqNum;
+	};
+
+class CCommTxBuf : public CCirBuffer
+	{
+public:
+	CCommTxBuf();
+	TInt ClientRead(DComm* aDriver, DThread* aThread, const TAny* aPtr, TInt& aTxLength, TInt& aTxOffset, TInt aMode);
+	};
+
+//
+class DDeviceComm : public DLogicalDevice
+	{
+public:
+	DDeviceComm();
+	virtual TInt Install();
+	virtual void GetCaps(TDes8 &aDes) const;
+	virtual DLogicalChannel *CreateL();
+	};
+//
+
+class DCommPowerHandler : public DPowerHandler
+	{
+public:
+	DCommPowerHandler(DChannelComm *aLdd);
+	void RequestComplete();
+	void RequestPending();
+	static void Timeout(TAny *, TInt);
+
+	virtual TInt DoPowerOn();
+	virtual void DoPowerStandby();
+	virtual void DoPowerEmergencyStandby();
+public:
+	DChannelComm *iLdd;
+	TTickLink iTimer;
+	};
+
+class DChannelComm : public DLogicalChannel
+	{
+public:
+	enum TState {ENotActive,EActive,EClosed};
+private:
+	enum TDfcRequestFlags
+		{
+		EFillTxBufferRequired=0x00000001,
+		EDrainRxBufferRequired=0x00000002,
+		ECompleteRead=0x00000008,
+		ECompleteWrite=0x00000010,
+		ECompleteBreak=0x00000020,
+		EEarlyCompleteWrite=0x00000040,
+		ECompleteEmergency=0x00000080,
+		ECompleteSignalChange=0x00000100,
+		ECompleteDataAvailable=0x00000200,
+		ETurnaroundTimerDfc=0x00000400
+		};
+public:
+	DChannelComm(DLogicalDevice *aDevice);
+	~DChannelComm();
+	virtual void ReceiveIsr(TUint aChar);
+	virtual TInt TransmitIsr();
+	virtual void StateIsr(TUint aStatus);
+	inline TBool IsPowerGood();
+	inline void SetStatus(TState aStatus);
+	inline void CompleteAllReqs(TInt aReason);
+	inline TBool IsReading() const;
+	inline TBool IsWriting() const;
+protected:
+	virtual void DoCreateL(TInt aUnit,CBase *aDriver,const TDesC *anInfo,const TVersion &aVer);
+	virtual void DoCancel(TInt aReqNo);
+	virtual void DoRequest(TInt aReqNo,TAny *a1,TAny *a2);
+	virtual TInt DoControl(TInt aFunction,TAny *a1,TAny *a2);
+	inline TBool AreAnyPending() const;
+	void Start();
+	void Stop(TStopMode aMode);
+	void BreakOn();
+	void BreakOff();
+	void EnableTransmit();
+	TInt SetRxBufferSize(TInt aSize);
+	void ResetBuffers();
+	TBool IsLineFail(TUint aHandshake);
+	void DoDrainRxBuffer();
+	void DoFillTxBuffer();
+	inline void DrainRxBuffer() {QueueDfc(EDrainRxBufferRequired);};
+	inline void FillTxBuffer() {QueueDfc(EFillTxBufferRequired);};
+	inline void CompleteWrite() {QueueDfc(ECompleteWrite);};
+	inline void EarlyCompleteWrite() {QueueDfc(EEarlyCompleteWrite);};
+	inline void CompleteSignalChange() {QueueDfc(ECompleteSignalChange);};
+	inline void CompleteDataAvailable() {QueueDfc(ECompleteDataAvailable);};
+//	void CompleteWrite(TInt anError=KErrNone);
+//	void CompleteRead(TInt anError=KErrNone);
+//	void DoCompleteWrite();
+//	void DoCompleteRead();
+public:
+	virtual void DoPowerDown();
+	virtual void DoEmergencyPowerDown();
+
+	TInt TurnaroundSet(TUint aNewTurnaroundMicroSeconds);
+	TInt TurnaroundClear();
+	void RestartTurnaroundTimer();
+	virtual void TurnaroundStartDfcImplementation();
+	void TurnaroundTimeoutImplementation();
+
+private:
+	static TInt CallDfc(TAny* aDChannelComm);
+	void DfcHandler();
+	void QueueDfc(TUint aRequestMask);
+	void ResetDevice();
+	void RestoreDtrRrs();
+public:
+	TCommConfigV02 iConfig;
+private:
+	DComm *iDriver;
+	DCommPowerHandler *iPowerHandler;
+	TState iStatus;
+	TUint iDfcRequest;
+	TDfc iDfc;
+	TInt iInputHeld;			// Receive suspended by signalling peer
+	TInt iOutputHeld;			// Transmit suspended by peer
+	TInt iReceiveError;
+	TInt iWriteError;
+	TInt iReceiveOneOrMore;
+	TInt iWriteZero;			// Awaiting ability to write
+	TInt iReceiveErrorLength;
+	TInt iReceiveLength;
+	TInt iReceiveOffset;
+	TInt iTransmitLength;
+	TInt iTransmitOffset;
+	TUint iFlags;
+	TUint iSignals;
+	TInt iLowWaterMark;
+	TInt iHighWaterMark;
+	TInt iHalfFullMark;
+	TUint8 *iReceivePtr;		// Client space pointer
+	TUint8 *iTransmitPtr;		// Client space pointer
+	CCommRxBuf *iRxBuf;
+	CCommTxBuf *iTxBuf;
+	TBool iIsReading;
+	TBool iIsWriting;
+	TBool iDrainingRxBuf;
+	TBool iFillingTxBuf;
+	TBool iRunningDfc;
+	TBool iIsClientWriting;
+	TBool iSignalChangeNotification;
+	TUint* iSignalChangePtr;
+	TUint iSignalMask;
+    TUint iSignalChangeInfo;
+	TBool iDataAvailableNotification;
+
+	// Min Turnaround time between Rx and Tx
+	TUint		iTurnaroundMinMicroSeconds;	// delay after a receive before transmission
+	TBool		iTurnaroundTimerRunning;	// a receive has started the timer
+	TBool		iTurnaroundTransmitDelayed;	// a transmission is held until time elapses after a receive
+	TAny*		iTurnaroundTxDesPtr;		// client descriptor awaiting transmission
+	TInt		iTurnaroundTxDesLength;		// initial size of tx descriptor
+
+#ifdef _DEBUG_DEVCOMM
+	TInt iDfcCount;
+	TInt iDfcReqSeq;
+	TInt iDfcHandlerSeq;
+	TInt iDoDrainSeq;
+	TInt iTxChars, iRxChars;
+	TInt iTxXon, iTxXoff, iRxXon, iRxXoff;
+#endif
+	friend class DCommPowerHandler;
+	};
+
+#include "d_comm.inl"
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/wintunnel/src_beech/d_comm.inl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,77 @@
+// Copyright (c) 1996-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+
+inline TBool DChannelComm::IsReading() const
+// Return TRUE if a read request is pending.
+	{ return(iIsReading); }
+
+inline TBool DChannelComm::IsWriting() const
+// Return TRUE if a write request is pending.
+	{ return(iIsWriting); }
+
+inline TBool DChannelComm::AreAnyPending() const
+// Return TRUE if any requests are pending.
+#ifdef _EARLY_WRITE_COMPLETE
+	{ return(IsReading() || (!(iConfig.iHandshake&KConfigWriteBufferedComplete)?IsWriting():iIsClientWriting)); }
+#else
+	{ return(IsReading() || IsWriting()); }
+#endif
+
+inline TBool DChannelComm::IsPowerGood()
+	{ return(iPowerHandler->PowerGood()); }
+
+inline void DChannelComm::SetStatus(TState aStatus)
+	{iStatus=aStatus;}
+
+inline void DChannelComm::CompleteAllReqs(TInt aReason)
+	{DLogicalChannel::CompleteAll(aReason);}
+
+inline TCommSeqNum& TCommSeqNum::operator++(TInt)
+	{ TCommSeqNum seq = *this; iNum += 1;  return *this; }
+inline TCommSeqNum& TCommSeqNum::operator++()
+	{ iNum += 1;  return *this; }
+inline TCommSeqNum& TCommSeqNum::operator--(TInt)
+	{ TCommSeqNum seq = *this; iNum -= 1;  return *this; }
+inline TCommSeqNum& TCommSeqNum::operator--()
+	{ iNum -= 1;  return *this; }
+inline TCommSeqNum& TCommSeqNum::operator=(TUint aVal)
+	{ iNum = aVal;  return *this; }
+inline TCommSeqNum& TCommSeqNum::operator=(const TCommSeqNum& aVal)
+	{ iNum = aVal.iNum;  return *this; }
+inline TCommSeqNum& TCommSeqNum::operator+=(TInt aVal)
+	{ iNum += aVal;  return *this; }
+inline TCommSeqNum& TCommSeqNum::operator-=(TInt aVal)
+	{ iNum += aVal;  return *this; }
+inline TBool TCommSeqNum::operator==(const TCommSeqNum& aVal) const
+	{ return iNum==aVal.iNum; }
+inline TBool TCommSeqNum::operator!=(const TCommSeqNum& aVal) const
+	{ return iNum==aVal.iNum; }
+inline TBool TCommSeqNum::operator<(const TCommSeqNum& aVal) const
+	{ return ((TInt)(iNum-aVal.iNum))<0; }
+inline TBool TCommSeqNum::operator<=(const TCommSeqNum& aVal) const
+	{ return ((TInt)(iNum-aVal.iNum))<=0; }
+inline TBool TCommSeqNum::operator>(const TCommSeqNum& aVal) const
+	{ return ((TInt)(iNum-aVal.iNum))>0; }
+inline TBool TCommSeqNum::operator>=(const TCommSeqNum& aVal) const
+	{ return ((TInt)(iNum-aVal.iNum))>=0; }
+inline TCommSeqNum TCommSeqNum::operator+(TInt aVal)
+	{ TCommSeqNum tmp; tmp.iNum = iNum+aVal; return *this; }
+inline TCommSeqNum TCommSeqNum::operator-(TInt aVal)
+	{ TCommSeqNum tmp; tmp.iNum = iNum-aVal; return *this; }
+inline TInt TCommSeqNum::operator-(const TCommSeqNum& aVal)
+	{ return iNum-aVal.iNum; }
+inline TUint TCommSeqNum::Int() const
+	{ return iNum; }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/wintunnel/src_cedar/README.txt	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,34 @@
+WIN Tunnel serial driver for EKA2
+
+
+Usage
+-----
+
+Compile this module for either WINS or WINSCW
+bldmake bldfiles
+abld build wins
+or
+bldmake bldfiles
+abld build winscw
+
+Set WIN_TUNNEL emulator property by either
+A) Add the following to epoc.ini
+
+WIN_TUNNEL=[Commport],[Hostname],[TCPport]
+
+Commport is Emulator Comm port to reroute to tunnel machine. (Must be less than 10)
+Hostname is the tunnel machine. (Either ip address or DNS name)
+TCPport  is the port on the tunnel machine to use.
+
+E.G.
+WIN_TUNNEL=9,10.35.2.53,110
+
+To use more than one serial port the syntax is as follows
+WIN_TUNNEL=9,10.35.2.53,110;8,10.35.2.59,110
+
+
+
+b) Start emulator passing in WIN_TUNNEL setting
+
+E.G.
+epoc -dWIN_TUNNEL=9,10.35.2.53,110 --
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/wintunnel/src_cedar/serialldd.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,685 @@
+// Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// wins/specific/serialldd.cpp
+// 
+//
+
+#include "winscomm.h"
+#include <kernel/kern_priv.h>
+#include <e32hal.h>
+#include <e32uid.h>
+
+_LIT(KLddName,"Comm");
+
+
+enum TPanic
+	{
+	ESetConfigWhileRequestPending,
+	ESetSignalsSetAndClear,
+	EResetBuffers,
+	ESetReceiveBufferLength,
+	};
+
+
+inline TUint32 SafeSwap(TUint32 aNewValue, TUint32& aWord)
+	{ return (TUint32)NKern::SafeSwap((TAny*)aNewValue, (TAny*&)aWord); }
+
+DECLARE_STANDARD_LDD()
+	{
+	return new DDeviceComm;
+	}
+
+
+DDeviceComm::DDeviceComm()
+	{
+	iParseMask = KDeviceAllowAll;
+	iUnitsMask = 0xffffffff; // Leave units decision to the PDD
+	iVersion = TVersion(KCommsMajorVersionNumber,KCommsMinorVersionNumber,KCommsBuildVersionNumber);
+	}
+
+TInt DDeviceComm::Install()
+	{
+	return(SetName(&KLddName));
+	}
+
+void DDeviceComm::GetCaps(TDes8& aDes) const
+	{
+	TPckgBuf<TCapsDevCommV01> b;
+	b().version = TVersion(KCommsMajorVersionNumber,KCommsMinorVersionNumber,KCommsBuildVersionNumber);
+	Kern::InfoCopy(aDes,b);
+	}
+
+TInt DDeviceComm::Create(DLogicalChannelBase*& aChannel)
+	{
+	aChannel = new DChannelComm;
+	return aChannel?KErrNone:KErrNoMemory;
+	}
+
+
+DChannelComm::DChannelComm()
+	:
+		iRxCompleteDfc(DChannelComm::CompleteRxDfc,this,2),
+		iTxCompleteDfc(DChannelComm::CompleteTxDfc,this,2),
+		iRxDataAvailableDfc(DChannelComm::RxDataAvailableDfc,this,2),
+		iSigNotifyDfc(DChannelComm::SignalNotifyDfc,this,2),
+//		iTurnaroundMinMilliSeconds(0),
+//		iTurnaroundTimerRunning(EFalse),
+//		iTurnaroundTransmitDelayed(EFalse),
+		iTurnaroundTimer(DChannelComm::TurnaroundStartDfc, this),
+		iTurnaroundDfc(DChannelComm::TurnaroundTimeout, this, 2)
+//		iTurnaroundTxDesPtr(0),
+//		iTurnaroundTxDesLength(0)
+	{
+	iConfig.iRate = EBps9600;
+	iConfig.iDataBits = EData8;
+	iConfig.iStopBits = EStop1;
+	iConfig.iParity = EParityNone;
+	iConfig.iHandshake = KConfigObeyCTS;
+	iConfig.iParityError = KConfigParityErrorFail;
+	iConfig.iFifo = EFifoEnable;
+	iConfig.iTerminatorCount = 0;
+	iConfig.iXonChar = 0x11;
+	iConfig.iXoffChar = 0x13;
+	iConfig.iSIREnable = ESIRDisable;
+
+	iTxError = KErrNone;
+	iRxError = KErrNone;
+	iRxDAError = KErrNone;
+	iSignalError = KErrNone;
+	iClientDestPtr = 0;
+	iClientSignalResultPtr = 0;
+	iClient = &Kern::CurrentThread();
+	iClient->Open();
+	}
+
+
+DChannelComm::~DChannelComm()
+	{
+	Kern::SafeClose((DObject*&)iClient, NULL);
+	}
+
+void DChannelComm::Shutdown()
+	{
+	// clean-up...
+	if (iStatus == EActive)
+		Stop(EStopPwrDown);			// stop PDD
+
+	Complete(EAll, KErrAbort);
+
+	iRxCompleteDfc.Cancel();
+	iTxCompleteDfc.Cancel();
+	iTurnaroundTimer.Cancel();
+	iTurnaroundDfc.Cancel();
+	iSigNotifyDfc.Cancel();
+	iRxDataAvailableDfc.Cancel();
+	}
+
+TInt DChannelComm::TurnaroundSet(TUint aNewTurnaroundMilliSeconds)
+	{
+	TInt r = KErrNone;
+	(void)TurnaroundStopTimer();
+	iTurnaroundMinMilliSeconds = aNewTurnaroundMilliSeconds;
+	return r;
+	}
+
+TBool DChannelComm::TurnaroundStopTimer()
+// Stop the timer and DFC
+	{
+	TInt irq = 0;
+	irq = NKern::DisableInterrupts(1);
+	TBool result = iTurnaroundTimerRunning;
+	if(result)
+		{
+		iTurnaroundTimerRunning = EFalse;
+		iTurnaroundTimer.Cancel();
+		iTurnaroundDfc.Cancel();
+		}
+	NKern::RestoreInterrupts(irq);
+	return result;
+	}
+
+TInt DChannelComm::TurnaroundClear()
+// Clear any old timer
+// Called for any change: from T > 0 to T == 0 or (T = t1 > 0) to (T = t2 > 0)
+// POLICY: If a write has already been delayed, it will be started immediately (next reschedule)
+	{
+	TInt r = KErrNone;
+
+	if(TurnaroundStopTimer())
+		{
+		// if a write is waiting, start a DFC to run it
+		TurnaroundStartDfcImplementation(EFalse);
+		}
+
+	iTurnaroundMinMilliSeconds = 0;
+	return r;
+	}
+
+void DChannelComm::TurnaroundStartDfc(TAny* aSelf)
+	{
+	DChannelComm* self = (DChannelComm*)aSelf;
+	self->TurnaroundStartDfcImplementation(ETrue);
+	}
+
+void DChannelComm::TurnaroundStartDfcImplementation(TBool inIsr)
+	{
+	TInt irq = 0;
+	if(!inIsr)
+		{
+		irq = NKern::DisableInterrupts(1);
+		}
+	iTurnaroundTimerRunning = EFalse;
+	if(iTurnaroundTransmitDelayed)
+		{
+		if(inIsr)
+			iTurnaroundDfc.Add();
+		else
+			{
+			NKern::RestoreInterrupts(irq);
+			iTurnaroundDfc.Enque();
+			}
+		return;
+		}
+	if(!inIsr)
+		{
+		NKern::RestoreInterrupts(irq);
+		}
+	}
+
+void DChannelComm::TurnaroundTimeout(TAny* aSelf)
+	{
+	DChannelComm* self = (DChannelComm*)aSelf;
+	self->TurnaroundTimeoutImplementation();
+	}
+
+void DChannelComm::TurnaroundTimeoutImplementation(void)
+	{
+	TInt irq = NKern::DisableInterrupts(1);
+	if(iTurnaroundTransmitDelayed)
+		{
+		iTurnaroundTransmitDelayed = EFalse;	// protected -> prevent reentrant ISR
+		NKern::RestoreInterrupts(irq);
+		if (iStatus==EClosed)
+			{
+			iTurnaroundTxDesPtr = 0;
+			iTurnaroundTxDesLength = 0;
+			Complete(ETx,KErrNotReady);
+			return;
+			}
+
+		// fail signals checked in the PDD
+		InitiateWrite(iTurnaroundTxDesPtr, iTurnaroundTxDesLength);
+		iTurnaroundTxDesPtr = 0;
+		iTurnaroundTxDesLength = 0;
+		}
+	else 
+		NKern::RestoreInterrupts(irq);
+	}
+
+TInt DChannelComm::DoCreate(TInt aUnit, const TDesC8* /*aInfo*/, const TVersion &aVer)
+	{
+	if(!Kern::CurrentThreadHasCapability(ECapabilityCommDD,__PLATSEC_DIAGNOSTIC_STRING("Checked by ECOMM.LDD (Comm Driver)")))
+   		return KErrPermissionDenied;		
+	if (!Kern::QueryVersionSupported(TVersion(KCommsMajorVersionNumber,KCommsMinorVersionNumber,KCommsBuildVersionNumber),aVer))
+		return KErrNotSupported;
+
+	// set up the correct DFC queue
+	SetDfcQ(((DComm*)iPdd)->DfcQ(aUnit));
+	iRxCompleteDfc.SetDfcQ(iDfcQ);
+	iTxCompleteDfc.SetDfcQ(iDfcQ);
+	iRxDataAvailableDfc.SetDfcQ(iDfcQ);
+	iSigNotifyDfc.SetDfcQ(iDfcQ);
+	iTurnaroundDfc.SetDfcQ(iDfcQ);
+	iMsgQ.Receive();
+
+	((DComm *)iPdd)->iLdd = this;
+
+	//setup the initial port configuration
+	PddConfigure(iConfig);
+	
+	return KErrNone;
+	}
+
+
+
+
+void DChannelComm::Start()
+	{
+	if (iStatus != EClosed)
+		{
+		PddStart();
+		iStatus = EActive;
+		}
+	}
+
+
+
+
+void DChannelComm::HandleMsg(TMessageBase* aMsg)
+	{
+	TThreadMessage& m = *(TThreadMessage*)aMsg;
+	TInt id = m.iValue;
+	if (id == (TInt)ECloseMsg)
+		{
+		Shutdown();
+		iStatus = EClosed;
+		m.Complete(KErrNone, EFalse);
+		return;
+		}
+	else if (id == KMaxTInt)
+		{
+		// DoCancel
+		DoCancel(m.Int0());
+		m.Complete(KErrNone, ETrue);
+		return;
+		}
+
+	if (id < 0)
+		{
+		// DoRequest
+		TRequestStatus* pS = (TRequestStatus*)m.Ptr0();
+		TInt r = DoRequest(~id, pS, m.Ptr1(), m.Ptr2());
+		if (r != KErrNone)
+			Kern::RequestComplete(iClient, pS, r);
+		m.Complete(KErrNone, ETrue);
+		}
+	else
+		{
+		// DoControl
+		TInt r = DoControl(id, m.Ptr0(), m.Ptr1());
+		m.Complete(r, ETrue);
+		}
+	}
+
+
+TInt DChannelComm::DoRequest(TInt aReqNo, TRequestStatus* aStatus, TAny* a1, TAny* a2)
+	{
+
+	//
+	// First check if we have started
+	//
+	if (iStatus == EOpen)
+		{
+		Start();
+		}
+
+	// Now we can dispatch the request
+	TInt r = KErrNone;
+	TInt len = 0;
+	switch (aReqNo)
+		{
+		case RBusDevComm::ERequestRead:
+			if (a2)
+				//get the size of the client data 
+				r = Kern::ThreadRawRead(iClient, a2, &len, sizeof(len));
+			if (r == KErrNone)
+				{
+				if (a1)	//doing a read
+					{
+					iRxStatus = aStatus;
+					//start the read
+					InitiateRead(a1,len);
+					}
+				else	//notify read data availiable
+					{
+					iRxDAStatus = aStatus;
+					NotifyReadDataAvailable();
+					}
+				}
+			break;
+		
+		case RBusDevComm::ERequestWrite:
+			{
+			if (iStatus == EClosed)
+				return KErrNotReady;
+			if (!a1)
+				a1 = (TAny*)1;
+			r = Kern::ThreadRawRead(iClient, a2, &len, sizeof(len));	//get the length of the data to write
+			if (r == KErrNone)
+				{
+				iTxStatus = aStatus;
+				TInt irq = NKern::DisableInterrupts(1);
+				if(iTurnaroundTimerRunning)
+					{
+					iTurnaroundTransmitDelayed = ETrue;
+					iTurnaroundTxDesPtr = a1;
+					iTurnaroundTxDesLength = len;
+					NKern::RestoreInterrupts(irq);
+					}
+				else
+					{
+					NKern::RestoreInterrupts(irq);
+					InitiateWrite(a1, len); //a1 is ptr to data to write (on client side)
+					}
+				}
+			break;
+			}
+
+		case RBusDevComm::ERequestNotifySignalChange:
+			{
+			//a1 has place to put the result
+			//a2 has the signal mask
+			if (!a1)
+				{
+				r = KErrArgument;
+				break;
+				}
+			
+			//start the signal request
+			TInt mask = 0;
+			r = Kern::ThreadRawRead(iClient, a2, &mask, sizeof(mask));	//get the signal mask
+			if (r == KErrNone)
+				{
+				iSignalStatus = aStatus;
+				InitiateNotifySignals(a1, mask);
+				}
+			break;
+			}
+
+		
+		case RBusDevComm::ERequestBreak:
+			Complete(aReqNo, KErrNotSupported);
+			break;
+
+		default:
+			r = KErrNotSupported;
+			break;
+
+		}
+	return r;
+	}
+
+TInt DChannelComm::SetConfig(TCommConfigV01& c)
+	{
+	iConfig = c;
+	PddConfigure(iConfig);
+	return KErrNone;
+	}
+
+TInt DChannelComm::DoControl(TInt aFunction, TAny* a1, TAny* a2)
+	{
+
+	TCommConfigV01 c;
+	TInt r = KErrNone;
+
+	switch (aFunction)
+		{
+		case RBusDevComm::EControlConfig:
+			{
+			//get the current configuration
+			TPtrC8 cfg((const TUint8*)&iConfig, sizeof(iConfig));
+			r = Kern::ThreadDesWrite(iClient, a1, cfg, 0, KTruncateToMaxLength, iClient);
+			break;
+			}
+
+		case RBusDevComm::EControlSetConfig:
+			{
+			if (AreAnyPending())	
+				Kern::PanicCurrentThread(_L("D32COMM"), ESetConfigWhileRequestPending);
+			else
+				{
+				memclr(&c, sizeof(c));
+				TPtr8 cfg((TUint8*)&c, 0, sizeof(c));
+				r = Kern::ThreadDesRead(iClient, a1, cfg, 0, 0);
+				if (r == KErrNone)
+					r = SetConfig(c);	//set the new configuration
+				}
+			break;
+			}
+
+		case RBusDevComm::EControlCaps:
+			{
+			//get capabilities
+			TCommCaps2 caps;
+			PddCaps(caps);	//call ipdd->Caps
+			r = Kern::ThreadDesWrite(iClient, a1, caps, 0, KTruncateToMaxLength, iClient);
+			break;
+			}
+
+		case RBusDevComm::EControlSignals:
+			{
+			r = Signals();
+			break;
+			}
+
+		case RBusDevComm::EControlSetSignals:
+			{
+//			if (((TUint)a1)&((TUint)a2))	//can't set and clear at same time
+//				{
+//				Kern::PanicCurrentThread(_L("D32COMM"), ESetSignalsSetAndClear);
+//				}
+//			else
+				{
+
+				SetSignals((TUint)a1, (TUint)a2);
+				}
+			break;
+			}
+
+		case RBusDevComm::EControlQueryReceiveBuffer:
+			r = RxCount();
+			break;
+
+		case RBusDevComm::EControlResetBuffers:
+			if (AreAnyPending())
+				Kern::PanicCurrentThread(_L("D32COMM"), EResetBuffers);
+			else
+				ResetBuffers(ETrue);
+			break;
+
+		case RBusDevComm::EControlReceiveBufferLength:
+			r = RxBufferSize();
+			break;
+
+		case RBusDevComm::EControlSetReceiveBufferLength:
+			if (AreAnyPending())
+				Kern::PanicCurrentThread(_L("D32COMM"), ESetReceiveBufferLength);
+			else
+				r = SetRxBufferSize((TInt)a1);
+			break;
+
+		case RBusDevComm::EControlMinTurnaroundTime:
+			r = iTurnaroundMicroSeconds;			// used saved value
+			break;
+
+		case RBusDevComm::EControlSetMinTurnaroundTime:
+				{
+				if ((TInt)a1<0)
+					a1=(TAny*)0;
+				iTurnaroundMicroSeconds = (TUint)a1;			// save this
+				TUint newTurnaroundMilliSeconds = (TUint)a1/1000;	// convert to ms
+				if(newTurnaroundMilliSeconds != iTurnaroundMinMilliSeconds)
+					{
+					// POLICY: if a new turnaround time is set before the previous running timer has expired and a
+					// write request has been queued, the transmission goes ahead immediately
+					TurnaroundClear();
+					if(newTurnaroundMilliSeconds > 0)
+						{
+						r = TurnaroundSet(newTurnaroundMilliSeconds);
+						}
+					}
+				}
+			break;
+
+		default:
+			r = KErrNotSupported;
+			}
+		return(r);
+		}
+
+
+void DChannelComm::SignalNotifyDfc(TAny* aPtr)
+	{
+	DChannelComm* pC = (DChannelComm*)aPtr;
+	pC->DoSignalNotify();
+	}
+
+void DChannelComm::RxDataAvailableDfc(TAny* aPtr)
+	{
+	DChannelComm* pC = (DChannelComm*)aPtr;
+	pC->DoRxDataAvailable();
+	}
+
+void DChannelComm::DoRxDataAvailable()
+	{
+	Complete(ERxDA, iRxDAError);
+	iRxDAError = KErrNone;
+	}
+
+void DChannelComm::DoSignalNotify()
+	{
+	//copy the data back to the client
+	if (iSignalError == KErrNone)
+		iSignalError = Kern::ThreadRawWrite(iClient, iClientSignalResultPtr,&iSignalResult, sizeof(iSignalResult), iClient);
+	Complete(ESigChg, iSignalError);
+	iSignalError = KErrNone;
+	}
+
+void DChannelComm::CompleteTxDfc(TAny* aPtr)
+	{
+	DChannelComm* pC = (DChannelComm*)aPtr;
+	pC->DoCompleteTx();
+	}
+
+void DChannelComm::DoCompleteTx()
+	{
+	Complete(ETx, iTxError);
+	iTxError = KErrNone;
+	}
+
+void DChannelComm::CompleteRxDfc(TAny* aPtr)
+	{
+	DChannelComm* pC = (DChannelComm*)aPtr;
+	pC->DoCompleteRx();
+	}
+
+void DChannelComm::DoCompleteRx()
+	{
+	if (iRxError == KErrNone)
+		{
+		//copy the data back to the client
+		iRxError = Kern::ThreadDesWrite(iClient, (TDes8*)iClientDestPtr, *RxBuffer(), 0, KChunkShiftBy0, iClient);
+		}
+	Complete(ERx, iRxError);
+	iRxError = KErrNone;
+	TInt irq = NKern::DisableInterrupts(1);
+	if(iTurnaroundMinMilliSeconds > 0)
+		{
+		// POLICY: if timer is running from a previous read, stop it and re-start it
+		if(iTurnaroundTimerRunning)
+			{
+			iTurnaroundTimer.Cancel();
+			iTurnaroundDfc.Cancel();
+			}
+		iTurnaroundTimerRunning = ETrue;
+		TInt timeout = NKern::TimerTicks(iTurnaroundMinMilliSeconds);
+		iTurnaroundTimer.OneShot(timeout);
+		}
+	NKern::RestoreInterrupts(irq);
+	}
+
+void DChannelComm::DoCancel(TInt aMask)
+	{
+	if (aMask & RBusDevComm::ERequestReadCancel)
+		{
+		ReadCancel();
+		}
+
+	if (aMask & RBusDevComm::ERequestWriteCancel)
+		{
+		TInt irq = NKern::DisableInterrupts(1);
+		if(iTurnaroundTransmitDelayed)
+			{
+			iTurnaroundTxDesPtr = 0;
+			iTurnaroundTxDesLength = 0;
+			iTurnaroundTransmitDelayed = EFalse;
+			}
+		NKern::RestoreInterrupts(irq);
+
+		WriteCancel();
+		}
+
+	if (aMask & RBusDevComm::ERequestNotifySignalChangeCancel)
+		{
+		SignalChangeCancel();
+		Complete(ESigChg,KErrCancel);
+		}
+
+	}
+
+
+void DChannelComm::InitiateWrite(TAny *aTxDes, TInt aLength)
+	{
+
+//aTxDes has client side data
+//aLength has the len
+	
+	if (!aTxDes)
+		{
+		Complete(ETx, KErrArgument);
+		return;
+		}
+	// call the pdd to fill its buffer and write the data
+	Write(iClient, aTxDes, aLength);
+	}
+
+void DChannelComm::InitiateRead(TAny *aRxDes, TInt aLength)
+	{
+
+	// Complete zero-length read immediately.  maybe not
+
+//	if (aLength == 0)
+//		{
+//		Complete(ERx, KErrNone);
+//		return;
+//		}
+	TInt max=Kern::ThreadGetDesMaxLength(iClient,aRxDes);
+
+	if (max < Abs(aLength) || max < 0)
+		Complete(ERx, KErrGeneral);
+		// do not start the Turnaround timer (invalid Descriptor this read never starts)
+	else
+		{
+		iClientDestPtr = aRxDes;
+		Read(iClient, aRxDes, aLength);
+		}
+	}
+
+void DChannelComm::InitiateNotifySignals(TAny *aSignalResultPtr, TInt aMask)
+	{
+	//aMask has the mask of signals we require
+	//aSignalResultPtr is a pointer to the clients area for the result
+	iClientSignalResultPtr = (TUint*)aSignalResultPtr;
+	NotifySignals(iClient, aMask);
+	}
+
+void DChannelComm::NotifyReadDataAvailable()
+	{
+	NotifyDataAvailable();
+	}
+
+
+void DChannelComm::Complete(TInt aMask, TInt aReason)
+	{
+	if (aMask & ERx)
+		Kern::RequestComplete(iClient, iRxStatus, aReason);
+	if (aMask & ETx)
+		Kern::RequestComplete(iClient, iTxStatus, aReason);
+	if (aMask & ESigChg)
+		Kern::RequestComplete(iClient, iSignalStatus, aReason);
+	if (aMask & ERxDA)
+		Kern::RequestComplete(iClient, iRxDAStatus, aReason);
+	}
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/wintunnel/src_cedar/serialpdd.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,2035 @@
+// Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// wins/specific/serialpdd.cpp
+// Modified serial pdd that supports IP tunneling data from the emulator to  socket.
+// 
+//
+
+/**
+ @file
+*/
+
+#include "winscomm.h"
+#include <nkern/nk_priv.h>
+#include <nkern/win32/nk_plat.h>
+#include <emulator.h>
+
+#include <kernel/win32/property.h>
+
+#define WIN32_LEAN_AND_MEAN
+#pragma warning( disable : 4201 ) // nonstandard extension used : nameless struct/union
+
+#include <windows.h>
+#include <winsock2.h>
+#include <string.h>
+#include <stdlib.h>
+
+//----------------------------------------------------------------
+//  logging macros. Just define WINTUN_PDD_LOGGING to enable debug trace
+//  note that MSVCRTD.LIB isn't included to the serialpdd.mmp, because this **** CW does not 
+//  have it. Use it from MSVC package.
+
+#include <crtdbg.h>
+
+//#define WINTUN_PDD_LOGGING 
+
+#ifdef WINTUN_PDD_LOGGING 
+    #define _Log(a)         _RPT0(_CRT_WARN,a)
+    #define _Log2(a,b)      _RPT1(_CRT_WARN,a,b)
+    #define _Log3(a,b,c)    _RPT2(_CRT_WARN,a,b,c)
+    #define _Log4(a,b,c,d)  _RPT3(_CRT_WARN,a,b,c,d)
+
+#else
+    #define _Log(a)       
+    #define _Log2(a,b)    
+    #define _Log3(a,b,c)  
+    #define _Log4(a,b,c,d)
+
+#endif
+
+//----------------------------------------------------------------
+
+
+#pragma warning( default : 4201 ) // nonstandard extension used : nameless struct/union
+
+#ifdef FAULT
+#undef FAULT
+#endif
+#define FAULT() Kern::Fault(__FILE__,__LINE__)
+
+_LIT(KComName,"COM");
+
+// needs ldd version..
+const TInt KMinimumLddMajorVersion=1;
+const TInt KMinimumLddMinorVersion=1;
+const TInt KMinimumLddBuild=1;		
+
+//used for the read and write buffers in the driver.
+//large buffer reserved so any transfer to/from the client can fit into a driver buffer
+const TInt KSerialBufferMaxSize = 0x800000;
+const TInt KSerialBufferInitialSize = 0x10000;
+const TInt KSerialBufferIncrementSize = 0x1000;	//granularity.  must be power of 2	
+
+
+const DWORD KReadOneOrMoreTimeout = MAXDWORD-1;	//milliseconds
+
+
+//buffer sizes passed to NT for setting its own driver buffer sizes
+const TInt KDefaultWinNTReadBufSize = 1024;
+const TInt KDefaultWinNTWriteBufSize = 1024;
+
+static DWORD dummyLen = 0;
+
+enum TDCommWinsFault 
+	{
+	EWindowsUnexpectedError,
+	EUnknownCommand,
+	EBadIOLen,
+	EEofOnSerial,
+	EWriteEarlyCompletion,
+	ELineErrorNotReported,
+	ESerialBufferTooBig,
+	EReadLength,
+	};
+
+
+class DDriverComm : public DPhysicalDevice
+	{
+public:
+	DDriverComm();
+	virtual TInt Install();
+	virtual TInt Remove();
+	virtual void GetCaps(TDes8 &aDes) const;
+	virtual TInt Create(DBase*& aChannel, TInt aUnit, const TDesC8* aInfo, const TVersion& aVer);
+	virtual TInt Validate(TInt aUnit, const TDesC8* aInfo, const TVersion &aVer);
+	};
+
+
+class DCommWins : public DComm
+	{
+public:
+	enum TDriverCommand {ESetBreak=1,EClearBreak,ETransmit,ETransmit0,
+						EGetSignals,ESetSignals,EConfigure,
+						EStop,EStopNoDrain,EStart,EDie,	ETransmitCancel,
+						EReceive, EReceiveOneOrMore, EReceiveCancel,ENotifyDataAvailable,
+						ENotifySignals, EInvalidCommand};
+public:
+	DCommWins();
+	~DCommWins();
+	virtual TInt Start();
+	virtual void Stop(TStopMode aMode);
+	virtual void Break(TBool aState);
+	virtual void Write(DThread* aThread, TAny *aTxDes, TInt aLength);
+	virtual void Read(DThread* aThread, TAny *aTxDes, TInt aLength);
+	virtual void NotifySignals(DThread* aThread, TInt aMask);
+	virtual void NotifyDataAvailable();
+	virtual TUint Signals() const;
+	virtual void SetSignals(TUint aSetMask,TUint aClearMask);
+	virtual TInt ValidateConfig(const TCommConfigV01 &aConfig) const;
+	virtual void Configure(TCommConfigV01 &aConfig);
+	virtual void Caps(TDes8 &aCaps) const;
+	virtual void CheckConfig(TCommConfigV01& aConfig);
+	virtual TDfcQue* DfcQ(TInt aUnit);
+
+	inline void CheckTxBuffer();
+	inline TBool Transmitting();
+	virtual TInt RxCount();
+	virtual void ResetBuffers(TBool);
+	virtual TInt SetRxBufferSize(TInt aSize);
+	virtual TInt RxBufferSize();
+	virtual TDes8* RxBuffer();
+	virtual void DoConfigure();
+	virtual TBool AreAnyPending();
+	virtual void ReadCancel();
+	virtual void WriteCancel();
+	virtual void SignalChangeCancel();
+	TInt DoCreate(TInt aUnit,const TDesC8 *aInfo);
+	void WaitForEvent();
+	void DriverCommand(TDriverCommand aCommand);
+	void DoWriteComplete(TInt aErr);
+	void DoReadComplete(TInt aErr, TInt aBytes);
+	void DoSignalCompletion(TInt aError, TUint changed, TUint aValues);
+	void DoDataAvailableCompletion();
+	void RunCommThread(TDriverCommand aCommand);
+	inline void SignalDriverThread();
+
+    TInt QueSocketRead();
+
+    /** @return ETrue if we use socket instead of a real COM port */
+    TBool inline UseSocket(void) const
+        {return  (iSocket != INVALID_SOCKET) && (iSocket != NULL); }
+
+private:
+	void ReleaseBuffers();
+	void ReSizeBuffer(TUint8*& aBuf, TInt& iBufLen, TPtr8& aDes, const TInt aNewLen);
+	TBool IsATerminator(TText8 aChar);
+	void CompleteRead(TInt aLength);
+	void DataAvailableNotificationCancel();
+
+
+private:
+	TInt iWritePending;
+	TInt iReadPending;
+	TBool iStopping;
+	TBool iRunning;
+	TDriverCommand iCommand;
+	TCommConfigV01 *iConfig;
+	TUint iSignals;
+	TUint iFailSignals;
+	TUint iSavedSignals;
+	TBool iLineFail;
+	TBool iRXLineFail;
+	TBool iTXLineFail;
+
+	TUint8 * iInBufPtr;		//input buffer used by driver.
+	TInt iInBufLength;
+	TPtr8 iInDes;
+
+	TInt iReadSoFar;
+	TBool iTerminatedRead;	//true if we are reading with 1 or more terminating characters
+
+	TUint8 * iOutBufPtr;
+	TInt iOutBufLength;
+	TPtr8 iOutDes;
+
+	TInt iRxBufferSize;		//size of receivebuffer passed to windows & set by calls to SetReceiveBufferSize 
+							//used to determine xon and xoff levels
+	TUint iSignalsRequested;  //mask of signals we are waiting for
+	TUint iSignalsWanted;		//mask we are asked to check 
+	TBool iDataAvailableNotification;
+	HANDLE iThread;
+	HANDLE iCommThreadSem;
+	HANDLE iDriverThreadSem;
+	HANDLE iCommPort;
+	DWORD iThreadID;
+	DWORD iSignalStatus;
+	OVERLAPPED iReadOverLapped;
+	OVERLAPPED iWriteOverLapped;
+	OVERLAPPED iSignalOverLapped;
+
+	TInt iClientReadLength;		//how much data the client has requested in a read
+
+    //-- win tunnel specific members
+	SOCKET  iSocket;        //< socket for serial port simulation
+	char    iOptions[151];  //< contains a string with mapping serial port numbers to the IPs
+    TBool   iReadCancel;    //< flag, used to indicate that the read was cancelled during socket read
+
+	};
+
+void Panic(TDCommWinsFault aFault)
+//
+// Panic the driver 
+//
+	{
+	Kern::PanicCurrentThread(_L("DCommWins"), aFault);
+	}
+
+
+TUint commThread(DCommWins *comm)
+//
+// Comm thread entry point
+//
+	{
+
+	comm->WaitForEvent();
+	return 0;
+	}
+
+VOID WINAPI WriteCompletion(DCommWins *aDrv, DWORD aErr,DWORD /*numBytes*/)
+	{
+
+	aDrv->DoWriteComplete(aErr);
+	}
+
+
+VOID WINAPI ReadCompletion(DCommWins *aDrv, DWORD aErr,DWORD numBytes)
+	{
+
+	aDrv->DoReadComplete(aErr, numBytes);
+	}
+
+VOID WINAPI SignalCompletion(DCommWins *aDrv, TInt aError, TUint aChanged, TUint aValues)
+	{
+	aDrv->DoSignalCompletion(aError, aChanged, aValues);
+	}
+
+VOID WINAPI DataAvailableCompletion(DCommWins *aDrv)
+	{
+	aDrv->DoDataAvailableCompletion();
+	}
+
+
+
+BOOL WINAPI EscapeCommFunctionP(HANDLE hFile,DWORD dwFunc, TBool bUseSocket)
+	{
+	DWORD   err;
+	DWORD   lastError = 0;
+	BOOL    res;
+	COMSTAT s;
+	
+	if(bUseSocket)
+	{
+	    res = FALSE;//, not supported... EscapeCommFunction(hFile,dwFunc);
+	}
+	else
+	do
+	{
+		ClearCommError(hFile, &err, &s);
+		res = EscapeCommFunction(hFile,dwFunc);
+		if(!res)
+			lastError = GetLastError();
+	}
+	while((!res) && (lastError == ERROR_OPERATION_ABORTED));
+
+	return res;
+	}
+
+
+BOOL WINAPI GetCommModemStatusP(HANDLE hFile,LPDWORD lpModemStat, TBool bUseSocket)
+{
+	DWORD err;
+	DWORD lastError = 0;
+	BOOL res;
+	COMSTAT s;
+
+	if(bUseSocket)
+	{
+	    res = FALSE;//, not supported... GetCommModemStatus(hFile,lpModemStat);
+	}
+	else
+	do
+	{
+		ClearCommError(hFile, &err, &s);
+		res = GetCommModemStatus(hFile,lpModemStat);
+		if(!res)
+			lastError  = GetLastError();
+	}
+	while((!res) && (lastError == ERROR_OPERATION_ABORTED));
+
+	return(res);
+}
+
+
+BOOL WINAPI GetCommStateP(HANDLE hFile,LPDCB lpDCB, TBool bUseSocket)
+{
+	DWORD err;
+	DWORD lastError = 0;
+	BOOL res;
+	COMSTAT s;
+	
+	if(bUseSocket)
+	{
+	    res = FALSE;//, not supported... GetCommState(hFile,lpDCB);
+	}
+	else
+	do
+	{
+		ClearCommError(hFile,&err,&s);
+		res = GetCommState(hFile,lpDCB);
+		if (!res)
+			lastError = GetLastError();
+	}
+	while((!res) && (lastError == ERROR_OPERATION_ABORTED));
+
+	return(res);
+}
+
+BOOL WINAPI SetCommStateP(HANDLE hFile,LPDCB lpDCB, TBool bUseSocket)
+	{
+	DWORD   err;
+	DWORD   lastError = 0;
+	BOOL    res;
+	COMSTAT s;
+	
+	if(bUseSocket)
+	{
+        res = FALSE;//, not supported... SetCommState(hFile, lpDCB);
+	}
+	else
+	do
+	{
+		ClearCommError(hFile, &err, &s);
+		res = SetCommState(hFile, lpDCB);
+		if (!res)
+			lastError = GetLastError();
+	}
+	while((!res) && (lastError == ERROR_OPERATION_ABORTED));
+
+	return(res);
+	}
+
+BOOL WINAPI SetCommMaskP(HANDLE hFile,DWORD dwEvtMask, TBool bUseSocket)
+{
+	DWORD   err;
+	DWORD   lastError = 0;
+	BOOL    res;
+	COMSTAT s;
+	
+	if(bUseSocket)
+	{
+	    res = FALSE;//, not supported... SetCommMask(hFile, dwEvtMask);
+	}
+	else
+	do
+	{
+		ClearCommError(hFile, &err, &s);
+		res = SetCommMask(hFile, dwEvtMask);
+		if (!res)
+			lastError = GetLastError();
+	}
+	while((!res) && (lastError == ERROR_OPERATION_ABORTED));
+
+	return(res);
+}
+
+BOOL WINAPI WriteFileP(HANDLE hFile,LPCVOID lpBuffer,DWORD nNumberOfBytesToWrite,LPDWORD lpNumberOfBytesWritten,LPOVERLAPPED lpOverlapped, TBool bUseSocket)
+	{
+	DWORD err;
+	DWORD lastError = 0;
+	BOOL res;
+	COMSTAT s;
+	
+	if(bUseSocket)
+	{//-- tunnel data to the socket
+		WriteFile(hFile, lpBuffer, nNumberOfBytesToWrite, lpNumberOfBytesWritten, lpOverlapped);
+	}
+	else
+	do
+	{//-- normal operation with serial port
+		ClearCommError(hFile, &err, &s);
+		res = WriteFile(hFile, lpBuffer, nNumberOfBytesToWrite, lpNumberOfBytesWritten, lpOverlapped);
+		if (!res)
+			lastError = GetLastError();
+	}
+	while((!res) && (lastError == ERROR_OPERATION_ABORTED));
+
+	return(res);
+	}
+
+BOOL WINAPI ReadFileP(HANDLE hFile,LPVOID lpBuffer,DWORD nNumberOfBytesToRead,LPDWORD lpNumberOfBytesRead,LPOVERLAPPED lpOverlapped, TBool bUseSocket)
+	{
+	DWORD err;
+	DWORD lastError = 0;
+	BOOL res;
+	COMSTAT s;
+
+    _Log2("#ReadFileP()#1 to read: %d bytes \n", nNumberOfBytesToRead);
+
+	if(bUseSocket)
+	{//-- tunnel data to the socket
+		ReadFile(hFile, lpBuffer, nNumberOfBytesToRead, lpNumberOfBytesRead, lpOverlapped);
+	}
+	
+	else
+	do
+	{//-- normal operation with serial port
+		ClearCommError(hFile, &err, &s);
+		res = ReadFile(hFile, lpBuffer, nNumberOfBytesToRead, lpNumberOfBytesRead, lpOverlapped);
+		if (!res)
+			lastError = GetLastError();
+	}
+	while((!res) && (lastError == ERROR_OPERATION_ABORTED));
+
+    _Log2("#ReadFileP()#2 read: %d bytes \n", *lpNumberOfBytesRead);
+
+	return(res);
+	}
+
+
+
+
+DDriverComm::DDriverComm()
+	{
+#if defined (__COM_ONE_ONLY__)
+	iUnitsMask=0x1; // Support units 0
+#elif defined (__COM_TWO_ONLY__)
+	iUnitsMask=0x2; // Support units 1
+#else
+	iUnitsMask=0x3ff; // Support units 0 to 9
+#endif
+
+	iVersion=TVersion(KCommsMajorVersionNumber,KCommsMinorVersionNumber,KCommsBuildVersionNumber);
+	}
+
+TInt DDriverComm::Install()
+	{
+#if defined (__COM_ONE_ONLY__)
+	TPtrC buf=_L("Comm.Wins1");
+	return(SetName(&buf));
+#elif defined (__COM_TWO_ONLY__)
+	TPtrC buf=_L("Comm.Wins2");
+	return(SetName(&buf));
+#else
+	TPtrC buf=_L("Comm.Wins");
+	return(SetName(&buf));
+#endif
+	}
+
+TInt DDriverComm::Remove()
+	{
+	return(KErrNone);
+	}
+
+
+TInt DDriverComm::Validate(TInt /*aUnit*/, const TDesC8* /*aInfo*/, const TVersion& aVer)
+//
+//	Validate the requested configuration
+//
+	{
+	if ((!Kern::QueryVersionSupported(iVersion,aVer)) || (!Kern::QueryVersionSupported(aVer,TVersion(KMinimumLddMajorVersion,KMinimumLddMinorVersion,KMinimumLddBuild))))
+		return KErrNotSupported;
+#if defined (__COM_ONE_ONLY__)
+	if (aUnit!=0)
+		return KErrNotSupported;
+#elif defined (__COM_TWO_ONLY__)
+	if (aUnit!=1)
+		return KErrNotSupported;
+#endif
+	// leave Unit check to CreateFile
+	return KErrNone;
+	}
+
+
+void GetWinsCommsCaps(TDes8 &aCaps)
+	{
+
+	TCommCaps2 capsBuf;
+	TCommCapsV02 &c=capsBuf();
+//
+// All rates except 50,2000, 3600 and special
+//
+	c.iRate=KCapsBps75|KCapsBps110|KCapsBps134|KCapsBps150|KCapsBps300|KCapsBps600|KCapsBps1200|KCapsBps1800|KCapsBps2400|KCapsBps4800|KCapsBps7200|KCapsBps9600|KCapsBps19200|KCapsBps38400|KCapsBps57600|KCapsBps115200;
+
+	c.iDataBits=0xf; // All data sizes
+	c.iStopBits=0x3; // 1 and 2 stop bits
+	c.iParity=0x7; // None, Even and Odd
+	c.iHandshake = 0x3BF;	//all except KConfigObeyDCD
+	c.iSignals=0x3f; // All signals
+	c.iSIR=0;//No Ir
+	c.iNotificationCaps=KNotifySignalsChangeSupported|KNotifyDataAvailableSupported;
+	c.iRoleCaps=0;
+	c.iFlowControlCaps=0;
+	aCaps.FillZ(aCaps.MaxLength());
+	aCaps=capsBuf.Left(Min(capsBuf.Length(),aCaps.MaxLength()));
+	}
+
+void DDriverComm::GetCaps(TDes8 &aDes) const
+	{
+
+	GetWinsCommsCaps(aDes);
+	}
+TInt DDriverComm::Create(DBase*& aChannel, TInt aUnit,const TDesC8* aInfo,const TVersion& aVer)
+	{
+
+	if (!Kern::QueryVersionSupported(iVersion,aVer))
+		return KErrNotSupported;
+
+	DCommWins *pD= new DCommWins;
+	if (!pD) return KErrNoMemory;
+
+	TInt ret=pD->DoCreate(aUnit,aInfo);
+
+	if (ret!=KErrNone)
+	{
+		delete pD;
+		return ret;
+	}
+	
+	aChannel = pD;			    
+
+	return KErrNone;
+	}
+
+/**
+    Associate event with our socket
+*/
+TInt DCommWins::QueSocketRead()
+{
+	_Log("# DCommWins::QueSocketRead()\n");
+	if(WSAEventSelect(iSocket, iReadOverLapped.hEvent, FD_READ | FD_CLOSE))
+		{// Some error?!?
+		DWORD res = WSAGetLastError();
+		return res;
+		}
+		
+	return KErrNone;
+
+}
+
+void DCommWins::DoWriteComplete(TInt aErr)
+	{
+	iWritePending = 0;
+	StartOfInterrupt();
+	iLdd->iTxError = aErr;
+	iLdd->iTxCompleteDfc.Add();
+	EndOfInterrupt();
+	}
+
+
+
+void DCommWins::DoSignalCompletion(TInt aError, TUint aChanged, TUint aValues)
+	{
+
+	//aValues contains the signal values.  EPOC constants
+	//aChanged contains the signals which have changed
+	//we return the signal values
+	TUint res = aValues & iSignalsWanted;
+	res |= (aChanged << 12);
+	
+	iLdd->iSignalResult = res;
+	iLdd->iSignalError = aError;
+	StartOfInterrupt();
+	iLdd->iSigNotifyDfc.Add();
+	EndOfInterrupt();
+	}
+
+void DCommWins::DoDataAvailableCompletion()
+	{
+	StartOfInterrupt();
+	iLdd->iRxDataAvailableDfc.Add();
+	EndOfInterrupt();
+	}
+
+
+
+void DCommWins::CompleteRead(TInt aLength)
+	{
+	
+	_Log2("# DCommWins::CompleteRead(), len=%d\n", aLength);
+	
+	iReadPending = 0;
+	iInDes.SetLength(aLength);
+	StartOfInterrupt();
+	iLdd->iRxCompleteDfc.Add();
+	EndOfInterrupt();
+	}
+
+
+
+void DCommWins::DoReadComplete(TInt aErr, TInt aBytes)
+	{
+	_Log3("# DCommWins::DoReadComplete(), err=%d, bytes=%d\n", aErr, aBytes);
+	
+	iLdd->iRxError = aErr;
+	//write back the length and the data
+	//process for any terminating characters.
+	//win32 only does binary reads and ignores the eofchar, so terminated reads
+	//require reading one char at a time
+	if (iTerminatedRead && !aErr)
+		{
+		__NK_ASSERT_ALWAYS(aBytes <= 1);
+		if (aBytes == 0)
+			{
+			// not sure why we get this somtimes, but handle it anyway : read another character
+			ReadFileP(iCommPort,(void*)(iInBufPtr+iReadSoFar), 1, &dummyLen, &iReadOverLapped, UseSocket());
+			}
+		else if (++iReadSoFar == iClientReadLength)	//see if we have read enough characters into the buffer
+			{
+			//got them all so complete it
+			CompleteRead(iReadSoFar);
+			}
+		else if (IsATerminator(iInBufPtr[iReadSoFar-1]))	//see if the char just read was the terminator
+			{
+			//it's a terminated read and we've found one of the terminbators
+			CompleteRead(iReadSoFar);
+			}
+		else if (iReadPending == EReceive)
+			{
+			//read another character
+			ReadFileP(iCommPort,(void*)(iInBufPtr+iReadSoFar), 1, &dummyLen, &iReadOverLapped, UseSocket());
+			}
+		else
+			{
+			//it's a receive 1 or more with terminators, we've got 1 so that'll do
+			CompleteRead(iReadSoFar);
+			}
+		}
+	else
+		{
+		CompleteRead(aBytes);
+		}
+	}
+
+
+
+
+void DCommWins::RunCommThread(TDriverCommand aCommand)
+//
+// Wake up the comms thread
+//
+	{
+	 _Log2("# DCommWins::RunCommThread, command=%d\n", aCommand);
+	 
+	__ASSERT_DEBUG(aCommand!=EInvalidCommand,Panic(EUnknownCommand));
+	iCommand=aCommand;
+//
+// Are we about to go re-entrant?
+//
+	if(GetCurrentThreadId()==iThreadID)
+		{
+		_Log("# DCommWins::RunCommThread() DriverCommand #1\n");
+		DriverCommand(aCommand);
+
+		_Log("#~ DCommWins::RunCommThread() WaitForSingleObject #1\n");
+		WaitForSingleObject(iDriverThreadSem,INFINITE);
+		}
+	else
+		{
+		Sleep(0); // Possible deadlock solution - see MSDN Knowledge Base Article Q173260
+										   
+		_Log("# DCommWins::RunCommThread() Release iCommThreadSem\n");
+		if (ReleaseSemaphore(iCommThreadSem,1,NULL)==FALSE)
+			{
+			DWORD ret=GetLastError();
+			ret=ret;
+			Panic(EWindowsUnexpectedError);
+			}
+				  
+        _Log("#~ DCommWins::RunCommThread() WaitForSingleObject #2\n");
+		WaitForSingleObject(iDriverThreadSem,INFINITE);
+		_Log("# DCommWins::RunCommThread() checkpoint #2\n");
+		}
+	}
+
+inline void DCommWins::SignalDriverThread()
+//
+// Wake up the comms thread
+//
+	{
+	_Log("# DCommWins::SignalDriverThread(), release iDriverThreadSem\n");
+	
+	Sleep(0); // Possible deadlock solution - see MSDN Knowledge Base Article Q173260
+	if (ReleaseSemaphore(iDriverThreadSem,1,NULL)==FALSE)
+		{
+		DWORD ret=GetLastError();
+		ret=ret;
+		Panic(EWindowsUnexpectedError);
+		}
+	}
+
+
+
+//
+#pragma warning( disable : 4705 )	// statement has no effect
+DCommWins::DCommWins() :  iOutDes(0,0), iInDes(0,0), iRxBufferSize(KDefaultWinNTReadBufSize), iSignalsRequested(0)
+	{
+	__DECLARE_NAME(_S("DCommWins"));
+	
+    _Log("# ------------------------------------------------\n");
+	_Log("# DCommWins::DCommWins()\n");
+		
+	iSocket = INVALID_SOCKET;
+	}
+#pragma warning( default : 4705 )
+
+
+//-----------------------------------------------------------------------------------------------
+
+/**
+*   Create the comms driver.
+*   @param  aUnit serial porn number to work with (starts with 0)
+*/
+
+
+//-----------------------------------------------------------------------------------------------
+TInt DCommWins::DoCreate(TInt aUnit,const TDesC8 * /*aInfo*/)
+	{
+
+    _Log("# DCommWins::DoCreate()\n");
+
+#if defined (__COM_ONE_ONLY__)
+	if (aUnit!=0)
+		return KErrNotSupported;
+#elif defined (__COM_TWO_ONLY__)
+	if (aUnit!=1)
+		return KErrNotSupported;
+#endif
+    
+    //-- obtain and parse a string with mapping serial ports to IP addresses
+	//-- the string shall look like: WIN_TUNNEL=0,10.35.2.53,110;4,10.35.2.59,110;5,10.35.2.50,110;6,10.35.2.50,443;7,10.35.2.53,443
+	TInt    foundPort   = 0;
+	TInt    supposedPort= -1;
+	char*   hostname    = iOptions;
+	TInt16  portNumber  = 0;
+
+	const char * property = Property::GetString("WIN_TUNNEL");    
+	
+	if(property)
+	{
+		if((strlen(property) < 5) || (strlen(property) > 150))
+		    FAULT(); //-- illegal parameter string length
+			
+		strcpy(iOptions, property);
+	    char* pchBeg = iOptions;
+	    
+	    while(!foundPort && pchBeg)
+		{
+			char* pchEnd;
+		
+			supposedPort = strtol(pchBeg, &pchEnd, 10);
+		
+			if(aUnit == supposedPort)
+			{//-- found a com port number, extract IP address and port for the socket
+				if(*pchEnd++ != ',')
+					FAULT();
+		    
+				hostname = pchBeg = pchEnd;
+				pchEnd = strchr(pchBeg, ',');
+				pchBeg = pchEnd + 1;
+				*pchEnd = '\0';
+		    
+				portNumber = (TInt16)strtol(pchBeg, &pchEnd, 10);
+		    
+				foundPort = 1;
+			}
+			else
+			{
+				pchBeg = strchr(pchBeg, ';');
+				
+				if(pchBeg)
+					pchBeg ++;
+			}
+		}
+	}//if(property)
+    
+
+    //-----------------------------------------
+
+	//create the buffers.
+	//the buffers need to be as big as the client will ever use.  8mb reserved, but commit less
+	iInBufPtr = (TUint8*)VirtualAlloc(NULL, KSerialBufferMaxSize,MEM_RESERVE | MEM_TOP_DOWN, PAGE_READWRITE);
+	if (!iInBufPtr)
+		return(Emulator::LastError());
+
+	//commit the first bit of the buffer
+	if (!VirtualAlloc(iInBufPtr, KSerialBufferInitialSize, MEM_COMMIT,PAGE_READWRITE))
+		return(Emulator::LastError());
+
+	iInBufLength = KSerialBufferInitialSize;
+	iInDes.Set(iInBufPtr, 0, iInBufLength);
+
+	//reserve address space for the output buffer
+	iOutBufPtr = (TUint8*)VirtualAlloc(NULL, KSerialBufferMaxSize,MEM_RESERVE | MEM_TOP_DOWN, PAGE_READWRITE);
+	if (!iOutBufPtr)
+		return(Emulator::LastError());
+
+	//commit a smaller region of it
+	if (!VirtualAlloc(iOutBufPtr, KSerialBufferInitialSize, MEM_COMMIT,PAGE_READWRITE))
+		return(Emulator::LastError());
+
+	iOutBufLength = KSerialBufferInitialSize;
+	iOutDes.Set(iOutBufPtr, 0, iOutBufLength);
+
+	//-----------------------------------------
+
+
+	if(aUnit == supposedPort)
+	{//-- a serial port number is found in the parameter string.
+	 //-- create and connect socket.
+	    
+	    WORD    wVersionRequested;
+		WSADATA wsaData;
+		int     err; 
+		wVersionRequested = MAKEWORD(2, 0);
+		
+		err = WSAStartup(wVersionRequested, &wsaData);
+		if (err != 0)
+		    return(Emulator::LastError());
+
+
+		//-- create a socket
+		iSocket = WSASocket(AF_INET, SOCK_STREAM, IPPROTO_TCP, 0, 0, WSA_FLAG_OVERLAPPED);
+
+		_Log3("# DCommWins: created socket id: %d, port emulation: %d\n", iSocket, supposedPort);
+		
+		if(iSocket == INVALID_SOCKET)
+			{
+			err = WSAGetLastError();
+			return(Emulator::LastError());
+			}
+
+		sockaddr_in sin;
+		u_long      nRemoteAddr = inet_addr(hostname);
+
+		if (nRemoteAddr != INADDR_NONE)
+		{
+			sin.sin_addr.s_addr = nRemoteAddr;
+		}
+		else
+		{
+			struct hostent FAR * hostaddr = gethostbyname (hostname);
+			if(hostaddr == NULL)
+			{
+				err = WSAGetLastError();
+				return(Emulator::LastError());
+			}
+			sin.sin_addr.s_addr = *((u_long*)hostaddr->h_addr_list[0]);
+		}
+
+		sin.sin_family  = AF_INET;
+		sin.sin_port    = htons(portNumber);
+
+        //-- connect to the server
+		err = WSAConnect(iSocket, (sockaddr*)&sin, sizeof(sin), 0, 0, 0, 0);
+		if(err)
+		{
+			err = WSAGetLastError();
+			return(Emulator::LastError());
+		}
+
+        _Log("# DCommWins: socket connected. \n");
+
+		iCommPort = (void*)iSocket;
+		
+    }
+
+    //-----------------------------------------    
+    
+    if( !UseSocket() )
+    {
+        _Log2("# DCommWins: Using serial port# %d \n",aUnit);
+        
+        //-- Open a true serial port
+        TBuf8<0x10> n;
+    	n.Append(KComName);
+    	n.AppendNum(aUnit+1);
+    	n.Append('\0');
+
+    	iCommPort=CreateFileA((LPCSTR)n.Ptr(),GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_FLAG_OVERLAPPED,NULL);
+    	if (iCommPort==INVALID_HANDLE_VALUE)	
+    		{	
+    	//	Reused code from Emulator::LastError() rather than adding an extra case 
+    	//	to Emulator::LastError() because mapping KErrNotSupported to the returned
+    	//	FILE_NOT_FOUND is non-intuitive and special to this case only
+    		DWORD winErr=GetLastError();
+    		switch (winErr)
+    			{
+    			case ERROR_INVALID_USER_BUFFER:
+    			case ERROR_NOT_ENOUGH_MEMORY:
+    			case ERROR_INSUFFICIENT_BUFFER:
+    				return(KErrNoMemory);
+    			case ERROR_ACCESS_DENIED:
+    				return(KErrAccessDenied);
+    			case ERROR_FILE_NOT_FOUND:		//	Reflects value returned by
+    				return(KErrNotSupported);	//	corresponding MARM Pdd  
+    			case ERROR_NOT_SUPPORTED:
+    				return(KErrNotSupported);
+    			default:
+    				return(KErrGeneral);
+    			}
+    		}
+
+    	
+    	DCB dcb;
+    	//set the dcb size
+    	dcb.DCBlength = sizeof(dcb);
+    	if (!GetCommStateP(iCommPort,&dcb, UseSocket()))
+    		return(Emulator::LastError());
+
+    	EscapeCommFunctionP(iCommPort,0, UseSocket());
+
+    	if (!SetCommMaskP(iCommPort,EV_CTS|EV_ERR|EV_DSR|EV_RLSD|EV_RXCHAR|EV_RING, UseSocket()))
+    		return(Emulator::LastError());
+
+    	if(!SetupComm(iCommPort,KDefaultWinNTReadBufSize,KDefaultWinNTWriteBufSize))
+    		return(Emulator::LastError());
+
+    }//if( !UseSocket() )
+	
+    _Log("# DCommWins: creating semaphores. \n");
+    
+    //--- create thread semaphores 
+	if ((iCommThreadSem=CreateSemaphoreA(NULL,0,0x7fffffff,NULL))==NULL)
+		return(Emulator::LastError());
+
+	if ((iDriverThreadSem=CreateSemaphoreA(NULL,0,0x7fffffff,NULL))==NULL)
+		return(Emulator::LastError());
+
+    //-----------------------------------------    
+
+    if( !UseSocket() )
+    {// The serial port seems to open with the error condition set
+    	DWORD err,res;
+    	COMSTAT s;
+    	if (ClearCommError(iCommPort,&err,&s)==FALSE)
+    		res=GetLastError();
+    }
+
+    _Log("# DCommWins: creating comm thread. \n");
+
+    iReadCancel = EFalse;
+
+	if ((iThread=CreateWin32Thread(EThreadEvent,(LPTHREAD_START_ROUTINE)commThread,(void *)this, FALSE))==NULL)
+		return(Emulator::LastError());
+
+	SetThreadPriority(iThread,THREAD_PRIORITY_HIGHEST);
+	
+	_Log("# DCommWins::DoCreate() exit\n");
+	return(KErrNone);
+	}
+
+
+	
+void DCommWins::ReleaseBuffers()
+	{
+	if (iInBufPtr)
+		{
+		//decommit the buffer
+		VirtualFree(iInBufPtr,KSerialBufferMaxSize, MEM_DECOMMIT);
+		//and release the region
+		VirtualFree(iInBufPtr, NULL, MEM_RELEASE);
+		iInBufPtr = NULL;
+		}
+	if (iOutBufPtr)
+		{
+		VirtualFree(iOutBufPtr,KSerialBufferMaxSize, MEM_DECOMMIT);
+		VirtualFree(iOutBufPtr, NULL, MEM_RELEASE);
+		iOutBufPtr = NULL;
+		}
+	}
+	
+
+DCommWins::~DCommWins()
+	{
+	_Log("# DCommWins::~DCommWins()\n");
+	if (iThread)
+		{
+		if (! iRunning)
+			{
+			__ASSERT_ALWAYS(
+				ResumeThread(iThread) != 0xffffffff,
+				Panic(EWindowsUnexpectedError)); 
+			}
+
+		iRunning=ETrue;
+		RunCommThread(EDie);
+		}
+
+	if(UseSocket())
+	{
+	    closesocket(iSocket);
+	    WSACleanup();
+		iCommPort = (HANDLE) NULL;
+		iSocket   = NULL;
+	}
+	
+	if (iCommPort)
+	{
+		CloseHandle(iCommPort);
+	}
+
+	if (iDriverThreadSem)
+		CloseHandle(iDriverThreadSem);
+
+	if (iCommThreadSem)
+		CloseHandle(iCommThreadSem);
+
+	if (iReadOverLapped.hEvent)
+		CloseHandle(iReadOverLapped.hEvent);
+
+	if (iWriteOverLapped.hEvent)
+		CloseHandle(iWriteOverLapped.hEvent);
+
+	if (iSignalOverLapped.hEvent)
+		CloseHandle(iSignalOverLapped.hEvent);
+
+	if (iThread)
+		CloseHandle(iThread);
+
+	//free up the memory
+	ReleaseBuffers();
+
+	_Log("# DCommWins::~DCommWins() exit\n");
+	
+	}
+
+TInt DCommWins::Start()
+	{
+
+	__ASSERT_ALWAYS(ResumeThread(iThread)!=0xffffffff,Panic(EWindowsUnexpectedError));
+	iRunning=ETrue;
+	RunCommThread(EStart);
+	return(KErrNone);
+	}
+
+void DCommWins::Stop(TStopMode aMode)
+	{
+
+	RunCommThread((aMode==EStopEmergency) ? EStopNoDrain : EStop);
+	SuspendThread(iThread);
+	iRunning=EFalse;
+	}
+
+void DCommWins::Break(TBool aState)
+//
+// Assert a break signal
+//
+	{
+
+	if (aState)
+		RunCommThread(ESetBreak);
+	else
+		RunCommThread(EClearBreak);
+	}
+
+
+
+TInt DCommWins::RxCount()
+	{
+	DWORD err =0;
+	COMSTAT stat;
+	if (ClearCommError(iCommPort,&err, &stat))
+		return stat.cbInQue;
+	else
+		return Emulator::LastError();
+	}
+
+
+void DCommWins::ResetBuffers(TBool aTx)
+	{
+	PurgeComm(iCommPort, PURGE_RXCLEAR | (aTx ? PURGE_TXCLEAR : 0));
+	}
+
+
+TBool DCommWins::AreAnyPending()
+	{
+	return (iReadPending != 0) || (iWritePending != 0);
+	}
+
+
+void DCommWins::WriteCancel()
+	{
+	DriverCommand(ETransmitCancel);
+	}
+
+
+void DCommWins::ReadCancel()
+	{
+	DriverCommand(EReceiveCancel);
+	}
+
+void DCommWins::SignalChangeCancel()
+	{
+	if (iSignalsRequested)
+		{
+		iSignalsRequested = 0;
+		}
+
+	}
+
+void DCommWins::DataAvailableNotificationCancel()
+	{
+	if (iDataAvailableNotification)
+		{
+		iDataAvailableNotification = EFalse;
+		iLdd->iRxDAError = KErrCancel;
+		iLdd->iRxDataAvailableDfc.Enque();
+		}
+	}
+
+TDes8* DCommWins::RxBuffer()
+	{
+	return &iInDes;
+	}
+
+TInt DCommWins::SetRxBufferSize(TInt aSize)
+	{
+	aSize += aSize&1;	//round up to multiple of 2 bytes as windows complains if odd
+	TInt ret = SetupComm(iCommPort, aSize, KDefaultWinNTWriteBufSize);
+	if (ret)
+		{
+		iRxBufferSize = aSize;
+		
+		DCB dcb = {0};
+		dcb.DCBlength = sizeof(dcb);
+		
+		if (!GetCommStateP(iCommPort,&dcb, UseSocket()))
+			return Emulator::LastError();
+
+		//use rx buffer size to configure xon/xoff limits
+		dcb.XoffLim = (WORD)(iRxBufferSize / 4);		//25%
+		if (iConfig->iParityError & KConfigXonXoffDebug)
+			dcb.XonLim = (WORD)((iRxBufferSize / 2) -5);	//50%-5
+		else
+			dcb.XonLim = (WORD)((iRxBufferSize / 4) * 3);	//75%
+
+		if (!SetCommStateP(iCommPort,&dcb, UseSocket()))
+			return Emulator::LastError();
+
+		return KErrNone;
+		}
+	return Emulator::LastError();
+	}
+
+
+TInt DCommWins::RxBufferSize()
+	{
+	return iRxBufferSize;
+	}
+
+
+TBool DCommWins::IsATerminator(TText8 aChar)
+	{
+	TInt x;
+	for (x=0; x < iConfig->iTerminatorCount; x++)
+		if (aChar == iConfig->iTerminator[x])
+			return ETrue;
+	return EFalse;
+	}
+
+
+void DCommWins::ReSizeBuffer(TUint8*& aBuf, TInt& aBufLen, TPtr8& aDes, const TInt aNewLen)
+	{
+
+	if (aNewLen > KSerialBufferMaxSize)
+		Panic(ESerialBufferTooBig);
+
+	aBufLen = ((aNewLen + KSerialBufferIncrementSize-1) / KSerialBufferIncrementSize) * KSerialBufferIncrementSize;
+
+	if (aBufLen > KSerialBufferMaxSize)
+		aBufLen = KSerialBufferMaxSize;
+
+	if (!VirtualAlloc(aBuf, aBufLen, MEM_COMMIT,PAGE_READWRITE))
+		{
+		ReleaseBuffers();
+		Panic(ESerialBufferTooBig);
+		}
+	aDes.Set(aBuf, 0, aBufLen);
+	}
+
+
+void DCommWins::Write(DThread* aThread, TAny* aSrc, TInt aLength)
+
+	{
+	if (aLength==0)
+		{
+		RunCommThread(ETransmit0);
+		}
+	else
+		{
+		if (aLength > iOutBufLength)
+			ReSizeBuffer(iOutBufPtr, iOutBufLength, iOutDes, aLength);
+
+		//copy the data from the client
+		Kern::ThreadDesRead(aThread, aSrc, iOutDes, 0,0);
+		iOutDes.SetLength(aLength);
+		//tell the comms thread to write the data
+		RunCommThread(ETransmit);
+		}
+	}
+
+void DCommWins::NotifySignals(DThread* /*aThread*/, TInt aMask)
+	{
+	iSignalsWanted = aMask;
+	RunCommThread(ENotifySignals);
+	}
+
+
+void DCommWins::NotifyDataAvailable()
+	{
+	RunCommThread(ENotifyDataAvailable);
+	}
+
+
+void DCommWins::Read(DThread* /*aThread*/, TAny* /*aDest*/, TInt aLength)
+
+	{
+	_Log2("# DCommWins::Read, len=%d\n", aLength);
+	
+	TDriverCommand command;
+
+	if (aLength < 0)
+		{
+		iClientReadLength = Abs(aLength);
+		command = EReceiveOneOrMore;
+		}
+	else
+		{
+		iClientReadLength = aLength;
+		command = EReceive;
+		}
+
+	if (iClientReadLength > iInBufLength)
+		ReSizeBuffer(iInBufPtr, iInBufLength, iInDes, iClientReadLength);
+	
+	//tell the comms thread to read the data
+	RunCommThread(command);
+	}
+
+
+
+
+
+TUint DCommWins::Signals() const
+{
+    if(UseSocket())
+	    return MS_CTS_ON|MS_DSR_ON|KSignalCTS|KSignalDSR;
+
+	ULONG signals=0;
+	GetCommModemStatusP(iCommPort,&signals, UseSocket());
+	TUint status=0;
+	if (signals&MS_CTS_ON)
+		status|=KSignalCTS;
+	if (signals&MS_DSR_ON)
+		status|=KSignalDSR;
+	if (signals&MS_RING_ON)
+		status|=KSignalRNG;
+	if (signals&MS_RLSD_ON)
+		status|=KSignalDCD;
+	return(status|iSignals);
+}
+
+
+void DCommWins::SetSignals(TUint aSetMask,TUint aClearMask)
+	{
+	if (aSetMask&KSignalRTS)
+		{
+		iSignals|=KSignalRTS;
+		EscapeCommFunctionP(iCommPort,SETRTS, UseSocket());
+		}
+	if (aSetMask&KSignalDTR)
+		{
+		iSignals|=KSignalDTR;
+		EscapeCommFunctionP(iCommPort,SETDTR, UseSocket());
+		}
+	if (aClearMask&KSignalRTS)
+		{
+		iSignals&=(~KSignalRTS);
+		EscapeCommFunctionP(iCommPort,CLRRTS, UseSocket());
+		}
+	if (aClearMask&KSignalDTR)
+		{
+		iSignals&=(~KSignalDTR);
+		EscapeCommFunctionP(iCommPort,CLRDTR, UseSocket());
+		}
+	}
+
+
+
+void DCommWins::CheckConfig(TCommConfigV01& /*aConfig*/)
+	{
+	// Do nothing
+	}
+
+
+
+void DCommWins::Configure(TCommConfigV01 &aConfig)
+//
+// Ask comm thread to set up the serial port
+//
+	{
+
+	iConfig=&aConfig;
+	if (iRunning)
+		{
+		RunCommThread(EConfigure);
+		}
+	else
+		{
+//		iCommand=EConfigure;
+		DoConfigure();
+		}
+	}
+
+void DCommWins::DoConfigure()
+//
+// Set up the serial port
+//
+	{
+
+    if(UseSocket())
+        return; // nothing to configure
+
+	DCB dcb = {0};
+	//set the dcb size
+	dcb.DCBlength = sizeof(dcb);
+	if (!GetCommStateP(iCommPort,&dcb, UseSocket()))
+		return;
+
+			
+	//stop if an error happens
+	dcb.fAbortOnError = TRUE;
+	
+	//baud rate
+	switch (iConfig->iRate)
+		{
+	case EBps75:
+		dcb.BaudRate=75;
+		break;
+	case EBps110:
+		dcb.BaudRate=110;
+		break;
+	case EBps134:
+		dcb.BaudRate=134;
+		break;
+	case EBps150:
+		dcb.BaudRate=150;
+		break;
+	case EBps300:
+		dcb.BaudRate=300;
+		break;
+	case EBps600:
+		dcb.BaudRate=600;
+		break;
+	case EBps1200:
+		dcb.BaudRate=1200;
+		break;
+	case EBps1800:
+		dcb.BaudRate=1800;
+		break;
+	case EBps2400:
+		dcb.BaudRate=2400;
+		break;
+	case EBps4800:
+		dcb.BaudRate=4800;
+		break;
+	case EBps7200:
+		dcb.BaudRate=7200;
+		break;
+	case EBps9600:
+		dcb.BaudRate=9600;
+		break;
+	case EBps19200:
+		dcb.BaudRate=19200;
+		break;
+	case EBps38400:
+		dcb.BaudRate=38400;
+		break;
+	case EBps57600:
+		dcb.BaudRate=57600;
+		break;
+	case EBps115200:
+		dcb.BaudRate=115200;
+		break;
+		}
+   
+	switch (iConfig->iParity)
+		{
+	case EParityNone:
+		dcb.Parity=NOPARITY;
+		dcb.fParity = FALSE;
+		break;
+	case EParityEven:
+		dcb.Parity=EVENPARITY;
+		dcb.fParity = TRUE;
+		break;
+	case EParityOdd:
+		dcb.Parity=ODDPARITY;
+		dcb.fParity = TRUE;
+		break;
+	case EParityMark:
+		dcb.Parity = MARKPARITY;
+		dcb.fParity = TRUE;
+		break;
+	case EParitySpace:
+		dcb.Parity = SPACEPARITY;
+		dcb.fParity = TRUE;
+		break;
+		}
+
+	switch (iConfig->iParityError)
+		{
+	case KConfigParityErrorFail:
+		dcb.fErrorChar = FALSE;
+		break;
+
+	case KConfigParityErrorIgnore:
+		dcb.fErrorChar = FALSE;
+		dcb.fAbortOnError = FALSE;
+		break;
+
+	case KConfigParityErrorReplaceChar:
+		dcb.fErrorChar = TRUE;
+		dcb.ErrorChar = iConfig->iParityErrorChar;
+		break;
+		}
+
+
+	TUint& hs = iConfig->iHandshake;
+
+
+	//SOFTWARE FLOW CONTROL
+	dcb.fInX  = (hs & KConfigObeyXoff) ? TRUE : FALSE;
+	dcb.fOutX = (hs & KConfigSendXoff) ? TRUE : FALSE;
+
+	dcb.XonChar = iConfig->iXonChar;
+	dcb.XoffChar = iConfig->iXoffChar;
+	dcb.ErrorChar = iConfig->iParityErrorChar;
+
+	//use rx buffer size to configure xon/xoff limits
+	dcb.XoffLim = (WORD)(iRxBufferSize / 4);		//25%
+	if (iConfig->iParityError & KConfigXonXoffDebug)
+		dcb.XonLim = (WORD)((iRxBufferSize / 2) -5);	//50%-5
+	else
+		dcb.XonLim = (WORD)((iRxBufferSize / 4) * 3);	//75%
+
+
+
+	//OUTPUT HARDWARE FLOW CONTROL
+	//set out DSR control to be off
+	dcb.fOutxDsrFlow = FALSE;
+	dcb.fOutxCtsFlow = (hs & KConfigObeyCTS) ? TRUE : FALSE;
+	dcb.fDsrSensitivity =  (hs & KConfigObeyDSR) ? TRUE : FALSE;
+
+
+	if (hs & KConfigObeyDCD)
+		{
+		}
+
+	
+	//INPUT HARDWARE FLOW CONTROL
+	dcb.fRtsControl = (hs & KConfigFreeRTS) ? RTS_CONTROL_DISABLE : RTS_CONTROL_HANDSHAKE;
+	dcb.fDtrControl = (hs & KConfigFreeDTR) ? DTR_CONTROL_DISABLE : DTR_CONTROL_ENABLE;
+
+
+	//complete with KErrCommsLineFail if these are set and the line goes low
+	iFailSignals = 0;
+	if (hs & KConfigFailDSR)
+		iFailSignals |= KSignalDSR;
+	
+	if (hs & KConfigFailCTS)
+		iFailSignals |= KSignalCTS;
+
+	if (hs & KConfigFailDCD)
+		iFailSignals |= KSignalDCD;
+	
+	
+	iTerminatedRead = iConfig->iTerminatorCount > 0;
+
+   	switch(iConfig->iDataBits)
+		{
+	case EData5:
+		dcb.ByteSize=5;	
+		break;
+	case EData6:
+		dcb.ByteSize=6;
+		break;
+	case EData7:
+		dcb.ByteSize=7;
+		break;
+	case EData8:
+		dcb.ByteSize=8;
+		break;
+		}
+
+	switch(iConfig->iStopBits)
+		{
+	case EStop1:
+		dcb.StopBits=ONESTOPBIT;
+		break;
+	case EStop2:
+		dcb.StopBits=TWOSTOPBITS;
+		break;
+		}
+
+
+
+	TInt error_r=KErrNone;
+	if(!SetCommStateP(iCommPort,&dcb, UseSocket()))
+		error_r=GetLastError();
+
+// Clear any error we may have caused
+//
+	DWORD err,res;
+	COMSTAT s;
+	if (ClearCommError(iCommPort,&err,&s)==FALSE)
+		res=GetLastError();
+
+	}
+
+void DCommWins::Caps(TDes8 &aCaps) const
+//
+// Return the current capabilities
+//
+	{
+
+	GetWinsCommsCaps(aCaps);
+	}
+
+
+void DCommWins::WaitForEvent()
+	{
+
+	HANDLE objects[4];
+
+
+	iReadOverLapped.hEvent=CreateEventA(NULL,FALSE,FALSE,NULL); 
+	iWriteOverLapped.hEvent=CreateEventA(NULL,FALSE,FALSE,NULL);
+	iSignalOverLapped.hEvent=CreateEventA(NULL,FALSE,FALSE,NULL);
+	objects[0]=iSignalOverLapped.hEvent; // iCommPort;
+	objects[1]=iCommThreadSem;
+	objects[2]=iWriteOverLapped.hEvent;
+	objects[3]=iReadOverLapped.hEvent;
+
+	FOREVER
+		{
+		
+		_Log("#~ DCommWins::WaitForEvent() WaitForMultipleObjectsEx #1\n");
+		DWORD ret=WaitForMultipleObjectsEx(4,objects,FALSE,INFINITE,TRUE);
+		_Log2("#--  DCommWins::WaitForEvent(), event=%d\n", ret);
+		
+		switch (ret)
+			{
+		case WAIT_OBJECT_0:
+			{
+			//			EnterCritical();
+
+            _Log("#--     DCommWins::WaitForEvent(), event0\n");
+            
+			if (iDataAvailableNotification)
+				{
+				DataAvailableCompletion(this);
+				iDataAvailableNotification = EFalse;	//stop us repeatedly reporting it
+				}
+
+			TUint currentSignals = Signals();
+
+			//mask out all the signals but the ones we are interested in
+			iLineFail = (iFailSignals & currentSignals) != iFailSignals;
+			if (iLineFail)
+				{
+				//if we have the handshake options of
+				//KConfigFailDSR, KConfigFailDCD KFailConfigCTS set
+				//we need to do something if any of them are low so
+				//complete any outstanding ops with failure
+				if (iReadPending)
+					{
+					//we have a read to complete
+					iRXLineFail = ETrue;
+					PurgeComm(iCommPort, PURGE_RXABORT);
+					}
+
+				if (iWritePending)
+					{
+					//we have a write to complete
+					iTXLineFail = ETrue;
+					PurgeComm(iCommPort, PURGE_TXABORT);
+					}
+				}
+
+
+			//iSignalsRequested will only have bits set if outstanding request
+			TUint changed = (currentSignals ^ iSavedSignals) & iSignalsRequested;
+			if (changed) 
+				{
+				SignalCompletion(this, KErrNone, changed, currentSignals);
+				iSavedSignals = currentSignals;
+				iSignalsRequested = 0;				//stop us repeatedly reporting it.
+												//iSignalsRequested is setup in the call to notify
+				}
+			
+			if (iWritePending == ETransmit0 && (currentSignals & KSignalCTS) != 0)
+				WriteCompletion(this, KErrNone, 0);
+
+			//request another notification event.  All events are requested.
+			iSignalStatus=0;
+			DWORD commErrors;
+			BOOL res;
+			DWORD lastError = 0;
+			COMSTAT cstat;
+
+			do
+				{
+				ClearCommError(iCommPort,&commErrors,&cstat);
+				res = WaitCommEvent(iCommPort,&iSignalStatus,&iSignalOverLapped);
+				if (!res)
+					lastError = GetLastError();
+				}
+			while((!res) && (lastError != ERROR_IO_PENDING));
+
+			break;
+			}
+
+		case WAIT_OBJECT_0+1:
+//
+// iCommThreadSemaphore has been signalled
+//			
+			_Log2("#--     DCommWins::WaitForEvent(), event1, driver command %d \n", iCommand);
+			DriverCommand(iCommand);
+			break;
+			
+		case WAIT_OBJECT_0+2:
+			//
+			//	Write completion
+			//
+			{
+			_Log("#--     DCommWins::WaitForEvent(), event2, write completion \n");
+			 
+			DWORD len = 0;
+			TInt error = KErrNone;
+			if (!GetOverlappedResult(iCommPort, &iWriteOverLapped, &len, FALSE))
+				error = Emulator::LastError();
+			
+			COMSTAT s;
+			DWORD err = 0;
+			ClearCommError(iCommPort,&err,&s);
+
+			//if we are failing if one or more of CTS, DSR, DCD go low
+			if (iTXLineFail)
+				{
+				error = KErrCommsLineFail;
+				iTXLineFail = EFalse;
+				}
+			else if (err)
+				{
+				if (err & CE_FRAME)
+					error = KErrCommsFrame;
+				else if (err & CE_OVERRUN)
+					error = KErrCommsOverrun;
+				else if (err & CE_RXPARITY)
+					error = KErrCommsParity;
+				}
+
+			WriteCompletion(this, error, len);
+			break;
+			}
+
+		case WAIT_OBJECT_0+3:
+			//
+			//	Read completion
+			//
+		{
+			//if(!iCommandEvent) break;
+			
+			_Log("#--     DCommWins::WaitForEvent(), event3, read completion \n");
+			
+			DWORD len = 0;
+			TInt error = KErrNone;
+
+    	    if(UseSocket() && iReadCancel)	
+    	    {//-- socket read cancel occured													 
+    	        error = KErrCancel;
+    	        iReadCancel = EFalse;
+    	    }	
+    	    else
+    	    {		
+    			if (!GetOverlappedResult(iCommPort, &iReadOverLapped, &len, FALSE))
+    				error = Emulator::LastError();
+
+    			COMSTAT s;
+    			DWORD err = 0;
+    			ClearCommError(iCommPort,&err,&s);
+
+    			//if we are failing if one or more of CTS, DSR, DCD go low
+    			if (iRXLineFail)
+    				{
+    				error = KErrCommsLineFail;
+    				iRXLineFail = EFalse;
+    				}
+    			else if (err)
+    				{
+    				if (err & CE_FRAME)
+    					error = KErrCommsFrame;
+    				else if (err & CE_OVERRUN)
+    					error = KErrCommsOverrun;
+    				else if (err & CE_RXPARITY)
+    					error = KErrCommsParity;
+    				}
+            }
+		
+		ReadCompletion(this, error, len);
+		break;
+		}
+
+		case WAIT_IO_COMPLETION:
+			_Log("#--     DCommWins::WaitForEvent(), Wait IO completion \n");
+			
+			break;
+
+		default:
+			Emulator::LastError();
+			FAULT();
+			}
+		}
+	}
+
+void DCommWins::DriverCommand(TDriverCommand aCommand)
+//
+// Do a driver command - executed when the semaphore has been signalled in the comm port thread
+//
+	{
+	
+	_Log2("#<- DCommWins::DriverCommand() :%d \n", aCommand);
+	
+	switch (aCommand)
+		{
+	case ESetBreak:
+		SetCommBreak(iCommPort);
+		break;
+
+	case EClearBreak:
+		ClearCommBreak(iCommPort);
+		break;
+
+	case ETransmit0:
+		
+		if (!iWritePending)
+			{
+			if ((iConfig->iHandshake & KConfigObeyCTS) != 0 && (Signals() & KSignalCTS) == 0)
+				iWritePending = ETransmit0;
+			else
+				DoWriteComplete(KErrNone);
+			}
+		break;
+
+	case ETransmit:
+		
+		if (!iWritePending)
+			{
+			COMMTIMEOUTS ct;
+			int r = GetCommTimeouts(iCommPort, &ct);
+			ct.WriteTotalTimeoutConstant = 0;
+			ct.WriteTotalTimeoutMultiplier = 0;
+			r = SetCommTimeouts(iCommPort, &ct);
+
+			WriteFileP(iCommPort,iOutDes.Ptr(), iOutDes.Length(), &dummyLen, &iWriteOverLapped, UseSocket());
+			iWritePending = ETransmit;
+			}
+		break;
+
+	case EStart:
+	{
+		iSignalStatus=0;
+		iSignalStatus=0;
+		
+		if(! UseSocket())
+		{
+		
+    		DWORD commErrors;
+    		BOOL res;
+    		DWORD lastError = 0;
+    		COMSTAT cstat;
+
+    		do
+    			{
+    			ClearCommError(iCommPort,&commErrors,&cstat);
+    			res = WaitCommEvent(iCommPort,&iSignalStatus,&iSignalOverLapped);
+    			if (!res)
+    				lastError = GetLastError();
+    			}
+    		while((!res) && (lastError != ERROR_IO_PENDING));
+		 }
+		 else
+		if(QueSocketRead() != KErrNone)
+		{	// Inital Read Queue Failed :-(
+			// __DEBUGGER();
+		}
+		 
+	}
+	break;
+	
+	case EStop:
+        // Flush last write
+		if(iWritePending == ETransmit)
+			{
+
+			_Log("#~ DCommWins::DriverCommand() WaitForSingleObject (case EStop)\n");
+
+			if(!UseSocket()) //-- can wait forewer on socket
+			    WaitForSingleObject(iWriteOverLapped.hEvent, INFINITE);
+			    
+			FlushFileBuffers(iCommPort);
+			}
+        iWritePending=0;
+		// Fall through
+	case EStopNoDrain:
+		// Cancel any pending writes
+        if(iWritePending == ETransmit)
+		    {
+			PurgeComm(iCommPort, PURGE_TXABORT|PURGE_TXCLEAR);
+            _Log("#~ DCommWins::DriverCommand() WaitForSingleObject (case EStopNoDrain #1)\n");
+
+            if(!UseSocket()) //-- can wait forewer on socket
+                WaitForSingleObject(iWriteOverLapped.hEvent, INFINITE);
+		    }   
+        iWritePending=0;
+
+		iStopping=ETrue;
+        
+        if(iRunning)
+            {
+            SetCommMaskP(iCommPort,EV_CTS|EV_ERR|EV_DSR|EV_RLSD|EV_RXCHAR, UseSocket());
+            _Log("#~ DCommWins::DriverCommand() WaitForSingleObject (case EStopNoDrain #2)\n");
+
+            if(!UseSocket()) //-- can wait forewer on socket
+                WaitForSingleObject(iSignalOverLapped.hEvent, INFINITE);
+            }
+		break;
+
+	case EDie:	
+		SignalDriverThread();
+		ExitThread(1);
+		break;
+	
+	case EConfigure:
+		DoConfigure();
+		break;
+	
+	case ETransmitCancel:
+		if (iWritePending == ETransmit)
+			PurgeComm(iCommPort, PURGE_TXABORT);
+//		else if (iWritePending == ETransmit0)
+//			{
+			// careful - this runs in the context of the kernel thread, not the event thread
+		iLdd->iTxError = KErrCancel;
+		iLdd->iTxCompleteDfc.Enque();
+//			}
+		break;
+
+	case EReceive:
+		if (!iReadPending)
+			{
+			COMMTIMEOUTS ct;
+			int r = GetCommTimeouts(iCommPort, &ct);
+			ct.ReadIntervalTimeout = 0;
+			ct.ReadTotalTimeoutMultiplier = 0;
+			ct.ReadTotalTimeoutConstant = 0;
+			r = SetCommTimeouts(iCommPort, &ct);
+
+			//if we are doing a terminated read.... we need to do it a byte at a time!
+			if (iTerminatedRead)
+				{
+				iReadSoFar = 0;
+				ReadFileP(iCommPort,(void*)iInDes.Ptr(), 1, &dummyLen, &iReadOverLapped, UseSocket());
+				}
+			else
+				{
+				ReadFileP(iCommPort,(void*)iInDes.Ptr(), iClientReadLength, &dummyLen, &iReadOverLapped, UseSocket());
+				}
+
+			iReadPending = EReceive;
+			}
+		break;
+
+	case EReceiveOneOrMore:
+		if (!iReadPending)
+			{
+			COMMTIMEOUTS ct;
+			int r = GetCommTimeouts(iCommPort, &ct);
+			ct.ReadIntervalTimeout = MAXDWORD;
+			ct.ReadTotalTimeoutMultiplier = MAXDWORD;
+			ct.ReadTotalTimeoutConstant = KReadOneOrMoreTimeout;
+			r = SetCommTimeouts(iCommPort, &ct);
+
+			//if we are doing a terminated read....
+			if (iTerminatedRead)
+				{
+				iReadSoFar = 0;
+				ReadFileP(iCommPort,(void*)iInDes.Ptr(), 1, &dummyLen, &iReadOverLapped, UseSocket());
+				}
+			else
+				{
+				ReadFileP(iCommPort,(void*)iInDes.Ptr(), iClientReadLength, &dummyLen, &iReadOverLapped, UseSocket());
+				}
+
+			iReadPending = EReceiveOneOrMore;
+			}
+		break;
+
+	case EReceiveCancel:
+	
+		if (iReadPending)
+		    if(!UseSocket()) 
+		        PurgeComm(iCommPort, PURGE_RXABORT);
+		    else
+		    {//-- force to resume comms event watcher thread and simulate read cancellation on the socket
+		    iReadCancel=ETrue;
+            SetEvent(iReadOverLapped.hEvent);
+		    }
+		else 
+		if (iDataAvailableNotification)
+			DataAvailableNotificationCancel();
+
+
+	break;
+
+	case ENotifyDataAvailable:
+		{
+		iDataAvailableNotification = ETrue;
+		//setup the comms notifications for data available
+		break;
+		}
+
+	case ENotifySignals:
+		{
+		TUint currentSignals = Signals();
+		TUint changed = (currentSignals ^ iSavedSignals) & iSignalsWanted;
+		if (changed) 
+			{
+			SignalCompletion(this, KErrNone, changed, currentSignals);
+			iSavedSignals = currentSignals;
+			iSignalsWanted = 0;				
+			}
+		else
+			iSignalsRequested = iSignalsWanted;	//checked when signals change
+		}
+		break;
+
+
+	default:
+		// Panic(EUnknownCommand);
+		break;
+		}
+	iCommand=EInvalidCommand;
+	SignalDriverThread();
+	}
+
+
+TDfcQue* DCommWins::DfcQ(TInt /*aUnit*/)
+	{
+	return Kern::DfcQue0();
+	}
+
+
+TInt DCommWins::ValidateConfig(const TCommConfigV01 &aConfig) const
+//
+// Check a config structure.
+//
+	{
+	if(aConfig.iRate & EBpsSpecial)
+		return KErrNotSupported;
+
+	switch (aConfig.iParity)
+		{
+		case EParityNone:
+		case EParityOdd:
+		case EParityEven:
+			break;
+		default:
+			return KErrNotSupported;
+		}
+	switch (aConfig.iRate)
+		{
+		case EBps50:
+		case EBps75:
+		case EBps134:
+		case EBps1800:
+		case EBps2000:
+		case EBps3600:
+		case EBps7200:
+			return KErrNotSupported;
+		default:
+			break;
+		};
+	return KErrNone;
+	}
+
+
+
+
+DECLARE_STANDARD_PDD()
+	{
+	return new DDriverComm;
+	}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/wintunnel/src_cedar/winscomm.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,231 @@
+// Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// wins/specific/winscomm.h
+// 
+//
+
+#ifndef __M32COMM_H__
+#define __M32COMM_H__
+#include <platform.h>
+//#include <kpower.h>
+#include <d32comm.h>
+#include <e32ver.h>
+//
+const TInt KCommsMajorVersionNumber=1;
+const TInt KCommsMinorVersionNumber=1;
+const TInt KCommsBuildVersionNumber=KE32BuildVersionNumber;
+
+//
+enum TStopMode {EStopNormal,EStopPwrDown,EStopEmergency};
+//
+//
+class DChannelComm;
+class DComm : public DBase
+	{
+public:
+	virtual TInt Start() =0;
+	virtual void Stop(TStopMode aMode) =0;
+	virtual void Break(TBool aState) =0;
+	virtual void Write(DThread*,TAny*,TInt) = 0;
+	virtual void Read(DThread*,TAny*,TInt) = 0;
+	virtual void NotifySignals(DThread*, TInt) = 0;
+	virtual void NotifyDataAvailable() = 0;
+	virtual TUint Signals() const =0;
+	virtual void SetSignals(TUint aSetMask,TUint aClearMask) =0;
+	virtual TInt ValidateConfig(const TCommConfigV01 &aConfig) const =0;
+	virtual void Configure(TCommConfigV01 &aConfig) =0;
+	virtual void Caps(TDes8 &aCaps) const =0;
+	virtual void CheckConfig(TCommConfigV01& aConfig)=0;
+	virtual TDfcQue* DfcQ(TInt aUnit)=0;
+	inline void SetCurrent(TInt aCurrent);
+	inline TBool Transmitting();
+	virtual TInt RxCount() =0;
+	virtual void ResetBuffers(TBool) = 0;
+	virtual TInt SetRxBufferSize(TInt aSize) = 0;
+	virtual TInt RxBufferSize() =0;
+	virtual TDes8* RxBuffer() =0;
+	virtual TBool AreAnyPending() = 0;
+	virtual void ReadCancel() = 0;
+	virtual void WriteCancel() = 0;
+	virtual void SignalChangeCancel() = 0;
+
+public:
+	DChannelComm *iLdd;
+	TBool iTransmitting;
+	TUint8 * iInBufPtr;
+	TUint8 * iOutBufPtr;
+
+	};
+
+
+class DDeviceComm : public DLogicalDevice
+	{
+public:
+	DDeviceComm();
+	virtual TInt Install();
+	virtual void GetCaps(TDes8 &aDes) const;
+	virtual TInt Create(DLogicalChannelBase*& aChannel);
+	};
+
+//class DCommPowerHandler;
+class DChannelComm : public DLogicalChannel
+	{
+public:
+	enum TState {EOpen,EActive,EClosed};
+	enum TRequest {ERx=1, ETx=2, ESigChg=4, ERxDA=8, EAll=0xff};
+
+	DChannelComm();
+	~DChannelComm();
+	inline void SetStatus(TState aStatus);
+	TInt TurnaroundSet(TUint aNewTurnaroundMilliSeconds);
+	TBool TurnaroundStopTimer();
+	TInt TurnaroundClear();
+	static void TurnaroundStartDfc(TAny* aSelf);
+	void TurnaroundStartDfcImplementation(TBool inIsr);
+	static void TurnaroundTimeout(TAny* aSelf);
+	void TurnaroundTimeoutImplementation(void);
+
+protected:
+	virtual TInt DoCreate(TInt aUnit, const TDesC8* aInfo, const TVersion& aVer);
+	virtual void HandleMsg(TMessageBase* aMsg);
+	void DoCancel(TInt aMask);
+	TInt DoControl(TInt aId, TAny* a1, TAny* a2);
+	TInt DoRequest(TInt aId, TRequestStatus* aStatus, TAny* a1, TAny* a2);
+	void Start();
+	void Shutdown();
+	void BreakOn();
+	void BreakOff();
+	void ResetBuffers(TBool aResetTx);
+	void DoCompleteRx();
+	void DoCompleteTx();
+	void DoSignalNotify();
+	void DoRxDataAvailable();
+	void Complete(TInt aMask, TInt aReason);
+	inline void CompleteRead()	{ iRxCompleteDfc.Add(); }
+	inline void CompleteWrite() { iTxCompleteDfc.Add(); }
+protected:
+	inline void Write(DThread* aT, TAny* aP, TInt aL) {((DComm*)iPdd)->Write(aT, aP,aL);}
+	inline void Read(DThread* aT, TAny* aP, TInt aL) {((DComm*)iPdd)->Read(aT, aP,aL);}
+	inline void NotifySignals(DThread* aThread, TInt aMask) {((DComm*)iPdd)->NotifySignals(aThread, aMask);}
+	inline void NotifyDataAvailable() {((DComm*)iPdd)->NotifyDataAvailable(); }
+	inline TInt PddStart();
+	inline void Stop(TStopMode aMode);
+	inline void PddBreak(TBool aState);
+	inline TUint Signals() const;
+	inline void SetSignals(TUint aSetMask,TUint aClearMask);
+	inline TInt ValidateConfig(const TCommConfigV01 &aConfig) const;
+	inline void PddConfigure(TCommConfigV01 &aConfig);
+	inline void PddCaps(TDes8 &aCaps) const;
+	inline void PddCheckConfig(TCommConfigV01& aConfig);
+	inline TBool Transmitting();
+	inline TInt BufferSize();
+	inline void ReadCancel();
+	inline void WriteCancel();
+	inline void SignalChangeCancel();
+private:
+//	static void PowerUpDfc(TAny* aPtr);
+//	static void PowerDownDfc(TAny* aPtr);
+	static void CompleteRxDfc(TAny* aPtr);
+	static void CompleteTxDfc(TAny* aPtr);
+	static void SignalNotifyDfc(TAny* aPtr);
+	static void RxDataAvailableDfc(TAny* aPtr);
+	inline TInt RxCount();
+	inline TInt RxBufferSize();
+	inline TDes8* RxBuffer();
+	inline TInt SetRxBufferSize(TInt aSize);
+	inline TBool AreAnyPending() const;
+//	void UpdateSignals();
+	void UpdateAndProcessSignals();
+	void InitiateRead(TAny* aRxDes, TInt aLength);
+	void InitiateWrite(TAny* aTxDes, TInt aLength);
+	void InitiateNotifySignals(TAny* aResult, TInt aMask);
+	void NotifyReadDataAvailable();
+//	TUint FailSignals(TUint aHandshake);
+//	TUint HoldSignals(TUint aHandshake);
+//	TUint FlowControlSignals(TUint aHandshake);
+//	TUint AutoSignals(TUint aHandshake);
+	TInt SetConfig(TCommConfigV01& aConfig);
+//	void CheckOutputHeld();
+//	void ReleaseBuffers();
+
+	// Min Turnaround time between Rx and Tx
+	TUint		iTurnaroundMicroSeconds;		// delay after a receive before transmission in us
+	TUint		iTurnaroundMinMilliSeconds;		// delay after a receive before transmission in ms
+	TBool		iTurnaroundTimerRunning;		// a receive has started the timer
+	TBool		iTurnaroundTransmitDelayed;		// a transmission is held until time elapses after a receive
+	NTimer		iTurnaroundTimer;				// used to delay transmission after a receive
+	TDfc		iTurnaroundDfc;					// used in interrupt space, to trigger a call in user space
+
+	TAny*		iTurnaroundTxDesPtr;			// client descriptor awaiting transmission
+	TInt		iTurnaroundTxDesLength;			// initial size of tx descriptor
+
+public:
+	// Port configuration
+	TCommConfigV01 iConfig;
+
+	// General items
+	DThread* iClient;
+	TAny* iClientDestPtr;
+//	DCommPowerHandler* iPowerHandler;
+//	TDfc iPowerUpDfc;
+//	TDfc iPowerDownDfc;
+//	TUint32 iPowerDownMask;
+	TState iStatus;
+	TDfc iRxCompleteDfc;
+	TDfc iTxCompleteDfc;
+	TDfc iRxDataAvailableDfc;
+	TDfc iSigNotifyDfc;
+	TUint iFlags;				//
+	TUint iSignals;				// State of handshake lines
+//	TUint iFailSignals;			// 1 bit means line low causes line fail error
+//	TUint iHoldSignals;			// 1 bit means line low halts TX
+//	TUint iFlowControlSignals;	// 1 bit means signal is used for RX flow control
+//	TUint iAutoSignals;			// 1 bit means signal is high when channel is open
+	TBool iShutdown;			// ETrue means device is being closed
+	TBool iMsgHeld;				// ETrue means a message has been held up waiting power on
+
+	// RX client related items
+	TInt iRxError;
+	TRequestStatus* iRxStatus;
+
+
+	// TX client related items
+	TInt iTxError;
+	TRequestStatus* iTxStatus;
+
+	// DataAvailable client related items
+	TInt iRxDAError;
+	TRequestStatus* iRxDAStatus;
+
+	// Signal change notification
+	TInt iSignalError;
+	TRequestStatus* iSignalStatus;	
+	TUint* iClientSignalResultPtr;	//ptr to uint in client address space
+	TUint iSignalResult;			//holds result of the signal (in Symbian OS values)
+	};
+
+//class DCommPowerHandler : public DPowerHandler
+//	{
+//public:
+//	DCommPowerHandler(DChannelComm* aChannel);
+//	virtual TInt DoPowerUp();
+//	virtual void DoPowerDown(TUint32 aPowerDownMask);
+//	virtual void DoEmergencyPowerDown();
+//public:
+//	DChannelComm* iChannel;
+//	};
+
+#include "winscomm.inl"
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/wintunnel/src_cedar/winscomm.inl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,80 @@
+// Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// wins/specific/winscomm.inl
+// inline void DComm::SetCurrent(TInt aCurrent)
+// { iLdd->iPowerHandler->SetCurrentConsumption(aCurrent); }
+// 
+//
+
+
+
+
+inline TBool DChannelComm::AreAnyPending() const
+	{ return((DComm*)iPdd)->AreAnyPending(); }
+
+inline TInt DChannelComm::RxCount()
+	{ return ((DComm*)iPdd)->RxCount(); }
+
+inline void DChannelComm::ReadCancel()
+	{ ((DComm*)iPdd)->ReadCancel(); }
+
+inline void DChannelComm::WriteCancel()
+	{ ((DComm*)iPdd)->WriteCancel(); }
+
+inline void DChannelComm::SignalChangeCancel()
+	{ ((DComm*)iPdd)->SignalChangeCancel(); }
+
+inline void DChannelComm::ResetBuffers(TBool aTx)
+	{ ((DComm*)iPdd)->ResetBuffers(aTx); }
+
+inline TInt DChannelComm::SetRxBufferSize(TInt aSize)
+	{ return ((DComm*)iPdd)->SetRxBufferSize(aSize); }
+
+inline TDes8* DChannelComm::RxBuffer()
+	{ return ((DComm*)iPdd)->RxBuffer(); }
+
+inline	TInt DChannelComm::RxBufferSize()
+	{ return ((DComm*)iPdd)->RxBufferSize(); }
+
+inline void DChannelComm::SetStatus(TState aStatus)
+	{ iStatus=aStatus; }
+
+inline TInt DChannelComm::PddStart()
+	{ return ((DComm*)iPdd)->Start(); }
+
+inline void DChannelComm::Stop(TStopMode aMode)
+	{ ((DComm*)iPdd)->Stop(aMode); }
+
+inline void DChannelComm::PddBreak(TBool aState)
+	{ ((DComm*)iPdd)->Break(aState); }
+
+inline TUint DChannelComm::Signals() const
+	{ return ((DComm*)iPdd)->Signals(); }
+
+inline void DChannelComm::SetSignals(TUint aSetMask,TUint aClearMask)
+	{ ((DComm*)iPdd)->SetSignals(aSetMask,aClearMask); }
+
+inline TInt DChannelComm::ValidateConfig(const TCommConfigV01 &aConfig) const
+	{ return ((DComm*)iPdd)->ValidateConfig(aConfig); }
+
+inline void DChannelComm::PddConfigure(TCommConfigV01 &aConfig)
+	{ ((DComm*)iPdd)->Configure(aConfig); }
+
+inline void DChannelComm::PddCaps(TDes8 &aCaps) const
+	{ ((DComm*)iPdd)->Caps(aCaps); }
+
+inline void DChannelComm::PddCheckConfig(TCommConfigV01& aConfig)
+	{ ((DComm*)iPdd)->CheckConfig(aConfig); }
+
+
Binary file toolsandutils/wintunnel/testcode/bin/tcp_server.exe has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/wintunnel/testcode/client/CommonFiles.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,57 @@
+// Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+
+#ifndef __CommonFiles_H
+#define __CommonFiles_H
+
+#include <e32cons.h>
+
+// public
+LOCAL_D CConsoleBase* console; // write all your messages to this
+LOCAL_C void doExampleL(); // code this function for the real example
+
+// private
+LOCAL_C void callExampleL(); // initialize with cleanup stack, then do example
+
+GLDEF_C TInt E32Main() // main function called by E32
+    {
+	_LIT(KSymbianEx,"SymbianEx");
+	CTrapCleanup* cleanup=CTrapCleanup::New(); // get clean-up stack
+	TRAPD(error,callExampleL()); // more initialization, then do example
+	__ASSERT_ALWAYS(!error,User::Panic(KSymbianEx,error));
+	delete cleanup; // destroy clean-up stack
+	return 0; // and return
+    }
+
+LOCAL_C void callExampleL() // initialize and call example code under cleanup stack
+    {
+	_LIT(KStatus1,"Symbian OS Example Code (comms)");
+	_LIT(KStatus2,"failed: leave code=%d");
+	_LIT(KStatus3,"ok");
+	_LIT(KStatus4," [press any key]");
+
+	console=Console::NewL(KStatus1,TSize(KConsFullScreen,KConsFullScreen));
+	//console=Console::NewL(KStatus1, TSize(KDefaultConsWidth,KDefaultConsHeight));
+	CleanupStack::PushL(console);
+	TRAPD(error,doExampleL()); // perform example function
+	if (error) console->Printf(KStatus2, error);
+	else console->Printf(KStatus3);
+	console->Printf(KStatus4);
+	console->Getch(); // get and ignore character
+	CleanupStack::Pop(); // close console
+    }
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/wintunnel/testcode/client/wintunnel_test_client.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,163 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// test_client_wintunnel.cpp
+// System Includes
+// 
+//
+
+#include <e32base.h>
+#include <e32test.h>
+#include <e32svr.h>
+#include <c32comm.h>
+
+/********************************************************************************
+ *
+ * Local Includes
+ *
+ *******************************************************************************/
+#include "f32file.h"
+#include "CommonFiles.h"
+
+/********************************************************************************
+ *
+ * Constants
+ *
+ *******************************************************************************/
+
+// Driver names
+_LIT(PDD_NAME,"ECDRV");
+_LIT(LDD_NAME,"ECOMM");
+_LIT(CSY_NAME, "ECUART" );
+_LIT(PORT_NAME,"COMM::1");
+
+// Test data
+const TInt DATA_STRING_LENGTH (45);
+_LIT8(DATA_STRING,"Diana is the greatest person who ever lived\n\r");
+
+// Other
+const TTimeIntervalMicroSeconds32 KTimeOut(4000000);
+
+/********************************************************************************
+ *
+ * Prototypes
+ *
+ *******************************************************************************/
+LOCAL_C void Init();
+
+/********************************************************************************
+ *
+ * Implementation
+ *
+ *******************************************************************************/
+LOCAL_C void doExampleL()
+    {
+	_LIT(KStatus0,"Connect to file server\n");
+	_LIT(KStatus1,"Connect to comm server\n");
+	_LIT(KStatus2,"Load ECUART.CSY\n");
+	_LIT(KStatus3,"Open COMM::1\n");
+	_LIT(KStatus4,"Writing to the port...\n");
+	_LIT(KStatus4a,"Reading from the port...\n");
+	_LIT(KStatus5,"Closing the port...\n");
+	_LIT(KStatus6,"Closing the server connection...\n");
+	_LIT(KSuccess,"Successfully read string from the port.\n");
+	_LIT(KFailure,"Failed reading string from the port.\n");
+
+
+	// connect to the file server
+	console->Printf( KStatus0 );
+	RFs f;
+	User::LeaveIfError(f.Connect());
+	f.Close();
+
+	// load up the drivers
+	Init();
+
+	// start the serial server			
+	RCommServ server;
+	console->Printf(KStatus1);
+	server.Connect();
+
+	// load the plugin
+	console->Printf(KStatus2);
+	TInt ret=server.LoadCommModule(CSY_NAME);
+	User::LeaveIfError(ret);
+		
+	// open the port
+	RComm commPort;
+	console->Printf(KStatus3);
+	ret=commPort.Open(server,PORT_NAME,ECommExclusive);
+	User::LeaveIfError(ret);
+
+	// write to the port
+	TRequestStatus status;
+	console->Printf(KStatus4);
+	commPort.Write(status,KTimeOut,DATA_STRING);
+	User::WaitForRequest(status);
+	User::LeaveIfError(status.Int());
+
+	// read from the port 
+	TBuf8<DATA_STRING_LENGTH> rbuf;
+	console->Printf(KStatus4a);
+	commPort.Read( status, rbuf ); 
+	User::WaitForRequest(status);
+	User::LeaveIfError(status.Int());
+
+	//check the string matches
+	if(rbuf==DATA_STRING)
+		{
+		console->Printf(KSuccess);
+		}
+	else
+		{
+		console->Printf(KFailure);
+		}
+
+	// close port and server
+	console->Printf(KStatus5);
+	commPort.Close();
+	console->Printf(KStatus6);
+	server.Close();
+	}
+
+
+LOCAL_C void Init()
+//
+// Initialisation code - loads the serial LDD and PDD
+// starts the comm subsystem (for EPOC32 builds)
+// On a full Symbian OS implementation, this code would not
+// be required because higher level GUI components  
+// automatically start the services.
+//
+	{
+	// Load the physical device driver
+	// The OS will automatically append .PDD and 
+	// search /System/Libs on all drives.
+
+	TInt r=User::LoadPhysicalDevice(PDD_NAME);
+	if (r != KErrNone && r!= KErrAlreadyExists)
+		User::Leave(r);
+	r=User::LoadLogicalDevice(LDD_NAME);
+	if (r != KErrNone && r != KErrAlreadyExists)
+		User::Leave(r);
+
+#if defined (__EPOC32__)
+	// For EPOC builds we need to start the comms subsystem
+	// This call actually starts the comms server process
+	r=StartC32();
+	if (r != KErrAlreadyExists)
+		User::LeaveIfError(r);
+#endif
+	}
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/wintunnel/testcode/client/wintunnel_test_client.mmp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,28 @@
+// Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// using relative paths for sourcepath and user includes
+// 
+//
+
+TARGET        wintunnel_test_client.exe
+TARGETTYPE    exe
+UID           0
+
+SOURCEPATH    .
+SOURCE        wintunnel_test_client.cpp
+
+USERINCLUDE   .
+SYSTEMINCLUDE \Epoc32\include
+
+LIBRARY       euser.lib efsrv.lib c32.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/wintunnel/testcode/server/CTcpServer.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,317 @@
+// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// CTcpServer
+// System Include
+// 
+//
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <assert.h>
+
+
+/***************************************************************************************
+ *
+ * Local Include
+ *
+ **************************************************************************************/
+#include "CTcpServer.h"
+
+
+/***************************************************************************************
+ *
+ * PUBLIC METHOD: Constructor
+ *
+ **************************************************************************************/
+CTcpServer::CTcpServer()
+{
+	
+}
+
+
+/***************************************************************************************
+ *
+` * PUBLIC METHOD: Destructor
+ *
+ **************************************************************************************/
+CTcpServer::~CTcpServer()
+{
+	disconnect();
+	release();
+}	
+
+
+/***************************************************************************************
+ *
+ * PUBLIC METHOD: StartServer
+ *
+ **************************************************************************************/
+int CTcpServer::StartServer( char* aLocalInterface, char* aLocalPort )
+{	
+	int r;
+	r =initialise();
+ 
+	if(r != ITS_OK)
+		return r;
+
+	r = setArguments( aLocalInterface, aLocalPort );
+	if(r != ITS_OK)
+		return r;
+	
+	r = makeConnection(iLocal_Sock, iRemote_Sock, iRemote_Addr);
+	return r;
+	
+}
+
+
+/***************************************************************************************
+ *
+ * SECTION: CUSTOMISATION METHODS
+ *
+ **************************************************************************************/
+/***************************************************************************************
+ *
+ * PRIVATE METHOD: ProcessBuffer
+ *
+ **************************************************************************************/
+void CTcpServer::ProcessBuffer( char* aBuffer, int aLen )
+{
+	int i;
+	for( i = 0; i < aLen; i++ ) {
+	//	fprintf( stderr, "%c (0x%x)\n", aBuffer[i], aBuffer[i] );
+		fprintf( stderr, "%c", aBuffer[i] );
+	}
+}
+
+/***************************************************************************************
+ *
+ * PRIVATE METHOD: IsBufferComplete
+ *
+ **************************************************************************************/
+bool CTcpServer::IsBufferComplete(char* aBuffer,int aLen)
+{
+	return true;
+}
+
+
+/***************************************************************************************
+ *
+ * SECTION: PRIVATE METHODS
+ *
+ **************************************************************************************/
+//
+//	Method binds the sock to the address. 
+//
+int CTcpServer::connect(SOCKET &aSocket, SOCKADDR_IN &aAddr)
+{
+	int err;
+	
+	//Bind the local address with a socket, so it listens to that port.
+	if (bind(aSocket,(struct sockaddr*)&aAddr, sizeof(SOCKADDR_IN)) != 0)
+	{	
+		//return, error has occured
+		err = WSAGetLastError();
+		printf ("Error binding socket: %d", err);
+		return E_SOCKETBIND;
+	}
+
+	return ITS_OK;
+}
+
+//
+//  Disoconnect
+//
+int CTcpServer::disconnect()
+{
+	shutdown(iLocal_Sock, SD_SEND);
+	shutdown(iLocal_Sock, SD_RECEIVE);
+
+	//do we close remote sock?
+
+	if (closesocket(iLocal_Sock) == SOCKET_ERROR)
+		return E_SOCKETCLOSE;
+
+	return ITS_OK;
+}
+
+//
+// Method to check if we have IP adress or hostname, and return IP address
+//
+SOCKADDR_IN CTcpServer::getSockAddr( const char* aIp, const char* aPort)
+{
+	SOCKADDR_IN sockAddr;
+
+	// check params
+	assert( aIp != NULL );
+
+	// check for null port
+	if( aPort == NULL ) {
+		aPort = "0";
+	}
+
+	// set the socket
+	sockAddr.sin_family = AF_INET;		
+	sockAddr.sin_port = htons( atoi(aPort) );
+	sockAddr.sin_addr.S_un.S_addr = inet_addr( aIp );
+	return sockAddr;
+}
+
+
+//
+// Method to check if the adress is IP format or is a hostname string.
+//
+bool CTcpServer::isIPAdress(const char* aAddr)
+{
+	int c =0;
+
+	char* q=(char *)aAddr;
+	char* tokenPtr = strtok(q,".");
+	
+	while(tokenPtr != NULL)
+	{
+		tokenPtr = strtok(NULL,".");	
+		c++;
+	}
+
+	if (c==4)
+		return true; //We have IP adrress, nothing to do
+	else 
+		return false;
+}
+
+//
+// Makes a connection, listens, and prints any incoming data.
+//
+int CTcpServer::makeConnection(SOCKET &aLocalSocket, SOCKET &aRemoteSocket, SOCKADDR_IN & aRemoteAddr)
+{
+	int remote_addr_len;
+
+	int err = listen( aLocalSocket, 1 );
+	if( err == SOCKET_ERROR ) 
+	{
+		err = WSAGetLastError ();
+		printf ("Error listening to socket: %d", err);
+		return E_LISTENING;
+	}
+
+	//wait for connection 
+	while( 1 ) 
+		{
+			// Wait for the next connection
+			printf( "\nWaiting for connection...\n" ); 
+			remote_addr_len = sizeof(aRemoteAddr);
+			aRemoteSocket = accept( aLocalSocket, (struct sockaddr*)&aRemoteAddr, &remote_addr_len );
+			if( aRemoteSocket == INVALID_SOCKET ) 
+				{
+				err = WSAGetLastError();
+				printf ("Accept failed. Error: %d",err);
+				return E_ACCEPT;
+				}
+
+			// Connection received 
+			printf( "Connection received from %d.%d.%d.%d : %d\n",
+				aRemoteAddr.sin_addr.S_un.S_un_b.s_b1,
+				aRemoteAddr.sin_addr.S_un.S_un_b.s_b2,
+				aRemoteAddr.sin_addr.S_un.S_un_b.s_b3,
+				aRemoteAddr.sin_addr.S_un.S_un_b.s_b4,
+				aRemoteAddr.sin_port );
+
+			// Read until the socket is closed and print out the info received.
+			err = 1;
+			while( err > 0 ) 
+				{
+				err = recv(aRemoteSocket, iPacket, RECVBUFFSIZE, 0 );
+				if (err == SOCKET_ERROR)
+					 return E_RECEIVING;
+				ProcessBuffer(iPacket, err);
+				err = send(aRemoteSocket, iPacket, err, 0 );
+				if (err == SOCKET_ERROR)
+					return E_SENDING;
+				}
+
+			// Close the socket and go again
+			closesocket(aRemoteSocket);
+	}
+	return ITS_OK;
+}
+
+//
+// Returns a a TCP/IP socket
+//
+SOCKET CTcpServer::getSocket()
+{
+	SOCKET sock;
+	int err;
+
+	// create a socket 
+	sock = socket( AF_INET, SOCK_STREAM, 0 ) ;
+	if( sock == INVALID_SOCKET)
+	{
+		//return, error has occured
+		err = WSAGetLastError ();
+		printf ("Allocating socket failed. Error: %d",err);
+		return NULL;
+	}
+	return sock;
+}
+
+//
+// Initialise use of the dll.
+//
+int CTcpServer::initialise()
+{
+	WORD version;
+	WSADATA wsaData;
+
+	// 1. start the windows iSocket server
+	version = MAKEWORD( 2, 2 );
+	if (WSAStartup( version, &wsaData ))
+		return E_SOCKETSTARTUP;		
+
+	return ITS_OK;		
+}
+
+
+//
+// Release.
+//
+int CTcpServer::release()
+{
+	int err =WSACleanup();
+
+	if ( err == SOCKET_ERROR)
+		return E_SOCKETSHUTDOWN;
+
+	return ITS_OK;
+}
+
+//
+// Set the arguments
+//
+int CTcpServer::setArguments(char* li, char* lp)
+{
+	if(!lp)
+	{
+		printf("Error: Missing argument - lp argument required.\n");
+		return E_INCORRECTARG;
+	}
+	
+	iLocal_Sock = getSocket();
+	iLocal_Addr = getSockAddr(li,lp );	
+	connect(iLocal_Sock,iLocal_Addr);	//bind
+
+	return ITS_OK;
+
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/wintunnel/testcode/server/CTcpServer.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,89 @@
+/**
+* Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* CTcpServer
+* 
+*
+*/
+
+
+
+#ifndef __CTCPSERVER_H__
+#define __CTCPSERVER_H__
+
+
+/***************************************************************************************
+ *
+ * System Includes
+ *
+ **************************************************************************************/
+#include <winsock2.h>
+
+
+/***************************************************************************************
+ *
+ * Definitions
+ *
+ **************************************************************************************/
+#define ITS_OK					0
+#define E_SOCKETSTARTUP			1								
+#define E_SOCKETBIND			2						
+#define E_SOCKETSEND			3			
+#define E_SOCKETRECV			4							
+#define E_SOCKETCLOSE			5			
+#define E_SOCKETSHUTDOWN		6
+#define E_SENDING				7
+#define E_RECEIVING				8
+#define E_LISTENING				9
+#define	E_ACCEPT				10
+#define E_INCORRECTARG			11
+
+#define RECVBUFFSIZE	1024
+		
+
+/***************************************************************************************
+ *
+ * CTcpServer
+ *
+ **************************************************************************************/
+class CTcpServer
+{
+public:
+	CTcpServer();	
+	~CTcpServer();	
+	int StartServer( char* aLocalInterface, char* aLocalPort );	
+
+private:
+	void ProcessBuffer( char* aBuffer, int aLen );
+	bool IsBufferComplete( char* aBuffer, int aLen );
+
+	int initialise(void);
+	int disconnect(void);
+	int release(void);
+	int setArguments(char* li, char* lp);
+	int connect( SOCKET &aSocket, SOCKADDR_IN &aAddr );
+	int makeConnection(SOCKET &aLocalSocket, SOCKET &aRemoteSocket, SOCKADDR_IN &aRemoteAddr);
+	SOCKET getSocket( void );
+	SOCKADDR_IN getSockAddr( const char* aIp, const char* aPort );
+	bool isIPAdress( const char* aAddr );
+
+private:
+	SOCKET iLocal_Sock;
+	SOCKADDR_IN iLocal_Addr;
+	SOCKET iRemote_Sock;
+	SOCKADDR_IN iRemote_Addr;
+	char iPacket[RECVBUFFSIZE];
+};
+
+#endif //__CTCPSERVER_H__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/wintunnel/testcode/server/tcp_server.cpp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,67 @@
+// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// tcp_server
+// System Includes
+// 
+//
+
+#include <stdio.h>
+#include <stdlib.h>
+
+
+/***************************************************************************************
+ *
+ * Local Includes
+ *
+ **************************************************************************************/
+#include "CTcpServer.h"
+
+
+/***************************************************************************************
+ *
+ * Prototypes
+ *
+ **************************************************************************************/
+void usage();
+
+/***************************************************************************************
+ *
+ * main()
+ *
+ **************************************************************************************/
+int main(int argc, char* argv[])
+{
+	char *local_interface = NULL;
+	char *local_port = NULL;
+	CTcpServer tcp_server;
+	
+	// check params
+	if( argc < 3 ) {
+		usage();
+		return E_INCORRECTARG;
+	}
+
+	// start the server
+	tcp_server.StartServer( argv[1], argv[2] );
+	return ITS_OK;
+}
+
+
+//
+// Print Usage.
+//
+void usage()
+{
+	fprintf( stderr, "tcp_server <local_interface> <local_port>\n" );
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/wintunnel/testcode/server/tcp_server.dep	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,11 @@
+# Microsoft Developer Studio Generated Dependency File, included by tcp_server.mak
+
+.\CTcpServer.cpp : \
+	".\CTcpServer.h"\
+	"c:\apps\msvc6\vc98\include\basetsd.h"\
+	
+
+.\tcp_server.cpp : \
+	".\CTcpServer.h"\
+	"c:\apps\msvc6\vc98\include\basetsd.h"\
+	
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/wintunnel/testcode/server/tcp_server.dsp	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,106 @@
+# Microsoft Developer Studio Project File - Name="tcp_server" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=tcp_server - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE 
+!MESSAGE NMAKE /f "tcp_server.mak".
+!MESSAGE 
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE 
+!MESSAGE NMAKE /f "tcp_server.mak" CFG="tcp_server - Win32 Debug"
+!MESSAGE 
+!MESSAGE Possible choices for configuration are:
+!MESSAGE 
+!MESSAGE "tcp_server - Win32 Release" (based on "Win32 (x86) Console Application")
+!MESSAGE "tcp_server - Win32 Debug" (based on "Win32 (x86) Console Application")
+!MESSAGE 
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName "Perforce Project"
+# PROP Scc_LocalPath "."
+CPP=cl.exe
+RSC=rc.exe
+
+!IF  "$(CFG)" == "tcp_server - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD BASE RSC /l 0x809 /d "NDEBUG"
+# ADD RSC /l 0x809 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 ws2_32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 /out:"..\bin\tcp_server.exe"
+
+!ELSEIF  "$(CFG)" == "tcp_server - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
+# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
+# ADD BASE RSC /l 0x809 /d "_DEBUG"
+# ADD RSC /l 0x809 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 ws2_32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /out:"..\bin\tcp_serverd.exe" /pdbtype:sept
+
+!ENDIF 
+
+# Begin Target
+
+# Name "tcp_server - Win32 Release"
+# Name "tcp_server - Win32 Debug"
+# Begin Group "include"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\CTcpServer.h
+# End Source File
+# End Group
+# Begin Group "source"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\CTcpServer.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\tcp_server.cpp
+# End Source File
+# End Group
+# End Target
+# End Project
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/wintunnel/testcode/server/tcp_server.dsw	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,33 @@
+Microsoft Developer Studio Workspace File, Format Version 6.00
+# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
+
+###############################################################################
+
+Project: "tcp_server"=.\tcp_server.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+    begin source code control
+    Perforce Project
+    .
+    end source code control
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Global:
+
+Package=<5>
+{{{
+}}}
+
+Package=<3>
+{{{
+}}}
+
+###############################################################################
+